From 81962211569da368baa287b4028d9e6446e106e3 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Mon, 28 Jul 2025 12:16:56 +0200 Subject: [PATCH 001/148] test: Add Archives integration tests (box/box-codegen#744) (#1324) --- .codegen.json | 1 + .github/ISSUE_TEMPLATE/bug.md | 17 +- .github/ISSUE_TEMPLATE/config.yml | 4 +- .github/ISSUE_TEMPLATE/enhancement.md | 7 +- .github/ISSUE_TEMPLATE/question.md | 17 +- .github/stale.yml | 2 +- .github/workflows/autoupdate-pr.yml | 39 + .github/workflows/build-main.yml | 30 - .github/workflows/build.yml | 48 + .github/workflows/integration-tests.yml | 29 - .github/workflows/notify-changelog.yml | 27 + .github/workflows/releases.yml | 28 - .github/workflows/spell-check-lint.yml | 6 +- .gitignore | 5 - .versionrc | 45 +- CONTRIBUTING.md | 93 +- README.md | 428 +--- VERSIONS.md | 13 +- build.gradle | 323 +-- config/checkstyle/checkstyle.xml | 155 -- config/checkstyle/suppressions.xml | 18 - doc/ai.md | 148 -- doc/android.md | 97 - doc/authentication.md | 271 --- doc/classifications.md | 226 -- doc/collaboration_allowlists.md | 147 -- doc/collaborations.md | 168 -- doc/collections.md | 104 - doc/comments.md | 125 - doc/configuration.md | 329 --- doc/css/javadoc.css | 488 ---- doc/devices.md | 62 - doc/events.md | 244 -- doc/file_requests.md | 77 - doc/files.md | 1135 --------- doc/folders.md | 801 ------- doc/groups.md | 218 -- doc/legal_holds.md | 206 -- doc/logging.md | 101 - doc/metadata_template.md | 189 -- doc/overview.md | 193 -- doc/recent_items.md | 33 - doc/retention_policies.md | 320 --- doc/search.md | 52 - doc/shared-items.md | 32 - doc/sign_requests.md | 152 -- doc/sign_templates.md | 51 - doc/storage_policy.md | 132 -- doc/tasks.md | 182 -- doc/terms_of_service.md | 154 -- doc/trash.md | 189 -- doc/upgrades/3.x.x to 4.x.x.md | 202 -- doc/upgrading.md | 116 - doc/users.md | 321 --- doc/watermarking.md | 99 - doc/webhooks.md | 156 -- doc/weblinks.md | 126 - doc/zip_download.md | 58 - docs/Authentication.md | 365 +++ docs/Client.md | 178 ++ docs/Configuration.md | 51 + docs/README.md | 86 + docs/ai.md | 166 ++ docs/aistudio.md | 158 ++ docs/appitemassociations.md | 80 + docs/archives.md | 94 + docs/authorization.md | 134 ++ docs/avatars.md | 101 + docs/chunkeduploads.md | 450 ++++ docs/classifications.md | 148 ++ docs/collaborationallowlistentries.md | 129 + docs/collaborationallowlistexempttargets.md | 129 + docs/collections.md | 91 + docs/comments.md | 171 ++ docs/devicepinners.md | 99 + docs/docgen.md | 126 + docs/docgentemplate.md | 188 ++ docs/downloads.md | 120 + docs/emailaliases.md | 99 + docs/events.md | 109 + docs/fileclassifications.md | 151 ++ docs/filemetadata.md | 194 ++ docs/filerequests.md | 131 ++ docs/files.md | 245 ++ docs/fileversionlegalholds.md | 85 + docs/fileversionretentions.md | 74 + docs/fileversions.md | 200 ++ docs/filewatermarks.md | 99 + docs/folderclassifications.md | 151 ++ docs/folderlocks.md | 106 + docs/foldermetadata.md | 199 ++ docs/folders.md | 245 ++ docs/folderwatermarks.md | 100 + docs/groups.md | 171 ++ docs/hubcollaborations.md | 160 ++ docs/hubitems.md | 66 + docs/hubs.md | 224 ++ docs/integrationmappings.md | 273 +++ docs/invites.md | 76 + docs/legalholdpolicies.md | 161 ++ docs/legalholdpolicyassignments.md | 179 ++ docs/listcollaborations.md | 152 ++ docs/memberships.md | 210 ++ docs/metadatacascadepolicies.md | 172 ++ docs/metadatatemplates.md | 272 +++ docs/recentitems.md | 36 + docs/retentionpolicies.md | 158 ++ docs/retentionpolicyassignments.md | 165 ++ docs/search.md | 71 + docs/sessiontermination.md | 70 + docs/sharedlinksappitems.md | 35 + docs/sharedlinksfiles.md | 181 ++ docs/sharedlinksfolders.md | 178 ++ docs/sharedlinksweblinks.md | 179 ++ docs/shieldinformationbarrierreports.md | 94 + docs/shieldinformationbarriers.md | 129 + .../shieldinformationbarriersegmentmembers.md | 129 + ...ldinformationbarriersegmentrestrictions.md | 131 ++ docs/shieldinformationbarriersegments.md | 158 ++ docs/shieldlists.md | 154 ++ docs/signrequests.md | 154 ++ docs/signtemplates.md | 64 + docs/skills.md | 164 ++ docs/storagepolicies.md | 64 + docs/storagepolicyassignments.md | 165 ++ docs/taskassignments.md | 163 ++ docs/tasks.md | 162 ++ docs/termsofservices.md | 126 + docs/termsofserviceuserstatuses.md | 98 + docs/transfer.md | 72 + docs/trashedfiles.md | 117 + docs/trashedfolders.md | 124 + docs/trasheditems.md | 42 + docs/trashedweblinks.md | 107 + docs/uploads.md | 144 ++ docs/usercollaborations.md | 148 ++ docs/users.md | 230 ++ docs/webhooks.md | 196 ++ docs/weblinks.md | 127 + docs/workflows.md | 73 + docs/zipdownloads.md | 163 ++ gradle.properties | 15 + gradle/wrapper/gradle-wrapper.jar | Bin 43462 -> 43583 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 7 +- gradlew.bat | 22 +- migration-guide.md | 596 +++++ settings.gradle | 1 + src/example/config/config.json | 12 - .../com/box/sdk/example/AccessAsAppUser.java | 63 - ...rEditionAPIConnectionAsEnterpriseUser.java | 43 - .../com/box/sdk/example/CreateAppUser.java | 49 - .../java/com/box/sdk/example/Main.java | 45 - .../sdk/example/SearchExamplesAsAppUser.java | 355 --- src/intTest/README.md | 123 - src/intTest/java/com/box/sdk/BoxAIIT.java | 337 --- .../java/com/box/sdk/BoxAPIConnectionIT.java | 294 --- .../java/com/box/sdk/BoxAPIRequestIT.java | 26 - .../java/com/box/sdk/BoxApiProvider.java | 34 - .../box/sdk/BoxClassificationTemplateIT.java | 95 - .../box/sdk/BoxCollaborationAllowlistIT.java | 85 - .../java/com/box/sdk/BoxCollaborationIT.java | 198 -- .../java/com/box/sdk/BoxCollectionIT.java | 27 - .../java/com/box/sdk/BoxCommentIT.java | 117 - src/intTest/java/com/box/sdk/BoxFileIT.java | 1297 ---------- src/intTest/java/com/box/sdk/BoxFolderIT.java | 974 -------- src/intTest/java/com/box/sdk/BoxGroupIT.java | 176 -- .../com/box/sdk/BoxGroupMembershipIT.java | 111 - .../java/com/box/sdk/BoxRecentsIT.java | 86 - .../sdk/BoxRetentionPolicyAssignmentIT.java | 132 -- .../java/com/box/sdk/BoxSignRequestIT.java | 249 -- src/intTest/java/com/box/sdk/BoxTaskIT.java | 63 - .../java/com/box/sdk/BoxTermsOfServiceIT.java | 45 - .../sdk/BoxTransactionalAPIConnectionIT.java | 109 - src/intTest/java/com/box/sdk/BoxTrashIT.java | 221 -- src/intTest/java/com/box/sdk/BoxUserIT.java | 175 -- .../java/com/box/sdk/BoxWebHookIT.java | 213 -- .../java/com/box/sdk/BoxWebLinkIT.java | 197 -- src/intTest/java/com/box/sdk/BoxZipIT.java | 86 - .../java/com/box/sdk/CleanupTools.java | 50 - src/intTest/java/com/box/sdk/EventLogIT.java | 116 - .../java/com/box/sdk/EventStreamIT.java | 84 - src/intTest/java/com/box/sdk/FileUtils.java | 53 - src/intTest/java/com/box/sdk/MetadataIT.java | 223 -- .../java/com/box/sdk/MetadataTemplateIT.java | 325 --- .../com/box/sdk/RetentionPolicyUtils.java | 44 - src/intTest/java/com/box/sdk/Retry.java | 40 - src/intTest/java/com/box/sdk/TestConfig.java | 190 -- .../java/com/box/sdk/UniqueTestFolder.java | 144 -- .../box/sdk/AbstractBoxMultipartRequest.java | 165 -- .../com/box/sdk/AvatarUploadResponse.java | 43 - .../com/box/sdk/BCPrivateKeyDecryptor.java | 70 - src/main/java/com/box/sdk/BackoffCounter.java | 74 - src/main/java/com/box/sdk/Base64.java | 105 - .../java/com/box/sdk/BinaryBodyUtils.java | 177 -- src/main/java/com/box/sdk/BoxAI.java | 414 ---- src/main/java/com/box/sdk/BoxAIAgent.java | 133 -- src/main/java/com/box/sdk/BoxAIAgentAsk.java | 169 -- .../com/box/sdk/BoxAIAgentAskBasicText.java | 187 -- .../com/box/sdk/BoxAIAgentAskLongText.java | 216 -- .../com/box/sdk/BoxAIAgentEmbeddings.java | 95 - .../box/sdk/BoxAIAgentEmbeddingsStrategy.java | 86 - .../java/com/box/sdk/BoxAIAgentExtract.java | 113 - .../box/sdk/BoxAIAgentExtractStructured.java | 113 - .../box/sdk/BoxAIAgentLLMEndpointParams.java | 81 - .../BoxAIAgentLLMEndpointParamsGoogle.java | 137 -- .../BoxAIAgentLLMEndpointParamsOpenAI.java | 193 -- .../java/com/box/sdk/BoxAIAgentTextGen.java | 72 - .../box/sdk/BoxAIAgentTextGenBasicGen.java | 239 -- .../java/com/box/sdk/BoxAIDialogueEntry.java | 106 - .../java/com/box/sdk/BoxAIExtractField.java | 81 - .../com/box/sdk/BoxAIExtractFieldOption.java | 27 - .../box/sdk/BoxAIExtractMetadataTemplate.java | 56 - .../sdk/BoxAIExtractStructuredResponse.java | 92 - src/main/java/com/box/sdk/BoxAIItem.java | 121 - src/main/java/com/box/sdk/BoxAIResponse.java | 92 - .../java/com/box/sdk/BoxAPIConnection.java | 1333 ----------- .../com/box/sdk/BoxAPIConnectionListener.java | 28 - .../java/com/box/sdk/BoxAPIException.java | 170 -- src/main/java/com/box/sdk/BoxAPIRequest.java | 728 ------ src/main/java/com/box/sdk/BoxAPIResponse.java | 373 --- .../com/box/sdk/BoxAPIResponseException.java | 84 - .../java/com/box/sdk/BoxCCGAPIConnection.java | 135 -- .../java/com/box/sdk/BoxClassification.java | 69 - .../java/com/box/sdk/BoxCollaboration.java | 692 ------ .../box/sdk/BoxCollaborationAllowlist.java | 318 --- ...BoxCollaborationAllowlistExemptTarget.java | 257 -- .../com/box/sdk/BoxCollaborationIterator.java | 36 - .../java/com/box/sdk/BoxCollaborator.java | 215 -- src/main/java/com/box/sdk/BoxCollection.java | 193 -- .../com/box/sdk/BoxCollectionIterator.java | 36 - src/main/java/com/box/sdk/BoxComment.java | 335 --- src/main/java/com/box/sdk/BoxConfig.java | 188 -- src/main/java/com/box/sdk/BoxDateFormat.java | 90 - .../box/sdk/BoxDeserializationException.java | 53 - .../sdk/BoxDeveloperEditionAPIConnection.java | 521 ----- src/main/java/com/box/sdk/BoxDevicePin.java | 240 -- src/main/java/com/box/sdk/BoxEnterprise.java | 60 - src/main/java/com/box/sdk/BoxEvent.java | 973 -------- src/main/java/com/box/sdk/BoxFile.java | 2078 ----------------- src/main/java/com/box/sdk/BoxFileRequest.java | 491 ---- .../com/box/sdk/BoxFileUploadSession.java | 487 ---- .../com/box/sdk/BoxFileUploadSessionPart.java | 118 - .../box/sdk/BoxFileUploadSessionPartList.java | 95 - src/main/java/com/box/sdk/BoxFileVersion.java | 313 --- .../com/box/sdk/BoxFileVersionLegalHold.java | 188 -- .../com/box/sdk/BoxFileVersionRetention.java | 362 --- src/main/java/com/box/sdk/BoxFolder.java | 1803 -------------- src/main/java/com/box/sdk/BoxFolderLock.java | 174 -- .../java/com/box/sdk/BoxGlobalSettings.java | 87 - src/main/java/com/box/sdk/BoxGroup.java | 556 ----- .../java/com/box/sdk/BoxGroupIterator.java | 35 - .../java/com/box/sdk/BoxGroupMembership.java | 424 ---- .../box/sdk/BoxGroupMembershipIterator.java | 65 - .../com/box/sdk/BoxImageMultipartRequest.java | 49 - src/main/java/com/box/sdk/BoxInvite.java | 264 --- src/main/java/com/box/sdk/BoxItem.java | 672 ------ .../java/com/box/sdk/BoxItemIterator.java | 62 - src/main/java/com/box/sdk/BoxJSONObject.java | 239 -- src/main/java/com/box/sdk/BoxJSONRequest.java | 121 - .../java/com/box/sdk/BoxJSONResponse.java | 116 - .../com/box/sdk/BoxLegalHoldAssignment.java | 269 --- .../java/com/box/sdk/BoxLegalHoldPolicy.java | 615 ----- src/main/java/com/box/sdk/BoxLock.java | 139 -- src/main/java/com/box/sdk/BoxLogger.java | 169 -- .../com/box/sdk/BoxMetadataCascadePolicy.java | 260 --- .../java/com/box/sdk/BoxMetadataFilter.java | 121 - .../com/box/sdk/BoxMetadataQueryItem.java | 92 - .../java/com/box/sdk/BoxMultipartRequest.java | 34 - .../com/box/sdk/BoxNotificationEmail.java | 78 - src/main/java/com/box/sdk/BoxRecentItem.java | 107 - src/main/java/com/box/sdk/BoxRecents.java | 46 - src/main/java/com/box/sdk/BoxResource.java | 208 -- .../java/com/box/sdk/BoxResourceIterable.java | 259 -- .../java/com/box/sdk/BoxResourceType.java | 31 - .../java/com/box/sdk/BoxRetentionPolicy.java | 834 ------- .../box/sdk/BoxRetentionPolicyAssignment.java | 442 ---- src/main/java/com/box/sdk/BoxSearch.java | 105 - .../java/com/box/sdk/BoxSearchParameters.java | 522 ----- .../java/com/box/sdk/BoxSearchSharedLink.java | 95 - .../box/sdk/BoxSensitiveDataSanitizer.java | 71 - src/main/java/com/box/sdk/BoxSharedLink.java | 462 ---- src/main/java/com/box/sdk/BoxSignRequest.java | 770 ------ .../box/sdk/BoxSignRequestCreateParams.java | 351 --- .../java/com/box/sdk/BoxSignRequestFile.java | 100 - .../com/box/sdk/BoxSignRequestPrefillTag.java | 147 -- .../box/sdk/BoxSignRequestSignatureColor.java | 40 - .../com/box/sdk/BoxSignRequestSigner.java | 844 ------- .../com/box/sdk/BoxSignRequestSignerRole.java | 41 - .../java/com/box/sdk/BoxSignTemplate.java | 414 ---- .../sdk/BoxSignTemplateAdditionalInfo.java | 37 - ...BoxSignTemplateAdditionalInfoRequired.java | 27 - .../sdk/BoxSignTemplateCustomBranding.java | 63 - .../box/sdk/BoxSignTemplateReadySignLink.java | 90 - .../com/box/sdk/BoxSignTemplateSigner.java | 675 ------ .../java/com/box/sdk/BoxStoragePolicy.java | 171 -- .../box/sdk/BoxStoragePolicyAssignment.java | 275 --- src/main/java/com/box/sdk/BoxTask.java | 475 ---- .../java/com/box/sdk/BoxTaskAssignment.java | 341 --- .../box/sdk/BoxTaskAssignmentIterator.java | 69 - .../java/com/box/sdk/BoxTermsOfService.java | 398 ---- .../box/sdk/BoxTermsOfServiceUserStatus.java | 305 --- .../sdk/BoxTransactionalAPIConnection.java | 139 -- src/main/java/com/box/sdk/BoxTrash.java | 307 --- src/main/java/com/box/sdk/BoxUploadEmail.java | 103 - src/main/java/com/box/sdk/BoxUser.java | 1470 ------------ .../java/com/box/sdk/BoxUserIterator.java | 35 - src/main/java/com/box/sdk/BoxWatermark.java | 120 - src/main/java/com/box/sdk/BoxWebHook.java | 843 ------- .../box/sdk/BoxWebHookSignatureVerifier.java | 224 -- src/main/java/com/box/sdk/BoxWebLink.java | 284 --- src/main/java/com/box/sdk/BoxZip.java | 100 - src/main/java/com/box/sdk/BoxZipConflict.java | 52 - .../java/com/box/sdk/BoxZipConflictItem.java | 84 - .../com/box/sdk/BoxZipDownloadStatus.java | 130 -- src/main/java/com/box/sdk/BoxZipInfo.java | 115 - src/main/java/com/box/sdk/BoxZipItem.java | 54 - .../java/com/box/sdk/CreateUserParams.java | 369 --- src/main/java/com/box/sdk/DateRange.java | 76 - .../box/sdk/DeveloperEditionEntityType.java | 36 - src/main/java/com/box/sdk/EmailAlias.java | 76 - .../java/com/box/sdk/EncryptionAlgorithm.java | 22 - .../com/box/sdk/EnterpriseEventsRequest.java | 113 - .../sdk/EnterpriseEventsStreamRequest.java | 83 - src/main/java/com/box/sdk/EventListener.java | 31 - src/main/java/com/box/sdk/EventLog.java | 320 --- src/main/java/com/box/sdk/EventStream.java | 242 -- .../java/com/box/sdk/FileUploadParams.java | 207 -- src/main/java/com/box/sdk/Filter.java | 5 - .../java/com/box/sdk/IAccessTokenCache.java | 26 - .../com/box/sdk/IPrivateKeyDecryptor.java | 20 - .../box/sdk/InMemoryLRUAccessTokenCache.java | 53 - .../com/box/sdk/JWTEncryptionPreferences.java | 103 - src/main/java/com/box/sdk/JsonIterator.java | 121 - src/main/java/com/box/sdk/LRUCache.java | 27 - .../java/com/box/sdk/LargeFileUpload.java | 306 --- .../java/com/box/sdk/LargeFileUploadTask.java | 57 - src/main/java/com/box/sdk/Metadata.java | 516 ---- .../java/com/box/sdk/MetadataFieldFilter.java | 51 - src/main/java/com/box/sdk/MetadataQuery.java | 298 --- .../java/com/box/sdk/MetadataTemplate.java | 1456 ------------ .../java/com/box/sdk/PagingParameters.java | 88 - .../java/com/box/sdk/PartialCollection.java | 137 -- .../java/com/box/sdk/ProgressInputStream.java | 71 - .../java/com/box/sdk/ProgressListener.java | 17 - .../com/box/sdk/ProgressOutputStream.java | 61 - .../java/com/box/sdk/QueryStringBuilder.java | 88 - .../com/box/sdk/RealtimeServerConnection.java | 67 - src/main/java/com/box/sdk/Representation.java | 206 -- .../com/box/sdk/RequestBodyFromCallback.java | 30 - .../com/box/sdk/RequestBodyFromStream.java | 84 - .../java/com/box/sdk/RequestInterceptor.java | 38 - .../com/box/sdk/RetentionPolicyParams.java | 189 -- src/main/java/com/box/sdk/ScopedToken.java | 111 - .../com/box/sdk/SharedLinkAPIConnection.java | 166 -- src/main/java/com/box/sdk/SizeRange.java | 78 - src/main/java/com/box/sdk/SortParameters.java | 61 - .../java/com/box/sdk/StandardCharsets.java | 20 - src/main/java/com/box/sdk/Time.java | 18 - src/main/java/com/box/sdk/URLTemplate.java | 121 - .../java/com/box/sdk/UploadFileCallback.java | 18 - .../java/com/box/sdk/ZstdInterceptor.java | 93 - .../java/com/box/sdk/http/ContentType.java | 31 - .../java/com/box/sdk/http/HttpHeaders.java | 56 - .../java/com/box/sdk/http/HttpMethod.java | 46 - .../com/box/sdk/internal/package-info.java | 6 - .../com/box/sdk/internal/pool/MacPool.java | 85 - .../sdk/internal/utils/CollectionUtils.java | 77 - .../com/box/sdk/internal/utils/JsonUtils.java | 117 - .../com/box/sdk/internal/utils/Parsers.java | 69 - src/main/java/com/box/sdk/package-info.java | 4 - .../sharedlink/AbstractSharedLinkRequest.java | 66 - .../sdk/sharedlink/BoxSharedLinkRequest.java | 38 - ...oxSharedLinkWithoutPermissionsRequest.java | 9 - .../java/com/box/sdkgen/box/BoxConstants.java | 12 + .../box/sdkgen/box/ccgauth/BoxCCGAuth.java | 169 ++ .../com/box/sdkgen/box/ccgauth/CCGConfig.java | 89 + .../BoxDeveloperTokenAuth.java | 147 ++ .../DeveloperTokenConfig.java | 44 + .../box/sdkgen/box/errors/BoxAPIError.java | 114 + .../box/sdkgen/box/errors/BoxSDKError.java | 81 + .../box/sdkgen/box/errors/RequestInfo.java | 135 ++ .../box/sdkgen/box/errors/ResponseInfo.java | 174 ++ .../box/sdkgen/box/jwtauth/BoxJWTAuth.java | 207 ++ .../com/box/sdkgen/box/jwtauth/JWTConfig.java | 232 ++ .../box/jwtauth/JwtConfigAppSettings.java | 75 + .../jwtauth/JwtConfigAppSettingsAppAuth.java | 75 + .../box/sdkgen/box/jwtauth/JwtConfigFile.java | 108 + .../com/box/sdkgen/box/oauth/BoxOAuth.java | 177 ++ .../box/oauth/GetAuthorizeUrlOptions.java | 86 + .../com/box/sdkgen/box/oauth/OAuthConfig.java | 61 + .../tokenstorage/InMemoryTokenStorage.java | 48 + .../sdkgen/box/tokenstorage/TokenStorage.java | 11 + .../java/com/box/sdkgen/client/BoxClient.java | 1322 +++++++++++ .../com/box/sdkgen/internal/Nullable.java | 10 + .../sdkgen/internal/NullableFieldTracker.java | 26 + .../internal/NullablePropertyFilter.java | 38 + .../com/box/sdkgen/internal/OneOfFive.java | 53 + .../com/box/sdkgen/internal/OneOfFour.java | 48 + .../com/box/sdkgen/internal/OneOfOne.java | 33 + .../com/box/sdkgen/internal/OneOfSix.java | 58 + .../com/box/sdkgen/internal/OneOfThree.java | 43 + .../com/box/sdkgen/internal/OneOfTwo.java | 38 + .../sdkgen/internal/SerializableObject.java | 18 + .../internal/logging/DataSanitizer.java | 39 + .../sdkgen/internal/utils/DateTimeUtils.java | 37 + .../box/sdkgen/internal/utils/DateUtils.java | 36 + .../utils/DefaultPrivateKeyDecryptor.java | 61 + .../com/box/sdkgen/internal/utils/Entry.java | 23 + .../com/box/sdkgen/internal/utils/Hash.java | 34 + .../box/sdkgen/internal/utils/HashName.java | 17 + .../sdkgen/internal/utils/JwtAlgorithm.java | 29 + .../com/box/sdkgen/internal/utils/JwtKey.java | 19 + .../sdkgen/internal/utils/JwtSignOptions.java | 95 + .../internal/utils/PrivateKeyDecryptor.java | 9 + .../sdkgen/internal/utils/UtilsManager.java | 493 ++++ .../com/box/sdkgen/managers/ai/AiManager.java | 210 ++ .../managers/ai/CreateAiAskHeaders.java | 40 + .../managers/ai/CreateAiExtractHeaders.java | 40 + .../ai/CreateAiExtractStructuredHeaders.java | 40 + .../managers/ai/CreateAiTextGenHeaders.java | 40 + .../ai/GetAiAgentDefaultConfigHeaders.java | 40 + .../GetAiAgentDefaultConfigQueryParams.java | 70 + ...gentDefaultConfigQueryParamsModeField.java | 65 + .../managers/aistudio/AiStudioManager.java | 223 ++ .../aistudio/CreateAiAgentHeaders.java | 40 + .../aistudio/DeleteAiAgentByIdHeaders.java | 40 + .../aistudio/GetAiAgentByIdHeaders.java | 40 + .../aistudio/GetAiAgentByIdQueryParams.java | 32 + .../managers/aistudio/GetAiAgentsHeaders.java | 40 + .../aistudio/GetAiAgentsQueryParams.java | 102 + .../aistudio/UpdateAiAgentByIdHeaders.java | 40 + .../AppItemAssociationsManager.java | 165 ++ .../GetFileAppItemAssociationsHeaders.java | 40 + ...GetFileAppItemAssociationsQueryParams.java | 58 + .../GetFolderAppItemAssociationsHeaders.java | 40 + ...tFolderAppItemAssociationsQueryParams.java | 58 + .../managers/archives/ArchivesManager.java | 164 ++ .../archives/CreateArchiveV2025R0Headers.java | 63 + .../CreateArchiveV2025R0RequestBody.java | 43 + .../DeleteArchiveByIdV2025R0Headers.java | 63 + .../archives/GetArchivesV2025R0Headers.java | 63 + .../GetArchivesV2025R0QueryParams.java | 44 + .../authorization/AuthorizationManager.java | 173 ++ .../authorization/AuthorizeUserHeaders.java | 40 + .../AuthorizeUserQueryParams.java | 99 + ...orizeUserQueryParamsResponseTypeField.java | 62 + .../RefreshAccessTokenHeaders.java | 40 + .../RequestAccessTokenHeaders.java | 40 + .../RevokeAccessTokenHeaders.java | 40 + .../managers/avatars/AvatarsManager.java | 153 ++ .../avatars/CreateUserAvatarHeaders.java | 40 + .../avatars/CreateUserAvatarRequestBody.java | 61 + .../avatars/DeleteUserAvatarHeaders.java | 40 + .../avatars/GetUserAvatarHeaders.java | 40 + .../chunkeduploads/ChunkedUploadsManager.java | 520 +++++ ...teFileUploadSessionCommitByUrlHeaders.java | 79 + ...leUploadSessionCommitByUrlRequestBody.java | 47 + .../CreateFileUploadSessionCommitHeaders.java | 79 + ...ateFileUploadSessionCommitRequestBody.java | 45 + ...leUploadSessionForExistingFileHeaders.java | 40 + ...loadSessionForExistingFileRequestBody.java | 90 + .../CreateFileUploadSessionHeaders.java | 40 + .../CreateFileUploadSessionRequestBody.java | 77 + .../DeleteFileUploadSessionByIdHeaders.java | 40 + .../DeleteFileUploadSessionByUrlHeaders.java | 40 + .../GetFileUploadSessionByIdHeaders.java | 40 + .../GetFileUploadSessionByUrlHeaders.java | 40 + ...GetFileUploadSessionPartsByUrlHeaders.java | 40 + ...ileUploadSessionPartsByUrlQueryParams.java | 44 + .../GetFileUploadSessionPartsHeaders.java | 40 + .../GetFileUploadSessionPartsQueryParams.java | 44 + .../chunkeduploads/PartAccumulator.java | 47 + .../UploadFilePartByUrlHeaders.java | 62 + .../chunkeduploads/UploadFilePartHeaders.java | 62 + .../AddClassificationHeaders.java | 40 + .../AddClassificationRequestBody.java | 146 ++ ...AddClassificationRequestBodyDataField.java | 86 + ...dyDataStaticConfigClassificationField.java | 89 + ...ationRequestBodyDataStaticConfigField.java | 68 + ...lassificationRequestBodyFieldKeyField.java | 62 + .../AddClassificationRequestBodyOpField.java | 62 + .../ClassificationsManager.java | 173 ++ .../CreateClassificationTemplateHeaders.java | 40 + ...eateClassificationTemplateRequestBody.java | 233 ++ ...onTemplateRequestBodyDisplayNameField.java | 63 + ...lateRequestBodyFieldsDisplayNameField.java | 66 + ...icationTemplateRequestBodyFieldsField.java | 216 ++ ...tionTemplateRequestBodyFieldsKeyField.java | 62 + ...TemplateRequestBodyFieldsOptionsField.java | 89 + ...ptionsStaticConfigClassificationField.java | 92 + ...estBodyFieldsOptionsStaticConfigField.java | 73 + ...ionTemplateRequestBodyFieldsTypeField.java | 63 + ...ficationTemplateRequestBodyScopeField.java | 62 + ...onTemplateRequestBodyTemplateKeyField.java | 63 + .../GetClassificationTemplateHeaders.java | 40 + .../UpdateClassificationHeaders.java | 40 + .../UpdateClassificationRequestBody.java | 165 ++ ...ateClassificationRequestBodyDataField.java | 86 + ...dyDataStaticConfigClassificationField.java | 89 + ...ationRequestBodyDataStaticConfigField.java | 68 + ...lassificationRequestBodyFieldKeyField.java | 62 + ...pdateClassificationRequestBodyOpField.java | 62 + .../CollaborationAllowlistEntriesManager.java | 196 ++ ...ateCollaborationWhitelistEntryHeaders.java | 40 + ...ollaborationWhitelistEntryRequestBody.java | 81 + ...itelistEntryRequestBodyDirectionField.java | 67 + ...ollaborationWhitelistEntryByIdHeaders.java | 40 + ...tCollaborationWhitelistEntriesHeaders.java | 40 + ...laborationWhitelistEntriesQueryParams.java | 44 + ...ollaborationWhitelistEntryByIdHeaders.java | 40 + ...borationAllowlistExemptTargetsManager.java | 201 ++ ...aborationWhitelistExemptTargetHeaders.java | 40 + ...ationWhitelistExemptTargetRequestBody.java | 45 + ...elistExemptTargetRequestBodyUserField.java | 50 + ...ationWhitelistExemptTargetByIdHeaders.java | 40 + ...ationWhitelistExemptTargetByIdHeaders.java | 40 + ...borationWhitelistExemptTargetsHeaders.java | 40 + ...tionWhitelistExemptTargetsQueryParams.java | 44 + .../collections/CollectionsManager.java | 177 ++ .../collections/GetCollectionByIdHeaders.java | 40 + .../GetCollectionItemsHeaders.java | 40 + .../GetCollectionItemsQueryParams.java | 60 + .../collections/GetCollectionsHeaders.java | 40 + .../GetCollectionsQueryParams.java | 60 + .../managers/comments/CommentsManager.java | 283 +++ .../comments/CreateCommentHeaders.java | 40 + .../comments/CreateCommentQueryParams.java | 32 + .../comments/CreateCommentRequestBody.java | 106 + .../CreateCommentRequestBodyItemField.java | 77 + ...CreateCommentRequestBodyItemTypeField.java | 63 + .../comments/DeleteCommentByIdHeaders.java | 40 + .../comments/GetCommentByIdHeaders.java | 40 + .../comments/GetCommentByIdQueryParams.java | 32 + .../comments/GetFileCommentsHeaders.java | 40 + .../comments/GetFileCommentsQueryParams.java | 60 + .../comments/UpdateCommentByIdHeaders.java | 40 + .../UpdateCommentByIdQueryParams.java | 32 + .../UpdateCommentByIdRequestBody.java | 62 + .../DeleteDevicePinnerByIdHeaders.java | 40 + .../devicepinners/DevicePinnersManager.java | 167 ++ .../GetDevicePinnerByIdHeaders.java | 40 + .../GetEnterpriseDevicePinnersHeaders.java | 40 + ...GetEnterpriseDevicePinnersQueryParams.java | 67 + ...evicePinnersQueryParamsDirectionField.java | 63 + .../CreateDocgenBatchV2025R0Headers.java | 63 + .../sdkgen/managers/docgen/DocgenManager.java | 226 ++ .../GetDocgenBatchJobByIdV2025R0Headers.java | 63 + ...tDocgenBatchJobByIdV2025R0QueryParams.java | 44 + .../GetDocgenJobByIdV2025R0Headers.java | 63 + .../docgen/GetDocgenJobsV2025R0Headers.java | 63 + .../GetDocgenJobsV2025R0QueryParams.java | 44 + .../CreateDocgenTemplateV2025R0Headers.java | 63 + ...eleteDocgenTemplateByIdV2025R0Headers.java | 63 + .../docgentemplate/DocgenTemplateManager.java | 315 +++ .../GetDocgenTemplateByIdV2025R0Headers.java | 63 + ...etDocgenTemplateJobByIdV2025R0Headers.java | 63 + ...cgenTemplateJobByIdV2025R0QueryParams.java | 44 + .../GetDocgenTemplateTagsV2025R0Headers.java | 63 + ...tDocgenTemplateTagsV2025R0QueryParams.java | 58 + .../GetDocgenTemplatesV2025R0Headers.java | 63 + .../GetDocgenTemplatesV2025R0QueryParams.java | 44 + .../downloads/DownloadFileHeaders.java | 68 + .../downloads/DownloadFileQueryParams.java | 44 + .../DownloadFileToOutputStreamHeaders.java | 68 + ...DownloadFileToOutputStreamQueryParams.java | 44 + .../managers/downloads/DownloadsManager.java | 212 ++ .../downloads/GetDownloadFileUrlHeaders.java | 68 + .../GetDownloadFileUrlQueryParams.java | 44 + .../CreateUserEmailAliasHeaders.java | 40 + .../CreateUserEmailAliasRequestBody.java | 43 + .../DeleteUserEmailAliasByIdHeaders.java | 40 + .../emailaliases/EmailAliasesManager.java | 150 ++ .../GetUserEmailAliasesHeaders.java | 40 + .../sdkgen/managers/events/EventsManager.java | 128 + .../managers/events/GetEventsHeaders.java | 40 + .../managers/events/GetEventsQueryParams.java | 171 ++ .../GetEventsQueryParamsEventTypeField.java | 176 ++ .../GetEventsQueryParamsStreamTypeField.java | 66 + .../GetEventsWithLongPollingHeaders.java | 40 + .../AddClassificationToFileHeaders.java | 40 + .../AddClassificationToFileRequestBody.java | 68 + .../DeleteClassificationFromFileHeaders.java | 40 + .../FileClassificationsManager.java | 192 ++ .../GetClassificationOnFileHeaders.java | 40 + .../UpdateClassificationOnFileHeaders.java | 40 + ...UpdateClassificationOnFileRequestBody.java | 147 ++ ...lassificationOnFileRequestBodyOpField.java | 62 + ...ssificationOnFileRequestBodyPathField.java | 62 + .../CreateFileMetadataByIdHeaders.java | 40 + .../CreateFileMetadataByIdScope.java | 63 + .../DeleteFileMetadataByIdHeaders.java | 40 + .../DeleteFileMetadataByIdScope.java | 63 + .../filemetadata/FileMetadataManager.java | 241 ++ .../GetFileMetadataByIdHeaders.java | 40 + .../GetFileMetadataByIdScope.java | 63 + .../filemetadata/GetFileMetadataHeaders.java | 40 + .../UpdateFileMetadataByIdHeaders.java | 40 + .../UpdateFileMetadataByIdRequestBody.java | 161 ++ ...ateFileMetadataByIdRequestBodyOpField.java | 67 + .../UpdateFileMetadataByIdScope.java | 63 + .../CreateFileRequestCopyHeaders.java | 40 + .../DeleteFileRequestByIdHeaders.java | 40 + .../filerequests/FileRequestsManager.java | 183 ++ .../GetFileRequestByIdHeaders.java | 40 + .../UpdateFileRequestByIdHeaders.java | 54 + .../managers/files/CopyFileHeaders.java | 40 + .../managers/files/CopyFileQueryParams.java | 32 + .../managers/files/CopyFileRequestBody.java | 106 + .../files/CopyFileRequestBodyParentField.java | 43 + .../managers/files/DeleteFileByIdHeaders.java | 54 + .../sdkgen/managers/files/FilesManager.java | 373 +++ .../managers/files/GetFileByIdHeaders.java | 82 + .../files/GetFileByIdQueryParams.java | 32 + .../files/GetFileThumbnailByIdExtension.java | 63 + .../files/GetFileThumbnailByIdHeaders.java | 40 + .../GetFileThumbnailByIdQueryParams.java | 72 + .../files/GetFileThumbnailUrlExtension.java | 63 + .../files/GetFileThumbnailUrlHeaders.java | 40 + .../files/GetFileThumbnailUrlQueryParams.java | 72 + .../managers/files/UpdateFileByIdHeaders.java | 54 + .../files/UpdateFileByIdQueryParams.java | 32 + .../files/UpdateFileByIdRequestBody.java | 234 ++ ...teFileByIdRequestBodyCollectionsField.java | 85 + ...ateFileByIdRequestBodyLockAccessField.java | 62 + .../UpdateFileByIdRequestBodyLockField.java | 127 + .../UpdateFileByIdRequestBodyParentField.java | 86 + ...equestBodyPermissionsCanDownloadField.java | 63 + ...teFileByIdRequestBodyPermissionsField.java | 87 + ...eByIdRequestBodySharedLinkAccessField.java | 64 + ...ateFileByIdRequestBodySharedLinkField.java | 167 ++ ...RequestBodySharedLinkPermissionsField.java | 69 + .../FileVersionLegalHoldsManager.java | 126 + .../GetFileVersionLegalHoldByIdHeaders.java | 40 + .../GetFileVersionLegalHoldsHeaders.java | 40 + .../GetFileVersionLegalHoldsQueryParams.java | 59 + .../FileVersionRetentionsManager.java | 140 ++ .../GetFileVersionRetentionByIdHeaders.java | 40 + .../GetFileVersionRetentionsHeaders.java | 40 + .../GetFileVersionRetentionsQueryParams.java | 141 ++ ...ionsQueryParamsDispositionActionField.java | 66 + .../DeleteFileVersionByIdHeaders.java | 54 + .../fileversions/FileVersionsManager.java | 309 +++ .../GetFileVersionByIdHeaders.java | 40 + .../GetFileVersionByIdQueryParams.java | 32 + .../fileversions/GetFileVersionsHeaders.java | 40 + .../GetFileVersionsQueryParams.java | 60 + .../PromoteFileVersionHeaders.java | 40 + .../PromoteFileVersionQueryParams.java | 32 + .../PromoteFileVersionRequestBody.java | 100 + ...romoteFileVersionRequestBodyTypeField.java | 62 + .../UpdateFileVersionByIdHeaders.java | 40 + .../UpdateFileVersionByIdRequestBody.java | 67 + .../DeleteFileWatermarkHeaders.java | 40 + .../filewatermarks/FileWatermarksManager.java | 146 ++ .../GetFileWatermarkHeaders.java | 40 + .../UpdateFileWatermarkHeaders.java | 40 + .../UpdateFileWatermarkRequestBody.java | 44 + ...ileWatermarkRequestBodyWatermarkField.java | 90 + ...rmarkRequestBodyWatermarkImprintField.java | 62 + .../AddClassificationToFolderHeaders.java | 40 + .../AddClassificationToFolderRequestBody.java | 68 + ...DeleteClassificationFromFolderHeaders.java | 40 + .../FolderClassificationsManager.java | 195 ++ .../GetClassificationOnFolderHeaders.java | 40 + .../UpdateClassificationOnFolderHeaders.java | 40 + ...dateClassificationOnFolderRequestBody.java | 147 ++ ...ssificationOnFolderRequestBodyOpField.java | 62 + ...ificationOnFolderRequestBodyPathField.java | 62 + .../folderlocks/CreateFolderLockHeaders.java | 40 + .../CreateFolderLockRequestBody.java | 90 + ...reateFolderLockRequestBodyFolderField.java | 59 + ...rLockRequestBodyLockedOperationsField.java | 60 + .../DeleteFolderLockByIdHeaders.java | 40 + .../folderlocks/FolderLocksManager.java | 145 ++ .../folderlocks/GetFolderLocksHeaders.java | 40 + .../GetFolderLocksQueryParams.java | 14 + .../CreateFolderMetadataByIdHeaders.java | 40 + .../CreateFolderMetadataByIdScope.java | 63 + .../DeleteFolderMetadataByIdHeaders.java | 40 + .../DeleteFolderMetadataByIdScope.java | 63 + .../foldermetadata/FolderMetadataManager.java | 241 ++ .../GetFolderMetadataByIdHeaders.java | 40 + .../GetFolderMetadataByIdScope.java | 63 + .../GetFolderMetadataHeaders.java | 40 + .../UpdateFolderMetadataByIdHeaders.java | 40 + .../UpdateFolderMetadataByIdRequestBody.java | 161 ++ ...eFolderMetadataByIdRequestBodyOpField.java | 67 + .../UpdateFolderMetadataByIdScope.java | 63 + .../managers/folders/CopyFolderHeaders.java | 40 + .../folders/CopyFolderQueryParams.java | 32 + .../folders/CopyFolderRequestBody.java | 86 + .../CopyFolderRequestBodyParentField.java | 43 + .../managers/folders/CreateFolderHeaders.java | 40 + .../folders/CreateFolderQueryParams.java | 32 + .../folders/CreateFolderRequestBody.java | 143 ++ ...questBodyFolderUploadEmailAccessField.java | 63 + ...lderRequestBodyFolderUploadEmailField.java | 79 + .../CreateFolderRequestBodyParentField.java | 43 + ...CreateFolderRequestBodySyncStateField.java | 64 + .../folders/DeleteFolderByIdHeaders.java | 54 + .../folders/DeleteFolderByIdQueryParams.java | 30 + .../managers/folders/FoldersManager.java | 363 +++ .../folders/GetFolderByIdHeaders.java | 68 + .../folders/GetFolderByIdQueryParams.java | 99 + ...etFolderByIdQueryParamsDirectionField.java | 63 + .../GetFolderByIdQueryParamsSortField.java | 65 + .../folders/GetFolderItemsHeaders.java | 54 + .../folders/GetFolderItemsQueryParams.java | 127 + ...tFolderItemsQueryParamsDirectionField.java | 63 + .../GetFolderItemsQueryParamsSortField.java | 65 + .../folders/UpdateFolderByIdHeaders.java | 54 + .../folders/UpdateFolderByIdQueryParams.java | 32 + .../folders/UpdateFolderByIdRequestBody.java | 298 +++ ...FolderByIdRequestBodyCollectionsField.java | 85 + ...questBodyFolderUploadEmailAccessField.java | 64 + ...ByIdRequestBodyFolderUploadEmailField.java | 81 + ...pdateFolderByIdRequestBodyParentField.java | 86 + ...rByIdRequestBodySharedLinkAccessField.java | 64 + ...eFolderByIdRequestBodySharedLinkField.java | 168 ++ ...RequestBodySharedLinkPermissionsField.java | 69 + ...teFolderByIdRequestBodySyncStateField.java | 64 + .../DeleteFolderWatermarkHeaders.java | 40 + .../FolderWatermarksManager.java | 147 ++ .../GetFolderWatermarkHeaders.java | 40 + .../UpdateFolderWatermarkHeaders.java | 40 + .../UpdateFolderWatermarkRequestBody.java | 44 + ...derWatermarkRequestBodyWatermarkField.java | 91 + ...rmarkRequestBodyWatermarkImprintField.java | 62 + .../managers/groups/CreateGroupHeaders.java | 40 + .../groups/CreateGroupQueryParams.java | 32 + .../groups/CreateGroupRequestBody.java | 209 ++ ...roupRequestBodyInvitabilityLevelField.java | 64 + ...equestBodyMemberViewabilityLevelField.java | 64 + .../groups/DeleteGroupByIdHeaders.java | 40 + .../managers/groups/GetGroupByIdHeaders.java | 40 + .../groups/GetGroupByIdQueryParams.java | 32 + .../managers/groups/GetGroupsHeaders.java | 40 + .../managers/groups/GetGroupsQueryParams.java | 74 + .../sdkgen/managers/groups/GroupsManager.java | 274 +++ .../groups/UpdateGroupByIdHeaders.java | 40 + .../groups/UpdateGroupByIdQueryParams.java | 32 + .../groups/UpdateGroupByIdRequestBody.java | 210 ++ ...ByIdRequestBodyInvitabilityLevelField.java | 64 + ...equestBodyMemberViewabilityLevelField.java | 64 + .../CreateHubCollaborationV2025R0Headers.java | 63 + ...eteHubCollaborationByIdV2025R0Headers.java | 63 + ...GetHubCollaborationByIdV2025R0Headers.java | 63 + .../GetHubCollaborationsV2025R0Headers.java | 63 + ...etHubCollaborationsV2025R0QueryParams.java | 59 + .../HubCollaborationsManager.java | 236 ++ ...ateHubCollaborationByIdV2025R0Headers.java | 63 + .../hubitems/GetHubItemsV2025R0Headers.java | 63 + .../GetHubItemsV2025R0QueryParams.java | 59 + .../managers/hubitems/HubItemsManager.java | 137 ++ .../ManageHubItemsV2025R0Headers.java | 63 + .../managers/hubs/CopyHubV2025R0Headers.java | 63 + .../hubs/CreateHubV2025R0Headers.java | 63 + .../hubs/DeleteHubByIdV2025R0Headers.java | 63 + .../hubs/GetEnterpriseHubsV2025R0Headers.java | 63 + .../GetEnterpriseHubsV2025R0QueryParams.java | 95 + ...eHubsV2025R0QueryParamsDirectionField.java | 63 + .../hubs/GetHubByIdV2025R0Headers.java | 63 + .../managers/hubs/GetHubsV2025R0Headers.java | 63 + .../hubs/GetHubsV2025R0QueryParams.java | 107 + ...tHubsV2025R0QueryParamsDirectionField.java | 63 + .../box/sdkgen/managers/hubs/HubsManager.java | 312 +++ .../hubs/UpdateHubByIdV2025R0Headers.java | 63 + .../CreateSlackIntegrationMappingHeaders.java | 40 + .../CreateTeamsIntegrationMappingHeaders.java | 40 + ...eteSlackIntegrationMappingByIdHeaders.java | 40 + ...eteTeamsIntegrationMappingByIdHeaders.java | 40 + .../GetSlackIntegrationMappingHeaders.java | 40 + ...GetSlackIntegrationMappingQueryParams.java | 134 ++ ...ionMappingQueryParamsBoxItemTypeField.java | 62 + ...appingQueryParamsPartnerItemTypeField.java | 65 + .../GetTeamsIntegrationMappingHeaders.java | 40 + ...GetTeamsIntegrationMappingQueryParams.java | 92 + ...ionMappingQueryParamsBoxItemTypeField.java | 62 + ...appingQueryParamsPartnerItemTypeField.java | 66 + .../IntegrationMappingsManager.java | 363 +++ ...ateSlackIntegrationMappingByIdHeaders.java | 40 + ...lackIntegrationMappingByIdRequestBody.java | 89 + ...ateTeamsIntegrationMappingByIdHeaders.java | 40 + ...eamsIntegrationMappingByIdRequestBody.java | 66 + .../managers/invites/CreateInviteHeaders.java | 40 + .../invites/CreateInviteQueryParams.java | 32 + .../invites/CreateInviteRequestBody.java | 62 + ...ateInviteRequestBodyActionableByField.java | 62 + ...reateInviteRequestBodyEnterpriseField.java | 43 + .../invites/GetInviteByIdHeaders.java | 40 + .../invites/GetInviteByIdQueryParams.java | 32 + .../managers/invites/InvitesManager.java | 141 ++ .../CreateLegalHoldPolicyHeaders.java | 40 + .../CreateLegalHoldPolicyRequestBody.java | 156 ++ .../DeleteLegalHoldPolicyByIdHeaders.java | 40 + .../GetLegalHoldPoliciesHeaders.java | 40 + .../GetLegalHoldPoliciesQueryParams.java | 74 + .../GetLegalHoldPolicyByIdHeaders.java | 40 + .../LegalHoldPoliciesManager.java | 231 ++ .../UpdateLegalHoldPolicyByIdHeaders.java | 40 + .../UpdateLegalHoldPolicyByIdRequestBody.java | 107 + ...reateLegalHoldPolicyAssignmentHeaders.java | 40 + ...eLegalHoldPolicyAssignmentRequestBody.java | 63 + ...icyAssignmentRequestBodyAssignToField.java | 80 + ...ssignmentRequestBodyAssignToTypeField.java | 70 + ...eLegalHoldPolicyAssignmentByIdHeaders.java | 40 + ...tLegalHoldPolicyAssignmentByIdHeaders.java | 40 + ...HoldPolicyAssignmentFileOnHoldHeaders.java | 40 + ...PolicyAssignmentFileOnHoldQueryParams.java | 60 + .../GetLegalHoldPolicyAssignmentsHeaders.java | 40 + ...LegalHoldPolicyAssignmentsQueryParams.java | 112 + ...signmentsQueryParamsAssignToTypeField.java | 70 + .../LegalHoldPolicyAssignmentsManager.java | 244 ++ .../GetCollaborationsHeaders.java | 40 + .../GetCollaborationsQueryParams.java | 84 + ...tCollaborationsQueryParamsStatusField.java | 62 + .../GetFileCollaborationsHeaders.java | 40 + .../GetFileCollaborationsQueryParams.java | 60 + .../GetFolderCollaborationsHeaders.java | 40 + .../GetFolderCollaborationsQueryParams.java | 60 + .../GetGroupCollaborationsHeaders.java | 40 + .../GetGroupCollaborationsQueryParams.java | 44 + .../ListCollaborationsManager.java | 238 ++ .../CreateGroupMembershipHeaders.java | 40 + .../CreateGroupMembershipQueryParams.java | 32 + .../CreateGroupMembershipRequestBody.java | 147 ++ ...eGroupMembershipRequestBodyGroupField.java | 44 + ...teGroupMembershipRequestBodyRoleField.java | 63 + ...teGroupMembershipRequestBodyUserField.java | 44 + .../DeleteGroupMembershipByIdHeaders.java | 40 + .../GetGroupMembershipByIdHeaders.java | 40 + .../GetGroupMembershipByIdQueryParams.java | 32 + .../GetGroupMembershipsHeaders.java | 40 + .../GetGroupMembershipsQueryParams.java | 44 + .../GetUserMembershipsHeaders.java | 40 + .../GetUserMembershipsQueryParams.java | 44 + .../memberships/MembershipsManager.java | 357 +++ .../UpdateGroupMembershipByIdHeaders.java | 40 + .../UpdateGroupMembershipByIdQueryParams.java | 32 + .../UpdateGroupMembershipByIdRequestBody.java | 107 + ...oupMembershipByIdRequestBodyRoleField.java | 63 + .../ApplyMetadataCascadePolicyHeaders.java | 40 + ...ApplyMetadataCascadePolicyRequestBody.java | 72 + ...icyRequestBodyConflictResolutionField.java | 66 + .../CreateMetadataCascadePolicyHeaders.java | 40 + ...reateMetadataCascadePolicyRequestBody.java | 94 + ...ataCascadePolicyRequestBodyScopeField.java | 63 + ...eleteMetadataCascadePolicyByIdHeaders.java | 40 + .../GetMetadataCascadePoliciesHeaders.java | 40 + ...GetMetadataCascadePoliciesQueryParams.java | 73 + .../GetMetadataCascadePolicyByIdHeaders.java | 40 + .../MetadataCascadePoliciesManager.java | 215 ++ .../CreateMetadataTemplateHeaders.java | 40 + .../CreateMetadataTemplateRequestBody.java | 162 ++ ...etadataTemplateRequestBodyFieldsField.java | 192 ++ ...TemplateRequestBodyFieldsOptionsField.java | 44 + ...ataTemplateRequestBodyFieldsTypeField.java | 66 + .../DeleteMetadataTemplateHeaders.java | 40 + .../DeleteMetadataTemplateScope.java | 63 + ...GetEnterpriseMetadataTemplatesHeaders.java | 40 + ...nterpriseMetadataTemplatesQueryParams.java | 44 + .../GetGlobalMetadataTemplatesHeaders.java | 40 + ...GetGlobalMetadataTemplatesQueryParams.java | 44 + .../GetMetadataTemplateByIdHeaders.java | 40 + .../GetMetadataTemplateHeaders.java | 40 + .../GetMetadataTemplateScope.java | 63 + ...tMetadataTemplatesByInstanceIdHeaders.java | 40 + ...adataTemplatesByInstanceIdQueryParams.java | 59 + .../MetadataTemplatesManager.java | 339 +++ .../UpdateMetadataTemplateHeaders.java | 40 + .../UpdateMetadataTemplateRequestBody.java | 233 ++ ...ateMetadataTemplateRequestBodyOpField.java | 74 + .../UpdateMetadataTemplateScope.java | 63 + .../recentitems/GetRecentItemsHeaders.java | 40 + .../GetRecentItemsQueryParams.java | 60 + .../recentitems/RecentItemsManager.java | 105 + .../CreateRetentionPolicyHeaders.java | 40 + .../CreateRetentionPolicyRequestBody.java | 346 +++ ...licyRequestBodyDispositionActionField.java | 64 + ...ntionPolicyRequestBodyPolicyTypeField.java | 63 + ...onPolicyRequestBodyRetentionTypeField.java | 63 + .../DeleteRetentionPolicyByIdHeaders.java | 40 + .../GetRetentionPoliciesHeaders.java | 40 + .../GetRetentionPoliciesQueryParams.java | 109 + ...ionPoliciesQueryParamsPolicyTypeField.java | 63 + .../GetRetentionPolicyByIdHeaders.java | 40 + .../GetRetentionPolicyByIdQueryParams.java | 32 + .../RetentionPoliciesManager.java | 253 ++ .../UpdateRetentionPolicyByIdHeaders.java | 40 + .../UpdateRetentionPolicyByIdRequestBody.java | 250 ++ ...reateRetentionPolicyAssignmentHeaders.java | 40 + ...eRetentionPolicyAssignmentRequestBody.java | 132 ++ ...icyAssignmentRequestBodyAssignToField.java | 114 + ...ssignmentRequestBodyAssignToTypeField.java | 67 + ...ssignmentRequestBodyFilterFieldsField.java | 86 + ...eRetentionPolicyAssignmentByIdHeaders.java | 40 + ...UnderRetentionPolicyAssignmentHeaders.java | 40 + ...rRetentionPolicyAssignmentQueryParams.java | 44 + ...tRetentionPolicyAssignmentByIdHeaders.java | 40 + ...entionPolicyAssignmentByIdQueryParams.java | 32 + .../GetRetentionPolicyAssignmentsHeaders.java | 40 + ...RetentionPolicyAssignmentsQueryParams.java | 80 + ...PolicyAssignmentsQueryParamsTypeField.java | 64 + .../RetentionPolicyAssignmentsManager.java | 278 +++ .../search/SearchByMetadataQueryHeaders.java | 40 + .../search/SearchForContentHeaders.java | 40 + .../search/SearchForContentQueryParams.java | 407 ++++ ...orContentQueryParamsContentTypesField.java | 66 + ...chForContentQueryParamsDirectionField.java | 63 + ...SearchForContentQueryParamsScopeField.java | 63 + .../SearchForContentQueryParamsSortField.java | 63 + ...orContentQueryParamsTrashContentField.java | 64 + .../SearchForContentQueryParamsTypeField.java | 64 + .../sdkgen/managers/search/SearchManager.java | 157 ++ .../SessionTerminationManager.java | 119 + .../TerminateGroupsSessionsHeaders.java | 40 + .../TerminateGroupsSessionsRequestBody.java | 45 + .../TerminateUsersSessionsHeaders.java | 40 + .../TerminateUsersSessionsRequestBody.java | 63 + .../FindAppItemForSharedLinkHeaders.java | 51 + .../SharedLinksAppItemsManager.java | 89 + .../AddShareLinkToFileHeaders.java | 40 + .../AddShareLinkToFileQueryParams.java | 14 + .../AddShareLinkToFileRequestBody.java | 64 + ...oFileRequestBodySharedLinkAccessField.java | 64 + ...eLinkToFileRequestBodySharedLinkField.java | 169 ++ ...RequestBodySharedLinkPermissionsField.java | 109 + .../FindFileForSharedLinkHeaders.java | 65 + .../FindFileForSharedLinkQueryParams.java | 32 + .../GetSharedLinkForFileHeaders.java | 40 + .../GetSharedLinkForFileQueryParams.java | 14 + .../RemoveSharedLinkFromFileHeaders.java | 40 + .../RemoveSharedLinkFromFileQueryParams.java | 14 + .../RemoveSharedLinkFromFileRequestBody.java | 67 + ...inkFromFileRequestBodySharedLinkField.java | 17 + .../SharedLinksFilesManager.java | 291 +++ .../UpdateSharedLinkOnFileHeaders.java | 40 + .../UpdateSharedLinkOnFileQueryParams.java | 14 + .../UpdateSharedLinkOnFileRequestBody.java | 64 + ...nFileRequestBodySharedLinkAccessField.java | 65 + ...dLinkOnFileRequestBodySharedLinkField.java | 170 ++ ...RequestBodySharedLinkPermissionsField.java | 110 + .../AddShareLinkToFolderHeaders.java | 40 + .../AddShareLinkToFolderQueryParams.java | 14 + .../AddShareLinkToFolderRequestBody.java | 64 + ...olderRequestBodySharedLinkAccessField.java | 64 + ...inkToFolderRequestBodySharedLinkField.java | 170 ++ ...RequestBodySharedLinkPermissionsField.java | 109 + .../FindFolderForSharedLinkHeaders.java | 65 + .../FindFolderForSharedLinkQueryParams.java | 32 + .../GetSharedLinkForFolderHeaders.java | 40 + .../GetSharedLinkForFolderQueryParams.java | 14 + .../RemoveSharedLinkFromFolderHeaders.java | 40 + ...RemoveSharedLinkFromFolderQueryParams.java | 14 + ...RemoveSharedLinkFromFolderRequestBody.java | 67 + ...kFromFolderRequestBodySharedLinkField.java | 17 + .../SharedLinksFoldersManager.java | 300 +++ .../UpdateSharedLinkOnFolderHeaders.java | 40 + .../UpdateSharedLinkOnFolderQueryParams.java | 14 + .../UpdateSharedLinkOnFolderRequestBody.java | 64 + ...olderRequestBodySharedLinkAccessField.java | 66 + ...inkOnFolderRequestBodySharedLinkField.java | 169 ++ ...RequestBodySharedLinkPermissionsField.java | 110 + .../AddShareLinkToWebLinkHeaders.java | 40 + .../AddShareLinkToWebLinkQueryParams.java | 14 + .../AddShareLinkToWebLinkRequestBody.java | 64 + ...bLinkRequestBodySharedLinkAccessField.java | 64 + ...nkToWebLinkRequestBodySharedLinkField.java | 170 ++ ...RequestBodySharedLinkPermissionsField.java | 109 + .../FindWebLinkForSharedLinkHeaders.java | 65 + .../FindWebLinkForSharedLinkQueryParams.java | 32 + .../GetSharedLinkForWebLinkHeaders.java | 40 + .../GetSharedLinkForWebLinkQueryParams.java | 14 + .../RemoveSharedLinkFromWebLinkHeaders.java | 40 + ...emoveSharedLinkFromWebLinkQueryParams.java | 14 + ...emoveSharedLinkFromWebLinkRequestBody.java | 67 + ...FromWebLinkRequestBodySharedLinkField.java | 17 + .../SharedLinksWebLinksManager.java | 300 +++ .../UpdateSharedLinkOnWebLinkHeaders.java | 40 + .../UpdateSharedLinkOnWebLinkQueryParams.java | 14 + .../UpdateSharedLinkOnWebLinkRequestBody.java | 64 + ...bLinkRequestBodySharedLinkAccessField.java | 67 + ...nkOnWebLinkRequestBodySharedLinkField.java | 171 ++ ...RequestBodySharedLinkPermissionsField.java | 110 + ...ShieldInformationBarrierReportHeaders.java | 40 + ...ldInformationBarrierReportByIdHeaders.java | 40 + ...hieldInformationBarrierReportsHeaders.java | 40 + ...dInformationBarrierReportsQueryParams.java | 59 + ...hieldInformationBarrierReportsManager.java | 163 ++ ...CreateShieldInformationBarrierHeaders.java | 40 + ...teShieldInformationBarrierRequestBody.java | 46 + ...etShieldInformationBarrierByIdHeaders.java | 40 + .../GetShieldInformationBarriersHeaders.java | 40 + ...tShieldInformationBarriersQueryParams.java | 44 + .../ShieldInformationBarriersManager.java | 196 ++ ...ShieldInformationBarrierStatusHeaders.java | 40 + ...ldInformationBarrierStatusRequestBody.java | 81 + ...onBarrierStatusRequestBodyStatusField.java | 66 + ...nformationBarrierSegmentMemberHeaders.java | 40 + ...mationBarrierSegmentMemberRequestBody.java | 157 ++ ...yShieldInformationBarrierSegmentField.java | 127 + ...eldInformationBarrierSegmentTypeField.java | 81 + ...rierSegmentMemberRequestBodyTypeField.java | 66 + ...mationBarrierSegmentMemberByIdHeaders.java | 40 + ...mationBarrierSegmentMemberByIdHeaders.java | 40 + ...formationBarrierSegmentMembersHeaders.java | 40 + ...ationBarrierSegmentMembersQueryParams.java | 60 + ...formationBarrierSegmentMembersManager.java | 193 ++ ...ationBarrierSegmentRestrictionHeaders.java | 40 + ...nBarrierSegmentRestrictionRequestBody.java | 179 ++ ...tionRequestBodyRestrictedSegmentField.java | 121 + ...RequestBodyRestrictedSegmentTypeField.java | 80 + ...yShieldInformationBarrierSegmentField.java | 127 + ...eldInformationBarrierSegmentTypeField.java | 81 + ...egmentRestrictionRequestBodyTypeField.java | 69 + ...nBarrierSegmentRestrictionByIdHeaders.java | 40 + ...nBarrierSegmentRestrictionByIdHeaders.java | 40 + ...tionBarrierSegmentRestrictionsHeaders.java | 40 + ...BarrierSegmentRestrictionsQueryParams.java | 60 + ...tionBarrierSegmentRestrictionsManager.java | 199 ++ ...hieldInformationBarrierSegmentHeaders.java | 40 + ...dInformationBarrierSegmentRequestBody.java | 109 + ...dInformationBarrierSegmentByIdHeaders.java | 40 + ...dInformationBarrierSegmentByIdHeaders.java | 40 + ...ieldInformationBarrierSegmentsHeaders.java | 40 + ...InformationBarrierSegmentsQueryParams.java | 59 + ...ieldInformationBarrierSegmentsManager.java | 241 ++ ...dInformationBarrierSegmentByIdHeaders.java | 40 + ...ormationBarrierSegmentByIdRequestBody.java | 87 + .../CreateShieldListV2025R0Headers.java | 63 + .../DeleteShieldListByIdV2025R0Headers.java | 63 + .../GetShieldListByIdV2025R0Headers.java | 63 + .../GetShieldListsV2025R0Headers.java | 63 + .../shieldlists/ShieldListsManager.java | 222 ++ .../UpdateShieldListByIdV2025R0Headers.java | 63 + .../CancelSignRequestHeaders.java | 40 + .../CreateSignRequestHeaders.java | 40 + .../GetSignRequestByIdHeaders.java | 40 + .../signrequests/GetSignRequestsHeaders.java | 40 + .../GetSignRequestsQueryParams.java | 74 + .../ResendSignRequestHeaders.java | 40 + .../signrequests/SignRequestsManager.java | 211 ++ .../GetSignTemplateByIdHeaders.java | 40 + .../GetSignTemplatesHeaders.java | 40 + .../GetSignTemplatesQueryParams.java | 44 + .../signtemplates/SignTemplatesManager.java | 130 ++ .../CreateBoxSkillCardsOnFileHeaders.java | 40 + .../CreateBoxSkillCardsOnFileRequestBody.java | 49 + .../DeleteBoxSkillCardsFromFileHeaders.java | 40 + .../skills/GetBoxSkillCardsOnFileHeaders.java | 40 + .../sdkgen/managers/skills/SkillsManager.java | 212 ++ .../UpdateAllSkillCardsOnFileHeaders.java | 40 + .../UpdateAllSkillCardsOnFileRequestBody.java | 176 ++ ...lSkillCardsOnFileRequestBodyFileField.java | 101 + ...llCardsOnFileRequestBodyFileTypeField.java | 62 + ...ardsOnFileRequestBodyFileVersionField.java | 102 + ...OnFileRequestBodyFileVersionTypeField.java | 64 + ...llCardsOnFileRequestBodyMetadataField.java | 67 + ...killCardsOnFileRequestBodyStatusField.java | 66 + ...SkillCardsOnFileRequestBodyUsageField.java | 85 + .../UpdateBoxSkillCardsOnFileHeaders.java | 40 + .../UpdateBoxSkillCardsOnFileRequestBody.java | 150 ++ ...BoxSkillCardsOnFileRequestBodyOpField.java | 62 + .../GetStoragePoliciesHeaders.java | 40 + .../GetStoragePoliciesQueryParams.java | 60 + .../GetStoragePolicyByIdHeaders.java | 40 + .../StoragePoliciesManager.java | 132 ++ .../CreateStoragePolicyAssignmentHeaders.java | 40 + ...ateStoragePolicyAssignmentRequestBody.java | 65 + ...yAssignmentRequestBodyAssignedToField.java | 80 + ...ignmentRequestBodyAssignedToTypeField.java | 66 + ...signmentRequestBodyStoragePolicyField.java | 111 + ...mentRequestBodyStoragePolicyTypeField.java | 66 + ...eteStoragePolicyAssignmentByIdHeaders.java | 40 + ...GetStoragePolicyAssignmentByIdHeaders.java | 40 + .../GetStoragePolicyAssignmentsHeaders.java | 40 + ...etStoragePolicyAssignmentsQueryParams.java | 83 + ...nmentsQueryParamsResolvedForTypeField.java | 66 + .../StoragePolicyAssignmentsManager.java | 214 ++ ...ateStoragePolicyAssignmentByIdHeaders.java | 40 + ...toragePolicyAssignmentByIdRequestBody.java | 51 + ...mentByIdRequestBodyStoragePolicyField.java | 113 + ...ByIdRequestBodyStoragePolicyTypeField.java | 67 + .../CreateTaskAssignmentHeaders.java | 40 + .../CreateTaskAssignmentRequestBody.java | 61 + ...askAssignmentRequestBodyAssignToField.java | 85 + ...ateTaskAssignmentRequestBodyTaskField.java | 108 + ...askAssignmentRequestBodyTaskTypeField.java | 62 + .../DeleteTaskAssignmentByIdHeaders.java | 40 + .../GetTaskAssignmentByIdHeaders.java | 40 + .../GetTaskAssignmentsHeaders.java | 40 + .../TaskAssignmentsManager.java | 214 ++ .../UpdateTaskAssignmentByIdHeaders.java | 40 + .../UpdateTaskAssignmentByIdRequestBody.java | 106 + ...ntByIdRequestBodyResolutionStateField.java | 66 + .../managers/tasks/CreateTaskHeaders.java | 40 + .../managers/tasks/CreateTaskRequestBody.java | 177 ++ .../CreateTaskRequestBodyActionField.java | 63 + ...ateTaskRequestBodyCompletionRuleField.java | 63 + .../tasks/CreateTaskRequestBodyItemField.java | 97 + .../CreateTaskRequestBodyItemTypeField.java | 62 + .../managers/tasks/DeleteTaskByIdHeaders.java | 40 + .../managers/tasks/GetFileTasksHeaders.java | 40 + .../managers/tasks/GetTaskByIdHeaders.java | 40 + .../sdkgen/managers/tasks/TasksManager.java | 200 ++ .../managers/tasks/UpdateTaskByIdHeaders.java | 40 + .../tasks/UpdateTaskByIdRequestBody.java | 160 ++ .../UpdateTaskByIdRequestBodyActionField.java | 63 + ...askByIdRequestBodyCompletionRuleField.java | 63 + .../CreateTermsOfServiceHeaders.java | 40 + .../CreateTermsOfServiceRequestBody.java | 143 ++ ...eTermsOfServiceRequestBodyStatusField.java | 63 + ...TermsOfServiceRequestBodyTosTypeField.java | 63 + .../GetTermsOfServiceByIdHeaders.java | 40 + .../GetTermsOfServiceHeaders.java | 40 + .../GetTermsOfServiceQueryParams.java | 37 + ...TermsOfServiceQueryParamsTosTypeField.java | 63 + .../TermsOfServicesManager.java | 187 ++ .../UpdateTermsOfServiceByIdHeaders.java | 40 + .../UpdateTermsOfServiceByIdRequestBody.java | 78 + ...msOfServiceByIdRequestBodyStatusField.java | 63 + ...ateTermsOfServiceStatusForUserHeaders.java | 40 + ...ermsOfServiceStatusForUserRequestBody.java | 76 + ...rviceStatusForUserRequestBodyTosField.java | 110 + ...eStatusForUserRequestBodyTosTypeField.java | 64 + ...viceStatusForUserRequestBodyUserField.java | 110 + ...StatusForUserRequestBodyUserTypeField.java | 65 + .../GetTermsOfServiceUserStatusesHeaders.java | 40 + ...TermsOfServiceUserStatusesQueryParams.java | 45 + .../TermsOfServiceUserStatusesManager.java | 164 ++ ...ermsOfServiceStatusForUserByIdHeaders.java | 40 + ...OfServiceStatusForUserByIdRequestBody.java | 50 + .../managers/transfer/TransferManager.java | 121 + .../transfer/TransferOwnedFolderHeaders.java | 40 + .../TransferOwnedFolderQueryParams.java | 46 + .../TransferOwnedFolderRequestBody.java | 45 + ...ferOwnedFolderRequestBodyOwnedByField.java | 44 + .../DeleteTrashedFileByIdHeaders.java | 40 + .../GetTrashedFileByIdHeaders.java | 40 + .../GetTrashedFileByIdQueryParams.java | 32 + .../RestoreFileFromTrashHeaders.java | 40 + .../RestoreFileFromTrashQueryParams.java | 32 + .../RestoreFileFromTrashRequestBody.java | 84 + ...reFileFromTrashRequestBodyParentField.java | 63 + .../trashedfiles/TrashedFilesManager.java | 219 ++ .../DeleteTrashedFolderByIdHeaders.java | 40 + .../GetTrashedFolderByIdHeaders.java | 40 + .../GetTrashedFolderByIdQueryParams.java | 32 + .../RestoreFolderFromTrashHeaders.java | 40 + .../RestoreFolderFromTrashQueryParams.java | 32 + .../RestoreFolderFromTrashRequestBody.java | 84 + ...FolderFromTrashRequestBodyParentField.java | 63 + .../trashedfolders/TrashedFoldersManager.java | 222 ++ .../trasheditems/GetTrashedItemsHeaders.java | 40 + .../GetTrashedItemsQueryParams.java | 127 + ...TrashedItemsQueryParamsDirectionField.java | 63 + .../GetTrashedItemsQueryParamsSortField.java | 64 + .../trasheditems/TrashedItemsManager.java | 109 + .../DeleteTrashedWebLinkByIdHeaders.java | 40 + .../GetTrashedWebLinkByIdHeaders.java | 40 + .../GetTrashedWebLinkByIdQueryParams.java | 32 + .../RestoreWeblinkFromTrashHeaders.java | 40 + .../RestoreWeblinkFromTrashQueryParams.java | 32 + .../RestoreWeblinkFromTrashRequestBody.java | 84 + ...eblinkFromTrashRequestBodyParentField.java | 63 + .../TrashedWebLinksManager.java | 223 ++ .../PreflightFileUploadCheckHeaders.java | 40 + .../PreflightFileUploadCheckRequestBody.java | 104 + ...FileUploadCheckRequestBodyParentField.java | 63 + .../managers/uploads/UploadFileHeaders.java | 54 + .../uploads/UploadFileQueryParams.java | 32 + .../uploads/UploadFileRequestBody.java | 72 + .../UploadFileRequestBodyAttributesField.java | 134 ++ ...dFileRequestBodyAttributesParentField.java | 44 + .../uploads/UploadFileVersionHeaders.java | 68 + .../uploads/UploadFileVersionQueryParams.java | 32 + .../uploads/UploadFileVersionRequestBody.java | 73 + ...FileVersionRequestBodyAttributesField.java | 95 + .../UploadWithPreflightCheckHeaders.java | 54 + .../UploadWithPreflightCheckQueryParams.java | 32 + .../UploadWithPreflightCheckRequestBody.java | 74 + ...flightCheckRequestBodyAttributesField.java | 153 ++ ...CheckRequestBodyAttributesParentField.java | 44 + .../managers/uploads/UploadsManager.java | 294 +++ .../CreateCollaborationHeaders.java | 40 + .../CreateCollaborationQueryParams.java | 46 + .../CreateCollaborationRequestBody.java | 202 ++ ...aborationRequestBodyAccessibleByField.java | 130 ++ ...ationRequestBodyAccessibleByTypeField.java | 63 + ...eateCollaborationRequestBodyItemField.java | 100 + ...CollaborationRequestBodyItemTypeField.java | 63 + ...eateCollaborationRequestBodyRoleField.java | 68 + .../DeleteCollaborationByIdHeaders.java | 40 + .../GetCollaborationByIdHeaders.java | 40 + .../GetCollaborationByIdQueryParams.java | 32 + .../UpdateCollaborationByIdHeaders.java | 40 + .../UpdateCollaborationByIdRequestBody.java | 166 ++ ...CollaborationByIdRequestBodyRoleField.java | 69 + ...llaborationByIdRequestBodyStatusField.java | 64 + .../UserCollaborationsManager.java | 213 ++ .../managers/users/CreateUserHeaders.java | 40 + .../managers/users/CreateUserQueryParams.java | 32 + .../managers/users/CreateUserRequestBody.java | 442 ++++ .../users/CreateUserRequestBodyRoleField.java | 63 + .../CreateUserRequestBodyStatusField.java | 65 + .../managers/users/DeleteUserByIdHeaders.java | 40 + .../users/DeleteUserByIdQueryParams.java | 44 + .../managers/users/GetUserByIdHeaders.java | 40 + .../users/GetUserByIdQueryParams.java | 32 + .../managers/users/GetUserMeHeaders.java | 40 + .../managers/users/GetUserMeQueryParams.java | 32 + .../managers/users/GetUsersHeaders.java | 40 + .../managers/users/GetUsersQueryParams.java | 136 ++ .../GetUsersQueryParamsUserTypeField.java | 64 + .../managers/users/UpdateUserByIdHeaders.java | 40 + .../users/UpdateUserByIdQueryParams.java | 32 + .../users/UpdateUserByIdRequestBody.java | 511 ++++ ...ByIdRequestBodyNotificationEmailField.java | 63 + .../UpdateUserByIdRequestBodyRoleField.java | 63 + .../UpdateUserByIdRequestBodyStatusField.java | 65 + .../sdkgen/managers/users/UsersManager.java | 324 +++ .../webhooks/CreateWebhookHeaders.java | 40 + .../webhooks/CreateWebhookRequestBody.java | 145 ++ .../CreateWebhookRequestBodyTargetField.java | 100 + ...eateWebhookRequestBodyTargetTypeField.java | 63 + ...CreateWebhookRequestBodyTriggersField.java | 101 + .../webhooks/DeleteWebhookByIdHeaders.java | 40 + .../webhooks/GetWebhookByIdHeaders.java | 40 + .../managers/webhooks/GetWebhooksHeaders.java | 40 + .../webhooks/GetWebhooksQueryParams.java | 44 + .../webhooks/UpdateWebhookByIdHeaders.java | 40 + .../UpdateWebhookByIdRequestBody.java | 176 ++ ...dateWebhookByIdRequestBodyTargetField.java | 100 + ...WebhookByIdRequestBodyTargetTypeField.java | 63 + ...teWebhookByIdRequestBodyTriggersField.java | 101 + .../managers/webhooks/WebhooksManager.java | 278 +++ .../weblinks/CreateWebLinkHeaders.java | 40 + .../weblinks/CreateWebLinkRequestBody.java | 124 + .../CreateWebLinkRequestBodyParentField.java | 43 + .../weblinks/DeleteWebLinkByIdHeaders.java | 40 + .../weblinks/GetWebLinkByIdHeaders.java | 54 + .../weblinks/UpdateWebLinkByIdHeaders.java | 40 + .../UpdateWebLinkByIdRequestBody.java | 144 ++ ...dateWebLinkByIdRequestBodyParentField.java | 86 + ...kByIdRequestBodySharedLinkAccessField.java | 64 + ...WebLinkByIdRequestBodySharedLinkField.java | 149 ++ .../managers/weblinks/WebLinksManager.java | 181 ++ .../workflows/GetWorkflowsHeaders.java | 40 + .../workflows/GetWorkflowsQueryParams.java | 73 + .../workflows/StartWorkflowHeaders.java | 40 + .../workflows/StartWorkflowRequestBody.java | 158 ++ .../StartWorkflowRequestBodyFilesField.java | 100 + ...tartWorkflowRequestBodyFilesTypeField.java | 62 + .../StartWorkflowRequestBodyFlowField.java | 84 + .../StartWorkflowRequestBodyFolderField.java | 100 + ...artWorkflowRequestBodyFolderTypeField.java | 62 + .../StartWorkflowRequestBodyTypeField.java | 62 + .../managers/workflows/WorkflowsManager.java | 123 + .../CreateZipDownloadHeaders.java | 40 + .../zipdownloads/DownloadZipHeaders.java | 40 + .../GetZipDownloadContentHeaders.java | 40 + .../GetZipDownloadStatusHeaders.java | 40 + .../zipdownloads/ZipDownloadsManager.java | 149 ++ .../networking/auth/Authentication.java | 27 + .../sdkgen/networking/baseurls/BaseUrls.java | 99 + .../boxnetworkclient/BoxNetworkClient.java | 361 +++ .../DefaultNetworkClient.java | 293 +++ .../networking/fetchoptions/FetchOptions.java | 201 ++ .../fetchoptions/MultipartItem.java | 90 + .../fetchoptions/ResponseFormat.java | 61 + .../fetchresponse/FetchResponse.java | 88 + .../networking/interceptors/Interceptor.java | 11 + .../networking/network/NetworkSession.java | 199 ++ .../networkclient/NetworkClient.java | 9 + .../networking/retries/BoxRetryStrategy.java | 134 ++ .../networking/retries/RetryStrategy.java | 11 + .../sdkgen/networking/version/Version.java | 8 + .../BoxVersionHeaderV2025R0.java | 62 + .../schemas/accesstoken/AccessToken.java | 190 ++ .../AccessTokenIssuedTokenTypeField.java | 62 + .../AccessTokenTokenTypeField.java | 62 + .../AiAgentAllowedEntity.java | 83 + .../sdkgen/schemas/aiagentask/AiAgentAsk.java | 233 ++ .../aiagentask/AiAgentAskTypeField.java | 60 + ...gentExtractStructuredOrAiAgentTextGen.java | 123 + .../AiAgentAskOrAiAgentReference.java | 79 + .../AiAgentBasicGenTool.java | 170 ++ .../AiAgentBasicTextTool.java | 150 ++ .../AiAgentBasicTextToolBase.java | 132 ++ .../AiAgentBasicTextToolTextGen.java | 150 ++ .../aiagentextract/AiAgentExtract.java | 146 ++ .../AiAgentExtractTypeField.java | 62 + .../AiAgentExtractOrAiAgentReference.java | 79 + .../AiAgentExtractStructured.java | 151 ++ .../AiAgentExtractStructuredTypeField.java | 62 + ...ntExtractStructuredOrAiAgentReference.java | 84 + .../schemas/aiagentinfo/AiAgentInfo.java | 85 + .../aiagentinfo/AiAgentInfoModelsField.java | 106 + .../AiAgentLongTextTool.java | 155 ++ .../AiAgentLongTextToolEmbeddingsField.java | 84 + ...ntLongTextToolEmbeddingsStrategyField.java | 88 + .../AiAgentLongTextToolTextGen.java | 155 ++ ...entLongTextToolTextGenEmbeddingsField.java | 85 + ...extToolTextGenEmbeddingsStrategyField.java | 88 + .../aiagentreference/AiAgentReference.java | 92 + .../AiAgentReferenceTypeField.java | 62 + .../AiAgentReferenceOrAiAgentTextGen.java | 79 + .../AiAgentSpreadsheetTool.java | 132 ++ .../aiagenttextgen/AiAgentTextGen.java | 96 + .../AiAgentTextGenTypeField.java | 62 + .../com/box/sdkgen/schemas/aiask/AiAsk.java | 198 ++ .../sdkgen/schemas/aiask/AiAskModeField.java | 60 + .../sdkgen/schemas/aicitation/AiCitation.java | 133 ++ .../aicitation/AiCitationTypeField.java | 60 + .../aidialoguehistory/AiDialogueHistory.java | 112 + .../sdkgen/schemas/aiextract/AiExtract.java | 120 + .../aiextractresponse/AiExtractResponse.java | 17 + .../AiExtractStructured.java | 142 ++ .../AiExtractStructuredFieldsField.java | 164 ++ ...AiExtractStructuredFieldsOptionsField.java | 43 + ...xtractStructuredMetadataTemplateField.java | 122 + ...ctStructuredMetadataTemplateTypeField.java | 62 + .../AiExtractStructuredResponse.java | 135 ++ .../sdkgen/schemas/aiitemask/AiItemAsk.java | 121 + .../schemas/aiitemask/AiItemAskTypeField.java | 61 + .../sdkgen/schemas/aiitembase/AiItemBase.java | 118 + .../aiitembase/AiItemBaseTypeField.java | 60 + .../AiLlmEndpointParams.java | 136 ++ .../AiLlmEndpointParamsAws.java | 132 ++ .../AiLlmEndpointParamsAwsTypeField.java | 62 + .../AiLlmEndpointParamsGoogle.java | 155 ++ .../AiLlmEndpointParamsGoogleTypeField.java | 62 + .../AiLlmEndpointParamsIbm.java | 154 ++ .../AiLlmEndpointParamsIbmTypeField.java | 62 + .../AiLlmEndpointParamsOpenAi.java | 197 ++ .../AiLlmEndpointParamsOpenAiTypeField.java | 62 + .../AiMultipleAgentResponse.java | 134 ++ .../sdkgen/schemas/airesponse/AiResponse.java | 133 ++ .../airesponsefull/AiResponseFull.java | 107 + .../AiSingleAgentResponse.java | 292 +++ .../AiSingleAgentResponseTypeField.java | 62 + .../AiSingleAgentResponseFull.java | 239 ++ .../aistudioagentask/AiStudioAgentAsk.java | 317 +++ .../AiStudioAgentAskTypeField.java | 62 + .../AiStudioAgentAskResponse.java | 322 +++ .../AiStudioAgentAskResponseTypeField.java | 62 + .../AiStudioAgentBasicGenTool.java | 182 ++ .../AiStudioAgentBasicGenToolResponse.java | 193 ++ .../AiStudioAgentBasicTextTool.java | 157 ++ .../AiStudioAgentBasicTextToolResponse.java | 168 ++ .../AiStudioAgentExtract.java | 210 ++ .../AiStudioAgentExtractTypeField.java | 62 + .../AiStudioAgentExtractResponse.java | 214 ++ ...AiStudioAgentExtractResponseTypeField.java | 62 + .../AiStudioAgentLongTextTool.java | 170 ++ .../AiStudioAgentLongTextToolResponse.java | 181 ++ .../AiStudioAgentSpreadsheetTool.java | 108 + .../AiStudioAgentSpreadsheetToolResponse.java | 128 + .../AiStudioAgentTextGen.java | 190 ++ .../AiStudioAgentTextGenTypeField.java | 62 + .../AiStudioAgentTextGenResponse.java | 194 ++ ...AiStudioAgentTextGenResponseTypeField.java | 62 + .../sdkgen/schemas/aitextgen/AiTextGen.java | 141 ++ .../aitextgen/AiTextGenItemsField.java | 118 + .../aitextgen/AiTextGenItemsTypeField.java | 62 + .../box/sdkgen/schemas/appitem/AppItem.java | 117 + .../schemas/appitem/AppItemTypeField.java | 60 + .../AppItemAssociation.java | 205 ++ .../AppItemAssociationTypeField.java | 62 + .../AppItemAssociations.java | 133 ++ .../AppItemEventSource.java | 159 ++ .../AppItemEventSourceTypeField.java | 62 + ...ceOrFileOrFolderOrGenericSourceOrUser.java | 152 ++ .../classification/Classification.java | 220 ++ .../ClassificationTemplateField.java | 62 + .../ClassificationTemplate.java | 256 ++ ...lassificationTemplateDisplayNameField.java | 62 + ...icationTemplateFieldsDisplayNameField.java | 62 + .../ClassificationTemplateFieldsField.java | 223 ++ .../ClassificationTemplateFieldsKeyField.java | 62 + ...ssificationTemplateFieldsOptionsField.java | 104 + ...ptionsStaticConfigClassificationField.java | 89 + ...emplateFieldsOptionsStaticConfigField.java | 68 + ...ClassificationTemplateFieldsTypeField.java | 62 + ...lassificationTemplateTemplateKeyField.java | 62 + .../ClassificationTemplateTypeField.java | 62 + .../schemas/clienterror/ClientError.java | 205 ++ .../clienterror/ClientErrorCodeField.java | 76 + .../clienterror/ClientErrorTypeField.java | 60 + .../schemas/collaboration/Collaboration.java | 440 ++++ ...tionAcceptanceRequirementsStatusField.java | 126 + ...sStatusStrongPasswordRequirementField.java | 99 + ...sStatusTermsOfServiceRequirementField.java | 95 + ...oFactorAuthenticationRequirementField.java | 99 + .../collaboration/CollaborationRoleField.java | 69 + .../CollaborationStatusField.java | 64 + .../collaboration/CollaborationTypeField.java | 62 + .../CollaborationAllowlistEntries.java | 133 ++ .../CollaborationAllowlistEntry.java | 195 ++ ...aborationAllowlistEntryDirectionField.java | 64 + ...borationAllowlistEntryEnterpriseField.java | 121 + ...tionAllowlistEntryEnterpriseTypeField.java | 62 + .../CollaborationAllowlistEntryTypeField.java | 62 + .../CollaborationAllowlistExemptTarget.java | 187 ++ ...nAllowlistExemptTargetEnterpriseField.java | 121 + ...owlistExemptTargetEnterpriseTypeField.java | 62 + ...orationAllowlistExemptTargetTypeField.java | 62 + .../CollaborationAllowlistExemptTargets.java | 133 ++ .../collaborations/Collaborations.java | 133 ++ .../CollaborationsOffsetPaginated.java | 127 + .../CollaboratorVariable.java | 145 ++ .../CollaboratorVariableTypeField.java | 62 + ...CollaboratorVariableVariableTypeField.java | 62 + ...ollaboratorVariableVariableValueField.java | 108 + ...boratorVariableVariableValueTypeField.java | 62 + .../sdkgen/schemas/collection/Collection.java | 151 ++ .../CollectionCollectionTypeField.java | 62 + .../collection/CollectionNameField.java | 60 + .../collection/CollectionTypeField.java | 60 + .../schemas/collections/Collections.java | 146 ++ .../CollectionsOrderDirectionField.java | 63 + .../collections/CollectionsOrderField.java | 96 + .../box/sdkgen/schemas/comment/Comment.java | 204 ++ .../schemas/comment/CommentItemField.java | 76 + .../schemas/commentbase/CommentBase.java | 86 + .../commentbase/CommentBaseTypeField.java | 60 + .../schemas/commentfull/CommentFull.java | 167 ++ .../box/sdkgen/schemas/comments/Comments.java | 146 ++ .../comments/CommentsOrderDirectionField.java | 63 + .../schemas/comments/CommentsOrderField.java | 95 + .../CompletionRuleVariable.java | 175 ++ .../CompletionRuleVariableTypeField.java | 62 + ...mpletionRuleVariableVariableTypeField.java | 62 + ...pletionRuleVariableVariableValueField.java | 63 + .../schemas/conflicterror/ConflictError.java | 140 ++ .../ConflictErrorContextInfoField.java | 64 + .../schemas/createaiagent/CreateAiAgent.java | 221 ++ .../createaiagent/CreateAiAgentTypeField.java | 62 + .../schemas/devicepinner/DevicePinner.java | 137 ++ .../devicepinner/DevicePinnerTypeField.java | 60 + .../schemas/devicepinners/DevicePinners.java | 127 + .../DevicePinnersOrderByField.java | 62 + .../DevicePinnersOrderDirectionField.java | 63 + .../DevicePinnersOrderField.java | 103 + .../sdkgen/schemas/emailalias/EmailAlias.java | 135 ++ .../emailalias/EmailAliasTypeField.java | 60 + .../schemas/emailaliases/EmailAliases.java | 88 + .../enterprisebase/EnterpriseBase.java | 86 + .../EnterpriseBaseTypeField.java | 62 + .../com/box/sdkgen/schemas/event/Event.java | 290 +++ .../event/EventAdditionalDetailsField.java | 17 + .../schemas/event/EventEventTypeField.java | 203 ++ .../com/box/sdkgen/schemas/events/Events.java | 119 + .../events/EventsNextStreamPositionField.java | 67 + .../schemas/eventsource/EventSource.java | 187 ++ .../EventSourceClassificationField.java | 62 + .../eventsource/EventSourceItemTypeField.java | 63 + .../com/box/sdkgen/schemas/file/File.java | 486 ++++ .../schemas/file/FileItemStatusField.java | 62 + .../schemas/file/FilePathCollectionField.java | 63 + .../file/FileSharedLinkAccessField.java | 64 + .../FileSharedLinkEffectiveAccessField.java | 64 + ...ileSharedLinkEffectivePermissionField.java | 65 + .../schemas/file/FileSharedLinkField.java | 433 ++++ .../file/FileSharedLinkPermissionsField.java | 77 + .../box/sdkgen/schemas/filebase/FileBase.java | 120 + .../schemas/filebase/FileBaseTypeField.java | 60 + .../FileBaseOrFolderBaseOrWebLinkBase.java | 115 + .../schemas/fileconflict/FileConflict.java | 132 ++ .../box/sdkgen/schemas/filefull/FileFull.java | 912 ++++++++ .../FileFullAllowedInviteeRolesField.java | 68 + .../filefull/FileFullClassificationField.java | 104 + .../FileFullExpiringEmbedLinkField.java | 165 ++ ...leFullExpiringEmbedLinkTokenTypeField.java | 62 + .../filefull/FileFullLockAppTypeField.java | 65 + .../schemas/filefull/FileFullLockField.java | 214 ++ .../filefull/FileFullLockTypeField.java | 60 + .../filefull/FileFullMetadataField.java | 66 + .../filefull/FileFullPermissionsField.java | 215 ++ ...ullRepresentationsEntriesContentField.java | 69 + .../FileFullRepresentationsEntriesField.java | 142 ++ ...leFullRepresentationsEntriesInfoField.java | 62 + ...RepresentationsEntriesPropertiesField.java | 105 + ...FullRepresentationsEntriesStatusField.java | 79 + ...epresentationsEntriesStatusStateField.java | 65 + .../FileFullRepresentationsField.java | 63 + ...eFullSharedLinkPermissionOptionsField.java | 64 + .../filefull/FileFullWatermarkInfoField.java | 64 + .../FileFullOrFolderFull.java | 263 +++ .../FileFullOrFolderFullOrWebLink.java | 223 ++ .../FileFullOrFolderMiniOrWebLink.java | 130 ++ .../box/sdkgen/schemas/filemini/FileMini.java | 166 ++ .../FileMiniOrFolderMini.java | 107 + .../schemas/fileorfolder/FileOrFolder.java | 213 ++ .../FileOrFolderOrWebLink.java | 220 ++ .../fileorfolderscope/FileOrFolderScope.java | 108 + .../FileOrFolderScopeScopeField.java | 75 + .../schemas/filerequest/FileRequest.java | 383 +++ .../filerequest/FileRequestStatusField.java | 63 + .../filerequest/FileRequestTypeField.java | 60 + .../FileRequestCopyRequest.java | 143 ++ .../FileRequestCopyRequestFolderField.java | 102 + ...FileRequestCopyRequestFolderTypeField.java | 62 + .../FileRequestUpdateRequest.java | 184 ++ .../FileRequestUpdateRequestStatusField.java | 63 + .../com/box/sdkgen/schemas/files/Files.java | 88 + .../schemas/filesonhold/FilesOnHold.java | 133 ++ .../FilesUnderRetention.java | 133 ++ .../schemas/fileversion/FileVersion.java | 340 +++ .../fileversionbase/FileVersionBase.java | 90 + .../FileVersionBaseTypeField.java | 62 + .../fileversionfull/FileVersionFull.java | 247 ++ .../FileVersionLegalHold.java | 186 ++ .../FileVersionLegalHoldTypeField.java | 62 + .../FileVersionLegalHolds.java | 133 ++ .../fileversionmini/FileVersionMini.java | 94 + .../FileVersionRetention.java | 207 ++ .../FileVersionRetentionTypeField.java | 62 + .../FileVersionRetentions.java | 133 ++ .../schemas/fileversions/FileVersions.java | 146 ++ .../FileVersionsOrderDirectionField.java | 63 + .../fileversions/FileVersionsOrderField.java | 96 + .../com/box/sdkgen/schemas/folder/Folder.java | 511 ++++ .../FolderFolderUploadEmailAccessField.java | 63 + .../folder/FolderFolderUploadEmailField.java | 97 + .../schemas/folder/FolderItemStatusField.java | 62 + .../folder/FolderPathCollectionField.java | 63 + .../folder/FolderSharedLinkAccessField.java | 64 + .../FolderSharedLinkEffectiveAccessField.java | 64 + ...derSharedLinkEffectivePermissionField.java | 65 + .../schemas/folder/FolderSharedLinkField.java | 436 ++++ .../FolderSharedLinkPermissionsField.java | 77 + .../sdkgen/schemas/folderbase/FolderBase.java | 120 + .../folderbase/FolderBaseTypeField.java | 60 + .../sdkgen/schemas/folderfull/FolderFull.java | 791 +++++++ .../FolderFullAllowedInviteeRolesField.java | 68 + ...ullAllowedSharedLinkAccessLevelsField.java | 64 + .../FolderFullClassificationField.java | 104 + .../folderfull/FolderFullMetadataField.java | 66 + .../FolderFullPermissionsField.java | 140 ++ .../folderfull/FolderFullSyncStateField.java | 64 + .../FolderFullWatermarkInfoField.java | 64 + .../sdkgen/schemas/folderlock/FolderLock.java | 193 ++ .../FolderLockLockedOperationsField.java | 59 + .../schemas/folderlocks/FolderLocks.java | 111 + .../sdkgen/schemas/foldermini/FolderMini.java | 126 + .../folderreference/FolderReference.java | 90 + .../FolderReferenceTypeField.java | 62 + .../com/box/sdkgen/schemas/group/Group.java | 152 ++ .../sdkgen/schemas/groupbase/GroupBase.java | 90 + .../schemas/groupbase/GroupBaseTypeField.java | 60 + .../sdkgen/schemas/groupfull/GroupFull.java | 283 +++ .../GroupFullInvitabilityLevelField.java | 64 + .../GroupFullMemberViewabilityLevelField.java | 64 + .../groupfull/GroupFullPermissionsField.java | 68 + .../groupmembership/GroupMembership.java | 208 ++ .../GroupMembershipRoleField.java | 63 + .../GroupMembershipTypeField.java | 62 + .../groupmemberships/GroupMemberships.java | 146 ++ .../GroupMembershipsOrderDirectionField.java | 63 + .../GroupMembershipsOrderField.java | 98 + .../sdkgen/schemas/groupmini/GroupMini.java | 123 + .../groupmini/GroupMiniGroupTypeField.java | 63 + .../GroupMiniOrUserCollaborations.java | 95 + .../com/box/sdkgen/schemas/groups/Groups.java | 146 ++ .../groups/GroupsOrderDirectionField.java | 63 + .../schemas/groups/GroupsOrderField.java | 86 + .../IntegrationMapping.java | 304 +++ ...ntegrationMappingIntegrationTypeField.java | 62 + .../IntegrationMappingBase.java | 96 + .../IntegrationMappingBaseTypeField.java | 62 + .../IntegrationMappingBoxItemSlack.java | 108 + ...tegrationMappingBoxItemSlackTypeField.java | 62 + .../IntegrationMappingPartnerItemSlack.java | 154 ++ ...ationMappingPartnerItemSlackTypeField.java | 62 + ...tegrationMappingPartnerItemSlackUnion.java | 88 + .../IntegrationMappingPartnerItemTeams.java | 94 + ...ationMappingPartnerItemTeamsTypeField.java | 63 + ...nMappingPartnerItemTeamsCreateRequest.java | 114 + ...artnerItemTeamsCreateRequestTypeField.java | 65 + ...tegrationMappingPartnerItemTeamsUnion.java | 84 + .../IntegrationMappings.java | 111 + .../IntegrationMappingSlackCreateRequest.java | 111 + .../IntegrationMappingSlackOptions.java | 68 + .../IntegrationMappingsTeams.java | 64 + .../IntegrationMappingTeams.java | 241 ++ ...ationMappingTeamsIntegrationTypeField.java | 62 + .../IntegrationMappingTeamsCreateRequest.java | 65 + .../com/box/sdkgen/schemas/invite/Invite.java | 226 ++ .../schemas/invite/InviteInvitedToField.java | 114 + .../invite/InviteInvitedToTypeField.java | 62 + .../schemas/invite/InviteTypeField.java | 60 + .../com/box/sdkgen/schemas/items/Items.java | 191 ++ .../items/ItemsOrderDirectionField.java | 63 + .../sdkgen/schemas/items/ItemsOrderField.java | 86 + .../ItemsOffsetPaginated.java | 146 ++ ...emsOffsetPaginatedOrderDirectionField.java | 63 + .../ItemsOffsetPaginatedOrderField.java | 100 + .../keywordskillcard/KeywordSkillCard.java | 218 ++ .../KeywordSkillCardEntriesField.java | 62 + .../KeywordSkillCardInvocationField.java | 106 + .../KeywordSkillCardInvocationTypeField.java | 62 + .../KeywordSkillCardSkillCardTitleField.java | 86 + .../KeywordSkillCardSkillCardTypeField.java | 62 + .../KeywordSkillCardSkillField.java | 94 + .../KeywordSkillCardSkillTypeField.java | 62 + .../KeywordSkillCardTypeField.java | 62 + ...imelineSkillCardOrTranscriptSkillCard.java | 145 ++ .../legalholdpolicies/LegalHoldPolicies.java | 133 ++ .../legalholdpolicy/LegalHoldPolicy.java | 328 +++ .../LegalHoldPolicyAssignmentCountsField.java | 125 + .../LegalHoldPolicyStatusField.java | 65 + .../LegalHoldPolicyAssignment.java | 206 ++ .../LegalHoldPolicyAssignmentBase.java | 100 + ...egalHoldPolicyAssignmentBaseTypeField.java | 62 + .../LegalHoldPolicyAssignments.java | 133 ++ .../LegalHoldPolicyMini.java | 95 + .../LegalHoldPolicyMiniTypeField.java | 62 + .../box/sdkgen/schemas/metadata/Metadata.java | 90 + .../schemas/metadatabase/MetadataBase.java | 128 + .../MetadataCascadePolicies.java | 133 ++ .../MetadataCascadePolicy.java | 182 ++ ...dataCascadePolicyOwnerEnterpriseField.java | 101 + ...CascadePolicyOwnerEnterpriseTypeField.java | 62 + .../MetadataCascadePolicyParentField.java | 99 + .../MetadataCascadePolicyParentTypeField.java | 62 + .../MetadataCascadePolicyTypeField.java | 62 + .../schemas/metadataerror/MetadataError.java | 106 + .../MetadataFieldFilterDateRange.java | 84 + ...tRangeOrArrayOfStringOrNumberOrString.java | 138 ++ .../MetadataFieldFilterFloatRange.java | 76 + .../metadatafilter/MetadataFilter.java | 129 + .../MetadataFilterScopeField.java | 64 + .../schemas/metadatafull/MetadataFull.java | 194 ++ .../MetadataInstanceValue.java | 96 + .../schemas/metadataquery/MetadataQuery.java | 205 ++ .../MetadataQueryOrderByDirectionField.java | 63 + .../MetadataQueryOrderByField.java | 99 + .../MetadataQueryIndex.java | 144 ++ .../MetadataQueryIndexFieldsField.java | 104 + ...ataQueryIndexFieldsSortDirectionField.java | 63 + .../MetadataQueryIndexStatusField.java | 64 + .../MetadataQueryResults.java | 108 + .../sdkgen/schemas/metadatas/Metadatas.java | 78 + .../metadatatemplate/MetadataTemplate.java | 217 ++ .../MetadataTemplateFieldsField.java | 203 ++ .../MetadataTemplateFieldsOptionsField.java | 86 + .../MetadataTemplateFieldsTypeField.java | 67 + .../MetadataTemplateTypeField.java | 62 + .../metadatatemplates/MetadataTemplates.java | 133 ++ .../schemas/oauth2error/OAuth2Error.java | 87 + .../box/sdkgen/schemas/outcome/Outcome.java | 170 ++ .../postoauth2revoke/PostOAuth2Revoke.java | 107 + .../postoauth2token/PostOAuth2Token.java | 412 ++++ .../PostOAuth2TokenActorTokenTypeField.java | 62 + .../PostOAuth2TokenBoxSubjectTypeField.java | 63 + .../PostOAuth2TokenGrantTypeField.java | 67 + .../PostOAuth2TokenSubjectTokenTypeField.java | 62 + .../PostOAuth2TokenRefreshAccessToken.java | 149 ++ ...TokenRefreshAccessTokenGrantTypeField.java | 62 + .../realtimeserver/RealtimeServer.java | 145 ++ .../realtimeservers/RealtimeServers.java | 88 + .../sdkgen/schemas/recentitem/RecentItem.java | 181 ++ .../RecentItemInteractionTypeField.java | 66 + .../schemas/recentitems/RecentItems.java | 133 ++ .../retentionpolicies/RetentionPolicies.java | 111 + .../retentionpolicy/RetentionPolicy.java | 386 +++ .../RetentionPolicyAssignmentCountsField.java | 106 + .../RetentionPolicyPolicyTypeField.java | 63 + .../RetentionPolicyRetentionTypeField.java | 63 + .../RetentionPolicyStatusField.java | 63 + .../RetentionPolicyAssignment.java | 244 ++ ...entionPolicyAssignmentAssignedToField.java | 102 + ...onPolicyAssignmentAssignedToTypeField.java | 64 + ...tionPolicyAssignmentFilterFieldsField.java | 88 + .../RetentionPolicyAssignmentTypeField.java | 62 + .../RetentionPolicyAssignmentBase.java | 108 + ...etentionPolicyAssignmentBaseTypeField.java | 62 + .../RetentionPolicyAssignments.java | 111 + .../RetentionPolicyBase.java | 95 + .../RetentionPolicyBaseTypeField.java | 62 + .../RetentionPolicyMini.java | 152 ++ ...ntionPolicyMiniDispositionActionField.java | 63 + .../schemas/rolevariable/RoleVariable.java | 158 ++ .../rolevariable/RoleVariableTypeField.java | 60 + .../RoleVariableVariableTypeField.java | 62 + .../RoleVariableVariableValueField.java | 68 + .../schemas/searchresults/SearchResults.java | 164 ++ .../searchresults/SearchResultsTypeField.java | 62 + ...ResultsOrSearchResultsWithSharedLinks.java | 108 + .../SearchResultsWithSharedLinks.java | 172 ++ ...SearchResultsWithSharedLinksTypeField.java | 62 + .../SearchResultWithSharedLink.java | 125 + .../SessionTerminationMessage.java | 62 + .../ShieldInformationBarrier.java | 287 +++ .../ShieldInformationBarrierStatusField.java | 66 + .../ShieldInformationBarrierTypeField.java | 62 + .../ShieldInformationBarrierBase.java | 100 + ...ShieldInformationBarrierBaseTypeField.java | 62 + .../ShieldInformationBarrierReference.java | 69 + .../ShieldInformationBarrierReport.java | 221 ++ ...ldInformationBarrierReportStatusField.java | 65 + .../ShieldInformationBarrierReportBase.java | 100 + ...InformationBarrierReportBaseTypeField.java | 62 + ...ShieldInformationBarrierReportDetails.java | 62 + ...ationBarrierReportDetailsDetailsField.java | 69 + .../ShieldInformationBarrierReports.java | 111 + .../ShieldInformationBarriers.java | 111 + .../ShieldInformationBarrierSegment.java | 257 ++ ...eldInformationBarrierSegmentTypeField.java | 62 + ...ShieldInformationBarrierSegmentMember.java | 233 ++ ...rShieldInformationBarrierSegmentField.java | 115 + ...eldInformationBarrierSegmentTypeField.java | 78 + ...ldInformationBarrierSegmentMemberBase.java | 101 + ...tionBarrierSegmentMemberBaseTypeField.java | 62 + ...ldInformationBarrierSegmentMemberMini.java | 98 + ...hieldInformationBarrierSegmentMembers.java | 111 + ...dInformationBarrierSegmentRestriction.java | 222 ++ ...ormationBarrierSegmentRestrictionBase.java | 101 + ...arrierSegmentRestrictionBaseTypeField.java | 63 + ...ormationBarrierSegmentRestrictionMini.java | 132 ++ ...RestrictionMiniRestrictedSegmentField.java | 112 + ...rictionMiniRestrictedSegmentTypeField.java | 70 + ...iShieldInformationBarrierSegmentField.java | 121 + ...eldInformationBarrierSegmentTypeField.java | 80 + ...InformationBarrierSegmentRestrictions.java | 112 + .../ShieldInformationBarrierSegments.java | 111 + .../schemas/signrequest/SignRequest.java | 541 +++++ .../SignRequestSignFilesField.java | 89 + .../signrequest/SignRequestStatusField.java | 73 + .../signrequest/SignRequestTypeField.java | 60 + .../signrequestbase/SignRequestBase.java | 339 +++ .../SignRequestCreateRequest.java | 324 +++ ...questCreateRequestSignatureColorField.java | 64 + .../SignRequestCreateSigner.java | 325 +++ .../SignRequestCreateSignerRoleField.java | 64 + .../SignRequestPrefillTag.java | 143 ++ .../schemas/signrequests/SignRequests.java | 111 + .../signrequestsigner/SignRequestSigner.java | 321 +++ .../SignRequestSignerSignerDecisionField.java | 130 ++ ...nRequestSignerSignerDecisionTypeField.java | 63 + .../SignRequestSignerInput.java | 202 ++ ...ignRequestSignerInputContentTypeField.java | 76 + .../SignRequestSignerInputTypeField.java | 67 + .../schemas/signtemplate/SignTemplate.java | 427 ++++ .../SignTemplateAdditionalInfoField.java | 159 ++ ...emplateAdditionalInfoNonEditableField.java | 67 + ...gnTemplateAdditionalInfoRequiredField.java | 146 ++ ...ateAdditionalInfoRequiredSignersField.java | 62 + .../SignTemplateCustomBrandingField.java | 137 ++ .../SignTemplateReadySignLinkField.java | 170 ++ .../signtemplate/SignTemplateTypeField.java | 60 + .../schemas/signtemplates/SignTemplates.java | 133 ++ .../SkillCardsMetadata.java | 231 ++ .../skillinvocation/SkillInvocation.java | 268 +++ .../SkillInvocationEnterpriseField.java | 117 + .../SkillInvocationEnterpriseTypeField.java | 62 + .../SkillInvocationSkillField.java | 137 ++ .../SkillInvocationSkillTypeField.java | 62 + .../SkillInvocationStatusField.java | 138 ++ .../SkillInvocationStatusStateField.java | 66 + .../SkillInvocationTokenField.java | 84 + .../SkillInvocationTokenReadField.java | 144 ++ ...killInvocationTokenReadTokenTypeField.java | 62 + .../SkillInvocationTokenWriteField.java | 144 ++ ...illInvocationTokenWriteTokenTypeField.java | 62 + .../SkillInvocationTypeField.java | 62 + .../statusskillcard/StatusSkillCard.java | 216 ++ .../StatusSkillCardInvocationField.java | 105 + .../StatusSkillCardInvocationTypeField.java | 62 + .../StatusSkillCardSkillCardTitleField.java | 86 + .../StatusSkillCardSkillCardTypeField.java | 62 + .../StatusSkillCardSkillField.java | 94 + .../StatusSkillCardSkillTypeField.java | 62 + .../StatusSkillCardStatusCodeField.java | 66 + .../StatusSkillCardStatusField.java | 104 + .../StatusSkillCardTypeField.java | 62 + .../storagepolicies/StoragePolicies.java | 133 ++ .../schemas/storagepolicy/StoragePolicy.java | 94 + .../StoragePolicyAssignment.java | 146 ++ ...toragePolicyAssignmentAssignedToField.java | 84 + .../StoragePolicyAssignmentTypeField.java | 62 + .../StoragePolicyAssignments.java | 133 ++ .../storagepolicymini/StoragePolicyMini.java | 92 + .../StoragePolicyMiniTypeField.java | 62 + .../com/box/sdkgen/schemas/task/Task.java | 307 +++ .../sdkgen/schemas/task/TaskActionField.java | 61 + .../schemas/task/TaskCompletionRuleField.java | 63 + .../sdkgen/schemas/task/TaskTypeField.java | 59 + .../taskassignment/TaskAssignment.java | 285 +++ .../TaskAssignmentResolutionStateField.java | 65 + .../TaskAssignmentTypeField.java | 62 + .../taskassignments/TaskAssignments.java | 88 + .../com/box/sdkgen/schemas/tasks/Tasks.java | 88 + .../templatesigner/TemplateSigner.java | 297 +++ .../TemplateSignerRoleField.java | 64 + .../TemplateSignerInput.java | 359 +++ .../TemplateSignerInputContentTypeField.java | 76 + .../TemplateSignerInputCoordinatesField.java | 84 + .../TemplateSignerInputDimensionsField.java | 84 + .../TemplateSignerInputTypeField.java | 68 + .../termsofservice/TermsOfService.java | 214 ++ .../TermsOfServiceEnterpriseField.java | 116 + .../TermsOfServiceEnterpriseTypeField.java | 62 + .../TermsOfServiceStatusField.java | 63 + .../TermsOfServiceTosTypeField.java | 63 + .../TermsOfServiceBase.java | 94 + .../TermsOfServiceBaseTypeField.java | 62 + .../termsofservices/TermsOfServices.java | 88 + .../TermsOfServiceUserStatus.java | 211 ++ .../TermsOfServiceUserStatusTypeField.java | 62 + .../TermsOfServiceUserStatuses.java | 88 + .../timelineskillcard/TimelineSkillCard.java | 240 ++ .../TimelineSkillCardEntriesAppearsField.java | 84 + .../TimelineSkillCardEntriesField.java | 107 + .../TimelineSkillCardInvocationField.java | 107 + .../TimelineSkillCardInvocationTypeField.java | 62 + .../TimelineSkillCardSkillCardTitleField.java | 86 + .../TimelineSkillCardSkillCardTypeField.java | 62 + .../TimelineSkillCardSkillField.java | 102 + .../TimelineSkillCardSkillTypeField.java | 62 + .../TimelineSkillCardTypeField.java | 62 + .../schemas/trackingcode/TrackingCode.java | 114 + .../trackingcode/TrackingCodeTypeField.java | 60 + .../TranscriptSkillCard.java | 244 ++ ...ranscriptSkillCardEntriesAppearsField.java | 62 + .../TranscriptSkillCardEntriesField.java | 85 + .../TranscriptSkillCardInvocationField.java | 108 + ...ranscriptSkillCardInvocationTypeField.java | 62 + ...ranscriptSkillCardSkillCardTitleField.java | 86 + ...TranscriptSkillCardSkillCardTypeField.java | 62 + .../TranscriptSkillCardSkillField.java | 104 + .../TranscriptSkillCardSkillTypeField.java | 62 + .../TranscriptSkillCardTypeField.java | 62 + .../sdkgen/schemas/trashfile/TrashFile.java | 592 +++++ .../trashfile/TrashFileItemStatusField.java | 64 + .../TrashFilePathCollectionEntriesField.java | 164 ++ ...ashFilePathCollectionEntriesTypeField.java | 62 + .../TrashFilePathCollectionField.java | 62 + .../schemas/trashfile/TrashFileTypeField.java | 60 + .../trashfilerestored/TrashFileRestored.java | 590 +++++ .../TrashFileRestoredItemStatusField.java | 64 + .../TrashFileRestoredPathCollectionField.java | 63 + .../TrashFileRestoredTypeField.java | 62 + .../schemas/trashfolder/TrashFolder.java | 571 +++++ .../TrashFolderItemStatusField.java | 64 + ...TrashFolderPathCollectionEntriesField.java | 164 ++ ...hFolderPathCollectionEntriesTypeField.java | 62 + .../TrashFolderPathCollectionField.java | 62 + .../trashfolder/TrashFolderTypeField.java | 60 + .../TrashFolderRestored.java | 533 +++++ .../TrashFolderRestoredItemStatusField.java | 64 + ...rashFolderRestoredPathCollectionField.java | 63 + .../TrashFolderRestoredTypeField.java | 62 + .../schemas/trashweblink/TrashWebLink.java | 456 ++++ .../TrashWebLinkItemStatusField.java | 64 + ...rashWebLinkPathCollectionEntriesField.java | 164 ++ ...WebLinkPathCollectionEntriesTypeField.java | 62 + .../TrashWebLinkPathCollectionField.java | 62 + .../trashweblink/TrashWebLinkTypeField.java | 60 + .../TrashWebLinkRestored.java | 457 ++++ .../TrashWebLinkRestoredItemStatusField.java | 64 + ...ashWebLinkRestoredPathCollectionField.java | 63 + .../TrashWebLinkRestoredTypeField.java | 62 + .../schemas/uploadedpart/UploadedPart.java | 63 + .../sdkgen/schemas/uploadpart/UploadPart.java | 98 + .../uploadpartmini/UploadPartMini.java | 106 + .../schemas/uploadparts/UploadParts.java | 146 ++ .../UploadPartsOrderDirectionField.java | 63 + .../uploadparts/UploadPartsOrderField.java | 96 + .../schemas/uploadsession/UploadSession.java | 201 ++ .../UploadSessionSessionEndpointsField.java | 165 ++ .../uploadsession/UploadSessionTypeField.java | 62 + .../sdkgen/schemas/uploadurl/UploadUrl.java | 88 + .../com/box/sdkgen/schemas/user/User.java | 387 +++ .../user/UserNotificationEmailField.java | 86 + .../sdkgen/schemas/user/UserStatusField.java | 63 + .../sdkgen/schemas/useravatar/UserAvatar.java | 64 + .../useravatar/UserAvatarPicUrlsField.java | 104 + .../box/sdkgen/schemas/userbase/UserBase.java | 90 + .../schemas/userbase/UserBaseTypeField.java | 60 + .../UserCollaborations.java | 133 ++ .../box/sdkgen/schemas/userfull/UserFull.java | 527 +++++ .../userfull/UserFullEnterpriseField.java | 115 + .../userfull/UserFullEnterpriseTypeField.java | 62 + .../schemas/userfull/UserFullRoleField.java | 62 + .../UserIntegrationMappings.java | 113 + .../box/sdkgen/schemas/usermini/UserMini.java | 113 + .../com/box/sdkgen/schemas/users/Users.java | 191 ++ .../users/UsersOrderDirectionField.java | 63 + .../sdkgen/schemas/users/UsersOrderField.java | 86 + .../archivesv2025r0/ArchivesV2025R0.java | 111 + .../archivev2025r0/ArchiveV2025R0.java | 134 ++ .../ArchiveV2025R0TypeField.java | 62 + .../ClientErrorV2025R0.java | 207 ++ .../ClientErrorV2025R0CodeField.java | 78 + .../ClientErrorV2025R0TypeField.java | 62 + .../DocGenBatchBaseV2025R0.java | 96 + .../DocGenBatchBaseV2025R0TypeField.java | 62 + .../DocGenBatchCreateRequestV2025R0.java | 173 ++ ...eRequestV2025R0DestinationFolderField.java | 110 + ...uestV2025R0DestinationFolderTypeField.java | 65 + .../DocGenDocumentGenerationDataV2025R0.java | 64 + .../DocGenJobBaseV2025R0.java | 94 + .../DocGenJobBaseV2025R0TypeField.java | 62 + .../DocGenJobFullV2025R0.java | 260 +++ .../DocGenJobsFullV2025R0.java | 133 ++ .../docgenjobsv2025r0/DocGenJobsV2025R0.java | 133 ++ .../docgenjobv2025r0/DocGenJobV2025R0.java | 257 ++ .../DocGenJobV2025R0StatusField.java | 66 + .../DocGenTagsProcessingMessageV2025R0.java | 43 + .../docgentagsv2025r0/DocGenTagsV2025R0.java | 133 ++ .../docgentagv2025r0/DocGenTagV2025R0.java | 92 + .../DocGenTagV2025R0TagTypeField.java | 67 + .../DocGenTemplateBaseV2025R0.java | 63 + .../DocGenTemplateCreateRequestV2025R0.java | 44 + .../DocGenTemplatesV2025R0.java | 133 ++ .../DocGenTemplateV2025R0.java | 81 + .../EnterpriseReferenceV2025R0.java | 90 + .../EnterpriseReferenceV2025R0TypeField.java | 62 + ...derReferenceOrWeblinkReferenceV2025R0.java | 112 + .../FileReferenceV2025R0.java | 93 + .../FileReferenceV2025R0TypeField.java | 62 + .../FileVersionBaseV2025R0.java | 96 + .../FileVersionBaseV2025R0TypeField.java | 62 + .../FolderReferenceV2025R0.java | 94 + .../FolderReferenceV2025R0TypeField.java | 62 + .../groupbasev2025r0/GroupBaseV2025R0.java | 90 + .../GroupBaseV2025R0TypeField.java | 62 + .../groupminiv2025r0/GroupMiniV2025R0.java | 125 + .../GroupMiniV2025R0GroupTypeField.java | 63 + .../HubAccessGranteeV2025R0.java | 95 + .../hubactionv2025r0/HubActionV2025R0.java | 61 + .../hubbasev2025r0/HubBaseV2025R0.java | 90 + .../HubBaseV2025R0TypeField.java | 62 + .../HubCollaborationCreateRequestV2025R0.java | 76 + ...CreateRequestV2025R0AccessibleByField.java | 107 + ...aborationCreateRequestV2025R0HubField.java | 109 + ...ationCreateRequestV2025R0HubTypeField.java | 62 + .../HubCollaborationsV2025R0.java | 111 + .../HubCollaborationUpdateRequestV2025R0.java | 62 + .../HubCollaborationUserV2025R0.java | 113 + .../HubCollaborationV2025R0.java | 228 ++ ...25R0AcceptanceRequirementsStatusField.java | 128 + ...sStatusStrongPasswordRequirementField.java | 101 + ...sStatusTermsOfServiceRequirementField.java | 97 + ...oFactorAuthenticationRequirementField.java | 105 + .../HubCollaborationV2025R0StatusField.java | 64 + .../HubCollaborationV2025R0TypeField.java | 62 + .../HubCopyRequestV2025R0.java | 84 + .../HubCreateRequestV2025R0.java | 86 + .../HubItemOperationResultV2025R0.java | 142 ++ .../HubItemOperationV2025R0.java | 122 + .../HubItemOperationV2025R0ActionField.java | 63 + .../HubItemReferenceV2025R0.java | 105 + .../HubItemsManageRequestV2025R0.java | 64 + .../HubItemsManageResponseV2025R0.java | 46 + .../hubitemsv2025r0/HubItemsV2025R0.java | 111 + .../hubitemv2025r0/HubItemV2025R0.java | 86 + .../HubItemV2025R0TypeField.java | 64 + .../v2025r0/hubsv2025r0/HubsV2025R0.java | 111 + .../HubUpdateRequestV2025R0.java | 174 ++ .../v2025r0/hubv2025r0/HubV2025R0.java | 317 +++ .../ShieldListContentCountryV2025R0.java | 110 + ...eldListContentCountryV2025R0TypeField.java | 62 + .../ShieldListContentDomainV2025R0.java | 109 + ...ieldListContentDomainV2025R0TypeField.java | 62 + .../ShieldListContentEmailV2025R0.java | 112 + ...hieldListContentEmailV2025R0TypeField.java | 62 + .../ShieldListContentIntegrationV2025R0.java | 111 + ...ntIntegrationV2025R0IntegrationsField.java | 63 + ...istContentIntegrationV2025R0TypeField.java | 62 + .../ShieldListContentIpV2025R0.java | 108 + .../ShieldListContentIpV2025R0TypeField.java | 62 + .../ShieldListContentRequestV2025R0.java | 121 + .../ShieldListContentV2025R0.java | 136 ++ .../ShieldListMiniV2025R0.java | 139 ++ .../ShieldListMiniV2025R0ContentField.java | 62 + .../ShieldListMiniV2025R0TypeField.java | 62 + .../ShieldListsCreateV2025R0.java | 158 ++ .../ShieldListsUpdateV2025R0.java | 158 ++ .../ShieldListsV2025R0.java | 64 + .../shieldlistv2025r0/ShieldListV2025R0.java | 394 ++++ .../TermsOfServiceBaseV2025R0.java | 97 + .../TermsOfServiceBaseV2025R0TypeField.java | 62 + .../userbasev2025r0/UserBaseV2025R0.java | 90 + .../UserBaseV2025R0TypeField.java | 62 + .../userminiv2025r0/UserMiniV2025R0.java | 113 + .../WeblinkReferenceV2025R0.java | 95 + .../WeblinkReferenceV2025R0TypeField.java | 62 + .../sdkgen/schemas/watermark/Watermark.java | 62 + .../watermark/WatermarkWatermarkField.java | 96 + .../box/sdkgen/schemas/webhook/Webhook.java | 235 ++ .../schemas/webhook/WebhookTriggersField.java | 99 + .../webhookinvocation/WebhookInvocation.java | 221 ++ .../WebhookInvocationTriggerField.java | 101 + .../WebhookInvocationTypeField.java | 62 + .../schemas/webhookmini/WebhookMini.java | 114 + .../webhookmini/WebhookMiniTargetField.java | 86 + .../WebhookMiniTargetTypeField.java | 63 + .../webhookmini/WebhookMiniTypeField.java | 60 + .../box/sdkgen/schemas/webhooks/Webhooks.java | 133 ++ .../box/sdkgen/schemas/weblink/WebLink.java | 401 ++++ .../weblink/WebLinkItemStatusField.java | 64 + .../weblink/WebLinkPathCollectionField.java | 63 + .../weblink/WebLinkSharedLinkAccessField.java | 64 + ...WebLinkSharedLinkEffectiveAccessField.java | 64 + ...inkSharedLinkEffectivePermissionField.java | 65 + .../weblink/WebLinkSharedLinkField.java | 439 ++++ .../WebLinkSharedLinkPermissionsField.java | 77 + .../schemas/weblinkbase/WebLinkBase.java | 118 + .../weblinkbase/WebLinkBaseTypeField.java | 60 + .../schemas/weblinkmini/WebLinkMini.java | 144 ++ .../box/sdkgen/schemas/workflow/Workflow.java | 129 + .../schemas/workflow/WorkflowFlowsField.java | 180 ++ .../WorkflowFlowsOutcomesActionTypeField.java | 84 + .../workflow/WorkflowFlowsOutcomesField.java | 170 ++ ...lowsOutcomesIfRejectedActionTypeField.java | 84 + .../WorkflowFlowsOutcomesIfRejectedField.java | 155 ++ ...kflowFlowsOutcomesIfRejectedTypeField.java | 62 + .../WorkflowFlowsOutcomesTypeField.java | 62 + .../workflow/WorkflowFlowsTriggerField.java | 131 ++ .../WorkflowFlowsTriggerScopeField.java | 117 + .../WorkflowFlowsTriggerScopeObjectField.java | 100 + ...kflowFlowsTriggerScopeObjectTypeField.java | 62 + .../WorkflowFlowsTriggerScopeTypeField.java | 62 + .../WorkflowFlowsTriggerTriggerTypeField.java | 62 + .../WorkflowFlowsTriggerTypeField.java | 62 + .../workflow/WorkflowFlowsTypeField.java | 62 + .../schemas/workflowfull/WorkflowFull.java | 222 ++ .../schemas/workflowmini/WorkflowMini.java | 154 ++ .../workflowmini/WorkflowMiniTypeField.java | 60 + .../sdkgen/schemas/workflows/Workflows.java | 133 ++ .../schemas/zipdownload/ZipDownload.java | 135 ++ .../ZipDownloadNameConflictsField.java | 138 ++ .../ZipDownloadNameConflictsTypeField.java | 63 + .../ZipDownloadRequest.java | 89 + .../ZipDownloadRequestItemsField.java | 73 + .../ZipDownloadRequestItemsTypeField.java | 63 + .../zipdownloadstatus/ZipDownloadStatus.java | 159 ++ .../ZipDownloadStatusStateField.java | 64 + .../serialization/json/EnumWrapper.java | 109 + .../serialization/json/JsonManager.java | 116 + .../sdkgen/serialization/json/Valuable.java | 5 + .../BoxAI/ExtractMetadataFreeform200.json | 5 - .../BoxAI/ExtractMetadataStructured200.json | 13 - .../BoxAI/GetAIAgentDefaultConfigAsk200.json | 73 - .../GetAIAgentDefaultConfigExtract200.json | 38 - ...gentDefaultConfigExtractStructured200.json | 38 - .../GetAIAgentDefaultConfigTextGen200.json | 25 - src/test/Fixtures/BoxAI/SendAIRequest200.json | 5 - src/test/Fixtures/BoxAI/SendAITextGen200.json | 5 - src/test/Fixtures/BoxAPIConnection/State.json | 12 - .../BoxAPIConnection/StateDeprecated.json | 12 - .../BoxBatch/BatchCreateMetadataRequest.json | 13 - .../BoxBatch/BatchCreateMetadataResponse.json | 19 - .../CreateCollaboration201.json | 30 - .../CreateFileCollaboration201.json | 36 - .../GetCollaborationInfo200.json | 30 - .../GetCollaborationOnFolder200.json | 65 - ...viteEmailAttributesOnCollaboration200.json | 5 - .../GetPendingCollaborationInfo200.json | 31 - .../UpdateCollaboration200.json | 30 - .../CreateAllowlistForAUser201.json | 17 - .../CreateAllowlistForDomain201.json | 13 - .../GetAllowlistInfoForADomain200.json | 13 - .../GetAllowlistInfoForAUser200.json | 17 - .../GetAllowlistInfoForAllDomains200.json | 29 - .../GetAllowlistInfoForAllUsers200.json | 31 - .../BoxCollection/AddItemToCollection200.json | 92 - .../BoxCollection/GetCollectionItems200.json | 28 - .../BoxCollection/GetCollections200.json | 13 - .../Fixtures/BoxComment/CreateComment201.json | 18 - .../BoxComment/GetCommentInfo200.json | 18 - .../BoxComment/GetCommentsOnFile200.json | 46 - .../BoxComment/UpdateCommentsMessage200.json | 18 - .../GetAllEnterpriseDevicePins200.json | 33 - .../BoxDevicePin/GetDevicePinInfo200.json | 13 - .../BoxEvent/GetEnterpriseEvents200.json | 60 - ...eption400WithErrorAndErrorDescription.json | 6 - .../BoxException/BoxResponseException403.json | 4 - .../BoxResponseException403WithRequestID.json | 5 - .../BoxException/BoxResponseException404.json | 4 - .../BoxException/BoxResponseException409.json | 4 - .../BoxException/BoxResponseException500.json | 4 - .../Fixtures/BoxFile/CanUploadFile200.json | 4 - .../Fixtures/BoxFile/CommitUpload201.json | 65 - .../CommitUploadWithAttributes201.json | 65 - src/test/Fixtures/BoxFile/CopyFile200.json | 60 - .../CreateClassificationOnFile201.json | 11 - .../BoxFile/CreateFileWithDescription201.json | 66 - .../BoxFile/CreateMetadataOnFile201.json | 10 - .../CreateSharedLinkWithPassword201.json | 82 - .../BoxFile/CreateUploadSession201.json | 16 - .../BoxFile/GetAllFileVersions200.json | 24 - src/test/Fixtures/BoxFile/GetFileInfo200.json | 94 - ...ileInfoCausesDeserializationException.json | 72 - .../BoxFile/GetFileRepresentation200.json | 17 - .../GetFileRepresentation200WithPending.json | 17 - .../BoxFile/GetFileRepresentations200.json | 26 - .../GetFileTasksInfoWithFields200.json | 30 - .../Fixtures/BoxFile/GetFileVersion200.json | 17 - .../BoxFile/GetMetadataOnFile200.json | 10 - .../Fixtures/BoxFile/ListUploadedPart200.json | 19 - .../BoxFile/ListUploadedParts200.json | 25 - src/test/Fixtures/BoxFile/LockFile200.json | 18 - src/test/Fixtures/BoxFile/MoveFile200.json | 67 - src/test/Fixtures/BoxFile/UnlockFile200.json | 6 - .../UpdateClassificationOnFile200.json | 11 - .../Fixtures/BoxFile/UpdateFileInfo200.json | 67 - .../BoxFile/UpdateMetadataOnFile200.json | 18 - .../Fixtures/BoxFile/UploadNewVersion201.json | 72 - .../Fixtures/BoxFile/UploadPartOne200.json | 8 - .../BoxFileRequest/CopyFileRequest200.json | 33 - .../BoxFileRequest/GetFileRequest200.json | 33 - .../BoxFileRequest/UpdateFileRequest200.json | 33 - .../Fixtures/BoxFolder/CopyFolder201.json | 105 - .../CreateClassificationOnFolder201.json | 11 - .../BoxFolder/CreateFolderLock200.json | 21 - .../BoxFolder/CreateMetadataOnFolder201.json | 10 - .../BoxFolder/CreateNewFolder201.json | 71 - .../CreateSharedLinkForFolder200.json | 21 - .../GetAllFolderCollaborations200.json | 63 - ...tAllFolderCollaborations200WithFields.json | 29 - .../BoxFolder/GetAllFolderItems200.json | 43 - .../BoxFolder/GetAllMetadataOnFolder200.json | 15 - .../BoxFolder/GetAllRootFolderItems200.json | 72 - .../BoxFolder/GetCollaborations200.json | 29 - .../Fixtures/BoxFolder/GetFolderInfo200.json | 121 - ...derInfoCausesDeserializationException.json | 105 - ...derInfoForCollaborationRestriction200.json | 99 - .../BoxFolder/GetFolderItemsWithSort200.json | 100 - .../Fixtures/BoxFolder/GetFolderLocks200.json | 27 - .../BoxFolder/GetMetadataForFolder200.json | 10 - .../Fixtures/BoxFolder/MoveFolder200.json | 78 - .../BoxFolder/PutTransferFolder200.json | 71 - .../UpdateClassificationOnFolder200.json | 11 - .../BoxFolder/UpdateFolderInfo200.json | 92 - .../BoxFolder/UpdateMetadataOnFolder200.json | 18 - .../Fixtures/BoxGroup/CreateAGroup201.json | 8 - .../BoxGroup/CreateGroupMembership201.json | 20 - .../GetAGroupsCollaborations1stPage200.json | 31 - .../GetAGroupsCollaborations2ndPage200.json | 31 - .../Fixtures/BoxGroup/GetAGroupsInfo200.json | 8 - .../Fixtures/BoxGroup/GetAllGroups200.json | 19 - .../GetGroupMembershipForAUser200.json | 41 - .../Fixtures/BoxGroup/GetGroupsByName200.json | 12 - .../GetGroupsByNameWithFieldsOption200.json | 12 - .../BoxGroup/GetMembershipForAGroup200.json | 24 - .../BoxGroup/UpdateAGroupsInfo200.json | 8 - .../BoxGroup/UpdateGroupMembership200.json | 25 - .../BoxItem/GetSharedItemFile200.json | 185 -- .../GetFileVersionLegalHolds200.json | 15 - .../GetFileVersionLegalHoldsID200.json | 20 - .../BoxLegalHold/GetLegalHoldPolicies200.json | 21 - .../GetLegalHoldPoliciesID200.json | 25 - .../GetLegalHoldPolicyAssignmentsID200.json | 22 - ...LegalHoldPolicyAssignmentsPolicyID200.json | 15 - .../PostLegalHoldPolicies201.json | 24 - .../PostLegalHoldPolicyAssignments201.json | 23 - .../PostOngoingLegalHoldPolicies201.json | 25 - ...oingWithStartDateLegalHoldPolicies201.json | 25 - .../PutLegalHoldPoliciesID200.json | 25 - .../CreateMetadataCascadePolicies201.json | 14 - .../GetAllMetadataCascadePolicies200.json | 21 - .../GetMetadataCascadePoliciesID200.json | 14 - .../CreateMetadataTemplate200.json | 25 - .../GetAMetadataTemplateInfo200.json | 17 - .../GetAllEnterpriseTemplates200.json | 41 - .../GetMetadataTemplateOptionInfo200.json | 47 - .../MetadataQuery1stRequest.json | 9 - .../MetadataQuery1stResponse200.json | 197 -- .../MetadataQuery2ndRequest.json | 10 - .../MetadataQuery2ndResponse200.json | 89 - .../MetadataQueryResponseForFields200.json | 42 - .../UpdateMetadataTemplate200.json | 26 - ...teMetadataTemplateWithStaticConfig200.json | 28 - .../CreateRetentionPolicy201.json | 27 - ...ntionPolicyAssignmentForEnterprise201.json | 22 - ...olicyAssignmentForMetadataTemplate201.json | 24 - ...adataTemplateWithoutStartDateField201.json | 24 - .../GetAllFileVersionRetentions200.json | 20 - .../GetAllRetentionPolicies200.json | 19 - .../GetAllRetentionPolicyAssignments200.json | 13 - .../GetFileRetentionInfo200.json | 21 - .../GetFileVersionsUnderRetention200.json | 20 - .../GetFilesUnderRetention200.json | 20 - .../GetRetentionPolicyAssignment200.json | 9 - .../GetRetentionPolicyAssignmentInfo200.json | 22 - .../GetRetentionPolicyInfo200.json | 27 - .../UpdateRetentionPolicyInfo200.json | 27 - ...GetSearchItemsIncludingSharedLinks200.json | 87 - .../CreateEditableSharedLink201.json | 19 - .../BoxSharedLink/CreateSharedLink201.json | 14 - .../BoxSignRequest/CancelSignRequest200.json | 110 - .../BoxSignRequest/CreateSignRequest200.json | 115 - .../BoxSignRequest/GetAllSignRequests200.json | 135 -- .../BoxSignRequest/GetSignRequest200.json | 133 -- .../GetAllSignTemplates200.json | 107 - .../GetSignTemplateInfo200.json | 105 - .../Get_A_Storage_Policy_200.json | 5 - .../Get_All_Storage_Policies_200.json | 21 - .../Get_Storage_Policy_Assignments_200.json | 18 - .../CreateATaskWithActionComplete200.json | 33 - .../BoxTask/CreateTaskAssignment201.json | 35 - .../Fixtures/BoxTask/CreateTaskOnFile201.json | 33 - .../Fixtures/BoxTask/GetATaskOnFile200.json | 32 - .../BoxTask/GetAllTaskAssignments200.json | 28 - .../BoxTask/GetAllTasksOnFile200.json | 23 - .../BoxTask/GetStatusOnTaskAssignment200.json | 35 - .../BoxTask/GetTaskAssignment200.json | 34 - src/test/Fixtures/BoxTask/GetTaskInfo200.json | 32 - .../BoxTask/UpdateATaskAssignmentInfo200.json | 34 - .../Fixtures/BoxTask/UpdateATaskInfo200.json | 33 - .../GetATermsOfServiceInfo200.json | 14 - .../GetAllTermsOfServices200.json | 33 - .../GetTermsOfServiceForUserStatuses200.json | 22 - .../BoxTrash/GetAllTrashItems200.json | 37 - .../GetAllTrashItemsUsingmarker200.json | 26 - .../BoxTrash/GetTrashedFileItemInfo200.json | 60 - .../BoxTrash/GetTrashedFolderItemInfo200.json | 55 - .../BoxTrash/RestoreFileItemFromTrash201.json | 67 - .../RestoreFolderItemFromTrash201.json | 55 - .../Fixtures/BoxUser/CreateAppUser201.json | 18 - .../Fixtures/BoxUser/CreateEmailAlias201.json | 6 - .../BoxUser/CreateManagedUser201.json | 18 - .../BoxUser/CreateTrackingCodes200.json | 16 - .../BoxUser/GetAllEnterpriseUsers200.json | 43 - ...AllEnterpriseUsersMarkerPagination200.json | 42 - .../BoxUser/GetCurrentUserInfo200.json | 22 - ...rentUserInfoWithNoNotifcationEmail200.json | 19 - .../BoxUser/GetUserEmailAlias200.json | 11 - ...serInfoCausesDeserializationException.json | 18 - .../BoxUser/GetUserThreeTrackingCodes200.json | 21 - .../BoxUser/GetUserTwoTrackingCodes200.json | 16 - .../BoxUser/UpdateTrackingCodes200.json | 21 - .../Fixtures/BoxUser/UpdateUserInfo200.json | 18 - src/test/Fixtures/BoxUser/small_avatar.png | Bin 95 -> 0 bytes .../CreateWatermarkOnFile200.json | 6 - .../CreateWatermarkOnFolder200.json | 6 - .../BoxWebLink/CreateWebLinkOnFolder201.json | 59 - .../BoxWebLink/GetWebLinkOnFolder200.json | 59 - .../BoxWebLink/UpdateWebLinkOnFolder200.json | 59 - .../Fixtures/BoxWebhook/CreateWebhook201.json | 19 - .../BoxWebhook/GetAllWebhooks200.json | 13 - .../Fixtures/BoxWebhook/GetWebhook200.json | 19 - .../BoxWebhook/UpdateWebhookInfo200.json | 19 - .../Fixtures/BoxZip/CreateZipFile202.json | 35 - src/test/config/config.json.template | 12 - src/test/config/config.properties.template | 14 - .../com/box/sdk/AcceptAllHostsVerifier.java | 11 - src/test/java/com/box/sdk/BoxAITest.java | 431 ---- .../com/box/sdk/BoxAPIConnectionForTests.java | 39 - .../com/box/sdk/BoxAPIConnectionTest.java | 998 -------- .../java/com/box/sdk/BoxAPIRequestTest.java | 396 ---- .../box/sdk/BoxAPIResponseExceptionTest.java | 313 --- .../java/com/box/sdk/BoxAPIResponseTest.java | 183 -- .../com/box/sdk/BoxCCGAPIConnectionTest.java | 362 --- ...ollaborationAllowlistExemptTargetTest.java | 122 - .../sdk/BoxCollaborationAllowlistTest.java | 143 -- .../com/box/sdk/BoxCollaborationTest.java | 325 --- .../java/com/box/sdk/BoxCollectionTest.java | 150 -- src/test/java/com/box/sdk/BoxCommentTest.java | 154 -- .../java/com/box/sdk/BoxDateFormatTest.java | 77 - .../BoxDeveloperEditionAPIConnectionTest.java | 365 --- .../java/com/box/sdk/BoxDevicePinTest.java | 95 - src/test/java/com/box/sdk/BoxEventTest.java | 167 -- .../java/com/box/sdk/BoxFileRequestTest.java | 139 -- src/test/java/com/box/sdk/BoxFileTest.java | 1437 ------------ .../box/sdk/BoxFileVersionLegalHoldTest.java | 91 - .../box/sdk/BoxFileVersionRetentionTest.java | 194 -- .../java/com/box/sdk/BoxFileVersionTest.java | 115 - src/test/java/com/box/sdk/BoxFolderTest.java | 1711 -------------- .../com/box/sdk/BoxGroupMembershipTest.java | 94 - src/test/java/com/box/sdk/BoxGroupTest.java | 386 --- src/test/java/com/box/sdk/BoxInviteTest.java | 118 - src/test/java/com/box/sdk/BoxItemTest.java | 101 - .../java/com/box/sdk/BoxJSONRequestTest.java | 45 - .../sdk/BoxLegalHoldPolicyAssignmentTest.java | 169 -- .../com/box/sdk/BoxLegalHoldPolicyTest.java | 276 --- src/test/java/com/box/sdk/BoxLoggerTest.java | 54 - .../box/sdk/BoxMetadataCascadePolicyTest.java | 139 -- .../com/box/sdk/BoxResourceIterableTest.java | 156 -- .../java/com/box/sdk/BoxResourceTest.java | 85 - .../sdk/BoxRetentionPolicyAssignmentTest.java | 354 --- .../com/box/sdk/BoxRetentionPolicyTest.java | 164 -- .../com/box/sdk/BoxSearchParametersTest.java | 262 --- src/test/java/com/box/sdk/BoxSearchTest.java | 120 - .../sdk/BoxSensitiveDataSanitizerTest.java | 100 - .../java/com/box/sdk/BoxSharedLinkTest.java | 69 - .../java/com/box/sdk/BoxSignRequestTest.java | 247 -- .../java/com/box/sdk/BoxSignTemplateTest.java | 124 - .../sdk/BoxStoragePolicyAssignmentTest.java | 244 -- .../com/box/sdk/BoxStoragePolicyTest.java | 73 - .../com/box/sdk/BoxTaskAssignmentTest.java | 223 -- src/test/java/com/box/sdk/BoxTaskTest.java | 205 -- .../com/box/sdk/BoxTermsOfServiceTest.java | 127 - .../sdk/BoxTermsOfServiceUserStatusTest.java | 51 - .../BoxTransactionalAPIConnectionTest.java | 23 - src/test/java/com/box/sdk/BoxTrashTest.java | 270 --- .../java/com/box/sdk/BoxURLTemplateTest.java | 70 - src/test/java/com/box/sdk/BoxUserTest.java | 701 ------ .../java/com/box/sdk/BoxWatermarkTest.java | 151 -- .../sdk/BoxWebHookSignatureVerifierTest.java | 221 -- src/test/java/com/box/sdk/BoxWebHookTest.java | 164 -- src/test/java/com/box/sdk/BoxWebLinkTest.java | 154 -- src/test/java/com/box/sdk/BoxZipTest.java | 81 - src/test/java/com/box/sdk/EventLogTest.java | 213 -- .../java/com/box/sdk/EventStreamTest.java | 205 -- .../java/com/box/sdk/IntegrationTestJWT.java | 7 - .../com/box/sdk/JSONRequestInterceptor.java | 43 - src/test/java/com/box/sdk/LRUCacheTest.java | 61 - .../java/com/box/sdk/MetadataQueryTest.java | 104 - .../com/box/sdk/MetadataTemplateTest.java | 331 --- src/test/java/com/box/sdk/MetadataTest.java | 220 -- .../com/box/sdk/PagingParametersTest.java | 71 - .../com/box/sdk/QueryStringBuilderTest.java | 76 - .../box/sdk/RequestBodyFromStreamTest.java | 102 - .../java/com/box/sdk/SortParametersTest.java | 33 - src/test/java/com/box/sdk/TestUtils.java | 50 - .../com/box/sdk/TrustAllTrustManager.java | 18 - .../internal/utils/CollectionUtilsTest.java | 33 - .../java/com/box/sdkgen/test/ai/AiITest.java | 436 ++++ .../sdkgen/test/aistudio/AiStudioITest.java | 98 + .../AppItemAssociationsITest.java | 66 + .../sdkgen/test/archives/ArchivesITest.java | 39 + .../com/box/sdkgen/test/auth/AuthITest.java | 386 +++ .../box/sdkgen/test/avatars/AvatarsITest.java | 43 + .../chunkeduploads/ChunkedUploadsITest.java | 239 ++ .../chunkeduploads/TestPartAccumulator.java | 100 + .../classifications/ClassificationsITest.java | 68 + .../box/sdkgen/test/client/ClientITest.java | 225 ++ .../client/InterceptorAddingRoleToFields.java | 32 + .../client/InterceptorChangingResponse.java | 24 + .../test/client/InterceptorThrowingError.java | 22 + .../CollaborationAllowlistEntriesITest.java | 49 + ...laborationAllowlistExemptTargetsITest.java | 61 + .../sdkgen/test/comments/CommentsITest.java | 81 + .../sdkgen/test/commons/CommonsManager.java | 187 ++ .../devicepinners/DevicePinnersITest.java | 40 + .../box/sdkgen/test/docgen/DocgenITest.java | 106 + .../docgentemplate/DocgenTemplateITest.java | 50 + .../sdkgen/test/downloads/DownloadsITest.java | 77 + .../test/emailaliases/EmailAliasesITest.java | 42 + .../box/sdkgen/test/events/EventsITest.java | 112 + .../FileClassificationsITest.java | 98 + .../test/filemetadata/FileMetadataITest.java | 266 +++ .../test/filerequests/FileRequestsITest.java | 55 + .../com/box/sdkgen/test/files/FilesITest.java | 183 ++ .../FileVersionLegalHoldsITest.java | 34 + .../FileVersionRetentionsITest.java | 111 + .../test/fileversions/FileVersionsITest.java | 146 ++ .../filewatermarks/FileWatermarksITest.java | 51 + .../FolderClassificationsITest.java | 98 + .../test/folderlocks/FolderLocksITest.java | 48 + .../foldermetadata/FolderMetadataITest.java | 275 +++ .../box/sdkgen/test/folders/FoldersITest.java | 128 + .../FolderWatermarksITest.java | 46 + .../box/sdkgen/test/groups/GroupsITest.java | 59 + .../HubCollaborationsITest.java | 94 + .../sdkgen/test/hubitems/HubItemsITest.java | 92 + .../com/box/sdkgen/test/hubs/HubsITest.java | 105 + .../IntegrationMappingsITest.java | 151 ++ .../box/sdkgen/test/invites/InvitesITest.java | 42 + .../LegalHoldPoliciesITest.java | 77 + .../LegalHoldPolicyAssignmentsITest.java | 86 + .../ListCollaborationsITest.java | 86 + .../test/memberships/MembershipsITest.java | 70 + .../MetadataCascadePoliciesITest.java | 106 + .../MetadataTemplatesITest.java | 185 ++ .../test/recentitems/RecentItemsITest.java | 18 + .../RetentionPoliciesITest.java | 57 + .../RetentionPolicyAssignmentsITest.java | 115 + .../box/sdkgen/test/search/SearchITest.java | 294 +++ .../SessionTerminationITest.java | 51 + .../SharedLinksAppItemsITest.java | 28 + .../SharedLinksFilesITest.java | 119 + .../SharedLinksFoldersITest.java | 115 + .../SharedLinksWebLinksITest.java | 122 + .../ShieldInformationBarrierReportsITest.java | 66 + .../ShieldInformationBarriersITest.java | 44 + ...InformationBarrierSegmentMembersITest.java | 83 + ...mationBarrierSegmentRestrictionsITest.java | 115 + ...ShieldInformationBarrierSegmentsITest.java | 80 + .../test/shieldlists/ShieldListsITest.java | 107 + .../test/signrequests/SignRequestsITest.java | 162 ++ .../signtemplates/SignTemplatesITest.java | 41 + .../box/sdkgen/test/skills/SkillsITest.java | 106 + .../StoragePolicicyAssignmentsITest.java | 90 + .../storagepolicies/StoragePoliciesITest.java | 26 + .../taskassignments/TaskAssignmentsITest.java | 90 + .../com/box/sdkgen/test/tasks/TasksITest.java | 73 + .../termsofservices/TermsOfServicesITest.java | 42 + .../TermsOfServiceUserStatusesITest.java | 68 + .../sdkgen/test/transfer/TransferITest.java | 52 + .../test/trashedfiles/TrashedFilesITest.java | 54 + .../trashedfolders/TrashedFoldersITest.java | 43 + .../test/trasheditems/TrashedItemsITest.java | 22 + .../trashedweblinks/TrashedWebLinksITest.java | 53 + .../box/sdkgen/test/uploads/UploadsITest.java | 119 + .../UserCollaborationsITest.java | 167 ++ .../com/box/sdkgen/test/users/UsersITest.java | 55 + .../sdkgen/test/webhooks/WebhooksITest.java | 273 +++ .../sdkgen/test/weblinks/WeblinksITest.java | 64 + .../sdkgen/test/workflows/WorkflowsITest.java | 84 + .../test/zipdownloads/ZipDownloadsITest.java | 89 + src/test/resources/junit-platform.properties | 2 + src/test/resources/sample-files/empty_file | 0 .../resources/sample-files/file_to_sign.pdf | Bin 7227 -> 0 bytes .../resources/sample-files/file_to_sign2.pdf | Bin 7227 -> 0 bytes .../resources/sample-files/red_100x100.png | Bin 1359 -> 0 bytes .../resources/sample-files/rep_content.pdf | Bin 23942 -> 0 bytes .../resources/sample-files/small_file.rtf | 8 - src/test/resources/sample-files/smalltest.pdf | Bin 2526 -> 0 bytes src/test/resources/sample-files/text.pdf | Bin 11323 -> 0 bytes src/test/resources/sample-files/zip_test.zip | Bin 802 -> 0 bytes 2417 files changed, 184875 insertions(+), 79377 deletions(-) create mode 100644 .codegen.json create mode 100644 .github/workflows/autoupdate-pr.yml delete mode 100644 .github/workflows/build-main.yml create mode 100644 .github/workflows/build.yml delete mode 100644 .github/workflows/integration-tests.yml create mode 100644 .github/workflows/notify-changelog.yml delete mode 100644 .github/workflows/releases.yml delete mode 100755 config/checkstyle/checkstyle.xml delete mode 100644 config/checkstyle/suppressions.xml delete mode 100644 doc/ai.md delete mode 100644 doc/android.md delete mode 100644 doc/authentication.md delete mode 100644 doc/classifications.md delete mode 100644 doc/collaboration_allowlists.md delete mode 100644 doc/collaborations.md delete mode 100644 doc/collections.md delete mode 100644 doc/comments.md delete mode 100644 doc/configuration.md delete mode 100644 doc/css/javadoc.css delete mode 100644 doc/devices.md delete mode 100644 doc/events.md delete mode 100644 doc/file_requests.md delete mode 100644 doc/files.md delete mode 100644 doc/folders.md delete mode 100644 doc/groups.md delete mode 100644 doc/legal_holds.md delete mode 100644 doc/logging.md delete mode 100644 doc/metadata_template.md delete mode 100644 doc/overview.md delete mode 100644 doc/recent_items.md delete mode 100644 doc/retention_policies.md delete mode 100644 doc/search.md delete mode 100644 doc/shared-items.md delete mode 100644 doc/sign_requests.md delete mode 100644 doc/sign_templates.md delete mode 100644 doc/storage_policy.md delete mode 100644 doc/tasks.md delete mode 100644 doc/terms_of_service.md delete mode 100644 doc/trash.md delete mode 100644 doc/upgrades/3.x.x to 4.x.x.md delete mode 100644 doc/upgrading.md delete mode 100644 doc/users.md delete mode 100644 doc/watermarking.md delete mode 100644 doc/webhooks.md delete mode 100644 doc/weblinks.md delete mode 100644 doc/zip_download.md create mode 100644 docs/Authentication.md create mode 100644 docs/Client.md create mode 100644 docs/Configuration.md create mode 100644 docs/README.md create mode 100644 docs/ai.md create mode 100644 docs/aistudio.md create mode 100644 docs/appitemassociations.md create mode 100644 docs/archives.md create mode 100644 docs/authorization.md create mode 100644 docs/avatars.md create mode 100644 docs/chunkeduploads.md create mode 100644 docs/classifications.md create mode 100644 docs/collaborationallowlistentries.md create mode 100644 docs/collaborationallowlistexempttargets.md create mode 100644 docs/collections.md create mode 100644 docs/comments.md create mode 100644 docs/devicepinners.md create mode 100644 docs/docgen.md create mode 100644 docs/docgentemplate.md create mode 100644 docs/downloads.md create mode 100644 docs/emailaliases.md create mode 100644 docs/events.md create mode 100644 docs/fileclassifications.md create mode 100644 docs/filemetadata.md create mode 100644 docs/filerequests.md create mode 100644 docs/files.md create mode 100644 docs/fileversionlegalholds.md create mode 100644 docs/fileversionretentions.md create mode 100644 docs/fileversions.md create mode 100644 docs/filewatermarks.md create mode 100644 docs/folderclassifications.md create mode 100644 docs/folderlocks.md create mode 100644 docs/foldermetadata.md create mode 100644 docs/folders.md create mode 100644 docs/folderwatermarks.md create mode 100644 docs/groups.md create mode 100644 docs/hubcollaborations.md create mode 100644 docs/hubitems.md create mode 100644 docs/hubs.md create mode 100644 docs/integrationmappings.md create mode 100644 docs/invites.md create mode 100644 docs/legalholdpolicies.md create mode 100644 docs/legalholdpolicyassignments.md create mode 100644 docs/listcollaborations.md create mode 100644 docs/memberships.md create mode 100644 docs/metadatacascadepolicies.md create mode 100644 docs/metadatatemplates.md create mode 100644 docs/recentitems.md create mode 100644 docs/retentionpolicies.md create mode 100644 docs/retentionpolicyassignments.md create mode 100644 docs/search.md create mode 100644 docs/sessiontermination.md create mode 100644 docs/sharedlinksappitems.md create mode 100644 docs/sharedlinksfiles.md create mode 100644 docs/sharedlinksfolders.md create mode 100644 docs/sharedlinksweblinks.md create mode 100644 docs/shieldinformationbarrierreports.md create mode 100644 docs/shieldinformationbarriers.md create mode 100644 docs/shieldinformationbarriersegmentmembers.md create mode 100644 docs/shieldinformationbarriersegmentrestrictions.md create mode 100644 docs/shieldinformationbarriersegments.md create mode 100644 docs/shieldlists.md create mode 100644 docs/signrequests.md create mode 100644 docs/signtemplates.md create mode 100644 docs/skills.md create mode 100644 docs/storagepolicies.md create mode 100644 docs/storagepolicyassignments.md create mode 100644 docs/taskassignments.md create mode 100644 docs/tasks.md create mode 100644 docs/termsofservices.md create mode 100644 docs/termsofserviceuserstatuses.md create mode 100644 docs/transfer.md create mode 100644 docs/trashedfiles.md create mode 100644 docs/trashedfolders.md create mode 100644 docs/trasheditems.md create mode 100644 docs/trashedweblinks.md create mode 100644 docs/uploads.md create mode 100644 docs/usercollaborations.md create mode 100644 docs/users.md create mode 100644 docs/webhooks.md create mode 100644 docs/weblinks.md create mode 100644 docs/workflows.md create mode 100644 docs/zipdownloads.md create mode 100644 gradle.properties create mode 100644 migration-guide.md create mode 100644 settings.gradle delete mode 100644 src/example/config/config.json delete mode 100644 src/example/java/com/box/sdk/example/AccessAsAppUser.java delete mode 100644 src/example/java/com/box/sdk/example/BoxDeveloperEditionAPIConnectionAsEnterpriseUser.java delete mode 100644 src/example/java/com/box/sdk/example/CreateAppUser.java delete mode 100644 src/example/java/com/box/sdk/example/Main.java delete mode 100644 src/example/java/com/box/sdk/example/SearchExamplesAsAppUser.java delete mode 100644 src/intTest/README.md delete mode 100644 src/intTest/java/com/box/sdk/BoxAIIT.java delete mode 100644 src/intTest/java/com/box/sdk/BoxAPIConnectionIT.java delete mode 100644 src/intTest/java/com/box/sdk/BoxAPIRequestIT.java delete mode 100644 src/intTest/java/com/box/sdk/BoxApiProvider.java delete mode 100644 src/intTest/java/com/box/sdk/BoxClassificationTemplateIT.java delete mode 100644 src/intTest/java/com/box/sdk/BoxCollaborationAllowlistIT.java delete mode 100644 src/intTest/java/com/box/sdk/BoxCollaborationIT.java delete mode 100644 src/intTest/java/com/box/sdk/BoxCollectionIT.java delete mode 100644 src/intTest/java/com/box/sdk/BoxCommentIT.java delete mode 100644 src/intTest/java/com/box/sdk/BoxFileIT.java delete mode 100644 src/intTest/java/com/box/sdk/BoxFolderIT.java delete mode 100644 src/intTest/java/com/box/sdk/BoxGroupIT.java delete mode 100644 src/intTest/java/com/box/sdk/BoxGroupMembershipIT.java delete mode 100644 src/intTest/java/com/box/sdk/BoxRecentsIT.java delete mode 100644 src/intTest/java/com/box/sdk/BoxRetentionPolicyAssignmentIT.java delete mode 100644 src/intTest/java/com/box/sdk/BoxSignRequestIT.java delete mode 100644 src/intTest/java/com/box/sdk/BoxTaskIT.java delete mode 100644 src/intTest/java/com/box/sdk/BoxTermsOfServiceIT.java delete mode 100644 src/intTest/java/com/box/sdk/BoxTransactionalAPIConnectionIT.java delete mode 100644 src/intTest/java/com/box/sdk/BoxTrashIT.java delete mode 100644 src/intTest/java/com/box/sdk/BoxUserIT.java delete mode 100644 src/intTest/java/com/box/sdk/BoxWebHookIT.java delete mode 100644 src/intTest/java/com/box/sdk/BoxWebLinkIT.java delete mode 100644 src/intTest/java/com/box/sdk/BoxZipIT.java delete mode 100644 src/intTest/java/com/box/sdk/CleanupTools.java delete mode 100644 src/intTest/java/com/box/sdk/EventLogIT.java delete mode 100644 src/intTest/java/com/box/sdk/EventStreamIT.java delete mode 100644 src/intTest/java/com/box/sdk/FileUtils.java delete mode 100644 src/intTest/java/com/box/sdk/MetadataIT.java delete mode 100644 src/intTest/java/com/box/sdk/MetadataTemplateIT.java delete mode 100644 src/intTest/java/com/box/sdk/RetentionPolicyUtils.java delete mode 100644 src/intTest/java/com/box/sdk/Retry.java delete mode 100644 src/intTest/java/com/box/sdk/TestConfig.java delete mode 100644 src/intTest/java/com/box/sdk/UniqueTestFolder.java delete mode 100644 src/main/java/com/box/sdk/AbstractBoxMultipartRequest.java delete mode 100644 src/main/java/com/box/sdk/AvatarUploadResponse.java delete mode 100644 src/main/java/com/box/sdk/BCPrivateKeyDecryptor.java delete mode 100644 src/main/java/com/box/sdk/BackoffCounter.java delete mode 100644 src/main/java/com/box/sdk/Base64.java delete mode 100644 src/main/java/com/box/sdk/BinaryBodyUtils.java delete mode 100644 src/main/java/com/box/sdk/BoxAI.java delete mode 100644 src/main/java/com/box/sdk/BoxAIAgent.java delete mode 100644 src/main/java/com/box/sdk/BoxAIAgentAsk.java delete mode 100644 src/main/java/com/box/sdk/BoxAIAgentAskBasicText.java delete mode 100644 src/main/java/com/box/sdk/BoxAIAgentAskLongText.java delete mode 100644 src/main/java/com/box/sdk/BoxAIAgentEmbeddings.java delete mode 100644 src/main/java/com/box/sdk/BoxAIAgentEmbeddingsStrategy.java delete mode 100644 src/main/java/com/box/sdk/BoxAIAgentExtract.java delete mode 100644 src/main/java/com/box/sdk/BoxAIAgentExtractStructured.java delete mode 100644 src/main/java/com/box/sdk/BoxAIAgentLLMEndpointParams.java delete mode 100644 src/main/java/com/box/sdk/BoxAIAgentLLMEndpointParamsGoogle.java delete mode 100644 src/main/java/com/box/sdk/BoxAIAgentLLMEndpointParamsOpenAI.java delete mode 100644 src/main/java/com/box/sdk/BoxAIAgentTextGen.java delete mode 100644 src/main/java/com/box/sdk/BoxAIAgentTextGenBasicGen.java delete mode 100644 src/main/java/com/box/sdk/BoxAIDialogueEntry.java delete mode 100644 src/main/java/com/box/sdk/BoxAIExtractField.java delete mode 100644 src/main/java/com/box/sdk/BoxAIExtractFieldOption.java delete mode 100644 src/main/java/com/box/sdk/BoxAIExtractMetadataTemplate.java delete mode 100644 src/main/java/com/box/sdk/BoxAIExtractStructuredResponse.java delete mode 100644 src/main/java/com/box/sdk/BoxAIItem.java delete mode 100644 src/main/java/com/box/sdk/BoxAIResponse.java delete mode 100644 src/main/java/com/box/sdk/BoxAPIConnection.java delete mode 100644 src/main/java/com/box/sdk/BoxAPIConnectionListener.java delete mode 100644 src/main/java/com/box/sdk/BoxAPIException.java delete mode 100644 src/main/java/com/box/sdk/BoxAPIRequest.java delete mode 100644 src/main/java/com/box/sdk/BoxAPIResponse.java delete mode 100644 src/main/java/com/box/sdk/BoxAPIResponseException.java delete mode 100644 src/main/java/com/box/sdk/BoxCCGAPIConnection.java delete mode 100644 src/main/java/com/box/sdk/BoxClassification.java delete mode 100644 src/main/java/com/box/sdk/BoxCollaboration.java delete mode 100644 src/main/java/com/box/sdk/BoxCollaborationAllowlist.java delete mode 100644 src/main/java/com/box/sdk/BoxCollaborationAllowlistExemptTarget.java delete mode 100644 src/main/java/com/box/sdk/BoxCollaborationIterator.java delete mode 100644 src/main/java/com/box/sdk/BoxCollaborator.java delete mode 100644 src/main/java/com/box/sdk/BoxCollection.java delete mode 100644 src/main/java/com/box/sdk/BoxCollectionIterator.java delete mode 100644 src/main/java/com/box/sdk/BoxComment.java delete mode 100644 src/main/java/com/box/sdk/BoxConfig.java delete mode 100644 src/main/java/com/box/sdk/BoxDateFormat.java delete mode 100644 src/main/java/com/box/sdk/BoxDeserializationException.java delete mode 100644 src/main/java/com/box/sdk/BoxDeveloperEditionAPIConnection.java delete mode 100644 src/main/java/com/box/sdk/BoxDevicePin.java delete mode 100644 src/main/java/com/box/sdk/BoxEnterprise.java delete mode 100644 src/main/java/com/box/sdk/BoxEvent.java delete mode 100644 src/main/java/com/box/sdk/BoxFile.java delete mode 100644 src/main/java/com/box/sdk/BoxFileRequest.java delete mode 100644 src/main/java/com/box/sdk/BoxFileUploadSession.java delete mode 100644 src/main/java/com/box/sdk/BoxFileUploadSessionPart.java delete mode 100644 src/main/java/com/box/sdk/BoxFileUploadSessionPartList.java delete mode 100644 src/main/java/com/box/sdk/BoxFileVersion.java delete mode 100644 src/main/java/com/box/sdk/BoxFileVersionLegalHold.java delete mode 100644 src/main/java/com/box/sdk/BoxFileVersionRetention.java delete mode 100644 src/main/java/com/box/sdk/BoxFolder.java delete mode 100644 src/main/java/com/box/sdk/BoxFolderLock.java delete mode 100644 src/main/java/com/box/sdk/BoxGlobalSettings.java delete mode 100644 src/main/java/com/box/sdk/BoxGroup.java delete mode 100644 src/main/java/com/box/sdk/BoxGroupIterator.java delete mode 100644 src/main/java/com/box/sdk/BoxGroupMembership.java delete mode 100644 src/main/java/com/box/sdk/BoxGroupMembershipIterator.java delete mode 100644 src/main/java/com/box/sdk/BoxImageMultipartRequest.java delete mode 100644 src/main/java/com/box/sdk/BoxInvite.java delete mode 100644 src/main/java/com/box/sdk/BoxItem.java delete mode 100644 src/main/java/com/box/sdk/BoxItemIterator.java delete mode 100644 src/main/java/com/box/sdk/BoxJSONObject.java delete mode 100644 src/main/java/com/box/sdk/BoxJSONRequest.java delete mode 100644 src/main/java/com/box/sdk/BoxJSONResponse.java delete mode 100644 src/main/java/com/box/sdk/BoxLegalHoldAssignment.java delete mode 100644 src/main/java/com/box/sdk/BoxLegalHoldPolicy.java delete mode 100644 src/main/java/com/box/sdk/BoxLock.java delete mode 100644 src/main/java/com/box/sdk/BoxLogger.java delete mode 100644 src/main/java/com/box/sdk/BoxMetadataCascadePolicy.java delete mode 100644 src/main/java/com/box/sdk/BoxMetadataFilter.java delete mode 100644 src/main/java/com/box/sdk/BoxMetadataQueryItem.java delete mode 100644 src/main/java/com/box/sdk/BoxMultipartRequest.java delete mode 100644 src/main/java/com/box/sdk/BoxNotificationEmail.java delete mode 100644 src/main/java/com/box/sdk/BoxRecentItem.java delete mode 100644 src/main/java/com/box/sdk/BoxRecents.java delete mode 100644 src/main/java/com/box/sdk/BoxResource.java delete mode 100644 src/main/java/com/box/sdk/BoxResourceIterable.java delete mode 100644 src/main/java/com/box/sdk/BoxResourceType.java delete mode 100644 src/main/java/com/box/sdk/BoxRetentionPolicy.java delete mode 100644 src/main/java/com/box/sdk/BoxRetentionPolicyAssignment.java delete mode 100644 src/main/java/com/box/sdk/BoxSearch.java delete mode 100644 src/main/java/com/box/sdk/BoxSearchParameters.java delete mode 100644 src/main/java/com/box/sdk/BoxSearchSharedLink.java delete mode 100644 src/main/java/com/box/sdk/BoxSensitiveDataSanitizer.java delete mode 100644 src/main/java/com/box/sdk/BoxSharedLink.java delete mode 100644 src/main/java/com/box/sdk/BoxSignRequest.java delete mode 100644 src/main/java/com/box/sdk/BoxSignRequestCreateParams.java delete mode 100644 src/main/java/com/box/sdk/BoxSignRequestFile.java delete mode 100644 src/main/java/com/box/sdk/BoxSignRequestPrefillTag.java delete mode 100644 src/main/java/com/box/sdk/BoxSignRequestSignatureColor.java delete mode 100644 src/main/java/com/box/sdk/BoxSignRequestSigner.java delete mode 100644 src/main/java/com/box/sdk/BoxSignRequestSignerRole.java delete mode 100644 src/main/java/com/box/sdk/BoxSignTemplate.java delete mode 100644 src/main/java/com/box/sdk/BoxSignTemplateAdditionalInfo.java delete mode 100644 src/main/java/com/box/sdk/BoxSignTemplateAdditionalInfoRequired.java delete mode 100644 src/main/java/com/box/sdk/BoxSignTemplateCustomBranding.java delete mode 100644 src/main/java/com/box/sdk/BoxSignTemplateReadySignLink.java delete mode 100644 src/main/java/com/box/sdk/BoxSignTemplateSigner.java delete mode 100644 src/main/java/com/box/sdk/BoxStoragePolicy.java delete mode 100644 src/main/java/com/box/sdk/BoxStoragePolicyAssignment.java delete mode 100644 src/main/java/com/box/sdk/BoxTask.java delete mode 100644 src/main/java/com/box/sdk/BoxTaskAssignment.java delete mode 100644 src/main/java/com/box/sdk/BoxTaskAssignmentIterator.java delete mode 100644 src/main/java/com/box/sdk/BoxTermsOfService.java delete mode 100644 src/main/java/com/box/sdk/BoxTermsOfServiceUserStatus.java delete mode 100644 src/main/java/com/box/sdk/BoxTransactionalAPIConnection.java delete mode 100644 src/main/java/com/box/sdk/BoxTrash.java delete mode 100644 src/main/java/com/box/sdk/BoxUploadEmail.java delete mode 100644 src/main/java/com/box/sdk/BoxUser.java delete mode 100644 src/main/java/com/box/sdk/BoxUserIterator.java delete mode 100644 src/main/java/com/box/sdk/BoxWatermark.java delete mode 100644 src/main/java/com/box/sdk/BoxWebHook.java delete mode 100644 src/main/java/com/box/sdk/BoxWebHookSignatureVerifier.java delete mode 100644 src/main/java/com/box/sdk/BoxWebLink.java delete mode 100644 src/main/java/com/box/sdk/BoxZip.java delete mode 100644 src/main/java/com/box/sdk/BoxZipConflict.java delete mode 100644 src/main/java/com/box/sdk/BoxZipConflictItem.java delete mode 100644 src/main/java/com/box/sdk/BoxZipDownloadStatus.java delete mode 100644 src/main/java/com/box/sdk/BoxZipInfo.java delete mode 100644 src/main/java/com/box/sdk/BoxZipItem.java delete mode 100644 src/main/java/com/box/sdk/CreateUserParams.java delete mode 100644 src/main/java/com/box/sdk/DateRange.java delete mode 100644 src/main/java/com/box/sdk/DeveloperEditionEntityType.java delete mode 100644 src/main/java/com/box/sdk/EmailAlias.java delete mode 100644 src/main/java/com/box/sdk/EncryptionAlgorithm.java delete mode 100644 src/main/java/com/box/sdk/EnterpriseEventsRequest.java delete mode 100644 src/main/java/com/box/sdk/EnterpriseEventsStreamRequest.java delete mode 100644 src/main/java/com/box/sdk/EventListener.java delete mode 100644 src/main/java/com/box/sdk/EventLog.java delete mode 100644 src/main/java/com/box/sdk/EventStream.java delete mode 100644 src/main/java/com/box/sdk/FileUploadParams.java delete mode 100644 src/main/java/com/box/sdk/Filter.java delete mode 100644 src/main/java/com/box/sdk/IAccessTokenCache.java delete mode 100644 src/main/java/com/box/sdk/IPrivateKeyDecryptor.java delete mode 100644 src/main/java/com/box/sdk/InMemoryLRUAccessTokenCache.java delete mode 100644 src/main/java/com/box/sdk/JWTEncryptionPreferences.java delete mode 100644 src/main/java/com/box/sdk/JsonIterator.java delete mode 100644 src/main/java/com/box/sdk/LRUCache.java delete mode 100644 src/main/java/com/box/sdk/LargeFileUpload.java delete mode 100644 src/main/java/com/box/sdk/LargeFileUploadTask.java delete mode 100644 src/main/java/com/box/sdk/Metadata.java delete mode 100644 src/main/java/com/box/sdk/MetadataFieldFilter.java delete mode 100644 src/main/java/com/box/sdk/MetadataQuery.java delete mode 100644 src/main/java/com/box/sdk/MetadataTemplate.java delete mode 100644 src/main/java/com/box/sdk/PagingParameters.java delete mode 100644 src/main/java/com/box/sdk/PartialCollection.java delete mode 100644 src/main/java/com/box/sdk/ProgressInputStream.java delete mode 100644 src/main/java/com/box/sdk/ProgressListener.java delete mode 100644 src/main/java/com/box/sdk/ProgressOutputStream.java delete mode 100644 src/main/java/com/box/sdk/QueryStringBuilder.java delete mode 100644 src/main/java/com/box/sdk/RealtimeServerConnection.java delete mode 100644 src/main/java/com/box/sdk/Representation.java delete mode 100644 src/main/java/com/box/sdk/RequestBodyFromCallback.java delete mode 100644 src/main/java/com/box/sdk/RequestBodyFromStream.java delete mode 100644 src/main/java/com/box/sdk/RequestInterceptor.java delete mode 100644 src/main/java/com/box/sdk/RetentionPolicyParams.java delete mode 100644 src/main/java/com/box/sdk/ScopedToken.java delete mode 100644 src/main/java/com/box/sdk/SharedLinkAPIConnection.java delete mode 100644 src/main/java/com/box/sdk/SizeRange.java delete mode 100644 src/main/java/com/box/sdk/SortParameters.java delete mode 100644 src/main/java/com/box/sdk/StandardCharsets.java delete mode 100644 src/main/java/com/box/sdk/Time.java delete mode 100644 src/main/java/com/box/sdk/URLTemplate.java delete mode 100644 src/main/java/com/box/sdk/UploadFileCallback.java delete mode 100644 src/main/java/com/box/sdk/ZstdInterceptor.java delete mode 100644 src/main/java/com/box/sdk/http/ContentType.java delete mode 100644 src/main/java/com/box/sdk/http/HttpHeaders.java delete mode 100644 src/main/java/com/box/sdk/http/HttpMethod.java delete mode 100644 src/main/java/com/box/sdk/internal/package-info.java delete mode 100644 src/main/java/com/box/sdk/internal/pool/MacPool.java delete mode 100644 src/main/java/com/box/sdk/internal/utils/CollectionUtils.java delete mode 100644 src/main/java/com/box/sdk/internal/utils/JsonUtils.java delete mode 100644 src/main/java/com/box/sdk/internal/utils/Parsers.java delete mode 100644 src/main/java/com/box/sdk/package-info.java delete mode 100644 src/main/java/com/box/sdk/sharedlink/AbstractSharedLinkRequest.java delete mode 100644 src/main/java/com/box/sdk/sharedlink/BoxSharedLinkRequest.java delete mode 100644 src/main/java/com/box/sdk/sharedlink/BoxSharedLinkWithoutPermissionsRequest.java create mode 100644 src/main/java/com/box/sdkgen/box/BoxConstants.java create mode 100644 src/main/java/com/box/sdkgen/box/ccgauth/BoxCCGAuth.java create mode 100644 src/main/java/com/box/sdkgen/box/ccgauth/CCGConfig.java create mode 100644 src/main/java/com/box/sdkgen/box/developertokenauth/BoxDeveloperTokenAuth.java create mode 100644 src/main/java/com/box/sdkgen/box/developertokenauth/DeveloperTokenConfig.java create mode 100644 src/main/java/com/box/sdkgen/box/errors/BoxAPIError.java create mode 100644 src/main/java/com/box/sdkgen/box/errors/BoxSDKError.java create mode 100644 src/main/java/com/box/sdkgen/box/errors/RequestInfo.java create mode 100644 src/main/java/com/box/sdkgen/box/errors/ResponseInfo.java create mode 100644 src/main/java/com/box/sdkgen/box/jwtauth/BoxJWTAuth.java create mode 100644 src/main/java/com/box/sdkgen/box/jwtauth/JWTConfig.java create mode 100644 src/main/java/com/box/sdkgen/box/jwtauth/JwtConfigAppSettings.java create mode 100644 src/main/java/com/box/sdkgen/box/jwtauth/JwtConfigAppSettingsAppAuth.java create mode 100644 src/main/java/com/box/sdkgen/box/jwtauth/JwtConfigFile.java create mode 100644 src/main/java/com/box/sdkgen/box/oauth/BoxOAuth.java create mode 100644 src/main/java/com/box/sdkgen/box/oauth/GetAuthorizeUrlOptions.java create mode 100644 src/main/java/com/box/sdkgen/box/oauth/OAuthConfig.java create mode 100644 src/main/java/com/box/sdkgen/box/tokenstorage/InMemoryTokenStorage.java create mode 100644 src/main/java/com/box/sdkgen/box/tokenstorage/TokenStorage.java create mode 100644 src/main/java/com/box/sdkgen/client/BoxClient.java create mode 100644 src/main/java/com/box/sdkgen/internal/Nullable.java create mode 100644 src/main/java/com/box/sdkgen/internal/NullableFieldTracker.java create mode 100644 src/main/java/com/box/sdkgen/internal/NullablePropertyFilter.java create mode 100644 src/main/java/com/box/sdkgen/internal/OneOfFive.java create mode 100644 src/main/java/com/box/sdkgen/internal/OneOfFour.java create mode 100644 src/main/java/com/box/sdkgen/internal/OneOfOne.java create mode 100644 src/main/java/com/box/sdkgen/internal/OneOfSix.java create mode 100644 src/main/java/com/box/sdkgen/internal/OneOfThree.java create mode 100644 src/main/java/com/box/sdkgen/internal/OneOfTwo.java create mode 100644 src/main/java/com/box/sdkgen/internal/SerializableObject.java create mode 100644 src/main/java/com/box/sdkgen/internal/logging/DataSanitizer.java create mode 100644 src/main/java/com/box/sdkgen/internal/utils/DateTimeUtils.java create mode 100644 src/main/java/com/box/sdkgen/internal/utils/DateUtils.java create mode 100644 src/main/java/com/box/sdkgen/internal/utils/DefaultPrivateKeyDecryptor.java create mode 100644 src/main/java/com/box/sdkgen/internal/utils/Entry.java create mode 100644 src/main/java/com/box/sdkgen/internal/utils/Hash.java create mode 100644 src/main/java/com/box/sdkgen/internal/utils/HashName.java create mode 100644 src/main/java/com/box/sdkgen/internal/utils/JwtAlgorithm.java create mode 100644 src/main/java/com/box/sdkgen/internal/utils/JwtKey.java create mode 100644 src/main/java/com/box/sdkgen/internal/utils/JwtSignOptions.java create mode 100644 src/main/java/com/box/sdkgen/internal/utils/PrivateKeyDecryptor.java create mode 100644 src/main/java/com/box/sdkgen/internal/utils/UtilsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/ai/AiManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/ai/CreateAiAskHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/ai/CreateAiExtractHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/ai/CreateAiExtractStructuredHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/ai/CreateAiTextGenHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigQueryParamsModeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/aistudio/AiStudioManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/aistudio/CreateAiAgentHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/aistudio/DeleteAiAgentByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/aistudio/UpdateAiAgentByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/appitemassociations/AppItemAssociationsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/appitemassociations/GetFileAppItemAssociationsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/appitemassociations/GetFileAppItemAssociationsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/appitemassociations/GetFolderAppItemAssociationsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/appitemassociations/GetFolderAppItemAssociationsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/archives/ArchivesManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/archives/CreateArchiveV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/archives/CreateArchiveV2025R0RequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/archives/DeleteArchiveByIdV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/archives/GetArchivesV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/archives/GetArchivesV2025R0QueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/authorization/AuthorizationManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserQueryParamsResponseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/authorization/RefreshAccessTokenHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/authorization/RequestAccessTokenHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/authorization/RevokeAccessTokenHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/avatars/AvatarsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/avatars/CreateUserAvatarHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/avatars/CreateUserAvatarRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/avatars/DeleteUserAvatarHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/avatars/GetUserAvatarHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/chunkeduploads/ChunkedUploadsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitByUrlHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitByUrlRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionForExistingFileHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionForExistingFileRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/chunkeduploads/DeleteFileUploadSessionByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/chunkeduploads/DeleteFileUploadSessionByUrlHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionByUrlHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsByUrlHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsByUrlQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/chunkeduploads/PartAccumulator.java create mode 100644 src/main/java/com/box/sdkgen/managers/chunkeduploads/UploadFilePartByUrlHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/chunkeduploads/UploadFilePartHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/AddClassificationHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyDataField.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyDataStaticConfigClassificationField.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyDataStaticConfigField.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyFieldKeyField.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyOpField.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/ClassificationsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyDisplayNameField.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsDisplayNameField.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsField.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsKeyField.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsOptionsField.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyScopeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyTemplateKeyField.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/GetClassificationTemplateHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyDataField.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyDataStaticConfigClassificationField.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyDataStaticConfigField.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyFieldKeyField.java create mode 100644 src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyOpField.java create mode 100644 src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CollaborationAllowlistEntriesManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryRequestBodyDirectionField.java create mode 100644 src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/DeleteCollaborationWhitelistEntryByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntriesHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntriesQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntryByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargetsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetRequestBodyUserField.java create mode 100644 src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/DeleteCollaborationWhitelistExemptTargetByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/collections/CollectionsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/collections/GetCollectionByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/collections/GetCollectionItemsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/collections/GetCollectionItemsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/collections/GetCollectionsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/collections/GetCollectionsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/comments/CommentsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/comments/CreateCommentHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/comments/CreateCommentQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/comments/CreateCommentRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/comments/CreateCommentRequestBodyItemField.java create mode 100644 src/main/java/com/box/sdkgen/managers/comments/CreateCommentRequestBodyItemTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/comments/DeleteCommentByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/comments/GetCommentByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/comments/GetCommentByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/comments/GetFileCommentsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/comments/GetFileCommentsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/devicepinners/DeleteDevicePinnerByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/devicepinners/DevicePinnersManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/devicepinners/GetDevicePinnerByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersQueryParamsDirectionField.java create mode 100644 src/main/java/com/box/sdkgen/managers/docgen/CreateDocgenBatchV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/docgen/DocgenManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/docgen/GetDocgenBatchJobByIdV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/docgen/GetDocgenBatchJobByIdV2025R0QueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobByIdV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobsV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobsV2025R0QueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/docgentemplate/CreateDocgenTemplateV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/docgentemplate/DeleteDocgenTemplateByIdV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/docgentemplate/DocgenTemplateManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateByIdV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateJobByIdV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateJobByIdV2025R0QueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateTagsV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateTagsV2025R0QueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplatesV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplatesV2025R0QueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/downloads/DownloadFileHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/downloads/DownloadFileQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/downloads/DownloadFileToOutputStreamHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/downloads/DownloadFileToOutputStreamQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/downloads/DownloadsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/downloads/GetDownloadFileUrlHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/downloads/GetDownloadFileUrlQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/emailaliases/CreateUserEmailAliasHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/emailaliases/CreateUserEmailAliasRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/emailaliases/DeleteUserEmailAliasByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/emailaliases/EmailAliasesManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/emailaliases/GetUserEmailAliasesHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/events/EventsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/events/GetEventsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParamsEventTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParamsStreamTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/events/GetEventsWithLongPollingHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileclassifications/AddClassificationToFileHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileclassifications/AddClassificationToFileRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileclassifications/DeleteClassificationFromFileHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileclassifications/FileClassificationsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileclassifications/GetClassificationOnFileHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBodyOpField.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBodyPathField.java create mode 100644 src/main/java/com/box/sdkgen/managers/filemetadata/CreateFileMetadataByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/filemetadata/CreateFileMetadataByIdScope.java create mode 100644 src/main/java/com/box/sdkgen/managers/filemetadata/DeleteFileMetadataByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/filemetadata/DeleteFileMetadataByIdScope.java create mode 100644 src/main/java/com/box/sdkgen/managers/filemetadata/FileMetadataManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdScope.java create mode 100644 src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdRequestBodyOpField.java create mode 100644 src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdScope.java create mode 100644 src/main/java/com/box/sdkgen/managers/filerequests/CreateFileRequestCopyHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/filerequests/DeleteFileRequestByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/filerequests/FileRequestsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/filerequests/GetFileRequestByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/filerequests/UpdateFileRequestByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/CopyFileHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/CopyFileQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/CopyFileRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/CopyFileRequestBodyParentField.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/DeleteFileByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/FilesManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/GetFileByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/GetFileByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdExtension.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlExtension.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyCollectionsField.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyLockAccessField.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyLockField.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyParentField.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyPermissionsCanDownloadField.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyPermissionsField.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkAccessField.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkField.java create mode 100644 src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkPermissionsField.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileversionlegalholds/FileVersionLegalHoldsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileversionretentions/FileVersionRetentionsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsQueryParamsDispositionActionField.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileversions/DeleteFileVersionByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileversions/FileVersionsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionRequestBodyTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileversions/UpdateFileVersionByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/fileversions/UpdateFileVersionByIdRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/filewatermarks/DeleteFileWatermarkHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/filewatermarks/FileWatermarksManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/filewatermarks/GetFileWatermarkHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBodyWatermarkField.java create mode 100644 src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBodyWatermarkImprintField.java create mode 100644 src/main/java/com/box/sdkgen/managers/folderclassifications/AddClassificationToFolderHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/folderclassifications/AddClassificationToFolderRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/folderclassifications/DeleteClassificationFromFolderHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/folderclassifications/FolderClassificationsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/folderclassifications/GetClassificationOnFolderHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBodyOpField.java create mode 100644 src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBodyPathField.java create mode 100644 src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockRequestBodyFolderField.java create mode 100644 src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockRequestBodyLockedOperationsField.java create mode 100644 src/main/java/com/box/sdkgen/managers/folderlocks/DeleteFolderLockByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/folderlocks/FolderLocksManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/folderlocks/GetFolderLocksHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/folderlocks/GetFolderLocksQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/foldermetadata/CreateFolderMetadataByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/foldermetadata/CreateFolderMetadataByIdScope.java create mode 100644 src/main/java/com/box/sdkgen/managers/foldermetadata/DeleteFolderMetadataByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/foldermetadata/DeleteFolderMetadataByIdScope.java create mode 100644 src/main/java/com/box/sdkgen/managers/foldermetadata/FolderMetadataManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataByIdScope.java create mode 100644 src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdRequestBodyOpField.java create mode 100644 src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdScope.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/CopyFolderHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/CopyFolderQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/CopyFolderRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/CopyFolderRequestBodyParentField.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/CreateFolderHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/CreateFolderQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodyFolderUploadEmailAccessField.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodyFolderUploadEmailField.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodyParentField.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodySyncStateField.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/DeleteFolderByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/DeleteFolderByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/FoldersManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParamsDirectionField.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParamsSortField.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParamsDirectionField.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParamsSortField.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyCollectionsField.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyFolderUploadEmailAccessField.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyFolderUploadEmailField.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyParentField.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkAccessField.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkField.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkPermissionsField.java create mode 100644 src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySyncStateField.java create mode 100644 src/main/java/com/box/sdkgen/managers/folderwatermarks/DeleteFolderWatermarkHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/folderwatermarks/FolderWatermarksManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/folderwatermarks/GetFolderWatermarkHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBodyWatermarkField.java create mode 100644 src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBodyWatermarkImprintField.java create mode 100644 src/main/java/com/box/sdkgen/managers/groups/CreateGroupHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/groups/CreateGroupQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/groups/CreateGroupRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/groups/CreateGroupRequestBodyInvitabilityLevelField.java create mode 100644 src/main/java/com/box/sdkgen/managers/groups/CreateGroupRequestBodyMemberViewabilityLevelField.java create mode 100644 src/main/java/com/box/sdkgen/managers/groups/DeleteGroupByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/groups/GetGroupByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/groups/GetGroupByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/groups/GetGroupsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/groups/GetGroupsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/groups/GroupsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdRequestBodyInvitabilityLevelField.java create mode 100644 src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdRequestBodyMemberViewabilityLevelField.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubcollaborations/CreateHubCollaborationV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubcollaborations/DeleteHubCollaborationByIdV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationByIdV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationsV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationsV2025R0QueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubcollaborations/HubCollaborationsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubcollaborations/UpdateHubCollaborationByIdV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubitems/GetHubItemsV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubitems/GetHubItemsV2025R0QueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubitems/HubItemsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubitems/ManageHubItemsV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubs/CopyHubV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubs/CreateHubV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubs/DeleteHubByIdV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0QueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0QueryParamsDirectionField.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubs/GetHubByIdV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0QueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0QueryParamsDirectionField.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubs/HubsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubs/UpdateHubByIdV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/integrationmappings/CreateSlackIntegrationMappingHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/integrationmappings/CreateTeamsIntegrationMappingHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/integrationmappings/DeleteSlackIntegrationMappingByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/integrationmappings/DeleteTeamsIntegrationMappingByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingQueryParamsBoxItemTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingQueryParamsPartnerItemTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingQueryParamsBoxItemTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingQueryParamsPartnerItemTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/integrationmappings/IntegrationMappingsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateSlackIntegrationMappingByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateSlackIntegrationMappingByIdRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateTeamsIntegrationMappingByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateTeamsIntegrationMappingByIdRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/invites/CreateInviteHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/invites/CreateInviteQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/invites/CreateInviteRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/invites/CreateInviteRequestBodyActionableByField.java create mode 100644 src/main/java/com/box/sdkgen/managers/invites/CreateInviteRequestBodyEnterpriseField.java create mode 100644 src/main/java/com/box/sdkgen/managers/invites/GetInviteByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/invites/GetInviteByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/invites/InvitesManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/legalholdpolicies/CreateLegalHoldPolicyHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/legalholdpolicies/CreateLegalHoldPolicyRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/legalholdpolicies/DeleteLegalHoldPolicyByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPoliciesHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPoliciesQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPolicyByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/legalholdpolicies/LegalHoldPoliciesManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/legalholdpolicies/UpdateLegalHoldPolicyByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/legalholdpolicies/UpdateLegalHoldPolicyByIdRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBodyAssignToField.java create mode 100644 src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/DeleteLegalHoldPolicyAssignmentByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentFileOnHoldHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentFileOnHoldQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsQueryParamsAssignToTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/LegalHoldPolicyAssignmentsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsQueryParamsStatusField.java create mode 100644 src/main/java/com/box/sdkgen/managers/listcollaborations/GetFileCollaborationsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/listcollaborations/GetFileCollaborationsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/listcollaborations/GetFolderCollaborationsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/listcollaborations/GetFolderCollaborationsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/listcollaborations/GetGroupCollaborationsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/listcollaborations/GetGroupCollaborationsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/listcollaborations/ListCollaborationsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBodyGroupField.java create mode 100644 src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBodyRoleField.java create mode 100644 src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBodyUserField.java create mode 100644 src/main/java/com/box/sdkgen/managers/memberships/DeleteGroupMembershipByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/memberships/GetUserMembershipsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/memberships/GetUserMembershipsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/memberships/MembershipsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdRequestBodyRoleField.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyRequestBodyConflictResolutionField.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyRequestBodyScopeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/DeleteMetadataCascadePolicyByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePoliciesHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePoliciesQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePolicyByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/MetadataCascadePoliciesManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsField.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsOptionsField.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatatemplates/DeleteMetadataTemplateHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatatemplates/DeleteMetadataTemplateScope.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatatemplates/GetEnterpriseMetadataTemplatesHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatatemplates/GetEnterpriseMetadataTemplatesQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatatemplates/GetGlobalMetadataTemplatesHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatatemplates/GetGlobalMetadataTemplatesQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateScope.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplatesByInstanceIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplatesByInstanceIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatatemplates/MetadataTemplatesManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateRequestBodyOpField.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateScope.java create mode 100644 src/main/java/com/box/sdkgen/managers/recentitems/GetRecentItemsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/recentitems/GetRecentItemsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/recentitems/RecentItemsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyDispositionActionField.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyPolicyTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyRetentionTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicies/DeleteRetentionPolicyByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesQueryParamsPolicyTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPolicyByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPolicyByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicies/RetentionPoliciesManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBodyAssignToField.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/DeleteRetentionPolicyAssignmentByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetFilesUnderRetentionPolicyAssignmentHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetFilesUnderRetentionPolicyAssignmentQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsQueryParamsTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/RetentionPolicyAssignmentsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/search/SearchByMetadataQueryHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/search/SearchForContentHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsContentTypesField.java create mode 100644 src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsDirectionField.java create mode 100644 src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsScopeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsSortField.java create mode 100644 src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsTrashContentField.java create mode 100644 src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/search/SearchManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/sessiontermination/SessionTerminationManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateGroupsSessionsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateGroupsSessionsRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateUsersSessionsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateUsersSessionsRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksappitems/FindAppItemForSharedLinkHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksappitems/SharedLinksAppItemsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkAccessField.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkField.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkPermissionsField.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfiles/FindFileForSharedLinkHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfiles/FindFileForSharedLinkQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfiles/GetSharedLinkForFileHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfiles/GetSharedLinkForFileQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileRequestBodySharedLinkField.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfiles/SharedLinksFilesManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkAccessField.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkField.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkPermissionsField.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkAccessField.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkField.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkPermissionsField.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfolders/FindFolderForSharedLinkHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfolders/FindFolderForSharedLinkQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfolders/GetSharedLinkForFolderHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfolders/GetSharedLinkForFolderQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderRequestBodySharedLinkField.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfolders/SharedLinksFoldersManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkAccessField.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkField.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkPermissionsField.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkAccessField.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkField.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkPermissionsField.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/FindWebLinkForSharedLinkHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/FindWebLinkForSharedLinkQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/GetSharedLinkForWebLinkHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/GetSharedLinkForWebLinkQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkRequestBodySharedLinkField.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/SharedLinksWebLinksManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessField.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkField.java create mode 100644 src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/CreateShieldInformationBarrierReportHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/ShieldInformationBarrierReportsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/CreateShieldInformationBarrierHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/CreateShieldInformationBarrierRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarrierByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarriersHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarriersQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/ShieldInformationBarriersManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusRequestBodyStatusField.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBodyTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/DeleteShieldInformationBarrierSegmentMemberByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMemberByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMembersHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMembersQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembersManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictionsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/CreateShieldInformationBarrierSegmentHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/CreateShieldInformationBarrierSegmentRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/DeleteShieldInformationBarrierSegmentByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/ShieldInformationBarrierSegmentsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/UpdateShieldInformationBarrierSegmentByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/UpdateShieldInformationBarrierSegmentByIdRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldlists/CreateShieldListV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldlists/DeleteShieldListByIdV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldlists/GetShieldListByIdV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldlists/GetShieldListsV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldlists/ShieldListsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/shieldlists/UpdateShieldListByIdV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/signrequests/CancelSignRequestHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/signrequests/CreateSignRequestHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/signrequests/ResendSignRequestHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/signrequests/SignRequestsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplateByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplatesHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplatesQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/signtemplates/SignTemplatesManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/skills/CreateBoxSkillCardsOnFileHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/skills/CreateBoxSkillCardsOnFileRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/skills/DeleteBoxSkillCardsFromFileHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/skills/GetBoxSkillCardsOnFileHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/skills/SkillsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileField.java create mode 100644 src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileVersionField.java create mode 100644 src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyMetadataField.java create mode 100644 src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyStatusField.java create mode 100644 src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyUsageField.java create mode 100644 src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileRequestBodyOpField.java create mode 100644 src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePoliciesHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePoliciesQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePolicyByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/storagepolicies/StoragePoliciesManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyAssignedToField.java create mode 100644 src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyAssignedToTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyStoragePolicyField.java create mode 100644 src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/storagepolicyassignments/DeleteStoragePolicyAssignmentByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsQueryParamsResolvedForTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/storagepolicyassignments/StoragePolicyAssignmentsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField.java create mode 100644 src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyAssignToField.java create mode 100644 src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyTaskField.java create mode 100644 src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyTaskTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/taskassignments/DeleteTaskAssignmentByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/taskassignments/GetTaskAssignmentByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/taskassignments/GetTaskAssignmentsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/taskassignments/TaskAssignmentsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdRequestBodyResolutionStateField.java create mode 100644 src/main/java/com/box/sdkgen/managers/tasks/CreateTaskHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyActionField.java create mode 100644 src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyCompletionRuleField.java create mode 100644 src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyItemField.java create mode 100644 src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyItemTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/tasks/DeleteTaskByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/tasks/GetFileTasksHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/tasks/GetTaskByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/tasks/TasksManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBodyActionField.java create mode 100644 src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBodyCompletionRuleField.java create mode 100644 src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceRequestBodyStatusField.java create mode 100644 src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceRequestBodyTosTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceQueryParamsTosTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/termsofservices/TermsOfServicesManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdRequestBodyStatusField.java create mode 100644 src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyTosField.java create mode 100644 src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyTosTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyUserField.java create mode 100644 src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyUserTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/GetTermsOfServiceUserStatusesHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/GetTermsOfServiceUserStatusesQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/TermsOfServiceUserStatusesManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/UpdateTermsOfServiceStatusForUserByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/UpdateTermsOfServiceStatusForUserByIdRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/transfer/TransferManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderRequestBodyOwnedByField.java create mode 100644 src/main/java/com/box/sdkgen/managers/trashedfiles/DeleteTrashedFileByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/trashedfiles/GetTrashedFileByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/trashedfiles/GetTrashedFileByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashRequestBodyParentField.java create mode 100644 src/main/java/com/box/sdkgen/managers/trashedfiles/TrashedFilesManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/trashedfolders/DeleteTrashedFolderByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/trashedfolders/GetTrashedFolderByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/trashedfolders/GetTrashedFolderByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashRequestBodyParentField.java create mode 100644 src/main/java/com/box/sdkgen/managers/trashedfolders/TrashedFoldersManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsQueryParamsDirectionField.java create mode 100644 src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsQueryParamsSortField.java create mode 100644 src/main/java/com/box/sdkgen/managers/trasheditems/TrashedItemsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/trashedweblinks/DeleteTrashedWebLinkByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/trashedweblinks/GetTrashedWebLinkByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/trashedweblinks/GetTrashedWebLinkByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashRequestBodyParentField.java create mode 100644 src/main/java/com/box/sdkgen/managers/trashedweblinks/TrashedWebLinksManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckRequestBodyParentField.java create mode 100644 src/main/java/com/box/sdkgen/managers/uploads/UploadFileHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/uploads/UploadFileQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBodyAttributesField.java create mode 100644 src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBodyAttributesParentField.java create mode 100644 src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionRequestBodyAttributesField.java create mode 100644 src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBodyAttributesField.java create mode 100644 src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBodyAttributesParentField.java create mode 100644 src/main/java/com/box/sdkgen/managers/uploads/UploadsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyAccessibleByField.java create mode 100644 src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyAccessibleByTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyItemField.java create mode 100644 src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyItemTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyRoleField.java create mode 100644 src/main/java/com/box/sdkgen/managers/usercollaborations/DeleteCollaborationByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/usercollaborations/GetCollaborationByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/usercollaborations/GetCollaborationByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBodyRoleField.java create mode 100644 src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBodyStatusField.java create mode 100644 src/main/java/com/box/sdkgen/managers/usercollaborations/UserCollaborationsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/users/CreateUserHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/users/CreateUserQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBodyRoleField.java create mode 100644 src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBodyStatusField.java create mode 100644 src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/users/GetUserByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/users/GetUserByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/users/GetUserMeHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/users/GetUserMeQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/users/GetUsersHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/users/GetUsersQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/users/GetUsersQueryParamsUserTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBodyNotificationEmailField.java create mode 100644 src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBodyRoleField.java create mode 100644 src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBodyStatusField.java create mode 100644 src/main/java/com/box/sdkgen/managers/users/UsersManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTargetField.java create mode 100644 src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTargetTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTriggersField.java create mode 100644 src/main/java/com/box/sdkgen/managers/webhooks/DeleteWebhookByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/webhooks/GetWebhookByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/webhooks/GetWebhooksHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/webhooks/GetWebhooksQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTargetField.java create mode 100644 src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTargetTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTriggersField.java create mode 100644 src/main/java/com/box/sdkgen/managers/webhooks/WebhooksManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkRequestBodyParentField.java create mode 100644 src/main/java/com/box/sdkgen/managers/weblinks/DeleteWebLinkByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/weblinks/GetWebLinkByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodyParentField.java create mode 100644 src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodySharedLinkAccessField.java create mode 100644 src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodySharedLinkField.java create mode 100644 src/main/java/com/box/sdkgen/managers/weblinks/WebLinksManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/workflows/GetWorkflowsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/workflows/GetWorkflowsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFilesField.java create mode 100644 src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFilesTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFlowField.java create mode 100644 src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFolderField.java create mode 100644 src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFolderTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/workflows/WorkflowsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/zipdownloads/CreateZipDownloadHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/zipdownloads/DownloadZipHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/zipdownloads/GetZipDownloadContentHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/zipdownloads/GetZipDownloadStatusHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/zipdownloads/ZipDownloadsManager.java create mode 100644 src/main/java/com/box/sdkgen/networking/auth/Authentication.java create mode 100644 src/main/java/com/box/sdkgen/networking/baseurls/BaseUrls.java create mode 100644 src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java create mode 100644 src/main/java/com/box/sdkgen/networking/defaultnetworkclient/DefaultNetworkClient.java create mode 100644 src/main/java/com/box/sdkgen/networking/fetchoptions/FetchOptions.java create mode 100644 src/main/java/com/box/sdkgen/networking/fetchoptions/MultipartItem.java create mode 100644 src/main/java/com/box/sdkgen/networking/fetchoptions/ResponseFormat.java create mode 100644 src/main/java/com/box/sdkgen/networking/fetchresponse/FetchResponse.java create mode 100644 src/main/java/com/box/sdkgen/networking/interceptors/Interceptor.java create mode 100644 src/main/java/com/box/sdkgen/networking/network/NetworkSession.java create mode 100644 src/main/java/com/box/sdkgen/networking/networkclient/NetworkClient.java create mode 100644 src/main/java/com/box/sdkgen/networking/retries/BoxRetryStrategy.java create mode 100644 src/main/java/com/box/sdkgen/networking/retries/RetryStrategy.java create mode 100644 src/main/java/com/box/sdkgen/networking/version/Version.java create mode 100644 src/main/java/com/box/sdkgen/parameters/v2025r0/boxversionheaderv2025r0/BoxVersionHeaderV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/accesstoken/AccessToken.java create mode 100644 src/main/java/com/box/sdkgen/schemas/accesstoken/AccessTokenIssuedTokenTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/accesstoken/AccessTokenTokenTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentallowedentity/AiAgentAllowedEntity.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentask/AiAgentAsk.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentask/AiAgentAskTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentaskoraiagentextractoraiagentextractstructuredoraiagenttextgen/AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentaskoraiagentreference/AiAgentAskOrAiAgentReference.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentbasicgentool/AiAgentBasicGenTool.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentbasictexttool/AiAgentBasicTextTool.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentbasictexttoolbase/AiAgentBasicTextToolBase.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentbasictexttooltextgen/AiAgentBasicTextToolTextGen.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentextract/AiAgentExtract.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentextract/AiAgentExtractTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentextractoraiagentreference/AiAgentExtractOrAiAgentReference.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentextractstructured/AiAgentExtractStructured.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentextractstructured/AiAgentExtractStructuredTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentextractstructuredoraiagentreference/AiAgentExtractStructuredOrAiAgentReference.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentinfo/AiAgentInfo.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentinfo/AiAgentInfoModelsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentlongtexttool/AiAgentLongTextTool.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentlongtexttool/AiAgentLongTextToolEmbeddingsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentlongtexttool/AiAgentLongTextToolEmbeddingsStrategyField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentlongtexttooltextgen/AiAgentLongTextToolTextGen.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentlongtexttooltextgen/AiAgentLongTextToolTextGenEmbeddingsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentlongtexttooltextgen/AiAgentLongTextToolTextGenEmbeddingsStrategyField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReference.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReferenceTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentreferenceoraiagenttextgen/AiAgentReferenceOrAiAgentTextGen.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentspreadsheettool/AiAgentSpreadsheetTool.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagenttextgen/AiAgentTextGen.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagenttextgen/AiAgentTextGenTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiask/AiAsk.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiask/AiAskModeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aicitation/AiCitation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aicitation/AiCitationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aidialoguehistory/AiDialogueHistory.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiextract/AiExtract.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiextractresponse/AiExtractResponse.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsOptionsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredMetadataTemplateField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredMetadataTemplateTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiitemask/AiItemAsk.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiitemask/AiItemAskTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiitembase/AiItemBase.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiitembase/AiItemBaseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aillmendpointparams/AiLlmEndpointParams.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aillmendpointparamsaws/AiLlmEndpointParamsAws.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aillmendpointparamsaws/AiLlmEndpointParamsAwsTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aillmendpointparamsgoogle/AiLlmEndpointParamsGoogle.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aillmendpointparamsgoogle/AiLlmEndpointParamsGoogleTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aillmendpointparamsibm/AiLlmEndpointParamsIbm.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aillmendpointparamsibm/AiLlmEndpointParamsIbmTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aillmendpointparamsopenai/AiLlmEndpointParamsOpenAi.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aillmendpointparamsopenai/AiLlmEndpointParamsOpenAiTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aimultipleagentresponse/AiMultipleAgentResponse.java create mode 100644 src/main/java/com/box/sdkgen/schemas/airesponse/AiResponse.java create mode 100644 src/main/java/com/box/sdkgen/schemas/airesponsefull/AiResponseFull.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aisingleagentresponse/AiSingleAgentResponse.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aisingleagentresponse/AiSingleAgentResponseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aisingleagentresponsefull/AiSingleAgentResponseFull.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aistudioagentask/AiStudioAgentAsk.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aistudioagentask/AiStudioAgentAskTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aistudioagentaskresponse/AiStudioAgentAskResponse.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aistudioagentaskresponse/AiStudioAgentAskResponseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aistudioagentbasicgentool/AiStudioAgentBasicGenTool.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aistudioagentbasicgentoolresponse/AiStudioAgentBasicGenToolResponse.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aistudioagentbasictexttool/AiStudioAgentBasicTextTool.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aistudioagentbasictexttoolresponse/AiStudioAgentBasicTextToolResponse.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aistudioagentextract/AiStudioAgentExtract.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aistudioagentextract/AiStudioAgentExtractTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aistudioagentextractresponse/AiStudioAgentExtractResponse.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aistudioagentextractresponse/AiStudioAgentExtractResponseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aistudioagentlongtexttool/AiStudioAgentLongTextTool.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aistudioagentlongtexttoolresponse/AiStudioAgentLongTextToolResponse.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aistudioagentspreadsheettool/AiStudioAgentSpreadsheetTool.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aistudioagentspreadsheettoolresponse/AiStudioAgentSpreadsheetToolResponse.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aistudioagenttextgen/AiStudioAgentTextGen.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aistudioagenttextgen/AiStudioAgentTextGenTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aistudioagenttextgenresponse/AiStudioAgentTextGenResponse.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aistudioagenttextgenresponse/AiStudioAgentTextGenResponseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGen.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGenItemsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGenItemsTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/appitem/AppItem.java create mode 100644 src/main/java/com/box/sdkgen/schemas/appitem/AppItemTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/appitemassociation/AppItemAssociation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/appitemassociation/AppItemAssociationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/appitemassociations/AppItemAssociations.java create mode 100644 src/main/java/com/box/sdkgen/schemas/appitemeventsource/AppItemEventSource.java create mode 100644 src/main/java/com/box/sdkgen/schemas/appitemeventsource/AppItemEventSourceTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/appitemeventsourceoreventsourceorfileorfolderorgenericsourceoruser/AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser.java create mode 100644 src/main/java/com/box/sdkgen/schemas/classification/Classification.java create mode 100644 src/main/java/com/box/sdkgen/schemas/classification/ClassificationTemplateField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplate.java create mode 100644 src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateDisplayNameField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsDisplayNameField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsKeyField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsOptionsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsOptionsStaticConfigClassificationField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsOptionsStaticConfigField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateTemplateKeyField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/clienterror/ClientError.java create mode 100644 src/main/java/com/box/sdkgen/schemas/clienterror/ClientErrorCodeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/clienterror/ClientErrorTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaboration/Collaboration.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationRoleField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaborationallowlistentries/CollaborationAllowlistEntries.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntry.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryDirectionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryEnterpriseField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryEnterpriseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTarget.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTargetEnterpriseField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTargetEnterpriseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTargetTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargets.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaborations/Collaborations.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaborationsoffsetpaginated/CollaborationsOffsetPaginated.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariable.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableValueField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableValueTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collection/Collection.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collection/CollectionCollectionTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collection/CollectionNameField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collection/CollectionTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collections/Collections.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collections/CollectionsOrderDirectionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/collections/CollectionsOrderField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/comment/Comment.java create mode 100644 src/main/java/com/box/sdkgen/schemas/comment/CommentItemField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/commentbase/CommentBase.java create mode 100644 src/main/java/com/box/sdkgen/schemas/commentbase/CommentBaseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/commentfull/CommentFull.java create mode 100644 src/main/java/com/box/sdkgen/schemas/comments/Comments.java create mode 100644 src/main/java/com/box/sdkgen/schemas/comments/CommentsOrderDirectionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/comments/CommentsOrderField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariable.java create mode 100644 src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariableTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariableVariableTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariableVariableValueField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/conflicterror/ConflictError.java create mode 100644 src/main/java/com/box/sdkgen/schemas/conflicterror/ConflictErrorContextInfoField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/createaiagent/CreateAiAgent.java create mode 100644 src/main/java/com/box/sdkgen/schemas/createaiagent/CreateAiAgentTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/devicepinner/DevicePinner.java create mode 100644 src/main/java/com/box/sdkgen/schemas/devicepinner/DevicePinnerTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinners.java create mode 100644 src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinnersOrderByField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinnersOrderDirectionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinnersOrderField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/emailalias/EmailAlias.java create mode 100644 src/main/java/com/box/sdkgen/schemas/emailalias/EmailAliasTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/emailaliases/EmailAliases.java create mode 100644 src/main/java/com/box/sdkgen/schemas/enterprisebase/EnterpriseBase.java create mode 100644 src/main/java/com/box/sdkgen/schemas/enterprisebase/EnterpriseBaseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/event/Event.java create mode 100644 src/main/java/com/box/sdkgen/schemas/event/EventAdditionalDetailsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/event/EventEventTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/events/Events.java create mode 100644 src/main/java/com/box/sdkgen/schemas/events/EventsNextStreamPositionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/eventsource/EventSource.java create mode 100644 src/main/java/com/box/sdkgen/schemas/eventsource/EventSourceClassificationField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/eventsource/EventSourceItemTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/file/File.java create mode 100644 src/main/java/com/box/sdkgen/schemas/file/FileItemStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/file/FilePathCollectionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkAccessField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkEffectiveAccessField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkEffectivePermissionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkPermissionsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filebase/FileBase.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filebase/FileBaseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filebaseorfolderbaseorweblinkbase/FileBaseOrFolderBaseOrWebLinkBase.java create mode 100644 src/main/java/com/box/sdkgen/schemas/fileconflict/FileConflict.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filefull/FileFull.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filefull/FileFullAllowedInviteeRolesField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filefull/FileFullClassificationField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filefull/FileFullExpiringEmbedLinkField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filefull/FileFullExpiringEmbedLinkTokenTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockAppTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filefull/FileFullMetadataField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filefull/FileFullPermissionsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesContentField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesInfoField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesPropertiesField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesStatusStateField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filefull/FileFullSharedLinkPermissionOptionsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filefull/FileFullWatermarkInfoField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filefullorfolderfull/FileFullOrFolderFull.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filefullorfolderfullorweblink/FileFullOrFolderFullOrWebLink.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filefullorfolderminiorweblink/FileFullOrFolderMiniOrWebLink.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filemini/FileMini.java create mode 100644 src/main/java/com/box/sdkgen/schemas/fileminiorfoldermini/FileMiniOrFolderMini.java create mode 100644 src/main/java/com/box/sdkgen/schemas/fileorfolder/FileOrFolder.java create mode 100644 src/main/java/com/box/sdkgen/schemas/fileorfolderorweblink/FileOrFolderOrWebLink.java create mode 100644 src/main/java/com/box/sdkgen/schemas/fileorfolderscope/FileOrFolderScope.java create mode 100644 src/main/java/com/box/sdkgen/schemas/fileorfolderscope/FileOrFolderScopeScopeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filerequest/FileRequest.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filerequest/FileRequestStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filerequest/FileRequestTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequest.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequestFolderField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequestFolderTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filerequestupdaterequest/FileRequestUpdateRequest.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filerequestupdaterequest/FileRequestUpdateRequestStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/files/Files.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filesonhold/FilesOnHold.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filesunderretention/FilesUnderRetention.java create mode 100644 src/main/java/com/box/sdkgen/schemas/fileversion/FileVersion.java create mode 100644 src/main/java/com/box/sdkgen/schemas/fileversionbase/FileVersionBase.java create mode 100644 src/main/java/com/box/sdkgen/schemas/fileversionbase/FileVersionBaseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/fileversionfull/FileVersionFull.java create mode 100644 src/main/java/com/box/sdkgen/schemas/fileversionlegalhold/FileVersionLegalHold.java create mode 100644 src/main/java/com/box/sdkgen/schemas/fileversionlegalhold/FileVersionLegalHoldTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/fileversionlegalholds/FileVersionLegalHolds.java create mode 100644 src/main/java/com/box/sdkgen/schemas/fileversionmini/FileVersionMini.java create mode 100644 src/main/java/com/box/sdkgen/schemas/fileversionretention/FileVersionRetention.java create mode 100644 src/main/java/com/box/sdkgen/schemas/fileversionretention/FileVersionRetentionTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/fileversionretentions/FileVersionRetentions.java create mode 100644 src/main/java/com/box/sdkgen/schemas/fileversions/FileVersions.java create mode 100644 src/main/java/com/box/sdkgen/schemas/fileversions/FileVersionsOrderDirectionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/fileversions/FileVersionsOrderField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/folder/Folder.java create mode 100644 src/main/java/com/box/sdkgen/schemas/folder/FolderFolderUploadEmailAccessField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/folder/FolderFolderUploadEmailField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/folder/FolderItemStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/folder/FolderPathCollectionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkAccessField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkEffectiveAccessField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkEffectivePermissionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkPermissionsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/folderbase/FolderBase.java create mode 100644 src/main/java/com/box/sdkgen/schemas/folderbase/FolderBaseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/folderfull/FolderFull.java create mode 100644 src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullAllowedInviteeRolesField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullAllowedSharedLinkAccessLevelsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullClassificationField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullMetadataField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullPermissionsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullSyncStateField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullWatermarkInfoField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/folderlock/FolderLock.java create mode 100644 src/main/java/com/box/sdkgen/schemas/folderlock/FolderLockLockedOperationsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/folderlocks/FolderLocks.java create mode 100644 src/main/java/com/box/sdkgen/schemas/foldermini/FolderMini.java create mode 100644 src/main/java/com/box/sdkgen/schemas/folderreference/FolderReference.java create mode 100644 src/main/java/com/box/sdkgen/schemas/folderreference/FolderReferenceTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/group/Group.java create mode 100644 src/main/java/com/box/sdkgen/schemas/groupbase/GroupBase.java create mode 100644 src/main/java/com/box/sdkgen/schemas/groupbase/GroupBaseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/groupfull/GroupFull.java create mode 100644 src/main/java/com/box/sdkgen/schemas/groupfull/GroupFullInvitabilityLevelField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/groupfull/GroupFullMemberViewabilityLevelField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/groupfull/GroupFullPermissionsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembership.java create mode 100644 src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembershipRoleField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembershipTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/groupmemberships/GroupMemberships.java create mode 100644 src/main/java/com/box/sdkgen/schemas/groupmemberships/GroupMembershipsOrderDirectionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/groupmemberships/GroupMembershipsOrderField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/groupmini/GroupMini.java create mode 100644 src/main/java/com/box/sdkgen/schemas/groupmini/GroupMiniGroupTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/groupminiorusercollaborations/GroupMiniOrUserCollaborations.java create mode 100644 src/main/java/com/box/sdkgen/schemas/groups/Groups.java create mode 100644 src/main/java/com/box/sdkgen/schemas/groups/GroupsOrderDirectionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/groups/GroupsOrderField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMapping.java create mode 100644 src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMappingIntegrationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/integrationmappingbase/IntegrationMappingBase.java create mode 100644 src/main/java/com/box/sdkgen/schemas/integrationmappingbase/IntegrationMappingBaseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/integrationmappingboxitemslack/IntegrationMappingBoxItemSlack.java create mode 100644 src/main/java/com/box/sdkgen/schemas/integrationmappingboxitemslack/IntegrationMappingBoxItemSlackTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslack/IntegrationMappingPartnerItemSlack.java create mode 100644 src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslack/IntegrationMappingPartnerItemSlackTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslackunion/IntegrationMappingPartnerItemSlackUnion.java create mode 100644 src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteams/IntegrationMappingPartnerItemTeams.java create mode 100644 src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteams/IntegrationMappingPartnerItemTeamsTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteamscreaterequest/IntegrationMappingPartnerItemTeamsCreateRequest.java create mode 100644 src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteamscreaterequest/IntegrationMappingPartnerItemTeamsCreateRequestTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteamsunion/IntegrationMappingPartnerItemTeamsUnion.java create mode 100644 src/main/java/com/box/sdkgen/schemas/integrationmappings/IntegrationMappings.java create mode 100644 src/main/java/com/box/sdkgen/schemas/integrationmappingslackcreaterequest/IntegrationMappingSlackCreateRequest.java create mode 100644 src/main/java/com/box/sdkgen/schemas/integrationmappingslackoptions/IntegrationMappingSlackOptions.java create mode 100644 src/main/java/com/box/sdkgen/schemas/integrationmappingsteams/IntegrationMappingsTeams.java create mode 100644 src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeams.java create mode 100644 src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeamsIntegrationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/integrationmappingteamscreaterequest/IntegrationMappingTeamsCreateRequest.java create mode 100644 src/main/java/com/box/sdkgen/schemas/invite/Invite.java create mode 100644 src/main/java/com/box/sdkgen/schemas/invite/InviteInvitedToField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/invite/InviteInvitedToTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/invite/InviteTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/items/Items.java create mode 100644 src/main/java/com/box/sdkgen/schemas/items/ItemsOrderDirectionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/items/ItemsOrderField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginated.java create mode 100644 src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginatedOrderDirectionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginatedOrderField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCard.java create mode 100644 src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardEntriesField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardInvocationField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardInvocationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillCardTitleField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillCardTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/keywordskillcardorstatusskillcardortimelineskillcardortranscriptskillcard/KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard.java create mode 100644 src/main/java/com/box/sdkgen/schemas/legalholdpolicies/LegalHoldPolicies.java create mode 100644 src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicy.java create mode 100644 src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicyAssignmentCountsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicyStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignment/LegalHoldPolicyAssignment.java create mode 100644 src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignmentbase/LegalHoldPolicyAssignmentBase.java create mode 100644 src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignmentbase/LegalHoldPolicyAssignmentBaseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignments/LegalHoldPolicyAssignments.java create mode 100644 src/main/java/com/box/sdkgen/schemas/legalholdpolicymini/LegalHoldPolicyMini.java create mode 100644 src/main/java/com/box/sdkgen/schemas/legalholdpolicymini/LegalHoldPolicyMiniTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadata/Metadata.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatabase/MetadataBase.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatacascadepolicies/MetadataCascadePolicies.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicy.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyOwnerEnterpriseField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyOwnerEnterpriseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyParentField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyParentTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadataerror/MetadataError.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatafieldfilterdaterange/MetadataFieldFilterDateRange.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatafieldfilterdaterangeormetadatafieldfilterfloatrangeorarrayofstringornumberorstring/MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatafieldfilterfloatrange/MetadataFieldFilterFloatRange.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatafilter/MetadataFilter.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatafilter/MetadataFilterScopeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatafull/MetadataFull.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatainstancevalue/MetadataInstanceValue.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadataquery/MetadataQuery.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadataquery/MetadataQueryOrderByDirectionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadataquery/MetadataQueryOrderByField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndex.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndexFieldsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndexFieldsSortDirectionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndexStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadataqueryresults/MetadataQueryResults.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatas/Metadatas.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplate.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsOptionsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatatemplates/MetadataTemplates.java create mode 100644 src/main/java/com/box/sdkgen/schemas/oauth2error/OAuth2Error.java create mode 100644 src/main/java/com/box/sdkgen/schemas/outcome/Outcome.java create mode 100644 src/main/java/com/box/sdkgen/schemas/postoauth2revoke/PostOAuth2Revoke.java create mode 100644 src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2Token.java create mode 100644 src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenActorTokenTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenBoxSubjectTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenGrantTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenSubjectTokenTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/postoauth2tokenrefreshaccesstoken/PostOAuth2TokenRefreshAccessToken.java create mode 100644 src/main/java/com/box/sdkgen/schemas/postoauth2tokenrefreshaccesstoken/PostOAuth2TokenRefreshAccessTokenGrantTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/realtimeserver/RealtimeServer.java create mode 100644 src/main/java/com/box/sdkgen/schemas/realtimeservers/RealtimeServers.java create mode 100644 src/main/java/com/box/sdkgen/schemas/recentitem/RecentItem.java create mode 100644 src/main/java/com/box/sdkgen/schemas/recentitem/RecentItemInteractionTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/recentitems/RecentItems.java create mode 100644 src/main/java/com/box/sdkgen/schemas/retentionpolicies/RetentionPolicies.java create mode 100644 src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicy.java create mode 100644 src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyAssignmentCountsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyPolicyTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyRetentionTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignment.java create mode 100644 src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentAssignedToField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentAssignedToTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentFilterFieldsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/retentionpolicyassignmentbase/RetentionPolicyAssignmentBase.java create mode 100644 src/main/java/com/box/sdkgen/schemas/retentionpolicyassignmentbase/RetentionPolicyAssignmentBaseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/retentionpolicyassignments/RetentionPolicyAssignments.java create mode 100644 src/main/java/com/box/sdkgen/schemas/retentionpolicybase/RetentionPolicyBase.java create mode 100644 src/main/java/com/box/sdkgen/schemas/retentionpolicybase/RetentionPolicyBaseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/retentionpolicymini/RetentionPolicyMini.java create mode 100644 src/main/java/com/box/sdkgen/schemas/retentionpolicymini/RetentionPolicyMiniDispositionActionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariable.java create mode 100644 src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariableTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariableVariableTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariableVariableValueField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/searchresults/SearchResults.java create mode 100644 src/main/java/com/box/sdkgen/schemas/searchresults/SearchResultsTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/searchresultsorsearchresultswithsharedlinks/SearchResultsOrSearchResultsWithSharedLinks.java create mode 100644 src/main/java/com/box/sdkgen/schemas/searchresultswithsharedlinks/SearchResultsWithSharedLinks.java create mode 100644 src/main/java/com/box/sdkgen/schemas/searchresultswithsharedlinks/SearchResultsWithSharedLinksTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/searchresultwithsharedlink/SearchResultWithSharedLink.java create mode 100644 src/main/java/com/box/sdkgen/schemas/sessionterminationmessage/SessionTerminationMessage.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarrier/ShieldInformationBarrier.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarrier/ShieldInformationBarrierStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarrier/ShieldInformationBarrierTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierbase/ShieldInformationBarrierBase.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierbase/ShieldInformationBarrierBaseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreference/ShieldInformationBarrierReference.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreport/ShieldInformationBarrierReport.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreport/ShieldInformationBarrierReportStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportbase/ShieldInformationBarrierReportBase.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportbase/ShieldInformationBarrierReportBaseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportdetails/ShieldInformationBarrierReportDetails.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportdetails/ShieldInformationBarrierReportDetailsDetailsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreports/ShieldInformationBarrierReports.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarriers/ShieldInformationBarriers.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegment/ShieldInformationBarrierSegment.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegment/ShieldInformationBarrierSegmentTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMember.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmemberbase/ShieldInformationBarrierSegmentMemberBase.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmemberbase/ShieldInformationBarrierSegmentMemberBaseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmembermini/ShieldInformationBarrierSegmentMemberMini.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembers.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestriction/ShieldInformationBarrierSegmentRestriction.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionbase/ShieldInformationBarrierSegmentRestrictionBase.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionbase/ShieldInformationBarrierSegmentRestrictionBaseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMini.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictions.java create mode 100644 src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegments/ShieldInformationBarrierSegments.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequest/SignRequest.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestSignFilesField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestbase/SignRequestBase.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestcreaterequest/SignRequestCreateRequest.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestcreaterequest/SignRequestCreateRequestSignatureColorField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestcreatesigner/SignRequestCreateSigner.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestcreatesigner/SignRequestCreateSignerRoleField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestprefilltag/SignRequestPrefillTag.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequests/SignRequests.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSigner.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSignerSignerDecisionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSignerSignerDecisionTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInput.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInputContentTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInputTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplate.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoNonEditableField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoRequiredField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoRequiredSignersField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateCustomBrandingField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateReadySignLinkField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signtemplates/SignTemplates.java create mode 100644 src/main/java/com/box/sdkgen/schemas/skillcardsmetadata/SkillCardsMetadata.java create mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationEnterpriseField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationEnterpriseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationSkillField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationSkillTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationStatusStateField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenReadField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenReadTokenTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenWriteField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenWriteTokenTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCard.java create mode 100644 src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardInvocationField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardInvocationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillCardTitleField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillCardTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardStatusCodeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/storagepolicies/StoragePolicies.java create mode 100644 src/main/java/com/box/sdkgen/schemas/storagepolicy/StoragePolicy.java create mode 100644 src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignment.java create mode 100644 src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignmentAssignedToField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignmentTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/storagepolicyassignments/StoragePolicyAssignments.java create mode 100644 src/main/java/com/box/sdkgen/schemas/storagepolicymini/StoragePolicyMini.java create mode 100644 src/main/java/com/box/sdkgen/schemas/storagepolicymini/StoragePolicyMiniTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/task/Task.java create mode 100644 src/main/java/com/box/sdkgen/schemas/task/TaskActionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/task/TaskCompletionRuleField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/task/TaskTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignment.java create mode 100644 src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignmentResolutionStateField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignmentTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/taskassignments/TaskAssignments.java create mode 100644 src/main/java/com/box/sdkgen/schemas/tasks/Tasks.java create mode 100644 src/main/java/com/box/sdkgen/schemas/templatesigner/TemplateSigner.java create mode 100644 src/main/java/com/box/sdkgen/schemas/templatesigner/TemplateSignerRoleField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInput.java create mode 100644 src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputContentTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputCoordinatesField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputDimensionsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfService.java create mode 100644 src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceEnterpriseField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceEnterpriseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceTosTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/termsofservicebase/TermsOfServiceBase.java create mode 100644 src/main/java/com/box/sdkgen/schemas/termsofservicebase/TermsOfServiceBaseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/termsofservices/TermsOfServices.java create mode 100644 src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatus/TermsOfServiceUserStatus.java create mode 100644 src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatus/TermsOfServiceUserStatusTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatuses/TermsOfServiceUserStatuses.java create mode 100644 src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCard.java create mode 100644 src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardEntriesAppearsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardEntriesField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardInvocationField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardInvocationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillCardTitleField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillCardTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trackingcode/TrackingCode.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trackingcode/TrackingCodeTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCard.java create mode 100644 src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardEntriesAppearsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardEntriesField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardInvocationField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardInvocationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillCardTitleField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillCardTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashfile/TrashFile.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashfile/TrashFileItemStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashfile/TrashFilePathCollectionEntriesField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashfile/TrashFilePathCollectionEntriesTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashfile/TrashFilePathCollectionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashfile/TrashFileTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestored.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestoredItemStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestoredPathCollectionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestoredTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolder.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderItemStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderPathCollectionEntriesField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderPathCollectionEntriesTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderPathCollectionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestored.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestoredItemStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestoredPathCollectionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestoredTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLink.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkItemStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkPathCollectionEntriesField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkPathCollectionEntriesTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkPathCollectionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestored.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestoredItemStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestoredPathCollectionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestoredTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/uploadedpart/UploadedPart.java create mode 100644 src/main/java/com/box/sdkgen/schemas/uploadpart/UploadPart.java create mode 100644 src/main/java/com/box/sdkgen/schemas/uploadpartmini/UploadPartMini.java create mode 100644 src/main/java/com/box/sdkgen/schemas/uploadparts/UploadParts.java create mode 100644 src/main/java/com/box/sdkgen/schemas/uploadparts/UploadPartsOrderDirectionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/uploadparts/UploadPartsOrderField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSession.java create mode 100644 src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSessionSessionEndpointsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSessionTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/uploadurl/UploadUrl.java create mode 100644 src/main/java/com/box/sdkgen/schemas/user/User.java create mode 100644 src/main/java/com/box/sdkgen/schemas/user/UserNotificationEmailField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/user/UserStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/useravatar/UserAvatar.java create mode 100644 src/main/java/com/box/sdkgen/schemas/useravatar/UserAvatarPicUrlsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/userbase/UserBase.java create mode 100644 src/main/java/com/box/sdkgen/schemas/userbase/UserBaseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/usercollaborations/UserCollaborations.java create mode 100644 src/main/java/com/box/sdkgen/schemas/userfull/UserFull.java create mode 100644 src/main/java/com/box/sdkgen/schemas/userfull/UserFullEnterpriseField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/userfull/UserFullEnterpriseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/userfull/UserFullRoleField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/userintegrationmappings/UserIntegrationMappings.java create mode 100644 src/main/java/com/box/sdkgen/schemas/usermini/UserMini.java create mode 100644 src/main/java/com/box/sdkgen/schemas/users/Users.java create mode 100644 src/main/java/com/box/sdkgen/schemas/users/UsersOrderDirectionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/users/UsersOrderField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/archivesv2025r0/ArchivesV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/clienterrorv2025r0/ClientErrorV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/clienterrorv2025r0/ClientErrorV2025R0CodeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/clienterrorv2025r0/ClientErrorV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchbasev2025r0/DocGenBatchBaseV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchbasev2025r0/DocGenBatchBaseV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0DestinationFolderField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0DestinationFolderTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/docgendocumentgenerationdatav2025r0/DocGenDocumentGenerationDataV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobbasev2025r0/DocGenJobBaseV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobbasev2025r0/DocGenJobBaseV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobfullv2025r0/DocGenJobFullV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobsfullv2025r0/DocGenJobsFullV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobsv2025r0/DocGenJobsV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0StatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagsprocessingmessagev2025r0/DocGenTagsProcessingMessageV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagsv2025r0/DocGenTagsV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagv2025r0/DocGenTagV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagv2025r0/DocGenTagV2025R0TagTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatebasev2025r0/DocGenTemplateBaseV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatecreaterequestv2025r0/DocGenTemplateCreateRequestV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatesv2025r0/DocGenTemplatesV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatev2025r0/DocGenTemplateV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisereferencev2025r0/EnterpriseReferenceV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisereferencev2025r0/EnterpriseReferenceV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/filereferenceorfolderreferenceorweblinkreferencev2025r0/FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/filereferencev2025r0/FileReferenceV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/filereferencev2025r0/FileReferenceV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/fileversionbasev2025r0/FileVersionBaseV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/fileversionbasev2025r0/FileVersionBaseV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/folderreferencev2025r0/FolderReferenceV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/folderreferencev2025r0/FolderReferenceV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/groupbasev2025r0/GroupBaseV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/groupbasev2025r0/GroupBaseV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/groupminiv2025r0/GroupMiniV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/groupminiv2025r0/GroupMiniV2025R0GroupTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubaccessgranteev2025r0/HubAccessGranteeV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubactionv2025r0/HubActionV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubbasev2025r0/HubBaseV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubbasev2025r0/HubBaseV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0AccessibleByField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0HubField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0HubTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationsv2025r0/HubCollaborationsV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationupdaterequestv2025r0/HubCollaborationUpdateRequestV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationuserv2025r0/HubCollaborationUserV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusTermsOfServiceRequirementField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0StatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubcopyrequestv2025r0/HubCopyRequestV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubcreaterequestv2025r0/HubCreateRequestV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationresultv2025r0/HubItemOperationResultV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationv2025r0/HubItemOperationV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationv2025r0/HubItemOperationV2025R0ActionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemreferencev2025r0/HubItemReferenceV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemsmanagerequestv2025r0/HubItemsManageRequestV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemsmanageresponsev2025r0/HubItemsManageResponseV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemsv2025r0/HubItemsV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemv2025r0/HubItemV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemv2025r0/HubItemV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubsv2025r0/HubsV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubupdaterequestv2025r0/HubUpdateRequestV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentcountryv2025r0/ShieldListContentCountryV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentcountryv2025r0/ShieldListContentCountryV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentdomainv2025r0/ShieldListContentDomainV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentdomainv2025r0/ShieldListContentDomainV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentemailv2025r0/ShieldListContentEmailV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentemailv2025r0/ShieldListContentEmailV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0IntegrationsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentipv2025r0/ShieldListContentIpV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentipv2025r0/ShieldListContentIpV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentrequestv2025r0/ShieldListContentRequestV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentv2025r0/ShieldListContentV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0ContentField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistscreatev2025r0/ShieldListsCreateV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistsupdatev2025r0/ShieldListsUpdateV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistsv2025r0/ShieldListsV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistv2025r0/ShieldListV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/termsofservicebasev2025r0/TermsOfServiceBaseV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/termsofservicebasev2025r0/TermsOfServiceBaseV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/userbasev2025r0/UserBaseV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/userbasev2025r0/UserBaseV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/userminiv2025r0/UserMiniV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/watermark/Watermark.java create mode 100644 src/main/java/com/box/sdkgen/schemas/watermark/WatermarkWatermarkField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/webhook/Webhook.java create mode 100644 src/main/java/com/box/sdkgen/schemas/webhook/WebhookTriggersField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/webhookinvocation/WebhookInvocation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/webhookinvocation/WebhookInvocationTriggerField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/webhookinvocation/WebhookInvocationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMini.java create mode 100644 src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMiniTargetField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMiniTargetTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMiniTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/webhooks/Webhooks.java create mode 100644 src/main/java/com/box/sdkgen/schemas/weblink/WebLink.java create mode 100644 src/main/java/com/box/sdkgen/schemas/weblink/WebLinkItemStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/weblink/WebLinkPathCollectionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkAccessField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkEffectiveAccessField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkEffectivePermissionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkPermissionsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/weblinkbase/WebLinkBase.java create mode 100644 src/main/java/com/box/sdkgen/schemas/weblinkbase/WebLinkBaseTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/weblinkmini/WebLinkMini.java create mode 100644 src/main/java/com/box/sdkgen/schemas/workflow/Workflow.java create mode 100644 src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesActionTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesIfRejectedActionTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesIfRejectedField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesIfRejectedTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeObjectField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeObjectTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerTriggerTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/workflowfull/WorkflowFull.java create mode 100644 src/main/java/com/box/sdkgen/schemas/workflowmini/WorkflowMini.java create mode 100644 src/main/java/com/box/sdkgen/schemas/workflowmini/WorkflowMiniTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/workflows/Workflows.java create mode 100644 src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownload.java create mode 100644 src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownloadNameConflictsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownloadNameConflictsTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/zipdownloadrequest/ZipDownloadRequest.java create mode 100644 src/main/java/com/box/sdkgen/schemas/zipdownloadrequest/ZipDownloadRequestItemsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/zipdownloadrequest/ZipDownloadRequestItemsTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/zipdownloadstatus/ZipDownloadStatus.java create mode 100644 src/main/java/com/box/sdkgen/schemas/zipdownloadstatus/ZipDownloadStatusStateField.java create mode 100644 src/main/java/com/box/sdkgen/serialization/json/EnumWrapper.java create mode 100644 src/main/java/com/box/sdkgen/serialization/json/JsonManager.java create mode 100644 src/main/java/com/box/sdkgen/serialization/json/Valuable.java delete mode 100644 src/test/Fixtures/BoxAI/ExtractMetadataFreeform200.json delete mode 100644 src/test/Fixtures/BoxAI/ExtractMetadataStructured200.json delete mode 100644 src/test/Fixtures/BoxAI/GetAIAgentDefaultConfigAsk200.json delete mode 100644 src/test/Fixtures/BoxAI/GetAIAgentDefaultConfigExtract200.json delete mode 100644 src/test/Fixtures/BoxAI/GetAIAgentDefaultConfigExtractStructured200.json delete mode 100644 src/test/Fixtures/BoxAI/GetAIAgentDefaultConfigTextGen200.json delete mode 100644 src/test/Fixtures/BoxAI/SendAIRequest200.json delete mode 100644 src/test/Fixtures/BoxAI/SendAITextGen200.json delete mode 100644 src/test/Fixtures/BoxAPIConnection/State.json delete mode 100644 src/test/Fixtures/BoxAPIConnection/StateDeprecated.json delete mode 100644 src/test/Fixtures/BoxBatch/BatchCreateMetadataRequest.json delete mode 100644 src/test/Fixtures/BoxBatch/BatchCreateMetadataResponse.json delete mode 100644 src/test/Fixtures/BoxCollaboration/CreateCollaboration201.json delete mode 100644 src/test/Fixtures/BoxCollaboration/CreateFileCollaboration201.json delete mode 100644 src/test/Fixtures/BoxCollaboration/GetCollaborationInfo200.json delete mode 100644 src/test/Fixtures/BoxCollaboration/GetCollaborationOnFolder200.json delete mode 100644 src/test/Fixtures/BoxCollaboration/GetInviteEmailAttributesOnCollaboration200.json delete mode 100644 src/test/Fixtures/BoxCollaboration/GetPendingCollaborationInfo200.json delete mode 100644 src/test/Fixtures/BoxCollaboration/UpdateCollaboration200.json delete mode 100644 src/test/Fixtures/BoxCollaborationAllowlist/CreateAllowlistForAUser201.json delete mode 100644 src/test/Fixtures/BoxCollaborationAllowlist/CreateAllowlistForDomain201.json delete mode 100644 src/test/Fixtures/BoxCollaborationAllowlist/GetAllowlistInfoForADomain200.json delete mode 100644 src/test/Fixtures/BoxCollaborationAllowlist/GetAllowlistInfoForAUser200.json delete mode 100644 src/test/Fixtures/BoxCollaborationAllowlist/GetAllowlistInfoForAllDomains200.json delete mode 100644 src/test/Fixtures/BoxCollaborationAllowlist/GetAllowlistInfoForAllUsers200.json delete mode 100644 src/test/Fixtures/BoxCollection/AddItemToCollection200.json delete mode 100644 src/test/Fixtures/BoxCollection/GetCollectionItems200.json delete mode 100644 src/test/Fixtures/BoxCollection/GetCollections200.json delete mode 100644 src/test/Fixtures/BoxComment/CreateComment201.json delete mode 100644 src/test/Fixtures/BoxComment/GetCommentInfo200.json delete mode 100644 src/test/Fixtures/BoxComment/GetCommentsOnFile200.json delete mode 100644 src/test/Fixtures/BoxComment/UpdateCommentsMessage200.json delete mode 100644 src/test/Fixtures/BoxDevicePin/GetAllEnterpriseDevicePins200.json delete mode 100644 src/test/Fixtures/BoxDevicePin/GetDevicePinInfo200.json delete mode 100644 src/test/Fixtures/BoxEvent/GetEnterpriseEvents200.json delete mode 100644 src/test/Fixtures/BoxException/BoxResponseException400WithErrorAndErrorDescription.json delete mode 100644 src/test/Fixtures/BoxException/BoxResponseException403.json delete mode 100644 src/test/Fixtures/BoxException/BoxResponseException403WithRequestID.json delete mode 100644 src/test/Fixtures/BoxException/BoxResponseException404.json delete mode 100644 src/test/Fixtures/BoxException/BoxResponseException409.json delete mode 100644 src/test/Fixtures/BoxException/BoxResponseException500.json delete mode 100644 src/test/Fixtures/BoxFile/CanUploadFile200.json delete mode 100644 src/test/Fixtures/BoxFile/CommitUpload201.json delete mode 100644 src/test/Fixtures/BoxFile/CommitUploadWithAttributes201.json delete mode 100644 src/test/Fixtures/BoxFile/CopyFile200.json delete mode 100644 src/test/Fixtures/BoxFile/CreateClassificationOnFile201.json delete mode 100644 src/test/Fixtures/BoxFile/CreateFileWithDescription201.json delete mode 100644 src/test/Fixtures/BoxFile/CreateMetadataOnFile201.json delete mode 100644 src/test/Fixtures/BoxFile/CreateSharedLinkWithPassword201.json delete mode 100644 src/test/Fixtures/BoxFile/CreateUploadSession201.json delete mode 100644 src/test/Fixtures/BoxFile/GetAllFileVersions200.json delete mode 100644 src/test/Fixtures/BoxFile/GetFileInfo200.json delete mode 100644 src/test/Fixtures/BoxFile/GetFileInfoCausesDeserializationException.json delete mode 100644 src/test/Fixtures/BoxFile/GetFileRepresentation200.json delete mode 100644 src/test/Fixtures/BoxFile/GetFileRepresentation200WithPending.json delete mode 100644 src/test/Fixtures/BoxFile/GetFileRepresentations200.json delete mode 100644 src/test/Fixtures/BoxFile/GetFileTasksInfoWithFields200.json delete mode 100644 src/test/Fixtures/BoxFile/GetFileVersion200.json delete mode 100644 src/test/Fixtures/BoxFile/GetMetadataOnFile200.json delete mode 100644 src/test/Fixtures/BoxFile/ListUploadedPart200.json delete mode 100644 src/test/Fixtures/BoxFile/ListUploadedParts200.json delete mode 100644 src/test/Fixtures/BoxFile/LockFile200.json delete mode 100644 src/test/Fixtures/BoxFile/MoveFile200.json delete mode 100644 src/test/Fixtures/BoxFile/UnlockFile200.json delete mode 100644 src/test/Fixtures/BoxFile/UpdateClassificationOnFile200.json delete mode 100644 src/test/Fixtures/BoxFile/UpdateFileInfo200.json delete mode 100644 src/test/Fixtures/BoxFile/UpdateMetadataOnFile200.json delete mode 100644 src/test/Fixtures/BoxFile/UploadNewVersion201.json delete mode 100644 src/test/Fixtures/BoxFile/UploadPartOne200.json delete mode 100644 src/test/Fixtures/BoxFileRequest/CopyFileRequest200.json delete mode 100644 src/test/Fixtures/BoxFileRequest/GetFileRequest200.json delete mode 100644 src/test/Fixtures/BoxFileRequest/UpdateFileRequest200.json delete mode 100644 src/test/Fixtures/BoxFolder/CopyFolder201.json delete mode 100644 src/test/Fixtures/BoxFolder/CreateClassificationOnFolder201.json delete mode 100644 src/test/Fixtures/BoxFolder/CreateFolderLock200.json delete mode 100644 src/test/Fixtures/BoxFolder/CreateMetadataOnFolder201.json delete mode 100644 src/test/Fixtures/BoxFolder/CreateNewFolder201.json delete mode 100644 src/test/Fixtures/BoxFolder/CreateSharedLinkForFolder200.json delete mode 100644 src/test/Fixtures/BoxFolder/GetAllFolderCollaborations200.json delete mode 100644 src/test/Fixtures/BoxFolder/GetAllFolderCollaborations200WithFields.json delete mode 100644 src/test/Fixtures/BoxFolder/GetAllFolderItems200.json delete mode 100644 src/test/Fixtures/BoxFolder/GetAllMetadataOnFolder200.json delete mode 100644 src/test/Fixtures/BoxFolder/GetAllRootFolderItems200.json delete mode 100644 src/test/Fixtures/BoxFolder/GetCollaborations200.json delete mode 100644 src/test/Fixtures/BoxFolder/GetFolderInfo200.json delete mode 100644 src/test/Fixtures/BoxFolder/GetFolderInfoCausesDeserializationException.json delete mode 100644 src/test/Fixtures/BoxFolder/GetFolderInfoForCollaborationRestriction200.json delete mode 100644 src/test/Fixtures/BoxFolder/GetFolderItemsWithSort200.json delete mode 100644 src/test/Fixtures/BoxFolder/GetFolderLocks200.json delete mode 100644 src/test/Fixtures/BoxFolder/GetMetadataForFolder200.json delete mode 100644 src/test/Fixtures/BoxFolder/MoveFolder200.json delete mode 100644 src/test/Fixtures/BoxFolder/PutTransferFolder200.json delete mode 100644 src/test/Fixtures/BoxFolder/UpdateClassificationOnFolder200.json delete mode 100644 src/test/Fixtures/BoxFolder/UpdateFolderInfo200.json delete mode 100644 src/test/Fixtures/BoxFolder/UpdateMetadataOnFolder200.json delete mode 100644 src/test/Fixtures/BoxGroup/CreateAGroup201.json delete mode 100644 src/test/Fixtures/BoxGroup/CreateGroupMembership201.json delete mode 100644 src/test/Fixtures/BoxGroup/GetAGroupsCollaborations1stPage200.json delete mode 100644 src/test/Fixtures/BoxGroup/GetAGroupsCollaborations2ndPage200.json delete mode 100644 src/test/Fixtures/BoxGroup/GetAGroupsInfo200.json delete mode 100644 src/test/Fixtures/BoxGroup/GetAllGroups200.json delete mode 100644 src/test/Fixtures/BoxGroup/GetGroupMembershipForAUser200.json delete mode 100644 src/test/Fixtures/BoxGroup/GetGroupsByName200.json delete mode 100644 src/test/Fixtures/BoxGroup/GetGroupsByNameWithFieldsOption200.json delete mode 100644 src/test/Fixtures/BoxGroup/GetMembershipForAGroup200.json delete mode 100644 src/test/Fixtures/BoxGroup/UpdateAGroupsInfo200.json delete mode 100644 src/test/Fixtures/BoxGroup/UpdateGroupMembership200.json delete mode 100644 src/test/Fixtures/BoxItem/GetSharedItemFile200.json delete mode 100644 src/test/Fixtures/BoxLegalHold/GetFileVersionLegalHolds200.json delete mode 100644 src/test/Fixtures/BoxLegalHold/GetFileVersionLegalHoldsID200.json delete mode 100644 src/test/Fixtures/BoxLegalHold/GetLegalHoldPolicies200.json delete mode 100644 src/test/Fixtures/BoxLegalHold/GetLegalHoldPoliciesID200.json delete mode 100644 src/test/Fixtures/BoxLegalHold/GetLegalHoldPolicyAssignmentsID200.json delete mode 100644 src/test/Fixtures/BoxLegalHold/GetLegalHoldPolicyAssignmentsPolicyID200.json delete mode 100644 src/test/Fixtures/BoxLegalHold/PostLegalHoldPolicies201.json delete mode 100644 src/test/Fixtures/BoxLegalHold/PostLegalHoldPolicyAssignments201.json delete mode 100644 src/test/Fixtures/BoxLegalHold/PostOngoingLegalHoldPolicies201.json delete mode 100644 src/test/Fixtures/BoxLegalHold/PostOngoingWithStartDateLegalHoldPolicies201.json delete mode 100644 src/test/Fixtures/BoxLegalHold/PutLegalHoldPoliciesID200.json delete mode 100644 src/test/Fixtures/BoxMetadataCascadePolicy/CreateMetadataCascadePolicies201.json delete mode 100644 src/test/Fixtures/BoxMetadataCascadePolicy/GetAllMetadataCascadePolicies200.json delete mode 100644 src/test/Fixtures/BoxMetadataCascadePolicy/GetMetadataCascadePoliciesID200.json delete mode 100644 src/test/Fixtures/BoxMetadataTemplate/CreateMetadataTemplate200.json delete mode 100644 src/test/Fixtures/BoxMetadataTemplate/GetAMetadataTemplateInfo200.json delete mode 100644 src/test/Fixtures/BoxMetadataTemplate/GetAllEnterpriseTemplates200.json delete mode 100644 src/test/Fixtures/BoxMetadataTemplate/GetMetadataTemplateOptionInfo200.json delete mode 100644 src/test/Fixtures/BoxMetadataTemplate/MetadataQuery1stRequest.json delete mode 100644 src/test/Fixtures/BoxMetadataTemplate/MetadataQuery1stResponse200.json delete mode 100644 src/test/Fixtures/BoxMetadataTemplate/MetadataQuery2ndRequest.json delete mode 100644 src/test/Fixtures/BoxMetadataTemplate/MetadataQuery2ndResponse200.json delete mode 100644 src/test/Fixtures/BoxMetadataTemplate/MetadataQueryResponseForFields200.json delete mode 100644 src/test/Fixtures/BoxMetadataTemplate/UpdateMetadataTemplate200.json delete mode 100644 src/test/Fixtures/BoxMetadataTemplate/UpdateMetadataTemplateWithStaticConfig200.json delete mode 100644 src/test/Fixtures/BoxRetentionPolicy/CreateRetentionPolicy201.json delete mode 100644 src/test/Fixtures/BoxRetentionPolicy/CreateRetentionPolicyAssignmentForEnterprise201.json delete mode 100644 src/test/Fixtures/BoxRetentionPolicy/CreateRetentionPolicyAssignmentForMetadataTemplate201.json delete mode 100644 src/test/Fixtures/BoxRetentionPolicy/CreateRetentionPolicyAssignmentForMetadataTemplateWithoutStartDateField201.json delete mode 100644 src/test/Fixtures/BoxRetentionPolicy/GetAllFileVersionRetentions200.json delete mode 100644 src/test/Fixtures/BoxRetentionPolicy/GetAllRetentionPolicies200.json delete mode 100644 src/test/Fixtures/BoxRetentionPolicy/GetAllRetentionPolicyAssignments200.json delete mode 100644 src/test/Fixtures/BoxRetentionPolicy/GetFileRetentionInfo200.json delete mode 100644 src/test/Fixtures/BoxRetentionPolicy/GetFileVersionsUnderRetention200.json delete mode 100644 src/test/Fixtures/BoxRetentionPolicy/GetFilesUnderRetention200.json delete mode 100644 src/test/Fixtures/BoxRetentionPolicy/GetRetentionPolicyAssignment200.json delete mode 100644 src/test/Fixtures/BoxRetentionPolicy/GetRetentionPolicyAssignmentInfo200.json delete mode 100644 src/test/Fixtures/BoxRetentionPolicy/GetRetentionPolicyInfo200.json delete mode 100644 src/test/Fixtures/BoxRetentionPolicy/UpdateRetentionPolicyInfo200.json delete mode 100644 src/test/Fixtures/BoxSearch/GetSearchItemsIncludingSharedLinks200.json delete mode 100644 src/test/Fixtures/BoxSharedLink/CreateEditableSharedLink201.json delete mode 100644 src/test/Fixtures/BoxSharedLink/CreateSharedLink201.json delete mode 100644 src/test/Fixtures/BoxSignRequest/CancelSignRequest200.json delete mode 100644 src/test/Fixtures/BoxSignRequest/CreateSignRequest200.json delete mode 100644 src/test/Fixtures/BoxSignRequest/GetAllSignRequests200.json delete mode 100644 src/test/Fixtures/BoxSignRequest/GetSignRequest200.json delete mode 100644 src/test/Fixtures/BoxSignTemplate/GetAllSignTemplates200.json delete mode 100644 src/test/Fixtures/BoxSignTemplate/GetSignTemplateInfo200.json delete mode 100644 src/test/Fixtures/BoxStoragePolicy/Get_A_Storage_Policy_200.json delete mode 100644 src/test/Fixtures/BoxStoragePolicy/Get_All_Storage_Policies_200.json delete mode 100644 src/test/Fixtures/BoxStoragePolicy/Get_Storage_Policy_Assignments_200.json delete mode 100644 src/test/Fixtures/BoxTask/CreateATaskWithActionComplete200.json delete mode 100644 src/test/Fixtures/BoxTask/CreateTaskAssignment201.json delete mode 100644 src/test/Fixtures/BoxTask/CreateTaskOnFile201.json delete mode 100644 src/test/Fixtures/BoxTask/GetATaskOnFile200.json delete mode 100644 src/test/Fixtures/BoxTask/GetAllTaskAssignments200.json delete mode 100644 src/test/Fixtures/BoxTask/GetAllTasksOnFile200.json delete mode 100644 src/test/Fixtures/BoxTask/GetStatusOnTaskAssignment200.json delete mode 100644 src/test/Fixtures/BoxTask/GetTaskAssignment200.json delete mode 100644 src/test/Fixtures/BoxTask/GetTaskInfo200.json delete mode 100644 src/test/Fixtures/BoxTask/UpdateATaskAssignmentInfo200.json delete mode 100644 src/test/Fixtures/BoxTask/UpdateATaskInfo200.json delete mode 100644 src/test/Fixtures/BoxTermsOfService/GetATermsOfServiceInfo200.json delete mode 100644 src/test/Fixtures/BoxTermsOfService/GetAllTermsOfServices200.json delete mode 100644 src/test/Fixtures/BoxTermsOfService/GetTermsOfServiceForUserStatuses200.json delete mode 100644 src/test/Fixtures/BoxTrash/GetAllTrashItems200.json delete mode 100644 src/test/Fixtures/BoxTrash/GetAllTrashItemsUsingmarker200.json delete mode 100644 src/test/Fixtures/BoxTrash/GetTrashedFileItemInfo200.json delete mode 100644 src/test/Fixtures/BoxTrash/GetTrashedFolderItemInfo200.json delete mode 100644 src/test/Fixtures/BoxTrash/RestoreFileItemFromTrash201.json delete mode 100644 src/test/Fixtures/BoxTrash/RestoreFolderItemFromTrash201.json delete mode 100644 src/test/Fixtures/BoxUser/CreateAppUser201.json delete mode 100644 src/test/Fixtures/BoxUser/CreateEmailAlias201.json delete mode 100644 src/test/Fixtures/BoxUser/CreateManagedUser201.json delete mode 100644 src/test/Fixtures/BoxUser/CreateTrackingCodes200.json delete mode 100644 src/test/Fixtures/BoxUser/GetAllEnterpriseUsers200.json delete mode 100644 src/test/Fixtures/BoxUser/GetAllEnterpriseUsersMarkerPagination200.json delete mode 100644 src/test/Fixtures/BoxUser/GetCurrentUserInfo200.json delete mode 100644 src/test/Fixtures/BoxUser/GetCurrentUserInfoWithNoNotifcationEmail200.json delete mode 100644 src/test/Fixtures/BoxUser/GetUserEmailAlias200.json delete mode 100644 src/test/Fixtures/BoxUser/GetUserInfoCausesDeserializationException.json delete mode 100644 src/test/Fixtures/BoxUser/GetUserThreeTrackingCodes200.json delete mode 100644 src/test/Fixtures/BoxUser/GetUserTwoTrackingCodes200.json delete mode 100644 src/test/Fixtures/BoxUser/UpdateTrackingCodes200.json delete mode 100644 src/test/Fixtures/BoxUser/UpdateUserInfo200.json delete mode 100644 src/test/Fixtures/BoxUser/small_avatar.png delete mode 100644 src/test/Fixtures/BoxWatermark/CreateWatermarkOnFile200.json delete mode 100644 src/test/Fixtures/BoxWatermark/CreateWatermarkOnFolder200.json delete mode 100644 src/test/Fixtures/BoxWebLink/CreateWebLinkOnFolder201.json delete mode 100644 src/test/Fixtures/BoxWebLink/GetWebLinkOnFolder200.json delete mode 100644 src/test/Fixtures/BoxWebLink/UpdateWebLinkOnFolder200.json delete mode 100644 src/test/Fixtures/BoxWebhook/CreateWebhook201.json delete mode 100644 src/test/Fixtures/BoxWebhook/GetAllWebhooks200.json delete mode 100644 src/test/Fixtures/BoxWebhook/GetWebhook200.json delete mode 100644 src/test/Fixtures/BoxWebhook/UpdateWebhookInfo200.json delete mode 100644 src/test/Fixtures/BoxZip/CreateZipFile202.json delete mode 100644 src/test/config/config.json.template delete mode 100644 src/test/config/config.properties.template delete mode 100644 src/test/java/com/box/sdk/AcceptAllHostsVerifier.java delete mode 100644 src/test/java/com/box/sdk/BoxAITest.java delete mode 100644 src/test/java/com/box/sdk/BoxAPIConnectionForTests.java delete mode 100644 src/test/java/com/box/sdk/BoxAPIConnectionTest.java delete mode 100644 src/test/java/com/box/sdk/BoxAPIRequestTest.java delete mode 100644 src/test/java/com/box/sdk/BoxAPIResponseExceptionTest.java delete mode 100644 src/test/java/com/box/sdk/BoxAPIResponseTest.java delete mode 100644 src/test/java/com/box/sdk/BoxCCGAPIConnectionTest.java delete mode 100644 src/test/java/com/box/sdk/BoxCollaborationAllowlistExemptTargetTest.java delete mode 100644 src/test/java/com/box/sdk/BoxCollaborationAllowlistTest.java delete mode 100644 src/test/java/com/box/sdk/BoxCollaborationTest.java delete mode 100644 src/test/java/com/box/sdk/BoxCollectionTest.java delete mode 100644 src/test/java/com/box/sdk/BoxCommentTest.java delete mode 100644 src/test/java/com/box/sdk/BoxDateFormatTest.java delete mode 100644 src/test/java/com/box/sdk/BoxDeveloperEditionAPIConnectionTest.java delete mode 100644 src/test/java/com/box/sdk/BoxDevicePinTest.java delete mode 100644 src/test/java/com/box/sdk/BoxEventTest.java delete mode 100644 src/test/java/com/box/sdk/BoxFileRequestTest.java delete mode 100644 src/test/java/com/box/sdk/BoxFileTest.java delete mode 100644 src/test/java/com/box/sdk/BoxFileVersionLegalHoldTest.java delete mode 100644 src/test/java/com/box/sdk/BoxFileVersionRetentionTest.java delete mode 100644 src/test/java/com/box/sdk/BoxFileVersionTest.java delete mode 100644 src/test/java/com/box/sdk/BoxFolderTest.java delete mode 100644 src/test/java/com/box/sdk/BoxGroupMembershipTest.java delete mode 100644 src/test/java/com/box/sdk/BoxGroupTest.java delete mode 100644 src/test/java/com/box/sdk/BoxInviteTest.java delete mode 100644 src/test/java/com/box/sdk/BoxItemTest.java delete mode 100644 src/test/java/com/box/sdk/BoxJSONRequestTest.java delete mode 100644 src/test/java/com/box/sdk/BoxLegalHoldPolicyAssignmentTest.java delete mode 100644 src/test/java/com/box/sdk/BoxLegalHoldPolicyTest.java delete mode 100644 src/test/java/com/box/sdk/BoxLoggerTest.java delete mode 100644 src/test/java/com/box/sdk/BoxMetadataCascadePolicyTest.java delete mode 100644 src/test/java/com/box/sdk/BoxResourceIterableTest.java delete mode 100644 src/test/java/com/box/sdk/BoxResourceTest.java delete mode 100644 src/test/java/com/box/sdk/BoxRetentionPolicyAssignmentTest.java delete mode 100644 src/test/java/com/box/sdk/BoxRetentionPolicyTest.java delete mode 100644 src/test/java/com/box/sdk/BoxSearchParametersTest.java delete mode 100644 src/test/java/com/box/sdk/BoxSearchTest.java delete mode 100644 src/test/java/com/box/sdk/BoxSensitiveDataSanitizerTest.java delete mode 100644 src/test/java/com/box/sdk/BoxSharedLinkTest.java delete mode 100644 src/test/java/com/box/sdk/BoxSignRequestTest.java delete mode 100644 src/test/java/com/box/sdk/BoxSignTemplateTest.java delete mode 100644 src/test/java/com/box/sdk/BoxStoragePolicyAssignmentTest.java delete mode 100644 src/test/java/com/box/sdk/BoxStoragePolicyTest.java delete mode 100644 src/test/java/com/box/sdk/BoxTaskAssignmentTest.java delete mode 100644 src/test/java/com/box/sdk/BoxTaskTest.java delete mode 100644 src/test/java/com/box/sdk/BoxTermsOfServiceTest.java delete mode 100644 src/test/java/com/box/sdk/BoxTermsOfServiceUserStatusTest.java delete mode 100644 src/test/java/com/box/sdk/BoxTransactionalAPIConnectionTest.java delete mode 100644 src/test/java/com/box/sdk/BoxTrashTest.java delete mode 100644 src/test/java/com/box/sdk/BoxURLTemplateTest.java delete mode 100644 src/test/java/com/box/sdk/BoxUserTest.java delete mode 100644 src/test/java/com/box/sdk/BoxWatermarkTest.java delete mode 100644 src/test/java/com/box/sdk/BoxWebHookSignatureVerifierTest.java delete mode 100644 src/test/java/com/box/sdk/BoxWebHookTest.java delete mode 100644 src/test/java/com/box/sdk/BoxWebLinkTest.java delete mode 100644 src/test/java/com/box/sdk/BoxZipTest.java delete mode 100644 src/test/java/com/box/sdk/EventLogTest.java delete mode 100644 src/test/java/com/box/sdk/EventStreamTest.java delete mode 100644 src/test/java/com/box/sdk/IntegrationTestJWT.java delete mode 100644 src/test/java/com/box/sdk/JSONRequestInterceptor.java delete mode 100644 src/test/java/com/box/sdk/LRUCacheTest.java delete mode 100644 src/test/java/com/box/sdk/MetadataQueryTest.java delete mode 100644 src/test/java/com/box/sdk/MetadataTemplateTest.java delete mode 100644 src/test/java/com/box/sdk/MetadataTest.java delete mode 100644 src/test/java/com/box/sdk/PagingParametersTest.java delete mode 100644 src/test/java/com/box/sdk/QueryStringBuilderTest.java delete mode 100644 src/test/java/com/box/sdk/RequestBodyFromStreamTest.java delete mode 100644 src/test/java/com/box/sdk/SortParametersTest.java delete mode 100644 src/test/java/com/box/sdk/TestUtils.java delete mode 100644 src/test/java/com/box/sdk/TrustAllTrustManager.java delete mode 100644 src/test/java/com/box/sdk/internal/utils/CollectionUtilsTest.java create mode 100644 src/test/java/com/box/sdkgen/test/ai/AiITest.java create mode 100644 src/test/java/com/box/sdkgen/test/aistudio/AiStudioITest.java create mode 100644 src/test/java/com/box/sdkgen/test/appitemassociations/AppItemAssociationsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/archives/ArchivesITest.java create mode 100644 src/test/java/com/box/sdkgen/test/auth/AuthITest.java create mode 100644 src/test/java/com/box/sdkgen/test/avatars/AvatarsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/chunkeduploads/ChunkedUploadsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/chunkeduploads/TestPartAccumulator.java create mode 100644 src/test/java/com/box/sdkgen/test/classifications/ClassificationsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/client/ClientITest.java create mode 100644 src/test/java/com/box/sdkgen/test/client/InterceptorAddingRoleToFields.java create mode 100644 src/test/java/com/box/sdkgen/test/client/InterceptorChangingResponse.java create mode 100644 src/test/java/com/box/sdkgen/test/client/InterceptorThrowingError.java create mode 100644 src/test/java/com/box/sdkgen/test/collaborationallowlistentries/CollaborationAllowlistEntriesITest.java create mode 100644 src/test/java/com/box/sdkgen/test/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargetsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/comments/CommentsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/commons/CommonsManager.java create mode 100644 src/test/java/com/box/sdkgen/test/devicepinners/DevicePinnersITest.java create mode 100644 src/test/java/com/box/sdkgen/test/docgen/DocgenITest.java create mode 100644 src/test/java/com/box/sdkgen/test/docgentemplate/DocgenTemplateITest.java create mode 100644 src/test/java/com/box/sdkgen/test/downloads/DownloadsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/emailaliases/EmailAliasesITest.java create mode 100644 src/test/java/com/box/sdkgen/test/events/EventsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/fileclassifications/FileClassificationsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/filemetadata/FileMetadataITest.java create mode 100644 src/test/java/com/box/sdkgen/test/filerequests/FileRequestsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/files/FilesITest.java create mode 100644 src/test/java/com/box/sdkgen/test/fileversionlegalholds/FileVersionLegalHoldsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/fileversionretentions/FileVersionRetentionsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/fileversions/FileVersionsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/filewatermarks/FileWatermarksITest.java create mode 100644 src/test/java/com/box/sdkgen/test/folderclassifications/FolderClassificationsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/folderlocks/FolderLocksITest.java create mode 100644 src/test/java/com/box/sdkgen/test/foldermetadata/FolderMetadataITest.java create mode 100644 src/test/java/com/box/sdkgen/test/folders/FoldersITest.java create mode 100644 src/test/java/com/box/sdkgen/test/folderwatermarks/FolderWatermarksITest.java create mode 100644 src/test/java/com/box/sdkgen/test/groups/GroupsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/hubcollaborations/HubCollaborationsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/hubitems/HubItemsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/hubs/HubsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/integrationmappings/IntegrationMappingsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/invites/InvitesITest.java create mode 100644 src/test/java/com/box/sdkgen/test/legalholdpolicies/LegalHoldPoliciesITest.java create mode 100644 src/test/java/com/box/sdkgen/test/legalholdpolicyassignments/LegalHoldPolicyAssignmentsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/listcollaborations/ListCollaborationsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/memberships/MembershipsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/metadatacascadepolicies/MetadataCascadePoliciesITest.java create mode 100644 src/test/java/com/box/sdkgen/test/metadatatemplates/MetadataTemplatesITest.java create mode 100644 src/test/java/com/box/sdkgen/test/recentitems/RecentItemsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/retentionpolicies/RetentionPoliciesITest.java create mode 100644 src/test/java/com/box/sdkgen/test/retentionpolicyassignments/RetentionPolicyAssignmentsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/search/SearchITest.java create mode 100644 src/test/java/com/box/sdkgen/test/sessiontermination/SessionTerminationITest.java create mode 100644 src/test/java/com/box/sdkgen/test/sharedlinksappitems/SharedLinksAppItemsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/sharedlinksfiles/SharedLinksFilesITest.java create mode 100644 src/test/java/com/box/sdkgen/test/sharedlinksfolders/SharedLinksFoldersITest.java create mode 100644 src/test/java/com/box/sdkgen/test/sharedlinksweblinks/SharedLinksWebLinksITest.java create mode 100644 src/test/java/com/box/sdkgen/test/shieldinformationbarrierreports/ShieldInformationBarrierReportsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/shieldinformationbarriers/ShieldInformationBarriersITest.java create mode 100644 src/test/java/com/box/sdkgen/test/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembersITest.java create mode 100644 src/test/java/com/box/sdkgen/test/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictionsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/shieldinformationbarriersegments/ShieldInformationBarrierSegmentsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/shieldlists/ShieldListsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/signrequests/SignRequestsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/signtemplates/SignTemplatesITest.java create mode 100644 src/test/java/com/box/sdkgen/test/skills/SkillsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/storagepolicicyassignments/StoragePolicicyAssignmentsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/storagepolicies/StoragePoliciesITest.java create mode 100644 src/test/java/com/box/sdkgen/test/taskassignments/TaskAssignmentsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/tasks/TasksITest.java create mode 100644 src/test/java/com/box/sdkgen/test/termsofservices/TermsOfServicesITest.java create mode 100644 src/test/java/com/box/sdkgen/test/termsofserviceuserstatuses/TermsOfServiceUserStatusesITest.java create mode 100644 src/test/java/com/box/sdkgen/test/transfer/TransferITest.java create mode 100644 src/test/java/com/box/sdkgen/test/trashedfiles/TrashedFilesITest.java create mode 100644 src/test/java/com/box/sdkgen/test/trashedfolders/TrashedFoldersITest.java create mode 100644 src/test/java/com/box/sdkgen/test/trasheditems/TrashedItemsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/trashedweblinks/TrashedWebLinksITest.java create mode 100644 src/test/java/com/box/sdkgen/test/uploads/UploadsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/usercollaborations/UserCollaborationsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/users/UsersITest.java create mode 100644 src/test/java/com/box/sdkgen/test/webhooks/WebhooksITest.java create mode 100644 src/test/java/com/box/sdkgen/test/weblinks/WeblinksITest.java create mode 100644 src/test/java/com/box/sdkgen/test/workflows/WorkflowsITest.java create mode 100644 src/test/java/com/box/sdkgen/test/zipdownloads/ZipDownloadsITest.java create mode 100644 src/test/resources/junit-platform.properties delete mode 100644 src/test/resources/sample-files/empty_file delete mode 100644 src/test/resources/sample-files/file_to_sign.pdf delete mode 100644 src/test/resources/sample-files/file_to_sign2.pdf delete mode 100644 src/test/resources/sample-files/red_100x100.png delete mode 100644 src/test/resources/sample-files/rep_content.pdf delete mode 100644 src/test/resources/sample-files/small_file.rtf delete mode 100644 src/test/resources/sample-files/smalltest.pdf delete mode 100644 src/test/resources/sample-files/text.pdf delete mode 100644 src/test/resources/sample-files/zip_test.zip diff --git a/.codegen.json b/.codegen.json new file mode 100644 index 000000000..c01c9ff2d --- /dev/null +++ b/.codegen.json @@ -0,0 +1 @@ +{ "engineHash": "c34d8bf", "specHash": "c27c421", "version": "0.1.0" } diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md index f20f05aa7..1c852d9ca 100644 --- a/.github/ISSUE_TEMPLATE/bug.md +++ b/.github/ISSUE_TEMPLATE/bug.md @@ -3,8 +3,7 @@ name: Bug about: Report a bug found in the SDK title: '' labels: bug -assignees: mwwoda, mhagmajer, antusus, arjankowski, lukaszsocha2, bartlomiejleszczynski - +assignees: mwwoda, mhagmajer, arjankowski, lukaszsocha2, bartlomiejleszczynski, congminh1254 --- - [ ] I have checked that the [SDK documentation][sdk-docs] doesn't solve my issue. @@ -13,36 +12,42 @@ assignees: mwwoda, mhagmajer, antusus, arjankowski, lukaszsocha2, bartlomiejlesz - [ ] I have searched [Issues in this repo][github-repo] and my issue isn't already reported. ### Description of the Issue + ### Steps to Reproduce + + 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' 4. See error ### Expected Behavior + ### Error Message, Including Stack Trace + ### Screenshots + ### Versions Used -Java SDK: -Java: -[sdk-docs]: ./doc + + +[sdk-docs]: https://github.com/box/box-java-sdk-gen/tree/main/docs [api-docs]: https://developer.box.com/docs [dev-forums]: https://community.box.com/t5/Platform-and-Development-Forum/bd-p/DeveloperForum -[github-repo]: https://github.com/box/box-java-sdk/search?type=Issues +[github-repo]: https://github.com/box/box-java-sdk-gen/search?type=Issues diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 2d8263c13..8117147a7 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,7 +1,7 @@ blank_issues_enabled: false contact_links: - name: SDK documentation - url: https://github.com/box/box-java-sdk/tree/main/doc + url: https://github.com/box/box-java-sdk-gen/tree/main/docs about: Before creating an issue, I have checked that the SDK documentation doesn't solve my issue. - name: API documentation url: https://developer.box.com/docs @@ -10,5 +10,5 @@ contact_links: url: https://community.box.com/t5/Platform-and-Development-Forum/bd-p/DeveloperForum about: Before creating an issue, I have searched the Box Developer Forums and my issue isn't already reported there. - name: Issues in this repo - url: https://github.com/box/box-java-sdk/search?type=Issues + url: https://github.com/box/box-java-sdk-gen/search?type=Issues about: Before creating an issue, I have searched Issues in this repo and my issue isn't already reported. diff --git a/.github/ISSUE_TEMPLATE/enhancement.md b/.github/ISSUE_TEMPLATE/enhancement.md index c6a01bbfa..ea91c6e44 100644 --- a/.github/ISSUE_TEMPLATE/enhancement.md +++ b/.github/ISSUE_TEMPLATE/enhancement.md @@ -3,18 +3,21 @@ name: Enhancement about: Suggest a new feature or change title: '' labels: enhancement -assignees: mwwoda, mhagmajer, antusus, arjankowski, lukaszsocha2, bartlomiejleszczynski - +assignees: mwwoda, mhagmajer, arjankowski, lukaszsocha2, bartlomiejleszczynski, congminh1254 --- ### Is your feature request related to a problem? Please describe. + ### Describe the solution you'd like + ### Describe alternatives you've considered + ### Additional context + diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md index e209f2818..e8d6a28a2 100644 --- a/.github/ISSUE_TEMPLATE/question.md +++ b/.github/ISSUE_TEMPLATE/question.md @@ -3,8 +3,7 @@ name: Question about: Request for Assistance title: '' labels: question -assignees: mwwoda, mhagmajer, antusus, arjankowski, lukaszsocha2, bartlomiejleszczynski - +assignees: mwwoda, mhagmajer, arjankowski, lukaszsocha2, bartlomiejleszczynski, congminh1254 --- - [ ] I have checked that the [SDK documentation][sdk-docs] doesn't solve my issue. @@ -13,36 +12,42 @@ assignees: mwwoda, mhagmajer, antusus, arjankowski, lukaszsocha2, bartlomiejlesz - [ ] I have searched [Issues in this repo][github-repo] and my issue isn't already reported. ### Description of the Issue + ### Steps to Reproduce + + 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' 4. See error ### Expected Behavior + ### Error Message, Including Stack Trace + ### Screenshots + ### Versions Used -Java SDK: -Java: -[sdk-docs]: ./doc + + +[sdk-docs]: https://github.com/box/box-java-sdk-gen/tree/main/docs [api-docs]: https://developer.box.com/docs [dev-forums]: https://community.box.com/t5/Platform-and-Development-Forum/bd-p/DeveloperForum -[github-repo]: https://github.com/box/box-java-sdk/search?type=Issues +[github-repo]: https://github.com/box/box-java-sdk-gen/search?type=Issues diff --git a/.github/stale.yml b/.github/stale.yml index 062c374e8..70cf69f6b 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -19,4 +19,4 @@ markComment: > # Comment to post when closing a stale issue. Set to `false` to disable closeComment: > - This issue has been automatically closed due to maximum period of being stale. Thank you for your contribution to Box Java SDK and feel free to open another PR/issue at any time. + This issue has been automatically closed due to maximum period of being stale. Thank you for your contribution to Box SDK and feel free to open another PR/issue at any time. diff --git a/.github/workflows/autoupdate-pr.yml b/.github/workflows/autoupdate-pr.yml new file mode 100644 index 000000000..185ab949d --- /dev/null +++ b/.github/workflows/autoupdate-pr.yml @@ -0,0 +1,39 @@ +name: Autoupdate PR +on: + push: + branches: + - main + +jobs: + update_pull_requests: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + token: ${{ secrets.DISPATCH_ACCESS_TOKEN }} + + - name: Set up Git + run: | + git config --global user.name 'box-sdk-build' + git config --global user.email 'box-sdk-build@box.com' + + - name: Fetch all branches and tags + run: git fetch --prune --unshallow + + - name: Auto update pull requests + run: | + PR_LIST=$(curl -s -H "Authorization: Bearer ${{ secrets.DISPATCH_ACCESS_TOKEN }}" "https://api.github.com/repos/$GITHUB_REPOSITORY/pulls?state=open" | jq -r '.[] | .head.ref') + for pr_branch in $PR_LIST; do + git checkout "$pr_branch" + if git merge origin/main; then + git push + else + # Conflict occurred, resolve by keeping our changes + git checkout --ours . + git add . + git commit -m "Auto resolve conflict by keeping our changes" + git push + fi + done diff --git a/.github/workflows/build-main.yml b/.github/workflows/build-main.yml deleted file mode 100644 index 9df466a28..000000000 --- a/.github/workflows/build-main.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: build-main -on: - pull_request: - types: [ opened, synchronize ] - push: - branches: - - main -jobs: - build-and-test: - runs-on: ubuntu-latest - strategy: - matrix: - distribution: [ 'zulu', 'temurin' ] - java: [ '8', '11', '17' ] - name: Java ${{ matrix.java }} (${{ matrix.distribution }}) - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Setup Java - uses: actions/setup-java@v4 - with: - distribution: ${{ matrix.distribution }} - java-version: ${{ matrix.java }} - cache: 'gradle' - - name: Build and test - run: ./gradlew check --stacktrace - - name: Coverage - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: ./gradlew jacocoTestReport coverallsJacoco diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..61e1b7806 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,48 @@ +name: build +on: + pull_request: + types: [opened, synchronize] + push: + branches: + - main +jobs: + build-and-test: + runs-on: ubuntu-latest + strategy: + max-parallel: 1 + matrix: + distribution: ['zulu', 'temurin'] + java: ['8', '17'] + name: Java ${{ matrix.java }} (${{ matrix.distribution }}) + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: ${{ matrix.distribution }} + java-version: ${{ matrix.java }} + cache: 'gradle' + - name: Build and test + env: + JWT_CONFIG_BASE_64: ${{ secrets.JWT_CONFIG_BASE_64 }} + ADMIN_USER_ID: ${{ secrets.ADMIN_USER_ID }} + CLIENT_ID: ${{ secrets.CLIENT_ID }} + CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }} + USER_ID: ${{ secrets.USER_ID }} + ENTERPRISE_ID: ${{ secrets.ENTERPRISE_ID }} + BOX_FILE_REQUEST_ID: ${{ secrets.BOX_FILE_REQUEST_ID }} + BOX_EXTERNAL_USER_EMAIL: ${{ secrets.BOX_EXTERNAL_USER_EMAIL }} + APP_ITEM_ASSOCIATION_FILE_ID: ${{ secrets.APP_ITEM_ASSOCIATION_FILE_ID }} + APP_ITEM_ASSOCIATION_FOLDER_ID: ${{ secrets.APP_ITEM_ASSOCIATION_FOLDER_ID }} + WORKFLOW_FOLDER_ID: ${{ secrets.WORKFLOW_FOLDER_ID }} + APP_ITEM_SHARED_LINK: ${{ secrets.APP_ITEM_SHARED_LINK }} + SLACK_AUTOMATION_USER_ID: ${{ secrets.SLACK_AUTOMATION_USER_ID }} + SLACK_ORG_ID: ${{ secrets.SLACK_ORG_ID }} + SLACK_PARTNER_ITEM_ID: ${{ secrets.SLACK_PARTNER_ITEM_ID }} + run: ./gradlew check --stacktrace + + - name: Coverage + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: ./gradlew jacocoTestReport coverallsJacoco diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml deleted file mode 100644 index 9c2a80b84..000000000 --- a/.github/workflows/integration-tests.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: Integration tests - -on: - push: - branches: - - main - pull_request: - branches: - - main - -jobs: - core: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Setup Java - uses: actions/setup-java@v4 - with: - distribution: 'temurin' - java-version: '8' - - name: Run Tests - env: - JAVA_COLLABORATOR_ID: ${{ secrets.JAVA_COLLABORATOR_ID }} - JAVA_COLLABORATOR: ${{ secrets.JAVA_COLLABORATOR }} - JAVA_ENTERPRISE_ID: ${{ secrets.JAVA_ENTERPRISE_ID }} - JAVA_JWT_CONFIG: ${{ secrets.JAVA_JWT_CONFIG }} - JAVA_USER_ID: ${{ secrets.JAVA_USER_ID }} - run: ./gradlew integrationTest diff --git a/.github/workflows/notify-changelog.yml b/.github/workflows/notify-changelog.yml new file mode 100644 index 000000000..b54a043bf --- /dev/null +++ b/.github/workflows/notify-changelog.yml @@ -0,0 +1,27 @@ +# A GitHub action that notifies the developer +# changelog repository of any new releases. + +name: Notify changelog + +on: + # Only trigger for a full release, + # ignoring pre-releases and drafts + release: + types: + - released + +jobs: + notify: + # This job can run on the latest Ubuntu + # and it should not take more than 3 minutes + runs-on: ubuntu-latest + timeout-minutes: 3 + + steps: + - name: Notify changelog of new release + uses: peter-evans/repository-dispatch@v1 + with: + token: ${{ secrets.DISPATCH_ACCESS_TOKEN }} + repository: box/box-developer-changelog + event-type: new-release-note + client-payload: '{"ref": "${{ github.ref }}", "repository": "${{github.repository}}", "labels": "sdks,java", "repo_display_name": "Box Java SDK Generated"}' diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml deleted file mode 100644 index 58c874f10..000000000 --- a/.github/workflows/releases.yml +++ /dev/null @@ -1,28 +0,0 @@ -# A GitHub action that notifies the developer -# changelog repository of any new releases. - -name: Notify changelog - -on: - # Only trigger for a full release, - # ignoring pre-releases and drafts - release: - types: - - released - -jobs: - notify: - # This job can run on the latest Ubuntu - # and it should not take more than 3 minutes - runs-on: ubuntu-latest - timeout-minutes: 3 - - steps: - # There's really only 1 step, and i - - name: Notify changelog of new release - uses: peter-evans/repository-dispatch@v1 - with: - token: ${{ secrets.DISPATCH_ACCESS_TOKEN }} - repository: box/box-developer-changelog - event-type: new-release-note - client-payload: '{"ref": "${{ github.ref }}", "repository": "${{github.repository}}", "labels": "sdks,java", "repo_display_name": "Box Java SDK"}' diff --git a/.github/workflows/spell-check-lint.yml b/.github/workflows/spell-check-lint.yml index 3283b9f04..659bbd3fa 100644 --- a/.github/workflows/spell-check-lint.yml +++ b/.github/workflows/spell-check-lint.yml @@ -1,11 +1,11 @@ name: spell-check-lint on: pull_request_target: - types: [ opened, synchronize, edited ] + types: [opened, synchronize, edited] branches: - main jobs: - spellcheck-request-title: + spellcheck-request: runs-on: ubuntu-latest steps: - name: Checkout current repository @@ -19,3 +19,5 @@ jobs: path: spellchecker - name: Execute spellchecker uses: ./spellchecker + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index a1890e823..0df7a29b8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,6 @@ .gradle/ build/ .DS_Store -src/test/config/config.properties -src/test/config/config.json /target/ .settings/ .idea/ @@ -16,6 +14,3 @@ out/ *.secret #Sdkman .sdkmanrc -#Release process -gradle.properties -release_notes.md \ No newline at end of file diff --git a/.versionrc b/.versionrc index 5dffabd46..ca2ea3076 100644 --- a/.versionrc +++ b/.versionrc @@ -1,13 +1,34 @@ { - "types": [ - {"type": "feat", "section": "New Features and Enhancements:", "hidden": false}, - {"type": "fix", "section": "Bug Fixes:", "hidden": false}, - {"type": "build", "section": "Dependency Upgrades:", "hidden": false}, - {"type": "chore", "hidden": true}, - {"type": "docs", "hidden": true}, - {"type": "style", "hidden": true}, - {"type": "refactor", "hidden": true}, - {"type": "test", "hidden": true}, - {"type": "ci", "hidden":true} - ] -} \ No newline at end of file + "types": [ + { + "type": "feat", + "section": "New Features and Enhancements", + "hidden": false + }, + { + "type": "fix", + "section": "Bug Fixes", + "hidden": false + }, + { + "type": "chore", + "hidden": true + }, + { + "type": "docs", + "hidden": true + }, + { + "type": "style", + "hidden": true + }, + { + "type": "refactor", + "hidden": true + }, + { + "type": "test", + "hidden": true + } + ] +} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a4e23f0eb..e12872653 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,94 +16,5 @@ This project adheres to the [Box Open Code of Conduct](http://opensource.box.com ## How to contribute -* **File an issue** - if you found a bug, want to request an enhancement, or want to implement something (bug fix or feature). -* **Send a pull request** - if you want to contribute code. Please be sure to file an issue first. - -## Pull request best practices - -We want to accept your pull requests. Please follow these steps: - -### Step 1: File an issue - -Before writing any code, please file an issue stating the problem you want to solve or the feature you want to implement. This allows us to give you feedback before you spend any time writing code. There may be a known limitation that can't be addressed, or a bug that has already been fixed in a different way. The issue allows us to communicate and figure out if it's worth your time to write a bunch of code for the project. - -### Step 2: Fork this repository in GitHub - -This will create your own copy of our repository. - -### Step 3: Add the upstream source - -The upstream source is the project under the Box organization on GitHub. To add an upstream source for this project, type: - -``` -git remote add upstream git@github.com:box/box-java-sdk.git -``` - -This will come in useful later. - -### Step 4: Create a feature branch - -Create a branch with a descriptive name, such as `add-search`. - -### Step 5: Push your feature branch to your fork - -We use [semantic-versioning](https://semver.org/) and the [conventional commit message format](https://www.conventionalcommits.org/en/v1.0.0/). Keep a separate feature branch for each issue you want to address. As you develop code, continue to push code to your remote feature branch. Example: - -``` -tag: short description - -longer description here if necessary. -``` - -The message summary should be a one-sentence description of the change, and it must be 72 characters in length or shorter. For a list of tags, please [click here](https://github.com/commitizen/conventional-commit-types/blob/master/index.json). Note that you must include the `!` for breaking changes (e.g. `feat!: removed old apis`). - -Shown below are examples of the release type that will be done based on a commit message. - -#### Commit Types - -"Semantic versioning" means that changes to the version number of the package (e.g. `3.42.11` to `3.43.0`) are done according to rules that indicate how the change will affect consumers. Read more on the [semver page](https://semver.org/). - -The version number is broken into 3 positions — `Major.Minor.Patch`. In semantic release terms, changes to the numbers follow `Breaking.Feature.Fix`. The `release` script parses commit messages and decides what type of release to make based on the types of commits detected since the last release. - -The rules for commit types are: - -- Anything that changes or removes an API, option, or output format is a breaking change denoted by `!`. -- Anything that adds new functionality in a backwards-compatible way is a feature (`feat`). Consumers have to upgrade to the new version to use the feature, but nothing will break if they do so. -- Bugfixes (`fix`) for existing behavior are a patch. Consumers don't have to do anything but upgrade. -- Other prefixes, such as `docs` or `chore`, don't trigger releases and don't appear in the changelog. These tags signal that there are **no external changes to _any_ APIs** (including non-breaking ones). - -In most cases, commits will be a `feat` or `fix`. Make sure to include the `!` in the title if there are non-backwards-compatible changes in the commit. - -| Commit message | Release type | New version | -| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ | ----------- | -| `feat!: remove old files endpoints` | Major ("breaking") | `X+1.0.0` | -| `feat: add new file upload endpoint` | Minor ("feature") | `X.Y+1.0` | -| `fix: file streaming during download` | Patch ("fix") | `X.Y.Z+1` | -| `docs: document files api` | No release | `X.Y.Z` | -| `chore: remove commented code from file upload` | No release | `X.Y.Z` | -| `refactor: rename a variable (invisible change)` | No release | `X.Y.Z` | - -### Step 6: Rebase - -Before sending a pull request, rebase against upstream, such as: - -``` -git fetch upstream -git rebase upstream/main -``` - -This will add your changes on top of what's already in upstream, minimizing merge issues. - -### Step 7: Run the tests - -Make sure that the code builds and passes all unit tests by running: - -```bash -$ ./gradlew clean build -``` - -### Step 8: Send the pull request - -Send the pull request from your feature branch to us. Be sure to include a description that lets us know what work you did. - -Keep in mind that we like to see one issue addressed per pull request, as this helps keep our git history clean and we can more easily track down issues. +- **File an issue** - if you found a bug, want to request an enhancement, or want to implement something (bug fix or feature). +- **Send a pull request** - this project is generated using [Box Codegen](https://github.com/box/box-codegen) based on[Box OpenAPI 3.0 Specification](https://github.com/box/box-openapi), so if you want found something you want to change in the generated code, you'll need to modify the codegen project and submit a pull request there. diff --git a/README.md b/README.md index fbff6466d..5cbe15237 100644 --- a/README.md +++ b/README.md @@ -2,366 +2,194 @@ “box-dev-logo”

-# Box Java SDK +# Box Java SDK Gen [![Project Status](http://opensource.box.com/badges/active.svg)](http://opensource.box.com/badges) +![build](https://github.com/box/box-java-sdk-gen/actions/workflows/build.yml/badge.svg) +![Maven Central Version](https://img.shields.io/maven-central/v/com.box/box-java-sdk-gen) ![Platform](https://img.shields.io/badge/java-%3E%3D8-blue) -[![License](https://img.shields.io/badge/license-Apache2-blue)](https://raw.githubusercontent.com/box/box-java-sdk/main/LICENSE) -[![Build main](https://github.com/box/box-java-sdk/actions/workflows/build-main.yml/badge.svg)](https://github.com/box/box-java-sdk/actions/workflows/build-main.yml) -[![Coverage](https://coveralls.io/repos/github/box/box-java-sdk/badge.svg?branch=main)](https://coveralls.io/github/box/box-java-sdk?branch=main) +[![Coverage](https://coveralls.io/repos/github/box/box-java-sdk-gen/badge.svg?branch=main)](https://coveralls.io/github/box/box-java-sdk-gen?branch=main) -The Box Java SDK for interacting with the -[Box Content API](https://developers.box.com/docs/). +We are excited to introduce the Beta Release of the latest generation of Box Java SDK Gen, designed to elevate the developer experience and streamline your integration with the Box Content Cloud. -## Latest Release -Latest release can be found [here](https://github.com/box/box-java-sdk/tree/v4.16.3). +With this SDK, you’ll have access to: -## Upgrades -You can read about how to migrate to the 4 version [here](doc/upgrades/3.x.x%20to%204.x.x.md). +1. Full API Support: The new generation of Box SDKs empowers developers with complete coverage of the Box API ecosystem. You can now access all the latest features and functionalities offered by Box, allowing you to build even more sophisticated and feature-rich applications. +2. Rapid API Updates: Say goodbye to waiting for new Box APIs to be incorporated into the SDK. With our new auto-generation development approach, we can now add new Box APIs to the SDK at a much faster pace (in a matter of days). This means you can leverage the most up-to-date features in your applications without delay. +3. Embedded Documentation: We understand that easy access to information is crucial for developers. With our new approach, we have included comprehensive documentation for all objects and parameters directly in the source code of the SDK. This means you no longer need to look up this information on the developer portal, saving you time and streamlining your development process. +4. Enhanced Convenience Methods: Our commitment to enhancing your development experience continues with the introduction of convenience methods. These methods cover various aspects such as chunk uploads, classification, and much more. +5. Seamless Start: The new SDKs integrate essential functionalities like authentication, automatic retries with exponential backoff, exception handling, request cancellation, and type checking, enabling you to focus solely on your application's business logic. -## Versions -We use a modified version of [Semantic Versioning](https://semver.org/) for all changes. See [version strategy](VERSIONS.md) for details which is effective from 30 July 2022. +Embrace the new generation of Box SDKs and unlock the full potential of the Box Content Cloud. -### Supported Version +# Table of contents -Only the current MAJOR version of SDK is supported. New features, functionality, bug fixes, and security updates will only be added to the current MAJOR version. + + -A current release is on the leading edge of our SDK development, and is intended for customers who are in active development and want the latest and greatest features. Instead of stating a release date for a new feature, we set a fixed minor or patch release cadence of maximum 2-3 months (while we may release more often). At the same time, there is no schedule for major or breaking release. Instead, we will communicate one quarter in advance the upcoming breaking change to allow customers to plan for the upgrade. We always recommend that all users run the latest available minor release for whatever major version is in use. We highly recommend upgrading to the latest SDK major release at the earliest convenient time and before the EOL date. +- [Box Java SDK Gen](#box-java-sdk-gen) +- [Table of contents](#table-of-contents) +- [Installing](#installing) +- [Getting Started](#getting-started) +- [Documentation](#documentation) +- [Upgrades](#upgrades) +- [Integration Tests](#integration-tests) + - [Running integration tests locally](#running-integration-tests-locally) + - [Create Platform Application](#create-platform-application) + - [Export configuration](#export-configuration) + - [Start integration tests](#start-integration-tests) +- [3rd Party Libraries \& Licenses](#3rd-party-libraries--licenses) +- [Questions, Bugs, and Feature Requests?](#questions-bugs-and-feature-requests) +- [Copyright and License](#copyright-and-license) -### Version schedule + -| Version | Supported Environments | State | First Release | EOL/Terminated | -|---------|---------------------------------------------------------|-----------|---------------|----------------| -| 4 | Java 8 and up | Supported | 17 Jan 2023 | TBD | -| 3 | Java 8 and up | EOL | 17 Jan 2022 | 17 Jan 2023 | -| 2 | | EOL | 07 Jan 2016 | 17 Jan 2022 | -| 1 | | EOL | 15 Apr 2015 | 07 Jan 2016 | +# Installing +To generate a .jar file download the source code and run the following command: - -## Getting Started -Getting Started Docs: https://developer.box.com/guides/tooling/sdks/java/ -API Reference: https://developer.box.com/reference/ - -## JVM - -The SDK can be obtained by adding it as a [maven dependency](http://opensource.box.com/box-java-sdk/), -cloning the source into your project, or by downloading one of the precompiled JARs from the -[releases page on GitHub](https://github.com/box/box-java-sdk/releases). - -If you are developing application for Android visit our [Android guide](doc/android.md) - -**IF YOU USE THE JAR, you'll also need to include several dependencies:** - -1. [minimal-json v0.9.5](https://github.com/ralfstx/minimal-json) - Maven: `com.eclipsesource.minimal-json:minimal-json:0.9.5` -2. [jose4j v0.9.4](https://bitbucket.org/b_c/jose4j/wiki/Home) - Maven: `org.bitbucket.b_c:jose4j:0.9.4` -3. [bouncycastle bcprov-jdk18on v1.78.1](https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk18on/1.78.1) - Maven: `org.bouncycastle:bcprov-jdk18on:1.78.1` -4. [bouncycastle bcpkix-jdk18on v1.78.1](https://mvnrepository.com/artifact/org.bouncycastle/bcpkix-jdk18on/1.78.1) - Maven: `org.bouncycastle:bcpkix-jdk18on:1.78.1` -5. [Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 7](http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html) - If you don't install this, you'll get an exception about key length or exception about parsing PKCS private key for Box Developer Edition. This is not a Box thing, this is a U.S. Government requirement concerning strong encryption. - The listed jar is for Oracle JRE. There might be other similar JARs for different JRE versions like the one below for IBM JDK - [Java Cryptography Extension for IBM JDK](https://www14.software.ibm.com/webapp/iwm/web/preLogin.do?source=jcesdk) -6. [okhttp v4.12.0](https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp/4.12.0) - Maven: `com.squareup.okhttp3:okhttp:4.12.0` -7. [okio-jvm v3.2.0](https://mvnrepository.com/artifact/com.squareup.okio/okio-jvm/3.2.0) - Maven: `com.squareup.okio:okio-jvm:3.2.0` -8. [kotlin-stdlib v1.6.20](https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-stdlib/1.6.20) - Maven: `org.jetbrains.kotlin:kotlin-stdlib:1.6.20` -9. [kotlin-stdlib-common v1.6.20](https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-stdlib-common/1.6.20) - Maven: `org.jetbrains.kotlin:kotlin-stdlib-common:1.6.20` - -An app has to be authorized by the admin of the enterprise before these tests. It's always good to begin with the -[Getting Started Section](https://developer.box.com/docs/setting-up-a-jwt-app) at Box's developer website. - -## Android -If you are developing application for Android visit our [Android guide](doc/android.md). - -## Box Java SDK and other frameworks -Box Java SDK utilizes the OkHttp client as its underlying component. This client is widely adopted by various -frameworks, which can occasionally result in issues. We recommend considering library upgrades or excluding -OkHttp from those frameworks or the software development kit (SDK) to determine if that resolves the problems. -Typically, it is advisable to search for any reports or instances where others encountered similar -issues when using the specific framework alongside an external OkHttp client. - -## Quick Test - -**Following things work only if the app has been configured and authorized as mentioned [here](https://developer.box.com/docs/setting-up-a-jwt-app)** - -Here is a simple example of how to authenticate with the API using a developer -token and then print the ID and name of each item in your root folder. - -```java -BoxAPIConnection api = new BoxAPIConnection("developer-token"); -BoxFolder rootFolder = BoxFolder.getRootFolder(api); -for (BoxItem.Info itemInfo : rootFolder) { - System.out.format("[%s] %s\n", itemInfo.getID(), itemInfo.getName()); -} +```console +./gradlew build ``` -For more details on how to get started, check out the [overview guide](doc/overview.md). -It has a short explanation of how the SDK works and how you can get started using it. - -### Sample Projects - -Three sample projects can be found in `src/example`. - -#### Main +.jar file will be generated in the build/libs directory. -This project will output your name and a list of the files and folders in your root directory. +The SDK is also available on [Maven Central Repository](https://mvnrepository.com/artifact/com.box/box-java-sdk-gen). To include the SDK in your project, add the following dependency to your `pom.xml` file: -To run the project, first provide a developer token in -`src/example/java/com/box/sdk/example/Main.java`. You can obtain a developer -token from your application's [developer console](https://app.box.com/developers/services). - -```java -public final class Main { - private static final String DEVELOPER_TOKEN = ""; - - // ... -} +```xml + + com.box + box-java-sdk-gen + VERSION + ``` -Then just invoke `gradle runExample` to run the Main example! - -### Other projects - -Below projects need app configurations stored in JSON format in `config.json` file at location `src/example/config/`. +To include the SDK in your project using Gradle, add the following dependency to your `build.gradle` file: -This configuration file can be downloaded from your application's `Configuration` tab in the -[developer console](https://app.box.com/developers/console) - -#### CreateAppUser - -This project will output the user id of enterprise admin and will create a new App User for the enterprise. - -To run the project, first provide the name of the app user in `src/example/java/com/box/sdk/example/CreateAppUser.java`. - -```java -public final class CreateAppUser { - - private static final String APP_USER_NAME = ""; - private static final String EXTERNAL_APP_USER_ID = ""; - - // ... -} +```gradle +implementation 'com.box:box-java-sdk-gen:VERSION' ``` -Then just invoke `gradle runCreateAppUser` to run the CreateAppUser example! +Where `VERSION` is the version of the SDK you want to use. You can find the latest version in the [Maven Central Repository](https://mvnrepository.com/artifact/com.box/box-java-sdk-gen). -Note: The JCE bundled with oracle JRE supports keys upto 128 bit length only. To use larger cryptographic keys, install [JCE Unlimited Strength Jurisdiction Policy Files](http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html). +# Getting Started -#### AccessAsAppUser +To get started with the SDK, get a Developer Token from the Configuration page of your app in the [Box Developer +Console](https://app.box.com/developers/console). You can use this token to make test calls for your own Box account. -This project will retrieve the information of the given App User and will list the files/folders under root folder. +The SDK provides an `BoxDeveloperTokenAuth` class, which allows you to authenticate using your Developer Token. +Use instance of `BoxDeveloperTokenAuth` to initialize `BoxClient` object. +Using `BoxClient` object you can access managers, which allow you to perform some operations on your Box account. -To run the project, first provide the Id of the app user in `src/example/java/com/box/sdk/example/CreateAppUser.java`. +The example below demonstrates how to authenticate with Developer Token and print names of all items inside a root folder. ```java -public final class AccessAsAppUser { - - private static final String USER_ID = ""; - - // ... -} +BoxDeveloperTokenAuth auth = new BoxDeveloperTokenAuth("DEVELOPER_TOKEN"); +BoxClient client = new BoxClient(auth); +client.folders.getFolderItems("0").getEntries().forEach(item -> { + System.out.println(item.toString()); +}); ``` -Then just invoke `gradle runAccessAsAppUser` to run the AccessAsAppUser example! - -Note: The JCE bundled with oracle JRE supports keys upto 128 bit length only. To use larger cryptographic keys, install [JCE Unlimited Strength Jurisdiction Policy Files](http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html). - -#### BoxDeveloperEditionAPIConnectionAsEnterpriseUser - -This example shows how to get tokens for an enterprise user, say admin of the enterprise and do actions on behalf of admin. - -To run the project, follow below steps +# Documentation -1. Turn on `Enterprise` in `Application Access` section in Developer Console for the app +Browse the [docs](docs/README.md) or see [API Reference](https://developer.box.com/reference/) for more information. -2. Turn on `Generate User Access Tokens` in `Advanced Features` section in Developer Console for the app +# Upgrades -3. Provide the Id of the admin user (or any enterprise user) in `src/example/java/com/box/sdk/example/BoxDeveloperEditionAPIConnectionAsEnterpriseUser.java`. +The SDK is updated regularly to include new features, enhancements, and bug fixes. If you are upgrading from our legacy SDKs to this new generation SDKs is a straightforward process. Checkout the [migration guide](MIGRATION_GUIDE.md) and [changelog](CHANGELOG.md) for more information. -```java -public final class BoxDeveloperEditionAPIConnectionAsEnterpriseUser { +# Integration Tests - private static final String USER_ID = ""; - // ... - Reader reader = new FileReader("src/example/config/config.json"); - BoxConfig boxConfig = BoxConfig.readFrom(reader); - IAccessTokenCache accessTokenCache = new InMemoryLRUAccessTokenCache(10); +## Running integration tests locally - BoxDeveloperEditionAPIConnection api = new BoxDeveloperEditionAPIConnection( - USER_ID, - DeveloperEditionEntityType.USER, - boxConfig, - accessTokenCache - ); -} -``` - -## Compatibility +### Create Platform Application -The Box Java SDK is compatible with Java 8 and up. +To run integration tests locally you will need a `Custom App` created in the [Box Developer +Console](https://app.box.com/developers/console) with `Server Authentication (with JWT)` selected as authentication method. +Once created you can edit properties of the application: -## Compression Support -The SDK supports both gzip and zstd compression for API requests. Compression is handled automatically based on server capabilities. +- In section `App Access Level` select `App + Enterprise Access`. You can enable all `Application Scopes`. +- In section `Advanced Features` enable `Make API calls using the as-user header` and `Generate user access tokens`. -## Building +Now select `Authorization` and submit application to be reviewed by account admin. -The SDK uses Gradle for its build system. SDK comes with Gradle wrapper. Running `./gradlew build` from the root -of the repository will compile, lint, and test the SDK. +### Export configuration -```bash -$ ./gradlew build -``` +1. Select `Configuration` tab and in the bottom in the section `App Settings` + download your app configuration settings as JSON. +2. Encode configuration file to Base64, e.g. using command: `base64 -i path_to_json_file` +3. Set environment variable: `JWT_CONFIG_BASE_64` with base64 encoded jwt configuration file +4. Set environment variable: `BOX_FILE_REQUEST_ID` with ID of file request already created in the user account, `BOX_EXTERNAL_USER_EMAIL` with email of free external user which not belongs to any enterprise. +5. Set environment variable: `WORKFLOW_FOLDER_ID` with the ID of the Relay workflow that deletes the file that triggered the workflow. The workflow should have a manual start to be able to start it from the API. +6. Set environment variable: `APP_ITEM_ASSOCIATION_FILE_ID` to the ID of the file with associated app item and `APP_ITEM_ASSOCIATION_FOLDER_ID` to the ID of the folder with associated app item. +7. Set environment variable: `APP_ITEM_SHARED_LINK` to the shared link associated with app item. +8. Set environment variable: `SLACK_AUTOMATION_USER_ID` to the ID of the user responsible for the Slack automation, `SLACK_ORG_ID` to the ID of the Slack organization and `SLACK_PARTNER_ITEM_ID` to the ID of the Slack partner item. -The SDK also includes integration tests which make real API calls, and therefore -are run separately from unit tests. Integration tests should be run against a -test account since they create and delete data. To run the integration tests, -remove the `.template` extension from -`src/test/config/config.properties.template` and fill in your test account's -information. Then run: +### Start integration tests -```bash -$ ./gradlew integrationTest -``` +To run integration tests locally, you can use the following command: -## Documentation - -You can find guides and tutorials in the `doc` directory. - -* [BUILD ON BOX PLATFORM](https://developer.box.com/guides/getting-started/) -* [Javadocs](http://box.github.io/box-java-sdk/javadoc/com/box/sdk/package-summary.html) -* [Overview](https://github.com/box/box-java-sdk/blob/v4.16.3/doc/overview.md) -* [Configuration](https://github.com/box/box-java-sdk/blob/v4.16.3/doc/configuration.md) -* [Logging](https://github.com/box/box-java-sdk/blob/v4.16.3/doc/logging.md) -* [Authentication](https://github.com/box/box-java-sdk/blob/v4.16.3/doc/authentication.md) -* [Files](https://github.com/box/box-java-sdk/blob/v4.16.3/doc/files.md) -* [Folders](https://github.com/box/box-java-sdk/blob/v4.16.3/doc/folders.md) -* [Comments](https://github.com/box/box-java-sdk/blob/v4.16.3/doc/comments.md) -* [Collaborations](https://github.com/box/box-java-sdk/blob/v4.16.3/doc/collaborations.md) -* [Collaboration Allowlists](https://github.com/box/box-java-sdk/blob/v4.16.3/doc/collaboration_allowlists.md) -* [Events](https://github.com/box/box-java-sdk/blob/v4.16.3/doc/events.md) -* [Search](https://github.com/box/box-java-sdk/blob/v4.16.3/doc/search.md) -* [Users](https://github.com/box/box-java-sdk/blob/v4.16.3/doc/users.md) -* [Groups](https://github.com/box/box-java-sdk/blob/v4.16.3/doc/groups.md) -* [Tasks](https://github.com/box/box-java-sdk/blob/v4.16.3/doc/tasks.md) -* [Trash](https://github.com/box/box-java-sdk/blob/v4.16.3/doc/trash.md) -* [Collections](https://github.com/box/box-java-sdk/blob/v4.16.3/doc/collections.md) -* [Devices](https://github.com/box/box-java-sdk/blob/v4.16.3/doc/devices.md) -* [Retention Policies](https://github.com/box/box-java-sdk/blob/v4.16.3/doc/retention_policies.md) -* [Legal Holds Policy](https://github.com/box/box-java-sdk/blob/v4.16.3/doc/legal_holds.md) -* [Watermarking](https://github.com/box/box-java-sdk/blob/v4.16.3/doc/watermarking.md) -* [Webhooks](https://github.com/box/box-java-sdk/blob/v4.16.3/doc/webhooks.md) -* [Web Links](https://github.com/box/box-java-sdk/blob/v4.16.3/doc/weblinks.md) -* [Metadata Templates](https://github.com/box/box-java-sdk/blob/v4.16.3/doc/metadata_template.md) -* [Classifications](https://github.com/box/box-java-sdk/blob/v4.16.3/doc/classifications.md) -* [Recent Items](https://github.com/box/box-java-sdk/blob/v4.16.3/doc/recent_items.md) - - -Javadocs are generated when `gradle javadoc` is run and can be found in -`build/doc/javadoc`. - -## FIPS 140-2 Compliance - -To generate a Json Web Signature used for retrieving tokens in the JWT authentication method, the Box Java SDK decrypts an encrypted private key. -For this purpose, Box Java SDK uses libraries (`org.bouncycastle:bcpkix-jdk18on:1.77` and `org.bouncycastle:bcprov-jdk18on:1.77`) -that are NOT compatible with FIPS 140-2 validated cryptographic library (`org.bouncycastle:bc-fips`). - -There are two ways of ensuring that decryption operation is FIPS-compiant. - -1. You can provide a custom implementation of the `IPrivateKeyDecryptor` interface, -which performs the decryption operation using FIPS-certified library of your choice. The interface requires the -implementation of just one method: -```java -PrivateKey decryptPrivateKey(String encryptedPrivateKey, String passphrase); -``` -After implementing the custom decryptor, you need to set your custom decryptor class in the Box Config. -Below is an example of setting up a `BoxDeveloperEditionAPIConnection` with a config file and the custom decryptor. -```java -Reader reader = new FileReader(JWT_CONFIG_PATH); -BoxConfig boxConfig = BoxConfig.readFrom(reader); -boxConfig.setPrivateKeyDecryptor(customDecryptor) -BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection.getAppEnterpriseConnection(boxConfig); +```console +./gradlew test --stacktrace ``` -2. Alternative method is to override the Bouncy Castle libraries to the v.1.57 version, -which are compatible with the FIPS 140-2 validated cryptographic library (`org.bouncycastle:bc-fips`). +# 3rd Party Libraries & Licenses -NOTE: This solution is not recommended as Bouncy Castle v.1.57 has some moderate vulnerabilities reported against those versions, including: - - [CVE-2020-26939](https://github.com/advisories/GHSA-72m5-fvvv-55m6) - Observable Differences in Behavior to Error Inputs in Bouncy Castle - - [CVE-2020-15522](https://github.com/advisories/GHSA-6xx3-rg99-gc3p) - Timing based private key exposure in Bouncy Castle +The Java SDK Gen uses third-party libraries that are required for usage. Their licenses are listed below: -Furthermore,using Bouncy Castle v.1.57 may lead to [Bouncycastle BadPaddingException for JWT auth](#bouncycastle-badPaddingException-for-jWT-auth). +1. [jackson-annotations v2.17.2](https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations/2.17.2) + Maven: `com.fasterxml.jackson.core:jackson-annotations:2.17.2` + Licence: [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) +2. [jackson-core v2.17.2](https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core/2.17.2) + Maven: `com.fasterxml.jackson.core:jackson-core:2.17.2` + Licence: [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) +3. [jackson-databind v2.17.2](https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind/2.17.2) + Maven: `com.fasterxml.jackson.core:jackson-databind:2.17.2` + Licence: [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) +4. [okhttp v4.12.0](https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp/4.12.0) + Maven: `com.squareup.okhttp3:okhttp:4.12.0` + Licence: [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) +5. [okio v3.5.0](https://mvnrepository.com/artifact/com.squareup.okio/okio/3.5.0) + Maven: `com.squareup.okio:okio:3.5.0` + Licence: [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) +6. [jose4j v0.9.6](https://mvnrepository.com/artifact/org.bitbucket.b_c/jose4j/0.9.6) + Maven: `org.bitbucket.b_c:jose4j:0.9.6` + Licence: [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) +7. [bcprov-jdk18on v1.78.1](https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk18on/1.78.1) + Maven: `org.bouncycastle:bcprov-jdk18on:1.78.1` + Licence: [MIT](https://opensource.org/licenses/MIT) +8. [bcpkix-jdk18on v1.78.1](https://mvnrepository.com/artifact/org.bouncycastle/bcpkix-jdk18on/1.78.1) + Maven: `org.bouncycastle:bcpkix-jdk18on:1.78.1` + Licence: [MIT](https://opensource.org/licenses/MIT) -Gradle example -```groovy -implementation('com.box:box-java-sdk:x.y.z') { - exclude group: 'org.bouncycastle', module: 'bcprov-jdk15on' - exclude group: 'org.bouncycastle', module: 'bcpkix-jdk15on' -} -runtimeOnly('org.bouncycastle:bcprov-jdk15on:1.57') -runtimeOnly('org.bouncycastle:bcpkix-jdk15on:1.57') -``` +The following libraries are required for running tests: -Maven example: -```xml - - - com.box - box-java-sdk - x.y.z - compile - - - org.bouncycastle - bcprov-jdk15on - - - org.bouncycastle - bcpkix-jdk15on - - - - - org.bouncycastle - bcprov-jdk15on - 1.57 - runtime - - - org.bouncycastle - bcpkix-jdk15on - 1.57 - runtime - - -``` +1. [junit-jupiter-api v5.10.0](https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api/5.10.0) + Maven: `org.junit.jupiter:junit-jupiter-api:5.10.0` + Licence: [EPL 2.0](https://www.eclipse.org/legal/epl-2.0/) +2. [junit-jupiter-engine v5.10.0](https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine/5.10.0) + Maven: `org.junit.jupiter:junit-jupiter-engine:5.10.0` + Licence: [EPL 2.0](https://www.eclipse.org/legal/epl-2.0/) -### Bouncycastle BadPaddingException for JWT auth +# Questions, Bugs, and Feature Requests? -As of October 2023, RSA keypairs generated on the Developer Console (refer to the [Generate a keypair guide](https://developer.box.com/guides/authentication/jwt/jwt-setup/#generate-a-keypair-recommended)) -are no longer compatible with Bouncy Castle version 1.57, which was utilized in the Box Java SDK up to v4.6.1. -Attempting to use a JWT configuration downloaded from the Developer Console results in a -`javax.crypto.BadPaddingException: pad block corrupted` error. -Prossible solutions: -1. Upgrade to the v4.7.0 of Box Java SDK, which uses newer version of the Bouncy Castle library. (recommended) -2. Manually generate a keypair using OpenSSL version 1.0.x and add the Public Key to the Developer Console. - The [manually add keypair guide](https://developer.box.com/guides/authentication/jwt/jwt-setup/#manually-add-keypair) provides assistance in this process. +Need to contact us directly? [Browse the issues +tickets](https://github.com/box/box-java-sdk-gen/issues)! Or, if that +doesn't work, [file a new +one](https://github.com/box/box-java-sdk-gen/issues/new) and we will get +back to you. If you have general questions about the Box API, you can +post to the [Box Developer Forum](https://forum.box.com/). -## Copyright and License +# Copyright and License -Copyright 2019 Box, Inc. All rights reserved. +Copyright 2023 Box, Inc. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 +http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, diff --git a/VERSIONS.md b/VERSIONS.md index 41fde357a..45c972031 100644 --- a/VERSIONS.md +++ b/VERSIONS.md @@ -1,5 +1,6 @@ # Version Lifecycle -We use a modified version of [Semantic Versioning](https://semver.org/) for all changes. It is strongly encouraged that you pin at least the major version and potentially the minor version to avoid pulling in breaking changes. Increasing the major version of an SDK indicates that this SDK underwent significant and substantial changes to support new idioms and patterns in the language. Major versions are introduced when public interfaces (e.g. classes, methods, types, etc.), behaviours, or semantics have changed. + +We use a modified version of [Semantic Versioning](https://semver.org/) for all changes. It is strongly encouraged that you pin at least the major version and potentially the minor version to avoid pulling in breaking changes. Increasing the major version of an SDK indicates that this SDK underwent significant and substantial changes to support new idioms and patterns in the language. Major versions are introduced when public interfaces (e.g. classes, methods, types, etc.), behaviours, or semantics have changed. Semantic Versions take the form of `MAJOR.MINOR.PATCH`. @@ -11,13 +12,13 @@ The MAJOR version is used to indicate the family of technology represented by th New MAJOR versions will be communicated in advance via: -* An email announcement is sent to affected accounts, announcing our plans to end support for the specific SDK version. The email will outline the path to end-of-support, specify the campaign timelines, and provide upgrade guidance. -* Box SDK documentation, such as API reference documentation, user guides, SDK product marketing pages, and GitHub readme(s) are updated to indicate the campaign timeline and provide guidance on upgrading affected applications. -* Deprecation warnings are added to the SDKs, outlining the path to end-of-support and linking to the SDK documentation. +- An email announcement is sent to affected accounts, announcing our plans to end support for the specific SDK version. The email will outline the path to end-of-support, specify the campaign timelines, and provide upgrade guidance. +- Box SDK documentation, such as API reference documentation, user guides, SDK product marketing pages, and GitHub readme(s) are updated to indicate the campaign timeline and provide guidance on upgrading affected applications. +- Deprecation warnings are added to the SDKs, outlining the path to end-of-support and linking to the SDK documentation. Deprecations are introduced in minor releases. We will not introduce new deprecations in patch releases. These deprecations will preserve the existing behaviour while emitting a warning that provide guidance on: -* How to achieve similar behaviour if an alternative is available -* The version in which the deprecation will be enforced. +- How to achieve similar behaviour if an alternative is available +- The version in which the deprecation will be enforced. Deprecations will only be enforced in major releases. For example, if a behaviour is deprecated in version 1.2.0, it will continue to work, with a warning, for all releases in the 1.x series. The behaviour will change and the deprecation will be removed in the next major release (2.x.x). diff --git a/build.gradle b/build.gradle index dfb0b8ba2..d0b273dd8 100644 --- a/build.gradle +++ b/build.gradle @@ -1,241 +1,154 @@ plugins { - id "com.github.nbaztec.coveralls-jacoco" version "1.2.14" - id "checkstyle" - id "jacoco" - id "java" - id "maven-publish" - id "signing" - id "eclipse" - id "idea" - id 'org.jreleaser' version '1.18.0' + id "java" + id "com.diffplug.spotless" version "${spotlessVersion}" + id "maven-publish" + id "signing" + id "org.jreleaser" version "1.18.0" + id "com.github.nbaztec.coveralls-jacoco" version "${coverallsJacocoVersion}" + id "jacoco" + id "org.gradle.test-retry" version "${testRetryVersion}" } - -sourceCompatibility = 1.8 - group = "com.box" -archivesBaseName = "box-java-sdk" -version = "4.16.3" - +archivesBaseName = "box-java-sdk-gen" +version = "0.1.0" java { - withJavadocJar() - withSourcesJar() + sourceCompatibility = "${libraryJavaVersion}" + targetCompatibility = "${libraryJavaVersion}" + withSourcesJar() + withJavadocJar() } - repositories { - mavenCentral() + mavenCentral() } - -sourceSets { - example { - java { - compileClasspath += main.output - runtimeClasspath += main.runtimeClasspath - } - } - intTest { - java { - compileClasspath += sourceSets.main.output - compileClasspath += sourceSets.test.output - runtimeClasspath += sourceSets.main.output - runtimeClasspath += sourceSets.test.output - } - } -} - -configurations { - testsCommonImplementation.extendsFrom(implementation) - testImplementation.extendsFrom(testsCommonImplementation) - intTestImplementation.extendsFrom(testsCommonImplementation) - intTestRuntimeOnly.extendsFrom(runtimeOnly) -} - dependencies { - implementation "com.eclipsesource.minimal-json:minimal-json:0.9.5" - implementation "org.bitbucket.b_c:jose4j:0.9.4" - implementation "org.bouncycastle:bcprov-jdk18on:1.78.1" - implementation "org.bouncycastle:bcpkix-jdk18on:1.78.1" - implementation "com.squareup.okhttp3:okhttp:4.12.0" - implementation "com.github.luben:zstd-jni:1.5.7-2" - testsCommonImplementation "junit:junit:4.13.2" - testsCommonImplementation "org.hamcrest:hamcrest-library:2.2" - testsCommonImplementation "org.mockito:mockito-core:4.8.0" - testsCommonImplementation "org.slf4j:slf4j-nop:2.0.3" - testImplementation "com.github.tomakehurst:wiremock:2.27.2" - exampleImplementation "com.eclipsesource.minimal-json:minimal-json:0.9.5" - // this is last version working under java 8 - checkstyle "com.puppycrawl.tools:checkstyle:9.3" -} - -compileJava { - sourceCompatibility = 1.8 - targetCompatibility = 1.8 -} + implementation "com.fasterxml.jackson.core:jackson-annotations:${jacksonAnnotationVersion}" + implementation "com.fasterxml.jackson.core:jackson-core:${jacksonCoreVersion}" + implementation "com.fasterxml.jackson.core:jackson-databind:${jacksonDatabindVersion}" + implementation "com.squareup.okhttp3:okhttp:${okhttpVersion}" + implementation "com.squareup.okio:okio:${okioVersion}" + implementation "org.bitbucket.b_c:jose4j:${jose4jVersion}" + implementation "org.bouncycastle:bcprov-jdk18on:${bouncyCastleBcprovJdk18onVersion}" + implementation "org.bouncycastle:bcpkix-jdk18on:${bouncyCastleBcpkixJdk18onVersion}" + testImplementation "org.junit.jupiter:junit-jupiter-api:${junitApiVersion}" + testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:${junitEngineVersion}" +} +spotless { + java { + googleJavaFormat "${googleJavaFormatVersion}" + target "src/**/*.java" + } -javadoc { - options.windowTitle "Box Java SDK" - options.noQualifiers "all" - options.stylesheetFile file("doc/css/javadoc.css") - options.noTree true - options.noIndex true - options.noHelp true - options.noDeprecatedList true - options.noNavBar true - options.encoding "utf-8" - options.docEncoding "utf-8" - options.charSet "utf-8" - options.linkSource true - options.links "https://docs.oracle.com/javase/8/docs/api/" } +test { + useJUnitPlatform() + retry { + maxRetries = 2 + failOnPassedAfterRetry = false + } -task runExample(type: JavaExec, dependsOn: "exampleClasses") { - classpath = sourceSets.example.runtimeClasspath - mainClass = "com.box.sdk.example.Main" -} + testLogging { + events = ['passed', 'failed', 'skipped'] + showStandardStreams = true + } -task runCreateAppUser(type: JavaExec, dependsOn: "exampleClasses") { - classpath = sourceSets.example.runtimeClasspath - mainClass = "com.box.sdk.example.CreateAppUser" -} + jacoco { + destinationFile = file("$buildDir/jacoco/test.exec") + } -task runAccessAsAppUser(type: JavaExec, dependsOn: "exampleClasses") { - classpath = sourceSets.example.runtimeClasspath - mainClass = "com.box.sdk.example.AccessAsAppUser" -} + filter { + // Socket timeout + excludeTestsMatching 'com.box.sdkgen.test.transfer.TransferITest.testTransferUserContent' + } -task integrationTest(type: Test) { - description = "Runs the integration tests." - group = "Verification" - testLogging.showStandardStreams = true - testClassesDirs = sourceSets.intTest.output.classesDirs - classpath = sourceSets.intTest.runtimeClasspath } +publishing { + publications { + boxJavaSdkGen(MavenPublication) { + from components.java + pom { + artifactId = project.getArchivesBaseName() + name = "Box Java SDK Gen" + description = "Official Box Java Generated SDK." + url = "https://opensource.box.com/box-java-sdk-gen/" + packaging = "jar" + licenses { + license { + name = "The Apache License, Version 2.0" + url = "https://www.apache.org/licenses/LICENSE-2.0.txt" + } -jacoco { - reportsDirectory = file("$buildDir/reports/jacoco") -} + } -jacocoTestReport { - reports { - xml.required = true // coveralls plugin depends on xml format report - html.required = true - } -} + developers { + developer { + id = "box" + name = "box" + email = "sdks@box.com" + } -tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" + } - if (project.hasProperty("bootClasspath")) { - String bootClasspathString = project.property("bootClasspath") - String[] bootClasspath = bootClasspathString.split(File.pathSeparator) - options.bootstrapClasspath = files(bootClasspath) - } -} + scm { + connection = "scm:git:https://github.com/box/box-java-sdk-gen.git" + developerConnection = "scm:git:https://github.com/box/box-java-sdk-gen.git" + url = "https://github.com/box/box-java-sdk-gen" + } -tasks.withType(Test) { - testLogging { - exceptionFormat = "full" - } + } - jacoco { - destinationFile = file("$buildDir/jacoco/test.exec") } - outputs.upToDateWhen { false } -} - -tasks.withType(GenerateModuleMetadata) { - enabled = false -} - -artifacts { - archives sourcesJar, javadocJar -} + } -test { - useJUnit { - excludeCategories "com.box.sdk.IntegrationTestJWT" + repositories { + maven { + url = layout.buildDirectory.dir('staging-deploy') } -} -checkstyle { - ignoreFailures = false - maxWarnings = 0 -} + } -publishing { - publications { - boxJavaSdk(MavenPublication) { - from components.java - pom { - artifactId = project.getArchivesBaseName() - name = "Box Java SDK" - description = "The Box SDK for Java." - url = "https://opensource.box.com/box-java-sdk/" - packaging = "jar" - licenses { - license { - name = "The Apache License, Version 2.0" - url = "https://www.apache.org/licenses/LICENSE-2.0.txt" - } - } - developers { - developer { - id = "box" - name = "Box" - email = "sdks@box.com" - } - } - scm { - connection = "scm:git:https://github.com/box/box-java-sdk.git" - developerConnection = "scm:git:https://github.com/box/box-java-sdk.git" - url = "https://github.com/box/box-java-sdk" - } - } - } - } - - repositories { - maven { - url = layout.buildDirectory.dir('staging-deploy') - } - } } - signing { - required { !version.endsWith("SNAPSHOT") && gradle.taskGraph.hasTask("publish") } - // we are switching to gpg-agent and not using Java-based implementation because of - // org.bouncycastle:bc-fips:1.0.2.1 libray preset in our Docker machines which is - // not comaptible with Gradle implementation - useGpgCmd() - sign publishing.publications.boxJavaSdk -} - -def centralUsername = project.findProperty("centralUsername") + required { !version.endsWith("SNAPSHOT") && gradle.taskGraph.hasTask("publish") } + // we are switching to gpg-agent and not using Java-based implementation because of + // org.bouncycastle:bc-fips:1.0.2.1 libray preset in our Docker machines which is + // not compatible with Gradle implementation + useGpgCmd() + sign publishing.publications.boxJavaSdkGen +} +def centralUsername = project.findProperty("centralUsername") def centralPassword = project.findProperty("centralPassword") jreleaser { - signing { - active = "NEVER" - } - deploy { - maven { - mavenCentral { - sonatype { - sign = false - active = 'RELEASE' - url = 'https://central.sonatype.com/api/v1/publisher' - stagingRepository('build/staging-deploy') - username = centralUsername - password = centralPassword - } - } - + signing { + active = "NEVER" + } + + deploy { + maven { + mavenCentral { + sonatype { + active = "ALWAYS" + url = "https://central.sonatype.com/api/v1/publisher" + sign = false + stagingRepository('build/staging-deploy') + username = centralUsername + password = centralPassword } + + } + } + + } + } +jacoco { + reportsDirectory = file("$buildDir/reports/jacoco") +} +jacocoTestReport { + reports { + xml.required = true + html.required = true + } -idea { - module { - sourceDirs -= file("src/intTest/java") - testSourceDirs += file("src/intTest/java") - } } diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml deleted file mode 100755 index e364405b2..000000000 --- a/config/checkstyle/checkstyle.xml +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/checkstyle/suppressions.xml b/config/checkstyle/suppressions.xml deleted file mode 100644 index 3f6da7c00..000000000 --- a/config/checkstyle/suppressions.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - diff --git a/doc/ai.md b/doc/ai.md deleted file mode 100644 index fcc3a683e..000000000 --- a/doc/ai.md +++ /dev/null @@ -1,148 +0,0 @@ -AI -== - -AI allows to send an intelligence request to supported large language models and returns -an answer based on the provided prompt and items. - - - - -- [AI](#ai) - - [Send AI request](#send-ai-request) - - [Send AI text generation request](#send-ai-text-generation-request) - - [Get AI Agent default configuration](#get-ai-agent-default-configuration) - - [Extract metadata freeform](#extract-metadata-freeform) - - [Extract metadata structured](#extract-metadata-structured) - - - -Send AI request --------------------------- - -To send an AI request, call static -[`sendAIRequest(String prompt, List items, Mode mode)`][send-ai-request] method. -In the request you have to provide a prompt, a list of items that your prompt refers to and a mode of the request. -There are two modes available: `SINGLE_ITEM_QA` and `MULTI_ITEM_QA`, which specifies if this request refers to -for a single or multiple items. - - -```java -BoxAIResponse response = BoxAI.sendAIRequest( - api, - "What is the content of the file?", - Collections.singletonList("123456", BoxAIItem.Type.FILE), - BoxAI.Mode.SINGLE_ITEM_QA -); -``` - -You can also provide a list of dialogue history entries to provide additional context to the LLM in generating the response, AI Agent configuration and flag to indicate whether citations should be returned. - -NOTE: The AI endpoint may return a 412 status code if you use for your request a file which has just been updated to the box. -It usually takes a few seconds for the file to be indexed and available for the AI endpoint. - -[send-ai-request]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxAI.html#sendAIRequest-com.box.sdk.BoxAPIConnection-java.lang.String-java.util.List-com.box.sdk.BoxAI.Mode- - -Send AI text generation request --------------- - -To send an AI request specifically focused on the creation of new text, call static -[`sendAITextGenRequest(String prompt, List items, List dialogueHistory)`][send-ai-text-gen-request] method. -In the request you have to provide a prompt, a list of items that your prompt refers to and optionally a dialogue history, -which provides additional context to the LLM in generating the response. - - -```java -List dialogueHistory = new ArrayList<>(); -dialogueHistory.add( - new BoxAIDialogueEntry( - "Make my email about public APIs sound more professional", - "Here is the first draft of your professional email about public APIs.", - BoxDateFormat.parse("2013-05-16T15:26:57-07:00") - ) - ); -BoxAIResponse response = BoxAI.sendAITextGenRequest( - api, - "Write an email to a client about the importance of public APIs.", - Collections.singletonList(new BoxAIItem("123456", BoxAIItem.Type.FILE)), - dialogueHistory -); -``` - -You can also provide an AI Agent configuration to customize the behavior of the AI response generation. - -[send-ai-text-gen-request]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxAI.html#sendAITextGenRequest-com.box.sdk.BoxAPIConnection-java.lang.String-java.util.List-java.util.List- - -Get AI Agent default configuration --------------------------- - -To get the default configuration of the AI Agent, call static -[`getAiAgentDefaultConfig(BoxAPIConnection api, BoxAIAgent.Mode mode, String language, String model)`][get-ai-agent-default-config] method. -In the request you have to provide the mode of the AI Agent, the language and the model, with the model is required while the language and mode are optional. - - -```java -BoxAIAgentConfig config = BoxAI.getAiAgentDefaultConfig( - api, - BoxAIAgent.Mode.ASK, - "en", - "openai__gpt_3_5_turbo" -); -``` - -[get-ai-agent-default-config]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxAI.html#getAiAgentDefaultConfig-com.box.sdk.BoxAPIConnection-com.box.sdk.ai.BoxAIAgent.Mode-java.lang.String-java.lang.String- - -Extract metadata freeform --------------------------- - -To send an AI request to supported Large Language Models (LLMs) and extract metadata in form of key-value pairs, call static -[`extractMetadataFreeform(BoxAPIConnection api, String prompt, List items)`][extract-metadata-freeform] method. -In the request you have to provide a prompt, a list of items that your prompt refers to and an optional agent configuration. - - -```java -BoxAIResponse response = BoxAI.extractMetadataFreeform( - api, - "firstName, lastName, location, yearOfBirth, company", - Collections.singletonList(new BoxAIItem("123456", BoxAIItem.Type.FILE)) -); -``` - -[extract-metadata-freeform]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxAI.html#extractMetadataFreeform-com.box.sdk.BoxAPIConnection-java.lang.String-java.util.List- - -Extract metadata structured --------------------------- - -Sends an AI request to supported Large Language Models (LLMs) and returns extracted metadata as a set of key-value pairs. For this request, you need to use an already defined metadata template or define a schema yourself. - -To send an AI request to extract metadata from files with a predefined metadata template, call static -[`extractMetadataStructured extractMetadataStructured(BoxAPIConnection api, List items, BoxAIExtractMetadataTemplate template)`][extract-metadata-structured-metadata-template] method. - - -```java -BoxAIExtractMetadataTemplate template = new BoxAIExtractMetadataTemplate("templateKey", "enterprise"); -BoxAIExtractStructuredResponse result = BoxAI.extractMetadataStructured( - api, - Collections.singletonList(new BoxAIItem("123456", BoxAIItem.Type.FILE)), - template -); -JsonObject sourceJson = result.getSourceJson(); -``` - -To send an AI request to extract metadata from files with custom fields, call static -[`extractMetadataStructured extractMetadataStructured(BoxAPIConnection api, List items, List fields)`][extract-metadata-structured-fields] method. - - -```java -List fields = new ArrayList<>(); -fields.add(new BoxAIExtractField("firstName")); - -BoxAIExtractStructuredResponse result = BoxAI.extractMetadataStructured( - api, - Collections.singletonList(new BoxAIItem("123456", BoxAIItem.Type.FILE)), - fields -); -JsonObject sourceJson = result.getSourceJson(); -``` - -[extract-metadata-structured-metadata-template]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxAI.html#extractMetadataStructured-com.box.sdk.BoxAPIConnection-java.util.List-com.box.sdk.ai.metadata.BoxAIExtractMetadataTemplate- -[extract-metadata-structured-fields]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxAI.html#extractMetadataStructured-com.box.sdk.BoxAPIConnection-java.util.List-java.util.List- \ No newline at end of file diff --git a/doc/android.md b/doc/android.md deleted file mode 100644 index d03804c4e..000000000 --- a/doc/android.md +++ /dev/null @@ -1,97 +0,0 @@ -# Android - -The Java SDK should be compatible with modern Android applications written in both Java and Kotlin. - -To use the Java SDK in an android application add it to the project's gradle file in the `dependencies` block. - -For Groovy - -```groovy -// build.gradle - -dependencies { - implementation "com.box:box-java-sdk:3.8.0" -} -``` - -For Kotlin - -```kotlin -// build.gradle.kts - -dependencies { - implementation("com.box:box-java-sdk:3.8.0") -} -``` - -## Kotlin - -The Java SDK can also be used in Kotlin Android applications through interoperability thanks to the Kotlin design. -You can read more about Kotlin and Java interoperability [here](https://kotlinlang.org/docs/java-interop.html) - -The following example creates an API connection with a developer token: - -```kotlin -val api = BoxAPIConnection("myToken") -``` - -The following example shows how to get current user - -```kotlin -val userID = "33333" -val api = BoxAPIConnection("myToken") -val user = BoxUser(api, userID) -val userInfo = user.getInfo() -``` - -If you are using an IntelliJ-based IDE, you can copy our samples located in the [docs](/doc/) directory -and paste them into your file. The IDE should ask you to convert the pasted Java sample to Kotlin. Most samples still work after conversion using this approach. - -Note that the current Java SDK does not support Kotlin coroutines. By default, you cannot run network calls on the main thread -in an Android application. There are various ways to overcome this. For example, if you are in a viewModel context, you can run the SDK method as a -coroutine using viewModelScope. - -```kotlin -viewModelScope.launch { - val result = withContext(Dispatchers.IO) { - /* - SDK code goes here - */ - } - // here you can access the result and load it to the viewModel -} -``` - -The following example shows how to get the current items in the root folder, sorted by name in ascending order with additional -"created_by" and "name" fields returned from the API. The items are then loaded to the custom data class defined earlier. - -```kotlin -// data class definition used in viewModel -data class Item( - val isFolder: Boolean, - val name: String, - val createdBy: String -) - -// viewModel init code -viewModelScope.launch { - val result = withContext(Dispatchers.IO) { - val res = BoxFolder(BoxAPIConnection("myToken"), "0") - val iterator: Iterator = - res.getChildren("name", BoxFolder.SortDirection.ASC, "created_by", "name") - .iterator() - val items = mutableListOf() - - when (val itemInfo = iterator.next()) { - is BoxFile.Info -> items.add(Item(false, "File " + itemInfo.name, itemInfo.createdBy.name)) - is BoxFolder.Info -> items.add(Item(true, "Folder " + itemInfo.name, itemInfo.createdBy.name)) - } - items - } -} -``` - -If you are familiar with Kotlin syntax, you might have noticed that we could have used the `.map` function (or a similar function) to map the API result to a list of items. Due to current limitations, using `.map` and similar operations on collections is not always possible and may -lead to unexpected results. The preferred way is to use an explicit iterator to iterate over the collections returned by the SDK. - -If you find any problem related to the Java SDK in Kotlin-based app feel free to open an issue. \ No newline at end of file diff --git a/doc/authentication.md b/doc/authentication.md deleted file mode 100644 index a38c72001..000000000 --- a/doc/authentication.md +++ /dev/null @@ -1,271 +0,0 @@ -# Authentication - -The Box API uses OAuth2 for authentication, which can be difficult to implement. -The SDK makes it easier by providing classes that handle obtaining tokens and -automatically refreshing them. - - - - - -- [Ways to Authenticate](#ways-to-authenticate) - - [Developer Token](#developer-token) - - [Server Authentication with JWT](#server-authentication-with-jwt) - - [Standard 3-Legged Oauth 2.0](#standard-3-legged-oauth-20) - - [Box View Authentication with App Token](#box-view-authentication-with-app-token) - - [Client Credentials Grant](#client-credentials-grant) -- [Manual Token Creation](#manual-token-creation) -- [As User](#as-user) -- [Token Exchange](#token-exchange) -- [Revoke Token](#revoke-token) - - -## Ways to Authenticate - -### Developer Token - -The fastest way to get started using the API is with developer tokens. A -developer token is simply a short-lived access token that cannot be refreshed -and can only be used with your own account. Therefore, they're only useful for -testing an app and aren't suitable for production. You can obtain a developer -token from your application's [developer -console](https://cloud.app.box.com/developers/services). - -The following example creates an API connection with a developer token: - - -```java -BoxAPIConnection api = new BoxAPIConnection("YOUR-DEVELOPER-TOKEN"); -``` - -### Server Authentication with JWT - - -App Users allows your application to provision and control Box accounts that do not have an associated login -and can only be accessed through the Content API by the controlling application. An App User is a Box account that -belongs to your Box Platform application and not an end-user of Box, like a [managed user](https://developer.box.com/v2.0/reference#user-object) -It is important to emphasize that unlike typical Box accounts, these accounts do not have an associated login and can only be accessed through the Box API. - -You may authenticate as the service -account to provision and manage users, or as an individual app user to make calls as that user. See the -[API documentation](https://github.com/box/box-node-sdk/blob/main/docs/authentication.md#app-user-authentication) -for detailed instruction on how to use app auth. - -The Java SDK also has a convenient helper function `BoxConfig.readFrom()` to assist in constructing an API connection. -The `readFrom()` method takes in a stream constructed by the JSON config downloaded from the Developer Console seen -[here](https://developer.box.com/docs/setting-up-a-jwt-app#section-use-an-application-config-file). Once a `BoxConfig` -object has been created you can use that to create an API connection. - - -```java -Reader reader = new FileReader("src/example/config/config.json"); -BoxConfig boxConfig = BoxConfig.readFrom(reader); -IAccessTokenCache tokenCache = new InMemoryLRUAccessTokenCache(100); -BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection.getAppEnterpriseConnection(boxConfig, tokenCache); -``` - -It is also possible to get an API connection for an app user or managed user: - - -```java -Reader reader = new FileReader("src/example/config/config.json"); -BoxConfig boxConfig = BoxConfig.readFrom(reader); - -IAccessTokenCache accessTokenCache = new InMemoryLRUAccessTokenCache(100); -BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection.getUserConnection(userId, boxConfig, accessTokenCache); -``` - -However, if you would like to do a manual set up then that is also possible with the below options. - -App User example: -```java -JWTEncryptionPreferences jwtPreferences = new JWTEncryptionPreferences(); -jwtPreferences.setPublicKeyID("PUBLIC-KEY-ID"); -jwtPreferences.setPrivateKeyPassword("PRIVATE-KEY-PASSWORD"); -jwtPreferences.setPrivateKey("PRIVATE-KEY"); -jwtPreferences.setEncryptionAlgorithm(EncryptionAlgorithm.RSA_SHA_256); - -IAccessTokenCache accessTokenCache = new InMemoryLRUAccessTokenCache(100); -BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection - .getUserConnection("USER-ID", "CLIENT-ID","CLIENT-SECRET", jwtPreferences, accessTokenCache); - -BoxUser.Info userInfo = BoxUser.getCurrentUser(api).getInfo(); -``` - -Server authentication allows your application to authenticate itself with the Box API for a given enterprise. A -[Service Account](https://developer.box.com/v2.0/docs/service-account) always exists for a Box application. It is important to -note that a Service Account is separate from the Box accounts of the applicaton developer and the enterprise admin of any enterprise that has -authorized the app, meaning files stored in that account are not accessible in any other account by default. - -Service Account example: - - -```java -JWTEncryptionPreferences jwtPreferences = new JWTEncryptionPreferences(); -jwtPreferences.setPublicKeyID("PUBLIC-KEY-ID"); -jwtPreferences.setPrivateKeyPassword("PRIVATE-KEY-PASSWORD"); -jwtPreferences.setPrivateKey("PRIVATE-KEY"); -jwtPreferences.setEncryptionAlgorithm(EncryptionAlgorithm.RSA_SHA_256); - -BoxConfig boxConfig = new BoxConfig("YOUR-CLIENT-ID", "YOUR-CLIENT-SECRET", "ENTERPRISE-ID", jwtPreferences); -IAccessTokenCache tokenCache = new InMemoryLRUAccessTokenCache(10); - -BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection.getAppEnterpriseConnection(boxConfig, tokenCache); -``` - -### Standard 3-Legged Oauth 2.0 - -Using an auth code is the most common way of authenticating with the Box API. -Your application must provide a way for the user to login to Box (usually with a -browser or web view) in order to obtain an auth code. - -After a user logs in and grants your application access to their Box account, -they will be redirected to your application's `redirect_uri` which will contain -an auth code. This auth code can then be used along with your client ID and -client secret to establish an API connection. - - -```java -BoxAPIConnection api = new BoxAPIConnection("YOUR-CLIENT-ID", - "YOUR-CLIENT-SECRET", "YOUR-AUTH-CODE"); -``` - -### Box View Authentication with App Token - -Allows applications that do not own content stored in Box (e.g. app-owned content) to be able to use Box as a service -provider rather than a content store. This is currently mostly used for previewing items. For scopes you can choose -between "item_preview", "item_upload", or "item_delete". See the -[Getting Started with the New Box View](https://developer.box.com/docs/getting-started-with-new-box-view) for detailed -instruction. - - -```java -BoxTransactionalAPIConnection api = new BoxTransactionalAPIConnection("YOUR-ACCESS-TOKEN"); -``` - -You can also request a specific scope of the transaction token by passing in: "item_preview", "item_upload", or "item_delete". - -```java -BoxAPIConnection api = BoxTransactionalAPIConnection.getTransactionConnection("YOUR-ACCESS-TOKEN", "item_preview"); -``` - -Lastly, you can choose to specify a resource to generate a token for with. If you're passing a token down to your client -this is a great way to restrict access on that token in turn locking down what the token has access to. - -```java -BoxAPIConnection api = BoxTransactionalAPIConnection.getTransactionConnection("YOUR-ACCESS-TOKEN", "item_preview", -"https://api.box.com/2.0/files/YOUR-FILE-ID"); -``` - -### Client Credentials Grant -Allows you to obtain an access token by having client credentials and secret with enterprise or user ID, -which allows you to work using service or user account. - -The `BoxCCGAPIConnection` works the same way as the `BoxAPIConnection` so for example to get root folder you can do: - -```java -BoxCCGAPIConnection api = BoxCCGAPIConnection.userConnection( - "client_id", - "client_secret", - "user_id" -); -BoxFolder root = BoxFolder.getRootFolder(api); -``` - -Obtained token is valid for specified ammount of time and it will be refreshed automatically by default. - -#### Obtaining Service Account token - -The [Service Account](https://developer.box.com/guides/getting-started/user-types/service-account//) is separate from the Box accounts of the application developer and the -enterprise admin of any enterprise that has authorized the app — files stored in that account -are not accessible in any other account by default, and vice versa. -To obtain service account you will have to provide enterprise ID with client id and secret: - - -```java -BoxCCGAPIConnection api = BoxCCGAPIConnection.applicationServiceAccountConnection( - "client_id", - "client_secret", - "enterprise_id" -); -``` - -#### Obtaining User token - -To obtain user account you will have to provide user ID with client id and secret - -```java -BoxCCGAPIConnection api = BoxCCGAPIConnection.userConnection( - "client_id", - "client_secret", - "user_id" -); -``` -In order to enable generating user token you have to go to your application configuration that can be found [here](https://app.box.com/developers/console). -In`Configuration` tab, in section `Advanced Features` select `Generate user access tokens`. -Do not forget to re-authorize application if it was already authorized. - -## Manual Token Creation - -In certain advanced scenarios, you may want to obtain an access and refresh -token yourself through manual calls to the API. In this case, you can create an -API connection with the tokens directly. - - -```java -BoxAPIConnection api = new BoxAPIConnection("YOUR-CLIENT-ID", - "YOUR-CLIENT-SECRET", "YOUR-ACCESS-TOKEN", "YOUR-REFRESH-TOKEN"); -``` - -## As User - -The purpose of as user is to be used by enterprise administrators to make API calls on behalf of their managed users. -This can also be used by a Service Account to make API calls for managed users or app users. This is only meant to be used -for `BoxAPIConnection`s and not `BoxDeveloperEditionAPIConnection`s. - -In order to invoke as user calls you can use - - -```java -BoxAPIConnection api = new BoxAPIConnection("YOUR-ACCESS-TOKEN"); -api.asUser("USER-ID"); -``` - -Once you are done making calls on behalf of a managed user or app user you can switch back to the admin or service account with - - -```java -api.asSelf(); -``` - -## Token Exchange - -You can exchange a API connection's access token for one with a lower scope, in order to restrict the permissions -or to pass to a less secure location (e.g. a browser-based app). This is useful if you want to use the -[Box UI Kits](https://developer.box.com/docs/box-ui-elements), since they generally do not need full read/write -permissions to run. - - -```java -BoxAPIConnection api = new BoxAPIConnection("YOUR-ACCESS-TOKEN"); - -String resource = "https://api.box.com/2.0/files/RESOURCE-ID"; -List scopes = new ArrayList(); -scopes.add("item_preview"); -scopes.add("item_content_upload"); - -ScopedToken token = api.getLowerScopedToken(scopes, resource); -``` - -The above example will downscope an access token to only allow for previewing an item and uploading an item. - -Revoke Token ------------- - -At any point if you wish to revoke your tokens you can do so by calling the following. - - -```java -BoxAPIConnection api = new BoxAPIConnection("YOUR-ACCESS-TOKEN"); -api.revokeToken(); -``` diff --git a/doc/classifications.md b/doc/classifications.md deleted file mode 100644 index f468bd807..000000000 --- a/doc/classifications.md +++ /dev/null @@ -1,226 +0,0 @@ -Classifications -=============== - -Classfications are a type of metadata that allows users and applications -to define and assign a content classification to files and folders. - -Classifications use the metadata APIs to add and remove classifications, and -assign them to files. For more details on metadata templates please see the -[metadata documentation](./metadata.md). - - - - -- [Classifications](#classifications) - - [Add initial classifications](#add-initial-classifications) - - [List all classifications](#list-all-classifications) - - [Add another classification](#add-another-classification) - - [Update a classification](#update-a-classification) - - [Delete a classification](#delete-a-classification) - - [Delete all classifications](#delete-all-classifications) - - [Add classification to file](#add-classification-to-file) - - [Update classification on file](#update-classification-on-file) - - [Get classification on file](#get-classification-on-file) - - [Remove classification from file](#remove-classification-from-file) - - [Add classification to folder](#add-classification-to-folder) - - [Update classification on folder](#update-classification-on-folder) - - [Get classification on folder](#get-classification-on-folder) - - [Remove classification from folder](#remove-classification-from-folder) - - - -Add initial classifications ---------------------------- - -If an enterprise does not already have a classification defined, the first classification(s) -can be added with the [`createMetadataTemplate`][create-metadata-template] method. - - -```java -MetadataTemplate.Field classification = new MetadataTemplate.Field(); -classification.setType("enum"); -classification.setKey(Metadata.CLASSIFICATION_KEY); -classification.setDisplayName("Classification"); -classification.setHidden("false"); - -List options = new ArrayList(); -options.add("Top Secret"); -classification.setOptions(topSecret) - -List fields = new ArrayList(); -fields.add(classification); - -MetadataTemplate template = MetadataTemplate.createMetadataTemplate(api, Metadata.ENTERPRISE_METADATA_SCOPE, Metadata.CLASSIFICATION_TEMPLATE_KEY, "Classification", false, fields); -``` - -[create-metadata-template]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/MetadataTemplate.html#createMetadataTemplate-com.box.sdk.BoxAPIConnection-java.lang.String-java.lang.String-java.lang.String-boolean-java.util.List- - - -List all classifications ------------------------- - -To retrieve a list of all the classifications in an enterprise call the -[`getMetadataTemplate`][get-metadata-template] -method to get the classifciations template, which will contain a list of all the -classifications - - -```java -MetadataTemplate template = MetadataTemplate.getMetadataTemplate(api, Metadata.CLASSIFICATION_TEMPLATE_KEY); -``` - -[get-metadata-template]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/MetadataTemplate.html#getMetadataTemplate-com.box.sdk.BoxAPIConnection- - -Add another classification --------------------------- - -To add another classification, call the [`updateMetadataTemplate`][update-metadata-template] -method with the an operation to add a new classification to the template. - - -```java -List updates = new ArrayList(); - -String update = "{\n op: \"addEnumOption\",\n fieldKey: \"Box__Security__Classification__Key\",\n data: {\n key: \"Sensitive\"\n }\n}"; - -updates.add(new MetadataTemplate.FieldOperation(addCategoryFieldJSON)); - -MetadataTemplate.updateMetadataTemplate(api, Metadata.ENTERPRISE_METADATA_SCOPE, Metadata.CLASSIFICATION_TEMPLATE_KEY, updates); -``` - -[update-metadata-template]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/MetadataTemplate.html#updateMetadataTemplate-com.box.sdk.BoxAPIConnection-java.lang.String-java.lang.String-java.util.List- - - -Update a classification ------------------------ - -To update an existing classification, call the -[`updateMetadataTemplate`][update-metadata-template] -method with the an operation to update the existing classification already present on the template. - - -```java -List updates = new ArrayList(); - -String update = "{\n op: \"editEnumOption\",\n fieldKey: \"Box__Security__Classification__Key\",\n enumOptionKey: \"Sensitive\",\n data: {\n key: \"Very Sensitive\"\n }\n}"; - -updates.add(new MetadataTemplate.FieldOperation(addCategoryFieldJSON)); - -MetadataTemplate.updateMetadataTemplate(api, Metadata.ENTERPRISE_METADATA_SCOPE, Metadata.CLASSIFICATION_TEMPLATE_KEY, updates); -``` - -Add classification to file --------------------------- - -To add a classification to a file, call [`setMetadata(String templateKey, String templateScope, Metadata properties)`][set-metadata] -with the name of the classification template, as well as the details of the classification -to add to the file. - - -```java -BoxFile file = new BoxFile(api, "id"); -Metadata metadata = new Metadata() -metadata.add(Metadata.CLASSIFICATION_KEY, "Sensitive") -file.setMetadata(Metadata.CLASSIFICATION_TEMPLATE_KEY, Metadata.ENTERPRISE_METADATA_SCOPE, metadata); -``` - -[set-metadata]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#setMetadata-java.lang.String-java.lang.String-com.box.sdk.Metadata- - -Update classification on file ------------------------------ - -To update a classification on a file, call -[`setMetadata(String templateKey, String templateScope, Metadata properties)`][set-metadata] -with the name of the classification template, as well as the details of the classification -to add to the file. - - -```java -BoxFile file = new BoxFile(api, "id"); -Metadata metadata = new Metadata() -metadata.add(Metadata.CLASSIFICATION_KEY, "Sensitive") -file.setMetadata(Metadata.CLASSIFICATION_TEMPLATE_KEY, Metadata.ENTERPRISE_METADATA_SCOPE, metadata); -``` - -Get classification on file --------------------------- - -Retrieve the classification on a file by calling -[`getMetadata(String templateKey)`](http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#getMetadata-java.lang.String-) -with the ID of the file. - - -```java -BoxFile file = new BoxFile(api, "id"); -Metadata metadata = file.getMetadata(Metadata.CLASSIFICATION_TEMPLATE_KEY); -``` - -Remove classification from file -------------------------------- - -A classification can be removed from a file by calling -[`deleteMetadata`](http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#deleteMetadata--). - - -```java -BoxFile file = new BoxFile(api, "id"); -file.deleteMetadata(Metadata.CLASSIFICATION_TEMPLATE_KEY); -``` - -Add classification to folder ----------------------------- - -To add a classification to a folder, call [`setMetadata(String templateKey, String templateScope, Metadata properties)`][set-metadata] -with the name of the classification template, as well as the details of the classification -to add to the folder. - - -```java -BoxFolder folder = new BoxFolder(api, "id"); -Metadata metadata = new Metadata() -metadata.add(Metadata.CLASSIFICATION_KEY, "Sensitive") -folder.setMetadata(Metadata.CLASSIFICATION_TEMPLATE_KEY, Metadata.ENTERPRISE_METADATA_SCOPE, metadata); -``` - -[set-metadata]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#setMetadata-java.lang.String-java.lang.String-com.box.sdk.Metadata- - -Update classification on folder -------------------------------- - -To update a classification on a folder, call -[`setMetadata(String templateKey, String templateScope, Metadata properties)`][set-metadata] -with the name of the classification template, as well as the details of the classification -to add to the folder. - - -```java -BoxFolder folder = new BoxFolder(api, "id"); -Metadata metadata = new Metadata() -metadata.add(Metadata.CLASSIFICATION_KEY, "Sensitive") -folder.setMetadata(Metadata.CLASSIFICATION_TEMPLATE_KEY, Metadata.ENTERPRISE_METADATA_SCOPE, metadata); -``` - -Get classification on folder ----------------------------- - -Retrieve the classification on a folder by calling -[`getMetadata(String templateKey)`](http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#getMetadata-java.lang.String-) -with the ID of the folder. - - -```java -BoxFolder folder = new BoxFolder(api, "id"); -Metadata metadata = folder.getMetadata(Metadata.CLASSIFICATION_TEMPLATE_KEY); -``` - -Remove classification from folder ---------------------------------- - -A classification can be removed from a folder by calling -[`deleteMetadata`](http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#deleteMetadata--). - - -```java -BoxFolder folder = new BoxFolder(api, "id"); -folder.deleteMetadata(Metadata.CLASSIFICATION_TEMPLATE_KEY); -``` \ No newline at end of file diff --git a/doc/collaboration_allowlists.md b/doc/collaboration_allowlists.md deleted file mode 100644 index 0b464a528..000000000 --- a/doc/collaboration_allowlists.md +++ /dev/null @@ -1,147 +0,0 @@ -Collaboration Allowlists -======================== - -Collaboration Allowlists are used to manage a set of approved domains or Box users that an enterprise -can collaborate with. - - - - - -- [Add a Collaboration Allowlist For a Domain](#add-a-collaboration-allowlist-for-a-domain) -- [Get a Collaboration Allowlist's Information for a Domain](#get-a-collaboration-allowlists-information-for-a-domain) -- [Get all Collaboration Allowlist's Information for Domain](#get-all-collaboration-allowlists-information-for-domain) -- [Remove a Collaboration Allowlist for a Domain](#remove-a-collaboration-allowlist-for-a-domain) -- [Add a Collaboration Allowlist for a User](#add-a-collaboration-allowlist-for-a-user) -- [Get a Collaboration Allowlist's Information for a User](#get-a-collaboration-allowlists-information-for-a-user) -- [Get all Collaboration Allowlist's Information for a User](#get-all-collaboration-allowlists-information-for-a-user) -- [Remove a Collaboration Allowlist for a User](#remove-a-collaboration-allowlist-for-a-user) - - - -Add a Collaboration Allowlist For a Domain ------------------------------------------- - -A collaboration allowlist can be created for a domain with -[`create(BoxAPIConnection api, String domain, AllowlistDirection direction)`][allowlist1]. -The `AllowlistDirection` parameter determines which way the allowlisting -applies. You can set the value to inbound, outbound, or both. - - -```java -BoxCollaborationAllowlist.create(api, "test.com", BoxCollaborationAllowlist.AllowlistDirection.BOTH); -``` - -[allowlist1]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxCollaborationAllowlist.html#create-com.box.sdk.BoxAPIConnection-java.lang.String-com.box.sdk.BoxCollaborationAllowlist.AllowlistDirection- - -Get a Collaboration Allowlist's Information for a Domain --------------------------------------------------------- - -A specific collaboration allowlist for a domain can be retrieved with -[`getInfo()`][getAllowlistInfo] - - -```java -BoxCollaborationAllowlist domainAllowlist = new BoxCollaborationAllowlist(api, "id"); -domainAllowlist.getInfo(); -``` - -[getAllowlistInfo]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxCollaborationAllowlist.html#getInfo-- - -Get all Collaboration Allowlist's Information for Domain --------------------------------------------------------- - -All domain collaboration allowlists associated with an enterprise can be -retrieved with [`getAll(BoxAPIConnection api)`][getAllAllowlists1] - - -```java -BoxCollaborationAllowlist.getAll(api); -``` - -To specify the number of allowlists to retrieve you can pass a limit on how -many allowlists to return to [`getAll(BoxAPIConnection api, int limit)`][getAllAllowlists2]. - -```java -BoxCollaborationAllowlist.getAll(api, 10); -``` - -[getAllAllowlists1]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxCollaborationAllowlist.html#getAll-com.box.sdk.BoxAPIConnection-java.lang.String...- -[getAllAllowlists2]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxCollaborationAllowlist.html#getAll-com.box.sdk.BoxAPIConnection-int-java.lang.String...- - -Remove a Collaboration Allowlist for a Domain ---------------------------------------------- - -To remove a collaboration allowlist you can call [`delete()`][deleteAllowlist] - - -```java -BoxCollaborationAllowlist domainToBeDeleted = new BoxCollaborationAllowlist(api, "allowlist-id"); -domainToBeDeleted.delete(); -``` - -[deleteAllowlist]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxCollaborationAllowlist.html#delete-- - -Add a Collaboration Allowlist for a User ----------------------------------------- - -A collaboration allowlist can be created for a user with -[`create(BoxAPIConnection api, String userID)`][createExempt] - - -```java -String userID = "12345"; -BoxCollaborationAllowlistExemptTarget.create(api, userID); -``` - -[createExempt]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxCollaborationAllowlistExemptTarget.html#create-com.box.sdk.BoxAPIConnection-java.lang.String- - -Get a Collaboration Allowlist's Information for a User ------------------------------------------------------- - -To retrieve information regarding a specific user collaboration allowlist use -[`getInfo()`][getInfoExempt] - - -```java -BoxCollaborationAllowlistExemptTarget userAllowlist = new BoxCollaborationAllowlistExemptTarget(api, "allowlistID"); -userAllowlist.getInfo(); -``` - -[getInfoExempt]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxCollaborationAllowlistExemptTarget.html#getInfo-- - -Get all Collaboration Allowlist's Information for a User --------------------------------------------------------- - -To retrieve information regarding all user allowlists associated with an enterprise use -[`getAll(BoxAPIConnection api)`][getAllExempt1] - - -```java -BoxCollaborationAllowlistExemptTarget.getAll(api); -``` - -Alternatively you can specify the number of user allowlists to return with one -request by passing a the maximum number of records to return to -[`getAll(BoxApiConnection api, int limit)`][getAllExempt2] - -```java -BoxCollaborationAllowlistExemptTarget.getAll(api, 5); -``` - -[getAllExempt1]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxCollaborationAllowlistExemptTarget.html#getAll-com.box.sdk.BoxAPIConnection-java.lang.String...- -[getAllExempt2]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxCollaborationAllowlistExemptTarget.html#getAll-com.box.sdk.BoxAPIConnection-int-java.lang.String...- - -Remove a Collaboration Allowlist for a User -------------------------------------------- - -To remove a user collaboration allowlist entry from an enterprise use -[`delete()`][deleteExempt] - - -```java -BoxCollaborationAllowlistExemptTarget userAllowlist = new BoxCollaborationAllowlistExemptTarget(api, "allowlist_id"); -userAllowlist.delete(); -``` - -[deleteExempt]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxCollaborationAllowlistExemptTarget.html#delete-- diff --git a/doc/collaborations.md b/doc/collaborations.md deleted file mode 100644 index 296e0bf65..000000000 --- a/doc/collaborations.md +++ /dev/null @@ -1,168 +0,0 @@ -Collaborations -============== - -Collaborations are used to share folders between users or groups. They also -define what permissions a user has for a folder. - - - - - -- [Add a Collaboration](#add-a-collaboration) -- [Edit a Collaboration](#edit-a-collaboration) -- [Remove a Collaboration](#remove-a-collaboration) -- [Get a Collaboration's Information](#get-a-collaborations-information) -- [Get the Collaborations on a Folder](#get-the-collaborations-on-a-folder) -- [Get the Collaborations on a File](#get-the-collaborations-on-a-file) -- [Get Pending Collaborations](#get-pending-collaborations) -- [Accept or Decline a Pending Collaboration](#accept-or-decline-a-pending-collaboration) - - - -Add a Collaboration -------------------- - -A collaboration can be added for an existing user or group with -[`collaborate(BoxCollaborator collaborator, BoxCollaboration.Role role)`][collaborate1]. The -`role` parameter determines what permissions the collaborator will have on the -folder. - - -```java -BoxCollaborator user = new BoxUser(api, "user-id") -BoxFolder folder = new BoxFolder(api, "folder-id"); -folder.collaborate(user, BoxCollaboration.Role.EDITOR); -``` - -You can also add a collaboration by providing an email address with -[`collaborate(String emailAddress, BoxCollaboration.Role role)`][collaborate2]. -If the recipient doesn't have a Box account, they will be asked create one. - -```java -BoxFolder folder = new BoxFile(api, "id"); -folder.collaborate("gcurtis@box.com", BoxCollaboration.Role.EDITOR); -``` - -If you need to create a collaboration with a group, provide a group id. - - -```java -BoxCollaborator group = new BoxGroup(api, "group-id"); -BoxFolder folder = new BoxFolder(api, "folder-id"); -folder.collaborate(group, BoxCollaboration.Role.EDITOR); -``` - -[collaborate1]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#collaborate-com.box.sdk.BoxCollaborator-com.box.sdk.BoxCollaboration.Role- -[collaborate2]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#collaborate-java.lang.String-com.box.sdk.BoxCollaboration.Role- - -Edit a Collaboration --------------------- - -A collaboration can be edited by creating a new -[`BoxCollaboration.Info`][box-collaboration-info] object or updating an existing -one, and then passing it to [`updateInfo(BoxCollaboration.Info fieldsToUpdate)`][update-info] - - -```java -BoxCollaboration collaboration = new BoxCollaboration(api, "id"); -BoxCollaboration.Info info = collaboration.new Info(); -info.setStatus(BoxCollaboration.Status.ACCEPTED); -collaboration.updateInfo(info); -``` - -[box-collaboration-info]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxCollaboration.Info.html -[update-info]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxCollaboration.html#updateInfo-com.box.sdk.BoxCollaboration.Info- - -Remove a Collaboration ----------------------- - -A collaboration can be removed by calling [`delete()`][delete]. - - -```java -BoxCollaboration collaboration = new BoxCollaboration(api, "id"); -collaboration.delete(); -``` - -[delete]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxCollaboration.html#delete-- - -Get a Collaboration's Information ---------------------------------- - -Calling [`getInfo()`][get-info-fields] on a collaboration returns a snapshot of the -collaboration's info. - - -```java -BoxCollaboration collaboration = new BoxCollaboration(api, "id"); -BoxCollaboration.Info info = collaboration.getInfo(); -``` - -You can also choose to retrieve only specific fields of the collaboration by calling -[`getInfo(String... fields)`][get-info-fields] with a list of field names. - -```java -BoxCollaboration collaboration = new BoxCollaboration(api, "id"); -BoxCollaboration.Info info = collaboration.getInfo(BoxCollaboration.ALL_FIELDS); -``` - -[get-info-fields]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxCollaboration.html#getInfo-java.lang.String...- - -Get the Collaborations on a Folder ----------------------------------- - -You can get all of the collaborations on a folder by calling -[`getCollaborations()`][get-collaborations] on the folder. - - -```java -BoxFolder folder = new BoxFolder(api, "id"); -Collection collaborations = folder.getCollaborations(); -``` - -[get-collaborations]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#getCollaborations-- - -Get the Collaborations on a File --------------------------------- - -You can get an iterator over all of the collaborations on a file by calling -[`BoxFile#getAllFileCollaborations(String... fields)`][get-collaborations-file] -on the file. - - -```java -BoxFile file = new BoxFile(api, "id"); -Iterable collaborations = file.getAllFileCollaborations(); -``` - -[get-collaborations-file]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#getAllFileCollaborations-java.lang.String...- - -Get Pending Collaborations --------------------------- - -A collection of all the user's pending collaborations can be retrieved with -[`getPendingCollaborations(BoxAPIConnection api)`][get-pending-collaborations]. - - -```java -Collection pendingCollaborations = - BoxCollaboration.getPendingCollaborations(api); -``` - -[get-pending-collaborations]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxCollaboration.html#getPendingCollaborations-com.box.sdk.BoxAPIConnection- - -Accept or Decline a Pending Collaboration ------------------------------------------ - -To accept or decline a pending collaboration, update the info of the pending collaboration object -with the desired status. - - -```java -// Accept all pending collaborations -Collection pendingCollaborations = BoxCollaboration.getPendingCollaborations(api); -for (BoxCollaboration.Info collabInfo : pendingCollaborations) { - collabInfo.setStatus(BoxCollaboration.Status.ACCEPTED); - collabInfo.getResource().updateInfo(collabInfo); -} -``` diff --git a/doc/collections.md b/doc/collections.md deleted file mode 100644 index 3e5304bf4..000000000 --- a/doc/collections.md +++ /dev/null @@ -1,104 +0,0 @@ -Collections -=========== - -Collections contain information about the items contained inside of them, -including files and folders. The only collection available currently is a -“Favorites” collection. The contents of the collection are discovered in a -similar way in which the contents of a folder are discovered. - - - - - -- [Get Collections](#get-collections) -- [Get a Collection's Items](#get-a-collections-items) -- [Add Items to a Collection](#add-items-to-a-collection) -- [Remove Items from a Collection](#remove-items-from-a-collection) - - - -Get Collections ---------------- - -Existing collections can be retrieved by calling the -[`getAllCollections(BoxAPIConnection)`][get-collections] method. Currently only -"Favorites" collection is supported. - - -```java -Iterable collections = BoxCollection.getAllCollections(api); -for (BoxCollection.Info collectionInfo : collections) { - // Do something with the collection. -} -``` - -[get-collections]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxCollection.html#getAllCollections-com.box.sdk.BoxAPIConnection- - -Get a Collection's Items ------------------------- - -Every `BoxCollection` implements [`Iterable`][iterator] which allows -you to iterate over the collection's contents. The iterator automatically -handles paging and will make additional network calls to load more data from Box -when necessary. - - -```java -BoxFolder folder = new BoxFolder(api, "id"); -for (BoxItem.Info itemInfo : folder) { - if (itemInfo instanceof BoxFile.Info) { - BoxFile.Info fileInfo = (BoxFile.Info) itemInfo; - // Do something with the file. - } else if (itemInfo instanceof BoxFolder.Info) { - BoxFolder.Info folderInfo = (BoxFolder.Info) itemInfo; - // Do something with the folder. - } -} -``` - -[iterator]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxCollection.html#iterator-- - -Add Items to a Collection -------------------------- - -Add an item to a collection by calling -[`setCollections(BoxCollection... collections)`][set-collections] on any `BoxItem`. Note that this -method will overwrite all collections that the item belongs to. - - -```java -BoxCollection favorites = null; -for (BoxCollection.Info info : BoxCollection.getAllCollections(api)) { - if (info.getCollectionType().equals("favorites")) { - favorites = info.getResource(); - break; - } -} -BoxFile file = new BoxFile(api, "id"); -file.setCollections(favorites); -``` - -Remove Items from a Collection ------------------------------- - -Remove an item from a collection by calling -[`setCollections(BoxCollection... collections)`][set-collections] on any `BoxItem` and exclude the -collection to wish to remove it from. - - -```java -BoxFile file = new BoxFile(api, "id"); -BoxFile.Info info = file.getInfo("collections"); - -ArrayList collections = new ArrayList(); -for (BoxCollection.Info info : info.getCollections(api)) { - // Include every existing collection except for favorites to remove the file - // from the favorites collection. - if (!info.getCollectionType().equals("favorites")) { - collections.add(info.getResource()); - } -} -file.setCollections(collections.toArray()); -``` - -[set-collections]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxItem.html#setCollections-com.box.sdk.BoxCollection...- diff --git a/doc/comments.md b/doc/comments.md deleted file mode 100644 index 6681330fd..000000000 --- a/doc/comments.md +++ /dev/null @@ -1,125 +0,0 @@ -Comments -======== - -Comment objects represent a user-created comment on a file. They can be added -directly to a file or they can be a reply to another comment. - - - - - -- [Get a Comment's Information](#get-a-comments-information) -- [Get the Comments on a File](#get-the-comments-on-a-file) -- [Add a Comment to a File](#add-a-comment-to-a-file) -- [Reply to a Comment](#reply-to-a-comment) -- [Change a Comment's Message](#change-a-comments-message) -- [Delete a Comment](#delete-a-comment) - - - -Get a Comment's Information ---------------------------- - -Calling [`getInfo()`][get-info] on a comment returns a snapshot of the comment's -info. - - -```java -BoxComment comment = new BoxComment(api, "id"); -BoxComment.Info info = comment.getInfo(); -``` - -[get-info]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxComment.html#getInfo-- - -Get the Comments on a File --------------------------- - -You can get all of the comments on a file by calling the -[`getComments()`][get-comments] method. - - -```java -BoxFile file = new BoxFile(api, "id"); -List comments = file.getComments(); -``` - -[get-comments]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#getComments-- - -Add a Comment to a File ------------------------ - -A comment can be added to a file with the [`addComment(String message)`][add-comment] -method. - - -```java -BoxFile file = new BoxFile(api, "id"); -file.addComment("This file is pretty cool."); -``` - -The comment's message can also contain @mentions by using the string -@[userid:username] anywhere within the message, where userid and username are -the ID and username of the person being mentioned. [See the documentation] -(https://developers.box.com/docs/#comments-comment-object) on the -`tagged_message` field for more information on @mentions. - - -```java -BoxFile file = new BoxFile(api, "id"); -file.addComment("Message mentioning @[1234:user@box.com]."); -``` - -[add-comment]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#addComment-java.lang.String- - -Reply to a Comment ------------------- - -You can reply to a comment with the [`reply(String message)`][reply] method. - - -```java -BoxComment comment = new BoxComment(api, "id"); -comment.reply("I agree with this!"); -``` - - -The comment's message can also contain @mentions by using the string -@[userid:username] anywhere within the message, where userid and username are -the ID and username of the person being mentioned. [See the documentation] -(https://developers.box.com/docs/#comments-comment-object) on the -`tagged_message` field for more information on @mentions. - - -```java -BoxComment comment = new BoxComment(api, "id"); -comment.reply("@[1234:user@box.com] I agree with this!"); -``` - -[reply]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxComment.html#reply-java.lang.String- - -Change a Comment's Message --------------------------- - -The message of a comment can be changed with the -[`changeMessage(String message)`][change-message] method. - - -```java -BoxComment comment = new BoxComment(api, "id"); -comment.changeMessage("An edited message."); -``` - -[change-message]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxComment.html#changeMessage-java.lang.String- - -Delete a Comment ----------------- - -A comment can be deleted with the [`delete()`][delete] method. - - -```java -BoxComment comment = new BoxComment(api, "id"); -comment.delete(); -``` - -[delete]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxComment.html#delete-- diff --git a/doc/configuration.md b/doc/configuration.md deleted file mode 100644 index 030b9d171..000000000 --- a/doc/configuration.md +++ /dev/null @@ -1,329 +0,0 @@ -# Configuration - -- [Proxy configuration](#proxy-configuration) - - [Custom proxy authenticator](#custom-proxy-authenticator) - - [Example: NTLM authenticator](#example-ntlm-authenticator) -- [Configure retries of calls and timeouts](#configure-retries-of-calls-and-timeouts) - - [Maximum retries](#maximum-retries) - - [Connection timeout](#connection-timeout) - - [Read timeout](#read-timeout) -- [URLs configuration](#urls-configuration) - - [Base URL](#base-url) - - [Base Upload URL](#base-upload-url) - - [Base App URL](#base-app-url) - - [Token URL](#token-url-deprecated) - - [Revoke URL](#revoke-url-deprecated) -- [SSL configuration](#ssl-configuration) -- [Instrumenation of OpenTelemetry](#instrumenation-of-opentelemetry) - -# Proxy configuration - -To set up proxy -use [BoxApiConnection.setProxy](https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxAPIConnection.html#setProxy-java.net.Proxy-) -to set proxy address -and [BoxApiConnection.setProxyBasicAuthentication][set-basic-proxy-auth] -to set username and password required by proxy: - -```java -BoxAPIConnection api=new BoxAPIConnection("access_token"); -Proxy proxy = new Proxy(Proxy.Type.HTTP,new InetSocketAddress("proxy_url",8888)); -// You can use any subclass of BoxAPIConnection -api.setProxy(proxy); -api.setProxyBasicAuthentication("proxyUsername", "proxyPassword"); -``` -Proxy username and password will be used only if provided `SocketAddress` is an instance of -`InetSocketAddress`. If you would like to use a custom `SocketAddress` you can provide your own -`okhttp3.Authenticator` using [BoxApiConnection.setProxyAuthenticator(Authenticator)][set-proxy-authenticator] - - -## Custom proxy authenticator -By using [BoxApiConnection.setProxyBasicAuthentication][set-basic-proxy-auth] you can enable default -proxy authenticator that handles only Basic authentication. But you can provide your own authenticator by using -[BoxApiConnection.setProxyAuthenticator(Authenticator)][set-proxy-authenticator]. - -To do that you will need to add a dependency to your project: -``` -"com.squareup.okhttp3:okhttp:XXX" -``` -Please match the version with what SDK is using by checking `build.gradle` -and looking for entry `implementation "com.squareup.okhttp3:okhttp:"`. - -Now you can add an authenticator. by calling - -```java -BoxAPIConnection api = new BoxAPIConnection("access_token"); -Proxy proxy = new Proxy(Proxy.Type.HTTP,new InetSocketAddress("proxy_url",8888)); -api.setProxy(proxy); -api.setProxyAuthenticator((route, response) -> response - .request() - .newBuilder() - .addHeader("Proxy-Authorization", "My custom authenticator") - .build() -); -``` - -### Example: NTLM authenticator - -For example, you can add NTLM authorization. This is example NTLM authenticator that -is using parts from Apache Http Client 5. - -```java -import okhttp3.Authenticator; -import okhttp3.Request; -import okhttp3.Response; -import okhttp3.Route; -import org.apache.hc.client5.http.impl.auth.NTLMEngineException; - -public class NTLMAuthenticator implements Authenticator { - final NTLMEngineImpl engine = new NTLMEngineImpl(); - private final String domain; - private final String username; - private final String password; - private final String ntlmMsg1; - - public NTLMAuthenticator(String username, String password, String domain) { - this.domain = domain; - this.username = username; - this.password = password; - String localNtlmMsg1 = null; - try { - localNtlmMsg1 = engine.generateType1Msg(null, null); - } catch (Exception e) { - e.printStackTrace(); - } - ntlmMsg1 = localNtlmMsg1; - } - - @Override - public Request authenticate(Route route, Response response) { - if(response.code() == 407 && "Proxy authorization required".equals(response.message())) { - String ntlmChallenge = response.headers("Proxy-Authenticate") - .stream() - .filter(h -> h.startsWith("NTLM ")) - .findFirst().orElse(""); - if(ntlmChallenge.length() > 5) { - try { - String ntlmMsg3 = engine.generateType3Msg(username, password.toCharArray(), domain, "ok-http-example-ntlm", ntlmChallenge.substring(5)); - return response.request().newBuilder().header("proxy-Authorization", "NTLM " + ntlmMsg3).build(); - } catch (NTLMEngineException e) { - throw new RuntimeException(e); - } - } - return response.request().newBuilder().header("proxy-Authorization", "NTLM " + ntlmMsg1).build(); - } - return response.request(); - } -} -``` - -The `NTLMEngineImpl` could be created by using Apache implementation that can be found -[here](https://github.com/apache/httpcomponents-client/blob/master/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/NTLMEngineImpl.java). -You can add a dependency to `org.apache.httpcomponents.client5:httpclient5:5.1.3`. -Copy the `NTLMEngineImpl` class and add it to your source. - -Now you can use custom NTML Authenticator in your `BoxAPIConnection`: -```java -BoxAPIConnection api = new BoxAPIConnection("access_token"); -Proxy proxy = new Proxy(Proxy.Type.HTTP,new InetSocketAddress("proxy_url",8888)); -api.setProxy(proxy); -api.setProxyAuthenticator(new NTLMAuthenticator("some proxy username", "some proxy password", "proxy workgroup")); -``` - -[set-basic-proxy-auth]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxAPIConnection.html#setProxyBasicAuthentication-java.lang.String-java.lang.String- -[set-proxy-authenticator]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxAPIConnection.html#setProxyAuthenticator-okhttp3.Authenticator- - -# Configure retries of calls and timeouts -SDK can retry failed calls when: - - failed writting request body - - when recieved HTTP response code: - - 429 - rate limit exceeded - - 5XX - internal server error - - 400 error with error that `exp` claim has expired. This usially means there is a clock skew. - -SDK is using exponnetial strategy to calculate time between retries. - If response contains `Retry-After` header its value will be used as a wait time between calls. -You can check details in `com.box.sdk.BoxAPIRequest.send(com.box.sdk.ProgressListener)` method. - -## Maximum retries - -To configure how many times API will retry calls -use [BoxApiConnection.setMaxRetryAttempts](https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxAPIConnection.html#setMaxRetryAttempts-int-): - -```java -// You can use any subclass of BoxAPIConnection -api.setMaxRetryAttempts(10); -``` - -default value for retry attempts is `5`. - -## Connection timeout - -To set up how log (in milliseconds) API waits to establish connection -use [BoxApiConnection.setConnectTimeout](https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxAPIConnection.html#setConnectTimeout-int-): - -```java -// You can use any subclass of BoxAPIConnection -int connectionTimeout = 100; // timeout in milliseconds -api.setConnectTimeout(connectionTimeout); -``` - -default value is `0` which mean API waits forever to establish connection. - -## Read timeout - -To set up how log (in milliseconds) API waits to read data from connection -use [BoxApiConnection.setReadTimeout](https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxAPIConnection.html#setReadTimeout-int-): - -```java -// You can use any subclass of BoxAPIConnection -int readTimeout = 100; // timeout in milliseconds -api.setReadTimeout(readTimeout); -``` - -default value is `0` which mean API waits forever to read data from connection. - -# URLs configuration - -### Base URL -The default base URL used for making API calls to Box can be changed by calling `BoxAPIConnection#setBaseURL(String)` -method on `BoxApiConnection`. Default value is `https://api.box.com/`. - -```java -BoxAPIConnection api = new BoxAPIConnection("YOUR-DEVELOPER-TOKEN"); - -api.setBaseURL("https://example.com"); -String baseUrl = api.getBaseURL(); // will produce "https://example.com/2.0/" -``` - -Setting Base URL changes the Token and Revoke URL as well: -```java -BoxAPIConnection api = new BoxAPIConnection("YOUR-DEVELOPER-TOKEN"); - -api.setBaseURL("https://example.com"); - -String baseUrl = api.getBaseURL(); // will produce "https://example.com/2.0/" -String tokenUrl = api.getRevokeURL(); // will produce "https://example.com/oauth2/revoke" -String revokeUrl = api.getTokenURL(); // will produce "https://example.com/oauth2/token" -``` - -### Base Upload URL -The default URL used for uploads can be changed by calling `BoxAPIConnection#setBaseUploadURL(String)` method on `BoxApiConnection`. -Default value is `https://upload.box.com/api/`. - -```java -BoxAPIConnection api = new BoxAPIConnection("YOUR-DEVELOPER-TOKEN"); - -api.setBaseUploadURL("https://upload.example.com"); -api.getBaseUploadURL(); // will produce "https://upload.example.com/2.0/" -``` - -### Base App URL -The default base app URL can be changed by calling `BoxAPIConnection#setBaseAppUrl()` method on `BoxApiConnection`. -Default value is https://app.box.com. - -```java -BoxAPIConnection api = new BoxAPIConnection("YOUR-DEVELOPER-TOKEN"); - -api.setBaseAppUrl("https://example.app.com"); -api.getBaseAppUrl(); // will produce "https://app.example.com" -``` - -### Token URL (deprecated) -The default URL used for getting token can be changed by calling `setTokenURL()` method on `BoxApiConnection`. -Default value is https://api.box.com/oauth2/token. This method is deprecated. Use `BoxAPIConnection#setBaseURL(String)` -instead. - -```java -BoxAPIConnection api = new BoxAPIConnection("YOUR-DEVELOPER-TOKEN"); - -api.setTokenURL("https://example.com/token"); -``` - -If you use `setTokenUrl` this URL will be used over the one coming from `setBaseUrl` when doing authentication. - -### Revoke URL (deprecated) -The default URL used for invalidating token can be changed by calling `setRevokeURL()` method on `BoxApiConnection`. -Default value is https://api.box.com/oauth2/revoke. This method is deprecated. Use `BoxAPIConnection#setBaseURL(String)` -instead. - -```java -BoxAPIConnection api = new BoxAPIConnection("YOUR-DEVELOPER-TOKEN"); - -api.setRevokeURL("https://example.com/revoke"); -``` - -If you use `setRevokeUrl` this URL will be used over the one coming from`setBaseUrl` when doing authentication. - -# SSL configuration -You can override default settings used to verify SSL certificates. -This can be used to allow using self-signed certificates. For example: -```java -BoxAPIConnection api = new BoxAPIConnection(...); - -// to allow self-signed certificates -X509TrustManager trustManager = new X509TrustManager() { - @Override - public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) { - } - - @Override - public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) { - } - - @Override - public java.security.cert.X509Certificate[] getAcceptedIssuers() { - return new java.security.cert.X509Certificate[]{}; - } -}; - -// to allow self-signed certificates created for localhost -HostnameVerifier hostnameVerifier = (hostname, session) -> true; - -api.configureSslCertificatesValidation(trustManager, hostnameVerifier); -``` - -If you just need to provide trust manager use `BoxAPIConnection.DEFAULT_HOSTNAME_VERIFIER` as a hostname verifier. -The same goes for hostname verifier. If you need just to provide it use -`BoxAPIConnection.DEFAULT_TRUST_MANAGER` as a trust manager. -Example: -```java -BoxAPIConnection api = new BoxAPIConnection(...); -X509TrustManager trustManager = ... -api.configureSslCertificatesValidation(trustManager, BoxAPIConnection.DEFAULT_HOSTNAME_VERIFIER); -``` - -# Instrumenation of OpenTelemetry - -OpenTelemetry is an observability framework and toolkit for creating and managing telemetry data, such as traces, -metrics, and logs. The Box Java SDK can be instrumented with OpenTelemetry to collect telemetry data about the -requests made by the SDK. - -To start, add the [opentelemetry-okhttp-3.0](https://mvnrepository.com/artifact/io.opentelemetry.instrumentation/opentelemetry-okhttp-3.0) dependency to your project. -Next, create a custom class that extends BoxAPIConnection and integrates telemetry in the overridden `createNewCall` method. -Here's an example implementation: -```java -public class BoxAPIConnectionWithTelemetry extends BoxAPIConnection { - - private OkHttpTelemetry telemetry; - - public BoxAPIConnectionWithTelemetry(String accessToken) { - super(accessToken); - } - - /** - * Add required constructors - */ - - public void setTelemetry(OpenTelemetry openTelemetry) { - this.telemetry = OkHttpTelemetry.builder(openTelemetry).build(); - } - - protected Call createNewCall(OkHttpClient httpClient, Request request) { - return this.telemetry.newCallFactory(httpClient).newCall(request); - } -} - -``` - -Please note that you should not modify either `httpClient` or `request` parameters in the createNewCall method. -Altering these parameters can discard the BoxAPIConnection configuration and lead to unexpected behavior. \ No newline at end of file diff --git a/doc/css/javadoc.css b/doc/css/javadoc.css deleted file mode 100644 index ad7887e4d..000000000 --- a/doc/css/javadoc.css +++ /dev/null @@ -1,488 +0,0 @@ -body { - color: #333; - font-family: 'Helvetica Neue', Calibri, sans-serif; - margin: 0; -} -hr { - display: none; -} -caption { - display: none; -} -a:link, -a:visited { - text-decoration: none; - color: rgb(26, 116, 186); -} -a:hover, -a:focus { - text-decoration: none; - color: rgb(22, 100, 160); -} -a:active { - text-decoration: none; - color: #4c6b87; -} -a[name] { - color: #353833; -} -a[name]:hover { - text-decoration: none; - color: #353833; -} -pre { - font-family: Menlo, Consolas, monospace; - font-size: 1em; -} -code { - font-family: Menlo, Consolas, monospace; - font-size: 1em; -} -h1 { - font-size: 2em; -} -h2 { - font-size: 1.7em; -} -h3 { - font-size: 1.5em; -} -h4 { - font-size: 1.2em; -} -h5 { - font-size: 1.1em; -} -h6 { - font-size: 1.1em; -} -ul { - list-style-type: disc; -} -table tr td dt code { - vertical-align: top; -} -sup { - font-size: .6em; -} -h3 a:link, -h3 a:visited { - text-decoration: none; - color: rgb(153, 153, 153); -} -h3 a:hover, -h3 a:focus { - text-decoration: none; - color: rgb(169, 169, 169); -} -tbody:first-of-type tr:nth-child(odd) { - background: #f3f3f3 -} -tbody:nth-of-type(2) tr:nth-child(even) { - background: #f3f3f3 -} -tbody:first-of-type tr:first-child { - font-size: 1.2em -} -.constantValuesContainer h2 { - margin: 0 0 0 .5882em; -} -.details { - margin: 1em; -} -.clear { - clear: both; - height: 0px; - overflow: hidden; -} -.aboutLanguage { - float: right; - padding: 0px 21px; - font-size: .8em; - z-index: 200; - margin-top: -7px; -} -.legalCopy { - margin-left: .5em; -} -.bar a, -.bar a:link, -.bar a:visited, -.bar a:active { - color: #FFFFFF; - text-decoration: none; -} -.bar a:hover, -.bar a:focus { - color: #bb7a2a; -} -.tab { - background-color: #0066FF; - background-image: url(resources/titlebar.gif); - background-position: left top; - background-repeat: no-repeat; - color: #ffffff; - padding: 8px; - width: 5em; - font-weight: bold; -} -.bar { - display: none; -} -ul.navList, -ul.subNavList { - float: left; - margin: 0 25px 0 0; - padding: 0; -} -ul.navList li { - list-style: none; - float: left; - padding: 3px 6px; -} -ul.subNavList li { - list-style: none; - float: left; - font-size: 90%; -} -.topNav a:link, -.topNav a:active, -.topNav a:visited, -.bottomNav a:link, -.bottomNav a:active, -.bottomNav a:visited { - color: rgb(153, 153, 153); - text-decoration: none; -} -.topNav a:hover, -.bottomNav a:hover { - text-decoration: none; - color: #fff; -} -.navBarCell1Rev { - font-weight: bold; -} -.header, -.footer { - clear: both; - margin: 1em; -} -.indexHeader { - margin: 10px; - position: relative; -} -.indexHeader h1 { - font-size: 1.3em; -} -.subTitle { - display: none; -} -.header ul { - margin: 0 0 25px 0; - padding: 0; -} -.footer ul { - margin: 20px 0 5px 0; -} -.header ul li, -.footer ul li { - list-style: none; - font-size: 1.2em; -} -.header .docSummary ~ p { - display: none; -} -ul.blockList ul.blockList ul.blockList li.blockList h3 { - background-color: rgb(64, 64, 64); - color: #fff; - font-size: 1.2em; - padding: .5em 1em .5em 1em; -} -ul.blockList ul.blockList li.blockList h3 { - display: none; -} -ul.blockList li.blockList h2 { - padding: 0px 0 20px 0; -} -div.summary ul.blockList li.blockList ul.blockList li.blockList ul.blockList code { - display: block; - margin: 1em; -} -div.summary ul.blockList li.blockList ul.blockList li.blockList ul.blockList li.blockList h3 { - display: block; -} -.contentContainer, -.sourceContainer, -.classUseContainer, -.serializedFormContainer, -.constantValuesContainer { - clear: both; - position: relative; -} -.indexContainer { - margin: 10px; - position: relative; - font-size: 1.0em; -} -.indexContainer h2 { - font-size: 1.1em; - padding: 0 0 3px 0; -} -.indexContainer ul { - margin: 0; - padding: 0; -} -.indexContainer ul li { - list-style: none; -} -.contentContainer .description dl dt, -.contentContainer .details dl dt, -.serializedFormContainer dl dt { - font-size: 1.1em; - font-weight: bold; - margin: 10px 0 0 0; - color: #4E4E4E; -} -.contentContainer .description dl dd, -.contentContainer .details dl dd, -.serializedFormContainer dl dd { - margin: 10px 0 10px 20px; -} -.serializedFormContainer dl.nameValue dt { - margin-left: 1px; - font-size: 1.1em; - display: inline; - font-weight: bold; -} -.serializedFormContainer dl.nameValue dd { - margin: 0 0 0 1px; - font-size: 1.1em; - display: inline; -} -ul.horizontal li { - display: inline; - font-size: 0.9em; -} -ul.inheritance { - margin-left: 1em; - padding: 0; -} -ul.inheritance li { - display: inline; - list-style: none; -} -ul.inheritance li ul.inheritance { - margin-left: 15px; - padding-left: 15px; - padding-top: 1px; -} -ul.blockList, -ul.blockListLast { - margin: 1em 0 1em 0; - padding: 0; -} -ul.blockList h4, -ul.blockListLast h4 { - background-color: rgb(64, 64, 64); - color: #fff; - margin: 0 -.8333em 0 -.8333em; - padding: .5em 1em .5em 1em; -} -ul.blockList li.blockList, -ul.blockListLast li.blockList { - list-style: none; - margin-bottom: 25px; -} -ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { - margin-left: 0; - padding-left: 0; - padding-bottom: 15px; - border: none; - border-bottom: 1px solid #9eadc0; -} -ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { - list-style: none; - border-bottom: none; - padding-bottom: 0; -} -table tr td dl, -table tr td dl dt, -table tr td dl dd { - margin-top: 0; - margin-bottom: 1px; -} -.contentContainer table, -.classUseContainer table, -.constantValuesContainer table { - width: 100%; -} -.contentContainer ul li table, -.classUseContainer ul li table, -.constantValuesContainer ul li table { - width: 100%; -} -.contentContainer .description table, -.contentContainer .details table { - border-bottom: none; -} -.contentContainer ul li table th.colOne, -.contentContainer ul li table th.colFirst, -.contentContainer ul li table th.colLast, -.classUseContainer ul li table th, -.constantValuesContainer ul li table th, -.contentContainer ul li table td.colOne, -.contentContainer ul li table td.colFirst, -.contentContainer ul li table td.colLast, -.classUseContainer ul li table td, -.constantValuesContainer ul li table td { - vertical-align: top; -} -a[name="package_description"] ~ * { - display: none; -} -.overviewSummary caption, -.packageSummary caption, -.contentContainer ul.blockList li.blockList caption, -.summary caption, -.classUseContainer caption, -.constantValuesContainer caption { - position: relative; - text-align: left; - background-repeat: no-repeat; - color: #FFFFFF; - font-weight: bold; - clear: none; - overflow: hidden; - padding: 0px; - margin: 0px; -} -caption a:link, -caption a:hover, -caption a:active, -caption a:visited { - color: #FFFFFF; -} -.overviewSummary caption span, -.packageSummary caption span, -.contentContainer ul.blockList li.blockList caption span, -.summary caption span, -.classUseContainer caption span, -.constantValuesContainer caption span { - white-space: nowrap; - padding-top: 8px; - padding-left: 8px; - display: block; - float: left; - background-image: url(resources/titlebar.gif); - height: 18px; -} -.overviewSummary .tabEnd, -.packageSummary .tabEnd, -.contentContainer ul.blockList li.blockList .tabEnd, -.summary .tabEnd, -.classUseContainer .tabEnd, -.constantValuesContainer .tabEnd { - width: 10px; - background-image: url(resources/titlebar_end.gif); - background-repeat: no-repeat; - background-position: top right; - position: relative; - float: left; -} -ul.blockList ul.blockList li.blockList table { - width: 100%; -} -.tableSubHeadingColor { - background-color: #EEEEFF; -} -.rowColor { - background-color: #ffffff; -} -.overviewSummary td, -.packageSummary td, -.contentContainer ul.blockList li.blockList td, -.summary td, -.classUseContainer td, -.constantValuesContainer td { - text-align: left; - padding: .5em 1em .5em 1em; -} -th.colFirst, -th.colLast, -th.colOne, -.constantValuesContainer th { - background: rgb(64, 64, 64); - color: #fff; - text-align: left; - padding: .5em 1em .5em 1em; -} -td.colOne a:link, -td.colOne a:active, -td.colOne a:visited, -td.colOne a:hover, -td.colFirst a:link, -td.colFirst a:active, -td.colFirst a:visited, -td.colFirst a:hover, -td.colLast a:link, -td.colLast a:active, -td.colLast a:visited, -td.colLast a:hover, -.constantValuesContainer td a:link, -.constantValuesContainer td a:active, -.constantValuesContainer td a:visited, -.constantValuesContainer td a:hover { - font-weight: bold; -} -td.colFirst, -th.colFirst { - white-space: nowrap; -} -table.overviewSummary { - padding: 0px; - margin-left: 0px; -} -table.overviewSummary td.colFirst, -table.overviewSummary th.colFirst, -table.overviewSummary td.colOne, -table.overviewSummary th.colOne { - width: 25%; - vertical-align: middle; -} -table.packageSummary td.colFirst, -table.overviewSummary th.colFirst { - width: 25%; - vertical-align: middle; -} -div.description { - margin: 1em; -} -.description pre { - margin-top: 0; -} -.description .block { - margin: 2em 0 2em 0; -} -.deprecatedContent { - margin: 0; - padding: 10px 0; -} -.docSummary { - padding: 0; -} -.sourceLineNo { - color: green; - padding: 0 30px 0 0; -} -h1.hidden { - visibility: hidden; - overflow: hidden; - font-size: .9em; -} -.block { - display: block; - margin: 3px 0 0 0; -} -.strong { - font-weight: bold; -} diff --git a/doc/devices.md b/doc/devices.md deleted file mode 100644 index 9ed133093..000000000 --- a/doc/devices.md +++ /dev/null @@ -1,62 +0,0 @@ -Devices -====== - -Device pinning is a feature that allows enterprise admins to pin their user’s -corporate-managed Box account to a particular mobile device or Box Sync client. - - - - - -- [Get Enterprise Device Pins](#get-enterprise-device-pins) -- [Get Device Pin](#get-device-pin) -- [Delete Device Pin](#delete-device-pin) - - - -Get Enterprise Device Pins --------------------------- - -Calling the static [`getEnterpriceDevicePins(BoxAPIConnection api, String enterpriseID, String... fields)`][get-enterprise-device-pins] -will return an iterable that will page through all of the device pins belongs to -enterprise with given ID. It is possible to specify maximum number of retrieved -items per single response by passing the maxiumum number of records to retrieve to -[`getEnterpriceDevicePins(BoxAPIConnection api, String enterpriseID, int limit, String... fields)`][get-enterprise-device-pins-with-limit] - - -```java -Iterable enterpriseDevicePins = BoxDevicePin.getEnterpriceDevicePins(api, id); -for (BoxDevicePin.Info devicePin : enterpriseDevicePins) { - // Do something with the device pin. -} -``` - -[get-enterprise-device-pins]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxDevicePin.html#getEnterpriceDevicePins-com.box.sdk.BoxAPIConnection-java.lang.String-java.lang.String...- -[get-enterprise-device-pins-with-limit]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxDevicePin.html#getEnterpriceDevicePins-com.box.sdk.BoxAPIConnection-java.lang.String-int-java.lang.String...- - -Get Device Pin --------------- - -Existing collections can be retrieved by calling the [`getInfo(String... fields)`][get-device-pin] method. -Optional parameters can be used to retrieve specific fields of the Device Pin object. - - -```java -BoxDevicePin devicePin = new BoxDevicePin(api, id); -BoxDevicePin.Info devicePinInfo = devicePin.getInfo(); -``` - -[get-device-pin]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxDevicePin.html#getInfo-java.lang.String...- - -Delete Device Pin --------------- - -A device pin can be deleted by calling the [`delete()`][delete] method. - - -```java -BoxDevicePin devicePin = new BoxDevicePin(api, id); -devicePin.delete(); -``` - -[delete]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxDevicePin.html#delete-- diff --git a/doc/events.md b/doc/events.md deleted file mode 100644 index 0bf1f8826..000000000 --- a/doc/events.md +++ /dev/null @@ -1,244 +0,0 @@ -# Events - -The Box API provides an events endpoint that utilizes long-polling to send user -events in real-time. The SDK provides an `EventStream` class that automatically -handles long-polling and deduplicating events. - - - - - -- [User Events](#user-events) - - [Deduplicating Events](#deduplicating-events) -- [Enterprise (Admin) Events](#enterprise-admin-events) - - [Historical Querying](#historical-querying) - - [Live Monitoring](#live-monitoring) - - - -## User Events - -Subscribing to user events works by creating an `EventStream` and attaching -listeners for the events that are fetched in near-real time from the API. - -When the `EventStream` is started, it will begin long-polling on a separate -thread. Events received from the API are then forwarded to any listeners as a -[`BoxEvent`][box-event] object. - -To create an `EventStream` starting from the current point in time, use -the [`EventStream(BoxAPIConnection api)`][event-stream] constructor. To -start from a known stream position, pass the stream position to the -[`EventStream(BoxAPIConnection api, long streamPosition)`][event-stream-position] -constructor. - - -```java -EventStream stream = new EventStream(api); -stream.addListener(new EventListener() { - public void onEvent(BoxEvent event) { - // Handle the event. - } -}); -stream.start(); -``` - -Keep in mind that events are received on a separate thread, so things like UI -operations may need to be explicitly delegated back to the UI thread. - -When you're done listening for events, be sure to call `stream.stop()` to stop -long-polling. - -[event-stream]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/EventStream.html#EventStream-com.box.sdk.BoxAPIConnection- -[event-stream-position]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/EventStream.html#EventStream-com.box.sdk.BoxAPIConnection-long- -[box-event]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxEvent.html - -### Deduplicating Events - -Since the Box API [may send duplicate events](https://developers.box.com/docs/#events), -the `EventStream` will remember the last 512 received events and automatically -ignore them. - -## Enterprise (Admin) Events - -### Historical Querying - -The Box API provides an `EventLog` class and a -`getEnterpriseEvents(BoxAPIConnection api, EnterpriseEventsRequest enterpriseEventsRequest)` method -that reads from the `admin-logs` stream and returns an `Iterable` over -Enterprise [`BoxEvent`][box-event] records. The emphasis for this stream is on completeness over latency, -which means that Box will deliver admin events in chronological order and without duplicates, -but with higher latency. You can specify start and end time/dates. This method -will only work with an API connection for an enterprise admin account or service account with a manage enterprise properties. - - -```java -// get the last two hours of unfiltered enterprise events -Date startDate = new Date(System.currentTimeMillis() - (1000 * 60 * 60 * 2)); -Date endDate = new Date(System.currentTimeMillis()); -EnterpriseEventsRequest request = new EnterpriseEventsRequest() - .after(startDate) - .before(endDate); -EventLog eventLog = EventLog.getEnterpriseEvents(api, request); -for (BoxEvent event : eventLog) { - System.out.println("Enterprise Event Created by User: " - + event.getCreatedBy().getName() - + " Login: " + event.getCreatedBy().getLogin() - + " Event Type: " + event.getEventType() - + " Created at: " + event.getCreatedAt().toString() - ); -}; -``` - -Additionally, you can set a limit of the number of enterprise events to be retrieved per response by specifying the -limit field. - -```java -// get first 20 events -EnterpriseEventsRequest request = new EnterpriseEventsRequest() - .limit(20); -EventLog eventLog = EventLog.getEnterpriseEvents(api, request); -for (BoxEvent event : eventLog) { - System.out.println("Enterprise Event Created by User: " - + event.getCreatedBy().getName() - + " Login: " + event.getCreatedBy().getLogin() - + " Event Type: " + event.getEventType() - + " Created at: " + event.getCreatedAt().toString() - ); -}; -``` - - -You can also filter events by type. -```java -// filter events by type -EnterpriseEventsRequest request = new EnterpriseEventsRequest() - .types(EventType.ITEM_CREATE, EventType.ITEM_OPEN); -EventLog eventLog = EventLog.getEnterpriseEvents(api, request); -for (BoxEvent event : eventLog){ - System.out.println("Enterprise Event Created by User: " - + event.getCreatedBy().getName() - + " Login: " + event.getCreatedBy().getLogin() - + " Event Type: " + event.getEventType() - + " Created at: " + event.getCreatedAt().toString() - ); -}; -``` - -You can also filter events by type name. This is usefull if a new event type is introduced and is not mapped to -`BoxEvent.EventType`. -```java -// filter events by type name -EnterpriseEventsRequest request = new EnterpriseEventsRequest() - .typeNames("ITEM_CREATE", "ITEM_OPEN"); -EventLog eventLog = EventLog.getEnterpriseEvents(api, request); -for (BoxEvent event : eventLog){ - System.out.println("Enterprise Event Created by User: " - + event.getCreatedBy().getName() - + " Login: " + event.getCreatedBy().getLogin() - + " Event Type: " + event.getEventType() - + " Event Type Name: " + event.getTypeName() - + " Created at: " + event.getCreatedAt().toString() - ); -}; -``` - -Bear in mind that if an event type is not mapped to `BoxEvent.EventType` the value of `BoxEvent#getEventType()` will -be `BoxEvent.EventType.UNKNOWN` but `BoxEvent#getTypeName()` will return its name. - -If you want to progress within a stream you can use position parameter: -```java -EnterpriseEventsRequest request1 = new EnterpriseEventsRequest().limit(20); -EventLog eventLog1 = EventLog.getEnterpriseEvents(api, request1); -// process revieved events -EnterpriseEventsRequest request2 = new EnterpriseEventsRequest().limit(20) - .position(eventLog1.getNextStreamPosition()); // get events from the next position -EventLog eventLog2 = EventLog.getEnterpriseEvents(api, request2); -// process revieved events -``` - -### Live Monitoring -To monitor recent events that have been generated within Box across the enterprise use -`EventLog#getEnterpriseEventsStream(BoxAPIConnection api, EnterpriseEventsStreamRequest enterpriseEventsStreamRequest)`, -method that reads from the `admin-logs-streaming` stream and returns an `Iterable` over -Enterprise [`BoxEvent`][box-event] records. -The emphasis for this feed is on low latency rather than chronological accuracy, which means that Box may return -events more than once and out of chronological order. Events are returned via the API around 12 seconds after they -are processed by Box (the 12 seconds buffer ensures that new events are not written after your cursor position). -Only two weeks of events are available via this feed, and you cannot set start and end time/dates. This method -will only work with an API connection for an enterprise admin account or service account with a manage enterprise properties. - - -```java -EnterpriseEventsStreamRequest request = new EnterpriseEventsStreamRequest() -EventLog eventLog = EventLog.getEnterpriseEventsStream(api, request); -for (BoxEvent event : eventLog) { - System.out.println("Enterprise Event Created by User: " - + event.getCreatedBy().getName() - + " Login: " + event.getCreatedBy().getLogin() - + " Event Type: " + event.getEventType() - + " Created at: " + event.getCreatedAt().toString() - ); -}; -``` - -You can limit number of events returned. -```java -// get first 20 events -EnterpriseEventsStreamRequest request = new EnterpriseEventsStreamRequest() - .limit(20) -EventLog eventLog = EventLog.getEnterpriseEventsStream(api, request); -``` - - -You can also filter events by type. -```java -// filter events by type -EnterpriseEventsStreamRequest request = new EnterpriseEventsStreamRequest() - .types(EventType.ITEM_CREATE, EventType.ITEM_OPEN); -EventLog eventLog = EventLog.getEnterpriseEventsStream(api, request); -for (BoxEvent event : eventLog){ - System.out.println("Enterprise Event Created by User: " - + event.getCreatedBy().getName() - + " Login: " + event.getCreatedBy().getLogin() - + " Event Type: " + event.getEventType() - + " Created at: " + event.getCreatedAt().toString() - ); -}; -``` - -You can also filter events by type name. This is usefull if a new event type is introduced and is not mapped to -`BoxEvent.EventType`. -```java -// filter events by type name -EnterpriseEventsRequest request = new EnterpriseEventsStreamRequest() - .typeNames("ITEM_CREATE", "ITEM_OPEN"); -EventLog eventLog = EventLog.getEnterpriseEventsStream(api, request); -for (BoxEvent event : eventLog){ - System.out.println("Enterprise Event Created by User: " - + event.getCreatedBy().getName() - + " Login: " + event.getCreatedBy().getLogin() - + " Event Type: " + event.getEventType() - + " Event Type Name: " + event.getTypeName() - + " Created at: " + event.getCreatedAt().toString() - ); -}; -``` - -Bear in mind that if an event type is not mapped to `BoxEvent.EventType` the value of `BoxEvent#getEventType()` will -be `BoxEvent.EventType.UNKNOWN` but `BoxEvent#getTypeName()` will return its name. - -If you want to progress within a stream you can use position parameter: -```java -EnterpriseEventsStreamRequest request1 = new EnterpriseEventsStreamRequest().limit(20); -EventLog eventLog1 = EventLog.getEnterpriseEventsStream(api, request1); -// process revieved events -EnterpriseEventsStreamRequest request2 = new EnterpriseEventsStreamRequest().limit(20) - .position(eventLog1.getNextStreamPosition()); // get events from the next position -EventLog eventLog2 = EventLog.getEnterpriseEventsStream(api, request2); -// process revieved events -``` - -If you have the next stream position, and make a subsequent call, the API will return immediately -even when there are no events, the next stream position will be returned. -If you have a stream position that is older than two weeks than API will return no events and next -stream position. diff --git a/doc/file_requests.md b/doc/file_requests.md deleted file mode 100644 index ca6021f4d..000000000 --- a/doc/file_requests.md +++ /dev/null @@ -1,77 +0,0 @@ -File Requests -============= - -File request objects represent a file request associated with a folder. - - - - -- [Get a File Request's Information](#get-a-file-requests-information) -- [Copy a File Request's Information](#copy-a-file-requests-information) -- [Update a File Request's Information](#update-a-file-requests-information) -- [Delete a File Request](#delete-a-file-request) - - - -Get a File Request's Information ------------------------- - -Calling [`getInfo()`][get-info] returns information on a file request. - - -```java -BoxFileRequest fileRequest = new BoxFileRequest(api, "id"); -BoxFileRequest.Info fileRequestInfo = fileRequest.getInfo(); -``` - -[get-info]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFileRequest.html#getInfo - -Copy a File Request's Information ---------------------------- - -Calling [`copyInfo(String folderId)`][copy-info] copies an existing file request that is already present -on one folder, and applies it to another folder. If you want to set certain fields of the newly copied file request when it is created, -set those fields in the `BoxFileRequest.Info` that you pass into this method [`copyInfo(BoxFileRequest.Info info, String folderId)`][copy-info]. - - -```java -BoxFileRequest fileRequest = new BoxFileRequest(api, "id"); -BoxFileRequest.Info fileRequestInfo = fileRequest.new Info(); -fileRequestInfo.setDescription("Following documents are requested for your process"); -fileRequestInfo.setIsDescriptionRequired(true); -fileRequestInfo.setStatus(BoxFileRequest.Status.ACTIVE); -fileRequestInfo = fileRequest.copyInfo(fileRequestInfo, "folderId"); -``` - -[copy-info]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTask.html#copyInfo - -Update a File Request's Information ---------------------------- - -Calling [`updateInfo(BoxFileRequest.Info info)`][update-info] updates a file request. This can be used to activate -or deactivate a file request. - - -```java -BoxFileRequest fileRequest = new BoxFileRequest(api, "id"); -BoxFileRequest.Info fileRequestInfo = fileRequest.new Info(); -fileRequestInfo.setDescription("Following documents are requested for your process"); -fileRequestInfo.setIsDescriptionRequired(true); -fileRequestInfo.setStatus(BoxFileRequest.Status.ACTIVE); -fileRequestInfo = fileRequest.updateInfo(fileRequestInfo); -``` - -[update-info]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFileRequest.html#updateInfo - -Delete a File Request -------------- - -Calling [`delete()`][delete] deletes a file request permanently. - - -```java -BoxFileRequest fileRequest = new BoxFileRequest(api, "id"); -fileRequest.delete(); -``` - -[delete]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxFileRequest.html#delete diff --git a/doc/files.md b/doc/files.md deleted file mode 100644 index f275b256c..000000000 --- a/doc/files.md +++ /dev/null @@ -1,1135 +0,0 @@ -Files -===== - -File objects represent individual files in Box. They can be used to download a -file's contents, upload new versions, and perform other common file operations -(move, copy, delete, etc.). - - - - -- [Get a File's Information](#get-a-files-information) -- [Update a File's Information](#update-a-files-information) -- [Download a File](#download-a-file) -- [Upload a File](#upload-a-file) -- [Upload Preflight Check](#upload-preflight-check) -- [Upload a Large File in Chunks](#upload-a-large-file-in-chunks) -- [Upload a Large File in Chunks Including Attributes](#upload-a-large-file-in-chunks-including-attributes) -- [Upload a Large File Version in Chunks](#upload-a-large-file-version-in-chunks) -- [Upload a Large File Version in Chunks Including Attributes](#upload-a-large-file-version-in-chunks-including-attributes) -- [Upload a Large File Or File Version Manually](#upload-a-large-file-or-file-version-manually) -- [Move a File](#move-a-file) -- [Copy a File](#copy-a-file) -- [Delete a File](#delete-a-file) -- [Get Previous Versions of a File](#get-previous-versions-of-a-file) -- [Upload a New Version of a File](#upload-a-new-version-of-a-file) -- [Download a Previous Version of a File](#download-a-previous-version-of-a-file) -- [Promote a Previous Version of a File](#promote-a-previous-version-of-a-file) -- [Delete a Previous Version of a File](#delete-a-previous-version-of-a-file) -- [Lock a File](#lock-a-file) -- [Unlock a File](#unlock-a-file) -- [Find File for Shared Link](#find-file-for-shared-link) -- [Download File for Shared Link](#download-file-for-shared-link) -- [Create a Shared Link](#create-a-shared-link) -- [Get a Shared Link](#get-a-shared-link) -- [Update a Shared Link](#update-a-shared-link) -- [Remove a Shared Link](#remove-a-shared-link) -- [Add a Collaborator](#add-a-collaborator) -- [Get an Embed Link](#get-an-embed-link) -- [Create Metadata](#create-metadata) -- [Set Metadata](#set-metadata) -- [Get Metadata](#get-metadata) -- [Update Metadata](#update-metadata) -- [Delete Metadata](#delete-metadata) -- [Get All Metadata on File](#get-all-metadata-on-file) -- [Set Classification on File](#set-classification-on-file) -- [Get Classification on File](#get-classification-on-file) -- [Remove Classification on File](#remove-classification-on-file) -- [Get File Representations](#get-file-representations) -- [Get Representation Content](#get-representation-content) - - - -Get a File's Information ------------------------- - -Calling [`getInfo()`][get-info] on a file returns a snapshot of the file's info. - - -```java -BoxFile file = new BoxFile(api, "id"); -BoxFile.Info info = file.getInfo(); -``` - -Requesting information for only the fields you need with -[`getInfo(String... fields)`][get-info] -can improve performance and reduce the size of the network request. - -```java -BoxFile file = new BoxFile(api, "id"); -// Only get information about a few specific fields. -BoxFile.Info info = file.getInfo("size", "owned_by"); -``` - -[get-info]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#getInfo-java.lang.String...- - -Update a File's Information ---------------------------- - -Updating a file's information is done by creating a new [`BoxFile.Info`][box-file-info] -object or updating an existing one, and then calling -[`updateInfo(BoxFile.Info fieldsToUpdate)`][update-info]. - - -```java -BoxFile file = new BoxFile(api, "id"); -BoxFile.Info info = file.new Info(); -info.setName("New Name"); -file.updateInfo(info); -``` - -[box-file-info]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.Info.html -[update-info]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#updateInfo-com.box.sdk.BoxFile.Info- - -Download a File ---------------- - -A file can be downloaded by calling [`download(OutputStream stream)`][download] -and providing an `OutputStream` where the file's contents will be written. - - -```java -BoxFile file = new BoxFile(api, "id"); -BoxFile.Info info = file.getInfo(); - -FileOutputStream stream = new FileOutputStream(info.getName()); -file.download(stream); -stream.close(); -``` - -Download progress can be tracked by providing a [`ProgressListener`][progress] -to [`download(OutputStream stream, ProgressListener progress)`][download2]. -The `ProgressListener` will then receive progress updates as the download -completes. - -```java -BoxFile file = new BoxFile(api, "id"); -BoxFile.Info info = file.getInfo(); - -FileOutputStream stream = new FileOutputStream(info.getName()); -// Provide a ProgressListener to monitor the progress of the download. -file.download(stream, new ProgressListener() { - public void onProgressChanged(long numBytes, long totalBytes) { - double percentComplete = numBytes / totalBytes; - } -}); -stream.close(); -``` - -[download]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#download-java.io.OutputStream- -[download2]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#download-java.io.OutputStream-com.box.sdk.ProgressListener- -[progress]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/ProgressListener.html - -Upload a File -------------- - -Files are uploaded to a folder by calling the -[`uploadFile(InputStream fileContents, String fileName)`][upload] method -on the [`BoxFolder`][box-folder] you want to upload the file into. - - -```java -BoxFolder rootFolder = BoxFolder.getRootFolder(api); -FileInputStream stream = new FileInputStream("My File.txt"); -BoxFile.Info newFileInfo = rootFolder.uploadFile(stream, "My File.txt"); -stream.close(); -``` - -Note that using `FileInputStream` allows you to read the content of the file only once. -If the first upload attempt fails, the stream will become exhausted, -and request retry with no content might be performed. To retry an upload, you would have to -create a new `FileInputStream` and call `uploadFile()` method again. - -If you want the SDK to automatically retry the upload in case of any error, you need to provide an -`InputStream` class that supports the `reset()` operation. For example, you can read all bytes from your file into -a `ByteArrayInputStream` and then use it for the upload method. Be aware that this approach will load the whole file -into memory, so it is not recommended for large files, as it can exhaust easily your memory. - -```java -BoxFolder rootFolder = BoxFolder.getRootFolder(api); -InputStream stream = new ByteArrayInputStream(Files.readAllBytes(new File(path).toPath())); -BoxFile.Info newFileInfo = rootFolder.uploadFile(stream, "My File.txt"); -stream.close(); -``` - -Upload progress can be tracked by providing the size of the file and a -[`ProgressListener`][progress] to -[`uploadFile(InputStream fileContents, String fileName, long fileSize, ProgressListener progress)`][upload2]. -The `ProgressListener` will then receive progress updates as the upload completes. - -```java -BoxFolder rootFolder = BoxFolder.getRootFolder(api); -FileInputStream stream = new FileInputStream("My File.txt"); -BoxFile.Info newFileInfo = rootFolder.uploadFile(stream, "My File.txt", 1024, new ProgressListener() { - public void onProgressChanged(long numBytes, long totalBytes) { - double percentComplete = numBytes / totalBytes; - } -}); -stream.close(); -``` - -We also support the ability to attach a description of the file upon upload by calling the -[`uploadFile(InputStream fileContents, String fileName, String fileDescription)`][upload3] method. - -```java -BoxFolder rootFolder = BoxFolder.getRootFolder(api); -FileInputStream stream = new FileInputStream("My File.txt"); -BoxFile.Info newFileInfo = rootFolder.uploadFile(stream, "My File.txt", "File Description"); -stream.close(); -``` - -[upload]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#uploadFile-java.io.InputStream-java.lang.String- -[upload2]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#uploadFile-java.io.InputStream-java.lang.String-long-com.box.sdk.ProgressListener- -[upload3]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#uploadFile-java.io.InputStream-java.lang.String-java.lang.String- -[box-folder]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html - -Upload Preflight Check ----------------------- - -You may want to check if a file can be successfully uploaded before beginning -the file transfer, in order to the time and bandwidth of sending the file over -the network if the upload would not have succeeded. Calling the -[`BoxFolder#canUpload(String fileName, long fileSize)`][upload-preflight] method -on the folder you want to upload a new file into will verify that there is no -name conflict and that the account has enough storage space for the file. - - -```java -String fileName = "My Doc.pdf"; -BoxFolder rootFolder = BoxFolder.getRootFolder(api); -try { - folder.canUpload(fileName, 98734576); - - // If the file upload would not have succeeded, it will not be attempted - folder.uploadFile(fileContents, fileName); -} catch (BoxAPIException ex) ( - -) -``` - -[upload-preflight]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#canUpload-java.lang.String-long- - -Upload a Large File in Chunks ------------------------------ - -A large file can be uploaded with the -[`uploadLargeFile(InputStream fileContents, String fileName, long fileSize)`][upload-large-file] -method on the folder to upload the new file into. This will upload the file in -parts with integrity checks on each part, to ensure that network errors -mid-upload do not fail the entire operation. - - -```java -File myFile = new File("My Large_File.txt"); -FileInputStream stream = new FileInputStream(myFile); - -BoxFolder rootFolder = BoxFolder.getRootFolder(api); -BoxFile.Info fileInfo = rootFolder.uploadLargeFile(inputStream, "My_Large_File.txt", myFile.length()); -``` - -[upload-large-file]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#uploadLargeFile-java.io.InputStream-java.lang.String-long- - -Upload a Large File in Chunks Including Attributes --------------------------------------------------- - -A large file can be uploaded, including attributes, with the -[`uploadLargeFile(InputStream fileContents, String fileName, long fileSize, Map fileAttributes)`][upload-large-file-including-attributes] -method on the folder to upload the new file into. This will upload the file in -parts with integrity checks on each part, to ensure that network errors -mid-upload do not fail the entire operation. - -```java -File myFile = new File("My Large_File.txt"); -FileInputStream stream = new FileInputStream(myFile); -Map fileAttributes = new HashMap(); -fileAttributes.put("content_modified_at", "2017-04-08T00:58:08Z"); - -BoxFolder rootFolder = BoxFolder.getRootFolder(api); -BoxFile.Info fileInfo = rootFolder.uploadLargeFile(inputStream, "My_Large_File.txt", myFile.length(), fileAttributes); -``` - -[upload-large-file-including-attributes]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#uploadLargeFile-java.io.InputStream-java.lang.String-long-java.util.Map- - -Upload a Large File Version in Chunks -------------------------------------- - -To upload a new file version for a large file, call the -[`uploadLargeFile(InputStream fileContents, long fileSize)`][upload-large-file-version] -method on the file to be updated. This will upload the new version of the file -in parts with integrity checks on each part, to ensure that network errors -mid-upload do not fail the entire operation. - - -```java -File myFile = new File("My Large_File.txt"); -FileInputStream stream = new FileInputStream(myFile); - -String fileID = "12345"; -BoxFile file = new BoxFile(api, fileID); -BoxFile.Info fileInfo = file.uploadLargeFile(inputStream, myFile.length()); -``` - -[upload-large-file-version]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#uploadLargeFile-java.io.InputStream-long- - -Upload a Large File Version in Chunks Including Attributes ----------------------------------------------------------- - -To upload a new file version for a large file, including attributes, call the -[`uploadLargeFile(InputStream fileContents, long fileSize, Map fileAttributes)`][upload-large-file-version-including-attributes] -method on the file to be updated. This will upload the new version of the file -in parts with integrity checks on each part, to ensure that network errors -mid-upload do not fail the entire operation. - -```java -File myFile = new File("My Large_File.txt"); -FileInputStream stream = new FileInputStream(myFile); -Map fileAttributes = new HashMap(); -fileAttributes.put("content_modified_at", "2017-04-08T00:58:08Z"); - -String fileID = "12345"; -BoxFile file = new BoxFile(api, fileID); -BoxFile.Info fileInfo = file.uploadLargeFile(inputStream, myFile.length(), fileAttributes); -``` - -[upload-large-file-version-including-attributes]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#uploadLargeFile-java.io.InputStream-long-java.util.Map- - -Upload a Large File Or File Version Manually --------------------------------------------- - -To start the process of uploading a large file or file version, first create a -new upload session with -[`BoxFolder#createUploadSession(String fileName, String fileSize)`][create-upload-session] -for a new file, or -[`BoxFile#createUploadSession(long fileSize)`][create-upload-session-version] -for a new file version. Once the upload session is created, all other steps -are identical for both cases. - - -```java -BoxFileUploadSession.Info sessionInfo; -if (/* uploading a new file */) { - // Create the upload session for a new file - BoxFolder rootFolder = BoxFolder.getRootFolder(api); - sessionInfo = rootFolder.createUploadSession("New Large File.pdf", fileSize); -} else if (/* uploading a new version of an exiting file */) { - // Create the uplaod session for a new version of an existing file - String fileID = "93465"; - BoxFile file = new BoxFile(api, fileID); - sessionInfo = file.createUploadSession(fileSize); -} - -//Get the session resource from the session info -BoxFileUploadSession session = sessionInfo.getResource(); - -//Create the Message Digest for the whole file -MessageDigest digest = null; -try { - digest = MessageDigest.getInstance("SHA1"); -} catch (NoSuchAlgorithmException ae) { - throw new BoxAPIException("Digest algorithm not found", ae); -} -``` - -Both of these methods will return a - -Once the upload session is created, the large file can be uploaded in chunks with the -[`uploadPart(InputStream stream, long offset, int partSize, long totalSizeOfFile)`][upload-part] -method of the session instance. If there is a failure in uploading any of the -parts, the failed part can be uploaded again without affecting the other parts. - - -```java -//Reading a large file -FileInputStream fis = new FileInputStream("My_Large_File.txt"); -//Create the digest input stream to calculate the digest for the whole file. -DigestInputStream dis = new DigestInputStream(fis, digest); - -List parts = new ArrayList(); - -//Get the part size. Each uploaded part should match the part size returned as part of the upload session. -//The last part of the file can be less than part size if the remaining bytes of the last part is less than -//the given part size -long partSize = sessionInfo.getPartSize(); -//Start byte of the part -long offset = 0; -//Overall of bytes processed so far -long processed = 0; -while (processed < fileSize) { - long diff = fileSize - processed; - //The size last part of the file can be less than the part size. - if (diff < partSize) { - partSize = diff; - } - - //Upload a part. It can be uploaded asynchorously - BoxFileUploadSessionPart part = session.uploadPart(dis, offset, (int)partSize, fileSize); - parts.add(part); - - //Increase the offset and proceesed bytes to calculate the Content-Range header. - processed += partSize; - offset += partSize; -} -``` - -At any point in time, the list of parts that have been uploaded successfully can be retrieved with the -[`listParts(int offset, int limit)`][list-parts] method of the session instance. - - -```java -//The following snippet retrives first 1000 parts that are uploaded. -BoxFileUploadSessionPartList partList = session.listParts(0, 1000); -List parts = partList.getEntries(); -``` - -Once all the parts are uploaded successfully, the upload session can be committed with the -[`commit(String digest, List parts, Map attributes, String ifMatch, String ifNoneMatch)`][upload-session-commit] method. - - -```java -//Creates the file hash -byte[] digestBytes = digest.digest(); -//Base64 encoding of the hash -String digestStr = Base64.encode(digestBytes); - -//Commit the upload session. If there is a failure, abort the commit. -BoxFile.Info fileInfo = session.commit(digestStr, parts, null, null, null); -``` - -The upload session can be aborted at any time with the -[`abort()`][upload-session-abort] method of the session instance. This will -cancel the upload and any parts that were already uploaded will be lost. - - -```java -session.abort(); -``` - -The upload session status can be retrieved at any time with the [`getStatus()`][upload-session-status] method. -This call will update the parts processed and other information in the session info instance. - - -```java -BoxFileUploadSession.Info updatedSessionInfo = session.getStatus(); -``` - -[create-upload-session]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#createUploadSession-java.lang.String-long- -[create-upload-session-version]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#createUploadSession-long- -[upload-part]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFileUploadSession.html#uploadPart-java.io.InputStream-long-int-long- -[list-parts]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFileUploadSession.html#listParts-int-int- -[upload-session-commit]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFileUploadSession.html#commit-java.lang.String-java.util.List-java.util.Map-java.lang.String-java.lang.String- -[upload-session-abort]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFileUploadSession.html#abort-- -[upload-session-status]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFileUploadSession.html#getStatus-- - -Move a File ------------ - -To move a file from one folder into another, call -[`move(BoxFolder destination)`][move] on the file to be moved with the -destination folder. - -```java -String fileID = "1234"; -String destinationFolderID = "5678"; -BoxFile file = new BoxFile(api, fileID); -BoxFolder destinationFolder = new BoxFolder(destinationFolderID); -file.move(destinationFolder) -``` - -To avoid name conflicts in the destination folder, you can optionally provide a -new name for the file to [`move(BoxFolder destination, String newName)`][move-rename]. The file -will be placed into the destination folder with the new name. - -```java -String fileID = "1234"; -String destinationFolderID = "5678"; -BoxFile file = new BoxFile(api, fileID); -BoxFolder destinationFolder = new BoxFolder(destinationFolderID); -file.move(destinationFolder, "Vacation Photo (1).jpg"); -``` - -[move]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#move-com.box.sdk.BoxFolder- -[move-rename]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#move-com.box.sdk.BoxFolder-java.lang.String- - -Copy a File ------------ - -A file can be copied to a new folder and optionally be renamed with the -[`copy(BoxFolder destination)`][copy] and -[`copy(BoxFolder destination, String newName)`][copy2] methods. - - -```java -// Copy a file into the user's root folder -BoxFolder rootFolder = BoxFolder.getRootFolder(api); -BoxFile file = new BoxFile(api, "id"); -BoxFile.Info copiedFileInfo = file.copy(rootFolder, "New Name"); -``` - -[copy]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#copy-com.box.sdk.BoxFolder- -[copy2]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#copy-com.box.sdk.BoxFolder-java.lang.String- - -Delete a File -------------- - -Calling the [`delete()`][delete] method will move the file to the user's trash. - - -```java -BoxFile file = new BoxFile(api, "id"); -file.delete(); -``` - -[delete]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#delete-- - -Get Previous Versions of a File -------------------------------- - -For users with premium accounts, versions of a file can be retrieved with the -[`getVersions()`][get-versions] method. By default, it will return up to 1000 file versions with all default fields set. - - -```java -BoxFile file = new BoxFile(api, "id"); -Collection versions = file.getVersions(); -for (BoxFileVersion version : versions) { - System.out.format("SHA1 of \"%s\": %s\n", file.getInfo().getName(), version.getSha1()); -} -``` - -File versions can be retrieved with specified starting position with the -[`getVersionsRange(long offset, long limit)`][get-versions-range] method. -You can use the `limit` and `offset` parameters to page through the all available file versions. - -```java -BoxFile file = new BoxFile(api, "id"); -Collection versions = file.getVersionsRange(1000, 2000); -for (BoxFileVersion version : versions) { - System.out.format("SHA1 of \"%s\": %s\n", file.getInfo().getName(), version.getSha1()); -} -``` - -You can specify selected fields to be returned while getting versions information. -Assume we want to get version SHA1 and version number: -```java -BoxFile file = new BoxFile(api, "id"); -Collection versions = file.getVersions("sha1", "version_number"); -for (BoxFileVersion version : versions) { - System.out.format("SHA1 of \"%d\": %s\n", version.getVersionNumber(), version.getSha1()); -} -``` -You can find a list of available fields at [`BoxFile.ALL_VERSION_FIELDS`][versions-fields]. - -[get-versions]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#getVersions-- -[versions-fields]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#ALL_VERSION_FIELDS-- - -Upload a New Version of a File ------------------------------- - -New versions of a file can be uploaded with the -[`uploadNewVersion(InputStream fileContents)`][upload-new-version] -method. - - -```java -BoxFile file = new BoxFile(api, "id"); -FileInputStream stream = new FileInputStream("My File.txt"); -file.uploadNewVersion(stream); -``` - -[upload-new-version]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#uploadNewVersion-java.io.InputStream- - -Download a Previous Version of a File -------------------------------------- - -For users with premium accounts, previous versions of a file can be downloaded -by calling [`download(OutputStream output)`][download-version]. - - -```java -BoxFile file = new BoxFile(api, "id"); -Collection versions = file.getVersions(); -BoxFileVersion firstVersion = versions.iterator().next(); - -FileOutputStream stream = new FileOutputStream(firstVersion.getName()); -firstVersion.download(stream); -stream.close(); -``` - -[download-version]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFileVersion.html#download-java.io.OutputStream- - -Promote a Previous Version of a File ------------------------------------- - -A previous version of a file can be promoted with the [`promote()`][promote] -method to become the current version of the file. - - -```java -BoxFile file = new BoxFile(api, "id"); -Collection versions = file.getVersions(); -BoxFileVersion firstVersion = versions.iterator().next(); -firstVersion.promote(); -``` - -[promote]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFileVersion.html#promote-- - -Delete a Previous Version of a File ------------------------------------ - -A version of a file can be deleted and moved to the trash by calling -[`delete()`][delete-version]. - - -```java -BoxFile file = new BoxFile(api, "id"); -Collection versions = file.getVersions(); -BoxFileVersion firstVersion = versions.iterator().next(); -firstVersion.delete(); -``` - -[delete-version]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFileVersion.html#delete-- - -Lock a File ------------ - -A file can be locked indefinitely by calling [`lock()`][lock] on the file to -be locked. A locked file cannot be modified by any other user until it is -unlocked. This is useful if you want to "check out" a file while you're working -on it, to ensure that other collaborators do not make changes while your changes -are in progress. - -```java -BoxFile file = new BoxFile(api, "id"); -file.lock(); -``` - -When locking a file, you can optionally prevent other users from downloading the -file in addition to prevent changes by calling -[`lock(boolean preventDownload)`][lock-download] with `true`. - -```java -// Lock the file and prevent downloading -BoxFile file = new BoxFile(api, "id"); -file.lock(true); -``` - -You can also set a date when the lock will automatically be released by -calling [`lock(Date expirationDate)`][lock-expires] with the date on -which the lock should expire. This is recommended to prevent a file -from accidentally being locked longer than intended. - -```java -final long ONE_WEEK_MILLIS = 1000 * 60 * 60 * 24 * 7; -long expirationTimestamp = System.currentTimeMillis() + ONE_WEEK_MILLIS; -Date expirationTime = new Date(expirationTimestamp); -BoxFile file = new BoxFile(api, "id"); -file.lock(expirationTime); -``` - -Both options can be passed together to -[`lock(boolean preventDownload, Date expireTime)`][lock-both]. - -[lock]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#lock-java.util.Date- -[lock-download]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#lock-boolean- -[lock-expires]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#lock-java.util.Date- -[lock-both]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#lock-java.util.Date-boolean- - -Unlock a File -------------- - -A file can be unlocked by calling [`unlock()`][unlock]. - -```java -BoxFile file = new BoxFile(api, "id"); -file.unlock(); -``` - -[unlock]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#unlock-- - -Find File for Shared Link -------------------------- - -To get the file information for a shared link, you can call -[`BoxItem.getSharedItem(BoxAPIConnection api, String sharedLink)`][get-shared-item] -with the shared link to get information about the file behind it. - -```java -String sharedLink = "https://app.box.com/s/abcdefghijklmnopqrstuvwxyz123456"; -BoxItem.Info itemInfo = BoxItem.getSharedItem(api, sharedLink); -``` - -If the shared link is password-protected, call -[`BoxItem.getSharedItem(BoxAPIConnection api, String sharedLink, String password)`][get-shared-item-password] -with the shared link and password. - - -```java -String sharedLink = "https://app.box.com/s/abcdefghijklmnopqrstuvwxyz123456"; -String password = "letmein"; -BoxItem.Info itemInfo = BoxItem.getSharedItem(api, sharedLink, password); -``` - -[get-shared-item]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxItem.html#getSharedItem-com.box.sdk.BoxAPIConnection-java.lang.String- -[get-shared-item-password]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxItem.html#getSharedItem-com.box.sdk.BoxAPIConnection-java.lang.String-java.lang.String- - -Download File from Shared Link ---------------- - -A file can be downloaded via a shared link -by calling [`downloadFromSharedLink(BoxAPIConnection api, OutputStream output, String sharedLink)`][download-from-shared-link] -and providing an `OutputStream` where the file's contents will be written and shared link of the file. - -If the shared link is password-protected, call -[`downloadFromSharedLink(BoxAPIConnection api, OutputStream output, String sharedLink, String password)`][download-from-shared-link-password] -method. - -```java -FileOutputStream stream = new FileOutputStream("My File.txt"); -String sharedLink = "https://cloud.box.com/s/12339wbq4c7y2xd3drg4j9j9wer3ptt6n"; -String password = "Secret123@"; -BoxFile.downloadFromSharedLink(api, stream, sharedLink, password); -stream.close(); -``` - -Download progress can be tracked by providing a [`ProgressListener`][progress] -to [` downloadFromSharedLink(BoxAPIConnection api, OutputStream output, String sharedLink, String password, ProgressListener listener)`][download-from-shared-link-password-progress]. -The `ProgressListener` will then receive progress updates as the download -completes. - -```java -FileOutputStream stream = new FileOutputStream("My File.txt"); -// Provide a ProgressListener to monitor the progress of the download. -BoxFile.downloadFromSharedLink(api, stream, sharedLink, password, new ProgressListener() { - public void onProgressChanged(long numBytes, long totalBytes) { - double percentComplete = numBytes / totalBytes; - } -}); -stream.close(); -``` -[download-from-shared-link]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#downloadFromSharedLink-com.box.sdk.BoxAPIConnection-java.io.OutputStream-java.lang.String- -[download-from-shared-link-password]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#downloadFromSharedLink-com.box.sdk.BoxAPIConnection-java.io.OutputStream-java.lang.String-java.lang.String- -[download-from-shared-link-password-progress]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#downloadFromSharedLink-com.box.sdk.BoxAPIConnection-java.io.OutputStream-java.lang.String-java.lang.String-com.box.sdk.ProgressListener- - -Create a Shared Link --------------------- - -A shared link for a file can be generated by calling -[`createSharedLink(BoxSharedLinkRequest sharedLinkRequest)`][create-shared-link]. - - -```java -// Optionally we can calculate and set the date when shared link will automatically be disabled -final long ONE_WEEK_MILLIS = 1000 * 60 * 60 * 24 * 7; -long unsharedTimestamp = System.currentTimeMillis() + ONE_WEEK_MILLIS; -Date unsharedDate = new Date(unsharedTimestamp); - -BoxFile file = new BoxFile(api, "id"); -BoxSharedLinkRequest sharedLinkRequest = new BoxSharedLinkRequest() - .access(OPEN) - .permissions(true, true) - .unsharedDate(unsharedDate); -BoxSharedLink sharedLink = file.createSharedLink(sharedLinkRequest); -``` - -A set of shared link access level constants are available through the SDK for convenience: -* `BoxSharedLink.Access.OPEN` -* `BoxSharedLink.Access.COLLABORATORS` -* `BoxSharedLink.Access.COMPANY` -* `BoxSharedLink.Access.DEFAULT` - -[create-shared-link]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#createSharedLink-com.box.sdk.sharedlink.BoxSharedLinkRequest- - -Get a Shared Link ------------------ - -Retrieve the shared link for a file by calling -[`getSharedLink()`][get-shared-link]. - - -```java -BoxFile file = new BoxFile(api, "id"); -BoxFile.Info info = file.getInfo(); -BoxSharedLink link = info.getSharedLink(); -String url = link.getUrl(); -``` - -[get-shared-link]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxItem.Info.html#getSharedLink-- - -Update a Shared Link --------------------- - -A shared link for a file can be updated by calling the same method as used when creating a shared link, -[`createSharedLink(BoxSharedLinkRequest sharedLinkRequest)`][create-shared-link]. - - -```java -BoxFile file = new BoxFile(api, "id"); -BoxSharedLinkRequest sharedLinkRequest = new BoxSharedLinkRequest() - .access(OPEN) - .permissions(true, true); -BoxSharedLink sharedLink = file.createSharedLink(sharedLinkRequest); -``` - -Remove a Shared Link --------------------- - -A shared link for a file can be removed by calling [`removeSharedLink()`][remove-shared-link]. - - -```java -BoxFile file = new BoxFile(api, "12345"); -BoxFile.Info info = file.getInfo(); -info.removeSharedLink(); -file.updateInfo(info); -``` - -[remove-shared-link]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#removeSharedLink-- - -Add a Collaborator ------------------- - -You can invite another person to collaborate on a file by email with -[`collaborate(String emailAddress, BoxCollaboration.Role role, Boolean notify, Boolean canViewPath, Date expiresAt, Boolean isAccessOnly)`][share-a-file]. - -The `notify` parameter will determine if the user or group will receive an -email notification when being added as a collaborator. This option is only -available to enterprise administrators. - -The `canViewPath` parameter allows the invitee to see the entire list of ancestor -folders of the associated file. The user will not gain privileges in any ancestor -folder, but will be able to see the whole path to that file in the owner's account. - -The `expiresAt` parameter allows the owner to set a date-time in the future when -the collaboration should expire. - -The `isAccessOnly` parameter allows the owner to set the collaboration to be -access only collaboration. - -The `notify`, `canViewPath`, `expiresAt` and `isAccessOnly` parameters can be left as `null`. - -```java -BoxFile file = new BoxFile(api, "id"); -BoxCollaboration.Info collabInfo = file.collaborate("testuser@example.com", BoxCollaboration.Role.EDITOR, true, true); -``` - -Alternatively, if you know the user's ID, you can invite them directly -without needing to know their email address with the -[`collaborate(BoxCollaborator user, BoxCollaboration.Role role, Boolean notify, Boolean canViewPath, Date expiresAt, Boolean isAccessOnly)`][share-a-file-userID] - -```java -BoxUser collaborator = new BoxUser(api, "user-id"); -BoxFile file = new BoxFile(api, "file-id"); -BoxCollaboration.Info collabInfo = file.collaborate(collaborator, BoxCollaboration.Role.EDITOR, true, true); -``` - -[share-a-file]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#collaborate-java.lang.String-com.box.sdk.BoxCollaboration.Role-java.lang.Boolean-java.lang.Boolean-java.lang.String-java.util.Date-java.lang.Boolean- -[share-a-file-userID]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#collaborate-com.box.sdk.BoxCollaborator-com.box.sdk.BoxCollaboration.Role-java.lang.Boolean-java.lang.Boolean-java.lang.String-java.util.Date-java.lang.Boolean- - - -Get an Embed Link ------------------ - -A file embed link can be generated by calling [`getPreviewLink()`][get-preview-link]. - -```java -BoxFile file = new BoxFile(api, "id"); -URL embedLink = file.getPreviewLink(); -``` - -[get-preview-link]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#getPreviewLink-- - -Create Metadata ---------------- - -Metadata can be created on a file by calling -[`createMetadata(Metadata metadata)`][create-metadata], -[`createMetadata(String typeName, Metadata metadata)`][create-metadata-2], or -[`createMetadata(String typeName, String scope, Metadata metadata)`][create-metadata-3]. - - -```java -// Add property "foo" with value "bar" to the default metadata properties -BoxFile file = new BoxFile(api, "id"); -file.createMetadata(new Metadata().add("/foo", "bar")); -``` - -Note: This method will only succeed if the provided metadata template is not currently applied to the file, otherwise -it will fail with a Conflict error. To get to know how to edit existing metadata please -go to [set metadata](#set-metadata) and [update metadata](#update-metadata) sections. - -[create-metadata]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#createMetadata-com.box.sdk.Metadata- -[create-metadata-2]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#createMetadata-java.lang.String-com.box.sdk.Metadata- -[create-metadata-3]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#createMetadata-java.lang.String-java.lang.String-com.box.sdk.Metadata- -[update-metadata]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#updateMetadata-com.box.sdk.Metadata- - -Set Metadata ------------- - -To set metadata on a file, call [`setMetadata(String templateName, String scope, Metadata metadata)`][set-metadata]. -This method will try to create provided metadata on a file. However, if metadata has already been applied to this file, -it will overwrite values of metadata keys specified in the `metadata` parameter. The metadata keys not specified in -the `metadata` parameter will remain unchanged. - -```java -BoxFile file = new BoxFile(api, "id"); -file.setMetadata("test_template", "enterprise", new Metadata().add("/foo", "bar")); -``` - -Note: If you want to set new metadata on a file including hard reset of the current metadata -(also removing keys not specified in the `metadata` param): -first delete metadata as specified in [delete metadata](#delete-metadata) section and then set new metadata again. - -[set-metadata]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#setMetadata-java.lang.String-java.lang.String-com.box.sdk.Metadata- - -Get Metadata ------------- - -Retrieve a file's Metadata by calling [`getMetadata()`][get-metadata], -[`getMetadata(String typeName)`][get-metadata-2], or -[`getMetadata(String typeName, String scope)`][get-metadata-3]. -These methods return a [`Metadata`][metadata] object, which allows access to metadata values. - - -```java -// Get the default free-form metadata properties -BoxFile file = new BoxFile(api, "id"); -Metadata metadata = file.getMetadata(); - -// Unknown type metadata field, you can test for type or try to get as any type -JsonValue unknownValue = metadata.getValue("/someField"); - -// String or Enum metadata fields -String stringValue = metadata.getString("/author"); - -// Float metadata fields can be interpreted as any numeric type -float floatValue = metadata.getFloat("/price"); - -// Date metadata fields -Date dateValue = metadata.getDate("/deadline"); - -// Multiselect metadata fields -List multiSelectValues = metadata.getMultiSelect("/categories"); -``` - -[metadata]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/Metadata.html -[get-metadata]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#getMetadata-- -[get-metadata-2]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#getMetadata-java.lang.String- -[get-metadata-3]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#getMetadata-java.lang.String-java.lang.String- - -Update Metadata ---------------- - -Update a file's Metadata by calling [`updateMetadata(Metadata properties)`][update-metadata]. - -Note: This method will only succeed if the provided metadata template has already been applied to the file. If the file -does not have existing metadata, this method will fail with a Not Found error. This is useful in cases where you know -the file will already have metadata applied, since it will save an API call compared to `setMetadata()`. - - -```java -BoxFile file = new BoxFile(api, "id"); -file.updateMetadata(new Metadata("templateScope", "templateKey").add("/foo", "bar")); -``` - -Also, it is possible to add multi-select fields for your file metadata by calling -[`updateMetadata(Metadata properties)`][update-metadata] with a list of values. - -```java -BoxFile file = new BoxFile(api, "id"); -List valueList = new ArrayList(); -valueList.add("bar"); -valueList.add("qux"); -file.updateMetadata(new Metadata("templateScope", "templateKey").add("/foo", valueList)); -``` - -If you wanted to replace all selected fields for a specified key you can use the -[`replace(String path, List values)`][replace-metadata]. - -```java -BoxFile file = new BoxFile(api, "id"); -List valueList = new ArrayList(); -valueList.add("bar"); -valueList.add("qux"); -file.updateMetadata(new Metadata("templateScope", "templateKey").replace("/foo", valueList)); -``` - -If you wanted to remove a metadata value for a specified key you can use the -[`remove(String path)`][remove-metadata]. - -```java -BoxFile file = new BoxFile(api, "id"); -file.updateMetadata(new Metadata("templateScope", "templateKey").remove("/foo")); -``` - -[update-metadata]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#updateMetadata-com.box.sdk.Metadata- -[replace-metadata]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/Metadata.html#replace-java.lang.String-java.util.List- -[remove-metadata]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/Metadata.html#remove-java.lang.String- - -Delete Metadata ---------------- - -A file's Metadata can be deleted by calling -[`deleteMetadata()`][delete-metadata], -[`deleteMetadata(String typeName)`][delete-metadata-2], or -[`deleteMetadata(String typeName, String scope)`][delete-metadata-3]. - - -```java -BoxFile file = new BoxFile(api, "id"); -file.deleteMetadata("myMetadataTemplate"); -``` - -[delete-metadata]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#deleteMetadata-- -[delete-metadata-2]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#deleteMetadata-java.lang.String- -[delete-metadata-3]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#deleteMetadata-java.lang.String-java.lang.String- - -Get All Metadata on File --------------- - -Calling the [`getAllMetadata()`][get-all-metadata] method on a file will return -an iterable that will page through all of the metadata associated with the file. - - -```java -BoxFile file = new BoxFile(api, "id"); -Iterable metadataList = file.getAllMetadata(); -for (Metadata metadata : metadataList) { - // Do something with the metadata. -} -``` - -[get-all-metadata]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#getAllMetadata-java.lang.String...- - -Set Classification on File --------------------------- - -Calling the [`setClassification(String classificationType)`][set-classification] method on a file will add a -classification template on the file. This method will return the classification type applied on the file. The -classification types include `Public`, `Internal`, and `Confidential`. `Public` being the most available permission, -`Internal` which restricts the specified file to company and collaborators only, and finally, `Confidential`, which is -for collaborators only. - -```java -BoxFile file = new BoxFile(api, "id"); -String classificationType = file.setClassification("Public"); -``` - -It is important to note that this call will attempt to create a classification on the file first, if one already exists -then it will do the update. If you already know that a classification exists on the file and would like to save an API -call, we encourage you to use the [`updateClassification(String classificationType)`][update-classification] method. - -```java -BoxFile file = new BoxFile(api, "id"); -String classificationType = file.updateClassification("Public"); -``` - -[set-classification]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#setClassification-java.lang.String...- -[update-classification]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#updateClassification-java.lang.String...- - -Get Classification on File --------------------------- - -To retrieve the classification assigned on the file, use the [`getClassification()`][get-classification] method. This -will return the classification type on the file. - -```java -BoxFile file = new BoxFile(api, "id"); -String classificationType = file.getClassification(); -``` - -[get-classification]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#getClassification-java.lang.String...- - -Remove Classification on File ------------------------------ - -To remove classification from the file, use the [`deleteClassification()`][delete-classification] method. - -```java -BoxFile file = new BoxFile(api, "id"); -file.deleteClassification(); -``` - -[delete-classification]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#deleteClassification-- - -Get File Representations ------------------------- - -To get the preview representations of a file, call the -[`getInfoWithRepresentations(String representationHints, String... fields)`][get-reps] -method with the [representation hints][rep-hints] to fetch, along with any other -fields on the file object to fetch simultaneously. This method returns a [`BoxFile.Info`][box-file-info] -object that contains the representations as a list of [`Representation`][rep-obj] objects. - -Note that this method only provides information about a set of available representations; your -application will need to handle checking the status of the representations and downlaoding them -via the provided content URL template. - -```java -BoxFile file = new BoxFile(api, "1234"); - -// Get the PDF representation and file name -String repHints = "[pdf]"; -BoxFile.Info fileInfo = file.getInfoWithRepresentations(repHints, "name"); -List representations = fileInfo.getRepresentations(); -String name = fileInfo.getName(); -``` - -[get-reps]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#getInfoWithRepresentations-java.lang.String-java.lang.String...- -[rep-hints]: https://developer.box.com/v2.0/reference/#section-x-rep-hints-header -[rep-obj]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/Representation.html - -Get Representation Content --------------------------- - -To write the contents of a single file representation to an `OutputStream`, call the -[`getRepresentationContent(String representationHint, OutputStream output)`][get-rep-content] -method with an [X-Rep-Hints value][rep-hints] specifying the representation you want. - -> __Note:__ This method only supports getting the contents of a single representation; if your -> X-Rep-Hints value specifies multiple representations, an arbitrary one of them will be fetched. - -```java -// Read the PDF representation of file 12345 into memory -ByteArrayOutputStream output = new ByteArrayOutputStream(); - -BoxFile file = new BoxFile(api, "12345"); -file.getRepresentationContent("[pdf]", output); -``` - -For representations with multiple files, e.g. multi-page images, you will need to pass an `assetPath` -parameter to specify which file you want to fetch. - -```java -// If file 12345 is a document, its PNG representation will consist of one image per page of the document -// Get the image of the first page of the document and write it to a file -FileOutputStream output = new FileOutputStream("/path/to/file.png"); -BoxFile file = new BoxFile(api, "12345"); -file.getRepresentationContent("[png?dimensions=1024x1024]", "1.png", output); -``` - -Generating a representation for the selected file is an asynchronous operation and may take some time. -Therefore, by default, the `getRepresentationContent` method periodically checks the status of the generated file and downloads it when it is ready. -With the `maxRetries` parameter in [`getRepresentationContent(String representationHint, String assetPath, OutputStream output, int maxRetries)`][get-rep-content-overloaded], you can define -the number of status checks for the generated file, which will be performed at intervals of 100 ms. - -If this number is exceeded, a `BoxApiException` will be thrown. - -```java -FileOutputStream output = new FileOutputStream("/path/to/file.png"); -BoxFile file = new BoxFile(api, "12345"); -file.getRepresentationContent("[png?dimensions=1024x1024]", "1.png", output, 10); -``` - - -[get-rep-content]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#getRepresentationContent-java.lang.String-java.lang.String-java.io.OutputStream- -[get-rep-content-overloaded]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#getRepresentationContent-java.lang.String-java.lang.String-java.io.OutputStream-int- diff --git a/doc/folders.md b/doc/folders.md deleted file mode 100644 index e5bb6eb0d..000000000 --- a/doc/folders.md +++ /dev/null @@ -1,801 +0,0 @@ -Folders -======= - -Folder objects represent a folder from a user's account. They can be used to -iterate through a folder's contents, collaborate a folder with another user or -group, and perform other common folder operations (move, copy, delete, etc.). - - - - -- [Get the User's Root Folder](#get-the-users-root-folder) -- [Get a Folder's Items](#get-a-folders-items) - - [SortParameters and Using PagingParameters](#sortparameters-and-using-pagingparameters) -- [Get a Folder's Information](#get-a-folders-information) -- [Update a Folder's Information](#update-a-folders-information) -- [Create a Folder](#create-a-folder) -- [Copy a Folder](#copy-a-folder) -- [Move a Folder](#move-a-folder) -- [Rename a Folder](#rename-a-folder) -- [Delete a Folder](#delete-a-folder) -- [Find Folder for Shared Link](#find-folder-for-shared-link) -- [Create a Shared Link](#create-a-shared-link) -- [Get a Shared Link](#get-a-shared-link) -- [Update a Shared Link](#update-a-shared-link) -- [Remove a Shared Link](#remove-a-shared-link) -- [Share a Folder](#share-a-folder) -- [Get All Collaborations for a Folder](#get-all-collaborations-for-a-folder) -- [Create Metadata](#create-metadata) -- [Set Metadata](#set-metadata) -- [Get Metadata](#get-metadata) -- [Update Metadata](#update-metadata) -- [Delete Metadata](#delete-metadata) -- [Get All Metadata on Folder](#get-all-metadata-on-folder) -- [Get Metadata for Multiple Files](#get-metadata-for-multiple-files) -- [Set Classification on Folder](#set-classification-on-folder) -- [Get Classification on Folder](#get-classification-on-folder) -- [Remove Classification on Folder](#remove-classification-on-folder) -- [Create Cascade Policy On Folder](#create-cascade-policy-on-folder) -- [Get a Cascade Policy's Information](#get-a-cascade-policys-information) -- [Get All Cascade Policies on Folder](#get-all-cascade-policies-on-folder) -- [Force Apply Cascade Policy on Folder](#force-apply-cascade-policy-on-folder) -- [Delete Cascade Policy](#delete-cascade-policy) -- [Lock a Folder](#lock-a-folder) -- [Get All Locks on a Folder](#get-all-locks-on-a-folder) -- [Delete a Lock on a Folder](#delete-a-lock-on-a-folder) - - - -Get the User's Root Folder --------------------------- - -The user's root folder can be accessed with the static -[`getRootFolder(BoxAPIConnection api)`][get-root-folder] method. - -```java -BoxFolder rootFolder = BoxFolder.getRootFolder(api); -``` - -[get-root-folder]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#getRootFolder-com.box.sdk.BoxAPIConnection- - -Get a Folder's Items --------------------- - -Every `BoxFolder` implements [`Iterable`][iterator] which allows you to -iterate over the folder's contents. The iterator automatically handles paging -and will make additional API calls to load more data when necessary. - - -```java -BoxFolder folder = new BoxFolder(api, "id"); -for (BoxItem.Info itemInfo : folder) { - if (itemInfo instanceof BoxFile.Info) { - BoxFile.Info fileInfo = (BoxFile.Info) itemInfo; - // Do something with the file. - } else if (itemInfo instanceof BoxFolder.Info) { - BoxFolder.Info folderInfo = (BoxFolder.Info) itemInfo; - // Do something with the folder. - } -} -``` - -`BoxFolder` purposely doesn't provide a way of getting a collection of -`BoxItems`. Getting the entire contents of a folder is usually unnecessary and -can be extremely inefficient for folders with a large number of items. If you -really require a collection instead of an iterable, you can create the -collection manually. - -```java -Collection folderItems = new ArrayList(); -BoxFolder folder = new BoxFolder(api, "id"); -for (BoxItem.Info itemInfo : folder) { - folderItems.add(itemInfo.getResource()); -} -``` - -We also allow users to sort the results of the folder items by `name`, `id`, or `date`. This will maintain the integrity -of the ordering when you retrieve the items for a folder. You can do this by calling the -[`getChildren(String sortField, BoxFolder.SortDirection sortDirection, String... fields)`][get-items-with-sort] method. - -```java -BoxFolder folder = new BoxFolder(this.api, "12345"); -Iterator itemIterator = folder.getChildren("name", BoxFolder.SortDirection.ASC).iterator(); -while (itemIterator.hasNext()) { - BoxItem.Info itemInfo = itemIterator.next(); - // Do something -} -``` - -### SortParameters and Using PagingParameters - -`SortParameters` is an abstraction hiding way that SDK is doing sorting. -`PagingParameters` is an abstraction hiding way that SDK is doing pagination. -If you want to start offset based pagination: - -```java -BoxFolder folder = new BoxFolder(this.api, "12345"); -// setup ascending sorting by name -SortParameters sorting = SortParameters.ascending("name"); -// setup paging with offset 0 and limit 100 -long offset = 0; -long limit = 100; -PagingParameters paging = PagingParameters.offset(offset, limit) -Iterable itemIterator = childFolder.getChildren(sorting, paging); -while (itemIterator.hasNext()) { - BoxItem.Info itemInfo=itemIterator.next(); - // Do something -} -``` - -With offset pagination you cannot set offset larger than 300000. -With marker based pagination you can iterate over folders containing more than 300000 elements. -With marker based pagination you cannot use sorting. Use `SortParameters.none()` to turn off sort. -If you want to use PagingParameters to start marker based pagination do: -```java -BoxFolder folder = new BoxFolder(this.api, "12345"); -// disable sorting -SortParameters sorting = SortParameters.none(); -// setup paging with makred based pagination and limit 100 -long limit = 100; -PagingParameters paging = PagingParameters.marker(limit) -Iterable itemIterator = childFolder.getChildren(sorting, paging); -while (itemIterator.hasNext()) { - BoxItem.Info itemInfo=itemIterator.next(); - // Do something -} -``` - -[iterator]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#iterator-- -[get-items-with-sort]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#getChildren-java.lang.String-com.box.sdk.BoxFolder.SortDirection-java.lang.String...- - -Get a Folder's Information --------------------------- - -Calling [`getInfo()`][get-info] on a folder returns a snapshot of the folder's -info. - - -```java -BoxFolder folder = new BoxFolder(api, "id"); -BoxFolder.Info info = folder.getInfo(); -``` - -Requesting information for only the fields you need can improve performance and -reduce the size of the network request. The [`getInfo(String... fields)`][get-info] -method lets you specify which fields are retrieved. - -```java -BoxFolder folder = new BoxFolder(api, "id"); -// Only get information about a few specific fields. -BoxFolder.Info info = folder.getInfo("size", "owned_by"); -``` - -[get-info]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#getInfo-java.lang.String...- - -Update a Folder's Information ------------------------------ - -Updating a folder's information is done by creating a new `BoxFolder.Info` -object or updating an existing one, and then calling -[`updateInfo(BoxFolder.Info fieldsToUpdate)`][update-info]. - - -```java -BoxFolder folder = new BoxFolder(api, "id"); -BoxFolder.Info info = folder.new Info(); -info.setName("New Name"); -folder.updateInfo(info); -``` - -[update-info]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#updateInfo-com.box.sdk.BoxFolder.Info- - -Create a Folder ---------------- - -Create a child folder by calling [`createFolder(String folderName)`][create-folder] -on the parent folder. - - -```java -BoxFolder parentFolder = new BoxFolder(api, "id"); -BoxFolder.Info childFolderInfo = parentFolder.createFolder("Child Folder Name"); -``` - -[create-folder]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#createFolder-java.lang.String- - -Copy a Folder -------------- - -Call the [`copy(BoxFolder destination)`][copy] method to copy a folder to -another folder. - - -```java -BoxFolder folder = new BoxFolder(api, "id1"); -BoxFolder destination = new BoxFolder(api, "id2"); -folder.copy(destination); -``` - -You can also use the [`copy(BoxFolder destination, String newName)`][copy2] method to rename the -folder while copying it. This allows you to make a copy of the folder in the -same parent folder, but with a different name. - -```java -BoxFolder folder = new BoxFolder(api, "id1"); -BoxFolder.Info parentFolderInfo = folder.getInfo().getParent(); -BoxFolder parentFolder = parentFolderInfo.getResource(); -folder.copy(parentFolder, "New Name"); -``` - -[copy]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#copy-com.box.sdk.BoxFolder- -[copy2]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#copy-com.box.sdk.BoxFolder-java.lang.String- - -Move a Folder -------------- - -Call the [`move(BoxFolder destination)`][move] method with the destination you want the folder moved -to. - -```java -BoxFolder folder = new BoxFolder(api, "id1"); -BoxFolder destination = new BoxFolder(api, "id2"); -folder.move(destination); -``` - -[move]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#move-com.box.sdk.BoxFolder- - -Rename a Folder ---------------- - -Call the [`rename(String newName)`][rename] method with a new name for the folder. - -```java -BoxFolder folder = new BoxFolder(api, "id"); -folder.rename("New Name"); -``` - -A folder can also be renamed by updating the folder's information. This is -useful if you want to perform more than one change to the folder in a single API -request. - -```java -BoxFolder folder = new BoxFolder(api, "id"); -BoxFolder.Info info = folder.new Info(); -info.setName("New Name"); -folder.updateInfo(info); -``` - -[rename]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#rename-java.lang.String- - -Delete a Folder ---------------- - -A folder can be deleted with the [`delete(boolean recursive)`][delete] method. Passing -`true` to this method indicates that the folder and its contents should be -recursively deleted. - - -```java -// Delete the folder and all its contents -BoxFolder folder = new BoxFolder(api, "id"); -folder.delete(true); -``` - -[delete]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#delete-boolean- - -Find Folder for Shared Link -------------------------- - -To get the folder information for a shared link, you can call -[`BoxItem.getSharedItem(BoxAPIConnection api, String sharedLink)`][get-shared-item] -with the shared link to get information about the folder behind it. - -```java -String sharedLink = "https://app.box.com/s/abcdefghijklmnopqrstuvwxyz123456"; -BoxItem.Info itemInfo = BoxItem.getSharedItem(api, sharedLink); -``` - -If the shared link is password-protected, call -[`BoxItem.getSharedItem(BoxAPIConnection api, String sharedLink, String password)`][get-shared-item-password] -with the shared link and password. - - -```java -String sharedLink = "https://app.box.com/s/abcdefghijklmnopqrstuvwxyz123456"; -String password = "letmein"; -BoxItem.Info itemInfo = BoxItem.getSharedItem(api, sharedLink, password); -``` - -[get-shared-item]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxItem.html#getSharedItem-com.box.sdk.BoxAPIConnection-java.lang.String- -[get-shared-item-password]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxItem.html#getSharedItem-com.box.sdk.BoxAPIConnection-java.lang.String-java.lang.String- - -Create a Shared Link --------------------- - -A shared link for a folder can be generated by calling -[`createSharedLink(BoxSharedLinkRequest sharedLinkRequest)`][create-shared-link]. - - -```java -// Optionally we can calculate and set the date when shared link will automatically be disabled -final long ONE_WEEK_MILLIS = 1000 * 60 * 60 * 24 * 7; -long unsharedTimestamp = System.currentTimeMillis() + ONE_WEEK_MILLIS; -Date unsharedDate = new Date(unsharedTimestamp); - -BoxFolder folder = new BoxFolder(api, "id"); -BoxSharedLinkRequest sharedLinkRequest = new BoxSharedLinkRequest() - .access(OPEN) - .permissions(true, true) - .unsharedDate(unsharedDate); -BoxSharedLink sharedLink = folder.createSharedLink(sharedLinkRequest); -``` - -A set of shared link access level constants are available through the SDK for convenience: -* `BoxSharedLink.Access.OPEN` -* `BoxSharedLink.Access.COLLABORATORS` -* `BoxSharedLink.Access.COMPANY` -* `BoxSharedLink.Access.DEFAULT` - -[create-shared-link]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#createSharedLink-com.box.sdk.sharedlink.BoxSharedLinkRequest- - -Get a Shared Link ------------------ - -Retrieve the shared link for a folder by calling -[`getSharedLink()`][get-shared-link]. - - -```java -BoxFolder folder = new BoxFolder(api, "id"); -BoxFolder.Info info = folder.getInfo() -BoxSharedLink link = info.getSharedLink() -String url = link.getUrl() -``` - -[get-shared-link]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxItem.Info.html#getSharedLink-- - -Update a Shared Link --------------------- - -A shared link for a folder can be updated by calling the same method as used when creating a shared link, -[`createSharedLink(BoxSharedLinkRequest sharedLinkRequest)`][create-shared-link]. - - -```java -BoxFolder folder = new BoxFolder(api, "id"); -BoxSharedLinkRequest sharedLinkRequest = new BoxSharedLinkRequest() - .access(OPEN) - .permissions(true, true); - -BoxSharedLink sharedLink = folder.createSharedLink(sharedLinkRequest); -``` - -Remove a Shared Link --------------------- - -A shared link for a folder can be removed by calling [`removeSharedLink()`][remove-shared-link]. - - -```java -BoxFolder folder = new BoxFolder(api, "12345"); -BoxFolder.Info info = folder.getInfo(); -info.removeSharedLink(); -folder.updateInfo(info); -``` - -[remove-shared-link]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#removeSharedLink-- - -Share a Folder --------------- - -You can invite another person to collaborate on a folder with the -[`collaborate(String emailAddress, BoxCollaboration.Role role)`][collaborate] method. - -```java -BoxFolder folder = new BoxFolder(api, "id"); -BoxCollaboration.Info collabInfo = folder.collaborate("gcurtis@box.com", - BoxCollaboration.Role.EDITOR); -``` - -If you already know the user's ID, you can invite them directly without needing -to know their email address with the -[`collaborate(BoxCollaborator user, BoxCollaboration.Role role)`][collaborate2] method. - -```java -BoxUser collaborator = new User(api, "user-id"); -BoxFolder folder = new BoxFolder(api, "folder-id"); -BoxCollaboration.Info collabInfo = folder.collaborate(collaborator, - BoxCollaboration.Role.EDITOR); -``` - -You can also create a collaboration with all properties set at once by using the -[`collaborate(BoxCollaborator user, BoxCollaboration.Role role, Boolean notify, Boolean canViewPath, Date expiresAt, Boolean isAccessOnly)`][collaborate3] method. - -The `notify` parameter will determine if the user or group will receive an -email notification when being added as a collaborator. This option is only -available to enterprise administrators. - -The `canViewPath` parameter allows the invitee to see the entire list of ancestor -folders of the associated file. The user will not gain privileges in any ancestor -folder, but will be able to see the whole path to that file in the owner's account. - -The `expiresAt` parameter allows the owner to set a date-time in the future when -the collaboration should expire. - -The `isAccessOnly` parameter allows the owner to set the collaboration to be -access only collaboration. - -The `notify`, `canViewPath`, `expiresAt` and `isAccessOnly` parameters can be left as `null`. - -[collaborate]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#collaborate-java.lang.String-com.box.sdk.BoxCollaboration.Role- -[collaborate2]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#collaborate-com.box.sdk.BoxCollaborator-com.box.sdk.BoxCollaboration.Role- -[collaborate3]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#collaborate-com.box.sdk.BoxCollaborator-com.box.sdk.BoxCollaboration.Role-java.lang.Boolean-java.lang.Boolean-java.util.Date-java.lang.Boolean- - -Get All Collaborations for a Folder ------------------------------------ - -The [`getCollaborations()`][get-collaborations] method will return a collection -of `BoxCollaboration.Info` objects for a folder. - - -```java -BoxFolder folder = new BoxFolder(api, "id"); -Collection collaborations = folder.getCollaborations(); -``` - -[get-collaborations]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#getCollaborations-- - -Create Metadata ---------------- - -Metadata can be created on a folder by calling -[`createMetadata(Metadata metadata)`][create-metadata], -[`createMetadata(String templateName, Metadata metadata)`][create-metadata-2], or -[`createMetadata(String templateName, String scope, Metadata metadata)`][create-metadata-3] - - -```java -BoxFolder folder = new BoxFolder(api, "id"); -folder.createMetadata(new Metadata().add("/foo", "bar")); -``` - -Note: This method will only succeed if the provided metadata template is not currently applied to the folder, otherwise -it will fail with a Conflict error. To get to know how to edit existing metadata please -go to [set metadata](#set-metadata) and [update metadata](#update-metadata) sections. - -[create-metadata]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#createMetadata-com.box.sdk.Metadata- -[create-metadata-2]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#createMetadata-java.lang.String-com.box.sdk.Metadata- -[create-metadata-3]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#createMetadata-java.lang.String-java.lang.String-com.box.sdk.Metadata- - -Set Metadata ------------- - -To set metadata on a folder, call [`setMetadata(String templateName, String scope, Metadata metadata)`][set-metadata]. -This method will try to create provided metadata on a folder. However, if metadata has already been applied to this folder, -it will overwrite values of metadata keys specified in the `metadata` parameter. The metadata keys not specified in -the `metadata` parameter will remain unchanged. - -```java -BoxFolder folder = new BoxFolder(api, "id"); -folder.setMetadata("test_template", "enterprise", new Metadata().add("/foo", "bar")); -``` - -Note: If you want to set new metadata on a folder including hard reset of the current metadata -(also removing keys not specified in the `metadata` param): -first delete metadata as specified in [delete metadata](#delete-metadata) section and then set new metadata again. - -[set-metadata]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#setMetadata-java.lang.String-java.lang.String-com.box.sdk.Metadata- - -Get Metadata ------------- - -Retrieve a folder's metadata by calling [`getMetadata()`][get-metadata], -[`getMetadata(String templateName)`][get-metadata-2], or -[`getMetadata(String templateName, String scope)`][get-metadata-3]. -These methods return a [`Metadata`][metadata] object, which allows access to metadata values. - - -```java -BoxFolder folder = new BoxFolder(api, "id"); -Metadata metadata = folder.getMetadata(); - -// Unknown type metadata field, you can test for type or try to get as any type -JsonValue unknownValue = metadata.getValue("/someField"); - -// String or Enum metadata fields -String stringValue = metadata.getString("/author"); - -// Float metadata fields can be interpreted as any numeric type -float floatValue = metadata.getFloat("/price"); - -// Date metadata fields -Date dateValue = metadata.getDate("/deadline"); -``` - -[metadata]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/Metadata.html -[get-metadata]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#getMetadata-- -[get-metadata-2]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#getMetadata-java.lang.String- -[get-metadata-3]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#getMetadata-java.lang.String-java.lang.String- - -Update Metadata ---------------- - -Update a folder's metadata by calling [`updateMetadata(Metadata properties)`][update-metadata]. - -Note: This method will only succeed if the provided metadata template has already been applied to the folder. If the folder -does not have existing metadata, this method will fail with a Not Found error. This is useful in cases where you know -the folder will already have metadata applied, since it will save an API call compared to `setMetadata()`. - - -```java -BoxFolder folder = new BoxFolder(api, "id"); -folder.updateMetadata(new Metadata().add("/foo", "bar")); -``` - -Also, it is possible to add multi-select fields for your folder metadata by calling -[`updateMetadata(Metadata properties)`][update-metadata] with a list of values. - -```java -BoxFolder folder = new BoxFolder(api, "id"); -List valueList = new ArrayList(); -valueList.add("bar"); -valueList.add("qux"); -folder.updateMetadata(new Metadata().add("/foo", valueList)); -``` - -If you wanted to replace all selected fields for a specified key you can use the -[`replace(String key, List values)`][replace-metadata]. - -```java -BoxFolder folder = new BoxFolder(api, "id"); -List valueList = new ArrayList(); -valueList.add("bar"); -valueList.add("qux"); -folder.updateMetadata(new Metadata().replace("/foo", valueList)); -``` - -[update-metadata]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#updateMetadata-com.box.sdk.Metadata- -[replace-metadata]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/Metadata.html#replace-java.lang.String-java.util.List- - -Delete Metadata ---------------- - -A folder's metadata can be deleted by calling -[`deleteMetadata()`][delete-metadata], -[`deleteMetadata(String templateName)`][delete-metadata-2], or -[`deleteMetadata(String templateName, String scope)`][delete-metadata-3]. - - -```java -BoxFolder folder = new BoxFolder(api, "id"); -folder.deleteMetadata("myMetadataTemplate"); -``` - -[delete-metadata]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#deleteMetadata-- -[delete-metadata-2]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#deleteMetadata-java.lang.String- -[delete-metadata-3]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#deleteMetadata-java.lang.String-java.lang.String- - -Get All Metadata on Folder -------------------------- - -[`getAllMetadata()`][get-all-metadata] method will return an iterable that will page through all of the metadata associated with the folder. - - -```java -BoxFolder file = new BoxFolder(api, "id"); -Iterable metadataList = folder.getAllMetadata(); -for (Metadata metadata : metadataList) { - // Do something with the metadata. -} -``` - -[get-all-metadata]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#getAllMetadata-java.lang.String...- - -Get Metadata for Multiple Files -------------------------------- - -When fetching a large number of items, for example the items in a folder, it would -often be impractical to fetch the metadata for each of those items individually. -Instead, you can get the metadata for all of the items in a single API call by -requesting the `metadata` field on those items: - -> __Note:__ The field name should have the form `metadata..` - -```java -BoxFolder root = BoxFolder.getRootFolder(); -Iterable itemsInFolder = root.getChildren("metadata.global.properties") -for (BoxItem.Info itemInfo : itemsInFolder) { - if (itemInfo instanceof BoxFile.Info) { - BoxFile.Info fileInfo = (BoxFile.Info) itemInfo; - Metadata itemMetadata = fileInfo.getMetadata("properties", "global"); - } else if (itemInfo instanceof BoxFolder.Info) { - BoxFolder.Info folderInfo = (BoxFolder.Info) itemInfo; - Metadata itemMetadata = folderInfo.getMetadata("properties", "global"); - } -} -``` - -Set Classification on Folder ----------------------------- - -Calling the [`setClassification(String classificationType)`][set-classification] method on a folder will add a -classification template on the folder. This method will return the classification type applied on the folder. The -classification types include `Public`, `Internal`, and `Confidential`. `Public` being the most available permission, -`Internal` which restricts the specified file to company and collaborators only, and finally, `Confidential`, which -is for collaborators only. - -```java -BoxFolder folder = new BoxFolder(api, "id"); -String classificationType = folder.setClassification("Public"); -``` - -It is important to note that this call will attempt to create a classification on the folder first, if one already -exists then it will do the update. If you already know that a classification exists on the folder and would like to save -an API call, we encourage you to use the [`updateClassification(String classificationType)`][update-classification] -method. - -```java -BoxFolder folder = new BoxFolder(api, "id"); -String classificationType = folder.updateClassification("Public"); -``` - -[set-classification]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#setClassification-java.lang.String...- -[update-classification]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#updateClassification-java.lang.String...- - -Get Classification on Folder ----------------------------- - -To retrieve the classification assigned on the folder, use the [`getClassification()`][get-classification] method. This -will return the classification type on the folder. - -```java -BoxFolder folder = new BoxFolder(api, "id"); -String classificationType = folder.getClassification(); -``` - -[get-classification]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#getClassification-java.lang.String...- - -Remove Classification on Folder -------------------------------- - -To remove classification from the folder, use the [`deleteClassification()`][delete-classification] method. - -```java -BoxFolder folder = new BoxFolder(api, "id"); -folder.deleteClassification(); -``` - -[delete-classification]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#deleteClassification-- - -Create Cascade Policy On Folder -------------------------------- - -To set a metadata policy, which applies metadata values on a folder to new items in the folder, call -[`BoxFolder.addMetadataCascadePolicy(String scope, String template)`][create-cascade-policy-on-folder]. - -```java -String scope = "global"; -String templateKey = "template"; -String folderId = "12345"; -BoxFolder folder = new BoxFolder(api, folderId); -BoxMetadataCascadePolicy.Info cascadePolicyInfo = folder.addMetadataCascadePolicy(scope, template); -``` - -[create-cascade-policy-on-folder]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#addMetadataCascadePolicy-java.lang.String-java.lang.String- - -Get a Cascade Policy's Information ----------------------------------- - -To retrieve information about a specific metadata cascade policy, call -[`getInfo()`][get-info] - - -```java -String cascadePolicyID = "1234"; -BoxMetadataCascadePolicy metadataCascadePolicy = new BoxMetadataCascadePolicy(api, cascadePolicyID); -BoxMetadataCascadePolicy.Info metadataCascadePolicyInfo = metadataCascadePolicy.getInfo(); -``` - -[get-info]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxMetadataCascadePolicy.html#getInfo-- - -Get All Cascade Policies on Folder ----------------------------------- - -To get a list of all cascade policies on a folder, which show the metadata templates that are being applied to all -items in the folder, call [`getMetadataCascadePolicies()`][get-all] on that folder. - - -```java -String folderID = "2222"; -BoxFolder folder = new BoxFolder(api, folderID); -Iterable metadataCascadePolicies = folder.getMetadataCascadePolicies(); -for (BoxMetadataCascadePolicy.Info policyInfo : metadataCascadePolicies) { - // take action on policy here -} -``` - -You can also call [`getMetadataCascadePolicies(String enterpriseID, int limit, String... fields)`][get-all-with-limit] -and set the `enterpriseID` option to retrieve metadata cascade policies from another enterprise. - -```java -String folderID = "2222"; -String enterpriseID = "3333"; -int limit = 50; -BoxFolder folder = new BoxFolder(api, folderID); -Iterable metadataCascadePolicies = folder.getMetadataCascadePolicies(enterpriseID, limit); -for (BoxMetadataCascadePolicy.Info policyInfo : metadataCascadePolicies) { - // take action on policy here -} -``` - -[get-all]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#getMetadataCascadePolicies-- -[get-all-with-limit]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#getMetadataCascadePolicies-java.lang.String-int- - -Force Apply Cascade Policy on Folder ------------------------------------- - -To force apply a metadata template policy and apply metadata values to all existing items in an affected folder, call -[`forceApply(String conflictResolution)`][force-apply] with the conflict resolution method for dealing with items that already have a metadata value that conflicts with the folder. Specifying a resolution value of `none` will preserve the existing values on items, and specifying `overwrite` will overwrite values on items in the folder with the metadata value from the folder. - - -```java -String cascadePolicyID = "e4392a41-7de5-4232-bdf7-15e0d6bba067"; -BoxMetadataCascadePolicy policy = new BoxMetadataCascadePolicy(api, cascadePolicyID); -policy.forceApply("none"); -``` - -[force-apply]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxMetadataCascadePolicy.html#forceApply-java.lang.String- - -Delete Cascade Policy ---------------------- - -To remove a cascade policy and stop applying metadata from a folder to items in the folder, -call [`delete()`][delete-cascade-policy]. - - -```java -String cascadePolicyID = "e4392a41-7de5-4232-bdf7-15e0d6bba067"; -BoxMetadataCascadePolicy policyToDelete = new BoxMetadataCascadePolicy(api, cascadePolicyID); -policyToDelete.delete(); -``` - -[delete-cascade-policy]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxMetadataCascadePolicy.html#delete-- - -Lock a Folder ------------------------------ - -To lock a folder and prevent it from being moved and/or deleted, call [`lock()`][lock] on a folder. - -```java -BoxFolder folder = new BoxFolder(api, "id"); -FolderLock.Info folderLock = folder.lock(); -``` - -[lock]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#lock-- - -Get All Locks on a Folder ------------------------------ - -To get all locks on a folder, call [`getlock()`][get-locks] on folder. - -```java -BoxFolder folder = new BoxFolder(this.api, "id"); -Iterable locks = folder.getLocks(); -for (BoxFolderLock.Info lockInfo : locks) { - // Do something with each lockInfo here -} -``` - -[get-locks]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#getLocks-- - -Delete a Lock on a Folder ------------------------------ - -To delete a lock on a folder, call [`delete()`][delete-lock] on a BoxFolderLock object. This cannot be called on a BoxFolder object. - -```java -BoxFolderLock folderLock = new BoxFolderLock(this.api, "folderLockID"); -folderLock.delete(); -``` - -[delete-lock]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolderLock.html#delete-- diff --git a/doc/groups.md b/doc/groups.md deleted file mode 100644 index 7d5113e20..000000000 --- a/doc/groups.md +++ /dev/null @@ -1,218 +0,0 @@ -Groups -====== - -Groups are sets of users that can be used in collaborations. - - - - - -- [Get All Groups](#get-all-groups) -- [Create a Group](#create-a-group) -- [Get Information About a Group](#get-information-about-a-group) -- [Update a Group](#update-a-group) -- [Delete a Group](#delete-a-group) -- [Get first page of a Group's Collaborations](#get-a-groups-collaborations) -- [Get all of a Group's Collaborations](#get-all-a-groups-collaborations) -- [Create Membership](#create-membership) -- [Get Membership](#get-membership) -- [Update Membership](#update-membership) -- [Delete Membership](#delete-membership) -- [Get Memberships for Group](#get-memberships-for-group) -- [Get Memberships for User](#get-memberships-for-user) - - - -Get All Groups --------------- - -Calling the static [`getAllGroups(BoxAPIConnection api)`][get-all-groups] will -return an iterable that will page through all of the user's groups. - - -```java -Iterable groups = BoxGroup.getAllGroups(api); -for (BoxGroup.Info groupInfo : groups) { - // Do something with the group. -} -``` - -[get-all-groups]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxGroup.html#getAllGroups-com.box.sdk.BoxAPIConnection- - -Create a Group --------------- - -The static [`createGroup(BoxAPIConnection api, String name)`][create-group] method will -let you create a new group with a specified name. - - -```java -BoxGroup.Info groupInfo = BoxGroup.createGroup(api, "My Group"); -``` - -[create-group]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxGroup.html#createGroup-com.box.sdk.BoxAPIConnection-java.lang.String- - -Get Information About a Group ------------------------------ - -To look up the information about a group by the group's ID, instantiate the [`BoxGroup`][group-object] -object with the group ID and then call [`getInfo()`][get-info-fields] on the group. You can optionally call -[`getInfo(String... fields)`][get-info-fields] to specify the list of fields to retrieve for the group, -which can result in reduced payload size. - - -```java -String groupID = "92875"; -BoxGroup.Info groupInfo = new BoxGroup(api, groupID).getInfo(); -``` - -[group-object]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxGroup.html -[get-info-fields]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxGroup.html#getInfo-java.lang.String...- - -Update a Group --------------- - -To update a group, call [`updateInfo(BoxGroup.Info fieldsToUpdate)`][update-group] method. - - -```java -BoxGroup group = new BoxGroup(api, id); -BoxGroup.Info groupInfo = group.getInfo(); -groupInfo.setName("New name for My Group"); -group.updateInfo(groupInfo); -``` - -[update-group]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxGroup.html#updateInfo-com.box.sdk.BoxGroup.Info- - - -Delete a Group --------------- - -A group can be deleted by calling the [`delete()`][delete] method. - - -```java -BoxGroup group = new BoxGroup(api, "id"); -group.delete(); -``` - -[delete]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxGroup.html#delete-- - -Get first page of a Group's Collaborations ---------------------------- - -The first page of a group's collaborations can be retrieved by calling the [`getCollaborations()`][get-collaborations] method. - - -```java -BoxGroup group = new BoxGroup(api, "id"); -Collection collaborations = group.getCollaborations(); -``` - -[get-collaborations]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxGroup.html#getCollaborations-- - -Get all of a Group's Collaborations ---------------------------- - -All of a group's collaborations can be retrieved by calling the [`getAllCollaborations(String... fields)`][get-all-collaborations] method. -An iterable is returned to allow a user to iterate until the last collaboration. - -```java -BoxGroup group = new BoxGroup(api, "id"); -Iterable collaborations = group.getAllCollaborations(); -``` - -[get-all-collaborations]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxGroup.html#getAllCollaborations-- - -Create Membership ---------------- - -Membership for the group can be created by calling the -[`addMembership(BoxUser user)`][add-membership] and -[`addMembership(BoxUser user, BoxGroupMembership.GroupRole role)`][add-membership2] methods. - - -```java -BoxGroup group = new BoxGroup(api, "groupID"); -BoxUser user = new BoxUser(api, "userID"); -BoxGroupMembership.Info groupMembershipInfo = group.addMembership(user); -``` - -[add-membership]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxGroup.html#addMembership-com.box.sdk.BoxUser- -[add-membership2]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxGroup.html#addMembership-com.box.sdk.BoxUser-com.box.sdk.BoxGroupMembership.GroupRole- - -Get Membership ---------------- - -A groups membership can be retrieved by calling the [`BoxGroupMembership.getInfo()`][get-membership] method. - - -```java -BoxGroupMembership membership = new BoxGroupMembership(api, id); -BoxGroupMembership.Info groupMembershipInfo = membership.getInfo(); -``` - -[get-membership]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxGroupMembership.html#getInfo-- - -Update Membership ---------------- - -A groups membership can be updated by calling the -[`BoxGroupMembership.updateInfo(BoxGroupMembership.Info fieldsToUpdate)`][update-membership] method. - - -```java -BoxGroupMembership membership = new BoxGroupMembership(api, id); -BoxGroupMembership.Info info = membership.new Info(); -info.setGroupRole(BoxGroupMembership.GroupRole.MEMBER); -membership.updateInfo(info); -``` - -[update-membership]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxGroupMembership.html#updateInfo-com.box.sdk.BoxGroupMembership.Info- - -Delete Membership ---------------- - -A group can be deleted by calling the [`BoxGroupMembership.delete()`][delete-membership] method. - - -```java -BoxGroupMembership membership = new BoxGroupMembership(api, id); -membership.delete(); -``` - -[delete-membership]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxGroupMembership.html#delete-- - -Get Memberships for Group ---------------- - -Calling the [`getAllMemberships(String... fields)`][get-memberships-for-group] will return an iterable that will page through all of the group's memberships. -Optional parameters can be used to retrieve specific fields of the Group Membership object. - - -```java -BoxGroup group = new BoxGroup(api, id); -Iterable memberships = group.getAllMemberships(); -for (BoxGroupMembership.Info membershipInfo : memberships) { - // Do something with the membership. -} -``` - -[get-memberships-for-group]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxGroup.html#getAllMemberships-java.lang.String...- - -Get Memberships for User ---------------- - -Calling the [`BoxUser.getAllMemberships(String... fields)`][get-memberships-for-user] will return an iterable that will page through all of the user's memberships. -Optional parameters can be used to retrieve specific fields of the Group Membership object. - - -```java -BoxUser user = new BoxUser(api, id); -Iterable memberships = user.getAllMemberships(); -for (BoxGroupMembership.Info membershipInfo : memberships) { - // Do something with the membership. -} -``` - -[get-memberships-for-user]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#getAllMemberships-java.lang.String...- diff --git a/doc/legal_holds.md b/doc/legal_holds.md deleted file mode 100644 index 189df8981..000000000 --- a/doc/legal_holds.md +++ /dev/null @@ -1,206 +0,0 @@ -Legal Holds Policy -================== - -Legal Hold Policy information describes the basic characteristics of the Policy, -such as name, description, and filter dates. - - - - - -- [Get Legal Hold Policy](#get-legal-hold-policy) -- [Get List of Legal Hold Policies](#get-list-of-legal-hold-policies) -- [Create New Legal Hold Policy](#create-new-legal-hold-policy) -- [Update Existing Legal Hold Policy](#update-existing-legal-hold-policy) -- [Delete Legal Hold Policy](#delete-legal-hold-policy) -- [Get Assignment](#get-assignment) -- [Get List of Assignments](#get-list-of-assignments) -- [Create New Assignment](#create-new-assignment) -- [Delete Assignment](#delete-assignment) -- [Get File Version Legal Hold](#get-file-version-legal-hold) -- [Get List of File Version Legal Holds](#get-list-of-file-version-legal-holds) - - - -Get Legal Hold Policy ---------------------- - -Calling [`getInfo(String...)`][get-info] will return a BoxLegalHoldPolicy.Info object -containing information about the legal hold policy. If necessary to retrieve -limited set of fields, it is possible to specify them using param. - - -```java -BoxLegalHoldPolicy policy = new BoxLegalHoldPolicy(api, id); -BoxLegalHoldPolicy.Info policyInfo = policy.getInfo(); -``` - -[get-info]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxLegalHoldPolicy.html#getInfo-java.lang.String...- - -Get List of Legal Hold Policies -------------------------------- - -Calling the static [`getAll(BoxAPIConnection)`][get-list-of-legal-hold-policies] -will return an iterable that will page through all of the legal hold policies. -It is possible to specify name of legal hold policy, maximum number of items per -response and fields to retrieve by calling the static -[`getAll(BoxAPIConnection, String, int, String...)`][get-list-of-legal-hold-policies-with-fields] method. - - -```java -Iterable policies = BoxLegalHoldPolicy.getAll(api); -for (BoxLegalHoldPolicy.Info policyInfo : policies) { - // Do something with the legal hold policy. -} -``` - -[get-list-of-legal-hold-policies]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxLegalHoldPolicy.html#getAll-com.box.sdk.BoxAPIConnection- -[get-list-of-legal-hold-policies-with-fields]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxLegalHoldPolicy.html#getAll-com.box.sdk.BoxAPIConnection-java.lang.String-int-java.lang.String...- - -Create New Legal Hold Policy ----------------------------- - -The static [`create(BoxAPIConnection api, String name, String description, Date startDate, Date endDate)`][create-new-legal-hold-policy-with-dates] -method will let you create a new legal hold policy with a specified name, description, start and end dates. - - -```java -BoxLegalHoldPolicy.Info policyInfo = BoxLegalHoldPolicy.create(api, name, description, startedAt, endedAt); -``` - -If you wish to create an ongoing Legal Hold Policy with no end date and a description, call [`createOngoing(BoxAPIConnection api, String name, String description)`][create-ongoing]. - -```java -BoxLegalHoldPolicy.Info policyInfo = BoxLegalHoldPolicy.createOngoing(api, name, description); -``` - -[create-new-legal-hold-policy]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxLegalHoldPolicy.html#create-com.box.sdk.BoxAPIConnection-java.lang.String- -[create-new-legal-hold-policy-with-dates]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxLegalHoldPolicy.html#create-com.box.sdk.BoxAPIConnection-java.lang.String-java.lang.String-java.util.Date-java.util.Date- -[create-ongoing]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxLegalHoldPolicy.html#createOngoing-com.box.sdk.BoxAPIConnection-java.lang.String-java.lang.String- - -Update Existing Legal Hold Policy ---------------------------------- - -Updating a legal hold policy's information is done by calling -[`updateInfo(BoxLegalHoldPolicy.Info fieldsToUpdate)`][update-info]. - - -```java -BoxLegalHoldPolicy policy = new BoxLegalHoldPolicy(api, id); -BoxLegalHoldPolicy.Info policyInfo = policy.new Info(); -info.setDescription("new description"); -info.setPolicyName("new policy name"); -policy.updateInfo(info); -``` - -[update-info]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxLegalHoldPolicy.html#updateInfo-com.box.sdk.BoxLegalHoldPolicy.Info- - -Delete Legal Hold Policy ------------------------- - -A legal hold policy can be deleted by calling the [`delete()`][delete] method. - - -```java -BoxLegalHoldPolicy policy = new BoxLegalHoldPolicy(api, id); -policy.delete(); -``` - -[delete]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxLegalHoldPolicy.html#delete-- - -Get Assignment --------------- - -Calling [`getInfo(String... fields)`][get-assignment] will return a BoxLegalHoldAssignment.Info -object containing information about the legal hold policy assignment. - - -```java -BoxLegalHoldAssignment assignment = new BoxLegalHoldAssignment(api, id); -BoxLegalHoldAssignment.Info info = assignment.getInfo("assigned_by"); -``` - -[get-assignment]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxLegalHoldAssignment.html#getInfo-java.lang.String...- - -Get List of Assignments --------------- - -Calling the static [`getAssignments(String... fields)`][get-list-of-assignments] will return -an iterable that will page through all of the assignments of the legal hold policy. -It is possible to specify filters for type and id, maximum number of items per single -response and fields to retrieve by calling -[`getAssignments(String type, String id, int limit, String... fields)`][get-list-of-assignments-with-params]. - - -```java -BoxLegalHoldPolicy policy = new BoxLegalHoldPolicy(api, id); -Iterable assignments = policy.getAssignments(BoxResource.getResourceType(BoxFolder.class), null, 50, "assigned_at"); -for (BoxLegalHoldAssignment.Info assignmentInfo : assignments) { - // Do something with the legal hold policy assignment. -} -``` - -[get-list-of-assignments]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxLegalHoldPolicy.html#getAssignments-java.lang.String...- -[get-list-of-assignments-with-params]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxLegalHoldPolicy.html#getAssignments-java.lang.String-java.lang.String-int-java.lang.String...- - -Create New Assignment ---------------------- - -To create new legal hold policy assignment call [`assignTo(BoxResource target)`][create-assignment] method. -Currently only BoxFile, BoxFileVersion, BoxFolder and BoxUser objects are supported as a parameter. - - -```java -BoxLegalHoldPolicy policy = new BoxLegalHoldPolicy(api, policyID); -BoxFolder folder = new BoxFolder(api, folderID); -policy.assignTo(folder); -``` - -[create-assignment]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxLegalHoldPolicy.html#assignTo-com.box.sdk.BoxResource- - -Delete Assignment --------------- - -A legal hold policy assignment can be deleted by calling the [`delete()`][delete-assignment] method -of BoxLegalHoldAssignment object. - - -```java -BoxLegalHoldAssignment assignment = new BoxLegalHoldAssignment(api, id); -assignment.delete(); -``` - -[delete-assignment]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxLegalHoldAssignment.html#delete-- - -Get File Version Legal Hold --------------- - -Calling [`getInfo(String... fields)`][get-file-version-legal-hold] will return -a BoxFileVersionLegalHold.Info object containing information about the file version legal hold policy. - - -```java -BoxFileVersionLegalHold hold = new BoxFileVersionLegalHold(api, id); -hold.getInfo("file"); -``` - -[get-file-version-legal-hold]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFileVersionLegalHold.html#getInfo-java.lang.String...- - -Get List of File Version Legal Holds --------------- -To get an iterable with all non-deleted file version legal holds for current -legal hold policy, call [`getFileVersionHolds(String... fields)`][get-lest-of-file-version-legal-holds]. -It is possible to specify maximum number of items per single response by calling -[`getFileVersionHolds(int limit, String... fields)`][get-lest-of-file-version-legal-holds-with-limit]. - - -```java -BoxLegalHoldPolicy policy = new BoxLegalHoldPolicy(api, id); -Iterable fileVersionHolds = policy.getFileVersionHolds(); -for (BoxFileVersionLegalHold.Info fileVersionHold : fileVersionHolds) { - // Do something with the file version legal hold. -} -``` - -[get-lest-of-file-version-legal-holds]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxLegalHoldPolicy.html#getFileVersionHolds-java.lang.String...- -[get-lest-of-file-version-legal-holds-with-limit]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxLegalHoldPolicy.html#getFileVersionHolds-int-java.lang.String...- diff --git a/doc/logging.md b/doc/logging.md deleted file mode 100644 index 30f39a10f..000000000 --- a/doc/logging.md +++ /dev/null @@ -1,101 +0,0 @@ -# Logging in SDK - -We are using `Java Util Logging` within Box Java SDK. You can read about details of this -approach [here](https://docs.oracle.com/javase/8/docs/technotes/guides/logging/overview.html). - -## Logging Levels - -We are using only few of the logging levels: - -- `FINE` - when logging debugging information, like success responses, -- `WARNING` - when API returned 4xx response code, -- `SEVERE` - when API returned 5XX response code. - -By default, the `Java Util Logging` prints to console output only messages that are logged at least at `INFO` level. You -can limit what is being logged by setting desired level on `com.box.sdk` logger like this: - -```java -import com.box.sdk.BoxLogger; - -BoxLogger.defaultLogger().setLevelToError(); -``` - -Example above will limit printed logs to `SEVERE` level only. - -### Getting FINE (ALL) logs printed - -By default `FINE` level logs are not printed to the console. There are several ways to do that. -One way is to define custom handler: - -```java -import java.util.logging.ConsoleHandler; -import java.util.logging.Handler; -import java.util.logging.Level; -import java.util.logging.Logger; - -Logger sdkLogger = BoxLogger.defaultLogger(); -Handler systemOut = new ConsoleHandler(); -// this handler will print any message to System.out -systemOut.setLevel(Level.ALL); -sdkLogger.addHandler(systemOut); -// allow sdk logger to print FINE logs -sdkLogger.setLevelToAll(); -// prevent logs from being processed by default Console handler -sdkLogger.setUseParentHandlers(false); -``` - -you can do this in your aplication initialization. - -### Turn logging off - -To disable logging use `BoxLogger.defaultLogger().turnLoggingOff()`. - -### Reset to default logging level - -To reset to default logging level use `BoxLogger.defaultLogger().resetToDefaultLevel()`. - - -## Putting SDK logs into application logs - -If you are using different logging solution like Log4J2 or Logstash you can use SLF4J and proper bridgge to get your -logs into desired solution. Below is an example of adding SDK logs into Logstash. First you will need to add -SLF4j and Logstash binaries: - -```groovy -implementation 'org.slf4j:jul-to-slf4j:1.7.32' // bridge from Java Util Logging to SLF4J API -implementation 'org.slf4j:slf4j-api:1.7.32' // define SLF4J API -implementation 'ch.qos.logback:logback-core:1.2.7' // use the Logback logging framework -implementation 'ch.qos.logback:logback-classic:1.2.7' // get bindings between SLF4J and Logback -``` - -Now when initializing application you will need to make Java Util Logging to use SLF4J. This sample is based on -description provided [here](http://www.slf4j.org/api/org/slf4j/bridge/SLF4JBridgeHandler.html): - -```java -import org.slf4j.bridge.SLF4JBridgeHandler; - -// Remove existing handlers attached to JUL root logger -SLF4JBridgeHandler.removeHandlersForRootLogger(); -// add SLF4JBridgeHandler to JUL's root logger -SLF4JBridgeHandler.install(); -``` - -Now all logs generated by SDK will be captured by Logback. If you want to see debug logs from SDK you will need to add -this configuration to your logback.xml file: - -```xml - -``` - -Below is a list of log levels used by SDK and coresponding Logback levels: - -| SDK | Logback | -:------:|:-------: -| ALL | ALL | -| OFF | OFF | -| FINE | DEBUG | -| INFO | INFO | -| WARN | WARN | -| SEVERE | ERROR | - -You can read more on java Util Logging to SLF4J bridge [here](http://www.slf4j.org/legacy.html#jul-to-slf4j). diff --git a/doc/metadata_template.md b/doc/metadata_template.md deleted file mode 100644 index 42d0d49b4..000000000 --- a/doc/metadata_template.md +++ /dev/null @@ -1,189 +0,0 @@ -Metadata Templates -================== - -Metadata that belongs to a file is grouped by templates. Templates allow the metadata service to provide a multitude of services, such as pre-defining sets of key:value pairs or schema enforcement on specific fields. - - - - - -- [Create Metadata Template](#create-metadata-template) -- [Update Metadata Template](#update-metadata-template) -- [Get Metadata Template](#get-metadata-template) - - [Get by scope and template key](#get-by-scope-and-template-key) - - [Get by ID](#get-by-id) -- [Get Enterprise Metadata Templates](#get-enterprise-metadata-templates) -- [Delete a Metadata Template](#delete-a-metadata-template) -- [Execute Metadata Query](#execute-metadata-query) - - - -Create Metadata Template ------------------------- - -The [`createMetadataTemplate(BoxAPIConnection api, String templateScope, String templateKey, String displayName, Boolean hidden, List fields)`][create-metadata-template] -method will create a metadata template schema. - -You can create custom metadata fields that will be associated with the metadata template. - - -```java -MetadataTemplate.Field metadataField = new MetadataTemplate.Field(); -metadataField.setType("string"); -metadataField.setKey("text"); -metadataField.setDisplayName("Text"); - -List fields = new ArrayList(); -fields.add(metadataField); - -MetadataTemplate template = MetadataTemplate.createMetadataTemplate(api, "enterprise", "CustomField", "Custom Field", false, fields); - -final JsonObject jsonObject = new JsonObject(); -jsonObject.add("text", "This is a test text"); - -Metadata metadata = new Metadata(jsonObject); -boxFile.createMetadata("CustomField", metadata); -``` - -[create-metadata-template]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/MetadataTemplate.html#createMetadataTemplate-com.box.sdk.BoxAPIConnection-java.lang.String-java.lang.String-java.lang.String-boolean-java.util.List- - -Update Metadata Template ------------------------- - -To update an existing metadata template, call the -[`updateMetadataTemplate(BoxAPIConnection api, String scope, String template, List fieldOperations)`][update-metadata-template] -method with the scope and key of the template, and the list of field operations to perform: - - -```java -List updates = new ArrayList(); - -String addCategoryFieldJSON = "{\"op\":\"addField\","\"data\":{" - + "\"displayName\":\"Category\",\"key\":\"category\",\"hidden\":false,\"type\":\"string\"}}"; -updates.add(new MetadataTemplate.FieldOperation(addCategoryFieldJSON)); - -String changeTemplateNameJSON = "{\"op\":\"editTemplate\",\"data\":{" - + "\"displayName\":\"My Metadata\"}}"; -updates.add(new MetadataTemplate.FieldOperation(changeTemplateNameJSON)); - -MetadataTemplate.updateMetadataTemplate(api, "enterprise", "myData", updates); -``` - -[update-metadata-template]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/MetadataTemplate.html#updateMetadataTemplate-com.box.sdk.BoxAPIConnection-java.lang.String-java.lang.String-java.util.List- - -Get Metadata Template ---------------------- - -### Get by scope and template key - -The [`getMetadataTemplate(BoxAPIConnection api)`][get-metadata-template-1] -method will return information about default metadata schema. Also, -[`getMetadataTemplate(BoxAPIConnection api, String templateKey)`][get-metadata-template-2] and -[`getMetadataTemplate(BoxAPIConnection api, String templateKey, String templateScope, String... fields)`][get-metadata-template-3] -can be used to set metadata template name, metadata scope and fields to retrieve. - - -```java -MetadataTemplate template = MetadataTemplate.getMetadataTemplate(api, "templateName"); -``` - -[get-metadata-template-1]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/MetadataTemplate.html#getMetadataTemplate-com.box.sdk.BoxAPIConnection- -[get-metadata-template-2]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/MetadataTemplate.html#getMetadataTemplate-com.box.sdk.BoxAPIConnection-java.lang.String- -[get-metadata-template-3]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/MetadataTemplate.html#getMetadataTemplate-com.box.sdk.BoxAPIConnection-java.lang.String-java.lang.String-java.lang.String...- - -### Get by ID - -The static [`MetadataTemplate.getMetadataTemplateByID(BoxAPIConnection api, String templateID)`][get-template-by-id] -method will return a specific metadata template. - - -```java -MetadataTemplate template = MetadataTemplate.getMetadataTemplateByID(api, "37c0204b-3fe1-4a32-b9da-f28e88f4c4c6"); -``` - -[get-template-by-id]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/MetadataTemplate.html#getMetadataTemplateByID-com.box.sdk.BoxAPIConnection-java.lang.String- - -Get Enterprise Metadata Templates ---------------------------------- - -Calling the static -[`getEnterpriseMetadataTemplates(BoxAPIConnection api, String... fields)`][get-enterprise-metadata-1] -will return an iterable that will page through all metadata templates within a user's enterprise. -Also, [`getEnterpriseMetadataTemplates(String templateScope, BoxAPIConnection api, String... fields)`][get-enterprise-metadata-2] and -[`getEnterpriseMetadataTemplates(String templateScope, int limit, BoxAPIConnection api, String... fields)`][get-enterprise-metadata-3] -can be used to set metadata scope, limit of items per single response. - - -```java -Iterable templates = MetadataTemplate.getEnterpriseMetadataTemplates(api); -for (MetadataTemplate templateInfo : templates) { - // Do something with the metadata template. -} -``` - -To return the metadata templates available to all enterprises pass in the -`global` scope. - - -```java -Iterable templates = MetadataTemplate.getEnterpriseMetadataTemplates('global', api); -for (MetadataTemplate templateInfo : templates) { - // Do something with the metadata template. -} -``` - -[get-enterprise-metadata-1]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/MetadataTemplate.html#getEnterpriseMetadataTemplates-com.box.sdk.BoxAPIConnection-java.lang.String...- -[get-enterprise-metadata-2]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/MetadataTemplate.html#getEnterpriseMetadataTemplates-java.lang.String-com.box.sdk.BoxAPIConnection-java.lang.String...- -[get-enterprise-metadata-3]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/MetadataTemplate.html#getEnterpriseMetadataTemplates-java.lang.String-int-com.box.sdk.BoxAPIConnection-java.lang.String...- - -Delete a Metadata Template --------------------------- - -The [`deleteMetadataTemplate(BoxAPIConnection api, String scope, String template)`][delete-metadata-template] -method will remove a metadata template schema from an enterprise. - - -```java -MetadataTemplate.deleteMetadataTemplate(api, "enterprise", "templateName"); -``` - -[delete-metadata-template]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/MetadataTemplate.html#deleteMetadataTemplate-com.box.sdk.BoxAPIConnection-java.lang.String-java.lang.String- - -Execute Metadata Query --------------------------- - -The [`executeMetadataQuery(BoxAPIConnection api, MetadataQuery queryBody)`][execute-metadata-query] method queries files and folders based on their metadata. - - -```java -String from = "enterprise_341532.test"; -String query = "testfield = :arg"; -String ancestorFolderId = "0"; -MetadataQuery.OrderBy primaryOrderBy = MetadataQuery.OrderBy.ascending("primarySortKey"); -MetadataQuery.OrderBy secondaryOrderBy = MetadataQuery.OrderBy.ascending("secondarySortKey"); - -MetadataQuery mQuery = new MetadataQuery(from); -mQuery.setQuery(query); -mQuery.setAncestorFolderId(ancestorFolderId); -mQuery.setOrderBy(primaryOrderBy, secondaryOrderBy); -mQuery.addParameter("arg", "test"); -mQuery.setFields("metadata.enterprise_341532.test.customField"); -BoxResourceIterable results = MetadataTemplate.executeMetadataQuery(api, mQuery); - -for (BoxItem.Info r: results) { - if (r instanceof BoxFile.Info) { - BoxFile.Info fileInfo = (BoxFile.Info) r; - Metadata fileMetadata = fileInfo.getMetadata("test", "enterprise_341532"); - String customFieldValue = fileMetadata.getString("/customField"); - System.out.println(customFieldValue); - } else if (r instanceof BoxFolder.Info) { - BoxFolder.Info folderInfo = (BoxFolder.Info) r; - Metadata folderMetadata = folderInfo.getMetadata("test", "enterprise_341532"); - String customFieldValue = folderMetadata.getString("/customField"); - System.out.println(customFieldValue); - } -} - -``` - -[execute-metadata-query]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/MetadataTemplate.html#executeMetadataQuery-com.box.sdk.BoxAPIConnection-com.box.sdk.MetadataQuery- diff --git a/doc/overview.md b/doc/overview.md deleted file mode 100644 index 50c6e3518..000000000 --- a/doc/overview.md +++ /dev/null @@ -1,193 +0,0 @@ -SDK Overview -============ - -This guide covers the basics behind the various components of the Box Java SDK. -It's also recommended that you take a look at [the -documentation](https://developers.box.com/docs/) for the Box API. - -* [Authentication](#authentication) -* [Resource Types](#resource-types) -* [Requests and Responses](#requests-and-responses) -* [Error Handling](#error-handling) -* [As-User](#as-user) -* [Suppressing Notifications](#suppressing-notifications) - -Authentication --------------- - -The first step in using the SDK is always authenticating and connecting to the -API. The SDK does this through the [`BoxAPIConnection`][box-api-connection] class. -This class represents an authenticated connection to a specific version of the Box -API. It is responsible for things such as: - -* Storing authentication information. -* Automatically refreshing tokens. -* Configuring rate-limiting, number of retry attempts and other connection - settings. - -You can also create more than one `BoxAPIConnection`. For example, you can have -a connection for each user if your application supports multiple user accounts. - -See the [Authentication guide](authentication.md) for details on how to create -and use `BoxAPIConnection`. - -[box-api-connection]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxAPIConnection.html - -Resource Types --------------- - -Resources types are the classes you'll use the most. Things like `BoxFile`, -`BoxFolder`, `BoxUser`, etc. are all resource types. A resource always has an ID -and an associated API connection. Instantiating and using a resource type is -simple: - -```java -// Print the name of the folder with ID "1234". -BoxFolder folder = new BoxFolder(api, "1234") -BoxFolder.Info info = folder.getInfo(); -System.out.println(info.getName()); -``` - -A resource type will always have the same API connection as the type that -instantiated it. For example, `creator` will have the same API connection that -`folder` does. - -```java -BoxFolder folder = new BoxFolder(api, "1234") -BoxFolder.Info info = folder.getInfo(); - -// This BoxUser has the same BoxAPIConnection as "folder". -BoxUser creator = info.getCreatedBy(); -``` - -Requests and Responses ----------------------- - -All communication with Box's API is done through `BoxAPIRequest` and -`BoxAPIResponse` (or their subclasses). These classes handle all the dirty work -of setting appropriate headers, handling errors, and sending/receiving data. - -You generally won't need to use these classes directly, as the resource types -are easier and cover most use-cases. However, these classes are extremely -flexible and can be used if you need to make custom API calls. - -Here's an example using `BoxAPIRequest` and `BoxJSONResponse` that gets a list -of items with some custom fields: - -```java -BoxAPIConnection api = new BoxAPIConnection("token"); -URL url = new URL("https://api.box.com/2.0/folders/0/items?fields=name,created_at") -BoxAPIRequest request = new BoxAPIRequest(api, url, "GET"); -BoxJSONResponse response = (BoxJSONResponse) request.send(); -String json = response.getJSON(); -``` - -Error Handling --------------- - -Unless otherwise noted, the classes and methods in the SDK can throw an -unchecked [`BoxAPIException`][api-exception] (unchecked meaning that the -compiler won't force you to handle it) if an error occurs. This includes network -errors or error statuses returned by the API. - -You should be aware of this when using the SDK so that your code can catch any -errors that might happen when communicating with Box. - -If the error was due to a general networking error (for example, if the network -connection was lost), the `BoxAPIException` will contain the underlying -`IOException` as its cause. - -If the error was due to an API error, the `BoxAPIException` will contain the -response code and body returned by the API. - -```java -BoxAPIConnection api = new BoxAPIConnection("token"); - -try { - BoxFolder rootFolder = BoxFolder.getRootFolder(api); -} catch (BoxAPIException e) { - // Log the response code and the error message returned by the API. - System.err.format("The API returned the error code: %d\n\n%s", - e.getResponseCode(), e.getResponse()); -} -``` - -[api-exception]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxAPIException.html - -As-User -------- - -As-User is used by enterprise administrators to make API calls for their managed -users. It can also be used by a Service Account to make API calls for managed users -or app users. - -As-User state is set on the [`BoxAPIConnection`][box-api-connection] instance with -[`asUser(String userID)`][as-user] and will be used for all requests made from that -API connection going forward, until the state is removed with [`asSelf()`][as-self]. - -```java -String userID = "12345"; -String fileID = "98765"; - -BoxAPIConnection api = new BoxAPIConnection("ACCESS_TOKEN"); - -BoxFile file = new BoxFile(api, fileID); - -// API call made as user associated with access token -BoxFile.Info info = file.getInfo(); - -api.asUser(userID); - -// API call made as user associated with userID -info = file.getInfo(); - -api.asSelf(); - -// API call made as user associated with access token again -BoxFile.Info info = file.getInfo(); -``` - -[as-user]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxAPIConnection.html#asUser-java.lang.String- -[as-self]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxAPIConnection.html#asSelf-- - -Suppressing Notifications -------------------------- - -If you are making administrative API calls (that is, your application has “Manage an Enterprise” -scope, and the user signing in is a co-admin with the correct "Edit settings for your company" -permission) then you can suppress both email and webhook notifications. This can be used, for -example, for a virus-scanning tool to download copies of everyone’s files in an enterprise, -without every collaborator on the file getting an email. All actions will still appear in users' -updates feed and audit logs. - -> __Note:__ This functionality is only available for approved applications. - -To turn on notification suppression for all calls made through a [`BoxAPIConnection`][box-api-connection] -instance, call [`suppressNotifications()`][suppress-notifications]. To re-enable notifications on an API -connection, call [`enableNotifications`][enable-notifications]. - -```java -String userID = "12345"; -String fileID = "98765"; -OutputStream downloadStream; - -BoxAPIConnection api = new BoxAPIConnection("ACCESS_TOKEN"); - -BoxFile file = new BoxFile(api, fileID); - -// Notifications are sent by default -downlaodStream = file.download(); - -api.suppressNotifications(); - -// Notifications are suppressed -downlaodStream = file.download(); - -api.enableNotifications(); - -// Notifications are sent again -downlaodStream = file.download(); -``` - -[suppress-notifications]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxAPIConnection.html#suppressNotifications-- -[enable-notifications]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxAPIConnection.html#enableNotifications-- diff --git a/doc/recent_items.md b/doc/recent_items.md deleted file mode 100644 index fd13016b8..000000000 --- a/doc/recent_items.md +++ /dev/null @@ -1,33 +0,0 @@ -Recent Items -============ - -Recent Items returns information about files that have been accessed by a user not long ago. It keeps track of items -that were accessed either in the last 90 days or the last 1000 items accessed (both conditions must be met). - - - - - -- [Get a User's Recent Items](#get-a-users-recent-items) - - - - -Get a User's Recent Items -------------------------- - -Get a list of all recent items the user has by calling -[`BoxRecents.getRecentItems(BoxAPIConnection api, int limit, String... fields)`][get-recents]. -This returns an ordered iterable of the [`BoxRecentItem`][recent-item] records, -which describe which item the user interacted with, when they interacted with it, -and what type of interaction it was. Any `fields` specified relate to the items -themselves (e.g. the recent files and folders). - - -```java -// Get the latest 100 items the user has interacted with -Iterable recentItems = BoxRecents.getRecentItems(api, 100); -``` - -[get-recents]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxRecents.html#getRecentItems-com.box.sdk.BoxAPIConnection-int-java.lang.String...- -[recent-item]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxRecentItem.html diff --git a/doc/retention_policies.md b/doc/retention_policies.md deleted file mode 100644 index 5c8801e64..000000000 --- a/doc/retention_policies.md +++ /dev/null @@ -1,320 +0,0 @@ -Retention Policies -====== - -A retention policy blocks permanent deletion of content for a specified amount of time. Admins can create retention policies and then later assign them to specific folders or their entire enterprise. - - - - -- [Create Retention Policy](#create-retention-policy) - - [Indefinite Retention Policies](#indefinite-policies) - - [Finite Retention Policies](#finite-policies) - - [Optional parameters](#optional-parameters) -- [Get Retention Policy](#get-retention-policy) -- [Update Retention Policy](#update-retention-policy) -- [Get Retention Policies](#get-retention-policies) -- [Get Retention Policy Assignments](#get-retention-policy-assignments) -- [Create Retention Policy Assignment](#create-retention-policy-assignment) -- [Get Retention Policy Assignment](#get-retention-policy-assignment) -- [Delete Retention Policy Assignment](#delete-retention-policy-assignment) -- [Get File Version Retention](#get-file-version-retention) -- [Get File Version Retentions](#get-file-version-retentions) -- [Get Files Under Retention For Assignment](#get-files-under-retention-for-assignment) -- [Get File Versions Under Retention For Assignment](#get-file-versions-under-retention-for-assignment) -- [Extend retention for a file](#extend-retention-for-a-file) - - - - -## Create Retention Policy - -### Indefinite policies -The static [`createIndefinitePolicy(BoxAPIConnection api, String name)`][create-indefinite-retention-policy] -method will let you create a new indefinite retention policy with a specified name. - - -```java -BoxRetentionPolicy.createIndefinitePolicy(api, name); -``` - -### Finite policies -The static [`BoxRetentionPolicy.createFinitePolicy(com.box.sdk.BoxAPIConnection, java.lang.String, int, com.box.sdk.BoxRetentionPolicy.BoxRetentionPolicyAction)`][create-finite-retention-policy] -method will let you create a new finite retention policy with a specified name, -amount of time to apply the retention policy (in days) and a disposition action. - -```java -BoxRetentionPolicy.createFinitePolicy(api, name, length, PermanentlyDelete); -``` - -### Optional parameters -Both finite and indefinite policies allow you to specify optional parameters using the [`RetentionPolicyParams`][policy-params] -object. - -```java -String notifiedUserID = "12345"; -String description = "Policy to retain all reports"; -RetentionPolicyParams optionalParams = new RetentionPolicyParams(); -optionalParams.setCanOwnerExtendRetention(true); -optionalParams.setAreOwnersNotified(true); -optionalParams.setDescription(description); -optionalParams.addCustomNotificationRecipient(notifiedUserID); - -// Create indefinite policy with optional parameters -BoxRetentionPolicy.createIndefinitePolicy(api, "Retain Stuff Forever", optionalParams); - -// Create finite policy with optional parameters -BoxRetentionPolicy.createFinitePolicy(api, "Keep One Year", 365, BoxRetentionPolicyAction.RemoveRetention, optionalParams); -``` - -[create-indefinite-retention-policy]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxRetentionPolicy.html#createIndefinitePolicy-com.box.sdk.BoxAPIConnection-java.lang.String- -[create-finite-retention-policy]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxRetentionPolicy.html#createFinitePolicy-com.box.sdk.BoxAPIConnection-java.lang.String-int-com.box.sdk.BoxRetentionPolicy.BoxRetentionPolicyAction- -[policy-params]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/RetentionPolicyParams.html - -## Get Retention Policy - -Calling [`getInfo(String... fields)`][get-info] will return a -[`BoxRetentionPolicy.Info'][retention-policy-info] object containing information -about the retention policy. If necessary to retrieve limited set of fields, it -is possible to specify them using the `fields` parameter. - - -```java -// Get the policy name and status for a given retention policy -BoxRetentionPolicy policy = new BoxRetentionPolicy(api, id); -policy.getInfo("policy_name", "status"); -``` - -[get-info]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxRetentionPolicy.html#getInfo-java.lang.String...- -[retention-policy-info]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxRetentionPolicy.Info.html - -## Update Retention Policy - -Updating a retention policy's information is done by calling -[`updateInfo(BoxRetentionPolicy.Info fieldsToUpdate)`][update-info]. - - -```java -BoxRetentionPolicy policy = new BoxRetentionPolicy(api, id); -BoxRetentionPolicy.Info policyInfo = policy.new Info(); -policyInfo.setPolicyName("new policy name"); -policy.updateInfo(policyInfo); -``` - -[update-info]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxRetentionPolicy.html#updateInfo-com.box.sdk.BoxRetentionPolicy.Info- - -## Get Retention Policies - -Calling the static [`getAll(BoxAPIConnection api, String... fields)`][get-retention-policies] -will return an iterable that will page through all of the retention policies. -It is possible to specify filter for the name of retention policy, filter for -the type of the policy, filter for the id of user, limit of items per single -response and fields to retrieve by calling the static -[`getAll(String name, String type, String userID, int limit, BoxAPIConnection api, String... fields)`][get-retention-policies-with-fields] -method. - - -```java -Iterable policies = BoxRetentionPolicy.getAll(api); -for (BoxRetentionPolicy.Info policyInfo : policies) { - // Do something with the retention policy. -} -``` - -[get-retention-policies]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxRetentionPolicy.html#getAll-com.box.sdk.BoxAPIConnection-java.lang.String...- -[get-retention-policies-with-fields]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxRetentionPolicy.html#getAll-java.lang.String-java.lang.String-java.lang.String-int-com.box.sdk.BoxAPIConnection-java.lang.String...- - -## Get Retention Policy Assignments - -Calling [`getAllAssignments(String... fields)`][get-all-assignments] will return -an iterable that will page through all of the assignments of the retention -policy. It is possible to specify maximum number of items per single response -and fields to retrieve by calling -[`getAllAssignments(int limit, String... fields)`][get-all-assignments-with-params]. -If it is necessary to retrieve only assignments of certain type, you can call -[`getFolderAssignments(int limit, String... fields)`][get-folder-assignments] or -[`getEnterpriseAssignments(int limit, String... fields)`][get-enterprise-assignments]. - - -```java -BoxRetentionPolicy policy = new BoxRetentionPolicy(api, id); -Iterable allAssignments = policy.getAllAssignments("assigned_by"); -Iterable folderAssignments = policy.getFolderAssignments(50, "assigned_by"); -Iterable enterpriseAssignments = policy.getEnterpriseAssignments(); -for (BoxRetentionPolicyAssignments.Info assignmentInfo : allAssignments) { - // Do something with the assignment. -} -for (BoxRetentionPolicyAssignments.Info assignmentInfo : folderAssignments) { - // Do something with the assignment. -} -for (BoxRetentionPolicyAssignments.Info assignmentInfo : enterpriseAssignments) { - // Do something with the assignment. -} -``` - -[get-all-assignments]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxRetentionPolicy.html#getAllAssignments-java.lang.String...- -[get-all-assignments-with-params]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxRetentionPolicy.html#getAllAssignments-int-java.lang.String...- -[get-folder-assignments]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxRetentionPolicy.html#getFolderAssignments-int-java.lang.String...- -[get-enterprise-assignments]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxRetentionPolicy.html#getEnterpriseAssignments-int-java.lang.String...- - -## Create Retention Policy Assignment - -To create new retention policy assignment call [`assignTo(BoxFolder target)`][create-assignment] method to assign the policy -to a specific folder, [`assignToEnterprise()`][create-assignment-to-enterprise] to assign the retention policy to the -entire enterprise, or [`assignToMetadataTemplate(String templateID, String startDateField, MetadataFieldFilter... filterFields)`][assign-to-metadata] -to assign the policy to items with a specific metadata template. - - -```java -// Assign the policy to the entire enterprise -BoxRetentionPolicy policy = new BoxRetentionPolicy(api, policyID); -policy.assignToEnterprise(); - -// Assign the policy to a single folder -BoxFolder folder = new BoxFolder(api, folderID); -policy.assignTo(folderID); - -// Assign the policy to all items with metadata template -String metadataTemplateID = "f0dce190-8106-43ca-9d67-7dce9b10a55e"; -policy.assignToMetadataTemplate(metadataTemplateID); -// You can also pass an optional `startDateField` parameter containing the ID of the metadata template's `date` field -String dateFieldID = "fb523725-04b1-4502-b871-eac305274533"; -policy.assignToMetadataTemplate(metadataTemplateID, dateFieldID); -``` - -[create-assignment]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxRetentionPolicy.html#assignTo-com.box.sdk.BoxFolder- -[create-assignment-to-enterprise]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxRetentionPolicy.html#assignToEnterprise-- -[assign-to-metadata]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxRetentionPolicy.html#assignToMetadataTemplate-java.lang.String-com.box.sdk.MetadataFieldFilter- - -## Get Retention Policy Assignment - -Calling [`getInfo(String... fields)`][get-assignment] will return a -[`BoxRetentionPolicyAssignment.Info`][policy-assignment-info] object containing -information about the retention policy assignment. - - -```java -BoxRetentionPolicyAssignment assignment = new BoxRetentionPolicyAssignment(api, id); -BoxRetentionPolicyAssignment.Info assignmentInfo = assignment.getInfo("assigned_to"); -``` - -[get-assignment]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxRetentionPolicyAssignment.html#getInfo-java.lang.String...- -[policy-assignment-info]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxRetentionPolicyAssignment.Info.html - -## Delete Retention Policy Assignment - -To delete Retention Policy Assignment call [`delete()`][delete-assignment] method. - - -```java -BoxRetentionPolicyAssignment assignment = new BoxRetentionPolicyAssignment(api, id); -assignment.delete(); -``` - -[delete-assignment]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxRetentionPolicyAssignment.html#delete() - - -## Get File Version Retention - -Calling [`getInfo(String... fields)`][get-file-version-retention] will return a -[`BoxFileVersionRetention.Info`][version-retention-info] object containing -information about the file version retention policy. - - -```java -BoxFileVersionRetention policy = new BoxFileVersionRetention(api, id); -BoxFileVersionRetention.Info policyInfo = policy.getInfo(); -``` - -[get-file-version-retention]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFileVersionRetention.html#getInfo-java.lang.String...- -[version-retention-info]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFileVersionRetention.Info.html - -## Get File Version Retentions - -To get an iterable with all file version retentions for the current retention -policy, call the static [`getAll(BoxAPIConnection api, String... fields)`][get-all-file-version-retentions] -method. It is possible to add filters to query passing a -[`BoxFileVersionRetention.QueryFilter`][query-filter] object as a parameter to -[`getRetentions(BoxAPIConnection api, BoxFileVersionRetention.QueryFilter filter, String... fields)`][get-all-file-version-retentions-with-filter]. - - -```java -BoxFileVersionRetention.QueryFilter filter = new BoxFileVersionRetention.QueryFilter() - .addFileID("0") - .addFileVersionID("1") - .addPolicyID("2") - .addDispositionAction(BoxRetentionPolicy.ACTION_PERMANENTLY_DELETE) - .addDispositionBefore(BoxDateFormat.parse("2016-09-15T13:15:35+0000")) - .addDispositionAfter(BoxDateFormat.parse("2014-09-15T13:15:35+0000")); -Iterable retentions - = BoxFileVersionRetention.getRetentions(api, filter, "file", "applied_at"); -for (BoxFileVersionRetention.Info retentionInfo : retentions) { - // Do something with the file version retention. -} -``` - -[get-all-file-version-retentions]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFileVersionRetention.html#getAll-com.box.sdk.BoxAPIConnection-java.lang.String...- -[query-filter]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFileVersionRetention.QueryFilter.html -[get-all-file-version-retentions-with-filter]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFileVersionRetention.html#getRetentions-com.box.sdk.BoxAPIConnection-com.box.sdk.BoxFileVersionRetention.QueryFilter-java.lang.String...- - -## Get Files Under Retention For Assignment - -To get an iterable with all files under retention for assignment -policy, call the [`getFilesUnderRetention(BoxAPIConnection api, int limit, String... fields)`][get-files-under-retention-for-assignment] -method. This will return an interable with [`BoxFile.Info`][file] objects containing information about the files. - - -```java -BoxRetentionPolicyAssignment policyAssignment = new BoxRetentionPolicyAssignment(api, id); -Iterable filesUnderRetention = policyAssignment.getFilesUnderRetention(); -for (BoxFile.Info item : filesUnderRetention){ - // Do something with the files under retention. -} -``` - -[get-files-under-retention-for-assignment]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxRetentionPolicyAssignment.html#getFilesUnderRetention-com.box.sdk.BoxAPIConnection-java.lang.String...- -[file]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.Info.html - -Get File Versions Under Retention For Assignment ------------------------------------------------- - -To get an iterable with all file versions under retention for assignment -policy, call the [`getFileVersionsUnderRetention(BoxAPIConnection api, int limit, String... fields)`][get-file-versions-under-retention-for-assignment] -method. This will return an interable with [`BoxFile.Info`][file] objects containing information about the file. -You can get version by calling [`BoxFile.Info#getVersion()`][file-version]. - - -```java -BoxRetentionPolicyAssignment policyAssignment = new BoxRetentionPolicyAssignment(api, id); -Iterable fileVersionsUnderRetention = policyAssignment.getFileVersionsUnderRetention(); -for (BoxFile.Info file : fileVersionsUnderRetention){ - BoxFileVersion version = file.getVersion(); - // Do something with the file version under retention. -} -``` - -[get-file-versions-under-retention-for-assignment]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxRetentionPolicyAssignment.html#getFileVersionsUnderRetention-com.box.sdk.BoxAPIConnection-java.lang.String...- -[file-version]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFileVersion.html - -## Extend retention for a file - -Once you create retention policy and assign it to a folder all files and subfolders will have same policy applied. -If you need to extend retention for some file you can change it's `dispositionAt` value: - -```java -BoxFile.Info info = someFile.getInfo(); -// to read current disposition date coming from retention policy -BoxFile.Info info = someFile.getInfo("disposition_at"); -Date currentDispositionDate = info.getDispositionAt(); - -// calculate new disposition date -Date dispositionAt = Date.from( - LocalDateTime.ofInstant(currentDispositionDate.toInstant(), ZoneId.of("Z")) - .plusDays(30) - .toInstant(UTC) -); - -// to change disposition date on a file you need to updateInfo -info.setDispositionAt(dispositionAt); -uploadedFile.updateInfo(info); - -``` diff --git a/doc/search.md b/doc/search.md deleted file mode 100644 index 54bc3abac..000000000 --- a/doc/search.md +++ /dev/null @@ -1,52 +0,0 @@ -Search -====== - -Different examples of search which have been implemented in the example [SearchExamplesAsAppUser.java](https://github.com/box/box-java-sdk/blob/main/src/example/java/com/box/sdk/example/SearchExamplesAsAppUser.java) - -For more information refer to the -[Search API documentation](https://developer.box.com/v2.0/reference#searching-for-content). - - - - - -- [Search](#search) - - - -Search ------- - -A search can be performed in your Box instance with specified starting position with -[`searchRange(long offset, long limit, BoxSearchParameters queryParams)`][search] - -You can use the `limit` and `offset` parameters to page through the search results. - - -```java -// Find the first 10 files matching "taxes" -long offsetValue = 0; -long limitValue = 10; -BoxSearch boxSearch = new BoxSearch(api); -BoxSearchParameters searchParams = new BoxSearchParameters(); -searchParams.setQuery("taxes"); -searchParams.setType("file"); -PartialCollection searchResults = boxSearch.searchRange(offsetValue, limitValue, searchParams); -``` - -You can also sort the search results with the `sort` and `direction` flags passed into BoxSearch. This allows for the -order of items returned to be maintained. The `sort` field can only be set to `modified_at` currently. For direction you -can specify either `DESC` for descending order or `ASC` for ascending order to sort the results. - -```java -long offsetValue = 0; -long limitValue = 10; -BoxSearch boxSearch = new BoxSearch(api); -BoxSearchParameters searchParams = new BoxSearchParameters(); -searchParams.setQuery("taxes"); -searchParams.setSort("modified_at"); -searchParams.setDirection("DESC"); -PartialCollection searchResults = boxSearch.searchRange(offsetValue, limitValue, searchParams); -``` - -[search]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxSearch.html#searchRange-long-long-com.box.sdk.BoxSearchParameters- diff --git a/doc/shared-items.md b/doc/shared-items.md deleted file mode 100644 index 33c580ac9..000000000 --- a/doc/shared-items.md +++ /dev/null @@ -1,32 +0,0 @@ -Shared Items -============ - -Shared Items represent files and folders on Box accessed via a shared link. - -* [Get a Shared Item](#get-a-shared-item) - -Get a Shared Item ------------------ - -To get the file or folder information for a shared link, you can call -[`BoxItem.getSharedItem(BoxAPIConnection api, String sharedLink)`][get-shared-item] -with the shared link to get information about the item behind it. - -```java -String sharedLink = "https://app.box.com/s/abcdefghijklmnopqrstuvwxyz123456"; -BoxItem.Info itemInfo = BoxItem.getSharedItem(api, sharedLink); -``` - -If the shared link is password-protected, call -[`BoxItem.getSharedItem(BoxAPIConnection api, String sharedLink, String password)`][get-shared-item-password] -with the shared link and password. - - -```java -String sharedLink = "https://app.box.com/s/abcdefghijklmnopqrstuvwxyz123456"; -String password = "foo"; -BoxItem.Info itemInfo = BoxItem.getSharedItem(api, sharedLink, password); -``` - -[get-shared-item]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxItem.html#getSharedItem-com.box.sdk.BoxAPIConnection-java.lang.String- -[get-shared-item-password]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxItem.html#getSharedItem-com.box.sdk.BoxAPIConnection-java.lang.String-java.lang.String- diff --git a/doc/sign_requests.md b/doc/sign_requests.md deleted file mode 100644 index 1469867d5..000000000 --- a/doc/sign_requests.md +++ /dev/null @@ -1,152 +0,0 @@ -Sign Requests -================== - -Sign Requests are used to request e-signatures on documents from signers. -A Sign Request can refer to one or more Box Files and can be sent to one or more Box Sign Request Signers. - - - - -- [Create Sign Request](#create-sign-request) -- [Get all Sign Requests](#get-all-sign-requests) -- [Get Sign Request by ID](#get-sign-request-by-id) -- [Cancel Sign Request](#cancel-sign-request) -- [Resend Sign Request](#resend-sign-request) - - - -Create Sign Request ------------------------- - -The [`createSignRequest(BoxAPIConnection api, List signers, List files, String parentFolderId)`][create-sign-request] -method will create a Sign Request. - -You need to provide 1 to 10 files (from which the signing document will be created) and at least one signer to receive the Sign Request. You can use [`BoxSignRequestFile`][box-sign-request-file] -and [`BoxSignRequestSigner`][box-sign-request-signer] classes to provide the necessary data. - - -```java -List files = new ArrayList(); -BoxSignRequestFile file = new BoxSignRequestFile("12345"); -files.add(file); - -// you can also use specific version of the file -BoxFile file = new BoxFile(api, "12345"); -List versions = file.getVersions(); -BoxFileVersion firstVersion = versions.get(0); -BoxSignRequestFile file = new BoxSignRequestFile(firstVersion.getFileID(), firstVersion.getVersionID()); - -List signers = new ArrayList(); -BoxSignRequestSigner newSigner = new BoxSignRequestSigner("signer@mail.com"); -signers.add(newSigner); - -String destinationParentFolderId = "55555"; - -BoxSignRequest.Info signRequestInfo = BoxSignRequest.createSignRequest(api, files, - signers, destinationParentFolderId); -``` - -[`createSignRequest`][create-sign-request] allows you to specify optional parameters using the [`BoxSignRequestCreateParams`][sign-request-create-params] -object. - -```java -List files = new ArrayList(); - BoxSignRequestFile file = new BoxSignRequestFile("12345"); - files.add(file); - -List signers = new ArrayList(); -BoxSignRequestSigner newSigner = new BoxSignRequestSigner("signer@mail.com"); -signers.add(newSigner); - -String destinationParentFolderId = "55555"; - -BoxSignRequestCreateParams createParams = new BoxSignRequestCreateParams() - .setIsDocumentPreparationNeeded(true); - -BoxSignRequest.Info signRequestInfo = BoxSignRequest.createSignRequest(api, files, - signers, destinationParentFolderId, createParams); -``` - -If you set ```isDocumentPreparationNeeded``` flag to true, you need to visit ```prepareUrl``` before the Sign Request will be sent. -For more information on ```isDocumentPreparationNeeded``` and the other ```BoxSignRequestCreateParams``` available, please refer to the [developer documentation](https://developer.box.com/guides/box-sign/). - -[sign-request-create-params]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxSignRequestCreateParams.html -[create-sign-request]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxSignRequest.html#createSignRequest-com.box.sdk.BoxAPIConnection-java.util.List-java.util.List-java.lang.String- -[box-sign-request-signer]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxSignRequestSigner.html -[box-sign-request-file]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxSignRequestFile.html - -Get All Sign Requests ------------------------- - -Calling the static [`getAll(BoxAPIConnection api, String... fields)`][get-all-sign-requests] -will return an iterable that will page through all the Sign Requests. - -The static -[`getAll(int limit, BoxAPIConnection api, String... fields)`][get-all-sign-requests-with-fields] -method offers `limit` and `fields` parameters. The `limit` parameter specifies the maximum number of items to be returned in a single response. The `fields` parameter is used to specify what additional properties should be returned on the `BoxSignRequest.Info` objects. For more information on what `fields` are available, please refer to the [developer documentation](https://developer.box.com/guides/box-sign/). - - -```java -Iterable signRequests = BoxSignRequest.getAll(api); -for (BoxSignRequest.Info signRequestInfo : signRequests) { - // Do something with each `signRequestInfo`. -} -``` - -[get-all-sign-requests]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxSignRequest.html#getAll-com.box.sdk.BoxAPIConnection-java.lang.String...- -[get-all-sign-requests-with-fields]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxSignRequest.html#getAll-int-com.box.sdk.BoxAPIConnection-java.lang.String...- - -Get Sign Request by ID ------------------------- - -Calling [`getInfo(String fields ...)`][get-sign-request-by-id] will return a [`BoxSignRequest.Info`][box-sign-request-info] object -containing information about the Sign Request. -The `fields` parameter is used to specify what additional properties should be returned on the `BoxSignRequest.Info` objects. - - -```java -BoxSignRequest signRequest = new BoxSignRequest(api, id); -BoxSignRequest.Info signRequestInfo = signRequest.getInfo(); - -//using `fields` parameter -BoxSignRequest.Info signRequestInfoWithFields = signRequest.getInfo("status") - -``` - -[get-sign-request-by-id]:http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxSignRequest.html#getInfo-java.lang.String...- -[box-sign-request-info]:http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxSignRequest.Info.html - - -Cancel Sign Request ------------------------- - -Calling [`cancel()`][cancel-sign-request] will cancel a created Sign Request. - - -```java -BoxSignRequest signRequest = new BoxSignRequest(api, id); -BoxSignRequest.Info signRequestInfo = signRequest.getInfo(); - -signRequestInfo.cancel(); -``` - -[cancel-sign-request]:http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxSignRequest.html#cancel-- - - -Resend Sign Request ------------------------- - -Calling [`resend()`][resend-sign-request] will resend a Sign Request to all signers that have not signed it yet. -There is an 10-minute cooling-off period between re-sending reminder emails. If this method is called during the -cooling-off period, a [`BoxAPIException`][box-api-exception] will be thrown. - - -```java -BoxSignRequest signRequest = new BoxSignRequest(api, id); -BoxSignRequest.Info signRequestInfo = signRequest.getInfo(); - -signRequestInfo.resend(); -``` - -[resend-sign-request]:http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxSignRequest.html#resend-- -[box-api-exception]:http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxAPIException.html diff --git a/doc/sign_templates.md b/doc/sign_templates.md deleted file mode 100644 index 9f2e5d192..000000000 --- a/doc/sign_templates.md +++ /dev/null @@ -1,51 +0,0 @@ -Sign Templates -================== - -Box Sign enables you to create templates so you can automatically add the same fields and formatting to requests for signature. With templates, you don't need to repetitively add the same fields to each request every time you send a new document for signature. - -Making and testing a template takes a few minutes, but when done it makes working with Box Sign easier and faster. - - - - -- [Get all Sign Templates](#get-all-sign-templates) -- [Get Sign Template by ID](#get-sign-template-by-id) - - - -Get All Sign Templates ------------------------- - -Calling the static [`getAll(BoxAPIConnection api)`][get-all-sign-templates] -will return an iterable that will page through all the Sign Templates. - -The static -[`getAll(BoxAPIConnection api, int limit)`][get-all-sign-templates-with-limit] -method offers `limit` parameter. The `limit` parameter specifies the maximum number of items to be returned in a single response. - - -```java -Iterable signTemplates = BoxSignTemplate.getAll(api); -for (BoxSignTemplate.Info signTemplateInfo : signTemplates) { - // Do something with each `signTemplateInfo`. -} -``` - -[get-all-sign-templates]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxSignTemplate.html#getAll-com.box.sdk.BoxAPIConnection- -[get-all-sign-templates-with-limit]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxSignTemplate.html#getAll-com.box.sdk.BoxAPIConnection-int- - -Get Sign Template by ID ------------------------- - -Calling [`getInfo()`][get-sign-template-by-id] will return a [`BoxSignTemplate.Info`][box-sign-template-info] object -containing information about the Sign Template. - - - -```java -BoxSignTemplate signTemplate = new BoxSignTemplate(api, id); -BoxSignTemplate.Info signTemplateInfo = signTemplate.getInfo(); -``` - -[get-sign-template-by-id]:http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxSignTemplate.html#getInfo- -[box-sign-template-info]:http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxSignTemplate.Info.html diff --git a/doc/storage_policy.md b/doc/storage_policy.md deleted file mode 100644 index 1da7c9baf..000000000 --- a/doc/storage_policy.md +++ /dev/null @@ -1,132 +0,0 @@ -Storage Policy -============== - -Allows the enterprise admin to manage the Storage Policies for users in their -enterprise. Used for an enterprise to decide storage location for users based on -where they work/reside. - -* [Get Storage Policy](#get-storage-policy) -* [Get List of Storage Policies](#get-list-of-storage-policies) -* [Create New Assignment](#create-new-assignment) -* [Get Assignment](#get-assignment) -* [Get Assignment For Target](#get-assignment-for-target) -* [Update Existing Assignment](#update-existing-assignment) -* [Assign Storage Policy](#assign-storage-policy) -* [Delete Assignment](#delete-assignment) - -Get Storage Policy ------------------- - -Calling [`getInfo(String fields ...)`][get-info] will return BoxStoragePolicy.Info object -containing information about the storage policy. If necessary to retrieve -limited set of fields. It is possible to specify them using param. - - -```java -BoxStoragePolicy storagePolicy = new BoxStoragePolicy(api, id); -BoxStoragePolicy.Info storagePolicyInfo = storagePolicy.getInfo(); -``` - -[get-info]:http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxStoragePolicy.html#getInfo-- - -Get List of Storage Policies ----------------------------- - -Calling the static [`getAll(BoxAPIConnection api)`][get-list-of-storage-policies] -will return an iterable that will page through all of the storage policies. -It is possible to specify maximum number of items per response and fields to retrieve by -calling the static [`getAll(BoxAPIConnection api, int limit, String fields ...)`][get-list-of-storage-policies-with-fields] method. - - -```java -Iterable storagePolicies = BoxStoragePolicy.getAll(api); -for (BoxStoragePolicy.Info storagePolicyInfo : storagePolicies) { - //Do something with the storage policy. -} -``` - -[get-list-of-storage-policies]:http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxStoragePolicy.html#getAll-- -[get-list-of-storage-policies-with-fields]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxStoragePolicy.html#getAll-java.lang.String...- - -Create New Assignment ---------------------- - -To create new storage policy assignment call [`create(BoxAPIConnection api, String policyID, String userID)`][create] method. - - -```java -BoxStoragePolicyAssignment.Info assignmentInfo = BoxStoragePolicyAssignment.create(api, policyID, userID); -``` - -[create]:http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxStoragePolicyAssignment.html#create-com.box.sdk.BoxAPIConnection-java.lang.String-java.lang.String- - -Update Existing Assignment --------------------------- - -Updating a storage policy assignment information is done by calling -[`updateInfo(BoxStoragePolicyAssignment.Info updatedInfo)`][update-info]. - - -```java -BoxStoragePolicyAssignment storagePolicyAssignment = new BoxStoragePolicyAssignment(api, "ASSIGNMENT_ID"); -BoxStoragePolicyAssignment.Info assignmentInfo = storagePolicyAssignment.new Info(); -assignmentInfo.setStoragePolicyID("NEW_STORAGE_POLICY_ID"); -storagePolicyAssignment.updateInfo(assignmentInfo); -``` - -[update-info]:http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxStoragePolicyAssignment.html#updateInfo-com.box.sdk.BoxStoragePolicyAssignment.Info- - -Get Assignment --------------- - -Calling [`getInfo(String fields ...)`][get-assignment] will return a BoxStoragePolicyAssignment.Info object containing information -about the storage policy assignment. - - -```java -BoxStoragePolicyAssignment storagePolicyAssignment = new BoxStoragePolicyAssignment(api, id); -BoxStoragePolicyAssignment.Info assignmentInfo = storagePolicyAssignment.getInfo(); -``` - -[get-assignment]:http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxStoragePolicyAssignment.html#getInfo-- - -Get Assignment for Target -------------------------- - -Calling [`getAssignmentForTarget(BoxAPIConnection api, String resolvedForType, String resolvedForID)`][get-assignment-for-target] will return a BoxStorageAssignment.Info -object containing information about the storage policy assignment. - - -```java -BoxStoragePolicyAssignment.Info assignmentInfo = BoxStoragePolicyAssignment.getAssignmentForTarget(api, "user", "1234") -``` - -[get-assignment-for-target]:http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxStoragePolicyAssignment.html#getAssignmentForTarget-com.box.BoxAPIConnection-java.lang.String-java.lang.String- - -Assign Storage Policy ---------------------- - -Calling [`assign(BoxAPIConnection api, String storagePolicyID, String userID)`][assign] will check if this user already has storage policy assigned to them. If not then a new -this user will be assigned the specified storage policy. - - -```java -BoxStoragePolicyAssignment.Info assignmentInfo = BoxStoragePolicyAssignment.assign(api, "1234", "5678"); -``` - -[assign]:http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxStoragePolicyAssigbment.html#assign-com.box.BoxAPIConnection-java.lang.String-java.lang.String- - -Delete Assignment ------------------ - -Calling [`delete()`][delete] will remove the storage policy assignment from the user. - - -```java -BoxStoragePolicyAssignment assignment = new BoxStoragePolicyAssignment(api, "dXNlcl8xMjM0"); -assignment.delete(); -``` - -[delete]:http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxStoragePolicyAssignment.html#delete-- - - diff --git a/doc/tasks.md b/doc/tasks.md deleted file mode 100644 index de1927f14..000000000 --- a/doc/tasks.md +++ /dev/null @@ -1,182 +0,0 @@ -Tasks -===== - -Task objects represent a user-created task on a file. - - - - - -- [Get a Task's Information](#get-a-tasks-information) -- [Get the Tasks on a File](#get-the-tasks-on-a-file) -- [Add a Task to a File](#add-a-task-to-a-file) -- [Update a Task's Information](#update-a-tasks-information) -- [Delete a Task](#delete-a-task) -- [Get a Task's Assignments](#get-a-tasks-assignments) -- [Get Information About a Task Assignment](#get-information-about-a-task-assignment) -- [Add a Task Assignment](#add-a-task-assignment) -- [Delete a Task Assignment](#delete-a-task-assignment) -- [Update a Task Assignment](#update-a-task-assignment) - - - -Get a Task's Information ------------------------- - -Calling [`getInfo()`][get-info] on a task returns a snapshot of the task's -info. - - -```java -BoxTask task = new BoxTask(api, "id"); -BoxTask.Info info = task.getInfo(); -``` - -[get-info]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTask.html#getInfo-- - -Get the Tasks on a File ------------------------ - -You can get all of the tasks on a file by calling the -[`getTasks()`][get-tasks] method. - - -```java -BoxFile file = new BoxFile(api, "id"); -List tasks = file.getTasks(); -``` - -[get-tasks]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#getTasks-- - -Add a Task to a File --------------------- - -A task can be added to a file with the -[`addTask(BoxTask.Action action, String message, Date dueAt)`][add-task] method. - - -```java -BoxFile file = new BoxFile(api, "id"); -Date dueAt = new Date(); -file.addTask(BoxTask.Action.REVIEW, "Please review this file.", dueAt); -``` - -[add-task]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#addTask-com.box.sdk.BoxTask.Action-java.lang.String-java.util.Date- - -Update a Task's Information ---------------------------- - -The message of a task can be changed with the -[`updateInfo(BoxTask.Info fieldsToUpdate)`][update-info] method. - - -```java -BoxTask task = new BoxTask(api, "id"); -BoxTask.Info info = task.new Info(); -info.setMessage("An edited message."); -task.updateInfo(info); -``` - -[update-info]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTask.html#updateInfo-com.box.sdk.BoxTask.Info- - -Delete a Task -------------- - -A task can be deleted with the [`delete()`][delete] method. - - -```java -BoxTask task = new BoxTask(api, "id"); -task.delete(); -``` - -[delete]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxTask.html#delete-- - -Get a Task's Assignments ------------------------- - -Retreive a tasks assignments with the [`getAssignments()`][get-assignments] method. - - -```java -BoxTask task = new BoxTask(api, "id"); -task.getAssignments(); -``` - -[get-assignments]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxTask.html#getAssignments-- - -Get Information About a Task Assignment ---------------------------------------- - -To look up information about a task assignment by its ID, instantiate the -[`BoxTaskAssignment`][task-assignment-object] object with the ID, and call [`getInfo()`][get-assignment-info] -on the assignment. To retrieve only specific fields on the task assignment, call -[`getInfo(String... fields)`][get-assignment-fields] with the fields to retrieve. - - -```java -String assignmentID = "4256974"; -BoxTaskAssignment.Info assignmentInfo = new BoxTaskAssignment(api, assignmentID).getInfo(); -``` - -[task-assignment-object]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTaskAssignment.html -[get-assignment-info]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTaskAssignment.html#getInfo-- -[get-assignment-fields]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTaskAssignment.html#getInfo-java.lang.String...- - -Add a Task Assignment ---------------------- - -An assignment can be added to a task with the -[`addAssignment(BoxUser assignee)`][add-assignment] method. - - -```java -BoxUser user = new BoxUser(api, "user-id") -BoxTask task = new BoxTask(api, "id"); -task.addAssignment(user); -``` - -[add-assignment]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTask.html#addAssignment-com.box.sdk.BoxUser- - -Delete a Task Assignment ------------------------- - -An assignment can be deleted from a task with the -[`delete()`][delete-assignment] method on a [`BoxTaskAssignment`][task-assignment-object] -instance. - - -```java -BoxTaskAssignment taskAssignment = new BoxTaskAssignment(api, "id"); -taskAssignment.delete(); -``` - -[delete-assignment]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTaskAssignment.html#delete-- - -Update a Task Assignment ------------------------- - -A task assignment can be updated with the -[`updateInfo(BoxTask.Info fieldsToUpdate)`][update-assignment] method. - -Updating the resolution state: - -```java -String assignmentID = "12345"; -BoxTaskAssignment taskAssignment = new BoxTaskAssignment(api, assignmentID); -BoxTaskAssignment.Info info = taskAssignment.getInfo(); -info.setResolutionState(BoxTaskAssignment.ResolutionState.APPROVED); -taskAssignment.updateInfo(info); -``` - -Updating the message: - -```java -String assignmentID = "12345"; -BoxTaskAssignment taskAssignment = new BoxTaskAssignment(api, assignmentID); -BoxTaskAssignment.Info info = taskAssignment.getInfo(); -info.setMessage("Please review the meeting notes"); -taskAssignment.updateInfo(info); -``` - -[update-assignment]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTaskAssignment.html#updateInfo-com.box.sdk.BoxTaskAssignment.Info- diff --git a/doc/terms_of_service.md b/doc/terms_of_service.md deleted file mode 100644 index 6ec68cc66..000000000 --- a/doc/terms_of_service.md +++ /dev/null @@ -1,154 +0,0 @@ -Terms of Service -================ - -Terms of Service allows Box Admins to configure a custom Terms of Service for end users to -accept/re-accept/decline for platform applications - - - - - -- [Terms of Service](#terms-of-service) - - [Create a Terms of Service](#create-a-terms-of-service) - - [Edit a Terms of Service](#edit-a-terms-of-service) - - [Get a Terms of Service](#get-a-terms-of-service) - - [Get All Terms of Services](#get-all-terms-of-services) - - [Accept or Decline a Terms of Service for New User](#accept-or-decline-a-terms-of-service-for-new-user) - - [Accept or Decline a Terms of Service for Existing User](#accept-or-decline-a-terms-of-service-for-existing-user) - - [Get User Status on a Terms of Service](#get-user-status-on-a-terms-of-service) - - - -Create a Terms of Service -------------------------- - -A terms of service can be created in an enterprise. Please note that only two can be created. One external -and one managed. If a terms of service already exists please use the update call to change the current -terms of service. - -You can create a custom terms of service by calling -[`create(BoxAPIConnection api, BoxTermsOfService.TermsOfServiceStatus status, BoxTermsOfService.TermsOfServiceType type, String text)`][createTermsOfService]. - - -```java -BoxTermsOfService.Info newTOS = BoxTermsOfService.create( - api, - BoxTermsOfService.TermsOfServiceStatus.ENABLED, - BoxTermsOfService.TermsOfServiceType.EXTERNAL, - "Terms of Service..." -); -``` - -[createTermsOfService]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTermsOfService.html#create-com.box.sdk.BoxAPIConnection-com.box.sdk.BoxTermsOfService.TermsOfServiceStatus-com.box.sdk.BoxTermsOfService.TermsOfServiceType-java.lang.String- - -Edit a Terms of Service ------------------------ - -You can update a terms of service status and text after you have created them by calling -[`updateInfo(BoxTermsOfService.Info fieldsToUpdate)`][update-terms-of-service] - - -```java -BoxTermsOfService termsOfService = new BoxTermsOfService(api, "tos-id"); -BoxTermsOfService.Info termsOfServiceInfo = termsOfService.new Info(); -termsOfServiceInfo.setStatus(BoxTermsOfService.TermsOfServiceStatus.DISABLED); -termsOfServiceInfo.setText("New Terms of Service Text"); -termsOfService.updateInfo(termsOfService); -``` - -[update-terms-of-service]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTermsOfService.html#updateInfo-com.box.sdk.BoxTermsOfService.Info- - -Get a Terms of Service ----------------------- - -You can retrieve a terms of service by providing the ID and calling -[`getInfo()`][getTermsOfServiceInfo]. - - -```java -BoxTermsOfService termsOfService = new BoxTermsOfService(api, "tos-id"); -BoxTermsOfService.Info tosInfo = termsOfService.getInfo(); -``` - -[getTermsOfServiceInfo]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTermsOfService.html#getInfo-- - -Get All Terms of Services -------------------------- - -You can also retrieve all terms of service in your enterprise by calling -[`getAllTermsOfServices(BoxAPIConnection api)`][get-all-terms-of-services1]. -This will return an iterable that will page through all of the enterprises terms of services. - - -```java -List termsOfServices = BoxTermsOfService.getAllTermsOfServices(api); -for(BoxTermsOfService.Info termsOfServiceInfo : termsOfServices){ - // Do something with the terms of service. -} -``` - -You can also filter by managed or external terms of service by calling -[`getAllTermsOfServices(BoxAPIConnection api, BoxTermsOfService.TermsOfServiceType type)`][get-all-terms-of-services2]. - -[get-all-terms-of-services1]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTermsOfService.html#getAllTermsOfServices-com.box.sdk.BoxAPIConnection- -[get-all-terms-of-services2]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTermsOfService.html#getAllTermsOfServices-com.box.sdk.BoxAPIConnection-com.box.sdk.BoxTermsOfService.TermsOfServiceType- - - -Accept or Decline a Terms of Service for New User -------------------------------------------------- - -For new users you can accept or decline a terms of service by calling -[`create(BoxAPIConnection api, String tosID, Boolean accepted, String userID)`][create-user-status] - - -```java -BoxTermsOfService.Info newUserStatus = BoxTermsOfServiceUserStatus.create(api, "tos-id", true, "user-id"); -``` - -You can only create a new user status on a terms of service if the user has never accepted/declined a terms of service. -If they have then you will need to make the update call. - -[create-user-status]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTermsOfServiceUserStatus.html#create-com.box.sdk.BoxAPIConnection-java.lang.String-java.lang.Boolean-java.lang.String- - -Accept or Decline a Terms of Service for Existing User ------------------------------------------------------- - -For an existing user you can accept or decline a terms of service by calling -[`updateInfo(BoxTermsOfService.Info fieldsToUpdate)`][update-user-status]. - - -```java -BoxTermsOfServiceUserStatus tosUserStatus = new BoxTermsOfServiceUserStatus(api, "tos-user-status-id"); -BoxTermOfServiceUserStatus.Info tosUserStatusInfo = tosUserStatus.new Info(); -tosUserStatusInfo.setStatus(newStatus); -tosUserStatus.updateInfo(tosUSerStatusInfo); -``` - -[update-user-status]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTermsOfServiceUserStatus.html#updateInfo-com.box.sdk.BoxTermsOfServiceUserStatus.Info- - -Get User Status on a Terms of Service -------------------------------------- - -You can retrieve the terms of service status for a user by calling -[`getInfo(BoxAPIConnection api, String tosID, String userID)`][get-user-status1] - - -```java -List tosUserStatusInfo = BoxTermsOfServiceUserStatus.getInfo(api, "tos-id", "user-id"); -for(BoxTermsOfServiceUserStatus.Info info : toUserStatusInfo){ - // Do something with the user status on terms of service. -} -``` - -Alternatively you can get the user status by the ID of the terms of service by -calling [`getInfo(BoxAPIConnection api, String tosID)`][get-user-status2]. - -```java -List tosUserStatusInfo = BoxTermsOfServiceUserStatus.getInfo(api, "tos-id"); -for(BoxTermsOfServiceUserStatus.Info info : toUserStatusInfo){ - // Do something with the user status on terms of service. -} -``` - -[get-user-status1]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTermsOfServiceUserStatus.html#getInfo-com.box.sdk.BoxAPIConnection-java.lang.String- -[get-user-status2]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTermsOfServiceUserStatus.html#getInfo-com.box.sdk.BoxAPIConnection-java.lang.String-java.lang.String- diff --git a/doc/trash.md b/doc/trash.md deleted file mode 100644 index ea4f83044..000000000 --- a/doc/trash.md +++ /dev/null @@ -1,189 +0,0 @@ -Trash -===== - -Under normal circumstances, when an item in Box is deleted, it is not actually erased immediately. Instead, it is -moved to the Trash. The Trash allows you to recover files and folders that have been deleted. By default, items in -the Trash will be purged after 30 days. - - - - - -- [Get Trashed Items](#get-trashed-items) -- [Get Trashed File Information](#get-trashed-file-information) -- [Get Trashed Folder Information](#get-trashed-folder-information) -- [Permanently Delete File From Trash](#permanently-delete-file-from-trash) -- [Permanently Delete Folder From Trash](#permanently-delete-folder-from-trash) -- [Restore a File from the Trash](#restore-a-file-from-the-trash) -- [Restore a Folder from the Trash](#restore-a-folder-from-the-trash) - - - -Get Trashed Items ------------------ - -The [`BoxTrash`][trash-object] implements `Iterable`, so to get -the collection of items currently in the trash, simply iterate over it. - - -```java -BoxTrash trash = new BoxTrash(api); -for (BoxItem.Info itemInfo : trash) { - // Process the item -} -``` - -Alternatively you can specify sort order, limit, use marker based pagination or specify which fields you want to extract with -[`BoxTrash#items`][trash-items]. - -To use sorting you have to use offset based pagination: -```java -BoxTrash trash = new BoxTrash(api); -Iterable trashEntries = trash.items( - SortParameters.ascending("name"), - PagingParameters.offset(0, 500) -); -for (BoxItem.Info trashEntry : trashEntries) { - // Process the item -} -``` -If you have a lot of items in trash and offset value is in tens of thousands it is better to use marker based pagination. -However, marker based pagination cannot be used with sorting. To disable sorting use `SortParameters.none()`: -```java -BoxTrash trash = new BoxTrash(api); -Iterable trashEntries = trash.items( - SortParameters.none(), - PagingParameters.marker(500) -); -for (BoxItem.Info trashEntry : trashEntries) { - // Process the item -} -``` - -[trash-object]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTrash.html -[trash-items]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTrash.html#items-com.box.sdk.SortParameters-com.box.sdk.PagingParameters-java.lang.String...- - -Get Trashed File Information ----------------------------- - -Ordinarily, trying to call [`getInfo()`][file-get-info] on a file that is in -the trash will return a 404 error. To get the information of a file in the -trash, you must instead call -[`BoxTrash#getFileInfo(String fileID)`][get-trashed-file] with the ID of the trashed file. You can optionally -pass a specific list of fields to retrieve to [`getFileInfo(String fileID, String... fields)`][get-trashed-file-fields], -which will return only the specified fields to reduce payload size. - - -```java -String fileID = "9873459"; -BoxTrash trash = new BoxTrash(api); -BoxFile.Info fileInfo = trash.getFileInfo(fileID); -``` -[file-get-info]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#getInfo-java.lang.String...- -[get-trashed-file]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTrash.html#getFileInfo-java.lang.String- -[get-trashed-file-fields]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTrash.html#getFileInfo-java.lang.String-java.lang.String...- - -Get Trashed Folder Information ------------------------------- - -Ordinarily, trying to call [`getInfo()`][folder-get-info] on a folder that is in the trash will return a 404 error. -To get the information of a folder in the trash, you must instead call -[`BoxTrash#getFolderInfo(String fileID)`][get-trashed-folder] with the ID of the trashed folder. You can optionally -pass a specific list of fields to retrieve to -[`getFileInfo(String folderID, String... fields)`][get-trashed-folder-fields], which will return only the specified -fields to reduce payload size. - - -```java -String folderID = "2345343"; -BoxTrash trash = new BoxTrash(api); -BoxFolder.Info folderInfo = trash.getFolderInfo(folderInfo); -``` -[folders-get-info]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#getInfo-java.lang.String...- -[get-trashed-folder]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTrash.html#getFolderInfo-java.lang.String- -[get-trashed-folder-fields]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTrash.html#getFolderInfo-java.lang.String-java.lang.String...- - - -Permanently Delete File From Trash ----------------------------------- - -To delete a file from the trash, call [`BoxTrash#deleteFile(String fileID)`][delete-file] with the ID of the file to -delete. - -> __Note:__ This will permanently delete the file, and cannot be undone. - - -```java -String fileID = "87398"; -BoxTrash trash = new BoxTrash(api); -trash.deleteFile(fileID); -``` - -[delete-file]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTrash.html#deleteFile-java.lang.String- - - -Permanently Delete Folder From Trash ----------------------------------- - -To delete a folder from the trash, call [`BoxTrash#deleteFolder(String fileID)`][delete-folder] with the ID of the -folder to delete. - -> __Note:__ This will permanently delete the folder, and cannot be undone. - - -```java -String folder = "123456"; -BoxTrash trash = new BoxTrash(api); -trash.deleteFolder(folderID); -``` - -[delete-folder]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTrash.html#deleteFolder-java.lang.String- - -Restore a File from the Trash ------------------------------ - -To restore a file from the trash, effectively undeleting it, call [`BoxTrash#restoreFile(String fileID)`][restore-file] -with the ID of the file. To avoid scenarios where the parent folder that previously contained the file is no longer available, -the user does not have permission to create items in that folder, or that folder has an item with the same name as the one -being restored; you can pass a new parent folder ID and/or file name to -[`BoxTrash#restoreFile(String fileID, String newName, String newParentID)`][restore-file-safe]. The new name -and parent will only be used if a conflict is encountered while trying to restore the file to its original location. - - -```java -String fileID = "125367"; -String newName = "Presentation 2018 ORIGINAL.pptx"; -String newParentID = "98765"; - -BoxTrash trash = new BoxTrash(api); -// Avoid conflicts at the original location -trash.restoreFile(fileID, newName, newParentID); -``` - -[restore-file]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTrash.html#restoreFile-java.lang.String- -[restore-file-safe]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTrash.html#restoreFile-java.lang.String-java.lang.String-java.lang.String- - -Restore a Folder from the Trash -------------------------------- - -To restore a folder from the trash, effectively undeleting it, call -[`BoxTrash#restoreFolder(String folderID)`][restore-folder] with the ID of the folder. To avoid scenarios where the -parent folder that previously contained the folder to be restored is no longer available, the user -does not have permission to create items in that folder, or that folder has an item with the same name as the one -being restored; you can pass a new parent folder ID and/or folder name to -[`BoxTrash#restoreFolder(String folderID, String newName, String newParentID)`][restore-folder-safe]. The new name -and parent will only be used if a conflict is encountered while trying to restore the folder to its original location. - - -```java -String folderID = "125367"; -String newName = "My Documents ORIGINAL"; -String newParentID = "98765"; - -BoxTrash trash = new BoxTrash(api); -// Avoid conflicts at the original location -trash.restoreFolder(folderID, newName, newParentID); -``` - -[restore-folder]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTrash.html#restoreFolder-java.lang.String- -[restore-folder-safe]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxTrash.html#restoreFolder-java.lang.String-java.lang.String-java.lang.String- diff --git a/doc/upgrades/3.x.x to 4.x.x.md b/doc/upgrades/3.x.x to 4.x.x.md deleted file mode 100644 index 692d1167d..000000000 --- a/doc/upgrades/3.x.x to 4.x.x.md +++ /dev/null @@ -1,202 +0,0 @@ -# Migration guide for versions 3.x.x -> 4.x.x - - - - -- [Configuration changes](#configuration-changes) - - [BoxDeveloperEditionAPIConnection](#boxdevelopereditionapiconnection) - - [MaxRequestAttempts](#maxrequestattempts) -- [Removed deprecated methods and classes](#removed-deprecated-methods-and-classes) -- [Replaced methods and classes](#replaced-methods-and-classes) - - [Shared links](#shared-links) - - [Retention Policies](#retention-policies) - - [Enterprise Events](#enterprise-events) - - [Search](#search) - - [BoxGroup](#boxgroup) - - [MetadataTemplate](#metadatatemplate) - - [Others](#others) - - - -The most important change this release includes is the replacement of the HTTP library from a native one to -OkHttp which allows SDK to: - - - Support the HTTP2 version of the HTTP protocol. - - Support proxies that do not use only basic authentication method. For details on creating custom proxy authenticators and an example of -NTLM proxy authentication, see [here](https://github.com/box/box-java-sdk/blob/kb/ok-http/doc/configuration.md#custom-proxy-authenticator). - -# Configuration changes - -## BoxDeveloperEditionAPIConnection -Replaced `com.box.sdk.BoxDeveloperEditionAPIConnection#getAppUserConnection`with `com.box.sdk.BoxDeveloperEditionAPIConnection#getUserConnection`. - -### Example -To create `com.box.sdk.BoxDeveloperEditionAPIConnection` configured for user access: -```java -Reader reader = new FileReader("some-config.json"); -BoxConfig boxConfig = BoxConfig.readFrom(reader); - -BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection.getUserConnection(boxConfig); -``` - -### Documentation -You can read more on BoxDeveloperEditionAPIConnection [here](../../README.md#boxdevelopereditionapiconnectionasenterpriseuser). - - -## MaxRequestAttempts -The `MaxRequestAttempts` are removed from `com.box.sdk.BoxGlobalSettings` and replaced with `MaxRetryAttempts`. -However, if you have API connection stored with the deprecated `MaxRequestAttempts` value it will be restored into `MaxRetryAttempts`. - -# Removed deprecated methods and classes -1. `com.box.sdk.BoxAPIRequest.BoxAPIRequest(java.net.URL, java.lang.String)` - use constuctor that accepts `com.box.sdk.BoxAPIConnection`. -2. `com.box.sdk.BoxUser.moveFolderToUser` - this method is removed as this operation is not allowed by API. You can only transfer root folder to another user using `com.box.sdk.BoxUser.transferContent`. - -# Replaced methods and classes - -## Getting thumbnail -Method `com.box.sdk.BoxFile.getThumbnail` was removed. To get any file representation use `com.box.sdk.BoxFile.getRepresentationContent(java.lang.String, java.io.OutputStream)` -or `com.box.sdk.BoxFile.getRepresentationContent(java.lang.String, java.lang.String, java.io.OutputStream)`. - -### Example -To read the PDF representation of file with id `12345`: - -```java -ByteArrayOutputStream output = new ByteArrayOutputStream(); - -BoxFile file = new BoxFile(api, "12345"); -file.getRepresentationContent("[pdf]", output); -``` -### Documentation - -For more details on getting representation content go [here](../files.md#get-representation-content). - -## Shared links -Removed variant of methods that do not use `com.box.sdk.sharedlink.BoxSharedLinkRequest`: -1. `com.box.sdk.BoxItem.createSharedLink` -2. `com.box.sdk.BoxFile.createSharedLink` -3. `com.box.sdk.BoxFolder.createSharedLink` -4. `com.box.sdk.BoxWebLink.createSharedLink` - -### Example - -If you want to create a shared link, first create `com.box.sdk.sharedlink.BoxSharedLinkRequest`: -```java -Date unsharedDate = ... -BoxFile file = new BoxFile(api, "id"); -BoxSharedLinkRequest sharedLinkRequest = new BoxSharedLinkRequest() - .access(OPEN) - .permissions(true, true) - .unsharedDate(unsharedDate); - -BoxSharedLink sharedLink = file.createSharedLink(sharedLinkRequest); -``` - -### Documentation -For details on shared links, see: -1. [Create shared link for file](../files.md#create-a-shared-link) -2. [Create shared link for folder](../folders.md#create-a-shared-link) -3. [Create shared link for web link](../weblinks.md#create-shared-link) - -## Retention Policies -Removed variant of methods that were not using `com.box.sdk.BoxRetentionPolicy.BoxRetentionPolicyAction`: -1. `com.box.sdk.BoxRetentionPolicy.createFinitePolicy` - -### Example -If you want to create a finite retention policy: -```java -BoxRetentionPolicy.createFinitePolicy(api, "My 30 days retention policy", 30, BoxRetentionPolicyAction.PermanentlyDelete); -``` - -### Documentation -You can read more on creating retention policies [here](../retention_policies.md#create-retention-policy). - -## Enterprise Events -Removed variant of methods that were not using `com.box.sdk.EnterpriseEventsRequest`: -1. `com.box.sdk.EventLog.getEnterpriseEvents` -### Example -If you want to get historical enterprise events, first create `com.box.sdk.EnterpriseEventsRequest`: -```java -EnterpriseEventsRequest request = new EnterpriseEventsRequest().limit(20); -EventLog.getEnterpriseEvents(api, request1); -// process recieved events -``` -### Documentation -You can read more on getting enterprise events [here](../events.md#enterprise--admin--events). - -## Search -Method `com.box.sdk.BoxFolder.search` is replaced with class `com.box.sdk.BoxSearch`. - -### Example -If you would like to find the first 10 files matching "taxes": -```java -long offsetValue = 0; -long limitValue = 10; -BoxSearchParameters searchParams = new BoxSearchParameters(); -searchParams.setQuery("taxes"); -searchParams.setType("file"); - -BoxSearch boxSearch = new BoxSearch(api); -boxSearch.searchRange(offsetValue, limitValue, searchParams); -``` - -### Documentation -You can read more on search [here](../search.md). - -## BoxGroup -All methods that use `com.box.sdk.BoxGroupMembership.Role` were removed. Use ones that use `com.box.sdk.BoxGroupMembership.GroupRole`. -Also `com.box.sdk.BoxGroupMembership.Role` was replaced with `com.box.sdk.BoxGroupMembership.GroupRole`. - -### Example -To add a new member to a group with specific role: -```java -BoxUser user = ... -BoxGroup boxGroup = new BoxGroup(api, "group_id"); -boxGroup.addMembership(user, BoxGroupMembership.GroupRole.ADMIN); -``` -To get membership role use `com.box.sdk.BoxGroupMembership.Info.getGroupRole`: -```java -BoxGroupMembership membership = new BoxGroupMembership(api, "membership_id"); -membership.getInfo().getGroupRole(); -``` - -To change membership role use `com.box.sdk.BoxGroupMembership.Info.setGroupRole`: -```java -BoxGroupMembership membership = new BoxGroupMembership(api, "membership_id"); -BoxGroupMembership.Info membershipInfo = membership.getInfo(); -membershipInfo.setGroupRole(BoxGroupMembership.GroupRole.MEMBER); -membership.updateInfo(membershipInfo); -``` - -### Documentation -You can read more on groups [here](../groups.md). - -## MetadataTemplate -In `com.box.sdk.MetadataTemplate` methods that do not use `com.box.sdk.MetadataQuery` were removed. - -### Example -To execute a metadata query first create `com.box.sdk.MetadataQuery` instance. -```java -MetadataQuery mQuery = new MetadataQuery("enterprise_341532.test"); -mQuery.setQuery("testfield = :arg"); -mQuery.setAncestorFolderId("0"); -mQuery.setOrderBy( - MetadataQuery.OrderBy.ascending("primarySortKey"), - MetadataQuery.OrderBy.ascending("secondarySortKey") -); -mQuery.addParameter("arg", "test"); -mQuery.setFields("metadata.enterprise_341532.test.customField"); -MetadataTemplate.executeMetadataQuery(api, mQuery); -``` - -### Documentation -You can read more on how to execute metadata query [here](../metadata_template.md#execute-metadata-query). - -## Others -| Old | New | -|:-------------------------------------------------------|:--- | - | `com.box.sdk.BoxEvent.getType` |`com.box.sdk.BoxEvent.getEventType` | - | `com.box.sdk.BoxEvent.Type` | `com.box.sdk.BoxEvent.EventType` | - | `com.box.sdk.BoxFile.uploadVersion` | `com.box.sdk.BoxFile.uploadNewVersion` | - | `com.box.sdk.BoxGlobalSettings.getMaxRequestAttempts` | `com.box.sdk.BoxGlobalSettings.getMaxRetryAttempts` | - | `com.box.sdk.BoxGlobalSettings.setMaxRequestAttempts` | `com.box.sdk.BoxGlobalSettings.setMaxRetryAttempts` | - | `com.box.sdk.BoxTask.Info.getAction` | `com.box.sdk.BoxTask.Info.getTaskType` | diff --git a/doc/upgrading.md b/doc/upgrading.md deleted file mode 100644 index ed966930f..000000000 --- a/doc/upgrading.md +++ /dev/null @@ -1,116 +0,0 @@ -Upgrading to v4 -=============== - -v4 of the Box Java SDK introduces a lot of new design changes. Since this is a -major version bump, there will be breaking changes that will require you to -update your application. - -What's New ----------- - -### Features - -* __Automatic rate-limiting and error retry.__ API requests will automatically - be retried with exponential back off if a 500+ (server error) or 429 (too many - requests) response code is returned. -* __OAuth redesign.__ OAuth should now be easier to use, allowing you to - authenticate with an access token, auth code, or developer token. -* __New EventStream class.__ This class makes it easier to listen for API events - by allowing you to specify listeners that will be notified when an event - occurs. -* __New classes for making custom API requests.__ The BoxAPIRequest and - BoxAPIResponse classes make it easy to send custom requests to the API while - still having OAuth, rate-limiting back off, error handling and response - parsing automatically handled. - -### General Improvements - -* __Simpler and more intuitive design.__ We aimed to make the overall design of - the SDK more intuitive and easier to learn. -* __More documentation and examples.__ The Javadocs have been completely - overhauled and there are new guides explaining how to accomplish common tasks - with the SDK. -* __SDK size has been dramatically decreased.__ Many of the SDK's dependencies - have been removed and its overall size has been reduced - making it more - suitable for mobile apps. -* __Easier integration.__ With a single build process, it's easier and simpler - to get the SDK building with other applications. It also follows the standard - directory layout, making it easier to import into various IDEs or build - systems. - -Authentication --------------- - -Authentication has been simplified by allowing you to provide tokens or auth -codes directly. All authentication is now done by creating a `BoxAPIConnection` -in order to establish an authenticated connection with the API. - -Connect to the API using a developer token: - -```java -BoxAPIConnection api = new BoxAPIConnection("YOUR-DEVELOPER-TOKEN"); -``` - -Connect to the API using access and refresh tokens: - -```java -BoxAPIConnection api = new BoxAPIConnection("CLIENT-ID", "CLIENT-SECRET", - "ACCESS-TOKEN", "REFRESH-TOKEN"); -``` - -Connect to the API using an auth code: - -```java -BoxAPIConnection api = new BoxAPIConnection("CLIENT-ID", "CLIENT-SECRET", - "AUTH-CODE"); -``` - -More information on authentication can be found [here](authentication.md). - -New Resource Types ------------------- - -Previously, interaction with the API was done through managers and request -objects. For example: - -```java -BoxClient client = new BoxClient(...); -IBoxFilesManager filesManager = boxClient.getFilesManager(); - -BoxDefaultRequestObject requestObj = new BoxDefaultRequestObject(); -requestObj.getRequestExtras().addField(BoxFile.FIELD_SHA1); -requestObj.getRequestExtras().addField(BoxFile.FIELD_DESCRIPTION); - -BoxFile file = filesManager.getFile(fileId, requestObj); -``` - -These objects have been removed and interacting with the API has been -simplified. Resources can now be manipulated directly without needing to use -managers or build custom requests. - -```java -BoxAPIConnection api = new BoxAPIConnection(...); -BoxFile file = new BoxFile(api, fileID); -BoxFile.Info fileInfo = file.getInfo("sha1", "description"); -``` - -More information on resource types can be found [here](resource-types.md). - -Custom Requests ---------------- - -The SDK now provides request and response objects that allow you to easily make -custom requests to the Box API. These objects will handle authentication, -automatic retry, rate-limiting and errors out-of-the-box, giving you the -flexibility to make your own API requests without having to worry about handling -these things yourself. - -```java -BoxAPIConnection api = new BoxAPIConnection(...); -URL url = new URL("https://api.box.com/2.0/folders/0/items?fields=name,created_at") -BoxJSONRequest request = new BoxJSONRequest(api, url, "GET"); -BoxJSONResponse response = (BoxJSONResponse) request.send(); -String json = response.getJSON(); -``` - -More information on resource types can be found [here](overview.md). diff --git a/doc/users.md b/doc/users.md deleted file mode 100644 index 047dd478c..000000000 --- a/doc/users.md +++ /dev/null @@ -1,321 +0,0 @@ -# Users - -Users represent an individual's account on Box. - - - - - -- [Get the Current User's Information](#get-the-current-users-information) -- [Get User Information](#get-user-information) -- [Get Avatar for a User](#get-avatar-for-a-user) -- [Add or update user avatar](#add-or-update-user-avatar) -- [Delete user avatar](#delete-user-avatar) -- [Create An Enterprise User](#create-an-enterprise-user) -- [Create An App User](#create-an-app-user) -- [Update User](#update-user) -- [Delete User](#delete-user) -- [Invite User](#invite-user) -- [Get Email Aliases](#get-email-aliases) -- [Add Email Alias](#add-email-alias) -- [Delete Email Alias](#delete-email-alias) -- [Get Enterprise Users](#get-enterprise-users) -- [Get Enterprise Users (Marker Pagination)](#get-enterprise-users-marker-pagination) -- [Get App Users By External App User ID](#get-app-users-by-external-app-user-id) -- [Get App Users By External App User ID (Marker Pagination)](#get-app-users-by-external-app-user-id-marker-pagination) -- [Move User's Folder](#move-users-folder) - - - -## Get the Current User's Information - -To get the current user, call the static -[`getCurrentUser(BoxAPIConnection api)`][get-current-user] method. -Then use [`getInfo(String... fields)`][get-info] to get information about the user. - - -```java -BoxUser user = BoxUser.getCurrentUser(api); -BoxUser.Info info = user.getInfo(); -``` - -[get-current-user]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#getCurrentUser-com.box.sdk.BoxAPIConnection- -[get-info]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#getInfo-java.lang.String...- - -## Get User Information - -To get information about a user, call the [`getInfo()`][get-info] method on the user object. - - -```java -String userID = "33333"; -BoxUser user = new BoxUser(api, userID); -BoxUser.Info userInfo = user.getInfo(); -``` - -## Get Avatar for a User - -To retrieve the avatar for a User, call the [`downloadAvatar(OutputStream stream)`][download-avatar] method on the user object. - - -```java -String userID = "33333"; -// some stream do download avatar -try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()){ - BoxUser user=new BoxUser(api,userID); - user.downloadAvatar(outputStream); -} catch (IOException e) { - throw new RuntimeException(e); -} -``` - -## Add or update user avatar - -To add or update the avatar for a User, call the [`uploadAvatar(File)`][upload-avatar-1] method on the user object. - - -```java -String userID = "33333"; -BoxUser user = new BoxUser(api, userID); -AvatarUploadResponse response = user.uploadAvatar(new File("path_to_avatar_file")); -``` -In return, you will get an object with links to several representations of an avatar within Box account. -Your image file should have correct extension, it is used to determine image type used in upload. -Supported formats are JPG and PNG. The image size cannot exceed 1024 * 1024 pixels or 1MB. - -You can upload avatart using `InputStream` with [`uploadAvatar(InputStream, String)`][upload-avatar-2]: - -```java -String userID = "33333"; -BoxUser user = new BoxUser(api, userID); -AvatarUploadResponse response = user.uploadAvatar(Files.newInputStream(Paths.get("path_to_avatar_file")), "file_name.jpeg"); -``` - -Both upload methods supports [`ProgressListener`][progress-listener]. - -## Delete user avatar - -To delete User avatar image use [`deleteAvatar()`][delete-avatar] method on the user object: - - -```java -String userID = "33333"; -BoxUser user = new BoxUser(api, userID); -user.deleteAvatar(); -``` - -[download-avatar]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#downloadAvatar-java.io.OutputStream- -[upload-avatar-1]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#uploadAvatar-java.io.File- -[upload-avatar-2]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#uploadAvatar-java.io.InputStream-java.lang.String- -[delete-avatar]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#deleteAvatar-- -[progress-listener]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/ProgressListener.html - -## Create An Enterprise User - -To create an enterprise user, call the -[`createEnterpriseUser(BoxAPIConnection api, String loginEmail, String userName, String... fields)`][create-enterprise-user]. -To pass additional optional parameters, use the -[`createEnterpriseUser(BoxAPIConnection api, String loginEmail, String userName, CreateUserParams options, String... fields)`][create-enterprise-user-2] -method. - - -```java -BoxUser.Info createdUserInfo = BoxUser.createEnterpriseUser(api, "user@example.com", "A User"); -``` - -[create-enterprise-user]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#createEnterpriseUser-com.box.sdk.BoxAPIConnection-java.lang.String-java.lang.String-java.lang.String...- -[create-enterprise-user-2]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#createAppUser-com.box.sdk.BoxAPIConnection-java.lang.String-com.box.sdk.CreateUserParams-java.lang.String...- - -## Create An App User - -To create an app user, call the -[`createAppUser(BoxAPIConnection api, String userName, String... fields)`][create-app-user] method. -To pass additional optional parameters, use the -[`createAppUser(BoxAPIConnection api, String userName, CreateUserParams options, String... fields)`][create-app-user-2] method. - - -```java -BoxUser.Info createdUserInfo = BoxUser.createAppUser(api, "A User"); -``` - -```java -CreateUserParams params = new CreateUserParams(); -params.setExternalAppUserId("An Identifier Like Login"); -BoxUser.Info createdUserInfo = BoxUser.createAppUser(api, "A User", params); -``` - -[create-app-user]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#createAppUser-com.box.sdk.BoxAPIConnection-java.lang.String-java.lang.String...- -[create-app-user-2]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#createAppUser-com.box.sdk.BoxAPIConnection-java.lang.String-com.box.sdk.CreateUserParams-java.lang.String...- - - -## Update User - -To update a user call the [`updateInfo(BoxUser.Info fieldsToUpdate, String... fields)`][update-info] method. - - -```java -BoxUser user = new BoxUser(api, "0"); -BoxUser.Info info = user.new Info(); -info.setName(name); -user.updateInfo(info); -``` - -[update-info]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#updateInfo-com.box.sdk.BoxUser.Info-java.lang.String...- - -## Delete User - -To delete a user call the [`delete(boolean notifyUser, boolean force)`][deleteWithParams] method or one that -uses API default parameters [`delete()][delete] - -The `notifyUser` determines whether the user should receive an email about the deletion, -and the `force` parameter will cause the user to be deleted even if they still have files -in their account. - - -```java -BoxUser user = new BoxUser(api, "0"); -user.delete(false, false); -``` - -[deleteWithParams]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#delete-boolean-boolean- -[delete]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#delete-- - -## Invite User - -To invite an existing user to join an Enterprise call the -[`inviteUser(String enterpriseID, String userEmail)`][invite] method. - - -```java -BoxUser user = new BoxUser(api, "0"); -user.invite("Enterprise ID", "Invited User Login"); -``` - -[invite]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#inviteUser-java.lang.String-java.lang.String- - -## Get Email Aliases - -To get a user's email aliases call the [`getEmailAliases()`][get-email-aliases] method. - - -```java -BoxUser user = new BoxUser(api, "0"); -Collection emailAliases = user.getEmailAliases(); -``` - -[get-email-aliases]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#getEmailAliases-- - -## Add Email Alias - -To add an email alias for a user, call the -[`addEmailAlias(String emailAddress)`][add-email-alias] method. - - -```java -BoxUser user = new BoxUser(api, "0"); -user.addEmailAlias("user+alias@example.com"); -``` - -Enterprise admins can automatically confirm the new email alias by calling the -[`addEmailAlias(String emailAddress, boolean confirm)`][add-email-alias2] method: - -```java -BoxUser user = new BoxUser(api, "0"); -user.addEmailAlias("user+alias@eexample.com", true); -``` - -[add-email-alias]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#addEmailAlias-java.lang.String- -[add-email-alias2]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#addEmailAlias-java.lang.String-boolean- - -## Delete Email Alias - -To delete a users email alias call the -[`deleteEmailAlias(String emailAliasID)`][delete-email-alias] method. - - -```java -BoxUser user = new BoxUser(api, "0"); -user.deleteEmailAlias("123"); -``` - -[delete-email-alias]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#deleteEmailAlias-java.lang.String- - -## Get Enterprise Users - -To get an enterprise's users call the -[`getAllEnterpriseUsers(BoxAPIConnection api)`][get-all-enterprise-users], -[`getAllEnterpriseUsers(BoxAPIConnection api, String filterTerm, String... fields)`][get-all-enterprise-users-2], or -[`getAllEnterpriseOrExternalUsers(BoxAPIConnection api, String filterTerm, String... fields)`][get-all-enterprise-users-3] method. - - -```java -Iterable users = BoxUser.getAllEnterpriseUsers(api); -``` - -[get-all-enterprise-users]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#getAllEnterpriseUsers-com.box.sdk.BoxAPIConnection- -[get-all-enterprise-users-2]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#getAllEnterpriseUsers-com.box.sdk.BoxAPIConnection-java.lang.String-java.lang.String...- -[get-all-enterprise-users-3]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#getAllEnterpriseOrExternalUsers-com.box.sdk.BoxAPIConnection-java.lang.String-java.lang.String...- - -## Get Enterprise Users (Marker Pagination) - -To get a list of all users in an enterprise, call the -[`getAllEnterpriseUsers(BoxAPIConnection api, boolean usemarker, String marker)`][get-all-enterprise-users], -[`getAllEnterpriseUsers(BoxAPIConnection api, String filterTerm, boolean usemarker, String marker, String... fields)`][get-all-enterprise-users-2], or -[`getAllEnterpriseOrExternalUsers(BoxAPIConnection api, String filterTerm, boolean usemarker, String marker, String... fields)`][get-all-enterprise-users-3] method. -To get a list of users starting from the first page of results, set the `usemarker` parameter as `true` and the `marker` parameter as `null`. If you would like to get the marker for the next page of results from the page the iterator is currently on, you must cast the iterable to `BoxResourseIterable` and call `getNextMarker()` on that iterable. For more information on marker pagination, look here: https://developer.box.com/en/guides/api-calls/pagination/marker-based/. - - -```java -Iterable users = BoxUser.getAllEnterpriseUsers(api, true, null); - -// Get marker -String marker = ((BoxResourceIterable) users).getNextMarker(); -``` - -[get-all-enterprise-users]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#getAllEnterpriseUsers-com.box.sdk.BoxAPIConnection- -[get-all-enterprise-users-2]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#getAllEnterpriseUsers-com.box.sdk.BoxAPIConnection-java.lang.String-java.lang.String...- -[get-all-enterprise-users-3]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#getAllEnterpriseOrExternalUsers-com.box.sdk.BoxAPIConnection-java.lang.String-java.lang.String...- - -## Get App Users By External App User ID - -To get app user using external app user ID, call the -[`getAppUsersByExternalAppUserID(BoxAPIConnection api, String externalID, String... fields)`][get-app-users-by-external-app-user-id]. -This method allows you to easily associate Box app users with your application's -identifiers for those users. - -```java -Iterable users = BoxUser.getAppUsersByExternalAppUserID(api, "external_app_user_id"); -``` - -[get-app-users-by-external-app-user-id]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#getAppUsersByExternalAppUserID-com.box.sdk.BoxAPIConnection-java.lang.String-java.lang.String...- - -## Get App Users By External App User ID (Marker Pagination) - -To get app user using external app user ID, call the -[`getAppUsersByExternalAppUserID(BoxAPIConnection api, String externalID, boolean usemarker, String marker, String... fields)`][get-app-users-by-external-app-user-id]. -This method allows you to easily associate Box app users with your application's -identifiers for those users. To get a list of users starting from the first page of results, set the `usemarker` parameter as `true` and the `marker` parameter as `null`. If you would like to get the marker for the next page of results from the page the iterator is currently on, you must cast the iterable to `BoxResourseIterable` and call `getNextMarker()` on that iterable. For more information on marker pagination, look here: https://developer.box.com/en/guides/api-calls/pagination/marker-based/. - -```java -Iterable users = BoxUser.getAppUsersByExternalAppUserID(api, "external_app_user_id"); - -// Get marker -String marker = ((BoxResourceIterable) users).getNextMarker(); -``` - -[get-app-users-by-external-app-user-id]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#getAppUsersByExternalAppUserID-com.box.sdk.BoxAPIConnection-java.lang.String-java.lang.String...- - -## Move User's Folder - -To move all of a user's content to another user, call the -[`transferContent(String destinationUserID)`][transfer-folder-to-new-user] method. - - -```java -String sourceUserID = "11111"; -String destinationUserID = "22222"; -BoxUser sourceUser = new BoxUser(api, sourceUserID); -BoxFolder.Info transferredFolderInfo = sourceUser.transferContent(destinationUserID); -``` - -[transfer-folder-to-new-user]: https://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxUser.html#transferContent-java.lang.String- diff --git a/doc/watermarking.md b/doc/watermarking.md deleted file mode 100644 index 65d28f86d..000000000 --- a/doc/watermarking.md +++ /dev/null @@ -1,99 +0,0 @@ -Watermarking -====== - -The ability to watermark files and folders is represented as a sub-resource on the Files and Folders resources, respectively. You can think of the sub-resource as a "label" marking whether the file or folder is watermarked or not. If you apply a watermark label to a folder, then all files inside of it will be protected by the watermark (e.g. previews will be watermarked). However, those files' watermark sub-resource is independent from the folder that got watermarked. This allows you to watermark files and folders independently. - - - - - -- [Get Watermark on File](#get-watermark-on-file) -- [Apply Watermark on File](#apply-watermark-on-file) -- [Remove Watermark on File](#remove-watermark-on-file) -- [Get Watermark on Folder](#get-watermark-on-folder) -- [Apply Watermark on Folder](#apply-watermark-on-folder) -- [Remove Watermark on Folder](#remove-watermark-on-folder) - - - -Get Watermark on File --------------- - -Calling [`getWatermark(String... fields)`][get-watermark-on-file] will return a BoxWatermark object containing information about the watermark associated for this file. If the file does not have a watermark applied on it, a 404 Not Found will be returned. - - -```java -BoxFile file = new BoxFile(api, id); -BoxWatermark watermark = file.getWatermark(); -``` - -[get-watermark-on-file]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#getWatermark-java.lang.String...- - -Apply Watermark on File --------------- - -To apply watermark on file, call [`applyWatermark()`][apply-watermark-on-file] method. While the endpoint accepts a JSON body describing the watermark to apply, custom watermarks are not supported yet. -The method will return a BoxWatermark object containing information about the watermark applied on this file. - - -```java -BoxFile file = new BoxFile(api, id); -file.applyWatermark(); -``` - -[apply-watermark-on-file]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#applyWatermark-- - -Remove Watermark on File --------------- - -A watermark can be removed by calling the [`removeWatermark()`][remove-watermark-on-file] method. -If the file did not have a watermark applied on it, a 404 Not Found will be returned by API. - - -```java -BoxFile file = new BoxFile(api, id); -file.removeWatermark(); -``` - -[remove-watermark-on-file]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFile.html#removeWatermark-- - -Get Watermark on Folder --------------- - -Calling [`getWatermark(String... fields)`][get-watermark-on-folder] will return a BoxWatermark object containing information about the watermark associated for this folder. If the folder does not have a watermark applied on it, a 404 Not Found will be returned. - - -```java -BoxFolder folder = new BoxFolder(api, id); -BoxWatermark watermark = folder.getWatermark(); -``` - -[get-watermark-on-folder]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#getWatermark-java.lang.String...- - -Apply Watermark on Folder --------------- - -To apply watermark on folder, call [`applyWatermark()`][apply-watermark-on-folder] method. -The method will return a BoxWatermark object containing information about the watermark applied on this folder. - - -```java -BoxFolder folder = new BoxFolder(api, id); -fodler.applyWatermark(); -``` - -[apply-watermark-on-folder]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#applyWatermark-- - -Remove Watermark on Folder --------------- - -A watermark can be removed by calling the [`removeWatermark()`][remove-watermark-on-folder] method. -If the folder did not have a watermark applied on it, a 404 Not Found will be returned by API. - - -```java -BoxFolder folder = new BoxFolder(api, id); -folder.removeWatermark(); -``` - -[remove-watermark-on-folder]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#removeWatermark-- diff --git a/doc/webhooks.md b/doc/webhooks.md deleted file mode 100644 index 1597e4f6a..000000000 --- a/doc/webhooks.md +++ /dev/null @@ -1,156 +0,0 @@ -Webhooks -====== - -Webhooks enable you to attach event triggers to Box files and folders. Event triggers monitor events on Box objects and notify your application when they occur. A webhook notifies your application by sending HTTP requests to a URL of your choosing. - - - - - -- [Get a Webhook](#get-a-webhook) -- [Get All Webhooks](#get-all-webhooks) -- [Create a Webhook](#create-a-webhook) -- [Delete a Webhook](#delete-a-webhook) -- [Update a Webhook](#update-a-webhook) -- [Verify a Webhook Message](#verify-a-webhook-message) - - - -Get a Webhook -------------- - -A webhook infocan be retrieved by calling the [`getInfo(String... fields)`][get-info] method. - - -```java -BoxWebHook webhook = new BoxWebHook(api, id); -BoxWebHook.Info info = webhook.getInfo(); -``` - -[get-info]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxWebHook.html#getInfo-java.lang.String...- - -Get All Webhooks ----------------- - -Calling the static [`all(BoxAPIConnection api, String... fields)`][all] will -return an iterable that will page through all defined webhooks for the -requesting application and user. - - -```java -Iterable webhooks = BoxWebHook.all(api); -for (BoxWebHook.Info webhookInfo: webhooks) { - // Do something with the webhook. -} -``` - -[all]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxWebHook.html#all-com.box.sdk.BoxAPIConnection-java.lang.String...- - -Create a Webhook ----------------- - -The static [`create(BoxResource targetItem, URL callbackURL, BoxWebHook.Trigger... triggerEvents)`][create-webhook] -method will let you create a new webhook for a specified target object. - - -```java -// Listen for preview events for a file -BoxFile file = new BoxFile(api, id); -BoxWebHook.Info webhookInfo = BoxWebHook.create(file, url, BoxWebHook.Trigger.FILE.PREVIEWED); -``` - - -```java -// Listen for file upload events in the specified folder -BoxFolder folder = new BoxFolder(api, id); -BoxWebHook.Info webhookInfo = BoxWebHook.create(folder, url, BoxWebHook.Trigger.FILE_UPLOADED); -``` - -[create-webhook]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxWebHook.html#create-com.box.sdk.BoxResource-java.net.URL-com.box.sdk.BoxWebHook.Trigger...- - -Delete a Webhook ----------------- - -A webhook can be deleted by calling the [`delete()`][delete] method. - - -```java -BoxWebHook webhook = new BoxWebHook(api, id); -webhook.delete(); -``` - -[delete]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxWebHook.html#delete-- - -Update a Webhook ----------------- - -A webhook can be updated by calling the [`update(BoxWebHook.Info fieldsToUpdate)`][update] method. - - -```java -BoxWebHook webhook = new BoxWebHook(api, id); -BoxWebHook.Info info = webhook.new Info(); -info.setAddress(url); -webhook.update(info); -``` - -[update]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxWebHook.html#updateInfo-com.box.sdk.BoxWebHook.Info- - -Verify a Webhook Message ------------------------- - -When you receive a webhook message from Box, you should validate that it actually came from Box by calling -[`BoxWebHookSignatureVerifier#verify(String sigVersion, String sigAlgorithm, String primarySignature, String secondarySignature, String payload, String deliveryTimestamp)`][verify] - -> __Note:__ It is recommended to ensure that your application and verifier use both a primary and secondary key -> to ensure that these keys can be safely rotated. - - -```java -// Webhook message contents are shown for demonstration purposes -// Normally these would come from your HTTP handler - -// Webhook message HTTP body -String messagePayload = "{" - + "\"type\":\"webhook_event"," - + "\"webhook\":{" - + "\"id\":\"1234567890\"" - + "}," - + "\"trigger\":\"FILE.UPLOADED\"," - + "\"source\":{" - + "\"id\":\"1234567890\"," - + "\"type\":\"file\"," - + "\"name\":\"Test.txt\"" - + "}}"; - -// Webhook message HTTP headers -Map messageHeaders = new HashMap(); -headers.put("BOX-DELIVERY-ID", "f96bb54b-ee16-4fc5-aa65-8c2d9e5b546f"); -headers.put("BOX-DELIVERY-TIMESTAMP", "2020-01-01T00:00:00-07:00"); -headers.put("BOX-SIGNATURE-ALGORITHM", "HmacSHA256"); -headers.put("BOX-SIGNATURE-PRIMARY", "6TfeAW3A1PASkgboxxA5yqHNKOwFyMWuEXny/FPD5hI="); -headers.put("BOX-SIGNATURE-SECONDARY", "v+1CD1Jdo3muIcbpv5lxxgPglOqMfsNHPV899xWYydo="); -headers.put("BOX-SIGNATURE-VERSION", "1"); - -// Your application's webhook keys, obtained from the Box Developer Console -String primaryKey = "4py2I9eSFb0ezXH5iPeQRcFK1LRLCdip"; -String secondaryKey = "Aq5EEEjAu4ssbz8n9UMu7EerI0LKj2TL"; - -BoxWebHookSignatureVerifier verifier = new BoxWebHookSignatureVerifier(primaryKey, secondaryKey); -boolean isValidMessage = verifier.verify( - headers.get("BOX-SIGNATURE-VERSION"), - headers.get("BOX-SIGNATURE-ALGORITHM"), - headers.get("BOX-SIGNATURE-PRIMARY"), - headers.get("BOX-SIGNATURE-SECONDARY"), - messagePayload, - headers.get("BOX-DELIVERY-TIMESTAMP") -); - -if (isValidMessage) { - // Message is valid, handle it -} else { - // Message is invalid, reject it -} -``` - -[verify]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxWebHookSignatureVerifier.html#verify-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String- diff --git a/doc/weblinks.md b/doc/weblinks.md deleted file mode 100644 index 8fa09b4de..000000000 --- a/doc/weblinks.md +++ /dev/null @@ -1,126 +0,0 @@ -Web Links -====== - -Web links are objects that point to URLs. These objects are also known as -bookmarks within the Box web application. Web link objects are treated -similarly to file objects. - - - - - -- [Create Web Link](#create-web-link) -- [Get Web Link](#get-web-link) -- [Update Web Link](#update-web-link) -- [Delete Web Link](#delete-web-link) -- [Create Shared Link](#create-shared-link) -- [Remove Shared Link](#remove-shared-link) - - - -Create Web Link ---------------- - -Calling [`BoxFolder.createWebLink(String name, URL url, String description)`][create-web-link] will let you create a new web link with a specified name and description. - - -```java -BoxFolder folder = new BoxFolder(api, id); -URL url = new URL("https://www.example.com"); -folder.createWebLink("Link to Example", url, "This goes to an example page"); -``` - -Name and description params are optional, so it is possible to create web link -with only one of them or with URL only: -[`BoxFolder.createWebLink(URL url)`][create-web-link2] - -```java -BoxFolder folder = new BoxFolder(api, id); -URL url = new URL("https://www.example.com"); -BoxWebLink.Info webLinkInfo = folder.createWebLink(url); -``` - -[create-web-link]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#createWebLink-java.lang.String-java.net.URL-java.lang.String- -[create-web-link2]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxFolder.html#createWebLink-java.net.URL- - -Get Web Link ------------- - -A web link info can be retrieved by calling the [`getInfo(String... fields)`][get-web-link] method. -Optional parameters can be used to retrieve specific fields of the Device Pin object. - - -```java -BoxWebLink webLink = new BoxWebLink(api, id); -BoxWebLink.Info webLinkInfo = webLink.getInfo(); -``` - -[get-web-link]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxWebLink.html#getInfo-java.lang.String...- - -Update Web Link ---------------- - -A web link can be updated by calling the -[`updateInfo(BoxWebLink.Info fieldsToUpdate)`][update-web-link] method. - - -```java -BoxWebLink webLink = new BoxWebLink(api, id); -BoxWebLink.Info webLinkInfo = webLink.new Info(); -webLinkInfo.setName("new name for weblink"); -webLink.updateInfo(webLinkInfo); -``` - -[update-web-link]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxWebLink.html#updateInfo-com.box.sdk.BoxWebLink.Info- - -Delete Web Link ---------------- - -A web link can be deleted by calling the [`delete()`][delete] method. - - -```java -BoxWebLink webLink = new BoxWebLink(api, id); -webLink.delete(); -``` - -[delete]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxWebLink.html#delete-- - -Create Shared Link --------------------- - -You can create a shared link for a web link by calling the -[`createSharedLink(BoxSharedLinkWithoutPermissionsRequest sharedLinkRequest)`][create-shared-link] -method. - - -```java -// Optionally we can calculate and set the date when shared link will automatically be disabled -final long ONE_WEEK_MILLIS = 1000 * 60 * 60 * 24 * 7; -long unsharedTimestamp = System.currentTimeMillis() + ONE_WEEK_MILLIS; -Date unsharedDate = new Date(unsharedTimestamp); - -BoxWebLink webLink = new BoxWebLink(api, "id"); -BoxSharedLinkWithoutPermissionsRequest sharedLinkRequest = new BoxSharedLinkWithoutPermissionsRequest() - .access(OPEN) - .unsharedDate(unsharedDate); -BoxSharedLink sharedLink = webLink.createSharedLink(sharedLinkRequest); -``` - -[create-shared-link]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxWebLink.html#createSharedLink-com.box.sdk.sharedlink.BoxSharedLinkWithoutPermissionsRequest- - -Remove Shared Link --------------------- - -You can remove a shared link for a web link by calling the [`removeSharedLink`](remove-shared-link) method. - - -```java -BoxWebLink webLink = new BoxWebLink(api, "12345"); -BoxWebLink.Info webLinkInfo = webLink.getInfo(); -info.removeSharedLink() -webLink.updateInfo(info) -``` - -[remove-shared-link]: https://box.github.io/box-java-sdk/javadoc/com/box/sdk/BoxWebLink.html#removeSharedLink-- - diff --git a/doc/zip_download.md b/doc/zip_download.md deleted file mode 100644 index 32262f155..000000000 --- a/doc/zip_download.md +++ /dev/null @@ -1,58 +0,0 @@ -Zip Download -====== - -Allows you to create a temporary zip file of Box files and folders and download them. - - - - - -- [Create a Zip File](#create-a-zip-file) -- [Download a Zip File](#download-a-zip-file) - - - -Create a Zip File ---------------- - -Calling [`BoxZip.create(String name, List items)`][create-a-zip-file] will let you create a new zip file with the specified name and -with the specified items and will return a `BoxZipInfo` object with the download link. This file does not show up in your Box account, but will be temporarily -available for download. - - -```java -ArrayList items = new ArrayList(); -BoxZipItem file = new BoxZipItem("file", "12345"); -BoxZipItem folder = new BoxZipItem("folder", "156472"); -items.add(file); -items.add(folder); -BoxZip zip = new BoxZip(api); -BoxZipInfo zipInfo = zip.create("Awesome Zip File", items); -``` - -[create-a-zip-file]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxZip.html - -Download a Zip File ------------- - -Calling [`BoxZip.download(String name, List items, OutputStream output)`][download-a-zip-file] will let you create a new zip file -with the specified name and with the specified items and download it to the stream that is passed in. The return object is a `BoxZipDownloadStatus` -object that contains information about the download, including whether it was successful. The created zip file does not show up in your Box account. - - -```java -ArrayList items = new ArrayList(); -BoxZipItem file = new BoxZipItem("file", "12345"); -BoxZipItem folder = new BoxZipItem("folder", "156472"); -items.add(file); -items.add(folder); -BoxZip zip = new BoxZip(api); -FileOutputStream stream = new FileOutputStream(); -BoxZipDownloadStatus zipDownloadStatus = zip.download("Another Awesome Zip File", items, stream); -stream.close(); -if (zipDownloadStatus.getState() == BoxZipDownloadStatus.State.SUCCEEDED) { - System.out.println("Zip downloaded successfully"); -} -``` - -[download-a-zip-file]: http://opensource.box.com/box-java-sdk/javadoc/com/box/sdk/BoxZip.html diff --git a/docs/Authentication.md b/docs/Authentication.md new file mode 100644 index 000000000..a8fdf1ec0 --- /dev/null +++ b/docs/Authentication.md @@ -0,0 +1,365 @@ +# Authentication + + + + +- [Authentication](#authentication) +- [Authentication methods](#authentication-methods) + - [Developer Token](#developer-token) + - [JWT Auth](#jwt-auth) + - [Authenticate Enterprise](#authenticate-enterprise) + - [Authenticate user](#authenticate-user) + - [Client Credentials Grant](#client-credentials-grant) + - [Obtaining Service Account token](#obtaining-service-account-token) + - [Obtaining User token](#obtaining-user-token) + - [Switching between Service Account and User](#switching-between-service-account-and-user) + - [OAuth 2.0 Auth](#oauth-20-auth) + - [Authentication with OAuth2](#authentication-with-oauth2) + - [Injecting existing token into BoxOAuth](#injecting-existing-token-into-boxoauth) +- [Retrieve current access token](#retrieve-current-access-token) +- [Refresh access token](#refresh-access-token) +- [Revoke token](#revoke-token) +- [Downscope token](#downscope-token) +- [Token storage](#token-storage) + - [In-memory token storage](#in-memory-token-storage) + - [Custom storage](#custom-storage) + + + +# Authentication methods + +## Developer Token + +The fastest way to get started using the API is with developer token. A +developer token is simply a short-lived access token that cannot be refreshed +and can only be used with your own account. Therefore, they're only useful for +testing an app and aren't suitable for production. You can obtain a developer +token from your application's [developer console][dev_console] page. + +To create a `BoxClient` with a developer token, construct an `BoxDeveloperTokenAuth` +object with the `token` set to the developer token and construct the client with that. + + + +```java +BoxDeveloperTokenAuth auth = new BoxDeveloperTokenAuth("YOUR-DEVELOPER-TOKEN"); +BoxClient client = new BoxClient(auth); +``` + +[dev_console]: https://app.box.com/developers/console + +## JWT Auth + +Before using JWT Auth make sure you set up correctly your Box platform app. +The guide with all required steps can be found here: [Setup with JWT][jwt_guide] + +### Authenticate Enterprise + +JWT auth allows your application to authenticate itself with the Box API +for a given enterprise. By default, your application has a [Service Account][service_account] +that represents it and can perform API calls. The Service Account is separate +from the Box accounts of the application developer and the enterprise admin of +any enterprise that has authorized the app — files stored in that account are +not accessible in any other account by default, and vice versa. + +If you generated your public and private keys automatically through the +[Box Developer Console][dev_console], you can use the JSON file created there +to configure your SDK instance and create a client to make calls as the +Service Account. Call one of static `BoxJwtAuth` method: +`JWTConfig.fromConfigFile("PATH_TO_CONFIG_FILE")` and pass JSON file local path +or `JWTConfig.fromConfigJsonString(CONFIG_JSON_STRING)` and pass JSON config file content as string. + +```java +JWTConfig config = JWTConfig.fromConfigFile("src/example/config/config.json"); +BoxJWTAuth auth = new BoxJWTAuth(config); +BoxClient client = new BoxClient(auth); +``` + +Otherwise, you'll need to provide the necessary configuration fields directly to the `JWTConfig` constructor: + +```java +JWTConfig config = new JWTConfig.Builder("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET", "JWT_KEY_ID", "PRIVATE_KEY", "PRIVATE_KEY_PASSWORD") + .enterpriseId("123456") + .build(); +BoxJWTAuth auth = new BoxJWTAuth(config); +BoxClient client = new BoxClient(auth); +``` + +### Authenticate user + +App auth applications also often have associated [App Users][app_user], which are +created and managed directly by the application — they do not have normal login credentials, +and can only be accessed through the Box API by the application that created them. +You may authenticate as the Service Account to provision and manage users, or as an individual app user to +make calls as that user. See the [API documentation](https://developer.box.com/) +for detailed instructions on how to use app auth. + +Clients for making calls as an App User can be created with the same JSON JWT config file generated through the +[Box Developer Console][dev_console]. Calling `jwtAuth.withUserSubject('USER_ID')` method will return a new auth object, +which is authenticated as the user with provided id, leaving the original object unchanged. + +```java +JWTConfig config = JWTConfig.fromConfigFile("src/example/config/config.json"); +BoxJWTAuth auth = new BoxJWTAuth(config); +BoxJWTAuth userAuth = auth.withUserSubject("USER_ID"); +BoxClient userClient = new BoxClient(userAuth); +``` + +Alternatively, clients for making calls as an App User can be created with the same `JWTConfig` +constructor as in the above examples, similarly to creating a Service Account client. Simply pass the +`userId` instead of `enterpriseId` when constructing the auth config instance: + +```java +JWTConfig config = new JWTConfig.Builder("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET", "JWT_KEY_ID", "PRIVATE_KEY", "PRIVATE_KEY_PASSWORD") + .userId("123456") + .build(); +BoxJWTAuth auth = new BoxJWTAuth(config); +BoxClient client = new BoxClient(auth); +``` + +[jwt_guide]: https://developer.box.com/guides/authentication/jwt/jwt-setup/ +[service_account]: https://developer.box.com/guides/getting-started/user-types/service-account/ +[app_user]: https://developer.box.com/guides/getting-started/user-types/app-users/ + +## Client Credentials Grant + +Before using Client Credentials Grant Auth make sure you set up correctly your Box platform app. +The guide with all required steps can be found here: [Setup with Client Credentials Grant][ccg_guide] + +Client Credentials Grant Auth method allows you to obtain an access token by having client credentials +and secret with enterprise or user ID, which allows you to work using service or user account. + +You can use `CCGAuth` to initialize a client object the same way as for other authentication types: + +```java +CCGConfig config = new CCGConfig.Builder("YOUR_CLIENT", "YOUR_CLIENT_SECRET") + .userId("USER_ID") + .build(); +BoxCCGAuth auth = new BoxCCGAuth(config); +BoxClient client = new BoxClient(auth); + +UserFull user = client.users.getUserMe(); +System.out.println(user.getName()); +``` + +Obtained token is valid for specified amount of time, it will be refreshed automatically by default. + +### Obtaining Service Account token + +The [Service Account](https://developer.box.com/guides/getting-started/user-types/service-account//) +is separate from the Box accounts of the application developer and the +enterprise admin of any enterprise that has authorized the app — files stored in that account +are not accessible in any other account by default, and vice versa. +To obtain service account you will have to provide enterprise ID with client id and secret: + +```java +CCGConfig config = new CCGConfig.Builder("YOUR_CLIENT", "YOUR_CLIENT_SECRET") + .enterpriseId("ENTERPRISE_ID") + .build(); +BoxCCGAuth auth = new BoxCCGAuth(config); +BoxClient client = new BoxClient(auth); +``` + +### Obtaining User token + +In order to enable obtaining user token you have to go to your application configuration that can be found +[here][dev_console]. In `Configuration` tab, in section `Advanced Features` +select `Generate user access tokens`. Do not forget to re-authorize application if it was already authorized. + +To obtain user account you will have to provide user ID with client id and secret. + +```java +CCGConfig config = new CCGConfig.Builder("YOUR_CLIENT", "YOUR_CLIENT_SECRET") + .userId("USER_ID") + .build(); +BoxCCGAuth auth = new BoxCCGAuth(config); +BoxClient client = new BoxClient(auth); +``` + +### Switching between Service Account and User + +You can easily switch to be authenticated as a Service Account or as a User. +To create a new auth object authenticated as Service Account you can call: + +```java +BoxCCGAuth enterpriseAuth = auth.withEnterpriseSubject("ENTERPRISE_ID"); +BoxClient enterpriseClient = new BoxClient(enterpriseAuth); +``` + +To authenticate with user subject call: + +```java +BoxCCGAuth userAuth = auth.withUserSubject("USER_ID"); +BoxClient userClient = new BoxClient(userAuth); +``` + +The new token will be automatically fetched with a next API call. + +[ccg_guide]: https://developer.box.com/guides/authentication/client-credentials/client-credentials-setup/ + +## OAuth 2.0 Auth + +### Authentication with OAuth2 + +If your application needs to integrate with existing Box users who will provide +their login credentials to grant your application access to their account, you +will need to go through the standard OAuth2 login flow. A detailed guide for +this process is available in the +[Authentication with OAuth API documentation](https://developer.box.com/en/guides/authentication/oauth2/). + +Using an auth code is the most common way of authenticating with the Box API for +existing Box users, to integrate with their accounts. +Your application must provide a way for the user to login to Box (usually with a +browser or web view) in order to obtain an auth code. + + + +```java +BoxOAuth oauth = new OAuthConfig("CLIENT_ID", "CLIENT_SECRET"); +String authorizationUrl = auoauthth.getAuthorizeUrl(); +``` + +After a user logs in and grants your application access to their Box account, +they will be redirected to your application's `redirect_uri` which will contain +an auth code. This auth code can then be used along with your client ID and +client secret to establish an API connection. +You need to provide the auth code to the SDK to obtain an access token. +Calling `oauth.getTokensAuthorizationCodeGrant('code')` will exchange the auth code for an access token +and save it in the `BoxOAuth` token storage. The SDK will automatically refresh the token when needed. +All you need to do is create a client object with the `BoxOAuth` object and start making API calls. + + + +```java +auth.getTokensAuthorizationCodeGrant("AUTHORIZATION_CODE"); +BoxClient client = new BoxClient(auth); +``` + +### Injecting existing token into BoxOAuth + +If you already have an access token and refresh token, you can inject them into the `BoxOAuth` token storage +to avoid repeating the authentication process. This can be useful when you want to reuse the token +between runs of your application. + +```java +AccessToken accessToken = new AccessToken.Builder() + .accessToken("ACCESS_TOKEN") + .refreshToken("REFRESH_TOKEN") + .build(); +auth.getTokenStorage().store(accessToken); +BoxClient client = new BoxClient(auth); +``` + +Alternatively, you can create a custom implementation of `TokenStorage` interface and pass it to the `BoxOAuth` object. +See the [Custom storage](#custom-storage) section for more information. + +# Retrieve current access token + +After initializing the authentication object, the SDK will be able to retrieve the access token. +To retrieve the current access token you can use the following code: + + + +```java +auth.retrieveToken(); +``` + +# Refresh access token + +Access tokens are short-lived and need to be refreshed periodically. The SDK will automatically refresh the token when needed. +If you want to manually refresh the token, you can use the following code: + + + +```java +auth.refreshToken(); +``` + +# Revoke token + +Access tokens for a client can be revoked when needed. This call invalidates old token. +For BoxCcgAuth and BoxJwtAuth you can still reuse the `auth` object to retrieve a new token. +If you make any new call after revoking the token, a new token will be automatically retrieved. +For BoxOAuth it would be necessary to manually go through the authentication process again. +For BoxDeveloperTokenAuth, it is necessary to provide a DeveloperTokenConfig during initialization, +containing the client ID and client secret. + +To revoke current client's tokens in the storage use the following code: + + + +```java +auth.revokeToken(); +// client's tokens have been revoked +``` + +# Downscope token + +You can exchange a client's access token for one with a lower scope, in order +to restrict the permissions for a child client or to pass to a less secure +location (e.g. a browser-based app). + +A downscoped token does not include a refresh token. +In such a scenario, to obtain a new downscoped token, refresh the original token +and utilize the newly acquired token to obtain the downscoped token. + +More information about downscoping tokens can be found [here](https://developer.box.com/guides/authentication/tokens/downscope/). +If you want to learn more about available scopes please go [here](https://developer.box.com/guides/api-calls/permissions-and-errors/scopes/#scopes-for-downscoping). + +For example to get a new token with only `item_preview` scope, restricted to a single file, suitable for the +[Content Preview UI Element](https://developer.box.com/en/guides/embed/ui-elements/preview/) you can use the following code. +You can also initialize `BoxDeveloperTokenAuth` with the retrieved access token and use it to create a new Client. + + + +```java +String resource = "https://api.box.com/2.0/files/123456789"; +List scopes = List.of("item_preview"); +AccessToken downscopedToken = auth.downscopeToken(scopes, resource, null, null); +BoxDeveloperTokenAuth downscopedAuth = new BoxDeveloperTokenAuth(downscopedToken.getAccessToken()); +BoxClient downscopedClient = new BoxClient(downscopedAuth); +``` + +# Token storage + +## In-memory token storage + +By default, the SDK stores the access token in volatile memory. When rerunning your application, +the access token won't be reused from the previous run; a new token has to be obtained again. +To use in-memory token storage, you don't need to do anything more than +create an Auth class using AuthConfig, for example, for OAuth: + +```java +OAuthConfig config = new OAuthConfig("CLIENT_ID", "CLIENT_SECRET"); +BoxOAuth auth = new BoxOAuth(config); +``` + +## Custom storage + +You can also provide a custom token storage class. All you need to do is create a class that implements `TokenStorage` +interface and pass an instance of your class to the AuthConfig constructor. + +```java +TokenStorage customTokenStorage = new TokenStorage() { + @Override + public void store(AccessToken accessToken) { + // Store the access token + } + + @Override + public AccessToken get() { + // Retrieve the access token + return null; + } + + @Override + public void clear() { + // Clear the access token + } +}; + +OAuthConfig config = new OAuthConfig.Builder("CLIENT_ID", "CLIENT_SECRET") + .tokenStorage(customTokenStorage) + .build(); +BoxOAuth auth = new BoxOAuth(config); +``` diff --git a/docs/Client.md b/docs/Client.md new file mode 100644 index 000000000..f1cd01706 --- /dev/null +++ b/docs/Client.md @@ -0,0 +1,178 @@ +# Client + +This is the central entrypoint for all SDK interaction. The BoxClient houses all the API endpoints +divided across resource managers. + + + + +- [Client](#client) +- [Make custom HTTP request](#make-custom-http-request) + - [JSON request](#json-request) + - [Multi-part request](#multi-part-request) + - [Binary response](#binary-response) +- [Additional headers](#additional-headers) + - [As-User header](#as-user-header) + - [Suppress notifications](#suppress-notifications) + - [Custom headers](#custom-headers) +- [Custom Base URLs](#custom-base-urls) +- [Interceptors](#interceptors) + + + +# Make custom HTTP request + +You can make custom HTTP requests using the `client.makeRequest()` method. +This method allows you to make any HTTP request to the Box API. It will automatically use authentication and +network configuration settings from the client. +The method accepts a `FetchOptions` object as an argument and returns a `FetchResponse` object. + +## JSON request + +The following example demonstrates how to make a custom POST request to create a new folder in the root folder. + +```java +FetchOptions fetchOptions = new FetchOptions.Builder("https://api.box.com/2.0/users/me", "GET") + .params(new HashMap<>() {{ + put("fields", "name"); + }}) + .build(); +FetchResponse response = client.makeRequest(fetchOptions); +System.out.println("Status code: " + response.getStatus()); +System.out.println("Response body: " + response.getContent()); +``` + +## Multi-part request + +The following example demonstrates how to make a custom multipart request that uploads a file to a folder. + +```java +List multipartItems = List.of( + new MultipartItem.Builder("attributes") + .data(JsonManager.serialize("{\"name\": \"newFileName\", \"parent\": { \"id\": \"0\" }}")) + .build(), + new MultipartItem.Builder("file") + .fileStream(new FileInputStream(new File("file.txt"))) + .build() +); +FetchOptions fetchOptions = new FetchOptions.Builder("https://upload.box.com/api/2.0/files/content", "POST") + .contentType("multipart/form-data") + .multipartData(multipartItems) + .build(); + +FetchResponse response = client.makeRequest(fetchOptions); +System.out.println("Status code: " + response.getStatus()); +System.out.println("Response body: " + response.getContent()); +``` + +## Binary response + +The following example demonstrates how to make a custom request that expects a binary response. +It is required to specify the `responseFormat` parameter in the `FetchOptions` object to "binary". + +```java +FetchOptions fetchOptions = new FetchOptions.Builder("https://upload.box.com/api/2.0/files/12345/content", "GET") + .responseFormat(ResponseFormat.BINARY) + .build(); +FetchResponse response = client.makeRequest(fetchOptions); +System.out.println("Status code: " + response.getStatus()); +System.out.println("Response body: " + response.getContent()); +``` + +# Additional headers + +BoxClient provides a convenient methods, which allow passing additional headers, which will be included +in every API call made by the client. + +## As-User header + +The As-User header is used by enterprise admins to make API calls on behalf of their enterprise's users. +This requires the API request to pass an As-User: USER-ID header. For more details see the [documentation on As-User](https://developer.box.com/en/guides/authentication/oauth2/as-user/). + +The following example assume that the client has been instantiated with an access token belonging to an admin-level user +or Service Account with appropriate privileges to make As-User calls. + +Calling the `client.withAsUserHeader()` method creates a new client to impersonate user with the provided ID. +All calls made with the new client will be made in context of the impersonated user, leaving the original client unmodified. + + + +```java +BoxClient userClient = client.withAsUserHeader('1234567'); +``` + +## Suppress notifications + +If you are making administrative API calls (that is, your application has “Manage an Enterprise” +scope, and the user signing in is a co-admin with the correct "Edit settings for your company" +permission) then you can suppress both email and webhook notifications. This can be used, for +example, for a virus-scanning tool to download copies of everyone’s files in an enterprise, +without every collaborator on the file getting an email. All actions will still appear in users' +updates feed and audit logs. + +> **Note:** This functionality is only available for approved applications. + +Calling the `client.withSuppressedNotifications()` method creates a new client. +For all calls made with the new client the notifications will be suppressed. + +```java +BoxClient newClient = client.withSuppressedNotifications(); +``` + +## Custom headers + +You can also specify the custom set of headers, which will be included in every API call made by client. +Calling the `client.withExtraHeaders()` method creates a new client, leaving the original client unmodified. + +```java +BoxClient newClient = client.withExtraHeaders(new HashMap<>() {{ + put("X-My-Header", "124"); +}}); +``` + +# Custom Base URLs + +You can also specify the custom base URLs, which will be used for API calls made by client. +Calling the `client.withCustomBaseUrls()` method creates a new client, leaving the original client unmodified. + +```java +BaseUrls baseUrls = new BaseUrls.Builder() + .baseUrl("https://new-base-url.com") + .uploadUrl("https://my-company-upload-url.com") + .oauth2Url("https://my-company.com/oauth2") + .build(); +BoxClient clientWithCustomBaseUrl = client.withCustomBaseUrls(baseUrls); +``` + +# Interceptors + +You can specify custom interceptors - methods that will be called just before making a request and right after +receiving a response from the server. Using these function allows you to modify the request payload and response. +Interceptor interface accepts two methods with the following signatures: + +```java +FetchOptions beforeRequest(FetchOptions fetchOptions) +FetchResponse afterRequest(FetchResponse fetchResponse) +``` + +You can apply more than one interceptor to the client by passing a list of interceptors to apply. +Calling the `client.withInterceptors()` method creates a new client, leaving the original client unmodified. + +```java +List interceptors = new ArrayList<>() { + { + add(new Interceptor() { + @Override + public FetchOptions beforeRequest(FetchOptions fetchOptions) { + return fetchOptions; + } + + @Override + public FetchResponse afterRequest(FetchResponse fetchResponse) { + return fetchResponse; + } + }); + } +}; +BoxClient clientWithInterceptor = client.withInterceptors(interceptors); +``` diff --git a/docs/Configuration.md b/docs/Configuration.md new file mode 100644 index 000000000..ab18f97a8 --- /dev/null +++ b/docs/Configuration.md @@ -0,0 +1,51 @@ +# Configuration + + + + +- [Configuration](#configuration) + - [Max retry attempts](#max-retry-attempts) + - [Custom retry strategy](#custom-retry-strategy) + + + +## Max retry attempts + +The default maximum number of retries in case of failed API call is 5. +To change this number you should initialize `BoxRetryStrategy` with the new value and pass it to `NetworkSession`. + +```java +BoxDeveloperTokenAuth auth = new BoxDeveloperTokenAuth("DEVELOPER_TOKEN"); +NetworkSession session = new NetworkSession.Builder() + .retryStrategy(new BoxRetryStrategy.Builder().maxAttempts(3).build()) + .build(); +BoxClient client = new BoxClient.Builder(auth) + .networkSession(session) + .build(); +``` + +## Custom retry strategy + +You can also implement your own retry strategy by subclassing `RetryStrategy` and overriding `shouldRetry` and `retryAfter` methods. +This example shows how to set custom strategy that retries on 5xx status codes and waits 1 second between retries. + +```java +BoxDeveloperTokenAuth auth = new BoxDeveloperTokenAuth("DEVELOPER_TOKEN"); +RetryStrategy customRetryStrategy = new RetryStrategy() { + @Override + public boolean shouldRetry(FetchOptions fetchOptions, FetchResponse fetchResponse, int attemptNumber) { + return fetchResponse.status >= 500; + } + + @Override + public double retryAfter(FetchOptions fetchOptions, FetchResponse fetchResponse, int attemptNumber) { + return 1.0; + } +}; +NetworkSession session = new NetworkSession.Builder() + .retryStrategy(customRetryStrategy) + .build(); +BoxClient client = new BoxClient.Builder(auth) + .networkSession(session) + .build(); +``` diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 000000000..6dce8ccfc --- /dev/null +++ b/docs/README.md @@ -0,0 +1,86 @@ +# Documentation + +## High-level Documentation + +General explanations of the available functionality and examples of how to use +the SDK are available by topic: + +* [Ai](ai.md) +* [Aistudio](aistudio.md) +* [Appitemassociations](appitemassociations.md) +* [Archives](archives.md) +* [Authorization](authorization.md) +* [Avatars](avatars.md) +* [Chunkeduploads](chunkeduploads.md) +* [Classifications](classifications.md) +* [Collaborationallowlistentries](collaborationallowlistentries.md) +* [Collaborationallowlistexempttargets](collaborationallowlistexempttargets.md) +* [Collections](collections.md) +* [Comments](comments.md) +* [Devicepinners](devicepinners.md) +* [Docgen](docgen.md) +* [Docgentemplate](docgentemplate.md) +* [Downloads](downloads.md) +* [Emailaliases](emailaliases.md) +* [Events](events.md) +* [Fileclassifications](fileclassifications.md) +* [Filemetadata](filemetadata.md) +* [Filerequests](filerequests.md) +* [Files](files.md) +* [Fileversionlegalholds](fileversionlegalholds.md) +* [Fileversionretentions](fileversionretentions.md) +* [Fileversions](fileversions.md) +* [Filewatermarks](filewatermarks.md) +* [Folderclassifications](folderclassifications.md) +* [Folderlocks](folderlocks.md) +* [Foldermetadata](foldermetadata.md) +* [Folders](folders.md) +* [Folderwatermarks](folderwatermarks.md) +* [Groups](groups.md) +* [Hubcollaborations](hubcollaborations.md) +* [Hubitems](hubitems.md) +* [Hubs](hubs.md) +* [Integrationmappings](integrationmappings.md) +* [Invites](invites.md) +* [Legalholdpolicies](legalholdpolicies.md) +* [Legalholdpolicyassignments](legalholdpolicyassignments.md) +* [Listcollaborations](listcollaborations.md) +* [Memberships](memberships.md) +* [Metadatacascadepolicies](metadatacascadepolicies.md) +* [Metadatatemplates](metadatatemplates.md) +* [Recentitems](recentitems.md) +* [Retentionpolicies](retentionpolicies.md) +* [Retentionpolicyassignments](retentionpolicyassignments.md) +* [Search](search.md) +* [Sessiontermination](sessiontermination.md) +* [Sharedlinksappitems](sharedlinksappitems.md) +* [Sharedlinksfiles](sharedlinksfiles.md) +* [Sharedlinksfolders](sharedlinksfolders.md) +* [Sharedlinksweblinks](sharedlinksweblinks.md) +* [Shieldinformationbarrierreports](shieldinformationbarrierreports.md) +* [Shieldinformationbarriers](shieldinformationbarriers.md) +* [Shieldinformationbarriersegmentmembers](shieldinformationbarriersegmentmembers.md) +* [Shieldinformationbarriersegmentrestrictions](shieldinformationbarriersegmentrestrictions.md) +* [Shieldinformationbarriersegments](shieldinformationbarriersegments.md) +* [Shieldlists](shieldlists.md) +* [Signrequests](signrequests.md) +* [Signtemplates](signtemplates.md) +* [Skills](skills.md) +* [Storagepolicies](storagepolicies.md) +* [Storagepolicyassignments](storagepolicyassignments.md) +* [Taskassignments](taskassignments.md) +* [Tasks](tasks.md) +* [Termsofservices](termsofservices.md) +* [Termsofserviceuserstatuses](termsofserviceuserstatuses.md) +* [Transfer](transfer.md) +* [Trashedfiles](trashedfiles.md) +* [Trashedfolders](trashedfolders.md) +* [Trasheditems](trasheditems.md) +* [Trashedweblinks](trashedweblinks.md) +* [Uploads](uploads.md) +* [Usercollaborations](usercollaborations.md) +* [Users](users.md) +* [Webhooks](webhooks.md) +* [Weblinks](weblinks.md) +* [Workflows](workflows.md) +* [Zipdownloads](zipdownloads.md) diff --git a/docs/ai.md b/docs/ai.md new file mode 100644 index 000000000..a94a25020 --- /dev/null +++ b/docs/ai.md @@ -0,0 +1,166 @@ +# AiManager + + +- [Ask question](#ask-question) +- [Generate text](#generate-text) +- [Get AI agent default configuration](#get-ai-agent-default-configuration) +- [Extract metadata (freeform)](#extract-metadata-freeform) +- [Extract metadata (structured)](#extract-metadata-structured) + +## Ask question + +Sends an AI request to supported LLMs and returns an answer specifically focused on the user's question given the provided context. + +This operation is performed by calling function `createAiAsk`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-ai-ask/). + + +``` +client.getAi().createAiAsk(new AiAsk.Builder(AiAskModeField.SINGLE_ITEM_QA, "which direction sun rises", Arrays.asList(new AiItemAsk.Builder(fileToAsk.getId(), AiItemAskTypeField.FILE).content("Sun rises in the East").build())).aiAgent(aiAskAgentConfig).build()) +``` + +### Arguments + +- requestBody `AiAsk` + - Request body of createAiAsk method +- headers `CreateAiAskHeaders` + - Headers of createAiAsk method + + +### Returns + +This function returns a value of type `AiResponseFull`. + +A successful response including the answer from the LLM.No content is available to answer the question. This is returned when the request item is a hub, but content in the hubs is not indexed. To ensure content in the hub is indexed, make sure Box AI for Hubs in the Admin Console was enabled before hub creation. + + +## Generate text + +Sends an AI request to supported Large Language Models (LLMs) and returns generated text based on the provided prompt. + +This operation is performed by calling function `createAiTextGen`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-ai-text-gen/). + + +``` +client.getAi().createAiTextGen(new AiTextGen.Builder("Parapharse the document.s", Arrays.asList(new AiTextGenItemsField.Builder(fileToAsk.getId()).type(AiTextGenItemsTypeField.FILE).content("The Earth goes around the sun. Sun rises in the East in the morning.").build())).dialogueHistory(Arrays.asList(new AiDialogueHistory.Builder().prompt("What does the earth go around?").answer("The sun").createdAt(dateTimeFromString("2021-01-01T00:00:00Z")).build(), new AiDialogueHistory.Builder().prompt("On Earth, where does the sun rise?").answer("East").createdAt(dateTimeFromString("2021-01-01T00:00:00Z")).build())).aiAgent(aiTextGenAgentConfig).build()) +``` + +### Arguments + +- requestBody `AiTextGen` + - Request body of createAiTextGen method +- headers `CreateAiTextGenHeaders` + - Headers of createAiTextGen method + + +### Returns + +This function returns a value of type `AiResponse`. + +A successful response including the answer from the LLM. + + +## Get AI agent default configuration + +Get the AI agent default config. + +This operation is performed by calling function `getAiAgentDefaultConfig`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-ai-agent-default/). + + +``` +client.getAi().getAiAgentDefaultConfig(new GetAiAgentDefaultConfigQueryParams.Builder(GetAiAgentDefaultConfigQueryParamsModeField.ASK).language("en-US").build()) +``` + +### Arguments + +- queryParams `GetAiAgentDefaultConfigQueryParams` + - Query parameters of getAiAgentDefaultConfig method +- headers `GetAiAgentDefaultConfigHeaders` + - Headers of getAiAgentDefaultConfig method + + +### Returns + +This function returns a value of type `AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen`. + +A successful response including the default agent configuration. +This response can be one of the following four objects: +* AI agent for questions +* AI agent for text generation +* AI agent for freeform metadata extraction +* AI agent for structured metadata extraction. +The response depends on the agent configuration requested in this endpoint. + + +## Extract metadata (freeform) + +Sends an AI request to supported Large Language Models (LLMs) and extracts metadata in form of key-value pairs. +In this request, both the prompt and the output can be freeform. +Metadata template setup before sending the request is not required. + +This operation is performed by calling function `createAiExtract`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-ai-extract/). + + +``` +client.getAi().createAiExtract(new AiExtract.Builder("firstName, lastName, location, yearOfBirth, company", Arrays.asList(new AiItemBase(file.getId()))).aiAgent(agentIgnoringOverridingEmbeddingsModel).build()) +``` + +### Arguments + +- requestBody `AiExtract` + - Request body of createAiExtract method +- headers `CreateAiExtractHeaders` + - Headers of createAiExtract method + + +### Returns + +This function returns a value of type `AiResponse`. + +A response including the answer from the LLM. + + +## Extract metadata (structured) + +Sends an AI request to supported Large Language Models (LLMs) and returns extracted metadata as a set of key-value pairs. +For this request, you either need a metadata template or a list of fields you want to extract. +Input is **either** a metadata template or a list of fields to ensure the structure. +To learn more about creating templates, see [Creating metadata templates in the Admin Console](https://support.box.com/hc/en-us/articles/360044194033-Customizing-Metadata-Templates) +or use the [metadata template API](g://metadata/templates/create). + +This operation is performed by calling function `createAiExtractStructured`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-ai-extract-structured/). + + +``` +client.getAi().createAiExtractStructured(new AiExtractStructured.Builder(Arrays.asList(new AiItemBase(file.getId()))).fields(Arrays.asList(new AiExtractStructuredFieldsField.Builder("firstName").description("Person first name").displayName("First name").prompt("What is the your first name?").type("string").build(), new AiExtractStructuredFieldsField.Builder("lastName").description("Person last name").displayName("Last name").prompt("What is the your last name?").type("string").build(), new AiExtractStructuredFieldsField.Builder("dateOfBirth").description("Person date of birth").displayName("Birth date").prompt("What is the date of your birth?").type("date").build(), new AiExtractStructuredFieldsField.Builder("age").description("Person age").displayName("Age").prompt("How old are you?").type("float").build(), new AiExtractStructuredFieldsField.Builder("hobby").description("Person hobby").displayName("Hobby").prompt("What is your hobby?").type("multiSelect").options(Arrays.asList(new AiExtractStructuredFieldsOptionsField("guitar"), new AiExtractStructuredFieldsOptionsField("books"))).build())).aiAgent(agentIgnoringOverridingEmbeddingsModel).build()) +``` + +### Arguments + +- requestBody `AiExtractStructured` + - Request body of createAiExtractStructured method +- headers `CreateAiExtractStructuredHeaders` + - Headers of createAiExtractStructured method + + +### Returns + +This function returns a value of type `AiExtractStructuredResponse`. + +A successful response including the answer from the LLM. + + diff --git a/docs/aistudio.md b/docs/aistudio.md new file mode 100644 index 000000000..2313462ff --- /dev/null +++ b/docs/aistudio.md @@ -0,0 +1,158 @@ +# AiStudioManager + + +- [List AI agents](#list-ai-agents) +- [Create AI agent](#create-ai-agent) +- [Update AI agent](#update-ai-agent) +- [Get AI agent by agent ID](#get-ai-agent-by-agent-id) +- [Delete AI agent](#delete-ai-agent) + +## List AI agents + +Lists AI agents based on the provided parameters. + +This operation is performed by calling function `getAiAgents`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-ai-agents/). + + +``` +client.getAiStudio().getAiAgents() +``` + +### Arguments + +- queryParams `GetAiAgentsQueryParams` + - Query parameters of getAiAgents method +- headers `GetAiAgentsHeaders` + - Headers of getAiAgents method + + +### Returns + +This function returns a value of type `AiMultipleAgentResponse`. + +A successful response including the agents list. + + +## Create AI agent + +Creates an AI agent. At least one of the following capabilities must be provided: `ask`, `text_gen`, `extract`. + +This operation is performed by calling function `createAiAgent`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-ai-agents/). + + +``` +client.getAiStudio().createAiAgent(new CreateAiAgent.Builder(agentName, "enabled").ask(new AiStudioAgentAsk("enabled", "desc1")).build()) +``` + +### Arguments + +- requestBody `CreateAiAgent` + - Request body of createAiAgent method +- headers `CreateAiAgentHeaders` + - Headers of createAiAgent method + + +### Returns + +This function returns a value of type `AiSingleAgentResponseFull`. + +Definition of created AI agent. + + +## Update AI agent + +Updates an AI agent. + +This operation is performed by calling function `updateAiAgentById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-ai-agents-id/). + + +``` +client.getAiStudio().updateAiAgentById(createdAgent.getId(), new CreateAiAgent.Builder(agentName, "enabled").ask(new AiStudioAgentAsk("disabled", "desc2")).build()) +``` + +### Arguments + +- agentId `String` + - The ID of the agent to update. Example: "1234" +- requestBody `CreateAiAgent` + - Request body of updateAiAgentById method +- headers `UpdateAiAgentByIdHeaders` + - Headers of updateAiAgentById method + + +### Returns + +This function returns a value of type `AiSingleAgentResponseFull`. + +Definition of created AI agent. + + +## Get AI agent by agent ID + +Gets an AI Agent using the `agent_id` parameter. + +This operation is performed by calling function `getAiAgentById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-ai-agents-id/). + + +``` +client.getAiStudio().getAiAgentById(createdAgent.getId(), new GetAiAgentByIdQueryParams.Builder().fields(Arrays.asList("ask")).build()) +``` + +### Arguments + +- agentId `String` + - The agent id to get. Example: "1234" +- queryParams `GetAiAgentByIdQueryParams` + - Query parameters of getAiAgentById method +- headers `GetAiAgentByIdHeaders` + - Headers of getAiAgentById method + + +### Returns + +This function returns a value of type `AiSingleAgentResponseFull`. + +A successful response including the agent. + + +## Delete AI agent + +Deletes an AI agent using the provided parameters. + +This operation is performed by calling function `deleteAiAgentById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-ai-agents-id/). + + +``` +client.getAiStudio().deleteAiAgentById(createdAgent.getId()) +``` + +### Arguments + +- agentId `String` + - The ID of the agent to delete. Example: "1234" +- headers `DeleteAiAgentByIdHeaders` + - Headers of deleteAiAgentById method + + +### Returns + +This function returns a value of type `void`. + +A successful response with no content. + + diff --git a/docs/appitemassociations.md b/docs/appitemassociations.md new file mode 100644 index 000000000..cc8a99bc2 --- /dev/null +++ b/docs/appitemassociations.md @@ -0,0 +1,80 @@ +# AppItemAssociationsManager + + +- [List file app item associations](#list-file-app-item-associations) +- [List folder app item associations](#list-folder-app-item-associations) + +## List file app item associations + +**This is a beta feature, which means that its availability might be limited.** +Returns all app items the file is associated with. This includes app items +associated with ancestors of the file. Assuming the context user has access +to the file, the type/ids are revealed even if the context user does not +have **View** permission on the app item. + +This operation is performed by calling function `getFileAppItemAssociations`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-files-id-app-item-associations/). + + +``` +client.getAppItemAssociations().getFileAppItemAssociations(fileId) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- queryParams `GetFileAppItemAssociationsQueryParams` + - Query parameters of getFileAppItemAssociations method +- headers `GetFileAppItemAssociationsHeaders` + - Headers of getFileAppItemAssociations method + + +### Returns + +This function returns a value of type `AppItemAssociations`. + +Returns a collection of app item objects. If there are no +app items on this file, an empty collection will be returned. +This list includes app items on ancestors of this File. + + +## List folder app item associations + +**This is a beta feature, which means that its availability might be limited.** +Returns all app items the folder is associated with. This includes app items +associated with ancestors of the folder. Assuming the context user has access +to the folder, the type/ids are revealed even if the context user does not +have **View** permission on the app item. + +This operation is performed by calling function `getFolderAppItemAssociations`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-folders-id-app-item-associations/). + + +``` +client.getAppItemAssociations().getFolderAppItemAssociations(folderId) +``` + +### Arguments + +- folderId `String` + - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- queryParams `GetFolderAppItemAssociationsQueryParams` + - Query parameters of getFolderAppItemAssociations method +- headers `GetFolderAppItemAssociationsHeaders` + - Headers of getFolderAppItemAssociations method + + +### Returns + +This function returns a value of type `AppItemAssociations`. + +Returns a collection of app item objects. If there are no +app items on this folder an empty collection will be returned. +This list includes app items on ancestors of this folder. + + diff --git a/docs/archives.md b/docs/archives.md new file mode 100644 index 000000000..d0a2f7b9c --- /dev/null +++ b/docs/archives.md @@ -0,0 +1,94 @@ +# ArchivesManager + + +- [List archives](#list-archives) +- [Create archive](#create-archive) +- [Delete archive](#delete-archive) + +## List archives + +Retrieves archives for an enterprise. + +This operation is performed by calling function `getArchivesV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/get-archives/). + + +``` +client.getArchives().getArchivesV2025R0(new GetArchivesV2025R0QueryParams.Builder().limit(100L).build()) +``` + +### Arguments + +- queryParams `GetArchivesV2025R0QueryParams` + - Query parameters of getArchivesV2025R0 method +- headers `GetArchivesV2025R0Headers` + - Headers of getArchivesV2025R0 method + + +### Returns + +This function returns a value of type `ArchivesV2025R0`. + +Returns a list of archives in the enterprise. + + +## Create archive + +Creates an archive. + +This operation is performed by calling function `createArchiveV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/post-archives/). + + +``` +client.getArchives().createArchiveV2025R0(new CreateArchiveV2025R0RequestBody(archiveName)) +``` + +### Arguments + +- requestBody `CreateArchiveV2025R0RequestBody` + - Request body of createArchiveV2025R0 method +- headers `CreateArchiveV2025R0Headers` + - Headers of createArchiveV2025R0 method + + +### Returns + +This function returns a value of type `ArchiveV2025R0`. + +Returns a new archive object. + + +## Delete archive + +Permanently deletes an archive. + +This operation is performed by calling function `deleteArchiveByIdV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/delete-archives-id/). + + +``` +client.getArchives().deleteArchiveByIdV2025R0(archive.getId()) +``` + +### Arguments + +- archiveId `String` + - The ID of the archive. Example: "982312" +- headers `DeleteArchiveByIdV2025R0Headers` + - Headers of deleteArchiveByIdV2025R0 method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the archive has been deleted. + + diff --git a/docs/authorization.md b/docs/authorization.md new file mode 100644 index 000000000..b2be220ec --- /dev/null +++ b/docs/authorization.md @@ -0,0 +1,134 @@ +# AuthorizationManager + + +- [Authorize user](#authorize-user) +- [Request access token](#request-access-token) +- [Refresh access token](#refresh-access-token) +- [Revoke access token](#revoke-access-token) + +## Authorize user + +Authorize a user by sending them through the [Box](https://box.com) +website and request their permission to act on their behalf. + +This is the first step when authenticating a user using +OAuth 2.0. To request a user's authorization to use the Box APIs +on their behalf you will need to send a user to the URL with this +format. + +This operation is performed by calling function `authorizeUser`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-authorize/). + +*Currently we don't have an example for calling `authorizeUser` in integration tests* + +### Arguments + +- queryParams `AuthorizeUserQueryParams` + - Query parameters of authorizeUser method +- headers `AuthorizeUserHeaders` + - Headers of authorizeUser method + + +### Returns + +This function returns a value of type `void`. + +Does not return any data, but rather should be used in the browser. + + +## Request access token + +Request an Access Token using either a client-side obtained OAuth 2.0 +authorization code or a server-side JWT assertion. + +An Access Token is a string that enables Box to verify that a +request belongs to an authorized session. In the normal order of +operations you will begin by requesting authentication from the +[authorize](#get-authorize) endpoint and Box will send you an +authorization code. + +You will then send this code to this endpoint to exchange it for +an Access Token. The returned Access Token can then be used to to make +Box API calls. + +This operation is performed by calling function `requestAccessToken`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-oauth2-token/). + +*Currently we don't have an example for calling `requestAccessToken` in integration tests* + +### Arguments + +- requestBody `PostOAuth2Token` + - Request body of requestAccessToken method +- headers `RequestAccessTokenHeaders` + - Headers of requestAccessToken method + + +### Returns + +This function returns a value of type `AccessToken`. + +Returns a new Access Token that can be used to make authenticated +API calls by passing along the token in a authorization header as +follows `Authorization: Bearer `. + + +## Refresh access token + +Refresh an Access Token using its client ID, secret, and refresh token. + +This operation is performed by calling function `refreshAccessToken`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-oauth2-token--refresh/). + +*Currently we don't have an example for calling `refreshAccessToken` in integration tests* + +### Arguments + +- requestBody `PostOAuth2TokenRefreshAccessToken` + - Request body of refreshAccessToken method +- headers `RefreshAccessTokenHeaders` + - Headers of refreshAccessToken method + + +### Returns + +This function returns a value of type `AccessToken`. + +Returns a new Access Token that can be used to make authenticated +API calls by passing along the token in a authorization header as +follows `Authorization: Bearer `. + + +## Revoke access token + +Revoke an active Access Token, effectively logging a user out +that has been previously authenticated. + +This operation is performed by calling function `revokeAccessToken`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-oauth2-revoke/). + +*Currently we don't have an example for calling `revokeAccessToken` in integration tests* + +### Arguments + +- requestBody `PostOAuth2Revoke` + - Request body of revokeAccessToken method +- headers `RevokeAccessTokenHeaders` + - Headers of revokeAccessToken method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the token was successfully revoked. + + diff --git a/docs/avatars.md b/docs/avatars.md new file mode 100644 index 000000000..902fffd58 --- /dev/null +++ b/docs/avatars.md @@ -0,0 +1,101 @@ +# AvatarsManager + + +- [Get user avatar](#get-user-avatar) +- [Add or update user avatar](#add-or-update-user-avatar) +- [Delete user avatar](#delete-user-avatar) + +## Get user avatar + +Retrieves an image of a the user's avatar. + +This operation is performed by calling function `getUserAvatar`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-users-id-avatar/). + + +``` +client.getAvatars().getUserAvatar(user.getId()) +``` + +### Arguments + +- userId `String` + - The ID of the user. Example: "12345" +- headers `GetUserAvatarHeaders` + - Headers of getUserAvatar method + + +### Returns + +This function returns a value of type `InputStream`. + +When an avatar can be found for the user the +image data will be returned in the body of the +response. + + +## Add or update user avatar + +Adds or updates a user avatar. + +This operation is performed by calling function `createUserAvatar`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-users-id-avatar/). + + +``` +client.getAvatars().createUserAvatar(user.getId(), new CreateUserAvatarRequestBody.Builder(decodeBase64ByteStream("iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAQMAAABmvDolAAAAA1BMVEW10NBjBBbqAAAAH0lEQVRoge3BAQ0AAADCoPdPbQ43oAAAAAAAAAAAvg0hAAABmmDh1QAAAABJRU5ErkJggg==")).picFileName("avatar.png").picContentType("image/png").build()) +``` + +### Arguments + +- userId `String` + - The ID of the user. Example: "12345" +- requestBody `CreateUserAvatarRequestBody` + - Request body of createUserAvatar method +- headers `CreateUserAvatarHeaders` + - Headers of createUserAvatar method + + +### Returns + +This function returns a value of type `UserAvatar`. + +`ok`: Returns the `pic_urls` object with URLs to existing +user avatars that were updated.`created`: Returns the `pic_urls` object with URLS to user avatars +uploaded to Box with the request. + + +## Delete user avatar + +Removes an existing user avatar. +You cannot reverse this operation. + +This operation is performed by calling function `deleteUserAvatar`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-users-id-avatar/). + + +``` +client.getAvatars().deleteUserAvatar(user.getId()) +``` + +### Arguments + +- userId `String` + - The ID of the user. Example: "12345" +- headers `DeleteUserAvatarHeaders` + - Headers of deleteUserAvatar method + + +### Returns + +This function returns a value of type `void`. + +`no_content`: Removes the avatar and returns an empty response. + + diff --git a/docs/chunkeduploads.md b/docs/chunkeduploads.md new file mode 100644 index 000000000..5b8136599 --- /dev/null +++ b/docs/chunkeduploads.md @@ -0,0 +1,450 @@ +# ChunkedUploadsManager + +This is a manager for chunked uploads (allowed for files at least 20MB). + +- [Create upload session](#create-upload-session) +- [Create upload session for existing file](#create-upload-session-for-existing-file) +- [Get upload session by URL](#get-upload-session-by-url) +- [Get upload session](#get-upload-session) +- [Upload part of file by URL](#upload-part-of-file-by-url) +- [Upload part of file](#upload-part-of-file) +- [Remove upload session by URL](#remove-upload-session-by-url) +- [Remove upload session](#remove-upload-session) +- [List parts by URL](#list-parts-by-url) +- [List parts](#list-parts) +- [Commit upload session by URL](#commit-upload-session-by-url) +- [Commit upload session](#commit-upload-session) +- [Upload big file](#upload-big-file) + +## Create upload session + +Creates an upload session for a new file. + +This operation is performed by calling function `createFileUploadSession`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-files-upload-sessions/). + + +``` +client.getChunkedUploads().createFileUploadSession(new CreateFileUploadSessionRequestBody(parentFolderId, fileSize, fileName)) +``` + +### Arguments + +- requestBody `CreateFileUploadSessionRequestBody` + - Request body of createFileUploadSession method +- headers `CreateFileUploadSessionHeaders` + - Headers of createFileUploadSession method + + +### Returns + +This function returns a value of type `UploadSession`. + +Returns a new upload session. + + +## Create upload session for existing file + +Creates an upload session for an existing file. + +This operation is performed by calling function `createFileUploadSessionForExistingFile`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-files-id-upload-sessions/). + +*Currently we don't have an example for calling `createFileUploadSessionForExistingFile` in integration tests* + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- requestBody `CreateFileUploadSessionForExistingFileRequestBody` + - Request body of createFileUploadSessionForExistingFile method +- headers `CreateFileUploadSessionForExistingFileHeaders` + - Headers of createFileUploadSessionForExistingFile method + + +### Returns + +This function returns a value of type `UploadSession`. + +Returns a new upload session. + + +## Get upload session by URL + +Return information about an upload session. + +The actual endpoint URL is returned by the [`Create upload session`](e://post-files-upload-sessions) endpoint. + +This operation is performed by calling function `getFileUploadSessionByUrl`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-files-upload-sessions-id/). + + +``` +client.getChunkedUploads().getFileUploadSessionByUrl(statusUrl) +``` + +### Arguments + +- url `String` + - URL of getFileUploadSessionById method +- headers `GetFileUploadSessionByUrlHeaders` + - Headers of getFileUploadSessionById method + + +### Returns + +This function returns a value of type `UploadSession`. + +Returns an upload session object. + + +## Get upload session + +Return information about an upload session. + +The actual endpoint URL is returned by the [`Create upload session`](e://post-files-upload-sessions) endpoint. + +This operation is performed by calling function `getFileUploadSessionById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-files-upload-sessions-id/). + + +``` +client.getChunkedUploads().getFileUploadSessionById(uploadSessionId) +``` + +### Arguments + +- uploadSessionId `String` + - The ID of the upload session. Example: "D5E3F7A" +- headers `GetFileUploadSessionByIdHeaders` + - Headers of getFileUploadSessionById method + + +### Returns + +This function returns a value of type `UploadSession`. + +Returns an upload session object. + + +## Upload part of file by URL + +Uploads a chunk of a file for an upload session. + +The actual endpoint URL is returned by the [`Create upload session`](e://post-files-upload-sessions) +and [`Get upload session`](e://get-files-upload-sessions-id) endpoints. + +This operation is performed by calling function `uploadFilePartByUrl`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-files-upload-sessions-id/). + + +``` +client.getChunkedUploads().uploadFilePartByUrl(acc.getUploadPartUrl(), generateByteStreamFromBuffer(chunkBuffer), new UploadFilePartByUrlHeaders(digest, contentRange)) +``` + +### Arguments + +- url `String` + - URL of uploadFilePart method +- requestBody `InputStream` + - Request body of uploadFilePart method +- headers `UploadFilePartByUrlHeaders` + - Headers of uploadFilePart method + + +### Returns + +This function returns a value of type `UploadedPart`. + +Chunk has been uploaded successfully. + + +## Upload part of file + +Uploads a chunk of a file for an upload session. + +The actual endpoint URL is returned by the [`Create upload session`](e://post-files-upload-sessions) +and [`Get upload session`](e://get-files-upload-sessions-id) endpoints. + +This operation is performed by calling function `uploadFilePart`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-files-upload-sessions-id/). + + +``` +client.getChunkedUploads().uploadFilePart(acc.getUploadSessionId(), generateByteStreamFromBuffer(chunkBuffer), new UploadFilePartHeaders(digest, contentRange)) +``` + +### Arguments + +- uploadSessionId `String` + - The ID of the upload session. Example: "D5E3F7A" +- requestBody `InputStream` + - Request body of uploadFilePart method +- headers `UploadFilePartHeaders` + - Headers of uploadFilePart method + + +### Returns + +This function returns a value of type `UploadedPart`. + +Chunk has been uploaded successfully. + + +## Remove upload session by URL + +Abort an upload session and discard all data uploaded. + +This cannot be reversed. + +The actual endpoint URL is returned by the [`Create upload session`](e://post-files-upload-sessions) +and [`Get upload session`](e://get-files-upload-sessions-id) endpoints. + +This operation is performed by calling function `deleteFileUploadSessionByUrl`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-files-upload-sessions-id/). + + +``` +client.getChunkedUploads().deleteFileUploadSessionByUrl(abortUrl) +``` + +### Arguments + +- url `String` + - URL of deleteFileUploadSessionById method +- headers `DeleteFileUploadSessionByUrlHeaders` + - Headers of deleteFileUploadSessionById method + + +### Returns + +This function returns a value of type `void`. + +A blank response is returned if the session was +successfully aborted. + + +## Remove upload session + +Abort an upload session and discard all data uploaded. + +This cannot be reversed. + +The actual endpoint URL is returned by the [`Create upload session`](e://post-files-upload-sessions) +and [`Get upload session`](e://get-files-upload-sessions-id) endpoints. + +This operation is performed by calling function `deleteFileUploadSessionById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-files-upload-sessions-id/). + + +``` +client.getChunkedUploads().deleteFileUploadSessionById(uploadSessionId) +``` + +### Arguments + +- uploadSessionId `String` + - The ID of the upload session. Example: "D5E3F7A" +- headers `DeleteFileUploadSessionByIdHeaders` + - Headers of deleteFileUploadSessionById method + + +### Returns + +This function returns a value of type `void`. + +A blank response is returned if the session was +successfully aborted. + + +## List parts by URL + +Return a list of the chunks uploaded to the upload session so far. + +The actual endpoint URL is returned by the [`Create upload session`](e://post-files-upload-sessions) +and [`Get upload session`](e://get-files-upload-sessions-id) endpoints. + +This operation is performed by calling function `getFileUploadSessionPartsByUrl`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-files-upload-sessions-id-parts/). + + +``` +client.getChunkedUploads().getFileUploadSessionPartsByUrl(listPartsUrl) +``` + +### Arguments + +- url `String` + - URL of getFileUploadSessionParts method +- queryParams `GetFileUploadSessionPartsByUrlQueryParams` + - Query parameters of getFileUploadSessionParts method +- headers `GetFileUploadSessionPartsByUrlHeaders` + - Headers of getFileUploadSessionParts method + + +### Returns + +This function returns a value of type `UploadParts`. + +Returns a list of parts that have been uploaded. + + +## List parts + +Return a list of the chunks uploaded to the upload session so far. + +The actual endpoint URL is returned by the [`Create upload session`](e://post-files-upload-sessions) +and [`Get upload session`](e://get-files-upload-sessions-id) endpoints. + +This operation is performed by calling function `getFileUploadSessionParts`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-files-upload-sessions-id-parts/). + + +``` +client.getChunkedUploads().getFileUploadSessionParts(uploadSessionId) +``` + +### Arguments + +- uploadSessionId `String` + - The ID of the upload session. Example: "D5E3F7A" +- queryParams `GetFileUploadSessionPartsQueryParams` + - Query parameters of getFileUploadSessionParts method +- headers `GetFileUploadSessionPartsHeaders` + - Headers of getFileUploadSessionParts method + + +### Returns + +This function returns a value of type `UploadParts`. + +Returns a list of parts that have been uploaded. + + +## Commit upload session by URL + +Close an upload session and create a file from the uploaded chunks. + +The actual endpoint URL is returned by the [`Create upload session`](e://post-files-upload-sessions) +and [`Get upload session`](e://get-files-upload-sessions-id) endpoints. + +This operation is performed by calling function `createFileUploadSessionCommitByUrl`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-files-upload-sessions-id-commit/). + + +``` +client.getChunkedUploads().createFileUploadSessionCommitByUrl(commitUrl, new CreateFileUploadSessionCommitByUrlRequestBody(parts), new CreateFileUploadSessionCommitByUrlHeaders(digest)) +``` + +### Arguments + +- url `String` + - URL of createFileUploadSessionCommit method +- requestBody `CreateFileUploadSessionCommitByUrlRequestBody` + - Request body of createFileUploadSessionCommit method +- headers `CreateFileUploadSessionCommitByUrlHeaders` + - Headers of createFileUploadSessionCommit method + + +### Returns + +This function returns a value of type `Files`. + +Returns the file object in a list.Returns when all chunks have been uploaded but not yet processed. + +Inspect the upload session to get more information about the +progress of processing the chunks, then retry committing the file +when all chunks have processed. + + +## Commit upload session + +Close an upload session and create a file from the uploaded chunks. + +The actual endpoint URL is returned by the [`Create upload session`](e://post-files-upload-sessions) +and [`Get upload session`](e://get-files-upload-sessions-id) endpoints. + +This operation is performed by calling function `createFileUploadSessionCommit`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-files-upload-sessions-id-commit/). + + +``` +client.getChunkedUploads().createFileUploadSessionCommit(uploadSessionId, new CreateFileUploadSessionCommitRequestBody(parts), new CreateFileUploadSessionCommitHeaders(digest)) +``` + +### Arguments + +- uploadSessionId `String` + - The ID of the upload session. Example: "D5E3F7A" +- requestBody `CreateFileUploadSessionCommitRequestBody` + - Request body of createFileUploadSessionCommit method +- headers `CreateFileUploadSessionCommitHeaders` + - Headers of createFileUploadSessionCommit method + + +### Returns + +This function returns a value of type `Files`. + +Returns the file object in a list.Returns when all chunks have been uploaded but not yet processed. + +Inspect the upload session to get more information about the +progress of processing the chunks, then retry committing the file +when all chunks have processed. + + +## Upload big file + +Starts the process of chunk uploading a big file. Should return a File object representing uploaded file. + +This operation is performed by calling function `uploadBigFile`. + + + +``` +client.getChunkedUploads().uploadBigFile(fileByteStream, fileName, fileSize, parentFolderId) +``` + +### Arguments + +- file `InputStream` + - The stream of the file to upload. +- fileName `String` + - The name of the file, which will be used for storage in Box. +- fileSize `long` + - The total size of the file for the chunked upload in bytes. +- parentFolderId `String` + - The ID of the folder where the file should be uploaded. + + +### Returns + +This function returns a value of type `FileFull`. + + + + diff --git a/docs/classifications.md b/docs/classifications.md new file mode 100644 index 000000000..6f3139fbe --- /dev/null +++ b/docs/classifications.md @@ -0,0 +1,148 @@ +# ClassificationsManager + + +- [List all classifications](#list-all-classifications) +- [Add classification](#add-classification) +- [Update classification](#update-classification) +- [Add initial classifications](#add-initial-classifications) + +## List all classifications + +Retrieves the classification metadata template and lists all the +classifications available to this enterprise. + +This API can also be called by including the enterprise ID in the +URL explicitly, for example +`/metadata_templates/enterprise_12345/securityClassification-6VMVochwUWo/schema`. + +This operation is performed by calling function `getClassificationTemplate`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-metadata-templates-enterprise-securityClassification-6VMVochwUWo-schema/). + + +``` +client.getClassifications().getClassificationTemplate() +``` + +### Arguments + +- headers `GetClassificationTemplateHeaders` + - Headers of getClassificationTemplate method + + +### Returns + +This function returns a value of type `ClassificationTemplate`. + +Returns the `securityClassification` metadata template, which contains +a `Box__Security__Classification__Key` field that lists all the +classifications available to this enterprise. + + +## Add classification + +Adds one or more new classifications to the list of classifications +available to the enterprise. + +This API can also be called by including the enterprise ID in the +URL explicitly, for example +`/metadata_templates/enterprise_12345/securityClassification-6VMVochwUWo/schema`. + +This operation is performed by calling function `addClassification`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-metadata-templates-enterprise-securityClassification-6VMVochwUWo-schema--add/). + + +``` +client.getClassifications().addClassification(Arrays.asList(new AddClassificationRequestBody(new AddClassificationRequestBodyDataField.Builder(getUuid()).staticConfig(new AddClassificationRequestBodyDataStaticConfigField.Builder().classification(new AddClassificationRequestBodyDataStaticConfigClassificationField.Builder().classificationDefinition("Other description").colorId(4L).build()).build()).build()))) +``` + +### Arguments + +- requestBody `List` + - Request body of addClassification method +- headers `AddClassificationHeaders` + - Headers of addClassification method + + +### Returns + +This function returns a value of type `ClassificationTemplate`. + +Returns the updated `securityClassification` metadata template, which +contains a `Box__Security__Classification__Key` field that lists all +the classifications available to this enterprise. + + +## Update classification + +Updates the labels and descriptions of one or more classifications +available to the enterprise. + +This API can also be called by including the enterprise ID in the +URL explicitly, for example +`/metadata_templates/enterprise_12345/securityClassification-6VMVochwUWo/schema`. + +This operation is performed by calling function `updateClassification`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-metadata-templates-enterprise-securityClassification-6VMVochwUWo-schema--update/). + + +``` +client.getClassifications().updateClassification(Arrays.asList(new UpdateClassificationRequestBody(classification.getKey(), new UpdateClassificationRequestBodyDataField.Builder(updatedClassificationName).staticConfig(new UpdateClassificationRequestBodyDataStaticConfigField.Builder().classification(new UpdateClassificationRequestBodyDataStaticConfigClassificationField.Builder().classificationDefinition(updatedClassificationDescription).colorId(2L).build()).build()).build()))) +``` + +### Arguments + +- requestBody `List` + - Request body of updateClassification method +- headers `UpdateClassificationHeaders` + - Headers of updateClassification method + + +### Returns + +This function returns a value of type `ClassificationTemplate`. + +Returns the updated `securityClassification` metadata template, which +contains a `Box__Security__Classification__Key` field that lists all +the classifications available to this enterprise. + + +## Add initial classifications + +When an enterprise does not yet have any classifications, this API call +initializes the classification template with an initial set of +classifications. + +If an enterprise already has a classification, the template will already +exist and instead an API call should be made to add additional +classifications. + +This operation is performed by calling function `createClassificationTemplate`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-metadata-templates-schema--classifications/). + +*Currently we don't have an example for calling `createClassificationTemplate` in integration tests* + +### Arguments + +- requestBody `CreateClassificationTemplateRequestBody` + - Request body of createClassificationTemplate method +- headers `CreateClassificationTemplateHeaders` + - Headers of createClassificationTemplate method + + +### Returns + +This function returns a value of type `ClassificationTemplate`. + +Returns a new `securityClassification` metadata template, which +contains a `Box__Security__Classification__Key` field that lists all +the classifications available to this enterprise. + + diff --git a/docs/collaborationallowlistentries.md b/docs/collaborationallowlistentries.md new file mode 100644 index 000000000..20aa3c70b --- /dev/null +++ b/docs/collaborationallowlistentries.md @@ -0,0 +1,129 @@ +# CollaborationAllowlistEntriesManager + + +- [List allowed collaboration domains](#list-allowed-collaboration-domains) +- [Add domain to list of allowed collaboration domains](#add-domain-to-list-of-allowed-collaboration-domains) +- [Get allowed collaboration domain](#get-allowed-collaboration-domain) +- [Remove domain from list of allowed collaboration domains](#remove-domain-from-list-of-allowed-collaboration-domains) + +## List allowed collaboration domains + +Returns the list domains that have been deemed safe to create collaborations +for within the current enterprise. + +This operation is performed by calling function `getCollaborationWhitelistEntries`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-collaboration-whitelist-entries/). + + +``` +client.getCollaborationAllowlistEntries().getCollaborationWhitelistEntries() +``` + +### Arguments + +- queryParams `GetCollaborationWhitelistEntriesQueryParams` + - Query parameters of getCollaborationWhitelistEntries method +- headers `GetCollaborationWhitelistEntriesHeaders` + - Headers of getCollaborationWhitelistEntries method + + +### Returns + +This function returns a value of type `CollaborationAllowlistEntries`. + +Returns a collection of domains that are allowed for collaboration. + + +## Add domain to list of allowed collaboration domains + +Creates a new entry in the list of allowed domains to allow +collaboration for. + +This operation is performed by calling function `createCollaborationWhitelistEntry`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-collaboration-whitelist-entries/). + + +``` +client.getCollaborationAllowlistEntries().createCollaborationWhitelistEntry(new CreateCollaborationWhitelistEntryRequestBody(domain, CreateCollaborationWhitelistEntryRequestBodyDirectionField.INBOUND)) +``` + +### Arguments + +- requestBody `CreateCollaborationWhitelistEntryRequestBody` + - Request body of createCollaborationWhitelistEntry method +- headers `CreateCollaborationWhitelistEntryHeaders` + - Headers of createCollaborationWhitelistEntry method + + +### Returns + +This function returns a value of type `CollaborationAllowlistEntry`. + +Returns a new entry on the list of allowed domains. + + +## Get allowed collaboration domain + +Returns a domain that has been deemed safe to create collaborations +for within the current enterprise. + +This operation is performed by calling function `getCollaborationWhitelistEntryById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-collaboration-whitelist-entries-id/). + + +``` +client.getCollaborationAllowlistEntries().getCollaborationWhitelistEntryById(newEntry.getId()) +``` + +### Arguments + +- collaborationWhitelistEntryId `String` + - The ID of the entry in the list. Example: "213123" +- headers `GetCollaborationWhitelistEntryByIdHeaders` + - Headers of getCollaborationWhitelistEntryById method + + +### Returns + +This function returns a value of type `CollaborationAllowlistEntry`. + +Returns an entry on the list of allowed domains. + + +## Remove domain from list of allowed collaboration domains + +Removes a domain from the list of domains that have been deemed safe to create +collaborations for within the current enterprise. + +This operation is performed by calling function `deleteCollaborationWhitelistEntryById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-collaboration-whitelist-entries-id/). + + +``` +client.getCollaborationAllowlistEntries().deleteCollaborationWhitelistEntryById(entry.getId()) +``` + +### Arguments + +- collaborationWhitelistEntryId `String` + - The ID of the entry in the list. Example: "213123" +- headers `DeleteCollaborationWhitelistEntryByIdHeaders` + - Headers of deleteCollaborationWhitelistEntryById method + + +### Returns + +This function returns a value of type `void`. + +A blank response is returned if the entry was +successfully deleted. + + diff --git a/docs/collaborationallowlistexempttargets.md b/docs/collaborationallowlistexempttargets.md new file mode 100644 index 000000000..a96a3790c --- /dev/null +++ b/docs/collaborationallowlistexempttargets.md @@ -0,0 +1,129 @@ +# CollaborationAllowlistExemptTargetsManager + + +- [List users exempt from collaboration domain restrictions](#list-users-exempt-from-collaboration-domain-restrictions) +- [Create user exemption from collaboration domain restrictions](#create-user-exemption-from-collaboration-domain-restrictions) +- [Get user exempt from collaboration domain restrictions](#get-user-exempt-from-collaboration-domain-restrictions) +- [Remove user from list of users exempt from domain restrictions](#remove-user-from-list-of-users-exempt-from-domain-restrictions) + +## List users exempt from collaboration domain restrictions + +Returns a list of users who have been exempt from the collaboration +domain restrictions. + +This operation is performed by calling function `getCollaborationWhitelistExemptTargets`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-collaboration-whitelist-exempt-targets/). + + +``` +client.getCollaborationAllowlistExemptTargets().getCollaborationWhitelistExemptTargets() +``` + +### Arguments + +- queryParams `GetCollaborationWhitelistExemptTargetsQueryParams` + - Query parameters of getCollaborationWhitelistExemptTargets method +- headers `GetCollaborationWhitelistExemptTargetsHeaders` + - Headers of getCollaborationWhitelistExemptTargets method + + +### Returns + +This function returns a value of type `CollaborationAllowlistExemptTargets`. + +Returns a collection of user exemptions. + + +## Create user exemption from collaboration domain restrictions + +Exempts a user from the restrictions set out by the allowed list of domains +for collaborations. + +This operation is performed by calling function `createCollaborationWhitelistExemptTarget`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-collaboration-whitelist-exempt-targets/). + + +``` +client.getCollaborationAllowlistExemptTargets().createCollaborationWhitelistExemptTarget(new CreateCollaborationWhitelistExemptTargetRequestBody(new CreateCollaborationWhitelistExemptTargetRequestBodyUserField(user.getId()))) +``` + +### Arguments + +- requestBody `CreateCollaborationWhitelistExemptTargetRequestBody` + - Request body of createCollaborationWhitelistExemptTarget method +- headers `CreateCollaborationWhitelistExemptTargetHeaders` + - Headers of createCollaborationWhitelistExemptTarget method + + +### Returns + +This function returns a value of type `CollaborationAllowlistExemptTarget`. + +Returns a new exemption entry. + + +## Get user exempt from collaboration domain restrictions + +Returns a users who has been exempt from the collaboration +domain restrictions. + +This operation is performed by calling function `getCollaborationWhitelistExemptTargetById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-collaboration-whitelist-exempt-targets-id/). + + +``` +client.getCollaborationAllowlistExemptTargets().getCollaborationWhitelistExemptTargetById(newExemptTarget.getId()) +``` + +### Arguments + +- collaborationWhitelistExemptTargetId `String` + - The ID of the exemption to the list. Example: "984923" +- headers `GetCollaborationWhitelistExemptTargetByIdHeaders` + - Headers of getCollaborationWhitelistExemptTargetById method + + +### Returns + +This function returns a value of type `CollaborationAllowlistExemptTarget`. + +Returns the user's exempted from the list of collaboration domains. + + +## Remove user from list of users exempt from domain restrictions + +Removes a user's exemption from the restrictions set out by the allowed list +of domains for collaborations. + +This operation is performed by calling function `deleteCollaborationWhitelistExemptTargetById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-collaboration-whitelist-exempt-targets-id/). + + +``` +client.getCollaborationAllowlistExemptTargets().deleteCollaborationWhitelistExemptTargetById(exemptTarget.getId()) +``` + +### Arguments + +- collaborationWhitelistExemptTargetId `String` + - The ID of the exemption to the list. Example: "984923" +- headers `DeleteCollaborationWhitelistExemptTargetByIdHeaders` + - Headers of deleteCollaborationWhitelistExemptTargetById method + + +### Returns + +This function returns a value of type `void`. + +A blank response is returned if the exemption was +successfully deleted. + + diff --git a/docs/collections.md b/docs/collections.md new file mode 100644 index 000000000..dabe7ba5d --- /dev/null +++ b/docs/collections.md @@ -0,0 +1,91 @@ +# CollectionsManager + + +- [List all collections](#list-all-collections) +- [List collection items](#list-collection-items) +- [Get collection by ID](#get-collection-by-id) + +## List all collections + +Retrieves all collections for a given user. + +Currently, only the `favorites` collection +is supported. + +This operation is performed by calling function `getCollections`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-collections/). + +*Currently we don't have an example for calling `getCollections` in integration tests* + +### Arguments + +- queryParams `GetCollectionsQueryParams` + - Query parameters of getCollections method +- headers `GetCollectionsHeaders` + - Headers of getCollections method + + +### Returns + +This function returns a value of type `Collections`. + +Returns all collections for the given user. + + +## List collection items + +Retrieves the files and/or folders contained within +this collection. + +This operation is performed by calling function `getCollectionItems`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-collections-id-items/). + +*Currently we don't have an example for calling `getCollectionItems` in integration tests* + +### Arguments + +- collectionId `String` + - The ID of the collection. Example: "926489" +- queryParams `GetCollectionItemsQueryParams` + - Query parameters of getCollectionItems method +- headers `GetCollectionItemsHeaders` + - Headers of getCollectionItems method + + +### Returns + +This function returns a value of type `ItemsOffsetPaginated`. + +Returns an array of items in the collection. + + +## Get collection by ID + +Retrieves a collection by its ID. + +This operation is performed by calling function `getCollectionById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-collections-id/). + +*Currently we don't have an example for calling `getCollectionById` in integration tests* + +### Arguments + +- collectionId `String` + - The ID of the collection. Example: "926489" +- headers `GetCollectionByIdHeaders` + - Headers of getCollectionById method + + +### Returns + +This function returns a value of type `Collection`. + +Returns an array of items in the collection. + + diff --git a/docs/comments.md b/docs/comments.md new file mode 100644 index 000000000..4691d323e --- /dev/null +++ b/docs/comments.md @@ -0,0 +1,171 @@ +# CommentsManager + + +- [List file comments](#list-file-comments) +- [Get comment](#get-comment) +- [Update comment](#update-comment) +- [Remove comment](#remove-comment) +- [Create comment](#create-comment) + +## List file comments + +Retrieves a list of comments for a file. + +This operation is performed by calling function `getFileComments`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-files-id-comments/). + + +``` +client.getComments().getFileComments(fileId) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- queryParams `GetFileCommentsQueryParams` + - Query parameters of getFileComments method +- headers `GetFileCommentsHeaders` + - Headers of getFileComments method + + +### Returns + +This function returns a value of type `Comments`. + +Returns a collection of comment objects. If there are no +comments on this file an empty collection will be returned. + + +## Get comment + +Retrieves the message and metadata for a specific comment, as well +as information on the user who created the comment. + +This operation is performed by calling function `getCommentById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-comments-id/). + + +``` +client.getComments().getCommentById(newComment.getId()) +``` + +### Arguments + +- commentId `String` + - The ID of the comment. Example: "12345" +- queryParams `GetCommentByIdQueryParams` + - Query parameters of getCommentById method +- headers `GetCommentByIdHeaders` + - Headers of getCommentById method + + +### Returns + +This function returns a value of type `CommentFull`. + +Returns a full comment object. + + +## Update comment + +Update the message of a comment. + +This operation is performed by calling function `updateCommentById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-comments-id/). + + +``` +client.getComments().updateCommentById(newReplyComment.getId(), new UpdateCommentByIdRequestBody.Builder().message(newMessage).build()) +``` + +### Arguments + +- commentId `String` + - The ID of the comment. Example: "12345" +- requestBody `UpdateCommentByIdRequestBody` + - Request body of updateCommentById method +- queryParams `UpdateCommentByIdQueryParams` + - Query parameters of updateCommentById method +- headers `UpdateCommentByIdHeaders` + - Headers of updateCommentById method + + +### Returns + +This function returns a value of type `CommentFull`. + +Returns the updated comment object. + + +## Remove comment + +Permanently deletes a comment. + +This operation is performed by calling function `deleteCommentById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-comments-id/). + + +``` +client.getComments().deleteCommentById(newComment.getId()) +``` + +### Arguments + +- commentId `String` + - The ID of the comment. Example: "12345" +- headers `DeleteCommentByIdHeaders` + - Headers of deleteCommentById method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the comment has been deleted. + + +## Create comment + +Adds a comment by the user to a specific file, or +as a reply to an other comment. + +This operation is performed by calling function `createComment`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-comments/). + + +``` +client.getComments().createComment(new CreateCommentRequestBody(message, new CreateCommentRequestBodyItemField(fileId, CreateCommentRequestBodyItemTypeField.FILE))) +``` + +### Arguments + +- requestBody `CreateCommentRequestBody` + - Request body of createComment method +- queryParams `CreateCommentQueryParams` + - Query parameters of createComment method +- headers `CreateCommentHeaders` + - Headers of createComment method + + +### Returns + +This function returns a value of type `CommentFull`. + +Returns the newly created comment object. + +Not all available fields are returned by default. Use the +[fields](#param-fields) query parameter to explicitly request +any specific fields. + + diff --git a/docs/devicepinners.md b/docs/devicepinners.md new file mode 100644 index 000000000..06078a729 --- /dev/null +++ b/docs/devicepinners.md @@ -0,0 +1,99 @@ +# DevicePinnersManager + + +- [Get device pin](#get-device-pin) +- [Remove device pin](#remove-device-pin) +- [List enterprise device pins](#list-enterprise-device-pins) + +## Get device pin + +Retrieves information about an individual device pin. + +This operation is performed by calling function `getDevicePinnerById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-device-pinners-id/). + + +``` +client.getDevicePinners().getDevicePinnerById(devicePinnerId) +``` + +### Arguments + +- devicePinnerId `String` + - The ID of the device pin. Example: "2324234" +- headers `GetDevicePinnerByIdHeaders` + - Headers of getDevicePinnerById method + + +### Returns + +This function returns a value of type `DevicePinner`. + +Returns information about a single device pin. + + +## Remove device pin + +Deletes an individual device pin. + +This operation is performed by calling function `deleteDevicePinnerById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-device-pinners-id/). + + +``` +client.getDevicePinners().deleteDevicePinnerById(devicePinnerId) +``` + +### Arguments + +- devicePinnerId `String` + - The ID of the device pin. Example: "2324234" +- headers `DeleteDevicePinnerByIdHeaders` + - Headers of deleteDevicePinnerById method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the pin has been deleted. + + +## List enterprise device pins + +Retrieves all the device pins within an enterprise. + +The user must have admin privileges, and the application +needs the "manage enterprise" scope to make this call. + +This operation is performed by calling function `getEnterpriseDevicePinners`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-enterprises-id-device-pinners/). + + +``` +client.getDevicePinners().getEnterpriseDevicePinners(enterpriseId) +``` + +### Arguments + +- enterpriseId `String` + - The ID of the enterprise. Example: "3442311" +- queryParams `GetEnterpriseDevicePinnersQueryParams` + - Query parameters of getEnterpriseDevicePinners method +- headers `GetEnterpriseDevicePinnersHeaders` + - Headers of getEnterpriseDevicePinners method + + +### Returns + +This function returns a value of type `DevicePinners`. + +Returns a list of device pins for a given enterprise. + + diff --git a/docs/docgen.md b/docs/docgen.md new file mode 100644 index 000000000..d7246e4df --- /dev/null +++ b/docs/docgen.md @@ -0,0 +1,126 @@ +# DocgenManager + + +- [Get Box Doc Gen job by ID](#get-box-doc-gen-job-by-id) +- [List all Box Doc Gen jobs](#list-all-box-doc-gen-jobs) +- [Get Box Doc Gen jobs by batch ID](#get-box-doc-gen-jobs-by-batch-id) +- [Generate document using Box Doc Gen template](#generate-document-using-box-doc-gen-template) + +## Get Box Doc Gen job by ID + +Get details of the Box Doc Gen job. + +This operation is performed by calling function `getDocgenJobByIdV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/get-docgen-jobs-id/). + + +``` +client.getDocgen().getDocgenJobByIdV2025R0(docgenJobItemFromList.getId()) +``` + +### Arguments + +- jobId `String` + - Box Doc Gen job ID. Example: 123 +- headers `GetDocgenJobByIdV2025R0Headers` + - Headers of getDocgenJobByIdV2025R0 method + + +### Returns + +This function returns a value of type `DocGenJobV2025R0`. + +Details of the Box Doc Gen job. + + +## List all Box Doc Gen jobs + +Lists all Box Doc Gen jobs for a user. + +This operation is performed by calling function `getDocgenJobsV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/get-docgen-jobs/). + + +``` +client.getDocgen().getDocgenJobsV2025R0(new GetDocgenJobsV2025R0QueryParams.Builder().limit(500L).build()) +``` + +### Arguments + +- queryParams `GetDocgenJobsV2025R0QueryParams` + - Query parameters of getDocgenJobsV2025R0 method +- headers `GetDocgenJobsV2025R0Headers` + - Headers of getDocgenJobsV2025R0 method + + +### Returns + +This function returns a value of type `DocGenJobsFullV2025R0`. + +A list of Box Doc Gen jobs. + + +## Get Box Doc Gen jobs by batch ID + +Lists Box Doc Gen jobs in a batch. + +This operation is performed by calling function `getDocgenBatchJobByIdV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/get-docgen-batch-jobs-id/). + + +``` +client.getDocgen().getDocgenBatchJobByIdV2025R0(docgenBatch.getId()) +``` + +### Arguments + +- batchId `String` + - Box Doc Gen batch ID. Example: 123 +- queryParams `GetDocgenBatchJobByIdV2025R0QueryParams` + - Query parameters of getDocgenBatchJobByIdV2025R0 method +- headers `GetDocgenBatchJobByIdV2025R0Headers` + - Headers of getDocgenBatchJobByIdV2025R0 method + + +### Returns + +This function returns a value of type `DocGenJobsV2025R0`. + +Returns a list of Box Doc Gen jobs in a Box Doc Gen batch. + + +## Generate document using Box Doc Gen template + +Generates a document using a Box Doc Gen template. + +This operation is performed by calling function `createDocgenBatchV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/post-docgen-batches/). + + +``` +client.getDocgen().createDocgenBatchV2025R0(new DocGenBatchCreateRequestV2025R0(new FileReferenceV2025R0(uploadedFile.getId()), "api", new DocGenBatchCreateRequestV2025R0DestinationFolderField(folder.getId()), "pdf", Arrays.asList(new DocGenDocumentGenerationDataV2025R0("test", mapOf(entryOf("abc", "xyz")))))) +``` + +### Arguments + +- requestBody `DocGenBatchCreateRequestV2025R0` + - Request body of createDocgenBatchV2025R0 method +- headers `CreateDocgenBatchV2025R0Headers` + - Headers of createDocgenBatchV2025R0 method + + +### Returns + +This function returns a value of type `DocGenBatchBaseV2025R0`. + +The created Batch ID. + + diff --git a/docs/docgentemplate.md b/docs/docgentemplate.md new file mode 100644 index 000000000..c427b2af6 --- /dev/null +++ b/docs/docgentemplate.md @@ -0,0 +1,188 @@ +# DocgenTemplateManager + + +- [Create Box Doc Gen template](#create-box-doc-gen-template) +- [List Box Doc Gen templates](#list-box-doc-gen-templates) +- [Delete Box Doc Gen template](#delete-box-doc-gen-template) +- [Get Box Doc Gen template by ID](#get-box-doc-gen-template-by-id) +- [List all Box Doc Gen template tags in template](#list-all-box-doc-gen-template-tags-in-template) +- [Get list of all Box Doc Gen jobs for template](#get-list-of-all-box-doc-gen-jobs-for-template) + +## Create Box Doc Gen template + +Marks a file as a Box Doc Gen template. + +This operation is performed by calling function `createDocgenTemplateV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/post-docgen-templates/). + + +``` +client.getDocgenTemplate().createDocgenTemplateV2025R0(new DocGenTemplateCreateRequestV2025R0(new FileReferenceV2025R0(file.getId()))) +``` + +### Arguments + +- requestBody `DocGenTemplateCreateRequestV2025R0` + - Request body of createDocgenTemplateV2025R0 method +- headers `CreateDocgenTemplateV2025R0Headers` + - Headers of createDocgenTemplateV2025R0 method + + +### Returns + +This function returns a value of type `DocGenTemplateBaseV2025R0`. + +The file which has now been marked as a Box Doc Gen template. + + +## List Box Doc Gen templates + +Lists Box Doc Gen templates on which the user is a collaborator. + +This operation is performed by calling function `getDocgenTemplatesV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/get-docgen-templates/). + + +``` +client.getDocgenTemplate().getDocgenTemplatesV2025R0() +``` + +### Arguments + +- queryParams `GetDocgenTemplatesV2025R0QueryParams` + - Query parameters of getDocgenTemplatesV2025R0 method +- headers `GetDocgenTemplatesV2025R0Headers` + - Headers of getDocgenTemplatesV2025R0 method + + +### Returns + +This function returns a value of type `DocGenTemplatesV2025R0`. + +Returns a collection of templates. + + +## Delete Box Doc Gen template + +Unmarks file as Box Doc Gen template. + +This operation is performed by calling function `deleteDocgenTemplateByIdV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/delete-docgen-templates-id/). + + +``` +client.getDocgenTemplate().deleteDocgenTemplateByIdV2025R0(createdDocgenTemplate.getFile().getId()) +``` + +### Arguments + +- templateId `String` + - ID of the file which will no longer be marked as a Box Doc Gen template. Example: "123" +- headers `DeleteDocgenTemplateByIdV2025R0Headers` + - Headers of deleteDocgenTemplateByIdV2025R0 method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when a file is no longer marked as a Box Doc Gen template. + + +## Get Box Doc Gen template by ID + +Lists details of a specific Box Doc Gen template. + +This operation is performed by calling function `getDocgenTemplateByIdV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/get-docgen-templates-id/). + + +``` +client.getDocgenTemplate().getDocgenTemplateByIdV2025R0(createdDocgenTemplate.getFile().getId()) +``` + +### Arguments + +- templateId `String` + - The ID of a Box Doc Gen template. Example: 123 +- headers `GetDocgenTemplateByIdV2025R0Headers` + - Headers of getDocgenTemplateByIdV2025R0 method + + +### Returns + +This function returns a value of type `DocGenTemplateV2025R0`. + +Returns a template. + + +## List all Box Doc Gen template tags in template + +Lists all tags in a Box Doc Gen template. + +This operation is performed by calling function `getDocgenTemplateTagsV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/get-docgen-templates-id-tags/). + + +``` +client.getDocgenTemplate().getDocgenTemplateTagsV2025R0(fetchedDocgenTemplate.getFile().getId()) +``` + +### Arguments + +- templateId `String` + - ID of template. Example: 123 +- queryParams `GetDocgenTemplateTagsV2025R0QueryParams` + - Query parameters of getDocgenTemplateTagsV2025R0 method +- headers `GetDocgenTemplateTagsV2025R0Headers` + - Headers of getDocgenTemplateTagsV2025R0 method + + +### Returns + +This function returns a value of type `DocGenTagsV2025R0`. + +A list of document generation template tags.Processing tags for the file. + + +## Get list of all Box Doc Gen jobs for template + +Lists the users jobs which use this template. + +This operation is performed by calling function `getDocgenTemplateJobByIdV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/get-docgen-template-jobs-id/). + + +``` +client.getDocgenTemplate().getDocgenTemplateJobByIdV2025R0(fetchedDocgenTemplate.getFile().getId()) +``` + +### Arguments + +- templateId `String` + - Id of template to fetch jobs for. Example: 123 +- queryParams `GetDocgenTemplateJobByIdV2025R0QueryParams` + - Query parameters of getDocgenTemplateJobByIdV2025R0 method +- headers `GetDocgenTemplateJobByIdV2025R0Headers` + - Headers of getDocgenTemplateJobByIdV2025R0 method + + +### Returns + +This function returns a value of type `DocGenJobsV2025R0`. + +A single Box Doc Gen template. + + diff --git a/docs/downloads.md b/docs/downloads.md new file mode 100644 index 000000000..c4b4489c4 --- /dev/null +++ b/docs/downloads.md @@ -0,0 +1,120 @@ +# DownloadsManager + + +- [Download file URL](#download-file-url) +- [Download file](#download-file) +- [Download file](#download-file) + +## Download file URL + +Get the download URL without downloading the content. + +This operation is performed by calling function `getDownloadFileUrl`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-files-id-content/). + + +``` +client.getDownloads().getDownloadFileUrl(uploadedFile.getId()) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- queryParams `GetDownloadFileUrlQueryParams` + - Query parameters of downloadFile method +- headers `GetDownloadFileUrlHeaders` + - Headers of downloadFile method + + +### Returns + +This function returns a value of type `String`. + +Returns the requested file if the client has the **follow +redirects** setting enabled to automatically +follow HTTP `3xx` responses as redirects. If not, the request +will return `302` instead. +For details, see +the [download file guide](g://downloads/file#download-url).If the file is not ready to be downloaded yet `Retry-After` header will +be returned indicating the time in seconds after which the file will +be available for the client to download. + +This response can occur when the file was uploaded immediately before the +download request. + + +## Download file + +Returns the contents of a file in binary format. + +This operation is performed by calling function `downloadFile`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-files-id-content/). + + +``` +client.getDownloads().downloadFile(uploadedFile.getId()) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- queryParams `DownloadFileQueryParams` + - Query parameters of downloadFile method +- headers `DownloadFileHeaders` + - Headers of downloadFile method + + +### Returns + +This function returns a value of type `InputStream`. + +Returns the requested file if the client has the **follow +redirects** setting enabled to automatically +follow HTTP `3xx` responses as redirects. If not, the request +will return `302` instead. +For details, see +the [download file guide](g://downloads/file#download-url).If the file is not ready to be downloaded yet `Retry-After` header will +be returned indicating the time in seconds after which the file will +be available for the client to download. + +This response can occur when the file was uploaded immediately before the +download request. + + +## Download file + +Download file to a given output stream + +This operation is performed by calling function `downloadFileToOutputStream`. + + + +``` +client.getDownloads().downloadFileToOutputStream(uploadedFile.getId(), fileOutputStream) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- outputStream `OutputStream` + - Download file to a given output stream +- queryParams `DownloadFileToOutputStreamQueryParams` + - Query parameters of downloadFile method +- headers `DownloadFileToOutputStreamHeaders` + - Headers of downloadFile method + + +### Returns + +This function returns a value of type `void`. + + + + diff --git a/docs/emailaliases.md b/docs/emailaliases.md new file mode 100644 index 000000000..2046bf577 --- /dev/null +++ b/docs/emailaliases.md @@ -0,0 +1,99 @@ +# EmailAliasesManager + + +- [List user's email aliases](#list-users-email-aliases) +- [Create email alias](#create-email-alias) +- [Remove email alias](#remove-email-alias) + +## List user's email aliases + +Retrieves all email aliases for a user. The collection +does not include the primary login for the user. + +This operation is performed by calling function `getUserEmailAliases`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-users-id-email-aliases/). + + +``` +client.getEmailAliases().getUserEmailAliases(newUser.getId()) +``` + +### Arguments + +- userId `String` + - The ID of the user. Example: "12345" +- headers `GetUserEmailAliasesHeaders` + - Headers of getUserEmailAliases method + + +### Returns + +This function returns a value of type `EmailAliases`. + +Returns a collection of email aliases. + + +## Create email alias + +Adds a new email alias to a user account.. + +This operation is performed by calling function `createUserEmailAlias`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-users-id-email-aliases/). + + +``` +client.getEmailAliases().createUserEmailAlias(newUser.getId(), new CreateUserEmailAliasRequestBody(newAliasEmail)) +``` + +### Arguments + +- userId `String` + - The ID of the user. Example: "12345" +- requestBody `CreateUserEmailAliasRequestBody` + - Request body of createUserEmailAlias method +- headers `CreateUserEmailAliasHeaders` + - Headers of createUserEmailAlias method + + +### Returns + +This function returns a value of type `EmailAlias`. + +Returns the newly created email alias object. + + +## Remove email alias + +Removes an email alias from a user. + +This operation is performed by calling function `deleteUserEmailAliasById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-users-id-email-aliases-id/). + + +``` +client.getEmailAliases().deleteUserEmailAliasById(newUser.getId(), newAlias.getId()) +``` + +### Arguments + +- userId `String` + - The ID of the user. Example: "12345" +- emailAliasId `String` + - The ID of the email alias. Example: "23432" +- headers `DeleteUserEmailAliasByIdHeaders` + - Headers of deleteUserEmailAliasById method + + +### Returns + +This function returns a value of type `void`. + +Removes the alias and returns an empty response. + + diff --git a/docs/events.md b/docs/events.md new file mode 100644 index 000000000..2290e88eb --- /dev/null +++ b/docs/events.md @@ -0,0 +1,109 @@ +# EventsManager + + +- [Get events long poll endpoint](#get-events-long-poll-endpoint) +- [List user and enterprise events](#list-user-and-enterprise-events) + +## Get events long poll endpoint + +Returns a list of real-time servers that can be used for long-polling updates +to the [event stream](#get-events). + +Long polling is the concept where a HTTP request is kept open until the +server sends a response, then repeating the process over and over to receive +updated responses. + +Long polling the event stream can only be used for user events, not for +enterprise events. + +To use long polling, first use this endpoint to retrieve a list of long poll +URLs. Next, make a long poll request to any of the provided URLs. + +When an event occurs in monitored account a response with the value +`new_change` will be sent. The response contains no other details as +it only serves as a prompt to take further action such as sending a +request to the [events endpoint](#get-events) with the last known +`stream_position`. + +After the server sends this response it closes the connection. You must now +repeat the long poll process to begin listening for events again. + +If no events occur for a while and the connection times out you will +receive a response with the value `reconnect`. When you receive this response +you’ll make another call to this endpoint to restart the process. + +If you receive no events in `retry_timeout` seconds then you will need to +make another request to the real-time server (one of the URLs in the response +for this endpoint). This might be necessary due to network errors. + +Finally, if you receive a `max_retries` error when making a request to the +real-time server, you should start over by making a call to this endpoint +first. + +This operation is performed by calling function `getEventsWithLongPolling`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/options-events/). + + +``` +client.getEvents().getEventsWithLongPolling() +``` + +### Arguments + +- headers `GetEventsWithLongPollingHeaders` + - Headers of getEventsWithLongPolling method + + +### Returns + +This function returns a value of type `RealtimeServers`. + +Returns a paginated array of servers that can be used +instead of the regular endpoints for long-polling events. + + +## List user and enterprise events + +Returns up to a year of past events for a given user +or for the entire enterprise. + +By default this returns events for the authenticated user. To retrieve events +for the entire enterprise, set the `stream_type` to `admin_logs_streaming` +for live monitoring of new events, or `admin_logs` for querying across +historical events. The user making the API call will +need to have admin privileges, and the application will need to have the +scope `manage enterprise properties` checked. + +This operation is performed by calling function `getEvents`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-events/). + + +``` +client.getEvents().getEvents() +``` + +### Arguments + +- queryParams `GetEventsQueryParams` + - Query parameters of getEvents method +- headers `GetEventsHeaders` + - Headers of getEvents method + + +### Returns + +This function returns a value of type `Events`. + +Returns a list of event objects. + +Events objects are returned in pages, with each page (chunk) +including a list of event objects. The response includes a +`chunk_size` parameter indicating how many events were returned in this +chunk, as well as the next `stream_position` that can be +queried. + + diff --git a/docs/fileclassifications.md b/docs/fileclassifications.md new file mode 100644 index 000000000..dd386ad46 --- /dev/null +++ b/docs/fileclassifications.md @@ -0,0 +1,151 @@ +# FileClassificationsManager + + +- [Get classification on file](#get-classification-on-file) +- [Add classification to file](#add-classification-to-file) +- [Update classification on file](#update-classification-on-file) +- [Remove classification from file](#remove-classification-from-file) + +## Get classification on file + +Retrieves the classification metadata instance that +has been applied to a file. + +This API can also be called by including the enterprise ID in the +URL explicitly, for example +`/files/:id//enterprise_12345/securityClassification-6VMVochwUWo`. + +This operation is performed by calling function `getClassificationOnFile`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-files-id-metadata-enterprise-securityClassification-6VMVochwUWo/). + + +``` +client.getFileClassifications().getClassificationOnFile(file.getId()) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- headers `GetClassificationOnFileHeaders` + - Headers of getClassificationOnFile method + + +### Returns + +This function returns a value of type `Classification`. + +Returns an instance of the `securityClassification` metadata +template, which contains a `Box__Security__Classification__Key` +field that lists all the classifications available to this +enterprise. + + +## Add classification to file + +Adds a classification to a file by specifying the label of the +classification to add. + +This API can also be called by including the enterprise ID in the +URL explicitly, for example +`/files/:id//enterprise_12345/securityClassification-6VMVochwUWo`. + +This operation is performed by calling function `addClassificationToFile`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-files-id-metadata-enterprise-securityClassification-6VMVochwUWo/). + + +``` +client.getFileClassifications().addClassificationToFile(file.getId(), new AddClassificationToFileRequestBody.Builder().boxSecurityClassificationKey(classification.getKey()).build()) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- requestBody `AddClassificationToFileRequestBody` + - Request body of addClassificationToFile method +- headers `AddClassificationToFileHeaders` + - Headers of addClassificationToFile method + + +### Returns + +This function returns a value of type `Classification`. + +Returns the classification template instance +that was applied to the file. + + +## Update classification on file + +Updates a classification on a file. + +The classification can only be updated if a classification has already been +applied to the file before. When editing classifications, only values are +defined for the enterprise will be accepted. + +This operation is performed by calling function `updateClassificationOnFile`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-files-id-metadata-enterprise-securityClassification-6VMVochwUWo/). + + +``` +client.getFileClassifications().updateClassificationOnFile(file.getId(), Arrays.asList(new UpdateClassificationOnFileRequestBody(secondClassification.getKey()))) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- requestBody `List` + - Request body of updateClassificationOnFile method +- headers `UpdateClassificationOnFileHeaders` + - Headers of updateClassificationOnFile method + + +### Returns + +This function returns a value of type `Classification`. + +Returns the updated classification metadata template instance. + + +## Remove classification from file + +Removes any classifications from a file. + +This API can also be called by including the enterprise ID in the +URL explicitly, for example +`/files/:id//enterprise_12345/securityClassification-6VMVochwUWo`. + +This operation is performed by calling function `deleteClassificationFromFile`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-files-id-metadata-enterprise-securityClassification-6VMVochwUWo/). + + +``` +client.getFileClassifications().deleteClassificationFromFile(file.getId()) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- headers `DeleteClassificationFromFileHeaders` + - Headers of deleteClassificationFromFile method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the classification is +successfully deleted. + + diff --git a/docs/filemetadata.md b/docs/filemetadata.md new file mode 100644 index 000000000..4a55f9c32 --- /dev/null +++ b/docs/filemetadata.md @@ -0,0 +1,194 @@ +# FileMetadataManager + + +- [List metadata instances on file](#list-metadata-instances-on-file) +- [Get metadata instance on file](#get-metadata-instance-on-file) +- [Create metadata instance on file](#create-metadata-instance-on-file) +- [Update metadata instance on file](#update-metadata-instance-on-file) +- [Remove metadata instance from file](#remove-metadata-instance-from-file) + +## List metadata instances on file + +Retrieves all metadata for a given file. + +This operation is performed by calling function `getFileMetadata`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-files-id-metadata/). + + +``` +client.getFileMetadata().getFileMetadata(file.getId()) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- headers `GetFileMetadataHeaders` + - Headers of getFileMetadata method + + +### Returns + +This function returns a value of type `Metadatas`. + +Returns all the metadata associated with a file. + +This API does not support pagination and will therefore always return +all of the metadata associated to the file. + + +## Get metadata instance on file + +Retrieves the instance of a metadata template that has been applied to a +file. + +This operation is performed by calling function `getFileMetadataById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-files-id-metadata-id-id/). + + +``` +client.getFileMetadata().getFileMetadataById(file.getId(), GetFileMetadataByIdScope.GLOBAL, "properties") +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- scope `GetFileMetadataByIdScope` + - The scope of the metadata template. Example: "global" +- templateKey `String` + - The name of the metadata template. Example: "properties" +- headers `GetFileMetadataByIdHeaders` + - Headers of getFileMetadataById method + + +### Returns + +This function returns a value of type `MetadataFull`. + +An instance of the metadata template that includes +additional "key:value" pairs defined by the user or +an application. + + +## Create metadata instance on file + +Applies an instance of a metadata template to a file. + +In most cases only values that are present in the metadata template +will be accepted, except for the `global.properties` template which accepts +any key-value pair. + +This operation is performed by calling function `createFileMetadataById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-files-id-metadata-id-id/). + + +``` +client.getFileMetadata().createFileMetadataById(file.getId(), CreateFileMetadataByIdScope.ENTERPRISE, templateKey, mapOf(entryOf("name", "John"), entryOf("age", 23), entryOf("birthDate", "2001-01-03T02:20:50.520Z"), entryOf("countryCode", "US"), entryOf("sports", Arrays.asList("basketball", "tennis")))) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- scope `CreateFileMetadataByIdScope` + - The scope of the metadata template. Example: "global" +- templateKey `String` + - The name of the metadata template. Example: "properties" +- requestBody `Map` + - Request body of createFileMetadataById method +- headers `CreateFileMetadataByIdHeaders` + - Headers of createFileMetadataById method + + +### Returns + +This function returns a value of type `MetadataFull`. + +Returns the instance of the template that was applied to the file, +including the data that was applied to the template. + + +## Update metadata instance on file + +Updates a piece of metadata on a file. + +The metadata instance can only be updated if the template has already been +applied to the file before. When editing metadata, only values that match +the metadata template schema will be accepted. + +The update is applied atomically. If any errors occur during the +application of the operations, the metadata instance will not be changed. + +This operation is performed by calling function `updateFileMetadataById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-files-id-metadata-id-id/). + + +``` +client.getFileMetadata().updateFileMetadataById(file.getId(), UpdateFileMetadataByIdScope.ENTERPRISE, templateKey, Arrays.asList(new UpdateFileMetadataByIdRequestBody.Builder().op(UpdateFileMetadataByIdRequestBodyOpField.REPLACE).path("/name").value("Jack").build(), new UpdateFileMetadataByIdRequestBody.Builder().op(UpdateFileMetadataByIdRequestBodyOpField.REPLACE).path("/age").value(24L).build(), new UpdateFileMetadataByIdRequestBody.Builder().op(UpdateFileMetadataByIdRequestBodyOpField.REPLACE).path("/birthDate").value("2000-01-03T02:20:50.520Z").build(), new UpdateFileMetadataByIdRequestBody.Builder().op(UpdateFileMetadataByIdRequestBodyOpField.REPLACE).path("/countryCode").value("CA").build(), new UpdateFileMetadataByIdRequestBody.Builder().op(UpdateFileMetadataByIdRequestBodyOpField.REPLACE).path("/sports").value(Arrays.asList("football")).build())) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- scope `UpdateFileMetadataByIdScope` + - The scope of the metadata template. Example: "global" +- templateKey `String` + - The name of the metadata template. Example: "properties" +- requestBody `List` + - Request body of updateFileMetadataById method +- headers `UpdateFileMetadataByIdHeaders` + - Headers of updateFileMetadataById method + + +### Returns + +This function returns a value of type `MetadataFull`. + +Returns the updated metadata template instance, with the +custom template data included. + + +## Remove metadata instance from file + +Deletes a piece of file metadata. + +This operation is performed by calling function `deleteFileMetadataById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-files-id-metadata-id-id/). + + +``` +client.getFileMetadata().deleteFileMetadataById(file.getId(), DeleteFileMetadataByIdScope.ENTERPRISE, templateKey) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- scope `DeleteFileMetadataByIdScope` + - The scope of the metadata template. Example: "global" +- templateKey `String` + - The name of the metadata template. Example: "properties" +- headers `DeleteFileMetadataByIdHeaders` + - Headers of deleteFileMetadataById method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the metadata is +successfully deleted. + + diff --git a/docs/filerequests.md b/docs/filerequests.md new file mode 100644 index 000000000..169912eb5 --- /dev/null +++ b/docs/filerequests.md @@ -0,0 +1,131 @@ +# FileRequestsManager + + +- [Get file request](#get-file-request) +- [Update file request](#update-file-request) +- [Delete file request](#delete-file-request) +- [Copy file request](#copy-file-request) + +## Get file request + +Retrieves the information about a file request. + +This operation is performed by calling function `getFileRequestById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-file-requests-id/). + + +``` +client.getFileRequests().getFileRequestById(fileRequestId) +``` + +### Arguments + +- fileRequestId `String` + - The unique identifier that represent a file request. The ID for any file request can be determined by visiting a file request builder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/filerequest/123` the `file_request_id` is `123`. Example: "123" +- headers `GetFileRequestByIdHeaders` + - Headers of getFileRequestById method + + +### Returns + +This function returns a value of type `FileRequest`. + +Returns a file request object. + + +## Update file request + +Updates a file request. This can be used to activate or +deactivate a file request. + +This operation is performed by calling function `updateFileRequestById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-file-requests-id/). + + +``` +client.getFileRequests().updateFileRequestById(copiedFileRequest.getId(), new FileRequestUpdateRequest.Builder().title("updated title").description("updated description").build()) +``` + +### Arguments + +- fileRequestId `String` + - The unique identifier that represent a file request. The ID for any file request can be determined by visiting a file request builder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/filerequest/123` the `file_request_id` is `123`. Example: "123" +- requestBody `FileRequestUpdateRequest` + - Request body of updateFileRequestById method +- headers `UpdateFileRequestByIdHeaders` + - Headers of updateFileRequestById method + + +### Returns + +This function returns a value of type `FileRequest`. + +Returns the updated file request object. + + +## Delete file request + +Deletes a file request permanently. + +This operation is performed by calling function `deleteFileRequestById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-file-requests-id/). + + +``` +client.getFileRequests().deleteFileRequestById(updatedFileRequest.getId()) +``` + +### Arguments + +- fileRequestId `String` + - The unique identifier that represent a file request. The ID for any file request can be determined by visiting a file request builder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/filerequest/123` the `file_request_id` is `123`. Example: "123" +- headers `DeleteFileRequestByIdHeaders` + - Headers of deleteFileRequestById method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the file request has been successfully +deleted. + + +## Copy file request + +Copies an existing file request that is already present on one folder, +and applies it to another folder. + +This operation is performed by calling function `createFileRequestCopy`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-file-requests-id-copy/). + + +``` +client.getFileRequests().createFileRequestCopy(fileRequestId, new FileRequestCopyRequest(new FileRequestCopyRequestFolderField.Builder(fileRequest.getFolder().getId()).type(FileRequestCopyRequestFolderTypeField.FOLDER).build())) +``` + +### Arguments + +- fileRequestId `String` + - The unique identifier that represent a file request. The ID for any file request can be determined by visiting a file request builder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/filerequest/123` the `file_request_id` is `123`. Example: "123" +- requestBody `FileRequestCopyRequest` + - Request body of createFileRequestCopy method +- headers `CreateFileRequestCopyHeaders` + - Headers of createFileRequestCopy method + + +### Returns + +This function returns a value of type `FileRequest`. + +Returns updated file request object. + + diff --git a/docs/files.md b/docs/files.md new file mode 100644 index 000000000..6dcc88133 --- /dev/null +++ b/docs/files.md @@ -0,0 +1,245 @@ +# FilesManager + + +- [Get file information](#get-file-information) +- [Update file](#update-file) +- [Delete file](#delete-file) +- [Copy file](#copy-file) +- [Get file thumbnail URL](#get-file-thumbnail-url) +- [Get file thumbnail](#get-file-thumbnail) + +## Get file information + +Retrieves the details about a file. + +This operation is performed by calling function `getFileById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-files-id/). + + +``` +client.getFiles().getFileById(uploadedFile.getId(), new GetFileByIdQueryParams.Builder().fields(Arrays.asList("is_externally_owned", "has_collaborations")).build()) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- queryParams `GetFileByIdQueryParams` + - Query parameters of getFileById method +- headers `GetFileByIdHeaders` + - Headers of getFileById method + + +### Returns + +This function returns a value of type `FileFull`. + +Returns a file object. + +Not all available fields are returned by default. Use the +[fields](#param-fields) query parameter to explicitly request +any specific fields. + + +## Update file + +Updates a file. This can be used to rename or move a file, +create a shared link, or lock a file. + +This operation is performed by calling function `updateFileById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-files-id/). + + +``` +client.getFiles().updateFileById(fileToUpdate.getId(), new UpdateFileByIdRequestBody.Builder().name(updatedName).description("Updated description").build()) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- requestBody `UpdateFileByIdRequestBody` + - Request body of updateFileById method +- queryParams `UpdateFileByIdQueryParams` + - Query parameters of updateFileById method +- headers `UpdateFileByIdHeaders` + - Headers of updateFileById method + + +### Returns + +This function returns a value of type `FileFull`. + +Returns a file object. + +Not all available fields are returned by default. Use the +[fields](#param-fields) query parameter to explicitly request +any specific fields. + + +## Delete file + +Deletes a file, either permanently or by moving it to +the trash. + +The the enterprise settings determine whether the item will +be permanently deleted from Box or moved to the trash. + +This operation is performed by calling function `deleteFileById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-files-id/). + + +``` +client.getFiles().deleteFileById(thumbnailFile.getId()) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- headers `DeleteFileByIdHeaders` + - Headers of deleteFileById method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the file has been successfully +deleted. + + +## Copy file + +Creates a copy of a file. + +This operation is performed by calling function `copyFile`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-files-id-copy/). + + +``` +client.getFiles().copyFile(fileOrigin.getId(), new CopyFileRequestBody.Builder(new CopyFileRequestBodyParentField("0")).name(copiedFileName).build()) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- requestBody `CopyFileRequestBody` + - Request body of copyFile method +- queryParams `CopyFileQueryParams` + - Query parameters of copyFile method +- headers `CopyFileHeaders` + - Headers of copyFile method + + +### Returns + +This function returns a value of type `FileFull`. + +Returns a new file object representing the copied file. + +Not all available fields are returned by default. Use the +[fields](#param-fields) query parameter to explicitly request +any specific fields. + + +## Get file thumbnail URL + +Get the download URL without downloading the content. + +This operation is performed by calling function `getFileThumbnailUrl`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-files-id-thumbnail-id/). + + +``` +client.getFiles().getFileThumbnailUrl(thumbnailFile.getId(), GetFileThumbnailUrlExtension.PNG) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- extension `GetFileThumbnailUrlExtension` + - The file format for the thumbnail. Example: "png" +- queryParams `GetFileThumbnailUrlQueryParams` + - Query parameters of getFileThumbnailById method +- headers `GetFileThumbnailUrlHeaders` + - Headers of getFileThumbnailById method + + +### Returns + +This function returns a value of type `String`. + +When a thumbnail can be created the thumbnail data will be +returned in the body of the response.Sometimes generating a thumbnail can take a few seconds. In these +situations the API returns a `Location`-header pointing to a +placeholder graphic for this file type. + +The placeholder graphic can be used in a user interface until the +thumbnail generation has completed. The `Retry-After`-header indicates +when to the thumbnail will be ready. At that time, retry this endpoint +to retrieve the thumbnail. + + +## Get file thumbnail + +Retrieves a thumbnail, or smaller image representation, of a file. + +Sizes of `32x32`,`64x64`, `128x128`, and `256x256` can be returned in +the `.png` format and sizes of `32x32`, `160x160`, and `320x320` +can be returned in the `.jpg` format. + +Thumbnails can be generated for the image and video file formats listed +[found on our community site][1]. + +[1]: https://community.box.com/t5/Migrating-and-Previewing-Content/File-Types-and-Fonts-Supported-in-Box-Content-Preview/ta-p/327 + +This operation is performed by calling function `getFileThumbnailById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-files-id-thumbnail-id/). + + +``` +client.getFiles().getFileThumbnailById(thumbnailFile.getId(), GetFileThumbnailByIdExtension.PNG) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- extension `GetFileThumbnailByIdExtension` + - The file format for the thumbnail. Example: "png" +- queryParams `GetFileThumbnailByIdQueryParams` + - Query parameters of getFileThumbnailById method +- headers `GetFileThumbnailByIdHeaders` + - Headers of getFileThumbnailById method + + +### Returns + +This function returns a value of type `InputStream`. + +When a thumbnail can be created the thumbnail data will be +returned in the body of the response.Sometimes generating a thumbnail can take a few seconds. In these +situations the API returns a `Location`-header pointing to a +placeholder graphic for this file type. + +The placeholder graphic can be used in a user interface until the +thumbnail generation has completed. The `Retry-After`-header indicates +when to the thumbnail will be ready. At that time, retry this endpoint +to retrieve the thumbnail. + + diff --git a/docs/fileversionlegalholds.md b/docs/fileversionlegalholds.md new file mode 100644 index 000000000..eecfa32cb --- /dev/null +++ b/docs/fileversionlegalholds.md @@ -0,0 +1,85 @@ +# FileVersionLegalHoldsManager + + +- [Get file version legal hold](#get-file-version-legal-hold) +- [List file version legal holds](#list-file-version-legal-holds) + +## Get file version legal hold + +Retrieves information about the legal hold policies +assigned to a file version. + +This operation is performed by calling function `getFileVersionLegalHoldById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-file-version-legal-holds-id/). + + +``` +client.getFileVersionLegalHolds().getFileVersionLegalHoldById(fileVersionLegalHoldId) +``` + +### Arguments + +- fileVersionLegalHoldId `String` + - The ID of the file version legal hold. Example: "2348213" +- headers `GetFileVersionLegalHoldByIdHeaders` + - Headers of getFileVersionLegalHoldById method + + +### Returns + +This function returns a value of type `FileVersionLegalHold`. + +Returns the legal hold policy assignments for the file version. + + +## List file version legal holds + +Get a list of file versions on legal hold for a legal hold +assignment. + +Due to ongoing re-architecture efforts this API might not return all file +versions for this policy ID. + +Instead, this API will only return file versions held in the legacy +architecture. Two new endpoints will available to request any file versions +held in the new architecture. + +For file versions held in the new architecture, the `GET +/legal_hold_policy_assignments/:id/file_versions_on_hold` API can be used to +return all past file versions available for this policy assignment, and the +`GET /legal_hold_policy_assignments/:id/files_on_hold` API can be used to +return any current (latest) versions of a file under legal hold. + +The `GET /legal_hold_policy_assignments?policy_id={id}` API can be used to +find a list of policy assignments for a given policy ID. + +Once the re-architecture is completed this API will be deprecated. + +This operation is performed by calling function `getFileVersionLegalHolds`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-file-version-legal-holds/). + + +``` +client.getFileVersionLegalHolds().getFileVersionLegalHolds(new GetFileVersionLegalHoldsQueryParams(policyId)) +``` + +### Arguments + +- queryParams `GetFileVersionLegalHoldsQueryParams` + - Query parameters of getFileVersionLegalHolds method +- headers `GetFileVersionLegalHoldsHeaders` + - Headers of getFileVersionLegalHolds method + + +### Returns + +This function returns a value of type `FileVersionLegalHolds`. + +Returns the list of file version legal holds for a specific legal +hold policy. + + diff --git a/docs/fileversionretentions.md b/docs/fileversionretentions.md new file mode 100644 index 000000000..ac1c8ff18 --- /dev/null +++ b/docs/fileversionretentions.md @@ -0,0 +1,74 @@ +# FileVersionRetentionsManager + + +- [List file version retentions](#list-file-version-retentions) +- [Get retention on file](#get-retention-on-file) + +## List file version retentions + +Retrieves all file version retentions for the given enterprise. + +**Note**: +File retention API is now **deprecated**. +To get information about files and file versions under retention, +see [files under retention](e://get-retention-policy-assignments-id-files-under-retention) or [file versions under retention](e://get-retention-policy-assignments-id-file-versions-under-retention) endpoints. + +This operation is performed by calling function `getFileVersionRetentions`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-file-version-retentions/). + + +``` +client.getFileVersionRetentions().getFileVersionRetentions() +``` + +### Arguments + +- queryParams `GetFileVersionRetentionsQueryParams` + - Query parameters of getFileVersionRetentions method +- headers `GetFileVersionRetentionsHeaders` + - Headers of getFileVersionRetentions method + + +### Returns + +This function returns a value of type `FileVersionRetentions`. + +Returns a list of all file version retentions for the enterprise. + + +## Get retention on file + +Returns information about a file version retention. + +**Note**: +File retention API is now **deprecated**. +To get information about files and file versions under retention, +see [files under retention](e://get-retention-policy-assignments-id-files-under-retention) or [file versions under retention](e://get-retention-policy-assignments-id-file-versions-under-retention) endpoints. + +This operation is performed by calling function `getFileVersionRetentionById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-file-version-retentions-id/). + + +``` +client.getFileVersionRetentions().getFileVersionRetentionById(fileVersionRetention.getId()) +``` + +### Arguments + +- fileVersionRetentionId `String` + - The ID of the file version retention. Example: "3424234" +- headers `GetFileVersionRetentionByIdHeaders` + - Headers of getFileVersionRetentionById method + + +### Returns + +This function returns a value of type `FileVersionRetention`. + +Returns a file version retention object. + + diff --git a/docs/fileversions.md b/docs/fileversions.md new file mode 100644 index 000000000..1dfd99324 --- /dev/null +++ b/docs/fileversions.md @@ -0,0 +1,200 @@ +# FileVersionsManager + + +- [List all file versions](#list-all-file-versions) +- [Get file version](#get-file-version) +- [Remove file version](#remove-file-version) +- [Restore file version](#restore-file-version) +- [Promote file version](#promote-file-version) + +## List all file versions + +Retrieve a list of the past versions for a file. + +Versions are only tracked by Box users with premium accounts. To fetch the ID +of the current version of a file, use the `GET /file/:id` API. + +This operation is performed by calling function `getFileVersions`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-files-id-versions/). + + +``` +client.getFileVersions().getFileVersions(file.getId()) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- queryParams `GetFileVersionsQueryParams` + - Query parameters of getFileVersions method +- headers `GetFileVersionsHeaders` + - Headers of getFileVersions method + + +### Returns + +This function returns a value of type `FileVersions`. + +Returns an array of past versions for this file. + + +## Get file version + +Retrieve a specific version of a file. + +Versions are only tracked for Box users with premium accounts. + +This operation is performed by calling function `getFileVersionById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-files-id-versions-id/). + + +``` +client.getFileVersions().getFileVersionById(file.getId(), fileVersions.getEntries().get(0).getId()) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- fileVersionId `String` + - The ID of the file version. Example: "1234" +- queryParams `GetFileVersionByIdQueryParams` + - Query parameters of getFileVersionById method +- headers `GetFileVersionByIdHeaders` + - Headers of getFileVersionById method + + +### Returns + +This function returns a value of type `FileVersionFull`. + +Returns a specific version of a file. + +Not all available fields are returned by default. Use the +[fields](#param-fields) query parameter to explicitly request +any specific fields. + + +## Remove file version + +Move a file version to the trash. + +Versions are only tracked for Box users with premium accounts. + +This operation is performed by calling function `deleteFileVersionById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-files-id-versions-id/). + + +``` +client.getFileVersions().deleteFileVersionById(file.getId(), fileVersion.getId()) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- fileVersionId `String` + - The ID of the file version. Example: "1234" +- headers `DeleteFileVersionByIdHeaders` + - Headers of deleteFileVersionById method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the file has been successfully +deleted. + + +## Restore file version + +Restores a specific version of a file after it was deleted. +Don't use this endpoint to restore Box Notes, +as it works with file formats such as PDF, DOC, +PPTX or similar. + +This operation is performed by calling function `updateFileVersionById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-files-id-versions-id/). + + +``` +client.getFileVersions().updateFileVersionById(file.getId(), fileVersion.getId(), new UpdateFileVersionByIdRequestBody.Builder().trashedAt(null).build()) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- fileVersionId `String` + - The ID of the file version. Example: "1234" +- requestBody `UpdateFileVersionByIdRequestBody` + - Request body of updateFileVersionById method +- headers `UpdateFileVersionByIdHeaders` + - Headers of updateFileVersionById method + + +### Returns + +This function returns a value of type `FileVersionFull`. + +Returns a restored file version object. + + +## Promote file version + +Promote a specific version of a file. + +If previous versions exist, this method can be used to +promote one of the older versions to the top of the version history. + +This creates a new copy of the old version and puts it at the +top of the versions history. The file will have the exact same contents +as the older version, with the the same hash digest, `etag`, and +name as the original. + +Other properties such as comments do not get updated to their +former values. + +Don't use this endpoint to restore Box Notes, +as it works with file formats such as PDF, DOC, +PPTX or similar. + +This operation is performed by calling function `promoteFileVersion`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-files-id-versions-current/). + + +``` +client.getFileVersions().promoteFileVersion(file.getId(), new PromoteFileVersionRequestBody.Builder().id(fileVersions.getEntries().get(0).getId()).type(PromoteFileVersionRequestBodyTypeField.FILE_VERSION).build()) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- requestBody `PromoteFileVersionRequestBody` + - Request body of promoteFileVersion method +- queryParams `PromoteFileVersionQueryParams` + - Query parameters of promoteFileVersion method +- headers `PromoteFileVersionHeaders` + - Headers of promoteFileVersion method + + +### Returns + +This function returns a value of type `FileVersionFull`. + +Returns a newly created file version object. + + diff --git a/docs/filewatermarks.md b/docs/filewatermarks.md new file mode 100644 index 000000000..fd94bbd8b --- /dev/null +++ b/docs/filewatermarks.md @@ -0,0 +1,99 @@ +# FileWatermarksManager + + +- [Get watermark on file](#get-watermark-on-file) +- [Apply watermark to file](#apply-watermark-to-file) +- [Remove watermark from file](#remove-watermark-from-file) + +## Get watermark on file + +Retrieve the watermark for a file. + +This operation is performed by calling function `getFileWatermark`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-files-id-watermark/). + + +``` +client.getFileWatermarks().getFileWatermark(file.getId()) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- headers `GetFileWatermarkHeaders` + - Headers of getFileWatermark method + + +### Returns + +This function returns a value of type `Watermark`. + +Returns an object containing information about the +watermark associated for to this file. + + +## Apply watermark to file + +Applies or update a watermark on a file. + +This operation is performed by calling function `updateFileWatermark`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-files-id-watermark/). + + +``` +client.getFileWatermarks().updateFileWatermark(file.getId(), new UpdateFileWatermarkRequestBody(new UpdateFileWatermarkRequestBodyWatermarkField.Builder().imprint(UpdateFileWatermarkRequestBodyWatermarkImprintField.DEFAULT).build())) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- requestBody `UpdateFileWatermarkRequestBody` + - Request body of updateFileWatermark method +- headers `UpdateFileWatermarkHeaders` + - Headers of updateFileWatermark method + + +### Returns + +This function returns a value of type `Watermark`. + +Returns an updated watermark if a watermark already +existed on this file.Returns a new watermark if no watermark existed on +this file yet. + + +## Remove watermark from file + +Removes the watermark from a file. + +This operation is performed by calling function `deleteFileWatermark`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-files-id-watermark/). + + +``` +client.getFileWatermarks().deleteFileWatermark(file.getId()) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- headers `DeleteFileWatermarkHeaders` + - Headers of deleteFileWatermark method + + +### Returns + +This function returns a value of type `void`. + +Removes the watermark and returns an empty response. + + diff --git a/docs/folderclassifications.md b/docs/folderclassifications.md new file mode 100644 index 000000000..5a887a3fb --- /dev/null +++ b/docs/folderclassifications.md @@ -0,0 +1,151 @@ +# FolderClassificationsManager + + +- [Get classification on folder](#get-classification-on-folder) +- [Add classification to folder](#add-classification-to-folder) +- [Update classification on folder](#update-classification-on-folder) +- [Remove classification from folder](#remove-classification-from-folder) + +## Get classification on folder + +Retrieves the classification metadata instance that +has been applied to a folder. + +This API can also be called by including the enterprise ID in the +URL explicitly, for example +`/folders/:id/enterprise_12345/securityClassification-6VMVochwUWo`. + +This operation is performed by calling function `getClassificationOnFolder`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-folders-id-metadata-enterprise-securityClassification-6VMVochwUWo/). + + +``` +client.getFolderClassifications().getClassificationOnFolder(folder.getId()) +``` + +### Arguments + +- folderId `String` + - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- headers `GetClassificationOnFolderHeaders` + - Headers of getClassificationOnFolder method + + +### Returns + +This function returns a value of type `Classification`. + +Returns an instance of the `securityClassification` metadata +template, which contains a `Box__Security__Classification__Key` +field that lists all the classifications available to this +enterprise. + + +## Add classification to folder + +Adds a classification to a folder by specifying the label of the +classification to add. + +This API can also be called by including the enterprise ID in the +URL explicitly, for example +`/folders/:id/enterprise_12345/securityClassification-6VMVochwUWo`. + +This operation is performed by calling function `addClassificationToFolder`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-folders-id-metadata-enterprise-securityClassification-6VMVochwUWo/). + + +``` +client.getFolderClassifications().addClassificationToFolder(folder.getId(), new AddClassificationToFolderRequestBody.Builder().boxSecurityClassificationKey(classification.getKey()).build()) +``` + +### Arguments + +- folderId `String` + - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- requestBody `AddClassificationToFolderRequestBody` + - Request body of addClassificationToFolder method +- headers `AddClassificationToFolderHeaders` + - Headers of addClassificationToFolder method + + +### Returns + +This function returns a value of type `Classification`. + +Returns the classification template instance +that was applied to the folder. + + +## Update classification on folder + +Updates a classification on a folder. + +The classification can only be updated if a classification has already been +applied to the folder before. When editing classifications, only values are +defined for the enterprise will be accepted. + +This operation is performed by calling function `updateClassificationOnFolder`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-folders-id-metadata-enterprise-securityClassification-6VMVochwUWo/). + + +``` +client.getFolderClassifications().updateClassificationOnFolder(folder.getId(), Arrays.asList(new UpdateClassificationOnFolderRequestBody(secondClassification.getKey()))) +``` + +### Arguments + +- folderId `String` + - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- requestBody `List` + - Request body of updateClassificationOnFolder method +- headers `UpdateClassificationOnFolderHeaders` + - Headers of updateClassificationOnFolder method + + +### Returns + +This function returns a value of type `Classification`. + +Returns the updated classification metadata template instance. + + +## Remove classification from folder + +Removes any classifications from a folder. + +This API can also be called by including the enterprise ID in the +URL explicitly, for example +`/folders/:id/enterprise_12345/securityClassification-6VMVochwUWo`. + +This operation is performed by calling function `deleteClassificationFromFolder`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-folders-id-metadata-enterprise-securityClassification-6VMVochwUWo/). + + +``` +client.getFolderClassifications().deleteClassificationFromFolder(folder.getId()) +``` + +### Arguments + +- folderId `String` + - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- headers `DeleteClassificationFromFolderHeaders` + - Headers of deleteClassificationFromFolder method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the classification is +successfully deleted. + + diff --git a/docs/folderlocks.md b/docs/folderlocks.md new file mode 100644 index 000000000..6c050d597 --- /dev/null +++ b/docs/folderlocks.md @@ -0,0 +1,106 @@ +# FolderLocksManager + + +- [List folder locks](#list-folder-locks) +- [Create folder lock](#create-folder-lock) +- [Delete folder lock](#delete-folder-lock) + +## List folder locks + +Retrieves folder lock details for a given folder. + +You must be authenticated as the owner or co-owner of the folder to +use this endpoint. + +This operation is performed by calling function `getFolderLocks`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-folder-locks/). + + +``` +client.getFolderLocks().getFolderLocks(new GetFolderLocksQueryParams(folder.getId())) +``` + +### Arguments + +- queryParams `GetFolderLocksQueryParams` + - Query parameters of getFolderLocks method +- headers `GetFolderLocksHeaders` + - Headers of getFolderLocks method + + +### Returns + +This function returns a value of type `FolderLocks`. + +Returns details for all folder locks applied to the folder, including the +lock type and user that applied the lock. + + +## Create folder lock + +Creates a folder lock on a folder, preventing it from being moved and/or +deleted. + +You must be authenticated as the owner or co-owner of the folder to +use this endpoint. + +This operation is performed by calling function `createFolderLock`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-folder-locks/). + + +``` +client.getFolderLocks().createFolderLock(new CreateFolderLockRequestBody.Builder(new CreateFolderLockRequestBodyFolderField("folder", folder.getId())).lockedOperations(new CreateFolderLockRequestBodyLockedOperationsField(true, true)).build()) +``` + +### Arguments + +- requestBody `CreateFolderLockRequestBody` + - Request body of createFolderLock method +- headers `CreateFolderLockHeaders` + - Headers of createFolderLock method + + +### Returns + +This function returns a value of type `FolderLock`. + +Returns the instance of the folder lock that was applied to the folder, +including the user that applied the lock and the operations set. + + +## Delete folder lock + +Deletes a folder lock on a given folder. + +You must be authenticated as the owner or co-owner of the folder to +use this endpoint. + +This operation is performed by calling function `deleteFolderLockById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-folder-locks-id/). + + +``` +client.getFolderLocks().deleteFolderLockById(folderLock.getId()) +``` + +### Arguments + +- folderLockId `String` + - The ID of the folder lock. Example: "12345" +- headers `DeleteFolderLockByIdHeaders` + - Headers of deleteFolderLockById method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the folder lock is successfully deleted. + + diff --git a/docs/foldermetadata.md b/docs/foldermetadata.md new file mode 100644 index 000000000..307d252f7 --- /dev/null +++ b/docs/foldermetadata.md @@ -0,0 +1,199 @@ +# FolderMetadataManager + + +- [List metadata instances on folder](#list-metadata-instances-on-folder) +- [Get metadata instance on folder](#get-metadata-instance-on-folder) +- [Create metadata instance on folder](#create-metadata-instance-on-folder) +- [Update metadata instance on folder](#update-metadata-instance-on-folder) +- [Remove metadata instance from folder](#remove-metadata-instance-from-folder) + +## List metadata instances on folder + +Retrieves all metadata for a given folder. This can not be used on the root +folder with ID `0`. + +This operation is performed by calling function `getFolderMetadata`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-folders-id-metadata/). + + +``` +client.getFolderMetadata().getFolderMetadata(folder.getId()) +``` + +### Arguments + +- folderId `String` + - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- headers `GetFolderMetadataHeaders` + - Headers of getFolderMetadata method + + +### Returns + +This function returns a value of type `Metadatas`. + +Returns all the metadata associated with a folder. + +This API does not support pagination and will therefore always return +all of the metadata associated to the folder. + + +## Get metadata instance on folder + +Retrieves the instance of a metadata template that has been applied to a +folder. This can not be used on the root folder with ID `0`. + +This operation is performed by calling function `getFolderMetadataById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-folders-id-metadata-id-id/). + + +``` +client.getFolderMetadata().getFolderMetadataById(folder.getId(), GetFolderMetadataByIdScope.GLOBAL, "properties") +``` + +### Arguments + +- folderId `String` + - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- scope `GetFolderMetadataByIdScope` + - The scope of the metadata template. Example: "global" +- templateKey `String` + - The name of the metadata template. Example: "properties" +- headers `GetFolderMetadataByIdHeaders` + - Headers of getFolderMetadataById method + + +### Returns + +This function returns a value of type `MetadataFull`. + +An instance of the metadata template that includes +additional "key:value" pairs defined by the user or +an application. + + +## Create metadata instance on folder + +Applies an instance of a metadata template to a folder. + +In most cases only values that are present in the metadata template +will be accepted, except for the `global.properties` template which accepts +any key-value pair. + +To display the metadata template in the Box web app the enterprise needs to be +configured to enable **Cascading Folder Level Metadata** for the user in the +admin console. + +This operation is performed by calling function `createFolderMetadataById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-folders-id-metadata-id-id/). + + +``` +client.getFolderMetadata().createFolderMetadataById(folder.getId(), CreateFolderMetadataByIdScope.ENTERPRISE, templateKey, mapOf(entryOf("name", "John"), entryOf("age", 23), entryOf("birthDate", "2001-01-03T02:20:50.520Z"), entryOf("countryCode", "US"), entryOf("sports", Arrays.asList("basketball", "tennis")))) +``` + +### Arguments + +- folderId `String` + - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- scope `CreateFolderMetadataByIdScope` + - The scope of the metadata template. Example: "global" +- templateKey `String` + - The name of the metadata template. Example: "properties" +- requestBody `Map` + - Request body of createFolderMetadataById method +- headers `CreateFolderMetadataByIdHeaders` + - Headers of createFolderMetadataById method + + +### Returns + +This function returns a value of type `MetadataFull`. + +Returns the instance of the template that was applied to the folder, +including the data that was applied to the template. + + +## Update metadata instance on folder + +Updates a piece of metadata on a folder. + +The metadata instance can only be updated if the template has already been +applied to the folder before. When editing metadata, only values that match +the metadata template schema will be accepted. + +The update is applied atomically. If any errors occur during the +application of the operations, the metadata instance will not be changed. + +This operation is performed by calling function `updateFolderMetadataById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-folders-id-metadata-id-id/). + + +``` +client.getFolderMetadata().updateFolderMetadataById(folder.getId(), UpdateFolderMetadataByIdScope.ENTERPRISE, templateKey, Arrays.asList(new UpdateFolderMetadataByIdRequestBody.Builder().op(UpdateFolderMetadataByIdRequestBodyOpField.REPLACE).path("/name").value("Jack").build(), new UpdateFolderMetadataByIdRequestBody.Builder().op(UpdateFolderMetadataByIdRequestBodyOpField.REPLACE).path("/age").value(24L).build(), new UpdateFolderMetadataByIdRequestBody.Builder().op(UpdateFolderMetadataByIdRequestBodyOpField.REPLACE).path("/birthDate").value("2000-01-03T02:20:50.520Z").build(), new UpdateFolderMetadataByIdRequestBody.Builder().op(UpdateFolderMetadataByIdRequestBodyOpField.REPLACE).path("/countryCode").value("CA").build(), new UpdateFolderMetadataByIdRequestBody.Builder().op(UpdateFolderMetadataByIdRequestBodyOpField.REPLACE).path("/sports").value(Arrays.asList("football")).build())) +``` + +### Arguments + +- folderId `String` + - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- scope `UpdateFolderMetadataByIdScope` + - The scope of the metadata template. Example: "global" +- templateKey `String` + - The name of the metadata template. Example: "properties" +- requestBody `List` + - Request body of updateFolderMetadataById method +- headers `UpdateFolderMetadataByIdHeaders` + - Headers of updateFolderMetadataById method + + +### Returns + +This function returns a value of type `MetadataFull`. + +Returns the updated metadata template instance, with the +custom template data included. + + +## Remove metadata instance from folder + +Deletes a piece of folder metadata. + +This operation is performed by calling function `deleteFolderMetadataById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-folders-id-metadata-id-id/). + + +``` +client.getFolderMetadata().deleteFolderMetadataById(folder.getId(), DeleteFolderMetadataByIdScope.ENTERPRISE, templateKey) +``` + +### Arguments + +- folderId `String` + - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- scope `DeleteFolderMetadataByIdScope` + - The scope of the metadata template. Example: "global" +- templateKey `String` + - The name of the metadata template. Example: "properties" +- headers `DeleteFolderMetadataByIdHeaders` + - Headers of deleteFolderMetadataById method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the metadata is +successfully deleted. + + diff --git a/docs/folders.md b/docs/folders.md new file mode 100644 index 000000000..0ab79c9fd --- /dev/null +++ b/docs/folders.md @@ -0,0 +1,245 @@ +# FoldersManager + + +- [Get folder information](#get-folder-information) +- [Update folder](#update-folder) +- [Delete folder](#delete-folder) +- [List items in folder](#list-items-in-folder) +- [Create folder](#create-folder) +- [Copy folder](#copy-folder) + +## Get folder information + +Retrieves details for a folder, including the first 100 entries +in the folder. + +Passing `sort`, `direction`, `offset`, and `limit` +parameters in query allows you to manage the +list of returned +[folder items](r://folder--full#param-item-collection). + +To fetch more items within the folder, use the +[Get items in a folder](e://get-folders-id-items) endpoint. + +This operation is performed by calling function `getFolderById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-folders-id/). + + +``` +client.getFolders().getFolderById("0") +``` + +### Arguments + +- folderId `String` + - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- queryParams `GetFolderByIdQueryParams` + - Query parameters of getFolderById method +- headers `GetFolderByIdHeaders` + - Headers of getFolderById method + + +### Returns + +This function returns a value of type `FolderFull`. + +Returns a folder, including the first 100 entries in the folder. +If you used query parameters like +`sort`, `direction`, `offset`, or `limit` +the *folder items list* will be affected accordingly. + +To fetch more items within the folder, use the +[Get items in a folder](e://get-folders-id-items)) endpoint. + +Not all available fields are returned by default. Use the +[fields](#param-fields) query parameter to explicitly request +any specific fields. + + +## Update folder + +Updates a folder. This can be also be used to move the folder, +create shared links, update collaborations, and more. + +This operation is performed by calling function `updateFolderById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-folders-id/). + + +``` +client.getFolders().updateFolderById(folderToUpdate.getId(), new UpdateFolderByIdRequestBody.Builder().name(updatedName).description("Updated description").build()) +``` + +### Arguments + +- folderId `String` + - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- requestBody `UpdateFolderByIdRequestBody` + - Request body of updateFolderById method +- queryParams `UpdateFolderByIdQueryParams` + - Query parameters of updateFolderById method +- headers `UpdateFolderByIdHeaders` + - Headers of updateFolderById method + + +### Returns + +This function returns a value of type `FolderFull`. + +Returns a folder object for the updated folder + +Not all available fields are returned by default. Use the +[fields](#param-fields) query parameter to explicitly request +any specific fields. + +If the user is moving folders with a large number of items in all of +their descendants, the call will be run asynchronously. If the +operation is not completed within 10 minutes, the user will receive +a 200 OK response, and the operation will continue running. + + +## Delete folder + +Deletes a folder, either permanently or by moving it to +the trash. + +This operation is performed by calling function `deleteFolderById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-folders-id/). + + +``` +client.getFolders().deleteFolderById(newFolder.getId()) +``` + +### Arguments + +- folderId `String` + - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- queryParams `DeleteFolderByIdQueryParams` + - Query parameters of deleteFolderById method +- headers `DeleteFolderByIdHeaders` + - Headers of deleteFolderById method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the folder is successfully deleted +or moved to the trash. + + +## List items in folder + +Retrieves a page of items in a folder. These items can be files, +folders, and web links. + +To request more information about the folder itself, like its size, +use the [Get a folder](#get-folders-id) endpoint instead. + +This operation is performed by calling function `getFolderItems`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-folders-id-items/). + + +``` +client.getFolders().getFolderItems(folderOrigin.getId()) +``` + +### Arguments + +- folderId `String` + - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- queryParams `GetFolderItemsQueryParams` + - Query parameters of getFolderItems method +- headers `GetFolderItemsHeaders` + - Headers of getFolderItems method + + +### Returns + +This function returns a value of type `Items`. + +Returns a collection of files, folders, and web links contained in a folder. + + +## Create folder + +Creates a new empty folder within the specified parent folder. + +This operation is performed by calling function `createFolder`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-folders/). + + +``` +client.getFolders().createFolder(new CreateFolderRequestBody(newFolderName, new CreateFolderRequestBodyParentField("0"))) +``` + +### Arguments + +- requestBody `CreateFolderRequestBody` + - Request body of createFolder method +- queryParams `CreateFolderQueryParams` + - Query parameters of createFolder method +- headers `CreateFolderHeaders` + - Headers of createFolder method + + +### Returns + +This function returns a value of type `FolderFull`. + +Returns a folder object. + +Not all available fields are returned by default. Use the +[fields](#param-fields) query parameter to explicitly request +any specific fields. + + +## Copy folder + +Creates a copy of a folder within a destination folder. + +The original folder will not be changed. + +This operation is performed by calling function `copyFolder`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-folders-id-copy/). + + +``` +client.getFolders().copyFolder(folderOrigin.getId(), new CopyFolderRequestBody.Builder(new CopyFolderRequestBodyParentField("0")).name(copiedFolderName).build()) +``` + +### Arguments + +- folderId `String` + - The unique identifier of the folder to copy. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder with the ID `0` can not be copied. Example: "0" +- requestBody `CopyFolderRequestBody` + - Request body of copyFolder method +- queryParams `CopyFolderQueryParams` + - Query parameters of copyFolder method +- headers `CopyFolderHeaders` + - Headers of copyFolder method + + +### Returns + +This function returns a value of type `FolderFull`. + +Returns a new folder object representing the copied folder. + +Not all available fields are returned by default. Use the +[fields](#param-fields) query parameter to explicitly request +any specific fields. + + diff --git a/docs/folderwatermarks.md b/docs/folderwatermarks.md new file mode 100644 index 000000000..323f45ef8 --- /dev/null +++ b/docs/folderwatermarks.md @@ -0,0 +1,100 @@ +# FolderWatermarksManager + + +- [Get watermark for folder](#get-watermark-for-folder) +- [Apply watermark to folder](#apply-watermark-to-folder) +- [Remove watermark from folder](#remove-watermark-from-folder) + +## Get watermark for folder + +Retrieve the watermark for a folder. + +This operation is performed by calling function `getFolderWatermark`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-folders-id-watermark/). + + +``` +client.getFolderWatermarks().getFolderWatermark(folder.getId()) +``` + +### Arguments + +- folderId `String` + - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- headers `GetFolderWatermarkHeaders` + - Headers of getFolderWatermark method + + +### Returns + +This function returns a value of type `Watermark`. + +Returns an object containing information about the +watermark associated for to this folder. + + +## Apply watermark to folder + +Applies or update a watermark on a folder. + +This operation is performed by calling function `updateFolderWatermark`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-folders-id-watermark/). + + +``` +client.getFolderWatermarks().updateFolderWatermark(folder.getId(), new UpdateFolderWatermarkRequestBody(new UpdateFolderWatermarkRequestBodyWatermarkField.Builder().imprint(UpdateFolderWatermarkRequestBodyWatermarkImprintField.DEFAULT).build())) +``` + +### Arguments + +- folderId `String` + - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- requestBody `UpdateFolderWatermarkRequestBody` + - Request body of updateFolderWatermark method +- headers `UpdateFolderWatermarkHeaders` + - Headers of updateFolderWatermark method + + +### Returns + +This function returns a value of type `Watermark`. + +Returns an updated watermark if a watermark already +existed on this folder.Returns a new watermark if no watermark existed on +this folder yet. + + +## Remove watermark from folder + +Removes the watermark from a folder. + +This operation is performed by calling function `deleteFolderWatermark`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-folders-id-watermark/). + + +``` +client.getFolderWatermarks().deleteFolderWatermark(folder.getId()) +``` + +### Arguments + +- folderId `String` + - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- headers `DeleteFolderWatermarkHeaders` + - Headers of deleteFolderWatermark method + + +### Returns + +This function returns a value of type `void`. + +An empty response will be returned when the watermark +was successfully deleted. + + diff --git a/docs/groups.md b/docs/groups.md new file mode 100644 index 000000000..5e66b2d5f --- /dev/null +++ b/docs/groups.md @@ -0,0 +1,171 @@ +# GroupsManager + + +- [List groups for enterprise](#list-groups-for-enterprise) +- [Create group](#create-group) +- [Get group](#get-group) +- [Update group](#update-group) +- [Remove group](#remove-group) + +## List groups for enterprise + +Retrieves all of the groups for a given enterprise. The user +must have admin permissions to inspect enterprise's groups. + +This operation is performed by calling function `getGroups`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-groups/). + + +``` +client.getGroups().getGroups() +``` + +### Arguments + +- queryParams `GetGroupsQueryParams` + - Query parameters of getGroups method +- headers `GetGroupsHeaders` + - Headers of getGroups method + + +### Returns + +This function returns a value of type `Groups`. + +Returns a collection of group objects. If there are no groups, an +empty collection will be returned. + + +## Create group + +Creates a new group of users in an enterprise. Only users with admin +permissions can create new groups. + +This operation is performed by calling function `createGroup`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-groups/). + + +``` +client.getGroups().createGroup(new CreateGroupRequestBody.Builder(groupName).description(groupDescription).build()) +``` + +### Arguments + +- requestBody `CreateGroupRequestBody` + - Request body of createGroup method +- queryParams `CreateGroupQueryParams` + - Query parameters of createGroup method +- headers `CreateGroupHeaders` + - Headers of createGroup method + + +### Returns + +This function returns a value of type `GroupFull`. + +Returns the new group object. + + +## Get group + +Retrieves information about a group. Only members of this +group or users with admin-level permissions will be able to +use this API. + +This operation is performed by calling function `getGroupById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-groups-id/). + + +``` +client.getGroups().getGroupById(group.getId(), new GetGroupByIdQueryParams.Builder().fields(Arrays.asList("id", "name", "description", "group_type")).build()) +``` + +### Arguments + +- groupId `String` + - The ID of the group. Example: "57645" +- queryParams `GetGroupByIdQueryParams` + - Query parameters of getGroupById method +- headers `GetGroupByIdHeaders` + - Headers of getGroupById method + + +### Returns + +This function returns a value of type `GroupFull`. + +Returns the group object. + + +## Update group + +Updates a specific group. Only admins of this +group or users with admin-level permissions will be able to +use this API. + +This operation is performed by calling function `updateGroupById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-groups-id/). + + +``` +client.getGroups().updateGroupById(group.getId(), new UpdateGroupByIdRequestBody.Builder().name(updatedGroupName).build()) +``` + +### Arguments + +- groupId `String` + - The ID of the group. Example: "57645" +- requestBody `UpdateGroupByIdRequestBody` + - Request body of updateGroupById method +- queryParams `UpdateGroupByIdQueryParams` + - Query parameters of updateGroupById method +- headers `UpdateGroupByIdHeaders` + - Headers of updateGroupById method + + +### Returns + +This function returns a value of type `GroupFull`. + +Returns the updated group object. + + +## Remove group + +Permanently deletes a group. Only users with +admin-level permissions will be able to use this API. + +This operation is performed by calling function `deleteGroupById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-groups-id/). + + +``` +client.getGroups().deleteGroupById(group.getId()) +``` + +### Arguments + +- groupId `String` + - The ID of the group. Example: "57645" +- headers `DeleteGroupByIdHeaders` + - Headers of deleteGroupById method + + +### Returns + +This function returns a value of type `void`. + +A blank response is returned if the group was +successfully deleted. + + diff --git a/docs/hubcollaborations.md b/docs/hubcollaborations.md new file mode 100644 index 000000000..e36f79e12 --- /dev/null +++ b/docs/hubcollaborations.md @@ -0,0 +1,160 @@ +# HubCollaborationsManager + + +- [Get hub collaborations](#get-hub-collaborations) +- [Create hub collaboration](#create-hub-collaboration) +- [Get hub collaboration by collaboration ID](#get-hub-collaboration-by-collaboration-id) +- [Update hub collaboration](#update-hub-collaboration) +- [Remove hub collaboration](#remove-hub-collaboration) + +## Get hub collaborations + +Retrieves all collaborations for a hub. + +This operation is performed by calling function `getHubCollaborationsV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/get-hub-collaborations/). + + +``` +client.getHubCollaborations().getHubCollaborationsV2025R0(new GetHubCollaborationsV2025R0QueryParams(hub.getId())) +``` + +### Arguments + +- queryParams `GetHubCollaborationsV2025R0QueryParams` + - Query parameters of getHubCollaborationsV2025R0 method +- headers `GetHubCollaborationsV2025R0Headers` + - Headers of getHubCollaborationsV2025R0 method + + +### Returns + +This function returns a value of type `HubCollaborationsV2025R0`. + +Retrieves the collaborations associated with the specified hub. + + +## Create hub collaboration + +Adds a collaboration for a single user or a single group to a hub. + +Collaborations can be created using email address, user IDs, or group IDs. + +This operation is performed by calling function `createHubCollaborationV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/post-hub-collaborations/). + + +``` +client.getHubCollaborations().createHubCollaborationV2025R0(new HubCollaborationCreateRequestV2025R0(new HubCollaborationCreateRequestV2025R0HubField(hub.getId()), new HubCollaborationCreateRequestV2025R0AccessibleByField.Builder("user").id(user.getId()).build(), "viewer")) +``` + +### Arguments + +- requestBody `HubCollaborationCreateRequestV2025R0` + - Request body of createHubCollaborationV2025R0 method +- headers `CreateHubCollaborationV2025R0Headers` + - Headers of createHubCollaborationV2025R0 method + + +### Returns + +This function returns a value of type `HubCollaborationV2025R0`. + +Returns a new hub collaboration object. + + +## Get hub collaboration by collaboration ID + +Retrieves details for a hub collaboration by collaboration ID. + +This operation is performed by calling function `getHubCollaborationByIdV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/get-hub-collaborations-id/). + + +``` +client.getHubCollaborations().getHubCollaborationByIdV2025R0(createdCollaboration.getId()) +``` + +### Arguments + +- hubCollaborationId `String` + - The ID of the hub collaboration. Example: "1234" +- headers `GetHubCollaborationByIdV2025R0Headers` + - Headers of getHubCollaborationByIdV2025R0 method + + +### Returns + +This function returns a value of type `HubCollaborationV2025R0`. + +Returns a hub collaboration object. + + +## Update hub collaboration + +Updates a hub collaboration. +Can be used to change the hub role. + +This operation is performed by calling function `updateHubCollaborationByIdV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/put-hub-collaborations-id/). + + +``` +client.getHubCollaborations().updateHubCollaborationByIdV2025R0(createdCollaboration.getId(), new HubCollaborationUpdateRequestV2025R0.Builder().role("editor").build()) +``` + +### Arguments + +- hubCollaborationId `String` + - The ID of the hub collaboration. Example: "1234" +- requestBody `HubCollaborationUpdateRequestV2025R0` + - Request body of updateHubCollaborationByIdV2025R0 method +- headers `UpdateHubCollaborationByIdV2025R0Headers` + - Headers of updateHubCollaborationByIdV2025R0 method + + +### Returns + +This function returns a value of type `HubCollaborationV2025R0`. + +Returns an updated hub collaboration object. + + +## Remove hub collaboration + +Deletes a single hub collaboration. + +This operation is performed by calling function `deleteHubCollaborationByIdV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/delete-hub-collaborations-id/). + + +``` +client.getHubCollaborations().deleteHubCollaborationByIdV2025R0(createdCollaboration.getId()) +``` + +### Arguments + +- hubCollaborationId `String` + - The ID of the hub collaboration. Example: "1234" +- headers `DeleteHubCollaborationByIdV2025R0Headers` + - Headers of deleteHubCollaborationByIdV2025R0 method + + +### Returns + +This function returns a value of type `void`. + +A blank response is returned if the hub collaboration was +successfully deleted. + + diff --git a/docs/hubitems.md b/docs/hubitems.md new file mode 100644 index 000000000..11a77727d --- /dev/null +++ b/docs/hubitems.md @@ -0,0 +1,66 @@ +# HubItemsManager + + +- [Get hub items](#get-hub-items) +- [Manage hub items](#manage-hub-items) + +## Get hub items + +Retrieves all items associated with a Hub. + +This operation is performed by calling function `getHubItemsV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/get-hub-items/). + + +``` +client.getHubItems().getHubItemsV2025R0(new GetHubItemsV2025R0QueryParams(createdHub.getId())) +``` + +### Arguments + +- queryParams `GetHubItemsV2025R0QueryParams` + - Query parameters of getHubItemsV2025R0 method +- headers `GetHubItemsV2025R0Headers` + - Headers of getHubItemsV2025R0 method + + +### Returns + +This function returns a value of type `HubItemsV2025R0`. + +Retrieves the items associated with the specified Hub. + + +## Manage hub items + +Adds and/or removes Hub items from a Hub. + +This operation is performed by calling function `manageHubItemsV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/post-hubs-id-manage-items/). + + +``` +client.getHubItems().manageHubItemsV2025R0(createdHub.getId(), new HubItemsManageRequestV2025R0.Builder().operations(Arrays.asList(new HubItemOperationV2025R0(HubItemOperationV2025R0ActionField.ADD, new FolderReferenceV2025R0(folder.getId())))).build()) +``` + +### Arguments + +- hubId `String` + - The unique identifier that represent a hub. The ID for any hub can be determined by visiting this hub in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/hubs/123` the `hub_id` is `123`. Example: "12345" +- requestBody `HubItemsManageRequestV2025R0` + - Request body of manageHubItemsV2025R0 method +- headers `ManageHubItemsV2025R0Headers` + - Headers of manageHubItemsV2025R0 method + + +### Returns + +This function returns a value of type `HubItemsManageResponseV2025R0`. + + + + diff --git a/docs/hubs.md b/docs/hubs.md new file mode 100644 index 000000000..ae08762db --- /dev/null +++ b/docs/hubs.md @@ -0,0 +1,224 @@ +# HubsManager + + +- [List all hubs](#list-all-hubs) +- [Create hub](#create-hub) +- [List all hubs for requesting enterprise](#list-all-hubs-for-requesting-enterprise) +- [Get hub information by ID](#get-hub-information-by-id) +- [Update hub information by ID](#update-hub-information-by-id) +- [Delete hub](#delete-hub) +- [Copy hub](#copy-hub) + +## List all hubs + +Retrieves all hubs for requesting user. + +This operation is performed by calling function `getHubsV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/get-hubs/). + + +``` +client.getHubs().getHubsV2025R0(new GetHubsV2025R0QueryParams.Builder().scope("all").sort("name").direction(GetHubsV2025R0QueryParamsDirectionField.ASC).build()) +``` + +### Arguments + +- queryParams `GetHubsV2025R0QueryParams` + - Query parameters of getHubsV2025R0 method +- headers `GetHubsV2025R0Headers` + - Headers of getHubsV2025R0 method + + +### Returns + +This function returns a value of type `HubsV2025R0`. + +Returns all hubs for the given user or enterprise. + + +## Create hub + +Creates a new Hub. + +This operation is performed by calling function `createHubV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/post-hubs/). + + +``` +client.getHubs().createHubV2025R0(new HubCreateRequestV2025R0.Builder(hubTitle).description(hubDescription).build()) +``` + +### Arguments + +- requestBody `HubCreateRequestV2025R0` + - Request body of createHubV2025R0 method +- headers `CreateHubV2025R0Headers` + - Headers of createHubV2025R0 method + + +### Returns + +This function returns a value of type `HubV2025R0`. + +Returns a new Hub object. + + +## List all hubs for requesting enterprise + +Retrieves all hubs for a given enterprise. + +Admins or Hub Co-admins of an enterprise +with GCM scope can make this call. + +This operation is performed by calling function `getEnterpriseHubsV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/get-enterprise-hubs/). + + +``` +client.getHubs().getEnterpriseHubsV2025R0(new GetEnterpriseHubsV2025R0QueryParams.Builder().sort("name").direction(GetEnterpriseHubsV2025R0QueryParamsDirectionField.ASC).build()) +``` + +### Arguments + +- queryParams `GetEnterpriseHubsV2025R0QueryParams` + - Query parameters of getEnterpriseHubsV2025R0 method +- headers `GetEnterpriseHubsV2025R0Headers` + - Headers of getEnterpriseHubsV2025R0 method + + +### Returns + +This function returns a value of type `HubsV2025R0`. + +Returns all hubs for the given user or enterprise. + + +## Get hub information by ID + +Retrieves details for a hub by its ID. + +This operation is performed by calling function `getHubByIdV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/get-hubs-id/). + + +``` +client.getHubs().getHubByIdV2025R0(hubId) +``` + +### Arguments + +- hubId `String` + - The unique identifier that represent a hub. The ID for any hub can be determined by visiting this hub in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/hubs/123` the `hub_id` is `123`. Example: "12345" +- headers `GetHubByIdV2025R0Headers` + - Headers of getHubByIdV2025R0 method + + +### Returns + +This function returns a value of type `HubV2025R0`. + +Returns a hub object. + + +## Update hub information by ID + +Updates a Hub. Can be used to change title, description, or Hub settings. + +This operation is performed by calling function `updateHubByIdV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/put-hubs-id/). + + +``` +client.getHubs().updateHubByIdV2025R0(hubId, new HubUpdateRequestV2025R0.Builder().title(newHubTitle).description(newHubDescription).build()) +``` + +### Arguments + +- hubId `String` + - The unique identifier that represent a hub. The ID for any hub can be determined by visiting this hub in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/hubs/123` the `hub_id` is `123`. Example: "12345" +- requestBody `HubUpdateRequestV2025R0` + - Request body of updateHubByIdV2025R0 method +- headers `UpdateHubByIdV2025R0Headers` + - Headers of updateHubByIdV2025R0 method + + +### Returns + +This function returns a value of type `HubV2025R0`. + +Returns a Hub object. + + +## Delete hub + +Deletes a single hub. + +This operation is performed by calling function `deleteHubByIdV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/delete-hubs-id/). + + +``` +client.getHubs().deleteHubByIdV2025R0(hubId) +``` + +### Arguments + +- hubId `String` + - The unique identifier that represent a hub. The ID for any hub can be determined by visiting this hub in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/hubs/123` the `hub_id` is `123`. Example: "12345" +- headers `DeleteHubByIdV2025R0Headers` + - Headers of deleteHubByIdV2025R0 method + + +### Returns + +This function returns a value of type `void`. + +A blank response is returned if the hub was +successfully deleted. + + +## Copy hub + +Creates a copy of a Hub. + +The original Hub will not be modified. + +This operation is performed by calling function `copyHubV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/post-hubs-id-copy/). + + +``` +client.getHubs().copyHubV2025R0(createdHub.getId(), new HubCopyRequestV2025R0.Builder().title(copiedHubTitle).description(copiedHubDescription).build()) +``` + +### Arguments + +- hubId `String` + - The unique identifier that represent a hub. The ID for any hub can be determined by visiting this hub in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/hubs/123` the `hub_id` is `123`. Example: "12345" +- requestBody `HubCopyRequestV2025R0` + - Request body of copyHubV2025R0 method +- headers `CopyHubV2025R0Headers` + - Headers of copyHubV2025R0 method + + +### Returns + +This function returns a value of type `HubV2025R0`. + +Returns a new Hub object. + + diff --git a/docs/integrationmappings.md b/docs/integrationmappings.md new file mode 100644 index 000000000..d05be5194 --- /dev/null +++ b/docs/integrationmappings.md @@ -0,0 +1,273 @@ +# IntegrationMappingsManager + + +- [List Slack integration mappings](#list-slack-integration-mappings) +- [Create Slack integration mapping](#create-slack-integration-mapping) +- [Update Slack integration mapping](#update-slack-integration-mapping) +- [Delete Slack integration mapping](#delete-slack-integration-mapping) +- [List Teams integration mappings](#list-teams-integration-mappings) +- [Create Teams integration mapping](#create-teams-integration-mapping) +- [Update Teams integration mapping](#update-teams-integration-mapping) +- [Delete Teams integration mapping](#delete-teams-integration-mapping) + +## List Slack integration mappings + +Lists [Slack integration mappings](https://support.box.com/hc/en-us/articles/4415585987859-Box-as-the-Content-Layer-for-Slack) in a users' enterprise. + +You need Admin or Co-Admin role to +use this endpoint. + +This operation is performed by calling function `getSlackIntegrationMapping`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-integration-mappings-slack/). + + +``` +userClient.getIntegrationMappings().getSlackIntegrationMapping() +``` + +### Arguments + +- queryParams `GetSlackIntegrationMappingQueryParams` + - Query parameters of getSlackIntegrationMapping method +- headers `GetSlackIntegrationMappingHeaders` + - Headers of getSlackIntegrationMapping method + + +### Returns + +This function returns a value of type `IntegrationMappings`. + +Returns a collection of integration mappings. + + +## Create Slack integration mapping + +Creates a [Slack integration mapping](https://support.box.com/hc/en-us/articles/4415585987859-Box-as-the-Content-Layer-for-Slack) +by mapping a Slack channel to a Box item. + +You need Admin or Co-Admin role to +use this endpoint. + +This operation is performed by calling function `createSlackIntegrationMapping`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-integration-mappings-slack/). + + +``` +userClient.getIntegrationMappings().createSlackIntegrationMapping(new IntegrationMappingSlackCreateRequest(new IntegrationMappingPartnerItemSlack.Builder(slackPartnerItemId).slackOrgId(slackOrgId).build(), new IntegrationMappingBoxItemSlack(folder.getId()))) +``` + +### Arguments + +- requestBody `IntegrationMappingSlackCreateRequest` + - Request body of createSlackIntegrationMapping method +- headers `CreateSlackIntegrationMappingHeaders` + - Headers of createSlackIntegrationMapping method + + +### Returns + +This function returns a value of type `IntegrationMapping`. + +Returns the created integration mapping. + + +## Update Slack integration mapping + +Updates a [Slack integration mapping](https://support.box.com/hc/en-us/articles/4415585987859-Box-as-the-Content-Layer-for-Slack). +Supports updating the Box folder ID and options. + +You need Admin or Co-Admin role to +use this endpoint. + +This operation is performed by calling function `updateSlackIntegrationMappingById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-integration-mappings-slack-id/). + + +``` +userClient.getIntegrationMappings().updateSlackIntegrationMappingById(slackIntegrationMapping.getId(), new UpdateSlackIntegrationMappingByIdRequestBody.Builder().boxItem(new IntegrationMappingBoxItemSlack(folder.getId())).build()) +``` + +### Arguments + +- integrationMappingId `String` + - An ID of an integration mapping. Example: "11235432" +- requestBody `UpdateSlackIntegrationMappingByIdRequestBody` + - Request body of updateSlackIntegrationMappingById method +- headers `UpdateSlackIntegrationMappingByIdHeaders` + - Headers of updateSlackIntegrationMappingById method + + +### Returns + +This function returns a value of type `IntegrationMapping`. + +Returns the updated integration mapping object. + + +## Delete Slack integration mapping + +Deletes a [Slack integration mapping](https://support.box.com/hc/en-us/articles/4415585987859-Box-as-the-Content-Layer-for-Slack). + + +You need Admin or Co-Admin role to +use this endpoint. + +This operation is performed by calling function `deleteSlackIntegrationMappingById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-integration-mappings-slack-id/). + + +``` +userClient.getIntegrationMappings().deleteSlackIntegrationMappingById(slackIntegrationMapping.getId()) +``` + +### Arguments + +- integrationMappingId `String` + - An ID of an integration mapping. Example: "11235432" +- headers `DeleteSlackIntegrationMappingByIdHeaders` + - Headers of deleteSlackIntegrationMappingById method + + +### Returns + +This function returns a value of type `void`. + +Empty body in response. + + +## List Teams integration mappings + +Lists [Teams integration mappings](https://support.box.com/hc/en-us/articles/360044681474-Using-Box-for-Teams) in a users' enterprise. +You need Admin or Co-Admin role to +use this endpoint. + +This operation is performed by calling function `getTeamsIntegrationMapping`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-integration-mappings-teams/). + + +``` +userClient.getIntegrationMappings().getTeamsIntegrationMapping() +``` + +### Arguments + +- queryParams `GetTeamsIntegrationMappingQueryParams` + - Query parameters of getTeamsIntegrationMapping method +- headers `GetTeamsIntegrationMappingHeaders` + - Headers of getTeamsIntegrationMapping method + + +### Returns + +This function returns a value of type `IntegrationMappingsTeams`. + +Returns a collection of integration mappings. + + +## Create Teams integration mapping + +Creates a [Teams integration mapping](https://support.box.com/hc/en-us/articles/360044681474-Using-Box-for-Teams) +by mapping a Teams channel to a Box item. +You need Admin or Co-Admin role to +use this endpoint. + +This operation is performed by calling function `createTeamsIntegrationMapping`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-integration-mappings-teams/). + + +``` +userClient.getIntegrationMappings().createTeamsIntegrationMapping(new IntegrationMappingTeamsCreateRequest(new IntegrationMappingPartnerItemTeamsCreateRequest(IntegrationMappingPartnerItemTeamsCreateRequestTypeField.CHANNEL, partnerItemId, tenantId, teamId), new FolderReference(folder.getId()))) +``` + +### Arguments + +- requestBody `IntegrationMappingTeamsCreateRequest` + - Request body of createTeamsIntegrationMapping method +- headers `CreateTeamsIntegrationMappingHeaders` + - Headers of createTeamsIntegrationMapping method + + +### Returns + +This function returns a value of type `IntegrationMappingTeams`. + +Returns the created integration mapping. + + +## Update Teams integration mapping + +Updates a [Teams integration mapping](https://support.box.com/hc/en-us/articles/360044681474-Using-Box-for-Teams). +Supports updating the Box folder ID and options. +You need Admin or Co-Admin role to +use this endpoint. + +This operation is performed by calling function `updateTeamsIntegrationMappingById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-integration-mappings-teams-id/). + + +``` +userClient.getIntegrationMappings().updateTeamsIntegrationMappingById(integrationMappingId, new UpdateTeamsIntegrationMappingByIdRequestBody.Builder().boxItem(new FolderReference("1234567")).build()) +``` + +### Arguments + +- integrationMappingId `String` + - An ID of an integration mapping. Example: "11235432" +- requestBody `UpdateTeamsIntegrationMappingByIdRequestBody` + - Request body of updateTeamsIntegrationMappingById method +- headers `UpdateTeamsIntegrationMappingByIdHeaders` + - Headers of updateTeamsIntegrationMappingById method + + +### Returns + +This function returns a value of type `IntegrationMappingTeams`. + +Returns the updated integration mapping object. + + +## Delete Teams integration mapping + +Deletes a [Teams integration mapping](https://support.box.com/hc/en-us/articles/360044681474-Using-Box-for-Teams). +You need Admin or Co-Admin role to +use this endpoint. + +This operation is performed by calling function `deleteTeamsIntegrationMappingById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-integration-mappings-teams-id/). + + +``` +userClient.getIntegrationMappings().deleteTeamsIntegrationMappingById(integrationMappingId) +``` + +### Arguments + +- integrationMappingId `String` + - An ID of an integration mapping. Example: "11235432" +- headers `DeleteTeamsIntegrationMappingByIdHeaders` + - Headers of deleteTeamsIntegrationMappingById method + + +### Returns + +This function returns a value of type `void`. + +Empty body in response. + + diff --git a/docs/invites.md b/docs/invites.md new file mode 100644 index 000000000..e1a89b263 --- /dev/null +++ b/docs/invites.md @@ -0,0 +1,76 @@ +# InvitesManager + + +- [Create user invite](#create-user-invite) +- [Get user invite status](#get-user-invite-status) + +## Create user invite + +Invites an existing external user to join an enterprise. + +The existing user can not be part of another enterprise and +must already have a Box account. Once invited, the user will receive an +email and are prompted to accept the invitation within the +Box web application. + +This method requires the "Manage An Enterprise" scope enabled for +the application, which can be enabled within the developer console. + +This operation is performed by calling function `createInvite`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-invites/). + + +``` +client.getInvites().createInvite(new CreateInviteRequestBody(new CreateInviteRequestBodyEnterpriseField(currentUser.getEnterprise().getId()), new CreateInviteRequestBodyActionableByField.Builder().login(email).build())) +``` + +### Arguments + +- requestBody `CreateInviteRequestBody` + - Request body of createInvite method +- queryParams `CreateInviteQueryParams` + - Query parameters of createInvite method +- headers `CreateInviteHeaders` + - Headers of createInvite method + + +### Returns + +This function returns a value of type `Invite`. + +Returns a new invite object. + + +## Get user invite status + +Returns the status of a user invite. + +This operation is performed by calling function `getInviteById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-invites-id/). + + +``` +client.getInvites().getInviteById(invitation.getId()) +``` + +### Arguments + +- inviteId `String` + - The ID of an invite. Example: "213723" +- queryParams `GetInviteByIdQueryParams` + - Query parameters of getInviteById method +- headers `GetInviteByIdHeaders` + - Headers of getInviteById method + + +### Returns + +This function returns a value of type `Invite`. + +Returns an invite object. + + diff --git a/docs/legalholdpolicies.md b/docs/legalholdpolicies.md new file mode 100644 index 000000000..dff0d51ef --- /dev/null +++ b/docs/legalholdpolicies.md @@ -0,0 +1,161 @@ +# LegalHoldPoliciesManager + + +- [List all legal hold policies](#list-all-legal-hold-policies) +- [Create legal hold policy](#create-legal-hold-policy) +- [Get legal hold policy](#get-legal-hold-policy) +- [Update legal hold policy](#update-legal-hold-policy) +- [Remove legal hold policy](#remove-legal-hold-policy) + +## List all legal hold policies + +Retrieves a list of legal hold policies that belong to +an enterprise. + +This operation is performed by calling function `getLegalHoldPolicies`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-legal-hold-policies/). + + +``` +client.getLegalHoldPolicies().getLegalHoldPolicies() +``` + +### Arguments + +- queryParams `GetLegalHoldPoliciesQueryParams` + - Query parameters of getLegalHoldPolicies method +- headers `GetLegalHoldPoliciesHeaders` + - Headers of getLegalHoldPolicies method + + +### Returns + +This function returns a value of type `LegalHoldPolicies`. + +Returns a list of legal hold policies. + + +## Create legal hold policy + +Create a new legal hold policy. + +This operation is performed by calling function `createLegalHoldPolicy`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-legal-hold-policies/). + + +``` +client.getLegalHoldPolicies().createLegalHoldPolicy(new CreateLegalHoldPolicyRequestBody.Builder(legalHoldPolicyName).description(legalHoldDescription).filterStartedAt(filterStartedAt).filterEndedAt(filterEndedAt).isOngoing(false).build()) +``` + +### Arguments + +- requestBody `CreateLegalHoldPolicyRequestBody` + - Request body of createLegalHoldPolicy method +- headers `CreateLegalHoldPolicyHeaders` + - Headers of createLegalHoldPolicy method + + +### Returns + +This function returns a value of type `LegalHoldPolicy`. + +Returns a new legal hold policy object. + + +## Get legal hold policy + +Retrieve a legal hold policy. + +This operation is performed by calling function `getLegalHoldPolicyById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-legal-hold-policies-id/). + + +``` +client.getLegalHoldPolicies().getLegalHoldPolicyById(legalHoldPolicyId) +``` + +### Arguments + +- legalHoldPolicyId `String` + - The ID of the legal hold policy. Example: "324432" +- headers `GetLegalHoldPolicyByIdHeaders` + - Headers of getLegalHoldPolicyById method + + +### Returns + +This function returns a value of type `LegalHoldPolicy`. + +Returns a legal hold policy object. + + +## Update legal hold policy + +Update legal hold policy. + +This operation is performed by calling function `updateLegalHoldPolicyById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-legal-hold-policies-id/). + + +``` +client.getLegalHoldPolicies().updateLegalHoldPolicyById(legalHoldPolicyId, new UpdateLegalHoldPolicyByIdRequestBody.Builder().policyName(updatedLegalHoldPolicyName).build()) +``` + +### Arguments + +- legalHoldPolicyId `String` + - The ID of the legal hold policy. Example: "324432" +- requestBody `UpdateLegalHoldPolicyByIdRequestBody` + - Request body of updateLegalHoldPolicyById method +- headers `UpdateLegalHoldPolicyByIdHeaders` + - Headers of updateLegalHoldPolicyById method + + +### Returns + +This function returns a value of type `LegalHoldPolicy`. + +Returns a new legal hold policy object. + + +## Remove legal hold policy + +Delete an existing legal hold policy. + +This is an asynchronous process. The policy will not be +fully deleted yet when the response returns. + +This operation is performed by calling function `deleteLegalHoldPolicyById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-legal-hold-policies-id/). + + +``` +client.getLegalHoldPolicies().deleteLegalHoldPolicyById(legalHoldPolicy.getId()) +``` + +### Arguments + +- legalHoldPolicyId `String` + - The ID of the legal hold policy. Example: "324432" +- headers `DeleteLegalHoldPolicyByIdHeaders` + - Headers of deleteLegalHoldPolicyById method + + +### Returns + +This function returns a value of type `void`. + +A blank response is returned if the policy was +successfully deleted. + + diff --git a/docs/legalholdpolicyassignments.md b/docs/legalholdpolicyassignments.md new file mode 100644 index 000000000..0717f1c4c --- /dev/null +++ b/docs/legalholdpolicyassignments.md @@ -0,0 +1,179 @@ +# LegalHoldPolicyAssignmentsManager + + +- [List legal hold policy assignments](#list-legal-hold-policy-assignments) +- [Assign legal hold policy](#assign-legal-hold-policy) +- [Get legal hold policy assignment](#get-legal-hold-policy-assignment) +- [Unassign legal hold policy](#unassign-legal-hold-policy) +- [List files with current file versions for legal hold policy assignment](#list-files-with-current-file-versions-for-legal-hold-policy-assignment) + +## List legal hold policy assignments + +Retrieves a list of items a legal hold policy has been assigned to. + +This operation is performed by calling function `getLegalHoldPolicyAssignments`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-legal-hold-policy-assignments/). + + +``` +client.getLegalHoldPolicyAssignments().getLegalHoldPolicyAssignments(new GetLegalHoldPolicyAssignmentsQueryParams(legalHoldPolicyId)) +``` + +### Arguments + +- queryParams `GetLegalHoldPolicyAssignmentsQueryParams` + - Query parameters of getLegalHoldPolicyAssignments method +- headers `GetLegalHoldPolicyAssignmentsHeaders` + - Headers of getLegalHoldPolicyAssignments method + + +### Returns + +This function returns a value of type `LegalHoldPolicyAssignments`. + +Returns a list of legal hold policy assignments. + + +## Assign legal hold policy + +Assign a legal hold to a file, file version, folder, or user. + +This operation is performed by calling function `createLegalHoldPolicyAssignment`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-legal-hold-policy-assignments/). + + +``` +client.getLegalHoldPolicyAssignments().createLegalHoldPolicyAssignment(new CreateLegalHoldPolicyAssignmentRequestBody(legalHoldPolicyId, new CreateLegalHoldPolicyAssignmentRequestBodyAssignToField(CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeField.FILE, fileId))) +``` + +### Arguments + +- requestBody `CreateLegalHoldPolicyAssignmentRequestBody` + - Request body of createLegalHoldPolicyAssignment method +- headers `CreateLegalHoldPolicyAssignmentHeaders` + - Headers of createLegalHoldPolicyAssignment method + + +### Returns + +This function returns a value of type `LegalHoldPolicyAssignment`. + +Returns a new legal hold policy assignment. + + +## Get legal hold policy assignment + +Retrieve a legal hold policy assignment. + +This operation is performed by calling function `getLegalHoldPolicyAssignmentById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-legal-hold-policy-assignments-id/). + + +``` +client.getLegalHoldPolicyAssignments().getLegalHoldPolicyAssignmentById(legalHoldPolicyAssignmentId) +``` + +### Arguments + +- legalHoldPolicyAssignmentId `String` + - The ID of the legal hold policy assignment. Example: "753465" +- headers `GetLegalHoldPolicyAssignmentByIdHeaders` + - Headers of getLegalHoldPolicyAssignmentById method + + +### Returns + +This function returns a value of type `LegalHoldPolicyAssignment`. + +Returns a legal hold policy object. + + +## Unassign legal hold policy + +Remove a legal hold from an item. + +This is an asynchronous process. The policy will not be +fully removed yet when the response returns. + +This operation is performed by calling function `deleteLegalHoldPolicyAssignmentById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-legal-hold-policy-assignments-id/). + + +``` +client.getLegalHoldPolicyAssignments().deleteLegalHoldPolicyAssignmentById(legalHoldPolicyAssignmentId) +``` + +### Arguments + +- legalHoldPolicyAssignmentId `String` + - The ID of the legal hold policy assignment. Example: "753465" +- headers `DeleteLegalHoldPolicyAssignmentByIdHeaders` + - Headers of deleteLegalHoldPolicyAssignmentById method + + +### Returns + +This function returns a value of type `void`. + +A blank response is returned if the assignment was +successfully deleted. + + +## List files with current file versions for legal hold policy assignment + +Get a list of files with current file versions for a legal hold +assignment. + +In some cases you may want to get previous file versions instead. In these +cases, use the `GET /legal_hold_policy_assignments/:id/file_versions_on_hold` +API instead to return any previous versions of a file for this legal hold +policy assignment. + +Due to ongoing re-architecture efforts this API might not return all file +versions held for this policy ID. Instead, this API will only return the +latest file version held in the newly developed architecture. The `GET +/file_version_legal_holds` API can be used to fetch current and past versions +of files held within the legacy architecture. + +This endpoint does not support returning any content that is on hold due to +a Custodian collaborating on a Hub. + +The `GET /legal_hold_policy_assignments?policy_id={id}` API can be used to +find a list of policy assignments for a given policy ID. + +This operation is performed by calling function `getLegalHoldPolicyAssignmentFileOnHold`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-legal-hold-policy-assignments-id-files-on-hold/). + + +``` +client.getLegalHoldPolicyAssignments().getLegalHoldPolicyAssignmentFileOnHold(legalHoldPolicyAssignmentId) +``` + +### Arguments + +- legalHoldPolicyAssignmentId `String` + - The ID of the legal hold policy assignment. Example: "753465" +- queryParams `GetLegalHoldPolicyAssignmentFileOnHoldQueryParams` + - Query parameters of getLegalHoldPolicyAssignmentFileOnHold method +- headers `GetLegalHoldPolicyAssignmentFileOnHoldHeaders` + - Headers of getLegalHoldPolicyAssignmentFileOnHold method + + +### Returns + +This function returns a value of type `FilesOnHold`. + +Returns the list of current file versions held under legal hold for a +specific legal hold policy assignment. + + diff --git a/docs/listcollaborations.md b/docs/listcollaborations.md new file mode 100644 index 000000000..a3d691d3d --- /dev/null +++ b/docs/listcollaborations.md @@ -0,0 +1,152 @@ +# ListCollaborationsManager + + +- [List file collaborations](#list-file-collaborations) +- [List folder collaborations](#list-folder-collaborations) +- [List pending collaborations](#list-pending-collaborations) +- [List group collaborations](#list-group-collaborations) + +## List file collaborations + +Retrieves a list of pending and active collaborations for a +file. This returns all the users that have access to the file +or have been invited to the file. + +This operation is performed by calling function `getFileCollaborations`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-files-id-collaborations/). + + +``` +client.getListCollaborations().getFileCollaborations(file.getId()) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- queryParams `GetFileCollaborationsQueryParams` + - Query parameters of getFileCollaborations method +- headers `GetFileCollaborationsHeaders` + - Headers of getFileCollaborations method + + +### Returns + +This function returns a value of type `Collaborations`. + +Returns a collection of collaboration objects. If there are no +collaborations on this file an empty collection will be returned. + +This list includes pending collaborations, for which the `status` +is set to `pending`, indicating invitations that have been sent but not +yet accepted. + + +## List folder collaborations + +Retrieves a list of pending and active collaborations for a +folder. This returns all the users that have access to the folder +or have been invited to the folder. + +This operation is performed by calling function `getFolderCollaborations`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-folders-id-collaborations/). + + +``` +client.getListCollaborations().getFolderCollaborations(folder.getId()) +``` + +### Arguments + +- folderId `String` + - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. Example: "12345" +- queryParams `GetFolderCollaborationsQueryParams` + - Query parameters of getFolderCollaborations method +- headers `GetFolderCollaborationsHeaders` + - Headers of getFolderCollaborations method + + +### Returns + +This function returns a value of type `Collaborations`. + +Returns a collection of collaboration objects. If there are no +collaborations on this folder an empty collection will be returned. + +This list includes pending collaborations, for which the `status` +is set to `pending`, indicating invitations that have been sent but not +yet accepted. + + +## List pending collaborations + +Retrieves all pending collaboration invites for this user. + +This operation is performed by calling function `getCollaborations`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-collaborations/). + + +``` +client.getListCollaborations().getCollaborations(new GetCollaborationsQueryParams(GetCollaborationsQueryParamsStatusField.PENDING)) +``` + +### Arguments + +- queryParams `GetCollaborationsQueryParams` + - Query parameters of getCollaborations method +- headers `GetCollaborationsHeaders` + - Headers of getCollaborations method + + +### Returns + +This function returns a value of type `CollaborationsOffsetPaginated`. + +Returns a collection of pending collaboration objects. + +If the user has no pending collaborations, the collection +will be empty. + + +## List group collaborations + +Retrieves all the collaborations for a group. The user +must have admin permissions to inspect enterprise's groups. + +Each collaboration object has details on which files or +folders the group has access to and with what role. + +This operation is performed by calling function `getGroupCollaborations`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-groups-id-collaborations/). + + +``` +client.getListCollaborations().getGroupCollaborations(group.getId()) +``` + +### Arguments + +- groupId `String` + - The ID of the group. Example: "57645" +- queryParams `GetGroupCollaborationsQueryParams` + - Query parameters of getGroupCollaborations method +- headers `GetGroupCollaborationsHeaders` + - Headers of getGroupCollaborations method + + +### Returns + +This function returns a value of type `CollaborationsOffsetPaginated`. + +Returns a collection of collaboration objects. If there are no +collaborations, an empty collection will be returned. + + diff --git a/docs/memberships.md b/docs/memberships.md new file mode 100644 index 000000000..39fd5df40 --- /dev/null +++ b/docs/memberships.md @@ -0,0 +1,210 @@ +# MembershipsManager + + +- [List user's groups](#list-users-groups) +- [List members of group](#list-members-of-group) +- [Add user to group](#add-user-to-group) +- [Get group membership](#get-group-membership) +- [Update group membership](#update-group-membership) +- [Remove user from group](#remove-user-from-group) + +## List user's groups + +Retrieves all the groups for a user. Only members of this +group or users with admin-level permissions will be able to +use this API. + +This operation is performed by calling function `getUserMemberships`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-users-id-memberships/). + + +``` +client.getMemberships().getUserMemberships(user.getId()) +``` + +### Arguments + +- userId `String` + - The ID of the user. Example: "12345" +- queryParams `GetUserMembershipsQueryParams` + - Query parameters of getUserMemberships method +- headers `GetUserMembershipsHeaders` + - Headers of getUserMemberships method + + +### Returns + +This function returns a value of type `GroupMemberships`. + +Returns a collection of membership objects. If there are no +memberships, an empty collection will be returned. + + +## List members of group + +Retrieves all the members for a group. Only members of this +group or users with admin-level permissions will be able to +use this API. + +This operation is performed by calling function `getGroupMemberships`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-groups-id-memberships/). + + +``` +client.getMemberships().getGroupMemberships(group.getId()) +``` + +### Arguments + +- groupId `String` + - The ID of the group. Example: "57645" +- queryParams `GetGroupMembershipsQueryParams` + - Query parameters of getGroupMemberships method +- headers `GetGroupMembershipsHeaders` + - Headers of getGroupMemberships method + + +### Returns + +This function returns a value of type `GroupMemberships`. + +Returns a collection of membership objects. If there are no +memberships, an empty collection will be returned. + + +## Add user to group + +Creates a group membership. Only users with +admin-level permissions will be able to use this API. + +This operation is performed by calling function `createGroupMembership`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-group-memberships/). + + +``` +client.getMemberships().createGroupMembership(new CreateGroupMembershipRequestBody(new CreateGroupMembershipRequestBodyUserField(user.getId()), new CreateGroupMembershipRequestBodyGroupField(group.getId()))) +``` + +### Arguments + +- requestBody `CreateGroupMembershipRequestBody` + - Request body of createGroupMembership method +- queryParams `CreateGroupMembershipQueryParams` + - Query parameters of createGroupMembership method +- headers `CreateGroupMembershipHeaders` + - Headers of createGroupMembership method + + +### Returns + +This function returns a value of type `GroupMembership`. + +Returns a new group membership object. + + +## Get group membership + +Retrieves a specific group membership. Only admins of this +group or users with admin-level permissions will be able to +use this API. + +This operation is performed by calling function `getGroupMembershipById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-group-memberships-id/). + + +``` +client.getMemberships().getGroupMembershipById(groupMembership.getId()) +``` + +### Arguments + +- groupMembershipId `String` + - The ID of the group membership. Example: "434534" +- queryParams `GetGroupMembershipByIdQueryParams` + - Query parameters of getGroupMembershipById method +- headers `GetGroupMembershipByIdHeaders` + - Headers of getGroupMembershipById method + + +### Returns + +This function returns a value of type `GroupMembership`. + +Returns the group membership object. + + +## Update group membership + +Updates a user's group membership. Only admins of this +group or users with admin-level permissions will be able to +use this API. + +This operation is performed by calling function `updateGroupMembershipById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-group-memberships-id/). + + +``` +client.getMemberships().updateGroupMembershipById(groupMembership.getId(), new UpdateGroupMembershipByIdRequestBody.Builder().role(UpdateGroupMembershipByIdRequestBodyRoleField.ADMIN).build()) +``` + +### Arguments + +- groupMembershipId `String` + - The ID of the group membership. Example: "434534" +- requestBody `UpdateGroupMembershipByIdRequestBody` + - Request body of updateGroupMembershipById method +- queryParams `UpdateGroupMembershipByIdQueryParams` + - Query parameters of updateGroupMembershipById method +- headers `UpdateGroupMembershipByIdHeaders` + - Headers of updateGroupMembershipById method + + +### Returns + +This function returns a value of type `GroupMembership`. + +Returns a new group membership object. + + +## Remove user from group + +Deletes a specific group membership. Only admins of this +group or users with admin-level permissions will be able to +use this API. + +This operation is performed by calling function `deleteGroupMembershipById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-group-memberships-id/). + + +``` +client.getMemberships().deleteGroupMembershipById(groupMembership.getId()) +``` + +### Arguments + +- groupMembershipId `String` + - The ID of the group membership. Example: "434534" +- headers `DeleteGroupMembershipByIdHeaders` + - Headers of deleteGroupMembershipById method + + +### Returns + +This function returns a value of type `void`. + +A blank response is returned if the membership was +successfully deleted. + + diff --git a/docs/metadatacascadepolicies.md b/docs/metadatacascadepolicies.md new file mode 100644 index 000000000..5542a8820 --- /dev/null +++ b/docs/metadatacascadepolicies.md @@ -0,0 +1,172 @@ +# MetadataCascadePoliciesManager + + +- [List metadata cascade policies](#list-metadata-cascade-policies) +- [Create metadata cascade policy](#create-metadata-cascade-policy) +- [Get metadata cascade policy](#get-metadata-cascade-policy) +- [Remove metadata cascade policy](#remove-metadata-cascade-policy) +- [Force-apply metadata cascade policy to folder](#force-apply-metadata-cascade-policy-to-folder) + +## List metadata cascade policies + +Retrieves a list of all the metadata cascade policies +that are applied to a given folder. This can not be used on the root +folder with ID `0`. + +This operation is performed by calling function `getMetadataCascadePolicies`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-metadata-cascade-policies/). + + +``` +client.getMetadataCascadePolicies().getMetadataCascadePolicies(new GetMetadataCascadePoliciesQueryParams(folder.getId())) +``` + +### Arguments + +- queryParams `GetMetadataCascadePoliciesQueryParams` + - Query parameters of getMetadataCascadePolicies method +- headers `GetMetadataCascadePoliciesHeaders` + - Headers of getMetadataCascadePolicies method + + +### Returns + +This function returns a value of type `MetadataCascadePolicies`. + +Returns a list of metadata cascade policies. + + +## Create metadata cascade policy + +Creates a new metadata cascade policy that applies a given +metadata template to a given folder and automatically +cascades it down to any files within that folder. + +In order for the policy to be applied a metadata instance must first +be applied to the folder the policy is to be applied to. + +This operation is performed by calling function `createMetadataCascadePolicy`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-metadata-cascade-policies/). + + +``` +client.getMetadataCascadePolicies().createMetadataCascadePolicy(new CreateMetadataCascadePolicyRequestBody(folder.getId(), CreateMetadataCascadePolicyRequestBodyScopeField.ENTERPRISE, templateKey)) +``` + +### Arguments + +- requestBody `CreateMetadataCascadePolicyRequestBody` + - Request body of createMetadataCascadePolicy method +- headers `CreateMetadataCascadePolicyHeaders` + - Headers of createMetadataCascadePolicy method + + +### Returns + +This function returns a value of type `MetadataCascadePolicy`. + +Returns a new of metadata cascade policy. + + +## Get metadata cascade policy + +Retrieve a specific metadata cascade policy assigned to a folder. + +This operation is performed by calling function `getMetadataCascadePolicyById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-metadata-cascade-policies-id/). + + +``` +client.getMetadataCascadePolicies().getMetadataCascadePolicyById(cascadePolicyId) +``` + +### Arguments + +- metadataCascadePolicyId `String` + - The ID of the metadata cascade policy. Example: "6fd4ff89-8fc1-42cf-8b29-1890dedd26d7" +- headers `GetMetadataCascadePolicyByIdHeaders` + - Headers of getMetadataCascadePolicyById method + + +### Returns + +This function returns a value of type `MetadataCascadePolicy`. + +Returns a metadata cascade policy. + + +## Remove metadata cascade policy + +Deletes a metadata cascade policy. + +This operation is performed by calling function `deleteMetadataCascadePolicyById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-metadata-cascade-policies-id/). + + +``` +client.getMetadataCascadePolicies().deleteMetadataCascadePolicyById(cascadePolicyId) +``` + +### Arguments + +- metadataCascadePolicyId `String` + - The ID of the metadata cascade policy. Example: "6fd4ff89-8fc1-42cf-8b29-1890dedd26d7" +- headers `DeleteMetadataCascadePolicyByIdHeaders` + - Headers of deleteMetadataCascadePolicyById method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the policy +is successfully deleted. + + +## Force-apply metadata cascade policy to folder + +Force the metadata on a folder with a metadata cascade policy to be applied to +all of its children. This can be used after creating a new cascade policy to +enforce the metadata to be cascaded down to all existing files within that +folder. + +This operation is performed by calling function `applyMetadataCascadePolicy`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-metadata-cascade-policies-id-apply/). + + +``` +client.getMetadataCascadePolicies().applyMetadataCascadePolicy(cascadePolicyId, new ApplyMetadataCascadePolicyRequestBody(ApplyMetadataCascadePolicyRequestBodyConflictResolutionField.OVERWRITE)) +``` + +### Arguments + +- metadataCascadePolicyId `String` + - The ID of the cascade policy to force-apply. Example: "6fd4ff89-8fc1-42cf-8b29-1890dedd26d7" +- requestBody `ApplyMetadataCascadePolicyRequestBody` + - Request body of applyMetadataCascadePolicy method +- headers `ApplyMetadataCascadePolicyHeaders` + - Headers of applyMetadataCascadePolicy method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the API call was successful. The metadata +cascade operation will be performed asynchronously. + +The API call will return directly, before the cascade operation +is complete. There is currently no API to check for the status of this +operation. + + diff --git a/docs/metadatatemplates.md b/docs/metadatatemplates.md new file mode 100644 index 000000000..e56609056 --- /dev/null +++ b/docs/metadatatemplates.md @@ -0,0 +1,272 @@ +# MetadataTemplatesManager + + +- [Find metadata template by instance ID](#find-metadata-template-by-instance-id) +- [Get metadata template by name](#get-metadata-template-by-name) +- [Update metadata template](#update-metadata-template) +- [Remove metadata template](#remove-metadata-template) +- [Get metadata template by ID](#get-metadata-template-by-id) +- [List all global metadata templates](#list-all-global-metadata-templates) +- [List all metadata templates for enterprise](#list-all-metadata-templates-for-enterprise) +- [Create metadata template](#create-metadata-template) + +## Find metadata template by instance ID + +Finds a metadata template by searching for the ID of an instance of the +template. + +This operation is performed by calling function `getMetadataTemplatesByInstanceId`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-metadata-templates/). + + +``` +client.getMetadataTemplates().getMetadataTemplatesByInstanceId(new GetMetadataTemplatesByInstanceIdQueryParams(createdMetadataInstance.getId())) +``` + +### Arguments + +- queryParams `GetMetadataTemplatesByInstanceIdQueryParams` + - Query parameters of getMetadataTemplatesByInstanceId method +- headers `GetMetadataTemplatesByInstanceIdHeaders` + - Headers of getMetadataTemplatesByInstanceId method + + +### Returns + +This function returns a value of type `MetadataTemplates`. + +Returns a list containing the 1 metadata template that matches the +instance ID. + + +## Get metadata template by name + +Retrieves a metadata template by its `scope` and `templateKey` values. + +To find the `scope` and `templateKey` for a template, list all templates for +an enterprise or globally, or list all templates applied to a file or folder. + +This operation is performed by calling function `getMetadataTemplate`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-metadata-templates-id-id-schema/). + + +``` +client.getMetadataTemplates().getMetadataTemplate(GetMetadataTemplateScope.ENTERPRISE, template.getTemplateKey()) +``` + +### Arguments + +- scope `GetMetadataTemplateScope` + - The scope of the metadata template. Example: "global" +- templateKey `String` + - The name of the metadata template. Example: "properties" +- headers `GetMetadataTemplateHeaders` + - Headers of getMetadataTemplate method + + +### Returns + +This function returns a value of type `MetadataTemplate`. + +Returns the metadata template matching the `scope` +and `template` name. + + +## Update metadata template + +Updates a metadata template. + +The metadata template can only be updated if the template +already exists. + +The update is applied atomically. If any errors occur during the +application of the operations, the metadata template will not be changed. + +This operation is performed by calling function `updateMetadataTemplate`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-metadata-templates-id-id-schema/). + + +``` +client.getMetadataTemplates().updateMetadataTemplate(UpdateMetadataTemplateScope.ENTERPRISE, templateKey, Arrays.asList(new UpdateMetadataTemplateRequestBody.Builder(UpdateMetadataTemplateRequestBodyOpField.ADDFIELD).data(mapOf(entryOf("type", "string"), entryOf("displayName", "newFieldName"))).fieldKey("newfieldname").build())) +``` + +### Arguments + +- scope `UpdateMetadataTemplateScope` + - The scope of the metadata template. Example: "global" +- templateKey `String` + - The name of the metadata template. Example: "properties" +- requestBody `List` + - Request body of updateMetadataTemplate method +- headers `UpdateMetadataTemplateHeaders` + - Headers of updateMetadataTemplate method + + +### Returns + +This function returns a value of type `MetadataTemplate`. + +Returns the updated metadata template, with the +custom template data included. + + +## Remove metadata template + +Delete a metadata template and its instances. +This deletion is permanent and can not be reversed. + +This operation is performed by calling function `deleteMetadataTemplate`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-metadata-templates-id-id-schema/). + + +``` +client.getMetadataTemplates().deleteMetadataTemplate(DeleteMetadataTemplateScope.ENTERPRISE, template.getTemplateKey()) +``` + +### Arguments + +- scope `DeleteMetadataTemplateScope` + - The scope of the metadata template. Example: "global" +- templateKey `String` + - The name of the metadata template. Example: "properties" +- headers `DeleteMetadataTemplateHeaders` + - Headers of deleteMetadataTemplate method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the metadata +template is successfully deleted. + + +## Get metadata template by ID + +Retrieves a metadata template by its ID. + +This operation is performed by calling function `getMetadataTemplateById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-metadata-templates-id/). + + +``` +client.getMetadataTemplates().getMetadataTemplateById(template.getId()) +``` + +### Arguments + +- templateId `String` + - The ID of the template. Example: "f7a9891f" +- headers `GetMetadataTemplateByIdHeaders` + - Headers of getMetadataTemplateById method + + +### Returns + +This function returns a value of type `MetadataTemplate`. + +Returns the metadata template that matches the ID. + + +## List all global metadata templates + +Used to retrieve all generic, global metadata templates available to all +enterprises using Box. + +This operation is performed by calling function `getGlobalMetadataTemplates`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-metadata-templates-global/). + + +``` +client.getMetadataTemplates().getGlobalMetadataTemplates() +``` + +### Arguments + +- queryParams `GetGlobalMetadataTemplatesQueryParams` + - Query parameters of getGlobalMetadataTemplates method +- headers `GetGlobalMetadataTemplatesHeaders` + - Headers of getGlobalMetadataTemplates method + + +### Returns + +This function returns a value of type `MetadataTemplates`. + +Returns all of the metadata templates available to all enterprises +and their corresponding schema. + + +## List all metadata templates for enterprise + +Used to retrieve all metadata templates created to be used specifically within +the user's enterprise. + +This operation is performed by calling function `getEnterpriseMetadataTemplates`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-metadata-templates-enterprise/). + + +``` +client.getMetadataTemplates().getEnterpriseMetadataTemplates() +``` + +### Arguments + +- queryParams `GetEnterpriseMetadataTemplatesQueryParams` + - Query parameters of getEnterpriseMetadataTemplates method +- headers `GetEnterpriseMetadataTemplatesHeaders` + - Headers of getEnterpriseMetadataTemplates method + + +### Returns + +This function returns a value of type `MetadataTemplates`. + +Returns all of the metadata templates within an enterprise +and their corresponding schema. + + +## Create metadata template + +Creates a new metadata template that can be applied to +files and folders. + +This operation is performed by calling function `createMetadataTemplate`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-metadata-templates-schema/). + + +``` +client.getMetadataTemplates().createMetadataTemplate(new CreateMetadataTemplateRequestBody.Builder("enterprise", templateKey).templateKey(templateKey).fields(Arrays.asList(new CreateMetadataTemplateRequestBodyFieldsField(CreateMetadataTemplateRequestBodyFieldsTypeField.STRING, "testName", "testName"), new CreateMetadataTemplateRequestBodyFieldsField(CreateMetadataTemplateRequestBodyFieldsTypeField.FLOAT, "age", "age"), new CreateMetadataTemplateRequestBodyFieldsField(CreateMetadataTemplateRequestBodyFieldsTypeField.DATE, "birthDate", "birthDate"), new CreateMetadataTemplateRequestBodyFieldsField.Builder(CreateMetadataTemplateRequestBodyFieldsTypeField.ENUM, "countryCode", "countryCode").options(Arrays.asList(new CreateMetadataTemplateRequestBodyFieldsOptionsField("US"), new CreateMetadataTemplateRequestBodyFieldsOptionsField("CA"))).build(), new CreateMetadataTemplateRequestBodyFieldsField.Builder(CreateMetadataTemplateRequestBodyFieldsTypeField.MULTISELECT, "sports", "sports").options(Arrays.asList(new CreateMetadataTemplateRequestBodyFieldsOptionsField("basketball"), new CreateMetadataTemplateRequestBodyFieldsOptionsField("football"), new CreateMetadataTemplateRequestBodyFieldsOptionsField("tennis"))).build())).build()) +``` + +### Arguments + +- requestBody `CreateMetadataTemplateRequestBody` + - Request body of createMetadataTemplate method +- headers `CreateMetadataTemplateHeaders` + - Headers of createMetadataTemplate method + + +### Returns + +This function returns a value of type `MetadataTemplate`. + +The schema representing the metadata template created. + + diff --git a/docs/recentitems.md b/docs/recentitems.md new file mode 100644 index 000000000..bb76f26a4 --- /dev/null +++ b/docs/recentitems.md @@ -0,0 +1,36 @@ +# RecentItemsManager + + +- [List recently accessed items](#list-recently-accessed-items) + +## List recently accessed items + +Returns information about the recent items accessed +by a user, either in the last 90 days or up to the last +1000 items accessed. + +This operation is performed by calling function `getRecentItems`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-recent-items/). + + +``` +client.getRecentItems().getRecentItems() +``` + +### Arguments + +- queryParams `GetRecentItemsQueryParams` + - Query parameters of getRecentItems method +- headers `GetRecentItemsHeaders` + - Headers of getRecentItems method + + +### Returns + +This function returns a value of type `RecentItems`. + +Returns a list recent items access by a user. + + diff --git a/docs/retentionpolicies.md b/docs/retentionpolicies.md new file mode 100644 index 000000000..e82f25545 --- /dev/null +++ b/docs/retentionpolicies.md @@ -0,0 +1,158 @@ +# RetentionPoliciesManager + + +- [List retention policies](#list-retention-policies) +- [Create retention policy](#create-retention-policy) +- [Get retention policy](#get-retention-policy) +- [Update retention policy](#update-retention-policy) +- [Delete retention policy](#delete-retention-policy) + +## List retention policies + +Retrieves all of the retention policies for an enterprise. + +This operation is performed by calling function `getRetentionPolicies`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-retention-policies/). + + +``` +client.getRetentionPolicies().getRetentionPolicies() +``` + +### Arguments + +- queryParams `GetRetentionPoliciesQueryParams` + - Query parameters of getRetentionPolicies method +- headers `GetRetentionPoliciesHeaders` + - Headers of getRetentionPolicies method + + +### Returns + +This function returns a value of type `RetentionPolicies`. + +Returns a list retention policies in the enterprise. + + +## Create retention policy + +Creates a retention policy. + +This operation is performed by calling function `createRetentionPolicy`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-retention-policies/). + + +``` +client.getRetentionPolicies().createRetentionPolicy(new CreateRetentionPolicyRequestBody.Builder(retentionPolicyName, CreateRetentionPolicyRequestBodyPolicyTypeField.FINITE, CreateRetentionPolicyRequestBodyDispositionActionField.REMOVE_RETENTION).description(retentionDescription).retentionLength("1").retentionType(CreateRetentionPolicyRequestBodyRetentionTypeField.MODIFIABLE).canOwnerExtendRetention(true).areOwnersNotified(true).build()) +``` + +### Arguments + +- requestBody `CreateRetentionPolicyRequestBody` + - Request body of createRetentionPolicy method +- headers `CreateRetentionPolicyHeaders` + - Headers of createRetentionPolicy method + + +### Returns + +This function returns a value of type `RetentionPolicy`. + +Returns a new retention policy object. + + +## Get retention policy + +Retrieves a retention policy. + +This operation is performed by calling function `getRetentionPolicyById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-retention-policies-id/). + + +``` +client.getRetentionPolicies().getRetentionPolicyById(retentionPolicy.getId()) +``` + +### Arguments + +- retentionPolicyId `String` + - The ID of the retention policy. Example: "982312" +- queryParams `GetRetentionPolicyByIdQueryParams` + - Query parameters of getRetentionPolicyById method +- headers `GetRetentionPolicyByIdHeaders` + - Headers of getRetentionPolicyById method + + +### Returns + +This function returns a value of type `RetentionPolicy`. + +Returns the retention policy object. + + +## Update retention policy + +Updates a retention policy. + +This operation is performed by calling function `updateRetentionPolicyById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-retention-policies-id/). + + +``` +client.getRetentionPolicies().updateRetentionPolicyById(retentionPolicy.getId(), new UpdateRetentionPolicyByIdRequestBody.Builder().policyName(updatedRetentionPolicyName).build()) +``` + +### Arguments + +- retentionPolicyId `String` + - The ID of the retention policy. Example: "982312" +- requestBody `UpdateRetentionPolicyByIdRequestBody` + - Request body of updateRetentionPolicyById method +- headers `UpdateRetentionPolicyByIdHeaders` + - Headers of updateRetentionPolicyById method + + +### Returns + +This function returns a value of type `RetentionPolicy`. + +Returns the updated retention policy object. + + +## Delete retention policy + +Permanently deletes a retention policy. + +This operation is performed by calling function `deleteRetentionPolicyById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-retention-policies-id/). + + +``` +client.getRetentionPolicies().deleteRetentionPolicyById(retentionPolicy.getId()) +``` + +### Arguments + +- retentionPolicyId `String` + - The ID of the retention policy. Example: "982312" +- headers `DeleteRetentionPolicyByIdHeaders` + - Headers of deleteRetentionPolicyById method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the policy has been deleted. + + diff --git a/docs/retentionpolicyassignments.md b/docs/retentionpolicyassignments.md new file mode 100644 index 000000000..3ebfe1e50 --- /dev/null +++ b/docs/retentionpolicyassignments.md @@ -0,0 +1,165 @@ +# RetentionPolicyAssignmentsManager + + +- [List retention policy assignments](#list-retention-policy-assignments) +- [Assign retention policy](#assign-retention-policy) +- [Get retention policy assignment](#get-retention-policy-assignment) +- [Remove retention policy assignment](#remove-retention-policy-assignment) +- [Get files under retention](#get-files-under-retention) + +## List retention policy assignments + +Returns a list of all retention policy assignments associated with a specified +retention policy. + +This operation is performed by calling function `getRetentionPolicyAssignments`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-retention-policies-id-assignments/). + + +``` +client.getRetentionPolicyAssignments().getRetentionPolicyAssignments(retentionPolicy.getId()) +``` + +### Arguments + +- retentionPolicyId `String` + - The ID of the retention policy. Example: "982312" +- queryParams `GetRetentionPolicyAssignmentsQueryParams` + - Query parameters of getRetentionPolicyAssignments method +- headers `GetRetentionPolicyAssignmentsHeaders` + - Headers of getRetentionPolicyAssignments method + + +### Returns + +This function returns a value of type `RetentionPolicyAssignments`. + +Returns a list of the retention policy assignments associated with the +specified retention policy. + + +## Assign retention policy + +Assigns a retention policy to an item. + +This operation is performed by calling function `createRetentionPolicyAssignment`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-retention-policy-assignments/). + + +``` +client.getRetentionPolicyAssignments().createRetentionPolicyAssignment(new CreateRetentionPolicyAssignmentRequestBody(retentionPolicy.getId(), new CreateRetentionPolicyAssignmentRequestBodyAssignToField.Builder(CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField.FOLDER).id(folder.getId()).build())) +``` + +### Arguments + +- requestBody `CreateRetentionPolicyAssignmentRequestBody` + - Request body of createRetentionPolicyAssignment method +- headers `CreateRetentionPolicyAssignmentHeaders` + - Headers of createRetentionPolicyAssignment method + + +### Returns + +This function returns a value of type `RetentionPolicyAssignment`. + +Returns a new retention policy assignment object. + + +## Get retention policy assignment + +Retrieves a retention policy assignment. + +This operation is performed by calling function `getRetentionPolicyAssignmentById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-retention-policy-assignments-id/). + + +``` +client.getRetentionPolicyAssignments().getRetentionPolicyAssignmentById(retentionPolicyAssignment.getId()) +``` + +### Arguments + +- retentionPolicyAssignmentId `String` + - The ID of the retention policy assignment. Example: "1233123" +- queryParams `GetRetentionPolicyAssignmentByIdQueryParams` + - Query parameters of getRetentionPolicyAssignmentById method +- headers `GetRetentionPolicyAssignmentByIdHeaders` + - Headers of getRetentionPolicyAssignmentById method + + +### Returns + +This function returns a value of type `RetentionPolicyAssignment`. + +Returns the retention policy assignment object. + + +## Remove retention policy assignment + +Removes a retention policy assignment +applied to content. + +This operation is performed by calling function `deleteRetentionPolicyAssignmentById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-retention-policy-assignments-id/). + + +``` +client.getRetentionPolicyAssignments().deleteRetentionPolicyAssignmentById(retentionPolicyAssignment.getId()) +``` + +### Arguments + +- retentionPolicyAssignmentId `String` + - The ID of the retention policy assignment. Example: "1233123" +- headers `DeleteRetentionPolicyAssignmentByIdHeaders` + - Headers of deleteRetentionPolicyAssignmentById method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the policy assignment +is successfully deleted. + + +## Get files under retention + +Returns a list of files under retention for a retention policy assignment. + +This operation is performed by calling function `getFilesUnderRetentionPolicyAssignment`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-retention-policy-assignments-id-files-under-retention/). + + +``` +client.getRetentionPolicyAssignments().getFilesUnderRetentionPolicyAssignment(retentionPolicyAssignment.getId()) +``` + +### Arguments + +- retentionPolicyAssignmentId `String` + - The ID of the retention policy assignment. Example: "1233123" +- queryParams `GetFilesUnderRetentionPolicyAssignmentQueryParams` + - Query parameters of getFilesUnderRetentionPolicyAssignment method +- headers `GetFilesUnderRetentionPolicyAssignmentHeaders` + - Headers of getFilesUnderRetentionPolicyAssignment method + + +### Returns + +This function returns a value of type `FilesUnderRetention`. + +Returns a list of files under retention that are associated with the +specified retention policy assignment. + + diff --git a/docs/search.md b/docs/search.md new file mode 100644 index 000000000..59d51b4ea --- /dev/null +++ b/docs/search.md @@ -0,0 +1,71 @@ +# SearchManager + + +- [Query files/folders by metadata](#query-files-folders-by-metadata) +- [Search for content](#search-for-content) + +## Query files/folders by metadata + +Create a search using SQL-like syntax to return items that match specific +metadata. + +By default, this endpoint returns only the most basic info about the items for +which the query matches. To get additional fields for each item, including any +of the metadata, use the `fields` attribute in the query. + +This operation is performed by calling function `searchByMetadataQuery`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-metadata-queries-execute-read/). + + +``` +client.getSearch().searchByMetadataQuery(new MetadataQuery.Builder(searchFrom, "0").query("name = :name AND age < :age AND birthDate >= :birthDate AND countryCode = :countryCode AND sports = :sports").queryParams(mapOf(entryOf("name", "John"), entryOf("age", 50), entryOf("birthDate", "2001-01-01T02:20:10.120Z"), entryOf("countryCode", "US"), entryOf("sports", Arrays.asList("basketball", "tennis")))).build()) +``` + +### Arguments + +- requestBody `MetadataQuery` + - Request body of searchByMetadataQuery method +- headers `SearchByMetadataQueryHeaders` + - Headers of searchByMetadataQuery method + + +### Returns + +This function returns a value of type `MetadataQueryResults`. + +Returns a list of files and folders that match this metadata query. + + +## Search for content + +Searches for files, folders, web links, and shared files across the +users content or across the entire enterprise. + +This operation is performed by calling function `searchForContent`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-search/). + + +``` +client.getSearch().searchForContent(new SearchForContentQueryParams.Builder().ancestorFolderIds(Arrays.asList("0")).mdfilters(Arrays.asList(new MetadataFilter.Builder().scope(MetadataFilterScopeField.ENTERPRISE).templateKey(templateKey).filters(searchFilters).build())).build()) +``` + +### Arguments + +- queryParams `SearchForContentQueryParams` + - Query parameters of searchForContent method +- headers `SearchForContentHeaders` + - Headers of searchForContent method + + +### Returns + +This function returns a value of type `SearchResultsOrSearchResultsWithSharedLinks`. + +Returns a collection of search results. If there are no matching +search results, the `entries` array will be empty. + + diff --git a/docs/sessiontermination.md b/docs/sessiontermination.md new file mode 100644 index 000000000..72f701acf --- /dev/null +++ b/docs/sessiontermination.md @@ -0,0 +1,70 @@ +# SessionTerminationManager + + +- [Create jobs to terminate users session](#create-jobs-to-terminate-users-session) +- [Create jobs to terminate user group session](#create-jobs-to-terminate-user-group-session) + +## Create jobs to terminate users session + +Validates the roles and permissions of the user, +and creates asynchronous jobs +to terminate the user's sessions. +Returns the status for the POST request. + +This operation is performed by calling function `terminateUsersSessions`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-users-terminate-sessions/). + + +``` +client.getSessionTermination().terminateUsersSessions(new TerminateUsersSessionsRequestBody(Arrays.asList(getEnvVar("USER_ID")), Arrays.asList(user.getLogin()))) +``` + +### Arguments + +- requestBody `TerminateUsersSessionsRequestBody` + - Request body of terminateUsersSessions method +- headers `TerminateUsersSessionsHeaders` + - Headers of terminateUsersSessions method + + +### Returns + +This function returns a value of type `SessionTerminationMessage`. + +Returns a message about the request status. + + +## Create jobs to terminate user group session + +Validates the roles and permissions of the group, +and creates asynchronous jobs +to terminate the group's sessions. +Returns the status for the POST request. + +This operation is performed by calling function `terminateGroupsSessions`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-groups-terminate-sessions/). + + +``` +client.getSessionTermination().terminateGroupsSessions(new TerminateGroupsSessionsRequestBody(Arrays.asList(group.getId()))) +``` + +### Arguments + +- requestBody `TerminateGroupsSessionsRequestBody` + - Request body of terminateGroupsSessions method +- headers `TerminateGroupsSessionsHeaders` + - Headers of terminateGroupsSessions method + + +### Returns + +This function returns a value of type `SessionTerminationMessage`. + +Returns a message about the request status. + + diff --git a/docs/sharedlinksappitems.md b/docs/sharedlinksappitems.md new file mode 100644 index 000000000..434a25ad7 --- /dev/null +++ b/docs/sharedlinksappitems.md @@ -0,0 +1,35 @@ +# SharedLinksAppItemsManager + + +- [Find app item for shared link](#find-app-item-for-shared-link) + +## Find app item for shared link + +Returns the app item represented by a shared link. + +The link can originate from the current enterprise or another. + +This operation is performed by calling function `findAppItemForSharedLink`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-shared-items--app-items/). + + +``` +client.getSharedLinksAppItems().findAppItemForSharedLink(new FindAppItemForSharedLinkHeaders(String.join("", "shared_link=", appItemSharedLink))) +``` + +### Arguments + +- headers `FindAppItemForSharedLinkHeaders` + - Headers of findAppItemForSharedLink method + + +### Returns + +This function returns a value of type `AppItem`. + +Returns a full app item resource if the shared link is valid and +the user has access to it. + + diff --git a/docs/sharedlinksfiles.md b/docs/sharedlinksfiles.md new file mode 100644 index 000000000..2503d0c77 --- /dev/null +++ b/docs/sharedlinksfiles.md @@ -0,0 +1,181 @@ +# SharedLinksFilesManager + + +- [Find file for shared link](#find-file-for-shared-link) +- [Get shared link for file](#get-shared-link-for-file) +- [Add shared link to file](#add-shared-link-to-file) +- [Update shared link on file](#update-shared-link-on-file) +- [Remove shared link from file](#remove-shared-link-from-file) + +## Find file for shared link + +Returns the file represented by a shared link. + +A shared file can be represented by a shared link, +which can originate within the current enterprise or within another. + +This endpoint allows an application to retrieve information about a +shared file when only given a shared link. + +The `shared_link_permission_options` array field can be returned +by requesting it in the `fields` query parameter. + +This operation is performed by calling function `findFileForSharedLink`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-shared-items/). + + +``` +userClient.getSharedLinksFiles().findFileForSharedLink(new FindFileForSharedLinkQueryParams(), new FindFileForSharedLinkHeaders(String.join("", "shared_link=", fileFromApi.getSharedLink().getUrl(), "&shared_link_password=Secret123@"))) +``` + +### Arguments + +- queryParams `FindFileForSharedLinkQueryParams` + - Query parameters of findFileForSharedLink method +- headers `FindFileForSharedLinkHeaders` + - Headers of findFileForSharedLink method + + +### Returns + +This function returns a value of type `FileFull`. + +Returns a full file resource if the shared link is valid and +the user has access to it. + + +## Get shared link for file + +Gets the information for a shared link on a file. + +This operation is performed by calling function `getSharedLinkForFile`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-files-id--get-shared-link/). + + +``` +client.getSharedLinksFiles().getSharedLinkForFile(fileId, new GetSharedLinkForFileQueryParams("shared_link")) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- queryParams `GetSharedLinkForFileQueryParams` + - Query parameters of getSharedLinkForFile method +- headers `GetSharedLinkForFileHeaders` + - Headers of getSharedLinkForFile method + + +### Returns + +This function returns a value of type `FileFull`. + +Returns the base representation of a file with the +additional shared link information. + + +## Add shared link to file + +Adds a shared link to a file. + +This operation is performed by calling function `addShareLinkToFile`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-files-id--add-shared-link/). + + +``` +client.getSharedLinksFiles().addShareLinkToFile(fileId, new AddShareLinkToFileRequestBody.Builder().sharedLink(new AddShareLinkToFileRequestBodySharedLinkField.Builder().access(AddShareLinkToFileRequestBodySharedLinkAccessField.OPEN).password("Secret123@").build()).build(), new AddShareLinkToFileQueryParams("shared_link")) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- requestBody `AddShareLinkToFileRequestBody` + - Request body of addShareLinkToFile method +- queryParams `AddShareLinkToFileQueryParams` + - Query parameters of addShareLinkToFile method +- headers `AddShareLinkToFileHeaders` + - Headers of addShareLinkToFile method + + +### Returns + +This function returns a value of type `FileFull`. + +Returns the base representation of a file with a new shared +link attached. + + +## Update shared link on file + +Updates a shared link on a file. + +This operation is performed by calling function `updateSharedLinkOnFile`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-files-id--update-shared-link/). + + +``` +client.getSharedLinksFiles().updateSharedLinkOnFile(fileId, new UpdateSharedLinkOnFileRequestBody.Builder().sharedLink(new UpdateSharedLinkOnFileRequestBodySharedLinkField.Builder().access(UpdateSharedLinkOnFileRequestBodySharedLinkAccessField.COLLABORATORS).build()).build(), new UpdateSharedLinkOnFileQueryParams("shared_link")) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- requestBody `UpdateSharedLinkOnFileRequestBody` + - Request body of updateSharedLinkOnFile method +- queryParams `UpdateSharedLinkOnFileQueryParams` + - Query parameters of updateSharedLinkOnFile method +- headers `UpdateSharedLinkOnFileHeaders` + - Headers of updateSharedLinkOnFile method + + +### Returns + +This function returns a value of type `FileFull`. + +Returns a basic representation of the file, with the updated shared +link attached. + + +## Remove shared link from file + +Removes a shared link from a file. + +This operation is performed by calling function `removeSharedLinkFromFile`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-files-id--remove-shared-link/). + + +``` +client.getSharedLinksFiles().removeSharedLinkFromFile(fileId, new RemoveSharedLinkFromFileRequestBody.Builder().sharedLink(null).build(), new RemoveSharedLinkFromFileQueryParams("shared_link")) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- requestBody `RemoveSharedLinkFromFileRequestBody` + - Request body of removeSharedLinkFromFile method +- queryParams `RemoveSharedLinkFromFileQueryParams` + - Query parameters of removeSharedLinkFromFile method +- headers `RemoveSharedLinkFromFileHeaders` + - Headers of removeSharedLinkFromFile method + + +### Returns + +This function returns a value of type `FileFull`. + +Returns a basic representation of a file, with the shared link removed. + + diff --git a/docs/sharedlinksfolders.md b/docs/sharedlinksfolders.md new file mode 100644 index 000000000..7119c05ec --- /dev/null +++ b/docs/sharedlinksfolders.md @@ -0,0 +1,178 @@ +# SharedLinksFoldersManager + + +- [Find folder for shared link](#find-folder-for-shared-link) +- [Get shared link for folder](#get-shared-link-for-folder) +- [Add shared link to folder](#add-shared-link-to-folder) +- [Update shared link on folder](#update-shared-link-on-folder) +- [Remove shared link from folder](#remove-shared-link-from-folder) + +## Find folder for shared link + +Return the folder represented by a shared link. + +A shared folder can be represented by a shared link, +which can originate within the current enterprise or within another. + +This endpoint allows an application to retrieve information about a +shared folder when only given a shared link. + +This operation is performed by calling function `findFolderForSharedLink`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-shared-items--folders/). + + +``` +userClient.getSharedLinksFolders().findFolderForSharedLink(new FindFolderForSharedLinkQueryParams(), new FindFolderForSharedLinkHeaders(String.join("", "shared_link=", folderFromApi.getSharedLink().getUrl(), "&shared_link_password=Secret123@"))) +``` + +### Arguments + +- queryParams `FindFolderForSharedLinkQueryParams` + - Query parameters of findFolderForSharedLink method +- headers `FindFolderForSharedLinkHeaders` + - Headers of findFolderForSharedLink method + + +### Returns + +This function returns a value of type `FolderFull`. + +Returns a full folder resource if the shared link is valid and +the user has access to it. + + +## Get shared link for folder + +Gets the information for a shared link on a folder. + +This operation is performed by calling function `getSharedLinkForFolder`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-folders-id--get-shared-link/). + + +``` +client.getSharedLinksFolders().getSharedLinkForFolder(folder.getId(), new GetSharedLinkForFolderQueryParams("shared_link")) +``` + +### Arguments + +- folderId `String` + - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- queryParams `GetSharedLinkForFolderQueryParams` + - Query parameters of getSharedLinkForFolder method +- headers `GetSharedLinkForFolderHeaders` + - Headers of getSharedLinkForFolder method + + +### Returns + +This function returns a value of type `FolderFull`. + +Returns the base representation of a folder with the +additional shared link information. + + +## Add shared link to folder + +Adds a shared link to a folder. + +This operation is performed by calling function `addShareLinkToFolder`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-folders-id--add-shared-link/). + + +``` +client.getSharedLinksFolders().addShareLinkToFolder(folder.getId(), new AddShareLinkToFolderRequestBody.Builder().sharedLink(new AddShareLinkToFolderRequestBodySharedLinkField.Builder().access(AddShareLinkToFolderRequestBodySharedLinkAccessField.OPEN).password("Secret123@").build()).build(), new AddShareLinkToFolderQueryParams("shared_link")) +``` + +### Arguments + +- folderId `String` + - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- requestBody `AddShareLinkToFolderRequestBody` + - Request body of addShareLinkToFolder method +- queryParams `AddShareLinkToFolderQueryParams` + - Query parameters of addShareLinkToFolder method +- headers `AddShareLinkToFolderHeaders` + - Headers of addShareLinkToFolder method + + +### Returns + +This function returns a value of type `FolderFull`. + +Returns the base representation of a folder with a new shared +link attached. + + +## Update shared link on folder + +Updates a shared link on a folder. + +This operation is performed by calling function `updateSharedLinkOnFolder`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-folders-id--update-shared-link/). + + +``` +client.getSharedLinksFolders().updateSharedLinkOnFolder(folder.getId(), new UpdateSharedLinkOnFolderRequestBody.Builder().sharedLink(new UpdateSharedLinkOnFolderRequestBodySharedLinkField.Builder().access(UpdateSharedLinkOnFolderRequestBodySharedLinkAccessField.COLLABORATORS).build()).build(), new UpdateSharedLinkOnFolderQueryParams("shared_link")) +``` + +### Arguments + +- folderId `String` + - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- requestBody `UpdateSharedLinkOnFolderRequestBody` + - Request body of updateSharedLinkOnFolder method +- queryParams `UpdateSharedLinkOnFolderQueryParams` + - Query parameters of updateSharedLinkOnFolder method +- headers `UpdateSharedLinkOnFolderHeaders` + - Headers of updateSharedLinkOnFolder method + + +### Returns + +This function returns a value of type `FolderFull`. + +Returns a basic representation of the folder, with the updated shared +link attached. + + +## Remove shared link from folder + +Removes a shared link from a folder. + +This operation is performed by calling function `removeSharedLinkFromFolder`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-folders-id--remove-shared-link/). + + +``` +client.getSharedLinksFolders().removeSharedLinkFromFolder(folder.getId(), new RemoveSharedLinkFromFolderRequestBody.Builder().sharedLink(null).build(), new RemoveSharedLinkFromFolderQueryParams("shared_link")) +``` + +### Arguments + +- folderId `String` + - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- requestBody `RemoveSharedLinkFromFolderRequestBody` + - Request body of removeSharedLinkFromFolder method +- queryParams `RemoveSharedLinkFromFolderQueryParams` + - Query parameters of removeSharedLinkFromFolder method +- headers `RemoveSharedLinkFromFolderHeaders` + - Headers of removeSharedLinkFromFolder method + + +### Returns + +This function returns a value of type `FolderFull`. + +Returns a basic representation of a folder, with the shared link removed. + + diff --git a/docs/sharedlinksweblinks.md b/docs/sharedlinksweblinks.md new file mode 100644 index 000000000..e192a73fb --- /dev/null +++ b/docs/sharedlinksweblinks.md @@ -0,0 +1,179 @@ +# SharedLinksWebLinksManager + + +- [Find web link for shared link](#find-web-link-for-shared-link) +- [Get shared link for web link](#get-shared-link-for-web-link) +- [Add shared link to web link](#add-shared-link-to-web-link) +- [Update shared link on web link](#update-shared-link-on-web-link) +- [Remove shared link from web link](#remove-shared-link-from-web-link) + +## Find web link for shared link + +Returns the web link represented by a shared link. + +A shared web link can be represented by a shared link, +which can originate within the current enterprise or within another. + +This endpoint allows an application to retrieve information about a +shared web link when only given a shared link. + +This operation is performed by calling function `findWebLinkForSharedLink`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-shared-items--web-links/). + + +``` +userClient.getSharedLinksWebLinks().findWebLinkForSharedLink(new FindWebLinkForSharedLinkQueryParams(), new FindWebLinkForSharedLinkHeaders(String.join("", "shared_link=", webLinkFromApi.getSharedLink().getUrl(), "&shared_link_password=Secret123@"))) +``` + +### Arguments + +- queryParams `FindWebLinkForSharedLinkQueryParams` + - Query parameters of findWebLinkForSharedLink method +- headers `FindWebLinkForSharedLinkHeaders` + - Headers of findWebLinkForSharedLink method + + +### Returns + +This function returns a value of type `WebLink`. + +Returns a full web link resource if the shared link is valid and +the user has access to it. + + +## Get shared link for web link + +Gets the information for a shared link on a web link. + +This operation is performed by calling function `getSharedLinkForWebLink`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-web-links-id--get-shared-link/). + + +``` +client.getSharedLinksWebLinks().getSharedLinkForWebLink(webLinkId, new GetSharedLinkForWebLinkQueryParams("shared_link")) +``` + +### Arguments + +- webLinkId `String` + - The ID of the web link. Example: "12345" +- queryParams `GetSharedLinkForWebLinkQueryParams` + - Query parameters of getSharedLinkForWebLink method +- headers `GetSharedLinkForWebLinkHeaders` + - Headers of getSharedLinkForWebLink method + + +### Returns + +This function returns a value of type `WebLink`. + +Returns the base representation of a web link with the +additional shared link information. + + +## Add shared link to web link + +Adds a shared link to a web link. + +This operation is performed by calling function `addShareLinkToWebLink`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-web-links-id--add-shared-link/). + + +``` +client.getSharedLinksWebLinks().addShareLinkToWebLink(webLinkId, new AddShareLinkToWebLinkRequestBody.Builder().sharedLink(new AddShareLinkToWebLinkRequestBodySharedLinkField.Builder().access(AddShareLinkToWebLinkRequestBodySharedLinkAccessField.OPEN).password("Secret123@").build()).build(), new AddShareLinkToWebLinkQueryParams("shared_link")) +``` + +### Arguments + +- webLinkId `String` + - The ID of the web link. Example: "12345" +- requestBody `AddShareLinkToWebLinkRequestBody` + - Request body of addShareLinkToWebLink method +- queryParams `AddShareLinkToWebLinkQueryParams` + - Query parameters of addShareLinkToWebLink method +- headers `AddShareLinkToWebLinkHeaders` + - Headers of addShareLinkToWebLink method + + +### Returns + +This function returns a value of type `WebLink`. + +Returns the base representation of a web link with a new shared +link attached. + + +## Update shared link on web link + +Updates a shared link on a web link. + +This operation is performed by calling function `updateSharedLinkOnWebLink`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-web-links-id--update-shared-link/). + + +``` +client.getSharedLinksWebLinks().updateSharedLinkOnWebLink(webLinkId, new UpdateSharedLinkOnWebLinkRequestBody.Builder().sharedLink(new UpdateSharedLinkOnWebLinkRequestBodySharedLinkField.Builder().access(UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessField.COLLABORATORS).build()).build(), new UpdateSharedLinkOnWebLinkQueryParams("shared_link")) +``` + +### Arguments + +- webLinkId `String` + - The ID of the web link. Example: "12345" +- requestBody `UpdateSharedLinkOnWebLinkRequestBody` + - Request body of updateSharedLinkOnWebLink method +- queryParams `UpdateSharedLinkOnWebLinkQueryParams` + - Query parameters of updateSharedLinkOnWebLink method +- headers `UpdateSharedLinkOnWebLinkHeaders` + - Headers of updateSharedLinkOnWebLink method + + +### Returns + +This function returns a value of type `WebLink`. + +Returns a basic representation of the web link, with the updated shared +link attached. + + +## Remove shared link from web link + +Removes a shared link from a web link. + +This operation is performed by calling function `removeSharedLinkFromWebLink`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-web-links-id--remove-shared-link/). + + +``` +client.getSharedLinksWebLinks().removeSharedLinkFromWebLink(webLinkId, new RemoveSharedLinkFromWebLinkRequestBody.Builder().sharedLink(null).build(), new RemoveSharedLinkFromWebLinkQueryParams("shared_link")) +``` + +### Arguments + +- webLinkId `String` + - The ID of the web link. Example: "12345" +- requestBody `RemoveSharedLinkFromWebLinkRequestBody` + - Request body of removeSharedLinkFromWebLink method +- queryParams `RemoveSharedLinkFromWebLinkQueryParams` + - Query parameters of removeSharedLinkFromWebLink method +- headers `RemoveSharedLinkFromWebLinkHeaders` + - Headers of removeSharedLinkFromWebLink method + + +### Returns + +This function returns a value of type `WebLink`. + +Returns a basic representation of a web link, with the +shared link removed. + + diff --git a/docs/shieldinformationbarrierreports.md b/docs/shieldinformationbarrierreports.md new file mode 100644 index 000000000..542409705 --- /dev/null +++ b/docs/shieldinformationbarrierreports.md @@ -0,0 +1,94 @@ +# ShieldInformationBarrierReportsManager + + +- [List shield information barrier reports](#list-shield-information-barrier-reports) +- [Create shield information barrier report](#create-shield-information-barrier-report) +- [Get shield information barrier report by ID](#get-shield-information-barrier-report-by-id) + +## List shield information barrier reports + +Lists shield information barrier reports. + +This operation is performed by calling function `getShieldInformationBarrierReports`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-shield-information-barrier-reports/). + + +``` +client.getShieldInformationBarrierReports().getShieldInformationBarrierReports(new GetShieldInformationBarrierReportsQueryParams(barrierId)) +``` + +### Arguments + +- queryParams `GetShieldInformationBarrierReportsQueryParams` + - Query parameters of getShieldInformationBarrierReports method +- headers `GetShieldInformationBarrierReportsHeaders` + - Headers of getShieldInformationBarrierReports method + + +### Returns + +This function returns a value of type `ShieldInformationBarrierReports`. + +Returns a paginated list of shield information barrier report objects. + + +## Create shield information barrier report + +Creates a shield information barrier report for a given barrier. + +This operation is performed by calling function `createShieldInformationBarrierReport`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-shield-information-barrier-reports/). + + +``` +client.getShieldInformationBarrierReports().createShieldInformationBarrierReport(new ShieldInformationBarrierReference.Builder().shieldInformationBarrier(new ShieldInformationBarrierBase.Builder().id(barrierId).type(ShieldInformationBarrierBaseTypeField.SHIELD_INFORMATION_BARRIER).build()).build()) +``` + +### Arguments + +- requestBody `ShieldInformationBarrierReference` + - Request body of createShieldInformationBarrierReport method +- headers `CreateShieldInformationBarrierReportHeaders` + - Headers of createShieldInformationBarrierReport method + + +### Returns + +This function returns a value of type `ShieldInformationBarrierReport`. + +Returns the shield information barrier report information object. + + +## Get shield information barrier report by ID + +Retrieves a shield information barrier report by its ID. + +This operation is performed by calling function `getShieldInformationBarrierReportById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-shield-information-barrier-reports-id/). + + +``` +client.getShieldInformationBarrierReports().getShieldInformationBarrierReportById(createdReport.getId()) +``` + +### Arguments + +- shieldInformationBarrierReportId `String` + - The ID of the shield information barrier Report. Example: "3423" +- headers `GetShieldInformationBarrierReportByIdHeaders` + - Headers of getShieldInformationBarrierReportById method + + +### Returns + +This function returns a value of type `ShieldInformationBarrierReport`. + +Returns the shield information barrier report object. + + diff --git a/docs/shieldinformationbarriers.md b/docs/shieldinformationbarriers.md new file mode 100644 index 000000000..fe561fbb7 --- /dev/null +++ b/docs/shieldinformationbarriers.md @@ -0,0 +1,129 @@ +# ShieldInformationBarriersManager + + +- [Get shield information barrier with specified ID](#get-shield-information-barrier-with-specified-id) +- [Add changed status of shield information barrier with specified ID](#add-changed-status-of-shield-information-barrier-with-specified-id) +- [List shield information barriers](#list-shield-information-barriers) +- [Create shield information barrier](#create-shield-information-barrier) + +## Get shield information barrier with specified ID + +Get shield information barrier based on provided ID. + +This operation is performed by calling function `getShieldInformationBarrierById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-shield-information-barriers-id/). + + +``` +client.getShieldInformationBarriers().getShieldInformationBarrierById(barrierId) +``` + +### Arguments + +- shieldInformationBarrierId `String` + - The ID of the shield information barrier. Example: "1910967" +- headers `GetShieldInformationBarrierByIdHeaders` + - Headers of getShieldInformationBarrierById method + + +### Returns + +This function returns a value of type `ShieldInformationBarrier`. + +Returns the shield information barrier object. + + +## Add changed status of shield information barrier with specified ID + +Change status of shield information barrier with the specified ID. + +This operation is performed by calling function `updateShieldInformationBarrierStatus`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-shield-information-barriers-change-status/). + + +``` +client.getShieldInformationBarriers().updateShieldInformationBarrierStatus(new UpdateShieldInformationBarrierStatusRequestBody(barrierId, UpdateShieldInformationBarrierStatusRequestBodyStatusField.DISABLED)) +``` + +### Arguments + +- requestBody `UpdateShieldInformationBarrierStatusRequestBody` + - Request body of updateShieldInformationBarrierStatus method +- headers `UpdateShieldInformationBarrierStatusHeaders` + - Headers of updateShieldInformationBarrierStatus method + + +### Returns + +This function returns a value of type `ShieldInformationBarrier`. + +Returns the updated shield information barrier object. + + +## List shield information barriers + +Retrieves a list of shield information barrier objects +for the enterprise of JWT. + +This operation is performed by calling function `getShieldInformationBarriers`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-shield-information-barriers/). + + +``` +client.getShieldInformationBarriers().getShieldInformationBarriers() +``` + +### Arguments + +- queryParams `GetShieldInformationBarriersQueryParams` + - Query parameters of getShieldInformationBarriers method +- headers `GetShieldInformationBarriersHeaders` + - Headers of getShieldInformationBarriers method + + +### Returns + +This function returns a value of type `ShieldInformationBarriers`. + +Returns a paginated list of +shield information barrier objects, +empty list if currently no barrier. + + +## Create shield information barrier + +Creates a shield information barrier to +separate individuals/groups within the same +firm and prevents confidential information passing between them. + +This operation is performed by calling function `createShieldInformationBarrier`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-shield-information-barriers/). + + +``` +client.getShieldInformationBarriers().createShieldInformationBarrier(new CreateShieldInformationBarrierRequestBody(new EnterpriseBase.Builder().id(enterpriseId).build())) +``` + +### Arguments + +- requestBody `CreateShieldInformationBarrierRequestBody` + - Request body of createShieldInformationBarrier method +- headers `CreateShieldInformationBarrierHeaders` + - Headers of createShieldInformationBarrier method + + +### Returns + +This function returns a value of type `ShieldInformationBarrier`. + +Returns a new shield information barrier object. + + diff --git a/docs/shieldinformationbarriersegmentmembers.md b/docs/shieldinformationbarriersegmentmembers.md new file mode 100644 index 000000000..5ff9dd6c9 --- /dev/null +++ b/docs/shieldinformationbarriersegmentmembers.md @@ -0,0 +1,129 @@ +# ShieldInformationBarrierSegmentMembersManager + + +- [Get shield information barrier segment member by ID](#get-shield-information-barrier-segment-member-by-id) +- [Delete shield information barrier segment member by ID](#delete-shield-information-barrier-segment-member-by-id) +- [List shield information barrier segment members](#list-shield-information-barrier-segment-members) +- [Create shield information barrier segment member](#create-shield-information-barrier-segment-member) + +## Get shield information barrier segment member by ID + +Retrieves a shield information barrier +segment member by its ID. + +This operation is performed by calling function `getShieldInformationBarrierSegmentMemberById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-shield-information-barrier-segment-members-id/). + + +``` +client.getShieldInformationBarrierSegmentMembers().getShieldInformationBarrierSegmentMemberById(segmentMember.getId()) +``` + +### Arguments + +- shieldInformationBarrierSegmentMemberId `String` + - The ID of the shield information barrier segment Member. Example: "7815" +- headers `GetShieldInformationBarrierSegmentMemberByIdHeaders` + - Headers of getShieldInformationBarrierSegmentMemberById method + + +### Returns + +This function returns a value of type `ShieldInformationBarrierSegmentMember`. + +Returns the shield information barrier segment member object. + + +## Delete shield information barrier segment member by ID + +Deletes a shield information barrier +segment member based on provided ID. + +This operation is performed by calling function `deleteShieldInformationBarrierSegmentMemberById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-shield-information-barrier-segment-members-id/). + + +``` +client.getShieldInformationBarrierSegmentMembers().deleteShieldInformationBarrierSegmentMemberById(segmentMember.getId()) +``` + +### Arguments + +- shieldInformationBarrierSegmentMemberId `String` + - The ID of the shield information barrier segment Member. Example: "7815" +- headers `DeleteShieldInformationBarrierSegmentMemberByIdHeaders` + - Headers of deleteShieldInformationBarrierSegmentMemberById method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response if the +segment member was deleted successfully. + + +## List shield information barrier segment members + +Lists shield information barrier segment members +based on provided segment IDs. + +This operation is performed by calling function `getShieldInformationBarrierSegmentMembers`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-shield-information-barrier-segment-members/). + + +``` +client.getShieldInformationBarrierSegmentMembers().getShieldInformationBarrierSegmentMembers(new GetShieldInformationBarrierSegmentMembersQueryParams(segment.getId())) +``` + +### Arguments + +- queryParams `GetShieldInformationBarrierSegmentMembersQueryParams` + - Query parameters of getShieldInformationBarrierSegmentMembers method +- headers `GetShieldInformationBarrierSegmentMembersHeaders` + - Headers of getShieldInformationBarrierSegmentMembers method + + +### Returns + +This function returns a value of type `ShieldInformationBarrierSegmentMembers`. + +Returns a paginated list of +shield information barrier segment member objects. + + +## Create shield information barrier segment member + +Creates a new shield information barrier segment member. + +This operation is performed by calling function `createShieldInformationBarrierSegmentMember`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-shield-information-barrier-segment-members/). + + +``` +client.getShieldInformationBarrierSegmentMembers().createShieldInformationBarrierSegmentMember(new CreateShieldInformationBarrierSegmentMemberRequestBody(new CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField.Builder().id(segment.getId()).type(CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField.SHIELD_INFORMATION_BARRIER_SEGMENT).build(), new UserBase(getEnvVar("USER_ID")))) +``` + +### Arguments + +- requestBody `CreateShieldInformationBarrierSegmentMemberRequestBody` + - Request body of createShieldInformationBarrierSegmentMember method +- headers `CreateShieldInformationBarrierSegmentMemberHeaders` + - Headers of createShieldInformationBarrierSegmentMember method + + +### Returns + +This function returns a value of type `ShieldInformationBarrierSegmentMember`. + +Returns a new shield information barrier segment member object. + + diff --git a/docs/shieldinformationbarriersegmentrestrictions.md b/docs/shieldinformationbarriersegmentrestrictions.md new file mode 100644 index 000000000..ab9fbb2bc --- /dev/null +++ b/docs/shieldinformationbarriersegmentrestrictions.md @@ -0,0 +1,131 @@ +# ShieldInformationBarrierSegmentRestrictionsManager + + +- [Get shield information barrier segment restriction by ID](#get-shield-information-barrier-segment-restriction-by-id) +- [Delete shield information barrier segment restriction by ID](#delete-shield-information-barrier-segment-restriction-by-id) +- [List shield information barrier segment restrictions](#list-shield-information-barrier-segment-restrictions) +- [Create shield information barrier segment restriction](#create-shield-information-barrier-segment-restriction) + +## Get shield information barrier segment restriction by ID + +Retrieves a shield information barrier segment +restriction based on provided ID. + +This operation is performed by calling function `getShieldInformationBarrierSegmentRestrictionById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-shield-information-barrier-segment-restrictions-id/). + + +``` +client.getShieldInformationBarrierSegmentRestrictions().getShieldInformationBarrierSegmentRestrictionById(segmentRestrictionId) +``` + +### Arguments + +- shieldInformationBarrierSegmentRestrictionId `String` + - The ID of the shield information barrier segment Restriction. Example: "4563" +- headers `GetShieldInformationBarrierSegmentRestrictionByIdHeaders` + - Headers of getShieldInformationBarrierSegmentRestrictionById method + + +### Returns + +This function returns a value of type `ShieldInformationBarrierSegmentRestriction`. + +Returns the shield information barrier segment +restriction object. + + +## Delete shield information barrier segment restriction by ID + +Delete shield information barrier segment restriction +based on provided ID. + +This operation is performed by calling function `deleteShieldInformationBarrierSegmentRestrictionById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-shield-information-barrier-segment-restrictions-id/). + + +``` +client.getShieldInformationBarrierSegmentRestrictions().deleteShieldInformationBarrierSegmentRestrictionById(segmentRestrictionId) +``` + +### Arguments + +- shieldInformationBarrierSegmentRestrictionId `String` + - The ID of the shield information barrier segment Restriction. Example: "4563" +- headers `DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders` + - Headers of deleteShieldInformationBarrierSegmentRestrictionById method + + +### Returns + +This function returns a value of type `void`. + +Empty body in response. + + +## List shield information barrier segment restrictions + +Lists shield information barrier segment restrictions +based on provided segment ID. + +This operation is performed by calling function `getShieldInformationBarrierSegmentRestrictions`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-shield-information-barrier-segment-restrictions/). + + +``` +client.getShieldInformationBarrierSegmentRestrictions().getShieldInformationBarrierSegmentRestrictions(new GetShieldInformationBarrierSegmentRestrictionsQueryParams(segmentId)) +``` + +### Arguments + +- queryParams `GetShieldInformationBarrierSegmentRestrictionsQueryParams` + - Query parameters of getShieldInformationBarrierSegmentRestrictions method +- headers `GetShieldInformationBarrierSegmentRestrictionsHeaders` + - Headers of getShieldInformationBarrierSegmentRestrictions method + + +### Returns + +This function returns a value of type `ShieldInformationBarrierSegmentRestrictions`. + +Returns a paginated list of +shield information barrier segment restriction objects. + + +## Create shield information barrier segment restriction + +Creates a shield information barrier +segment restriction object. + +This operation is performed by calling function `createShieldInformationBarrierSegmentRestriction`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-shield-information-barrier-segment-restrictions/). + + +``` +client.getShieldInformationBarrierSegmentRestrictions().createShieldInformationBarrierSegmentRestriction(new CreateShieldInformationBarrierSegmentRestrictionRequestBody.Builder(new CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField.Builder().id(segmentId).type(CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField.SHIELD_INFORMATION_BARRIER_SEGMENT).build(), new CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField.Builder().id(segmentToRestrictId).type(CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField.SHIELD_INFORMATION_BARRIER_SEGMENT).build()).type(CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeField.SHIELD_INFORMATION_BARRIER_SEGMENT_RESTRICTION).build()) +``` + +### Arguments + +- requestBody `CreateShieldInformationBarrierSegmentRestrictionRequestBody` + - Request body of createShieldInformationBarrierSegmentRestriction method +- headers `CreateShieldInformationBarrierSegmentRestrictionHeaders` + - Headers of createShieldInformationBarrierSegmentRestriction method + + +### Returns + +This function returns a value of type `ShieldInformationBarrierSegmentRestriction`. + +Returns the newly created Shield +Information Barrier Segment Restriction object. + + diff --git a/docs/shieldinformationbarriersegments.md b/docs/shieldinformationbarriersegments.md new file mode 100644 index 000000000..99af74127 --- /dev/null +++ b/docs/shieldinformationbarriersegments.md @@ -0,0 +1,158 @@ +# ShieldInformationBarrierSegmentsManager + + +- [Get shield information barrier segment with specified ID](#get-shield-information-barrier-segment-with-specified-id) +- [Delete shield information barrier segment](#delete-shield-information-barrier-segment) +- [Update shield information barrier segment with specified ID](#update-shield-information-barrier-segment-with-specified-id) +- [List shield information barrier segments](#list-shield-information-barrier-segments) +- [Create shield information barrier segment](#create-shield-information-barrier-segment) + +## Get shield information barrier segment with specified ID + +Retrieves shield information barrier segment based on provided ID.. + +This operation is performed by calling function `getShieldInformationBarrierSegmentById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-shield-information-barrier-segments-id/). + + +``` +client.getShieldInformationBarrierSegments().getShieldInformationBarrierSegmentById(segmentId) +``` + +### Arguments + +- shieldInformationBarrierSegmentId `String` + - The ID of the shield information barrier segment. Example: "3423" +- headers `GetShieldInformationBarrierSegmentByIdHeaders` + - Headers of getShieldInformationBarrierSegmentById method + + +### Returns + +This function returns a value of type `ShieldInformationBarrierSegment`. + +Returns the shield information barrier segment object. + + +## Delete shield information barrier segment + +Deletes the shield information barrier segment +based on provided ID. + +This operation is performed by calling function `deleteShieldInformationBarrierSegmentById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-shield-information-barrier-segments-id/). + + +``` +client.getShieldInformationBarrierSegments().deleteShieldInformationBarrierSegmentById(segmentId) +``` + +### Arguments + +- shieldInformationBarrierSegmentId `String` + - The ID of the shield information barrier segment. Example: "3423" +- headers `DeleteShieldInformationBarrierSegmentByIdHeaders` + - Headers of deleteShieldInformationBarrierSegmentById method + + +### Returns + +This function returns a value of type `void`. + +Empty body in response. + + +## Update shield information barrier segment with specified ID + +Updates the shield information barrier segment based on provided ID.. + +This operation is performed by calling function `updateShieldInformationBarrierSegmentById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-shield-information-barrier-segments-id/). + + +``` +client.getShieldInformationBarrierSegments().updateShieldInformationBarrierSegmentById(segmentId, new UpdateShieldInformationBarrierSegmentByIdRequestBody.Builder().description(updatedSegmentDescription).build()) +``` + +### Arguments + +- shieldInformationBarrierSegmentId `String` + - The ID of the shield information barrier segment. Example: "3423" +- requestBody `UpdateShieldInformationBarrierSegmentByIdRequestBody` + - Request body of updateShieldInformationBarrierSegmentById method +- headers `UpdateShieldInformationBarrierSegmentByIdHeaders` + - Headers of updateShieldInformationBarrierSegmentById method + + +### Returns + +This function returns a value of type `ShieldInformationBarrierSegment`. + +Returns the updated shield information barrier segment object. + + +## List shield information barrier segments + +Retrieves a list of shield information barrier segment objects +for the specified Information Barrier ID. + +This operation is performed by calling function `getShieldInformationBarrierSegments`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-shield-information-barrier-segments/). + + +``` +client.getShieldInformationBarrierSegments().getShieldInformationBarrierSegments(new GetShieldInformationBarrierSegmentsQueryParams(barrierId)) +``` + +### Arguments + +- queryParams `GetShieldInformationBarrierSegmentsQueryParams` + - Query parameters of getShieldInformationBarrierSegments method +- headers `GetShieldInformationBarrierSegmentsHeaders` + - Headers of getShieldInformationBarrierSegments method + + +### Returns + +This function returns a value of type `ShieldInformationBarrierSegments`. + +Returns a paginated list of shield information barrier segment objects. + + +## Create shield information barrier segment + +Creates a shield information barrier segment. + +This operation is performed by calling function `createShieldInformationBarrierSegment`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-shield-information-barrier-segments/). + + +``` +client.getShieldInformationBarrierSegments().createShieldInformationBarrierSegment(new CreateShieldInformationBarrierSegmentRequestBody.Builder(new ShieldInformationBarrierBase.Builder().id(barrierId).type(ShieldInformationBarrierBaseTypeField.SHIELD_INFORMATION_BARRIER).build(), segmentName).description(segmentDescription).build()) +``` + +### Arguments + +- requestBody `CreateShieldInformationBarrierSegmentRequestBody` + - Request body of createShieldInformationBarrierSegment method +- headers `CreateShieldInformationBarrierSegmentHeaders` + - Headers of createShieldInformationBarrierSegment method + + +### Returns + +This function returns a value of type `ShieldInformationBarrierSegment`. + +Returns a new shield information barrier segment object. + + diff --git a/docs/shieldlists.md b/docs/shieldlists.md new file mode 100644 index 000000000..0be407ce9 --- /dev/null +++ b/docs/shieldlists.md @@ -0,0 +1,154 @@ +# ShieldListsManager + + +- [Get all shield lists in enterprise](#get-all-shield-lists-in-enterprise) +- [Create shield list](#create-shield-list) +- [Get single shield list by shield list id](#get-single-shield-list-by-shield-list-id) +- [Delete single shield list by shield list id](#delete-single-shield-list-by-shield-list-id) +- [Update shield list](#update-shield-list) + +## Get all shield lists in enterprise + +Retrieves all shield lists in the enterprise. + +This operation is performed by calling function `getShieldListsV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/get-shield-lists/). + + +``` +client.getShieldLists().getShieldListsV2025R0() +``` + +### Arguments + +- headers `GetShieldListsV2025R0Headers` + - Headers of getShieldListsV2025R0 method + + +### Returns + +This function returns a value of type `ShieldListsV2025R0`. + +Returns the list of shield list objects. + + +## Create shield list + +Creates a shield list. + +This operation is performed by calling function `createShieldListV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/post-shield-lists/). + + +``` +client.getShieldLists().createShieldListV2025R0(new ShieldListsCreateV2025R0.Builder(shieldListCountryName, new ShieldListContentCountryV2025R0.Builder(Arrays.asList("US", "PL")).type(ShieldListContentCountryV2025R0TypeField.COUNTRY).build()).description("A list of things that are shielded").build()) +``` + +### Arguments + +- requestBody `ShieldListsCreateV2025R0` + - Request body of createShieldListV2025R0 method +- headers `CreateShieldListV2025R0Headers` + - Headers of createShieldListV2025R0 method + + +### Returns + +This function returns a value of type `ShieldListV2025R0`. + +Returns the shield list object. + + +## Get single shield list by shield list id + +Retrieves a single shield list by its ID. + +This operation is performed by calling function `getShieldListByIdV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/get-shield-lists-id/). + + +``` +client.getShieldLists().getShieldListByIdV2025R0(shieldListCountry.getId()) +``` + +### Arguments + +- shieldListId `String` + - The unique identifier that represents a shield list. The ID for any Shield List can be determined by the response from the endpoint fetching all shield lists for the enterprise. Example: "90fb0e17-c332-40ed-b4f9-fa8908fbbb24 " +- headers `GetShieldListByIdV2025R0Headers` + - Headers of getShieldListByIdV2025R0 method + + +### Returns + +This function returns a value of type `ShieldListV2025R0`. + +Returns the shield list object. + + +## Delete single shield list by shield list id + +Delete a single shield list by its ID. + +This operation is performed by calling function `deleteShieldListByIdV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/delete-shield-lists-id/). + + +``` +client.getShieldLists().deleteShieldListByIdV2025R0(shieldListCountry.getId()) +``` + +### Arguments + +- shieldListId `String` + - The unique identifier that represents a shield list. The ID for any Shield List can be determined by the response from the endpoint fetching all shield lists for the enterprise. Example: "90fb0e17-c332-40ed-b4f9-fa8908fbbb24 " +- headers `DeleteShieldListByIdV2025R0Headers` + - Headers of deleteShieldListByIdV2025R0 method + + +### Returns + +This function returns a value of type `void`. + +Shield List correctly removed. No content in response. + + +## Update shield list + +Updates a shield list. + +This operation is performed by calling function `updateShieldListByIdV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/put-shield-lists-id/). + + +``` +client.getShieldLists().updateShieldListByIdV2025R0(shieldListCountry.getId(), new ShieldListsUpdateV2025R0.Builder(shieldListCountryName, new ShieldListContentCountryV2025R0.Builder(Arrays.asList("US")).type(ShieldListContentCountryV2025R0TypeField.COUNTRY).build()).description("Updated description").build()) +``` + +### Arguments + +- shieldListId `String` + - The unique identifier that represents a shield list. The ID for any Shield List can be determined by the response from the endpoint fetching all shield lists for the enterprise. Example: "90fb0e17-c332-40ed-b4f9-fa8908fbbb24 " +- requestBody `ShieldListsUpdateV2025R0` + - Request body of updateShieldListByIdV2025R0 method +- headers `UpdateShieldListByIdV2025R0Headers` + - Headers of updateShieldListByIdV2025R0 method + + +### Returns + +This function returns a value of type `ShieldListV2025R0`. + +Returns the shield list object. + + diff --git a/docs/signrequests.md b/docs/signrequests.md new file mode 100644 index 000000000..c9227c875 --- /dev/null +++ b/docs/signrequests.md @@ -0,0 +1,154 @@ +# SignRequestsManager + + +- [Cancel Box Sign request](#cancel-box-sign-request) +- [Resend Box Sign request](#resend-box-sign-request) +- [Get Box Sign request by ID](#get-box-sign-request-by-id) +- [List Box Sign requests](#list-box-sign-requests) +- [Create Box Sign request](#create-box-sign-request) + +## Cancel Box Sign request + +Cancels a sign request. + +This operation is performed by calling function `cancelSignRequest`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-sign-requests-id-cancel/). + + +``` +client.getSignRequests().cancelSignRequest(createdSignRequest.getId()) +``` + +### Arguments + +- signRequestId `String` + - The ID of the signature request. Example: "33243242" +- headers `CancelSignRequestHeaders` + - Headers of cancelSignRequest method + + +### Returns + +This function returns a value of type `SignRequest`. + +Returns a Sign Request object. + + +## Resend Box Sign request + +Resends a signature request email to all outstanding signers. + +This operation is performed by calling function `resendSignRequest`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-sign-requests-id-resend/). + +*Currently we don't have an example for calling `resendSignRequest` in integration tests* + +### Arguments + +- signRequestId `String` + - The ID of the signature request. Example: "33243242" +- headers `ResendSignRequestHeaders` + - Headers of resendSignRequest method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the API call was successful. +The email notifications will be sent asynchronously. + + +## Get Box Sign request by ID + +Gets a sign request by ID. + +This operation is performed by calling function `getSignRequestById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-sign-requests-id/). + + +``` +client.getSignRequests().getSignRequestById(createdSignRequest.getId()) +``` + +### Arguments + +- signRequestId `String` + - The ID of the signature request. Example: "33243242" +- headers `GetSignRequestByIdHeaders` + - Headers of getSignRequestById method + + +### Returns + +This function returns a value of type `SignRequest`. + +Returns a signature request. + + +## List Box Sign requests + +Gets signature requests created by a user. If the `sign_files` and/or +`parent_folder` are deleted, the signature request will not return in the list. + +This operation is performed by calling function `getSignRequests`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-sign-requests/). + + +``` +client.getSignRequests().getSignRequests() +``` + +### Arguments + +- queryParams `GetSignRequestsQueryParams` + - Query parameters of getSignRequests method +- headers `GetSignRequestsHeaders` + - Headers of getSignRequests method + + +### Returns + +This function returns a value of type `SignRequests`. + +Returns a collection of sign requests. + + +## Create Box Sign request + +Creates a signature request. This involves preparing a document for signing and +sending the signature request to signers. + +This operation is performed by calling function `createSignRequest`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-sign-requests/). + + +``` +client.getSignRequests().createSignRequest(new SignRequestCreateRequest.Builder(Arrays.asList(new SignRequestCreateSigner.Builder().email(signerEmail).role(SignRequestCreateSignerRoleField.SIGNER).isInPerson(false).embedUrlExternalUserId("123").declinedRedirectUrl("https://www.box.com").loginRequired(false).password("password").suppressNotifications(true).build())).sourceFiles(Arrays.asList(new FileBase(fileToSign.getId()))).parentFolder(new FolderMini(destinationFolder.getId())).isDocumentPreparationNeeded(false).redirectUrl("https://www.box.com").declinedRedirectUrl("https://www.box.com").areTextSignaturesEnabled(true).emailSubject("Sign this document").emailMessage("Please sign this document").areRemindersEnabled(true).name("Sign Request").prefillTags(Arrays.asList(new SignRequestPrefillTag.Builder().documentTagId("0").dateValue(dateFromString("2035-01-01")).build())).daysValid(30L).externalId("123").externalSystemName("BoxSignIntegration").build()) +``` + +### Arguments + +- requestBody `SignRequestCreateRequest` + - Request body of createSignRequest method +- headers `CreateSignRequestHeaders` + - Headers of createSignRequest method + + +### Returns + +This function returns a value of type `SignRequest`. + +Returns a Box Sign request object. + + diff --git a/docs/signtemplates.md b/docs/signtemplates.md new file mode 100644 index 000000000..7c4c1e878 --- /dev/null +++ b/docs/signtemplates.md @@ -0,0 +1,64 @@ +# SignTemplatesManager + + +- [List Box Sign templates](#list-box-sign-templates) +- [Get Box Sign template by ID](#get-box-sign-template-by-id) + +## List Box Sign templates + +Gets Box Sign templates created by a user. + +This operation is performed by calling function `getSignTemplates`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-sign-templates/). + + +``` +client.getSignTemplates().getSignTemplates(new GetSignTemplatesQueryParams.Builder().limit(2L).build()) +``` + +### Arguments + +- queryParams `GetSignTemplatesQueryParams` + - Query parameters of getSignTemplates method +- headers `GetSignTemplatesHeaders` + - Headers of getSignTemplates method + + +### Returns + +This function returns a value of type `SignTemplates`. + +Returns a collection of templates. + + +## Get Box Sign template by ID + +Fetches details of a specific Box Sign template. + +This operation is performed by calling function `getSignTemplateById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-sign-templates-id/). + + +``` +client.getSignTemplates().getSignTemplateById(signTemplates.getEntries().get(0).getId()) +``` + +### Arguments + +- templateId `String` + - The ID of a Box Sign template. Example: "123075213-7d117509-8f05-42e4-a5ef-5190a319d41d" +- headers `GetSignTemplateByIdHeaders` + - Headers of getSignTemplateById method + + +### Returns + +This function returns a value of type `SignTemplate`. + +Returns details of a template. + + diff --git a/docs/skills.md b/docs/skills.md new file mode 100644 index 000000000..8fb35a51d --- /dev/null +++ b/docs/skills.md @@ -0,0 +1,164 @@ +# SkillsManager + + +- [List Box Skill cards on file](#list-box-skill-cards-on-file) +- [Create Box Skill cards on file](#create-box-skill-cards-on-file) +- [Update Box Skill cards on file](#update-box-skill-cards-on-file) +- [Remove Box Skill cards from file](#remove-box-skill-cards-from-file) +- [Update all Box Skill cards on file](#update-all-box-skill-cards-on-file) + +## List Box Skill cards on file + +List the Box Skills metadata cards that are attached to a file. + +This operation is performed by calling function `getBoxSkillCardsOnFile`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-files-id-metadata-global-boxSkillsCards/). + + +``` +client.getSkills().getBoxSkillCardsOnFile(file.getId()) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- headers `GetBoxSkillCardsOnFileHeaders` + - Headers of getBoxSkillCardsOnFile method + + +### Returns + +This function returns a value of type `SkillCardsMetadata`. + +Returns all the metadata associated with a file. + +This API does not support pagination and will therefore always return +all of the metadata associated to the file. + + +## Create Box Skill cards on file + +Applies one or more Box Skills metadata cards to a file. + +This operation is performed by calling function `createBoxSkillCardsOnFile`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-files-id-metadata-global-boxSkillsCards/). + + +``` +client.getSkills().createBoxSkillCardsOnFile(file.getId(), new CreateBoxSkillCardsOnFileRequestBody(cardsToCreate)) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- requestBody `CreateBoxSkillCardsOnFileRequestBody` + - Request body of createBoxSkillCardsOnFile method +- headers `CreateBoxSkillCardsOnFileHeaders` + - Headers of createBoxSkillCardsOnFile method + + +### Returns + +This function returns a value of type `SkillCardsMetadata`. + +Returns the instance of the template that was applied to the file, +including the data that was applied to the template. + + +## Update Box Skill cards on file + +Updates one or more Box Skills metadata cards to a file. + +This operation is performed by calling function `updateBoxSkillCardsOnFile`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-files-id-metadata-global-boxSkillsCards/). + + +``` +client.getSkills().updateBoxSkillCardsOnFile(file.getId(), Arrays.asList(new UpdateBoxSkillCardsOnFileRequestBody.Builder().op(UpdateBoxSkillCardsOnFileRequestBodyOpField.REPLACE).path("/cards/0").value(cardToUpdate).build())) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- requestBody `List` + - Request body of updateBoxSkillCardsOnFile method +- headers `UpdateBoxSkillCardsOnFileHeaders` + - Headers of updateBoxSkillCardsOnFile method + + +### Returns + +This function returns a value of type `SkillCardsMetadata`. + +Returns the updated metadata template, with the +custom template data included. + + +## Remove Box Skill cards from file + +Removes any Box Skills cards metadata from a file. + +This operation is performed by calling function `deleteBoxSkillCardsFromFile`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-files-id-metadata-global-boxSkillsCards/). + + +``` +client.getSkills().deleteBoxSkillCardsFromFile(file.getId()) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- headers `DeleteBoxSkillCardsFromFileHeaders` + - Headers of deleteBoxSkillCardsFromFile method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the cards are +successfully deleted. + + +## Update all Box Skill cards on file + +An alternative method that can be used to overwrite and update all Box Skill +metadata cards on a file. + +This operation is performed by calling function `updateAllSkillCardsOnFile`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-skill-invocations-id/). + +*Currently we don't have an example for calling `updateAllSkillCardsOnFile` in integration tests* + +### Arguments + +- skillId `String` + - The ID of the skill to apply this metadata for. Example: "33243242" +- requestBody `UpdateAllSkillCardsOnFileRequestBody` + - Request body of updateAllSkillCardsOnFile method +- headers `UpdateAllSkillCardsOnFileHeaders` + - Headers of updateAllSkillCardsOnFile method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the card has been successfully updated. + + diff --git a/docs/storagepolicies.md b/docs/storagepolicies.md new file mode 100644 index 000000000..552cdd5ed --- /dev/null +++ b/docs/storagepolicies.md @@ -0,0 +1,64 @@ +# StoragePoliciesManager + + +- [List storage policies](#list-storage-policies) +- [Get storage policy](#get-storage-policy) + +## List storage policies + +Fetches all the storage policies in the enterprise. + +This operation is performed by calling function `getStoragePolicies`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-storage-policies/). + + +``` +client.getStoragePolicies().getStoragePolicies() +``` + +### Arguments + +- queryParams `GetStoragePoliciesQueryParams` + - Query parameters of getStoragePolicies method +- headers `GetStoragePoliciesHeaders` + - Headers of getStoragePolicies method + + +### Returns + +This function returns a value of type `StoragePolicies`. + +Returns a collection of storage policies. + + +## Get storage policy + +Fetches a specific storage policy. + +This operation is performed by calling function `getStoragePolicyById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-storage-policies-id/). + + +``` +client.getStoragePolicies().getStoragePolicyById(storagePolicy.getId()) +``` + +### Arguments + +- storagePolicyId `String` + - The ID of the storage policy. Example: "34342" +- headers `GetStoragePolicyByIdHeaders` + - Headers of getStoragePolicyById method + + +### Returns + +This function returns a value of type `StoragePolicy`. + +Returns a storage policy object. + + diff --git a/docs/storagepolicyassignments.md b/docs/storagepolicyassignments.md new file mode 100644 index 000000000..a28a8a554 --- /dev/null +++ b/docs/storagepolicyassignments.md @@ -0,0 +1,165 @@ +# StoragePolicyAssignmentsManager + + +- [List storage policy assignments](#list-storage-policy-assignments) +- [Assign storage policy](#assign-storage-policy) +- [Get storage policy assignment](#get-storage-policy-assignment) +- [Update storage policy assignment](#update-storage-policy-assignment) +- [Unassign storage policy](#unassign-storage-policy) + +## List storage policy assignments + +Fetches all the storage policy assignment for an enterprise or user. + +This operation is performed by calling function `getStoragePolicyAssignments`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-storage-policy-assignments/). + + +``` +client.getStoragePolicyAssignments().getStoragePolicyAssignments(new GetStoragePolicyAssignmentsQueryParams(GetStoragePolicyAssignmentsQueryParamsResolvedForTypeField.USER, userId)) +``` + +### Arguments + +- queryParams `GetStoragePolicyAssignmentsQueryParams` + - Query parameters of getStoragePolicyAssignments method +- headers `GetStoragePolicyAssignmentsHeaders` + - Headers of getStoragePolicyAssignments method + + +### Returns + +This function returns a value of type `StoragePolicyAssignments`. + +Returns a collection of storage policies for +the enterprise or user. + + +## Assign storage policy + +Creates a storage policy assignment for an enterprise or user. + +This operation is performed by calling function `createStoragePolicyAssignment`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-storage-policy-assignments/). + + +``` +client.getStoragePolicyAssignments().createStoragePolicyAssignment(new CreateStoragePolicyAssignmentRequestBody(new CreateStoragePolicyAssignmentRequestBodyStoragePolicyField(policyId), new CreateStoragePolicyAssignmentRequestBodyAssignedToField(CreateStoragePolicyAssignmentRequestBodyAssignedToTypeField.USER, userId))) +``` + +### Arguments + +- requestBody `CreateStoragePolicyAssignmentRequestBody` + - Request body of createStoragePolicyAssignment method +- headers `CreateStoragePolicyAssignmentHeaders` + - Headers of createStoragePolicyAssignment method + + +### Returns + +This function returns a value of type `StoragePolicyAssignment`. + +Returns the new storage policy assignment created. + + +## Get storage policy assignment + +Fetches a specific storage policy assignment. + +This operation is performed by calling function `getStoragePolicyAssignmentById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-storage-policy-assignments-id/). + + +``` +client.getStoragePolicyAssignments().getStoragePolicyAssignmentById(storagePolicyAssignment.getId()) +``` + +### Arguments + +- storagePolicyAssignmentId `String` + - The ID of the storage policy assignment. Example: "932483" +- headers `GetStoragePolicyAssignmentByIdHeaders` + - Headers of getStoragePolicyAssignmentById method + + +### Returns + +This function returns a value of type `StoragePolicyAssignment`. + +Returns a storage policy assignment object. + + +## Update storage policy assignment + +Updates a specific storage policy assignment. + +This operation is performed by calling function `updateStoragePolicyAssignmentById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-storage-policy-assignments-id/). + + +``` +client.getStoragePolicyAssignments().updateStoragePolicyAssignmentById(storagePolicyAssignment.getId(), new UpdateStoragePolicyAssignmentByIdRequestBody(new UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField(storagePolicy2.getId()))) +``` + +### Arguments + +- storagePolicyAssignmentId `String` + - The ID of the storage policy assignment. Example: "932483" +- requestBody `UpdateStoragePolicyAssignmentByIdRequestBody` + - Request body of updateStoragePolicyAssignmentById method +- headers `UpdateStoragePolicyAssignmentByIdHeaders` + - Headers of updateStoragePolicyAssignmentById method + + +### Returns + +This function returns a value of type `StoragePolicyAssignment`. + +Returns an updated storage policy assignment object. + + +## Unassign storage policy + +Delete a storage policy assignment. + +Deleting a storage policy assignment on a user +will have the user inherit the enterprise's default +storage policy. + +There is a rate limit for calling this endpoint of only +twice per user in a 24 hour time frame. + +This operation is performed by calling function `deleteStoragePolicyAssignmentById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-storage-policy-assignments-id/). + + +``` +client.getStoragePolicyAssignments().deleteStoragePolicyAssignmentById(storagePolicyAssignment.getId()) +``` + +### Arguments + +- storagePolicyAssignmentId `String` + - The ID of the storage policy assignment. Example: "932483" +- headers `DeleteStoragePolicyAssignmentByIdHeaders` + - Headers of deleteStoragePolicyAssignmentById method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the storage policy +assignment is successfully deleted. + + diff --git a/docs/taskassignments.md b/docs/taskassignments.md new file mode 100644 index 000000000..bd90913c9 --- /dev/null +++ b/docs/taskassignments.md @@ -0,0 +1,163 @@ +# TaskAssignmentsManager + + +- [List task assignments](#list-task-assignments) +- [Assign task](#assign-task) +- [Get task assignment](#get-task-assignment) +- [Update task assignment](#update-task-assignment) +- [Unassign task](#unassign-task) + +## List task assignments + +Lists all of the assignments for a given task. + +This operation is performed by calling function `getTaskAssignments`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-tasks-id-assignments/). + + +``` +client.getTaskAssignments().getTaskAssignments(task.getId()) +``` + +### Arguments + +- taskId `String` + - The ID of the task. Example: "12345" +- headers `GetTaskAssignmentsHeaders` + - Headers of getTaskAssignments method + + +### Returns + +This function returns a value of type `TaskAssignments`. + +Returns a collection of task assignment defining what task on +a file has been assigned to which users and by who. + + +## Assign task + +Assigns a task to a user. + +A task can be assigned to more than one user by creating multiple +assignments. + +This operation is performed by calling function `createTaskAssignment`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-task-assignments/). + + +``` +client.getTaskAssignments().createTaskAssignment(new CreateTaskAssignmentRequestBody(new CreateTaskAssignmentRequestBodyTaskField.Builder(task.getId()).type(CreateTaskAssignmentRequestBodyTaskTypeField.TASK).build(), new CreateTaskAssignmentRequestBodyAssignToField.Builder().id(currentUser.getId()).build())) +``` + +### Arguments + +- requestBody `CreateTaskAssignmentRequestBody` + - Request body of createTaskAssignment method +- headers `CreateTaskAssignmentHeaders` + - Headers of createTaskAssignment method + + +### Returns + +This function returns a value of type `TaskAssignment`. + +Returns a new task assignment object. + + +## Get task assignment + +Retrieves information about a task assignment. + +This operation is performed by calling function `getTaskAssignmentById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-task-assignments-id/). + + +``` +client.getTaskAssignments().getTaskAssignmentById(taskAssignment.getId()) +``` + +### Arguments + +- taskAssignmentId `String` + - The ID of the task assignment. Example: "12345" +- headers `GetTaskAssignmentByIdHeaders` + - Headers of getTaskAssignmentById method + + +### Returns + +This function returns a value of type `TaskAssignment`. + +Returns a task assignment, specifying who the task has been assigned to +and by whom. + + +## Update task assignment + +Updates a task assignment. This endpoint can be +used to update the state of a task assigned to a user. + +This operation is performed by calling function `updateTaskAssignmentById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-task-assignments-id/). + + +``` +client.getTaskAssignments().updateTaskAssignmentById(taskAssignment.getId(), new UpdateTaskAssignmentByIdRequestBody.Builder().message("updated message").resolutionState(UpdateTaskAssignmentByIdRequestBodyResolutionStateField.APPROVED).build()) +``` + +### Arguments + +- taskAssignmentId `String` + - The ID of the task assignment. Example: "12345" +- requestBody `UpdateTaskAssignmentByIdRequestBody` + - Request body of updateTaskAssignmentById method +- headers `UpdateTaskAssignmentByIdHeaders` + - Headers of updateTaskAssignmentById method + + +### Returns + +This function returns a value of type `TaskAssignment`. + +Returns the updated task assignment object. + + +## Unassign task + +Deletes a specific task assignment. + +This operation is performed by calling function `deleteTaskAssignmentById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-task-assignments-id/). + + +``` +client.getTaskAssignments().deleteTaskAssignmentById(taskAssignment.getId()) +``` + +### Arguments + +- taskAssignmentId `String` + - The ID of the task assignment. Example: "12345" +- headers `DeleteTaskAssignmentByIdHeaders` + - Headers of deleteTaskAssignmentById method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the task +assignment was successfully deleted. + + diff --git a/docs/tasks.md b/docs/tasks.md new file mode 100644 index 000000000..2f11bf40b --- /dev/null +++ b/docs/tasks.md @@ -0,0 +1,162 @@ +# TasksManager + + +- [List tasks on file](#list-tasks-on-file) +- [Create task](#create-task) +- [Get task](#get-task) +- [Update task](#update-task) +- [Remove task](#remove-task) + +## List tasks on file + +Retrieves a list of all the tasks for a file. This +endpoint does not support pagination. + +This operation is performed by calling function `getFileTasks`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-files-id-tasks/). + + +``` +client.getTasks().getFileTasks(file.getId()) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- headers `GetFileTasksHeaders` + - Headers of getFileTasks method + + +### Returns + +This function returns a value of type `Tasks`. + +Returns a list of tasks on a file. + +If there are no tasks on this file an empty collection is returned +instead. + + +## Create task + +Creates a single task on a file. This task is not assigned to any user and +will need to be assigned separately. + +This operation is performed by calling function `createTask`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-tasks/). + + +``` +client.getTasks().createTask(new CreateTaskRequestBody.Builder(new CreateTaskRequestBodyItemField.Builder().id(file.getId()).type(CreateTaskRequestBodyItemTypeField.FILE).build()).action(CreateTaskRequestBodyActionField.REVIEW).message("test message").dueAt(dateTime).completionRule(CreateTaskRequestBodyCompletionRuleField.ALL_ASSIGNEES).build()) +``` + +### Arguments + +- requestBody `CreateTaskRequestBody` + - Request body of createTask method +- headers `CreateTaskHeaders` + - Headers of createTask method + + +### Returns + +This function returns a value of type `Task`. + +Returns the newly created task. + + +## Get task + +Retrieves information about a specific task. + +This operation is performed by calling function `getTaskById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-tasks-id/). + + +``` +client.getTasks().getTaskById(task.getId()) +``` + +### Arguments + +- taskId `String` + - The ID of the task. Example: "12345" +- headers `GetTaskByIdHeaders` + - Headers of getTaskById method + + +### Returns + +This function returns a value of type `Task`. + +Returns a task object. + + +## Update task + +Updates a task. This can be used to update a task's configuration, or to +update its completion state. + +This operation is performed by calling function `updateTaskById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-tasks-id/). + + +``` +client.getTasks().updateTaskById(task.getId(), new UpdateTaskByIdRequestBody.Builder().message("updated message").build()) +``` + +### Arguments + +- taskId `String` + - The ID of the task. Example: "12345" +- requestBody `UpdateTaskByIdRequestBody` + - Request body of updateTaskById method +- headers `UpdateTaskByIdHeaders` + - Headers of updateTaskById method + + +### Returns + +This function returns a value of type `Task`. + +Returns the updated task object. + + +## Remove task + +Removes a task from a file. + +This operation is performed by calling function `deleteTaskById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-tasks-id/). + + +``` +client.getTasks().deleteTaskById(task.getId()) +``` + +### Arguments + +- taskId `String` + - The ID of the task. Example: "12345" +- headers `DeleteTaskByIdHeaders` + - Headers of deleteTaskById method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the task was successfully deleted. + + diff --git a/docs/termsofservices.md b/docs/termsofservices.md new file mode 100644 index 000000000..700ef5a6c --- /dev/null +++ b/docs/termsofservices.md @@ -0,0 +1,126 @@ +# TermsOfServicesManager + + +- [List terms of services](#list-terms-of-services) +- [Create terms of service](#create-terms-of-service) +- [Get terms of service](#get-terms-of-service) +- [Update terms of service](#update-terms-of-service) + +## List terms of services + +Returns the current terms of service text and settings +for the enterprise. + +This operation is performed by calling function `getTermsOfService`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-terms-of-services/). + + +``` +client.getTermsOfServices().getTermsOfService() +``` + +### Arguments + +- queryParams `GetTermsOfServiceQueryParams` + - Query parameters of getTermsOfService method +- headers `GetTermsOfServiceHeaders` + - Headers of getTermsOfService method + + +### Returns + +This function returns a value of type `TermsOfServices`. + +Returns a collection of terms of service text and settings for the +enterprise. + + +## Create terms of service + +Creates a terms of service for a given enterprise +and type of user. + +This operation is performed by calling function `createTermsOfService`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-terms-of-services/). + + +``` +client.getTermsOfServices().createTermsOfService(new CreateTermsOfServiceRequestBody.Builder(CreateTermsOfServiceRequestBodyStatusField.DISABLED, "Test TOS").tosType(CreateTermsOfServiceRequestBodyTosTypeField.MANAGED).build()) +``` + +### Arguments + +- requestBody `CreateTermsOfServiceRequestBody` + - Request body of createTermsOfService method +- headers `CreateTermsOfServiceHeaders` + - Headers of createTermsOfService method + + +### Returns + +This function returns a value of type `TermsOfService`. + +Returns a new task object. + + +## Get terms of service + +Fetches a specific terms of service. + +This operation is performed by calling function `getTermsOfServiceById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-terms-of-services-id/). + +*Currently we don't have an example for calling `getTermsOfServiceById` in integration tests* + +### Arguments + +- termsOfServiceId `String` + - The ID of the terms of service. Example: "324234" +- headers `GetTermsOfServiceByIdHeaders` + - Headers of getTermsOfServiceById method + + +### Returns + +This function returns a value of type `TermsOfService`. + +Returns a terms of service object. + + +## Update terms of service + +Updates a specific terms of service. + +This operation is performed by calling function `updateTermsOfServiceById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-terms-of-services-id/). + + +``` +client.getTermsOfServices().updateTermsOfServiceById(tos.getId(), new UpdateTermsOfServiceByIdRequestBody(UpdateTermsOfServiceByIdRequestBodyStatusField.DISABLED, "TOS")) +``` + +### Arguments + +- termsOfServiceId `String` + - The ID of the terms of service. Example: "324234" +- requestBody `UpdateTermsOfServiceByIdRequestBody` + - Request body of updateTermsOfServiceById method +- headers `UpdateTermsOfServiceByIdHeaders` + - Headers of updateTermsOfServiceById method + + +### Returns + +This function returns a value of type `TermsOfService`. + +Returns an updated terms of service object. + + diff --git a/docs/termsofserviceuserstatuses.md b/docs/termsofserviceuserstatuses.md new file mode 100644 index 000000000..3a2fa17df --- /dev/null +++ b/docs/termsofserviceuserstatuses.md @@ -0,0 +1,98 @@ +# TermsOfServiceUserStatusesManager + + +- [List terms of service user statuses](#list-terms-of-service-user-statuses) +- [Create terms of service status for new user](#create-terms-of-service-status-for-new-user) +- [Update terms of service status for existing user](#update-terms-of-service-status-for-existing-user) + +## List terms of service user statuses + +Retrieves an overview of users and their status for a +terms of service, including Whether they have accepted +the terms and when. + +This operation is performed by calling function `getTermsOfServiceUserStatuses`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-terms-of-service-user-statuses/). + + +``` +client.getTermsOfServiceUserStatuses().getTermsOfServiceUserStatuses(new GetTermsOfServiceUserStatusesQueryParams.Builder(tos.getId()).userId(user.getId()).build()) +``` + +### Arguments + +- queryParams `GetTermsOfServiceUserStatusesQueryParams` + - Query parameters of getTermsOfServiceUserStatuses method +- headers `GetTermsOfServiceUserStatusesHeaders` + - Headers of getTermsOfServiceUserStatuses method + + +### Returns + +This function returns a value of type `TermsOfServiceUserStatuses`. + +Returns a list of terms of service statuses. + + +## Create terms of service status for new user + +Sets the status for a terms of service for a user. + +This operation is performed by calling function `createTermsOfServiceStatusForUser`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-terms-of-service-user-statuses/). + + +``` +client.getTermsOfServiceUserStatuses().createTermsOfServiceStatusForUser(new CreateTermsOfServiceStatusForUserRequestBody(new CreateTermsOfServiceStatusForUserRequestBodyTosField(tos.getId()), new CreateTermsOfServiceStatusForUserRequestBodyUserField(user.getId()), false)) +``` + +### Arguments + +- requestBody `CreateTermsOfServiceStatusForUserRequestBody` + - Request body of createTermsOfServiceStatusForUser method +- headers `CreateTermsOfServiceStatusForUserHeaders` + - Headers of createTermsOfServiceStatusForUser method + + +### Returns + +This function returns a value of type `TermsOfServiceUserStatus`. + +Returns a terms of service status object. + + +## Update terms of service status for existing user + +Updates the status for a terms of service for a user. + +This operation is performed by calling function `updateTermsOfServiceStatusForUserById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-terms-of-service-user-statuses-id/). + + +``` +client.getTermsOfServiceUserStatuses().updateTermsOfServiceStatusForUserById(createdTosUserStatus.getId(), new UpdateTermsOfServiceStatusForUserByIdRequestBody(true)) +``` + +### Arguments + +- termsOfServiceUserStatusId `String` + - The ID of the terms of service status. Example: "324234" +- requestBody `UpdateTermsOfServiceStatusForUserByIdRequestBody` + - Request body of updateTermsOfServiceStatusForUserById method +- headers `UpdateTermsOfServiceStatusForUserByIdHeaders` + - Headers of updateTermsOfServiceStatusForUserById method + + +### Returns + +This function returns a value of type `TermsOfServiceUserStatus`. + +Returns the updated terms of service status object. + + diff --git a/docs/transfer.md b/docs/transfer.md new file mode 100644 index 000000000..039d67195 --- /dev/null +++ b/docs/transfer.md @@ -0,0 +1,72 @@ +# TransferManager + + +- [Transfer owned folders](#transfer-owned-folders) + +## Transfer owned folders + +Move all of the items (files, folders and workflows) owned by a user into +another user's account + +Only the root folder (`0`) can be transferred. + +Folders can only be moved across users by users with administrative +permissions. + +All existing shared links and folder-level collaborations are transferred +during the operation. Please note that while collaborations at the individual +file-level are transferred during the operation, the collaborations are +deleted when the original user is deleted. + +If the user has a large number of items across all folders, the call will +be run asynchronously. If the operation is not completed within 10 minutes, +the user will receive a 200 OK response, and the operation will continue running. + +If the destination path has a metadata cascade policy attached to any of +the parent folders, a metadata cascade operation will be kicked off +asynchronously. + +There is currently no way to check for when this operation is finished. + +The destination folder's name will be in the format `{User}'s Files and +Folders`, where `{User}` is the display name of the user. + +To make this API call your application will need to have the "Read and write +all files and folders stored in Box" scope enabled. + +Please make sure the destination user has access to `Relay` or `Relay Lite`, +and has access to the files and folders involved in the workflows being +transferred. + +Admins will receive an email when the operation is completed. + +This operation is performed by calling function `transferOwnedFolder`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-users-id-folders-0/). + + +``` +client.getTransfer().transferOwnedFolder(sourceUser.getId(), new TransferOwnedFolderRequestBody(new TransferOwnedFolderRequestBodyOwnedByField(targetUser.getId())), new TransferOwnedFolderQueryParams.Builder().notify(false).build()) +``` + +### Arguments + +- userId `String` + - The ID of the user. Example: "12345" +- requestBody `TransferOwnedFolderRequestBody` + - Request body of transferOwnedFolder method +- queryParams `TransferOwnedFolderQueryParams` + - Query parameters of transferOwnedFolder method +- headers `TransferOwnedFolderHeaders` + - Headers of transferOwnedFolder method + + +### Returns + +This function returns a value of type `FolderFull`. + +Returns the information for the newly created +destination folder. + + diff --git a/docs/trashedfiles.md b/docs/trashedfiles.md new file mode 100644 index 000000000..90ed51ec4 --- /dev/null +++ b/docs/trashedfiles.md @@ -0,0 +1,117 @@ +# TrashedFilesManager + + +- [Restore file](#restore-file) +- [Get trashed file](#get-trashed-file) +- [Permanently remove file](#permanently-remove-file) + +## Restore file + +Restores a file that has been moved to the trash. + +An optional new parent ID can be provided to restore the file to in case the +original folder has been deleted. + +This operation is performed by calling function `restoreFileFromTrash`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-files-id/). + + +``` +client.getTrashedFiles().restoreFileFromTrash(file.getId()) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- requestBody `RestoreFileFromTrashRequestBody` + - Request body of restoreFileFromTrash method +- queryParams `RestoreFileFromTrashQueryParams` + - Query parameters of restoreFileFromTrash method +- headers `RestoreFileFromTrashHeaders` + - Headers of restoreFileFromTrash method + + +### Returns + +This function returns a value of type `TrashFileRestored`. + +Returns a file object when the file has been restored. + + +## Get trashed file + +Retrieves a file that has been moved to the trash. + +Please note that only if the file itself has been moved to the +trash can it be retrieved with this API call. If instead one of +its parent folders was moved to the trash, only that folder +can be inspected using the +[`GET /folders/:id/trash`](e://get_folders_id_trash) API. + +To list all items that have been moved to the trash, please +use the [`GET /folders/trash/items`](e://get-folders-trash-items/) +API. + +This operation is performed by calling function `getTrashedFileById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-files-id-trash/). + + +``` +client.getTrashedFiles().getTrashedFileById(file.getId()) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- queryParams `GetTrashedFileByIdQueryParams` + - Query parameters of getTrashedFileById method +- headers `GetTrashedFileByIdHeaders` + - Headers of getTrashedFileById method + + +### Returns + +This function returns a value of type `TrashFile`. + +Returns the file that was trashed, +including information about when the it +was moved to the trash. + + +## Permanently remove file + +Permanently deletes a file that is in the trash. +This action cannot be undone. + +This operation is performed by calling function `deleteTrashedFileById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-files-id-trash/). + + +``` +client.getTrashedFiles().deleteTrashedFileById(file.getId()) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- headers `DeleteTrashedFileByIdHeaders` + - Headers of deleteTrashedFileById method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the file was +permanently deleted. + + diff --git a/docs/trashedfolders.md b/docs/trashedfolders.md new file mode 100644 index 000000000..906508c2f --- /dev/null +++ b/docs/trashedfolders.md @@ -0,0 +1,124 @@ +# TrashedFoldersManager + + +- [Restore folder](#restore-folder) +- [Get trashed folder](#get-trashed-folder) +- [Permanently remove folder](#permanently-remove-folder) + +## Restore folder + +Restores a folder that has been moved to the trash. + +An optional new parent ID can be provided to restore the folder to in case the +original folder has been deleted. + +During this operation, part of the file tree will be locked, mainly +the source folder and all of its descendants, as well as the destination +folder. + +For the duration of the operation, no other move, copy, delete, or restore +operation can performed on any of the locked folders. + +This operation is performed by calling function `restoreFolderFromTrash`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-folders-id/). + + +``` +client.getTrashedFolders().restoreFolderFromTrash(folder.getId()) +``` + +### Arguments + +- folderId `String` + - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- requestBody `RestoreFolderFromTrashRequestBody` + - Request body of restoreFolderFromTrash method +- queryParams `RestoreFolderFromTrashQueryParams` + - Query parameters of restoreFolderFromTrash method +- headers `RestoreFolderFromTrashHeaders` + - Headers of restoreFolderFromTrash method + + +### Returns + +This function returns a value of type `TrashFolderRestored`. + +Returns a folder object when the folder has been restored. + + +## Get trashed folder + +Retrieves a folder that has been moved to the trash. + +Please note that only if the folder itself has been moved to the +trash can it be retrieved with this API call. If instead one of +its parent folders was moved to the trash, only that folder +can be inspected using the +[`GET /folders/:id/trash`](e://get_folders_id_trash) API. + +To list all items that have been moved to the trash, please +use the [`GET /folders/trash/items`](e://get-folders-trash-items/) +API. + +This operation is performed by calling function `getTrashedFolderById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-folders-id-trash/). + + +``` +client.getTrashedFolders().getTrashedFolderById(folder.getId()) +``` + +### Arguments + +- folderId `String` + - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- queryParams `GetTrashedFolderByIdQueryParams` + - Query parameters of getTrashedFolderById method +- headers `GetTrashedFolderByIdHeaders` + - Headers of getTrashedFolderById method + + +### Returns + +This function returns a value of type `TrashFolder`. + +Returns the folder that was trashed, +including information about when the it +was moved to the trash. + + +## Permanently remove folder + +Permanently deletes a folder that is in the trash. +This action cannot be undone. + +This operation is performed by calling function `deleteTrashedFolderById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-folders-id-trash/). + + +``` +client.getTrashedFolders().deleteTrashedFolderById(folder.getId()) +``` + +### Arguments + +- folderId `String` + - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- headers `DeleteTrashedFolderByIdHeaders` + - Headers of deleteTrashedFolderById method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the folder was +permanently deleted. + + diff --git a/docs/trasheditems.md b/docs/trasheditems.md new file mode 100644 index 000000000..1643b531d --- /dev/null +++ b/docs/trasheditems.md @@ -0,0 +1,42 @@ +# TrashedItemsManager + + +- [List trashed items](#list-trashed-items) + +## List trashed items + +Retrieves the files and folders that have been moved +to the trash. + +Any attribute in the full files or folders objects can be passed +in with the `fields` parameter to retrieve those specific +attributes that are not returned by default. + +This endpoint defaults to use offset-based pagination, yet also supports +marker-based pagination using the `marker` parameter. + +This operation is performed by calling function `getTrashedItems`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-folders-trash-items/). + + +``` +client.getTrashedItems().getTrashedItems() +``` + +### Arguments + +- queryParams `GetTrashedItemsQueryParams` + - Query parameters of getTrashedItems method +- headers `GetTrashedItemsHeaders` + - Headers of getTrashedItems method + + +### Returns + +This function returns a value of type `Items`. + +Returns a list of items that have been deleted. + + diff --git a/docs/trashedweblinks.md b/docs/trashedweblinks.md new file mode 100644 index 000000000..6a3e4b919 --- /dev/null +++ b/docs/trashedweblinks.md @@ -0,0 +1,107 @@ +# TrashedWebLinksManager + + +- [Restore web link](#restore-web-link) +- [Get trashed web link](#get-trashed-web-link) +- [Permanently remove web link](#permanently-remove-web-link) + +## Restore web link + +Restores a web link that has been moved to the trash. + +An optional new parent ID can be provided to restore the web link to in case +the original folder has been deleted. + +This operation is performed by calling function `restoreWeblinkFromTrash`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-web-links-id/). + + +``` +client.getTrashedWebLinks().restoreWeblinkFromTrash(weblink.getId()) +``` + +### Arguments + +- webLinkId `String` + - The ID of the web link. Example: "12345" +- requestBody `RestoreWeblinkFromTrashRequestBody` + - Request body of restoreWeblinkFromTrash method +- queryParams `RestoreWeblinkFromTrashQueryParams` + - Query parameters of restoreWeblinkFromTrash method +- headers `RestoreWeblinkFromTrashHeaders` + - Headers of restoreWeblinkFromTrash method + + +### Returns + +This function returns a value of type `TrashWebLinkRestored`. + +Returns a web link object when it has been restored. + + +## Get trashed web link + +Retrieves a web link that has been moved to the trash. + +This operation is performed by calling function `getTrashedWebLinkById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-web-links-id-trash/). + + +``` +client.getTrashedWebLinks().getTrashedWebLinkById(weblink.getId()) +``` + +### Arguments + +- webLinkId `String` + - The ID of the web link. Example: "12345" +- queryParams `GetTrashedWebLinkByIdQueryParams` + - Query parameters of getTrashedWebLinkById method +- headers `GetTrashedWebLinkByIdHeaders` + - Headers of getTrashedWebLinkById method + + +### Returns + +This function returns a value of type `TrashWebLink`. + +Returns the web link that was trashed, +including information about when the it +was moved to the trash. + + +## Permanently remove web link + +Permanently deletes a web link that is in the trash. +This action cannot be undone. + +This operation is performed by calling function `deleteTrashedWebLinkById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-web-links-id-trash/). + + +``` +client.getTrashedWebLinks().deleteTrashedWebLinkById(weblink.getId()) +``` + +### Arguments + +- webLinkId `String` + - The ID of the web link. Example: "12345" +- headers `DeleteTrashedWebLinkByIdHeaders` + - Headers of deleteTrashedWebLinkById method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the web link was +permanently deleted. + + diff --git a/docs/uploads.md b/docs/uploads.md new file mode 100644 index 000000000..a3eb4721f --- /dev/null +++ b/docs/uploads.md @@ -0,0 +1,144 @@ +# UploadsManager + + +- [Upload file version](#upload-file-version) +- [Preflight check before upload](#preflight-check-before-upload) +- [Upload file](#upload-file) +- [Upload a file with a preflight check](#upload-a-file-with-a-preflight-check) + +## Upload file version + +Update a file's content. For file sizes over 50MB we recommend +using the Chunk Upload APIs. + +The `attributes` part of the body must come **before** the +`file` part. Requests that do not follow this format when +uploading the file will receive a HTTP `400` error with a +`metadata_after_file_contents` error code. + +This operation is performed by calling function `uploadFileVersion`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-files-id-content/). + + +``` +client.getUploads().uploadFileVersion(uploadedFile.getId(), new UploadFileVersionRequestBody(new UploadFileVersionRequestBodyAttributesField(newFileVersionName), newFileContentStream)) +``` + +### Arguments + +- fileId `String` + - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- requestBody `UploadFileVersionRequestBody` + - Request body of uploadFileVersion method +- queryParams `UploadFileVersionQueryParams` + - Query parameters of uploadFileVersion method +- headers `UploadFileVersionHeaders` + - Headers of uploadFileVersion method + + +### Returns + +This function returns a value of type `Files`. + +Returns the new file object in a list. + + +## Preflight check before upload + +Performs a check to verify that a file will be accepted by Box +before you upload the entire file. + +This operation is performed by calling function `preflightFileUploadCheck`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/options-files-content/). + + +``` +client.getUploads().preflightFileUploadCheck(new PreflightFileUploadCheckRequestBody.Builder().name(newFileName).size(1024 * 1024).parent(new PreflightFileUploadCheckRequestBodyParentField.Builder().id("0").build()).build()) +``` + +### Arguments + +- requestBody `PreflightFileUploadCheckRequestBody` + - Request body of preflightFileUploadCheck method +- headers `PreflightFileUploadCheckHeaders` + - Headers of preflightFileUploadCheck method + + +### Returns + +This function returns a value of type `UploadUrl`. + +If the check passed, the response will include a session URL that +can be used to upload the file to. + + +## Upload file + +Uploads a small file to Box. For file sizes over 50MB we recommend +using the Chunk Upload APIs. + +The `attributes` part of the body must come **before** the +`file` part. Requests that do not follow this format when +uploading the file will receive a HTTP `400` error with a +`metadata_after_file_contents` error code. + +This operation is performed by calling function `uploadFile`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-files-content/). + + +``` +client.getUploads().uploadFile(new UploadFileRequestBody(new UploadFileRequestBodyAttributesField(newFileName, new UploadFileRequestBodyAttributesParentField("0")), fileContentStream)) +``` + +### Arguments + +- requestBody `UploadFileRequestBody` + - Request body of uploadFile method +- queryParams `UploadFileQueryParams` + - Query parameters of uploadFile method +- headers `UploadFileHeaders` + - Headers of uploadFile method + + +### Returns + +This function returns a value of type `Files`. + +Returns the new file object in a list. + + +## Upload a file with a preflight check + + Upload a file with a preflight check + +This operation is performed by calling function `uploadWithPreflightCheck`. + + + +``` +client.getUploads().uploadWithPreflightCheck(new UploadWithPreflightCheckRequestBody(new UploadWithPreflightCheckRequestBodyAttributesField(newFileName, new UploadWithPreflightCheckRequestBodyAttributesParentField("0"), -1), fileContentStream)) +``` + +### Arguments + +- requestBody `UploadWithPreflightCheckRequestBody` + +- queryParams `UploadWithPreflightCheckQueryParams` + - Query parameters of uploadFile method +- headers `UploadWithPreflightCheckHeaders` + - Headers of uploadFile method + + +### Returns + +This function returns a value of type `Files`. + + + + diff --git a/docs/usercollaborations.md b/docs/usercollaborations.md new file mode 100644 index 000000000..f95501c08 --- /dev/null +++ b/docs/usercollaborations.md @@ -0,0 +1,148 @@ +# UserCollaborationsManager + + +- [Get collaboration](#get-collaboration) +- [Update collaboration](#update-collaboration) +- [Remove collaboration](#remove-collaboration) +- [Create collaboration](#create-collaboration) + +## Get collaboration + +Retrieves a single collaboration. + +This operation is performed by calling function `getCollaborationById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-collaborations-id/). + + +``` +client.getUserCollaborations().getCollaborationById(collaborationId) +``` + +### Arguments + +- collaborationId `String` + - The ID of the collaboration. Example: "1234" +- queryParams `GetCollaborationByIdQueryParams` + - Query parameters of getCollaborationById method +- headers `GetCollaborationByIdHeaders` + - Headers of getCollaborationById method + + +### Returns + +This function returns a value of type `Collaboration`. + +Returns a collaboration object. + + +## Update collaboration + +Updates a collaboration. +Can be used to change the owner of an item, or to +accept collaboration invites. + +This operation is performed by calling function `updateCollaborationById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-collaborations-id/). + + +``` +client.getUserCollaborations().updateCollaborationById(collaborationId, new UpdateCollaborationByIdRequestBody(UpdateCollaborationByIdRequestBodyRoleField.VIEWER)) +``` + +### Arguments + +- collaborationId `String` + - The ID of the collaboration. Example: "1234" +- requestBody `UpdateCollaborationByIdRequestBody` + - Request body of updateCollaborationById method +- headers `UpdateCollaborationByIdHeaders` + - Headers of updateCollaborationById method + + +### Returns + +This function returns a value of type `Collaboration`. + +Returns an updated collaboration object unless the owner has changed.If the role is changed to `owner`, the collaboration is deleted +and a new collaboration is created. The previous `owner` of +the old collaboration will be a `co-owner` on the new collaboration. + + +## Remove collaboration + +Deletes a single collaboration. + +This operation is performed by calling function `deleteCollaborationById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-collaborations-id/). + + +``` +client.getUserCollaborations().deleteCollaborationById(collaborationId) +``` + +### Arguments + +- collaborationId `String` + - The ID of the collaboration. Example: "1234" +- headers `DeleteCollaborationByIdHeaders` + - Headers of deleteCollaborationById method + + +### Returns + +This function returns a value of type `void`. + +A blank response is returned if the collaboration was +successfully deleted. + + +## Create collaboration + +Adds a collaboration for a single user or a single group to a file +or folder. + +Collaborations can be created using email address, user IDs, or a +group IDs. + +If a collaboration is being created with a group, access to +this endpoint is dependent on the group's ability to be invited. + +If collaboration is in `pending` status, the following fields +are redacted: +- `login` and `name` are hidden if a collaboration was created +using `user_id`, +- `name` is hidden if a collaboration was created using `login`. + +This operation is performed by calling function `createCollaboration`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-collaborations/). + + +``` +client.getUserCollaborations().createCollaboration(new CreateCollaborationRequestBody(new CreateCollaborationRequestBodyItemField.Builder().type(CreateCollaborationRequestBodyItemTypeField.FOLDER).id(folder.getId()).build(), new CreateCollaborationRequestBodyAccessibleByField.Builder(CreateCollaborationRequestBodyAccessibleByTypeField.USER).id(user.getId()).build(), CreateCollaborationRequestBodyRoleField.EDITOR)) +``` + +### Arguments + +- requestBody `CreateCollaborationRequestBody` + - Request body of createCollaboration method +- queryParams `CreateCollaborationQueryParams` + - Query parameters of createCollaboration method +- headers `CreateCollaborationHeaders` + - Headers of createCollaboration method + + +### Returns + +This function returns a value of type `Collaboration`. + +Returns a new collaboration object. + + diff --git a/docs/users.md b/docs/users.md new file mode 100644 index 000000000..43d35d544 --- /dev/null +++ b/docs/users.md @@ -0,0 +1,230 @@ +# UsersManager + + +- [List enterprise users](#list-enterprise-users) +- [Create user](#create-user) +- [Get current user](#get-current-user) +- [Get user](#get-user) +- [Update user](#update-user) +- [Delete user](#delete-user) + +## List enterprise users + +Returns a list of all users for the Enterprise along with their `user_id`, +`public_name`, and `login`. + +The application and the authenticated user need to +have the permission to look up users in the entire +enterprise. + +This operation is performed by calling function `getUsers`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-users/). + + +``` +client.getUsers().getUsers() +``` + +### Arguments + +- queryParams `GetUsersQueryParams` + - Query parameters of getUsers method +- headers `GetUsersHeaders` + - Headers of getUsers method + + +### Returns + +This function returns a value of type `Users`. + +Returns all of the users in the enterprise. + + +## Create user + +Creates a new managed user in an enterprise. This endpoint +is only available to users and applications with the right +admin permissions. + +This operation is performed by calling function `createUser`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-users/). + + +``` +client.getUsers().createUser(new CreateUserRequestBody.Builder(userName).login(userLogin).isPlatformAccessOnly(true).build()) +``` + +### Arguments + +- requestBody `CreateUserRequestBody` + - Request body of createUser method +- queryParams `CreateUserQueryParams` + - Query parameters of createUser method +- headers `CreateUserHeaders` + - Headers of createUser method + + +### Returns + +This function returns a value of type `UserFull`. + +Returns a user object for the newly created user. + + +## Get current user + +Retrieves information about the user who is currently authenticated. + +In the case of a client-side authenticated OAuth 2.0 application +this will be the user who authorized the app. + +In the case of a JWT, server-side authenticated application +this will be the service account that belongs to the application +by default. + +Use the `As-User` header to change who this API call is made on behalf of. + +This operation is performed by calling function `getUserMe`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-users-me/). + + +``` +client.getUsers().getUserMe() +``` + +### Arguments + +- queryParams `GetUserMeQueryParams` + - Query parameters of getUserMe method +- headers `GetUserMeHeaders` + - Headers of getUserMe method + + +### Returns + +This function returns a value of type `UserFull`. + +Returns a single user object. + + +## Get user + +Retrieves information about a user in the enterprise. + +The application and the authenticated user need to +have the permission to look up users in the entire +enterprise. + +This endpoint also returns a limited set of information +for external users who are collaborated on content +owned by the enterprise for authenticated users with the +right scopes. In this case, disallowed fields will return +null instead. + +This operation is performed by calling function `getUserById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-users-id/). + + +``` +client.getUsers().getUserById(user.getId()) +``` + +### Arguments + +- userId `String` + - The ID of the user. Example: "12345" +- queryParams `GetUserByIdQueryParams` + - Query parameters of getUserById method +- headers `GetUserByIdHeaders` + - Headers of getUserById method + + +### Returns + +This function returns a value of type `UserFull`. + +Returns a single user object. + +Not all available fields are returned by default. Use the +[fields](#param-fields) query parameter to explicitly request +any specific fields using the [fields](#get-users-id--request--fields) +parameter. + + +## Update user + +Updates a managed or app user in an enterprise. This endpoint +is only available to users and applications with the right +admin permissions. + +This operation is performed by calling function `updateUserById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-users-id/). + + +``` +client.getUsers().updateUserById(user.getId(), new UpdateUserByIdRequestBody.Builder().name(updatedUserName).build()) +``` + +### Arguments + +- userId `String` + - The ID of the user. Example: "12345" +- requestBody `UpdateUserByIdRequestBody` + - Request body of updateUserById method +- queryParams `UpdateUserByIdQueryParams` + - Query parameters of updateUserById method +- headers `UpdateUserByIdHeaders` + - Headers of updateUserById method + + +### Returns + +This function returns a value of type `UserFull`. + +Returns the updated user object. + + +## Delete user + +Deletes a user. By default this will fail if the user +still owns any content. Move their owned content first +before proceeding, or use the `force` field to delete +the user and their files. + +This operation is performed by calling function `deleteUserById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-users-id/). + + +``` +client.getUsers().deleteUserById(user.getId()) +``` + +### Arguments + +- userId `String` + - The ID of the user. Example: "12345" +- queryParams `DeleteUserByIdQueryParams` + - Query parameters of deleteUserById method +- headers `DeleteUserByIdHeaders` + - Headers of deleteUserById method + + +### Returns + +This function returns a value of type `void`. + +Removes the user and returns an empty response. + + diff --git a/docs/webhooks.md b/docs/webhooks.md new file mode 100644 index 000000000..06989090a --- /dev/null +++ b/docs/webhooks.md @@ -0,0 +1,196 @@ +# WebhooksManager + + +- [List all webhooks](#list-all-webhooks) +- [Create webhook](#create-webhook) +- [Get webhook](#get-webhook) +- [Update webhook](#update-webhook) +- [Remove webhook](#remove-webhook) +- [Validate a webhook message](#validate-a-webhook-message) + +## List all webhooks + +Returns all defined webhooks for the requesting application. + +This API only returns webhooks that are applied to files or folders that are +owned by the authenticated user. This means that an admin can not see webhooks +created by a service account unless the admin has access to those folders, and +vice versa. + +This operation is performed by calling function `getWebhooks`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-webhooks/). + + +``` +client.getWebhooks().getWebhooks() +``` + +### Arguments + +- queryParams `GetWebhooksQueryParams` + - Query parameters of getWebhooks method +- headers `GetWebhooksHeaders` + - Headers of getWebhooks method + + +### Returns + +This function returns a value of type `Webhooks`. + +Returns a list of webhooks. + + +## Create webhook + +Creates a webhook. + +This operation is performed by calling function `createWebhook`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-webhooks/). + + +``` +client.getWebhooks().createWebhook(new CreateWebhookRequestBody(new CreateWebhookRequestBodyTargetField.Builder().id(folder.getId()).type(CreateWebhookRequestBodyTargetTypeField.FOLDER).build(), "https://example.com/new-webhook", Arrays.asList(CreateWebhookRequestBodyTriggersField.FILE_UPLOADED))) +``` + +### Arguments + +- requestBody `CreateWebhookRequestBody` + - Request body of createWebhook method +- headers `CreateWebhookHeaders` + - Headers of createWebhook method + + +### Returns + +This function returns a value of type `Webhook`. + +Returns the new webhook object. + + +## Get webhook + +Retrieves a specific webhook. + +This operation is performed by calling function `getWebhookById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-webhooks-id/). + + +``` +client.getWebhooks().getWebhookById(webhook.getId()) +``` + +### Arguments + +- webhookId `String` + - The ID of the webhook. Example: "3321123" +- headers `GetWebhookByIdHeaders` + - Headers of getWebhookById method + + +### Returns + +This function returns a value of type `Webhook`. + +Returns a webhook object. + + +## Update webhook + +Updates a webhook. + +This operation is performed by calling function `updateWebhookById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-webhooks-id/). + + +``` +client.getWebhooks().updateWebhookById(webhook.getId(), new UpdateWebhookByIdRequestBody.Builder().address("https://example.com/updated-webhook").build()) +``` + +### Arguments + +- webhookId `String` + - The ID of the webhook. Example: "3321123" +- requestBody `UpdateWebhookByIdRequestBody` + - Request body of updateWebhookById method +- headers `UpdateWebhookByIdHeaders` + - Headers of updateWebhookById method + + +### Returns + +This function returns a value of type `Webhook`. + +Returns the new webhook object. + + +## Remove webhook + +Deletes a webhook. + +This operation is performed by calling function `deleteWebhookById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-webhooks-id/). + + +``` +client.getWebhooks().deleteWebhookById(webhook.getId()) +``` + +### Arguments + +- webhookId `String` + - The ID of the webhook. Example: "3321123" +- headers `DeleteWebhookByIdHeaders` + - Headers of deleteWebhookById method + + +### Returns + +This function returns a value of type `void`. + +An empty response will be returned when the webhook +was successfully deleted. + + +## Validate a webhook message + +Validate a webhook message by verifying the signature and the delivery timestamp + +This operation is performed by calling function `validateMessage`. + + + +``` +WebhooksManager.validateMessage(body, headersWithCorrectDatetime, primaryKey, secondaryKey) +``` + +### Arguments + +- body `String` + - The request body of the webhook message +- headers `Map` + - The headers of the webhook message +- primaryKey `String` + - The primary signature to verify the message with +- secondaryKey `String` + - The secondary signature to verify the message with +- maxAge `Integer` + - The maximum age of the message in seconds, defaults to 10 minutes + + +### Returns + +This function returns a value of type `boolean`. + + + + diff --git a/docs/weblinks.md b/docs/weblinks.md new file mode 100644 index 000000000..14e0cefdb --- /dev/null +++ b/docs/weblinks.md @@ -0,0 +1,127 @@ +# WebLinksManager + + +- [Create web link](#create-web-link) +- [Get web link](#get-web-link) +- [Update web link](#update-web-link) +- [Remove web link](#remove-web-link) + +## Create web link + +Creates a web link object within a folder. + +This operation is performed by calling function `createWebLink`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-web-links/). + + +``` +client.getWebLinks().createWebLink(new CreateWebLinkRequestBody.Builder(url, new CreateWebLinkRequestBodyParentField(parent.getId())).name(name).description(description).build()) +``` + +### Arguments + +- requestBody `CreateWebLinkRequestBody` + - Request body of createWebLink method +- headers `CreateWebLinkHeaders` + - Headers of createWebLink method + + +### Returns + +This function returns a value of type `WebLink`. + +Returns the newly created web link object. + + +## Get web link + +Retrieve information about a web link. + +This operation is performed by calling function `getWebLinkById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-web-links-id/). + + +``` +client.getWebLinks().getWebLinkById(weblink.getId()) +``` + +### Arguments + +- webLinkId `String` + - The ID of the web link. Example: "12345" +- headers `GetWebLinkByIdHeaders` + - Headers of getWebLinkById method + + +### Returns + +This function returns a value of type `WebLink`. + +Returns the web link object. + + +## Update web link + +Updates a web link object. + +This operation is performed by calling function `updateWebLinkById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/put-web-links-id/). + + +``` +client.getWebLinks().updateWebLinkById(weblink.getId(), new UpdateWebLinkByIdRequestBody.Builder().name(updatedName).sharedLink(new UpdateWebLinkByIdRequestBodySharedLinkField.Builder().access(UpdateWebLinkByIdRequestBodySharedLinkAccessField.OPEN).password(password).build()).build()) +``` + +### Arguments + +- webLinkId `String` + - The ID of the web link. Example: "12345" +- requestBody `UpdateWebLinkByIdRequestBody` + - Request body of updateWebLinkById method +- headers `UpdateWebLinkByIdHeaders` + - Headers of updateWebLinkById method + + +### Returns + +This function returns a value of type `WebLink`. + +Returns the updated web link object. + + +## Remove web link + +Deletes a web link. + +This operation is performed by calling function `deleteWebLinkById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-web-links-id/). + + +``` +client.getWebLinks().deleteWebLinkById(weblink.getId()) +``` + +### Arguments + +- webLinkId `String` + - The ID of the web link. Example: "12345" +- headers `DeleteWebLinkByIdHeaders` + - Headers of deleteWebLinkById method + + +### Returns + +This function returns a value of type `void`. + +An empty response will be returned when the web link +was successfully deleted. + + diff --git a/docs/workflows.md b/docs/workflows.md new file mode 100644 index 000000000..f3ca3b98b --- /dev/null +++ b/docs/workflows.md @@ -0,0 +1,73 @@ +# WorkflowsManager + + +- [List workflows](#list-workflows) +- [Starts workflow based on request body](#starts-workflow-based-on-request-body) + +## List workflows + +Returns list of workflows that act on a given `folder ID`, and +have a flow with a trigger type of `WORKFLOW_MANUAL_START`. + +You application must be authorized to use the `Manage Box Relay` application +scope within the developer console in to use this endpoint. + +This operation is performed by calling function `getWorkflows`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-workflows/). + + +``` +adminClient.getWorkflows().getWorkflows(new GetWorkflowsQueryParams(workflowFolderId)) +``` + +### Arguments + +- queryParams `GetWorkflowsQueryParams` + - Query parameters of getWorkflows method +- headers `GetWorkflowsHeaders` + - Headers of getWorkflows method + + +### Returns + +This function returns a value of type `Workflows`. + +Returns the workflow. + + +## Starts workflow based on request body + +Initiates a flow with a trigger type of `WORKFLOW_MANUAL_START`. + +You application must be authorized to use the `Manage Box Relay` application +scope within the developer console. + +This operation is performed by calling function `startWorkflow`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-workflows-id-start/). + + +``` +adminClient.getWorkflows().startWorkflow(workflowToRun.getId(), new StartWorkflowRequestBody.Builder(new StartWorkflowRequestBodyFlowField.Builder().type("flow").id(workflowToRun.getFlows().get(0).getId()).build(), Arrays.asList(new StartWorkflowRequestBodyFilesField.Builder().type(StartWorkflowRequestBodyFilesTypeField.FILE).id(workflowFileId).build()), new StartWorkflowRequestBodyFolderField.Builder().type(StartWorkflowRequestBodyFolderTypeField.FOLDER).id(workflowFolderId).build()).type(StartWorkflowRequestBodyTypeField.WORKFLOW_PARAMETERS).build()) +``` + +### Arguments + +- workflowId `String` + - The ID of the workflow. Example: "12345" +- requestBody `StartWorkflowRequestBody` + - Request body of startWorkflow method +- headers `StartWorkflowHeaders` + - Headers of startWorkflow method + + +### Returns + +This function returns a value of type `void`. + +Starts the workflow. + + diff --git a/docs/zipdownloads.md b/docs/zipdownloads.md new file mode 100644 index 000000000..8d8fda3c5 --- /dev/null +++ b/docs/zipdownloads.md @@ -0,0 +1,163 @@ +# ZipDownloadsManager + + +- [Create zip download](#create-zip-download) +- [Download zip archive](#download-zip-archive) +- [Get zip download status](#get-zip-download-status) +- [Download ZIP](#download-zip) + +## Create zip download + +Creates a request to download multiple files and folders as a single `zip` +archive file. This API does not return the archive but instead performs all +the checks to ensure that the user has access to all the items, and then +returns a `download_url` and a `status_url` that can be used to download the +archive. + +The limit for an archive is either the Account's upload limit or +10,000 files, whichever is met first. + +**Note**: Downloading a large file can be +affected by various +factors such as distance, network latency, +bandwidth, and congestion, as well as packet loss +ratio and current server load. +For these reasons we recommend that a maximum ZIP archive +total size does not exceed 25GB. + +This operation is performed by calling function `createZipDownload`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-zip-downloads/). + + +``` +client.getZipDownloads().createZipDownload(new ZipDownloadRequest.Builder(Arrays.asList(new ZipDownloadRequestItemsField(ZipDownloadRequestItemsTypeField.FILE, file1.getId()), new ZipDownloadRequestItemsField(ZipDownloadRequestItemsTypeField.FILE, file2.getId()), new ZipDownloadRequestItemsField(ZipDownloadRequestItemsTypeField.FOLDER, folder1.getId()))).downloadFileName("zip").build()) +``` + +### Arguments + +- requestBody `ZipDownloadRequest` + - Request body of createZipDownload method +- headers `CreateZipDownloadHeaders` + - Headers of createZipDownload method + + +### Returns + +This function returns a value of type `ZipDownload`. + +If the `zip` archive is ready to be downloaded, the API will return a +response that will include a `download_url`, a `status_url`, as well as +any conflicts that might have occurred when creating the request. + + +## Download zip archive + +Returns the contents of a `zip` archive in binary format. This URL does not +require any form of authentication and could be used in a user's browser to +download the archive to a user's device. + +By default, this URL is only valid for a few seconds from the creation of +the request for this archive. Once a download has started it can not be +stopped and resumed, instead a new request for a zip archive would need to +be created. + +The URL of this endpoint should not be considered as fixed. Instead, use +the [Create zip download](e://post_zip_downloads) API to request to create a +`zip` archive, and then follow the `download_url` field in the response to +this endpoint. + +This operation is performed by calling function `getZipDownloadContent`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-zip-downloads-id-content/). + + +``` +client.getZipDownloads().getZipDownloadContent(zipDownload.getDownloadUrl()) +``` + +### Arguments + +- downloadUrl `String` + - The URL that can be used to download created `zip` archive. Example: `https://dl.boxcloud.com/2.0/zip_downloads/29l00nfxDyHOt7RphI9zT_w==nDnZEDjY2S8iEWWCHEEiptFxwoWojjlibZjJ6geuE5xnXENDTPxzgbks_yY=/content` +- headers `GetZipDownloadContentHeaders` + - Headers of getZipDownloadContent method + + +### Returns + +This function returns a value of type `InputStream`. + +Returns the content of the items requested for this download, formatted as +a stream of files and folders in a `zip` archive. + + +## Get zip download status + +Returns the download status of a `zip` archive, allowing an application to +inspect the progress of the download as well as the number of items that +might have been skipped. + +This endpoint can only be accessed once the download has started. +Subsequently this endpoint is valid for 12 hours from the start of the +download. + +The URL of this endpoint should not be considered as fixed. Instead, use +the [Create zip download](e://post_zip_downloads) API to request to create a +`zip` archive, and then follow the `status_url` field in the response to +this endpoint. + +This operation is performed by calling function `getZipDownloadStatus`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-zip-downloads-id-status/). + + +``` +client.getZipDownloads().getZipDownloadStatus(zipDownload.getStatusUrl()) +``` + +### Arguments + +- statusUrl `String` + - The URL that can be used to get the status of the `zip` archive being downloaded. Example: `https://dl.boxcloud.com/2.0/zip_downloads/29l00nfxDyHOt7RphI9zT_w==nDnZEDjY2S8iEWWCHEEiptFxwoWojjlibZjJ6geuE5xnXENDTPxzgbks_yY=/status` +- headers `GetZipDownloadStatusHeaders` + - Headers of getZipDownloadStatus method + + +### Returns + +This function returns a value of type `ZipDownloadStatus`. + +Returns the status of the `zip` archive that is being downloaded. + + +## Download ZIP + +Creates a zip and downloads its content + +This operation is performed by calling function `downloadZip`. + + + +``` +client.getZipDownloads().downloadZip(new ZipDownloadRequest.Builder(Arrays.asList(new ZipDownloadRequestItemsField(ZipDownloadRequestItemsTypeField.FILE, file1.getId()), new ZipDownloadRequestItemsField(ZipDownloadRequestItemsTypeField.FILE, file2.getId()), new ZipDownloadRequestItemsField(ZipDownloadRequestItemsTypeField.FOLDER, folder1.getId()))).downloadFileName("zip").build()) +``` + +### Arguments + +- requestBody `ZipDownloadRequest` + - Zip download request body +- headers `DownloadZipHeaders` + - Headers of zip download method + + +### Returns + +This function returns a value of type `InputStream`. + + + + diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 000000000..183e33d1d --- /dev/null +++ b/gradle.properties @@ -0,0 +1,15 @@ +libraryJavaVersion=1.8 +spotlessVersion=6.2.0 +jacksonAnnotationVersion=2.17.2 +jacksonCoreVersion=2.17.2 +jacksonDatabindVersion=2.17.2 +okhttpVersion=4.12.0 +okioVersion=3.5.0 +jose4jVersion=0.9.6 +bouncyCastleBcprovJdk18onVersion=1.78.1 +bouncyCastleBcpkixJdk18onVersion=1.78.1 +junitApiVersion=5.10.0 +junitEngineVersion=5.10.0 +googleJavaFormatVersion=1.7 +coverallsJacocoVersion=1.2.14 +testRetryVersion=1.5.6 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index d64cd4917707c1f8861d8cb53dd15194d4248596..a4b76b9530d66f5e68d973ea569d8e19de379189 100644 GIT binary patch delta 34592 zcmY(qRX`kF)3u#IAjsf0xCD212@LM;?(PINyAue(f;$XO2=4Cg1P$=#e%|lo zKk1`B>Q#GH)wNd-&cJog!qw7YfYndTeo)CyX{fOHsQjGa<{e=jamMNwjdatD={CN3>GNchOE9OGPIqr)3v>RcKWR3Z zF-guIMjE2UF0Wqk1)21791y#}ciBI*bAenY*BMW_)AeSuM5}vz_~`+1i!Lo?XAEq{TlK5-efNFgHr6o zD>^vB&%3ZGEWMS>`?tu!@66|uiDvS5`?bF=gIq3rkK(j<_TybyoaDHg8;Y#`;>tXI z=tXo~e9{U!*hqTe#nZjW4z0mP8A9UUv1}C#R*@yu9G3k;`Me0-BA2&Aw6f`{Ozan2 z8c8Cs#dA-7V)ZwcGKH}jW!Ja&VaUc@mu5a@CObzNot?b{f+~+212lwF;!QKI16FDS zodx>XN$sk9;t;)maB^s6sr^L32EbMV(uvW%or=|0@U6cUkE`_!<=LHLlRGJx@gQI=B(nn z-GEjDE}*8>3U$n(t^(b^C$qSTI;}6q&ypp?-2rGpqg7b}pyT zOARu2x>0HB{&D(d3sp`+}ka+Pca5glh|c=M)Ujn_$ly^X6&u z%Q4Y*LtB_>i6(YR!?{Os-(^J`(70lZ&Hp1I^?t@~SFL1!m0x6j|NM!-JTDk)%Q^R< z@e?23FD&9_W{Bgtr&CG&*Oer3Z(Bu2EbV3T9FeQ|-vo5pwzwQ%g&=zFS7b{n6T2ZQ z*!H(=z<{D9@c`KmHO&DbUIzpg`+r5207}4D=_P$ONIc5lsFgn)UB-oUE#{r+|uHc^hzv_df zV`n8&qry%jXQ33}Bjqcim~BY1?KZ}x453Oh7G@fA(}+m(f$)TY%7n=MeLi{jJ7LMB zt(mE*vFnep?YpkT_&WPV9*f>uSi#n#@STJmV&SLZnlLsWYI@y+Bs=gzcqche=&cBH2WL)dkR!a95*Ri)JH_4c*- zl4pPLl^as5_y&6RDE@@7342DNyF&GLJez#eMJjI}#pZN{Y8io{l*D+|f_Y&RQPia@ zNDL;SBERA|B#cjlNC@VU{2csOvB8$HzU$01Q?y)KEfos>W46VMh>P~oQC8k=26-Ku)@C|n^zDP!hO}Y z_tF}0@*Ds!JMt>?4y|l3?`v#5*oV-=vL7}zehMON^=s1%q+n=^^Z{^mTs7}*->#YL z)x-~SWE{e?YCarwU$=cS>VzmUh?Q&7?#Xrcce+jeZ|%0!l|H_=D_`77hBfd4Zqk&! zq-Dnt_?5*$Wsw8zGd@?woEtfYZ2|9L8b>TO6>oMh%`B7iBb)-aCefM~q|S2Cc0t9T zlu-ZXmM0wd$!gd-dTtik{bqyx32%f;`XUvbUWWJmpHfk8^PQIEsByJm+@+-aj4J#D z4#Br3pO6z1eIC>X^yKk|PeVwX_4B+IYJyJyc3B`4 zPrM#raacGIzVOexcVB;fcsxS=s1e&V;Xe$tw&KQ`YaCkHTKe*Al#velxV{3wxx}`7@isG zp6{+s)CG%HF#JBAQ_jM%zCX5X;J%-*%&jVI?6KpYyzGbq7qf;&hFprh?E5Wyo=bZ) z8YNycvMNGp1836!-?nihm6jI`^C`EeGryoNZO1AFTQhzFJOA%Q{X(sMYlzABt!&f{ zoDENSuoJQIg5Q#@BUsNJX2h>jkdx4<+ipUymWKFr;w+s>$laIIkfP6nU}r+?J9bZg zUIxz>RX$kX=C4m(zh-Eg$BsJ4OL&_J38PbHW&7JmR27%efAkqqdvf)Am)VF$+U3WR z-E#I9H6^)zHLKCs7|Zs<7Bo9VCS3@CDQ;{UTczoEprCKL3ZZW!ffmZFkcWU-V|_M2 zUA9~8tE9<5`59W-UgUmDFp11YlORl3mS3*2#ZHjv{*-1#uMV_oVTy{PY(}AqZv#wF zJVks)%N6LaHF$$<6p8S8Lqn+5&t}DmLKiC~lE{jPZ39oj{wR&fe*LX-z0m}9ZnZ{U z>3-5Bh{KKN^n5i!M79Aw5eY=`6fG#aW1_ZG;fw7JM69qk^*(rmO{|Z6rXy?l=K=#_ zE-zd*P|(sskasO(cZ5L~_{Mz&Y@@@Q)5_8l<6vB$@226O+pDvkFaK8b>%2 zfMtgJ@+cN@w>3)(_uR;s8$sGONbYvoEZ3-)zZk4!`tNzd<0lwt{RAgplo*f@Z)uO` zzd`ljSqKfHJOLxya4_}T`k5Ok1Mpo#MSqf~&ia3uIy{zyuaF}pV6 z)@$ZG5LYh8Gge*LqM_|GiT1*J*uKes=Oku_gMj&;FS`*sfpM+ygN&yOla-^WtIU#$ zuw(_-?DS?6DY7IbON7J)p^IM?N>7x^3)(7wR4PZJu(teex%l>zKAUSNL@~{czc}bR z)I{XzXqZBU3a;7UQ~PvAx8g-3q-9AEd}1JrlfS8NdPc+!=HJ6Bs( zCG!0;e0z-22(Uzw>hkEmC&xj?{0p|kc zM}MMXCF%RLLa#5jG`+}{pDL3M&|%3BlwOi?dq!)KUdv5__zR>u^o|QkYiqr(m3HxF z6J*DyN#Jpooc$ok=b7{UAVM@nwGsr6kozSddwulf5g1{B=0#2)zv!zLXQup^BZ4sv*sEsn)+MA?t zEL)}3*R?4(J~CpeSJPM!oZ~8;8s_=@6o`IA%{aEA9!GELRvOuncE`s7sH91 zmF=+T!Q6%){?lJn3`5}oW31(^Of|$r%`~gT{eimT7R~*Mg@x+tWM3KE>=Q>nkMG$U za7r>Yz2LEaA|PsMafvJ(Y>Xzha?=>#B!sYfVob4k5Orb$INFdL@U0(J8Hj&kgWUlO zPm+R07E+oq^4f4#HvEPANGWLL_!uF{nkHYE&BCH%l1FL_r(Nj@M)*VOD5S42Gk-yT z^23oAMvpA57H(fkDGMx86Z}rtQhR^L!T2iS!788E z+^${W1V}J_NwdwdxpXAW8}#6o1(Uu|vhJvubFvQIH1bDl4J4iDJ+181KuDuHwvM?` z%1@Tnq+7>p{O&p=@QT}4wT;HCb@i)&7int<0#bj8j0sfN3s6|a(l7Bj#7$hxX@~iP z1HF8RFH}irky&eCN4T94VyKqGywEGY{Gt0Xl-`|dOU&{Q;Ao;sL>C6N zXx1y^RZSaL-pG|JN;j9ADjo^XR}gce#seM4QB1?S`L*aB&QlbBIRegMnTkTCks7JU z<0(b+^Q?HN1&$M1l&I@>HMS;!&bb()a}hhJzsmB?I`poqTrSoO>m_JE5U4=?o;OV6 zBZjt;*%1P>%2{UL=;a4(aI>PRk|mr&F^=v6Fr&xMj8fRCXE5Z2qdre&;$_RNid5!S zm^XiLK25G6_j4dWkFqjtU7#s;b8h?BYFxV?OE?c~&ME`n`$ix_`mb^AWr+{M9{^^Rl;~KREplwy2q;&xe zUR0SjHzKVYzuqQ84w$NKVPGVHL_4I)Uw<$uL2-Ml#+5r2X{LLqc*p13{;w#E*Kwb*1D|v?e;(<>vl@VjnFB^^Y;;b3 z=R@(uRj6D}-h6CCOxAdqn~_SG=bN%^9(Ac?zfRkO5x2VM0+@_qk?MDXvf=@q_* z3IM@)er6-OXyE1Z4sU3{8$Y$>8NcnU-nkyWD&2ZaqX1JF_JYL8y}>@V8A5%lX#U3E zet5PJM`z79q9u5v(OE~{by|Jzlw2<0h`hKpOefhw=fgLTY9M8h+?37k@TWpzAb2Fc zQMf^aVf!yXlK?@5d-re}!fuAWu0t57ZKSSacwRGJ$0uC}ZgxCTw>cjRk*xCt%w&hh zoeiIgdz__&u~8s|_TZsGvJ7sjvBW<(C@}Y%#l_ID2&C`0;Eg2Z+pk;IK}4T@W6X5H z`s?ayU-iF+aNr5--T-^~K~p;}D(*GWOAYDV9JEw!w8ZYzS3;W6*_`#aZw&9J ziXhBKU3~zd$kKzCAP-=t&cFDeQR*_e*(excIUxKuD@;-twSlP6>wWQU)$|H3Cy+`= z-#7OW!ZlYzZxkdQpfqVDFU3V2B_-eJS)Fi{fLtRz!K{~7TR~XilNCu=Z;{GIf9KYz zf3h=Jo+1#_s>z$lc~e)l93h&RqW1VHYN;Yjwg#Qi0yzjN^M4cuL>Ew`_-_wRhi*!f zLK6vTpgo^Bz?8AsU%#n}^EGigkG3FXen3M;hm#C38P@Zs4{!QZPAU=m7ZV&xKI_HWNt90Ef zxClm)ZY?S|n**2cNYy-xBlLAVZ=~+!|7y`(fh+M$#4zl&T^gV8ZaG(RBD!`3?9xcK zp2+aD(T%QIgrLx5au&TjG1AazI;`8m{K7^!@m>uGCSR;Ut{&?t%3AsF{>0Cm(Kf)2 z?4?|J+!BUg*P~C{?mwPQ#)gDMmro20YVNsVx5oWQMkzQ? zsQ%Y>%7_wkJqnSMuZjB9lBM(o zWut|B7w48cn}4buUBbdPBW_J@H7g=szrKEpb|aE>!4rLm+sO9K%iI75y~2HkUo^iw zJ3se$8$|W>3}?JU@3h@M^HEFNmvCp|+$-0M?RQ8SMoZ@38%!tz8f8-Ptb@106heiJ z^Bx!`0=Im z1!NUhO=9ICM*+||b3a7w*Y#5*Q}K^ar+oMMtekF0JnO>hzHqZKH0&PZ^^M(j;vwf_ z@^|VMBpcw8;4E-9J{(u7sHSyZpQbS&N{VQ%ZCh{c1UA5;?R} z+52*X_tkDQ(s~#-6`z4|Y}3N#a&dgP4S_^tsV=oZr4A1 zaSoPN1czE(UIBrC_r$0HM?RyBGe#lTBL4~JW#A`P^#0wuK)C-2$B6TvMi@@%K@JAT_IB^T7Zfqc8?{wHcSVG_?{(wUG%zhCm=%qP~EqeqKI$9UivF zv+5IUOs|%@ypo6b+i=xsZ=^G1yeWe)z6IX-EC`F=(|_GCNbHbNp(CZ*lpSu5n`FRA zhnrc4w+Vh?r>her@Ba_jv0Omp#-H7avZb=j_A~B%V0&FNi#!S8cwn0(Gg-Gi_LMI{ zCg=g@m{W@u?GQ|yp^yENd;M=W2s-k7Gw2Z(tsD5fTGF{iZ%Ccgjy6O!AB4x z%&=6jB7^}pyftW2YQpOY1w@%wZy%}-l0qJlOSKZXnN2wo3|hujU+-U~blRF!^;Tan z0w;Srh0|Q~6*tXf!5-rCD)OYE(%S|^WTpa1KHtpHZ{!;KdcM^#g8Z^+LkbiBHt85m z;2xv#83lWB(kplfgqv@ZNDcHizwi4-8+WHA$U-HBNqsZ`hKcUI3zV3d1ngJP-AMRET*A{> zb2A>Fk|L|WYV;Eu4>{a6ESi2r3aZL7x}eRc?cf|~bP)6b7%BnsR{Sa>K^0obn?yiJ zCVvaZ&;d_6WEk${F1SN0{_`(#TuOOH1as&#&xN~+JDzX(D-WU_nLEI}T_VaeLA=bc zl_UZS$nu#C1yH}YV>N2^9^zye{rDrn(rS99>Fh&jtNY7PP15q%g=RGnxACdCov47= zwf^9zfJaL{y`R#~tvVL#*<`=`Qe zj_@Me$6sIK=LMFbBrJps7vdaf_HeX?eC+P^{AgSvbEn?n<}NDWiQGQG4^ZOc|GskK z$Ve2_n8gQ-KZ=s(f`_X!+vM5)4+QmOP()2Fe#IL2toZBf+)8gTVgDSTN1CkP<}!j7 z0SEl>PBg{MnPHkj4wj$mZ?m5x!1ePVEYI(L_sb0OZ*=M%yQb?L{UL(2_*CTVbRxBe z@{)COwTK1}!*CK0Vi4~AB;HF(MmQf|dsoy(eiQ>WTKcEQlnKOri5xYsqi61Y=I4kzAjn5~{IWrz_l))|Ls zvq7xgQs?Xx@`N?f7+3XKLyD~6DRJw*uj*j?yvT3}a;(j_?YOe%hUFcPGWRVBXzpMJ zM43g6DLFqS9tcTLSg=^&N-y0dXL816v&-nqC0iXdg7kV|PY+js`F8dm z2PuHw&k+8*&9SPQ6f!^5q0&AH(i+z3I7a?8O+S5`g)>}fG|BM&ZnmL;rk)|u{1!aZ zEZHpAMmK_v$GbrrWNP|^2^s*!0waLW=-h5PZa-4jWYUt(Hr@EA(m3Mc3^uDxwt-me^55FMA9^>hpp26MhqjLg#^Y7OIJ5%ZLdNx&uDgIIqc zZRZl|n6TyV)0^DDyVtw*jlWkDY&Gw4q;k!UwqSL6&sW$B*5Rc?&)dt29bDB*b6IBY z6SY6Unsf6AOQdEf=P1inu6(6hVZ0~v-<>;LAlcQ2u?wRWj5VczBT$Op#8IhppP-1t zfz5H59Aa~yh7EN;BXJsLyjkjqARS5iIhDVPj<=4AJb}m6M@n{xYj3qsR*Q8;hVxDyC4vLI;;?^eENOb5QARj#nII5l$MtBCI@5u~(ylFi$ zw6-+$$XQ}Ca>FWT>q{k)g{Ml(Yv=6aDfe?m|5|kbGtWS}fKWI+})F6`x@||0oJ^(g|+xi zqlPdy5;`g*i*C=Q(aGeDw!eQg&w>UUj^{o?PrlFI=34qAU2u@BgwrBiaM8zoDTFJ< zh7nWpv>dr?q;4ZA?}V}|7qWz4W?6#S&m>hs4IwvCBe@-C>+oohsQZ^JC*RfDRm!?y zS4$7oxcI|##ga*y5hV>J4a%HHl^t$pjY%caL%-FlRb<$A$E!ws?8hf0@(4HdgQ!@> zds{&g$ocr9W4I84TMa9-(&^_B*&R%^=@?Ntxi|Ejnh;z=!|uVj&3fiTngDPg=0=P2 zB)3#%HetD84ayj??qrxsd9nqrBem(8^_u_UY{1@R_vK-0H9N7lBX5K(^O2=0#TtUUGSz{ z%g>qU8#a$DyZ~EMa|8*@`GOhCW3%DN%xuS91T7~iXRr)SG`%=Lfu%U~Z_`1b=lSi?qpD4$vLh$?HU6t0MydaowUpb zQr{>_${AMesCEffZo`}K0^~x>RY_ZIG{(r39MP>@=aiM@C;K)jUcfQV8#?SDvq>9D zI{XeKM%$$XP5`7p3K0T}x;qn)VMo>2t}Ib(6zui;k}<<~KibAb%p)**e>ln<=qyWU zrRDy|UXFi9y~PdEFIAXejLA{K)6<)Q`?;Q5!KsuEw({!#Rl8*5_F{TP?u|5(Hijv( ztAA^I5+$A*+*e0V0R~fc{ET-RAS3suZ}TRk3r)xqj~g_hxB`qIK5z(5wxYboz%46G zq{izIz^5xW1Vq#%lhXaZL&)FJWp0VZNO%2&ADd?+J%K$fM#T_Eke1{dQsx48dUPUY zLS+DWMJeUSjYL453f@HpRGU6Dv)rw+-c6xB>(=p4U%}_p>z^I@Ow9`nkUG21?cMIh9}hN?R-d)*6%pr6d@mcb*ixr7 z)>Lo<&2F}~>WT1ybm^9UO{6P9;m+fU^06_$o9gBWL9_}EMZFD=rLJ~&e?fhDnJNBI zKM=-WR6g7HY5tHf=V~6~QIQ~rakNvcsamU8m28YE=z8+G7K=h%)l6k zmCpiDInKL6*e#)#Pt;ANmjf`8h-nEt&d}(SBZMI_A{BI#ck-_V7nx)K9_D9K-p@?Zh81#b@{wS?wCcJ%og)8RF*-0z+~)6f#T` zWqF7_CBcnn=S-1QykC*F0YTsKMVG49BuKQBH%WuDkEy%E?*x&tt%0m>>5^HCOq|ux zuvFB)JPR-W|%$24eEC^AtG3Gp4qdK%pjRijF5Sg3X}uaKEE z-L5p5aVR!NTM8T`4|2QA@hXiLXRcJveWZ%YeFfV%mO5q#($TJ`*U>hicS+CMj%Ip# zivoL;dd*araeJK9EA<(tihD50FHWbITBgF9E<33A+eMr2;cgI3Gg6<-2o|_g9|> zv5}i932( zYfTE9?4#nQhP@a|zm#9FST2 z!y+p3B;p>KkUzH!K;GkBW}bWssz)9b>Ulg^)EDca;jDl+q=243BddS$hY^fC6lbpM z(q_bo4V8~eVeA?0LFD6ZtKcmOH^75#q$Eo%a&qvE8Zsqg=$p}u^|>DSWUP5i{6)LAYF4E2DfGZuMJ zMwxxmkxQf}Q$V3&2w|$`9_SQS^2NVbTHh;atB>=A%!}k-f4*i$X8m}Ni^ppZXk5_oYF>Gq(& z0wy{LjJOu}69}~#UFPc;$7ka+=gl(FZCy4xEsk);+he>Nnl>hb5Ud-lj!CNicgd^2 z_Qgr_-&S7*#nLAI7r()P$`x~fy)+y=W~6aNh_humoZr7MWGSWJPLk}$#w_1n%(@? z3FnHf1lbxKJbQ9c&i<$(wd{tUTX6DAKs@cXIOBv~!9i{wD@*|kwfX~sjKASrNFGvN zrFc=!0Bb^OhR2f`%hrp2ibv#KUxl)Np1aixD9{^o=)*U%n%rTHX?FSWL^UGpHpY@7 z74U}KoIRwxI#>)Pn4($A`nw1%-D}`sGRZD8Z#lF$6 zOeA5)+W2qvA%m^|$WluUU-O+KtMqd;Pd58?qZj})MbxYGO<{z9U&t4D{S2G>e+J9K ztFZ?}ya>SVOLp9hpW)}G%kTrg*KXXXsLkGdgHb+R-ZXqdkdQC0_)`?6mqo8(EU#d( zy;u&aVPe6C=YgCRPV!mJ6R6kdY*`e+VGM~`VtC>{k27!9vAZT)x2~AiX5|m1Rq}_= z;A9LX^nd$l-9&2%4s~p5r6ad-siV`HtxKF}l&xGSYJmP=z!?Mlwmwef$EQq~7;#OE z)U5eS6dB~~1pkj#9(}T3j!((8Uf%!W49FfUAozijoxInUE7z`~U3Y^}xc3xp){#9D z<^Tz2xw}@o@fdUZ@hnW#dX6gDOj4R8dV}Dw`u!h@*K)-NrxT8%2`T}EvOImNF_N1S zy?uo6_ZS>Qga4Xme3j#aX+1qdFFE{NT0Wfusa$^;eL5xGE_66!5_N8!Z~jCAH2=${ z*goHjl|z|kbmIE{cl-PloSTtD+2=CDm~ZHRgXJ8~1(g4W=1c3=2eF#3tah7ho`zm4 z05P&?nyqq$nC?iJ-nK_iBo=u5l#|Ka3H7{UZ&O`~t-=triw=SE7ynzMAE{Mv-{7E_ zViZtA(0^wD{iCCcg@c{54Ro@U5p1QZq_XlEGtdBAQ9@nT?(zLO0#)q55G8_Ug~Xnu zR-^1~hp|cy&52iogG@o?-^AD8Jb^;@&Ea5jEicDlze6%>?u$-eE};bQ`T6@(bED0J zKYtdc?%9*<<$2LCBzVx9CA4YV|q-qg*-{yQ;|0=KIgI6~z0DKTtajw2Oms3L zn{C%{P`duw!(F@*P)lFy11|Z&x`E2<=$Ln38>UR~z6~za(3r;45kQK_^QTX%!s zNzoIFFH8|Y>YVrUL5#mgA-Jh>j7)n)5}iVM4%_@^GSwEIBA2g-;43* z*)i7u*xc8jo2z8&=8t7qo|B-rsGw)b8UXnu`RgE4u!(J8yIJi(5m3~aYsADcfZ!GG zzqa7p=sg`V_KjiqI*LA-=T;uiNRB;BZZ)~88 z`C%p8%hIev2rxS12@doqsrjgMg3{A&N8A?%Ui5vSHh7!iC^ltF&HqG~;=16=h0{ygy^@HxixUb1XYcR36SB}}o3nxu z_IpEmGh_CK<+sUh@2zbK9MqO!S5cao=8LSQg0Zv4?ju%ww^mvc0WU$q@!oo#2bv24 z+?c}14L2vlDn%Y0!t*z=$*a!`*|uAVu&NO!z_arim$=btpUPR5XGCG0U3YU`v>yMr z^zmTdcEa!APX zYF>^Q-TP11;{VgtMqC}7>B^2gN-3KYl33gS-p%f!X<_Hr?`rG8{jb9jmuQA9U;BeG zHj6Pk(UB5c6zwX%SNi*Py*)gk^?+729$bAN-EUd*RKN7{CM4`Q65a1qF*-QWACA&m zrT)B(M}yih{2r!Tiv5Y&O&=H_OtaHUz96Npo_k0eN|!*s2mLe!Zkuv>^E8Xa43ZwH zOI058AZznYGrRJ+`*GmZzMi6yliFmGMge6^j?|PN%ARns!Eg$ufpcLc#1Ns!1@1 zvC7N8M$mRgnixwEtX{ypBS^n`k@t2cCh#_6L6WtQb8E~*Vu+Rr)YsKZRX~hzLG*BE zaeU#LPo?RLm(Wzltk79Jd1Y$|6aWz1)wf1K1RtqS;qyQMy@H@B805vQ%wfSJB?m&&=^m4i* zYVH`zTTFbFtNFkAI`Khe4e^CdGZw;O0 zqkQe2|NG_y6D%h(|EZNf&77_!NU%0y={^E=*gKGQ=)LdKPM3zUlM@otH2X07Awv8o zY8Y7a1^&Yy%b%m{mNQ5sWNMTIq96Wtr>a(hL>Qi&F(ckgKkyvM0IH<_}v~Fv-GqDapig=3*ZMOx!%cYY)SKzo7ECyem z9Mj3C)tCYM?C9YIlt1?zTJXNOo&oVxu&uXKJs7i+j8p*Qvu2PAnY}b`KStdpi`trk ztAO}T8eOC%x)mu+4ps8sYZ=vYJp16SVWEEgQyFKSfWQ@O5id6GfL`|2<}hMXLPszS zgK>NWOoR zBRyKeUPevpqKKShD|MZ`R;~#PdNMB3LWjqFKNvH9k+;(`;-pyXM55?qaji#nl~K8m z_MifoM*W*X9CQiXAOH{cZcP0;Bn10E1)T@62Um>et2ci!J2$5-_HPy(AGif+BJpJ^ ziHWynC_%-NlrFY+(f7HyVvbDIM$5ci_i3?22ZkF>Y8RPBhgx-7k3M2>6m5R24C|~I z&RPh9xpMGzhN4bii*ryWaN^d(`0 zTOADlU)g`1p+SVMNLztd)c+;XjXox(VHQwqzu>FROvf0`s&|NEv26}(TAe;@=FpZq zaVs6mp>W0rM3Qg*6x5f_bPJd!6dQGmh?&v0rpBNfS$DW-{4L7#_~-eA@7<2BsZV=X zow){3aATmLZOQrs>uzDkXOD=IiX;Ue*B(^4RF%H zeaZ^*MWn4tBDj(wj114r(`)P96EHq4th-;tWiHhkp2rDlrklX}I@ib-nel0slFoQO zOeTc;Rh7sMIebO`1%u)=GlEj+7HU;c|Nj>2j)J-kpR)s3#+9AiB zd$hAk6;3pu9(GCR#)#>aCGPYq%r&i02$0L9=7AlIGYdlUO5%eH&M!ZWD&6^NBAj0Y9ZDcPg@r@8Y&-}e!aq0S(`}NuQ({;aigCPnq75U9cBH&Y7 ze)W0aD>muAepOKgm7uPg3Dz7G%)nEqTUm_&^^3(>+eEI;$ia`m>m0QHEkTt^=cx^JsBC68#H(3zc~Z$E9I)oSrF$3 zUClHXhMBZ|^1ikm3nL$Z@v|JRhud*IhOvx!6X<(YSX(9LG#yYuZeB{=7-MyPF;?_8 zy2i3iVKG2q!=JHN>~!#Bl{cwa6-yB@b<;8LSj}`f9pw7#x3yTD>C=>1S@H)~(n_K4 z2-yr{2?|1b#lS`qG@+823j;&UE5|2+EdU4nVw5=m>o_gj#K>>(*t=xI7{R)lJhLU{ z4IO6!x@1f$aDVIE@1a0lraN9!(j~_uGlks)!&davUFRNYHflp<|ENwAxsp~4Hun$Q z$w>@YzXp#VX~)ZP8`_b_sTg(Gt7?oXJW%^Pf0UW%YM+OGjKS}X`yO~{7WH6nX8S6Z ztl!5AnM2Lo*_}ZLvo%?iV;D2z>#qdpMx*xY2*GGlRzmHCom`VedAoR=(A1nO)Y>;5 zCK-~a;#g5yDgf7_phlkM@)C8s!xOu)N2UnQhif-v5kL$*t=X}L9EyBRq$V(sI{90> z=ghTPGswRVbTW@dS2H|)QYTY&I$ljbpNPTc_T|FEJkSW7MV!JM4I(ksRqQ8)V5>}v z2Sf^Z9_v;dKSp_orZm09jb8;C(vzFFJgoYuWRc|Tt_&3k({wPKiD|*m!+za$(l*!gNRo{xtmqjy1=kGzFkTH=Nc>EL@1Um0BiN1)wBO$i z6rG={bRcT|%A3s3xh!Bw?=L&_-X+6}L9i~xRj2}-)7fsoq0|;;PS%mcn%_#oV#kAp zGw^23c8_0~ ze}v9(p};6HM0+qF5^^>BBEI3d=2DW&O#|(;wg}?3?uO=w+{*)+^l_-gE zSw8GV=4_%U4*OU^hibDV38{Qb7P#Y8zh@BM9pEM_o2FuFc2LWrW2jRRB<+IE)G=Vx zuu?cp2-`hgqlsn|$nx@I%TC!`>bX^G00_oKboOGGXLgyLKXoo$^@L7v;GWqfUFw3< zekKMWo0LR;TaFY}Tt4!O$3MU@pqcw!0w0 zA}SnJ6Lb597|P5W8$OsEHTku2Kw9y4V=hx*K%iSn!#LW9W#~OiWf^dXEP$^2 zaok=UyGwy3GRp)bm6Gqr>8-4h@3=2`Eto2|JE6Sufh?%U6;ut1v1d@#EfcQP2chCt z+mB{Bk5~()7G>wM3KYf7Xh?LGbwg1uWLotmc_}Z_o;XOUDyfU?{9atAT$={v82^w9 z(MW$gINHt4xB3{bdbhRR%T}L?McK?!zkLK3(e>zKyei(yq%Nsijm~LV|9mll-XHavFcc$teX7v);H>=oN-+E_Q{c|! zp
    JV~-9AH}jxf6IF!PxrB9is{_9s@PYth^`pb%DkwghLdAyDREz(csf9)HcVRq z+2Vn~>{(S&_;bq_qA{v7XbU?yR7;~JrLfo;g$Lkm#ufO1P`QW_`zWW+4+7xzQZnO$ z5&GyJs4-VGb5MEDBc5=zxZh9xEVoY(|2yRv&!T7LAlIs@tw+4n?v1T8M>;hBv}2n) zcqi+>M*U@uY>4N3eDSAH2Rg@dsl!1py>kO39GMP#qOHipL~*cCac2_vH^6x@xmO|E zkWeyvl@P$2Iy*mCgVF+b{&|FY*5Ygi8237i)9YW#Fp& z?TJTQW+7U)xCE*`Nsx^yaiJ0KSW}}jc-ub)8Z8x(|K7G>`&l{Y&~W=q#^4Gf{}aJ%6kLXsmv6cr=Hi*uB`V26;dr4C$WrPnHO>g zg1@A%DvIWPDtXzll39kY6#%j;aN7grYJP9AlJgs3FnC?crv$wC7S4_Z?<_s0j;MmE z75yQGul2=bY%`l__1X3jxju2$Ws%hNv75ywfAqjgFO7wFsFDOW^)q2%VIF~WhwEW0 z45z^+r+}sJ{q+>X-w(}OiD(!*&cy4X&yM`!L0Fe+_RUfs@=J{AH#K~gArqT=#DcGE z!FwY(h&+&811rVCVoOuK)Z<-$EX zp`TzcUQC256@YWZ*GkE@P_et4D@qpM92fWA6c$MV=^qTu7&g)U?O~-fUR&xFqNiY1 zRd=|zUs_rmFZhKI|H}dcKhy%Okl(#y#QuMi81zsY56Y@757xBQqDNkd+XhLQhp2BB zBF^aJ__D676wLu|yYo6jNJNw^B+Ce;DYK!f$!dNs1*?D^97u^jKS++7S z5qE%zG#HY-SMUn^_yru=T6v`)CM%K<>_Z>tPe|js`c<|y7?qol&)C=>uLWkg5 zmzNcSAG_sL)E9or;i+O}tY^70@h7+=bG1;YDlX{<4zF_?{)K5B&?^tKZ6<$SD%@>F zY0cl2H7)%zKeDX%Eo7`ky^mzS)s;842cP{_;dzFuyd~Npb4u!bwkkhf8-^C2e3`q8>MuPhgiv0VxHxvrN9_`rJv&GX0fWz-L-Jg^B zrTsm>)-~j0F1sV=^V?UUi{L2cp%YwpvHwwLaSsCIrGI#({{QfbgDxMqR1Z0TcrO*~ z;`z(A$}o+TN+QHHSvsC2`@?YICZ>s8&hY;SmOyF0PKaZIauCMS*cOpAMn@6@g@rZ+ z+GT--(uT6#mL8^*mMf7BE`(AVj?zLY-2$aI%TjtREu}5AWdGlcWLvfz(%wn72tGczwUOgGD3RXpWs%onuMxs9!*D^698AupW z9qTDQu4`!>n|)e35b4t+d(+uOx+>VC#nXCiRex_Fq4fu1f`;C`>g;IuS%6KgEa3NK z<8dsc`?SDP0g~*EC3QU&OZH-QpPowNEUd4rJF9MGAgb@H`mjRGq;?wFRDVQY7mMpm z3yoB7eQ!#O#`XIBDXqU>Pt~tCe{Q#awQI4YOm?Q3muUO6`nZ4^zi5|(wb9R)oyarG?mI|I@A0U!+**&lW7_bYKF2biJ4BDbi~*$h?kQ`rCC(LG-oO(nPxMU zfo#Z#n8t)+3Ph87roL-y2!!U4SEWNCIM16i~-&+f55;kxC2bL$FE@jH{5p$Z8gxOiP%Y`hTTa_!v{AKQz&- ztE+dosg?pN)leO5WpNTS>IKdEEn21zMm&?r28Q52{$e2tGL44^Ys=^?m6p=kOy!gJ zWm*oFGKS@mqj~{|SONA*T2)3XC|J--en+NrnPlNhAmXMqmiXs^*154{EVE{Uc%xqF zrbcQ~sezg;wQkW;dVezGrdC0qf!0|>JG6xErVZ8_?B(25cZrr-sL&=jKwW>zKyYMY zdRn1&@Rid0oIhoRl)+X4)b&e?HUVlOtk^(xldhvgf^7r+@TXa!2`LC9AsB@wEO&eU2mN) z(2^JsyA6qfeOf%LSJx?Y8BU1m=}0P;*H3vVXSjksEcm>#5Xa`}jj5D2fEfH2Xje-M zUYHgYX}1u_p<|fIC+pI5g6KGn%JeZPZ-0!!1})tOab>y=S>3W~x@o{- z6^;@rhHTgRaoor06T(UUbrK4+@5bO?r=!vckDD+nwK+>2{{|{u4N@g}r(r z#3beB`G2`XrO(iR6q2H8yS9v;(z-=*`%fk%CVpj%l#pt?g4*)yP|xS-&NBKOeW5_5 zXkVr;A)BGS=+F;j%O|69F0Lne?{U*t=^g?1HKy7R)R*<>%xD>K zelPqrp$&BF_?^mZ&U<*tWDIuhrw3HJj~--_0)GL8jxYs2@VLev2$;`DG7X6UI9Z)P zq|z`w46OtLJ1=V3U8B%9@FSsRP+Ze)dQ@;zLq|~>(%J5G-n}dRZ6&kyH|cQ!{Vil( zBUvQvj*~0_A1JCtaGZW|?6>KdP}!4A%l>(MnVv>A%d;!|qA>*t&-9-JFU4GZhn`jG z8GrgNsQJ%JSLgNFP`5;(=b+M9GO8cg+ygIz^4i?=eR@IY>IcG?+on?I4+Y47p-DB8 zjrlar)KtoI{#kBcqL&4?ub@Df+zMt*USCD_T8O$J$~oMrC6*TP7j@H5trGV$r0P6I zV7EZ{MWH`5`DrX*wx&`d;C`jjYoc_PMSqNB290QXlRn_4*F{5hBmEE4DHBC$%EsbR zQGb7p;)4MAjY@Bd*2F3L?<8typrrUykb$JXr#}c1|BL*QF|18D{ZTYBZ_=M&Ec6IS ziv{(%>CbeR(9Aog)}hA!xSm1p@K?*ce*-6R%odqGGk?I4@6q3dmHq)4jbw+B?|%#2 zbX;ioJ_tcGO*#d0v?il&mPAi+AKQvsQnPf*?8tX6qfOPsf-ttT+RZX6Dm&RF6beP3 zdotcJDI1Kn7wkq=;Au=BIyoGfXCNVjCKTj+fxU@mxp*d*7aHec0GTUPt`xbN8x%fe zikv87g)u~0cpQaf zd<7Mi9GR0B@*S&l&9pCl-HEaNX?ZY8MoXaYHGDf}733;(88<{E%)< z^k)X#To3=_O2$lKPsc9P-MkDAhJ~{x<=xTJw2aRY5SSZIA6Gij5cFzsGk@S)4@C65 zwN^6CwOI9`5c(3?cqRrH_gSq+ox(wtSBZc-Jr5N%^t3N&WB|TT_i4!i3lxwI=*p)Y zn7fb%HlXhf8OGjhzswj!=Crh~YwQYb+p~UaV@s%YPgiH_);$|Gx3{{v5v?7s<)+cb zxlT0Bb!OwtE!K>gx6c4v^M9mL0F=It*NfQL0J0O$RCpt746=H1pPNG#AZC|Y`SZt( zG`yKMBPV_0I|S?}?$t7GU%;*_39bCGO*x3+R|<=9WNe!8jH- zw5ZJS(k@wws?6w1rejjyZ>08aizReJBo%IRb3b3|VuR6Uo&sL?L5j(isqs%CYe@@b zIID7kF*hyqmy+7D(SPa^xNVm54hVF3{;4I9+mh)F22+_YFP>ux`{F)8l;uRX>1-cH zXqPnGsFRr|UZwJtjG=1x2^l_tF-mS0@sdC38kMi$kDw8W#zceJowZuV=@agQ_#l5w znB`g+sb1mhkrXh$X4y(<-CntwmVwah5#oA_p-U<_5$ zGDc%(b6Z=!QQ%w6YZS&HWovIaN8wMw1B-9N+Vyl=>(yIgy}BrAhpc2}8YL-i*_KY7 ztV+`WKcC?{RKA@t3pu*BtqZJFSd2d)+cc07-Z#4x&7Dnd{yg6)lz@`z%=Sl-`9Z~*io zck_Lshk9JRJs=t>1jmKB~>`6+(J z@(S}J2Q{Q{a-ASTnIViecW(FIagWQ%G41y?zS)gpooM z@c<2$7TykMs4LH*UUYfts(!Ncn`?eZl}f zg)wx@0N0J(X(OJ^=$2()HLn)=Cn~=zx(_9(B@L04%{F_Zn}5!~5Ec5D4ibN6G_AD} zzxY^T_JF##qM8~B%aZ1OC}X^kQu`JDwaRaZnt!YcRrP7fq>eIihJW1UY{Xhkn>NdX zKy|<6-wD*;GtE08sLYryW<-e)?7k;;B>e$u?v!QhU9jPK6*Y$o8{Tl`N`+QvG ze}71rVC)fis9TZ<>EJ2JR`80F^2rkB7dihm$1Ta2bR?&wz>e`)w<4)1{3SfS$uKfV z3R=JT!eY+i7+IIfl3SIgiR|KvBWH*s;OEuF5tq~wLOB^xP_Dc7-BbNjpC|dHYJrZCWj-ucmv4;YS~eN!LvwER`NCd`R4Xh5%zP$V^nU>j zdOkNvbyB_117;mhiTiL_TBcy&Grvl->zO_SlCCX5dFLd`q7x-lBj*&ykj^ zR3@z`y0<8XlBHEhlCk7IV=ofWsuF|d)ECS}qnWf?I#-o~5=JFQM8u+7I!^>dg|wEb zbu4wp#rHGayeYTT>MN+(x3O`nFMpOSERQdpzQv2ui|Z5#Qd zB(+GbXda|>CW55ky@mG13K0wfXAm8yoek3MJG!Hujn$5)Q(6wWb-l4ogu?jj2Q|srw?r z-TG0$OfmDx%(qcX`Fc`D!WS{3dN*V%SZas3$vFXQy98^y3oT~8Yv>$EX0!uiRae?m z_}pvK=rBy5Z_#_!8QEmix_@_*w8E8(2{R5kf^056;GzbLOPr2uqFYaG6Fkrv($n_51%7~QN<>9$WdjE=H}>(a41KM%d2x#e@K3{W|+=-h*mR&2C01e z2sMP;YjU)9h+1kxOKJ+g*W=&D@=$q4jF%@HyRtCwOmEmpS|Rr9V_2br*NOd^ z4LN#oxd5yL=#MPWN{9Vo^X-Wo{a7IF2hvYWB%eUCkAZq+=NQ=iLI9?~@ zr+|ky4Rgm7yEDuc2dIe941~qc8V_$7;?7|XLk6+nbrh}e&Tt20EWZ@dRFDoYbwhkn zjJ$th974Z0F${3wtVLk_Ty;*J-Pi zP0IwrAT!Lj34GcoSB8g?IKPt%!iLD-$s+f_eZg@9q!2Si?`F#fUqY`!{bM0O7V^G%VB|A zyMM>SKNg|KKP}+>>?n6|5MlPK3Vto&;nxppD;yk@z4DXPm0z9hxb+U&Fv4$y&G>q= z799L0$A2&#>CfSgCuu$+9W>s<-&yq3!C{F9N!{d?I|g|+Qd9@*d;GplgY5Fk$LOV+ zoMealKns!!80PWsJ%(}L61B!7l?j1_5P#LRrVv%NBhs{R`;aufHYb&b+mF%A+DGl5 zBemAHtbLFi++KT(wv9*?;awp>ROX~P?e<4#Uf5RKIV{c3NxmUz!LYO#Cxdz*CoRQp zSvX|#NN06=q_eTU5-T!RmUJ?Ht=XQF8t)f+GnY5nY5>-}WLR1+R5pou?l@Y|F@KEX zk=jh-yq=Rn9;riE*;Slo}PfNKhXO#;FrZCf%VZ9h7W z<63YWE^s_SlAVQh6B(En9i<9%4AT|2bTQ4Ph2)pI?f2S`$j?bp`>_3(`Fz&?ig-FJ zoO7KAh@4BDOU>sBXV84Eajr9;>wlbW&OSUt&dug?oAV;`+3oBzpI18%%1wA4blzmb z-{QPYJmn_2-F$A5JI!a8+-p8Bk*^U?^f5j7uZ}jEz0E3;XbahB2iZwS&l4jj4WRS6 z3O&!w=ymQSl~7LUE99noXd2y1)9E>yK`+ouR%sTOQ@Qjt@<;lErGLk1wrw7r zV)M})+amJXs_9hQa++&vrqgU&Xr8T)=G&5Vy6vOnvt37L*nU7&ws&ZO-9`)TGA**t zpby#0X|df;etRud+s~#Y_7zlPZ=_oLg%q&wraF6s>g@;VO#2sUseO=^+3%&Z?61(- z_IKzU`+Kw;Blil&LR#qv&{rzQnG|%i(Q3zLI@gh)2FE^H;~1dx9G|AOj(e%mSwT(C z71Zp!jar*i3S|_ik_3{n0L4KavYWWZ2x3MhyU!66E$h=L+A&-s$9X_w9Q_e;+`-{ZW# z^Zn2H_I~`}!vGeFRRY^DyKK#pORBr{&?X}ut`1a(x__(dt3y_-*Np0pX~q39D{Rns z!iXBWZO~+oZu>($Mrf0rjM>$JZar!n_0_!*e@yT7n=HfVT6#jbYZ0wYEXnTgPDZ0N zVE5?$1-v94G2@1jFyj##-E1Um(naG-8WuGy@rRAg)t9Oe0$RJ3OoWV8X4DXvW+ftx zk%S(O8h?#_3B9-1NHn&@ZAXtr=PXcAATV*GzFBXK>hVb9*`iMM-zvA6RwMH#2^901uxUFh&4fT% zmP?pjNsiRIMD)<6xZyOeThl_DN_ZJ*?KUIHgnx{vz`WKxj&!7HbM8{w?{Rued(M1v zKHsK{_q=YI88@Bf0*RW@cIV@=<{eGsG21xrTrWycT7*KBd!eD2zb1R(O@H~k7>Duv zHPwp=n8;t#1>7~fuM9IaD5w%BpwLtNCe_Sq9eal4oj2DB1#<+(MGR-P&Ig%3t%=!< zS$|KxI1a~an2Q>L$s;1$9nQJal4dk)Box$YsAKgCiEGni##jr|%So6Y4J@pYBF!;~ zhXwpKhc7&QZ$=e~Sb&ABZ4o)&U~N*dSU`2G^eQh-WCe9tA}~Ae369btLlB{GjOKB@yEDH!C7Q&df^#X zi~?{rCuAE|kAjKzt+r#t6s)1h840@A<%i5(O;$Q&tD(opg0)yzgm#=ucf4CSqkqYS zaTdivk5I~#=1Z9K5M*uV6H??6s9*ynT`vzr2@%Tkr4k+Tr_ib40$fPP7$yLA$cwJ@ zF@`94=op)$x^0t+QAsNY$pi!4e7hp~gO=|yD=^8JTvTiC(HAamYEQ}t z+hR~QoKTOz%)IHEg&6iC4vP=3mw&u4wvcSwi$vNBGQE5RoSUs^l+u{A+6s~aMMkXG z+1g4wD8^Y27Oe4f``K{+tm76n(*d6BUA4;pLa26`6RD6?Rq?2K1yMXVAk`&xbks*~{+``Mhg4cQEuw+aM zaI9{}9en8DCh*S9CojIk)qh|k?#iNiCQ}rAmr&iYRJiND ztt+j*c+}Fv&6x&7U~!(Sb1eAz1N@Nf`w?YxGJdhy+seiNNZEYIG1_<^?&pm^P8W?d ze(p@$nWC`Pxqpf8d&AIGNJn#Ty)j z1NbA^Y}pNQ>OfTdiAp+WR>C6390IrFj;YZglitGH8r7(GvVRpWjZd7|r24M{u66B) zs#VS$?R*!1FT&sO-ssvW8s5jh$-O=^9=7^y z75||~QA6zLW}Lu!YOZh1J$j46m zNH|;^a$U_RKgla5h>5(igl^ek(~2nL5a_0}ipvA_Xf0k*E-ExJNld0{LZ;F^DzqAL+IZGJ7<3i1szf zxMRkQ(|@;wj9%I7h{c*{;?g%giylU}Dz{iwb(1vGK<-vlnKs!|Mb9}iTt)Rl&NZka zkkugrMiY(ng3QseY!npaOf1jo3|r35nK+eTYh*`DHabuv@IFy zG7@V!LWE0&)bvqgQ8=-L-(vt#Z-&xaOj3G@Nqw1FfbNQ`!bFEl@z)0)+#Z5e#_hQ|Rd!KrEoRn^aFz zkzYzz%hher>ixcg6fW`=rr>Nx@enQ!sQqYR{<2^|eUfw?e8;B_`T)Kxkp8${U>g?k*VhCd zp^yYLvi}<#5TDjrx@{0U$jx*tQn+mhcXsq2e46a@44^-Sd;C6S2=}sK1LQ_OUhgO` z^4yN+e9Dv9TQ64y1Bw)0i4u)98(^+@R~eUUsG!Ye84 zFa7-?x3cqUXX)$G<2MgYiGWhjq?Q-CE(|sm-68_z>h_O2vME5nX;RodIf)=No(={I z_<&3QJcPg8kAI}_Vd+OH4z{NsFMmjv3;kunMSh94VNnqD?85uOps%nq=q?kU_JT5@ zwih;eQlhxr)7d^K#-~InWlc&<*#?{A(8f^+C_WmRR{B&Yh3pxhLU9-toLz%rCPi}} zE!cw^pQlXB3aACUpacU&ZlBUl(Jo4fxpbDVwDn^m{VG||ar9B)9}@K`(SJxmAWro& z_3yzfUqLoXg`H($!I;FTudPdo6FTJm2@^S|&42H(XbSRW7!)V&=I`{;mWicu@BT7z zQs!)F9t-K|aFaMsoJ_6z-ICrzjW5#yJRs>~)bugki)ST$8T%!D4F@EBliCNSA5!fl zN;OuKbR3m0rj=rrq}5`nq<<%iHIl|euXt6QA}$hFNqV)oR?_Rm4oPnoLy|ru_DQ-= zJTDFa;zjY2p{sg zWqz0I5y>-U{xR1Rl4r{NQ?6Ge&y@N7t~Vsll=-(^?@FF2^Y6JnkbgW==09{7N}eh4 z?h`%x-LM8D}+*41ZA#EG0D9KQjc2#z59Pq zO9u!y^MeiK3jhHB6_epc9Fs0q7m}w4lLmSnf6Gb(F%*XXShZTmYQ1gTje=G?4qg`Z zf*U~;6hT37na-R}qnQiIv@S#+#J6xEf(swOhZ4_JMMMtdob%^9e?s#9@%jc}19Jk8 z4-eKFdIEVQN4T|=j2t&EtMI{9_E$cx)DHN2-1mG28IEdMq557#dRO3U?22M($g zlriC81f!!ELd`)1V?{MBFnGYPgmrGp{4)cn6%<#sg5fMU9E|fi%iTOm9KgiN)zu3o zSD!J}c*e{V&__#si_#}hO9u$51d|3zY5@QM=aUgu9h0?tFMkPm8^?8iLjVN0f)0|R zWazNhlxTrCNF5d_LAD%TwkbkKL>+-8TV4VSawTAw*fNnD^2giQT{goNRR~OwAH5%vorH%=FNNm``;VB z_N`CeB%?_hv?RK-S(>S)VQBau{&NwD>j_ zF-Hwk*KNZb#pqexc5oKPcXjOO*cH#{XIq~NkPxH{TYm*Rtv_hwbV2JZd$e=Z)-pN0 z^PH`XkLz~lpy{|;F6Sq&pjD@}vs!0PGe z6v$ZT%$%iV1Z}J(*k7K8=sNv;I#+Ovvr?~~bXs?u{hF!CQ|_-`Y?!WYn_8|j3&GBu zl|F+DcYh8nxg49<-)ESHyI0Vo;oInYTMcVX9@5;g9>>x1BRMQ@KPJc%Za)^J6|_nr zKQ#*4^Z(G>Pt6Lgrp6!zX?X+rXibm;)WBbN1WBP~{Iw45)a0toTeof%G+Oh5Wryxb zN@p5YCm&YsN!Jd$jG8^|w^_Wo-1ad{*|(#*+kcnS97j-dxV>sGIk+cCchX&K1yxY6 z`dB};!Xf&3!*LyHut$Qlnc5WEME3}4k)j3H$aVHvxg78Y3_E@b3u@5wjX7b zPLz^7h65uMRj8d}5Y1tP55ozK;r0{r?;WHL>g4laujaX3dTd*h+xuy|LOa-f%M7RA zuz#V1WlscYXGzO0Xsu-c>6UPEVQ}o>+w7v~meKw6 zfS|`8k|tL(5VDPt0$*C)(&lVYGnVeCrsb+>%XBrvR5fz~VkMmn-RV#V&X1#`XH?fx zvxb>b_48WV%}uD=X5}V20@O1vluQ2hQ-2>^k+tl+2Al20(<||vxfpIJ~|9`dJ zVH^pxv&RS97h5DqN9ZW4!UT{rMgsH>#tHOouVIW{%W|QnHohN<4ZE5RR@l7FPk$#A zI?0%8pKlXW%QH2&OfWTY{1~5fO3=QyMi3vb*?iSmEU7hC;l7%nHAo*ucA`RmedXLF zXlD(SytNYn`{9Rs;@fw21qcpYFGUH*Xmdk{4fK z0AKh-FGJC#f0Ik!{d{T7B7elr2J8>e z4=VKi^h2D=Q8&0_LHc1j$T9pQ7-FcHxZj3w-{RF}MXBm@?_X&zG?V%-Bet=g# zgEZn=6W?w3jeoQ(!&ECWHqJ zs;lJ@+Tf9MhC9~LX7*WT*0A%cJEpn#(bX;0i-*TF1j2A3zeOFlEi7~=R7B$hpH(7@ zc$q9Z%JU#Am8%BTa1gvUGZPX)hL@#()Y8UP?D?tiCHan51waKUtqypCE-ALn&``k4jkeO@}6ROkhI5oJaRd?*oW z5XmD5>YOZAT4pPd`M`dOKE|;8c#wXMeqKQ__X$u$!F<91^W0T4GtRNpyh;fxIv+8{ zOV!mig|0Jq`E}FfEGH;5uUHx|3whm^-h~cRG|loa&)cs`#D7mW5K(xZ?6+)vAgAZC zD+2J-T)KRUZh~%1{k&VASQx^y`SF+OS6KX4kyjRJJpeT){PgS47=e2L=`KjGaKL_s zUIno%SwM4WAF(xl=4hpof(h_9QEfU}Rt7%rCFq{-h?=0}Z_#HJdX0XYPezSbpFe{d z0C)YJ60>{(bbnZJLT@3P<#<0>aI5md?+Lo2+D-Fke_x?5v0p-So~;%rL+cL|`Xc=y zDo2?BXJ-XJpB{>GjhRUa08Q0fc~|Te5H?$jM>&XZG_?d?@$c3DX04&{U<}^Kj^=z zll8%>K>i=dqr$~=S9jB6O9hsxyPZc556Zw=j_nVDRZX|_LS7YaUr=}9egcpXb&Lyu z)YmbNGJh^0d;nj66%_}BAGOYHUX^~)0N68LkJ^TyJHrdKncoeHWg@5uMJ!*CaF?vi zs}inQ2`7nFmB(0lPrqn_`mS~KaI)&6rO6}?TrFA@(Ja=?UzYTXI{;CnCeCzb>5&FP zU9f&`4m+(A>lG0a8$bbgJoRdhk?tvg@Ikz#RDUy9`Bv_`)Mkhjai_S8ErG{n6Y!ZX zjPs#^rE8v{eXb(WZW}1zS0~dl)qaDzZc6#Eb{ck_GRA z#30&5L=j;Tg=w(=Im_LHt$@}KL1QA*~192~ak5Zap zUm99S=A}`1@@=9=5f6x7EHE6dJZ-x$j_M#N`oWZ#8SoMRTSbJEkaI_E1S`LPb#u`l za~4L#=6*e^6>@H+e`vvSoIfb`u^orz|9^Gmf4h-i>_^V46i#@Dxdo?h3>Vd9UB7Q1 zd*h%uq=*CJ?O?Lm(&(J#sK(r_I|5=@p*QJ8=tPJL3W(!iGFv{}j#xpF;@rMTpd4td z<_1}s1;k09u3T^?RJY`6H5?F+aq(TFbgz!+$2p?$R`cYY_JBwWirgNmvn*Q5HGe{f z-XaT1oDGR#3t6;+$vF}g;7xCzl>r&9Od6(sppYNY?IXMuZ9`V@!`mKeeSE_wM4Gd+URu(#jex(s}ep9w1GC3 z7Kw+jq#o_EXrxGYA1~6D%cM+Ge1B+?9*7ocTWaW4s-L{|jmQn!kxEX{y*KxIy1Xsk zjnC7@NQ-xSD&Z?q_a#!IA$;sPe$gu?Z@nHJio8s36Lg7G@2AP18uG-3n|dSD^zhIP z+Lua-$Q13Lqz^#~2=HF178_n9HXiZ3Ovmd`>ukdKrc^2!X-ZAeBT)7dg@2>+{JWz! z=p-xnDEg15lCRLp=uPi))DZP-pCqq%wfcyWMMo@`orpju`U#jwh%@+&z~1$+@gb_i z)6qj`VXXJU%FkkS64rkme)%TMc?)t4l%`DCsP&j<&wVcTDtWIqWv3~3;0Bqggf}`x z?`&K}p9&;=Aun6(T&k=7S$}GZhkTxv`XW6!32V~_TI%bru-U&74|$7pp-A6@^%t>z zik|j#`C5GOo6l26yv4Vpk#1d>ruU>0Sp1{7@3N40)z%`t|2VeC&_KN}@=GU4?^hP}~YUu?KOKHT)vA#ce-FMp(9pP!wPTFk%# zEwqky;$|C=p1Ezu@6K6!t$>6N_Ie-e^%}k#xcn}ovllZSv|SPDuQ-}tU^i{{+`l1; z+iYOZMxq` zyNmevH37(cCUt;!hJWefMf#0t`kVyL=P%JpzSQp?pS<i{A@amJ0F;?aT#H3gGL(m+ zMd2x(2y7PxEPwgIW>H_-O1kRG@$x~jQ_UiPlcvRrqG+t>u>Js>8_Xp<>`syJiiA&! ztVK|;R}+4AD**Ck_Nds%Xh&S}{}jiCxVtDeH;a2t6-Dft*jg0#%HQsyNF;oXVK{$( zQQY6LPpMO5t9niY*so`U_cqrfS%ttA> zMrrXr{mf-r8(+hNdUxQONMdM>QWS?n{+OpF2q5te-AZ?0^44=hA%DU`#Rc;$`A425WvPKyy?$o4V#Hc#hepIh#q zrzgc`^ts)D{=4V}+2@w~FVe?kpIh#KoUY0~x7_FGtMoP5=a&0# zq5$MRx9AIxXym?ZxgQhVvd=B|)8ZMaXDKe4fFb_31FMfwok)^Lq|q0WrRvD@ZBR=G z2pQ0I&-V@h0C*ge;YJ*jtBNjvYflqF6o%gs=t3z%xd|2&*IQdyR=^LH8WYpRgrrep z4Mx6Aw}fxhSE$jN_`x6Gk20R2MM&C)-R$h{nfE#GnVgwFe}DZ3unAM( z^yK7C>62cU)*<-~eOtHo^)=lJyq4q2*a>{Y3mU}nkX(`x@nlm*hSem0>o7{ZNZ;O< zZbWN(%QigOG8~nI>Q5dw>RYT0OXvK4;<_A&n$p-%65n=wqR{bejviAOu@}cn>s#w3 zqd~{|=TQiObS+3ii(WV`2`mPoZQ7x1xMY3^WvfM@Sq*HPLJh+LQwQ=`ny&P1^Hu$T ztXM-zVD=*VoC&`n>n>@37!?>fN*sy>#GXLvspC8GGlAj!USU^YC|}skAcN~^Xqe0( zjqx#zAj>muU<=IUs~34|v06u2ahGbSeT-uAG|Vv*Bw$#pf8#qXFt zMfw|VuC{UeT)2WpJ6&O+E6jF;;~n9>cf~Ip6j-_@&PGFD0%Vu*QJ@Ht`C7Og!xt#L> zmqlJGEh<%*ATJUmZc(FfNSB##fy_`Y-70r{Iv3jEfR|~Ii!xC44vZ(KNj#>kjsE86 zE3FB*OayD~$|}3Y&(h6^X|1 z(TcJ}8{Ua3yL1loSfg!2gTekntVO7WNyFQCfwF2ti$UvL8C6{{IPBg01XK~$ThIQx z{)~aw>(9F2L#G36*kRDPqA$P*nq=!@bbQ#RzDpVIfYc*x9=}2N^*2z1E%3epP)i30 z>M4^xlbnuWe_MAGRTTb?O*?TCw6v5$6bS)qZqo=w4J~*9i;eVx4NwO!crrOjhE8U( z&P-ZZU9$We^ubqNd73QDTJqqV55D;u{1?`JQre~$mu9WZ%=z|x?{A;q|NiAy0GH5U z*nIM2xww(4aBEe#)zoy#s-^NN%WJl5hX=Oj8cnY%e+ZYt5!@FfY;fPO8p2xj+f6?; zUE_`~@~KwcX!4d}D<7hA<#M$$MY^)MV_$1K4gr3H8yA&|Ten>yr0v!TT@%u$ScDfR zrzVR=Rjj3cjDj)fWv?wQanp7LL)Me^LS6EzBMR%1w^~9L%8&g(G;d3f4uLKFIqs5J zYKSlle?R1Fyx?%RURbI;6jq>Nh+(uYf`e8J=hO2&ZQCoTU^AKRV>_^&!W{P-3%oVM zaQqOcL1!4cYP)vuF~dMQb1#lKj_HWu4TgBXPYuJQYWv&8km~(7Mlh=5I8HE}*mJ#? zmxhx%#+9e>eorO0)eg#m6uhb7G^KSg`Cbxlf9XizZH9>B@hZcqJ*7VTp6)w1tHLB1 z1}(?)MI0$rLIUS0;Z^atECLmzzb6FE#PKdBl;L{}$M%UdWEi4$AS4ew$#8O?ZRr(G z4syuHkcGi8a#*gRz@QP|7R93=j*A$L;eA}9id+JyWjkK`Mod00;{&DlA!QJFR3&lj zf1vI*O1ec{(V=0QA?ELLVls-W``ELsu7M`3`vI4MzhVcpJ!9#^KGjq|#b-J`!F7h$ z{dUEFmBLuMbYu>nV^(S3q+UC;7s@e_qZG#+N=oo0o$G1>6Y0a{9@&9;EU2+8k|7P6 zp?HMh|8#X5UnwpxGbHw;%WXHXn_~8nedvw09V+G$(lhoq7L}=qb+OaPSD&;$TuUtG(4;py( zh)8|Nord(*d1ZH-Dmw1MqU&RKiI)26r-hE(pqnmo4uixe^`qea7(_HA_R2KjdJ4$g!)7ve&Q^b1Tf+{(Vd6vInCd>i725IomG^(Ez(D8L!4qlUAX=)EV9!3JfWLB4n1z)!ums&0UuuVLUH zP)i30*5f6tnvk?lbhL{|8I78X7|_cA3p(L9<~X5y1L3{K8Sf*xL|5gToDT;aYig?m8z^z zQ`XdEMJqC#*O|ho!7x~+MzT<5g$turF~pS;RSY&GR;6TxR)3Q+&%yG`3&ngIwR*qK&t{TERu@0|fDrKKw3=RE&t-)Xh-$i& zl5|>BSn5)z)hg3d?<~8msU=ye>CHWR!9yT;PU|$KP*qADf(V?zj^n^g~nykv^I)Uz3{78Ty81{n~ zZsS&7WH)#Ach3%UyVD1s=Ahvw9*%Wt z<42vTt%|niux3Zww13+oK)-d~G>VKHM0ov>KXKaUH(Cc)#9GFVSc4EoUbnRudxi}T z8J!VNY=4g*Y7C*Ho7#^wUVt&67&ea4^1oBw%@h^ z+YZ+eK^VI5573*KZosq?pMj(u5257?^lBu&LF9`ao`sYf9&zx;uK2iv&$;8{ z4nFUSFF5$3JHFuHORo5YgFkV{CmcNEicdQDvO7NM;484|f=_+6!)x%g1CL;L9DE%% zT=1xaKZ8v-+-@x1OZ;|0_a9J82MFd71j+6K002-1li@}jlN6Rde_awnSQ^R>8l%uQ zO&WF!6qOdxN;eu7Q-nHAUeckHnK(0P3kdECiu+2%6$MdLP?%OK@`LB_gMXCA`(~0R zX;Tm9uJ&d7>n z%9A~GP*{Z zrpyh7B^|a-)|8b<&(!>OhWQ08$LV}WQ`RD4Od8d3O-;%vhK7#W<7u;XvbxQo0JX@f zY(C0RS6^zcd>jo287k@<4tg;k3q5e5hLHE@&4ooC)S|`w7N|jm>3tns$G}U4o!(2g=!}xLHp?+qF zvj$ztd<%96=4tCKGG@ADSX{=mNZ@ho6rr?EOQ1(G2i@2;GXb&S#U3YtCuVwc*4rJc zPm$kZf2+|!X~X6%(QMj{4u)mZOi!(P(dF3hX4ra9l=RKQ$v(kJFS#;ib+z9K^#Gle z6LKa>&4oMFJ4C&NBJ7hhPSIjcOno$M6iq+l;ExpH9rF68@D3-EgCCf}JJSgVPbI1$ z?JjPPX!_88InA}KX&=#cFH#s3Ix<6LeY==wf5DK*jP`hqF%u+|sI)3HfyywfAj=0O zMNUX2pLR;T(8c+$g&}Z#q9L>(D~t~l&X^VFXp@&w92f8tq+KXMZ&o!an%$#uo^hJh z^9-RjEvqE_s%H8{qw(juo4?SC{YhO*`|H*ibxm%ZF6r=2QC)bE`d3oZ(~?;a-(mX)b!|i%p!VVP>DN6tg*Ry97gUPUJj<}OxaYL1nXE}h zxs-O{twImUw z43Eo6nJ4_RTDIQALB8H!3nq37cE6>oNG;jZZhXh!vORPsMKfzJ8_*?O7DfGmcrL8A z(_NAhSH+JE?u?`xR1|ZThDb;2Dt`9hC;UQ%94^20-MA*;<$KO0{3b&9y(ENIe@&xj z6>X23)Ftc?ax=4pL5FZ06CPOjgG%2*lbx;+sVm6EHifaku2RZ6dm2zO1s^4+O| zX?^Rl!e{47y>uJGVh+yEaNe$4U2tTYyJ3nqt9nkQP8+X`9>;yxHT1=;SB4=QU*?nq zndTZfT|OzWa_zE$8FPQtuK2+Z>H-NyCcc=wWX>wq$q7{vij#xqCQBclE;KU_SpRHh zW?)cb0G=uW2QHH@&UKOjUxp5p-v+$&z!*iIUwCrEeC5gh!qSr;%oC7--UiJO%g(@H zgQD=VC|Kd1c_uQ*S7+LyC@PW!E7G5DDhEzd%(QbXn4J;PQoYKo1+C zI4^v%{X#z$(3LimCoU9YO4kMJJG0PS25}<7q9LXMM{Esm6)13%7{fk7Wdx5wm$C1R5emYB+b4!_g{ zCYC2a7ogf;<2t!#hh+G05lGD55CT^#LlBoxIEo9C9q6 zV^AjZEfZsU6$%s=ojiXT+hlLxY4o6EhgiZ7JP-%P5cLSCVgnh(`W^-bB@{)=b3uwG zE!U6%u3dpFT>%EaE{d8bl@K+c6+w`+ju^dTU{F9&yQvzYmVNS(GoZm{D-R;bE=#wApMmV(yJpr(t7y*s2{B8_zE)_ yL|YQw3&NAZiu6_*%Ye#&V4x{Sc^DWpP)tgl235p9dFD!GE+Jk92JyL|;s5}0b2K*q delta 34555 zcmX7vV`H6d(}mmEwr$(CZQE$vU^m*aZQE(=WXEZ2+l}qF_w)XN>&rEBu9;)4>0JOD zo(HR^Mh47P)@z^^pH!4#b(O8!;$>N+S+v5K5f8RrQ+Qv0_oH#e!pI2>yt4ij>fI9l zW&-hsVAQg%dpn3NRy$kb_vbM2sr`>bZ48b35m{D=OqX;p8A${^Dp|W&J5mXvUl#_I zN!~GCBUzj~C%K?<7+UZ_q|L)EGG#_*2Zzko-&Kck)Qd2%CpS3{P1co1?$|Sj1?E;PO z7alI9$X(MDly9AIEZ-vDLhpAKd1x4U#w$OvBtaA{fW9)iD#|AkMrsSaNz(69;h1iM1#_ z?u?O_aKa>vk=j;AR&*V-p3SY`CI}Uo%eRO(Dr-Te<99WQhi>y&l%UiS%W2m(d#woD zW?alFl75!1NiUzVqgqY98fSQNjhX3uZ&orB08Y*DFD;sjIddWoJF;S_@{Lx#SQk+9 zvSQ-620z0D7cy8-u_7u?PqYt?R0m2k%PWj%V(L|MCO(@3%l&pzEy7ijNv(VXU9byn z@6=4zL|qk*7!@QWd9imT9i%y}1#6+%w=s%WmsHbw@{UVc^?nL*GsnACaLnTbr9A>B zK)H-$tB`>jt9LSwaY+4!F1q(YO!E7@?SX3X-Ug4r($QrmJnM8m#;#LN`kE>?<{vbCZbhKOrMpux zTU=02hy${;n&ikcP8PqufhT9nJU>s;dyl;&~|Cs+o{9pCu{cRF+0{iyuH~6=tIZXVd zR~pJBC3Hf-g%Y|bhTuGyd~3-sm}kaX5=T?p$V?48h4{h2;_u{b}8s~Jar{39PnL7DsXpxcX#3zx@f9K zkkrw9s2*>)&=fLY{=xeIYVICff2Id5cc*~l7ztSsU@xuXYdV1(lLGZ5)?mXyIDf1- zA7j3P{C5s?$Y-kg60&XML*y93zrir8CNq*EMx)Kw)XA(N({9t-XAdX;rjxk`OF%4-0x?ne@LlBQMJe5+$Ir{Oj`@#qe+_-z!g5qQ2SxKQy1ex_x^Huj%u+S@EfEPP-70KeL@7@PBfadCUBt%`huTknOCj{ z;v?wZ2&wsL@-iBa(iFd)7duJTY8z-q5^HR-R9d*ex2m^A-~uCvz9B-1C$2xXL#>ow z!O<5&jhbM&@m=l_aW3F>vjJyy27gY}!9PSU3kITbrbs#Gm0gD?~Tub8ZFFK$X?pdv-%EeopaGB#$rDQHELW!8bVt`%?&>0 zrZUQ0!yP(uzVK?jWJ8^n915hO$v1SLV_&$-2y(iDIg}GDFRo!JzQF#gJoWu^UW0#? z*OC-SPMEY!LYYLJM*(Qov{#-t!3Z!CfomqgzFJld>~CTFKGcr^sUai5s-y^vI5K={ z)cmQthQuKS07e8nLfaIYQ5f}PJQqcmokx?%yzFH*`%k}RyXCt1Chfv5KAeMWbq^2MNft;@`hMyhWg50(!jdAn;Jyx4Yt)^^DVCSu?xRu^$*&&=O6#JVShU_N3?D)|$5pyP8A!f)`| z>t0k&S66T*es5(_cs>0F=twYJUrQMqYa2HQvy)d+XW&rai?m;8nW9tL9Ivp9qi2-` zOQM<}D*g`28wJ54H~1U!+)vQh)(cpuf^&8uteU$G{9BUhOL| zBX{5E1**;hlc0ZAi(r@)IK{Y*ro_UL8Ztf8n{Xnwn=s=qH;fxkK+uL zY)0pvf6-iHfX+{F8&6LzG;&d%^5g`_&GEEx0GU=cJM*}RecV-AqHSK@{TMir1jaFf&R{@?|ieOUnmb?lQxCN!GnAqcii9$ z{a!Y{Vfz)xD!m2VfPH=`bk5m6dG{LfgtA4ITT?Sckn<92rt@pG+sk>3UhTQx9ywF3 z=%B0LZN<=6-B4+UbYWxfQUOe8cmEDY3QL$;mOw&X2;q9x9qNz3J97)3^jb zdlzkDYLKm^5?3IV>t3fdWwNpq3qY;hsj=pk9;P!wVmjP|6Dw^ez7_&DH9X33$T=Q{>Nl zv*a*QMM1-2XQ)O=3n@X+RO~S`N13QM81^ZzljPJIFBh%x<~No?@z_&LAl)ap!AflS zb{yFXU(Uw(dw%NR_l7%eN2VVX;^Ln{I1G+yPQr1AY+0MapBnJ3k1>Zdrw^3aUig*! z?xQe8C0LW;EDY(qe_P!Z#Q^jP3u$Z3hQpy^w7?jI;~XTz0ju$DQNc4LUyX}+S5zh> zGkB%~XU+L?3pw&j!i|x6C+RyP+_XYNm9`rtHpqxvoCdV_MXg847oHhYJqO+{t!xxdbsw4Ugn($Cwkm^+36&goy$vkaFs zrH6F29eMPXyoBha7X^b+N*a!>VZ<&Gf3eeE+Bgz7PB-6X7 z_%2M~{sTwC^iQVjH9#fVa3IO6E4b*S%M;#WhHa^L+=DP%arD_`eW5G0<9Tk=Ci?P@ z6tJXhej{ZWF=idj32x7dp{zmQY;;D2*11&-(~wifGXLmD6C-XR=K3c>S^_+x!3OuB z%D&!EOk;V4Sq6eQcE{UEDsPMtED*;qgcJU^UwLwjE-Ww54d73fQ`9Sv%^H>juEKmxN+*aD=0Q+ZFH1_J(*$~9&JyUJ6!>(Nj zi3Z6zWC%Yz0ZjX>thi~rH+lqv<9nkI3?Ghn7@!u3Ef){G(0Pvwnxc&(YeC=Kg2-7z zr>a^@b_QClXs?Obplq@Lq-l5>W);Y^JbCYk^n8G`8PzCH^rnY5Zk-AN6|7Pn=oF(H zxE#8LkI;;}K7I^UK55Z)c=zn7OX_XVgFlEGSO}~H^y|wd7piw*b1$kA!0*X*DQ~O` z*vFvc5Jy7(fFMRq>XA8Tq`E>EF35{?(_;yAdbO8rrmrlb&LceV%;U3haVV}Koh9C| zTZnR0a(*yN^Hp9u*h+eAdn)d}vPCo3k?GCz1w>OOeme(Mbo*A7)*nEmmUt?eN_vA; z=~2}K_}BtDXJM-y5fn^v>QQo+%*FdZQFNz^j&rYhmZHgDA-TH47#Wjn_@iH4?6R{J z%+C8LYIy>{3~A@|y4kN8YZZp72F8F@dOZWp>N0-DyVb4UQd_t^`P)zsCoygL_>>x| z2Hyu7;n(4G&?wCB4YVUIVg0K!CALjRsb}&4aLS|}0t`C}orYqhFe7N~h9XQ_bIW*f zGlDCIE`&wwyFX1U>}g#P0xRRn2q9%FPRfm{-M7;}6cS(V6;kn@6!$y06lO>8AE_!O z{|W{HEAbI0eD$z9tQvWth7y>qpTKQ0$EDsJkQxAaV2+gE28Al8W%t`Pbh zPl#%_S@a^6Y;lH6BfUfZNRKwS#x_keQ`;Rjg@qj zZRwQXZd-rWngbYC}r6X)VCJ-=D54A+81%(L*8?+&r7(wOxDSNn!t(U}!;5|sjq zc5yF5$V!;%C#T+T3*AD+A({T)#p$H_<$nDd#M)KOLbd*KoW~9E19BBd-UwBX1<0h9 z8lNI&7Z_r4bx;`%5&;ky+y7PD9F^;Qk{`J@z!jJKyJ|s@lY^y!r9p^75D)_TJ6S*T zLA7AA*m}Y|5~)-`cyB+lUE9CS_`iB;MM&0fX**f;$n($fQ1_Zo=u>|n~r$HvkOUK(gv_L&@DE0b4#ya{HN)8bNQMl9hCva zi~j0v&plRsp?_zR zA}uI4n;^_Ko5`N-HCw_1BMLd#OAmmIY#ol4M^UjLL-UAat+xA+zxrFqKc@V5Zqan_ z+LoVX-Ub2mT7Dk_ z<+_3?XWBEM84@J_F}FDe-hl@}x@v-s1AR{_YD!_fMgagH6s9uyi6pW3gdhauG>+H? zi<5^{dp*5-9v`|m*ceT&`Hqv77oBQ+Da!=?dDO&9jo;=JkzrQKx^o$RqAgzL{ zjK@n)JW~lzxB>(o(21ibI}i|r3e;17zTjdEl5c`Cn-KAlR7EPp84M@!8~CywES-`mxKJ@Dsf6B18_!XMIq$Q3rTDeIgJ3X zB1)voa#V{iY^ju>*Cdg&UCbx?d3UMArPRHZauE}c@Fdk;z85OcA&Th>ZN%}=VU%3b9={Q(@M4QaeuGE(BbZ{U z?WPDG+sjJSz1OYFpdImKYHUa@ELn%n&PR9&I7B$<-c3e|{tPH*u@hs)Ci>Z@5$M?lP(#d#QIz}~()P7mt`<2PT4oHH}R&#dIx4uq943D8gVbaa2&FygrSk3*whGr~Jn zR4QnS@83UZ_BUGw;?@T zo5jA#potERcBv+dd8V$xTh)COur`TQ^^Yb&cdBcesjHlA3O8SBeKrVj!-D3+_p6%P zP@e{|^-G-C(}g+=bAuAy8)wcS{$XB?I=|r=&=TvbqeyXiuG43RR>R72Ry7d6RS;n^ zO5J-QIc@)sz_l6%Lg5zA8cgNK^GK_b-Z+M{RLYk5=O|6c%!1u6YMm3jJg{TfS*L%2 zA<*7$@wgJ(M*gyTzz8+7{iRP_e~(CCbGB}FN-#`&1ntct@`5gB-u6oUp3#QDxyF8v zOjxr}pS{5RpK1l7+l(bC)0>M;%7L?@6t}S&a zx0gP8^sXi(g2_g8+8-1~hKO;9Nn%_S%9djd*;nCLadHpVx(S0tixw2{Q}vOPCWvZg zjYc6LQ~nIZ*b0m_uN~l{&2df2*ZmBU8dv`#o+^5p>D5l%9@(Y-g%`|$%nQ|SSRm0c zLZV)45DS8d#v(z6gj&6|ay@MP23leodS8-GWIMH8_YCScX#Xr)mbuvXqSHo*)cY9g z#Ea+NvHIA)@`L+)T|f$Etx;-vrE3;Gk^O@IN@1{lpg&XzU5Eh3!w;6l=Q$k|%7nj^ z|HGu}c59-Ilzu^w<93il$cRf@C(4Cr2S!!E&7#)GgUH@py?O;Vl&joXrep=2A|3Vn zH+e$Ctmdy3B^fh%12D$nQk^j|v=>_3JAdKPt2YVusbNW&CL?M*?`K1mK*!&-9Ecp~>V1w{EK(429OT>DJAV21fG z=XP=%m+0vV4LdIi#(~XpaUY$~fQ=xA#5?V%xGRr_|5WWV=uoG_Z&{fae)`2~u{6-p zG>E>8j({w7njU-5Lai|2HhDPntQ(X@yB z9l?NGoKB5N98fWrkdN3g8ox7Vic|gfTF~jIfXkm|9Yuu-p>v3d{5&hC+ZD%mh|_=* zD5v*u(SuLxzX~owH!mJQi%Z=ALvdjyt9U6baVY<88B>{HApAJ~>`buHVGQd%KUu(d z5#{NEKk6Vy08_8*E(?hqZe2L?P2$>!0~26N(rVzB9KbF&JQOIaU{SumX!TsYzR%wB z<5EgJXDJ=1L_SNCNZcBWBNeN+Y`)B%R(wEA?}Wi@mp(jcw9&^1EMSM58?68gwnXF` zzT0_7>)ep%6hid-*DZ42eU)tFcFz7@bo=<~CrLXpNDM}tv*-B(ZF`(9^RiM9W4xC%@ZHv=>w(&~$Wta%)Z;d!{J;e@z zX1Gkw^XrHOfYHR#hAU=G`v43E$Iq}*gwqm@-mPac0HOZ0 zVtfu7>CQYS_F@n6n#CGcC5R%4{+P4m7uVlg3axX}B(_kf((>W?EhIO&rQ{iUO$16X zv{Abj3ZApUrcar7Ck}B1%RvnR%uocMlKsRxV9Qqe^Y_5C$xQW@9QdCcF%W#!zj;!xWc+0#VQ*}u&rJ7)zc+{vpw+nV?{tdd&Xs`NV zKUp|dV98WbWl*_MoyzM0xv8tTNJChwifP!9WM^GD|Mkc75$F;j$K%Y8K@7?uJjq-w zz*|>EH5jH&oTKlIzueAN2926Uo1OryC|CmkyoQZABt#FtHz)QmQvSX35o`f z<^*5XXxexj+Q-a#2h4(?_*|!5Pjph@?Na8Z>K%AAjNr3T!7RN;7c)1SqAJfHY|xAV z1f;p%lSdE8I}E4~tRH(l*rK?OZ>mB4C{3e%E-bUng2ymerg8?M$rXC!D?3O}_mka? zm*Y~JMu+_F7O4T;#nFv)?Ru6 z92r|old*4ZB$*6M40B;V&2w->#>4DEu0;#vHSgXdEzm{+VS48 z7U1tVn#AnQ3z#gP26$!dmS5&JsXsrR>~rWA}%qd{92+j zu+wYAqrJYOA%WC9nZ>BKH&;9vMSW_59z5LtzS4Q@o5vcrWjg+28#&$*8SMYP z!l5=|p@x6YnmNq>23sQ(^du5K)TB&K8t{P`@T4J5cEFL@qwtsCmn~p>>*b=37y!kB zn6x{#KjM{S9O_otGQub*K)iIjtE2NfiV~zD2x{4r)IUD(Y8%r`n;#)ujIrl8Sa+L{ z>ixGoZJ1K@;wTUbRRFgnltN_U*^EOJS zRo4Y+S`cP}e-zNtdl^S5#%oN#HLjmq$W^(Y6=5tM#RBK-M14RO7X(8Gliy3+&9fO; zXn{60%0sWh1_g1Z2r0MuGwSGUE;l4TI*M!$5dm&v9pO7@KlW@j_QboeDd1k9!7S)jIwBza-V#1)(7ht|sjY}a19sO!T z2VEW7nB0!zP=Sx17-6S$r=A)MZikCjlQHE)%_Ka|OY4+jgGOw=I3CM`3ui^=o0p7u z?xujpg#dRVZCg|{%!^DvoR*~;QBH8ia6%4pOh<#t+e_u!8gjuk_Aic=|*H24Yq~Wup1dTRQs0nlZOy+30f16;f7EYh*^*i9hTZ`h`015%{i|4 z?$7qC3&kt#(jI#<76Biz=bl=k=&qyaH>foM#zA7}N`Ji~)-f-t&tR4^do)-5t?Hz_Q+X~S2bZx{t+MEjwy3kGfbv(ij^@;=?H_^FIIu*HP_7mpV)NS{MY-Rr7&rvWo@Wd~{Lt!8|66rq`GdGu% z@<(<7bYcZKCt%_RmTpAjx=TNvdh+ZiLkMN+hT;=tC?%vQQGc7WrCPIYZwYTW`;x|N zrlEz1yf95FiloUU^(onr3A3>+96;;6aL?($@!JwiQ2hO|^i)b4pCJ7-y&a~B#J`#FO!3uBp{5GG*Cni@K85&o0q~6#LtppE&cVY z3Bv{xQ-;i}LN-60B2*1suMd=Fi%Y|7@52axZ|b=Wiwk^5eg{9X4}(q%4D5N5_Gm)` zg~VyFCwfkIKW(@@ZGAlTra6CO$RA_b*yz#){B82N7AYpQ9)sLQfhOAOMUV7$0|d$=_y&jl>va$3u-H z_+H*|UXBPLe%N2Ukwu1*)kt!$Y>(IH3`YbEt; znb1uB*{UgwG{pQnh>h@vyCE!6B~!k}NxEai#iY{$!_w54s5!6jG9%pr=S~3Km^EEA z)sCnnau+ZY)(}IK#(3jGGADw8V7#v~<&y5cF=5_Ypkrs3&7{}%(4KM7) zuSHVqo~g#1kzNwXc39%hL8atpa1Wd#V^uL=W^&E)fvGivt)B!M)?)Y#Ze&zU6O_I?1wj)*M;b*dE zqlcwgX#eVuZj2GKgBu@QB(#LHMd`qk<08i$hG1@g1;zD*#(9PHjVWl*5!;ER{Q#A9 zyQ%fu<$U?dOW=&_#~{nrq{RRyD8upRi}c-m!n)DZw9P>WGs>o1vefI}ujt_`O@l#Z z%xnOt4&e}LlM1-0*dd?|EvrAO-$fX8i{aTP^2wsmSDd!Xc9DxJB=x1}6|yM~QQPbl z0xrJcQNtWHgt*MdGmtj%x6SWYd?uGnrx4{m{6A9bYx`m z$*UAs@9?3s;@Jl19%$!3TxPlCkawEk12FADYJClt0N@O@Pxxhj+Kk(1jK~laR0*KGAc7%C4nI^v2NShTc4#?!p{0@p0T#HSIRndH;#Ts0YECtlSR}~{Uck+keoJq6iH)(Zc~C!fBe2~4(Wd> zR<4I1zMeW$<0xww(@09!l?;oDiq zk8qjS9Lxv$<5m#j(?4VLDgLz;8b$B%XO|9i7^1M;V{aGC#JT)c+L=BgCfO5k>CTlI zOlf~DzcopV29Dajzt*OcYvaUH{UJPaD$;spv%>{y8goE+bDD$~HQbON>W*~JD`;`- zZEcCPSdlCvANe z=?|+e{6AW$f(H;BND>uy1MvQ`pri>SafK5bK!YAE>0URAW9RS8#LWUHBOc&BNQ9T+ zJpg~Eky!u!9WBk)!$Z?!^3M~o_VPERYnk1NmzVYaGH;1h+;st==-;jzF~2LTn+x*k zvywHZg7~=aiJe=OhS@U>1fYGvT1+jsAaiaM;) zay2xsMKhO+FIeK?|K{G4SJOEt*eX?!>K8jpsZWW8c!X|JR#v(1+Ey5NM^TB1n|_40 z@Db2gH}PNT+3YEyqXP8U@)`E|Xat<{K5K;eK7O0yV72m|b!o43!e-!P>iW>7-9HN7 zmmc7)JX0^lPzF#>$#D~nU^3f!~Q zQWly&oZEb1847&czU;dg?=dS>z3lJkADL1innNtE(f?~OxM`%A_PBp?Lj;zDDomdg zn+lVJBnzA5DamDVIk!-AoSMv~QchAOt&5fk#G=s!$FD}9rL0yDjwDkw<9>|UUuyVm z&o7y|6Ut5WI0!G$M?NiMUy%;s3ugPKJU_+B!Z$eMFm}A**6Z8jHg)_qVmzG-uG7bj zfb6twRQ2wVgd)WY00}ux=jqy@YH4ldI*;T^2iAk+@0u`r_Fu(hmc3}!u-Pb>BDIf{ zCNDDv_Ko`U@})TZvuE=#74~E4SUh)<>8kxZ=7`E?#|c zdDKEoHxbEq;VVpkk^b&~>-y`uO~mX=X0bmP!=F1G1YiluyeEg!D*8Fq-h=NyE-2S;^F6j=QMtUzN4oPedvc*q(BCpbg~*As!D@U z3(sz|;Pe1hn08P_cDQ(klZ6 z;P`q(5_V?*kJYBBrA1^yDgJD|)X1FV_*~sO>?8Sy~I9WdK5K8bc7aeNC zDb{Fe>y3N^{mrD1+GyH{F?@9}YQ2Om3t`nt zQ(}MS8M?6Vk>B=*j*yibz6QCdR=ALgTUcKx61){O@1WkPp-v$$4}e#KgK`HG~2@#A?`BF8em`ah6+8hH-DNA2>@02WWk9(fzhL_iz|~H~qEViQ(*{ zV;3tjb<%&r!whm6B`XtWmmrMWi=#ZO&`{h9`->HVxQ)^_oOS{W z!BzVRjdx5@pCXl#87ovlp<^QU;s<*d$)+|vI;Ai(!8Tjll^mi6!o~CpnlgZAK>6=V zm38^kT`D$_$v@UYeFyVhnsMZI1m`E&8<{V07>bBEI1=fg3cji*N?7pBzuamD`X|^^ zm!)2v?s|6T&H-_^y`KM&$!0!9tai9x&)5<(&sY6B`3D{$$KMAX3@&`SW;X0 zB-}obt^I;|#o_bR>eOv?P>=UC6CGTXIM+lSu?Uy+R9~O;q|c2+FafBP;E)B5M9HJgRIpF|GvRi*E+JTBI~T?T*X}r) zefUd*(+3n_YHZZS(g8)+7=pNV9QR^>Qs8t+iEpbJS!9;wio&9rn=19C0G#Ax zM-tWHp_YlJvXWsUqJUr^`OYFA4wkgL`cSOV;w4?tp>GT1jq}-qPoN zp&G}*;+#+Zh&vqDOp>gRL#^O7;s2yWqs+U4_+R4`{l9rEt-ud(kZ*JZm#0M{4K(OH zb<7kgkgbakPE=G&!#cNkvSgpU{KLkc6)dNU$}BQelv+t+gemD5;)F-0(%cjYUFcm{ zxaUt??ycI({X5Gkk@KIR$WCqy4!wkeO_j)?O7=lFL@zJDfz zrJJRDePaPzCAB)hPOL%05T5D*hq|L5-GG&s5sB97pCT23toUrTxRB{!lejfX_xg(y z;VQ+X91I;EUOB;=mTkswkW0~F$ zS%M}ATlKkIg??F?I|%gdYBhU(h$LqkhE!Xx$7kPS{2U4wLujF_4O+d8^ej{ zgSo(;vA)|(KT8R_n_aQ$YqDQaI9Stqi7u=+l~~*u^3-WsfA$=w=VX6H%gf!6X|O#X z*U6Wg#naq%yrf&|`*$O!?cS94GD zk}Gx%{UU!kx|HFb+{f(RA2h+t#A!32`fxL}QlXUM{QF3m&{=7+hz@aXMq*FirZk?W zoQ~ZCOx>S?o>3`+tC&N0x4R`%m)%O$b@BkW;6zE+aBzeYi47~78w$d~uypaV*p$kQ zJf34Q+pp~vg6)yeTT&qWbnR2|SifwK2gA7fzy#W(DyM^bdCjnee42Ws>5mM9W6_`j zC(|n5Fa&=MT$$@?p~)!IlLezYa}=Uw21^Fz-I#?_AOk(7Ttxm;#>RDD_9EloqhvrS z&7fpbd$q_e21Al+bcz|o{(^p}AG>jX0B}ZZRfzk$WLbNLC{y|lZ|&a(=bOE6Mxum{ zM=Nd+-I2A-N&2giWM2oAH`O&QecJn6%uYl0GWlpx&2*)BIfl3h&2E(>#ODt4oG}Dq z__73?sw2-TOWq@d&gmYKdh`a}-_6YQ5```}bEBEmWLj))O z?*eUM4tw0Cwrr+4Ml^9JkKW9e4|_^oal0*sS-u_Xovjo8RJ18x_m7v!j$eR@-{2(Y z?&K4ZR8^T{MGHL#C(+ZAs6&k}r07Xqo1WzaMLo9V;I<9a6jx2wH2qeU?kv25MJxoj zJKzX`Un|;_e&KY%R2jU~<5lm-`$EjIJLDP~11_5?&W#t3I{~+0Ze++pOh2B4c1Mde zSgj$ODQQm7gk&w{wwfE1_@V(g!C=2Hd%Gwj{{-_K4S|nZu+vk}@k(?&13iccsLkQo z_t8#Ah$HVB-MRyzpab*OHOp zl`$tEcUcF9_=3*qh8KTaW$znGztA7Obzb`QW5IQN+8XC=l%+$FVgZ|*XCU?G4w)}! zmEY+2!(!%R5;h`>W(ACqB|7`GTSp4{d)eEC8O)Mhsr$dQG}WVBk$aN1->sTSV7E)K zBqr;^#^bZJJX4E_{9gdPo8e?Ry>ZrE&qM)zF5z20DP0`)IIm_!vm&s2mzl z2;EPI{HgFH-Mp&fIL^6f74>19^>o^AOj`uyL0+Nb##Slvi9K4LQSs>f+$j?cn9Z__C zAkyZ9C;#uRi3cDYoTA>AT<|*pt{K70oZKG*S1F$r?KE=$4~W3!u53yUvh~(kMrClS zXC?Dmgv4iS`>~wBPJJFL_C8x2tEg*PCDX2=rHQ@z+Zs)Kkr;FYG`GnbUXqdipzvHE z1aZ>G6|e`}Q#)Kru0)(SZnUCN#dN2H zd1}r&xGsaAeEed9#?|0HzMGA7pl2=aehy_zsRV8RKV6+^I8woDd%4J8v9hs$x{ zl*V61wSumovRVWtetd1eJ%i^#z`_~~^B;aeuD`6LgHL66F0b^G5@om^&_3REtGmhz z%j^9{U`BH7-~P_>c_yu9sE+kk)|2`C)-ygYhR?g~gH`OK@JFAGg0O)ng-JzSZMjw< z2f&vA7@qAhrVyoz64A!JaTVa>jb5=I0cbRuTv;gMF@4bX3DVV#!VWZEo>PWHeMQtU!!7ptMzb{H ze`E4ZG!rr4A8>j2AK(A0Vh6mNY0|*1BbLhs4?>jmi6fRaQwed-Z?0d=eT@Hg zLS(%af5#q%h@txY2KaYmJBu>}ZESUv-G02~cJ-(ADz6u8rLVECbAR7+KV~a!DI83H zd!Z(Ekz%vjA-|%4-YpgfymMzxm_RjZg%ruo zT4^x)f*%Ufvg_n`&55cK;~QChP6~Fy_Z67HA`UtdW)@$Xk-2+|opk6A@y0~3Qb;V% z%+B@ArKl|Q^DJW&xuBZD#~SurH7XXf*uE0@|ccNd&MA%Ts*1 zg7TU!xY}~*AOY+tAnFR(Fu)e@^9V!Rm65$;G$-?6e%7w7p9WT098%-R?u#J+zLot@ z4H7R>G8;q~_^uxC_Z=-548YRA`r`CsPDL!^$v0Yy<^M=Jryxz5ZVR_<+qP}nwrxzi z-)Y;nZQHhO+db{>IrD$#DkHP%swyKhV(qn`H9~3h0Bd33H*DAP0S!ypZqPF^1^tZJ z{z;HN?$WJ5{0jQNzYOc|KbJ(Pr42~YhW5ohNdY*rEk=({8q+F}hy)&ziN(@q1;>jL zBN<9(k1N!p2D%uHF0NxFut`XwEMc@ZH-|95>U)PY@}C=bmV_*dakL}J5DUpNZi-y& z+{i0>H@c-g|DBO)HJ>7$VVtn)z3X}H`FuN-t>gcqLas?Lk@MJb5?u@BTn0Q}E(}S~ zXrNX`ysRv*iOn1v@fBDeSDvvR>+;o>kj ztRqEZOWN!fqp(`XQ3ppvC)c{AeyS6b_8pN1M*~0=$U;P31!~Px`Obrz;GNs(8RrJvONy<{Dk1x0z zJJzhQBt{J@&DP6cHugB!q?xi~O`yJYHUsTI zmgulx%I<*?vPSl(!tj;LL$K*k zH(*d31iyB9aYAzw49W&qDi0>f;b5kA31nz(%2W`QFJqaX0&hM`KP1gfdRw?7@}$XB z!^cUI%C!?X!QVQxbqEFSbuP0>_3MTCof6!e4LMAfGRd0;Lt+w0WK@b4EkGHRqX!h{ zrYxwwH&-fM67X7zP&Qpup&vAOaKH|S*pcbI{ksFg@tfw)paaK)5khkys0GSTnAtfC z{mVJkCXt|G-SYwt0O4dM8Hf{L*&^nOeQ271ECyc5Y&z5R0%hCq6~} z$XW$kcz!nnCTAl}NyB0#ikwyg_M};inG%*x38`EYJ%FXdj&A`g)-wJ(R=C`O^r{W` z8$1r{G0X4g`uD+}vw4`H5!*B8TTsmeaYGk3x0{&aar7ocO6?dlGbyV480<#{%^93y zF(ei<%{OYi?n?L9#HL_R-00#zRzbbwVnJ0zt}4f|KNBkT6&=Kb=$E(@aC03vU~p)7$XA@ zq5*`*4Y&u*=Ju>+x}q&Xxsjn;Dd)6Otudner9zi z<*LpeG}*vJ58#P4|qXF-ul1|u*;=-@oGPtmBnQW6VY9(s`5GMsO@!;s_PKo_? z3HbGokZ|vaAA-guf5W0JDwpV}1u8;7XJ=wD;NgcLIJW8S5w!c%O*zU0%~)0M)`!Al-+OFsmPW1zniB%fqF;klqxz`Y z2@srWa3e?B3ot|nhE|Q7VIjr+$D7F^n?wm5g8w?Ro0i72K3u^g)&&F^9~@eHd33YY z9LR!!orc0vq$sd~eR~hW{4?R3Di;~mz{^G1X?#-!|Cli(#0-sm|GHYpcab`ZA=zi3 z5*m>sJyOij{!PgIJa?A0%wL*Ur1fLJdJW$a>&Xj5p_IO=SwyTp@nn&@6L4vIfT79aPyo{LQ4DhIz1 z5g*+hII!(cLGHc5ROH&^^o=02r*x>MxMPx{JFMmNvzJ?AI8p!u_H8L1a`{6~bF@L* zxszth=`>%Vi`=E{jJKd-+6pf^vo93EzqFfTcr)A&V{rERu__UAQVyE1imol78AFmB z7T;pNFxW^M+O3#;Tz^e*`AqsD?M*wPT6pnBFPA^kOTnZYHr@O(JUQ^#6bD&CC*?HG zRAKSXYv9DU)L{V(wM=te@V@Db3}97Sn9r2nroOz06!qV=)+%EKB^MR_K}p$zM5OD1 zzhYv+?%A`7dBrU(#&1hXF;7lzH`nENZKP2I{qp^NxBA8~N>?1H@uZ~Do{d+|KYx9I z_z)J7O(;xu0%0n3o4y7LnJKRPK?RV@_v_YLogYPH;}`>cZmDVyO#%-IMQVq6z9r>@ z?*AQC$=?|aqrY8xGx%vfk0ZeByTz18IrP0XTVlJyRx5!NALYPyjcn|)U5jl^<)_KZ z2C?1|dkBZ;h8e#)3gUPfdf80xu^8evspE%Xf~x zs%phX&YuB{y}>%PuOG>s&EW}5Y0`dyseV)!C|`1(U{Nd4c4>07ZFmdTJS2T3+dEw8 zK%f_x!O?H8+_Qd>$DsYNY!?tC^H;N+!fQS{!4-9c^;uXx)D3|joo_FlBTTdDM4nx{ zPve})D_u{PG>&^G=>$2N-dZ!eMx?9X7FmPNo)7|>Z|A-mNZ0{+884L6=f-{Q4bN3y zAWL{oJIh(js2$bDTaV&bh4Fn=4^M?@N~+$IXxytdnI4{RkYA$8j(}sb2TO$~49JHz z0$K$WB@axSqKsyG>m7&3IVR+?xXLfs7ytuJHH8{`ewhkH;?H7#an)*hPiBLi22jAI z{|tZ;dU=nDUVyfIurEm0VoB6kiaK#ju6RV?{3qaV`NQ4&$)fc4AAVKiXu_1$86nxh zX)Mif*|y>N;S~7UCXQhs3-%nqNuTu>=8wqtp$-#tC?bwc-{&k&0>0nRBku-b5X931zqll&%fn$1$->@El+EIA;L zfEYJY)kaTI%H z{A%hpZ?Xt=;#(++B0e)B>4_a3E7h#8upWz!G;VQBX0rjzKvy9N2LECS2@wrBoS;4G z1PgI50DD!wtwsZ&JoAGuum9s&+0NI&_n}!kUTvpD{tyG9jlSXyQ)m9H8VXoDY$j!w zo;imjJKl;E5u|n4Q?HQsy`*&=VY`SG+YFUqG*+;A9(wKfm_|6^SWh_6>1u63)H3zEGm5Uk)#z>J0XC1L+&pzieqnAo+7zlr$M4kl;-h zjo^h7U5Y3tbY@(_{#h1et^{nbOP9Nw*tJOD;WejSG-4d{(2X$tDM@-rK8SbUqMe}%IPqxOV}m#%mq0)auvNwT2R9)$1-o(2o zpIS;qwy8m^tEBC99O}bYKd7ALbB~$d<=eGd>WML+U0aAl>{Uc8CB|oVWMt zbPe9+6&V{l2Th1)Jx`K64?gUC_<>x#Wk*SOSA<&A=j2q zo_M`Lznpsg1h-W546hm(q@Rf=xL@w5QJ;HxIp?O`;sOMovgc4n%D5`kiDO6%Rhe2^ zzPa=8pd(2&HN-=5JzsiJ^(ZlLVpZD^5!$(rt0PVLQCzh7s#6_N1dRKtQv_vTgSQT5 z63+e@K`67zjbb@QdwMNF8G29tcxAl36SZAGxolCj9aS%>(Tl*6a0eW@3j4!&d!12v z%+~Xc=>VJqBcW!D#JX3#yk4O^;#|O3!ol;J%t8>wc!*6`+`~%?-QE_M{wa&vg14R~ z(M1VT-&l-M(N1>3pNjVfvCIk}d|H4&*7{*8!W-;^tFgD31O%~NtUaK_*-m7CSEt}T zm^Z02X#cQ$Mcw}TG{>1I`vmvNoxujnPra4aSwP55x37=0VvyV<)68QB-b$o-h7p*V z#QQ8?A7`=m`*+dTfYdm=;i1ptR|In}rUF^r&{bKbI@5DT$JEo;?-N}Z13}n16v?G2 z{?@ny^7|!rg(on8b97#GupiPA<(g=o;@P`4 zEx06)SiGKkIKFHzK1M`ctf?vQV#b-{ws=+0U^*LYoTK*pu;A#NB$$I=Tv{LLVQin~ z@aGTp?J<(c_1M!Jr8MK;XA8fcB+*DkFF@oAhQ=B1o*$<@;ZdGs_5O!BKi8XjF2L4n zA&(?SaRDWm+p0UTFXj1prs!*v$(q+s=8S1h(*H8pd5*8%HGN0mgw3yvfsxr4QYT)o zzdjal^6zA56|Z@csYH^3Qr2~ZR#p|Huuh0Yt|$~>oQZJDF75aeH%UlQv)fQ=3P{i1 zRt99gL`$b61Q`pdos?W6yd&%2IWK#}$wWOa9wJW&($J4h0M|9sFtQu9k)ZtYEQ#vu zS+uD(3`7T~t?I;f%z8N~nG&FVwxGXrTL!k9s#LB}FSo;a+V-j}H^myGwQq@jTIycD zP5A{w+a;^kOQW^C%9W{j^&o@)3!v~U(?wx42E5G*bd82&a1p6ax|pk)#8nG9risCw zOERH8;tq?Q4ymxf*9_aF-sTpLvETwD#sB#ID1D+WohEt0s557Ij5)ldexY+diQJ*l ziBo;1v*vx(F|lI8udAo450QIQTmPqf(7oULr5*0dE9i>i#D&k%WyfM*4{*?_%9k>g zg1_1%x?#`Xm7M@YZ?!zJs$AxS&8sBLI@c|-vSiG<*OZyw>CL*p6#N~p z#VywqpWdZ;{ylc5d7W8E7Jx_H+5e#N$h#{ni@#TlGqz`yah-qCC_;P8?N*>CPJ03b ze(YVDvbIR$#lJEkuf}L7F8q$fKCWz&>{uFg9JgTOmA*Rux-{|#+pO`!s!!4;PlE%9ys+;|)oK%&V$*FH!G2%|y(zz>X zUwdXer0HIIJkelANg_W!ofsyiN{zi2=}G1UL{`V81}1D1Sz zviLV^w-$RE9fE4@H+ys>u;OY!sgqe&V-oFE9Fn$P9HbpOI{}esLIvc zV5S-9(XjFzn1qzo2owwg_d%7_)cR*!d&%@S&D($cFFMXXd!GdUxw5tZ_W@zRbjVfU zzx13(Hc!$teqA2WOYo^+SHpRz16DOcYqaXHSMZl2Ax$)f^WC??al8lfX9)O_p9#Ml}LB(N8yJ! zj&_UD9K54Rt#yqvhklEMZ3bRC&)(^h`#kzq-#_QN?J6eLT$ zMWG-mP;HkB@5;2*lAP&1*4C)HWEs{gtp15Y%y|*%(3UOMu*v4kTi0@pWvg2Y%7yI* z%XNlZa$@AZ(Z#Elv`5MUei~VFCjF8El)@g&>(v;E; z;laavf&ANfk9*0LA@oP4QmbCBF-lB^Mj~wo)eGG57gqAKC>Hd80Eb+7b;iJzV5RsL z8>ddQH8PnC;l{M(t4c$M=q78GW6=*d#c`-jK$q#-{9c)UNO4eLm9c!DWcCth4O-FU zboSKPhL-lq3q<)m8Xw7+l=Z)H=rGgMI0H?KrPjc;iDzY5g|Ve$8?SE`8*sb1u*>dm zD~f9~j2H~6Oo2`_1 zq@_mmUbFQV25E7XJ)zBRQktT12@qHHy-@aCdAFWv4iZVN0B3}E;k(jg>X|eqOrqgM z4yBUuA*BHdnN9v;5>3#L$NFREyHW&Q*rWYa_q zhC~>M&bMFgXC6AeQ`P-s<}Ot_x^cb51r7ArPbRRs&Dd_TEeugnjR(O#V5i6OYjzRF zw1@Rvo;_wEfQA@P%I^9ljrhxxuqf9g^cWSKq~+kiVxa`&EBDqmB=C1G+XB7`TQeiV zR_k?`$&W&+ntIPeEtM9hqcj|yfW>x7&1Ht1@;!d#Wo%1hO+^Q{E?VD|`-OvV9G?tp;6{sI%L-u)Hw z;|`uN6~VqZ!g~K#B@W7?wDcbO?XS4hnW9kS1Hbi=U_m*~7`N~3oK;qFTX$$LQ#CkL z6I?a(HkF8SKJU8mT{K35ekfP3`05!M{gmrV0E-=IyqP=N;K<&jOnPcjdXrbk$%)z9cUe|#I0unK5^+qGx8#2 zz_!bmzVG*Uat*&f4P>&sV2RswlITV}wPz?_;(S;19}e}54fP|K5l_c2kU5(-Zh!7t zz=B2HktD~ap{s%*CDEl?x6o+91T-xH895-S1}M=*KhFM7Nm&1$OB++Robv0T`OBcJ zXNX%Xio0_ryjr)!Osc7au35UM`B}Ru4zN_o+C!+s&e7|}Zc;5?whP$@J@DE`>w-XH zlVmbrI4|-Z^2^I^EzuYKD+JA@8lx%>aLFZq7KT1~lAu}8cj$<-JJ4ljkcSA;{PNr)d-6P5Z!6Q=t!t*8%X)a|;_92=XXN=WMV))*gWR-wHzU(G6FPTfSjd9) zm8e1mfj4qFmlXO*a3};$&jgc$nfG>NR&iao(jYk`%E75h=K~dJ{Jqs%UH|aGHL8)-1MOyS2B?OJsyeA_YbGMDpE+>=NFcyoI;N z>1>3G4QR2~EP{L{x2e@E1U0jGGV5H$aeigDq&Dr zQ3FwJ+& zndX7VK+XD)t06uUY=)Cfo!ke%uDpOmq^bpEB`iv6(CKTGgEZUi4ddfNXJi_z4;)ob z?R+qj2SYX*zi8z=DXChEEDW+Cy>w-0agE|A7MoRJ4}-(|go-rP#sr%a(5k%wV z&Jllj+6XuSoIfZX9|mK!bbd)7TuaHBvoa(`9C$*XUh}hH1;Q7cTJQR)c>h}Hfr$aS z64c7#D^f{mN3s#2=SEf1$(*Vj{vZjF6Qc{a=VbTske7L^EY&A1I1sgXaYSH7(lF1V zZ<7`Rq33WZuu`!HK$wRr1=uE}#&JMftnZ&(P17gWF;>$TA&$ZQnIz>blTrW@49Z&H9yhgLBpFw(57K1dbIQW4fn1X(IiFWEKmPzV8gAa|ak)HAsmcQ7stP|q0hEzBNL=4YdXEkyfS zF+K+CVB#~(qd7eeZqR-VKIYJVmK2ePk``4I^PfQ*C7NUR z`w9lb?iHv2$4_p-+a+O}Fq6SnPiz>aV!~d=l3VdgDuwAPMR9eR`)b_`lg~{oX0lf1(zbBrnj4+-q zOl^#`)XKn=`()B-jExviKVTYrAKa27KAg3cboG+}D6*R;<`GC-b?i=e;aV7n(}XDS zK5xAEV=T^r#eThV+3C<^H>SuvAP&fw;Yn67eY%4=Y(p$~!`~h12 zQHM|f0#pQP_s$Q+TtMMvBdjQbLWw9cW?gl_+P z)2T94UJaYG2!yXITYjYl-@#5_47g{N|5=P~m|e}-F)*^L+{7O$#wv2e##5Y=A{>jN z6NhQSor9ulwP3gfxTF?V`P7AJ#E)ij$I`gc2fnmp&9w6qS2-Ct}6 z$#O%mKtP>I2VUBMt^Xm3LjP*D=xEyV?|8Psb91ZEj=gM(C3^Kcfvbx*$NK+MhP>W;OneZ{Q>eFEmxv}%ZCJ32=zr_OZd>6~v@ z6+3JzX%9qOvKS393r&R9O+te&#?{Q9nLkOV-eLg9!{WK}WyUWLZ7bQ5u26*u9c*T1 z_s1)j1k5&b8&5@YnmtS{tsmQaLW2%8D*8G-9w#PcVQh6sQY`!tBpU=8EZR!zfB{f{ za<+Err#ZNM4JEx5n9!zuC#KmeI*%tRXP}jpswzymT7J{YpXdzA{J7K)j1tBF8B3DL zZXkec{`rT_{__t_`!E7veO1rg1tFzVeUTBjut*3ZOq}A$r%sWXn4v4|rA+7uMvy9n zL~2WHKLg$BeD2Wq%?frTUM^c}?K?3#L+Q2-?PR+e1Fn-XUThl8^}8JOyDZz-wcFh5 zYJCJ%J_Pf~bX(0A?Z4hGw(mY?J$j#Vo&@9O>in*f)*`H6&(Z-5xx5}$V@dR)-lxgN z=DMA_EJO4+^w_+D7N>4=%{6AbvpDG<(b)xE5Ezo~oEg~cEM?mwyY?3ZtFE;RyDS`u z(^sa_s%B<)vktqh=1|?Uv6DXsA`D^B9%_mXqx1C=a#KurOE?49)P_ixiHAA)D)oqEjQ6_v0UC9mTtMu&kf8&7uRiiigPD{$Cf(&DuOj0 zr*5{zPyO@Kq(|Ttu@wxKanV=^OPOjh-_$MbNz})ou6*9nq_XQo86WJ@JN~-b=Ln_8>Nz_ZS#QpRGt+bzH*-;{#x7PFqie+ z7p5e})fcDq)J2z=z~%nrFGFjbVu~0ICDHW3=HgtCW)?Z(%Cx$z!QuszcOCe&3!Al2 z`793RnB{Jj4QpQ2N#oKT>aY~aNxz_6B2&vPdJadbC4qp#H^<@o50}m>7WR?NO0$ZI z9OKTM+jxMFWX9mi7(@j)1Ji6~?HLU!KT0Y5a^-?|XH^B?R@T zn&a_U_XFAsGrNX@S~g1<=uz@~dCcZO=1??VC@PML{g}lbuN?j|_1S=dJgbT~o}}hs zP_uYZ&0+mWY1fupe(+6nn6<9-)Xluk97yX-!!lqSXq~!kL-=+4$Dy>O$sKO7M^1QY zhZGZfiNQu+?sef?E>5sqj$kHmf;kMv<>Gu)!^4!#7T009vBzq(m2aoHu#+93HBq7T z;Fs8IHvUlmxCB2hkDbm&xwFQcXUD_&sdeu|EYhFpf7v5_LCcVua9aunVe)qoGmyg# zIGlj&IrLKg=id@t7s916d&Gf(%X7^FFR9^bz-;*o1~Sa=`cKfJ0i}X+pBKN=?}!dP zg`ZMtP6xSuvHb=5HYH%ELaGxwqH{ zpY>Ic^}J!OwM!VmNM!$nUg$qN9DLtKuBvn1(x-P+tA*UHoOc727>5?^J;JFo_ac@) zU57%w^U2ME z@z^ZsB!AhyOscE8;~Ft$)NL)GcLteq4d32fw??L0QuWt_M9IJMgZ71Jm%2khx|QN+ zkm4zQ@OjyM+l=Rv(!k?%cYwnf7HWs^M+P^zo5o?7;E)V0v*zf}(;?ms0oUK)wKmZY)mSTGN4X@2=ZU!Gy73M(ftmHJHLFKQDcu`d% zeqiW{G`?}AtEP zKCnHuWzXZ_Hc>{cP@h~M$#q}kG{52%zmhATR3AbNGR~*6(%^Gs@UZ3i%7%PJ1mB^S zcdcrFDbD6lEJGZ4k6JT;eB_JbgIkkOqkz0I{q`d^kWl6a!%w4V?Y!;8%uU(-UA4Ti z{pv2+5CN^ba{ALpu1&qm`sMP@_L=-a)@-zC1*`f)uV5MU$xJj51%?S^ zoo@;kqY@4Zw0B!+hIvTT8KK*~9H@u54r>s{MX_|#z`Z$55bDJo#=hz~k)7CTbf>Gn z=!u;@JViT~(>P7UDdIOL;6kPDzOZNl16jLo5tHS4a%~T&AlicnCwZ5pZ;+WIB3tJE zv|J^!X0Kb|8njISx#zoB(Pv#!6=D}Uq(6Dg*ll##3kfDxdHdBXN*8dZOM0I{eLTO4 z=L}zF35GJX4Wee`#h=aCB+ZV0xcaZiLCH3bOFYTmEn0qf?uC#lOPC7>+nVeO1KQ@S zcZ5Z0gfk8hH03QrC@NnEKNi15bWP;FEKsGi0iUHN4L&2_auv%tIM}UFfgRyp5HWt()pn#0P9+xF2H!8zMqf`WJ*9YB zq~m+%xLtVjza4>CO4*%thB2k;Gv1Ani%8)IP6Pm^BAigXgOUHWcQDEgB??AtdsOx5 z+pXKfU4>+8ViRUJ;h()e88jRLEzSN7%O|=MovCW3@VxK@Z*xS$WLG=u_Nenb0wP@Y z6zs##uQ7oFvcSdh5?6kZ!%8l$Xuz^Rc!lv4q?e$mv(=#@x)s_VFF50vGuE_Nr{4zXB>y?7FOMC5^sBZr`mS*t_@%LYN9wl z+lsqD#V5JR63GEr9^&9*f)kFs zJ-A(>>!h~d0%9*wd+AY+&oryzurfV{QP{&-AtDs}#iq;dal?A9jE;huq2gExb3z+- zVQB@UHlVfsy1$)dF`dcZuc(GLnim09jrI9nJ6<#=03FVrkuINg2`RTPloS^^@KYD6 z1-C-Oj2OI0y9Tdx>=dNHhOYVvx!J#4EMhold-PGClLuLA~k2VDl6cPuV4lI5c(w9@7sllth~H@)0+v~XYqqC6&*fSX~S4Bii^0& z=M)D(5FoZsKxB&M$J_7lbS>$kF=@B|Z$#D|LHJQIr$aO51ta6s96Ug*Jk;|>9Yd$! zoF2W+)lFzY)J<>U$PHwbe9>BKLAeo~e%=Qy#qhvK&`)b2 z(U9#8bba`eGr9tr$SvM4`y`lLavOzPm`l<%-(R<1urb(AX0RE=R=#&QI)klkwrJ5%D5YHZ!~s zGwK?zKZeX|uO*Y|xLjO#6uzO%iXWsSE8#zLOWc! z&2L8sdT;bhUW495)_fGCcOLM-@DfGcb1xjf(ezYJxYOv<7YE$lBCrkbfBA{`I(GH- z(yHy1h=bg~fE$aIbB_3l`|p$R_p0b(+aL(~b<-Am9H@?s!T2*7{+*Vj?pCpV5&WJO z*GbW%PLj|(hbd!fQK5Y-kgDHV!-I$y6G>Y|&uo9+79v}}$s=l$>#F-_F{TjUn~-!M zBN>n)@(LkzI0Sg?f1s}uBZi`wRB}ywU7wqq-PwaS%3nitaXb{&Q=x!xvOPfiQmmkd zWpe2@y7?wbI;hF|hlqf@x+3@a4$wLdJ1PZBoRc9oRGgdM+vm*;5XBZcMZ+@4_{aPUS|`NsD4YP2JUM zZEvA&!QLB$K*%gHy~y-RVs-C zkN^usP)S1pZXjj)nugy#?&vpiE^DS|QlhiBOc?nC$9CK}Ze)ihI{p-m$pgYV^5L~B zQTU>)x*fvKCNK*9j$@Gyt@@I2LF8c7YvDJDCf%1h0zVyNg7E~R$`6JE1EQk~-c1xG zE@xT)TesWHs}ny!5_7F_AyGL9K?Q~mP?>Vs!(oWZR42kf?*iTV*h5>tnzpljZL8IR zb7}l8q%Ckfh{^e3k^3pQMk=gLu60`Ja8HdkzVbeAU*exs*ajmRVp}O}l)TqX!?G7e z{4-~g?Gq%~)IJJ7p1k*WSnL3jqECe1OU}5nirS66_-$3FzMT5t3X zg{jgP^5?%zb(vMa!S|1cOYk4W!vG2KKd{YFIbPCk3_74HL`fWJASs{fxpzY@$(}Q- zK5I4TKS~`mfiDoDOm;XycF6mi|K|+d=lh=@U?9_V)BDDaZAnEw43`Ls1677I-+uFi zG?^$Fbc*pPun65{D!fH=3Oyp$WZAY!{JhzaUtIgYCWXf@)AkTa@x4xGjp0c zs7@JB012~&;z=SMbCp8d=Ga{l0(iwx<@o(f!OwmyH-gBN6wewq7A_h)oKg)koFPft zNfdie%F63S?rGDQR(N=bPuK>G0t^ax$0P8`N_cvR8rOf(O9T7$9#5!B;#!XUpLZXu z5C(OESAmE*2+hV}!bg$4K%`cQHBk!>##tW>1RbC%am`*|5IbvoLh!BqpAi2OmdXqf zHp%|!N;d!LN_26809n^14YVJJBe7aL87U~>HZ)VK%d|rZp(~zwNH#VGuX!vfal&Vv z-c)h33DOB@xl*~m5ZZ22sVRK>8I9+)QMVtsAB>r~SMkGMZaQ;Xi|?~Xxnmx;cYwYx z^nNxRxGcq7I!sO#b%$!0vQ(OqXm6T4mTilvMlYj|*i|=MK%kT2df;bZGW@NrgeX>( zf7eBsjJv}pNuEuHPEs42>}a`ut-O9lZDNh)_CsBpeHKvPKnpcWh^bC2QtnB5a4qy) zSrZhafuAkk5{yiM|zdiecKh zuc2R;6^;@i07fmepeofAJdX*knDzBA{3tyVYu6z#z;Lsi&x_bzzLEpfXtH*NrY_G`= z^X!;eI#hV*mmjjEOlo{TxQwSdUv0P$!Qvijpv9plBI@FUU#RJ)8Vn1ZGA$ATqF&s= zvcTS>Z8pepd>k=sjPY^3fpCB@aW8$Oq%fW;R?GpYoT@ki@N#2LxgTk1dYZHNrk@lx z7=yYr0FT$I>z~I0nXpPp$t3)}D?2^<@KWH#E{irFy2`)5r{AyvWHYzn`5@h;GVj0@ zJ@1fbD9gX=vQNR7PG5i}jFE}9#!;ote)FHdW?VVe6v4dWEz(R?!HC4KeVde*DGr=F zRotamm=!I~=_{|m;mCI4#5{C3_gBXan1<>!K!8O|)&K?O_L`}=uKCJ-s&+!XTk?wi z%Bwa_&k>4}`a` zFCG!c^Cdj#Bc2z2PXBCW$G)<%9X6;oZiigwvMLXQ$0f+2bKDCKCGR*cG>+;UTQ2bj z(2r#Od&Ulv*{?U~hq`j8W&8aggxHo<6*$&cDG#k;GS?mLx0^7mda35tz zHTnFA6vB^rczV1Ai8I&XyJX?jiEcQ}n;PYCl~EUPIxF@V%#c7LW`44<>ezAiG>1ff zeOSeCd#PW2z5z+<4Y?Qc#tb&+uH++5^G@!BaaDeVN8x=3ZB{R=Z5e+zf&13+nz{l% z{{#>B^OaIK}1Xh z;}?)W)sfwuf~?Ov1!oiQ-@WVG>D#(JL4Ob-h*l`y&hBY*!EkULKFdt9+VGJ?E=r85 zl*~dE)e4&l8Fdq`I@T2BAme(u7_)}y$TNu^lWWK-M8UQ(ZuBcA(qHG3; z&7bO_w9Cp!REZ3VB`&kfYOCmrNQxu7pbLoFkf)9Jkas&36ZnTBL?~cDug+T3bw?o! z$U-GUnOTkujjaB8vxcenWsZ4UrH*vMmACDj!95aG?gE5-g<6v8X9%kXThF|rP(0eu za*9aK6%^Qu4oyr(1t4hqmPX~~L7tB(;C{DH&MWDzUG+6I(;TGeM)jR#hK~O13LRwk zRc2;#m|qsRADyxC<6XC8u+lvVXoH+-HNTQXImy0_oM&D=ngI3OP?c>&k8&P2iV%hg zq{#n%P=0$dYJ2o$clJWqpVH&Q;S5Hv`T0-)mU2aa$XL#RH`0~|_g zmmfHkP7#d=iuiU1lL&5T+egS~-01WrWiiA=({_yWBnY@x5eX}`?y?3Xdic;`1dn5T zxTwLw{;Qt1MSWowZ}r+U?8Q+R46Avz>o>^}4zhvZaa_*Jd(2A!dP8ah=_*lh!W#a~ zNUm{^sD#HbDq!m*EK}(GzVn4N2GeNpEp8Z<_tctC_id9X=Irqhb_{b^H;~}qwZI&F z3t^MPXp4BuDv9@1Kr3*u zZ|&i`IKW!_Rv5(CaTJBndmX9B{YL8HJ2}u)`_>#J_-m{T-xpj%|2|{xmnVF#+X3=* zY*5{hDkk6M{+!Ved>d}mD@q^#{3qo9ZYb-+75cj*gH%I+d=}E+qSCK>vj4p z81UxB7>Gz}5QU^Pv-AJ*EHMW3g`EwB^^}ps>1E2$#r*H_{O{u)J@@1m$?Pu=va`3n z?so1N_WbU8U+4Nb|AN$Gv|%%33+!xpvv3iSLv&=qIUrD|3^*|rn7cNTWHgpaH0mTS zbXS-J>ZVOG~>BOwxVSa1sk6ivguYJD`$YgKkB!awl#vZ1NenaIidf zIo;H>3%L>R^l(kGI`c9&1a9H-s~68yw>3t6~N-Bv<9hyv4@0XlT|13}n_wh4#^(`bgWSiUFD z?SO{pz~eEqAvU|UZ-MPN$ZoAzAm@B5l}5B&MB(X&#FQ{BiwixOTe9@pn>F;%(9zOZ zly7ELHP0wS+Ikfr4P>I383O6E%8Ps6HYh5VLs3+bL1$J`TkTm6$wnI&{gh;r(^g9_ zB1RO-zhYoFDSl^oIQ*3Sm`H4%TTjHtuLbN&=j+P%iuVlxfEi zjsZUV9XdHY8m9muB8q5Vz z(`L%J6y+JTwbc>-nW(k@1!b!V8X7{S8M4^jErN(9CY}WtZ%l(hygPSA0+WuRy2zYP z{I1rh;dEB2eq9TUxCz{Gyr5B`eQAc=V{W%c+@W5W-mHRf!`2j21`y@SR^7Oz6_2Pt zkOomwUO=FaWS0^zE_8fOUJ%bwuxpLG@_{*8@bC&b7t2Op`l< z@kNX+GMUc*Zm2{Mv|>~c3<+pti9iF4V#K8sFm1soxJDi@ z0hJgP6;T1hrbc}rAns8Ko;#S9v5&XknRCva_O>&b{J*(Da_#Ad?20`5$%Xl&Puge2 zx?l9eH%e}NIwyYKT%Sue)L;7I7JYB)tpVNP7pm4j0n6@>Y|3y<8rov)IM#WzE@P_p zpPF3p<9y7UBK}GHof5CwW07klGghQ%{IeT#5013G-@n^&IFHZTJJ6g~ zCL1d0jcUJO-+8y)#+Wl0=`qCJo^!~ia8$-;rOBE~#*_zRZ*s~5n>IEYEtin@n6TMCEC;3v*irJ77~dTlkH+Ea~ni&gW~z zEBWCpC22aJfc1md!}q~j@)~H{%|IZpVtGYMh}wWjmPAVGFG{e*)g0Ukf*24y3)BXV zL{F7d(CXNXPzVFQlu~e}UL~fsmSnqLDoUS5FIMR1VZnVc3TinGDcHznFA6zTs<73? z4WUqG_@f*^v&jR_Q>a63^$bI30RuiF&nnl+1=px4kSzi_XB+AxOARqt@H;ZXlCce# zxlDYVFRiA{;DaYx(}XclB2S^eT1Q#1;p=9y6{`}J_sm<1Th)5PG zzzBlA<6+TFhl2c=Jl_@yJ}518aXJd2YFCAVu-7TMwT$KZefT7 zs5NxjtWvoM1u)bqHBp$PBs0RBf))u;m?bp>hDT6vTw&Lr!dBTtgj5XtcKJWphk_H; zeH09+T|vQZQ8Efz6lS0!cG`T`QE*MzYzhh@C0zhrg|>NSMAtY9%Huc+TF>Ppkl@@zX1imQDFMlS23i7E;Qs+kyyrF{7O&UZxN+ z-QgiSOj1$l30gw2$s1etFkp1{tI8Eq=&i{Q(-jkZqNBkxHjo*)Mn|Eg=J}ZZ*M!@$ m8X&e#V;O~v<{(@8u;?|riGH1;*CyBcIM_}B>Hc%VBjPV`^lBFX diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 002b867c4..0aaefbcaf 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index 1aa94a426..f5feea6d6 100755 --- a/gradlew +++ b/gradlew @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -55,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -84,7 +86,8 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum diff --git a/gradlew.bat b/gradlew.bat index 6689b85be..9b42019c7 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -13,6 +13,8 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem @if "%DEBUG%"=="" @echo off @rem ########################################################################## @@ -43,11 +45,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,11 +59,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail diff --git a/migration-guide.md b/migration-guide.md new file mode 100644 index 000000000..9c5f5fc47 --- /dev/null +++ b/migration-guide.md @@ -0,0 +1,596 @@ +# Migration guide from `box-java-sdk` to `box-java-sdk-gen` + + + + +- [Introduction](#introduction) +- [Installation](#installation) + - [Maven](#maven) + - [Gradle](#gradle) +- [Key differences](#key-differences) + - [Manager approach](#manager-approach) + - [Immutable design](#immutable-design) + - [Consistent method signature](#consistent-method-signature) +- [Authentication](#authentication) + - [Developer Token](#developer-token) + - [JWT Auth](#jwt-auth) + - [Using JWT configuration file](#using-jwt-configuration-file) + - [Providing JWT configuration manually](#providing-jwt-configuration-manually) + - [Authenticate user](#authenticate-user) + - [Client Credentials Grant](#client-credentials-grant) + - [Obtaining Service Account token](#obtaining-service-account-token) + - [Obtaining User token](#obtaining-user-token) + - [Switching between Service Account and User](#switching-between-service-account-and-user) + - [OAuth 2.0 Auth](#oauth-20-auth) + - [Get Authorization URL](#get-authorization-url) + - [Authenticate](#authenticate) + - [Store token and retrieve token callbacks](#store-token-and-retrieve-token-callbacks) + - [Downscope token](#downscope-token) + - [Revoke token](#revoke-token) +- [Configuration](#configuration) + - [As-User header](#as-user-header) + - [Custom Base URLs](#custom-base-urls) +- [Convenience methods](#convenience-methods) + - [Chunked upload of big files](#chunked-upload-of-big-files) + + + +## Introduction + +The new `box-java-sdk-gen` SDK library, which helps Java developers to conveniently integrate with Box API. +In the contrary to the previous library (`box-java-sdk`), it is not manually maintained, but auto-generated +based on Open API Specification. This means you can leverage the most up-to-date Box API features in your +applications without delay. More information and benefits of using the new can be found in the +[README](https://github.com/box/box-java-sdk-gen/blob/main/README.md) file. + +## Installation + +To install a new Box Java SDK GENERATED library, you can use Maven or Gradle. The library is available in the +[Maven Central Repository](https://search.maven.org/artifact/com.box/box-java-sdk-gen). + +The new Box Java SDK GENERATED library could be used in the same project along with the legacy one. +If you want to use a feature available only in the new SDK, you don't need to necessarily migrate all your code +to use Box Java SDK GENERATED at once. You can use a new feature from the new library, +while keeping the rest of your code unchanged. Note that it may be required to use fully qualified class names +from the new SDK to avoid conflicts with the old one. However, we recommend to fully migrate to the new SDK eventually. + +### Maven + +To add a dependency to your Maven project, add the following to your `pom.xml` file: + +```xml + + com.box + box-java-sdk-gen + VERSION + +``` + +### Gradle + +To add a dependency to your Gradle project, add the following to your `build.gradle` file: + +```groovy +implementation 'com.box:box-java-sdk-gen:VERSION' +``` + +## Key differences + +### Manager approach + +The main difference between the old SDK and the new one is the way how API methods are aggregated into objects. + +**Old (`box-java-sdk`)** + +Firstly, in the old SDK to be able to perform any action on an API object, e.g. `User`, you first had to create its class. +To do it is required to call: + +```java +BoxUser user = new BoxUser(api, "12345"); +``` + +to create a class representing an already existing User with id '12345', or create a new one with a call: + +```java +BoxUser.Info createdUserInfo = BoxUser.createAppUser(api, "A User"); +BoxUser user = new BoxUser(api, createdUserInfo.getID()); +``` + +Then, you could perform any action on created class, which will affect the user, e.g. + +```java +BoxUser.Info info = user.new Info(); +info.setName(name); +user.updateInfo(info); +``` + +**New (`box-java-sdk-gen`)** + +In the new SDK the API methods are grouped into dedicated manager classes, e.g. `User` object +has dedicated `UserManager` class. Each manager class instance is available in `BoxClient` object. +The fields storing references to the managers are named in the plural form of the resource that the +manager handles - `client.users` for `UsersManager`. If you want to perform any operation +connected with a `User` you need to call a respective method of `UserManager`. +For example, to get info about existing user you need to call: + +```java +UserFull user = client.users.getUsersById("12345"); +``` + +or to create a new user: + +```java +CreateUserRequestBody requestBody = + new CreateUserRequestBody.Builder("John Doe").build(); +UserFull user = client.users.createUser(requestBody); +``` + +The `UserFull` object returned by both of these methods is a data class - it does not contain any methods to call. +To perform any action on `User` object, you need to still use a `UserManager` method for that. +Usually these methods have a first argument, which accepts id of the object you want to access, +e.g. to update a user name, call method: + +```java +UpdateUserByIdRequestBody requestBody = + new UpdateUserByIdRequestBody.Builder().name("Mary").build(); +UserFull updatedUser = client.users.updateUserById(user.getId(), requestBody); +``` + +### Immutable design + +The new SDK is designed to be mostly immutable. This means that methods, +which used to modify the existing object in old SDK now return a new instance of the class with the modified state. +This design pattern is used to avoid side effects and make the code more predictable and easier to reason about. +Methods, which returns a new modified instance of an object, will always have a prefix `with` in their names, e.g. + +**New (`box-java-sdk-gen`)** + +```java +BoxClient client = new BoxClient(auth); +BoxClient asUserClient = client.withAsUserHeader("USER_ID"); +``` + +### Consistent method signature + +To facilitate easier work with the new SDK, we have changed the API method signatures to be consistent and unified. + +**Old (`box-java-sdk`)** + +In the old SDK, API methods had numerous parameters, which were not grouped into any objects and were passed as separate arguments, e.g. the method for creating a sign request looked like this: + +```java +public static BoxSignRequest.Info createSignRequest(BoxAPIConnection api, List sourceFiles, + List signers, String parentFolderId, + BoxSignRequestCreateParams optionalParams) +``` + +**New (`box-java-sdk-gen`)** + +In the new SDK, we have adopted an approach of aggregating parameters into types based on their nature (path, body, query, headers). +This can be seen in the example corresponding to the above: + +```java +public SignRequest createSignRequest( + SignRequestCreateRequest requestBody, CreateSignRequestHeaders headers) +``` + +According to the convention, if an API endpoint requires a parameter placed in the URL path, it will appear at the beginning of our method, such as `fileId` in this case. When a request allows for a body, as in `POST` or `PUT`, the method includes a parameter named `requestBody`. Following that, the method signature may include the `queryParams` parameter, followed by `headers`. + +The types of parameters `requestBody`, `queryParams`, and `headers` are specific to each endpoint and, in their definition, encompass all fields allowed by the API. + +It's worth noting here that when all fields of a particular type are optional, the entire parameter becomes optional as well. This allows us to pass only the parameters we actually want to provide when calling a given method, without the risk of not providing a sufficient number of parameters. + +## Authentication + +The Box Java SDK Gen library offers the same authentication methods as the legacy one. +Let's see the differences of their usage: + +### Developer Token + +**Old (`box-java-sdk`)** + +```java +BoxAPIConnection api = new BoxAPIConnection("YOUR-DEVELOPER-TOKEN"); +``` + +The new SDK provides a convenient `BoxDeveloperTokenAuth`, which allows authenticating +using developer token without necessity to provide a Client ID and Client Secret + +**New (`box-java-sdk-gen`)** + +```java +BoxDeveloperTokenAuth auth = new BoxDeveloperTokenAuth("YOUR-DEVELOPER-TOKEN"); +BoxClient client = new BoxClient(auth); +``` + +### JWT Auth + +#### Using JWT configuration file + +**Old (`box-java-sdk`)** + +The static method, which reads the JWT configuration file has been changed: + +```java +Reader reader = new FileReader("src/example/config/config.json"); +BoxConfig boxConfig = BoxConfig.readFrom(reader); +IAccessTokenCache tokenCache = new InMemoryLRUAccessTokenCache(100); +BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection.getAppEnterpriseConnection(boxConfig, tokenCache); +``` + +**New (`box-java-sdk-gen`)** + +```java +TokenStorage tokenStorage = new InMemoryTokenStorage(); // or any other implementation of TokenStorage +JWTConfig config = JWTConfig.fromConfigFile("src/example/config/config.json", tokenStorage); +BoxJWTAuth auth = new BoxJWTAuth(config); +BoxClient client = new BoxClient(auth); +``` + +#### Providing JWT configuration manually + +Some params in `JWTConfig` constructor have slightly different names than one in old `JWTAuth` class. + +**Old (`box-java-sdk`)** + +```java +JWTEncryptionPreferences jwtPreferences = new JWTEncryptionPreferences(); +jwtPreferences.setPublicKeyID("PUBLIC-KEY-ID"); +jwtPreferences.setPrivateKeyPassword("PRIVATE-KEY-PASSWORD"); +jwtPreferences.setPrivateKey("PRIVATE-KEY"); +jwtPreferences.setEncryptionAlgorithm(EncryptionAlgorithm.RSA_SHA_256); + +IAccessTokenCache accessTokenCache = new InMemoryLRUAccessTokenCache(100); +BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection + .getUserConnection("USER-ID", "CLIENT-ID","CLIENT-SECRET", jwtPreferences, accessTokenCache); + +BoxUser.Info userInfo = BoxUser.getCurrentUser(api).getInfo(); +``` + +**New (`box-java-sdk-gen`)** + +```java +TokenStorage tokenStorage = new InMemoryTokenStorage(); +JWTConfig config = new JWTConfig.Builder("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET", "JWT_KEY_ID", "PRIVATE_KEY", "PRIVATE_KEY_PASSWORD") + .enterpriseId("123456") + .tokenStorage(tokenStorage) + .build(); +BoxJWTAuth auth = new BoxJWTAuth(config); +BoxClient client = new BoxClient(auth); +``` + +#### Authenticate user + +In old SDK method for user authentication was named `BoxDeveloperEditionAPIConnection getUserConnection(String userId, BoxConfig boxConfig, IAccessTokenCache accessTokenCache)` +and was accepting user id. The method was returning a new instance of `BoxDeveloperEditionAPIConnection` class, which was exchanging the existing token with the one with the user access. + +**Old (`box-java-sdk`)** + +```java +BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection.getUserConnection("USER_ID", boxConfig, tokenCache); +``` + +**New (`box-java-sdk-gen`)** + +In new SDK, to authenticate as user you need to call +`public BoxJWTAuth withUserSubject(String userId, TokenStorage tokenStorage)` method with id of the user +to authenticate. The method returns a new instance of `BoxJWTAuth` class, which will perform authentication call +in scope of the user on the first API call. The `tokenStorage` parameter is optional and allows to provide a custom +token storage for the new instance of `BoxJWTAuth` class. The new auth instance can be used to create a new user client +instance. + +```java +BoxJWTAuth userAuth = auth.withUserSubject("USER_ID"); +BoxClient userClient = new BoxClient(userAuth); +``` + +### Client Credentials Grant + +#### Obtaining Service Account token + +To authenticate as enterprise, the only difference between the old and the new SDK, +is using the `CCGConfig` as a middle step. + +**Old (`box-java-sdk`)** + +```java +BoxCCGAPIConnection api = BoxCCGAPIConnection.applicationServiceAccountConnection( + "client_id", + "client_secret", + "enterprise_id" +); +``` + +**New (`box-java-sdk-gen`)** + +```java +CCGConfig config = new CCGConfig.Builder("YOUR_CLIENT", "YOUR_CLIENT_SECRET") + .enterpriseId("ENTERPRISE_ID") + .build(); +BoxCCGAuth auth = new BoxCCGAuth(config); +BoxClient client = new BoxClient(auth); +``` + +#### Obtaining User token + +To authenticate as user, the only difference between the old and the new SDK, is using the `CCGConfig` as a middle step. + +**Old (`box-java-sdk`)** + +```java +BoxCCGAPIConnection api = BoxCCGAPIConnection.userConnection( + "client_id", + "client_secret", + "user_id" +); +``` + +**New (`box-java-sdk-gen`)** + +```java +CCGConfig config = new CCGConfig.Builder("YOUR_CLIENT", "YOUR_CLIENT_SECRET") + .userId("USER_ID") + .build(); +BoxCCGAuth auth = new BoxCCGAuth(config); +BoxClient client = new BoxClient(auth); +``` + +### Switching between Service Account and User + +In old SDK, if you want to switch between the Service Account and User, you need to create another API connection. + +In the new SDK, to keep the immutability design, the methods switching authenticated subject were replaced with methods +returning a new instance of `BoxCCGAuth` class. The new instance will fetch a new token on the next API call. +The new auth instance can be used to create a new client instance. You can also specify `tokenStorage` parameter +to provide a custom token storage for the new instance. +The old instance of `BoxCCGAuth` class will remain unchanged and will still use the old token. + +**New (`box-java-sdk-gen`)** + +```java +BoxCCGAuth userAuth = auth.withUserSubject("USER_ID"); +BoxClient userClient = new BoxClient(userAuth); +``` + +```java +BoxCCGAuth entAuth = auth.withEnterpriseSubject("ENTERPRISE_ID"); +BoxClient entClient = new BoxClient(entAuth); +``` + +### OAuth 2.0 Auth + +#### Get Authorization URL + +To get authorization url in the new SDK, you need to first create the `BoxOAuth` class using +`OAuthConfig` class. Then to get authorization url, call +`public String getAuthorizeUrl(GetAuthorizeUrlOptions options)`. Note that this method accepts the instance of `GetAuthorizeUrlOptions` class, which allows specifying extra options to API call. + +**Old (`box-java-sdk`)** + +In the old SDK, we did not have any method to get the authorization URL. Instead, we had to manually create the URL. + +```java +String authorizationUrl = "https://account.box.com/api/oauth2/authorize?client_id=[CLIENT_ID]&response_type=code"; +``` + +**New (`box-java-sdk-gen`)** + +```java +BoxOAuth auth = new BoxOAuth(new OAuthConfig.Builder("CLIENT_ID", "CLIENT_SECRET").build()); +String authorizationUrl = auth.getAuthorizeUrl(); +``` + +#### Authenticate + +The method for authenticating using the authorization code has been changed. With the old SDK, you had to provide the authorization code to the `BoxAPIConnection` class constructor. In the new SDK, you need to call the `public AccessToken getTokensAuthorizationCodeGrant(String authorizationCode)` method of the `BoxOAuth` class. +The method now returns an AccessToken object with `accessToken` and `refreshToken` fields, +while the old one was creating a new instance of `BoxAPIConnection` class. + +**Old (`box-java-sdk`)** + +```java +BoxAPIConnection client = new BoxAPIConnection( + "[CLIENT_ID]", + "[CLIENT_SECRET]", + "[CODE]" +); +``` + +**New (`box-java-sdk-gen`)** + +```java +auth.getTokensAuthorizationCodeGrant("AUTHORIZATION_CODE"); +BoxClient client = new BoxClient(auth); +``` + +### Store token and retrieve token callbacks + +In the new SDK you can define your own class delegated for storing and retrieving a token. It has to inherit from +`TokenStorage` and implement all of its abstract methods. Next step would be to pass an instance of this class to the +AuthConfig constructor. + +**New (`box-java-sdk-gen`)** + +```java +TokenStorage customTokenStorage = new TokenStorage() { + @Override + public void store(AccessToken accessToken) { + // Store the access token + } + + @Override + public AccessToken get() { + // Retrieve the access token + return null; + } + + @Override + public void clear() { + // Clear the access token + } +}; + +OAuthConfig config = new OAuthConfig.Builder("CLIENT_ID", "CLIENT_SECRET") + .tokenStorage(customTokenStorage) + .build(); +BoxOAuth auth = new BoxOAuth(config); +``` + +or reuse one of the provided implementations: `InMemoryTokenStorage`: + +```java +TokenStorage tokenStorage = new InMemoryTokenStorage(); +OAuthConfig config = new OAuthConfig.Builder("CLIENT_ID", "CLIENT_SECRET") + .tokenStorage(tokenStorage) + .build(); +BoxOAuth auth = new BoxOAuth(config); +``` + +### Downscope token + +The process of downscoping token in the new SDK is similar to the old one. The main difference is that in the new SDK +you need to call `downscopeToken` method of the `BoxOAuth` class instead of `getLowerScopedToken` method of the `BoxAPIConnection` class. + +**Old (`box-java-sdk`)** + +```java +BoxAPIConnection api = new BoxAPIConnection("YOUR-ACCESS-TOKEN"); + +String resource = "https://api.box.com/2.0/files/RESOURCE-ID"; +List scopes = new ArrayList(); +scopes.add("item_preview"); +scopes.add("item_content_upload"); + +ScopedToken token = api.getLowerScopedToken(scopes, resource); +``` + +**New (`box-java-sdk-gen`)** + +```java +String resource = "https://api.box.com/2.0/files/123456789"; +List scopes = List.of("item_preview"); +AccessToken downscopedToken = auth.downscopeToken(scopes, resource, null, null); +BoxDeveloperTokenAuth downscopedAuth = new BoxDeveloperTokenAuth(downscopedToken.getAccessToken()); +BoxClient downscopedClient = new BoxClient(downscopedAuth); +``` + +### Revoke token + +To revoke current client's tokens in the new SDK, you need to call `revokeToken` method of the auth class instead of +`revoke` method. + +**Old (`box-java-sdk`)** + +```java +BoxAPIConnection api = new BoxAPIConnection("YOUR-ACCESS-TOKEN"); +api.revokeToken(); +``` + +**New (`box-java-sdk-gen`)** + +```java +client.auth.revokeToken() +``` + +## Configuration + +### As-User header + +The As-User header is used by enterprise admins to make API calls on behalf of their enterprise's users. +This requires the API request to pass an `As-User: USER-ID` header. The following examples assume that the client has +been instantiated with an access token with appropriate privileges to make As-User calls. + +In old SDK you could call client `asUser(String userID)` method to create a new client to impersonate the provided user. + +**Old (`box-java-sdk`)** + +```java +BoxAPIConnection api = new BoxAPIConnection("YOUR-ACCESS-TOKEN"); +api.asUser("USER-ID"); +``` + +**New (`box-java-sdk-gen`)** + +In the new SDK the method was renamed to `withAsUserHeader` in the `BoxClient` class, +and returns a new instance of `BoxClient` class with the As-User header appended to all API calls made by the client. +The method accepts only user id as a parameter. + +```java +BoxClient userClient = client.withAsUserHeader("USER-ID"); +``` + +Additionally `BoxClient` offers a `withExtraHeaders(Map extraHeaders)` +method, which allows you to specify the custom set of headers, which will be included in every API call made by client. +Calling the `client.withExtraHeaders()` method creates a new client, leaving the original client unmodified. + +```java +BoxClient clientWithExtraHeaders = client.withExtraHeaders(new HashMap<>() {{ + put("X-My-Header", "124"); +}}); + +``` + +### Custom Base URLs + +**Old (`box-java-sdk`)** + +In old SDK you could specify the custom base URLs, which will be used for API calls made by setting +the new values of static variables of the `API` class. + +```java +BoxAPIConnection api = new BoxAPIConnection("YOUR-DEVELOPER-TOKEN"); +api.setBaseAppUrl("https://example.app.com"); +api.setBaseURL("https://example.com"); +api.setUploadURL("https://upload.example.com"); +api.setTokenURL("https://example.com/token"); +``` + +**New (`box-java-sdk-gen`)** + +In the new SDK this functionality has been implemented as part of the `BoxClient` class. +By calling the `client.withCustomBaseUrls()` method, you can specify the custom base URLs that will be used for API +calls made by client. Following the immutability pattern, this call creates a new client, leaving the original client unmodified. + +```java +BaseUrls baseUrls = new BaseUrls.Builder() + .baseUrl("https://new-base-url.com") + .uploadUrl("https://my-company-upload-url.com") + .oauth2Url("https://my-company.com/oauth2") + .build(); +BoxClient clientWithCustomBaseUrl = client.withCustomBaseUrls(baseUrls); +``` + +## Convenience methods + +### Chunked upload of big files + +For large files or in cases where the network connection is less reliable, you may want to upload the file in parts. +This allows a single part to fail without aborting the entire upload, and failed parts are being retried automatically. + +**Old (`box-java-sdk`)** + +In the old SDK, you could use the `uploadLargeFile` method of the `BoxFolder` class to upload a large file. +This method accepted a `FileInputStream` as the input stream and the file size as a parameter. The method also required + +```java +File myFile = new File("My Large_File.txt"); +FileInputStream stream = new FileInputStream(myFile); + +BoxFolder rootFolder = BoxFolder.getRootFolder(api); +BoxFile.Info fileInfo = rootFolder.uploadLargeFile(inputStream, "My_Large_File.txt", myFile.length()); +``` + +**New (`box-java-sdk-gen`)** + +In the new SDK, the equivalent method is `chunked_uploads.uploadBigFile()`. It accepts a file-like object +as the `file` parameter, and the `fileName` and `fileSize` parameters are now passed as arguments. +The `parentFolderId` parameter is also required to specify the folder where the file will be uploaded. + +```java +InputStream file = new FileInputStream(myFile); +String fileName = "My_Large_File.txt"; +long fileSize = 1234556L; +String parentFolderId = "123456789"; + +File uploadedFile = client.getChunkedUploads().uploadBigFile(file, fileName, fileSize, parentFolderId); +``` diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 000000000..993d21680 --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +rootProject.name = "box-java-sdk-gen" diff --git a/src/example/config/config.json b/src/example/config/config.json deleted file mode 100644 index b430e777f..000000000 --- a/src/example/config/config.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "boxAppSettings": { - "clientID": "", - "clientSecret": "", - "appAuth": { - "publicKeyID": "", - "privateKey": "", - "passphrase": "" - } - }, - "enterpriseID": "" -} diff --git a/src/example/java/com/box/sdk/example/AccessAsAppUser.java b/src/example/java/com/box/sdk/example/AccessAsAppUser.java deleted file mode 100644 index c9aee4890..000000000 --- a/src/example/java/com/box/sdk/example/AccessAsAppUser.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.box.sdk.example; - -import com.box.sdk.BoxConfig; -import com.box.sdk.BoxDeveloperEditionAPIConnection; -import com.box.sdk.BoxFolder; -import com.box.sdk.BoxItem; -import com.box.sdk.BoxLogger; -import com.box.sdk.BoxUser; -import com.box.sdk.IAccessTokenCache; -import com.box.sdk.InMemoryLRUAccessTokenCache; -import java.io.FileReader; -import java.io.IOException; -import java.io.Reader; - - -public final class AccessAsAppUser { - - private static final String USER_ID = ""; - private static final int MAX_DEPTH = 1; - private static final int MAX_CACHE_ENTRIES = 100; - - private AccessAsAppUser() { - } - - public static void main(String[] args) throws IOException { - // Limit logging messages to prevent polluting the output. - BoxLogger.defaultLogger().setLevelToWarning(); - - //It is a best practice to use an access token cache to prevent unneeded requests to Box for access tokens. - //For production applications it is recommended to use a distributed cache like Memcached or Redis, and to - //implement IAccessTokenCache to store and retrieve access tokens appropriately for your environment. - IAccessTokenCache accessTokenCache = new InMemoryLRUAccessTokenCache(MAX_CACHE_ENTRIES); - - Reader reader = new FileReader("src/example/config/config.json"); - BoxConfig boxConfig = BoxConfig.readFrom(reader); - - BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection - .getUserConnection(USER_ID, boxConfig, accessTokenCache); - - BoxUser.Info userInfo = BoxUser.getCurrentUser(api).getInfo(); - System.out.format("Welcome, %s!\n\n", userInfo.getName()); - - BoxFolder rootFolder = BoxFolder.getRootFolder(api); - listFolder(rootFolder, 0); - } - - private static void listFolder(BoxFolder folder, int depth) { - for (BoxItem.Info itemInfo : folder) { - StringBuilder indent = new StringBuilder(); - for (int i = 0; i < depth; i++) { - indent.append(" "); - } - - System.out.println(indent + itemInfo.getName()); - if (itemInfo instanceof BoxFolder.Info) { - BoxFolder childFolder = (BoxFolder) itemInfo.getResource(); - if (depth < MAX_DEPTH) { - listFolder(childFolder, depth + 1); - } - } - } - } -} diff --git a/src/example/java/com/box/sdk/example/BoxDeveloperEditionAPIConnectionAsEnterpriseUser.java b/src/example/java/com/box/sdk/example/BoxDeveloperEditionAPIConnectionAsEnterpriseUser.java deleted file mode 100644 index c36a50206..000000000 --- a/src/example/java/com/box/sdk/example/BoxDeveloperEditionAPIConnectionAsEnterpriseUser.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.box.sdk.example; - -import com.box.sdk.BoxConfig; -import com.box.sdk.BoxDeveloperEditionAPIConnection; -import com.box.sdk.BoxLogger; -import com.box.sdk.BoxUser; -import com.box.sdk.DeveloperEditionEntityType; -import com.box.sdk.IAccessTokenCache; -import com.box.sdk.InMemoryLRUAccessTokenCache; -import java.io.FileReader; -import java.io.IOException; -import java.io.Reader; - -public final class BoxDeveloperEditionAPIConnectionAsEnterpriseUser { - - private static final String USER_ID = ""; - private static final int MAX_DEPTH = 1; - private static final int MAX_CACHE_ENTRIES = 100; - - private static BoxDeveloperEditionAPIConnection api; - - private BoxDeveloperEditionAPIConnectionAsEnterpriseUser() { - } - - public static void main(String[] args) throws IOException { - // Limit logging messages to prevent polluting the output. - BoxLogger.defaultLogger().setLevelToWarning(); - - //It is a best practice to use an access token cache to prevent unneeded requests to Box for access tokens. - //For production applications it is recommended to use a distributed cache like Memcached or Redis, and to - //implement IAccessTokenCache to store and retrieve access tokens appropriately for your environment. - IAccessTokenCache accessTokenCache = new InMemoryLRUAccessTokenCache(MAX_CACHE_ENTRIES); - - Reader reader = new FileReader("src/example/config/config.json"); - BoxConfig boxConfig = BoxConfig.readFrom(reader); - - api = new BoxDeveloperEditionAPIConnection(USER_ID, DeveloperEditionEntityType.USER, boxConfig, - accessTokenCache); - - BoxUser.Info userInfo = BoxUser.getCurrentUser(api).getInfo(); - System.out.format("Welcome, %s!\n\n", userInfo.getName()); - } -} diff --git a/src/example/java/com/box/sdk/example/CreateAppUser.java b/src/example/java/com/box/sdk/example/CreateAppUser.java deleted file mode 100644 index 00ba03a63..000000000 --- a/src/example/java/com/box/sdk/example/CreateAppUser.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.box.sdk.example; - -import com.box.sdk.BoxConfig; -import com.box.sdk.BoxDeveloperEditionAPIConnection; -import com.box.sdk.BoxLogger; -import com.box.sdk.BoxUser; -import com.box.sdk.CreateUserParams; -import com.box.sdk.IAccessTokenCache; -import com.box.sdk.InMemoryLRUAccessTokenCache; -import java.io.FileReader; -import java.io.IOException; -import java.io.Reader; - - -public final class CreateAppUser { - - private static final String APP_USER_NAME = ""; - private static final String EXTERNAL_APP_USER_ID = ""; - private static final int MAX_CACHE_ENTRIES = 100; - - private CreateAppUser() { - } - - public static void main(String[] args) throws IOException { - // Limit logging messages to prevent polluting the output. - BoxLogger.defaultLogger().setLevelToWarning(); - - - //It is a best practice to use an access token cache to prevent unneeded requests to Box for access tokens. - //For production applications it is recommended to use a distributed cache like Memcached or Redis, and to - //implement IAccessTokenCache to store and retrieve access tokens appropriately for your environment. - IAccessTokenCache accessTokenCache = new InMemoryLRUAccessTokenCache(MAX_CACHE_ENTRIES); - - Reader reader = new FileReader("src/example/config/config.json"); - BoxConfig boxConfig = BoxConfig.readFrom(reader); - - BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection.getAppEnterpriseConnection( - boxConfig, accessTokenCache); - - CreateUserParams params = new CreateUserParams(); - params.setSpaceAmount(1073741824); //1 GB - //This optional param can be used to store any id, like an email, of the user - //for which the associated app user is being created. - params.setExternalAppUserId(EXTERNAL_APP_USER_ID); - BoxUser.Info user = BoxUser.createAppUser(api, APP_USER_NAME, params); - - System.out.format("User created with name %s and id %s\n\n", APP_USER_NAME, user.getID()); - } -} diff --git a/src/example/java/com/box/sdk/example/Main.java b/src/example/java/com/box/sdk/example/Main.java deleted file mode 100644 index 5cbc33f72..000000000 --- a/src/example/java/com/box/sdk/example/Main.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.box.sdk.example; - -import com.box.sdk.BoxAPIConnection; -import com.box.sdk.BoxFolder; -import com.box.sdk.BoxItem; -import com.box.sdk.BoxLogger; -import com.box.sdk.BoxUser; - -public final class Main { - private static final String DEVELOPER_TOKEN = ""; - private static final int MAX_DEPTH = 1; - - private Main() { - } - - public static void main(String[] args) { - // Limit logging messages to prevent polluting the output. - BoxLogger.defaultLogger().setLevelToWarning(); - - BoxAPIConnection api = new BoxAPIConnection(DEVELOPER_TOKEN); - - BoxUser.Info userInfo = BoxUser.getCurrentUser(api).getInfo(); - System.out.format("Welcome, %s <%s>!\n\n", userInfo.getName(), userInfo.getLogin()); - - BoxFolder rootFolder = BoxFolder.getRootFolder(api); - listFolder(rootFolder, 0); - } - - private static void listFolder(BoxFolder folder, int depth) { - for (BoxItem.Info itemInfo : folder) { - StringBuilder indent = new StringBuilder(); - for (int i = 0; i < depth; i++) { - indent.append(" "); - } - - System.out.println(indent + itemInfo.getName()); - if (itemInfo instanceof BoxFolder.Info) { - BoxFolder childFolder = (BoxFolder) itemInfo.getResource(); - if (depth < MAX_DEPTH) { - listFolder(childFolder, depth + 1); - } - } - } - } -} diff --git a/src/example/java/com/box/sdk/example/SearchExamplesAsAppUser.java b/src/example/java/com/box/sdk/example/SearchExamplesAsAppUser.java deleted file mode 100644 index f69dc92ce..000000000 --- a/src/example/java/com/box/sdk/example/SearchExamplesAsAppUser.java +++ /dev/null @@ -1,355 +0,0 @@ -package com.box.sdk.example; - -import com.box.sdk.BoxConfig; -import com.box.sdk.BoxDeveloperEditionAPIConnection; -import com.box.sdk.BoxItem; -import com.box.sdk.BoxMetadataFilter; -import com.box.sdk.BoxSearch; -import com.box.sdk.BoxSearchParameters; -import com.box.sdk.BoxUser; -import com.box.sdk.DateRange; -import com.box.sdk.IAccessTokenCache; -import com.box.sdk.InMemoryLRUAccessTokenCache; -import com.box.sdk.PartialCollection; -import com.box.sdk.SizeRange; -import java.io.FileReader; -import java.io.IOException; -import java.io.Reader; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; - -public final class SearchExamplesAsAppUser { - - private static final String USER_ID = ""; - private static final int MAX_CACHE_ENTRIES = 100; - - private static BoxDeveloperEditionAPIConnection api; - - private SearchExamplesAsAppUser() { - } - - public static void main(String[] args) throws IOException { - // Limit logging messages to prevent polluting the output. - Logger.getLogger("com.box.sdk").setLevel(Level.WARNING); - - //It is a best practice to use an access token cache to prevent unneeded requests to Box for access tokens. - //For production applications it is recommended to use a distributed cache like Memcached or Redis, and to - //implement IAccessTokenCache to store and retrieve access tokens appropriately for your environment. - IAccessTokenCache accessTokenCache = new InMemoryLRUAccessTokenCache(MAX_CACHE_ENTRIES); - - Reader reader = new FileReader("src/example/config/config.json"); - BoxConfig boxConfig = BoxConfig.readFrom(reader); - - api = BoxDeveloperEditionAPIConnection.getUserConnection(USER_ID, boxConfig, accessTokenCache); - - BoxUser.Info userInfo = BoxUser.getCurrentUser(api).getInfo(); - System.out.format("Welcome, %s!\n\n", userInfo.getName()); - - BoxSearch boxSearch = new BoxSearch(api); - - searchExample(boxSearch); - } - - private static void searchExample(BoxSearch bs) { - /** - * Use this class to specify all the different search parameters that you may want to use. - * Examples include: type, contentType, folderId's, metadata filters, created, updated. - * Also shows how to incrementally crawl result sets. - */ - BoxSearchParameters bsp = new BoxSearchParameters(); - - fileExtensionExample(bsp, bs); - ownerIdFilterExample(bsp, bs); - contentTypeFilterExample(bsp, bs); - createdDateFilterExample(bsp, bs); - updatedDateFilterExample(bsp, bs); - metaDataFilterDropdownExample(bsp, bs); - metaDataFilterGreaterThanNumberExample(bsp, bs); - metaDataFilterLessThanNumberExample(bsp, bs); - metaDataFilterGreaterThanDateExample(bsp, bs); - metaDataFilterLessThanDateExample(bsp, bs); - metaDataFilterGreaterLessThanDateExample(bsp, bs); - - } - - public static void crawlSearchResultExample(BoxSearchParameters bsp, BoxSearch bs) { - /** - * Example of how to crawl more than 1000+ results in a search query - */ - - //Setup Result Partial Object - PartialCollection searchResults; - - //Starting point of the result set - long offset = 0; - //Number of results that would be pulled back - long limit = 1000; - - //Storing the full size of the results - long fullSizeOfResult = 0; - - while (offset <= fullSizeOfResult) { - searchResults = bs.searchRange(offset, limit, bsp); - fullSizeOfResult = searchResults.fullSize(); - - print("offset: " + offset + " of fullSizeOfResult: " + fullSizeOfResult); - printSearchResults(searchResults); - - offset += limit; - } - } - - public static void fileExtensionExample(BoxSearchParameters bsp, BoxSearch bs) { - - print("******File Extension Search******"); - List fileExtensions = new ArrayList<>(); - fileExtensions.add("png"); - fileExtensions.add("docx"); - - List ancestorFolderIds = new ArrayList<>(); - ancestorFolderIds.add("6725599265"); - - bsp.setFileExtensions(fileExtensions); - bsp.setAncestorFolderIds(ancestorFolderIds); - bsp.setQuery("Testing"); - - crawlSearchResultExample(bsp, bs); - } - - public static void ownerIdFilterExample(BoxSearchParameters bsp, BoxSearch bs) { - - print("******Owner Id's Filter Search******"); - List ownerUserIds = new ArrayList<>(); - ownerUserIds.add("268117237"); - - bsp.clearParameters(); - bsp.setQuery("Assemble"); - bsp.setOwnerUserIds(ownerUserIds); - - crawlSearchResultExample(bsp, bs); - - } - - public static void contentTypeFilterExample(BoxSearchParameters bsp, BoxSearch bs) { - print("*****Description Search******"); - List contentTypes = new ArrayList<>(); - contentTypes.add("description"); - - bsp.clearParameters(); - bsp.setContentTypes(contentTypes); - bsp.setQuery("test"); - - crawlSearchResultExample(bsp, bs); - } - - public static void createdDateFilterExample(BoxSearchParameters bsp, BoxSearch bs) { - print("*****Created Date Range Search******"); - bsp.clearParameters(); - try { - SimpleDateFormat sdf = new SimpleDateFormat("M-dd-yyyy hh:mm:ss"); - String createdFromDateString = "01-31-2016 00:00:00"; - String createdToDateString = "04-01-2016 00:00:00"; - - Date createdFromDate = sdf.parse(createdFromDateString); - Date createdToDate = sdf.parse(createdToDateString); - - DateRange createdRange = new DateRange(createdFromDate, createdToDate); - - bsp.setCreatedRange(createdRange); - bsp.setQuery("File"); - - crawlSearchResultExample(bsp, bs); - - } catch (ParseException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - public static void updatedDateFilterExample(BoxSearchParameters bsp, BoxSearch bs) { - print("*****Updated Date Range Search******"); - bsp.clearParameters(); - try { - SimpleDateFormat sdf = new SimpleDateFormat("M-dd-yyyy hh:mm:ss"); - String updatedFromDateString = "01-31-2016 00:00:00"; - String updatedToDateString = "05-01-2016 00:00:00"; - - Date updatedFromDate = sdf.parse(updatedFromDateString); - Date updatedToDate = sdf.parse(updatedToDateString); - - - DateRange updatedRange = new DateRange(updatedFromDate, updatedToDate); - - bsp.setUpdatedRange(updatedRange); - bsp.setQuery("File"); - - crawlSearchResultExample(bsp, bs); - - } catch (ParseException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - public static void metaDataFilterDropdownExample(BoxSearchParameters bsp, BoxSearch bs) { - print("******Metadata Filter Search Dropdown Value Check******"); - bsp.clearParameters(); - - BoxMetadataFilter bmf = new BoxMetadataFilter(); - bmf.setScope("enterprise"); - bmf.setTemplateKey("test"); - - SizeRange sizeRange = new SizeRange(12, 19); - bmf.addNumberRangeFilter("testnumber", sizeRange); - - bmf.addFilter("test", "example"); - - bsp.setMetadataFilter(bmf); - - crawlSearchResultExample(bsp, bs); - } - - public static void metaDataFilterGreaterThanNumberExample(BoxSearchParameters bsp, BoxSearch bs) { - print("******Metadata Filter Search Numbers Greater Than******"); - bsp.clearParameters(); - - BoxMetadataFilter bmf = new BoxMetadataFilter(); - bmf.setScope("enterprise"); - bmf.setTemplateKey("test"); - - SizeRange sizeRange = new SizeRange(20, 0); - bmf.addNumberRangeFilter("testnumber", sizeRange); - - bsp.setMetadataFilter(bmf); - - crawlSearchResultExample(bsp, bs); - } - - public static void metaDataFilterLessThanNumberExample(BoxSearchParameters bsp, BoxSearch bs) { - print("******Metadata Filter Search Numbers Less Than******"); - bsp.clearParameters(); - - BoxMetadataFilter bmf = new BoxMetadataFilter(); - bmf.setScope("enterprise"); - bmf.setTemplateKey("test"); - - SizeRange sizeRange = new SizeRange(0, 20); - bmf.addNumberRangeFilter("testnumber", sizeRange); - - bsp.setMetadataFilter(bmf); - - crawlSearchResultExample(bsp, bs); - } - - public static void metaDataFilterGreaterThanDateExample(BoxSearchParameters bsp, BoxSearch bs) { - print("******Metadata Filter Search Date Greater Than******"); - try { - bsp.clearParameters(); - - BoxMetadataFilter bmf = new BoxMetadataFilter(); - bmf.setScope("enterprise"); - bmf.setTemplateKey("test"); - - SimpleDateFormat sdf = new SimpleDateFormat("M-dd-yyyy hh:mm:ss"); - String dateGreaterThanString = "03-01-2016 00:00:00"; - - Date dateGreaterThan = sdf.parse(dateGreaterThanString); - - DateRange dr = new DateRange(dateGreaterThan, null); - - bmf.addDateRangeFilter("testDate", dr); - - bsp.setMetadataFilter(bmf); - - crawlSearchResultExample(bsp, bs); - - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - } - - public static void metaDataFilterLessThanDateExample(BoxSearchParameters bsp, BoxSearch bs) { - print("******Metadata Filter Search Date Less Than******"); - try { - bsp.clearParameters(); - - BoxMetadataFilter bmf = new BoxMetadataFilter(); - bmf.setScope("enterprise"); - bmf.setTemplateKey("test"); - - SimpleDateFormat sdf = new SimpleDateFormat("M-dd-yyyy hh:mm:ss"); - String dateLessThanString = "05-03-2016 00:00:00"; - - - Date dateLessThan = sdf.parse(dateLessThanString); - - DateRange dr = new DateRange(null, dateLessThan); - - bmf.addDateRangeFilter("testDate", dr); - - bsp.setMetadataFilter(bmf); - - crawlSearchResultExample(bsp, bs); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - public static void metaDataFilterGreaterLessThanDateExample(BoxSearchParameters bsp, BoxSearch bs) { - print("******Metadata Filter Search Date Range Both GT and LT******"); - try { - bsp.clearParameters(); - - BoxMetadataFilter bmf = new BoxMetadataFilter(); - bmf.setScope("enterprise"); - bmf.setTemplateKey("test"); - - SimpleDateFormat sdf = new SimpleDateFormat("M-dd-yyyy hh:mm:ss"); - String dateLessThanString = "05-15-2016 00:00:00"; - String dateGreaterThanString = "03-01-2016 00:00:00"; - - Date dateGreaterThan = sdf.parse(dateGreaterThanString); - Date dateLessThan = sdf.parse(dateLessThanString); - - DateRange dr = new DateRange(dateGreaterThan, dateLessThan); - - bmf.addDateRangeFilter("testDate", dr); - - bsp.setMetadataFilter(bmf); - - crawlSearchResultExample(bsp, bs); - - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - private static void printSearchResults(PartialCollection searchResults) { - //Crawl the folder - System.out.println("--==Results fullResultSize: " + searchResults.fullSize() + "==--"); - - for (BoxItem.Info itemInfo : searchResults) { - System.out.println("File Found: " + itemInfo.getName() + ", Owner: " + itemInfo.getOwnedBy().getID()); - } - - System.out.println(); - } - - /** - * Used for a simple print function, leverages System.out.println. - * - * @param s string to be used as a print. - */ - private static void print(String s) { - System.out.println(s); - } -} diff --git a/src/intTest/README.md b/src/intTest/README.md deleted file mode 100644 index 38d0beabd..000000000 --- a/src/intTest/README.md +++ /dev/null @@ -1,123 +0,0 @@ -# Integration Tests - -## Running integration tests locally - -### Create Platform Application -To run integration tests locally you will need a `Custom App` created at https://cloud.app.box.com/developers/console -with `Server Authentication (with JWT)` selected as authentication method. -Once created you can edit properties of the application. - -In section `App Access Level` select `App + Enterprise Access`. - -You can enable all `Application Scopes`. - -In section `Advanced Features` enable `Make API calls using the as-user header` and `Generate user access tokens`. - -Now select `Authorization` and submit application to be reviewed by account admin. - -Next part is to obtain application settings. Select `Configuration` tab and in the bottom in the section `App Settings` -download them as Json. - -### Export configuration - -You will need to create environment variables in your system or IDE: - - JAVA_COLLABORATOR_ID - you can find this in `General Settings` tab as `Collaborators` - - JAVA_COLLABORATOR - you can find this in `General Settings` tab in field `User ID` - - JAVA_ENTERPRISE_ID - you can find this in `General Settings` tab in field `Enterprise ID` - - JAVA_JWT_CONFIG - contains Base64 of your configuration file. You can generate this in command line. On Linux/Mac OS you can use `base64 -i path_to_json_file`. - -### Running Tests - -You can run tests from command line: -```bash -./gradlew integrationTest -``` -just remember that you need environment variables exported in previous step to be accessible. - -## Useful help classes - -### BoxApiProvider -To obtain new API connection configured with provided JWT configuration use `BoxApiProvider` - -```java -BoxAPIConnection api = BoxApiProvider.jwtApiForServiceAccount(); -``` - -### UniqueTestFolder -`UniqueTestFolder` contains method that can help setup and remove unique folder for tests and upload files. - -To use new unique folder: -```java -UniqueTestFolder.setupUniqeFolder(); // this will create a new test folder that can be used in tests -UniqueTestFolder.getUniqueFolder(api); // this will retrieve unique folder -UniqueTestFolder.removeUniqueFolder(); // this will remove unique folder with all subfolders and files -``` - -To upload files to root of the unique folder: -```java -// to upload file with specified content -BoxFile fileWithSpecifiedContent = UniqueTestFolder.uploadFileToUniqueFolder(api, "File Name", "Your content"); - -// to upload a file with some content -BoxFile fileWithSomeContent = UniqueTestFolder.uploadFileToUniqueFolderWithSomeContent(api, "File Name"); -``` - -You can also upload file to some specified folder: -```java -BoxFolder destinationFolder = UniqueTestFolder.getUniqueFolder(api); // obtain folder to upload file to -BoxFile fileWithSomeContent = UniqueTestFolder.uploadFileWithSomeContent("File Name", destinationFolder); -``` - -### Retry -Sometimes API request can take some time to be processed and you might want to retry some logic when error occurs: - -```java -Retry.retry( - () -> { - BoxSignRequest signRequestGetByID = new BoxSignRequest(api, "signRequestId"); - // do an API call, assert response - if call fails it will be repated - BoxSignRequest.Info cancelationIfo = signRequestGetByID.cancel(); - }, - 5, // how many times retry the call - 1000 // how long to wait between calls in miliseconds -); -``` - -## Putting this all together - -Here is a sample test that uses some of the utility classes shown above: - -```java -public class BoxFolderIT { - - @BeforeClass - public static void setup() { - // create unique folder for all tests - UniqueTestFolder.setupUniqeFolder(); - } - - @AfterClass - public static void tearDown() { - // remove unique folder after all tests run - UniqueTestFolder.removeUniqueFolder(); - } - - @Test - public void creatingAndDeletingFolderSucceeds() { - // given - BoxAPIConnection api = BoxApiProvider.jwtApiForServiceAccount(); - BoxFolder rootFolder = UniqueTestFolder.getUniqueFolder(api); - - // expect new folder can be found - // create subfolder in unique test folder - BoxFolder childFolder = rootFolder.createFolder("My Folder").getResource(); - assertThat(rootFolder, - hasItem(Matchers.hasProperty("ID", equalTo(childFolder.getID())))); - - // expect folder cannot be found after deletion - childFolder.delete(false); - assertThat(rootFolder, - not(hasItem(Matchers.hasProperty("ID", equalTo(childFolder.getID()))))); - } -} -``` \ No newline at end of file diff --git a/src/intTest/java/com/box/sdk/BoxAIIT.java b/src/intTest/java/com/box/sdk/BoxAIIT.java deleted file mode 100644 index 6bc1efa9c..000000000 --- a/src/intTest/java/com/box/sdk/BoxAIIT.java +++ /dev/null @@ -1,337 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; -import static com.box.sdk.CleanupTools.deleteFile; -import static com.box.sdk.Retry.retry; -import static com.box.sdk.UniqueTestFolder.removeUniqueFolder; -import static com.box.sdk.UniqueTestFolder.setupUniqeFolder; -import static com.box.sdk.UniqueTestFolder.uploadFileToUniqueFolder; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.containsString; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.notNullValue; - -import com.eclipsesource.json.Json; -import java.text.ParseException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Date; -import java.util.List; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - - -/** - * {@link BoxGroup} related integration tests. - */ -public class BoxAIIT { - - @BeforeClass - public static void setup() { - setupUniqeFolder(); - } - - @AfterClass - public static void afterClass() { - removeUniqueFolder(); - } - - - @Test - public void askAISingleItem() throws InterruptedException { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[askAISingleItem] Test File.txt"; - BoxFile uploadedFile = uploadFileToUniqueFolder(api, fileName, "Test file"); - - try { - BoxFile.Info uploadedFileInfo = uploadedFile.getInfo(); - // When a file has been just uploaded, AI service may not be ready to return text response - // and 412 is returned - retry(() -> { - BoxAIResponse response = BoxAI.sendAIRequest( - api, - "What is the name of the file?", - Collections.singletonList(new BoxAIItem(uploadedFileInfo.getID(), BoxAIItem.Type.FILE)), - BoxAI.Mode.SINGLE_ITEM_QA - ); - assertThat(response.getAnswer(), containsString("Test file")); - assert response.getCreatedAt().before(new Date(System.currentTimeMillis())); - assertThat(response.getCompletionReason(), equalTo("done")); - }, 2, 2000); - - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void askAIMultipleItems() throws InterruptedException { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName1 = "[askAIMultipleItems] Test File.txt"; - BoxFile uploadedFile1 = uploadFileToUniqueFolder(api, fileName1, "Test file"); - - try { - String fileName2 = "[askAIMultipleItems] Weather forecast.txt"; - BoxFile uploadedFile2 = uploadFileToUniqueFolder(api, fileName2, "Test file"); - - try { - BoxFile.Info uploadedFileInfo1 = uploadedFile1.getInfo(); - BoxFile.Info uploadedFileInfo2 = uploadedFile2.getInfo(); - - List items = new ArrayList<>(); - items.add(new BoxAIItem(uploadedFileInfo1.getID(), BoxAIItem.Type.FILE)); - items.add(new BoxAIItem(uploadedFileInfo2.getID(), BoxAIItem.Type.FILE)); - - // When a file has been just uploaded, AI service may not be ready to return text response - // and 412 is returned - retry(() -> { - BoxAIResponse response = BoxAI.sendAIRequest( - api, - "What is the content of these files?", - items, - BoxAI.Mode.MULTIPLE_ITEM_QA - ); - assertThat(response.getAnswer(), containsString("Test file")); - assert response.getCreatedAt().before(new Date(System.currentTimeMillis())); - assertThat(response.getCompletionReason(), equalTo("done")); - }, 2, 2000); - } finally { - deleteFile(uploadedFile2); - } - - } finally { - deleteFile(uploadedFile1); - } - } - - @Test - public void askAITextGenItemWithDialogueHistory() throws ParseException, InterruptedException { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[askAITextGenItemWithDialogueHistory] Test File.txt"; - Date date1 = BoxDateFormat.parse("2021-01-01T00:00:00Z"); - Date date2 = BoxDateFormat.parse("2021-02-01T00:00:00Z"); - - BoxFile uploadedFile = uploadFileToUniqueFolder(api, fileName, "Test file"); - try { - // When a file has been just uploaded, AI service may not be ready to return text response - // and 412 is returned - retry(() -> { - BoxFile.Info uploadedFileInfo = uploadedFile.getInfo(); - assertThat(uploadedFileInfo.getName(), is(equalTo(fileName))); - - List dialogueHistory = new ArrayList<>(); - dialogueHistory.add( - new BoxAIDialogueEntry("What is the name of the file?", "Test file", date1) - ); - dialogueHistory.add( - new BoxAIDialogueEntry("What is the size of the file?", "10kb", date2) - ); - BoxAIResponse response = BoxAI.sendAITextGenRequest( - api, - "What is the name of the file?", - Collections.singletonList(new BoxAIItem(uploadedFileInfo.getID(), BoxAIItem.Type.FILE)), - dialogueHistory - ); - assertThat(response.getAnswer(), containsString("name")); - assert response.getCreatedAt().before(new Date(System.currentTimeMillis())); - assertThat(response.getCompletionReason(), equalTo("done")); - }, 2, 2000); - - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void getAIAgentDefaultConfiguration() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxAIAgent agent = BoxAI.getAiAgentDefaultConfig(api, BoxAIAgent.Mode.ASK); - BoxAIAgentAsk askAgent = (BoxAIAgentAsk) agent; - - assertThat(askAgent.getType(), is(equalTo(BoxAIAgentAsk.TYPE))); - assertThat(askAgent.getBasicText().getModel(), is(notNullValue())); - - BoxAIAgent agent2 = BoxAI.getAiAgentDefaultConfig(api, BoxAIAgent.Mode.TEXT_GEN); - BoxAIAgentTextGen textGenAgent = (BoxAIAgentTextGen) agent2; - - assertThat(textGenAgent.getType(), is(equalTo(BoxAIAgentTextGen.TYPE))); - assertThat(textGenAgent.getBasicGen().getModel(), is(notNullValue())); - } - - @Test - public void askAISingleItemWithAgent() throws InterruptedException { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[askAISingleItem] Test File.txt"; - BoxFile uploadedFile = uploadFileToUniqueFolder(api, fileName, "Test file"); - BoxAIAgent agent = BoxAI.getAiAgentDefaultConfig(api, BoxAIAgent.Mode.ASK); - BoxAIAgentAsk askAgent = (BoxAIAgentAsk) agent; - - try { - BoxFile.Info uploadedFileInfo = uploadedFile.getInfo(); - // When a file has been just uploaded, AI service may not be ready to return text response - // and 412 is returned - retry(() -> { - BoxAIResponse response = BoxAI.sendAIRequest( - api, - "What is the name of the file?", - Collections.singletonList(new BoxAIItem(uploadedFileInfo.getID(), BoxAIItem.Type.FILE)), - BoxAI.Mode.SINGLE_ITEM_QA, - null, - askAgent, - true - ); - assertThat(response.getAnswer(), containsString("Test file")); - assert response.getCreatedAt().before(new Date(System.currentTimeMillis())); - assertThat(response.getCompletionReason(), equalTo("done")); - }, 2, 2000); - - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void aiExtract() throws InterruptedException { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxAIAgent agent = BoxAI.getAiAgentDefaultConfig(api, BoxAIAgent.Mode.EXTRACT); - BoxAIAgentExtract agentExtract = (BoxAIAgentExtract) agent; - // AI team is going to move away from supporting overriding embeddings model - agentExtract.getLongText().setEmbeddings(null); - - BoxFile uploadedFile = uploadFileToUniqueFolder(api, "[aiExtract] Test File.txt", - "My name is John Doe. I live in San Francisco. I was born in 1990. I work at Box."); - - try { - // When a file has been just uploaded, AI service may not be ready to return text response - // and 412 is returned - retry(() -> { - BoxAIResponse response = BoxAI.extractMetadataFreeform(api, - "firstName, lastName, location, yearOfBirth, company", - Collections.singletonList(new BoxAIItem(uploadedFile.getID(), BoxAIItem.Type.FILE)), - agentExtract); - assertThat(response.getAnswer(), containsString("John")); - assertThat(response.getCompletionReason(), equalTo("done")); - }, 2, 2000); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void aiExtractStructuredWithFields() throws InterruptedException { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxAIAgent agent = BoxAI.getAiAgentDefaultConfig(api, BoxAIAgent.Mode.EXTRACT_STRUCTURED); - BoxAIAgentExtractStructured agentExtractStructured = (BoxAIAgentExtractStructured) agent; - // AI team is going to move away from supporting overriding embeddings model - agentExtractStructured.getLongText().setEmbeddings(null); - - BoxFile uploadedFile = uploadFileToUniqueFolder(api, "[aiExtractStructuredWithFields] Test File.txt", - "My name is John Doe. I was born in 4th July 1990. I am 34 years old. My hobby is guitar."); - - try { - // When a file has been just uploaded, AI service may not be ready to return text response - // and 412 is returned - retry(() -> { - BoxAIExtractStructuredResponse response = BoxAI.extractMetadataStructured(api, - Collections.singletonList(new BoxAIItem(uploadedFile.getID(), BoxAIItem.Type.FILE)), - Arrays.asList( - new BoxAIExtractField("firstName"), - new BoxAIExtractField("lastName"), - new BoxAIExtractField("date", - "Person date of birth", - "Birth date", - "dateOfBirth", - null, - "What is the date of your birth?"), - new BoxAIExtractField("float", - "Person age", - "Age", - "age", - null, - "How old are you?"), - new BoxAIExtractField("multiSelect", - "Person hobby", - "Hobby", - "hobby", - Collections.singletonList(new BoxAIExtractFieldOption("guitar")), - "What is your hobby?") - ), - agentExtractStructured); - assertThat(response.getSourceJson().get("answer"), is(equalTo(response.getAnswer()))); - - assertThat(response.getAnswer().get("firstName").asString(), is(equalTo("John"))); - assertThat(response.getAnswer().get("lastName").asString(), is(equalTo("Doe"))); - assertThat(response.getAnswer().get("dateOfBirth").asString(), is(equalTo("1990-07-04"))); - assertThat(response.getAnswer().get("age").asInt(), is(equalTo(34))); - assertThat(response.getAnswer().get("hobby").asArray().get(0).asString(), is(equalTo("guitar"))); - - assertThat(response.getCompletionReason(), equalTo("done")); - assertThat(response.getCreatedAt(), is(notNullValue())); - }, 2, 2000); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void aiExtractStructuredWithMetadataTemplate() throws InterruptedException { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxAIAgent agent = BoxAI.getAiAgentDefaultConfig(api, BoxAIAgent.Mode.EXTRACT_STRUCTURED); - BoxAIAgentExtractStructured agentExtractStructured = (BoxAIAgentExtractStructured) agent; - // AI team is going to move away from supporting overriding embeddings model - agentExtractStructured.getLongText().setEmbeddings(null); - - BoxFile uploadedFile = uploadFileToUniqueFolder(api, "[aiExtractStructuredWithMetadataTemplate] Test File.txt", - "My name is John Doe. I was born in 4th July 1990. I am 34 years old. My hobby is guitar."); - String templateKey = "key" + java.util.UUID.randomUUID(); - MetadataTemplate template = MetadataTemplate.createMetadataTemplate(api, - "enterprise", - templateKey, - templateKey, - false, - Arrays.asList( - new MetadataTemplate.Field(Json.parse( - "{\"key\":\"firstName\",\"displayName\":\"First name\"," - + "\"description\":\"Person first name\",\"type\":\"string\"}").asObject()), - new MetadataTemplate.Field(Json.parse( - "{\"key\":\"lastName\",\"displayName\":\"Last name\"," - + "\"description\":\"Person last name\",\"type\":\"string\"}").asObject()), - new MetadataTemplate.Field(Json.parse( - "{\"key\":\"dateOfBirth\",\"displayName\":\"Birth date\"," - + "\"description\":\"Person date of birth\",\"type\":\"date\"}").asObject()), - new MetadataTemplate.Field(Json.parse( - "{\"key\":\"age\",\"displayName\":\"Age\"," - + "\"description\":\"Person age\",\"type\":\"float\"}").asObject()), - new MetadataTemplate.Field(Json.parse( - "{\"key\":\"hobby\",\"displayName\":\"Hobby\"," - + "\"description\":\"Person hobby\",\"type\":\"multiSelect\"," - + " \"options\":[{\"key\": \"guitar\"}, {\"key\": \"books\"}]}").asObject()) - )); - - try { - // When a file has been just uploaded, AI service may not be ready to return text response - // and 412 is returned - retry(() -> { - BoxAIExtractStructuredResponse response = BoxAI.extractMetadataStructured(api, - Collections.singletonList(new BoxAIItem(uploadedFile.getID(), BoxAIItem.Type.FILE)), - new BoxAIExtractMetadataTemplate(templateKey, "enterprise"), - agentExtractStructured); - assertThat(response.getSourceJson().get("answer"), is(equalTo(response.getAnswer()))); - - assertThat(response.getAnswer().get("firstName").asString(), is(equalTo("John"))); - assertThat(response.getAnswer().get("lastName").asString(), is(equalTo("Doe"))); - assertThat(response.getAnswer().get("dateOfBirth").asString(), is(equalTo("1990-07-04T00:00:00Z"))); - assertThat(response.getAnswer().get("age").asInt(), is(equalTo(34))); - assertThat(response.getAnswer().get("hobby").asArray().get(0).asString(), is(equalTo("guitar"))); - assertThat(response.getCompletionReason(), equalTo("done")); - assertThat(response.getCreatedAt(), is(notNullValue())); - }, 2, 2000); - } finally { - deleteFile(uploadedFile); - MetadataTemplate.deleteMetadataTemplate(api, template.getScope(), template.getTemplateKey()); - } - } -} diff --git a/src/intTest/java/com/box/sdk/BoxAPIConnectionIT.java b/src/intTest/java/com/box/sdk/BoxAPIConnectionIT.java deleted file mode 100644 index f52631887..000000000 --- a/src/intTest/java/com/box/sdk/BoxAPIConnectionIT.java +++ /dev/null @@ -1,294 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; -import static com.box.sdk.BoxApiProvider.jwtBoxConfig; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.not; -import static org.hamcrest.Matchers.notNullValue; -import static org.junit.Assert.assertEquals; - -import java.net.MalformedURLException; -import java.net.URL; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; -import org.junit.Ignore; -import org.junit.Test; - - -public class BoxAPIConnectionIT { - - @Test - public void requestIsSentNormallyWhenInterceptorReturnsNullResponse() throws MalformedURLException { - BoxAPIConnection api = new BoxAPIConnection(""); - - api.setRequestInterceptor(request -> null); - - BoxAPIRequest request = new BoxAPIRequest(api, new URL("https://box.com"), "GET"); - try (BoxAPIResponse response = request.send()) { - assertThat(response.getResponseCode(), is(200)); - } - } - - @Test - public void refreshSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String originalAccessToken = api.getAccessToken(); - - api.refresh(); - - String actualAccessToken = api.getAccessToken(); - - assertThat(originalAccessToken, not(equalTo(actualAccessToken))); - } - - @Test - public void refreshesWhenGetAccessTokenIsCalledAndTokenHasExpired() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String originalAccessToken = api.getAccessToken(); - api.setExpires(-1); - - String actualAccessToken = api.getAccessToken(); - - assertThat(originalAccessToken, not(equalTo(actualAccessToken))); - } - - @Test - public void doesNotRefreshWhenGetAccessTokenIsCalledAndTokenHasNotExpired() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String originalAccessToken = api.getAccessToken(); - api.setExpires(Long.MAX_VALUE); - - String actualAccessToken = api.getAccessToken(); - - assertThat(originalAccessToken, equalTo(actualAccessToken)); - } - - @Test - public void successfullySavesAndRestoresConnection() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String state = api.save(); - BoxConfig boxConfig = jwtBoxConfig(); - - BoxAPIConnection restoredAPI = BoxAPIConnection.restore( - boxConfig.getClientId(), boxConfig.getClientSecret(), state - ); - assertThat(BoxFolder.getRootFolder(restoredAPI).getInfo().getID(), is("0")); - } - - @Test - public void revokeToken() { - BoxAPIConnection api = jwtApiForServiceAccount(); - - BoxFolder.getRootFolder(api); - - api.revokeToken(); - - try { - BoxFolder.getRootFolder(api); - } catch (BoxAPIException ex) { - assertEquals(401, ex.getResponseCode()); - } - } - - @Test - public void appAndDeveloperEditionApiConnectionWorks() { - BoxDeveloperEditionAPIConnection appAuthConnection = jwtApiForServiceAccount(); - - final String name = "app user name two"; - BoxUser.Info createdUserInfo = BoxUser.createAppUser(appAuthConnection, name); - final String appUserId = createdUserInfo.getID(); - - InMemoryLRUAccessTokenCache accessTokenCache = new InMemoryLRUAccessTokenCache(1); - BoxDeveloperEditionAPIConnection api = - BoxDeveloperEditionAPIConnection.getUserConnection(appUserId, jwtBoxConfig(), accessTokenCache); - BoxUser appUser = new BoxUser(api, appUserId); - - assertThat(api.getAccessToken(), not(equalTo(null))); - - BoxUser.Info info = appUser.getInfo(); - - assertThat(info.getID(), equalTo(appUserId)); - assertThat(info.getName(), equalTo(name)); - - api.refresh(); - - BoxUser appUserFromAdmin = new BoxUser(appAuthConnection, appUserId); - appUserFromAdmin.delete(false, true); - } - - @Test - @Ignore("Takes too long to run") - public void appUsersAutomaticallyPaginatesCorrectly() { - BoxDeveloperEditionAPIConnection api = jwtApiForServiceAccount(); - - assertThat(api.getAccessToken(), not(equalTo(null))); - - long timestamp = Calendar.getInstance().getTimeInMillis(); - final String name = "appUsersAutomaticallyPaginate "; - final String externalAppUserId = "@example.com"; - - // Must be greater than the default response page size (100) to ensure a second page of results - final int totalCreatedTestAppUsers = 105; - - // Create Test App Users - System.out.println("Creating Test App Users"); - for (int i = 1; i <= totalCreatedTestAppUsers; i++) { - CreateUserParams params = new CreateUserParams(); - params.setExternalAppUserId(timestamp + "_" + i + externalAppUserId); - BoxUser.createAppUser(api, name + timestamp + " " + i, params); - } - - // Get App Users - Iterable users = BoxUser.getAppUsersByExternalAppUserID(api, - null, "external_app_user_id", "name"); - - // Iterate over the returned App Users - int totalReturnedTestAppUsers = 0; - System.out.println("Cleanup (delete) Test App Users"); - for (BoxUser.Info userInfo : users) { - System.out.println(userInfo.getName()); - BoxUser appUser = new BoxUser(api, userInfo.getID()); - - // Count the Test App Users just created. - if (userInfo.getName().startsWith(name + timestamp)) { - totalReturnedTestAppUsers++; - } - - // Delete the Test App Users just created. - // Deletes Test App Users created in previous test run, as well. - if (userInfo.getName().startsWith(name)) { - appUser.delete(false, true); - } - } - - assertEquals(totalCreatedTestAppUsers, totalReturnedTestAppUsers); - api.refresh(); - } - - @Test - @Ignore("Takes too long to run") - public void appUsersManuallyPaginatesCorrectly() { - BoxDeveloperEditionAPIConnection api = jwtApiForServiceAccount(); - - assertThat(api.getAccessToken(), not(equalTo(null))); - - final long timestamp = Calendar.getInstance().getTimeInMillis(); - final String name = "appUsersManuallyPaginate "; - final String externalAppUserId = "@example.com"; - - // Must be greater than defaultNetworkResponsePageSize to ensure a second page of results - final int totalCreatedTestAppUsers = 105; - - // Must be equal to default response limit (usually 100) - final int defaultNetworkResponsePageSize = 100; - - // Create Test App Users - System.out.println("Creating Test App Users"); - for (int i = 1; i <= totalCreatedTestAppUsers; i++) { - CreateUserParams params = new CreateUserParams(); - params.setExternalAppUserId(timestamp + "_" + i + externalAppUserId); - BoxUser.createAppUser(api, name + timestamp + " " + i, params); - } - - // Get App Users - BoxResourceIterable users = - (BoxResourceIterable) BoxUser.getAppUsersByExternalAppUserID( - api, - null, - true, - null, - "external_app_user_id", "name"); - - // Grab the marker to be able to resume iterating at some point in the future... - String marker = users.getNextMarker(); - - // As we iterate over the page of results, pageCursor is used to keep track - // of the current item in the page, so that iteration can be picked up where you left - // off later on. - int pageCursor = 0; - - int totalReturnedTestAppUsers = 0; - - // Count App Users and stop iterating once we get to the last item on the first page of results - System.out.println("===FIRST PAGE==="); - for (BoxUser.Info userInfo : users) { - System.out.println(userInfo.getName()); - - // Count the Test App Users just created. - if (userInfo.getName().startsWith(name + timestamp)) { - totalReturnedTestAppUsers++; - } - - // Stop iterating once we get to the last item on the page of results. - // If we were to keep iterating in this loop, then BoxResourceIterable would - // automatically make the request to get the next page of results. - if (pageCursor == defaultNetworkResponsePageSize - 1) { - break; - } - - pageCursor++; - } - - // Manually get the second page of results, by passing the nextMarker from the last response. - // This simulates the scenario where we no longer have the users collection, so we need to - // make a new request, using the preserved marker value which points to the page containing - // the next item in the collection. - users = (BoxResourceIterable) BoxUser.getAppUsersByExternalAppUserID(api, - null, true, marker, "external_app_user_id", "name"); - - // We're now starting with the first item on the second page of results, - // so we reset pageCursor - pageCursor = 0; - - // Continue counting App Users - // If there are more pages of results, this loop uses the automatic pagination by continuously - // retrieving the next item and letting BoxResourceIterable determine and manage getting new - // pages. - System.out.println("===SECOND PAGE==="); - for (BoxUser.Info userInfo : users) { - System.out.println(userInfo.getName()); - - // Count the users just created. - if (userInfo.getName().startsWith(name + timestamp)) { - totalReturnedTestAppUsers++; - } - - pageCursor++; - } - - // Get App Users for post-test clean up - users = (BoxResourceIterable) BoxUser.getAppUsersByExternalAppUserID(api, - null, true, null, "external_app_user_id", "name"); - - // Clean up - System.out.println("Cleanup (delete) Test App Users"); - for (BoxUser.Info userInfo : users) { - BoxUser appUser = new BoxUser(api, userInfo.getID()); - - // Deletes users created in previous test run, as well. - if (userInfo.getName().startsWith(name)) { - appUser.delete(false, true); - } - } - - assertEquals(totalCreatedTestAppUsers, totalReturnedTestAppUsers); - api.refresh(); - } - - @Test - public void getLowerScopedTokenWorks() { - BoxDeveloperEditionAPIConnection api = jwtApiForServiceAccount(); - - String originalToken = api.getAccessToken(); - List scopes = new ArrayList<>(); - scopes.add("item_preview"); - scopes.add("item_content_upload"); - - ScopedToken newToken = api.getLowerScopedToken(scopes, null); - assertThat(newToken, notNullValue()); - assertThat(newToken.getAccessToken(), not(originalToken)); - } -} diff --git a/src/intTest/java/com/box/sdk/BoxAPIRequestIT.java b/src/intTest/java/com/box/sdk/BoxAPIRequestIT.java deleted file mode 100644 index f1b5098e3..000000000 --- a/src/intTest/java/com/box/sdk/BoxAPIRequestIT.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; -import static org.junit.Assert.fail; - -import org.junit.Test; - -/** - * Integration test for BoxAPIRequest - */ -public class BoxAPIRequestIT { - - @Test - public void loggingWorks() { - BoxLogger.defaultLogger().setLevelToAll(); - try { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxUser.getCurrentUser(api); - } catch (Exception e) { - e.printStackTrace(); - fail("Exception occured"); - } finally { - BoxLogger.defaultLogger().resetToDefaultLevel(); - } - } -} diff --git a/src/intTest/java/com/box/sdk/BoxApiProvider.java b/src/intTest/java/com/box/sdk/BoxApiProvider.java deleted file mode 100644 index 55495a910..000000000 --- a/src/intTest/java/com/box/sdk/BoxApiProvider.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.box.sdk; - -import static java.lang.String.format; - -import java.util.Base64; -import java.util.Map; -import java.util.Optional; - -final class BoxApiProvider { - - private static final String JWT_CONFIG_ENV_NAME = "JAVA_JWT_CONFIG"; - - private BoxApiProvider() { - // hiding constructor - } - - static BoxDeveloperEditionAPIConnection jwtApiForServiceAccount() { - BoxConfig boxConfig = jwtBoxConfig(); - InMemoryLRUAccessTokenCache tokenCache = new InMemoryLRUAccessTokenCache(10); - return BoxDeveloperEditionAPIConnection.getAppEnterpriseConnection(boxConfig, tokenCache); - } - - static BoxConfig jwtBoxConfig() { - Map environmentProperties = System.getenv(); - String jwtConfigEncoded = getEnvProperty(environmentProperties, JWT_CONFIG_ENV_NAME); - byte[] decodedJwtConfig = Base64.getDecoder().decode(jwtConfigEncoded); - return BoxConfig.readFrom(new String(decodedJwtConfig)); - } - - private static String getEnvProperty(Map environmentProperties, String name) { - return Optional.ofNullable(environmentProperties.get(name)) - .orElseThrow(() -> new RuntimeException(format("Missing '%s' environmental variable", name))); - } -} diff --git a/src/intTest/java/com/box/sdk/BoxClassificationTemplateIT.java b/src/intTest/java/com/box/sdk/BoxClassificationTemplateIT.java deleted file mode 100644 index 2f416db37..000000000 --- a/src/intTest/java/com/box/sdk/BoxClassificationTemplateIT.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; -import static org.junit.Assert.assertEquals; - -import java.util.ArrayList; -import java.util.List; -import org.junit.Test; - -public class BoxClassificationTemplateIT { - - public MetadataTemplate getOrCreateClassificationTemplate(BoxAPIConnection api) { - try { - return MetadataTemplate.getMetadataTemplate(api, Metadata.CLASSIFICATION_TEMPLATE_KEY); - } catch (BoxAPIException e) { - assertEquals(e.getResponseCode(), 404); - } - - MetadataTemplate.Field classification = new MetadataTemplate.Field(); - classification.setType("enum"); - classification.setKey("Box__Security__Classification__Key"); - classification.setDisplayName("Classification"); - classification.setIsHidden(false); - - List options = new ArrayList(); - options.add("sensitive"); - classification.setOptions(options); - - List fields = new ArrayList(); - fields.add(classification); - - return MetadataTemplate.createMetadataTemplate(api, Metadata.ENTERPRISE_METADATA_SCOPE, - Metadata.CLASSIFICATION_TEMPLATE_KEY, "Classification", false, fields); - } - - @Test - public void getUpdateClassificationTemplate() { - BoxAPIConnection api = jwtApiForServiceAccount(); - MetadataTemplate template = getOrCreateClassificationTemplate(api); - String fieldKey = template.getFields().get(0).getKey(); - String optionKey = template.getFields().get(0).getOptionsObjects().get(0).getKey(); - - List updates = new ArrayList(); - String update = "{\n" - + " \"op\": \"editEnumOption\",\n" - + " \"fieldKey\": \"" + fieldKey + "\",\n" - + " \"enumOptionKey\": \"" + optionKey + "\",\n" - + " \"data\": {\n" - + " \"key\": \"" + optionKey + "\",\n" - + " \"staticConfig\": {\n" - + " \"classification\": {\n" - + " \"classificationDefinition\": \"Sensitive information.\",\n" - + " \"colorID\": 4\n" - + " }\n" - + " }\n" - + " }\n" - + "}"; - updates.add(new MetadataTemplate.FieldOperation(update)); - - MetadataTemplate updatedTemplate = MetadataTemplate.updateMetadataTemplate(api, - Metadata.ENTERPRISE_METADATA_SCOPE, Metadata.CLASSIFICATION_TEMPLATE_KEY, updates); - MetadataTemplate.Option updatedOption = updatedTemplate.getFields().get(0).getOptionsObjects().get(0); - assertEquals(updatedOption.getKey(), "Sensitive"); - assertEquals( - updatedOption.getStaticConfig().getClassification().getString("classificationDefinition", - "null"), - "Sensitive information."); - assertEquals(updatedOption.getStaticConfig().getClassification().getInt("colorID", 0), - 4); - update = "{\n" - + " \"op\": \"editEnumOption\",\n" - + " \"fieldKey\": \"" + fieldKey + "\",\n" - + " \"enumOptionKey\": \"" + optionKey + "\",\n" - + " \"data\": {\n" - + " \"key\": \"" + optionKey + "\",\n" - + " \"staticConfig\": {\n" - + " \"classification\": {\n" - + " \"classificationDefinition\": \"Top Sensitive information.\",\n" - + " \"colorID\": 5\n" - + " }\n" - + " }\n" - + " }\n" - + "}"; - updates.clear(); - updates.add(new MetadataTemplate.FieldOperation(update)); - - updatedTemplate = MetadataTemplate.updateMetadataTemplate(api, Metadata.ENTERPRISE_METADATA_SCOPE, - Metadata.CLASSIFICATION_TEMPLATE_KEY, updates); - updatedOption = updatedTemplate.getFields().get(0).getOptionsObjects().get(0); - assertEquals(updatedOption.getKey(), "Sensitive"); - assertEquals(updatedOption.getStaticConfig().getClassification().getString("classificationDefinition", - "null"), "Top Sensitive information."); - assertEquals(updatedOption.getStaticConfig().getClassification().getInt("colorID", 0), 5); - } -} diff --git a/src/intTest/java/com/box/sdk/BoxCollaborationAllowlistIT.java b/src/intTest/java/com/box/sdk/BoxCollaborationAllowlistIT.java deleted file mode 100644 index 9ee46585b..000000000 --- a/src/intTest/java/com/box/sdk/BoxCollaborationAllowlistIT.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; -import static com.box.sdk.CleanupTools.removeAllowedDomains; -import static com.box.sdk.UniqueTestFolder.randomizeName; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.not; -import static org.hamcrest.Matchers.notNullValue; -import static org.junit.Assert.assertEquals; - -import java.util.ArrayList; -import java.util.List; -import org.hamcrest.Matchers; -import org.junit.Before; -import org.junit.Test; - -public class BoxCollaborationAllowlistIT { - private static final String DOMAIN_NAME = randomizeName("test") + ".com"; - - @Before - public void beforeClass() { - removeAllowedDomains(DOMAIN_NAME); - } - - @Test - public void createCollaborationAllowlistSucceeds() { - final String type = "collaboration_whitelist_entry"; - - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxCollaborationAllowlist.Info domainAllowlist = BoxCollaborationAllowlist.create( - api, - "createCollaborationAllowlistSucceeds." + DOMAIN_NAME, - BoxCollaborationAllowlist.AllowlistDirection.BOTH - ); - - assertThat(domainAllowlist, is(notNullValue())); - assertEquals(domainAllowlist.getDirection(), BoxCollaborationAllowlist.AllowlistDirection.BOTH); - assertEquals(domainAllowlist.getType(), type); - } - - @Test - public void getAllCollaborationAllowlistsSucceeds() { - final String whitelistType = "collaboration_whitelist_entry"; - - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxCollaborationAllowlist.create( - api, - "getAllCollaborationAllowlistsSucceeds." + DOMAIN_NAME, - BoxCollaborationAllowlist.AllowlistDirection.BOTH - ); - - Iterable whitelists = BoxCollaborationAllowlist.getAll(api); - List whitelistList = newArrayList(whitelists); - - assertThat(whitelistList, is(not(Matchers.empty()))); - for (BoxCollaborationAllowlist.Info whitelistInfo : whitelistList) { - assertThat(whitelistInfo, is(notNullValue())); - assertEquals(whitelistInfo.getType(), whitelistType); - } - } - - @Test - public void getAllCollaborationAllowlistsAdditionalParamsSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - - BoxCollaborationAllowlist.create( - api, - "getAllCollaborationAllowlistsAdditionalParamsSucceeds." + DOMAIN_NAME, - BoxCollaborationAllowlist.AllowlistDirection.BOTH - ); - - Iterable whitelists = BoxCollaborationAllowlist.getAll(api, 10); - List whitelistList = newArrayList(whitelists); - assertThat(whitelistList, is(not(Matchers.empty()))); - } - - private List newArrayList(Iterable iterable) { - List result = new ArrayList<>(); - for (T i : iterable) { - result.add(i); - } - return result; - } -} diff --git a/src/intTest/java/com/box/sdk/BoxCollaborationIT.java b/src/intTest/java/com/box/sdk/BoxCollaborationIT.java deleted file mode 100644 index a0eb957dc..000000000 --- a/src/intTest/java/com/box/sdk/BoxCollaborationIT.java +++ /dev/null @@ -1,198 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; -import static com.box.sdk.BoxCollaborationAllowlist.AllowlistDirection.INBOUND; -import static com.box.sdk.CleanupTools.deleteFolder; -import static com.box.sdk.UniqueTestFolder.getUniqueFolder; -import static com.box.sdk.UniqueTestFolder.removeUniqueFolder; -import static com.box.sdk.UniqueTestFolder.setupUniqeFolder; -import static com.box.sdk.UniqueTestFolder.uploadFileToUniqueFolderWithSomeContent; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import com.eclipsesource.json.JsonObject; -import java.util.Collection; -import java.util.HashMap; -import java.util.Iterator; -import org.hamcrest.Matchers; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - -public class BoxCollaborationIT { - - @BeforeClass - public static void setup() { - setupUniqeFolder(); - } - - @AfterClass - public static void tearDown() { - removeUniqueFolder(); - } - - @Test - public void updateInfoSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String folderName = "[addCollaborationToFolderSucceeds] Test Folder"; - String collaboratorLogin = TestConfig.getCollaborator(); - BoxCollaboration.Role originalRole = BoxCollaboration.Role.VIEWER; - BoxCollaboration.Role newRole = BoxCollaboration.Role.EDITOR; - BoxFolder rootFolder = getUniqueFolder(api); - BoxFolder folder = null; - try { - folder = rootFolder.createFolder(folderName).getResource(); - BoxCollaboration.Info collabInfo = folder.collaborate(collaboratorLogin, originalRole); - - assertThat(collabInfo.getRole(), is(equalTo(originalRole))); - assertNotNull(collabInfo.getIsAccessOnly()); - - BoxCollaboration collab = collabInfo.getResource(); - collabInfo.setRole(newRole); - collab.updateInfo(collabInfo); - - assertThat(collabInfo.getRole(), is(equalTo(newRole))); - Collection collabCollection = folder.getCollaborations(); - - assertEquals(collabCollection.size(), 1); - - Iterator collabs = collabCollection.iterator(); - BoxCollaboration.Info remoteCollab = collabs.next(); - assertThat(remoteCollab.getRole(), is(equalTo(newRole))); - } finally { - deleteFolder(folder); - } - } - - @Test - public void deleteSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String folderName = "[deleteSucceeds] Test Folder"; - String collaboratorLogin = TestConfig.getCollaborator(); - BoxCollaboration.Role collaboratorRole = BoxCollaboration.Role.EDITOR; - BoxFolder rootFolder = UniqueTestFolder.getUniqueFolder(api); - BoxFolder folder = null; - try { - folder = rootFolder.createFolder(folderName).getResource(); - BoxCollaboration.Info collabInfo = folder.collaborate(collaboratorLogin, collaboratorRole); - BoxCollaboration collab = collabInfo.getResource(); - - collab.delete(); - - assertThat(folder.getCollaborations(), Matchers.hasSize(0)); - } finally { - deleteFolder(folder); - } - } - - @Test - public void singleFileCollabSucceeds() { - HashMap collabsMap = new HashMap<>(); - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[singleFileCollabSucceeds] Test File.txt"; - BoxFile uploadedFile = null; - BoxCollaborationAllowlist allowList = null; - - try { - uploadedFile = uploadFileToUniqueFolderWithSomeContent(api, fileName); - - String collaboratorLogin = TestConfig.getCollaborator(); - BoxCollaboration.Role originalRole = BoxCollaboration.Role.VIEWER; - BoxCollaboration.Role newRole = BoxCollaboration.Role.EDITOR; - - BoxCollaboration.Info collabInfo = - uploadedFile.collaborate(collaboratorLogin, originalRole, true, false); - - collabsMap.put(collabInfo.getID(), collabInfo); - - assertThat(collabInfo.getRole(), is(equalTo(originalRole))); - - BoxCollaboration collab = collabInfo.getResource(); - collabInfo.setRole(newRole); - collab.updateInfo(collabInfo); - - assertThat(collabInfo.getRole(), is(equalTo(newRole))); - - BoxCollaboration remoteCollab = new BoxCollaboration(api, collab.getID()); - BoxCollaboration.Info remoteInfo = remoteCollab.getInfo(); - assertThat(remoteInfo.getRole(), is(equalTo(newRole))); - assertThat(remoteInfo.getCreatedBy().getID(), is(collabInfo.getCreatedBy().getID())); - - - allowList = BoxCollaborationAllowlist.create(api, "gmail.com", INBOUND).getResource(); - BoxCollaboration.Info collab2Info = - uploadedFile.collaborate("davidsmaynard@gmail.com", originalRole, false, false); - - collabsMap.put(collab2Info.getID(), collab2Info); - - BoxResourceIterable collabs = uploadedFile.getAllFileCollaborations(); - Iterator collabIterator = collabs.iterator(); - int numCollabs = 0; - - while (collabIterator.hasNext()) { - numCollabs++; - BoxCollaboration.Info fileCollabInfo = collabIterator.next(); - BoxCollaboration.Info localFileCollabInfor = collabsMap.get(fileCollabInfo.getID()); - - assertEquals(fileCollabInfo.getID(), localFileCollabInfor.getID()); - assertEquals(fileCollabInfo.getCreatedBy().getID(), localFileCollabInfor.getCreatedBy().getID()); - assertEquals(fileCollabInfo.getCreatedBy().getName(), localFileCollabInfor.getCreatedBy().getName()); - - assertEquals(fileCollabInfo.getAccessibleBy().getID(), localFileCollabInfor.getAccessibleBy().getID()); - assertEquals(fileCollabInfo.getAccessibleBy().getName(), - localFileCollabInfor.getAccessibleBy().getName()); - - assertEquals(fileCollabInfo.getRole(), localFileCollabInfor.getRole()); - assertEquals(fileCollabInfo.getStatus(), localFileCollabInfor.getStatus()); - } - - assertEquals(2, numCollabs); - } finally { - CleanupTools.deleteFile(uploadedFile); - if (allowList != null) { - allowList.delete(); - } - } - } - - @Test - public void acceptPendingCollaboration() { - BoxAPIConnection api = jwtApiForServiceAccount(); - Collection pendingCollabs = BoxCollaboration.getPendingCollaborations(api); - for (BoxCollaboration.Info collabInfo : pendingCollabs) { - // Accept the pending collaboration - collabInfo.setStatus(BoxCollaboration.Status.ACCEPTED); - collabInfo.getResource().updateInfo(collabInfo); - } - } - - @Test - public void singleFileCollabWithAccessOnlySucceeds() { - HashMap collabsMap = new HashMap<>(); - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[singleFileCollabSucceeds] Test File.txt"; - BoxFile uploadedFile = null; - try { - uploadedFile = uploadFileToUniqueFolderWithSomeContent(api, fileName); - JsonObject user = new JsonObject() - .add("login", TestConfig.getCollaborator()) - .add("type", "user"); - JsonObject file = new JsonObject() - .add("id", uploadedFile.getID()) - .add("type", "file"); - - BoxCollaboration.Role originalRole = BoxCollaboration.Role.VIEWER; - BoxCollaboration.Info collabInfo = BoxCollaboration.create(api, user, file, originalRole, - false, false, null, true); - - assertThat(collabInfo.getRole(), is(equalTo(originalRole))); - assertTrue(collabInfo.getIsAccessOnly()); - } finally { - CleanupTools.deleteFile(uploadedFile); - } - } -} diff --git a/src/intTest/java/com/box/sdk/BoxCollectionIT.java b/src/intTest/java/com/box/sdk/BoxCollectionIT.java deleted file mode 100644 index 174387b83..000000000 --- a/src/intTest/java/com/box/sdk/BoxCollectionIT.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.is; - -import java.util.ArrayList; -import org.junit.Test; - -public class BoxCollectionIT { - - @Test - public void getAllCollectionsReturnsFavorites() { - BoxAPIConnection api = jwtApiForServiceAccount(); - ArrayList collectionList = new ArrayList<>(); - for (BoxCollection.Info info : BoxCollection.getAllCollections(api)) { - collectionList.add(info); - } - - assertThat(collectionList.size(), is(equalTo(1))); - BoxCollection.Info firstCollection = collectionList.get(0); - assertThat(firstCollection.getName(), is(equalTo("Favorites"))); - assertThat(firstCollection.getCollectionType(), is(equalTo("favorites"))); - } - -} diff --git a/src/intTest/java/com/box/sdk/BoxCommentIT.java b/src/intTest/java/com/box/sdk/BoxCommentIT.java deleted file mode 100644 index c62fa54b8..000000000 --- a/src/intTest/java/com/box/sdk/BoxCommentIT.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; -import static com.box.sdk.CleanupTools.deleteFile; -import static com.box.sdk.UniqueTestFolder.getUniqueFolder; -import static com.box.sdk.UniqueTestFolder.randomizeName; -import static com.box.sdk.UniqueTestFolder.removeUniqueFolder; -import static com.box.sdk.UniqueTestFolder.setupUniqeFolder; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.is; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - -public class BoxCommentIT { - - @BeforeClass - public static void setup() { - setupUniqeFolder(); - } - - @AfterClass - public static void tearDown() { - removeUniqueFolder(); - } - @Test - public void replyToCommentSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - String fileName = randomizeName("[replyToCommentSucceeds] Test File.txt"); - byte[] fileBytes = "Non-empty string".getBytes(StandardCharsets.UTF_8); - String firstMessage = "First message"; - String replyMessage = "Reply message"; - - InputStream uploadStream = new ByteArrayInputStream(fileBytes); - BoxFile uploadedFile = rootFolder.uploadFile(uploadStream, fileName).getResource(); - try { - BoxComment.Info firstCommentInfo = uploadedFile.addComment(firstMessage); - BoxComment firstComment = firstCommentInfo.getResource(); - - BoxComment.Info replyCommentInfo = firstComment.reply(replyMessage); - - assertThat(replyCommentInfo.getMessage(), is(equalTo(replyMessage))); - assertThat(replyCommentInfo.getIsReplyComment(), is(true)); - assertThat(replyCommentInfo.getItem().getID(), is(equalTo(uploadedFile.getID()))); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void getCommentInfoSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - String fileName = randomizeName("[getCommentInfoSucceeds] Test File.txt"); - byte[] fileBytes = "Non-empty string".getBytes(StandardCharsets.UTF_8); - String message = "Comment message"; - - InputStream uploadStream = new ByteArrayInputStream(fileBytes); - BoxFile uploadedFile = rootFolder.uploadFile(uploadStream, fileName).getResource(); - try { - BoxComment.Info commentInfo = uploadedFile.addComment(message); - BoxComment comment = commentInfo.getResource(); - commentInfo = comment.getInfo(); - - assertThat(commentInfo.getMessage(), is(equalTo(message))); - assertThat(commentInfo.getItem().getID(), is(equalTo(uploadedFile.getID()))); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void changeCommentMessageSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - String fileName = randomizeName("[changeCommentMessageSucceeds] Test File.txt"); - byte[] fileBytes = "Non-empty string".getBytes(StandardCharsets.UTF_8); - String originalMessage = "Original message"; - String changedMessage = "Changed message"; - - InputStream uploadStream = new ByteArrayInputStream(fileBytes); - BoxFile uploadedFile = rootFolder.uploadFile(uploadStream, fileName).getResource(); - try { - BoxComment.Info commentInfo = uploadedFile.addComment(originalMessage); - BoxComment comment = commentInfo.getResource(); - commentInfo = comment.changeMessage(changedMessage); - - assertThat(commentInfo.getMessage(), is(equalTo(changedMessage))); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void deleteCommentSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - String fileName = randomizeName("[deleteCommentSucceeds] Test File.txt"); - byte[] fileBytes = "Non-empty string".getBytes(StandardCharsets.UTF_8); - String message = "Comment message"; - - InputStream uploadStream = new ByteArrayInputStream(fileBytes); - BoxFile uploadedFile = rootFolder.uploadFile(uploadStream, fileName).getResource(); - try { - BoxComment.Info commentInfo = uploadedFile.addComment(message); - BoxComment comment = commentInfo.getResource(); - comment.delete(); - } finally { - deleteFile(uploadedFile); - } - } -} diff --git a/src/intTest/java/com/box/sdk/BoxFileIT.java b/src/intTest/java/com/box/sdk/BoxFileIT.java deleted file mode 100644 index 15ee91809..000000000 --- a/src/intTest/java/com/box/sdk/BoxFileIT.java +++ /dev/null @@ -1,1297 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BinaryBodyUtils.writeStream; -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; -import static com.box.sdk.BoxFile.ALL_VERSION_FIELDS; -import static com.box.sdk.BoxFile.CONTENT_URL_TEMPLATE; -import static com.box.sdk.BoxRetentionPolicyAssignment.createAssignmentToFolder; -import static com.box.sdk.BoxSharedLink.Access.OPEN; -import static com.box.sdk.CleanupTools.deleteFile; -import static com.box.sdk.CleanupTools.deleteFolder; -import static com.box.sdk.UniqueTestFolder.getUniqueFolder; -import static com.box.sdk.UniqueTestFolder.randomizeName; -import static com.box.sdk.UniqueTestFolder.removeUniqueFolder; -import static com.box.sdk.UniqueTestFolder.setupUniqeFolder; -import static com.box.sdk.UniqueTestFolder.uploadFileToUniqueFolder; -import static com.box.sdk.UniqueTestFolder.uploadFileToUniqueFolderWithSomeContent; -import static com.box.sdk.UniqueTestFolder.uploadFileWithContentToSpecifiedFolder; -import static com.box.sdk.UniqueTestFolder.uploadFileWithSomeContent; -import static com.box.sdk.UniqueTestFolder.uploadSampleFileToUniqueFolder; -import static com.box.sdk.UniqueTestFolder.uploadTwoFileVersionsToUniqueFolder; -import static java.nio.charset.StandardCharsets.UTF_8; -import static java.time.ZoneOffset.UTC; -import static java.util.UUID.randomUUID; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.emptyOrNullString; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.hasItem; -import static org.hamcrest.Matchers.hasSize; -import static org.hamcrest.Matchers.instanceOf; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.not; -import static org.hamcrest.Matchers.notNullValue; -import static org.hamcrest.Matchers.nullValue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.mockito.ArgumentMatchers.anyLong; -import static org.mockito.Mockito.atLeastOnce; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.hamcrest.MockitoHamcrest.longThat; - -import com.box.sdk.sharedlink.BoxSharedLinkRequest; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.RandomAccessFile; -import java.io.UnsupportedEncodingException; -import java.net.URL; -import java.net.URLDecoder; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.security.DigestInputStream; -import java.security.MessageDigest; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Collection; -import java.util.Date; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Random; -import org.hamcrest.Matchers; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - -/** - * {@link BoxFile} related integration tests. - */ -public class BoxFileIT { - - @BeforeClass - public static void setup() { - setupUniqeFolder(); - } - - @AfterClass - public static void tearDown() { - removeUniqueFolder(); - } - - protected static byte[] readAllBytes(String fileName) { - try (RandomAccessFile f = new RandomAccessFile(fileName, "r")) { - byte[] b = new byte[(int) f.length()]; - f.read(b); - return b; - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - @Test - public void getInfoWithRepresentationsIntegrationTestWithSimpleHint() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFile uploadedFile = null; - try { - uploadedFile = uploadSampleFileToUniqueFolder(api, "red_100x100.png"); - List representations = - uploadedFile.getInfoWithRepresentations("[png]").getRepresentations(); - assertTrue("There should be at least one representation", representations.size() > 0); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void getInfoWithRepresentationsIntegrationTestWithComplexHint() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFile uploadedFile = null; - try { - uploadedFile = uploadSampleFileToUniqueFolder(api, "red_100x100.png"); - List representations = uploadedFile.getInfoWithRepresentations( - "[jpg,png?dimensions=1024x1024][pdf]").getRepresentations(); - assertTrue("There should be at least one representation", representations.size() > 0); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void getRepresentationContentSucceeds() throws InterruptedException { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "smalltest.pdf"; - BoxFile file = null; - try { - file = uploadSampleFileToUniqueFolder(api, fileName); - final String fileId = file.getID(); - String representationHint = "[jpg?dimensions=32x32]"; - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - Retry.retry(() -> { - new BoxFile(api, fileId).getRepresentationContent(representationHint, outputStream); - byte[] downloadedRepresentationContent = outputStream.toByteArray(); - - assertNotNull(downloadedRepresentationContent); - }, 5, 100); - } finally { - deleteFile(file); - } - } - - @Test - public void getRepresentationContentWithExtractedTextSucceeds() throws InterruptedException { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "text.pdf"; - BoxFile file = null; - try { - file = uploadSampleFileToUniqueFolder(api, fileName); - final String fileId = file.getID(); - String representationHint = "[extracted_text]"; - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - Retry.retry(() -> { - new BoxFile(api, fileId).getRepresentationContent(representationHint, outputStream); - byte[] downloadedRepresentationContent = outputStream.toByteArray(); - String text = new String(downloadedRepresentationContent, StandardCharsets.UTF_8); - assertTrue(text.contains("Lorem ipsum")); - }, 5, 100); - } finally { - deleteFile(file); - } - } - - @Test - public void uploadFileStreamSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder folder = getUniqueFolder(api); - - byte[] fileContent = new byte[10000]; - new Random().nextBytes(fileContent); - - BoxFile uploadedFile = null; - try { - InputStream uploadStream = new ByteArrayInputStream(fileContent); - BoxFile.Info uploadedFileInfo = folder.uploadFile(uploadStream, BoxFileIT.generateString()); - uploadedFile = uploadedFileInfo.getResource(); - - ByteArrayOutputStream downloadStream = new ByteArrayOutputStream(); - uploadedFile.download(downloadStream); - byte[] downloadedFileContent = downloadStream.toByteArray(); - - assertThat(downloadedFileContent, is(equalTo(fileContent))); - assertThat(folder, hasItem(Matchers.hasProperty("ID", equalTo(uploadedFile.getID())))); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void uploadAndDownloadFileSucceeds() throws IOException { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder folder = getUniqueFolder(api); - String fileName = "red_100x100.png"; - URL fileURL = this.getClass().getResource("/sample-files/" + fileName); - String filePath = URLDecoder.decode(fileURL.getFile(), "utf-8"); - long fileSize = new File(filePath).length(); - byte[] fileContent = readAllBytes(filePath); - BoxFile uploadedFile = null; - try { - InputStream uploadStream = Files.newInputStream(Paths.get(filePath)); - ProgressListener mockUploadListener = mock(ProgressListener.class); - BoxFile.Info uploadedFileInfo = folder.uploadFile( - uploadStream, BoxFileIT.generateString(), fileSize, mockUploadListener - ); - uploadedFile = uploadedFileInfo.getResource(); - - ByteArrayOutputStream downloadStream = new ByteArrayOutputStream(); - ProgressListener mockDownloadListener = mock(ProgressListener.class); - uploadedFile.download(downloadStream, mockDownloadListener); - byte[] downloadedFileContent = downloadStream.toByteArray(); - - assertThat(downloadedFileContent, is(equalTo(fileContent))); - assertThat(folder, hasItem(Matchers.hasProperty("ID", equalTo(uploadedFile.getID())))); - verify(mockUploadListener, atLeastOnce()).onProgressChanged(anyLong(), longThat(is(equalTo(fileSize)))); - verify(mockDownloadListener, atLeastOnce()).onProgressChanged(anyLong(), longThat(is(equalTo(fileSize)))); - } finally { - deleteFile(uploadedFile); - } - - } - - @Test - public void downloadFileUseZstdSucceeds() throws IOException { - BoxAPIConnection api = jwtApiForServiceAccount(); - api.setUseZstdCompression(true); - - String fileName = "smalltest.pdf"; - URL fileURL = this.getClass().getResource("/sample-files/" + fileName); - String filePath = URLDecoder.decode(fileURL.getFile(), "utf-8"); - byte[] fileContent = readAllBytes(filePath); - BoxFile file = null; - try { - file = uploadSampleFileToUniqueFolder(api, fileName); - - ByteArrayOutputStream downloadStream = new ByteArrayOutputStream(); - ProgressListener mockDownloadListener = mock(ProgressListener.class); - - URL url = CONTENT_URL_TEMPLATE.build(api.getBaseURL(), file.getID()); - BoxAPIRequest request = new BoxAPIRequest(api, url, "GET"); - BoxAPIResponse response = request.send(); - writeStream(response, downloadStream, mockDownloadListener); - - byte[] downloadedFileContent = downloadStream.toByteArray(); - assertThat(response.getHeaders().get("X-Content-Encoding").get(0), is(equalTo("zstd"))); - assertThat(downloadedFileContent, is(equalTo(fileContent))); - } finally { - deleteFile(file); - } - } - - @Test - public void uploadAndDownloadFileDisabledZstdSucceeds() throws IOException { - BoxAPIConnection api = jwtApiForServiceAccount(); - api.setUseZstdCompression(false); - - String fileName = "smalltest.pdf"; - URL fileURL = this.getClass().getResource("/sample-files/" + fileName); - String filePath = URLDecoder.decode(fileURL.getFile(), "utf-8"); - byte[] fileContent = readAllBytes(filePath); - BoxFile file = null; - try { - file = uploadSampleFileToUniqueFolder(api, fileName); - - ByteArrayOutputStream downloadStream = new ByteArrayOutputStream(); - ProgressListener mockDownloadListener = mock(ProgressListener.class); - - URL url = CONTENT_URL_TEMPLATE.build(api.getBaseURL(), file.getID()); - BoxAPIRequest request = new BoxAPIRequest(api, url, "GET"); - BoxAPIResponse response = request.send(); - writeStream(response, downloadStream, mockDownloadListener); - - byte[] downloadedFileContent = downloadStream.toByteArray(); - assertThat(response.getHeaders().get("X-Content-Encoding"), is(nullValue())); - assertThat(downloadedFileContent, is(equalTo(fileContent))); - } finally { - deleteFile(file); - } - } - - @Test - public void downloadFileRangeSucceeds() throws IOException { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "red_100x100.png"; - BoxFile uploadedFile = null; - try { - uploadedFile = uploadSampleFileToUniqueFolder(api, fileName); - BoxFile.Info uplodedFileInfo = uploadedFile.getInfo(); - long firstHalf = uplodedFileInfo.getSize() / 2; - - ByteArrayOutputStream downloadStream = new ByteArrayOutputStream(); - uploadedFile.downloadRange(downloadStream, 0, firstHalf); - uploadedFile.downloadRange(downloadStream, firstHalf + 1); - byte[] downloadedFileContent = downloadStream.toByteArray(); - - assertThat(downloadedFileContent, is(equalTo(this.readFileContent(fileName)))); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void getInfoWithOnlyTheNameField() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[getInfoWithOnlyTheNameField] Test File.txt"; - BoxFile uploadedFile = null; - - try { - uploadedFile = uploadFileToUniqueFolder(api, fileName, "Test file"); - BoxFile.Info uploadedFileInfo = uploadedFile.getInfo("name"); - - assertThat(uploadedFileInfo.getName(), is(equalTo(fileName))); - assertThat(uploadedFileInfo.getDescription(), is(nullValue())); - assertThat(uploadedFileInfo.getSize(), is(equalTo(0L))); - } finally { - deleteFile(uploadedFile); - } - - } - - @Test - public void fileLockAndUnlockSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[getInfoWithOnlyTheLockField] Test File" + Calendar.getInstance().getTimeInMillis() + ".txt"; - BoxFile uploadedFile = null; - - try { - uploadedFile = uploadFileToUniqueFolder(api, fileName, "Test file"); - - Calendar calendar = Calendar.getInstance(); - calendar.add(Calendar.DAY_OF_YEAR, 1); - Date expiresAt = calendar.getTime(); - uploadedFile.lock(expiresAt, false); - - BoxFile.Info uploadedFileInfo = uploadedFile.getInfo("lock", "created_by"); - BoxLock fileLock = uploadedFileInfo.getLock(); - - assertThat(fileLock, is(instanceOf(BoxLock.class))); - assertThat(fileLock.getExpiresAt().toString(), is(equalTo(expiresAt.toString()))); - assertThat(fileLock.getIsDownloadPrevented(), is(equalTo(false))); - assertThat(fileLock.getCreatedBy().getID(), is(equalTo(uploadedFileInfo.getCreatedBy().getID()))); - - uploadedFile.unlock(); - - BoxFile.Info updatedFileInfo = uploadedFile.getInfo("lock"); - assertThat(updatedFileInfo.getLock(), is(nullValue())); - - uploadedFile.lock(true); - - uploadedFileInfo = uploadedFile.getInfo("lock", "created_by"); - fileLock = uploadedFileInfo.getLock(); - - assertThat(fileLock, is(instanceOf(BoxLock.class))); - assertNull(fileLock.getExpiresAt()); - assertThat(fileLock.getIsDownloadPrevented(), is(equalTo(true))); - assertThat(fileLock.getCreatedBy().getID(), is(equalTo(uploadedFileInfo.getCreatedBy().getID()))); - - uploadedFile.unlock(); - - uploadedFile.lock(); - - uploadedFileInfo = uploadedFile.getInfo("lock", "created_by"); - fileLock = uploadedFileInfo.getLock(); - - assertThat(fileLock, is(instanceOf(BoxLock.class))); - assertNull(fileLock.getExpiresAt()); - assertThat(fileLock.getIsDownloadPrevented(), is(equalTo(false))); - assertThat(fileLock.getCreatedBy().getID(), is(equalTo(uploadedFileInfo.getCreatedBy().getID()))); - - uploadedFile.unlock(); - } finally { - deleteFile(uploadedFile); - } - - } - - @Test - public void getInfoWithAllFields() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[getInfoWithAllFields] Test File.txt"; - BoxFile uploadedFile = null; - try { - uploadedFile = uploadFileToUniqueFolder(api, fileName, "Test file"); - BoxFile.Info uploadedFileInfo = uploadedFile.getInfo(BoxFile.ALL_FIELDS); - - assertThat(uploadedFileInfo.getName(), is(equalTo(fileName))); - assertThat(uploadedFileInfo.getVersionNumber(), is(equalTo("1"))); - assertThat(uploadedFileInfo.getCommentCount(), is(equalTo(0L))); - assertThat(uploadedFileInfo.getExtension(), is(equalTo("txt"))); - assertThat(uploadedFileInfo.getIsPackage(), is(false)); - assertThat(uploadedFileInfo.getItemStatus(), is(equalTo("active"))); - assertThat(uploadedFileInfo.getVersion(), not(nullValue())); - assertThat(uploadedFileInfo.getVersion().getVersionID(), not(nullValue())); - assertThat(uploadedFileInfo.getPermissions(), hasItem(BoxFile.Permission.CAN_INVITE_COLLABORATOR)); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void updateFileWithSpecialCharsInNameSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String originalFileName = "[updateFileWithSpecialCharsInNameSucceeds] abc\";def.txt"; - - BoxFile uploadedFile = null; - try { - uploadedFile = uploadFileToUniqueFolder(api, originalFileName, "Test file"); - assertThat(uploadedFile.getInfo().getName(), is(equalTo(originalFileName))); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void updateFileInfoSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String originalFileName = "[updateFileInfoSucceeds] Original Name.txt"; - String newFileName = "[updateFileInfoSucceeds] New Name.txt"; - BoxFile uploadedFile = null; - try { - uploadedFile = uploadFileToUniqueFolder(api, originalFileName, "Test file"); - - BoxFile.Info newInfo = uploadedFile.new Info(); - newInfo.setName(newFileName); - uploadedFile.updateInfo(newInfo); - - assertThat(uploadedFile.getInfo().getName(), is(equalTo(newFileName))); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void renameFileSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String originalFileName = "[renameFileSucceeds] Original Name.txt"; - String newFileName = "[renameFileSucceeds] New Name.txt"; - BoxFile uploadedFile = null; - try { - uploadedFile = uploadFileToUniqueFolder(api, originalFileName, "Test file"); - - uploadedFile.rename(newFileName); - BoxFile.Info newInfo = uploadedFile.getInfo(); - - assertThat(newInfo.getName(), is(equalTo(newFileName))); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void uploadAndDownloadMultipleVersionsSucceeds() throws UnsupportedEncodingException { - BoxFile uploadedFile = null; - String fileName = "[uploadAndDownloadMultipleVersionsSucceeds] Multi-version File.txt"; - String version1Content = "Version 1"; - String version1Sha = "db3cbc01da600701b9fe4a497fe328e71fa7022f"; - String version2Content = "Version 2"; - ProgressListener mockUploadListener = mock(ProgressListener.class); - try { - uploadedFile = uploadTwoFileVersionsToUniqueFolder(fileName, version1Content, - version2Content, mockUploadListener); - Collection versions = uploadedFile.getVersions(); - BoxFileVersion previousVersion = versions.iterator().next(); - - ByteArrayOutputStream downloadStream = new ByteArrayOutputStream(); - ProgressListener mockDownloadListener = mock(ProgressListener.class); - previousVersion.download(downloadStream, mockDownloadListener); - String downloadedContent = downloadStream.toString(StandardCharsets.UTF_8.name()); - - assertThat(versions, hasSize(1)); - assertThat(previousVersion.getSha1(), is(equalTo(version1Sha))); - assertThat(downloadedContent, equalTo(version1Content)); - verify(mockDownloadListener, atLeastOnce()).onProgressChanged(anyLong(), anyLong()); - long version1Size = version1Content.getBytes(StandardCharsets.UTF_8).length; - verify(mockUploadListener, atLeastOnce()).onProgressChanged(anyLong(), - longThat(is(equalTo(version1Size)))); - - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void uploadNewVersionSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "Multi-version File.txt"; - String updatedFileName = "[uploadNewVersionSucceeds] Multi-version File.txt"; - Date contentModifiedAt = new Date(10000); - BoxFile uploadedFile = null; - try { - uploadedFile = uploadFileToUniqueFolder(api, fileName, "Version 1"); - InputStream uploadStream = this.getFileContent("Version 1"); - BoxFile.Info newVersion = uploadedFile.uploadNewVersion( - uploadStream, - null, - contentModifiedAt, - updatedFileName, - 0, - null - ); - - assertEquals(updatedFileName, newVersion.getName()); - assertEquals(contentModifiedAt, newVersion.getContentModifiedAt()); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void getVersionSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[getVersionByIdSucceeds] Multi-version File.txt"; - BoxFile uploadedFile = null; - try { - uploadedFile = uploadFileToUniqueFolder(api, fileName, "Test file"); - uploadedFile.uploadNewVersion(this.getFileContent("Version 2")); - - Collection versions = uploadedFile.getVersions(); - BoxFileVersion versionFromGetVersions = versions.iterator().next(); - - BoxFileVersion versionFromGetById = uploadedFile.getVersionByID(versionFromGetVersions.getID()); - - assertThat(versionFromGetVersions.getVersionID(), equalTo(versionFromGetById.getVersionID())); - assertThat(versionFromGetVersions.getFileID(), equalTo(versionFromGetById.getFileID())); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void deleteVersionSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[deleteVersionSucceeds] Multi-version File.txt"; - BoxFile uploadedFile = null; - try { - uploadedFile = uploadFileToUniqueFolder(api, fileName, "Test file"); - uploadedFile.uploadNewVersion(this.getFileContent("Version 2")); - - Collection versions = uploadedFile.getVersions(); - BoxFileVersion previousVersion = versions.iterator().next(); - previousVersion.delete(); - - Collection versionsAfterRemove = uploadedFile.getVersions(); - assertThat(versionsAfterRemove, Matchers.hasSize(1)); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void shouldReturnTrashedAtForADeleteVersion() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[deleteVersionSucceeds] Multi-version File.txt"; - BoxFile uploadedFile = null; - try { - uploadedFile = uploadFileToUniqueFolder(api, fileName, "Test file"); - uploadedFile.uploadNewVersion(this.getFileContent("Version 2")); - Collection versions = uploadedFile.getVersions(); - assertThat(versions, Matchers.hasSize(1)); - - BoxFileVersion version = versions.iterator().next(); - assertThat(version.getTrashedAt(), is(nullValue())); - - version.delete(); - - BoxFileVersion trashedVersion = uploadedFile.getVersions().iterator().next(); - assertThat(trashedVersion.getTrashedAt(), is(notNullValue())); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void promoteVersionsSucceeds() throws UnsupportedEncodingException { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[promoteVersionsSucceeds] Multi-version File.txt"; - BoxFile uploadedFile = null; - try { - uploadedFile = uploadFileToUniqueFolder(api, fileName, "Test file"); - uploadedFile.uploadNewVersion(this.getFileContent("Version 1")); - uploadedFile.uploadNewVersion(this.getFileContent("Version 2")); - - Iterator iterator = uploadedFile.getVersions().iterator(); - BoxFileVersion version1 = iterator.next(); - version1.promote(); - - ByteArrayOutputStream downloadStream = new ByteArrayOutputStream(); - uploadedFile.download(downloadStream); - String downloadedContent = downloadStream.toString(StandardCharsets.UTF_8.name()); - assertThat(downloadedContent, equalTo("Version 1")); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void canListVersions() { - BoxFile uploadedFile = null; - String fileName = "[canListVersions] Multi-version File.txt"; - try { - - uploadedFile = uploadTwoFileVersionsToUniqueFolder( - fileName, "Version 1", "Version 2", mock(ProgressListener.class) - ); - - Collection versions = uploadedFile.getVersions(); - assertThat(versions.size(), is(1)); - BoxFileVersion version = versions.iterator().next(); - assertThat(version.getName(), is(notNullValue())); - assertThat(version.getFileID(), is(notNullValue())); - assertThat(version.getCreatedAt(), is(notNullValue())); - assertThat(version.getVersionNumber(), is(nullValue())); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void canPaginateOverListOfVersions() { - BoxFile uploadedFile = null; - String fileName = "[canPaginateOverListOfVersions] Multi-version File.txt"; - try { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder uniqueFolder = getUniqueFolder(api); - uploadedFile = uploadFileWithContentToSpecifiedFolder(fileName, "Version 1", uniqueFolder); - - byte[] fileBytes = "Version 2".getBytes(StandardCharsets.UTF_8); - uploadedFile.uploadNewVersion( - new ByteArrayInputStream(fileBytes), null, fileBytes.length, mock(ProgressListener.class)); - - fileBytes = "Version 3".getBytes(StandardCharsets.UTF_8); - uploadedFile.uploadNewVersion( - new ByteArrayInputStream(fileBytes), null, fileBytes.length, mock(ProgressListener.class)); - - Collection versionsPart1 = uploadedFile.getVersionsRange(0, 1); - assertThat(versionsPart1.size(), is(1)); - BoxFileVersion boxFileVersion1 = versionsPart1.iterator().next(); - - Collection versionsPart2 = uploadedFile.getVersionsRange(1, 2); - assertThat(versionsPart2.size(), is(1)); - BoxFileVersion boxFileVersion2 = versionsPart2.iterator().next(); - - Collection allVersions = uploadedFile.getVersionsRange(0, 10); - assertThat(allVersions.size(), is(2)); - Iterator iterator = allVersions.iterator(); - assertThat(iterator.next(), is(boxFileVersion1)); - assertThat(iterator.next(), is(boxFileVersion2)); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void canListVersionsWithSpecificFields() { - BoxFile uploadedFile = null; - String fileName = "[canListVersionsWithSpecificFields] Multi-version File.txt"; - try { - - uploadedFile = uploadTwoFileVersionsToUniqueFolder( - fileName, "Version 1", "Version 2", mock(ProgressListener.class) - ); - - Collection versions = uploadedFile.getVersions("name", "version_number"); - assertThat(versions.size(), is(1)); - BoxFileVersion version = versions.iterator().next(); - assertThat(version.getName(), is(notNullValue())); - assertThat(version.getFileID(), is(notNullValue())); - assertThat(version.getCreatedAt(), is(nullValue())); - assertThat(version.getVersionNumber(), is(1L)); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void canListVersionsWithAllFields() { - BoxFile uploadedFile = null; - String fileName = "[canListVersionsWithAllFields] Multi-version File.txt"; - try { - // given - uploadedFile = uploadTwoFileVersionsToUniqueFolder( - fileName, "Version 1", "Version 2", mock(ProgressListener.class) - ); - BoxFileVersion version1 = uploadedFile.getVersions().iterator().next(); - version1.promote(); - version1.delete(); - - // when - Collection versions = uploadedFile.getVersions(ALL_VERSION_FIELDS); - - //then - assertThat(versions.size(), is(2)); - Iterator iterator = versions.iterator(); - iterator.next(); - BoxFileVersion version = iterator.next(); - assertThat(version.getID(), is(notNullValue())); - assertThat(version.getSha1(), is(notNullValue())); - assertThat(version.getName(), is(notNullValue())); - assertThat(version.getSize(), is(notNullValue())); - assertThat(version.getUploaderDisplayName(), is(notNullValue())); - assertThat(version.getCreatedAt(), is(notNullValue())); - assertThat(version.getModifiedAt(), is(notNullValue())); - assertThat(version.getModifiedBy(), is(notNullValue())); - assertThat(version.getTrashedAt(), is(notNullValue())); - assertThat(version.getTrashedBy(), is(notNullValue())); - assertThat(version.getPurgedAt(), is(notNullValue())); - assertThat(version.getFileID(), is(uploadedFile.getID())); - assertThat(version.getVersionNumber(), is(notNullValue())); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void copyFileSucceeds() throws UnsupportedEncodingException { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder uploadFolder = getUniqueFolder(api); - String originalFileName = "[copyFileSucceeds] Original File.txt"; - String newFileName = "[copyFileSucceeds] New File.txt"; - String fileContent = "Test file"; - BoxFile uploadedFile = null; - BoxFile copiedFile = null; - try { - uploadedFile = uploadFileToUniqueFolder(api, originalFileName, fileContent); - copiedFile = uploadedFile.copy(uploadFolder, newFileName).getResource(); - - ByteArrayOutputStream downloadStream = new ByteArrayOutputStream(); - copiedFile.download(downloadStream); - String downloadedContent = downloadStream.toString(StandardCharsets.UTF_8.name()); - assertThat(downloadedContent, equalTo(fileContent)); - } finally { - deleteFile(uploadedFile); - deleteFile(copiedFile); - } - } - - @Test - public void moveFileSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[moveFileSucceeds] Test File.txt"; - String folderName = "[moveFileSucceeds] Destination Folder"; - BoxFile uploadedFile = null; - BoxFolder destinationFolder = null; - try { - uploadedFile = uploadFileToUniqueFolder(api, fileName, "Test file"); - - destinationFolder = getUniqueFolder(api).createFolder(folderName).getResource(); - uploadedFile.move(destinationFolder); - - assertThat(destinationFolder, - hasItem(Matchers.hasProperty("ID", equalTo(uploadedFile.getID())))); - } finally { - deleteFile(uploadedFile); - deleteFolder(destinationFolder); - } - } - - @Test - public void createAndUpdateSharedLinkSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[createAndUpdateSharedLinkSucceeds] Test File.txt"; - BoxFile uploadedFile = null; - try { - uploadedFile = uploadFileToUniqueFolder(api, fileName, "Test file"); - assertThat( - uploadedFile.getInfo("is_accessible_via_shared_link").getIsAccessibleViaSharedLink(), - is(false) - ); - BoxSharedLink sharedLink = uploadedFile.createSharedLink( - new BoxSharedLinkRequest() - .access(OPEN) - .permissions(true, true, true) - ); - - assertThat(sharedLink.getURL(), not(is(emptyOrNullString()))); - - sharedLink.getPermissions().setCanDownload(false); - BoxFile.Info info = uploadedFile.new Info(); - info.setSharedLink(sharedLink); - uploadedFile.updateInfo(info); - - BoxFile.Info updatedInfo = uploadedFile.getInfo("shared_link", "is_accessible_via_shared_link"); - assertThat(updatedInfo.getSharedLink().getPermissions().getCanDownload(), is(false)); - assertThat(updatedInfo.getIsAccessibleViaSharedLink(), is(true)); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void downloadpdateSharedLinkSucceeds() throws IOException { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[downloadpdateSharedLinkSucceeds] Test File.txt"; - String fileContent = "Test file"; - String password = "Secret123@"; - BoxFile uploadedFile = null; - try { - uploadedFile = uploadFileToUniqueFolder(api, fileName, fileContent); - assertThat( - uploadedFile.getInfo("is_accessible_via_shared_link").getIsAccessibleViaSharedLink(), - is(false) - ); - BoxSharedLink sharedLink = uploadedFile.createSharedLink( - new BoxSharedLinkRequest() - .access(OPEN) - .password(password) - .permissions(true, true, true) - ); - - ByteArrayOutputStream downloadStream = new ByteArrayOutputStream(); - BoxFile.downloadFromSharedLink(api, downloadStream, sharedLink.getURL(), password); - downloadStream.close(); - byte[] downloadedFileContent = downloadStream.toByteArray(); - assertThat(downloadedFileContent, is(equalTo(fileContent.getBytes()))); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void createEditableSharedLinkSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[createEditableSharedLinkSucceeds] Test File.txt"; - BoxFile uploadedFile = null; - try { - uploadedFile = uploadFileToUniqueFolder(api, fileName, "Test file"); - uploadedFile.createSharedLink( - new BoxSharedLinkRequest() - .permissions(true, true, true) - ); - - BoxSharedLink.Permissions createdPermissions = uploadedFile.getInfo().getSharedLink().getPermissions(); - assertThat(createdPermissions.getCanPreview(), is(true)); - assertThat(createdPermissions.getCanDownload(), is(true)); - assertThat(createdPermissions.getCanEdit(), is(true)); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void addCommentSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[addCommentSucceeds] Test File.txt"; - String commentMessage = "Non-empty message"; - BoxFile uploadedFile = null; - - try { - uploadedFile = uploadFileToUniqueFolder(api, fileName, "Test file"); - BoxComment.Info addedCommentInfo = uploadedFile.addComment(commentMessage); - - assertThat(addedCommentInfo.getMessage(), is(equalTo(commentMessage))); - assertThat(uploadedFile.getComments(), - hasItem(Matchers.hasProperty("ID", equalTo(addedCommentInfo.getID())))); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void addCommentWithMentionSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[addCommentWithMentionSucceeds] Test File.txt"; - String commentMessage = String.format( - "Message mentioning @[%s:%s]", - TestConfig.getCollaboratorID(), - TestConfig.getCollaborator() - ); - BoxFile uploadedFile = null; - - try { - uploadedFile = uploadFileToUniqueFolder(api, fileName, "Test file"); - BoxComment.Info addedCommentInfo = uploadedFile.addComment(commentMessage); - - String expectedCommentMessage = "Message mentioning " + TestConfig.getCollaborator(); - assertThat(addedCommentInfo.getMessage(), is(equalTo(expectedCommentMessage))); - assertThat(uploadedFile.getComments(), - hasItem(Matchers.hasProperty("ID", equalTo(addedCommentInfo.getID())))); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void createMetadataAndGetMetadataOnInfoSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[createMetadataSucceeds] Test File.txt"; - - BoxFile uploadedFile = null; - try { - uploadedFile = uploadFileToUniqueFolder(api, fileName, "Test file"); - uploadedFile.createMetadata(new Metadata().add("/foo", "bar")); - - Metadata metadata = uploadedFile.getMetadata(); - assertNotNull(metadata); - assertEquals("bar", metadata.getString("/foo")); - - Metadata actualMD = uploadedFile.getInfo("metadata.global.properties") - .getMetadata("properties", "global"); - assertNotNull("Metadata should not be null for this file", actualMD); - } catch (BoxAPIException e) { - fail("Metadata should have been present on this folder"); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void updateMetadataSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[updateMetadataSucceeds] Test File.txt"; - BoxFile uploadedFile = null; - try { - uploadedFile = uploadFileToUniqueFolder(api, fileName, "Test file"); - uploadedFile.createMetadata(new Metadata().add("/foo", "bar")); - - Metadata metadata = uploadedFile.getMetadata(); - assertNotNull(metadata); - assertEquals("bar", metadata.getString("/foo")); - - uploadedFile.updateMetadata(metadata.replace("/foo", "baz")); - - Metadata updatedMetadata = uploadedFile.getMetadata(); - assertNotNull(updatedMetadata); - assertEquals("baz", updatedMetadata.getString("/foo")); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void addTaskSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[addTaskSucceeds] Test File " + Calendar.getInstance().getTimeInMillis() + ".txt"; - String taskMessage = "Non-empty message"; - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX"); - Date dueAt = new Date(new Date().getTime() + (1000 * 24 * 60 * 60)); - BoxFile uploadedFile = null; - try { - uploadedFile = uploadFileToUniqueFolder(api, fileName, "Test file"); - BoxTask.Info addedTaskInfo = uploadedFile.addTask(BoxTask.Action.REVIEW, taskMessage, dueAt); - - assertThat(addedTaskInfo.getMessage(), is(equalTo(taskMessage))); - assertThat(dateFormat.format(addedTaskInfo.getDueAt()), is(equalTo(dateFormat.format(dueAt)))); - assertThat(uploadedFile.getTasks(), hasItem(Matchers.hasProperty("ID", - equalTo(addedTaskInfo.getID())))); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void getPreviewLink() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[getPreviewLink] Test File.txt"; - BoxFile uploadedFile = null; - - try { - uploadedFile = uploadFileToUniqueFolder(api, fileName, "Test file"); - URL uploadedFilePreviewLink = uploadedFile.getPreviewLink(); - - assertThat(uploadedFilePreviewLink, is(notNullValue())); - assertThat(uploadedFilePreviewLink.toString(), not(is(emptyOrNullString()))); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void getDownloadURL() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[getPreviewLink] Test File.txt"; - BoxFile uploadedFile = null; - - try { - uploadedFile = uploadFileToUniqueFolder(api, fileName, "Test file"); - URL uploadedFileDownloadURL = uploadedFile.getDownloadURL(); - - assertThat(uploadedFileDownloadURL, is(notNullValue())); - assertThat(uploadedFileDownloadURL.toString(), not(is(emptyOrNullString()))); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void setCollectionsSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[setCollectionsSucceeds] Test File " + Calendar.getInstance().getTimeInMillis() + ".txt"; - BoxFile uploadedFile = null; - try { - uploadedFile = uploadFileToUniqueFolder(api, fileName, "Test file"); - Iterable collections = BoxCollection.getAllCollections(api); - BoxCollection.Info favoritesInfo = collections.iterator().next(); - BoxFile.Info updatedInfo = uploadedFile.setCollections(favoritesInfo.getResource()); - - assertThat(updatedInfo.getCollections(), hasItem(Matchers.hasProperty("ID", - equalTo(favoritesInfo.getID())))); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void setCollectionsWithInfoSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[setCollectionsWithInfoSucceeds] Test File.txt"; - BoxFile uploadedFile = null; - try { - uploadedFile = uploadFileToUniqueFolder(api, fileName, "Test file"); - Iterable collections = BoxCollection.getAllCollections(api); - BoxCollection.Info favoritesInfo = collections.iterator().next(); - ArrayList newCollections = new ArrayList<>(); - newCollections.add(favoritesInfo.getResource()); - BoxFile.Info fileInfo = uploadedFile.new Info(); - fileInfo.setCollections(newCollections); - uploadedFile.updateInfo(fileInfo); - BoxFile.Info updatedInfo = uploadedFile.getInfo("collections"); - - assertThat(fileInfo.getCollections(), hasItem(Matchers.hasProperty("ID", - equalTo(favoritesInfo.getID())))); - assertThat(updatedInfo.getCollections(), hasItem(Matchers.hasProperty("ID", - equalTo(favoritesInfo.getID())))); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void uploadSessionCommitFlowSuccess() throws Exception { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder folder = getUniqueFolder(api); - - BoxFile uploadedFile = null; - File file; - try { - file = FileUtils.generate(randomizeName("LargeFile.txt"), 21_000_000); - long fileSize = file.length(); - - //Create the session - BoxFileUploadSession.Info session = - this.createFileUploadSession(folder, BoxFileIT.generateString(), fileSize); - - //Create the parts - MessageDigest fileDigest = this.uploadParts(session, fileSize, file); - - //List the session parts - List parts = this.listUploadSessionParts(session.getResource()); - - byte[] digestBytes = fileDigest.digest(); - String digest = Base64.encode(digestBytes); - - //Verify the delete session - uploadedFile = this.commitSession(session.getResource(), digest, parts); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void uploadSessionAbortFlowSuccess() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder folder = getUniqueFolder(api); - BoxFileUploadSession.Info sessionInfo = - this.createFileUploadSession(folder, BoxFileIT.generateString(), 25_000_000); - assertNotNull(sessionInfo.getUploadSessionId()); - assertNotNull(sessionInfo.getSessionExpiresAt()); - - BoxFileUploadSession.Endpoints endpoints = sessionInfo.getSessionEndpoints(); - assertNotNull(endpoints); - assertNotNull(endpoints.getUploadPartEndpoint()); - assertNotNull(endpoints.getStatusEndpoint()); - assertNotNull(endpoints.getListPartsEndpoint()); - assertNotNull(endpoints.getCommitEndpoint()); - assertNotNull(endpoints.getAbortEndpoint()); - - //Verify the status of the session - BoxFileUploadSession session = sessionInfo.getResource(); - this.verifySessionExists(session); - - //Verify the delete session - session.abort(); - this.verifySessionWasAborted(session); - } - - @Test - public void uploadLargeFileVersionWithAttributes() throws Exception { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFile uploadedFile = null; - try { - uploadedFile = uploadFileWithSomeContent(randomizeName("LargeFile.txt"), getUniqueFolder(api)); - - Map fileAttributes = new HashMap<>(); - fileAttributes.put("content_modified_at", "2017-04-08T00:58:08Z"); - - File file = FileUtils.generate(randomizeName("LargeFile.txt"), 21_000_000); - FileInputStream stream = new FileInputStream(file); - BoxFile.Info fileVersion = uploadedFile.uploadLargeFile(stream, file.length(), fileAttributes); - assertNotNull(fileVersion); - - assertEquals(1491613088000L, fileVersion.getContentModifiedAt().getTime()); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void setsVanityNameOnASharedLink() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFile uploadedFile = null; - try { - uploadedFile = uploadFileToUniqueFolderWithSomeContent(api, "file_to_share.txt"); - - String vanityName = "myCustomName-" + System.currentTimeMillis(); - BoxSharedLinkRequest request = new BoxSharedLinkRequest() - .permissions(true, true) - .access(OPEN) - .vanityName(vanityName) - .password("my-random-password"); - BoxSharedLink linkWithVanityName = uploadedFile.createSharedLink(request); - - assertThat(linkWithVanityName.getVanityName(), is(vanityName)); - BoxSharedLink sharedLink = uploadedFile.getInfo().getSharedLink(); - assertThat(sharedLink.getVanityName(), is(vanityName)); - assertThat(sharedLink.getPermissions().getCanPreview(), is(true)); - assertThat(sharedLink.getPermissions().getCanDownload(), is(true)); - assertThat(sharedLink.getAccess(), is(OPEN)); - assertThat(sharedLink.getIsPasswordEnabled(), is(true)); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void createDefaultSharedLink() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFile uploadedFile = null; - try { - uploadedFile = uploadFileToUniqueFolderWithSomeContent(api, "file_to_share.txt"); - BoxSharedLinkRequest request = new BoxSharedLinkRequest(); - uploadedFile.createSharedLink(request); - BoxSharedLink sharedLink = uploadedFile.getInfo().getSharedLink(); - assertThat(sharedLink, is(notNullValue())); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void setsAndRetrievesDispositionAt() throws ParseException { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder testFolder = null; - try { - String policyId = RetentionPolicyUtils.getOneDayRetentionPolicy(api).getID(); - BoxFolder rootFolder = getUniqueFolder(api); - testFolder = rootFolder.createFolder(randomizeName("[setsAndRetrievesDispositionAt]")).getResource(); - createAssignmentToFolder(api, policyId, testFolder.getID()); - BoxFile uploadedFile = uploadFileWithSomeContent("file_with_disposition.txt", testFolder); - BoxFile.Info info = uploadedFile.getInfo(); - - String dispositionAt = BoxDateFormat.format(LocalDateTime.now().plusDays(7).toInstant(UTC)); - info.setDispositionAt(BoxDateFormat.parse(dispositionAt)); - uploadedFile.updateInfo(info); - - BoxFile.Info updatedInfo = uploadedFile.getInfo("disposition_at"); - assertThat(BoxDateFormat.format(updatedInfo.getDispositionAt()), is(dispositionAt)); - } finally { - deleteFolder(testFolder); - } - } - - @Test - public void uploadAndDownloadEmptyFileSucceeds() throws IOException { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder folder = getUniqueFolder(api); - String fileName = "empty_file"; - URL fileURL = this.getClass().getResource("/sample-files/" + fileName); - String filePath = URLDecoder.decode(fileURL.getFile(), "utf-8"); - long fileSize = new File(filePath).length(); - byte[] fileContent = readAllBytes(filePath); - BoxFile uploadedFile = null; - try { - InputStream uploadStream = Files.newInputStream(Paths.get(filePath)); - ProgressListener mockUploadListener = mock(ProgressListener.class); - BoxFile.Info uploadedFileInfo = folder.uploadFile( - uploadStream, BoxFileIT.generateString(), fileSize, mockUploadListener - ); - uploadedFile = uploadedFileInfo.getResource(); - - ByteArrayOutputStream downloadStream = new ByteArrayOutputStream(); - uploadedFile.download(downloadStream); - byte[] downloadedFileContent = downloadStream.toByteArray(); - - assertThat(downloadedFileContent, is(equalTo(fileContent))); - assertThat(folder, hasItem(Matchers.hasProperty("ID", equalTo(uploadedFile.getID())))); - } finally { - deleteFile(uploadedFile); - } - - } - - private byte[] readFileContent(String fileName) throws IOException { - URL fileURL = this.getClass().getResource("/sample-files/" + fileName); - String filePath = URLDecoder.decode(fileURL.getFile(), "utf-8"); - return readAllBytes(filePath); - } - - private ByteArrayInputStream getFileContent(String fileContent) { - return new ByteArrayInputStream(fileContent.getBytes(UTF_8)); - } - - - private BoxFileUploadSession.Info createFileUploadSession(BoxFolder folder, String fileName, long fileSize) { - BoxFileUploadSession.Info session = folder.createUploadSession(fileName, fileSize); - assertNotNull(session.getUploadSessionId()); - assertNotNull(session.getSessionExpiresAt()); - - BoxFileUploadSession.Endpoints endpoints = session.getSessionEndpoints(); - assertNotNull(endpoints); - assertNotNull(endpoints.getUploadPartEndpoint()); - assertNotNull(endpoints.getStatusEndpoint()); - assertNotNull(endpoints.getListPartsEndpoint()); - assertNotNull(endpoints.getCommitEndpoint()); - assertNotNull(endpoints.getAbortEndpoint()); - - return session; - } - - private MessageDigest uploadParts(BoxFileUploadSession.Info session, long fileSize, File file) - throws Exception { - - FileInputStream stream = new FileInputStream(file); - MessageDigest fileDigest = MessageDigest.getInstance("SHA1"); - DigestInputStream dis = new DigestInputStream(stream, fileDigest); - - long offset = 0; - long processed = 0; - boolean canBreak = false; - do { - long min = session.getPartSize(); - long diff = fileSize - processed; - if (diff < min) { - min = diff; - canBreak = true; - } - - BoxFileUploadSessionPart part = session.getResource().uploadPart(dis, offset, (int) min, fileSize); - assertNotNull(part.getSha1()); - assertNotNull(part.getPartId()); - assertEquals(part.getOffset(), offset); - assertTrue(part.getSize() <= session.getPartSize()); - offset = offset + session.getPartSize(); - processed += min; - } while (!canBreak); - - return fileDigest; - } - - private List listUploadSessionParts(BoxFileUploadSession session) { - BoxFileUploadSessionPartList list = session.listParts(0, 100); - return list.getEntries(); - } - - private BoxFile commitSession(BoxFileUploadSession session, String digest, List parts) { - BoxFile.Info file = session.commit(digest, parts, null, null, null); - assertNotNull(file); - return file.getResource(); - } - - private void verifySessionExists(BoxFileUploadSession session) { - assertNotNull(session); - BoxFileUploadSession.Info sessionInfo = session.getStatus(); - assertNotNull(sessionInfo.getUploadSessionId()); - assertNotNull(sessionInfo.getSessionExpiresAt()); - } - - private void verifySessionWasAborted(BoxFileUploadSession session) { - try { - session.getStatus(); - //If the session is aborted, this line should not be executed. - fail("Upload session is not deleted"); - } catch (BoxAPIException apiEx) { - assertEquals(apiEx.getResponseCode(), 404); - } - } - - private static String generateString() { - return randomUUID().toString(); - } -} diff --git a/src/intTest/java/com/box/sdk/BoxFolderIT.java b/src/intTest/java/com/box/sdk/BoxFolderIT.java deleted file mode 100644 index 130a870b7..000000000 --- a/src/intTest/java/com/box/sdk/BoxFolderIT.java +++ /dev/null @@ -1,974 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; -import static com.box.sdk.BoxCollaborationAllowlist.AllowlistDirection.INBOUND; -import static com.box.sdk.BoxFolder.SortDirection.ASC; -import static com.box.sdk.BoxSharedLink.Access.OPEN; -import static com.box.sdk.CleanupTools.removeAllowedDomains; -import static com.box.sdk.PagingParameters.marker; -import static com.box.sdk.PagingParameters.offset; -import static com.box.sdk.SortParameters.ascending; -import static com.box.sdk.SortParameters.none; -import static com.box.sdk.UniqueTestFolder.getUniqueFolder; -import static com.box.sdk.UniqueTestFolder.randomizeName; -import static com.box.sdk.UniqueTestFolder.removeUniqueFolder; -import static com.box.sdk.UniqueTestFolder.setupUniqeFolder; -import static com.box.sdk.UniqueTestFolder.uploadFileToUniqueFolder; -import static com.box.sdk.UniqueTestFolder.uploadFileToUniqueFolderWithSomeContent; -import static com.box.sdk.UniqueTestFolder.uploadFileWithSomeContent; -import static java.nio.charset.StandardCharsets.UTF_8; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.contains; -import static org.hamcrest.Matchers.emptyOrNullString; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.hasItem; -import static org.hamcrest.Matchers.hasSize; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.not; -import static org.hamcrest.Matchers.nullValue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - -import com.box.sdk.BoxCollaboration.Role; -import com.box.sdk.sharedlink.BoxSharedLinkRequest; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.PipedInputStream; -import java.io.PipedOutputStream; -import java.net.MalformedURLException; -import java.net.URL; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Collection; -import java.util.Date; -import java.util.EnumSet; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.TimeZone; -import java.util.UUID; -import java.util.concurrent.Semaphore; -import java.util.concurrent.atomic.AtomicLong; -import java.util.concurrent.atomic.AtomicReference; -import java.util.stream.IntStream; -import org.hamcrest.Matchers; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; - -/** - * {@link BoxFolder} related integration tests. - */ -public class BoxFolderIT { - - private static final String GMAIL_COM_DOMAIN = "gmail.com"; - private static final String YAHOO_COM_DOMAIN = "yahoo.com"; - - @BeforeClass - public static void setup() { - setupUniqeFolder(); - } - - @AfterClass - public static void tearDown() { - removeUniqueFolder(); - } - - @Before - public void clearAllowedDomains() { - removeAllowedDomains(GMAIL_COM_DOMAIN, YAHOO_COM_DOMAIN); - } - - @Test - public void creatingAndDeletingFolderSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - BoxFolder childFolder = - rootFolder.createFolder("[creatingAndDeletingFolderSucceeds] Ĥȅľľő Ƒŕőďő").getResource(); - - assertThat(rootFolder, - hasItem(Matchers.hasProperty("ID", equalTo(childFolder.getID())))); - - childFolder.delete(false); - assertThat(rootFolder, - not(hasItem(Matchers.hasProperty("ID", equalTo(childFolder.getID()))))); - } - - @Test - public void getFolderInfoReturnsCorrectInfo() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxUser currentUser = BoxUser.getCurrentUser(api); - final String expectedName = "[getFolderInfoReturnsCorrectInfo] Child Folder"; - final String expectedCreatedByID = currentUser.getID(); - BoxFolder childFolder = null; - - BoxFolder rootFolder = getUniqueFolder(api); - final String expectedParentFolderID = rootFolder.getID(); - final String expectedParentFolderName = rootFolder.getInfo().getName(); - - try { - childFolder = rootFolder.createFolder(expectedName).getResource(); - BoxFolder.Info info = childFolder.getInfo(BoxItem.ALL_FIELDS); - - String actualName = info.getName(); - String actualCreatedByID = info.getCreatedBy().getID(); - String actualParentFolderID = info.getParent().getID(); - String actualParentFolderName = info.getParent().getName(); - List actualPathCollection = info.getPathCollection(); - - assertThat(expectedName, equalTo(actualName)); - assertThat(expectedCreatedByID, equalTo(actualCreatedByID)); - assertThat(expectedParentFolderID, equalTo(actualParentFolderID)); - assertThat(expectedParentFolderName, equalTo(actualParentFolderName)); - assertThat(actualPathCollection, hasItem(Matchers.hasProperty("ID", equalTo("0")))); - assertThat(info.getPermissions(), is(equalTo(EnumSet.allOf(BoxFolder.Permission.class)))); - assertThat(info.getItemStatus(), is(equalTo("active"))); - } finally { - this.deleteFolder(childFolder); - } - } - - @Test - public void getInfoWithOnlyTheNameField() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - final String expectedName = UniqueTestFolder.getUniqueFolderName(); - - BoxFolder.Info rootFolderInfo = rootFolder.getInfo("name"); - - assertThat(expectedName, equalTo(rootFolderInfo.getName())); - assertThat(rootFolderInfo.getDescription(), is(nullValue())); - assertThat(rootFolderInfo.getSize(), is(0L)); - } - - @Test - public void iterateWithOnlyTheNameField() { - final String expectedName = "[iterateWithOnlyTheNameField] Child Folder"; - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - BoxFolder childFolder = null; - - try { - childFolder = rootFolder.createFolder(expectedName).getResource(); - - Iterable children = rootFolder.getChildren("name"); - boolean found = false; - for (BoxItem.Info childInfo : children) { - if (childInfo.getID().equals(childFolder.getID())) { - found = true; - assertThat(childInfo.getName(), is(equalTo(expectedName))); - assertThat(childInfo.getSize(), is(equalTo(0L))); - assertThat(childInfo.getDescription(), is(nullValue())); - } - } - assertThat(found, is(true)); - } finally { - this.deleteFolder(childFolder); - } - } - - @Test - public void uploadFileSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - BoxFile uploadedFile = null; - - try { - uploadedFile = uploadFileToUniqueFolderWithSomeContent(api, randomizeName("Test File")); - - assertThat(rootFolder, hasItem(Matchers.hasProperty("ID", equalTo(uploadedFile.getID())))); - } finally { - this.deleteFile(uploadedFile); - assertThat(rootFolder, - not(hasItem(Matchers.hasProperty("ID", equalTo(uploadedFile.getID()))))); - } - } - - @Test - public void uploadFileUploadFileCallbackSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - BoxFile uploadedFile = null; - final AtomicReference callbackWasCalled = new AtomicReference<>(false); - - try { - - final String fileContent = randomizeName("Test file"); - uploadedFile = rootFolder.uploadFile(outputStream -> { - outputStream.write(fileContent.getBytes()); - callbackWasCalled.set(true); - }, "Test File.txt").getResource(); - - assertThat(rootFolder, hasItem(Matchers.hasProperty("ID", equalTo(uploadedFile.getID())))); - assertTrue("Callback was not called", callbackWasCalled.get()); - } finally { - this.deleteFile(uploadedFile); - } - } - - - @Test - public void uploadFileWithCreatedAndModifiedDatesSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX"); - dateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); - BoxFile uploadedFile = null; - try { - Date created = new Date(1415318114); - Date modified = new Date(1315318114); - final String fileContent = "Test file"; - InputStream stream = new ByteArrayInputStream(fileContent.getBytes(StandardCharsets.UTF_8)); - FileUploadParams params = new FileUploadParams() - .setName("[uploadFileWithCreatedAndModifiedDatesSucceeds] Test File.txt").setContent(stream) - .setModified(modified).setCreated(created); - BoxFile.Info info = rootFolder.uploadFile(params); - uploadedFile = info.getResource(); - - assertThat(dateFormat.format(info.getContentCreatedAt()), is(equalTo(dateFormat.format(created)))); - assertThat(dateFormat.format(info.getContentModifiedAt()), is(equalTo(dateFormat.format(modified)))); - assertThat(rootFolder, hasItem(Matchers.hasProperty("ID", equalTo(uploadedFile.getID())))); - } finally { - this.deleteFile(uploadedFile); - } - } - - @Test - public void updateFolderInfoSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - final String originalName = "[updateFolderInfoSucceeds] Child Folder"; - final String updatedName = "[updateFolderInfoSucceeds] Updated Child Folder"; - BoxFolder childFolder = null; - - try { - BoxFolder.Info info = rootFolder.createFolder(originalName); - childFolder = info.getResource(); - info.setName(updatedName); - childFolder.updateInfo(info); - assertThat(info.getName(), equalTo(updatedName)); - } finally { - this.deleteFolder(childFolder); - assertThat(rootFolder, - not(hasItem(Matchers.hasProperty("ID", equalTo(childFolder.getID()))))); - } - } - - @Test - public void updateCanNonOwnersViewCollaboratorsSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - final String name = "[updateCanNonOwnersViewCollaboratorsSucceeds] Child Folder"; - BoxFolder childFolder = null; - - try { - BoxFolder.Info info = rootFolder.createFolder(name); - childFolder = info.getResource(); - boolean getCanNonOwnersViewCollaborators = childFolder.getInfo("can_non_owners_view_collaborators") - .getCanNonOwnersViewCollaborators(); - // need to set both - info.setCanNonOwnersViewCollaborators(!getCanNonOwnersViewCollaborators); - info.setCanNonOwnersInvite(!getCanNonOwnersViewCollaborators); - childFolder.updateInfo(info); - - assertThat(info.getCanNonOwnersViewCollaborators(), equalTo(!getCanNonOwnersViewCollaborators)); - assertThat(info.getCanNonOwnersInvite(), equalTo(!getCanNonOwnersViewCollaborators)); - } finally { - this.deleteFolder(childFolder); - assertThat(rootFolder, - not(hasItem(Matchers.hasProperty("ID", equalTo(childFolder.getID()))))); - } - } - - @Test - public void copyFolderToSameDestinationWithNewNameSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - final String originalName = "[copyFolderToSameDestinationWithNewNameSucceeds] Child Folder"; - final String newName = "[copyFolderToSameDestinationWithNewNameSucceeds] New Child Folder"; - BoxFolder originalFolder = null; - BoxFolder copiedFolder = null; - try { - originalFolder = rootFolder.createFolder(originalName).getResource(); - BoxFolder.Info copiedFolderInfo = originalFolder.copy(rootFolder, newName); - copiedFolder = copiedFolderInfo.getResource(); - - assertThat(copiedFolderInfo.getName(), is(equalTo(newName))); - assertThat(rootFolder, hasItem(Matchers.hasProperty("ID", equalTo(originalFolder.getID())))); - assertThat(rootFolder, hasItem(Matchers.hasProperty("ID", equalTo(copiedFolder.getID())))); - } finally { - this.deleteFolder(originalFolder); - this.deleteFolder(copiedFolder); - assertThat(rootFolder, - not(hasItem(Matchers.hasProperty("ID", equalTo(originalFolder.getID()))))); - assertThat(rootFolder, - not(hasItem(Matchers.hasProperty("ID", equalTo(copiedFolder.getID()))))); - } - } - - @Test - public void moveFolderSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - final String child1Name = "[moveFolderSucceeds] Child Folder"; - final String child2Name = "[moveFolderSucceeds] Child Folder 2"; - BoxFolder childFolder1 = null; - - try { - childFolder1 = rootFolder.createFolder(child1Name).getResource(); - BoxFolder childFolder2 = rootFolder.createFolder(child2Name).getResource(); - - assertThat(rootFolder, hasItem(Matchers.hasProperty("ID", equalTo(childFolder1.getID())))); - assertThat(rootFolder, hasItem(Matchers.hasProperty("ID", equalTo(childFolder2.getID())))); - - childFolder2.move(childFolder1); - - assertThat(childFolder1, - hasItem(Matchers.hasProperty("ID", equalTo(childFolder2.getID())))); - assertThat(rootFolder, - not(hasItem(Matchers.hasProperty("ID", equalTo(childFolder2.getID()))))); - } finally { - this.deleteFolder(childFolder1); - assertThat(rootFolder, - not(hasItem(Matchers.hasProperty("ID", equalTo(childFolder1.getID()))))); - } - } - - @Test - public void renameFolderSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - final String originalName = "[renameFolderSucceeds] Original Name"; - final String newName = "[renameFolderSucceeds] New Name"; - BoxFolder childFolder = null; - - try { - childFolder = rootFolder.createFolder(originalName).getResource(); - - childFolder.rename(newName); - - BoxFolder.Info childFolderInfo = childFolder.getInfo(); - assertThat(childFolderInfo.getName(), is(equalTo(newName))); - } finally { - this.deleteFolder(childFolder); - } - } - - @Test - public void addCollaboratorSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - String folderName = "[addCollaborationToFolderSucceeds] Test Folder"; - String collaboratorLogin = TestConfig.getCollaborator(); - Role collaboratorRole = Role.CO_OWNER; - BoxFolder folder = null; - - try { - folder = rootFolder.createFolder(folderName).getResource(); - - BoxCollaboration.Info collabInfo = folder.collaborate(collaboratorLogin, collaboratorRole); - BoxUser.Info accessibleBy = (BoxUser.Info) collabInfo.getAccessibleBy(); - - assertThat(accessibleBy.getLogin(), is(equalTo(collaboratorLogin))); - assertThat(collabInfo.getRole(), is(equalTo(collaboratorRole))); - } finally { - this.deleteFolder(folder); - } - } - - @Test - public void addCollaborationsWithAttributesSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - String folderName = "[getCollaborationsSucceeds] Test Folder"; - BoxFolder folder = null; - BoxCollaborationAllowlist allowGmail = null; - BoxCollaborationAllowlist allowYahoo = null; - - try { - folder = rootFolder.createFolder(folderName).getResource(); - allowGmail = BoxCollaborationAllowlist.create(api, GMAIL_COM_DOMAIN, INBOUND).getResource(); - allowYahoo = BoxCollaborationAllowlist.create(api, YAHOO_COM_DOMAIN, INBOUND).getResource(); - //fails because of canViewPath = true - https://jira.inside-box.net/browse/CONTENT-1431 - BoxCollaboration.Info collabInfo = - folder.collaborate("karthik2001123@yahoo.com", Role.CO_OWNER, false, false); - String collabID = collabInfo.getID(); - - //fails because of canViewPath = true - https://jira.inside-box.net/browse/CONTENT-1431 - BoxCollaboration.Info collabInfo2 = - folder.collaborate("davidsmaynard@gmail.com", Role.VIEWER, false, false); - - Collection collaborations = folder.getCollaborations(); - - assertThat(collaborations, hasSize(2)); - assertThat(collaborations, - hasItem(Matchers.hasProperty("ID", equalTo(collabID)))); - assertThat(collaborations, - hasItem(Matchers.hasProperty("ID", equalTo(collabInfo2.getID())))); - } finally { - this.deleteFolder(folder); - this.deleteCollaborationAllowList(allowGmail); - this.deleteCollaborationAllowList(allowYahoo); - } - } - - @Test - public void getCollaborationsHasCorrectCollaborations() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - String folderName = "[getCollaborationsHasCorrectCollaborations] Test Folder"; - BoxFolder folder = null; - BoxCollaborationAllowlist allowGmail = null; - - try { - folder = rootFolder.createFolder(folderName).getResource(); - allowGmail = BoxCollaborationAllowlist.create(api, GMAIL_COM_DOMAIN, INBOUND).getResource(); - BoxCollaboration.Info collabInfo = folder.collaborate(TestConfig.getCollaborator(), Role.CO_OWNER); - String collabID = collabInfo.getID(); - - Collection collaborations = folder.getCollaborations(); - - assertThat(collaborations, hasSize(1)); - assertThat(collaborations, - hasItem(Matchers.hasProperty("ID", equalTo(collabID)))); - } finally { - this.deleteFolder(folder); - this.deleteCollaborationAllowList(allowGmail); - } - } - - @Test - public void setFolderUploadEmailSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - String folderName = "[setFolderUploadEmailSucceeds] Test Folder"; - BoxFolder folder = null; - - try { - BoxUploadEmail uploadEmail = new BoxUploadEmail(); - uploadEmail.setAccess(BoxUploadEmail.Access.OPEN); - - folder = rootFolder.createFolder(folderName).getResource(); - BoxFolder.Info info = folder.new Info(); - info.setUploadEmail(uploadEmail); - folder.updateInfo(info); - - BoxUploadEmail updatedEmailInfo = info.getUploadEmail(); - assertThat(updatedEmailInfo.getEmail(), not(is(emptyOrNullString()))); - assertThat(updatedEmailInfo.getAccess(), is(equalTo(BoxUploadEmail.Access.OPEN))); - - info.setUploadEmail(null); - uploadEmail = info.getUploadEmail(); - assertThat(uploadEmail, is(nullValue())); - } finally { - this.deleteFolder(folder); - } - } - - @Test - public void getSharedItemAndItsChildrenSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - String folderName = "[getSharedItemAndItsChildrenSucceeds] Test Folder"; - String childFolderName = "[getSharedItemAndItsChildrenSucceeds] Child Folder"; - BoxFolder folder = null; - - try { - folder = rootFolder.createFolder(folderName).getResource(); - BoxFolder childFolder = folder.createFolder(childFolderName).getResource(); - assertThat( - folder.getInfo("is_accessible_via_shared_link").getIsAccessibleViaSharedLink(), - is(false) - ); - BoxSharedLink sharedLink = folder.createSharedLink(new BoxSharedLinkRequest().access(OPEN)); - - BoxFolder.Info sharedItem = (BoxFolder.Info) BoxItem.getSharedItem(api, sharedLink.getURL()); - - assertThat(sharedItem.getID(), is(equalTo(folder.getID()))); - assertThat(sharedItem.getResource(), - hasItem(Matchers.hasProperty("ID", equalTo(childFolder.getID())))); - assertThat( - folder.getInfo("is_accessible_via_shared_link").getIsAccessibleViaSharedLink(), - is(true) - ); - } finally { - this.deleteFolder(folder); - } - } - - @Test - public void createWebLinkSucceeds() throws MalformedURLException { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - - BoxWebLink createdWebLink = rootFolder.createWebLink("[createWebLinkSucceeds] Test Web Link", - new URL("https://api.box.com"), "[createWebLinkSucceeds] Test Web Link").getResource(); - - assertThat(rootFolder, hasItem(Matchers.hasProperty("ID", equalTo(createdWebLink.getID())))); - - createdWebLink.delete(); - assertThat(rootFolder, not(hasItem(Matchers.hasProperty("ID", equalTo(createdWebLink.getID()))))); - } - - @Test - public void createWebLinkWithNoNameSucceeds() throws MalformedURLException { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - - BoxWebLink createdWebLink = rootFolder - .createWebLink(new URL("https://api.box.com"), "[createWebLinkSucceeds] Test Web Link") - .getResource(); - - assertThat(rootFolder, hasItem(Matchers.hasProperty("ID", equalTo(createdWebLink.getID())))); - - createdWebLink.delete(); - assertThat(rootFolder, not(hasItem(Matchers.hasProperty("ID", equalTo(createdWebLink.getID()))))); - } - - @Test - public void createWebLinkWithNoDescriptionSucceeds() throws MalformedURLException { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - - BoxWebLink createdWebLink = rootFolder - .createWebLink("[createWebLinkSucceeds] Test Web Link", new URL("https://api.box.com")) - .getResource(); - - assertThat(rootFolder, hasItem(Matchers.hasProperty("ID", equalTo(createdWebLink.getID())))); - - createdWebLink.delete(); - assertThat(rootFolder, not(hasItem(Matchers.hasProperty("ID", equalTo(createdWebLink.getID()))))); - } - - @Test - public void createWebLinkWithNoNameOrDescriptionSucceeds() throws MalformedURLException { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - - BoxWebLink createdWebLink = rootFolder.createWebLink(new URL("https://api.box.com")).getResource(); - - assertThat(rootFolder, hasItem(Matchers.hasProperty("ID", equalTo(createdWebLink.getID())))); - - createdWebLink.delete(); - assertThat(rootFolder, not(hasItem(Matchers.hasProperty("ID", equalTo(createdWebLink.getID()))))); - } - - - @Test - public void createPropertiesMetadataSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - final String key = "/testKey"; - final String value = "testValue"; - final String folderName = "[createPropertiesMetadataSucceeds] Metadata Folder " - + Calendar.getInstance().getTimeInMillis(); - BoxFolder folder = null; - - try { - Metadata md = new Metadata(); - md.add(key, value); - folder = rootFolder.createFolder(folderName).getResource(); - Metadata createdMD = folder.createMetadata(md); - - assertThat(createdMD.getString(key), is(equalTo(value))); - } finally { - this.deleteFolder(folder); - } - } - - @Test - public void getMetadataOnInfoSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - final String key = "/testKey"; - final String value = "testValue"; - final String folderName = "[createPropertiesMetadataSucceeds] Metadata Folder " - + Calendar.getInstance().getTimeInMillis(); - BoxFolder folder = null; - - try { - Metadata md = new Metadata(); - md.add(key, value); - folder = rootFolder.createFolder(folderName).getResource(); - folder.createMetadata(md); - Metadata actualMD = folder.getInfo("metadata.global.properties") - .getMetadata("properties", "global"); - assertNotNull("Metadata should not be null for this folder", actualMD); - } catch (BoxAPIException e) { - fail("Metadata should have been present on this folder"); - } finally { - this.deleteFolder(folder); - } - } - - @Test - public void deletePropertiesMetadataSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - final String key = "/testKey"; - final String value = "testValue"; - final String folderName = "[createPropertiesMetadataSucceeds] Metadata Folder " - + Calendar.getInstance().getTimeInMillis(); - - Metadata md = new Metadata(); - md.add(key, value); - BoxFolder folder = rootFolder.createFolder(folderName).getResource(); - folder.createMetadata(md); - folder.deleteMetadata(); - - try { - folder.getMetadata(); - fail("Metadata was not removed"); - } catch (BoxAPIException e) { - assertThat(e.getResponseCode(), is(equalTo(404))); - } finally { - folder.delete(false); - } - } - - /** - * Verifies the fix for issue #325. - */ - @Test - public void sharedLinkInfoHasEffectiveAccess() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - BoxFolder folder = null; - try { - folder = rootFolder.createFolder("[sharedLinkInfoHasEffectiveAccess] Test Folder").getResource(); - BoxSharedLink sharedLink = folder.createSharedLink(new BoxSharedLinkRequest().access(OPEN)); - - assertThat(sharedLink, Matchers.hasProperty("effectiveAccess")); - assertThat(sharedLink.getEffectiveAccess(), equalTo(BoxSharedLink.Access.OPEN)); - } finally { - this.deleteFolder(folder); - } - - } - - @Test - public void uploadSessionAbortFlowSuccess() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - - String fileName = randomizeName("LargeFile.txt"); - - BoxFileUploadSession.Info session = rootFolder.createUploadSession(fileName, 25_000_000); - assertNotNull(session.getUploadSessionId()); - assertNotNull(session.getSessionExpiresAt()); - - BoxFileUploadSession.Endpoints endpoints = session.getSessionEndpoints(); - assertNotNull(endpoints); - assertNotNull(endpoints.getUploadPartEndpoint()); - assertNotNull(endpoints.getStatusEndpoint()); - assertNotNull(endpoints.getListPartsEndpoint()); - assertNotNull(endpoints.getCommitEndpoint()); - assertNotNull(endpoints.getAbortEndpoint()); - - //Verify the status of the session - this.getUploadSessionStatus(session.getResource()); - - //Verify the delete session - this.abortUploadSession(session.getResource()); - } - - @Test - public void uploadLargeFileWithAttributes() throws Exception { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - File file = FileUtils.generate(randomizeName("LargeFile.txt"), 21_000_000); - FileInputStream stream = new FileInputStream(file); - BoxFile fileUploaded = null; - - try { - Map fileAttributes = new HashMap<>(); - fileAttributes.put("content_modified_at", "2017-04-08T00:58:08Z"); - - BoxFile.Info info = rootFolder.uploadLargeFile(stream, "large", file.length(), fileAttributes); - fileUploaded = info.getResource(); - assertNotNull(fileUploaded); - - assertEquals(1491613088000L, info.getContentModifiedAt().getTime()); - } finally { - this.deleteFile(fileUploaded); - } - } - - @Test - public void setsVanityNameOnASharedLink() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - BoxFolder sharedFolder = null; - try { - sharedFolder = rootFolder.createFolder(UUID.randomUUID().toString()).getResource(); - - String vanityName = "myCustomName-" + System.currentTimeMillis(); - BoxSharedLinkRequest request = new BoxSharedLinkRequest() - .permissions(true, true) - .access(OPEN) - .vanityName(vanityName) - .password("my-very-secret-password"); - BoxSharedLink linkWithVanityName = sharedFolder.createSharedLink(request); - - assertThat(linkWithVanityName.getVanityName(), is(vanityName)); - assertThat(sharedFolder.getInfo().getSharedLink().getVanityName(), is(vanityName)); - assertThat(linkWithVanityName.getPermissions().getCanDownload(), is(true)); - assertThat(linkWithVanityName.getPermissions().getCanPreview(), is(true)); - assertThat(linkWithVanityName.getAccess(), is(OPEN)); - assertThat(linkWithVanityName.getIsPasswordEnabled(), is(true)); - } finally { - this.deleteFolder(sharedFolder); - } - } - - @Test - public void iterateWithOffset() { - final String expectedName = "[iterateWithOnlyTheNameField] Child Folder"; - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - BoxFolder childFolder = null; - - try { - childFolder = rootFolder.createFolder(expectedName).getResource(); - for (int i = 1; i <= 3; i++) { - uploadFileWithSomeContent("sample_file_" + i, childFolder); - } - - Iterable page = childFolder.getChildren("name", ASC, 1, 1); - assertThat(getNames(page), contains("sample_file_2", "sample_file_3")); - - } finally { - this.deleteFolder(childFolder); - } - } - - @Test - public void iterateWithOffsetUsingNewIterator() { - final String expectedName = "[iterateWithOnlyTheNameField] Child Folder"; - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - BoxFolder childFolder = null; - - try { - childFolder = rootFolder.createFolder(expectedName).getResource(); - for (int i = 1; i <= 3; i++) { - uploadFileWithSomeContent("sample_file_" + i, childFolder); - } - - Iterable page = childFolder.getChildren(ascending("name"), offset(1, 1)); - assertThat(getNames(page), contains("sample_file_2", "sample_file_3")); - - } finally { - this.deleteFolder(childFolder); - } - } - - @Test - public void iterateWithMarker() { - final String expectedName = "[iterateWithOnlyTheNameField] Child Folder"; - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - BoxFolder childFolder = null; - - try { - childFolder = rootFolder.createFolder(expectedName).getResource(); - for (int i = 1; i <= 2; i++) { - uploadFileWithSomeContent("sample_file_" + i, childFolder); - } - - Iterable page = childFolder.getChildren(none(), marker(1)); - assertThat(getNames(page), contains("sample_file_1", "sample_file_2")); - - } finally { - this.deleteFolder(childFolder); - } - } - - @Test - public void uploadFileVersionInSeparateThreadsSucceeds() throws IOException, InterruptedException { - BoxAPIConnection api = jwtApiForServiceAccount(); - Semaphore semaphore = new Semaphore(0); - - PipedOutputStream outputStream = new PipedOutputStream(); - PipedInputStream inputStream = new PipedInputStream(); - outputStream.connect(inputStream); - - String fileContent = "This is only a test"; - final BoxFile uploadedFile = uploadFileToUniqueFolder(api, randomizeName("Test File"), fileContent); - - new Thread( - () -> { - try { - new BoxFile(api, uploadedFile.getID()).download(outputStream); - } finally { - try { - outputStream.close(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - }).start(); - - new Thread( - () -> { - new BoxFile(api, uploadedFile.getID()).uploadNewVersion(inputStream); - try { - inputStream.close(); - semaphore.release(); - } catch (IOException e) { - throw new RuntimeException(e); - } - }).start(); - - - semaphore.acquire(); - ByteArrayOutputStream output = new ByteArrayOutputStream(); - new BoxFile(api, uploadedFile.getID()).download(output); - assertThat(output.toString(), is(fileContent)); - } - - @Test - public void uploadFileVersionWithProgressInSeparateThreadsSucceeds() throws IOException, InterruptedException { - BoxAPIConnection api = jwtApiForServiceAccount(); - Semaphore semaphore = new Semaphore(0); - - PipedOutputStream outputStream = new PipedOutputStream(); - PipedInputStream inputStream = new PipedInputStream(); - outputStream.connect(inputStream); - AtomicLong bytesUploaded = new AtomicLong(0); - ProgressListener progressListener = (numBytes, totalBytes) -> bytesUploaded.set(numBytes); - - String fileContent = "This is only a test"; - long fileSize = fileContent.getBytes(UTF_8).length; - - final BoxFile uploadedFile = uploadFileToUniqueFolder(api, randomizeName("Test File"), fileContent); - - new Thread( - () -> { - try { - new BoxFile(api, uploadedFile.getID()).download(outputStream); - } finally { - semaphore.release(); - } - }).start(); - - new Thread( - () -> { - new BoxFile(api, uploadedFile.getID()) - .uploadNewVersion(inputStream, new Date(), fileSize, progressListener); - semaphore.release(); - }).start(); - - - semaphore.acquire(2); - ByteArrayOutputStream output = new ByteArrayOutputStream(); - new BoxFile(api, uploadedFile.getID()).download(output); - assertThat(output.toString(), is(fileContent)); - assertThat(bytesUploaded.get(), is(fileSize)); - } - - @Test - public void uploadFileInSeparateThreadSucceeds() throws IOException, InterruptedException { - BoxAPIConnection api = jwtApiForServiceAccount(); - Semaphore semaphore = new Semaphore(0); - - PipedOutputStream outputStream = new PipedOutputStream(); - PipedInputStream inputStream = new PipedInputStream(); - outputStream.connect(inputStream); - - String fileContent = "Test"; - byte[] bytes = fileContent.getBytes(UTF_8); - - AtomicReference uploadedFileId = new AtomicReference<>(); - - new Thread( - () -> { - IntStream.range(0, bytes.length) - .forEach(i -> { - try { - outputStream.write(bytes[i]); - Thread.sleep(100); - } catch (InterruptedException | IOException e) { - throw new RuntimeException(e); - } - }); - try { - outputStream.close(); - semaphore.release(); - } catch (IOException e) { - throw new RuntimeException(e); - } - }).start(); - - new Thread( - () -> { - BoxFile.Info uploadedFile = getUniqueFolder(api) - .uploadFile(inputStream, randomizeName("dynamic_upload")); - uploadedFileId.set(uploadedFile.getID()); - try { - inputStream.close(); - semaphore.release(); - } catch (IOException e) { - throw new RuntimeException(e); - } - }).start(); - - - semaphore.acquire(2); - ByteArrayOutputStream output = new ByteArrayOutputStream(); - new BoxFile(api, uploadedFileId.get()).download(output); - assertThat(output.toString(), is(fileContent)); - } - - private Collection getNames(Iterable page) { - Collection result = new ArrayList<>(); - for (BoxItem.Info info : page) { - result.add(info.getName()); - } - return result; - } - - private void getUploadSessionStatus(BoxFileUploadSession session) { - assertNotNull(session); - BoxFileUploadSession.Info sessionInfo = session.getStatus(); - assertNotNull(sessionInfo.getSessionExpiresAt()); - } - - private void abortUploadSession(BoxFileUploadSession session) { - session.abort(); - - try { - session.getStatus(); - fail("Upload session is not deleted"); - } catch (BoxAPIException apiEx) { - assertEquals(apiEx.getResponseCode(), 404); - } - } - - private void deleteFolder(BoxFolder folder) { - if (folder != null) { - folder.delete(true); - } - } - - - private void deleteFile(BoxFile file) { - if (file != null) { - file.delete(); - } - } - - private void deleteCollaborationAllowList(BoxCollaborationAllowlist collaborationAllowList) { - if (collaborationAllowList != null) { - collaborationAllowList.delete(); - } - } -} diff --git a/src/intTest/java/com/box/sdk/BoxGroupIT.java b/src/intTest/java/com/box/sdk/BoxGroupIT.java deleted file mode 100644 index 0cb4252a7..000000000 --- a/src/intTest/java/com/box/sdk/BoxGroupIT.java +++ /dev/null @@ -1,176 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; -import static com.box.sdk.CleanupTools.deleteFolder; -import static com.box.sdk.CleanupTools.deleteGroup; -import static com.box.sdk.CleanupTools.removeAllGroups; -import static com.box.sdk.UniqueTestFolder.getUniqueFolder; -import static com.box.sdk.UniqueTestFolder.removeUniqueFolder; -import static com.box.sdk.UniqueTestFolder.setupUniqeFolder; -import static com.box.sdk.internal.utils.CollectionUtils.createListFrom; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.hasItem; -import static org.hamcrest.Matchers.hasSize; -import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertTrue; - -import java.util.Collection; -import java.util.Iterator; -import org.hamcrest.Matchers; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; - -/** - * {@link BoxGroup} related integration tests. - */ -public class BoxGroupIT { - - @BeforeClass - public static void setup() { - setupUniqeFolder(); - } - - @AfterClass - public static void afterClass() { - removeUniqueFolder(); - } - - @Before - public void cleanup() { - removeAllGroups(); - } - - @Test - public void createAndDeleteGroupSucceeds() { - final String groupName = "[createAndDeleteGroupSucceeds] Test Group"; - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxGroup.Info createdGroupInfo = BoxGroup.createGroup(api, groupName); - - assertThat(createdGroupInfo.getName(), equalTo(groupName)); - - createdGroupInfo.getResource().delete(); - Iterable groups = BoxGroup.getAllGroupsByName(api, groupName); - assertThat(createListFrom(groups), Matchers.hasSize(0)); - } - - @Test - public void addMembershipSucceedsAndGetMembershipsHasCorrectMemberships() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String groupName = "[addMembershipSucceedsAndGetMembershipsHasCorrectMemberships] Test Group"; - BoxUser user = BoxUser.getCurrentUser(api); - BoxGroupMembership.GroupRole groupRole = BoxGroupMembership.GroupRole.ADMIN; - - BoxGroup group = BoxGroup.createGroup(api, groupName).getResource(); - BoxGroupMembership.Info membershipInfo = group.addMembership(user, groupRole); - String membershipID = membershipInfo.getID(); - - assertThat(membershipInfo.getUser().getID(), is(equalTo(user.getID()))); - assertThat(membershipInfo.getGroup().getID(), is(equalTo(group.getID()))); - assertThat(membershipInfo.getGroupRole(), is(equalTo(groupRole))); - - Collection memberships = group.getMemberships(); - - assertThat(memberships, hasSize(1)); - assertThat(memberships, hasItem(Matchers.hasProperty("ID", equalTo(membershipID)))); - - group.delete(); - } - - @Test - public void getInfoSucceeds() { - final String groupName = "[getInfoSucceeds] Test Group"; - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxGroup createdGroup = null; - try { - createdGroup = BoxGroup.createGroup(api, groupName).getResource(); - BoxGroup.Info createdGroupInfo = createdGroup.getInfo(); - - assertThat(createdGroupInfo.getName(), equalTo(groupName)); - } finally { - deleteGroup(createdGroup); - } - } - - - @Test - public void getCollaborationsSucceedsAndHandlesResponseCorrectly() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String groupName = "[getCollaborationsSucceedsAndHandlesResponseCorrectly] Test Group"; - - BoxGroup group = null; - BoxFolder folder = null; - - String folderName = "[getCollaborationsSucceedsAndHandlesResponseCorrectly] Test Folder"; - - try { - group = BoxGroup.createGroup(api, groupName).getResource(); - BoxCollaborator collabGroup = new BoxGroup(api, group.getID()); - folder = getUniqueFolder(api).createFolder(folderName).getResource(); - - BoxCollaboration.Info collabInfo = folder.collaborate(collabGroup, BoxCollaboration.Role.EDITOR); - - Collection collaborations = group.getCollaborations(); - - assertThat(collaborations, hasSize(1)); - assertThat(collaborations, hasItem( - Matchers.hasProperty("ID", equalTo(collabInfo.getID()))) - ); - } finally { - deleteGroup(group); - deleteFolder(folder); - } - } - - @Test - public void getAllGroupsByNameSearchesCorrectly() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String groupName = "getAllGroupsByNameSearchesCorrectly"; - BoxGroup group = BoxGroup.createGroup(api, groupName).getResource(); - try { - //Searching groups requires few seconds delay. - Thread.sleep(5000); - } catch (InterruptedException ie) { - //Do nothing - } - - try { - Iterator iterator = BoxGroup.getAllGroupsByName(api, groupName).iterator(); - boolean matchingGroup; - do { - BoxGroup.Info groupInfo = iterator.next(); - matchingGroup = groupName.equals(groupInfo.getName()); - } while (!matchingGroup && iterator.hasNext()); - assertTrue("Group was not found", matchingGroup); - } finally { - deleteGroup(group); - } - } - - @Test - public void getAllGroupsByNameWithFieldsOptionSearchesCorrectly() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String groupName = "getAllGroupsByNameWithFieldsOptionSearchesCorrectly"; - String groupDescription = "This is Test Group"; - BoxGroup group = BoxGroup.createGroup(api, groupName, null, null, groupDescription, null, null).getResource(); - try { - //Searching groups requires few seconds delay. - Thread.sleep(5000); - } catch (InterruptedException ie) { - //Do nothing - } - try { - Iterator iterator = BoxGroup.getAllGroupsByName(api, groupName, "description").iterator(); - boolean matchingGroup; - do { - BoxGroup.Info groupInfo = iterator.next(); - matchingGroup = groupInfo.getName() == null && groupDescription.equals(groupInfo.getDescription()); - } while (!matchingGroup && iterator.hasNext()); - assertTrue("Group was not found", matchingGroup); - } finally { - deleteGroup(group); - } - } -} diff --git a/src/intTest/java/com/box/sdk/BoxGroupMembershipIT.java b/src/intTest/java/com/box/sdk/BoxGroupMembershipIT.java deleted file mode 100644 index c6930fc69..000000000 --- a/src/intTest/java/com/box/sdk/BoxGroupMembershipIT.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; -import static com.box.sdk.CleanupTools.deleteGroup; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.is; - -import com.box.sdk.BoxGroupMembership.Permission; -import java.util.Calendar; -import java.util.HashMap; -import java.util.Map; -import org.junit.Test; - -/** - * {@link BoxGroupMembership} related integration tests. - */ -public class BoxGroupMembershipIT { - - @Test - public void getInfoSucceeds() { - final String groupName = "[getGroupMembershipInfoSucceeds] Test Group " - + Calendar.getInstance().getTimeInMillis(); - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxUser user = BoxUser.getCurrentUser(api); - BoxGroupMembership.GroupRole role = BoxGroupMembership.GroupRole.MEMBER; - - BoxGroup.Info groupInfo = BoxGroup.createGroup(api, groupName); - BoxUser.Info userInfo = user.getInfo(); - BoxGroup group = groupInfo.getResource(); - - BoxGroupMembership membership = group.addMembership(user, role).getResource(); - BoxGroupMembership.Info membershipInfo = membership.getInfo(); - - assertThat(membershipInfo.getUser().getID(), is(equalTo(user.getID()))); - assertThat(membershipInfo.getUser().getName(), is(equalTo(userInfo.getName()))); - assertThat(membershipInfo.getUser().getLogin(), is(equalTo(userInfo.getLogin()))); - assertThat(membershipInfo.getGroup().getID(), is(equalTo(group.getID()))); - assertThat(membershipInfo.getGroup().getName(), is(equalTo(groupInfo.getName()))); - assertThat(membershipInfo.getGroupRole(), is(equalTo(role))); - - deleteGroup(group); - } - - @Test - public void updateInfoSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String groupName = "[updateGroupMembershipInfoSucceeds] Test Group"; - BoxUser user = BoxUser.getCurrentUser(api); - BoxGroupMembership.GroupRole originalRole = BoxGroupMembership.GroupRole.MEMBER; - BoxGroupMembership.GroupRole newRole = BoxGroupMembership.GroupRole.ADMIN; - - Map configurablePermissions = new HashMap<>(); - configurablePermissions.put(Permission.CAN_CREATE_ACCOUNTS, false); - - BoxGroup group = BoxGroup.createGroup(api, groupName).getResource(); - - BoxGroupMembership.Info membershipInfo = group.addMembership(user, originalRole); - - assertThat(membershipInfo.getGroupRole(), is(equalTo(originalRole))); - - BoxGroupMembership membership = membershipInfo.getResource(); - membershipInfo.setGroupRole(newRole); - membershipInfo.setConfigurablePermissions(configurablePermissions); - membership.updateInfo(membershipInfo); - - assertThat(membershipInfo.getGroupRole(), is(equalTo(newRole))); - assertThat(membershipInfo.getConfigurablePermissions().get(Permission.CAN_CREATE_ACCOUNTS), - is(equalTo(false))); - - deleteGroup(group); - } - - @Test - public void addWithConfigurablePermissionsSucceds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String groupName = "[addWithConfigurablePermissionsSucceeds] Test Group"; - BoxUser user = BoxUser.getCurrentUser(api); - BoxGroupMembership.GroupRole role = BoxGroupMembership.GroupRole.ADMIN; - - Map configurablePermissions = new HashMap<>(); - configurablePermissions.put(Permission.CAN_CREATE_ACCOUNTS, false); - - BoxGroup group = BoxGroup.createGroup(api, groupName).getResource(); - - BoxGroupMembership.Info membershipInfo = group.addMembership(user, role, configurablePermissions); - - assertThat(membershipInfo.getConfigurablePermissions().get(Permission.CAN_CREATE_ACCOUNTS), - is(equalTo(false))); - assertThat(membershipInfo.getConfigurablePermissions().get(Permission.CAN_EDIT_ACCOUNTS), - is(equalTo(true))); - - deleteGroup(group); - } - - @Test - public void deleteSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String groupName = "[deleteGroupMembershipSucceeds] Test Group " + Calendar.getInstance().getTimeInMillis(); - BoxUser user = BoxUser.getCurrentUser(api); - BoxGroupMembership.GroupRole originalRole = BoxGroupMembership.GroupRole.MEMBER; - - BoxGroup group = BoxGroup.createGroup(api, groupName).getResource(); - - BoxGroupMembership.Info membershipInfo = group.addMembership(user, originalRole); - BoxGroupMembership membership = membershipInfo.getResource(); - membership.delete(); - - deleteGroup(group); - } -} diff --git a/src/intTest/java/com/box/sdk/BoxRecentsIT.java b/src/intTest/java/com/box/sdk/BoxRecentsIT.java deleted file mode 100644 index 67dc61e46..000000000 --- a/src/intTest/java/com/box/sdk/BoxRecentsIT.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; -import static com.box.sdk.CleanupTools.deleteFile; -import static com.box.sdk.UniqueTestFolder.removeUniqueFolder; -import static com.box.sdk.UniqueTestFolder.setupUniqeFolder; -import static com.box.sdk.UniqueTestFolder.uploadTwoFileVersionsToUniqueFolder; -import static org.junit.Assert.assertNotNull; - -import java.util.Iterator; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - -/** - * {@link BoxRecents} related integration tests. - */ -public class BoxRecentsIT { - @BeforeClass - public static void setup() { - setupUniqeFolder(); - } - - @AfterClass - public static void tearDown() { - removeUniqueFolder(); - } - - @Test - public void getRecentsWorkWithoutFields() { - BoxFile uploadedFile = null; - try { - BoxAPIConnection api = jwtApiForServiceAccount(); - api.asUser(TestConfig.getCollaboratorID()); - - //Create a file to check if it comes up in recents - String fileName = "[recentItemTest] Multi-version File.txt"; - String version1Content = "Version 1"; - String version2Content = "Version 2"; - uploadedFile = uploadTwoFileVersionsToUniqueFolder(fileName, version1Content, version2Content, null); - - BoxResourceIterable recentItems = BoxRecents.getRecentItems(api, 100); - assertNotNull("Should receive a response", recentItems); - Iterator recentItemIterator = recentItems.iterator(); - if (recentItemIterator.hasNext()) { - BoxRecentItem recentItem = recentItemIterator.next(); - assertNotNull("type should be not be null", recentItem.getType()); - assertNotNull("interactedAt date should not be null", recentItem.getInteractedAt()); - assertNotNull("interactionType should not be null", recentItem.getInteractionType()); - assertNotNull("item should not be null", recentItem.getItem()); - } - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void getRecentsWorkWithFields() { - BoxFile uploadedFile = null; - try { - BoxAPIConnection api = jwtApiForServiceAccount(); - api.asUser(TestConfig.getCollaboratorID()); - - //Create a file to check if it comes up in recents - String fileName = "[recentItemTest] Multi-version File.txt"; - String version1Content = "Version 1"; - String version2Content = "Version 2"; - uploadedFile = uploadTwoFileVersionsToUniqueFolder(fileName, version1Content, version2Content, null); - - BoxResourceIterable recentItems = BoxRecents.getRecentItems(api, 100, "created_at"); - assertNotNull("Should receive a response", recentItems); - Iterator recentItemIterator = recentItems.iterator(); - if (recentItemIterator.hasNext()) { - BoxRecentItem recentItem = recentItemIterator.next(); - assertNotNull("type should be not be null", recentItem.getType()); - assertNotNull("interactedAt date should not be null", recentItem.getInteractedAt()); - assertNotNull("interactionType should not be null", recentItem.getInteractionType()); - assertNotNull("item should not be null", recentItem.getItem()); - assertNotNull("item's created_at should not be null", recentItem.getItem().getCreatedAt()); - } - } finally { - deleteFile(uploadedFile); - } - } - -} diff --git a/src/intTest/java/com/box/sdk/BoxRetentionPolicyAssignmentIT.java b/src/intTest/java/com/box/sdk/BoxRetentionPolicyAssignmentIT.java deleted file mode 100644 index e2360e1cd..000000000 --- a/src/intTest/java/com/box/sdk/BoxRetentionPolicyAssignmentIT.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; -import static com.box.sdk.BoxRetentionPolicyAssignment.createAssignmentToFolder; -import static com.box.sdk.CleanupTools.deleteFolder; -import static com.box.sdk.UniqueTestFolder.getUniqueFolder; -import static com.box.sdk.UniqueTestFolder.randomizeName; -import static com.box.sdk.UniqueTestFolder.removeUniqueFolder; -import static com.box.sdk.UniqueTestFolder.setupUniqeFolder; -import static com.box.sdk.UniqueTestFolder.uploadFileWithSomeContent; -import static com.box.sdk.UniqueTestFolder.uploadTwoFileVersionsToSpecifiedFolder; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.hasSize; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.mock; - -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.StreamSupport; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - -/** - * {@link BoxRetentionPolicyAssignment} related integration tests. - */ -public class BoxRetentionPolicyAssignmentIT { - private static BoxRetentionPolicy policy; - - @BeforeClass - public static void beforeClass() { - BoxAPIConnection api = jwtApiForServiceAccount(); - policy = RetentionPolicyUtils.getOneDayRetentionPolicy(api); - setupUniqeFolder(); - } - - @AfterClass - public static void tearDown() { - removeUniqueFolder(); - } - - @Test - public void attachPolicyToFileAndGetFilesUnderRetentionAndDeleteAttachment() throws InterruptedException { - //given - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder.Info folder = getUniqueFolder(api) - .createFolder(randomizeName("attachPolicyToFileAndGetFilesUnderRetention")); - try { - BoxRetentionPolicyAssignment.Info assignmentInfo = createAssignmentToFolder( - api, policy.getID(), folder.getID() - ); - BoxFile boxFile = uploadFileWithSomeContent("file_with_retention.txt", folder.getResource()); - - //when - BoxRetentionPolicyAssignment assignment = new BoxRetentionPolicyAssignment(api, assignmentInfo.getID()); - Iterable filesUnderRetention = - new BoxRetentionPolicyAssignment(api, assignmentInfo.getID()).getFilesUnderRetention(5); - - //then - List matchingFileWithRetention1 = - StreamSupport.stream(filesUnderRetention.spliterator(), false) - .filter(f -> f.getID().equals(boxFile.getID())) - .collect(Collectors.toList()); - assertThat(matchingFileWithRetention1, hasSize(1)); - - //when - assignment.delete(); - Retry.retry(() -> { - Iterable filesUnderRetention2 = - new BoxRetentionPolicyAssignment(api, assignmentInfo.getID()).getFilesUnderRetention(50); - - //then - List matchingFileWithRetention2 = - StreamSupport.stream(filesUnderRetention2.spliterator(), false) - .filter(f -> f.getID().equals(boxFile.getID())) - .collect(Collectors.toList()); - assertTrue(matchingFileWithRetention2.isEmpty()); - }, 10, 3000); - } finally { - //cleanup - deleteFolder(folder.getResource()); - } - } - - @Test - public void attachPolicyToFileAndGetFileVersionsUnderRetentionAndDeleteAttachment() throws InterruptedException { - //given - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder folder = getUniqueFolder(api) - .createFolder(randomizeName("attachPolicyToFileAndGetFileVersionsUnderRetention")) - .getResource(); - try { - BoxRetentionPolicyAssignment.Info assignmentInfo = createAssignmentToFolder( - api, policy.getID(), folder.getID() - ); - BoxFile boxFile = uploadTwoFileVersionsToSpecifiedFolder( - "file_with_retention.txt", - "v1", - "v2", - folder, - mock(ProgressListener.class) - ); - - //when - BoxRetentionPolicyAssignment assignment = new BoxRetentionPolicyAssignment(api, assignmentInfo.getID()); - Iterable filesVersionsUnderRetention1 = assignment.getFileVersionsUnderRetention(5); - - //then - List matchingFileWithRetention1 = - StreamSupport.stream(filesVersionsUnderRetention1.spliterator(), false) - .filter(f -> f.getID().equals(boxFile.getID())) - .collect(Collectors.toList()); - assertThat(matchingFileWithRetention1, hasSize(1)); - - //when - assignment.delete(); - Retry.retry(() -> { - Iterable filesVersionsUnderRetention2 = assignment.getFileVersionsUnderRetention(50); - - //then - List matchingFileWithRetention2 = - StreamSupport.stream(filesVersionsUnderRetention2.spliterator(), false) - .filter(f -> f.getID().equals(boxFile.getID())) - .collect(Collectors.toList()); - assertTrue(matchingFileWithRetention2.isEmpty()); - }, 10, 3000); - } finally { - //cleanup - deleteFolder(folder); - } - } -} diff --git a/src/intTest/java/com/box/sdk/BoxSignRequestIT.java b/src/intTest/java/com/box/sdk/BoxSignRequestIT.java deleted file mode 100644 index 8bfa2e108..000000000 --- a/src/intTest/java/com/box/sdk/BoxSignRequestIT.java +++ /dev/null @@ -1,249 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; -import static com.box.sdk.CleanupTools.deleteFile; -import static com.box.sdk.CleanupTools.deleteFolder; -import static com.box.sdk.CleanupTools.deleteUser; -import static com.box.sdk.Retry.retry; -import static com.box.sdk.UniqueTestFolder.getUniqueFolder; -import static com.box.sdk.UniqueTestFolder.randomizeName; -import static com.box.sdk.UniqueTestFolder.removeUniqueFolder; -import static com.box.sdk.UniqueTestFolder.setupUniqeFolder; -import static com.box.sdk.UniqueTestFolder.uploadSampleFileToUniqueFolder; -import static java.time.ZoneOffset.UTC; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import java.time.Instant; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Date; -import java.util.List; -import java.util.concurrent.atomic.AtomicReference; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - -/** - * {@link BoxSignRequest} related integration tests. - */ -public class BoxSignRequestIT { - @BeforeClass - public static void setup() { - setupUniqeFolder(); - } - - @AfterClass - public static void tearDown() { - removeUniqueFolder(); - } - - @Test - public void createListAndCancelSignRequest() throws InterruptedException { - // Test Setup - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder uniqueFolder = getUniqueFolder(api); - String fileName = "file_to_sign.pdf"; - String file2Name = "file_to_sign2.pdf"; - BoxFile file = null; - BoxFile file2 = null; - BoxFolder signedFileFolder = null; - AtomicReference signRequestInfoCancel = new AtomicReference<>(); - - try { - - file = uploadSampleFileToUniqueFolder(api, fileName); - file2 = uploadSampleFileToUniqueFolder(api, file2Name); - List files = new ArrayList<>(); - files.add(new BoxSignRequestFile(file.getID())); - files.add(new BoxSignRequestFile(file2.getID())); - - String signerEmail = "user@example.com"; - Boolean signerLoginRequired = false; - String signerPassword = "password"; - Boolean signerSuppressNotifications = false; - String signerVerficationPhoneNumber = "+16314578901"; - - List signers = new ArrayList<>(); - BoxSignRequestSigner newSigner = new BoxSignRequestSigner(signerEmail).setInPerson(false) - .setLoginRequired(signerLoginRequired).setPassword(signerPassword) - .setSuppressNotifications(signerSuppressNotifications) - .setVerificationPhoneNumber(signerVerficationPhoneNumber); - signers.add(newSigner); - - signedFileFolder = uniqueFolder.createFolder("Folder - signRequestIntegrationTest").getResource(); - - // Do Create - List prefillTags = new ArrayList<>(); - Instant dateInstant = LocalDateTime.of(2021, 11, 20, 11, 0, 0) - .toInstant(UTC); - prefillTags.add(new BoxSignRequestPrefillTag(file.getID(), Date.from(dateInstant))); - BoxSignRequestCreateParams createParams = new BoxSignRequestCreateParams() - .setIsDocumentPreparationNeeded(true) - .setPrefillTags(prefillTags); - BoxSignRequest.Info signRequestInfoCreate = BoxSignRequest - .createSignRequest(api, files, signers, signedFileFolder.getID(), createParams); - - String signRequestIdCreate = signRequestInfoCreate.getID(); - BoxFile.Info fileInfoCreate = signRequestInfoCreate.getSourceFiles().get(0); - BoxFile.Info file2InfoCreate = signRequestInfoCreate.getSourceFiles().get(1); - - // todo: get signer by role type. Using index=1 is fragile, as order may not be guaranteed. - //signer at index 0 has role=final_copy_reader - //signer at index 1 has role=signer - BoxSignRequestSigner signerCreate = signRequestInfoCreate.getSigners().get(1); - - // Test Create - assertNotNull(signRequestInfoCreate.getPrepareUrl()); - // The order of the files in the response is not guaranteed - if (file.getID().equals(fileInfoCreate.getID())) { - assertEquals(file2.getID(), file2InfoCreate.getID()); - } else { - assertEquals(file.getID(), file2InfoCreate.getID()); - assertEquals(file2.getID(), fileInfoCreate.getID()); - } - assertEquals(signerEmail, signerCreate.getEmail()); - assertNotNull(signRequestInfoCreate.getID()); - - // Do Get by ID - BoxSignRequest signRequestGetByID = new BoxSignRequest(api, signRequestIdCreate); - BoxSignRequest.Info signRequestInfoGetByID = signRequestGetByID.getInfo(); - BoxFile.Info fileInfo = signRequestInfoGetByID.getSourceFiles().get(0); - BoxFile.Info file2Info = signRequestInfoGetByID.getSourceFiles().get(1); - BoxSignRequestPrefillTag prefillTag = signRequestInfoGetByID.getPrefillTags().get(0); - assertEquals(prefillTag.getDocumentTagId(), file.getID()); - assertEquals(BoxDateFormat.formatAsDateOnly(prefillTag.getDateValue()), "2021-11-20"); - - // Todo: get signer by role type. Using index=1 is fragile, as order may not be guaranteed. - //signer at index 0 has role=final_copy_reader - //signer at index 1 has role=signer - BoxSignRequestSigner signer = signRequestInfoGetByID.getSigners().get(1); - - // Test Get by ID - // The order of the files in the response is not guaranteed - if (file.getID().equals(fileInfo.getID())) { - assertEquals(file2.getID(), file2Info.getID()); - } else { - assertEquals(file.getID(), file2Info.getID()); - assertEquals(file2.getID(), fileInfo.getID()); - } - assertEquals(signerEmail, signer.getEmail()); - assertEquals(signRequestIdCreate, signRequestInfoGetByID.getID()); - assertEquals(signerLoginRequired, signer.getLoginRequired()); - assertEquals(signerSuppressNotifications, signer.getSuppressNotifications()); - assertEquals(signerVerficationPhoneNumber, signer.getVerificationPhoneNumber()); - - // Resend sign request - retry(signRequestGetByID::resend, 5, 500); - - // Do Get All - Iterable signRequestsGetAll = BoxSignRequest.getAll(api); - - // Test Get All - assertTrue(signRequestsGetAll.iterator().hasNext()); - - - // Do Cancel - // Cancel will fail if it's too soon after creation - retry(() -> signRequestInfoCancel.set(signRequestGetByID.cancel()), 5, 1000); - BoxSignRequest signRequestGetByIDAfterCancel = new BoxSignRequest(api, signRequestIdCreate); - BoxSignRequest.Info signRequestInfoAfterCancel = signRequestGetByIDAfterCancel.getInfo(); - BoxSignRequest.BoxSignRequestStatus signRequestStatusAfterCancel = signRequestInfoAfterCancel.getStatus(); - - // Test Cancel - assertNotNull("Expected Cancel Sign Request but got null", signRequestInfoCancel.get()); - assertEquals(BoxSignRequest.BoxSignRequestStatus.Cancelled, signRequestInfoCancel.get().getStatus()); - assertEquals(BoxSignRequest.BoxSignRequestStatus.Cancelled, signRequestStatusAfterCancel); - } finally { - if (signRequestInfoCancel.get() != null) { - // Clean up - List signRequestFiles = signRequestInfoCancel.get().getSignFiles().getFiles(); - for (BoxFile.Info signRequestFile : signRequestFiles) { - BoxFile fileToDelete = new BoxFile(api, signRequestFile.getID()); - fileToDelete.delete(); - } - } - deleteFile(file); - deleteFile(file2); - deleteFolder(signedFileFolder); - } - } - - @Test - public void createSignRequestForGroup() throws InterruptedException { - // Test Setup - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder uniqueFolder = getUniqueFolder(api); - BoxFile file = null; - BoxFolder signedFileFolder = null; - BoxUser groupMemberUser1 = null; - BoxUser groupMemberUser2 = null; - String userName1 = randomizeName("login1") + "@boz.com"; - String userName2 = randomizeName("login2") + "@boz.com"; - AtomicReference signRequestInfoCancel = new AtomicReference<>(); - String signerGroupName = randomizeName("GroupName"); - - try { - groupMemberUser1 = BoxUser.createEnterpriseUser(api, userName1, "userName1").getResource(); - groupMemberUser2 = BoxUser.createEnterpriseUser(api, userName2, "userName2").getResource(); - - file = uploadSampleFileToUniqueFolder(api, "file_to_sign.pdf"); - List files = Collections.singletonList(new BoxSignRequestFile(file.getID())); - - List signers = new ArrayList<>(); - signers.add(new BoxSignRequestSigner(userName1).setSignerGroupId(signerGroupName)); - signers.add(new BoxSignRequestSigner(userName2).setSignerGroupId(signerGroupName)); - - signedFileFolder = uniqueFolder.createFolder("Folder - signRequestGroupIntegrationTest").getResource(); - - // Do Create - BoxSignRequest.Info signRequestInfoCreate = BoxSignRequest - .createSignRequest(api, files, signers, signedFileFolder.getID()); - - String signRequestIdCreate = signRequestInfoCreate.getID(); - List createdSigners = signRequestInfoCreate.getSigners(); - BoxSignRequestSigner createdSigner1 = createdSigners.get(1); - BoxSignRequestSigner createdSigner2 = createdSigners.get(2); - - // Test Create - assertNotNull(signRequestInfoCreate.getID()); - assertEquals(createdSigners.size(), 3); - assertEquals(createdSigner1.getSignerGroupId(), createdSigner2.getSignerGroupId()); - assertNotEquals(createdSigner1.getSignerGroupId(), signerGroupName); - - // Do Get by ID - BoxSignRequest signRequestGetByID = new BoxSignRequest(api, signRequestIdCreate); - - List signersGet = signRequestGetByID.getInfo().getSigners(); - BoxSignRequestSigner signer1Get = signersGet.get(1); - BoxSignRequestSigner signer2Get = createdSigners.get(2); - - // Test Get - assertNotNull(signRequestInfoCreate.getID()); - assertEquals(signersGet.size(), 3); - assertEquals(signer1Get.getSignerGroupId(), signer2Get.getSignerGroupId()); - assertEquals(signer1Get.getSignerGroupId(), createdSigner1.getSignerGroupId()); - - retry(() -> signRequestInfoCancel.set(signRequestGetByID.cancel()), 5, 1000); - - } finally { - deleteUser(groupMemberUser1); - deleteUser(groupMemberUser2); - - if (signRequestInfoCancel.get() != null) { - // Clean up - List signRequestFiles = signRequestInfoCancel.get().getSignFiles().getFiles(); - for (BoxFile.Info signRequestFile : signRequestFiles) { - BoxFile fileToDelete = new BoxFile(api, signRequestFile.getID()); - fileToDelete.delete(); - } - } - deleteFile(file); - deleteFolder(signedFileFolder); - } - } -} - diff --git a/src/intTest/java/com/box/sdk/BoxTaskIT.java b/src/intTest/java/com/box/sdk/BoxTaskIT.java deleted file mode 100644 index 586ecc3ef..000000000 --- a/src/intTest/java/com/box/sdk/BoxTaskIT.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; -import static com.box.sdk.CleanupTools.deleteFile; -import static com.box.sdk.UniqueTestFolder.removeUniqueFolder; -import static com.box.sdk.UniqueTestFolder.setupUniqeFolder; -import static com.box.sdk.UniqueTestFolder.uploadFileToUniqueFolderWithSomeContent; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.is; - -import java.util.Calendar; -import java.util.Date; -import java.util.GregorianCalendar; -import org.junit.After; -import org.junit.BeforeClass; -import org.junit.Test; - -/** - * {@link BoxTask} related integration tests. - */ -public class BoxTaskIT { - - @BeforeClass - public static void beforeClass() { - setupUniqeFolder(); - } - - @After - public void tearDown() { - removeUniqueFolder(); - } - - @Test - public void updateInfoSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[updateInfoSucceeds] Test File.txt"; - String originalMessage = "Original message"; - String changedMessage = "Changed message"; - BoxFile uploadedFile = null; - - try { - uploadedFile = uploadFileToUniqueFolderWithSomeContent(api, fileName); - Calendar calendar = new GregorianCalendar(); - calendar.set(Calendar.SECOND, 0); - calendar.set(Calendar.MILLISECOND, 0); - calendar.add(Calendar.DATE, 1); - Date dueAt = calendar.getTime(); - - BoxTask.Info taskInfo = uploadedFile.addTask(BoxTask.Action.REVIEW, originalMessage, dueAt); - - BoxTask task = taskInfo.getResource(); - taskInfo.setMessage(changedMessage); - taskInfo.setDueAt(dueAt); - task.updateInfo(taskInfo); - - assertThat(taskInfo.getMessage(), is(equalTo(changedMessage))); - assertThat(taskInfo.getDueAt(), is(equalTo(dueAt))); - } finally { - deleteFile(uploadedFile); - } - } -} diff --git a/src/intTest/java/com/box/sdk/BoxTermsOfServiceIT.java b/src/intTest/java/com/box/sdk/BoxTermsOfServiceIT.java deleted file mode 100644 index 2cee70f68..000000000 --- a/src/intTest/java/com/box/sdk/BoxTermsOfServiceIT.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.box.sdk; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -import java.util.List; -import org.junit.Ignore; -import org.junit.Test; - -@Ignore("Terms of servcie are disabled on test account") -public class BoxTermsOfServiceIT { - - @Test - public void getAllTermsOfServicesWithNoParamSucceeds() { - final String tosType = "terms_of_service"; - - BoxAPIConnection api = new BoxAPIConnection(TestConfig.getAccessToken()); - - List termsOfServicesInfo = BoxTermsOfService.getAllTermsOfServices(api); - - for (BoxTermsOfService.Info info : termsOfServicesInfo) { - assertNotNull(info); - assertNotNull(info.getEnterprise()); - assertEquals(tosType, info.getType()); - } - } - - @Test - public void getAllTermsOfServicesWithParamSucceeds() { - final String type = "terms_of_service"; - final BoxTermsOfService.TermsOfServiceType tosType = BoxTermsOfService.TermsOfServiceType.MANAGED; - - BoxAPIConnection api = new BoxAPIConnection(TestConfig.getAccessToken()); - - List termsOfServicesInfo = BoxTermsOfService.getAllTermsOfServices(api, - BoxTermsOfService.TermsOfServiceType.MANAGED); - - for (BoxTermsOfService.Info info : termsOfServicesInfo) { - assertNotNull(info); - assertNotNull(info.getEnterprise()); - assertEquals(tosType, info.getTosType()); - assertEquals(type, info.getType()); - } - } -} diff --git a/src/intTest/java/com/box/sdk/BoxTransactionalAPIConnectionIT.java b/src/intTest/java/com/box/sdk/BoxTransactionalAPIConnectionIT.java deleted file mode 100644 index 3a52010c3..000000000 --- a/src/intTest/java/com/box/sdk/BoxTransactionalAPIConnectionIT.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.box.sdk; - -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.emptyOrNullString; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.not; -import static org.hamcrest.Matchers.notNullValue; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.net.URL; -import org.junit.Ignore; -import org.junit.Test; - -@Ignore("Setup JWT connection") -public class BoxTransactionalAPIConnectionIT { - @Test - public void successfullyCreatesTransactionalConnection() { - final String transactionalAccessToken = TestConfig.getTransactionalAccessToken(); - - BoxAPIConnection transactionConnection = BoxTransactionalAPIConnection - .getTransactionConnection(transactionalAccessToken, "item_preview"); - assertThat(transactionConnection.getAccessToken(), is(notNullValue())); - } - - @Test - public void successfullyCreatesEmbedLinkWithTransactionalConnection() { - final String transactionalAccessToken = TestConfig.getTransactionalAccessToken(); - - BoxAPIConnection api = new BoxAPIConnection(transactionalAccessToken); - BoxFolder rootFolder = BoxFolder.getRootFolder(api); - String fileName = "[successfullyCreatesEmbedLinkWithTransactionalConnection] Test File.txt"; - String fileContent = "Test file"; - byte[] fileBytes = fileContent.getBytes(StandardCharsets.UTF_8); - - InputStream uploadStream = new ByteArrayInputStream(fileBytes); - BoxFile uploadedFileOne = rootFolder.uploadFile(uploadStream, fileName).getResource(); - BoxFile uploadedFileTwo = rootFolder.uploadFile(uploadStream, fileName).getResource(); - - BoxAPIConnection transactionConnection = BoxTransactionalAPIConnection - .getTransactionConnection(transactionalAccessToken, "item_preview"); - - // Transactional connection should be able to generate preview - // link for any file since it is not resource scoped - BoxFile transactionalFileOne = new BoxFile(transactionConnection, uploadedFileOne.getID()); - URL transactionalFileOnePreviewLink = transactionalFileOne.getPreviewLink(); - - assertThat(transactionalFileOnePreviewLink, is(notNullValue())); - assertThat(transactionalFileOnePreviewLink.toString(), not(is(emptyOrNullString()))); - - BoxFile transactionalFileTwo = new BoxFile(transactionConnection, uploadedFileTwo.getID()); - URL transactionalFileTwoPreviewLink = transactionalFileTwo.getPreviewLink(); - - assertThat(transactionalFileTwoPreviewLink, is(notNullValue())); - assertThat(transactionalFileTwoPreviewLink.toString(), not(is(emptyOrNullString()))); - } - - @Test - public void successfullyCreatesEmbedLinkWithResourceScopedTransactionalConnection() { - final String transactionalAccessToken = TestConfig.getTransactionalAccessToken(); - - BoxAPIConnection api = new BoxAPIConnection(transactionalAccessToken); - BoxFolder rootFolder = BoxFolder.getRootFolder(api); - String fileName = "[successfullyCreatesEmbedLinkWithTransactionalConnection] Test File.txt"; - String fileContent = "Test file"; - byte[] fileBytes = fileContent.getBytes(StandardCharsets.UTF_8); - - InputStream uploadStream = new ByteArrayInputStream(fileBytes); - BoxFile uploadedFile = rootFolder.uploadFile(uploadStream, fileName).getResource(); - - BoxAPIConnection transactionConnection = BoxTransactionalAPIConnection - .getTransactionConnection( - transactionalAccessToken, - "item_preview", - "https://api.box.com/2.0/files/" + uploadedFile.getID() - ); - - BoxFile transactionalFile = new BoxFile(transactionConnection, uploadedFile.getID()); - URL transactionalFilePreviewLink = transactionalFile.getPreviewLink(); - - assertThat(transactionalFilePreviewLink, is(notNullValue())); - assertThat(transactionalFilePreviewLink.toString(), not(is(emptyOrNullString()))); - } - - @Test(expected = BoxAPIException.class) - public void throwsWhenAttemptingToCreatesEmbedLinkWithAnotherFilesResourceScopedTransactionalConnection() { - final String transactionalAccessToken = TestConfig.getTransactionalAccessToken(); - - BoxAPIConnection api = new BoxAPIConnection(transactionalAccessToken); - BoxFolder rootFolder = BoxFolder.getRootFolder(api); - String fileName = "[successfullyCreatesEmbedLinkWithTransactionalConnection] Test File.txt"; - String fileContent = "Test file"; - byte[] fileBytes = fileContent.getBytes(StandardCharsets.UTF_8); - - InputStream uploadStream = new ByteArrayInputStream(fileBytes); - BoxFile uploadedFileOne = rootFolder.uploadFile(uploadStream, fileName).getResource(); - BoxFile uploadedFileTwo = rootFolder.uploadFile(uploadStream, fileName).getResource(); - - BoxAPIConnection transactionConnection = BoxTransactionalAPIConnection - .getTransactionConnection( - transactionalAccessToken, - "item_preview", - "https://api.box.com/2.0/files/" + uploadedFileOne.getID() - ); - - BoxFile transactionalFileTwo = new BoxFile(transactionConnection, uploadedFileTwo.getID()); - transactionalFileTwo.getPreviewLink(); - } -} diff --git a/src/intTest/java/com/box/sdk/BoxTrashIT.java b/src/intTest/java/com/box/sdk/BoxTrashIT.java deleted file mode 100644 index b2623e73a..000000000 --- a/src/intTest/java/com/box/sdk/BoxTrashIT.java +++ /dev/null @@ -1,221 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; -import static com.box.sdk.CleanupTools.deleteFile; -import static com.box.sdk.UniqueTestFolder.getUniqueFolder; -import static com.box.sdk.UniqueTestFolder.removeUniqueFolder; -import static com.box.sdk.UniqueTestFolder.setupUniqeFolder; -import static com.box.sdk.UniqueTestFolder.uploadFileToUniqueFolderWithSomeContent; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.hasItem; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.not; -import static org.hamcrest.Matchers.nullValue; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import org.hamcrest.Matchers; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - -public class BoxTrashIT { - @BeforeClass - public static void setup() { - setupUniqeFolder(); - } - - @AfterClass - public static void tearDown() { - removeUniqueFolder(); - } - - @Test - public void getAllTrashedItems() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxTrash trash = new BoxTrash(api); - BoxFolder rootFolder = getUniqueFolder(api); - BoxFolder trashedFolder = rootFolder.createFolder("[getAllTrashedItems] Trashed Folder").getResource(); - trashedFolder.delete(false); - - BoxItem.Info someItemFromTrash = trash.iterator().next(); - - assertThat(someItemFromTrash, not(nullValue())); - } - - @Test - public void getAllTrashedItemsWithLimit() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxTrash trash = new BoxTrash(api); - BoxFolder rootFolder = getUniqueFolder(api); - BoxFolder trashedFolder = rootFolder.createFolder("[getAllTrashedItemsWithLimit] Trashed Folder") - .getResource(); - trashedFolder.delete(false); - - BoxItem.Info someItemFromTrash = trash.items(SortParameters.none(), PagingParameters.offset(0, 1)) - .iterator().next(); - - assertThat(someItemFromTrash, not(nullValue())); - } - - @Test - public void getTrashedFolderInfo() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxTrash trash = new BoxTrash(api); - BoxFolder rootFolder = getUniqueFolder(api); - String trashedFolderName = "[getTrashedFolderInfo] Trashed Folder"; - BoxFolder trashedFolder = rootFolder.createFolder(trashedFolderName).getResource(); - trashedFolder.delete(false); - - BoxFolder.Info info = trash.getFolderInfo(trashedFolder.getID()); - - assertThat(info.getName(), is(equalTo(trashedFolderName))); - assertThat(info.getItemStatus(), is(equalTo("trashed"))); - } - - @Test - public void permanentlyDeleteTrashedFolder() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxTrash trash = new BoxTrash(api); - BoxFolder rootFolder = getUniqueFolder(api); - String folderName = "[permanentlyDeleteTrashedFolder] Trashed Folder"; - - BoxFolder folder = rootFolder.createFolder(folderName).getResource(); - folder.delete(false); - trash.deleteFolder(folder.getID()); - - assertFolderIsNotTrashed(trash, folder); - } - - @Test - public void restoreTrashedFolderSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxTrash trash = new BoxTrash(api); - BoxFolder rootFolder = getUniqueFolder(api); - String folderName = "[restoreTrashedFolderWithNewNameSucceeds] Trashed Folder"; - - BoxFolder folder = rootFolder.createFolder(folderName).getResource(); - folder.delete(false); - trash.restoreFolder(folder.getID()); - - assertFolderIsNotTrashed(trash, folder); - assertThat(rootFolder, hasItem(Matchers.hasProperty("ID", equalTo(folder.getID())))); - folder.delete(false); - } - - @Test - public void restoreTrashedFolderWithNewNameSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxTrash trash = new BoxTrash(api); - BoxFolder rootFolder = getUniqueFolder(api); - String folderName = "[restoreTrashedFolderWithNewNameSucceeds] Trashed Folder"; - String restoredFolderName = "[restoreTrashedFolderWithNewNameSucceeds] Trashed Folder"; - BoxFolder folder = null; - - try { - folder = rootFolder.createFolder(folderName).getResource(); - folder.delete(false); - BoxFolder.Info restoredFolderInfo = trash.restoreFolder(folder.getID(), restoredFolderName, null); - - assertThat(restoredFolderInfo.getName(), is(equalTo(restoredFolderName))); - assertFolderIsNotTrashed(trash, folder); - assertThat(rootFolder, hasItem(Matchers.hasProperty("ID", equalTo(folder.getID())))); - } finally { - CleanupTools.deleteFolder(folder); - } - } - - @Test - public void getTrashedFileInfo() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxTrash trash = new BoxTrash(api); - BoxFolder rootFolder = getUniqueFolder(api); - String fileName = "[getTrashedFileInfo] Trashed File.txt"; - String fileContent = "Trashed file"; - byte[] fileBytes = fileContent.getBytes(StandardCharsets.UTF_8); - - InputStream uploadStream = new ByteArrayInputStream(fileBytes); - BoxFile uploadedFile = rootFolder.uploadFile(uploadStream, fileName).getResource(); - uploadedFile.delete(); - - BoxFile.Info trashedFileInfo = trash.getFileInfo(uploadedFile.getID()); - - assertThat(trashedFileInfo.getName(), is(equalTo(fileName))); - assertThat(trashedFileInfo.getItemStatus(), is(equalTo("trashed"))); - } - - @Test - public void permanentlyDeleteTrashedFile() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxTrash trash = new BoxTrash(api); - BoxFolder rootFolder = getUniqueFolder(api); - String fileName = "[permanentlyDeleteTrashedFile] Trashed File.txt"; - String fileContent = "Trashed file"; - byte[] fileBytes = fileContent.getBytes(StandardCharsets.UTF_8); - - InputStream uploadStream = new ByteArrayInputStream(fileBytes); - BoxFile uploadedFile = rootFolder.uploadFile(uploadStream, fileName).getResource(); - uploadedFile.delete(); - trash.deleteFile(uploadedFile.getID()); - - assertFileIsNotTrashed(trash, uploadedFile); - } - - @Test - public void restoreTrashedFileSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxTrash trash = new BoxTrash(api); - BoxFolder rootFolder = getUniqueFolder(api); - String fileName = "[restoreTrashedFileSucceeds] Trashed File.txt"; - BoxFile uploadedFile = null; - try { - uploadedFile = uploadFileToUniqueFolderWithSomeContent(api, fileName); - uploadedFile.delete(); - trash.restoreFile(uploadedFile.getID()); - - assertFileIsNotTrashed(trash, uploadedFile); - assertThat(rootFolder, hasItem(Matchers.hasProperty("ID", equalTo(uploadedFile.getID())))); - } finally { - deleteFile(uploadedFile); - } - - } - - @Test - public void restoreTrashedFileWithNewNameSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxTrash trash = new BoxTrash(api); - BoxFolder rootFolder = getUniqueFolder(api); - String fileName = "[restoreTrashedFileWithNewNameSucceeds] Trashed File.txt"; - String restoredFileName = "[restoreTrashedFileWithNewNameSucceeds] Restored File.txt"; - BoxFile uploadedFile = null; - try { - uploadedFile = uploadFileToUniqueFolderWithSomeContent(api, fileName); - uploadedFile.delete(); - BoxFile.Info restoredFileInfo = trash.restoreFile(uploadedFile.getID(), restoredFileName, null); - - assertThat(restoredFileInfo.getName(), is(equalTo(restoredFileName))); - assertFileIsNotTrashed(trash, uploadedFile); - assertThat(rootFolder, hasItem(Matchers.hasProperty("ID", equalTo(uploadedFile.getID())))); - } finally { - deleteFile(uploadedFile); - } - } - - private void assertFileIsNotTrashed(BoxTrash trash, BoxFile file) { - try { - trash.getFileInfo(file.getID(), "id"); - } catch (BoxAPIResponseException e) { - assertThat(e.getResponseCode(), is(404)); - } - } - - private void assertFolderIsNotTrashed(BoxTrash trash, BoxFolder folder) { - try { - trash.getFolderInfo(folder.getID(), "id"); - } catch (BoxAPIResponseException e) { - assertThat(e.getResponseCode(), is(404)); - } - } -} diff --git a/src/intTest/java/com/box/sdk/BoxUserIT.java b/src/intTest/java/com/box/sdk/BoxUserIT.java deleted file mode 100644 index 28b05649d..000000000 --- a/src/intTest/java/com/box/sdk/BoxUserIT.java +++ /dev/null @@ -1,175 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; -import static com.box.sdk.Retry.retry; -import static com.box.sdk.internal.utils.CollectionUtils.createListFrom; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.emptyOrNullString; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.greaterThanOrEqualTo; -import static org.hamcrest.Matchers.hasItem; -import static org.hamcrest.Matchers.hasSize; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.not; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.net.URL; -import java.net.URLDecoder; -import java.util.Calendar; -import java.util.Collection; -import java.util.UUID; -import java.util.logging.Level; -import java.util.logging.Logger; -import okhttp3.OkHttpClient; -import org.hamcrest.Matchers; -import org.junit.BeforeClass; -import org.junit.Test; - -/** - * {@link BoxUser} related tests. - */ -public class BoxUserIT { - - private static final String NEW_USER_LOGIN = UUID.randomUUID() + "@boz.com"; - private static final String NEW_USER_NAME = UUID.randomUUID().toString(); - - @BeforeClass - public static void cleanup() { - BoxAPIConnection api = jwtApiForServiceAccount(); - for (BoxUser.Info user : BoxUser.getAllEnterpriseUsers(api, NEW_USER_LOGIN)) { - user.getResource().delete(false, true); - } - Logger.getLogger(OkHttpClient.class.getName()).setLevel(Level.FINE); - } - - @Test(timeout = 10000) - public void getCurrentUserInfoIsCorrect() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxUser user = BoxUser.getCurrentUser(api); - BoxUser.Info info = user.getInfo(BoxUser.ALL_FIELDS); - - assertNotNull(info.getEnterprise().getID()); - assertNotNull(info.getEnterprise().getName()); - } - - @Test(timeout = 10000) - public void createAndForcefullyDeleteEnterpriseUser() { - BoxAPIConnection api = jwtApiForServiceAccount(); - // Since deleting users happens in a separate process in the backend - // it is really an asynchronous call. So we have to use a new user in - // this test in case the previous user's deletion hasn't completed. - - BoxUser.Info createdUserInfo = BoxUser.createEnterpriseUser(api, NEW_USER_LOGIN, NEW_USER_NAME); - - assertNotNull(createdUserInfo.getID()); - assertEquals(NEW_USER_NAME, createdUserInfo.getName()); - assertEquals(NEW_USER_LOGIN, createdUserInfo.getLogin()); - - createdUserInfo.getResource().delete(false, true); - - Iterable users = BoxUser.getAllEnterpriseUsers(api, NEW_USER_LOGIN); - assertThat(createListFrom(users), Matchers.hasSize(0)); - } - - @Test(timeout = 10000) - public void createAndDeleteEnterpriseUser() { - BoxAPIConnection api = jwtApiForServiceAccount(); - // Since deleting users happens in a separate process in the backend - // it is really an asynchronous call. So we have to use a new user in - // this test in case the previous user's deletion hasn't completed. - - BoxUser.Info createdUserInfo = BoxUser.createEnterpriseUser(api, NEW_USER_LOGIN, NEW_USER_NAME); - - assertNotNull(createdUserInfo.getID()); - assertEquals(NEW_USER_NAME, createdUserInfo.getName()); - assertEquals(NEW_USER_LOGIN, createdUserInfo.getLogin()); - - createdUserInfo.getResource().delete(); - - Iterable users = BoxUser.getAllEnterpriseUsers(api, NEW_USER_LOGIN); - assertThat(createListFrom(users), Matchers.hasSize(0)); - } - - @Test(timeout = 10000) - public void getMembershipsHasCorrectMemberships() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String groupName = "[getMembershipsHasCorrectMemberships] Test Group"; - BoxUser user = BoxUser.getCurrentUser(api); - BoxGroupMembership.GroupRole groupRole = BoxGroupMembership.GroupRole.ADMIN; - - BoxGroup group = BoxGroup.createGroup(api, groupName).getResource(); - BoxGroupMembership.Info membershipInfo = group.addMembership(user, groupRole); - String membershipID = membershipInfo.getID(); - - Collection memberships = user.getMemberships(); - - assertThat(memberships, hasSize(greaterThanOrEqualTo(1))); - assertThat(memberships, hasItem(Matchers.hasProperty("ID", equalTo(membershipID)))); - - group.delete(); - } - - @Test(timeout = 10000) - public void updateUserInfo() { - BoxAPIConnection api = jwtApiForServiceAccount(); - final String login = "login3+" + Calendar.getInstance().getTimeInMillis() + "@boz.com"; - final String originalName = "original name"; - final String updatedName = "updated name"; - - BoxUser.Info userInfo = BoxUser.createEnterpriseUser(api, login, originalName); - userInfo.setName(updatedName); - - BoxUser user = userInfo.getResource(); - user.updateInfo(userInfo, "name"); - - assertEquals(updatedName, userInfo.getName()); - - user.delete(false, false); - } - - @Test(timeout = 60000) - public void uploadGetAndDeleteAvatar() throws IOException, InterruptedException { - // given - BoxAPIConnection api = jwtApiForServiceAccount(); - String filePath = getSampleFilePath("red_100x100.png"); - BoxUser user = new BoxUser(api, TestConfig.getUserId()); - - // when - AvatarUploadResponse response = user.uploadAvatar(new File(filePath)); - - // then - assertThat(response.getSmall(), not(emptyOrNullString())); - assertThat(response.getLarge(), not(emptyOrNullString())); - assertThat(response.getPreview(), not(emptyOrNullString())); - - retry(() -> { - try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) { - user.downloadAvatar(outputStream); - assertTrue("Could not read avatar binary data", outputStream.size() > 0); - } catch (IOException e) { - throw new RuntimeException(e); - } - }, 5, 1000); - - // when - user.deleteAvatar(); - - // then - try { - user.downloadAvatar(new ByteArrayOutputStream()); - } catch (BoxAPIException e) { - assertThat(e.getResponseCode(), is(404)); - } - } - - private String getSampleFilePath(String fileName) throws UnsupportedEncodingException { - URL fileURL = this.getClass().getResource("/sample-files/" + fileName); - return URLDecoder.decode(fileURL.getFile(), "utf-8"); - } -} diff --git a/src/intTest/java/com/box/sdk/BoxWebHookIT.java b/src/intTest/java/com/box/sdk/BoxWebHookIT.java deleted file mode 100644 index 6206027db..000000000 --- a/src/intTest/java/com/box/sdk/BoxWebHookIT.java +++ /dev/null @@ -1,213 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; -import static com.box.sdk.BoxWebHook.Trigger.FOLDER_COPIED; -import static com.box.sdk.BoxWebHook.Trigger.FOLDER_DOWNLOADED; -import static com.box.sdk.BoxWebHook.Trigger.SIGN_REQUEST_COMPLETED; -import static com.box.sdk.BoxWebHook.Trigger.SIGN_REQUEST_DECLINED; -import static com.box.sdk.BoxWebHook.Trigger.SIGN_REQUEST_EXPIRED; -import static com.box.sdk.CleanupTools.deleteFile; -import static com.box.sdk.CleanupTools.deleteFolder; -import static com.box.sdk.UniqueTestFolder.getUniqueFolder; -import static com.box.sdk.UniqueTestFolder.randomizeName; -import static com.box.sdk.UniqueTestFolder.removeUniqueFolder; -import static com.box.sdk.UniqueTestFolder.setupUniqeFolder; -import static com.box.sdk.UniqueTestFolder.uploadFileToUniqueFolderWithSomeContent; -import static com.box.sdk.UniqueTestFolder.uploadSampleFileToUniqueFolder; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.hasItem; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.not; -import static org.hamcrest.Matchers.notNullValue; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; -import org.hamcrest.Matchers; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - -/** - * {@link BoxWebHook} related integration tests. - */ -public class BoxWebHookIT { - - @BeforeClass - public static void setup() { - setupUniqeFolder(); - } - - @AfterClass - public static void afterClass() { - removeUniqueFolder(); - } - - @Test - public void createWebHookFileSucceeds() throws IOException { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[createWebhook] Test File.txt"; - - BoxFile uploadedFile = null; - - try { - uploadedFile = uploadFileToUniqueFolderWithSomeContent(api, fileName); - URL address = new URL("https://www.google.com"); - BoxWebHook.Info info = BoxWebHook.create(uploadedFile, address, - BoxWebHook.Trigger.FILE_PREVIEWED, BoxWebHook.Trigger.FILE_LOCKED); - - assertThat(info.getID(), is(notNullValue())); - assertThat(info.getAddress(), is(equalTo(address))); - assertThat(info.getTarget().getType(), is(equalTo(BoxResource.getResourceType(BoxFile.class)))); - assertThat(info.getTarget().getId(), is(equalTo(uploadedFile.getID()))); - assertThat(info.getTriggers(), is(equalTo(this.toSet( - new BoxWebHook.Trigger[]{BoxWebHook.Trigger.FILE_PREVIEWED, BoxWebHook.Trigger.FILE_LOCKED})))); - - info.getResource().delete(); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void createWebHookFolderSucceeds() throws IOException { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - String folderName = "[createWebhook] Folder"; - BoxFolder folder = null; - - try { - folder = rootFolder.createFolder(folderName).getResource(); - URL address = new URL("https://www.google.com"); - BoxWebHook.Info info = BoxWebHook.create(folder, address, FOLDER_DOWNLOADED, FOLDER_COPIED); - - assertThat(info.getID(), is(notNullValue())); - assertThat(info.getAddress(), is(equalTo(address))); - assertThat(info.getTarget().getType(), is(equalTo(BoxResource.getResourceType(BoxFolder.class)))); - assertThat(info.getTarget().getId(), is(equalTo(folder.getID()))); - assertThat(info.getTriggers(), - is(equalTo(this.toSet(new BoxWebHook.Trigger[]{FOLDER_COPIED, FOLDER_DOWNLOADED})))); - - info.getResource().delete(); - } finally { - deleteFolder(folder); - } - } - - @Test - public void listWebHooksSucceeds() throws IOException { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "[listWebhooks] Test File.txt"; - BoxFile uploadedFile = null; - - try { - uploadedFile = uploadFileToUniqueFolderWithSomeContent(api, fileName); - URL address = new URL("https://www.google.com"); - BoxWebHook.Info info = BoxWebHook.create(uploadedFile, address, BoxWebHook.Trigger.FILE_PREVIEWED); - Iterable webhooks = BoxWebHook.all(api); - - assertThat(webhooks, hasItem(Matchers.hasProperty("ID", equalTo(info.getID())))); - - info.getResource().delete(); - - webhooks = BoxWebHook.all(api); - assertThat(webhooks, not(hasItem(Matchers.hasProperty("ID", equalTo(info.getID()))))); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void updateWebHookInfoSucceeds() throws IOException { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = BoxFolder.getRootFolder(api); - String fileName = "[updateWebHookInfoSucceeds] Test File.txt"; - byte[] fileBytes = "Non-empty string".getBytes(StandardCharsets.UTF_8); - - InputStream uploadStream = new ByteArrayInputStream(fileBytes); - BoxFile uploadedFile = rootFolder.uploadFile(uploadStream, fileName).getResource(); - - try { - URL address = new URL("https://www.google.com"); - BoxWebHook webHook = BoxWebHook.create(uploadedFile, address, - BoxWebHook.Trigger.FILE_PREVIEWED, BoxWebHook.Trigger.FILE_LOCKED).getResource(); - - URL newAddress = new URL("https://www.yahoo.com"); - - BoxWebHook.Info newInfo = webHook.new Info(); - newInfo.setTriggers(BoxWebHook.Trigger.FILE_UNLOCKED); - newInfo.setAddress(newAddress); - - webHook.updateInfo(newInfo); - - assertThat(newInfo.getAddress(), is(equalTo(newAddress))); - assertThat(newInfo.getTriggers(), is(equalTo( - this.toSet(new BoxWebHook.Trigger[]{BoxWebHook.Trigger.FILE_UNLOCKED}) - ))); - - webHook.delete(); - } finally { - deleteFile(uploadedFile); - } - } - - @Test - public void createWebHookSignRequestOnFileSucceeds() throws IOException { - BoxAPIConnection api = jwtApiForServiceAccount(); - String fileName = "file_to_sign.pdf"; - - BoxFile file = null; - try { - file = uploadSampleFileToUniqueFolder(api, fileName); - URL address = new URL("https://www.google.com"); - - BoxWebHook.Info webHookInfo = BoxWebHook.create( - file, address, SIGN_REQUEST_DECLINED, SIGN_REQUEST_EXPIRED, SIGN_REQUEST_COMPLETED - ); - - assertThat(webHookInfo.getID(), is(notNullValue())); - assertThat(webHookInfo.getAddress(), is(equalTo(address))); - assertThat(webHookInfo.getTarget().getType(), is(equalTo(BoxResource.getResourceType(BoxFile.class)))); - assertThat(webHookInfo.getTarget().getId(), is(equalTo(file.getID()))); - assertThat(webHookInfo.getTriggers(), is(equalTo(this.toSet( - new BoxWebHook.Trigger[]{SIGN_REQUEST_DECLINED, SIGN_REQUEST_EXPIRED, SIGN_REQUEST_COMPLETED})))); - } finally { - deleteFile(file); - } - } - - @Test - public void createWebHookSignRequestOnFolderSucceeds() throws IOException { - BoxAPIConnection api = jwtApiForServiceAccount(); - - BoxFolder folder = null; - try { - folder = getUniqueFolder(api) - .createFolder(randomizeName("createWebHookSignRequestOnFolderSucceeds")) - .getResource(); - URL address = new URL("https://www.google.com"); - - BoxWebHook.Info webHookInfo = BoxWebHook.create( - folder, address, SIGN_REQUEST_DECLINED, SIGN_REQUEST_EXPIRED, SIGN_REQUEST_COMPLETED - ); - - assertThat(webHookInfo.getID(), is(notNullValue())); - assertThat(webHookInfo.getAddress(), is(equalTo(address))); - assertThat(webHookInfo.getTarget().getType(), is(equalTo(BoxResource.getResourceType(BoxFolder.class)))); - assertThat(webHookInfo.getTarget().getId(), is(equalTo(folder.getID()))); - assertThat(webHookInfo.getTriggers(), is(equalTo(this.toSet( - new BoxWebHook.Trigger[]{SIGN_REQUEST_DECLINED, SIGN_REQUEST_EXPIRED, SIGN_REQUEST_COMPLETED})))); - } finally { - deleteFolder(folder); - } - } - - private Set toSet(T[] values) { - return new HashSet<>(Arrays.asList(values)); - } -} diff --git a/src/intTest/java/com/box/sdk/BoxWebLinkIT.java b/src/intTest/java/com/box/sdk/BoxWebLinkIT.java deleted file mode 100644 index 7540cde6e..000000000 --- a/src/intTest/java/com/box/sdk/BoxWebLinkIT.java +++ /dev/null @@ -1,197 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; -import static com.box.sdk.BoxSharedLink.Access.OPEN; -import static com.box.sdk.CleanupTools.deleteFolder; -import static com.box.sdk.UniqueTestFolder.getUniqueFolder; -import static com.box.sdk.UniqueTestFolder.removeUniqueFolder; -import static com.box.sdk.UniqueTestFolder.setupUniqeFolder; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.hasItem; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.nullValue; - -import com.box.sdk.sharedlink.BoxSharedLinkWithoutPermissionsRequest; -import java.net.MalformedURLException; -import java.net.URL; -import org.hamcrest.Matchers; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - -/** - * {@link BoxWebLink} related integration tests. - */ -public class BoxWebLinkIT { - - @BeforeClass - public static void beforeClass() throws Exception { - setupUniqeFolder(); - } - - @AfterClass - public static void afterClass() throws Exception { - removeUniqueFolder(); - } - - @Test - public void copyWebLinkSucceeds() throws MalformedURLException { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - String originalFileName = "[copyWebLinkSucceeds] Original WebLink"; - String newFileName = "[copyWebLinkSucceeds] New WebLink"; - URL url = new URL("https://api.box.com"); - String description = "[copyWebLinkSucceeds] Original WebLink"; - - BoxWebLink uploadedWebLink = rootFolder.createWebLink(originalFileName, url, description).getResource(); - BoxWebLink.Info uploadedWebLinkInfo = uploadedWebLink.getInfo(); - - BoxWebLink.Info copiedWebLinkInfo = uploadedWebLink.copy(rootFolder, newFileName); - BoxWebLink copiedWebLink = copiedWebLinkInfo.getResource(); - - assertThat(copiedWebLinkInfo.getLinkURL(), equalTo(uploadedWebLinkInfo.getLinkURL())); - assertThat(copiedWebLinkInfo.getDescription(), equalTo(uploadedWebLinkInfo.getDescription())); - - uploadedWebLink.delete(); - copiedWebLink.delete(); - } - - @Test - public void moveWebLinkSucceeds() throws MalformedURLException { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - String fileName = "[moveWebLinkSucceeds] Test WebLink"; - URL url = new URL("https://api.box.com"); - String description = "[moveWebLinkSucceeds] Test WebLink"; - String folderName = "[moveWebLinkSucceeds] Destination Folder"; - - BoxWebLink uploadedWebLink = rootFolder.createWebLink(fileName, url, description).getResource(); - - BoxFolder destinationFolder = rootFolder.createFolder(folderName).getResource(); - uploadedWebLink.move(destinationFolder); - - assertThat(destinationFolder, - hasItem(Matchers.hasProperty("ID", equalTo(uploadedWebLink.getID())))); - - uploadedWebLink.delete(); - destinationFolder.delete(false); - } - - @Test - public void getInfoWithOnlyTheURLField() throws MalformedURLException { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - String fileName = "[getInfoWithOnlyTheURLField] Test WebLink"; - URL url = new URL("https://api.box.com"); - String description = "[getInfoWithOnlyTheURLField] Test WebLink"; - - BoxWebLink uploadedWebLink = rootFolder.createWebLink(fileName, url, description).getResource(); - BoxWebLink.Info uploadedLinkInfo = uploadedWebLink.getInfo("url"); - - assertThat(uploadedLinkInfo.getLinkURL(), is(equalTo(url))); - assertThat(uploadedLinkInfo.getDescription(), is(nullValue())); - - uploadedLinkInfo.getResource().delete(); - } - - @Test - public void getInfoWithAllFields() throws MalformedURLException { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - String fileName = "[getInfoWithAllFields] Test WebLink"; - URL url = new URL("https://api.box.com"); - String description = "[getInfoWithAllFields] Test WebLink"; - - BoxWebLink uploadedWebLink = rootFolder.createWebLink(fileName, url, description).getResource(); - BoxWebLink.Info uploadedLinkInfo = uploadedWebLink.getInfo(BoxWebLink.ALL_FIELDS); - - assertThat(uploadedLinkInfo.getName(), is(equalTo(fileName))); - assertThat(uploadedLinkInfo.getLinkURL(), is(equalTo(url))); - assertThat(uploadedLinkInfo.getDescription(), is(equalTo(description))); - - uploadedLinkInfo.getResource().delete(); - } - - @Test - public void updateLinkWithSpecialCharsInNameSucceeds() throws MalformedURLException { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - String originalFileName = "[updateLinkWithSpecialCharsInNameSucceeds] abc\";def"; - URL url = new URL("https://api.box.com"); - String description = "[updateLinkWithSpecialCharsInNameSucceeds] Test WebLink"; - - BoxWebLink.Info uploadedWebLinkInfo = rootFolder.createWebLink(originalFileName, url, description); - - assertThat(uploadedWebLinkInfo.getName(), is(equalTo(originalFileName))); - - uploadedWebLinkInfo.getResource().delete(); - } - - @Test - public void updateLinkInfoSucceeds() throws MalformedURLException { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - String originalFileName = "[updateLinkInfoSucceeds] Original Name"; - String newFileName = "[updateLinkInfoSucceeds] New Name"; - URL url = new URL("https://api.box.com"); - String description = "[updateLinkWithSpecialCharsInNameSucceeds] Test WebLink"; - - BoxWebLink uploadedWebLink = rootFolder.createWebLink(originalFileName, url, description).getResource(); - - BoxWebLink.Info newInfo = uploadedWebLink.new Info(); - newInfo.setName(newFileName); - uploadedWebLink.updateInfo(newInfo); - - assertThat(newInfo.getName(), is(equalTo(newFileName))); - - uploadedWebLink.delete(); - } - - @Test - public void renameWebLinkSucceeds() throws MalformedURLException { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - String originalFileName = "[updateLinkInfoSucceeds] Original Name"; - String newFileName = "[updateLinkInfoSucceeds] New Name"; - URL url = new URL("https://api.box.com"); - String description = "[updateLinkWithSpecialCharsInNameSucceeds] Test WebLink"; - - BoxWebLink uploadedWebLink = rootFolder.createWebLink(originalFileName, url, description).getResource(); - - uploadedWebLink.rename(newFileName); - BoxWebLink.Info newInfo = uploadedWebLink.getInfo(); - - assertThat(newInfo.getName(), is(equalTo(newFileName))); - - uploadedWebLink.delete(); - } - - @Test - public void setsVanityNameOnASharedLink() throws MalformedURLException { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = getUniqueFolder(api); - URL url = new URL("https://api.box.com"); - BoxFolder folder = null; - try { - folder = rootFolder.createFolder("setsVanityNameOnASharedLink").getResource(); - BoxWebLink weblink = folder - .createWebLink("[setsVanityNameOnASharedLink] web link", url, "description") - .getResource(); - - String vanityName = "myCustomName-" + System.currentTimeMillis(); - BoxSharedLinkWithoutPermissionsRequest request = new BoxSharedLinkWithoutPermissionsRequest() - .access(OPEN) - .vanityName(vanityName) - .password("my-very-secret-password"); - BoxSharedLink linkWithVanityName = weblink.createSharedLink(request); - - assertThat(linkWithVanityName.getVanityName(), is(vanityName)); - assertThat(weblink.getInfo().getSharedLink().getVanityName(), is(vanityName)); - assertThat(linkWithVanityName.getAccess(), is(OPEN)); - assertThat(linkWithVanityName.getIsPasswordEnabled(), is(true)); - } finally { - deleteFolder(folder); - } - } -} diff --git a/src/intTest/java/com/box/sdk/BoxZipIT.java b/src/intTest/java/com/box/sdk/BoxZipIT.java deleted file mode 100644 index a00e7a29e..000000000 --- a/src/intTest/java/com/box/sdk/BoxZipIT.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.box.sdk; - - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; -import static com.box.sdk.BoxZipDownloadStatus.State.IN_PROGRESS; -import static com.box.sdk.BoxZipDownloadStatus.State.SUCCEEDED; -import static com.box.sdk.CleanupTools.deleteFile; -import static com.box.sdk.CleanupTools.deleteFolder; -import static com.box.sdk.UniqueTestFolder.getUniqueFolder; -import static com.box.sdk.UniqueTestFolder.removeUniqueFolder; -import static com.box.sdk.UniqueTestFolder.setupUniqeFolder; -import static com.box.sdk.UniqueTestFolder.uploadSampleFileToUniqueFolder; -import static org.hamcrest.CoreMatchers.anyOf; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.MatcherAssert.assertThat; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.RandomAccessFile; -import java.net.URL; -import java.net.URLDecoder; -import java.util.ArrayList; -import org.junit.AfterClass; -import org.junit.Assert; -import org.junit.BeforeClass; -import org.junit.Test; - -/** - * {@link BoxZip} related integration tests. - */ -public class BoxZipIT { - @BeforeClass - public static void setup() { - setupUniqeFolder(); - } - - @AfterClass - public static void tearDown() { - removeUniqueFolder(); - } - - protected static byte[] readAllBytes(String fileName) throws IOException { - RandomAccessFile f = new RandomAccessFile(fileName, "r"); - byte[] b = new byte[(int) f.length()]; - f.read(b); - return b; - } - - @Test - public void createAndDownloadZipSucceeds() throws IOException { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder folder = getUniqueFolder(api); - String fileName = "small_file.rtf"; - BoxFile uploadedFile = null; - BoxFolder createdFolder = null; - try { - createdFolder = folder.createFolder("Zip Test Folder").getResource(); - uploadedFile = uploadSampleFileToUniqueFolder(api, fileName); - uploadedFile.copy(createdFolder); - - ArrayList items = new ArrayList<>(); - BoxZipItem file = new BoxZipItem("file", uploadedFile.getID()); - BoxZipItem subFolder = new BoxZipItem("folder", createdFolder.getID()); - items.add(file); - items.add(subFolder); - - ByteArrayOutputStream downloadStream = new ByteArrayOutputStream(); - BoxZipDownloadStatus zipDownloadStatus = new BoxZip(api).download("zip_test", items, downloadStream); - byte[] downloadedFileContent = downloadStream.toByteArray(); - - // File bytes for zips will not always be equal since they are being generated by every test. - // To approximate that the files are equal, the assertion below checks the lengths. - String zipFileName = "zip_test.zip"; - URL zipFileURL = this.getClass().getResource("/sample-files/" + zipFileName); - String zipFilePath = URLDecoder.decode(zipFileURL.getFile(), "utf-8"); - byte[] zipFileContent = readAllBytes(zipFilePath); - Assert.assertEquals(zipFileContent.length, downloadedFileContent.length); - assertThat(zipDownloadStatus.getState(), anyOf(is(SUCCEEDED), is(IN_PROGRESS))); - } finally { - deleteFile(uploadedFile); - deleteFolder(createdFolder); - } - } - -} - diff --git a/src/intTest/java/com/box/sdk/CleanupTools.java b/src/intTest/java/com/box/sdk/CleanupTools.java deleted file mode 100644 index 3d5bacf2a..000000000 --- a/src/intTest/java/com/box/sdk/CleanupTools.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; - -import java.util.Arrays; -import java.util.Optional; - -final class CleanupTools { - private CleanupTools() { - // hiding constructor - } - - static void removeAllowedDomains(String... names) { - BoxCollaborationAllowlist.getAll(jwtApiForServiceAccount()) - .forEach(l -> { - Optional isDomainMatching = Arrays.stream(names) - .filter(n -> l.getDomain().contains(n)) - .findFirst(); - if (isDomainMatching.isPresent()) { - l.getResource().delete(); - } - }); - } - - static void removeAllGroups() { - for (BoxGroup.Info group : BoxGroup.getAllGroups(jwtApiForServiceAccount())) { - group.getResource().delete(); - } - } - - static void deleteFile(BoxFile file) { - Optional.ofNullable(file).ifPresent(BoxFile::delete); - } - - static void deleteFolder(BoxFolder folder) { - Optional.ofNullable(folder).ifPresent(f -> f.delete(true)); - } - - static void deleteGroup(BoxGroup group) { - if (group != null) { - group.delete(); - } - } - - static void deleteUser(BoxUser user) { - if (user != null) { - user.delete(false, false); - } - } -} diff --git a/src/intTest/java/com/box/sdk/EventLogIT.java b/src/intTest/java/com/box/sdk/EventLogIT.java deleted file mode 100644 index 3eb6607d6..000000000 --- a/src/intTest/java/com/box/sdk/EventLogIT.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.not; - -import java.util.Date; -import java.util.TimeZone; -import org.junit.Test; - -public class EventLogIT { - - @Test - public void getEnterpriseEventsReturnsAtLeastOneEvent() { - BoxAPIConnection api = jwtApiForServiceAccount(); - Date after = new Date(0L); - Date before = new Date(System.currentTimeMillis()); - - EnterpriseEventsRequest request = new EnterpriseEventsRequest().after(after).before(before); - EventLog events = EventLog.getEnterpriseEvents(api, request); - - assertThat(events.getSize(), is(not(0))); - assertThat(events.getStartDate(), is(equalTo(after))); - assertThat(events.getEndDate(), is(equalTo(before))); - } - - @Test - public void getEnterpriseEventsGmtPlus530() { - BoxAPIConnection api = jwtApiForServiceAccount(); - System.setProperty("user.timezone", "Asia/Calcutta"); - TimeZone.setDefault(null); - Date after = new Date(0L); - Date before = new Date(System.currentTimeMillis()); - - EnterpriseEventsRequest request = new EnterpriseEventsRequest().after(after).before(before); - EventLog events = EventLog.getEnterpriseEvents(api, request); - - assertThat(events.getSize(), is(not(0))); - assertThat(events.getStartDate(), is(equalTo(after))); - assertThat(events.getEndDate(), is(equalTo(before))); - } - - @Test - public void getEnterpriseEventsGmtPlus530WithLimit() { - BoxAPIConnection api = jwtApiForServiceAccount(); - System.setProperty("user.timezone", "Asia/Calcutta"); - TimeZone.setDefault(null); - Date after = new Date(0L); - Date before = new Date(System.currentTimeMillis()); - int limit = 5; - - EnterpriseEventsRequest request = new EnterpriseEventsRequest().after(after).before(before).limit(limit); - EventLog events = EventLog.getEnterpriseEvents(api, request); - - assertThat(events.getSize(), is(not(0))); - assertThat(events.getStartDate(), is(equalTo(after))); - assertThat(events.getEndDate(), is(equalTo(before))); - assertThat(events.getLimit(), is(equalTo(limit))); - } - - @Test - public void getEnterpriseEventsStreamReturnsAtLeastOneEvent() { - BoxAPIConnection api = jwtApiForServiceAccount(); - - EnterpriseEventsStreamRequest request = new EnterpriseEventsStreamRequest(); - EventLog events = EventLog.getEnterpriseEventsStream(api, request); - - assertThat(events.getSize(), is(not(0))); - } - - @Test - public void getEnterpriseEventsReturnsAtLeastOneEventDeprecated() { - BoxAPIConnection api = jwtApiForServiceAccount(); - Date after = new Date(0L); - Date before = new Date(System.currentTimeMillis()); - EventLog events = EventLog.getEnterpriseEvents(api, new EnterpriseEventsRequest().after(after).before(before)); - - assertThat(events.getSize(), is(not(0))); - assertThat(events.getStartDate(), is(equalTo(after))); - assertThat(events.getEndDate(), is(equalTo(before))); - } - - @Test - public void getEnterpriseEventsGmtPlus530Deprecated() { - BoxAPIConnection api = jwtApiForServiceAccount(); - System.setProperty("user.timezone", "Asia/Calcutta"); - TimeZone.setDefault(null); - Date after = new Date(0L); - Date before = new Date(System.currentTimeMillis()); - EventLog events = EventLog.getEnterpriseEvents(api, new EnterpriseEventsRequest().after(after).before(before)); - - assertThat(events.getSize(), is(not(0))); - assertThat(events.getStartDate(), is(equalTo(after))); - assertThat(events.getEndDate(), is(equalTo(before))); - } - - @Test - public void getEnterpriseEventsGmtPlus530WithLimitDeprecated() { - BoxAPIConnection api = jwtApiForServiceAccount(); - System.setProperty("user.timezone", "Asia/Calcutta"); - TimeZone.setDefault(null); - Date after = new Date(0L); - Date before = new Date(System.currentTimeMillis()); - int limit = 5; - EventLog events = EventLog.getEnterpriseEvents( - api, new EnterpriseEventsRequest().after(after).before(before).limit(limit) - ); - - assertThat(events.getSize(), is(not(0))); - assertThat(events.getStartDate(), is(equalTo(after))); - assertThat(events.getEndDate(), is(equalTo(before))); - assertThat(events.getLimit(), is(equalTo(limit))); - } -} diff --git a/src/intTest/java/com/box/sdk/EventStreamIT.java b/src/intTest/java/com/box/sdk/EventStreamIT.java deleted file mode 100644 index 1971bcd1a..000000000 --- a/src/intTest/java/com/box/sdk/EventStreamIT.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; -import static com.box.sdk.UniqueTestFolder.randomizeName; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.is; - -import java.util.concurrent.LinkedBlockingQueue; -import java.util.concurrent.TimeUnit; -import org.junit.Test; - -public class EventStreamIT { - - @Test - public void receiveEventsForFolderCreateAndFolderDelete() throws InterruptedException { - final LinkedBlockingQueue observedEvents = new LinkedBlockingQueue<>(); - BoxAPIConnection api = jwtApiForServiceAccount(); - EventStream stream = new EventStream(api); - stream.addListener(new EventListener() { - @Override - public void onEvent(BoxEvent event) { - observedEvents.add(event); - } - - @Override - public void onNextPosition(long position) { - } - - @Override - public boolean onException(Throwable e) { - return true; - } - }); - stream.start(); - - BoxFolder rootFolder = BoxFolder.getRootFolder(api); - BoxFolder childFolder = rootFolder.createFolder( - randomizeName("[receiveEventsForFolderCreateAndFolderDelete] Child Folder") - ).getResource(); - String expectedID = childFolder.getID(); - childFolder.delete(false); - - boolean createdEventFound = false; - boolean deletedEventFound = false; - int timeouts = 0; - while (timeouts < 3 && (!createdEventFound || !deletedEventFound)) { - BoxEvent event = observedEvents.poll(1, TimeUnit.MINUTES); - if (null == event) { - timeouts++; - System.out.println("Time outs: " + timeouts); - continue; - } - BoxResource.Info sourceInfo = event.getSourceInfo(); - // Some events may not have sourceInfo - if (sourceInfo == null) { - continue; - } - BoxResource source = sourceInfo.getResource(); - if (source instanceof BoxFolder) { - BoxFolder sourceFolder = (BoxFolder) source; - if (sourceFolder.getID().equals(expectedID)) { - if (event.getEventType() == BoxEvent.EventType.ITEM_CREATE) { - BoxFolder folder = (BoxFolder) event.getSourceInfo().getResource(); - final String eventFolderID = folder.getID(); - final String childFolderID = childFolder.getID(); - assertThat(eventFolderID, is(equalTo(childFolderID))); - createdEventFound = true; - } - - if (event.getEventType() == BoxEvent.EventType.ITEM_TRASH) { - BoxFolder folder = (BoxFolder) event.getSourceInfo().getResource(); - assertThat(folder.getID(), is(equalTo(childFolder.getID()))); - deletedEventFound = true; - } - } - } - } - - assertThat(createdEventFound, is(true)); - assertThat(deletedEventFound, is(true)); - stream.stop(); - } -} diff --git a/src/intTest/java/com/box/sdk/FileUtils.java b/src/intTest/java/com/box/sdk/FileUtils.java deleted file mode 100644 index 94f32c041..000000000 --- a/src/intTest/java/com/box/sdk/FileUtils.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.box.sdk; - -import static java.lang.String.format; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Random; -import java.util.stream.IntStream; - -/** - * Utility class for working with test files - */ -public final class FileUtils { - - private static final int BUFFER_SIZE = 1000; - - private FileUtils() { - // hide constructor in utility class - } - - /** - * Generates file with random content. Uses BUFFER_SIZE to write generated content in batches. - * Generated file will be removed when JVM Terminates see {@link File#deleteOnExit()} - * - * @param fileName Name of the file to generate - * @param fileSizeInBytes Size of the file to generate. Cannot be lower than BUFFER_SIZE - * @return Generated files. - */ - public static File generate(String fileName, int fileSizeInBytes) { - if (fileSizeInBytes < BUFFER_SIZE) { - throw new IllegalArgumentException(format( - "Provides file size [%d]b must be larger than buffer [%d]b", fileSizeInBytes, BUFFER_SIZE - )); - } - File file = new File(fileName); - try (FileOutputStream outputStream = new FileOutputStream(file)) { - IntStream.range(0, fileSizeInBytes / BUFFER_SIZE + 1).forEach((i) -> { - byte[] bytes = new byte[1000]; - new Random().nextBytes(bytes); - try { - outputStream.write(bytes); - } catch (IOException e) { - throw new RuntimeException(e); - } - }); - } catch (IOException e) { - throw new RuntimeException(format("Failed to create file '%s'", file), e); - } - file.deleteOnExit(); - return file; - } -} diff --git a/src/intTest/java/com/box/sdk/MetadataIT.java b/src/intTest/java/com/box/sdk/MetadataIT.java deleted file mode 100644 index 41c860eb2..000000000 --- a/src/intTest/java/com/box/sdk/MetadataIT.java +++ /dev/null @@ -1,223 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; -import static com.box.sdk.CleanupTools.deleteFolder; -import static com.box.sdk.UniqueTestFolder.getUniqueFolder; -import static com.box.sdk.UniqueTestFolder.removeUniqueFolder; -import static com.box.sdk.UniqueTestFolder.setupUniqeFolder; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.containsInAnyOrder; -import static org.hamcrest.Matchers.hasSize; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; - -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; -import org.hamcrest.Matchers; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - -public class MetadataIT { - - @BeforeClass - public static void beforeClass() { - setupUniqeFolder(); - } - - @AfterClass - public static void afterClass() { - removeUniqueFolder(); - } - - @Test - public void testMetadataPrecisionDouble() { - final double valueDouble = 233333333333333340.0; - BoxAPIConnection api = jwtApiForServiceAccount(); - - long timestamp = Calendar.getInstance().getTimeInMillis(); - String templateKey = "precision" + timestamp; - String fieldKey = "testPrecision"; - - List fields = new ArrayList<>(); - MetadataTemplate.Field valueField = new MetadataTemplate.Field(); - valueField.setKey(fieldKey); - valueField.setType("float"); - valueField.setDisplayName("Value Field"); - fields.add(valueField); - - MetadataTemplate template = MetadataTemplate.createMetadataTemplate(api, "enterprise", - templateKey, "Precision " + timestamp, false, fields); - try { - assertEquals("float", template.getFields().get(0).getType()); - - // Add template to item - Metadata mdValues = new Metadata(); - mdValues.add("/" + fieldKey, valueDouble); - BoxFolder rootFolder = getUniqueFolder(api); - BoxFolder.Info folder = rootFolder.createFolder("Metadata Precision Test " + timestamp); - Metadata actualMD = folder.getResource().createMetadata(templateKey, mdValues); - - assertEquals(templateKey, actualMD.getTemplateName()); - assertEquals(valueDouble, actualMD.getDouble("/" + fieldKey), 0); - } finally { - this.deleteMetadata(api, template); - } - } - - @Test - public void testMultiSelectMetadataCRUD() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder folder = null; - MetadataTemplate template = null; - - try { - long timestamp = Calendar.getInstance().getTimeInMillis(); - String templateKey = "multiselect" + timestamp; - String fieldKey = "testMultiSelect"; - - // Create new template with multiselect field - List fieldOptions = new ArrayList<>(); - fieldOptions.add("foo"); - fieldOptions.add("bar"); - fieldOptions.add("baz"); - fieldOptions.add("quux"); - - List fields = new ArrayList<>(); - MetadataTemplate.Field multiSelectField = new MetadataTemplate.Field(); - multiSelectField.setKey(fieldKey); - multiSelectField.setType("multiSelect"); - multiSelectField.setDisplayName("MultiSelect Field"); - multiSelectField.setOptions(fieldOptions); - fields.add(multiSelectField); - - template = MetadataTemplate.createMetadataTemplate(api, "enterprise", - templateKey, "MultiSelect " + timestamp, false, fields); - - assertEquals("multiSelect", template.getFields().get(0).getType()); - List actualOptions = template.getFields().get(0).getOptions(); - assertEquals("foo", actualOptions.get(0)); - assertEquals("bar", actualOptions.get(1)); - assertEquals("baz", actualOptions.get(2)); - assertEquals("quux", actualOptions.get(3)); - - // Add template to item - Metadata mdValues = new Metadata(); - List values = new ArrayList<>(); - values.add("foo"); - values.add("bar"); - mdValues.add("/" + fieldKey, values); - folder = getUniqueFolder(api).createFolder("Metadata Test " + timestamp).getResource(); - Metadata actualMD = folder.createMetadata(templateKey, mdValues); - - assertEquals(templateKey, actualMD.getTemplateName()); - List multiSelectValues = actualMD.getMultiSelect("/" + fieldKey); - assertThat(multiSelectValues, hasSize(2)); - assertThat(multiSelectValues, containsInAnyOrder("foo", "bar")); - - // Update template with multiselect operations - change existing field and add another multiselect field - List updates = new ArrayList<>(); - - MetadataTemplate.Field newOption = new MetadataTemplate.Field(); - newOption.setKey("blargh"); - MetadataTemplate.FieldOperation add = new MetadataTemplate.FieldOperation(); - add.setOp(MetadataTemplate.Operation.addMultiSelectOption); - add.setFieldKey(fieldKey); - add.setData(newOption); - updates.add(add); - - MetadataTemplate.Field updatedField = new MetadataTemplate.Field(); - updatedField.setKey("foooooo"); - MetadataTemplate.FieldOperation edit = new MetadataTemplate.FieldOperation(); - edit.setOp(MetadataTemplate.Operation.editMultiSelectOption); - edit.setFieldKey(fieldKey); - edit.setMultiSelectOptionKey("foo"); - edit.setData(updatedField); - updates.add(edit); - - MetadataTemplate.FieldOperation remove = new MetadataTemplate.FieldOperation(); - remove.setOp(MetadataTemplate.Operation.removeMultiSelectOption); - remove.setFieldKey(fieldKey); - remove.setMultiSelectOptionKey("baz"); - updates.add(remove); - - MetadataTemplate.FieldOperation reorder = new MetadataTemplate.FieldOperation(); - reorder.setOp(MetadataTemplate.Operation.reorderMultiSelectOptions); - reorder.setFieldKey(fieldKey); - List reorderedFields = new ArrayList<>(); - reorderedFields.add("quux"); - reorderedFields.add("blargh"); - reorderedFields.add("bar"); - reorderedFields.add("foooooo"); - reorder.setMultiSelectOptionKeys(reorderedFields); - updates.add(reorder); - - MetadataTemplate.FieldOperation addField = new MetadataTemplate.FieldOperation(); - MetadataTemplate.Field newField = new MetadataTemplate.Field(); - List opts = new ArrayList<>(); - opts.add("one"); - opts.add("two"); - newField.setKey("otherMultiSelect"); - newField.setDisplayName("Another MultiSelect"); - newField.setType("multiSelect"); - newField.setOptions(opts); - addField.setOp(MetadataTemplate.Operation.addField); - addField.setData(newField); - updates.add(addField); - - MetadataTemplate updatedTemplate = - MetadataTemplate.updateMetadataTemplate(api, "enterprise", templateKey, updates); - - assertThat(updatedTemplate.getFields(), Matchers.hasSize(2)); - for (MetadataTemplate.Field field : updatedTemplate.getFields()) { - - if (field.getKey().equals(fieldKey)) { - assertEquals("multiSelect", field.getType()); - actualOptions = field.getOptions(); - assertEquals("quux", actualOptions.get(0)); - assertEquals("blargh", actualOptions.get(1)); - assertEquals("bar", actualOptions.get(2)); - assertEquals("foooooo", actualOptions.get(3)); - } else if (field.getKey().equals("otherMultiSelect")) { - assertEquals("multiSelect", field.getType()); - actualOptions = field.getOptions(); - assertEquals("one", actualOptions.get(0)); - assertEquals("two", actualOptions.get(1)); - } else { - fail("Incorrect field found on metadata template: " + field.getKey()); - } - } - - // Update instance multiselect field - actualMD.test("/" + fieldKey + "/1", "bar"); - values = new ArrayList<>(); - values.add("two"); - values.add("one"); - actualMD.add("/otherMultiSelect", values); - actualMD.remove("/" + fieldKey + "/0"); - actualMD.add("/" + fieldKey + "/-", "blargh"); - Metadata updatedMD = folder.updateMetadata(actualMD); - - multiSelectValues = updatedMD.getMultiSelect("/" + fieldKey); - assertThat(multiSelectValues, Matchers.hasSize(2)); - assertThat(multiSelectValues, containsInAnyOrder("bar", "blargh")); - multiSelectValues = updatedMD.getMultiSelect("/otherMultiSelect"); - assertThat(multiSelectValues, hasSize(2)); - assertThat(multiSelectValues, containsInAnyOrder("one", "two")); - - // Delete metadata template and folder - } finally { - this.deleteMetadata(api, template); - deleteFolder(folder); - - } - } - - private void deleteMetadata(BoxAPIConnection api, MetadataTemplate template) { - if (template != null) { - MetadataTemplate.deleteMetadataTemplate(api, template.getScope(), template.getTemplateKey()); - } - } - -} diff --git a/src/intTest/java/com/box/sdk/MetadataTemplateIT.java b/src/intTest/java/com/box/sdk/MetadataTemplateIT.java deleted file mode 100644 index e7a2c4f3d..000000000 --- a/src/intTest/java/com/box/sdk/MetadataTemplateIT.java +++ /dev/null @@ -1,325 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; -import static com.box.sdk.CleanupTools.deleteFile; -import static com.box.sdk.CleanupTools.deleteFolder; -import static com.box.sdk.MetadataQuery.OrderBy.ascending; -import static com.box.sdk.UniqueTestFolder.getUniqueFolder; -import static com.box.sdk.UniqueTestFolder.removeUniqueFolder; -import static com.box.sdk.UniqueTestFolder.setupUniqeFolder; -import static java.lang.String.format; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import org.junit.AfterClass; -import org.junit.Assert; -import org.junit.BeforeClass; -import org.junit.Test; - -/** - * {@link MetadataTemplate} related integration tests. - */ -public class MetadataTemplateIT { - @BeforeClass - public static void setup() { - setupUniqeFolder(); - } - - @AfterClass - public static void tearDown() { - removeUniqueFolder(); - } - - @Test - public void createAndDeleteMetadataTemplateSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - - MetadataTemplate.Field ctField = new MetadataTemplate.Field(); - ctField.setType("string"); - ctField.setKey("customerTeam"); - ctField.setDisplayName("Customer Team"); - - MetadataTemplate.Field fyField = new MetadataTemplate.Field(); - fyField.setType("enum"); - fyField.setKey("fy"); - fyField.setDisplayName("FY"); - - List options = new ArrayList<>(); - options.add("FY16"); - options.add("FY17"); - fyField.setOptions(options); - - List fields = new ArrayList<>(); - fields.add(ctField); - fields.add(fyField); - - String scope = "enterprise"; - String templateKey = "documentFlow03"; - MetadataTemplate.createMetadataTemplate( - api, scope, templateKey, "Document Flow 03", false, fields - ); - - MetadataTemplate storedTemplate = MetadataTemplate.getMetadataTemplate(api, templateKey, scope); - Assert.assertNotNull(storedTemplate); - - MetadataTemplate.deleteMetadataTemplate(api, scope, templateKey); - try { - MetadataTemplate.getMetadataTemplate(api, templateKey, scope); - } catch (BoxAPIException e) { - assertEquals(e.getResponseCode(), e.getResponseCode()); - } - } - - @Test - public void updateMetadataTemplateFieldsSucceeds() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String scope = "enterprise"; - String templateKey = "documentFlow03"; - - MetadataTemplate template = MetadataTemplate.createMetadataTemplate( - api, scope, templateKey, templateKey, false, new ArrayList<>() - ); - try { - //Test adding fields - List fieldOperations = this.addFieldsHelper(); - template = MetadataTemplate.updateMetadataTemplate(api, - scope, templateKey, fieldOperations); - Assert.assertNotNull(template); - - boolean foundDeptField = false; - boolean foundCustField = false; - for (MetadataTemplate.Field field : template.getFields()) { - if ("department".equals(field.getKey())) { - assertEquals("enum", field.getType()); - assertEquals("Department", field.getDisplayName()); - assertEquals(2, field.getOptions().size()); - foundDeptField = true; - } else if ("customerTeam".equals(field.getKey())) { - foundCustField = true; - } - } - assertTrue("department field was not found", foundDeptField); - assertTrue("customer field was not found", foundCustField); - - //Test editing fields - fieldOperations.clear(); - - MetadataTemplate.FieldOperation customerFieldOp = new MetadataTemplate.FieldOperation(); - customerFieldOp.setOp(MetadataTemplate.Operation.editField); - customerFieldOp.setFieldKey("customerTeam"); - - MetadataTemplate.Field customerTeam = new MetadataTemplate.Field(); - customerTeam.setDisplayName("Customer Team Renamed"); - customerTeam.setKey("newCustomerTeamKey"); - customerFieldOp.setData(customerTeam); - fieldOperations.add(customerFieldOp); - - MetadataTemplate.FieldOperation editEnumOption = new MetadataTemplate.FieldOperation(); - editEnumOption.setOp(MetadataTemplate.Operation.editEnumOption); - editEnumOption.setFieldKey("department"); - editEnumOption.setEnumOptionKey("Shoes"); - - - MetadataTemplate.Field deptField = new MetadataTemplate.Field(); - deptField.setKey("Baby"); - editEnumOption.setData(deptField); - - fieldOperations.add(editEnumOption); - - template = MetadataTemplate.updateMetadataTemplate(api, - scope, templateKey, fieldOperations); - boolean foundBabyEnumOption = false; - for (MetadataTemplate.Field field : template.getFields()) { - if ("customerTeam".equals(field.getKey())) { - Assert.fail("'customerTeam' field key should have been changed to 'newCustomerTeamKey'"); - } else if ("department".equals(field.getKey())) { - for (String option : field.getOptions()) { - if ("Baby".equals(option)) { - foundBabyEnumOption = true; - break; - } - } - } else if ("newCustomerTeamKey".equals(field.getKey())) { - assertEquals("Display name should have been updated", - "Customer Team Renamed", field.getDisplayName()); - } - } - assertTrue("Baby enum option was not found", foundBabyEnumOption); - - //Test removing fields - fieldOperations.clear(); - - MetadataTemplate.FieldOperation deleteDeptField = new MetadataTemplate.FieldOperation(); - deleteDeptField.setOp(MetadataTemplate.Operation.removeField); - deleteDeptField.setFieldKey("newCustomerTeamKey"); - fieldOperations.add(deleteDeptField); - - MetadataTemplate.FieldOperation deleteEnumOption = new MetadataTemplate.FieldOperation(); - deleteEnumOption.setOp(MetadataTemplate.Operation.removeEnumOption); - deleteEnumOption.setFieldKey("department"); - deleteEnumOption.setEnumOptionKey("Baby"); - - fieldOperations.add(deleteEnumOption); - - template = MetadataTemplate.updateMetadataTemplate(api, scope, templateKey, fieldOperations); - - for (MetadataTemplate.Field field : template.getFields()) { - if ("newCustomerTeamKey".equals(field.getKey())) { - Assert.fail("newCustomerTeamKey field key should have been deleted"); - } else if ("department".equals(field.getKey())) { - for (String option : field.getOptions()) { - if ("Baby".equals(option)) { - Assert.fail("Baby enum option should have been deleted"); - } - } - } - } - } finally { - deleteMetadataTemplate(api, template); - } - } - - @Test - public void getAllMetadataSucceeds() { - BoxFile uploadedFile = null; - BoxAPIConnection api = jwtApiForServiceAccount(); - String scope = "enterprise"; - String templateKey = "documentFlow03"; - MetadataTemplate template = null; - - try { - BoxFolder rootFolder = BoxFolder.getRootFolder(api); - String fileName = "[getAllMetadataSucceeds] Test File.txt"; - byte[] fileBytes = "Non-empty string".getBytes(StandardCharsets.UTF_8); - - InputStream uploadStream = new ByteArrayInputStream(fileBytes); - uploadedFile = rootFolder.uploadFile(uploadStream, fileName).getResource(); - - uploadedFile.createMetadata(new Metadata().add("/firstName", "John").add("/lastName", "Smith")); - Metadata check1 = uploadedFile.getMetadata(); - Assert.assertNotNull(check1); - assertEquals("John", check1.getString("/firstName")); - assertEquals("Smith", check1.getString("/lastName")); - - //Create fields before test - MetadataTemplate.createMetadataTemplate(api, scope, templateKey, templateKey, false, new ArrayList<>()); - List fieldOperations = this.addFieldsHelper(); - - template = MetadataTemplate.updateMetadataTemplate( - api, scope, templateKey, fieldOperations - ); - Assert.assertNotNull(template); - - Metadata customerMetaData = new Metadata(); - customerMetaData.add("/customerTeam", "MyTeam"); - customerMetaData.add("/department", "Beauty"); - - uploadedFile.createMetadata(templateKey, scope, customerMetaData); - - Iterable allMetadata = uploadedFile.getAllMetadata("/firstName", "/lastName"); - Assert.assertNotNull(allMetadata); - Iterator iter = allMetadata.iterator(); - int numTemplates = 0; - while (iter.hasNext()) { - Metadata metadata = iter.next(); - numTemplates++; - if (metadata.getTemplateName().equals("properties")) { - assertEquals("John", metadata.getString("/firstName")); - assertEquals("Smith", metadata.getString("/lastName")); - } - if (metadata.getTemplateName().equals(templateKey)) { - assertEquals("MyTeam", metadata.getString("/customerTeam")); - assertEquals("Beauty", metadata.getString("/department")); - } - } - Assert.assertTrue("Should have at least 2 templates", numTemplates >= 2); - } finally { - deleteFile(uploadedFile); - deleteMetadataTemplate(api, template); - } - } - - @Test - public void executeMetadataTemplateQuery() { - BoxAPIConnection api = jwtApiForServiceAccount(); - String templateKey = "MyTemplate"; - BoxFolder one = null; - BoxFolder two = null; - - MetadataTemplate.Field metadataField = new MetadataTemplate.Field(); - metadataField.setType("float"); - metadataField.setKey("myField"); - metadataField.setDisplayName("Value"); - List fields = new ArrayList<>(); - fields.add(metadataField); - MetadataTemplate template = MetadataTemplate.createMetadataTemplate( - api, "enterprise", templateKey, "My Template", false, fields - ); - try { - - BoxFolder rootFolder = getUniqueFolder(api); - one = rootFolder.createFolder("one").getResource(); - one.createMetadata(templateKey, "enterprise", new Metadata().add("/myField", 102d)); - two = rootFolder.createFolder("two").getResource(); - two.createMetadata(templateKey, "enterprise", new Metadata().add("/myField", 95d)); - - - MetadataQuery query = new MetadataQuery(format("enterprise_%s.MyTemplate", TestConfig.getEnterpriseID())) - .setQuery("myField > :val") - .addParameter("val", 100) - .setOrderBy(ascending("myField")); - BoxResourceIterable result = MetadataTemplate.executeMetadataQuery(api, query); - Iterator iterator = result.iterator(); - BoxItem.Info foundFolder = iterator.next(); - assertThat(foundFolder.getName(), is("one")); - assertThat(iterator.hasNext(), is(false)); - } finally { - deleteMetadataTemplate(api, template); - deleteFolder(one); - deleteFolder(two); - } - } - - private List addFieldsHelper() { - List fieldOperations = new ArrayList<>(); - MetadataTemplate.FieldOperation customerFieldOp = new MetadataTemplate.FieldOperation(); - customerFieldOp.setOp(MetadataTemplate.Operation.addField); - - MetadataTemplate.Field customerTeam = new MetadataTemplate.Field(); - customerTeam.setType("string"); - customerTeam.setKey("customerTeam"); - customerTeam.setDisplayName("Customer Team"); - customerFieldOp.setData(customerTeam); - fieldOperations.add(customerFieldOp); - - MetadataTemplate.FieldOperation departmentFieldOp = new MetadataTemplate.FieldOperation(); - departmentFieldOp.setOp(MetadataTemplate.Operation.addField); - - MetadataTemplate.Field deptField = new MetadataTemplate.Field(); - deptField.setType("enum"); - deptField.setKey("department"); - deptField.setDisplayName("Department"); - - List options = new ArrayList<>(); - options.add("Beauty"); - options.add("Shoes"); - deptField.setOptions(options); - departmentFieldOp.setData(deptField); - - fieldOperations.add(departmentFieldOp); - return fieldOperations; - } - - private static void deleteMetadataTemplate(BoxAPIConnection api, MetadataTemplate template) { - if (template != null) { - MetadataTemplate.deleteMetadataTemplate(api, template.getScope(), template.getTemplateKey()); - } - } -} diff --git a/src/intTest/java/com/box/sdk/RetentionPolicyUtils.java b/src/intTest/java/com/box/sdk/RetentionPolicyUtils.java deleted file mode 100644 index fa4644d82..000000000 --- a/src/intTest/java/com/box/sdk/RetentionPolicyUtils.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxRetentionPolicy.BoxRetentionPolicyAction.PermanentlyDelete; -import static com.box.sdk.BoxRetentionPolicy.STATUS_ACTIVE; -import static com.box.sdk.UniqueTestFolder.randomizeName; - -import java.util.function.Supplier; -import java.util.stream.StreamSupport; - -final class RetentionPolicyUtils { - private RetentionPolicyUtils() { - // to hide default constructor - } - - static BoxRetentionPolicy findOrCreate( - BoxAPIConnection api, String policyNamePrefix, Supplier createPolicy - ) { - Iterable policies = BoxRetentionPolicy.getAll(api, "policy_name", "status", - "can_owner_extend_retention"); - BoxRetentionPolicy.Info policy = StreamSupport.stream(policies.spliterator(), false) - .filter(p -> p.getPolicyName().startsWith(policyNamePrefix) - && p.getStatus().equals(STATUS_ACTIVE) && p.getCanOwnerExtendRetention()) - .findFirst() - .orElseGet(createPolicy); - return (BoxRetentionPolicy) policy.getResource(); - } - - static BoxRetentionPolicy getOneDayRetentionPolicy(BoxAPIConnection api) { - return findOrCreate( - api, - "One day modifiable", - () -> createModifiableFinitePolicy(api) - ); - } - - static BoxRetentionPolicy.Info createModifiableFinitePolicy(BoxAPIConnection api) { - RetentionPolicyParams optionalParams = new RetentionPolicyParams(); - optionalParams.setCanOwnerExtendRetention(true); - optionalParams.setRetentionType(RetentionPolicyParams.RetentionType.MODIFIABLE); - return BoxRetentionPolicy.createFinitePolicy( - api, randomizeName("One day modifiable"), 1, PermanentlyDelete, optionalParams - ); - } -} diff --git a/src/intTest/java/com/box/sdk/Retry.java b/src/intTest/java/com/box/sdk/Retry.java deleted file mode 100644 index 13ca95a88..000000000 --- a/src/intTest/java/com/box/sdk/Retry.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.box.sdk; - -import static java.lang.String.format; - -/** - * Utility class to retry API actions - */ -public final class Retry { - private static final BoxLogger LOGGER = BoxLogger.defaultLogger(); - - private Retry() { - // hide constructor in utility class - } - - /** - * Retries execution - * @param toExecute Runnable to retry - * @param retries how many times we want to retry - * @param sleep how much miliseconds to sleep between retries - * @throws InterruptedException when sleep was interuppted - */ - public static void retry(Runnable toExecute, int retries, int sleep) throws InterruptedException { - int retriesExecuted = 0; - while (retriesExecuted < retries) { - try { - toExecute.run(); - break; - } catch (Exception e) { - retriesExecuted++; - if (retriesExecuted >= retries) { - throw e; - } - LOGGER.debug( - format("Retrying [%d/%d] becasue of Exception '%s'", retriesExecuted, retries, e.getMessage()) - ); - Thread.sleep(sleep); - } - } - } -} diff --git a/src/intTest/java/com/box/sdk/TestConfig.java b/src/intTest/java/com/box/sdk/TestConfig.java deleted file mode 100644 index a2f5fde5a..000000000 --- a/src/intTest/java/com/box/sdk/TestConfig.java +++ /dev/null @@ -1,190 +0,0 @@ -package com.box.sdk; - -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.IOException; -import java.io.InputStream; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.Properties; - - -final class TestConfig { - private static Properties configProperties = null; - private static String accessToken = null; - private static String refreshToken = null; - private static String clientID = null; - private static String clientSecret = null; - private static String collaborator = null; - private static String collaboratorID = null; - private static String enterpriseID = null; - private static String privateKey = null; - private static String privateKeyPassword = null; - private static String publicKeyID = null; - private static String transactionalAccessToken = null; - private static String userID = null; - - private TestConfig() { - } - - public static String getAccessToken() { - if (accessToken == null || accessToken.equals("")) { - accessToken = getProperty("accessToken"); - } - - return accessToken; - } - - public static void setAccessToken(String accessToken) { - TestConfig.accessToken = accessToken; - } - - public static String getRefreshToken() { - if (refreshToken == null || refreshToken.equals("")) { - refreshToken = getProperty("refreshToken"); - } - - return refreshToken; - } - - public static void setRefreshToken(String refreshToken) { - TestConfig.refreshToken = refreshToken; - } - - public static String getClientID() { - if (clientID == null || clientID.equals("")) { - clientID = getProperty("clientID"); - } - - return clientID; - } - - public static String getClientSecret() { - if (clientSecret == null || clientSecret.equals("")) { - clientSecret = getProperty("clientSecret"); - } - - return clientSecret; - } - - public static String getCollaborator() { - if (collaborator == null || collaborator.isEmpty()) { - collaborator = System.getenv("JAVA_COLLABORATOR"); - } - if (collaborator == null || collaborator.isEmpty()) { - collaborator = getProperty("collaborator"); - } - - return collaborator; - } - - public static String getCollaboratorID() { - if (collaboratorID == null || collaboratorID.isEmpty()) { - collaboratorID = System.getenv("JAVA_COLLABORATOR_ID"); - } - if (collaboratorID == null || collaboratorID.isEmpty()) { - collaboratorID = getProperty("collaboratorID"); - } - - return collaboratorID; - } - - public static String getEnterpriseID() { - if (enterpriseID == null || enterpriseID.isEmpty()) { - enterpriseID = System.getenv("JAVA_ENTERPRISE_ID"); - } - if (enterpriseID == null || enterpriseID.isEmpty()) { - enterpriseID = getProperty("enterpriseID"); - } - - return enterpriseID; - } - - public static String getPrivateKey() { - if (privateKey == null || privateKey.equals("")) { - privateKey = getProperty("privateKey"); - } - - return privateKey; - } - - public static String getPrivateKeyPassword() { - if (privateKeyPassword == null || privateKeyPassword.equals("")) { - privateKeyPassword = getProperty("privateKeyPassword"); - } - - return privateKeyPassword; - } - - public static String getPublicKeyID() { - if (publicKeyID == null || publicKeyID.equals("")) { - publicKeyID = getProperty("publicKeyID"); - } - - return publicKeyID; - } - - public static String getTransactionalAccessToken() { - if (transactionalAccessToken == null || transactionalAccessToken.equals("")) { - transactionalAccessToken = getProperty("transactionalAccessToken"); - } - - return transactionalAccessToken; - } - - public static String getUserId() { - if (userID == null || userID.isEmpty()) { - userID = System.getenv("JAVA_USER_ID"); - } - if (userID == null || userID.isEmpty()) { - userID = getProperty("userID"); - } - - return userID; - } - - private static String getProperty(String name) { - Properties configProperties = loadProperties(); - String value = configProperties.getProperty(name); - if (value.equals("")) { - throw new IllegalStateException("The " + name + " property wasn't set in " - + "src/test/config/config.properties."); - } - - return value; - } - - private static Properties loadProperties() { - if (configProperties != null) { - return configProperties; - } - - configProperties = new Properties(); - - try (InputStream input = Files.newInputStream(Paths.get("src/test/config/config.properties"))) { - configProperties.load(input); - } catch (IOException e) { - throw new IllegalStateException("Couldn't open \"src/test/config/config.properties\".", e); - } - - return configProperties; - } - - /** - * Util function to help get JSON fixtures for tests. - */ - public static String getFixture(String fixtureName) throws IOException { - String fixtureFullPath = "./src/test/Fixtures/" + fixtureName + ".json"; - try (BufferedReader reader = new BufferedReader(new FileReader(fixtureFullPath))) { - StringBuilder builder = new StringBuilder(); - String line = reader.readLine(); - - while (line != null) { - builder.append(line); - builder.append("\n"); - line = reader.readLine(); - } - return builder.toString(); - } - } -} diff --git a/src/intTest/java/com/box/sdk/UniqueTestFolder.java b/src/intTest/java/com/box/sdk/UniqueTestFolder.java deleted file mode 100644 index 08c51d79e..000000000 --- a/src/intTest/java/com/box/sdk/UniqueTestFolder.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; - -import java.io.ByteArrayInputStream; -import java.io.FileInputStream; -import java.io.InputStream; -import java.net.URL; -import java.net.URLDecoder; -import java.util.UUID; -import java.util.concurrent.atomic.AtomicReference; - -/** - * Use to create and delete unique folder for test. - */ -public final class UniqueTestFolder { - private static final AtomicReference UNIQUE_FOLDER_NAME = - new AtomicReference<>(UUID.randomUUID().toString()); - private static final AtomicReference UNIQUE_FOLDER = new AtomicReference<>(); - - private UniqueTestFolder() { - } - - /** - * Creates a unique folder in root folder. Unique name cames from UUID. - */ - public static void setupUniqeFolder() { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder rootFolder = BoxFolder.getRootFolder(api); - BoxFolder.Info folderInfo = rootFolder.createFolder(UNIQUE_FOLDER_NAME.get()); - UNIQUE_FOLDER.set(folderInfo.getID()); - } - - public static void removeUniqueFolder() { - if (UNIQUE_FOLDER.get() != null) { - BoxAPIConnection api = jwtApiForServiceAccount(); - BoxFolder folder = new BoxFolder(api, UNIQUE_FOLDER.get()); - folder.delete(true); - BoxTrash trash = new BoxTrash(api); - trash.deleteFolder(folder.getID()); - } - } - - /** - * Returns the unique folder. - * - * @param api Api used to get the unique folder - * @return BoxFolder representing unique folder - */ - public static BoxFolder getUniqueFolder(BoxAPIConnection api) { - return new BoxFolder(api, UNIQUE_FOLDER.get()); - } - - /** - * Used to upload sample files to unique folder. - * - * @param api Api used to upload the file. - * @param fileName Sample file name. - * @return BoxFile Returns uploaded BoxFile. - */ - public static BoxFile uploadSampleFileToUniqueFolder(BoxAPIConnection api, String fileName) { - return uploadSampleFileToFolder(api, fileName, UNIQUE_FOLDER.get()); - } - - /** - * Used to upload sample files to specific folder. Sample files are located in src/test/resources/sample-files - * - * @param api Api used to upload the file. - * @param fileName Sample file name. Sample files are located in src/test/resources/sample-files. - * @param folderId ID of the folder file must be uplodaed to. - * @return BoxFile Returns uploaded BoxFile. - */ - public static BoxFile uploadSampleFileToFolder(BoxAPIConnection api, String fileName, String folderId) { - BoxFolder folder = new BoxFolder(api, folderId); - URL fileURL = UniqueTestFolder.class.getResource("/sample-files/" + fileName); - try { - String filePath = URLDecoder.decode(fileURL.getFile(), "utf-8"); - InputStream uploadStream = new FileInputStream(filePath); - return folder.uploadFile(uploadStream, fileName).getResource(); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - public static BoxFile uploadFileToUniqueFolder(BoxAPIConnection api, String fileName, String fileContent) { - return uploadFileWithContentToSpecifiedFolder(fileName, fileContent, getUniqueFolder(api)); - } - - public static BoxFile uploadFileToUniqueFolderWithSomeContent(BoxAPIConnection api, String fileName) { - return uploadFileWithContentToSpecifiedFolder(fileName, "Test file", getUniqueFolder(api)); - } - - public static BoxFile uploadFileWithSomeContent(String fileName, BoxFolder folder) { - return uploadFileWithContentToSpecifiedFolder(fileName, "Test file", folder); - } - - static BoxFile uploadFileWithContentToSpecifiedFolder( - String fileName, String fileContent, BoxFolder folder - ) { - byte[] fileBytes = fileContent.getBytes(StandardCharsets.UTF_8); - - InputStream uploadStream = new ByteArrayInputStream(fileBytes); - return folder.uploadFile(uploadStream, fileName).getResource(); - } - - public static String getUniqueFolderName() { - return UNIQUE_FOLDER_NAME.get(); - } - - public static BoxFile uploadTwoFileVersionsToUniqueFolder( - String fileName, - String version1Content, - String version2Content, - ProgressListener mockUploadListener - ) { - BoxAPIConnection api = jwtApiForServiceAccount(); - return uploadTwoFileVersionsToSpecifiedFolder( - fileName, version1Content, version2Content, getUniqueFolder(api), mockUploadListener - ); - } - - public static BoxFile uploadTwoFileVersionsToSpecifiedFolder( - String fileName, - String version1Content, - String version2Content, - BoxFolder folder, - ProgressListener mockUploadListener - ) { - byte[] version1Bytes = version1Content.getBytes(StandardCharsets.UTF_8); - byte[] version2Bytes = version2Content.getBytes(StandardCharsets.UTF_8); - long version2Size = version2Bytes.length; - - InputStream uploadStream = new ByteArrayInputStream(version1Bytes); - BoxFile uploadedFile = folder.uploadFile(uploadStream, fileName).getResource(); - - uploadStream = new ByteArrayInputStream(version2Bytes); - uploadedFile.uploadNewVersion(uploadStream, null, version2Size, mockUploadListener); - return uploadedFile; - } - - static String randomizeName(String name) { - return name + "_" + UUID.randomUUID(); - } -} diff --git a/src/main/java/com/box/sdk/AbstractBoxMultipartRequest.java b/src/main/java/com/box/sdk/AbstractBoxMultipartRequest.java deleted file mode 100644 index 0419c5bd3..000000000 --- a/src/main/java/com/box/sdk/AbstractBoxMultipartRequest.java +++ /dev/null @@ -1,165 +0,0 @@ -package com.box.sdk; - -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; -import okhttp3.MediaType; -import okhttp3.MultipartBody; -import okhttp3.Request; -import okhttp3.RequestBody; - -/** - *

    Base class for multipart uploads

    - *

    This class partially implements the HTTP multipart standard in order to upload files to Box. The body of this - * * request type cannot be set directly. Instead, it can be modified by adding multipart fields and setting file - * * contents. The body of multipart requests will not be logged since they are likely to contain binary data.

    - */ -abstract class AbstractBoxMultipartRequest extends BoxAPIRequest { - protected static final String BOUNDARY = "da39a3ee5e6b4b0d3255bfef95601890afd80709"; - static final int BUFFER_SIZE = 8192; - private final StringBuilder loggedRequest = new StringBuilder(); - private final Map fields = new HashMap<>(); - private InputStream inputStream; - private String filename; - private long fileSize = -1; - private UploadFileCallback callback; - - AbstractBoxMultipartRequest(BoxAPIConnection api, URL url) { - super(api, url, "POST"); - this.addHeader("Content-Type", "multipart/form-data; boundary=" + BOUNDARY); - } - - /** - * Sets the file contents of this request. - * - * @param inputStream a stream containing the file contents. - * @param filename the name of the file. - */ - public void setFile(InputStream inputStream, String filename) { - this.inputStream = inputStream; - this.filename = filename; - } - - /** - * Sets the file contents of this request. - * - * @param inputStream a stream containing the file contents. - * @param filename the name of the file. - * @param fileSize the size of the file. If the file content is coming from the dynamic stream, - * and it's full size cannot be determined on starting upload use fizeSize=-1 - * or use {@link AbstractBoxMultipartRequest#setFile(InputStream, String)} - */ - public void setFile(InputStream inputStream, String filename, long fileSize) { - this.setFile(inputStream, filename); - this.fileSize = fileSize; - } - - /** - * Adds or updates a multipart field in this request. - * - * @param key the field's key. - * @param value the field's value. - */ - public void putField(String key, String value) { - this.fields.put(key, value); - } - - /** - * Adds or updates a multipart field in this request. - * - * @param key the field's key. - * @param value the field's value. - */ - public void putField(String key, Date value) { - this.fields.put(key, BoxDateFormat.format(value)); - } - - /** - * Sets the callback which allows file content to be written on output stream. - * - * @param callback the callback which allows file content to be written on output stream. - * @param filename the size of the file. - */ - public void setUploadFileCallback(UploadFileCallback callback, String filename) { - this.callback = callback; - this.filename = filename; - } - - /** - * Sets the SHA1 hash of the file contents of this request. - * If set, it will ensure that the file is not corrupted in transit. - * - * @param sha1 a string containing the SHA1 hash of the file contents. - */ - public void setContentSHA1(String sha1) { - this.addHeader("Content-MD5", sha1); - } - - /** - * This method is unsupported in BoxMultipartRequest. Instead, the body should be modified via the {@code putField} - * and {@code setFile} methods. - * - * @param stream N/A - * @throws UnsupportedOperationException this method is unsupported. - */ - @Override - public void setBody(InputStream stream) { - throw new UnsupportedOperationException(); - } - - /** - * This method is unsupported in BoxMultipartRequest. Instead, the body should be modified via the {@code putField} - * and {@code setFile} methods. - * - * @param body N/A - * @throws UnsupportedOperationException this method is unsupported. - */ - @Override - public void setBody(String body) { - throw new UnsupportedOperationException(); - } - - protected abstract String getPartName(); - - protected abstract MediaType getPartContentType(String filename); - - @Override - protected void resetBody() throws IOException { - this.inputStream.reset(); - this.loggedRequest.setLength(0); - } - - @Override - protected String bodyToString() { - return this.loggedRequest.toString(); - } - - @Override - protected void writeMethodWithBody(Request.Builder requestBuilder, ProgressListener progressListener) { - MultipartBody.Builder bodyBuilder = - new MultipartBody.Builder() - .setType(MultipartBody.FORM); - // Attributes should go first - this.fields.forEach(bodyBuilder::addFormDataPart); - // File should go second - bodyBuilder.addFormDataPart( - getPartName(), - filename, - getBody(progressListener)); - requestBuilder.post(bodyBuilder.build()); - } - - private RequestBody getBody(ProgressListener progressListener) { - if (this.callback == null) { - return new RequestBodyFromStream( - this.inputStream, getPartContentType(filename), progressListener, fileSize - ); - } else { - return new RequestBodyFromCallback(this.callback, getPartContentType(filename)); - } - } - -} diff --git a/src/main/java/com/box/sdk/AvatarUploadResponse.java b/src/main/java/com/box/sdk/AvatarUploadResponse.java deleted file mode 100644 index c155ee1a6..000000000 --- a/src/main/java/com/box/sdk/AvatarUploadResponse.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.box.sdk; - -/** - * Upload avatar response - */ -public class AvatarUploadResponse { - private final String small; - private final String large; - private final String preview; - - AvatarUploadResponse(String small, String large, String preview) { - this.small = small; - this.large = large; - this.preview = preview; - } - - /** - * URL with the small representation of Avatar. - * - * @return URL with the small representation of Avatar - */ - public String getSmall() { - return small; - } - - /** - * URL with the large representation of Avatar. - * - * @return URL with the large representation of Avatar - */ - public String getLarge() { - return large; - } - - /** - * URL with the preview representation of Avatar. - * - * @return URL with the preview representation of Avatar - */ - public String getPreview() { - return preview; - } -} diff --git a/src/main/java/com/box/sdk/BCPrivateKeyDecryptor.java b/src/main/java/com/box/sdk/BCPrivateKeyDecryptor.java deleted file mode 100644 index 536b8c434..000000000 --- a/src/main/java/com/box/sdk/BCPrivateKeyDecryptor.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.box.sdk; - -import java.io.IOException; -import java.io.StringReader; -import java.security.PrivateKey; -import java.security.Security; -import org.bouncycastle.asn1.pkcs.PrivateKeyInfo; -import org.bouncycastle.jce.provider.BouncyCastleProvider; -import org.bouncycastle.openssl.PEMDecryptorProvider; -import org.bouncycastle.openssl.PEMEncryptedKeyPair; -import org.bouncycastle.openssl.PEMKeyPair; -import org.bouncycastle.openssl.PEMParser; -import org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter; -import org.bouncycastle.openssl.jcajce.JceOpenSSLPKCS8DecryptorProviderBuilder; -import org.bouncycastle.openssl.jcajce.JcePEMDecryptorProviderBuilder; -import org.bouncycastle.operator.InputDecryptorProvider; -import org.bouncycastle.operator.OperatorCreationException; -import org.bouncycastle.pkcs.PKCS8EncryptedPrivateKeyInfo; -import org.bouncycastle.pkcs.PKCSException; - -/** - * The default implementation of `IPrivateKeyDecryptor`, which uses Bouncy Castle library to decrypt the private key. - */ -public class BCPrivateKeyDecryptor implements IPrivateKeyDecryptor { - - /** - * Decrypts private key with provided passphrase using Bouncy Castle library - * - * @param encryptedPrivateKey Encoded private key string. - * @param passphrase Private key passphrase. - * @return java.security.PrivateKey instance representing decrypted private key. - */ - @Override - public PrivateKey decryptPrivateKey(String encryptedPrivateKey, String passphrase) { - Security.addProvider(new BouncyCastleProvider()); - PrivateKey decryptedPrivateKey; - try { - PEMParser keyReader = new PEMParser(new StringReader(encryptedPrivateKey)); - Object keyPair = keyReader.readObject(); - keyReader.close(); - - if (keyPair instanceof PrivateKeyInfo) { - PrivateKeyInfo keyInfo = (PrivateKeyInfo) keyPair; - decryptedPrivateKey = (new JcaPEMKeyConverter()).getPrivateKey(keyInfo); - } else if (keyPair instanceof PEMEncryptedKeyPair) { - JcePEMDecryptorProviderBuilder builder = new JcePEMDecryptorProviderBuilder(); - PEMDecryptorProvider decryptionProvider = builder.build(passphrase.toCharArray()); - keyPair = ((PEMEncryptedKeyPair) keyPair).decryptKeyPair(decryptionProvider); - PrivateKeyInfo keyInfo = ((PEMKeyPair) keyPair).getPrivateKeyInfo(); - decryptedPrivateKey = (new JcaPEMKeyConverter()).getPrivateKey(keyInfo); - } else if (keyPair instanceof PKCS8EncryptedPrivateKeyInfo) { - InputDecryptorProvider pkcs8Prov = new JceOpenSSLPKCS8DecryptorProviderBuilder() - .setProvider("BC") - .build(passphrase.toCharArray()); - PrivateKeyInfo keyInfo = ((PKCS8EncryptedPrivateKeyInfo) keyPair).decryptPrivateKeyInfo(pkcs8Prov); - decryptedPrivateKey = (new JcaPEMKeyConverter()).getPrivateKey(keyInfo); - } else { - PrivateKeyInfo keyInfo = ((PEMKeyPair) keyPair).getPrivateKeyInfo(); - decryptedPrivateKey = (new JcaPEMKeyConverter()).getPrivateKey(keyInfo); - } - } catch (IOException e) { - throw new BoxAPIException("Error parsing private key for Box Developer Edition.", e); - } catch (OperatorCreationException e) { - throw new BoxAPIException("Error parsing PKCS#8 private key for Box Developer Edition.", e); - } catch (PKCSException e) { - throw new BoxAPIException("Error parsing PKCS private key for Box Developer Edition.", e); - } - return decryptedPrivateKey; - } -} diff --git a/src/main/java/com/box/sdk/BackoffCounter.java b/src/main/java/com/box/sdk/BackoffCounter.java deleted file mode 100644 index 6926688c6..000000000 --- a/src/main/java/com/box/sdk/BackoffCounter.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.box.sdk; - -class BackoffCounter { - private static final BoxLogger LOGGER = BoxLogger.defaultLogger(); - private static final int BASE_TIMEOUT = 1000; - private static final double RANDOM_FACTOR = 0.5; - - private final Time time; - - private int maxAttempts; - private int attemptsRemaining; - - BackoffCounter() { - this(Time.getInstance()); - } - - BackoffCounter(Time time) { - this.time = time; - } - - public int getAttemptsRemaining() { - return this.attemptsRemaining; - } - - /** - * Waits for some random amount of time {@link BackoffCounter#calculateDelay()} - * @throws InterruptedException - */ - public void waitBackoff() throws InterruptedException { - int delay = this.calculateDelay(); - this.waitBackoff(delay); - } - - /** - * Waits for specified amount of miliseconds. - * @param delay Time to wait for in miliseconds. - * @throws InterruptedException - */ - public void waitBackoff(int delay) throws InterruptedException { - if (LOGGER.isWarnEnabled()) { - LOGGER.warn(String.format( - "Backing off for %d seconds before retrying %d more time%s.", - (delay / 1000), - this.attemptsRemaining, - this.attemptsRemaining > 1 ? "s" : "" - )); - - } - this.time.waitDuration(delay); - } - - public boolean decrement() { - this.attemptsRemaining--; - return (this.attemptsRemaining > 0); - } - - public void reset(int maxAttempts) { - this.maxAttempts = maxAttempts; - this.attemptsRemaining = maxAttempts; - } - - /** - * Generates some random amount of time to backoff. - * Time is within <16000, 48000) ms - * @return Time in miliseconds. - */ - private int calculateDelay() { - int exponent = this.maxAttempts - this.attemptsRemaining; - double minWindow = 1 - RANDOM_FACTOR; - double maxWindow = 1 + RANDOM_FACTOR; - double jitter = (Math.random() * (maxWindow - minWindow)) + minWindow; - return (int) (Math.pow(2, exponent) * BASE_TIMEOUT * jitter); - } -} diff --git a/src/main/java/com/box/sdk/Base64.java b/src/main/java/com/box/sdk/Base64.java deleted file mode 100644 index 77b806416..000000000 --- a/src/main/java/com/box/sdk/Base64.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.box.sdk; - -import java.io.ByteArrayOutputStream; - -/** - * Contains a method for performing base64 encoding. - * - *

    This class is included so that we don't need to add a dependency on Apache Commons for base64 encoding.

    - * - *

    The code in this class was mostly taken from https://gist.github.com/EmilHernvall/953733#file-base64-java

    - */ -final class Base64 { - - private Base64() { - } - - static String encode(byte[] data) { - char[] tbl = { - 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', - 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', - 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', - 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/'}; - - StringBuilder buffer = new StringBuilder(); - int pad = 0; - for (int i = 0; i < data.length; i += 3) { - - int b = ((data[i] & 0xFF) << 16) & 0xFFFFFF; - if (i + 1 < data.length) { - b |= (data[i + 1] & 0xFF) << 8; - } else { - pad++; - } - if (i + 2 < data.length) { - b |= (data[i + 2] & 0xFF); - } else { - pad++; - } - - for (int j = 0; j < 4 - pad; j++) { - int c = (b & 0xFC0000) >> 18; - buffer.append(tbl[c]); - b <<= 6; - } - } - for (int j = 0; j < pad; j++) { - buffer.append("="); - } - - return buffer.toString(); - } - - public static byte[] decode(String data) { - int[] tbl = { - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}; - byte[] bytes = data.getBytes(); - ByteArrayOutputStream buffer = new ByteArrayOutputStream(); - for (int i = 0; i < bytes.length; ) { - int b = 0; - if (tbl[bytes[i]] != -1) { - b = (tbl[bytes[i]] & 0xFF) << 18; - } else { - i++; - continue; - } - - int num = 0; - if (i + 1 < bytes.length && tbl[bytes[i + 1]] != -1) { - b = b | ((tbl[bytes[i + 1]] & 0xFF) << 12); - num++; - } - if (i + 2 < bytes.length && tbl[bytes[i + 2]] != -1) { - b = b | ((tbl[bytes[i + 2]] & 0xFF) << 6); - num++; - } - if (i + 3 < bytes.length && tbl[bytes[i + 3]] != -1) { - b = b | (tbl[bytes[i + 3]] & 0xFF); - num++; - } - - while (num > 0) { - int c = (b & 0xFF0000) >> 16; - buffer.write((char) c); - b <<= 8; - num--; - } - i += 4; - } - return buffer.toByteArray(); - } -} diff --git a/src/main/java/com/box/sdk/BinaryBodyUtils.java b/src/main/java/com/box/sdk/BinaryBodyUtils.java deleted file mode 100644 index 2873d8c00..000000000 --- a/src/main/java/com/box/sdk/BinaryBodyUtils.java +++ /dev/null @@ -1,177 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.http.HttpHeaders; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; - -/** - * Utility class to help writing binary data to output stream. - */ -final class BinaryBodyUtils { - private static final int BUFFER_SIZE = 8192; - - private BinaryBodyUtils() { - // utility class has no public constructor - } - - /** - * Writes response body bytes to output stream. After all closes the input stream. - * - * @param response Response that is going to be written. - * @param output Output stream. - */ - static void writeStream(BoxAPIResponse response, OutputStream output) { - writeStream(response, output, null); - } - - /** - * Writes response body bytes to output stream. After all closes the input stream. - * - * @param response Response that is going to be written. - * @param output Output stream. - * @param listener Listener that will be notified on writing response. Can be null. - */ - - static void writeStream(BoxAPIResponse response, OutputStream output, ProgressListener listener) { - try { - InputStream input; - if (listener != null) { - input = response.getBody(listener); - } else { - input = response.getBody(); - } - writeStreamTo(input, output); - } finally { - response.close(); - } - } - - /** - * Writes response body bytes to output stream. After all closes the input stream. - * - * @param response Response that is going to be written. - * @param output Output stream. - */ - - static void writeStreamWithContentLength(BoxAPIResponse response, OutputStream output) { - writeStreamWithContentLength(response, output, null); - } - - /** - * Writes response body bytes to output stream. After all closes the input stream. - * - * @param response Response that is going to be written. - * @param output Output stream. - * @param listener Listener that will be notified on writing response. Can be null. - */ - - static void writeStreamWithContentLength(BoxAPIResponse response, OutputStream output, ProgressListener listener) { - try { - InputStream input; - if (listener != null) { - input = response.getBody(listener); - } else { - input = response.getBody(); - } - writeStreamTo(input, output, getContentLengthFromAPIResponse(response)); - } finally { - response.close(); - } - } - - /** - * Get the content length from the API response. - * In some cases, the Content-Length is not provided in the response headers. - * This could happen when getting the content representation for a compressed data. - * In that case the API will switch to chunk mode and provide the length in the "X-Original-Content-Length" header. - * - * @param response API response. - * @return Content length. - */ - private static long getContentLengthFromAPIResponse(BoxAPIResponse response) { - long length = response.getContentLength(); - if (length == -1) { - String headerValue = null; - if (response.getHeaders().containsKey(HttpHeaders.CONTENT_LENGTH)) { - headerValue = response.getHeaders().get(HttpHeaders.CONTENT_LENGTH).get(0); - } else if (response.getHeaders().containsKey(HttpHeaders.X_ORIGINAL_CONTENT_LENGTH)) { - headerValue = response.getHeaders().get(HttpHeaders.X_ORIGINAL_CONTENT_LENGTH).get(0); - } - - if (headerValue != null) { - String trimmedHeaderValue = headerValue.trim(); - try { - length = Long.parseLong(trimmedHeaderValue); - } catch (NumberFormatException e) { - throw new RuntimeException("Invalid content length: " + trimmedHeaderValue + " with: " - + trimmedHeaderValue.length() + " number of characters."); - } - } - } - - return length; - } - - /** - * Writes content of input stream to provided output. - * - * @param input Input that will be read. - * @param output Output stream. - */ - static void writeStreamTo(InputStream input, OutputStream output) { - try { - byte[] buffer = new byte[BUFFER_SIZE]; - int n = input.read(buffer); - while (n != -1) { - output.write(buffer, 0, n); - n = input.read(buffer); - } - } catch (IOException e) { - throw new RuntimeException(e); - } finally { - try { - input.close(); - output.close(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - } - - /** - * Writes the content of the input stream to the provided output stream, ensuring the exact number of bytes specified - * by the expected length is written. If the stream ends prematurely an exception is thrown. - * - * @param input The input stream to be read. - * @param output The output stream where data will be written. - * @param expectedLength The expected number of bytes to be transferred. - */ - - static void writeStreamTo(InputStream input, OutputStream output, long expectedLength) { - long totalBytesRead = 0; - if (expectedLength < 0) { - throw new RuntimeException("Expected content length should not be negative: " + expectedLength); - } - try { - byte[] buffer = new byte[BUFFER_SIZE]; - for (int n = input.read(buffer); n != -1; n = input.read(buffer)) { - output.write(buffer, 0, n); - totalBytesRead += n; // Track the total bytes read - } - if (totalBytesRead != expectedLength) { - throw new IOException("Stream ended prematurely. Expected " - + expectedLength + " bytes, but read " + totalBytesRead + " bytes."); - } - } catch (IOException e) { - throw new RuntimeException("Error during streaming: " + e.getMessage(), e); - } finally { - try { - input.close(); - output.close(); - } catch (IOException closeException) { - throw new RuntimeException("IOException during stream close", closeException); - } - } - } -} diff --git a/src/main/java/com/box/sdk/BoxAI.java b/src/main/java/com/box/sdk/BoxAI.java deleted file mode 100644 index a38eb6316..000000000 --- a/src/main/java/com/box/sdk/BoxAI.java +++ /dev/null @@ -1,414 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.http.HttpMethod; -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import java.net.URL; -import java.util.List; - - -public final class BoxAI { - - /** - * Ask AI url. - */ - public static final URLTemplate SEND_AI_REQUEST_URL = new URLTemplate("ai/ask"); - /** - * Text gen AI url. - */ - public static final URLTemplate SEND_AI_TEXT_GEN_REQUEST_URL = new URLTemplate("ai/text_gen"); - /** - * AI agent default config url. - */ - public static final URLTemplate AI_AGENT_DEFAULT_CONFIG_URL = new URLTemplate("ai_agent_default"); - /** - * AI extract metadata freeform url. - */ - public static final URLTemplate EXTRACT_METADATA_FREEFORM_URL = new URLTemplate("ai/extract"); - /** - * AI extract metadata structured url. - */ - public static final URLTemplate EXTRACT_METADATA_STRUCTURED_URL = new URLTemplate("ai/extract_structured"); - - private BoxAI() { - } - - /** - * Sends an AI request to supported LLMs and returns an answer specifically focused - * on the user's question given the provided items. - * - * @param api the API connection to be used by the created user. - * @param prompt The prompt provided by the client to be answered by the LLM. - * @param items The items to be processed by the LLM, currently only files are supported. - * @param mode The mode specifies if this request is for a single or multiple items. - * @return The response from the AI. - */ - public static BoxAIResponse sendAIRequest(BoxAPIConnection api, String prompt, List items, Mode mode) { - return sendAIRequest(api, prompt, items, mode, null, null, null); - } - - /** - * Sends an AI request to supported LLMs and returns an answer specifically focused - * on the user's question given the provided items. - * - * @param api the API connection to be used by the created user. - * @param prompt The prompt provided by the client to be answered by the LLM. - * @param items The items to be processed by the LLM, currently only files are supported. - * @param mode The mode specifies if this request is for a single or multiple items. - * @param dialogueHistory The history of prompts and answers previously passed to the LLM. - * This provides additional context to the LLM in generating the response. - * @param agent The AI agent configuration to be used for the request. - * @param includeCitations Whether to include citations in the response. - * @return The response from the AI. - */ - public static BoxAIResponse sendAIRequest(BoxAPIConnection api, String prompt, List items, Mode mode, - List dialogueHistory, BoxAIAgentAsk agent, - Boolean includeCitations) { - URL url = SEND_AI_REQUEST_URL.build(api.getBaseURL()); - JsonObject requestJSON = new JsonObject(); - requestJSON.add("mode", mode.toString()); - requestJSON.add("prompt", prompt); - - JsonArray itemsJSON = new JsonArray(); - for (BoxAIItem item : items) { - itemsJSON.add(item.getJSONObject()); - } - requestJSON.add("items", itemsJSON); - - if (dialogueHistory != null) { - JsonArray dialogueHistoryJSON = new JsonArray(); - for (BoxAIDialogueEntry dialogueEntry : dialogueHistory) { - dialogueHistoryJSON.add(dialogueEntry.getJSONObject()); - } - requestJSON.add("dialogue_history", dialogueHistoryJSON); - } - if (agent != null) { - requestJSON.add("ai_agent", agent.getJSONObject()); - } - if (includeCitations != null) { - requestJSON.add("include_citations", includeCitations); - } - - BoxJSONRequest req = new BoxJSONRequest(api, url, HttpMethod.POST); - req.setBody(requestJSON.toString()); - - try (BoxJSONResponse response = req.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - return new BoxAIResponse(responseJSON); - } - } - - /** - * Sends an AI request to supported LLMs and returns an answer specifically focused on the creation of new text. - * - * @param api the API connection to be used by the created user. - * @param prompt The prompt provided by the client to be answered by the LLM. - * @param items The items to be processed by the LLM, currently only files are supported. - * @return The response from the AI. - */ - public static BoxAIResponse sendAITextGenRequest(BoxAPIConnection api, String prompt, List items) { - return sendAITextGenRequest(api, prompt, items, null); - } - - /** - * Sends an AI request to supported LLMs and returns an answer specifically focused on the creation of new text. - * - * @param api the API connection to be used by the created user. - * @param prompt The prompt provided by the client to be answered by the LLM. - * @param items The items to be processed by the LLM, currently only files are supported. - * @param dialogueHistory The history of prompts and answers previously passed to the LLM. - * This provides additional context to the LLM in generating the response. - * @return The response from the AI. - */ - public static BoxAIResponse sendAITextGenRequest(BoxAPIConnection api, String prompt, List items, - List dialogueHistory) { - return sendAITextGenRequest(api, prompt, items, dialogueHistory, null); - } - - /** - * Sends an AI request to supported LLMs and returns an answer specifically focused on the creation of new text. - * - * @param api the API connection to be used by the created user. - * @param prompt The prompt provided by the client to be answered by the LLM. - * @param items The items to be processed by the LLM, currently only files are supported. - * @param dialogueHistory The history of prompts and answers previously passed to the LLM. - * This provides additional context to the LLM in generating the response. - * @param agent The AI agent configuration to be used for the request. - * @return The response from the AI. - */ - public static BoxAIResponse sendAITextGenRequest(BoxAPIConnection api, String prompt, List items, - List dialogueHistory, - BoxAIAgentTextGen agent) { - URL url = SEND_AI_TEXT_GEN_REQUEST_URL.build(api.getBaseURL()); - JsonObject requestJSON = new JsonObject(); - requestJSON.add("prompt", prompt); - - JsonArray itemsJSON = new JsonArray(); - for (BoxAIItem item : items) { - itemsJSON.add(item.getJSONObject()); - } - requestJSON.add("items", itemsJSON); - - if (dialogueHistory != null) { - JsonArray dialogueHistoryJSON = new JsonArray(); - for (BoxAIDialogueEntry dialogueEntry : dialogueHistory) { - dialogueHistoryJSON.add(dialogueEntry.getJSONObject()); - } - requestJSON.add("dialogue_history", dialogueHistoryJSON); - } - - if (agent != null) { - requestJSON.add("ai_agent", agent.getJSONObject()); - } - - BoxJSONRequest req = new BoxJSONRequest(api, url, HttpMethod.POST); - req.setBody(requestJSON.toString()); - - try (BoxJSONResponse response = req.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - return new BoxAIResponse(responseJSON); - } - } - - /** - * Get the default AI Agent use for the given mode. - * - * @param api The API connection to be used by the created user. - * @param mode The mode to filter the agent config to return. - * @return A successful response including the default agent configuration. - */ - public static BoxAIAgent getAiAgentDefaultConfig(BoxAPIConnection api, BoxAIAgent.Mode mode) { - return getAiAgentDefaultConfig(api, mode, null, null); - } - - /** - * Get the default AI Agent use for the given mode. - * - * @param api The API connection to be used by the created user. - * @param mode The mode to filter the agent config to return. - * @param language The language to filter the agent config to return. - * @param model The model to filter the agent config to return. - * @return A successful response including the default agent configuration. - */ - public static BoxAIAgent getAiAgentDefaultConfig(BoxAPIConnection api, - BoxAIAgent.Mode mode, - String language, - String model) { - QueryStringBuilder builder = new QueryStringBuilder(); - builder.appendParam("mode", mode.toString()); - if (language != null) { - builder.appendParam("language", language); - } - if (model != null) { - builder.appendParam("model", model); - } - URL url = AI_AGENT_DEFAULT_CONFIG_URL.buildWithQuery(api.getBaseURL(), builder.toString()); - BoxAPIRequest req = new BoxAPIRequest(api, url, HttpMethod.GET); - try (BoxJSONResponse response = (BoxJSONResponse) req.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - return BoxAIAgent.parse(responseJSON); - } - } - - public enum Mode { - /** - * Multiple items - */ - MULTIPLE_ITEM_QA("multiple_item_qa"), - - /** - * Single item - */ - SINGLE_ITEM_QA("single_item_qa"); - - private final String mode; - - Mode(String mode) { - this.mode = mode; - } - - static BoxAI.Mode fromJSONValue(String jsonValue) { - if (jsonValue.equals("multiple_item_qa")) { - return BoxAI.Mode.MULTIPLE_ITEM_QA; - } else if (jsonValue.equals("single_item_qa")) { - return BoxAI.Mode.SINGLE_ITEM_QA; - } else { - System.out.print("Invalid AI mode."); - return null; - } - } - - String toJSONValue() { - return this.mode; - } - - public String toString() { - return this.mode; - } - } - - /** - * Sends an AI request to supported Large Language Models (LLMs) and extracts metadata in form of key-value pairs. - * Freeform metadata extraction does not require any metadata template setup before sending the request. - * - * @param api the API connection to be used by the created user. - * @param prompt The prompt provided by the client to be answered by the LLM. - * @param items The items to be processed by the LLM, currently only files are supported. - * @return The response from the AI. - */ - public static BoxAIResponse extractMetadataFreeform(BoxAPIConnection api, - String prompt, - List items) { - return extractMetadataFreeform(api, prompt, items, null); - } - - /** - * Sends an AI request to supported Large Language Models (LLMs) and extracts metadata in form of key-value pairs. - * Freeform metadata extraction does not require any metadata template setup before sending the request. - * - * @param api the API connection to be used by the created user. - * @param prompt The prompt provided by the client to be answered by the LLM. - * @param items The items to be processed by the LLM, currently only files are supported. - * @param agent The AI agent configuration to be used for the request. - * @return The response from the AI. - */ - public static BoxAIResponse extractMetadataFreeform(BoxAPIConnection api, - String prompt, - List items, - BoxAIAgentExtract agent) { - URL url = EXTRACT_METADATA_FREEFORM_URL.build(api.getBaseURL()); - - JsonObject requestJSON = new JsonObject(); - JsonArray itemsJSON = new JsonArray(); - for (BoxAIItem item : items) { - itemsJSON.add(item.getJSONObject()); - } - requestJSON.add("items", itemsJSON); - requestJSON.add("prompt", prompt); - if (agent != null) { - requestJSON.add("ai_agent", agent.getJSONObject()); - } - - BoxJSONRequest req = new BoxJSONRequest(api, url, HttpMethod.POST); - req.setBody(requestJSON.toString()); - - try (BoxJSONResponse response = req.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - return new BoxAIResponse(responseJSON); - } - } - - /** - * Sends an AI request to supported Large Language Models (LLMs) and returns extracted metadata as a set of - * key-value pairs. For this request, you need to use an already defined metadata template or a define a - * schema yourself. - * - * @param api The API connection to be used by the created user. - * @param items The items to be processed by the LLM, currently only files are supported. - * @param template The metadata template to be used for the request. - * @return The response from the AI. - */ - public static BoxAIExtractStructuredResponse extractMetadataStructured(BoxAPIConnection api, List items, - BoxAIExtractMetadataTemplate template) { - return extractMetadataStructured(api, items, template, null, null); - } - - /** - * Sends an AI request to supported Large Language Models (LLMs) and returns extracted metadata as a set of - * key-value pairs. For this request, you need to use an already defined metadata template or a define a - * schema yourself. - * - * @param api The API connection to be used by the created user. - * @param items The items to be processed by the LLM, currently only files are supported. - * @param template The metadata template to be used for the request. - * @param agent The AI agent configuration to be used for the request. - * @return The response from the AI. - */ - public static BoxAIExtractStructuredResponse extractMetadataStructured(BoxAPIConnection api, List items, - BoxAIExtractMetadataTemplate template, - BoxAIAgentExtractStructured agent) { - return extractMetadataStructured(api, items, template, null, agent); - } - - /** - * Sends an AI request to supported Large Language Models (LLMs) and returns extracted metadata as a set of - * key-value pairs. For this request, you need to use an already defined metadata template or a define a - * schema yourself. - * - * @param api The API connection to be used by the created user. - * @param items The items to be processed by the LLM, currently only files are supported. - * @param fields The fields to be extracted from the items. - * @return The response from the AI. - */ - public static BoxAIExtractStructuredResponse extractMetadataStructured(BoxAPIConnection api, List items, - List fields) { - return extractMetadataStructured(api, items, null, fields, null); - } - - /** - * Sends an AI request to supported Large Language Models (LLMs) and returns extracted metadata as a set of - * key-value pairs. For this request, you need to use an already defined metadata template or a define a - * schema yourself. - * - * @param api The API connection to be used by the created user. - * @param items The items to be processed by the LLM, currently only files are supported. - * @param fields The fields to be extracted from the items. - * @param agent The AI agent configuration to be used for the request. - * @return The response from the AI. - */ - public static BoxAIExtractStructuredResponse extractMetadataStructured(BoxAPIConnection api, List items, - List fields, - BoxAIAgentExtractStructured agent) { - return extractMetadataStructured(api, items, null, fields, agent); - } - - /** - * Sends an AI request to supported Large Language Models (LLMs) and returns extracted metadata as a set of - * key-value pairs. For this request, you need to use an already defined metadata template or a define a - * schema yourself. - * - * @param api The API connection to be used by the created user. - * @param items The items to be processed by the LLM, currently only files are supported. - * @param template The metadata template to be used for the request. - * @param fields The fields to be extracted from the items. - * @param agent The AI agent configuration to be used for the request. - * @return The response from the AI. - */ - private static BoxAIExtractStructuredResponse extractMetadataStructured(BoxAPIConnection api, List items, - BoxAIExtractMetadataTemplate template, - List fields, - BoxAIAgentExtractStructured agent) { - URL url = EXTRACT_METADATA_STRUCTURED_URL.build(api.getBaseURL()); - - JsonObject requestJSON = new JsonObject(); - JsonArray itemsJSON = new JsonArray(); - for (BoxAIItem item : items) { - itemsJSON.add(item.getJSONObject()); - } - requestJSON.add("items", itemsJSON); - - if (template != null) { - requestJSON.add("metadata_template", template.getJSONObject()); - } - - if (fields != null) { - JsonArray fieldsJSON = new JsonArray(); - for (BoxAIExtractField field : fields) { - fieldsJSON.add(field.getJSONObject()); - } - requestJSON.add("fields", fieldsJSON); - } - - if (agent != null) { - requestJSON.add("ai_agent", agent.getJSONObject()); - } - - BoxJSONRequest req = new BoxJSONRequest(api, url, HttpMethod.POST); - req.setBody(requestJSON.toString()); - - try (BoxJSONResponse response = req.send()) { - return new BoxAIExtractStructuredResponse(response.getJSON()); - } - } -} diff --git a/src/main/java/com/box/sdk/BoxAIAgent.java b/src/main/java/com/box/sdk/BoxAIAgent.java deleted file mode 100644 index 4d0c13ee4..000000000 --- a/src/main/java/com/box/sdk/BoxAIAgent.java +++ /dev/null @@ -1,133 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; - -public abstract class BoxAIAgent extends BoxJSONObject { - /** - * The type of the AI agent. - * Value can be "ai_agent_ask" or "ai_agent_text_gen", "ai_agent_extract", "ai_agent_extract_structured". - */ - private String type; - - /** - * Constructs an AI agent with default settings. - * @param type The type of the AI agent. - * Value can be "ai_agent_ask", "ai_agent_text_gen", "ai_agent_extract", "ai_agent_extract_structured". - */ - public BoxAIAgent(String type) { - super(); - this.type = type; - } - - /** - * Constructs an AI agent with default settings. - * @param jsonObject JSON object representing the AI agent. - */ - public BoxAIAgent(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Constructs an AI agent with default settings. - * @param jsonObject JSON object representing the AI agent. - */ - public static BoxAIAgent parse(JsonObject jsonObject) { - String type = jsonObject.get("type").asString(); - if (type.equals(BoxAIAgentAsk.TYPE)) { - return new BoxAIAgentAsk(jsonObject); - } else if (type.equals(BoxAIAgentTextGen.TYPE)) { - return new BoxAIAgentTextGen(jsonObject); - } else if (type.equals(BoxAIAgentExtract.TYPE)) { - return new BoxAIAgentExtract(jsonObject); - } else if (type.equals(BoxAIAgentExtractStructured.TYPE)) { - return new BoxAIAgentExtractStructured(jsonObject); - } else { - throw new IllegalArgumentException("Invalid AI agent type: " + type); - } - } - - /** - * Gets the type of the AI agent. - * @return The type of the AI agent. - */ - public String getType() { - return type; - } - - /** - * Sets the type of the AI agent. - * @param type The type of the AI agent. - */ - public void setType(String type) { - this.type = type; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - JsonValue value = member.getValue(); - if (memberName.equals("type")) { - this.type = value.asString(); - } - } - - public JsonObject getJSONObject() { - JsonObject jsonObject = new JsonObject(); - jsonObject.add("type", this.type); - return jsonObject; - } - - /** - * The type of the AI agent for asking questions. - */ - public enum Mode { - /** - * The type of AI agent used to handle queries. - */ - ASK("ask"), - /** - * The type of AI agent used for generating text. - */ - TEXT_GEN("text_gen"), - /** - * The type of AI agent used for extracting metadata freeform. - */ - EXTRACT("extract"), - /** - * The type of AI agent used for extracting metadata structured. - */ - EXTRACT_STRUCTURED("extract_structured"); - - - private final String value; - - Mode(String value) { - this.value = value; - } - - static BoxAIAgent.Mode fromJSONValue(String value) { - if (value.equals("ask")) { - return ASK; - } else if (value.equals("text_gen")) { - return TEXT_GEN; - } else if (value.equals("extract")) { - return EXTRACT; - } else if (value.equals("extract_structured")) { - return EXTRACT_STRUCTURED; - } else { - throw new IllegalArgumentException("Invalid AI agent mode: " + value); - } - } - - String toJSONValue() { - return this.value; - } - - @Override - public String toString() { - return this.value; - } - } -} diff --git a/src/main/java/com/box/sdk/BoxAIAgentAsk.java b/src/main/java/com/box/sdk/BoxAIAgentAsk.java deleted file mode 100644 index c5c02c15b..000000000 --- a/src/main/java/com/box/sdk/BoxAIAgentAsk.java +++ /dev/null @@ -1,169 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.internal.utils.JsonUtils; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; - -/** - * Represents an AI Agent used to handle queries. - */ -@BoxResourceType("ai_agent_ask") -public class BoxAIAgentAsk extends BoxAIAgent { - - /** - * The type of the AI Ask agent. - */ - public static final String TYPE = "ai_agent_ask"; - - /** - * AI agent tool used to handle basic text. - */ - private BoxAIAgentAskBasicText basicText; - /** - * AI agent tool used to handle basic text. - */ - private BoxAIAgentAskBasicText basicTextMulti; - /** - * AI agent tool used to handle longer text. - */ - private BoxAIAgentAskLongText longText; - /** - * AI agent tool used to handle longer text. - */ - private BoxAIAgentAskLongText longTextMulti; - - /** - * Constructs an AI agent with default settings. - * @param basicText AI agent tool used to handle basic text. - * @param basicTextMulti AI agent tool used to handle basic text. - * @param longText AI agent tool used to handle longer text. - * @param longTextMulti AI agent tool used to handle longer text. - */ - public BoxAIAgentAsk(BoxAIAgentAskBasicText basicText, BoxAIAgentAskBasicText basicTextMulti, - BoxAIAgentAskLongText longText, BoxAIAgentAskLongText longTextMulti) { - super(TYPE); - this.basicText = basicText; - this.basicTextMulti = basicTextMulti; - this.longText = longText; - this.longTextMulti = longTextMulti; - } - - /** - * Constructs an AI agent with default settings. - * @param jsonObject JSON object representing the AI agent. - */ - public BoxAIAgentAsk(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the AI agent tool used to handle basic text. - * @return The AI agent tool used to handle basic text. - */ - public BoxAIAgentAskBasicText getBasicText() { - return basicText; - } - - /** - * Sets the AI agent tool used to handle basic text. - * @param basicText The AI agent tool used to handle basic text. - */ - public void setBasicText(BoxAIAgentAskBasicText basicText) { - this.basicText = basicText; - } - - /** - * Gets the AI agent tool used to handle basic text. - * @return The AI agent tool used to handle basic text. - */ - public BoxAIAgentAskBasicText getBasicTextMulti() { - return basicTextMulti; - } - - /** - * Sets the AI agent tool used to handle basic text. - * @param basicTextMulti The AI agent tool used to handle basic text. - */ - public void setBasicTextMulti(BoxAIAgentAskBasicText basicTextMulti) { - this.basicTextMulti = basicTextMulti; - } - - /** - * Gets the AI agent tool used to handle longer text. - * @return The AI agent tool used to handle longer text. - */ - public BoxAIAgentAskLongText getLongText() { - return longText; - } - - /** - * Sets the AI agent tool used to handle longer text. - * @param longText The AI agent tool used to handle longer text. - */ - public void setLongText(BoxAIAgentAskLongText longText) { - this.longText = longText; - } - - /** - * Gets the AI agent tool used to handle longer text. - * @return The AI agent tool used to handle longer text. - */ - public BoxAIAgentAskLongText getLongTextMulti() { - return longTextMulti; - } - - /** - * Sets the AI agent tool used to handle longer text. - * @param longTextMulti The AI agent tool used to handle longer text. - */ - public void setLongTextMulti(BoxAIAgentAskLongText longTextMulti) { - this.longTextMulti = longTextMulti; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - JsonValue memberValue = member.getValue(); - try { - switch (memberName) { - case "basic_text": - this.basicText = new BoxAIAgentAskBasicText(memberValue.asObject()); - break; - case "basic_text_multi": - this.basicTextMulti = new BoxAIAgentAskBasicText(memberValue.asObject()); - break; - case "long_text": - this.longText = new BoxAIAgentAskLongText(memberValue.asObject()); - break; - case "long_text_multi": - this.longTextMulti = new BoxAIAgentAskLongText(memberValue.asObject()); - break; - default: - break; - } - } catch (Exception e) { - throw new BoxAPIException("Could not parse JSON response.", e); - } - } - - @Override - public JsonObject getJSONObject() { - JsonObject jsonObject = new JsonObject(); - JsonUtils.addIfNotNull(jsonObject, "type", this.getType()); - if (this.basicText != null) { - jsonObject.add("basic_text", this.basicText.getJSONObject()); - } - if (this.basicTextMulti != null) { - jsonObject.add("basic_text_multi", this.basicTextMulti.getJSONObject()); - } - if (this.longText != null) { - jsonObject.add("long_text", this.longText.getJSONObject()); - } - if (this.longTextMulti != null) { - jsonObject.add("long_text_multi", this.longTextMulti.getJSONObject()); - } - return jsonObject; - } -} - diff --git a/src/main/java/com/box/sdk/BoxAIAgentAskBasicText.java b/src/main/java/com/box/sdk/BoxAIAgentAskBasicText.java deleted file mode 100644 index a0287956f..000000000 --- a/src/main/java/com/box/sdk/BoxAIAgentAskBasicText.java +++ /dev/null @@ -1,187 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.internal.utils.JsonUtils; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; - -/** - * AI agent tool used to handle basic text. - */ -public class BoxAIAgentAskBasicText extends BoxJSONObject { - /** - * The parameters for the LLM endpoint specific to OpenAI / Google models. - */ - private BoxAIAgentLLMEndpointParams llmEndpointParams; - /** - * The model used for the AI Agent for basic text. - */ - private String model; - /** - * The number of tokens for completion. - */ - private int numTokensForCompletion; - /** - * The prompt template contains contextual information of the request and the user prompt. - * When passing prompt_template parameters, you must include inputs for {user_question} and {content}. - * Input for {current_date} is optional, depending on the use. - */ - private String promptTemplate; - /** - * System messages try to help the LLM "understand" its role and what it is supposed to do. - */ - private String systemMessage; - - /** - * Constructs an AI agent with default settings. - * @param llmEndpointParams The parameters for the LLM endpoint specific to OpenAI / Google models. - * @param model The model used for the AI Agent for basic text. - * @param numTokensForCompletion The number of tokens for completion. - * @param promptTemplate The prompt template contains contextual information of the request and the user prompt. - * When passing prompt_template parameters, you must include inputs for {user_question} and {content}. - * Input for {current_date} is optional, depending on the use. - * @param systemMessage System messages try to help the LLM "understand" its role and what it is supposed to do. - */ - public BoxAIAgentAskBasicText(BoxAIAgentLLMEndpointParams llmEndpointParams, String model, - int numTokensForCompletion, String promptTemplate, String systemMessage) { - super(); - this.llmEndpointParams = llmEndpointParams; - this.model = model; - this.numTokensForCompletion = numTokensForCompletion; - this.promptTemplate = promptTemplate; - this.systemMessage = systemMessage; - } - - /** - * Constructs an AI agent with default settings. - * @param jsonObject JSON object representing the AI agent. - */ - public BoxAIAgentAskBasicText(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the parameters for the LLM endpoint specific to OpenAI / Google models. - * @return The parameters for the LLM endpoint specific to OpenAI / Google models. - */ - public BoxAIAgentLLMEndpointParams getLlmEndpointParams() { - return llmEndpointParams; - } - - /** - * Sets the parameters for the LLM endpoint specific to OpenAI / Google models. - * @param llmEndpointParams The parameters for the LLM endpoint specific to OpenAI / Google models. - */ - public void setLlmEndpointParams(BoxAIAgentLLMEndpointParams llmEndpointParams) { - this.llmEndpointParams = llmEndpointParams; - } - - /** - * Gets the model used for the AI Agent for basic text. - * @return The model used for the AI Agent for basic text. - */ - public String getModel() { - return model; - } - - /** - * Sets the model used for the AI Agent for basic text. - * @param model The model used for the AI Agent for basic text. - */ - public void setModel(String model) { - this.model = model; - } - - /** - * Gets the number of tokens for completion. - * @return The number of tokens for completion. - */ - public int getNumTokensForCompletion() { - return numTokensForCompletion; - } - - /** - * Sets the number of tokens for completion. - * @param numTokensForCompletion The number of tokens for completion. - */ - public void setNumTokensForCompletion(int numTokensForCompletion) { - this.numTokensForCompletion = numTokensForCompletion; - } - - /** - * Gets the prompt template contains contextual information of the request and the user prompt. - * When passing prompt_template parameters, you must include inputs for {user_question} and {content}. - * Input for {current_date} is optional, depending on the use. - * @return The prompt template contains contextual information of the request and the user prompt. - */ - public String getPromptTemplate() { - return promptTemplate; - } - - /** - * Sets the prompt template contains contextual information of the request and the user prompt. - * When passing prompt_template parameters, you must include inputs for {user_question} and {content}. - * Input for {current_date} is optional, depending on the use. - * @param promptTemplate The prompt template contains contextual information of the request and the user prompt. - */ - public void setPromptTemplate(String promptTemplate) { - this.promptTemplate = promptTemplate; - } - - /** - * Gets the system messages try to help the LLM "understand" its role and what it is supposed to do. - * @return The system messages try to help the LLM "understand" its role and what it is supposed to do. - */ - public String getSystemMessage() { - return systemMessage; - } - - /** - * Sets the system messages try to help the LLM "understand" its role and what it is supposed to do. - * @param systemMessage The system messages try to help the LLM "understand" its role and what it is supposed to do. - */ - public void setSystemMessage(String systemMessage) { - this.systemMessage = systemMessage; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - JsonValue memberValue = member.getValue(); - try { - switch (memberName) { - case "llm_endpoint_params": - this.llmEndpointParams = BoxAIAgentLLMEndpointParams.parse(memberValue.asObject()); - break; - case "model": - this.model = memberValue.asString(); - break; - case "num_tokens_for_completion": - this.numTokensForCompletion = memberValue.asInt(); - break; - case "prompt_template": - this.promptTemplate = memberValue.asString(); - break; - case "system_message": - this.systemMessage = memberValue.asString(); - break; - default: - break; - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, memberValue.toString(), e); - } - } - - public JsonObject getJSONObject() { - JsonObject jsonObject = new JsonObject(); - if (this.llmEndpointParams != null) { - jsonObject.add("llm_endpoint_params", this.llmEndpointParams.getJSONObject()); - } - JsonUtils.addIfNotNull(jsonObject, "model", this.model); - JsonUtils.addIfNotNull(jsonObject, "num_tokens_for_completion", this.numTokensForCompletion); - JsonUtils.addIfNotNull(jsonObject, "prompt_template", this.promptTemplate); - JsonUtils.addIfNotNull(jsonObject, "system_message", this.systemMessage); - return jsonObject; - } -} diff --git a/src/main/java/com/box/sdk/BoxAIAgentAskLongText.java b/src/main/java/com/box/sdk/BoxAIAgentAskLongText.java deleted file mode 100644 index 2193ed103..000000000 --- a/src/main/java/com/box/sdk/BoxAIAgentAskLongText.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.internal.utils.JsonUtils; -import com.eclipsesource.json.JsonObject; - -/** - * Represents an AI agent tool used to handle longer text. - */ -public class BoxAIAgentAskLongText extends BoxJSONObject { - /** - * Embeddings used by the AI agent. - */ - private BoxAIAgentEmbeddings embeddings; - /** - * The parameters for the LLM endpoint specific to OpenAI / Google models. - */ - private BoxAIAgentLLMEndpointParams llmEndpointParams; - /** - * The model used for the AI Agent for basic text. - */ - private String model; - /** - * The number of tokens for completion. - */ - private int numTokensForCompletion; - /** - * The prompt template contains contextual information of the request and the user prompt. - * When passing prompt_template parameters, you must include inputs for {user_question} and {content}. - * Input for {current_date} is optional, depending on the use. - */ - private String promptTemplate; - /** - * System messages try to help the LLM "understand" its role and what it is supposed to do. - */ - private String systemMessage; - - /** - * Constructs an AI agent with default settings. - * @param embeddings Embeddings used by the AI agent. - * @param llmEndpointParams The parameters for the LLM endpoint specific to OpenAI / Google models. - * Value can be "google_params" or "openai_params". - * @param model The model used for the AI Agent for basic text. - * @param numTokensForCompletion The number of tokens for completion. - * @param promptTemplate The prompt template contains contextual information of the request and the user prompt. - * When passing prompt_template parameters, you must include inputs for {user_question} and {content}. - * Input for {current_date} is optional, depending on the use. - * @param systemMessage System messages try to help the LLM "understand" its role and what it is supposed to do. - */ - public BoxAIAgentAskLongText(BoxAIAgentEmbeddings embeddings, - BoxAIAgentLLMEndpointParams llmEndpointParams, - String model, int numTokensForCompletion, - String promptTemplate, - String systemMessage) { - this.embeddings = embeddings; - this.llmEndpointParams = llmEndpointParams; - this.model = model; - this.numTokensForCompletion = numTokensForCompletion; - this.promptTemplate = promptTemplate; - this.systemMessage = systemMessage; - } - - /** - * Constructs an AI agent with default settings. - * @param jsonObject JSON object representing the AI agent. - */ - public BoxAIAgentAskLongText(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the embeddings used by the AI agent. - * @return The embeddings used by the AI agent. - */ - public BoxAIAgentEmbeddings getEmbeddings() { - return embeddings; - } - - /** - * Sets the embeddings used by the AI agent. - * @param embeddings The embeddings used by the AI agent. - */ - public void setEmbeddings(BoxAIAgentEmbeddings embeddings) { - this.embeddings = embeddings; - } - - /** - * Gets the parameters for the LLM endpoint specific to OpenAI / Google models. - * @return The parameters for the LLM endpoint specific to OpenAI / Google models. - */ - public BoxAIAgentLLMEndpointParams getLlmEndpointParams() { - return llmEndpointParams; - } - - /** - * Sets the parameters for the LLM endpoint specific to OpenAI / Google models. - * @param llmEndpointParams The parameters for the LLM endpoint specific to OpenAI / Google models. - */ - public void setLlmEndpointParams(BoxAIAgentLLMEndpointParams llmEndpointParams) { - this.llmEndpointParams = llmEndpointParams; - } - - /** - * Gets the model used for the AI Agent for basic text. - * @return The model used for the AI Agent for basic text. - */ - public String getModel() { - return model; - } - - /** - * Sets the model used for the AI Agent for basic text. - * @param model The model used for the AI Agent for basic text. - */ - public void setModel(String model) { - this.model = model; - } - - /** - * Gets the number of tokens for completion. - * @return The number of tokens for completion. - */ - public int getNumTokensForCompletion() { - return numTokensForCompletion; - } - - /** - * Sets the number of tokens for completion. - * @param numTokensForCompletion The number of tokens for completion. - */ - public void setNumTokensForCompletion(int numTokensForCompletion) { - this.numTokensForCompletion = numTokensForCompletion; - } - - /** - * Gets the prompt template contains contextual information of the request and the user prompt. - * When passing prompt_template parameters, you must include inputs for {user_question} and {content}. - * Input for {current_date} is optional, depending on the use. - * @return The prompt template contains contextual information of the request and the user prompt. - */ - public String getPromptTemplate() { - return promptTemplate; - } - - /** - * Sets the prompt template contains contextual information of the request and the user prompt. - * When passing prompt_template parameters, you must include inputs for {user_question} and {content}. - * Input for {current_date} is optional, depending on the use. - * @param promptTemplate The prompt template contains contextual information of the request and the user prompt. - */ - public void setPromptTemplate(String promptTemplate) { - this.promptTemplate = promptTemplate; - } - - /** - * Gets the system messages try to help the LLM "understand" its role and what it is supposed to do. - * @return The system messages try to help the LLM "understand" its role and what it is supposed to do. - */ - public String getSystemMessage() { - return systemMessage; - } - - /** - * Sets the system messages try to help the LLM "understand" its role and what it is supposed to do. - * @param systemMessage The system messages try to help the LLM "understand" its role and what it is supposed to do. - */ - public void setSystemMessage(String systemMessage) { - this.systemMessage = systemMessage; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - try { - switch (memberName) { - case "embeddings": - this.embeddings = new BoxAIAgentEmbeddings(member.getValue().asObject()); - break; - case "llm_endpoint_params": - this.llmEndpointParams = BoxAIAgentLLMEndpointParams.parse(member.getValue().asObject()); - break; - case "model": - this.model = member.getValue().asString(); - break; - case "num_tokens_for_completion": - this.numTokensForCompletion = member.getValue().asInt(); - break; - case "prompt_template": - this.promptTemplate = member.getValue().asString(); - break; - case "system_message": - this.systemMessage = member.getValue().asString(); - break; - default: - break; - } - } catch (Exception e) { - throw new BoxAPIException("Could not parse JSON response.", e); - } - } - - public JsonObject getJSONObject() { - JsonObject jsonObject = new JsonObject(); - if (this.embeddings != null) { - jsonObject.add("embeddings", this.embeddings.getJSONObject()); - } - if (this.llmEndpointParams != null) { - jsonObject.add("llm_endpoint_params", this.llmEndpointParams.getJSONObject()); - } - JsonUtils.addIfNotNull(jsonObject, "model", this.model); - JsonUtils.addIfNotNull(jsonObject, "num_tokens_for_completion", this.numTokensForCompletion); - JsonUtils.addIfNotNull(jsonObject, "prompt_template", this.promptTemplate); - JsonUtils.addIfNotNull(jsonObject, "system_message", this.systemMessage); - return jsonObject; - } -} diff --git a/src/main/java/com/box/sdk/BoxAIAgentEmbeddings.java b/src/main/java/com/box/sdk/BoxAIAgentEmbeddings.java deleted file mode 100644 index 6cb9261b1..000000000 --- a/src/main/java/com/box/sdk/BoxAIAgentEmbeddings.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.internal.utils.JsonUtils; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; - -/** - * Represents the embeddings used by an AI agent. - */ -public class BoxAIAgentEmbeddings extends BoxJSONObject { - /** - * The model used for the AI Agent for calculating embeddings. - */ - private String model; - /** - * The strategy used for the AI Agent for calculating embeddings. - */ - private BoxAIAgentEmbeddingsStrategy strategy; - - /** - * Constructs an AI agent with default settings. - * @param model The model used for the AI Agent for calculating embeddings. - * @param strategy The strategy used for the AI Agent for calculating embeddings. - */ - public BoxAIAgentEmbeddings(String model, BoxAIAgentEmbeddingsStrategy strategy) { - this.model = model; - this.strategy = strategy; - } - - /** - * Constructs an AI agent with default settings. - * @param jsonObject JSON object representing the AI agent. - */ - public BoxAIAgentEmbeddings(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the model used for the AI Agent for calculating embeddings. - * @return The model used for the AI Agent for calculating embeddings. - */ - public String getModel() { - return model; - } - - /** - * Sets the model used for the AI Agent for calculating embeddings. - * @param model The model used for the AI Agent for calculating embeddings. - */ - public void setModel(String model) { - this.model = model; - } - - /** - * Gets the strategy used for the AI Agent for calculating embeddings. - * @return The strategy used for the AI Agent for calculating embeddings. - */ - public BoxAIAgentEmbeddingsStrategy getStrategy() { - return strategy; - } - - /** - * Sets the strategy used for the AI Agent for calculating embeddings. - * @param strategy The strategy used for the AI Agent for calculating embeddings. - */ - public void setStrategy(BoxAIAgentEmbeddingsStrategy strategy) { - this.strategy = strategy; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - JsonValue value = member.getValue(); - switch (memberName) { - case "model": - this.model = member.getValue().asString(); - break; - case "strategy": - this.strategy = new BoxAIAgentEmbeddingsStrategy(value.asObject()); - break; - default: - break; - } - } - - public JsonObject getJSONObject() { - JsonObject jsonObject = new JsonObject(); - JsonUtils.addIfNotNull(jsonObject, "model", this.model); - if (this.strategy != null) { - jsonObject.add("strategy", this.strategy.getJSONObject()); - } - return jsonObject; - } -} diff --git a/src/main/java/com/box/sdk/BoxAIAgentEmbeddingsStrategy.java b/src/main/java/com/box/sdk/BoxAIAgentEmbeddingsStrategy.java deleted file mode 100644 index 4d2bbecfe..000000000 --- a/src/main/java/com/box/sdk/BoxAIAgentEmbeddingsStrategy.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.internal.utils.JsonUtils; -import com.eclipsesource.json.JsonObject; - -/** - * Represents the strategy used for the AI Agent for calculating embeddings. - */ -public class BoxAIAgentEmbeddingsStrategy extends BoxJSONObject { - /** - * The ID of the strategy used for the AI Agent for calculating embeddings. - */ - private String id; - /** - * The number of tokens per chunk used for the AI Agent for calculating embeddings. - */ - private int numTokensPerChunk; - - /** - * Constructs an AI agent with default settings. - * @param id The ID of the strategy used for the AI Agent for calculating embeddings. - * @param numTokensPerChunk The number of tokens per chunk used for the AI Agent for calculating embeddings. - */ - public BoxAIAgentEmbeddingsStrategy(String id, int numTokensPerChunk) { - this.id = id; - this.numTokensPerChunk = numTokensPerChunk; - } - - /** - * Constructs an AI agent with default settings. - * @param jsonObject JSON object representing the AI agent. - */ - public BoxAIAgentEmbeddingsStrategy(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the ID of the strategy used for the AI Agent for calculating embeddings. - * @return The ID of the strategy used for the AI Agent for calculating embeddings. - */ - public String getId() { - return id; - } - - /** - * Sets the ID of the strategy used for the AI Agent for calculating embeddings. - * @param id The ID of the strategy used for the AI Agent for calculating embeddings. - */ - public void setId(String id) { - this.id = id; - } - - /** - * Gets the number of tokens per chunk used for the AI Agent for calculating embeddings. - * @return The number of tokens per chunk used for the AI Agent for calculating embeddings. - */ - public int getNumTokensPerChunk() { - return numTokensPerChunk; - } - - /** - * Sets the number of tokens per chunk used for the AI Agent for calculating embeddings. - * @param numTokensPerChunk The number of tokens per chunk used for the AI Agent for calculating embeddings. - */ - public void setNumTokensPerChunk(int numTokensPerChunk) { - this.numTokensPerChunk = numTokensPerChunk; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - if (memberName.equals("id")) { - this.id = member.getValue().asString(); - } else if (memberName.equals("num_tokens_per_chunk")) { - this.numTokensPerChunk = member.getValue().asInt(); - } - } - - public JsonObject getJSONObject() { - JsonObject jsonObject = new JsonObject(); - JsonUtils.addIfNotNull(jsonObject, "id", this.id); - JsonUtils.addIfNotNull(jsonObject, "num_tokens_per_chunk", this.numTokensPerChunk); - return jsonObject; - } -} diff --git a/src/main/java/com/box/sdk/BoxAIAgentExtract.java b/src/main/java/com/box/sdk/BoxAIAgentExtract.java deleted file mode 100644 index ba7ff31ea..000000000 --- a/src/main/java/com/box/sdk/BoxAIAgentExtract.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.internal.utils.JsonUtils; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; - -/** - * Represents an AI Agent used for extraction. - */ -@BoxResourceType("ai_agent_extract") -public class BoxAIAgentExtract extends BoxAIAgent { - - /** - * The type of the AI Ask agent. - */ - public static final String TYPE = "ai_agent_extract"; - - /** - * AI agent tool used to handle basic text. - */ - private BoxAIAgentAskBasicText basicText; - /** - * AI agent tool used to handle longer text. - */ - private BoxAIAgentAskLongText longText; - - /** - * Constructs an AI agent with default settings. - * @param basicText AI agent tool used to handle basic text. - * @param longText AI agent tool used to handle longer text. - */ - public BoxAIAgentExtract(BoxAIAgentAskBasicText basicText, - BoxAIAgentAskLongText longText) { - super(TYPE); - this.basicText = basicText; - this.longText = longText; - } - - /** - * Constructs an AI agent with default settings. - * @param jsonObject JSON object representing the AI agent. - */ - public BoxAIAgentExtract(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the AI agent tool used to handle basic text. - * @return The AI agent tool used to handle basic text. - */ - public BoxAIAgentAskBasicText getBasicText() { - return basicText; - } - - /** - * Sets the AI agent tool used to handle basic text. - * @param basicText The AI agent tool used to handle basic text. - */ - public void setBasicText(BoxAIAgentAskBasicText basicText) { - this.basicText = basicText; - } - - /** - * Gets the AI agent tool used to handle longer text. - * @return The AI agent tool used to handle longer text. - */ - public BoxAIAgentAskLongText getLongText() { - return longText; - } - - /** - * Sets the AI agent tool used to handle longer text. - * @param longText The AI agent tool used to handle longer text. - */ - public void setLongText(BoxAIAgentAskLongText longText) { - this.longText = longText; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - JsonValue memberValue = member.getValue(); - try { - switch (memberName) { - case "basic_text": - this.basicText = new BoxAIAgentAskBasicText(memberValue.asObject()); - break; - case "long_text": - this.longText = new BoxAIAgentAskLongText(memberValue.asObject()); - break; - default: - break; - } - } catch (Exception e) { - throw new BoxAPIException("Could not parse JSON response.", e); - } - } - - @Override - public JsonObject getJSONObject() { - JsonObject jsonObject = new JsonObject(); - JsonUtils.addIfNotNull(jsonObject, "type", this.getType()); - if (this.basicText != null) { - jsonObject.add("basic_text", this.basicText.getJSONObject()); - } - if (this.longText != null) { - jsonObject.add("long_text", this.longText.getJSONObject()); - } - return jsonObject; - } -} - diff --git a/src/main/java/com/box/sdk/BoxAIAgentExtractStructured.java b/src/main/java/com/box/sdk/BoxAIAgentExtractStructured.java deleted file mode 100644 index dc3dee51c..000000000 --- a/src/main/java/com/box/sdk/BoxAIAgentExtractStructured.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.internal.utils.JsonUtils; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; - -/** - * Represents an AI Agent used for extraction. - */ -@BoxResourceType("ai_agent_extract_structured") -public class BoxAIAgentExtractStructured extends BoxAIAgent { - - /** - * The type of the AI Ask agent. - */ - public static final String TYPE = "ai_agent_extract_structured"; - - /** - * AI agent tool used to handle basic text. - */ - private BoxAIAgentAskBasicText basicText; - /** - * AI agent tool used to handle longer text. - */ - private BoxAIAgentAskLongText longText; - - /** - * Constructs an AI agent with default settings. - * @param basicText AI agent tool used to handle basic text. - * @param longText AI agent tool used to handle longer text. - */ - public BoxAIAgentExtractStructured(BoxAIAgentAskBasicText basicText, - BoxAIAgentAskLongText longText) { - super(TYPE); - this.basicText = basicText; - this.longText = longText; - } - - /** - * Constructs an AI agent with default settings. - * @param jsonObject JSON object representing the AI agent. - */ - public BoxAIAgentExtractStructured(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the AI agent tool used to handle basic text. - * @return The AI agent tool used to handle basic text. - */ - public BoxAIAgentAskBasicText getBasicText() { - return basicText; - } - - /** - * Sets the AI agent tool used to handle basic text. - * @param basicText The AI agent tool used to handle basic text. - */ - public void setBasicText(BoxAIAgentAskBasicText basicText) { - this.basicText = basicText; - } - - /** - * Gets the AI agent tool used to handle longer text. - * @return The AI agent tool used to handle longer text. - */ - public BoxAIAgentAskLongText getLongText() { - return longText; - } - - /** - * Sets the AI agent tool used to handle longer text. - * @param longText The AI agent tool used to handle longer text. - */ - public void setLongText(BoxAIAgentAskLongText longText) { - this.longText = longText; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - JsonValue memberValue = member.getValue(); - try { - switch (memberName) { - case "basic_text": - this.basicText = new BoxAIAgentAskBasicText(memberValue.asObject()); - break; - case "long_text": - this.longText = new BoxAIAgentAskLongText(memberValue.asObject()); - break; - default: - break; - } - } catch (Exception e) { - throw new BoxAPIException("Could not parse JSON response.", e); - } - } - - @Override - public JsonObject getJSONObject() { - JsonObject jsonObject = new JsonObject(); - JsonUtils.addIfNotNull(jsonObject, "type", this.getType()); - if (this.basicText != null) { - jsonObject.add("basic_text", this.basicText.getJSONObject()); - } - if (this.longText != null) { - jsonObject.add("long_text", this.longText.getJSONObject()); - } - return jsonObject; - } -} - diff --git a/src/main/java/com/box/sdk/BoxAIAgentLLMEndpointParams.java b/src/main/java/com/box/sdk/BoxAIAgentLLMEndpointParams.java deleted file mode 100644 index 9d1428e73..000000000 --- a/src/main/java/com/box/sdk/BoxAIAgentLLMEndpointParams.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.internal.utils.JsonUtils; -import com.eclipsesource.json.JsonObject; - -/** - * The parameters for the LLM endpoint specific to OpenAI / Google models. - */ -public class BoxAIAgentLLMEndpointParams extends BoxJSONObject { - /** - * The type of the LLM endpoint parameters. - * Value can be "google_params" or "openai_params". - */ - private String type; - - /** - * Constructs LLM endpoint parameters with default settings. - */ - public BoxAIAgentLLMEndpointParams(String type) { - super(); - this.type = type; - } - - /** - * Constructs LLM endpoint parameters with default settings. - * @param jsonObject JSON object representing the LLM endpoint parameters. - */ - public BoxAIAgentLLMEndpointParams(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Parses a JSON object representing LLM endpoint parameters. - * @param jsonObject JSON object representing the LLM endpoint parameters. - * @return The LLM endpoint parameters parsed from the JSON object. - */ - public static BoxAIAgentLLMEndpointParams parse(JsonObject jsonObject) { - String type = jsonObject.get("type").asString(); - switch (type) { - case BoxAIAgentLLMEndpointParamsGoogle.TYPE: - return new BoxAIAgentLLMEndpointParamsGoogle(jsonObject); - case BoxAIAgentLLMEndpointParamsOpenAI.TYPE: - return new BoxAIAgentLLMEndpointParamsOpenAI(jsonObject); - default: - throw new IllegalArgumentException("Invalid LLM endpoint params type: " + type); - } - } - - /** - * Gets the type of the LLM endpoint parameters. - * @return The type of the LLM endpoint parameters. - */ - public String getType() { - return type; - } - - /** - * Sets the type of the LLM endpoint parameters. - * @param type The type of the LLM endpoint parameters. - */ - public void setType(String type) { - this.type = type; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - if (memberName.equals("type")) { - this.type = member.getValue().asString(); - } - } - - public JsonObject getJSONObject() { - JsonObject jsonObject = new JsonObject(); - JsonUtils.addIfNotNull(jsonObject, "type", this.type); - return jsonObject; - } -} - - diff --git a/src/main/java/com/box/sdk/BoxAIAgentLLMEndpointParamsGoogle.java b/src/main/java/com/box/sdk/BoxAIAgentLLMEndpointParamsGoogle.java deleted file mode 100644 index 2a5cabe00..000000000 --- a/src/main/java/com/box/sdk/BoxAIAgentLLMEndpointParamsGoogle.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.internal.utils.JsonUtils; -import com.eclipsesource.json.JsonObject; - -/** - * Represents the AI LLM endpoint params Google object. - */ -public class BoxAIAgentLLMEndpointParamsGoogle extends BoxAIAgentLLMEndpointParams { - - /** - * The type of the LLM endpoint parameters. - */ - public static final String TYPE = "google_params"; - - /** - * The temperature is used for sampling during response generation, which occurs when top-P and top-K are applied. - * Temperature controls the degree of randomness in token selection. - */ - private Double temperature; - /** - * Top-K changes how the model selects tokens for output. - * A top-K of 1 means the next selected token is the most probable among all tokens in the model's vocabulary - * (also called greedy decoding), while a top-K of 3 means that the next token is selected from among the three - * most probable tokens by using temperature. - */ - private Integer topK; - /** - * Top-P changes how the model selects tokens for output. - * Tokens are selected from the most (see top-K) to least probable until the sum of their probabilities equals the - * top-P value. - */ - private Double topP; - - /** - * Constructs an AI agent with default settings. - * @param temperature The temperature is used for sampling during response generation, which occurs when top-P and top-K are applied. - * Temperature controls the degree of randomness in token selection. - * @param topK Top-K changes how the model selects tokens for output. - * A top-K of 1 means the next selected token is the most probable among all tokens in the model's vocabulary - * (also called greedy decoding), while a top-K of 3 means that the next token is selected from among the three - * most probable tokens by using temperature. - * @param topP Top-P changes how the model selects tokens for output. - * Tokens are selected from the most (see top-K) to least probable until the sum of their probabilities equals the - * top-P value. - */ - public BoxAIAgentLLMEndpointParamsGoogle(Double temperature, Integer topK, Double topP) { - super(TYPE); - this.temperature = temperature; - this.topK = topK; - this.topP = topP; - } - - /** - * Constructs an AI agent with default settings. - * @param jsonObject JSON object representing the AI agent. - */ - public BoxAIAgentLLMEndpointParamsGoogle(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the temperature used for sampling during response generation, which occurs when top-P and top-K are applied. - * @return The temperature used for sampling during response generation, which occurs when top-P and top-K are applied. - */ - public Double getTemperature() { - return temperature; - } - - /** - * Sets the temperature used for sampling during response generation, which occurs when top-P and top-K are applied. - * @param temperature The temperature used for sampling during response generation, which occurs when top-P and top-K are applied. - */ - public void setTemperature(Double temperature) { - this.temperature = temperature; - } - - /** - * Gets the top-K value. - * @return The top-K value. - */ - public Integer getTopK() { - return topK; - } - - /** - * Sets the top-K value. - * @param topK The top-K value. - */ - public void setTopK(Integer topK) { - this.topK = topK; - } - - /** - * Gets the top-P value. - * @return The top-P value. - */ - public Double getTopP() { - return topP; - } - - /** - * Sets the top-P value. - * @param topP The top-P value. - */ - public void setTopP(Double topP) { - this.topP = topP; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - switch (memberName) { - case "temperature": - this.temperature = member.getValue().asDouble(); - break; - case "top_k": - this.topK = member.getValue().asInt(); - break; - case "top_p": - this.topP = member.getValue().asDouble(); - break; - default: - break; - } - } - - public JsonObject getJSONObject() { - JsonObject jsonObject = new JsonObject(); - JsonUtils.addIfNotNull(jsonObject, "type", this.getType()); - JsonUtils.addIfNotNull(jsonObject, "temperature", this.temperature); - JsonUtils.addIfNotNull(jsonObject, "top_k", this.topK); - JsonUtils.addIfNotNull(jsonObject, "top_p", this.topP); - return jsonObject; - } -} diff --git a/src/main/java/com/box/sdk/BoxAIAgentLLMEndpointParamsOpenAI.java b/src/main/java/com/box/sdk/BoxAIAgentLLMEndpointParamsOpenAI.java deleted file mode 100644 index 00ecad81a..000000000 --- a/src/main/java/com/box/sdk/BoxAIAgentLLMEndpointParamsOpenAI.java +++ /dev/null @@ -1,193 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.internal.utils.JsonUtils; -import com.eclipsesource.json.JsonObject; - -/** - * Represents the AI LLM endpoint params OpenAI object. - */ -public class BoxAIAgentLLMEndpointParamsOpenAI extends BoxAIAgentLLMEndpointParams { - - /** - * The type of the LLM endpoint parameters. - */ - public static final String TYPE = "openai_params"; - - /** - * Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text - * so far, decreasing the model's likelihood to repeat the same line verbatim. - */ - private Double frequencyPenalty; - /** - * Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, - * increasing the model's likelihood to talk about new topics. - */ - private Double presencePenalty; - /** - * Up to 4 sequences where the API will stop generating further tokens. - */ - private String stop; - /** - * What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, - * while lower values like 0.2 will make it more focused and deterministic. - * We generally recommend altering this or top_p but not both. - */ - private Double temperature; - /** - * An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of - * the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass - * are considered. We generally recommend altering this or temperature but not both. - */ - private Double topP; - - /** - * Constructs an AI agent with default settings. - * @param frequencyPenalty Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text - * so far, decreasing the model's likelihood to repeat the same line verbatim. - * @param presencePenalty Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, - * increasing the model's likelihood to talk about new topics. - * @param stop Up to 4 sequences where the API will stop generating further tokens. - * @param temperature What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, - * while lower values like 0.2 will make it more focused and deterministic. - * We generally recommend altering this or top_p but not both. - * @param topP An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of - * the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass - * are considered. We generally recommend altering this or temperature but not both. - */ - public BoxAIAgentLLMEndpointParamsOpenAI(Double frequencyPenalty, - Double presencePenalty, - String stop, - Double temperature, - Double topP) { - super(TYPE); - this.frequencyPenalty = frequencyPenalty; - this.presencePenalty = presencePenalty; - this.stop = stop; - this.temperature = temperature; - this.topP = topP; - } - - /** - * Constructs an AI agent with default settings. - * @param jsonObject JSON object representing the AI agent. - */ - public BoxAIAgentLLMEndpointParamsOpenAI(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the frequency penalty. - * @return The frequency penalty. - */ - public Double getFrequencyPenalty() { - return frequencyPenalty; - } - - /** - * Sets the frequency penalty. - * @param frequencyPenalty The frequency penalty. - */ - public void setFrequencyPenalty(Double frequencyPenalty) { - this.frequencyPenalty = frequencyPenalty; - } - - /** - * Gets the presence penalty. - * @return The presence penalty. - */ - public Double getPresencePenalty() { - return presencePenalty; - } - - /** - * Sets the presence penalty. - * @param presencePenalty The presence penalty. - */ - public void setPresencePenalty(Double presencePenalty) { - this.presencePenalty = presencePenalty; - } - - /** - * Gets the stop. - * @return The stop. - */ - public String getStop() { - return stop; - } - - /** - * Sets the stop. - * @param stop The stop. - */ - public void setStop(String stop) { - this.stop = stop; - } - - /** - * Gets the temperature. - * @return The temperature. - */ - public Double getTemperature() { - return temperature; - } - - /** - * Sets the temperature. - * @param temperature The temperature. - */ - public void setTemperature(Double temperature) { - this.temperature = temperature; - } - - /** - * Gets the top-P. - * @return The top-P. - */ - public Double getTopP() { - return topP; - } - - /** - * Sets the top-P. - * @param topP The top-P. - */ - public void setTopP(Double topP) { - this.topP = topP; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - switch (memberName) { - case "frequency_penalty": - this.frequencyPenalty = member.getValue().asDouble(); - break; - case "presence_penalty": - this.presencePenalty = member.getValue().asDouble(); - break; - case "stop": - this.stop = member.getValue().asString(); - break; - case "temperature": - this.temperature = member.getValue().asDouble(); - break; - case "top_p": - this.topP = member.getValue().asDouble(); - break; - default: - break; - } - } - - public JsonObject getJSONObject() { - JsonObject jsonObject = new JsonObject(); - JsonUtils.addIfNotNull(jsonObject, "type", this.getType()); - JsonUtils.addIfNotNull(jsonObject, "frequency_penalty", this.frequencyPenalty); - JsonUtils.addIfNotNull(jsonObject, "presence_penalty", this.presencePenalty); - JsonUtils.addIfNotNull(jsonObject, "stop", this.stop); - JsonUtils.addIfNotNull(jsonObject, "temperature", this.temperature); - JsonUtils.addIfNotNull(jsonObject, "top_p", this.topP); - return jsonObject; - } -} diff --git a/src/main/java/com/box/sdk/BoxAIAgentTextGen.java b/src/main/java/com/box/sdk/BoxAIAgentTextGen.java deleted file mode 100644 index 47e70dd76..000000000 --- a/src/main/java/com/box/sdk/BoxAIAgentTextGen.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.internal.utils.JsonUtils; -import com.eclipsesource.json.JsonObject; - -/** - * Represents an AI Agent used for generating text. - */ -@BoxResourceType("ai_agent_text_gen") -public class BoxAIAgentTextGen extends BoxAIAgent { - - /** - * The type of the AI Agent for generating text. - */ - public static final String TYPE = "ai_agent_text_gen"; - - /** - * The basic generator used for the AI Agent for generating text. - */ - private BoxAIAgentTextGenBasicGen basicGen; - - /** - * Constructs an AI agent with default settings. - * @param basicGen The basic generator used for the AI Agent for generating text. - */ - public BoxAIAgentTextGen(BoxAIAgentTextGenBasicGen basicGen) { - super(TYPE); - this.basicGen = basicGen; - } - - /** - * Constructs an AI agent with default settings. - * @param jsonObject JSON object representing the AI agent. - */ - public BoxAIAgentTextGen(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the basic generator used for the AI Agent for generating text. - * @return The basic generator used for the AI Agent for generating text. - */ - public BoxAIAgentTextGenBasicGen getBasicGen() { - return basicGen; - } - - /** - * Sets the basic generator used for the AI Agent for generating text. - * @param basicGen The basic generator used for the AI Agent for generating text. - */ - public void setBasicGen(BoxAIAgentTextGenBasicGen basicGen) { - this.basicGen = basicGen; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - if (memberName.equals("basic_gen")) { - this.basicGen = new BoxAIAgentTextGenBasicGen(member.getValue().asObject()); - } - } - - public JsonObject getJSONObject() { - JsonObject jsonObject = new JsonObject(); - JsonUtils.addIfNotNull(jsonObject, "type", this.getType()); - if (this.basicGen != null) { - jsonObject.add("basic_gen", this.basicGen.getJSONObject()); - } - return jsonObject; - } -} diff --git a/src/main/java/com/box/sdk/BoxAIAgentTextGenBasicGen.java b/src/main/java/com/box/sdk/BoxAIAgentTextGenBasicGen.java deleted file mode 100644 index 5bb30f44b..000000000 --- a/src/main/java/com/box/sdk/BoxAIAgentTextGenBasicGen.java +++ /dev/null @@ -1,239 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.internal.utils.JsonUtils; -import com.eclipsesource.json.JsonObject; - -/** - * Represents the AI agent basic tool used to generate text. - */ -public class BoxAIAgentTextGenBasicGen extends BoxJSONObject { - /** - * How the content should be included in a request to the LLM. Input for {content} is optional, depending on the use. - */ - private String contentTemplate; - /** - * Embeddings used by the AI agent. - */ - private BoxAIAgentEmbeddings embeddings; - /** - * The parameters for the LLM endpoint specific to OpenAI / Google models. - */ - private BoxAIAgentLLMEndpointParams llmEndpointParams; - /** - * The model used for the AI Agent for generating text. - */ - private String model; - /** - * The number of tokens for completion. - */ - private int numTokensForCompletion; - /** - * The prompt template contains contextual information of the request and the user prompt. - * When passing prompt_template parameters, you must include inputs for {user_question} and {content}. - * Input for {current_date} is optional, depending on the use. - */ - private String promptTemplate; - /** - * System messages try to help the LLM "understand" its role and what it is supposed to do. - */ - private String systemMessage; - - /** - * Constructs an AI agent with default settings. - * @param contentTemplate How the content should be included in a request to the LLM. Input for {content} is optional, depending on the use. - * @param embeddings Embeddings used by the AI agent. - * @param llmEndpointParams The parameters for the LLM endpoint specific to OpenAI / Google models. - * @param model The model used for the AI Agent for generating text. - * @param numTokensForCompletion The number of tokens for completion. - * @param promptTemplate The prompt template contains contextual information of the request and the user prompt. - * When passing prompt_template parameters, you must include inputs for {user_question} and {content}. - * Input for {current_date} is optional, depending on the use. - * @param systemMessage System messages try to help the LLM "understand" its role and what it is supposed to do. - */ - public BoxAIAgentTextGenBasicGen(String contentTemplate, BoxAIAgentEmbeddings embeddings, - BoxAIAgentLLMEndpointParamsOpenAI llmEndpointParams, String model, - int numTokensForCompletion, String promptTemplate, String systemMessage) { - this.contentTemplate = contentTemplate; - this.embeddings = embeddings; - this.llmEndpointParams = llmEndpointParams; - this.model = model; - this.numTokensForCompletion = numTokensForCompletion; - this.promptTemplate = promptTemplate; - this.systemMessage = systemMessage; - } - - /** - * Constructs an AI agent with default settings. - * @param jsonObject JSON object representing the AI agent. - */ - public BoxAIAgentTextGenBasicGen(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets how the content should be included in a request to the LLM. Input for {content} is optional, - * depending on the use. - * @return How the content should be included in a request to the LLM. - * Input for {content} is optional, depending on the use. - */ - public String getContentTemplate() { - return contentTemplate; - } - - /** - * Sets how the content should be included in a request to the LLM. Input for {content} is optional, - * depending on the use. - * @param contentTemplate How the content should be included in a request to the LLM. - * Input for {content} is optional, depending on the use. - */ - public void setContentTemplate(String contentTemplate) { - this.contentTemplate = contentTemplate; - } - - /** - * Gets the embeddings used by the AI agent. - * @return The embeddings used by the AI agent. - */ - public BoxAIAgentEmbeddings getEmbeddings() { - return embeddings; - } - - /** - * Sets the embeddings used by the AI agent. - * @param embeddings The embeddings used by the AI agent. - */ - public void setEmbeddings(BoxAIAgentEmbeddings embeddings) { - this.embeddings = embeddings; - } - - /** - * Gets the parameters for the LLM endpoint specific to OpenAI / Google models. - * @return The parameters for the LLM endpoint specific to OpenAI / Google models. - */ - public BoxAIAgentLLMEndpointParams getLlmEndpointParams() { - return llmEndpointParams; - } - - /** - * Sets the parameters for the LLM endpoint specific to OpenAI / Google models. - * @param llmEndpointParams The parameters for the LLM endpoint specific to OpenAI / Google models. - */ - public void setLlmEndpointParams(BoxAIAgentLLMEndpointParamsOpenAI llmEndpointParams) { - this.llmEndpointParams = llmEndpointParams; - } - - /** - * Gets the model used for the AI Agent for generating text. - * @return The model used for the AI Agent for generating text. - */ - public String getModel() { - return model; - } - - /** - * Sets the model used for the AI Agent for generating text. - * @param model The model used for the AI Agent for generating text. - */ - public void setModel(String model) { - this.model = model; - } - - /** - * Gets the number of tokens for completion. - * @return The number of tokens for completion. - */ - public int getNumTokensForCompletion() { - return numTokensForCompletion; - } - - /** - * Sets the number of tokens for completion. - * @param numTokensForCompletion The number of tokens for completion. - */ - public void setNumTokensForCompletion(int numTokensForCompletion) { - this.numTokensForCompletion = numTokensForCompletion; - } - - /** - * Gets the prompt template contains contextual information of the request and the user prompt. - * When passing prompt_template parameters, you must include inputs for {user_question} and {content}. - * Input for {current_date} is optional, depending on the use. - * @return The prompt template contains contextual information of the request and the user prompt. - */ - public String getPromptTemplate() { - return promptTemplate; - } - - /** - * Sets the prompt template contains contextual information of the request and the user prompt. - * When passing prompt_template parameters, you must include inputs for {user_question} and {content}. - * Input for {current_date} is optional, depending on the use. - * @param promptTemplate The prompt template contains contextual information of the request and the user prompt. - */ - public void setPromptTemplate(String promptTemplate) { - this.promptTemplate = promptTemplate; - } - - /** - * Gets the system messages try to help the LLM "understand" its role and what it is supposed to do. - * @return The system messages try to help the LLM "understand" its role and what it is supposed to do. - */ - public String getSystemMessage() { - return systemMessage; - } - - /** - * Sets the system messages try to help the LLM "understand" its role and what it is supposed to do. - * @param systemMessage The system messages try to help the LLM "understand" its role and what it is supposed to do. - */ - public void setSystemMessage(String systemMessage) { - this.systemMessage = systemMessage; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - switch (memberName) { - case "content_template": - this.contentTemplate = member.getValue().asString(); - break; - case "embeddings": - this.embeddings = new BoxAIAgentEmbeddings(member.getValue().asObject()); - break; - case "llm_endpoint_params": - this.llmEndpointParams = BoxAIAgentLLMEndpointParams.parse(member.getValue().asObject()); - break; - case "model": - this.model = member.getValue().asString(); - break; - case "num_tokens_for_completion": - this.numTokensForCompletion = member.getValue().asInt(); - break; - case "prompt_template": - this.promptTemplate = member.getValue().asString(); - break; - case "system_message": - this.systemMessage = member.getValue().asString(); - break; - default: - break; - } - } - - public JsonObject getJSONObject() { - JsonObject jsonObject = new JsonObject(); - JsonUtils.addIfNotNull(jsonObject, "content_template", this.contentTemplate); - if (this.embeddings != null) { - jsonObject.add("embeddings", this.embeddings.getJSONObject()); - } - if (this.llmEndpointParams != null) { - jsonObject.add("llm_endpoint_params", this.llmEndpointParams.getJSONObject()); - } - JsonUtils.addIfNotNull(jsonObject, "model", this.model); - JsonUtils.addIfNotNull(jsonObject, "num_tokens_for_completion", this.numTokensForCompletion); - JsonUtils.addIfNotNull(jsonObject, "prompt_template", this.promptTemplate); - JsonUtils.addIfNotNull(jsonObject, "system_message", this.systemMessage); - return jsonObject; - } -} diff --git a/src/main/java/com/box/sdk/BoxAIDialogueEntry.java b/src/main/java/com/box/sdk/BoxAIDialogueEntry.java deleted file mode 100644 index bc48fd0e2..000000000 --- a/src/main/java/com/box/sdk/BoxAIDialogueEntry.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; -import java.util.Date; - - -/** - * Represents an entry of the history of prompts and answers previously passed to the LLM. - * This provides additional context to the LLM in generating the response. - */ -public class BoxAIDialogueEntry extends BoxJSONObject { - private String prompt; - private String answer; - private Date createdAt; - - /** - * - * @param prompt The prompt previously provided by the client and answered by the LLM. - * @param answer The answer previously provided by the LLM. - * @param createdAt The ISO date formatted timestamp of when the previous answer to the prompt was created. - */ - public BoxAIDialogueEntry(String prompt, String answer, Date createdAt) { - super(); - this.prompt = prompt; - this.answer = answer; - this.createdAt = createdAt; - } - - /** - * - * @param prompt The prompt previously provided by the client and answered by the LLM. - * @param answer The answer previously provided by the LLM. - */ - public BoxAIDialogueEntry(String prompt, String answer) { - super(); - this.prompt = prompt; - this.answer = answer; - } - - /** - * Get the answer previously provided by the LLM. - * @return the answer previously provided by the LLM. - */ - public String getAnswer() { - return answer; - } - - /** - * Set the answer previously provided by the LLM. - * @param answer the answer previously provided by the LLM. - */ - public void setAnswer(String answer) { - this.answer = answer; - } - - /** - * Get the prompt previously provided by the client and answered by the LLM. - * - * @return the prompt previously provided by the client and answered by the LLM. - */ - public String getPrompt() { - return prompt; - } - - /** - * Set the prompt previously provided by the client and answered by the LLM. - * - * @param prompt the prompt previously provided by the client and answered by the LLM. - */ - public void setPrompt(String prompt) { - this.prompt = prompt; - } - - /** - * Get The ISO date formatted timestamp of when the previous answer to the prompt was created. - * @return The ISO date formatted timestamp of when the previous answer to the prompt was created. - */ - public Date getCreatedAt() { - return createdAt; - } - - /** - * Set The ISO date formatted timestamp of when the previous answer to the prompt was created. - * @param createdAt The ISO date formatted timestamp of when the previous answer to the prompt was created. - */ - public void setCreatedAt(Date createdAt) { - this.createdAt = createdAt; - } - - /** - * Gets a JSON object representing this class. - * - * @return the JSON object representing this class. - */ - public JsonObject getJSONObject() { - JsonObject itemJSON = new JsonObject() - .add("prompt", this.prompt) - .add("answer", this.answer); - - if (this.createdAt != null) { - itemJSON.add("created_at", BoxDateFormat.format(this.createdAt)); - } - - return itemJSON; - } -} diff --git a/src/main/java/com/box/sdk/BoxAIExtractField.java b/src/main/java/com/box/sdk/BoxAIExtractField.java deleted file mode 100644 index 4aba85906..000000000 --- a/src/main/java/com/box/sdk/BoxAIExtractField.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.internal.utils.JsonUtils; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import java.util.List; - -public class BoxAIExtractField extends BoxJSONObject { - /** - * The type of the field. It include but is not limited to string, float, date, enum, and multiSelect. - */ - private String type; - /** - * The description of the field. - */ - private String description; - /** - * The display name of the field. - */ - private String displayName; - /** - * The key of the field. - */ - private String key; - /** - * A list of options for this field. - * This is most often used in combination with the enum and multiSelect field types. - */ - private List options; - /** - * The prompt of the field. - */ - private String prompt; - - /** - * Constructs a BoxAIExtractField object with a given key. - */ - public BoxAIExtractField(String key) { - this.key = key; - } - - /** - * Constructs a BoxAIExtractField object with a given type, description, display name, key, options, and prompt. - * - * @param type the type of the field. - * @param description the description of the field. - * @param displayName the display name of the field. - * @param key the key of the field. - * @param options a list of options for this field. - * @param prompt the prompt of the field. - */ - public BoxAIExtractField(String type, - String description, - String displayName, - String key, List options, - String prompt) { - this.type = type; - this.description = description; - this.displayName = displayName; - this.key = key; - this.options = options; - this.prompt = prompt; - } - - public JsonObject getJSONObject() { - JsonObject jsonObject = new JsonObject(); - JsonUtils.addIfNotNull(jsonObject, "type", this.type); - JsonUtils.addIfNotNull(jsonObject, "description", this.description); - JsonUtils.addIfNotNull(jsonObject, "displayName", this.displayName); - JsonUtils.addIfNotNull(jsonObject, "key", this.key); - if (this.options != null) { - JsonArray options = new JsonArray(); - for (BoxAIExtractFieldOption option : this.options) { - options.add(option.getJSONObject()); - } - jsonObject.add("options", options); - } - JsonUtils.addIfNotNull(jsonObject, "prompt", this.prompt); - return jsonObject; - } -} diff --git a/src/main/java/com/box/sdk/BoxAIExtractFieldOption.java b/src/main/java/com/box/sdk/BoxAIExtractFieldOption.java deleted file mode 100644 index a1cae5ceb..000000000 --- a/src/main/java/com/box/sdk/BoxAIExtractFieldOption.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.box.sdk; - - -import com.box.sdk.internal.utils.JsonUtils; -import com.eclipsesource.json.JsonObject; - -public class BoxAIExtractFieldOption extends BoxJSONObject { - /** - * A unique identifier for the option. - */ - private final String key; - - /** - * Constructs a BoxAIExtractFieldOption object with a given key. - * - * @param key the key of the field option. - */ - public BoxAIExtractFieldOption(String key) { - this.key = key; - } - - public JsonObject getJSONObject() { - JsonObject jsonObject = new JsonObject(); - JsonUtils.addIfNotNull(jsonObject, "key", this.key); - return jsonObject; - } -} diff --git a/src/main/java/com/box/sdk/BoxAIExtractMetadataTemplate.java b/src/main/java/com/box/sdk/BoxAIExtractMetadataTemplate.java deleted file mode 100644 index c7fb4c3da..000000000 --- a/src/main/java/com/box/sdk/BoxAIExtractMetadataTemplate.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.internal.utils.JsonUtils; -import com.eclipsesource.json.JsonObject; - -public class BoxAIExtractMetadataTemplate extends BoxJSONObject { - /** - * The type of object this class represents. - */ - public static final String TYPE = "metadata_template"; - /** - * The scope of the metadata template that can either be global or enterprise. - */ - private String scope; - /** - * The template key of the metadata template. - */ - private String templateKey; - - /** - * Constructs a BoxAIExtractMetadataTemplate object with a given scope and template key. - * @param templateKey the template key of the metadata template. - * @param scope the scope of the metadata template. - */ - public BoxAIExtractMetadataTemplate(String templateKey, String scope) { - this.templateKey = templateKey; - this.scope = scope; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - if (memberName.equals("scope")) { - this.scope = member.getValue().asString(); - } else if (memberName.equals("template_key")) { - this.templateKey = member.getValue().asString(); - } - } - - public JsonObject getJSONObject() { - JsonObject jsonObject = new JsonObject(); - JsonUtils.addIfNotNull(jsonObject, "type", TYPE); - JsonUtils.addIfNotNull(jsonObject, "scope", this.scope); - JsonUtils.addIfNotNull(jsonObject, "template_key", this.templateKey); - return jsonObject; - } - - public String getScope() { - return this.scope; - } - - public String getTemplateKey() { - return this.templateKey; - } -} diff --git a/src/main/java/com/box/sdk/BoxAIExtractStructuredResponse.java b/src/main/java/com/box/sdk/BoxAIExtractStructuredResponse.java deleted file mode 100644 index e92b10af6..000000000 --- a/src/main/java/com/box/sdk/BoxAIExtractStructuredResponse.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.text.ParseException; -import java.util.Date; - -/** - * AI response to a user request. - */ -public class BoxAIExtractStructuredResponse extends BoxJSONObject { - private final JsonObject sourceJson; - private JsonObject answer; - private String completionReason; - private Date createdAt; - - /** - * Constructs a BoxAIResponse object. - */ - public BoxAIExtractStructuredResponse(String json) { - super(json); - this.sourceJson = Json.parse(json).asObject(); - } - - /** - * Constructs an BoxAIResponse object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - BoxAIExtractStructuredResponse(JsonObject jsonObject) { - super(jsonObject); - this.sourceJson = jsonObject; - } - - /** - * Gets the source JSON of the AI response. - * - * @return the source JSON of the AI response. - */ - public JsonObject getSourceJson() { - return sourceJson; - } - - /** - * Gets the answer of the AI. - * - * @return the answer of the AI. - */ - public JsonObject getAnswer() { - return answer; - } - - /** - * Gets reason the response finishes. - * - * @return the reason the response finishes. - */ - public String getCompletionReason() { - return completionReason; - } - - /** - * Gets the ISO date formatted timestamp of when the answer to the prompt was created. - * - * @return The ISO date formatted timestamp of when the answer to the prompt was created. - */ - public Date getCreatedAt() { - return createdAt; - } - - /** - * {@inheritDoc} - */ - @Override - void parseJSONMember(JsonObject.Member member) { - JsonValue value = member.getValue(); - String memberName = member.getName(); - try { - if (memberName.equals("answer")) { - this.answer = value.asObject(); - } else if (memberName.equals("completion_reason")) { - this.completionReason = value.asString(); - } else if (memberName.equals("created_at")) { - this.createdAt = BoxDateFormat.parse(value.asString()); - } - } catch (ParseException e) { - assert false : "A ParseException indicates a bug in the SDK."; - } - } - -} diff --git a/src/main/java/com/box/sdk/BoxAIItem.java b/src/main/java/com/box/sdk/BoxAIItem.java deleted file mode 100644 index 49fabb1e6..000000000 --- a/src/main/java/com/box/sdk/BoxAIItem.java +++ /dev/null @@ -1,121 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; - -/** - * Represents a Box File to be included in a sign request. - */ -public class BoxAIItem { - private String id; - private Type type; - private String content; - - /** - * Created a BoxAIItem - the item to be processed by the LLM. - * @param id The id of the item - * @param type The type of the item. Currently, only "file" is supported. - * @param content The content of the item, often the text representation. - */ - public BoxAIItem(String id, Type type, String content) { - this.id = id; - this.type = type; - this.content = content; - } - - /** - * Created a BoxAIItem - the item to be processed by the LLM. - * @param id The id of the item - * @param type The type of the item. Currently, only "file" is supported. - */ - public BoxAIItem(String id, Type type) { - this.id = id; - this.type = type; - } - - /** - * Gets the id of the item. - * @return the id of the item. - */ - public String getId() { - return id; - } - - /** - * Sets the id of the item. - * @param id the id of the item. - */ - public void setId(String id) { - this.id = id; - } - - /** - * Gets the type of the item. - * @return the type of the item. - */ - public Type getType() { - return type; - } - - /** - * Sets the type of the item. - * @param type the type of the item. - */ - public void setType(Type type) { - this.type = type; - } - - /** - * Gets the content of the item. - * @return the content of the item. - */ - public String getContent() { - return content; - } - - /** - * Sets the content of the item. - * @param content the content of the item. - */ - public void setContent(String content) { - this.content = content; - } - - /** - * Gets a JSON object representing this class. - * - * @return the JSON object representing this class. - */ - public JsonObject getJSONObject() { - JsonObject itemJSON = new JsonObject() - .add("id", this.id) - .add("type", this.type.toJSONValue()); - - if (this.content != null) { - itemJSON.add("content", this.content); - } - - return itemJSON; - } - - public enum Type { - /** - * A file. - */ - FILE("file"); - - - private final String jsonValue; - - Type(String jsonValue) { - this.jsonValue = jsonValue; - } - - static BoxAIItem.Type fromJSONValue(String jsonValue) { - return BoxAIItem.Type.valueOf(jsonValue.toUpperCase(java.util.Locale.ROOT)); - } - - String toJSONValue() { - return this.jsonValue; - } - } -} diff --git a/src/main/java/com/box/sdk/BoxAIResponse.java b/src/main/java/com/box/sdk/BoxAIResponse.java deleted file mode 100644 index c563bdf53..000000000 --- a/src/main/java/com/box/sdk/BoxAIResponse.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.text.ParseException; -import java.util.Date; - - -/** - * AI response to a user request. - */ -public class BoxAIResponse extends BoxJSONObject { - private String answer; - private String completionReason; - private Date createdAt; - - /** - * Constructs a BoxAIResponse object. - */ - public BoxAIResponse(String answer, String completionReason, Date createdAt) { - super(); - this.answer = answer; - this.completionReason = completionReason; - this.createdAt = createdAt; - } - - /** - * Constructs a BoxAIResponse from a JSON string. - * - * @param json the JSON encoded upload email. - */ - public BoxAIResponse(String json) { - super(json); - } - - /** - * Constructs an BoxAIResponse object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - BoxAIResponse(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the answer of the AI. - * - * @return the answer of the AI. - */ - public String getAnswer() { - return answer; - } - - /** - * Gets reason the response finishes. - * - * @return the reason the response finishes. - */ - public String getCompletionReason() { - return completionReason; - } - - /** - * Gets the ISO date formatted timestamp of when the answer to the prompt was created. - * - * @return The ISO date formatted timestamp of when the answer to the prompt was created. - */ - public Date getCreatedAt() { - return createdAt; - } - - - /** - * {@inheritDoc} - */ - @Override - void parseJSONMember(JsonObject.Member member) { - JsonValue value = member.getValue(); - String memberName = member.getName(); - try { - if (memberName.equals("answer")) { - this.answer = value.asString(); - } else if (memberName.equals("completion_reason")) { - this.completionReason = value.asString(); - } else if (memberName.equals("created_at")) { - this.createdAt = BoxDateFormat.parse(value.asString()); - } - } catch (ParseException e) { - assert false : "A ParseException indicates a bug in the SDK."; - } - } -} diff --git a/src/main/java/com/box/sdk/BoxAPIConnection.java b/src/main/java/com/box/sdk/BoxAPIConnection.java deleted file mode 100644 index aca2913a2..000000000 --- a/src/main/java/com/box/sdk/BoxAPIConnection.java +++ /dev/null @@ -1,1333 +0,0 @@ -package com.box.sdk; - -import static java.lang.String.format; -import static java.lang.String.join; -import static java.util.Collections.singletonList; -import static okhttp3.ConnectionSpec.MODERN_TLS; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.Proxy; -import java.net.URI; -import java.net.URL; -import java.security.KeyManagementException; -import java.security.NoSuchAlgorithmException; -import java.time.Duration; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.concurrent.locks.ReadWriteLock; -import java.util.concurrent.locks.ReentrantReadWriteLock; -import java.util.regex.Pattern; -import javax.net.ssl.HostnameVerifier; -import javax.net.ssl.SSLContext; -import javax.net.ssl.TrustManager; -import javax.net.ssl.X509TrustManager; -import okhttp3.Authenticator; -import okhttp3.Call; -import okhttp3.Credentials; -import okhttp3.Headers; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.Response; - -/** - * Represents an authenticated connection to the Box API. - * - *

    This class handles storing authentication information, automatic token refresh, and rate-limiting. It can also be - * used to configure the Box API endpoint URL in order to hit a different version of the API. Multiple instances of - * BoxAPIConnection may be created to support multi-user login.

    - */ -public class BoxAPIConnection { - - /** - * Used as a marker to setup connection to use default HostnameVerifier - * Example:
    {@code
    -     * BoxApiConnection api = new BoxApiConnection(...);
    -     * HostnameVerifier myHostnameVerifier = ...
    -     * api.configureSslCertificatesValidation(DEFAULT_TRUST_MANAGER, myHostnameVerifier);
    -     * }
    - */ - public static final X509TrustManager DEFAULT_TRUST_MANAGER = null; - /** - * Used as a marker to setup connection to use default HostnameVerifier - * Example:
    {@code
    -     * BoxApiConnection api = new BoxApiConnection(...);
    -     * X509TrustManager myTrustManager = ...
    -     * api.configureSslCertificatesValidation(myTrustManager, DEFAULT_HOSTNAME_VERIFIER);
    -     * }
    - */ - public static final HostnameVerifier DEFAULT_HOSTNAME_VERIFIER = null; - - /** - * The default maximum number of times an API request will be retried after an error response - * is received. - */ - public static final int DEFAULT_MAX_RETRIES = 5; - /** - * Default authorization URL - */ - protected static final String DEFAULT_BASE_AUTHORIZATION_URL = "https://account.box.com/api/"; - static final String AS_USER_HEADER = "As-User"; - - private static final String API_VERSION = "2.0"; - private static final String OAUTH_SUFFIX = "oauth2/authorize"; - private static final String TOKEN_URL_SUFFIX = "oauth2/token"; - private static final String REVOKE_URL_SUFFIX = "oauth2/revoke"; - private static final String DEFAULT_BASE_URL = "https://api.box.com/"; - private static final String DEFAULT_BASE_UPLOAD_URL = "https://upload.box.com/api/"; - private static final String DEFAULT_BASE_APP_URL = "https://app.box.com"; - - private static final String BOX_NOTIFICATIONS_HEADER = "Box-Notifications"; - - private static final String JAVA_VERSION = System.getProperty("java.version"); - private static final String SDK_VERSION = "4.16.3"; - - /** - * The amount of buffer time, in milliseconds, to use when determining if an access token should be refreshed. For - * example, if REFRESH_EPSILON = 60000 and the access token expires in less than one minute, it will be refreshed. - */ - private static final long REFRESH_EPSILON = 60000; - - private final String clientID; - private final String clientSecret; - private final ReadWriteLock refreshLock; - private X509TrustManager trustManager; - private HostnameVerifier hostnameVerifier; - - // These volatile fields are used when determining if the access token needs to be refreshed. Since they are used in - // the double-checked lock in getAccessToken(), they must be atomic. - private volatile long lastRefresh; - private volatile long expires; - - private Proxy proxy; - private String proxyUsername; - private String proxyPassword; - - private String userAgent; - private String accessToken; - private String refreshToken; - private String tokenURL; - private String revokeURL; - private String baseURL; - private String baseUploadURL; - private String baseAppURL; - private String baseAuthorizationURL; - private boolean autoRefresh; - private int maxRetryAttempts; - private int connectTimeout; - private int readTimeout; - private boolean useZstdCompression; - private final List listeners; - private RequestInterceptor interceptor; - private final Map customHeaders; - - private OkHttpClient httpClient; - private OkHttpClient noRedirectsHttpClient; - private Authenticator authenticator; - - /** - * Constructs a new BoxAPIConnection that authenticates with a developer or access token. - * - * @param accessToken a developer or access token to use for authenticating with the API. - */ - public BoxAPIConnection(String accessToken) { - this(null, null, accessToken, null); - } - - /** - * Constructs a new BoxAPIConnection with an access token that can be refreshed. - * - * @param clientID the client ID to use when refreshing the access token. - * @param clientSecret the client secret to use when refreshing the access token. - * @param accessToken an initial access token to use for authenticating with the API. - * @param refreshToken an initial refresh token to use when refreshing the access token. - */ - public BoxAPIConnection(String clientID, String clientSecret, String accessToken, String refreshToken) { - this.clientID = clientID; - this.clientSecret = clientSecret; - this.accessToken = accessToken; - this.refreshToken = refreshToken; - this.baseURL = fixBaseUrl(DEFAULT_BASE_URL); - this.baseUploadURL = fixBaseUrl(DEFAULT_BASE_UPLOAD_URL); - this.baseAppURL = DEFAULT_BASE_APP_URL; - this.baseAuthorizationURL = DEFAULT_BASE_AUTHORIZATION_URL; - this.autoRefresh = true; - this.maxRetryAttempts = BoxGlobalSettings.getMaxRetryAttempts(); - this.connectTimeout = BoxGlobalSettings.getConnectTimeout(); - this.readTimeout = BoxGlobalSettings.getReadTimeout(); - this.useZstdCompression = BoxGlobalSettings.getUseZstdCompression(); - this.refreshLock = new ReentrantReadWriteLock(); - this.userAgent = "Box Java SDK v" + SDK_VERSION + " (Java " + JAVA_VERSION + ")"; - this.listeners = new ArrayList<>(); - this.customHeaders = new HashMap<>(); - - buildHttpClients(); - } - - /** - * Constructs a new BoxAPIConnection with an auth code that was obtained from the first half of OAuth. - * - * @param clientID the client ID to use when exchanging the auth code for an access token. - * @param clientSecret the client secret to use when exchanging the auth code for an access token. - * @param authCode an auth code obtained from the first half of the OAuth process. - */ - public BoxAPIConnection(String clientID, String clientSecret, String authCode) { - this(clientID, clientSecret, null, null); - this.authenticate(authCode); - } - - /** - * Constructs a new BoxAPIConnection. - * - * @param clientID the client ID to use when exchanging the auth code for an access token. - * @param clientSecret the client secret to use when exchanging the auth code for an access token. - */ - public BoxAPIConnection(String clientID, String clientSecret) { - this(clientID, clientSecret, null, null); - } - - /** - * Constructs a new BoxAPIConnection levaraging BoxConfig. - * - * @param boxConfig BoxConfig file, which should have clientId and clientSecret - */ - public BoxAPIConnection(BoxConfig boxConfig) { - this(boxConfig.getClientId(), boxConfig.getClientSecret(), null, null); - } - - private void buildHttpClients() { - OkHttpClient.Builder httpClientBuilder = new OkHttpClient.Builder(); - if (trustManager != null) { - try { - SSLContext sslContext = SSLContext.getInstance("SSL"); - sslContext.init(null, new TrustManager[]{trustManager}, new java.security.SecureRandom()); - httpClientBuilder.sslSocketFactory(sslContext.getSocketFactory(), trustManager); - } catch (NoSuchAlgorithmException | KeyManagementException e) { - throw new RuntimeException(e); - } - } - - OkHttpClient.Builder builder = httpClientBuilder - .followSslRedirects(true) - .followRedirects(true) - .connectTimeout(Duration.ofMillis(connectTimeout)) - .readTimeout(Duration.ofMillis(readTimeout)) - .connectionSpecs(singletonList(MODERN_TLS)); - - if (hostnameVerifier != null) { - httpClientBuilder.hostnameVerifier(hostnameVerifier); - } - - if (proxy != null) { - builder.proxy(proxy); - if (proxyUsername != null && proxyPassword != null) { - builder.proxyAuthenticator((route, response) -> { - String credential = Credentials.basic(proxyUsername, proxyPassword); - return response.request().newBuilder() - .header("Proxy-Authorization", credential) - .build(); - }); - } - if (this.authenticator != null) { - builder.proxyAuthenticator(authenticator); - } - } - builder = modifyHttpClientBuilder(builder); - if (this.useZstdCompression) { - builder.addNetworkInterceptor(new ZstdInterceptor()); - } - - this.httpClient = builder.build(); - this.noRedirectsHttpClient = new OkHttpClient.Builder(httpClient) - .followSslRedirects(false) - .followRedirects(false) - .build(); - } - - /** - * Can be used to modify OkHttp.Builder used to create connection. This method is called after all modifications - * were done, thus allowing others to create their own connections and further customize builder. - * @param httpClientBuilder Builder that will be used to create http connection. - * @return Modified builder. - */ - protected OkHttpClient.Builder modifyHttpClientBuilder(OkHttpClient.Builder httpClientBuilder) { - return httpClientBuilder; - } - - /** - * Sets a proxy authenticator that will be used when proxy requires authentication. - * If you use {@link BoxAPIConnection#setProxyBasicAuthentication(String, String)} it adds an authenticator - * that performs Basic authorization. By calling this method you can override this behaviour. - * You do not need to call {@link BoxAPIConnection#setProxyBasicAuthentication(String, String)} - * in order to set custom authenticator. - * - * @param authenticator Custom authenticator that will be called when proxy asks for authorization. - */ - public void setProxyAuthenticator(Authenticator authenticator) { - this.authenticator = authenticator; - buildHttpClients(); - } - - /** - * Restores a BoxAPIConnection from a saved state. - * - * @param clientID the client ID to use with the connection. - * @param clientSecret the client secret to use with the connection. - * @param state the saved state that was created with {@link #save}. - * @return a restored API connection. - * @see #save - */ - public static BoxAPIConnection restore(String clientID, String clientSecret, String state) { - BoxAPIConnection api = new BoxAPIConnection(clientID, clientSecret); - api.restore(state); - return api; - } - - /** - * Returns the default authorization URL which is used to perform the authorization_code based OAuth2 flow. - * If custom Authorization URL is needed use instance method {@link BoxAPIConnection#getAuthorizationURL} - * - * @param clientID the client ID to use with the connection. - * @param redirectUri the URL to which Box redirects the browser when authentication completes. - * @param state the text string that you choose. - * Box sends the same string to your redirect URL when authentication is complete. - * @param scopes this optional parameter identifies the Box scopes available - * to the application once it's authenticated. - * @return the authorization URL - */ - public static URL getAuthorizationURL(String clientID, URI redirectUri, String state, List scopes) { - return createFullAuthorizationUrl(DEFAULT_BASE_AUTHORIZATION_URL, clientID, redirectUri, state, scopes); - } - - private static URL createFullAuthorizationUrl( - String authorizationUrl, String clientID, URI redirectUri, String state, List scopes - ) { - URLTemplate template = new URLTemplate(authorizationUrl + OAUTH_SUFFIX); - QueryStringBuilder queryBuilder = new QueryStringBuilder().appendParam("client_id", clientID) - .appendParam("response_type", "code") - .appendParam("redirect_uri", redirectUri.toString()) - .appendParam("state", state); - - if (scopes != null && !scopes.isEmpty()) { - queryBuilder.appendParam("scope", join(" ", scopes)); - } - - return template.buildWithQuery("", queryBuilder.toString()); - } - - /** - * Authenticates the API connection by obtaining access and refresh tokens using the auth code that was obtained - * from the first half of OAuth. - * - * @param authCode the auth code obtained from the first half of the OAuth process. - */ - public void authenticate(String authCode) { - URL url; - try { - url = new URL(this.getTokenURL()); - } catch (MalformedURLException e) { - assert false : "An invalid token URL indicates a bug in the SDK."; - throw new RuntimeException("An invalid token URL indicates a bug in the SDK.", e); - } - - String urlParameters = format("grant_type=authorization_code&code=%s&client_id=%s&client_secret=%s", - authCode, this.clientID, this.clientSecret); - - BoxAPIRequest request = new BoxAPIRequest(this, url, "POST"); - request.shouldAuthenticate(false); - request.setBody(urlParameters); - - // authentication uses form url encoded but response is JSON - try (BoxJSONResponse response = (BoxJSONResponse) request.send()) { - String json = response.getJSON(); - - JsonObject jsonObject = Json.parse(json).asObject(); - this.accessToken = jsonObject.get("access_token").asString(); - this.refreshToken = jsonObject.get("refresh_token").asString(); - this.lastRefresh = System.currentTimeMillis(); - this.expires = jsonObject.get("expires_in").asLong() * 1000; - } - } - - /** - * Gets the client ID. - * - * @return the client ID. - */ - public String getClientID() { - return this.clientID; - } - - /** - * Gets the client secret. - * - * @return the client secret. - */ - public String getClientSecret() { - return this.clientSecret; - } - - /** - * Gets the amount of time for which this connection's access token is valid. - * - * @return the amount of time in milliseconds. - */ - public long getExpires() { - return this.expires; - } - - /** - * Sets the amount of time for which this connection's access token is valid before it must be refreshed. - * - * @param milliseconds the number of milliseconds for which the access token is valid. - */ - public void setExpires(long milliseconds) { - this.expires = milliseconds; - } - - /** - * Gets the token URL that's used to request access tokens. The default value is - * "https://www.box.com/api/oauth2/token". - * The URL is created from {@link BoxAPIConnection#baseURL} and {@link BoxAPIConnection#TOKEN_URL_SUFFIX}. - * - * @return the token URL. - */ - public String getTokenURL() { - if (this.tokenURL != null) { - return this.tokenURL; - } else { - return this.baseURL + TOKEN_URL_SUFFIX; - } - } - - /** - * Returns the URL used for token revocation. - * The URL is created from {@link BoxAPIConnection#baseURL} and {@link BoxAPIConnection#REVOKE_URL_SUFFIX}. - * - * @return The url used for token revocation. - */ - public String getRevokeURL() { - if (this.revokeURL != null) { - return this.revokeURL; - } else { - return this.baseURL + REVOKE_URL_SUFFIX; - } - } - - /** - * Gets the base URL that's used when sending requests to the Box API. - * The URL is created from {@link BoxAPIConnection#baseURL} and {@link BoxAPIConnection#API_VERSION}. - * The default value is "https://api.box.com/2.0/". - * - * @return the base URL. - */ - public String getBaseURL() { - return this.baseURL + API_VERSION + "/"; - } - - /** - * Sets the base URL to be used when sending requests to the Box API. For example, the default base URL is - * "https://api.box.com/". This method changes how {@link BoxAPIConnection#getRevokeURL()} - * and {@link BoxAPIConnection#getTokenURL()} are constructed. - * - * @param baseURL a base URL - */ - public void setBaseURL(String baseURL) { - this.baseURL = fixBaseUrl(baseURL); - } - - /** - * Gets the base upload URL that's used when performing file uploads to Box. - * The URL is created from {@link BoxAPIConnection#baseUploadURL} and {@link BoxAPIConnection#API_VERSION}. - * - * @return the base upload URL. - */ - public String getBaseUploadURL() { - return this.baseUploadURL + API_VERSION + "/"; - } - - /** - * Sets the base upload URL to be used when performing file uploads to Box. - * - * @param baseUploadURL a base upload URL. - */ - public void setBaseUploadURL(String baseUploadURL) { - this.baseUploadURL = fixBaseUrl(baseUploadURL); - } - - /** - * Returns the authorization URL which is used to perform the authorization_code based OAuth2 flow. - * The URL is created from {@link BoxAPIConnection#baseAuthorizationURL} and {@link BoxAPIConnection#OAUTH_SUFFIX}. - * - * @param redirectUri the URL to which Box redirects the browser when authentication completes. - * @param state the text string that you choose. - * Box sends the same string to your redirect URL when authentication is complete. - * @param scopes this optional parameter identifies the Box scopes available - * to the application once it's authenticated. - * @return the authorization URL - */ - public URL getAuthorizationURL(URI redirectUri, String state, List scopes) { - return createFullAuthorizationUrl(this.baseAuthorizationURL, this.clientID, redirectUri, state, scopes); - } - - /** - * Sets authorization base URL which is used to perform the authorization_code based OAuth2 flow. - * - * @param baseAuthorizationURL Authorization URL. Default value is https://account.box.com/api/. - */ - public void setBaseAuthorizationURL(String baseAuthorizationURL) { - this.baseAuthorizationURL = fixBaseUrl(baseAuthorizationURL); - } - - /** - * Gets the user agent that's used when sending requests to the Box API. - * - * @return the user agent. - */ - public String getUserAgent() { - return this.userAgent; - } - - /** - * Sets the user agent to be used when sending requests to the Box API. - * - * @param userAgent the user agent. - */ - public void setUserAgent(String userAgent) { - this.userAgent = userAgent; - } - - /** - * Gets the base App url. Used for e.g. file requests. - * - * @return the base App Url. - */ - public String getBaseAppUrl() { - return this.baseAppURL; - } - - /** - * Sets the base App url. Used for e.g. file requests. - * - * @param baseAppURL a base App Url. - */ - public void setBaseAppUrl(String baseAppURL) { - this.baseAppURL = baseAppURL; - } - - /** - * Gets an access token that can be used to authenticate an API request. This method will automatically refresh the - * access token if it has expired since the last call to getAccessToken(). - * - * @return a valid access token that can be used to authenticate an API request. - */ - public String getAccessToken() { - if (this.autoRefresh && this.canRefresh() && this.needsRefresh()) { - this.refreshLock.writeLock().lock(); - try { - if (this.needsRefresh()) { - this.refresh(); - } - } finally { - this.refreshLock.writeLock().unlock(); - } - } - - this.refreshLock.readLock().lock(); - try { - return this.accessToken; - } finally { - this.refreshLock.readLock().unlock(); - } - } - - /** - * Sets the access token to use when authenticating API requests. - * - * @param accessToken a valid access token to use when authenticating API requests. - */ - public void setAccessToken(String accessToken) { - this.accessToken = accessToken; - } - - /** - * Gets the refresh lock to be used when refreshing an access token. - * - * @return the refresh lock. - */ - protected ReadWriteLock getRefreshLock() { - return this.refreshLock; - } - - /** - * Gets a refresh token that can be used to refresh an access token. - * - * @return a valid refresh token. - */ - public String getRefreshToken() { - return this.refreshToken; - } - - /** - * Sets the refresh token to use when refreshing an access token. - * - * @param refreshToken a valid refresh token. - */ - public void setRefreshToken(String refreshToken) { - this.refreshToken = refreshToken; - } - - /** - * Gets the last time that the access token was refreshed. - * - * @return the last refresh time in milliseconds. - */ - public long getLastRefresh() { - return this.lastRefresh; - } - - /** - * Sets the last time that the access token was refreshed. - * - *

    This value is used when determining if an access token needs to be auto-refreshed. If the amount of time since - * the last refresh exceeds the access token's expiration time, then the access token will be refreshed.

    - * - * @param lastRefresh the new last refresh time in milliseconds. - */ - public void setLastRefresh(long lastRefresh) { - this.lastRefresh = lastRefresh; - } - - /** - * Gets whether or not automatic refreshing of this connection's access token is enabled. Defaults to true. - * - * @return true if auto token refresh is enabled; otherwise false. - */ - public boolean getAutoRefresh() { - return this.autoRefresh; - } - - /** - * Enables or disables automatic refreshing of this connection's access token. Defaults to true. - * - * @param autoRefresh true to enable auto token refresh; otherwise false. - */ - public void setAutoRefresh(boolean autoRefresh) { - this.autoRefresh = autoRefresh; - } - - - /** - * Gets the maximum number of times an API request will be retried after an error response - * is received. - * - * @return the maximum number of request attempts. - */ - public int getMaxRetryAttempts() { - return this.maxRetryAttempts; - } - - /** - * Sets the maximum number of times an API request will be retried after an error response - * is received. - * - * @param attempts the maximum number of request attempts. - */ - public void setMaxRetryAttempts(int attempts) { - this.maxRetryAttempts = attempts; - } - - /** - * Gets the connect timeout for this connection in milliseconds. - * - * @return the number of milliseconds to connect before timing out. - */ - public int getConnectTimeout() { - return this.connectTimeout; - } - - /** - * Sets the connect timeout for this connection. - * - * @param connectTimeout The number of milliseconds to wait for the connection to be established. - */ - public void setConnectTimeout(int connectTimeout) { - this.connectTimeout = connectTimeout; - buildHttpClients(); - } - - /* - * Gets if request use zstd encoding when possible - * @return true if request use zstd encoding when possible - */ - public boolean getUseZstdCompression() { - return this.useZstdCompression; - } - - /* - * Sets if request use zstd encoding when possible - * @param useZstdCompression true if request use zstd encoding when possible - */ - public void setUseZstdCompression(boolean useZstdCompression) { - this.useZstdCompression = useZstdCompression; - buildHttpClients(); - } - - /** - * Gets the read timeout for this connection in milliseconds. - * - * @return the number of milliseconds to wait for bytes to be read before timing out. - */ - public int getReadTimeout() { - return this.readTimeout; - } - - /** - * Sets the read timeout for this connection. - * - * @param readTimeout The number of milliseconds to wait for bytes to be read. - */ - public void setReadTimeout(int readTimeout) { - this.readTimeout = readTimeout; - buildHttpClients(); - } - - /** - * Gets the proxy value to use for API calls to Box. - * - * @return the current proxy. - */ - public Proxy getProxy() { - return this.proxy; - } - - /** - * Sets the proxy to use for API calls to Box. - * - * @param proxy the proxy to use for API calls to Box. - */ - public void setProxy(Proxy proxy) { - this.proxy = proxy; - buildHttpClients(); - } - - /** - * Gets the username to use for a proxy that requires basic auth. - * - * @return the username to use for a proxy that requires basic auth. - */ - public String getProxyUsername() { - return this.proxyUsername; - } - - /** - * Sets the username to use for a proxy that requires basic auth. - * - * @param proxyUsername the username to use for a proxy that requires basic auth. - * @deprecated Use {@link BoxAPIConnection#setProxyBasicAuthentication(String, String)} - */ - public void setProxyUsername(String proxyUsername) { - this.proxyUsername = proxyUsername; - buildHttpClients(); - } - - /** - * Gets the password to use for a proxy that requires basic auth. - * - * @return the password to use for a proxy that requires basic auth. - */ - public String getProxyPassword() { - return this.proxyPassword; - } - - /** - * Sets the proxy user and password used in basic authentication - * - * @param proxyUsername Username to use for a proxy that requires basic auth. - * @param proxyPassword Password to use for a proxy that requires basic auth. - */ - public void setProxyBasicAuthentication(String proxyUsername, String proxyPassword) { - this.proxyUsername = proxyUsername; - this.proxyPassword = proxyPassword; - buildHttpClients(); - } - - /** - * Sets the password to use for a proxy that requires basic auth. - * - * @param proxyPassword the password to use for a proxy that requires basic auth. - * @deprecated Use {@link BoxAPIConnection#setProxyBasicAuthentication(String, String)} - */ - public void setProxyPassword(String proxyPassword) { - this.proxyPassword = proxyPassword; - buildHttpClients(); - } - - /** - * Determines if this connection's access token can be refreshed. An access token cannot be refreshed if a refresh - * token was never set. - * - * @return true if the access token can be refreshed; otherwise false. - */ - public boolean canRefresh() { - return this.refreshToken != null; - } - - /** - * Determines if this connection's access token has expired and needs to be refreshed. - * - * @return true if the access token needs to be refreshed; otherwise false. - */ - public boolean needsRefresh() { - boolean needsRefresh; - - this.refreshLock.readLock().lock(); - try { - long now = System.currentTimeMillis(); - long tokenDuration = (now - this.lastRefresh); - needsRefresh = (tokenDuration >= this.expires - REFRESH_EPSILON); - } finally { - this.refreshLock.readLock().unlock(); - } - - return needsRefresh; - } - - /** - * Refresh's this connection's access token using its refresh token. - * - * @throws IllegalStateException if this connection's access token cannot be refreshed. - */ - public void refresh() { - this.refreshLock.writeLock().lock(); - try { - if (!this.canRefresh()) { - throw new IllegalStateException("The BoxAPIConnection cannot be refreshed because it doesn't have a " - + "refresh token."); - } - - URL url; - try { - url = new URL(getTokenURL()); - } catch (MalformedURLException e) { - assert false : "An invalid refresh URL indicates a bug in the SDK."; - throw new RuntimeException("An invalid refresh URL indicates a bug in the SDK.", e); - } - - BoxAPIRequest request = createTokenRequest(url); - - String json; - try (BoxAPIResponse boxAPIResponse = request.send()) { - BoxJSONResponse response = (BoxJSONResponse) boxAPIResponse; - json = response.getJSON(); - } catch (BoxAPIException e) { - this.notifyError(e); - throw e; - } - - extractTokens(Json.parse(json).asObject()); - this.notifyRefresh(); - } finally { - this.refreshLock.writeLock().unlock(); - } - } - - /** - * Restores a saved connection state into this BoxAPIConnection. - * - * @param state the saved state that was created with {@link #save}. - * @see #save - */ - public void restore(String state) { - JsonObject json = Json.parse(state).asObject(); - String accessToken = json.get("accessToken").asString(); - String refreshToken = getKeyValueOrDefault(json, "refreshToken", null); - long lastRefresh = json.get("lastRefresh").asLong(); - long expires = json.get("expires").asLong(); - String userAgent = json.get("userAgent").asString(); - String tokenURL = getKeyValueOrDefault(json, "tokenURL", null); - String revokeURL = getKeyValueOrDefault(json, "revokeURL", null); - String baseURL = adoptBaseUrlWhenLoadingFromOldVersion( - getKeyValueOrDefault(json, "baseURL", DEFAULT_BASE_URL) - ); - String baseUploadURL = adoptUploadBaseUrlWhenLoadingFromOldVersion( - getKeyValueOrDefault(json, "baseUploadURL", DEFAULT_BASE_UPLOAD_URL) - ); - String authorizationURL = - getKeyValueOrDefault(json, "authorizationURL", DEFAULT_BASE_AUTHORIZATION_URL); - boolean autoRefresh = json.get("autoRefresh").asBoolean(); - - // Try to read deprecated value - int maxRequestAttempts = -1; - if (json.names().contains("maxRequestAttempts")) { - maxRequestAttempts = json.get("maxRequestAttempts").asInt(); - } - - int maxRetryAttempts = -1; - if (json.names().contains("maxRetryAttempts")) { - maxRetryAttempts = json.get("maxRetryAttempts").asInt(); - } - - this.accessToken = accessToken; - this.refreshToken = refreshToken; - this.lastRefresh = lastRefresh; - this.expires = expires; - this.userAgent = userAgent; - this.tokenURL = tokenURL; - this.revokeURL = revokeURL; - this.setBaseURL(baseURL); - this.setBaseUploadURL(baseUploadURL); - this.setBaseAuthorizationURL(authorizationURL); - this.autoRefresh = autoRefresh; - - // Try to use deprecated value "maxRequestAttempts", else use newer value "maxRetryAttempts" - if (maxRequestAttempts > -1) { - this.maxRetryAttempts = maxRequestAttempts - 1; - } - if (maxRetryAttempts > -1) { - this.maxRetryAttempts = maxRetryAttempts; - } - - } - - private String adoptBaseUrlWhenLoadingFromOldVersion(String url) { - if (url == null) { - return null; - } - String urlEndingWithSlash = fixBaseUrl(url); - return urlEndingWithSlash.equals("https://api.box.com/2.0/") - ? DEFAULT_BASE_URL - : urlEndingWithSlash; - } - - private String adoptUploadBaseUrlWhenLoadingFromOldVersion(String url) { - if (url == null) { - return null; - } - String urlEndingWithSlash = fixBaseUrl(url); - return urlEndingWithSlash.equals("https://upload.box.com/api/2.0/") - ? DEFAULT_BASE_UPLOAD_URL - : urlEndingWithSlash; - } - - protected String getKeyValueOrDefault(JsonObject json, String key, String defaultValue) { - return Optional.ofNullable(json.get(key)) - .filter(js -> !js.isNull()) - .map(JsonValue::asString) - .orElse(defaultValue); - } - - /** - * Notifies a refresh event to all the listeners. - */ - protected void notifyRefresh() { - for (BoxAPIConnectionListener listener : this.listeners) { - listener.onRefresh(this); - } - } - - /** - * Notifies an error event to all the listeners. - * - * @param error A BoxAPIException instance. - */ - protected void notifyError(BoxAPIException error) { - for (BoxAPIConnectionListener listener : this.listeners) { - listener.onError(this, error); - } - } - - /** - * Add a listener to listen to Box API connection events. - * - * @param listener a listener to listen to Box API connection. - */ - public void addListener(BoxAPIConnectionListener listener) { - this.listeners.add(listener); - } - - /** - * Remove a listener listening to Box API connection events. - * - * @param listener the listener to remove. - */ - public void removeListener(BoxAPIConnectionListener listener) { - this.listeners.remove(listener); - } - - /** - * Gets the RequestInterceptor associated with this API connection. - * - * @return the RequestInterceptor associated with this API connection. - */ - public RequestInterceptor getRequestInterceptor() { - return this.interceptor; - } - - /** - * Sets a RequestInterceptor that can intercept requests and manipulate them before they're sent to the Box API. - * - * @param interceptor the RequestInterceptor. - */ - public void setRequestInterceptor(RequestInterceptor interceptor) { - this.interceptor = interceptor; - } - - /** - * Get a lower-scoped token restricted to a resource for the list of scopes that are passed. - * - * @param scopes the list of scopes to which the new token should be restricted for - * @param resource the resource for which the new token has to be obtained - * @return scopedToken which has access token and other details - * @throws BoxAPIException if resource is not a valid Box API endpoint or shared link - */ - public ScopedToken getLowerScopedToken(List scopes, String resource) { - assert (scopes != null); - assert (scopes.size() > 0); - URL url; - try { - url = new URL(this.getTokenURL()); - } catch (MalformedURLException e) { - assert false : "An invalid refresh URL indicates a bug in the SDK."; - throw new BoxAPIException("An invalid refresh URL indicates a bug in the SDK.", e); - } - - StringBuilder spaceSeparatedScopes = this.buildScopesForTokenDownscoping(scopes); - - String urlParameters = format("grant_type=urn:ietf:params:oauth:grant-type:token-exchange" - + "&subject_token_type=urn:ietf:params:oauth:token-type:access_token&subject_token=%s" - + "&scope=%s", - this.getAccessToken(), spaceSeparatedScopes); - - if (resource != null) { - - ResourceLinkType resourceType = this.determineResourceLinkType(resource); - - if (resourceType == ResourceLinkType.APIEndpoint) { - urlParameters = format(urlParameters + "&resource=%s", resource); - } else if (resourceType == ResourceLinkType.SharedLink) { - urlParameters = format(urlParameters + "&box_shared_link=%s", resource); - } else if (resourceType == ResourceLinkType.Unknown) { - String argExceptionMessage = format("Unable to determine resource type: %s", resource); - BoxAPIException e = new BoxAPIException(argExceptionMessage); - this.notifyError(e); - throw e; - } else { - String argExceptionMessage = format("Unhandled resource type: %s", resource); - BoxAPIException e = new BoxAPIException(argExceptionMessage); - this.notifyError(e); - throw e; - } - } - - BoxAPIRequest request = new BoxAPIRequest(this, url, "POST"); - request.shouldAuthenticate(false); - request.setBody(urlParameters); - - String jsonResponse; - try (BoxJSONResponse response = (BoxJSONResponse) request.send()) { - jsonResponse = response.getJSON(); - } catch (BoxAPIException e) { - this.notifyError(e); - throw e; - } - - JsonObject jsonObject = Json.parse(jsonResponse).asObject(); - ScopedToken token = new ScopedToken(jsonObject); - token.setObtainedAt(System.currentTimeMillis()); - token.setExpiresIn(jsonObject.get("expires_in").asLong() * 1000); - return token; - } - - /** - * Convert List to space-delimited String. - * Needed for versions prior to Java 8, which don't have String.join(delimiter, list) - * - * @param scopes the list of scopes to read from - * @return space-delimited String of scopes - */ - private StringBuilder buildScopesForTokenDownscoping(List scopes) { - StringBuilder spaceSeparatedScopes = new StringBuilder(); - for (int i = 0; i < scopes.size(); i++) { - spaceSeparatedScopes.append(scopes.get(i)); - if (i < scopes.size() - 1) { - spaceSeparatedScopes.append(" "); - } - } - - return spaceSeparatedScopes; - } - - /** - * Determines the type of resource, given a link to a Box resource. - * - * @param resourceLink the resource URL to check - * @return ResourceLinkType that categorizes the provided resourceLink - */ - protected ResourceLinkType determineResourceLinkType(String resourceLink) { - - ResourceLinkType resourceType = ResourceLinkType.Unknown; - - try { - URL validUrl = new URL(resourceLink); - String validURLStr = validUrl.toString(); - final String apiFilesEndpointPattern = ".*box.com/2.0/files/\\d+"; - final String apiFoldersEndpointPattern = ".*box.com/2.0/folders/\\d+"; - final String sharedLinkPattern = "(.*box.com/s/.*|.*box.com.*s=.*)"; - - if (Pattern.matches(apiFilesEndpointPattern, validURLStr) - || Pattern.matches(apiFoldersEndpointPattern, validURLStr)) { - resourceType = ResourceLinkType.APIEndpoint; - } else if (Pattern.matches(sharedLinkPattern, validURLStr)) { - resourceType = ResourceLinkType.SharedLink; - } - } catch (MalformedURLException e) { - //Swallow exception and return default ResourceLinkType set at top of function - } - - return resourceType; - } - - /** - * Revokes the tokens associated with this API connection. This results in the connection no - * longer being able to make API calls until a fresh authorization is made by calling authenticate() - */ - public void revokeToken() { - - URL url; - try { - url = new URL(getRevokeURL()); - } catch (MalformedURLException e) { - assert false : "An invalid refresh URL indicates a bug in the SDK."; - throw new RuntimeException("An invalid refresh URL indicates a bug in the SDK.", e); - } - - String urlParameters = format("token=%s&client_id=%s&client_secret=%s", - this.accessToken, this.clientID, this.clientSecret); - - BoxAPIRequest request = new BoxAPIRequest(this, url, "POST"); - request.shouldAuthenticate(false); - request.setBody(urlParameters); - - request.send().close(); - } - - /** - * Saves the state of this connection to a string so that it can be persisted and restored at a later time. - * - *

    Note that proxy settings aren't automatically saved or restored. This is mainly due to security concerns - * around persisting proxy authentication details to the state string. If your connection uses a proxy, you will - * have to manually configure it again after restoring the connection.

    - * - * @return the state of this connection. - * @see #restore - */ - public String save() { - JsonObject state = new JsonObject() - .add("accessToken", this.accessToken) - .add("refreshToken", this.refreshToken) - .add("lastRefresh", this.lastRefresh) - .add("expires", this.expires) - .add("userAgent", this.userAgent) - .add("tokenURL", this.tokenURL) - .add("revokeURL", this.revokeURL) - .add("baseURL", this.baseURL) - .add("baseUploadURL", this.baseUploadURL) - .add("authorizationURL", this.baseAuthorizationURL) - .add("autoRefresh", this.autoRefresh) - .add("maxRetryAttempts", this.maxRetryAttempts); - return state.toString(); - } - - String lockAccessToken() { - if (this.autoRefresh && this.canRefresh() && this.needsRefresh()) { - this.refreshLock.writeLock().lock(); - try { - if (this.needsRefresh()) { - this.refresh(); - } - this.refreshLock.readLock().lock(); - } finally { - this.refreshLock.writeLock().unlock(); - } - } else { - this.refreshLock.readLock().lock(); - } - - return this.accessToken; - } - - void unlockAccessToken() { - this.refreshLock.readLock().unlock(); - } - - /** - * Get the value for the X-Box-UA header. - * - * @return the header value. - */ - String getBoxUAHeader() { - - return "agent=box-java-sdk/" + SDK_VERSION + "; env=Java/" + JAVA_VERSION; - } - - /** - * Sets a custom header to be sent on all requests through this API connection. - * - * @param header the header name. - * @param value the header value. - */ - public void setCustomHeader(String header, String value) { - this.customHeaders.put(header, value); - } - - /** - * Removes a custom header, so it will no longer be sent on requests through this API connection. - * - * @param header the header name. - */ - public void removeCustomHeader(String header) { - this.customHeaders.remove(header); - } - - /** - * Suppresses email notifications from API actions. This is typically used by security or admin applications - * to prevent spamming end users when doing automated processing on their content. - */ - public void suppressNotifications() { - this.setCustomHeader(BOX_NOTIFICATIONS_HEADER, "off"); - } - - /** - * Re-enable email notifications from API actions if they have been suppressed. - * - * @see #suppressNotifications - */ - public void enableNotifications() { - this.removeCustomHeader(BOX_NOTIFICATIONS_HEADER); - } - - /** - * Set this API connection to make API calls on behalf of another users, impersonating them. This - * functionality can only be used by admins and service accounts. - * - * @param userID the ID of the user to act as. - */ - public void asUser(String userID) { - this.setCustomHeader(AS_USER_HEADER, userID); - } - - /** - * Sets this API connection to make API calls on behalf of the user with whom the access token is associated. - * This undoes any previous calls to asUser(). - * - * @see #asUser - */ - public void asSelf() { - this.removeCustomHeader(AS_USER_HEADER); - } - - /** - * Used to override default SSL certification handling. For example, you can provide your own - * trust manager or hostname verifier to allow self-signed certificates. - * You can check examples here. - * - * @param trustManager TrustManager that verifies certificates are valid. - * @param hostnameVerifier HostnameVerifier that allows you to specify what hostnames are allowed. - */ - public void configureSslCertificatesValidation(X509TrustManager trustManager, HostnameVerifier hostnameVerifier) { - this.trustManager = trustManager; - this.hostnameVerifier = hostnameVerifier; - buildHttpClients(); - } - - Map getHeaders() { - return this.customHeaders; - } - - protected void extractTokens(JsonObject jsonObject) { - this.accessToken = jsonObject.get("access_token").asString(); - this.refreshToken = jsonObject.get("refresh_token").asString(); - this.lastRefresh = System.currentTimeMillis(); - this.expires = jsonObject.get("expires_in").asLong() * 1000; - } - - protected BoxAPIRequest createTokenRequest(URL url) { - String urlParameters = format("grant_type=refresh_token&refresh_token=%s&client_id=%s&client_secret=%s", - this.refreshToken, this.clientID, this.clientSecret); - - BoxAPIRequest request = new BoxAPIRequest(this, url, "POST"); - request.shouldAuthenticate(false); - request.setBody(urlParameters); - return request; - } - - private String fixBaseUrl(String baseUrl) { - return baseUrl.endsWith("/") ? baseUrl : baseUrl + "/"; - } - - Response execute(Request request) { - return executeOnClient(httpClient, request); - } - - Response executeWithoutRedirect(Request request) { - return executeOnClient(noRedirectsHttpClient, request); - } - - protected Call createNewCall(OkHttpClient httpClient, Request request) { - return httpClient.newCall(request); - } - - private Response executeOnClient(OkHttpClient httpClient, Request request) { - try { - return createNewCall(httpClient, request).execute(); - } catch (IOException e) { - throw new BoxAPIException("Couldn't connect to the Box API due to a network error. Request\n" - + toSanitizedRequest(request), e); - } - } - - protected X509TrustManager getTrustManager() { - return trustManager; - } - - protected HostnameVerifier getHostnameVerifier() { - return hostnameVerifier; - } - - /** - * Used to categorize the types of resource links. - */ - protected enum ResourceLinkType { - /** - * Catch-all default for resource links that are unknown. - */ - Unknown, - - /** - * Resource URLs that point to an API endipoint such as https://api.box.com/2.0/files/:file_id. - */ - APIEndpoint, - - /** - * Resource URLs that point to a resource that has been shared - * such as https://example.box.com/s/qwertyuiop1234567890asdfghjk - * or https://example.app.box.com/notes/0987654321?s=zxcvbnm1234567890asdfghjk. - */ - SharedLink - } - - private Request toSanitizedRequest(Request originalRequest) { - Headers sanitizedHeaders = BoxSensitiveDataSanitizer.sanitizeHeaders(originalRequest.headers()); - - return originalRequest.newBuilder() - .headers(sanitizedHeaders) - .build(); - } -} diff --git a/src/main/java/com/box/sdk/BoxAPIConnectionListener.java b/src/main/java/com/box/sdk/BoxAPIConnectionListener.java deleted file mode 100644 index a30395815..000000000 --- a/src/main/java/com/box/sdk/BoxAPIConnectionListener.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.box.sdk; - -/** - * Listener to listen to Box API connection events. - */ -public interface BoxAPIConnectionListener { - - /** - * Called when the Box API connection refreshes its tokens. - * - *

    The provided connection is guaranteed to not be auto-refreshed or modified by another listener until this - * method returns.

    - * - * @param api the API connection that was refreshed. - */ - void onRefresh(BoxAPIConnection api); - - /** - * Called when an error occurs while attempting to refresh the Box API connection's tokens. - * - *

    The provided connection is guaranteed to not be auto-refreshed or modified by another listener until this - * method returns.

    - * - * @param api the API connection that encountered an error. - * @param error the error that occurred. - */ - void onError(BoxAPIConnection api, BoxAPIException error); -} diff --git a/src/main/java/com/box/sdk/BoxAPIException.java b/src/main/java/com/box/sdk/BoxAPIException.java deleted file mode 100644 index a6f10db1a..000000000 --- a/src/main/java/com/box/sdk/BoxAPIException.java +++ /dev/null @@ -1,170 +0,0 @@ -package com.box.sdk; - -import java.util.Collections; -import java.util.List; -import java.util.Map; - -/** - * Thrown to indicate that an error occurred while communicating with the Box API. - */ -public class BoxAPIException extends RuntimeException { - private static final long serialVersionUID = 1L; - - private int responseCode; - private String response; - private Map> headers; - - /** - * Constructs a BoxAPIException with a specified message. - * - * @param message a message explaining why the exception occurred. - */ - public BoxAPIException(String message) { - super(message); - - this.responseCode = 0; - this.response = null; - this.headers = null; - } - - /** - * Constructs a BoxAPIException with details about the server's response. - * - * @param message a message explaining why the exception occurred. - * @param responseCode the response code returned by the Box server. - * @param response the response body returned by the Box server. - */ - public BoxAPIException(String message, int responseCode, String response) { - //People are missing the getResponse method we have. So adding it to message - super(message + "\n" + response); - - this.responseCode = responseCode; - this.response = response; - this.headers = null; - } - - /** - * Constructs a BoxAPIException with details about the server's response, including response headers. - * - * @param message a message explaining why the exception occurred. - * @param responseCode the response code returned by the Box server. - * @param responseBody the response body returned by the Box server. - * @param responseHeaders the response headers returned by the Box server. - */ - public BoxAPIException(String message, int responseCode, String responseBody, - Map> responseHeaders) { - //People are missing the getResponse method we have. So adding it to message - super(message + "\n" + responseBody); - - this.responseCode = responseCode; - this.response = responseBody; - this.headers = responseHeaders; - } - - /** - * Constructs a BoxAPIException that wraps another underlying exception. - * - * @param message a message explaining why the exception occurred. - * @param cause an underlying exception. - */ - public BoxAPIException(String message, Throwable cause) { - super(message, cause); - - this.responseCode = 0; - this.response = null; - this.headers = null; - } - - /** - * Constructs a BoxAPIException that wraps another underlying exception with details about the server's response. - * - * @param message a message explaining why the exception occurred. - * @param responseCode the response code returned by the Box server. - * @param response the response body returned by the Box server. - * @param cause an underlying exception. - */ - public BoxAPIException(String message, int responseCode, String response, Throwable cause) { - super(message, cause); - - this.responseCode = responseCode; - this.response = response; - this.headers = null; - } - - /** - * Constructs a BoxAPIException that includes the response headers. - * - * @param message a message explaining why the exception occurred. - * @param responseCode the response code returned by the Box server. - * @param responseBody the response body returned by the Box server. - * @param responseHeaders the response headers returned by the Box server. - * @param cause an underlying exception. - */ - public BoxAPIException(String message, int responseCode, String responseBody, - Map> responseHeaders, Throwable cause) { - - super(message, cause); - - this.responseCode = responseCode; - this.response = responseBody; - this.headers = responseHeaders; - } - - /** - * Gets the response code returned by the server when this exception was thrown. - * - * @return the response code returned by the server. - */ - public int getResponseCode() { - return this.responseCode; - } - - /** - * Sets the response code returned by the server. - * - * @param responseCode the response code returned by the server. - */ - protected void setResponseCode(int responseCode) { - this.responseCode = responseCode; - } - - /** - * Gets the body of the response returned by the server when this exception was thrown. - * - * @return the body of the response returned by the server. - */ - public String getResponse() { - return this.response; - } - - /** - * Sets the response returned by ther server. - * - * @param response the response returned by the server. - */ - protected void setResponse(String response) { - this.response = response; - } - - /** - * Gets the response headers, if available. - * - * @return the response headers, or empty map if not available. - */ - public Map> getHeaders() { - if (this.headers != null) { - return this.headers; - } else { - return Collections.emptyMap(); - } - } - - /** - * Sets the response headers. - * - * @param headers headers to set. - */ - protected void setHeaders(Map> headers) { - this.headers = headers; - } -} diff --git a/src/main/java/com/box/sdk/BoxAPIRequest.java b/src/main/java/com/box/sdk/BoxAPIRequest.java deleted file mode 100644 index e7c36e619..000000000 --- a/src/main/java/com/box/sdk/BoxAPIRequest.java +++ /dev/null @@ -1,728 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxSensitiveDataSanitizer.sanitizeHeaders; -import static com.box.sdk.internal.utils.CollectionUtils.mapToString; -import static java.lang.String.format; - -import com.box.sdk.http.ContentType; -import com.box.sdk.http.HttpHeaders; -import com.box.sdk.http.HttpMethod; -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.ParseException; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.net.HttpURLConnection; -import java.net.URL; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import okhttp3.Headers; -import okhttp3.MediaType; -import okhttp3.Request; -import okhttp3.RequestBody; -import okhttp3.Response; - - -/** - * Used to make HTTP requests to the Box API. - * - *

    All requests to the REST API are sent using this class or one of its subclasses. This class wraps {@link - * HttpURLConnection} in order to provide a simpler interface that can automatically handle various conditions specific - * to Box's API. Requests will be authenticated using a {@link BoxAPIConnection} (if one is provided), so it isn't - * necessary to add authorization headers. Requests can also be sent more than once, unlike with HttpURLConnection. If - * an error occurs while sending a request, it will be automatically retried (with a back off delay) up to the maximum - * number of times set in the BoxAPIConnection.

    - * - *

    Specifying a body for a BoxAPIRequest is done differently than it is with HttpURLConnection. Instead of writing to - * an OutputStream, the request is provided an {@link InputStream} which will be read when the {@link #send} method is - * called. This makes it easy to retry requests since the stream can automatically reset and reread with each attempt. - * If the stream cannot be reset, then a new stream will need to be provided before each call to send. There is also a - * convenience method for specifying the body as a String, which simply wraps the String with an InputStream.

    - */ -public class BoxAPIRequest { - private static final BoxLogger LOGGER = BoxLogger.defaultLogger(); - private static final String ERROR_CREATING_REQUEST_BODY = "Error creating request body"; - private static final int BUFFER_SIZE = 8192; - private final BoxAPIConnection api; - private final List headers; - private final String method; - private URL url; - private BackoffCounter backoffCounter; - private int connectTimeout; - private int readTimeout; - private InputStream body; - private long bodyLength; - private boolean shouldAuthenticate; - private boolean followRedirects = true; - private final String mediaType; - - /** - * Constructs an authenticated BoxAPIRequest using a provided BoxAPIConnection. - * - * @param api an API connection for authenticating the request. - * @param url the URL of the request. - * @param method the HTTP method of the request. - */ - public BoxAPIRequest(BoxAPIConnection api, URL url, String method) { - this(api, url, method, ContentType.APPLICATION_FORM_URLENCODED); - } - - protected BoxAPIRequest(BoxAPIConnection api, URL url, String method, String mediaType) { - this.api = api; - this.url = url; - this.method = method; - this.mediaType = mediaType; - this.headers = new ArrayList<>(); - if (api != null) { - Map customHeaders = api.getHeaders(); - if (customHeaders != null) { - for (String header : customHeaders.keySet()) { - this.addHeader(header, customHeaders.get(header)); - } - } - this.headers.add(new RequestHeader("X-Box-UA", api.getBoxUAHeader())); - } - this.backoffCounter = new BackoffCounter(new Time()); - this.shouldAuthenticate = true; - if (api != null) { - this.connectTimeout = api.getConnectTimeout(); - this.readTimeout = api.getReadTimeout(); - } else { - this.connectTimeout = BoxGlobalSettings.getConnectTimeout(); - this.readTimeout = BoxGlobalSettings.getReadTimeout(); - } - - this.addHeader("Accept-Charset", "utf-8"); - } - - /** - * Constructs an authenticated BoxAPIRequest using a provided BoxAPIConnection. - * - * @param api an API connection for authenticating the request. - * @param url the URL of the request. - * @param method the HTTP method of the request. - */ - public BoxAPIRequest(BoxAPIConnection api, URL url, HttpMethod method) { - this(api, url, method.name()); - } - - /** - * Constructs an request, using URL and HttpMethod. - * - * @param url the URL of the request. - * @param method the HTTP method of the request. - */ - public BoxAPIRequest(URL url, HttpMethod method) { - this(null, url, method.name()); - } - - /** - * @param apiException BoxAPIException thrown - * @return true if the request is one that should be retried, otherwise false - */ - public static boolean isRequestRetryable(BoxAPIException apiException) { - // Only requests that failed to send should be retried - return (Objects.equals(apiException.getMessage(), ERROR_CREATING_REQUEST_BODY)); - } - - /** - * @param responseCode HTTP error code of the response - * @param apiException BoxAPIException thrown - * @return true if the response is one that should be retried, otherwise false - */ - public static boolean isResponseRetryable(int responseCode, BoxAPIException apiException) { - if (responseCode >= 500 || responseCode == 429) { - return true; - } - return isClockSkewError(responseCode, apiException); - } - - private static boolean isClockSkewError(int responseCode, BoxAPIException apiException) { - String response = apiException.getResponse(); - if (response == null || response.length() == 0) { - return false; - } - String message = apiException.getMessage(); - String errorCode = ""; - - try { - JsonObject responseBody = Json.parse(response).asObject(); - if (responseBody.get("code") != null) { - errorCode = responseBody.get("code").toString(); - } else if (responseBody.get("error") != null) { - errorCode = responseBody.get("error").toString(); - } - - return responseCode == 400 && errorCode.contains("invalid_grant") && message.contains("exp"); - } catch (ParseException e) { - // 400 error which is not a JSON will not trigger a retry - throw new BoxAPIException("API returned an error", responseCode, response); - } - } - - /** - * Adds an HTTP header to this request. - * - * @param key the header key. - * @param value the header value. - */ - public void addHeader(String key, String value) { - if (key.equals("As-User")) { - for (int i = 0; i < this.headers.size(); i++) { - if (this.headers.get(i).getKey().equals("As-User")) { - this.headers.remove(i); - } - } - } - if (key.equals("X-Box-UA")) { - throw new IllegalArgumentException("Altering the X-Box-UA header is not permitted"); - } - this.headers.add(new RequestHeader(key, value)); - } - - /** - * Gets the connect timeout for the request. - * - * @return the request connection timeout. - */ - public int getConnectTimeout() { - return this.connectTimeout; - } - - /** - * Sets a Connect timeout for this request in milliseconds. - * - * @param timeout the timeout in milliseconds. - */ - public void setConnectTimeout(int timeout) { - this.connectTimeout = timeout; - } - - /** - * Gets the read timeout for the request. - * - * @return the request's read timeout. - */ - public int getReadTimeout() { - return this.readTimeout; - } - - /** - * Sets a read timeout for this request in milliseconds. - * - * @param timeout the timeout in milliseconds. - */ - public void setReadTimeout(int timeout) { - this.readTimeout = timeout; - } - - /** - * Sets whether or not to follow redirects (i.e. Location header) - * - * @param followRedirects true to follow, false to not follow - */ - public void setFollowRedirects(boolean followRedirects) { - this.followRedirects = followRedirects; - } - - /** - * Gets the stream containing contents of this request's body. - * - *

    Note that any bytes that read from the returned stream won't be sent unless the stream is reset back to its - * initial position.

    - * - * @return an InputStream containing the contents of this request's body. - */ - public InputStream getBody() { - return this.body; - } - - /** - * Sets the request body to the contents of an InputStream. - * - *

    The stream must support the {@link InputStream#reset} method if auto-retry is used or if the request needs to - * be resent. Otherwise, the body must be manually set before each call to {@link #send}.

    - * - * @param stream an InputStream containing the contents of the body. - */ - public void setBody(InputStream stream) { - this.body = stream; - } - - /** - * Sets the request body to the contents of a String. - * - *

    If the contents of the body are large, then it may be more efficient to use an {@link InputStream} instead of - * a String. Using a String requires that the entire body be in memory before sending the request.

    - * - * @param body a String containing the contents of the body. - */ - public void setBody(String body) { - byte[] bytes = body.getBytes(StandardCharsets.UTF_8); - this.bodyLength = bytes.length; - this.body = new ByteArrayInputStream(bytes); - } - - /** - * Sets the request body to the contents of an InputStream. - * - *

    Providing the length of the InputStream allows for the progress of the request to be monitored when calling - * {@link #send(ProgressListener)}.

    - * - *

    See {@link #setBody(InputStream)} for more information on setting the body of the request.

    - * - * @param stream an InputStream containing the contents of the body. - * @param length the expected length of the stream. - */ - public void setBody(InputStream stream, long length) { - this.bodyLength = length; - this.body = stream; - } - - /** - * Gets the URL from the request. - * - * @return a URL containing the URL of the request. - */ - public URL getUrl() { - return this.url; - } - - /** - * Sets the URL to the request. - * - */ - public void setUrl(URL url) { - this.url = url; - } - - /** - * Gets the http method from the request. - * - * @return http method - */ - public String getMethod() { - return this.method; - } - - /** - * Get headers as list of RequestHeader objects. - * - * @return headers as list of RequestHeader objects - */ - List getHeaders() { - return this.headers; - } - - /** - * Sends this request and returns a BoxAPIResponse containing the server's response. - * - *

    The type of the returned BoxAPIResponse will be based on the content type returned by the server, allowing it - * to be cast to a more specific type. For example, if it's known that the API call will return a JSON response, - * then it can be cast to a {@link BoxJSONResponse} like so:

    - * - *
    BoxJSONResponse response = (BoxJSONResponse) request.sendWithoutRetry();
    - * - * @return a {@link BoxAPIResponse} containing the server's response. - * @throws BoxAPIException if the server returns an error code or if a network error occurs. - */ - public BoxAPIResponse sendWithoutRetry() { - return this.trySend(null); - } - - /** - * Sends this request and returns a BoxAPIResponse containing the server's response. - * - *

    The type of the returned BoxAPIResponse will be based on the content type returned by the server, allowing it - * to be cast to a more specific type. For example, if it's known that the API call will return a JSON response, - * then it can be cast to a {@link BoxJSONResponse} like so:

    - * - *
    BoxJSONResponse response = (BoxJSONResponse) request.send();
    - * - *

    If the server returns an error code or if a network error occurs, then the request will be automatically - * retried. If the maximum number of retries is reached and an error still occurs, then a {@link BoxAPIException} - * will be thrown.

    - * - *

    See {@link #send} for more information on sending requests.

    - * - * @return a {@link BoxAPIResponse} containing the server's response. - * @throws BoxAPIException if the server returns an error code or if a network error occurs. - */ - public BoxAPIResponse send() { - return this.send(null); - } - - /** - * Sends this request while monitoring its progress and returns a BoxAPIResponse containing the server's response. - * - *

    The type of the returned BoxAPIResponse will be based on the content type returned by the server, allowing it - * to be cast to a more specific type. For example, if it's known that the API call will return a JSON response, - * then it can be cast to a {@link BoxJSONResponse} like so:

    - * - *

    If the server returns an error code or if a network error occurs, then the request will be automatically - * retried. If the maximum number of retries is reached and an error still occurs, then a {@link BoxAPIException} - * will be thrown.

    - * - *

    A ProgressListener is generally only useful when the size of the request is known beforehand. If the size is - * unknown, then the ProgressListener will be updated for each byte sent, but the total number of bytes will be - * reported as 0.

    - * - *

    See {@link #send} for more information on sending requests.

    - * - * @param listener a listener for monitoring the progress of the request. - * @return a {@link BoxAPIResponse} containing the server's response. - * @throws BoxAPIException if the server returns an error code or if a network error occurs. - */ - public BoxAPIResponse send(ProgressListener listener) { - if (this.api == null) { - this.backoffCounter.reset(BoxGlobalSettings.getMaxRetryAttempts() + 1); - } else { - this.backoffCounter.reset(this.api.getMaxRetryAttempts() + 1); - } - - while (this.backoffCounter.getAttemptsRemaining() > 0) { - try { - return this.trySend(listener); - } catch (BoxAPIException apiException) { - if (!this.backoffCounter.decrement() - || (!isRequestRetryable(apiException) - && !isResponseRetryable(apiException.getResponseCode(), apiException))) { - throw apiException; - } - - LOGGER.warn( - format("Retrying request due to transient error status=%d body=%s headers=%s", - apiException.getResponseCode(), - apiException.getResponse(), - mapToString(apiException.getHeaders())) - ); - - try { - this.resetBody(); - } catch (IOException ioException) { - throw apiException; - } - - try { - List retryAfterHeader = apiException.getHeaders().get("Retry-After"); - if (retryAfterHeader == null) { - this.backoffCounter.waitBackoff(); - } else { - int retryAfterDelay = Integer.parseInt(retryAfterHeader.get(0)) * 1000; - this.backoffCounter.waitBackoff(retryAfterDelay); - } - } catch (InterruptedException interruptedException) { - Thread.currentThread().interrupt(); - throw apiException; - } - } - } - - throw new RuntimeException(); - } - - /** - * Disables adding authentication header to request. - * Useful when you want to add your own authentication method. - * Default value is `true` and SKD will add authenticaton header to request. - * - * @param shouldAuthenticate use `false` to disable authentication. - */ - public void shouldAuthenticate(boolean shouldAuthenticate) { - this.shouldAuthenticate = shouldAuthenticate; - } - - /** - * Sends a request to upload a file part and returns a BoxFileUploadSessionPart containing information - * about the upload part. This method is separate from send() because it has custom retry logic. - * - *

    If the server returns an error code or if a network error occurs, then the request will be automatically - * retried. If the maximum number of retries is reached and an error still occurs, then a {@link BoxAPIException} - * will be thrown.

    - * - * @param session The BoxFileUploadSession uploading the part - * @param offset Offset of the part being uploaded - * @return A {@link BoxFileUploadSessionPart} part that has been uploaded. - * @throws BoxAPIException if the server returns an error code or if a network error occurs. - */ - BoxFileUploadSessionPart sendForUploadPart(BoxFileUploadSession session, long offset) { - if (this.api == null) { - this.backoffCounter.reset(BoxGlobalSettings.getMaxRetryAttempts() + 1); - } else { - this.backoffCounter.reset(this.api.getMaxRetryAttempts() + 1); - } - - while (this.backoffCounter.getAttemptsRemaining() > 0) { - try (BoxJSONResponse response = (BoxJSONResponse) this.trySend(null)) { - // upload sends binary data but response is JSON - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - return new BoxFileUploadSessionPart((JsonObject) jsonObject.get("part")); - } catch (BoxAPIException apiException) { - if (!this.backoffCounter.decrement() - || (!isRequestRetryable(apiException) - && !isResponseRetryable(apiException.getResponseCode(), apiException))) { - throw apiException; - } - if (apiException.getResponseCode() == 500) { - try { - Iterable parts = session.listParts(); - for (BoxFileUploadSessionPart part : parts) { - if (part.getOffset() == offset) { - return part; - } - } - } catch (BoxAPIException e) { - // ignoring exception as we are retrying - } - } - LOGGER.warn(format( - "Retrying request due to transient error status=%d body=%s", - apiException.getResponseCode(), - apiException.getResponse() - )); - - try { - this.resetBody(); - } catch (IOException ioException) { - throw apiException; - } - - try { - this.backoffCounter.waitBackoff(); - } catch (InterruptedException interruptedException) { - Thread.currentThread().interrupt(); - throw apiException; - } - } - } - - throw new RuntimeException(); - } - - /** - * Returns a String containing the URL, HTTP method, headers and body of this request. - * - * @return a String containing information about this request. - */ - @Override - public String toString() { - return toStringWithHeaders(null); - } - - private String toStringWithHeaders(Headers headers) { - String lineSeparator = System.getProperty("line.separator"); - StringBuilder builder = new StringBuilder(); - builder.append("Request"); - builder.append(lineSeparator); - builder.append(this.method); - builder.append(' '); - builder.append(this.url.toString()); - builder.append(lineSeparator); - if (headers != null) { - builder.append("Headers:").append(lineSeparator); - sanitizeHeaders(headers) - .forEach(h -> builder.append(format("%s: [%s]%s", h.getFirst(), h.getSecond(), lineSeparator))); - } - - String bodyString = this.bodyToString(); - if (bodyString != null) { - builder.append(lineSeparator); - builder.append(bodyString); - } - - return builder.toString().trim(); - } - - /** - * Returns a String representation of this request's body used in {@link #toString}. This method returns - * null by default. - * - *

    A subclass may want override this method if the body can be converted to a String for logging or debugging - * purposes.

    - * - * @return a String representation of this request's body. - */ - protected String bodyToString() { - return null; - } - - private void writeWithBuffer(OutputStream output, ProgressListener listener) { - try { - OutputStream finalOutput = output; - if (listener != null) { - finalOutput = new ProgressOutputStream(output, listener, this.bodyLength); - } - byte[] buffer = new byte[BUFFER_SIZE]; - int b = this.body.read(buffer); - while (b != -1) { - finalOutput.write(buffer, 0, b); - b = this.body.read(buffer); - } - } catch (IOException e) { - throw new RuntimeException("Error writting body", e); - } - } - - /** - * Resets the InputStream containing this request's body. - * - *

    This method will be called before each attempt to resend the request, giving subclasses an opportunity to - * reset any streams that need to be read when sending the body.

    - * - * @throws IOException if the stream cannot be reset. - */ - protected void resetBody() throws IOException { - if (this.body != null) { - this.body.reset(); - } - } - - void setBackoffCounter(BackoffCounter counter) { - this.backoffCounter = counter; - } - - private BoxAPIResponse trySend(ProgressListener listener) { - if (this.api != null) { - RequestInterceptor interceptor = this.api.getRequestInterceptor(); - if (interceptor != null) { - BoxAPIResponse response = interceptor.onRequest(this); - if (response != null) { - return response; - } - } - } - long start = System.currentTimeMillis(); - Request request = composeRequest(listener); - Response response; - this.logRequest(request.headers()); - if (this.followRedirects) { - response = api.execute(request); - } else { - response = api.executeWithoutRedirect(request); - } - logDebug(format("[trySend] connection.connect() took %dms%n", (System.currentTimeMillis() - start))); - - BoxAPIResponse result = BoxAPIResponse.toBoxResponse(response); - long getResponseStart = System.currentTimeMillis(); - logDebug(format( - "[trySend] Get Response (read network) took %dms%n", System.currentTimeMillis() - getResponseStart - )); - return result; - } - - private Request composeRequest(ProgressListener listener) { - Request.Builder requestBuilder = new Request.Builder().url(getUrl()); - if (this.shouldAuthenticate) { - requestBuilder.addHeader(HttpHeaders.AUTHORIZATION, "Bearer " + this.api.lockAccessToken()); - } - try { - requestBuilder.addHeader("User-Agent", this.api.getUserAgent()); - requestBuilder.addHeader("X-Box-UA", this.api.getBoxUAHeader()); - headers.forEach(h -> { - requestBuilder.removeHeader(h.getKey()); - requestBuilder.addHeader(h.getKey(), h.getValue()); - }); - - if (this.api instanceof SharedLinkAPIConnection) { - SharedLinkAPIConnection sharedItemAPI = (SharedLinkAPIConnection) this.api; - String boxAPIValue = BoxSharedLink.getSharedLinkHeaderValue( - sharedItemAPI.getSharedLink(), - sharedItemAPI.getSharedLinkPassword() - ); - requestBuilder.addHeader("BoxApi", boxAPIValue); - } - - - writeMethodWithBody(requestBuilder, listener); - return requestBuilder.build(); - } finally { - if (this.shouldAuthenticate) { - this.api.unlockAccessToken(); - } - } - } - - protected void writeMethodWithBody(Request.Builder requestBuilder, ProgressListener listener) { - ByteArrayOutputStream bodyBytes = new ByteArrayOutputStream(); - if (body != null) { - long writeStart = System.currentTimeMillis(); - writeWithBuffer(bodyBytes, listener); - logDebug(format("[trySend] Body write took %dms%n", (System.currentTimeMillis() - writeStart))); - } - if (method.equals("GET")) { - requestBuilder.get(); - } - if (method.equals("DELETE")) { - requestBuilder.delete(); - } - if (method.equals("OPTIONS")) { - if (body == null) { - requestBuilder.method("OPTIONS", null); - } else { - requestBuilder.method("OPTIONS", RequestBody.create(bodyBytes.toByteArray(), mediaType())); - } - } - if (method.equals("POST")) { - requestBuilder.post(RequestBody.create(bodyBytes.toByteArray(), mediaType())); - } - if (method.equals("PUT")) { - requestBuilder.put(RequestBody.create(bodyBytes.toByteArray(), mediaType())); - } - } - - private void logDebug(String message) { - if (LOGGER.isDebugEnabled()) { - LOGGER.debug(message); - } - } - - private void logRequest(Headers headers) { - logDebug(headers != null ? this.toStringWithHeaders(headers) : this.toString()); - } - - /** - * Class for mapping a request header and value. - */ - public static final class RequestHeader { - private final String key; - private final String value; - - /** - * Construct a request header from header key and value. - * - * @param key header name - * @param value header value - */ - public RequestHeader(String key, String value) { - this.key = key; - this.value = value; - } - - /** - * Get header key. - * - * @return http header name - */ - public String getKey() { - return this.key; - } - - /** - * Get header value. - * - * @return http header value - */ - public String getValue() { - return this.value; - } - } - - protected MediaType mediaType() { - return MediaType.parse(mediaType); - } -} diff --git a/src/main/java/com/box/sdk/BoxAPIResponse.java b/src/main/java/com/box/sdk/BoxAPIResponse.java deleted file mode 100644 index 59bab8ed7..000000000 --- a/src/main/java/com/box/sdk/BoxAPIResponse.java +++ /dev/null @@ -1,373 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.StandardCharsets.UTF_8; -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static java.lang.String.format; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.ParseException; -import java.io.ByteArrayInputStream; -import java.io.Closeable; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; -import java.util.TreeMap; -import okhttp3.MediaType; -import okhttp3.Response; -import okhttp3.ResponseBody; - -/** - * Used to read HTTP responses from the Box API. - * - *

    - * All responses from the REST API are read using this class or one of its subclasses. This class wraps {@link - * HttpURLConnection} in order to provide a simpler interface that can automatically handle various conditions specific - * to Box's API. When a response is contructed, it will throw a {@link BoxAPIException} if the response from the API - * was an error. Therefore every BoxAPIResponse instance is guaranteed to represent a successful response. - *

    - * - *

    - * This class usually isn't instantiated directly, but is instead returned after calling {@link BoxAPIRequest#send}. - *

    - */ -public class BoxAPIResponse implements Closeable { - private static final int BUFFER_SIZE = 8192; - private static final BoxLogger LOGGER = BoxLogger.defaultLogger(); - private final Map> headers = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); - private final long contentLength; - private final String contentType; - private final String requestMethod; - private final String requestUrl; - private int responseCode; - private String bodyString; - - /** - * The raw InputStream is the stream returned directly from HttpURLConnection.getInputStream(). We need to keep - * track of this stream in case we need to access it after wrapping it inside another stream. - */ - private InputStream rawInputStream; - - /** - * The regular InputStream is the stream that will be returned by getBody(). This stream might be a GZIPInputStream - * or a ProgressInputStream (or both) that wrap the raw InputStream. - */ - private InputStream inputStream; - - /** - * Constructs an empty BoxAPIResponse without an associated HttpURLConnection. - */ - public BoxAPIResponse() { - this.contentLength = 0; - this.contentType = null; - this.requestMethod = null; - this.requestUrl = null; - } - - /** - * Constructs a BoxAPIResponse with a http response code and response headers. - * - * @param responseCode http response code - * @param headers map of headers - */ - public BoxAPIResponse( - int responseCode, String requestMethod, String requestUrl, Map> headers - ) { - this(responseCode, requestMethod, requestUrl, headers, null, null, 0); - } - - public BoxAPIResponse(int responseCode, - String requestMethod, - String requestUrl, - Map> headers, - String bodyString, - String contentType) { - this(responseCode, requestMethod, requestUrl, headers, null, contentType, 0, bodyString); - } - - public BoxAPIResponse(int code, - String requestMethod, - String requestUrl, - Map> headers, - InputStream body, - String contentType, - long contentLength - ) { - this(code, requestMethod, requestUrl, headers, body, contentType, contentLength, null); - } - - public BoxAPIResponse(int code, - String requestMethod, - String requestUrl, - Map> headers, - InputStream body, - String contentType, - long contentLength, - String bodyString - ) { - this.responseCode = code; - this.requestMethod = requestMethod; - this.requestUrl = requestUrl; - if (headers != null) { - this.headers.putAll(headers); - } - this.rawInputStream = body; - this.contentType = contentType; - this.contentLength = contentLength; - this.bodyString = bodyString; - if (body != null) { - storeBodyResponse(body); - } - if (isSuccess(responseCode)) { - this.logResponse(); - } else { - this.logErrorResponse(this.responseCode); - throw new BoxAPIResponseException("The API returned an error code", responseCode, null, headers); - } - } - - private static boolean isSuccess(int responseCode) { - return responseCode >= 200 && responseCode < 400; - } - - static BoxAPIResponse toBoxResponse(Response response) { - if (!response.isSuccessful() && !response.isRedirect()) { - throw new BoxAPIResponseException( - "The API returned an error code", - response.code(), - Optional.ofNullable(response.body()).map(body -> { - try { - return body.string(); - } catch (IOException e) { - throw new RuntimeException(e); - } - }).orElse("Body was null"), - response.headers().toMultimap() - ); - } - ResponseBody responseBody = response.body(); - if (responseBody.contentType() == null) { - try { - return emptyContentResponse(response); - } finally { - responseBody.close(); - } - } - if (responseBody != null && responseBody.contentType() != null) { - if (responseBody.contentType().toString().contains(APPLICATION_JSON)) { - if (responseBody.contentLength() == 0) { - return emptyContentResponse(response); - } - String bodyAsString = ""; - try { - bodyAsString = responseBody.string(); - return new BoxJSONResponse(response.code(), - response.request().method(), - response.request().url().toString(), - response.headers().toMultimap(), - Json.parse(bodyAsString).asObject() - ); - } catch (ParseException e) { - throw new BoxAPIException(format("Error parsing JSON:\n%s", bodyAsString), e); - } catch (IOException e) { - throw new RuntimeException("Error getting response to string", e); - } finally { - responseBody.close(); - } - } - } - return new BoxAPIResponse(response.code(), - response.request().method(), - response.request().url().toString(), - response.headers().toMultimap(), - responseBody.byteStream(), - Optional.ofNullable(responseBody.contentType()).map(MediaType::toString).orElse(null), - responseBody.contentLength() - ); - } - - private static BoxAPIResponse emptyContentResponse(Response response) { - return new BoxAPIResponse(response.code(), - response.request().method(), - response.request().url().toString(), - response.headers().toMultimap() - ); - } - - private void storeBodyResponse(InputStream body) { - try { - if (contentType != null && body != null && contentType.contains(APPLICATION_JSON) && body.available() > 0) { - InputStreamReader reader = new InputStreamReader(this.getBody(), UTF_8); - StringBuilder builder = new StringBuilder(); - char[] buffer = new char[BUFFER_SIZE]; - - int read = reader.read(buffer, 0, BUFFER_SIZE); - while (read != -1) { - builder.append(buffer, 0, read); - read = reader.read(buffer, 0, BUFFER_SIZE); - } - reader.close(); - this.disconnect(); - bodyString = builder.toString(); - rawInputStream = new ByteArrayInputStream(bodyString.getBytes(UTF_8)); - } - } catch (IOException e) { - throw new RuntimeException("Cannot read body stream", e); - } - } - - /** - * Gets the response code returned by the API. - * - * @return the response code returned by the API. - */ - public int getResponseCode() { - return this.responseCode; - } - - /** - * Gets the length of this response's body as indicated by the "Content-Length" header. - * - * @return the length of the response's body. - */ - public long getContentLength() { - return this.contentLength; - } - - /** - * Gets the value of the given header field. - * - * @param fieldName name of the header field. - * @return value of the header. - */ - public String getHeaderField(String fieldName) { - return Optional.ofNullable(this.headers.get(fieldName)).map((l) -> l.get(0)).orElse(""); - } - - /** - * Gets an InputStream for reading this response's body. - * - * @return an InputStream for reading the response's body. - */ - public InputStream getBody() { - return this.getBody(null); - } - - /** - * Gets an InputStream for reading this response's body which will report its read progress to a ProgressListener. - * - * @param listener a listener for monitoring the read progress of the body. - * @return an InputStream for reading the response's body. - */ - public InputStream getBody(ProgressListener listener) { - if (this.inputStream == null) { - if (listener == null) { - this.inputStream = this.rawInputStream; - } else { - this.inputStream = new ProgressInputStream(this.rawInputStream, listener, this.getContentLength()); - } - } - return this.inputStream; - } - - /** - * Disconnects this response from the server and frees up any network resources. The body of this response can no - * longer be read after it has been disconnected. - */ - public void disconnect() { - this.close(); - } - - /** - * @return A Map containg headers on this Box API Response. - */ - public Map> getHeaders() { - return this.headers; - } - - @Override - public String toString() { - String lineSeparator = System.getProperty("line.separator"); - StringBuilder builder = new StringBuilder(); - builder.append("Response") - .append(lineSeparator) - .append(this.requestMethod) - .append(' ') - .append(this.requestUrl) - .append(' ') - .append(this.responseCode) - .append(lineSeparator) - .append(contentType != null ? "Content-Type: " + contentType + lineSeparator : "") - .append(headers.isEmpty() ? "" : "Headers:" + lineSeparator); - headers.entrySet() - .stream() - .filter(Objects::nonNull) - .forEach(e -> builder.append(format("%s: [%s]%s", e.getKey().toLowerCase(java.util.Locale.ROOT), - e.getValue(), lineSeparator))); - - String bodyString = this.bodyToString(); - if (bodyString != null && !bodyString.equals("")) { - String sanitizedBodyString = contentType.equals(APPLICATION_JSON) - ? BoxSensitiveDataSanitizer.sanitizeJsonBody(Json.parse(bodyString).asObject()).toString() - : bodyString; - builder.append("Body:").append(lineSeparator).append(sanitizedBodyString); - } - - return builder.toString().trim(); - } - - @Override - public void close() { - try { - if (this.inputStream == null && this.rawInputStream != null) { - this.rawInputStream.close(); - } - if (this.inputStream != null) { - this.inputStream.close(); - } - } catch (IOException e) { - throw new BoxAPIException( - "Couldn't finish closing the connection to the Box API due to a network error or " - + "because the stream was already closed.", e - ); - } - } - - /** - * Returns a string representation of this response's body. This method is used when logging this response's body. - * By default, it returns an empty string (to avoid accidentally logging binary data) unless the response contained - * an error message or content type is application/json. - * - * @return a string representation of this response's body. - */ - protected String bodyToString() { - return this.bodyString; - } - - private void logResponse() { - if (LOGGER.isDebugEnabled()) { - LOGGER.debug(this.toString()); - } - } - - private void logErrorResponse(int responseCode) { - if (responseCode < 500 && LOGGER.isWarnEnabled()) { - LOGGER.warn(this.toString()); - } - if (responseCode >= 500 && LOGGER.isErrorEnabled()) { - LOGGER.error(this.toString()); - } - } - - protected String getRequestMethod() { - return requestMethod; - } - - protected String getRequestUrl() { - return requestUrl; - } -} diff --git a/src/main/java/com/box/sdk/BoxAPIResponseException.java b/src/main/java/com/box/sdk/BoxAPIResponseException.java deleted file mode 100644 index 2458b440a..000000000 --- a/src/main/java/com/box/sdk/BoxAPIResponseException.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import java.util.List; -import java.util.Map; - -/** - * Thrown to indicate than an error occured while returning with a response from the Box API. - */ -public class BoxAPIResponseException extends BoxAPIException { - static final long serialVersionUID = -7515717760101647173L; - private String message; - - /** - * Constructs a BoxAPIException that contains detailed message for underlying exception. - * - * @param message a message explaining why the error occurred. - * @param responseCode a response code. - * @param bodyString a response body. - * @param responseHeaders response headers. - */ - public BoxAPIResponseException( - String message, int responseCode, String bodyString, Map> responseHeaders - ) { - super(message, responseCode, bodyString); - String requestId = ""; - String apiMessage = ""; - JsonObject responseJSON = null; - - this.setHeaders(responseHeaders); - - if (this.getHeaders().containsKey("BOX-REQUEST-ID")) { - requestId += "." + this.getHeaders().get("BOX-REQUEST-ID").get(0); - } - - try { - responseJSON = Json.parse(bodyString).asObject(); - } catch (Exception ex) { - // Continue because we will construct the exception message below and return it to user. - } - - if (responseJSON != null) { - if (responseJSON.get("request_id") != null) { - requestId = responseJSON.get("request_id").asString() + requestId; - } - - if (responseJSON.get("code") != null) { - apiMessage += " " + responseJSON.get("code").asString(); - } else if (responseJSON.get("error") != null) { - apiMessage += " " + responseJSON.get("error").asString(); - } - - if (responseJSON.get("message") != null) { - apiMessage += " - " + responseJSON.get("message").asString(); - } else if (responseJSON.get("error_description") != null) { - apiMessage += " - " + responseJSON.get("error_description").asString(); - } - } - - if (!requestId.isEmpty()) { - this.setMessage(message + " [" + responseCode + " | " + requestId + "]" - + apiMessage); - } else { - this.setMessage(message + " [" + responseCode + "]" + apiMessage); - } - } - - /** - * @return The constructed message for the API exception. - */ - public String getMessage() { - return this.message; - } - - /** - * The message to return for the API exception. - * - * @param message the constructed for the API exception. - */ - protected void setMessage(String message) { - this.message = message; - } -} diff --git a/src/main/java/com/box/sdk/BoxCCGAPIConnection.java b/src/main/java/com/box/sdk/BoxCCGAPIConnection.java deleted file mode 100644 index 8c0eca9b1..000000000 --- a/src/main/java/com/box/sdk/BoxCCGAPIConnection.java +++ /dev/null @@ -1,135 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_FORM_URLENCODED; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import java.net.URL; - -/** - * Creates and manages Client Credentials Grant API connection. - */ -public final class BoxCCGAPIConnection extends BoxAPIConnection { - - static final String ENTERPRISE_SUBJECT_TYPE = "enterprise"; - static final String USER_SUBJECT_TYPE = "user"; - private String subjectType; - private String subjectId; - - // Hiding constructor - private BoxCCGAPIConnection(String accessToken) { - super(accessToken); - } - - // Hiding constructor - private BoxCCGAPIConnection(String clientID, String clientSecret, String accessToken, String refreshToken) { - super(clientID, clientSecret, accessToken, refreshToken); - } - - // Hiding constructor - private BoxCCGAPIConnection(String clientID, String clientSecret, String authCode) { - super(clientID, clientSecret, authCode); - } - - // Hiding constructor - private BoxCCGAPIConnection(String clientID, String clientSecret) { - super(clientID, clientSecret); - } - - // Hiding constructor - private BoxCCGAPIConnection(BoxConfig boxConfig) { - super(boxConfig); - } - - /** - * Creates connection that authenticates as a Service Account - * - * @param clientId the client ID to use when getting the access token. - * @param clientSecret the client secret to use when getting the access token. - * @param enterpriseId the enterprise ID to use when getting the access token. - * @return Client Credentials Grant API connection. - */ - public static BoxCCGAPIConnection applicationServiceAccountConnection( - String clientId, String clientSecret, String enterpriseId - ) { - BoxCCGAPIConnection api = new BoxCCGAPIConnection(clientId, clientSecret); - api.subjectType = ENTERPRISE_SUBJECT_TYPE; - api.subjectId = enterpriseId; - return api; - } - - /** - * Creates connection that authenticates as a User - * - * @param clientId the client ID to use when getting the access token. - * @param clientSecret the client secret to use when getting the access token. - * @param userId the user ID to use when getting the access token. - * @return Client Credentials Grant API connection. - */ - public static BoxCCGAPIConnection userConnection(String clientId, String clientSecret, String userId) { - BoxCCGAPIConnection api = new BoxCCGAPIConnection(clientId, clientSecret); - api.subjectType = USER_SUBJECT_TYPE; - api.subjectId = userId; - return api; - } - - /** - * Restores a BoxAPIConnection from a saved state. - * - * @param clientID the client ID to use with the connection. - * @param clientSecret the client secret to use with the connection. - * @param state the saved state that was created with {@link #save}. - * @return a restored API connection. - * @see #save - */ - public static BoxCCGAPIConnection restore(String clientID, String clientSecret, String state) { - BoxCCGAPIConnection api = new BoxCCGAPIConnection(clientID, clientSecret); - api.restore(state); - return api; - } - - @Override - protected BoxAPIRequest createTokenRequest(URL url) { - String urlParameters = String.format( - "grant_type=client_credentials&client_id=%s&client_secret=%s&box_subject_type=%s&box_subject_id=%s", - this.getClientID(), this.getClientSecret(), this.subjectType, this.subjectId); - BoxAPIRequest request = new BoxAPIRequest(this, url, "POST"); - request.shouldAuthenticate(false); - request.setBody(urlParameters); - request.addHeader("Content-Type", APPLICATION_FORM_URLENCODED); - return request; - } - - @Override - protected void extractTokens(JsonObject jsonObject) { - this.setAccessToken(jsonObject.get("access_token").asString()); - this.setLastRefresh(System.currentTimeMillis()); - this.setExpires(jsonObject.get("expires_in").asLong() * 1000); - } - - @Override - public boolean canRefresh() { - return true; - } - - public boolean isUserConnection() { - return subjectType.equals(USER_SUBJECT_TYPE); - } - - @Override - public String save() { - JsonObject state = Json.parse(super.save()).asObject(); - state.add("subjectType", this.subjectType); - state.add("subjectId", this.subjectId); - return state.toString(); - } - - @Override - public void restore(String state) { - super.restore(state); - - JsonObject json = Json.parse(state).asObject(); - this.subjectType = json.get("subjectType").asString(); - this.subjectId = json.get("subjectId").asString(); - } -} diff --git a/src/main/java/com/box/sdk/BoxClassification.java b/src/main/java/com/box/sdk/BoxClassification.java deleted file mode 100644 index 099340ffd..000000000 --- a/src/main/java/com/box/sdk/BoxClassification.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; - -/** - * Represents the classification information for a File or Folder on Box. - */ -public class BoxClassification extends BoxJSONObject { - private String color; - private String definition; - private String name; - - /** - * Constructs an BoxClassification object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - BoxClassification(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the color that is used to display the classification label in a user-interface. - * - * @return the color of this classification. - */ - public String getColor() { - return this.color; - } - - /** - * Gets the meaning of this classification. - * - * @return the meaning of this classification. - */ - public String getDefinition() { - return this.definition; - } - - /** - * Gets the name of this classification. - * - * @return the name of this classification. - */ - public String getName() { - return this.name; - } - - @Override - protected void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - - String memberName = member.getName(); - JsonValue value = member.getValue(); - - try { - if (memberName.equals("color")) { - this.color = value.asString(); - } else if (memberName.equals("definition")) { - this.definition = value.asString(); - } else if (memberName.equals("name")) { - this.name = value.asString(); - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } -} diff --git a/src/main/java/com/box/sdk/BoxCollaboration.java b/src/main/java/com/box/sdk/BoxCollaboration.java deleted file mode 100644 index 6787a6883..000000000 --- a/src/main/java/com/box/sdk/BoxCollaboration.java +++ /dev/null @@ -1,692 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Date; - -/** - * Represents a collaboration between a user and another user or group. Collaborations are Box's equivalent of access - * control lists. They can be used to set and apply permissions for users or groups to folders. - * - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly.

    - */ -@BoxResourceType("collaboration") -public class BoxCollaboration extends BoxResource { - - /** - * All possible fields on a collaboration object. - */ - public static final String[] ALL_FIELDS = {"type", "id", "item", "accessible_by", "role", "expires_at", - "can_view_path", "status", "acknowledged_at", "created_by", - "created_at", "modified_at", "is_access_only"}; - - /** - * Collaborations URL Template. - */ - public static final URLTemplate COLLABORATIONS_URL_TEMPLATE = new URLTemplate("collaborations"); - /** - * Pending Collaborations URL. - */ - public static final URLTemplate PENDING_COLLABORATIONS_URL = new URLTemplate("collaborations?status=pending"); - /** - * Collaboration URL Template. - */ - public static final URLTemplate COLLABORATION_URL_TEMPLATE = new URLTemplate("collaborations/%s"); - /** - * Get All File Collaboations URL. - */ - public static final URLTemplate GET_ALL_FILE_COLLABORATIONS_URL = new URLTemplate("files/%s/collaborations"); - - /** - * Constructs a BoxCollaboration for a collaboration with a given ID. - * - * @param api the API connection to be used by the collaboration. - * @param id the ID of the collaboration. - */ - public BoxCollaboration(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Create a new collaboration object. - * - * @param api the API connection used to make the request. - * @param accessibleBy the JSON object describing who should be collaborated. - * @param item the JSON object describing which item to collaborate. - * @param role the role to give the collaborators. - * @param notify the user/group should receive email notification of the collaboration or not. - * @param canViewPath the view path collaboration feature is enabled or not. - * @return info about the new collaboration. - */ - protected static BoxCollaboration.Info create(BoxAPIConnection api, JsonObject accessibleBy, JsonObject item, - BoxCollaboration.Role role, Boolean notify, Boolean canViewPath) { - return create(api, accessibleBy, item, role, notify, canViewPath, null, null); - } - - /** - * Create a new collaboration object. - * - * @param api the API connection used to make the request. - * @param accessibleBy the JSON object describing who should be collaborated. - * @param item the JSON object describing which item to collaborate. - * @param role the role to give the collaborators. - * @param notify the user/group should receive email notification of the collaboration or not. - * @param canViewPath the view path collaboration feature is enabled or not. - * @param expiresAt the date the collaboration expires - * @return info about the new collaboration. - */ - protected static BoxCollaboration.Info create( - BoxAPIConnection api, - JsonObject accessibleBy, - JsonObject item, - BoxCollaboration.Role role, - Boolean notify, - Boolean canViewPath, - Date expiresAt - ) { - return create(api, accessibleBy, item, role, notify, canViewPath, expiresAt, null); - } - - /** - * Create a new collaboration object. - * - * @param api the API connection used to make the request. - * @param accessibleBy the JSON object describing who should be collaborated. - * @param item the JSON object describing which item to collaborate. - * @param role the role to give the collaborators. - * @param notify the user/group should receive email notification of the collaboration or not. - * @param canViewPath the view path collaboration feature is enabled or not. - * @param expiresAt the date the collaboration expires - * @param isAccessOnly the collaboration is an access only collaboration or not. - * @return info about the new collaboration. - */ - protected static BoxCollaboration.Info create( - BoxAPIConnection api, - JsonObject accessibleBy, - JsonObject item, - BoxCollaboration.Role role, - Boolean notify, - Boolean canViewPath, - Date expiresAt, - Boolean isAccessOnly - ) { - - String queryString = ""; - if (notify != null) { - queryString = new QueryStringBuilder().appendParam("notify", notify.toString()).toString(); - } - URL url; - if (queryString.length() > 0) { - url = COLLABORATIONS_URL_TEMPLATE.buildWithQuery(api.getBaseURL(), queryString); - } else { - url = COLLABORATIONS_URL_TEMPLATE.build(api.getBaseURL()); - } - - JsonObject requestJSON = new JsonObject(); - requestJSON.add("item", item); - requestJSON.add("accessible_by", accessibleBy); - requestJSON.add("role", role.toJSONString()); - if (canViewPath != null) { - requestJSON.add("can_view_path", canViewPath); - } - if (expiresAt != null) { - requestJSON.add("expires_at", BoxDateFormat.format(expiresAt)); - } - if (isAccessOnly != null) { - requestJSON.add("is_access_only", isAccessOnly); - } - - BoxJSONRequest request = new BoxJSONRequest(api, url, "POST"); - - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - BoxCollaboration newCollaboration = new BoxCollaboration(api, responseJSON.get("id").asString()); - return newCollaboration.new Info(responseJSON); - } - } - - /** - * Gets all pending collaboration invites for the current user. - * - * @param api the API connection to use. - * @return a collection of pending collaboration infos. - */ - public static Collection getPendingCollaborations(BoxAPIConnection api, String... fields) { - QueryStringBuilder queryBuilder = new QueryStringBuilder(); - queryBuilder.appendParam("status", "pending"); - if (fields.length > 0) { - queryBuilder.appendParam("fields", fields); - } - URL url = COLLABORATIONS_URL_TEMPLATE.buildWithQuery(api.getBaseURL(), queryBuilder.toString()); - - - BoxJSONRequest request = new BoxJSONRequest(api, url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - int entriesCount = responseJSON.get("total_count").asInt(); - Collection collaborations = new ArrayList<>(entriesCount); - JsonArray entries = responseJSON.get("entries").asArray(); - for (JsonValue entry : entries) { - JsonObject entryObject = entry.asObject(); - BoxCollaboration collaboration = new BoxCollaboration(api, entryObject.get("id").asString()); - BoxCollaboration.Info info = collaboration.new Info(entryObject); - collaborations.add(info); - } - - return collaborations; - } - } - - /** - * Used to retrieve all collaborations associated with the item. - * - * @param api BoxAPIConnection from the associated file. - * @param fileID FileID of the associated file - * @param pageSize page size for server pages of the Iterable - * @param fields the optional fields to retrieve. - * @return An iterable of BoxCollaboration.Info instances associated with the item. - */ - public static BoxResourceIterable getAllFileCollaborations(final BoxAPIConnection api, String fileID, - int pageSize, String... fields) { - QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - return new BoxResourceIterable( - api, GET_ALL_FILE_COLLABORATIONS_URL.buildWithQuery(api.getBaseURL(), builder.toString(), fileID), - pageSize) { - - @Override - protected BoxCollaboration.Info factory(JsonObject jsonObject) { - String id = jsonObject.get("id").asString(); - return new BoxCollaboration(api, id).new Info(jsonObject); - } - }; - } - - /** - * Gets information about this collection with a custom set of fields. - * - * @param fields the fields to retrieve. - * @return info about the collaboration. - */ - public Info getInfo(String... fields) { - URL url = COLLABORATION_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - if (fields.length > 0) { - String queryString = new QueryStringBuilder().appendParam("fields", fields).toString(); - url = COLLABORATION_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), queryString, this.getID()); - } - - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - return new Info(response.getJSON()); - } - } - - /** - * Updates the information about this collaboration with any info fields that have been modified locally. - * - * @param info the updated info. - */ - public void updateInfo(Info info) { - BoxAPIConnection api = this.getAPI(); - URL url = COLLABORATION_URL_TEMPLATE.build(api.getBaseURL(), this.getID()); - - BoxJSONRequest request = new BoxJSONRequest(api, url, "PUT"); - request.setBody(info.getPendingChanges()); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - info.update(jsonObject); - } - } - - /** - * Deletes this collaboration. - */ - public void delete() { - BoxAPIConnection api = this.getAPI(); - URL url = COLLABORATION_URL_TEMPLATE.build(api.getBaseURL(), this.getID()); - - BoxAPIRequest request = new BoxAPIRequest(api, url, "DELETE"); - request.send().close(); - } - - /** - * Enumerates the possible statuses that a collaboration can have. - */ - public enum Status { - /** - * The collaboration has been accepted. - */ - ACCEPTED, - - /** - * The collaboration is waiting to be accepted or rejected. - */ - PENDING, - - /** - * The collaboration has been rejected. - */ - REJECTED - } - - /** - * Enumerates the possible access levels that a collaborator can have. - */ - public enum Role { - /** - * An Editor has full read/write access to a folder. Once invited to a folder, they will be able to view, - * download, upload, edit, delete, copy, move, rename, generate shared links, make comments, assign tasks, - * create tags, and invite/remove collaborators. They will not be able to delete or move root level folders. - */ - EDITOR("editor"), - - /** - * The viewer role has full read access to a folder. Once invited to a folder, they will be able to preview, - * download, make comments, and generate shared links. They will not be able to add tags, invite new - * collaborators, upload, edit, or delete items in the folder. - */ - VIEWER("viewer"), - - /** - * The previewer role has limited read access to a folder. They will only be able to preview the items in the - * folder using the integrated content viewer. They will not be able to share, upload, edit, or delete any - * content. This role is only available to enterprise accounts. - */ - PREVIEWER("previewer"), - - /** - * The uploader has limited write access to a folder. They will only be able to upload and see the names of the - * items in a folder. They will not able to download or view any content. This role is only available to - * enterprise accounts. - */ - UPLOADER("uploader"), - - /** - * The previewer-uploader role is a combination of previewer and uploader. A user with this access level will be - * able to preview files using the integrated content viewer as well as upload items into the folder. They will - * not be able to download, edit, or share, items in the folder. This role is only available to enterprise - * accounts. - */ - PREVIEWER_UPLOADER("previewer uploader"), - - /** - * The viewer-uploader role is a combination of viewer and uploader. A viewer-uploader has full read access to a - * folder and limited write access. They are able to preview, download, add comments, generate shared links, and - * upload content to the folder. They will not be able to add tags, invite new collaborators, edit, or delete - * items in the folder. This role is only available to enterprise accounts. - */ - VIEWER_UPLOADER("viewer uploader"), - - /** - * The co-owner role has all of the functional read/write access that an editor does. This permission level has - * the added ability of being able to manage users in the folder. A co-owner can add new collaborators, change - * access levels of existing collaborators, and remove collaborators. However, they will not be able to - * manipulate the owner of the folder or transfer ownership to another user. This role is only available to - * enterprise accounts. - */ - CO_OWNER("co-owner"), - - /** - * The owner role has all of the functional capabilities of a co-owner. However, they will be able to manipulate - * the owner of the folder or transfer ownership to another user. This role is only available to enterprise - * accounts. - */ - OWNER("owner"); - - private final String jsonValue; - - Role(String jsonValue) { - this.jsonValue = jsonValue; - } - - static Role fromJSONString(String jsonValue) { - switch (jsonValue) { - case "editor": - return EDITOR; - case "viewer": - return VIEWER; - case "previewer": - return PREVIEWER; - case "uploader": - return UPLOADER; - case "previewer uploader": - return PREVIEWER_UPLOADER; - case "viewer uploader": - return VIEWER_UPLOADER; - case "co-owner": - return CO_OWNER; - case "owner": - return OWNER; - default: - throw new IllegalArgumentException("The provided JSON value isn't a valid Role."); - } - } - - String toJSONString() { - return this.jsonValue; - } - } - - /** - * Contains information about a BoxCollaboration. - */ - public class Info extends BoxResource.Info { - private BoxUser.Info createdBy; - private Date createdAt; - private Date modifiedAt; - private Date expiresAt; - private Status status; - private BoxCollaborator.Info accessibleBy; - private Role role; - private Date acknowledgedAt; - private BoxItem.Info item; - private String inviteEmail; - private boolean canViewPath; - private boolean isAccessOnly; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - Info(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the user who created the collaboration. - * - * @return the user who created the collaboration. - */ - public BoxUser.Info getCreatedBy() { - return this.createdBy; - } - - /** - * Gets the time the collaboration was created. - * - * @return the time the collaboration was created. - */ - public Date getCreatedAt() { - return this.createdAt; - } - - /** - * Gets the time the collaboration was last modified. - * - * @return the time the collaboration was last modified. - */ - public Date getModifiedAt() { - return this.modifiedAt; - } - - /** - * Gets the time the collaboration will expire. - * - * @return the time the collaboration will expire. - */ - public Date getExpiresAt() { - return this.expiresAt; - } - - /** - * Set the time the collaboration will expire. - * - * @param expiresAt the expiration date of the collaboration. - */ - public void setExpiresAt(Date expiresAt) { - this.expiresAt = expiresAt; - this.addPendingChange("expires_at", BoxDateFormat.format(expiresAt)); - } - - /** - * Gets a boolean indicator whether "view path collaboration" feature is enabled or not. - * When set to true this allows the invitee to see the entire parent path to the item. - * It is important to note that this does not grant privileges in any parent folder. - * - * @return the Boolean value indicating if "view path collaboration" is enabled or not - */ - public boolean getCanViewPath() { - return this.canViewPath; - } - - /** - * Sets the permission for "view path collaboration" feature. When set to true this allows - * the invitee to to see the entire parent path to the item - * - * @param canViewState the boolean value indicating whether the invitee can see the parent folder. - */ - public void setCanViewPath(boolean canViewState) { - this.canViewPath = canViewState; - this.addPendingChange("can_view_path", canViewState); - } - - /** - * Gets a boolean indicator weather "is access only" feature is enabled or not. This field is read only. - * It is used to indicate whether a collaboration is an Access Only Collaboration (AOC). - * When set to true, it separates access from interest by hiding collaborated items from the All Files page - * and the ALF stream. - * This means that users who have been granted access through AOCs will not see these items in their - * regular file view. - */ - public boolean getIsAccessOnly() { - return this.isAccessOnly; - } - - /** - * The email address used to invite an un-registered collaborator, if they are not a registered user. - * - * @return the email for the un-registed collaborator. - */ - public String getInviteEmail() { - return this.inviteEmail; - } - - /** - * Gets the status of the collaboration. - * - * @return the status of the collaboration. - */ - public Status getStatus() { - return this.status; - } - - /** - * Sets the status of the collaboration in order to accept or reject the collaboration if it's pending. - * - * @param status the new status of the collaboration. - */ - public void setStatus(Status status) { - this.status = status; - this.addPendingChange("status", status.name().toLowerCase(java.util.Locale.ROOT)); - } - - /** - * Gets the collaborator who this collaboration applies to. - * - * @return the collaborator who this collaboration applies to. - */ - public BoxCollaborator.Info getAccessibleBy() { - return this.accessibleBy; - } - - /** - * Gets the level of access the collaborator has. - * - * @return the level of access the collaborator has. - */ - public Role getRole() { - return this.role; - } - - /** - * Sets the level of access the collaborator has. - * - * @param role the new level of access to give the collaborator. - */ - public void setRole(Role role) { - this.role = role; - this.addPendingChange("role", role.toJSONString()); - } - - /** - * Gets the time the collaboration's status was changed. - * - * @return the time the collaboration's status was changed. - */ - public Date getAcknowledgedAt() { - return this.acknowledgedAt; - } - - /** - * Gets the folder the collaboration is related to. - * - * @return the folder the collaboration is related to. - */ - public BoxItem.Info getItem() { - return this.item; - } - - @Override - public BoxCollaboration getResource() { - return BoxCollaboration.this; - } - - @SuppressWarnings("checkstyle:MissingSwitchDefault") - @Override - protected void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - switch (memberName) { - case "created_by": - JsonObject userJSON = value.asObject(); - if (this.createdBy == null) { - String userID = userJSON.get("id").asString(); - BoxUser user = new BoxUser(getAPI(), userID); - this.createdBy = user.new Info(userJSON); - } else { - this.createdBy.update(userJSON); - } - break; - case "created_at": - this.createdAt = BoxDateFormat.parse(value.asString()); - - break; - case "modified_at": - this.modifiedAt = BoxDateFormat.parse(value.asString()); - break; - case "expires_at": - this.expiresAt = BoxDateFormat.parse(value.asString()); - break; - case "status": - String statusString = value.asString().toUpperCase(java.util.Locale.ROOT); - this.status = Status.valueOf(statusString); - - break; - case "accessible_by": - JsonObject accessibleByJSON = value.asObject(); - if (this.accessibleBy == null) { - this.accessibleBy = this.parseAccessibleBy(accessibleByJSON); - } else { - this.updateAccessibleBy(accessibleByJSON); - } - break; - case "role": - this.role = Role.fromJSONString(value.asString()); - break; - case "acknowledged_at": - this.acknowledgedAt = BoxDateFormat.parse(value.asString()); - break; - case "can_view_path": - this.canViewPath = value.asBoolean(); - break; - case "is_access_only": - this.isAccessOnly = value.asBoolean(); - break; - case "invite_email": - this.inviteEmail = value.asString(); - break; - case "item": - JsonObject itemJson = value.asObject(); - if (this.item == null) { - this.item = selectCollaborationItem(itemJson); - } else { - this.item.update(itemJson); - } - break; - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - - private BoxItem.Info selectCollaborationItem(JsonObject itemJson) { - String itemId = itemJson.get("id").asString(); - String itemType = itemJson.get("type").asString(); - switch (itemType) { - case BoxFile.TYPE: - return new BoxFile(getAPI(), itemId).new Info(itemJson); - case BoxFolder.TYPE: - return new BoxFolder(getAPI(), itemId).new Info(itemJson); - default: - throw new IllegalStateException( - String.format( - "Unsupported collaboration item type '%s': JSON %n%s", - itemType, - itemJson - )); - } - } - - private void updateAccessibleBy(JsonObject json) { - String type = json.get("type").asString(); - if ((type.equals("user") && this.accessibleBy instanceof BoxUser.Info) - || (type.equals("group") && this.accessibleBy instanceof BoxGroup.Info)) { - - this.accessibleBy.update(json); - } else { - this.accessibleBy = this.parseAccessibleBy(json); - } - } - - private BoxCollaborator.Info parseAccessibleBy(JsonObject json) { - String id = json.get("id").asString(); - String type = json.get("type").asString(); - BoxCollaborator.Info parsedInfo = null; - if (type.equals("user")) { - BoxUser user = new BoxUser(getAPI(), id); - parsedInfo = user.new Info(json); - } else if (type.equals("group")) { - BoxGroup group = new BoxGroup(getAPI(), id); - parsedInfo = group.new Info(json); - } - - return parsedInfo; - } - } -} diff --git a/src/main/java/com/box/sdk/BoxCollaborationAllowlist.java b/src/main/java/com/box/sdk/BoxCollaborationAllowlist.java deleted file mode 100644 index a0ea9339e..000000000 --- a/src/main/java/com/box/sdk/BoxCollaborationAllowlist.java +++ /dev/null @@ -1,318 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.http.HttpMethod; -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; -import java.util.Date; - - -/** - * Represents a collaboration allowlist between a domain and a Box Enterprise. Collaboration Allowlist enables a Box - * Enterprise(only available if you have Box Governance) to manage a set of approved domains that can collaborate - * with an enterprise. - * - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly.

    - */ -@BoxResourceType("collaboration_allowlist_entry") -public class BoxCollaborationAllowlist extends BoxResource { - /** - * Collaboration Allowlist Entries URL Template. - */ - public static final URLTemplate COLLABORATION_ALLOWLIST_ENTRIES_URL_TEMPLATE = - new URLTemplate("collaboration_whitelist_entries"); - - /** - * Collaboration Allowlist Entries URL Template with given ID. - */ - public static final URLTemplate COLLABORATION_ALLOWLIST_ENTRY_URL_TEMPLATE = - new URLTemplate("collaboration_whitelist_entries/%s"); - - /** - * The default limit of entries per response. - */ - private static final int DEFAULT_LIMIT = 100; - - /** - * Constructs a BoxCollaborationAllowlist for a collaboration allowlist with a given ID. - * - * @param api the API connection to be used by the collaboration allowlist. - * @param id the ID of the collaboration allowlist. - */ - public BoxCollaborationAllowlist(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Creates a new Collaboration Allowlist for a domain. - * - * @param api the API connection to be used by the resource. - * @param domain the domain to be added to a collaboration allowlist for a Box Enterprise. - * @param direction an enum representing the direction of the collaboration allowlist. Can be set to - * inbound, outbound, or both. - * @return information about the collaboration allowlist created. - */ - public static BoxCollaborationAllowlist.Info create(final BoxAPIConnection api, String domain, - AllowlistDirection direction) { - - URL url = COLLABORATION_ALLOWLIST_ENTRIES_URL_TEMPLATE.build(api.getBaseURL()); - BoxJSONRequest request = new BoxJSONRequest(api, url, HttpMethod.POST); - JsonObject requestJSON = new JsonObject() - .add("domain", domain) - .add("direction", direction.toString()); - - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - BoxCollaborationAllowlist domainAllowlist = - new BoxCollaborationAllowlist(api, responseJSON.get("id").asString()); - - return domainAllowlist.new Info(responseJSON); - } - } - - /** - * Returns all the collaboration allowlisting with specified filters. - * - * @param api the API connection to be used by the resource. - * @param fields the fields to retrieve. - * @return an iterable with all the collaboration allowlists met search conditions. - */ - public static Iterable getAll(final BoxAPIConnection api, String... fields) { - - return getAll(api, DEFAULT_LIMIT, fields); - } - - /** - * Returns all the collaboration allowlisting with specified filters. - * - * @param api the API connection to be used by the resource. - * @param limit the limit of items per single response. The default value is 100. - * @param fields the fields to retrieve. - * @return an iterable with all the collaboration allowlists met search conditions. - */ - public static Iterable getAll(final BoxAPIConnection api, int limit, - String... fields) { - - QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - - URL url = COLLABORATION_ALLOWLIST_ENTRIES_URL_TEMPLATE.buildWithQuery(api.getBaseURL(), builder.toString()); - return new BoxResourceIterable(api, url, limit) { - - @Override - protected BoxCollaborationAllowlist.Info factory(JsonObject jsonObject) { - BoxCollaborationAllowlist allowlist = new BoxCollaborationAllowlist( - api, jsonObject.get("id").asString()); - - return allowlist.new Info(jsonObject); - } - }; - } - - /** - * @return information about this {@link BoxCollaborationAllowlist}. - */ - public BoxCollaborationAllowlist.Info getInfo() { - URL url = COLLABORATION_ALLOWLIST_ENTRY_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, HttpMethod.GET); - try (BoxJSONResponse response = request.send()) { - return new Info(Json.parse(response.getJSON()).asObject()); - } - } - - /** - * Deletes this collaboration allowlist. - */ - public void delete() { - BoxAPIConnection api = this.getAPI(); - URL url = COLLABORATION_ALLOWLIST_ENTRY_URL_TEMPLATE.build(api.getBaseURL(), this.getID()); - - BoxAPIRequest request = new BoxAPIRequest(api, url, HttpMethod.DELETE); - request.send().close(); - } - - /** - * Enumerates the direction of the collaboration allowlist. - */ - public enum AllowlistDirection { - /** - * Allowlist inbound collaboration. - */ - INBOUND("inbound"), - - /** - * Allowlist outbound collaboration. - */ - OUTBOUND("outbound"), - - /** - * Allowlist both inbound and outbound collaboration. - */ - BOTH("both"); - - private final String direction; - - AllowlistDirection(String direction) { - - this.direction = direction; - } - - static AllowlistDirection fromDirection(String direction) { - if (direction.equals("inbound")) { - return AllowlistDirection.INBOUND; - } else if (direction.equals("outbound")) { - return AllowlistDirection.OUTBOUND; - } else if (direction.equals("both")) { - return AllowlistDirection.BOTH; - } else { - return null; - } - } - - /** - * Returns a String containing the current direction of the collaboration allowlisting. - * - * @return a String containing information about the direction of the collaboration allowlisting. - */ - public String toString() { - - return this.direction; - } - } - - /** - * Contains information about a BoxCollaborationAllowlist. - */ - public class Info extends BoxResource.Info { - private String type; - private String domain; - private AllowlistDirection direction; - private BoxEnterprise enterprise; - private Date createdAt; - private Date modifiedAt; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - Info(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the type of the collaboration allowlist. - * - * @return the type for the collaboration allowlist. - */ - public String getType() { - - return this.type; - } - - /** - * Gets the domain added to the collaboration allowlist. - * - * @return the domain in the collaboration allowlist - */ - public String getDomain() { - - return this.domain; - } - - /** - * Get the direction of the collaboration allowlist. Values can be inbound, outbound, or - * both. - * - * @return the direction set for the collaboration allowlist. Values can be inbound, outbound, or both. - */ - public AllowlistDirection getDirection() { - - return this.direction; - } - - /** - * Gets the enterprise that the collaboration allowlist belongs to. - * - * @return the enterprise that the collaboration allowlist belongs to. - */ - public BoxEnterprise getEnterprise() { - - return this.enterprise; - } - - /** - * Gets the time the collaboration allowlist was created. - * - * @return the time the collaboration allowlist was created. - */ - public Date getCreatedAt() { - - return this.createdAt; - } - - /** - * Gets the time the collaboration allowlist was last modified. - * - * @return the time the collaboration allowlist was last modified. - */ - public Date getModifiedAt() { - - return this.modifiedAt; - } - - @Override - public BoxCollaborationAllowlist getResource() { - return BoxCollaborationAllowlist.this; - } - - @Override - protected void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - if (memberName.equals("domain")) { - this.domain = value.asString(); - - } else if (memberName.equals("type")) { - this.type = value.asString(); - - } else if (memberName.equals("direction")) { - this.direction = AllowlistDirection.fromDirection(value.asString()); - - } else if (memberName.equals("enterprise")) { - JsonObject jsonObject = value.asObject(); - this.enterprise = new BoxEnterprise(jsonObject); - - } else if (memberName.equals("created_at")) { - this.createdAt = BoxDateFormat.parse(value.asString()); - - } else if (memberName.equals("modified_at")) { - this.modifiedAt = BoxDateFormat.parse(value.asString()); - - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - } -} diff --git a/src/main/java/com/box/sdk/BoxCollaborationAllowlistExemptTarget.java b/src/main/java/com/box/sdk/BoxCollaborationAllowlistExemptTarget.java deleted file mode 100644 index f29ce9204..000000000 --- a/src/main/java/com/box/sdk/BoxCollaborationAllowlistExemptTarget.java +++ /dev/null @@ -1,257 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.http.HttpMethod; -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; -import java.util.Date; - -/** - * Represents a collaboration allowlist between a user and a Box Enterprise. Collaboration Allowlist enables a Box - * Enterprise(only available if you have Box Governance) to manage a set of approved users that can collaborate - * with an enterprise. - * - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly.

    - */ -@BoxResourceType("collaboration_allowlist_exempt_target") -public class BoxCollaborationAllowlistExemptTarget extends BoxResource { - /** - * Collaboration Allowlist Exempt Target Entries URL Template. - */ - public static final URLTemplate COLLABORATION_ALLOWLIST_EXEMPT_TARGET_ENTRIES_URL_TEMPLATE = - new URLTemplate("collaboration_whitelist_exempt_targets"); - - /** - * Collaboration Allowlist Exempt Target Entries URL Template with given ID. - */ - public static final URLTemplate COLLABORATION_ALLOWLIST_EXEMPT_TARGET_ENTRY_URL_TEMPLATE = - new URLTemplate("collaboration_whitelist_exempt_targets/%s"); - - /** - * The default limit of entries per response. - */ - private static final int DEFAULT_LIMIT = 100; - - /** - * Constructs a BoxCollaborationAllowlistExemptTarget for a collaboration allowlist with a give ID. - * - * @param api the API connection to be used by the collaboration allowlist. - * @param id the ID of the collaboration allowlist. - */ - public BoxCollaborationAllowlistExemptTarget(BoxAPIConnection api, String id) { - - super(api, id); - } - - /** - * Creates a collaboration allowlist for a Box User with a given ID. - * - * @param api the API connection to be used by the collaboration allowlist. - * @param userID the ID of the Box User to add to the collaboration allowlist. - * @return information about the collaboration allowlist created for user. - */ - public static BoxCollaborationAllowlistExemptTarget.Info create(final BoxAPIConnection api, String userID) { - URL url = COLLABORATION_ALLOWLIST_EXEMPT_TARGET_ENTRIES_URL_TEMPLATE.build(api.getBaseURL()); - BoxJSONRequest request = new BoxJSONRequest(api, url, HttpMethod.POST); - JsonObject requestJSON = new JsonObject() - .add("user", new JsonObject() - .add("type", "user") - .add("id", userID)); - - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - BoxCollaborationAllowlistExemptTarget userAllowlist = new BoxCollaborationAllowlistExemptTarget(api, - responseJSON.get("id").asString()); - - return userAllowlist.new Info(responseJSON); - } - } - - /** - * Returns all the collaboration allowlisting for user with default limit set to 100. - * - * @param api the API connection to be use by the resource. - * @param fields the fields to retrieve. - * @return an iterable with all the collaboration allowlists for users met search conditions. - */ - public static Iterable getAll(final BoxAPIConnection api, - String... fields) { - return getAll(api, DEFAULT_LIMIT, fields); - } - - /** - * Returns all the collaboration allowlisting for user with specified filters. - * - * @param api the API connection to be used by the resource. - * @param limit the number of collaboration allowlists to retrieve. - * @param fields the fields to retrieve. - * @return an iterable with all the collaboration allowlists for users met search conditions. - */ - public static Iterable getAll(final BoxAPIConnection api, int limit, - String... fields) { - QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - - URL url = COLLABORATION_ALLOWLIST_EXEMPT_TARGET_ENTRIES_URL_TEMPLATE.buildWithQuery(api.getBaseURL(), - builder.toString()); - return new BoxResourceIterable(api, url, limit) { - - @Override - protected BoxCollaborationAllowlistExemptTarget.Info factory(JsonObject jsonObject) { - BoxCollaborationAllowlistExemptTarget userAllowlist = new BoxCollaborationAllowlistExemptTarget( - api, jsonObject.get("id").asString()); - - return userAllowlist.new Info(jsonObject); - } - }; - } - - /** - * Retrieves information for a collaboration allowlist for a given allowlist ID. - * - * @return information about this {@link BoxCollaborationAllowlistExemptTarget}. - */ - public BoxCollaborationAllowlistExemptTarget.Info getInfo() { - URL url = COLLABORATION_ALLOWLIST_EXEMPT_TARGET_ENTRY_URL_TEMPLATE.build(this.getAPI().getBaseURL(), - this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, HttpMethod.GET); - try (BoxJSONResponse response = request.send()) { - return new Info(Json.parse(response.getJSON()).asObject()); - } - } - - /** - * Deletes this collaboration allowlist entry for user. - */ - public void delete() { - BoxAPIConnection api = this.getAPI(); - URL url = COLLABORATION_ALLOWLIST_EXEMPT_TARGET_ENTRY_URL_TEMPLATE.build(api.getBaseURL(), - this.getID()); - - BoxAPIRequest request = new BoxAPIRequest(api, url, HttpMethod.DELETE); - request.send().close(); - } - - /** - * Contains information about a BoxCollaborationAllowlistExemptTarget. - */ - public class Info extends BoxResource.Info { - private String type; - private BoxUser.Info user; - private BoxEnterprise enterprise; - private Date createdAt; - private Date modifiedAt; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - Info(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the type of the collaboration allowlist for user. - * - * @return the type of the collaboration allowlist for user. - */ - public String getType() { - - return this.type; - } - - /** - * Gets the user added to the collaboration allowlist. - * - * @return the user in the collaboration allowlist. - */ - public BoxUser.Info getUser() { - - return this.user; - } - - /** - * Gets the enterprise that the collaboration allowlist for user belongs to. - * - * @return the enterprise that the collaboration allowlist for user belongs to. - */ - public BoxEnterprise getEnterprise() { - - return this.enterprise; - } - - /** - * Gets the time the collaboration allowlist was created for user. - * - * @return the time the collaboration allowlist was created for user. - */ - public Date getCreatedAt() { - - return this.createdAt; - } - - /** - * Gets the last modified time of the collaboration allowlist for user. - * - * @return the last modified time of the collaboration allowlist for user. - */ - public Date getModifiedAt() { - - return this.modifiedAt; - } - - @Override - public BoxCollaborationAllowlistExemptTarget getResource() { - return BoxCollaborationAllowlistExemptTarget.this; - } - - @Override - protected void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - if (memberName.equals("user")) { - JsonObject userJSON = value.asObject(); - String userID = userJSON.get("id").asString(); - BoxUser user = new BoxUser(getAPI(), userID); - this.user = user.new Info(userJSON); - - } else if (memberName.equals("type")) { - this.type = value.asString(); - - } else if (memberName.equals("enterprise")) { - JsonObject jsonObject = value.asObject(); - this.enterprise = new BoxEnterprise(jsonObject); - - } else if (memberName.equals("created_at")) { - this.createdAt = BoxDateFormat.parse(value.asString()); - - } else if (memberName.equals("modified_at")) { - this.modifiedAt = BoxDateFormat.parse(value.asString()); - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - } -} diff --git a/src/main/java/com/box/sdk/BoxCollaborationIterator.java b/src/main/java/com/box/sdk/BoxCollaborationIterator.java deleted file mode 100644 index 7c7a297b7..000000000 --- a/src/main/java/com/box/sdk/BoxCollaborationIterator.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.PagingParameters.offset; - -import com.eclipsesource.json.JsonObject; -import java.net.URL; -import java.util.Iterator; - -class BoxCollaborationIterator implements Iterator { - private static final long LIMIT = 100; - private final BoxAPIConnection api; - private final JsonIterator jsonIterator; - - BoxCollaborationIterator(BoxAPIConnection api, URL url) { - this.api = api; - this.jsonIterator = new JsonIterator(api, url, offset(0, LIMIT)); - } - - @Override - public boolean hasNext() { - return this.jsonIterator.hasNext(); - } - - @Override - public BoxCollaboration.Info next() { - JsonObject nextJSONObject = this.jsonIterator.next(); - String id = nextJSONObject.get("id").asString(); - - BoxCollaboration collaboration = new BoxCollaboration(this.api, id); - return collaboration.new Info(nextJSONObject); - } - - public void remove() { - throw new UnsupportedOperationException(); - } -} diff --git a/src/main/java/com/box/sdk/BoxCollaborator.java b/src/main/java/com/box/sdk/BoxCollaborator.java deleted file mode 100644 index 1a490d4f1..000000000 --- a/src/main/java/com/box/sdk/BoxCollaborator.java +++ /dev/null @@ -1,215 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.util.Date; - -/** - * The abstract base class for types that can be added to collaborations. - */ -public abstract class BoxCollaborator extends BoxResource { - - /** - * Constructs a BoxCollaborator for a collaborator with a given ID. - * - * @param api the API connection to be used by the collaborator. - * @param id the ID of the collaborator. - */ - public BoxCollaborator(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Enumerates the possible types of collaborations. - */ - public enum CollaboratorType { - /** - * A user. - */ - USER("user"), - - /** - * A group. - */ - GROUP("group"); - - private final String jsonValue; - - CollaboratorType(String jsonValue) { - this.jsonValue = jsonValue; - } - - static CollaboratorType fromJSONValue(String jsonValue) { - return CollaboratorType.valueOf(jsonValue.toUpperCase(java.util.Locale.ROOT)); - } - - String toJSONValue() { - return this.jsonValue; - } - } - - /** - * Enumerates the possible types of groups. - */ - public enum GroupType { - /** - * A users group. - */ - ALL_USERS_GROUP("all_users_group"), - - /** - * A managed group. - */ - MANAGED_GROUP("managed_group"); - - private final String jsonValue; - - GroupType(String jsonValue) { - this.jsonValue = jsonValue; - } - - static GroupType fromJSONValue(String jsonValue) { - return GroupType.valueOf(jsonValue.toUpperCase(java.util.Locale.ROOT)); - } - - String toJSONValue() { - return this.jsonValue; - } - } - - /** - * Contains information about a BoxCollaborator. - */ - public abstract class Info extends BoxResource.Info { - private CollaboratorType type; - private String name; - private Date createdAt; - private Date modifiedAt; - private String login; - private GroupType groupType; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - Info(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the type of the collaborator. - * - * @return the type of the collaborator. - */ - public CollaboratorType getType() { - return this.type; - } - - /** - * Gets the name of the collaborator. - * - * @return the name of the collaborator. - */ - public String getName() { - return this.name; - } - - /** - * Sets the name of the collaborator. - * - * @param name the new name of the collaborator. - */ - public void setName(String name) { - this.name = name; - this.addPendingChange("name", name); - } - - /** - * Gets the date that the collaborator was created. - * - * @return the date that the collaborator was created. - */ - public Date getCreatedAt() { - return this.createdAt; - } - - /** - * Gets the date that the collaborator was modified. - * - * @return the date that the collaborator was modified. - */ - public Date getModifiedAt() { - return this.modifiedAt; - } - - /** - * Gets the login for the collaborator if the collaborator is a user. - * - * @return the login of the collaboraor. - */ - public String getLogin() { - return this.login; - } - - /** - * Gets the group type for the collaborator if the collaborator is a group. - * - * @return the group type of the collaboraor. - */ - public GroupType getGroupType() { - return this.groupType; - } - - @Override - protected void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - JsonValue value = member.getValue(); - String name = member.getName(); - - try { - - switch (name) { - case "type": - this.type = CollaboratorType.fromJSONValue(value.asString()); - break; - case "name": - this.name = value.asString(); - break; - case "created_at": - this.createdAt = BoxDateFormat.parse(value.asString()); - break; - case "modified_at": - this.modifiedAt = BoxDateFormat.parse(value.asString()); - break; - case "login": - this.login = value.asString(); - break; - case "group_type": - this.groupType = GroupType.fromJSONValue(value.asString()); - break; - default: - break; - } - } catch (Exception e) { - throw new BoxDeserializationException(name, value.toString(), e); - } - } - } -} diff --git a/src/main/java/com/box/sdk/BoxCollection.java b/src/main/java/com/box/sdk/BoxCollection.java deleted file mode 100644 index c5fa549e7..000000000 --- a/src/main/java/com/box/sdk/BoxCollection.java +++ /dev/null @@ -1,193 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; -import java.util.Iterator; - -/** - * Collections contain information about the items contained inside of them, including files and folders. The only - * collection available currently is a “Favorites” collection. - * - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly.

    - */ -@BoxResourceType("collection") -public class BoxCollection extends BoxResource implements Iterable { - - /** - * Get Collections URL Template. - */ - public static final URLTemplate GET_COLLECTIONS_URL_TEMPLATE = new URLTemplate("collections/"); - /** - * Get Collection Items URL Template. - */ - public static final URLTemplate GET_COLLECTION_ITEMS_URL = new URLTemplate("collections/%s/items/"); - - /** - * Constructs a BoxCollection for a collection with a given ID. - * - * @param api the API connection to be used by the collection. - * @param id the ID of the collection. - */ - public BoxCollection(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Gets an iterable of all the collections for the given user. - * - * @param api the API connection to be used when retrieving the collections. - * @return an iterable containing info about all the collections. - */ - public static Iterable getAllCollections(final BoxAPIConnection api) { - return () -> { - URL url = GET_COLLECTIONS_URL_TEMPLATE.build(api.getBaseURL()); - return new BoxCollectionIterator(api, url); - }; - } - - /** - * Returns an iterable containing the items in this collection. Iterating over the iterable returned by this method - * is equivalent to iterating over this BoxCollection directly. - * - * @return an iterable containing the items in this collection. - */ - public Iterable getItems() { - return this; - } - - /** - * Returns an iterable containing the items in this collection and specifies which attributes to include in the - * response. - * - * @param fields the fields to retrieve. - * @return an iterable containing the items in this collection. - */ - public Iterable getItems(final String... fields) { - return () -> { - String queryString = new QueryStringBuilder().appendParam("fields", fields).toString(); - URL url = GET_COLLECTION_ITEMS_URL.buildWithQuery(getAPI().getBaseURL(), queryString, getID()); - return new BoxItemIterator(getAPI(), url); - }; - } - - /** - * Retrieves a specific range of items in this collection. - * - * @param offset the index of the first item to retrieve. - * @param limit the maximum number of items to retrieve after the offset. - * @param fields the fields to retrieve. - * @return a partial collection containing the specified range of items. - */ - public PartialCollection getItemsRange(long offset, long limit, String... fields) { - QueryStringBuilder builder = new QueryStringBuilder() - .appendParam("offset", offset) - .appendParam("limit", limit); - - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - - URL url = GET_COLLECTION_ITEMS_URL.buildWithQuery(getAPI().getBaseURL(), builder.toString(), getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - String totalCountString = responseJSON.get("total_count").toString(); - long fullSize = Double.valueOf(totalCountString).longValue(); - PartialCollection items = new PartialCollection<>(offset, limit, fullSize); - JsonArray entries = responseJSON.get("entries").asArray(); - for (JsonValue entry : entries) { - BoxItem.Info entryInfo = (BoxItem.Info) BoxResource.parseInfo(this.getAPI(), entry.asObject()); - if (entryInfo != null) { - items.add(entryInfo); - } - } - return items; - } - } - - /** - * Returns an iterator over the items in this collection. - * - * @return an iterator over the items in this collection. - */ - @Override - public Iterator iterator() { - URL url = GET_COLLECTION_ITEMS_URL.build(this.getAPI().getBaseURL(), BoxCollection.this.getID()); - return new BoxItemIterator(BoxCollection.this.getAPI(), url); - } - - /** - * Contains information about a BoxCollection. - */ - public class Info extends BoxResource.Info { - private String collectionType; - private String name; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - Info(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the type of the collection. - * - * @return the type of the collection. - */ - public String getCollectionType() { - return this.collectionType; - } - - /** - * Gets the name of the collection. - * - * @return the name of the collection. - */ - public String getName() { - return this.name; - } - - @Override - public BoxCollection getResource() { - return BoxCollection.this; - } - - @Override - protected void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - - String memberName = member.getName(); - JsonValue value = member.getValue(); - if (memberName.equals("collection_type")) { - this.collectionType = value.asString(); - } else if (memberName.equals("name")) { - this.name = value.asString(); - } - } - } -} diff --git a/src/main/java/com/box/sdk/BoxCollectionIterator.java b/src/main/java/com/box/sdk/BoxCollectionIterator.java deleted file mode 100644 index 33e7854c3..000000000 --- a/src/main/java/com/box/sdk/BoxCollectionIterator.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.PagingParameters.offset; - -import com.eclipsesource.json.JsonObject; -import java.net.URL; -import java.util.Iterator; - -class BoxCollectionIterator implements Iterator { - private static final long LIMIT = 100; - private final BoxAPIConnection api; - private final JsonIterator jsonIterator; - - BoxCollectionIterator(BoxAPIConnection api, URL url) { - this.api = api; - this.jsonIterator = new JsonIterator(api, url, offset(0, LIMIT)); - } - - @Override - public boolean hasNext() { - return this.jsonIterator.hasNext(); - } - - @Override - public BoxCollection.Info next() { - JsonObject nextJSONObject = this.jsonIterator.next(); - String id = nextJSONObject.get("id").asString(); - - BoxCollection collection = new BoxCollection(this.api, id); - return collection.new Info(nextJSONObject); - } - - public void remove() { - throw new UnsupportedOperationException(); - } -} diff --git a/src/main/java/com/box/sdk/BoxComment.java b/src/main/java/com/box/sdk/BoxComment.java deleted file mode 100644 index 4edcff00e..000000000 --- a/src/main/java/com/box/sdk/BoxComment.java +++ /dev/null @@ -1,335 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; -import java.util.Date; -import java.util.regex.Pattern; - -/** - * Represents a comment on a file. Comments can be added directly to a file or they can be created as replies to other - * comments. - * - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly.

    - */ -@BoxResourceType("comment") -public class BoxComment extends BoxResource { - - /** - * Add Comment URL Template. - */ - public static final URLTemplate ADD_COMMENT_URL_TEMPLATE = new URLTemplate("comments"); - /** - * Comment URL Template. - */ - public static final URLTemplate COMMENT_URL_TEMPLATE = new URLTemplate("comments/%s"); - - private static final Pattern MENTION_REGEX = Pattern.compile("@\\[.+:.+\\]"); - - /** - * Constructs a BoxComment for a comment with a given ID. - * - * @param api the API connection to be used with the comment. - * @param id the ID of the comment. - */ - public BoxComment(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Determines if a comment message contains an @mention. - * - * @param message the comment message. - * @return true if the message contains an @mention; otherwise false. - */ - static boolean messageContainsMention(String message) { - return MENTION_REGEX.matcher(message).find(); - } - - /** - * Gets information about this comment. - * - * @return info about this comment. - */ - public Info getInfo() { - URL url = COMMENT_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonResponse = Json.parse(response.getJSON()).asObject(); - - return new Info(jsonResponse); - } - } - - /** - * Changes the message of this comment. - * - * @param newMessage the new message for this comment. - * @return updated info about this comment. - */ - public Info changeMessage(String newMessage) { - Info newInfo = new Info(); - newInfo.setMessage(newMessage); - - URL url = COMMENT_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - request.setBody(newInfo.getPendingChanges()); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonResponse = Json.parse(response.getJSON()).asObject(); - - return new Info(jsonResponse); - } - } - - /** - * Replies to this comment with another message. - * - * @param message the message for the reply. - * @return info about the newly created reply comment. - */ - public BoxComment.Info reply(String message) { - JsonObject itemJSON = new JsonObject(); - itemJSON.add("type", "comment"); - itemJSON.add("id", this.getID()); - - JsonObject requestJSON = new JsonObject(); - requestJSON.add("item", itemJSON); - if (BoxComment.messageContainsMention(message)) { - requestJSON.add("tagged_message", message); - } else { - requestJSON.add("message", message); - } - - URL url = ADD_COMMENT_URL_TEMPLATE.build(this.getAPI().getBaseURL()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "POST"); - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - BoxComment addedComment = new BoxComment(this.getAPI(), responseJSON.get("id").asString()); - return addedComment.new Info(responseJSON); - } - } - - /** - * Deletes this comment. - */ - public void delete() { - URL url = COMMENT_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "DELETE"); - request.send().close(); - } - - /** - * Contains information about a BoxComment. - */ - public class Info extends BoxResource.Info { - private boolean isReplyComment; - private String message; - private String taggedMessage; - private BoxUser.Info createdBy; - private Date createdAt; - private BoxResource.Info item; - private BoxUser.Info modifiedBy; - private Date modifiedAt; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - Info(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets whether or not the comment is a reply to another comment. - * - * @return true if this comment is a reply to another comment; otherwise false. - */ - public boolean getIsReplyComment() { - return this.isReplyComment; - } - - /** - * Gets the comment's message. - * - * @return the comment's message. - */ - public String getMessage() { - if (this.taggedMessage != null) { - return this.taggedMessage; - } - - return this.message; - } - - /** - * Sets the comment's message. The message can contain @mentions by using the string @[userid:username] anywhere - * within the message, where userid and username are the ID and username of the person being mentioned. - * - * @param message the comment's new message. - */ - public void setMessage(String message) { - if (messageContainsMention(message)) { - this.taggedMessage = message; - this.addPendingChange("tagged_message", message); - this.removePendingChange("message"); - } else { - this.message = message; - this.addPendingChange("message", message); - this.removePendingChange("tagged_message"); - } - } - - /** - * Gets info about the user who created the comment. - * - * @return info about the user who created the comment. - */ - public BoxUser.Info getCreatedBy() { - return this.createdBy; - } - - /** - * Gets the time the comment was created. - * - * @return the time the comment was created. - */ - public Date getCreatedAt() { - return this.createdAt; - } - - /** - * Gets info about the item this comment is attached to. If the comment is a reply, then the item will be - * another BoxComment. Otherwise, the item will be a {@link BoxFile}. - * - * @return the item this comment is attached to. - */ - public BoxResource.Info getItem() { - return this.item; - } - - /** - * Gets info about the user who last modified the comment. - * - * @return info about the user who last modified the comment. - */ - public BoxUser.Info getModifiedBy() { - return this.modifiedBy; - } - - /** - * Gets the time the comment was last modified. - * - * @return the time the comment was last modified. - */ - public Date getModifiedAt() { - return this.modifiedAt; - } - - @Override - public BoxComment getResource() { - return BoxComment.this; - } - - @Override - protected void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - JsonValue value = member.getValue(); - - try { - - if (memberName.equals("is_reply_comment")) { - this.isReplyComment = value.asBoolean(); - - } else if (memberName.equals("message")) { - this.message = value.asString(); - - } else if (memberName.equals("tagged_message")) { - this.taggedMessage = value.asString(); - - } else if (memberName.equals("created_by")) { - JsonObject userJSON = value.asObject(); - if (this.createdBy == null) { - String userID = userJSON.get("id").asString(); - BoxUser user = new BoxUser(getAPI(), userID); - this.createdBy = user.new Info(userJSON); - } else { - this.createdBy.update(userJSON); - } - - } else if (memberName.equals("created_at")) { - this.createdAt = BoxDateFormat.parse(value.asString()); - - } else if (memberName.equals("item")) { - this.parseItem(value); - - } else if (memberName.equals("modified_by")) { - JsonObject userJSON = value.asObject(); - if (this.modifiedBy == null) { - String userID = userJSON.get("id").asString(); - BoxUser user = new BoxUser(getAPI(), userID); - this.modifiedBy = user.new Info(userJSON); - } else { - this.modifiedBy.update(userJSON); - } - } else if (memberName.equals("modified_at")) { - this.modifiedAt = BoxDateFormat.parse(value.asString()); - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - - private void parseItem(JsonValue value) { - JsonObject itemJSON = value.asObject(); - String itemType = itemJSON.get("type").asString(); - if (itemType.equals("file")) { - this.updateItemAsFile(itemJSON); - } else if (itemType.equals("comment")) { - this.updateItemAsComment(itemJSON); - } - } - - private void updateItemAsFile(JsonObject itemJSON) { - String itemID = itemJSON.get("id").asString(); - if (this.item != null && this.item instanceof BoxFile.Info && this.item.getID().equals(itemID)) { - this.item.update(itemJSON); - } else { - BoxFile file = new BoxFile(getAPI(), itemID); - this.item = file.new Info(itemJSON); - } - } - - private void updateItemAsComment(JsonObject itemJSON) { - String itemID = itemJSON.get("id").asString(); - if (this.item != null && this.item instanceof BoxComment.Info && this.item.getID().equals(itemID)) { - this.item.update(itemJSON); - } else { - BoxComment comment = new BoxComment(getAPI(), itemID); - this.item = comment.new Info(itemJSON); - } - } - } -} diff --git a/src/main/java/com/box/sdk/BoxConfig.java b/src/main/java/com/box/sdk/BoxConfig.java deleted file mode 100644 index e90e88f4e..000000000 --- a/src/main/java/com/box/sdk/BoxConfig.java +++ /dev/null @@ -1,188 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import java.io.IOException; -import java.io.Reader; - -/** - * Contains Box configurations. - */ -public class BoxConfig { - - private String clientId; - private String clientSecret; - private String enterpriseId; - private JWTEncryptionPreferences jwtEncryptionPreferences; - - /** - * Creates a configuration with a clientId and clientSecret. - * - * @param clientId the client ID of the application - * @param clientSecret the client secret of the application - */ - public BoxConfig(String clientId, String clientSecret) { - this.clientId = clientId; - this.clientSecret = clientSecret; - } - - /** - * Creates a configuration with clientId, clientSecret and JWTEncryptionPreferences. - * - * @param clientId the client ID of the application - * @param clientSecret the client secret of the application - * @param enterpriseId the enterprise ID of the box account - * @param jwtEncryptionPreferences the JWTEncryptionPreferences of the application - */ - public BoxConfig(String clientId, String clientSecret, String enterpriseId, - JWTEncryptionPreferences jwtEncryptionPreferences) { - this.clientId = clientId; - this.clientSecret = clientSecret; - this.enterpriseId = enterpriseId; - this.jwtEncryptionPreferences = jwtEncryptionPreferences; - } - - /** - * Creates a configuration with clientId, clientSecret, publicKeyID, privateKey, privateKeyPassword. - * and an encryptionAlgorithm. - * - * @param clientId the client ID of the application - * @param clientSecret the client secret of the application - * @param enterpriseId the enterprise ID of the box account - * @param publicKeyID the unique ID of the uploaded public key - * @param privateKey the private key used to sign JWT requests - * @param privateKeyPassword the passphrase for the private key - * @param encryptionAlgorithm the encryption algorithm that has to be used for signing JWT requests - */ - public BoxConfig(String clientId, String clientSecret, String enterpriseId, String publicKeyID, - String privateKey, String privateKeyPassword, EncryptionAlgorithm encryptionAlgorithm) { - this.clientId = clientId; - this.clientSecret = clientSecret; - this.enterpriseId = enterpriseId; - this.jwtEncryptionPreferences = new JWTEncryptionPreferences(); - this.jwtEncryptionPreferences.setPublicKeyID(publicKeyID); - this.jwtEncryptionPreferences.setPrivateKey(privateKey); - this.jwtEncryptionPreferences.setPrivateKeyPassword(privateKeyPassword); - this.jwtEncryptionPreferences.setEncryptionAlgorithm(encryptionAlgorithm); - } - - /** - * Creates a configuration with RSA_SHA_256 as the encryption algorithm. - * - * @param clientId the client ID of the application - * @param clientSecret the client secret of the application - * @param enterpriseId the enterprise ID of the box account - * @param publicKeyID the unique ID of the uploaded public key - * @param privateKey the private key used to sign JWT requests - * @param privateKeyPassword the passphrase for the private key - */ - public BoxConfig(String clientId, String clientSecret, String enterpriseId, String publicKeyID, - String privateKey, String privateKeyPassword) { - this.clientId = clientId; - this.clientSecret = clientSecret; - this.enterpriseId = enterpriseId; - this.jwtEncryptionPreferences = new JWTEncryptionPreferences(); - this.jwtEncryptionPreferences.setPublicKeyID(publicKeyID); - this.jwtEncryptionPreferences.setPrivateKey(privateKey); - this.jwtEncryptionPreferences.setPrivateKeyPassword(privateKeyPassword); - this.jwtEncryptionPreferences.setEncryptionAlgorithm(EncryptionAlgorithm.RSA_SHA_256); - } - - /** - * Reads OAuth 2.0 with JWT app configurations from the reader. The file should be in JSON format. - * - * @param reader a reader object which points to a JSON formatted configuration file - * @return a new Instance of BoxConfig - * @throws IOException when unable to access the mapping file's content of the reader - */ - public static BoxConfig readFrom(Reader reader) throws IOException { - return createConfigFrom(Json.parse(reader).asObject()); - } - - /** - * Reads OAuth 2.0 with JWT app configurations from the Json string. - * - * @param jsonString a Json stringrepresenting formatted configuration file - * @return a new Instance of BoxConfig - */ - public static BoxConfig readFrom(String jsonString) { - return createConfigFrom(Json.parse(jsonString).asObject()); - } - - private static BoxConfig createConfigFrom(JsonObject config) { - JsonObject settings = (JsonObject) config.get("boxAppSettings"); - String clientId = settings.get("clientID").asString(); - String clientSecret = settings.get("clientSecret").asString(); - JsonObject appAuth = (JsonObject) settings.get("appAuth"); - String publicKeyId = appAuth.get("publicKeyID").asString(); - String privateKey = appAuth.get("privateKey").asString(); - String passphrase = appAuth.get("passphrase").asString(); - String enterpriseId = config.get("enterpriseID").asString(); - return new BoxConfig(clientId, clientSecret, enterpriseId, publicKeyId, privateKey, passphrase); - } - - /** - * @return client secret - */ - public String getClientSecret() { - return this.clientSecret; - } - - /** - * @param clientSecret client secret of the application - */ - public void setClientSecret(String clientSecret) { - this.clientSecret = clientSecret; - } - - /** - * @return enterprise ID - */ - public String getEnterpriseId() { - return this.enterpriseId; - } - - /** - * @param enterpriseId enterprise ID of the application - */ - public void setEnterpriseId(String enterpriseId) { - this.enterpriseId = enterpriseId; - } - - /** - * @return JWT Encryption Preferences - */ - public JWTEncryptionPreferences getJWTEncryptionPreferences() { - return this.jwtEncryptionPreferences; - } - - /** - * @param jwtEncryptionPreferences encryption preferences for JWT based authentication - */ - public void setJWTEncryptionPreferences(JWTEncryptionPreferences jwtEncryptionPreferences) { - this.jwtEncryptionPreferences = jwtEncryptionPreferences; - } - - /** - * @return client ID - */ - public String getClientId() { - return this.clientId; - } - - /** - * @param clientId client ID of the Application - */ - public void setClientId(String clientId) { - this.clientId = clientId; - } - - /** - * Sets a custom decryptor used for decrypting the private key. - * - * @param privateKeyDecryptor privateKeyDecryptor the decryptor used for decrypting the private key. - */ - public void setPrivateKeyDecryptor(IPrivateKeyDecryptor privateKeyDecryptor) { - this.jwtEncryptionPreferences.setPrivateKeyDecryptor(privateKeyDecryptor); - } -} diff --git a/src/main/java/com/box/sdk/BoxDateFormat.java b/src/main/java/com/box/sdk/BoxDateFormat.java deleted file mode 100644 index 692af24d9..000000000 --- a/src/main/java/com/box/sdk/BoxDateFormat.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.box.sdk; - -import java.text.DateFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.time.Instant; -import java.util.Date; -import java.util.TimeZone; - -/** - * Contains methods for parsing and formatting dates for use with the Box API. - */ -public final class BoxDateFormat { - private static final ThreadLocal THREAD_LOCAL_DATE_FORMAT_SECONDS = ThreadLocal.withInitial(() -> { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX"); - sdf.setTimeZone(TimeZone.getTimeZone("UTC")); - return sdf; - }); - - private static final ThreadLocal THREAD_LOCAL_DATE_FORMAT_MILLISECONDS = ThreadLocal.withInitial(() -> { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX"); - sdf.setTimeZone(TimeZone.getTimeZone("UTC")); - return sdf; - }); - - private static final ThreadLocal THREAD_LOCAL_DATE_ONLY = ThreadLocal.withInitial(() -> { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - sdf.setTimeZone(TimeZone.getTimeZone("UTC")); - return sdf; - }); - - private BoxDateFormat() { - } - - /** - * Parses a date string returned by the Box API into a {@link Date} object. - * - * @param dateString a string containing the date. - * @return the parsed date. - * @throws ParseException if the string cannot be parsed into a valid date. - */ - public static Date parse(String dateString) throws ParseException { - try { - return THREAD_LOCAL_DATE_FORMAT_SECONDS.get().parse(dateString); - } catch (ParseException pe) { - return THREAD_LOCAL_DATE_FORMAT_MILLISECONDS.get().parse(dateString); - } - } - - /** - * Parses a date in format of yyyy-MM-dd. - * - * @param date date to parse. - * @return parsed date. - * @throws ParseException if the string cannot be parsed into a valid date. - */ - public static Date parseDateOnly(String date) throws ParseException { - return THREAD_LOCAL_DATE_ONLY.get().parse(date); - } - - /** - * Formats a date as a string that can be sent to the Box API. - * - * @param date the date to format. - * @return a string containing the formatted date. - */ - public static String format(Date date) { - return THREAD_LOCAL_DATE_FORMAT_SECONDS.get().format(date); - } - - /** - * Formats an Instant as a string that can be sent to the Box API. - * - * @param instant the instant to format. - * @return a string containing the formatted instant. - */ - public static String format(Instant instant) { - return THREAD_LOCAL_DATE_FORMAT_SECONDS.get().format(Date.from(instant)); - } - - /** - * Formats a date as a string yyyy-MM-dd that can be sent to the Box API. - * - * @param date the date to format. - * @return a yyyy-MM-dd string containing the formatted date. - */ - public static String formatAsDateOnly(Date date) { - return THREAD_LOCAL_DATE_ONLY.get().format(date); - } -} diff --git a/src/main/java/com/box/sdk/BoxDeserializationException.java b/src/main/java/com/box/sdk/BoxDeserializationException.java deleted file mode 100644 index 5a6dd0633..000000000 --- a/src/main/java/com/box/sdk/BoxDeserializationException.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.box.sdk; - -/** - * A class representing exceptions caused from deserializing errors. - */ -public class BoxDeserializationException extends RuntimeException { - static final long serialVersionUID = 4266400750306343595L; - private final String fieldName; - private final String fieldValue; - - /** - * Initializes the BoxDeserializationException class. - * - * @param member the key of the json member the deserialization occurred on. - * @param value the value of the json member the deserialization occurred on. - * @param e the throwable cause for the exception. - */ - public BoxDeserializationException(String member, String value, Exception e) { - super(constructExceptionMessage(member, value), e); - this.fieldName = member; - this.fieldValue = value; - } - - /** - * Private helper function to construct the exception message for the deserialization error. - * - * @param member the field member to include in the exception message. - * @param value the field value to include in the exception message. - * @return the constructed exception message. - */ - private static String constructExceptionMessage(String member, String value) { - return "Deserialization failed on: [ " + "\"field name\": " + member + " | " - + "\"field value\": " + value + " ]"; - } - - /** - * Retrieves the field name of the deserialization error. - * - * @return field name the error occurred on. - */ - public String getFieldName() { - return this.fieldName; - } - - /** - * Retrieves the field value of the deserialization error. - * - * @return field value the error occurred on. - */ - public String getFieldValue() { - return this.fieldValue; - } -} diff --git a/src/main/java/com/box/sdk/BoxDeveloperEditionAPIConnection.java b/src/main/java/com/box/sdk/BoxDeveloperEditionAPIConnection.java deleted file mode 100644 index 630e9bb92..000000000 --- a/src/main/java/com/box/sdk/BoxDeveloperEditionAPIConnection.java +++ /dev/null @@ -1,521 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import java.net.MalformedURLException; -import java.net.URL; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.List; -import org.jose4j.jws.AlgorithmIdentifiers; -import org.jose4j.jws.JsonWebSignature; -import org.jose4j.jwt.JwtClaims; -import org.jose4j.jwt.NumericDate; -import org.jose4j.lang.JoseException; - -/** - * Represents an authenticated Box Developer Edition connection to the Box API. - * - *

    This class handles everything for Box Developer Edition that isn't already handled by BoxAPIConnection.

    - */ -public class BoxDeveloperEditionAPIConnection extends BoxAPIConnection { - - private static final String JWT_AUDIENCE = "https://api.box.com/oauth2/token"; - private static final String JWT_GRANT_TYPE = - "grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&client_id=%s&client_secret=%s&assertion=%s"; - private static final int DEFAULT_MAX_ENTRIES = 100; - - private final String entityID; - private final DeveloperEditionEntityType entityType; - private final EncryptionAlgorithm encryptionAlgorithm; - private final String publicKeyID; - private final String privateKey; - private final String privateKeyPassword; - private BackoffCounter backoffCounter; - private final IAccessTokenCache accessTokenCache; - private final IPrivateKeyDecryptor privateKeyDecryptor; - - /** - * Constructs a new BoxDeveloperEditionAPIConnection leveraging an access token cache. - * - * @param entityId enterprise ID or a user ID. - * @param entityType the type of entityId. - * @param clientID the client ID to use when exchanging the JWT assertion for an access token. - * @param clientSecret the client secret to use when exchanging the JWT assertion for an access token. - * @param encryptionPref the encryption preferences for signing the JWT. - * @param accessTokenCache the cache for storing access token information (to minimize fetching new tokens) - */ - public BoxDeveloperEditionAPIConnection(String entityId, DeveloperEditionEntityType entityType, - String clientID, String clientSecret, - JWTEncryptionPreferences encryptionPref, - IAccessTokenCache accessTokenCache) { - - super(clientID, clientSecret); - - this.entityID = entityId; - this.entityType = entityType; - this.publicKeyID = encryptionPref.getPublicKeyID(); - this.privateKey = encryptionPref.getPrivateKey(); - this.privateKeyPassword = encryptionPref.getPrivateKeyPassword(); - this.encryptionAlgorithm = encryptionPref.getEncryptionAlgorithm(); - this.privateKeyDecryptor = encryptionPref.getPrivateKeyDecryptor(); - this.accessTokenCache = accessTokenCache; - this.backoffCounter = new BackoffCounter(new Time()); - } - - /** - * Constructs a new BoxDeveloperEditionAPIConnection. - * Uses {@link InMemoryLRUAccessTokenCache} with a size of 100 to prevent unneeded - * requests to Box for access tokens. - * - * @param entityId enterprise ID or a user ID. - * @param entityType the type of entityId. - * @param clientID the client ID to use when exchanging the JWT assertion for an access token. - * @param clientSecret the client secret to use when exchanging the JWT assertion for an access token. - * @param encryptionPref the encryption preferences for signing the JWT. - */ - public BoxDeveloperEditionAPIConnection( - String entityId, - DeveloperEditionEntityType entityType, - String clientID, - String clientSecret, - JWTEncryptionPreferences encryptionPref - ) { - - this( - entityId, - entityType, - clientID, - clientSecret, - encryptionPref, - new InMemoryLRUAccessTokenCache(DEFAULT_MAX_ENTRIES) - ); - } - - /** - * Constructs a new BoxDeveloperEditionAPIConnection. - * - * @param entityId enterprise ID or a user ID. - * @param entityType the type of entityId. - * @param boxConfig box configuration settings object - * @param accessTokenCache the cache for storing access token information (to minimize fetching new tokens) - */ - public BoxDeveloperEditionAPIConnection(String entityId, DeveloperEditionEntityType entityType, - BoxConfig boxConfig, IAccessTokenCache accessTokenCache) { - - this(entityId, entityType, boxConfig.getClientId(), boxConfig.getClientSecret(), - boxConfig.getJWTEncryptionPreferences(), accessTokenCache); - } - - /** - * Creates a new Box Developer Edition connection with enterprise token leveraging an access token cache. - * - * @param enterpriseId the enterprise ID to use for requesting access token. - * @param clientId the client ID to use when exchanging the JWT assertion for an access token. - * @param clientSecret the client secret to use when exchanging the JWT assertion for an access token. - * @param encryptionPref the encryption preferences for signing the JWT. - * @param accessTokenCache the cache for storing access token information (to minimize fetching new tokens) - * @return a new instance of BoxAPIConnection. - */ - public static BoxDeveloperEditionAPIConnection getAppEnterpriseConnection( - String enterpriseId, - String clientId, - String clientSecret, - JWTEncryptionPreferences encryptionPref, - IAccessTokenCache accessTokenCache - ) { - - BoxDeveloperEditionAPIConnection connection = new BoxDeveloperEditionAPIConnection(enterpriseId, - DeveloperEditionEntityType.ENTERPRISE, clientId, clientSecret, encryptionPref, accessTokenCache); - - connection.tryRestoreUsingAccessTokenCache(); - - return connection; - } - - /** - * Creates a new Box Developer Edition connection with enterprise token. - * Uses {@link InMemoryLRUAccessTokenCache} with a size of 100 to prevent unneeded - * requests to Box for access tokens. - * - * @param enterpriseId the enterprise ID to use for requesting access token. - * @param clientId the client ID to use when exchanging the JWT assertion for an access token. - * @param clientSecret the client secret to use when exchanging the JWT assertion for an access token. - * @param encryptionPref the encryption preferences for signing the JWT. - * @return a new instance of BoxAPIConnection. - */ - public static BoxDeveloperEditionAPIConnection getAppEnterpriseConnection( - String enterpriseId, - String clientId, - String clientSecret, - JWTEncryptionPreferences encryptionPref - ) { - - BoxDeveloperEditionAPIConnection connection = new BoxDeveloperEditionAPIConnection( - enterpriseId, - DeveloperEditionEntityType.ENTERPRISE, - clientId, - clientSecret, - encryptionPref - ); - - connection.authenticate(); - - return connection; - } - - /** - * Creates a new Box Developer Edition connection with enterprise token leveraging BoxConfig and access token cache. - * - * @param boxConfig box configuration settings object - * @param accessTokenCache the cache for storing access token information (to minimize fetching new tokens) - * @return a new instance of BoxAPIConnection. - */ - public static BoxDeveloperEditionAPIConnection getAppEnterpriseConnection(BoxConfig boxConfig, - IAccessTokenCache accessTokenCache) { - - return getAppEnterpriseConnection( - boxConfig.getEnterpriseId(), - boxConfig.getClientId(), - boxConfig.getClientSecret(), - boxConfig.getJWTEncryptionPreferences(), - accessTokenCache - ); - } - - /** - * Creates a new Box Developer Edition connection with enterprise token leveraging BoxConfig. - * Uses {@link InMemoryLRUAccessTokenCache} with a size of 100 to prevent unneeded - * requests to Box for access tokens. - * - * @param boxConfig box configuration settings object - * @return a new instance of BoxAPIConnection. - */ - public static BoxDeveloperEditionAPIConnection getAppEnterpriseConnection(BoxConfig boxConfig) { - - return getAppEnterpriseConnection( - boxConfig.getEnterpriseId(), - boxConfig.getClientId(), - boxConfig.getClientSecret(), - boxConfig.getJWTEncryptionPreferences() - ); - } - - /** - * Creates a new Box Developer Edition connection with App User or Managed User token. - * - * @param userId the user ID to use for an App User. - * @param clientId the client ID to use when exchanging the JWT assertion for an access token. - * @param clientSecret the client secret to use when exchanging the JWT assertion for an access token. - * @param encryptionPref the encryption preferences for signing the JWT. - * @param accessTokenCache the cache for storing access token information (to minimize fetching new tokens) - * @return a new instance of BoxAPIConnection. - */ - public static BoxDeveloperEditionAPIConnection getUserConnection( - String userId, - String clientId, - String clientSecret, - JWTEncryptionPreferences encryptionPref, - IAccessTokenCache accessTokenCache - ) { - BoxDeveloperEditionAPIConnection connection = new BoxDeveloperEditionAPIConnection( - userId, - DeveloperEditionEntityType.USER, - clientId, - clientSecret, - encryptionPref, - accessTokenCache - ); - - connection.tryRestoreUsingAccessTokenCache(); - - return connection; - } - - /** - * Creates a new Box Developer Edition connection with App User or Managed User token leveraging BoxConfig - * and access token cache. - * - * @param userId the user ID to use for an App User. - * @param boxConfig box configuration settings object - * @param accessTokenCache the cache for storing access token information (to minimize fetching new tokens) - * @return a new instance of BoxAPIConnection. - */ - public static BoxDeveloperEditionAPIConnection getUserConnection( - String userId, - BoxConfig boxConfig, - IAccessTokenCache accessTokenCache - ) { - return getUserConnection( - userId, - boxConfig.getClientId(), - boxConfig.getClientSecret(), - boxConfig.getJWTEncryptionPreferences(), - accessTokenCache - ); - } - - /** - * Creates a new Box Developer Edition connection with App User or Managed User token. - * Uses {@link InMemoryLRUAccessTokenCache} with a size of 100 to prevent unneeded - * requests to Box for access tokens. - * - * @param userId the user ID to use for an App User. - * @param boxConfig box configuration settings object - * @return a new instance of BoxAPIConnection. - */ - public static BoxDeveloperEditionAPIConnection getUserConnection(String userId, BoxConfig boxConfig) { - return getUserConnection( - userId, - boxConfig.getClientId(), - boxConfig.getClientSecret(), - boxConfig.getJWTEncryptionPreferences(), - new InMemoryLRUAccessTokenCache(DEFAULT_MAX_ENTRIES)); - } - - /** - * Disabling the non-Box Developer Edition authenticate method. - * - * @param authCode an auth code obtained from the first half of the OAuth process. - */ - public void authenticate(String authCode) { - throw new BoxAPIException("BoxDeveloperEditionAPIConnection does not allow authenticating with an auth code."); - } - - /** - * Authenticates the API connection for Box Developer Edition. - */ - public void authenticate() { - URL url; - try { - url = new URL(this.getTokenURL()); - } catch (MalformedURLException e) { - assert false : "An invalid token URL indicates a bug in the SDK."; - throw new RuntimeException("An invalid token URL indicates a bug in the SDK.", e); - } - - this.backoffCounter.reset(this.getMaxRetryAttempts() + 1); - NumericDate jwtTime = null; - String jwtAssertion; - String urlParameters; - BoxAPIRequest request; - String json = null; - final BoxLogger logger = BoxLogger.defaultLogger(); - - while (this.backoffCounter.getAttemptsRemaining() > 0) { - // Reconstruct the JWT assertion, which regenerates the jti claim, with the new "current" time - jwtAssertion = this.constructJWTAssertion(jwtTime); - urlParameters = String.format(JWT_GRANT_TYPE, this.getClientID(), this.getClientSecret(), jwtAssertion); - - request = new BoxAPIRequest(this, url, "POST"); - request.shouldAuthenticate(false); - request.setBody(urlParameters); - - try (BoxJSONResponse response = (BoxJSONResponse) request.sendWithoutRetry()) { - // authentication uses form url encoded but response is JSON - json = response.getJSON(); - break; - } catch (BoxAPIException apiException) { - long responseReceivedTime = System.currentTimeMillis(); - - if (!this.backoffCounter.decrement() - || (!BoxAPIRequest.isRequestRetryable(apiException) && !isResponseRetryable(apiException))) { - throw apiException; - } - - logger.warn(String.format( - "Retrying authentication request due to transient error status=%d body=%s", - apiException.getResponseCode(), - apiException.getResponse() - )); - - try { - List retryAfterHeader = apiException.getHeaders().get("Retry-After"); - if (retryAfterHeader == null) { - this.backoffCounter.waitBackoff(); - } else { - int retryAfterDelay = Integer.parseInt(retryAfterHeader.get(0)) * 1000; - this.backoffCounter.waitBackoff(retryAfterDelay); - } - } catch (InterruptedException interruptedException) { - Thread.currentThread().interrupt(); - throw apiException; - } - - long endWaitTime = System.currentTimeMillis(); - long secondsSinceResponseReceived = (endWaitTime - responseReceivedTime) / 1000; - - try { - // Use the Date advertised by the Box server in the exception - // as the current time to synchronize clocks - jwtTime = this.getDateForJWTConstruction(apiException, secondsSinceResponseReceived); - } catch (Exception e) { - throw apiException; - } - - } - } - - if (json == null) { - throw new RuntimeException("Unable to read authentication response in SDK."); - } - - JsonObject jsonObject = Json.parse(json).asObject(); - this.setAccessToken(jsonObject.get("access_token").asString()); - this.setLastRefresh(System.currentTimeMillis()); - this.setExpires(jsonObject.get("expires_in").asLong() * 1000); - - //if token cache is specified, save to cache - if (this.accessTokenCache != null) { - String key = this.getAccessTokenCacheKey(); - JsonObject accessTokenCacheInfo = new JsonObject() - .add("accessToken", this.getAccessToken()) - .add("lastRefresh", this.getLastRefresh()) - .add("expires", this.getExpires()); - - this.accessTokenCache.put(key, accessTokenCacheInfo.toString()); - } - } - - private boolean isResponseRetryable(BoxAPIException apiException) { - return BoxAPIRequest.isResponseRetryable(apiException.getResponseCode(), apiException) - || isJtiNonUniqueError(apiException); - } - - private boolean isJtiNonUniqueError(BoxAPIException apiException) { - return apiException.getResponseCode() == 400 - && apiException.getResponse().contains("A unique 'jti' value is required"); - } - - private NumericDate getDateForJWTConstruction(BoxAPIException apiException, long secondsSinceResponseDateReceived) { - NumericDate currentTime; - List responseDates = apiException.getHeaders().get("Date"); - - if (responseDates != null) { - String responseDate = responseDates.get(0); - SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss zzz"); - try { - Date date = dateFormat.parse(responseDate); - currentTime = NumericDate.fromMilliseconds(date.getTime()); - currentTime.addSeconds(secondsSinceResponseDateReceived); - } catch (ParseException e) { - currentTime = NumericDate.now(); - } - } else { - currentTime = NumericDate.now(); - } - return currentTime; - } - - void setBackoffCounter(BackoffCounter counter) { - this.backoffCounter = counter; - } - - /** - * BoxDeveloperEditionAPIConnection can always refresh, but this method is required elsewhere. - * - * @return true always. - */ - public boolean canRefresh() { - return true; - } - - /** - * Refresh's this connection's access token using Box Developer Edition. - * - * @throws IllegalStateException if this connection's access token cannot be refreshed. - */ - public void refresh() { - this.getRefreshLock().writeLock().lock(); - - try { - this.authenticate(); - } catch (BoxAPIException e) { - this.notifyError(e); - this.getRefreshLock().writeLock().unlock(); - throw e; - } - - this.notifyRefresh(); - this.getRefreshLock().writeLock().unlock(); - } - - private String getAccessTokenCacheKey() { - return String.format("/%s/%s/%s/%s", this.getUserAgent(), this.getClientID(), - this.entityType.toString(), this.entityID); - } - - /** - * Tries to restore the connection using the access token cache. - */ - public void tryRestoreUsingAccessTokenCache() { - if (this.accessTokenCache == null) { - //no cache specified so force authentication - this.authenticate(); - } else { - String cachedTokenInfo = this.accessTokenCache.get(this.getAccessTokenCacheKey()); - if (cachedTokenInfo == null) { - //not found; probably first time for this client config so authenticate; info will then be cached - this.authenticate(); - } else { - //pull access token cache info; authentication will occur as needed (if token is expired) - JsonObject json = Json.parse(cachedTokenInfo).asObject(); - this.setAccessToken(json.get("accessToken").asString()); - this.setLastRefresh(json.get("lastRefresh").asLong()); - this.setExpires(json.get("expires").asLong()); - } - } - } - - private String constructJWTAssertion(NumericDate now) { - JwtClaims claims = new JwtClaims(); - claims.setIssuer(this.getClientID()); - claims.setAudience(JWT_AUDIENCE); - if (now == null) { - claims.setExpirationTimeMinutesInTheFuture(0.5f); - } else { - now.addSeconds(30L); - claims.setExpirationTime(now); - } - claims.setSubject(this.entityID); - claims.setClaim("box_sub_type", this.entityType.toString()); - claims.setGeneratedJwtId(64); - - JsonWebSignature jws = new JsonWebSignature(); - jws.setPayload(claims.toJson()); - jws.setKey(this.privateKeyDecryptor.decryptPrivateKey(this.privateKey, this.privateKeyPassword)); - jws.setAlgorithmHeaderValue(this.getAlgorithmIdentifier()); - jws.setHeader("typ", "JWT"); - if ((this.publicKeyID != null) && !this.publicKeyID.isEmpty()) { - jws.setHeader("kid", this.publicKeyID); - } - - String assertion; - - try { - assertion = jws.getCompactSerialization(); - } catch (JoseException e) { - throw new BoxAPIException("Error serializing JSON Web Token assertion.", e); - } - - return assertion; - } - - private String getAlgorithmIdentifier() { - String algorithmId = AlgorithmIdentifiers.RSA_USING_SHA256; - switch (this.encryptionAlgorithm) { - case RSA_SHA_384: - algorithmId = AlgorithmIdentifiers.RSA_USING_SHA384; - break; - case RSA_SHA_512: - algorithmId = AlgorithmIdentifiers.RSA_USING_SHA512; - break; - case RSA_SHA_256: - default: - break; - } - - return algorithmId; - } -} diff --git a/src/main/java/com/box/sdk/BoxDevicePin.java b/src/main/java/com/box/sdk/BoxDevicePin.java deleted file mode 100644 index 89d81477f..000000000 --- a/src/main/java/com/box/sdk/BoxDevicePin.java +++ /dev/null @@ -1,240 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; -import java.text.ParseException; -import java.util.Date; - -/** - * Represents a device pin. - * - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly.

    - */ -@BoxResourceType("device_pin") -public class BoxDevicePin extends BoxResource { - - /** - * The URL template used for operation with the device pin. - */ - public static final URLTemplate DEVICE_PIN_URL_TEMPLATE = new URLTemplate("device_pinners/%s"); - - /** - * The URL template used to get all the device pins within a given enterprise. - */ - public static final URLTemplate ENTERPRISE_DEVICE_PINS_TEMPLATE = new URLTemplate("enterprises/%s/device_pinners"); - - /** - * Default limit of the device info entries per one response page. - */ - private static final int DEVICES_DEFAULT_LIMIT = 100; - - /** - * Constructs a device pin for a resource with a given ID. - * - * @param api the API connection to be used by the resource. - * @param id the ID of the resource. - */ - public BoxDevicePin(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Returns iterable with all the device pins within a given enterprise. - * Must be an enterprise admin with the manage enterprise scope to make this call. - * - * @param api API used to connect the Box. - * @param enterpriseID ID of the enterprise to get all the device pins within. - * @param fields the optional fields to retrieve. - * @return iterable with all the device pins within a given enterprise. - */ - public static Iterable getEnterpriceDevicePins(final BoxAPIConnection api, String enterpriseID, - String... fields) { - return getEnterpriceDevicePins(api, enterpriseID, DEVICES_DEFAULT_LIMIT, fields); - } - - /** - * Returns iterable with all the device pins within a given enterprise. - * Must be an enterprise admin with the manage enterprise scope to make this call. - * - * @param api API used to connect the Box. - * @param enterpriseID ID of the enterprise to get all the device pins within. - * @param limit the maximum number of items per single response. - * @param fields the optional fields to retrieve. - * @return iterable with all the device pins within a given enterprise. - */ - public static Iterable getEnterpriceDevicePins(final BoxAPIConnection api, String enterpriseID, - int limit, String... fields) { - QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - return new BoxResourceIterable(api, - ENTERPRISE_DEVICE_PINS_TEMPLATE.buildWithQuery(api.getBaseURL(), builder.toString(), enterpriseID), - limit) { - - @Override - protected BoxDevicePin.Info factory(JsonObject jsonObject) { - BoxDevicePin pin = new BoxDevicePin(api, jsonObject.get("id").asString()); - return pin.new Info(jsonObject); - } - }; - } - - /** - * Gets information about the device pin. - * - * @param fields the fields to retrieve. - * @return info about the device pin. - */ - public Info getInfo(String... fields) { - QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - URL url = DEVICE_PIN_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), builder.toString(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - return new Info(responseJSON); - } - } - - /** - * Deletes the device pin. - */ - public void delete() { - URL url = DEVICE_PIN_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "DELETE"); - request.send().close(); - } - - /** - * Contains information about a task assignment. - */ - public class Info extends BoxResource.Info { - - /** - * @see #getOwnedBy() - */ - private BoxUser.Info ownedBy; - - /** - * @see #getProductName() - */ - private String productName; - - /** - * @see #getCreatedAt() - */ - private Date createdAt; - - /** - * @see #getModifiedAt() - */ - private Date modifiedAt; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - Info(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * {@inheritDoc} - */ - @Override - public BoxResource getResource() { - return BoxDevicePin.this; - } - - /** - * Gets ID of the user that the pin belongs to. - * - * @return ID of the user that the pin belongs to. - */ - public BoxUser.Info getOwnedBy() { - return this.ownedBy; - } - - /** - * Gets the type of device being pinned. - * - * @return the type of device being pinned. - */ - public String getProductName() { - return this.productName; - } - - /** - * Gets the time this pin was created. - * - * @return the time this pin was created. - */ - public Date getCreatedAt() { - return this.createdAt; - } - - /** - * Gets the time this pin was modified. - * - * @return the time this pin was modified. - */ - public Date getModifiedAt() { - return this.modifiedAt; - } - - /** - * {@inheritDoc} - */ - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - if (memberName.equals("owned_by")) { - JsonObject userJSON = value.asObject(); - if (this.ownedBy == null) { - String userID = userJSON.get("id").asString(); - BoxUser user = new BoxUser(getAPI(), userID); - this.ownedBy = user.new Info(userJSON); - } else { - this.ownedBy.update(userJSON); - } - } else if (memberName.equals("product_name")) { - this.productName = value.asString(); - } else if (memberName.equals("created_at")) { - this.createdAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("modified_at")) { - this.modifiedAt = BoxDateFormat.parse(value.asString()); - } - } catch (ParseException e) { - assert false : "A ParseException indicates a bug in the SDK."; - } - } - } -} diff --git a/src/main/java/com/box/sdk/BoxEnterprise.java b/src/main/java/com/box/sdk/BoxEnterprise.java deleted file mode 100644 index 1b0447c03..000000000 --- a/src/main/java/com/box/sdk/BoxEnterprise.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; - -/** - * Represents an enterprise organization on Box. - */ -public class BoxEnterprise extends BoxJSONObject { - private String id; - private String name; - - /** - * Constructs a BoxEnterprise with default settings. - */ - public BoxEnterprise() { - } - - /** - * Constructs a BoxEnterprise from a JSON string. - * - * @param json the JSON encoded enterprise. - */ - public BoxEnterprise(String json) { - super(json); - } - - BoxEnterprise(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the ID of this enterprise. - * - * @return the ID of this enterprise. - */ - public String getID() { - return this.id; - } - - /** - * Gets the name of this enterprise. - * - * @return the name of this enterprise. - */ - public String getName() { - return this.name; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - JsonValue value = member.getValue(); - String memberName = member.getName(); - if (memberName.equals("id")) { - this.id = value.asString(); - } else if (memberName.equals("name")) { - this.name = value.asString(); - } - } -} diff --git a/src/main/java/com/box/sdk/BoxEvent.java b/src/main/java/com/box/sdk/BoxEvent.java deleted file mode 100644 index b2738e090..000000000 --- a/src/main/java/com/box/sdk/BoxEvent.java +++ /dev/null @@ -1,973 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.text.ParseException; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -/** - * Represents an event that was fired off by the Box events API. - */ -@BoxResourceType("event") -public class BoxEvent extends BoxResource { - private BoxResource.Info sourceInfo; - private BoxEvent.EventType eventType; - private String typeName; - private JsonObject sourceJSON; - private Date createdAt; - private String ipAddress; - private JsonObject additionalDetails; - private BoxCollaborator.Info accessibleBy; - private BoxUser.Info createdBy; - private String sessionID; - private BoxUser.Info actionBy; - - /** - * Constructs a BoxEvent from a JSON string. - * - * @param api the API connection to be used by the file. - * @param json the JSON encoded event. - */ - public BoxEvent(BoxAPIConnection api, String json) { - this(api, Json.parse(json).asObject()); - } - - BoxEvent(BoxAPIConnection api, JsonObject jsonObject) { - super(api, jsonObject.get("event_id").asString()); - - for (JsonObject.Member member : jsonObject) { - if (member.getValue().isNull()) { - continue; - } - - this.parseJsonMember(member); - } - } - - /** - * Gets info about the source of this event. - * - *

    Note that there is a bug in the enterprise event stream where certain event sources don't correctly map to a - * BoxResource.Info. In the case where the event source JSON cannot be mapped to a BoxResource.Info, you can use the - * {@link #getSourceJSON} method to access the raw JSON representation of the event source.

    - * - * @return info about the source of this event. - */ - public BoxResource.Info getSourceInfo() { - return this.sourceInfo; - } - - /** - * Gets the raw JSON object containing information about the source of this event. - * - *

    This method can be used to work around bugs in the enterprise events API where some enterprise event sources - * don't correctly map to a BoxResource.Info. In this case, this method can be used to access the raw JSON - * directly.

    - * - * @return the JSON representation of the source of this event. - */ - public JsonObject getSourceJSON() { - return this.sourceJSON; - } - - /** - * Gets the type of this event. - * - * @return the type of this event. - */ - public BoxEvent.EventType getEventType() { - return this.eventType; - } - - /** - * Gets the type name as String. Every BoxEvent will have typeName, some will have - * eventType set to specific value and some will have eventType = UNKNOWN. - * - * @return the name of the type of this event. - */ - public String getTypeName() { - return this.typeName; - } - - /** - * Gets the time that this event was created. - * - * @return the time that this event was created. - */ - public Date getCreatedAt() { - return this.createdAt; - } - - /** - * Gets the IP address of the user that triggered this event. - * - * @return the IP address of the user that triggered this event. - */ - public String getIPAddress() { - return this.ipAddress; - } - - /** - * Gets a JSON object containing additional details about this event. - * - *

    The fields and data within the returned JSON object will vary depending on the type of the event.

    - * - * @return a JSON object containing additional details about this event. - */ - public JsonObject getAdditionalDetails() { - return this.additionalDetails; - } - - /** - * Gets info about the collaborator who was given access to a folder within the current enterprise. - * - *

    This field is only populated when the event is related to a collaboration that occurred within an enterprise. - *

    - * - * @return info about the collaborator who was given access to a folder within the current enterprise. - */ - public BoxCollaborator.Info getAccessibleBy() { - return this.accessibleBy; - } - - /** - * Gets info about the user that triggered this event. - * - * @return info about the user that triggered this event. - */ - public BoxUser.Info getCreatedBy() { - return this.createdBy; - } - - /** - * Gets the session ID of the user that triggered this event. - * - * @return the session ID of the user that triggered this event. - */ - public String getSessionID() { - return this.sessionID; - } - - /** - * Gets the user that performed the action for this event. - * - * @return info about the user that performed that action for this event. - */ - public BoxUser.Info getActionBy() { - return this.actionBy; - } - - void parseJsonMember(JsonObject.Member member) { - JsonValue value = member.getValue(); - if (value.isNull()) { - return; - } - - String memberName = member.getName(); - switch (memberName) { - case "source": - // Parsing the source might fail due to a bug in the enterprise event stream where the API returns - // JSON that doesn't correctly map to a BoxResource.Info. If this happens, we set the sourceInfo to null - // and expect the caller to use the getSourceJSON() method instead. - try { - this.sourceInfo = BoxResource.parseInfo(this.getAPI(), value.asObject()); - } catch (Exception e) { - this.sourceInfo = null; - } - this.sourceJSON = JsonObject.unmodifiableObject(value.asObject()); - break; - case "event_type": - String stringValue = value.asString(); - this.typeName = stringValue; - this.eventType = EventType.lookupByValue(stringValue); - if (this.eventType == null) { - this.eventType = EventType.UNKNOWN; - } - break; - case "created_at": - try { - this.createdAt = BoxDateFormat.parse(value.asString()); - } catch (ParseException e) { - assert false : "A ParseException indicates a bug in the SDK."; - } - break; - case "ip_address": - this.ipAddress = value.asString(); - break; - case "additional_details": - this.additionalDetails = value.asObject(); - break; - case "accessible_by": - this.accessibleBy = (BoxCollaborator.Info) BoxResource.parseInfo(this.getAPI(), value.asObject()); - break; - case "created_by": - this.createdBy = (BoxUser.Info) BoxResource.parseInfo(this.getAPI(), value.asObject()); - break; - case "session_id": - this.sessionID = value.asString(); - break; - case "action_by": - this.actionBy = (BoxUser.Info) BoxResource.parseInfo(this.getAPI(), value.asObject()); - break; - default: - break; - } - } - - /** - * Enumerates the possible types for an event. - */ - public enum EventType { - /** - * The type of the event is unknown. - */ - UNKNOWN("UNKNOWN"), - - /** - * An file or folder was created. - */ - ITEM_CREATE("ITEM_CREATE"), - - /** - * An file or folder was uploaded. - */ - ITEM_UPLOAD("ITEM_UPLOAD"), - - /** - * A comment was created on a folder, file, or other comment. - */ - COMMENT_CREATE("COMMENT_CREATE"), - - /** - * A comment was deleted on a folder, file, or other comment. - */ - COMMENT_DELETE("COMMENT_DELETE"), - - /** - * An file or folder was downloaded. - */ - ITEM_DOWNLOAD("ITEM_DOWNLOAD"), - - /** - * A file was previewed. - */ - ITEM_PREVIEW("ITEM_PREVIEW"), - - /** - * A file or folder was moved. - */ - ITEM_MOVE("ITEM_MOVE"), - - /** - * A file or folder was copied. - */ - ITEM_COPY("ITEM_COPY"), - - /** - * A task was assigned. - */ - TASK_ASSIGNMENT_CREATE("TASK_ASSIGNMENT_CREATE"), - - /** - * A task was assignment was completed. - */ - TASK_ASSIGNMENT_COMPLETE("TASK_ASSIGNMENT_COMPLETE"), - - /** - * A task was assignment was updated. - */ - TASK_ASSIGNMENT_UPDATE("TASK_ASSIGNMENT_UPDATE"), - - /** - * A task was created. - */ - TASK_CREATE("TASK_CREATE"), - - /** - * A file was locked. - */ - LOCK_CREATE("LOCK_CREATE"), - - /** - * A file was unlocked. - */ - LOCK_DESTROY("LOCK_DESTROY"), - - /** - * A file or folder was deleted. - */ - ITEM_TRASH("ITEM_TRASH"), - - /** - * A file or folder was recovered from the trash. - */ - ITEM_UNDELETE_VIA_TRASH("ITEM_UNDELETE_VIA_TRASH"), - - /** - * A collaborator was added to a folder. - */ - COLLAB_ADD_COLLABORATOR("COLLAB_ADD_COLLABORATOR"), - - /** - * A collaborator's role was change in a folder. - */ - COLLAB_ROLE_CHANGE("COLLAB_ROLE_CHANGE"), - - /** - * A collaborator was invited to a folder. - */ - COLLAB_INVITE_COLLABORATOR("COLLAB_INVITE_COLLABORATOR"), - - /** - * A collaborator was removed from a folder. - */ - COLLAB_REMOVE_COLLABORATOR("COLLAB_REMOVE_COLLABORATOR"), - - /** - * A folder was marked for sync. - */ - ITEM_SYNC("ITEM_SYNC"), - - /** - * A folder was un-marked for sync. - */ - ITEM_UNSYNC("ITEM_UNSYNC"), - - /** - * A file or folder was renamed. - */ - ITEM_RENAME("ITEM_RENAME"), - - /** - * A file or folder was enabled for sharing. - */ - ITEM_SHARED_CREATE("ITEM_SHARED_CREATE"), - - /** - * A file or folder was disabled for sharing. - */ - ITEM_SHARED_UNSHARE("ITEM_SHARED_UNSHARE"), - - /** - * A folder was shared. - */ - ITEM_SHARED("ITEM_SHARED"), - - /** - * A previous version of a file was promoted to the current version. - */ - ITEM_MAKE_CURRENT_VERSION("ITEM_MAKE_CURRENT_VERSION"), - - /** - * A tag was added to a file or folder. - */ - TAG_ITEM_CREATE("TAG_ITEM_CREATE"), - - /** - * 2 factor authentication enabled by user. - */ - ENABLE_TWO_FACTOR_AUTH("ENABLE_TWO_FACTOR_AUTH"), - - /** - * Free user accepts invitation to become a managed user. - */ - ADMIN_INVITE_ACCEPT("MASTER_INVITE_ACCEPT"), - - /** - * Free user rejects invitation to become a managed user. - */ - ADMIN_INVITE_REJECT("MASTER_INVITE_REJECT"), - - /** - * Granted Box access to account. - */ - ACCESS_GRANTED("ACCESS_GRANTED"), - - /** - * Revoke Box access to account. - */ - ACCESS_REVOKED("ACCESS_REVOKED"), - - /** - * A user logged in from a new device. - */ - ADD_LOGIN_ACTIVITY_DEVICE("ADD_LOGIN_ACTIVITY_DEVICE"), - - /** - * A user session associated with an app was invalidated. - */ - REMOVE_LOGIN_ACTIVITY_DEVICE("REMOVE_LOGIN_ACTIVITY_DEVICE"), - - /** - * An admin role changed for a user. - */ - CHANGE_ADMIN_ROLE("CHANGE_ADMIN_ROLE"), - - /** - * A user was added to a group. This is an enterprise-only event. - */ - GROUP_ADD_USER("GROUP_ADD_USER"), - - /** - * A user was created. This is an enterprise-only event. - */ - NEW_USER("NEW_USER"), - - /** - * A group was created. This is an enterprise-only event. - */ - GROUP_CREATION("GROUP_CREATION"), - - /** - * A group was deleted. This is an enterprise-only event. - */ - GROUP_DELETION("GROUP_DELETION"), - - /** - * A user was deleted. This is an enterprise-only event. - */ - DELETE_USER("DELETE_USER"), - - /** - * A group was edited. This is an enterprise-only event. - */ - GROUP_EDITED("GROUP_EDITED"), - - /** - * A user was edited. This is an enterprise-only event. - */ - EDIT_USER("EDIT_USER"), - - /** - * A group was granted access to a folder. This is an enterprise-only event. - */ - GROUP_ADD_FOLDER("GROUP_ADD_FOLDER"), - - /** - * A group was granted access to a file. This is an enterprise-only event. - */ - GROUP_ADD_FILE("GROUP_ADD_FILE"), - - /** - * A user was removed from a group. This is an enterprise-only event. - */ - GROUP_REMOVE_USER("GROUP_REMOVE_USER"), - - /** - * A group had its access to a folder removed. This is an enterprise-only event. - */ - GROUP_REMOVE_FOLDER("GROUP_REMOVE_FOLDER"), - - /** - * A group had its access to a file removed. This is an enterprise-only event. - */ - GROUP_REMOVE_FILE("GROUP_REMOVE_FILE"), - - /** - * An administrator logged in. This is an enterprise-only event. - */ - ADMIN_LOGIN("ADMIN_LOGIN"), - - /** - * A device was associated with a user. This is an enterprise-only event. - */ - ADD_DEVICE_ASSOCIATION("ADD_DEVICE_ASSOCIATION"), - - /** - * There was a failed login attempt. This is an enterprise-only event. - */ - FAILED_LOGIN("FAILED_LOGIN"), - - /** - * There was a successful login. This is an enterprise-only event. - */ - LOGIN("LOGIN"), - - /** - * A user's OAuth2 access token was refreshed. This is an enterprise-only event. - */ - USER_AUTHENTICATE_OAUTH2_TOKEN_REFRESH("USER_AUTHENTICATE_OAUTH2_TOKEN_REFRESH"), - - /** - * A device was disassociated with a user. This is an enterprise-only event. - */ - REMOVE_DEVICE_ASSOCIATION("REMOVE_DEVICE_ASSOCIATION"), - - /** - * A user agreed to the terms of service. This is an enterprise-only event. - */ - TERMS_OF_SERVICE_AGREE("TERMS_OF_SERVICE_AGREE"), - - /** - * A user rejected the terms of service. This is an enterprise-only event. - */ - TERMS_OF_SERVICE_REJECT("TERMS_OF_SERVICE_REJECT"), - - /** - * Virus found on a file. Event is only received by enterprises that have opted in to be notified. - * This is an enterprise-only event. - */ - FILE_MARKED_MALICIOUS("FILE_MARKED_MALICIOUS"), - - /** - * An item was copied. This is an enterprise-only event. - */ - COPY("COPY"), - - /** - * An item was deleted. This is an enterprise-only event. - */ - DELETE("DELETE"), - - /** - * An item was downloaded. This is an enterprise-only event. - */ - DOWNLOAD("DOWNLOAD"), - - /** - * An item was edited. This is an enterprise-only event. - */ - EDIT("EDIT"), - - /** - * An item was locked. This is an enterprise-only event. - */ - LOCK("LOCK"), - - /** - * An item was moved. This is an enterprise-only event. - */ - MOVE("MOVE"), - - /** - * An item was previewed. This is an enterprise-only event. - */ - PREVIEW("PREVIEW"), - - /** - * An item was renamed. This is an enterprise-only event. - */ - RENAME("RENAME"), - - /** - * An item was set to be auto-deleted. This is an enterprise-only event. - */ - STORAGE_EXPIRATION("STORAGE_EXPIRATION"), - - /** - * An item was undeleted. This is an enterprise-only event. - */ - UNDELETE("UNDELETE"), - - /** - * An item was unlocked. This is an enterprise-only event. - */ - UNLOCK("UNLOCK"), - - /** - * An item was uploaded. This is an enterprise-only event. - */ - UPLOAD("UPLOAD"), - - /** - * An shared link was created for an item. This is an enterprise-only event. - */ - SHARE("SHARE"), - - /** - * The shared link for an item was updated. This is an enterprise-only event. - */ - ITEM_SHARED_UPDATE("ITEM_SHARED_UPDATE"), - - /** - * The expiration time for a shared link was extended. This is an enterprise-only event. - */ - UPDATE_SHARE_EXPIRATION("UPDATE_SHARE_EXPIRATION"), - - /** - * The expiration time was set for a shared link. This is an enterprise-only event. - */ - SHARE_EXPIRATION("SHARE_EXPIRATION"), - - /** - * The shared link for an item was REMOVE_DEVICE_ASSOCIATION. This is an enterprise-only event. - */ - UNSHARE("UNSHARE"), - - /** - * A user accepted a collaboration invite. This is an enterprise-only event. - */ - COLLABORATION_ACCEPT("COLLABORATION_ACCEPT"), - - /** - * A user's collaboration role was changed. This is an enterprise-only event. - */ - COLLABORATION_ROLE_CHANGE("COLLABORATION_ROLE_CHANGE"), - - /** - * The expiration time for a collaboration was extended. This is an enterprise-only event. - */ - UPDATE_COLLABORATION_EXPIRATION("UPDATE_COLLABORATION_EXPIRATION"), - - /** - * A collaboration was removed from a folder. This is an enterprise-only event. - */ - COLLABORATION_REMOVE("COLLABORATION_REMOVE"), - - /** - * A user was invited to collaborate on a folder. This is an enterprise-only event. - */ - COLLABORATION_INVITE("COLLABORATION_INVITE"), - - /** - * An expiration time was set for a collaboration. This is an enterprise-only event. - */ - COLLABORATION_EXPIRATION("COLLABORATION_EXPIRATION"), - - /** - * Creation of metadata instance. This is an enterprise-only event. - */ - METADATA_INSTANCE_CREATE("METADATA_INSTANCE_CREATE"), - - /** - * Update of metadata instance. This is an enterprise-only event. - */ - METADATA_INSTANCE_UPDATE("METADATA_INSTANCE_UPDATE"), - - /** - * Deletion of metadata instance. This is an enterprise-only event. - */ - METADATA_INSTANCE_DELETE("METADATA_INSTANCE_DELETE"), - - /** - * Content Workflow upload policy violation. This is an enterprise-only event. - */ - CONTENT_WORKFLOW_UPLOAD_POLICY_VIOLATION("CONTENT_WORKFLOW_UPLOAD_POLICY_VIOLATION"), - - /** - * Edit the permissions on a folder. This is an enterprise-only-event. - */ - CHANGE_FOLDER_PERMISSION("CHANGE_FOLDER_PERMISSION"), - - /** - * A task assignment is deleted. This is an enterprise-only event. - */ - TASK_ASSIGNMENT_DELETE("TASK_ASSIGNMENT_DELETE"), - - /** - * Retention is removed. This is an enterprise-only event. - */ - DATA_RETENTION_REMOVE_RETENTION("DATA_RETENTION_REMOVE_RETENTION"), - - /** - * Retention is created. This is an enterprise-only event. - */ - DATA_RETENTION_CREATE_RETENTION("DATA_RETENTION_CREATE_RETENTION"), - - /** - * A retention policy assignment is added. This is an enterprise-only event. - */ - RETENTION_POLICY_ASSIGNMENT_ADD("RETENTION_POLICY_ASSIGNMENT_ADD"), - - /** - * A legal hold assignment is created. This is an enterprise-only event. - */ - LEGAL_HOLD_ASSIGNMENT_CREATE("LEGAL_HOLD_ASSIGNMENT_CREATE"), - - /** - * A legal hold assignment is deleted. This is an enterprise-only event. - */ - LEGAL_HOLD_ASSIGNMENT_DELETE("LEGAL_HOLD_ASSIGNMENT_DELETE"), - - /** - * A legal hold policy is deleted. This is an enterprise-only event. - */ - LEGAL_HOLD_POLICY_DELETE("LEGAL_HOLD_POLICY_DELETE"), - - /** - * There is a sharing policy violation. This is an enterprise-only event. - */ - CONTENT_WORKFLOW_SHARING_POLICY_VIOLATION("CONTENT_WORKFLOW_SHARING_POLICY_VIOLATION"), - - /** - * An application public key is added. This is an enterprise-only event. - */ - APPLICATION_PUBLIC_KEY_ADDED("APPLICATION_PUBLIC_KEY_ADDED"), - - /** - * An application public key is deleted. This is an enterprise-only event. - */ - APPLICATION_PUBLIC_KEY_DELETED("APPLICATION_PUBLIC_KEY_DELETED"), - - /** - * A content policy is added. This is an enterprise-only event. - */ - CONTENT_WORKFLOW_POLICY_ADD("CONTENT_WORKFLOW_POLICY_ADD"), - - /** - * An automation is added. This is an enterprise-only event. - */ - CONTENT_WORKFLOW_AUTOMATION_ADD("CONTENT_WORKFLOW_AUTOMATION_ADD"), - - /** - * An automation is deleted. This is an enterprise-only event. - */ - CONTENT_WORKFLOW_AUTOMATION_DELETE("CONTENT_WORKFLOW_AUTOMATION_DELETE"), - - /** - * A user email alias is confirmed. This is an enterprise-only event. - */ - EMAIL_ALIAS_CONFIRM("EMAIL_ALIAS_CONFIRM"), - - /** - * A user email alias is removed. This is an enterprise-only event. - */ - EMAIL_ALIAS_REMOVE("EMAIL_ALIAS_REMOVE"), - - /** - * A watermark is added to a file. This is an enterprise-only event. - */ - WATERMARK_LABEL_CREATE("WATERMARK_LABEL_CREATE"), - - /** - * A watermark is removed from a file. This is an enterprise-only event. - */ - WATERMARK_LABEL_DELETE("WATERMARK_LABEL_DELETE"), - - /** - * Creation of metadata template instance. This is an enterprise-only event. - */ - METADATA_TEMPLATE_CREATE("METADATA_TEMPLATE_CREATE"), - - /** - * Update of metadata template instance. This is an enterprise-only event. - */ - METADATA_TEMPLATE_UPDATE("METADATA_TEMPLATE_UPDATE"), - - /** - * Deletion of metadata template instance. This is an enterprise-only event. - */ - METADATA_TEMPLATE_DELETE("METADATA_TEMPLATE_DELETE"), - - /** - * Item was opened. This is an enterprise-only event. - */ - ITEM_OPEN("ITEM_OPEN"), - - /** - * Item was modified. This is an enterprise-only event. - */ - ITEM_MODIFY("ITEM_MODIFY"), - - /** - * When a policy set in the Admin console is triggered. This is an enterprise-only event, - */ - CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY("CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY"), - - /** - * Folders were removed from a group in the Admin console. This is an enterprise-only event. - */ - GROUP_REMOVE_ITEM("GROUP_REMOVE_ITEM"), - - /** - * Folders were added to a group in the Admin console. This is an enterprise-only event. - */ - GROUP_ADD_ITEM("GROUP_ADD_ITEM"), - - /** - * An OAuth2 access token was created for a user. This is an enterprise-only event. - */ - USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE("USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE"), - - /** - * Event for file tag updates. - */ - CONTENT_ACCESS("CONTENT_ACCESS"), - - /** - * A Shield justification is approved. - */ - SHIELD_JUSTIFICATION_APPROVAL("SHIELD_JUSTIFICATION_APPROVAL"), - - /** - * A task's comment is edited. - */ - TASK_UPDATE("TASK_UPDATE"), - - /** - * A file is retored to previous version. - */ - FILE_VERSION_RESTORE("FILE_VERSION_RESTORE"), - - /** - * Advanced settings of a folder are updated. - */ - ADVANCED_FOLDER_SETTINGS_UPDATE("ADVANCED_FOLDER_SETTINGS_UPDATE"), - - /** - * A new application is created in the Box Developer Console. - */ - APPLICATION_CREATED("APPLICATION_CREATED"), - - /** - * Device Trust check failed. - */ - DEVICE_TRUST_CHECK_FAILED("DEVICE_TRUST_CHECK_FAILED"), - - /** - * When a JWT application has been authorized or reauthorized. - */ - ENTERPRISE_APP_AUTHORIZATION_UPDATE("ENTERPRISE_APP_AUTHORIZATION_UPDATE"), - - /** - * A watermarked file is downloaded. - */ - FILE_WATERMARKED_DOWNLOAD("FILE_WATERMARKED_DOWNLOAD"), - - /** - * A legal hold policy is created. - */ - LEGAL_HOLD_POLICY_CREATE("LEGAL_HOLD_POLICY_CREATE"), - - /** - * A legal hold policy is updated. - */ - LEGAL_HOLD_POLICY_UPDATE("LEGAL_HOLD_POLICY_UPDATE"), - - /** - * Shield detected an anomalous download, session, location, or malicious content based on - * enterprise Shield rules. See shield alert events for more information. - */ - SHIELD_ALERT("SHIELD_ALERT"), - - /** - * Access to an external collaboration is blocked. - */ - SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED("SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED"), - - /** - * Access to an external collaboration is blocked due to missing a justification. - */ - SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED_MISSING_JUSTIFICATION( - "SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED_MISSING_JUSTIFICATION"), - - /** - * An invite to externally collaborate is blocked. - */ - SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED("SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED"), - - /** - * An invite to externally collaborate is blocked due to missing a justification. - */ - SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED_MISSING_JUSTIFICATION( - "SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED_MISSING_JUSTIFICATION"), - - /** - * A sign request was sent to a signer. - */ - SIGN_DOCUMENT_ASSIGNED("SIGN_DOCUMENT_ASSIGNED"), - - /** - * A sign request was cancelled via API or UI. - */ - SIGN_DOCUMENT_CANCELLED("SIGN_DOCUMENT_CANCELLED"), - - /** - * A sign request was signed by all signers. - */ - SIGN_DOCUMENT_COMPLETED("SIGN_DOCUMENT_COMPLETED"), - - /** - * A sign request was converted to a .pdf for signing. - */ - SIGN_DOCUMENT_CONVERTED("SIGN_DOCUMENT_CONVERTED"), - - /** - * A sign request was created via API or UI. The document is not yet sent to signers. - */ - SIGN_DOCUMENT_CREATED("SIGN_DOCUMENT_CREATED"), - - /** - * A sign request was declined by a signer. - */ - SIGN_DOCUMENT_DECLINED("SIGN_DOCUMENT_DECLINED"), - - /** - * A sign request expired with incomplete signatures. - */ - SIGN_DOCUMENT_EXPIRED("SIGN_DOCUMENT_EXPIRED"), - - /** - * A sign request was signed by a signer. - */ - SIGN_DOCUMENT_SIGNED("SIGN_DOCUMENT_SIGNED"), - - /** - * A signer clicked on Review Document in the signer email or visited the signing URL. - */ - SIGN_DOCUMENT_VIEWED_BY_SIGNER("SIGN_DOCUMENT_VIEWED_BY_SIGNER"), - - /** - * A signer downloaded the signing document. - */ - SIGNER_DOWNLOADED("SIGNER_DOWNLOADED"), - - /** - * A signer forwarded the signing document. - */ - SIGNER_FORWARDED("SIGNER_FORWARDED"), - - /** - * Accepted terms. - */ - TERMS_OF_SERVICE_ACCEPT("TERMS_OF_SERVICE_ACCEPT"); - - /** - * Static map of all EventTypes. - */ - private static final Map EVENT_TYPE_MAP = new HashMap<>(EventType.values().length); - - /* - EVENT_TYPE_MAP initialization. - */ - static { - for (BoxEvent.EventType event : BoxEvent.EventType.values()) { - EVENT_TYPE_MAP.put(event.jsonValue, event); - } - } - - /** - * String representation of the eventType. - */ - private final String jsonValue; - - /** - * Constructor. - * - * @param jsonValue string representation of the eventType. - */ - EventType(String jsonValue) { - this.jsonValue = jsonValue; - } - - /** - * Custom implementation of valueOf(). - * - * @param jsonValue of the EventType. - * @return EventType. - */ - static BoxEvent.EventType lookupByValue(String jsonValue) { - return EVENT_TYPE_MAP.get(jsonValue); - } - - /** - * @return string representation of the eventType. - */ - String toJSONString() { - return this.jsonValue; - } - } -} diff --git a/src/main/java/com/box/sdk/BoxFile.java b/src/main/java/com/box/sdk/BoxFile.java deleted file mode 100644 index 61e37d0ca..000000000 --- a/src/main/java/com/box/sdk/BoxFile.java +++ /dev/null @@ -1,2078 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BinaryBodyUtils.writeStream; -import static com.box.sdk.BinaryBodyUtils.writeStreamWithContentLength; -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.box.sdk.http.ContentType.APPLICATION_JSON_PATCH; -import static com.eclipsesource.json.Json.NULL; - -import com.box.sdk.http.HttpMethod; -import com.box.sdk.internal.utils.Parsers; -import com.box.sdk.sharedlink.BoxSharedLinkRequest; -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Date; -import java.util.EnumSet; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.Set; -import java.util.concurrent.TimeUnit; - - -/** - * Represents an individual file on Box. This class can be used to download a file's contents, upload new versions, and - * perform other common file operations (move, copy, delete, etc.). - * - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly. - */ -@BoxResourceType("file") -public class BoxFile extends BoxItem { - - /** - * An array of all possible file fields that can be requested when calling {@link #getInfo(String...)}. - */ - public static final String[] ALL_FIELDS = {"type", "id", "sequence_id", "etag", "sha1", "name", - "description", "size", "path_collection", "created_at", "modified_at", - "trashed_at", "purged_at", "content_created_at", "content_modified_at", - "created_by", "modified_by", "owned_by", "shared_link", "parent", - "item_status", "version_number", "comment_count", "permissions", "tags", - "lock", "extension", "is_package", "file_version", "collections", - "watermark_info", "metadata", "representations", - "is_external_only", "expiring_embed_link", "allowed_invitee_roles", - "has_collaborations", "disposition_at", "is_accessible_via_shared_link"}; - - /** - * An array of all possible version fields that can be requested when calling {@link #getVersions(String...)}. - */ - public static final String[] ALL_VERSION_FIELDS = {"id", "sha1", "name", "size", "uploader_display_name", - "created_at", "modified_at", "modified_by", "trashed_at", "trashed_by", "restored_at", "restored_by", - "purged_at", "file_version", "version_number"}; - /** - * File URL Template. - */ - public static final URLTemplate FILE_URL_TEMPLATE = new URLTemplate("files/%s"); - /** - * Content URL Template. - */ - public static final URLTemplate CONTENT_URL_TEMPLATE = new URLTemplate("files/%s/content"); - /** - * Versions URL Template. - */ - public static final URLTemplate VERSIONS_URL_TEMPLATE = new URLTemplate("files/%s/versions"); - /** - * Copy URL Template. - */ - public static final URLTemplate COPY_URL_TEMPLATE = new URLTemplate("files/%s/copy"); - /** - * Add Comment URL Template. - */ - public static final URLTemplate ADD_COMMENT_URL_TEMPLATE = new URLTemplate("comments"); - /** - * Get Comments URL Template. - */ - public static final URLTemplate GET_COMMENTS_URL_TEMPLATE = new URLTemplate("files/%s/comments"); - /** - * Metadata URL Template. - */ - public static final URLTemplate METADATA_URL_TEMPLATE = new URLTemplate("files/%s/metadata/%s/%s"); - /** - * Add Task URL Template. - */ - public static final URLTemplate ADD_TASK_URL_TEMPLATE = new URLTemplate("tasks"); - /** - * Get Tasks URL Template. - */ - public static final URLTemplate GET_TASKS_URL_TEMPLATE = new URLTemplate("files/%s/tasks"); - /** - * Get Thumbnail PNG Template. - */ - public static final URLTemplate GET_THUMBNAIL_PNG_TEMPLATE = new URLTemplate("files/%s/thumbnail.png"); - /** - * Get Thumbnail JPG Template. - */ - public static final URLTemplate GET_THUMBNAIL_JPG_TEMPLATE = new URLTemplate("files/%s/thumbnail.jpg"); - /** - * Upload Session URL Template. - */ - public static final URLTemplate UPLOAD_SESSION_URL_TEMPLATE = new URLTemplate("files/%s/upload_sessions"); - /** - * Upload Session Status URL Template. - */ - public static final URLTemplate UPLOAD_SESSION_STATUS_URL_TEMPLATE = new URLTemplate( - "files/upload_sessions/%s/status"); - /** - * Abort Upload Session URL Template. - */ - public static final URLTemplate ABORT_UPLOAD_SESSION_URL_TEMPLATE = new URLTemplate("files/upload_sessions/%s"); - /** - * Add Collaborations URL Template. - */ - public static final URLTemplate ADD_COLLABORATION_URL = new URLTemplate("collaborations"); - /** - * Get All File Collaborations URL Template. - */ - public static final URLTemplate GET_ALL_FILE_COLLABORATIONS_URL = new URLTemplate("files/%s/collaborations"); - /** - * Describes file item type. - */ - static final String TYPE = "file"; - private static final int GET_COLLABORATORS_PAGE_SIZE = 1000; - - /** - * Constructs a BoxFile for a file with a given ID. - * - * @param api the API connection to be used by the file. - * @param id the ID of the file. - */ - public BoxFile(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * {@inheritDoc} - */ - @Override - protected URL getItemURL() { - return FILE_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - } - - /** - * Creates a shared link. - * - * @param sharedLinkRequest Shared link to create - * @return Created shared link. - */ - public BoxSharedLink createSharedLink(BoxSharedLinkRequest sharedLinkRequest) { - return createSharedLink(sharedLinkRequest.asSharedLink()); - } - - private BoxSharedLink createSharedLink(BoxSharedLink sharedLink) { - Info info = new Info(); - info.setSharedLink(sharedLink); - - this.updateInfo(info); - return info.getSharedLink(); - } - - /** - * Adds new {@link BoxWebHook} to this {@link BoxFile}. - * - * @param address {@link BoxWebHook.Info#getAddress()} - * @param triggers {@link BoxWebHook.Info#getTriggers()} - * @return created {@link BoxWebHook.Info} - */ - public BoxWebHook.Info addWebHook(URL address, BoxWebHook.Trigger... triggers) { - return BoxWebHook.create(this, address, triggers); - } - - /** - * Adds a comment to this file. The message can contain @mentions by using the string @[userid:username] anywhere - * within the message, where userid and username are the ID and username of the person being mentioned. - * - * @param message the comment's message. - * @return information about the newly added comment. - * @see the tagged_message field - * for including @mentions. - */ - public BoxComment.Info addComment(String message) { - JsonObject itemJSON = new JsonObject(); - itemJSON.add("type", "file"); - itemJSON.add("id", this.getID()); - - JsonObject requestJSON = new JsonObject(); - requestJSON.add("item", itemJSON); - if (BoxComment.messageContainsMention(message)) { - requestJSON.add("tagged_message", message); - } else { - requestJSON.add("message", message); - } - - URL url = ADD_COMMENT_URL_TEMPLATE.build(this.getAPI().getBaseURL()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "POST"); - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - BoxComment addedComment = new BoxComment(this.getAPI(), responseJSON.get("id").asString()); - return addedComment.new Info(responseJSON); - } - } - - /** - * Adds a new task to this file. The task can have an optional message to include, and a due date. - * - * @param action the action the task assignee will be prompted to do. - * @param message an optional message to include with the task. - * @param dueAt the day at which this task is due. - * @return information about the newly added task. - */ - public BoxTask.Info addTask(BoxTask.Action action, String message, Date dueAt) { - return this.addTask(action, message, dueAt, null); - } - - /** - * Adds a new task to this file. The task can have an optional message to include, due date, - * and task completion rule. - * - * @param action the action the task assignee will be prompted to do. - * @param message an optional message to include with the task. - * @param dueAt the day at which this task is due. - * @param completionRule the rule for completing the task. - * @return information about the newly added task. - */ - public BoxTask.Info addTask(BoxTask.Action action, String message, Date dueAt, - BoxTask.CompletionRule completionRule) { - JsonObject itemJSON = new JsonObject(); - itemJSON.add("type", "file"); - itemJSON.add("id", this.getID()); - - JsonObject requestJSON = new JsonObject(); - requestJSON.add("item", itemJSON); - requestJSON.add("action", action.toJSONString()); - - if (message != null && !message.isEmpty()) { - requestJSON.add("message", message); - } - - if (dueAt != null) { - requestJSON.add("due_at", BoxDateFormat.format(dueAt)); - } - - if (completionRule != null) { - requestJSON.add("completion_rule", completionRule.toJSONString()); - } - - URL url = ADD_TASK_URL_TEMPLATE.build(this.getAPI().getBaseURL()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "POST"); - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - BoxTask addedTask = new BoxTask(this.getAPI(), responseJSON.get("id").asString()); - return addedTask.new Info(responseJSON); - } - } - - /** - * Gets an expiring URL for downloading a file directly from Box. This can be user, - * for example, for sending as a redirect to a browser to cause the browser - * to download the file directly from Box. - * - * @return the temporary download URL - */ - public URL getDownloadURL() { - URL url = getDownloadUrl(); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "GET"); - request.setFollowRedirects(false); - - try (BoxAPIResponse response = request.send()) { - String location = response.getHeaderField("location"); - - try { - return new URL(location); - } catch (MalformedURLException e) { - throw new RuntimeException(e); - } - } - } - - /** - * Downloads the contents of this file to a given OutputStream. - * - * @param output the stream to where the file will be written. - */ - public void download(OutputStream output) { - this.download(output, null); - } - - /** - * Downloads the contents of this file to a given OutputStream while reporting the progress to a ProgressListener. - * - * @param output the stream to where the file will be written. - * @param listener a listener for monitoring the download's progress. - */ - public void download(OutputStream output, ProgressListener listener) { - URL url = getDownloadUrl(); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "GET"); - BoxAPIResponse response = request.send(); - writeStream(response, output, listener); - } - - /** - * Downloads the content of the file to a given OutputStream using the provided shared link. - * @param api the API connection to be used to get download URL of the file. - * @param output the stream to where the file will be written. - * @param sharedLink the shared link of the file. - */ - public static void downloadFromSharedLink(BoxAPIConnection api, OutputStream output, String sharedLink) { - downloadFromSharedLink(api, output, sharedLink, null, null); - } - - /** - * Downloads the content of the file to a given OutputStream using the provided shared link. - * @param api the API connection to be used to get download URL of the file. - * @param output the stream to where the file will be written. - * @param sharedLink the shared link of the file. - * @param password the password for the shared link. - */ - public static void downloadFromSharedLink( - BoxAPIConnection api, OutputStream output, String sharedLink, String password - ) { - downloadFromSharedLink(api, output, sharedLink, password, null); - } - - /** - * Downloads the content of the file to a given OutputStream using the provided shared link. - * @param api the API connection to be used to get download URL of the file. - * @param output the stream to where the file will be written. - * @param sharedLink the shared link of the file. - * @param listener a listener for monitoring the download's progress. - */ - public static void downloadFromSharedLink( - BoxAPIConnection api, OutputStream output, String sharedLink, ProgressListener listener - ) { - downloadFromSharedLink(api, output, sharedLink, null, listener); - } - - /** - * Downloads the content of the file to a given OutputStream using the provided shared link. - * @param api the API connection to be used to get download URL of the file. - * @param output the stream to where the file will be written. - * @param sharedLink the shared link of the file. - * @param password the password for the shared link. - * @param listener a listener for monitoring the download's progress. - */ - public static void downloadFromSharedLink( - BoxAPIConnection api, OutputStream output, String sharedLink, String password, ProgressListener listener - ) { - BoxItem.Info item = BoxItem.getSharedItem(api, sharedLink, password, "id"); - if (!(item instanceof BoxFile.Info)) { - throw new BoxAPIException("The shared link provided is not a shared link for a file."); - } - BoxFile sharedFile = new BoxFile(api, item.getID()); - URL url = sharedFile.getDownloadUrl(); - BoxAPIRequest request = new BoxAPIRequest(api, url, "GET"); - request.addHeader("BoxApi", BoxSharedLink.getSharedLinkHeaderValue(sharedLink, password)); - BoxAPIResponse response = request.send(); - writeStream(response, output, listener); - } - - /** - * Downloads a part of this file's contents, starting at specified byte offset. - * - * @param output the stream to where the file will be written. - * @param offset the byte offset at which to start the download. - */ - public void downloadRange(OutputStream output, long offset) { - this.downloadRange(output, offset, -1); - } - - /** - * Downloads a part of this file's contents, starting at rangeStart and stopping at rangeEnd. - * - * @param output the stream to where the file will be written. - * @param rangeStart the byte offset at which to start the download. - * @param rangeEnd the byte offset at which to stop the download. - */ - public void downloadRange(OutputStream output, long rangeStart, long rangeEnd) { - this.downloadRange(output, rangeStart, rangeEnd, null); - } - - /** - * Downloads a part of this file's contents, starting at rangeStart and stopping at rangeEnd, while reporting the - * progress to a ProgressListener. - * - * @param output the stream to where the file will be written. - * @param rangeStart the byte offset at which to start the download. - * @param rangeEnd the byte offset at which to stop the download. - * @param listener a listener for monitoring the download's progress. - */ - public void downloadRange(OutputStream output, long rangeStart, long rangeEnd, ProgressListener listener) { - URL url = getDownloadUrl(); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "GET"); - if (rangeEnd > 0) { - request.addHeader("Range", String.format("bytes=%s-%s", rangeStart, rangeEnd)); - } else { - request.addHeader("Range", String.format("bytes=%s-", rangeStart)); - } - writeStream(request.send(), output, listener); - } - - /** - * Can be used to override the URL used for file download. - * - * @return URL for file downalod - */ - protected URL getDownloadUrl() { - return CONTENT_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - } - - @Override - public BoxFile.Info copy(BoxFolder destination) { - return this.copy(destination, null); - } - - @Override - public BoxFile.Info copy(BoxFolder destination, String newName) { - URL url = COPY_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - - JsonObject parent = new JsonObject(); - parent.add("id", destination.getID()); - - JsonObject copyInfo = new JsonObject(); - copyInfo.add("parent", parent); - if (newName != null) { - copyInfo.add("name", newName); - } - - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "POST"); - request.setBody(copyInfo.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - BoxFile copiedFile = new BoxFile(this.getAPI(), responseJSON.get("id").asString()); - return copiedFile.new Info(responseJSON); - } - } - - /** - * Deletes this file by moving it to the trash. - */ - public void delete() { - URL url = FILE_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "DELETE"); - request.send().close(); - } - - @Override - public BoxItem.Info move(BoxFolder destination) { - return this.move(destination, null); - } - - @Override - public BoxItem.Info move(BoxFolder destination, String newName) { - URL url = FILE_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - - JsonObject parent = new JsonObject(); - parent.add("id", destination.getID()); - - JsonObject updateInfo = new JsonObject(); - updateInfo.add("parent", parent); - if (newName != null) { - updateInfo.add("name", newName); - } - - request.setBody(updateInfo.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - BoxFile movedFile = new BoxFile(this.getAPI(), responseJSON.get("id").asString()); - return movedFile.new Info(responseJSON); - } - } - - /** - * Renames this file. - * - * @param newName the new name of the file. - */ - public void rename(String newName) { - URL url = FILE_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - - JsonObject updateInfo = new JsonObject(); - updateInfo.add("name", newName); - - request.setBody(updateInfo.toString()); - try (BoxJSONResponse response = request.send()) { - response.getJSON(); - } - } - - @Override - public BoxFile.Info getInfo(String... fields) { - URL url = FILE_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - if (fields.length > 0) { - String queryString = new QueryStringBuilder().appendParam("fields", fields).toString(); - url = FILE_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), queryString, this.getID()); - } - - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - return new Info(response.getJSON()); - } - } - - /** - * Gets information about this item including a specified set of representations. - * - * @param representationHints hints for representations to be retrieved - * @param fields the fields to retrieve. - * @return info about this item containing only the specified fields, including representations. - * @see X-Rep-Hints Header - */ - public BoxFile.Info getInfoWithRepresentations(String representationHints, String... fields) { - if (representationHints.matches(Representation.X_REP_HINTS_PATTERN)) { - //Since the user intends to get representations, add it to fields, even if user has missed it - Set fieldsSet = new HashSet<>(Arrays.asList(fields)); - fieldsSet.add("representations"); - String queryString = new QueryStringBuilder().appendParam("fields", - fieldsSet.toArray(new String[0])).toString(); - URL url = FILE_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), queryString, this.getID()); - - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - request.addHeader("X-Rep-Hints", representationHints); - try (BoxJSONResponse response = request.send()) { - return new Info(response.getJSON()); - } - } else { - throw new BoxAPIException( - "Represention hints is not valid. Refer documention on how to construct X-Rep-Hints Header" - ); - } - } - - /** - * Fetches the contents of a file representation and writes them to the provided output stream. - * - * @param representationHint the X-Rep-Hints query for the representation to fetch. - * @param output the output stream to write the contents to. - * @see X-Rep-Hints Header - */ - public void getRepresentationContent(String representationHint, OutputStream output) { - - this.getRepresentationContent(representationHint, "", output); - } - - /** - * Fetches the contents of a file representation with asset path and writes them to the provided output stream. - * - * @param representationHint the X-Rep-Hints query for the representation to fetch. - * @param assetPath the path of the asset for representations containing multiple files. - * @param output the output stream to write the contents to. - * @see X-Rep-Hints Header - */ - public void getRepresentationContent(String representationHint, String assetPath, OutputStream output) { - this.getRepresentationContent(representationHint, assetPath, output, Integer.MAX_VALUE); - } - - /** - * Fetches the contents of a file representation with asset path and writes them to the provided output stream. - * - * @param representationHint the X-Rep-Hints query for the representation to fetch. - * @param assetPath the path of the asset for representations containing multiple files. - * @param output the output stream to write the contents to. - * @param maxRetries the maximum number of attempts to call the request for retrieving status information - * indicating whether the representation has been generated and is ready to fetch. - * If the number of attempts is exceeded, the method will throw a BoxApiException. - * @see X-Rep-Hints Header - */ - public void getRepresentationContent( - String representationHint, String assetPath, OutputStream output, int maxRetries - ) { - List reps = this.getInfoWithRepresentations(representationHint).getRepresentations(); - if (reps.size() < 1) { - throw new BoxAPIException("No matching representations found for requested '" + representationHint - + "' hint"); - } - Representation representation = reps.get(0); - String repState = representation.getStatus().getState(); - - switch (repState) { - case "viewable": - case "success": - this.makeRepresentationContentRequest(representation.getContent().getUrlTemplate(), assetPath, output); - break; - case "pending": - case "none": - - String repContentURLString = null; - int attemptNumber = 0; - while (repContentURLString == null && attemptNumber < maxRetries) { - repContentURLString = this.pollRepInfo(representation.getInfo().getUrl()); - try { - Thread.sleep(100); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - attemptNumber++; - } - - if (repContentURLString != null) { - this.makeRepresentationContentRequest(repContentURLString, assetPath, output); - } else { - throw new BoxAPIException( - "Representation did not have a success status allowing it to be retrieved after " - + maxRetries - + " attempts" - ); - } - - break; - case "error": - throw new BoxAPIException("Representation had error status"); - default: - throw new BoxAPIException("Representation had unknown status"); - } - - } - - private String pollRepInfo(URL infoURL) { - - BoxJSONRequest infoRequest = new BoxJSONRequest(this.getAPI(), infoURL, HttpMethod.GET); - try (BoxJSONResponse infoResponse = infoRequest.send()) { - JsonObject response = infoResponse.getJsonObject(); - - Representation rep = new Representation(response); - - String repState = rep.getStatus().getState(); - - switch (repState) { - case "viewable": - case "success": - return rep.getContent().getUrlTemplate(); - case "pending": - case "none": - return null; - case "error": - throw new BoxAPIException("Representation had error status"); - default: - throw new BoxAPIException("Representation had unknown status"); - } - } - } - - private void makeRepresentationContentRequest( - String representationURLTemplate, String assetPath, OutputStream output - ) { - try { - URL repURL = new URL(representationURLTemplate.replace("{+asset_path}", assetPath)); - BoxAPIRequest repContentReq = new BoxAPIRequest(this.getAPI(), repURL, HttpMethod.GET); - BoxAPIResponse response = repContentReq.send(); - writeStreamWithContentLength(response, output); - } catch (MalformedURLException ex) { - - throw new BoxAPIException("Could not generate representation content URL"); - } - } - - /** - * Updates the information about this file with any info fields that have been modified locally. - * - *

    The only fields that will be updated are the ones that have been modified locally. For example, the following - * code won't update any information (or even send a network request) since none of the info's fields were - * changed:

    - * - *
    BoxFile file = new File(api, id);
    -     * BoxFile.Info info = file.getInfo();
    -     * file.updateInfo(info);
    - * - * @param info the updated info. - */ - public void updateInfo(BoxFile.Info info) { - URL url = FILE_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - request.setBody(info.getPendingChanges()); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - info.update(jsonObject); - } - } - - /** - * Retrieve a specific file version. - * - * @param fileVersionID the ID of the file version to retrieve. - * @param fields the optional fields to retrieve. - * @return a specific file version. - */ - public BoxFileVersion getVersionByID(String fileVersionID, String... fields) { - URL url = BoxFileVersion.VERSION_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID(), fileVersionID); - if (fields.length > 0) { - String queryString = new QueryStringBuilder().appendParam("fields", fields).toString(); - url = BoxFileVersion.VERSION_URL_TEMPLATE.buildWithQuery( - this.getAPI().getBaseURL(), - queryString, - this.getID(), - fileVersionID - ); - } - - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - return new BoxFileVersion(this.getAPI(), jsonObject, this.getID()); - } - } - - /** - * Gets up to 1000 versions of this file. Note that only users with premium accounts will be able to retrieve - * previous versions of their files. `fields` parameter is optional, if specified only requested fields will - * be returned: - *
    -     * {@code
    -     * new BoxFile(api, file_id).getVersions()       // will return all default fields
    -     * new BoxFile(api, file_id).getVersions("name") // will return only specified fields
    -     * }
    -     * 
    - * - * @param fields the fields to retrieve. If nothing provided default fields will be returned. - * You can find list of available fields at {@link BoxFile#ALL_VERSION_FIELDS} - * @return a list of previous file versions. - */ - public Collection getVersions(String... fields) { - return getVersionsRange(0, BoxFileVersion.DEFAULT_LIMIT, fields); - } - - - /** - * Retrieves a specific range of versions of this file. - * - * @param offset the index of the first version of this file to retrieve. - * @param limit the maximum number of versions to retrieve after the offset. - * @param fields the fields to retrieve. - * @return a partial collection containing the specified range of versions of this file. - */ - public PartialCollection getVersionsRange(long offset, long limit, String... fields) { - QueryStringBuilder builder = new QueryStringBuilder() - .appendParam("limit", limit) - .appendParam("offset", offset); - - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - - URL url = VERSIONS_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), builder.toString(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - String totalCountString = jsonObject.get("total_count").toString(); - long fullSize = Double.valueOf(totalCountString).longValue(); - PartialCollection versions = new PartialCollection<>(offset, limit, fullSize); - JsonArray entries = jsonObject.get("entries").asArray(); - for (JsonValue entry : entries) { - versions.add(new BoxFileVersion(this.getAPI(), entry.asObject(), this.getID())); - } - - return versions; - } - } - - /** - * Checks if a new version of the file can be uploaded with the specified name. - * - * @param name the new name for the file. - * @return whether or not the file version can be uploaded. - */ - public boolean canUploadVersion(String name) { - return this.canUploadVersion(name, 0); - } - - /** - * Checks if a new version of the file can be uploaded with the specified name and size. - * - * @param name the new name for the file. - * @param fileSize the size of the new version content in bytes. - * @return whether the file version can be uploaded. - */ - public boolean canUploadVersion(String name, long fileSize) { - - URL url = getDownloadUrl(); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "OPTIONS"); - - JsonObject preflightInfo = new JsonObject(); - if (name != null) { - preflightInfo.add("name", name); - } - - preflightInfo.add("size", fileSize); - - request.setBody(preflightInfo.toString()); - try (BoxAPIResponse response = request.send()) { - return response.getResponseCode() == 200; - } catch (BoxAPIException ex) { - if (ex.getResponseCode() >= 400 && ex.getResponseCode() < 500) { - // This looks like an error response, meaning the upload would fail - return false; - } else { - // This looks like a network error or server error, rethrow exception - throw ex; - } - } - } - - /** - * Uploads a new version of this file, replacing the current version. Note that only users with premium accounts - * will be able to view and recover previous versions of the file. - * - * @param fileContent a stream containing the new file contents. - * @return the uploaded file version. - */ - public BoxFile.Info uploadNewVersion(InputStream fileContent) { - return this.uploadNewVersion(fileContent, null); - } - - /** - * Uploads a new version of this file, replacing the current version. Note that only users with premium accounts - * will be able to view and recover previous versions of the file. - * - * @param fileContent a stream containing the new file contents. - * @param fileContentSHA1 a string containing the SHA1 hash of the new file contents. - * @return the uploaded file version. - */ - public BoxFile.Info uploadNewVersion(InputStream fileContent, String fileContentSHA1) { - return this.uploadNewVersion(fileContent, fileContentSHA1, null); - } - - /** - * Uploads a new version of this file, replacing the current version. Note that only users with premium accounts - * will be able to view and recover previous versions of the file. - * - * @param fileContent a stream containing the new file contents. - * @param fileContentSHA1 a string containing the SHA1 hash of the new file contents. - * @param modified the date that the new version was modified. - * @return the uploaded file version. - */ - public BoxFile.Info uploadNewVersion(InputStream fileContent, String fileContentSHA1, Date modified) { - return this.uploadNewVersion(fileContent, fileContentSHA1, modified, 0, null); - } - - /** - * Uploads a new version of this file, replacing the current version. Note that only users with premium accounts - * will be able to view and recover previous versions of the file. - * - * @param fileContent a stream containing the new file contents. - * @param fileContentSHA1 a string containing the SHA1 hash of the new file contents. - * @param modified the date that the new version was modified. - * @param name the new name for the file - * @return the uploaded file version. - */ - public BoxFile.Info uploadNewVersion(InputStream fileContent, String fileContentSHA1, Date modified, String name) { - return this.uploadNewVersion(fileContent, fileContentSHA1, modified, name, 0, null); - } - - /** - * Uploads a new version of this file, replacing the current version, while reporting the progress to a - * ProgressListener. Note that only users with premium accounts will be able to view and recover previous versions - * of the file. - * - * @param fileContent a stream containing the new file contents. - * @param modified the date that the new version was modified. - * @param fileSize the size of the file used for determining the progress of the upload. - * @param listener a listener for monitoring the upload's progress. - * @return the uploaded file version. - */ - public BoxFile.Info uploadNewVersion(InputStream fileContent, Date modified, long fileSize, - ProgressListener listener) { - return this.uploadNewVersion(fileContent, null, modified, fileSize, listener); - } - - /** - * Uploads a new version of this file, replacing the current version, while reporting the progress to a - * ProgressListener. Note that only users with premium accounts will be able to view and recover previous versions - * of the file. - * - * @param fileContent a stream containing the new file contents. - * @param fileContentSHA1 the SHA1 hash of the file contents. will be sent along in the Content-MD5 header - * @param modified the date that the new version was modified. - * @param fileSize the size of the file used for determining the progress of the upload. - * @param listener a listener for monitoring the upload's progress. - * @return the uploaded file version. - */ - public BoxFile.Info uploadNewVersion(InputStream fileContent, String fileContentSHA1, Date modified, long fileSize, - ProgressListener listener) { - return this.uploadNewVersion(fileContent, fileContentSHA1, modified, null, fileSize, listener); - } - - /** - * Uploads a new version of this file, replacing the current version, while reporting the progress to a - * ProgressListener. Note that only users with premium accounts will be able to view and recover previous versions - * of the file. - * - * @param fileContent a stream containing the new file contents. - * @param fileContentSHA1 the SHA1 hash of the file contents. will be sent along in the Content-MD5 header - * @param modified the date that the new version was modified. - * @param name the new name for the file - * @param fileSize the size of the file used for determining the progress of the upload. - * @param listener a listener for monitoring the upload's progress. - * @return the uploaded file version. - */ - public BoxFile.Info uploadNewVersion(InputStream fileContent, String fileContentSHA1, Date modified, String name, - long fileSize, ProgressListener listener) { - URL uploadURL = CONTENT_URL_TEMPLATE.build(this.getAPI().getBaseUploadURL(), this.getID()); - BoxMultipartRequest request = new BoxMultipartRequest(getAPI(), uploadURL); - - if (fileSize > 0) { - request.setFile(fileContent, "", fileSize); - } else { - request.setFile(fileContent, ""); - } - - if (fileContentSHA1 != null) { - request.setContentSHA1(fileContentSHA1); - } - - JsonObject attributesJSON = new JsonObject(); - if (modified != null) { - attributesJSON.add("content_modified_at", BoxDateFormat.format(modified)); - } - - if (name != null) { - attributesJSON.add("name", name); - } - - request.putField("attributes", attributesJSON.toString()); - - BoxJSONResponse response = null; - try { - if (listener == null) { - // upload is multipart request but response is JSON - response = (BoxJSONResponse) request.send(); - } else { - // upload is multipart request but response is JSON - response = (BoxJSONResponse) request.send(listener); - } - - String fileJSON = response.getJsonObject().get("entries").asArray().get(0).toString(); - - return new BoxFile.Info(fileJSON); - } finally { - Optional.ofNullable(response).ifPresent(BoxAPIResponse::close); - } - } - - /** - * Gets an expiring URL for creating an embedded preview session. The URL will expire after 60 seconds and the - * preview session will expire after 60 minutes. - * - * @return the expiring preview link - */ - public URL getPreviewLink() { - BoxFile.Info info = this.getInfo("expiring_embed_link"); - - return info.getPreviewLink(); - } - - /** - * Gets a list of any comments on this file. - * - * @return a list of comments on this file. - */ - public List getComments() { - URL url = GET_COMMENTS_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - int totalCount = responseJSON.get("total_count").asInt(); - List comments = new ArrayList<>(totalCount); - JsonArray entries = responseJSON.get("entries").asArray(); - for (JsonValue value : entries) { - JsonObject commentJSON = value.asObject(); - BoxComment comment = new BoxComment(this.getAPI(), commentJSON.get("id").asString()); - BoxComment.Info info = comment.new Info(commentJSON); - comments.add(info); - } - - return comments; - } - } - - /** - * Gets a list of any tasks on this file with requested fields. - * - * @param fields optional fields to retrieve for this task. - * @return a list of tasks on this file. - */ - public List getTasks(String... fields) { - QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - URL url = GET_TASKS_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), builder.toString(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - int totalCount = responseJSON.get("total_count").asInt(); - List tasks = new ArrayList<>(totalCount); - JsonArray entries = responseJSON.get("entries").asArray(); - for (JsonValue value : entries) { - JsonObject taskJSON = value.asObject(); - BoxTask task = new BoxTask(this.getAPI(), taskJSON.get("id").asString()); - BoxTask.Info info = task.new Info(taskJSON); - tasks.add(info); - } - - return tasks; - } - } - - /** - * Creates metadata on this file in the global properties template. - * - * @param metadata The new metadata values. - * @return the metadata returned from the server. - */ - public Metadata createMetadata(Metadata metadata) { - return this.createMetadata(Metadata.DEFAULT_METADATA_TYPE, metadata); - } - - /** - * Creates metadata on this file in the specified template type. - * - * @param typeName the metadata template type name. - * @param metadata the new metadata values. - * @return the metadata returned from the server. - */ - public Metadata createMetadata(String typeName, Metadata metadata) { - String scope = Metadata.scopeBasedOnType(typeName); - return this.createMetadata(typeName, scope, metadata); - } - - /** - * Creates metadata on this file in the specified template type. - * - * @param typeName the metadata template type name. - * @param scope the metadata scope (global or enterprise). - * @param metadata the new metadata values. - * @return the metadata returned from the server. - */ - public Metadata createMetadata(String typeName, String scope, Metadata metadata) { - URL url = METADATA_URL_TEMPLATE.buildAlpha(this.getAPI().getBaseURL(), this.getID(), scope, typeName); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "POST"); - request.setBody(metadata.toString()); - try (BoxJSONResponse response = request.send()) { - return new Metadata(Json.parse(response.getJSON()).asObject()); - } - } - - /** - * Sets the provided metadata on the file. If metadata has already been created on this file, - * it overwrites metadata keys specified in the `metadata` param. - * - * @param templateName the name of the metadata template. - * @param scope the scope of the template (usually "global" or "enterprise"). - * @param metadata the new metadata values. - * @return the metadata returned from the server. - */ - public Metadata setMetadata(String templateName, String scope, Metadata metadata) { - try { - return this.createMetadata(templateName, scope, metadata); - } catch (BoxAPIException e) { - if (e.getResponseCode() == 409) { - if (metadata.getOperations().isEmpty()) { - return getMetadata(); - } else { - return updateExistingTemplate(templateName, scope, metadata); - } - } else { - throw e; - } - } - } - - private Metadata updateExistingTemplate(String templateName, String scope, Metadata metadata) { - Metadata metadataToUpdate = new Metadata(scope, templateName); - for (JsonValue value : metadata.getOperations()) { - if (value.asObject().get("value").isNumber()) { - metadataToUpdate.add(value.asObject().get("path").asString(), - value.asObject().get("value").asDouble()); - } else if (value.asObject().get("value").isString()) { - metadataToUpdate.add(value.asObject().get("path").asString(), - value.asObject().get("value").asString()); - } else if (value.asObject().get("value").isArray()) { - ArrayList list = new ArrayList<>(); - for (JsonValue jsonValue : value.asObject().get("value").asArray()) { - list.add(jsonValue.asString()); - } - metadataToUpdate.add(value.asObject().get("path").asString(), list); - } - } - return this.updateMetadata(metadataToUpdate); - } - - /** - * Adds a metadata classification to the specified file. - * - * @param classificationType the metadata classification type. - * @return the metadata classification type added to the file. - */ - public String addClassification(String classificationType) { - Metadata metadata = new Metadata().add(Metadata.CLASSIFICATION_KEY, classificationType); - Metadata classification = this.createMetadata(Metadata.CLASSIFICATION_TEMPLATE_KEY, - "enterprise", metadata); - - return classification.getString(Metadata.CLASSIFICATION_KEY); - } - - /** - * Updates a metadata classification on the specified file. - * - * @param classificationType the metadata classification type. - * @return the new metadata classification type updated on the file. - */ - public String updateClassification(String classificationType) { - Metadata metadata = new Metadata("enterprise", Metadata.CLASSIFICATION_TEMPLATE_KEY); - metadata.add("/Box__Security__Classification__Key", classificationType); - Metadata classification = this.updateMetadata(metadata); - - return classification.getString(Metadata.CLASSIFICATION_KEY); - } - - /** - * Attempts to add classification to a file. If classification already exists then do update. - * - * @param classificationType the metadata classification type. - * @return the metadata classification type on the file. - */ - public String setClassification(String classificationType) { - Metadata metadata = new Metadata().add(Metadata.CLASSIFICATION_KEY, classificationType); - Metadata classification; - - try { - classification = this.createMetadata(Metadata.CLASSIFICATION_TEMPLATE_KEY, "enterprise", metadata); - } catch (BoxAPIException e) { - if (e.getResponseCode() == 409) { - metadata = new Metadata("enterprise", Metadata.CLASSIFICATION_TEMPLATE_KEY); - metadata.replace(Metadata.CLASSIFICATION_KEY, classificationType); - classification = this.updateMetadata(metadata); - } else { - throw e; - } - } - - return classification.getString(Metadata.CLASSIFICATION_KEY); - } - - /** - * Gets the classification type for the specified file. - * - * @return the metadata classification type on the file. - */ - public String getClassification() { - Metadata metadata; - try { - metadata = this.getMetadata(Metadata.CLASSIFICATION_TEMPLATE_KEY); - - } catch (BoxAPIException e) { - JsonObject responseObject = Json.parse(e.getResponse()).asObject(); - String code = responseObject.get("code").asString(); - - if (e.getResponseCode() == 404 && code.equals("instance_not_found")) { - return null; - } else { - throw e; - } - } - - return metadata.getString(Metadata.CLASSIFICATION_KEY); - } - - /** - * Deletes the classification on the file. - */ - public void deleteClassification() { - this.deleteMetadata(Metadata.CLASSIFICATION_TEMPLATE_KEY, "enterprise"); - } - - /** - * Locks a file. - * - * @return the lock returned from the server. - */ - public BoxLock lock() { - return this.lock(null, false); - } - - /** - * Locks a file. - * - * @param isDownloadPrevented is downloading of file prevented when locked. - * @return the lock returned from the server. - */ - public BoxLock lock(boolean isDownloadPrevented) { - return this.lock(null, isDownloadPrevented); - } - - /** - * Locks a file. - * - * @param expiresAt expiration date of the lock. - * @return the lock returned from the server. - */ - public BoxLock lock(Date expiresAt) { - return this.lock(expiresAt, false); - } - - /** - * Locks a file. - * - * @param expiresAt expiration date of the lock. - * @param isDownloadPrevented is downloading of file prevented when locked. - * @return the lock returned from the server. - */ - public BoxLock lock(Date expiresAt, boolean isDownloadPrevented) { - String queryString = new QueryStringBuilder().appendParam("fields", "lock").toString(); - URL url = FILE_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), queryString, this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - - JsonObject lockConfig = new JsonObject(); - lockConfig.add("type", "lock"); - if (expiresAt != null) { - lockConfig.add("expires_at", BoxDateFormat.format(expiresAt)); - } - lockConfig.add("is_download_prevented", isDownloadPrevented); - - JsonObject requestJSON = new JsonObject(); - requestJSON.add("lock", lockConfig); - request.setBody(requestJSON.toString()); - - try (BoxJSONResponse response = request.send()) { - - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - JsonValue lockValue = responseJSON.get("lock"); - JsonObject lockJSON = Json.parse(lockValue.toString()).asObject(); - - return new BoxLock(lockJSON, this.getAPI()); - } - } - - /** - * Unlocks a file. - */ - public void unlock() { - String queryString = new QueryStringBuilder().appendParam("fields", "lock").toString(); - URL url = FILE_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), queryString, this.getID()); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "PUT"); - - JsonObject lockObject = new JsonObject(); - lockObject.add("lock", NULL); - - request.setBody(lockObject.toString()); - request.send().close(); - } - - /** - * Used to retrieve all metadata associated with the file. - * - * @param fields the optional fields to retrieve. - * @return An iterable of metadata instances associated with the file. - */ - public Iterable getAllMetadata(String... fields) { - return Metadata.getAllMetadata(this, fields); - } - - /** - * Gets the file properties metadata. - * - * @return the metadata returned from the server. - */ - public Metadata getMetadata() { - return this.getMetadata(Metadata.DEFAULT_METADATA_TYPE); - } - - /** - * Gets the file metadata of specified template type. - * - * @param typeName the metadata template type name. - * @return the metadata returned from the server. - */ - public Metadata getMetadata(String typeName) { - String scope = Metadata.scopeBasedOnType(typeName); - return this.getMetadata(typeName, scope); - } - - /** - * Gets the file metadata of specified template type. - * - * @param typeName the metadata template type name. - * @param scope the metadata scope (global or enterprise). - * @return the metadata returned from the server. - */ - public Metadata getMetadata(String typeName, String scope) { - URL url = METADATA_URL_TEMPLATE.buildAlpha(this.getAPI().getBaseURL(), this.getID(), scope, typeName); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - return new Metadata(Json.parse(response.getJSON()).asObject()); - } - } - - /** - * Updates the file metadata. - * - * @param metadata the new metadata values. - * @return the metadata returned from the server. - */ - public Metadata updateMetadata(Metadata metadata) { - String scope; - if (metadata.getScope().equals(Metadata.GLOBAL_METADATA_SCOPE)) { - scope = Metadata.GLOBAL_METADATA_SCOPE; - } else if (metadata.getScope().startsWith(Metadata.ENTERPRISE_METADATA_SCOPE)) { - scope = metadata.getScope(); - } else { - scope = Metadata.ENTERPRISE_METADATA_SCOPE; - } - - URL url = METADATA_URL_TEMPLATE.buildAlpha(this.getAPI().getBaseURL(), this.getID(), - scope, metadata.getTemplateName()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT", APPLICATION_JSON_PATCH); - request.setBody(metadata.getPatch()); - try (BoxJSONResponse response = request.send()) { - return new Metadata(Json.parse(response.getJSON()).asObject()); - } - } - - /** - * Deletes the file properties metadata. - */ - public void deleteMetadata() { - this.deleteMetadata(Metadata.DEFAULT_METADATA_TYPE); - } - - /** - * Deletes the file metadata of specified template type. - * - * @param typeName the metadata template type name. - */ - public void deleteMetadata(String typeName) { - String scope = Metadata.scopeBasedOnType(typeName); - this.deleteMetadata(typeName, scope); - } - - /** - * Deletes the file metadata of specified template type. - * - * @param typeName the metadata template type name. - * @param scope the metadata scope (global or enterprise). - */ - public void deleteMetadata(String typeName, String scope) { - URL url = METADATA_URL_TEMPLATE.buildAlpha(this.getAPI().getBaseURL(), this.getID(), scope, typeName); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "DELETE"); - request.send().close(); - } - - /** - * Used to retrieve the watermark for the file. - * If the file does not have a watermark applied to it, a 404 Not Found will be returned by API. - * - * @param fields the fields to retrieve. - * @return the watermark associated with the file. - */ - public BoxWatermark getWatermark(String... fields) { - return this.getWatermark(FILE_URL_TEMPLATE, fields); - } - - /** - * Used to apply or update the watermark for the file. - * - * @return the watermark associated with the file. - */ - public BoxWatermark applyWatermark() { - return this.applyWatermark(FILE_URL_TEMPLATE, BoxWatermark.WATERMARK_DEFAULT_IMPRINT); - } - - /** - * Removes a watermark from the file. - * If the file did not have a watermark applied to it, a 404 Not Found will be returned by API. - */ - public void removeWatermark() { - this.removeWatermark(FILE_URL_TEMPLATE); - } - - /** - * {@inheritDoc} - */ - @Override - public BoxFile.Info setCollections(BoxCollection... collections) { - JsonArray jsonArray = new JsonArray(); - for (BoxCollection collection : collections) { - JsonObject collectionJSON = new JsonObject(); - collectionJSON.add("id", collection.getID()); - jsonArray.add(collectionJSON); - } - JsonObject infoJSON = new JsonObject(); - infoJSON.add("collections", jsonArray); - - String queryString = new QueryStringBuilder().appendParam("fields", ALL_FIELDS).toString(); - URL url = FILE_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), queryString, this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - request.setBody(infoJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - return new Info(jsonObject); - } - } - - /** - * Creates an upload session to create a new version of a file in chunks. - * This will first verify that the version can be created and then open a session for uploading pieces of the file. - * - * @param fileSize the size of the file that will be uploaded. - * @return the created upload session instance. - */ - public BoxFileUploadSession.Info createUploadSession(long fileSize) { - URL url = UPLOAD_SESSION_URL_TEMPLATE.build(this.getAPI().getBaseUploadURL(), this.getID()); - - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "POST"); - request.addHeader("Content-Type", APPLICATION_JSON); - - JsonObject body = new JsonObject(); - body.add("file_size", fileSize); - request.setBody(body.toString()); - - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - - String sessionId = jsonObject.get("id").asString(); - BoxFileUploadSession session = new BoxFileUploadSession(this.getAPI(), sessionId); - return session.new Info(jsonObject); - } - } - - /** - * Creates a new version of a file. - * - * @param inputStream the stream instance that contains the data. - * @param fileSize the size of the file that will be uploaded. - * @return the created file instance. - * @throws InterruptedException when a thread execution is interrupted. - * @throws IOException when reading a stream throws exception. - */ - public BoxFile.Info uploadLargeFile(InputStream inputStream, long fileSize) - throws InterruptedException, IOException { - URL url = UPLOAD_SESSION_URL_TEMPLATE.build(this.getAPI().getBaseUploadURL(), this.getID()); - return new LargeFileUpload().upload(this.getAPI(), inputStream, url, fileSize); - } - - /** - * Creates a new version of a file. Also sets file attributes. - * - * @param inputStream the stream instance that contains the data. - * @param fileSize the size of the file that will be uploaded. - * @param fileAttributes file attributes to set - * @return the created file instance. - * @throws InterruptedException when a thread execution is interrupted. - * @throws IOException when reading a stream throws exception. - */ - public BoxFile.Info uploadLargeFile(InputStream inputStream, long fileSize, Map fileAttributes) - throws InterruptedException, IOException { - URL url = UPLOAD_SESSION_URL_TEMPLATE.build(this.getAPI().getBaseUploadURL(), this.getID()); - return new LargeFileUpload().upload(this.getAPI(), inputStream, url, fileSize, fileAttributes); - } - - /** - * Creates a new version of a file using specified number of parallel http connections. - * - * @param inputStream the stream instance that contains the data. - * @param fileSize the size of the file that will be uploaded. - * @param nParallelConnections number of parallel http connections to use - * @param timeOut time to wait before killing the job - * @param unit time unit for the time wait value - * @return the created file instance. - * @throws InterruptedException when a thread execution is interrupted. - * @throws IOException when reading a stream throws exception. - */ - public BoxFile.Info uploadLargeFile(InputStream inputStream, long fileSize, - int nParallelConnections, long timeOut, TimeUnit unit) - throws InterruptedException, IOException { - URL url = UPLOAD_SESSION_URL_TEMPLATE.build(this.getAPI().getBaseUploadURL(), this.getID()); - return new LargeFileUpload(nParallelConnections, timeOut, unit) - .upload(this.getAPI(), inputStream, url, fileSize); - } - - /** - * Creates a new version of a file using specified number of parallel http connections. Also sets file attributes. - * - * @param inputStream the stream instance that contains the data. - * @param fileSize the size of the file that will be uploaded. - * @param nParallelConnections number of parallel http connections to use - * @param timeOut time to wait before killing the job - * @param unit time unit for the time wait value - * @param fileAttributes file attributes to set - * @return the created file instance. - * @throws InterruptedException when a thread execution is interrupted. - * @throws IOException when reading a stream throws exception. - */ - public BoxFile.Info uploadLargeFile(InputStream inputStream, long fileSize, - int nParallelConnections, long timeOut, TimeUnit unit, - Map fileAttributes) - throws InterruptedException, IOException { - URL url = UPLOAD_SESSION_URL_TEMPLATE.build(this.getAPI().getBaseUploadURL(), this.getID()); - return new LargeFileUpload(nParallelConnections, timeOut, unit) - .upload(this.getAPI(), inputStream, url, fileSize, fileAttributes); - } - - private BoxCollaboration.Info collaborate(JsonObject accessibleByField, BoxCollaboration.Role role, - Boolean notify, Boolean canViewPath, Date expiresAt, - Boolean isAccessOnly) { - - JsonObject itemField = new JsonObject(); - itemField.add("id", this.getID()); - itemField.add("type", "file"); - - return BoxCollaboration.create(this.getAPI(), accessibleByField, itemField, role, notify, canViewPath, - expiresAt, isAccessOnly); - } - - /** - * Adds a collaborator to this file. - * - * @param collaborator the collaborator to add. - * @param role the role of the collaborator. - * @param notify determines if the user (or all the users in the group) will receive email notifications. - * @param canViewPath whether view path collaboration feature is enabled or not. - * @param expiresAt when the collaboration should expire. - * @param isAccessOnly whether the collaboration is access only or not. - * @return info about the new collaboration. - */ - public BoxCollaboration.Info collaborate(BoxCollaborator collaborator, BoxCollaboration.Role role, - Boolean notify, Boolean canViewPath, - Date expiresAt, Boolean isAccessOnly) { - JsonObject accessibleByField = new JsonObject(); - accessibleByField.add("id", collaborator.getID()); - - if (collaborator instanceof BoxUser) { - accessibleByField.add("type", "user"); - } else if (collaborator instanceof BoxGroup) { - accessibleByField.add("type", "group"); - } else { - throw new IllegalArgumentException("The given collaborator is of an unknown type."); - } - return this.collaborate(accessibleByField, role, notify, canViewPath, expiresAt, isAccessOnly); - } - - /** - * Adds a collaborator to this file. - * - * @param collaborator the collaborator to add. - * @param role the role of the collaborator. - * @param notify determines if the user (or all the users in the group) will receive email notifications. - * @param canViewPath whether view path collaboration feature is enabled or not. - * @return info about the new collaboration. - */ - public BoxCollaboration.Info collaborate(BoxCollaborator collaborator, BoxCollaboration.Role role, - Boolean notify, Boolean canViewPath) { - return this.collaborate(collaborator, role, notify, canViewPath, null, null); - } - - /** - * Adds a collaborator to this folder. An email will be sent to the collaborator if they don't already have a Box - * account. - * - * @param email the email address of the collaborator to add. - * @param role the role of the collaborator. - * @param notify determines if the user (or all the users in the group) will receive email notifications. - * @param canViewPath whether view path collaboration feature is enabled or not. - * @param expiresAt when the collaboration should expire. - * @param isAccessOnly whether the collaboration is access only or not. - * @return info about the new collaboration. - */ - public BoxCollaboration.Info collaborate(String email, BoxCollaboration.Role role, - Boolean notify, Boolean canViewPath, - Date expiresAt, Boolean isAccessOnly) { - JsonObject accessibleByField = new JsonObject(); - accessibleByField.add("login", email); - accessibleByField.add("type", "user"); - - return this.collaborate(accessibleByField, role, notify, canViewPath, expiresAt, isAccessOnly); - } - - /** - * Adds a collaborator to this folder. An email will be sent to the collaborator if they don't already have a Box - * account. - * - * @param email the email address of the collaborator to add. - * @param role the role of the collaborator. - * @param notify determines if the user (or all the users in the group) will receive email notifications. - * @param canViewPath whether view path collaboration feature is enabled or not. - * @return info about the new collaboration. - */ - public BoxCollaboration.Info collaborate(String email, BoxCollaboration.Role role, - Boolean notify, Boolean canViewPath) { - return this.collaborate(email, role, notify, canViewPath, null, null); - } - - /** - * Used to retrieve all collaborations associated with the item. - * - * @param fields the optional fields to retrieve. - * @return An iterable of metadata instances associated with the item. - */ - public BoxResourceIterable getAllFileCollaborations(String... fields) { - return BoxCollaboration.getAllFileCollaborations(this.getAPI(), this.getID(), - GET_COLLABORATORS_PAGE_SIZE, fields); - - } - - /** - * Used to specify what filetype to request for a file thumbnail. - */ - public enum ThumbnailFileType { - /** - * PNG image format. - */ - PNG, - - /** - * JPG image format. - */ - JPG - } - - /** - * Enumerates the possible permissions that a user can have on a file. - */ - public enum Permission { - /** - * The user can download the file. - */ - CAN_DOWNLOAD("can_download"), - - /** - * The user can upload new versions of the file. - */ - CAN_UPLOAD("can_upload"), - - /** - * The user can rename the file. - */ - CAN_RENAME("can_rename"), - - /** - * The user can delete the file. - */ - CAN_DELETE("can_delete"), - - /** - * The user can share the file. - */ - CAN_SHARE("can_share"), - - /** - * The user can set the access level for shared links to the file. - */ - CAN_SET_SHARE_ACCESS("can_set_share_access"), - - /** - * The user can preview the file. - */ - CAN_PREVIEW("can_preview"), - - /** - * The user can comment on the file. - */ - CAN_COMMENT("can_comment"), - - /** - * The user can place annotations on this file. - */ - CAN_ANNOTATE("can_annotate"), - - /** - * The current user can invite new users to collaborate on this item, and the user can update the role of a - * user already collaborated on this item. - */ - CAN_INVITE_COLLABORATOR("can_invite_collaborator"), - - /** - * The user can view all annotations placed on this file. - */ - CAN_VIEW_ANNOTATIONS_ALL("can_view_annotations_all"), - - /** - * The user can view annotations placed by themselves on this file. - */ - CAN_VIEW_ANNOTATIONS_SELF("can_view_annotations_self"); - - private final String jsonValue; - - Permission(String jsonValue) { - this.jsonValue = jsonValue; - } - - static Permission fromJSONValue(String jsonValue) { - return Permission.valueOf(jsonValue.toUpperCase(java.util.Locale.ROOT)); - } - - String toJSONValue() { - return this.jsonValue; - } - } - - /** - * Contains information about a BoxFile. - */ - public class Info extends BoxItem.Info { - private String sha1; - private String versionNumber; - private long commentCount; - private EnumSet permissions; - private String extension; - private boolean isPackage; - private BoxFileVersion version; - private URL previewLink; - private BoxLock lock; - private boolean isWatermarked; - private boolean isExternallyOwned; - private Map> metadataMap; - private List representations; - private List allowedInviteeRoles; - private Boolean hasCollaborations; - private String uploaderDisplayName; - private BoxClassification classification; - private Date dispositionAt; - private boolean isAccessibleViaSharedLink; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - public Info(JsonObject jsonObject) { - super(jsonObject); - } - - @Override - public BoxFile getResource() { - return BoxFile.this; - } - - /** - * Gets the SHA1 hash of the file. - * - * @return the SHA1 hash of the file. - */ - public String getSha1() { - return this.sha1; - } - - /** - * Gets the lock of the file. - * - * @return the lock of the file. - */ - public BoxLock getLock() { - return this.lock; - } - - /** - * Gets the current version number of the file. - * - * @return the current version number of the file. - */ - public String getVersionNumber() { - return this.versionNumber; - } - - /** - * Gets the number of comments on the file. - * - * @return the number of comments on the file. - */ - public long getCommentCount() { - return this.commentCount; - } - - /** - * Gets the permissions that the current user has on the file. - * - * @return the permissions that the current user has on the file. - */ - public EnumSet getPermissions() { - return this.permissions; - } - - /** - * Gets the extension suffix of the file, excluding the dot. - * - * @return the extension of the file. - */ - public String getExtension() { - return this.extension; - } - - /** - * Gets whether or not the file is an OSX package. - * - * @return true if the file is an OSX package; otherwise false. - */ - public boolean getIsPackage() { - return this.isPackage; - } - - /** - * Gets the current version details of the file. - * - * @return the current version details of the file. - */ - public BoxFileVersion getVersion() { - return this.version; - } - - /** - * Gets the current expiring preview link. - * - * @return the expiring preview link - */ - public URL getPreviewLink() { - return this.previewLink; - } - - /** - * Gets flag indicating whether this file is Watermarked. - * - * @return whether the file is watermarked or not - */ - public boolean getIsWatermarked() { - return this.isWatermarked; - } - - /** - * Returns the allowed invitee roles for this file item. - * - * @return the list of roles allowed for invited collaborators. - */ - public List getAllowedInviteeRoles() { - return this.allowedInviteeRoles; - } - - /** - * Returns the indicator for whether this file item has collaborations. - * - * @return indicator for whether this file item has collaborations. - */ - public Boolean getHasCollaborations() { - return this.hasCollaborations; - } - - /** - * Gets the metadata on this file associated with a specified scope and template. - * Makes an attempt to get metadata that was retrieved using getInfo(String ...) method. - * - * @param templateName the metadata template type name. - * @param scope the scope of the template (usually "global" or "enterprise"). - * @return the metadata returned from the server. - */ - public Metadata getMetadata(String templateName, String scope) { - try { - return this.metadataMap.get(scope).get(templateName); - } catch (NullPointerException e) { - return null; - } - } - - /** - * Returns the field for indicating whether a file is owned by a user outside the enterprise. - * - * @return indicator for whether or not the file is owned by a user outside the enterprise. - */ - public boolean getIsExternallyOwned() { - return this.isExternallyOwned; - } - - /** - * Get file's representations. - * - * @return list of representations - */ - public List getRepresentations() { - return this.representations; - } - - /** - * Returns user's name at the time of upload. - * - * @return user's name at the time of upload - */ - public String getUploaderDisplayName() { - return this.uploaderDisplayName; - } - - /** - * Gets the metadata classification type of this file. - * - * @return the metadata classification type of this file. - */ - public BoxClassification getClassification() { - return this.classification; - } - - /** - * Returns the retention expiration timestamp for the given file. - * - * @return Date representing expiration timestamp - */ - public Date getDispositionAt() { - return dispositionAt; - } - - /** - * Modifies the retention expiration timestamp for the given file. - * This date cannot be shortened once set on a file. - * - * @param dispositionAt Date representing expiration timestamp - */ - public void setDispositionAt(Date dispositionAt) { - this.dispositionAt = dispositionAt; - this.addPendingChange("disposition_at", BoxDateFormat.format(dispositionAt)); - } - - /** - * Returns the flag indicating whether the file is accessible via a shared link. - * - * @return boolean flag indicating whether the file is accessible via a shared link. - */ - public boolean getIsAccessibleViaSharedLink() { - return this.isAccessibleViaSharedLink; - } - - @Override - protected void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - switch (memberName) { - case "sha1": - this.sha1 = value.asString(); - break; - case "version_number": - this.versionNumber = value.asString(); - break; - case "comment_count": - this.commentCount = value.asLong(); - break; - case "permissions": - this.permissions = this.parsePermissions(value.asObject()); - break; - case "extension": - this.extension = value.asString(); - break; - case "is_package": - this.isPackage = value.asBoolean(); - break; - case "has_collaborations": - this.hasCollaborations = value.asBoolean(); - break; - case "is_externally_owned": - this.isExternallyOwned = value.asBoolean(); - break; - case "file_version": - this.version = this.parseFileVersion(value.asObject()); - break; - case "allowed_invitee_roles": - this.allowedInviteeRoles = this.parseAllowedInviteeRoles(value.asArray()); - break; - case "expiring_embed_link": - try { - String urlString = member.getValue().asObject().get("url").asString(); - this.previewLink = new URL(urlString); - } catch (MalformedURLException e) { - throw new BoxAPIException("Couldn't parse expiring_embed_link/url for file", e); - } - break; - case "lock": - if (value.isNull()) { - this.lock = null; - } else { - this.lock = new BoxLock(value.asObject(), BoxFile.this.getAPI()); - } - break; - case "watermark_info": - this.isWatermarked = value.asObject().get("is_watermarked").asBoolean(); - break; - case "metadata": - this.metadataMap = Parsers.parseAndPopulateMetadataMap(value.asObject()); - break; - case "representations": - this.representations = Parsers.parseRepresentations(value.asObject()); - break; - case "uploader_display_name": - this.uploaderDisplayName = value.asString(); - break; - case "classification": - if (value.isNull()) { - this.classification = null; - } else { - this.classification = new BoxClassification(value.asObject()); - } - break; - case "disposition_at": - this.dispositionAt = BoxDateFormat.parse(value.asString()); - break; - case "is_accessible_via_shared_link": - this.isAccessibleViaSharedLink = value.asBoolean(); - break; - default: - break; - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - - @SuppressWarnings("checkstyle:MissingSwitchDefault") - private EnumSet parsePermissions(JsonObject jsonObject) { - EnumSet permissions = EnumSet.noneOf(Permission.class); - for (JsonObject.Member member : jsonObject) { - JsonValue value = member.getValue(); - if (value.isNull() || !value.asBoolean()) { - continue; - } - try { - permissions.add(Permission.fromJSONValue(member.getName())); - } catch (IllegalArgumentException ignored) { - // If the permission is not recognized, we ignore it. - } - } - - return permissions; - } - - private BoxFileVersion parseFileVersion(JsonObject jsonObject) { - return new BoxFileVersion(BoxFile.this.getAPI(), jsonObject, BoxFile.this.getID()); - } - - private List parseAllowedInviteeRoles(JsonArray jsonArray) { - List roles = new ArrayList<>(jsonArray.size()); - for (JsonValue value : jsonArray) { - roles.add(value.asString()); - } - - return roles; - } - } - -} diff --git a/src/main/java/com/box/sdk/BoxFileRequest.java b/src/main/java/com/box/sdk/BoxFileRequest.java deleted file mode 100644 index d37d59368..000000000 --- a/src/main/java/com/box/sdk/BoxFileRequest.java +++ /dev/null @@ -1,491 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Date; - -/** - * Represents a file request on Box. - */ -@BoxResourceType("file_request") -public class BoxFileRequest extends BoxResource { - - /** - * File Request URL Template. - */ - public static final URLTemplate FILE_REQUEST_URL_TEMPLATE = new URLTemplate("file_requests/%s"); - /** - * Copy File Request URL Template. - */ - public static final URLTemplate COPY_FILE_REQUEST_URL_TEMPLATE = new URLTemplate("file_requests/%s/copy"); - - /** - * Constructs a BoxFileRequest for a file request with a given ID. - * - * @param api the API connection to be used by the file request. - * @param id the ID of the file request. - */ - public BoxFileRequest(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Gets information about this file request. - * - * @return info about this file request. - */ - public BoxFileRequest.Info getInfo() { - URL url = FILE_REQUEST_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - return new Info(responseJSON, this.getAPI().getBaseAppUrl()); - } - } - - /** - * Copies this file request that is already present on one folder, and applies it to another folder. - * - * @param folderId the ID of the folder for the file request. - * @return info about the newly copied file request. - */ - public BoxFileRequest.Info copyInfo(String folderId) { - URL url = COPY_FILE_REQUEST_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "POST"); - JsonObject body = new JsonObject(); - JsonObject folderBody = new JsonObject(); - folderBody.add("id", folderId); - folderBody.add("type", "folder"); - body.add("folder", folderBody); - request.setBody(body.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - String id = jsonObject.get("id").asString(); - return new BoxFileRequest(this.getAPI(), id).new Info(jsonObject, this.getAPI().getBaseAppUrl()); - } - } - - /** - * Copies this file request that is already present on one folder, and applies it to another folder. - * - *

    Info fields that have been modified locally will overwrite the values in the original file request. - * - * @param info the info. - * @param folderId the ID of the folder for the file request. - * @return info about the newly copied file request. - */ - public BoxFileRequest.Info copyInfo(BoxFileRequest.Info info, String folderId) { - URL url = COPY_FILE_REQUEST_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "POST"); - JsonObject body = new JsonObject(); - JsonObject pendingChanges = info.getPendingChangesAsJsonObject(); - if (pendingChanges != null) { - body = pendingChanges; - } - JsonObject folderBody = new JsonObject(); - folderBody.add("id", folderId); - folderBody.add("type", "folder"); - body.add("folder", folderBody); - request.setBody(body.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - String id = jsonObject.get("id").asString(); - return new BoxFileRequest(this.getAPI(), id).new Info(jsonObject, this.getAPI().getBaseAppUrl()); - } - } - - /** - * Updates the information about this file request with any info fields that have been modified locally. - * - *

    The only fields that will be updated are the ones that have been modified locally. For example, the following - * code won't update any information (or even send a network request) since none of the info's fields were - * changed:

    - * - *
    BoxFileRequest fileRequest = new BoxFileRequest(api, id);
    -     * BoxFileRequest.Info info = fileRequest.getInfo();
    -     * info.updateInfo(info);
    - * - * @param info the updated info. - * @return info about the updated file request. - */ - public BoxFileRequest.Info updateInfo(BoxFileRequest.Info info) { - URL url = FILE_REQUEST_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - request.setBody(info.getPendingChanges()); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - info.update(jsonObject); - return info; - } - } - - /** - * Delete this file request. - */ - public void delete() { - URL url = FILE_REQUEST_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "DELETE"); - request.send().close(); - } - - /** - * The status of the file request. - */ - public enum Status { - /** - * The file request can accept new submissions. - */ - ACTIVE("active"), - - /** - * The file request can't accept new submissions. - */ - INACTIVE("inactive"); - - private final String jsonValue; - - Status(String jsonValue) { - this.jsonValue = jsonValue; - } - - static Status fromJSONString(String jsonValue) { - return Status.valueOf(jsonValue.toUpperCase(java.util.Locale.ROOT)); - } - - String toJSONString() { - return this.jsonValue; - } - } - - /** - * Contains information about a BoxFileRequest. - */ - public class Info extends BoxResource.Info { - private String type; - private Date createdAt; - private BoxUser.Info createdBy; - private String description; - private String etag; - private Date expiresAt; - private BoxFolder.Info folder; - private boolean isDescriptionRequired; - private boolean isEmailRequired; - private Status status; - private String title; - private Date updatedAt; - private BoxUser.Info updatedBy; - private URL url; - private String path; - private String baseUrl; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - * @param fileRequestBaseUrl Request base URL - */ - Info(JsonObject jsonObject, String fileRequestBaseUrl) { - super(jsonObject); - try { - this.baseUrl = fileRequestBaseUrl; - this.url = new URL(this.baseUrl + this.path); - } catch (MalformedURLException e) { - throw new BoxAPIException("Couldn't construct url for file request", e); - } - } - - @Override - public BoxFileRequest getResource() { - return BoxFileRequest.this; - } - - /** - * Gets the file request type. - * - * @return the file request type. - */ - public String getType() { - return this.type; - } - - /** - * Gets the date when the file request was created. - * - * @return the date when the file request was created. - */ - public Date getCreatedAt() { - return this.createdAt; - } - - /** - * Gets the user who created this file request. - * - * @return the user who created this file request. - */ - public BoxUser.Info getCreatedBy() { - return this.createdBy; - } - - /** - * Gets the description of this file request. - * - * @return the description of this file request. - */ - public String getDescription() { - return this.description; - } - - /** - * Sets the description of this file request. - * - * @param description the file request's new description. - */ - public void setDescription(String description) { - this.description = description; - this.addPendingChange("description", description); - } - - /** - * Gets a unique string identifying the version of the item. - * - * @return a unique string identifying the version of the item. - */ - public String getEtag() { - return this.etag; - } - - /** - * Gets the date after which a file request will no longer accept new submissions. - * - * @return the date after which a file request will no longer accept new submissions. - */ - public Date getExpiresAt() { - return this.expiresAt; - } - - - /** - * Sets the date after which a file request will no longer accept new submissions. - * - * @param expiresAt the date after which a file request will no longer accept new submissions. - */ - public void setExpiresAt(Date expiresAt) { - this.expiresAt = expiresAt; - this.addPendingChange("expires_at", BoxDateFormat.format(expiresAt)); - } - - /** - * Gets the folder that this file request is associated with. - * - * @return the folder that this file request is associated with. - */ - public BoxFolder.Info getFolder() { - return this.folder; - } - - /** - * Gets whether a file request submitter is required to provide a description of the files they are submitting. - * - * @return whether a file request submitter is required to provide a description of the files they - * are submitting. - */ - public Boolean getIsDescriptionRequired() { - return this.isDescriptionRequired; - } - - /** - * Sets whether a file request submitter is required to provide a description of the files they are submitting. - * - * @param isDescriptionRequired whether a file request submitter is required to provide a description of the - * files they are submitting. - */ - public void setIsDescriptionRequired(Boolean isDescriptionRequired) { - this.isDescriptionRequired = isDescriptionRequired; - this.addPendingChange("is_description_required", isDescriptionRequired); - } - - /** - * Gets whether a file request submitter is required to provide their email address. - * - * @return whether a file request submitter is required to provide their email address. - */ - public Boolean getIsEmailRequired() { - return this.isEmailRequired; - } - - /** - * Sets whether a file request submitter is required to provide their email address. - * - * @param isEmailRequired whether a file request submitter is required to provide their email address. - */ - public void setIsEmailRequired(Boolean isEmailRequired) { - this.isEmailRequired = isEmailRequired; - this.addPendingChange("is_email_required", isEmailRequired); - } - - /** - * Gets the status of the file request. - * - * @return the status of the file request - */ - public Status getStatus() { - return this.status; - } - - - /** - * Sets the status of the file request. - * - * @param status the status of the file request - */ - public void setStatus(Status status) { - this.status = status; - this.addPendingChange("status", status.toJSONString()); - } - - /** - * Gets the title of file request. - * - * @return the title of file request. - */ - public String getTitle() { - return this.title; - } - - /** - * Sets the title of file request. - * - * @param title the title of file request. - */ - public void setTitle(String title) { - this.title = title; - this.addPendingChange("title", title); - } - - /** - * Gets the date when the file request was last updated. - * - * @return the date when the file request was last updated. - */ - public Date getUpdatedAt() { - return this.updatedAt; - } - - /** - * Gets the user who last modified this file request. - * - * @return the user who last modified this file request. - */ - public BoxUser.Info getUpdatedBy() { - return this.updatedBy; - } - - /** - * Gets the URL can be shared with users to let them upload files to the associated folder. - * - * @return the URL for files upload. - */ - public URL getUrl() { - return this.url; - } - - /** - * Gets the base URL for the upload files link. - * - * @return the base url including protocol and hostname. - */ - public String getBaseUrl() { - return this.baseUrl; - } - - /** - * Sets the base URL for the upload files link. Can throw an exception if format of the URL is invalid. - * - * @param baseUrl the base url including protocol and hostname. - * @throws MalformedURLException when baseUrl format is invalid. - */ - public void setBaseUrl(String baseUrl) throws MalformedURLException { - this.baseUrl = baseUrl; - this.url = new URL(this.baseUrl + this.path); - } - - /** - * Gets the URL containing only the path (e.g. "/f/123456789") shared with users to let - * them upload files to the associated folder. - * - * @return the path of the URL for files upload. - */ - public String getPath() { - return this.path; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - if (memberName.equals("type")) { - this.type = value.asString(); - } else if (memberName.equals("created_at")) { - this.createdAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("created_by")) { - JsonObject userJSON = value.asObject(); - String userID = userJSON.get("id").asString(); - BoxUser user = new BoxUser(getAPI(), userID); - this.createdBy = user.new Info(userJSON); - } else if (memberName.equals("description")) { - this.description = value.asString(); - } else if (memberName.equals("etag")) { - this.etag = value.asString(); - } else if (memberName.equals("expires_at")) { - this.expiresAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("folder")) { - JsonObject folderJSON = value.asObject(); - String folderID = folderJSON.get("id").asString(); - BoxFolder folder = new BoxFolder(getAPI(), folderID); - this.folder = folder.new Info(folderJSON); - } else if (memberName.equals("is_description_required")) { - this.isDescriptionRequired = value.asBoolean(); - } else if (memberName.equals("is_email_required")) { - this.isEmailRequired = value.asBoolean(); - } else if (memberName.equals("status")) { - this.status = Status.fromJSONString(value.asString()); - } else if (memberName.equals("title")) { - this.title = value.asString(); - } else if (memberName.equals("updated_at")) { - this.updatedAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("updated_by")) { - JsonObject userJSON = value.asObject(); - String userID = userJSON.get("id").asString(); - BoxUser user = new BoxUser(getAPI(), userID); - this.createdBy = user.new Info(userJSON); - } else if (memberName.equals("url")) { - this.path = value.asString(); - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - } -} diff --git a/src/main/java/com/box/sdk/BoxFileUploadSession.java b/src/main/java/com/box/sdk/BoxFileUploadSession.java deleted file mode 100644 index dce882aa5..000000000 --- a/src/main/java/com/box/sdk/BoxFileUploadSession.java +++ /dev/null @@ -1,487 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.http.ContentType; -import com.box.sdk.http.HttpHeaders; -import com.box.sdk.http.HttpMethod; -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.net.MalformedURLException; -import java.net.URL; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.text.ParseException; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/** - * This API provides a way to reliably upload larger files to Box by chunking them into a sequence of parts. - * When using this APIinstead of the single file upload API, a request failure means a client only needs to - * retry upload of a single part instead of the entire file. Parts can also be uploaded in parallel allowing - * for potential performance improvement. - */ -@BoxResourceType("upload_session") -public class BoxFileUploadSession extends BoxResource { - - private static final String DIGEST_HEADER_PREFIX_SHA = "sha="; - private static final String DIGEST_ALGORITHM_SHA1 = "SHA1"; - - private static final String OFFSET_QUERY_STRING = "offset"; - private static final String LIMIT_QUERY_STRING = "limit"; - - private Info sessionInfo; - - /** - * Constructs a BoxFileUploadSession for a file with a given ID. - * - * @param api the API connection to be used by the upload session. - * @param id the ID of the upload session. - */ - BoxFileUploadSession(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Uploads chunk of a stream to an open upload session. - * - * @param stream the stream that is used to read the chunck using the offset and part size. - * @param offset the byte position where the chunk begins in the file. - * @param partSize the part size returned as part of the upload session instance creation. - * Only the last chunk can have a lesser value. - * @param totalSizeOfFile The total size of the file being uploaded. - * @return the part instance that contains the part id, offset and part size. - */ - public BoxFileUploadSessionPart uploadPart(InputStream stream, long offset, int partSize, - long totalSizeOfFile) { - - URL uploadPartURL = this.sessionInfo.getSessionEndpoints().getUploadPartEndpoint(); - - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), uploadPartURL, HttpMethod.PUT); - request.addHeader(HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_OCTET_STREAM); - - //Read the partSize bytes from the stream - byte[] bytes = new byte[partSize]; - try { - stream.read(bytes); - } catch (IOException ioe) { - throw new BoxAPIException("Reading data from stream failed.", ioe); - } - - return this.uploadPart(bytes, offset, partSize, totalSizeOfFile); - } - - /** - * Uploads bytes to an open upload session. - * - * @param data data - * @param offset the byte position where the chunk begins in the file. - * @param partSize the part size returned as part of the upload session instance creation. - * Only the last chunk can have a lesser value. - * @param totalSizeOfFile The total size of the file being uploaded. - * @return the part instance that contains the part id, offset and part size. - */ - public BoxFileUploadSessionPart uploadPart(byte[] data, long offset, int partSize, - long totalSizeOfFile) { - URL uploadPartURL = this.sessionInfo.getSessionEndpoints().getUploadPartEndpoint(); - - BoxAPIRequest request = new BoxAPIRequest( - this.getAPI(), uploadPartURL, HttpMethod.PUT.name(), ContentType.APPLICATION_OCTET_STREAM - ); - - MessageDigest digestInstance; - try { - digestInstance = MessageDigest.getInstance(DIGEST_ALGORITHM_SHA1); - } catch (NoSuchAlgorithmException ae) { - throw new BoxAPIException("Digest algorithm not found", ae); - } - - //Creates the digest using SHA1 algorithm. Then encodes the bytes using Base64. - byte[] digestBytes = digestInstance.digest(data); - String digest = Base64.encode(digestBytes); - request.addHeader(HttpHeaders.DIGEST, DIGEST_HEADER_PREFIX_SHA + digest); - //Content-Range: bytes offset-part/totalSize - request.addHeader(HttpHeaders.CONTENT_RANGE, - "bytes " + offset + "-" + (offset + partSize - 1) + "/" + totalSizeOfFile); - - //Creates the body - request.setBody(new ByteArrayInputStream(data)); - return request.sendForUploadPart(this, offset); - } - - /** - * Returns a list of all parts that have been uploaded to an upload session. - * - * @param offset paging marker for the list of parts. - * @param limit maximum number of parts to return. - * @return the list of parts. - */ - public BoxFileUploadSessionPartList listParts(int offset, int limit) { - URL listPartsURL = this.sessionInfo.getSessionEndpoints().getListPartsEndpoint(); - URLTemplate template = new URLTemplate(listPartsURL.toString()); - - QueryStringBuilder builder = new QueryStringBuilder(); - builder.appendParam(OFFSET_QUERY_STRING, offset); - String queryString = builder.appendParam(LIMIT_QUERY_STRING, limit).toString(); - - //Template is initalized with the full URL. So empty string for the path. - URL url = template.buildWithQuery("", queryString); - - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, HttpMethod.GET); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - - return new BoxFileUploadSessionPartList(jsonObject); - } - } - - /** - * Returns a list of all parts that have been uploaded to an upload session. - * - * @return the list of parts. - */ - protected Iterable listParts() { - URL listPartsURL = this.sessionInfo.getSessionEndpoints().getListPartsEndpoint(); - int limit = 100; - return new BoxResourceIterable( - this.getAPI(), - listPartsURL, - limit) { - - @Override - protected BoxFileUploadSessionPart factory(JsonObject jsonObject) { - return new BoxFileUploadSessionPart(jsonObject); - } - }; - } - - /** - * Commit an upload session after all parts have been uploaded, creating the new file or the version. - * - * @param digest the base64-encoded SHA-1 hash of the file being uploaded. - * @param parts the list of uploaded parts to be committed. - * @param attributes the key value pairs of attributes from the file instance. - * @param ifMatch ensures that your app only alters files/folders on Box if you have the current version. - * @param ifNoneMatch ensure that it retrieve unnecessary data if the most current version of file is on-hand. - * @return the created file instance. - */ - public BoxFile.Info commit(String digest, List parts, - Map attributes, String ifMatch, String ifNoneMatch) { - - URL commitURL = this.sessionInfo.getSessionEndpoints().getCommitEndpoint(); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), commitURL, HttpMethod.POST); - request.addHeader(HttpHeaders.DIGEST, DIGEST_HEADER_PREFIX_SHA + digest); - request.addHeader(HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_JSON); - - if (ifMatch != null) { - request.addHeader(HttpHeaders.IF_MATCH, ifMatch); - } - - if (ifNoneMatch != null) { - request.addHeader(HttpHeaders.IF_NONE_MATCH, ifNoneMatch); - } - - //Creates the body of the request - String body = this.getCommitBody(parts, attributes); - request.setBody(body); - - try (BoxJSONResponse response = request.send()) { - //Retry the commit operation after the given number of seconds if the HTTP response code is 202. - if (response.getResponseCode() == 202) { - String retryInterval = response.getHeaderField("retry-after"); - if (retryInterval != null) { - try { - Thread.sleep(new Integer(retryInterval) * 1000); - } catch (InterruptedException ie) { - throw new BoxAPIException("Commit retry failed. ", ie); - } - - return this.commit(digest, parts, attributes, ifMatch, ifNoneMatch); - } - } - - //Create the file instance from the response - return this.getFile(response); - } - } - - /* - * Creates the file isntance from the JSON body of the response. - */ - private BoxFile.Info getFile(BoxJSONResponse response) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - - JsonArray array = (JsonArray) jsonObject.get("entries"); - JsonObject fileObj = (JsonObject) array.get(0); - - BoxFile file = new BoxFile(this.getAPI(), fileObj.get("id").asString()); - - return file.new Info(fileObj); - } - - /* - * Creates the JSON body for the commit request. - */ - private String getCommitBody(List parts, Map attributes) { - JsonObject jsonObject = new JsonObject(); - - JsonArray array = new JsonArray(); - for (BoxFileUploadSessionPart part : parts) { - JsonObject partObj = new JsonObject(); - partObj.add("part_id", part.getPartId()); - partObj.add("offset", part.getOffset()); - partObj.add("size", part.getSize()); - - array.add(partObj); - } - jsonObject.add("parts", array); - - if (attributes != null) { - JsonObject attrObj = new JsonObject(); - for (String key : attributes.keySet()) { - attrObj.add(key, attributes.get(key)); - } - jsonObject.add("attributes", attrObj); - } - - return jsonObject.toString(); - } - - /** - * Get the status of the upload session. It contains the number of parts that are processed so far, - * the total number of parts required for the commit and expiration date and time of the upload session. - * - * @return the status. - */ - public BoxFileUploadSession.Info getStatus() { - URL statusURL = this.sessionInfo.getSessionEndpoints().getStatusEndpoint(); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), statusURL, HttpMethod.GET); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - - this.sessionInfo.update(jsonObject); - - return this.sessionInfo; - } - } - - /** - * Abort an upload session, discarding any chunks that were uploaded to it. - */ - public void abort() { - URL abortURL = this.sessionInfo.getSessionEndpoints().getAbortEndpoint(); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), abortURL, HttpMethod.DELETE); - request.send().close(); - } - - /** - * Model contains the upload session information. - */ - public class Info extends BoxResource.Info { - - private Date sessionExpiresAt; - private String uploadSessionId; - private Endpoints sessionEndpoints; - private int partSize; - private int totalParts; - private int partsProcessed; - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - this(Json.parse(json).asObject()); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - Info(JsonObject jsonObject) { - super(jsonObject); - BoxFileUploadSession.this.sessionInfo = this; - } - - /** - * Returns the BoxFileUploadSession isntance to which this object belongs to. - * - * @return the instance of upload session. - */ - public BoxFileUploadSession getResource() { - return BoxFileUploadSession.this; - } - - /** - * Returns the total parts of the file that is uploaded in the upload session. - * - * @return the total number of parts. - */ - public int getTotalParts() { - return this.totalParts; - } - - /** - * Returns the parts that are processed so for. - * - * @return the number of the processed parts. - */ - public int getPartsProcessed() { - return this.partsProcessed; - } - - /** - * Returns the date and time at which the upload session expires. - * - * @return the date and time in UTC format. - */ - public Date getSessionExpiresAt() { - return this.sessionExpiresAt; - } - - /** - * Returns the upload session id. - * - * @return the id string. - */ - public String getUploadSessionId() { - return this.uploadSessionId; - } - - /** - * Returns the session endpoints that can be called for this upload session. - * - * @return the Endpoints instance. - */ - public Endpoints getSessionEndpoints() { - return this.sessionEndpoints; - } - - /** - * Returns the size of the each part. Only the last part of the file can be lessor than this value. - * - * @return the part size. - */ - public int getPartSize() { - return this.partSize; - } - - @Override - protected void parseJSONMember(JsonObject.Member member) { - - String memberName = member.getName(); - JsonValue value = member.getValue(); - if (memberName.equals("session_expires_at")) { - try { - String dateStr = value.asString(); - this.sessionExpiresAt = BoxDateFormat.parse(dateStr.substring(0, dateStr.length() - 1) + "-00:00"); - } catch (ParseException pe) { - assert false : "A ParseException indicates a bug in the SDK."; - } - } else if (memberName.equals("id")) { - this.uploadSessionId = value.asString(); - } else if (memberName.equals("part_size")) { - this.partSize = Integer.parseInt(value.toString()); - } else if (memberName.equals("session_endpoints")) { - this.sessionEndpoints = new Endpoints(value.asObject()); - } else if (memberName.equals("total_parts")) { - this.totalParts = value.asInt(); - } else if (memberName.equals("num_parts_processed")) { - this.partsProcessed = value.asInt(); - } - } - } - - /** - * Represents the end points specific to an upload session. - */ - public static class Endpoints extends BoxJSONObject { - private URL listPartsEndpoint; - private URL commitEndpoint; - private URL uploadPartEndpoint; - private URL statusEndpoint; - private URL abortEndpoint; - - /** - * Constructs an Endpoints object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - Endpoints(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Returns the list parts end point. - * - * @return the url of the list parts end point. - */ - public URL getListPartsEndpoint() { - return this.listPartsEndpoint; - } - - /** - * Returns the commit end point. - * - * @return the url of the commit end point. - */ - public URL getCommitEndpoint() { - return this.commitEndpoint; - } - - /** - * Returns the upload part end point. - * - * @return the url of the upload part end point. - */ - public URL getUploadPartEndpoint() { - return this.uploadPartEndpoint; - } - - /** - * Returns the upload session status end point. - * - * @return the url of the session end point. - */ - public URL getStatusEndpoint() { - return this.statusEndpoint; - } - - /** - * Returns the abort upload session end point. - * - * @return the url of the abort end point. - */ - public URL getAbortEndpoint() { - return this.abortEndpoint; - } - - @Override - protected void parseJSONMember(JsonObject.Member member) { - - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - if (memberName.equals("list_parts")) { - this.listPartsEndpoint = new URL(value.asString()); - } else if (memberName.equals("commit")) { - this.commitEndpoint = new URL(value.asString()); - } else if (memberName.equals("upload_part")) { - this.uploadPartEndpoint = new URL(value.asString()); - } else if (memberName.equals("status")) { - this.statusEndpoint = new URL(value.asString()); - } else if (memberName.equals("abort")) { - this.abortEndpoint = new URL(value.asString()); - } - } catch (MalformedURLException mue) { - assert false : "A ParseException indicates a bug in the SDK."; - } - } - } -} diff --git a/src/main/java/com/box/sdk/BoxFileUploadSessionPart.java b/src/main/java/com/box/sdk/BoxFileUploadSessionPart.java deleted file mode 100644 index b0ae14a0a..000000000 --- a/src/main/java/com/box/sdk/BoxFileUploadSessionPart.java +++ /dev/null @@ -1,118 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; - -/** - * Represents a part of the file that is uploaded. - */ -public class BoxFileUploadSessionPart extends BoxJSONObject { - - private String partId; - private long offset; - private long size; - private String sha1; - - /** - * Constructs an BoxFileUploadSessionPart object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - BoxFileUploadSessionPart(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Constructs an empty BoxFileUploadSessionPart object. - */ - BoxFileUploadSessionPart() { - super(); - } - - /** - * Gets the sha1 digest of the part. - * - * @return the sh1 digest - */ - public String getSha1() { - return this.sha1; - } - - /** - * Sets the sh1 digest of the part. - * - * @param sha1 the sh1 digest of the part - */ - public void setSha1(String sha1) { - this.sha1 = sha1; - } - - /** - * Gets the part id. - * - * @return the id of the part. - */ - public String getPartId() { - return this.partId; - } - - /** - * Sets the part id. - * - * @param partId the id of the part. - */ - public void setPartId(String partId) { - this.partId = partId; - } - - /** - * Gets the offset byte. - * - * @return the offset of the part. - */ - public long getOffset() { - return this.offset; - } - - /** - * Sets the offset. - * - * @param offset the offset byte of the part. - */ - public void setOffset(long offset) { - this.offset = offset; - } - - /** - * Gets the size of the part. - * - * @return the size of the part. - */ - public long getSize() { - return this.size; - } - - /** - * Sets the size of the part. - * - * @param size the size of the part. - */ - public void setSize(long size) { - this.size = size; - } - - @Override - protected void parseJSONMember(JsonObject.Member member) { - String memberName = member.getName(); - JsonValue value = member.getValue(); - if (memberName.equals("part_id")) { - this.partId = value.asString(); - } else if (memberName.equals("offset")) { - this.offset = Double.valueOf(value.toString()).longValue(); - } else if (memberName.equals("size")) { - this.size = Double.valueOf(value.toString()).longValue(); - } else if (memberName.equals("sha1")) { - this.sha1 = value.asString(); - } - } -} diff --git a/src/main/java/com/box/sdk/BoxFileUploadSessionPartList.java b/src/main/java/com/box/sdk/BoxFileUploadSessionPartList.java deleted file mode 100644 index bf479e396..000000000 --- a/src/main/java/com/box/sdk/BoxFileUploadSessionPartList.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.util.ArrayList; -import java.util.List; - -/** - * Contains the list of parts of a large file that are already uploaded. - * It also contains a offset to represent the paging. - */ -public class BoxFileUploadSessionPartList extends BoxJSONObject { - - private List entries; - private int offset; - private int limit; - private int totalCount; - - /** - * Constructs an BoxFileUploadSessionPart object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - BoxFileUploadSessionPartList(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Returns the list of parts that are already uploaded. - * - * @return the list of parts. - */ - public List getEntries() { - return this.entries; - } - - /** - * Returns the paging offset for the list of parts. - * - * @return the paging offset. - */ - public int getOffset() { - return this.offset; - } - - /** - * Returns the limit on number of entires in a response. - * - * @return the limit - */ - public int getLimit() { - return this.limit; - } - - /** - * Returns the total count of entries. - * - * @return the toal count of entries - */ - public int getTotalCount() { - return this.totalCount; - } - - @Override - protected void parseJSONMember(JsonObject.Member member) { - String memberName = member.getName(); - JsonValue value = member.getValue(); - if (memberName.equals("entries")) { - JsonArray array = (JsonArray) value; - - if (array.size() > 0) { - this.entries = this.getParts(array); - } - } else if (memberName.equals("offset")) { - this.offset = Double.valueOf(value.toString()).intValue(); - } else if (memberName.equals("limit")) { - this.limit = Double.valueOf(value.toString()).intValue(); - } else if (memberName.equals("total_count")) { - this.totalCount = Double.valueOf(value.toString()).intValue(); - } - } - - /* - * Creates List of parts from the JSON array - */ - private List getParts(JsonArray partsArray) { - List parts = new ArrayList(); - for (JsonValue value : partsArray) { - BoxFileUploadSessionPart part = new BoxFileUploadSessionPart((JsonObject) value); - parts.add(part); - } - return parts; - } -} diff --git a/src/main/java/com/box/sdk/BoxFileVersion.java b/src/main/java/com/box/sdk/BoxFileVersion.java deleted file mode 100644 index 91d630829..000000000 --- a/src/main/java/com/box/sdk/BoxFileVersion.java +++ /dev/null @@ -1,313 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BinaryBodyUtils.writeStream; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.io.OutputStream; -import java.net.URL; -import java.text.ParseException; -import java.util.Date; - -/** - * Represents a particular version of a file on Box. - */ -@BoxResourceType("file_version") -public class BoxFileVersion extends BoxResource { - /** - * Content URL Template. - */ - public static final URLTemplate CONTENT_URL_TEMPLATE = new URLTemplate("files/%s/content?version=%s"); - /** - * Version URL Template. - */ - public static final URLTemplate VERSION_URL_TEMPLATE = new URLTemplate("files/%s/versions/%s"); - - /** - * The default limit of entries per response. - */ - public static final long DEFAULT_LIMIT = 1000; - - private String fileID; - - private String versionID; - private String sha1; - private String name; - private long size; - private String uploaderDisplayName; - private Date createdAt; - private Date modifiedAt; - private BoxUser.Info modifiedBy; - private Date trashedAt; - private BoxUser.Info trashedBy; - private Date restoredAt; - private BoxUser.Info restoredBy; - private Date purgedAt; - private Long versionNumber; - - /** - * Constructs a BoxFileVersion from a JSON string. - * - * @param api the API connection to be used by the file. - * @param json the JSON encoded file version. - * @param fileID the ID of the file. - */ - public BoxFileVersion(BoxAPIConnection api, String json, String fileID) { - this(api, Json.parse(json).asObject(), fileID); - } - - BoxFileVersion(BoxAPIConnection api, JsonObject jsonObject, String fileID) { - super(api, jsonObject.get("id").asString()); - - this.fileID = fileID; - this.parseJSON(jsonObject); - } - - /** - * Method used to update fields with values received from API. - * - * @param jsonObject JSON-encoded info about File Version object. - */ - private void parseJSON(JsonObject jsonObject) { - for (JsonObject.Member member : jsonObject) { - JsonValue value = member.getValue(); - if (value.isNull()) { - continue; - } - - try { - String memberName = member.getName(); - if (memberName.equals("id")) { - this.versionID = value.asString(); - } else if (memberName.equals("sha1")) { - this.sha1 = value.asString(); - } else if (memberName.equals("name")) { - this.name = value.asString(); - } else if (memberName.equals("size")) { - this.size = Double.valueOf(value.toString()).longValue(); - } else if (memberName.equals("uploader_display_name")) { - this.uploaderDisplayName = value.asString(); - } else if (memberName.equals("created_at")) { - this.createdAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("modified_at")) { - this.modifiedAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("trashed_at")) { - this.trashedAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("trashed_by")) { - JsonObject userJSON = value.asObject(); - String userID = userJSON.get("id").asString(); - BoxUser user = new BoxUser(getAPI(), userID); - this.trashedBy = user.new Info(userJSON); - } else if (memberName.equals("modified_by")) { - JsonObject userJSON = value.asObject(); - String userID = userJSON.get("id").asString(); - BoxUser user = new BoxUser(getAPI(), userID); - this.modifiedBy = user.new Info(userJSON); - } else if (memberName.equals("restored_at")) { - this.restoredAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("restored_by")) { - JsonObject userJSON = value.asObject(); - String userID = userJSON.get("id").asString(); - BoxUser user = new BoxUser(getAPI(), userID); - this.restoredBy = user.new Info(userJSON); - } else if (memberName.equals("purged_at")) { - this.purgedAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("version_number")) { - this.versionNumber = Long.parseLong(value.asString()); - } - } catch (ParseException e) { - assert false : "A ParseException indicates a bug in the SDK."; - } - } - } - - /** - * @return the file id this file version belongs to. - */ - public String getFileID() { - return this.fileID; - } - - /** - * Used if no or wrong file id was set with constructor. - * - * @param fileID the file id this file version belongs to. - */ - public void setFileID(String fileID) { - this.fileID = fileID; - } - - /** - * Gets the version ID of this version of the file. - * - * @return the version ID of this version of the file. - */ - public String getVersionID() { - return this.versionID; - } - - /** - * Gets the SHA1 hash of this version of the file. - * - * @return the SHA1 hash of this version of the file. - */ - public String getSha1() { - return this.sha1; - } - - /** - * Gets the name of this version of the file. - * - * @return the name of this version of the file. - */ - public String getName() { - return this.name; - } - - /** - * Gets the size of this version of the file. - * - * @return the size of this version of the file. - */ - public long getSize() { - return this.size; - } - - /** - * Gets the time that this version of the file was created. - * - * @return the time that this version of the file was created. - */ - public Date getCreatedAt() { - return this.createdAt; - } - - /** - * Gets the user's name at the time of upload. - * - * @return the time user's name at the time of upload. - */ - public String getUploaderDisplayName() { - return this.uploaderDisplayName; - } - - /** - * Gets the time that this version of the file was modified. - * - * @return the time that this version of the file was modified. - */ - public Date getModifiedAt() { - return this.modifiedAt; - } - - /** - * Gets the time that this version of the file was deleted. - * - * @return the time that this version of the file was deleted. - */ - public Date getTrashedAt() { - return this.trashedAt; - } - - /** - * Gets information about the user who trashed this version of the file. - * - * @return info about the user who trashed this version of the file. - */ - public BoxUser.Info getTrashedBy() { - return this.trashedBy; - } - - /** - * Gets information about the user who last modified this version of the file. - * - * @return info about the user who last modified this version of the file. - */ - public BoxUser.Info getModifiedBy() { - return this.modifiedBy; - } - - /** - * Gets the time that this version of the file was restored. - * - * @return the time that this version of the file was restored. - */ - public Date getRestoredAt() { - return this.restoredAt; - } - - /** - * Gets information about the user who restored this version of the file. - * - * @return info about the user who restored this version of the file. - */ - public BoxUser.Info getRestoredBy() { - return this.restoredBy; - } - - /** - * Gets the time that this version of the file was purged. - * - * @return the time that this version of the file was purged. - */ - public Date getPurgedAt() { - return this.purgedAt; - } - - /** - * Returns version number. - * - * @return version number - */ - public Long getVersionNumber() { - return versionNumber; - } - - /** - * Deletes this version of the file. - */ - public void delete() { - URL url = VERSION_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.fileID, this.getID()); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "DELETE"); - request.send().close(); - } - - /** - * Downloads this version of the file to a given OutputStream. - * - * @param output the stream to where the file will be written. - */ - public void download(OutputStream output) { - this.download(output, null); - } - - /** - * Downloads this version of the file to a given OutputStream while reporting the progress to a ProgressListener. - * - * @param output the stream to where the file will be written. - * @param listener a listener for monitoring the download's progress. - */ - public void download(OutputStream output, ProgressListener listener) { - URL url = CONTENT_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.fileID, this.getID()); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "GET"); - writeStream(request.send(), output, listener); - } - - /** - * Promotes this version of the file to be the latest version. - */ - public void promote() { - URL url = VERSION_URL_TEMPLATE.buildAlpha(this.getAPI().getBaseURL(), this.fileID, "current"); - - JsonObject jsonObject = new JsonObject(); - jsonObject.add("type", "file_version"); - jsonObject.add("id", this.getID()); - - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "POST"); - request.setBody(jsonObject.toString()); - try (BoxJSONResponse response = request.send()) { - this.parseJSON(Json.parse(response.getJSON()).asObject()); - } - } -} diff --git a/src/main/java/com/box/sdk/BoxFileVersionLegalHold.java b/src/main/java/com/box/sdk/BoxFileVersionLegalHold.java deleted file mode 100644 index 65ee97405..000000000 --- a/src/main/java/com/box/sdk/BoxFileVersionLegalHold.java +++ /dev/null @@ -1,188 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * Representing all holds on a file version. - * Note that every file version can have a maximum of one file version legal hold. - */ -@BoxResourceType("file_version_legal_hold") -public class BoxFileVersionLegalHold extends BoxResource { - - /** - * The URL template used for operation with file version legal hold with given ID. - * - * @see #getInfo(String...) - */ - public static final URLTemplate FILE_VERSION_HOLD_URL_TEMPLATE = new URLTemplate("file_version_legal_holds/%s"); - - /** - * Constructs a file version legal hold with a given ID. - * - * @param api the API connection to be used by the resource. - * @param id the ID of the resource. - */ - public BoxFileVersionLegalHold(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * @param fields the fields to retrieve. - * @return information about this file version legal hold. - */ - public BoxFileVersionLegalHold.Info getInfo(String... fields) { - QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - URL url = FILE_VERSION_HOLD_URL_TEMPLATE.buildWithQuery( - this.getAPI().getBaseURL(), builder.toString(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - return new Info(responseJSON); - } - } - - /** - * Contains information about the file version legal hold. - */ - public class Info extends BoxResource.Info { - - /** - * Used for file version in case it was retrieved separately from file. - */ - private static final String DEFAULT_FILE_ID = "0"; - - /** - * @see #getFileVersion() - */ - private BoxFileVersion fileVersion; - - /** - * @see #getFile() - */ - private BoxFile.Info file; - - /** - * @see #getAssignments() - */ - private List assignments; - - /** - * @see #getDeletedAt() - */ - private Date deletedAt; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - Info(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * {@inheritDoc} - */ - @Override - public BoxResource getResource() { - return BoxFileVersionLegalHold.this; - } - - /** - * @return the file version that is held. - */ - public BoxFileVersion getFileVersion() { - return this.fileVersion; - } - - /** - * @return the parent file of the file version that is held. - * Note that there is no guarantee that the current version of this file is held. - */ - public BoxFile.Info getFile() { - return this.file; - } - - /** - * @return iterable with the assignments contributing to this file version legal hold. - */ - public Iterable getAssignments() { - return this.assignments; - } - - /** - * @return time that this file version legal hold was deleted. - */ - public Date getDeletedAt() { - return this.deletedAt; - } - - /** - * {@inheritDoc} - */ - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - if (memberName.equals("file")) { - JsonObject fileJSON = value.asObject(); - if (this.file == null) { - String fileID = fileJSON.get("id").asString(); - BoxFile file = new BoxFile(getAPI(), fileID); - this.file = file.new Info(fileJSON); - } else { - this.file.update(fileJSON); - } - if (this.fileVersion != null) { - this.fileVersion.setFileID(this.file.getID()); - } - } else if (memberName.equals("file_version")) { - JsonObject versionJSON = value.asObject(); - String fileID = this.file != null ? this.file.getID() : DEFAULT_FILE_ID; - this.fileVersion = new BoxFileVersion(getAPI(), versionJSON, fileID); - } else if (memberName.equals("legal_hold_policy_assignments")) { - JsonArray array = value.asArray(); - this.assignments = new ArrayList<>(); - for (JsonValue assignmentJSON : array) { - String assignmentID = ((JsonObject) assignmentJSON).get("id").asString(); - BoxLegalHoldAssignment assignment = new BoxLegalHoldAssignment(getAPI(), assignmentID); - this.assignments.add(assignment.new Info((JsonObject) assignmentJSON)); - } - } else if (memberName.equals("deleted_at")) { - this.deletedAt = BoxDateFormat.parse(value.asString()); - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - - } -} diff --git a/src/main/java/com/box/sdk/BoxFileVersionRetention.java b/src/main/java/com/box/sdk/BoxFileVersionRetention.java deleted file mode 100644 index 9c9c40fed..000000000 --- a/src/main/java/com/box/sdk/BoxFileVersionRetention.java +++ /dev/null @@ -1,362 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; -import java.util.Date; - -/** - * Represents a file version retention. - * A retention policy blocks permanent deletion of content for a specified amount of time. - * Admins can apply policies to specified folders, or an entire enterprise. - * A file version retention is a record for a retained file version. - * - * @see Box file version retention - * - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly.

    - */ -@BoxResourceType("file_version_retention") -public class BoxFileVersionRetention extends BoxResource { - - /** - * @see #getInfo(String...) - */ - public static final URLTemplate RETENTION_URL_TEMPLATE = new URLTemplate("file_version_retentions/%s"); - - /** - * The URL template used for operation with file version retentions. - */ - public static final URLTemplate ALL_RETENTIONS_URL_TEMPLATE = new URLTemplate("file_version_retentions"); - - /** - * The default limit of entries per response. - */ - private static final int DEFAULT_LIMIT = 100; - - /** - * Constructs a BoxFileVersionRetention for a resource with a given ID. - * - * @param api the API connection to be used by the resource. - * @param id the ID of the resource. - */ - public BoxFileVersionRetention(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Retrieves all file version retentions. - * - * @param api the API connection to be used by the resource. - * @param fields the fields to retrieve. - * @return an iterable contains information about all file version retentions. - */ - public static Iterable getAll(BoxAPIConnection api, String... fields) { - return getRetentions(api, new QueryFilter(), fields); - } - - /** - * Retrieves all file version retentions matching given filters as an Iterable. - * - * @param api the API connection to be used by the resource. - * @param filter filters for the query stored in QueryFilter object. - * @param fields the fields to retrieve. - * @return an iterable contains information about all file version retentions matching given filter. - */ - public static Iterable getRetentions( - final BoxAPIConnection api, QueryFilter filter, String... fields) { - filter.addFields(fields); - return new BoxResourceIterable(api, - ALL_RETENTIONS_URL_TEMPLATE.buildWithQuery(api.getBaseURL(), filter.toString()), - DEFAULT_LIMIT) { - - @Override - protected BoxFileVersionRetention.Info factory(JsonObject jsonObject) { - BoxFileVersionRetention retention = new BoxFileVersionRetention(api, jsonObject.get("id").asString()); - return retention.new Info(jsonObject); - } - }; - } - - /** - * @param fields the fields to retrieve. - * @return information about this retention policy. - */ - public BoxFileVersionRetention.Info getInfo(String... fields) { - QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - URL url = RETENTION_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), builder.toString(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - return new Info(responseJSON); - } - } - - /** - * Represents possible query filters for "Get File Version Retentions" function. - */ - public static class QueryFilter extends QueryStringBuilder { - - /** - * Param name for the file id to filter the file version retentions by. - */ - private static final String PARAM_FILE_ID = "file_id"; - - /** - * Param name for the file version id to filter the file version retentions by. - */ - private static final String PARAM_FILE_VERSION_ID = "file_version_id"; - - /** - * Param name for the policy id to filter the file version retentions by. - */ - private static final String PARAM_POLICY_ID = "policy_id"; - - /** - * Param name for the disposition action of the retention policy. - */ - private static final String PARAM_DISPOSITION_ACTION = "disposition_action"; - - /** - * Param name for the datetime to filter file version retentions. - */ - private static final String PARAM_DISPOSITION_BEFORE = "disposition_before"; - - /** - * Param name for the datetime to filter file version retentions. - */ - private static final String PARAM_DISPOSITION_AFTER = "disposition_after"; - - /** - * Param name for the the fields to retrieve. - */ - private static final String PARAM_FIELDS = "fields"; - - /** - * Constructs empty query filter. - */ - public QueryFilter() { - super(); - } - - /** - * @param id a file id to filter the file version retentions by. - * @return modified query filter. - */ - public QueryFilter addFileID(String id) { - this.appendParam(PARAM_FILE_ID, id); - return this; - } - - /** - * @param id a file version id to filter the file version retentions by. - * @return modified query filter. - */ - public QueryFilter addFileVersionID(String id) { - this.appendParam(PARAM_FILE_VERSION_ID, id); - return this; - } - - /** - * @param id a policy id to filter the file version retentions by. - * @return modified query filter. - */ - public QueryFilter addPolicyID(String id) { - this.appendParam(PARAM_POLICY_ID, id); - return this; - } - - /** - * The action can be "permanently_delete" or "remove_retention". - * - * @param action the disposition action of the retention policy. - * @return modified query filter. - */ - public QueryFilter addDispositionAction(String action) { - this.appendParam(PARAM_DISPOSITION_ACTION, action); - return this; - } - - /** - * @param date the datetime to filter file version retentions. - * @return modified query filter. - */ - public QueryFilter addDispositionBefore(Date date) { - this.appendParam(PARAM_DISPOSITION_BEFORE, BoxDateFormat.format(date)); - return this; - } - - /** - * @param date the datetime to filter file version retentions. - * @return modified query filter. - */ - public QueryFilter addDispositionAfter(Date date) { - this.appendParam(PARAM_DISPOSITION_AFTER, BoxDateFormat.format(date)); - return this; - } - - /** - * @param fields the fields to retrieve. - * @return modified query filter. - */ - public QueryFilter addFields(String... fields) { - if (fields.length > 0) { - this.appendParam(PARAM_FIELDS, fields); - } - return this; - } - } - - /** - * Contains information about the retention policy. - */ - public class Info extends BoxResource.Info { - - /** - * @see #getFileVersion() - */ - private BoxFileVersion fileVersion; - - /** - * @see #getFile() - */ - private BoxFile.Info file; - - /** - * @see #getAppliedAt() - */ - private Date appliedAt; - - /** - * @see #getDispositionAt() - */ - private Date dispositionAt; - - /** - * @see #getWinningPolicy() - */ - private BoxRetentionPolicy.Info winningPolicy; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - Info(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * {@inheritDoc} - */ - @Override - public BoxResource getResource() { - return BoxFileVersionRetention.this; - } - - /** - * @return the file version this file version retention was applied to. - */ - public BoxFileVersion getFileVersion() { - return this.fileVersion; - } - - /** - * @return the file this file version retention was applied to. - */ - public BoxFile.Info getFile() { - return this.file; - } - - /** - * @return the time that this file version retention was created. - */ - public Date getAppliedAt() { - return this.appliedAt; - } - - /** - * @return the time that the retention period expires on this file version retention. - */ - public Date getDispositionAt() { - return this.dispositionAt; - } - - /** - * @return the winning retention policy applied to this file version retention. - */ - public BoxRetentionPolicy.Info getWinningPolicy() { - return this.winningPolicy; - } - - /** - * {@inheritDoc} - */ - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - switch (memberName) { - case "winning_retention_policy": - JsonObject policyJSON = value.asObject(); - if (this.winningPolicy == null) { - String policyID = policyJSON.get("id").asString(); - BoxRetentionPolicy policy = new BoxRetentionPolicy(getAPI(), policyID); - this.winningPolicy = policy.new Info(policyJSON); - } else { - this.winningPolicy.update(policyJSON); - } - break; - case "file": - JsonObject fileJSON = value.asObject(); - if (this.file == null) { - String fileID = fileJSON.get("id").asString(); - BoxFile file = new BoxFile(getAPI(), fileID); - this.file = file.new Info(fileJSON); - } else { - this.file.update(fileJSON); - } - break; - case "file_version": - JsonObject versionJSON = value.asObject(); - String fileVersionID = versionJSON.get("id").asString(); - this.fileVersion = new BoxFileVersion(getAPI(), versionJSON, fileVersionID); - break; - case "applied_at": - this.appliedAt = BoxDateFormat.parse(value.asString()); - break; - case "disposition_at": - this.dispositionAt = BoxDateFormat.parse(value.asString()); - break; - default: - break; - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - } -} diff --git a/src/main/java/com/box/sdk/BoxFolder.java b/src/main/java/com/box/sdk/BoxFolder.java deleted file mode 100644 index 0632b591b..000000000 --- a/src/main/java/com/box/sdk/BoxFolder.java +++ /dev/null @@ -1,1803 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.PagingParameters.DEFAULT_LIMIT; -import static com.box.sdk.PagingParameters.marker; -import static com.box.sdk.PagingParameters.offset; -import static com.box.sdk.http.ContentType.APPLICATION_JSON_PATCH; - -import com.box.sdk.internal.utils.Parsers; -import com.box.sdk.sharedlink.BoxSharedLinkRequest; -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Date; -import java.util.EnumSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.concurrent.TimeUnit; - -/** - *

    Represents a folder on Box. This class can be used to iterate through a folder's contents, collaborate a folder with - * another user or group, and perform other common folder operations (move, copy, delete, etc.). - *

    - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly.

    - */ -@BoxResourceType("folder") -public class BoxFolder extends BoxItem implements Iterable { - /** - * An array of all possible folder fields that can be requested when calling {@link #getInfo(String...)}. - */ - public static final String[] ALL_FIELDS = {"type", "id", "sequence_id", "etag", "name", "created_at", "modified_at", - "description", "size", "path_collection", "created_by", "modified_by", "trashed_at", "purged_at", - "content_created_at", "content_modified_at", "owned_by", "shared_link", "folder_upload_email", "parent", - "item_status", "item_collection", "sync_state", "has_collaborations", "permissions", "tags", - "can_non_owners_invite", "collections", "watermark_info", "metadata", "is_externally_owned", - "is_collaboration_restricted_to_enterprise", "allowed_shared_link_access_levels", "allowed_invitee_roles", - "is_accessible_via_shared_link", "can_non_owners_view_collaborators" - }; - /** - * Create Folder URL Template. - */ - public static final URLTemplate CREATE_FOLDER_URL = new URLTemplate("folders"); - /** - * Create Web Link URL Template. - */ - public static final URLTemplate CREATE_WEB_LINK_URL = new URLTemplate("web_links"); - /** - * Copy Folder URL Template. - */ - public static final URLTemplate COPY_FOLDER_URL = new URLTemplate("folders/%s/copy"); - /** - * Delete Folder URL Template. - */ - public static final URLTemplate DELETE_FOLDER_URL = new URLTemplate("folders/%s?recursive=%b"); - /** - * Folder Info URL Template. - */ - public static final URLTemplate FOLDER_INFO_URL_TEMPLATE = new URLTemplate("folders/%s"); - /** - * Upload File URL Template. - */ - public static final URLTemplate UPLOAD_FILE_URL = new URLTemplate("files/content"); - /** - * Add Collaboration URL Template. - */ - public static final URLTemplate ADD_COLLABORATION_URL = new URLTemplate("collaborations"); - /** - * Get Collaborations URL Template. - */ - public static final URLTemplate GET_COLLABORATIONS_URL = new URLTemplate("folders/%s/collaborations"); - /** - * Get Items URL Template. - */ - public static final URLTemplate GET_ITEMS_URL = new URLTemplate("folders/%s/items/"); - /** - * Search URL Template. - */ - public static final URLTemplate SEARCH_URL_TEMPLATE = new URLTemplate("search"); - /** - * Metadata URL Template. - */ - public static final URLTemplate METADATA_URL_TEMPLATE = new URLTemplate("folders/%s/metadata/%s/%s"); - /** - * Upload Session URL Template. - */ - public static final URLTemplate UPLOAD_SESSION_URL_TEMPLATE = new URLTemplate("files/upload_sessions"); - /** - * Folder Locks URL Template. - */ - public static final URLTemplate FOLDER_LOCK_URL_TEMPLATE = new URLTemplate("folder_locks"); - /** - * Describes folder item type. - */ - static final String TYPE = "folder"; - - /** - * Constructs a BoxFolder for a folder with a given ID. - * - * @param api the API connection to be used by the folder. - * @param id the ID of the folder. - */ - public BoxFolder(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Gets the current user's root folder. - * - * @param api the API connection to be used by the folder. - * @return the user's root folder. - */ - public static BoxFolder getRootFolder(BoxAPIConnection api) { - return new BoxFolder(api, "0"); - } - - /** - * {@inheritDoc} - */ - @Override - protected URL getItemURL() { - return FOLDER_INFO_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - } - - /** - * Adds a collaborator to this folder. - * - * @param collaborator the collaborator to add. - * @param role the role of the collaborator. - * @return info about the new collaboration. - */ - public BoxCollaboration.Info collaborate(BoxCollaborator collaborator, BoxCollaboration.Role role) { - JsonObject accessibleByField = new JsonObject(); - accessibleByField.add("id", collaborator.getID()); - - if (collaborator instanceof BoxUser) { - accessibleByField.add("type", "user"); - } else if (collaborator instanceof BoxGroup) { - accessibleByField.add("type", "group"); - } else { - throw new IllegalArgumentException("The given collaborator is of an unknown type."); - } - - return this.collaborate(accessibleByField, role, null, null, null, null); - } - - /** - * Adds a collaborator to this folder. An email will be sent to the collaborator if they don't already have a Box - * account. - * - * @param email the email address of the collaborator to add. - * @param role the role of the collaborator. - * @return info about the new collaboration. - */ - public BoxCollaboration.Info collaborate(String email, BoxCollaboration.Role role) { - JsonObject accessibleByField = new JsonObject(); - accessibleByField.add("login", email); - accessibleByField.add("type", "user"); - - return this.collaborate(accessibleByField, role, null, null, null, null); - } - - /** - * Adds a collaborator to this folder. - * - * @param collaborator the collaborator to add. - * @param role the role of the collaborator. - * @param notify the user/group should receive email notification of the collaboration or not. - * @param canViewPath the view path collaboration feature is enabled or not. - * View path collaborations allow the invitee to see the entire ancestral path to the associated - * folder. The user will not gain privileges in any ancestral folder. - * @param expiresAt when the collaboration should expire. - * @param isAccessOnly whether the collaboration is access only or not. - * @return info about the new collaboration. - */ - public BoxCollaboration.Info collaborate(BoxCollaborator collaborator, BoxCollaboration.Role role, - Boolean notify, Boolean canViewPath, - Date expiresAt, Boolean isAccessOnly) { - JsonObject accessibleByField = new JsonObject(); - accessibleByField.add("id", collaborator.getID()); - - if (collaborator instanceof BoxUser) { - accessibleByField.add("type", "user"); - } else if (collaborator instanceof BoxGroup) { - accessibleByField.add("type", "group"); - } else { - throw new IllegalArgumentException("The given collaborator is of an unknown type."); - } - - return this.collaborate(accessibleByField, role, notify, canViewPath, expiresAt, isAccessOnly); - } - - /** - * Adds a collaborator to this folder. - * - * @param collaborator the collaborator to add. - * @param role the role of the collaborator. - * @param notify the user/group should receive email notification of the collaboration or not. - * @param canViewPath the view path collaboration feature is enabled or not. - * View path collaborations allow the invitee to see the entire ancestral path to the associated - * folder. The user will not gain privileges in any ancestral folder. - * @return info about the new collaboration. - */ - public BoxCollaboration.Info collaborate(BoxCollaborator collaborator, BoxCollaboration.Role role, - Boolean notify, Boolean canViewPath) { - return this.collaborate(collaborator, role, notify, canViewPath, null, null); - } - - /** - * Adds a collaborator to this folder. An email will be sent to the collaborator if they don't already have a Box - * account. - * - * @param email the email address of the collaborator to add. - * @param role the role of the collaborator. - * @param notify the user/group should receive email notification of the collaboration or not. - * @param canViewPath the view path collaboration feature is enabled or not. - * View path collaborations allow the invitee to see the entire ancestral path to the associated - * folder. The user will not gain privileges in any ancestral folder. - * @param expiresAt when the collaboration should expire. - * @param isAccessOnly whether the collaboration is access only or not. - * @return info about the new collaboration. - */ - public BoxCollaboration.Info collaborate(String email, BoxCollaboration.Role role, - Boolean notify, Boolean canViewPath, - Date expiresAt, Boolean isAccessOnly) { - JsonObject accessibleByField = new JsonObject(); - accessibleByField.add("login", email); - accessibleByField.add("type", "user"); - - return this.collaborate(accessibleByField, role, notify, canViewPath, expiresAt, isAccessOnly); - } - - /** - * Adds a collaborator to this folder. An email will be sent to the collaborator if they don't already have a Box - * account. - * - * @param email the email address of the collaborator to add. - * @param role the role of the collaborator. - * @param notify the user/group should receive email notification of the collaboration or not. - * @param canViewPath the view path collaboration feature is enabled or not. - * View path collaborations allow the invitee to see the entire ancestral path to the associated - * folder. The user will not gain privileges in any ancestral folder. - * @return info about the new collaboration. - */ - public BoxCollaboration.Info collaborate(String email, BoxCollaboration.Role role, - Boolean notify, Boolean canViewPath) { - return this.collaborate(email, role, notify, canViewPath, null, null); - } - - private BoxCollaboration.Info collaborate(JsonObject accessibleByField, BoxCollaboration.Role role, - Boolean notify, Boolean canViewPath, - Date expiresAt, Boolean isAccessOnly) { - - JsonObject itemField = new JsonObject(); - itemField.add("id", this.getID()); - itemField.add("type", "folder"); - - return BoxCollaboration.create(this.getAPI(), accessibleByField, itemField, role, notify, canViewPath, - expiresAt, isAccessOnly); - } - - /** - * Creates a shared link. - * - * @param sharedLinkRequest Shared link to create - * @return Created shared link. - */ - public BoxSharedLink createSharedLink(BoxSharedLinkRequest sharedLinkRequest) { - return createSharedLink(sharedLinkRequest.asSharedLink()); - } - - private BoxSharedLink createSharedLink(BoxSharedLink sharedLink) { - BoxFolder.Info info = new BoxFolder.Info(); - info.setSharedLink(removeCanEditPermissionIfSet(sharedLink)); - - this.updateInfo(info); - return info.getSharedLink(); - } - - private BoxSharedLink removeCanEditPermissionIfSet(BoxSharedLink sharedLink) { - if (sharedLink.getPermissions() != null && sharedLink.getPermissions().getCanEdit()) { - BoxSharedLink.Permissions permissions = sharedLink.getPermissions(); - sharedLink.setPermissions( - new BoxSharedLink.Permissions(permissions.getCanPreview(), permissions.getCanDownload(), false) - ); - } - return sharedLink; - } - - /** - * Gets information about all of the collaborations for this folder. - * - * @return a collection of information about the collaborations for this folder. - */ - public Collection getCollaborations(String... fields) { - BoxAPIConnection api = this.getAPI(); - QueryStringBuilder queryBuilder = new QueryStringBuilder(); - if (fields.length > 0) { - queryBuilder.appendParam("fields", fields); - } - URL url = GET_COLLABORATIONS_URL.buildWithQuery(api.getBaseURL(), queryBuilder.toString(), this.getID()); - - - BoxJSONRequest request = new BoxJSONRequest(api, url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - int entriesCount = responseJSON.get("total_count").asInt(); - Collection collaborations = new ArrayList<>(entriesCount); - JsonArray entries = responseJSON.get("entries").asArray(); - for (JsonValue entry : entries) { - JsonObject entryObject = entry.asObject(); - BoxCollaboration collaboration = new BoxCollaboration(api, entryObject.get("id").asString()); - BoxCollaboration.Info info = collaboration.new Info(entryObject); - collaborations.add(info); - } - - return collaborations; - } - } - - @Override - public BoxFolder.Info getInfo(String... fields) { - URL url = FOLDER_INFO_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - if (fields.length > 0) { - String queryString = new QueryStringBuilder().appendParam("fields", fields).toString(); - url = FOLDER_INFO_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), queryString, this.getID()); - } - - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - return new Info(response.getJSON()); - } - } - - /** - * Updates the information about this folder with any info fields that have been modified locally. - * - * @param info the updated info. - */ - public void updateInfo(BoxFolder.Info info) { - URL url = FOLDER_INFO_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - request.setBody(info.getPendingChanges()); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - info.update(jsonObject); - } - } - - @Override - public BoxFolder.Info copy(BoxFolder destination) { - return this.copy(destination, null); - } - - @Override - public BoxFolder.Info copy(BoxFolder destination, String newName) { - URL url = COPY_FOLDER_URL.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "POST"); - - JsonObject parent = new JsonObject(); - parent.add("id", destination.getID()); - - JsonObject copyInfo = new JsonObject(); - copyInfo.add("parent", parent); - if (newName != null) { - copyInfo.add("name", newName); - } - - request.setBody(copyInfo.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - BoxFolder copiedFolder = new BoxFolder(this.getAPI(), responseJSON.get("id").asString()); - return copiedFolder.new Info(responseJSON); - } - } - - /** - * Creates a new child folder inside this folder. - * - * @param name the new folder's name. - * @return the created folder's info. - */ - public BoxFolder.Info createFolder(String name) { - JsonObject parent = new JsonObject(); - parent.add("id", this.getID()); - - JsonObject newFolder = new JsonObject(); - newFolder.add("name", name); - newFolder.add("parent", parent); - - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), CREATE_FOLDER_URL.build(this.getAPI().getBaseURL()), - "POST"); - request.setBody(newFolder.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - BoxFolder createdFolder = new BoxFolder(this.getAPI(), responseJSON.get("id").asString()); - return createdFolder.new Info(responseJSON); - } - } - - /** - * Deletes this folder, optionally recursively deleting all of its contents. - * - * @param recursive true to recursively delete this folder's contents; otherwise false. - */ - public void delete(boolean recursive) { - URL url = DELETE_FOLDER_URL.buildAlpha(this.getAPI().getBaseURL(), this.getID(), recursive); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "DELETE"); - request.send().close(); - } - - @Override - public BoxItem.Info move(BoxFolder destination) { - return this.move(destination, null); - } - - @Override - public BoxItem.Info move(BoxFolder destination, String newName) { - URL url = FOLDER_INFO_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - - JsonObject parent = new JsonObject(); - parent.add("id", destination.getID()); - - JsonObject updateInfo = new JsonObject(); - updateInfo.add("parent", parent); - if (newName != null) { - updateInfo.add("name", newName); - } - - request.setBody(updateInfo.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - BoxFolder movedFolder = new BoxFolder(this.getAPI(), responseJSON.get("id").asString()); - return movedFolder.new Info(responseJSON); - } - } - - /** - * Renames this folder. - * - * @param newName the new name of the folder. - */ - public void rename(String newName) { - URL url = FOLDER_INFO_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - - JsonObject updateInfo = new JsonObject(); - updateInfo.add("name", newName); - - request.setBody(updateInfo.toString()); - try (BoxJSONResponse response = request.send()) { - response.getJSON(); - } - } - - /** - * Checks if the file can be successfully uploaded by using the preflight check. - * - * @param name the name to give the uploaded file. - * @param fileSize the size of the file used for account capacity calculations. - */ - public void canUpload(String name, long fileSize) { - URL url = UPLOAD_FILE_URL.build(this.getAPI().getBaseURL()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "OPTIONS"); - - JsonObject parent = new JsonObject(); - parent.add("id", this.getID()); - - JsonObject preflightInfo = new JsonObject(); - preflightInfo.add("parent", parent); - preflightInfo.add("name", name); - - preflightInfo.add("size", fileSize); - - request.setBody(preflightInfo.toString()); - try (BoxJSONResponse response = request.send()) { - response.getJSON(); - } - } - - /** - * Uploads a new file to this folder. - * - * @param fileContent a stream containing the contents of the file to upload. - * @param name the name to give the uploaded file. - * @return the uploaded file's info. - */ - public BoxFile.Info uploadFile(InputStream fileContent, String name) { - FileUploadParams uploadInfo = new FileUploadParams() - .setContent(fileContent) - .setName(name); - return this.uploadFile(uploadInfo); - } - - /** - * Uploads a new file to this folder. - * - * @param callback the callback which allows file content to be written on output stream. - * @param name the name to give the uploaded file. - * @return the uploaded file's info. - */ - public BoxFile.Info uploadFile(UploadFileCallback callback, String name) { - FileUploadParams uploadInfo = new FileUploadParams() - .setUploadFileCallback(callback) - .setName(name); - return this.uploadFile(uploadInfo); - } - - /** - * Uploads a new file to this folder while reporting the progress to a ProgressListener. - * - * @param fileContent a stream containing the contents of the file to upload. - * @param name the name to give the uploaded file. - * @param fileSize the size of the file used for determining the progress of the upload. - * @param listener a listener for monitoring the upload's progress. - * @return the uploaded file's info. - */ - public BoxFile.Info uploadFile(InputStream fileContent, String name, long fileSize, ProgressListener listener) { - FileUploadParams uploadInfo = new FileUploadParams() - .setContent(fileContent) - .setName(name) - .setSize(fileSize) - .setProgressListener(listener); - return this.uploadFile(uploadInfo); - } - - /** - * Uploads a new file to this folder with a specified file description. - * - * @param fileContent a stream containing the contents of the file to upload. - * @param name the name to give the uploaded file. - * @param description the description to give the uploaded file. - * @return the uploaded file's info. - */ - public BoxFile.Info uploadFile(InputStream fileContent, String name, String description) { - FileUploadParams uploadInfo = new FileUploadParams() - .setContent(fileContent) - .setName(name) - .setDescription(description); - return this.uploadFile(uploadInfo); - } - - /** - * Uploads a new file to this folder with custom upload parameters. - * - * @param uploadParams the custom upload parameters. - * @return the uploaded file's info. - */ - public BoxFile.Info uploadFile(FileUploadParams uploadParams) { - URL uploadURL = UPLOAD_FILE_URL.build(this.getAPI().getBaseUploadURL()); - BoxMultipartRequest request = new BoxMultipartRequest(getAPI(), uploadURL); - - JsonObject fieldJSON = new JsonObject(); - JsonObject parentIdJSON = new JsonObject(); - parentIdJSON.add("id", getID()); - fieldJSON.add("name", uploadParams.getName()); - fieldJSON.add("parent", parentIdJSON); - - if (uploadParams.getCreated() != null) { - fieldJSON.add("content_created_at", BoxDateFormat.format(uploadParams.getCreated())); - } - - if (uploadParams.getModified() != null) { - fieldJSON.add("content_modified_at", BoxDateFormat.format(uploadParams.getModified())); - } - - if (uploadParams.getSHA1() != null && !uploadParams.getSHA1().isEmpty()) { - request.setContentSHA1(uploadParams.getSHA1()); - } - - if (uploadParams.getDescription() != null) { - fieldJSON.add("description", uploadParams.getDescription()); - } - - request.putField("attributes", fieldJSON.toString()); - - if (uploadParams.getSize() > 0) { - request.setFile(uploadParams.getContent(), uploadParams.getName(), uploadParams.getSize()); - } else if (uploadParams.getContent() != null) { - request.setFile(uploadParams.getContent(), uploadParams.getName()); - } else { - request.setUploadFileCallback(uploadParams.getUploadFileCallback(), uploadParams.getName()); - } - - BoxJSONResponse response = null; - try { - if (uploadParams.getProgressListener() == null) { - // upload files sends multipart request but response is JSON - response = (BoxJSONResponse) request.send(); - } else { - // upload files sends multipart request but response is JSON - response = (BoxJSONResponse) request.send(uploadParams.getProgressListener()); - } - JsonObject collection = Json.parse(response.getJSON()).asObject(); - JsonArray entries = collection.get("entries").asArray(); - JsonObject fileInfoJSON = entries.get(0).asObject(); - String uploadedFileID = fileInfoJSON.get("id").asString(); - - BoxFile uploadedFile = new BoxFile(getAPI(), uploadedFileID); - return uploadedFile.new Info(fileInfoJSON); - } finally { - Optional.ofNullable(response).ifPresent(BoxAPIResponse::close); - } - } - - /** - * Uploads a new weblink to this folder. - * - * @param linkURL the URL the weblink points to. - * @return the uploaded weblink's info. - */ - public BoxWebLink.Info createWebLink(URL linkURL) { - return this.createWebLink(null, linkURL, - null); - } - - /** - * Uploads a new weblink to this folder. - * - * @param name the filename for the weblink. - * @param linkURL the URL the weblink points to. - * @return the uploaded weblink's info. - */ - public BoxWebLink.Info createWebLink(String name, URL linkURL) { - return this.createWebLink(name, linkURL, - null); - } - - /** - * Uploads a new weblink to this folder. - * - * @param linkURL the URL the weblink points to. - * @param description the weblink's description. - * @return the uploaded weblink's info. - */ - public BoxWebLink.Info createWebLink(URL linkURL, String description) { - return this.createWebLink(null, linkURL, description); - } - - /** - * Uploads a new weblink to this folder. - * - * @param name the filename for the weblink. - * @param linkURL the URL the weblink points to. - * @param description the weblink's description. - * @return the uploaded weblink's info. - */ - public BoxWebLink.Info createWebLink(String name, URL linkURL, String description) { - JsonObject parent = new JsonObject(); - parent.add("id", this.getID()); - - JsonObject newWebLink = new JsonObject(); - newWebLink.add("name", name); - newWebLink.add("parent", parent); - newWebLink.add("url", linkURL.toString()); - - if (description != null) { - newWebLink.add("description", description); - } - - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), - CREATE_WEB_LINK_URL.build(this.getAPI().getBaseURL()), "POST"); - request.setBody(newWebLink.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - BoxWebLink createdWebLink = new BoxWebLink(this.getAPI(), responseJSON.get("id").asString()); - return createdWebLink.new Info(responseJSON); - } - } - - /** - * Returns an iterable containing the items in this folder. Iterating over the iterable returned by this method is - * equivalent to iterating over this BoxFolder directly. - * - * @return an iterable containing the items in this folder. - */ - public Iterable getChildren() { - return this; - } - - /** - * Returns an iterable containing the items in this folder and specifies which child fields to retrieve from the - * API. - * - * @param fields the fields to retrieve. - * @return an iterable containing the items in this folder. - */ - public Iterable getChildren(final String... fields) { - return () -> { - String queryString = new QueryStringBuilder().appendParam("fields", fields).toString(); - URL url = GET_ITEMS_URL.buildWithQuery(getAPI().getBaseURL(), queryString, getID()); - return new BoxItemIterator(getAPI(), url, marker(DEFAULT_LIMIT)); - }; - } - - /** - * Returns an iterable containing the items in this folder sorted by name and direction. - * - * @param sort the field to sort by, can be set as `name`, `id`, and `date`. - * @param direction the direction to display the item results. - * @param fields the fields to retrieve. - * @return an iterable containing the items in this folder. - */ - public Iterable getChildren(String sort, SortDirection direction, final String... fields) { - QueryStringBuilder builder = new QueryStringBuilder() - .appendParam("sort", sort) - .appendParam("direction", direction.toString()); - - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - final String query = builder.toString(); - return () -> { - URL url = GET_ITEMS_URL.buildWithQuery(getAPI().getBaseURL(), query, getID()); - return new BoxItemIterator(getAPI(), url, offset(0, DEFAULT_LIMIT)); - }; - } - - /** - * Returns an iterable containing the items in this folder sorted by name and direction. - * - * @param sort the field to sort by, can be set as `name`, `id`, and `date`. - * @param direction the direction to display the item results. - * @param offset the index of the first child item to retrieve. - * @param limit the maximum number of children to retrieve after the offset. - * @param fields the fields to retrieve. - * @return an iterable containing the items in this folder. - */ - public Iterable getChildren(String sort, SortDirection direction, final long offset, final long limit, - final String... fields) { - QueryStringBuilder builder = new QueryStringBuilder() - .appendParam("sort", sort) - .appendParam("direction", direction.toString()); - - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - final String query = builder.toString(); - return () -> { - URL url = GET_ITEMS_URL.buildWithQuery(getAPI().getBaseURL(), query, getID()); - return new BoxItemIterator(getAPI(), url, limit, offset); - }; - } - - /** - * Retrieves a specific range of child items in this folder. - * - * @param offset the index of the first child item to retrieve. - * @param limit the maximum number of children to retrieve after the offset. - * @param fields the fields to retrieve. - * @return a partial collection containing the specified range of child items. - */ - public PartialCollection getChildrenRange(long offset, long limit, String... fields) { - QueryStringBuilder builder = new QueryStringBuilder() - .appendParam("limit", limit) - .appendParam("offset", offset); - - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - - URL url = GET_ITEMS_URL.buildWithQuery(getAPI().getBaseURL(), builder.toString(), getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - String totalCountString = responseJSON.get("total_count").toString(); - long fullSize = Double.valueOf(totalCountString).longValue(); - PartialCollection children = new PartialCollection<>(offset, limit, fullSize); - JsonArray jsonArray = responseJSON.get("entries").asArray(); - for (JsonValue value : jsonArray) { - JsonObject jsonObject = value.asObject(); - BoxItem.Info parsedItemInfo = (BoxItem.Info) BoxResource.parseInfo(this.getAPI(), jsonObject); - if (parsedItemInfo != null) { - children.add(parsedItemInfo); - } - } - return children; - } - } - - /** - * Returns an iterable containing the items in this folder sorted by name and direction. - * - * @param sortParameters describes sorting parameters. - * Sort parameters are supported only with offset based pagination. - * Use {@link SortParameters#none()} to ignore sorting. - * @param pagingParameters describes paging parameters. - * @param fields the fields to retrieve. - * @return an iterable containing the items in this folder. - */ - public Iterable getChildren( - final SortParameters sortParameters, final PagingParameters pagingParameters, String... fields - ) { - QueryStringBuilder builder = sortParameters.asQueryStringBuilder(); - validateSortIsSelectedWithOffsetPaginationOnly(pagingParameters, builder); - - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - final String query = builder.toString(); - return () -> { - URL url = GET_ITEMS_URL.buildWithQuery(getAPI().getBaseURL(), query, getID()); - return new BoxItemIterator(getAPI(), url, pagingParameters); - }; - } - - /** - * Returns an iterator over the items in this folder. - * - * @return an iterator over the items in this folder. - */ - @Override - public Iterator iterator() { - URL url = GET_ITEMS_URL.build(this.getAPI().getBaseURL(), BoxFolder.this.getID()); - return new BoxItemIterator(BoxFolder.this.getAPI(), url, marker(DEFAULT_LIMIT)); - } - - /** - * Adds new {@link BoxWebHook} to this {@link BoxFolder}. - * - * @param address {@link BoxWebHook.Info#getAddress()} - * @param triggers {@link BoxWebHook.Info#getTriggers()} - * @return created {@link BoxWebHook.Info} - */ - public BoxWebHook.Info addWebHook(URL address, BoxWebHook.Trigger... triggers) { - return BoxWebHook.create(this, address, triggers); - } - - /** - * Used to retrieve the watermark for the folder. - * If the folder does not have a watermark applied to it, a 404 Not Found will be returned by API. - * - * @param fields the fields to retrieve. - * @return the watermark associated with the folder. - */ - public BoxWatermark getWatermark(String... fields) { - return this.getWatermark(FOLDER_INFO_URL_TEMPLATE, fields); - } - - /** - * Used to apply or update the watermark for the folder. - * - * @return the watermark associated with the folder. - */ - public BoxWatermark applyWatermark() { - return this.applyWatermark(FOLDER_INFO_URL_TEMPLATE, BoxWatermark.WATERMARK_DEFAULT_IMPRINT); - } - - /** - * Removes a watermark from the folder. - * If the folder did not have a watermark applied to it, a 404 Not Found will be returned by API. - */ - public void removeWatermark() { - this.removeWatermark(FOLDER_INFO_URL_TEMPLATE); - } - - /** - * Used to retrieve all metadata associated with the folder. - * - * @param fields the optional fields to retrieve. - * @return An iterable of metadata instances associated with the folder - */ - public Iterable getAllMetadata(String... fields) { - return Metadata.getAllMetadata(this, fields); - } - - @Override - public BoxFolder.Info setCollections(BoxCollection... collections) { - JsonArray jsonArray = new JsonArray(); - for (BoxCollection collection : collections) { - JsonObject collectionJSON = new JsonObject(); - collectionJSON.add("id", collection.getID()); - jsonArray.add(collectionJSON); - } - JsonObject infoJSON = new JsonObject(); - infoJSON.add("collections", jsonArray); - - String queryString = new QueryStringBuilder().appendParam("fields", ALL_FIELDS).toString(); - URL url = FOLDER_INFO_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), queryString, this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - request.setBody(infoJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - return new Info(jsonObject); - } - } - - /** - * Creates global property metadata on this folder. - * - * @param metadata the new metadata values. - * @return the metadata returned from the server. - */ - public Metadata createMetadata(Metadata metadata) { - return this.createMetadata(Metadata.DEFAULT_METADATA_TYPE, metadata); - } - - /** - * Creates metadata on this folder using a specified template. - * - * @param templateName the name of the metadata template. - * @param metadata the new metadata values. - * @return the metadata returned from the server. - */ - public Metadata createMetadata(String templateName, Metadata metadata) { - String scope = Metadata.scopeBasedOnType(templateName); - return this.createMetadata(templateName, scope, metadata); - } - - /** - * Creates metadata on this folder using a specified scope and template. - * - * @param templateName the name of the metadata template. - * @param scope the scope of the template (usually "global" or "enterprise"). - * @param metadata the new metadata values. - * @return the metadata returned from the server. - */ - public Metadata createMetadata(String templateName, String scope, Metadata metadata) { - URL url = METADATA_URL_TEMPLATE.buildAlpha(this.getAPI().getBaseURL(), this.getID(), scope, templateName); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "POST"); - request.setBody(metadata.toString()); - try (BoxJSONResponse response = request.send()) { - return new Metadata(Json.parse(response.getJSON()).asObject()); - } - } - - /** - * Sets the provided metadata on the folder. If metadata has already been created on this folder, - * it overwrites metadata keys specified in the `metadata` param. - * - * @param templateName the name of the metadata template. - * @param scope the scope of the template (usually "global" or "enterprise"). - * @param metadata the new metadata values. - * @return the metadata returned from the server. - */ - public Metadata setMetadata(String templateName, String scope, Metadata metadata) { - try { - return this.createMetadata(templateName, scope, metadata); - } catch (BoxAPIException e) { - if (e.getResponseCode() == 409) { - if (metadata.getOperations().isEmpty()) { - return getMetadata(); - } else { - return updateExistingTemplate(templateName, scope, metadata); - } - } else { - throw e; - } - } - } - - /** - * Throws IllegalArgumentException exception when sorting and marker pagination is selected. - * - * @param pagingParameters paging definition to check - * @param sortQuery builder containing sort query - */ - private void validateSortIsSelectedWithOffsetPaginationOnly( - PagingParameters pagingParameters, - QueryStringBuilder sortQuery - ) { - if (pagingParameters != null && pagingParameters.isMarkerBasedPaging() && sortQuery.toString().length() > 0) { - throw new IllegalArgumentException("Sorting is not supported when using marker based pagination."); - } - } - - private Metadata updateExistingTemplate(String templateName, String scope, Metadata metadata) { - Metadata metadataToUpdate = new Metadata(scope, templateName); - for (JsonValue value : metadata.getOperations()) { - if (value.asObject().get("value").isNumber()) { - metadataToUpdate.add(value.asObject().get("path").asString(), - value.asObject().get("value").asDouble()); - } else if (value.asObject().get("value").isString()) { - metadataToUpdate.add(value.asObject().get("path").asString(), - value.asObject().get("value").asString()); - } else if (value.asObject().get("value").isArray()) { - ArrayList list = new ArrayList<>(); - for (JsonValue jsonValue : value.asObject().get("value").asArray()) { - list.add(jsonValue.asString()); - } - metadataToUpdate.add(value.asObject().get("path").asString(), list); - } - } - return this.updateMetadata(metadataToUpdate); - } - - /** - * Gets the global properties metadata on this folder. - * - * @return the metadata returned from the server. - */ - public Metadata getMetadata() { - return this.getMetadata(Metadata.DEFAULT_METADATA_TYPE); - } - - /** - * Gets the metadata on this folder associated with a specified template. - * - * @param templateName the metadata template type name. - * @return the metadata returned from the server. - */ - public Metadata getMetadata(String templateName) { - String scope = Metadata.scopeBasedOnType(templateName); - return this.getMetadata(templateName, scope); - } - - /** - * Gets the metadata on this folder associated with a specified scope and template. - * - * @param templateName the metadata template type name. - * @param scope the scope of the template (usually "global" or "enterprise"). - * @return the metadata returned from the server. - */ - public Metadata getMetadata(String templateName, String scope) { - URL url = METADATA_URL_TEMPLATE.buildAlpha(this.getAPI().getBaseURL(), this.getID(), scope, templateName); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - return new Metadata(Json.parse(response.getJSON()).asObject()); - } - } - - /** - * Updates the folder metadata. - * - * @param metadata the new metadata values. - * @return the metadata returned from the server. - */ - public Metadata updateMetadata(Metadata metadata) { - URL url = METADATA_URL_TEMPLATE.buildAlpha(this.getAPI().getBaseURL(), this.getID(), metadata.getScope(), - metadata.getTemplateName()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT", APPLICATION_JSON_PATCH); - request.setBody(metadata.getPatch()); - try (BoxJSONResponse response = request.send()) { - return new Metadata(Json.parse(response.getJSON()).asObject()); - } - } - - /** - * Deletes the global properties metadata on this folder. - */ - public void deleteMetadata() { - this.deleteMetadata(Metadata.DEFAULT_METADATA_TYPE); - } - - /** - * Deletes the metadata on this folder associated with a specified template. - * - * @param templateName the metadata template type name. - */ - public void deleteMetadata(String templateName) { - String scope = Metadata.scopeBasedOnType(templateName); - this.deleteMetadata(templateName, scope); - } - - /** - * Deletes the metadata on this folder associated with a specified scope and template. - * - * @param templateName the metadata template type name. - * @param scope the scope of the template (usually "global" or "enterprise"). - */ - public void deleteMetadata(String templateName, String scope) { - URL url = METADATA_URL_TEMPLATE.buildAlpha(this.getAPI().getBaseURL(), this.getID(), scope, templateName); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "DELETE"); - request.send().close(); - } - - /** - * Adds a metadata classification to the specified file. - * - * @param classificationType the metadata classification type. - * @return the metadata classification type added to the file. - */ - public String addClassification(String classificationType) { - Metadata metadata = new Metadata().add(Metadata.CLASSIFICATION_KEY, classificationType); - Metadata classification = this.createMetadata(Metadata.CLASSIFICATION_TEMPLATE_KEY, - "enterprise", metadata); - - return classification.getString(Metadata.CLASSIFICATION_KEY); - } - - /** - * Updates a metadata classification on the specified file. - * - * @param classificationType the metadata classification type. - * @return the new metadata classification type updated on the file. - */ - public String updateClassification(String classificationType) { - Metadata metadata = new Metadata("enterprise", Metadata.CLASSIFICATION_TEMPLATE_KEY); - metadata.replace(Metadata.CLASSIFICATION_KEY, classificationType); - Metadata classification = this.updateMetadata(metadata); - - return classification.getString(Metadata.CLASSIFICATION_KEY); - } - - /** - * Attempts to add classification to a file. If classification already exists then do update. - * - * @param classificationType the metadata classification type. - * @return the metadata classification type on the file. - */ - public String setClassification(String classificationType) { - Metadata metadata = new Metadata().add(Metadata.CLASSIFICATION_KEY, classificationType); - Metadata classification; - - try { - classification = this.createMetadata(Metadata.CLASSIFICATION_TEMPLATE_KEY, "enterprise", metadata); - } catch (BoxAPIException e) { - if (e.getResponseCode() == 409) { - metadata = new Metadata("enterprise", Metadata.CLASSIFICATION_TEMPLATE_KEY); - metadata.replace(Metadata.CLASSIFICATION_KEY, classificationType); - classification = this.updateMetadata(metadata); - } else { - throw e; - } - } - - return classification.getString("/Box__Security__Classification__Key"); - } - - /** - * Gets the classification type for the specified file. - * - * @return the metadata classification type on the file. - */ - public String getClassification() { - Metadata metadata = this.getMetadata(Metadata.CLASSIFICATION_TEMPLATE_KEY); - return metadata.getString(Metadata.CLASSIFICATION_KEY); - } - - /** - * Deletes the classification on the file. - */ - public void deleteClassification() { - this.deleteMetadata(Metadata.CLASSIFICATION_TEMPLATE_KEY, "enterprise"); - } - - /** - * Creates an upload session to create a new file in chunks. - * This will first verify that the file can be created and then open a session for uploading pieces of the file. - * - * @param fileName the name of the file to be created - * @param fileSize the size of the file that will be uploaded - * @return the created upload session instance - */ - public BoxFileUploadSession.Info createUploadSession(String fileName, long fileSize) { - - URL url = UPLOAD_SESSION_URL_TEMPLATE.build(this.getAPI().getBaseUploadURL()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "POST"); - - JsonObject body = new JsonObject(); - body.add("folder_id", this.getID()); - body.add("file_name", fileName); - body.add("file_size", fileSize); - request.setBody(body.toString()); - - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - - String sessionId = jsonObject.get("id").asString(); - BoxFileUploadSession session = new BoxFileUploadSession(this.getAPI(), sessionId); - - return session.new Info(jsonObject); - } - } - - /** - * Creates a new file. - * - * @param inputStream the stream instance that contains the data. - * @param fileName the name of the file to be created. - * @param fileSize the size of the file that will be uploaded. - * @return the created file instance. - * @throws InterruptedException when a thread execution is interrupted. - * @throws IOException when reading a stream throws exception. - */ - public BoxFile.Info uploadLargeFile(InputStream inputStream, String fileName, long fileSize) - throws InterruptedException, IOException { - URL url = UPLOAD_SESSION_URL_TEMPLATE.build(this.getAPI().getBaseUploadURL()); - this.canUpload(fileName, fileSize); - return new LargeFileUpload(). - upload(this.getAPI(), this.getID(), inputStream, url, fileName, fileSize); - } - - /** - * Creates a new file. Also sets file attributes. - * - * @param inputStream the stream instance that contains the data. - * @param fileName the name of the file to be created. - * @param fileSize the size of the file that will be uploaded. - * @param fileAttributes file attributes to set - * @return the created file instance. - * @throws InterruptedException when a thread execution is interrupted. - * @throws IOException when reading a stream throws exception. - */ - public BoxFile.Info uploadLargeFile(InputStream inputStream, String fileName, long fileSize, - Map fileAttributes) - throws InterruptedException, IOException { - URL url = UPLOAD_SESSION_URL_TEMPLATE.build(this.getAPI().getBaseUploadURL()); - this.canUpload(fileName, fileSize); - return new LargeFileUpload(). - upload(this.getAPI(), this.getID(), inputStream, url, fileName, fileSize, fileAttributes); - } - - /** - * Creates a new file using specified number of parallel http connections. - * - * @param inputStream the stream instance that contains the data. - * @param fileName the name of the file to be created. - * @param fileSize the size of the file that will be uploaded. - * @param nParallelConnections number of parallel http connections to use - * @param timeOut time to wait before killing the job - * @param unit time unit for the time wait value - * @return the created file instance. - * @throws InterruptedException when a thread execution is interrupted. - * @throws IOException when reading a stream throws exception. - */ - public BoxFile.Info uploadLargeFile(InputStream inputStream, String fileName, long fileSize, - int nParallelConnections, long timeOut, TimeUnit unit) - throws InterruptedException, IOException { - URL url = UPLOAD_SESSION_URL_TEMPLATE.build(this.getAPI().getBaseUploadURL()); - this.canUpload(fileName, fileSize); - return new LargeFileUpload(nParallelConnections, timeOut, unit). - upload(this.getAPI(), this.getID(), inputStream, url, fileName, fileSize); - } - - /** - * Creates a new file using specified number of parallel http connections. Also sets file attributes. - * - * @param inputStream the stream instance that contains the data. - * @param fileName the name of the file to be created. - * @param fileSize the size of the file that will be uploaded. - * @param nParallelConnections number of parallel http connections to use - * @param timeOut time to wait before killing the job - * @param unit time unit for the time wait value - * @param fileAttributes file attributes to set - * @return the created file instance. - * @throws InterruptedException when a thread execution is interrupted. - * @throws IOException when reading a stream throws exception. - */ - public BoxFile.Info uploadLargeFile(InputStream inputStream, String fileName, long fileSize, - int nParallelConnections, long timeOut, TimeUnit unit, - Map fileAttributes) - throws InterruptedException, IOException { - URL url = UPLOAD_SESSION_URL_TEMPLATE.build(this.getAPI().getBaseUploadURL()); - this.canUpload(fileName, fileSize); - return new LargeFileUpload(nParallelConnections, timeOut, unit). - upload(this.getAPI(), this.getID(), inputStream, url, fileName, fileSize, fileAttributes); - } - - /** - * Creates a new Metadata Cascade Policy on a folder. - * - * @param scope the scope of the metadata cascade policy. - * @param templateKey the key of the template. - * @return information about the Metadata Cascade Policy. - */ - public BoxMetadataCascadePolicy.Info addMetadataCascadePolicy(String scope, String templateKey) { - - return BoxMetadataCascadePolicy.create(this.getAPI(), this.getID(), scope, templateKey); - } - - /** - * Retrieves all Metadata Cascade Policies on a folder. - * - * @param fields optional fields to retrieve for cascade policies. - * @return the Iterable of Box Metadata Cascade Policies in your enterprise. - */ - public Iterable getMetadataCascadePolicies(String... fields) { - return BoxMetadataCascadePolicy.getAll(this.getAPI(), this.getID(), fields); - } - - /** - * Retrieves all Metadata Cascade Policies on a folder. - * - * @param enterpriseID the ID of the enterprise to retrieve cascade policies for. - * @param limit the number of entries of cascade policies to retrieve. - * @param fields optional fields to retrieve for cascade policies. - * @return the Iterable of Box Metadata Cascade Policies in your enterprise. - */ - public Iterable getMetadataCascadePolicies(String enterpriseID, - int limit, String... fields) { - - return BoxMetadataCascadePolicy.getAll(this.getAPI(), this.getID(), enterpriseID, limit, fields); - } - - /** - * Lock this folder. - * - * @return a created folder lock object. - */ - public BoxFolderLock.Info lock() { - JsonObject folderObject = new JsonObject(); - folderObject.add("type", "folder"); - folderObject.add("id", this.getID()); - - JsonObject lockedOperations = new JsonObject(); - lockedOperations.add("move", true); - lockedOperations.add("delete", true); - - - JsonObject body = new JsonObject(); - body.add("folder", folderObject); - body.add("locked_operations", lockedOperations); - - BoxJSONRequest request = - new BoxJSONRequest(this.getAPI(), FOLDER_LOCK_URL_TEMPLATE.build(this.getAPI().getBaseURL()), - "POST"); - request.setBody(body.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - BoxFolderLock createdFolderLock = new BoxFolderLock(this.getAPI(), responseJSON.get("id").asString()); - return createdFolderLock.new Info(responseJSON); - } - } - - /** - * Get the lock on this folder. - * - * @return a folder lock object. - */ - public Iterable getLocks() { - String queryString = new QueryStringBuilder().appendParam("folder_id", this.getID()).toString(); - final BoxAPIConnection api = this.getAPI(); - return new BoxResourceIterable(api, - FOLDER_LOCK_URL_TEMPLATE.buildWithQuery(api.getBaseURL(), queryString), 100) { - @Override - protected BoxFolderLock.Info factory(JsonObject jsonObject) { - BoxFolderLock folderLock = - new BoxFolderLock(api, jsonObject.get("id").asString()); - return folderLock.new Info(jsonObject); - } - }; - } - - /** - * Used to specify what direction to sort and display results. - */ - public enum SortDirection { - /** - * ASC for ascending order. - */ - ASC, - - /** - * DESC for descending order. - */ - DESC - } - - /** - * Enumerates the possible sync states that a folder can have. - */ - public enum SyncState { - /** - * The folder is synced. - */ - SYNCED("synced"), - - /** - * The folder is not synced. - */ - NOT_SYNCED("not_synced"), - - /** - * The folder is partially synced. - */ - PARTIALLY_SYNCED("partially_synced"); - - private final String jsonValue; - - SyncState(String jsonValue) { - this.jsonValue = jsonValue; - } - - static SyncState fromJSONValue(String jsonValue) { - return SyncState.valueOf(jsonValue.toUpperCase(java.util.Locale.ROOT)); - } - - String toJSONValue() { - return this.jsonValue; - } - } - - /** - * Enumerates the possible permissions that a user can have on a folder. - */ - public enum Permission { - /** - * The user can download the folder. - */ - CAN_DOWNLOAD("can_download"), - - /** - * The user can upload to the folder. - */ - CAN_UPLOAD("can_upload"), - - /** - * The user can rename the folder. - */ - CAN_RENAME("can_rename"), - - /** - * The user can delete the folder. - */ - CAN_DELETE("can_delete"), - - /** - * The user can share the folder. - */ - CAN_SHARE("can_share"), - - /** - * The user can invite collaborators to the folder. - */ - CAN_INVITE_COLLABORATOR("can_invite_collaborator"), - - /** - * The user can set the access level for shared links to the folder. - */ - CAN_SET_SHARE_ACCESS("can_set_share_access"); - - private final String jsonValue; - - Permission(String jsonValue) { - this.jsonValue = jsonValue; - } - - static Permission fromJSONValue(String jsonValue) { - return Permission.valueOf(jsonValue.toUpperCase(java.util.Locale.ROOT)); - } - - String toJSONValue() { - return this.jsonValue; - } - } - - /** - * Contains information about a BoxFolder. - */ - public class Info extends BoxItem.Info { - private BoxUploadEmail uploadEmail; - private boolean hasCollaborations; - private SyncState syncState; - private EnumSet permissions; - private boolean canNonOwnersInvite; - private boolean isWatermarked; - private boolean isCollaborationRestrictedToEnterprise; - private boolean isExternallyOwned; - private Map> metadataMap; - private List allowedSharedLinkAccessLevels; - private List allowedInviteeRoles; - private BoxClassification classification; - - private boolean isAccessibleViaSharedLink; - private boolean canNonOwnersViewCollaborators; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - public Info(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the upload email for the folder. - * - * @return the upload email for the folder. - */ - public BoxUploadEmail getUploadEmail() { - return this.uploadEmail; - } - - /** - * Sets the upload email for the folder. - * - * @param uploadEmail the upload email for the folder. - */ - public void setUploadEmail(BoxUploadEmail uploadEmail) { - if (this.uploadEmail == uploadEmail) { - return; - } - - this.removeChildObject("folder_upload_email"); - this.uploadEmail = uploadEmail; - - if (uploadEmail == null) { - this.addPendingChange("folder_upload_email", (String) null); - } else { - this.addChildObject("folder_upload_email", uploadEmail); - } - } - - /** - * Gets whether or not the folder has any collaborations. - * - * @return true if the folder has collaborations; otherwise false. - */ - public boolean getHasCollaborations() { - return this.hasCollaborations; - } - - /** - * Gets the sync state of the folder. - * - * @return the sync state of the folder. - */ - public SyncState getSyncState() { - return this.syncState; - } - - /** - * Sets the sync state of the folder. - * - * @param syncState the sync state of the folder. - */ - public void setSyncState(SyncState syncState) { - this.syncState = syncState; - this.addPendingChange("sync_state", syncState.toJSONValue()); - } - - /** - * Gets the permissions that the current user has on the folder. - * - * @return the permissions that the current user has on the folder. - */ - public EnumSet getPermissions() { - return this.permissions; - } - - /** - * Gets whether or not the non-owners can invite collaborators to the folder. - * - * @return [description] - */ - public boolean getCanNonOwnersInvite() { - return this.canNonOwnersInvite; - } - - /** - * Sets whether or not non-owners can invite collaborators to the folder. - * - * @param canNonOwnersInvite indicates non-owners can invite collaborators to the folder. - */ - public void setCanNonOwnersInvite(boolean canNonOwnersInvite) { - this.canNonOwnersInvite = canNonOwnersInvite; - this.addPendingChange("can_non_owners_invite", canNonOwnersInvite); - } - - /** - * Gets whether future collaborations should be restricted to within the enterprise only. - * - * @return indicates whether collaboration is restricted to enterprise only. - */ - public boolean getIsCollaborationRestrictedToEnterprise() { - return this.isCollaborationRestrictedToEnterprise; - } - - /** - * Sets whether future collaborations should be restricted to within the enterprise only. - * - * @param isRestricted indicates whether there is collaboration restriction within enterprise. - */ - public void setIsCollaborationRestrictedToEnterprise(boolean isRestricted) { - this.isCollaborationRestrictedToEnterprise = isRestricted; - this.addPendingChange("is_collaboration_restricted_to_enterprise", isRestricted); - } - - /** - * Retrieves the allowed roles for collaborations. - * - * @return the roles allowed for collaboration. - */ - public List getAllowedInviteeRoles() { - return this.allowedInviteeRoles; - } - - /** - * Retrieves the allowed access levels for a shared link. - * - * @return the allowed access levels for a shared link. - */ - public List getAllowedSharedLinkAccessLevels() { - return this.allowedSharedLinkAccessLevels; - } - - /** - * Gets flag indicating whether this file is Watermarked. - * - * @return whether the file is watermarked or not - */ - public boolean getIsWatermarked() { - return this.isWatermarked; - } - - /** - * Gets the metadata on this folder associated with a specified scope and template. - * Makes an attempt to get metadata that was retrieved using getInfo(String ...) method. - * - * @param templateName the metadata template type name. - * @param scope the scope of the template (usually "global" or "enterprise"). - * @return the metadata returned from the server. - */ - public Metadata getMetadata(String templateName, String scope) { - try { - return this.metadataMap.get(scope).get(templateName); - } catch (NullPointerException e) { - return null; - } - } - - /** - * Get the field is_externally_owned determining whether this folder is owned by a user outside of the - * enterprise. - * - * @return a boolean indicating whether this folder is owned by a user outside the enterprise. - */ - public boolean getIsExternallyOwned() { - return this.isExternallyOwned; - } - - /** - * Gets the metadata classification type of this folder. - * - * @return the metadata classification type of this folder. - */ - public BoxClassification getClassification() { - return this.classification; - } - - /** - * Returns the flag indicating whether the folder is accessible via a shared link. - * - * @return boolean flag indicating whether the folder is accessible via a shared link. - */ - public boolean getIsAccessibleViaSharedLink() { - return this.isAccessibleViaSharedLink; - } - - /** - * Returns the flag indicating if collaborators who are not owners of this folder - * are restricted from viewing other collaborations on this folder. - * - * @return boolean flag indicating if collaborators who are not owners of this folder - * are restricted from viewing other collaborations on this folder. - */ - public boolean getCanNonOwnersViewCollaborators() { - return this.canNonOwnersViewCollaborators; - } - - /** - * Sets whether collaborators who are not owners of this folder - * are restricted from viewing other collaborations on this folder. - * - * @param canNonOwnersViewCollaborators indicates if collaborators who are not owners of this folder - * are restricted from viewing other collaborations on this folderr. - */ - public void setCanNonOwnersViewCollaborators(boolean canNonOwnersViewCollaborators) { - this.canNonOwnersViewCollaborators = canNonOwnersViewCollaborators; - this.addPendingChange("can_non_owners_view_collaborators", canNonOwnersViewCollaborators); - } - - - @Override - public BoxFolder getResource() { - return BoxFolder.this; - } - - @Override - protected void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - switch (memberName) { - case "folder_upload_email": - if (this.uploadEmail == null) { - this.uploadEmail = new BoxUploadEmail(value.asObject()); - } else { - this.uploadEmail.update(value.asObject()); - } - break; - case "has_collaborations": - this.hasCollaborations = value.asBoolean(); - break; - case "sync_state": - this.syncState = SyncState.fromJSONValue(value.asString()); - break; - case "permissions": - this.permissions = this.parsePermissions(value.asObject()); - break; - case "can_non_owners_invite": - this.canNonOwnersInvite = value.asBoolean(); - break; - case "allowed_shared_link_access_levels": - this.allowedSharedLinkAccessLevels = this.parseSharedLinkAccessLevels(value.asArray()); - break; - case "allowed_invitee_roles": - this.allowedInviteeRoles = this.parseAllowedInviteeRoles(value.asArray()); - break; - case "is_collaboration_restricted_to_enterprise": - this.isCollaborationRestrictedToEnterprise = value.asBoolean(); - break; - case "is_externally_owned": - this.isExternallyOwned = value.asBoolean(); - break; - case "watermark_info": - this.isWatermarked = value.asObject().get("is_watermarked").asBoolean(); - break; - case "metadata": - this.metadataMap = Parsers.parseAndPopulateMetadataMap(value.asObject()); - break; - case "classification": - if (value.isNull()) { - this.classification = null; - } else { - this.classification = new BoxClassification(value.asObject()); - } - break; - case "is_accessible_via_shared_link": - this.isAccessibleViaSharedLink = value.asBoolean(); - break; - case "can_non_owners_view_collaborators": - this.canNonOwnersViewCollaborators = value.asBoolean(); - break; - default: - break; - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - - private EnumSet parsePermissions(JsonObject jsonObject) { - EnumSet permissions = EnumSet.noneOf(Permission.class); - for (JsonObject.Member member : jsonObject) { - JsonValue value = member.getValue(); - if (value.isNull() || !value.asBoolean()) { - continue; - } - - try { - permissions.add(BoxFolder.Permission.fromJSONValue(member.getName())); - } catch (IllegalArgumentException ignored) { - // If the permission is not recognized, we ignore it. - } - } - - return permissions; - } - - private List parseSharedLinkAccessLevels(JsonArray jsonArray) { - List accessLevels = new ArrayList<>(jsonArray.size()); - for (JsonValue value : jsonArray) { - accessLevels.add(value.asString()); - } - - return accessLevels; - } - - private List parseAllowedInviteeRoles(JsonArray jsonArray) { - List roles = new ArrayList<>(jsonArray.size()); - for (JsonValue value : jsonArray) { - roles.add(value.asString()); - } - - return roles; - } - } -} diff --git a/src/main/java/com/box/sdk/BoxFolderLock.java b/src/main/java/com/box/sdk/BoxFolderLock.java deleted file mode 100644 index 8900968c6..000000000 --- a/src/main/java/com/box/sdk/BoxFolderLock.java +++ /dev/null @@ -1,174 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -/** - * Represents a lock on a folder. - * - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly.

    - */ -@BoxResourceType("folder_lock") -public class BoxFolderLock extends BoxResource { - /** - * Delete Folder Locks URL Template. - */ - public static final URLTemplate DELETE_FOLDER_LOCK_URL_TEMPLATE = new URLTemplate("folder_locks/%s"); - - /** - * Constructs a BoxFolderLock with a given ID. - * - * @param api the API connection to be used by the folder lock. - * @param id the ID of the folder lock. - */ - public BoxFolderLock(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Delete the lock on this folder. - */ - public void delete() { - URL url = DELETE_FOLDER_LOCK_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "DELETE"); - request.send().close(); - } - - /** - * Contains information about a BoxFolderLock. - */ - public class Info extends BoxResource.Info { - private BoxFolder.Info folder; - private BoxUser.Info createdBy; - private Date createdAt; - private String lockType; - private Map lockedOperations; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - Info(JsonObject jsonObject) { - super(jsonObject); - } - - @Override - public BoxResource getResource() { - return BoxFolderLock.this; - } - - /** - * Gets the folder that the lock applies to. - * - * @return The folder that the lock applies to. - */ - public BoxFolder.Info getFolder() { - return this.folder; - } - - /** - * Gets the user or group that created the lock. - * - * @return the user or group that created the lock. - */ - public BoxUser.Info getCreatedBy() { - return this.createdBy; - } - - /** - * Gets the date the folder lock object was created. - * - * @return the date the folder lock object was created. - */ - public Date getCreatedAt() { - return this.createdAt; - } - - /** - * Gets the lock type, always freeze. - * - * @return the lock type, always freeze. - */ - public String getLockType() { - return this.lockType; - } - - /** - * Gets the operations that have been locked. - * - * @return the operations that have been locked. - */ - public Map getLockedOperations() { - return this.lockedOperations; - } - - /** - * {@inheritDoc} - */ - @Override - protected void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - - String memberName = member.getName(); - JsonValue value = member.getValue(); - - try { - if (memberName.equals("folder")) { - JsonObject folderJSON = value.asObject(); - String folderID = folderJSON.get("id").asString(); - BoxFolder folder = new BoxFolder(getAPI(), folderID); - this.folder = folder.new Info(folderJSON); - } else if (memberName.equals("created_by")) { - JsonObject userJSON = value.asObject(); - if (this.createdBy == null) { - String userID = userJSON.get("id").asString(); - BoxUser user = new BoxUser(getAPI(), userID); - this.createdBy = user.new Info(userJSON); - } else { - this.createdBy.update(userJSON); - } - } else if (memberName.equals("created_at")) { - this.createdAt = BoxDateFormat.parse(value.asString()); - - } else if (memberName.equals("lock_type")) { - this.lockType = value.asString(); - - } else if (memberName.equals("locked_operations")) { - JsonObject lockedOperationsJSON = value.asObject(); - Map operationsMap = new HashMap<>(); - for (JsonObject.Member operationMember : lockedOperationsJSON) { - String operation = operationMember.getName(); - Boolean operationBoolean = operationMember.getValue().asBoolean(); - operationsMap.put(operation, operationBoolean); - } - this.lockedOperations = operationsMap; - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - } -} diff --git a/src/main/java/com/box/sdk/BoxGlobalSettings.java b/src/main/java/com/box/sdk/BoxGlobalSettings.java deleted file mode 100644 index 3ddc03346..000000000 --- a/src/main/java/com/box/sdk/BoxGlobalSettings.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.box.sdk; - -/** - * Global settings to apply to all API requests. - */ -public final class BoxGlobalSettings { - private static int connectTimeout = 0; - private static int readTimeout = 0; - private static int maxRetryAttempts = BoxAPIConnection.DEFAULT_MAX_RETRIES; - private static boolean useZstdCompression = true; - - private BoxGlobalSettings() { - } - - /** - * Returns the current global connect timeout. - * - * @return connect timeout - */ - public static int getConnectTimeout() { - return connectTimeout; - } - - /** - * Sets the global connect timeout. - * - * @param connectTimeout timeout in milliseconds - */ - public static void setConnectTimeout(int connectTimeout) { - BoxGlobalSettings.connectTimeout = connectTimeout; - } - - /** - * Returns the current global read timeout. - * - * @return read timeout - */ - public static int getReadTimeout() { - return readTimeout; - } - - /** - * Sets the global read timeout. - * - * @param readTimeout timeout in milliseconds - */ - public static void setReadTimeout(int readTimeout) { - BoxGlobalSettings.readTimeout = readTimeout; - } - - - /** - * Returns the global maximum number of times an API request will be retried after an error response - * is received. - * - * @return max number of request attempts - */ - public static int getMaxRetryAttempts() { - return maxRetryAttempts; - } - - /** - * Sets the global maximum number of times an API request will be retried after an error response - * is received. - * - * @param attempts maximum number of request attempts - */ - public static void setMaxRetryAttempts(int attempts) { - BoxGlobalSettings.maxRetryAttempts = attempts; - } - - /* - * Returns the global settings for using Zstd compression. - * @return true if Zstd compression is enabled, false otherwise - */ - public static boolean getUseZstdCompression() { - return useZstdCompression; - } - - /* - * Sets the global settings for using Zstd compression. - * @param useZstdCompression true to enable Zstd compression, false otherwise - */ - public static void setUseZstdCompression(boolean useZstdCompression) { - BoxGlobalSettings.useZstdCompression = useZstdCompression; - } -} diff --git a/src/main/java/com/box/sdk/BoxGroup.java b/src/main/java/com/box/sdk/BoxGroup.java deleted file mode 100644 index 5b38413f4..000000000 --- a/src/main/java/com/box/sdk/BoxGroup.java +++ /dev/null @@ -1,556 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.BoxGroupMembership.Permission; -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Map; - -/** - * Represents a set of Box users. - * - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly.

    - */ -@BoxResourceType("group") -public class BoxGroup extends BoxCollaborator { - - /** - * @see #getAllGroups(BoxAPIConnection, String...) - */ - public static final URLTemplate GROUPS_URL_TEMPLATE = new URLTemplate("groups"); - - /** - * @see #getInfo(String...) - */ - public static final URLTemplate GROUP_URL_TEMPLATE = new URLTemplate("groups/%s"); - - /** - * @see #getMemberships() - */ - public static final URLTemplate MEMBERSHIPS_URL_TEMPLATE = new URLTemplate("groups/%s/memberships"); - - /** - * @see #addMembership(BoxUser) - */ - public static final URLTemplate ADD_MEMBERSHIP_URL_TEMPLATE = new URLTemplate("group_memberships"); - - /** - * @see #getCollaborations() - */ - public static final URLTemplate COLLABORATIONS_URL_TEMPLATE = new URLTemplate("groups/%s/collaborations"); - - /** - * Constructs a BoxGroup for a group with a given ID. - * - * @param api the API connection to be used by the group. - * @param id the ID of the group. - */ - public BoxGroup(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Creates a new group with a specified name. - * - * @param api the API connection to be used by the group. - * @param name the name of the new group. - * @return info about the created group. - */ - public static BoxGroup.Info createGroup(BoxAPIConnection api, String name) { - return createGroup(api, name, null, null, null, null, null); - } - - /** - * Creates a new group with a specified name. - * - * @param api the API connection to be used by the group. - * @param name the name of the new group. - * @param provenance the provenance of the new group - * @param externalSyncIdentifier the external_sync_identifier of the new group - * @param description the description of the new group - * @param invitabilityLevel the invitibility_level of the new group - * @param memberViewabilityLevel the member_viewability_level of the new group - * @return info about the created group. - */ - public static BoxGroup.Info createGroup(BoxAPIConnection api, String name, String provenance, - String externalSyncIdentifier, String description, - String invitabilityLevel, String memberViewabilityLevel) { - JsonObject requestJSON = new JsonObject(); - requestJSON.add("name", name); - - if (provenance != null) { - requestJSON.add("provenance", provenance); - } - if (externalSyncIdentifier != null) { - requestJSON.add("external_sync_identifier", externalSyncIdentifier); - } - if (description != null) { - requestJSON.add("description", description); - } - if (invitabilityLevel != null) { - requestJSON.add("invitability_level", invitabilityLevel); - } - if (memberViewabilityLevel != null) { - requestJSON.add("member_viewability_level", memberViewabilityLevel); - } - - URL url = GROUPS_URL_TEMPLATE.build(api.getBaseURL()); - BoxJSONRequest request = new BoxJSONRequest(api, url, "POST"); - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - BoxGroup group = new BoxGroup(api, responseJSON.get("id").asString()); - return group.new Info(responseJSON); - } - } - - /** - * Gets an iterable of all the groups in the enterprise. - * - * @param api the API connection to be used when retrieving the groups. - * @return an iterable containing info about all the groups. - */ - public static Iterable getAllGroups(final BoxAPIConnection api) { - return () -> { - URL url = GROUPS_URL_TEMPLATE.build(api.getBaseURL()); - return new BoxGroupIterator(api, url); - }; - } - - /** - * Gets an iterable of all the groups in the enterprise. - * - * @param api the API connection to be used when retrieving the groups. - * @param fields the fields to retrieve. - * @return an iterable containing info about all the groups. - */ - public static Iterable getAllGroups(final BoxAPIConnection api, String... fields) { - final QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - return () -> { - URL url = GROUPS_URL_TEMPLATE.buildWithQuery(api.getBaseURL(), builder.toString()); - return new BoxGroupIterator(api, url); - }; - } - - /** - * Gets an iterable of all the groups in the enterprise that are starting with the given name string. - * - * @param api the API connection to be used when retrieving the groups. - * @param name the name prefix of the groups. If the groups need to searched by full name that has spaces, - * then the parameter string should have been wrapped with "". - * @param fields the fields to retrieve. - * @return an iterable containing info about all the groups. - */ - public static Iterable getAllGroupsByName( - final BoxAPIConnection api, String name, String... fields - ) { - final QueryStringBuilder builder = new QueryStringBuilder(); - if (name == null || name.trim().isEmpty()) { - throw new BoxAPIException("Searching groups by name requires a non NULL or non empty name"); - } else { - builder.appendParam("filter_term", name); - if (fields != null && fields.length > 0) { - builder.appendParam("fields", fields); - } - } - - return () -> { - URL url = GROUPS_URL_TEMPLATE.buildWithQuery(api.getBaseURL(), builder.toString()); - return new BoxGroupIterator(api, url); - }; - } - - /** - * Gets information about this group. - * - * @param fields the fields to retrieve. - * @return info about this group. - */ - public Info getInfo(String... fields) { - URL url = GROUP_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - if (fields.length > 0) { - QueryStringBuilder builder = new QueryStringBuilder().appendParam("fields", fields); - url = GROUP_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), builder.toString(), this.getID()); - } - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - return new Info(responseJSON); - } - } - - /** - * Gets information about all of the group memberships for this group. - * Does not support paging. - * - * @return a collection of information about the group memberships for this group. - */ - public Collection getMemberships() { - final BoxAPIConnection api = this.getAPI(); - final String groupID = this.getID(); - - Iterable iter = () -> { - URL url = MEMBERSHIPS_URL_TEMPLATE.build(api.getBaseURL(), groupID); - return new BoxGroupMembershipIterator(api, url); - }; - - // We need to iterate all results because this method must return a Collection. This logic should be removed in - // the next major version, and instead return the Iterable directly. - Collection memberships = new ArrayList<>(); - for (BoxGroupMembership.Info membership : iter) { - memberships.add(membership); - } - return memberships; - } - - /** - * Gets information about all of the group memberships for this group as iterable with paging support. - * - * @param fields the fields to retrieve. - * @return an iterable with information about the group memberships for this group. - */ - public Iterable getAllMemberships(String... fields) { - final QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - return () -> { - URL url = MEMBERSHIPS_URL_TEMPLATE.buildWithQuery( - BoxGroup.this.getAPI().getBaseURL(), builder.toString(), BoxGroup.this.getID()); - return new BoxGroupMembershipIterator(BoxGroup.this.getAPI(), url); - }; - } - - /** - * Adds a member to this group with the default role. - * - * @param user the member to be added to this group. - * @return info about the new group membership. - */ - public BoxGroupMembership.Info addMembership(BoxUser user) { - return this.addMembership(user, null, null); - } - - /** - * Adds a member to this group with the specified role. - * - * @param user the member to be added to this group. - * @param role the role of the user in this group. Can be null to assign the default role. - * @return info about the new group membership. - */ - public BoxGroupMembership.Info addMembership(BoxUser user, BoxGroupMembership.GroupRole role) { - return this.addMembership(user, role, null); - } - - /** - * Adds a member to this group with the specified role. - * - * @param user the member to be added to this group. - * @param role the role of the user in this group. Can be null to assign the default role. - * @param configurablePermissions the configurable permission of the user as a group admin. - * Can be null to give all group admin permissions. - * @return info about the new group membership. - */ - public BoxGroupMembership.Info addMembership(BoxUser user, BoxGroupMembership.GroupRole role, - Map configurablePermissions) { - BoxAPIConnection api = this.getAPI(); - - JsonObject requestJSON = new JsonObject(); - requestJSON.add("user", new JsonObject().add("id", user.getID())); - requestJSON.add("group", new JsonObject().add("id", this.getID())); - if (role != null) { - requestJSON.add("role", role.toJSONString()); - } - - if (configurablePermissions != null) { - JsonObject configurablePermissionJson = new JsonObject(); - for (Permission attrKey : configurablePermissions.keySet()) { - configurablePermissionJson.set(attrKey.toJSONValue(), configurablePermissions.get(attrKey)); - } - requestJSON.add("configurable_permissions", configurablePermissionJson); - } - - URL url = ADD_MEMBERSHIP_URL_TEMPLATE.build(api.getBaseURL()); - BoxJSONRequest request = new BoxJSONRequest(api, url, "POST"); - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - BoxGroupMembership membership = new BoxGroupMembership(api, responseJSON.get("id").asString()); - return membership.new Info(responseJSON); - } - } - - /** - * Gets information about all of the collaborations for this group. - * - * @return a collection of information about the collaborations for this group. - */ - public Collection getCollaborations() { - BoxAPIConnection api = this.getAPI(); - URL url = COLLABORATIONS_URL_TEMPLATE.build(api.getBaseURL(), this.getID()); - - BoxJSONRequest request = new BoxJSONRequest(api, url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - int entriesCount = responseJSON.get("total_count").asInt(); - Collection collaborations = new ArrayList<>(entriesCount); - JsonArray entries = responseJSON.get("entries").asArray(); - for (JsonValue entry : entries) { - JsonObject entryObject = entry.asObject(); - BoxCollaboration collaboration = new BoxCollaboration(api, entryObject.get("id").asString()); - BoxCollaboration.Info info = collaboration.new Info(entryObject); - collaborations.add(info); - } - - return collaborations; - } - } - - /** - * Gets information about all of the collaborations for this group. - * - * @param fields the optional fields to retrieve. - * @return An iterable of BoxCollaboration.Info instances associated with the item. - */ - public Iterable getAllCollaborations(String... fields) { - final BoxAPIConnection api = this.getAPI(); - final QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - return () -> { - URL url = COLLABORATIONS_URL_TEMPLATE.buildWithQuery(api.getBaseURL(), builder.toString(), - BoxGroup.this.getID()); - return new BoxCollaborationIterator(api, url); - }; - } - - /** - * Deletes this group. - */ - public void delete() { - URL url = GROUP_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "DELETE"); - request.send().close(); - } - - /** - * Updates the information about this group with any info fields that have been modified locally. - * - * @param info the updated info. - */ - public void updateInfo(BoxGroup.Info info) { - URL url = GROUP_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - request.setBody(info.getPendingChanges()); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - info.update(jsonObject); - } - } - - /** - * Contains information about a BoxGroup. - */ - public class Info extends BoxCollaborator.Info { - - /** - * @see #getProvenance() - */ - private String provenance; - - /** - * @see #getExternalSyncIdentifier() - */ - private String externalSyncIdentifier; - - /** - * @see #getDescription() - */ - private String description; - - /** - * @see #getInvitabilityLevel() - */ - private String invitabilityLevel; - - /** - * @see #getMemberViewabilityLevel() - */ - private String memberViewabilityLevel; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - Info(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * {@inheritDoc} - */ - @Override - public BoxGroup getResource() { - return BoxGroup.this; - } - - /** - * {@inheritDoc} - */ - @Override - protected void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - switch (memberName) { - case "description": - this.description = value.asString(); - break; - case "external_sync_identifier": - this.externalSyncIdentifier = value.asString(); - break; - case "invitability_level": - this.invitabilityLevel = value.asString(); - break; - case "member_viewability_level": - this.memberViewabilityLevel = value.asString(); - break; - case "provenance": - this.provenance = value.asString(); - break; - default: - break; - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - - /** - * Gets the description for the group. - * - * @return the description for the group. - */ - public String getDescription() { - return this.description; - } - - /** - * Sets the description for the group. - * - * @param description the description for the group. - */ - public void setDescription(String description) { - this.description = description; - addPendingChange("description", description); - } - - /** - * Gets the external_sync_identifier for the group. - * - * @return the external_sync_identifier for the group. - */ - public String getExternalSyncIdentifier() { - return this.externalSyncIdentifier; - } - - /** - * Sets the external_sync_identifier for the group. - * - * @param externalSyncIdentifier the external_sync_identifier for the group. - */ - public void setExternalSyncIdentifier(String externalSyncIdentifier) { - this.externalSyncIdentifier = externalSyncIdentifier; - addPendingChange("external_sync_identifier", externalSyncIdentifier); - } - - /** - * Gets the invitability_level for the group. - * - * @return the invitability_level for the group. - */ - public String getInvitabilityLevel() { - return this.invitabilityLevel; - } - - /** - * Sets the invitability_level for the group. - * - * @param invitabilityLevel the invitability_level for the group. - */ - public void setInvitabilityLevel(String invitabilityLevel) { - this.invitabilityLevel = invitabilityLevel; - addPendingChange("invitability_level", invitabilityLevel); - } - - /** - * Gets the member_viewability_level for the group. - * - * @return the member_viewability_level for the group. - */ - public String getMemberViewabilityLevel() { - return this.memberViewabilityLevel; - } - - /** - * Sets the member_viewability_level for the group. - * - * @param memberViewabilityLevel the member_viewability_level for the group. - */ - public void setMemberViewabilityLevel(String memberViewabilityLevel) { - this.memberViewabilityLevel = memberViewabilityLevel; - addPendingChange("member_viewability_level", memberViewabilityLevel); - } - - /** - * Gets the provenance for the group. - * - * @return the provenance for the group. - */ - public String getProvenance() { - return this.provenance; - } - - /** - * Sets the provenance for the group. - * - * @param provenance the provenance for the group. - */ - public void setProvenance(String provenance) { - this.provenance = provenance; - addPendingChange("provenance", provenance); - } - } -} diff --git a/src/main/java/com/box/sdk/BoxGroupIterator.java b/src/main/java/com/box/sdk/BoxGroupIterator.java deleted file mode 100644 index 12be2f595..000000000 --- a/src/main/java/com/box/sdk/BoxGroupIterator.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.PagingParameters.offset; - -import com.eclipsesource.json.JsonObject; -import java.net.URL; -import java.util.Iterator; - -class BoxGroupIterator implements Iterator { - private static final long LIMIT = 1000; - - private final BoxAPIConnection api; - private final JsonIterator jsonIterator; - - BoxGroupIterator(BoxAPIConnection api, URL url) { - this.api = api; - this.jsonIterator = new JsonIterator(api, url, offset(0, LIMIT)); - } - - public boolean hasNext() { - return this.jsonIterator.hasNext(); - } - - public BoxGroup.Info next() { - JsonObject nextJSONObject = this.jsonIterator.next(); - String id = nextJSONObject.get("id").asString(); - - BoxGroup group = new BoxGroup(this.api, id); - return group.new Info(nextJSONObject); - } - - public void remove() { - throw new UnsupportedOperationException(); - } -} diff --git a/src/main/java/com/box/sdk/BoxGroupMembership.java b/src/main/java/com/box/sdk/BoxGroupMembership.java deleted file mode 100644 index 2c598df8a..000000000 --- a/src/main/java/com/box/sdk/BoxGroupMembership.java +++ /dev/null @@ -1,424 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -/** - * Represents a relationship between a user and a group. - * - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly.

    - */ -@BoxResourceType("group_membership") -public class BoxGroupMembership extends BoxResource { - - /** - * The URL template for all group membership requests. - * - * @see #getInfo() - */ - public static final URLTemplate MEMBERSHIP_URL_TEMPLATE = new URLTemplate("group_memberships/%s"); - - /** - * Constructs a BoxGroupMembership for a group membership with a given ID. - * - * @param api the API connection to be used by the group membership. - * @param id the ID of the group membership. - */ - public BoxGroupMembership(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Gets information about this group membership. - * - * @return info about this group membership. - */ - public Info getInfo() { - BoxAPIConnection api = this.getAPI(); - URL url = MEMBERSHIP_URL_TEMPLATE.build(api.getBaseURL(), this.getID()); - - BoxJSONRequest request = new BoxJSONRequest(api, url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - return new Info(jsonObject); - } - } - - /** - * Updates the information about this group membership with any info fields that have been modified locally. - * - * @param info the updated info. - */ - public void updateInfo(Info info) { - BoxAPIConnection api = this.getAPI(); - URL url = MEMBERSHIP_URL_TEMPLATE.build(api.getBaseURL(), this.getID()); - - BoxJSONRequest request = new BoxJSONRequest(api, url, "PUT"); - request.setBody(info.getPendingChanges()); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - info.update(jsonObject); - } - } - - /** - * Deletes this group membership. - */ - public void delete() { - BoxAPIConnection api = this.getAPI(); - URL url = MEMBERSHIP_URL_TEMPLATE.build(api.getBaseURL(), this.getID()); - - BoxAPIRequest request = new BoxAPIRequest(api, url, "DELETE"); - request.send().close(); - } - - /** - * Enumerates the possible roles that a user can have within a group. - */ - public enum GroupRole { - /** - * The user is an administrator in the group. - */ - ADMIN("admin"), - - /** - * The user is a regular member in the group. - */ - MEMBER("member"); - - /** - * String representation of the groupRole. - */ - private final String jsonValue; - - /** - * Constructor. - * - * @param jsonValue string representation of the role. - */ - GroupRole(String jsonValue) { - this.jsonValue = jsonValue; - } - - /** - * Creates the groupRole from given string. - * - * @param jsonValue string to be converted to role. - * @return the role, created from string value. - */ - static GroupRole fromJSONString(String jsonValue) { - for (GroupRole role : GroupRole.values()) { - if (role.jsonValue.equalsIgnoreCase(jsonValue)) { - return role; - } - } - throw new IllegalArgumentException("Invalid value for enum GroupRole: " + jsonValue); - } - - /** - * @return string representation of the groupRole. - */ - String toJSONString() { - return this.jsonValue; - } - } - - /** - * Enumerates the possible permissions that a user can have as a group admin. - */ - public enum Permission { - /** - * The user can create accounts. - */ - CAN_CREATE_ACCOUNTS("can_create_accounts"), - - /** - * The user can edit accounts. - */ - CAN_EDIT_ACCOUNTS("can_edit_accounts"), - - /** - * The user can instant login as another user. - */ - CAN_INSTANT_LOGIN("can_instant_login"), - - /** - * The user can run reports. - */ - CAN_RUN_REPORTS("can_run_reports"); - - private final String jsonValue; - - Permission(String jsonValue) { - this.jsonValue = jsonValue; - } - - static Permission fromJSONValue(String jsonValue) { - return Permission.valueOf(jsonValue.toUpperCase(java.util.Locale.ROOT)); - } - - String toJSONValue() { - return this.jsonValue; - } - } - - /** - * Contains information about a BoxGroupMembership. - */ - public class Info extends BoxResource.Info { - - /** - * @see #getUser() - */ - private BoxUser.Info user; - - /** - * @see #getGroup() - */ - private BoxGroup.Info group; - - /** - * @see #getGroupRole() - */ - private GroupRole groupRole; - - /** - * @see #getCreatedAt() - */ - private Date createdAt; - - /** - * @see #getModifiedAt() - */ - private Date modifiedAt; - - /** - * @see #getConfigurablePermissions() - */ - private Map configurablePermissions; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - Info(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the user belonging to the group. - * - *

    Note: the BoxUser.Info returned by this method will only have the ID, name, and login fields - * populated.

    - * - * @return the user belonging to the group. - */ - public BoxUser.Info getUser() { - return this.user; - } - - /** - * Gets the group the user belongs to. - * - *

    Note: the BoxGroup.Info returned by this method will only have the ID and name fields populated.

    - * - * @return the group the user belongs to. - */ - public BoxGroup.Info getGroup() { - return this.group; - } - - /** - * Gets the level of access the user has. - * - * @return the level of access the user has. - */ - public GroupRole getGroupRole() { - return this.groupRole; - } - - /** - * Sets the level of access the user has. - * - * @param role the new level of access to give the user. - */ - public void setGroupRole(GroupRole role) { - this.groupRole = role; - this.addPendingChange("role", role.toJSONString()); - } - - /** - * Gets the time the group membership was created. - * - * @return the time the group membership was created. - */ - public Date getCreatedAt() { - return this.createdAt; - } - - /** - * Gets the time the group membership was last modified. - * - * @return the time the group membership was last modified. - */ - public Date getModifiedAt() { - return this.modifiedAt; - } - - /** - * Gets the configurablePermissions that the current user has on the group as group admin. - * - * @return the configurablePermissions that the current user has on the group as group admin. - */ - public Map getConfigurablePermissions() { - return this.configurablePermissions; - } - - /** - * Sets the configurablePermissions that the current user has on the group as group admin. - * - * @param configurablePermissions a Map representing the group admin configurable permissions - */ - public void setConfigurablePermissions(Map configurablePermissions) { - this.configurablePermissions = configurablePermissions; - this.addPendingChange("configurable_permissions", this.configurablePermissionJson()); - } - - /** - * append new configurable permissions to the previous existing list. - * - * @param permission the group admin permission one wants to enable or disable of the user on the group. - * @param value the true/false value of the attribute to set. - */ - public void appendConfigurablePermissions(Permission permission, Boolean value) { - this.configurablePermissions.put(permission, value); - this.addPendingChange("configurable_permissions", this.configurablePermissionJson()); - } - - private JsonObject configurablePermissionJson() { - JsonObject configurablePermissionJson = new JsonObject(); - for (Permission attrKey : this.configurablePermissions.keySet()) { - configurablePermissionJson.set(attrKey.toJSONValue(), this.configurablePermissions.get(attrKey)); - } - return configurablePermissionJson; - } - - /** - * {@inheritDoc} - */ - @Override - public BoxGroupMembership getResource() { - return BoxGroupMembership.this; - } - - private Map parseConfigurablePermissions(JsonObject jsonObject) { - if (jsonObject == null) { - return null; - } - Map permissions = new HashMap<>(); - for (JsonObject.Member member : jsonObject) { - String memberName = member.getName(); - boolean memberValue = member.getValue().asBoolean(); - switch (memberName) { - case "can_create_accounts": - permissions.put(Permission.CAN_CREATE_ACCOUNTS, memberValue); - break; - case "can_edit_accounts": - permissions.put(Permission.CAN_EDIT_ACCOUNTS, memberValue); - break; - case "can_instant_login": - permissions.put(Permission.CAN_INSTANT_LOGIN, memberValue); - break; - case "can_run_reports": - permissions.put(Permission.CAN_RUN_REPORTS, memberValue); - break; - default: - break; - } - } - return permissions; - } - - /** - * {@inheritDoc} - */ - @Override - protected void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - - String memberName = member.getName(); - JsonValue value = member.getValue(); - - try { - switch (memberName) { - case "user": - JsonObject userJSON = value.asObject(); - if (this.user == null) { - String userID = userJSON.get("id").asString(); - BoxUser user = new BoxUser(getAPI(), userID); - this.user = user.new Info(userJSON); - } else { - this.user.update(userJSON); - } - - break; - case "group": - JsonObject groupJSON = value.asObject(); - if (this.group == null) { - String userID = groupJSON.get("id").asString(); - BoxGroup group = new BoxGroup(getAPI(), userID); - this.group = group.new Info(groupJSON); - } else { - this.group.update(groupJSON); - } - - break; - case "role": - this.groupRole = GroupRole.fromJSONString(value.asString()); - - break; - case "created_at": - this.createdAt = BoxDateFormat.parse(value.asString()); - - break; - case "modified_at": - this.modifiedAt = BoxDateFormat.parse(value.asString()); - - break; - case "configurable_permissions": - this.configurablePermissions = this.parseConfigurablePermissions(value.asObject()); - - break; - default: - break; - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - } -} diff --git a/src/main/java/com/box/sdk/BoxGroupMembershipIterator.java b/src/main/java/com/box/sdk/BoxGroupMembershipIterator.java deleted file mode 100644 index 76b6e54f7..000000000 --- a/src/main/java/com/box/sdk/BoxGroupMembershipIterator.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.PagingParameters.offset; - -import com.eclipsesource.json.JsonObject; -import java.net.URL; -import java.util.Iterator; - -/** - * An iterator object for {@link BoxGroupMembership} object. - * Supports offset-based paging. - */ -class BoxGroupMembershipIterator implements Iterator { - - /** - * The limit of entries per response. - */ - private static final long LIMIT = 1000; - - /** - * The API connection to be used. - */ - private final BoxAPIConnection api; - - /** - * Iterator object with paging support. - */ - private final JsonIterator jsonIterator; - - /** - * Creates new BoxGroupMembership iterator. - * - * @param api The API connection to be used by the iterator. - * @param url The endpoint url. - */ - BoxGroupMembershipIterator(BoxAPIConnection api, URL url) { - this.api = api; - this.jsonIterator = new JsonIterator(api, url, offset(0, LIMIT)); - } - - /** - * @return false if current element is the last. - */ - public boolean hasNext() { - return this.jsonIterator.hasNext(); - } - - /** - * @return next BoxGroupMembeship object in the list. - */ - public BoxGroupMembership.Info next() { - JsonObject nextJSONObject = this.jsonIterator.next(); - String id = nextJSONObject.get("id").asString(); - - BoxGroupMembership membership = new BoxGroupMembership(this.api, id); - return membership.new Info(nextJSONObject); - } - - /** - * Remove operation is not supported. - */ - public void remove() { - throw new UnsupportedOperationException(); - } -} diff --git a/src/main/java/com/box/sdk/BoxImageMultipartRequest.java b/src/main/java/com/box/sdk/BoxImageMultipartRequest.java deleted file mode 100644 index ac497b7af..000000000 --- a/src/main/java/com/box/sdk/BoxImageMultipartRequest.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.box.sdk; - -import java.net.URL; -import okhttp3.MediaType; - -/** - * Used to make HTTP multipart requests to the Box API to upload an image. You can define part name that - * contains image binary data. Image type will be determined from the file name. - * - *

    This class partially implements the HTTP multipart standard in order to upload files to Box. The body of this - * request type cannot be set directly. Instead, it can be modified by adding multipart fields and setting file - * contents. The body of multipart requests will not be logged since they are likely to contain binary data.

    - */ -class BoxImageMultipartRequest extends AbstractBoxMultipartRequest { - private final String partName; - - /** - * Constructs an authenticated BoxImageMultipartRequest using a provided BoxAPIConnection. - * You can define part name that contains image binary data. Image type will be determined from the file name. - * - * @param api an API connection for authenticating the request. - * @param url the URL of the request. - * @param partName the name of the part that will contain image - */ - BoxImageMultipartRequest(BoxAPIConnection api, URL url, String partName) { - super(api, url); - this.partName = partName; - } - - @Override - protected String getPartName() { - return partName; - } - - @Override - protected MediaType getPartContentType(String filename) { - return MediaType.parse(determineImageTypeFromFileName(filename)); - } - - private String determineImageTypeFromFileName(String filename) { - String[] filenameAndExtension = filename.split("\\."); - if (filenameAndExtension.length > 1) { - return "image/" + filenameAndExtension[filenameAndExtension.length - 1]; - } - throw new IllegalArgumentException( - "Could not determine file extenstion for Avatar Upload. Filename: " + filename - ); - } -} diff --git a/src/main/java/com/box/sdk/BoxInvite.java b/src/main/java/com/box/sdk/BoxInvite.java deleted file mode 100644 index 592106bd1..000000000 --- a/src/main/java/com/box/sdk/BoxInvite.java +++ /dev/null @@ -1,264 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; -import java.util.Date; - -/** - * Represents an invitation for a user to join an enterprise. - * - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly.

    - */ -@BoxResourceType("invite") -public class BoxInvite extends BoxResource { - - /** - * The URL template for invite creation requests. - */ - public static final URLTemplate INVITE_CREATION_URL_TEMPLATE = new URLTemplate("invites"); - - /** - * The URL template for invite retrieval requests. - * - * @see #getInfo() - */ - public static final URLTemplate INVITE_URL_TEMPLATE = new URLTemplate("invites/%s"); - - /** - * Constructs a BoxInvitee for an invite with a given ID. - * - * @param api the API connection to be used by the invite. - * @param id the ID of the invite. - */ - public BoxInvite(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Invite a user to an enterprise. - * - * @param api the API connection to use for the request. - * @param userLogin the login of the user to invite. - * @param enterpriseID the ID of the enterprise to invite the user to. - * @return the invite info. - */ - public static Info inviteUserToEnterprise(BoxAPIConnection api, String userLogin, String enterpriseID) { - - URL url = INVITE_CREATION_URL_TEMPLATE.build(api.getBaseURL()); - BoxJSONRequest request = new BoxJSONRequest(api, url, "POST"); - - JsonObject body = new JsonObject(); - - JsonObject enterprise = new JsonObject(); - enterprise.add("id", enterpriseID); - body.add("enterprise", enterprise); - - JsonObject actionableBy = new JsonObject(); - actionableBy.add("login", userLogin); - body.add("actionable_by", actionableBy); - - request.setBody(body); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - BoxInvite invite = new BoxInvite(api, responseJSON.get("id").asString()); - return invite.new Info(responseJSON); - } - } - - /** - * Gets information about this group membership. - * - * @return info about this group membership. - */ - public Info getInfo() { - BoxAPIConnection api = this.getAPI(); - URL url = INVITE_URL_TEMPLATE.build(api.getBaseURL(), this.getID()); - - BoxJSONRequest request = new BoxJSONRequest(api, url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - return new Info(jsonObject); - } - } - - /** - * Contains information about a BoxInvite. - */ - public class Info extends BoxResource.Info { - - /** - * @see #getInvitedTo() - */ - private BoxEnterprise invitedTo; - - /** - * @see #getActionableBy() - */ - private BoxUser.Info actionableBy; - - /** - * @see #getInvitedBy() - */ - private BoxUser.Info invitedBy; - - /** - * @see #getCreatedAt() - */ - private Date createdAt; - - /** - * @see #getModifiedAt() - */ - private Date modifiedAt; - - /** - * @see #getStatus() - */ - private String status; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - Info(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the enterprise the user was invited to. - * - * @return the enterprise the user was invited to. - */ - public BoxEnterprise getInvitedTo() { - return this.invitedTo; - } - - /** - * Gets the user that was invited to the enterprise. - * - *

    Note: the BoxUser.Info returned by this method will only have the ID, name, and login fields - * populated.

    - * - * @return the invited user. - */ - public BoxUser.Info getActionableBy() { - return this.actionableBy; - } - - /** - * Gets the user that made the invitation. - * - *

    Note: the BoxUser.Info returned by this method will only have the ID, name, and login fields - * populated.

    - * - * @return the user that created the invitation. - */ - public BoxUser.Info getInvitedBy() { - return this.invitedBy; - } - - /** - * Gets the status of the invitation. - * - * @return the invite status. - */ - public String getStatus() { - return this.status; - } - - /** - * Gets the time the invite was created. - * - * @return the time the invite was created. - */ - public Date getCreatedAt() { - return this.createdAt; - } - - /** - * Gets the time the invite was last modified. - * - * @return the time the invite was last modified. - */ - public Date getModifiedAt() { - return this.modifiedAt; - } - - /** - * {@inheritDoc} - */ - @Override - public BoxInvite getResource() { - return BoxInvite.this; - } - - /** - * {@inheritDoc} - */ - @Override - protected void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - - String memberName = member.getName(); - JsonValue value = member.getValue(); - - try { - if (memberName.equals("invited_to")) { - JsonObject enterpriseJSON = value.asObject(); - this.invitedTo = new BoxEnterprise(enterpriseJSON); - } else if (memberName.equals("actionable_by")) { - JsonObject userJSON = value.asObject(); - if (this.actionableBy == null) { - String userID = userJSON.get("id").asString(); - BoxUser user = new BoxUser(getAPI(), userID); - this.actionableBy = user.new Info(userJSON); - } else { - this.actionableBy.update(userJSON); - } - } else if (memberName.equals("invited_by")) { - JsonObject userJSON = value.asObject(); - if (this.invitedBy == null) { - String userID = userJSON.get("id").asString(); - BoxUser user = new BoxUser(getAPI(), userID); - this.invitedBy = user.new Info(userJSON); - } else { - this.invitedBy.update(userJSON); - } - } else if (memberName.equals("status")) { - this.status = value.asString(); - } else if (memberName.equals("created_at")) { - this.createdAt = BoxDateFormat.parse(value.asString()); - - } else if (memberName.equals("modified_at")) { - this.modifiedAt = BoxDateFormat.parse(value.asString()); - - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - } - -} diff --git a/src/main/java/com/box/sdk/BoxItem.java b/src/main/java/com/box/sdk/BoxItem.java deleted file mode 100644 index 8b14a1321..000000000 --- a/src/main/java/com/box/sdk/BoxItem.java +++ /dev/null @@ -1,672 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -/** - * The abstract base class for items in a user's file tree (files, folders, etc.). - */ -public abstract class BoxItem extends BoxResource { - /** - * An array of all possible file fields that can be requested when calling {@link #getInfo(String...)}. - */ - public static final String[] ALL_FIELDS = {"type", "id", "sequence_id", "etag", "sha1", "name", "description", - "size", "path_collection", "created_at", "modified_at", "trashed_at", "purged_at", "content_created_at", - "content_modified_at", "created_by", "modified_by", "owned_by", "shared_link", "parent", "item_status", - "version_number", "comment_count", "permissions", "tags", "lock", "extension", "is_package", - "folder_upload_email", "item_collection", "sync_state", "has_collaborations", "can_non_owners_invite", - "file_version", "collections", "expires_at"}; - /** - * Shared Item URL Template. - */ - public static final URLTemplate SHARED_ITEM_URL_TEMPLATE = new URLTemplate("shared_items"); - - /** - * Url template for operations with watermarks. - */ - public static final URLTemplate WATERMARK_URL_TEMPLATE = new URLTemplate("/watermark"); - - /** - * Constructs a BoxItem for an item with a given ID. - * - * @param api the API connection to be used by the item. - * @param id the ID of the item. - */ - public BoxItem(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Gets an item that was shared with a shared link. - * - * @param api the API connection to be used by the shared item. - * @param sharedLink the shared link to the item. - * @return info about the shared item. - */ - public static BoxItem.Info getSharedItem(BoxAPIConnection api, String sharedLink) { - return getSharedItem(api, sharedLink, null); - } - - /** - * Gets an item that was shared with a password-protected shared link. - * - * @param api the API connection to be used by the shared item. - * @param sharedLink the shared link to the item. - * @param password the password for the shared link. Use `null` if shared link has no password. - * @param fields the fields to retrieve. - * @return info about the shared item. - */ - public static BoxItem.Info getSharedItem( - BoxAPIConnection api, String sharedLink, String password, String... fields - ) { - QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - URL url = SHARED_ITEM_URL_TEMPLATE.buildWithQuery(api.getBaseURL(), builder.toString()); - BoxJSONRequest request = new BoxJSONRequest(api, url, "GET"); - - request.addHeader("BoxApi", BoxSharedLink.getSharedLinkHeaderValue(sharedLink, password)); - - try (BoxJSONResponse response = request.send()) { - JsonObject json = Json.parse(response.getJSON()).asObject(); - return (BoxItem.Info) BoxResource.parseInfo(api, json); - } - } - - /** - * @return URL for the current object, constructed as base URL pus an item specifier. - */ - protected URL getItemURL() { - return new URLTemplate("").build(this.getAPI().getBaseURL()); - } - - /** - * Used to retrieve the watermark for the item. - * If the item does not have a watermark applied to it, a 404 Not Found will be returned by API. - * - * @param itemUrl url template for the item. - * @param fields the fields to retrieve. - * @return the watermark associated with the item. - */ - protected BoxWatermark getWatermark(URLTemplate itemUrl, String... fields) { - URL watermarkUrl = itemUrl.build(this.getAPI().getBaseURL(), this.getID()); - QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - URL url = WATERMARK_URL_TEMPLATE.buildWithQuery(watermarkUrl.toString(), builder.toString()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - return new BoxWatermark(response.getJSON()); - } - } - - /** - * Used to apply or update the watermark for the item. - * - * @param itemUrl url template for the item. - * @param imprint the value must be "default", as custom watermarks is not yet supported. - * @return the watermark associated with the item. - */ - protected BoxWatermark applyWatermark(URLTemplate itemUrl, String imprint) { - URL watermarkUrl = itemUrl.build(this.getAPI().getBaseURL(), this.getID()); - URL url = WATERMARK_URL_TEMPLATE.build(watermarkUrl.toString()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - JsonObject body = new JsonObject() - .add(BoxWatermark.WATERMARK_JSON_KEY, new JsonObject() - .add(BoxWatermark.WATERMARK_IMPRINT_JSON_KEY, imprint)); - request.setBody(body.toString()); - try (BoxJSONResponse response = request.send()) { - return new BoxWatermark(response.getJSON()); - } - } - - /** - * Removes a watermark from the item. - * If the item did not have a watermark applied to it, a 404 Not Found will be returned by API. - * - * @param itemUrl url template for the item. - */ - protected void removeWatermark(URLTemplate itemUrl) { - URL watermarkUrl = itemUrl.build(this.getAPI().getBaseURL(), this.getID()); - URL url = WATERMARK_URL_TEMPLATE.build(watermarkUrl.toString()); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "DELETE"); - request.send().close(); - } - - /** - * Copies this item to another folder. - * - * @param destination the destination folder. - * @return info about the copied item. - */ - public abstract BoxItem.Info copy(BoxFolder destination); - - /** - * Copies this item to another folder and gives it a new name. If the destination is the same folder as the item's - * current parent, then newName must be a new, unique name. - * - * @param destination the destination folder. - * @param newName a new name for the copied item. - * @return info about the copied item. - */ - public abstract BoxItem.Info copy(BoxFolder destination, String newName); - - /** - * Moves this item to another folder. - * - * @param destination the destination folder. - * @return info about the moved item. - */ - public abstract BoxItem.Info move(BoxFolder destination); - - /** - * Moves this item to another folder and gives it a new name. - * - * @param destination the destination folder. - * @param newName a new name for the moved item. - * @return info about the moved item. - */ - public abstract BoxItem.Info move(BoxFolder destination, String newName); - - /** - * Gets information about this item that's limited to a list of specified fields. - * - * @param fields the fields to retrieve. - * @return info about this item containing only the specified fields. - */ - public abstract BoxItem.Info getInfo(String... fields); - - /** - * Sets the collections that this item belongs to. - * - * @param collections the collections that this item should belong to. - * @return info about the item, including the collections it belongs to. - */ - public abstract BoxItem.Info setCollections(BoxCollection... collections); - - /** - * Contains information about a BoxItem. - */ - public abstract class Info extends BoxResource.Info { - private String type; - private String sequenceID; - private String etag; - private String name; - private Date createdAt; - private Date modifiedAt; - private String description; - private long size; - private List pathCollection; - private BoxUser.Info createdBy; - private BoxUser.Info modifiedBy; - private Date trashedAt; - private Date purgedAt; - private Date contentCreatedAt; - private Date contentModifiedAt; - private BoxUser.Info ownedBy; - private BoxSharedLink sharedLink; - private List tags; - private BoxFolder.Info parent; - private String itemStatus; - private Date expiresAt; - private Set collections; - private String downloadUrl; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - Info(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the item type. - * - * @return the item's type. - */ - public String getType() { - return this.type; - } - - /** - * Gets a unique string identifying the version of the item. - * - * @return a unique string identifying the version of the item. - */ - public String getEtag() { - return this.etag; - } - - /** - * Gets the name of the item. - * - * @return the name of the item. - */ - public String getName() { - return this.name; - } - - /** - * Sets the name of the item. - * - * @param name the new name of the item. - */ - public void setName(String name) { - this.name = name; - this.addPendingChange("name", name); - } - - /** - * Gets the time the item was created. - * - * @return the time the item was created. - */ - public Date getCreatedAt() { - return this.createdAt; - } - - /** - * Gets the time the item was last modified. - * - * @return the time the item was last modified. - */ - public Date getModifiedAt() { - return this.modifiedAt; - } - - /** - * Gets the description of the item. - * - * @return the description of the item. - */ - public String getDescription() { - return this.description; - } - - /** - * Sets the description of the item. - * - * @param description the new description of the item. - */ - public void setDescription(String description) { - this.description = description; - this.addPendingChange("description", description); - } - - /** - * Gets the size of the item in bytes. - * - * @return the size of the item in bytes. - */ - public long getSize() { - return this.size; - } - - /** - * Gets the path of folders to the item, starting at the root. - * - * @return the path of folders to the item. - */ - public List getPathCollection() { - return this.pathCollection; - } - - /** - * Gets info about the user who created the item. - * - * @return info about the user who created the item. - */ - public BoxUser.Info getCreatedBy() { - return this.createdBy; - } - - /** - * Gets info about the user who last modified the item. - * - * @return info about the user who last modified the item. - */ - public BoxUser.Info getModifiedBy() { - return this.modifiedBy; - } - - /** - * Gets the time that the item was trashed. - * - * @return the time that the item was trashed. - */ - public Date getTrashedAt() { - return this.trashedAt; - } - - /** - * Gets the time that the item was purged from the trash. - * - * @return the time that the item was purged from the trash. - */ - public Date getPurgedAt() { - return this.purgedAt; - } - - /** - * Gets the time that the item was created according to the uploader. - * - * @return the time that the item was created according to the uploader. - */ - public Date getContentCreatedAt() { - return this.contentCreatedAt; - } - - /** - * Gets the time that the item was last modified according to the uploader. - * - * @return the time that the item was last modified according to the uploader. - */ - public Date getContentModifiedAt() { - return this.contentModifiedAt; - } - - /** - * Gets the expires at time for this item. - * - * @return the time that the item will expire at. - */ - public Date getExpiresAt() { - return this.expiresAt; - } - - /** - * Gets info about the user who owns the item. - * - * @return info about the user who owns the item. - */ - public BoxUser.Info getOwnedBy() { - return this.ownedBy; - } - - /** - * Gets the shared link for the item. - * - * @return the shared link for the item. - */ - public BoxSharedLink getSharedLink() { - return this.sharedLink; - } - - /** - * Sets a shared link for the item. - * - * @param sharedLink the shared link for the item. - */ - public void setSharedLink(BoxSharedLink sharedLink) { - this.removeChildObject("shared_link"); - this.sharedLink = sharedLink; - this.addChildObject("shared_link", sharedLink); - } - - /** - * Removes the shared link for the item. - */ - public void removeSharedLink() { - this.addChildObject("shared_link", null); - } - - /** - * Gets a unique ID for use with the {@link EventStream}. - * - * @return a unique ID for use with the EventStream. - */ - public String getSequenceID() { - return this.sequenceID; - } - - /** - * Gets a list of all the tags applied to the item. - * - *

    Note that this field isn't populated by default and must be specified as a field parameter when getting - * Info about the item.

    - * - * @return a list of all the tags applied to the item. - */ - public List getTags() { - return this.tags; - } - - /** - * Sets the tags for an item. - * - * @param tags The new tags for the item. - */ - public void setTags(List tags) { - this.tags = tags; - JsonArray tagsJSON = new JsonArray(); - for (String tag : tags) { - tagsJSON.add(tag); - } - this.addPendingChange("tags", tagsJSON); - } - - /** - * Gets info about the parent folder of the item. - * - * @return info about the parent folder of the item. - */ - public BoxFolder.Info getParent() { - return this.parent; - } - - /** - * Gets the status of the item. - * - * @return the status of the item. - */ - public String getItemStatus() { - return this.itemStatus; - } - - /** - * Gets info about the collections that this item belongs to. - * - * @return info about the collections that this item belongs to. - */ - public Iterable getCollections() { - return this.collections; - } - - /*** - * Gets URL that can be used to download the file. - * @return - */ - public String getDownloadUrl() { - return this.downloadUrl; - } - - /** - * Sets the collections that this item belongs to. - * - * @param collections the new list of collections that this item should belong to. - */ - public void setCollections(Iterable collections) { - if (this.collections == null) { - this.collections = new HashSet<>(); - } else { - this.collections.clear(); - } - - JsonArray jsonArray = new JsonArray(); - for (BoxCollection collection : collections) { - JsonObject jsonObject = new JsonObject(); - jsonObject.add("id", collection.getID()); - jsonArray.add(jsonObject); - this.collections.add(collection.new Info()); - } - this.addPendingChange("collections", jsonArray); - } - - @Override - protected void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - JsonValue value = member.getValue(); - String memberName = member.getName(); - - try { - switch (memberName) { - case "sequence_id": - this.sequenceID = value.asString(); - break; - case "type": - this.type = value.asString(); - break; - case "etag": - this.etag = value.asString(); - break; - case "name": - this.name = value.asString(); - break; - case "created_at": - this.createdAt = BoxDateFormat.parse(value.asString()); - break; - case "modified_at": - this.modifiedAt = BoxDateFormat.parse(value.asString()); - break; - case "description": - this.description = value.asString(); - break; - case "size": - this.size = Double.valueOf(value.toString()).longValue(); - break; - case "trashed_at": - this.trashedAt = BoxDateFormat.parse(value.asString()); - break; - case "purged_at": - this.purgedAt = BoxDateFormat.parse(value.asString()); - break; - case "content_created_at": - this.contentCreatedAt = BoxDateFormat.parse(value.asString()); - break; - case "content_modified_at": - this.contentModifiedAt = BoxDateFormat.parse(value.asString()); - break; - case "expires_at": - this.expiresAt = BoxDateFormat.parse(value.asString()); - break; - case "path_collection": - this.pathCollection = this.parsePathCollection(value.asObject()); - break; - case "created_by": - this.createdBy = this.parseUserInfo(value.asObject()); - break; - case "modified_by": - this.modifiedBy = this.parseUserInfo(value.asObject()); - break; - case "owned_by": - this.ownedBy = this.parseUserInfo(value.asObject()); - break; - case "shared_link": - if (this.sharedLink == null) { - this.setSharedLink(new BoxSharedLink(value.asObject())); - } else { - this.sharedLink.update(value.asObject()); - } - break; - case "tags": - this.tags = this.parseTags(value.asArray()); - break; - case "parent": - JsonObject parentObject = value.asObject(); - if (this.parent == null) { - String id = parentObject.get("id").asString(); - BoxFolder parentFolder = new BoxFolder(getAPI(), id); - this.parent = parentFolder.new Info(parentObject); - } else { - this.parent.update(parentObject); - } - break; - case "item_status": - this.itemStatus = value.asString(); - break; - case "collections": - if (this.collections == null) { - this.collections = new HashSet<>(); - } else { - this.collections.clear(); - } - - BoxAPIConnection api = getAPI(); - JsonArray jsonArray = value.asArray(); - for (JsonValue arrayValue : jsonArray) { - JsonObject jsonObject = arrayValue.asObject(); - String id = jsonObject.get("id").asString(); - BoxCollection collection = new BoxCollection(api, id); - BoxCollection.Info collectionInfo = collection.new Info(jsonObject); - this.collections.add(collectionInfo); - } - break; - case "download_url": - this.downloadUrl = value.asString(); - break; - default: - break; - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - - private List parsePathCollection(JsonObject jsonObject) { - int count = jsonObject.get("total_count").asInt(); - List pathCollection = new ArrayList<>(count); - JsonArray entries = jsonObject.get("entries").asArray(); - for (JsonValue value : entries) { - JsonObject entry = value.asObject(); - String id = entry.get("id").asString(); - BoxFolder folder = new BoxFolder(getAPI(), id); - pathCollection.add(folder.new Info(entry)); - } - - return pathCollection; - } - - private BoxUser.Info parseUserInfo(JsonObject jsonObject) { - String userID = jsonObject.get("id").asString(); - BoxUser user = new BoxUser(getAPI(), userID); - return user.new Info(jsonObject); - } - - private List parseTags(JsonArray jsonArray) { - List tags = new ArrayList<>(jsonArray.size()); - for (JsonValue value : jsonArray) { - tags.add(value.asString()); - } - - return tags; - } - } -} diff --git a/src/main/java/com/box/sdk/BoxItemIterator.java b/src/main/java/com/box/sdk/BoxItemIterator.java deleted file mode 100644 index cfd17e015..000000000 --- a/src/main/java/com/box/sdk/BoxItemIterator.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.PagingParameters.offset; - -import com.eclipsesource.json.JsonObject; -import java.net.URL; -import java.util.Iterator; - -class BoxItemIterator implements Iterator { - private static final long LIMIT = 1000; - - private final BoxAPIConnection api; - private final JsonIterator iterator; - - BoxItemIterator(BoxAPIConnection api, URL url, PagingParameters pagingParameters) { - this.api = api; - this.iterator = new JsonIterator(api, url, pagingParameters); - this.iterator.setFilter(jsonObject -> { - String type = jsonObject.get("type").asString(); - return (type.equals("file") || type.equals("folder") || type.equals("web_link")); - }); - } - - BoxItemIterator(BoxAPIConnection api, URL url) { - this(api, url, offset(0, LIMIT)); - } - - BoxItemIterator(BoxAPIConnection api, URL url, long limit, long offset) { - this(api, url, offset(offset, limit)); - } - - public boolean hasNext() { - return this.iterator.hasNext(); - } - - public BoxItem.Info next() { - JsonObject nextJSONObject = this.iterator.next(); - String type = nextJSONObject.get("type").asString(); - String id = nextJSONObject.get("id").asString(); - - BoxItem.Info nextItemInfo; - if (type.equals("folder")) { - BoxFolder folder = new BoxFolder(this.api, id); - nextItemInfo = folder.new Info(nextJSONObject); - } else if (type.equals("file")) { - BoxFile file = new BoxFile(this.api, id); - nextItemInfo = file.new Info(nextJSONObject); - } else if (type.equals("web_link")) { - BoxWebLink link = new BoxWebLink(this.api, id); - nextItemInfo = link.new Info(nextJSONObject); - } else { - assert false : "Unsupported item type: " + type; - throw new BoxAPIException("Unsupported item type: " + type); - } - - return nextItemInfo; - } - - public void remove() { - throw new UnsupportedOperationException(); - } -} diff --git a/src/main/java/com/box/sdk/BoxJSONObject.java b/src/main/java/com/box/sdk/BoxJSONObject.java deleted file mode 100644 index 6b7caf6db..000000000 --- a/src/main/java/com/box/sdk/BoxJSONObject.java +++ /dev/null @@ -1,239 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.util.HashMap; -import java.util.Map; - -/** - * The abstract base class for all types that contain JSON data returned by the Box API. The most common implementation - * of BoxJSONObject is {@link BoxResource.Info} and its subclasses. Changes made to a BoxJSONObject will be tracked - * locally until the pending changes are sent back to Box in order to avoid unnecessary network requests. - */ -public abstract class BoxJSONObject { - /** - * A map of other BoxJSONObjects which will be lazily converted to a JsonObject once getPendingChanges is called. - * This allows changes to be made to a child BoxJSONObject and still have those changes reflected in the JSON - * string. - */ - private final Map children; - /** - * The JsonObject that contains any local pending changes. When getPendingChanges is called, this object will be - * encoded to a JSON string. - */ - private JsonObject pendingChanges; - /** - * The current JSON object. - */ - private JsonObject jsonObject; - - /** - * Constructs an empty BoxJSONObject. - */ - public BoxJSONObject() { - this.children = new HashMap(); - } - - /** - * Constructs a BoxJSONObject by decoding it from a JSON string. - * - * @param json the JSON string to decode. - */ - public BoxJSONObject(String json) { - this(Json.parse(json).asObject()); - } - - /** - * Constructs a BoxJSONObject using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - BoxJSONObject(JsonObject jsonObject) { - this(); - - this.update(jsonObject); - } - - /** - * Clears any pending changes from this JSON object. - */ - public void clearPendingChanges() { - this.pendingChanges = null; - } - - /** - * Gets a JSON string containing any pending changes to this object that can be sent back to the Box API. - * - * @return a JSON string containing the pending changes. - */ - public String getPendingChanges() { - JsonObject jsonObject = this.getPendingJSONObject(); - if (jsonObject == null) { - return null; - } - - return jsonObject.toString(); - } - - /** - * Gets a JSON string containing any pending changes to this object that can be sent back to the Box API. - * - * @return a JSON string containing the pending changes. - */ - public JsonObject getPendingChangesAsJsonObject() { - return this.getPendingJSONObject(); - } - - /** - * Invoked with a JSON member whenever this object is updated or created from a JSON object. - * - *

    Subclasses should override this method in order to parse any JSON members it knows about. This method is a - * no-op by default.

    - * - * @param member the JSON member to be parsed. - */ - void parseJSONMember(JsonObject.Member member) { - } - - /** - * Adds a pending field change that needs to be sent to the API. It will be included in the JSON string the next - * time {@link #getPendingChanges} is called. - * - * @param key the name of the field. - * @param value the new boolean value of the field. - */ - void addPendingChange(String key, boolean value) { - if (this.pendingChanges == null) { - this.pendingChanges = new JsonObject(); - } - - this.pendingChanges.set(key, value); - } - - /** - * Adds a pending field change that needs to be sent to the API. It will be included in the JSON string the next - * time {@link #getPendingChanges} is called. - * - * @param key the name of the field. - * @param value the new String value of the field. - */ - void addPendingChange(String key, String value) { - this.addPendingChange(key, Json.value(value)); - } - - /** - * Adds a pending field change that needs to be sent to the API. It will be included in the JSON string the next - * time {@link #getPendingChanges} is called. - * - * @param key the name of the field. - * @param value the new long value of the field. - */ - void addPendingChange(String key, long value) { - this.addPendingChange(key, Json.value(value)); - } - - /** - * Adds a pending field change that needs to be sent to the API. It will be included in the JSON string the next - * time {@link #getPendingChanges} is called. - * - * @param key the name of the field. - * @param value the new JsonArray value of the field. - */ - void addPendingChange(String key, JsonArray value) { - this.addPendingChange(key, (JsonValue) value); - } - - /** - * Adds a pending field change that needs to be sent to the API. It will be included in the JSON string the next - * time {@link #getPendingChanges} is called. - * - * @param key the name of the field. - * @param value the new JsonObject value of the field. - */ - void addPendingChange(String key, JsonObject value) { - this.addPendingChange(key, (JsonValue) value); - } - - void addChildObject(String fieldName, BoxJSONObject child) { - if (child == null) { - this.addPendingChange(fieldName, Json.NULL); - } else { - this.children.put(fieldName, child); - } - } - - void removeChildObject(String fieldName) { - this.children.remove(fieldName); - } - - /** - * Adds a pending field change that needs to be sent to the API. It will be included in the JSON string the next - * time {@link #getPendingChanges} is called. - * - * @param key the name of the field. - * @param value the JsonValue of the field. - */ - private void addPendingChange(String key, JsonValue value) { - if (this.pendingChanges == null) { - this.pendingChanges = new JsonObject(); - } - - this.pendingChanges.set(key, value); - } - - void removePendingChange(String key) { - if (this.pendingChanges != null) { - this.pendingChanges.remove(key); - } - } - - /** - * Updates this BoxJSONObject using the information in a JSON object and preserves the JSON object. - * - * @param jsonObject the JSON object containing updated information. - */ - void update(JsonObject jsonObject) { - this.jsonObject = jsonObject; - - for (JsonObject.Member member : jsonObject) { - if (member.getValue().isNull()) { - continue; - } - - this.parseJSONMember(member); - } - - this.clearPendingChanges(); - } - - /** - * Gets a JsonObject containing any pending changes to this object that can be sent back to the Box API. - * - * @return a JsonObject containing the pending changes. - */ - protected JsonObject getPendingJSONObject() { - for (Map.Entry entry : this.children.entrySet()) { - BoxJSONObject child = entry.getValue(); - JsonObject jsonObject = child.getPendingJSONObject(); - if (jsonObject != null) { - if (this.pendingChanges == null) { - this.pendingChanges = new JsonObject(); - } - - this.pendingChanges.set(entry.getKey(), jsonObject); - } - } - return this.pendingChanges; - } - - /** - * Converts the JSON object into a string literal. - * - * @return a string representation of the JSON object. - */ - public String getJson() { - return this.jsonObject.toString(); - } -} diff --git a/src/main/java/com/box/sdk/BoxJSONRequest.java b/src/main/java/com/box/sdk/BoxJSONRequest.java deleted file mode 100644 index f53b2df17..000000000 --- a/src/main/java/com/box/sdk/BoxJSONRequest.java +++ /dev/null @@ -1,121 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; - -import com.box.sdk.http.HttpMethod; -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; - -/** - * Used to make HTTP requests containing JSON to the Box API. - * - *

    This request type extends BoxAPIRequest to provide additional functionality for handling JSON strings. It - * automatically sets the appropriate "Content-Type" HTTP headers and allows the JSON in the request to be logged.

    - */ -public class BoxJSONRequest extends BoxAPIRequest { - private JsonValue jsonValue; - - protected BoxJSONRequest(BoxAPIConnection api, URL url, String method, String mediaType) { - super(api, url, method, mediaType); - } - - /** - * Constructs an authenticated BoxJSONRequest using a provided BoxAPIConnection. - * - * @param api an API connection for authenticating the request. - * @param url the URL of the request. - * @param method the HTTP method of the request. - */ - public BoxJSONRequest(BoxAPIConnection api, URL url, String method) { - this(api, url, method, APPLICATION_JSON); - } - - /** - * Constructs an authenticated BoxJSONRequest using a provided BoxAPIConnection. - * - * @param api an API connection for authenticating the request. - * @param url the URL of the request. - * @param method the HTTP method of the request. - */ - public BoxJSONRequest(BoxAPIConnection api, URL url, HttpMethod method) { - this(api, url, method.name()); - } - - /** - * Constructs an authenticated BoxJSONRequest. - * - * @param url the URL of the request. - * @param method the HTTP method of the request. - */ - public BoxJSONRequest(URL url, HttpMethod method) { - this(null, url, method); - } - - /** - * Sets the body of this request to a given JSON string. - * - * @param body the JSON string to use as the body. - */ - @Override - public void setBody(String body) { - super.setBody(body); - this.jsonValue = Json.parse(body); - } - - /** - * Sets the body of this request to a given JsonObject. - * - * @param body the JsonObject to use as the body. - */ - public void setBody(JsonObject body) { - super.setBody(body.toString()); - this.jsonValue = body; - } - - /** - * Gets the body of this request as a JsonObject. - * - * @return body represented as JsonObject. - */ - public JsonObject getBodyAsJsonObject() { - if (this.jsonValue.isObject()) { - return this.jsonValue.asObject(); - } - - return null; - } - - /** - * Gets the body of this request as a {@link JsonValue}. - * - * @return body represented as JsonValue - */ - public JsonValue getBodyAsJsonValue() { - return this.jsonValue; - } - - @Override - public BoxJSONResponse send() { - return convert(super.send()); - } - - @Override - public BoxJSONResponse send(ProgressListener listener) { - return convert(super.send(listener)); - } - - private BoxJSONResponse convert(BoxAPIResponse response) { - if (response instanceof BoxJSONResponse) { - return (BoxJSONResponse) response; - } else { - return new BoxJSONResponse(response); - } - } - - @Override - protected String bodyToString() { - return this.jsonValue != null ? this.jsonValue.toString() : null; - } -} diff --git a/src/main/java/com/box/sdk/BoxJSONResponse.java b/src/main/java/com/box/sdk/BoxJSONResponse.java deleted file mode 100644 index e9247c6db..000000000 --- a/src/main/java/com/box/sdk/BoxJSONResponse.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.http.ContentType; -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.ParseException; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.List; -import java.util.Map; - -/** - * Used to read HTTP responses containing JSON from the Box API. - * - *

    This request type extends BoxAPIResponse to provide additional functionality for handling JSON strings. It reads - * the response body into a string and allows the JSON in the response to be logged.

    - */ -public class BoxJSONResponse extends BoxAPIResponse { - private static final int BUFFER_SIZE = 8192; - private JsonObject jsonObject; - - /** - * Constructs a BoxJSONResponse without an associated HttpURLConnection. - */ - public BoxJSONResponse() { - super(); - } - - BoxJSONResponse(BoxAPIResponse response) { - this( - response.getResponseCode(), - response.getRequestMethod(), - response.getRequestUrl(), - response.getHeaders(), - new JsonObject() - ); - } - - /** - * Constructs a BoxAPIResponse with an http response code and response body. - * - * @param responseCode http response code - * @param headers map of http headers - * @param body response body as Json Object - */ - public BoxJSONResponse(int responseCode, - String requestMethod, - String requestUrl, - Map> headers, - JsonObject body - ) { - super(responseCode, requestMethod, requestUrl, headers, body.toString(), ContentType.APPLICATION_JSON); - this.jsonObject = body; - } - - /** - * Get response as Json Object. - * - * @return response as JsonObject - */ - public JsonObject getJsonObject() { - if (this.jsonObject != null) { - return this.jsonObject; - } else { - return Json.parse(this.getJSON()).asObject(); - } - } - - /** - * Gets the body of the response as a JSON string. When this method is called, the response's body will be read and - * the response will be disconnected, meaning that the stream returned by {@link #getBody} can no longer be used. - * - * @return the body of the response as a JSON string. - */ - public String getJSON() { - if (this.jsonObject != null) { - return this.jsonObject.toString(); - } else if (this.getBody() == null) { - return null; - } else { - InputStreamReader reader = new InputStreamReader(this.getBody(), StandardCharsets.UTF_8); - StringBuilder builder = new StringBuilder(); - char[] buffer = new char[BUFFER_SIZE]; - - try { - int read = reader.read(buffer, 0, BUFFER_SIZE); - while (read != -1) { - builder.append(buffer, 0, read); - read = reader.read(buffer, 0, BUFFER_SIZE); - } - - this.close(); - reader.close(); - } catch (IOException e) { - throw new BoxAPIException("Couldn't connect to the Box API due to a network error.", e); - } - String jsonAsString = builder.toString(); - try { - this.jsonObject = Json.parse(jsonAsString).asObject(); - } catch (ParseException e) { - throw new RuntimeException("Error parsing JSON:\n" + jsonAsString, e); - } - return jsonAsString; - } - } - - @Override - protected String bodyToString() { - String bodyString = super.bodyToString(); - if (bodyString == null) { - return this.getJSON(); - } else { - return bodyString; - } - } -} diff --git a/src/main/java/com/box/sdk/BoxLegalHoldAssignment.java b/src/main/java/com/box/sdk/BoxLegalHoldAssignment.java deleted file mode 100644 index eb305d51c..000000000 --- a/src/main/java/com/box/sdk/BoxLegalHoldAssignment.java +++ /dev/null @@ -1,269 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; -import java.util.Date; - -/** - * Represents a legal hold policy assignment. - * Legal hold assignments are used to assign legal hold policies to custodians, folders, files, or file versions. - * - * @see Box legal holds - * - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly.

    - */ -@BoxResourceType("legal_hold_assignment") -public class BoxLegalHoldAssignment extends BoxResource { - - /** - * Used to assign legal hold policy to file version. - */ - public static final String TYPE_FILE_VERSION = BoxFileVersion.getResourceType(BoxFileVersion.class); - - /** - * Used to assign legal hold policy to file. - */ - public static final String TYPE_FILE = BoxFile.getResourceType(BoxFile.class); - - /** - * Used to assign legal hold policy to folder. - */ - public static final String TYPE_FOLDER = BoxFolder.getResourceType(BoxFolder.class); - - /** - * Used to assign legal hold policy to user. - */ - public static final String TYPE_USER = BoxUser.getResourceType(BoxUser.class); - - /** - * The URL template used for operation with legal hold policy assignments. - */ - public static final URLTemplate ASSIGNMENTS_URL_TEMPLATE = new URLTemplate("legal_hold_policy_assignments"); - - /** - * The URL template used for operation with legal hold policy assignment with given ID. - */ - public static final URLTemplate LEGAL_HOLD_ASSIGNMENT_URL_TEMPLATE - = new URLTemplate("legal_hold_policy_assignments/%s"); - - /** - * Constructs a BoxLegalHoldAssignment for a resource with a given ID. - * - * @param api the API connection to be used by the resource. - * @param id the ID of the resource. - */ - public BoxLegalHoldAssignment(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Creates new legal hold policy assignment. - * - * @param api the API connection to be used by the resource. - * @param policyID ID of policy to create assignment for. - * @param resourceType type of target resource. Can be 'file_version', 'file', 'folder', or 'user'. - * @param resourceID ID of the target resource. - * @return info about created legal hold policy assignment. - */ - public static BoxLegalHoldAssignment.Info create(BoxAPIConnection api, - String policyID, String resourceType, String resourceID) { - URL url = ASSIGNMENTS_URL_TEMPLATE.build(api.getBaseURL()); - BoxJSONRequest request = new BoxJSONRequest(api, url, "POST"); - - JsonObject requestJSON = new JsonObject() - .add("policy_id", policyID) - .add("assign_to", new JsonObject() - .add("type", resourceType) - .add("id", resourceID)); - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - BoxLegalHoldAssignment createdAssignment = - new BoxLegalHoldAssignment(api, responseJSON.get("id").asString()); - return createdAssignment.new Info(responseJSON); - } - } - - /** - * Deletes the legal hold policy assignment. - */ - public void delete() { - URL url = LEGAL_HOLD_ASSIGNMENT_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "DELETE"); - request.send().close(); - } - - /** - * @param fields the fields to retrieve. - * @return information about this retention policy. - */ - public BoxLegalHoldAssignment.Info getInfo(String... fields) { - QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - URL url = LEGAL_HOLD_ASSIGNMENT_URL_TEMPLATE.buildWithQuery( - this.getAPI().getBaseURL(), builder.toString(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - return new Info(responseJSON); - } - } - - /** - * Contains information about the legal hold policy. - */ - public class Info extends BoxResource.Info { - - /** - * @see #getLegalHold() - */ - private BoxLegalHoldPolicy.Info legalHold; - - /** - * @see #getAssignedBy() - */ - private BoxUser.Info assignedBy; - - /** - * @see #getAssignedAt() - */ - private Date assignedAt; - - /** - * @see #getDeletedAt() - */ - private Date deletedAt; - - /** - * @see #getAssignedToType() - */ - private String assignedToType; - - /** - * @see #getAssignedToID() - */ - private String assignedToID; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - Info(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * {@inheritDoc} - */ - @Override - public BoxResource getResource() { - return BoxLegalHoldAssignment.this; - } - - /** - * @return info about the policy that this legal hold policy assignment is part of. - */ - public BoxLegalHoldPolicy.Info getLegalHold() { - return this.legalHold; - } - - /** - * @return the info about the user who created that legal hold policy assignment. - */ - public BoxUser.Info getAssignedBy() { - return this.assignedBy; - } - - /** - * @return the time that the legal hold policy assignment was created. - */ - public Date getAssignedAt() { - return this.assignedAt; - } - - /** - * @return the time that the assignment release request was sent. - */ - public Date getDeletedAt() { - return this.deletedAt; - } - - /** - * @return the entity type that this is assigned to. - */ - public String getAssignedToType() { - return this.assignedToType; - } - - /** - * @return the entity id that this is assigned to. - */ - public String getAssignedToID() { - return this.assignedToID; - } - - /** - * {@inheritDoc} - */ - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - if (memberName.equals("legal_hold_policy")) { - JsonObject policyJSON = value.asObject(); - if (this.legalHold == null) { - String policyID = policyJSON.get("id").asString(); - BoxLegalHoldPolicy policy = new BoxLegalHoldPolicy(getAPI(), policyID); - this.legalHold = policy.new Info(policyJSON); - } else { - this.legalHold.update(policyJSON); - } - } else if (memberName.equals("assigned_to")) { - JsonObject assignmentJSON = value.asObject(); - this.assignedToType = assignmentJSON.get("type").asString(); - this.assignedToID = assignmentJSON.get("id").asString(); - } else if (memberName.equals("assigned_by")) { - JsonObject userJSON = value.asObject(); - if (this.assignedBy == null) { - String userID = userJSON.get("id").asString(); - BoxUser user = new BoxUser(getAPI(), userID); - this.assignedBy = user.new Info(userJSON); - } else { - this.assignedBy.update(userJSON); - } - } else if (memberName.equals("assigned_at")) { - this.assignedAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("deleted_at")) { - this.deletedAt = BoxDateFormat.parse(value.asString()); - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - } -} diff --git a/src/main/java/com/box/sdk/BoxLegalHoldPolicy.java b/src/main/java/com/box/sdk/BoxLegalHoldPolicy.java deleted file mode 100644 index 7cdf5b012..000000000 --- a/src/main/java/com/box/sdk/BoxLegalHoldPolicy.java +++ /dev/null @@ -1,615 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; -import java.util.Date; - -/** - * Represents a legal hold policy. Legal Hold Policy information describes the basic characteristics of the Policy, such - * as name, description, and filter dates. - * - * @see Box legal holds - * - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly.

    - */ -@BoxResourceType("legal_hold") -public class BoxLegalHoldPolicy extends BoxResource { - /** - * Legal Hold URL Template. - */ - public static final URLTemplate LEGAL_HOLD_URL_TEMPLATE = new URLTemplate("legal_hold_policies/%s"); - /** - * All Legal Hold URL Template. - */ - public static final URLTemplate ALL_LEGAL_HOLD_URL_TEMPLATE = new URLTemplate("legal_hold_policies"); - /** - * Legal Hold Assignments URL Template. - */ - public static final URLTemplate LEGAL_HOLD_ASSIGNMENTS_URL_TEMPLATE - = new URLTemplate("legal_hold_policies/%s/assignments"); - /** - * List of File Version Holds URL Template. - */ - public static final URLTemplate LIST_OF_FILE_VERSION_HOLDS_URL_TEMPLATE - = new URLTemplate("file_version_legal_holds"); - private static final int DEFAULT_LIMIT = 100; - - /** - * Constructs a BoxLegalHoldPolicy for a resource with a given ID. - * - * @param api the API connection to be used by the resource. - * @param id the ID of the resource. - */ - public BoxLegalHoldPolicy(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Creates a new Legal Hold Policy. - * - * @param api the API connection to be used by the resource. - * @param name the name of Legal Hold Policy. - * @return information about the Legal Hold Policy created. - */ - public static BoxLegalHoldPolicy.Info create(BoxAPIConnection api, String name) { - return createOngoing(api, name, null); - } - - /** - * Creates a new Legal Hold Policy. - * - * @param api the API connection to be used by the resource. - * @param name the name of Legal Hold Policy. - * @param description the description of Legal Hold Policy. - * @param filterStartedAt optional date filter applies to Custodian assignments only. - * @param filterEndedAt optional date filter applies to Custodian assignments only. - * @return information about the Legal Hold Policy created. - */ - public static BoxLegalHoldPolicy.Info create(BoxAPIConnection api, String name, String description, - Date filterStartedAt, Date filterEndedAt) { - URL url = ALL_LEGAL_HOLD_URL_TEMPLATE.build(api.getBaseURL()); - BoxJSONRequest request = new BoxJSONRequest(api, url, "POST"); - JsonObject requestJSON = new JsonObject() - .add("policy_name", name); - if (description != null) { - requestJSON.add("description", description); - } - if (filterStartedAt != null) { - requestJSON.add("filter_started_at", BoxDateFormat.format(filterStartedAt)); - } - if (filterEndedAt != null) { - requestJSON.add("filter_ended_at", BoxDateFormat.format(filterEndedAt)); - } - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - BoxLegalHoldPolicy createdPolicy = new BoxLegalHoldPolicy(api, responseJSON.get("id").asString()); - return createdPolicy.new Info(responseJSON); - } - } - - /** - * Creates a new ongoing Legal Hold Policy. - * - * @param api the API connection to be used by the resource. - * @param name the name of Legal Hold Policy. - * @param description the description of Legal Hold Policy. - * @return information about the Legal Hold Policy created. - */ - public static BoxLegalHoldPolicy.Info createOngoing(BoxAPIConnection api, String name, String description) { - return createOngoing(api, name, description, null); - } - - - /** - * Creates a new ongoing Legal Hold Policy. - * - * @param api the API connection to be used by the resource. - * @param name the name of Legal Hold Policy. - * @param description the description of Legal Hold Policy. - * @param filterStartedAt optional date filter applies to Custodian assignments only. - * @return information about the Legal Hold Policy created. - */ - public static BoxLegalHoldPolicy.Info createOngoing( - BoxAPIConnection api, String name, String description, Date filterStartedAt - ) { - URL url = ALL_LEGAL_HOLD_URL_TEMPLATE.build(api.getBaseURL()); - BoxJSONRequest request = new BoxJSONRequest(api, url, "POST"); - JsonObject requestJSON = new JsonObject() - .add("policy_name", name) - .add("is_ongoing", true); - if (description != null) { - requestJSON.add("description", description); - } - if (filterStartedAt != null) { - requestJSON.add("filter_started_at", BoxDateFormat.format(filterStartedAt)); - } - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - BoxLegalHoldPolicy createdPolicy = new BoxLegalHoldPolicy(api, responseJSON.get("id").asString()); - return createdPolicy.new Info(responseJSON); - } - } - - /** - * Retrieves a list of Legal Hold Policies that belong to your Enterprise as an Iterable. - * - * @param api api the API connection to be used by the resource. - * @return the Iterable of Legal Hold Policies in your Enterprise. - */ - public static Iterable getAll(final BoxAPIConnection api) { - return getAll(api, null, DEFAULT_LIMIT); - } - - /** - * Retrieves a list of Legal Hold Policies that belong to your Enterprise as an Iterable. - * - * @param api api the API connection to be used by the resource. - * @param policyName case insensitive prefix-match filter on Policy name. - * @param limit the limit of retrieved entries per page. - * @param fields the optional fields to retrieve. - * @return the Iterable of Legal Hold Policies in your Enterprise that match the filter parameters. - */ - public static Iterable getAll( - final BoxAPIConnection api, String policyName, int limit, String... fields) { - QueryStringBuilder builder = new QueryStringBuilder(); - if (policyName != null) { - builder.appendParam("policy_name", policyName); - } - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - return new BoxResourceIterable(api, - ALL_LEGAL_HOLD_URL_TEMPLATE.buildWithQuery(api.getBaseURL(), builder.toString()), - limit) { - - @Override - protected BoxLegalHoldPolicy.Info factory(JsonObject jsonObject) { - BoxLegalHoldPolicy policy = new BoxLegalHoldPolicy(api, jsonObject.get("id").asString()); - return policy.new Info(jsonObject); - } - }; - } - - /** - * Gets information about the Legal Hold. - * - * @param fields the fields to retrieve. - * @return information about this legal hold policy. - */ - public Info getInfo(String... fields) { - QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - URL url = LEGAL_HOLD_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), builder.toString(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - return new Info(responseJSON); - } - } - - /** - * Deletes the legal hold policy. - */ - public void delete() { - URL url = LEGAL_HOLD_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "DELETE"); - request.send().close(); - } - - /** - * Updates the information about this retention policy with modified locally info. - * Only policy_name, description and release_notes can be modified. - * - * @param info the updated info. - */ - public void updateInfo(BoxLegalHoldPolicy.Info info) { - URL url = LEGAL_HOLD_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - request.setBody(info.getPendingChanges()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - info.update(responseJSON); - } - } - - /** - * Assigns this legal holds policy to the given box resource. - * Currently only {@link BoxFile}, {@link BoxFileVersion}, {@link BoxFolder} and {@link BoxUser} are supported. - * - * @param resource the box resource to assign legal hold policy to. - * @return info about created legal hold policy assignment. - */ - public BoxLegalHoldAssignment.Info assignTo(BoxResource resource) { - return BoxLegalHoldAssignment.create( - this.getAPI(), this.getID(), BoxResource.getResourceType(resource.getClass()), resource.getID()); - } - - /** - * Returns iterable containing assignments for this single legal hold policy. - * - * @param fields the fields to retrieve. - * @return an iterable containing assignments for this single legal hold policy. - */ - public Iterable getAssignments(String... fields) { - return this.getAssignments(null, null, DEFAULT_LIMIT, fields); - } - - /** - * Returns iterable containing assignments for this single legal hold policy. - * Parameters can be used to filter retrieved assignments. - * - * @param type filter assignments of this type only. - * Can be "file_version", "file", "folder", "user" or null if no type filter is necessary. - * @param id filter assignments to this ID only. Can be null if no id filter is necessary. - * @param limit the limit of entries per page. Default limit is 100. - * @param fields the fields to retrieve. - * @return an iterable containing assignments for this single legal hold policy. - */ - public Iterable getAssignments(String type, String id, int limit, String... fields) { - QueryStringBuilder builder = new QueryStringBuilder(); - if (type != null) { - builder.appendParam("assign_to_type", type); - } - if (id != null) { - builder.appendParam("assign_to_id", id); - } - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - return new BoxResourceIterable( - this.getAPI(), LEGAL_HOLD_ASSIGNMENTS_URL_TEMPLATE.buildWithQuery( - this.getAPI().getBaseURL(), builder.toString(), this.getID()), limit) { - - @Override - protected BoxLegalHoldAssignment.Info factory(JsonObject jsonObject) { - BoxLegalHoldAssignment assignment = new BoxLegalHoldAssignment( - BoxLegalHoldPolicy.this.getAPI(), jsonObject.get("id").asString()); - return assignment.new Info(jsonObject); - } - }; - } - - /** - * Returns iterable with all non-deleted file version legal holds for this legal hold policy. - * - * @param fields the fields to retrieve. - * @return an iterable containing file version legal holds info. - */ - public Iterable getFileVersionHolds(String... fields) { - return this.getFileVersionHolds(DEFAULT_LIMIT, fields); - } - - /** - * Returns iterable with all non-deleted file version legal holds for this legal hold policy. - * - * @param limit the limit of entries per response. The default value is 100. - * @param fields the fields to retrieve. - * @return an iterable containing file version legal holds info. - */ - public Iterable getFileVersionHolds(int limit, String... fields) { - QueryStringBuilder queryString = new QueryStringBuilder().appendParam("policy_id", this.getID()); - if (fields.length > 0) { - queryString.appendParam("fields", fields); - } - URL url = LIST_OF_FILE_VERSION_HOLDS_URL_TEMPLATE.buildWithQuery(getAPI().getBaseURL(), queryString.toString()); - return new BoxResourceIterable(getAPI(), url, limit) { - - @Override - protected BoxFileVersionLegalHold.Info factory(JsonObject jsonObject) { - BoxFileVersionLegalHold assignment - = new BoxFileVersionLegalHold(getAPI(), jsonObject.get("id").asString()); - return assignment.new Info(jsonObject); - } - - }; - } - - /** - * Contains information about the legal hold policy. - */ - public class Info extends BoxResource.Info { - - /** - * @see #getPolicyName() - */ - private String policyName; - - /** - * @see #getDescription() - */ - private String description; - - /** - * @see #getStatus() - */ - private String status; - - /** - * @see #getAssignmentCountUser() - */ - private int assignmentCountUser; - - /** - * @see #getAssignmentCountFolder() - */ - private int assignmentCountFolder; - - /** - * @see #getAssignmentCountFile() - */ - private int assignmentCountFile; - - /** - * @see #getAssignmentCountFileVersion() - */ - private int assignmentCountFileVersion; - - /** - * @see #getCreatedAt() - */ - private BoxUser.Info createdBy; - - /** - * @see #getCreatedAt() - */ - private Date createdAt; - - /** - * @see #getModifiedAt() - */ - private Date modifiedAt; - - /** - * @see #getDeletedAt() - */ - private Date deletedAt; - - /** - * @see #getFilterStartedAt() - */ - private Date filterStartedAt; - - /** - * @see #getFilterEndedAt() - */ - private Date filterEndedAt; - - /** - * @see #getReleaseNotes() - */ - private String releaseNotes; - - /** - * @see #getIsOngoing() - */ - private Boolean isOngoing; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - Info(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * {@inheritDoc} - */ - @Override - public BoxResource getResource() { - return BoxLegalHoldPolicy.this; - } - - /** - * @return the name of the policy. - */ - public String getPolicyName() { - return this.policyName; - } - - /** - * Sets the policy's name. - * - * @param policyName the policy's new name. - */ - public void setPolicyName(String policyName) { - this.policyName = policyName; - this.addPendingChange("policy_name", policyName); - } - - /** - * @return the description of the policy. - */ - public String getDescription() { - return this.description; - } - - /** - * Sets the policy's description. - * - * @param description the policy's new description. - */ - public void setDescription(String description) { - this.description = description; - this.addPendingChange("description", description); - } - - /** - * Status can be "active", "applying", "releasing" or "released". - * - * @return the status of the policy. - */ - public String getStatus() { - return this.status; - } - - /** - * @return count of users this policy assigned to. - */ - public int getAssignmentCountUser() { - return this.assignmentCountUser; - } - - /** - * @return count of folders this policy assigned to. - */ - public int getAssignmentCountFolder() { - return this.assignmentCountFolder; - } - - /** - * @return count of files this policy assigned to. - */ - public int getAssignmentCountFile() { - return this.assignmentCountFile; - } - - /** - * @return count of file versions this policy assigned to. - */ - public int getAssignmentCountFileVersion() { - return this.assignmentCountFileVersion; - } - - /** - * @return info about the user who created this policy. - */ - public BoxUser.Info getCreatedBy() { - return this.createdBy; - } - - /** - * @return time the policy was created. - */ - public Date getCreatedAt() { - return this.createdAt; - } - - /** - * @return time the policy was modified. - */ - public Date getModifiedAt() { - return this.modifiedAt; - } - - /** - * @return time that the policy release request was sent. - */ - public Date getDeletedAt() { - return this.deletedAt; - } - - /** - * @return optional date filter applies to Custodian assignments only. - */ - public Date getFilterStartedAt() { - return this.filterStartedAt; - } - - /** - * @return optional date filter applies to Custodian assignments only. - */ - public Date getFilterEndedAt() { - return this.filterEndedAt; - } - - /** - * @return notes around why the policy was released. - */ - public String getReleaseNotes() { - return this.releaseNotes; - } - - /** - * Sets the policy's release notes. - * - * @param releaseNotes the policy's new release notes. - */ - public void setReleaseNotes(String releaseNotes) { - this.releaseNotes = releaseNotes; - this.addPendingChange("release_notes", releaseNotes); - } - - /** - * @return boolean indicating whether the policy will continue applying to files based on events, indefinitely. - */ - public Boolean getIsOngoing() { - return this.isOngoing; - } - - /** - * {@inheritDoc} - */ - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - if (memberName.equals("policy_name")) { - this.policyName = value.asString(); - } else if (memberName.equals("description")) { - this.description = value.asString(); - } else if (memberName.equals("status")) { - this.status = value.asString(); - } else if (memberName.equals("release_notes")) { - this.releaseNotes = value.asString(); - } else if (memberName.equals("assignment_counts")) { - JsonObject countsJSON = value.asObject(); - this.assignmentCountUser = countsJSON.get("user").asInt(); - this.assignmentCountFolder = countsJSON.get("folder").asInt(); - this.assignmentCountFile = countsJSON.get("file").asInt(); - this.assignmentCountFileVersion = countsJSON.get("file_version").asInt(); - } else if (memberName.equals("created_by")) { - JsonObject userJSON = value.asObject(); - if (this.createdBy == null) { - String userID = userJSON.get("id").asString(); - BoxUser user = new BoxUser(getAPI(), userID); - this.createdBy = user.new Info(userJSON); - } else { - this.createdBy.update(userJSON); - } - } else if (memberName.equals("created_at")) { - this.createdAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("modified_at")) { - this.modifiedAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("deleted_at")) { - this.deletedAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("filter_started_at")) { - this.filterStartedAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("filter_ended_at")) { - this.filterEndedAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("is_ongoing")) { - this.isOngoing = value.asBoolean(); - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - } -} diff --git a/src/main/java/com/box/sdk/BoxLock.java b/src/main/java/com/box/sdk/BoxLock.java deleted file mode 100644 index 15e6a7cab..000000000 --- a/src/main/java/com/box/sdk/BoxLock.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.util.Date; - -/** - * Represents a lock associated with a File on Box. - */ -public class BoxLock extends BoxJSONObject { - private String type; - private Date expiresAt; - private Boolean isDownloadPrevented; - private BoxUser.Info createdBy; - private Date createdAt; - private String id; - private BoxAPIConnection api; - - /** - * Constructs a base BoxLock object. - * - * @param type lock type, "lock" or "unlock". - * @param expiresAt lock expiration date. - */ - public BoxLock(String type, Date expiresAt) { - super(); - this.type = type; - this.expiresAt = expiresAt; - this.isDownloadPrevented = false; - } - - /** - * Constructs a BoxLock object. - * - * @param type lock type, "lock" or "unlock". - * @param expiresAt lock expiration date. - * @param isDownloadPrevented if true, download is prevented while locked. - */ - public BoxLock(String type, Date expiresAt, Boolean isDownloadPrevented) { - super(); - this.type = type; - this.expiresAt = expiresAt; - this.isDownloadPrevented = isDownloadPrevented; - } - - /** - * Constructs an BoxLock object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - * @param api API object. - */ - BoxLock(JsonObject jsonObject, BoxAPIConnection api) { - super(jsonObject); - this.api = api; - } - - /** - * Gets the lock type. - * - * @return the type of a lock. - */ - public String getType() { - return this.type; - } - - /** - * Gets a locks expiration date. - * - * @return the locks expiration date. - */ - public Date getExpiresAt() { - return this.expiresAt; - } - - /** - * Does the lock prevent downloads. - * - * @return true if lock prevents downloads. - */ - public Boolean getIsDownloadPrevented() { - return this.isDownloadPrevented; - } - - /** - * User who created the lock. - * - * @return Lock creator. - */ - public BoxUser.Info getCreatedBy() { - return this.createdBy; - } - - /** - * @return Lock's creation date. - */ - public Date getCreatedAt() { - return this.createdAt; - } - - /** - * @return Lock's ID. - */ - public String getId() { - return this.id; - } - - @Override - protected void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - - String memberName = member.getName(); - JsonValue value = member.getValue(); - - try { - if (memberName.equals("type")) { - this.type = value.asString(); - } else if (memberName.equals("expires_at")) { - this.expiresAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("is_download_prevented")) { - this.isDownloadPrevented = value.asBoolean(); - } else if (memberName.equals("created_by")) { - JsonObject userJSON = value.asObject(); - if (this.createdBy == null) { - String userID = userJSON.get("id").asString(); - BoxUser user = new BoxUser(this.api, userID); - this.createdBy = user.new Info(userJSON); - } else { - this.createdBy.update(userJSON); - } - } else if (memberName.equals("created_at")) { - this.createdAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("id")) { - this.id = value.toString(); - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } -} diff --git a/src/main/java/com/box/sdk/BoxLogger.java b/src/main/java/com/box/sdk/BoxLogger.java deleted file mode 100644 index d8dc30f79..000000000 --- a/src/main/java/com/box/sdk/BoxLogger.java +++ /dev/null @@ -1,169 +0,0 @@ -package com.box.sdk; - -import static java.util.logging.Level.ALL; -import static java.util.logging.Level.FINE; -import static java.util.logging.Level.INFO; -import static java.util.logging.Level.OFF; -import static java.util.logging.Level.SEVERE; -import static java.util.logging.Level.WARNING; - -import java.util.logging.Handler; -import java.util.logging.Level; -import java.util.logging.Logger; - -/** - * Logger class. - */ -public final class BoxLogger { - private static final BoxLogger DEFAULT_LOGGER = new BoxLogger("com.box.sdk"); - private final Logger logger; - - private BoxLogger(String name) { - logger = Logger.getLogger(name); - } - - /** - * Get logger instance - * @return logger instance. - */ - public static BoxLogger defaultLogger() { - return DEFAULT_LOGGER; - } - - /** - * Log message with level DEBUG {@link Level#FINE} - * @param message message to log - */ - public void debug(String message) { - logger.fine(message); - } - - /** - * Log message with level INFO {@link Level#INFO} - * @param message message to log - */ - public void info(String message) { - logger.info(message); - } - - /** - * Log message with level WARNING {@link Level#WARNING} - * @param message message to log - */ - public void warn(String message) { - logger.warning(message); - } - - /** - * Log message with level WARNING {@link Level#SEVERE} - * @param message message to log - */ - public void error(String message) { - logger.severe(message); - } - - /** - * Check if DEBUG level is enabled - * @return true if DEBUG level is enabled - */ - public boolean isDebugEnabled() { - return logger.isLoggable(FINE); - } - - /** - * Check if INFO level is enabled - * @return true if INFO level is enabled - */ - public boolean isInfoEnabled() { - return logger.isLoggable(INFO); - } - - /** - * Check if WARN level is enabled - * @return true if WARN level is enabled - */ - public boolean isWarnEnabled() { - return logger.isLoggable(WARNING); - } - - /** - * Check if ERROR level is enabled - * @return true if ERROR level is enabled - */ - public boolean isErrorEnabled() { - return logger.isLoggable(SEVERE); - } - - /** - * Set logging level to ALL {@link Level#ALL} - */ - public void setLevelToAll() { - this.logger.setLevel(ALL); - } - - /** - * Reset logging level to default. - */ - public void resetToDefaultLevel() { - this.logger.setLevel(null); - } - - /** - * Set logging level to INFO {@link Level#INFO} - */ - public void setLevelToInfo() { - this.logger.setLevel(INFO); - } - - /** - * Set logging level to WARNING {@link Level#WARNING} - */ - public void setLevelToWarning() { - this.logger.setLevel(WARNING); - } - - /** - * Set logging level to ERROR {@link Level#SEVERE} - */ - public void setLevelToError() { - this.logger.setLevel(SEVERE); - } - - /** - * Turns logging off - */ - public void turnLoggingOff() { - this.logger.setLevel(OFF); - } - - /** - * Specify whether this logger should send its output to its parent Logger. This means that any LogRecords - * will also be written to the parent's Handlers, and potentially to its parent, recursively up the namespace. - * - * @param useParentHandlers true if output is to be sent to the logger's parent. - * @throws SecurityException if a security manager exists, this logger is not anonymous, - * and the caller does not have LoggingPermission("control"). - */ - public void setUseParentHandlers(boolean useParentHandlers) { - this.logger.setUseParentHandlers(useParentHandlers); - } - - /** - * Adds handler to logger. - * Check {@link Logger#addHandler(Handler)} - * @param handler a logging handler to add. - */ - public void addHandler(Handler handler) { - logger.addHandler(handler); - } - - /** - * Removes handler from logger. - * Will not fail if handler is null or not registered. - * Check {@link Logger#removeHandler(Handler)} - * @param handler a logging handler to remove. - */ - public void removeHandler(Handler handler) { - logger.removeHandler(handler); - } -} diff --git a/src/main/java/com/box/sdk/BoxMetadataCascadePolicy.java b/src/main/java/com/box/sdk/BoxMetadataCascadePolicy.java deleted file mode 100644 index 902279459..000000000 --- a/src/main/java/com/box/sdk/BoxMetadataCascadePolicy.java +++ /dev/null @@ -1,260 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; - -/** - * Represents a Metadata Cascade Policy. - */ -@BoxResourceType("metadata_cascade_policy") -public class BoxMetadataCascadePolicy extends BoxResource { - - /** - * Get All Metadata Cascade Policies URL. - */ - public static final URLTemplate GET_ALL_METADATA_CASCADE_POLICIES_URL_TEMPLATE = - new URLTemplate("metadata_cascade_policies"); - - /** - * Metadata Cascade Policies URL. - */ - public static final URLTemplate METADATA_CASCADE_POLICIES_URL_TEMPLATE = - new URLTemplate("metadata_cascade_policies/%s"); - - /** - * Force Metadata Cascade Policies URL. - */ - public static final URLTemplate FORCE_METADATA_CASCADE_POLICIES_URL_TEMPLATE = - new URLTemplate("metadata_cascade_policies/%s/apply"); - - private static final int DEFAULT_LIMIT = 100; - - /** - * Constructs a BoxMetadataCascadePolicy for a metadata cascade policy with a given ID. - * - * @param api the API connection used to make the request. - * @param id the ID of the metadata cascade policy. - */ - public BoxMetadataCascadePolicy(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Retrieves list of Box Metadata Cascade Policies that belong to your Enterprise as an Iterable. - * - * @param api the API connection to be used by the resource. - * @param folderID the ID of the folder to retrieve cascade policies for. - * @param fields optional fields to retrieve for cascade policies. - * @return the Iterable of Box Metadata Cascade Policies in your enterprise. - */ - public static Iterable getAll(final BoxAPIConnection api, - String folderID, String... fields) { - return getAll(api, folderID, null, DEFAULT_LIMIT, fields); - } - - /** - * Retrieves list of Box Metadata Cascade Policies that belong to your Enterprise as an Iterable. - * - * @param api the API connection to be used by the resource. - * @param folderID the ID of the folder to retrieve cascade policies for. - * @param ownerEnterpriseID the ID of the enterprise to retrieve Metadata Cascade Policies for. - * @param limit the number of entries for cascade policies to retrieve. - * @param fields optional fields to retrieve for cascade policies. - * @return the Iterable of Box Metadata Cascade Policies in your enterprise. - */ - public static Iterable getAll(final BoxAPIConnection api, - String folderID, String ownerEnterpriseID, int limit, - String... fields) { - - QueryStringBuilder builder = new QueryStringBuilder(); - builder.appendParam("folder_id", folderID); - if (ownerEnterpriseID != null) { - builder.appendParam("owner_enterprise_id", ownerEnterpriseID); - } - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - return new BoxResourceIterable(api, GET_ALL_METADATA_CASCADE_POLICIES_URL_TEMPLATE - .buildWithQuery(api.getBaseURL(), builder.toString()), limit) { - @Override - protected BoxMetadataCascadePolicy.Info factory(JsonObject jsonObject) { - BoxMetadataCascadePolicy cascadePolicy = - new BoxMetadataCascadePolicy(api, jsonObject.get("id").asString()); - - return cascadePolicy.new Info(jsonObject); - } - }; - } - - /** - * Creates a new Metadata Cascade Policy on a folder. - * - * @param api the API connection to be used by the resource. - * @param folderID the ID of the folder to create a metadata cascade policy on. - * @param scope the scope of the metadata cascade policy. - * @param templateKey the key of the template. - * @return information about the Metadata Cascade Policy. - */ - public static BoxMetadataCascadePolicy.Info create(final BoxAPIConnection api, String folderID, String scope, - String templateKey) { - URL url = GET_ALL_METADATA_CASCADE_POLICIES_URL_TEMPLATE.build(api.getBaseURL()); - BoxJSONRequest request = new BoxJSONRequest(api, url, "POST"); - JsonObject requestJSON = new JsonObject() - .add("folder_id", folderID) - .add("scope", scope) - .add("templateKey", templateKey); - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - BoxMetadataCascadePolicy createdMetadataCascadePolicy = new BoxMetadataCascadePolicy(api, - responseJSON.get("id").asString()); - return createdMetadataCascadePolicy.new Info(responseJSON); - } - } - - /** - * Returns the information for a specific BoxMetadataCascadePolicy. - * - * @param fields the fields to retrieve. - * @return the information about this metadata cascade policy. - */ - public BoxMetadataCascadePolicy.Info getInfo(String... fields) { - QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - URL url = METADATA_CASCADE_POLICIES_URL_TEMPLATE.buildAlphaWithQuery(this.getAPI().getBaseURL(), - builder.toString(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - return new Info(responseJSON); - } - } - - /** - * If a policy already exists on a folder, this will apply that policy to all existing files and sub folders within - * the target folder. - * - * @param conflictResolution the desired behavior for conflict-resolution. Set to either none or overwrite. - */ - public void forceApply(String conflictResolution) { - - URL url = FORCE_METADATA_CASCADE_POLICIES_URL_TEMPLATE.buildAlpha(this.getAPI().getBaseURL(), this.getID()); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "POST"); - JsonObject requestJSON = new JsonObject() - .add("conflict_resolution", conflictResolution); - request.setBody(requestJSON.toString()); - request.send().close(); - } - - /** - * Deletes the metadata cascade policy. - */ - public void delete() { - URL url = METADATA_CASCADE_POLICIES_URL_TEMPLATE.buildAlpha(this.getAPI().getBaseURL(), this.getID()); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "DELETE"); - request.send().close(); - } - - /** - * Contains information about a BoxMetadataCascadePolicy. - */ - public class Info extends BoxResource.Info { - private BoxEnterprise ownerEnterprise; - private BoxFolder.Info parent; - private String scope; - private String templateKey; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - Info(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the enterprise the metadata cascade policy belongs to. - * - * @return the enterprise the metadata cascade policy belongs to. - */ - public BoxEnterprise getOwnerEnterprise() { - return this.ownerEnterprise; - } - - /** - * Gets the folder the metadata cascade policy is on. - * - * @return the folder parent of the metadata cascade policy. - */ - public BoxFolder.Info getParent() { - return this.parent; - } - - /** - * Gets the scope of the metadata cascade policy. - * - * @return the scope of the metadata cascade policy. - */ - public String getScope() { - return this.scope; - } - - /** - * Gets the template key for the metadata cascade policy. - * - * @return the template key for the metadata cascade policy. - */ - public String getTemplateKey() { - return this.templateKey; - } - - @Override - public BoxMetadataCascadePolicy getResource() { - return BoxMetadataCascadePolicy.this; - } - - @Override - protected void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - if (memberName.equals("owner_enterprise")) { - JsonObject jsonObject = value.asObject(); - this.ownerEnterprise = new BoxEnterprise(jsonObject); - } else if (memberName.equals("parent")) { - JsonObject parentJSON = value.asObject(); - if (this.parent == null) { - String parentID = parentJSON.get("id").asString(); - BoxFolder folder = new BoxFolder(getAPI(), parentID); - this.parent = folder.new Info(parentJSON); - } else { - this.parent.update(parentJSON); - } - } else if (memberName.equals("scope")) { - this.scope = value.asString(); - } else if (memberName.equals("templateKey")) { - this.templateKey = value.asString(); - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - } -} diff --git a/src/main/java/com/box/sdk/BoxMetadataFilter.java b/src/main/java/com/box/sdk/BoxMetadataFilter.java deleted file mode 100644 index 9feed148a..000000000 --- a/src/main/java/com/box/sdk/BoxMetadataFilter.java +++ /dev/null @@ -1,121 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; - -/** - *

    BoxMetadataFilter is used to help organize the request for when making metadata filter request - * in conjuction with search. The translation will look something like this: - * [{"templateKey":"marketingCollateral", "scope":"enterprise", "filters":{"documentType": "datasheet"}}]

    - */ -public class BoxMetadataFilter { - private String templateKey; - private String scope = "enterprise"; - private JsonObject filtersList; - - /** - * Constructor for BoxMetadataFilter that initizlizes the JSON Object. - */ - public BoxMetadataFilter() { - this.filtersList = new JsonObject(); - } - - /** - * Returns the template key that currently set. - * - * @return this.String template key. - */ - public String getTemplateKey() { - return this.templateKey; - } - - /** - * Set the current template key for the search filter. - * - * @param templateKey must be a metadata template key. - */ - public void setTemplateKey(String templateKey) { - this.templateKey = templateKey; - } - - /** - * return this.a list of the current filters that are being set. - * - * @return this.JsonObject filterList. - */ - public JsonObject getFiltersList() { - return this.filtersList; - } - - /** - * Set a filter to the filterList, example: key=documentType, value=special. - * - * @param key the key that the filter should be looking for. - * @param value the specific value that corresponds to the key. - */ - public void addFilter(String key, String value) { - this.filtersList.add(key, value); - } - - /** - * Set a NumberRanger filter to the filter numbers, example: key=documentNumber, lt : 20, gt : 5. - * - * @param key the key that the filter should be looking for. - * @param sizeRange the specific value that corresponds to the key. - */ - public void addNumberRangeFilter(String key, SizeRange sizeRange) { - JsonObject opObj = new JsonObject(); - - if (sizeRange.getLowerBoundBytes() != 0) { - opObj.add("gt", sizeRange.getLowerBoundBytes()); - } - if (sizeRange.getUpperBoundBytes() != 0) { - opObj.add("lt", sizeRange.getUpperBoundBytes()); - } - - this.filtersList.add(key, opObj); - } - - /** - * Set a filter to the filterList, example: key=documentNumber, gt : "", lt : "". - * - * @param key the key that the filter should be looking for. - * @param dateRange the date range that is start and end dates - */ - public void addDateRangeFilter(String key, DateRange dateRange) { - - JsonObject opObj = new JsonObject(); - - if (dateRange.getFromDate() != null) { - String dateGtString = BoxDateFormat.format(dateRange.getFromDate()); - //workaround replacing + and - 000 at the end with 'Z' - dateGtString = dateGtString.replaceAll("(\\+|-)(?!-\\|?!\\+)\\d+$", "Z"); - opObj.add("gt", dateGtString); - } - if (dateRange.getToDate() != null) { - String dateLtString = BoxDateFormat.format(dateRange.getToDate()); - //workaround replacing + and - 000 at the end with 'Z' - dateLtString = dateLtString.replaceAll("(\\+|-)(?!-\\|?!\\+)\\d+$", "Z"); - opObj.add("lt", dateLtString); - } - - this.filtersList.add(key, opObj); - } - - /** - * return this.the current scope being used. - * - * @return this.String scope. - */ - public String getScope() { - return this.scope; - } - - /** - * Set the scope for the key, currently only "enterprise" and "global" are allowed. - * - * @param scope the scope on which to find the template. - */ - public void setScope(String scope) { - this.scope = scope; - } -} diff --git a/src/main/java/com/box/sdk/BoxMetadataQueryItem.java b/src/main/java/com/box/sdk/BoxMetadataQueryItem.java deleted file mode 100644 index 5d2db8e59..000000000 --- a/src/main/java/com/box/sdk/BoxMetadataQueryItem.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.util.ArrayList; -import java.util.HashMap; - -/** - * Represents an individual item returned by a metadata query item. - * - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly. - */ -public class BoxMetadataQueryItem extends BoxJSONObject { - private BoxItem.Info item; - private HashMap> metadata; - private BoxAPIConnection api; - - /** - * Construct a BoxMetadataQueryItem. - * - * @param jsonObject the parsed JSON object. - * @param api the API connection to be used to fetch interacted item - */ - public BoxMetadataQueryItem(JsonObject jsonObject, BoxAPIConnection api) { - super(jsonObject); - this.api = api; - } - - @Override - protected void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - - String memberName = member.getName(); - JsonValue value = member.getValue(); - if (memberName.equals("item")) { - String id = value.asObject().get("id").asString(); - String type = value.asObject().get("type").asString(); - this.item = new BoxFile(this.api, id).new Info(value.asObject()); - if (type.equals("folder")) { - BoxFolder folder = new BoxFolder(this.api, id); - this.item = folder.new Info(value.asObject()); - } else if (type.equals("file")) { - BoxFile file = new BoxFile(this.api, id); - this.item = file.new Info(value.asObject()); - } else if (type.equals("web_link")) { - BoxWebLink link = new BoxWebLink(this.api, id); - this.item = link.new Info(value.asObject()); - } else { - assert false : "Unsupported item type: " + type; - throw new BoxAPIException("Unsupported item type: " + type); - } - } else if (memberName.equals("metadata")) { - this.metadata = new HashMap>(); - JsonObject metadataObject = value.asObject(); - for (JsonObject.Member enterprise : metadataObject) { - String enterpriseName = enterprise.getName(); - JsonObject templates = enterprise.getValue().asObject(); - ArrayList enterpriseMetadataArray = new ArrayList(); - for (JsonObject.Member template : templates) { - String templateName = template.getName(); - JsonObject templateValue = template.getValue().asObject(); - Metadata metadataOfTemplate = new Metadata(templateValue); - metadataOfTemplate.add("/$scope", enterpriseName); - metadataOfTemplate.add("/$template", templateName); - enterpriseMetadataArray.add(metadataOfTemplate); - } - this.metadata.put(enterpriseName, enterpriseMetadataArray); - } - } - } - - /** - * Get the item which was interacted with. - * - * @return box item - */ - public BoxItem.Info getItem() { - return this.item; - } - - /** - * Get the metadata on the item. - * - * @return HashMap of metadata - */ - public HashMap> getMetadata() { - return this.metadata; - } - -} diff --git a/src/main/java/com/box/sdk/BoxMultipartRequest.java b/src/main/java/com/box/sdk/BoxMultipartRequest.java deleted file mode 100644 index 6481d5805..000000000 --- a/src/main/java/com/box/sdk/BoxMultipartRequest.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.box.sdk; - -import java.net.URL; -import okhttp3.MediaType; - -/** - *

    Used to make HTTP multipart requests to the Box API.

    - * - *

    This class partially implements the HTTP multipart standard in order to upload files to Box. The body of this - * request type cannot be set directly. Instead, it can be modified by adding multipart fields and setting file - * contents. The body of multipart requests will not be logged since they are likely to contain binary data.

    - */ -public class BoxMultipartRequest extends AbstractBoxMultipartRequest { - - /** - * Constructs an authenticated BoxMultipartRequest using a provided BoxAPIConnection. - * - * @param api an API connection for authenticating the request. - * @param url the URL of the request. - */ - public BoxMultipartRequest(BoxAPIConnection api, URL url) { - super(api, url); - } - - @Override - protected String getPartName() { - return "file"; - } - - @Override - protected MediaType getPartContentType(String filename) { - return MediaType.parse("application/octet-stream"); - } -} diff --git a/src/main/java/com/box/sdk/BoxNotificationEmail.java b/src/main/java/com/box/sdk/BoxNotificationEmail.java deleted file mode 100644 index 5b833b32e..000000000 --- a/src/main/java/com/box/sdk/BoxNotificationEmail.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; - -/** - * Represents a notification email object - */ -public class BoxNotificationEmail extends BoxJSONObject { - private boolean isConfirmed; - private String email; - - - /** - * Constructs a BoxNotificationEmail object. - * - * @param email The email address to send the notifications to. - * @param isConfirmed Specifies if this email address has been confirmed. - */ - public BoxNotificationEmail(String email, boolean isConfirmed) { - this(new JsonObject() - .add("email", email) - .add("is_confirmed", isConfirmed) - ); - } - - /** - * Constructs a BoxNotificationEmail from a JSON string. - * - * @param json the json encoded email alias. - */ - public BoxNotificationEmail(String json) { - this(Json.parse(json).asObject()); - } - - /** - * Constructs a BoxNotificationEmail using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - BoxNotificationEmail(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets if this email address has been confirmed. - * - * @return true if this email address has been confirmed; otherwise false. - */ - public boolean getIsConfirmed() { - return this.isConfirmed; - } - - /** - * Gets the email address to send notifications to. - * - * @return The email address to send the notifications to. - */ - public String getEmail() { - return this.email; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - JsonValue value = member.getValue(); - String memberName = member.getName(); - try { - if (memberName.equals("is_confirmed")) { - this.isConfirmed = value.asBoolean(); - } else if (memberName.equals("email")) { - this.email = value.asString(); - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } -} diff --git a/src/main/java/com/box/sdk/BoxRecentItem.java b/src/main/java/com/box/sdk/BoxRecentItem.java deleted file mode 100644 index 8d956f7cc..000000000 --- a/src/main/java/com/box/sdk/BoxRecentItem.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.MalformedURLException; -import java.net.URL; -import java.text.ParseException; -import java.util.Date; - -/** - * Represents an individual recent item. - * - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly.* - */ -public class BoxRecentItem extends BoxJSONObject { - private String type; - private String interactionType; - private BoxItem.Info item; - private Date interactedAt; - private URL interactionSharedLink; - private BoxAPIConnection api; - - /** - * Construct a BoxRecentItem. - * - * @param jsonObject the parsed JSON object. - * @param api the API connection to be used to fetch interacted item - */ - public BoxRecentItem(JsonObject jsonObject, BoxAPIConnection api) { - super(jsonObject); - this.api = api; - } - - @Override - protected void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - if (memberName.equals("type")) { - this.type = value.asString(); - } else if (memberName.equals("interaction_type")) { - this.interactionType = value.asString(); - } else if (memberName.equals("item")) { - String id = value.asObject().get("id").asString(); - this.item = new BoxFile(this.api, id).new Info(value.asObject()); - } else if (memberName.equals("interacted_at")) { - this.interactedAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("interaction_shared_link")) { - this.interactionSharedLink = new URL(value.asString()); - } - } catch (ParseException e) { - assert false : "A ParseException indicates a bug in the SDK."; - } catch (MalformedURLException e) { - assert false : "A ParseException indicates a bug in the SDK."; - } - } - - /** - * Get item type. - * - * @return type of item - */ - public String getType() { - return this.type; - } - - /** - * Get interaction type. - * - * @return interaction type - */ - public String getInteractionType() { - return this.interactionType; - } - - /** - * Get the item which was interacted with. - * - * @return box item - */ - public BoxItem.Info getItem() { - return this.item; - } - - /** - * Get the interaction date. - * - * @return interaction date - */ - public Date getInteractedAt() { - return this.interactedAt; - } - - /** - * Get the shared link, if the item was accessed through a shared link. - * - * @return shared link - */ - public URL getInteractionSharedLink() { - return this.interactionSharedLink; - } - -} diff --git a/src/main/java/com/box/sdk/BoxRecents.java b/src/main/java/com/box/sdk/BoxRecents.java deleted file mode 100644 index 971c4e209..000000000 --- a/src/main/java/com/box/sdk/BoxRecents.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; - -/** - * Utility class to retrieve list of recent items. - * - * @see https://developer.box.com/reference#get-recent-items - */ -public final class BoxRecents { - - /** - * Recents URL Template. - */ - public static final URLTemplate RECENTS_URL_TEMPLATE = new URLTemplate("recent_items"); - - //Constructor is not allowed - private BoxRecents() { - } - - /** - * Used to retrieve all collaborations associated with the item. - * - * @param api BoxAPIConnection from the associated file. - * @param limit limit of items to be retrieved. Default is 100. Maximum is 1000 - * @param fields the optional fields to retrieve. - * @return An iterable of BoxCollaboration.Info instances associated with the item. - * @see https://developer.box.com/reference#get-recent-items - */ - public static BoxResourceIterable getRecentItems(final BoxAPIConnection api, - int limit, String... fields) { - QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - return new BoxResourceIterable( - api, RECENTS_URL_TEMPLATE.buildWithQuery(api.getBaseURL(), builder.toString()), - limit) { - - @Override - protected BoxRecentItem factory(JsonObject jsonObject) { - return new BoxRecentItem(jsonObject, api); - } - }; - } -} diff --git a/src/main/java/com/box/sdk/BoxResource.java b/src/main/java/com/box/sdk/BoxResource.java deleted file mode 100644 index 3afc01937..000000000 --- a/src/main/java/com/box/sdk/BoxResource.java +++ /dev/null @@ -1,208 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; -import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; -import java.util.Collections; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -/** - * The abstract base class for all resource types (files, folders, comments, collaborations, etc.) used by the API. - * - *

    Every API resource has an ID and a {@link BoxAPIConnection} that it uses to communicate with the API. Some - * resources also have an associated {@link Info} class that contains information about the resource.

    - */ -public abstract class BoxResource { - - /** - * @see #initResourceClassByType() - */ - private static final Map> RESOURCE_CLASS_BY_TYPE = initResourceClassByType(); - - private final BoxAPIConnection api; - private final String id; - - /** - * Constructs a BoxResource for a resource with a given ID. - * - * @param api the API connection to be used by the resource. - * @param id the ID of the resource. - */ - public BoxResource(BoxAPIConnection api, String id) { - this.api = api; - this.id = id; - } - - /** - * @return Builds {@link Map} between String {@link #getResourceType(Class)} and {@link BoxResource} type. - */ - private static Map> initResourceClassByType() { - Map> result = - new ConcurrentHashMap>(); - result.put(getResourceType(BoxFolder.class), BoxFolder.class); - result.put(getResourceType(BoxFile.class), BoxFile.class); - result.put(getResourceType(BoxComment.class), BoxComment.class); - result.put(getResourceType(BoxCollaboration.class), BoxCollaboration.class); - result.put(getResourceType(BoxTask.class), BoxTask.class); - result.put(getResourceType(BoxTaskAssignment.class), BoxTaskAssignment.class); - result.put(getResourceType(BoxUser.class), BoxUser.class); - result.put(getResourceType(BoxGroup.class), BoxGroup.class); - result.put(getResourceType(BoxGroupMembership.class), BoxGroupMembership.class); - result.put(getResourceType(BoxEvent.class), BoxEvent.class); - result.put(getResourceType(BoxWebHook.class), BoxWebHook.class); - result.put(getResourceType(BoxCollection.class), BoxCollection.class); - result.put(getResourceType(BoxDevicePin.class), BoxDevicePin.class); - result.put(getResourceType(BoxRetentionPolicy.class), BoxRetentionPolicy.class); - result.put(getResourceType(BoxRetentionPolicyAssignment.class), BoxRetentionPolicyAssignment.class); - result.put(getResourceType(BoxFileVersionRetention.class), BoxFileVersionRetention.class); - result.put(getResourceType(BoxLegalHoldPolicy.class), BoxLegalHoldPolicy.class); - result.put(getResourceType(BoxLegalHoldAssignment.class), BoxLegalHoldAssignment.class); - result.put(getResourceType(BoxFileVersionLegalHold.class), BoxFileVersionLegalHold.class); - result.put(getResourceType(BoxFileUploadSession.class), BoxFileUploadSession.class); - result.put(getResourceType(BoxWebLink.class), BoxWebLink.class); - result.put(getResourceType(BoxStoragePolicy.class), BoxStoragePolicy.class); - result.put(getResourceType(BoxStoragePolicyAssignment.class), BoxStoragePolicyAssignment.class); - result.put(getResourceType(BoxFolderLock.class), BoxFolderLock.class); - result.put(getResourceType(BoxFileRequest.class), BoxFileRequest.class); - - return Collections.unmodifiableMap(result); - } - - /** - * Resolves {@link BoxResourceType} for a provided {@link BoxResource} {@link Class}. - * - * @param clazz {@link BoxResource} type - * @return resolved {@link BoxResourceType#value()} - */ - public static String getResourceType(Class clazz) { - BoxResourceType resource = clazz.getAnnotation(BoxResourceType.class); - if (resource == null) { - throw new IllegalArgumentException("Provided BoxResource type does not have @BoxResourceType annotation."); - } - return resource.value(); - } - - static BoxResource.Info parseInfo(BoxAPIConnection api, JsonObject jsonObject) { - String type = jsonObject.get("type").asString(); - String id = jsonObject.get("id").asString(); - - try { - Class resourceClass = RESOURCE_CLASS_BY_TYPE.get(type); - Constructor resourceConstructor = - resourceClass.getConstructor(BoxAPIConnection.class, String.class); - - Class infoClass = resourceClass.getClassLoader().loadClass(resourceClass.getCanonicalName() + "$Info"); - Constructor infoConstructor = infoClass.getDeclaredConstructor(resourceClass, JsonObject.class); - - BoxResource resource = resourceConstructor.newInstance(api, id); - return (BoxResource.Info) infoConstructor.newInstance(resource, jsonObject); - - } catch (ClassNotFoundException e) { - return null; - } catch (NoSuchMethodException e) { - return null; - } catch (IllegalAccessException e) { - throw new BoxAPIException("Can not create BoxResource.Info instance:", e); - } catch (InvocationTargetException e) { - throw new BoxAPIException("Can not create BoxResource.Info instance:", e); - } catch (InstantiationException e) { - throw new BoxAPIException("Can not create BoxResource.Info instance:", e); - } - } - - /** - * Gets the API connection used by this resource. - * - * @return the API connection used by this resource. - */ - public BoxAPIConnection getAPI() { - return this.api; - } - - /** - * Gets the ID of this resource. - * - * @return the ID of this resource. - */ - public String getID() { - return this.id; - } - - /** - * Indicates whether this BoxResource is equal to another BoxResource. Two BoxResources are equal if they have the - * same type and ID. - * - * @param other the other BoxResource to compare. - * @return true if the type and IDs of the two resources are equal; otherwise false. - */ - @Override - public boolean equals(Object other) { - if (other == null) { - return false; - } - - if (this.getClass().equals(other.getClass())) { - BoxResource otherResource = (BoxResource) other; - return this.getID().equals(otherResource.getID()); - } - - return false; - } - - /** - * Returns a hash code value for this BoxResource. - * - * @return a hash code value for this BoxResource. - */ - @Override - public int hashCode() { - return this.getID().hashCode(); - } - - /** - * Contains information about a BoxResource. - */ - public abstract class Info extends BoxJSONObject { - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - Info(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the ID of the resource associated with this Info. - * - * @return the ID of the associated resource. - */ - public String getID() { - return BoxResource.this.getID(); - } - - /** - * Gets the resource associated with this Info. - * - * @return the associated resource. - */ - public abstract BoxResource getResource(); - } -} diff --git a/src/main/java/com/box/sdk/BoxResourceIterable.java b/src/main/java/com/box/sdk/BoxResourceIterable.java deleted file mode 100644 index b4eb855e5..000000000 --- a/src/main/java/com/box/sdk/BoxResourceIterable.java +++ /dev/null @@ -1,259 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Iterator; -import java.util.NoSuchElementException; - -/** - * Common implementation for paging support. - * - * @param type of iterated entity - */ -public abstract class BoxResourceIterable implements Iterable { - - /** - * Parameter for max page size. - */ - public static final String PARAMETER_LIMIT = "limit"; - - /** - * Parameter for marker for the beginning of next page. - */ - public static final String PARAMETER_MARKER = "marker"; - - /** - * Body Parameter for marker for the beginning of next page. - */ - public static final String BODY_PARAMETER_MARKER_NEXT = "next_marker"; - - /** - * Body parameter for page entries. - */ - public static final String BODY_PARAMETER_ENTRIES = "entries"; - - /** - * The API connection to be used by the resource. - */ - private final BoxAPIConnection api; - - /** - * To end-point with paging support. - */ - private final URL url; - - /** - * The maximum number of items to return in a page. - */ - private final int limit; - - /** - * The iterator that gets the next items. - */ - private final IteratorImpl iterator; - - /** - * Constructor. - * - * @param api the API connection to be used by the resource - * @param url endpoint with paging support - * @param limit the maximum number of items to return in a page - */ - public BoxResourceIterable(BoxAPIConnection api, URL url, int limit) { - this(api, url, limit, null, null); - } - - /** - * Constructor. - * - * @param api the API connection to be used by the resource. - * @param url to endpoint with paging support. - * @param limit the maximum number of items to return in a page. - * @param body the body to send to the requested endpoint. - */ - public BoxResourceIterable(BoxAPIConnection api, URL url, int limit, JsonObject body) { - this(api, url, limit, body, null); - } - - /** - * Constructor. - * - * @param api the API connection to be used by the resource. - * @param url to endpoint with paging support. - * @param limit the maximum number of items to return in a page. - * @param marker the marker where the iterator will begin - */ - public BoxResourceIterable(BoxAPIConnection api, URL url, int limit, String marker) { - this(api, url, limit, null, marker); - } - - /** - * Constructor. - * - * @param api the API connection to be used by the resource. - * @param url to endpoint with paging support. - * @param limit the maximum number of items to return in a page. - * @param body the body to send to the requested endpoint. - * @param marker the marker where the iterator will begin - */ - public BoxResourceIterable(BoxAPIConnection api, URL url, int limit, JsonObject body, String marker) { - this.api = api; - this.url = url; - this.limit = limit; - this.iterator = new IteratorImpl(marker, body); - } - - /** - * Factory to build a new instance for a received JSON item. - * - * @param jsonObject of the item - * @return the item instance - */ - protected abstract T factory(JsonObject jsonObject); - - /** - * Builds internal read-only iterator over {@link BoxResource}-s. - * - * @return iterator implementation - * @see Iterable#iterator() - */ - @Override - public Iterator iterator() { - return this.iterator; - } - - /** - * Builds internal read-only iterator over {@link BoxResource}-s. - * - * @return iterator implementation - * @see Iterable#iterator() - */ - public String getNextMarker() { - return this.iterator.markerNext; - } - - /** - * Paging implementation. - */ - private class IteratorImpl implements Iterator { - - /** - * Base 64 encoded string that represents where the paging should being. It should be left blank to begin - * paging. - */ - private String markerNext; - - /** - * Current loaded page. - */ - private JsonArray page; - - /** - * Cursor within the page (index of a next item for read). - */ - private int pageCursor; - - /** - * The body to include in the request. - */ - private JsonObject body; - - /** - * Constructor. - * - * @param marker the marker at which the iterator will begin - * @param body Request body - */ - IteratorImpl(String marker, JsonObject body) { - this.markerNext = marker; - this.body = body; - this.loadNextPage(); - } - - /** - * Loads next page. - */ - private void loadNextPage() { - String existingQuery = BoxResourceIterable.this.url.getQuery(); - QueryStringBuilder builder = new QueryStringBuilder(existingQuery); - builder.appendParam(PARAMETER_LIMIT, BoxResourceIterable.this.limit); - if (this.markerNext != null) { - if (this.body != null) { - this.body.set("marker", this.markerNext); - } else { - builder.appendParam(PARAMETER_MARKER, this.markerNext); - } - } - - URL url; - try { - url = builder.replaceQuery(BoxResourceIterable.this.url); - } catch (MalformedURLException e) { - throw new BoxAPIException("Couldn't append a query string to the provided URL."); - } - - BoxJSONRequest request; - if (this.body != null) { - request = new BoxJSONRequest(BoxResourceIterable.this.api, url, "POST"); - request.setBody(this.body.toString()); - } else { - request = new BoxJSONRequest(BoxResourceIterable.this.api, url, "GET"); - } - - try (BoxJSONResponse response = request.send()) { - JsonObject pageBody = Json.parse(response.getJSON()).asObject(); - - JsonValue markerNextValue = pageBody.get(BODY_PARAMETER_MARKER_NEXT); - if (markerNextValue != null && markerNextValue.isString()) { - this.markerNext = markerNextValue.asString(); - } else { - this.markerNext = null; - } - - this.page = pageBody.get(BODY_PARAMETER_ENTRIES).asArray(); - this.pageCursor = 0; - } - } - - /** - * {@inheritDoc} - */ - @Override - public boolean hasNext() { - if (this.pageCursor < this.page.size()) { - return true; - } - if (this.markerNext == null || this.markerNext.isEmpty()) { - return false; - } - this.loadNextPage(); - return !this.page.isEmpty(); - } - - /** - * {@inheritDoc} - */ - @Override - public T next() { - if (!this.hasNext()) { - throw new NoSuchElementException(); - } - - JsonObject entry = this.page.get(this.pageCursor++).asObject(); - return BoxResourceIterable.this.factory(entry); - } - - /** - * @throws UnsupportedOperationException Remove is not supported - */ - @Override - public void remove() { - throw new UnsupportedOperationException(); - } - } - -} diff --git a/src/main/java/com/box/sdk/BoxResourceType.java b/src/main/java/com/box/sdk/BoxResourceType.java deleted file mode 100644 index 08bf13b9d..000000000 --- a/src/main/java/com/box/sdk/BoxResourceType.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.box.sdk; - -import java.lang.annotation.Documented; -import java.lang.annotation.ElementType; -import java.lang.annotation.Inherited; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Type of resource (e.g.: folder, file, comment, etc...). - * - * @since 2.2.1 - */ -@Documented -@Inherited -@Target(ElementType.TYPE) -@Retention(RetentionPolicy.RUNTIME) -public @interface BoxResourceType { - - // Bug in checkstyle: Unused Javadoc tag. - // TODO checkstyle: need re-evaluation after checkstyle update - //CHECKSTYLE:OFF - - /** - * @return Type of resource (e.g.: folder, file, comment, etc...). - */ - //CHECKSTYLE:ON - String value(); - -} diff --git a/src/main/java/com/box/sdk/BoxRetentionPolicy.java b/src/main/java/com/box/sdk/BoxRetentionPolicy.java deleted file mode 100644 index b23e2ac82..000000000 --- a/src/main/java/com/box/sdk/BoxRetentionPolicy.java +++ /dev/null @@ -1,834 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * Represents a retention policy. - * A retention policy blocks permanent deletion of content for a specified amount of time. - * Admins can create retention policies and then later assign them to specific folders or their entire enterprise. - * - * @see Box retention policy - * - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly.

    - */ -@BoxResourceType("retention_policy") -public class BoxRetentionPolicy extends BoxResource { - /** - * The URL template used for operation with retention policies. - */ - public static final URLTemplate RETENTION_POLICIES_URL_TEMPLATE = new URLTemplate("retention_policies"); - - /** - * The URL template used for operation with retention policy with given ID. - */ - public static final URLTemplate POLICY_URL_TEMPLATE = new URLTemplate("retention_policies/%s"); - - /** - * The URL template used for operation with retention policy assignments. - */ - public static final URLTemplate ASSIGNMENTS_URL_TEMPLATE = new URLTemplate("retention_policies/%s/assignments"); - - /** - * Will cause the content retained by the policy to be permanently deleted. - */ - public static final String ACTION_PERMANENTLY_DELETE = "permanently_delete"; - - /** - * Will lift the retention policy from the content, allowing it to be deleted by users. - */ - public static final String ACTION_REMOVE_RETENTION = "remove_retention"; - - /** - * Status corresponding to active retention policy. - */ - public static final String STATUS_ACTIVE = "active"; - - /** - * Status corresponding to retired retention policy. - */ - public static final String STATUS_RETIRED = "retired"; - - /** - * The default limit of entries per response. - */ - private static final int DEFAULT_LIMIT = 100; - - /** - * Constructs a retention policy for a resource with a given ID. - * - * @param api the API connection to be used by the resource. - * @param id the ID of the resource. - */ - public BoxRetentionPolicy(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Used to create a new indefinite retention policy. - * - * @param api the API connection to be used by the created user. - * @param name the name of the retention policy. - * @return the created retention policy's info. - */ - public static BoxRetentionPolicy.Info createIndefinitePolicy(BoxAPIConnection api, String name) { - return createRetentionPolicy( - api, name, BoxRetentionPolicyType.Indefinite, 0, BoxRetentionPolicyAction.RemoveRetention - ); - } - - /** - * Used to create a new indefinite retention policy with optional parameters. - * - * @param api the API connection to be used by the created user. - * @param name the name of the retention policy. - * @param optionalParams the optional parameters. - * @return the created retention policy's info. - */ - public static BoxRetentionPolicy.Info createIndefinitePolicy( - BoxAPIConnection api, String name, RetentionPolicyParams optionalParams - ) { - return createRetentionPolicy( - api, name, BoxRetentionPolicyType.Indefinite, 0, BoxRetentionPolicyAction.RemoveRetention, optionalParams - ); - } - - /** - * Used to create a new finite retention policy. - * - * @param api the API connection to be used by the created user. - * @param name the name of the retention policy. - * @param length the duration in days that the retention policy will be active for after being assigned to content. - * @param action the disposition action can be "permanently_delete" or "remove_retention". - * @return the created retention policy's info. - */ - public static BoxRetentionPolicy.Info createFinitePolicy(BoxAPIConnection api, - String name, - int length, - BoxRetentionPolicyAction action) { - return createRetentionPolicy(api, name, BoxRetentionPolicyType.Finite, length, action); - } - - /** - * Used to create a new finite retention policy with optional parameters. - * - * @param api the API connection to be used by the created user. - * @param name the name of the retention policy. - * @param length the duration in days that the retention policy will be active for after being assigned to content. - * @param action the disposition action can be "permanently_delete" or "remove_retention". - * @param optionalParams the optional parameters. - * @return the created retention policy's info. - */ - public static BoxRetentionPolicy.Info createFinitePolicy( - BoxAPIConnection api, - String name, - int length, - BoxRetentionPolicyAction action, - RetentionPolicyParams optionalParams - ) { - return createRetentionPolicy(api, name, BoxRetentionPolicyType.Finite, length, action, optionalParams); - } - - /** - * Used to create a new retention policy. - * - * @param api the API connection to be used by the created user. - * @param name the name of the retention policy. - * @param type the type of the retention policy. Can be "finite" or "indefinite". - * @param length the duration in days that the retention policy will be active for after being assigned to content. - * @param action the disposition action can be "permanently_delete" or "remove_retention". - * @return the created retention policy's info. - */ - private static BoxRetentionPolicy.Info createRetentionPolicy(BoxAPIConnection api, - String name, - BoxRetentionPolicyType type, - int length, - BoxRetentionPolicyAction action) { - return createRetentionPolicy(api, name, type, length, action, null); - } - - /** - * Used to create a new retention policy with optional parameters. - * - * @param api the API connection to be used by the created user. - * @param name the name of the retention policy. - * @param type the type of the retention policy. Can be "finite" or "indefinite". - * @param length the duration in days that the retention policy will be active for after being assigned to content. - * @param action the disposition action can be "permanently_delete" or "remove_retention". - * @param optionalParams the optional parameters. - * @return the created retention policy's info. - */ - private static BoxRetentionPolicy.Info createRetentionPolicy( - BoxAPIConnection api, - String name, - BoxRetentionPolicyType type, - int length, - BoxRetentionPolicyAction action, - RetentionPolicyParams optionalParams - ) { - URL url = RETENTION_POLICIES_URL_TEMPLATE.build(api.getBaseURL()); - BoxJSONRequest request = new BoxJSONRequest(api, url, "POST"); - JsonObject requestJSON = new JsonObject() - .add("policy_name", name) - .add("policy_type", type.value) - .add("disposition_action", action.value); - if (type != BoxRetentionPolicyType.Indefinite) { - requestJSON.add("retention_length", length); - } - if (optionalParams != null) { - requestJSON.add("can_owner_extend_retention", optionalParams.getCanOwnerExtendRetention()); - requestJSON.add("are_owners_notified", optionalParams.getAreOwnersNotified()); - requestJSON.add("description", optionalParams.getDescription()); - requestJSON.add("retention_type", optionalParams.getRetentionType().toJSONString()); - - List customNotificationRecipients = optionalParams.getCustomNotificationRecipients(); - if (customNotificationRecipients.size() > 0) { - JsonArray users = new JsonArray(); - for (BoxUser.Info user : customNotificationRecipients) { - JsonObject userJSON = new JsonObject() - .add("type", "user") - .add("id", user.getID()); - users.add(userJSON); - } - requestJSON.add("custom_notification_recipients", users); - } - } - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - BoxRetentionPolicy createdPolicy = new BoxRetentionPolicy(api, responseJSON.get("id").asString()); - return createdPolicy.new Info(responseJSON); - } - } - - /** - * Returns all the retention policies. - * - * @param api the API connection to be used by the resource. - * @param fields the fields to retrieve. - * @return an iterable with all the retention policies. - */ - public static Iterable getAll(final BoxAPIConnection api, String... fields) { - return getAll(null, null, null, DEFAULT_LIMIT, api, fields); - } - - /** - * Returns all the retention policies with specified filters. - * - * @param name a name to filter the retention policies by. A trailing partial match search is performed. - * Set to null if no name filtering is required. - * @param type a policy type to filter the retention policies by. Set to null if no type filtering is required. - * @param userID a user id to filter the retention policies by. Set to null if no type filtering is required. - * @param limit the limit of items per single response. The default value is 100. - * @param api the API connection to be used by the resource. - * @param fields the fields to retrieve. - * @return an iterable with all the retention policies met search conditions. - */ - public static Iterable getAll( - String name, String type, String userID, int limit, final BoxAPIConnection api, String... fields) { - QueryStringBuilder queryString = new QueryStringBuilder(); - if (name != null) { - queryString.appendParam("policy_name", name); - } - if (type != null) { - queryString.appendParam("policy_type", type); - } - if (userID != null) { - queryString.appendParam("created_by_user_id", userID); - } - if (fields.length > 0) { - queryString.appendParam("fields", fields); - } - URL url = RETENTION_POLICIES_URL_TEMPLATE.buildWithQuery(api.getBaseURL(), queryString.toString()); - return new BoxResourceIterable(api, url, limit) { - - @Override - protected BoxRetentionPolicy.Info factory(JsonObject jsonObject) { - BoxRetentionPolicy policy = new BoxRetentionPolicy(api, jsonObject.get("id").asString()); - return policy.new Info(jsonObject); - } - - }; - } - - /** - * Returns iterable with all folder assignments of this retention policy. - * - * @param fields the fields to retrieve. - * @return an iterable containing all folder assignments. - */ - public Iterable getFolderAssignments(String... fields) { - return this.getFolderAssignments(DEFAULT_LIMIT, fields); - } - - /** - * Returns iterable with all folder assignments of this retention policy. - * - * @param limit the limit of entries per response. The default value is 100. - * @param fields the fields to retrieve. - * @return an iterable containing all folder assignments. - */ - public Iterable getFolderAssignments(int limit, String... fields) { - return this.getAssignments(BoxRetentionPolicyAssignment.TYPE_FOLDER, limit, fields); - } - - /** - * Returns iterable with all enterprise assignments of this retention policy. - * - * @param fields the fields to retrieve. - * @return an iterable containing all enterprise assignments. - */ - public Iterable getEnterpriseAssignments(String... fields) { - return this.getEnterpriseAssignments(DEFAULT_LIMIT, fields); - } - - /** - * Returns iterable with all enterprise assignments of this retention policy. - * - * @param limit the limit of entries per response. The default value is 100. - * @param fields the fields to retrieve. - * @return an iterable containing all enterprise assignments. - */ - public Iterable getEnterpriseAssignments(int limit, String... fields) { - return this.getAssignments(BoxRetentionPolicyAssignment.TYPE_ENTERPRISE, limit, fields); - } - - /** - * Returns iterable with all assignments of this retention policy. - * - * @param fields the fields to retrieve. - * @return an iterable containing all assignments. - */ - public Iterable getAllAssignments(String... fields) { - return this.getAllAssignments(DEFAULT_LIMIT, fields); - } - - /** - * Returns iterable with all assignments of this retention policy. - * - * @param limit the limit of entries per response. The default value is 100. - * @param fields the fields to retrieve. - * @return an iterable containing all assignments. - */ - public Iterable getAllAssignments(int limit, String... fields) { - return this.getAssignments(null, limit, fields); - } - - /** - * Returns iterable with all assignments of given type of this retention policy. - * - * @param type the type of the retention policy assignment to retrieve. Can either be "folder" or "enterprise". - * @param limit the limit of entries per response. The default value is 100. - * @param fields the fields to retrieve. - * @return an iterable containing all assignments of given type. - */ - private Iterable getAssignments(String type, int limit, String... fields) { - QueryStringBuilder queryString = new QueryStringBuilder(); - if (type != null) { - queryString.appendParam("type", type); - } - if (fields.length > 0) { - queryString.appendParam("fields", fields); - } - URL url = ASSIGNMENTS_URL_TEMPLATE.buildWithQuery(getAPI().getBaseURL(), queryString.toString(), getID()); - return new BoxResourceIterable(getAPI(), url, limit) { - - @Override - protected BoxRetentionPolicyAssignment.Info factory(JsonObject jsonObject) { - BoxRetentionPolicyAssignment assignment - = new BoxRetentionPolicyAssignment(getAPI(), jsonObject.get("id").asString()); - return assignment.new Info(jsonObject); - } - - }; - } - - /** - * Assigns this retention policy to folder. - * - * @param folder the folder to assign policy to. - * @return info about created assignment. - */ - public BoxRetentionPolicyAssignment.Info assignTo(BoxFolder folder) { - return BoxRetentionPolicyAssignment.createAssignmentToFolder(this.getAPI(), this.getID(), folder.getID()); - } - - /** - * Assigns this retention policy to the current enterprise. - * - * @return info about created assignment. - */ - public BoxRetentionPolicyAssignment.Info assignToEnterprise() { - return BoxRetentionPolicyAssignment.createAssignmentToEnterprise(this.getAPI(), this.getID()); - } - - /** - * Assigns this retention policy to a metadata template, optionally with certain field values. - * - * @param templateID the ID of the metadata template to apply to. - * @param fieldFilters optional field value filters. - * @return info about the created assignment. - */ - public BoxRetentionPolicyAssignment.Info assignToMetadataTemplate(String templateID, - MetadataFieldFilter... fieldFilters) { - return assignToMetadataTemplate(templateID, null, fieldFilters); - } - - /** - * Assigns this retention policy to a metadata template, optionally with certain field values. - * - * @param templateID the ID of the metadata template to apply to. - * @param startDateField the date the retention policy assignment begins. This field can be a date field's metadata attribute key id. - * @param fieldFilters optional field value filters. - * @return info about the created assignment. - */ - public BoxRetentionPolicyAssignment.Info assignToMetadataTemplate(String templateID, - String startDateField, - MetadataFieldFilter... fieldFilters) { - return BoxRetentionPolicyAssignment.createAssignmentToMetadata(this.getAPI(), this.getID(), templateID, - startDateField, fieldFilters); - } - - /** - * Updates the information about this retention policy with any info fields that have been modified locally. - * - * @param info the updated info. - */ - public void updateInfo(BoxRetentionPolicy.Info info) { - URL url = POLICY_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - request.setBody(info.getPendingChanges()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - info.update(responseJSON); - } - } - - /** - * Returns information about this retention policy. - * - * @param fields the fields to retrieve. - * @return information about this retention policy. - */ - public BoxRetentionPolicy.Info getInfo(String... fields) { - QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - URL url = POLICY_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), builder.toString(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - return new Info(responseJSON); - } - } - - /** - * Contains information about the retention policy. - */ - public class Info extends BoxResource.Info { - - /** - * @see #getPolicyName() - */ - private String policyName; - - /** - * @see #getPolicyType() - */ - private String policyType; - - /** - * @see #getRetentionLength() - */ - private int retentionLength; - - /** - * @see #getDispositionAction() - */ - private String dispositionAction; - - /** - * @see #getStatus() - */ - private String status; - - /** - * @see #getCreatedBy() - */ - private BoxUser.Info createdBy; - - /** - * @see #getCreatedAt() - */ - private Date createdAt; - - /** - * @see #getModifiedAt() - */ - private Date modifiedAt; - - /** - * @see #getCanOwnerExtendRetention() - */ - private boolean canOwnerExtendRetention; - - /** - * @see #getAreOwnersNotified() - */ - private boolean areOwnersNotified; - - /** - * @see #getDescription() - */ - private String description; - - /** - * @see #getRetentionType() - */ - private RetentionPolicyParams.RetentionType retentionType; - - private List customNotificationRecipients; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - Info(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * {@inheritDoc} - */ - @Override - public BoxResource getResource() { - return BoxRetentionPolicy.this; - } - - /** - * Gets the name given to the retention policy. - * - * @return name given to the retention policy. - */ - public String getPolicyName() { - return this.policyName; - } - - /** - * Update the policy name to a new value. - * - * @param policyName the new policy name. - */ - public void setPolicyName(String policyName) { - this.policyName = policyName; - this.addPendingChange("policy_name", policyName); - } - - /** - * Gets the type of the retention policy. - * A retention policy type can either be "finite", - * where a specific amount of time to retain the content is known upfront, - * or "indefinite", where the amount of time to retain the content is still unknown. - * - * @return the type of the retention policy. - */ - public String getPolicyType() { - return this.policyType; - } - - /** - * Gets the length of the retention policy. This length specifies the duration - * in days that the retention policy will be active for after being assigned to content. - * - * @return the length of the retention policy. - */ - public int getRetentionLength() { - return this.retentionLength; - } - - /** - * - * @param retentionLength The length of the retention policy. - */ - public void setRetentionLength(int retentionLength) { - this.retentionLength = retentionLength; - this.addPendingChange("retention_length", retentionLength); - } - - /** - * Gets the disposition action of the retention policy. - * This action can be "permanently_delete", or "remove_retention". - * - * @return the disposition action of the retention policy. - */ - public String getDispositionAction() { - return this.dispositionAction; - } - - /** - * Set the action to take when retention period ends. - * - * @param dispositionAction the new action. - */ - public void setDispositionAction(String dispositionAction) { - this.dispositionAction = dispositionAction; - this.addPendingChange("disposition_action", dispositionAction); - } - - /** - * Gets the status of the retention policy. - * The status can be "active" or "retired". - * - * @return the status of the retention policy. - */ - public String getStatus() { - return this.status; - } - - /** - * Set the policy status. - * - * @param status the new status value. - */ - public void setStatus(String status) { - this.status = status; - this.addPendingChange("status", status); - } - - /** - * Gets info about the user created the retention policy. - * - * @return info about the user created the retention policy. - */ - public BoxUser.Info getCreatedBy() { - return this.createdBy; - } - - /** - * Gets the time that the retention policy was created. - * - * @return the time that the retention policy was created. - */ - public Date getCreatedAt() { - return this.createdAt; - } - - /** - * Gets the time that the retention policy was last modified. - * - * @return the time that the retention policy was last modified. - */ - public Date getModifiedAt() { - return this.modifiedAt; - } - - /** - * Gets the flag to denote that the owner of a retained file can extend the retention when near expiration. - * - * @return the boolean flag. - */ - public boolean getCanOwnerExtendRetention() { - return this.canOwnerExtendRetention; - } - - /** - * Gets the flag to denote that owners and co-owners of a retained file will get notified when near expiration. - * - * @return the boolean flag. - */ - public boolean getAreOwnersNotified() { - return this.areOwnersNotified; - } - - /** - * Gets the additional text desription of the retention policy. - * - * @return the additional text desription of the retention policy - */ - public String getDescription() { - return this.description; - } - - /** - * Set the additional text desription of the retention policy. - * - * @param description the new text desription of the retention policy - */ - public void setDescription(String description) { - this.description = description; - this.addPendingChange("description", description); - } - - /** - * - * @return retention type. It can be one of values: `modifiable` or `non-modifiable`. - * `modifiable` means that you can modify the retention policy. For example, you can add or remove folders, - * shorten or lengthen the policy duration, or delete the assignment. - * `non-modifiable` means that can modify the retention policy only in a limited way: add a folder, - * lengthen the duration, retire the policy, change the disposition action or notification settings. - * You cannot perform other actions, such as deleting the assignment or shortening the policy duration. - */ - public RetentionPolicyParams.RetentionType getRetentionType() { - return retentionType; - } - - /** - * - * It is not possible to set retention type to `modifiable` once it was set to `non-modifiable`. - */ - public void setRetentionTypeToNonModifiable() { - this.retentionType = RetentionPolicyParams.RetentionType.NON_MODIFIABLE; - this.addPendingChange("retention_type", retentionType.toJSONString()); - } - - /** - * Gets the list of users to be notified of a retained file when near expiration. - * - * @return the list of users to be notified. - */ - public List getCustomNotificationRecipients() { - return this.customNotificationRecipients; - } - - /** - * {@inheritDoc} - */ - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - switch (memberName) { - case "policy_name": - this.policyName = value.asString(); - break; - case "policy_type": - this.policyType = value.asString(); - break; - case "retention_length": - int intVal; - if (value.asString().equals(BoxRetentionPolicyType.Indefinite.value)) { - intVal = -1; - } else { - intVal = Integer.parseInt(value.asString()); - } - this.retentionLength = intVal; - break; - case "disposition_action": - this.dispositionAction = value.asString(); - break; - case "status": - this.status = value.asString(); - break; - case "created_by": - JsonObject userJSON = value.asObject(); - if (this.createdBy == null) { - String userID = userJSON.get("id").asString(); - BoxUser user = new BoxUser(getAPI(), userID); - this.createdBy = user.new Info(userJSON); - } else { - this.createdBy.update(userJSON); - } - break; - case "created_at": - this.createdAt = BoxDateFormat.parse(value.asString()); - break; - case "modified_at": - this.modifiedAt = BoxDateFormat.parse(value.asString()); - break; - case "can_owner_extend_retention": - this.canOwnerExtendRetention = value.asBoolean(); - break; - case "are_owners_notified": - this.areOwnersNotified = value.asBoolean(); - break; - case "description": - this.description = value.asString(); - break; - case "retention_type": - this.retentionType = RetentionPolicyParams.RetentionType.fromJSONString(value.asString()); - break; - case "custom_notification_recipients": - List recipients = new ArrayList<>(); - for (JsonValue recipientJSON : value.asArray()) { - String userID = recipientJSON.asObject().get("id").asString(); - BoxUser user = new BoxUser(getAPI(), userID); - recipients.add(user.new Info(recipientJSON.asObject())); - } - this.customNotificationRecipients = recipients; - break; - default: - break; - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - } - - private enum BoxRetentionPolicyType { - /** - * Type for finite retention policies. Finite retention policies has the duration. - */ - Finite("finite"), - /** - * Type for indefinite retention policies. Indefinite retention policies can have only - * {@link BoxRetentionPolicyAction#RemoveRetention} assigned action. - */ - Indefinite("indefinite"); - - private final String value; - - BoxRetentionPolicyType(String value) { - this.value = value; - } - } - - /** - * The disposition action of the retention policy. - */ - public enum BoxRetentionPolicyAction { - /** - * Will cause the content retained by the policy to be permanently deleted. - */ - PermanentlyDelete("permanently_delete"), - - /** - * Will lift the retention policy from the content, allowing it to be deleted by users. - */ - RemoveRetention("remove_retention"); - - private final String value; - - BoxRetentionPolicyAction(String value) { - this.value = value; - } - } -} diff --git a/src/main/java/com/box/sdk/BoxRetentionPolicyAssignment.java b/src/main/java/com/box/sdk/BoxRetentionPolicyAssignment.java deleted file mode 100644 index a50e6bb64..000000000 --- a/src/main/java/com/box/sdk/BoxRetentionPolicyAssignment.java +++ /dev/null @@ -1,442 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * Represents a retention policy assignment. - * - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly.

    - */ -@BoxResourceType("retention_policy_assignment") -public class BoxRetentionPolicyAssignment extends BoxResource { - - /** - * Type for folder policy assignment. - */ - public static final String TYPE_FOLDER = "folder"; - - /** - * Type for enterprise policy assignment. - */ - public static final String TYPE_ENTERPRISE = "enterprise"; - - /** - * Type for metadata policy assignment. - */ - public static final String TYPE_METADATA = "metadata_template"; - - /** - * The URL template used for operation with retention policy assignments. - */ - public static final URLTemplate ASSIGNMENTS_URL_TEMPLATE = new URLTemplate("retention_policy_assignments"); - - /** - * The URL template used for operation with retention policy assignment with given ID. - */ - public static final URLTemplate RETENTION_POLICY_ASSIGNMENT_URL_TEMPLATE - = new URLTemplate("retention_policy_assignments/%s"); - - /** - * The URL template used for operation with files under retention with given retention policy assignment ID. - */ - public static final URLTemplate FILES_UNDER_RETENTION_URL_TEMPLATE - = new URLTemplate("retention_policy_assignments/%s/files_under_retention"); - - /** - * The URL template used for operation with file versions under retention with given retention policy assignment ID. - */ - public static final URLTemplate FILE_VERSIONS_UNDER_RETENTION_URL_TEMPLATE - = new URLTemplate("retention_policy_assignments/%s/file_versions_under_retention"); - - private static final int DEFAULT_LIMIT = 100; - - /** - * Constructs a BoxResource for a resource with a given ID. - * - * @param api the API connection to be used by the resource. - * @param id the ID of the resource. - */ - public BoxRetentionPolicyAssignment(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Assigns retention policy with givenID to the enterprise. - * - * @param api the API connection to be used by the created assignment. - * @param policyID id of the assigned retention policy. - * @return info about created assignment. - */ - public static BoxRetentionPolicyAssignment.Info createAssignmentToEnterprise(BoxAPIConnection api, - String policyID) { - return createAssignment(api, policyID, new JsonObject().add("type", TYPE_ENTERPRISE), null, null); - } - - /** - * Assigns retention policy with givenID to the folder. - * - * @param api the API connection to be used by the created assignment. - * @param policyID id of the assigned retention policy. - * @param folderID id of the folder to assign policy to. - * @return info about created assignment. - */ - public static BoxRetentionPolicyAssignment.Info createAssignmentToFolder(BoxAPIConnection api, String policyID, - String folderID) { - return createAssignment( - api, policyID, new JsonObject().add("type", TYPE_FOLDER).add("id", folderID), null, null); - } - - /** - * Assigns a retention policy to all items with a given metadata template, optionally matching on fields. - * - * @param api the API connection to be used by the created assignment. - * @param policyID id of the assigned retention policy. - * @param templateID the ID of the metadata template to assign the policy to. - * @param filter optional fields to match against in the metadata template. - * @return info about the created assignment. - */ - public static BoxRetentionPolicyAssignment.Info createAssignmentToMetadata(BoxAPIConnection api, - String policyID, - String templateID, - MetadataFieldFilter... filter) { - return createAssignmentToMetadata(api, policyID, templateID, null, filter); - } - - /** - * Assigns a retention policy to all items with a given metadata template, optionally matching on fields. - * - * @param api the API connection to be used by the created assignment. - * @param policyID id of the assigned retention policy. - * @param templateID the ID of the metadata template to assign the policy to. - * @param startDateField The date the retention policy assignment begins. This field can be a date field's metadata attribute key id. - * @param filter optional fields to match against in the metadata template. - * @return info about the created assignment. - */ - public static BoxRetentionPolicyAssignment.Info createAssignmentToMetadata(BoxAPIConnection api, - String policyID, - String templateID, - String startDateField, - MetadataFieldFilter... filter) { - JsonObject assignTo = new JsonObject().add("type", TYPE_METADATA).add("id", templateID); - JsonArray filters = null; - if (filter.length > 0) { - filters = new JsonArray(); - for (MetadataFieldFilter f : filter) { - filters.add(f.getJsonObject()); - } - } - return createAssignment(api, policyID, assignTo, startDateField, filters); - } - - /** - * Assigns retention policy with givenID to folder or enterprise. - * - * @param api the API connection to be used by the created assignment. - * @param policyID id of the assigned retention policy. - * @param assignTo object representing folder or enterprise to assign policy to. - * @param filter Filters - * @return info about created assignment. - */ - private static BoxRetentionPolicyAssignment.Info createAssignment(BoxAPIConnection api, - String policyID, - JsonObject assignTo, - String startDateField, - JsonArray filter) { - URL url = ASSIGNMENTS_URL_TEMPLATE.build(api.getBaseURL()); - BoxJSONRequest request = new BoxJSONRequest(api, url, "POST"); - - JsonObject requestJSON = new JsonObject() - .add("policy_id", policyID) - .add("assign_to", assignTo); - - if (filter != null) { - requestJSON.add("filter_fields", filter); - } - if (startDateField != null) { - requestJSON.add("start_date_field", startDateField); - } - - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - BoxRetentionPolicyAssignment createdAssignment - = new BoxRetentionPolicyAssignment(api, responseJSON.get("id").asString()); - return createdAssignment.new Info(responseJSON); - } - } - - /** - * @param fields the fields to retrieve. - * @return information about this retention policy assignment. - */ - public BoxRetentionPolicyAssignment.Info getInfo(String... fields) { - QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - URL url = RETENTION_POLICY_ASSIGNMENT_URL_TEMPLATE.buildWithQuery( - this.getAPI().getBaseURL(), builder.toString(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - return new Info(responseJSON); - } - } - - /** - * Retrieves all files under retention for assignment as Iterable. Default limit is 100 - * - * @param fields the fields to retrieve. - * @return an iterable contains information about all files under retentions as Iterable. - */ - public Iterable getFilesUnderRetention(String... fields) { - return this.getFilesUnderRetention(DEFAULT_LIMIT, fields); - } - - /** - * Retrieves all files under retention for assignment as Iterable. - * - * @param limit the limit of retrieved entries per page. - * @param fields the fields to retrieve. - * @return an iterable contains information about all files under retentions as Iterable. - */ - public Iterable getFilesUnderRetention(int limit, String... fields) { - QueryStringBuilder queryString = new QueryStringBuilder(); - if (fields.length > 0) { - queryString.appendParam("fields", fields); - } - URL url = FILES_UNDER_RETENTION_URL_TEMPLATE.buildWithQuery(getAPI().getBaseURL(), - queryString.toString(), getID()); - return new BoxResourceIterable(getAPI(), url, limit) { - @Override - protected BoxFile.Info factory(JsonObject jsonObject) { - BoxFile boxFile = new BoxFile(getAPI(), jsonObject.get("id").asString()); - return boxFile.new Info(jsonObject); - } - }; - } - - /** - * Retrieves all file version under retention for assignment as Iterable. Default limit is 100. - * - * @param fields the fields to retrieve. - * @return an iterable contains information about all file versions under retentions as Iterable. - */ - public Iterable getFileVersionsUnderRetention(String... fields) { - return this.getFileVersionsUnderRetention(DEFAULT_LIMIT, fields); - } - - /** - * Retrieves all file version under retention for assignment as Iterable. - * - * @param limit the limit of retrieved entries per page. - * @param fields the fields to retrieve. - * @return an iterable contains information about all file versions under retentions as Iterable. - */ - public Iterable getFileVersionsUnderRetention(int limit, String... fields) { - QueryStringBuilder queryString = new QueryStringBuilder(); - if (fields.length > 0) { - queryString.appendParam("fields", fields); - } - URL url = FILE_VERSIONS_UNDER_RETENTION_URL_TEMPLATE.buildWithQuery(getAPI().getBaseURL(), - queryString.toString(), getID()); - return new BoxResourceIterable(getAPI(), url, limit) { - @Override - protected BoxFile.Info factory(JsonObject jsonObject) { - BoxFile boxFile = new BoxFile(getAPI(), jsonObject.get("id").asString()); - return boxFile.new Info(jsonObject); - } - }; - } - - /** - * Deletes retention policy assignment. - */ - public void delete() { - URL url = RETENTION_POLICY_ASSIGNMENT_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "DELETE"); - request.send().close(); - } - - /** - * Contains information about the retention policy. - */ - public class Info extends BoxResource.Info { - - /** - * @see #getRetentionPolicy() - */ - private BoxRetentionPolicy.Info retentionPolicy; - - /** - * @see #getAssignedBy() - */ - private BoxUser.Info assignedBy; - - /** - * @see #getAssignedAt() - */ - private Date assignedAt; - - /** - * @see #getAssignedToType() - */ - private String assignedToType; - - /** - * @see #getAssignedToID() - */ - private String assignedToID; - - /** - * @see #getStartDateField() - */ - private String startDateField; - - private List filterFields; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - Info(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * {@inheritDoc} - */ - @Override - public BoxResource getResource() { - return BoxRetentionPolicyAssignment.this; - } - - /** - * @return the retention policy that has been assigned to this content. - */ - public BoxRetentionPolicy.Info getRetentionPolicy() { - return this.retentionPolicy; - } - - /** - * @return the info about the user that created the retention policy assignment. - */ - public BoxUser.Info getAssignedBy() { - return this.assignedBy; - } - - /** - * @return the time that the retention policy assignment was created. - */ - public Date getAssignedAt() { - return this.assignedAt; - } - - /** - * @return type of the content that is under retention. Can either be "enterprise" or "folder". - */ - public String getAssignedToType() { - return this.assignedToType; - } - - /** - * @return id of the folder that is under retention. - */ - public String getAssignedToID() { - return this.assignedToID; - } - - /** - * @return date the retention policy assignment begins - */ - public String getStartDateField() { - return this.startDateField; - } - - /** - * @return the array of metadata field filters, if present - */ - public List getFilterFields() { - - return this.filterFields; - } - - /** - * {@inheritDoc} - */ - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - if (memberName.equals("retention_policy")) { - JsonObject policyJSON = value.asObject(); - if (this.retentionPolicy == null) { - String policyID = policyJSON.get("id").asString(); - BoxRetentionPolicy policy = new BoxRetentionPolicy(getAPI(), policyID); - this.retentionPolicy = policy.new Info(policyJSON); - } else { - this.retentionPolicy.update(policyJSON); - } - } else if (memberName.equals("assigned_to")) { - JsonObject assignmentJSON = value.asObject(); - this.assignedToType = assignmentJSON.get("type").asString(); - if (this.assignedToType.equals(TYPE_ENTERPRISE)) { - this.assignedToID = null; - } else { - this.assignedToID = assignmentJSON.get("id").asString(); - } - } else if (memberName.equals("assigned_by")) { - JsonObject userJSON = value.asObject(); - if (this.assignedBy == null) { - String userID = userJSON.get("id").asString(); - BoxUser user = new BoxUser(getAPI(), userID); - this.assignedBy = user.new Info(userJSON); - } else { - this.assignedBy.update(userJSON); - } - } else if (memberName.equals("assigned_at")) { - this.assignedAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("start_date_field")) { - this.startDateField = value.asString(); - } else if (memberName.equals("filter_fields")) { - JsonArray jsonFilters = value.asArray(); - List filterFields = new ArrayList<>(); - for (int i = 0; i < jsonFilters.size(); i++) { - filterFields.add(new MetadataFieldFilter(jsonFilters.get(i).asObject())); - } - this.filterFields = filterFields; - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - } -} diff --git a/src/main/java/com/box/sdk/BoxSearch.java b/src/main/java/com/box/sdk/BoxSearch.java deleted file mode 100644 index c2efcedfa..000000000 --- a/src/main/java/com/box/sdk/BoxSearch.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; - -/** - * Represents search on Box. This class can be used to search through your box instance. - * In addition this lets you take advantage of all the advanced search features. - * - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly.

    - */ -public class BoxSearch { - - /** - * Search URL Template. - */ - public static final URLTemplate SEARCH_URL_TEMPLATE = new URLTemplate("search"); - private final BoxAPIConnection api; - - /** - * Constructs a Search to be used by everything. - * - * @param api the API connection to be used by the search. - */ - public BoxSearch(BoxAPIConnection api) { - this.api = api; - } - - /** - * Searches all descendant folders using a given query and query parameters. - * - * @param offset is the starting position. - * @param limit the maximum number of items to return. The default is 30 and the maximum is 200. - * @param bsp containing query and advanced search capabilities. - * @return a PartialCollection containing the search results. - */ - public PartialCollection searchRange(long offset, long limit, final BoxSearchParameters bsp) { - QueryStringBuilder builder = bsp.getQueryParameters() - .appendParam("limit", limit) - .appendParam("offset", offset); - URL url = SEARCH_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), builder.toString()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - String totalCountString = responseJSON.get("total_count").toString(); - long fullSize = Double.valueOf(totalCountString).longValue(); - PartialCollection results = new PartialCollection<>(offset, limit, fullSize); - JsonArray jsonArray = responseJSON.get("entries").asArray(); - for (JsonValue value : jsonArray) { - JsonObject jsonObject = value.asObject(); - BoxItem.Info parsedItemInfo = (BoxItem.Info) BoxResource.parseInfo(this.getAPI(), jsonObject); - if (parsedItemInfo != null) { - results.add(parsedItemInfo); - } - } - return results; - } - } - - /** - * Searches all descendant folders using a given query and query parameters. - * - * @param offset is the starting position. - * @param limit the maximum number of items to return. The default is 30 and the maximum is 200. - * @param bsp containing query and advanced search capabilities. - * @return a PartialCollection containing the search results. - */ - public PartialCollection searchRangeIncludeSharedLinks(long offset, long limit, - final BoxSearchParameters bsp) { - QueryStringBuilder builder = bsp.getQueryParameters() - .appendParam("include_recent_shared_links", "true") - .appendParam("limit", limit) - .appendParam("offset", offset); - URL url = SEARCH_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), builder.toString()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - String totalCountString = responseJSON.get("total_count").toString(); - long fullSize = Double.valueOf(totalCountString).longValue(); - PartialCollection results = new PartialCollection<>(offset, - limit, fullSize); - JsonArray jsonArray = responseJSON.get("entries").asArray(); - for (JsonValue value : jsonArray) { - JsonObject jsonObject = value.asObject(); - BoxSearchSharedLink parsedItem = new BoxSearchSharedLink(jsonObject, this.getAPI()); - results.add(parsedItem); - } - return results; - } - } - - /** - * Gets the API connection used by this resource. - * - * @return the API connection used by this resource. - */ - public BoxAPIConnection getAPI() { - return this.api; - } -} diff --git a/src/main/java/com/box/sdk/BoxSearchParameters.java b/src/main/java/com/box/sdk/BoxSearchParameters.java deleted file mode 100644 index c3377ff60..000000000 --- a/src/main/java/com/box/sdk/BoxSearchParameters.java +++ /dev/null @@ -1,522 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import java.util.List; - -/** - * Used to Setup Box Search Parameters - * - *

    Advanced Search support here allows a number of parameters be specified to take full advantage of - * box search capabilities. Query parameter is required in all cases except when Metadata templates - * searching is being used.

    - */ -public class BoxSearchParameters { - private String query; - private List fields; - private String scope; - private List fileExtensions; - private DateRange createdRange; - private DateRange updatedRange; - private SizeRange sizeRange; - private List ownerUserIds; - private List ancestorFolderIds; - private List contentTypes; - private String type; - private String trashContent; - private BoxMetadataFilter metadataFilter; - private String sort; - private String direction; - private List deleterUserIds; - private DateRange deletedRange; - - /** - * Creates a Box Search Parameters Objects without query set, specific for Metadata Only Searches. - */ - public BoxSearchParameters() { - } - - /** - * Creates a Box Search Parameters Objects with a query initiated. - * - * @param query parameter. - */ - public BoxSearchParameters(String query) { - this.query = query; - } - - /** - * Clears the Parameters before performing a new search. - * - * @return this.true; - */ - public boolean clearParameters() { - this.query = null; - this.fields = null; - this.scope = null; - this.fileExtensions = null; - this.createdRange = null; - this.updatedRange = null; - this.sizeRange = null; - this.ownerUserIds = null; - this.ancestorFolderIds = null; - this.contentTypes = null; - this.type = null; - this.trashContent = null; - this.metadataFilter = null; - this.sort = null; - this.direction = null; - this.deleterUserIds = null; - this.deletedRange = null; - return true; - } - - /** - * Get existing query String that is being used. - * - * @return this.query string. - */ - public String getQuery() { - return this.query; - } - - /** - * Set query string for that will be used to search. - * - * @param query is a String value. - */ - public void setQuery(String query) { - this.query = query; - } - - /** - * Get the existing fields that are used for the search criteria. - * - * @return this.List of fields. - */ - public List getFields() { - return this.fields; - } - - /** - * Set the existing fields that are used for the search criteria. - * - * @param fields specify what fields to be returned. - */ - public void setFields(List fields) { - this.fields = fields; - } - - /** - * Get the scope on which you want to search, ["enterprise","scope"]. - * - * @return this.current scope that is set. - */ - public String getScope() { - return this.scope; - } - - /** - * Set the scope for how you want to search, ["enterprise","scope"]. - * - * @param scope set scope you want to search. - */ - public void setScope(String scope) { - this.scope = scope; - } - - /** - * Get file extension filter (jpg,docx). - * - * @return this.list of extensions. - */ - public List getFileExtensions() { - return this.fileExtensions; - } - - /** - * Set file extension by providing a list of strings [jpg,docx]. - * - * @param fileExtensions applied as a filter for extensions. - */ - public void setFileExtensions(List fileExtensions) { - this.fileExtensions = fileExtensions; - } - - /** - * Get the DateRange filter to specify the when a file was created. - * - * @return this.createdRange DateRange. - */ - public DateRange getCreatedRange() { - return this.createdRange; - } - - /** - * Set the from DateRange filter to specify when a file was created. - * - * @param createdRange a start and end date on which a file was created. - */ - public void setCreatedRange(DateRange createdRange) { - this.createdRange = createdRange; - } - - /** - * Get the DateRange filter to specify the when a file was updated. - * - * @return this.updatedRange DateRange. - */ - public DateRange getUpdatedRange() { - return this.updatedRange; - } - - /** - * Set the from DateRange filter to specify when a file was updated. - * - * @param updatedRange a start and end date on which a file was updated. - */ - public void setUpdatedRange(DateRange updatedRange) { - this.updatedRange = updatedRange; - } - - /** - * Return the size range that is being used as a filter. - * - * @return this.sizeRange. - */ - public SizeRange getSizeRange() { - return this.sizeRange; - } - - /** - * Set the file size range for lower and upper bounds Bytes. - * - * @param sizeRange a size filter. - */ - public void setSizeRange(SizeRange sizeRange) { - this.sizeRange = sizeRange; - } - - /** - * Return the list of owner id's that are being applied as a search filter on the results. - * - * @return ownerUserIds. - */ - public List getOwnerUserIds() { - return this.ownerUserIds; - } - - /** - * Set the owner id's to be applied as a filter to restrict the results on specific file owners. - * - * @param ownerUserIds applied ownerId's. - */ - public void setOwnerUserIds(List ownerUserIds) { - this.ownerUserIds = ownerUserIds; - } - - /** - * Return the list of folder ids that is currently being used as applied filter. - * - * @return ancestorFolderIds. - */ - public List getAncestorFolderIds() { - return this.ancestorFolderIds; - } - - /** - * Set the list of folder id's to be applied as a filter on the search filters. - * - * @param ancestorFolderIds a list of folder ids that will contain results to specific folders. - */ - public void setAncestorFolderIds(List ancestorFolderIds) { - this.ancestorFolderIds = ancestorFolderIds; - } - - /** - * Return content types that or being applied as a filter (name,description,tags,file_content). - * - * @return contentTypes. - */ - public List getContentTypes() { - return this.contentTypes; - } - - /** - * Set list of content types that will be used as a filters. - * - * @param contentTypes a list of content types such as (name,description,tags,file_content). - */ - public void setContentTypes(List contentTypes) { - this.contentTypes = contentTypes; - } - - /** - * Return the type you want to return in your search. - * - * @return String type. - */ - public String getType() { - return this.type; - } - - /** - * Set the type you want to search for can be file, folder, or web_link. - * - * @param type can be file, folder, or web_link. - */ - public void setType(String type) { - this.type = type; - } - - /** - * Return the specified trash search preference. - * - * @return String trashContent. - */ - public String getTrashContent() { - return this.trashContent; - } - - /** - * Set trash filter. Can be trashed_only or non_trashed_only, without this parameter default to non_trashed_only. - * - * @param trashContent Can be trashed_only or non_trashed_only. - */ - public void setTrashContent(String trashContent) { - this.trashContent = trashContent; - } - - /** - * Retrieve the existing BoxMetaDataFilter. - * - * @return this.BoxMetaDataFilter - */ - public BoxMetadataFilter getMetadataFilter() { - return this.metadataFilter; - } - - /** - * Set the current list of Metadata Filters. - * - * @param metadataFilter a list of the current metadata filters. - */ - public void setMetadataFilter(BoxMetadataFilter metadataFilter) { - this.metadataFilter = metadataFilter; - } - - /** - * Retrieve the sort field for Box Search. - * - * @return String identifier for Sort. - */ - public String getSort() { - return this.sort; - } - - /** - * Set the sort field for Box Search. - * - * @param sortBy the field to sort the Box Search results by. - */ - public void setSort(String sortBy) { - this.sort = sortBy; - } - - /** - * Retrieves the sort direction for Box Search results. - * - * @return The direction of the Box Search sort. - */ - public String getDirection() { - return this.direction; - } - - /** - * Set the direction of the sort for the Box Search results. - * - * @param direction can be DESC or ASC. - */ - public void setDirection(String direction) { - this.direction = direction; - } - - /** - * Limits the search results to items that were deleted by the given list of users, defined as a list of comma separated user IDs. - * The trash_content parameter needs to be set to trashed_only. - * - * @return deleterUserIds. - */ - public List getDeleterUserIds() { - return this.deleterUserIds; - } - - /** - * Limits the search results to items that were deleted by the given list of users, defined as a list of comma separated user IDs. - * The trash_content parameter needs to be set to trashed_only. - * - * @param deleterUserIds a list of user ids. - */ - public void setDeleterUserIds(List deleterUserIds) { - this.deleterUserIds = deleterUserIds; - } - - /** - * Limits the search results to items that were deleted within the given date range. - * The trash_content parameter needs to be set to trashed_only. - * - * @return deletedRange. - */ - public DateRange getDeletedRange() { - return this.deletedRange; - } - - /** - * Limits the search results to items that were deleted within the given date range. - * The trash_content parameter needs to be set to trashed_only. - * - * @param deletedRange a date range. - */ - public void setDeletedRange(DateRange deletedRange) { - this.deletedRange = deletedRange; - } - - /** - * Checks String to see if the parameter is null. - * - * @param paramValue Object that will be checked if null. - * @return this.true if the parameter that is being checked is not null - */ - private boolean isNullOrEmpty(Object paramValue) { - boolean isNullOrEmpty = false; - if (paramValue == null) { - isNullOrEmpty = true; - } - if (paramValue instanceof String) { - if (((String) paramValue).trim().equalsIgnoreCase("")) { - isNullOrEmpty = true; - } - } else if (paramValue instanceof List) { - return ((List) paramValue).isEmpty(); - } - return isNullOrEmpty; - } - - /** - * Add BoxMetaDataFilter to the JsonArray boxMetadataFilterRequestArray. - * - * @return JsonArray that is formated Json request - */ - private JsonArray formatBoxMetadataFilterRequest() { - JsonArray boxMetadataFilterRequestArray = new JsonArray(); - - JsonObject boxMetadataFilter = new JsonObject() - .add("templateKey", this.metadataFilter.getTemplateKey()) - .add("scope", this.metadataFilter.getScope()) - .add("filters", this.metadataFilter.getFiltersList()); - boxMetadataFilterRequestArray.add(boxMetadataFilter); - - return boxMetadataFilterRequestArray; - } - - /** - * Concat a List into a CSV String. - * - * @param list list to concat - * @return csv string - */ - private String listToCSV(List list) { - String csvStr = ""; - for (String item : list) { - csvStr += "," + item; - } - - return csvStr.length() > 1 ? csvStr.substring(1) : csvStr; - } - - /** - * Get the Query Paramaters to be used for search request. - * - * @return this.QueryStringBuilder. - */ - public QueryStringBuilder getQueryParameters() { - QueryStringBuilder builder = new QueryStringBuilder(); - - if (this.isNullOrEmpty(this.query) && this.metadataFilter == null) { - throw new BoxAPIException( - "BoxSearchParameters requires either a search query or Metadata filter to be set." - ); - } - - //Set the query of the search - if (!this.isNullOrEmpty(this.query)) { - builder.appendParam("query", this.query); - } - //Set the scope of the search - if (!this.isNullOrEmpty(this.scope)) { - builder.appendParam("scope", this.scope); - } - //Acceptable Value: "jpg,png" - if (!this.isNullOrEmpty(this.fileExtensions)) { - builder.appendParam("file_extensions", this.listToCSV(this.fileExtensions)); - } - //Created Date Range: From Date - To Date - if ((this.createdRange != null)) { - builder.appendParam("created_at_range", this.createdRange.buildRangeString()); - } - //Updated Date Range: From Date - To Date - if ((this.updatedRange != null)) { - builder.appendParam("updated_at_range", this.updatedRange.buildRangeString()); - } - //Filesize Range - if ((this.sizeRange != null)) { - builder.appendParam("size_range", this.sizeRange.buildRangeString()); - } - //Owner Id's - if (!this.isNullOrEmpty(this.ownerUserIds)) { - builder.appendParam("owner_user_ids", this.listToCSV(this.ownerUserIds)); - } - //Ancestor ID's - if (!this.isNullOrEmpty(this.ancestorFolderIds)) { - builder.appendParam("ancestor_folder_ids", this.listToCSV(this.ancestorFolderIds)); - } - //Content Types: "name, description" - if (!this.isNullOrEmpty(this.contentTypes)) { - builder.appendParam("content_types", this.listToCSV(this.contentTypes)); - } - //Type of File: "file,folder,web_link" - if (this.type != null) { - builder.appendParam("type", this.type); - } - //Trash Content - if (!this.isNullOrEmpty(this.trashContent)) { - builder.appendParam("trash_content", this.trashContent); - } - //Metadata filters - if (this.metadataFilter != null) { - builder.appendParam("mdfilters", this.formatBoxMetadataFilterRequest().toString()); - } - //Fields - if (!this.isNullOrEmpty(this.fields)) { - builder.appendParam("fields", this.listToCSV(this.fields)); - } - //Sort - if (!this.isNullOrEmpty(this.sort)) { - builder.appendParam("sort", this.sort); - } - //Direction - if (!this.isNullOrEmpty(this.direction)) { - builder.appendParam("direction", this.direction); - } - //Deleter User Ids - if (!this.isNullOrEmpty(this.deleterUserIds)) { - builder.appendParam("deleter_user_ids", this.listToCSV(this.deleterUserIds)); - } - //Deleted Range - if ((this.deletedRange != null)) { - builder.appendParam("deleted_range", this.deletedRange.buildRangeString()); - } - - return builder; - } -} diff --git a/src/main/java/com/box/sdk/BoxSearchSharedLink.java b/src/main/java/com/box/sdk/BoxSearchSharedLink.java deleted file mode 100644 index 0a74797a0..000000000 --- a/src/main/java/com/box/sdk/BoxSearchSharedLink.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.MalformedURLException; -import java.net.URL; - -/** - * Represents a search item when searching shared links. - * - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly.* - */ -public class BoxSearchSharedLink extends BoxJSONObject { - private String type; - private BoxItem.Info item; - private URL accessibleViaSharedLink; - private BoxAPIConnection api; - - /** - * Construct a BoxRecentItem. - * - * @param jsonObject the parsed JSON object. - * @param api the API connection to be used to fetch interacted item - */ - public BoxSearchSharedLink(JsonObject jsonObject, BoxAPIConnection api) { - super(jsonObject); - this.api = api; - } - - @Override - protected void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - if (memberName.equals("type")) { - this.type = value.asString(); - } else if (memberName.equals("item")) { - JsonObject jsonObject = value.asObject(); - String type = jsonObject.get("type").asString(); - String id = jsonObject.get("id").asString(); - - if (type.equals("folder")) { - BoxFolder folder = new BoxFolder(this.api, id); - this.item = folder.new Info(jsonObject); - } else if (type.equals("file")) { - BoxFile file = new BoxFile(this.api, id); - this.item = file.new Info(jsonObject); - } else if (type.equals("web_link")) { - BoxWebLink link = new BoxWebLink(this.api, id); - this.item = link.new Info(jsonObject); - } else { - assert false : "Unsupported item type: " + type; - throw new BoxAPIException("Unsupported item type: " + type); - } - } else if (memberName.equals("accessible_via_shared_link")) { - this.accessibleViaSharedLink = new URL(value.asString()); - } - } catch (MalformedURLException e) { - assert false : "A ParseException indicates a bug in the SDK."; - } - } - - /** - * Get item type. - * - * @return type of item - */ - public String getType() { - return this.type; - } - - /** - * Get the item which was interacted with. - * - * @return box item - */ - public BoxItem.Info getItem() { - return this.item; - } - - /** - * Get the optional shared link through which the user has access to this item. - * - * @return shared link - */ - public URL getAccessibleViaSharedLink() { - return this.accessibleViaSharedLink; - } - -} - diff --git a/src/main/java/com/box/sdk/BoxSensitiveDataSanitizer.java b/src/main/java/com/box/sdk/BoxSensitiveDataSanitizer.java deleted file mode 100644 index 320feee6e..000000000 --- a/src/main/java/com/box/sdk/BoxSensitiveDataSanitizer.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; -import okhttp3.Headers; -import org.jetbrains.annotations.NotNull; - -/** - * Class used to sanitize sensitive data from payload. - */ -public final class BoxSensitiveDataSanitizer { - private static final Set SENSITIVE_KEYS = new HashSet<>(Arrays.asList("authorization", "access_token", - "refresh_token", "subject_token", "token", "client_id", "client_secret", "code", "shared_link", "download_url", - "jwt_private_key", "jwt_private_key_passphrase", "password")); - - private BoxSensitiveDataSanitizer() { - } - - /** - * Add key that should be sanitized - * - * @param key key to be sanitized - */ - public static void addKeyToSanitize(String key) { - SENSITIVE_KEYS.add(key); - } - - @NotNull - static Headers sanitizeHeaders(Headers originalHeaders) { - Headers.Builder sanitizedHeadersBuilder = originalHeaders.newBuilder(); - - for (String originalHeaderName : originalHeaders.names()) { - if (isSensitiveKey(originalHeaderName)) { - sanitizedHeadersBuilder.set(originalHeaderName, "[REDACTED]"); - } else { - String headerValue = originalHeaders.get(originalHeaderName); - if (headerValue != null) { - sanitizedHeadersBuilder.set(originalHeaderName, headerValue); - } - } - } - - return sanitizedHeadersBuilder.build(); - } - - /** - * Sanitize the json body. Only for the first level of the json. - * - * @param originalBody the original json body - * @return the sanitized json body - */ - @NotNull - static JsonObject sanitizeJsonBody(JsonObject originalBody) { - JsonObject sanitizedBody = new JsonObject(); - - for (String key : originalBody.names()) { - if (isSensitiveKey(key)) { - sanitizedBody.set(key, "[REDACATED]"); - } else { - sanitizedBody.set(key, originalBody.get(key)); - } - } - return sanitizedBody; - } - - private static boolean isSensitiveKey(@NotNull String key) { - return SENSITIVE_KEYS.contains(key.toLowerCase(java.util.Locale.ROOT)); - } -} diff --git a/src/main/java/com/box/sdk/BoxSharedLink.java b/src/main/java/com/box/sdk/BoxSharedLink.java deleted file mode 100644 index 263eb3882..000000000 --- a/src/main/java/com/box/sdk/BoxSharedLink.java +++ /dev/null @@ -1,462 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.util.Date; - -/** - * Represents a link to a file or folder on Box. - */ -public class BoxSharedLink extends BoxJSONObject { - private String url; - private String downloadUrl; - private String vanityUrl; - private String vanityName; - private boolean isPasswordEnabled; - private String password; - private Date unsharedAt; - private long downloadCount; - private long previewCount; - private Access access; - private Access effectiveAccess; - private Permissions permissions; - - /** - * Constructs a BoxSharedLink with default settings. - */ - public BoxSharedLink() { - } - - /** - * Constructs a BoxSharedLink from a JSON string. - * - * @param json the JSON encoded shared link. - */ - public BoxSharedLink(String json) { - super(json); - } - - BoxSharedLink(JsonObject jsonObject) { - super(jsonObject); - } - - BoxSharedLink(BoxSharedLink.Access access, Date unshareDate, BoxSharedLink.Permissions permissions) { - this.setAccess(access); - this.setPermissions(permissions); - - if (unshareDate != null) { - this.setUnsharedDate(unshareDate); - } - } - - BoxSharedLink(BoxSharedLink.Access access, Date unshareDate, BoxSharedLink.Permissions permissions, - String password) { - this.setAccess(access); - this.setPermissions(permissions); - this.setPassword(password); - - if (unshareDate != null) { - this.setUnsharedDate(unshareDate); - } - } - - /** - * Get the URL of this shared link. - * - * @return the URL of this shared link. - */ - public String getURL() { - return this.url; - } - - /** - * Gets the direct download URL of this shared link. - * - * @return the direct download URL of this shared link. - */ - public String getDownloadURL() { - return this.downloadUrl; - } - - /** - * Gets the vanity URL of this shared link. - * - * @return the vanity URL of this shared link. - */ - public String getVanityURL() { - return this.vanityUrl; - } - - /** - * Returns vanity name used to create vanity URL. - * - * @return Vanity name - */ - public String getVanityName() { - return vanityName; - } - - /** - * Sets vanity name used to create vanity URL. - * For example: - * vanityName = myCustomName - * will produce vanityUrl as: - * https://app.box.com/v/myCustomName - * Custom URLs should not be used when sharing sensitive content - * as vanity URLs are a lot easier to guess than regular shared links. - * - * @param vanityName Vanity name. Vanity name must be at least 12 characters long. - */ - public void setVanityName(String vanityName) { - if (vanityName != null && vanityName.length() < 12) { - throw new IllegalArgumentException("The vanityName has to be at least 12 characters long."); - } - this.vanityName = vanityName; - this.addPendingChange("vanity_name", vanityName); - } - - /** - * Gets whether or not a password is enabled on this shared link. - * - * @return true if there's a password enabled on this shared link; otherwise false. - */ - public boolean getIsPasswordEnabled() { - return this.isPasswordEnabled; - } - - /** - * Gets the time that this shared link will be deactivated. - * - * @return the time that this shared link will be deactivated. - */ - public Date getUnsharedDate() { - return this.unsharedAt; - } - - /** - * Sets the time that this shared link will be deactivated. - * - * @param unsharedDate the time that this shared link will be deactivated. - */ - public void setUnsharedDate(Date unsharedDate) { - this.unsharedAt = unsharedDate; - this.addPendingChange("unshared_at", BoxDateFormat.format(unsharedDate)); - } - - /** - * Gets the number of times that this shared link has been downloaded. - * - * @return the number of times that this link has been downloaded. - */ - public long getDownloadCount() { - return this.downloadCount; - } - - /** - * Gets the number of times that this shared link has been previewed. - * - * @return the number of times that this link has been previewed. - */ - public long getPreviewCount() { - return this.previewCount; - } - - /** - * Gets the access level of this shared link. - * - * @return the access level of this shared link. - */ - public Access getAccess() { - return this.access; - } - - /** - * Sets the access level of this shared link. - * - * @param access the new access level of this shared link. - */ - public void setAccess(Access access) { - this.access = access; - this.addPendingChange("access", access.toJSONValue()); - } - - /** - * Sets the password of this shared link. - * - * @param password the password of this shared link. - */ - public void setPassword(String password) { - this.password = password; - this.addPendingChange("password", password); - } - - /** - * Gets the effective access level of this shared link. - * - * @return the effective access level of this shared link. - *

    - * Note there is no setEffectiveAccess metho becaused this - * cannot be changed via the API - */ - public Access getEffectiveAccess() { - return this.effectiveAccess; - } - - /** - * Gets the permissions associated with this shared link. - * - * @return the permissions associated with this shared link. - */ - public Permissions getPermissions() { - return this.permissions; - } - - /** - * Sets the permissions associated with this shared link. - * - * @param permissions the new permissions for this shared link. - */ - public void setPermissions(Permissions permissions) { - if (this.permissions != null && this.permissions.equals(permissions)) { - return; - } - - this.removeChildObject("permissions"); - this.permissions = permissions; - this.addChildObject("permissions", permissions); - } - - private Access parseAccessValue(JsonValue value) { - String accessString = value.asString().toUpperCase(java.util.Locale.ROOT); - return Access.valueOf(accessString); - } - - @Override - protected JsonObject getPendingJSONObject() { - JsonObject result = super.getPendingJSONObject(); - if (result == null) { - result = new JsonObject(); - } - return result; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - JsonValue value = member.getValue(); - String memberName = member.getName(); - - try { - if (memberName.equals("url")) { - this.url = value.asString(); - } else if (memberName.equals("download_url")) { - this.downloadUrl = value.asString(); - } else if (memberName.equals("vanity_url")) { - this.vanityUrl = value.asString(); - } else if (memberName.equals("vanity_name")) { - this.vanityName = value.asString(); - } else if (memberName.equals("is_password_enabled")) { - this.isPasswordEnabled = value.asBoolean(); - } else if (memberName.equals("unshared_at")) { - this.unsharedAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("download_count")) { - this.downloadCount = Double.valueOf(value.toString()).longValue(); - } else if (memberName.equals("preview_count")) { - this.previewCount = Double.valueOf(value.toString()).longValue(); - } else if (memberName.equals("access")) { - this.access = this.parseAccessValue(value); - } else if (memberName.equals("effective_access")) { - this.effectiveAccess = this.parseAccessValue(value); - } else if (memberName.equals("permissions")) { - if (this.permissions == null) { - this.setPermissions(new Permissions(value.asObject())); - } else { - this.permissions.update(value.asObject()); - } - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - - public static String getSharedLinkHeaderValue(String sharedLink, String password) { - String boxAPIValue = "shared_link=" + sharedLink; - if (password != null) { - boxAPIValue += "&shared_link_password=" + password; - } - return boxAPIValue; - } - - /** - * Enumerates the possible access levels that can be set on a shared link. - */ - public enum Access { - /** - * The default access level for the user or enterprise. - */ - DEFAULT(null), - - /** - * The link can be accessed by anyone. - */ - OPEN("open"), - - /** - * The link can be accessed by other users within the company. - */ - COMPANY("company"), - - /** - * The link can be accessed by other collaborators. - */ - COLLABORATORS("collaborators"); - - private final String jsonValue; - - Access(String jsonValue) { - this.jsonValue = jsonValue; - } - - String toJSONValue() { - return this.jsonValue; - } - } - - /** - * Contains permissions fields that can be set on a shared link. - */ - public static class Permissions extends BoxJSONObject { - private boolean canDownload; - private boolean canPreview; - private boolean canEdit; - - /** - * Constructs a Permissions object with all permissions disabled. - */ - public Permissions() { - } - - Permissions(boolean canPreview, boolean canDownload, boolean canEdit) { - this.setCanPreview(canPreview); - this.setCanDownload(canDownload); - this.setCanEdit(canEdit); - } - - /** - * Constructs a Permissions object from a JSON string. - * - * @param json the JSON encoded shared link permissions. - */ - public Permissions(String json) { - super(json); - } - - Permissions(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets whether the shared link can be downloaded. - * - * @return true if the shared link can be downloaded; otherwise false. - */ - public boolean getCanDownload() { - return this.canDownload; - } - - /** - * Sets whether or not the shared link can be downloaded. - * - * @param enabled true if the shared link can be downloaded; otherwise false. - */ - public void setCanDownload(boolean enabled) { - this.canDownload = enabled; - this.addPendingChange("can_download", enabled); - } - - /** - * Gets whether the shared link can be previewed. - * - * @return true if the shared link can be previewed; otherwise false. - */ - public boolean getCanPreview() { - return this.canPreview; - } - - /** - * Sets whether the shared link can be previewed. - * - * @param enabled true if the shared link can be previewed; otherwise false. - */ - public void setCanPreview(boolean enabled) { - this.canPreview = enabled; - this.addPendingChange("can_preview", enabled); - } - - /** - * Gets whether the shared link allows for editing of files. - * - * @return true if the shared link allows for editing of files; otherwise false. - */ - public boolean getCanEdit() { - return canEdit; - } - - /** - * Sets whether the shared link allows for editing of files. - * For folders this value will always be set to false. - * - * @param enabled true if the shared link allows for editing of files; otherwise false. - */ - public void setCanEdit(boolean enabled) { - this.canEdit = enabled; - this.addPendingChange("can_edit", enabled); - } - - @Override - void parseJSONMember(JsonObject.Member member) { - JsonValue value = member.getValue(); - String memberName = member.getName(); - if (memberName.equals("can_download")) { - this.canDownload = value.asBoolean(); - } - if (memberName.equals("can_preview")) { - this.canPreview = value.asBoolean(); - } - if (memberName.equals("can_edit")) { - this.canEdit = value.asBoolean(); - } - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || this.getClass() != o.getClass()) { - return false; - } - - Permissions that = (Permissions) o; - - return this.canDownload == that.canDownload - && this.canPreview == that.canPreview - && this.canEdit == that.canEdit; - } - - @Override - public int hashCode() { - int result = (this.canDownload ? 1 : 0); - result = 31 * result + (this.canPreview ? 1 : 0); - result = 31 * result + (this.canEdit ? 1 : 0); - return result; - } - - @Override - public String toString() { - return "Permissions{canDownload=" + this.canDownload - + ", canPreview=" + this.canPreview - + ", canEdit=" + this.canEdit - + '}'; - } - } -} diff --git a/src/main/java/com/box/sdk/BoxSignRequest.java b/src/main/java/com/box/sdk/BoxSignRequest.java deleted file mode 100644 index 2627c759f..000000000 --- a/src/main/java/com/box/sdk/BoxSignRequest.java +++ /dev/null @@ -1,770 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * Represents a Sign Request used by Box Sign. - * Sign Requests are used to request e-signatures on documents from signers. - * A Sign Request can refer to one or more Box Files and can be sent to one or more Box Sign Request Signers. - * - * @see Box Sign Request - * - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly.

    - */ -@BoxResourceType("sign_request") -public class BoxSignRequest extends BoxResource { - - /** - * The URL template used for operation Sign Request operations. - */ - public static final URLTemplate SIGN_REQUESTS_URL_TEMPLATE = new URLTemplate("sign_requests"); - - /** - * The URL template used for Sign Request operations with a given ID. - */ - public static final URLTemplate SIGN_REQUEST_URL_TEMPLATE = new URLTemplate("sign_requests/%s"); - - /** - * The URL template used to cancel an existing Sign Request. - */ - public static final URLTemplate SIGN_REQUEST_CANCEL_URL_TEMPLATE = new URLTemplate("sign_requests/%s/cancel"); - - /** - * The URL template used to resend an existing Sign Request. - */ - public static final URLTemplate SIGN_REQUEST_RESEND_URL_TEMPLATE = new URLTemplate("sign_requests/%s/resend"); - - /** - * The default limit of entries per response. - */ - private static final int DEFAULT_LIMIT = 100; - - /** - * Constructs a BoxResource for a resource with a given ID. - * - * @param api the API connection to be used by the resource. - * @param id the ID of the resource. - */ - public BoxSignRequest(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Used to create a new sign request using existing BoxFile.Info models. - * - * @param api the API connection to be used by the created user. - * @param sourceFiles the list of BoxFile.Info files to create a signing document from. - * @param signers the list of signers for this sign request. - * @param parentFolderId the id of the destination folder to place sign request specific data in. - * @param optionalParams the optional parameters. - * @return the created sign request's info. - */ - public static BoxSignRequest.Info createSignRequestFromFiles(BoxAPIConnection api, - List sourceFiles, - List signers, - String parentFolderId, - BoxSignRequestCreateParams optionalParams) { - return createSignRequest(api, toBoxSignRequestFiles(sourceFiles), signers, parentFolderId, optionalParams); - } - - /** - * Used to create a new sign request using BoxFile.Info models. - * - * @param api the API connection to be used by the created user. - * @param sourceFiles the list of BoxFile.Info files to create a signing document from. - * @param signers the list of signers for this sign request. - * @param parentFolderId the id of the destination folder to place sign request specific data in. - * @return the created sign request's info. - */ - public static BoxSignRequest.Info createSignRequestFromFiles(BoxAPIConnection api, - List sourceFiles, - List signers, - String parentFolderId) { - - return createSignRequest(api, toBoxSignRequestFiles(sourceFiles), signers, parentFolderId, null); - } - - /** - * Used to create a new sign request. - * - * @param api the API connection to be used by the created user. - * @param sourceFiles the list of files to a signing document from. - * @param signers the list of signers for this sign request. - * @param parentFolderId the id of the destination folder to place sign request specific data in. - * @return the created sign request's info. - */ - public static BoxSignRequest.Info createSignRequest(BoxAPIConnection api, List sourceFiles, - List signers, String parentFolderId) { - return createSignRequest(api, sourceFiles, signers, parentFolderId, null); - } - - /** - * Used to create a new sign request with optional parameters. - * - * @param api the API connection to be used by the created user. - * @param signers the list of signers for this sign request. - * @param sourceFiles the list of files to a signing document from. - * @param parentFolderId the id of the destination folder to place sign request specific data in. - * @param optionalParams the optional parameters. - * @return the created sign request's info. - */ - public static BoxSignRequest.Info createSignRequest(BoxAPIConnection api, List sourceFiles, - List signers, String parentFolderId, - BoxSignRequestCreateParams optionalParams) { - - JsonObject requestJSON = new JsonObject(); - - JsonArray sourceFilesJSON = new JsonArray(); - for (BoxSignRequestFile sourceFile : sourceFiles) { - sourceFilesJSON.add(sourceFile.getJSONObject()); - } - requestJSON.add("source_files", sourceFilesJSON); - - JsonArray signersJSON = new JsonArray(); - for (BoxSignRequestSigner signer : signers) { - signersJSON.add(signer.getJSONObject()); - } - requestJSON.add("signers", signersJSON); - - JsonObject parentFolderJSON = new JsonObject(); - parentFolderJSON.add("id", parentFolderId); - parentFolderJSON.add("type", "folder"); - requestJSON.add("parent_folder", parentFolderJSON); - - if (optionalParams != null) { - optionalParams.appendParamsAsJson(requestJSON); - } - - URL url = SIGN_REQUESTS_URL_TEMPLATE.build(api.getBaseURL()); - BoxJSONRequest request = new BoxJSONRequest(api, url, "POST"); - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - BoxSignRequest signRequest = new BoxSignRequest(api, responseJSON.get("id").asString()); - return signRequest.new Info(responseJSON); - } - } - - /** - * Returns all the sign requests. - * - * @param api the API connection to be used by the resource. - * @param fields the fields to retrieve. - * @return an iterable with all the sign requests. - */ - public static Iterable getAll(final BoxAPIConnection api, String... fields) { - return getAll(api, DEFAULT_LIMIT, fields); - } - - /** - * Returns all the sign requests. - * - * @param api the API connection to be used by the resource. - * @param limit the limit of items per single response. The default value is 100. - * @param fields the fields to retrieve. - * @return an iterable with all the sign requests. - */ - public static Iterable getAll(final BoxAPIConnection api, int limit, String... fields) { - QueryStringBuilder queryString = new QueryStringBuilder(); - if (fields.length > 0) { - queryString.appendParam("fields", fields); - } - URL url = SIGN_REQUESTS_URL_TEMPLATE.buildWithQuery(api.getBaseURL(), queryString.toString()); - return new BoxResourceIterable(api, url, limit) { - - @Override - protected BoxSignRequest.Info factory(JsonObject jsonObject) { - BoxSignRequest signRequest = new BoxSignRequest(api, jsonObject.get("id").asString()); - return signRequest.new Info(jsonObject); - } - - }; - } - - private static List toBoxSignRequestFiles(List sourceFiles) { - List files = new ArrayList<>(); - for (BoxFile.Info sourceFile : sourceFiles) { - BoxSignRequestFile file = BoxSignRequestFile.fromFile(sourceFile); - files.add(file); - } - - return files; - } - - /** - * Returns information about this sign request. - * - * @param fields the fields to retrieve. - * @return information about this sign request. - */ - public BoxSignRequest.Info getInfo(String... fields) { - QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - URL url = SIGN_REQUEST_URL_TEMPLATE.buildAlphaWithQuery( - this.getAPI().getBaseURL(), builder.toString(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - return new BoxSignRequest.Info(responseJSON); - } - } - - /** - * Cancels a sign request if it has not yet been signed or declined. - * Any outstanding signers will no longer be able to sign the document. - * - * @return the cancelled sign request's info. - */ - public BoxSignRequest.Info cancel() { - URL url = SIGN_REQUEST_CANCEL_URL_TEMPLATE.buildAlphaWithQuery(getAPI().getBaseURL(), "", this.getID()); - BoxJSONRequest request = new BoxJSONRequest(getAPI(), url, "POST"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - return new BoxSignRequest.Info(responseJSON); - } - } - - /** - * Attempts to resend a Sign Request to all signers that have not signed yet. - * There is a 10 minute cooling-off period between each resend request. - * If you make a resend call during the cooling-off period, a BoxAPIException will be thrown. - */ - public void resend() { - URL url = SIGN_REQUEST_RESEND_URL_TEMPLATE.buildAlphaWithQuery(getAPI().getBaseURL(), "", this.getID()); - BoxAPIRequest request = new BoxAPIRequest(getAPI(), url, "POST"); - request.send().close(); - } - - /** - * Represents a status of the sign request. - */ - public enum BoxSignRequestStatus { - - /** - * Converting status. - */ - Converting("converting"), - - /** - * Created status. - */ - Created("created"), - - /** - * Sent status. - */ - Sent("sent"), - - /** - * Viewed status. - */ - Viewed("viewed"), - - /** - * Signed status. - */ - Signed("signed"), - - /** - * Cancelled status. - */ - Cancelled("cancelled"), - - /** - * Declined status. - */ - Declined("declined"), - - /** - * Error converting status. - */ - ErrorConverting("error_converting"), - - /** - * Error sending status. - */ - ErrorSending("error_sending"), - - /** - * Expired status. - */ - Expired("expired"), - - /** - * Finalizing status. - */ - Finalizing("finalizing"), - - /** - * Error finalizing status. - */ - ErrorFinalizing("error_finalizing"); - - private final String jsonValue; - - BoxSignRequestStatus(String jsonValue) { - this.jsonValue = jsonValue; - } - - static BoxSignRequestStatus fromJSONString(String jsonValue) { - switch (jsonValue) { - case "converting": - return Converting; - case "created": - return Created; - case "sent": - return Sent; - case "viewed": - return Viewed; - case "signed": - return Signed; - case "cancelled": - return Cancelled; - case "declined": - return Declined; - case "error_converting": - return ErrorConverting; - case "error_sending": - return ErrorSending; - case "expired": - return Expired; - case "finalizing": - return Finalizing; - case "error_finalizing": - return ErrorFinalizing; - default: - } - throw new IllegalArgumentException("The provided JSON value isn't a valid BoxSignRequestStatus value."); - } - } - - /** - * Contains information about the Sign Request. - */ - public class Info extends BoxResource.Info { - - private boolean isDocumentPreparationNeeded; - private boolean areTextSignaturesEnabled; - private boolean areDatesEnabled; - private BoxSignRequestSignatureColor signatureColor; - private String emailSubject; - private String emailMessage; - private boolean areRemindersEnabled; - private List sourceFiles; - private BoxFolder.Info parentFolder; - private List signers; - private String name; - private List prefillTags; - private Integer daysValid; - private String externalId; - private String prepareUrl; - private BoxFile.Info signingLog; - private BoxSignRequestStatus status; - private BoxSignRequestSignFiles signFiles; - private Date autoExpireAt; - private String redirectUrl; - private String declinedRedirectUrl; - private String templateId; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - Info(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Indicates if the sender should receive a prepare_url in the response to complete document preparation via UI. - * - * @return true if document preparation is needed, otherwise false. - */ - public boolean getIsDocumentPreparationNeeded() { - return this.isDocumentPreparationNeeded; - } - - /** - * Gets the flag indicating if usage of signatures generated by typing (text) is enabled. - * - * @return true if text signatures are enabled, otherwise false. - */ - public boolean getAreTextSignaturesEnabled() { - return this.areTextSignaturesEnabled; - } - - /** - * Gets the flag indicating if ability for signer to add dates is enabled. - * - * @return true if ability for signer to add dates is enabled, otherwise false. - */ - public boolean getAreDatesEnabled() { - return this.areDatesEnabled; - } - - /** - * Gets the forced, specific color for the signature. - * - * @return signature color (blue, black, red). - */ - public BoxSignRequestSignatureColor getSignatureColor() { - return this.signatureColor; - } - - /** - * Gets the subject of the sign request email. - * - * @return subject of the sign request email. - */ - public String getEmailSubject() { - return this.emailSubject; - } - - /** - * Gets the message to include in the sign request email. - * - * @return message of sign request email. - */ - public String getEmailMessage() { - return this.emailMessage; - } - - /** - * Gets the flag indicating if sending reminders for signers to sign a document on day 3, 8, 13 and 18 - * (or less if the document has been digitally signed already) is enabled. - * - * @return true if reminders are enabled, otherwise false. - */ - public boolean getAreRemindersEnabled() { - return this.areRemindersEnabled; - } - - /** - * Gets the list of files to create a signing document from. - * - * @return list of files to create a signing document from. - */ - public List getSourceFiles() { - return this.sourceFiles; - } - - /** - * Gets the destination folder to place sign request specific data in (copy of source files, signing log etc.). - * - * @return destination folder to place sign request specific data in. - */ - public BoxFolder.Info getParentFolder() { - return this.parentFolder; - } - - /** - * Gets the list of signers for this sign request. - * - * @return list of signers for this sign request. - */ - public List getSigners() { - return this.signers; - } - - /** - * Gets the name of this sign request. - * - * @return name of this sign request. - */ - public String getName() { - return this.name; - } - - /** - * Gets the list of prefill tags. - * - * @return list of prefill tags. - */ - public List getPrefillTags() { - return this.prefillTags; - } - - /** - * Gets the number of days after which this request will automatically expire if not completed. - * - * @return number of days after which this request will automatically expire if not completed. - */ - public Integer getDaysValid() { - return this.daysValid; - } - - /** - * Gets the reference id in an external system that this sign request is related to. - * - * @return external id. - */ - public String getExternalId() { - return this.externalId; - } - - /** - * Gets the URL that can be used by the sign request sender to prepare the document through the UI. - * - * @return prepare url. - */ - public String getPrepareUrl() { - return this.prepareUrl; - } - - /** - * Gets the reference to a file that will hold a log of all signer activity for this request. - * - * @return signing log. - */ - public BoxFile.Info getSigningLog() { - return this.signingLog; - } - - /** - * Gets the status of the sign request. - * - * @return sign request's status. - */ - public BoxSignRequestStatus getStatus() { - return this.status; - } - - /** - * List of files that will be signed, which are copies of the original source files. - * A new version of these files are created as signers sign and can be downloaded - * at any point in the signing process. - * - * @return sign files. - */ - public BoxSignRequestSignFiles getSignFiles() { - return this.signFiles; - } - - /** - * Uses days_valid to calculate the date and time that - * the sign request will expire, if unsigned. - * - * @return auto expires at date. - */ - public Date getAutoExpireAt() { - return this.autoExpireAt; - } - - /** - * Gets the URL that will be redirected to after the signer completes the sign request. - * - * @return redirect url. - */ - public String getRedirectUrl() { - return this.redirectUrl; - } - - /** - * Gets the URL that will be redirected to after the signer declines the sign request. - * - * @return declined redirect url. - */ - public String getDeclinedRedirectUrl() { - return this.declinedRedirectUrl; - } - - /** - * Gets the id of the template that was used to create this sign request. - * - * @return sign template id. - */ - public String getTemplateId() { - return this.templateId; - } - - /** - * {@inheritDoc} - */ - @Override - public BoxSignRequest getResource() { - return BoxSignRequest.this; - } - - /** - * {@inheritDoc} - */ - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - switch (memberName) { - case "is_document_preparation_needed": - this.isDocumentPreparationNeeded = value.asBoolean(); - break; - case "are_text_signatures_enabled": - this.areTextSignaturesEnabled = value.asBoolean(); - break; - case "are_dates_enabled": - this.areDatesEnabled = value.asBoolean(); - break; - case "signature_color": - this.signatureColor = BoxSignRequestSignatureColor.fromJSONString(value.asString()); - break; - case "email_subject": - this.emailSubject = value.asString(); - break; - case "email_message": - this.emailMessage = value.asString(); - break; - case "are_reminders_enabled": - this.areRemindersEnabled = value.asBoolean(); - break; - case "signers": - List signers = new ArrayList<>(); - for (JsonValue signerJSON : value.asArray()) { - BoxSignRequestSigner signer = new BoxSignRequestSigner(signerJSON.asObject(), getAPI()); - signers.add(signer); - } - this.signers = signers; - break; - case "source_files": - this.sourceFiles = this.getFiles(value.asArray()); - break; - case "parent_folder": - JsonObject folderJSON = value.asObject(); - String folderID = folderJSON.get("id").asString(); - BoxFolder folder = new BoxFolder(getAPI(), folderID); - this.parentFolder = folder.new Info(folderJSON); - break; - case "name": - this.name = value.asString(); - break; - case "prefill_tags": - List prefillTags = new ArrayList<>(); - for (JsonValue prefillTagJSON : value.asArray()) { - BoxSignRequestPrefillTag prefillTag = - new BoxSignRequestPrefillTag(prefillTagJSON.asObject()); - prefillTags.add(prefillTag); - } - this.prefillTags = prefillTags; - break; - case "days_valid": - this.daysValid = value.asInt(); - break; - case "external_id": - this.externalId = value.asString(); - break; - case "prepare_url": - this.prepareUrl = value.asString(); - break; - case "signing_log": - JsonObject signingLogJSON = value.asObject(); - String fileID = signingLogJSON.get("id").asString(); - BoxFile file = new BoxFile(getAPI(), fileID); - this.signingLog = file.new Info(signingLogJSON); - break; - case "status": - this.status = BoxSignRequestStatus.fromJSONString(value.asString()); - break; - case "sign_files": - JsonObject signFilesJSON = value.asObject(); - JsonValue filesArray = signFilesJSON.get("files"); - List signFiles = this.getFiles(filesArray); - boolean isReadyForDownload = signFilesJSON.get("is_ready_for_download").asBoolean(); - this.signFiles = new BoxSignRequestSignFiles(signFiles, isReadyForDownload); - break; - case "auto_expire_at": - this.autoExpireAt = BoxDateFormat.parse(value.asString()); - break; - case "redirect_url": - this.redirectUrl = value.asString(); - break; - case "declined_redirect_url": - this.declinedRedirectUrl = value.asString(); - break; - case "template_id": - this.templateId = value.asString(); - break; - default: - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - - private List getFiles(JsonValue filesArray) { - List files = new ArrayList<>(); - for (JsonValue fileJSON : filesArray.asArray()) { - String fileID = fileJSON.asObject().get("id").asString(); - BoxFile file = new BoxFile(getAPI(), fileID); - files.add(file.new Info(fileJSON.asObject())); - } - return files; - } - - /** - * List of files that will be signed, which are copies of the original source files. - * A new version of these files are created as signers sign and can be downloaded - * at any point in the signing process. - */ - public class BoxSignRequestSignFiles { - private final List files; - private final boolean isReadyToDownload; - - /** - * Constructs a BoxSignRequestSignFiles. - * - * @param files list that signing events will occur on. - * @param isReadyToDownload indicating whether a change to the document is processing. - */ - public BoxSignRequestSignFiles(List files, boolean isReadyToDownload) { - this.files = files; - this.isReadyToDownload = isReadyToDownload; - } - - /** - * Gets the list of files that signing events will occur on - these are copies of the original source files. - * - * @return list of files. - */ - public List getFiles() { - return this.files; - } - - /** - * Gets the flag indicating whether a change to the document is processing and the PDF may be out of date. - * It is recommended to wait until processing has finished before downloading the PDF. - * Webhooks are not sent until processing has been completed. - * - * @return true if files are ready to download, otherwise false. - */ - public boolean getIsReadyToDownload() { - return this.isReadyToDownload; - } - } - } -} diff --git a/src/main/java/com/box/sdk/BoxSignRequestCreateParams.java b/src/main/java/com/box/sdk/BoxSignRequestCreateParams.java deleted file mode 100644 index e3751b279..000000000 --- a/src/main/java/com/box/sdk/BoxSignRequestCreateParams.java +++ /dev/null @@ -1,351 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.internal.utils.JsonUtils; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import java.util.List; - -/** - * Optional parameters for creating a Sign Request. - * - * @see BoxSignRequest - */ -public class BoxSignRequestCreateParams { - - private Boolean isDocumentPreparationNeeded; - private Boolean areTextSignaturesEnabled; - private Boolean areDatesEnabled; - private BoxSignRequestSignatureColor signatureColor; - private String emailSubject; - private String emailMessage; - private Boolean areRemindersEnabled; - private String name; - private List prefillTags; - private Integer daysValid; - private String externalId; - private String redirectUrl; - private String declinedRedirectUrl; - private String templateId; - - /** - * Gets the flag indicating if the sender should be taken into the builder flow to prepare the document. - * - * @return true if document preparation is needed, otherwise false. - */ - public boolean getIsDocumentPreparationNeeded() { - return this.isDocumentPreparationNeeded; - } - - /** - * Sets the flag indicating if the sender should be taken into the builder flow to prepare the document. - * - * @param isDocumentPreparationNeeded whether or not sender should be taken - * into the builder flow to prepare the document. - * @return this BoxSignRequestCreateParams object for chaining. - */ - public BoxSignRequestCreateParams setIsDocumentPreparationNeeded(boolean isDocumentPreparationNeeded) { - this.isDocumentPreparationNeeded = isDocumentPreparationNeeded; - return this; - } - - /** - * Gets the flag indicating if usage of signatures generated by typing (text) is enabled. Default is true. - * - * @return true if text signatures are enabled, otherwise false. - */ - public boolean getAreTextSignaturesEnabled() { - return this.areTextSignaturesEnabled; - } - - /** - * Sets the flag indicating if usage of signatures generated by typing (text) is enabled. Default is true. - * - * @param areTextSignaturesEnabled indicating if text signatures are enabled for signers. - * @return this BoxSignRequestCreateParams object for chaining. - */ - public BoxSignRequestCreateParams setAreTextSignaturesEnabled(boolean areTextSignaturesEnabled) { - this.areTextSignaturesEnabled = areTextSignaturesEnabled; - return this; - } - - /** - * Gets the flag indicating if ability for signer to add dates is enabled. Default is true. - * - * @return true if ability for signer to add dates is enabled, otherwise false. - */ - public boolean getAreDatesEnabled() { - return this.areDatesEnabled; - } - - /** - * Sets the flag indicating if ability for signer to add dates is enabled. Default is true. - * - * @param areDatesEnabled indicating if ability for signer to add dates is enabled. - * @return this BoxSignRequestCreateParams object for chaining. - */ - public BoxSignRequestCreateParams setAreDatesEnabled(boolean areDatesEnabled) { - this.areDatesEnabled = areDatesEnabled; - return this; - } - - /** - * Gets the forced, specific color for the signature. - * - * @return signature color (blue, black, red). - */ - public BoxSignRequestSignatureColor getSignatureColor() { - return this.signatureColor; - } - - /** - * Sets the forced, specific color for the signature. - * - * @param signatureColor blue, black or red. - * @return this BoxSignRequestCreateParams object for chaining. - */ - public BoxSignRequestCreateParams setSignatureColor(BoxSignRequestSignatureColor signatureColor) { - this.signatureColor = signatureColor; - return this; - } - - /** - * Gets the subject of sign request email. - * - * @return subject of sign request email. - */ - public String getEmailSubject() { - return this.emailSubject; - } - - /** - * Sets the subject of sign request email. This is cleaned by sign request. - * - * @param emailSubject included in sign request email. - * @return this BoxSignRequestCreateParams object for chaining. - */ - public BoxSignRequestCreateParams setEmailSubject(String emailSubject) { - this.emailSubject = emailSubject; - return this; - } - - /** - * Gets the message to include in sign request email. - * - * @return message of sign request email. - */ - public String getEmailMessage() { - return this.emailMessage; - } - - /** - * Sets the message to include in sign request email. This is cleaned,but some html tags are allowed. - * Links included in the message are also converted to actual links in the email. - * The message may contain the following html tags: - * a, abbr, acronym, b, blockquote, code, em, i, ul, li, ol, and strong. - * Be aware that when the text to html ratio is too high, the email may end up in spam filters. - * Custom styles on these tags are not allowed. - * - * @param emailMessage included in sign request email. - * @return this BoxSignRequestCreateParams object for chaining. - */ - public BoxSignRequestCreateParams setEmailMessage(String emailMessage) { - this.emailMessage = emailMessage; - return this; - } - - /** - * Gets the flag indicating if remind for signers to sign a document on day 3, 8, 13 and 18 - * (or less if the document has been digitally signed already) is enabled. - * - * @return true if reminders are enabled, otherwise false. - */ - public boolean getAreRemindersEnabled() { - return this.areRemindersEnabled; - } - - /** - * Sets the flag indicating if remind for signers to sign a document on day 3, 8, 13 and 18 - * (or less if the document has been digitally signed already) is enabled. - * - * @param areRemindersEnabled indicating if reminders are enabled. - * @return this BoxSignRequestCreateParams object for chaining. - */ - public BoxSignRequestCreateParams setAreRemindersEnabled(boolean areRemindersEnabled) { - this.areRemindersEnabled = areRemindersEnabled; - return this; - } - - /** - * Gets the name of this sign request. - * - * @return name of this sign request. - */ - public String getName() { - return this.name; - } - - /** - * Sets the name of this sign request. - * - * @param name of this sign request. - * @return this BoxSignRequestCreateParams object for chaining. - */ - public BoxSignRequestCreateParams setName(String name) { - this.name = name; - return this; - } - - /** - * Gets the number of days after which this request will automatically expire if not completed. - * - * @return number of days after which this request will automatically expire if not completed. - */ - public int getDaysValid() { - return this.daysValid; - } - - /** - * Sets the number of days after which this request will automatically expire if not completed. - * - * @param daysValid of this sign request. - * @return this BoxSignRequestCreateParams object for chaining. - */ - public BoxSignRequestCreateParams setDaysValid(int daysValid) { - this.daysValid = daysValid; - return this; - } - - /** - * Gets an ID that serve as reference in an external system that the sign request is related to. - * - * @return external id. - */ - public String getExternalId() { - return this.externalId; - } - - /** - * Sets the reference id in an external system that this sign request is related to. - * - * @param externalId of this sign request. - * @return this BoxSignRequestCreateParams object for chaining. - */ - public BoxSignRequestCreateParams setExternalId(String externalId) { - this.externalId = externalId; - return this; - } - - /** - * Gets the list of prefill tags. - * - * @return list of prefill tags. - */ - public List getPrefillTags() { - return this.prefillTags; - } - - /** - * Sets the list of prefill tags. When a document contains sign related tags in the content, - * you can prefill them using this prefillTags by referencing - * the 'id' of the tag as the externalId field of the prefill tag. - * - * @param prefillTags list for this sign request. - * @return this BoxSignRequestCreateParams object for chaining. - */ - public BoxSignRequestCreateParams setPrefillTags(List prefillTags) { - this.prefillTags = prefillTags; - return this; - } - - /** - * Gets the redirect URL that a signer will be redirected to after signing a document. - * - * @return redirect url. - */ - public String getRedirectUrl() { - return this.redirectUrl; - } - - /** - * Sets the redirect URL that a signer will be redirected to after signing a document. - * - * @param redirectUrl of this sign request. - * @return this BoxSignRequestCreateParams object for chaining. - */ - public BoxSignRequestCreateParams setRedirectUrl(String redirectUrl) { - this.redirectUrl = redirectUrl; - return this; - } - - /** - * Gets the URL that a signer will be redirected to after declining to sign a document. - * - * @return decline redirect url. - */ - public String getDeclinedRedirectUrl() { - return this.declinedRedirectUrl; - } - - /** - * Sets the URL that a signer will be redirected to after declining to sign a document. - * - * @param declinedRedirectUrl of this sign request. - * @return this BoxSignRequestCreateParams object for chaining. - */ - public BoxSignRequestCreateParams setDeclinedRedirectUrl(String declinedRedirectUrl) { - this.declinedRedirectUrl = declinedRedirectUrl; - return this; - } - - /** - * Gets the Sign Template ID of the Sign Request. - * - * @return template id. - */ - public String getTemplateId() { - return this.templateId; - } - - /** - * Sets the Sign Template ID will be use to create the sign request. - * - * @param templateId for this sign request. - * @return this BoxSignRequestCreateParams object for chaining. - */ - public BoxSignRequestCreateParams setTemplateId(String templateId) { - this.templateId = templateId; - return this; - } - - /** - * Used to append BoxSignRequestCreateParams to request. - * - * @param requestJSON request in json to append data to. - */ - public void appendParamsAsJson(JsonObject requestJSON) { - JsonUtils.addIfNotNull(requestJSON, "is_document_preparation_needed", - this.isDocumentPreparationNeeded); - JsonUtils.addIfNotNull(requestJSON, "are_text_signatures_enabled", this.areTextSignaturesEnabled); - JsonUtils.addIfNotNull(requestJSON, "are_dates_enabled", this.areDatesEnabled); - JsonUtils.addIfNotNull(requestJSON, "signature_color", this.signatureColor); - JsonUtils.addIfNotNull(requestJSON, "email_subject", this.emailSubject); - JsonUtils.addIfNotNull(requestJSON, "email_message", this.emailMessage); - JsonUtils.addIfNotNull(requestJSON, "are_reminders_enabled", this.areRemindersEnabled); - JsonUtils.addIfNotNull(requestJSON, "name", this.name); - JsonUtils.addIfNotNull(requestJSON, "days_valid", this.daysValid); - JsonUtils.addIfNotNull(requestJSON, "external_id", this.externalId); - JsonUtils.addIfNotNull(requestJSON, "redirect_url", this.redirectUrl); - JsonUtils.addIfNotNull(requestJSON, "declined_redirect_url", this.declinedRedirectUrl); - JsonUtils.addIfNotNull(requestJSON, "template_id", this.templateId); - - if (this.prefillTags != null) { - JsonArray prefillTagsJSON = new JsonArray(); - for (BoxSignRequestPrefillTag prefillTag : this.prefillTags) { - prefillTagsJSON.add(prefillTag.getJSONObject()); - } - requestJSON.add("prefill_tags", prefillTagsJSON); - } - - return; - } -} diff --git a/src/main/java/com/box/sdk/BoxSignRequestFile.java b/src/main/java/com/box/sdk/BoxSignRequestFile.java deleted file mode 100644 index 55ec75ea2..000000000 --- a/src/main/java/com/box/sdk/BoxSignRequestFile.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; - -/** - * Represents a Box File to be included in a sign request. - */ -public class BoxSignRequestFile { - private String fileId; - private String fileVersionId; - - /** - * Constructs a BoxSignRequestFile with specific file version to be used during sign request creation. - * - * @param fileId id of the file. - * @param fileVersionId id of the file versionm. - */ - public BoxSignRequestFile(String fileId, String fileVersionId) { - this.fileId = fileId; - this.fileVersionId = fileVersionId; - } - - /** - * Constructs a BoxSignRequestFile to be used during sign request creation. - * - * @param fileId id of the file. - */ - public BoxSignRequestFile(String fileId) { - this.fileId = fileId; - } - - static BoxSignRequestFile fromFile(BoxFile.Info sourceFile) { - BoxSignRequestFile file = new BoxSignRequestFile(sourceFile.getID()); - if (sourceFile.getVersion() != null) { - file.setFileVersionId(sourceFile.getVersionNumber()); - } - - return file; - } - - /** - * Gets the file id of the file. - * - * @return file id of the file. - */ - public String getFileId() { - return this.fileId; - } - - /** - * Sets the file id. - * - * @param fileId of the file. - * @return this BoxSignRequestFile object for chaining. - */ - public BoxSignRequestFile setFileId(String fileId) { - this.fileId = fileId; - return this; - } - - /** - * Gets the file version id of the file. - * - * @return file version id of the file. - */ - public String getFileVersionId() { - return this.fileVersionId; - } - - /** - * Sets the file version id. - * - * @param fileVersionId of the file. - * @return this BoxSignRequestFile object for chaining. - */ - public BoxSignRequestFile setFileVersionId(String fileVersionId) { - this.fileVersionId = fileVersionId; - return this; - } - - /** - * Gets a JSON object representing this class. - * - * @return the JSON object representing this class. - */ - public JsonObject getJSONObject() { - JsonObject fileJSON = new JsonObject() - .add("id", this.fileId) - .add("type", "file"); - - if (this.fileVersionId != null) { - JsonObject fileVersionJSON = new JsonObject(); - fileVersionJSON.add("id", this.fileVersionId); - fileVersionJSON.add("type", "file_version"); - fileJSON.add("file_version", fileVersionJSON); - } - - return fileJSON; - } -} diff --git a/src/main/java/com/box/sdk/BoxSignRequestPrefillTag.java b/src/main/java/com/box/sdk/BoxSignRequestPrefillTag.java deleted file mode 100644 index 6ff41b9f5..000000000 --- a/src/main/java/com/box/sdk/BoxSignRequestPrefillTag.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxDateFormat.formatAsDateOnly; - -import com.box.sdk.internal.utils.JsonUtils; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.util.Date; - -/** - * Represents a prefill tag used in BoxSignRequest. When a document contains sign related tags in the content, - * you can prefill them using this prefillTag by referencing the - * 'id' of the tag as the externalId field of the prefill tag. - */ -public class BoxSignRequestPrefillTag extends BoxJSONObject { - private String documentTagId; - private String textValue; - private Boolean checkboxValue; - private Date dateValue; - - /** - * Constructs a BoxSignRequestPrefillTag with text prefill value. - * - * @param documentTagId if of the tag. - * @param textValue text prefill value. - */ - public BoxSignRequestPrefillTag(String documentTagId, String textValue) { - this.documentTagId = documentTagId; - this.textValue = textValue; - } - - /** - * Constructs a BoxSignRequestPrefillTag with checkbox prefill value. - * - * @param documentTagId if of the tag. - * @param checkboxValue checkbox prefill value. - */ - public BoxSignRequestPrefillTag(String documentTagId, Boolean checkboxValue) { - this.documentTagId = documentTagId; - this.checkboxValue = checkboxValue; - } - - /** - * Constructs a BoxSignRequestPrefillTag with date prefill value. - * - * @param documentTagId if of the tag. - * @param dateValue date prefill value. - */ - public BoxSignRequestPrefillTag(String documentTagId, Date dateValue) { - this.documentTagId = documentTagId; - this.dateValue = dateValue; - } - - /** - * Constructs a BoxSignRequestPrefillTag from a JSON string. - * - * @param json the JSON encoded enterprise. - */ - public BoxSignRequestPrefillTag(String json) { - super(json); - } - - /** - * Constructs an BoxSignRequestPrefillTag object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - BoxSignRequestPrefillTag(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the reference id of a particular tag added to the content - * of the files being used to create the sign request. - * - * @return document tag id. - */ - public String getDocumentTagId() { - return this.documentTagId; - } - - /** - * Gets the text prefill value. - * - * @return text prefill value. - */ - public String getTextValue() { - return this.textValue; - } - - /** - * Gets the checkbox prefill value. - * - * @return checkbox prefill value. - */ - public Boolean getCheckboxValue() { - return this.checkboxValue; - } - - /** - * Gets the date prefill value. - * - * @return date prefill value. - */ - public Date getDateValue() { - return this.dateValue; - } - - /** - * Gets a JSON object representing this class. - * - * @return the JSON object representing this class. - */ - public JsonObject getJSONObject() { - JsonObject prefillTagObj = new JsonObject(); - JsonUtils.addIfNotNull(prefillTagObj, "document_tag_id", this.documentTagId); - JsonUtils.addIfNotNull(prefillTagObj, "text_value", this.textValue); - JsonUtils.addIfNotNull(prefillTagObj, "checkbox_value", this.checkboxValue); - if (this.dateValue != null) { - prefillTagObj.add("date_value", formatAsDateOnly(this.dateValue)); - } - - return prefillTagObj; - } - - /** - * {@inheritDoc} - */ - @Override - void parseJSONMember(JsonObject.Member member) { - JsonValue value = member.getValue(); - String memberName = member.getName(); - try { - if ("document_tag_id".equals(memberName)) { - this.documentTagId = value.asString(); - } else if ("text_value".equals(memberName)) { - this.textValue = value.asString(); - } else if ("checkbox_value".equals(memberName)) { - this.checkboxValue = value.asBoolean(); - } else if ("date_value".equals(memberName)) { - this.dateValue = BoxDateFormat.parseDateOnly(value.asString()); - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } -} diff --git a/src/main/java/com/box/sdk/BoxSignRequestSignatureColor.java b/src/main/java/com/box/sdk/BoxSignRequestSignatureColor.java deleted file mode 100644 index fb1d4afb2..000000000 --- a/src/main/java/com/box/sdk/BoxSignRequestSignatureColor.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.box.sdk; - -/** - * Specific, forced color for a signature. - */ -public enum BoxSignRequestSignatureColor { - - /** - * Blue signature color. - */ - Blue("blue"), - - /** - * Black signature color. - */ - Black("black"), - - /** - * Red signature color. - */ - Red("red"); - - private final String jsonValue; - - BoxSignRequestSignatureColor(String jsonValue) { - this.jsonValue = jsonValue; - } - - static BoxSignRequestSignatureColor fromJSONString(String jsonValue) { - if ("blue".equals(jsonValue)) { - return Blue; - } else if ("black".equals(jsonValue)) { - return Black; - } else if ("red".equals(jsonValue)) { - return Red; - } - throw new IllegalArgumentException("The provided JSON value isn't a valid " - + "BoxSignRequestSignatureColor."); - } -} diff --git a/src/main/java/com/box/sdk/BoxSignRequestSigner.java b/src/main/java/com/box/sdk/BoxSignRequestSigner.java deleted file mode 100644 index d68d949f8..000000000 --- a/src/main/java/com/box/sdk/BoxSignRequestSigner.java +++ /dev/null @@ -1,844 +0,0 @@ -package com.box.sdk; - -import static java.lang.String.format; - -import com.box.sdk.internal.utils.JsonUtils; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * Represents a signer in BoxSignRequest. - */ -public class BoxSignRequestSigner extends BoxJSONObject { - private String email; - private BoxSignRequestSignerRole role; - private Boolean isInPerson; - private Integer order; - private String embedUrlExternalUserId; - private Boolean hasViewedEmail; - private Boolean hasViewedDocument; - private BoxSignerDecision signerDecision; - private List inputs; - private String embedUrl; - private String redirectUrl; - private String declinedRedirectUrl; - private String iframeableEmedUrl; - private String signerGroupId; - private Boolean loginRequired; - private String password; - private Boolean suppressNotifications; - private String verificationPhoneNumber; - private BoxAPIConnection api; - - /** - * Constructs a BoxSignRequestSigner with an email. - * - * @param email of signer. - */ - public BoxSignRequestSigner(String email) { - this.email = email; - } - - /** - * Construct a BoxSignRequestSigner. - * - * @param jsonObject the parsed JSON object. - * @param api the API connection to be used to fetch interacted item - */ - public BoxSignRequestSigner(JsonObject jsonObject, BoxAPIConnection api) { - super(jsonObject); - this.api = api; - } - - /** - * Gets the email address of the signer. - * - * @return email address of the signer. - */ - public String getEmail() { - return this.email; - } - - /** - * Sets the email address of the signer. - * - * @param email address of the signer. - * @return this BoxSignRequestSigner object for chaining. - */ - public BoxSignRequestSigner setEmail(String email) { - this.email = email; - return this; - } - - /** - * Gets the role of the signer. - * - * @return role of the signer. - */ - public BoxSignRequestSignerRole getRole() { - return this.role; - } - - /** - * Sets the role of the signer. If role is not set it's FinalCopyReader by default. - * - * @param role of the signer. - * @return this BoxSignRequestSigner object for chaining. - */ - public BoxSignRequestSigner setRole(BoxSignRequestSignerRole role) { - this.role = role; - return this; - } - - /** - * Gets the flag that when used in combination with an embed url on the sender. After the sender signs, - * they will be redirected to the next InPerson signer. - * - * @return true if is in person signer, otherwise false. - */ - public boolean getIsInPerson() { - return this.isInPerson; - } - - /** - * Gets the order of signer. - * - * @return order of signer. - */ - public int getOrder() { - return this.order; - } - - /** - * Sets the order of signer. - * - * @param order of signer. - * @return this BoxSignRequestSigner object for chaining. - */ - public BoxSignRequestSigner setOrder(Integer order) { - this.order = order; - return this; - } - - /** - * Gets the user id for this signer in external application responsible - * for authentication when accessing the embed url. - * - * @return embed url external user id. - */ - public String getEmbedUrlExternalUserId() { - return this.embedUrlExternalUserId; - } - - /** - * Sets the user id for this signer in external application responsible - * for authentication when accessing the embed url. - * - * @param embedUrlExternalUserId for this signer in external application responsible - * for authentication when accessing the embed url. - * @return this BoxSignRequestSigner object for chaining. - */ - public BoxSignRequestSigner setEmbedUrlExternalUserId(String embedUrlExternalUserId) { - this.embedUrlExternalUserId = embedUrlExternalUserId; - return this; - } - - /** - * Gets the flag indicating if signer has viewed the sign request email. - * - * @return true if the signer has viewed the sign request email, otherwise false. - */ - public boolean getHasViewedEmail() { - return this.hasViewedEmail; - } - - /** - * Gets the flag indicating if signer has viewed the document. - * - * @return true if the signer has viewed the document, otherwise false. - */ - public boolean getHasViewedDocument() { - return this.hasViewedDocument; - } - - /** - * Gets the final decision made by signer. - * - * @return final decision made by signer. - */ - public BoxSignerDecision getSignerDecision() { - return this.signerDecision; - } - - /** - * Gets the inputs created by a signer on a sign request. - * - * @return list of inputs created by a signer on a sign request. - */ - public List getInputs() { - return this.inputs; - } - - /** - * Gets the url to direct signer to for signing. - * - * @return url to direct signer to for signing. - */ - public String getEmbedUrl() { - return this.embedUrl; - } - - /** - * Gets the flag that is used in combination with an embed url for a the sender. After the sender signs, - * they will be redirected to the next InPerson signer. - * - * @return true if is in person signer, otherwise false. - */ - public Boolean getInPerson() { - return this.isInPerson; - } - - /** - * Sets the flag that is used in combination with an embed url for a the sender. After the sender signs, - * they will be redirected to the next InPerson signer. - * - * @param isInPerson flag. - * @return this BoxSignRequestSigner object for chaining. - */ - public BoxSignRequestSigner setInPerson(Boolean isInPerson) { - this.isInPerson = isInPerson; - return this; - } - - /** - * Gets the redirect url for the signer. - * - * @return redirect url for the signer. - */ - public String getRedirectUrl() { - return this.redirectUrl; - } - - /** - * Sets the redirect url for the signer. - * - * @param redirectUrl for the signer. - * @return this BoxSignRequestSigner object for chaining. - */ - public BoxSignRequestSigner setRedirectUrl(String redirectUrl) { - this.redirectUrl = redirectUrl; - return this; - } - - /** - * Gets the declined redirect url for the signer. - * - * @return declined redirect url for the signer. - */ - public String getDeclinedRedirectUrl() { - return this.declinedRedirectUrl; - } - - /** - * Sets the declined redirect url for the signer. - * - * @param declinedRedirectUrl for the signer. - * @return this BoxSignRequestSigner object for chaining. - */ - public BoxSignRequestSigner setDeclinedRedirectUrl(String declinedRedirectUrl) { - this.declinedRedirectUrl = declinedRedirectUrl; - return this; - } - - /** - * Gets the URL designed for signing documents within an HTML iframe tag. - * It will be returned in the response only if the embedUrlExternalUserId parameter was passed - * in the create sign request call. - * - * @return url for signing documents within an HTML iframe tag. - */ - public String getIframeableEmedUrl() { - return this.iframeableEmedUrl; - } - - /** - * Sets the URL designed for signing documents within an HTML iframe tag. - * It will be returned in the response only if the embedUrlExternalUserId parameter was passed - * in the create sign request call. - * - * @param iframeableEmedUrl url for signing documents within an HTML iframe tag. - * @return this BoxSignRequestSigner object for chaining. - */ - public BoxSignRequestSigner setIframeableEmedUrl(String iframeableEmedUrl) { - this.iframeableEmedUrl = iframeableEmedUrl; - return this; - } - - /** - * Gets the signer group id. It is sufficient for only one signer from the group to sign the document. - * - * @return id of the group to which the sign request will be sent. - */ - public String getSignerGroupId() { - return this.signerGroupId; - } - - /** - * Sets the group id. If specified, signers sharing the same group ID will be assigned to the same input. - * The group ID can be any string value, but it must be consistent across all signers. - * It is sufficient for only one signer from the group to sign the document. - * - * @param signerGroupId id of the group to which the sign request will be sent - * @return this BoxSignRequestSigner object for chaining. - */ - public BoxSignRequestSigner setSignerGroupId(String signerGroupId) { - this.signerGroupId = signerGroupId; - return this; - } - - /** - * If set to true, signer will need to login to a Box account before signing the request. - * If the signer does not have an existing account, they will have an option to create a free Box account. - * - * @return true if login is required for the signer, otherwise false. - */ - public Boolean getLoginRequired() { - return this.loginRequired; - } - - /** - * If set to true, signer will need to login to a Box account before signing the request. - * If the signer does not have an existing account, they will have an option to create a free Box account. - * - * @param loginRequired indicates if login is required for the signer. - * @return this BoxSignRequestSigner object for chaining. - */ - public BoxSignRequestSigner setLoginRequired(Boolean loginRequired) { - this.loginRequired = loginRequired; - return this; - } - - /** - * If set, the signer is required to enter the password before they are able to sign a document. - * This field is write only. - * - * @return password required for the signer to access the sign request. - */ - public String getPassword() { - return this.password; - } - - /** - * Sets the password required for the signer to access the sign request. - * - * @param password required for the signer to access the sign request. - * @return this BoxSignRequestSigner object for chaining. - */ - public BoxSignRequestSigner setPassword(String password) { - this.password = password; - return this; - } - - /** - * Gets the flag that suppresses email notifications for the signer. - * - * @return true if email notifications are suppressed for the signer, otherwise false. - */ - public Boolean getSuppressNotifications() { - return this.suppressNotifications; - } - - /** - * Sets the flag that suppresses email notifications for the signer. - * - * @param suppressNotifications indicates if email notifications are suppressed for the signer. - * @return this BoxSignRequestSigner object for chaining. - */ - public BoxSignRequestSigner setSuppressNotifications(Boolean suppressNotifications) { - this.suppressNotifications = suppressNotifications; - return this; - } - - /** - * Gets the phone number used for verification. - * If set, this phone number is be used to verify the signer via two factor authentication - * before they are able to sign the document. - * - * @return phone number used for verification. - */ - public String getVerificationPhoneNumber() { - return this.verificationPhoneNumber; - } - - /** - * Sets the phone number used for verification. - * If set, this phone number is be used to verify the signer via two factor authentication - * before they are able to sign the document. - * - * @param verificationPhoneNumber phone number used for verification. - * @return this BoxSignRequestSigner object for chaining. - */ - public BoxSignRequestSigner setVerificationPhoneNumber(String verificationPhoneNumber) { - this.verificationPhoneNumber = verificationPhoneNumber; - return this; - } - - /** - * {@inheritDoc} - */ - @Override - void parseJSONMember(JsonObject.Member member) { - JsonValue value = member.getValue(); - String memberName = member.getName(); - try { - switch (memberName) { - case "email": - this.email = value.asString(); - break; - case "role": - this.role = BoxSignRequestSignerRole.fromJSONString(value.asString()); - break; - case "is_in_person": - this.isInPerson = value.asBoolean(); - break; - case "order": - this.order = value.asInt(); - break; - case "embed_url_external_user_id": - this.embedUrlExternalUserId = value.asString(); - break; - case "has_viewed_email": - this.hasViewedEmail = value.asBoolean(); - break; - case "has_viewed_document": - this.hasViewedDocument = value.asBoolean(); - break; - case "signer_decision": - JsonObject signerDecisionJSON = value.asObject(); - this.signerDecision = new BoxSignerDecision(signerDecisionJSON); - break; - case "inputs": - List inputs = new ArrayList<>(); - for (JsonValue inputJSON : value.asArray()) { - BoxSignerInput input = new BoxSignerInput(inputJSON.asObject()); - inputs.add(input); - } - this.inputs = inputs; - break; - case "embed_url": - this.embedUrl = value.asString(); - break; - case "redirect_url": - this.redirectUrl = value.asString(); - break; - case "declined_redirect_url": - this.declinedRedirectUrl = value.asString(); - break; - case "iframeable_embed_url": - this.iframeableEmedUrl = value.asString(); - break; - case "signer_group_id": - this.signerGroupId = value.asString(); - break; - case "login_required": - this.loginRequired = value.asBoolean(); - break; - case "suppress_notifications": - this.suppressNotifications = value.asBoolean(); - break; - case "verification_phone_number": - this.verificationPhoneNumber = value.asString(); - default: - return; - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - - /** - * Gets a JSON object representing this class. - * - * @return the JSON object representing this class. - */ - public JsonObject getJSONObject() { - JsonObject jsonObj = new JsonObject(); - JsonUtils.addIfNotNull(jsonObj, "email", this.email); - JsonUtils.addIfNotNull(jsonObj, "role", this.role); - JsonUtils.addIfNotNull(jsonObj, "is_in_person", this.isInPerson); - JsonUtils.addIfNotNull(jsonObj, "order", this.order); - JsonUtils.addIfNotNull(jsonObj, "embed_url_external_user_id", this.embedUrlExternalUserId); - JsonUtils.addIfNotNull(jsonObj, "redirect_url", this.redirectUrl); - JsonUtils.addIfNotNull(jsonObj, "declined_redirect_url", this.declinedRedirectUrl); - JsonUtils.addIfNotNull(jsonObj, "signer_group_id", this.signerGroupId); - JsonUtils.addIfNotNull(jsonObj, "login_required", this.loginRequired); - JsonUtils.addIfNotNull(jsonObj, "password", this.password); - JsonUtils.addIfNotNull(jsonObj, "suppress_notifications", this.suppressNotifications); - JsonUtils.addIfNotNull(jsonObj, "verification_phone_number", this.verificationPhoneNumber); - return jsonObj; - } - - /** - * Type of decision made by signer. - */ - public enum BoxSignRequestSignerDecisionType { - - /** - * Signed decision. - */ - Signed("signed"), - - /** - * Declined decision. - */ - Declined("declined"); - - private final String jsonValue; - - BoxSignRequestSignerDecisionType(String jsonValue) { - this.jsonValue = jsonValue; - } - - static BoxSignRequestSignerDecisionType fromJSONString(String jsonValue) { - if ("signed".equals(jsonValue)) { - return Signed; - } else if ("declined".equals(jsonValue)) { - return Declined; - } - throw new IllegalArgumentException( - "The provided JSON value isn't a valid " + "BoxSignRequestSignerDecisionType."); - } - } - - /** - * Represents a type of input. - */ - public enum BoxSignRequestInputType { - - /** - * Signature input. - */ - Signature("signature"), - - /** - * Text input. - */ - Text("text"), - - /** - * Checkbox input. - */ - Checkbox("checkbox"), - - /** - * Date input. - */ - Date("date"); - - private final String jsonValue; - - BoxSignRequestInputType(String jsonValue) { - this.jsonValue = jsonValue; - } - - static BoxSignRequestInputType fromJSONString(String jsonValue) { - if ("signature".equals(jsonValue)) { - return Signature; - } else if ("text".equals(jsonValue)) { - return Text; - } else if ("checkbox".equals(jsonValue)) { - return Checkbox; - } else if ("date".equals(jsonValue)) { - return Date; - } - throw new IllegalArgumentException("The provided JSON value isn't a valid " + "BoxSignRequestInputType."); - } - } - - /** - * Represents a content type of input. - */ - public enum BoxSignRequestInputContentType { - /** - * Initial content type - */ - Initial("initial"), - /** - * Stamp content type - */ - Stamp("stamp"), - /** - * Signature content type - */ - Signature("signature"), - /** - * Company content type - */ - Company("company"), - /** - * Title content type - */ - Title("title"), - /** - * Email content type - */ - Email("email"), - /** - * Full name content type - */ - FullName("full_name"), - /** - * First name content type - */ - FirstName("first_name"), - /** - * Last name content type - */ - LastName("last_name"), - /** - * Text content type - */ - Text("text"), - /** - * Date content type - */ - Date("date"), - /** - * Checkbox content type - */ - Checkbox("checkbox"); - - private final String jsonValue; - - BoxSignRequestInputContentType(String jsonValue) { - this.jsonValue = jsonValue; - } - - static BoxSignRequestInputContentType fromJSONString(String jsonValue) { - switch (jsonValue) { - case "initial": - return Initial; - case "stamp": - return Stamp; - case "signature": - return Signature; - case "company": - return Company; - case "title": - return Title; - case "email": - return Email; - case "full_name": - return FullName; - case "first_name": - return FirstName; - case "last_name": - return LastName; - case "text": - return Text; - case "date": - return Date; - case "checkbox": - return Checkbox; - default: - throw new IllegalArgumentException( - format("The provided JSON value '%s' isn't a valid BoxSignRequestInputContentType.", jsonValue) - ); - } - } - } - - /** - * Represents a final decision made by signer (type and time the decision was made). - */ - public class BoxSignerDecision extends BoxJSONObject { - private BoxSignRequestSignerDecisionType type; - private Date finalizedAt; - private String additionalInfo; - - /** - * Constructs a BoxSignerDecision object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - public BoxSignerDecision(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the type of decision made by signer. - * - * @return type of decision made by signer. - */ - public BoxSignRequestSignerDecisionType getType() { - return this.type; - } - - /** - * Gets the date/time that the decision was made. - * - * @return date/time that the decision was made. - */ - public Date getFinalizedAt() { - return this.finalizedAt; - } - - /** - * Gets the additional info about the decision, such as the decline reason from the signer. - * - * @return additional information about the decision. - */ - public String getAdditionalInfo() { - return this.additionalInfo; - } - - /** - * {@inheritDoc} - */ - @Override - void parseJSONMember(JsonObject.Member member) { - JsonValue value = member.getValue(); - String memberName = member.getName(); - try { - if (memberName.equals("type")) { - this.type = BoxSignRequestSignerDecisionType.fromJSONString(value.asString()); - } else if (memberName.equals("finalized_at")) { - this.finalizedAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("additional_info")) { - this.additionalInfo = value.asString(); - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - } - - /** - * Represents an input created by a signer on a sign request. - */ - public class BoxSignerInput extends BoxJSONObject { - private String documentTagId; - private String textValue; - private boolean checkboxValue; - private BoxSignRequestInputContentType contentType; - private Date dateValue; - private BoxSignRequestInputType type; - private int pageIndex; - - /** - * Constructs a BoxSignerInput object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - public BoxSignerInput(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the reference of the id of a particular tag added to the content - * of the files being used to create the sign request. - * - * @return document tag id. - */ - public String getDocumentTagId() { - return this.documentTagId; - } - - /** - * Gets the text prefill value. - * - * @return text prefill value. - */ - public String getTextValue() { - return this.textValue; - } - - /** - * Gets the checkbox prefill value. - * - * @return checkbox prefill value. - */ - public boolean getIsCheckboxValue() { - return this.checkboxValue; - } - - /** - * Gets the content type of the input. - * - * @return content type of the input. - */ - public BoxSignRequestInputContentType getContentType() { - return this.contentType; - } - - /** - * Gets the date prefill value. - * - * @return date prefill value. - */ - public Date getDateValue() { - return this.dateValue; - } - - /** - * Gets the type of input. - * - * @return type of input. - */ - public BoxSignRequestInputType getType() { - return this.type; - } - - /** - * Gets the index of page that input is on. - * - * @return index of page that input is on. - */ - public int getPageIndex() { - return this.pageIndex; - } - - /** - * {@inheritDoc} - */ - @Override - void parseJSONMember(JsonObject.Member member) { - JsonValue value = member.getValue(); - String memberName = member.getName(); - try { - switch (memberName) { - case "documentTagId": - this.documentTagId = value.asString(); - break; - case "text_value": - this.textValue = value.asString(); - break; - case "checkbox_value": - this.checkboxValue = value.asBoolean(); - break; - case "content_type": - this.contentType = BoxSignRequestInputContentType.fromJSONString(value.asString()); - break; - case "date_value": - this.dateValue = BoxDateFormat.parseDateOnly(value.asString()); - break; - case "type": - this.type = BoxSignRequestInputType.fromJSONString(value.asString()); - break; - case "page_index": - this.pageIndex = value.asInt(); - break; - default: - return; - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - } -} - - diff --git a/src/main/java/com/box/sdk/BoxSignRequestSignerRole.java b/src/main/java/com/box/sdk/BoxSignRequestSignerRole.java deleted file mode 100644 index c0ae8f644..000000000 --- a/src/main/java/com/box/sdk/BoxSignRequestSignerRole.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.box.sdk; - -/** - * Defines the role of the signer in the sign request. Signers will need to sign the document, - * Approvers may just approve the document. - * Finally, FinalCopyReader will only receive the finished sign request with a sign log. - */ -public enum BoxSignRequestSignerRole { - - /** - * Signer role. Needs to sign the document. - */ - Signer("signer"), - - /** - * Approver role. Approves the document. - */ - Approver("approver"), - - /** - * Final copy reader role. Receives finished sign request with sign log. - */ - FinalCopyReader("final_copy_reader"); - - private final String jsonValue; - - BoxSignRequestSignerRole(String jsonValue) { - this.jsonValue = jsonValue; - } - - static BoxSignRequestSignerRole fromJSONString(String jsonValue) { - if ("signer".equals(jsonValue)) { - return Signer; - } else if ("approver".equals(jsonValue)) { - return Approver; - } else if ("final_copy_reader".equals(jsonValue)) { - return FinalCopyReader; - } - throw new IllegalArgumentException("The provided JSON value isn't a valid BoxSignRequestSignerRole."); - } -} diff --git a/src/main/java/com/box/sdk/BoxSignTemplate.java b/src/main/java/com/box/sdk/BoxSignTemplate.java deleted file mode 100644 index 5a535bd79..000000000 --- a/src/main/java/com/box/sdk/BoxSignTemplate.java +++ /dev/null @@ -1,414 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; -import java.util.ArrayList; -import java.util.List; - - -/** - * Represents a Sign Template used in the Box Sign API. - * - * @see Box Sign Templates - * - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly.

    - */ -@BoxResourceType("sign_template") -public class BoxSignTemplate extends BoxResource { - - /** - * The URL template for Sign Templates. - */ - public static final URLTemplate SIGN_TEMPLATES_URL_TEMPLATE = new URLTemplate("sign_templates"); - - /** - * The URL template for Sign Templates operations with a given ID. - */ - public static final URLTemplate SIGN_TEMPLATE_URL_TEMPLATE = new URLTemplate("sign_templates/%s"); - - /** - * The default limit of entries per response. - */ - public static final int DEFAULT_LIMIT = 100; - - /** - * Constructs a BoxSignTemplate for a resource with a given ID. - * - * @param api the API connection to be used by the resource. - * @param id the ID of the resource. - */ - public BoxSignTemplate(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Return all Sign Templates. - * - * @param api the API connection to be used by the resource. - * @return an iterable with all Sign Templates. - */ - public static Iterable getAll(BoxAPIConnection api) { - return getAll(api, DEFAULT_LIMIT); - } - - /** - * Return all Sign Templates. - * - * @param api the API connection to be used by the resource. - * @param limit the limit of entries per response. - * @return an iterable with all Sign Templates. - */ - public static Iterable getAll(BoxAPIConnection api, int limit) { - QueryStringBuilder builder = new QueryStringBuilder(); - URL url = SIGN_TEMPLATES_URL_TEMPLATE.buildWithQuery(api.getBaseURL(), builder.toString()); - return new BoxResourceIterable(api, url, limit) { - - @Override - protected BoxSignTemplate.Info factory(JsonObject jsonObject) { - BoxSignTemplate template = new BoxSignTemplate(api, jsonObject.get("id").asString()); - return template.new Info(jsonObject); - } - }; - - } - - /** - * Return information about this Sign Template. - * - * @return information about this Sign Template. - */ - public BoxSignTemplate.Info getInfo() { - URL url = SIGN_TEMPLATE_URL_TEMPLATE.buildAlpha(this.getAPI().getBaseURL(), this.getID()); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = (BoxJSONResponse) request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - return new Info(jsonObject); - } - } - - /** - * Contains information about a BoxSignTemplate. - */ - public class Info extends BoxResource.Info { - - private BoxSignTemplateAdditionalInfo additionalInfo; - private boolean areEmailSettingsLocked; - private boolean areFieldsLocked; - private boolean areOptionsLocked; - private boolean areFilesLocked; - private boolean areRecipientsLocked; - private BoxSignTemplateCustomBranding customBranding; - private Integer daysValid; - private String emailMessage; - private String emailSubject; - private String name; - private BoxFolder.Info parentFolder; - private BoxSignTemplateReadySignLink readySignLink; - private List signers; - private List sourceFiles; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object with the provided JSON string. - * - * @param json the JSON string representing the Sign Template. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object with the provided JSON object. - * - * @param jsonObject the JSON object representing the Sign Template. - */ - Info(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * {@inheritDoc} - */ - @Override - public BoxSignTemplate getResource() { - return BoxSignTemplate.this; - } - - /** - * Gets the additional information about this Sign Template. - * - * @return the additional information about this Sign Template. - */ - public BoxSignTemplateAdditionalInfo getAdditionalInfo() { - return this.additionalInfo; - } - - /** - * Gets whether the templates email settings are editable or not. - * - * @return true if the email settings are locked; otherwise false. - */ - public boolean getAreEmailSettingsLocked() { - return this.areEmailSettingsLocked; - } - - /** - * Gets whether the templates input fields are editable or not. - * This includes deleting or renaming template files. - * - * @return true if the fields are locked; otherwise false. - */ - public boolean getAreFieldsLocked() { - return this.areFieldsLocked; - } - - /** - * Gets weather the templates input options are editable or not. - * - * @return true if the options are editable; otherwise false. - */ - public boolean getAreOptionsLocked() { - return this.areOptionsLocked; - } - - /** - * Gets whether the template document options are editable or not, - * for example renaming the document. - * - * @return true if the files are locked; otherwise false. - */ - public boolean getAreFilesLocked() { - return this.areFilesLocked; - } - - /** - * Gets whether the template signers are editable or not. - * - * @return true if the recipients are locked; otherwise false. - */ - public boolean getAreRecipientsLocked() { - return this.areRecipientsLocked; - } - - /** - * Gets the custom branding applied to notifications and signature requests. - * - * @return the custom branding for this Sign Template. - */ - public BoxSignTemplateCustomBranding getCustomBranding() { - return this.customBranding; - } - - /** - * Gets the number of days after which the created signature request - * will automatically expire if not completed. - * By default, we do not apply any expiration date on signature requests, - * and the signature request does not expire. - * - * @return the number of days the template is valid for. - */ - public Integer getDaysValid() { - return this.daysValid; - } - - /** - * Gets the email message that will be sent to all signers. - * - * @return the email message for this Sign Template. - */ - public String getEmailMessage() { - return this.emailMessage; - } - - /** - * Gets the email subject that will be sent to all signers. - * - * @return the email subject for this Sign Template. - */ - public String getEmailSubject() { - return this.emailSubject; - } - - /** - * Gets the name of this Sign Template. - * - * @return the name of this Sign Template. - */ - public String getName() { - return this.name; - } - - /** - * Gets the parent folder of this Sign Template. - * - * @return the parent folder of this Sign Template. - */ - public BoxFolder.Info getParentFolder() { - return this.parentFolder; - } - - /** - * Gets the ready sign link for this Sign Template. - * - * @return the ready sign link for this Sign Template. - */ - public BoxSignTemplateReadySignLink getReadySignLink() { - return this.readySignLink; - } - - /** - * Gets the signers for this Sign Template. - * - * @return the signers for this Sign Template. - */ - public List getSigners() { - return this.signers; - } - - /** - * Gets the source files for this Sign Template. - * - * @return the source files for this Sign Template. - */ - public List getSourceFiles() { - return this.sourceFiles; - } - - /** - * {@inheritDoc} - */ - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - switch (memberName) { - case "additional_info": - this.additionalInfo = this.parseAdditionalInfo(value.asObject()); - break; - case "are_email_settings_locked": - this.areEmailSettingsLocked = value.asBoolean(); - break; - case "are_fields_locked": - this.areFieldsLocked = value.asBoolean(); - break; - case "are_options_locked": - this.areOptionsLocked = value.asBoolean(); - break; - case "are_files_locked": - this.areFilesLocked = value.asBoolean(); - break; - case "are_recipients_locked": - this.areRecipientsLocked = value.asBoolean(); - break; - case "custom_branding": - this.customBranding = this.parseCustomBranding(value.asObject()); - break; - case "days_valid": - this.daysValid = value.asInt(); - break; - case "email_message": - this.emailMessage = value.asString(); - break; - case "email_subject": - this.emailSubject = value.asString(); - break; - case "name": - this.name = value.asString(); - break; - case "parent_folder": - JsonObject parentFolderJSON = value.asObject(); - String parentFolderID = parentFolderJSON.get("id").asString(); - BoxFolder parentFolder = new BoxFolder(getAPI(), parentFolderID); - this.parentFolder = parentFolder.new Info(parentFolderJSON); - break; - case "ready_sign_link": - this.readySignLink = this.parseReadySignLink(value.asObject()); - break; - case "signers": - this.signers = this.parseSigners(value.asArray()); - break; - case "source_files": - this.sourceFiles = this.parseSourceFiles(value.asArray()); - break; - default: - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - - private BoxSignTemplateAdditionalInfo parseAdditionalInfo(JsonValue additionalInfoJSON) { - List nonEditableFields = new ArrayList(); - for (JsonValue fieldJSON : additionalInfoJSON.asObject().get("non_editable").asArray()) { - nonEditableFields.add(fieldJSON.asString()); - } - BoxSignTemplateAdditionalInfoRequired required = this.parseAdditionalInfoRequired( - additionalInfoJSON.asObject().get("required").asObject() - ); - return new BoxSignTemplateAdditionalInfo(nonEditableFields, required); - } - - private BoxSignTemplateAdditionalInfoRequired parseAdditionalInfoRequired(JsonObject requiredJSON) { - List> signers = new ArrayList>(); - for (JsonValue signerJSON : requiredJSON.get("signers").asArray()) { - List signer = new ArrayList(); - for (JsonValue fieldJSON : signerJSON.asArray()) { - signer.add(fieldJSON.asString()); - } - signers.add(signer); - } - return new BoxSignTemplateAdditionalInfoRequired(signers); - } - - private List parseSourceFiles(JsonValue filesArray) { - List files = new ArrayList(); - for (JsonValue fileJSON : filesArray.asArray()) { - JsonObject fileObj = fileJSON.asObject(); - String fileID = fileObj.get("id").asString(); - BoxFile file = new BoxFile(getAPI(), fileID); - files.add(file.new Info(fileObj)); - } - return files; - } - - private List parseSigners(JsonValue signersArray) { - List signers = new ArrayList(); - for (JsonValue signerJSON : signersArray.asArray()) { - JsonObject signerObj = signerJSON.asObject(); - signers.add(new BoxSignTemplateSigner(signerObj, getAPI())); - } - return signers; - } - - private BoxSignTemplateCustomBranding parseCustomBranding(JsonObject customBrandingJSON) { - String brandingColor = customBrandingJSON.get("branding_color").asString(); - String companyName = customBrandingJSON.get("company_name").asString(); - String emailFooterText = customBrandingJSON.get("email_footer_text").asString(); - String logoUri = customBrandingJSON.get("logo_uri").asString(); - return new BoxSignTemplateCustomBranding(brandingColor, companyName, emailFooterText, logoUri); - } - - private BoxSignTemplateReadySignLink parseReadySignLink(JsonObject readySignLinkJSON) { - String folderID = readySignLinkJSON.get("folder_id").asString(); - String instructions = readySignLinkJSON.get("instructions").asString(); - boolean isActive = readySignLinkJSON.get("is_active").asBoolean(); - boolean isNofiticationDisabled = readySignLinkJSON.get("is_notification_disabled").asBoolean(); - String name = readySignLinkJSON.get("name").asString(); - String url = readySignLinkJSON.get("url").asString(); - return new BoxSignTemplateReadySignLink(folderID, instructions, isActive, - isNofiticationDisabled, name, url); - } - } -} diff --git a/src/main/java/com/box/sdk/BoxSignTemplateAdditionalInfo.java b/src/main/java/com/box/sdk/BoxSignTemplateAdditionalInfo.java deleted file mode 100644 index b12513432..000000000 --- a/src/main/java/com/box/sdk/BoxSignTemplateAdditionalInfo.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.box.sdk; - -import java.util.List; - - -/** - * Box Sign Template additional information on which fields are required - * and which fields are not editable. - */ -public class BoxSignTemplateAdditionalInfo { - private final List nonEditable; - private final BoxSignTemplateAdditionalInfoRequired required; - - public BoxSignTemplateAdditionalInfo(List nonEditable, - BoxSignTemplateAdditionalInfoRequired required) { - this.nonEditable = nonEditable; - this.required = required; - } - - /** - * Get non-editable fields. - * - * @return list of non-editable fields.\ - */ - public List getNonEditable() { - return this.nonEditable; - } - - /** - * Gets the required fields. - * - * @return the required fields. - */ - public BoxSignTemplateAdditionalInfoRequired getRequired() { - return this.required; - } -} diff --git a/src/main/java/com/box/sdk/BoxSignTemplateAdditionalInfoRequired.java b/src/main/java/com/box/sdk/BoxSignTemplateAdditionalInfoRequired.java deleted file mode 100644 index 67d0948d0..000000000 --- a/src/main/java/com/box/sdk/BoxSignTemplateAdditionalInfoRequired.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.box.sdk; - -import java.util.List; - - -/** - * Box Sign Template additional information on which fields are required. - */ -public class BoxSignTemplateAdditionalInfoRequired { - private final List> signers; - - /** - * Constructs a BoxSignTemplateAdditionalInfoRequired object with the provided list of signers. - */ - public BoxSignTemplateAdditionalInfoRequired(List> signers) { - this.signers = signers; - } - - /** - * Gets the required signer fields. - * - * @return the required signer fields. - */ - public List> getSigners() { - return this.signers; - } -} diff --git a/src/main/java/com/box/sdk/BoxSignTemplateCustomBranding.java b/src/main/java/com/box/sdk/BoxSignTemplateCustomBranding.java deleted file mode 100644 index c1c1425a8..000000000 --- a/src/main/java/com/box/sdk/BoxSignTemplateCustomBranding.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.box.sdk; - -/** - * Custom branding applied to notifications and signature requests. - */ -public class BoxSignTemplateCustomBranding { - private final String brandingColor; - private final String companyName; - private final String emailFooterText; - private final String logoUri; - - /** - * Constructs a BoxSignTemplateCustomBranding object with the provided information. - * - * @param brandingColor the branding color. - * @param companyName the company name. - * @param emailFooterText the email footer text. - * @param logoUri the logo URI. - */ - public BoxSignTemplateCustomBranding(String brandingColor, String companyName, String emailFooterText, - String logoUri) { - this.brandingColor = brandingColor; - this.companyName = companyName; - this.emailFooterText = emailFooterText; - this.logoUri = logoUri; - } - - /** - * Gets the branding color. - * - * @return the branding color. - */ - public String getBrandingColor() { - return this.brandingColor; - } - - /** - * Gets the company name. - * - * @return the company name. - */ - public String getCompanyName() { - return this.companyName; - } - - /** - * Gets the email footer text. - * - * @return the email footer text. - */ - public String getEmailFooterText() { - return this.emailFooterText; - } - - /** - * Gets the logo URI. - * - * @return the logo URI. - */ - public String getLogoUri() { - return this.logoUri; - } -} diff --git a/src/main/java/com/box/sdk/BoxSignTemplateReadySignLink.java b/src/main/java/com/box/sdk/BoxSignTemplateReadySignLink.java deleted file mode 100644 index d331363ce..000000000 --- a/src/main/java/com/box/sdk/BoxSignTemplateReadySignLink.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.box.sdk; - -/** - * Box's ready-sign link feature enables you to create a link to a signature request that you've created from a template. - * Use this link when you want to post a signature request on a public form — such as an email, - * social media post, or web page — without knowing who the signers will be. - * Note: The ready-sign link feature is limited to Enterprise Plus customers and not available to Box Verified Enterprises. - */ -public class BoxSignTemplateReadySignLink { - private final String folderID; - private final String instructions; - private final boolean isActive; - private final boolean isNofiticationDisabled; - private final String name; - private final String url; - - /** - * Constructs a BoxSignTemplateReadySignLink object with the provided information. - * - * @param folderID the folder ID. - * @param instructions the instructions. - * @param isActive whether the link is active or not. - * @param isNofiticationDisabled whether the notification is disabled or not. - * @param name the name. - * @param url the URL. - */ - public BoxSignTemplateReadySignLink(String folderID, String instructions, boolean isActive, - boolean isNofiticationDisabled, String name, String url) { - this.folderID = folderID; - this.instructions = instructions; - this.isActive = isActive; - this.isNofiticationDisabled = isNofiticationDisabled; - this.name = name; - this.url = url; - } - - /** - * Gets the folder ID. - * - * @return the folder ID. - */ - public String getFolderID() { - return this.folderID; - } - - /** - * Gets the instructions. - * - * @return the instructions. - */ - public String getInstructions() { - return this.instructions; - } - - /** - * Gets whether the link is active or not. - * - * @return true if the link is active; otherwise false. - */ - public boolean getIsActive() { - return this.isActive; - } - - /** - * Gets whether the notification is disabled or not. - * - * @return true if the notification is disabled; otherwise false. - */ - public boolean getIsNofiticationDisabled() { - return this.isNofiticationDisabled; - } - - /** - * Gets the name of the ready-sign link. - * - * @return the name. - */ - public String getName() { - return this.name; - } - - /** - * Gets the URL of the ready-sign link. - * - * @return the URL. - */ - public String getUrl() { - return this.url; - } -} diff --git a/src/main/java/com/box/sdk/BoxSignTemplateSigner.java b/src/main/java/com/box/sdk/BoxSignTemplateSigner.java deleted file mode 100644 index 0c18101e3..000000000 --- a/src/main/java/com/box/sdk/BoxSignTemplateSigner.java +++ /dev/null @@ -1,675 +0,0 @@ -package com.box.sdk; - -import static java.lang.String.format; - -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - - -/** - * Box Sign Template signer. - */ -public class BoxSignTemplateSigner extends BoxJSONObject { - private String email; - private List inputs; - private Boolean isInPerson; - private int order; - private BoxSignRequestSignerRole role; - private String signerGroupId; - private BoxAPIConnection api; - - /** - * Constructs a BoxSignTemplateSigner object with the provided information. - * - * @param email the email. - * @param inputs the inputs. - * @param isInPerson whether the signer is in person or not. - * @param order the order. - * @param role the role. - */ - public BoxSignTemplateSigner(String email, List inputs, Boolean isInPerson, - int order, BoxSignRequestSignerRole role) { - this(email, inputs, isInPerson, order, role, null); - } - - /** - * Constructs a BoxSignTemplateSigner object with the provided information. - * - * @param email the email. - * @param inputs the inputs. - * @param isInPerson whether the signer is in person or not. - * @param order the order. - * @param role the role. - * @param signerGroupId the signer group id. - */ - public BoxSignTemplateSigner(String email, List inputs, Boolean isInPerson, - int order, BoxSignRequestSignerRole role, String signerGroupId) { - this.email = email; - this.inputs = inputs; - this.isInPerson = isInPerson; - this.order = order; - this.role = role; - this.signerGroupId = signerGroupId; - } - - /** - * Constructs a BoxSignTemplateSigner object with the provided JSON object. - * - * @param jsonObject the JSON object representing the Sign Template Signer. - */ - public BoxSignTemplateSigner(JsonObject jsonObject, BoxAPIConnection api) { - super(jsonObject); - this.api = api; - } - - /** - * Gets the email of the signer. - * - * @return the email of the signer. - */ - public String getEmail() { - return this.email; - } - - /** - * Gets the inputs of the signer. - * - * @return the inputs of the signer. - */ - public List getInputs() { - return this.inputs; - } - - /** - * Used in combination with an embed URL for a sender. - * After the sender signs, they will be redirected to the next in_person signer. - * - * @return true if the signer is in person; otherwise false. - */ - public Boolean getIsInPerson() { - return this.isInPerson; - } - - /** - * Gets the order of the signer. - * - * @return the order of the signer. - */ - public int getOrder() { - return this.order; - } - - /** - * Gets the role of the signer. - * - * @return the role of the signer. - */ - public BoxSignRequestSignerRole getRole() { - return this.role; - } - - /** - * Gets the signer group id. It is sufficient for only one signer from the group to sign the document. - * - * @return the id of the group signer. - */ - public String getSignerGroupId() { - return this.signerGroupId; - } - - /** - * {@inheritDoc} - */ - @Override - void parseJSONMember(JsonObject.Member member) { - JsonValue value = member.getValue(); - String memberName = member.getName(); - try { - switch (memberName) { - case "email": - this.email = value.asString(); - break; - case "inputs": - this.inputs = new ArrayList(); - for (JsonValue inputJSON : value.asArray()) { - this.inputs.add(new BoxSignTemplateSignerInput(inputJSON.asObject(), this.api)); - } - break; - case "is_in_person": - this.isInPerson = value.asBoolean(); - break; - case "order": - this.order = value.asInt(); - break; - case "role": - this.role = BoxSignRequestSignerRole.fromJSONString(value.asString()); - break; - case "signer_group_id": - this.signerGroupId = value.asString(); - break; - default: - return; - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - - /** - * Box Sign Template signer input. - */ - public class BoxSignTemplateSignerInput extends BoxJSONObject { - private BoxSignTemplateSignerInputType type; - private Boolean checkboxValue; - private BoxSignTemplateSignerInputContentType contentType; - private BoxSignTemplateSignerInputCoordinates coordinates; - private Date dateValue; - private BoxSignTemplatesSignerInputDimensions dimensions; - private String documentId; - private String documentTagId; - private List dropdownChoices; - private String groupId; - private Boolean isRequired; - private int pageIndex; - private String textValue; - private String label; - private BoxAPIConnection api; - - /** - * Constructs a BoxSignTemplateSignerInput object with the provided information. - * - * @param type the type. - * @param checkboxValue the checkbox value. - * @param contentType the content type. - * @param coordinates the coordinates. - * @param dateValue the date value. - * @param dimensions the dimensions. - * @param documentId the document ID. - * @param documentTagId the document tag ID. - * @param dropdownChoices the dropdown choices. - * @param groupId the group ID. - * @param isRequired whether the input is required or not. - * @param pageIndex the page index. - * @param textValue the text value. - * @param label the label. - */ - public BoxSignTemplateSignerInput(BoxSignTemplateSignerInputType type, Boolean checkboxValue, - BoxSignTemplateSignerInputContentType contentType, - BoxSignTemplateSignerInputCoordinates coordinates, Date dateValue, - BoxSignTemplatesSignerInputDimensions dimensions, String documentId, - String documentTagId, List dropdownChoices, String groupId, - Boolean isRequired, int pageIndex, String textValue, String label) { - this.type = type; - this.checkboxValue = checkboxValue; - this.contentType = contentType; - this.coordinates = coordinates; - this.dateValue = dateValue; - this.dimensions = dimensions; - this.documentId = documentId; - this.documentTagId = documentTagId; - this.dropdownChoices = dropdownChoices; - this.groupId = groupId; - this.isRequired = isRequired; - this.pageIndex = pageIndex; - this.textValue = textValue; - this.label = label; - } - - /** - * Constructs a BoxSignTemplateSignerInput object with the provided JSON object. - * - * @param jsonObject the JSON object representing the Sign Template Signer Input. - */ - public BoxSignTemplateSignerInput(JsonObject jsonObject, BoxAPIConnection api) { - super(jsonObject); - this.api = api; - } - - /** - * Gets the type of the input. - * - * @return the type of the input. - */ - public BoxSignTemplateSignerInputType getType() { - return this.type; - } - - /** - * Gets the checkbox value. - * - * @return the checkbox value. - */ - public Boolean getCheckboxValue() { - return this.checkboxValue; - } - - /** - * Gets the content type. - * - * @return the content type. - */ - public BoxSignTemplateSignerInputContentType getContentType() { - return this.contentType; - } - - /** - * Gets the coordinates. - * - * @return the coordinates. - */ - public BoxSignTemplateSignerInputCoordinates getCoordinates() { - return this.coordinates; - } - - /** - * Gets the date value. - * - * @return the date value. - */ - public Date getDateValue() { - return this.dateValue; - } - - /** - * Gets the dimensions. - * - * @return the dimensions. - */ - public BoxSignTemplatesSignerInputDimensions getDimensions() { - return this.dimensions; - } - - /** - * Gets the document ID. - * - * @return the document ID. - */ - public String getDocumentId() { - return this.documentId; - } - - /** - * Gets the document tag ID. - * - * @return the document tag ID. - */ - public String getDocumentTagId() { - return this.documentTagId; - } - - /** - * Gets the dropdown choices. - * - * @return the dropdown choices. - */ - public List getDropdownChoices() { - return this.dropdownChoices; - } - - /** - * Gets the group ID. - * - * @return the group ID. - */ - public String getGroupId() { - return this.groupId; - } - - /** - * Gets whether the input is required or not. - * - * @return true if the input is required; otherwise false. - */ - public Boolean getIsRequired() { - return this.isRequired; - } - - /** - * Gets the page index. - * - * @return the page index. - */ - public int getPageIndex() { - return this.pageIndex; - } - - /** - * Gets the text value. - * - * @return the text value. - */ - public String getTextValue() { - return this.textValue; - } - - /** - * Gets the label. - * - * @return the label. - */ - public String getLabel() { - return this.label; - } - - /** - * {@inheritDoc} - */ - @Override - void parseJSONMember(JsonObject.Member member) { - JsonValue value = member.getValue(); - String memberName = member.getName(); - try { - switch (memberName) { - case "type": - this.type = BoxSignTemplateSignerInputType.fromJSONString(value.asString()); - break; - case "checkbox_value": - this.checkboxValue = value.asBoolean(); - break; - case "content_type": - this.contentType = BoxSignTemplateSignerInputContentType.fromJSONString(value.asString()); - break; - case "coordinates": - JsonObject coordinatesJSON = value.asObject(); - double x = coordinatesJSON.get("x").asFloat(); - double y = coordinatesJSON.get("y").asFloat(); - this.coordinates = new BoxSignTemplateSignerInputCoordinates(x, y); - break; - case "date_value": - this.dateValue = BoxDateFormat.parse(value.asString()); - break; - case "dimensions": - JsonObject dimensionsJSON = value.asObject(); - double height = dimensionsJSON.get("height").asFloat(); - double width = dimensionsJSON.get("width").asFloat(); - this.dimensions = new BoxSignTemplatesSignerInputDimensions(height, width); - break; - case "document_id": - this.documentId = value.asString(); - break; - case "document_tag_id": - this.documentTagId = value.asString(); - break; - case "dropdown_choices": - this.dropdownChoices = new ArrayList(); - for (JsonValue choiceJSON : value.asArray()) { - this.dropdownChoices.add(choiceJSON.asString()); - } - break; - case "group_id": - this.groupId = value.asString(); - break; - case "is_required": - this.isRequired = value.asBoolean(); - break; - case "page_index": - this.pageIndex = value.asInt(); - break; - case "text_value": - this.textValue = value.asString(); - break; - case "label": - this.label = value.asString(); - break; - default: - return; - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - } - - /** - * Box Sign Template signer input coordinates. - */ - public class BoxSignTemplateSignerInputCoordinates { - private final double x; - private final double y; - - /** - * Constructs a BoxSignTemplateSignerInputCoordinates object with the provided information. - * - * @param x the x coordinate. - * @param y the y coordinate. - */ - public BoxSignTemplateSignerInputCoordinates(double x, double y) { - this.x = x; - this.y = y; - } - - /** - * Gets the x coordinate. - * - * @return the x coordinate. - */ - public double getX() { - return this.x; - } - - /** - * Gets the y coordinate. - * - * @return the y coordinate. - */ - public double getY() { - return this.y; - } - } - - /** - * Box Sign Template signer input dimensions. - */ - public class BoxSignTemplatesSignerInputDimensions { - private final double height; - private final double width; - - /** - * Constructs a BoxSignTemplatesSignerInputDimensions object with the provided information. - * - * @param height the height. - * @param width the width. - */ - public BoxSignTemplatesSignerInputDimensions(double height, double width) { - this.height = height; - this.width = width; - } - - /** - * Gets the height. - * - * @return the height. - */ - public double getHeight() { - return this.height; - } - - /** - * Gets the width. - * - * @return the width. - */ - public double getWidth() { - return this.width; - } - } - - /** - * Box Sign Template signer input type. - */ - public enum BoxSignTemplateSignerInputType { - /** - * Signature input type. - */ - Signature("signature"), - /** - * Date input type. - */ - Date("date"), - /** - * Text input type. - */ - Text("text"), - /** - * Checkbox input type. - */ - Checkbox("checkbox"), - /** - * Attachment input type. - */ - Attachment("attachment"), - /** - * Radio input type. - */ - Radio("radio"), - /** - * Dropdown input type. - */ - Dropdown("dropdown"); - - private final String jsonValue; - - BoxSignTemplateSignerInputType(String jsonValue) { - this.jsonValue = jsonValue; - } - - static BoxSignTemplateSignerInputType fromJSONString(String jsonValue) { - switch (jsonValue) { - case "signature": - return Signature; - case "date": - return Date; - case "text": - return Text; - case "checkbox": - return Checkbox; - case "attachment": - return Attachment; - case "radio": - return Radio; - case "dropdown": - return Dropdown; - default: - throw new IllegalArgumentException( - format("The provided JSON value '%s' isn't a valid BoxSignTemplateSignerInputType.", - jsonValue) - ); - } - } - } - - /** - * Box Sign Template signer input content type. - */ - public enum BoxSignTemplateSignerInputContentType { - /** - * Initial content type - */ - Initial("initial"), - /** - * Stamp content type - */ - Stamp("stamp"), - /** - * Signature content type - */ - Signature("signature"), - /** - * Company content type - */ - Company("company"), - /** - * Title content type - */ - Title("title"), - /** - * Email content type - */ - Email("email"), - /** - * Full name content type - */ - FullName("full_name"), - /** - * First name content type - */ - FirstName("first_name"), - /** - * Last name content type - */ - LastName("last_name"), - /** - * Text content type - */ - Text("text"), - /** - * Date content type - */ - Date("date"), - /** - * Checkbox content type - */ - Checkbox("checkbox"), - /** - * Attachement content type - */ - Attachement("attachment"), - /** - * Radio content type - */ - Radio("radio"), - /** - * Dropdown content type - */ - Dropdown("dropdown"); - - private final String jsonValue; - - BoxSignTemplateSignerInputContentType(String jsonValue) { - this.jsonValue = jsonValue; - } - - static BoxSignTemplateSignerInputContentType fromJSONString(String jsonValue) { - switch (jsonValue) { - case "initial": - return Initial; - case "stamp": - return Stamp; - case "signature": - return Signature; - case "company": - return Company; - case "title": - return Title; - case "email": - return Email; - case "full_name": - return FullName; - case "first_name": - return FirstName; - case "last_name": - return LastName; - case "text": - return Text; - case "date": - return Date; - case "checkbox": - return Checkbox; - case "attachment": - return Attachement; - case "radio": - return Radio; - case "dropdown": - return Dropdown; - default: - throw new IllegalArgumentException( - format("The provided JSON value '%s' isn't a valid BoxSignTemplateSignerInputContentType.", - jsonValue) - ); - } - } - } -} diff --git a/src/main/java/com/box/sdk/BoxStoragePolicy.java b/src/main/java/com/box/sdk/BoxStoragePolicy.java deleted file mode 100644 index 25ddcfe7c..000000000 --- a/src/main/java/com/box/sdk/BoxStoragePolicy.java +++ /dev/null @@ -1,171 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; - -/** - * Represents a BoxStoragePolicy. - */ -@BoxResourceType("storage_policy") -public class BoxStoragePolicy extends BoxResource { - - /** - * Storage Policies URL Template. - */ - public static final URLTemplate STORAGE_POLICY_URL_TEMPLATE = new URLTemplate("storage_policies"); - - /** - * Storage Policies URL Template. - */ - public static final URLTemplate STORAGE_POLICY_WITH_ID_URL_TEMPLATE = new URLTemplate("storage_policies/%s"); - - /** - * The default limit of entries per response. - */ - private static final int DEFAULT_LIMIT = 100; - - /** - * Constructs a BoxStoragePolicy with a given ID. - * - * @param api the API connection to be used by the BoxStoragePolicy. - * @param id the ID of the BoxStoragePolicy. - */ - public BoxStoragePolicy(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Returns all BoxStoragePolicy with specified fields. - * - * @param api the API connection to be used by the resource. - * @param fields the fields to retrieve. - * @return an iterable with all the storage policies met search conditions. - */ - public static Iterable getAll(final BoxAPIConnection api, String... fields) { - - return getAll(api, DEFAULT_LIMIT, fields); - } - - /** - * Returns all BoxStoragePolicy with specified fields. - * - * @param api the API connection to be used by the resource. - * @param limit the limit of items per single response. The default is 100. - * @param fields the fields to retrieve. - * @return an iterable with all the storage policies met search conditions. - */ - public static Iterable getAll(final BoxAPIConnection api, int limit, String... fields) { - - QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - - URL url = STORAGE_POLICY_URL_TEMPLATE.buildWithQuery(api.getBaseURL(), builder.toString()); - return new BoxResourceIterable(api, url, limit) { - - @Override - protected BoxStoragePolicy.Info factory(JsonObject jsonObject) { - BoxStoragePolicy storagePolicy = new BoxStoragePolicy(api, jsonObject.get("id").asString()); - - return storagePolicy.new Info(jsonObject); - } - }; - } - - /** - * Gets information for a Box Storage Policy with optional fields. - * - * @param fields the fields to retrieve. - * @return info about this item containing only the specified fields, including storage policy. - */ - public BoxStoragePolicy.Info getInfo(String... fields) { - QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - URL url = STORAGE_POLICY_WITH_ID_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), builder.toString(), - this.getID()); - - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - return new Info(response.getJSON()); - } - } - - /** - * Checks if there is already a Storage Policy Assignment and creates one if one does not exist. - * - * @param userID the ID of the user you want to assign the Storage Policy to. - * @return information about this {@link BoxStoragePolicyAssignment}. - */ - public BoxStoragePolicyAssignment.Info assign(String userID) { - return BoxStoragePolicyAssignment.assign(this.getAPI(), this.getID(), userID); - } - - /** - * Contains information about the BoxStoragePolicy. - */ - public class Info extends BoxResource.Info { - - /** - * @see #getStoragePolicyName() - */ - private String storagePolicyName; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - Info(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * {@inheritDoc} - */ - @Override - public BoxStoragePolicy getResource() { - return BoxStoragePolicy.this; - } - - /** - * @return the name of the storage policy. - */ - public String getStoragePolicyName() { - return this.storagePolicyName; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - if (memberName.equals("name")) { - this.storagePolicyName = value.asString(); - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - } -} diff --git a/src/main/java/com/box/sdk/BoxStoragePolicyAssignment.java b/src/main/java/com/box/sdk/BoxStoragePolicyAssignment.java deleted file mode 100644 index 2c3fb4613..000000000 --- a/src/main/java/com/box/sdk/BoxStoragePolicyAssignment.java +++ /dev/null @@ -1,275 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.http.HttpMethod; -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; - -/** - * Represents a BoxStoragePolicyAssignment. - */ -@BoxResourceType("storage_policy_assignment") -public class BoxStoragePolicyAssignment extends BoxResource { - - /** - * Storage Policies Assignment URL Template. - */ - public static final URLTemplate STORAGE_POLICY_ASSIGNMENT_URL_TEMPLATE = new - URLTemplate("storage_policy_assignments"); - - /** - * Storage Policy Assignment URL Template. - */ - public static final URLTemplate STORAGE_POLICY_ASSIGNMENT_WITH_ID_URL_TEMPLATE = new - URLTemplate("storage_policy_assignments/%s"); - - /** - * Constructs a BoxStoragePolicyAssignment for a BoxStoragePolicy with a givenID. - * - * @param api the API connection to be used by the file. - * @param id the ID of the file. - */ - public BoxStoragePolicyAssignment(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Create a BoxStoragePolicyAssignment for a BoxStoragePolicy. - * - * @param api the API connection to be used by the resource. - * @param policyID the policy ID of the BoxStoragePolicy. - * @param userID the user ID of the to assign the BoxStoragePolicy to. - * @return the information about the BoxStoragePolicyAssignment created. - */ - public static BoxStoragePolicyAssignment.Info create(BoxAPIConnection api, String policyID, String userID) { - URL url = STORAGE_POLICY_ASSIGNMENT_URL_TEMPLATE.build(api.getBaseURL()); - BoxJSONRequest request = new BoxJSONRequest(api, url, HttpMethod.POST); - JsonObject requestJSON = new JsonObject() - .add("storage_policy", new JsonObject() - .add("type", "storage_policy") - .add("id", policyID)) - .add("assigned_to", new JsonObject() - .add("type", "user") - .add("id", userID)); - - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - BoxStoragePolicyAssignment storagePolicyAssignment = new BoxStoragePolicyAssignment(api, - responseJSON.get("id").asString()); - - return storagePolicyAssignment.new Info(responseJSON); - } - } - - /** - * Returns a BoxStoragePolicyAssignment information. - * - * @param api the API connection to be used by the resource. - * @param resolvedForType the assigned entity type for the storage policy. - * @param resolvedForID the assigned entity id for the storage policy. - * @return information about this {@link BoxStoragePolicyAssignment}. - */ - public static BoxStoragePolicyAssignment.Info getAssignmentForTarget(final BoxAPIConnection api, - String resolvedForType, String resolvedForID) { - QueryStringBuilder builder = new QueryStringBuilder(); - builder.appendParam("resolved_for_type", resolvedForType) - .appendParam("resolved_for_id", resolvedForID); - URL url = STORAGE_POLICY_ASSIGNMENT_URL_TEMPLATE.buildWithQuery(api.getBaseURL(), builder.toString()); - BoxJSONRequest request = new BoxJSONRequest(api, url, HttpMethod.GET); - try (BoxJSONResponse response = request.send()) { - - BoxStoragePolicyAssignment storagePolicyAssignment = new BoxStoragePolicyAssignment(api, - response.getJsonObject().get("entries").asArray().get(0).asObject().get("id").asString()); - - return storagePolicyAssignment - .new Info(response.getJsonObject().get("entries").asArray().get(0).asObject()); - } - } - - /** - * Checks if there is already a Storage Policy Assignment and creates one if one does not exist. - * - * @param api the API connection to be used by the resource. - * @param storagePolicyID the ID of the Storage Policy you want to assign to user. - * @param userID the ID of the user you want to assign the Storage Policy to. - * @return information about this {@link BoxStoragePolicyAssignment}. - */ - public static BoxStoragePolicyAssignment.Info assign(BoxAPIConnection api, String storagePolicyID, String userID) { - BoxStoragePolicyAssignment.Info assignmentInfo; - assignmentInfo = getAssignmentForTarget(api, "user", userID); - - if (assignmentInfo.getStoragePolicyID().equals(storagePolicyID)) { - return assignmentInfo; - } - - if (assignmentInfo.getAssignedToType().equals("enterprise")) { - return create(api, storagePolicyID, userID); - } - - assignmentInfo.setStoragePolicyID(storagePolicyID); - BoxStoragePolicyAssignment assignment = new BoxStoragePolicyAssignment(api, assignmentInfo.getID()); - assignment.updateInfo(assignmentInfo); - return assignmentInfo; - } - - /** - * Updates the information about the BoxStoragePolicyAssignment with any info fields that have been - * modified locally. - * - * @param info the updated info. - */ - public void updateInfo(BoxStoragePolicyAssignment.Info info) { - URL url = STORAGE_POLICY_ASSIGNMENT_WITH_ID_URL_TEMPLATE.buildAlpha(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - request.setBody(info.getPendingChanges()); - - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - info.update(responseJSON); - } - } - - /** - * @return information about this {@link BoxStoragePolicyAssignment}. - */ - public BoxStoragePolicyAssignment.Info getInfo() { - URL url = STORAGE_POLICY_ASSIGNMENT_WITH_ID_URL_TEMPLATE.buildAlpha(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, HttpMethod.GET); - try (BoxJSONResponse response = request.send()) { - return new Info(Json.parse(response.getJSON()).asObject()); - } - } - - /** - * Deletes this BoxStoragePolicyAssignment. - */ - public void delete() { - URL url = STORAGE_POLICY_ASSIGNMENT_WITH_ID_URL_TEMPLATE.buildAlpha(this.getAPI().getBaseURL(), this.getID()); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, HttpMethod.DELETE); - request.send().close(); - } - - /** - * Contains information about a BoxStoragePolicyAssignment. - */ - public class Info extends BoxResource.Info { - - /** - * @see #getStoragePolicyID() - */ - private String storagePolicyID; - - /** - * @see #getStoragePolicyType() - */ - private String storagePolicyType; - - /** - * @see #getAssignedToID() - */ - private String assignedToID; - - /** - * @see #getAssignedToType() - */ - private String assignedToType; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - Info(JsonObject jsonObject) { - super(jsonObject); - } - - @Override - public BoxResource getResource() { - return BoxStoragePolicyAssignment.this; - } - - /** - * @return the entity type that this is assigned to. - */ - public String getAssignedToType() { - return this.assignedToType; - } - - /** - * @return the entity id that this is assigned to. - */ - public String getAssignedToID() { - return this.assignedToID; - } - - /** - * @return storage policy id that is assigned to. - */ - public String getStoragePolicyID() { - return this.storagePolicyID; - } - - /** - * Sets the storage policy of the storage policy assignment. - * - * @param storagePolicyID the Id of the storage policy you wish to assign. - */ - public void setStoragePolicyID(String storagePolicyID) { - this.storagePolicyID = storagePolicyID; - JsonObject storagePolicyObject = new JsonObject(); - storagePolicyObject.add("type", "storage_policy"); - storagePolicyObject.add("id", storagePolicyID); - - this.addPendingChange("storage_policy", storagePolicyObject); - } - - /** - * @return storage policy type that is assigned to. - */ - public String getStoragePolicyType() { - return this.storagePolicyType; - } - - /** - * {@inheritDoc} - */ - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - if (memberName.equals("assigned_to")) { - JsonObject assignmentJSON = value.asObject(); - this.assignedToType = assignmentJSON.get("type").asString(); - this.assignedToID = assignmentJSON.get("id").asString(); - } else if (memberName.equals("storage_policy")) { - JsonObject storagePolicyJSON = value.asObject(); - this.storagePolicyID = storagePolicyJSON.get("id").asString(); - this.storagePolicyType = storagePolicyJSON.get("type").asString(); - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - } -} diff --git a/src/main/java/com/box/sdk/BoxTask.java b/src/main/java/com/box/sdk/BoxTask.java deleted file mode 100644 index 79f9a6adb..000000000 --- a/src/main/java/com/box/sdk/BoxTask.java +++ /dev/null @@ -1,475 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * Represents a task on Box. Tasks can have a due date and can be assigned to a specific user. - */ -@BoxResourceType("task") -public class BoxTask extends BoxResource { - - /** - * Task URL Template. - */ - public static final URLTemplate TASK_URL_TEMPLATE = new URLTemplate("tasks/%s"); - /** - * Get Assignments URL Template. - */ - public static final URLTemplate GET_ASSIGNMENTS_URL_TEMPLATE = new URLTemplate("tasks/%s/assignments"); - /** - * Add Task Assignment URL Template. - */ - public static final URLTemplate ADD_TASK_ASSIGNMENT_URL_TEMPLATE = new URLTemplate("task_assignments"); - - /** - * Constructs a BoxTask for a task with a given ID. - * - * @param api the API connection to be used by the task. - * @param id the ID of the task. - */ - public BoxTask(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Deletes this task. - */ - public void delete() { - URL url = TASK_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "DELETE"); - request.send().close(); - } - - /** - * Adds a new assignment to this task. - * - * @param assignTo the user to assign the assignment to. - * @return information about the newly added task assignment. - */ - public BoxTaskAssignment.Info addAssignment(BoxUser assignTo) { - JsonObject taskJSON = new JsonObject(); - taskJSON.add("type", "task"); - taskJSON.add("id", this.getID()); - - JsonObject assignToJSON = new JsonObject(); - assignToJSON.add("id", assignTo.getID()); - - JsonObject requestJSON = new JsonObject(); - requestJSON.add("task", taskJSON); - requestJSON.add("assign_to", assignToJSON); - - URL url = ADD_TASK_ASSIGNMENT_URL_TEMPLATE.build(this.getAPI().getBaseURL()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "POST"); - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - BoxTaskAssignment addedAssignment = new BoxTaskAssignment(this.getAPI(), responseJSON.get("id").asString()); - return addedAssignment.new Info(responseJSON); - } - } - - /** - * Adds a new assignment to this task using user's login as identifier. - * - * @param assignToLogin the login of user to assign the task to. - * @return information about the newly added task assignment. - */ - public BoxTaskAssignment.Info addAssignmentByLogin(String assignToLogin) { - JsonObject taskJSON = new JsonObject(); - taskJSON.add("type", "task"); - taskJSON.add("id", this.getID()); - - JsonObject assignToJSON = new JsonObject(); - assignToJSON.add("login", assignToLogin); - - JsonObject requestJSON = new JsonObject(); - requestJSON.add("task", taskJSON); - requestJSON.add("assign_to", assignToJSON); - - URL url = ADD_TASK_ASSIGNMENT_URL_TEMPLATE.build(this.getAPI().getBaseURL()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "POST"); - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - BoxTaskAssignment addedAssignment = new BoxTaskAssignment(this.getAPI(), responseJSON.get("id").asString()); - return addedAssignment.new Info(responseJSON); - } - } - - /** - * Gets any assignments for this task. - * - * @return a list of assignments for this task. - */ - public List getAssignments() { - URL url = GET_ASSIGNMENTS_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - int totalCount = responseJSON.get("total_count").asInt(); - List assignments = new ArrayList<>(totalCount); - JsonArray entries = responseJSON.get("entries").asArray(); - for (JsonValue value : entries) { - JsonObject assignmentJSON = value.asObject(); - BoxTaskAssignment assignment = - new BoxTaskAssignment(this.getAPI(), assignmentJSON.get("id").asString()); - BoxTaskAssignment.Info info = assignment.new Info(assignmentJSON); - assignments.add(info); - } - - return assignments; - } - } - - /** - * Gets an iterable of all the assignments of this task. - * - * @param fields the fields to retrieve. - * @return an iterable containing info about all the assignments. - */ - public Iterable getAllAssignments(String... fields) { - final QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - return () -> { - URL url = GET_ASSIGNMENTS_URL_TEMPLATE.buildWithQuery( - BoxTask.this.getAPI().getBaseURL(), builder.toString(), BoxTask.this.getID()); - return new BoxTaskAssignmentIterator(BoxTask.this.getAPI(), url); - }; - } - - - /** - * Gets information about this task. - * - * @param fields the fields to retrieve. - * @return info about this task. - */ - public Info getInfo(String... fields) { - URL url = TASK_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - if (fields.length > 0) { - QueryStringBuilder builder = new QueryStringBuilder().appendParam("fields", fields); - url = TASK_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), builder.toString(), this.getID()); - } - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - return new Info(responseJSON); - } - } - - /** - * Updates the information about this task with any info fields that have been modified locally. - * - *

    The only fields that will be updated are the ones that have been modified locally. For example, the following - * code won't update any information (or even send a network request) since none of the info's fields were - * changed:

    - * - *
    BoxTask task = new BoxTask(api, id);
    -     * BoxTask.Info info = task.getInfo();
    -     * task.updateInfo(info);
    - * - * @param info the updated info. - */ - public void updateInfo(BoxTask.Info info) { - URL url = TASK_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - request.setBody(info.getPendingChanges()); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - info.update(jsonObject); - } - } - - /** - * Enumerates the possible actions that a task can have. - */ - public enum Action { - /** - * The task must be reviewed. - */ - REVIEW("review"), - - /** - * The task must be completed. - */ - COMPLETE("complete"); - - private final String jsonValue; - - Action(String jsonValue) { - this.jsonValue = jsonValue; - } - - static Action fromJSONString(String jsonValue) { - if (jsonValue.equals("review")) { - return REVIEW; - } else if (jsonValue.equals("complete")) { - return COMPLETE; - } else { - throw new IllegalArgumentException("The provided JSON value isn't a valid Action."); - } - } - - String toJSONString() { - return this.jsonValue; - } - } - - /** - * Enumerates the possible completion rules for a task. - */ - public enum CompletionRule { - - /** - * The task must be completed by all assignees. - */ - ALL_ASSIGNEES("all_assignees"), - - /** - * The task must be completed by at least one assignee. - */ - ANY_ASSIGNEE("any_assignee"); - - private final String jsonValue; - - CompletionRule(String jsonValue) { - this.jsonValue = jsonValue; - } - - String toJSONString() { - return this.jsonValue; - } - } - - /** - * Contains information about a BoxTask. - */ - public class Info extends BoxResource.Info { - private BoxFile.Info item; - private Date dueAt; - private String action; - private String completionRule; - private String message; - private List taskAssignments; - private boolean completed; - private BoxUser.Info createdBy; - private Date createdAt; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - Info(JsonObject jsonObject) { - super(jsonObject); - } - - @Override - public BoxTask getResource() { - return BoxTask.this; - } - - /** - * Gets the file associated with this task. - * - * @return the file associated with this task. - */ - public BoxFile.Info getItem() { - return this.item; - } - - /** - * Gets the date at which this task is due. - * - * @return the date at which this task is due. - */ - public Date getDueAt() { - return this.dueAt; - } - - /** - * Sets the task's due date. - * - * @param dueAt the task's due date. - */ - public void setDueAt(Date dueAt) { - this.dueAt = dueAt; - this.addPendingChange("due_at", BoxDateFormat.format(dueAt)); - } - - /** - * Gets the action the task assignee will be prompted to do. - * - * @return the action the task assignee will be prompted to do. - */ - public String getTaskType() { - return this.action; - } - - /** - * Returns the completion rule for the task. - * - * @return the task completion rule. - */ - public String getCompletionRule() { - return this.completionRule; - } - - /** - * Sets the task's completion rule. - * - * @param completionRule the new completion rule. - */ - public void setCompletionRule(CompletionRule completionRule) { - this.completionRule = completionRule.toJSONString(); - this.addPendingChange("completion_rule", completionRule.toJSONString()); - } - - /** - * Gets the message that will be included with this task. - * - * @return the message that will be included with this task. - */ - public String getMessage() { - return this.message; - } - - /** - * Sets the task's message. - * - * @param message the task's new message. - */ - public void setMessage(String message) { - this.message = message; - this.addPendingChange("message", message); - } - - /** - * Gets the collection of task assignments associated with this task. - * - * @return the collection of task assignments associated with this task. - */ - public List getTaskAssignments() { - return this.taskAssignments; - } - - /** - * Gets whether or not this task has been completed. - * - * @return whether or not this task has been completed. - */ - public boolean isCompleted() { - return this.completed; - } - - /** - * Gets the user who created this task. - * - * @return the user who created this task. - */ - public BoxUser.Info getCreatedBy() { - return this.createdBy; - } - - /** - * Gets when this task was created. - * - * @return when this task was created. - */ - public Date getCreatedAt() { - return this.createdAt; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - switch (memberName) { - case "item": - JsonObject itemJSON = value.asObject(); - String itemID = itemJSON.get("id").asString(); - BoxFile file = new BoxFile(getAPI(), itemID); - this.item = file.new Info(itemJSON); - break; - case "due_at": - this.dueAt = BoxDateFormat.parse(value.asString()); - break; - case "action": - this.action = value.asString(); - break; - case "completion_rule": - this.completionRule = value.asString(); - break; - case "message": - this.message = value.asString(); - break; - case "task_assignment_collection": - this.taskAssignments = this.parseTaskAssignmentCollection(value.asObject()); - break; - case "is_completed": - this.completed = value.asBoolean(); - break; - case "created_by": - JsonObject userJSON = value.asObject(); - String userID = userJSON.get("id").asString(); - BoxUser user = new BoxUser(getAPI(), userID); - this.createdBy = user.new Info(userJSON); - break; - case "created_at": - this.createdAt = BoxDateFormat.parse(value.asString()); - break; - default: - break; - } - - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - - private List parseTaskAssignmentCollection(JsonObject jsonObject) { - int count = jsonObject.get("total_count").asInt(); - List taskAssignmentCollection = new ArrayList<>(count); - JsonArray entries = jsonObject.get("entries").asArray(); - for (JsonValue value : entries) { - JsonObject entry = value.asObject(); - String id = entry.get("id").asString(); - BoxTaskAssignment assignment = new BoxTaskAssignment(getAPI(), id); - taskAssignmentCollection.add(assignment.new Info(entry)); - } - - return taskAssignmentCollection; - } - } -} diff --git a/src/main/java/com/box/sdk/BoxTaskAssignment.java b/src/main/java/com/box/sdk/BoxTaskAssignment.java deleted file mode 100644 index 073c59c88..000000000 --- a/src/main/java/com/box/sdk/BoxTaskAssignment.java +++ /dev/null @@ -1,341 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; -import java.util.Date; - -/** - * Represents a task assignment on Box, which can be used to assign a task to a single user. There can be multiple - * assignments on a single task. - */ -@BoxResourceType("task_assignment") -public class BoxTaskAssignment extends BoxResource { - - /** - * Task Assignment URL Template. - */ - public static final URLTemplate TASK_ASSIGNMENT_URL_TEMPLATE = new URLTemplate("task_assignments/%s"); - - /** - * Constructs a BoxTaskAssignment for a task assignment with a given ID. - * - * @param api the API connection to be used by the resource. - * @param id the ID of the task assignment. - */ - public BoxTaskAssignment(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Deletes this task assignment. - */ - public void delete() { - URL url = TASK_ASSIGNMENT_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "DELETE"); - request.send().close(); - } - - /** - * Gets information about this task assignment. - * - * @return info about this task assignment. - */ - public Info getInfo() { - URL url = TASK_ASSIGNMENT_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - return new Info(responseJSON); - } - } - - /** - * Gets information about this task assignment. - * - * @param fields the fields to retrieve. - * @return info about this task assignment. - */ - public Info getInfo(String... fields) { - QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - URL url = TASK_ASSIGNMENT_URL_TEMPLATE.buildWithQuery( - this.getAPI().getBaseURL(), builder.toString(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - return new Info(responseJSON); - } - } - - /** - * Updates the information about this task assignment with any info fields that have been modified locally. - * - *

    The only fields that will be updated are the ones that have been modified locally. For example, the following - * code won't update any information (or even send a network request) since none of the info's fields were - * changed:

    - * - *
    BoxTaskAssignment taskAssignment = new BoxTaskAssignment(api, id);
    -     * BoxTaskAssignment.Info info = taskAssignment.getInfo();
    -     * taskAssignment.updateInfo(info);
    - * - * @param info the updated info. - */ - public void updateInfo(BoxTaskAssignment.Info info) { - URL url = TASK_ASSIGNMENT_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - request.setBody(info.getPendingChanges()); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - info.update(jsonObject); - } - } - - /** - * Enumerates the possible resolution states that a task assignment can have. - */ - public enum ResolutionState { - /** - * The task assignment has been completed. - */ - COMPLETED("completed"), - - /** - * The task assignment is incomplete. - */ - INCOMPLETE("incomplete"), - - /** - * The task assignment has been approved. - */ - APPROVED("approved"), - - /** - * The task assignment has been rejected. - */ - REJECTED("rejected"); - - private final String jsonValue; - - ResolutionState(String jsonValue) { - this.jsonValue = jsonValue; - } - - static ResolutionState fromJSONString(String jsonValue) { - if (jsonValue.equals("completed")) { - return COMPLETED; - } else if (jsonValue.equals("incomplete")) { - return INCOMPLETE; - } else if (jsonValue.equals("approved")) { - return APPROVED; - } else if (jsonValue.equals("rejected")) { - return REJECTED; - } else { - throw new IllegalArgumentException("The provided JSON value isn't a valid ResolutionState."); - } - } - - String toJSONString() { - return this.jsonValue; - } - } - - /** - * Contains information about a task assignment. - */ - public class Info extends BoxResource.Info { - private BoxItem.Info item; - private BoxUser.Info assignedTo; - private String message; - private Date completedAt; - private Date assignedAt; - private Date remindedAt; - private ResolutionState resolutionState; - private String status; - private BoxUser.Info assignedBy; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - Info(JsonObject jsonObject) { - super(jsonObject); - } - - @Override - public BoxResource getResource() { - return BoxTaskAssignment.this; - } - - /** - * Gets the item associated with this task. - * - * @return the item associated with this task. - */ - public BoxItem.Info getItem() { - return this.item; - } - - /** - * Gets the user the assignment is assigned to. - * - * @return the user assigned to this assignment. - */ - public BoxUser.Info getAssignedTo() { - return this.assignedTo; - } - - /** - * Gets the message that will be included with this task assignment. - * - * @return the message that will be included with this task assignment. - */ - public String getMessage() { - return this.message; - } - - /** - * Sets the message for the assignment. - * - * @param message the message to be set on the assignment. - */ - public void setMessage(String message) { - this.message = message; - this.addPendingChange("message", message); - } - - /** - * Gets the date the assignment is to be completed at. - * - * @return the date the assignment is to be completed at. - */ - public Date getCompletedAt() { - return this.completedAt; - } - - /** - * Gets the date the assignment was assigned at. - * - * @return the date the assignment was assigned at. - */ - public Date getAssignedAt() { - return this.assignedAt; - } - - /** - * Gets the date the assignee is to be reminded at. - * - * @return the date the assignee is to be reminded at. - */ - public Date getRemindedAt() { - return this.remindedAt; - } - - /** - * Gets the current resolution state of the assignment. - * - * @return the current resolution state of the assignment. - */ - public ResolutionState getResolutionState() { - return this.resolutionState; - } - - /** - * Sets the resolution state for the assignment. - * - * @param resolutionState the resolution state to be set on the assignment. - */ - public void setResolutionState(ResolutionState resolutionState) { - this.resolutionState = resolutionState; - this.addPendingChange("resolution_state", resolutionState.toJSONString()); - } - - /** - * Gets the current status of the assignment. - * - * @return the current status of the assignment. - */ - public String getStatus() { - return this.status; - } - - /** - * Sets the status for the assignment. - * - * @param status the status to be set on the assignment. - */ - public void setStatus(String status) { - this.status = status; - this.addPendingChange("status", status); - } - - /** - * Gets the user that assigned the assignment. - * - * @return the user that assigned the assignment. - */ - public BoxUser.Info getAssignedBy() { - return this.assignedBy; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - if (memberName.equals("item")) { - JsonObject itemJSON = value.asObject(); - String itemID = itemJSON.get("id").asString(); - BoxFile file = new BoxFile(getAPI(), itemID); - this.item = file.new Info(itemJSON); - } else if (memberName.equals("assigned_to")) { - JsonObject userJSON = value.asObject(); - String userID = userJSON.get("id").asString(); - BoxUser user = new BoxUser(getAPI(), userID); - this.assignedTo = user.new Info(userJSON); - } else if (memberName.equals("message")) { - this.message = value.asString(); - } else if (memberName.equals("completed_at")) { - this.completedAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("assigned_at")) { - this.assignedAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("reminded_at")) { - this.remindedAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("resolution_state")) { - this.resolutionState = ResolutionState.fromJSONString(value.asString()); - } else if (memberName.equals("status")) { - this.status = value.asString(); - } else if (memberName.equals("assigned_by")) { - JsonObject userJSON = value.asObject(); - String userID = userJSON.get("id").asString(); - BoxUser user = new BoxUser(getAPI(), userID); - this.assignedBy = user.new Info(userJSON); - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - } -} diff --git a/src/main/java/com/box/sdk/BoxTaskAssignmentIterator.java b/src/main/java/com/box/sdk/BoxTaskAssignmentIterator.java deleted file mode 100644 index a0dd5c6bd..000000000 --- a/src/main/java/com/box/sdk/BoxTaskAssignmentIterator.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.PagingParameters.offset; - -import com.eclipsesource.json.JsonObject; -import java.net.URL; -import java.util.Iterator; - - -/** - * An iterator object for {@link BoxTaskAssignment} object. - * Supports offset-based paging. - */ -class BoxTaskAssignmentIterator implements Iterator { - - /** - * The limit of entries per response. - */ - private static final long LIMIT = 100; - - /** - * The API connection to be used. - */ - private final BoxAPIConnection api; - - /** - * Iterator object with paging support. - */ - private final JsonIterator jsonIterator; - - /** - * Creates new BoxTaskAssignment iterator. - * - * @param api The API connection to be used by the iterator. - * @param url The endpoint url. - */ - BoxTaskAssignmentIterator(BoxAPIConnection api, URL url) { - this.api = api; - this.jsonIterator = new JsonIterator(api, url, offset(0, LIMIT)); - } - - /** - * @return false if current element is the last. - */ - @Override - public boolean hasNext() { - return this.jsonIterator.hasNext(); - } - - - /** - * @return next BoxTaskAssignment.Info object in the list. - */ - @Override - public BoxTaskAssignment.Info next() { - JsonObject nextJSONObject = this.jsonIterator.next(); - String id = nextJSONObject.get("id").asString(); - - BoxTaskAssignment assignment = new BoxTaskAssignment(this.api, id); - return assignment.new Info(nextJSONObject); - } - - /** - * Remove operation is not supported. - */ - public void remove() { - throw new UnsupportedOperationException(); - } -} diff --git a/src/main/java/com/box/sdk/BoxTermsOfService.java b/src/main/java/com/box/sdk/BoxTermsOfService.java deleted file mode 100644 index 672c6f1dc..000000000 --- a/src/main/java/com/box/sdk/BoxTermsOfService.java +++ /dev/null @@ -1,398 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * Represents a custom Box Terms of Service object. - */ -@BoxResourceType("terms_of_service") -public class BoxTermsOfService extends BoxResource { - /** - * Terms of Services URL Template. - */ - public static final URLTemplate TERMS_OF_SERVICE_URL_TEMPLATE = new URLTemplate("terms_of_services/%s"); - /** - * All Terms of Services URL Template. - */ - public static final URLTemplate ALL_TERMS_OF_SERVICES_URL_TEMPLATE = new URLTemplate("terms_of_services"); - - /** - * Constructs a BoxTermsOfService for a Box Enterprise with a given ID. - * - * @param api the API connection to be used by the resource. - * @param id the ID of the resource. - */ - public BoxTermsOfService(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Creates a new Terms of Services. - * - * @param api the API connection to be used by the resource. - * @param termsOfServiceStatus the current status of the terms of services. Set to "enabled" or "disabled". - * @param termsOfServiceType the scope of terms of service. Set to "external" or "managed". - * @param text the text field of terms of service containing terms of service agreement info. - * @return information about the Terms of Service created. - */ - public static BoxTermsOfService.Info create(BoxAPIConnection api, - BoxTermsOfService.TermsOfServiceStatus termsOfServiceStatus, - BoxTermsOfService.TermsOfServiceType termsOfServiceType, String text) { - URL url = ALL_TERMS_OF_SERVICES_URL_TEMPLATE.build(api.getBaseURL()); - BoxJSONRequest request = new BoxJSONRequest(api, url, "POST"); - JsonObject requestJSON = new JsonObject() - .add("status", termsOfServiceStatus.toString()) - .add("tos_type", termsOfServiceType.toString()) - .add("text", text); - - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - BoxTermsOfService createdTermsOfServices = new BoxTermsOfService(api, responseJSON.get("id").asString()); - - return createdTermsOfServices.new Info(responseJSON); - } - } - - /** - * Retrieves a list of Terms of Services that belong to your Enterprise as an Iterable. - * - * @param api the API connection to be used by the resource. - * @return the Iterable of Terms of Service in your Enterprise. - */ - public static List getAllTermsOfServices(final BoxAPIConnection api) { - return getAllTermsOfServices(api, null); - } - - /** - * Retrieves a list of Terms of Service that belong to your Enterprise as an Iterable. - * - * @param api api the API connection to be used by the resource. - * @param termsOfServiceType the type of terms of service to be retrieved. Can be set to "managed" or "external" - * @return the Iterable of Terms of Service in an Enterprise that match the filter parameters. - */ - public static List getAllTermsOfServices(final BoxAPIConnection api, - BoxTermsOfService.TermsOfServiceType - termsOfServiceType) { - QueryStringBuilder builder = new QueryStringBuilder(); - if (termsOfServiceType != null) { - builder.appendParam("tos_type", termsOfServiceType.toString()); - } - - URL url = ALL_TERMS_OF_SERVICES_URL_TEMPLATE.buildWithQuery(api.getBaseURL(), builder.toString()); - BoxJSONRequest request = new BoxJSONRequest(api, url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - int totalCount = responseJSON.get("total_count").asInt(); - List termsOfServices = new ArrayList<>(totalCount); - JsonArray entries = responseJSON.get("entries").asArray(); - for (JsonValue value : entries) { - JsonObject termsOfServiceJSON = value.asObject(); - BoxTermsOfService termsOfService = new BoxTermsOfService(api, termsOfServiceJSON.get("id").asString()); - BoxTermsOfService.Info info = termsOfService.new Info(termsOfServiceJSON); - termsOfServices.add(info); - } - - return termsOfServices; - } - } - - /** - * Updates the information about this terms of service with modified locally info. - * Only status and text can be modified. - * - * @param info the updated info. - */ - public void updateInfo(BoxTermsOfService.Info info) { - URL url = TERMS_OF_SERVICE_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - request.setBody(info.getPendingChanges()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - info.update(responseJSON); - } - } - - /** - * @return Gets information about this {@link BoxTermsOfService}. - */ - public BoxTermsOfService.Info getInfo() { - URL url = TERMS_OF_SERVICE_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - return new Info(Json.parse(response.getJSON()).asObject()); - } - } - - /** - * Enumerates the possible types of terms of service. - */ - public enum TermsOfServiceType { - /** - * The terms of service is managed by an enterprise. - */ - MANAGED("managed"), - - /** - * The terms of service is external to an enterprise. - */ - EXTERNAL("external"); - - private final String tosType; - - TermsOfServiceType(String tosType) { - this.tosType = tosType; - } - - static TermsOfServiceType fromTosType(String tosType) { - if (tosType.equals("managed")) { - return TermsOfServiceType.MANAGED; - } else if (tosType.equals("external")) { - return TermsOfServiceType.EXTERNAL; - } else { - System.out.print("Invalid Terms of Service Type"); - return null; - } - } - - /** - * Returns a String containing terms of service type. - * - * @return a String containing information about terms of service type. - */ - public String toString() { - return this.tosType; - } - } - - /** - * Enumerates the possible status that a terms of service can have. - */ - public enum TermsOfServiceStatus { - /** - * The terms of service is enabled. - */ - ENABLED("enabled"), - - /** - * The terms of service is disabled. - */ - DISABLED("disabled"); - - private final String status; - - TermsOfServiceStatus(String status) { - this.status = status; - } - - static TermsOfServiceStatus fromStatus(String status) { - if (status.equals("enabled")) { - return TermsOfServiceStatus.ENABLED; - } else if (status.equals("disabled")) { - return TermsOfServiceStatus.DISABLED; - } else { - System.out.print("Invalid Terms of Service Status"); - return null; - } - } - - /** - * Returns a String containing current status of the terms of service. - * - * @return a String containing information about the status of the terms of service. - */ - public String toString() { - return this.status; - } - } - - /** - * Contains information about the terms of service. - */ - public class Info extends BoxResource.Info { - - /** - * @see #getStatus() - */ - private TermsOfServiceStatus status; - - /** - * @see #getType() - */ - private String type; - - /** - * @see #getTosType() - */ - private TermsOfServiceType tosType; - - /** - * @see #getEnterprise() - */ - private BoxEnterprise enterprise; - - /** - * @see #getText() - */ - private String text; - - /** - * @see #getCreatedAt() - */ - private Date createdAt; - - /** - * @see #getModifiedAt() - */ - private Date modifiedAt; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - Info(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * {@inheritDoc} - */ - @Override - public BoxResource getResource() { - return BoxTermsOfService.this; - } - - /** - * TermsOfServiceStatus can be "enabled" or "disabled". - * - * @return the status of the terms of service. - */ - public TermsOfServiceStatus getStatus() { - return this.status; - } - - /** - * Sets the status of the terms of service in order to enable or disable it. - * - * @param status the new status of the terms of service. - */ - public void setStatus(TermsOfServiceStatus status) { - this.status = status; - this.addPendingChange("status", status.toString()); - } - - /** - * The type is terms_of_service. - * - * @return the type terms_of_service. - */ - public String getType() { - return this.type; - } - - /** - * TermsOfServiceType can be "managed" or "external". - * - * @return the type of the terms of service. - */ - public TermsOfServiceType getTosType() { - return this.tosType; - } - - - /** - * @return the enterprise for the terms of service. - */ - public BoxEnterprise getEnterprise() { - return this.enterprise; - } - - - /** - * @return the text of the terms of service. - */ - public String getText() { - return this.text; - } - - /** - * Sets the text of the terms of service. - * - * @param text the new text of the terms of service. - */ - public void setText(String text) { - this.text = text; - this.addPendingChange("text", text); - } - - - /** - * @return time the policy was created. - */ - public Date getCreatedAt() { - return this.createdAt; - } - - /** - * @return time the policy was modified. - */ - public Date getModifiedAt() { - return this.modifiedAt; - } - - /** - * {@inheritDoc} - */ - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - if (memberName.equals("status")) { - this.status = TermsOfServiceStatus.fromStatus(value.asString()); - } else if (memberName.equals("enterprise")) { - JsonObject jsonObject = value.asObject(); - this.enterprise = new BoxEnterprise(jsonObject); - } else if (memberName.equals("type")) { - this.type = value.asString(); - } else if (memberName.equals("tos_type")) { - this.tosType = TermsOfServiceType.fromTosType(value.asString()); - } else if (memberName.equals("text")) { - this.text = value.asString(); - } else if (memberName.equals("created_at")) { - this.createdAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("modified_at")) { - this.modifiedAt = BoxDateFormat.parse(value.asString()); - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - } -} diff --git a/src/main/java/com/box/sdk/BoxTermsOfServiceUserStatus.java b/src/main/java/com/box/sdk/BoxTermsOfServiceUserStatus.java deleted file mode 100644 index 8aae5b682..000000000 --- a/src/main/java/com/box/sdk/BoxTermsOfServiceUserStatus.java +++ /dev/null @@ -1,305 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * Represents a user status on a custom Box Terms of Service object. - */ -@BoxResourceType("terms_of_service_user_status") -public class BoxTermsOfServiceUserStatus extends BoxResource { - /** - * All Terms of Services User Statuses URL Template. - */ - public static final URLTemplate TERMS_OF_SERVICE_USER_STATUSES_TEMPLATE = - new URLTemplate("terms_of_service_user_statuses/%s"); - /** - * Terms of Services User Statuses URL Template. - */ - public static final URLTemplate ALL_TERMS_OF_SERVICE_USER_STATUSES_TEMPLATE = - new URLTemplate("terms_of_service_user_statuses"); - - /** - * Constructs a BoxTermsOfServiceUserStatus for a resource with a given ID. - * - * @param api the API connection to be used by the resource. - * @param id the ID of the resource. - */ - public BoxTermsOfServiceUserStatus(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Creates a User Status on a custom Terms of Service. - * - * @param api the API connection to be used by the resource. - * @param termsOfServiceID the ID of the terms of service. - * @param isAccepted the indicator for whether the terms of service has been accepted. - * @return information about the User Status for Terms of Service created. - */ - public static BoxTermsOfServiceUserStatus.Info create(final BoxAPIConnection api, String termsOfServiceID, - Boolean isAccepted) { - return create(api, termsOfServiceID, isAccepted, null); - } - - /** - * Creates a User Status on a custom Terms of Service. - * - * @param api the API connection to be used by the resource. - * @param termsOfServiceID the ID of the terms of service. - * @param isAccepted the indicator for whether the terms of service has been accepted. - * @param userID the ID of the user for the terms of service. - * @return information about the User Status for Terms of Service created. - */ - public static BoxTermsOfServiceUserStatus.Info create(final BoxAPIConnection api, String termsOfServiceID, - Boolean isAccepted, String userID) { - URL url = ALL_TERMS_OF_SERVICE_USER_STATUSES_TEMPLATE.build(api.getBaseURL()); - BoxJSONRequest request = new BoxJSONRequest(api, url, "POST"); - JsonObject requestJSON = new JsonObject() - .add("tos", new JsonObject() - .add("type", "terms_of_service") - .add("id", termsOfServiceID)) - .add("is_accepted", isAccepted); - - if (userID != null) { - requestJSON.add("user", new JsonObject() - .add("type", "user") - .add("id", userID)); - } - - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - BoxTermsOfServiceUserStatus termsOfServiceUserStatus = new BoxTermsOfServiceUserStatus(api, - responseJSON.get("id").asString()); - - return termsOfServiceUserStatus.new Info(responseJSON); - } - } - - /** - * Retrieves a list of User Status for Terms of Service as an Iterable. - * - * @param api the API connection to be used by the resource. - * @param termsOfServiceID the ID of the terms of service. - * @return the Iterable of User Status for Terms of Service. - */ - public static List getInfo(final BoxAPIConnection api, String termsOfServiceID) { - return getInfo(api, termsOfServiceID, null); - } - - /** - * Retrieves a list of User Status for Terms of Service as an Iterable. - * - * @param api the API connection to be used by the resource. - * @param termsOfServiceID the ID of the terms of service. - * @param userID the ID of the user to retrieve terms of service for. - * @return the Iterable of User Status for Terms of Service. - */ - public static List getInfo(final BoxAPIConnection api, - String termsOfServiceID, String userID) { - QueryStringBuilder builder = new QueryStringBuilder(); - builder.appendParam("tos_id", termsOfServiceID); - if (userID != null) { - builder.appendParam("user_id", userID); - } - - URL url = ALL_TERMS_OF_SERVICE_USER_STATUSES_TEMPLATE.buildWithQuery(api.getBaseURL(), builder.toString()); - BoxJSONRequest request = new BoxJSONRequest(api, url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - int totalCount = responseJSON.get("total_count").asInt(); - List termsOfServiceUserStatuses = new - ArrayList<>(totalCount); - JsonArray entries = responseJSON.get("entries").asArray(); - for (JsonValue value : entries) { - JsonObject termsOfServiceUserStatusJSON = value.asObject(); - BoxTermsOfServiceUserStatus termsOfServiceUserStatus = new - BoxTermsOfServiceUserStatus(api, termsOfServiceUserStatusJSON.get("id").asString()); - BoxTermsOfServiceUserStatus.Info info = termsOfServiceUserStatus.new Info(termsOfServiceUserStatusJSON); - termsOfServiceUserStatuses.add(info); - } - - return termsOfServiceUserStatuses; - } - } - - /** - * Updates the information about the user status for this terms of service with any info fields that have - * been modified locally. - * - * @param info the updated info. - */ - public void updateInfo(BoxTermsOfServiceUserStatus.Info info) { - URL url = TERMS_OF_SERVICE_USER_STATUSES_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - request.setBody(info.getPendingChanges()); - - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - info.update(responseJSON); - } - } - - /** - * Contains information about the user status on a terms of service. - */ - public class Info extends BoxResource.Info { - - /** - * @see #getTermsOfService() - */ - private BoxTermsOfService.Info termsOfService; - - /** - * @see #getUser() - */ - private BoxUser.Info user; - - /** - * @see #getType() - */ - private String termsOfServiceUserStatusType; - - - /** - * @see #getIsAccepted() () - */ - private Boolean isAccepted; - - /** - * @see #getCreatedAt() - */ - private Date createdAt; - - /** - * @see #getModifiedAt() - */ - private Date modifiedAt; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - Info(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * {@inheritDoc} - */ - @Override - public BoxResource getResource() { - return BoxTermsOfServiceUserStatus.this; - } - - /** - * @return the terms of service. - */ - public BoxTermsOfService.Info getTermsOfService() { - return this.termsOfService; - } - - /** - * @return the user. - */ - public BoxUser.Info getUser() { - return this.user; - } - - /** - * @return the is_accepted state of the terms of service. - */ - public Boolean getIsAccepted() { - return this.isAccepted; - } - - /** - * Accept or decline the terms of service. - * - * @param enabled the new user status of the terms of service. - */ - public void setIsAccepted(Boolean enabled) { - this.isAccepted = enabled; - this.addPendingChange("is_accepted", this.isAccepted); - } - - /** - * @return the type of the terms of service user status. - */ - public String getType() { - return this.termsOfServiceUserStatusType; - } - - /** - * @return time the policy was created. - */ - public Date getCreatedAt() { - return this.createdAt; - } - - /** - * @return time the policy was modified. - */ - public Date getModifiedAt() { - return this.modifiedAt; - } - - /** - * {@inheritDoc} - */ - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - if (memberName.equals("tos")) { - JsonObject tosJSON = value.asObject(); - String termsOfServiceID = tosJSON.get("id").asString(); - BoxTermsOfService termsOfService = new BoxTermsOfService(getAPI(), termsOfServiceID); - this.termsOfService = termsOfService.new Info(tosJSON); - } else if (memberName.equals("user")) { - JsonObject userJSON = value.asObject(); - String userID = userJSON.get("id").asString(); - BoxUser user = new BoxUser(getAPI(), userID); - this.user = user.new Info(userJSON); - } else if (memberName.equals("is_accepted")) { - this.isAccepted = value.asBoolean(); - } else if (memberName.equals("created_at")) { - this.createdAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("modified_at")) { - this.modifiedAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("type")) { - this.termsOfServiceUserStatusType = value.asString(); - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - } -} diff --git a/src/main/java/com/box/sdk/BoxTransactionalAPIConnection.java b/src/main/java/com/box/sdk/BoxTransactionalAPIConnection.java deleted file mode 100644 index 6f06be179..000000000 --- a/src/main/java/com/box/sdk/BoxTransactionalAPIConnection.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.net.URLEncoder; - -/** - * Represents an authenticated transactional connection to the Box API. - * - *

    This class handles everything for transactional API that isn't already handled by BoxAPIConnection.

    - */ -public class BoxTransactionalAPIConnection extends BoxAPIConnection { - - private static final String SUBJECT_TOKEN_TYPE = "urn:ietf:params:oauth:token-type:access_token"; - private static final String GRANT_TYPE = "urn:ietf:params:oauth:grant-type:token-exchange"; - - /** - * Constructs a new BoxTransactionalAPIConnection that authenticates with an access token. - * - * @param accessToken a transactional auth access token. - */ - public BoxTransactionalAPIConnection(String accessToken) { - super(accessToken); - super.setAutoRefresh(false); - } - - /** - * Request a scoped transactional token. - * - * @param accessToken application access token. - * @param scope scope of transactional token. - * @return a BoxAPIConnection which can be used to perform transactional requests. - */ - public static BoxAPIConnection getTransactionConnection(String accessToken, String scope) { - return BoxTransactionalAPIConnection.getTransactionConnection(accessToken, scope, null); - } - - /** - * Request a scoped transactional token for a particular resource. - * - * @param accessToken application access token. - * @param scope scope of transactional token. - * @param resource resource transactional token has access to. - * @return a BoxAPIConnection which can be used to perform transactional requests. - */ - public static BoxAPIConnection getTransactionConnection(String accessToken, String scope, String resource) { - BoxAPIConnection apiConnection = new BoxAPIConnection(accessToken); - - URL url; - try { - url = new URL(apiConnection.getTokenURL()); - } catch (MalformedURLException e) { - assert false : "An invalid token URL indicates a bug in the SDK."; - throw new RuntimeException("An invalid token URL indicates a bug in the SDK.", e); - } - - String urlParameters; - try { - urlParameters = String.format("grant_type=%s&subject_token=%s&subject_token_type=%s&scope=%s", GRANT_TYPE, - URLEncoder.encode(accessToken, "UTF-8"), SUBJECT_TOKEN_TYPE, URLEncoder.encode(scope, "UTF-8")); - - if (resource != null) { - urlParameters += "&resource=" + URLEncoder.encode(resource, "UTF-8"); - } - } catch (UnsupportedEncodingException e) { - throw new BoxAPIException( - "An error occurred while attempting to encode url parameters for a transactional token request" - ); - } - - // authentication uses form url encoded params but response is JSON - BoxAPIRequest request = new BoxAPIRequest(apiConnection, url, "POST"); - request.shouldAuthenticate(false); - request.setBody(urlParameters); - - try (BoxJSONResponse response = (BoxJSONResponse) request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - final String fileToken = responseJSON.get("access_token").asString(); - BoxTransactionalAPIConnection transactionConnection = new BoxTransactionalAPIConnection(fileToken); - transactionConnection.setExpires(responseJSON.get("expires_in").asLong() * 1000); - - return transactionConnection; - } - } - - /** - * Disabling the non-Box Developer Edition authenticate method. - * - * @param authCode an auth code obtained from the first half of the OAuth process. - * @throws UnsupportedOperationException Box Transactional API does not support authentication with an auth code - */ - @Override - public void authenticate(String authCode) { - throw new UnsupportedOperationException( - "BoxTransactionalAPIConnection does not support the authenticate method." - ); - } - - /** - * BoxTransactionalAPIConnection can never refresh. - * - * @return false always. - */ - @Override - public boolean canRefresh() { - return false; - } - - /** - * Auto refresh is not available for transactional auth. - * - * @param autoRefresh true to enable auto token refresh; otherwise false. - * @throws UnsupportedOperationException Box Transactional API tokens can not be refreshed - */ - @Override - public void setAutoRefresh(boolean autoRefresh) { - throw new UnsupportedOperationException( - "BoxTransactionalAPIConnection does not support token refreshing, " - + "access tokens can be generated in the developer console." - ); - } - - /** - * Transactional auth does not support token refreshes. - * - * @throws UnsupportedOperationException Box Transactional API tokens can not be refreshed - */ - @Override - public void refresh() { - throw new UnsupportedOperationException( - "BoxTransactionalAPIConnection does not support token refreshing, " - + "access tokens can be generated in the developer console." - ); - } -} diff --git a/src/main/java/com/box/sdk/BoxTrash.java b/src/main/java/com/box/sdk/BoxTrash.java deleted file mode 100644 index d60f5de57..000000000 --- a/src/main/java/com/box/sdk/BoxTrash.java +++ /dev/null @@ -1,307 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.PagingParameters.DEFAULT_LIMIT; -import static com.box.sdk.PagingParameters.marker; -import static com.box.sdk.SortParameters.none; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import java.net.URL; -import java.util.Iterator; - -/** - * Provides methods for deleting, recovering, and viewing a user's trashed files and folders. - * - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly.

    - */ -public class BoxTrash implements Iterable { - - /** - * Get Item URL Template. - */ - public static final URLTemplate GET_ITEMS_URL = new URLTemplate("folders/trash/items/"); - /** - * Folder Info URL Template. - */ - public static final URLTemplate FOLDER_INFO_URL_TEMPLATE = new URLTemplate("folders/%s/trash"); - /** - * File Info URL Template. - */ - public static final URLTemplate FILE_INFO_URL_TEMPLATE = new URLTemplate("files/%s/trash"); - /** - * Restore File URL Template. - */ - public static final URLTemplate RESTORE_FILE_URL_TEMPLATE = new URLTemplate("files/%s"); - /** - * Restore Folder URL Template. - */ - public static final URLTemplate RESTORE_FOLDER_URL_TEMPLATE = new URLTemplate("folders/%s"); - - private final BoxAPIConnection api; - - /** - * Constructs a BoxTrash using a given API connection. - * - * @param api the API connection to be used by the trash. - */ - public BoxTrash(BoxAPIConnection api) { - this.api = api; - } - - /** - * Permanently deletes a trashed folder. - * - * @param folderID the ID of the trashed folder to permanently delete. - */ - public void deleteFolder(String folderID) { - URL url = FOLDER_INFO_URL_TEMPLATE.build(this.api.getBaseURL(), folderID); - BoxAPIRequest request = new BoxAPIRequest(this.api, url, "DELETE"); - request.send().close(); - } - - /** - * Gets information about a trashed folder. - * - * @param folderID the ID of the trashed folder. - * @return info about the trashed folder. - */ - public BoxFolder.Info getFolderInfo(String folderID) { - URL url = FOLDER_INFO_URL_TEMPLATE.build(this.api.getBaseURL(), folderID); - BoxJSONRequest request = new BoxJSONRequest(this.api, url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - - BoxFolder folder = new BoxFolder(this.api, jsonObject.get("id").asString()); - return folder.new Info(response.getJSON()); - } - } - - /** - * Gets information about a trashed folder that's limited to a list of specified fields. - * - * @param folderID the ID of the trashed folder. - * @param fields the fields to retrieve. - * @return info about the trashed folder containing only the specified fields. - */ - public BoxFolder.Info getFolderInfo(String folderID, String... fields) { - String queryString = new QueryStringBuilder().appendParam("fields", fields).toString(); - URL url = FOLDER_INFO_URL_TEMPLATE.buildWithQuery(this.api.getBaseURL(), queryString, folderID); - BoxJSONRequest request = new BoxJSONRequest(this.api, url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - - BoxFolder folder = new BoxFolder(this.api, jsonObject.get("id").asString()); - return folder.new Info(response.getJSON()); - } - } - - /** - * Restores a trashed folder back to its original location. - * - * @param folderID the ID of the trashed folder. - * @return info about the restored folder. - */ - public BoxFolder.Info restoreFolder(String folderID) { - URL url = RESTORE_FOLDER_URL_TEMPLATE.build(this.api.getBaseURL(), folderID); - BoxJSONRequest request = new BoxJSONRequest(this.api, url, "POST"); - JsonObject requestJSON = new JsonObject() - .add("", ""); - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - BoxFolder restoredFolder = new BoxFolder(this.api, responseJSON.get("id").asString()); - return restoredFolder.new Info(responseJSON); - } - } - - /** - * Restores a trashed folder to a new location with a new name. - * - * @param folderID the ID of the trashed folder. - * @param newName an optional new name to give the folder. This can be null to use the folder's original name. - * @param newParentID an optional new parent ID for the folder. This can be null to use the folder's original - * parent. - * @return info about the restored folder. - */ - public BoxFolder.Info restoreFolder(String folderID, String newName, String newParentID) { - JsonObject requestJSON = new JsonObject(); - - if (newName != null) { - requestJSON.add("name", newName); - } - - if (newParentID != null) { - JsonObject parent = new JsonObject(); - parent.add("id", newParentID); - requestJSON.add("parent", parent); - } - - URL url = RESTORE_FOLDER_URL_TEMPLATE.build(this.api.getBaseURL(), folderID); - BoxJSONRequest request = new BoxJSONRequest(this.api, url, "POST"); - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - BoxFolder restoredFolder = new BoxFolder(this.api, responseJSON.get("id").asString()); - return restoredFolder.new Info(responseJSON); - } - } - - /** - * Permanently deletes a trashed file. - * - * @param fileID the ID of the trashed folder to permanently delete. - */ - public void deleteFile(String fileID) { - URL url = FILE_INFO_URL_TEMPLATE.build(this.api.getBaseURL(), fileID); - BoxAPIRequest request = new BoxAPIRequest(this.api, url, "DELETE"); - request.send().close(); - } - - /** - * Gets information about a trashed file. - * - * @param fileID the ID of the trashed file. - * @return info about the trashed file. - */ - public BoxFile.Info getFileInfo(String fileID) { - URL url = FILE_INFO_URL_TEMPLATE.build(this.api.getBaseURL(), fileID); - BoxJSONRequest request = new BoxJSONRequest(this.api, url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - - BoxFile file = new BoxFile(this.api, jsonObject.get("id").asString()); - return file.new Info(response.getJSON()); - } - } - - /** - * Gets information about a trashed file that's limited to a list of specified fields. - * - * @param fileID the ID of the trashed file. - * @param fields the fields to retrieve. - * @return info about the trashed file containing only the specified fields. - */ - public BoxFile.Info getFileInfo(String fileID, String... fields) { - String queryString = new QueryStringBuilder().appendParam("fields", fields).toString(); - URL url = FILE_INFO_URL_TEMPLATE.buildWithQuery(this.api.getBaseURL(), queryString, fileID); - BoxJSONRequest request = new BoxJSONRequest(this.api, url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - - BoxFile file = new BoxFile(this.api, jsonObject.get("id").asString()); - return file.new Info(response.getJSON()); - } - } - - /** - * Restores a trashed file back to its original location. - * - * @param fileID the ID of the trashed file. - * @return info about the restored file. - */ - public BoxFile.Info restoreFile(String fileID) { - URL url = RESTORE_FILE_URL_TEMPLATE.build(this.api.getBaseURL(), fileID); - BoxJSONRequest request = new BoxJSONRequest(this.api, url, "POST"); - JsonObject requestJSON = new JsonObject() - .add("", ""); - return getInfo(requestJSON, request); - } - - /** - * Restores a trashed file to a new location with a new name. - * - * @param fileID the ID of the trashed file. - * @param newName an optional new name to give the file. This can be null to use the file's original name. - * @param newParentID an optional new parent ID for the file. This can be null to use the file's original - * parent. - * @return info about the restored file. - */ - public BoxFile.Info restoreFile(String fileID, String newName, String newParentID) { - JsonObject requestJSON = new JsonObject(); - - if (newName != null) { - requestJSON.add("name", newName); - } - - if (newParentID != null) { - JsonObject parent = new JsonObject(); - parent.add("id", newParentID); - requestJSON.add("parent", parent); - } - - URL url = RESTORE_FILE_URL_TEMPLATE.build(this.api.getBaseURL(), fileID); - BoxJSONRequest request = new BoxJSONRequest(this.api, url, "POST"); - return getInfo(requestJSON, request); - } - - /** - * Returns an iterator over the items in the trash. - * - * @return an iterator over the items in the trash. - */ - public Iterator iterator() { - return items(none(), marker(DEFAULT_LIMIT)).iterator(); - } - - /** - * Returns an iterable containing the items in trash. You can specify sort order, limit of files requested, ofset - * or use marker based pagination. - * - * @param sortParameters describes sorting parameters. - * Sort parameters are supported only with offset based pagination. - * Use {@link SortParameters#none()} to ignore sorting. - * @param pagingParameters describes paging parameters - * @param fields the fields to retrieve. - * @return an iterable containing the items in the trash. - */ - public Iterable items( - SortParameters sortParameters, - PagingParameters pagingParameters, - String... fields - ) { - QueryStringBuilder builder = sortParameters.asQueryStringBuilder(); - validateSortIsSelectedWithOffsetPaginationOnly(pagingParameters, builder); - - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - final String query = builder.toString(); - return () -> { - URL url = GET_ITEMS_URL.buildWithQuery(this.api.getBaseURL(), query); - if (pagingParameters == null) { - return new BoxItemIterator(this.api, url, marker(DEFAULT_LIMIT)); - } else { - return new BoxItemIterator(this.api, url, pagingParameters); - } - }; - } - - private BoxFile.Info getInfo(JsonObject requestJSON, BoxJSONRequest request) { - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - BoxFile restoredFile = new BoxFile(this.api, responseJSON.get("id").asString()); - return restoredFile.new Info(responseJSON); - } - } - - /** - * Throws IllegalArgumentException exception when sorting and marker pagination is selected. - * - * @param pagingParameters paging definition to check - * @param sortQuery builder containing sort query - */ - private void validateSortIsSelectedWithOffsetPaginationOnly( - PagingParameters pagingParameters, - QueryStringBuilder sortQuery - ) { - if (pagingParameters != null && pagingParameters.isMarkerBasedPaging() && sortQuery.toString().length() > 0) { - throw new IllegalArgumentException("Sorting is not supported when using marker based pagination."); - } - } -} diff --git a/src/main/java/com/box/sdk/BoxUploadEmail.java b/src/main/java/com/box/sdk/BoxUploadEmail.java deleted file mode 100644 index f4516ddcc..000000000 --- a/src/main/java/com/box/sdk/BoxUploadEmail.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; - -/** - * Represents an email address that can be used to upload files to a folder on Box. - */ -public class BoxUploadEmail extends BoxJSONObject { - private Access access; - private String email; - - /** - * Constructs a BoxUploadEmail with default settings. - */ - public BoxUploadEmail() { - } - - /** - * Constructs a BoxUploadEmail from a JSON string. - * - * @param json the JSON encoded upload email. - */ - public BoxUploadEmail(String json) { - super(json); - } - - BoxUploadEmail(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the access level of this upload email. - * - * @return the access level of this upload email. - */ - public Access getAccess() { - return this.access; - } - - /** - * Sets the access level of this upload email. - * - * @param access the new access level of this upload email. - */ - public void setAccess(Access access) { - this.access = access; - this.addPendingChange("access", access.toJSONValue()); - } - - /** - * Gets the email address of this upload email. - * - * @return the email address of this upload email. - */ - public String getEmail() { - return this.email; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - JsonValue value = member.getValue(); - String memberName = member.getName(); - try { - if (memberName.equals("access")) { - this.access = Access.fromJSONValue(value.asString()); - } else if (memberName.equals("email")) { - this.email = value.asString(); - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - - /** - * Enumerates the possible access levels that can be set on an upload email. - */ - public enum Access { - /** - * Anyone can send an upload to this email address. - */ - OPEN("open"), - - /** - * Only collaborators can send an upload to this email address. - */ - COLLABORATORS("collaborators"); - - private final String jsonValue; - - Access(String jsonValue) { - this.jsonValue = jsonValue; - } - - static Access fromJSONValue(String jsonValue) { - return Access.valueOf(jsonValue.toUpperCase(java.util.Locale.ROOT)); - } - - String toJSONValue() { - return this.jsonValue; - } - } -} diff --git a/src/main/java/com/box/sdk/BoxUser.java b/src/main/java/com/box/sdk/BoxUser.java deleted file mode 100644 index 8da41e9a1..000000000 --- a/src/main/java/com/box/sdk/BoxUser.java +++ /dev/null @@ -1,1470 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BinaryBodyUtils.writeStream; -import static com.box.sdk.http.HttpMethod.DELETE; -import static com.box.sdk.internal.utils.JsonUtils.addIfNotNull; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.net.URL; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -/** - * Represents a Box user account. - * - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly.

    - */ -@BoxResourceType("user") -public class BoxUser extends BoxCollaborator { - - /** - * An array of all possible file fields that can be requested when calling {@link #getInfo(String...)}. - */ - public static final String[] ALL_FIELDS = {"type", "id", "name", "login", "created_at", "modified_at", "role", - "language", "timezone", "space_amount", "space_used", "max_upload_size", "tracking_codes", - "can_see_managed_users", "is_sync_enabled", "is_external_collab_restricted", "status", "job_title", "phone", - "address", "avatar_url", "is_exempt_from_device_limits", "is_exempt_from_login_verification", "enterprise", - "my_tags", "hostname", "is_platform_access_only", "external_app_user_id", "notification_email"}; - - /** - * User URL Template. - */ - public static final URLTemplate USER_URL_TEMPLATE = new URLTemplate("users/%s"); - /** - * Get Me URL Template. - */ - public static final URLTemplate GET_ME_URL = new URLTemplate("users/me"); - /** - * Users URL Template. - */ - public static final URLTemplate USERS_URL_TEMPLATE = new URLTemplate("users"); - /** - * User Memberships URL Template. - */ - public static final URLTemplate USER_MEMBERSHIPS_URL_TEMPLATE = new URLTemplate("users/%s/memberships"); - /** - * E-Mail Alias URL Template. - */ - public static final URLTemplate EMAIL_ALIAS_URL_TEMPLATE = new URLTemplate("users/%s/email_aliases/%s"); - /** - * E-Mail Aliases URL Template. - */ - public static final URLTemplate EMAIL_ALIASES_URL_TEMPLATE = new URLTemplate("users/%s/email_aliases"); - /** - * Move Folder To User Template. - */ - public static final URLTemplate MOVE_FOLDER_TO_USER_TEMPLATE = new URLTemplate("users/%s/folders/%s"); - /** - * User Avatar Template. - */ - public static final URLTemplate USER_AVATAR_TEMPLATE = new URLTemplate("users/%s/avatar"); - - /** - * Constructs a BoxUser for a user with a given ID. - * - * @param api the API connection to be used by the user. - * @param id the ID of the user. - */ - public BoxUser(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Provisions a new app user in an enterprise using Box Developer Edition. - * - * @param api the API connection to be used by the created user. - * @param name the name of the user. - * @param fields the fields to retrieve. Leave this out for the standard fields. - * @return the created user's info. - */ - public static BoxUser.Info createAppUser(BoxAPIConnection api, String name, String... fields) { - return createAppUser(api, name, new CreateUserParams(), fields); - } - - /** - * Provisions a new app user in an enterprise with additional user information using Box Developer Edition. - * - * @param api the API connection to be used by the created user. - * @param name the name of the user. - * @param params additional user information. - * @param fields the fields to retrieve. Leave this out for the standard fields. - * @return the created user's info. - */ - public static BoxUser.Info createAppUser(BoxAPIConnection api, String name, - CreateUserParams params, String... fields) { - - params.setIsPlatformAccessOnly(true); - return createEnterpriseUser(api, null, name, params, fields); - } - - /** - * Provisions a new user in an enterprise. - * - * @param api the API connection to be used by the created user. - * @param login the email address the user will use to login. - * @param name the name of the user. - * @param fields the fields to retrieve. Leave this out for the standard fields. - * @return the created user's info. - */ - public static BoxUser.Info createEnterpriseUser(BoxAPIConnection api, String login, String name, String... fields) { - return createEnterpriseUser(api, login, name, null, fields); - } - - /** - * Provisions a new user in an enterprise with additional user information. - * - * @param api the API connection to be used by the created user. - * @param login the email address the user will use to login. - * @param name the name of the user. - * @param params additional user information. - * @param fields the fields to retrieve. Leave this out for the standard fields. - * @return the created user's info. - */ - public static BoxUser.Info createEnterpriseUser(BoxAPIConnection api, String login, String name, - CreateUserParams params, String... fields) { - - JsonObject requestJSON = new JsonObject(); - requestJSON.add("login", login); - requestJSON.add("name", name); - - if (params != null) { - if (params.getRole() != null) { - requestJSON.add("role", params.getRole().toJSONValue()); - } - - if (params.getStatus() != null) { - requestJSON.add("status", params.getStatus().toJSONValue()); - } - - if (params.getTrackingCodes() != null) { - requestJSON.add("tracking_codes", toTrackingCodesJson(params.getTrackingCodes())); - } - - addIfNotNull(requestJSON, "language", params.getLanguage()); - addIfNotNull(requestJSON, "is_sync_enabled", params.getIsSyncEnabled()); - addIfNotNull(requestJSON, "job_title", params.getJobTitle()); - addIfNotNull(requestJSON, "phone", params.getPhone()); - addIfNotNull(requestJSON, "address", params.getAddress()); - addIfNotNull(requestJSON, "space_amount", params.getSpaceAmount()); - addIfNotNull(requestJSON, "can_see_managed_users", params.getCanSeeManagedUsers()); - addIfNotNull(requestJSON, "timezone", params.getTimezone()); - addIfNotNull(requestJSON, "is_exempt_from_device_limits", params.getIsExemptFromDeviceLimits()); - addIfNotNull(requestJSON, "is_exempt_from_login_verification", params.getIsExemptFromLoginVerification()); - addIfNotNull(requestJSON, "is_platform_access_only", params.getIsPlatformAccessOnly()); - addIfNotNull(requestJSON, "external_app_user_id", params.getExternalAppUserId()); - addIfNotNull(requestJSON, "is_external_collab_restricted", params.getIsExternalCollabRestricted()); - } - - QueryStringBuilder queryString = new QueryStringBuilder(); - if (fields.length > 0) { - queryString.appendParam("fields", fields); - } - URL url = USERS_URL_TEMPLATE.buildWithQuery(api.getBaseURL(), queryString.toString()); - BoxJSONRequest request = new BoxJSONRequest(api, url, "POST"); - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - BoxUser createdUser = new BoxUser(api, responseJSON.get("id").asString()); - return createdUser.new Info(responseJSON); - } - } - - /** - * Gets the current user. - * - * @param api the API connection of the current user. - * @return the current user. - */ - public static BoxUser getCurrentUser(BoxAPIConnection api) { - URL url = GET_ME_URL.build(api.getBaseURL()); - BoxJSONRequest request = new BoxJSONRequest(api, url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - return new BoxUser(api, jsonObject.get("id").asString()); - } - } - - /** - * Returns an iterable containing all the enterprise users. - * - * @param api the API connection to be used when retrieving the users. - * @return an iterable containing all the enterprise users. - */ - public static Iterable getAllEnterpriseUsers(final BoxAPIConnection api) { - return getAllEnterpriseUsers(api, false, null); - } - - - /** - * Returns an iterable containing all the enterprise users. Uses marker based pagination. - * - * @param api the API connection to be used when retrieving the users. - * @param usemarker Boolean that determines whether to use marker based pagination. - * @param marker The marker at which the iterator will begin. - * @return an iterable containing all the enterprise users. - */ - public static Iterable getAllEnterpriseUsers(final BoxAPIConnection api, final boolean usemarker, - final String marker) { - return getUsersInfoForType(api, null, null, null, usemarker, marker); - } - - /** - * Returns an iterable containing all the enterprise users that matches the filter and specifies which child fields - * to retrieve from the API. - * - * @param api the API connection to be used when retrieving the users. - * @param filterTerm used to filter the results to only users starting with this string in either the name or the - * login. Can be null to not filter the results. - * @param fields the fields to retrieve. Leave this out for the standard fields. - * @return an iterable containing all the enterprise users that matches the filter. - */ - public static Iterable getAllEnterpriseUsers(final BoxAPIConnection api, final String filterTerm, - final String... fields) { - return getUsersInfoForType(api, filterTerm, null, null, false, null, fields); - } - - /** - * Returns an iterable containing all the enterprise users that matches the filter and specifies which child fields - * to retrieve from the API. Uses marker based pagination. - * - * @param api the API connection to be used when retrieving the users. - * @param filterTerm used to filter the results to only users starting with this string in either the name or the - * login. Can be null to not filter the results. - * @param usemarker Boolean that determines whether to use marker based pagination. - * @param marker The marker at which the iterator will begin. - * @param fields the fields to retrieve. Leave this out for the standard fields. - * @return an iterable containing all the enterprise users that matches the filter. - */ - public static Iterable getAllEnterpriseUsers( - final BoxAPIConnection api, - final String filterTerm, - final boolean usemarker, - final String marker, - final String... fields - ) { - return getUsersInfoForType(api, filterTerm, null, null, usemarker, marker, fields); - } - - /** - * Gets a limited set of information about an external user. (A user collaborating - * on content owned by the enterprise). Note: Only fields the user has permission to - * see will be returned with values. Other fields will return a value of null. - * - * @param api the API connection to be used when retrieving the users. - * @param filterTerm used to filter the results to only users matching the given login. - * This does exact match only, so if no filter term is passed in, nothing - * will be returned. - * @param fields the fields to retrieve. Leave this out for the standard fields. - * @return an iterable containing external users matching the given email - */ - public static Iterable getExternalUsers(final BoxAPIConnection api, final String filterTerm, - final String... fields) { - return getUsersInfoForType(api, filterTerm, "external", null, false, null, fields); - } - - /** - * Gets a limited set of information about an external user. (A user collaborating - * on content owned by the enterprise). Note: Only fields the user has permission to - * see will be returned with values. Other fields will return a value of null. Uses marker based pagination. - * - * @param api the API connection to be used when retrieving the users. - * @param filterTerm used to filter the results to only users matching the given login. - * This does exact match only, so if no filter term is passed in, nothing - * will be returned. - * @param usemarker Boolean that determines whether to use marker based pagination. - * @param marker The marker at which the iterator will begin. - * @param fields the fields to retrieve. Leave this out for the standard fields. - * @return an iterable containing external users matching the given email - */ - public static Iterable getExternalUsers( - final BoxAPIConnection api, - final String filterTerm, - final boolean usemarker, - final String marker, - final String... fields - ) { - return getUsersInfoForType(api, filterTerm, "external", null, usemarker, marker, fields); - } - - /** - * Gets any managed users that match the filter term as well as any external users that - * match the filter term. For managed users it matches any users names or emails that - * start with the term. For external, it only does full match on email. This method - * is ideal to use in the case where you have a full email for a user and you don't - * know if they're managed or external. - * - * @param api the API connection to be used when retrieving the users. - * @param filterTerm The filter term to lookup users by (login for external, login or name for managed) - * @param fields the fields to retrieve. Leave this out for the standard fields. - * @return an iterable containing users matching the given email - */ - public static Iterable getAllEnterpriseOrExternalUsers( - final BoxAPIConnection api, - final String filterTerm, - final String... fields - ) { - return getUsersInfoForType(api, filterTerm, "all", null, false, null, fields); - } - - /** - * Gets any managed users that match the filter term as well as any external users that - * match the filter term. For managed users it matches any users names or emails that - * start with the term. For external, it only does full match on email. This method - * is ideal to use in the case where you have a full email for a user and you don't - * know if they're managed or external. Uses marker based pagination. - * - * @param api the API connection to be used when retrieving the users. - * @param filterTerm The filter term to lookup users by (login for external, login or name for managed) - * @param usemarker Boolean that determines whether to use marker based pagination. - * @param marker The marker at which the iterator will begin. - * @param fields the fields to retrieve. Leave this out for the standard fields. - * @return an iterable containing users matching the given email - */ - public static Iterable getAllEnterpriseOrExternalUsers( - final BoxAPIConnection api, - final String filterTerm, - final boolean usemarker, - final String marker, - final String... fields - ) { - return getUsersInfoForType(api, filterTerm, "all", null, usemarker, marker, fields); - } - - /** - * Gets any app users that has an exact match with the externalAppUserId term. - * - * @param api the API connection to be used when retrieving the users. - * @param externalAppUserId the external app user id that has been set for app user - * @param fields the fields to retrieve. Leave this out for the standard fields. - * @return an iterable containing users matching the given email - */ - public static Iterable getAppUsersByExternalAppUserID( - final BoxAPIConnection api, - final String externalAppUserId, - final String... fields - ) { - return getUsersInfoForType(api, null, null, externalAppUserId, false, null, fields); - } - - /** - * Gets any app users that has an exact match with the externalAppUserId term using marker based pagination. - * - * @param api the API connection to be used when retrieving the users. - * @param externalAppUserId the external app user id that has been set for app user - * @param usemarker Boolean that determines whether to use marker based pagination. - * @param marker The marker at which the iterator will begin. - * @param fields the fields to retrieve. Leave this out for the standard fields. - * @return an iterable containing users matching the given email - */ - public static Iterable getAppUsersByExternalAppUserID( - final BoxAPIConnection api, - final String externalAppUserId, - final boolean usemarker, - String marker, - final String... fields - ) { - return getUsersInfoForType(api, null, null, externalAppUserId, usemarker, marker, fields); - } - - /** - * Helper method to abstract out the common logic from the various users methods. - * - * @param api the API connection to be used when retrieving the users. - * @param filterTerm The filter term to lookup users by (login for external, login or name for managed) - * @param userType The type of users we want to search with this request. - * Valid values are 'managed' (enterprise users), 'external' or 'all' - * @param externalAppUserId the external app user id that has been set for an app user - * @param usemarker Boolean that determines whether to use marker based pagination. - * @param marker The marker at which the iterator will begin. - * @param fields the fields to retrieve. Leave this out for the standard fields. - * @return An iterator over the selected users. - */ - private static Iterable getUsersInfoForType( - final BoxAPIConnection api, - final String filterTerm, - final String userType, - final String externalAppUserId, - final boolean usemarker, - final String marker, - final String... fields - ) { - - final QueryStringBuilder builder = new QueryStringBuilder(); - if (filterTerm != null) { - builder.appendParam("filter_term", filterTerm); - } - if (userType != null) { - builder.appendParam("user_type", userType); - } - if (externalAppUserId != null) { - builder.appendParam("external_app_user_id", externalAppUserId); - } - if (usemarker) { - builder.appendParam("usemarker", "true"); - } - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - final URL url = USERS_URL_TEMPLATE.buildWithQuery(api.getBaseURL(), builder.toString()); - - if (usemarker) { - return new BoxResourceIterable(api, url, 100, null, marker) { - @Override - protected BoxUser.Info factory(JsonObject jsonObject) { - BoxUser user = new BoxUser(api, jsonObject.get("id").asString()); - return user.new Info(jsonObject); - } - }; - } else { - return () -> new BoxUserIterator(api, url); - } - } - - private static JsonArray toTrackingCodesJson(Map trackingCodes) { - JsonArray trackingCodesJsonArray = new JsonArray(); - for (String attrKey : trackingCodes.keySet()) { - JsonObject trackingCode = new JsonObject(); - trackingCode.set("type", "tracking_code"); - trackingCode.set("name", attrKey); - trackingCode.set("value", trackingCodes.get(attrKey)); - trackingCodesJsonArray.add(trackingCode); - } - return trackingCodesJsonArray; - } - - /** - * Gets information about this user. - * - * @param fields the optional fields to retrieve. - * @return info about this user. - */ - public BoxUser.Info getInfo(String... fields) { - URL url; - if (fields.length > 0) { - String queryString = new QueryStringBuilder().appendParam("fields", fields).toString(); - url = USER_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), queryString, this.getID()); - } else { - url = USER_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - } - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - return new Info(jsonObject); - } - } - - /** - * Gets information about all of the group memberships for this user. - * Does not support paging. - * - *

    Note: This method is only available to enterprise admins.

    - * - * @return a collection of information about the group memberships for this user. - */ - public Collection getMemberships() { - BoxAPIConnection api = this.getAPI(); - URL url = USER_MEMBERSHIPS_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - - BoxJSONRequest request = new BoxJSONRequest(api, url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - int entriesCount = responseJSON.get("total_count").asInt(); - Collection memberships = new ArrayList<>(entriesCount); - JsonArray entries = responseJSON.get("entries").asArray(); - for (JsonValue entry : entries) { - JsonObject entryObject = entry.asObject(); - BoxGroupMembership membership = new BoxGroupMembership(api, entryObject.get("id").asString()); - BoxGroupMembership.Info info = membership.new Info(entryObject); - memberships.add(info); - } - - return memberships; - } - } - - /** - * Gets information about all of the group memberships for this user as iterable with paging support. - * - * @param fields the fields to retrieve. - * @return an iterable with information about the group memberships for this user. - */ - public Iterable getAllMemberships(String... fields) { - final QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - return () -> { - URL url = USER_MEMBERSHIPS_URL_TEMPLATE.buildWithQuery( - BoxUser.this.getAPI().getBaseURL(), builder.toString(), BoxUser.this.getID()); - return new BoxGroupMembershipIterator(BoxUser.this.getAPI(), url); - }; - } - - /** - * Adds a new email alias to this user's account. - * - * @param email the email address to add as an alias. - * @return the newly created email alias. - */ - public EmailAlias addEmailAlias(String email) { - return this.addEmailAlias(email, false); - } - - /** - * Adds a new email alias to this user's account and confirms it without user interaction. - * This functionality is only available for enterprise admins. - * - * @param email the email address to add as an alias. - * @param isConfirmed whether or not the email alias should be automatically confirmed. - * @return the newly created email alias. - */ - public EmailAlias addEmailAlias(String email, boolean isConfirmed) { - URL url = EMAIL_ALIASES_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "POST"); - - JsonObject requestJSON = new JsonObject() - .add("email", email); - - if (isConfirmed) { - requestJSON.add("is_confirmed", isConfirmed); - } - - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - return new EmailAlias(responseJSON); - } - } - - /** - * Deletes an email alias from this user's account. - * - *

    The IDs of the user's email aliases can be found by calling {@link #getEmailAliases}.

    - * - * @param emailAliasID the ID of the email alias to delete. - */ - public void deleteEmailAlias(String emailAliasID) { - URL url = EMAIL_ALIAS_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID(), emailAliasID); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "DELETE"); - request.send().close(); - } - - /** - * Gets a collection of all the email aliases for this user. - * - *

    Note that the user's primary login email is not included in the collection of email aliases.

    - * - * @return a collection of all the email aliases for this user. - */ - public Collection getEmailAliases() { - URL url = EMAIL_ALIASES_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - int totalCount = responseJSON.get("total_count").asInt(); - Collection emailAliases = new ArrayList<>(totalCount); - JsonArray entries = responseJSON.get("entries").asArray(); - for (JsonValue value : entries) { - JsonObject emailAliasJSON = value.asObject(); - emailAliases.add(new EmailAlias(emailAliasJSON)); - } - - return emailAliases; - } - } - - /** - * Deletes a user from an enterprise account. - * - * @param notifyUser whether or not to send an email notification to the user that their account has been deleted. - * @param force whether or not this user should be deleted even if they still own files. - */ - public void delete(boolean notifyUser, boolean force) { - String queryString = new QueryStringBuilder() - .appendParam("notify", String.valueOf(notifyUser)) - .appendParam("force", String.valueOf(force)) - .toString(); - - performUserDelete(queryString); - } - - /** - * Deletes a user from an enterprise account. Uses API default values to determine if request should - * be forced and if user should be notified. - */ - public void delete() { - performUserDelete(""); - } - - private void performUserDelete(String queryString) { - URL url = USER_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), queryString, this.getID()); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "DELETE"); - request.send().close(); - } - - /** - * Updates the information about this user with any info fields that have been modified locally. - * - *

    Note: This method is only available to enterprise admins.

    - * - * @param info info the updated info. - * @param fields the fields to retrieve. Leave this out for the standard fields. - */ - public void updateInfo(BoxUser.Info info, String... fields) { - QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - URL url = USER_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), builder.toString(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - request.setBody(info.getPendingChanges()); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - info.update(jsonObject); - } - } - - /** - * Moves all the owned content from within one user’s folder into a new folder in another user's account. - * You can move folders across users as long as the you have administrative permissions and the 'source' - * user owns the folders. Per the documentation at the link below, this will move everything from the root - * folder, as this is currently the only mode of operation supported. - *

    - * See also https://developer.box.com/en/reference/put-users-id-folders-id/ - * - * @param destinationUserID the user id of the user that you wish to transfer content to. - * @return info for the newly created folder. - */ - public BoxFolder.Info transferContent(String destinationUserID) { - URL url = MOVE_FOLDER_TO_USER_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID(), "0"); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - JsonObject destinationUser = new JsonObject(); - destinationUser.add("id", destinationUserID); - JsonObject ownedBy = new JsonObject(); - ownedBy.add("owned_by", destinationUser); - request.setBody(ownedBy.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - BoxFolder movedFolder = new BoxFolder(this.getAPI(), responseJSON.get("id").asString()); - - return movedFolder.new Info(responseJSON); - } - } - - /** - * Writes avatar into specified {@link OutputStream} - * - * @param outputStream Stream where to write avatar. - */ - public void downloadAvatar(OutputStream outputStream) { - URL url = USER_AVATAR_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "GET"); - writeStream(request.send(), outputStream); - } - - /** - * Retrieves the avatar of a user as an InputStream. - * - * @return InputStream representing the user avater. - * @deprecated This method loads whole avatar image to memory. - * Use {@link BoxUser#downloadAvatar(OutputStream)} to store avatar in file or memory. - * That method uses very small buffer to store bytes in memory. - */ - public InputStream getAvatar() { - URL url = USER_AVATAR_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "GET"); - BoxAPIResponse response = request.send(); - try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) { - writeStream(response, outputStream); - return new ByteArrayInputStream(outputStream.toByteArray()); - } catch (IOException e) { - throw new RuntimeException("Error while closing stream", e); - } - } - - /** - * Upload avatar image to user account. Supported formats are JPG and PNG. - * The image size cannot exceed 1024 * 1024 pixels or 1MB. - * - * @param file File containg avatar image. - * @return Avatar creation response. - */ - public AvatarUploadResponse uploadAvatar(File file) { - try { - return uploadAvatar(new FileInputStream(file), file.getName()); - } catch (FileNotFoundException e) { - throw new RuntimeException(e); - } - } - - /** - * Upload avatar image to user account. Supported formats are JPG and PNG. - * The image size cannot exceed 1024 * 1024 pixels or 1MB. - * - * @param file {@link File} containg avatar image. - * @param progressListener {@link ProgressListener} set if you want to track upload progress - * @return Avatar creation response. - */ - public AvatarUploadResponse uploadAvatar(File file, ProgressListener progressListener) { - try { - return uploadAvatar(new FileInputStream(file), file.getName(), progressListener); - } catch (FileNotFoundException e) { - throw new RuntimeException(e); - } - } - - /** - * Upload avatar image to user account. Supported formats are JPG and PNG. - * The image size cannot exceed 1024 * 1024 pixels or 1MB. - * - * @param content {@link InputStream} containing image data - * @param fileName file name with extention what will be used to determine content type - * @return Avatar creation response. - */ - public AvatarUploadResponse uploadAvatar(InputStream content, String fileName) { - return uploadAvatar(content, fileName, null); - } - - /** - * Upload avatar image to user account. Supported formats are JPG and PNG. - * The image size cannot exceed 1024 * 1024 pixels or 1MB. - * - * @param content {@link InputStream} containing image data - * @param fileName file name with extention what will be used to determine content type - * @param progressListener {@link ProgressListener} set if you want to track upload progress - * @return Avatar creation response. - */ - public AvatarUploadResponse uploadAvatar(InputStream content, String fileName, ProgressListener progressListener) { - URL url = USER_AVATAR_TEMPLATE.build(getAPI().getBaseURL(), this.getID()); - BoxImageMultipartRequest request = new BoxImageMultipartRequest(getAPI(), url, "pic"); - request.setFile(content, fileName); - - BoxAPIResponse response = null; - try { - if (progressListener != null) { - response = request.send(progressListener); - } else { - response = request.send(); - } - - return parseUploadAvatarResponse(response); - } finally { - Optional.ofNullable(response).ifPresent(BoxAPIResponse::close); - } - } - - /** - * Removes avatar from user account. - */ - public void deleteAvatar() { - URL url = USER_AVATAR_TEMPLATE.build(getAPI().getBaseURL(), this.getID()); - BoxAPIRequest request = new BoxAPIRequest(getAPI(), url, DELETE); - request.send().close(); - } - - private AvatarUploadResponse parseUploadAvatarResponse(BoxAPIResponse response) { - JsonObject responseObject = Json.parse(response.bodyToString()).asObject(); - JsonObject picUrls = responseObject.get("pic_urls").asObject(); - return new AvatarUploadResponse( - picUrls.getString("small", null), - picUrls.getString("large", null), - picUrls.getString("preview", null) - ); - } - - /** - * Enumerates the possible roles that a user can have within an enterprise. - */ - public enum Role { - /** - * The user is an administrator of their enterprise. - */ - ADMIN("admin"), - - /** - * The user is a co-administrator of their enterprise. - */ - COADMIN("coadmin"), - - /** - * The user is a regular user within their enterprise. - */ - USER("user"); - - private final String jsonValue; - - Role(String jsonValue) { - this.jsonValue = jsonValue; - } - - static Role fromJSONValue(String jsonValue) { - return Role.valueOf(jsonValue.toUpperCase(java.util.Locale.ROOT)); - } - - String toJSONValue() { - return this.jsonValue; - } - } - - /** - * Enumerates the possible statuses that a user's account can have. - */ - public enum Status { - /** - * The user's account is active. - */ - ACTIVE("active"), - - /** - * The user's account is inactive. - */ - INACTIVE("inactive"), - - /** - * The user's account cannot delete or edit content. - */ - CANNOT_DELETE_EDIT("cannot_delete_edit"), - - /** - * The user's account cannot delete, edit, or upload content. - */ - CANNOT_DELETE_EDIT_UPLOAD("cannot_delete_edit_upload"); - - private final String jsonValue; - - Status(String jsonValue) { - this.jsonValue = jsonValue; - } - - static Status fromJSONValue(String jsonValue) { - return Status.valueOf(jsonValue.toUpperCase(java.util.Locale.ROOT)); - } - - String toJSONValue() { - return this.jsonValue; - } - } - - /** - * Contains information about a BoxUser. - */ - public class Info extends BoxCollaborator.Info { - private String login; - private Role role; - private String language; - private String timezone; - private long spaceAmount; - private long spaceUsed; - private long maxUploadSize; - private boolean canSeeManagedUsers; - private boolean isSyncEnabled; - private boolean isExternalCollabRestricted; - private Status status; - private String jobTitle; - private String phone; - private String address; - private String avatarURL; - private BoxNotificationEmail notificationEmail; - private boolean isExemptFromDeviceLimits; - private boolean isExemptFromLoginVerification; - private boolean isPasswordResetRequired; - private boolean isPlatformAccessOnly; - private String externalAppUserId; - private BoxEnterprise enterprise; - private List myTags; - private String hostname; - private Map trackingCodes; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - Info(JsonObject jsonObject) { - super(jsonObject); - } - - @Override - public BoxUser getResource() { - return BoxUser.this; - } - - /** - * Gets the email address the user uses to login. - * - * @return the email address the user uses to login. - */ - public String getLogin() { - return this.login; - } - - /** - * Sets the email address the user uses to login. The new login must be one of the user's already confirmed - * email aliases. - * - * @param login one of the user's confirmed email aliases. - */ - public void setLogin(String login) { - this.login = login; - this.addPendingChange("login", login); - } - - /** - * Gets the user's enterprise role. - * - * @return the user's enterprise role. - */ - public Role getRole() { - return this.role; - } - - /** - * Sets the user's role in their enterprise. - * - * @param role the user's new role in their enterprise. - */ - public void setRole(Role role) { - this.role = role; - this.addPendingChange("role", role.name().toLowerCase(java.util.Locale.ROOT)); - } - - /** - * Gets the language of the user. - * - * @return the language of the user. - */ - public String getLanguage() { - return this.language; - } - - /** - * Sets the language of the user. - * - * @param language the new language of the user. - */ - public void setLanguage(String language) { - this.language = language; - this.addPendingChange("language", language); - } - - /** - * Gets the timezone of the user. - * - * @return the timezone of the user. - */ - public String getTimezone() { - return this.timezone; - } - - /** - * Sets the timezone of the user. - * - * @param timezone the new timezone of the user. - */ - public void setTimezone(String timezone) { - this.timezone = timezone; - this.addPendingChange("timezone", timezone); - } - - /** - * Gets the user's total available space in bytes. - * - * @return the user's total available space in bytes. - */ - public long getSpaceAmount() { - return this.spaceAmount; - } - - /** - * Sets the user's total available space in bytes. - * - * @param spaceAmount the new amount of space available to the user in bytes, or -1 for unlimited storage. - */ - public void setSpaceAmount(long spaceAmount) { - this.spaceAmount = spaceAmount; - this.addPendingChange("space_amount", spaceAmount); - } - - /** - * Gets the amount of space the user has used in bytes. - * - * @return the amount of space the user has used in bytes. - */ - public long getSpaceUsed() { - return this.spaceUsed; - } - - /** - * Gets the maximum individual file size in bytes the user can have. - * - * @return the maximum individual file size in bytes the user can have. - */ - public long getMaxUploadSize() { - return this.maxUploadSize; - } - - /** - * Gets the user's current account status. - * - * @return the user's current account status. - */ - public Status getStatus() { - return this.status; - } - - /** - * Sets the user's current account status. - * - * @param status the user's new account status. - */ - public void setStatus(Status status) { - this.status = status; - this.addPendingChange("status", status.name().toLowerCase(java.util.Locale.ROOT)); - } - - /** - * Gets the job title of the user. - * - * @return the job title of the user. - */ - public String getJobTitle() { - return this.jobTitle; - } - - /** - * Sets the job title of the user. - * - * @param jobTitle the new job title of the user. - */ - public void setJobTitle(String jobTitle) { - this.jobTitle = jobTitle; - this.addPendingChange("job_title", jobTitle); - } - - /** - * Gets the phone number of the user. - * - * @return the phone number of the user. - */ - public String getPhone() { - return this.phone; - } - - /** - * Sets the phone number of the user. - * - * @param phone the new phone number of the user. - */ - public void setPhone(String phone) { - this.phone = phone; - this.addPendingChange("phone", phone); - } - - /** - * Gets the address of the user. - * - * @return the address of the user. - */ - public String getAddress() { - return this.address; - } - - /** - * Sets the address of the user. - * - * @param address the new address of the user. - */ - public void setAddress(String address) { - this.address = address; - this.addPendingChange("address", address); - } - - /** - * Gets the URL of the user's avatar. - * - * @return the URL of the user's avatar. - */ - public String getAvatarURL() { - return this.avatarURL; - } - - /** - * Gets the user's alternate notification email address to which email notifications are sent. - * - * @return the user's notification email address. - */ - public BoxNotificationEmail getNotificationEmail() { - return this.notificationEmail; - } - - /** - * Sets the user's notification email address. - * - * @param notificationEmail the user's new notification email address. - */ - public void setNotificationEmail(BoxNotificationEmail notificationEmail) { - this.notificationEmail = notificationEmail; - } - - /** - * Gets the enterprise that the user belongs to. - * - * @return the enterprise that the user belongs to. - */ - public BoxEnterprise getEnterprise() { - return this.enterprise; - } - - /** - * Removes the user from their enterprise and converts them to a standalone free user. - */ - public void removeEnterprise() { - this.removeChildObject("enterprise"); - this.enterprise = null; - this.addChildObject("enterprise", null); - } - - /** - * Gets whether or not the user can use Box Sync. - * - * @return true if the user can use Box Sync; otherwise false. - */ - public boolean getIsSyncEnabled() { - return this.isSyncEnabled; - } - - /** - * Sets whether or not the user can use Box Sync. - * - * @param enabled whether or not the user can use Box Sync. - */ - public void setIsSyncEnabled(boolean enabled) { - this.isSyncEnabled = enabled; - this.addPendingChange("is_sync_enabled", enabled); - } - - /** - * Gets whether this user is allowed or not to collaborate with users outside their enterprise. - * - * @return true if this user is not allowed to collaborate with users outside their enterprise; otherwise false. - */ - public boolean getIsExternalCollabRestricted() { - return this.isExternalCollabRestricted; - } - - /** - * Sets whether this user is allowed or not to collaborate with users outside their enterprise. - * - * @param isExternalCollabRestricted whether the user is allowed to collaborate outside their enterprise. - */ - public void setIsExternalCollabRestricted(boolean isExternalCollabRestricted) { - this.isExternalCollabRestricted = isExternalCollabRestricted; - this.addPendingChange("is_external_collab_restricted", isExternalCollabRestricted); - } - - /** - * Gets whether or not the user can see other enterprise users in their contact list. - * - * @return true if the user can see other enterprise users in their contact list; otherwise false. - */ - public boolean getCanSeeManagedUsers() { - return this.canSeeManagedUsers; - } - - /** - * Sets whether or not the user can see other enterprise users in their contact list. - * - * @param canSeeManagedUsers whether or not the user can see other enterprise users in their contact list. - */ - public void setCanSeeManagedUsers(boolean canSeeManagedUsers) { - this.canSeeManagedUsers = canSeeManagedUsers; - this.addPendingChange("can_see_managed_users", canSeeManagedUsers); - } - - /** - * Gets whether or not the user is exempt from enterprise device limits. - * - * @return true if the user is exempt from enterprise device limits; otherwise false. - */ - public boolean getIsExemptFromDeviceLimits() { - return this.isExemptFromDeviceLimits; - } - - /** - * Sets whether or not the user is exempt from enterprise device limits. - * - * @param isExemptFromDeviceLimits whether or not the user is exempt from enterprise device limits. - */ - public void setIsExemptFromDeviceLimits(boolean isExemptFromDeviceLimits) { - this.isExemptFromDeviceLimits = isExemptFromDeviceLimits; - this.addPendingChange("is_exempt_from_device_limits", isExemptFromDeviceLimits); - } - - /** - * Gets whether or not the user must use two-factor authentication. - * - * @return true if the user must use two-factor authentication; otherwise false. - */ - public boolean getIsExemptFromLoginVerification() { - return this.isExemptFromLoginVerification; - } - - /** - * Sets whether or not the user must use two-factor authentication. - * - * @param isExemptFromLoginVerification whether or not the user must use two-factor authentication. - */ - public void setIsExemptFromLoginVerification(boolean isExemptFromLoginVerification) { - this.isExemptFromLoginVerification = isExemptFromLoginVerification; - this.addPendingChange("is_exempt_from_login_verification", isExemptFromLoginVerification); - } - - /** - * Gets whether or not the user is required to reset password. - * - * @return true if the user is required to reset password; otherwise false. - */ - public boolean getIsPasswordResetRequired() { - return this.isPasswordResetRequired; - } - - /** - * Sets whether or not the user is required to reset password. - * - * @param isPasswordResetRequired whether or not the user is required to reset password. - */ - public void setIsPasswordResetRequired(boolean isPasswordResetRequired) { - this.isPasswordResetRequired = isPasswordResetRequired; - this.addPendingChange("is_password_reset_required", isPasswordResetRequired); - } - - /** - * Gets whether or not the user we are creating is an app user with Box Developer Edition. - * - * @return true if the new user is an app user for Box Developer Addition; otherwise false. - */ - public boolean getIsPlatformAccessOnly() { - return this.isPlatformAccessOnly; - } - - /** - * Gets the external app user id that has been set for the app user. - * - * @return the external app user id. - */ - public String getExternalAppUserId() { - return this.externalAppUserId; - } - - /** - * Sets the external app user id. - * - * @param externalAppUserId external app user id. - */ - public void setExternalAppUserId(String externalAppUserId) { - this.externalAppUserId = externalAppUserId; - this.addPendingChange("external_app_user_id", externalAppUserId); - } - - /** - * Gets the tags for all files and folders owned by this user. - * - * @return the tags for all files and folders owned by this user. - */ - public List getMyTags() { - return this.myTags; - } - - /** - * Gets the root (protocol, subdomain, domain) of any links that need to be generated for this user. - * - * @return the root (protocol, subdomain, domain) of any links that need to be generated for this user. - */ - public String getHostname() { - return this.hostname; - } - - /** - * Gets the tracking defined for each entity. - * - * @return a Map with tracking codes. - */ - public Map getTrackingCodes() { - return this.trackingCodes; - } - - /** - * Allows admin to set attributes specific for a group of users. - * - * @param trackingCodes a Map representing the user's new tracking codes - */ - public void setTrackingCodes(Map trackingCodes) { - this.trackingCodes = trackingCodes; - this.addPendingChange("tracking_codes", toTrackingCodesJson(this.trackingCodes)); - } - - /** - * Allows the admin to append new tracking codes to the previous existing list. - * - * @param name the name or `key` of the attribute to set. - * @param value the value of the attribute to set. - */ - public void appendTrackingCodes(String name, String value) { - this.getTrackingCodes().put(name, value); - this.addPendingChange("tracking_codes", toTrackingCodesJson(this.trackingCodes)); - } - - @SuppressWarnings("checkstyle:MissingSwitchDefault") - @Override - protected void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - - JsonValue value = member.getValue(); - String memberName = member.getName(); - try { - switch (memberName) { - case "login": - this.login = value.asString(); - break; - case "role": - this.role = Role.fromJSONValue(value.asString()); - break; - case "language": - this.language = value.asString(); - break; - case "timezone": - this.timezone = value.asString(); - break; - case "space_amount": - this.spaceAmount = Double.valueOf(value.toString()).longValue(); - break; - case "space_used": - this.spaceUsed = Double.valueOf(value.toString()).longValue(); - break; - case "max_upload_size": - this.maxUploadSize = Double.valueOf(value.toString()).longValue(); - break; - case "status": - this.status = Status.fromJSONValue(value.asString()); - break; - case "job_title": - this.jobTitle = value.asString(); - break; - case "phone": - this.phone = value.asString(); - break; - case "address": - this.address = value.asString(); - break; - case "avatar_url": - this.avatarURL = value.asString(); - break; - case "notification_email": - if (value.isObject()) { - this.notificationEmail = new BoxNotificationEmail(value.asObject()); - } else { - this.notificationEmail = null; - } - break; - case "can_see_managed_users": - this.canSeeManagedUsers = value.asBoolean(); - break; - case "is_sync_enabled": - this.isSyncEnabled = value.asBoolean(); - break; - case "is_external_collab_restricted": - this.isExternalCollabRestricted = value.asBoolean(); - break; - case "is_exempt_from_device_limits": - this.isExemptFromDeviceLimits = value.asBoolean(); - break; - case "is_exempt_from_login_verification": - this.isExemptFromLoginVerification = value.asBoolean(); - break; - case "is_password_reset_required": - this.isPasswordResetRequired = value.asBoolean(); - break; - case "is_platform_access_only": - this.isPlatformAccessOnly = value.asBoolean(); - break; - case "external_app_user_id": - this.externalAppUserId = value.asString(); - break; - case "enterprise": - JsonObject jsonObject = value.asObject(); - if (this.enterprise == null) { - this.enterprise = new BoxEnterprise(jsonObject); - } else { - this.enterprise.update(jsonObject); - } - break; - case "my_tags": - this.myTags = this.parseMyTags(value.asArray()); - break; - case "hostname": - this.hostname = value.asString(); - break; - case "tracking_codes": - this.trackingCodes = this.parseTrackingCodes(value.asArray()); - break; - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - - } - - private List parseMyTags(JsonArray jsonArray) { - List myTags = new ArrayList<>(jsonArray.size()); - for (JsonValue value : jsonArray) { - myTags.add(value.asString()); - } - - return myTags; - } - - private Map parseTrackingCodes(JsonArray jsonArray) { - Map result = new HashMap<>(); - if (jsonArray == null) { - return null; - } - List valuesList = jsonArray.values(); - for (JsonValue jsonValue : valuesList) { - JsonObject object = jsonValue.asObject(); - result.put(object.get("name").asString(), object.get("value").asString()); - } - return result; - } - } -} diff --git a/src/main/java/com/box/sdk/BoxUserIterator.java b/src/main/java/com/box/sdk/BoxUserIterator.java deleted file mode 100644 index 03ec69b03..000000000 --- a/src/main/java/com/box/sdk/BoxUserIterator.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.PagingParameters.offset; - -import com.eclipsesource.json.JsonObject; -import java.net.URL; -import java.util.Iterator; - -class BoxUserIterator implements Iterator { - private static final long LIMIT = 1000; - - private final BoxAPIConnection api; - private final JsonIterator jsonIterator; - - BoxUserIterator(BoxAPIConnection api, URL url) { - this.api = api; - this.jsonIterator = new JsonIterator(api, url, offset(0, LIMIT)); - } - - public boolean hasNext() { - return this.jsonIterator.hasNext(); - } - - public BoxUser.Info next() { - JsonObject nextJSONObject = this.jsonIterator.next(); - String id = nextJSONObject.get("id").asString(); - - BoxUser user = new BoxUser(this.api, id); - return user.new Info(nextJSONObject); - } - - public void remove() { - throw new UnsupportedOperationException(); - } -} diff --git a/src/main/java/com/box/sdk/BoxWatermark.java b/src/main/java/com/box/sdk/BoxWatermark.java deleted file mode 100644 index bb8792211..000000000 --- a/src/main/java/com/box/sdk/BoxWatermark.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.util.Date; - -/** - * Represents a watermark. - * Watermarks are used to protect sensitive information in the Box account. - * - * @see Watermarking - */ -public class BoxWatermark extends BoxJSONObject { - - /** - * Default imprint for watermarks. - */ - public static final String WATERMARK_DEFAULT_IMPRINT = "default"; - - /** - * Json key for watermark. - * - * @see BoxWatermark#parseJSONMember(JsonObject.Member) - */ - public static final String WATERMARK_JSON_KEY = "watermark"; - - /** - * Json key for created_at param. - * - * @see BoxWatermark#parseJSONMember(JsonObject.Member) - */ - public static final String CREATED_AT_JSON_KEY = "created_at"; - - /** - * Json key for modified_at param. - * - * @see BoxWatermark#parseJSONMember(JsonObject.Member) - */ - public static final String MODIFIED_AT_JSON_KEY = "modified_at"; - - /** - * Json key for watermark param. - */ - public static final String WATERMARK_IMPRINT_JSON_KEY = "imprint"; - - /** - * @see #getCreatedAt() - */ - private Date createdAt; - - /** - * @see #getModifiedAt() - */ - private Date modifiedAt; - - /** - * Constructs an empty watermark object. - */ - public BoxWatermark() { - super(); - } - - /** - * Constructs a watermark object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public BoxWatermark(String json) { - super(json); - } - - /** - * Constructs a watermark object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - BoxWatermark(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * @return the time that the watermark was created. - */ - public Date getCreatedAt() { - return this.createdAt; - } - - /** - * @return the time that the watermark was last modified. - */ - public Date getModifiedAt() { - return this.modifiedAt; - } - - /** - * {@inheritDoc} - */ - public BoxWatermark getResource() { - return BoxWatermark.this; - } - - /** - * {@inheritDoc} - */ - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - JsonValue value = member.getValue(); - if (memberName.equals(WATERMARK_JSON_KEY)) { - try { - this.createdAt = BoxDateFormat.parse(value.asObject().get(CREATED_AT_JSON_KEY).asString()); - this.modifiedAt = BoxDateFormat.parse(value.asObject().get(MODIFIED_AT_JSON_KEY).asString()); - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - } - -} diff --git a/src/main/java/com/box/sdk/BoxWebHook.java b/src/main/java/com/box/sdk/BoxWebHook.java deleted file mode 100644 index 1025675b7..000000000 --- a/src/main/java/com/box/sdk/BoxWebHook.java +++ /dev/null @@ -1,843 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.internal.utils.CollectionUtils; -import com.box.sdk.internal.utils.CollectionUtils.Mapper; -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.MalformedURLException; -import java.net.URL; -import java.text.ParseException; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.Date; -import java.util.HashSet; -import java.util.Set; - -/** - * Box WebHook resource. - * - * @since 2.2.1 - */ -@BoxResourceType("webhook") -public class BoxWebHook extends BoxResource { - - /** - * {@link URLTemplate} for {@link BoxWebHook}s resource. - */ - public static final URLTemplate WEBHOOKS_URL_TEMPLATE = new URLTemplate("webhooks"); - /** - * {@link URLTemplate} for single {@link BoxWebHook} resource. - */ - public static final URLTemplate WEBHOOK_URL_TEMPLATE = new URLTemplate("webhooks/%s"); - - /** - * JSON Key for {@link BoxWebHook} {@link #getID()}. - */ - private static final String JSON_KEY_ID = "id"; - - /** - * JSON Key for {@link BoxWebHook.Info#getTarget()}. - */ - private static final String JSON_KEY_TARGET = "target"; - - /** - * JSON Key for {@link BoxWebHook.Target#getType()}. - */ - private static final String JSON_KEY_TARGET_TYPE = "type"; - - /** - * JSON Key for {@link BoxWebHook.Target#getId()}. - */ - private static final String JSON_KEY_TARGET_ID = "id"; - - /** - * JSON Key for {@link BoxWebHook.Info#getAddress()}. - */ - private static final String JSON_KEY_ADDRESS = "address"; - - /** - * JSON Key for {@link BoxWebHook.Info#getTriggers()}. - */ - private static final String JSON_KEY_TRIGGERS = "triggers"; - - /** - * JSON Key for {@link BoxWebHook.Info#getCreatedBy()}. - */ - private static final String JSON_KEY_CREATED_BY = "created_by"; - - /** - * JSON Key for {@link BoxWebHook.Info#getCreatedAt()}. - */ - private static final String JSON_KEY_CREATED_AT = "created_at"; - - /** - * Maps a {@link Trigger} to its {@link Trigger#getValue()}. - */ - private static final Mapper TRIGGER_TO_VALUE = Trigger::getValue; - - private static final Mapper JSON_VALUE_TO_TRIGGER = - value -> Trigger.fromValue(value.asString()); - - /** - * Constructor. - * - * @param api {@link #getAPI()} - * @param id {@link #getID()} - */ - public BoxWebHook(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Adds a {@link BoxWebHook} to a provided {@link BoxResource}. - * - * @param target {@link BoxResource} web resource - * @param address {@link URL} where the notification should send to - * @param triggers events this {@link BoxWebHook} is interested in - * @return created {@link BoxWebHook} - * @see #create(BoxResource, URL, Set) - */ - public static BoxWebHook.Info create(BoxResource target, URL address, BoxWebHook.Trigger... triggers) { - return create(target, address, new HashSet<>(Arrays.asList(triggers))); - } - - /** - * Adds a {@link BoxWebHook} to a provided {@link BoxResource}. - * - * @param target {@link BoxResource} web resource - * @param address {@link URL} where the notification should send to - * @param triggers events this {@link BoxWebHook} is interested in - * @return created {@link BoxWebHook} - * @see #create(BoxResource, URL, Trigger...) - */ - public static BoxWebHook.Info create(BoxResource target, URL address, Set triggers) { - BoxAPIConnection api = target.getAPI(); - - String type = BoxResource.getResourceType(target.getClass()); - validateTriggers(type, triggers); - - JsonObject targetJSON = new JsonObject() - .add(JSON_KEY_TARGET_TYPE, type) - .add(JSON_KEY_TARGET_ID, target.getID()); - - JsonObject requestJSON = new JsonObject() - .add(JSON_KEY_TARGET, targetJSON) - .add(JSON_KEY_ADDRESS, address.toExternalForm()) - .add(JSON_KEY_TRIGGERS, toJsonArray(CollectionUtils.map(triggers, TRIGGER_TO_VALUE))); - - URL url = WEBHOOKS_URL_TEMPLATE.build(api.getBaseURL()); - BoxJSONRequest request = new BoxJSONRequest(api, url, "POST"); - request.setBody(requestJSON.toString()); - - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - BoxWebHook webHook = new BoxWebHook(api, responseJSON.get(JSON_KEY_ID).asString()); - return webHook.new Info(responseJSON); - } - } - - /** - * Helper function to create JsonArray from collection. - * - * @param values collection of values to convert to JsonArray - * @return JsonArray with collection values - */ - private static JsonArray toJsonArray(Collection values) { - JsonArray array = new JsonArray(); - for (String value : values) { - array.add(value); - } - return array; - - } - - /** - * Returns iterator over all {@link BoxWebHook}-s. - * - * @param api the API connection to be used by the resource - * @return existing {@link BoxWebHook.Info}-s - */ - public static Iterable all(final BoxAPIConnection api) { - return new BoxResourceIterable(api, WEBHOOKS_URL_TEMPLATE.build(api.getBaseURL()), 64) { - - @Override - protected BoxWebHook.Info factory(JsonObject jsonObject) { - BoxWebHook webHook = new BoxWebHook(api, jsonObject.get("id").asString()); - return webHook.new Info(jsonObject); - } - - }; - } - - /** - * Returns iterator over all {@link BoxWebHook}-s. - * - * @param api the API connection to be used by the resource - * @param fields the fields to retrieve. - * @return existing {@link BoxWebHook.Info}-s - */ - public static Iterable all(final BoxAPIConnection api, String... fields) { - QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - return new BoxResourceIterable( - api, WEBHOOKS_URL_TEMPLATE.buildWithQuery(api.getBaseURL(), builder.toString()), 64) { - - @Override - protected BoxWebHook.Info factory(JsonObject jsonObject) { - BoxWebHook webHook = new BoxWebHook(api, jsonObject.get("id").asString()); - return webHook.new Info(jsonObject); - } - - }; - } - - /** - * Validates that provided {@link BoxWebHook.Trigger}-s can be applied on the provided {@link BoxResourceType}. - * - * @param targetType on which target the triggers should be applied to - * @param triggers for check - * @see #validateTrigger(String, Trigger) - */ - public static void validateTriggers(String targetType, Collection triggers) { - for (BoxWebHook.Trigger trigger : triggers) { - validateTrigger(targetType, trigger); - } - } - - /** - * Validates that provided {@link BoxWebHook.Trigger} can be applied on the provided {@link BoxResourceType}. - * - * @param targetType on which targets the trigger should be applied to - * @param trigger for check - * @see #validateTriggers(String, Collection) - */ - private static void validateTrigger(String targetType, BoxWebHook.Trigger trigger) { - for (String type : trigger.getTypes()) { - if (targetType.equals(type)) { - return; - } - } - throw new IllegalArgumentException(String.format( - "Provided trigger '%s' is not supported on provided target '%s'.", trigger.name(), targetType)); - } - - /** - * @param fields the fields to retrieve. - * @return Gets information about this {@link BoxWebHook}. - */ - public BoxWebHook.Info getInfo(String... fields) { - URL url = WEBHOOK_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - if (fields.length > 0) { - QueryStringBuilder builder = new QueryStringBuilder().appendParam("fields", fields); - url = WEBHOOK_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), builder.toString(), this.getID()); - } - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - return new Info(Json.parse(response.getJSON()).asObject()); - } - } - - /** - * Updates {@link BoxWebHook} information. - * - * @param info new state - */ - public void updateInfo(BoxWebHook.Info info) { - URL url = WEBHOOK_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(getAPI(), url, "PUT"); - request.setBody(info.getPendingChanges()); - - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - info.update(jsonObject); - } - } - - /** - * Deletes this webhook. - */ - public void delete() { - URL url = WEBHOOK_URL_TEMPLATE.build(getAPI().getBaseURL(), this.getID()); - BoxAPIRequest request = new BoxAPIRequest(getAPI(), url, "DELETE"); - request.send().close(); - } - - /** - * A Box related triggers. - */ - public enum Trigger { - - // BoxFolder related triggers. - - /** - * Triggered when a {@link BoxFolder} gets created. - */ - FOLDER_CREATED("FOLDER.CREATED", BoxResource.getResourceType(BoxFolder.class)), - - /** - * Triggered when a {@link BoxFolder} gets copied. - */ - FOLDER_COPIED("FOLDER.COPIED", BoxResource.getResourceType(BoxFolder.class)), - - /** - * Triggered when a {@link BoxFolder} gets moved. - */ - FOLDER_MOVED("FOLDER.MOVED", BoxResource.getResourceType(BoxFolder.class)), - - /** - * Triggered when a {@link BoxFolder} is downloaded. - */ - FOLDER_DOWNLOADED("FOLDER.DOWNLOADED", BoxResource.getResourceType(BoxFolder.class)), - - /** - * Triggered when a {@link BoxFolder} is trashed. - */ - FOLDER_TRASHED("FOLDER.TRASHED", BoxResource.getResourceType(BoxFolder.class)), - - /** - * Triggered when a {@link BoxFolder} gets restored. - */ - FOLDER_RESTORED("FOLDER.RESTORED", BoxResource.getResourceType(BoxFolder.class)), - - /** - * Triggered when a {@link BoxFolder} gets deleted. - */ - FOLDER_DELETED("FOLDER.DELETED", BoxResource.getResourceType(BoxFolder.class)), - - /** - * Triggered when a {@link BoxFolder} is renamed. - */ - FOLDER_RENAMED("FOLDER.RENAMED", BoxResource.getResourceType(BoxFolder.class)), - - // BoxFile related triggers. - - /** - * Triggered when a {@link BoxFile} gets uploaded. - */ - FILE_UPLOADED("FILE.UPLOADED", BoxResource.getResourceType(BoxFolder.class)), - - /** - * Triggered when a {@link BoxFile} gets copied. - */ - FILE_COPIED("FILE.COPIED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - - /** - * Triggered when a {@link BoxFile} gets copied. - */ - FILE_MOVED("FILE.MOVED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - - /** - * Triggered when a {@link BoxFile} is previewed. - */ - FILE_PREVIEWED("FILE.PREVIEWED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - - /** - * Triggered when a {@link BoxFile} is downloaded. - */ - FILE_DOWNLOADED("FILE.DOWNLOADED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - - /** - * Triggered when a {@link BoxFile} gets locked. - */ - FILE_LOCKED("FILE.LOCKED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - - /** - * Triggered when a {@link BoxFile} gets unlocked. - */ - FILE_UNLOCKED("FILE.UNLOCKED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - - /** - * Triggered when a {@link BoxFile} is trashed. Do not include file versions for now. - */ - FILE_TRASHED("FILE.TRASHED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - - /** - * Triggered when a {@link BoxFile} gets restored. - */ - FILE_RESTORED("FILE.RESTORED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - - /** - * Triggered when a {@link BoxFile} is permanently deleted. - */ - FILE_DELETED("FILE.DELETED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - - /** - * Triggered when a {@link BoxFile} is renamed. - */ - FILE_RENAMED("FILE.RENAMED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - - /** - * Triggered when a {@link BoxComment} was created. - */ - COMMENT_CREATED("COMMENT.CREATED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - - /** - * Triggered when a {@link BoxComment} was updated. - */ - COMMENT_UPDATED("COMMENT.UPDATED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - - /** - * Triggered when a {@link BoxComment} was deleted. - */ - COMMENT_DELETED("COMMENT.DELETED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - - /** - * Triggered when a {@link BoxTaskAssignment} is created. - */ - TASK_ASSIGNMENT_CREATED("TASK_ASSIGNMENT.CREATED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - - /** - * Triggered when a {@link BoxTaskAssignment} is updated. - */ - TASK_ASSIGNMENT_UPDATED("TASK_ASSIGNMENT.UPDATED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - - /** - * Triggered when a metadata template is associated to a {@link BoxFile} or {@link BoxFolder}. - */ - METADATA_INSTANCE_CREATED("METADATA_INSTANCE.CREATED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - - /** - * Triggered when a field is updated in the metadata on a {@link BoxFile} or {@link BoxFolder}. - */ - METADATA_INSTANCE_UPDATED("METADATA_INSTANCE.UPDATED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - - /** - * Triggered when a metadata template is removed from a {@link BoxFile} or {@link BoxFolder}. - */ - METADATA_INSTANCE_DELETED("METADATA_INSTANCE.DELETED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - - /** - * Triggered when a {@link BoxWebHook} is deleted. - */ - WEBHOOK_DELETED("WEBHOOK.DELETED"), - - /** - * Triggered when a {@link BoxCollaboration} is created. - */ - COLLABORATION_CREATED("COLLABORATION.CREATED", - BoxResource.getResourceType(BoxFolder.class)), - - /** - * Triggered when a {@link BoxCollaboration} is accepted. - */ - COLLABORATION_ACCEPTED("COLLABORATION.ACCEPTED", - BoxResource.getResourceType(BoxFolder.class)), - - /** - * Triggered when a {@link BoxCollaboration} is rejected. - */ - COLLABORATION_REJECTED("COLLABORATION.REJECTED", - BoxResource.getResourceType(BoxFolder.class)), - - /** - * Triggered when a {@link BoxCollaboration} is removed. - */ - COLLABORATION_REMOVED("COLLABORATION.REMOVED", - BoxResource.getResourceType(BoxFolder.class)), - - /** - * Triggered when a {@link BoxCollaboration} is updated. - */ - COLLABORATION_UPDATED("COLLABORATION.UPDATED", - BoxResource.getResourceType(BoxFolder.class)), - - /** - * Triggered when a {@link BoxSharedLink} is created. - */ - SHARED_LINK_CRATED("SHARED_LINK.CREATED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - - /** - * Triggered when a {@link BoxSharedLink} is updated. - */ - SHARED_LINK_UPDATED("SHARED_LINK.UPDATED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - - /** - * Triggered when a {@link BoxSharedLink} is deleted. - */ - SHARED_LINK_DELETED("SHARED_LINK.DELETED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - - /** - * Triggered when {@link BoxSignRequest} is completed. - */ - SIGN_REQUEST_COMPLETED("SIGN_REQUEST.COMPLETED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - /** - * Triggered when {@link BoxFile} is declined. - */ - SIGN_REQUEST_DECLINED("SIGN_REQUEST.DECLINED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - /** - * Triggered when {@link BoxFile} is expired. - */ - SIGN_REQUEST_EXPIRED("SIGN_REQUEST.EXPIRED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - /** - * Triggered when a signer's email is bounced. - */ - SIGN_REQUEST_SIGNER_EMAIL_BOUNCED("SIGN_REQUEST.SIGNER_EMAIL_BOUNCED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - /** - * Triggered when the signature request is signed. - */ - SIGN_REQUEST_SIGNER_SIGNED("SIGN_REQUEST.SIGNER_SIGNED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - /** - * Triggered when the signature is requested from the signer. - */ - SIGN_REQUEST_SIGNATURE_REQUESTED("SIGN_REQUEST.SIGNATURE_REQUESTED", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)), - /** - * Triggered when the signature request could not be processed. - */ - SIGN_REQUEST_ERROR_FINALIZING("SIGN_REQUEST.ERROR_FINALIZING", - BoxResource.getResourceType(BoxFolder.class), BoxResource.getResourceType(BoxFile.class)); - - /** - * @see #getValue() - */ - private final String value; - - /** - * @see #getTypes() - */ - private final String[] types; - - /** - * Constructor. - * - * @param value {@link #getValue()} - * @param types {@link #getTypes()} - */ - Trigger(String value, String... types) { - this.value = value; - this.types = types; - } - - /** - * @param value value to get the Trigger enum value for - * @return Trigger for given value - */ - public static Trigger fromValue(String value) { - for (Trigger trigger : Trigger.values()) { - if (trigger.getValue().equals(value)) { - return trigger; - } - } - throw new IllegalArgumentException("No Trigger for value: " + value); - } - - /** - * @return {@link String} representation for {@link Trigger}. - */ - public String getValue() { - return this.value; - } - - /** - * @return Supported types for a web-hook. - */ - public String[] getTypes() { - return this.types; - } - - } - - /** - * WebHook target - file or folder. - */ - public static class Target { - - /** - * @see #getType() - */ - private final String type; - - /** - * @see #getId() - */ - private final String id; - - /** - * Constructor. - * - * @param type {@link #getType()} - * @param id {@link #getId()} - */ - public Target(String type, String id) { - this.type = type; - this.id = id; - } - - /** - * @return Type of target. - * @see BoxResourceType - */ - public String getType() { - return this.type; - } - - /** - * @return {@link BoxResource#getID()} - */ - public String getId() { - return this.id; - } - - } - - /** - * Contains information for a {@link BoxWebHook} instance. - */ - public class Info extends BoxResource.Info { - - /** - * @see #getTarget() - */ - private Target target; - - /** - * @see #getAddress() - */ - private URL address; - - /** - * @see #getTriggers() - */ - private Set triggers; - - /** - * @see #getCreatedBy() - */ - private BoxUser.Info createdBy; - - /** - * @see #getCreatedAt() - */ - private Date createdAt; - - /** - * Constructs an Info object with current target. - */ - public Info() { - super(); - this.target = BoxWebHook.this.getInfo().getTarget(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - this(Json.parse(json).asObject()); - } - - /** - * Constructor. - * - * @param jsonObject a parsed JSON object - */ - public Info(JsonObject jsonObject) { - super(jsonObject); - - if (jsonObject.get(JSON_KEY_TARGET) != null) { - JsonObject targetObject = jsonObject.get(JSON_KEY_TARGET).asObject(); - String targetType = targetObject.get(JSON_KEY_TARGET_TYPE).asString(); - String targetId = targetObject.get(JSON_KEY_TARGET_ID).asString(); - this.target = new Target(targetType, targetId); - } - - if (jsonObject.get(JSON_KEY_TRIGGERS) != null) { - this.triggers = new HashSet<>( - CollectionUtils.map(jsonObject.get(JSON_KEY_TRIGGERS).asArray().values(), JSON_VALUE_TO_TRIGGER) - ); - } - if (jsonObject.get(JSON_KEY_ADDRESS) != null) { - try { - this.address = new URL(jsonObject.get(JSON_KEY_ADDRESS).asString()); - } catch (MalformedURLException e) { - throw new RuntimeException(e); - } - } - - if (jsonObject.get(JSON_KEY_CREATED_BY) != null) { - JsonObject userJSON = jsonObject.get(JSON_KEY_CREATED_BY).asObject(); - if (this.createdBy == null) { - BoxUser user = new BoxUser(getAPI(), userJSON.get(JSON_KEY_TARGET_ID).asString()); - this.createdBy = user.new Info(userJSON); - } else { - this.createdBy.update(userJSON); - } - } - - if (jsonObject.get(JSON_KEY_CREATED_AT) != null) { - try { - this.createdAt = BoxDateFormat.parse(jsonObject.get(JSON_KEY_CREATED_AT).asString()); - } catch (ParseException e) { - assert false : "A ParseException indicates a bug in the SDK."; - } - } - } - - /** - * {@inheritDoc} - */ - @Override - public BoxWebHook getResource() { - return BoxWebHook.this; - } - - /** - * @return WebHook target / {@link BoxResource}. - */ - public Target getTarget() { - return this.target; - } - - /** - * @return {@link URL} where the notification should send to. - */ - public URL getAddress() { - return this.address; - } - - /** - * Setter for {@link #getAddress()}. - * - * @param address {@link #getAddress()} - * @return itself - */ - public Info setAddress(URL address) { - if (address == null) { - throw new IllegalArgumentException("Address cannot be null"); - } - if (this.address == null || !this.address.equals(address)) { - this.address = address; - this.addPendingChange(JSON_KEY_ADDRESS, address.toExternalForm()); - } - - return this; - } - - /** - * @return Events this webhook is interested in. - */ - public Set getTriggers() { - return this.triggers; - } - - /** - * Sets {@link #getTriggers()}. - * - * @param triggers {@link #getTriggers()} - * @return itself - */ - public Info setTriggers(BoxWebHook.Trigger... triggers) { - return this.setTriggers(new HashSet<>(Arrays.asList(triggers))); - } - - /** - * Setter for {@link #getTriggers()}. - * - * @param triggers {@link #getTriggers()} - * @return itself - */ - public Info setTriggers(Set triggers) { - validateTriggers(this.target.getType(), triggers); - - JsonArray oldValue; - if (this.triggers != null) { - oldValue = toJsonArray(CollectionUtils.map(this.triggers, TRIGGER_TO_VALUE)); - } else { - oldValue = null; - } - JsonArray newValue = toJsonArray(CollectionUtils.map(triggers, TRIGGER_TO_VALUE)); - - if (!newValue.equals(oldValue)) { - this.triggers = Collections.unmodifiableSet(triggers); - this.addPendingChange(JSON_KEY_TRIGGERS, newValue); - } - - return this; - } - - /** - * @return Info about the user who created this webhook. - */ - public BoxUser.Info getCreatedBy() { - return this.createdBy; - } - - /** - * @return the time this webhook was created. - */ - public Date getCreatedAt() { - return this.createdAt; - } - - /** - * {@inheritDoc} - */ - @Override - void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - if (memberName.equals(JSON_KEY_TARGET)) { - String targetType = value.asObject().get(JSON_KEY_TARGET_TYPE).asString(); - String targetId = value.asObject().get(JSON_KEY_TARGET_ID).asString(); - this.target = new Target(targetType, targetId); - } else if (memberName.equals(JSON_KEY_TRIGGERS)) { - this.triggers = new HashSet<>( - CollectionUtils.map(value.asArray().values(), JSON_VALUE_TO_TRIGGER) - ); - } else if (memberName.equals(JSON_KEY_ADDRESS)) { - this.address = new URL(value.asString()); - } else if (memberName.equals(JSON_KEY_CREATED_BY)) { - JsonObject userJSON = value.asObject(); - if (this.createdBy == null) { - String userID = userJSON.get(JSON_KEY_ID).asString(); - BoxUser user = new BoxUser(getAPI(), userID); - this.createdBy = user.new Info(userJSON); - } else { - this.createdBy.update(userJSON); - } - } else if (memberName.equals("created_at")) { - this.createdAt = BoxDateFormat.parse(value.asString()); - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - - } - -} diff --git a/src/main/java/com/box/sdk/BoxWebHookSignatureVerifier.java b/src/main/java/com/box/sdk/BoxWebHookSignatureVerifier.java deleted file mode 100644 index 5f490ddd4..000000000 --- a/src/main/java/com/box/sdk/BoxWebHookSignatureVerifier.java +++ /dev/null @@ -1,224 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.internal.pool.MacPool; -import java.nio.charset.Charset; -import java.security.InvalidKeyException; -import java.security.MessageDigest; -import java.util.Collections; -import java.util.EnumSet; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; -import javax.crypto.Mac; -import javax.crypto.spec.SecretKeySpec; - -/** - * Signature verifier for Webhook Payload. - * - * @since 2.2.1 - */ -public class BoxWebHookSignatureVerifier { - - /** - * Reference to UTF_8 {@link Charset}. - */ - private static final Charset UTF_8 = Charset.forName("UTF-8"); - - /** - * Versions supported by this implementation. - */ - private static final Set SUPPORTED_VERSIONS = Collections.singleton("1"); - - /** - * Algorithms supported by this implementation. - */ - private static final Set SUPPORTED_ALGORITHMS = Collections.unmodifiableSet( - EnumSet.of(BoxSignatureAlgorithm.HMAC_SHA256)); - - /** - * {@link Mac}-s pool. - */ - private static final MacPool MAC_POOL = new MacPool(); - - /** - * Primary key setup within the Box. - */ - private final String primarySignatureKey; - - /** - * Secondary key setup within the Box. - */ - private final String secondarySignatureKey; - - /** - * Creates a new instance of verifier specified with given primary and secondary keys. Primary key and secondary key - * are needed for rotating purposes, at least at one has to be valid. - * - * @param primarySignatureKey primary signature key for web-hooks (can not be null) - * @param secondarySignatureKey secondary signature key for web-hooks (can be null) - * @throws IllegalArgumentException primary key can not be null - */ - public BoxWebHookSignatureVerifier(String primarySignatureKey, String secondarySignatureKey) { - if (primarySignatureKey == null && secondarySignatureKey == null) { - throw new IllegalArgumentException("At least primary or secondary signature key must be provided!"); - } - - this.primarySignatureKey = primarySignatureKey; - this.secondarySignatureKey = secondarySignatureKey; - } - - /** - * Verifies given web-hook information. - * - * @param signatureVersion signature version received from web-hook - * @param signatureAlgorithm signature algorithm received from web-hook - * @param primarySignature primary signature received from web-hook - * @param secondarySignature secondary signature received from web-hook - * @param webHookPayload payload of web-hook - * @param deliveryTimestamp devilery timestamp received from web-hook - * @return true, if given payload is successfully verified against primary and secondary signatures, false otherwise - */ - public boolean verify(String signatureVersion, String signatureAlgorithm, String primarySignature, - String secondarySignature, String webHookPayload, String deliveryTimestamp) { - - // enforce versions supported by this implementation - if (!SUPPORTED_VERSIONS.contains(signatureVersion)) { - return false; - } - - // enforce algorithms supported by this implementation - BoxSignatureAlgorithm algorithm = BoxSignatureAlgorithm.byName(signatureAlgorithm); - if (!SUPPORTED_ALGORITHMS.contains(algorithm)) { - return false; - } - - // check primary key signature if primary key exists - if (this.primarySignatureKey != null && this.verify(this.primarySignatureKey, algorithm, primarySignature, - webHookPayload, deliveryTimestamp)) { - return true; - } - - // check secondary key signature if secondary key exists - if (this.secondarySignatureKey != null && this.verify(this.secondarySignatureKey, algorithm, secondarySignature, - webHookPayload, deliveryTimestamp)) { - return true; - } - - // default strategy is false, to minimize security issues - return false; - } - - /** - * Verifies a provided signature. - * - * @param key for which signature key - * @param actualAlgorithm current signature algorithm - * @param actualSignature current signature - * @param webHookPayload for signing - * @param deliveryTimestamp for signing - * @return true if verification passed - */ - private boolean verify(String key, BoxSignatureAlgorithm actualAlgorithm, String actualSignature, - String webHookPayload, String deliveryTimestamp) { - if (actualSignature == null) { - return false; - } - - byte[] actual = Base64.decode(actualSignature); - byte[] expected = this.signRaw(actualAlgorithm, key, webHookPayload, deliveryTimestamp); - - return MessageDigest.isEqual(expected, actual); - } - - /** - * Calculates signature for a provided information. - * - * @param algorithm for which algorithm - * @param key used by signing - * @param webHookPayload for singing - * @param deliveryTimestamp for signing - * @return calculated signature - */ - public String sign(BoxSignatureAlgorithm algorithm, String key, String webHookPayload, String deliveryTimestamp) { - return Base64.encode(this.signRaw(algorithm, key, webHookPayload, deliveryTimestamp)); - } - - /** - * Calculates signature for a provided information. - * - * @param algorithm for which algorithm - * @param key used by signing - * @param webHookPayload for singing - * @param deliveryTimestamp for signing - * @return calculated signature - */ - private byte[] signRaw(BoxSignatureAlgorithm algorithm, String key, String webHookPayload, - String deliveryTimestamp) { - Mac mac = MAC_POOL.acquire(algorithm.javaProviderName); - try { - mac.init(new SecretKeySpec(key.getBytes(UTF_8), algorithm.javaProviderName)); - mac.update(UTF_8.encode(webHookPayload)); - mac.update(UTF_8.encode(deliveryTimestamp)); - return mac.doFinal(); - } catch (InvalidKeyException e) { - throw new IllegalArgumentException("Invalid key: ", e); - } finally { - MAC_POOL.release(mac); - } - } - - /** - * Box Signature Algorithms. - */ - public enum BoxSignatureAlgorithm { - - /** - * HmacSHA256 algorithm. - */ - HMAC_SHA256("HmacSHA256", "HmacSHA256"); - - /** - * @see #byName(String) - */ - private static final Map ALGORITHM_BY_NAME; - - static { - Map algorithmByName = new ConcurrentHashMap(); - for (BoxSignatureAlgorithm algorithm : BoxSignatureAlgorithm.values()) { - algorithmByName.put(algorithm.name, algorithm); - } - ALGORITHM_BY_NAME = Collections.unmodifiableMap(algorithmByName); - } - - /** - * Algorithm name by Box. - */ - private final String name; - /** - * Algorithm name according to the Java provider. - */ - private final String javaProviderName; - - /** - * Constructor. - * - * @param name algorithm name by Box - * @param javaProviderName algorithm name according to the Java provider - */ - BoxSignatureAlgorithm(String name, String javaProviderName) { - this.name = javaProviderName; - this.javaProviderName = javaProviderName; - } - - /** - * Resolves {@link BoxSignatureAlgorithm} according to its name. - * - * @param name of algorithm - * @return resolved {@link BoxSignatureAlgorithm} or null if does not exist - */ - private static BoxSignatureAlgorithm byName(String name) { - return ALGORITHM_BY_NAME.get(name); - } - } - -} diff --git a/src/main/java/com/box/sdk/BoxWebLink.java b/src/main/java/com/box/sdk/BoxWebLink.java deleted file mode 100644 index b596d33f5..000000000 --- a/src/main/java/com/box/sdk/BoxWebLink.java +++ /dev/null @@ -1,284 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.sharedlink.BoxSharedLinkWithoutPermissionsRequest; -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.MalformedURLException; -import java.net.URL; - -/** - * Represents an individual WebLink file on Box. This class can be used to retrieve the link's URL or perform other - * common file operations (move, copy, delete, etc.). - * - *

    Unless otherwise noted, the methods in this class can throw an unchecked {@link BoxAPIException} (unchecked - * meaning that the compiler won't force you to handle it) if an error occurs. If you wish to implement custom error - * handling for errors related to the Box REST API, you should capture this exception explicitly.

    - */ -@BoxResourceType("web_link") -public class BoxWebLink extends BoxItem { - - /** - * An array of all possible weblink fields that can be requested when calling {@link #getInfo(String...)}. - */ - public static final String[] ALL_FIELDS = {"type", "id", "sequence_id", "etag", "name", "url", "description", - "path_collection", "created_at", "modified_at", "trashed_at", "purged_at", "created_by", "modified_by", - "owned_by", "shared_link", "parent", "item_status", "collections"}; - - /** - * Copy URL Template. - */ - public static final URLTemplate COPY_URL_TEMPLATE = new URLTemplate("web_links/%s/copy"); - /** - * Web Link URL Template. - */ - public static final URLTemplate WEB_LINK_URL_TEMPLATE = new URLTemplate("web_links/%s"); - - /** - * Constructs a BoxWebLink for a weblink with a given ID. - * - * @param api the API connection to be used by the weblink. - * @param id the ID of the weblink. - */ - public BoxWebLink(BoxAPIConnection api, String id) { - super(api, id); - } - - /** - * Creates a shared link. - * - * @param sharedLinkRequest Shared link to create - * @return Created shared link. - */ - public BoxSharedLink createSharedLink(BoxSharedLinkWithoutPermissionsRequest sharedLinkRequest) { - return createSharedLink(sharedLinkRequest.asSharedLink()); - } - - private BoxSharedLink createSharedLink(BoxSharedLink sharedLink) { - BoxWebLink.Info info = new BoxWebLink.Info(); - info.setSharedLink(sharedLink); - - this.updateInfo(info); - return info.getSharedLink(); - } - - - @Override - public BoxWebLink.Info copy(BoxFolder destination) { - return this.copy(destination, null); - } - - @Override - public BoxWebLink.Info copy(BoxFolder destination, String newName) { - URL url = COPY_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - - JsonObject parent = new JsonObject(); - parent.add("id", destination.getID()); - - JsonObject copyInfo = new JsonObject(); - copyInfo.add("parent", parent); - if (newName != null) { - copyInfo.add("name", newName); - } - - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "POST"); - request.setBody(copyInfo.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - BoxWebLink copiedWebLink = new BoxWebLink(this.getAPI(), responseJSON.get("id").asString()); - return copiedWebLink.new Info(responseJSON); - } - } - - /** - * Deletes this weblink by moving it to the trash. - */ - public void delete() { - URL url = WEB_LINK_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), url, "DELETE"); - request.send().close(); - } - - @Override - public BoxItem.Info move(BoxFolder destination) { - return this.move(destination, null); - } - - @Override - public BoxItem.Info move(BoxFolder destination, String newName) { - URL url = WEB_LINK_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - - JsonObject parent = new JsonObject(); - parent.add("id", destination.getID()); - - JsonObject updateInfo = new JsonObject(); - updateInfo.add("parent", parent); - if (newName != null) { - updateInfo.add("name", newName); - } - - request.setBody(updateInfo.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - BoxWebLink movedWebLink = new BoxWebLink(this.getAPI(), responseJSON.get("id").asString()); - return movedWebLink.new Info(responseJSON); - } - } - - /** - * Renames this weblink. - * - * @param newName the new name of the weblink. - */ - public void rename(String newName) { - URL url = WEB_LINK_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - - JsonObject updateInfo = new JsonObject(); - updateInfo.add("name", newName); - - request.setBody(updateInfo.toString()); - request.send().close(); - } - - @Override - public BoxWebLink.Info getInfo(String... fields) { - URL url = WEB_LINK_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - if (fields.length > 0) { - String queryString = new QueryStringBuilder().appendParam("fields", fields).toString(); - url = WEB_LINK_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), queryString, this.getID()); - } - - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "GET"); - try (BoxJSONResponse response = request.send()) { - return new Info(response.getJSON()); - } - } - - /** - * Updates the information about this weblink with any info fields that have been modified locally. - * - *

    The only fields that will be updated are the ones that have been modified locally. For example, the following - * code won't update any information (or even send a network request) since none of the info's fields were - * changed:

    - * - *
    BoxWebLink webLink = new BoxWebLink(api, id);
    -     * BoxWebLink.Info info = webLink.getInfo();
    -     * webLink.updateInfo(info);
    - * - * @param info the updated info. - */ - public void updateInfo(BoxWebLink.Info info) { - URL url = WEB_LINK_URL_TEMPLATE.build(this.getAPI().getBaseURL(), this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - request.setBody(info.getPendingChanges()); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - info.update(jsonObject); - } - } - - @Override - public BoxWebLink.Info setCollections(BoxCollection... collections) { - JsonArray jsonArray = new JsonArray(); - for (BoxCollection collection : collections) { - JsonObject collectionJSON = new JsonObject(); - collectionJSON.add("id", collection.getID()); - jsonArray.add(collectionJSON); - } - JsonObject infoJSON = new JsonObject(); - infoJSON.add("collections", jsonArray); - - String queryString = new QueryStringBuilder().appendParam("fields", ALL_FIELDS).toString(); - URL url = WEB_LINK_URL_TEMPLATE.buildWithQuery(this.getAPI().getBaseURL(), queryString, this.getID()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "PUT"); - request.setBody(infoJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - return new Info(jsonObject); - } - } - - /** - * Contains information about a BoxWebLink. - */ - public class Info extends BoxItem.Info { - private URL linkURL; - private String description; - - /** - * Constructs an empty Info object. - */ - public Info() { - super(); - } - - /** - * Constructs an Info object by parsing information from a JSON string. - * - * @param json the JSON string to parse. - */ - public Info(String json) { - super(json); - } - - /** - * Constructs an Info object using an already parsed JSON object. - * - * @param jsonObject the parsed JSON object. - */ - public Info(JsonObject jsonObject) { - super(jsonObject.toString()); - } - - @Override - public BoxWebLink getResource() { - return BoxWebLink.this; - } - - /** - * Gets the description of this weblink. - * - * @return the description of this weblink. - */ - public String getDescription() { - return this.description; - } - - /** - * Gets the URL this weblink points to. - * - * @return the URL this weblink points to. - */ - public URL getLinkURL() { - return this.linkURL; - } - - @Override - protected void parseJSONMember(JsonObject.Member member) { - super.parseJSONMember(member); - - String memberName = member.getName(); - JsonValue value = member.getValue(); - try { - if (memberName.equals("url")) { - try { - if (value.asString().isEmpty()) { - this.linkURL = null; - } else { - this.linkURL = new URL(value.asString()); - } - } catch (MalformedURLException e) { - throw new BoxAPIException("Couldn't parse url for weblink", e); - } - } else if (memberName.equals("description")) { - this.description = value.asString(); - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - } -} diff --git a/src/main/java/com/box/sdk/BoxZip.java b/src/main/java/com/box/sdk/BoxZip.java deleted file mode 100644 index 901d193e5..000000000 --- a/src/main/java/com/box/sdk/BoxZip.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BinaryBodyUtils.writeStream; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import java.io.OutputStream; -import java.net.URL; -import java.util.List; - -/** - * Provides methods to allow users to download multiple files and folders as a single zip file. Users can download - * up to either 32GB or 10,000 files in one batch (whichever limitation is hit first) as a single zip file. - */ -public class BoxZip { - /** - * Zip URL Template. - */ - public static final URLTemplate ZIP_URL_TEMPLATE = new URLTemplate("zip_downloads"); - private final BoxAPIConnection api; - - /** - * Constructs a Zip to be used by everything. - * - * @param api the API connection to be used by the Zip. - */ - public BoxZip(BoxAPIConnection api) { - this.api = api; - } - - /** - * Creates a zip of multiple files and folders. - * - * @param name the name of the zip file to be created - * @param items list of files or folders to be part of the created zip - * @return information about the created zip file - */ - public BoxZipInfo create(String name, List items) { - JsonArray itemsArray = new JsonArray(); - for (BoxZipItem item : items) { - itemsArray.add(item.getJSONObject()); - } - JsonObject requestJSON = new JsonObject(); - requestJSON.add("items", itemsArray); - requestJSON.add("download_file_name", name); - - URL url = ZIP_URL_TEMPLATE.build(this.getAPI().getBaseURL()); - BoxJSONRequest request = new BoxJSONRequest(this.getAPI(), url, "POST"); - request.setBody(requestJSON.toString()); - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - return new BoxZipInfo(responseJSON); - } - } - - /** - * Creates a zip and downloads it to a given OutputStream. - * - * @param name the name of the zip file to be created - * @param items list of files or folders to be part of the created zip - * @param output the stream to where the zip file will be written. - * @return information about status of the download - */ - public BoxZipDownloadStatus download(String name, List items, OutputStream output) { - return this.download(name, items, output, null); - } - - /** - * Creates a zip and downloads its contents its to a given OutputStream. - * - * @param name the name of the zip file to be created - * @param items list of files or folders to be part of the created zip - * @param output the stream to where the zip file will be written. - * @param listener a listener for monitoring the download's progress. - * @return information about status of the download - */ - public BoxZipDownloadStatus download( - String name, List items, OutputStream output, ProgressListener listener - ) { - BoxZipInfo zipInfo = this.create(name, items); - BoxAPIRequest request = new BoxAPIRequest(this.getAPI(), zipInfo.getDownloadURL(), "GET"); - BoxAPIResponse response = request.send(); - writeStream(response, output, listener); - BoxJSONRequest statusRequest = new BoxJSONRequest(this.getAPI(), zipInfo.getStatusURL(), "GET"); - try (BoxJSONResponse statusResponse = statusRequest.send()) { - JsonObject statusResponseJSON = Json.parse(statusResponse.getJSON()).asObject(); - return new BoxZipDownloadStatus(statusResponseJSON); - } - } - - /** - * Gets the API connection used by this resource. - * - * @return the API connection used by this resource. - */ - public BoxAPIConnection getAPI() { - return this.api; - } -} diff --git a/src/main/java/com/box/sdk/BoxZipConflict.java b/src/main/java/com/box/sdk/BoxZipConflict.java deleted file mode 100644 index fd333b5bf..000000000 --- a/src/main/java/com/box/sdk/BoxZipConflict.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.util.ArrayList; -import java.util.List; - -/** - * Represents a conflict that occurs between items that have the same name. - */ -public class BoxZipConflict extends BoxJSONObject { - private List items; - - /** - * Constructs a BoxZipDownloadStatus with default settings. - */ - public BoxZipConflict() { - } - - /** - * Constructs a BoxZipDownloadStatus from a JSON string. - * - * @param json the JSON encoded enterprise. - */ - public BoxZipConflict(String json) { - super(json); - } - - BoxZipConflict(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the items that conflict because they have the same name. - * - * @return the items that conflict because they have the same name. - */ - public List getItems() { - return this.items; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - JsonArray value = member.getValue().asArray(); - List conflictItems = new ArrayList(value.size()); - for (JsonValue item : value) { - conflictItems.add(new BoxZipConflictItem(item.asObject())); - } - this.items = conflictItems; - } -} diff --git a/src/main/java/com/box/sdk/BoxZipConflictItem.java b/src/main/java/com/box/sdk/BoxZipConflictItem.java deleted file mode 100644 index a16ee4ae0..000000000 --- a/src/main/java/com/box/sdk/BoxZipConflictItem.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; - -/** - * Represents items that have naming conflicts when creating a zip file. - */ -public class BoxZipConflictItem extends BoxJSONObject { - private String id; - private String type; - private String originalName; - private String downloadName; - - /** - * Constructs a BoxZipNameConflict with default settings. - */ - public BoxZipConflictItem() { - } - - /** - * Constructs a BoxZipNameConflict from a JSON string. - * - * @param json the JSON encoded enterprise. - */ - public BoxZipConflictItem(String json) { - super(json); - } - - BoxZipConflictItem(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the ID of the item that has the conflict. - * - * @return the ID of the item that has the conflict. - */ - public String getID() { - return this.id; - } - - /** - * Gets the type of the item that has the conflict. - * - * @return the type of the item that has the conflict. - */ - public String getType() { - return this.type; - } - - /** - * Gets the original name of the item that has the conflict. - * - * @return the original name of the item that has the conflict. - */ - public String getOriginalName() { - return this.originalName; - } - - /** - * Gets the new name of the item when it downloads that resolves the conflict. - * - * @return the new name of the item when it downloads that resolves the conflict. - */ - public String getDownloadName() { - return this.downloadName; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - JsonValue value = member.getValue(); - String memberName = member.getName(); - if (memberName.equals("id")) { - this.id = value.asString(); - } else if (memberName.equals("type")) { - this.type = value.asString(); - } else if (memberName.equals("original_name")) { - this.originalName = value.asString(); - } else if (memberName.equals("download_name")) { - this.downloadName = value.asString(); - } - } -} diff --git a/src/main/java/com/box/sdk/BoxZipDownloadStatus.java b/src/main/java/com/box/sdk/BoxZipDownloadStatus.java deleted file mode 100644 index f088530d9..000000000 --- a/src/main/java/com/box/sdk/BoxZipDownloadStatus.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; - -/** - * Represents the download status of a zip file. - */ -public class BoxZipDownloadStatus extends BoxJSONObject { - private int totalFileCount; - private int downloadFileCount; - private int skippedFileCount; - private int skippedFolderCount; - private State state; - - /** - * Constructs a BoxZipDownloadStatus with default settings. - */ - public BoxZipDownloadStatus() { - } - - /** - * Constructs a BoxZipDownloadStatus from a JSON string. - * - * @param json the JSON encoded enterprise. - */ - public BoxZipDownloadStatus(String json) { - super(json); - } - - BoxZipDownloadStatus(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the total number of files in the zip. - * - * @return the total number of files in the zip. - */ - public int getTotalFileCount() { - return this.totalFileCount; - } - - /** - * Gets the number of files in the zip that were downloaded. - * - * @return the number of files in the zip that were downloaded. - */ - public int getDownloadFileCount() { - return this.downloadFileCount; - } - - /** - * Gets the number of files in the zip that were skipped when downloading. - * - * @return the number of files in the zip that were skipped when downloading. - */ - public int getSkippedFileCount() { - return this.skippedFileCount; - } - - /** - * Gets the number of folders in the zip that were skipped when downloading. - * - * @return the number of folder in the zip that were skipped when downloading. - */ - public int getSkippedFolderCount() { - return this.skippedFolderCount; - } - - /** - * Gets the state of the download for the zip file. - * - * @return the state of the download for the zip file - */ - public State getState() { - return this.state; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - JsonValue value = member.getValue(); - String memberName = member.getName(); - if (memberName.equals("total_file_count")) { - this.totalFileCount = value.asInt(); - } else if (memberName.equals("downloaded_file_count")) { - this.downloadFileCount = value.asInt(); - } else if (memberName.equals("skipped_file_count")) { - this.skippedFileCount = value.asInt(); - } else if (memberName.equals("skipped_folder_count")) { - this.skippedFolderCount = value.asInt(); - } else if (memberName.equals("state")) { - this.state = State.fromJSONValue(value.asString()); - } - } - - /** - * Enumerates the possible download states of a zip. - */ - public enum State { - /** - * Succeeded in downloading. - */ - SUCCEEDED("succeeded"), - - /** - * Downloading in progress. - */ - IN_PROGRESS("in_progress"), - - /** - * Failed when downloading. - */ - FAILED("failed"); - - private final String jsonValue; - - State(String jsonValue) { - this.jsonValue = jsonValue; - } - - static State fromJSONValue(String jsonValue) { - return State.valueOf(jsonValue.toUpperCase(java.util.Locale.ROOT)); - } - - String toJSONValue() { - return this.jsonValue; - } - } -} diff --git a/src/main/java/com/box/sdk/BoxZipInfo.java b/src/main/java/com/box/sdk/BoxZipInfo.java deleted file mode 100644 index e3309ae62..000000000 --- a/src/main/java/com/box/sdk/BoxZipInfo.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * Represents items that have naming conflicts when creating a zip file. - */ -public class BoxZipInfo extends BoxJSONObject { - private URL downloadURL; - private URL statusURL; - private Date expiresAt; - private List nameConflicts; - - /** - * Constructs a BoxZipDownloadStatus with default settings. - */ - public BoxZipInfo() { - } - - /** - * Constructs a BoxZipDownloadStatus from a JSON string. - * - * @param json the JSON encoded enterprise. - */ - public BoxZipInfo(String json) { - super(json); - } - - BoxZipInfo(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the ID of the item that has the conflict. - * - * @return the ID of the item that has the conflict. - */ - public URL getDownloadURL() { - return this.downloadURL; - } - - /** - * Gets the type of the item that has the conflict. - * - * @return the type of the item that has the conflict. - */ - public URL getStatusURL() { - return this.statusURL; - } - - /** - * Gets the original name of the item that has the conflict. - * - * @return the original name of the item that has the conflict. - */ - public Date getExpiresAt() { - return this.expiresAt; - } - - /** - * Gets the new name of the item when it downloads that resolves the conflict. - * - * @return the new name of the item when it downloads that resolves the conflict. - */ - public List getNameConflicts() { - return this.nameConflicts; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - JsonValue value = member.getValue(); - String memberName = member.getName(); - try { - if (memberName.equals("download_url")) { - try { - String urlString = value.asString(); - this.downloadURL = new URL(urlString); - } catch (MalformedURLException e) { - throw new BoxAPIException("Couldn't parse download url for zip", e); - } - } else if (memberName.equals("status_url")) { - try { - String urlString = value.asString(); - this.statusURL = new URL(urlString); - } catch (MalformedURLException e) { - throw new BoxAPIException("Couldn't parse status url for zip", e); - } - } else if (memberName.equals("expires_at")) { - this.expiresAt = BoxDateFormat.parse(value.asString()); - } else if (memberName.equals("name_conflicts")) { - this.nameConflicts = this.parseNameConflicts(value.asArray()); - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } - - private List parseNameConflicts(JsonArray jsonArray) { - List nameConflicts = new ArrayList(jsonArray.size()); - for (JsonValue conflict : jsonArray) { - // We create a "conflictObj" with the arbitrary key name "conflict" in order to allow BoxZipConflict - // to later parse the object to create `List items` (since it can't take in an array) - JsonObject conflictObj = new JsonObject().add("conflict", conflict); - nameConflicts.add(new BoxZipConflict(conflictObj)); - } - return nameConflicts; - } -} diff --git a/src/main/java/com/box/sdk/BoxZipItem.java b/src/main/java/com/box/sdk/BoxZipItem.java deleted file mode 100644 index b46ffa34b..000000000 --- a/src/main/java/com/box/sdk/BoxZipItem.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; - -/** - * Represents a Box item to be included when creating a zip file. - */ -public class BoxZipItem { - private String type; - private String id; - - /** - * Constructs a base BoxZipItem object. - * - * @param type item type, "file" or "folder". - * @param id id of the the item. - */ - public BoxZipItem(String type, String id) { - super(); - this.type = type; - this.id = id; - } - - /** - * Gets the item type. - * - * @return the type of the zip item. - */ - public String getType() { - return this.type; - } - - /** - * Gets the item ID. - * - * @return the ID fo the zip item. - */ - public String getID() { - return this.id; - } - - /** - * Gets a JSON object reprsenting this class. - * - * @return the JSON object reprsenting this class. - */ - public JsonObject getJSONObject() { - JsonObject jsonObj = new JsonObject() - .add("type", this.type) - .add("id", this.id); - return jsonObj; - } - -} diff --git a/src/main/java/com/box/sdk/CreateUserParams.java b/src/main/java/com/box/sdk/CreateUserParams.java deleted file mode 100644 index a2f75f3d8..000000000 --- a/src/main/java/com/box/sdk/CreateUserParams.java +++ /dev/null @@ -1,369 +0,0 @@ -package com.box.sdk; - -import java.util.HashMap; -import java.util.Map; - -/** - * Contains optional parameters for creating a new enterprise user on Box. - */ -public class CreateUserParams { - private Boolean canSeeManagedUsers; - private Boolean isExemptFromDeviceLimits; - private Boolean isExemptFromLoginVerification; - private Boolean isPlatformAccessOnly; - private Boolean isSyncEnabled; - private Boolean isExternalCollabRestricted; - private BoxUser.Role role; - private BoxUser.Status status; - private Long spaceAmount; - private String address; - private String jobTitle; - private String language; - private String phone; - private String timezone; - private String externalAppUserId; - private Map trackingCodes; - - /** - * Gets whether or not the new user will be able to see other enterprise users in their contact list. - * - * @return true if the new user will be able to see other enterprise users in their contact list; otherwise false. - */ - public Boolean getCanSeeManagedUsers() { - return this.canSeeManagedUsers; - } - - /** - * Sets whether or not the new user will be able to see other enterprise users in their contact list. - * - * @param canSeeManagedUsers whether or not the new user will be able to see other enterprise users in their - * contact list. - * @return this CreateUserParams object for chaining. - */ - public CreateUserParams setCanSeeManagedUsers(boolean canSeeManagedUsers) { - this.canSeeManagedUsers = canSeeManagedUsers; - return this; - } - - /** - * Gets whether or not the new user will be exempt from Enterprise device limits. - * - * @return true if the new user will be exempt from Enterprise device limits; otherwise false. - */ - public Boolean getIsExemptFromDeviceLimits() { - return this.isExemptFromDeviceLimits; - } - - /** - * Sets whether or not the new user will be exempt from Enterprise device limits. - * - * @param isExemptFromDeviceLimits whether or not the new user will be exempt from Enterprise device limits. - * @return this CreateUserParams object for chaining. - */ - public CreateUserParams setIsExemptFromDeviceLimits(boolean isExemptFromDeviceLimits) { - this.isExemptFromDeviceLimits = isExemptFromDeviceLimits; - return this; - } - - /** - * Gets whether or not the new user will be required to use two-factor authentication. - * - * @return true if the new user will be required to use two-factor authentication; otherwise false. - */ - public Boolean getIsExemptFromLoginVerification() { - return this.isExemptFromLoginVerification; - } - - /** - * Sets whether or not the new user will be required to use two-factor authentication. - * - * @param isExemptFromLoginVerification whether or not the new user will be required to use two-factor - * authentication. - * @return this CreateUserParams object for chaining. - */ - public CreateUserParams setIsExemptFromLoginVerification(boolean isExemptFromLoginVerification) { - this.isExemptFromLoginVerification = isExemptFromLoginVerification; - return this; - } - - /** - * Gets whether or not the user we are creating is an app user with Box Developer Edition. - * - * @return true if the new user is an app user for Box Developer Addition; otherwise false. - */ - public Boolean getIsPlatformAccessOnly() { - return this.isPlatformAccessOnly; - } - - /** - * Sets whether or not the user we are creating is an app user with Box Developer Edition. - * - * @param isPlatformAccessOnly whether or not the user we are creating is an app user with Box Developer - * Edition. - * @return this CreateUserParams object for chaining. - */ - public CreateUserParams setIsPlatformAccessOnly(boolean isPlatformAccessOnly) { - this.isPlatformAccessOnly = isPlatformAccessOnly; - return this; - } - - /** - * Gets whether or not the new user will be able to use Box Sync. - * - * @return true if the new user will be able to use Box Sync; otherwise false. - */ - public Boolean getIsSyncEnabled() { - return this.isSyncEnabled; - } - - /** - * Sets whether or not the new user will be able to use Box Sync. - * - * @param isSyncEnabled whether or not the new user will be able to use Box Sync. - * @return this CreateUserParams object for chaining. - */ - public CreateUserParams setIsSyncEnabled(boolean isSyncEnabled) { - this.isSyncEnabled = isSyncEnabled; - return this; - } - - /** - * Gets what the new user's enterprise role will be. - * - * @return what the new user's enterprise role will be. - */ - public BoxUser.Role getRole() { - return this.role; - } - - /** - * Sets what the new user's enterprise role will be. - * - * @param role what the new user's enterprise role will be. - * @return this CreateUserParams object for chaining. - */ - public CreateUserParams setRole(BoxUser.Role role) { - this.role = role; - return this; - } - - /** - * Gets what the new user's account status will be. - * - * @return what the new user's account status will be. - */ - public BoxUser.Status getStatus() { - return this.status; - } - - /** - * Sets what the new user's account status will be. - * - * @param status what the new user's account status will be. - * @return this CreateUserParams object for chaining. - */ - public CreateUserParams setStatus(BoxUser.Status status) { - this.status = status; - return this; - } - - /** - * Gets what the new user's total available space will be in bytes. - * - * @return what the new user's total available space will be in bytes. - */ - public Long getSpaceAmount() { - return this.spaceAmount; - } - - /** - * Sets what the new user's total available space will be in bytes. - * - * @param spaceAmount what the new user's total available space will be in bytes. - * @return this CreateUserParams object for chaining. - */ - public CreateUserParams setSpaceAmount(long spaceAmount) { - this.spaceAmount = spaceAmount; - return this; - } - - /** - * Gets what the address of the new user will be. - * - * @return what the address of the new user will be. - */ - public String getAddress() { - return this.address; - } - - /** - * Sets what the address of the new user will be. - * - * @param address what the address of the new user will be. - * @return this CreateUserParams object for chaining. - */ - public CreateUserParams setAddress(String address) { - this.address = address; - return this; - } - - /** - * Gets what the job title of the new user will be. - * - * @return what the job title of the new user will be. - */ - public String getJobTitle() { - return this.jobTitle; - } - - /** - * Sets what the job title of the new user will be. - * - * @param jobTitle what the job title of the new user will be. - * @return this CreateUserParams object for chaining. - */ - public CreateUserParams setJobTitle(String jobTitle) { - this.jobTitle = jobTitle; - return this; - } - - /** - * Gets what the language of the new user will be. - * - * @return what the language of the new user will be. - */ - public String getLanguage() { - return this.language; - } - - /** - * Sets what the language of the new user will be. - * - * @param language what the language of the new user will be. - * @return this CreateUserParams object for chaining. - */ - public CreateUserParams setLanguage(String language) { - this.language = language; - return this; - } - - /** - * Gets what the phone number of the new user will be. - * - * @return what the phone number of the new user will be. - */ - public String getPhone() { - return this.phone; - } - - /** - * Sets what the phone number of the new user will be. - * - * @param phone what the phone number of the new user will be. - * @return this CreateUserParams object for chaining. - */ - public CreateUserParams setPhone(String phone) { - this.phone = phone; - return this; - } - - /** - * Gets what the timezone of the new user will be. - * - * @return what the timezone of the new user will be. - */ - public String getTimezone() { - return this.timezone; - } - - /** - * Sets what the timezone of the new user will be. - * - * @param timezone what the timezone of the new user will be. - * @return this CreateUserParams object for chaining. - */ - public CreateUserParams setTimezone(String timezone) { - this.timezone = timezone; - return this; - } - - /** - * Gets the external app user id that has been set for the app user. - * - * @return the external app user id. - */ - public String getExternalAppUserId() { - return this.externalAppUserId; - } - - /** - * Sets the external app user id. - * - * @param externalAppUserId external app user id. - * @return this CreateUserParams object for chaining. - */ - public CreateUserParams setExternalAppUserId(String externalAppUserId) { - this.externalAppUserId = externalAppUserId; - return this; - } - - /** - * Gets whether this user is allowed or not to collaborate with users outside their enterprise. - * - * @return true if the user is not able to collaborate with users outside their enterpise; otherwise false. - */ - public Boolean getIsExternalCollabRestricted() { - return this.isExternalCollabRestricted; - } - - /** - * Sets whether this user is allowed or not to collaborate with users outside their enterprise. - * - * @param isExternalCollabRestricted whether the user is allowed to collaborate with users outside their enterprise. - * @return this CreateUserParams object for chaining. - */ - public CreateUserParams setIsExternalCollabRestricted(boolean isExternalCollabRestricted) { - this.isExternalCollabRestricted = isExternalCollabRestricted; - return this; - } - - /** - * Gets the map of tracking codes. Tracking codes allow an admin to generate reports from the admin console and - * assign an attribute to a specific group of users. This setting must be enabled for an - * enterprise before it can be used. - * - * @return map of tracking codes. - */ - public Map getTrackingCodes() { - return this.trackingCodes; - } - - /** - * Sets the map of tracking codes. Tracking codes allow an admin to generate reports from the admin console and - * assign an attribute to a specific group of users. This setting must be enabled for an - * enterprise before it can be used. - * - * @param trackingCodes map of tracking codes. - * @return this CreateUserParams object for chaining. - */ - public CreateUserParams setTrackingCodes(Map trackingCodes) { - this.trackingCodes = trackingCodes; - return this; - } - - /** - * Add an element the map of tracking codes. Tracking codes allow an admin to generate reports from the admin - * console and assign an attribute to a specific group of users. This setting must be enabled for an - * enterprise before it can be used. - * @param key of a tracking code - * @param value of a tracking code - * @return this CreateUserParams object for chaining. - */ - public CreateUserParams addTrackingCode(String key, String value) { - if (this.trackingCodes == null) { - this.trackingCodes = new HashMap<>(); - } - this.trackingCodes.put(key, value); - return this; - } -} diff --git a/src/main/java/com/box/sdk/DateRange.java b/src/main/java/com/box/sdk/DateRange.java deleted file mode 100644 index 158feedc7..000000000 --- a/src/main/java/com/box/sdk/DateRange.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.box.sdk; - -import java.util.Date; - -/** - * Class is used to be a range for two dates. Ususally paired with varying search filters. - */ -public class DateRange { - private Date from; - private Date to; - - /** - * Used for specify a date range to filter to be used in search. - * - * @param from is the start date in a range. - * @param to is the end date in a range. - */ - public DateRange(Date from, Date to) { - this.from = from; - this.to = to; - } - - /** - * Returns the from date which is the start date. - * - * @return Date this is start date. - */ - public Date getFromDate() { - return this.from; - } - - /** - * Set the from date which is equivalent to the start date. - * - * @param from date which is the starting point. - */ - public void setFrom(Date from) { - this.from = from; - } - - /** - * Returns the to date which is the end date. - * - * @return Date this is the end date. - */ - public Date getToDate() { - return this.to; - } - - /** - * Set the to date which is equivalent to the start date. - * - * @param to date which is the end point. - */ - public void setTo(Date to) { - this.to = to; - } - - /** - * Used to build out a string a http box api friendly range string. - * - * @return String that is uses as a rest parameter. - */ - public String buildRangeString() { - - String fromString = BoxDateFormat.format(this.from); - String toString = BoxDateFormat.format(this.to); - - - String rangeString = String.format("%s,%s", fromString, toString); - if (rangeString == ",") { - rangeString = null; - } - return rangeString; - } -} diff --git a/src/main/java/com/box/sdk/DeveloperEditionEntityType.java b/src/main/java/com/box/sdk/DeveloperEditionEntityType.java deleted file mode 100644 index f6e7489b3..000000000 --- a/src/main/java/com/box/sdk/DeveloperEditionEntityType.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.box.sdk; - -/** - * Enum to represent the JWT entity type for BoxDeveloperEditionAPIConnection. - */ -public enum DeveloperEditionEntityType { - - /** - * Represents the entity type enterprise. - */ - ENTERPRISE("enterprise"), - - /** - * Represents the entity type user. - */ - USER("user"); - - private final String value; - - /** - * @param value - */ - DeveloperEditionEntityType(String value) { - this.value = value; - } - - /** - * To get the string value for the enum type. - * - * @return The string value for the enum type - */ - @Override - public String toString() { - return this.value; - } -} diff --git a/src/main/java/com/box/sdk/EmailAlias.java b/src/main/java/com/box/sdk/EmailAlias.java deleted file mode 100644 index c61c4b119..000000000 --- a/src/main/java/com/box/sdk/EmailAlias.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; - -/** - * Represents a Box user's email alias. - */ -public class EmailAlias extends BoxJSONObject { - private String id; - private boolean isConfirmed; - private String email; - - /** - * Constructs an empty EmailAlias. - */ - public EmailAlias() { - } - - /** - * Constructs an EmailAlias from a JSON string. - * - * @param json the json encoded email alias. - */ - public EmailAlias(String json) { - super(json); - } - - EmailAlias(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the ID of this email alias. - * - * @return the ID of this email alias. - */ - public String getID() { - return this.id; - } - - /** - * Gets whether or not the user has confirmed this email alias. - * - * @return true if the user has confirmed this email alias; otherwise false. - */ - public boolean getIsConfirmed() { - return this.isConfirmed; - } - - /** - * Gets the email address of this email alias. - * - * @return the email address of this email alias. - */ - public String getEmail() { - return this.email; - } - - @Override - void parseJSONMember(JsonObject.Member member) { - JsonValue value = member.getValue(); - String memberName = member.getName(); - try { - if (memberName.equals("id")) { - this.id = value.asString(); - } else if (memberName.equals("is_confirmed")) { - this.isConfirmed = value.asBoolean(); - } else if (memberName.equals("email")) { - this.email = value.asString(); - } - } catch (Exception e) { - throw new BoxDeserializationException(memberName, value.toString(), e); - } - } -} diff --git a/src/main/java/com/box/sdk/EncryptionAlgorithm.java b/src/main/java/com/box/sdk/EncryptionAlgorithm.java deleted file mode 100644 index be66ccd52..000000000 --- a/src/main/java/com/box/sdk/EncryptionAlgorithm.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.box.sdk; - -/** - * Enum to identify algorithm for JWT. - */ -public enum EncryptionAlgorithm { - - /** - * RSA with SHA 256. - */ - RSA_SHA_256, - - /** - * RSA with SHA 384. - */ - RSA_SHA_384, - - /** - * RSA with SHA 512. - */ - RSA_SHA_512; -} diff --git a/src/main/java/com/box/sdk/EnterpriseEventsRequest.java b/src/main/java/com/box/sdk/EnterpriseEventsRequest.java deleted file mode 100644 index 521b501cf..000000000 --- a/src/main/java/com/box/sdk/EnterpriseEventsRequest.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.EventLog.ENTERPRISE_LIMIT; - -import com.box.sdk.BoxEvent.EventType; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Date; - -/** - * Class describing request to get Admin Logs. You can use it's fluent interface to create new request like so: - *
    - * {@code
    - * new EnterpriseEventsRequest().position("stream_position").limit(50);
    - * }
    - * 
    - */ -public final class EnterpriseEventsRequest { - private static final String ADMIN_LOGS_STREAM_TYPE = "admin_logs"; - private Date before; - private Date after; - private String position; - private int limit = ENTERPRISE_LIMIT; - private Collection types = new ArrayList<>(); - - /** - * The lower bound on the timestamp of the events returned. - * @param date the lower bound on the timestamp of the events returned. - * @return request being created. - */ - public EnterpriseEventsRequest after(Date date) { - this.after = date; - return this; - } - - /** - * The upper bound on the timestamp of the events returned. - * @param date the upper bound on the timestamp of the events returned. - * @return request being created. - */ - public EnterpriseEventsRequest before(Date date) { - this.before = date; - return this; - } - - /** - * The starting position of the event stream. - * @param position the starting position of the event stream. - * @return request being created. - */ - public EnterpriseEventsRequest position(String position) { - this.position = position; - return this; - } - - /** - * The number of entries to be returned in the response. - * @param limit the number of entries to be returned in the response. - * @return request being created. - */ - public EnterpriseEventsRequest limit(int limit) { - this.limit = limit; - return this; - } - - /** - * List of event types to filter by. - * @param types list of event types to filter by. - * @return request being created. - */ - public EnterpriseEventsRequest types(EventType... types) { - return typeNames(Arrays.stream(types) - .map(EventType::toJSONString) - .toArray(String[]::new) - ); - } - - /** - * List of event type names to filter by. - * @param typeNames list of event type names to filter by. - * @return request being created. - */ - public EnterpriseEventsRequest typeNames(String... typeNames) { - this.types = Arrays.asList(typeNames); - return this; - } - - Date getAfter() { - return after; - } - - Date getBefore() { - return before; - } - - String getPosition() { - return position; - } - - int getLimit() { - return limit; - } - - - Collection getTypes() { - return types; - } - - String getStreamType() { - return ADMIN_LOGS_STREAM_TYPE; - } -} diff --git a/src/main/java/com/box/sdk/EnterpriseEventsStreamRequest.java b/src/main/java/com/box/sdk/EnterpriseEventsStreamRequest.java deleted file mode 100644 index fce19942f..000000000 --- a/src/main/java/com/box/sdk/EnterpriseEventsStreamRequest.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.EventLog.ENTERPRISE_LIMIT; - -import com.box.sdk.BoxEvent.EventType; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; - -/** - * Class describing request to get Admin Logs Streaming. You can use it's fluent interface to create new request like so: - *
    - * {@code
    - * new EnterpriseEventsStreamRequest().position("stream_position").limit(50);
    - * }
    - * 
    - */ -public final class EnterpriseEventsStreamRequest { - private static final String ADMIN_LOGS_STREAM_TYPE = "admin_logs_streaming"; - private String position; - private int limit = ENTERPRISE_LIMIT; - private Collection types = new ArrayList<>(); - - - /** - * The starting position of the event stream. - * @param position the starting position of the event stream. - * @return request being created. - */ - public EnterpriseEventsStreamRequest position(String position) { - this.position = position; - return this; - } - - /** - * The number of entries to be returned in the response. - * @param limit the number of entries to be returned in the response. - * @return request being created. - */ - public EnterpriseEventsStreamRequest limit(int limit) { - this.limit = limit; - return this; - } - - /** - * List of event types to filter by. - * @param types list of event types to filter by. - * @return request being created. - */ - public EnterpriseEventsStreamRequest types(EventType... types) { - return typeNames(Arrays.stream(types) - .map(EventType::toJSONString) - .toArray(String[]::new) - ); - } - - /** - * List of event type names to filter by. - * @param typeNames list of event type names to filter by. - * @return request being created. - */ - public EnterpriseEventsStreamRequest typeNames(String... typeNames) { - this.types = Arrays.asList(typeNames); - return this; - } - - String getPosition() { - return position; - } - - int getLimit() { - return limit; - } - - - Collection getTypes() { - return types; - } - - String getStreamType() { - return ADMIN_LOGS_STREAM_TYPE; - } -} diff --git a/src/main/java/com/box/sdk/EventListener.java b/src/main/java/com/box/sdk/EventListener.java deleted file mode 100644 index 2d27ed83a..000000000 --- a/src/main/java/com/box/sdk/EventListener.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.box.sdk; - -/** - * The listener interface for receiving events from an {@link EventStream}. - */ -public interface EventListener { - /** - * Invoked when an event is received from the API. - * - * @param event the received event. - */ - void onEvent(BoxEvent event); - - /** - * Invoked when an updated stream position is received from the API. - * - * @param position of the stream. - */ - void onNextPosition(long position); - - /** - * Invoked when an error occurs while waiting for events to be received. - * - *

    When an EventStream encounters an exception, it will invoke this method on each of its listeners until one - * of them returns true, indicating that the exception was handled.

    - * - * @param e the exception that was thrown while waiting for events. - * @return true if the exception was handled; otherwise false. - */ - boolean onException(Throwable e); -} diff --git a/src/main/java/com/box/sdk/EventLog.java b/src/main/java/com/box/sdk/EventLog.java deleted file mode 100644 index e00fbc54c..000000000 --- a/src/main/java/com/box/sdk/EventLog.java +++ /dev/null @@ -1,320 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Collection; -import java.util.Date; -import java.util.Iterator; -import java.util.LinkedHashSet; -import java.util.Set; - -/** - * A log of events that were retrieved from the events endpoint. - * - *

    An EventLog cannot be instantiated directly. Instead, use one of the static methods to retrieve a log of events. - * Unlike the {@link EventStream} class, EventLog doesn't support retrieving events in real-time. - *

    - */ -public class EventLog implements Iterable { - - static final int ENTERPRISE_LIMIT = 500; - /** - * Enterprise Event URL Template. - */ - public static final URLTemplate ENTERPRISE_EVENT_URL_TEMPLATE = new URLTemplate("events?stream_type=admin_logs&" - + "limit=" + ENTERPRISE_LIMIT); - private final int chunkSize; - private final int limit; - private final String nextStreamPosition; - private final String streamPosition; - private final Set events; - - private Date startDate; - private Date endDate; - - EventLog(BoxAPIConnection api, JsonObject json, String streamPosition, int limit) { - this.streamPosition = streamPosition; - this.limit = limit; - JsonValue nextStreamPosition = json.get("next_stream_position"); - if (nextStreamPosition.isString()) { - this.nextStreamPosition = nextStreamPosition.asString(); - } else { - this.nextStreamPosition = nextStreamPosition.toString(); - } - this.chunkSize = json.get("chunk_size").asInt(); - - this.events = new LinkedHashSet<>(this.chunkSize); - JsonArray entries = json.get("entries").asArray(); - for (JsonValue entry : entries) { - this.events.add(new BoxEvent(api, entry.asObject())); - } - } - - /** - * Method reads from the `admin-logs` stream and returns {@link BoxEvent} {@link Iterator}. - * The emphasis for this stream is on completeness over latency, - * which means that Box will deliver admin events in chronological order and without duplicates, - * but with higher latency. You can specify start and end time/dates. This method - * will only work with an API connection for an enterprise admin account - * or service account with manage enterprise properties. - * You can specify a date range to limit when events occured, starting from a given position within the - * event stream, set limit or specify event types that should be filtered. - * Example: - *
    -     * {@code
    -     * EnterpriseEventsRequest request = new EnterpriseEventsRequest()
    -     *     .after(after)        // The lower bound on the timestamp of the events returned.
    -     *     .before(before)      // The upper bound on the timestamp of the events returned.
    -     *     .limit(20)           // The number of entries to be returned in the response.
    -     *     .position(position)  // The starting position of the event stream.
    -     *     .types(EventType.LOGIN, EventType.FAILED_LOGIN); // List of event types to filter by.
    -     * EventLog.getEnterpriseEvents(api, request);
    -     * }
    -     * 
    - * - * @param api the API connection to use. - * @param enterpriseEventsRequest request to get events. - * @return a log of all the events that met the given criteria. - */ - public static EventLog getEnterpriseEvents(BoxAPIConnection api, EnterpriseEventsRequest enterpriseEventsRequest) { - EventLogRequest request = new EventLogRequest( - enterpriseEventsRequest.getBefore(), - enterpriseEventsRequest.getAfter(), - enterpriseEventsRequest.getPosition(), - enterpriseEventsRequest.getLimit(), - enterpriseEventsRequest.getTypes() - ); - return getEnterpriseEventsForStreamType(api, enterpriseEventsRequest.getStreamType(), request); - } - - /** - * Method reads from the `admin-logs-streaming` stream and returns {@link BoxEvent} {@link Iterator} - * The emphasis for this feed is on low latency rather than chronological accuracy, which means that Box may return - * events more than once and out of chronological order. Events are returned via the API around 12 seconds after they - * are processed by Box (the 12 seconds buffer ensures that new events are not written after your cursor position). - * Only two weeks of events are available via this feed, and you cannot set start and end time/dates. This method - * will only work with an API connection for an enterprise admin account - * or service account with manage enterprise properties. - * You can specify a starting from a given position within the event stream, - * set limit or specify event types that should be filtered. - * Example: - *
    -     * {@code
    -     * EnterpriseEventsStreamRequest request = new EnterpriseEventsStreamRequest()
    -     *     .limit(200)          // The number of entries to be returned in the response.
    -     *     .position(position)  // The starting position of the event stream.
    -     *     .types(EventType.LOGIN, EventType.FAILED_LOGIN); // List of event types to filter by.
    -     * EventLog.getEnterpriseEventsStream(api, request);
    -     * }
    -     * 
    - * - * @param api the API connection to use. - * @param enterpriseEventsStreamRequest request to get events. - * @return a log of all the events that met the given criteria. - */ - public static EventLog getEnterpriseEventsStream( - BoxAPIConnection api, EnterpriseEventsStreamRequest enterpriseEventsStreamRequest - ) { - EventLogRequest request = new EventLogRequest( - null, - null, - enterpriseEventsStreamRequest.getPosition(), - enterpriseEventsStreamRequest.getLimit(), - enterpriseEventsStreamRequest.getTypes() - ); - return getEnterpriseEventsForStreamType(api, enterpriseEventsStreamRequest.getStreamType(), request); - } - - private static EventLog getEnterpriseEventsForStreamType( - BoxAPIConnection api, String streamType, EventLogRequest request - ) { - URL url = new URLTemplate("events?").build(api.getBaseURL()); - QueryStringBuilder queryBuilder = new QueryStringBuilder(url.getQuery()); - queryBuilder.appendParam("stream_type", streamType); - addParamsToQuery(request, queryBuilder); - - try { - url = queryBuilder.addToURL(url); - } catch (MalformedURLException e) { - throw new BoxAPIException("Couldn't append a query string to the provided URL."); - } - - BoxJSONRequest apiRequest = new BoxJSONRequest(api, url, "GET"); - try (BoxJSONResponse response = apiRequest.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - EventLog log = new EventLog(api, responseJSON, request.getPosition(), request.getLimit()); - log.setStartDate(request.getAfter()); - log.setEndDate(request.getBefore()); - return log; - } - } - - private static void addParamsToQuery(EventLogRequest request, QueryStringBuilder queryBuilder) { - queryBuilder.appendParam("limit", request.getLimit()); - - if (request.getAfter() != null) { - queryBuilder.appendParam("created_after", BoxDateFormat.format(request.getAfter())); - } - if (request.getBefore() != null) { - queryBuilder.appendParam("created_before", BoxDateFormat.format(request.getBefore())); - } - if (request.getPosition() != null) { - queryBuilder.appendParam("stream_position", request.getPosition()); - } - if (request.getTypes().size() > 0) { - String types = String.join(",", request.getTypes()); - queryBuilder.appendParam("event_type", types); - } - } - - /** - * Returns an iterator over the events in this log. - * - * @return an iterator over the events in this log. - */ - @Override - public Iterator iterator() { - return this.events.iterator(); - } - - /** - * Gets the date of the earliest event in this log. - * - *

    The value returned by this method corresponds to the created_after URL parameter that was used - * when retrieving the events in this EventLog.

    - * - * @return the date of the earliest event in this log. - */ - public Date getStartDate() { - return this.startDate; - } - - void setStartDate(Date startDate) { - this.startDate = startDate; - } - - /** - * Gets the date of the latest event in this log. - * - *

    The value returned by this method corresponds to the created_before URL parameter that was used - * when retrieving the events in this EventLog.

    - * - * @return the date of the latest event in this log. - */ - public Date getEndDate() { - return this.endDate; - } - - void setEndDate(Date endDate) { - this.endDate = endDate; - } - - /** - * Gets the maximum number of events that this event log could contain given its start date, end date, and stream - * position. - * - *

    The value returned by this method corresponds to the limit URL parameter that was used when - * retrieving the events in this EventLog.

    - * - * @return the maximum number of events. - */ - public int getLimit() { - return this.limit; - } - - /** - * Gets the starting position of the events in this log within the event stream. - * - *

    The value returned by this method corresponds to the stream_position URL parameter that was used - * when retrieving the events in this EventLog.

    - * - * @return the starting position within the event stream. - */ - public String getStreamPosition() { - return this.streamPosition; - } - - /** - * Gets the next position within the event stream for retrieving subsequent events. - * - *

    The value returned by this method corresponds to the next_stream_position field returned by the - * API's events endpoint.

    - * - * @return the next position within the event stream. - */ - public String getNextStreamPosition() { - return this.nextStreamPosition; - } - - /** - * Gets the number of events in this log, including duplicate events. - * - *

    The chunk size may not be representative of the number of events returned by this EventLog's iterator because - * the iterator will automatically ignore duplicate events.

    - * - *

    The value returned by this method corresponds to the chunk_size field returned by the API's - * events endpoint.

    - * - * @return the number of events, including duplicates. - */ - public int getChunkSize() { - return this.chunkSize; - } - - /** - * Gets the number of events in this list, excluding duplicate events. - * - *

    The size is guaranteed to be representative of the number of events returned by this EventLog's iterator.

    - * - * @return the number of events, excluding duplicates. - */ - public int getSize() { - return this.events.size(); - } - - private static final class EventLogRequest { - private final Date before; - private final Date after; - private final String position; - private final Integer limit; - private final Collection types; - - private EventLogRequest( - Date before, - Date after, - String position, - Integer limit, - Collection types - ) { - this.before = before; - this.after = after; - this.position = position; - this.limit = limit; - this.types = types; - } - - private Date getBefore() { - return before; - } - - private Date getAfter() { - return after; - } - - private String getPosition() { - return position; - } - - private Integer getLimit() { - return limit; - } - - private Collection getTypes() { - return types; - } - } -} diff --git a/src/main/java/com/box/sdk/EventStream.java b/src/main/java/com/box/sdk/EventStream.java deleted file mode 100644 index 075973825..000000000 --- a/src/main/java/com/box/sdk/EventStream.java +++ /dev/null @@ -1,242 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.util.ArrayList; -import java.util.Collection; - -/** - * Receives real-time events from the API and forwards them to {@link EventListener EventListeners}. - * - *

    This class handles long polling the Box events endpoint in order to receive real-time user events. - * When an EventStream is started, it begins long polling on a separate thread until the {@link #stop} method - * is called. - * Since the API may return duplicate events, EventStream also maintains a small cache of the most recently received - * event IDs in order to automatically deduplicate events.

    - *

    Note: Enterprise Events can be accessed by admin users with the EventLog.getEnterpriseEvents method

    - */ -public class EventStream { - - private static final int LIMIT = 800; - /** - * Events URL. - */ - public static final URLTemplate EVENT_URL = new URLTemplate("events?limit=" + LIMIT + "&stream_position=%s"); - private static final int STREAM_POSITION_NOW = -1; - private static final int DEFAULT_POLLING_DELAY = 1000; - private final BoxAPIConnection api; - private final long startingPosition; - private final int pollingDelay; - private final Collection listeners; - private final Object listenerLock; - - private LRUCache receivedEvents; - private boolean started; - private Poller poller; - private Thread pollerThread; - - /** - * Constructs an EventStream using an API connection. - * - * @param api the API connection to use. - */ - public EventStream(BoxAPIConnection api) { - this(api, STREAM_POSITION_NOW, DEFAULT_POLLING_DELAY); - } - - /** - * Constructs an EventStream using an API connection and a starting initial position. - * - * @param api the API connection to use. - * @param startingPosition the starting position of the event stream. - */ - public EventStream(BoxAPIConnection api, long startingPosition) { - this(api, startingPosition, DEFAULT_POLLING_DELAY); - } - - /** - * Constructs an EventStream using an API connection and a starting initial position with custom polling delay. - * - * @param api the API connection to use. - * @param startingPosition the starting position of the event stream. - * @param pollingDelay the delay in milliseconds between successive calls to get more events. - */ - public EventStream(BoxAPIConnection api, long startingPosition, int pollingDelay) { - this.api = api; - this.startingPosition = startingPosition; - this.listeners = new ArrayList<>(); - this.listenerLock = new Object(); - this.pollingDelay = pollingDelay; - } - - /** - * Adds a listener that will be notified when an event is received. - * - * @param listener the listener to add. - */ - public void addListener(EventListener listener) { - synchronized (this.listenerLock) { - this.listeners.add(listener); - } - } - - /** - * Indicates whether or not this EventStream has been started. - * - * @return true if this EventStream has been started; otherwise false. - */ - public boolean isStarted() { - return this.started; - } - - /** - * Stops this EventStream and disconnects from the API. - * - * @throws IllegalStateException if the EventStream is already stopped. - */ - public void stop() { - if (!this.started) { - throw new IllegalStateException("Cannot stop the EventStream because it isn't started."); - } - - this.started = false; - this.pollerThread.interrupt(); - } - - /** - * Starts this EventStream and begins long polling the API. - * - * @throws IllegalStateException if the EventStream is already started. - */ - public void start() { - if (this.started) { - throw new IllegalStateException("Cannot start the EventStream because it isn't stopped."); - } - - final long initialPosition; - - if (this.startingPosition == STREAM_POSITION_NOW) { - BoxJSONRequest request = new BoxJSONRequest(this.api, - EVENT_URL.buildAlpha(this.api.getBaseURL(), "now"), "GET" - ); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - initialPosition = jsonObject.get("next_stream_position").asLong(); - } - } else { - assert this.startingPosition >= 0 : "Starting position must be non-negative"; - initialPosition = this.startingPosition; - } - - this.poller = new Poller(initialPosition); - - this.pollerThread = new Thread(this.poller); - this.pollerThread.setUncaughtExceptionHandler((t, e) -> EventStream.this.notifyException(e)); - this.pollerThread.start(); - - this.started = true; - } - - /** - * Indicates whether or not an event ID is a duplicate. - * - *

    This method can be overridden by a subclass in order to provide custom de-duping logic.

    - * - * @param eventID the event ID. - * @return true if the event is a duplicate; otherwise false. - */ - protected boolean isDuplicate(String eventID) { - if (this.receivedEvents == null) { - this.receivedEvents = new LRUCache<>(); - } - - return !this.receivedEvents.add(eventID); - } - - private void notifyNextPosition(long position) { - synchronized (this.listenerLock) { - for (EventListener listener : this.listeners) { - listener.onNextPosition(position); - } - } - } - - private void notifyEvent(BoxEvent event) { - synchronized (this.listenerLock) { - boolean isDuplicate = this.isDuplicate(event.getID()); - if (!isDuplicate) { - for (EventListener listener : this.listeners) { - listener.onEvent(event); - } - } - } - } - - private void notifyException(Throwable e) { - if (e instanceof InterruptedException && !this.started) { - return; - } - - this.stop(); - synchronized (this.listenerLock) { - for (EventListener listener : this.listeners) { - if (listener.onException(e)) { - return; - } - } - } - } - - private class Poller implements Runnable { - private final long initialPosition; - - private RealtimeServerConnection server; - - Poller(long initialPosition) { - this.initialPosition = initialPosition; - this.server = new RealtimeServerConnection(EventStream.this.api); - } - - @Override - public void run() { - long position = this.initialPosition; - while (!Thread.interrupted()) { - if (this.server.getRemainingRetries() == 0) { - this.server = new RealtimeServerConnection(EventStream.this.api); - } - - if (this.server.waitForChange(position)) { - if (Thread.interrupted()) { - return; - } - - BoxJSONRequest request = new BoxJSONRequest(EventStream.this.api, - EVENT_URL.buildAlpha(EventStream.this.api.getBaseURL(), position), "GET" - ); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - JsonArray entriesArray = jsonObject.get("entries").asArray(); - for (JsonValue entry : entriesArray) { - BoxEvent event = new BoxEvent(EventStream.this.api, entry.asObject()); - EventStream.this.notifyEvent(event); - } - position = jsonObject.get("next_stream_position").asLong(); - EventStream.this.notifyNextPosition(position); - try { - // Delay re-polling to avoid making too many API calls - // Since duplicate events may appear in the stream, without any delay added - // the stream can make 3-5 requests per second and not produce any new - // events. A short delay between calls balances latency for new events - // and the risk of hitting rate limits. - Thread.sleep(EventStream.this.pollingDelay); - } catch (InterruptedException ex) { - return; - } - } - } - } - } - } -} diff --git a/src/main/java/com/box/sdk/FileUploadParams.java b/src/main/java/com/box/sdk/FileUploadParams.java deleted file mode 100644 index 386d2bf02..000000000 --- a/src/main/java/com/box/sdk/FileUploadParams.java +++ /dev/null @@ -1,207 +0,0 @@ -package com.box.sdk; - -import java.io.InputStream; -import java.util.Date; - -/** - * Contains parameters for configuring an upload to Box. - */ -public class FileUploadParams { - private InputStream content; - private UploadFileCallback uploadFileCallback; - private String name; - private Date created; - private Date modified; - private long size; - private ProgressListener listener; - private String sha1; - private String description; - - /** - * Constructs a new FileUploadParams with default parameters. - */ - public FileUploadParams() { - } - - /** - * Gets the content that will be uploaded to Box. - * - * @return an InputStream that reads the content to be uploaded to Box. - */ - public InputStream getContent() { - return this.content; - } - - /** - * Sets the content that will be uploaded to Box. - * - * @param content an InputStream that reads from the content to be uploaded to Box. - * @return this FileUploadParams object for chaining. - */ - public FileUploadParams setContent(InputStream content) { - this.content = content; - return this; - } - - /** - * @return content writer callback. - */ - public UploadFileCallback getUploadFileCallback() { - return this.uploadFileCallback; - } - - /** - * Sets the content writer callback. - * - * @param uploadFileCallback callback called when file upload starts. - * @return this FileUploadParams object for chaining. - */ - public FileUploadParams setUploadFileCallback(UploadFileCallback uploadFileCallback) { - this.uploadFileCallback = uploadFileCallback; - return this; - } - - /** - * Gets the name that will be given to the uploaded file. - * - * @return the name that will be given to the uploaded file. - */ - public String getName() { - return this.name; - } - - /** - * Sets the name that will be given to the uploaded file. - * - * @param name the name that will be given to the uploaded file. - * @return this FileUploadParams object for chaining. - */ - public FileUploadParams setName(String name) { - this.name = name; - return this; - } - - /** - * Gets the content created date that will be given to the uploaded file. - * - * @return the content created date that will be given to the uploaded file. - */ - public Date getCreated() { - return this.created; - } - - /** - * Sets the content created date that will be given to the uploaded file. - * - * @param created the content created date that will be given to the uploaded file. - * @return this FileUploadParams object for chaining. - */ - public FileUploadParams setCreated(Date created) { - this.created = created; - return this; - } - - /** - * Gets the content modified date that will be given to the uploaded file. - * - * @return the content modified date that will be given to the uploaded file. - */ - public Date getModified() { - return this.modified; - } - - /** - * Sets the content modified date that will be given to the uploaded file. - * - * @param modified the content modified date that will be given to the uploaded file. - * @return this FileUploadParams object for chaining. - */ - public FileUploadParams setModified(Date modified) { - this.modified = modified; - return this; - } - - /** - * Gets the size of the file's content used for monitoring the upload's progress. - * If the size cannot be determined value will be -1. - * - * @return the size of the file's content. - */ - public long getSize() { - return this.size; - } - - /** - * Sets the size of the file content used for monitoring the upload's progress. - * When the content is coming from a dynamic source - other thread reading value - * set size to -1 to tell SDK that file size cannot be determined. Usefull - * when encuntering problems with writing different size of bytes than assumed. - * - * @param size the size of the file's content. - * @return this FileUploadParams object for chaining. - */ - public FileUploadParams setSize(long size) { - this.size = size; - return this; - } - - /** - * Gets the ProgressListener that will be used for monitoring the upload's progress. - * - * @return the ProgressListener that will be used for monitoring the upload's progress. - */ - public ProgressListener getProgressListener() { - return this.listener; - } - - /** - * Sets the ProgressListener that will be used for monitoring the upload's progress. - * - * @param listener the listener that will be used for monitoring the upload's progress. - * @return this FileUploadParams object for chaining. - */ - public FileUploadParams setProgressListener(ProgressListener listener) { - this.listener = listener; - return this; - } - - /** - * Gets the file's SHA-1 hash. - * - * @return the file hash. - */ - public String getSHA1() { - return this.sha1; - } - - /** - * Set the SHA-1 hash of the file to ensure it is not corrupted during the upload. - * - * @param sha1 the SHA-1 hash of the file. - * @return this FileUploadParams for chaining. - */ - public FileUploadParams setSHA1(String sha1) { - this.sha1 = sha1; - return this; - } - - /** - * Gets the file's description set for uploading. - * - * @return the file description. - */ - public String getDescription() { - return this.description; - } - - /** - * Sets the file description during the file upload. - * - * @param description the description of the file. - * @return this FileUploadParams for chaining. - */ - public FileUploadParams setDescription(String description) { - this.description = description; - return this; - } -} diff --git a/src/main/java/com/box/sdk/Filter.java b/src/main/java/com/box/sdk/Filter.java deleted file mode 100644 index 795826582..000000000 --- a/src/main/java/com/box/sdk/Filter.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.box.sdk; - -interface Filter { - boolean shouldInclude(T object); -} diff --git a/src/main/java/com/box/sdk/IAccessTokenCache.java b/src/main/java/com/box/sdk/IAccessTokenCache.java deleted file mode 100644 index 2d104e402..000000000 --- a/src/main/java/com/box/sdk/IAccessTokenCache.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.box.sdk; - -/** - * Implement this interface to provide a custom access token cache implementation for your environment. - * - *

    For production applications it is recommended to use a distributed cache like Memcached or Redis, and to - * implement this interface to store and retrieve access tokens appropriately for your environment.

    - */ -public interface IAccessTokenCache { - - /** - * Get the access token information from the cache. - * - * @param key key to look for. - * @return access token information. - */ - String get(String key); - - /** - * Store the access token information in the cache. - * - * @param key key to use. - * @param value access token information to store. - */ - void put(String key, String value); -} diff --git a/src/main/java/com/box/sdk/IPrivateKeyDecryptor.java b/src/main/java/com/box/sdk/IPrivateKeyDecryptor.java deleted file mode 100644 index a8ecbab83..000000000 --- a/src/main/java/com/box/sdk/IPrivateKeyDecryptor.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.box.sdk; - -import java.security.PrivateKey; - -/** - * Implement this interface to provide a custom private key decryptor. - * If you require the decryption operation to be FIPS compliant, - * ensure that your implementation exclusively utilizes FIPS certified libraries. - */ -public interface IPrivateKeyDecryptor { - - /** - * Decrypts private key with provided passphrase using Bouncy Castle library - * - * @param encryptedPrivateKey Encoded private key string. - * @param passphrase Private key passphrase. - * @return java.security.PrivateKey instance representing decrypted private key. - */ - PrivateKey decryptPrivateKey(String encryptedPrivateKey, String passphrase); -} diff --git a/src/main/java/com/box/sdk/InMemoryLRUAccessTokenCache.java b/src/main/java/com/box/sdk/InMemoryLRUAccessTokenCache.java deleted file mode 100644 index b04e9b08f..000000000 --- a/src/main/java/com/box/sdk/InMemoryLRUAccessTokenCache.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.box.sdk; - -import java.util.LinkedHashMap; -import java.util.Map; - -/** - * Use this class to create an in-memory LRU (least recently used) access token cache to be - * passed to BoxDeveloperEditionAPIConnection. - */ -public class InMemoryLRUAccessTokenCache implements IAccessTokenCache { - - private final Map cache; - - /** - * Creates an in-memory LRU access token cache. - * - * @param maxEntries maximum number of entries to store. - */ - public InMemoryLRUAccessTokenCache(final int maxEntries) { - this.cache = new LinkedHashMap(maxEntries, 0.75F, true) { - private static final long serialVersionUID = -187234623489L; - - @Override - protected boolean removeEldestEntry(java.util.Map.Entry eldest) { - return size() > maxEntries; - } - }; - } - - /** - * Add an entry to the cache. - * - * @param key key to use. - * @param value access token information to store. - */ - public void put(String key, String value) { - synchronized (this.cache) { - this.cache.put(key, value); - } - } - - /** - * Get an entry from the cache. - * - * @param key key to look for. - * @return access token information. - */ - public String get(String key) { - synchronized (this.cache) { - return this.cache.get(key); - } - } -} diff --git a/src/main/java/com/box/sdk/JWTEncryptionPreferences.java b/src/main/java/com/box/sdk/JWTEncryptionPreferences.java deleted file mode 100644 index b8bd774fd..000000000 --- a/src/main/java/com/box/sdk/JWTEncryptionPreferences.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.box.sdk; - -/** - * Contains the encryption preferences for JWT assertion. - */ - -public class JWTEncryptionPreferences { - private String publicKeyID; - private String privateKey; - private String privateKeyPassword; - private EncryptionAlgorithm encryptionAlgorithm; - private IPrivateKeyDecryptor privateKeyDecryptor = new BCPrivateKeyDecryptor(); - - /** - * Returns the ID for public key for validating the JWT signature. - * - * @return the publicKeyID. - */ - public String getPublicKeyID() { - return this.publicKeyID; - } - - /** - * Sets the ID for public key for validating the JWT signature. - * - * @param publicKeyID the publicKeyID to set. - */ - public void setPublicKeyID(String publicKeyID) { - this.publicKeyID = publicKeyID; - } - - /** - * Returns the private key for generating the JWT signature. - * - * @return the privateKey. - */ - public String getPrivateKey() { - return this.privateKey; - } - - /** - * Sets the private key for generating the JWT signature. - * - * @param privateKey the privateKey to set. - */ - public void setPrivateKey(String privateKey) { - this.privateKey = privateKey; - } - - /** - * Returns the password for the private key. - * - * @return the privateKeyPassword. - */ - public String getPrivateKeyPassword() { - return this.privateKeyPassword; - } - - /** - * Sets the password for the private key. - * - * @param privateKeyPassword the privateKeyPassword to set. - */ - public void setPrivateKeyPassword(String privateKeyPassword) { - this.privateKeyPassword = privateKeyPassword; - } - - /** - * Returns the type of encryption algorithm for JWT. - * - * @return the encryptionAlgorithm. - */ - public EncryptionAlgorithm getEncryptionAlgorithm() { - return this.encryptionAlgorithm; - } - - /** - * Sets the type of encryption algorithm for JWT. - * - * @param encryptionAlgorithm the encryptionAlgorithm to set. - */ - public void setEncryptionAlgorithm(EncryptionAlgorithm encryptionAlgorithm) { - this.encryptionAlgorithm = encryptionAlgorithm; - } - - /** - * Gets a decryptor used for decrypting the private key. - * - * @return the decryptor used for decrypting the private key. - */ - public IPrivateKeyDecryptor getPrivateKeyDecryptor() { - return privateKeyDecryptor; - } - - /** - * Sets a custom decryptor used for decrypting the private key. - * - * @param privateKeyDecryptor the decryptor used for decrypting the private key. - */ - public void setPrivateKeyDecryptor(IPrivateKeyDecryptor privateKeyDecryptor) { - this.privateKeyDecryptor = privateKeyDecryptor; - } -} diff --git a/src/main/java/com/box/sdk/JsonIterator.java b/src/main/java/com/box/sdk/JsonIterator.java deleted file mode 100644 index fe8249015..000000000 --- a/src/main/java/com/box/sdk/JsonIterator.java +++ /dev/null @@ -1,121 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Iterator; -import java.util.NoSuchElementException; - -class JsonIterator { - private final BoxAPIConnection api; - private final URL url; - private PagingParameters pagingParameters; - private boolean hasMorePages; - private Iterator currentPage; - private JsonObject nextJsonObject; - private Filter filter; - - JsonIterator(BoxAPIConnection api, URL url, PagingParameters pagingParameters) { - this.api = api; - this.url = url; - this.pagingParameters = pagingParameters; - } - - public boolean hasNext() { - if (this.nextJsonObject == null) { - this.nextJsonObject = this.loadNextJsonObject(); - } - - return this.nextJsonObject != null; - } - - public JsonObject next() { - if (this.nextJsonObject == null) { - this.nextJsonObject = this.loadNextJsonObject(); - } - - if (this.nextJsonObject == null) { - throw new NoSuchElementException(); - } - - JsonObject next = this.nextJsonObject; - this.nextJsonObject = null; - return next; - } - - public void remove() { - throw new UnsupportedOperationException(); - } - - public void setFilter(Filter filter) { - this.filter = filter; - } - - private void loadNextPage() { - QueryStringBuilder builder = pagingParameters.asQueryStringBuilder(); - - URL url; - try { - url = builder.addToURL(this.url); - } catch (MalformedURLException e) { - throw new BoxAPIException("Couldn't append a query string to the provided URL."); - } - - BoxJSONRequest request = new BoxJSONRequest(this.api, url, "GET"); - try (BoxJSONResponse response = request.send()) { - String json = response.getJSON(); - - JsonObject responseObject = Json.parse(json).asObject(); - - if (pagingParameters.isMarkerBasedPaging()) { - continueAsMarkerBasedPaging(responseObject); - } else { - continueAsOffsetBasedPaging(responseObject); - } - - JsonArray jsonArray = responseObject.get("entries").asArray(); - this.currentPage = jsonArray.iterator(); - } - } - - private void continueAsOffsetBasedPaging(JsonObject response) { - try { - long offset = response.get("offset").asLong(); - long totalCount = response.get("total_count").asLong(); - hasMorePages = offset + pagingParameters.getLimit() < totalCount; - this.pagingParameters = pagingParameters.nextOffset(offset); - } catch (NullPointerException e) { - hasMorePages = false; - } - } - - private void continueAsMarkerBasedPaging(JsonObject response) { - String nextMarker = response.getString("next_marker", null); - this.hasMorePages = nextMarker != null && nextMarker.length() > 0; - this.pagingParameters = pagingParameters.nextMarker(nextMarker); - } - - private JsonObject loadNextJsonObject() { - if (this.currentPage == null) { - this.loadNextPage(); - } - - while (this.currentPage.hasNext() || this.hasMorePages) { - while (this.currentPage.hasNext()) { - JsonObject jsonObject = this.currentPage.next().asObject(); - if (this.filter == null || this.filter.shouldInclude(jsonObject)) { - return jsonObject; - } - } - - if (this.hasMorePages) { - this.loadNextPage(); - } - } - - return null; - } -} diff --git a/src/main/java/com/box/sdk/LRUCache.java b/src/main/java/com/box/sdk/LRUCache.java deleted file mode 100644 index 94e58749d..000000000 --- a/src/main/java/com/box/sdk/LRUCache.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.box.sdk; - -import java.util.Iterator; -import java.util.LinkedHashSet; - -class LRUCache { - static final int MAX_SIZE = 512; - - private final LinkedHashSet linkedHashSet; - - LRUCache() { - this.linkedHashSet = new LinkedHashSet(MAX_SIZE); - } - - boolean add(E item) { - boolean newItem = !this.linkedHashSet.remove(item); - this.linkedHashSet.add(item); - - if (this.linkedHashSet.size() >= MAX_SIZE) { - Iterator it = this.linkedHashSet.iterator(); - it.next(); - it.remove(); - } - - return newItem; - } -} diff --git a/src/main/java/com/box/sdk/LargeFileUpload.java b/src/main/java/com/box/sdk/LargeFileUpload.java deleted file mode 100644 index fa4bc3cea..000000000 --- a/src/main/java/com/box/sdk/LargeFileUpload.java +++ /dev/null @@ -1,306 +0,0 @@ -package com.box.sdk; - -import com.box.sdk.http.HttpMethod; -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.security.DigestInputStream; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.concurrent.Executors; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -/** - * Utility class for uploading large files. - */ -public final class LargeFileUpload { - private static final String DIGEST_ALGORITHM_SHA1 = "SHA1"; - private static final int DEFAULT_CONNECTIONS = 3; - private static final int DEFAULT_TIMEOUT = 1; - private static final TimeUnit DEFAULT_TIMEUNIT = TimeUnit.HOURS; - private static final int THREAD_POOL_WAIT_TIME_IN_MILLIS = 1000; - private final ThreadPoolExecutor executorService; - private final long timeout; - private final TimeUnit timeUnit; - - /** - * Creates a LargeFileUpload object. - * - * @param nParallelConnections number of parallel http connections to use - * @param timeOut time to wait before killing the job - * @param unit time unit for the time wait value - */ - public LargeFileUpload(int nParallelConnections, long timeOut, TimeUnit unit) { - this.executorService = (ThreadPoolExecutor) Executors.newFixedThreadPool(nParallelConnections); - this.timeout = timeOut; - this.timeUnit = unit; - } - - /** - * Creates a LargeFileUpload object with a default number of parallel conections and timeout. - */ - public LargeFileUpload() { - this.executorService = (ThreadPoolExecutor) Executors.newFixedThreadPool(LargeFileUpload.DEFAULT_CONNECTIONS); - this.timeout = LargeFileUpload.DEFAULT_TIMEOUT; - this.timeUnit = LargeFileUpload.DEFAULT_TIMEUNIT; - } - - private static byte[] getBytesFromStream(InputStream stream, int numBytes) { - - int bytesNeeded = numBytes; - int offset = 0; - byte[] bytes = new byte[numBytes]; - - while (bytesNeeded > 0) { - - int bytesRead; - try { - bytesRead = stream.read(bytes, offset, bytesNeeded); - } catch (IOException ioe) { - throw new BoxAPIException("Reading data from stream failed.", ioe); - } - - if (bytesRead == -1) { - throw new BoxAPIException("Stream ended while upload was progressing"); - } - - bytesNeeded = bytesNeeded - bytesRead; - offset = offset + bytesRead; - } - - return bytes; - } - - private BoxFileUploadSession.Info createUploadSession(BoxAPIConnection boxApi, String folderId, - URL url, String fileName, long fileSize) { - - BoxJSONRequest request = new BoxJSONRequest(boxApi, url, HttpMethod.POST); - - //Create the JSON body of the request - JsonObject body = new JsonObject(); - body.add("folder_id", folderId); - body.add("file_name", fileName); - body.add("file_size", fileSize); - request.setBody(body.toString()); - - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - - String sessionId = jsonObject.get("id").asString(); - BoxFileUploadSession session = new BoxFileUploadSession(boxApi, sessionId); - - return session.new Info(jsonObject); - } - } - - /** - * Uploads a new large file. - * - * @param boxApi the API connection to be used by the upload session. - * @param folderId the id of the folder in which the file will be uploaded. - * @param stream the input stream that feeds the content of the file. - * @param url the upload session URL. - * @param fileName the name of the file to be created. - * @param fileSize the total size of the file. - * @return the created file instance. - * @throws InterruptedException when a thread gets interupted. - * @throws IOException when reading a stream throws exception. - */ - public BoxFile.Info upload(BoxAPIConnection boxApi, String folderId, InputStream stream, URL url, - String fileName, long fileSize) throws InterruptedException, IOException { - //Create a upload session - BoxFileUploadSession.Info session = this.createUploadSession(boxApi, folderId, url, fileName, fileSize); - return this.uploadHelper(session, stream, fileSize, null); - } - - /** - * Uploads a new large file and sets file attributes. - * - * @param boxApi the API connection to be used by the upload session. - * @param folderId the id of the folder in which the file will be uploaded. - * @param stream the input stream that feeds the content of the file. - * @param url the upload session URL. - * @param fileName the name of the file to be created. - * @param fileSize the total size of the file. - * @param fileAttributes file attributes to set - * @return the created file instance. - * @throws InterruptedException when a thread gets interupted. - * @throws IOException when reading a stream throws exception. - */ - public BoxFile.Info upload(BoxAPIConnection boxApi, String folderId, InputStream stream, URL url, - String fileName, long fileSize, Map fileAttributes) - throws InterruptedException, IOException { - //Create a upload session - BoxFileUploadSession.Info session = this.createUploadSession(boxApi, folderId, url, fileName, fileSize); - return this.uploadHelper(session, stream, fileSize, fileAttributes); - } - - /** - * Creates a new version of a large file. - * - * @param boxApi the API connection to be used by the upload session. - * @param stream the input stream that feeds the content of the file. - * @param url the upload session URL. - * @param fileSize the total size of the file. - * @return the file instance that also contains the version information. - * @throws InterruptedException when a thread gets interupted. - * @throws IOException when reading a stream throws exception. - */ - public BoxFile.Info upload(BoxAPIConnection boxApi, InputStream stream, URL url, long fileSize) - throws InterruptedException, IOException { - //creates a upload session - BoxFileUploadSession.Info session = this.createUploadSession(boxApi, url, fileSize); - return this.uploadHelper(session, stream, fileSize, null); - } - - /** - * Creates a new version of a large file and sets file attributes. - * - * @param boxApi the API connection to be used by the upload session. - * @param stream the input stream that feeds the content of the file. - * @param url the upload session URL. - * @param fileSize the total size of the file. - * @param fileAttributes file attributes to set. - * @return the file instance that also contains the version information. - * @throws InterruptedException when a thread gets interupted. - * @throws IOException when reading a stream throws exception. - */ - public BoxFile.Info upload(BoxAPIConnection boxApi, InputStream stream, URL url, long fileSize, - Map fileAttributes) - throws InterruptedException, IOException { - //creates an upload session - BoxFileUploadSession.Info session = this.createUploadSession(boxApi, url, fileSize); - return this.uploadHelper(session, stream, fileSize, fileAttributes); - } - - private BoxFile.Info uploadHelper(BoxFileUploadSession.Info session, InputStream stream, long fileSize, - Map fileAttributes) - throws InterruptedException { - //Upload parts using the upload session - MessageDigest digest; - try { - digest = MessageDigest.getInstance(DIGEST_ALGORITHM_SHA1); - } catch (NoSuchAlgorithmException ae) { - throw new BoxAPIException("Digest algorithm not found", ae); - } - DigestInputStream dis = new DigestInputStream(stream, digest); - List parts = this.uploadParts(session, dis, fileSize); - - //Creates the file hash - byte[] digestBytes = digest.digest(); - String digestStr = Base64.encode(digestBytes); - - //Commit the upload session. If there is a failure, abort the commit. - try { - return session.getResource().commit(digestStr, parts, fileAttributes, null, null); - } catch (Exception e) { - session.getResource().abort(); - throw new BoxAPIException("Unable to commit the upload session", e); - } - } - - private BoxFileUploadSession.Info createUploadSession(BoxAPIConnection boxApi, URL url, long fileSize) { - BoxJSONRequest request = new BoxJSONRequest(boxApi, url, HttpMethod.POST); - - //Creates the body of the request - JsonObject body = new JsonObject(); - body.add("file_size", fileSize); - request.setBody(body.toString()); - - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - - String sessionId = jsonObject.get("id").asString(); - BoxFileUploadSession session = new BoxFileUploadSession(boxApi, sessionId); - - return session.new Info(jsonObject); - } - } - - /* - * Upload parts of the file. The part size is retrieved from the upload session. - */ - private List uploadParts( - BoxFileUploadSession.Info session, InputStream stream, long fileSize - ) throws InterruptedException { - List parts = new ArrayList<>(); - - int partSize = session.getPartSize(); - long offset = 0; - long processed = 0; - int partPostion = 0; - //Set the Max Queue Size to 1.5x the number of processors - double maxQueueSizeDouble = Math.ceil(this.executorService.getMaximumPoolSize() * 1.5); - int maxQueueSize = Double.valueOf(maxQueueSizeDouble).intValue(); - while (processed < fileSize) { - //Waiting for any thread to finish before - long timeoutForWaitingInMillis = TimeUnit.MILLISECONDS.convert(this.timeout, this.timeUnit); - if (this.executorService.getCorePoolSize() <= this.executorService.getActiveCount()) { - if (timeoutForWaitingInMillis > 0) { - Thread.sleep(LargeFileUpload.THREAD_POOL_WAIT_TIME_IN_MILLIS); - timeoutForWaitingInMillis -= THREAD_POOL_WAIT_TIME_IN_MILLIS; - } else { - throw new BoxAPIException("Upload parts timedout"); - } - } - if (this.executorService.getQueue().size() < maxQueueSize) { - long diff = fileSize - processed; - //The size last part of the file can be lesser than the part size. - if (diff < (long) partSize) { - partSize = (int) diff; - } - parts.add(null); - byte[] bytes = getBytesFromStream(stream, partSize); - this.executorService.execute( - new LargeFileUploadTask(session.getResource(), bytes, offset, - partSize, fileSize, parts, partPostion) - ); - - //Increase the offset and proceesed bytes to calculate the Content-Range header. - processed += partSize; - offset += partSize; - partPostion++; - } - } - this.executorService.shutdown(); - this.executorService.awaitTermination(this.timeout, this.timeUnit); - return parts; - } - - /** - * Generates the Base64 encoded SHA-1 hash for content available in the stream. - * It can be used to calculate the hash of a file. - * - * @param stream the input stream of the file or data. - * @return the Base64 encoded hash string. - */ - public String generateDigest(InputStream stream) { - MessageDigest digest; - try { - digest = MessageDigest.getInstance(DIGEST_ALGORITHM_SHA1); - } catch (NoSuchAlgorithmException ae) { - throw new BoxAPIException("Digest algorithm not found", ae); - } - - //Calcuate the digest using the stream. - DigestInputStream dis = new DigestInputStream(stream, digest); - try { - int value = dis.read(); - while (value != -1) { - value = dis.read(); - } - } catch (IOException ioe) { - throw new BoxAPIException("Reading the stream failed.", ioe); - } - - //Get the calculated digest for the stream - byte[] digestBytes = digest.digest(); - return Base64.encode(digestBytes); - } -} diff --git a/src/main/java/com/box/sdk/LargeFileUploadTask.java b/src/main/java/com/box/sdk/LargeFileUploadTask.java deleted file mode 100644 index 988603c45..000000000 --- a/src/main/java/com/box/sdk/LargeFileUploadTask.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.box.sdk; - -import java.util.List; - -/** - * - */ -public class LargeFileUploadTask implements Runnable { - - private final int partPostion; - private BoxFileUploadSession session; - private byte[] data; - private List parts; - private long offset; - private int partSize; - private long fileSize; - - /** - * Runable task to create parallel http connctions for file upload session. - * - * @param session file upload session object - * @param data bytes to be uploaded - * @param offset stream offset - * @param partSize part size of the put request - * @param fileSize total file size - * @param parts list of the BoxFileUploadSessionPart objects - * @param partPostion sequence number of the part - */ - public LargeFileUploadTask(BoxFileUploadSession session, byte[] data, long offset, - int partSize, long fileSize, List parts, int partPostion) { - this.session = session; - this.data = data; - this.offset = offset; - this.partSize = partSize; - this.fileSize = fileSize; - this.parts = parts; - this.partPostion = partPostion; - } - - @Override - public void run() { - //Retries the upload part 3 times in case of failure. - for (int i = 0; i < 3; i++) { - try { - BoxFileUploadSessionPart part = - this.session.uploadPart(this.data, this.offset, this.partSize, this.fileSize); - this.parts.set(this.partPostion, part); - return; - } catch (BoxAPIException ex) { - if (i == 2) { - throw ex; - } - } - } - throw new BoxAPIException("Upload part failed for offset: " + this.offset + " range: " + this.partSize); - } -} diff --git a/src/main/java/com/box/sdk/Metadata.java b/src/main/java/com/box/sdk/Metadata.java deleted file mode 100644 index ac3ee7f1f..000000000 --- a/src/main/java/com/box/sdk/Metadata.java +++ /dev/null @@ -1,516 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.text.ParseException; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Optional; - -/** - * The Metadata class represents one type instance of Box metadata. - *

    - * Learn more about Box metadata: - * https://developers.box.com/metadata-api/ - */ -public class Metadata { - - /** - * Specifies the name of the default "properties" metadata template. - */ - public static final String DEFAULT_METADATA_TYPE = "properties"; - - /** - * Specifies the "global" metadata scope. - */ - public static final String GLOBAL_METADATA_SCOPE = "global"; - - /** - * Specifies the "enterprise" metadata scope. - */ - public static final String ENTERPRISE_METADATA_SCOPE = "enterprise"; - - /** - * Specifies the classification template key. - */ - public static final String CLASSIFICATION_TEMPLATE_KEY = "securityClassification-6VMVochwUWo"; - - /** - * Classification key path. - */ - public static final String CLASSIFICATION_KEY = "/Box__Security__Classification__Key"; - - /** - * The default limit of entries per response. - */ - public static final int DEFAULT_LIMIT = 100; - - /** - * URL template for all metadata associated with item. - */ - public static final URLTemplate GET_ALL_METADATA_URL_TEMPLATE = new URLTemplate("/metadata"); - - /** - * Values contained by the metadata object. - */ - private final JsonObject values; - - /** - * Operations to be applied to the metadata object. - */ - private JsonArray operations = new JsonArray(); - - /** - * Creates an empty metadata. - */ - public Metadata() { - this.values = new JsonObject(); - } - - /** - * Creates a new metadata. - * - * @param values the initial metadata values. - */ - public Metadata(JsonObject values) { - this.values = values; - } - - /** - * Creates a copy of another metadata. - * - * @param other the other metadata object to copy. - */ - public Metadata(Metadata other) { - this.values = new JsonObject(other.values); - } - - /** - * Creates a new metadata with the specified scope and template. - * - * @param scope the scope of the metadata. - * @param template the template of the metadata. - */ - public Metadata(String scope, String template) { - this.values = new JsonObject() - .add("$scope", scope) - .add("$template", template); - } - - /** - * Used to retrieve all metadata associated with the item. - * - * @param item item to get metadata for. - * @param fields the optional fields to retrieve. - * @return An iterable of metadata instances associated with the item. - */ - public static Iterable getAllMetadata(BoxItem item, String... fields) { - QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - return new BoxResourceIterable( - item.getAPI(), - GET_ALL_METADATA_URL_TEMPLATE.buildWithQuery(item.getItemURL().toString(), builder.toString()), - DEFAULT_LIMIT) { - - @Override - protected Metadata factory(JsonObject jsonObject) { - return new Metadata(jsonObject); - } - - }; - } - - static String scopeBasedOnType(String typeName) { - String scope; - if (typeName.equals(DEFAULT_METADATA_TYPE)) { - scope = GLOBAL_METADATA_SCOPE; - } else { - scope = ENTERPRISE_METADATA_SCOPE; - } - return scope; - } - - /** - * Returns the 36 character UUID to identify the metadata object. - * - * @return the metadata ID. - */ - public String getID() { - return getStringOrNull("/$id"); - } - - /** - * Returns the metadata type. - * - * @return the metadata type. - */ - public String getTypeName() { - return getStringOrNull("/$type"); - } - - /** - * Returns the parent object ID (typically the file ID). - * - * @return the parent object ID. - */ - public String getParentID() { - return getStringOrNull("/$parent"); - } - - /** - * Returns the scope. - * Can throw {@link NullPointerException} is value if not present. - * - * @return the scope. - */ - public String getScope() { - return getStringOrNull("/$scope"); - } - - /** - * Returns the template name. - * Can throw {@link NullPointerException} is value if not present. - * - * @return the template name. - */ - public String getTemplateName() { - return getStringOrNull("/$template"); - } - - /** - * Adds a new metadata value. - * - * @param path the path that designates the key. Must be prefixed with a "/". - * @param value the value. - * @return this metadata object. - */ - public Metadata add(String path, String value) { - this.values.add(this.pathToProperty(path), value); - this.addOp("add", path, value); - return this; - } - - /** - * Adds a new metadata value. - * - * @param path the path that designates the key. Must be prefixed with a "/". - * @param value the value. - * @return this metadata object. - */ - public Metadata add(String path, double value) { - this.values.add(this.pathToProperty(path), value); - this.addOp("add", path, value); - return this; - } - - /** - * Adds a new metadata value of array type. - * - * @param path the path to the field. - * @param values the collection of values. - * @return the metadata object for chaining. - */ - public Metadata add(String path, List values) { - JsonArray arr = new JsonArray(); - for (String value : values) { - arr.add(value); - } - this.values.add(this.pathToProperty(path), arr); - this.addOp("add", path, arr); - return this; - } - - /** - * Replaces an existing metadata value. - * - * @param path the path that designates the key. Must be prefixed with a "/". - * @param value the value. - * @return this metadata object. - */ - public Metadata replace(String path, String value) { - this.values.set(this.pathToProperty(path), value); - this.addOp("replace", path, value); - return this; - } - - /** - * Replaces an existing metadata value. - * - * @param path the path that designates the key. Must be prefixed with a "/". - * @param value the value. - * @return this metadata object. - */ - public Metadata replace(String path, float value) { - this.values.set(this.pathToProperty(path), value); - this.addOp("replace", path, value); - return this; - } - - /** - * Replaces an existing metadata value. - * - * @param path the path that designates the key. Must be prefixed with a "/". - * @param value the value. - * @return this metadata object. - */ - public Metadata replace(String path, double value) { - this.values.set(this.pathToProperty(path), value); - this.addOp("replace", path, value); - return this; - } - - /** - * Replaces an existing metadata value of array type. - * - * @param path the path that designates the key. Must be prefixed with a "/". - * @param values the collection of values. - * @return the metadata object. - */ - public Metadata replace(String path, List values) { - JsonArray arr = new JsonArray(); - for (String value : values) { - arr.add(value); - } - this.values.add(this.pathToProperty(path), arr); - this.addOp("replace", path, arr); - return this; - } - - /** - * Removes an existing metadata value. - * - * @param path the path that designates the key. Must be prefixed with a "/". - * @return this metadata object. - */ - public Metadata remove(String path) { - this.values.remove(this.pathToProperty(path)); - this.addOp("remove", path, (String) null); - return this; - } - - /** - * Tests that a property has the expected value. - * - * @param path the path that designates the key. Must be prefixed with a "/". - * @param value the expected value. - * @return this metadata object. - */ - public Metadata test(String path, String value) { - this.addOp("test", path, value); - return this; - } - - /** - * Tests that a list of properties has the expected value. - * The values passed in will have to be an exact match with no extra elements. - * - * @param path the path that designates the key. Must be prefixed with a "/". - * @param values the list of expected values. - * @return this metadata object. - */ - public Metadata test(String path, List values) { - JsonArray arr = new JsonArray(); - for (String value : values) { - arr.add(value); - } - this.addOp("test", path, arr); - return this; - } - - /** - * Returns a value, regardless of type. - * - * @param path the path that designates the key. Must be prefixed with a "/". - * @return the metadata property value as an indeterminate JSON type. - */ - public JsonValue getValue(String path) { - return this.values.get(this.pathToProperty(path)); - } - - /** - * Get a value from a string or enum metadata field. - * Can throw {@link NullPointerException} is value if not present. - * - * @param path the key path in the metadata object. Must be prefixed with a "/". - * @return the metadata value as a string. - */ - public String getString(String path) { - return this.getValue(path).asString(); - } - - /** - * Get a value from a double metadata field. - * Can throw {@link NullPointerException} is value if not present. - * - * @param path the key path in the metadata object. Must be prefixed with a "/". - * @return the metadata value as a floating point number. - */ - public double getDouble(String path) { - return this.getValue(path).asDouble(); - } - - /** - * Get a value from a date metadata field. - * Can throw {@link NullPointerException} is value if not present. - * - * @param path the key path in the metadata object. Must be prefixed with a "/". - * @return the metadata value as a Date. - * @throws ParseException when the value cannot be parsed as a valid date - */ - public Date getDate(String path) throws ParseException { - return BoxDateFormat.parse(this.getValue(path).asString()); - } - - /** - * Get a value from a multiselect metadata field. - * - * @param path the key path in the metadata object. Must be prefixed with a "/". - * @return the list of values set in the field. - */ - public List getMultiSelect(String path) { - List values = new ArrayList<>(); - for (JsonValue val : this.getValue(path).asArray()) { - values.add(val.asString()); - } - - return values; - } - - /** - * Returns a list of metadata property paths. - * - * @return the list of metdata property paths. - */ - public List getPropertyPaths() { - List result = new ArrayList<>(); - - for (String property : this.values.names()) { - if (!property.startsWith("$")) { - result.add(this.propertyToPath(property)); - } - } - - return result; - } - - /** - * Returns the JSON patch string with all operations. - * - * @return the JSON patch string. - */ - public String getPatch() { - if (this.operations == null) { - return "[]"; - } - return this.operations.toString(); - } - - /** - * Returns an array of operations on metadata. - * - * @return a JSON array of operations. - */ - public JsonArray getOperations() { - return this.operations; - } - - /** - * Returns the JSON representation of this metadata. - * - * @return the JSON representation of this metadata. - */ - @Override - public String toString() { - return this.values.toString(); - } - - /** - * Converts a JSON patch path to a JSON property name. - * Currently the metadata API only supports flat maps. - * - * @param path the path that designates the key. Must be prefixed with a "/". - * @return the JSON property name. - */ - private String pathToProperty(String path) { - if (path == null || !path.startsWith("/")) { - throw new IllegalArgumentException("Path must be prefixed with a \"/\"."); - } - return path.substring(1); - } - - /** - * Converts a JSON property name to a JSON patch path. - * - * @param property the JSON property name. - * @return the path that designates the key. - */ - private String propertyToPath(String property) { - if (property == null) { - throw new IllegalArgumentException("Property must not be null."); - } - return "/" + property; - } - - /** - * Adds a patch operation. - * - * @param op the operation type. Must be add, replace, remove, or test. - * @param path the path that designates the key. Must be prefixed with a "/". - * @param value the value to be set. - */ - private void addOp(String op, String path, String value) { - if (this.operations == null) { - this.operations = new JsonArray(); - } - - this.operations.add(new JsonObject() - .add("op", op) - .add("path", path) - .add("value", value)); - } - - /** - * Adds a patch operation. - * - * @param op the operation type. Must be add, replace, remove, or test. - * @param path the path that designates the key. Must be prefixed with a "/". - * @param value the value to be set. - */ - private void addOp(String op, String path, double value) { - if (this.operations == null) { - this.operations = new JsonArray(); - } - - this.operations.add(new JsonObject() - .add("op", op) - .add("path", path) - .add("value", value)); - } - - /** - * Adds a new patch operation for array values. - * - * @param op the operation type. Must be add, replace, remove, or test. - * @param path the path that designates the key. Must be prefixed with a "/". - * @param values the array of values to be set. - */ - private void addOp(String op, String path, JsonArray values) { - - if (this.operations == null) { - this.operations = new JsonArray(); - } - - this.operations.add(new JsonObject() - .add("op", op) - .add("path", path) - .add("value", values)); - } - - private String getStringOrNull(String path) { - return Optional.ofNullable(this.getValue(path)).map(JsonValue::asString).orElse(null); - } -} diff --git a/src/main/java/com/box/sdk/MetadataFieldFilter.java b/src/main/java/com/box/sdk/MetadataFieldFilter.java deleted file mode 100644 index b4a5a517e..000000000 --- a/src/main/java/com/box/sdk/MetadataFieldFilter.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; - -/** - * Filter for matching against a metadata field. - */ -public class MetadataFieldFilter { - - private final String field; - private final JsonValue value; - - /** - * Create a filter for matching against a string metadata field. - * - * @param field the field to match against. - * @param value the value to match against. - */ - public MetadataFieldFilter(String field, String value) { - - this.field = field; - this.value = Json.value(value); - } - - /** - * Create a filter for matching against a metadata field defined in JSON. - * - * @param jsonObj the JSON object to construct the filter from. - */ - public MetadataFieldFilter(JsonObject jsonObj) { - this.field = jsonObj.get("field").asString(); - this.value = jsonObj.get("value"); - } - - /** - * Get the JSON representation of the metadata field filter. - * - * @return the JSON object representing the filter. - */ - public JsonObject getJsonObject() { - - JsonObject obj = new JsonObject(); - obj.add("field", this.field); - - obj.add("value", this.value); - - return obj; - } -} diff --git a/src/main/java/com/box/sdk/MetadataQuery.java b/src/main/java/com/box/sdk/MetadataQuery.java deleted file mode 100644 index 4971042db..000000000 --- a/src/main/java/com/box/sdk/MetadataQuery.java +++ /dev/null @@ -1,298 +0,0 @@ -package com.box.sdk; - -import static java.util.stream.Collectors.toList; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -/** - * Represents Metadata Query. - */ -public class MetadataQuery { - static final String FROM = "from"; - static final String LIMIT = "limit"; - static final String QUERY = "query"; - static final String ANCESTOR_FOLDER_ID = "ancestor_folder_id"; - static final String MARKER = "marker"; - static final String ORDER_BY = "order_by"; - static final String FIELDS = "fields"; - static final String QUERY_PARAMS = "query_params"; - private final String from; - private final int limit; - private String query; - private JsonObject queryParameters = new JsonObject(); - private String ancestorFolderId = "0"; - private List orderBy = new ArrayList<>(); - private String marker; - private List fields = new ArrayList<>(); - - /** - * Creates Metadata Query - * - * @param from The template used in the query. Must be in the form scope_enterpriseID.templateKey - * @param limit Max results to return for a single request (0-100 inclusive) - */ - public MetadataQuery(String from, int limit) { - this.from = from; - this.limit = limit; - } - - /** - * Creates Metadata Query - * - * @param from The template used in the query. Must be in the form scope.templateKey - */ - public MetadataQuery(String from) { - this(from, 100); - } - - /** - * The logical expression of the query - * - * @param query Query string - * @return Returns current MetadataQuery object - */ - public MetadataQuery setQuery(String query) { - this.query = query; - return this; - } - - /** - * Sets the folder_id to which to restrain the query. - * If not set query starts at root level. - * - * @param ancestorFolderId The folder id - * @return Returns current MetadataQuery object - */ - public MetadataQuery setAncestorFolderId(String ancestorFolderId) { - this.ancestorFolderId = ancestorFolderId; - return this; - } - - /** - * The marker to use for requesting the next page - * - * @param marker Marker string. - * @return Returns current MetadataQuery object - */ - public MetadataQuery setMarker(String marker) { - this.marker = marker; - return this; - } - - /** - * The field_key(s) to order on and the corresponding direction(s) - * - * @param fields Fields with sort order - * @return Returns current MetadataQuery object - */ - public MetadataQuery setOrderBy(OrderBy... fields) { - this.orderBy = new ArrayList<>(); - this.orderBy.addAll(Arrays.asList(fields)); - return this; - } - - MetadataQuery setOrderBy(JsonArray orderBy) { - if (orderBy != null) { - this.orderBy = orderBy.values().stream().map(OrderBy::fromJson).collect(toList()); - } - return this; - } - - /** - * The fields to retrieve. - * - * @param fields Field names - * @return Returns current MetadataQuery object - */ - public MetadataQuery setFields(String... fields) { - this.fields = new ArrayList<>(); - this.fields.addAll(Arrays.asList(fields)); - return this; - } - - /** - * Adds parameter to query - * - * @param name Parameter name - * @param value Parameter value - * @return Returns current MetadataQuery object - */ - public MetadataQuery addParameter(String name, String value) { - this.queryParameters.add(name, value); - return this; - } - - /** - * Adds parameter to query - * - * @param name Parameter name - * @param value Parameter value - * @return Returns current MetadataQuery object - */ - public MetadataQuery addParameter(String name, int value) { - this.queryParameters.add(name, value); - return this; - } - - /** - * Adds parameter to query - * - * @param name Parameter name - * @param value Parameter value - * @return Returns current MetadataQuery object - */ - public MetadataQuery addParameter(String name, boolean value) { - this.queryParameters.add(name, value); - return this; - } - - /** - * Adds parameter to query - * - * @param name Parameter name - * @param value Parameter value - * @return Returns current MetadataQuery object - */ - public MetadataQuery addParameter(String name, float value) { - this.queryParameters.add(name, value); - return this; - } - - /** - * Adds parameter to query - * - * @param name Parameter name - * @param value Parameter value - * @return Returns current MetadataQuery object - */ - public MetadataQuery addParameter(String name, long value) { - this.queryParameters.add(name, value); - return this; - } - - /** - * Adds parameter to query - * - * @param name Parameter name - * @param value Parameter value - * @return Returns current MetadataQuery object - */ - public MetadataQuery addParameter(String name, double value) { - this.queryParameters.add(name, value); - return this; - } - - /** - * Adds parameter to query - * - * @param name Parameter name - * @param value Parameter value - * @return Returns current MetadataQuery object - */ - public MetadataQuery addParameter(String name, JsonValue value) { - this.queryParameters.add(name, Json.parse(value.toString())); - return this; - } - - MetadataQuery setQueryParams(JsonObject queryParameters) { - this.queryParameters = new JsonObject(queryParameters); - return this; - } - - JsonObject toJsonObject() { - JsonObject jsonObject = new JsonObject() - .add(FROM, from) - .add(LIMIT, limit); - if (query != null) { - jsonObject.add(QUERY, query); - } - if (ancestorFolderId != null) { - jsonObject.add(ANCESTOR_FOLDER_ID, ancestorFolderId); - } - if (marker != null) { - jsonObject.add(MARKER, marker); - } - if (!orderBy.isEmpty()) { - JsonArray orderByJson = new JsonArray(); - orderBy.stream().map(OrderBy::toJsonObject).forEach(orderByJson::add); - jsonObject.add(ORDER_BY, orderByJson); - } - if (!fields.isEmpty()) { - JsonArray fieldsJson = new JsonArray(); - fields.forEach(fieldsJson::add); - jsonObject.add(FIELDS, fieldsJson); - } - if (queryParameters.iterator().hasNext()) { - jsonObject.add(QUERY_PARAMS, new JsonObject(queryParameters)); - } - return jsonObject; - } - - int getLimit() { - return limit; - } - - String getMarker() { - return marker; - } - - public static final class OrderBy { - - static final String FIELD_KEY = "field_key"; - static final String DIRECTION = "direction"; - static final String DIRECTION_ASCENDING = "asc"; - static final String DIRECTION_DESCENDING = "desc"; - private final String fieldName; - private final String direction; - - private OrderBy(String fieldName, String direction) { - this.fieldName = fieldName; - this.direction = direction; - } - - JsonObject toJsonObject() { - return new JsonObject().add(FIELD_KEY, fieldName).add(DIRECTION, direction); - } - - /** - * Creates OrderBy for ascending sort with a specified field. - * @param fieldName Name of a field - * @return OrderBy instance - */ - public static OrderBy ascending(String fieldName) { - return new OrderBy(fieldName, DIRECTION_ASCENDING); - } - - /** - * Creates OrderBy for descending sort with a specified field. - * @param fieldName Name of a field - * @return OrderBy instance - */ - public static OrderBy descending(String fieldName) { - return new OrderBy(fieldName, DIRECTION_DESCENDING); - } - - static OrderBy fromJson(JsonValue jsonValue) { - if (jsonValue.isObject()) { - JsonObject object = jsonValue.asObject(); - String fieldName = object.get(FIELD_KEY).asString(); - String direction = object.get(DIRECTION).asString().toLowerCase(java.util.Locale.ROOT); - if (!DIRECTION_ASCENDING.equals(direction) && !DIRECTION_DESCENDING.equals(direction)) { - throw new RuntimeException( - String.format("Unsupported sort direction [%s] for field [%s]", direction, fieldName) - ); - } - return object.getString(DIRECTION, "").equals(DIRECTION_ASCENDING) - ? ascending(fieldName) - : descending(fieldName); - } - throw new RuntimeException("Unsupported json " + jsonValue); - } - } -} diff --git a/src/main/java/com/box/sdk/MetadataTemplate.java b/src/main/java/com/box/sdk/MetadataTemplate.java deleted file mode 100644 index f09e08b82..000000000 --- a/src/main/java/com/box/sdk/MetadataTemplate.java +++ /dev/null @@ -1,1456 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.net.URL; -import java.util.ArrayList; -import java.util.List; - -/** - * The MetadataTemplate class represents the Box metadata template object. - * Templates allow the metadata service to provide a multitude of services, - * such as pre-defining sets of key:value pairs or schema enforcement on specific fields. - * - * @see Box metadata templates - */ -public class MetadataTemplate extends BoxJSONObject { - - /** - * @see #getMetadataTemplate(BoxAPIConnection) - */ - public static final URLTemplate METADATA_TEMPLATE_URL_TEMPLATE - = new URLTemplate("metadata_templates/%s/%s/schema"); - - /** - * @see #getMetadataTemplateByID(BoxAPIConnection, String) - */ - public static final URLTemplate METADATA_TEMPLATE_BY_ID_URL_TEMPLATE = new URLTemplate("metadata_templates/%s"); - - /** - * @see #createMetadataTemplate(BoxAPIConnection, String, String, String, boolean, List) - */ - public static final URLTemplate METADATA_TEMPLATE_SCHEMA_URL_TEMPLATE - = new URLTemplate("metadata_templates/schema"); - - /** - * @see #getEnterpriseMetadataTemplates(String, int, BoxAPIConnection, String...) - */ - public static final URLTemplate ENTERPRISE_METADATA_URL_TEMPLATE = new URLTemplate("metadata_templates/%s"); - - /** - * - */ - private static final URLTemplate METADATA_QUERIES_URL_TEMPLATE = new URLTemplate("metadata_queries/execute_read"); - - /** - * Default metadata type to be used in query. - */ - private static final String DEFAULT_METADATA_TYPE = "properties"; - - /** - * Global metadata scope. Used by default if the metadata type is "properties". - */ - private static final String GLOBAL_METADATA_SCOPE = "global"; - - /** - * Enterprise metadata scope. Used by default if the metadata type is not "properties". - */ - private static final String ENTERPRISE_METADATA_SCOPE = "enterprise"; - - /** - * Default number of entries per page. - */ - private static final int DEFAULT_ENTRIES_LIMIT = 100; - - /** - * @see #getID() - */ - private String id; - - /** - * @see #getTemplateKey() - */ - private String templateKey; - - /** - * @see #getScope() - */ - private String scope; - - /** - * @see #getDisplayName() - */ - private String displayName; - - /** - * @see #getIsHidden() - */ - private Boolean isHidden; - - /** - * @see #getFields() - */ - private List fields; - - /** - * @see #getCopyInstanceOnItemCopy() - */ - private Boolean copyInstanceOnItemCopy; - - /** - * Constructs an empty metadata template. - */ - public MetadataTemplate() { - super(); - } - - /** - * Constructs a metadata template from a JSON string. - * - * @param json the json encoded metadate template. - */ - public MetadataTemplate(String json) { - super(json); - } - - /** - * Constructs a metadate template from a JSON object. - * - * @param jsonObject the json encoded metadate template. - */ - MetadataTemplate(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Creates new metadata template. - * - * @param api the API connection to be used. - * @param scope the scope of the object. - * @param templateKey a unique identifier for the template. - * @param displayName the display name of the field. - * @param hidden whether this template is hidden in the UI. - * @param fields the ordered set of fields for the template - * @return the metadata template returned from the server. - */ - public static MetadataTemplate createMetadataTemplate( - BoxAPIConnection api, - String scope, - String templateKey, - String displayName, - boolean hidden, - List fields - ) { - return createMetadataTemplate(api, scope, templateKey, displayName, hidden, fields, null); - } - - /** - * Creates new metadata template. - * - * @param api the API connection to be used. - * @param scope the scope of the object. - * @param templateKey a unique identifier for the template. - * @param displayName the display name of the field. - * @param hidden whether this template is hidden in the UI. - * @param fields the ordered set of fields for the template - * @param copyInstanceOnItemCopy determines whether the copy operation should copy the metadata along with the item. - * @return the metadata template returned from the server. - */ - public static MetadataTemplate createMetadataTemplate( - BoxAPIConnection api, - String scope, - String templateKey, - String displayName, - Boolean hidden, - List fields, - Boolean copyInstanceOnItemCopy - ) { - - JsonObject jsonObject = new JsonObject(); - jsonObject.add("scope", scope); - jsonObject.add("displayName", displayName); - - if (hidden != null) { - jsonObject.add("hidden", hidden); - } - - if (copyInstanceOnItemCopy != null) { - jsonObject.add("copyInstanceOnItemCopy", copyInstanceOnItemCopy); - } - - if (templateKey != null) { - jsonObject.add("templateKey", templateKey); - } - - JsonArray fieldsArray = new JsonArray(); - if (fields != null && !fields.isEmpty()) { - for (Field field : fields) { - JsonObject fieldObj = getFieldJsonObject(field); - - fieldsArray.add(fieldObj); - } - - jsonObject.add("fields", fieldsArray); - } - - URL url = METADATA_TEMPLATE_SCHEMA_URL_TEMPLATE.build(api.getBaseURL()); - BoxJSONRequest request = new BoxJSONRequest(api, url, "POST"); - request.setBody(jsonObject.toString()); - - try (BoxJSONResponse response = request.send()) { - JsonObject responseJSON = Json.parse(response.getJSON()).asObject(); - - return new MetadataTemplate(responseJSON); - } - } - - /** - * Gets the JsonObject representation of the given field object. - * - * @param field represents a template field - * @return the json object - */ - private static JsonObject getFieldJsonObject(Field field) { - JsonObject fieldObj = new JsonObject(); - fieldObj.add("type", field.getType()); - fieldObj.add("key", field.getKey()); - fieldObj.add("displayName", field.getDisplayName()); - - String fieldDesc = field.getDescription(); - if (fieldDesc != null) { - fieldObj.add("description", field.getDescription()); - } - - Boolean fieldIsHidden = field.getIsHidden(); - if (fieldIsHidden != null) { - fieldObj.add("hidden", field.getIsHidden()); - } - - JsonArray array = new JsonArray(); - List options = field.getOptions(); - if (options != null && !options.isEmpty()) { - for (String option : options) { - JsonObject optionObj = new JsonObject(); - optionObj.add("key", option); - - array.add(optionObj); - } - fieldObj.add("options", array); - } - - return fieldObj; - } - - /** - * Updates the schema of an existing metadata template. - * - * @param api the API connection to be used - * @param scope the scope of the object - * @param template Unique identifier of the template - * @param fieldOperations the fields that needs to be updated / added in the template - * @return the updated metadata template - */ - public static MetadataTemplate updateMetadataTemplate(BoxAPIConnection api, String scope, String template, - List fieldOperations) { - - JsonArray array = new JsonArray(); - - for (FieldOperation fieldOperation : fieldOperations) { - JsonObject jsonObject = getFieldOperationJsonObject(fieldOperation); - array.add(jsonObject); - } - - URL url = METADATA_TEMPLATE_URL_TEMPLATE.buildAlpha(api.getBaseURL(), scope, template); - BoxJSONRequest request = new BoxJSONRequest(api, url, "PUT"); - request.setBody(array.toString()); - - try (BoxJSONResponse response = request.send()) { - JsonObject responseJson = Json.parse(response.getJSON()).asObject(); - - return new MetadataTemplate(responseJson); - } - } - - /** - * Deletes the schema of an existing metadata template. - * - * @param api the API connection to be used - * @param scope the scope of the object - * @param template Unique identifier of the template - */ - public static void deleteMetadataTemplate(BoxAPIConnection api, String scope, String template) { - URL url = METADATA_TEMPLATE_URL_TEMPLATE.buildAlpha(api.getBaseURL(), scope, template); - BoxAPIRequest request = new BoxAPIRequest(api, url, "DELETE"); - request.send().close(); - } - - /** - * Executes a metadata query. - * - * @param api The API connection to be used - * @param queryBody The query - * @return An iterable of BoxItem.Info search results - */ - public static BoxResourceIterable executeMetadataQuery( - final BoxAPIConnection api, - final MetadataQuery queryBody - ) { - - URL url = METADATA_QUERIES_URL_TEMPLATE.build(api.getBaseURL()); - return new BoxResourceIterable( - api, url, queryBody.getLimit(), queryBody.toJsonObject(), queryBody.getMarker() - ) { - - @Override - protected BoxItem.Info factory(JsonObject jsonObject) { - String type = jsonObject.get("type").asString(); - String id = jsonObject.get("id").asString(); - - BoxItem.Info nextItemInfo; - switch (type) { - case "folder": - BoxFolder folder = new BoxFolder(api, id); - nextItemInfo = folder.new Info(jsonObject); - break; - case "file": - BoxFile file = new BoxFile(api, id); - nextItemInfo = file.new Info(jsonObject); - break; - case "web_link": - BoxWebLink link = new BoxWebLink(api, id); - nextItemInfo = link.new Info(jsonObject); - break; - default: - assert false : "Unsupported item type: " + type; - throw new BoxAPIException("Unsupported item type: " + type); - } - - return nextItemInfo; - } - }; - } - - /** - * Gets the JsonObject representation of the Field Operation. - * - * @param fieldOperation represents the template update operation - * @return the json object - */ - private static JsonObject getFieldOperationJsonObject(FieldOperation fieldOperation) { - JsonObject jsonObject = new JsonObject(); - jsonObject.add("op", fieldOperation.getOp().toString()); - - String fieldKey = fieldOperation.getFieldKey(); - if (fieldKey != null) { - jsonObject.add("fieldKey", fieldKey); - } - - Field field = fieldOperation.getData(); - if (field != null) { - JsonObject fieldObj = new JsonObject(); - - String type = field.getType(); - if (type != null) { - fieldObj.add("type", type); - } - - String key = field.getKey(); - if (key != null) { - fieldObj.add("key", key); - } - - String displayName = field.getDisplayName(); - if (displayName != null) { - fieldObj.add("displayName", displayName); - } - - String description = field.getDescription(); - if (description != null) { - fieldObj.add("description", description); - } - - Boolean hidden = field.getIsHidden(); - if (hidden != null) { - fieldObj.add("hidden", hidden); - } - - List options = field.getOptions(); - if (options != null) { - JsonArray array = new JsonArray(); - for (String option : options) { - JsonObject optionObj = new JsonObject(); - optionObj.add("key", option); - - array.add(optionObj); - } - - fieldObj.add("options", array); - } - - Boolean copyInstanceOnItemCopy = field.getCopyInstanceOnItemCopy(); - if (copyInstanceOnItemCopy != null) { - fieldObj.add("copyInstanceOnItemCopy", copyInstanceOnItemCopy); - } - - StaticConfig staticConfig = field.getStaticConfig(); - if (staticConfig != null) { - JsonObject staticConfigObj = new JsonObject(); - JsonObject classification = staticConfig.getClassification(); - if (classification != null) { - staticConfigObj.add("classification", classification); - } - fieldObj.add("staticConfig", staticConfigObj); - } - - jsonObject.add("data", fieldObj); - } - - List fieldKeys = fieldOperation.getFieldKeys(); - if (fieldKeys != null) { - jsonObject.add("fieldKeys", getJsonArray(fieldKeys)); - } - - List enumOptionKeys = fieldOperation.getEnumOptionKeys(); - if (enumOptionKeys != null) { - jsonObject.add("enumOptionKeys", getJsonArray(enumOptionKeys)); - } - - String enumOptionKey = fieldOperation.getEnumOptionKey(); - if (enumOptionKey != null) { - jsonObject.add("enumOptionKey", enumOptionKey); - } - - String multiSelectOptionKey = fieldOperation.getMultiSelectOptionKey(); - if (multiSelectOptionKey != null) { - jsonObject.add("multiSelectOptionKey", multiSelectOptionKey); - } - - List multiSelectOptionKeys = fieldOperation.getMultiSelectOptionKeys(); - if (multiSelectOptionKeys != null) { - jsonObject.add("multiSelectOptionKeys", getJsonArray(multiSelectOptionKeys)); - } - - return jsonObject; - } - - /** - * Gets the Json Array representation of the given list of strings. - * - * @param keys List of strings - * @return the JsonArray represents the list of keys - */ - private static JsonArray getJsonArray(List keys) { - JsonArray array = new JsonArray(); - for (String key : keys) { - array.add(key); - } - - return array; - } - - /** - * Gets the metadata template of properties. - * - * @param api the API connection to be used. - * @return the metadata template returned from the server. - */ - public static MetadataTemplate getMetadataTemplate(BoxAPIConnection api) { - return getMetadataTemplate(api, DEFAULT_METADATA_TYPE); - } - - /** - * Gets the metadata template of specified template type. - * - * @param api the API connection to be used. - * @param templateName the metadata template type name. - * @return the metadata template returned from the server. - */ - public static MetadataTemplate getMetadataTemplate(BoxAPIConnection api, String templateName) { - String scope = scopeBasedOnType(templateName); - return getMetadataTemplate(api, templateName, scope); - } - - /** - * Gets the metadata template of specified template type. - * - * @param api the API connection to be used. - * @param templateName the metadata template type name. - * @param scope the metadata template scope (global or enterprise). - * @param fields the fields to retrieve. - * @return the metadata template returned from the server. - */ - public static MetadataTemplate getMetadataTemplate( - BoxAPIConnection api, String templateName, String scope, String... fields) { - QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - URL url = METADATA_TEMPLATE_URL_TEMPLATE.buildAlphaWithQuery( - api.getBaseURL(), builder.toString(), scope, templateName); - BoxJSONRequest request = new BoxJSONRequest(api, url, "GET"); - try (BoxJSONResponse response = request.send()) { - return new MetadataTemplate(response.getJSON()); - } - } - - /** - * Geta the specified metadata template by its ID. - * - * @param api the API connection to be used. - * @param templateID the ID of the template to get. - * @return the metadata template object. - */ - public static MetadataTemplate getMetadataTemplateByID(BoxAPIConnection api, String templateID) { - - URL url = METADATA_TEMPLATE_BY_ID_URL_TEMPLATE.buildAlpha(api.getBaseURL(), templateID); - BoxJSONRequest request = new BoxJSONRequest(api, url, "GET"); - try (BoxJSONResponse response = request.send()) { - return new MetadataTemplate(response.getJSON()); - } - } - - /** - * Returns all metadata templates within a user's enterprise. - * - * @param api the API connection to be used. - * @param fields the fields to retrieve. - * @return the metadata template returned from the server. - */ - public static Iterable getEnterpriseMetadataTemplates(BoxAPIConnection api, String... fields) { - return getEnterpriseMetadataTemplates(ENTERPRISE_METADATA_SCOPE, api, fields); - } - - /** - * Returns all metadata templates within a user's scope. Currently only the enterprise scope is supported. - * - * @param scope the scope of the metadata templates. - * @param api the API connection to be used. - * @param fields the fields to retrieve. - * @return the metadata template returned from the server. - */ - public static Iterable getEnterpriseMetadataTemplates( - String scope, BoxAPIConnection api, String... fields - ) { - return getEnterpriseMetadataTemplates(ENTERPRISE_METADATA_SCOPE, DEFAULT_ENTRIES_LIMIT, api, fields); - } - - /** - * Returns all metadata templates within a user's scope. Currently only the enterprise scope is supported. - * - * @param scope the scope of the metadata templates. - * @param limit maximum number of entries per response. - * @param api the API connection to be used. - * @param fields the fields to retrieve. - * @return the metadata template returned from the server. - */ - public static Iterable getEnterpriseMetadataTemplates( - String scope, int limit, BoxAPIConnection api, String... fields) { - QueryStringBuilder builder = new QueryStringBuilder(); - if (fields.length > 0) { - builder.appendParam("fields", fields); - } - return new BoxResourceIterable( - api, ENTERPRISE_METADATA_URL_TEMPLATE.buildAlphaWithQuery( - api.getBaseURL(), builder.toString(), scope), limit) { - - @Override - protected MetadataTemplate factory(JsonObject jsonObject) { - return new MetadataTemplate(jsonObject); - } - }; - } - - /** - * Determines the metadata scope based on type. - * - * @param typeName type of the metadata. - * @return scope of the metadata. - */ - private static String scopeBasedOnType(String typeName) { - return typeName.equals(DEFAULT_METADATA_TYPE) ? GLOBAL_METADATA_SCOPE : ENTERPRISE_METADATA_SCOPE; - } - - /** - * Gets the ID of the template. - * - * @return the template ID. - */ - public String getID() { - return this.id; - } - - /** - * Gets the unique template key to identify the metadata template. - * - * @return the unique template key to identify the metadata template. - */ - public String getTemplateKey() { - return this.templateKey; - } - - /** - * Gets the metadata template scope. - * - * @return the metadata template scope. - */ - public String getScope() { - return this.scope; - } - - /** - * Gets the displayed metadata template name. - * - * @return the displayed metadata template name. - */ - public String getDisplayName() { - return this.displayName; - } - - /** - * Gets is the metadata template hidden. - * - * @return is the metadata template hidden. - */ - public Boolean getIsHidden() { - return this.isHidden; - } - - /** - * Gets the iterable with all fields the metadata template contains. - * - * @return the iterable with all fields the metadata template contains. - */ - public List getFields() { - return this.fields; - } - - /** - * Gets whether the copy operation should copy the metadata along with the item. - * - * @return whether the copy operation should copy the metadata along with the item. - */ - public Boolean getCopyInstanceOnItemCopy() { - return this.copyInstanceOnItemCopy; - } - - /** - * {@inheritDoc} - */ - @Override - void parseJSONMember(JsonObject.Member member) { - JsonValue value = member.getValue(); - String memberName = member.getName(); - switch (memberName) { - case "templateKey": - this.templateKey = value.asString(); - break; - case "scope": - this.scope = value.asString(); - break; - case "displayName": - this.displayName = value.asString(); - break; - case "hidden": - this.isHidden = value.asBoolean(); - break; - case "fields": - this.fields = new ArrayList<>(); - for (JsonValue field : value.asArray()) { - this.fields.add(new Field(field.asObject())); - } - break; - case "id": - this.id = value.asString(); - break; - case "copyInstanceOnItemCopy": - this.copyInstanceOnItemCopy = value.asBoolean(); - break; - default: - break; - } - } - - /** - * Possible template operations. - */ - public enum Operation { - - /** - * Adds an enum option at the end of the enum option list for the specified field. - */ - addEnumOption, - - /** - * Edits the enum option. - */ - editEnumOption, - - /** - * Removes the specified enum option from the specified enum field. - */ - removeEnumOption, - - /** - * Adds a field at the end of the field list for the template. - */ - addField, - - /** - * Edits any number of the base properties of a field: displayName, hidden, description. - */ - editField, - - /** - * Removes the specified field from the template. - */ - removeField, - - /** - * Edits any number of the base properties of a template: displayName, hidden. - */ - editTemplate, - - /** - * Reorders the enum option list to match the requested enum option list. - */ - reorderEnumOptions, - - /** - * Reorders the field list to match the requested field list. - */ - reorderFields, - - /** - * Adds a new option to a multiselect field. - */ - addMultiSelectOption, - - /** - * Edits an existing option in a multiselect field. - */ - editMultiSelectOption, - - /** - * Removes an option from a multiselect field. - */ - removeMultiSelectOption, - - /** - * Changes the display order of options in a multiselect field. - */ - reorderMultiSelectOptions - } - - /** - * Class contains information about the static configuration for the classification. - */ - public static class StaticConfig extends BoxJSONObject { - private JsonObject classification; - - /** - * Constructs an empty static configuration. - */ - public StaticConfig() { - super(); - } - - /** - * Constructs a static configuration from a JSON string. - * - * @param json the json encoded metadate template field. - */ - public StaticConfig(String json) { - super(json); - } - - /** Constructs a static configuration from a JSON object. - * - * @param jsonObject the json encoded metadate template field. - */ - StaticConfig(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the classification of the static configuration. - * - * @return the classification of the static configuration. - */ - public JsonObject getClassification() { - return this.classification; - } - - /** - * Sets the classification of the static configuration. - * - * @param classification the classification of the static configuration. - */ - public void setClassification(JsonObject classification) { - this.classification = classification; - } - - /** - * {@inheritDoc} - */ - @Override - void parseJSONMember(JsonObject.Member member) { - JsonValue value = member.getValue(); - String memberName = member.getName(); - switch (memberName) { - case "classification": - this.classification = value.asObject(); - break; - default: - break; - } - } - } - - /** - * Class contains information about the metadata template field. - */ - public static class Field extends BoxJSONObject { - - /** - * @see #getID() - */ - private String id; - - /** - * @see #getType() - */ - private String type; - - /** - * @see #getKey() - */ - private String key; - - /** - * @see #getDisplayName() - */ - private String displayName; - - /** - * @see #getIsHidden() - */ - private Boolean isHidden; - - /** - * @see #getDescription() - */ - private String description; - - /** - * @see #getOptionsObjects() - */ - private List

      - *
    • Add an enum option
    • - *
    • Edit an enum option
    • - *
    • Remove an enum option
    • - *
    • Add a field
    • - *
    • Edit a field
    • - *
    • Remove a field
    • - *
    • Edit template
    • - *
    • Reorder the enum option
    • - *
    • Reorder the field list
    • - *
    - */ - public static class FieldOperation extends BoxJSONObject { - - private Operation op; - private Field data; - private String fieldKey; - private List fieldKeys; - private List enumOptionKeys; - private String enumOptionKey; - private String multiSelectOptionKey; - private List multiSelectOptionKeys; - - /** - * Constructs an empty FieldOperation. - */ - public FieldOperation() { - super(); - } - - /** - * Constructs a Field operation from a JSON string. - * - * @param json the json encoded metadate template field. - */ - public FieldOperation(String json) { - super(json); - } - - /** - * Constructs a Field operation from a JSON object. - * - * @param jsonObject the json encoded metadate template field. - */ - FieldOperation(JsonObject jsonObject) { - super(jsonObject); - } - - /** - * Gets the operation. - * - * @return the operation - */ - public Operation getOp() { - return this.op; - } - - /** - * Sets the operation. - * - * @param op the operation - */ - public void setOp(Operation op) { - this.op = op; - } - - /** - * Gets the data associated with the operation. - * - * @return the field object representing the data - */ - public Field getData() { - return this.data; - } - - /** - * Sets the data. - * - * @param data the Field object representing the data - */ - public void setData(Field data) { - this.data = data; - } - - /** - * Gets the field key. - * - * @return the field key - */ - public String getFieldKey() { - return this.fieldKey; - } - - /** - * Sets the field key. - * - * @param fieldKey the key of the field - */ - public void setFieldKey(String fieldKey) { - this.fieldKey = fieldKey; - } - - /** - * Gets the list of field keys. - * - * @return the list of Strings - */ - public List getFieldKeys() { - return this.fieldKeys; - } - - /** - * Sets the list of the field keys. - * - * @param fieldKeys the list of strings - */ - public void setFieldKeys(List fieldKeys) { - this.fieldKeys = fieldKeys; - } - - /** - * Gets the list of keys of the Enum options. - * - * @return the list of Strings - */ - public List getEnumOptionKeys() { - return this.enumOptionKeys; - } - - /** - * Sets the list of the enum option keys. - * - * @param enumOptionKeys the list of Strings - */ - public void setEnumOptionKeys(List enumOptionKeys) { - this.enumOptionKeys = enumOptionKeys; - } - - /** - * Gets the enum option key. - * - * @return the enum option key - */ - public String getEnumOptionKey() { - return this.enumOptionKey; - } - - /** - * Sets the enum option key. - * - * @param enumOptionKey the enum option key - */ - public void setEnumOptionKey(String enumOptionKey) { - this.enumOptionKey = enumOptionKey; - } - - /** - * Gets the multi-select option key. - * - * @return the key. - */ - public String getMultiSelectOptionKey() { - return this.multiSelectOptionKey; - } - - /** - * Sets the multi-select option key. - * - * @param key the key. - */ - public void setMultiSelectOptionKey(String key) { - this.multiSelectOptionKey = key; - } - - /** - * Gets the list of multiselect option keys. - * - * @return the list of keys. - */ - public List getMultiSelectOptionKeys() { - return this.multiSelectOptionKeys; - } - - /** - * Sets the multi-select option keys. - * - * @param keys the list of keys. - */ - public void setMultiSelectOptionKeys(List keys) { - this.multiSelectOptionKeys = keys; - } - - @Override - public void clearPendingChanges() { - super.clearPendingChanges(); - } - - /** - * {@inheritDoc} - */ - @Override - void parseJSONMember(JsonObject.Member member) { - JsonValue value = member.getValue(); - String memberName = member.getName(); - switch (memberName) { - case "op": - this.op = Operation.valueOf(value.asString()); - break; - case "data": - this.data = new Field(value.asObject()); - break; - case "fieldKey": - this.fieldKey = value.asString(); - break; - case "fieldKeys": - if (this.fieldKeys == null) { - this.fieldKeys = new ArrayList<>(); - } else { - this.fieldKeys.clear(); - } - for (JsonValue jsonValue : value.asArray()) { - this.fieldKeys.add(jsonValue.asString()); - } - break; - case "enumOptionKeys": - if (this.enumOptionKeys == null) { - this.enumOptionKeys = new ArrayList<>(); - } else { - this.enumOptionKeys.clear(); - } - - for (JsonValue jsonValue : value.asArray()) { - this.enumOptionKeys.add(jsonValue.asString()); - } - break; - case "enumOptionKey": - this.enumOptionKey = value.asString(); - break; - case "multiSelectOptionKey": - this.multiSelectOptionKey = value.asString(); - break; - case "multiSelectOptionKeys": - this.multiSelectOptionKeys = new ArrayList<>(); - for (JsonValue key : value.asArray()) { - this.multiSelectOptionKeys.add(key.asString()); - } - break; - default: - break; - } - } - } -} diff --git a/src/main/java/com/box/sdk/PagingParameters.java b/src/main/java/com/box/sdk/PagingParameters.java deleted file mode 100644 index 8779c83c1..000000000 --- a/src/main/java/com/box/sdk/PagingParameters.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.box.sdk; - -/** - * Abstraction on how SDK is doing pagination. Can be used to start offset or marker based pagination. - */ -public final class PagingParameters { - /** - * Default limit value. - */ - public static final long DEFAULT_LIMIT = 1000; - private static final int MAXIMUM_ALLOWED_OFFSET = 300_000; - private final long limit; - private final boolean useMarker; - private final Long offset; - private final String marker; - - private PagingParameters(long limit, boolean useMarker, Long offset, String marker) { - this.limit = limit; - this.useMarker = useMarker; - this.offset = offset; - this.marker = marker; - } - - /** - * Starts marker based pagination. - * @param limit how many elements per request should be fetched. - * @return PagingParameters setup to start marker based pagination. - */ - public static PagingParameters marker(long limit) { - return new PagingParameters(limit, true, null, null); - } - - /** - * Starts offset based pagination. - * @param offset where offset pagination should start. Offset cannot be larger than 300000. - * @param limit how many elements per request should be fetched. - * @return PagingParameters setup to start offset based pagination. - */ - public static PagingParameters offset(long offset, long limit) { - if (offset > MAXIMUM_ALLOWED_OFFSET) { - throw new IllegalArgumentException( - "The maximum offset for offset-based pagination is 300000." - + " Marker-based pagination is recommended when a higher offset is needed." - ); - } - return new PagingParameters(limit, false, offset, null); - } - - QueryStringBuilder asQueryStringBuilder() { - QueryStringBuilder result = new QueryStringBuilder() - .appendParam("limit", limit); - if (useMarker) { - result.appendParam("usemarker", "true"); - if (marker != null) { - result.appendParam("marker", marker); - } - } else { - result.appendParam("offset", offset); - } - return result; - } - - boolean isMarkerBasedPaging() { - return useMarker; - } - - PagingParameters nextMarker(String nextMarker) { - if (!useMarker) { - throw new IllegalArgumentException( - "Cannot change offset paging to marker based paging. Use PagingParameters#nextOffset(long)." - ); - } - return new PagingParameters(limit, true, null, nextMarker); - } - - PagingParameters nextOffset(long nextOffset) { - if (useMarker) { - throw new IllegalArgumentException( - "Cannot change marker paging to offset based paging. Use PagingParameters#nextMarker(String)." - ); - } - return PagingParameters.offset(nextOffset + limit, limit); - } - - long getLimit() { - return limit; - } -} diff --git a/src/main/java/com/box/sdk/PartialCollection.java b/src/main/java/com/box/sdk/PartialCollection.java deleted file mode 100644 index c57973f49..000000000 --- a/src/main/java/com/box/sdk/PartialCollection.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.box.sdk; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; - -/** - * A collection that contains a subset of items that are a part of a larger collection. The items within a partial - * collection begin at an offset within the full collection and end at a specified limit. Note that the actual size of a - * partial collection may be less than its limit since the limit only specifies the maximum size. For example, if - * there's a full collection with a size of 3, then a partial collection with offset 0 and limit 3 would be equal to a - * partial collection with offset 0 and limit 100. - * - * @param the type of elements in this partial collection. - */ -public class PartialCollection implements Collection { - private final Collection collection; - private final long offset; - private final long limit; - private final long fullSize; - - /** - * Constructs a PartialCollection with a specified offset, limit, and full size. - * - * @param offset the offset within in the full collection. - * @param limit the maximum number of items after the offset. - * @param fullSize the total number of items in the full collection. - */ - public PartialCollection(long offset, long limit, long fullSize) { - this.collection = new ArrayList(); - this.offset = offset; - this.limit = limit; - this.fullSize = fullSize; - } - - /** - * Gets the offset within the full collection where this collection's items begin. - * - * @return the offset within the full collection where this collection's items begin. - */ - public long offset() { - return this.offset; - } - - /** - * Gets the maximum number of items within the full collection that begin at {@link #offset}. - * - * @return the maximum number of items within the full collection that begin at the offset. - */ - public long limit() { - return this.limit; - } - - /** - * Gets the size of the full collection that this partial collection is based off of. - * - * @return the size of the full collection that this partial collection is based off of. - */ - public long fullSize() { - return this.fullSize; - } - - @Override - public boolean add(E e) { - return this.collection.add(e); - } - - @Override - public boolean addAll(Collection c) { - return this.collection.addAll(c); - } - - @Override - public void clear() { - this.collection.clear(); - } - - @Override - public boolean contains(Object o) { - return this.collection.contains(o); - } - - @Override - public boolean containsAll(Collection c) { - return this.collection.containsAll(c); - } - - @Override - public boolean equals(Object o) { - return this.collection.equals(o); - } - - @Override - public int hashCode() { - return this.collection.hashCode(); - } - - @Override - public boolean isEmpty() { - return this.collection.isEmpty(); - } - - @Override - public Iterator iterator() { - return this.collection.iterator(); - } - - @Override - public boolean remove(Object o) { - return this.collection.remove(o); - } - - @Override - public boolean removeAll(Collection c) { - return this.collection.removeAll(c); - } - - @Override - public boolean retainAll(Collection c) { - return this.collection.retainAll(c); - } - - @Override - public int size() { - return this.collection.size(); - } - - @Override - public Object[] toArray() { - return this.collection.toArray(); - } - - @Override - public T[] toArray(T[] a) { - return this.collection.toArray(a); - } -} diff --git a/src/main/java/com/box/sdk/ProgressInputStream.java b/src/main/java/com/box/sdk/ProgressInputStream.java deleted file mode 100644 index 31181d839..000000000 --- a/src/main/java/com/box/sdk/ProgressInputStream.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.box.sdk; - -import java.io.IOException; -import java.io.InputStream; - -/** - * An {@link InputStream} that can report the progress of reading from another InputStream to a - * {@link ProgressListener}. - */ -class ProgressInputStream extends InputStream { - private final InputStream stream; - private final ProgressListener listener; - - private long total; - private long totalRead; - private int progress; - - /** - * Constructs a ProgressInputStream that wraps another InputStream. - * - * @param stream the stream whose progress will be monitored. - * @param listener the listener that will receive progress updates. - * @param total the total number of bytes that are expected to be read from the stream. - */ - ProgressInputStream(InputStream stream, ProgressListener listener, long total) { - this.stream = stream; - this.listener = listener; - this.total = total; - } - - /** - * Gets the total number of bytes that are expected to be read from the stream. - * - * @return the total number of bytes. - */ - public long getTotal() { - return this.total; - } - - /** - * Sets the total number of bytes that are expected to be read from the stream. - * - * @param total the total number of bytes - */ - public void setTotal(long total) { - this.total = total; - } - - @Override - public void close() throws IOException { - this.stream.close(); - } - - @Override - public int read() throws IOException { - int read = this.stream.read(); - this.totalRead++; - this.listener.onProgressChanged(this.totalRead, this.total); - - return read; - } - - @Override - public int read(byte[] b, int off, int len) throws IOException { - int read = this.stream.read(b, off, len); - this.totalRead += read; - this.listener.onProgressChanged(this.totalRead, this.total); - - return read; - } -} diff --git a/src/main/java/com/box/sdk/ProgressListener.java b/src/main/java/com/box/sdk/ProgressListener.java deleted file mode 100644 index b86c1c868..000000000 --- a/src/main/java/com/box/sdk/ProgressListener.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.box.sdk; - -/** - * The listener interface for monitoring the progress of a long-running API call. - */ -public interface ProgressListener { - - /** - * Invoked when the progress of the API call changes. - * In case of file uploads which are coming from a dynamic stream the file size cannot be determined and - * total bytes will be reported as -1. - * - * @param numBytes the number of bytes completed. - * @param totalBytes the total number of bytes. - */ - void onProgressChanged(long numBytes, long totalBytes); -} diff --git a/src/main/java/com/box/sdk/ProgressOutputStream.java b/src/main/java/com/box/sdk/ProgressOutputStream.java deleted file mode 100644 index 66ea0435f..000000000 --- a/src/main/java/com/box/sdk/ProgressOutputStream.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.box.sdk; - -import java.io.IOException; -import java.io.OutputStream; - -/** - * An {@link OutputStream} that can report the progress of writing to another OutputStream to a - * {@link ProgressListener}. - */ -class ProgressOutputStream extends OutputStream { - private final OutputStream stream; - private final ProgressListener listener; - - private long total; - private long totalWritten; - private int progress; - - ProgressOutputStream(OutputStream stream, ProgressListener listener, long total) { - this.stream = stream; - this.listener = listener; - this.total = total; - } - - public long getTotal() { - return this.total; - } - - public void setTotal(long total) { - this.total = total; - } - - @Override - public void close() throws IOException { - this.stream.close(); - } - - @Override - public void write(byte[] b) throws IOException { - this.stream.write(b); - this.totalWritten += b.length; - this.listener.onProgressChanged(this.totalWritten, this.total); - } - - @Override - public void write(byte[] b, int off, int len) throws IOException { - this.stream.write(b, off, len); - if (len < b.length) { - this.totalWritten += len; - } else { - this.totalWritten += b.length; - } - this.listener.onProgressChanged(this.totalWritten, this.total); - } - - @Override - public void write(int b) throws IOException { - this.stream.write(b); - this.totalWritten++; - this.listener.onProgressChanged(this.totalWritten, this.total); - } -} diff --git a/src/main/java/com/box/sdk/QueryStringBuilder.java b/src/main/java/com/box/sdk/QueryStringBuilder.java deleted file mode 100644 index 1355ba9ea..000000000 --- a/src/main/java/com/box/sdk/QueryStringBuilder.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.box.sdk; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.net.URLEncoder; - -class QueryStringBuilder { - private final StringBuilder stringBuilder; - - QueryStringBuilder() { - this.stringBuilder = new StringBuilder(); - } - - QueryStringBuilder(String existing) { - if (existing == null) { - this.stringBuilder = new StringBuilder(); - } else { - this.stringBuilder = new StringBuilder(existing); - } - } - - QueryStringBuilder appendParam(String key, String... fields) { - StringBuilder valuesBuilder = new StringBuilder(); - for (String field : fields) { - valuesBuilder.append(field); - valuesBuilder.append(","); - } - valuesBuilder.deleteCharAt(valuesBuilder.length() - 1); - - this.appendParam(key, valuesBuilder.toString()); - return this; - } - - QueryStringBuilder appendParam(String key, String value) { - if (this.stringBuilder.length() == 0) { - this.stringBuilder.append('?'); - } else { - this.stringBuilder.append('&'); - } - - this.stringBuilder.append(key); - this.stringBuilder.append('='); - this.stringBuilder.append(this.encode(value)); - return this; - } - - QueryStringBuilder appendParam(String key, long value) { - return this.appendParam(key, Long.toString(value)); - } - - URL addToURL(URL existing) throws MalformedURLException { - QueryStringBuilder builderFromExistingUrl = new QueryStringBuilder(existing.toString()); - if (existing.getQuery() == null) { - builderFromExistingUrl.stringBuilder.append(this.stringBuilder); - } else { - if (existing.getQuery().length() > 0) { - builderFromExistingUrl.stringBuilder.append("&"); - } - builderFromExistingUrl.stringBuilder.append(this.stringBuilder.substring(1)); - } - return new URL(builderFromExistingUrl.toString()); - } - - URL replaceQuery(URL existing) throws MalformedURLException { - String existingQuery = existing.getQuery(); - String newQuery = this.toString(); - if (existingQuery == null || existingQuery.equals("")) { - return new URL(existing + newQuery); - } - - return new URL(existing.toString() - .replace(existingQuery, newQuery.startsWith("?") ? newQuery.substring(1) : newQuery)); - } - - @Override - public String toString() { - return this.stringBuilder.toString(); - } - - private String encode(String unencoded) { - try { - return URLEncoder.encode(unencoded, "UTF-8"); - } catch (UnsupportedEncodingException ex) { - throw new BoxAPIException(ex.getMessage()); - } - } -} diff --git a/src/main/java/com/box/sdk/RealtimeServerConnection.java b/src/main/java/com/box/sdk/RealtimeServerConnection.java deleted file mode 100644 index 265228187..000000000 --- a/src/main/java/com/box/sdk/RealtimeServerConnection.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import java.net.MalformedURLException; -import java.net.URL; - -class RealtimeServerConnection { - public static final URLTemplate EVENT_URL = new URLTemplate("events"); - public static final URLTemplate EVENT_POSITION_URL = new URLTemplate("events?stream_position=%s"); - - private final BoxAPIConnection api; - private final int timeout; - private final String serverURLString; - - private int retries; - - RealtimeServerConnection(BoxAPIConnection api) { - BoxJSONRequest request = new BoxJSONRequest(api, EVENT_URL.build(api.getBaseURL()), "OPTIONS"); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - JsonArray entries = jsonObject.get("entries").asArray(); - JsonObject firstEntry = entries.get(0).asObject(); - this.serverURLString = firstEntry.get("url").asString(); - this.retries = Integer.parseInt(firstEntry.get("max_retries").asString()); - this.timeout = firstEntry.get("retry_timeout").asInt(); - this.api = api; - } - } - - int getRemainingRetries() { - return this.retries; - } - - boolean waitForChange(long position) { - if (this.retries < 1) { - throw new IllegalStateException("No more retries are allowed."); - } - - URL url; - try { - String u = this.serverURLString + "&stream_position=" + position; - url = new URL(u); - } catch (MalformedURLException e) { - throw new BoxAPIException("The long poll URL was malformed.", e); - } - - while (this.retries > 0) { - this.retries--; - BoxJSONRequest request = new BoxJSONRequest(this.api, url, "GET"); - request.setConnectTimeout(this.timeout * 1000); - request.setReadTimeout(this.timeout * 1000); - try (BoxJSONResponse response = request.send()) { - JsonObject jsonObject = Json.parse(response.getJSON()).asObject(); - String message = jsonObject.get("message").asString(); - if (message.equals("new_change")) { - return true; - } - } catch (BoxAPIException e) { - break; - } - } - - return false; - } -} diff --git a/src/main/java/com/box/sdk/Representation.java b/src/main/java/com/box/sdk/Representation.java deleted file mode 100644 index 58ad37629..000000000 --- a/src/main/java/com/box/sdk/Representation.java +++ /dev/null @@ -1,206 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; -import java.net.MalformedURLException; -import java.net.URL; - -/** - * The class represents one instance of a file representation. - */ -public class Representation { - - /** - * Used to validate if the hints header has (near) valid value. - */ - protected static final String X_REP_HINTS_PATTERN = "^(?:\\[[a-z0-9_]+(?:\\?[a-z0-9_]+\\=[a-z0-9_]+(?:" - + "\\|[a-z0-9_]+)*(?:&[a-z0-9_]+\\=[a-z0-9_]+(?:\\|[a-z0-9_]+)*)*)?(?:,[a-z0-9_]+(?:\\?[a-z0-9_]+\\=[a-z0-9_]+" - + "(?:\\|[a-z0-9_]+)*(?:&[a-z0-9_]+\\=[a-z0-9_]+(?:\\|[a-z0-9_]+)*)*)?)*\\])+$"; - - private String representation; - private JsonObject properties; - private JsonObject metadata; - private Info info; - private Content content; - private Status status; - - /** - * Construct a representation from JsonObject. - * - * @param representationJson representaion entry - */ - public Representation(JsonObject representationJson) { - for (JsonObject.Member member : representationJson) { - if (member.getName().equals("representation")) { - this.representation = member.getValue().asString(); - } else if (member.getName().equals("properties")) { - this.properties = member.getValue().asObject(); - } else if (member.getName().equals("metadata")) { - this.metadata = member.getValue().asObject(); - } else if (member.getName().equals("info")) { - this.info = new Info(member.getValue().asObject()); - } else if (member.getName().equals("content")) { - this.content = new Content(member.getValue().asObject()); - } else if (member.getName().equals("status")) { - this.status = new Status(member.getValue().asObject()); - } - } - } - - /** - * Get the extension of the format, but occasionally a name of a standard (potentially de facto) format - * or a proprietary format that Box supports. - * - * @return representation name - */ - public String getRepresentation() { - return this.representation; - } - - /** - * Get representation's set of static properties to distinguish between subtypes of a given representation, - * for example, different sizes of jpg's. Each representation has its own set of properties. - * - * @return properties of representation as JsonObject - */ - public JsonObject getProperties() { - return this.properties; - } - - /** - * Get representation's metadata. - * - * @return metadataas JsonObject - */ - public JsonObject getMetadata() { - return this.metadata; - } - - /** - * Get Info which has an opaque URL which will return status information about the file. - * It may change over time and should not be hard-coded or cached. - * - * @return info - */ - public Info getInfo() { - return this.info; - } - - /** - * Get representation's content which includes a url template. - * - * @return content - */ - public Content getContent() { - return this.content; - } - - /** - * A string with one of the following values: 'none', 'pending', 'viewable', 'error' and 'success'. - * - * @return status - */ - public Status getStatus() { - return this.status; - } - - /** - * Representation's info URL. - */ - public class Info { - - private URL url; - - /** - * Construct Representation's info. - * - * @param members json object - */ - public Info(JsonObject members) { - for (JsonObject.Member member : members) { - if (member.getName().equals("url")) { - try { - this.url = new URL(member.getValue().asString()); - } catch (MalformedURLException e) { - throw new BoxAPIException("Couldn't parse info.url for a file representation", e); - } - } - } - } - - /** - * An opaque URL which will return status information about the file. - * - * @return url - */ - public URL getUrl() { - return this.url; - } - } - - /** - * Representation's content. - */ - public class Content { - - private String urlTemplate; - - /** - * Construct a representation's content. - * - * @param members json object - */ - public Content(JsonObject members) { - for (JsonObject.Member member : members) { - if (member.getName().equals("url_template")) { - this.urlTemplate = member.getValue().asString(); - } - } - } - - /** - * Get an opaque URL template to the content, which follows RFC 6570. There is an asset_path variable that - * should be replaced with a valid path. Valid paths are different for each representation subtype. - * It may change over time and should not be hard-coded or cached. - * - * @return url template - */ - public String getUrlTemplate() { - return this.urlTemplate; - } - } - - /** - * Representation's status. - */ - public class Status { - - private String state; - - /** - * Construct a status object for a representation. - * - * @param members of status object - */ - public Status(JsonObject members) { - for (JsonObject.Member member : members) { - if (member.getName().equals("state")) { - this.state = member.getValue().asString(); - } - } - } - - /** - * A string with one of the following values: 'none', 'pending', 'viewable', 'error' and 'success'. - * none - the unknown or initial state. - * pending - content is being generated but is not ready yet. - * viewable - like pending, though indicates that enough content is available to be useful. - * error - an error happened and this content is not available. - * success - all of the content is available and complete. - * - * @return state - */ - public String getState() { - return this.state; - } - } -} diff --git a/src/main/java/com/box/sdk/RequestBodyFromCallback.java b/src/main/java/com/box/sdk/RequestBodyFromCallback.java deleted file mode 100644 index 552010496..000000000 --- a/src/main/java/com/box/sdk/RequestBodyFromCallback.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.box.sdk; - -import java.io.IOException; -import okhttp3.MediaType; -import okhttp3.RequestBody; -import okio.BufferedSink; - -/** - * - */ -final class RequestBodyFromCallback extends RequestBody { - - private final UploadFileCallback callback; - private final MediaType mediaType; - - RequestBodyFromCallback(UploadFileCallback callback, MediaType mediaType) { - this.callback = callback; - this.mediaType = mediaType; - } - - @Override - public MediaType contentType() { - return mediaType; - } - - @Override - public void writeTo(BufferedSink bufferedSink) throws IOException { - callback.writeToStream(bufferedSink.outputStream()); - } -} diff --git a/src/main/java/com/box/sdk/RequestBodyFromStream.java b/src/main/java/com/box/sdk/RequestBodyFromStream.java deleted file mode 100644 index 483baef4c..000000000 --- a/src/main/java/com/box/sdk/RequestBodyFromStream.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.box.sdk; - -import java.io.IOException; -import java.io.InputStream; -import okhttp3.MediaType; -import okhttp3.RequestBody; -import okio.BufferedSink; -import okio.Okio; -import okio.Source; - -/** - * Utility class to write body from stream to BufferedSink used by OkHttp. - */ -final class RequestBodyFromStream extends RequestBody { - private final InputStream inputStream; - private final ProgressListener progressListener; - private final MediaType mediaType; - private final long fileSize; - - RequestBodyFromStream( - InputStream inputStream, MediaType mediaType, ProgressListener progressListener, long fileSize - ) { - this.inputStream = inputStream; - this.progressListener = progressListener; - this.mediaType = mediaType; - this.fileSize = fileSize; - } - - @Override - public MediaType contentType() { - return mediaType; - } - - @Override - public void writeTo(BufferedSink bufferedSink) { - if (progressListener == null) { - writeWithoutProgressListener(bufferedSink); - } else { - writeWithProgressListener(bufferedSink); - } - } - - /** - * Returns content length. If the content length cannot be determined - * (is coming from a stream) this value will be -1. - * @return Long representing content length - */ - @Override - public long contentLength() { - return fileSize; - } - - private void writeWithoutProgressListener(BufferedSink bufferedSink) { - try (Source source = Okio.source(this.inputStream)) { - bufferedSink.writeAll(source); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - private void writeWithProgressListener(BufferedSink bufferedSink) { - try { - byte[] buffer = new byte[AbstractBoxMultipartRequest.BUFFER_SIZE]; - int n = this.inputStream.read(buffer); - int totalWritten = 0; - while (n != -1) { - bufferedSink.write(buffer, 0, n); - totalWritten += n; - if (progressListener != null) { - progressListener.onProgressChanged(totalWritten, this.contentLength()); - } - n = this.inputStream.read(buffer); - } - } catch (IOException e) { - throw new RuntimeException(e); - } finally { - try { - this.inputStream.close(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - } -} diff --git a/src/main/java/com/box/sdk/RequestInterceptor.java b/src/main/java/com/box/sdk/RequestInterceptor.java deleted file mode 100644 index da1dcb29e..000000000 --- a/src/main/java/com/box/sdk/RequestInterceptor.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.box.sdk; - -/** - * The interface for intercepting requests to the Box API. - * - *

    An interceptor may handle a request in any way it sees fit. It may update a request before it's sent, or it may - * choose to return a custom response. If an interceptor returns a null response, then the request will continue to be - * sent to the API along with any changes that the interceptor may have made to it.

    - * - *
    public BoxAPIResponse onRequest(BoxAPIRequest request) {
    - *    request.addHeader("My-Header", "My-Value");
    - *
    - *    // Returning null means the request will be sent along with our new header.
    - *    return null;
    - * }
    - * - *

    However, if a response is returned, then the request won't be sent and the interceptor's response will take the - * place of the normal response.

    - * - *
    public BoxAPIResponse onRequest(BoxAPIRequest request) {
    - *    // Returning our own response means the request won't be sent at all.
    - *    return new BoxAPIResponse();
    - * }
    - * - *

    A RequestInterceptor can be very useful for testing purposes. Requests to the Box API can be intercepted and fake - * responses can be returned, allowing you to effectively test your code without needing to actually communicate with - * the Box API.

    - */ -public interface RequestInterceptor { - /** - * Invoked when a request is about to be sent to the API. - * - * @param request the request that is about to be sent. - * @return an optional response to the request. If the response is null, then the request will continue to - * be sent to the Box API. - */ - BoxAPIResponse onRequest(BoxAPIRequest request); -} diff --git a/src/main/java/com/box/sdk/RetentionPolicyParams.java b/src/main/java/com/box/sdk/RetentionPolicyParams.java deleted file mode 100644 index 4542e65e8..000000000 --- a/src/main/java/com/box/sdk/RetentionPolicyParams.java +++ /dev/null @@ -1,189 +0,0 @@ -package com.box.sdk; - -import java.util.ArrayList; -import java.util.List; - -/** - * Optional parameters for creating an updating a Retention Policy. - * - * @see BoxRetentionPolicy - */ -public class RetentionPolicyParams { - - /** - * @see #getCanOwnerExtendRetention() - */ - private boolean canOwnerExtendRetention; - - /** - * @see #getAreOwnersNotified() - */ - private boolean areOwnersNotified; - - /** - * @see #getDescription() - */ - private String description; - - /** - * @see #getCustomNotificationRecipients() - */ - private List customNotificationRecipients; - - /** - * @see #getCustomNotificationRecipients() - */ - private RetentionType retentionType; - - /** - * Creates optional retention policy params with default values. - */ - public RetentionPolicyParams() { - this.canOwnerExtendRetention = false; - this.areOwnersNotified = false; - this.customNotificationRecipients = new ArrayList<>(); - this.description = ""; - this.retentionType = RetentionType.MODIFIABLE; - } - - /** - * @return the flag denoting whether the owner can extend the retention. - */ - public boolean getCanOwnerExtendRetention() { - return this.canOwnerExtendRetention; - } - - /** - * Set the flag denoting whether the owner can extend the retentiion. - * - * @param canOwnerExtendRetention The flag value. - */ - public void setCanOwnerExtendRetention(boolean canOwnerExtendRetention) { - this.canOwnerExtendRetention = canOwnerExtendRetention; - } - - /** - * @return the flag denoting whether owners and co-onwers are notified when the retention period is ending. - */ - public boolean getAreOwnersNotified() { - return this.areOwnersNotified; - } - - /** - * Set the flag denoting whether owners and co-owners are notified when the retention period is ending. - * - * @param areOwnersNotified The flag value. - */ - public void setAreOwnersNotified(boolean areOwnersNotified) { - this.areOwnersNotified = areOwnersNotified; - } - - /** - * @return The additional text description of the retention policy - */ - public String getDescription() { - return this.description; - } - - /** - * - * @return retention type. It can be one of values: `modifiable` or `non-modifiable`. - * - * `modifiable` means that you can modify the retention policy. For example, you can add or remove folders, - * shorten or lengthen the policy duration, or delete the assignment. - * - * `non-modifiable` means that can modify the retention policy only in a limited way: add a folder, - * lengthen the duration, retire the policy, change the disposition action or notification settings. - * You cannot perform other actions, such as deleting the assignment or shortening the policy duration. - */ - public RetentionType getRetentionType() { - return retentionType; - } - - /** - * - * @param retentionType The retention type: `modifiable` or `non-modifiable`. - */ - public void setRetentionType(RetentionType retentionType) { - this.retentionType = retentionType; - } - - /** - * Set additional text description of the retention policy. - * - * @param description The additional text description of the retention policy. - */ - public void setDescription(String description) { - this.description = description; - } - - /** - * @return the list of extra users to notify when the retention period is ending. - */ - public List getCustomNotificationRecipients() { - return this.customNotificationRecipients; - } - - /** - * Set the list of extra users to notify when the retention period is ending. - * - * @param customNotificationRecipients The list of users. - */ - public void setCustomNotificationRecipients(List customNotificationRecipients) { - this.customNotificationRecipients = customNotificationRecipients; - } - - /** - * Add a user by ID to the list of people to notify when the retention period is ending. - * - * @param userID The ID of the user to add to the list. - */ - public void addCustomNotificationRecipient(String userID) { - BoxUser user = new BoxUser(null, userID); - this.customNotificationRecipients.add(user.new Info()); - - } - - /** - * Add a user to the list of people to notify when the retention period is ending. - * - * @param user The info of the user to add to the list - */ - public void addCustomNotificationRecipient(BoxUser user) { - this.customNotificationRecipients.add(user.new Info()); - } - - /** - * The type of retention. - */ - public enum RetentionType { - /** - * You can modify the retention policy. For example, you can add or remove folders, - * shorten or lengthen the policy duration, or delete the assignment. - * Use this type if your retention policy is not related to any regulatory purposes. - */ - MODIFIABLE("modifiable"), - - /** - * You can modify the retention policy only in a limited way: add a folder, lengthen the duration, - * retire the policy, change the disposition action or notification settings. - * You cannot perform other actions, such as deleting the assignment or shortening the policy duration. - * Use this type to ensure compliance with regulatory retention policies. - */ - NON_MODIFIABLE("non_modifiable"); - - private final String jsonValue; - - RetentionType(String jsonValue) { - this.jsonValue = jsonValue; - } - - static RetentionType fromJSONString(String jsonValue) { - return RetentionType.valueOf(jsonValue.toUpperCase(java.util.Locale.ROOT)); - } - - String toJSONString() { - return this.jsonValue; - } - } -} diff --git a/src/main/java/com/box/sdk/ScopedToken.java b/src/main/java/com/box/sdk/ScopedToken.java deleted file mode 100644 index 9ed007df7..000000000 --- a/src/main/java/com/box/sdk/ScopedToken.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; - -/** - * - */ -public class ScopedToken extends BoxJSONObject { - private String accessToken; - private long expiresIn; - private String tokenType; - private String issuedTokenType; - private JsonArray restrictedTo; - private long obtainedAt; - - /** - * Constructs a ScopedToken object from a parsed JsonObject. - * - * @param jsonObject parsed json object from response of token exchange - */ - public ScopedToken(JsonObject jsonObject) { - super(jsonObject); - } - - @Override - protected void parseJSONMember(JsonObject.Member member) { - String memberName = member.getName(); - JsonValue value = member.getValue(); - if (memberName.equals("access_token")) { - this.accessToken = value.asString(); - } else if (memberName.equals("token_type")) { - this.tokenType = value.asString(); - } else if (memberName.equals("issued_token_type")) { - this.issuedTokenType = value.asString(); - } else if (memberName.equals("restricted_to")) { - this.restrictedTo = value.asArray(); - } - } - - /** - * Gets the lower scoped token. - * - * @return lower scoped access token - */ - public String getAccessToken() { - return this.accessToken; - } - - /** - * Gets the expires in time in milliseconds. - * - * @return the time in milliseconds after which the token expires - */ - public long getExpiresIn() { - return this.expiresIn; - } - - /** - * Sets the time in milliseconds in which this token will expire. - * - * @param milliseconds the number of milliseconds for which the access token is valid. - */ - public void setExpiresIn(long milliseconds) { - this.expiresIn = milliseconds; - } - - /** - * Gets the token type. - * - * @return the token type - */ - public String getTokenType() { - return this.tokenType; - } - - /** - * Gets the issued token type as per ietf namespace. - * - * @return the issued token type as per ietf namespace - */ - public String getIssuedTokenType() { - return this.issuedTokenType; - } - - /** - * Gets the restricted to information for the scoped token. - * - * @return the restricted to information - */ - public JsonArray getRestrictedTo() { - return this.restrictedTo; - } - - /** - * Gets the time in milliseconds when the token was obtained. - * - * @return the time in millinseconds when the token was obtained - */ - public long getObtainedAt() { - return this.obtainedAt; - } - - /** - * @param milliseconds the time in milliseconds at which it was obtained - */ - public void setObtainedAt(long milliseconds) { - this.obtainedAt = milliseconds; - } -} diff --git a/src/main/java/com/box/sdk/SharedLinkAPIConnection.java b/src/main/java/com/box/sdk/SharedLinkAPIConnection.java deleted file mode 100644 index b3e2450d5..000000000 --- a/src/main/java/com/box/sdk/SharedLinkAPIConnection.java +++ /dev/null @@ -1,166 +0,0 @@ -package com.box.sdk; - -/** - * This API connection uses a shared link (along with an optional password) to authenticate with the Box API. It wraps a - * preexisting BoxAPIConnection in order to provide additional access to items that are accessible with a shared link. - * @deprecated Use {@link BoxItem#getSharedItem(BoxAPIConnection, String, String, String...)} instead - */ -public class SharedLinkAPIConnection extends BoxAPIConnection { - private final BoxAPIConnection wrappedConnection; - private final String sharedLink; - private final String sharedLinkPassword; - - public SharedLinkAPIConnection(BoxAPIConnection connection, String sharedLink) { - this(connection, sharedLink, null); - } - - public SharedLinkAPIConnection(BoxAPIConnection connection, String sharedLink, String sharedLinkPassword) { - //this is a hack to maintain backward compatibility and to prevent confusing the compiler - //between two possible BoxApiConnection constructors for super(null) - super(""); - - this.wrappedConnection = connection; - this.sharedLink = sharedLink; - this.sharedLinkPassword = sharedLinkPassword; - } - - @Override - public long getExpires() { - return this.wrappedConnection.getExpires(); - } - - @Override - public void setExpires(long milliseconds) { - this.wrappedConnection.setExpires(milliseconds); - } - - @Override - public String getBaseURL() { - return this.wrappedConnection.getBaseURL(); - } - - @Override - public void setBaseURL(String baseURL) { - this.wrappedConnection.setBaseURL(baseURL); - } - - @Override - public String getBaseUploadURL() { - return this.wrappedConnection.getBaseUploadURL(); - } - - @Override - public void setBaseUploadURL(String baseUploadURL) { - this.wrappedConnection.setBaseUploadURL(baseUploadURL); - } - - @Override - public String getUserAgent() { - return this.wrappedConnection.getUserAgent(); - } - - @Override - public void setUserAgent(String userAgent) { - this.wrappedConnection.setUserAgent(userAgent); - } - - @Override - public String getAccessToken() { - return this.wrappedConnection.getAccessToken(); - } - - @Override - public void setAccessToken(String accessToken) { - this.wrappedConnection.setAccessToken(accessToken); - } - - @Override - public String getRefreshToken() { - return this.wrappedConnection.getRefreshToken(); - } - - @Override - public void setRefreshToken(String refreshToken) { - this.wrappedConnection.setRefreshToken(refreshToken); - } - - @Override - public boolean getAutoRefresh() { - return this.wrappedConnection.getAutoRefresh(); - } - - @Override - public void setAutoRefresh(boolean autoRefresh) { - this.wrappedConnection.setAutoRefresh(autoRefresh); - } - - /** - * Gets the maximum number of times an API request will be retried after an error response - * is received. - * - * @return the maximum number of request attempts. - */ - @Override - public int getMaxRetryAttempts() { - return this.wrappedConnection.getMaxRetryAttempts(); - } - - /** - * Sets the maximum number of times an API request will be retried after an error response - * is received. - * - * @param attempts the maximum number of request attempts. - */ - @Override - public void setMaxRetryAttempts(int attempts) { - this.wrappedConnection.setMaxRetryAttempts(attempts); - } - - @Override - public boolean canRefresh() { - return this.wrappedConnection.canRefresh(); - } - - @Override - public boolean needsRefresh() { - return this.wrappedConnection.needsRefresh(); - } - - @Override - public void refresh() { - this.wrappedConnection.refresh(); - } - - @Override - String lockAccessToken() { - return this.wrappedConnection.lockAccessToken(); - } - - @Override - void unlockAccessToken() { - this.wrappedConnection.unlockAccessToken(); - } - - @Override - public RequestInterceptor getRequestInterceptor() { - return this.wrappedConnection.getRequestInterceptor(); - } - - /** - * Gets the shared link used for accessing shared items. - * - * @return the shared link used for accessing shared items. - */ - String getSharedLink() { - return this.sharedLink; - } - - /** - * Gets the shared link password used for accessing shared items. - * - * @return the shared link password used for accessing shared items. - */ - String getSharedLinkPassword() { - return this.sharedLinkPassword; - } -} diff --git a/src/main/java/com/box/sdk/SizeRange.java b/src/main/java/com/box/sdk/SizeRange.java deleted file mode 100644 index e32e98ac6..000000000 --- a/src/main/java/com/box/sdk/SizeRange.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.box.sdk; - -/** - * Class is used to be a range for two byte numbers. Ususally paired with varying search filters. - */ -public class SizeRange { - private int lowerBoundBytes; - private int upperBoundBytes; - - /** - * Used for specify a file size range to filter to be used in search. - * - * @param lowerBoundBytes is the lower size in the byte range. - * @param upperBoundBytes is the upper limit in the byte range. - */ - public SizeRange(int lowerBoundBytes, int upperBoundBytes) { - this.lowerBoundBytes = lowerBoundBytes; - this.upperBoundBytes = upperBoundBytes; - } - - /** - * Return the lower size in the byte range. - * - * @return int that represents the lower size of a file. - */ - public int getLowerBoundBytes() { - return this.lowerBoundBytes; - } - - /** - * Set the lower bound bytes in the byte file size range. - * - * @param lowerBoundBytes used for the lower file size range. - */ - public void setLowerBoundBytes(int lowerBoundBytes) { - this.lowerBoundBytes = lowerBoundBytes; - } - - /** - * Get the upper bound bytes in the file size range. - * - * @return int that represents the upper limit of the file size. - */ - public int getUpperBoundBytes() { - return this.upperBoundBytes; - } - - /** - * Set the upper bound bytes in the file size range. - * - * @param upperBoundBytes used for the upper file size range. - */ - public void setUpperBoundBytes(int upperBoundBytes) { - this.upperBoundBytes = upperBoundBytes; - } - - /** - * Used to build out a string a http box api friendly range string. - * - * @return String that is uses as a rest parameter. - */ - public String buildRangeString() { - String lowerBoundString = ""; - if (this.lowerBoundBytes > -1) { - lowerBoundString = String.valueOf(this.lowerBoundBytes); - } - - String upperBoundString = ""; - if (this.upperBoundBytes > -1) { - upperBoundString = String.valueOf(this.upperBoundBytes); - } - String rangeString = String.format("%s,%s", lowerBoundString, upperBoundString); - if (rangeString == ",") { - rangeString = null; - } - return rangeString; - } -} diff --git a/src/main/java/com/box/sdk/SortParameters.java b/src/main/java/com/box/sdk/SortParameters.java deleted file mode 100644 index c8368fd05..000000000 --- a/src/main/java/com/box/sdk/SortParameters.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxFolder.SortDirection.ASC; -import static com.box.sdk.BoxFolder.SortDirection.DESC; - -/** - * Represents sorting parameters. - */ -public final class SortParameters { - private static final SortParameters NONE = new SortParameters(null, null); - private final String fieldName; - private final BoxFolder.SortDirection sortDirection; - - /** - * Creates sorting parameters. - * - * @param fieldName Name of the field used to sort. - * @param sortDirection Direction of the sort. - */ - private SortParameters(String fieldName, BoxFolder.SortDirection sortDirection) { - this.fieldName = fieldName; - this.sortDirection = sortDirection; - } - - /** - * Creates ascending sorting by specified field name. - * - * @param fieldName Name of the field used to sort. - * @return Sort parameters. - */ - public static SortParameters ascending(String fieldName) { - return new SortParameters(fieldName, ASC); - } - - /** - * Creates descending sorting by specified field name. - * - * @param fieldName Name of the field used to sort. - * @return Sort parameters. - */ - public static SortParameters descending(String fieldName) { - return new SortParameters(fieldName, DESC); - } - - /** - * Creates empty sorting parameters that will not set any sort params in the query. - * @return Sort parameters. - */ - public static SortParameters none() { - return NONE; - } - - QueryStringBuilder asQueryStringBuilder() { - if (fieldName == null || sortDirection == null) { - return new QueryStringBuilder(); - } - return new QueryStringBuilder() - .appendParam("sort", fieldName) - .appendParam("direction", sortDirection.name()); - } -} diff --git a/src/main/java/com/box/sdk/StandardCharsets.java b/src/main/java/com/box/sdk/StandardCharsets.java deleted file mode 100644 index 28af0cfd6..000000000 --- a/src/main/java/com/box/sdk/StandardCharsets.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.box.sdk; - -import java.nio.charset.Charset; - -/** - * Constant definitions for the standard Charsets. - *

    - * NB: Replace with java.nio.charset.StandardCharsets when we drop 1.6 support. - */ -public final class StandardCharsets { - - /** - * Eight-bit UCS Transformation Format. - */ - public static final Charset UTF_8 = Charset.forName("UTF-8"); - - private StandardCharsets() { - throw new UnsupportedOperationException(); - } -} diff --git a/src/main/java/com/box/sdk/Time.java b/src/main/java/com/box/sdk/Time.java deleted file mode 100644 index bc5881b2f..000000000 --- a/src/main/java/com/box/sdk/Time.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.box.sdk; - -class Time { - private static final ThreadLocal

    - * Example: - * - *

    - *  {@code
    - *      Mac mac = macPool.acquire();
    - *      try {
    - *          ...
    - *      } finally {
    - *          macPool.release(mac);
    - *      }
    - *  }
    - * 
    - */ -public class MacPool { - - /** - * Pool of {@link Mac}-s by algorithm. - */ - private final Map> macPoolByAlgorithm = new ConcurrentHashMap>(); - - /** - * Constructor. - */ - public MacPool() { - } - - /** - * Acquires reusable {@link Mac}, has to be also released! - * - * @param algorithm {@link Mac#getAlgorithm()} - * @return shared {@link Mac} - * @see #release(Mac) - */ - public Mac acquire(String algorithm) { - Mac result = null; - - Queue pool = this.macPoolByAlgorithm.get(algorithm); - if (pool != null) { - result = pool.poll(); - } - - if (result != null) { - // it has to be synchronized, for the case that some memory parts of Mac provider are changed, - // but not yet visible for this thread - synchronized (result) { - result.reset(); - } - return result; - } - - try { - return Mac.getInstance(algorithm); - } catch (NoSuchAlgorithmException e) { - throw new IllegalArgumentException(String.format("NoSuchAlgorithm '%s':", algorithm), e); - } - } - - /** - * Releases a previously acquired {@link Mac}. - * - * @param mac for release - * @see #acquire(String) - */ - public void release(Mac mac) { - Queue pool = this.macPoolByAlgorithm.get(mac.getAlgorithm()); - if (pool == null) { - pool = new LinkedBlockingQueue(); - this.macPoolByAlgorithm.put(mac.getAlgorithm(), pool); - } - pool.offer(mac); - } - -} diff --git a/src/main/java/com/box/sdk/internal/utils/CollectionUtils.java b/src/main/java/com/box/sdk/internal/utils/CollectionUtils.java deleted file mode 100644 index 30605c83f..000000000 --- a/src/main/java/com/box/sdk/internal/utils/CollectionUtils.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.box.sdk.internal.utils; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -/** - * {@link Collection} related utlities. - */ -public class CollectionUtils { - - /** - * Only static members. - */ - protected CollectionUtils() { - } - - /** - * Re-maps a provided collection. - * - * @param type of result - * @param type of source - * @param source for mapping - * @param mapper element mapper - * @return mapped source - */ - public static List map(Collection source, - Mapper mapper) { - List result = new LinkedList(); - for (T_Source element : source) { - result.add(mapper.map(element)); - } - return result; - } - - /** - * Creates list from iterable. - * - * @param iterable Iterable that will be used to create list. - * @param Collection element - * @return List with all items from iterable. Elements are in the same order as iterable is returning them. - */ - public static List createListFrom(Iterable iterable) { - List result = new ArrayList(); - for (T element : iterable) { - result.add(element); - } - return result; - } - - public static String mapToString(Map map) { - return map.keySet().stream() - .map(k -> k + "=" + map.get(k)) - .collect(Collectors.joining(",\n", "{\n", "\n}")); - } - - /** - * Contract for {@link Collection}-s mapping. - * - * @param type of result - * @param type of source - */ - public interface Mapper { - - /** - * Maps a provided value. - * - * @param input for mapping - * @return mapped value - */ - T_Result map(T_Source input); - - } -} diff --git a/src/main/java/com/box/sdk/internal/utils/JsonUtils.java b/src/main/java/com/box/sdk/internal/utils/JsonUtils.java deleted file mode 100644 index ec1dd9ca8..000000000 --- a/src/main/java/com/box/sdk/internal/utils/JsonUtils.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.box.sdk.internal.utils; - -import com.box.sdk.BoxDateFormat; -import com.eclipsesource.json.JsonObject; -import java.util.Date; - -/** - * Utility class for helping with json related operations. - */ -public class JsonUtils { - - /** - * Only static members. - */ - protected JsonUtils() { - } - - /** - * Adds String property to the json object if it's not null. - * - * @param jsonObject json object that the key/value will be added to. - * @param propertyName name of the property in json (key). - * @param propertyValue value of the property. - */ - public static void addIfNotNull(JsonObject jsonObject, String propertyName, String propertyValue) { - if (propertyValue != null) { - jsonObject.add(propertyName, propertyValue); - } - } - - /** - * Adds Boolean property to the json object if it's not null. - * - * @param jsonObject json object that the key/value will be added to. - * @param propertyName name of the property in json (key). - * @param propertyValue value of the property. - */ - public static void addIfNotNull(JsonObject jsonObject, String propertyName, Boolean propertyValue) { - if (propertyValue != null) { - jsonObject.add(propertyName, propertyValue); - } - } - - /** - * Adds Integer property to the json object if it's not null. - * - * @param jsonObject json object that the key/value will be added to. - * @param propertyName name of the property in json (key). - * @param propertyValue value of the property. - */ - public static void addIfNotNull(JsonObject jsonObject, String propertyName, Integer propertyValue) { - if (propertyValue != null) { - jsonObject.add(propertyName, propertyValue); - } - } - - /** - * Adds Long property to the json object if it's not null. - * - * @param jsonObject json object that the key/value will be added to. - * @param propertyName name of the property in json (key). - * @param propertyValue value of the property. - */ - public static void addIfNotNull(JsonObject jsonObject, String propertyName, Long propertyValue) { - if (propertyValue != null) { - jsonObject.add(propertyName, propertyValue); - } - } - - /** - * Adds Enum property to the json object if it's not null. - * - * @param jsonObject json object that the key/value will be added to. - * @param propertyName name of the property in json (key). - * @param propertyValue value of the property. - */ - public static void addIfNotNull(JsonObject jsonObject, String propertyName, Enum propertyValue) { - if (propertyValue != null) { - jsonObject.add(propertyName, propertyValue.name().toLowerCase(java.util.Locale.ROOT)); - } - } - - /** - * Adds Date property to the json object if it's not null. - * - * @param jsonObject json object that the key/value will be added to. - * @param propertyName name of the property in json (key). - * @param propertyValue value of the property. - */ - public static void addIfNotNull(JsonObject jsonObject, String propertyName, Date propertyValue) { - if (propertyValue != null) { - jsonObject.add(propertyName, BoxDateFormat.format(propertyValue)); - } - } - - /** - * Add JsonObject property to json object if it's not null. - * - * @param jsonObject json object that the key/value will be added to. - * @param propertyName name of the property in json (key). - * @param propertyValue value of the property. - */ - public static void addIfNotNull(JsonObject jsonObject, String propertyName, JsonObject propertyValue) { - if (propertyValue != null) { - jsonObject.add(propertyName, propertyValue); - } - } - - /** - * Add double property to json object if it's not null. - */ - public static void addIfNotNull(JsonObject jsonObject, String propertyName, Double propertyValue) { - if (propertyValue != null) { - jsonObject.add(propertyName, propertyValue); - } - } -} diff --git a/src/main/java/com/box/sdk/internal/utils/Parsers.java b/src/main/java/com/box/sdk/internal/utils/Parsers.java deleted file mode 100644 index 2321185a9..000000000 --- a/src/main/java/com/box/sdk/internal/utils/Parsers.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.box.sdk.internal.utils; - -import com.box.sdk.Metadata; -import com.box.sdk.Representation; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * Utility class for constructing metadata map from json object. - */ -public class Parsers { - - /** - * Only static members. - */ - protected Parsers() { - } - - /** - * Creates a map of metadata from json. - * - * @param jsonObject metadata json object for metadata field in get /files?fileds=,etadata.scope.template response - * @return Map of String as key a value another Map with a String key and Metadata value - */ - public static Map> parseAndPopulateMetadataMap(JsonObject jsonObject) { - Map> metadataMap = new HashMap>(); - //Parse all templates - for (JsonObject.Member templateMember : jsonObject) { - if (templateMember.getValue().isNull()) { - continue; - } else { - String templateName = templateMember.getName(); - Map scopeMap = metadataMap.get(templateName); - //If templateName doesn't yet exist then create an entry with empty scope map - if (scopeMap == null) { - scopeMap = new HashMap(); - metadataMap.put(templateName, scopeMap); - } - //Parse all scopes in a template - for (JsonObject.Member scopeMember : templateMember.getValue().asObject()) { - String scope = scopeMember.getName(); - Metadata metadataObject = new Metadata(scopeMember.getValue().asObject()); - scopeMap.put(scope, metadataObject); - } - } - - } - return metadataMap; - } - - /** - * Parse representations from a file object response. - * - * @param jsonObject representations json object in get response for /files/file-id?fields=representations - * @return list of representations - */ - public static List parseRepresentations(JsonObject jsonObject) { - List representations = new ArrayList(); - for (JsonValue representationJson : jsonObject.get("entries").asArray()) { - Representation representation = new Representation(representationJson.asObject()); - representations.add(representation); - } - return representations; - } -} diff --git a/src/main/java/com/box/sdk/package-info.java b/src/main/java/com/box/sdk/package-info.java deleted file mode 100644 index 35d49a07c..000000000 --- a/src/main/java/com/box/sdk/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * Provides classes and methods for interacting with the Box API. - */ -package com.box.sdk; diff --git a/src/main/java/com/box/sdk/sharedlink/AbstractSharedLinkRequest.java b/src/main/java/com/box/sdk/sharedlink/AbstractSharedLinkRequest.java deleted file mode 100644 index bce0f1342..000000000 --- a/src/main/java/com/box/sdk/sharedlink/AbstractSharedLinkRequest.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.box.sdk.sharedlink; - -import com.box.sdk.BoxSharedLink; -import java.util.Date; - -class AbstractSharedLinkRequest> { - private final BoxSharedLink link = new BoxSharedLink(); - - /** - * Sets the access level of this shared link. - * - * @param access the new access level of this shared link. - * @return this request. - */ - public T access(BoxSharedLink.Access access) { - getLink().setAccess(access); - return (T) this; - } - - /** - * Sets the password of this shared link. - * - * @param password the password of this shared link. - * @return this request. - */ - public T password(String password) { - getLink().setPassword(password); - return (T) this; - } - - /** - * Sets the time that this shared link will be deactivated. - * - * @param unsharedDate the time that this shared link will be deactivated. - * @return this request. - */ - public T unsharedDate(Date unsharedDate) { - getLink().setUnsharedDate(unsharedDate); - return (T) this; - } - - /** - * Sets vanity name used to create vanity URL. - * For example: - * vanityName = myCustomName - * will produce vanityUrl as: - * https://app.box.com/v/myCustomName - * Custom URLs should not be used when sharing sensitive content - * as vanity URLs are a lot easier to guess than regular shared links. - * - * @param vanityName Vanity name. Vanity name must be at least 12 characters long. - * @return this request. - */ - public T vanityName(String vanityName) { - getLink().setVanityName(vanityName); - return (T) this; - } - - public BoxSharedLink asSharedLink() { - return getLink(); - } - - BoxSharedLink getLink() { - return link; - } -} diff --git a/src/main/java/com/box/sdk/sharedlink/BoxSharedLinkRequest.java b/src/main/java/com/box/sdk/sharedlink/BoxSharedLinkRequest.java deleted file mode 100644 index 8e8c82420..000000000 --- a/src/main/java/com/box/sdk/sharedlink/BoxSharedLinkRequest.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.box.sdk.sharedlink; - -import com.box.sdk.BoxSharedLink; - -/** - * Represents request to create shared link with permissions. - */ -public class BoxSharedLinkRequest extends AbstractSharedLinkRequest { - - /** - * Sets the permissions associated with this shared link. - * - * @param canDownload whether the shared link can be downloaded. - * @param canPreview whether the shared link can be previewed. - * @param canEdit whether the file shared with the link can be edited. - * @return this request. - */ - public BoxSharedLinkRequest permissions(boolean canDownload, boolean canPreview, boolean canEdit) { - BoxSharedLink.Permissions permissions = new BoxSharedLink.Permissions(); - permissions.setCanDownload(canDownload); - permissions.setCanPreview(canPreview); - permissions.setCanEdit(canEdit); - getLink().setPermissions(permissions); - return this; - } - - /** - * Sets the permissions associated with this shared link. - * - * @param canDownload whether the shared link can be downloaded. - * @param canPreview whether the shared link can be previewed. - * @return this request. - */ - public BoxSharedLinkRequest permissions(boolean canDownload, boolean canPreview) { - return this.permissions(canDownload, canPreview, false); - } - -} diff --git a/src/main/java/com/box/sdk/sharedlink/BoxSharedLinkWithoutPermissionsRequest.java b/src/main/java/com/box/sdk/sharedlink/BoxSharedLinkWithoutPermissionsRequest.java deleted file mode 100644 index 9a030da89..000000000 --- a/src/main/java/com/box/sdk/sharedlink/BoxSharedLinkWithoutPermissionsRequest.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.box.sdk.sharedlink; - -/** - * Represents request to create shared link. - */ -public class BoxSharedLinkWithoutPermissionsRequest - extends AbstractSharedLinkRequest { - -} diff --git a/src/main/java/com/box/sdkgen/box/BoxConstants.java b/src/main/java/com/box/sdkgen/box/BoxConstants.java new file mode 100644 index 000000000..b31379738 --- /dev/null +++ b/src/main/java/com/box/sdkgen/box/BoxConstants.java @@ -0,0 +1,12 @@ +package com.box.sdkgen.box; + +import static com.box.sdkgen.networking.version.Version.getVersion; + +public class BoxConstants { + + private static final String JAVA_VERSION = System.getProperty("java.version"); + public static final String USER_AGENT_HEADER = + "Box Java Generated SDK v" + getVersion() + " (Java " + JAVA_VERSION + ")"; + public static final String X_BOX_UA_HEADER = + "agent=box-java-generated-sdk/" + getVersion() + "; env=Java/" + JAVA_VERSION; +} diff --git a/src/main/java/com/box/sdkgen/box/ccgauth/BoxCCGAuth.java b/src/main/java/com/box/sdkgen/box/ccgauth/BoxCCGAuth.java new file mode 100644 index 000000000..76aa22bc3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/box/ccgauth/BoxCCGAuth.java @@ -0,0 +1,169 @@ +package com.box.sdkgen.box.ccgauth; + +import com.box.sdkgen.box.errors.BoxSDKError; +import com.box.sdkgen.box.tokenstorage.InMemoryTokenStorage; +import com.box.sdkgen.box.tokenstorage.TokenStorage; +import com.box.sdkgen.managers.authorization.AuthorizationManager; +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.accesstoken.AccessToken; +import com.box.sdkgen.schemas.postoauth2revoke.PostOAuth2Revoke; +import com.box.sdkgen.schemas.postoauth2token.PostOAuth2Token; +import com.box.sdkgen.schemas.postoauth2token.PostOAuth2TokenBoxSubjectTypeField; +import com.box.sdkgen.schemas.postoauth2token.PostOAuth2TokenGrantTypeField; +import com.box.sdkgen.schemas.postoauth2token.PostOAuth2TokenSubjectTokenTypeField; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.List; + +public class BoxCCGAuth implements Authentication { + + public final CCGConfig config; + + public final TokenStorage tokenStorage; + + public String subjectId; + + public EnumWrapper subjectType; + + public BoxCCGAuth(CCGConfig config) { + this.config = config; + this.tokenStorage = this.config.getTokenStorage(); + this.subjectId = + (!(this.config.getUserId() == null) + ? this.config.getUserId() + : this.config.getEnterpriseId()); + this.subjectType = + new EnumWrapper( + (!(this.config.getUserId() == null) + ? PostOAuth2TokenBoxSubjectTypeField.USER + : PostOAuth2TokenBoxSubjectTypeField.ENTERPRISE)); + } + + public AccessToken refreshToken() { + return refreshToken(null); + } + + @Override + public AccessToken refreshToken(NetworkSession networkSession) { + AuthorizationManager authManager = + new AuthorizationManager.Builder() + .networkSession((!(networkSession == null) ? networkSession : new NetworkSession())) + .build(); + AccessToken token = + authManager.requestAccessToken( + new PostOAuth2Token.Builder(PostOAuth2TokenGrantTypeField.CLIENT_CREDENTIALS) + .clientId(this.config.getClientId()) + .clientSecret(this.config.getClientSecret()) + .boxSubjectType(this.subjectType) + .boxSubjectId(this.subjectId) + .build()); + this.tokenStorage.store(token); + return token; + } + + public AccessToken retrieveToken() { + return retrieveToken(null); + } + + @Override + public AccessToken retrieveToken(NetworkSession networkSession) { + AccessToken oldToken = this.tokenStorage.get(); + if (oldToken == null) { + AccessToken newToken = this.refreshToken(networkSession); + return newToken; + } + return oldToken; + } + + public String retrieveAuthorizationHeader() { + return retrieveAuthorizationHeader(null); + } + + @Override + public String retrieveAuthorizationHeader(NetworkSession networkSession) { + AccessToken token = this.retrieveToken(networkSession); + return String.join("", "Bearer ", token.getAccessToken()); + } + + public BoxCCGAuth withUserSubject(String userId) { + return withUserSubject(userId, new InMemoryTokenStorage()); + } + + public BoxCCGAuth withUserSubject(String userId, TokenStorage tokenStorage) { + CCGConfig newConfig = + new CCGConfig.Builder(this.config.getClientId(), this.config.getClientSecret()) + .enterpriseId(this.config.getEnterpriseId()) + .userId(userId) + .tokenStorage(tokenStorage) + .build(); + return new BoxCCGAuth(newConfig); + } + + public BoxCCGAuth withEnterpriseSubject(String enterpriseId) { + return withEnterpriseSubject(enterpriseId, new InMemoryTokenStorage()); + } + + public BoxCCGAuth withEnterpriseSubject(String enterpriseId, TokenStorage tokenStorage) { + CCGConfig newConfig = + new CCGConfig.Builder(this.config.getClientId(), this.config.getClientSecret()) + .enterpriseId(enterpriseId) + .userId(null) + .tokenStorage(tokenStorage) + .build(); + return new BoxCCGAuth(newConfig); + } + + @Override + public AccessToken downscopeToken( + List scopes, String resource, String sharedLink, NetworkSession networkSession) { + AccessToken token = this.retrieveToken(networkSession); + if (token == null) { + throw new BoxSDKError( + "No access token is available. Make an API call to retrieve a token before calling this method."); + } + AuthorizationManager authManager = + new AuthorizationManager.Builder() + .networkSession((!(networkSession == null) ? networkSession : new NetworkSession())) + .build(); + AccessToken downscopedToken = + authManager.requestAccessToken( + new PostOAuth2Token.Builder( + PostOAuth2TokenGrantTypeField.URN_IETF_PARAMS_OAUTH_GRANT_TYPE_TOKEN_EXCHANGE) + .subjectToken(token.getAccessToken()) + .subjectTokenType( + PostOAuth2TokenSubjectTokenTypeField + .URN_IETF_PARAMS_OAUTH_TOKEN_TYPE_ACCESS_TOKEN) + .resource(resource) + .scope(String.join(" ", scopes)) + .boxSharedLink(sharedLink) + .build()); + return downscopedToken; + } + + public void revokeToken() { + revokeToken(null); + } + + @Override + public void revokeToken(NetworkSession networkSession) { + AccessToken oldToken = this.tokenStorage.get(); + if (oldToken == null) { + return; + } + AuthorizationManager authManager = + new AuthorizationManager.Builder() + .networkSession((!(networkSession == null) ? networkSession : new NetworkSession())) + .build(); + authManager.revokeAccessToken( + new PostOAuth2Revoke.Builder() + .clientId(this.config.getClientId()) + .clientSecret(this.config.getClientSecret()) + .token(oldToken.getAccessToken()) + .build()); + this.tokenStorage.clear(); + } + + public TokenStorage getTokenStorage() { + return tokenStorage; + } +} diff --git a/src/main/java/com/box/sdkgen/box/ccgauth/CCGConfig.java b/src/main/java/com/box/sdkgen/box/ccgauth/CCGConfig.java new file mode 100644 index 000000000..dcf26b388 --- /dev/null +++ b/src/main/java/com/box/sdkgen/box/ccgauth/CCGConfig.java @@ -0,0 +1,89 @@ +package com.box.sdkgen.box.ccgauth; + +import com.box.sdkgen.box.tokenstorage.InMemoryTokenStorage; +import com.box.sdkgen.box.tokenstorage.TokenStorage; + +public class CCGConfig { + + public final String clientId; + + public final String clientSecret; + + public String enterpriseId; + + public String userId; + + public TokenStorage tokenStorage; + + public CCGConfig(String clientId, String clientSecret) { + this.clientId = clientId; + this.clientSecret = clientSecret; + this.tokenStorage = new InMemoryTokenStorage(); + } + + protected CCGConfig(Builder builder) { + this.clientId = builder.clientId; + this.clientSecret = builder.clientSecret; + this.enterpriseId = builder.enterpriseId; + this.userId = builder.userId; + this.tokenStorage = builder.tokenStorage; + } + + public String getClientId() { + return clientId; + } + + public String getClientSecret() { + return clientSecret; + } + + public String getEnterpriseId() { + return enterpriseId; + } + + public String getUserId() { + return userId; + } + + public TokenStorage getTokenStorage() { + return tokenStorage; + } + + public static class Builder { + + protected final String clientId; + + protected final String clientSecret; + + protected String enterpriseId; + + protected String userId; + + protected TokenStorage tokenStorage; + + public Builder(String clientId, String clientSecret) { + this.clientId = clientId; + this.clientSecret = clientSecret; + this.tokenStorage = new InMemoryTokenStorage(); + } + + public Builder enterpriseId(String enterpriseId) { + this.enterpriseId = enterpriseId; + return this; + } + + public Builder userId(String userId) { + this.userId = userId; + return this; + } + + public Builder tokenStorage(TokenStorage tokenStorage) { + this.tokenStorage = tokenStorage; + return this; + } + + public CCGConfig build() { + return new CCGConfig(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/box/developertokenauth/BoxDeveloperTokenAuth.java b/src/main/java/com/box/sdkgen/box/developertokenauth/BoxDeveloperTokenAuth.java new file mode 100644 index 000000000..0d8184e1f --- /dev/null +++ b/src/main/java/com/box/sdkgen/box/developertokenauth/BoxDeveloperTokenAuth.java @@ -0,0 +1,147 @@ +package com.box.sdkgen.box.developertokenauth; + +import com.box.sdkgen.box.errors.BoxSDKError; +import com.box.sdkgen.box.tokenstorage.InMemoryTokenStorage; +import com.box.sdkgen.box.tokenstorage.TokenStorage; +import com.box.sdkgen.managers.authorization.AuthorizationManager; +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.accesstoken.AccessToken; +import com.box.sdkgen.schemas.postoauth2revoke.PostOAuth2Revoke; +import com.box.sdkgen.schemas.postoauth2token.PostOAuth2Token; +import com.box.sdkgen.schemas.postoauth2token.PostOAuth2TokenGrantTypeField; +import com.box.sdkgen.schemas.postoauth2token.PostOAuth2TokenSubjectTokenTypeField; +import java.util.List; + +public class BoxDeveloperTokenAuth implements Authentication { + + public final String token; + + public DeveloperTokenConfig config; + + public final TokenStorage tokenStorage; + + public BoxDeveloperTokenAuth(String token) { + this.token = token; + this.config = new DeveloperTokenConfig(); + this.tokenStorage = + new InMemoryTokenStorage.Builder() + .token(new AccessToken.Builder().accessToken(this.token).build()) + .build(); + } + + protected BoxDeveloperTokenAuth(Builder builder) { + this.token = builder.token; + this.config = builder.config; + this.tokenStorage = + new InMemoryTokenStorage.Builder() + .token(new AccessToken.Builder().accessToken(this.token).build()) + .build(); + } + + public AccessToken retrieveToken() { + return retrieveToken(null); + } + + @Override + public AccessToken retrieveToken(NetworkSession networkSession) { + AccessToken token = this.tokenStorage.get(); + if (token == null) { + throw new BoxSDKError("No access token is available."); + } + return token; + } + + public AccessToken refreshToken() { + return refreshToken(null); + } + + @Override + public AccessToken refreshToken(NetworkSession networkSession) { + throw new BoxSDKError("Developer token has expired. Please provide a new one."); + } + + public String retrieveAuthorizationHeader() { + return retrieveAuthorizationHeader(null); + } + + @Override + public String retrieveAuthorizationHeader(NetworkSession networkSession) { + AccessToken token = this.retrieveToken(networkSession); + return String.join("", "Bearer ", token.getAccessToken()); + } + + public void revokeToken() { + revokeToken(null); + } + + @Override + public void revokeToken(NetworkSession networkSession) { + AccessToken token = this.tokenStorage.get(); + if (token == null) { + return; + } + AuthorizationManager authManager = + new AuthorizationManager.Builder() + .networkSession((!(networkSession == null) ? networkSession : new NetworkSession())) + .build(); + authManager.revokeAccessToken( + new PostOAuth2Revoke.Builder() + .clientId(this.config.getClientId()) + .clientSecret(this.config.getClientSecret()) + .token(token.getAccessToken()) + .build()); + this.tokenStorage.clear(); + } + + @Override + public AccessToken downscopeToken( + List scopes, String resource, String sharedLink, NetworkSession networkSession) { + AccessToken token = this.retrieveToken(networkSession); + if (token == null || token.getAccessToken() == null) { + throw new BoxSDKError("No access token is available."); + } + AuthorizationManager authManager = + new AuthorizationManager.Builder() + .networkSession((!(networkSession == null) ? networkSession : new NetworkSession())) + .build(); + AccessToken downscopedToken = + authManager.requestAccessToken( + new PostOAuth2Token.Builder( + PostOAuth2TokenGrantTypeField.URN_IETF_PARAMS_OAUTH_GRANT_TYPE_TOKEN_EXCHANGE) + .subjectToken(token.getAccessToken()) + .subjectTokenType( + PostOAuth2TokenSubjectTokenTypeField + .URN_IETF_PARAMS_OAUTH_TOKEN_TYPE_ACCESS_TOKEN) + .resource(resource) + .scope(String.join(" ", scopes)) + .boxSharedLink(sharedLink) + .build()); + return downscopedToken; + } + + public TokenStorage getTokenStorage() { + return tokenStorage; + } + + public static class Builder { + + protected final String token; + + protected DeveloperTokenConfig config; + + public Builder(String token) { + this.token = token; + this.config = new DeveloperTokenConfig(); + } + + public Builder config(DeveloperTokenConfig config) { + this.config = config; + return this; + } + + public BoxDeveloperTokenAuth build() { + return new BoxDeveloperTokenAuth(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/box/developertokenauth/DeveloperTokenConfig.java b/src/main/java/com/box/sdkgen/box/developertokenauth/DeveloperTokenConfig.java new file mode 100644 index 000000000..e2968f00e --- /dev/null +++ b/src/main/java/com/box/sdkgen/box/developertokenauth/DeveloperTokenConfig.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.box.developertokenauth; + +public class DeveloperTokenConfig { + + public String clientId; + + public String clientSecret; + + public DeveloperTokenConfig() {} + + protected DeveloperTokenConfig(Builder builder) { + this.clientId = builder.clientId; + this.clientSecret = builder.clientSecret; + } + + public String getClientId() { + return clientId; + } + + public String getClientSecret() { + return clientSecret; + } + + public static class Builder { + + protected String clientId; + + protected String clientSecret; + + public Builder clientId(String clientId) { + this.clientId = clientId; + return this; + } + + public Builder clientSecret(String clientSecret) { + this.clientSecret = clientSecret; + return this; + } + + public DeveloperTokenConfig build() { + return new DeveloperTokenConfig(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/box/errors/BoxAPIError.java b/src/main/java/com/box/sdkgen/box/errors/BoxAPIError.java new file mode 100644 index 000000000..9c37d22af --- /dev/null +++ b/src/main/java/com/box/sdkgen/box/errors/BoxAPIError.java @@ -0,0 +1,114 @@ +package com.box.sdkgen.box.errors; + +import com.box.sdkgen.internal.logging.DataSanitizer; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.fasterxml.jackson.databind.JsonNode; +import java.time.LocalDateTime; +import java.util.Optional; +import okhttp3.Request; + +public class BoxAPIError extends BoxSDKError { + + public final RequestInfo requestInfo; + + public final ResponseInfo responseInfo; + + private final DataSanitizer dataSanitizer; + + public BoxAPIError(String message, RequestInfo requestInfo, ResponseInfo responseInfo) { + super(message); + this.requestInfo = requestInfo; + this.responseInfo = responseInfo; + this.dataSanitizer = new DataSanitizer(); + } + + public static BoxAPIError fromAPICall( + Request request, + FetchResponse fetchResponse, + String rawResponseBody, + DataSanitizer dataSanitizer) { + RequestInfo requestInfo = RequestInfo.fromRequest(request); + ResponseInfo responseInfo = ResponseInfo.fromResponse(fetchResponse, rawResponseBody); + + String requestId = + Optional.ofNullable(responseInfo.getBody()) + .map(body -> body.get("request_id")) + .map(JsonNode::asText) + .orElse(""); + + return new Builder( + String.format("Status %d; Request ID: %s", responseInfo.getStatusCode(), requestId), + requestInfo, + responseInfo) + .timestamp(LocalDateTime.now().toString()) + .dataSanitizer(dataSanitizer) + .build(); + } + + protected BoxAPIError(Builder builder) { + super(builder); + this.requestInfo = builder.requestInfo; + this.responseInfo = builder.responseInfo; + this.dataSanitizer = builder.dataSanitizer; + } + + public RequestInfo getRequestInfo() { + return requestInfo; + } + + public ResponseInfo getResponseInfo() { + return responseInfo; + } + + public static class Builder extends BoxSDKError.Builder { + + protected final RequestInfo requestInfo; + + protected final ResponseInfo responseInfo; + + protected DataSanitizer dataSanitizer; + + public Builder(String message, RequestInfo requestInfo, ResponseInfo responseInfo) { + super(message); + this.requestInfo = requestInfo; + this.responseInfo = responseInfo; + this.dataSanitizer = new DataSanitizer(); + } + + @Override + public Builder timestamp(String timestamp) { + this.timestamp = timestamp; + return this; + } + + @Override + public Builder error(Exception error) { + this.error = error; + return this; + } + + @Override + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder dataSanitizer(DataSanitizer dataSanitizer) { + this.dataSanitizer = dataSanitizer; + return this; + } + + public BoxAPIError build() { + return new BoxAPIError(this); + } + } + + @Override + public String toString() { + return String.join( + "", + super.toString(), + String.format("\nRequest: %s", requestInfo.print(dataSanitizer)), + String.format("\nResponse: %s", responseInfo.print(dataSanitizer))); + } +} diff --git a/src/main/java/com/box/sdkgen/box/errors/BoxSDKError.java b/src/main/java/com/box/sdkgen/box/errors/BoxSDKError.java new file mode 100644 index 000000000..9e05191d1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/box/errors/BoxSDKError.java @@ -0,0 +1,81 @@ +package com.box.sdkgen.box.errors; + +public class BoxSDKError extends RuntimeException { + + public final String message; + + public String timestamp; + + public Exception error; + + public String name; + + public BoxSDKError(String message) { + this.message = message; + this.name = "BoxSDKError"; + } + + public BoxSDKError(String message, Exception error) { + this.message = message; + this.error = error; + this.name = "BoxSDKError"; + } + + protected BoxSDKError(Builder builder) { + this.message = builder.message; + this.timestamp = builder.timestamp; + this.error = builder.error; + this.name = builder.name; + } + + public String getMessage() { + return message; + } + + public String getTimestamp() { + return timestamp; + } + + public Object getError() { + return error; + } + + public String getName() { + return name; + } + + public static class Builder { + + protected final String message; + + protected String timestamp; + + protected Exception error; + + protected String name; + + public Builder(String message) { + this.message = message; + this.name = "BoxSDKError"; + } + + public Builder timestamp(String timestamp) { + this.timestamp = timestamp; + return this; + } + + public Builder error(Exception error) { + this.error = error; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public BoxSDKError build() { + return new BoxSDKError(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/box/errors/RequestInfo.java b/src/main/java/com/box/sdkgen/box/errors/RequestInfo.java new file mode 100644 index 000000000..f8e1b8d1f --- /dev/null +++ b/src/main/java/com/box/sdkgen/box/errors/RequestInfo.java @@ -0,0 +1,135 @@ +package com.box.sdkgen.box.errors; + +import com.box.sdkgen.internal.logging.DataSanitizer; +import java.util.Map; +import java.util.stream.Collectors; +import okhttp3.Request; +import okhttp3.RequestBody; +import okio.Buffer; + +public class RequestInfo { + + public final String method; + + public final String url; + + public final Map queryParams; + + public final Map headers; + + public String body; + + public RequestInfo( + String method, String url, Map queryParams, Map headers) { + this.method = method; + this.url = url; + this.queryParams = queryParams; + this.headers = headers; + } + + protected RequestInfo(Builder builder) { + this.method = builder.method; + this.url = builder.url; + this.queryParams = builder.queryParams; + this.headers = builder.headers; + this.body = builder.body; + } + + public String getMethod() { + return method; + } + + public String getUrl() { + return url; + } + + public Map getQueryParams() { + return queryParams; + } + + public Map getHeaders() { + return headers; + } + + public String getBody() { + return body; + } + + public static class Builder { + + protected final String method; + + protected final String url; + + protected final Map queryParams; + + protected final Map headers; + + protected String body; + + public Builder( + String method, String url, Map queryParams, Map headers) { + this.method = method; + this.url = url; + this.queryParams = queryParams; + this.headers = headers; + } + + public Builder body(String body) { + this.body = body; + return this; + } + + public RequestInfo build() { + return new RequestInfo(this); + } + } + + public static RequestInfo fromRequest(Request request) { + Builder requestInfoBuilder = + new Builder( + request.method(), + request.url().toString(), + request.url().queryParameterNames().stream() + .collect( + Collectors.toMap(name -> name, name -> request.url().queryParameter(name))), + request.headers().toMultimap().entrySet().stream() + .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().get(0)))) + .body(getRequestBodyAsString(request.body())); + + return new RequestInfo(requestInfoBuilder); + } + + private static String getRequestBodyAsString(RequestBody requestBody) { + try { + if (requestBody != null) { + Buffer buffer = new Buffer(); + requestBody.writeTo(buffer); + return buffer.readUtf8(); + } + } catch (Exception e) { + return null; + } + return null; + } + + String print(DataSanitizer dataSanitizer) { + Map sanitizedHeaders = + dataSanitizer == null ? headers : dataSanitizer.sanitizeHeaders(headers); + return "RequestInfo{" + + "\n\tmethod='" + + method + + '\'' + + ", \n\turl='" + + url + + '\'' + + ", \n\tqueryParams=" + + queryParams + + ", \n\theaders=" + + sanitizedHeaders + + ", \n\tbody='" + + body + + '\'' + + '}'; + } +} diff --git a/src/main/java/com/box/sdkgen/box/errors/ResponseInfo.java b/src/main/java/com/box/sdkgen/box/errors/ResponseInfo.java new file mode 100644 index 000000000..f5f182872 --- /dev/null +++ b/src/main/java/com/box/sdkgen/box/errors/ResponseInfo.java @@ -0,0 +1,174 @@ +package com.box.sdkgen.box.errors; + +import com.box.sdkgen.internal.logging.DataSanitizer; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.fasterxml.jackson.databind.JsonNode; +import java.util.Map; + +public class ResponseInfo { + + public final int statusCode; + + public final Map headers; + + public JsonNode body; + + public String rawBody; + + public String code; + + public JsonNode contextInfo; + + public String requestId; + + public String helpUrl; + + public ResponseInfo(int statusCode, Map headers) { + this.statusCode = statusCode; + this.headers = headers; + } + + protected ResponseInfo(Builder builder) { + this.statusCode = builder.statusCode; + this.headers = builder.headers; + this.body = builder.body; + this.rawBody = builder.rawBody; + this.code = builder.code; + this.contextInfo = builder.contextInfo; + this.requestId = builder.requestId; + this.helpUrl = builder.helpUrl; + } + + public int getStatusCode() { + return statusCode; + } + + public Map getHeaders() { + return headers; + } + + public JsonNode getBody() { + return body; + } + + public String getRawBody() { + return rawBody; + } + + public String getCode() { + return code; + } + + public JsonNode getContextInfo() { + return contextInfo; + } + + public String getRequestId() { + return requestId; + } + + public String getHelpUrl() { + return helpUrl; + } + + public static class Builder { + + protected final int statusCode; + + protected final Map headers; + + protected JsonNode body; + + protected String rawBody; + + protected String code; + + protected JsonNode contextInfo; + + protected String requestId; + + protected String helpUrl; + + public Builder(int statusCode, Map headers) { + this.statusCode = statusCode; + this.headers = headers; + } + + public Builder body(JsonNode body) { + this.body = body; + return this; + } + + public Builder rawBody(String rawBody) { + this.rawBody = rawBody; + return this; + } + + public Builder code(String code) { + this.code = code; + return this; + } + + public Builder contextInfo(JsonNode contextInfo) { + this.contextInfo = contextInfo; + return this; + } + + public Builder requestId(String requestId) { + this.requestId = requestId; + return this; + } + + public Builder helpUrl(String helpUrl) { + this.helpUrl = helpUrl; + return this; + } + + public ResponseInfo build() { + return new ResponseInfo(this); + } + } + + public static ResponseInfo fromResponse(FetchResponse fetchResponse, String rawResponseBody) { + Builder builder = new Builder(fetchResponse.getStatus(), fetchResponse.getHeaders()); + JsonNode body = fetchResponse.getData(); + if (body == null) { + builder.rawBody(rawResponseBody); + } else { + builder + .body(body) + .rawBody(body.toString()) + .code(body.get("code") != null ? body.get("code").asText("") : null) + .contextInfo(body.get("context_info") != null ? body.get("context_info") : null) + .requestId(body.get("request_id") != null ? body.get("request_id").asText() : null) + .helpUrl(body.get("help_url") != null ? body.get("help_url").asText() : null); + } + + return builder.build(); + } + + String print(DataSanitizer dataSanitizer) { + Map sanitizedHeaders = + dataSanitizer == null ? headers : dataSanitizer.sanitizeHeaders(headers); + JsonNode sanitizedBody = dataSanitizer == null ? body : dataSanitizer.sanitizeBody(body); + return "ResponseInfo{" + + "\n\tstatusCode=" + + statusCode + + ", \n\theaders=" + + sanitizedHeaders + + ", \n\tbody=" + + sanitizedBody + + ", \n\tcode='" + + code + + '\'' + + ", \n\tcontextInfo=" + + contextInfo + + ", \n\trequestId='" + + requestId + + '\'' + + ", \n\thelpUrl='" + + helpUrl + + '\'' + + '}'; + } +} diff --git a/src/main/java/com/box/sdkgen/box/jwtauth/BoxJWTAuth.java b/src/main/java/com/box/sdkgen/box/jwtauth/BoxJWTAuth.java new file mode 100644 index 000000000..0d951c6db --- /dev/null +++ b/src/main/java/com/box/sdkgen/box/jwtauth/BoxJWTAuth.java @@ -0,0 +1,207 @@ +package com.box.sdkgen.box.jwtauth; + +import static com.box.sdkgen.internal.utils.UtilsManager.createJwtAssertion; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.getEpochTimeInSeconds; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.internal.utils.UtilsManager.isBrowser; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.box.errors.BoxSDKError; +import com.box.sdkgen.box.tokenstorage.InMemoryTokenStorage; +import com.box.sdkgen.box.tokenstorage.TokenStorage; +import com.box.sdkgen.internal.utils.JwtKey; +import com.box.sdkgen.internal.utils.JwtSignOptions; +import com.box.sdkgen.managers.authorization.AuthorizationManager; +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.accesstoken.AccessToken; +import com.box.sdkgen.schemas.postoauth2revoke.PostOAuth2Revoke; +import com.box.sdkgen.schemas.postoauth2token.PostOAuth2Token; +import com.box.sdkgen.schemas.postoauth2token.PostOAuth2TokenGrantTypeField; +import com.box.sdkgen.schemas.postoauth2token.PostOAuth2TokenSubjectTokenTypeField; +import java.util.List; +import java.util.Map; + +public class BoxJWTAuth implements Authentication { + + public final JWTConfig config; + + public final TokenStorage tokenStorage; + + public String subjectId; + + public String subjectType; + + public BoxJWTAuth(JWTConfig config) { + this.config = config; + this.tokenStorage = this.config.getTokenStorage(); + this.subjectId = + (!(this.config.getEnterpriseId() == null) + ? this.config.getEnterpriseId() + : this.config.getUserId()); + this.subjectType = (!(this.config.getEnterpriseId() == null) ? "enterprise" : "user"); + } + + public AccessToken refreshToken() { + return refreshToken(null); + } + + @Override + public AccessToken refreshToken(NetworkSession networkSession) { + if (isBrowser()) { + throw new BoxSDKError("JWT auth is not supported in browser environment."); + } + Map claims = + mapOf( + entryOf("exp", getEpochTimeInSeconds() + 30), + entryOf("box_sub_type", this.subjectType)); + JwtSignOptions jwtOptions = + new JwtSignOptions( + this.config.getAlgorithm(), + "https://api.box.com/oauth2/token", + this.config.getClientId(), + this.subjectId, + getUuid(), + this.config.getJwtKeyId(), + this.config.getPrivateKeyDecryptor()); + JwtKey jwtKey = new JwtKey(this.config.getPrivateKey(), this.config.getPrivateKeyPassphrase()); + String assertion = createJwtAssertion(claims, jwtKey, jwtOptions); + AuthorizationManager authManager = + new AuthorizationManager.Builder() + .networkSession((!(networkSession == null) ? networkSession : new NetworkSession())) + .build(); + AccessToken token = + authManager.requestAccessToken( + new PostOAuth2Token.Builder( + PostOAuth2TokenGrantTypeField.URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER) + .assertion(assertion) + .clientId(this.config.getClientId()) + .clientSecret(this.config.getClientSecret()) + .build()); + this.tokenStorage.store(token); + return token; + } + + public AccessToken retrieveToken() { + return retrieveToken(null); + } + + @Override + public AccessToken retrieveToken(NetworkSession networkSession) { + AccessToken oldToken = this.tokenStorage.get(); + if (oldToken == null) { + AccessToken newToken = this.refreshToken(networkSession); + return newToken; + } + return oldToken; + } + + public String retrieveAuthorizationHeader() { + return retrieveAuthorizationHeader(null); + } + + @Override + public String retrieveAuthorizationHeader(NetworkSession networkSession) { + AccessToken token = this.retrieveToken(networkSession); + return String.join("", "Bearer ", token.getAccessToken()); + } + + public BoxJWTAuth withUserSubject(String userId) { + return withUserSubject(userId, new InMemoryTokenStorage()); + } + + public BoxJWTAuth withUserSubject(String userId, TokenStorage tokenStorage) { + JWTConfig newConfig = + new JWTConfig.Builder( + this.config.getClientId(), + this.config.getClientSecret(), + this.config.getJwtKeyId(), + this.config.getPrivateKey(), + this.config.getPrivateKeyPassphrase()) + .enterpriseId(null) + .userId(userId) + .tokenStorage(tokenStorage) + .build(); + BoxJWTAuth newAuth = new BoxJWTAuth(newConfig); + return newAuth; + } + + public BoxJWTAuth withEnterpriseSubject(String enterpriseId) { + return withEnterpriseSubject(enterpriseId, new InMemoryTokenStorage()); + } + + public BoxJWTAuth withEnterpriseSubject(String enterpriseId, TokenStorage tokenStorage) { + JWTConfig newConfig = + new JWTConfig.Builder( + this.config.getClientId(), + this.config.getClientSecret(), + this.config.getJwtKeyId(), + this.config.getPrivateKey(), + this.config.getPrivateKeyPassphrase()) + .enterpriseId(enterpriseId) + .userId(null) + .tokenStorage(tokenStorage) + .build(); + BoxJWTAuth newAuth = new BoxJWTAuth(newConfig); + return newAuth; + } + + @Override + public AccessToken downscopeToken( + List scopes, String resource, String sharedLink, NetworkSession networkSession) { + AccessToken token = this.retrieveToken(networkSession); + if (token == null) { + throw new BoxSDKError( + "No access token is available. Make an API call to retrieve a token before calling this method."); + } + AuthorizationManager authManager = + new AuthorizationManager.Builder() + .networkSession((!(networkSession == null) ? networkSession : new NetworkSession())) + .build(); + AccessToken downscopedToken = + authManager.requestAccessToken( + new PostOAuth2Token.Builder( + PostOAuth2TokenGrantTypeField.URN_IETF_PARAMS_OAUTH_GRANT_TYPE_TOKEN_EXCHANGE) + .subjectToken(token.getAccessToken()) + .subjectTokenType( + PostOAuth2TokenSubjectTokenTypeField + .URN_IETF_PARAMS_OAUTH_TOKEN_TYPE_ACCESS_TOKEN) + .resource(resource) + .scope(String.join(" ", scopes)) + .boxSharedLink(sharedLink) + .build()); + return downscopedToken; + } + + public void revokeToken() { + revokeToken(null); + } + + @Override + public void revokeToken(NetworkSession networkSession) { + AccessToken oldToken = this.tokenStorage.get(); + if (oldToken == null) { + return; + } + AuthorizationManager authManager = + new AuthorizationManager.Builder() + .networkSession((!(networkSession == null) ? networkSession : new NetworkSession())) + .build(); + authManager.revokeAccessToken( + new PostOAuth2Revoke.Builder() + .clientId(this.config.getClientId()) + .clientSecret(this.config.getClientSecret()) + .token(oldToken.getAccessToken()) + .build()); + this.tokenStorage.clear(); + } + + public JWTConfig getConfig() { + return config; + } + + public TokenStorage getTokenStorage() { + return tokenStorage; + } +} diff --git a/src/main/java/com/box/sdkgen/box/jwtauth/JWTConfig.java b/src/main/java/com/box/sdkgen/box/jwtauth/JWTConfig.java new file mode 100644 index 000000000..57b2ba6dd --- /dev/null +++ b/src/main/java/com/box/sdkgen/box/jwtauth/JWTConfig.java @@ -0,0 +1,232 @@ +package com.box.sdkgen.box.jwtauth; + +import static com.box.sdkgen.internal.utils.UtilsManager.readTextFromFile; +import static com.box.sdkgen.serialization.json.JsonManager.jsonToSerializedData; + +import com.box.sdkgen.box.tokenstorage.InMemoryTokenStorage; +import com.box.sdkgen.box.tokenstorage.TokenStorage; +import com.box.sdkgen.internal.utils.DefaultPrivateKeyDecryptor; +import com.box.sdkgen.internal.utils.JwtAlgorithm; +import com.box.sdkgen.internal.utils.PrivateKeyDecryptor; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; + +public class JWTConfig { + + public final String clientId; + + public final String clientSecret; + + public final String jwtKeyId; + + public final String privateKey; + + public final String privateKeyPassphrase; + + public String enterpriseId; + + public String userId; + + public EnumWrapper algorithm; + + public TokenStorage tokenStorage; + + public PrivateKeyDecryptor privateKeyDecryptor; + + public JWTConfig( + String clientId, + String clientSecret, + String jwtKeyId, + String privateKey, + String privateKeyPassphrase) { + this.clientId = clientId; + this.clientSecret = clientSecret; + this.jwtKeyId = jwtKeyId; + this.privateKey = privateKey; + this.privateKeyPassphrase = privateKeyPassphrase; + this.algorithm = new EnumWrapper(JwtAlgorithm.RS256); + this.tokenStorage = new InMemoryTokenStorage(); + this.privateKeyDecryptor = new DefaultPrivateKeyDecryptor(); + } + + protected JWTConfig(Builder builder) { + this.clientId = builder.clientId; + this.clientSecret = builder.clientSecret; + this.jwtKeyId = builder.jwtKeyId; + this.privateKey = builder.privateKey; + this.privateKeyPassphrase = builder.privateKeyPassphrase; + this.enterpriseId = builder.enterpriseId; + this.userId = builder.userId; + this.algorithm = builder.algorithm; + this.tokenStorage = builder.tokenStorage; + this.privateKeyDecryptor = builder.privateKeyDecryptor; + } + + public static JWTConfig fromConfigJsonString(String configJsonString) { + return fromConfigJsonString(configJsonString, null, null); + } + + public static JWTConfig fromConfigJsonString(String configJsonString, TokenStorage tokenStorage) { + return fromConfigJsonString(configJsonString, tokenStorage, null); + } + + public static JWTConfig fromConfigJsonString( + String configJsonString, PrivateKeyDecryptor privateKeyDecryptor) { + return fromConfigJsonString(configJsonString, null, privateKeyDecryptor); + } + + public static JWTConfig fromConfigJsonString( + String configJsonString, TokenStorage tokenStorage, PrivateKeyDecryptor privateKeyDecryptor) { + JwtConfigFile configJson = + JsonManager.deserialize(jsonToSerializedData(configJsonString), JwtConfigFile.class); + TokenStorage tokenStorageToUse = + (tokenStorage == null ? new InMemoryTokenStorage() : tokenStorage); + PrivateKeyDecryptor privateKeyDecryptorToUse = + (privateKeyDecryptor == null ? new DefaultPrivateKeyDecryptor() : privateKeyDecryptor); + JWTConfig newConfig = + new JWTConfig.Builder( + configJson.getBoxAppSettings().getClientId(), + configJson.getBoxAppSettings().getClientSecret(), + configJson.getBoxAppSettings().getAppAuth().getPublicKeyId(), + configJson.getBoxAppSettings().getAppAuth().getPrivateKey(), + configJson.getBoxAppSettings().getAppAuth().getPassphrase()) + .enterpriseId(configJson.getEnterpriseId()) + .userId(configJson.getUserId()) + .tokenStorage(tokenStorageToUse) + .privateKeyDecryptor(privateKeyDecryptorToUse) + .build(); + return newConfig; + } + + public static JWTConfig fromConfigFile(String configFilePath) { + return fromConfigFile(configFilePath, null, null); + } + + public static JWTConfig fromConfigFile(String configFilePath, TokenStorage tokenStorage) { + return fromConfigFile(configFilePath, tokenStorage, null); + } + + public static JWTConfig fromConfigFile( + String configFilePath, PrivateKeyDecryptor privateKeyDecryptor) { + return fromConfigFile(configFilePath, null, privateKeyDecryptor); + } + + public static JWTConfig fromConfigFile( + String configFilePath, TokenStorage tokenStorage, PrivateKeyDecryptor privateKeyDecryptor) { + String configJsonString = readTextFromFile(configFilePath); + return JWTConfig.fromConfigJsonString(configJsonString, tokenStorage, privateKeyDecryptor); + } + + public String getClientId() { + return clientId; + } + + public String getClientSecret() { + return clientSecret; + } + + public String getJwtKeyId() { + return jwtKeyId; + } + + public String getPrivateKey() { + return privateKey; + } + + public String getPrivateKeyPassphrase() { + return privateKeyPassphrase; + } + + public String getEnterpriseId() { + return enterpriseId; + } + + public String getUserId() { + return userId; + } + + public EnumWrapper getAlgorithm() { + return algorithm; + } + + public TokenStorage getTokenStorage() { + return tokenStorage; + } + + public PrivateKeyDecryptor getPrivateKeyDecryptor() { + return privateKeyDecryptor; + } + + public static class Builder { + + protected final String clientId; + + protected final String clientSecret; + + protected final String jwtKeyId; + + protected final String privateKey; + + protected final String privateKeyPassphrase; + + protected String enterpriseId; + + protected String userId; + + protected EnumWrapper algorithm; + + protected TokenStorage tokenStorage; + + protected PrivateKeyDecryptor privateKeyDecryptor; + + public Builder( + String clientId, + String clientSecret, + String jwtKeyId, + String privateKey, + String privateKeyPassphrase) { + this.clientId = clientId; + this.clientSecret = clientSecret; + this.jwtKeyId = jwtKeyId; + this.privateKey = privateKey; + this.privateKeyPassphrase = privateKeyPassphrase; + this.algorithm = new EnumWrapper(JwtAlgorithm.RS256); + this.tokenStorage = new InMemoryTokenStorage(); + this.privateKeyDecryptor = new DefaultPrivateKeyDecryptor(); + } + + public Builder enterpriseId(String enterpriseId) { + this.enterpriseId = enterpriseId; + return this; + } + + public Builder userId(String userId) { + this.userId = userId; + return this; + } + + public Builder algorithm(JwtAlgorithm algorithm) { + this.algorithm = new EnumWrapper(algorithm); + return this; + } + + public Builder algorithm(EnumWrapper algorithm) { + this.algorithm = algorithm; + return this; + } + + public Builder tokenStorage(TokenStorage tokenStorage) { + this.tokenStorage = tokenStorage; + return this; + } + + public Builder privateKeyDecryptor(PrivateKeyDecryptor privateKeyDecryptor) { + this.privateKeyDecryptor = privateKeyDecryptor; + return this; + } + + public JWTConfig build() { + return new JWTConfig(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/box/jwtauth/JwtConfigAppSettings.java b/src/main/java/com/box/sdkgen/box/jwtauth/JwtConfigAppSettings.java new file mode 100644 index 000000000..d6bbbd345 --- /dev/null +++ b/src/main/java/com/box/sdkgen/box/jwtauth/JwtConfigAppSettings.java @@ -0,0 +1,75 @@ +package com.box.sdkgen.box.jwtauth; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class JwtConfigAppSettings extends SerializableObject { + + @JsonProperty("clientID") + protected final String clientId; + + protected final String clientSecret; + + protected final JwtConfigAppSettingsAppAuth appAuth; + + public JwtConfigAppSettings( + @JsonProperty("clientID") String clientId, + @JsonProperty("clientSecret") String clientSecret, + @JsonProperty("appAuth") JwtConfigAppSettingsAppAuth appAuth) { + super(); + this.clientId = clientId; + this.clientSecret = clientSecret; + this.appAuth = appAuth; + } + + public String getClientId() { + return clientId; + } + + public String getClientSecret() { + return clientSecret; + } + + public JwtConfigAppSettingsAppAuth getAppAuth() { + return appAuth; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + JwtConfigAppSettings casted = (JwtConfigAppSettings) o; + return Objects.equals(clientId, casted.clientId) + && Objects.equals(clientSecret, casted.clientSecret) + && Objects.equals(appAuth, casted.appAuth); + } + + @Override + public int hashCode() { + return Objects.hash(clientId, clientSecret, appAuth); + } + + @Override + public String toString() { + return "JwtConfigAppSettings{" + + "clientId='" + + clientId + + '\'' + + ", " + + "clientSecret='" + + clientSecret + + '\'' + + ", " + + "appAuth='" + + appAuth + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/box/jwtauth/JwtConfigAppSettingsAppAuth.java b/src/main/java/com/box/sdkgen/box/jwtauth/JwtConfigAppSettingsAppAuth.java new file mode 100644 index 000000000..91772a41e --- /dev/null +++ b/src/main/java/com/box/sdkgen/box/jwtauth/JwtConfigAppSettingsAppAuth.java @@ -0,0 +1,75 @@ +package com.box.sdkgen.box.jwtauth; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class JwtConfigAppSettingsAppAuth extends SerializableObject { + + @JsonProperty("publicKeyID") + protected final String publicKeyId; + + protected final String privateKey; + + protected final String passphrase; + + public JwtConfigAppSettingsAppAuth( + @JsonProperty("publicKeyID") String publicKeyId, + @JsonProperty("privateKey") String privateKey, + @JsonProperty("passphrase") String passphrase) { + super(); + this.publicKeyId = publicKeyId; + this.privateKey = privateKey; + this.passphrase = passphrase; + } + + public String getPublicKeyId() { + return publicKeyId; + } + + public String getPrivateKey() { + return privateKey; + } + + public String getPassphrase() { + return passphrase; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + JwtConfigAppSettingsAppAuth casted = (JwtConfigAppSettingsAppAuth) o; + return Objects.equals(publicKeyId, casted.publicKeyId) + && Objects.equals(privateKey, casted.privateKey) + && Objects.equals(passphrase, casted.passphrase); + } + + @Override + public int hashCode() { + return Objects.hash(publicKeyId, privateKey, passphrase); + } + + @Override + public String toString() { + return "JwtConfigAppSettingsAppAuth{" + + "publicKeyId='" + + publicKeyId + + '\'' + + ", " + + "privateKey='" + + privateKey + + '\'' + + ", " + + "passphrase='" + + passphrase + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/box/jwtauth/JwtConfigFile.java b/src/main/java/com/box/sdkgen/box/jwtauth/JwtConfigFile.java new file mode 100644 index 000000000..a57cd5f00 --- /dev/null +++ b/src/main/java/com/box/sdkgen/box/jwtauth/JwtConfigFile.java @@ -0,0 +1,108 @@ +package com.box.sdkgen.box.jwtauth; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class JwtConfigFile extends SerializableObject { + + @JsonProperty("enterpriseID") + protected String enterpriseId; + + @JsonProperty("userID") + protected String userId; + + protected final JwtConfigAppSettings boxAppSettings; + + public JwtConfigFile(@JsonProperty("boxAppSettings") JwtConfigAppSettings boxAppSettings) { + super(); + this.boxAppSettings = boxAppSettings; + } + + protected JwtConfigFile(Builder builder) { + super(); + this.enterpriseId = builder.enterpriseId; + this.userId = builder.userId; + this.boxAppSettings = builder.boxAppSettings; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getEnterpriseId() { + return enterpriseId; + } + + public String getUserId() { + return userId; + } + + public JwtConfigAppSettings getBoxAppSettings() { + return boxAppSettings; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + JwtConfigFile casted = (JwtConfigFile) o; + return Objects.equals(enterpriseId, casted.enterpriseId) + && Objects.equals(userId, casted.userId) + && Objects.equals(boxAppSettings, casted.boxAppSettings); + } + + @Override + public int hashCode() { + return Objects.hash(enterpriseId, userId, boxAppSettings); + } + + @Override + public String toString() { + return "JwtConfigFile{" + + "enterpriseId='" + + enterpriseId + + '\'' + + ", " + + "userId='" + + userId + + '\'' + + ", " + + "boxAppSettings='" + + boxAppSettings + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String enterpriseId; + + protected String userId; + + protected final JwtConfigAppSettings boxAppSettings; + + public Builder(JwtConfigAppSettings boxAppSettings) { + super(); + this.boxAppSettings = boxAppSettings; + } + + public Builder enterpriseId(String enterpriseId) { + this.enterpriseId = enterpriseId; + return this; + } + + public Builder userId(String userId) { + this.userId = userId; + return this; + } + + public JwtConfigFile build() { + return new JwtConfigFile(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/box/oauth/BoxOAuth.java b/src/main/java/com/box/sdkgen/box/oauth/BoxOAuth.java new file mode 100644 index 000000000..4efb7d976 --- /dev/null +++ b/src/main/java/com/box/sdkgen/box/oauth/BoxOAuth.java @@ -0,0 +1,177 @@ +package com.box.sdkgen.box.oauth; + +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; +import static com.box.sdkgen.serialization.json.JsonManager.sdToUrlParams; + +import com.box.sdkgen.box.errors.BoxSDKError; +import com.box.sdkgen.box.tokenstorage.TokenStorage; +import com.box.sdkgen.managers.authorization.AuthorizationManager; +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.accesstoken.AccessToken; +import com.box.sdkgen.schemas.postoauth2revoke.PostOAuth2Revoke; +import com.box.sdkgen.schemas.postoauth2token.PostOAuth2Token; +import com.box.sdkgen.schemas.postoauth2token.PostOAuth2TokenGrantTypeField; +import com.box.sdkgen.schemas.postoauth2token.PostOAuth2TokenSubjectTokenTypeField; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.List; +import java.util.Map; + +public class BoxOAuth implements Authentication { + + public final OAuthConfig config; + + public final TokenStorage tokenStorage; + + public BoxOAuth(OAuthConfig config) { + this.config = config; + this.tokenStorage = this.config.getTokenStorage(); + } + + public String getAuthorizeUrl() { + return getAuthorizeUrl(new GetAuthorizeUrlOptions()); + } + + public String getAuthorizeUrl(GetAuthorizeUrlOptions options) { + Map paramsMap = + prepareParams( + mapOf( + entryOf( + "client_id", + (!(options.getClientId() == null) + ? options.getClientId() + : this.config.getClientId())), + entryOf( + "response_type", + (!(options.getResponseType() == null) ? options.getResponseType() : "code")), + entryOf("redirect_uri", options.getRedirectUri()), + entryOf("state", options.getState()), + entryOf("scope", options.getScope()))); + return String.join( + "", + "https://account.box.com/api/oauth2/authorize?", + sdToUrlParams(JsonManager.serialize(paramsMap))); + } + + public AccessToken getTokensAuthorizationCodeGrant(String authorizationCode) { + return getTokensAuthorizationCodeGrant(authorizationCode, null); + } + + public AccessToken getTokensAuthorizationCodeGrant( + String authorizationCode, NetworkSession networkSession) { + AuthorizationManager authManager = + new AuthorizationManager.Builder() + .networkSession((!(networkSession == null) ? networkSession : new NetworkSession())) + .build(); + AccessToken token = + authManager.requestAccessToken( + new PostOAuth2Token.Builder(PostOAuth2TokenGrantTypeField.AUTHORIZATION_CODE) + .code(authorizationCode) + .clientId(this.config.getClientId()) + .clientSecret(this.config.getClientSecret()) + .build()); + this.tokenStorage.store(token); + return token; + } + + public AccessToken retrieveToken() { + return retrieveToken(null); + } + + @Override + public AccessToken retrieveToken(NetworkSession networkSession) { + AccessToken token = this.tokenStorage.get(); + if (token == null) { + throw new BoxSDKError( + "Access and refresh tokens not available. Authenticate before making any API call first."); + } + return token; + } + + public AccessToken refreshToken() { + return refreshToken(null); + } + + @Override + public AccessToken refreshToken(NetworkSession networkSession) { + AccessToken oldToken = this.tokenStorage.get(); + String tokenUsedForRefresh = (!(oldToken == null) ? oldToken.getRefreshToken() : null); + AuthorizationManager authManager = + new AuthorizationManager.Builder() + .networkSession((!(networkSession == null) ? networkSession : new NetworkSession())) + .build(); + AccessToken token = + authManager.requestAccessToken( + new PostOAuth2Token.Builder(PostOAuth2TokenGrantTypeField.REFRESH_TOKEN) + .clientId(this.config.getClientId()) + .clientSecret(this.config.getClientSecret()) + .refreshToken(tokenUsedForRefresh) + .build()); + this.tokenStorage.store(token); + return token; + } + + public String retrieveAuthorizationHeader() { + return retrieveAuthorizationHeader(null); + } + + @Override + public String retrieveAuthorizationHeader(NetworkSession networkSession) { + AccessToken token = this.retrieveToken(networkSession); + return String.join("", "Bearer ", token.getAccessToken()); + } + + public void revokeToken() { + revokeToken(null); + } + + @Override + public void revokeToken(NetworkSession networkSession) { + AccessToken token = this.tokenStorage.get(); + if (token == null) { + return; + } + AuthorizationManager authManager = + new AuthorizationManager.Builder() + .networkSession((!(networkSession == null) ? networkSession : new NetworkSession())) + .build(); + authManager.revokeAccessToken( + new PostOAuth2Revoke.Builder() + .clientId(this.config.getClientId()) + .clientSecret(this.config.getClientSecret()) + .token(token.getAccessToken()) + .build()); + } + + @Override + public AccessToken downscopeToken( + List scopes, String resource, String sharedLink, NetworkSession networkSession) { + AccessToken token = this.retrieveToken(networkSession); + if (token == null || token.getAccessToken() == null) { + throw new BoxSDKError("No access token is available."); + } + AuthorizationManager authManager = + new AuthorizationManager.Builder() + .networkSession((!(networkSession == null) ? networkSession : new NetworkSession())) + .build(); + AccessToken downscopedToken = + authManager.requestAccessToken( + new PostOAuth2Token.Builder( + PostOAuth2TokenGrantTypeField.URN_IETF_PARAMS_OAUTH_GRANT_TYPE_TOKEN_EXCHANGE) + .subjectToken(token.getAccessToken()) + .subjectTokenType( + PostOAuth2TokenSubjectTokenTypeField + .URN_IETF_PARAMS_OAUTH_TOKEN_TYPE_ACCESS_TOKEN) + .resource(resource) + .scope(String.join(" ", scopes)) + .boxSharedLink(sharedLink) + .build()); + return downscopedToken; + } + + public TokenStorage getTokenStorage() { + return tokenStorage; + } +} diff --git a/src/main/java/com/box/sdkgen/box/oauth/GetAuthorizeUrlOptions.java b/src/main/java/com/box/sdkgen/box/oauth/GetAuthorizeUrlOptions.java new file mode 100644 index 000000000..0a57edd59 --- /dev/null +++ b/src/main/java/com/box/sdkgen/box/oauth/GetAuthorizeUrlOptions.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.box.oauth; + +public class GetAuthorizeUrlOptions { + + public String clientId; + + public String redirectUri; + + public String responseType; + + public String state; + + public String scope; + + public GetAuthorizeUrlOptions() {} + + protected GetAuthorizeUrlOptions(Builder builder) { + this.clientId = builder.clientId; + this.redirectUri = builder.redirectUri; + this.responseType = builder.responseType; + this.state = builder.state; + this.scope = builder.scope; + } + + public String getClientId() { + return clientId; + } + + public String getRedirectUri() { + return redirectUri; + } + + public String getResponseType() { + return responseType; + } + + public String getState() { + return state; + } + + public String getScope() { + return scope; + } + + public static class Builder { + + protected String clientId; + + protected String redirectUri; + + protected String responseType; + + protected String state; + + protected String scope; + + public Builder clientId(String clientId) { + this.clientId = clientId; + return this; + } + + public Builder redirectUri(String redirectUri) { + this.redirectUri = redirectUri; + return this; + } + + public Builder responseType(String responseType) { + this.responseType = responseType; + return this; + } + + public Builder state(String state) { + this.state = state; + return this; + } + + public Builder scope(String scope) { + this.scope = scope; + return this; + } + + public GetAuthorizeUrlOptions build() { + return new GetAuthorizeUrlOptions(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/box/oauth/OAuthConfig.java b/src/main/java/com/box/sdkgen/box/oauth/OAuthConfig.java new file mode 100644 index 000000000..690e85b50 --- /dev/null +++ b/src/main/java/com/box/sdkgen/box/oauth/OAuthConfig.java @@ -0,0 +1,61 @@ +package com.box.sdkgen.box.oauth; + +import com.box.sdkgen.box.tokenstorage.InMemoryTokenStorage; +import com.box.sdkgen.box.tokenstorage.TokenStorage; + +public class OAuthConfig { + + public final String clientId; + + public final String clientSecret; + + public TokenStorage tokenStorage; + + public OAuthConfig(String clientId, String clientSecret) { + this.clientId = clientId; + this.clientSecret = clientSecret; + this.tokenStorage = new InMemoryTokenStorage(); + } + + protected OAuthConfig(Builder builder) { + this.clientId = builder.clientId; + this.clientSecret = builder.clientSecret; + this.tokenStorage = builder.tokenStorage; + } + + public String getClientId() { + return clientId; + } + + public String getClientSecret() { + return clientSecret; + } + + public TokenStorage getTokenStorage() { + return tokenStorage; + } + + public static class Builder { + + protected final String clientId; + + protected final String clientSecret; + + protected TokenStorage tokenStorage; + + public Builder(String clientId, String clientSecret) { + this.clientId = clientId; + this.clientSecret = clientSecret; + this.tokenStorage = new InMemoryTokenStorage(); + } + + public Builder tokenStorage(TokenStorage tokenStorage) { + this.tokenStorage = tokenStorage; + return this; + } + + public OAuthConfig build() { + return new OAuthConfig(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/box/tokenstorage/InMemoryTokenStorage.java b/src/main/java/com/box/sdkgen/box/tokenstorage/InMemoryTokenStorage.java new file mode 100644 index 000000000..00cbfbcc5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/box/tokenstorage/InMemoryTokenStorage.java @@ -0,0 +1,48 @@ +package com.box.sdkgen.box.tokenstorage; + +import com.box.sdkgen.schemas.accesstoken.AccessToken; + +public class InMemoryTokenStorage implements TokenStorage { + private AccessToken token; + + public InMemoryTokenStorage() { + this.token = null; + } + + public InMemoryTokenStorage(AccessToken token) { + this.token = token; + } + + protected InMemoryTokenStorage(Builder builder) { + this.token = builder.token; + } + + @Override + public void store(AccessToken token) { + this.token = token; + } + + @Override + public AccessToken get() { + return token; + } + + @Override + public void clear() { + this.token = null; + } + + public static class Builder { + + protected AccessToken token; + + public Builder token(AccessToken token) { + this.token = token; + return this; + } + + public InMemoryTokenStorage build() { + return new InMemoryTokenStorage(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/box/tokenstorage/TokenStorage.java b/src/main/java/com/box/sdkgen/box/tokenstorage/TokenStorage.java new file mode 100644 index 000000000..11b37c95f --- /dev/null +++ b/src/main/java/com/box/sdkgen/box/tokenstorage/TokenStorage.java @@ -0,0 +1,11 @@ +package com.box.sdkgen.box.tokenstorage; + +import com.box.sdkgen.schemas.accesstoken.AccessToken; + +public interface TokenStorage { + void store(AccessToken token); + + AccessToken get(); + + void clear(); +} diff --git a/src/main/java/com/box/sdkgen/client/BoxClient.java b/src/main/java/com/box/sdkgen/client/BoxClient.java new file mode 100644 index 000000000..61e525fa4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/client/BoxClient.java @@ -0,0 +1,1322 @@ +package com.box.sdkgen.client; + +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.managers.ai.AiManager; +import com.box.sdkgen.managers.aistudio.AiStudioManager; +import com.box.sdkgen.managers.appitemassociations.AppItemAssociationsManager; +import com.box.sdkgen.managers.archives.ArchivesManager; +import com.box.sdkgen.managers.authorization.AuthorizationManager; +import com.box.sdkgen.managers.avatars.AvatarsManager; +import com.box.sdkgen.managers.chunkeduploads.ChunkedUploadsManager; +import com.box.sdkgen.managers.classifications.ClassificationsManager; +import com.box.sdkgen.managers.collaborationallowlistentries.CollaborationAllowlistEntriesManager; +import com.box.sdkgen.managers.collaborationallowlistexempttargets.CollaborationAllowlistExemptTargetsManager; +import com.box.sdkgen.managers.collections.CollectionsManager; +import com.box.sdkgen.managers.comments.CommentsManager; +import com.box.sdkgen.managers.devicepinners.DevicePinnersManager; +import com.box.sdkgen.managers.docgen.DocgenManager; +import com.box.sdkgen.managers.docgentemplate.DocgenTemplateManager; +import com.box.sdkgen.managers.downloads.DownloadsManager; +import com.box.sdkgen.managers.emailaliases.EmailAliasesManager; +import com.box.sdkgen.managers.events.EventsManager; +import com.box.sdkgen.managers.fileclassifications.FileClassificationsManager; +import com.box.sdkgen.managers.filemetadata.FileMetadataManager; +import com.box.sdkgen.managers.filerequests.FileRequestsManager; +import com.box.sdkgen.managers.files.FilesManager; +import com.box.sdkgen.managers.fileversionlegalholds.FileVersionLegalHoldsManager; +import com.box.sdkgen.managers.fileversionretentions.FileVersionRetentionsManager; +import com.box.sdkgen.managers.fileversions.FileVersionsManager; +import com.box.sdkgen.managers.filewatermarks.FileWatermarksManager; +import com.box.sdkgen.managers.folderclassifications.FolderClassificationsManager; +import com.box.sdkgen.managers.folderlocks.FolderLocksManager; +import com.box.sdkgen.managers.foldermetadata.FolderMetadataManager; +import com.box.sdkgen.managers.folders.FoldersManager; +import com.box.sdkgen.managers.folderwatermarks.FolderWatermarksManager; +import com.box.sdkgen.managers.groups.GroupsManager; +import com.box.sdkgen.managers.hubcollaborations.HubCollaborationsManager; +import com.box.sdkgen.managers.hubitems.HubItemsManager; +import com.box.sdkgen.managers.hubs.HubsManager; +import com.box.sdkgen.managers.integrationmappings.IntegrationMappingsManager; +import com.box.sdkgen.managers.invites.InvitesManager; +import com.box.sdkgen.managers.legalholdpolicies.LegalHoldPoliciesManager; +import com.box.sdkgen.managers.legalholdpolicyassignments.LegalHoldPolicyAssignmentsManager; +import com.box.sdkgen.managers.listcollaborations.ListCollaborationsManager; +import com.box.sdkgen.managers.memberships.MembershipsManager; +import com.box.sdkgen.managers.metadatacascadepolicies.MetadataCascadePoliciesManager; +import com.box.sdkgen.managers.metadatatemplates.MetadataTemplatesManager; +import com.box.sdkgen.managers.recentitems.RecentItemsManager; +import com.box.sdkgen.managers.retentionpolicies.RetentionPoliciesManager; +import com.box.sdkgen.managers.retentionpolicyassignments.RetentionPolicyAssignmentsManager; +import com.box.sdkgen.managers.search.SearchManager; +import com.box.sdkgen.managers.sessiontermination.SessionTerminationManager; +import com.box.sdkgen.managers.sharedlinksappitems.SharedLinksAppItemsManager; +import com.box.sdkgen.managers.sharedlinksfiles.SharedLinksFilesManager; +import com.box.sdkgen.managers.sharedlinksfolders.SharedLinksFoldersManager; +import com.box.sdkgen.managers.sharedlinksweblinks.SharedLinksWebLinksManager; +import com.box.sdkgen.managers.shieldinformationbarrierreports.ShieldInformationBarrierReportsManager; +import com.box.sdkgen.managers.shieldinformationbarriers.ShieldInformationBarriersManager; +import com.box.sdkgen.managers.shieldinformationbarriersegmentmembers.ShieldInformationBarrierSegmentMembersManager; +import com.box.sdkgen.managers.shieldinformationbarriersegmentrestrictions.ShieldInformationBarrierSegmentRestrictionsManager; +import com.box.sdkgen.managers.shieldinformationbarriersegments.ShieldInformationBarrierSegmentsManager; +import com.box.sdkgen.managers.shieldlists.ShieldListsManager; +import com.box.sdkgen.managers.signrequests.SignRequestsManager; +import com.box.sdkgen.managers.signtemplates.SignTemplatesManager; +import com.box.sdkgen.managers.skills.SkillsManager; +import com.box.sdkgen.managers.storagepolicies.StoragePoliciesManager; +import com.box.sdkgen.managers.storagepolicyassignments.StoragePolicyAssignmentsManager; +import com.box.sdkgen.managers.taskassignments.TaskAssignmentsManager; +import com.box.sdkgen.managers.tasks.TasksManager; +import com.box.sdkgen.managers.termsofservices.TermsOfServicesManager; +import com.box.sdkgen.managers.termsofserviceuserstatuses.TermsOfServiceUserStatusesManager; +import com.box.sdkgen.managers.transfer.TransferManager; +import com.box.sdkgen.managers.trashedfiles.TrashedFilesManager; +import com.box.sdkgen.managers.trashedfolders.TrashedFoldersManager; +import com.box.sdkgen.managers.trasheditems.TrashedItemsManager; +import com.box.sdkgen.managers.trashedweblinks.TrashedWebLinksManager; +import com.box.sdkgen.managers.uploads.UploadsManager; +import com.box.sdkgen.managers.usercollaborations.UserCollaborationsManager; +import com.box.sdkgen.managers.users.UsersManager; +import com.box.sdkgen.managers.webhooks.WebhooksManager; +import com.box.sdkgen.managers.weblinks.WebLinksManager; +import com.box.sdkgen.managers.workflows.WorkflowsManager; +import com.box.sdkgen.managers.zipdownloads.ZipDownloadsManager; +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.baseurls.BaseUrls; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.interceptors.Interceptor; +import com.box.sdkgen.networking.network.NetworkSession; +import java.util.List; +import java.util.Map; + +public class BoxClient { + + public final Authentication auth; + + public NetworkSession networkSession; + + public final AuthorizationManager authorization; + + public final FilesManager files; + + public final TrashedFilesManager trashedFiles; + + public final AppItemAssociationsManager appItemAssociations; + + public final DownloadsManager downloads; + + public final UploadsManager uploads; + + public final ChunkedUploadsManager chunkedUploads; + + public final ListCollaborationsManager listCollaborations; + + public final CommentsManager comments; + + public final TasksManager tasks; + + public final FileVersionsManager fileVersions; + + public final FileMetadataManager fileMetadata; + + public final FileClassificationsManager fileClassifications; + + public final SkillsManager skills; + + public final FileWatermarksManager fileWatermarks; + + public final FileRequestsManager fileRequests; + + public final FoldersManager folders; + + public final TrashedFoldersManager trashedFolders; + + public final FolderMetadataManager folderMetadata; + + public final FolderClassificationsManager folderClassifications; + + public final TrashedItemsManager trashedItems; + + public final FolderWatermarksManager folderWatermarks; + + public final FolderLocksManager folderLocks; + + public final MetadataTemplatesManager metadataTemplates; + + public final ClassificationsManager classifications; + + public final MetadataCascadePoliciesManager metadataCascadePolicies; + + public final SearchManager search; + + public final UserCollaborationsManager userCollaborations; + + public final TaskAssignmentsManager taskAssignments; + + public final SharedLinksFilesManager sharedLinksFiles; + + public final SharedLinksFoldersManager sharedLinksFolders; + + public final WebLinksManager webLinks; + + public final TrashedWebLinksManager trashedWebLinks; + + public final SharedLinksWebLinksManager sharedLinksWebLinks; + + public final SharedLinksAppItemsManager sharedLinksAppItems; + + public final UsersManager users; + + public final SessionTerminationManager sessionTermination; + + public final AvatarsManager avatars; + + public final TransferManager transfer; + + public final EmailAliasesManager emailAliases; + + public final MembershipsManager memberships; + + public final InvitesManager invites; + + public final GroupsManager groups; + + public final WebhooksManager webhooks; + + public final EventsManager events; + + public final CollectionsManager collections; + + public final RecentItemsManager recentItems; + + public final RetentionPoliciesManager retentionPolicies; + + public final RetentionPolicyAssignmentsManager retentionPolicyAssignments; + + public final LegalHoldPoliciesManager legalHoldPolicies; + + public final LegalHoldPolicyAssignmentsManager legalHoldPolicyAssignments; + + public final FileVersionRetentionsManager fileVersionRetentions; + + public final FileVersionLegalHoldsManager fileVersionLegalHolds; + + public final ShieldInformationBarriersManager shieldInformationBarriers; + + public final ShieldInformationBarrierReportsManager shieldInformationBarrierReports; + + public final ShieldInformationBarrierSegmentsManager shieldInformationBarrierSegments; + + public final ShieldInformationBarrierSegmentMembersManager shieldInformationBarrierSegmentMembers; + + public final ShieldInformationBarrierSegmentRestrictionsManager + shieldInformationBarrierSegmentRestrictions; + + public final DevicePinnersManager devicePinners; + + public final TermsOfServicesManager termsOfServices; + + public final TermsOfServiceUserStatusesManager termsOfServiceUserStatuses; + + public final CollaborationAllowlistEntriesManager collaborationAllowlistEntries; + + public final CollaborationAllowlistExemptTargetsManager collaborationAllowlistExemptTargets; + + public final StoragePoliciesManager storagePolicies; + + public final StoragePolicyAssignmentsManager storagePolicyAssignments; + + public final ZipDownloadsManager zipDownloads; + + public final SignRequestsManager signRequests; + + public final WorkflowsManager workflows; + + public final SignTemplatesManager signTemplates; + + public final IntegrationMappingsManager integrationMappings; + + public final AiManager ai; + + public final AiStudioManager aiStudio; + + public final DocgenTemplateManager docgenTemplate; + + public final DocgenManager docgen; + + public final HubsManager hubs; + + public final HubCollaborationsManager hubCollaborations; + + public final HubItemsManager hubItems; + + public final ShieldListsManager shieldLists; + + public final ArchivesManager archives; + + public BoxClient(Authentication auth) { + this.auth = auth; + this.networkSession = new NetworkSession.Builder().baseUrls(new BaseUrls()).build(); + this.authorization = + new AuthorizationManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.files = + new FilesManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.trashedFiles = + new TrashedFilesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.appItemAssociations = + new AppItemAssociationsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.downloads = + new DownloadsManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.uploads = + new UploadsManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.chunkedUploads = + new ChunkedUploadsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.listCollaborations = + new ListCollaborationsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.comments = + new CommentsManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.tasks = + new TasksManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.fileVersions = + new FileVersionsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.fileMetadata = + new FileMetadataManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.fileClassifications = + new FileClassificationsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.skills = + new SkillsManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.fileWatermarks = + new FileWatermarksManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.fileRequests = + new FileRequestsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.folders = + new FoldersManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.trashedFolders = + new TrashedFoldersManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.folderMetadata = + new FolderMetadataManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.folderClassifications = + new FolderClassificationsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.trashedItems = + new TrashedItemsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.folderWatermarks = + new FolderWatermarksManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.folderLocks = + new FolderLocksManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.metadataTemplates = + new MetadataTemplatesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.classifications = + new ClassificationsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.metadataCascadePolicies = + new MetadataCascadePoliciesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.search = + new SearchManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.userCollaborations = + new UserCollaborationsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.taskAssignments = + new TaskAssignmentsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.sharedLinksFiles = + new SharedLinksFilesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.sharedLinksFolders = + new SharedLinksFoldersManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.webLinks = + new WebLinksManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.trashedWebLinks = + new TrashedWebLinksManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.sharedLinksWebLinks = + new SharedLinksWebLinksManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.sharedLinksAppItems = + new SharedLinksAppItemsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.users = + new UsersManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.sessionTermination = + new SessionTerminationManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.avatars = + new AvatarsManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.transfer = + new TransferManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.emailAliases = + new EmailAliasesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.memberships = + new MembershipsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.invites = + new InvitesManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.groups = + new GroupsManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.webhooks = + new WebhooksManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.events = + new EventsManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.collections = + new CollectionsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.recentItems = + new RecentItemsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.retentionPolicies = + new RetentionPoliciesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.retentionPolicyAssignments = + new RetentionPolicyAssignmentsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.legalHoldPolicies = + new LegalHoldPoliciesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.legalHoldPolicyAssignments = + new LegalHoldPolicyAssignmentsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.fileVersionRetentions = + new FileVersionRetentionsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.fileVersionLegalHolds = + new FileVersionLegalHoldsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.shieldInformationBarriers = + new ShieldInformationBarriersManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.shieldInformationBarrierReports = + new ShieldInformationBarrierReportsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.shieldInformationBarrierSegments = + new ShieldInformationBarrierSegmentsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.shieldInformationBarrierSegmentMembers = + new ShieldInformationBarrierSegmentMembersManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.shieldInformationBarrierSegmentRestrictions = + new ShieldInformationBarrierSegmentRestrictionsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.devicePinners = + new DevicePinnersManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.termsOfServices = + new TermsOfServicesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.termsOfServiceUserStatuses = + new TermsOfServiceUserStatusesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.collaborationAllowlistEntries = + new CollaborationAllowlistEntriesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.collaborationAllowlistExemptTargets = + new CollaborationAllowlistExemptTargetsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.storagePolicies = + new StoragePoliciesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.storagePolicyAssignments = + new StoragePolicyAssignmentsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.zipDownloads = + new ZipDownloadsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.signRequests = + new SignRequestsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.workflows = + new WorkflowsManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.signTemplates = + new SignTemplatesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.integrationMappings = + new IntegrationMappingsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.ai = new AiManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.aiStudio = + new AiStudioManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.docgenTemplate = + new DocgenTemplateManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.docgen = + new DocgenManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.hubs = + new HubsManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.hubCollaborations = + new HubCollaborationsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.hubItems = + new HubItemsManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.shieldLists = + new ShieldListsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.archives = + new ArchivesManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + } + + protected BoxClient(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + this.authorization = + new AuthorizationManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.files = + new FilesManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.trashedFiles = + new TrashedFilesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.appItemAssociations = + new AppItemAssociationsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.downloads = + new DownloadsManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.uploads = + new UploadsManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.chunkedUploads = + new ChunkedUploadsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.listCollaborations = + new ListCollaborationsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.comments = + new CommentsManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.tasks = + new TasksManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.fileVersions = + new FileVersionsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.fileMetadata = + new FileMetadataManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.fileClassifications = + new FileClassificationsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.skills = + new SkillsManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.fileWatermarks = + new FileWatermarksManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.fileRequests = + new FileRequestsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.folders = + new FoldersManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.trashedFolders = + new TrashedFoldersManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.folderMetadata = + new FolderMetadataManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.folderClassifications = + new FolderClassificationsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.trashedItems = + new TrashedItemsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.folderWatermarks = + new FolderWatermarksManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.folderLocks = + new FolderLocksManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.metadataTemplates = + new MetadataTemplatesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.classifications = + new ClassificationsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.metadataCascadePolicies = + new MetadataCascadePoliciesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.search = + new SearchManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.userCollaborations = + new UserCollaborationsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.taskAssignments = + new TaskAssignmentsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.sharedLinksFiles = + new SharedLinksFilesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.sharedLinksFolders = + new SharedLinksFoldersManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.webLinks = + new WebLinksManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.trashedWebLinks = + new TrashedWebLinksManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.sharedLinksWebLinks = + new SharedLinksWebLinksManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.sharedLinksAppItems = + new SharedLinksAppItemsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.users = + new UsersManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.sessionTermination = + new SessionTerminationManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.avatars = + new AvatarsManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.transfer = + new TransferManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.emailAliases = + new EmailAliasesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.memberships = + new MembershipsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.invites = + new InvitesManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.groups = + new GroupsManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.webhooks = + new WebhooksManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.events = + new EventsManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.collections = + new CollectionsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.recentItems = + new RecentItemsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.retentionPolicies = + new RetentionPoliciesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.retentionPolicyAssignments = + new RetentionPolicyAssignmentsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.legalHoldPolicies = + new LegalHoldPoliciesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.legalHoldPolicyAssignments = + new LegalHoldPolicyAssignmentsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.fileVersionRetentions = + new FileVersionRetentionsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.fileVersionLegalHolds = + new FileVersionLegalHoldsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.shieldInformationBarriers = + new ShieldInformationBarriersManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.shieldInformationBarrierReports = + new ShieldInformationBarrierReportsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.shieldInformationBarrierSegments = + new ShieldInformationBarrierSegmentsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.shieldInformationBarrierSegmentMembers = + new ShieldInformationBarrierSegmentMembersManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.shieldInformationBarrierSegmentRestrictions = + new ShieldInformationBarrierSegmentRestrictionsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.devicePinners = + new DevicePinnersManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.termsOfServices = + new TermsOfServicesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.termsOfServiceUserStatuses = + new TermsOfServiceUserStatusesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.collaborationAllowlistEntries = + new CollaborationAllowlistEntriesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.collaborationAllowlistExemptTargets = + new CollaborationAllowlistExemptTargetsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.storagePolicies = + new StoragePoliciesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.storagePolicyAssignments = + new StoragePolicyAssignmentsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.zipDownloads = + new ZipDownloadsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.signRequests = + new SignRequestsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.workflows = + new WorkflowsManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.signTemplates = + new SignTemplatesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.integrationMappings = + new IntegrationMappingsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.ai = new AiManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.aiStudio = + new AiStudioManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.docgenTemplate = + new DocgenTemplateManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.docgen = + new DocgenManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.hubs = + new HubsManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.hubCollaborations = + new HubCollaborationsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.hubItems = + new HubItemsManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.shieldLists = + new ShieldListsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); + this.archives = + new ArchivesManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + } + + public FetchResponse makeRequest(FetchOptions fetchOptions) { + Authentication auth = (fetchOptions.getAuth() == null ? this.auth : fetchOptions.getAuth()); + NetworkSession networkSession = + (fetchOptions.getNetworkSession() == null + ? this.networkSession + : fetchOptions.getNetworkSession()); + FetchOptions enrichedFetchOptions = + new FetchOptions.Builder(fetchOptions.getUrl(), fetchOptions.getMethod()) + .params(fetchOptions.getParams()) + .headers(fetchOptions.getHeaders()) + .data(fetchOptions.getData()) + .fileStream(fetchOptions.getFileStream()) + .multipartData(fetchOptions.getMultipartData()) + .contentType(fetchOptions.getContentType()) + .responseFormat(fetchOptions.getResponseFormat()) + .auth(auth) + .networkSession(networkSession) + .followRedirects(fetchOptions.getFollowRedirects()) + .build(); + return networkSession.getNetworkClient().fetch(enrichedFetchOptions); + } + + public BoxClient withAsUserHeader(String userId) { + return new BoxClient.Builder(this.auth) + .networkSession( + this.networkSession.withAdditionalHeaders(mapOf(entryOf("As-User", userId)))) + .build(); + } + + public BoxClient withSuppressedNotifications() { + return new BoxClient.Builder(this.auth) + .networkSession( + this.networkSession.withAdditionalHeaders(mapOf(entryOf("Box-Notifications", "off")))) + .build(); + } + + public BoxClient withExtraHeaders() { + return withExtraHeaders(mapOf()); + } + + public BoxClient withExtraHeaders(Map extraHeaders) { + return new BoxClient.Builder(this.auth) + .networkSession(this.networkSession.withAdditionalHeaders(extraHeaders)) + .build(); + } + + public BoxClient withCustomBaseUrls(BaseUrls baseUrls) { + return new BoxClient.Builder(this.auth) + .networkSession(this.networkSession.withCustomBaseUrls(baseUrls)) + .build(); + } + + public BoxClient withInterceptors(List interceptors) { + return new BoxClient.Builder(this.auth) + .networkSession(this.networkSession.withInterceptors(interceptors)) + .build(); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public AuthorizationManager getAuthorization() { + return authorization; + } + + public FilesManager getFiles() { + return files; + } + + public TrashedFilesManager getTrashedFiles() { + return trashedFiles; + } + + public AppItemAssociationsManager getAppItemAssociations() { + return appItemAssociations; + } + + public DownloadsManager getDownloads() { + return downloads; + } + + public UploadsManager getUploads() { + return uploads; + } + + public ChunkedUploadsManager getChunkedUploads() { + return chunkedUploads; + } + + public ListCollaborationsManager getListCollaborations() { + return listCollaborations; + } + + public CommentsManager getComments() { + return comments; + } + + public TasksManager getTasks() { + return tasks; + } + + public FileVersionsManager getFileVersions() { + return fileVersions; + } + + public FileMetadataManager getFileMetadata() { + return fileMetadata; + } + + public FileClassificationsManager getFileClassifications() { + return fileClassifications; + } + + public SkillsManager getSkills() { + return skills; + } + + public FileWatermarksManager getFileWatermarks() { + return fileWatermarks; + } + + public FileRequestsManager getFileRequests() { + return fileRequests; + } + + public FoldersManager getFolders() { + return folders; + } + + public TrashedFoldersManager getTrashedFolders() { + return trashedFolders; + } + + public FolderMetadataManager getFolderMetadata() { + return folderMetadata; + } + + public FolderClassificationsManager getFolderClassifications() { + return folderClassifications; + } + + public TrashedItemsManager getTrashedItems() { + return trashedItems; + } + + public FolderWatermarksManager getFolderWatermarks() { + return folderWatermarks; + } + + public FolderLocksManager getFolderLocks() { + return folderLocks; + } + + public MetadataTemplatesManager getMetadataTemplates() { + return metadataTemplates; + } + + public ClassificationsManager getClassifications() { + return classifications; + } + + public MetadataCascadePoliciesManager getMetadataCascadePolicies() { + return metadataCascadePolicies; + } + + public SearchManager getSearch() { + return search; + } + + public UserCollaborationsManager getUserCollaborations() { + return userCollaborations; + } + + public TaskAssignmentsManager getTaskAssignments() { + return taskAssignments; + } + + public SharedLinksFilesManager getSharedLinksFiles() { + return sharedLinksFiles; + } + + public SharedLinksFoldersManager getSharedLinksFolders() { + return sharedLinksFolders; + } + + public WebLinksManager getWebLinks() { + return webLinks; + } + + public TrashedWebLinksManager getTrashedWebLinks() { + return trashedWebLinks; + } + + public SharedLinksWebLinksManager getSharedLinksWebLinks() { + return sharedLinksWebLinks; + } + + public SharedLinksAppItemsManager getSharedLinksAppItems() { + return sharedLinksAppItems; + } + + public UsersManager getUsers() { + return users; + } + + public SessionTerminationManager getSessionTermination() { + return sessionTermination; + } + + public AvatarsManager getAvatars() { + return avatars; + } + + public TransferManager getTransfer() { + return transfer; + } + + public EmailAliasesManager getEmailAliases() { + return emailAliases; + } + + public MembershipsManager getMemberships() { + return memberships; + } + + public InvitesManager getInvites() { + return invites; + } + + public GroupsManager getGroups() { + return groups; + } + + public WebhooksManager getWebhooks() { + return webhooks; + } + + public EventsManager getEvents() { + return events; + } + + public CollectionsManager getCollections() { + return collections; + } + + public RecentItemsManager getRecentItems() { + return recentItems; + } + + public RetentionPoliciesManager getRetentionPolicies() { + return retentionPolicies; + } + + public RetentionPolicyAssignmentsManager getRetentionPolicyAssignments() { + return retentionPolicyAssignments; + } + + public LegalHoldPoliciesManager getLegalHoldPolicies() { + return legalHoldPolicies; + } + + public LegalHoldPolicyAssignmentsManager getLegalHoldPolicyAssignments() { + return legalHoldPolicyAssignments; + } + + public FileVersionRetentionsManager getFileVersionRetentions() { + return fileVersionRetentions; + } + + public FileVersionLegalHoldsManager getFileVersionLegalHolds() { + return fileVersionLegalHolds; + } + + public ShieldInformationBarriersManager getShieldInformationBarriers() { + return shieldInformationBarriers; + } + + public ShieldInformationBarrierReportsManager getShieldInformationBarrierReports() { + return shieldInformationBarrierReports; + } + + public ShieldInformationBarrierSegmentsManager getShieldInformationBarrierSegments() { + return shieldInformationBarrierSegments; + } + + public ShieldInformationBarrierSegmentMembersManager getShieldInformationBarrierSegmentMembers() { + return shieldInformationBarrierSegmentMembers; + } + + public ShieldInformationBarrierSegmentRestrictionsManager + getShieldInformationBarrierSegmentRestrictions() { + return shieldInformationBarrierSegmentRestrictions; + } + + public DevicePinnersManager getDevicePinners() { + return devicePinners; + } + + public TermsOfServicesManager getTermsOfServices() { + return termsOfServices; + } + + public TermsOfServiceUserStatusesManager getTermsOfServiceUserStatuses() { + return termsOfServiceUserStatuses; + } + + public CollaborationAllowlistEntriesManager getCollaborationAllowlistEntries() { + return collaborationAllowlistEntries; + } + + public CollaborationAllowlistExemptTargetsManager getCollaborationAllowlistExemptTargets() { + return collaborationAllowlistExemptTargets; + } + + public StoragePoliciesManager getStoragePolicies() { + return storagePolicies; + } + + public StoragePolicyAssignmentsManager getStoragePolicyAssignments() { + return storagePolicyAssignments; + } + + public ZipDownloadsManager getZipDownloads() { + return zipDownloads; + } + + public SignRequestsManager getSignRequests() { + return signRequests; + } + + public WorkflowsManager getWorkflows() { + return workflows; + } + + public SignTemplatesManager getSignTemplates() { + return signTemplates; + } + + public IntegrationMappingsManager getIntegrationMappings() { + return integrationMappings; + } + + public AiManager getAi() { + return ai; + } + + public AiStudioManager getAiStudio() { + return aiStudio; + } + + public DocgenTemplateManager getDocgenTemplate() { + return docgenTemplate; + } + + public DocgenManager getDocgen() { + return docgen; + } + + public HubsManager getHubs() { + return hubs; + } + + public HubCollaborationsManager getHubCollaborations() { + return hubCollaborations; + } + + public HubItemsManager getHubItems() { + return hubItems; + } + + public ShieldListsManager getShieldLists() { + return shieldLists; + } + + public ArchivesManager getArchives() { + return archives; + } + + public static class Builder { + + protected final Authentication auth; + + protected NetworkSession networkSession; + + public Builder(Authentication auth) { + this.auth = auth; + this.networkSession = new NetworkSession.Builder().baseUrls(new BaseUrls()).build(); + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public BoxClient build() { + return new BoxClient(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/internal/Nullable.java b/src/main/java/com/box/sdkgen/internal/Nullable.java new file mode 100644 index 000000000..133dd2355 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/Nullable.java @@ -0,0 +1,10 @@ +package com.box.sdkgen.internal; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.FIELD, ElementType.METHOD}) +public @interface Nullable {} diff --git a/src/main/java/com/box/sdkgen/internal/NullableFieldTracker.java b/src/main/java/com/box/sdkgen/internal/NullableFieldTracker.java new file mode 100644 index 000000000..3e5e6ac90 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/NullableFieldTracker.java @@ -0,0 +1,26 @@ +package com.box.sdkgen.internal; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import java.util.HashSet; +import java.util.Set; + +public abstract class NullableFieldTracker { + + @JsonIgnore protected final Set explicitlySetNullableFields = new HashSet<>(); + + protected void markNullableFieldAsSet(String fieldName) { + explicitlySetNullableFields.add(fieldName); + } + + protected void markNullableFieldsAsSet(Set fields) { + explicitlySetNullableFields.addAll(fields); + } + + protected boolean isFieldExplicitlySet(String fieldName) { + return explicitlySetNullableFields.contains(fieldName); + } + + public Set getExplicitlySetNullableFields() { + return explicitlySetNullableFields; + } +} diff --git a/src/main/java/com/box/sdkgen/internal/NullablePropertyFilter.java b/src/main/java/com/box/sdkgen/internal/NullablePropertyFilter.java new file mode 100644 index 000000000..5353ba292 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/NullablePropertyFilter.java @@ -0,0 +1,38 @@ +package com.box.sdkgen.internal; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.ser.PropertyWriter; +import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter; + +public class NullablePropertyFilter extends SimpleBeanPropertyFilter { + @Override + public void serializeAsField( + Object pojo, JsonGenerator jgen, SerializerProvider provider, PropertyWriter writer) + throws Exception { + + Object value = writer.getMember().getValue(pojo); + boolean isNullable = writer.getMember().hasAnnotation(Nullable.class); + + if (isNullable) { + // Always serialize if the field is explicitly set to null + if (value != null) { + writer.serializeAsField(pojo, jgen, provider); + return; + } + // If the field is explicitly set to null, serialize it + if (pojo instanceof NullableFieldTracker + && ((NullableFieldTracker) pojo).isFieldExplicitlySet(writer.getName())) { + writer.serializeAsField(pojo, jgen, provider); + return; + } + // If the field is not explicitly set and is null, skip serialization + return; + } + + // For non-nullable fields, serialize only if the value is not null + if (value != null) { + writer.serializeAsField(pojo, jgen, provider); + } + } +} diff --git a/src/main/java/com/box/sdkgen/internal/OneOfFive.java b/src/main/java/com/box/sdkgen/internal/OneOfFive.java new file mode 100644 index 000000000..bc8a13927 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/OneOfFive.java @@ -0,0 +1,53 @@ +package com.box.sdkgen.internal; + +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; + +public class OneOfFive extends SerializableObject { + protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + protected T0 value0; + protected T1 value1; + protected T2 value2; + protected T3 value3; + protected T4 value4; + + public OneOfFive(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4) { + this.value0 = value0; + this.value1 = value1; + this.value2 = value2; + this.value3 = value3; + this.value4 = value4; + } + + public static class OneOfFiveSerializer extends JsonSerializer> { + + public OneOfFiveSerializer() { + super(); + } + + @Override + public void serialize( + OneOfFive itemEntryField, JsonGenerator gen, SerializerProvider provider) + throws IOException { + if (itemEntryField.value0 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + } + if (itemEntryField.value1 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + } + if (itemEntryField.value2 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + } + if (itemEntryField.value3 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value3); + } + if (itemEntryField.value4 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value4); + } + } + } +} diff --git a/src/main/java/com/box/sdkgen/internal/OneOfFour.java b/src/main/java/com/box/sdkgen/internal/OneOfFour.java new file mode 100644 index 000000000..ee86354c8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/OneOfFour.java @@ -0,0 +1,48 @@ +package com.box.sdkgen.internal; + +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; + +public class OneOfFour extends SerializableObject { + protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + protected T0 value0; + protected T1 value1; + protected T2 value2; + protected T3 value3; + + public OneOfFour(T0 value0, T1 value1, T2 value2, T3 value3) { + this.value0 = value0; + this.value1 = value1; + this.value2 = value2; + this.value3 = value3; + } + + public static class OneOfFourSerializer extends JsonSerializer> { + + public OneOfFourSerializer() { + super(); + } + + @Override + public void serialize( + OneOfFour itemEntryField, JsonGenerator gen, SerializerProvider provider) + throws IOException { + if (itemEntryField.value0 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + } + if (itemEntryField.value1 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + } + if (itemEntryField.value2 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + } + if (itemEntryField.value3 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value3); + } + } + } +} diff --git a/src/main/java/com/box/sdkgen/internal/OneOfOne.java b/src/main/java/com/box/sdkgen/internal/OneOfOne.java new file mode 100644 index 000000000..67b073885 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/OneOfOne.java @@ -0,0 +1,33 @@ +package com.box.sdkgen.internal; + +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; + +public class OneOfOne extends SerializableObject { + protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + protected T0 value0; + + public OneOfOne(T0 value0) { + this.value0 = value0; + } + + public static class OneOfOneSerializer extends JsonSerializer> { + + public OneOfOneSerializer() { + super(); + } + + @Override + public void serialize( + OneOfOne itemEntryField, JsonGenerator gen, SerializerProvider provider) + throws IOException { + if (itemEntryField.value0 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + } + } + } +} diff --git a/src/main/java/com/box/sdkgen/internal/OneOfSix.java b/src/main/java/com/box/sdkgen/internal/OneOfSix.java new file mode 100644 index 000000000..d3ed9a566 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/OneOfSix.java @@ -0,0 +1,58 @@ +package com.box.sdkgen.internal; + +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; + +public class OneOfSix extends SerializableObject { + protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + protected T0 value0; + protected T1 value1; + protected T2 value2; + protected T3 value3; + protected T4 value4; + protected T5 value5; + + public OneOfSix(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5) { + this.value0 = value0; + this.value1 = value1; + this.value2 = value2; + this.value3 = value3; + this.value4 = value4; + this.value5 = value5; + } + + public static class OneOfSixSerializer extends JsonSerializer> { + + public OneOfSixSerializer() { + super(); + } + + @Override + public void serialize( + OneOfSix itemEntryField, JsonGenerator gen, SerializerProvider provider) + throws IOException { + if (itemEntryField.value0 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + } + if (itemEntryField.value1 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + } + if (itemEntryField.value2 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + } + if (itemEntryField.value3 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value3); + } + if (itemEntryField.value4 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value4); + } + if (itemEntryField.value5 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value5); + } + } + } +} diff --git a/src/main/java/com/box/sdkgen/internal/OneOfThree.java b/src/main/java/com/box/sdkgen/internal/OneOfThree.java new file mode 100644 index 000000000..9319155d8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/OneOfThree.java @@ -0,0 +1,43 @@ +package com.box.sdkgen.internal; + +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; + +public class OneOfThree extends SerializableObject { + protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + protected T0 value0; + protected T1 value1; + protected T2 value2; + + public OneOfThree(T0 value0, T1 value1, T2 value2) { + this.value0 = value0; + this.value1 = value1; + this.value2 = value2; + } + + public static class OneOfThreeSerializer extends JsonSerializer> { + + public OneOfThreeSerializer() { + super(); + } + + @Override + public void serialize( + OneOfThree itemEntryField, JsonGenerator gen, SerializerProvider provider) + throws IOException { + if (itemEntryField.value0 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + } + if (itemEntryField.value1 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + } + if (itemEntryField.value2 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + } + } + } +} diff --git a/src/main/java/com/box/sdkgen/internal/OneOfTwo.java b/src/main/java/com/box/sdkgen/internal/OneOfTwo.java new file mode 100644 index 000000000..6058a4f59 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/OneOfTwo.java @@ -0,0 +1,38 @@ +package com.box.sdkgen.internal; + +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; + +public class OneOfTwo extends SerializableObject { + protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + protected T0 value0; + protected T1 value1; + + public OneOfTwo(T0 value0, T1 value1) { + this.value0 = value0; + this.value1 = value1; + } + + public static class OneOfTwoSerializer extends JsonSerializer> { + + public OneOfTwoSerializer() { + super(); + } + + @Override + public void serialize( + OneOfTwo itemEntryField, JsonGenerator gen, SerializerProvider provider) + throws IOException { + if (itemEntryField.value0 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + } + if (itemEntryField.value1 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + } + } + } +} diff --git a/src/main/java/com/box/sdkgen/internal/SerializableObject.java b/src/main/java/com/box/sdkgen/internal/SerializableObject.java new file mode 100644 index 000000000..14d6eeb4f --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/SerializableObject.java @@ -0,0 +1,18 @@ +package com.box.sdkgen.internal; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.databind.JsonNode; +import java.io.Serializable; + +public class SerializableObject extends NullableFieldTracker implements Serializable { + + @JsonIgnore private JsonNode rawData; + + public JsonNode getRawData() { + return rawData; + } + + public void setRawData(JsonNode rawData) { + this.rawData = rawData; + } +} diff --git a/src/main/java/com/box/sdkgen/internal/logging/DataSanitizer.java b/src/main/java/com/box/sdkgen/internal/logging/DataSanitizer.java new file mode 100644 index 000000000..b802614f7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/logging/DataSanitizer.java @@ -0,0 +1,39 @@ +package com.box.sdkgen.internal.logging; + +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.sanitizeMap; +import static com.box.sdkgen.serialization.json.JsonManager.sanitizeSerializedData; + +import com.fasterxml.jackson.databind.JsonNode; +import java.util.Map; + +public class DataSanitizer { + + public final Map keysToSanitize; + + public DataSanitizer() { + this.keysToSanitize = + mapOf( + entryOf("authorization", ""), + entryOf("access_token", ""), + entryOf("refresh_token", ""), + entryOf("subject_token", ""), + entryOf("token", ""), + entryOf("client_id", ""), + entryOf("client_secret", ""), + entryOf("shared_link", ""), + entryOf("download_url", ""), + entryOf("jwt_private_key", ""), + entryOf("jwt_private_key_passphrase", ""), + entryOf("password", "")); + } + + public Map sanitizeHeaders(Map headers) { + return sanitizeMap(headers, this.keysToSanitize); + } + + public JsonNode sanitizeBody(JsonNode body) { + return sanitizeSerializedData(body, this.keysToSanitize); + } +} diff --git a/src/main/java/com/box/sdkgen/internal/utils/DateTimeUtils.java b/src/main/java/com/box/sdkgen/internal/utils/DateTimeUtils.java new file mode 100644 index 000000000..17b9da775 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/utils/DateTimeUtils.java @@ -0,0 +1,37 @@ +package com.box.sdkgen.internal.utils; + +import static com.box.sdkgen.internal.utils.UtilsManager.dateTimeFromString; +import static com.box.sdkgen.internal.utils.UtilsManager.dateTimeToString; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Date; + +public class DateTimeUtils { + + public static class DateTimeSerializer extends JsonSerializer { + @Override + public void serialize(Date value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + String formattedDate = dateTimeToString(value); + gen.writeString(formattedDate); + } + } + + public static class DateTimeDeserializer extends JsonDeserializer { + @Override + public Date deserialize(JsonParser p, DeserializationContext ctx) throws IOException { + String dateString = p.getValueAsString(); + Date d = dateTimeFromString(dateString); + if (d == null) { + throw new IOException("Invalid date time format: " + dateString); + } + return d; + } + } +} diff --git a/src/main/java/com/box/sdkgen/internal/utils/DateUtils.java b/src/main/java/com/box/sdkgen/internal/utils/DateUtils.java new file mode 100644 index 000000000..52abd38a1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/utils/DateUtils.java @@ -0,0 +1,36 @@ +package com.box.sdkgen.internal.utils; + +import static com.box.sdkgen.internal.utils.UtilsManager.dateFromString; +import static com.box.sdkgen.internal.utils.UtilsManager.dateToString; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Date; + +public class DateUtils { + public static class DateSerializer extends JsonSerializer { + @Override + public void serialize(Date value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + String formattedDate = dateToString(value); + gen.writeString(formattedDate); + } + } + + public static class DateDeserializer extends JsonDeserializer { + @Override + public Date deserialize(JsonParser p, DeserializationContext ctx) throws IOException { + String dateString = p.getValueAsString(); + Date d = dateFromString(dateString); + if (d == null) { + throw new IOException("Invalid date format: " + dateString); + } + return d; + } + } +} diff --git a/src/main/java/com/box/sdkgen/internal/utils/DefaultPrivateKeyDecryptor.java b/src/main/java/com/box/sdkgen/internal/utils/DefaultPrivateKeyDecryptor.java new file mode 100644 index 000000000..df087f630 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/utils/DefaultPrivateKeyDecryptor.java @@ -0,0 +1,61 @@ +package com.box.sdkgen.internal.utils; + +import com.box.sdkgen.box.errors.BoxSDKError; +import java.io.IOException; +import java.io.StringReader; +import java.security.PrivateKey; +import java.security.Security; +import org.bouncycastle.asn1.pkcs.PrivateKeyInfo; +import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.bouncycastle.openssl.PEMDecryptorProvider; +import org.bouncycastle.openssl.PEMEncryptedKeyPair; +import org.bouncycastle.openssl.PEMKeyPair; +import org.bouncycastle.openssl.PEMParser; +import org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter; +import org.bouncycastle.openssl.jcajce.JceOpenSSLPKCS8DecryptorProviderBuilder; +import org.bouncycastle.openssl.jcajce.JcePEMDecryptorProviderBuilder; +import org.bouncycastle.operator.InputDecryptorProvider; +import org.bouncycastle.operator.OperatorCreationException; +import org.bouncycastle.pkcs.PKCS8EncryptedPrivateKeyInfo; +import org.bouncycastle.pkcs.PKCSException; + +public class DefaultPrivateKeyDecryptor implements PrivateKeyDecryptor { + public PrivateKey decryptPrivateKey(String encryptedPrivateKey, String passphrase) { + Security.addProvider(new BouncyCastleProvider()); + PrivateKey decryptedPrivateKey; + try { + PEMParser keyReader = new PEMParser(new StringReader(encryptedPrivateKey)); + Object keyPair = keyReader.readObject(); + keyReader.close(); + + if (keyPair instanceof PrivateKeyInfo) { + PrivateKeyInfo keyInfo = (PrivateKeyInfo) keyPair; + decryptedPrivateKey = (new JcaPEMKeyConverter()).getPrivateKey(keyInfo); + } else if (keyPair instanceof PEMEncryptedKeyPair) { + JcePEMDecryptorProviderBuilder builder = new JcePEMDecryptorProviderBuilder(); + PEMDecryptorProvider decryptionProvider = builder.build(passphrase.toCharArray()); + keyPair = ((PEMEncryptedKeyPair) keyPair).decryptKeyPair(decryptionProvider); + PrivateKeyInfo keyInfo = ((PEMKeyPair) keyPair).getPrivateKeyInfo(); + decryptedPrivateKey = (new JcaPEMKeyConverter()).getPrivateKey(keyInfo); + } else if (keyPair instanceof PKCS8EncryptedPrivateKeyInfo) { + InputDecryptorProvider pkcs8Prov = + new JceOpenSSLPKCS8DecryptorProviderBuilder() + .setProvider("BC") + .build(passphrase.toCharArray()); + PrivateKeyInfo keyInfo = + ((PKCS8EncryptedPrivateKeyInfo) keyPair).decryptPrivateKeyInfo(pkcs8Prov); + decryptedPrivateKey = (new JcaPEMKeyConverter()).getPrivateKey(keyInfo); + } else { + PrivateKeyInfo keyInfo = ((PEMKeyPair) keyPair).getPrivateKeyInfo(); + decryptedPrivateKey = (new JcaPEMKeyConverter()).getPrivateKey(keyInfo); + } + } catch (IOException e) { + throw new BoxSDKError("Error parsing private key for Box Developer Edition.", e); + } catch (OperatorCreationException e) { + throw new BoxSDKError("Error parsing PKCS#8 private key for Box Developer Edition.", e); + } catch (PKCSException e) { + throw new BoxSDKError("Error parsing PKCS private key for Box Developer Edition.", e); + } + return decryptedPrivateKey; + } +} diff --git a/src/main/java/com/box/sdkgen/internal/utils/Entry.java b/src/main/java/com/box/sdkgen/internal/utils/Entry.java new file mode 100644 index 000000000..f2b15a7c4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/utils/Entry.java @@ -0,0 +1,23 @@ +package com.box.sdkgen.internal.utils; + +public class Entry { + private final K key; + private final V value; + + public K getKey() { + return key; + } + + public V getValue() { + return value; + } + + private Entry(K key, V value) { + this.key = key; + this.value = value; + } + + public static Entry of(K key, V value) { + return new Entry<>(key, value); + } +} diff --git a/src/main/java/com/box/sdkgen/internal/utils/Hash.java b/src/main/java/com/box/sdkgen/internal/utils/Hash.java new file mode 100644 index 000000000..e8a9664c8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/utils/Hash.java @@ -0,0 +1,34 @@ +package com.box.sdkgen.internal.utils; + +import com.box.sdkgen.box.errors.BoxSDKError; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.Base64; + +public class Hash { + + private final HashName algorithm; + private final MessageDigest digest; + + public Hash(HashName algorithm) { + this.algorithm = algorithm; + try { + this.digest = MessageDigest.getInstance(algorithm.getValue()); + } catch (NoSuchAlgorithmException ae) { + throw new BoxSDKError("Digest algorithm not found", ae); + } + } + + public void updateHash(byte[] data) { + digest.update(data); + } + + public String digestHash(String encoding) { + byte[] digestBytes = digest.digest(); + return Base64.getEncoder().encodeToString(digestBytes); + } + + public HashName getAlgorithm() { + return algorithm; + } +} diff --git a/src/main/java/com/box/sdkgen/internal/utils/HashName.java b/src/main/java/com/box/sdkgen/internal/utils/HashName.java new file mode 100644 index 000000000..ea96f0003 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/utils/HashName.java @@ -0,0 +1,17 @@ +package com.box.sdkgen.internal.utils; + +import com.box.sdkgen.serialization.json.Valuable; + +public enum HashName implements Valuable { + SHA1("sha1"); + + private final String value; + + HashName(String value) { + this.value = value; + } + + public String getValue() { + return value; + } +} diff --git a/src/main/java/com/box/sdkgen/internal/utils/JwtAlgorithm.java b/src/main/java/com/box/sdkgen/internal/utils/JwtAlgorithm.java new file mode 100644 index 000000000..0085d1476 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/utils/JwtAlgorithm.java @@ -0,0 +1,29 @@ +package com.box.sdkgen.internal.utils; + +import com.box.sdkgen.serialization.json.Valuable; + +public enum JwtAlgorithm implements Valuable { + HS256("HS256"), + HS384("HS384"), + HS512("HS512"), + RS256("RS256"), + RS384("RS384"), + RS512("RS512"), + ES256("ES256"), + ES384("ES384"), + ES512("ES512"), + PS256("PS256"), + PS384("PS384"), + PS512("PS512"), + NONE("none"); + + private final String value; + + JwtAlgorithm(String value) { + this.value = value; + } + + public String getValue() { + return value; + } +} diff --git a/src/main/java/com/box/sdkgen/internal/utils/JwtKey.java b/src/main/java/com/box/sdkgen/internal/utils/JwtKey.java new file mode 100644 index 000000000..df2a5aa0c --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/utils/JwtKey.java @@ -0,0 +1,19 @@ +package com.box.sdkgen.internal.utils; + +public class JwtKey { + public final String key; + public final String passphrase; + + public JwtKey(String key, String passphrase) { + this.key = key; + this.passphrase = passphrase; + } + + public String getKey() { + return key; + } + + public String getPassphrase() { + return passphrase; + } +} diff --git a/src/main/java/com/box/sdkgen/internal/utils/JwtSignOptions.java b/src/main/java/com/box/sdkgen/internal/utils/JwtSignOptions.java new file mode 100644 index 000000000..9ccc07294 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/utils/JwtSignOptions.java @@ -0,0 +1,95 @@ +package com.box.sdkgen.internal.utils; + +import com.box.sdkgen.serialization.json.EnumWrapper; + +public class JwtSignOptions { + protected JwtAlgorithm algorithm; + protected String audience; + protected String issuer; + protected String subject; + protected String jwtid; + protected String keyid; + protected PrivateKeyDecryptor privateKeyDecryptor; + + public JwtSignOptions( + JwtAlgorithm algorithm, + String audience, + String issuer, + String subject, + String jwtid, + String keyid) { + this(algorithm, audience, issuer, subject, jwtid, keyid, new DefaultPrivateKeyDecryptor()); + } + + public JwtSignOptions( + EnumWrapper algorithm, + String audience, + String issuer, + String subject, + String jwtid, + String keyid) { + this(algorithm, audience, issuer, subject, jwtid, keyid, new DefaultPrivateKeyDecryptor()); + } + + public JwtSignOptions( + JwtAlgorithm algorithm, + String audience, + String issuer, + String subject, + String jwtid, + String keyid, + PrivateKeyDecryptor privateKeyDecryptor) { + this.algorithm = algorithm; + this.audience = audience; + this.issuer = issuer; + this.subject = subject; + this.jwtid = jwtid; + this.keyid = keyid; + this.privateKeyDecryptor = privateKeyDecryptor; + } + + public JwtSignOptions( + EnumWrapper algorithm, + String audience, + String issuer, + String subject, + String jwtid, + String keyid, + PrivateKeyDecryptor privateKeyDecryptor) { + this.algorithm = algorithm.getEnumValue(); + this.audience = audience; + this.issuer = issuer; + this.subject = subject; + this.jwtid = jwtid; + this.keyid = keyid; + this.privateKeyDecryptor = privateKeyDecryptor; + } + + public JwtAlgorithm getAlgorithm() { + return algorithm; + } + + public String getAudience() { + return audience; + } + + public String getIssuer() { + return issuer; + } + + public String getSubject() { + return subject; + } + + public String getJwtid() { + return jwtid; + } + + public String getKeyid() { + return keyid; + } + + public PrivateKeyDecryptor getPrivateKeyDecryptor() { + return privateKeyDecryptor; + } +} diff --git a/src/main/java/com/box/sdkgen/internal/utils/PrivateKeyDecryptor.java b/src/main/java/com/box/sdkgen/internal/utils/PrivateKeyDecryptor.java new file mode 100644 index 000000000..c6da04828 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/utils/PrivateKeyDecryptor.java @@ -0,0 +1,9 @@ +package com.box.sdkgen.internal.utils; + +import java.security.PrivateKey; + +/** Decrypts private key with provided passphrase */ +public interface PrivateKeyDecryptor { + /** Decrypts private key using a passphrase. */ + PrivateKey decryptPrivateKey(String encryptedPrivateKey, String passphrase); +} diff --git a/src/main/java/com/box/sdkgen/internal/utils/UtilsManager.java b/src/main/java/com/box/sdkgen/internal/utils/UtilsManager.java new file mode 100644 index 000000000..d7a8c70a0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/utils/UtilsManager.java @@ -0,0 +1,493 @@ +package com.box.sdkgen.internal.utils; + +import com.box.sdkgen.box.errors.BoxSDKError; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.math.BigInteger; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.security.MessageDigest; +import java.text.SimpleDateFormat; +import java.util.Arrays; +import java.util.Base64; +import java.util.Date; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.TimeZone; +import java.util.UUID; +import java.util.function.BiFunction; +import java.util.stream.Collectors; +import javax.crypto.Mac; +import javax.crypto.spec.SecretKeySpec; +import org.jose4j.jws.JsonWebSignature; +import org.jose4j.jwt.JwtClaims; +import org.jose4j.jwt.NumericDate; +import org.jose4j.lang.JoseException; + +public class UtilsManager { + private static final int BUFFER_SIZE = 8192; + private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd"); + private static final SimpleDateFormat DATE_TIME_FORMAT = + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX"); + private static final SimpleDateFormat DATE_TIME_FORMAT_WITH_MILLIS = + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); + private static final SimpleDateFormat DATE_TIME_FORMAT_WITH_MICROS = + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSX"); + + public static Map mapOf(Entry... entries) { + return Arrays.stream(entries) + .collect( + HashMap::new, + (map, entry) -> map.put(entry.getKey(), entry.getValue()), + HashMap::putAll); + } + + public static Set setOf(V... values) { + return Arrays.stream(values).collect(Collectors.toSet()); + } + + public static Entry entryOf(K key, V value) { + return Entry.of(key, value); + } + + public static Map mergeMaps(Map map1, Map map2) { + Map mergedMap = new HashMap<>(); + if (map1 != null) { + mergedMap.putAll(map1); + } + if (map2 != null) { + mergedMap.putAll(map2); + } + return mergedMap; + } + + public static Map prepareParams(Map map) { + map.values().removeIf(Objects::isNull); + return map; + } + + public static String convertToString(Object value) { + if (value == null) { + return null; + } + if (value instanceof EnumWrapper) { + return ((EnumWrapper) value).getStringValue(); + } + if (value instanceof Valuable) { + return ((Valuable) value).getValue(); + } + if (value instanceof List) { + List list = (List) value; + if (!list.isEmpty() && list.get(0) instanceof SerializableObject) { + return JsonManager.serialize(value).toString(); + } else { + return ((List) value) + .stream().map(UtilsManager::convertToString).collect(Collectors.joining(",")); + } + } + if (value instanceof ArrayNode) { + return convertToString(new ObjectMapper().convertValue(value, List.class)); + } + if (value instanceof JsonNode) { + return ((JsonNode) value).asText(); + } + if (value instanceof SerializableObject) { + return JsonManager.serialize(value).toString(); + } + return value.toString(); + } + + public static void writeInputStreamToOutputStream(InputStream input, OutputStream output) { + try { + byte[] buffer = new byte[BUFFER_SIZE]; + int n = input.read(buffer); + while (n != -1) { + output.write(buffer, 0, n); + n = input.read(buffer); + } + } catch (IOException e) { + throw new RuntimeException(e); + } finally { + try { + input.close(); + output.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + + public static String getUuid() { + return UUID.randomUUID().toString(); + } + + public static byte[] generateByteBuffer(int size) { + byte[] bytes = new byte[size]; + Arrays.fill(bytes, (byte) 0); + return bytes; + } + + public static InputStream generateByteStream(int size) { + byte[] bytes = generateByteBuffer(size); + return new ByteArrayInputStream(bytes); + } + + public static InputStream generateByteStreamFromBuffer(byte[] buffer) { + return new ByteArrayInputStream(buffer); + } + + public static byte[] readByteStream(InputStream inputStream) { + ByteArrayOutputStream buffer = new ByteArrayOutputStream(); + byte[] data = new byte[BUFFER_SIZE]; + int bytesRead; + try { + while ((bytesRead = inputStream.read(data, 0, data.length)) != -1) { + buffer.write(data, 0, bytesRead); + } + } catch (IOException e) { + throw new RuntimeException(e); + } finally { + try { + inputStream.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + return buffer.toByteArray(); + } + + public static boolean bufferEquals(byte[] buffer1, byte[] buffer2) { + return Arrays.equals(buffer1, buffer2); + } + + public static int bufferLength(byte[] buffer) { + return buffer.length; + } + + public static InputStream decodeBase64ByteStream(String value) { + return new ByteArrayInputStream(Base64.getDecoder().decode(value)); + } + + public static String decodeBase64(String value) { + return new String(Base64.getDecoder().decode(value)); + } + + public static InputStream stringToByteStream(String value) { + return new ByteArrayInputStream(value.getBytes()); + } + + public static OutputStream getFileOutputStream(String filePath) { + try { + return new FileOutputStream(filePath); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } + } + + public static void closeFileOutputStream(OutputStream outputStream) { + try { + outputStream.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public static byte[] readBufferFromFile(String filePath) { + try { + InputStream inputStream = Files.newInputStream(Paths.get(filePath)); + return readByteStream(inputStream); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public static String getEnvVar(String envVar) { + return System.getenv(envVar); + } + + public static void delayInSeconds(int seconds) { + try { + Thread.sleep(seconds * 1000L); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + + public static String readTextFromFile(String filePath) { + try { + return new String(Files.readAllBytes(Paths.get(filePath))); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public static boolean isBrowser() { + return false; + } + + public static long getEpochTimeInSeconds() { + return System.currentTimeMillis() / 1000; + } + + public static String createJwtAssertion( + Map claims, JwtKey jwtKey, JwtSignOptions jwtOptions) { + JwtClaims jwtClaims = new JwtClaims(); + jwtClaims.setIssuer(jwtOptions.getIssuer()); + jwtClaims.setAudience(jwtOptions.getAudience()); + jwtClaims.setExpirationTime(NumericDate.fromSeconds((Long) claims.get("exp"))); + + jwtClaims.setSubject(jwtOptions.getSubject()); + jwtClaims.setClaim("box_sub_type", claims.get("box_sub_type")); + jwtClaims.setGeneratedJwtId(64); + + JsonWebSignature jws = new JsonWebSignature(); + jws.setPayload(jwtClaims.toJson()); + jws.setKey( + jwtOptions.privateKeyDecryptor.decryptPrivateKey(jwtKey.getKey(), jwtKey.getPassphrase())); + jws.setAlgorithmHeaderValue(jwtOptions.getAlgorithm().getValue()); + jws.setHeader("typ", "JWT"); + if ((jwtOptions.getKeyid() != null) && !jwtOptions.getKeyid().isEmpty()) { + jws.setHeader("kid", jwtOptions.getKeyid()); + } + + String assertion; + + try { + assertion = jws.getCompactSerialization(); + } catch (JoseException e) { + throw new BoxSDKError("Error serializing JSON Web Token assertion.", e); + } + + return assertion; + } + + public static JsonNode getValueFromObjectRawData(SerializableObject obj, String key) { + JsonNode value = obj.getRawData(); + for (String k : key.split("\\.")) { + if (value == null || !value.has(k)) { + return null; + } + value = value.get(k); + } + + return value; + } + + public static double random(double min, double max) { + return Math.random() * (max - min) + min; + } + + public static String hexToBase64(String hex) { + return Base64.getEncoder().encodeToString(new BigInteger(hex, 16).toByteArray()); + } + + public static Iterator iterateChunks( + InputStream stream, long chunkSize, long fileSize) { + return new Iterator() { + private boolean streamIsFinished = false; + + @Override + public boolean hasNext() { + return !streamIsFinished; + } + + @Override + public InputStream next() { + try { + byte[] buffer = new byte[(int) chunkSize]; + int bytesRead = 0; + + while (bytesRead < chunkSize) { + int read = stream.read(buffer, bytesRead, (int) (chunkSize - bytesRead)); + if (read == -1) { + // End of stream + streamIsFinished = true; + break; + } + bytesRead += read; + } + + if (bytesRead == 0) { + // No more data to yield + streamIsFinished = true; + return null; + } + + // Return the chunk as a ByteArrayInputStream + return new ByteArrayInputStream(buffer, 0, bytesRead); + } catch (Exception e) { + throw new RuntimeException("Error reading from stream", e); + } + } + }; + } + + /** + * Reduces an iterator using a reducer function and an initial value. + * + * @param The type of the accumulator (result) + * @param The type of the items in the iterator + * @param iterator The iterator to process + * @param reducer The reducer function + * @param initialValue The initial value for the accumulator + * @return The accumulated result + */ + public static Accumulator reduceIterator( + Iterator iterator, + BiFunction reducer, + Accumulator initialValue) { + Accumulator result = initialValue; + + while (iterator.hasNext()) { + T item = iterator.next(); + result = reducer.apply(result, item); + } + + return result; + } + + public static Map sanitizeMap( + Map dictionary, Map keysToSanitize) { + return dictionary.entrySet().stream() + .collect( + Collectors.toMap( + Map.Entry::getKey, + entry -> + keysToSanitize.containsKey(entry.getKey().toLowerCase(Locale.ROOT)) + ? JsonManager.sanitizedValue() + : entry.getValue())); + } + + public static Date dateTimeFromString(String dateString) { + SimpleDateFormat[] formats = { + DATE_TIME_FORMAT, DATE_TIME_FORMAT_WITH_MILLIS, DATE_TIME_FORMAT_WITH_MICROS + }; + + for (SimpleDateFormat format : formats) { + try { + return format.parse(dateString); + } catch (java.text.ParseException e) { + // Ignore and try the next format + } + } + return null; + } + + public static String dateTimeToString(Date dateTime) { + DATE_TIME_FORMAT_WITH_MILLIS.setTimeZone(TimeZone.getTimeZone("UTC")); + return DATE_TIME_FORMAT_WITH_MILLIS.format(dateTime); + } + + public static Date dateFromString(String dateString) { + try { + return DATE_FORMAT.parse(dateString); + } catch (java.text.ParseException e) { + return null; + } + } + + public static String dateToString(Date date) { + DATE_FORMAT.setTimeZone(TimeZone.getTimeZone("UTC")); + return DATE_FORMAT.format(date); + } + + public static String escapeUnicode(String value) { + if (value == null) { + return null; + } + + StringBuilder result = new StringBuilder(); + for (int i = 0; i < value.length(); i++) { + char ch = value.charAt(i); + if (ch >= 0x007F) { + result.append(String.format("\\u%04x", (int) ch)); + } else if (ch == '\\') { + result.append("\\\\"); + } else if (ch == '\n') { + result.append("\\n"); + } else if (ch == '\r') { + result.append("\\r"); + } else if (ch == '\t') { + result.append("\\t"); + } else if (ch == '/') { + if (i == 0 || value.charAt(i - 1) != '\\') { + result.append("\\/"); + } else { + result.append(ch); + } + } else { + result.append(ch); + } + } + return result.toString(); + } + + public static Date epochSecondsToDateTime(long seconds) { + return new Date(seconds * 1000); + } + + public static long dateTimeToEpochSeconds(Date dateTime) { + return dateTime.getTime() / 1000; + } + + public static boolean compareSignatures(String expectedSignature, String receivedSignature) { + if (expectedSignature == null || receivedSignature == null) { + return false; + } + byte[] expectedBytes = expectedSignature.getBytes(StandardCharsets.UTF_8); + byte[] receivedBytes = receivedSignature.getBytes(StandardCharsets.UTF_8); + return MessageDigest.isEqual(expectedBytes, receivedBytes); + } + + public static String computeWebhookSignature( + String body, Map headers, String signatureKey, boolean escapeBody) { + if (signatureKey == null) { + return null; + } + if (!"1".equals(headers.get("box-signature-version"))) { + return null; + } + if (!"HmacSHA256".equals(headers.get("box-signature-algorithm"))) { + return null; + } + if (!headers.containsKey("box-delivery-timestamp")) { + return null; + } + + try { + String escapedBody = escapeBody ? escapeUnicode(body) : body; + byte[] encodedSignatureKey = signatureKey.getBytes("UTF-8"); + byte[] encodedBody = escapedBody.getBytes("UTF-8"); + byte[] encodedTimestamp = headers.get("box-delivery-timestamp").getBytes("UTF-8"); + Mac mac = Mac.getInstance("HmacSHA256"); + SecretKeySpec secretKeySpec = new SecretKeySpec(encodedSignatureKey, "HmacSHA256"); + mac.init(secretKeySpec); + mac.update(encodedBody); + mac.update(encodedTimestamp); + byte[] hmacDigest = mac.doFinal(); + return Base64.getEncoder().encodeToString(hmacDigest); + } catch (Exception e) { + System.err.println("Error computing webhook signature: " + e.getMessage()); + return null; + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/ai/AiManager.java b/src/main/java/com/box/sdkgen/managers/ai/AiManager.java new file mode 100644 index 000000000..c2e0a1015 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/ai/AiManager.java @@ -0,0 +1,210 @@ +package com.box.sdkgen.managers.ai; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.aiagentaskoraiagentextractoraiagentextractstructuredoraiagenttextgen.AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen; +import com.box.sdkgen.schemas.aiask.AiAsk; +import com.box.sdkgen.schemas.aiextract.AiExtract; +import com.box.sdkgen.schemas.aiextractstructured.AiExtractStructured; +import com.box.sdkgen.schemas.aiextractstructuredresponse.AiExtractStructuredResponse; +import com.box.sdkgen.schemas.airesponse.AiResponse; +import com.box.sdkgen.schemas.airesponsefull.AiResponseFull; +import com.box.sdkgen.schemas.aitextgen.AiTextGen; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class AiManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public AiManager() { + this.networkSession = new NetworkSession(); + } + + protected AiManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public AiResponseFull createAiAsk(AiAsk requestBody) { + return createAiAsk(requestBody, new CreateAiAskHeaders()); + } + + public AiResponseFull createAiAsk(AiAsk requestBody, CreateAiAskHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/ai/ask"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + if (convertToString(response.getStatus()).equals("204")) { + return null; + } + return JsonManager.deserialize(response.getData(), AiResponseFull.class); + } + + public AiResponse createAiTextGen(AiTextGen requestBody) { + return createAiTextGen(requestBody, new CreateAiTextGenHeaders()); + } + + public AiResponse createAiTextGen(AiTextGen requestBody, CreateAiTextGenHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/ai/text_gen"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), AiResponse.class); + } + + public AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen + getAiAgentDefaultConfig(GetAiAgentDefaultConfigQueryParams queryParams) { + return getAiAgentDefaultConfig(queryParams, new GetAiAgentDefaultConfigHeaders()); + } + + public AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen + getAiAgentDefaultConfig( + GetAiAgentDefaultConfigQueryParams queryParams, GetAiAgentDefaultConfigHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("mode", convertToString(queryParams.getMode())), + entryOf("language", convertToString(queryParams.getLanguage())), + entryOf("model", convertToString(queryParams.getModel())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/ai_agent_default"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize( + response.getData(), + AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen.class); + } + + public AiResponse createAiExtract(AiExtract requestBody) { + return createAiExtract(requestBody, new CreateAiExtractHeaders()); + } + + public AiResponse createAiExtract(AiExtract requestBody, CreateAiExtractHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/ai/extract"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), AiResponse.class); + } + + public AiExtractStructuredResponse createAiExtractStructured(AiExtractStructured requestBody) { + return createAiExtractStructured(requestBody, new CreateAiExtractStructuredHeaders()); + } + + public AiExtractStructuredResponse createAiExtractStructured( + AiExtractStructured requestBody, CreateAiExtractStructuredHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/ai/extract_structured"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), AiExtractStructuredResponse.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public AiManager build() { + return new AiManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/ai/CreateAiAskHeaders.java b/src/main/java/com/box/sdkgen/managers/ai/CreateAiAskHeaders.java new file mode 100644 index 000000000..87eb692f0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/ai/CreateAiAskHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.ai; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateAiAskHeaders { + + public Map extraHeaders; + + public CreateAiAskHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateAiAskHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateAiAskHeaders build() { + return new CreateAiAskHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/ai/CreateAiExtractHeaders.java b/src/main/java/com/box/sdkgen/managers/ai/CreateAiExtractHeaders.java new file mode 100644 index 000000000..369ccbf8f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/ai/CreateAiExtractHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.ai; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateAiExtractHeaders { + + public Map extraHeaders; + + public CreateAiExtractHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateAiExtractHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateAiExtractHeaders build() { + return new CreateAiExtractHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/ai/CreateAiExtractStructuredHeaders.java b/src/main/java/com/box/sdkgen/managers/ai/CreateAiExtractStructuredHeaders.java new file mode 100644 index 000000000..376e3a5f7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/ai/CreateAiExtractStructuredHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.ai; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateAiExtractStructuredHeaders { + + public Map extraHeaders; + + public CreateAiExtractStructuredHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateAiExtractStructuredHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateAiExtractStructuredHeaders build() { + return new CreateAiExtractStructuredHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/ai/CreateAiTextGenHeaders.java b/src/main/java/com/box/sdkgen/managers/ai/CreateAiTextGenHeaders.java new file mode 100644 index 000000000..81bad3e77 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/ai/CreateAiTextGenHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.ai; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateAiTextGenHeaders { + + public Map extraHeaders; + + public CreateAiTextGenHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateAiTextGenHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateAiTextGenHeaders build() { + return new CreateAiTextGenHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigHeaders.java b/src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigHeaders.java new file mode 100644 index 000000000..994a181ea --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.ai; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetAiAgentDefaultConfigHeaders { + + public Map extraHeaders; + + public GetAiAgentDefaultConfigHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetAiAgentDefaultConfigHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetAiAgentDefaultConfigHeaders build() { + return new GetAiAgentDefaultConfigHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigQueryParams.java b/src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigQueryParams.java new file mode 100644 index 000000000..6bddb5313 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigQueryParams.java @@ -0,0 +1,70 @@ +package com.box.sdkgen.managers.ai; + +import com.box.sdkgen.serialization.json.EnumWrapper; + +public class GetAiAgentDefaultConfigQueryParams { + + public final EnumWrapper mode; + + public String language; + + public String model; + + public GetAiAgentDefaultConfigQueryParams(GetAiAgentDefaultConfigQueryParamsModeField mode) { + this.mode = new EnumWrapper(mode); + } + + public GetAiAgentDefaultConfigQueryParams( + EnumWrapper mode) { + this.mode = mode; + } + + protected GetAiAgentDefaultConfigQueryParams(Builder builder) { + this.mode = builder.mode; + this.language = builder.language; + this.model = builder.model; + } + + public EnumWrapper getMode() { + return mode; + } + + public String getLanguage() { + return language; + } + + public String getModel() { + return model; + } + + public static class Builder { + + protected final EnumWrapper mode; + + protected String language; + + protected String model; + + public Builder(GetAiAgentDefaultConfigQueryParamsModeField mode) { + this.mode = new EnumWrapper(mode); + } + + public Builder(EnumWrapper mode) { + this.mode = mode; + } + + public Builder language(String language) { + this.language = language; + return this; + } + + public Builder model(String model) { + this.model = model; + return this; + } + + public GetAiAgentDefaultConfigQueryParams build() { + return new GetAiAgentDefaultConfigQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigQueryParamsModeField.java b/src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigQueryParamsModeField.java new file mode 100644 index 000000000..beaa5fde4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigQueryParamsModeField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.managers.ai; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetAiAgentDefaultConfigQueryParamsModeField implements Valuable { + ASK("ask"), + TEXT_GEN("text_gen"), + EXTRACT("extract"), + EXTRACT_STRUCTURED("extract_structured"); + + private final String value; + + GetAiAgentDefaultConfigQueryParamsModeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetAiAgentDefaultConfigQueryParamsModeFieldDeserializer + extends JsonDeserializer> { + + public GetAiAgentDefaultConfigQueryParamsModeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetAiAgentDefaultConfigQueryParamsModeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetAiAgentDefaultConfigQueryParamsModeFieldSerializer + extends JsonSerializer> { + + public GetAiAgentDefaultConfigQueryParamsModeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/aistudio/AiStudioManager.java b/src/main/java/com/box/sdkgen/managers/aistudio/AiStudioManager.java new file mode 100644 index 000000000..4280298d1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/aistudio/AiStudioManager.java @@ -0,0 +1,223 @@ +package com.box.sdkgen.managers.aistudio; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.aimultipleagentresponse.AiMultipleAgentResponse; +import com.box.sdkgen.schemas.aisingleagentresponsefull.AiSingleAgentResponseFull; +import com.box.sdkgen.schemas.createaiagent.CreateAiAgent; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class AiStudioManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public AiStudioManager() { + this.networkSession = new NetworkSession(); + } + + protected AiStudioManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public AiMultipleAgentResponse getAiAgents() { + return getAiAgents(new GetAiAgentsQueryParams(), new GetAiAgentsHeaders()); + } + + public AiMultipleAgentResponse getAiAgents(GetAiAgentsQueryParams queryParams) { + return getAiAgents(queryParams, new GetAiAgentsHeaders()); + } + + public AiMultipleAgentResponse getAiAgents(GetAiAgentsHeaders headers) { + return getAiAgents(new GetAiAgentsQueryParams(), headers); + } + + public AiMultipleAgentResponse getAiAgents( + GetAiAgentsQueryParams queryParams, GetAiAgentsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("mode", convertToString(queryParams.getMode())), + entryOf("fields", convertToString(queryParams.getFields())), + entryOf("agent_state", convertToString(queryParams.getAgentState())), + entryOf("include_box_default", convertToString(queryParams.getIncludeBoxDefault())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/ai_agents"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), AiMultipleAgentResponse.class); + } + + public AiSingleAgentResponseFull createAiAgent(CreateAiAgent requestBody) { + return createAiAgent(requestBody, new CreateAiAgentHeaders()); + } + + public AiSingleAgentResponseFull createAiAgent( + CreateAiAgent requestBody, CreateAiAgentHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/ai_agents"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), AiSingleAgentResponseFull.class); + } + + public AiSingleAgentResponseFull updateAiAgentById(String agentId, CreateAiAgent requestBody) { + return updateAiAgentById(agentId, requestBody, new UpdateAiAgentByIdHeaders()); + } + + public AiSingleAgentResponseFull updateAiAgentById( + String agentId, CreateAiAgent requestBody, UpdateAiAgentByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/ai_agents/", + convertToString(agentId)), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), AiSingleAgentResponseFull.class); + } + + public AiSingleAgentResponseFull getAiAgentById(String agentId) { + return getAiAgentById(agentId, new GetAiAgentByIdQueryParams(), new GetAiAgentByIdHeaders()); + } + + public AiSingleAgentResponseFull getAiAgentById( + String agentId, GetAiAgentByIdQueryParams queryParams) { + return getAiAgentById(agentId, queryParams, new GetAiAgentByIdHeaders()); + } + + public AiSingleAgentResponseFull getAiAgentById(String agentId, GetAiAgentByIdHeaders headers) { + return getAiAgentById(agentId, new GetAiAgentByIdQueryParams(), headers); + } + + public AiSingleAgentResponseFull getAiAgentById( + String agentId, GetAiAgentByIdQueryParams queryParams, GetAiAgentByIdHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/ai_agents/", + convertToString(agentId)), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), AiSingleAgentResponseFull.class); + } + + public void deleteAiAgentById(String agentId) { + deleteAiAgentById(agentId, new DeleteAiAgentByIdHeaders()); + } + + public void deleteAiAgentById(String agentId, DeleteAiAgentByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/ai_agents/", + convertToString(agentId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public AiStudioManager build() { + return new AiStudioManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/aistudio/CreateAiAgentHeaders.java b/src/main/java/com/box/sdkgen/managers/aistudio/CreateAiAgentHeaders.java new file mode 100644 index 000000000..de1c12034 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/aistudio/CreateAiAgentHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.aistudio; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateAiAgentHeaders { + + public Map extraHeaders; + + public CreateAiAgentHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateAiAgentHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateAiAgentHeaders build() { + return new CreateAiAgentHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/aistudio/DeleteAiAgentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/aistudio/DeleteAiAgentByIdHeaders.java new file mode 100644 index 000000000..dfc475c1b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/aistudio/DeleteAiAgentByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.aistudio; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteAiAgentByIdHeaders { + + public Map extraHeaders; + + public DeleteAiAgentByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteAiAgentByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteAiAgentByIdHeaders build() { + return new DeleteAiAgentByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentByIdHeaders.java new file mode 100644 index 000000000..e25955c39 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.aistudio; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetAiAgentByIdHeaders { + + public Map extraHeaders; + + public GetAiAgentByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetAiAgentByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetAiAgentByIdHeaders build() { + return new GetAiAgentByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentByIdQueryParams.java new file mode 100644 index 000000000..8c07a954f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentByIdQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.aistudio; + +import java.util.List; + +public class GetAiAgentByIdQueryParams { + + public List fields; + + public GetAiAgentByIdQueryParams() {} + + protected GetAiAgentByIdQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public GetAiAgentByIdQueryParams build() { + return new GetAiAgentByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentsHeaders.java b/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentsHeaders.java new file mode 100644 index 000000000..be7f38635 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.aistudio; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetAiAgentsHeaders { + + public Map extraHeaders; + + public GetAiAgentsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetAiAgentsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetAiAgentsHeaders build() { + return new GetAiAgentsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentsQueryParams.java b/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentsQueryParams.java new file mode 100644 index 000000000..03802e4ea --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentsQueryParams.java @@ -0,0 +1,102 @@ +package com.box.sdkgen.managers.aistudio; + +import java.util.List; + +public class GetAiAgentsQueryParams { + + public List mode; + + public List fields; + + public List agentState; + + public Boolean includeBoxDefault; + + public String marker; + + public Long limit; + + public GetAiAgentsQueryParams() {} + + protected GetAiAgentsQueryParams(Builder builder) { + this.mode = builder.mode; + this.fields = builder.fields; + this.agentState = builder.agentState; + this.includeBoxDefault = builder.includeBoxDefault; + this.marker = builder.marker; + this.limit = builder.limit; + } + + public List getMode() { + return mode; + } + + public List getFields() { + return fields; + } + + public List getAgentState() { + return agentState; + } + + public Boolean getIncludeBoxDefault() { + return includeBoxDefault; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected List mode; + + protected List fields; + + protected List agentState; + + protected Boolean includeBoxDefault; + + protected String marker; + + protected Long limit; + + public Builder mode(List mode) { + this.mode = mode; + return this; + } + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder agentState(List agentState) { + this.agentState = agentState; + return this; + } + + public Builder includeBoxDefault(Boolean includeBoxDefault) { + this.includeBoxDefault = includeBoxDefault; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetAiAgentsQueryParams build() { + return new GetAiAgentsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/aistudio/UpdateAiAgentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/aistudio/UpdateAiAgentByIdHeaders.java new file mode 100644 index 000000000..65d7c126c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/aistudio/UpdateAiAgentByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.aistudio; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateAiAgentByIdHeaders { + + public Map extraHeaders; + + public UpdateAiAgentByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateAiAgentByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateAiAgentByIdHeaders build() { + return new UpdateAiAgentByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/appitemassociations/AppItemAssociationsManager.java b/src/main/java/com/box/sdkgen/managers/appitemassociations/AppItemAssociationsManager.java new file mode 100644 index 000000000..d767edcc0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/appitemassociations/AppItemAssociationsManager.java @@ -0,0 +1,165 @@ +package com.box.sdkgen.managers.appitemassociations; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.appitemassociations.AppItemAssociations; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class AppItemAssociationsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public AppItemAssociationsManager() { + this.networkSession = new NetworkSession(); + } + + protected AppItemAssociationsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public AppItemAssociations getFileAppItemAssociations(String fileId) { + return getFileAppItemAssociations( + fileId, + new GetFileAppItemAssociationsQueryParams(), + new GetFileAppItemAssociationsHeaders()); + } + + public AppItemAssociations getFileAppItemAssociations( + String fileId, GetFileAppItemAssociationsQueryParams queryParams) { + return getFileAppItemAssociations(fileId, queryParams, new GetFileAppItemAssociationsHeaders()); + } + + public AppItemAssociations getFileAppItemAssociations( + String fileId, GetFileAppItemAssociationsHeaders headers) { + return getFileAppItemAssociations(fileId, new GetFileAppItemAssociationsQueryParams(), headers); + } + + public AppItemAssociations getFileAppItemAssociations( + String fileId, + GetFileAppItemAssociationsQueryParams queryParams, + GetFileAppItemAssociationsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("application_type", convertToString(queryParams.getApplicationType())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/app_item_associations"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), AppItemAssociations.class); + } + + public AppItemAssociations getFolderAppItemAssociations(String folderId) { + return getFolderAppItemAssociations( + folderId, + new GetFolderAppItemAssociationsQueryParams(), + new GetFolderAppItemAssociationsHeaders()); + } + + public AppItemAssociations getFolderAppItemAssociations( + String folderId, GetFolderAppItemAssociationsQueryParams queryParams) { + return getFolderAppItemAssociations( + folderId, queryParams, new GetFolderAppItemAssociationsHeaders()); + } + + public AppItemAssociations getFolderAppItemAssociations( + String folderId, GetFolderAppItemAssociationsHeaders headers) { + return getFolderAppItemAssociations( + folderId, new GetFolderAppItemAssociationsQueryParams(), headers); + } + + public AppItemAssociations getFolderAppItemAssociations( + String folderId, + GetFolderAppItemAssociationsQueryParams queryParams, + GetFolderAppItemAssociationsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("application_type", convertToString(queryParams.getApplicationType())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId), + "/app_item_associations"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), AppItemAssociations.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public AppItemAssociationsManager build() { + return new AppItemAssociationsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFileAppItemAssociationsHeaders.java b/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFileAppItemAssociationsHeaders.java new file mode 100644 index 000000000..9d9b9654f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFileAppItemAssociationsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.appitemassociations; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFileAppItemAssociationsHeaders { + + public Map extraHeaders; + + public GetFileAppItemAssociationsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFileAppItemAssociationsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFileAppItemAssociationsHeaders build() { + return new GetFileAppItemAssociationsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFileAppItemAssociationsQueryParams.java b/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFileAppItemAssociationsQueryParams.java new file mode 100644 index 000000000..7ad285d6d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFileAppItemAssociationsQueryParams.java @@ -0,0 +1,58 @@ +package com.box.sdkgen.managers.appitemassociations; + +public class GetFileAppItemAssociationsQueryParams { + + public Long limit; + + public String marker; + + public String applicationType; + + public GetFileAppItemAssociationsQueryParams() {} + + protected GetFileAppItemAssociationsQueryParams(Builder builder) { + this.limit = builder.limit; + this.marker = builder.marker; + this.applicationType = builder.applicationType; + } + + public Long getLimit() { + return limit; + } + + public String getMarker() { + return marker; + } + + public String getApplicationType() { + return applicationType; + } + + public static class Builder { + + protected Long limit; + + protected String marker; + + protected String applicationType; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder applicationType(String applicationType) { + this.applicationType = applicationType; + return this; + } + + public GetFileAppItemAssociationsQueryParams build() { + return new GetFileAppItemAssociationsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFolderAppItemAssociationsHeaders.java b/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFolderAppItemAssociationsHeaders.java new file mode 100644 index 000000000..de2e7926a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFolderAppItemAssociationsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.appitemassociations; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFolderAppItemAssociationsHeaders { + + public Map extraHeaders; + + public GetFolderAppItemAssociationsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFolderAppItemAssociationsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFolderAppItemAssociationsHeaders build() { + return new GetFolderAppItemAssociationsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFolderAppItemAssociationsQueryParams.java b/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFolderAppItemAssociationsQueryParams.java new file mode 100644 index 000000000..9a77b115d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFolderAppItemAssociationsQueryParams.java @@ -0,0 +1,58 @@ +package com.box.sdkgen.managers.appitemassociations; + +public class GetFolderAppItemAssociationsQueryParams { + + public Long limit; + + public String marker; + + public String applicationType; + + public GetFolderAppItemAssociationsQueryParams() {} + + protected GetFolderAppItemAssociationsQueryParams(Builder builder) { + this.limit = builder.limit; + this.marker = builder.marker; + this.applicationType = builder.applicationType; + } + + public Long getLimit() { + return limit; + } + + public String getMarker() { + return marker; + } + + public String getApplicationType() { + return applicationType; + } + + public static class Builder { + + protected Long limit; + + protected String marker; + + protected String applicationType; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder applicationType(String applicationType) { + this.applicationType = applicationType; + return this; + } + + public GetFolderAppItemAssociationsQueryParams build() { + return new GetFolderAppItemAssociationsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/archives/ArchivesManager.java b/src/main/java/com/box/sdkgen/managers/archives/ArchivesManager.java new file mode 100644 index 000000000..7f65bfa2f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/archives/ArchivesManager.java @@ -0,0 +1,164 @@ +package com.box.sdkgen.managers.archives; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.v2025r0.archivesv2025r0.ArchivesV2025R0; +import com.box.sdkgen.schemas.v2025r0.archivev2025r0.ArchiveV2025R0; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class ArchivesManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public ArchivesManager() { + this.networkSession = new NetworkSession(); + } + + protected ArchivesManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public ArchivesV2025R0 getArchivesV2025R0() { + return getArchivesV2025R0(new GetArchivesV2025R0QueryParams(), new GetArchivesV2025R0Headers()); + } + + public ArchivesV2025R0 getArchivesV2025R0(GetArchivesV2025R0QueryParams queryParams) { + return getArchivesV2025R0(queryParams, new GetArchivesV2025R0Headers()); + } + + public ArchivesV2025R0 getArchivesV2025R0(GetArchivesV2025R0Headers headers) { + return getArchivesV2025R0(new GetArchivesV2025R0QueryParams(), headers); + } + + public ArchivesV2025R0 getArchivesV2025R0( + GetArchivesV2025R0QueryParams queryParams, GetArchivesV2025R0Headers headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf("marker", convertToString(queryParams.getMarker())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/archives"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ArchivesV2025R0.class); + } + + public ArchiveV2025R0 createArchiveV2025R0(CreateArchiveV2025R0RequestBody requestBody) { + return createArchiveV2025R0(requestBody, new CreateArchiveV2025R0Headers()); + } + + public ArchiveV2025R0 createArchiveV2025R0( + CreateArchiveV2025R0RequestBody requestBody, CreateArchiveV2025R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/archives"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ArchiveV2025R0.class); + } + + public void deleteArchiveByIdV2025R0(String archiveId) { + deleteArchiveByIdV2025R0(archiveId, new DeleteArchiveByIdV2025R0Headers()); + } + + public void deleteArchiveByIdV2025R0(String archiveId, DeleteArchiveByIdV2025R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/archives/", + convertToString(archiveId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public ArchivesManager build() { + return new ArchivesManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/archives/CreateArchiveV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/archives/CreateArchiveV2025R0Headers.java new file mode 100644 index 000000000..788ac1c2c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/archives/CreateArchiveV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.archives; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class CreateArchiveV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public CreateArchiveV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected CreateArchiveV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateArchiveV2025R0Headers build() { + return new CreateArchiveV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/archives/CreateArchiveV2025R0RequestBody.java b/src/main/java/com/box/sdkgen/managers/archives/CreateArchiveV2025R0RequestBody.java new file mode 100644 index 000000000..9bf577b2c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/archives/CreateArchiveV2025R0RequestBody.java @@ -0,0 +1,43 @@ +package com.box.sdkgen.managers.archives; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateArchiveV2025R0RequestBody extends SerializableObject { + + protected final String name; + + public CreateArchiveV2025R0RequestBody(@JsonProperty("name") String name) { + super(); + this.name = name; + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateArchiveV2025R0RequestBody casted = (CreateArchiveV2025R0RequestBody) o; + return Objects.equals(name, casted.name); + } + + @Override + public int hashCode() { + return Objects.hash(name); + } + + @Override + public String toString() { + return "CreateArchiveV2025R0RequestBody{" + "name='" + name + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/archives/DeleteArchiveByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/archives/DeleteArchiveByIdV2025R0Headers.java new file mode 100644 index 000000000..bd562488e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/archives/DeleteArchiveByIdV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.archives; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class DeleteArchiveByIdV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public DeleteArchiveByIdV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected DeleteArchiveByIdV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteArchiveByIdV2025R0Headers build() { + return new DeleteArchiveByIdV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/archives/GetArchivesV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/archives/GetArchivesV2025R0Headers.java new file mode 100644 index 000000000..546a89183 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/archives/GetArchivesV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.archives; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class GetArchivesV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public GetArchivesV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected GetArchivesV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetArchivesV2025R0Headers build() { + return new GetArchivesV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/archives/GetArchivesV2025R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/archives/GetArchivesV2025R0QueryParams.java new file mode 100644 index 000000000..9136aba0b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/archives/GetArchivesV2025R0QueryParams.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.archives; + +public class GetArchivesV2025R0QueryParams { + + public Long limit; + + public String marker; + + public GetArchivesV2025R0QueryParams() {} + + protected GetArchivesV2025R0QueryParams(Builder builder) { + this.limit = builder.limit; + this.marker = builder.marker; + } + + public Long getLimit() { + return limit; + } + + public String getMarker() { + return marker; + } + + public static class Builder { + + protected Long limit; + + protected String marker; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public GetArchivesV2025R0QueryParams build() { + return new GetArchivesV2025R0QueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/authorization/AuthorizationManager.java b/src/main/java/com/box/sdkgen/managers/authorization/AuthorizationManager.java new file mode 100644 index 000000000..1b9c8e00e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/authorization/AuthorizationManager.java @@ -0,0 +1,173 @@ +package com.box.sdkgen.managers.authorization; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.accesstoken.AccessToken; +import com.box.sdkgen.schemas.postoauth2revoke.PostOAuth2Revoke; +import com.box.sdkgen.schemas.postoauth2token.PostOAuth2Token; +import com.box.sdkgen.schemas.postoauth2tokenrefreshaccesstoken.PostOAuth2TokenRefreshAccessToken; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class AuthorizationManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public AuthorizationManager() { + this.networkSession = new NetworkSession(); + } + + protected AuthorizationManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public void authorizeUser(AuthorizeUserQueryParams queryParams) { + authorizeUser(queryParams, new AuthorizeUserHeaders()); + } + + public void authorizeUser(AuthorizeUserQueryParams queryParams, AuthorizeUserHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("response_type", convertToString(queryParams.getResponseType())), + entryOf("client_id", convertToString(queryParams.getClientId())), + entryOf("redirect_uri", convertToString(queryParams.getRedirectUri())), + entryOf("state", convertToString(queryParams.getState())), + entryOf("scope", convertToString(queryParams.getScope())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getOauth2Url(), "/authorize"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public AccessToken requestAccessToken(PostOAuth2Token requestBody) { + return requestAccessToken(requestBody, new RequestAccessTokenHeaders()); + } + + public AccessToken requestAccessToken( + PostOAuth2Token requestBody, RequestAccessTokenHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/oauth2/token"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/x-www-form-urlencoded") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), AccessToken.class); + } + + public AccessToken refreshAccessToken(PostOAuth2TokenRefreshAccessToken requestBody) { + return refreshAccessToken(requestBody, new RefreshAccessTokenHeaders()); + } + + public AccessToken refreshAccessToken( + PostOAuth2TokenRefreshAccessToken requestBody, RefreshAccessTokenHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/oauth2/token#refresh"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/x-www-form-urlencoded") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), AccessToken.class); + } + + public void revokeAccessToken(PostOAuth2Revoke requestBody) { + revokeAccessToken(requestBody, new RevokeAccessTokenHeaders()); + } + + public void revokeAccessToken(PostOAuth2Revoke requestBody, RevokeAccessTokenHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/oauth2/revoke"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/x-www-form-urlencoded") + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public AuthorizationManager build() { + return new AuthorizationManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserHeaders.java b/src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserHeaders.java new file mode 100644 index 000000000..2ae8f9b8f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.authorization; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class AuthorizeUserHeaders { + + public Map extraHeaders; + + public AuthorizeUserHeaders() { + this.extraHeaders = mapOf(); + } + + protected AuthorizeUserHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public AuthorizeUserHeaders build() { + return new AuthorizeUserHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserQueryParams.java b/src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserQueryParams.java new file mode 100644 index 000000000..f345e7eaf --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserQueryParams.java @@ -0,0 +1,99 @@ +package com.box.sdkgen.managers.authorization; + +import com.box.sdkgen.serialization.json.EnumWrapper; + +public class AuthorizeUserQueryParams { + + public final EnumWrapper responseType; + + public final String clientId; + + public String redirectUri; + + public String state; + + public String scope; + + public AuthorizeUserQueryParams( + AuthorizeUserQueryParamsResponseTypeField responseType, String clientId) { + this.responseType = new EnumWrapper(responseType); + this.clientId = clientId; + } + + public AuthorizeUserQueryParams( + EnumWrapper responseType, String clientId) { + this.responseType = responseType; + this.clientId = clientId; + } + + protected AuthorizeUserQueryParams(Builder builder) { + this.responseType = builder.responseType; + this.clientId = builder.clientId; + this.redirectUri = builder.redirectUri; + this.state = builder.state; + this.scope = builder.scope; + } + + public EnumWrapper getResponseType() { + return responseType; + } + + public String getClientId() { + return clientId; + } + + public String getRedirectUri() { + return redirectUri; + } + + public String getState() { + return state; + } + + public String getScope() { + return scope; + } + + public static class Builder { + + protected final EnumWrapper responseType; + + protected final String clientId; + + protected String redirectUri; + + protected String state; + + protected String scope; + + public Builder(AuthorizeUserQueryParamsResponseTypeField responseType, String clientId) { + this.responseType = new EnumWrapper(responseType); + this.clientId = clientId; + } + + public Builder( + EnumWrapper responseType, String clientId) { + this.responseType = responseType; + this.clientId = clientId; + } + + public Builder redirectUri(String redirectUri) { + this.redirectUri = redirectUri; + return this; + } + + public Builder state(String state) { + this.state = state; + return this; + } + + public Builder scope(String scope) { + this.scope = scope; + return this; + } + + public AuthorizeUserQueryParams build() { + return new AuthorizeUserQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserQueryParamsResponseTypeField.java b/src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserQueryParamsResponseTypeField.java new file mode 100644 index 000000000..1a7ebc675 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserQueryParamsResponseTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.authorization; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AuthorizeUserQueryParamsResponseTypeField implements Valuable { + CODE("code"); + + private final String value; + + AuthorizeUserQueryParamsResponseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AuthorizeUserQueryParamsResponseTypeFieldDeserializer + extends JsonDeserializer> { + + public AuthorizeUserQueryParamsResponseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AuthorizeUserQueryParamsResponseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AuthorizeUserQueryParamsResponseTypeFieldSerializer + extends JsonSerializer> { + + public AuthorizeUserQueryParamsResponseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/authorization/RefreshAccessTokenHeaders.java b/src/main/java/com/box/sdkgen/managers/authorization/RefreshAccessTokenHeaders.java new file mode 100644 index 000000000..6de2adada --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/authorization/RefreshAccessTokenHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.authorization; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class RefreshAccessTokenHeaders { + + public Map extraHeaders; + + public RefreshAccessTokenHeaders() { + this.extraHeaders = mapOf(); + } + + protected RefreshAccessTokenHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public RefreshAccessTokenHeaders build() { + return new RefreshAccessTokenHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/authorization/RequestAccessTokenHeaders.java b/src/main/java/com/box/sdkgen/managers/authorization/RequestAccessTokenHeaders.java new file mode 100644 index 000000000..4ff9b8f26 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/authorization/RequestAccessTokenHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.authorization; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class RequestAccessTokenHeaders { + + public Map extraHeaders; + + public RequestAccessTokenHeaders() { + this.extraHeaders = mapOf(); + } + + protected RequestAccessTokenHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public RequestAccessTokenHeaders build() { + return new RequestAccessTokenHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/authorization/RevokeAccessTokenHeaders.java b/src/main/java/com/box/sdkgen/managers/authorization/RevokeAccessTokenHeaders.java new file mode 100644 index 000000000..74610a808 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/authorization/RevokeAccessTokenHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.authorization; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class RevokeAccessTokenHeaders { + + public Map extraHeaders; + + public RevokeAccessTokenHeaders() { + this.extraHeaders = mapOf(); + } + + protected RevokeAccessTokenHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public RevokeAccessTokenHeaders build() { + return new RevokeAccessTokenHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/avatars/AvatarsManager.java b/src/main/java/com/box/sdkgen/managers/avatars/AvatarsManager.java new file mode 100644 index 000000000..dcf00a0d6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/avatars/AvatarsManager.java @@ -0,0 +1,153 @@ +package com.box.sdkgen.managers.avatars; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.MultipartItem; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.useravatar.UserAvatar; +import com.box.sdkgen.serialization.json.JsonManager; +import java.io.InputStream; +import java.util.Arrays; +import java.util.Map; + +public class AvatarsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public AvatarsManager() { + this.networkSession = new NetworkSession(); + } + + protected AvatarsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public InputStream getUserAvatar(String userId) { + return getUserAvatar(userId, new GetUserAvatarHeaders()); + } + + public InputStream getUserAvatar(String userId, GetUserAvatarHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/users/", + convertToString(userId), + "/avatar"), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.BINARY) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return response.getContent(); + } + + public UserAvatar createUserAvatar(String userId, CreateUserAvatarRequestBody requestBody) { + return createUserAvatar(userId, requestBody, new CreateUserAvatarHeaders()); + } + + public UserAvatar createUserAvatar( + String userId, CreateUserAvatarRequestBody requestBody, CreateUserAvatarHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/users/", + convertToString(userId), + "/avatar"), + "POST") + .headers(headersMap) + .multipartData( + Arrays.asList( + new MultipartItem.Builder("pic") + .fileStream(requestBody.getPic()) + .fileName(requestBody.getPicFileName()) + .contentType(requestBody.getPicContentType()) + .build())) + .contentType("multipart/form-data") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), UserAvatar.class); + } + + public void deleteUserAvatar(String userId) { + deleteUserAvatar(userId, new DeleteUserAvatarHeaders()); + } + + public void deleteUserAvatar(String userId, DeleteUserAvatarHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/users/", + convertToString(userId), + "/avatar"), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public AvatarsManager build() { + return new AvatarsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/avatars/CreateUserAvatarHeaders.java b/src/main/java/com/box/sdkgen/managers/avatars/CreateUserAvatarHeaders.java new file mode 100644 index 000000000..efcd31aa5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/avatars/CreateUserAvatarHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.avatars; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateUserAvatarHeaders { + + public Map extraHeaders; + + public CreateUserAvatarHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateUserAvatarHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateUserAvatarHeaders build() { + return new CreateUserAvatarHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/avatars/CreateUserAvatarRequestBody.java b/src/main/java/com/box/sdkgen/managers/avatars/CreateUserAvatarRequestBody.java new file mode 100644 index 000000000..5205cfe32 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/avatars/CreateUserAvatarRequestBody.java @@ -0,0 +1,61 @@ +package com.box.sdkgen.managers.avatars; + +import java.io.InputStream; + +public class CreateUserAvatarRequestBody { + + public final InputStream pic; + + public String picFileName; + + public String picContentType; + + public CreateUserAvatarRequestBody(InputStream pic) { + this.pic = pic; + } + + protected CreateUserAvatarRequestBody(Builder builder) { + this.pic = builder.pic; + this.picFileName = builder.picFileName; + this.picContentType = builder.picContentType; + } + + public InputStream getPic() { + return pic; + } + + public String getPicFileName() { + return picFileName; + } + + public String getPicContentType() { + return picContentType; + } + + public static class Builder { + + protected final InputStream pic; + + protected String picFileName; + + protected String picContentType; + + public Builder(InputStream pic) { + this.pic = pic; + } + + public Builder picFileName(String picFileName) { + this.picFileName = picFileName; + return this; + } + + public Builder picContentType(String picContentType) { + this.picContentType = picContentType; + return this; + } + + public CreateUserAvatarRequestBody build() { + return new CreateUserAvatarRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/avatars/DeleteUserAvatarHeaders.java b/src/main/java/com/box/sdkgen/managers/avatars/DeleteUserAvatarHeaders.java new file mode 100644 index 000000000..27f48a05a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/avatars/DeleteUserAvatarHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.avatars; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteUserAvatarHeaders { + + public Map extraHeaders; + + public DeleteUserAvatarHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteUserAvatarHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteUserAvatarHeaders build() { + return new DeleteUserAvatarHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/avatars/GetUserAvatarHeaders.java b/src/main/java/com/box/sdkgen/managers/avatars/GetUserAvatarHeaders.java new file mode 100644 index 000000000..e2d96e02c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/avatars/GetUserAvatarHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.avatars; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetUserAvatarHeaders { + + public Map extraHeaders; + + public GetUserAvatarHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetUserAvatarHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetUserAvatarHeaders build() { + return new GetUserAvatarHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/ChunkedUploadsManager.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/ChunkedUploadsManager.java new file mode 100644 index 000000000..21ac8e6d0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/ChunkedUploadsManager.java @@ -0,0 +1,520 @@ +package com.box.sdkgen.managers.chunkeduploads; + +import static com.box.sdkgen.internal.utils.UtilsManager.bufferLength; +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStreamFromBuffer; +import static com.box.sdkgen.internal.utils.UtilsManager.hexToBase64; +import static com.box.sdkgen.internal.utils.UtilsManager.iterateChunks; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; +import static com.box.sdkgen.internal.utils.UtilsManager.readByteStream; +import static com.box.sdkgen.internal.utils.UtilsManager.reduceIterator; + +import com.box.sdkgen.internal.utils.Hash; +import com.box.sdkgen.internal.utils.HashName; +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.files.Files; +import com.box.sdkgen.schemas.uploadedpart.UploadedPart; +import com.box.sdkgen.schemas.uploadpart.UploadPart; +import com.box.sdkgen.schemas.uploadparts.UploadParts; +import com.box.sdkgen.schemas.uploadsession.UploadSession; +import com.box.sdkgen.serialization.json.JsonManager; +import java.io.InputStream; +import java.util.Arrays; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class ChunkedUploadsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public ChunkedUploadsManager() { + this.networkSession = new NetworkSession(); + } + + protected ChunkedUploadsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public UploadSession createFileUploadSession(CreateFileUploadSessionRequestBody requestBody) { + return createFileUploadSession(requestBody, new CreateFileUploadSessionHeaders()); + } + + public UploadSession createFileUploadSession( + CreateFileUploadSessionRequestBody requestBody, CreateFileUploadSessionHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getUploadUrl(), + "/2.0/files/upload_sessions"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), UploadSession.class); + } + + public UploadSession createFileUploadSessionForExistingFile( + String fileId, CreateFileUploadSessionForExistingFileRequestBody requestBody) { + return createFileUploadSessionForExistingFile( + fileId, requestBody, new CreateFileUploadSessionForExistingFileHeaders()); + } + + public UploadSession createFileUploadSessionForExistingFile( + String fileId, + CreateFileUploadSessionForExistingFileRequestBody requestBody, + CreateFileUploadSessionForExistingFileHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getUploadUrl(), + "/2.0/files/", + convertToString(fileId), + "/upload_sessions"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), UploadSession.class); + } + + public UploadSession getFileUploadSessionByUrl(String url) { + return getFileUploadSessionByUrl(url, new GetFileUploadSessionByUrlHeaders()); + } + + public UploadSession getFileUploadSessionByUrl( + String url, GetFileUploadSessionByUrlHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder(url, "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), UploadSession.class); + } + + public UploadSession getFileUploadSessionById(String uploadSessionId) { + return getFileUploadSessionById(uploadSessionId, new GetFileUploadSessionByIdHeaders()); + } + + public UploadSession getFileUploadSessionById( + String uploadSessionId, GetFileUploadSessionByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getUploadUrl(), + "/2.0/files/upload_sessions/", + convertToString(uploadSessionId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), UploadSession.class); + } + + public UploadedPart uploadFilePartByUrl( + String url, InputStream requestBody, UploadFilePartByUrlHeaders headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf( + entryOf("digest", convertToString(headers.getDigest())), + entryOf("content-range", convertToString(headers.getContentRange()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder(url, "PUT") + .headers(headersMap) + .fileStream(requestBody) + .contentType("application/octet-stream") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), UploadedPart.class); + } + + public UploadedPart uploadFilePart( + String uploadSessionId, InputStream requestBody, UploadFilePartHeaders headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf( + entryOf("digest", convertToString(headers.getDigest())), + entryOf("content-range", convertToString(headers.getContentRange()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getUploadUrl(), + "/2.0/files/upload_sessions/", + convertToString(uploadSessionId)), + "PUT") + .headers(headersMap) + .fileStream(requestBody) + .contentType("application/octet-stream") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), UploadedPart.class); + } + + public void deleteFileUploadSessionByUrl(String url) { + deleteFileUploadSessionByUrl(url, new DeleteFileUploadSessionByUrlHeaders()); + } + + public void deleteFileUploadSessionByUrl( + String url, DeleteFileUploadSessionByUrlHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder(url, "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public void deleteFileUploadSessionById(String uploadSessionId) { + deleteFileUploadSessionById(uploadSessionId, new DeleteFileUploadSessionByIdHeaders()); + } + + public void deleteFileUploadSessionById( + String uploadSessionId, DeleteFileUploadSessionByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getUploadUrl(), + "/2.0/files/upload_sessions/", + convertToString(uploadSessionId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public UploadParts getFileUploadSessionPartsByUrl(String url) { + return getFileUploadSessionPartsByUrl( + url, + new GetFileUploadSessionPartsByUrlQueryParams(), + new GetFileUploadSessionPartsByUrlHeaders()); + } + + public UploadParts getFileUploadSessionPartsByUrl( + String url, GetFileUploadSessionPartsByUrlQueryParams queryParams) { + return getFileUploadSessionPartsByUrl( + url, queryParams, new GetFileUploadSessionPartsByUrlHeaders()); + } + + public UploadParts getFileUploadSessionPartsByUrl( + String url, GetFileUploadSessionPartsByUrlHeaders headers) { + return getFileUploadSessionPartsByUrl( + url, new GetFileUploadSessionPartsByUrlQueryParams(), headers); + } + + public UploadParts getFileUploadSessionPartsByUrl( + String url, + GetFileUploadSessionPartsByUrlQueryParams queryParams, + GetFileUploadSessionPartsByUrlHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("offset", convertToString(queryParams.getOffset())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder(url, "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), UploadParts.class); + } + + public UploadParts getFileUploadSessionParts(String uploadSessionId) { + return getFileUploadSessionParts( + uploadSessionId, + new GetFileUploadSessionPartsQueryParams(), + new GetFileUploadSessionPartsHeaders()); + } + + public UploadParts getFileUploadSessionParts( + String uploadSessionId, GetFileUploadSessionPartsQueryParams queryParams) { + return getFileUploadSessionParts( + uploadSessionId, queryParams, new GetFileUploadSessionPartsHeaders()); + } + + public UploadParts getFileUploadSessionParts( + String uploadSessionId, GetFileUploadSessionPartsHeaders headers) { + return getFileUploadSessionParts( + uploadSessionId, new GetFileUploadSessionPartsQueryParams(), headers); + } + + public UploadParts getFileUploadSessionParts( + String uploadSessionId, + GetFileUploadSessionPartsQueryParams queryParams, + GetFileUploadSessionPartsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("offset", convertToString(queryParams.getOffset())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getUploadUrl(), + "/2.0/files/upload_sessions/", + convertToString(uploadSessionId), + "/parts"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), UploadParts.class); + } + + public Files createFileUploadSessionCommitByUrl( + String url, + CreateFileUploadSessionCommitByUrlRequestBody requestBody, + CreateFileUploadSessionCommitByUrlHeaders headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf( + entryOf("digest", convertToString(headers.getDigest())), + entryOf("if-match", convertToString(headers.getIfMatch())), + entryOf("if-none-match", convertToString(headers.getIfNoneMatch()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder(url, "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + if (convertToString(response.getStatus()).equals("202")) { + return null; + } + return JsonManager.deserialize(response.getData(), Files.class); + } + + public Files createFileUploadSessionCommit( + String uploadSessionId, + CreateFileUploadSessionCommitRequestBody requestBody, + CreateFileUploadSessionCommitHeaders headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf( + entryOf("digest", convertToString(headers.getDigest())), + entryOf("if-match", convertToString(headers.getIfMatch())), + entryOf("if-none-match", convertToString(headers.getIfNoneMatch()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getUploadUrl(), + "/2.0/files/upload_sessions/", + convertToString(uploadSessionId), + "/commit"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + if (convertToString(response.getStatus()).equals("202")) { + return null; + } + return JsonManager.deserialize(response.getData(), Files.class); + } + + public PartAccumulator reducer(PartAccumulator acc, InputStream chunk) { + long lastIndex = acc.getLastIndex(); + List parts = acc.getParts(); + byte[] chunkBuffer = readByteStream(chunk); + Hash hash = new Hash(HashName.SHA1); + hash.updateHash(chunkBuffer); + String sha1 = hash.digestHash("base64"); + String digest = String.join("", "sha=", sha1); + int chunkSize = bufferLength(chunkBuffer); + long bytesStart = lastIndex + 1; + long bytesEnd = lastIndex + chunkSize; + String contentRange = + String.join( + "", + "bytes ", + convertToString(bytesStart), + "-", + convertToString(bytesEnd), + "/", + convertToString(acc.getFileSize())); + UploadedPart uploadedPart = + this.uploadFilePartByUrl( + acc.getUploadPartUrl(), + generateByteStreamFromBuffer(chunkBuffer), + new UploadFilePartByUrlHeaders(digest, contentRange)); + UploadPart part = uploadedPart.getPart(); + String partSha1 = hexToBase64(part.getSha1()); + assert partSha1.equals(sha1); + assert part.getSize() == chunkSize; + assert part.getOffset() == bytesStart; + acc.getFileHash().updateHash(chunkBuffer); + return new PartAccumulator( + bytesEnd, + Stream.concat(parts.stream(), Arrays.asList(part).stream()).collect(Collectors.toList()), + acc.getFileSize(), + acc.getUploadPartUrl(), + acc.getFileHash()); + } + + public FileFull uploadBigFile( + InputStream file, String fileName, long fileSize, String parentFolderId) { + UploadSession uploadSession = + this.createFileUploadSession( + new CreateFileUploadSessionRequestBody(parentFolderId, fileSize, fileName)); + String uploadPartUrl = uploadSession.getSessionEndpoints().getUploadPart(); + String commitUrl = uploadSession.getSessionEndpoints().getCommit(); + String listPartsUrl = uploadSession.getSessionEndpoints().getListParts(); + long partSize = uploadSession.getPartSize(); + int totalParts = uploadSession.getTotalParts(); + assert partSize * totalParts >= fileSize; + assert uploadSession.getNumPartsProcessed() == 0; + Hash fileHash = new Hash(HashName.SHA1); + Iterator chunksIterator = iterateChunks(file, partSize, fileSize); + PartAccumulator results = + reduceIterator( + chunksIterator, + this::reducer, + new PartAccumulator(-1, Collections.emptyList(), fileSize, uploadPartUrl, fileHash)); + List parts = results.getParts(); + UploadParts processedSessionParts = this.getFileUploadSessionPartsByUrl(listPartsUrl); + assert processedSessionParts.getTotalCount() == totalParts; + String sha1 = fileHash.digestHash("base64"); + String digest = String.join("", "sha=", sha1); + Files committedSession = + this.createFileUploadSessionCommitByUrl( + commitUrl, + new CreateFileUploadSessionCommitByUrlRequestBody(parts), + new CreateFileUploadSessionCommitByUrlHeaders(digest)); + return committedSession.getEntries().get(0); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public ChunkedUploadsManager build() { + return new ChunkedUploadsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitByUrlHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitByUrlHeaders.java new file mode 100644 index 000000000..4ac12022f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitByUrlHeaders.java @@ -0,0 +1,79 @@ +package com.box.sdkgen.managers.chunkeduploads; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateFileUploadSessionCommitByUrlHeaders { + + public final String digest; + + public String ifMatch; + + public String ifNoneMatch; + + public Map extraHeaders; + + public CreateFileUploadSessionCommitByUrlHeaders(String digest) { + this.digest = digest; + this.extraHeaders = mapOf(); + } + + protected CreateFileUploadSessionCommitByUrlHeaders(Builder builder) { + this.digest = builder.digest; + this.ifMatch = builder.ifMatch; + this.ifNoneMatch = builder.ifNoneMatch; + this.extraHeaders = builder.extraHeaders; + } + + public String getDigest() { + return digest; + } + + public String getIfMatch() { + return ifMatch; + } + + public String getIfNoneMatch() { + return ifNoneMatch; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected final String digest; + + protected String ifMatch; + + protected String ifNoneMatch; + + protected Map extraHeaders; + + public Builder(String digest) { + this.digest = digest; + this.extraHeaders = mapOf(); + } + + public Builder ifMatch(String ifMatch) { + this.ifMatch = ifMatch; + return this; + } + + public Builder ifNoneMatch(String ifNoneMatch) { + this.ifNoneMatch = ifNoneMatch; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateFileUploadSessionCommitByUrlHeaders build() { + return new CreateFileUploadSessionCommitByUrlHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitByUrlRequestBody.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitByUrlRequestBody.java new file mode 100644 index 000000000..5c7612cb2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitByUrlRequestBody.java @@ -0,0 +1,47 @@ +package com.box.sdkgen.managers.chunkeduploads; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.uploadpart.UploadPart; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateFileUploadSessionCommitByUrlRequestBody extends SerializableObject { + + protected final List parts; + + public CreateFileUploadSessionCommitByUrlRequestBody( + @JsonProperty("parts") List parts) { + super(); + this.parts = parts; + } + + public List getParts() { + return parts; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateFileUploadSessionCommitByUrlRequestBody casted = + (CreateFileUploadSessionCommitByUrlRequestBody) o; + return Objects.equals(parts, casted.parts); + } + + @Override + public int hashCode() { + return Objects.hash(parts); + } + + @Override + public String toString() { + return "CreateFileUploadSessionCommitByUrlRequestBody{" + "parts='" + parts + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitHeaders.java new file mode 100644 index 000000000..0d5f028dd --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitHeaders.java @@ -0,0 +1,79 @@ +package com.box.sdkgen.managers.chunkeduploads; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateFileUploadSessionCommitHeaders { + + public final String digest; + + public String ifMatch; + + public String ifNoneMatch; + + public Map extraHeaders; + + public CreateFileUploadSessionCommitHeaders(String digest) { + this.digest = digest; + this.extraHeaders = mapOf(); + } + + protected CreateFileUploadSessionCommitHeaders(Builder builder) { + this.digest = builder.digest; + this.ifMatch = builder.ifMatch; + this.ifNoneMatch = builder.ifNoneMatch; + this.extraHeaders = builder.extraHeaders; + } + + public String getDigest() { + return digest; + } + + public String getIfMatch() { + return ifMatch; + } + + public String getIfNoneMatch() { + return ifNoneMatch; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected final String digest; + + protected String ifMatch; + + protected String ifNoneMatch; + + protected Map extraHeaders; + + public Builder(String digest) { + this.digest = digest; + this.extraHeaders = mapOf(); + } + + public Builder ifMatch(String ifMatch) { + this.ifMatch = ifMatch; + return this; + } + + public Builder ifNoneMatch(String ifNoneMatch) { + this.ifNoneMatch = ifNoneMatch; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateFileUploadSessionCommitHeaders build() { + return new CreateFileUploadSessionCommitHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitRequestBody.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitRequestBody.java new file mode 100644 index 000000000..203a15de2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitRequestBody.java @@ -0,0 +1,45 @@ +package com.box.sdkgen.managers.chunkeduploads; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.uploadpart.UploadPart; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateFileUploadSessionCommitRequestBody extends SerializableObject { + + protected final List parts; + + public CreateFileUploadSessionCommitRequestBody(@JsonProperty("parts") List parts) { + super(); + this.parts = parts; + } + + public List getParts() { + return parts; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateFileUploadSessionCommitRequestBody casted = (CreateFileUploadSessionCommitRequestBody) o; + return Objects.equals(parts, casted.parts); + } + + @Override + public int hashCode() { + return Objects.hash(parts); + } + + @Override + public String toString() { + return "CreateFileUploadSessionCommitRequestBody{" + "parts='" + parts + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionForExistingFileHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionForExistingFileHeaders.java new file mode 100644 index 000000000..845a1c990 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionForExistingFileHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.chunkeduploads; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateFileUploadSessionForExistingFileHeaders { + + public Map extraHeaders; + + public CreateFileUploadSessionForExistingFileHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateFileUploadSessionForExistingFileHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateFileUploadSessionForExistingFileHeaders build() { + return new CreateFileUploadSessionForExistingFileHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionForExistingFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionForExistingFileRequestBody.java new file mode 100644 index 000000000..ced6e7d2e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionForExistingFileRequestBody.java @@ -0,0 +1,90 @@ +package com.box.sdkgen.managers.chunkeduploads; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateFileUploadSessionForExistingFileRequestBody extends SerializableObject { + + @JsonProperty("file_size") + protected final long fileSize; + + @JsonProperty("file_name") + protected String fileName; + + public CreateFileUploadSessionForExistingFileRequestBody( + @JsonProperty("file_size") long fileSize) { + super(); + this.fileSize = fileSize; + } + + protected CreateFileUploadSessionForExistingFileRequestBody(Builder builder) { + super(); + this.fileSize = builder.fileSize; + this.fileName = builder.fileName; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public long getFileSize() { + return fileSize; + } + + public String getFileName() { + return fileName; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateFileUploadSessionForExistingFileRequestBody casted = + (CreateFileUploadSessionForExistingFileRequestBody) o; + return Objects.equals(fileSize, casted.fileSize) && Objects.equals(fileName, casted.fileName); + } + + @Override + public int hashCode() { + return Objects.hash(fileSize, fileName); + } + + @Override + public String toString() { + return "CreateFileUploadSessionForExistingFileRequestBody{" + + "fileSize='" + + fileSize + + '\'' + + ", " + + "fileName='" + + fileName + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final long fileSize; + + protected String fileName; + + public Builder(long fileSize) { + super(); + this.fileSize = fileSize; + } + + public Builder fileName(String fileName) { + this.fileName = fileName; + return this; + } + + public CreateFileUploadSessionForExistingFileRequestBody build() { + return new CreateFileUploadSessionForExistingFileRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionHeaders.java new file mode 100644 index 000000000..36ccb441d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.chunkeduploads; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateFileUploadSessionHeaders { + + public Map extraHeaders; + + public CreateFileUploadSessionHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateFileUploadSessionHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateFileUploadSessionHeaders build() { + return new CreateFileUploadSessionHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionRequestBody.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionRequestBody.java new file mode 100644 index 000000000..85cd3c909 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionRequestBody.java @@ -0,0 +1,77 @@ +package com.box.sdkgen.managers.chunkeduploads; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateFileUploadSessionRequestBody extends SerializableObject { + + @JsonProperty("folder_id") + protected final String folderId; + + @JsonProperty("file_size") + protected final long fileSize; + + @JsonProperty("file_name") + protected final String fileName; + + public CreateFileUploadSessionRequestBody( + @JsonProperty("folder_id") String folderId, + @JsonProperty("file_size") long fileSize, + @JsonProperty("file_name") String fileName) { + super(); + this.folderId = folderId; + this.fileSize = fileSize; + this.fileName = fileName; + } + + public String getFolderId() { + return folderId; + } + + public long getFileSize() { + return fileSize; + } + + public String getFileName() { + return fileName; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateFileUploadSessionRequestBody casted = (CreateFileUploadSessionRequestBody) o; + return Objects.equals(folderId, casted.folderId) + && Objects.equals(fileSize, casted.fileSize) + && Objects.equals(fileName, casted.fileName); + } + + @Override + public int hashCode() { + return Objects.hash(folderId, fileSize, fileName); + } + + @Override + public String toString() { + return "CreateFileUploadSessionRequestBody{" + + "folderId='" + + folderId + + '\'' + + ", " + + "fileSize='" + + fileSize + + '\'' + + ", " + + "fileName='" + + fileName + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/DeleteFileUploadSessionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/DeleteFileUploadSessionByIdHeaders.java new file mode 100644 index 000000000..f44d02f34 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/DeleteFileUploadSessionByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.chunkeduploads; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteFileUploadSessionByIdHeaders { + + public Map extraHeaders; + + public DeleteFileUploadSessionByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteFileUploadSessionByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteFileUploadSessionByIdHeaders build() { + return new DeleteFileUploadSessionByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/DeleteFileUploadSessionByUrlHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/DeleteFileUploadSessionByUrlHeaders.java new file mode 100644 index 000000000..10261c5d4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/DeleteFileUploadSessionByUrlHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.chunkeduploads; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteFileUploadSessionByUrlHeaders { + + public Map extraHeaders; + + public DeleteFileUploadSessionByUrlHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteFileUploadSessionByUrlHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteFileUploadSessionByUrlHeaders build() { + return new DeleteFileUploadSessionByUrlHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionByIdHeaders.java new file mode 100644 index 000000000..f5e626456 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.chunkeduploads; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFileUploadSessionByIdHeaders { + + public Map extraHeaders; + + public GetFileUploadSessionByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFileUploadSessionByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFileUploadSessionByIdHeaders build() { + return new GetFileUploadSessionByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionByUrlHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionByUrlHeaders.java new file mode 100644 index 000000000..fbab677fe --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionByUrlHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.chunkeduploads; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFileUploadSessionByUrlHeaders { + + public Map extraHeaders; + + public GetFileUploadSessionByUrlHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFileUploadSessionByUrlHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFileUploadSessionByUrlHeaders build() { + return new GetFileUploadSessionByUrlHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsByUrlHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsByUrlHeaders.java new file mode 100644 index 000000000..3cccaece0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsByUrlHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.chunkeduploads; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFileUploadSessionPartsByUrlHeaders { + + public Map extraHeaders; + + public GetFileUploadSessionPartsByUrlHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFileUploadSessionPartsByUrlHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFileUploadSessionPartsByUrlHeaders build() { + return new GetFileUploadSessionPartsByUrlHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsByUrlQueryParams.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsByUrlQueryParams.java new file mode 100644 index 000000000..b326e86f0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsByUrlQueryParams.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.chunkeduploads; + +public class GetFileUploadSessionPartsByUrlQueryParams { + + public Long offset; + + public Long limit; + + public GetFileUploadSessionPartsByUrlQueryParams() {} + + protected GetFileUploadSessionPartsByUrlQueryParams(Builder builder) { + this.offset = builder.offset; + this.limit = builder.limit; + } + + public Long getOffset() { + return offset; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected Long offset; + + protected Long limit; + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetFileUploadSessionPartsByUrlQueryParams build() { + return new GetFileUploadSessionPartsByUrlQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsHeaders.java new file mode 100644 index 000000000..606e98bc2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.chunkeduploads; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFileUploadSessionPartsHeaders { + + public Map extraHeaders; + + public GetFileUploadSessionPartsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFileUploadSessionPartsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFileUploadSessionPartsHeaders build() { + return new GetFileUploadSessionPartsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsQueryParams.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsQueryParams.java new file mode 100644 index 000000000..bc26a53de --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsQueryParams.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.chunkeduploads; + +public class GetFileUploadSessionPartsQueryParams { + + public Long offset; + + public Long limit; + + public GetFileUploadSessionPartsQueryParams() {} + + protected GetFileUploadSessionPartsQueryParams(Builder builder) { + this.offset = builder.offset; + this.limit = builder.limit; + } + + public Long getOffset() { + return offset; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected Long offset; + + protected Long limit; + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetFileUploadSessionPartsQueryParams build() { + return new GetFileUploadSessionPartsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/PartAccumulator.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/PartAccumulator.java new file mode 100644 index 000000000..b6c59e16a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/PartAccumulator.java @@ -0,0 +1,47 @@ +package com.box.sdkgen.managers.chunkeduploads; + +import com.box.sdkgen.internal.utils.Hash; +import com.box.sdkgen.schemas.uploadpart.UploadPart; +import java.util.List; + +public class PartAccumulator { + + public final long lastIndex; + + public final List parts; + + public final long fileSize; + + public final String uploadPartUrl; + + public final Hash fileHash; + + public PartAccumulator( + long lastIndex, List parts, long fileSize, String uploadPartUrl, Hash fileHash) { + this.lastIndex = lastIndex; + this.parts = parts; + this.fileSize = fileSize; + this.uploadPartUrl = uploadPartUrl; + this.fileHash = fileHash; + } + + public long getLastIndex() { + return lastIndex; + } + + public List getParts() { + return parts; + } + + public long getFileSize() { + return fileSize; + } + + public String getUploadPartUrl() { + return uploadPartUrl; + } + + public Hash getFileHash() { + return fileHash; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/UploadFilePartByUrlHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/UploadFilePartByUrlHeaders.java new file mode 100644 index 000000000..801181ab6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/UploadFilePartByUrlHeaders.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.chunkeduploads; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UploadFilePartByUrlHeaders { + + public final String digest; + + public final String contentRange; + + public Map extraHeaders; + + public UploadFilePartByUrlHeaders(String digest, String contentRange) { + this.digest = digest; + this.contentRange = contentRange; + this.extraHeaders = mapOf(); + } + + protected UploadFilePartByUrlHeaders(Builder builder) { + this.digest = builder.digest; + this.contentRange = builder.contentRange; + this.extraHeaders = builder.extraHeaders; + } + + public String getDigest() { + return digest; + } + + public String getContentRange() { + return contentRange; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected final String digest; + + protected final String contentRange; + + protected Map extraHeaders; + + public Builder(String digest, String contentRange) { + this.digest = digest; + this.contentRange = contentRange; + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UploadFilePartByUrlHeaders build() { + return new UploadFilePartByUrlHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/UploadFilePartHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/UploadFilePartHeaders.java new file mode 100644 index 000000000..c317212cf --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/UploadFilePartHeaders.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.chunkeduploads; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UploadFilePartHeaders { + + public final String digest; + + public final String contentRange; + + public Map extraHeaders; + + public UploadFilePartHeaders(String digest, String contentRange) { + this.digest = digest; + this.contentRange = contentRange; + this.extraHeaders = mapOf(); + } + + protected UploadFilePartHeaders(Builder builder) { + this.digest = builder.digest; + this.contentRange = builder.contentRange; + this.extraHeaders = builder.extraHeaders; + } + + public String getDigest() { + return digest; + } + + public String getContentRange() { + return contentRange; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected final String digest; + + protected final String contentRange; + + protected Map extraHeaders; + + public Builder(String digest, String contentRange) { + this.digest = digest; + this.contentRange = contentRange; + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UploadFilePartHeaders build() { + return new UploadFilePartHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationHeaders.java b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationHeaders.java new file mode 100644 index 000000000..1eaa58512 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.classifications; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class AddClassificationHeaders { + + public Map extraHeaders; + + public AddClassificationHeaders() { + this.extraHeaders = mapOf(); + } + + protected AddClassificationHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public AddClassificationHeaders build() { + return new AddClassificationHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBody.java b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBody.java new file mode 100644 index 000000000..f6b718c3e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBody.java @@ -0,0 +1,146 @@ +package com.box.sdkgen.managers.classifications; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AddClassificationRequestBody extends SerializableObject { + + @JsonDeserialize( + using = + AddClassificationRequestBodyOpField.AddClassificationRequestBodyOpFieldDeserializer.class) + @JsonSerialize( + using = + AddClassificationRequestBodyOpField.AddClassificationRequestBodyOpFieldSerializer.class) + protected EnumWrapper op; + + @JsonDeserialize( + using = + AddClassificationRequestBodyFieldKeyField + .AddClassificationRequestBodyFieldKeyFieldDeserializer.class) + @JsonSerialize( + using = + AddClassificationRequestBodyFieldKeyField + .AddClassificationRequestBodyFieldKeyFieldSerializer.class) + protected EnumWrapper fieldKey; + + protected final AddClassificationRequestBodyDataField data; + + public AddClassificationRequestBody( + @JsonProperty("data") AddClassificationRequestBodyDataField data) { + super(); + this.data = data; + this.op = + new EnumWrapper( + AddClassificationRequestBodyOpField.ADDENUMOPTION); + this.fieldKey = + new EnumWrapper( + AddClassificationRequestBodyFieldKeyField.BOX__SECURITY__CLASSIFICATION__KEY); + } + + protected AddClassificationRequestBody(Builder builder) { + super(); + this.op = builder.op; + this.fieldKey = builder.fieldKey; + this.data = builder.data; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getOp() { + return op; + } + + public EnumWrapper getFieldKey() { + return fieldKey; + } + + public AddClassificationRequestBodyDataField getData() { + return data; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddClassificationRequestBody casted = (AddClassificationRequestBody) o; + return Objects.equals(op, casted.op) + && Objects.equals(fieldKey, casted.fieldKey) + && Objects.equals(data, casted.data); + } + + @Override + public int hashCode() { + return Objects.hash(op, fieldKey, data); + } + + @Override + public String toString() { + return "AddClassificationRequestBody{" + + "op='" + + op + + '\'' + + ", " + + "fieldKey='" + + fieldKey + + '\'' + + ", " + + "data='" + + data + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper op; + + protected EnumWrapper fieldKey; + + protected final AddClassificationRequestBodyDataField data; + + public Builder(AddClassificationRequestBodyDataField data) { + super(); + this.data = data; + this.op = + new EnumWrapper( + AddClassificationRequestBodyOpField.ADDENUMOPTION); + this.fieldKey = + new EnumWrapper( + AddClassificationRequestBodyFieldKeyField.BOX__SECURITY__CLASSIFICATION__KEY); + } + + public Builder op(AddClassificationRequestBodyOpField op) { + this.op = new EnumWrapper(op); + return this; + } + + public Builder op(EnumWrapper op) { + this.op = op; + return this; + } + + public Builder fieldKey(AddClassificationRequestBodyFieldKeyField fieldKey) { + this.fieldKey = new EnumWrapper(fieldKey); + return this; + } + + public Builder fieldKey(EnumWrapper fieldKey) { + this.fieldKey = fieldKey; + return this; + } + + public AddClassificationRequestBody build() { + return new AddClassificationRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyDataField.java b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyDataField.java new file mode 100644 index 000000000..f2e1960ec --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyDataField.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.managers.classifications; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AddClassificationRequestBodyDataField extends SerializableObject { + + protected final String key; + + protected AddClassificationRequestBodyDataStaticConfigField staticConfig; + + public AddClassificationRequestBodyDataField(@JsonProperty("key") String key) { + super(); + this.key = key; + } + + protected AddClassificationRequestBodyDataField(Builder builder) { + super(); + this.key = builder.key; + this.staticConfig = builder.staticConfig; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getKey() { + return key; + } + + public AddClassificationRequestBodyDataStaticConfigField getStaticConfig() { + return staticConfig; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddClassificationRequestBodyDataField casted = (AddClassificationRequestBodyDataField) o; + return Objects.equals(key, casted.key) && Objects.equals(staticConfig, casted.staticConfig); + } + + @Override + public int hashCode() { + return Objects.hash(key, staticConfig); + } + + @Override + public String toString() { + return "AddClassificationRequestBodyDataField{" + + "key='" + + key + + '\'' + + ", " + + "staticConfig='" + + staticConfig + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String key; + + protected AddClassificationRequestBodyDataStaticConfigField staticConfig; + + public Builder(String key) { + super(); + this.key = key; + } + + public Builder staticConfig(AddClassificationRequestBodyDataStaticConfigField staticConfig) { + this.staticConfig = staticConfig; + return this; + } + + public AddClassificationRequestBodyDataField build() { + return new AddClassificationRequestBodyDataField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyDataStaticConfigClassificationField.java b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyDataStaticConfigClassificationField.java new file mode 100644 index 000000000..e6b059334 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyDataStaticConfigClassificationField.java @@ -0,0 +1,89 @@ +package com.box.sdkgen.managers.classifications; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AddClassificationRequestBodyDataStaticConfigClassificationField + extends SerializableObject { + + protected String classificationDefinition; + + @JsonProperty("colorID") + protected Long colorId; + + public AddClassificationRequestBodyDataStaticConfigClassificationField() { + super(); + } + + protected AddClassificationRequestBodyDataStaticConfigClassificationField(Builder builder) { + super(); + this.classificationDefinition = builder.classificationDefinition; + this.colorId = builder.colorId; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getClassificationDefinition() { + return classificationDefinition; + } + + public Long getColorId() { + return colorId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddClassificationRequestBodyDataStaticConfigClassificationField casted = + (AddClassificationRequestBodyDataStaticConfigClassificationField) o; + return Objects.equals(classificationDefinition, casted.classificationDefinition) + && Objects.equals(colorId, casted.colorId); + } + + @Override + public int hashCode() { + return Objects.hash(classificationDefinition, colorId); + } + + @Override + public String toString() { + return "AddClassificationRequestBodyDataStaticConfigClassificationField{" + + "classificationDefinition='" + + classificationDefinition + + '\'' + + ", " + + "colorId='" + + colorId + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String classificationDefinition; + + protected Long colorId; + + public Builder classificationDefinition(String classificationDefinition) { + this.classificationDefinition = classificationDefinition; + return this; + } + + public Builder colorId(Long colorId) { + this.colorId = colorId; + return this; + } + + public AddClassificationRequestBodyDataStaticConfigClassificationField build() { + return new AddClassificationRequestBodyDataStaticConfigClassificationField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyDataStaticConfigField.java b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyDataStaticConfigField.java new file mode 100644 index 000000000..ff8c0737c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyDataStaticConfigField.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.managers.classifications; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AddClassificationRequestBodyDataStaticConfigField extends SerializableObject { + + protected AddClassificationRequestBodyDataStaticConfigClassificationField classification; + + public AddClassificationRequestBodyDataStaticConfigField() { + super(); + } + + protected AddClassificationRequestBodyDataStaticConfigField(Builder builder) { + super(); + this.classification = builder.classification; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public AddClassificationRequestBodyDataStaticConfigClassificationField getClassification() { + return classification; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddClassificationRequestBodyDataStaticConfigField casted = + (AddClassificationRequestBodyDataStaticConfigField) o; + return Objects.equals(classification, casted.classification); + } + + @Override + public int hashCode() { + return Objects.hash(classification); + } + + @Override + public String toString() { + return "AddClassificationRequestBodyDataStaticConfigField{" + + "classification='" + + classification + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected AddClassificationRequestBodyDataStaticConfigClassificationField classification; + + public Builder classification( + AddClassificationRequestBodyDataStaticConfigClassificationField classification) { + this.classification = classification; + return this; + } + + public AddClassificationRequestBodyDataStaticConfigField build() { + return new AddClassificationRequestBodyDataStaticConfigField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyFieldKeyField.java b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyFieldKeyField.java new file mode 100644 index 000000000..900a3ad63 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyFieldKeyField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.classifications; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AddClassificationRequestBodyFieldKeyField implements Valuable { + BOX__SECURITY__CLASSIFICATION__KEY("Box__Security__Classification__Key"); + + private final String value; + + AddClassificationRequestBodyFieldKeyField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AddClassificationRequestBodyFieldKeyFieldDeserializer + extends JsonDeserializer> { + + public AddClassificationRequestBodyFieldKeyFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AddClassificationRequestBodyFieldKeyField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AddClassificationRequestBodyFieldKeyFieldSerializer + extends JsonSerializer> { + + public AddClassificationRequestBodyFieldKeyFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyOpField.java b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyOpField.java new file mode 100644 index 000000000..5d4392b18 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyOpField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.classifications; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AddClassificationRequestBodyOpField implements Valuable { + ADDENUMOPTION("addEnumOption"); + + private final String value; + + AddClassificationRequestBodyOpField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AddClassificationRequestBodyOpFieldDeserializer + extends JsonDeserializer> { + + public AddClassificationRequestBodyOpFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AddClassificationRequestBodyOpField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AddClassificationRequestBodyOpFieldSerializer + extends JsonSerializer> { + + public AddClassificationRequestBodyOpFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/ClassificationsManager.java b/src/main/java/com/box/sdkgen/managers/classifications/ClassificationsManager.java new file mode 100644 index 000000000..378368346 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/ClassificationsManager.java @@ -0,0 +1,173 @@ +package com.box.sdkgen.managers.classifications; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.classificationtemplate.ClassificationTemplate; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.List; +import java.util.Map; + +public class ClassificationsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public ClassificationsManager() { + this.networkSession = new NetworkSession(); + } + + protected ClassificationsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public ClassificationTemplate getClassificationTemplate() { + return getClassificationTemplate(new GetClassificationTemplateHeaders()); + } + + public ClassificationTemplate getClassificationTemplate( + GetClassificationTemplateHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_templates/enterprise/securityClassification-6VMVochwUWo/schema"), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ClassificationTemplate.class); + } + + public ClassificationTemplate addClassification(List requestBody) { + return addClassification(requestBody, new AddClassificationHeaders()); + } + + public ClassificationTemplate addClassification( + List requestBody, AddClassificationHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_templates/enterprise/securityClassification-6VMVochwUWo/schema#add"), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ClassificationTemplate.class); + } + + public ClassificationTemplate updateClassification( + List requestBody) { + return updateClassification(requestBody, new UpdateClassificationHeaders()); + } + + public ClassificationTemplate updateClassification( + List requestBody, UpdateClassificationHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_templates/enterprise/securityClassification-6VMVochwUWo/schema#update"), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json-patch+json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ClassificationTemplate.class); + } + + public ClassificationTemplate createClassificationTemplate( + CreateClassificationTemplateRequestBody requestBody) { + return createClassificationTemplate(requestBody, new CreateClassificationTemplateHeaders()); + } + + public ClassificationTemplate createClassificationTemplate( + CreateClassificationTemplateRequestBody requestBody, + CreateClassificationTemplateHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_templates/schema#classifications"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ClassificationTemplate.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public ClassificationsManager build() { + return new ClassificationsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateHeaders.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateHeaders.java new file mode 100644 index 000000000..fb5b142de --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.classifications; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateClassificationTemplateHeaders { + + public Map extraHeaders; + + public CreateClassificationTemplateHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateClassificationTemplateHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateClassificationTemplateHeaders build() { + return new CreateClassificationTemplateHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBody.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBody.java new file mode 100644 index 000000000..7c94f1b54 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBody.java @@ -0,0 +1,233 @@ +package com.box.sdkgen.managers.classifications; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateClassificationTemplateRequestBody extends SerializableObject { + + @JsonDeserialize( + using = + CreateClassificationTemplateRequestBodyScopeField + .CreateClassificationTemplateRequestBodyScopeFieldDeserializer.class) + @JsonSerialize( + using = + CreateClassificationTemplateRequestBodyScopeField + .CreateClassificationTemplateRequestBodyScopeFieldSerializer.class) + protected EnumWrapper scope; + + @JsonDeserialize( + using = + CreateClassificationTemplateRequestBodyTemplateKeyField + .CreateClassificationTemplateRequestBodyTemplateKeyFieldDeserializer.class) + @JsonSerialize( + using = + CreateClassificationTemplateRequestBodyTemplateKeyField + .CreateClassificationTemplateRequestBodyTemplateKeyFieldSerializer.class) + protected EnumWrapper templateKey; + + @JsonDeserialize( + using = + CreateClassificationTemplateRequestBodyDisplayNameField + .CreateClassificationTemplateRequestBodyDisplayNameFieldDeserializer.class) + @JsonSerialize( + using = + CreateClassificationTemplateRequestBodyDisplayNameField + .CreateClassificationTemplateRequestBodyDisplayNameFieldSerializer.class) + protected EnumWrapper displayName; + + protected Boolean hidden; + + protected Boolean copyInstanceOnItemCopy; + + protected final List fields; + + public CreateClassificationTemplateRequestBody( + @JsonProperty("fields") List fields) { + super(); + this.fields = fields; + this.scope = + new EnumWrapper( + CreateClassificationTemplateRequestBodyScopeField.ENTERPRISE); + this.templateKey = + new EnumWrapper( + CreateClassificationTemplateRequestBodyTemplateKeyField + .SECURITYCLASSIFICATION_6VMVOCHWUWO); + this.displayName = + new EnumWrapper( + CreateClassificationTemplateRequestBodyDisplayNameField.CLASSIFICATION); + } + + protected CreateClassificationTemplateRequestBody(Builder builder) { + super(); + this.scope = builder.scope; + this.templateKey = builder.templateKey; + this.displayName = builder.displayName; + this.hidden = builder.hidden; + this.copyInstanceOnItemCopy = builder.copyInstanceOnItemCopy; + this.fields = builder.fields; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getScope() { + return scope; + } + + public EnumWrapper getTemplateKey() { + return templateKey; + } + + public EnumWrapper getDisplayName() { + return displayName; + } + + public Boolean getHidden() { + return hidden; + } + + public Boolean getCopyInstanceOnItemCopy() { + return copyInstanceOnItemCopy; + } + + public List getFields() { + return fields; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateClassificationTemplateRequestBody casted = (CreateClassificationTemplateRequestBody) o; + return Objects.equals(scope, casted.scope) + && Objects.equals(templateKey, casted.templateKey) + && Objects.equals(displayName, casted.displayName) + && Objects.equals(hidden, casted.hidden) + && Objects.equals(copyInstanceOnItemCopy, casted.copyInstanceOnItemCopy) + && Objects.equals(fields, casted.fields); + } + + @Override + public int hashCode() { + return Objects.hash(scope, templateKey, displayName, hidden, copyInstanceOnItemCopy, fields); + } + + @Override + public String toString() { + return "CreateClassificationTemplateRequestBody{" + + "scope='" + + scope + + '\'' + + ", " + + "templateKey='" + + templateKey + + '\'' + + ", " + + "displayName='" + + displayName + + '\'' + + ", " + + "hidden='" + + hidden + + '\'' + + ", " + + "copyInstanceOnItemCopy='" + + copyInstanceOnItemCopy + + '\'' + + ", " + + "fields='" + + fields + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper scope; + + protected EnumWrapper templateKey; + + protected EnumWrapper displayName; + + protected Boolean hidden; + + protected Boolean copyInstanceOnItemCopy; + + protected final List fields; + + public Builder(List fields) { + super(); + this.fields = fields; + this.scope = + new EnumWrapper( + CreateClassificationTemplateRequestBodyScopeField.ENTERPRISE); + this.templateKey = + new EnumWrapper( + CreateClassificationTemplateRequestBodyTemplateKeyField + .SECURITYCLASSIFICATION_6VMVOCHWUWO); + this.displayName = + new EnumWrapper( + CreateClassificationTemplateRequestBodyDisplayNameField.CLASSIFICATION); + } + + public Builder scope(CreateClassificationTemplateRequestBodyScopeField scope) { + this.scope = new EnumWrapper(scope); + return this; + } + + public Builder scope(EnumWrapper scope) { + this.scope = scope; + return this; + } + + public Builder templateKey( + CreateClassificationTemplateRequestBodyTemplateKeyField templateKey) { + this.templateKey = + new EnumWrapper(templateKey); + return this; + } + + public Builder templateKey( + EnumWrapper templateKey) { + this.templateKey = templateKey; + return this; + } + + public Builder displayName( + CreateClassificationTemplateRequestBodyDisplayNameField displayName) { + this.displayName = + new EnumWrapper(displayName); + return this; + } + + public Builder displayName( + EnumWrapper displayName) { + this.displayName = displayName; + return this; + } + + public Builder hidden(Boolean hidden) { + this.hidden = hidden; + return this; + } + + public Builder copyInstanceOnItemCopy(Boolean copyInstanceOnItemCopy) { + this.copyInstanceOnItemCopy = copyInstanceOnItemCopy; + return this; + } + + public CreateClassificationTemplateRequestBody build() { + return new CreateClassificationTemplateRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyDisplayNameField.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyDisplayNameField.java new file mode 100644 index 000000000..d294f61cb --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyDisplayNameField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.classifications; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateClassificationTemplateRequestBodyDisplayNameField implements Valuable { + CLASSIFICATION("Classification"); + + private final String value; + + CreateClassificationTemplateRequestBodyDisplayNameField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateClassificationTemplateRequestBodyDisplayNameFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public CreateClassificationTemplateRequestBodyDisplayNameFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateClassificationTemplateRequestBodyDisplayNameField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateClassificationTemplateRequestBodyDisplayNameFieldSerializer + extends JsonSerializer> { + + public CreateClassificationTemplateRequestBodyDisplayNameFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsDisplayNameField.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsDisplayNameField.java new file mode 100644 index 000000000..027bcf536 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsDisplayNameField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.managers.classifications; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateClassificationTemplateRequestBodyFieldsDisplayNameField implements Valuable { + CLASSIFICATION("Classification"); + + private final String value; + + CreateClassificationTemplateRequestBodyFieldsDisplayNameField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateClassificationTemplateRequestBodyFieldsDisplayNameFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public CreateClassificationTemplateRequestBodyFieldsDisplayNameFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateClassificationTemplateRequestBodyFieldsDisplayNameField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper( + value)); + } + } + + public static class CreateClassificationTemplateRequestBodyFieldsDisplayNameFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public CreateClassificationTemplateRequestBodyFieldsDisplayNameFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsField.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsField.java new file mode 100644 index 000000000..c2d82d46c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsField.java @@ -0,0 +1,216 @@ +package com.box.sdkgen.managers.classifications; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateClassificationTemplateRequestBodyFieldsField extends SerializableObject { + + @JsonDeserialize( + using = + CreateClassificationTemplateRequestBodyFieldsTypeField + .CreateClassificationTemplateRequestBodyFieldsTypeFieldDeserializer.class) + @JsonSerialize( + using = + CreateClassificationTemplateRequestBodyFieldsTypeField + .CreateClassificationTemplateRequestBodyFieldsTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonDeserialize( + using = + CreateClassificationTemplateRequestBodyFieldsKeyField + .CreateClassificationTemplateRequestBodyFieldsKeyFieldDeserializer.class) + @JsonSerialize( + using = + CreateClassificationTemplateRequestBodyFieldsKeyField + .CreateClassificationTemplateRequestBodyFieldsKeyFieldSerializer.class) + protected EnumWrapper key; + + @JsonDeserialize( + using = + CreateClassificationTemplateRequestBodyFieldsDisplayNameField + .CreateClassificationTemplateRequestBodyFieldsDisplayNameFieldDeserializer.class) + @JsonSerialize( + using = + CreateClassificationTemplateRequestBodyFieldsDisplayNameField + .CreateClassificationTemplateRequestBodyFieldsDisplayNameFieldSerializer.class) + protected EnumWrapper displayName; + + protected Boolean hidden; + + protected final List options; + + public CreateClassificationTemplateRequestBodyFieldsField( + @JsonProperty("options") + List options) { + super(); + this.options = options; + this.type = + new EnumWrapper( + CreateClassificationTemplateRequestBodyFieldsTypeField.ENUM); + this.key = + new EnumWrapper( + CreateClassificationTemplateRequestBodyFieldsKeyField + .BOX__SECURITY__CLASSIFICATION__KEY); + this.displayName = + new EnumWrapper( + CreateClassificationTemplateRequestBodyFieldsDisplayNameField.CLASSIFICATION); + } + + protected CreateClassificationTemplateRequestBodyFieldsField(Builder builder) { + super(); + this.type = builder.type; + this.key = builder.key; + this.displayName = builder.displayName; + this.hidden = builder.hidden; + this.options = builder.options; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public EnumWrapper getKey() { + return key; + } + + public EnumWrapper + getDisplayName() { + return displayName; + } + + public Boolean getHidden() { + return hidden; + } + + public List getOptions() { + return options; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateClassificationTemplateRequestBodyFieldsField casted = + (CreateClassificationTemplateRequestBodyFieldsField) o; + return Objects.equals(type, casted.type) + && Objects.equals(key, casted.key) + && Objects.equals(displayName, casted.displayName) + && Objects.equals(hidden, casted.hidden) + && Objects.equals(options, casted.options); + } + + @Override + public int hashCode() { + return Objects.hash(type, key, displayName, hidden, options); + } + + @Override + public String toString() { + return "CreateClassificationTemplateRequestBodyFieldsField{" + + "type='" + + type + + '\'' + + ", " + + "key='" + + key + + '\'' + + ", " + + "displayName='" + + displayName + + '\'' + + ", " + + "hidden='" + + hidden + + '\'' + + ", " + + "options='" + + options + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected EnumWrapper key; + + protected EnumWrapper + displayName; + + protected Boolean hidden; + + protected final List options; + + public Builder(List options) { + super(); + this.options = options; + this.type = + new EnumWrapper( + CreateClassificationTemplateRequestBodyFieldsTypeField.ENUM); + this.key = + new EnumWrapper( + CreateClassificationTemplateRequestBodyFieldsKeyField + .BOX__SECURITY__CLASSIFICATION__KEY); + this.displayName = + new EnumWrapper( + CreateClassificationTemplateRequestBodyFieldsDisplayNameField.CLASSIFICATION); + } + + public Builder type(CreateClassificationTemplateRequestBodyFieldsTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder key(CreateClassificationTemplateRequestBodyFieldsKeyField key) { + this.key = new EnumWrapper(key); + return this; + } + + public Builder key(EnumWrapper key) { + this.key = key; + return this; + } + + public Builder displayName( + CreateClassificationTemplateRequestBodyFieldsDisplayNameField displayName) { + this.displayName = + new EnumWrapper( + displayName); + return this; + } + + public Builder displayName( + EnumWrapper displayName) { + this.displayName = displayName; + return this; + } + + public Builder hidden(Boolean hidden) { + this.hidden = hidden; + return this; + } + + public CreateClassificationTemplateRequestBodyFieldsField build() { + return new CreateClassificationTemplateRequestBodyFieldsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsKeyField.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsKeyField.java new file mode 100644 index 000000000..f15c00bd0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsKeyField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.classifications; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateClassificationTemplateRequestBodyFieldsKeyField implements Valuable { + BOX__SECURITY__CLASSIFICATION__KEY("Box__Security__Classification__Key"); + + private final String value; + + CreateClassificationTemplateRequestBodyFieldsKeyField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateClassificationTemplateRequestBodyFieldsKeyFieldDeserializer + extends JsonDeserializer> { + + public CreateClassificationTemplateRequestBodyFieldsKeyFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateClassificationTemplateRequestBodyFieldsKeyField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateClassificationTemplateRequestBodyFieldsKeyFieldSerializer + extends JsonSerializer> { + + public CreateClassificationTemplateRequestBodyFieldsKeyFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsOptionsField.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsOptionsField.java new file mode 100644 index 000000000..6d37a0634 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsOptionsField.java @@ -0,0 +1,89 @@ +package com.box.sdkgen.managers.classifications; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateClassificationTemplateRequestBodyFieldsOptionsField extends SerializableObject { + + protected final String key; + + protected CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField staticConfig; + + public CreateClassificationTemplateRequestBodyFieldsOptionsField( + @JsonProperty("key") String key) { + super(); + this.key = key; + } + + protected CreateClassificationTemplateRequestBodyFieldsOptionsField(Builder builder) { + super(); + this.key = builder.key; + this.staticConfig = builder.staticConfig; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getKey() { + return key; + } + + public CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField getStaticConfig() { + return staticConfig; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateClassificationTemplateRequestBodyFieldsOptionsField casted = + (CreateClassificationTemplateRequestBodyFieldsOptionsField) o; + return Objects.equals(key, casted.key) && Objects.equals(staticConfig, casted.staticConfig); + } + + @Override + public int hashCode() { + return Objects.hash(key, staticConfig); + } + + @Override + public String toString() { + return "CreateClassificationTemplateRequestBodyFieldsOptionsField{" + + "key='" + + key + + '\'' + + ", " + + "staticConfig='" + + staticConfig + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String key; + + protected CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField staticConfig; + + public Builder(String key) { + super(); + this.key = key; + } + + public Builder staticConfig( + CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField staticConfig) { + this.staticConfig = staticConfig; + return this; + } + + public CreateClassificationTemplateRequestBodyFieldsOptionsField build() { + return new CreateClassificationTemplateRequestBodyFieldsOptionsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField.java new file mode 100644 index 000000000..4a9f90012 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField.java @@ -0,0 +1,92 @@ +package com.box.sdkgen.managers.classifications; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField + extends SerializableObject { + + protected String classificationDefinition; + + @JsonProperty("colorID") + protected Long colorId; + + public CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField() { + super(); + } + + protected CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField( + Builder builder) { + super(); + this.classificationDefinition = builder.classificationDefinition; + this.colorId = builder.colorId; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getClassificationDefinition() { + return classificationDefinition; + } + + public Long getColorId() { + return colorId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField casted = + (CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField) o; + return Objects.equals(classificationDefinition, casted.classificationDefinition) + && Objects.equals(colorId, casted.colorId); + } + + @Override + public int hashCode() { + return Objects.hash(classificationDefinition, colorId); + } + + @Override + public String toString() { + return "CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField{" + + "classificationDefinition='" + + classificationDefinition + + '\'' + + ", " + + "colorId='" + + colorId + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String classificationDefinition; + + protected Long colorId; + + public Builder classificationDefinition(String classificationDefinition) { + this.classificationDefinition = classificationDefinition; + return this; + } + + public Builder colorId(Long colorId) { + this.colorId = colorId; + return this; + } + + public CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField + build() { + return new CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField( + this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField.java new file mode 100644 index 000000000..e49a8dcc1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField.java @@ -0,0 +1,73 @@ +package com.box.sdkgen.managers.classifications; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField + extends SerializableObject { + + protected CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField + classification; + + public CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField() { + super(); + } + + protected CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField(Builder builder) { + super(); + this.classification = builder.classification; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField + getClassification() { + return classification; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField casted = + (CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField) o; + return Objects.equals(classification, casted.classification); + } + + @Override + public int hashCode() { + return Objects.hash(classification); + } + + @Override + public String toString() { + return "CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField{" + + "classification='" + + classification + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField + classification; + + public Builder classification( + CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField + classification) { + this.classification = classification; + return this; + } + + public CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField build() { + return new CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsTypeField.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsTypeField.java new file mode 100644 index 000000000..165b0bb97 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.classifications; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateClassificationTemplateRequestBodyFieldsTypeField implements Valuable { + ENUM("enum"); + + private final String value; + + CreateClassificationTemplateRequestBodyFieldsTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateClassificationTemplateRequestBodyFieldsTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public CreateClassificationTemplateRequestBodyFieldsTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateClassificationTemplateRequestBodyFieldsTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateClassificationTemplateRequestBodyFieldsTypeFieldSerializer + extends JsonSerializer> { + + public CreateClassificationTemplateRequestBodyFieldsTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyScopeField.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyScopeField.java new file mode 100644 index 000000000..788ad1896 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyScopeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.classifications; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateClassificationTemplateRequestBodyScopeField implements Valuable { + ENTERPRISE("enterprise"); + + private final String value; + + CreateClassificationTemplateRequestBodyScopeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateClassificationTemplateRequestBodyScopeFieldDeserializer + extends JsonDeserializer> { + + public CreateClassificationTemplateRequestBodyScopeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateClassificationTemplateRequestBodyScopeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateClassificationTemplateRequestBodyScopeFieldSerializer + extends JsonSerializer> { + + public CreateClassificationTemplateRequestBodyScopeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyTemplateKeyField.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyTemplateKeyField.java new file mode 100644 index 000000000..e8f604c09 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyTemplateKeyField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.classifications; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateClassificationTemplateRequestBodyTemplateKeyField implements Valuable { + SECURITYCLASSIFICATION_6VMVOCHWUWO("securityClassification-6VMVochwUWo"); + + private final String value; + + CreateClassificationTemplateRequestBodyTemplateKeyField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateClassificationTemplateRequestBodyTemplateKeyFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public CreateClassificationTemplateRequestBodyTemplateKeyFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateClassificationTemplateRequestBodyTemplateKeyField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateClassificationTemplateRequestBodyTemplateKeyFieldSerializer + extends JsonSerializer> { + + public CreateClassificationTemplateRequestBodyTemplateKeyFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/GetClassificationTemplateHeaders.java b/src/main/java/com/box/sdkgen/managers/classifications/GetClassificationTemplateHeaders.java new file mode 100644 index 000000000..63c100ece --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/GetClassificationTemplateHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.classifications; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetClassificationTemplateHeaders { + + public Map extraHeaders; + + public GetClassificationTemplateHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetClassificationTemplateHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetClassificationTemplateHeaders build() { + return new GetClassificationTemplateHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationHeaders.java b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationHeaders.java new file mode 100644 index 000000000..094fa717f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.classifications; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateClassificationHeaders { + + public Map extraHeaders; + + public UpdateClassificationHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateClassificationHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateClassificationHeaders build() { + return new UpdateClassificationHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBody.java b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBody.java new file mode 100644 index 000000000..9772ed820 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBody.java @@ -0,0 +1,165 @@ +package com.box.sdkgen.managers.classifications; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateClassificationRequestBody extends SerializableObject { + + @JsonDeserialize( + using = + UpdateClassificationRequestBodyOpField.UpdateClassificationRequestBodyOpFieldDeserializer + .class) + @JsonSerialize( + using = + UpdateClassificationRequestBodyOpField.UpdateClassificationRequestBodyOpFieldSerializer + .class) + protected EnumWrapper op; + + @JsonDeserialize( + using = + UpdateClassificationRequestBodyFieldKeyField + .UpdateClassificationRequestBodyFieldKeyFieldDeserializer.class) + @JsonSerialize( + using = + UpdateClassificationRequestBodyFieldKeyField + .UpdateClassificationRequestBodyFieldKeyFieldSerializer.class) + protected EnumWrapper fieldKey; + + protected final String enumOptionKey; + + protected final UpdateClassificationRequestBodyDataField data; + + public UpdateClassificationRequestBody( + @JsonProperty("enumOptionKey") String enumOptionKey, + @JsonProperty("data") UpdateClassificationRequestBodyDataField data) { + super(); + this.enumOptionKey = enumOptionKey; + this.data = data; + this.op = + new EnumWrapper( + UpdateClassificationRequestBodyOpField.EDITENUMOPTION); + this.fieldKey = + new EnumWrapper( + UpdateClassificationRequestBodyFieldKeyField.BOX__SECURITY__CLASSIFICATION__KEY); + } + + protected UpdateClassificationRequestBody(Builder builder) { + super(); + this.op = builder.op; + this.fieldKey = builder.fieldKey; + this.enumOptionKey = builder.enumOptionKey; + this.data = builder.data; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getOp() { + return op; + } + + public EnumWrapper getFieldKey() { + return fieldKey; + } + + public String getEnumOptionKey() { + return enumOptionKey; + } + + public UpdateClassificationRequestBodyDataField getData() { + return data; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateClassificationRequestBody casted = (UpdateClassificationRequestBody) o; + return Objects.equals(op, casted.op) + && Objects.equals(fieldKey, casted.fieldKey) + && Objects.equals(enumOptionKey, casted.enumOptionKey) + && Objects.equals(data, casted.data); + } + + @Override + public int hashCode() { + return Objects.hash(op, fieldKey, enumOptionKey, data); + } + + @Override + public String toString() { + return "UpdateClassificationRequestBody{" + + "op='" + + op + + '\'' + + ", " + + "fieldKey='" + + fieldKey + + '\'' + + ", " + + "enumOptionKey='" + + enumOptionKey + + '\'' + + ", " + + "data='" + + data + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper op; + + protected EnumWrapper fieldKey; + + protected final String enumOptionKey; + + protected final UpdateClassificationRequestBodyDataField data; + + public Builder(String enumOptionKey, UpdateClassificationRequestBodyDataField data) { + super(); + this.enumOptionKey = enumOptionKey; + this.data = data; + this.op = + new EnumWrapper( + UpdateClassificationRequestBodyOpField.EDITENUMOPTION); + this.fieldKey = + new EnumWrapper( + UpdateClassificationRequestBodyFieldKeyField.BOX__SECURITY__CLASSIFICATION__KEY); + } + + public Builder op(UpdateClassificationRequestBodyOpField op) { + this.op = new EnumWrapper(op); + return this; + } + + public Builder op(EnumWrapper op) { + this.op = op; + return this; + } + + public Builder fieldKey(UpdateClassificationRequestBodyFieldKeyField fieldKey) { + this.fieldKey = new EnumWrapper(fieldKey); + return this; + } + + public Builder fieldKey(EnumWrapper fieldKey) { + this.fieldKey = fieldKey; + return this; + } + + public UpdateClassificationRequestBody build() { + return new UpdateClassificationRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyDataField.java b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyDataField.java new file mode 100644 index 000000000..4064239fb --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyDataField.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.managers.classifications; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateClassificationRequestBodyDataField extends SerializableObject { + + protected final String key; + + protected UpdateClassificationRequestBodyDataStaticConfigField staticConfig; + + public UpdateClassificationRequestBodyDataField(@JsonProperty("key") String key) { + super(); + this.key = key; + } + + protected UpdateClassificationRequestBodyDataField(Builder builder) { + super(); + this.key = builder.key; + this.staticConfig = builder.staticConfig; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getKey() { + return key; + } + + public UpdateClassificationRequestBodyDataStaticConfigField getStaticConfig() { + return staticConfig; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateClassificationRequestBodyDataField casted = (UpdateClassificationRequestBodyDataField) o; + return Objects.equals(key, casted.key) && Objects.equals(staticConfig, casted.staticConfig); + } + + @Override + public int hashCode() { + return Objects.hash(key, staticConfig); + } + + @Override + public String toString() { + return "UpdateClassificationRequestBodyDataField{" + + "key='" + + key + + '\'' + + ", " + + "staticConfig='" + + staticConfig + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String key; + + protected UpdateClassificationRequestBodyDataStaticConfigField staticConfig; + + public Builder(String key) { + super(); + this.key = key; + } + + public Builder staticConfig(UpdateClassificationRequestBodyDataStaticConfigField staticConfig) { + this.staticConfig = staticConfig; + return this; + } + + public UpdateClassificationRequestBodyDataField build() { + return new UpdateClassificationRequestBodyDataField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyDataStaticConfigClassificationField.java b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyDataStaticConfigClassificationField.java new file mode 100644 index 000000000..998d5d568 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyDataStaticConfigClassificationField.java @@ -0,0 +1,89 @@ +package com.box.sdkgen.managers.classifications; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateClassificationRequestBodyDataStaticConfigClassificationField + extends SerializableObject { + + protected String classificationDefinition; + + @JsonProperty("colorID") + protected Long colorId; + + public UpdateClassificationRequestBodyDataStaticConfigClassificationField() { + super(); + } + + protected UpdateClassificationRequestBodyDataStaticConfigClassificationField(Builder builder) { + super(); + this.classificationDefinition = builder.classificationDefinition; + this.colorId = builder.colorId; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getClassificationDefinition() { + return classificationDefinition; + } + + public Long getColorId() { + return colorId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateClassificationRequestBodyDataStaticConfigClassificationField casted = + (UpdateClassificationRequestBodyDataStaticConfigClassificationField) o; + return Objects.equals(classificationDefinition, casted.classificationDefinition) + && Objects.equals(colorId, casted.colorId); + } + + @Override + public int hashCode() { + return Objects.hash(classificationDefinition, colorId); + } + + @Override + public String toString() { + return "UpdateClassificationRequestBodyDataStaticConfigClassificationField{" + + "classificationDefinition='" + + classificationDefinition + + '\'' + + ", " + + "colorId='" + + colorId + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String classificationDefinition; + + protected Long colorId; + + public Builder classificationDefinition(String classificationDefinition) { + this.classificationDefinition = classificationDefinition; + return this; + } + + public Builder colorId(Long colorId) { + this.colorId = colorId; + return this; + } + + public UpdateClassificationRequestBodyDataStaticConfigClassificationField build() { + return new UpdateClassificationRequestBodyDataStaticConfigClassificationField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyDataStaticConfigField.java b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyDataStaticConfigField.java new file mode 100644 index 000000000..b773dd037 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyDataStaticConfigField.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.managers.classifications; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateClassificationRequestBodyDataStaticConfigField extends SerializableObject { + + protected UpdateClassificationRequestBodyDataStaticConfigClassificationField classification; + + public UpdateClassificationRequestBodyDataStaticConfigField() { + super(); + } + + protected UpdateClassificationRequestBodyDataStaticConfigField(Builder builder) { + super(); + this.classification = builder.classification; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public UpdateClassificationRequestBodyDataStaticConfigClassificationField getClassification() { + return classification; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateClassificationRequestBodyDataStaticConfigField casted = + (UpdateClassificationRequestBodyDataStaticConfigField) o; + return Objects.equals(classification, casted.classification); + } + + @Override + public int hashCode() { + return Objects.hash(classification); + } + + @Override + public String toString() { + return "UpdateClassificationRequestBodyDataStaticConfigField{" + + "classification='" + + classification + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected UpdateClassificationRequestBodyDataStaticConfigClassificationField classification; + + public Builder classification( + UpdateClassificationRequestBodyDataStaticConfigClassificationField classification) { + this.classification = classification; + return this; + } + + public UpdateClassificationRequestBodyDataStaticConfigField build() { + return new UpdateClassificationRequestBodyDataStaticConfigField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyFieldKeyField.java b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyFieldKeyField.java new file mode 100644 index 000000000..92b2c1e90 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyFieldKeyField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.classifications; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateClassificationRequestBodyFieldKeyField implements Valuable { + BOX__SECURITY__CLASSIFICATION__KEY("Box__Security__Classification__Key"); + + private final String value; + + UpdateClassificationRequestBodyFieldKeyField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateClassificationRequestBodyFieldKeyFieldDeserializer + extends JsonDeserializer> { + + public UpdateClassificationRequestBodyFieldKeyFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateClassificationRequestBodyFieldKeyField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateClassificationRequestBodyFieldKeyFieldSerializer + extends JsonSerializer> { + + public UpdateClassificationRequestBodyFieldKeyFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyOpField.java b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyOpField.java new file mode 100644 index 000000000..96ec68dc6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyOpField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.classifications; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateClassificationRequestBodyOpField implements Valuable { + EDITENUMOPTION("editEnumOption"); + + private final String value; + + UpdateClassificationRequestBodyOpField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateClassificationRequestBodyOpFieldDeserializer + extends JsonDeserializer> { + + public UpdateClassificationRequestBodyOpFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateClassificationRequestBodyOpField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateClassificationRequestBodyOpFieldSerializer + extends JsonSerializer> { + + public UpdateClassificationRequestBodyOpFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CollaborationAllowlistEntriesManager.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CollaborationAllowlistEntriesManager.java new file mode 100644 index 000000000..5213b640a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CollaborationAllowlistEntriesManager.java @@ -0,0 +1,196 @@ +package com.box.sdkgen.managers.collaborationallowlistentries; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.collaborationallowlistentries.CollaborationAllowlistEntries; +import com.box.sdkgen.schemas.collaborationallowlistentry.CollaborationAllowlistEntry; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class CollaborationAllowlistEntriesManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public CollaborationAllowlistEntriesManager() { + this.networkSession = new NetworkSession(); + } + + protected CollaborationAllowlistEntriesManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public CollaborationAllowlistEntries getCollaborationWhitelistEntries() { + return getCollaborationWhitelistEntries( + new GetCollaborationWhitelistEntriesQueryParams(), + new GetCollaborationWhitelistEntriesHeaders()); + } + + public CollaborationAllowlistEntries getCollaborationWhitelistEntries( + GetCollaborationWhitelistEntriesQueryParams queryParams) { + return getCollaborationWhitelistEntries( + queryParams, new GetCollaborationWhitelistEntriesHeaders()); + } + + public CollaborationAllowlistEntries getCollaborationWhitelistEntries( + GetCollaborationWhitelistEntriesHeaders headers) { + return getCollaborationWhitelistEntries( + new GetCollaborationWhitelistEntriesQueryParams(), headers); + } + + public CollaborationAllowlistEntries getCollaborationWhitelistEntries( + GetCollaborationWhitelistEntriesQueryParams queryParams, + GetCollaborationWhitelistEntriesHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/collaboration_whitelist_entries"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), CollaborationAllowlistEntries.class); + } + + public CollaborationAllowlistEntry createCollaborationWhitelistEntry( + CreateCollaborationWhitelistEntryRequestBody requestBody) { + return createCollaborationWhitelistEntry( + requestBody, new CreateCollaborationWhitelistEntryHeaders()); + } + + public CollaborationAllowlistEntry createCollaborationWhitelistEntry( + CreateCollaborationWhitelistEntryRequestBody requestBody, + CreateCollaborationWhitelistEntryHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/collaboration_whitelist_entries"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), CollaborationAllowlistEntry.class); + } + + public CollaborationAllowlistEntry getCollaborationWhitelistEntryById( + String collaborationWhitelistEntryId) { + return getCollaborationWhitelistEntryById( + collaborationWhitelistEntryId, new GetCollaborationWhitelistEntryByIdHeaders()); + } + + public CollaborationAllowlistEntry getCollaborationWhitelistEntryById( + String collaborationWhitelistEntryId, GetCollaborationWhitelistEntryByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/collaboration_whitelist_entries/", + convertToString(collaborationWhitelistEntryId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), CollaborationAllowlistEntry.class); + } + + public void deleteCollaborationWhitelistEntryById(String collaborationWhitelistEntryId) { + deleteCollaborationWhitelistEntryById( + collaborationWhitelistEntryId, new DeleteCollaborationWhitelistEntryByIdHeaders()); + } + + public void deleteCollaborationWhitelistEntryById( + String collaborationWhitelistEntryId, DeleteCollaborationWhitelistEntryByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/collaboration_whitelist_entries/", + convertToString(collaborationWhitelistEntryId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public CollaborationAllowlistEntriesManager build() { + return new CollaborationAllowlistEntriesManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryHeaders.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryHeaders.java new file mode 100644 index 000000000..12fa5bbbd --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.collaborationallowlistentries; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateCollaborationWhitelistEntryHeaders { + + public Map extraHeaders; + + public CreateCollaborationWhitelistEntryHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateCollaborationWhitelistEntryHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateCollaborationWhitelistEntryHeaders build() { + return new CreateCollaborationWhitelistEntryHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryRequestBody.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryRequestBody.java new file mode 100644 index 000000000..c59d267eb --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryRequestBody.java @@ -0,0 +1,81 @@ +package com.box.sdkgen.managers.collaborationallowlistentries; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateCollaborationWhitelistEntryRequestBody extends SerializableObject { + + protected final String domain; + + @JsonDeserialize( + using = + CreateCollaborationWhitelistEntryRequestBodyDirectionField + .CreateCollaborationWhitelistEntryRequestBodyDirectionFieldDeserializer.class) + @JsonSerialize( + using = + CreateCollaborationWhitelistEntryRequestBodyDirectionField + .CreateCollaborationWhitelistEntryRequestBodyDirectionFieldSerializer.class) + protected final EnumWrapper direction; + + public CreateCollaborationWhitelistEntryRequestBody( + String domain, CreateCollaborationWhitelistEntryRequestBodyDirectionField direction) { + super(); + this.domain = domain; + this.direction = + new EnumWrapper(direction); + } + + public CreateCollaborationWhitelistEntryRequestBody( + @JsonProperty("domain") String domain, + @JsonProperty("direction") + EnumWrapper direction) { + super(); + this.domain = domain; + this.direction = direction; + } + + public String getDomain() { + return domain; + } + + public EnumWrapper getDirection() { + return direction; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateCollaborationWhitelistEntryRequestBody casted = + (CreateCollaborationWhitelistEntryRequestBody) o; + return Objects.equals(domain, casted.domain) && Objects.equals(direction, casted.direction); + } + + @Override + public int hashCode() { + return Objects.hash(domain, direction); + } + + @Override + public String toString() { + return "CreateCollaborationWhitelistEntryRequestBody{" + + "domain='" + + domain + + '\'' + + ", " + + "direction='" + + direction + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryRequestBodyDirectionField.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryRequestBodyDirectionField.java new file mode 100644 index 000000000..3ddf5de3d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryRequestBodyDirectionField.java @@ -0,0 +1,67 @@ +package com.box.sdkgen.managers.collaborationallowlistentries; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateCollaborationWhitelistEntryRequestBodyDirectionField implements Valuable { + INBOUND("inbound"), + OUTBOUND("outbound"), + BOTH("both"); + + private final String value; + + CreateCollaborationWhitelistEntryRequestBodyDirectionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateCollaborationWhitelistEntryRequestBodyDirectionFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public CreateCollaborationWhitelistEntryRequestBodyDirectionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateCollaborationWhitelistEntryRequestBodyDirectionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper(value)); + } + } + + public static class CreateCollaborationWhitelistEntryRequestBodyDirectionFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public CreateCollaborationWhitelistEntryRequestBodyDirectionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/DeleteCollaborationWhitelistEntryByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/DeleteCollaborationWhitelistEntryByIdHeaders.java new file mode 100644 index 000000000..caf0c0796 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/DeleteCollaborationWhitelistEntryByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.collaborationallowlistentries; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteCollaborationWhitelistEntryByIdHeaders { + + public Map extraHeaders; + + public DeleteCollaborationWhitelistEntryByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteCollaborationWhitelistEntryByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteCollaborationWhitelistEntryByIdHeaders build() { + return new DeleteCollaborationWhitelistEntryByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntriesHeaders.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntriesHeaders.java new file mode 100644 index 000000000..71bf9db08 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntriesHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.collaborationallowlistentries; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetCollaborationWhitelistEntriesHeaders { + + public Map extraHeaders; + + public GetCollaborationWhitelistEntriesHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetCollaborationWhitelistEntriesHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetCollaborationWhitelistEntriesHeaders build() { + return new GetCollaborationWhitelistEntriesHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntriesQueryParams.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntriesQueryParams.java new file mode 100644 index 000000000..3ac560dad --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntriesQueryParams.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.collaborationallowlistentries; + +public class GetCollaborationWhitelistEntriesQueryParams { + + public String marker; + + public Long limit; + + public GetCollaborationWhitelistEntriesQueryParams() {} + + protected GetCollaborationWhitelistEntriesQueryParams(Builder builder) { + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected String marker; + + protected Long limit; + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetCollaborationWhitelistEntriesQueryParams build() { + return new GetCollaborationWhitelistEntriesQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntryByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntryByIdHeaders.java new file mode 100644 index 000000000..c73e01d50 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntryByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.collaborationallowlistentries; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetCollaborationWhitelistEntryByIdHeaders { + + public Map extraHeaders; + + public GetCollaborationWhitelistEntryByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetCollaborationWhitelistEntryByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetCollaborationWhitelistEntryByIdHeaders build() { + return new GetCollaborationWhitelistEntryByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargetsManager.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargetsManager.java new file mode 100644 index 000000000..718a6d7f5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargetsManager.java @@ -0,0 +1,201 @@ +package com.box.sdkgen.managers.collaborationallowlistexempttargets; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.collaborationallowlistexempttarget.CollaborationAllowlistExemptTarget; +import com.box.sdkgen.schemas.collaborationallowlistexempttargets.CollaborationAllowlistExemptTargets; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class CollaborationAllowlistExemptTargetsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public CollaborationAllowlistExemptTargetsManager() { + this.networkSession = new NetworkSession(); + } + + protected CollaborationAllowlistExemptTargetsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public CollaborationAllowlistExemptTargets getCollaborationWhitelistExemptTargets() { + return getCollaborationWhitelistExemptTargets( + new GetCollaborationWhitelistExemptTargetsQueryParams(), + new GetCollaborationWhitelistExemptTargetsHeaders()); + } + + public CollaborationAllowlistExemptTargets getCollaborationWhitelistExemptTargets( + GetCollaborationWhitelistExemptTargetsQueryParams queryParams) { + return getCollaborationWhitelistExemptTargets( + queryParams, new GetCollaborationWhitelistExemptTargetsHeaders()); + } + + public CollaborationAllowlistExemptTargets getCollaborationWhitelistExemptTargets( + GetCollaborationWhitelistExemptTargetsHeaders headers) { + return getCollaborationWhitelistExemptTargets( + new GetCollaborationWhitelistExemptTargetsQueryParams(), headers); + } + + public CollaborationAllowlistExemptTargets getCollaborationWhitelistExemptTargets( + GetCollaborationWhitelistExemptTargetsQueryParams queryParams, + GetCollaborationWhitelistExemptTargetsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/collaboration_whitelist_exempt_targets"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), CollaborationAllowlistExemptTargets.class); + } + + public CollaborationAllowlistExemptTarget createCollaborationWhitelistExemptTarget( + CreateCollaborationWhitelistExemptTargetRequestBody requestBody) { + return createCollaborationWhitelistExemptTarget( + requestBody, new CreateCollaborationWhitelistExemptTargetHeaders()); + } + + public CollaborationAllowlistExemptTarget createCollaborationWhitelistExemptTarget( + CreateCollaborationWhitelistExemptTargetRequestBody requestBody, + CreateCollaborationWhitelistExemptTargetHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/collaboration_whitelist_exempt_targets"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), CollaborationAllowlistExemptTarget.class); + } + + public CollaborationAllowlistExemptTarget getCollaborationWhitelistExemptTargetById( + String collaborationWhitelistExemptTargetId) { + return getCollaborationWhitelistExemptTargetById( + collaborationWhitelistExemptTargetId, + new GetCollaborationWhitelistExemptTargetByIdHeaders()); + } + + public CollaborationAllowlistExemptTarget getCollaborationWhitelistExemptTargetById( + String collaborationWhitelistExemptTargetId, + GetCollaborationWhitelistExemptTargetByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/collaboration_whitelist_exempt_targets/", + convertToString(collaborationWhitelistExemptTargetId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), CollaborationAllowlistExemptTarget.class); + } + + public void deleteCollaborationWhitelistExemptTargetById( + String collaborationWhitelistExemptTargetId) { + deleteCollaborationWhitelistExemptTargetById( + collaborationWhitelistExemptTargetId, + new DeleteCollaborationWhitelistExemptTargetByIdHeaders()); + } + + public void deleteCollaborationWhitelistExemptTargetById( + String collaborationWhitelistExemptTargetId, + DeleteCollaborationWhitelistExemptTargetByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/collaboration_whitelist_exempt_targets/", + convertToString(collaborationWhitelistExemptTargetId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public CollaborationAllowlistExemptTargetsManager build() { + return new CollaborationAllowlistExemptTargetsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetHeaders.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetHeaders.java new file mode 100644 index 000000000..e8510f749 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.collaborationallowlistexempttargets; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateCollaborationWhitelistExemptTargetHeaders { + + public Map extraHeaders; + + public CreateCollaborationWhitelistExemptTargetHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateCollaborationWhitelistExemptTargetHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateCollaborationWhitelistExemptTargetHeaders build() { + return new CreateCollaborationWhitelistExemptTargetHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetRequestBody.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetRequestBody.java new file mode 100644 index 000000000..16ca1eb34 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetRequestBody.java @@ -0,0 +1,45 @@ +package com.box.sdkgen.managers.collaborationallowlistexempttargets; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateCollaborationWhitelistExemptTargetRequestBody extends SerializableObject { + + protected final CreateCollaborationWhitelistExemptTargetRequestBodyUserField user; + + public CreateCollaborationWhitelistExemptTargetRequestBody( + @JsonProperty("user") CreateCollaborationWhitelistExemptTargetRequestBodyUserField user) { + super(); + this.user = user; + } + + public CreateCollaborationWhitelistExemptTargetRequestBodyUserField getUser() { + return user; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateCollaborationWhitelistExemptTargetRequestBody casted = + (CreateCollaborationWhitelistExemptTargetRequestBody) o; + return Objects.equals(user, casted.user); + } + + @Override + public int hashCode() { + return Objects.hash(user); + } + + @Override + public String toString() { + return "CreateCollaborationWhitelistExemptTargetRequestBody{" + "user='" + user + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetRequestBodyUserField.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetRequestBodyUserField.java new file mode 100644 index 000000000..a469546ba --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetRequestBodyUserField.java @@ -0,0 +1,50 @@ +package com.box.sdkgen.managers.collaborationallowlistexempttargets; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateCollaborationWhitelistExemptTargetRequestBodyUserField + extends SerializableObject { + + protected final String id; + + public CreateCollaborationWhitelistExemptTargetRequestBodyUserField( + @JsonProperty("id") String id) { + super(); + this.id = id; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateCollaborationWhitelistExemptTargetRequestBodyUserField casted = + (CreateCollaborationWhitelistExemptTargetRequestBodyUserField) o; + return Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + return "CreateCollaborationWhitelistExemptTargetRequestBodyUserField{" + + "id='" + + id + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/DeleteCollaborationWhitelistExemptTargetByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/DeleteCollaborationWhitelistExemptTargetByIdHeaders.java new file mode 100644 index 000000000..66b2bc96d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/DeleteCollaborationWhitelistExemptTargetByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.collaborationallowlistexempttargets; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteCollaborationWhitelistExemptTargetByIdHeaders { + + public Map extraHeaders; + + public DeleteCollaborationWhitelistExemptTargetByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteCollaborationWhitelistExemptTargetByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteCollaborationWhitelistExemptTargetByIdHeaders build() { + return new DeleteCollaborationWhitelistExemptTargetByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetByIdHeaders.java new file mode 100644 index 000000000..bc647c990 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.collaborationallowlistexempttargets; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetCollaborationWhitelistExemptTargetByIdHeaders { + + public Map extraHeaders; + + public GetCollaborationWhitelistExemptTargetByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetCollaborationWhitelistExemptTargetByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetCollaborationWhitelistExemptTargetByIdHeaders build() { + return new GetCollaborationWhitelistExemptTargetByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetsHeaders.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetsHeaders.java new file mode 100644 index 000000000..bc393c014 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.collaborationallowlistexempttargets; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetCollaborationWhitelistExemptTargetsHeaders { + + public Map extraHeaders; + + public GetCollaborationWhitelistExemptTargetsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetCollaborationWhitelistExemptTargetsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetCollaborationWhitelistExemptTargetsHeaders build() { + return new GetCollaborationWhitelistExemptTargetsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetsQueryParams.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetsQueryParams.java new file mode 100644 index 000000000..ab7aeeaa2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetsQueryParams.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.collaborationallowlistexempttargets; + +public class GetCollaborationWhitelistExemptTargetsQueryParams { + + public String marker; + + public Long limit; + + public GetCollaborationWhitelistExemptTargetsQueryParams() {} + + protected GetCollaborationWhitelistExemptTargetsQueryParams(Builder builder) { + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected String marker; + + protected Long limit; + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetCollaborationWhitelistExemptTargetsQueryParams build() { + return new GetCollaborationWhitelistExemptTargetsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/collections/CollectionsManager.java b/src/main/java/com/box/sdkgen/managers/collections/CollectionsManager.java new file mode 100644 index 000000000..1fb4c631a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/collections/CollectionsManager.java @@ -0,0 +1,177 @@ +package com.box.sdkgen.managers.collections; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.collection.Collection; +import com.box.sdkgen.schemas.collections.Collections; +import com.box.sdkgen.schemas.itemsoffsetpaginated.ItemsOffsetPaginated; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class CollectionsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public CollectionsManager() { + this.networkSession = new NetworkSession(); + } + + protected CollectionsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public Collections getCollections() { + return getCollections(new GetCollectionsQueryParams(), new GetCollectionsHeaders()); + } + + public Collections getCollections(GetCollectionsQueryParams queryParams) { + return getCollections(queryParams, new GetCollectionsHeaders()); + } + + public Collections getCollections(GetCollectionsHeaders headers) { + return getCollections(new GetCollectionsQueryParams(), headers); + } + + public Collections getCollections( + GetCollectionsQueryParams queryParams, GetCollectionsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("fields", convertToString(queryParams.getFields())), + entryOf("offset", convertToString(queryParams.getOffset())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/collections"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Collections.class); + } + + public ItemsOffsetPaginated getCollectionItems(String collectionId) { + return getCollectionItems( + collectionId, new GetCollectionItemsQueryParams(), new GetCollectionItemsHeaders()); + } + + public ItemsOffsetPaginated getCollectionItems( + String collectionId, GetCollectionItemsQueryParams queryParams) { + return getCollectionItems(collectionId, queryParams, new GetCollectionItemsHeaders()); + } + + public ItemsOffsetPaginated getCollectionItems( + String collectionId, GetCollectionItemsHeaders headers) { + return getCollectionItems(collectionId, new GetCollectionItemsQueryParams(), headers); + } + + public ItemsOffsetPaginated getCollectionItems( + String collectionId, + GetCollectionItemsQueryParams queryParams, + GetCollectionItemsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("fields", convertToString(queryParams.getFields())), + entryOf("offset", convertToString(queryParams.getOffset())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/collections/", + convertToString(collectionId), + "/items"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ItemsOffsetPaginated.class); + } + + public Collection getCollectionById(String collectionId) { + return getCollectionById(collectionId, new GetCollectionByIdHeaders()); + } + + public Collection getCollectionById(String collectionId, GetCollectionByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/collections/", + convertToString(collectionId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Collection.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public CollectionsManager build() { + return new CollectionsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/collections/GetCollectionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionByIdHeaders.java new file mode 100644 index 000000000..43a652f6e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.collections; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetCollectionByIdHeaders { + + public Map extraHeaders; + + public GetCollectionByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetCollectionByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetCollectionByIdHeaders build() { + return new GetCollectionByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/collections/GetCollectionItemsHeaders.java b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionItemsHeaders.java new file mode 100644 index 000000000..d8f38be4d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionItemsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.collections; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetCollectionItemsHeaders { + + public Map extraHeaders; + + public GetCollectionItemsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetCollectionItemsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetCollectionItemsHeaders build() { + return new GetCollectionItemsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/collections/GetCollectionItemsQueryParams.java b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionItemsQueryParams.java new file mode 100644 index 000000000..293075fee --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionItemsQueryParams.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.managers.collections; + +import java.util.List; + +public class GetCollectionItemsQueryParams { + + public List fields; + + public Long offset; + + public Long limit; + + public GetCollectionItemsQueryParams() {} + + protected GetCollectionItemsQueryParams(Builder builder) { + this.fields = builder.fields; + this.offset = builder.offset; + this.limit = builder.limit; + } + + public List getFields() { + return fields; + } + + public Long getOffset() { + return offset; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected List fields; + + protected Long offset; + + protected Long limit; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetCollectionItemsQueryParams build() { + return new GetCollectionItemsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/collections/GetCollectionsHeaders.java b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionsHeaders.java new file mode 100644 index 000000000..2a8de5381 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.collections; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetCollectionsHeaders { + + public Map extraHeaders; + + public GetCollectionsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetCollectionsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetCollectionsHeaders build() { + return new GetCollectionsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/collections/GetCollectionsQueryParams.java b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionsQueryParams.java new file mode 100644 index 000000000..5f6e524ea --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionsQueryParams.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.managers.collections; + +import java.util.List; + +public class GetCollectionsQueryParams { + + public List fields; + + public Long offset; + + public Long limit; + + public GetCollectionsQueryParams() {} + + protected GetCollectionsQueryParams(Builder builder) { + this.fields = builder.fields; + this.offset = builder.offset; + this.limit = builder.limit; + } + + public List getFields() { + return fields; + } + + public Long getOffset() { + return offset; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected List fields; + + protected Long offset; + + protected Long limit; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetCollectionsQueryParams build() { + return new GetCollectionsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/comments/CommentsManager.java b/src/main/java/com/box/sdkgen/managers/comments/CommentsManager.java new file mode 100644 index 000000000..36e4ce36e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/comments/CommentsManager.java @@ -0,0 +1,283 @@ +package com.box.sdkgen.managers.comments; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.commentfull.CommentFull; +import com.box.sdkgen.schemas.comments.Comments; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class CommentsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public CommentsManager() { + this.networkSession = new NetworkSession(); + } + + protected CommentsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public Comments getFileComments(String fileId) { + return getFileComments(fileId, new GetFileCommentsQueryParams(), new GetFileCommentsHeaders()); + } + + public Comments getFileComments(String fileId, GetFileCommentsQueryParams queryParams) { + return getFileComments(fileId, queryParams, new GetFileCommentsHeaders()); + } + + public Comments getFileComments(String fileId, GetFileCommentsHeaders headers) { + return getFileComments(fileId, new GetFileCommentsQueryParams(), headers); + } + + public Comments getFileComments( + String fileId, GetFileCommentsQueryParams queryParams, GetFileCommentsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("fields", convertToString(queryParams.getFields())), + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf("offset", convertToString(queryParams.getOffset())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/comments"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Comments.class); + } + + public CommentFull getCommentById(String commentId) { + return getCommentById(commentId, new GetCommentByIdQueryParams(), new GetCommentByIdHeaders()); + } + + public CommentFull getCommentById(String commentId, GetCommentByIdQueryParams queryParams) { + return getCommentById(commentId, queryParams, new GetCommentByIdHeaders()); + } + + public CommentFull getCommentById(String commentId, GetCommentByIdHeaders headers) { + return getCommentById(commentId, new GetCommentByIdQueryParams(), headers); + } + + public CommentFull getCommentById( + String commentId, GetCommentByIdQueryParams queryParams, GetCommentByIdHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/comments/", + convertToString(commentId)), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), CommentFull.class); + } + + public CommentFull updateCommentById(String commentId) { + return updateCommentById( + commentId, + new UpdateCommentByIdRequestBody(), + new UpdateCommentByIdQueryParams(), + new UpdateCommentByIdHeaders()); + } + + public CommentFull updateCommentById(String commentId, UpdateCommentByIdRequestBody requestBody) { + return updateCommentById( + commentId, requestBody, new UpdateCommentByIdQueryParams(), new UpdateCommentByIdHeaders()); + } + + public CommentFull updateCommentById(String commentId, UpdateCommentByIdQueryParams queryParams) { + return updateCommentById( + commentId, new UpdateCommentByIdRequestBody(), queryParams, new UpdateCommentByIdHeaders()); + } + + public CommentFull updateCommentById( + String commentId, + UpdateCommentByIdRequestBody requestBody, + UpdateCommentByIdQueryParams queryParams) { + return updateCommentById(commentId, requestBody, queryParams, new UpdateCommentByIdHeaders()); + } + + public CommentFull updateCommentById(String commentId, UpdateCommentByIdHeaders headers) { + return updateCommentById( + commentId, new UpdateCommentByIdRequestBody(), new UpdateCommentByIdQueryParams(), headers); + } + + public CommentFull updateCommentById( + String commentId, + UpdateCommentByIdRequestBody requestBody, + UpdateCommentByIdHeaders headers) { + return updateCommentById(commentId, requestBody, new UpdateCommentByIdQueryParams(), headers); + } + + public CommentFull updateCommentById( + String commentId, + UpdateCommentByIdQueryParams queryParams, + UpdateCommentByIdHeaders headers) { + return updateCommentById(commentId, new UpdateCommentByIdRequestBody(), queryParams, headers); + } + + public CommentFull updateCommentById( + String commentId, + UpdateCommentByIdRequestBody requestBody, + UpdateCommentByIdQueryParams queryParams, + UpdateCommentByIdHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/comments/", + convertToString(commentId)), + "PUT") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), CommentFull.class); + } + + public void deleteCommentById(String commentId) { + deleteCommentById(commentId, new DeleteCommentByIdHeaders()); + } + + public void deleteCommentById(String commentId, DeleteCommentByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/comments/", + convertToString(commentId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public CommentFull createComment(CreateCommentRequestBody requestBody) { + return createComment(requestBody, new CreateCommentQueryParams(), new CreateCommentHeaders()); + } + + public CommentFull createComment( + CreateCommentRequestBody requestBody, CreateCommentQueryParams queryParams) { + return createComment(requestBody, queryParams, new CreateCommentHeaders()); + } + + public CommentFull createComment( + CreateCommentRequestBody requestBody, CreateCommentHeaders headers) { + return createComment(requestBody, new CreateCommentQueryParams(), headers); + } + + public CommentFull createComment( + CreateCommentRequestBody requestBody, + CreateCommentQueryParams queryParams, + CreateCommentHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/comments"), + "POST") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), CommentFull.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public CommentsManager build() { + return new CommentsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/comments/CreateCommentHeaders.java b/src/main/java/com/box/sdkgen/managers/comments/CreateCommentHeaders.java new file mode 100644 index 000000000..eb1594897 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/comments/CreateCommentHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.comments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateCommentHeaders { + + public Map extraHeaders; + + public CreateCommentHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateCommentHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateCommentHeaders build() { + return new CreateCommentHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/comments/CreateCommentQueryParams.java b/src/main/java/com/box/sdkgen/managers/comments/CreateCommentQueryParams.java new file mode 100644 index 000000000..9bf00ce18 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/comments/CreateCommentQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.comments; + +import java.util.List; + +public class CreateCommentQueryParams { + + public List fields; + + public CreateCommentQueryParams() {} + + protected CreateCommentQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public CreateCommentQueryParams build() { + return new CreateCommentQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/comments/CreateCommentRequestBody.java b/src/main/java/com/box/sdkgen/managers/comments/CreateCommentRequestBody.java new file mode 100644 index 000000000..0821fefa8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/comments/CreateCommentRequestBody.java @@ -0,0 +1,106 @@ +package com.box.sdkgen.managers.comments; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateCommentRequestBody extends SerializableObject { + + protected final String message; + + @JsonProperty("tagged_message") + protected String taggedMessage; + + protected final CreateCommentRequestBodyItemField item; + + public CreateCommentRequestBody( + @JsonProperty("message") String message, + @JsonProperty("item") CreateCommentRequestBodyItemField item) { + super(); + this.message = message; + this.item = item; + } + + protected CreateCommentRequestBody(Builder builder) { + super(); + this.message = builder.message; + this.taggedMessage = builder.taggedMessage; + this.item = builder.item; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getMessage() { + return message; + } + + public String getTaggedMessage() { + return taggedMessage; + } + + public CreateCommentRequestBodyItemField getItem() { + return item; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateCommentRequestBody casted = (CreateCommentRequestBody) o; + return Objects.equals(message, casted.message) + && Objects.equals(taggedMessage, casted.taggedMessage) + && Objects.equals(item, casted.item); + } + + @Override + public int hashCode() { + return Objects.hash(message, taggedMessage, item); + } + + @Override + public String toString() { + return "CreateCommentRequestBody{" + + "message='" + + message + + '\'' + + ", " + + "taggedMessage='" + + taggedMessage + + '\'' + + ", " + + "item='" + + item + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String message; + + protected String taggedMessage; + + protected final CreateCommentRequestBodyItemField item; + + public Builder(String message, CreateCommentRequestBodyItemField item) { + super(); + this.message = message; + this.item = item; + } + + public Builder taggedMessage(String taggedMessage) { + this.taggedMessage = taggedMessage; + return this; + } + + public CreateCommentRequestBody build() { + return new CreateCommentRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/comments/CreateCommentRequestBodyItemField.java b/src/main/java/com/box/sdkgen/managers/comments/CreateCommentRequestBodyItemField.java new file mode 100644 index 000000000..69d0ff727 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/comments/CreateCommentRequestBodyItemField.java @@ -0,0 +1,77 @@ +package com.box.sdkgen.managers.comments; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateCommentRequestBodyItemField extends SerializableObject { + + protected final String id; + + @JsonDeserialize( + using = + CreateCommentRequestBodyItemTypeField.CreateCommentRequestBodyItemTypeFieldDeserializer + .class) + @JsonSerialize( + using = + CreateCommentRequestBodyItemTypeField.CreateCommentRequestBodyItemTypeFieldSerializer + .class) + protected final EnumWrapper type; + + public CreateCommentRequestBodyItemField(String id, CreateCommentRequestBodyItemTypeField type) { + super(); + this.id = id; + this.type = new EnumWrapper(type); + } + + public CreateCommentRequestBodyItemField( + @JsonProperty("id") String id, + @JsonProperty("type") EnumWrapper type) { + super(); + this.id = id; + this.type = type; + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateCommentRequestBodyItemField casted = (CreateCommentRequestBodyItemField) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "CreateCommentRequestBodyItemField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/comments/CreateCommentRequestBodyItemTypeField.java b/src/main/java/com/box/sdkgen/managers/comments/CreateCommentRequestBodyItemTypeField.java new file mode 100644 index 000000000..bbc3394a5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/comments/CreateCommentRequestBodyItemTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.comments; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateCommentRequestBodyItemTypeField implements Valuable { + FILE("file"), + COMMENT("comment"); + + private final String value; + + CreateCommentRequestBodyItemTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateCommentRequestBodyItemTypeFieldDeserializer + extends JsonDeserializer> { + + public CreateCommentRequestBodyItemTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateCommentRequestBodyItemTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateCommentRequestBodyItemTypeFieldSerializer + extends JsonSerializer> { + + public CreateCommentRequestBodyItemTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/comments/DeleteCommentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/comments/DeleteCommentByIdHeaders.java new file mode 100644 index 000000000..67df38ea6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/comments/DeleteCommentByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.comments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteCommentByIdHeaders { + + public Map extraHeaders; + + public DeleteCommentByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteCommentByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteCommentByIdHeaders build() { + return new DeleteCommentByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/comments/GetCommentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/comments/GetCommentByIdHeaders.java new file mode 100644 index 000000000..fd81e7571 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/comments/GetCommentByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.comments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetCommentByIdHeaders { + + public Map extraHeaders; + + public GetCommentByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetCommentByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetCommentByIdHeaders build() { + return new GetCommentByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/comments/GetCommentByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/comments/GetCommentByIdQueryParams.java new file mode 100644 index 000000000..dec7e8de9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/comments/GetCommentByIdQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.comments; + +import java.util.List; + +public class GetCommentByIdQueryParams { + + public List fields; + + public GetCommentByIdQueryParams() {} + + protected GetCommentByIdQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public GetCommentByIdQueryParams build() { + return new GetCommentByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/comments/GetFileCommentsHeaders.java b/src/main/java/com/box/sdkgen/managers/comments/GetFileCommentsHeaders.java new file mode 100644 index 000000000..a783fe8df --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/comments/GetFileCommentsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.comments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFileCommentsHeaders { + + public Map extraHeaders; + + public GetFileCommentsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFileCommentsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFileCommentsHeaders build() { + return new GetFileCommentsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/comments/GetFileCommentsQueryParams.java b/src/main/java/com/box/sdkgen/managers/comments/GetFileCommentsQueryParams.java new file mode 100644 index 000000000..78a6c6802 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/comments/GetFileCommentsQueryParams.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.managers.comments; + +import java.util.List; + +public class GetFileCommentsQueryParams { + + public List fields; + + public Long limit; + + public Long offset; + + public GetFileCommentsQueryParams() {} + + protected GetFileCommentsQueryParams(Builder builder) { + this.fields = builder.fields; + this.limit = builder.limit; + this.offset = builder.offset; + } + + public List getFields() { + return fields; + } + + public Long getLimit() { + return limit; + } + + public Long getOffset() { + return offset; + } + + public static class Builder { + + protected List fields; + + protected Long limit; + + protected Long offset; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public GetFileCommentsQueryParams build() { + return new GetFileCommentsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdHeaders.java new file mode 100644 index 000000000..360077982 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.comments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateCommentByIdHeaders { + + public Map extraHeaders; + + public UpdateCommentByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateCommentByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateCommentByIdHeaders build() { + return new UpdateCommentByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdQueryParams.java new file mode 100644 index 000000000..6e0062745 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.comments; + +import java.util.List; + +public class UpdateCommentByIdQueryParams { + + public List fields; + + public UpdateCommentByIdQueryParams() {} + + protected UpdateCommentByIdQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public UpdateCommentByIdQueryParams build() { + return new UpdateCommentByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdRequestBody.java new file mode 100644 index 000000000..2c2c5726a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdRequestBody.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.comments; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateCommentByIdRequestBody extends SerializableObject { + + protected String message; + + public UpdateCommentByIdRequestBody() { + super(); + } + + protected UpdateCommentByIdRequestBody(Builder builder) { + super(); + this.message = builder.message; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getMessage() { + return message; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateCommentByIdRequestBody casted = (UpdateCommentByIdRequestBody) o; + return Objects.equals(message, casted.message); + } + + @Override + public int hashCode() { + return Objects.hash(message); + } + + @Override + public String toString() { + return "UpdateCommentByIdRequestBody{" + "message='" + message + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String message; + + public Builder message(String message) { + this.message = message; + return this; + } + + public UpdateCommentByIdRequestBody build() { + return new UpdateCommentByIdRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/devicepinners/DeleteDevicePinnerByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/devicepinners/DeleteDevicePinnerByIdHeaders.java new file mode 100644 index 000000000..d8a870ac6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/devicepinners/DeleteDevicePinnerByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.devicepinners; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteDevicePinnerByIdHeaders { + + public Map extraHeaders; + + public DeleteDevicePinnerByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteDevicePinnerByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteDevicePinnerByIdHeaders build() { + return new DeleteDevicePinnerByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/devicepinners/DevicePinnersManager.java b/src/main/java/com/box/sdkgen/managers/devicepinners/DevicePinnersManager.java new file mode 100644 index 000000000..4ee309cac --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/devicepinners/DevicePinnersManager.java @@ -0,0 +1,167 @@ +package com.box.sdkgen.managers.devicepinners; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.devicepinner.DevicePinner; +import com.box.sdkgen.schemas.devicepinners.DevicePinners; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class DevicePinnersManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public DevicePinnersManager() { + this.networkSession = new NetworkSession(); + } + + protected DevicePinnersManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public DevicePinner getDevicePinnerById(String devicePinnerId) { + return getDevicePinnerById(devicePinnerId, new GetDevicePinnerByIdHeaders()); + } + + public DevicePinner getDevicePinnerById( + String devicePinnerId, GetDevicePinnerByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/device_pinners/", + convertToString(devicePinnerId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), DevicePinner.class); + } + + public void deleteDevicePinnerById(String devicePinnerId) { + deleteDevicePinnerById(devicePinnerId, new DeleteDevicePinnerByIdHeaders()); + } + + public void deleteDevicePinnerById(String devicePinnerId, DeleteDevicePinnerByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/device_pinners/", + convertToString(devicePinnerId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public DevicePinners getEnterpriseDevicePinners(String enterpriseId) { + return getEnterpriseDevicePinners( + enterpriseId, + new GetEnterpriseDevicePinnersQueryParams(), + new GetEnterpriseDevicePinnersHeaders()); + } + + public DevicePinners getEnterpriseDevicePinners( + String enterpriseId, GetEnterpriseDevicePinnersQueryParams queryParams) { + return getEnterpriseDevicePinners( + enterpriseId, queryParams, new GetEnterpriseDevicePinnersHeaders()); + } + + public DevicePinners getEnterpriseDevicePinners( + String enterpriseId, GetEnterpriseDevicePinnersHeaders headers) { + return getEnterpriseDevicePinners( + enterpriseId, new GetEnterpriseDevicePinnersQueryParams(), headers); + } + + public DevicePinners getEnterpriseDevicePinners( + String enterpriseId, + GetEnterpriseDevicePinnersQueryParams queryParams, + GetEnterpriseDevicePinnersHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf("direction", convertToString(queryParams.getDirection())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/enterprises/", + convertToString(enterpriseId), + "/device_pinners"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), DevicePinners.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public DevicePinnersManager build() { + return new DevicePinnersManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/devicepinners/GetDevicePinnerByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/devicepinners/GetDevicePinnerByIdHeaders.java new file mode 100644 index 000000000..a7e8cea8f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/devicepinners/GetDevicePinnerByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.devicepinners; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetDevicePinnerByIdHeaders { + + public Map extraHeaders; + + public GetDevicePinnerByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetDevicePinnerByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetDevicePinnerByIdHeaders build() { + return new GetDevicePinnerByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersHeaders.java b/src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersHeaders.java new file mode 100644 index 000000000..bdb537f6b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.devicepinners; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetEnterpriseDevicePinnersHeaders { + + public Map extraHeaders; + + public GetEnterpriseDevicePinnersHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetEnterpriseDevicePinnersHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetEnterpriseDevicePinnersHeaders build() { + return new GetEnterpriseDevicePinnersHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersQueryParams.java b/src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersQueryParams.java new file mode 100644 index 000000000..3c1510981 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersQueryParams.java @@ -0,0 +1,67 @@ +package com.box.sdkgen.managers.devicepinners; + +import com.box.sdkgen.serialization.json.EnumWrapper; + +public class GetEnterpriseDevicePinnersQueryParams { + + public String marker; + + public Long limit; + + public EnumWrapper direction; + + public GetEnterpriseDevicePinnersQueryParams() {} + + protected GetEnterpriseDevicePinnersQueryParams(Builder builder) { + this.marker = builder.marker; + this.limit = builder.limit; + this.direction = builder.direction; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public EnumWrapper getDirection() { + return direction; + } + + public static class Builder { + + protected String marker; + + protected Long limit; + + protected EnumWrapper direction; + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder direction(GetEnterpriseDevicePinnersQueryParamsDirectionField direction) { + this.direction = + new EnumWrapper(direction); + return this; + } + + public Builder direction( + EnumWrapper direction) { + this.direction = direction; + return this; + } + + public GetEnterpriseDevicePinnersQueryParams build() { + return new GetEnterpriseDevicePinnersQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersQueryParamsDirectionField.java b/src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersQueryParamsDirectionField.java new file mode 100644 index 000000000..37e72dd56 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersQueryParamsDirectionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.devicepinners; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetEnterpriseDevicePinnersQueryParamsDirectionField implements Valuable { + ASC("ASC"), + DESC("DESC"); + + private final String value; + + GetEnterpriseDevicePinnersQueryParamsDirectionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetEnterpriseDevicePinnersQueryParamsDirectionFieldDeserializer + extends JsonDeserializer> { + + public GetEnterpriseDevicePinnersQueryParamsDirectionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetEnterpriseDevicePinnersQueryParamsDirectionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetEnterpriseDevicePinnersQueryParamsDirectionFieldSerializer + extends JsonSerializer> { + + public GetEnterpriseDevicePinnersQueryParamsDirectionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/docgen/CreateDocgenBatchV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgen/CreateDocgenBatchV2025R0Headers.java new file mode 100644 index 000000000..2cf368c15 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/docgen/CreateDocgenBatchV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.docgen; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class CreateDocgenBatchV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public CreateDocgenBatchV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected CreateDocgenBatchV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateDocgenBatchV2025R0Headers build() { + return new CreateDocgenBatchV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/docgen/DocgenManager.java b/src/main/java/com/box/sdkgen/managers/docgen/DocgenManager.java new file mode 100644 index 000000000..2bb738f97 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/docgen/DocgenManager.java @@ -0,0 +1,226 @@ +package com.box.sdkgen.managers.docgen; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.v2025r0.docgenbatchbasev2025r0.DocGenBatchBaseV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgenbatchcreaterequestv2025r0.DocGenBatchCreateRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgenjobsfullv2025r0.DocGenJobsFullV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgenjobsv2025r0.DocGenJobsV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgenjobv2025r0.DocGenJobV2025R0; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class DocgenManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public DocgenManager() { + this.networkSession = new NetworkSession(); + } + + protected DocgenManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public DocGenJobV2025R0 getDocgenJobByIdV2025R0(String jobId) { + return getDocgenJobByIdV2025R0(jobId, new GetDocgenJobByIdV2025R0Headers()); + } + + public DocGenJobV2025R0 getDocgenJobByIdV2025R0( + String jobId, GetDocgenJobByIdV2025R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/docgen_jobs/", + convertToString(jobId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), DocGenJobV2025R0.class); + } + + public DocGenJobsFullV2025R0 getDocgenJobsV2025R0() { + return getDocgenJobsV2025R0( + new GetDocgenJobsV2025R0QueryParams(), new GetDocgenJobsV2025R0Headers()); + } + + public DocGenJobsFullV2025R0 getDocgenJobsV2025R0(GetDocgenJobsV2025R0QueryParams queryParams) { + return getDocgenJobsV2025R0(queryParams, new GetDocgenJobsV2025R0Headers()); + } + + public DocGenJobsFullV2025R0 getDocgenJobsV2025R0(GetDocgenJobsV2025R0Headers headers) { + return getDocgenJobsV2025R0(new GetDocgenJobsV2025R0QueryParams(), headers); + } + + public DocGenJobsFullV2025R0 getDocgenJobsV2025R0( + GetDocgenJobsV2025R0QueryParams queryParams, GetDocgenJobsV2025R0Headers headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/docgen_jobs"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), DocGenJobsFullV2025R0.class); + } + + public DocGenJobsV2025R0 getDocgenBatchJobByIdV2025R0(String batchId) { + return getDocgenBatchJobByIdV2025R0( + batchId, + new GetDocgenBatchJobByIdV2025R0QueryParams(), + new GetDocgenBatchJobByIdV2025R0Headers()); + } + + public DocGenJobsV2025R0 getDocgenBatchJobByIdV2025R0( + String batchId, GetDocgenBatchJobByIdV2025R0QueryParams queryParams) { + return getDocgenBatchJobByIdV2025R0( + batchId, queryParams, new GetDocgenBatchJobByIdV2025R0Headers()); + } + + public DocGenJobsV2025R0 getDocgenBatchJobByIdV2025R0( + String batchId, GetDocgenBatchJobByIdV2025R0Headers headers) { + return getDocgenBatchJobByIdV2025R0( + batchId, new GetDocgenBatchJobByIdV2025R0QueryParams(), headers); + } + + public DocGenJobsV2025R0 getDocgenBatchJobByIdV2025R0( + String batchId, + GetDocgenBatchJobByIdV2025R0QueryParams queryParams, + GetDocgenBatchJobByIdV2025R0Headers headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/docgen_batch_jobs/", + convertToString(batchId)), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), DocGenJobsV2025R0.class); + } + + public DocGenBatchBaseV2025R0 createDocgenBatchV2025R0( + DocGenBatchCreateRequestV2025R0 requestBody) { + return createDocgenBatchV2025R0(requestBody, new CreateDocgenBatchV2025R0Headers()); + } + + public DocGenBatchBaseV2025R0 createDocgenBatchV2025R0( + DocGenBatchCreateRequestV2025R0 requestBody, CreateDocgenBatchV2025R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/docgen_batches"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), DocGenBatchBaseV2025R0.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public DocgenManager build() { + return new DocgenManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenBatchJobByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenBatchJobByIdV2025R0Headers.java new file mode 100644 index 000000000..b48da52af --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenBatchJobByIdV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.docgen; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class GetDocgenBatchJobByIdV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public GetDocgenBatchJobByIdV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected GetDocgenBatchJobByIdV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetDocgenBatchJobByIdV2025R0Headers build() { + return new GetDocgenBatchJobByIdV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenBatchJobByIdV2025R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenBatchJobByIdV2025R0QueryParams.java new file mode 100644 index 000000000..65d0693d6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenBatchJobByIdV2025R0QueryParams.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.docgen; + +public class GetDocgenBatchJobByIdV2025R0QueryParams { + + public String marker; + + public Long limit; + + public GetDocgenBatchJobByIdV2025R0QueryParams() {} + + protected GetDocgenBatchJobByIdV2025R0QueryParams(Builder builder) { + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected String marker; + + protected Long limit; + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetDocgenBatchJobByIdV2025R0QueryParams build() { + return new GetDocgenBatchJobByIdV2025R0QueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobByIdV2025R0Headers.java new file mode 100644 index 000000000..99b27f928 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobByIdV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.docgen; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class GetDocgenJobByIdV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public GetDocgenJobByIdV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected GetDocgenJobByIdV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetDocgenJobByIdV2025R0Headers build() { + return new GetDocgenJobByIdV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobsV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobsV2025R0Headers.java new file mode 100644 index 000000000..53cd19138 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobsV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.docgen; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class GetDocgenJobsV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public GetDocgenJobsV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected GetDocgenJobsV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetDocgenJobsV2025R0Headers build() { + return new GetDocgenJobsV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobsV2025R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobsV2025R0QueryParams.java new file mode 100644 index 000000000..a2ede732f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobsV2025R0QueryParams.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.docgen; + +public class GetDocgenJobsV2025R0QueryParams { + + public String marker; + + public Long limit; + + public GetDocgenJobsV2025R0QueryParams() {} + + protected GetDocgenJobsV2025R0QueryParams(Builder builder) { + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected String marker; + + protected Long limit; + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetDocgenJobsV2025R0QueryParams build() { + return new GetDocgenJobsV2025R0QueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/CreateDocgenTemplateV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/CreateDocgenTemplateV2025R0Headers.java new file mode 100644 index 000000000..729def149 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/CreateDocgenTemplateV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.docgentemplate; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class CreateDocgenTemplateV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public CreateDocgenTemplateV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected CreateDocgenTemplateV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateDocgenTemplateV2025R0Headers build() { + return new CreateDocgenTemplateV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/DeleteDocgenTemplateByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/DeleteDocgenTemplateByIdV2025R0Headers.java new file mode 100644 index 000000000..18a7f47da --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/DeleteDocgenTemplateByIdV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.docgentemplate; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class DeleteDocgenTemplateByIdV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public DeleteDocgenTemplateByIdV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected DeleteDocgenTemplateByIdV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteDocgenTemplateByIdV2025R0Headers build() { + return new DeleteDocgenTemplateByIdV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/DocgenTemplateManager.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/DocgenTemplateManager.java new file mode 100644 index 000000000..e9e36ae0d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/DocgenTemplateManager.java @@ -0,0 +1,315 @@ +package com.box.sdkgen.managers.docgentemplate; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.v2025r0.docgenjobsv2025r0.DocGenJobsV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgentagsv2025r0.DocGenTagsV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgentemplatebasev2025r0.DocGenTemplateBaseV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgentemplatecreaterequestv2025r0.DocGenTemplateCreateRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgentemplatesv2025r0.DocGenTemplatesV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgentemplatev2025r0.DocGenTemplateV2025R0; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class DocgenTemplateManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public DocgenTemplateManager() { + this.networkSession = new NetworkSession(); + } + + protected DocgenTemplateManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public DocGenTemplateBaseV2025R0 createDocgenTemplateV2025R0( + DocGenTemplateCreateRequestV2025R0 requestBody) { + return createDocgenTemplateV2025R0(requestBody, new CreateDocgenTemplateV2025R0Headers()); + } + + public DocGenTemplateBaseV2025R0 createDocgenTemplateV2025R0( + DocGenTemplateCreateRequestV2025R0 requestBody, CreateDocgenTemplateV2025R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/docgen_templates"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), DocGenTemplateBaseV2025R0.class); + } + + public DocGenTemplatesV2025R0 getDocgenTemplatesV2025R0() { + return getDocgenTemplatesV2025R0( + new GetDocgenTemplatesV2025R0QueryParams(), new GetDocgenTemplatesV2025R0Headers()); + } + + public DocGenTemplatesV2025R0 getDocgenTemplatesV2025R0( + GetDocgenTemplatesV2025R0QueryParams queryParams) { + return getDocgenTemplatesV2025R0(queryParams, new GetDocgenTemplatesV2025R0Headers()); + } + + public DocGenTemplatesV2025R0 getDocgenTemplatesV2025R0( + GetDocgenTemplatesV2025R0Headers headers) { + return getDocgenTemplatesV2025R0(new GetDocgenTemplatesV2025R0QueryParams(), headers); + } + + public DocGenTemplatesV2025R0 getDocgenTemplatesV2025R0( + GetDocgenTemplatesV2025R0QueryParams queryParams, GetDocgenTemplatesV2025R0Headers headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/docgen_templates"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), DocGenTemplatesV2025R0.class); + } + + public void deleteDocgenTemplateByIdV2025R0(String templateId) { + deleteDocgenTemplateByIdV2025R0(templateId, new DeleteDocgenTemplateByIdV2025R0Headers()); + } + + public void deleteDocgenTemplateByIdV2025R0( + String templateId, DeleteDocgenTemplateByIdV2025R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/docgen_templates/", + convertToString(templateId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public DocGenTemplateV2025R0 getDocgenTemplateByIdV2025R0(String templateId) { + return getDocgenTemplateByIdV2025R0(templateId, new GetDocgenTemplateByIdV2025R0Headers()); + } + + public DocGenTemplateV2025R0 getDocgenTemplateByIdV2025R0( + String templateId, GetDocgenTemplateByIdV2025R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/docgen_templates/", + convertToString(templateId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), DocGenTemplateV2025R0.class); + } + + public DocGenTagsV2025R0 getDocgenTemplateTagsV2025R0(String templateId) { + return getDocgenTemplateTagsV2025R0( + templateId, + new GetDocgenTemplateTagsV2025R0QueryParams(), + new GetDocgenTemplateTagsV2025R0Headers()); + } + + public DocGenTagsV2025R0 getDocgenTemplateTagsV2025R0( + String templateId, GetDocgenTemplateTagsV2025R0QueryParams queryParams) { + return getDocgenTemplateTagsV2025R0( + templateId, queryParams, new GetDocgenTemplateTagsV2025R0Headers()); + } + + public DocGenTagsV2025R0 getDocgenTemplateTagsV2025R0( + String templateId, GetDocgenTemplateTagsV2025R0Headers headers) { + return getDocgenTemplateTagsV2025R0( + templateId, new GetDocgenTemplateTagsV2025R0QueryParams(), headers); + } + + public DocGenTagsV2025R0 getDocgenTemplateTagsV2025R0( + String templateId, + GetDocgenTemplateTagsV2025R0QueryParams queryParams, + GetDocgenTemplateTagsV2025R0Headers headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("template_version_id", convertToString(queryParams.getTemplateVersionId())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/docgen_templates/", + convertToString(templateId), + "/tags"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), DocGenTagsV2025R0.class); + } + + public DocGenJobsV2025R0 getDocgenTemplateJobByIdV2025R0(String templateId) { + return getDocgenTemplateJobByIdV2025R0( + templateId, + new GetDocgenTemplateJobByIdV2025R0QueryParams(), + new GetDocgenTemplateJobByIdV2025R0Headers()); + } + + public DocGenJobsV2025R0 getDocgenTemplateJobByIdV2025R0( + String templateId, GetDocgenTemplateJobByIdV2025R0QueryParams queryParams) { + return getDocgenTemplateJobByIdV2025R0( + templateId, queryParams, new GetDocgenTemplateJobByIdV2025R0Headers()); + } + + public DocGenJobsV2025R0 getDocgenTemplateJobByIdV2025R0( + String templateId, GetDocgenTemplateJobByIdV2025R0Headers headers) { + return getDocgenTemplateJobByIdV2025R0( + templateId, new GetDocgenTemplateJobByIdV2025R0QueryParams(), headers); + } + + public DocGenJobsV2025R0 getDocgenTemplateJobByIdV2025R0( + String templateId, + GetDocgenTemplateJobByIdV2025R0QueryParams queryParams, + GetDocgenTemplateJobByIdV2025R0Headers headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/docgen_template_jobs/", + convertToString(templateId)), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), DocGenJobsV2025R0.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public DocgenTemplateManager build() { + return new DocgenTemplateManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateByIdV2025R0Headers.java new file mode 100644 index 000000000..d94d8ce3a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateByIdV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.docgentemplate; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class GetDocgenTemplateByIdV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public GetDocgenTemplateByIdV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected GetDocgenTemplateByIdV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetDocgenTemplateByIdV2025R0Headers build() { + return new GetDocgenTemplateByIdV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateJobByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateJobByIdV2025R0Headers.java new file mode 100644 index 000000000..b37248857 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateJobByIdV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.docgentemplate; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class GetDocgenTemplateJobByIdV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public GetDocgenTemplateJobByIdV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected GetDocgenTemplateJobByIdV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetDocgenTemplateJobByIdV2025R0Headers build() { + return new GetDocgenTemplateJobByIdV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateJobByIdV2025R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateJobByIdV2025R0QueryParams.java new file mode 100644 index 000000000..bcd4c9b43 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateJobByIdV2025R0QueryParams.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.docgentemplate; + +public class GetDocgenTemplateJobByIdV2025R0QueryParams { + + public String marker; + + public Long limit; + + public GetDocgenTemplateJobByIdV2025R0QueryParams() {} + + protected GetDocgenTemplateJobByIdV2025R0QueryParams(Builder builder) { + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected String marker; + + protected Long limit; + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetDocgenTemplateJobByIdV2025R0QueryParams build() { + return new GetDocgenTemplateJobByIdV2025R0QueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateTagsV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateTagsV2025R0Headers.java new file mode 100644 index 000000000..6a5e382aa --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateTagsV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.docgentemplate; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class GetDocgenTemplateTagsV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public GetDocgenTemplateTagsV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected GetDocgenTemplateTagsV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetDocgenTemplateTagsV2025R0Headers build() { + return new GetDocgenTemplateTagsV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateTagsV2025R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateTagsV2025R0QueryParams.java new file mode 100644 index 000000000..131c8d6b1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateTagsV2025R0QueryParams.java @@ -0,0 +1,58 @@ +package com.box.sdkgen.managers.docgentemplate; + +public class GetDocgenTemplateTagsV2025R0QueryParams { + + public String templateVersionId; + + public String marker; + + public Long limit; + + public GetDocgenTemplateTagsV2025R0QueryParams() {} + + protected GetDocgenTemplateTagsV2025R0QueryParams(Builder builder) { + this.templateVersionId = builder.templateVersionId; + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getTemplateVersionId() { + return templateVersionId; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected String templateVersionId; + + protected String marker; + + protected Long limit; + + public Builder templateVersionId(String templateVersionId) { + this.templateVersionId = templateVersionId; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetDocgenTemplateTagsV2025R0QueryParams build() { + return new GetDocgenTemplateTagsV2025R0QueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplatesV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplatesV2025R0Headers.java new file mode 100644 index 000000000..ee7186928 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplatesV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.docgentemplate; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class GetDocgenTemplatesV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public GetDocgenTemplatesV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected GetDocgenTemplatesV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetDocgenTemplatesV2025R0Headers build() { + return new GetDocgenTemplatesV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplatesV2025R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplatesV2025R0QueryParams.java new file mode 100644 index 000000000..188b0ab5b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplatesV2025R0QueryParams.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.docgentemplate; + +public class GetDocgenTemplatesV2025R0QueryParams { + + public String marker; + + public Long limit; + + public GetDocgenTemplatesV2025R0QueryParams() {} + + protected GetDocgenTemplatesV2025R0QueryParams(Builder builder) { + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected String marker; + + protected Long limit; + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetDocgenTemplatesV2025R0QueryParams build() { + return new GetDocgenTemplatesV2025R0QueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileHeaders.java b/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileHeaders.java new file mode 100644 index 000000000..bbf225f88 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileHeaders.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.managers.downloads; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DownloadFileHeaders { + + public String range; + + public String boxapi; + + public Map extraHeaders; + + public DownloadFileHeaders() { + this.extraHeaders = mapOf(); + } + + protected DownloadFileHeaders(Builder builder) { + this.range = builder.range; + this.boxapi = builder.boxapi; + this.extraHeaders = builder.extraHeaders; + } + + public String getRange() { + return range; + } + + public String getBoxapi() { + return boxapi; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected String range; + + protected String boxapi; + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder range(String range) { + this.range = range; + return this; + } + + public Builder boxapi(String boxapi) { + this.boxapi = boxapi; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DownloadFileHeaders build() { + return new DownloadFileHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileQueryParams.java b/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileQueryParams.java new file mode 100644 index 000000000..6fba9975c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileQueryParams.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.downloads; + +public class DownloadFileQueryParams { + + public String version; + + public String accessToken; + + public DownloadFileQueryParams() {} + + protected DownloadFileQueryParams(Builder builder) { + this.version = builder.version; + this.accessToken = builder.accessToken; + } + + public String getVersion() { + return version; + } + + public String getAccessToken() { + return accessToken; + } + + public static class Builder { + + protected String version; + + protected String accessToken; + + public Builder version(String version) { + this.version = version; + return this; + } + + public Builder accessToken(String accessToken) { + this.accessToken = accessToken; + return this; + } + + public DownloadFileQueryParams build() { + return new DownloadFileQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileToOutputStreamHeaders.java b/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileToOutputStreamHeaders.java new file mode 100644 index 000000000..6519b1e0a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileToOutputStreamHeaders.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.managers.downloads; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DownloadFileToOutputStreamHeaders { + + public String range; + + public String boxapi; + + public Map extraHeaders; + + public DownloadFileToOutputStreamHeaders() { + this.extraHeaders = mapOf(); + } + + protected DownloadFileToOutputStreamHeaders(Builder builder) { + this.range = builder.range; + this.boxapi = builder.boxapi; + this.extraHeaders = builder.extraHeaders; + } + + public String getRange() { + return range; + } + + public String getBoxapi() { + return boxapi; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected String range; + + protected String boxapi; + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder range(String range) { + this.range = range; + return this; + } + + public Builder boxapi(String boxapi) { + this.boxapi = boxapi; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DownloadFileToOutputStreamHeaders build() { + return new DownloadFileToOutputStreamHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileToOutputStreamQueryParams.java b/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileToOutputStreamQueryParams.java new file mode 100644 index 000000000..7f6fdff98 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileToOutputStreamQueryParams.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.downloads; + +public class DownloadFileToOutputStreamQueryParams { + + public String version; + + public String accessToken; + + public DownloadFileToOutputStreamQueryParams() {} + + protected DownloadFileToOutputStreamQueryParams(Builder builder) { + this.version = builder.version; + this.accessToken = builder.accessToken; + } + + public String getVersion() { + return version; + } + + public String getAccessToken() { + return accessToken; + } + + public static class Builder { + + protected String version; + + protected String accessToken; + + public Builder version(String version) { + this.version = version; + return this; + } + + public Builder accessToken(String accessToken) { + this.accessToken = accessToken; + return this; + } + + public DownloadFileToOutputStreamQueryParams build() { + return new DownloadFileToOutputStreamQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/downloads/DownloadsManager.java b/src/main/java/com/box/sdkgen/managers/downloads/DownloadsManager.java new file mode 100644 index 000000000..899cd9ee9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/downloads/DownloadsManager.java @@ -0,0 +1,212 @@ +package com.box.sdkgen.managers.downloads; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; +import static com.box.sdkgen.internal.utils.UtilsManager.writeInputStreamToOutputStream; + +import com.box.sdkgen.box.errors.BoxSDKError; +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.Map; + +public class DownloadsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public DownloadsManager() { + this.networkSession = new NetworkSession(); + } + + protected DownloadsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public String getDownloadFileUrl(String fileId) { + return getDownloadFileUrl( + fileId, new GetDownloadFileUrlQueryParams(), new GetDownloadFileUrlHeaders()); + } + + public String getDownloadFileUrl(String fileId, GetDownloadFileUrlQueryParams queryParams) { + return getDownloadFileUrl(fileId, queryParams, new GetDownloadFileUrlHeaders()); + } + + public String getDownloadFileUrl(String fileId, GetDownloadFileUrlHeaders headers) { + return getDownloadFileUrl(fileId, new GetDownloadFileUrlQueryParams(), headers); + } + + public String getDownloadFileUrl( + String fileId, GetDownloadFileUrlQueryParams queryParams, GetDownloadFileUrlHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("version", convertToString(queryParams.getVersion())), + entryOf("access_token", convertToString(queryParams.getAccessToken())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf( + entryOf("range", convertToString(headers.getRange())), + entryOf("boxapi", convertToString(headers.getBoxapi()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/content"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .followRedirects(false) + .build()); + if (response.getHeaders().containsKey("location")) { + return response.getHeaders().get("location"); + } + if (response.getHeaders().containsKey("Location")) { + return response.getHeaders().get("Location"); + } + throw new BoxSDKError("No location header in response"); + } + + public InputStream downloadFile(String fileId) { + return downloadFile(fileId, new DownloadFileQueryParams(), new DownloadFileHeaders()); + } + + public InputStream downloadFile(String fileId, DownloadFileQueryParams queryParams) { + return downloadFile(fileId, queryParams, new DownloadFileHeaders()); + } + + public InputStream downloadFile(String fileId, DownloadFileHeaders headers) { + return downloadFile(fileId, new DownloadFileQueryParams(), headers); + } + + public InputStream downloadFile( + String fileId, DownloadFileQueryParams queryParams, DownloadFileHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("version", convertToString(queryParams.getVersion())), + entryOf("access_token", convertToString(queryParams.getAccessToken())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf( + entryOf("range", convertToString(headers.getRange())), + entryOf("boxapi", convertToString(headers.getBoxapi()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/content"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.BINARY) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + if (convertToString(response.getStatus()).equals("202")) { + return null; + } + return response.getContent(); + } + + public void downloadFileToOutputStream(String fileId, OutputStream outputStream) { + downloadFileToOutputStream( + fileId, + outputStream, + new DownloadFileToOutputStreamQueryParams(), + new DownloadFileToOutputStreamHeaders()); + } + + public void downloadFileToOutputStream( + String fileId, OutputStream outputStream, DownloadFileToOutputStreamQueryParams queryParams) { + downloadFileToOutputStream( + fileId, outputStream, queryParams, new DownloadFileToOutputStreamHeaders()); + } + + public void downloadFileToOutputStream( + String fileId, OutputStream outputStream, DownloadFileToOutputStreamHeaders headers) { + downloadFileToOutputStream( + fileId, outputStream, new DownloadFileToOutputStreamQueryParams(), headers); + } + + public void downloadFileToOutputStream( + String fileId, + OutputStream outputStream, + DownloadFileToOutputStreamQueryParams queryParams, + DownloadFileToOutputStreamHeaders headers) { + InputStream downloadStream = + this.downloadFile( + fileId, + new DownloadFileQueryParams.Builder() + .version(queryParams.getVersion()) + .accessToken(queryParams.getAccessToken()) + .build(), + new DownloadFileHeaders.Builder() + .range(headers.getRange()) + .boxapi(headers.getBoxapi()) + .extraHeaders(headers.getExtraHeaders()) + .build()); + writeInputStreamToOutputStream(downloadStream, outputStream); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public DownloadsManager build() { + return new DownloadsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/downloads/GetDownloadFileUrlHeaders.java b/src/main/java/com/box/sdkgen/managers/downloads/GetDownloadFileUrlHeaders.java new file mode 100644 index 000000000..d1d706f70 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/downloads/GetDownloadFileUrlHeaders.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.managers.downloads; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetDownloadFileUrlHeaders { + + public String range; + + public String boxapi; + + public Map extraHeaders; + + public GetDownloadFileUrlHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetDownloadFileUrlHeaders(Builder builder) { + this.range = builder.range; + this.boxapi = builder.boxapi; + this.extraHeaders = builder.extraHeaders; + } + + public String getRange() { + return range; + } + + public String getBoxapi() { + return boxapi; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected String range; + + protected String boxapi; + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder range(String range) { + this.range = range; + return this; + } + + public Builder boxapi(String boxapi) { + this.boxapi = boxapi; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetDownloadFileUrlHeaders build() { + return new GetDownloadFileUrlHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/downloads/GetDownloadFileUrlQueryParams.java b/src/main/java/com/box/sdkgen/managers/downloads/GetDownloadFileUrlQueryParams.java new file mode 100644 index 000000000..7122d5c7a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/downloads/GetDownloadFileUrlQueryParams.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.downloads; + +public class GetDownloadFileUrlQueryParams { + + public String version; + + public String accessToken; + + public GetDownloadFileUrlQueryParams() {} + + protected GetDownloadFileUrlQueryParams(Builder builder) { + this.version = builder.version; + this.accessToken = builder.accessToken; + } + + public String getVersion() { + return version; + } + + public String getAccessToken() { + return accessToken; + } + + public static class Builder { + + protected String version; + + protected String accessToken; + + public Builder version(String version) { + this.version = version; + return this; + } + + public Builder accessToken(String accessToken) { + this.accessToken = accessToken; + return this; + } + + public GetDownloadFileUrlQueryParams build() { + return new GetDownloadFileUrlQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/emailaliases/CreateUserEmailAliasHeaders.java b/src/main/java/com/box/sdkgen/managers/emailaliases/CreateUserEmailAliasHeaders.java new file mode 100644 index 000000000..17eb4af4c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/emailaliases/CreateUserEmailAliasHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.emailaliases; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateUserEmailAliasHeaders { + + public Map extraHeaders; + + public CreateUserEmailAliasHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateUserEmailAliasHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateUserEmailAliasHeaders build() { + return new CreateUserEmailAliasHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/emailaliases/CreateUserEmailAliasRequestBody.java b/src/main/java/com/box/sdkgen/managers/emailaliases/CreateUserEmailAliasRequestBody.java new file mode 100644 index 000000000..588be0de5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/emailaliases/CreateUserEmailAliasRequestBody.java @@ -0,0 +1,43 @@ +package com.box.sdkgen.managers.emailaliases; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateUserEmailAliasRequestBody extends SerializableObject { + + protected final String email; + + public CreateUserEmailAliasRequestBody(@JsonProperty("email") String email) { + super(); + this.email = email; + } + + public String getEmail() { + return email; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateUserEmailAliasRequestBody casted = (CreateUserEmailAliasRequestBody) o; + return Objects.equals(email, casted.email); + } + + @Override + public int hashCode() { + return Objects.hash(email); + } + + @Override + public String toString() { + return "CreateUserEmailAliasRequestBody{" + "email='" + email + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/emailaliases/DeleteUserEmailAliasByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/emailaliases/DeleteUserEmailAliasByIdHeaders.java new file mode 100644 index 000000000..bd9d674a6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/emailaliases/DeleteUserEmailAliasByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.emailaliases; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteUserEmailAliasByIdHeaders { + + public Map extraHeaders; + + public DeleteUserEmailAliasByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteUserEmailAliasByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteUserEmailAliasByIdHeaders build() { + return new DeleteUserEmailAliasByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/emailaliases/EmailAliasesManager.java b/src/main/java/com/box/sdkgen/managers/emailaliases/EmailAliasesManager.java new file mode 100644 index 000000000..d1a0c5065 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/emailaliases/EmailAliasesManager.java @@ -0,0 +1,150 @@ +package com.box.sdkgen.managers.emailaliases; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.emailalias.EmailAlias; +import com.box.sdkgen.schemas.emailaliases.EmailAliases; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class EmailAliasesManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public EmailAliasesManager() { + this.networkSession = new NetworkSession(); + } + + protected EmailAliasesManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public EmailAliases getUserEmailAliases(String userId) { + return getUserEmailAliases(userId, new GetUserEmailAliasesHeaders()); + } + + public EmailAliases getUserEmailAliases(String userId, GetUserEmailAliasesHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/users/", + convertToString(userId), + "/email_aliases"), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), EmailAliases.class); + } + + public EmailAlias createUserEmailAlias( + String userId, CreateUserEmailAliasRequestBody requestBody) { + return createUserEmailAlias(userId, requestBody, new CreateUserEmailAliasHeaders()); + } + + public EmailAlias createUserEmailAlias( + String userId, + CreateUserEmailAliasRequestBody requestBody, + CreateUserEmailAliasHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/users/", + convertToString(userId), + "/email_aliases"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), EmailAlias.class); + } + + public void deleteUserEmailAliasById(String userId, String emailAliasId) { + deleteUserEmailAliasById(userId, emailAliasId, new DeleteUserEmailAliasByIdHeaders()); + } + + public void deleteUserEmailAliasById( + String userId, String emailAliasId, DeleteUserEmailAliasByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/users/", + convertToString(userId), + "/email_aliases/", + convertToString(emailAliasId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public EmailAliasesManager build() { + return new EmailAliasesManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/emailaliases/GetUserEmailAliasesHeaders.java b/src/main/java/com/box/sdkgen/managers/emailaliases/GetUserEmailAliasesHeaders.java new file mode 100644 index 000000000..a1bdd4bec --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/emailaliases/GetUserEmailAliasesHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.emailaliases; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetUserEmailAliasesHeaders { + + public Map extraHeaders; + + public GetUserEmailAliasesHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetUserEmailAliasesHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetUserEmailAliasesHeaders build() { + return new GetUserEmailAliasesHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/events/EventsManager.java b/src/main/java/com/box/sdkgen/managers/events/EventsManager.java new file mode 100644 index 000000000..6c608b7c8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/events/EventsManager.java @@ -0,0 +1,128 @@ +package com.box.sdkgen.managers.events; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.events.Events; +import com.box.sdkgen.schemas.realtimeservers.RealtimeServers; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class EventsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public EventsManager() { + this.networkSession = new NetworkSession(); + } + + protected EventsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public RealtimeServers getEventsWithLongPolling() { + return getEventsWithLongPolling(new GetEventsWithLongPollingHeaders()); + } + + public RealtimeServers getEventsWithLongPolling(GetEventsWithLongPollingHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/events"), + "OPTIONS") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), RealtimeServers.class); + } + + public Events getEvents() { + return getEvents(new GetEventsQueryParams(), new GetEventsHeaders()); + } + + public Events getEvents(GetEventsQueryParams queryParams) { + return getEvents(queryParams, new GetEventsHeaders()); + } + + public Events getEvents(GetEventsHeaders headers) { + return getEvents(new GetEventsQueryParams(), headers); + } + + public Events getEvents(GetEventsQueryParams queryParams, GetEventsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("stream_type", convertToString(queryParams.getStreamType())), + entryOf("stream_position", convertToString(queryParams.getStreamPosition())), + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf("event_type", convertToString(queryParams.getEventType())), + entryOf("created_after", convertToString(queryParams.getCreatedAfter())), + entryOf("created_before", convertToString(queryParams.getCreatedBefore())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/events"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Events.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public EventsManager build() { + return new EventsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventsHeaders.java b/src/main/java/com/box/sdkgen/managers/events/GetEventsHeaders.java new file mode 100644 index 000000000..60984a069 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.events; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetEventsHeaders { + + public Map extraHeaders; + + public GetEventsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetEventsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetEventsHeaders build() { + return new GetEventsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParams.java b/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParams.java new file mode 100644 index 000000000..5470f5e47 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParams.java @@ -0,0 +1,171 @@ +package com.box.sdkgen.managers.events; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class GetEventsQueryParams { + + public EnumWrapper streamType; + + public String streamPosition; + + public Long limit; + + public List> eventType; + + public Date createdAfter; + + public Date createdBefore; + + public GetEventsQueryParams() {} + + protected GetEventsQueryParams(Builder builder) { + this.streamType = builder.streamType; + this.streamPosition = builder.streamPosition; + this.limit = builder.limit; + this.eventType = builder.eventType; + this.createdAfter = builder.createdAfter; + this.createdBefore = builder.createdBefore; + } + + public EnumWrapper getStreamType() { + return streamType; + } + + public String getStreamPosition() { + return streamPosition; + } + + public Long getLimit() { + return limit; + } + + public List> getEventType() { + return eventType; + } + + public Date getCreatedAfter() { + return createdAfter; + } + + public Date getCreatedBefore() { + return createdBefore; + } + + public static class Builder { + + protected EnumWrapper streamType; + + protected String streamPosition; + + protected Long limit; + + protected List> eventType; + + protected Date createdAfter; + + protected Date createdBefore; + + public Builder streamType(GetEventsQueryParamsStreamTypeField streamType) { + this.streamType = new EnumWrapper(streamType); + return this; + } + + public Builder streamType(EnumWrapper streamType) { + this.streamType = streamType; + return this; + } + + public Builder streamPosition(String streamPosition) { + this.streamPosition = streamPosition; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder eventType(List eventType) { + this.eventType = + EnumWrapper.wrapValuableEnumList(eventType, GetEventsQueryParamsEventTypeField.class); + return this; + } + + public Builder createdAfter(Date createdAfter) { + this.createdAfter = createdAfter; + return this; + } + + public Builder createdBefore(Date createdBefore) { + this.createdBefore = createdBefore; + return this; + } + + public GetEventsQueryParams build() { + return new GetEventsQueryParams(this); + } + } + + public static class EventTypeDeserializer + extends JsonDeserializer>> { + + public final JsonDeserializer> + elementDeserializer; + + public EventTypeDeserializer() { + super(); + this.elementDeserializer = + new GetEventsQueryParamsEventTypeField.GetEventsQueryParamsEventTypeFieldDeserializer(); + } + + @Override + public List> deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + JsonNode node = p.getCodec().readTree(p); + List> elements = new ArrayList<>(); + for (JsonNode item : node) { + JsonParser pa = item.traverse(p.getCodec()); + pa.nextToken(); + elements.add(elementDeserializer.deserialize(pa, ctxt)); + } + return elements; + } + } + + public static class EventTypeSerializer + extends JsonSerializer>> { + + public final JsonSerializer> elementSerializer; + + public EventTypeSerializer() { + super(); + this.elementSerializer = + new GetEventsQueryParamsEventTypeField.GetEventsQueryParamsEventTypeFieldSerializer(); + } + + @Override + public void serialize( + List> value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeStartArray(); + for (EnumWrapper item : value) { + elementSerializer.serialize(item, gen, serializers); + } + gen.writeEndArray(); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParamsEventTypeField.java b/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParamsEventTypeField.java new file mode 100644 index 000000000..b5ec4c8e7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParamsEventTypeField.java @@ -0,0 +1,176 @@ +package com.box.sdkgen.managers.events; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetEventsQueryParamsEventTypeField implements Valuable { + ACCESS_GRANTED("ACCESS_GRANTED"), + ACCESS_REVOKED("ACCESS_REVOKED"), + ADD_DEVICE_ASSOCIATION("ADD_DEVICE_ASSOCIATION"), + ADD_LOGIN_ACTIVITY_DEVICE("ADD_LOGIN_ACTIVITY_DEVICE"), + ADMIN_LOGIN("ADMIN_LOGIN"), + APPLICATION_CREATED("APPLICATION_CREATED"), + APPLICATION_PUBLIC_KEY_ADDED("APPLICATION_PUBLIC_KEY_ADDED"), + APPLICATION_PUBLIC_KEY_DELETED("APPLICATION_PUBLIC_KEY_DELETED"), + CHANGE_ADMIN_ROLE("CHANGE_ADMIN_ROLE"), + CHANGE_FOLDER_PERMISSION("CHANGE_FOLDER_PERMISSION"), + COLLABORATION_ACCEPT("COLLABORATION_ACCEPT"), + COLLABORATION_EXPIRATION("COLLABORATION_EXPIRATION"), + COLLABORATION_INVITE("COLLABORATION_INVITE"), + COLLABORATION_REMOVE("COLLABORATION_REMOVE"), + COLLABORATION_ROLE_CHANGE("COLLABORATION_ROLE_CHANGE"), + COMMENT_CREATE("COMMENT_CREATE"), + COMMENT_DELETE("COMMENT_DELETE"), + CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY("CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY"), + CONTENT_WORKFLOW_AUTOMATION_ADD("CONTENT_WORKFLOW_AUTOMATION_ADD"), + CONTENT_WORKFLOW_AUTOMATION_DELETE("CONTENT_WORKFLOW_AUTOMATION_DELETE"), + CONTENT_WORKFLOW_POLICY_ADD("CONTENT_WORKFLOW_POLICY_ADD"), + CONTENT_WORKFLOW_SHARING_POLICY_VIOLATION("CONTENT_WORKFLOW_SHARING_POLICY_VIOLATION"), + CONTENT_WORKFLOW_UPLOAD_POLICY_VIOLATION("CONTENT_WORKFLOW_UPLOAD_POLICY_VIOLATION"), + COPY("COPY"), + DATA_RETENTION_CREATE_RETENTION("DATA_RETENTION_CREATE_RETENTION"), + DATA_RETENTION_REMOVE_RETENTION("DATA_RETENTION_REMOVE_RETENTION"), + DELETE("DELETE"), + DELETE_USER("DELETE_USER"), + DEVICE_TRUST_CHECK_FAILED("DEVICE_TRUST_CHECK_FAILED"), + DOWNLOAD("DOWNLOAD"), + EDIT("EDIT"), + EDIT_USER("EDIT_USER"), + EMAIL_ALIAS_CONFIRM("EMAIL_ALIAS_CONFIRM"), + EMAIL_ALIAS_REMOVE("EMAIL_ALIAS_REMOVE"), + ENTERPRISE_APP_AUTHORIZATION_UPDATE("ENTERPRISE_APP_AUTHORIZATION_UPDATE"), + EXTERNAL_COLLAB_SECURITY_SETTINGS("EXTERNAL_COLLAB_SECURITY_SETTINGS"), + FAILED_LOGIN("FAILED_LOGIN"), + FILE_MARKED_MALICIOUS("FILE_MARKED_MALICIOUS"), + FILE_WATERMARKED_DOWNLOAD("FILE_WATERMARKED_DOWNLOAD"), + GROUP_ADD_ITEM("GROUP_ADD_ITEM"), + GROUP_ADD_USER("GROUP_ADD_USER"), + GROUP_CREATION("GROUP_CREATION"), + GROUP_DELETION("GROUP_DELETION"), + GROUP_EDITED("GROUP_EDITED"), + GROUP_REMOVE_ITEM("GROUP_REMOVE_ITEM"), + GROUP_REMOVE_USER("GROUP_REMOVE_USER"), + ITEM_EMAIL_SEND("ITEM_EMAIL_SEND"), + ITEM_MODIFY("ITEM_MODIFY"), + ITEM_OPEN("ITEM_OPEN"), + ITEM_SHARED_UPDATE("ITEM_SHARED_UPDATE"), + ITEM_SYNC("ITEM_SYNC"), + ITEM_UNSYNC("ITEM_UNSYNC"), + LEGAL_HOLD_ASSIGNMENT_CREATE("LEGAL_HOLD_ASSIGNMENT_CREATE"), + LEGAL_HOLD_ASSIGNMENT_DELETE("LEGAL_HOLD_ASSIGNMENT_DELETE"), + LEGAL_HOLD_POLICY_CREATE("LEGAL_HOLD_POLICY_CREATE"), + LEGAL_HOLD_POLICY_DELETE("LEGAL_HOLD_POLICY_DELETE"), + LEGAL_HOLD_POLICY_UPDATE("LEGAL_HOLD_POLICY_UPDATE"), + LOCK("LOCK"), + LOGIN("LOGIN"), + METADATA_INSTANCE_CREATE("METADATA_INSTANCE_CREATE"), + METADATA_INSTANCE_DELETE("METADATA_INSTANCE_DELETE"), + METADATA_INSTANCE_UPDATE("METADATA_INSTANCE_UPDATE"), + METADATA_TEMPLATE_CREATE("METADATA_TEMPLATE_CREATE"), + METADATA_TEMPLATE_DELETE("METADATA_TEMPLATE_DELETE"), + METADATA_TEMPLATE_UPDATE("METADATA_TEMPLATE_UPDATE"), + MOVE("MOVE"), + NEW_USER("NEW_USER"), + OAUTH2_ACCESS_TOKEN_REVOKE("OAUTH2_ACCESS_TOKEN_REVOKE"), + PREVIEW("PREVIEW"), + REMOVE_DEVICE_ASSOCIATION("REMOVE_DEVICE_ASSOCIATION"), + REMOVE_LOGIN_ACTIVITY_DEVICE("REMOVE_LOGIN_ACTIVITY_DEVICE"), + RENAME("RENAME"), + RETENTION_POLICY_ASSIGNMENT_ADD("RETENTION_POLICY_ASSIGNMENT_ADD"), + SHARE("SHARE"), + SHARED_LINK_SEND("SHARED_LINK_SEND"), + SHARE_EXPIRATION("SHARE_EXPIRATION"), + SHIELD_ALERT("SHIELD_ALERT"), + SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED("SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED"), + SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED_MISSING_JUSTIFICATION( + "SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED_MISSING_JUSTIFICATION"), + SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED("SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED"), + SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED_MISSING_JUSTIFICATION( + "SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED_MISSING_JUSTIFICATION"), + SHIELD_JUSTIFICATION_APPROVAL("SHIELD_JUSTIFICATION_APPROVAL"), + SHIELD_SHARED_LINK_ACCESS_BLOCKED("SHIELD_SHARED_LINK_ACCESS_BLOCKED"), + SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_CREATE("SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_CREATE"), + SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_UPDATE("SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_UPDATE"), + SIGN_DOCUMENT_ASSIGNED("SIGN_DOCUMENT_ASSIGNED"), + SIGN_DOCUMENT_CANCELLED("SIGN_DOCUMENT_CANCELLED"), + SIGN_DOCUMENT_COMPLETED("SIGN_DOCUMENT_COMPLETED"), + SIGN_DOCUMENT_CONVERTED("SIGN_DOCUMENT_CONVERTED"), + SIGN_DOCUMENT_CREATED("SIGN_DOCUMENT_CREATED"), + SIGN_DOCUMENT_DECLINED("SIGN_DOCUMENT_DECLINED"), + SIGN_DOCUMENT_EXPIRED("SIGN_DOCUMENT_EXPIRED"), + SIGN_DOCUMENT_SIGNED("SIGN_DOCUMENT_SIGNED"), + SIGN_DOCUMENT_VIEWED_BY_SIGNED("SIGN_DOCUMENT_VIEWED_BY_SIGNED"), + SIGNER_DOWNLOADED("SIGNER_DOWNLOADED"), + SIGNER_FORWARDED("SIGNER_FORWARDED"), + STORAGE_EXPIRATION("STORAGE_EXPIRATION"), + TASK_ASSIGNMENT_CREATE("TASK_ASSIGNMENT_CREATE"), + TASK_ASSIGNMENT_DELETE("TASK_ASSIGNMENT_DELETE"), + TASK_ASSIGNMENT_UPDATE("TASK_ASSIGNMENT_UPDATE"), + TASK_CREATE("TASK_CREATE"), + TASK_UPDATE("TASK_UPDATE"), + TERMS_OF_SERVICE_ACCEPT("TERMS_OF_SERVICE_ACCEPT"), + TERMS_OF_SERVICE_REJECT("TERMS_OF_SERVICE_REJECT"), + UNDELETE("UNDELETE"), + UNLOCK("UNLOCK"), + UNSHARE("UNSHARE"), + UPDATE_COLLABORATION_EXPIRATION("UPDATE_COLLABORATION_EXPIRATION"), + UPDATE_SHARE_EXPIRATION("UPDATE_SHARE_EXPIRATION"), + UPLOAD("UPLOAD"), + USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE("USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE"), + WATERMARK_LABEL_CREATE("WATERMARK_LABEL_CREATE"), + WATERMARK_LABEL_DELETE("WATERMARK_LABEL_DELETE"); + + private final String value; + + GetEventsQueryParamsEventTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetEventsQueryParamsEventTypeFieldDeserializer + extends JsonDeserializer> { + + public GetEventsQueryParamsEventTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetEventsQueryParamsEventTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetEventsQueryParamsEventTypeFieldSerializer + extends JsonSerializer> { + + public GetEventsQueryParamsEventTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParamsStreamTypeField.java b/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParamsStreamTypeField.java new file mode 100644 index 000000000..ccbcfc95f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParamsStreamTypeField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.managers.events; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetEventsQueryParamsStreamTypeField implements Valuable { + ALL("all"), + CHANGES("changes"), + SYNC("sync"), + ADMIN_LOGS("admin_logs"), + ADMIN_LOGS_STREAMING("admin_logs_streaming"); + + private final String value; + + GetEventsQueryParamsStreamTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetEventsQueryParamsStreamTypeFieldDeserializer + extends JsonDeserializer> { + + public GetEventsQueryParamsStreamTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetEventsQueryParamsStreamTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetEventsQueryParamsStreamTypeFieldSerializer + extends JsonSerializer> { + + public GetEventsQueryParamsStreamTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventsWithLongPollingHeaders.java b/src/main/java/com/box/sdkgen/managers/events/GetEventsWithLongPollingHeaders.java new file mode 100644 index 000000000..283f0e7f0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventsWithLongPollingHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.events; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetEventsWithLongPollingHeaders { + + public Map extraHeaders; + + public GetEventsWithLongPollingHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetEventsWithLongPollingHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetEventsWithLongPollingHeaders build() { + return new GetEventsWithLongPollingHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/AddClassificationToFileHeaders.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/AddClassificationToFileHeaders.java new file mode 100644 index 000000000..8f30db593 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/AddClassificationToFileHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.fileclassifications; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class AddClassificationToFileHeaders { + + public Map extraHeaders; + + public AddClassificationToFileHeaders() { + this.extraHeaders = mapOf(); + } + + protected AddClassificationToFileHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public AddClassificationToFileHeaders build() { + return new AddClassificationToFileHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/AddClassificationToFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/AddClassificationToFileRequestBody.java new file mode 100644 index 000000000..585d30c81 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/AddClassificationToFileRequestBody.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.managers.fileclassifications; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AddClassificationToFileRequestBody extends SerializableObject { + + @JsonProperty("Box__Security__Classification__Key") + protected String boxSecurityClassificationKey; + + public AddClassificationToFileRequestBody() { + super(); + } + + protected AddClassificationToFileRequestBody(Builder builder) { + super(); + this.boxSecurityClassificationKey = builder.boxSecurityClassificationKey; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getBoxSecurityClassificationKey() { + return boxSecurityClassificationKey; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddClassificationToFileRequestBody casted = (AddClassificationToFileRequestBody) o; + return Objects.equals(boxSecurityClassificationKey, casted.boxSecurityClassificationKey); + } + + @Override + public int hashCode() { + return Objects.hash(boxSecurityClassificationKey); + } + + @Override + public String toString() { + return "AddClassificationToFileRequestBody{" + + "boxSecurityClassificationKey='" + + boxSecurityClassificationKey + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String boxSecurityClassificationKey; + + public Builder boxSecurityClassificationKey(String boxSecurityClassificationKey) { + this.boxSecurityClassificationKey = boxSecurityClassificationKey; + return this; + } + + public AddClassificationToFileRequestBody build() { + return new AddClassificationToFileRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/DeleteClassificationFromFileHeaders.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/DeleteClassificationFromFileHeaders.java new file mode 100644 index 000000000..b9b264cc2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/DeleteClassificationFromFileHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.fileclassifications; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteClassificationFromFileHeaders { + + public Map extraHeaders; + + public DeleteClassificationFromFileHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteClassificationFromFileHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteClassificationFromFileHeaders build() { + return new DeleteClassificationFromFileHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/FileClassificationsManager.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/FileClassificationsManager.java new file mode 100644 index 000000000..6e6d0eb00 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/FileClassificationsManager.java @@ -0,0 +1,192 @@ +package com.box.sdkgen.managers.fileclassifications; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.classification.Classification; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.List; +import java.util.Map; + +public class FileClassificationsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public FileClassificationsManager() { + this.networkSession = new NetworkSession(); + } + + protected FileClassificationsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public Classification getClassificationOnFile(String fileId) { + return getClassificationOnFile(fileId, new GetClassificationOnFileHeaders()); + } + + public Classification getClassificationOnFile( + String fileId, GetClassificationOnFileHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/metadata/enterprise/securityClassification-6VMVochwUWo"), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Classification.class); + } + + public Classification addClassificationToFile(String fileId) { + return addClassificationToFile( + fileId, new AddClassificationToFileRequestBody(), new AddClassificationToFileHeaders()); + } + + public Classification addClassificationToFile( + String fileId, AddClassificationToFileRequestBody requestBody) { + return addClassificationToFile(fileId, requestBody, new AddClassificationToFileHeaders()); + } + + public Classification addClassificationToFile( + String fileId, AddClassificationToFileHeaders headers) { + return addClassificationToFile(fileId, new AddClassificationToFileRequestBody(), headers); + } + + public Classification addClassificationToFile( + String fileId, + AddClassificationToFileRequestBody requestBody, + AddClassificationToFileHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/metadata/enterprise/securityClassification-6VMVochwUWo"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Classification.class); + } + + public Classification updateClassificationOnFile( + String fileId, List requestBody) { + return updateClassificationOnFile(fileId, requestBody, new UpdateClassificationOnFileHeaders()); + } + + public Classification updateClassificationOnFile( + String fileId, + List requestBody, + UpdateClassificationOnFileHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/metadata/enterprise/securityClassification-6VMVochwUWo"), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json-patch+json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Classification.class); + } + + public void deleteClassificationFromFile(String fileId) { + deleteClassificationFromFile(fileId, new DeleteClassificationFromFileHeaders()); + } + + public void deleteClassificationFromFile( + String fileId, DeleteClassificationFromFileHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/metadata/enterprise/securityClassification-6VMVochwUWo"), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public FileClassificationsManager build() { + return new FileClassificationsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/GetClassificationOnFileHeaders.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/GetClassificationOnFileHeaders.java new file mode 100644 index 000000000..8d0b096c1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/GetClassificationOnFileHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.fileclassifications; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetClassificationOnFileHeaders { + + public Map extraHeaders; + + public GetClassificationOnFileHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetClassificationOnFileHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetClassificationOnFileHeaders build() { + return new GetClassificationOnFileHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileHeaders.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileHeaders.java new file mode 100644 index 000000000..dd7bb02b5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.fileclassifications; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateClassificationOnFileHeaders { + + public Map extraHeaders; + + public UpdateClassificationOnFileHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateClassificationOnFileHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateClassificationOnFileHeaders build() { + return new UpdateClassificationOnFileHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBody.java new file mode 100644 index 000000000..59b95cc2b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBody.java @@ -0,0 +1,147 @@ +package com.box.sdkgen.managers.fileclassifications; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateClassificationOnFileRequestBody extends SerializableObject { + + @JsonDeserialize( + using = + UpdateClassificationOnFileRequestBodyOpField + .UpdateClassificationOnFileRequestBodyOpFieldDeserializer.class) + @JsonSerialize( + using = + UpdateClassificationOnFileRequestBodyOpField + .UpdateClassificationOnFileRequestBodyOpFieldSerializer.class) + protected EnumWrapper op; + + @JsonDeserialize( + using = + UpdateClassificationOnFileRequestBodyPathField + .UpdateClassificationOnFileRequestBodyPathFieldDeserializer.class) + @JsonSerialize( + using = + UpdateClassificationOnFileRequestBodyPathField + .UpdateClassificationOnFileRequestBodyPathFieldSerializer.class) + protected EnumWrapper path; + + protected final String value; + + public UpdateClassificationOnFileRequestBody(@JsonProperty("value") String value) { + super(); + this.value = value; + this.op = + new EnumWrapper( + UpdateClassificationOnFileRequestBodyOpField.REPLACE); + this.path = + new EnumWrapper( + UpdateClassificationOnFileRequestBodyPathField._BOX__SECURITY__CLASSIFICATION__KEY); + } + + protected UpdateClassificationOnFileRequestBody(Builder builder) { + super(); + this.op = builder.op; + this.path = builder.path; + this.value = builder.value; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getOp() { + return op; + } + + public EnumWrapper getPath() { + return path; + } + + public String getValue() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateClassificationOnFileRequestBody casted = (UpdateClassificationOnFileRequestBody) o; + return Objects.equals(op, casted.op) + && Objects.equals(path, casted.path) + && Objects.equals(value, casted.value); + } + + @Override + public int hashCode() { + return Objects.hash(op, path, value); + } + + @Override + public String toString() { + return "UpdateClassificationOnFileRequestBody{" + + "op='" + + op + + '\'' + + ", " + + "path='" + + path + + '\'' + + ", " + + "value='" + + value + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper op; + + protected EnumWrapper path; + + protected final String value; + + public Builder(String value) { + super(); + this.value = value; + this.op = + new EnumWrapper( + UpdateClassificationOnFileRequestBodyOpField.REPLACE); + this.path = + new EnumWrapper( + UpdateClassificationOnFileRequestBodyPathField._BOX__SECURITY__CLASSIFICATION__KEY); + } + + public Builder op(UpdateClassificationOnFileRequestBodyOpField op) { + this.op = new EnumWrapper(op); + return this; + } + + public Builder op(EnumWrapper op) { + this.op = op; + return this; + } + + public Builder path(UpdateClassificationOnFileRequestBodyPathField path) { + this.path = new EnumWrapper(path); + return this; + } + + public Builder path(EnumWrapper path) { + this.path = path; + return this; + } + + public UpdateClassificationOnFileRequestBody build() { + return new UpdateClassificationOnFileRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBodyOpField.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBodyOpField.java new file mode 100644 index 000000000..6f9ad0bc2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBodyOpField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.fileclassifications; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateClassificationOnFileRequestBodyOpField implements Valuable { + REPLACE("replace"); + + private final String value; + + UpdateClassificationOnFileRequestBodyOpField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateClassificationOnFileRequestBodyOpFieldDeserializer + extends JsonDeserializer> { + + public UpdateClassificationOnFileRequestBodyOpFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateClassificationOnFileRequestBodyOpField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateClassificationOnFileRequestBodyOpFieldSerializer + extends JsonSerializer> { + + public UpdateClassificationOnFileRequestBodyOpFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBodyPathField.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBodyPathField.java new file mode 100644 index 000000000..4f9b2fee1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBodyPathField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.fileclassifications; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateClassificationOnFileRequestBodyPathField implements Valuable { + _BOX__SECURITY__CLASSIFICATION__KEY("/Box__Security__Classification__Key"); + + private final String value; + + UpdateClassificationOnFileRequestBodyPathField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateClassificationOnFileRequestBodyPathFieldDeserializer + extends JsonDeserializer> { + + public UpdateClassificationOnFileRequestBodyPathFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateClassificationOnFileRequestBodyPathField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateClassificationOnFileRequestBodyPathFieldSerializer + extends JsonSerializer> { + + public UpdateClassificationOnFileRequestBodyPathFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/CreateFileMetadataByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/filemetadata/CreateFileMetadataByIdHeaders.java new file mode 100644 index 000000000..4da67afc3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/CreateFileMetadataByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.filemetadata; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateFileMetadataByIdHeaders { + + public Map extraHeaders; + + public CreateFileMetadataByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateFileMetadataByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateFileMetadataByIdHeaders build() { + return new CreateFileMetadataByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/CreateFileMetadataByIdScope.java b/src/main/java/com/box/sdkgen/managers/filemetadata/CreateFileMetadataByIdScope.java new file mode 100644 index 000000000..bb9e96199 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/CreateFileMetadataByIdScope.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.filemetadata; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateFileMetadataByIdScope implements Valuable { + GLOBAL("global"), + ENTERPRISE("enterprise"); + + private final String value; + + CreateFileMetadataByIdScope(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateFileMetadataByIdScopeDeserializer + extends JsonDeserializer> { + + public CreateFileMetadataByIdScopeDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateFileMetadataByIdScope.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateFileMetadataByIdScopeSerializer + extends JsonSerializer> { + + public CreateFileMetadataByIdScopeSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/DeleteFileMetadataByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/filemetadata/DeleteFileMetadataByIdHeaders.java new file mode 100644 index 000000000..735166273 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/DeleteFileMetadataByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.filemetadata; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteFileMetadataByIdHeaders { + + public Map extraHeaders; + + public DeleteFileMetadataByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteFileMetadataByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteFileMetadataByIdHeaders build() { + return new DeleteFileMetadataByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/DeleteFileMetadataByIdScope.java b/src/main/java/com/box/sdkgen/managers/filemetadata/DeleteFileMetadataByIdScope.java new file mode 100644 index 000000000..0e8b0e064 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/DeleteFileMetadataByIdScope.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.filemetadata; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum DeleteFileMetadataByIdScope implements Valuable { + GLOBAL("global"), + ENTERPRISE("enterprise"); + + private final String value; + + DeleteFileMetadataByIdScope(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class DeleteFileMetadataByIdScopeDeserializer + extends JsonDeserializer> { + + public DeleteFileMetadataByIdScopeDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(DeleteFileMetadataByIdScope.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class DeleteFileMetadataByIdScopeSerializer + extends JsonSerializer> { + + public DeleteFileMetadataByIdScopeSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/FileMetadataManager.java b/src/main/java/com/box/sdkgen/managers/filemetadata/FileMetadataManager.java new file mode 100644 index 000000000..f775a5196 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/FileMetadataManager.java @@ -0,0 +1,241 @@ +package com.box.sdkgen.managers.filemetadata; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.metadatafull.MetadataFull; +import com.box.sdkgen.schemas.metadatas.Metadatas; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.List; +import java.util.Map; + +public class FileMetadataManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public FileMetadataManager() { + this.networkSession = new NetworkSession(); + } + + protected FileMetadataManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public Metadatas getFileMetadata(String fileId) { + return getFileMetadata(fileId, new GetFileMetadataHeaders()); + } + + public Metadatas getFileMetadata(String fileId, GetFileMetadataHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/metadata"), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Metadatas.class); + } + + public MetadataFull getFileMetadataById( + String fileId, GetFileMetadataByIdScope scope, String templateKey) { + return getFileMetadataById(fileId, scope, templateKey, new GetFileMetadataByIdHeaders()); + } + + public MetadataFull getFileMetadataById( + String fileId, + GetFileMetadataByIdScope scope, + String templateKey, + GetFileMetadataByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/metadata/", + convertToString(scope), + "/", + convertToString(templateKey)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataFull.class); + } + + public MetadataFull createFileMetadataById( + String fileId, + CreateFileMetadataByIdScope scope, + String templateKey, + Map requestBody) { + return createFileMetadataById( + fileId, scope, templateKey, requestBody, new CreateFileMetadataByIdHeaders()); + } + + public MetadataFull createFileMetadataById( + String fileId, + CreateFileMetadataByIdScope scope, + String templateKey, + Map requestBody, + CreateFileMetadataByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/metadata/", + convertToString(scope), + "/", + convertToString(templateKey)), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataFull.class); + } + + public MetadataFull updateFileMetadataById( + String fileId, + UpdateFileMetadataByIdScope scope, + String templateKey, + List requestBody) { + return updateFileMetadataById( + fileId, scope, templateKey, requestBody, new UpdateFileMetadataByIdHeaders()); + } + + public MetadataFull updateFileMetadataById( + String fileId, + UpdateFileMetadataByIdScope scope, + String templateKey, + List requestBody, + UpdateFileMetadataByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/metadata/", + convertToString(scope), + "/", + convertToString(templateKey)), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json-patch+json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataFull.class); + } + + public void deleteFileMetadataById( + String fileId, DeleteFileMetadataByIdScope scope, String templateKey) { + deleteFileMetadataById(fileId, scope, templateKey, new DeleteFileMetadataByIdHeaders()); + } + + public void deleteFileMetadataById( + String fileId, + DeleteFileMetadataByIdScope scope, + String templateKey, + DeleteFileMetadataByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/metadata/", + convertToString(scope), + "/", + convertToString(templateKey)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public FileMetadataManager build() { + return new FileMetadataManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdHeaders.java new file mode 100644 index 000000000..5d8d496ff --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.filemetadata; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFileMetadataByIdHeaders { + + public Map extraHeaders; + + public GetFileMetadataByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFileMetadataByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFileMetadataByIdHeaders build() { + return new GetFileMetadataByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdScope.java b/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdScope.java new file mode 100644 index 000000000..aa0bdc870 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdScope.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.filemetadata; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetFileMetadataByIdScope implements Valuable { + GLOBAL("global"), + ENTERPRISE("enterprise"); + + private final String value; + + GetFileMetadataByIdScope(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetFileMetadataByIdScopeDeserializer + extends JsonDeserializer> { + + public GetFileMetadataByIdScopeDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetFileMetadataByIdScope.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetFileMetadataByIdScopeSerializer + extends JsonSerializer> { + + public GetFileMetadataByIdScopeSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataHeaders.java b/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataHeaders.java new file mode 100644 index 000000000..b0abe7069 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.filemetadata; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFileMetadataHeaders { + + public Map extraHeaders; + + public GetFileMetadataHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFileMetadataHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFileMetadataHeaders build() { + return new GetFileMetadataHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdHeaders.java new file mode 100644 index 000000000..c7ba70f2c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.filemetadata; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateFileMetadataByIdHeaders { + + public Map extraHeaders; + + public UpdateFileMetadataByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateFileMetadataByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateFileMetadataByIdHeaders build() { + return new UpdateFileMetadataByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdRequestBody.java new file mode 100644 index 000000000..e6a299ba4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdRequestBody.java @@ -0,0 +1,161 @@ +package com.box.sdkgen.managers.filemetadata; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.metadatainstancevalue.MetadataInstanceValue; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateFileMetadataByIdRequestBody extends SerializableObject { + + @JsonDeserialize( + using = + UpdateFileMetadataByIdRequestBodyOpField + .UpdateFileMetadataByIdRequestBodyOpFieldDeserializer.class) + @JsonSerialize( + using = + UpdateFileMetadataByIdRequestBodyOpField + .UpdateFileMetadataByIdRequestBodyOpFieldSerializer.class) + protected EnumWrapper op; + + protected String path; + + protected MetadataInstanceValue value; + + protected String from; + + public UpdateFileMetadataByIdRequestBody() { + super(); + } + + protected UpdateFileMetadataByIdRequestBody(Builder builder) { + super(); + this.op = builder.op; + this.path = builder.path; + this.value = builder.value; + this.from = builder.from; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getOp() { + return op; + } + + public String getPath() { + return path; + } + + public MetadataInstanceValue getValue() { + return value; + } + + public String getFrom() { + return from; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateFileMetadataByIdRequestBody casted = (UpdateFileMetadataByIdRequestBody) o; + return Objects.equals(op, casted.op) + && Objects.equals(path, casted.path) + && Objects.equals(value, casted.value) + && Objects.equals(from, casted.from); + } + + @Override + public int hashCode() { + return Objects.hash(op, path, value, from); + } + + @Override + public String toString() { + return "UpdateFileMetadataByIdRequestBody{" + + "op='" + + op + + '\'' + + ", " + + "path='" + + path + + '\'' + + ", " + + "value='" + + value + + '\'' + + ", " + + "from='" + + from + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper op; + + protected String path; + + protected MetadataInstanceValue value; + + protected String from; + + public Builder op(UpdateFileMetadataByIdRequestBodyOpField op) { + this.op = new EnumWrapper(op); + return this; + } + + public Builder op(EnumWrapper op) { + this.op = op; + return this; + } + + public Builder path(String path) { + this.path = path; + return this; + } + + public Builder value(String value) { + this.value = new MetadataInstanceValue(value); + return this; + } + + public Builder value(long value) { + this.value = new MetadataInstanceValue(value); + return this; + } + + public Builder value(double value) { + this.value = new MetadataInstanceValue(value); + return this; + } + + public Builder value(List value) { + this.value = new MetadataInstanceValue(value); + return this; + } + + public Builder value(MetadataInstanceValue value) { + this.value = value; + return this; + } + + public Builder from(String from) { + this.from = from; + return this; + } + + public UpdateFileMetadataByIdRequestBody build() { + return new UpdateFileMetadataByIdRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdRequestBodyOpField.java b/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdRequestBodyOpField.java new file mode 100644 index 000000000..d7f9797db --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdRequestBodyOpField.java @@ -0,0 +1,67 @@ +package com.box.sdkgen.managers.filemetadata; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateFileMetadataByIdRequestBodyOpField implements Valuable { + ADD("add"), + REPLACE("replace"), + REMOVE("remove"), + TEST("test"), + MOVE("move"), + COPY("copy"); + + private final String value; + + UpdateFileMetadataByIdRequestBodyOpField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateFileMetadataByIdRequestBodyOpFieldDeserializer + extends JsonDeserializer> { + + public UpdateFileMetadataByIdRequestBodyOpFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateFileMetadataByIdRequestBodyOpField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateFileMetadataByIdRequestBodyOpFieldSerializer + extends JsonSerializer> { + + public UpdateFileMetadataByIdRequestBodyOpFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdScope.java b/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdScope.java new file mode 100644 index 000000000..51667ce45 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdScope.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.filemetadata; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateFileMetadataByIdScope implements Valuable { + GLOBAL("global"), + ENTERPRISE("enterprise"); + + private final String value; + + UpdateFileMetadataByIdScope(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateFileMetadataByIdScopeDeserializer + extends JsonDeserializer> { + + public UpdateFileMetadataByIdScopeDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateFileMetadataByIdScope.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateFileMetadataByIdScopeSerializer + extends JsonSerializer> { + + public UpdateFileMetadataByIdScopeSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filerequests/CreateFileRequestCopyHeaders.java b/src/main/java/com/box/sdkgen/managers/filerequests/CreateFileRequestCopyHeaders.java new file mode 100644 index 000000000..0054decc7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filerequests/CreateFileRequestCopyHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.filerequests; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateFileRequestCopyHeaders { + + public Map extraHeaders; + + public CreateFileRequestCopyHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateFileRequestCopyHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateFileRequestCopyHeaders build() { + return new CreateFileRequestCopyHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filerequests/DeleteFileRequestByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/filerequests/DeleteFileRequestByIdHeaders.java new file mode 100644 index 000000000..d72138ecb --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filerequests/DeleteFileRequestByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.filerequests; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteFileRequestByIdHeaders { + + public Map extraHeaders; + + public DeleteFileRequestByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteFileRequestByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteFileRequestByIdHeaders build() { + return new DeleteFileRequestByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filerequests/FileRequestsManager.java b/src/main/java/com/box/sdkgen/managers/filerequests/FileRequestsManager.java new file mode 100644 index 000000000..102ccc2b0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filerequests/FileRequestsManager.java @@ -0,0 +1,183 @@ +package com.box.sdkgen.managers.filerequests; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.filerequest.FileRequest; +import com.box.sdkgen.schemas.filerequestcopyrequest.FileRequestCopyRequest; +import com.box.sdkgen.schemas.filerequestupdaterequest.FileRequestUpdateRequest; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class FileRequestsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public FileRequestsManager() { + this.networkSession = new NetworkSession(); + } + + protected FileRequestsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public FileRequest getFileRequestById(String fileRequestId) { + return getFileRequestById(fileRequestId, new GetFileRequestByIdHeaders()); + } + + public FileRequest getFileRequestById(String fileRequestId, GetFileRequestByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/file_requests/", + convertToString(fileRequestId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FileRequest.class); + } + + public FileRequest updateFileRequestById( + String fileRequestId, FileRequestUpdateRequest requestBody) { + return updateFileRequestById(fileRequestId, requestBody, new UpdateFileRequestByIdHeaders()); + } + + public FileRequest updateFileRequestById( + String fileRequestId, + FileRequestUpdateRequest requestBody, + UpdateFileRequestByIdHeaders headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("if-match", convertToString(headers.getIfMatch()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/file_requests/", + convertToString(fileRequestId)), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FileRequest.class); + } + + public void deleteFileRequestById(String fileRequestId) { + deleteFileRequestById(fileRequestId, new DeleteFileRequestByIdHeaders()); + } + + public void deleteFileRequestById(String fileRequestId, DeleteFileRequestByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/file_requests/", + convertToString(fileRequestId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public FileRequest createFileRequestCopy( + String fileRequestId, FileRequestCopyRequest requestBody) { + return createFileRequestCopy(fileRequestId, requestBody, new CreateFileRequestCopyHeaders()); + } + + public FileRequest createFileRequestCopy( + String fileRequestId, + FileRequestCopyRequest requestBody, + CreateFileRequestCopyHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/file_requests/", + convertToString(fileRequestId), + "/copy"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FileRequest.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public FileRequestsManager build() { + return new FileRequestsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filerequests/GetFileRequestByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/filerequests/GetFileRequestByIdHeaders.java new file mode 100644 index 000000000..1033d3f1e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filerequests/GetFileRequestByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.filerequests; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFileRequestByIdHeaders { + + public Map extraHeaders; + + public GetFileRequestByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFileRequestByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFileRequestByIdHeaders build() { + return new GetFileRequestByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filerequests/UpdateFileRequestByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/filerequests/UpdateFileRequestByIdHeaders.java new file mode 100644 index 000000000..f31d19fe3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filerequests/UpdateFileRequestByIdHeaders.java @@ -0,0 +1,54 @@ +package com.box.sdkgen.managers.filerequests; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateFileRequestByIdHeaders { + + public String ifMatch; + + public Map extraHeaders; + + public UpdateFileRequestByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateFileRequestByIdHeaders(Builder builder) { + this.ifMatch = builder.ifMatch; + this.extraHeaders = builder.extraHeaders; + } + + public String getIfMatch() { + return ifMatch; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected String ifMatch; + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder ifMatch(String ifMatch) { + this.ifMatch = ifMatch; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateFileRequestByIdHeaders build() { + return new UpdateFileRequestByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/CopyFileHeaders.java b/src/main/java/com/box/sdkgen/managers/files/CopyFileHeaders.java new file mode 100644 index 000000000..3da7bd29c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/CopyFileHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.files; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CopyFileHeaders { + + public Map extraHeaders; + + public CopyFileHeaders() { + this.extraHeaders = mapOf(); + } + + protected CopyFileHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CopyFileHeaders build() { + return new CopyFileHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/CopyFileQueryParams.java b/src/main/java/com/box/sdkgen/managers/files/CopyFileQueryParams.java new file mode 100644 index 000000000..d71ef5e1f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/CopyFileQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.files; + +import java.util.List; + +public class CopyFileQueryParams { + + public List fields; + + public CopyFileQueryParams() {} + + protected CopyFileQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public CopyFileQueryParams build() { + return new CopyFileQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/CopyFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/files/CopyFileRequestBody.java new file mode 100644 index 000000000..d8f871371 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/CopyFileRequestBody.java @@ -0,0 +1,106 @@ +package com.box.sdkgen.managers.files; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CopyFileRequestBody extends SerializableObject { + + protected String name; + + protected String version; + + protected final CopyFileRequestBodyParentField parent; + + public CopyFileRequestBody(@JsonProperty("parent") CopyFileRequestBodyParentField parent) { + super(); + this.parent = parent; + } + + protected CopyFileRequestBody(Builder builder) { + super(); + this.name = builder.name; + this.version = builder.version; + this.parent = builder.parent; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public String getVersion() { + return version; + } + + public CopyFileRequestBodyParentField getParent() { + return parent; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CopyFileRequestBody casted = (CopyFileRequestBody) o; + return Objects.equals(name, casted.name) + && Objects.equals(version, casted.version) + && Objects.equals(parent, casted.parent); + } + + @Override + public int hashCode() { + return Objects.hash(name, version, parent); + } + + @Override + public String toString() { + return "CopyFileRequestBody{" + + "name='" + + name + + '\'' + + ", " + + "version='" + + version + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String name; + + protected String version; + + protected final CopyFileRequestBodyParentField parent; + + public Builder(CopyFileRequestBodyParentField parent) { + super(); + this.parent = parent; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder version(String version) { + this.version = version; + return this; + } + + public CopyFileRequestBody build() { + return new CopyFileRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/CopyFileRequestBodyParentField.java b/src/main/java/com/box/sdkgen/managers/files/CopyFileRequestBodyParentField.java new file mode 100644 index 000000000..4ec6c56b8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/CopyFileRequestBodyParentField.java @@ -0,0 +1,43 @@ +package com.box.sdkgen.managers.files; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CopyFileRequestBodyParentField extends SerializableObject { + + protected final String id; + + public CopyFileRequestBodyParentField(@JsonProperty("id") String id) { + super(); + this.id = id; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CopyFileRequestBodyParentField casted = (CopyFileRequestBodyParentField) o; + return Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + return "CopyFileRequestBodyParentField{" + "id='" + id + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/DeleteFileByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/files/DeleteFileByIdHeaders.java new file mode 100644 index 000000000..93de2ac8b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/DeleteFileByIdHeaders.java @@ -0,0 +1,54 @@ +package com.box.sdkgen.managers.files; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteFileByIdHeaders { + + public String ifMatch; + + public Map extraHeaders; + + public DeleteFileByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteFileByIdHeaders(Builder builder) { + this.ifMatch = builder.ifMatch; + this.extraHeaders = builder.extraHeaders; + } + + public String getIfMatch() { + return ifMatch; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected String ifMatch; + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder ifMatch(String ifMatch) { + this.ifMatch = ifMatch; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteFileByIdHeaders build() { + return new DeleteFileByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/FilesManager.java b/src/main/java/com/box/sdkgen/managers/files/FilesManager.java new file mode 100644 index 000000000..a834fee60 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/FilesManager.java @@ -0,0 +1,373 @@ +package com.box.sdkgen.managers.files; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.box.errors.BoxSDKError; +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.serialization.json.JsonManager; +import java.io.InputStream; +import java.util.Map; + +public class FilesManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public FilesManager() { + this.networkSession = new NetworkSession(); + } + + protected FilesManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public FileFull getFileById(String fileId) { + return getFileById(fileId, new GetFileByIdQueryParams(), new GetFileByIdHeaders()); + } + + public FileFull getFileById(String fileId, GetFileByIdQueryParams queryParams) { + return getFileById(fileId, queryParams, new GetFileByIdHeaders()); + } + + public FileFull getFileById(String fileId, GetFileByIdHeaders headers) { + return getFileById(fileId, new GetFileByIdQueryParams(), headers); + } + + public FileFull getFileById( + String fileId, GetFileByIdQueryParams queryParams, GetFileByIdHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf( + entryOf("if-none-match", convertToString(headers.getIfNoneMatch())), + entryOf("boxapi", convertToString(headers.getBoxapi())), + entryOf("x-rep-hints", convertToString(headers.getXRepHints()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId)), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FileFull.class); + } + + public FileFull updateFileById(String fileId) { + return updateFileById( + fileId, + new UpdateFileByIdRequestBody(), + new UpdateFileByIdQueryParams(), + new UpdateFileByIdHeaders()); + } + + public FileFull updateFileById(String fileId, UpdateFileByIdRequestBody requestBody) { + return updateFileById( + fileId, requestBody, new UpdateFileByIdQueryParams(), new UpdateFileByIdHeaders()); + } + + public FileFull updateFileById(String fileId, UpdateFileByIdQueryParams queryParams) { + return updateFileById( + fileId, new UpdateFileByIdRequestBody(), queryParams, new UpdateFileByIdHeaders()); + } + + public FileFull updateFileById( + String fileId, UpdateFileByIdRequestBody requestBody, UpdateFileByIdQueryParams queryParams) { + return updateFileById(fileId, requestBody, queryParams, new UpdateFileByIdHeaders()); + } + + public FileFull updateFileById(String fileId, UpdateFileByIdHeaders headers) { + return updateFileById( + fileId, new UpdateFileByIdRequestBody(), new UpdateFileByIdQueryParams(), headers); + } + + public FileFull updateFileById( + String fileId, UpdateFileByIdRequestBody requestBody, UpdateFileByIdHeaders headers) { + return updateFileById(fileId, requestBody, new UpdateFileByIdQueryParams(), headers); + } + + public FileFull updateFileById( + String fileId, UpdateFileByIdQueryParams queryParams, UpdateFileByIdHeaders headers) { + return updateFileById(fileId, new UpdateFileByIdRequestBody(), queryParams, headers); + } + + public FileFull updateFileById( + String fileId, + UpdateFileByIdRequestBody requestBody, + UpdateFileByIdQueryParams queryParams, + UpdateFileByIdHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("if-match", convertToString(headers.getIfMatch()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId)), + "PUT") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FileFull.class); + } + + public void deleteFileById(String fileId) { + deleteFileById(fileId, new DeleteFileByIdHeaders()); + } + + public void deleteFileById(String fileId, DeleteFileByIdHeaders headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("if-match", convertToString(headers.getIfMatch()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public FileFull copyFile(String fileId, CopyFileRequestBody requestBody) { + return copyFile(fileId, requestBody, new CopyFileQueryParams(), new CopyFileHeaders()); + } + + public FileFull copyFile( + String fileId, CopyFileRequestBody requestBody, CopyFileQueryParams queryParams) { + return copyFile(fileId, requestBody, queryParams, new CopyFileHeaders()); + } + + public FileFull copyFile( + String fileId, CopyFileRequestBody requestBody, CopyFileHeaders headers) { + return copyFile(fileId, requestBody, new CopyFileQueryParams(), headers); + } + + public FileFull copyFile( + String fileId, + CopyFileRequestBody requestBody, + CopyFileQueryParams queryParams, + CopyFileHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/copy"), + "POST") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FileFull.class); + } + + public String getFileThumbnailUrl(String fileId, GetFileThumbnailUrlExtension extension) { + return getFileThumbnailUrl( + fileId, extension, new GetFileThumbnailUrlQueryParams(), new GetFileThumbnailUrlHeaders()); + } + + public String getFileThumbnailUrl( + String fileId, + GetFileThumbnailUrlExtension extension, + GetFileThumbnailUrlQueryParams queryParams) { + return getFileThumbnailUrl(fileId, extension, queryParams, new GetFileThumbnailUrlHeaders()); + } + + public String getFileThumbnailUrl( + String fileId, GetFileThumbnailUrlExtension extension, GetFileThumbnailUrlHeaders headers) { + return getFileThumbnailUrl(fileId, extension, new GetFileThumbnailUrlQueryParams(), headers); + } + + public String getFileThumbnailUrl( + String fileId, + GetFileThumbnailUrlExtension extension, + GetFileThumbnailUrlQueryParams queryParams, + GetFileThumbnailUrlHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("min_height", convertToString(queryParams.getMinHeight())), + entryOf("min_width", convertToString(queryParams.getMinWidth())), + entryOf("max_height", convertToString(queryParams.getMaxHeight())), + entryOf("max_width", convertToString(queryParams.getMaxWidth())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/thumbnail.", + convertToString(extension)), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .followRedirects(false) + .build()); + if (response.getHeaders().containsKey("location")) { + return response.getHeaders().get("location"); + } + if (response.getHeaders().containsKey("Location")) { + return response.getHeaders().get("Location"); + } + throw new BoxSDKError("No location header in response"); + } + + public InputStream getFileThumbnailById(String fileId, GetFileThumbnailByIdExtension extension) { + return getFileThumbnailById( + fileId, + extension, + new GetFileThumbnailByIdQueryParams(), + new GetFileThumbnailByIdHeaders()); + } + + public InputStream getFileThumbnailById( + String fileId, + GetFileThumbnailByIdExtension extension, + GetFileThumbnailByIdQueryParams queryParams) { + return getFileThumbnailById(fileId, extension, queryParams, new GetFileThumbnailByIdHeaders()); + } + + public InputStream getFileThumbnailById( + String fileId, GetFileThumbnailByIdExtension extension, GetFileThumbnailByIdHeaders headers) { + return getFileThumbnailById(fileId, extension, new GetFileThumbnailByIdQueryParams(), headers); + } + + public InputStream getFileThumbnailById( + String fileId, + GetFileThumbnailByIdExtension extension, + GetFileThumbnailByIdQueryParams queryParams, + GetFileThumbnailByIdHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("min_height", convertToString(queryParams.getMinHeight())), + entryOf("min_width", convertToString(queryParams.getMinWidth())), + entryOf("max_height", convertToString(queryParams.getMaxHeight())), + entryOf("max_width", convertToString(queryParams.getMaxWidth())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/thumbnail.", + convertToString(extension)), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.BINARY) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + if (convertToString(response.getStatus()).equals("202")) { + return null; + } + return response.getContent(); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public FilesManager build() { + return new FilesManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/GetFileByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/files/GetFileByIdHeaders.java new file mode 100644 index 000000000..9f3640de1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/GetFileByIdHeaders.java @@ -0,0 +1,82 @@ +package com.box.sdkgen.managers.files; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFileByIdHeaders { + + public String ifNoneMatch; + + public String boxapi; + + public String xRepHints; + + public Map extraHeaders; + + public GetFileByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFileByIdHeaders(Builder builder) { + this.ifNoneMatch = builder.ifNoneMatch; + this.boxapi = builder.boxapi; + this.xRepHints = builder.xRepHints; + this.extraHeaders = builder.extraHeaders; + } + + public String getIfNoneMatch() { + return ifNoneMatch; + } + + public String getBoxapi() { + return boxapi; + } + + public String getXRepHints() { + return xRepHints; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected String ifNoneMatch; + + protected String boxapi; + + protected String xRepHints; + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder ifNoneMatch(String ifNoneMatch) { + this.ifNoneMatch = ifNoneMatch; + return this; + } + + public Builder boxapi(String boxapi) { + this.boxapi = boxapi; + return this; + } + + public Builder xRepHints(String xRepHints) { + this.xRepHints = xRepHints; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFileByIdHeaders build() { + return new GetFileByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/GetFileByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/files/GetFileByIdQueryParams.java new file mode 100644 index 000000000..56b728bb1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/GetFileByIdQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.files; + +import java.util.List; + +public class GetFileByIdQueryParams { + + public List fields; + + public GetFileByIdQueryParams() {} + + protected GetFileByIdQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public GetFileByIdQueryParams build() { + return new GetFileByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdExtension.java b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdExtension.java new file mode 100644 index 000000000..2350347cc --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdExtension.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.files; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetFileThumbnailByIdExtension implements Valuable { + PNG("png"), + JPG("jpg"); + + private final String value; + + GetFileThumbnailByIdExtension(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetFileThumbnailByIdExtensionDeserializer + extends JsonDeserializer> { + + public GetFileThumbnailByIdExtensionDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetFileThumbnailByIdExtension.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetFileThumbnailByIdExtensionSerializer + extends JsonSerializer> { + + public GetFileThumbnailByIdExtensionSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdHeaders.java new file mode 100644 index 000000000..6562d6c1e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.files; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFileThumbnailByIdHeaders { + + public Map extraHeaders; + + public GetFileThumbnailByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFileThumbnailByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFileThumbnailByIdHeaders build() { + return new GetFileThumbnailByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdQueryParams.java new file mode 100644 index 000000000..796274fab --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdQueryParams.java @@ -0,0 +1,72 @@ +package com.box.sdkgen.managers.files; + +public class GetFileThumbnailByIdQueryParams { + + public Long minHeight; + + public Long minWidth; + + public Long maxHeight; + + public Long maxWidth; + + public GetFileThumbnailByIdQueryParams() {} + + protected GetFileThumbnailByIdQueryParams(Builder builder) { + this.minHeight = builder.minHeight; + this.minWidth = builder.minWidth; + this.maxHeight = builder.maxHeight; + this.maxWidth = builder.maxWidth; + } + + public Long getMinHeight() { + return minHeight; + } + + public Long getMinWidth() { + return minWidth; + } + + public Long getMaxHeight() { + return maxHeight; + } + + public Long getMaxWidth() { + return maxWidth; + } + + public static class Builder { + + protected Long minHeight; + + protected Long minWidth; + + protected Long maxHeight; + + protected Long maxWidth; + + public Builder minHeight(Long minHeight) { + this.minHeight = minHeight; + return this; + } + + public Builder minWidth(Long minWidth) { + this.minWidth = minWidth; + return this; + } + + public Builder maxHeight(Long maxHeight) { + this.maxHeight = maxHeight; + return this; + } + + public Builder maxWidth(Long maxWidth) { + this.maxWidth = maxWidth; + return this; + } + + public GetFileThumbnailByIdQueryParams build() { + return new GetFileThumbnailByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlExtension.java b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlExtension.java new file mode 100644 index 000000000..abf937c09 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlExtension.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.files; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetFileThumbnailUrlExtension implements Valuable { + PNG("png"), + JPG("jpg"); + + private final String value; + + GetFileThumbnailUrlExtension(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetFileThumbnailUrlExtensionDeserializer + extends JsonDeserializer> { + + public GetFileThumbnailUrlExtensionDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetFileThumbnailUrlExtension.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetFileThumbnailUrlExtensionSerializer + extends JsonSerializer> { + + public GetFileThumbnailUrlExtensionSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlHeaders.java b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlHeaders.java new file mode 100644 index 000000000..b2c837505 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.files; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFileThumbnailUrlHeaders { + + public Map extraHeaders; + + public GetFileThumbnailUrlHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFileThumbnailUrlHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFileThumbnailUrlHeaders build() { + return new GetFileThumbnailUrlHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlQueryParams.java b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlQueryParams.java new file mode 100644 index 000000000..da7241618 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlQueryParams.java @@ -0,0 +1,72 @@ +package com.box.sdkgen.managers.files; + +public class GetFileThumbnailUrlQueryParams { + + public Long minHeight; + + public Long minWidth; + + public Long maxHeight; + + public Long maxWidth; + + public GetFileThumbnailUrlQueryParams() {} + + protected GetFileThumbnailUrlQueryParams(Builder builder) { + this.minHeight = builder.minHeight; + this.minWidth = builder.minWidth; + this.maxHeight = builder.maxHeight; + this.maxWidth = builder.maxWidth; + } + + public Long getMinHeight() { + return minHeight; + } + + public Long getMinWidth() { + return minWidth; + } + + public Long getMaxHeight() { + return maxHeight; + } + + public Long getMaxWidth() { + return maxWidth; + } + + public static class Builder { + + protected Long minHeight; + + protected Long minWidth; + + protected Long maxHeight; + + protected Long maxWidth; + + public Builder minHeight(Long minHeight) { + this.minHeight = minHeight; + return this; + } + + public Builder minWidth(Long minWidth) { + this.minWidth = minWidth; + return this; + } + + public Builder maxHeight(Long maxHeight) { + this.maxHeight = maxHeight; + return this; + } + + public Builder maxWidth(Long maxWidth) { + this.maxWidth = maxWidth; + return this; + } + + public GetFileThumbnailUrlQueryParams build() { + return new GetFileThumbnailUrlQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdHeaders.java new file mode 100644 index 000000000..f443371f6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdHeaders.java @@ -0,0 +1,54 @@ +package com.box.sdkgen.managers.files; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateFileByIdHeaders { + + public String ifMatch; + + public Map extraHeaders; + + public UpdateFileByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateFileByIdHeaders(Builder builder) { + this.ifMatch = builder.ifMatch; + this.extraHeaders = builder.extraHeaders; + } + + public String getIfMatch() { + return ifMatch; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected String ifMatch; + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder ifMatch(String ifMatch) { + this.ifMatch = ifMatch; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateFileByIdHeaders build() { + return new UpdateFileByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdQueryParams.java new file mode 100644 index 000000000..de54edab8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.files; + +import java.util.List; + +public class UpdateFileByIdQueryParams { + + public List fields; + + public UpdateFileByIdQueryParams() {} + + protected UpdateFileByIdQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public UpdateFileByIdQueryParams build() { + return new UpdateFileByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBody.java new file mode 100644 index 000000000..450be353e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBody.java @@ -0,0 +1,234 @@ +package com.box.sdkgen.managers.files; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateFileByIdRequestBody extends SerializableObject { + + protected String name; + + protected String description; + + protected UpdateFileByIdRequestBodyParentField parent; + + @JsonProperty("shared_link") + @Nullable + protected UpdateFileByIdRequestBodySharedLinkField sharedLink; + + @Nullable protected UpdateFileByIdRequestBodyLockField lock; + + @JsonProperty("disposition_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date dispositionAt; + + protected UpdateFileByIdRequestBodyPermissionsField permissions; + + @Nullable protected List collections; + + protected List tags; + + public UpdateFileByIdRequestBody() { + super(); + } + + protected UpdateFileByIdRequestBody(Builder builder) { + super(); + this.name = builder.name; + this.description = builder.description; + this.parent = builder.parent; + this.sharedLink = builder.sharedLink; + this.lock = builder.lock; + this.dispositionAt = builder.dispositionAt; + this.permissions = builder.permissions; + this.collections = builder.collections; + this.tags = builder.tags; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + public UpdateFileByIdRequestBodyParentField getParent() { + return parent; + } + + public UpdateFileByIdRequestBodySharedLinkField getSharedLink() { + return sharedLink; + } + + public UpdateFileByIdRequestBodyLockField getLock() { + return lock; + } + + public Date getDispositionAt() { + return dispositionAt; + } + + public UpdateFileByIdRequestBodyPermissionsField getPermissions() { + return permissions; + } + + public List getCollections() { + return collections; + } + + public List getTags() { + return tags; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateFileByIdRequestBody casted = (UpdateFileByIdRequestBody) o; + return Objects.equals(name, casted.name) + && Objects.equals(description, casted.description) + && Objects.equals(parent, casted.parent) + && Objects.equals(sharedLink, casted.sharedLink) + && Objects.equals(lock, casted.lock) + && Objects.equals(dispositionAt, casted.dispositionAt) + && Objects.equals(permissions, casted.permissions) + && Objects.equals(collections, casted.collections) + && Objects.equals(tags, casted.tags); + } + + @Override + public int hashCode() { + return Objects.hash( + name, description, parent, sharedLink, lock, dispositionAt, permissions, collections, tags); + } + + @Override + public String toString() { + return "UpdateFileByIdRequestBody{" + + "name='" + + name + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + ", " + + "sharedLink='" + + sharedLink + + '\'' + + ", " + + "lock='" + + lock + + '\'' + + ", " + + "dispositionAt='" + + dispositionAt + + '\'' + + ", " + + "permissions='" + + permissions + + '\'' + + ", " + + "collections='" + + collections + + '\'' + + ", " + + "tags='" + + tags + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String name; + + protected String description; + + protected UpdateFileByIdRequestBodyParentField parent; + + protected UpdateFileByIdRequestBodySharedLinkField sharedLink; + + protected UpdateFileByIdRequestBodyLockField lock; + + protected Date dispositionAt; + + protected UpdateFileByIdRequestBodyPermissionsField permissions; + + protected List collections; + + protected List tags; + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder parent(UpdateFileByIdRequestBodyParentField parent) { + this.parent = parent; + return this; + } + + public Builder sharedLink(UpdateFileByIdRequestBodySharedLinkField sharedLink) { + this.sharedLink = sharedLink; + this.markNullableFieldAsSet("shared_link"); + return this; + } + + public Builder lock(UpdateFileByIdRequestBodyLockField lock) { + this.lock = lock; + this.markNullableFieldAsSet("lock"); + return this; + } + + public Builder dispositionAt(Date dispositionAt) { + this.dispositionAt = dispositionAt; + return this; + } + + public Builder permissions(UpdateFileByIdRequestBodyPermissionsField permissions) { + this.permissions = permissions; + return this; + } + + public Builder collections(List collections) { + this.collections = collections; + this.markNullableFieldAsSet("collections"); + return this; + } + + public Builder tags(List tags) { + this.tags = tags; + return this; + } + + public UpdateFileByIdRequestBody build() { + return new UpdateFileByIdRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyCollectionsField.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyCollectionsField.java new file mode 100644 index 000000000..8ca786dea --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyCollectionsField.java @@ -0,0 +1,85 @@ +package com.box.sdkgen.managers.files; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateFileByIdRequestBodyCollectionsField extends SerializableObject { + + protected String id; + + protected String type; + + public UpdateFileByIdRequestBodyCollectionsField() { + super(); + } + + protected UpdateFileByIdRequestBodyCollectionsField(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateFileByIdRequestBodyCollectionsField casted = + (UpdateFileByIdRequestBodyCollectionsField) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "UpdateFileByIdRequestBodyCollectionsField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected String type; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(String type) { + this.type = type; + return this; + } + + public UpdateFileByIdRequestBodyCollectionsField build() { + return new UpdateFileByIdRequestBodyCollectionsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyLockAccessField.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyLockAccessField.java new file mode 100644 index 000000000..8bfd9eeb5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyLockAccessField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.files; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateFileByIdRequestBodyLockAccessField implements Valuable { + LOCK("lock"); + + private final String value; + + UpdateFileByIdRequestBodyLockAccessField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateFileByIdRequestBodyLockAccessFieldDeserializer + extends JsonDeserializer> { + + public UpdateFileByIdRequestBodyLockAccessFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateFileByIdRequestBodyLockAccessField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateFileByIdRequestBodyLockAccessFieldSerializer + extends JsonSerializer> { + + public UpdateFileByIdRequestBodyLockAccessFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyLockField.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyLockField.java new file mode 100644 index 000000000..6d401aa61 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyLockField.java @@ -0,0 +1,127 @@ +package com.box.sdkgen.managers.files; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateFileByIdRequestBodyLockField extends SerializableObject { + + @JsonDeserialize( + using = + UpdateFileByIdRequestBodyLockAccessField + .UpdateFileByIdRequestBodyLockAccessFieldDeserializer.class) + @JsonSerialize( + using = + UpdateFileByIdRequestBodyLockAccessField + .UpdateFileByIdRequestBodyLockAccessFieldSerializer.class) + protected EnumWrapper access; + + @JsonProperty("expires_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date expiresAt; + + @JsonProperty("is_download_prevented") + protected Boolean isDownloadPrevented; + + public UpdateFileByIdRequestBodyLockField() { + super(); + } + + protected UpdateFileByIdRequestBodyLockField(Builder builder) { + super(); + this.access = builder.access; + this.expiresAt = builder.expiresAt; + this.isDownloadPrevented = builder.isDownloadPrevented; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getAccess() { + return access; + } + + public Date getExpiresAt() { + return expiresAt; + } + + public Boolean getIsDownloadPrevented() { + return isDownloadPrevented; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateFileByIdRequestBodyLockField casted = (UpdateFileByIdRequestBodyLockField) o; + return Objects.equals(access, casted.access) + && Objects.equals(expiresAt, casted.expiresAt) + && Objects.equals(isDownloadPrevented, casted.isDownloadPrevented); + } + + @Override + public int hashCode() { + return Objects.hash(access, expiresAt, isDownloadPrevented); + } + + @Override + public String toString() { + return "UpdateFileByIdRequestBodyLockField{" + + "access='" + + access + + '\'' + + ", " + + "expiresAt='" + + expiresAt + + '\'' + + ", " + + "isDownloadPrevented='" + + isDownloadPrevented + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper access; + + protected Date expiresAt; + + protected Boolean isDownloadPrevented; + + public Builder access(UpdateFileByIdRequestBodyLockAccessField access) { + this.access = new EnumWrapper(access); + return this; + } + + public Builder access(EnumWrapper access) { + this.access = access; + return this; + } + + public Builder expiresAt(Date expiresAt) { + this.expiresAt = expiresAt; + return this; + } + + public Builder isDownloadPrevented(Boolean isDownloadPrevented) { + this.isDownloadPrevented = isDownloadPrevented; + return this; + } + + public UpdateFileByIdRequestBodyLockField build() { + return new UpdateFileByIdRequestBodyLockField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyParentField.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyParentField.java new file mode 100644 index 000000000..99d296f33 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyParentField.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.managers.files; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateFileByIdRequestBodyParentField extends SerializableObject { + + protected String id; + + @JsonProperty("user_id") + protected String userId; + + public UpdateFileByIdRequestBodyParentField() { + super(); + } + + protected UpdateFileByIdRequestBodyParentField(Builder builder) { + super(); + this.id = builder.id; + this.userId = builder.userId; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getUserId() { + return userId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateFileByIdRequestBodyParentField casted = (UpdateFileByIdRequestBodyParentField) o; + return Objects.equals(id, casted.id) && Objects.equals(userId, casted.userId); + } + + @Override + public int hashCode() { + return Objects.hash(id, userId); + } + + @Override + public String toString() { + return "UpdateFileByIdRequestBodyParentField{" + + "id='" + + id + + '\'' + + ", " + + "userId='" + + userId + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected String userId; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder userId(String userId) { + this.userId = userId; + return this; + } + + public UpdateFileByIdRequestBodyParentField build() { + return new UpdateFileByIdRequestBodyParentField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyPermissionsCanDownloadField.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyPermissionsCanDownloadField.java new file mode 100644 index 000000000..ada919f9c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyPermissionsCanDownloadField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.files; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateFileByIdRequestBodyPermissionsCanDownloadField implements Valuable { + OPEN("open"), + COMPANY("company"); + + private final String value; + + UpdateFileByIdRequestBodyPermissionsCanDownloadField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateFileByIdRequestBodyPermissionsCanDownloadFieldDeserializer + extends JsonDeserializer> { + + public UpdateFileByIdRequestBodyPermissionsCanDownloadFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateFileByIdRequestBodyPermissionsCanDownloadField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateFileByIdRequestBodyPermissionsCanDownloadFieldSerializer + extends JsonSerializer> { + + public UpdateFileByIdRequestBodyPermissionsCanDownloadFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyPermissionsField.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyPermissionsField.java new file mode 100644 index 000000000..f38c860fa --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyPermissionsField.java @@ -0,0 +1,87 @@ +package com.box.sdkgen.managers.files; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateFileByIdRequestBodyPermissionsField extends SerializableObject { + + @JsonDeserialize( + using = + UpdateFileByIdRequestBodyPermissionsCanDownloadField + .UpdateFileByIdRequestBodyPermissionsCanDownloadFieldDeserializer.class) + @JsonSerialize( + using = + UpdateFileByIdRequestBodyPermissionsCanDownloadField + .UpdateFileByIdRequestBodyPermissionsCanDownloadFieldSerializer.class) + @JsonProperty("can_download") + protected EnumWrapper canDownload; + + public UpdateFileByIdRequestBodyPermissionsField() { + super(); + } + + protected UpdateFileByIdRequestBodyPermissionsField(Builder builder) { + super(); + this.canDownload = builder.canDownload; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getCanDownload() { + return canDownload; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateFileByIdRequestBodyPermissionsField casted = + (UpdateFileByIdRequestBodyPermissionsField) o; + return Objects.equals(canDownload, casted.canDownload); + } + + @Override + public int hashCode() { + return Objects.hash(canDownload); + } + + @Override + public String toString() { + return "UpdateFileByIdRequestBodyPermissionsField{" + + "canDownload='" + + canDownload + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper canDownload; + + public Builder canDownload(UpdateFileByIdRequestBodyPermissionsCanDownloadField canDownload) { + this.canDownload = + new EnumWrapper(canDownload); + return this; + } + + public Builder canDownload( + EnumWrapper canDownload) { + this.canDownload = canDownload; + return this; + } + + public UpdateFileByIdRequestBodyPermissionsField build() { + return new UpdateFileByIdRequestBodyPermissionsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkAccessField.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkAccessField.java new file mode 100644 index 000000000..0e5d8a295 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkAccessField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.files; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateFileByIdRequestBodySharedLinkAccessField implements Valuable { + OPEN("open"), + COMPANY("company"), + COLLABORATORS("collaborators"); + + private final String value; + + UpdateFileByIdRequestBodySharedLinkAccessField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateFileByIdRequestBodySharedLinkAccessFieldDeserializer + extends JsonDeserializer> { + + public UpdateFileByIdRequestBodySharedLinkAccessFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateFileByIdRequestBodySharedLinkAccessField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateFileByIdRequestBodySharedLinkAccessFieldSerializer + extends JsonSerializer> { + + public UpdateFileByIdRequestBodySharedLinkAccessFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkField.java new file mode 100644 index 000000000..842176d43 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkField.java @@ -0,0 +1,167 @@ +package com.box.sdkgen.managers.files; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateFileByIdRequestBodySharedLinkField extends SerializableObject { + + @JsonDeserialize( + using = + UpdateFileByIdRequestBodySharedLinkAccessField + .UpdateFileByIdRequestBodySharedLinkAccessFieldDeserializer.class) + @JsonSerialize( + using = + UpdateFileByIdRequestBodySharedLinkAccessField + .UpdateFileByIdRequestBodySharedLinkAccessFieldSerializer.class) + protected EnumWrapper access; + + @Nullable protected String password; + + @JsonProperty("vanity_name") + protected String vanityName; + + @JsonProperty("unshared_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date unsharedAt; + + protected UpdateFileByIdRequestBodySharedLinkPermissionsField permissions; + + public UpdateFileByIdRequestBodySharedLinkField() { + super(); + } + + protected UpdateFileByIdRequestBodySharedLinkField(Builder builder) { + super(); + this.access = builder.access; + this.password = builder.password; + this.vanityName = builder.vanityName; + this.unsharedAt = builder.unsharedAt; + this.permissions = builder.permissions; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getAccess() { + return access; + } + + public String getPassword() { + return password; + } + + public String getVanityName() { + return vanityName; + } + + public Date getUnsharedAt() { + return unsharedAt; + } + + public UpdateFileByIdRequestBodySharedLinkPermissionsField getPermissions() { + return permissions; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateFileByIdRequestBodySharedLinkField casted = (UpdateFileByIdRequestBodySharedLinkField) o; + return Objects.equals(access, casted.access) + && Objects.equals(password, casted.password) + && Objects.equals(vanityName, casted.vanityName) + && Objects.equals(unsharedAt, casted.unsharedAt) + && Objects.equals(permissions, casted.permissions); + } + + @Override + public int hashCode() { + return Objects.hash(access, password, vanityName, unsharedAt, permissions); + } + + @Override + public String toString() { + return "UpdateFileByIdRequestBodySharedLinkField{" + + "access='" + + access + + '\'' + + ", " + + "password='" + + password + + '\'' + + ", " + + "vanityName='" + + vanityName + + '\'' + + ", " + + "unsharedAt='" + + unsharedAt + + '\'' + + ", " + + "permissions='" + + permissions + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper access; + + protected String password; + + protected String vanityName; + + protected Date unsharedAt; + + protected UpdateFileByIdRequestBodySharedLinkPermissionsField permissions; + + public Builder access(UpdateFileByIdRequestBodySharedLinkAccessField access) { + this.access = new EnumWrapper(access); + return this; + } + + public Builder access(EnumWrapper access) { + this.access = access; + return this; + } + + public Builder password(String password) { + this.password = password; + this.markNullableFieldAsSet("password"); + return this; + } + + public Builder vanityName(String vanityName) { + this.vanityName = vanityName; + return this; + } + + public Builder unsharedAt(Date unsharedAt) { + this.unsharedAt = unsharedAt; + return this; + } + + public Builder permissions(UpdateFileByIdRequestBodySharedLinkPermissionsField permissions) { + this.permissions = permissions; + return this; + } + + public UpdateFileByIdRequestBodySharedLinkField build() { + return new UpdateFileByIdRequestBodySharedLinkField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkPermissionsField.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkPermissionsField.java new file mode 100644 index 000000000..18ee3fc3a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkPermissionsField.java @@ -0,0 +1,69 @@ +package com.box.sdkgen.managers.files; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateFileByIdRequestBodySharedLinkPermissionsField extends SerializableObject { + + @JsonProperty("can_download") + protected Boolean canDownload; + + public UpdateFileByIdRequestBodySharedLinkPermissionsField() { + super(); + } + + protected UpdateFileByIdRequestBodySharedLinkPermissionsField(Builder builder) { + super(); + this.canDownload = builder.canDownload; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getCanDownload() { + return canDownload; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateFileByIdRequestBodySharedLinkPermissionsField casted = + (UpdateFileByIdRequestBodySharedLinkPermissionsField) o; + return Objects.equals(canDownload, casted.canDownload); + } + + @Override + public int hashCode() { + return Objects.hash(canDownload); + } + + @Override + public String toString() { + return "UpdateFileByIdRequestBodySharedLinkPermissionsField{" + + "canDownload='" + + canDownload + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean canDownload; + + public Builder canDownload(Boolean canDownload) { + this.canDownload = canDownload; + return this; + } + + public UpdateFileByIdRequestBodySharedLinkPermissionsField build() { + return new UpdateFileByIdRequestBodySharedLinkPermissionsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/FileVersionLegalHoldsManager.java b/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/FileVersionLegalHoldsManager.java new file mode 100644 index 000000000..d462a2851 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/FileVersionLegalHoldsManager.java @@ -0,0 +1,126 @@ +package com.box.sdkgen.managers.fileversionlegalholds; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.fileversionlegalhold.FileVersionLegalHold; +import com.box.sdkgen.schemas.fileversionlegalholds.FileVersionLegalHolds; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class FileVersionLegalHoldsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public FileVersionLegalHoldsManager() { + this.networkSession = new NetworkSession(); + } + + protected FileVersionLegalHoldsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public FileVersionLegalHold getFileVersionLegalHoldById(String fileVersionLegalHoldId) { + return getFileVersionLegalHoldById( + fileVersionLegalHoldId, new GetFileVersionLegalHoldByIdHeaders()); + } + + public FileVersionLegalHold getFileVersionLegalHoldById( + String fileVersionLegalHoldId, GetFileVersionLegalHoldByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/file_version_legal_holds/", + convertToString(fileVersionLegalHoldId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FileVersionLegalHold.class); + } + + public FileVersionLegalHolds getFileVersionLegalHolds( + GetFileVersionLegalHoldsQueryParams queryParams) { + return getFileVersionLegalHolds(queryParams, new GetFileVersionLegalHoldsHeaders()); + } + + public FileVersionLegalHolds getFileVersionLegalHolds( + GetFileVersionLegalHoldsQueryParams queryParams, GetFileVersionLegalHoldsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("policy_id", convertToString(queryParams.getPolicyId())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/file_version_legal_holds"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FileVersionLegalHolds.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public FileVersionLegalHoldsManager build() { + return new FileVersionLegalHoldsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldByIdHeaders.java new file mode 100644 index 000000000..c20d333ae --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.fileversionlegalholds; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFileVersionLegalHoldByIdHeaders { + + public Map extraHeaders; + + public GetFileVersionLegalHoldByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFileVersionLegalHoldByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFileVersionLegalHoldByIdHeaders build() { + return new GetFileVersionLegalHoldByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldsHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldsHeaders.java new file mode 100644 index 000000000..1f0bd0c20 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.fileversionlegalholds; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFileVersionLegalHoldsHeaders { + + public Map extraHeaders; + + public GetFileVersionLegalHoldsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFileVersionLegalHoldsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFileVersionLegalHoldsHeaders build() { + return new GetFileVersionLegalHoldsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldsQueryParams.java b/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldsQueryParams.java new file mode 100644 index 000000000..4cb79ed9d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldsQueryParams.java @@ -0,0 +1,59 @@ +package com.box.sdkgen.managers.fileversionlegalholds; + +public class GetFileVersionLegalHoldsQueryParams { + + public final String policyId; + + public String marker; + + public Long limit; + + public GetFileVersionLegalHoldsQueryParams(String policyId) { + this.policyId = policyId; + } + + protected GetFileVersionLegalHoldsQueryParams(Builder builder) { + this.policyId = builder.policyId; + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getPolicyId() { + return policyId; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected final String policyId; + + protected String marker; + + protected Long limit; + + public Builder(String policyId) { + this.policyId = policyId; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetFileVersionLegalHoldsQueryParams build() { + return new GetFileVersionLegalHoldsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileversionretentions/FileVersionRetentionsManager.java b/src/main/java/com/box/sdkgen/managers/fileversionretentions/FileVersionRetentionsManager.java new file mode 100644 index 000000000..7592f6d02 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileversionretentions/FileVersionRetentionsManager.java @@ -0,0 +1,140 @@ +package com.box.sdkgen.managers.fileversionretentions; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.fileversionretention.FileVersionRetention; +import com.box.sdkgen.schemas.fileversionretentions.FileVersionRetentions; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class FileVersionRetentionsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public FileVersionRetentionsManager() { + this.networkSession = new NetworkSession(); + } + + protected FileVersionRetentionsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public FileVersionRetentions getFileVersionRetentions() { + return getFileVersionRetentions( + new GetFileVersionRetentionsQueryParams(), new GetFileVersionRetentionsHeaders()); + } + + public FileVersionRetentions getFileVersionRetentions( + GetFileVersionRetentionsQueryParams queryParams) { + return getFileVersionRetentions(queryParams, new GetFileVersionRetentionsHeaders()); + } + + public FileVersionRetentions getFileVersionRetentions(GetFileVersionRetentionsHeaders headers) { + return getFileVersionRetentions(new GetFileVersionRetentionsQueryParams(), headers); + } + + public FileVersionRetentions getFileVersionRetentions( + GetFileVersionRetentionsQueryParams queryParams, GetFileVersionRetentionsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("file_id", convertToString(queryParams.getFileId())), + entryOf("file_version_id", convertToString(queryParams.getFileVersionId())), + entryOf("policy_id", convertToString(queryParams.getPolicyId())), + entryOf("disposition_action", convertToString(queryParams.getDispositionAction())), + entryOf("disposition_before", convertToString(queryParams.getDispositionBefore())), + entryOf("disposition_after", convertToString(queryParams.getDispositionAfter())), + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf("marker", convertToString(queryParams.getMarker())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/file_version_retentions"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FileVersionRetentions.class); + } + + public FileVersionRetention getFileVersionRetentionById(String fileVersionRetentionId) { + return getFileVersionRetentionById( + fileVersionRetentionId, new GetFileVersionRetentionByIdHeaders()); + } + + public FileVersionRetention getFileVersionRetentionById( + String fileVersionRetentionId, GetFileVersionRetentionByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/file_version_retentions/", + convertToString(fileVersionRetentionId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FileVersionRetention.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public FileVersionRetentionsManager build() { + return new FileVersionRetentionsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionByIdHeaders.java new file mode 100644 index 000000000..1eb506eca --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.fileversionretentions; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFileVersionRetentionByIdHeaders { + + public Map extraHeaders; + + public GetFileVersionRetentionByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFileVersionRetentionByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFileVersionRetentionByIdHeaders build() { + return new GetFileVersionRetentionByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsHeaders.java new file mode 100644 index 000000000..7c4fd6959 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.fileversionretentions; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFileVersionRetentionsHeaders { + + public Map extraHeaders; + + public GetFileVersionRetentionsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFileVersionRetentionsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFileVersionRetentionsHeaders build() { + return new GetFileVersionRetentionsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsQueryParams.java b/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsQueryParams.java new file mode 100644 index 000000000..1eb716861 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsQueryParams.java @@ -0,0 +1,141 @@ +package com.box.sdkgen.managers.fileversionretentions; + +import com.box.sdkgen.serialization.json.EnumWrapper; + +public class GetFileVersionRetentionsQueryParams { + + public String fileId; + + public String fileVersionId; + + public String policyId; + + public EnumWrapper dispositionAction; + + public String dispositionBefore; + + public String dispositionAfter; + + public Long limit; + + public String marker; + + public GetFileVersionRetentionsQueryParams() {} + + protected GetFileVersionRetentionsQueryParams(Builder builder) { + this.fileId = builder.fileId; + this.fileVersionId = builder.fileVersionId; + this.policyId = builder.policyId; + this.dispositionAction = builder.dispositionAction; + this.dispositionBefore = builder.dispositionBefore; + this.dispositionAfter = builder.dispositionAfter; + this.limit = builder.limit; + this.marker = builder.marker; + } + + public String getFileId() { + return fileId; + } + + public String getFileVersionId() { + return fileVersionId; + } + + public String getPolicyId() { + return policyId; + } + + public EnumWrapper + getDispositionAction() { + return dispositionAction; + } + + public String getDispositionBefore() { + return dispositionBefore; + } + + public String getDispositionAfter() { + return dispositionAfter; + } + + public Long getLimit() { + return limit; + } + + public String getMarker() { + return marker; + } + + public static class Builder { + + protected String fileId; + + protected String fileVersionId; + + protected String policyId; + + protected EnumWrapper + dispositionAction; + + protected String dispositionBefore; + + protected String dispositionAfter; + + protected Long limit; + + protected String marker; + + public Builder fileId(String fileId) { + this.fileId = fileId; + return this; + } + + public Builder fileVersionId(String fileVersionId) { + this.fileVersionId = fileVersionId; + return this; + } + + public Builder policyId(String policyId) { + this.policyId = policyId; + return this; + } + + public Builder dispositionAction( + GetFileVersionRetentionsQueryParamsDispositionActionField dispositionAction) { + this.dispositionAction = + new EnumWrapper( + dispositionAction); + return this; + } + + public Builder dispositionAction( + EnumWrapper dispositionAction) { + this.dispositionAction = dispositionAction; + return this; + } + + public Builder dispositionBefore(String dispositionBefore) { + this.dispositionBefore = dispositionBefore; + return this; + } + + public Builder dispositionAfter(String dispositionAfter) { + this.dispositionAfter = dispositionAfter; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public GetFileVersionRetentionsQueryParams build() { + return new GetFileVersionRetentionsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsQueryParamsDispositionActionField.java b/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsQueryParamsDispositionActionField.java new file mode 100644 index 000000000..2b51aed21 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsQueryParamsDispositionActionField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.managers.fileversionretentions; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetFileVersionRetentionsQueryParamsDispositionActionField implements Valuable { + PERMANENTLY_DELETE("permanently_delete"), + REMOVE_RETENTION("remove_retention"); + + private final String value; + + GetFileVersionRetentionsQueryParamsDispositionActionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetFileVersionRetentionsQueryParamsDispositionActionFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public GetFileVersionRetentionsQueryParamsDispositionActionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetFileVersionRetentionsQueryParamsDispositionActionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper(value)); + } + } + + public static class GetFileVersionRetentionsQueryParamsDispositionActionFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public GetFileVersionRetentionsQueryParamsDispositionActionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/DeleteFileVersionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversions/DeleteFileVersionByIdHeaders.java new file mode 100644 index 000000000..fcdf143b7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileversions/DeleteFileVersionByIdHeaders.java @@ -0,0 +1,54 @@ +package com.box.sdkgen.managers.fileversions; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteFileVersionByIdHeaders { + + public String ifMatch; + + public Map extraHeaders; + + public DeleteFileVersionByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteFileVersionByIdHeaders(Builder builder) { + this.ifMatch = builder.ifMatch; + this.extraHeaders = builder.extraHeaders; + } + + public String getIfMatch() { + return ifMatch; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected String ifMatch; + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder ifMatch(String ifMatch) { + this.ifMatch = ifMatch; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteFileVersionByIdHeaders build() { + return new DeleteFileVersionByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/FileVersionsManager.java b/src/main/java/com/box/sdkgen/managers/fileversions/FileVersionsManager.java new file mode 100644 index 000000000..17e81ee9c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileversions/FileVersionsManager.java @@ -0,0 +1,309 @@ +package com.box.sdkgen.managers.fileversions; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.fileversionfull.FileVersionFull; +import com.box.sdkgen.schemas.fileversions.FileVersions; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class FileVersionsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public FileVersionsManager() { + this.networkSession = new NetworkSession(); + } + + protected FileVersionsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public FileVersions getFileVersions(String fileId) { + return getFileVersions(fileId, new GetFileVersionsQueryParams(), new GetFileVersionsHeaders()); + } + + public FileVersions getFileVersions(String fileId, GetFileVersionsQueryParams queryParams) { + return getFileVersions(fileId, queryParams, new GetFileVersionsHeaders()); + } + + public FileVersions getFileVersions(String fileId, GetFileVersionsHeaders headers) { + return getFileVersions(fileId, new GetFileVersionsQueryParams(), headers); + } + + public FileVersions getFileVersions( + String fileId, GetFileVersionsQueryParams queryParams, GetFileVersionsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("fields", convertToString(queryParams.getFields())), + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf("offset", convertToString(queryParams.getOffset())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/versions"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FileVersions.class); + } + + public FileVersionFull getFileVersionById(String fileId, String fileVersionId) { + return getFileVersionById( + fileId, + fileVersionId, + new GetFileVersionByIdQueryParams(), + new GetFileVersionByIdHeaders()); + } + + public FileVersionFull getFileVersionById( + String fileId, String fileVersionId, GetFileVersionByIdQueryParams queryParams) { + return getFileVersionById(fileId, fileVersionId, queryParams, new GetFileVersionByIdHeaders()); + } + + public FileVersionFull getFileVersionById( + String fileId, String fileVersionId, GetFileVersionByIdHeaders headers) { + return getFileVersionById(fileId, fileVersionId, new GetFileVersionByIdQueryParams(), headers); + } + + public FileVersionFull getFileVersionById( + String fileId, + String fileVersionId, + GetFileVersionByIdQueryParams queryParams, + GetFileVersionByIdHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/versions/", + convertToString(fileVersionId)), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FileVersionFull.class); + } + + public void deleteFileVersionById(String fileId, String fileVersionId) { + deleteFileVersionById(fileId, fileVersionId, new DeleteFileVersionByIdHeaders()); + } + + public void deleteFileVersionById( + String fileId, String fileVersionId, DeleteFileVersionByIdHeaders headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("if-match", convertToString(headers.getIfMatch()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/versions/", + convertToString(fileVersionId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public FileVersionFull updateFileVersionById(String fileId, String fileVersionId) { + return updateFileVersionById( + fileId, + fileVersionId, + new UpdateFileVersionByIdRequestBody(), + new UpdateFileVersionByIdHeaders()); + } + + public FileVersionFull updateFileVersionById( + String fileId, String fileVersionId, UpdateFileVersionByIdRequestBody requestBody) { + return updateFileVersionById( + fileId, fileVersionId, requestBody, new UpdateFileVersionByIdHeaders()); + } + + public FileVersionFull updateFileVersionById( + String fileId, String fileVersionId, UpdateFileVersionByIdHeaders headers) { + return updateFileVersionById( + fileId, fileVersionId, new UpdateFileVersionByIdRequestBody(), headers); + } + + public FileVersionFull updateFileVersionById( + String fileId, + String fileVersionId, + UpdateFileVersionByIdRequestBody requestBody, + UpdateFileVersionByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/versions/", + convertToString(fileVersionId)), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FileVersionFull.class); + } + + public FileVersionFull promoteFileVersion(String fileId) { + return promoteFileVersion( + fileId, + new PromoteFileVersionRequestBody(), + new PromoteFileVersionQueryParams(), + new PromoteFileVersionHeaders()); + } + + public FileVersionFull promoteFileVersion( + String fileId, PromoteFileVersionRequestBody requestBody) { + return promoteFileVersion( + fileId, requestBody, new PromoteFileVersionQueryParams(), new PromoteFileVersionHeaders()); + } + + public FileVersionFull promoteFileVersion( + String fileId, PromoteFileVersionQueryParams queryParams) { + return promoteFileVersion( + fileId, new PromoteFileVersionRequestBody(), queryParams, new PromoteFileVersionHeaders()); + } + + public FileVersionFull promoteFileVersion( + String fileId, + PromoteFileVersionRequestBody requestBody, + PromoteFileVersionQueryParams queryParams) { + return promoteFileVersion(fileId, requestBody, queryParams, new PromoteFileVersionHeaders()); + } + + public FileVersionFull promoteFileVersion(String fileId, PromoteFileVersionHeaders headers) { + return promoteFileVersion( + fileId, new PromoteFileVersionRequestBody(), new PromoteFileVersionQueryParams(), headers); + } + + public FileVersionFull promoteFileVersion( + String fileId, PromoteFileVersionRequestBody requestBody, PromoteFileVersionHeaders headers) { + return promoteFileVersion(fileId, requestBody, new PromoteFileVersionQueryParams(), headers); + } + + public FileVersionFull promoteFileVersion( + String fileId, PromoteFileVersionQueryParams queryParams, PromoteFileVersionHeaders headers) { + return promoteFileVersion(fileId, new PromoteFileVersionRequestBody(), queryParams, headers); + } + + public FileVersionFull promoteFileVersion( + String fileId, + PromoteFileVersionRequestBody requestBody, + PromoteFileVersionQueryParams queryParams, + PromoteFileVersionHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/versions/current"), + "POST") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FileVersionFull.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public FileVersionsManager build() { + return new FileVersionsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionByIdHeaders.java new file mode 100644 index 000000000..e92135573 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.fileversions; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFileVersionByIdHeaders { + + public Map extraHeaders; + + public GetFileVersionByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFileVersionByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFileVersionByIdHeaders build() { + return new GetFileVersionByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionByIdQueryParams.java new file mode 100644 index 000000000..3b7e100b9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionByIdQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.fileversions; + +import java.util.List; + +public class GetFileVersionByIdQueryParams { + + public List fields; + + public GetFileVersionByIdQueryParams() {} + + protected GetFileVersionByIdQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public GetFileVersionByIdQueryParams build() { + return new GetFileVersionByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionsHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionsHeaders.java new file mode 100644 index 000000000..1310bc9bb --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.fileversions; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFileVersionsHeaders { + + public Map extraHeaders; + + public GetFileVersionsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFileVersionsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFileVersionsHeaders build() { + return new GetFileVersionsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionsQueryParams.java b/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionsQueryParams.java new file mode 100644 index 000000000..1d808c5f6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionsQueryParams.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.managers.fileversions; + +import java.util.List; + +public class GetFileVersionsQueryParams { + + public List fields; + + public Long limit; + + public Long offset; + + public GetFileVersionsQueryParams() {} + + protected GetFileVersionsQueryParams(Builder builder) { + this.fields = builder.fields; + this.limit = builder.limit; + this.offset = builder.offset; + } + + public List getFields() { + return fields; + } + + public Long getLimit() { + return limit; + } + + public Long getOffset() { + return offset; + } + + public static class Builder { + + protected List fields; + + protected Long limit; + + protected Long offset; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public GetFileVersionsQueryParams build() { + return new GetFileVersionsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionHeaders.java new file mode 100644 index 000000000..f97a560c8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.fileversions; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class PromoteFileVersionHeaders { + + public Map extraHeaders; + + public PromoteFileVersionHeaders() { + this.extraHeaders = mapOf(); + } + + protected PromoteFileVersionHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public PromoteFileVersionHeaders build() { + return new PromoteFileVersionHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionQueryParams.java b/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionQueryParams.java new file mode 100644 index 000000000..7d186b7bf --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.fileversions; + +import java.util.List; + +public class PromoteFileVersionQueryParams { + + public List fields; + + public PromoteFileVersionQueryParams() {} + + protected PromoteFileVersionQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public PromoteFileVersionQueryParams build() { + return new PromoteFileVersionQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionRequestBody.java b/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionRequestBody.java new file mode 100644 index 000000000..a3e0d9f47 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionRequestBody.java @@ -0,0 +1,100 @@ +package com.box.sdkgen.managers.fileversions; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class PromoteFileVersionRequestBody extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = + PromoteFileVersionRequestBodyTypeField.PromoteFileVersionRequestBodyTypeFieldDeserializer + .class) + @JsonSerialize( + using = + PromoteFileVersionRequestBodyTypeField.PromoteFileVersionRequestBodyTypeFieldSerializer + .class) + protected EnumWrapper type; + + public PromoteFileVersionRequestBody() { + super(); + } + + protected PromoteFileVersionRequestBody(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PromoteFileVersionRequestBody casted = (PromoteFileVersionRequestBody) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "PromoteFileVersionRequestBody{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(PromoteFileVersionRequestBodyTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public PromoteFileVersionRequestBody build() { + return new PromoteFileVersionRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionRequestBodyTypeField.java b/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionRequestBodyTypeField.java new file mode 100644 index 000000000..dba42a70d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionRequestBodyTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.fileversions; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum PromoteFileVersionRequestBodyTypeField implements Valuable { + FILE_VERSION("file_version"); + + private final String value; + + PromoteFileVersionRequestBodyTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class PromoteFileVersionRequestBodyTypeFieldDeserializer + extends JsonDeserializer> { + + public PromoteFileVersionRequestBodyTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(PromoteFileVersionRequestBodyTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class PromoteFileVersionRequestBodyTypeFieldSerializer + extends JsonSerializer> { + + public PromoteFileVersionRequestBodyTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/UpdateFileVersionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversions/UpdateFileVersionByIdHeaders.java new file mode 100644 index 000000000..7346c7f99 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileversions/UpdateFileVersionByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.fileversions; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateFileVersionByIdHeaders { + + public Map extraHeaders; + + public UpdateFileVersionByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateFileVersionByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateFileVersionByIdHeaders build() { + return new UpdateFileVersionByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/UpdateFileVersionByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/fileversions/UpdateFileVersionByIdRequestBody.java new file mode 100644 index 000000000..662755a5d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/fileversions/UpdateFileVersionByIdRequestBody.java @@ -0,0 +1,67 @@ +package com.box.sdkgen.managers.fileversions; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateFileVersionByIdRequestBody extends SerializableObject { + + @JsonProperty("trashed_at") + @Nullable + protected String trashedAt; + + public UpdateFileVersionByIdRequestBody() { + super(); + } + + protected UpdateFileVersionByIdRequestBody(Builder builder) { + super(); + this.trashedAt = builder.trashedAt; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getTrashedAt() { + return trashedAt; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateFileVersionByIdRequestBody casted = (UpdateFileVersionByIdRequestBody) o; + return Objects.equals(trashedAt, casted.trashedAt); + } + + @Override + public int hashCode() { + return Objects.hash(trashedAt); + } + + @Override + public String toString() { + return "UpdateFileVersionByIdRequestBody{" + "trashedAt='" + trashedAt + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String trashedAt; + + public Builder trashedAt(String trashedAt) { + this.trashedAt = trashedAt; + this.markNullableFieldAsSet("trashed_at"); + return this; + } + + public UpdateFileVersionByIdRequestBody build() { + return new UpdateFileVersionByIdRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filewatermarks/DeleteFileWatermarkHeaders.java b/src/main/java/com/box/sdkgen/managers/filewatermarks/DeleteFileWatermarkHeaders.java new file mode 100644 index 000000000..5246f4f6a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filewatermarks/DeleteFileWatermarkHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.filewatermarks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteFileWatermarkHeaders { + + public Map extraHeaders; + + public DeleteFileWatermarkHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteFileWatermarkHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteFileWatermarkHeaders build() { + return new DeleteFileWatermarkHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filewatermarks/FileWatermarksManager.java b/src/main/java/com/box/sdkgen/managers/filewatermarks/FileWatermarksManager.java new file mode 100644 index 000000000..8b317512b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filewatermarks/FileWatermarksManager.java @@ -0,0 +1,146 @@ +package com.box.sdkgen.managers.filewatermarks; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.watermark.Watermark; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class FileWatermarksManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public FileWatermarksManager() { + this.networkSession = new NetworkSession(); + } + + protected FileWatermarksManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public Watermark getFileWatermark(String fileId) { + return getFileWatermark(fileId, new GetFileWatermarkHeaders()); + } + + public Watermark getFileWatermark(String fileId, GetFileWatermarkHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/watermark"), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Watermark.class); + } + + public Watermark updateFileWatermark(String fileId, UpdateFileWatermarkRequestBody requestBody) { + return updateFileWatermark(fileId, requestBody, new UpdateFileWatermarkHeaders()); + } + + public Watermark updateFileWatermark( + String fileId, + UpdateFileWatermarkRequestBody requestBody, + UpdateFileWatermarkHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/watermark"), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Watermark.class); + } + + public void deleteFileWatermark(String fileId) { + deleteFileWatermark(fileId, new DeleteFileWatermarkHeaders()); + } + + public void deleteFileWatermark(String fileId, DeleteFileWatermarkHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/watermark"), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public FileWatermarksManager build() { + return new FileWatermarksManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filewatermarks/GetFileWatermarkHeaders.java b/src/main/java/com/box/sdkgen/managers/filewatermarks/GetFileWatermarkHeaders.java new file mode 100644 index 000000000..716589721 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filewatermarks/GetFileWatermarkHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.filewatermarks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFileWatermarkHeaders { + + public Map extraHeaders; + + public GetFileWatermarkHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFileWatermarkHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFileWatermarkHeaders build() { + return new GetFileWatermarkHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkHeaders.java b/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkHeaders.java new file mode 100644 index 000000000..f5716549f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.filewatermarks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateFileWatermarkHeaders { + + public Map extraHeaders; + + public UpdateFileWatermarkHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateFileWatermarkHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateFileWatermarkHeaders build() { + return new UpdateFileWatermarkHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBody.java b/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBody.java new file mode 100644 index 000000000..986017d06 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBody.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.filewatermarks; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateFileWatermarkRequestBody extends SerializableObject { + + protected final UpdateFileWatermarkRequestBodyWatermarkField watermark; + + public UpdateFileWatermarkRequestBody( + @JsonProperty("watermark") UpdateFileWatermarkRequestBodyWatermarkField watermark) { + super(); + this.watermark = watermark; + } + + public UpdateFileWatermarkRequestBodyWatermarkField getWatermark() { + return watermark; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateFileWatermarkRequestBody casted = (UpdateFileWatermarkRequestBody) o; + return Objects.equals(watermark, casted.watermark); + } + + @Override + public int hashCode() { + return Objects.hash(watermark); + } + + @Override + public String toString() { + return "UpdateFileWatermarkRequestBody{" + "watermark='" + watermark + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBodyWatermarkField.java b/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBodyWatermarkField.java new file mode 100644 index 000000000..559ffdcdb --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBodyWatermarkField.java @@ -0,0 +1,90 @@ +package com.box.sdkgen.managers.filewatermarks; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateFileWatermarkRequestBodyWatermarkField extends SerializableObject { + + @JsonDeserialize( + using = + UpdateFileWatermarkRequestBodyWatermarkImprintField + .UpdateFileWatermarkRequestBodyWatermarkImprintFieldDeserializer.class) + @JsonSerialize( + using = + UpdateFileWatermarkRequestBodyWatermarkImprintField + .UpdateFileWatermarkRequestBodyWatermarkImprintFieldSerializer.class) + protected EnumWrapper imprint; + + public UpdateFileWatermarkRequestBodyWatermarkField() { + super(); + this.imprint = + new EnumWrapper( + UpdateFileWatermarkRequestBodyWatermarkImprintField.DEFAULT); + } + + protected UpdateFileWatermarkRequestBodyWatermarkField(Builder builder) { + super(); + this.imprint = builder.imprint; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getImprint() { + return imprint; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateFileWatermarkRequestBodyWatermarkField casted = + (UpdateFileWatermarkRequestBodyWatermarkField) o; + return Objects.equals(imprint, casted.imprint); + } + + @Override + public int hashCode() { + return Objects.hash(imprint); + } + + @Override + public String toString() { + return "UpdateFileWatermarkRequestBodyWatermarkField{" + "imprint='" + imprint + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper imprint; + + public Builder() { + super(); + this.imprint = + new EnumWrapper( + UpdateFileWatermarkRequestBodyWatermarkImprintField.DEFAULT); + } + + public Builder imprint(UpdateFileWatermarkRequestBodyWatermarkImprintField imprint) { + this.imprint = new EnumWrapper(imprint); + return this; + } + + public Builder imprint( + EnumWrapper imprint) { + this.imprint = imprint; + return this; + } + + public UpdateFileWatermarkRequestBodyWatermarkField build() { + return new UpdateFileWatermarkRequestBodyWatermarkField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBodyWatermarkImprintField.java b/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBodyWatermarkImprintField.java new file mode 100644 index 000000000..ae1a4630c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBodyWatermarkImprintField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.filewatermarks; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateFileWatermarkRequestBodyWatermarkImprintField implements Valuable { + DEFAULT("default"); + + private final String value; + + UpdateFileWatermarkRequestBodyWatermarkImprintField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateFileWatermarkRequestBodyWatermarkImprintFieldDeserializer + extends JsonDeserializer> { + + public UpdateFileWatermarkRequestBodyWatermarkImprintFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateFileWatermarkRequestBodyWatermarkImprintField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateFileWatermarkRequestBodyWatermarkImprintFieldSerializer + extends JsonSerializer> { + + public UpdateFileWatermarkRequestBodyWatermarkImprintFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/AddClassificationToFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/AddClassificationToFolderHeaders.java new file mode 100644 index 000000000..f8138fe58 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/AddClassificationToFolderHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.folderclassifications; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class AddClassificationToFolderHeaders { + + public Map extraHeaders; + + public AddClassificationToFolderHeaders() { + this.extraHeaders = mapOf(); + } + + protected AddClassificationToFolderHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public AddClassificationToFolderHeaders build() { + return new AddClassificationToFolderHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/AddClassificationToFolderRequestBody.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/AddClassificationToFolderRequestBody.java new file mode 100644 index 000000000..dcad4350d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/AddClassificationToFolderRequestBody.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.managers.folderclassifications; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AddClassificationToFolderRequestBody extends SerializableObject { + + @JsonProperty("Box__Security__Classification__Key") + protected String boxSecurityClassificationKey; + + public AddClassificationToFolderRequestBody() { + super(); + } + + protected AddClassificationToFolderRequestBody(Builder builder) { + super(); + this.boxSecurityClassificationKey = builder.boxSecurityClassificationKey; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getBoxSecurityClassificationKey() { + return boxSecurityClassificationKey; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddClassificationToFolderRequestBody casted = (AddClassificationToFolderRequestBody) o; + return Objects.equals(boxSecurityClassificationKey, casted.boxSecurityClassificationKey); + } + + @Override + public int hashCode() { + return Objects.hash(boxSecurityClassificationKey); + } + + @Override + public String toString() { + return "AddClassificationToFolderRequestBody{" + + "boxSecurityClassificationKey='" + + boxSecurityClassificationKey + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String boxSecurityClassificationKey; + + public Builder boxSecurityClassificationKey(String boxSecurityClassificationKey) { + this.boxSecurityClassificationKey = boxSecurityClassificationKey; + return this; + } + + public AddClassificationToFolderRequestBody build() { + return new AddClassificationToFolderRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/DeleteClassificationFromFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/DeleteClassificationFromFolderHeaders.java new file mode 100644 index 000000000..40907677b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/DeleteClassificationFromFolderHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.folderclassifications; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteClassificationFromFolderHeaders { + + public Map extraHeaders; + + public DeleteClassificationFromFolderHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteClassificationFromFolderHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteClassificationFromFolderHeaders build() { + return new DeleteClassificationFromFolderHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/FolderClassificationsManager.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/FolderClassificationsManager.java new file mode 100644 index 000000000..9bb35d9b4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/FolderClassificationsManager.java @@ -0,0 +1,195 @@ +package com.box.sdkgen.managers.folderclassifications; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.classification.Classification; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.List; +import java.util.Map; + +public class FolderClassificationsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public FolderClassificationsManager() { + this.networkSession = new NetworkSession(); + } + + protected FolderClassificationsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public Classification getClassificationOnFolder(String folderId) { + return getClassificationOnFolder(folderId, new GetClassificationOnFolderHeaders()); + } + + public Classification getClassificationOnFolder( + String folderId, GetClassificationOnFolderHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId), + "/metadata/enterprise/securityClassification-6VMVochwUWo"), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Classification.class); + } + + public Classification addClassificationToFolder(String folderId) { + return addClassificationToFolder( + folderId, + new AddClassificationToFolderRequestBody(), + new AddClassificationToFolderHeaders()); + } + + public Classification addClassificationToFolder( + String folderId, AddClassificationToFolderRequestBody requestBody) { + return addClassificationToFolder(folderId, requestBody, new AddClassificationToFolderHeaders()); + } + + public Classification addClassificationToFolder( + String folderId, AddClassificationToFolderHeaders headers) { + return addClassificationToFolder(folderId, new AddClassificationToFolderRequestBody(), headers); + } + + public Classification addClassificationToFolder( + String folderId, + AddClassificationToFolderRequestBody requestBody, + AddClassificationToFolderHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId), + "/metadata/enterprise/securityClassification-6VMVochwUWo"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Classification.class); + } + + public Classification updateClassificationOnFolder( + String folderId, List requestBody) { + return updateClassificationOnFolder( + folderId, requestBody, new UpdateClassificationOnFolderHeaders()); + } + + public Classification updateClassificationOnFolder( + String folderId, + List requestBody, + UpdateClassificationOnFolderHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId), + "/metadata/enterprise/securityClassification-6VMVochwUWo"), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json-patch+json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Classification.class); + } + + public void deleteClassificationFromFolder(String folderId) { + deleteClassificationFromFolder(folderId, new DeleteClassificationFromFolderHeaders()); + } + + public void deleteClassificationFromFolder( + String folderId, DeleteClassificationFromFolderHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId), + "/metadata/enterprise/securityClassification-6VMVochwUWo"), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public FolderClassificationsManager build() { + return new FolderClassificationsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/GetClassificationOnFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/GetClassificationOnFolderHeaders.java new file mode 100644 index 000000000..48a9737d5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/GetClassificationOnFolderHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.folderclassifications; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetClassificationOnFolderHeaders { + + public Map extraHeaders; + + public GetClassificationOnFolderHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetClassificationOnFolderHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetClassificationOnFolderHeaders build() { + return new GetClassificationOnFolderHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderHeaders.java new file mode 100644 index 000000000..8e3f352b2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.folderclassifications; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateClassificationOnFolderHeaders { + + public Map extraHeaders; + + public UpdateClassificationOnFolderHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateClassificationOnFolderHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateClassificationOnFolderHeaders build() { + return new UpdateClassificationOnFolderHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBody.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBody.java new file mode 100644 index 000000000..8bb575421 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBody.java @@ -0,0 +1,147 @@ +package com.box.sdkgen.managers.folderclassifications; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateClassificationOnFolderRequestBody extends SerializableObject { + + @JsonDeserialize( + using = + UpdateClassificationOnFolderRequestBodyOpField + .UpdateClassificationOnFolderRequestBodyOpFieldDeserializer.class) + @JsonSerialize( + using = + UpdateClassificationOnFolderRequestBodyOpField + .UpdateClassificationOnFolderRequestBodyOpFieldSerializer.class) + protected EnumWrapper op; + + @JsonDeserialize( + using = + UpdateClassificationOnFolderRequestBodyPathField + .UpdateClassificationOnFolderRequestBodyPathFieldDeserializer.class) + @JsonSerialize( + using = + UpdateClassificationOnFolderRequestBodyPathField + .UpdateClassificationOnFolderRequestBodyPathFieldSerializer.class) + protected EnumWrapper path; + + protected final String value; + + public UpdateClassificationOnFolderRequestBody(@JsonProperty("value") String value) { + super(); + this.value = value; + this.op = + new EnumWrapper( + UpdateClassificationOnFolderRequestBodyOpField.REPLACE); + this.path = + new EnumWrapper( + UpdateClassificationOnFolderRequestBodyPathField._BOX__SECURITY__CLASSIFICATION__KEY); + } + + protected UpdateClassificationOnFolderRequestBody(Builder builder) { + super(); + this.op = builder.op; + this.path = builder.path; + this.value = builder.value; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getOp() { + return op; + } + + public EnumWrapper getPath() { + return path; + } + + public String getValue() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateClassificationOnFolderRequestBody casted = (UpdateClassificationOnFolderRequestBody) o; + return Objects.equals(op, casted.op) + && Objects.equals(path, casted.path) + && Objects.equals(value, casted.value); + } + + @Override + public int hashCode() { + return Objects.hash(op, path, value); + } + + @Override + public String toString() { + return "UpdateClassificationOnFolderRequestBody{" + + "op='" + + op + + '\'' + + ", " + + "path='" + + path + + '\'' + + ", " + + "value='" + + value + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper op; + + protected EnumWrapper path; + + protected final String value; + + public Builder(String value) { + super(); + this.value = value; + this.op = + new EnumWrapper( + UpdateClassificationOnFolderRequestBodyOpField.REPLACE); + this.path = + new EnumWrapper( + UpdateClassificationOnFolderRequestBodyPathField._BOX__SECURITY__CLASSIFICATION__KEY); + } + + public Builder op(UpdateClassificationOnFolderRequestBodyOpField op) { + this.op = new EnumWrapper(op); + return this; + } + + public Builder op(EnumWrapper op) { + this.op = op; + return this; + } + + public Builder path(UpdateClassificationOnFolderRequestBodyPathField path) { + this.path = new EnumWrapper(path); + return this; + } + + public Builder path(EnumWrapper path) { + this.path = path; + return this; + } + + public UpdateClassificationOnFolderRequestBody build() { + return new UpdateClassificationOnFolderRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBodyOpField.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBodyOpField.java new file mode 100644 index 000000000..5e155bfae --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBodyOpField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.folderclassifications; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateClassificationOnFolderRequestBodyOpField implements Valuable { + REPLACE("replace"); + + private final String value; + + UpdateClassificationOnFolderRequestBodyOpField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateClassificationOnFolderRequestBodyOpFieldDeserializer + extends JsonDeserializer> { + + public UpdateClassificationOnFolderRequestBodyOpFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateClassificationOnFolderRequestBodyOpField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateClassificationOnFolderRequestBodyOpFieldSerializer + extends JsonSerializer> { + + public UpdateClassificationOnFolderRequestBodyOpFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBodyPathField.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBodyPathField.java new file mode 100644 index 000000000..68781753d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBodyPathField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.folderclassifications; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateClassificationOnFolderRequestBodyPathField implements Valuable { + _BOX__SECURITY__CLASSIFICATION__KEY("/Box__Security__Classification__Key"); + + private final String value; + + UpdateClassificationOnFolderRequestBodyPathField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateClassificationOnFolderRequestBodyPathFieldDeserializer + extends JsonDeserializer> { + + public UpdateClassificationOnFolderRequestBodyPathFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateClassificationOnFolderRequestBodyPathField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateClassificationOnFolderRequestBodyPathFieldSerializer + extends JsonSerializer> { + + public UpdateClassificationOnFolderRequestBodyPathFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockHeaders.java b/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockHeaders.java new file mode 100644 index 000000000..6157e7e9a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.folderlocks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateFolderLockHeaders { + + public Map extraHeaders; + + public CreateFolderLockHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateFolderLockHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateFolderLockHeaders build() { + return new CreateFolderLockHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockRequestBody.java b/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockRequestBody.java new file mode 100644 index 000000000..4d2fb90cf --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockRequestBody.java @@ -0,0 +1,90 @@ +package com.box.sdkgen.managers.folderlocks; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateFolderLockRequestBody extends SerializableObject { + + @JsonProperty("locked_operations") + protected CreateFolderLockRequestBodyLockedOperationsField lockedOperations; + + protected final CreateFolderLockRequestBodyFolderField folder; + + public CreateFolderLockRequestBody( + @JsonProperty("folder") CreateFolderLockRequestBodyFolderField folder) { + super(); + this.folder = folder; + } + + protected CreateFolderLockRequestBody(Builder builder) { + super(); + this.lockedOperations = builder.lockedOperations; + this.folder = builder.folder; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public CreateFolderLockRequestBodyLockedOperationsField getLockedOperations() { + return lockedOperations; + } + + public CreateFolderLockRequestBodyFolderField getFolder() { + return folder; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateFolderLockRequestBody casted = (CreateFolderLockRequestBody) o; + return Objects.equals(lockedOperations, casted.lockedOperations) + && Objects.equals(folder, casted.folder); + } + + @Override + public int hashCode() { + return Objects.hash(lockedOperations, folder); + } + + @Override + public String toString() { + return "CreateFolderLockRequestBody{" + + "lockedOperations='" + + lockedOperations + + '\'' + + ", " + + "folder='" + + folder + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected CreateFolderLockRequestBodyLockedOperationsField lockedOperations; + + protected final CreateFolderLockRequestBodyFolderField folder; + + public Builder(CreateFolderLockRequestBodyFolderField folder) { + super(); + this.folder = folder; + } + + public Builder lockedOperations( + CreateFolderLockRequestBodyLockedOperationsField lockedOperations) { + this.lockedOperations = lockedOperations; + return this; + } + + public CreateFolderLockRequestBody build() { + return new CreateFolderLockRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockRequestBodyFolderField.java b/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockRequestBodyFolderField.java new file mode 100644 index 000000000..1d29ca2c5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockRequestBodyFolderField.java @@ -0,0 +1,59 @@ +package com.box.sdkgen.managers.folderlocks; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateFolderLockRequestBodyFolderField extends SerializableObject { + + protected final String type; + + protected final String id; + + public CreateFolderLockRequestBodyFolderField( + @JsonProperty("type") String type, @JsonProperty("id") String id) { + super(); + this.type = type; + this.id = id; + } + + public String getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateFolderLockRequestBodyFolderField casted = (CreateFolderLockRequestBodyFolderField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "CreateFolderLockRequestBodyFolderField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockRequestBodyLockedOperationsField.java b/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockRequestBodyLockedOperationsField.java new file mode 100644 index 000000000..a3dc99832 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockRequestBodyLockedOperationsField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.managers.folderlocks; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateFolderLockRequestBodyLockedOperationsField extends SerializableObject { + + protected final boolean move; + + protected final boolean delete; + + public CreateFolderLockRequestBodyLockedOperationsField( + @JsonProperty("move") boolean move, @JsonProperty("delete") boolean delete) { + super(); + this.move = move; + this.delete = delete; + } + + public boolean getMove() { + return move; + } + + public boolean getDelete() { + return delete; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateFolderLockRequestBodyLockedOperationsField casted = + (CreateFolderLockRequestBodyLockedOperationsField) o; + return Objects.equals(move, casted.move) && Objects.equals(delete, casted.delete); + } + + @Override + public int hashCode() { + return Objects.hash(move, delete); + } + + @Override + public String toString() { + return "CreateFolderLockRequestBodyLockedOperationsField{" + + "move='" + + move + + '\'' + + ", " + + "delete='" + + delete + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folderlocks/DeleteFolderLockByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/folderlocks/DeleteFolderLockByIdHeaders.java new file mode 100644 index 000000000..f2bf54b25 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folderlocks/DeleteFolderLockByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.folderlocks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteFolderLockByIdHeaders { + + public Map extraHeaders; + + public DeleteFolderLockByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteFolderLockByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteFolderLockByIdHeaders build() { + return new DeleteFolderLockByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folderlocks/FolderLocksManager.java b/src/main/java/com/box/sdkgen/managers/folderlocks/FolderLocksManager.java new file mode 100644 index 000000000..5c9c0dc3c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folderlocks/FolderLocksManager.java @@ -0,0 +1,145 @@ +package com.box.sdkgen.managers.folderlocks; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.folderlock.FolderLock; +import com.box.sdkgen.schemas.folderlocks.FolderLocks; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class FolderLocksManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public FolderLocksManager() { + this.networkSession = new NetworkSession(); + } + + protected FolderLocksManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public FolderLocks getFolderLocks(GetFolderLocksQueryParams queryParams) { + return getFolderLocks(queryParams, new GetFolderLocksHeaders()); + } + + public FolderLocks getFolderLocks( + GetFolderLocksQueryParams queryParams, GetFolderLocksHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("folder_id", convertToString(queryParams.getFolderId())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folder_locks"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FolderLocks.class); + } + + public FolderLock createFolderLock(CreateFolderLockRequestBody requestBody) { + return createFolderLock(requestBody, new CreateFolderLockHeaders()); + } + + public FolderLock createFolderLock( + CreateFolderLockRequestBody requestBody, CreateFolderLockHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folder_locks"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FolderLock.class); + } + + public void deleteFolderLockById(String folderLockId) { + deleteFolderLockById(folderLockId, new DeleteFolderLockByIdHeaders()); + } + + public void deleteFolderLockById(String folderLockId, DeleteFolderLockByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folder_locks/", + convertToString(folderLockId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public FolderLocksManager build() { + return new FolderLocksManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folderlocks/GetFolderLocksHeaders.java b/src/main/java/com/box/sdkgen/managers/folderlocks/GetFolderLocksHeaders.java new file mode 100644 index 000000000..60804df4b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folderlocks/GetFolderLocksHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.folderlocks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFolderLocksHeaders { + + public Map extraHeaders; + + public GetFolderLocksHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFolderLocksHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFolderLocksHeaders build() { + return new GetFolderLocksHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folderlocks/GetFolderLocksQueryParams.java b/src/main/java/com/box/sdkgen/managers/folderlocks/GetFolderLocksQueryParams.java new file mode 100644 index 000000000..927e62e66 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folderlocks/GetFolderLocksQueryParams.java @@ -0,0 +1,14 @@ +package com.box.sdkgen.managers.folderlocks; + +public class GetFolderLocksQueryParams { + + public final String folderId; + + public GetFolderLocksQueryParams(String folderId) { + this.folderId = folderId; + } + + public String getFolderId() { + return folderId; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/CreateFolderMetadataByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/CreateFolderMetadataByIdHeaders.java new file mode 100644 index 000000000..45794cb6f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/CreateFolderMetadataByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.foldermetadata; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateFolderMetadataByIdHeaders { + + public Map extraHeaders; + + public CreateFolderMetadataByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateFolderMetadataByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateFolderMetadataByIdHeaders build() { + return new CreateFolderMetadataByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/CreateFolderMetadataByIdScope.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/CreateFolderMetadataByIdScope.java new file mode 100644 index 000000000..bd8a09b63 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/CreateFolderMetadataByIdScope.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.foldermetadata; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateFolderMetadataByIdScope implements Valuable { + GLOBAL("global"), + ENTERPRISE("enterprise"); + + private final String value; + + CreateFolderMetadataByIdScope(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateFolderMetadataByIdScopeDeserializer + extends JsonDeserializer> { + + public CreateFolderMetadataByIdScopeDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateFolderMetadataByIdScope.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateFolderMetadataByIdScopeSerializer + extends JsonSerializer> { + + public CreateFolderMetadataByIdScopeSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/DeleteFolderMetadataByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/DeleteFolderMetadataByIdHeaders.java new file mode 100644 index 000000000..709f03d05 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/DeleteFolderMetadataByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.foldermetadata; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteFolderMetadataByIdHeaders { + + public Map extraHeaders; + + public DeleteFolderMetadataByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteFolderMetadataByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteFolderMetadataByIdHeaders build() { + return new DeleteFolderMetadataByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/DeleteFolderMetadataByIdScope.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/DeleteFolderMetadataByIdScope.java new file mode 100644 index 000000000..dd775898c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/DeleteFolderMetadataByIdScope.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.foldermetadata; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum DeleteFolderMetadataByIdScope implements Valuable { + GLOBAL("global"), + ENTERPRISE("enterprise"); + + private final String value; + + DeleteFolderMetadataByIdScope(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class DeleteFolderMetadataByIdScopeDeserializer + extends JsonDeserializer> { + + public DeleteFolderMetadataByIdScopeDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(DeleteFolderMetadataByIdScope.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class DeleteFolderMetadataByIdScopeSerializer + extends JsonSerializer> { + + public DeleteFolderMetadataByIdScopeSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/FolderMetadataManager.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/FolderMetadataManager.java new file mode 100644 index 000000000..9427fb2bc --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/FolderMetadataManager.java @@ -0,0 +1,241 @@ +package com.box.sdkgen.managers.foldermetadata; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.metadatafull.MetadataFull; +import com.box.sdkgen.schemas.metadatas.Metadatas; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.List; +import java.util.Map; + +public class FolderMetadataManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public FolderMetadataManager() { + this.networkSession = new NetworkSession(); + } + + protected FolderMetadataManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public Metadatas getFolderMetadata(String folderId) { + return getFolderMetadata(folderId, new GetFolderMetadataHeaders()); + } + + public Metadatas getFolderMetadata(String folderId, GetFolderMetadataHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId), + "/metadata"), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Metadatas.class); + } + + public MetadataFull getFolderMetadataById( + String folderId, GetFolderMetadataByIdScope scope, String templateKey) { + return getFolderMetadataById(folderId, scope, templateKey, new GetFolderMetadataByIdHeaders()); + } + + public MetadataFull getFolderMetadataById( + String folderId, + GetFolderMetadataByIdScope scope, + String templateKey, + GetFolderMetadataByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId), + "/metadata/", + convertToString(scope), + "/", + convertToString(templateKey)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataFull.class); + } + + public MetadataFull createFolderMetadataById( + String folderId, + CreateFolderMetadataByIdScope scope, + String templateKey, + Map requestBody) { + return createFolderMetadataById( + folderId, scope, templateKey, requestBody, new CreateFolderMetadataByIdHeaders()); + } + + public MetadataFull createFolderMetadataById( + String folderId, + CreateFolderMetadataByIdScope scope, + String templateKey, + Map requestBody, + CreateFolderMetadataByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId), + "/metadata/", + convertToString(scope), + "/", + convertToString(templateKey)), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataFull.class); + } + + public MetadataFull updateFolderMetadataById( + String folderId, + UpdateFolderMetadataByIdScope scope, + String templateKey, + List requestBody) { + return updateFolderMetadataById( + folderId, scope, templateKey, requestBody, new UpdateFolderMetadataByIdHeaders()); + } + + public MetadataFull updateFolderMetadataById( + String folderId, + UpdateFolderMetadataByIdScope scope, + String templateKey, + List requestBody, + UpdateFolderMetadataByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId), + "/metadata/", + convertToString(scope), + "/", + convertToString(templateKey)), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json-patch+json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataFull.class); + } + + public void deleteFolderMetadataById( + String folderId, DeleteFolderMetadataByIdScope scope, String templateKey) { + deleteFolderMetadataById(folderId, scope, templateKey, new DeleteFolderMetadataByIdHeaders()); + } + + public void deleteFolderMetadataById( + String folderId, + DeleteFolderMetadataByIdScope scope, + String templateKey, + DeleteFolderMetadataByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId), + "/metadata/", + convertToString(scope), + "/", + convertToString(templateKey)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public FolderMetadataManager build() { + return new FolderMetadataManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataByIdHeaders.java new file mode 100644 index 000000000..7f7dd15a9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.foldermetadata; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFolderMetadataByIdHeaders { + + public Map extraHeaders; + + public GetFolderMetadataByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFolderMetadataByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFolderMetadataByIdHeaders build() { + return new GetFolderMetadataByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataByIdScope.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataByIdScope.java new file mode 100644 index 000000000..1858f1451 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataByIdScope.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.foldermetadata; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetFolderMetadataByIdScope implements Valuable { + GLOBAL("global"), + ENTERPRISE("enterprise"); + + private final String value; + + GetFolderMetadataByIdScope(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetFolderMetadataByIdScopeDeserializer + extends JsonDeserializer> { + + public GetFolderMetadataByIdScopeDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetFolderMetadataByIdScope.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetFolderMetadataByIdScopeSerializer + extends JsonSerializer> { + + public GetFolderMetadataByIdScopeSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataHeaders.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataHeaders.java new file mode 100644 index 000000000..4044b3cbe --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.foldermetadata; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFolderMetadataHeaders { + + public Map extraHeaders; + + public GetFolderMetadataHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFolderMetadataHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFolderMetadataHeaders build() { + return new GetFolderMetadataHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdHeaders.java new file mode 100644 index 000000000..47047a407 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.foldermetadata; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateFolderMetadataByIdHeaders { + + public Map extraHeaders; + + public UpdateFolderMetadataByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateFolderMetadataByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateFolderMetadataByIdHeaders build() { + return new UpdateFolderMetadataByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdRequestBody.java new file mode 100644 index 000000000..28595f0bf --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdRequestBody.java @@ -0,0 +1,161 @@ +package com.box.sdkgen.managers.foldermetadata; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.metadatainstancevalue.MetadataInstanceValue; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateFolderMetadataByIdRequestBody extends SerializableObject { + + @JsonDeserialize( + using = + UpdateFolderMetadataByIdRequestBodyOpField + .UpdateFolderMetadataByIdRequestBodyOpFieldDeserializer.class) + @JsonSerialize( + using = + UpdateFolderMetadataByIdRequestBodyOpField + .UpdateFolderMetadataByIdRequestBodyOpFieldSerializer.class) + protected EnumWrapper op; + + protected String path; + + protected MetadataInstanceValue value; + + protected String from; + + public UpdateFolderMetadataByIdRequestBody() { + super(); + } + + protected UpdateFolderMetadataByIdRequestBody(Builder builder) { + super(); + this.op = builder.op; + this.path = builder.path; + this.value = builder.value; + this.from = builder.from; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getOp() { + return op; + } + + public String getPath() { + return path; + } + + public MetadataInstanceValue getValue() { + return value; + } + + public String getFrom() { + return from; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateFolderMetadataByIdRequestBody casted = (UpdateFolderMetadataByIdRequestBody) o; + return Objects.equals(op, casted.op) + && Objects.equals(path, casted.path) + && Objects.equals(value, casted.value) + && Objects.equals(from, casted.from); + } + + @Override + public int hashCode() { + return Objects.hash(op, path, value, from); + } + + @Override + public String toString() { + return "UpdateFolderMetadataByIdRequestBody{" + + "op='" + + op + + '\'' + + ", " + + "path='" + + path + + '\'' + + ", " + + "value='" + + value + + '\'' + + ", " + + "from='" + + from + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper op; + + protected String path; + + protected MetadataInstanceValue value; + + protected String from; + + public Builder op(UpdateFolderMetadataByIdRequestBodyOpField op) { + this.op = new EnumWrapper(op); + return this; + } + + public Builder op(EnumWrapper op) { + this.op = op; + return this; + } + + public Builder path(String path) { + this.path = path; + return this; + } + + public Builder value(String value) { + this.value = new MetadataInstanceValue(value); + return this; + } + + public Builder value(long value) { + this.value = new MetadataInstanceValue(value); + return this; + } + + public Builder value(double value) { + this.value = new MetadataInstanceValue(value); + return this; + } + + public Builder value(List value) { + this.value = new MetadataInstanceValue(value); + return this; + } + + public Builder value(MetadataInstanceValue value) { + this.value = value; + return this; + } + + public Builder from(String from) { + this.from = from; + return this; + } + + public UpdateFolderMetadataByIdRequestBody build() { + return new UpdateFolderMetadataByIdRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdRequestBodyOpField.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdRequestBodyOpField.java new file mode 100644 index 000000000..8ae448474 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdRequestBodyOpField.java @@ -0,0 +1,67 @@ +package com.box.sdkgen.managers.foldermetadata; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateFolderMetadataByIdRequestBodyOpField implements Valuable { + ADD("add"), + REPLACE("replace"), + REMOVE("remove"), + TEST("test"), + MOVE("move"), + COPY("copy"); + + private final String value; + + UpdateFolderMetadataByIdRequestBodyOpField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateFolderMetadataByIdRequestBodyOpFieldDeserializer + extends JsonDeserializer> { + + public UpdateFolderMetadataByIdRequestBodyOpFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateFolderMetadataByIdRequestBodyOpField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateFolderMetadataByIdRequestBodyOpFieldSerializer + extends JsonSerializer> { + + public UpdateFolderMetadataByIdRequestBodyOpFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdScope.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdScope.java new file mode 100644 index 000000000..9881b6b06 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdScope.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.foldermetadata; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateFolderMetadataByIdScope implements Valuable { + GLOBAL("global"), + ENTERPRISE("enterprise"); + + private final String value; + + UpdateFolderMetadataByIdScope(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateFolderMetadataByIdScopeDeserializer + extends JsonDeserializer> { + + public UpdateFolderMetadataByIdScopeDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateFolderMetadataByIdScope.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateFolderMetadataByIdScopeSerializer + extends JsonSerializer> { + + public UpdateFolderMetadataByIdScopeSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/CopyFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/folders/CopyFolderHeaders.java new file mode 100644 index 000000000..f15bdd4e6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/CopyFolderHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.folders; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CopyFolderHeaders { + + public Map extraHeaders; + + public CopyFolderHeaders() { + this.extraHeaders = mapOf(); + } + + protected CopyFolderHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CopyFolderHeaders build() { + return new CopyFolderHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/CopyFolderQueryParams.java b/src/main/java/com/box/sdkgen/managers/folders/CopyFolderQueryParams.java new file mode 100644 index 000000000..81270374f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/CopyFolderQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.folders; + +import java.util.List; + +public class CopyFolderQueryParams { + + public List fields; + + public CopyFolderQueryParams() {} + + protected CopyFolderQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public CopyFolderQueryParams build() { + return new CopyFolderQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/CopyFolderRequestBody.java b/src/main/java/com/box/sdkgen/managers/folders/CopyFolderRequestBody.java new file mode 100644 index 000000000..3b0bd9ad2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/CopyFolderRequestBody.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.managers.folders; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CopyFolderRequestBody extends SerializableObject { + + protected String name; + + protected final CopyFolderRequestBodyParentField parent; + + public CopyFolderRequestBody(@JsonProperty("parent") CopyFolderRequestBodyParentField parent) { + super(); + this.parent = parent; + } + + protected CopyFolderRequestBody(Builder builder) { + super(); + this.name = builder.name; + this.parent = builder.parent; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public CopyFolderRequestBodyParentField getParent() { + return parent; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CopyFolderRequestBody casted = (CopyFolderRequestBody) o; + return Objects.equals(name, casted.name) && Objects.equals(parent, casted.parent); + } + + @Override + public int hashCode() { + return Objects.hash(name, parent); + } + + @Override + public String toString() { + return "CopyFolderRequestBody{" + + "name='" + + name + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String name; + + protected final CopyFolderRequestBodyParentField parent; + + public Builder(CopyFolderRequestBodyParentField parent) { + super(); + this.parent = parent; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public CopyFolderRequestBody build() { + return new CopyFolderRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/CopyFolderRequestBodyParentField.java b/src/main/java/com/box/sdkgen/managers/folders/CopyFolderRequestBodyParentField.java new file mode 100644 index 000000000..dbe872876 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/CopyFolderRequestBodyParentField.java @@ -0,0 +1,43 @@ +package com.box.sdkgen.managers.folders; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CopyFolderRequestBodyParentField extends SerializableObject { + + protected final String id; + + public CopyFolderRequestBodyParentField(@JsonProperty("id") String id) { + super(); + this.id = id; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CopyFolderRequestBodyParentField casted = (CopyFolderRequestBodyParentField) o; + return Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + return "CopyFolderRequestBodyParentField{" + "id='" + id + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/CreateFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderHeaders.java new file mode 100644 index 000000000..e49a94833 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.folders; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateFolderHeaders { + + public Map extraHeaders; + + public CreateFolderHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateFolderHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateFolderHeaders build() { + return new CreateFolderHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/CreateFolderQueryParams.java b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderQueryParams.java new file mode 100644 index 000000000..430ebbb21 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.folders; + +import java.util.List; + +public class CreateFolderQueryParams { + + public List fields; + + public CreateFolderQueryParams() {} + + protected CreateFolderQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public CreateFolderQueryParams build() { + return new CreateFolderQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBody.java b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBody.java new file mode 100644 index 000000000..479eb6388 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBody.java @@ -0,0 +1,143 @@ +package com.box.sdkgen.managers.folders; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateFolderRequestBody extends SerializableObject { + + protected final String name; + + protected final CreateFolderRequestBodyParentField parent; + + @JsonProperty("folder_upload_email") + protected CreateFolderRequestBodyFolderUploadEmailField folderUploadEmail; + + @JsonDeserialize( + using = + CreateFolderRequestBodySyncStateField.CreateFolderRequestBodySyncStateFieldDeserializer + .class) + @JsonSerialize( + using = + CreateFolderRequestBodySyncStateField.CreateFolderRequestBodySyncStateFieldSerializer + .class) + @JsonProperty("sync_state") + protected EnumWrapper syncState; + + public CreateFolderRequestBody( + @JsonProperty("name") String name, + @JsonProperty("parent") CreateFolderRequestBodyParentField parent) { + super(); + this.name = name; + this.parent = parent; + } + + protected CreateFolderRequestBody(Builder builder) { + super(); + this.name = builder.name; + this.parent = builder.parent; + this.folderUploadEmail = builder.folderUploadEmail; + this.syncState = builder.syncState; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public CreateFolderRequestBodyParentField getParent() { + return parent; + } + + public CreateFolderRequestBodyFolderUploadEmailField getFolderUploadEmail() { + return folderUploadEmail; + } + + public EnumWrapper getSyncState() { + return syncState; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateFolderRequestBody casted = (CreateFolderRequestBody) o; + return Objects.equals(name, casted.name) + && Objects.equals(parent, casted.parent) + && Objects.equals(folderUploadEmail, casted.folderUploadEmail) + && Objects.equals(syncState, casted.syncState); + } + + @Override + public int hashCode() { + return Objects.hash(name, parent, folderUploadEmail, syncState); + } + + @Override + public String toString() { + return "CreateFolderRequestBody{" + + "name='" + + name + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + ", " + + "folderUploadEmail='" + + folderUploadEmail + + '\'' + + ", " + + "syncState='" + + syncState + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String name; + + protected final CreateFolderRequestBodyParentField parent; + + protected CreateFolderRequestBodyFolderUploadEmailField folderUploadEmail; + + protected EnumWrapper syncState; + + public Builder(String name, CreateFolderRequestBodyParentField parent) { + super(); + this.name = name; + this.parent = parent; + } + + public Builder folderUploadEmail( + CreateFolderRequestBodyFolderUploadEmailField folderUploadEmail) { + this.folderUploadEmail = folderUploadEmail; + return this; + } + + public Builder syncState(CreateFolderRequestBodySyncStateField syncState) { + this.syncState = new EnumWrapper(syncState); + return this; + } + + public Builder syncState(EnumWrapper syncState) { + this.syncState = syncState; + return this; + } + + public CreateFolderRequestBody build() { + return new CreateFolderRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodyFolderUploadEmailAccessField.java b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodyFolderUploadEmailAccessField.java new file mode 100644 index 000000000..ef7ed841f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodyFolderUploadEmailAccessField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.folders; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateFolderRequestBodyFolderUploadEmailAccessField implements Valuable { + OPEN("open"), + COLLABORATORS("collaborators"); + + private final String value; + + CreateFolderRequestBodyFolderUploadEmailAccessField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateFolderRequestBodyFolderUploadEmailAccessFieldDeserializer + extends JsonDeserializer> { + + public CreateFolderRequestBodyFolderUploadEmailAccessFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateFolderRequestBodyFolderUploadEmailAccessField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateFolderRequestBodyFolderUploadEmailAccessFieldSerializer + extends JsonSerializer> { + + public CreateFolderRequestBodyFolderUploadEmailAccessFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodyFolderUploadEmailField.java b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodyFolderUploadEmailField.java new file mode 100644 index 000000000..4f73af140 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodyFolderUploadEmailField.java @@ -0,0 +1,79 @@ +package com.box.sdkgen.managers.folders; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateFolderRequestBodyFolderUploadEmailField extends SerializableObject { + + @JsonDeserialize( + using = + CreateFolderRequestBodyFolderUploadEmailAccessField + .CreateFolderRequestBodyFolderUploadEmailAccessFieldDeserializer.class) + @JsonSerialize( + using = + CreateFolderRequestBodyFolderUploadEmailAccessField + .CreateFolderRequestBodyFolderUploadEmailAccessFieldSerializer.class) + protected EnumWrapper access; + + public CreateFolderRequestBodyFolderUploadEmailField() { + super(); + } + + protected CreateFolderRequestBodyFolderUploadEmailField(Builder builder) { + super(); + this.access = builder.access; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getAccess() { + return access; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateFolderRequestBodyFolderUploadEmailField casted = + (CreateFolderRequestBodyFolderUploadEmailField) o; + return Objects.equals(access, casted.access); + } + + @Override + public int hashCode() { + return Objects.hash(access); + } + + @Override + public String toString() { + return "CreateFolderRequestBodyFolderUploadEmailField{" + "access='" + access + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper access; + + public Builder access(CreateFolderRequestBodyFolderUploadEmailAccessField access) { + this.access = new EnumWrapper(access); + return this; + } + + public Builder access(EnumWrapper access) { + this.access = access; + return this; + } + + public CreateFolderRequestBodyFolderUploadEmailField build() { + return new CreateFolderRequestBodyFolderUploadEmailField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodyParentField.java b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodyParentField.java new file mode 100644 index 000000000..7c687d0a7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodyParentField.java @@ -0,0 +1,43 @@ +package com.box.sdkgen.managers.folders; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateFolderRequestBodyParentField extends SerializableObject { + + protected final String id; + + public CreateFolderRequestBodyParentField(@JsonProperty("id") String id) { + super(); + this.id = id; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateFolderRequestBodyParentField casted = (CreateFolderRequestBodyParentField) o; + return Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + return "CreateFolderRequestBodyParentField{" + "id='" + id + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodySyncStateField.java b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodySyncStateField.java new file mode 100644 index 000000000..39510e004 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodySyncStateField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.folders; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateFolderRequestBodySyncStateField implements Valuable { + SYNCED("synced"), + NOT_SYNCED("not_synced"), + PARTIALLY_SYNCED("partially_synced"); + + private final String value; + + CreateFolderRequestBodySyncStateField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateFolderRequestBodySyncStateFieldDeserializer + extends JsonDeserializer> { + + public CreateFolderRequestBodySyncStateFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateFolderRequestBodySyncStateField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateFolderRequestBodySyncStateFieldSerializer + extends JsonSerializer> { + + public CreateFolderRequestBodySyncStateFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/DeleteFolderByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/folders/DeleteFolderByIdHeaders.java new file mode 100644 index 000000000..db7fe0a3d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/DeleteFolderByIdHeaders.java @@ -0,0 +1,54 @@ +package com.box.sdkgen.managers.folders; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteFolderByIdHeaders { + + public String ifMatch; + + public Map extraHeaders; + + public DeleteFolderByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteFolderByIdHeaders(Builder builder) { + this.ifMatch = builder.ifMatch; + this.extraHeaders = builder.extraHeaders; + } + + public String getIfMatch() { + return ifMatch; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected String ifMatch; + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder ifMatch(String ifMatch) { + this.ifMatch = ifMatch; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteFolderByIdHeaders build() { + return new DeleteFolderByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/DeleteFolderByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/folders/DeleteFolderByIdQueryParams.java new file mode 100644 index 000000000..2bd159cfa --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/DeleteFolderByIdQueryParams.java @@ -0,0 +1,30 @@ +package com.box.sdkgen.managers.folders; + +public class DeleteFolderByIdQueryParams { + + public Boolean recursive; + + public DeleteFolderByIdQueryParams() {} + + protected DeleteFolderByIdQueryParams(Builder builder) { + this.recursive = builder.recursive; + } + + public Boolean getRecursive() { + return recursive; + } + + public static class Builder { + + protected Boolean recursive; + + public Builder recursive(Boolean recursive) { + this.recursive = recursive; + return this; + } + + public DeleteFolderByIdQueryParams build() { + return new DeleteFolderByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/FoldersManager.java b/src/main/java/com/box/sdkgen/managers/folders/FoldersManager.java new file mode 100644 index 000000000..7694316de --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/FoldersManager.java @@ -0,0 +1,363 @@ +package com.box.sdkgen.managers.folders; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.items.Items; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class FoldersManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public FoldersManager() { + this.networkSession = new NetworkSession(); + } + + protected FoldersManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public FolderFull getFolderById(String folderId) { + return getFolderById(folderId, new GetFolderByIdQueryParams(), new GetFolderByIdHeaders()); + } + + public FolderFull getFolderById(String folderId, GetFolderByIdQueryParams queryParams) { + return getFolderById(folderId, queryParams, new GetFolderByIdHeaders()); + } + + public FolderFull getFolderById(String folderId, GetFolderByIdHeaders headers) { + return getFolderById(folderId, new GetFolderByIdQueryParams(), headers); + } + + public FolderFull getFolderById( + String folderId, GetFolderByIdQueryParams queryParams, GetFolderByIdHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("fields", convertToString(queryParams.getFields())), + entryOf("sort", convertToString(queryParams.getSort())), + entryOf("direction", convertToString(queryParams.getDirection())), + entryOf("offset", convertToString(queryParams.getOffset())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf( + entryOf("if-none-match", convertToString(headers.getIfNoneMatch())), + entryOf("boxapi", convertToString(headers.getBoxapi()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId)), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FolderFull.class); + } + + public FolderFull updateFolderById(String folderId) { + return updateFolderById( + folderId, + new UpdateFolderByIdRequestBody(), + new UpdateFolderByIdQueryParams(), + new UpdateFolderByIdHeaders()); + } + + public FolderFull updateFolderById(String folderId, UpdateFolderByIdRequestBody requestBody) { + return updateFolderById( + folderId, requestBody, new UpdateFolderByIdQueryParams(), new UpdateFolderByIdHeaders()); + } + + public FolderFull updateFolderById(String folderId, UpdateFolderByIdQueryParams queryParams) { + return updateFolderById( + folderId, new UpdateFolderByIdRequestBody(), queryParams, new UpdateFolderByIdHeaders()); + } + + public FolderFull updateFolderById( + String folderId, + UpdateFolderByIdRequestBody requestBody, + UpdateFolderByIdQueryParams queryParams) { + return updateFolderById(folderId, requestBody, queryParams, new UpdateFolderByIdHeaders()); + } + + public FolderFull updateFolderById(String folderId, UpdateFolderByIdHeaders headers) { + return updateFolderById( + folderId, new UpdateFolderByIdRequestBody(), new UpdateFolderByIdQueryParams(), headers); + } + + public FolderFull updateFolderById( + String folderId, UpdateFolderByIdRequestBody requestBody, UpdateFolderByIdHeaders headers) { + return updateFolderById(folderId, requestBody, new UpdateFolderByIdQueryParams(), headers); + } + + public FolderFull updateFolderById( + String folderId, UpdateFolderByIdQueryParams queryParams, UpdateFolderByIdHeaders headers) { + return updateFolderById(folderId, new UpdateFolderByIdRequestBody(), queryParams, headers); + } + + public FolderFull updateFolderById( + String folderId, + UpdateFolderByIdRequestBody requestBody, + UpdateFolderByIdQueryParams queryParams, + UpdateFolderByIdHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("if-match", convertToString(headers.getIfMatch()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId)), + "PUT") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FolderFull.class); + } + + public void deleteFolderById(String folderId) { + deleteFolderById(folderId, new DeleteFolderByIdQueryParams(), new DeleteFolderByIdHeaders()); + } + + public void deleteFolderById(String folderId, DeleteFolderByIdQueryParams queryParams) { + deleteFolderById(folderId, queryParams, new DeleteFolderByIdHeaders()); + } + + public void deleteFolderById(String folderId, DeleteFolderByIdHeaders headers) { + deleteFolderById(folderId, new DeleteFolderByIdQueryParams(), headers); + } + + public void deleteFolderById( + String folderId, DeleteFolderByIdQueryParams queryParams, DeleteFolderByIdHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("recursive", convertToString(queryParams.getRecursive())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("if-match", convertToString(headers.getIfMatch()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId)), + "DELETE") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Items getFolderItems(String folderId) { + return getFolderItems(folderId, new GetFolderItemsQueryParams(), new GetFolderItemsHeaders()); + } + + public Items getFolderItems(String folderId, GetFolderItemsQueryParams queryParams) { + return getFolderItems(folderId, queryParams, new GetFolderItemsHeaders()); + } + + public Items getFolderItems(String folderId, GetFolderItemsHeaders headers) { + return getFolderItems(folderId, new GetFolderItemsQueryParams(), headers); + } + + public Items getFolderItems( + String folderId, GetFolderItemsQueryParams queryParams, GetFolderItemsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("fields", convertToString(queryParams.getFields())), + entryOf("usemarker", convertToString(queryParams.getUsemarker())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("offset", convertToString(queryParams.getOffset())), + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf("sort", convertToString(queryParams.getSort())), + entryOf("direction", convertToString(queryParams.getDirection())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("boxapi", convertToString(headers.getBoxapi()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId), + "/items"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Items.class); + } + + public FolderFull createFolder(CreateFolderRequestBody requestBody) { + return createFolder(requestBody, new CreateFolderQueryParams(), new CreateFolderHeaders()); + } + + public FolderFull createFolder( + CreateFolderRequestBody requestBody, CreateFolderQueryParams queryParams) { + return createFolder(requestBody, queryParams, new CreateFolderHeaders()); + } + + public FolderFull createFolder(CreateFolderRequestBody requestBody, CreateFolderHeaders headers) { + return createFolder(requestBody, new CreateFolderQueryParams(), headers); + } + + public FolderFull createFolder( + CreateFolderRequestBody requestBody, + CreateFolderQueryParams queryParams, + CreateFolderHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/folders"), + "POST") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FolderFull.class); + } + + public FolderFull copyFolder(String folderId, CopyFolderRequestBody requestBody) { + return copyFolder(folderId, requestBody, new CopyFolderQueryParams(), new CopyFolderHeaders()); + } + + public FolderFull copyFolder( + String folderId, CopyFolderRequestBody requestBody, CopyFolderQueryParams queryParams) { + return copyFolder(folderId, requestBody, queryParams, new CopyFolderHeaders()); + } + + public FolderFull copyFolder( + String folderId, CopyFolderRequestBody requestBody, CopyFolderHeaders headers) { + return copyFolder(folderId, requestBody, new CopyFolderQueryParams(), headers); + } + + public FolderFull copyFolder( + String folderId, + CopyFolderRequestBody requestBody, + CopyFolderQueryParams queryParams, + CopyFolderHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId), + "/copy"), + "POST") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FolderFull.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public FoldersManager build() { + return new FoldersManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdHeaders.java new file mode 100644 index 000000000..f2711b33d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdHeaders.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.managers.folders; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFolderByIdHeaders { + + public String ifNoneMatch; + + public String boxapi; + + public Map extraHeaders; + + public GetFolderByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFolderByIdHeaders(Builder builder) { + this.ifNoneMatch = builder.ifNoneMatch; + this.boxapi = builder.boxapi; + this.extraHeaders = builder.extraHeaders; + } + + public String getIfNoneMatch() { + return ifNoneMatch; + } + + public String getBoxapi() { + return boxapi; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected String ifNoneMatch; + + protected String boxapi; + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder ifNoneMatch(String ifNoneMatch) { + this.ifNoneMatch = ifNoneMatch; + return this; + } + + public Builder boxapi(String boxapi) { + this.boxapi = boxapi; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFolderByIdHeaders build() { + return new GetFolderByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParams.java new file mode 100644 index 000000000..bb4ccf851 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParams.java @@ -0,0 +1,99 @@ +package com.box.sdkgen.managers.folders; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.List; + +public class GetFolderByIdQueryParams { + + public List fields; + + public EnumWrapper sort; + + public EnumWrapper direction; + + public Long offset; + + public Long limit; + + public GetFolderByIdQueryParams() {} + + protected GetFolderByIdQueryParams(Builder builder) { + this.fields = builder.fields; + this.sort = builder.sort; + this.direction = builder.direction; + this.offset = builder.offset; + this.limit = builder.limit; + } + + public List getFields() { + return fields; + } + + public EnumWrapper getSort() { + return sort; + } + + public EnumWrapper getDirection() { + return direction; + } + + public Long getOffset() { + return offset; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected List fields; + + protected EnumWrapper sort; + + protected EnumWrapper direction; + + protected Long offset; + + protected Long limit; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder sort(GetFolderByIdQueryParamsSortField sort) { + this.sort = new EnumWrapper(sort); + return this; + } + + public Builder sort(EnumWrapper sort) { + this.sort = sort; + return this; + } + + public Builder direction(GetFolderByIdQueryParamsDirectionField direction) { + this.direction = new EnumWrapper(direction); + return this; + } + + public Builder direction(EnumWrapper direction) { + this.direction = direction; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetFolderByIdQueryParams build() { + return new GetFolderByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParamsDirectionField.java b/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParamsDirectionField.java new file mode 100644 index 000000000..0c73fed56 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParamsDirectionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.folders; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetFolderByIdQueryParamsDirectionField implements Valuable { + ASC("ASC"), + DESC("DESC"); + + private final String value; + + GetFolderByIdQueryParamsDirectionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetFolderByIdQueryParamsDirectionFieldDeserializer + extends JsonDeserializer> { + + public GetFolderByIdQueryParamsDirectionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetFolderByIdQueryParamsDirectionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetFolderByIdQueryParamsDirectionFieldSerializer + extends JsonSerializer> { + + public GetFolderByIdQueryParamsDirectionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParamsSortField.java b/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParamsSortField.java new file mode 100644 index 000000000..defcf5034 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParamsSortField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.managers.folders; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetFolderByIdQueryParamsSortField implements Valuable { + ID("id"), + NAME("name"), + DATE("date"), + SIZE("size"); + + private final String value; + + GetFolderByIdQueryParamsSortField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetFolderByIdQueryParamsSortFieldDeserializer + extends JsonDeserializer> { + + public GetFolderByIdQueryParamsSortFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetFolderByIdQueryParamsSortField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetFolderByIdQueryParamsSortFieldSerializer + extends JsonSerializer> { + + public GetFolderByIdQueryParamsSortFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsHeaders.java b/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsHeaders.java new file mode 100644 index 000000000..ef8c9fc1d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsHeaders.java @@ -0,0 +1,54 @@ +package com.box.sdkgen.managers.folders; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFolderItemsHeaders { + + public String boxapi; + + public Map extraHeaders; + + public GetFolderItemsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFolderItemsHeaders(Builder builder) { + this.boxapi = builder.boxapi; + this.extraHeaders = builder.extraHeaders; + } + + public String getBoxapi() { + return boxapi; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected String boxapi; + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder boxapi(String boxapi) { + this.boxapi = boxapi; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFolderItemsHeaders build() { + return new GetFolderItemsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParams.java b/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParams.java new file mode 100644 index 000000000..b94b8d371 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParams.java @@ -0,0 +1,127 @@ +package com.box.sdkgen.managers.folders; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.List; + +public class GetFolderItemsQueryParams { + + public List fields; + + public Boolean usemarker; + + public String marker; + + public Long offset; + + public Long limit; + + public EnumWrapper sort; + + public EnumWrapper direction; + + public GetFolderItemsQueryParams() {} + + protected GetFolderItemsQueryParams(Builder builder) { + this.fields = builder.fields; + this.usemarker = builder.usemarker; + this.marker = builder.marker; + this.offset = builder.offset; + this.limit = builder.limit; + this.sort = builder.sort; + this.direction = builder.direction; + } + + public List getFields() { + return fields; + } + + public Boolean getUsemarker() { + return usemarker; + } + + public String getMarker() { + return marker; + } + + public Long getOffset() { + return offset; + } + + public Long getLimit() { + return limit; + } + + public EnumWrapper getSort() { + return sort; + } + + public EnumWrapper getDirection() { + return direction; + } + + public static class Builder { + + protected List fields; + + protected Boolean usemarker; + + protected String marker; + + protected Long offset; + + protected Long limit; + + protected EnumWrapper sort; + + protected EnumWrapper direction; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder usemarker(Boolean usemarker) { + this.usemarker = usemarker; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder sort(GetFolderItemsQueryParamsSortField sort) { + this.sort = new EnumWrapper(sort); + return this; + } + + public Builder sort(EnumWrapper sort) { + this.sort = sort; + return this; + } + + public Builder direction(GetFolderItemsQueryParamsDirectionField direction) { + this.direction = new EnumWrapper(direction); + return this; + } + + public Builder direction(EnumWrapper direction) { + this.direction = direction; + return this; + } + + public GetFolderItemsQueryParams build() { + return new GetFolderItemsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParamsDirectionField.java b/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParamsDirectionField.java new file mode 100644 index 000000000..28a29f090 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParamsDirectionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.folders; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetFolderItemsQueryParamsDirectionField implements Valuable { + ASC("ASC"), + DESC("DESC"); + + private final String value; + + GetFolderItemsQueryParamsDirectionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetFolderItemsQueryParamsDirectionFieldDeserializer + extends JsonDeserializer> { + + public GetFolderItemsQueryParamsDirectionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetFolderItemsQueryParamsDirectionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetFolderItemsQueryParamsDirectionFieldSerializer + extends JsonSerializer> { + + public GetFolderItemsQueryParamsDirectionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParamsSortField.java b/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParamsSortField.java new file mode 100644 index 000000000..3c8250b9f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParamsSortField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.managers.folders; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetFolderItemsQueryParamsSortField implements Valuable { + ID("id"), + NAME("name"), + DATE("date"), + SIZE("size"); + + private final String value; + + GetFolderItemsQueryParamsSortField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetFolderItemsQueryParamsSortFieldDeserializer + extends JsonDeserializer> { + + public GetFolderItemsQueryParamsSortFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetFolderItemsQueryParamsSortField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetFolderItemsQueryParamsSortFieldSerializer + extends JsonSerializer> { + + public GetFolderItemsQueryParamsSortFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdHeaders.java new file mode 100644 index 000000000..ee00999a8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdHeaders.java @@ -0,0 +1,54 @@ +package com.box.sdkgen.managers.folders; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateFolderByIdHeaders { + + public String ifMatch; + + public Map extraHeaders; + + public UpdateFolderByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateFolderByIdHeaders(Builder builder) { + this.ifMatch = builder.ifMatch; + this.extraHeaders = builder.extraHeaders; + } + + public String getIfMatch() { + return ifMatch; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected String ifMatch; + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder ifMatch(String ifMatch) { + this.ifMatch = ifMatch; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateFolderByIdHeaders build() { + return new UpdateFolderByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdQueryParams.java new file mode 100644 index 000000000..39be25606 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.folders; + +import java.util.List; + +public class UpdateFolderByIdQueryParams { + + public List fields; + + public UpdateFolderByIdQueryParams() {} + + protected UpdateFolderByIdQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public UpdateFolderByIdQueryParams build() { + return new UpdateFolderByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBody.java new file mode 100644 index 000000000..c04ae87e0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBody.java @@ -0,0 +1,298 @@ +package com.box.sdkgen.managers.folders; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateFolderByIdRequestBody extends SerializableObject { + + protected String name; + + protected String description; + + @JsonDeserialize( + using = + UpdateFolderByIdRequestBodySyncStateField + .UpdateFolderByIdRequestBodySyncStateFieldDeserializer.class) + @JsonSerialize( + using = + UpdateFolderByIdRequestBodySyncStateField + .UpdateFolderByIdRequestBodySyncStateFieldSerializer.class) + @JsonProperty("sync_state") + protected EnumWrapper syncState; + + @JsonProperty("can_non_owners_invite") + protected Boolean canNonOwnersInvite; + + protected UpdateFolderByIdRequestBodyParentField parent; + + @JsonProperty("shared_link") + protected UpdateFolderByIdRequestBodySharedLinkField sharedLink; + + @JsonProperty("folder_upload_email") + @Nullable + protected UpdateFolderByIdRequestBodyFolderUploadEmailField folderUploadEmail; + + protected List tags; + + @JsonProperty("is_collaboration_restricted_to_enterprise") + protected Boolean isCollaborationRestrictedToEnterprise; + + @Nullable protected List collections; + + @JsonProperty("can_non_owners_view_collaborators") + protected Boolean canNonOwnersViewCollaborators; + + public UpdateFolderByIdRequestBody() { + super(); + } + + protected UpdateFolderByIdRequestBody(Builder builder) { + super(); + this.name = builder.name; + this.description = builder.description; + this.syncState = builder.syncState; + this.canNonOwnersInvite = builder.canNonOwnersInvite; + this.parent = builder.parent; + this.sharedLink = builder.sharedLink; + this.folderUploadEmail = builder.folderUploadEmail; + this.tags = builder.tags; + this.isCollaborationRestrictedToEnterprise = builder.isCollaborationRestrictedToEnterprise; + this.collections = builder.collections; + this.canNonOwnersViewCollaborators = builder.canNonOwnersViewCollaborators; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + public EnumWrapper getSyncState() { + return syncState; + } + + public Boolean getCanNonOwnersInvite() { + return canNonOwnersInvite; + } + + public UpdateFolderByIdRequestBodyParentField getParent() { + return parent; + } + + public UpdateFolderByIdRequestBodySharedLinkField getSharedLink() { + return sharedLink; + } + + public UpdateFolderByIdRequestBodyFolderUploadEmailField getFolderUploadEmail() { + return folderUploadEmail; + } + + public List getTags() { + return tags; + } + + public Boolean getIsCollaborationRestrictedToEnterprise() { + return isCollaborationRestrictedToEnterprise; + } + + public List getCollections() { + return collections; + } + + public Boolean getCanNonOwnersViewCollaborators() { + return canNonOwnersViewCollaborators; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateFolderByIdRequestBody casted = (UpdateFolderByIdRequestBody) o; + return Objects.equals(name, casted.name) + && Objects.equals(description, casted.description) + && Objects.equals(syncState, casted.syncState) + && Objects.equals(canNonOwnersInvite, casted.canNonOwnersInvite) + && Objects.equals(parent, casted.parent) + && Objects.equals(sharedLink, casted.sharedLink) + && Objects.equals(folderUploadEmail, casted.folderUploadEmail) + && Objects.equals(tags, casted.tags) + && Objects.equals( + isCollaborationRestrictedToEnterprise, casted.isCollaborationRestrictedToEnterprise) + && Objects.equals(collections, casted.collections) + && Objects.equals(canNonOwnersViewCollaborators, casted.canNonOwnersViewCollaborators); + } + + @Override + public int hashCode() { + return Objects.hash( + name, + description, + syncState, + canNonOwnersInvite, + parent, + sharedLink, + folderUploadEmail, + tags, + isCollaborationRestrictedToEnterprise, + collections, + canNonOwnersViewCollaborators); + } + + @Override + public String toString() { + return "UpdateFolderByIdRequestBody{" + + "name='" + + name + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "syncState='" + + syncState + + '\'' + + ", " + + "canNonOwnersInvite='" + + canNonOwnersInvite + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + ", " + + "sharedLink='" + + sharedLink + + '\'' + + ", " + + "folderUploadEmail='" + + folderUploadEmail + + '\'' + + ", " + + "tags='" + + tags + + '\'' + + ", " + + "isCollaborationRestrictedToEnterprise='" + + isCollaborationRestrictedToEnterprise + + '\'' + + ", " + + "collections='" + + collections + + '\'' + + ", " + + "canNonOwnersViewCollaborators='" + + canNonOwnersViewCollaborators + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String name; + + protected String description; + + protected EnumWrapper syncState; + + protected Boolean canNonOwnersInvite; + + protected UpdateFolderByIdRequestBodyParentField parent; + + protected UpdateFolderByIdRequestBodySharedLinkField sharedLink; + + protected UpdateFolderByIdRequestBodyFolderUploadEmailField folderUploadEmail; + + protected List tags; + + protected Boolean isCollaborationRestrictedToEnterprise; + + protected List collections; + + protected Boolean canNonOwnersViewCollaborators; + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder syncState(UpdateFolderByIdRequestBodySyncStateField syncState) { + this.syncState = new EnumWrapper(syncState); + return this; + } + + public Builder syncState(EnumWrapper syncState) { + this.syncState = syncState; + return this; + } + + public Builder canNonOwnersInvite(Boolean canNonOwnersInvite) { + this.canNonOwnersInvite = canNonOwnersInvite; + return this; + } + + public Builder parent(UpdateFolderByIdRequestBodyParentField parent) { + this.parent = parent; + return this; + } + + public Builder sharedLink(UpdateFolderByIdRequestBodySharedLinkField sharedLink) { + this.sharedLink = sharedLink; + return this; + } + + public Builder folderUploadEmail( + UpdateFolderByIdRequestBodyFolderUploadEmailField folderUploadEmail) { + this.folderUploadEmail = folderUploadEmail; + this.markNullableFieldAsSet("folder_upload_email"); + return this; + } + + public Builder tags(List tags) { + this.tags = tags; + return this; + } + + public Builder isCollaborationRestrictedToEnterprise( + Boolean isCollaborationRestrictedToEnterprise) { + this.isCollaborationRestrictedToEnterprise = isCollaborationRestrictedToEnterprise; + return this; + } + + public Builder collections(List collections) { + this.collections = collections; + this.markNullableFieldAsSet("collections"); + return this; + } + + public Builder canNonOwnersViewCollaborators(Boolean canNonOwnersViewCollaborators) { + this.canNonOwnersViewCollaborators = canNonOwnersViewCollaborators; + return this; + } + + public UpdateFolderByIdRequestBody build() { + return new UpdateFolderByIdRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyCollectionsField.java b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyCollectionsField.java new file mode 100644 index 000000000..e7d3d2ccb --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyCollectionsField.java @@ -0,0 +1,85 @@ +package com.box.sdkgen.managers.folders; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateFolderByIdRequestBodyCollectionsField extends SerializableObject { + + protected String id; + + protected String type; + + public UpdateFolderByIdRequestBodyCollectionsField() { + super(); + } + + protected UpdateFolderByIdRequestBodyCollectionsField(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateFolderByIdRequestBodyCollectionsField casted = + (UpdateFolderByIdRequestBodyCollectionsField) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "UpdateFolderByIdRequestBodyCollectionsField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected String type; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(String type) { + this.type = type; + return this; + } + + public UpdateFolderByIdRequestBodyCollectionsField build() { + return new UpdateFolderByIdRequestBodyCollectionsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyFolderUploadEmailAccessField.java b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyFolderUploadEmailAccessField.java new file mode 100644 index 000000000..939a5c16f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyFolderUploadEmailAccessField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.folders; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateFolderByIdRequestBodyFolderUploadEmailAccessField implements Valuable { + OPEN("open"), + COLLABORATORS("collaborators"); + + private final String value; + + UpdateFolderByIdRequestBodyFolderUploadEmailAccessField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateFolderByIdRequestBodyFolderUploadEmailAccessFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public UpdateFolderByIdRequestBodyFolderUploadEmailAccessFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateFolderByIdRequestBodyFolderUploadEmailAccessField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateFolderByIdRequestBodyFolderUploadEmailAccessFieldSerializer + extends JsonSerializer> { + + public UpdateFolderByIdRequestBodyFolderUploadEmailAccessFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyFolderUploadEmailField.java b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyFolderUploadEmailField.java new file mode 100644 index 000000000..5d89b6a23 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyFolderUploadEmailField.java @@ -0,0 +1,81 @@ +package com.box.sdkgen.managers.folders; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateFolderByIdRequestBodyFolderUploadEmailField extends SerializableObject { + + @JsonDeserialize( + using = + UpdateFolderByIdRequestBodyFolderUploadEmailAccessField + .UpdateFolderByIdRequestBodyFolderUploadEmailAccessFieldDeserializer.class) + @JsonSerialize( + using = + UpdateFolderByIdRequestBodyFolderUploadEmailAccessField + .UpdateFolderByIdRequestBodyFolderUploadEmailAccessFieldSerializer.class) + protected EnumWrapper access; + + public UpdateFolderByIdRequestBodyFolderUploadEmailField() { + super(); + } + + protected UpdateFolderByIdRequestBodyFolderUploadEmailField(Builder builder) { + super(); + this.access = builder.access; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getAccess() { + return access; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateFolderByIdRequestBodyFolderUploadEmailField casted = + (UpdateFolderByIdRequestBodyFolderUploadEmailField) o; + return Objects.equals(access, casted.access); + } + + @Override + public int hashCode() { + return Objects.hash(access); + } + + @Override + public String toString() { + return "UpdateFolderByIdRequestBodyFolderUploadEmailField{" + "access='" + access + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper access; + + public Builder access(UpdateFolderByIdRequestBodyFolderUploadEmailAccessField access) { + this.access = + new EnumWrapper(access); + return this; + } + + public Builder access( + EnumWrapper access) { + this.access = access; + return this; + } + + public UpdateFolderByIdRequestBodyFolderUploadEmailField build() { + return new UpdateFolderByIdRequestBodyFolderUploadEmailField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyParentField.java b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyParentField.java new file mode 100644 index 000000000..2fa88e335 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyParentField.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.managers.folders; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateFolderByIdRequestBodyParentField extends SerializableObject { + + protected String id; + + @JsonProperty("user_id") + protected String userId; + + public UpdateFolderByIdRequestBodyParentField() { + super(); + } + + protected UpdateFolderByIdRequestBodyParentField(Builder builder) { + super(); + this.id = builder.id; + this.userId = builder.userId; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getUserId() { + return userId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateFolderByIdRequestBodyParentField casted = (UpdateFolderByIdRequestBodyParentField) o; + return Objects.equals(id, casted.id) && Objects.equals(userId, casted.userId); + } + + @Override + public int hashCode() { + return Objects.hash(id, userId); + } + + @Override + public String toString() { + return "UpdateFolderByIdRequestBodyParentField{" + + "id='" + + id + + '\'' + + ", " + + "userId='" + + userId + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected String userId; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder userId(String userId) { + this.userId = userId; + return this; + } + + public UpdateFolderByIdRequestBodyParentField build() { + return new UpdateFolderByIdRequestBodyParentField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkAccessField.java b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkAccessField.java new file mode 100644 index 000000000..dc466e193 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkAccessField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.folders; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateFolderByIdRequestBodySharedLinkAccessField implements Valuable { + OPEN("open"), + COMPANY("company"), + COLLABORATORS("collaborators"); + + private final String value; + + UpdateFolderByIdRequestBodySharedLinkAccessField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateFolderByIdRequestBodySharedLinkAccessFieldDeserializer + extends JsonDeserializer> { + + public UpdateFolderByIdRequestBodySharedLinkAccessFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateFolderByIdRequestBodySharedLinkAccessField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateFolderByIdRequestBodySharedLinkAccessFieldSerializer + extends JsonSerializer> { + + public UpdateFolderByIdRequestBodySharedLinkAccessFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkField.java new file mode 100644 index 000000000..242730ee4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkField.java @@ -0,0 +1,168 @@ +package com.box.sdkgen.managers.folders; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateFolderByIdRequestBodySharedLinkField extends SerializableObject { + + @JsonDeserialize( + using = + UpdateFolderByIdRequestBodySharedLinkAccessField + .UpdateFolderByIdRequestBodySharedLinkAccessFieldDeserializer.class) + @JsonSerialize( + using = + UpdateFolderByIdRequestBodySharedLinkAccessField + .UpdateFolderByIdRequestBodySharedLinkAccessFieldSerializer.class) + protected EnumWrapper access; + + @Nullable protected String password; + + @JsonProperty("vanity_name") + protected String vanityName; + + @JsonProperty("unshared_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date unsharedAt; + + protected UpdateFolderByIdRequestBodySharedLinkPermissionsField permissions; + + public UpdateFolderByIdRequestBodySharedLinkField() { + super(); + } + + protected UpdateFolderByIdRequestBodySharedLinkField(Builder builder) { + super(); + this.access = builder.access; + this.password = builder.password; + this.vanityName = builder.vanityName; + this.unsharedAt = builder.unsharedAt; + this.permissions = builder.permissions; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getAccess() { + return access; + } + + public String getPassword() { + return password; + } + + public String getVanityName() { + return vanityName; + } + + public Date getUnsharedAt() { + return unsharedAt; + } + + public UpdateFolderByIdRequestBodySharedLinkPermissionsField getPermissions() { + return permissions; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateFolderByIdRequestBodySharedLinkField casted = + (UpdateFolderByIdRequestBodySharedLinkField) o; + return Objects.equals(access, casted.access) + && Objects.equals(password, casted.password) + && Objects.equals(vanityName, casted.vanityName) + && Objects.equals(unsharedAt, casted.unsharedAt) + && Objects.equals(permissions, casted.permissions); + } + + @Override + public int hashCode() { + return Objects.hash(access, password, vanityName, unsharedAt, permissions); + } + + @Override + public String toString() { + return "UpdateFolderByIdRequestBodySharedLinkField{" + + "access='" + + access + + '\'' + + ", " + + "password='" + + password + + '\'' + + ", " + + "vanityName='" + + vanityName + + '\'' + + ", " + + "unsharedAt='" + + unsharedAt + + '\'' + + ", " + + "permissions='" + + permissions + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper access; + + protected String password; + + protected String vanityName; + + protected Date unsharedAt; + + protected UpdateFolderByIdRequestBodySharedLinkPermissionsField permissions; + + public Builder access(UpdateFolderByIdRequestBodySharedLinkAccessField access) { + this.access = new EnumWrapper(access); + return this; + } + + public Builder access(EnumWrapper access) { + this.access = access; + return this; + } + + public Builder password(String password) { + this.password = password; + this.markNullableFieldAsSet("password"); + return this; + } + + public Builder vanityName(String vanityName) { + this.vanityName = vanityName; + return this; + } + + public Builder unsharedAt(Date unsharedAt) { + this.unsharedAt = unsharedAt; + return this; + } + + public Builder permissions(UpdateFolderByIdRequestBodySharedLinkPermissionsField permissions) { + this.permissions = permissions; + return this; + } + + public UpdateFolderByIdRequestBodySharedLinkField build() { + return new UpdateFolderByIdRequestBodySharedLinkField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkPermissionsField.java b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkPermissionsField.java new file mode 100644 index 000000000..9a187bc40 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkPermissionsField.java @@ -0,0 +1,69 @@ +package com.box.sdkgen.managers.folders; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateFolderByIdRequestBodySharedLinkPermissionsField extends SerializableObject { + + @JsonProperty("can_download") + protected Boolean canDownload; + + public UpdateFolderByIdRequestBodySharedLinkPermissionsField() { + super(); + } + + protected UpdateFolderByIdRequestBodySharedLinkPermissionsField(Builder builder) { + super(); + this.canDownload = builder.canDownload; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getCanDownload() { + return canDownload; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateFolderByIdRequestBodySharedLinkPermissionsField casted = + (UpdateFolderByIdRequestBodySharedLinkPermissionsField) o; + return Objects.equals(canDownload, casted.canDownload); + } + + @Override + public int hashCode() { + return Objects.hash(canDownload); + } + + @Override + public String toString() { + return "UpdateFolderByIdRequestBodySharedLinkPermissionsField{" + + "canDownload='" + + canDownload + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean canDownload; + + public Builder canDownload(Boolean canDownload) { + this.canDownload = canDownload; + return this; + } + + public UpdateFolderByIdRequestBodySharedLinkPermissionsField build() { + return new UpdateFolderByIdRequestBodySharedLinkPermissionsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySyncStateField.java b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySyncStateField.java new file mode 100644 index 000000000..75b8e2f6a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySyncStateField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.folders; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateFolderByIdRequestBodySyncStateField implements Valuable { + SYNCED("synced"), + NOT_SYNCED("not_synced"), + PARTIALLY_SYNCED("partially_synced"); + + private final String value; + + UpdateFolderByIdRequestBodySyncStateField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateFolderByIdRequestBodySyncStateFieldDeserializer + extends JsonDeserializer> { + + public UpdateFolderByIdRequestBodySyncStateFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateFolderByIdRequestBodySyncStateField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateFolderByIdRequestBodySyncStateFieldSerializer + extends JsonSerializer> { + + public UpdateFolderByIdRequestBodySyncStateFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folderwatermarks/DeleteFolderWatermarkHeaders.java b/src/main/java/com/box/sdkgen/managers/folderwatermarks/DeleteFolderWatermarkHeaders.java new file mode 100644 index 000000000..de32b3787 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folderwatermarks/DeleteFolderWatermarkHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.folderwatermarks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteFolderWatermarkHeaders { + + public Map extraHeaders; + + public DeleteFolderWatermarkHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteFolderWatermarkHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteFolderWatermarkHeaders build() { + return new DeleteFolderWatermarkHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folderwatermarks/FolderWatermarksManager.java b/src/main/java/com/box/sdkgen/managers/folderwatermarks/FolderWatermarksManager.java new file mode 100644 index 000000000..cdb0f9494 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folderwatermarks/FolderWatermarksManager.java @@ -0,0 +1,147 @@ +package com.box.sdkgen.managers.folderwatermarks; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.watermark.Watermark; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class FolderWatermarksManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public FolderWatermarksManager() { + this.networkSession = new NetworkSession(); + } + + protected FolderWatermarksManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public Watermark getFolderWatermark(String folderId) { + return getFolderWatermark(folderId, new GetFolderWatermarkHeaders()); + } + + public Watermark getFolderWatermark(String folderId, GetFolderWatermarkHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId), + "/watermark"), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Watermark.class); + } + + public Watermark updateFolderWatermark( + String folderId, UpdateFolderWatermarkRequestBody requestBody) { + return updateFolderWatermark(folderId, requestBody, new UpdateFolderWatermarkHeaders()); + } + + public Watermark updateFolderWatermark( + String folderId, + UpdateFolderWatermarkRequestBody requestBody, + UpdateFolderWatermarkHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId), + "/watermark"), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Watermark.class); + } + + public void deleteFolderWatermark(String folderId) { + deleteFolderWatermark(folderId, new DeleteFolderWatermarkHeaders()); + } + + public void deleteFolderWatermark(String folderId, DeleteFolderWatermarkHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId), + "/watermark"), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public FolderWatermarksManager build() { + return new FolderWatermarksManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folderwatermarks/GetFolderWatermarkHeaders.java b/src/main/java/com/box/sdkgen/managers/folderwatermarks/GetFolderWatermarkHeaders.java new file mode 100644 index 000000000..bc18a0550 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folderwatermarks/GetFolderWatermarkHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.folderwatermarks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFolderWatermarkHeaders { + + public Map extraHeaders; + + public GetFolderWatermarkHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFolderWatermarkHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFolderWatermarkHeaders build() { + return new GetFolderWatermarkHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkHeaders.java b/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkHeaders.java new file mode 100644 index 000000000..12d36f26d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.folderwatermarks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateFolderWatermarkHeaders { + + public Map extraHeaders; + + public UpdateFolderWatermarkHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateFolderWatermarkHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateFolderWatermarkHeaders build() { + return new UpdateFolderWatermarkHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBody.java b/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBody.java new file mode 100644 index 000000000..f9890f0ce --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBody.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.folderwatermarks; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateFolderWatermarkRequestBody extends SerializableObject { + + protected final UpdateFolderWatermarkRequestBodyWatermarkField watermark; + + public UpdateFolderWatermarkRequestBody( + @JsonProperty("watermark") UpdateFolderWatermarkRequestBodyWatermarkField watermark) { + super(); + this.watermark = watermark; + } + + public UpdateFolderWatermarkRequestBodyWatermarkField getWatermark() { + return watermark; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateFolderWatermarkRequestBody casted = (UpdateFolderWatermarkRequestBody) o; + return Objects.equals(watermark, casted.watermark); + } + + @Override + public int hashCode() { + return Objects.hash(watermark); + } + + @Override + public String toString() { + return "UpdateFolderWatermarkRequestBody{" + "watermark='" + watermark + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBodyWatermarkField.java b/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBodyWatermarkField.java new file mode 100644 index 000000000..9916204ba --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBodyWatermarkField.java @@ -0,0 +1,91 @@ +package com.box.sdkgen.managers.folderwatermarks; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateFolderWatermarkRequestBodyWatermarkField extends SerializableObject { + + @JsonDeserialize( + using = + UpdateFolderWatermarkRequestBodyWatermarkImprintField + .UpdateFolderWatermarkRequestBodyWatermarkImprintFieldDeserializer.class) + @JsonSerialize( + using = + UpdateFolderWatermarkRequestBodyWatermarkImprintField + .UpdateFolderWatermarkRequestBodyWatermarkImprintFieldSerializer.class) + protected EnumWrapper imprint; + + public UpdateFolderWatermarkRequestBodyWatermarkField() { + super(); + this.imprint = + new EnumWrapper( + UpdateFolderWatermarkRequestBodyWatermarkImprintField.DEFAULT); + } + + protected UpdateFolderWatermarkRequestBodyWatermarkField(Builder builder) { + super(); + this.imprint = builder.imprint; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getImprint() { + return imprint; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateFolderWatermarkRequestBodyWatermarkField casted = + (UpdateFolderWatermarkRequestBodyWatermarkField) o; + return Objects.equals(imprint, casted.imprint); + } + + @Override + public int hashCode() { + return Objects.hash(imprint); + } + + @Override + public String toString() { + return "UpdateFolderWatermarkRequestBodyWatermarkField{" + "imprint='" + imprint + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper imprint; + + public Builder() { + super(); + this.imprint = + new EnumWrapper( + UpdateFolderWatermarkRequestBodyWatermarkImprintField.DEFAULT); + } + + public Builder imprint(UpdateFolderWatermarkRequestBodyWatermarkImprintField imprint) { + this.imprint = + new EnumWrapper(imprint); + return this; + } + + public Builder imprint( + EnumWrapper imprint) { + this.imprint = imprint; + return this; + } + + public UpdateFolderWatermarkRequestBodyWatermarkField build() { + return new UpdateFolderWatermarkRequestBodyWatermarkField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBodyWatermarkImprintField.java b/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBodyWatermarkImprintField.java new file mode 100644 index 000000000..797493659 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBodyWatermarkImprintField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.folderwatermarks; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateFolderWatermarkRequestBodyWatermarkImprintField implements Valuable { + DEFAULT("default"); + + private final String value; + + UpdateFolderWatermarkRequestBodyWatermarkImprintField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateFolderWatermarkRequestBodyWatermarkImprintFieldDeserializer + extends JsonDeserializer> { + + public UpdateFolderWatermarkRequestBodyWatermarkImprintFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateFolderWatermarkRequestBodyWatermarkImprintField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateFolderWatermarkRequestBodyWatermarkImprintFieldSerializer + extends JsonSerializer> { + + public UpdateFolderWatermarkRequestBodyWatermarkImprintFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/groups/CreateGroupHeaders.java b/src/main/java/com/box/sdkgen/managers/groups/CreateGroupHeaders.java new file mode 100644 index 000000000..275faf179 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/groups/CreateGroupHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.groups; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateGroupHeaders { + + public Map extraHeaders; + + public CreateGroupHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateGroupHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateGroupHeaders build() { + return new CreateGroupHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/groups/CreateGroupQueryParams.java b/src/main/java/com/box/sdkgen/managers/groups/CreateGroupQueryParams.java new file mode 100644 index 000000000..7c69afc78 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/groups/CreateGroupQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.groups; + +import java.util.List; + +public class CreateGroupQueryParams { + + public List fields; + + public CreateGroupQueryParams() {} + + protected CreateGroupQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public CreateGroupQueryParams build() { + return new CreateGroupQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/groups/CreateGroupRequestBody.java b/src/main/java/com/box/sdkgen/managers/groups/CreateGroupRequestBody.java new file mode 100644 index 000000000..584fa156b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/groups/CreateGroupRequestBody.java @@ -0,0 +1,209 @@ +package com.box.sdkgen.managers.groups; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateGroupRequestBody extends SerializableObject { + + protected final String name; + + protected String provenance; + + @JsonProperty("external_sync_identifier") + protected String externalSyncIdentifier; + + protected String description; + + @JsonDeserialize( + using = + CreateGroupRequestBodyInvitabilityLevelField + .CreateGroupRequestBodyInvitabilityLevelFieldDeserializer.class) + @JsonSerialize( + using = + CreateGroupRequestBodyInvitabilityLevelField + .CreateGroupRequestBodyInvitabilityLevelFieldSerializer.class) + @JsonProperty("invitability_level") + protected EnumWrapper invitabilityLevel; + + @JsonDeserialize( + using = + CreateGroupRequestBodyMemberViewabilityLevelField + .CreateGroupRequestBodyMemberViewabilityLevelFieldDeserializer.class) + @JsonSerialize( + using = + CreateGroupRequestBodyMemberViewabilityLevelField + .CreateGroupRequestBodyMemberViewabilityLevelFieldSerializer.class) + @JsonProperty("member_viewability_level") + protected EnumWrapper memberViewabilityLevel; + + public CreateGroupRequestBody(@JsonProperty("name") String name) { + super(); + this.name = name; + } + + protected CreateGroupRequestBody(Builder builder) { + super(); + this.name = builder.name; + this.provenance = builder.provenance; + this.externalSyncIdentifier = builder.externalSyncIdentifier; + this.description = builder.description; + this.invitabilityLevel = builder.invitabilityLevel; + this.memberViewabilityLevel = builder.memberViewabilityLevel; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public String getProvenance() { + return provenance; + } + + public String getExternalSyncIdentifier() { + return externalSyncIdentifier; + } + + public String getDescription() { + return description; + } + + public EnumWrapper getInvitabilityLevel() { + return invitabilityLevel; + } + + public EnumWrapper + getMemberViewabilityLevel() { + return memberViewabilityLevel; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateGroupRequestBody casted = (CreateGroupRequestBody) o; + return Objects.equals(name, casted.name) + && Objects.equals(provenance, casted.provenance) + && Objects.equals(externalSyncIdentifier, casted.externalSyncIdentifier) + && Objects.equals(description, casted.description) + && Objects.equals(invitabilityLevel, casted.invitabilityLevel) + && Objects.equals(memberViewabilityLevel, casted.memberViewabilityLevel); + } + + @Override + public int hashCode() { + return Objects.hash( + name, + provenance, + externalSyncIdentifier, + description, + invitabilityLevel, + memberViewabilityLevel); + } + + @Override + public String toString() { + return "CreateGroupRequestBody{" + + "name='" + + name + + '\'' + + ", " + + "provenance='" + + provenance + + '\'' + + ", " + + "externalSyncIdentifier='" + + externalSyncIdentifier + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "invitabilityLevel='" + + invitabilityLevel + + '\'' + + ", " + + "memberViewabilityLevel='" + + memberViewabilityLevel + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String name; + + protected String provenance; + + protected String externalSyncIdentifier; + + protected String description; + + protected EnumWrapper invitabilityLevel; + + protected EnumWrapper memberViewabilityLevel; + + public Builder(String name) { + super(); + this.name = name; + } + + public Builder provenance(String provenance) { + this.provenance = provenance; + return this; + } + + public Builder externalSyncIdentifier(String externalSyncIdentifier) { + this.externalSyncIdentifier = externalSyncIdentifier; + return this; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder invitabilityLevel( + CreateGroupRequestBodyInvitabilityLevelField invitabilityLevel) { + this.invitabilityLevel = + new EnumWrapper(invitabilityLevel); + return this; + } + + public Builder invitabilityLevel( + EnumWrapper invitabilityLevel) { + this.invitabilityLevel = invitabilityLevel; + return this; + } + + public Builder memberViewabilityLevel( + CreateGroupRequestBodyMemberViewabilityLevelField memberViewabilityLevel) { + this.memberViewabilityLevel = + new EnumWrapper( + memberViewabilityLevel); + return this; + } + + public Builder memberViewabilityLevel( + EnumWrapper memberViewabilityLevel) { + this.memberViewabilityLevel = memberViewabilityLevel; + return this; + } + + public CreateGroupRequestBody build() { + return new CreateGroupRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/groups/CreateGroupRequestBodyInvitabilityLevelField.java b/src/main/java/com/box/sdkgen/managers/groups/CreateGroupRequestBodyInvitabilityLevelField.java new file mode 100644 index 000000000..6d44cfbb5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/groups/CreateGroupRequestBodyInvitabilityLevelField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.groups; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateGroupRequestBodyInvitabilityLevelField implements Valuable { + ADMINS_ONLY("admins_only"), + ADMINS_AND_MEMBERS("admins_and_members"), + ALL_MANAGED_USERS("all_managed_users"); + + private final String value; + + CreateGroupRequestBodyInvitabilityLevelField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateGroupRequestBodyInvitabilityLevelFieldDeserializer + extends JsonDeserializer> { + + public CreateGroupRequestBodyInvitabilityLevelFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateGroupRequestBodyInvitabilityLevelField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateGroupRequestBodyInvitabilityLevelFieldSerializer + extends JsonSerializer> { + + public CreateGroupRequestBodyInvitabilityLevelFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/groups/CreateGroupRequestBodyMemberViewabilityLevelField.java b/src/main/java/com/box/sdkgen/managers/groups/CreateGroupRequestBodyMemberViewabilityLevelField.java new file mode 100644 index 000000000..e9cc58559 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/groups/CreateGroupRequestBodyMemberViewabilityLevelField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.groups; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateGroupRequestBodyMemberViewabilityLevelField implements Valuable { + ADMINS_ONLY("admins_only"), + ADMINS_AND_MEMBERS("admins_and_members"), + ALL_MANAGED_USERS("all_managed_users"); + + private final String value; + + CreateGroupRequestBodyMemberViewabilityLevelField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateGroupRequestBodyMemberViewabilityLevelFieldDeserializer + extends JsonDeserializer> { + + public CreateGroupRequestBodyMemberViewabilityLevelFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateGroupRequestBodyMemberViewabilityLevelField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateGroupRequestBodyMemberViewabilityLevelFieldSerializer + extends JsonSerializer> { + + public CreateGroupRequestBodyMemberViewabilityLevelFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/groups/DeleteGroupByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/groups/DeleteGroupByIdHeaders.java new file mode 100644 index 000000000..5c57b646e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/groups/DeleteGroupByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.groups; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteGroupByIdHeaders { + + public Map extraHeaders; + + public DeleteGroupByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteGroupByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteGroupByIdHeaders build() { + return new DeleteGroupByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/groups/GetGroupByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/groups/GetGroupByIdHeaders.java new file mode 100644 index 000000000..0667d184c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/groups/GetGroupByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.groups; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetGroupByIdHeaders { + + public Map extraHeaders; + + public GetGroupByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetGroupByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetGroupByIdHeaders build() { + return new GetGroupByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/groups/GetGroupByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/groups/GetGroupByIdQueryParams.java new file mode 100644 index 000000000..95dea8278 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/groups/GetGroupByIdQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.groups; + +import java.util.List; + +public class GetGroupByIdQueryParams { + + public List fields; + + public GetGroupByIdQueryParams() {} + + protected GetGroupByIdQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public GetGroupByIdQueryParams build() { + return new GetGroupByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/groups/GetGroupsHeaders.java b/src/main/java/com/box/sdkgen/managers/groups/GetGroupsHeaders.java new file mode 100644 index 000000000..e54508fab --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/groups/GetGroupsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.groups; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetGroupsHeaders { + + public Map extraHeaders; + + public GetGroupsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetGroupsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetGroupsHeaders build() { + return new GetGroupsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/groups/GetGroupsQueryParams.java b/src/main/java/com/box/sdkgen/managers/groups/GetGroupsQueryParams.java new file mode 100644 index 000000000..bb1145903 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/groups/GetGroupsQueryParams.java @@ -0,0 +1,74 @@ +package com.box.sdkgen.managers.groups; + +import java.util.List; + +public class GetGroupsQueryParams { + + public String filterTerm; + + public List fields; + + public Long limit; + + public Long offset; + + public GetGroupsQueryParams() {} + + protected GetGroupsQueryParams(Builder builder) { + this.filterTerm = builder.filterTerm; + this.fields = builder.fields; + this.limit = builder.limit; + this.offset = builder.offset; + } + + public String getFilterTerm() { + return filterTerm; + } + + public List getFields() { + return fields; + } + + public Long getLimit() { + return limit; + } + + public Long getOffset() { + return offset; + } + + public static class Builder { + + protected String filterTerm; + + protected List fields; + + protected Long limit; + + protected Long offset; + + public Builder filterTerm(String filterTerm) { + this.filterTerm = filterTerm; + return this; + } + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public GetGroupsQueryParams build() { + return new GetGroupsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/groups/GroupsManager.java b/src/main/java/com/box/sdkgen/managers/groups/GroupsManager.java new file mode 100644 index 000000000..f6f139792 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/groups/GroupsManager.java @@ -0,0 +1,274 @@ +package com.box.sdkgen.managers.groups; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.groupfull.GroupFull; +import com.box.sdkgen.schemas.groups.Groups; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class GroupsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public GroupsManager() { + this.networkSession = new NetworkSession(); + } + + protected GroupsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public Groups getGroups() { + return getGroups(new GetGroupsQueryParams(), new GetGroupsHeaders()); + } + + public Groups getGroups(GetGroupsQueryParams queryParams) { + return getGroups(queryParams, new GetGroupsHeaders()); + } + + public Groups getGroups(GetGroupsHeaders headers) { + return getGroups(new GetGroupsQueryParams(), headers); + } + + public Groups getGroups(GetGroupsQueryParams queryParams, GetGroupsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("filter_term", convertToString(queryParams.getFilterTerm())), + entryOf("fields", convertToString(queryParams.getFields())), + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf("offset", convertToString(queryParams.getOffset())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/groups"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Groups.class); + } + + public GroupFull createGroup(CreateGroupRequestBody requestBody) { + return createGroup(requestBody, new CreateGroupQueryParams(), new CreateGroupHeaders()); + } + + public GroupFull createGroup( + CreateGroupRequestBody requestBody, CreateGroupQueryParams queryParams) { + return createGroup(requestBody, queryParams, new CreateGroupHeaders()); + } + + public GroupFull createGroup(CreateGroupRequestBody requestBody, CreateGroupHeaders headers) { + return createGroup(requestBody, new CreateGroupQueryParams(), headers); + } + + public GroupFull createGroup( + CreateGroupRequestBody requestBody, + CreateGroupQueryParams queryParams, + CreateGroupHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/groups"), + "POST") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), GroupFull.class); + } + + public GroupFull getGroupById(String groupId) { + return getGroupById(groupId, new GetGroupByIdQueryParams(), new GetGroupByIdHeaders()); + } + + public GroupFull getGroupById(String groupId, GetGroupByIdQueryParams queryParams) { + return getGroupById(groupId, queryParams, new GetGroupByIdHeaders()); + } + + public GroupFull getGroupById(String groupId, GetGroupByIdHeaders headers) { + return getGroupById(groupId, new GetGroupByIdQueryParams(), headers); + } + + public GroupFull getGroupById( + String groupId, GetGroupByIdQueryParams queryParams, GetGroupByIdHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/groups/", + convertToString(groupId)), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), GroupFull.class); + } + + public GroupFull updateGroupById(String groupId) { + return updateGroupById( + groupId, + new UpdateGroupByIdRequestBody(), + new UpdateGroupByIdQueryParams(), + new UpdateGroupByIdHeaders()); + } + + public GroupFull updateGroupById(String groupId, UpdateGroupByIdRequestBody requestBody) { + return updateGroupById( + groupId, requestBody, new UpdateGroupByIdQueryParams(), new UpdateGroupByIdHeaders()); + } + + public GroupFull updateGroupById(String groupId, UpdateGroupByIdQueryParams queryParams) { + return updateGroupById( + groupId, new UpdateGroupByIdRequestBody(), queryParams, new UpdateGroupByIdHeaders()); + } + + public GroupFull updateGroupById( + String groupId, + UpdateGroupByIdRequestBody requestBody, + UpdateGroupByIdQueryParams queryParams) { + return updateGroupById(groupId, requestBody, queryParams, new UpdateGroupByIdHeaders()); + } + + public GroupFull updateGroupById(String groupId, UpdateGroupByIdHeaders headers) { + return updateGroupById( + groupId, new UpdateGroupByIdRequestBody(), new UpdateGroupByIdQueryParams(), headers); + } + + public GroupFull updateGroupById( + String groupId, UpdateGroupByIdRequestBody requestBody, UpdateGroupByIdHeaders headers) { + return updateGroupById(groupId, requestBody, new UpdateGroupByIdQueryParams(), headers); + } + + public GroupFull updateGroupById( + String groupId, UpdateGroupByIdQueryParams queryParams, UpdateGroupByIdHeaders headers) { + return updateGroupById(groupId, new UpdateGroupByIdRequestBody(), queryParams, headers); + } + + public GroupFull updateGroupById( + String groupId, + UpdateGroupByIdRequestBody requestBody, + UpdateGroupByIdQueryParams queryParams, + UpdateGroupByIdHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/groups/", + convertToString(groupId)), + "PUT") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), GroupFull.class); + } + + public void deleteGroupById(String groupId) { + deleteGroupById(groupId, new DeleteGroupByIdHeaders()); + } + + public void deleteGroupById(String groupId, DeleteGroupByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/groups/", + convertToString(groupId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public GroupsManager build() { + return new GroupsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdHeaders.java new file mode 100644 index 000000000..435b9c4c8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.groups; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateGroupByIdHeaders { + + public Map extraHeaders; + + public UpdateGroupByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateGroupByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateGroupByIdHeaders build() { + return new UpdateGroupByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdQueryParams.java new file mode 100644 index 000000000..fdde47a50 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.groups; + +import java.util.List; + +public class UpdateGroupByIdQueryParams { + + public List fields; + + public UpdateGroupByIdQueryParams() {} + + protected UpdateGroupByIdQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public UpdateGroupByIdQueryParams build() { + return new UpdateGroupByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdRequestBody.java new file mode 100644 index 000000000..c1cc5e67a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdRequestBody.java @@ -0,0 +1,210 @@ +package com.box.sdkgen.managers.groups; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateGroupByIdRequestBody extends SerializableObject { + + protected String name; + + protected String provenance; + + @JsonProperty("external_sync_identifier") + protected String externalSyncIdentifier; + + protected String description; + + @JsonDeserialize( + using = + UpdateGroupByIdRequestBodyInvitabilityLevelField + .UpdateGroupByIdRequestBodyInvitabilityLevelFieldDeserializer.class) + @JsonSerialize( + using = + UpdateGroupByIdRequestBodyInvitabilityLevelField + .UpdateGroupByIdRequestBodyInvitabilityLevelFieldSerializer.class) + @JsonProperty("invitability_level") + protected EnumWrapper invitabilityLevel; + + @JsonDeserialize( + using = + UpdateGroupByIdRequestBodyMemberViewabilityLevelField + .UpdateGroupByIdRequestBodyMemberViewabilityLevelFieldDeserializer.class) + @JsonSerialize( + using = + UpdateGroupByIdRequestBodyMemberViewabilityLevelField + .UpdateGroupByIdRequestBodyMemberViewabilityLevelFieldSerializer.class) + @JsonProperty("member_viewability_level") + protected EnumWrapper + memberViewabilityLevel; + + public UpdateGroupByIdRequestBody() { + super(); + } + + protected UpdateGroupByIdRequestBody(Builder builder) { + super(); + this.name = builder.name; + this.provenance = builder.provenance; + this.externalSyncIdentifier = builder.externalSyncIdentifier; + this.description = builder.description; + this.invitabilityLevel = builder.invitabilityLevel; + this.memberViewabilityLevel = builder.memberViewabilityLevel; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public String getProvenance() { + return provenance; + } + + public String getExternalSyncIdentifier() { + return externalSyncIdentifier; + } + + public String getDescription() { + return description; + } + + public EnumWrapper getInvitabilityLevel() { + return invitabilityLevel; + } + + public EnumWrapper + getMemberViewabilityLevel() { + return memberViewabilityLevel; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateGroupByIdRequestBody casted = (UpdateGroupByIdRequestBody) o; + return Objects.equals(name, casted.name) + && Objects.equals(provenance, casted.provenance) + && Objects.equals(externalSyncIdentifier, casted.externalSyncIdentifier) + && Objects.equals(description, casted.description) + && Objects.equals(invitabilityLevel, casted.invitabilityLevel) + && Objects.equals(memberViewabilityLevel, casted.memberViewabilityLevel); + } + + @Override + public int hashCode() { + return Objects.hash( + name, + provenance, + externalSyncIdentifier, + description, + invitabilityLevel, + memberViewabilityLevel); + } + + @Override + public String toString() { + return "UpdateGroupByIdRequestBody{" + + "name='" + + name + + '\'' + + ", " + + "provenance='" + + provenance + + '\'' + + ", " + + "externalSyncIdentifier='" + + externalSyncIdentifier + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "invitabilityLevel='" + + invitabilityLevel + + '\'' + + ", " + + "memberViewabilityLevel='" + + memberViewabilityLevel + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String name; + + protected String provenance; + + protected String externalSyncIdentifier; + + protected String description; + + protected EnumWrapper invitabilityLevel; + + protected EnumWrapper + memberViewabilityLevel; + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder provenance(String provenance) { + this.provenance = provenance; + return this; + } + + public Builder externalSyncIdentifier(String externalSyncIdentifier) { + this.externalSyncIdentifier = externalSyncIdentifier; + return this; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder invitabilityLevel( + UpdateGroupByIdRequestBodyInvitabilityLevelField invitabilityLevel) { + this.invitabilityLevel = + new EnumWrapper(invitabilityLevel); + return this; + } + + public Builder invitabilityLevel( + EnumWrapper invitabilityLevel) { + this.invitabilityLevel = invitabilityLevel; + return this; + } + + public Builder memberViewabilityLevel( + UpdateGroupByIdRequestBodyMemberViewabilityLevelField memberViewabilityLevel) { + this.memberViewabilityLevel = + new EnumWrapper( + memberViewabilityLevel); + return this; + } + + public Builder memberViewabilityLevel( + EnumWrapper memberViewabilityLevel) { + this.memberViewabilityLevel = memberViewabilityLevel; + return this; + } + + public UpdateGroupByIdRequestBody build() { + return new UpdateGroupByIdRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdRequestBodyInvitabilityLevelField.java b/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdRequestBodyInvitabilityLevelField.java new file mode 100644 index 000000000..dcdd3ec86 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdRequestBodyInvitabilityLevelField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.groups; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateGroupByIdRequestBodyInvitabilityLevelField implements Valuable { + ADMINS_ONLY("admins_only"), + ADMINS_AND_MEMBERS("admins_and_members"), + ALL_MANAGED_USERS("all_managed_users"); + + private final String value; + + UpdateGroupByIdRequestBodyInvitabilityLevelField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateGroupByIdRequestBodyInvitabilityLevelFieldDeserializer + extends JsonDeserializer> { + + public UpdateGroupByIdRequestBodyInvitabilityLevelFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateGroupByIdRequestBodyInvitabilityLevelField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateGroupByIdRequestBodyInvitabilityLevelFieldSerializer + extends JsonSerializer> { + + public UpdateGroupByIdRequestBodyInvitabilityLevelFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdRequestBodyMemberViewabilityLevelField.java b/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdRequestBodyMemberViewabilityLevelField.java new file mode 100644 index 000000000..ee67d027c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdRequestBodyMemberViewabilityLevelField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.groups; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateGroupByIdRequestBodyMemberViewabilityLevelField implements Valuable { + ADMINS_ONLY("admins_only"), + ADMINS_AND_MEMBERS("admins_and_members"), + ALL_MANAGED_USERS("all_managed_users"); + + private final String value; + + UpdateGroupByIdRequestBodyMemberViewabilityLevelField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateGroupByIdRequestBodyMemberViewabilityLevelFieldDeserializer + extends JsonDeserializer> { + + public UpdateGroupByIdRequestBodyMemberViewabilityLevelFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateGroupByIdRequestBodyMemberViewabilityLevelField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateGroupByIdRequestBodyMemberViewabilityLevelFieldSerializer + extends JsonSerializer> { + + public UpdateGroupByIdRequestBodyMemberViewabilityLevelFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubcollaborations/CreateHubCollaborationV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubcollaborations/CreateHubCollaborationV2025R0Headers.java new file mode 100644 index 000000000..e73752654 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubcollaborations/CreateHubCollaborationV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.hubcollaborations; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class CreateHubCollaborationV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public CreateHubCollaborationV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected CreateHubCollaborationV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateHubCollaborationV2025R0Headers build() { + return new CreateHubCollaborationV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubcollaborations/DeleteHubCollaborationByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubcollaborations/DeleteHubCollaborationByIdV2025R0Headers.java new file mode 100644 index 000000000..0c9242f46 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubcollaborations/DeleteHubCollaborationByIdV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.hubcollaborations; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class DeleteHubCollaborationByIdV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public DeleteHubCollaborationByIdV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected DeleteHubCollaborationByIdV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteHubCollaborationByIdV2025R0Headers build() { + return new DeleteHubCollaborationByIdV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationByIdV2025R0Headers.java new file mode 100644 index 000000000..3823535cb --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationByIdV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.hubcollaborations; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class GetHubCollaborationByIdV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public GetHubCollaborationByIdV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected GetHubCollaborationByIdV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetHubCollaborationByIdV2025R0Headers build() { + return new GetHubCollaborationByIdV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationsV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationsV2025R0Headers.java new file mode 100644 index 000000000..e6d20d8ea --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationsV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.hubcollaborations; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class GetHubCollaborationsV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public GetHubCollaborationsV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected GetHubCollaborationsV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetHubCollaborationsV2025R0Headers build() { + return new GetHubCollaborationsV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationsV2025R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationsV2025R0QueryParams.java new file mode 100644 index 000000000..ab682e2f8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationsV2025R0QueryParams.java @@ -0,0 +1,59 @@ +package com.box.sdkgen.managers.hubcollaborations; + +public class GetHubCollaborationsV2025R0QueryParams { + + public final String hubId; + + public String marker; + + public Long limit; + + public GetHubCollaborationsV2025R0QueryParams(String hubId) { + this.hubId = hubId; + } + + protected GetHubCollaborationsV2025R0QueryParams(Builder builder) { + this.hubId = builder.hubId; + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getHubId() { + return hubId; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected final String hubId; + + protected String marker; + + protected Long limit; + + public Builder(String hubId) { + this.hubId = hubId; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetHubCollaborationsV2025R0QueryParams build() { + return new GetHubCollaborationsV2025R0QueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubcollaborations/HubCollaborationsManager.java b/src/main/java/com/box/sdkgen/managers/hubcollaborations/HubCollaborationsManager.java new file mode 100644 index 000000000..0af3744fe --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubcollaborations/HubCollaborationsManager.java @@ -0,0 +1,236 @@ +package com.box.sdkgen.managers.hubcollaborations; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.v2025r0.hubcollaborationcreaterequestv2025r0.HubCollaborationCreateRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubcollaborationsv2025r0.HubCollaborationsV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubcollaborationupdaterequestv2025r0.HubCollaborationUpdateRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubcollaborationv2025r0.HubCollaborationV2025R0; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class HubCollaborationsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public HubCollaborationsManager() { + this.networkSession = new NetworkSession(); + } + + protected HubCollaborationsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public HubCollaborationsV2025R0 getHubCollaborationsV2025R0( + GetHubCollaborationsV2025R0QueryParams queryParams) { + return getHubCollaborationsV2025R0(queryParams, new GetHubCollaborationsV2025R0Headers()); + } + + public HubCollaborationsV2025R0 getHubCollaborationsV2025R0( + GetHubCollaborationsV2025R0QueryParams queryParams, + GetHubCollaborationsV2025R0Headers headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("hub_id", convertToString(queryParams.getHubId())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/hub_collaborations"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), HubCollaborationsV2025R0.class); + } + + public HubCollaborationV2025R0 createHubCollaborationV2025R0( + HubCollaborationCreateRequestV2025R0 requestBody) { + return createHubCollaborationV2025R0(requestBody, new CreateHubCollaborationV2025R0Headers()); + } + + public HubCollaborationV2025R0 createHubCollaborationV2025R0( + HubCollaborationCreateRequestV2025R0 requestBody, + CreateHubCollaborationV2025R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/hub_collaborations"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), HubCollaborationV2025R0.class); + } + + public HubCollaborationV2025R0 getHubCollaborationByIdV2025R0(String hubCollaborationId) { + return getHubCollaborationByIdV2025R0( + hubCollaborationId, new GetHubCollaborationByIdV2025R0Headers()); + } + + public HubCollaborationV2025R0 getHubCollaborationByIdV2025R0( + String hubCollaborationId, GetHubCollaborationByIdV2025R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/hub_collaborations/", + convertToString(hubCollaborationId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), HubCollaborationV2025R0.class); + } + + public HubCollaborationV2025R0 updateHubCollaborationByIdV2025R0( + String hubCollaborationId, HubCollaborationUpdateRequestV2025R0 requestBody) { + return updateHubCollaborationByIdV2025R0( + hubCollaborationId, requestBody, new UpdateHubCollaborationByIdV2025R0Headers()); + } + + public HubCollaborationV2025R0 updateHubCollaborationByIdV2025R0( + String hubCollaborationId, + HubCollaborationUpdateRequestV2025R0 requestBody, + UpdateHubCollaborationByIdV2025R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/hub_collaborations/", + convertToString(hubCollaborationId)), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), HubCollaborationV2025R0.class); + } + + public void deleteHubCollaborationByIdV2025R0(String hubCollaborationId) { + deleteHubCollaborationByIdV2025R0( + hubCollaborationId, new DeleteHubCollaborationByIdV2025R0Headers()); + } + + public void deleteHubCollaborationByIdV2025R0( + String hubCollaborationId, DeleteHubCollaborationByIdV2025R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/hub_collaborations/", + convertToString(hubCollaborationId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public HubCollaborationsManager build() { + return new HubCollaborationsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubcollaborations/UpdateHubCollaborationByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubcollaborations/UpdateHubCollaborationByIdV2025R0Headers.java new file mode 100644 index 000000000..356b2f282 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubcollaborations/UpdateHubCollaborationByIdV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.hubcollaborations; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class UpdateHubCollaborationByIdV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public UpdateHubCollaborationByIdV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected UpdateHubCollaborationByIdV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateHubCollaborationByIdV2025R0Headers build() { + return new UpdateHubCollaborationByIdV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubitems/GetHubItemsV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubitems/GetHubItemsV2025R0Headers.java new file mode 100644 index 000000000..908dac894 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubitems/GetHubItemsV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.hubitems; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class GetHubItemsV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public GetHubItemsV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected GetHubItemsV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetHubItemsV2025R0Headers build() { + return new GetHubItemsV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubitems/GetHubItemsV2025R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/hubitems/GetHubItemsV2025R0QueryParams.java new file mode 100644 index 000000000..0dafb4fed --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubitems/GetHubItemsV2025R0QueryParams.java @@ -0,0 +1,59 @@ +package com.box.sdkgen.managers.hubitems; + +public class GetHubItemsV2025R0QueryParams { + + public final String hubId; + + public String marker; + + public Long limit; + + public GetHubItemsV2025R0QueryParams(String hubId) { + this.hubId = hubId; + } + + protected GetHubItemsV2025R0QueryParams(Builder builder) { + this.hubId = builder.hubId; + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getHubId() { + return hubId; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected final String hubId; + + protected String marker; + + protected Long limit; + + public Builder(String hubId) { + this.hubId = hubId; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetHubItemsV2025R0QueryParams build() { + return new GetHubItemsV2025R0QueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubitems/HubItemsManager.java b/src/main/java/com/box/sdkgen/managers/hubitems/HubItemsManager.java new file mode 100644 index 000000000..e6467bfd8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubitems/HubItemsManager.java @@ -0,0 +1,137 @@ +package com.box.sdkgen.managers.hubitems; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.v2025r0.hubitemsmanagerequestv2025r0.HubItemsManageRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubitemsmanageresponsev2025r0.HubItemsManageResponseV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubitemsv2025r0.HubItemsV2025R0; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class HubItemsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public HubItemsManager() { + this.networkSession = new NetworkSession(); + } + + protected HubItemsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public HubItemsV2025R0 getHubItemsV2025R0(GetHubItemsV2025R0QueryParams queryParams) { + return getHubItemsV2025R0(queryParams, new GetHubItemsV2025R0Headers()); + } + + public HubItemsV2025R0 getHubItemsV2025R0( + GetHubItemsV2025R0QueryParams queryParams, GetHubItemsV2025R0Headers headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("hub_id", convertToString(queryParams.getHubId())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/hub_items"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), HubItemsV2025R0.class); + } + + public HubItemsManageResponseV2025R0 manageHubItemsV2025R0( + String hubId, HubItemsManageRequestV2025R0 requestBody) { + return manageHubItemsV2025R0(hubId, requestBody, new ManageHubItemsV2025R0Headers()); + } + + public HubItemsManageResponseV2025R0 manageHubItemsV2025R0( + String hubId, + HubItemsManageRequestV2025R0 requestBody, + ManageHubItemsV2025R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/hubs/", + convertToString(hubId), + "/manage_items"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), HubItemsManageResponseV2025R0.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public HubItemsManager build() { + return new HubItemsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubitems/ManageHubItemsV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubitems/ManageHubItemsV2025R0Headers.java new file mode 100644 index 000000000..f5545575f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubitems/ManageHubItemsV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.hubitems; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class ManageHubItemsV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public ManageHubItemsV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected ManageHubItemsV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public ManageHubItemsV2025R0Headers build() { + return new ManageHubItemsV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubs/CopyHubV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubs/CopyHubV2025R0Headers.java new file mode 100644 index 000000000..616b02a15 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubs/CopyHubV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.hubs; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class CopyHubV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public CopyHubV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected CopyHubV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CopyHubV2025R0Headers build() { + return new CopyHubV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubs/CreateHubV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubs/CreateHubV2025R0Headers.java new file mode 100644 index 000000000..2b9d90fc7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubs/CreateHubV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.hubs; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class CreateHubV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public CreateHubV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected CreateHubV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateHubV2025R0Headers build() { + return new CreateHubV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubs/DeleteHubByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubs/DeleteHubByIdV2025R0Headers.java new file mode 100644 index 000000000..d769fb116 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubs/DeleteHubByIdV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.hubs; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class DeleteHubByIdV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public DeleteHubByIdV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected DeleteHubByIdV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteHubByIdV2025R0Headers build() { + return new DeleteHubByIdV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0Headers.java new file mode 100644 index 000000000..c0f4609eb --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.hubs; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class GetEnterpriseHubsV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public GetEnterpriseHubsV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected GetEnterpriseHubsV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetEnterpriseHubsV2025R0Headers build() { + return new GetEnterpriseHubsV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0QueryParams.java new file mode 100644 index 000000000..b28fbaef0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0QueryParams.java @@ -0,0 +1,95 @@ +package com.box.sdkgen.managers.hubs; + +import com.box.sdkgen.serialization.json.EnumWrapper; + +public class GetEnterpriseHubsV2025R0QueryParams { + + public String query; + + public String sort; + + public EnumWrapper direction; + + public String marker; + + public Long limit; + + public GetEnterpriseHubsV2025R0QueryParams() {} + + protected GetEnterpriseHubsV2025R0QueryParams(Builder builder) { + this.query = builder.query; + this.sort = builder.sort; + this.direction = builder.direction; + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getQuery() { + return query; + } + + public String getSort() { + return sort; + } + + public EnumWrapper getDirection() { + return direction; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected String query; + + protected String sort; + + protected EnumWrapper direction; + + protected String marker; + + protected Long limit; + + public Builder query(String query) { + this.query = query; + return this; + } + + public Builder sort(String sort) { + this.sort = sort; + return this; + } + + public Builder direction(GetEnterpriseHubsV2025R0QueryParamsDirectionField direction) { + this.direction = + new EnumWrapper(direction); + return this; + } + + public Builder direction( + EnumWrapper direction) { + this.direction = direction; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetEnterpriseHubsV2025R0QueryParams build() { + return new GetEnterpriseHubsV2025R0QueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0QueryParamsDirectionField.java b/src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0QueryParamsDirectionField.java new file mode 100644 index 000000000..8f615870b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0QueryParamsDirectionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.hubs; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetEnterpriseHubsV2025R0QueryParamsDirectionField implements Valuable { + ASC("ASC"), + DESC("DESC"); + + private final String value; + + GetEnterpriseHubsV2025R0QueryParamsDirectionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetEnterpriseHubsV2025R0QueryParamsDirectionFieldDeserializer + extends JsonDeserializer> { + + public GetEnterpriseHubsV2025R0QueryParamsDirectionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetEnterpriseHubsV2025R0QueryParamsDirectionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetEnterpriseHubsV2025R0QueryParamsDirectionFieldSerializer + extends JsonSerializer> { + + public GetEnterpriseHubsV2025R0QueryParamsDirectionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubs/GetHubByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubs/GetHubByIdV2025R0Headers.java new file mode 100644 index 000000000..bde445513 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubs/GetHubByIdV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.hubs; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class GetHubByIdV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public GetHubByIdV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected GetHubByIdV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetHubByIdV2025R0Headers build() { + return new GetHubByIdV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0Headers.java new file mode 100644 index 000000000..60f0185df --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.hubs; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class GetHubsV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public GetHubsV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected GetHubsV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetHubsV2025R0Headers build() { + return new GetHubsV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0QueryParams.java new file mode 100644 index 000000000..fb2c445d5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0QueryParams.java @@ -0,0 +1,107 @@ +package com.box.sdkgen.managers.hubs; + +import com.box.sdkgen.serialization.json.EnumWrapper; + +public class GetHubsV2025R0QueryParams { + + public String query; + + public String scope; + + public String sort; + + public EnumWrapper direction; + + public String marker; + + public Long limit; + + public GetHubsV2025R0QueryParams() {} + + protected GetHubsV2025R0QueryParams(Builder builder) { + this.query = builder.query; + this.scope = builder.scope; + this.sort = builder.sort; + this.direction = builder.direction; + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getQuery() { + return query; + } + + public String getScope() { + return scope; + } + + public String getSort() { + return sort; + } + + public EnumWrapper getDirection() { + return direction; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected String query; + + protected String scope; + + protected String sort; + + protected EnumWrapper direction; + + protected String marker; + + protected Long limit; + + public Builder query(String query) { + this.query = query; + return this; + } + + public Builder scope(String scope) { + this.scope = scope; + return this; + } + + public Builder sort(String sort) { + this.sort = sort; + return this; + } + + public Builder direction(GetHubsV2025R0QueryParamsDirectionField direction) { + this.direction = new EnumWrapper(direction); + return this; + } + + public Builder direction(EnumWrapper direction) { + this.direction = direction; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetHubsV2025R0QueryParams build() { + return new GetHubsV2025R0QueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0QueryParamsDirectionField.java b/src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0QueryParamsDirectionField.java new file mode 100644 index 000000000..f0d9c7145 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0QueryParamsDirectionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.hubs; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetHubsV2025R0QueryParamsDirectionField implements Valuable { + ASC("ASC"), + DESC("DESC"); + + private final String value; + + GetHubsV2025R0QueryParamsDirectionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetHubsV2025R0QueryParamsDirectionFieldDeserializer + extends JsonDeserializer> { + + public GetHubsV2025R0QueryParamsDirectionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetHubsV2025R0QueryParamsDirectionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetHubsV2025R0QueryParamsDirectionFieldSerializer + extends JsonSerializer> { + + public GetHubsV2025R0QueryParamsDirectionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubs/HubsManager.java b/src/main/java/com/box/sdkgen/managers/hubs/HubsManager.java new file mode 100644 index 000000000..dd90ae29b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubs/HubsManager.java @@ -0,0 +1,312 @@ +package com.box.sdkgen.managers.hubs; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.v2025r0.hubcopyrequestv2025r0.HubCopyRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubcreaterequestv2025r0.HubCreateRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubsv2025r0.HubsV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubupdaterequestv2025r0.HubUpdateRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubv2025r0.HubV2025R0; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class HubsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public HubsManager() { + this.networkSession = new NetworkSession(); + } + + protected HubsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public HubsV2025R0 getHubsV2025R0() { + return getHubsV2025R0(new GetHubsV2025R0QueryParams(), new GetHubsV2025R0Headers()); + } + + public HubsV2025R0 getHubsV2025R0(GetHubsV2025R0QueryParams queryParams) { + return getHubsV2025R0(queryParams, new GetHubsV2025R0Headers()); + } + + public HubsV2025R0 getHubsV2025R0(GetHubsV2025R0Headers headers) { + return getHubsV2025R0(new GetHubsV2025R0QueryParams(), headers); + } + + public HubsV2025R0 getHubsV2025R0( + GetHubsV2025R0QueryParams queryParams, GetHubsV2025R0Headers headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("query", convertToString(queryParams.getQuery())), + entryOf("scope", convertToString(queryParams.getScope())), + entryOf("sort", convertToString(queryParams.getSort())), + entryOf("direction", convertToString(queryParams.getDirection())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/hubs"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), HubsV2025R0.class); + } + + public HubV2025R0 createHubV2025R0(HubCreateRequestV2025R0 requestBody) { + return createHubV2025R0(requestBody, new CreateHubV2025R0Headers()); + } + + public HubV2025R0 createHubV2025R0( + HubCreateRequestV2025R0 requestBody, CreateHubV2025R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/hubs"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), HubV2025R0.class); + } + + public HubsV2025R0 getEnterpriseHubsV2025R0() { + return getEnterpriseHubsV2025R0( + new GetEnterpriseHubsV2025R0QueryParams(), new GetEnterpriseHubsV2025R0Headers()); + } + + public HubsV2025R0 getEnterpriseHubsV2025R0(GetEnterpriseHubsV2025R0QueryParams queryParams) { + return getEnterpriseHubsV2025R0(queryParams, new GetEnterpriseHubsV2025R0Headers()); + } + + public HubsV2025R0 getEnterpriseHubsV2025R0(GetEnterpriseHubsV2025R0Headers headers) { + return getEnterpriseHubsV2025R0(new GetEnterpriseHubsV2025R0QueryParams(), headers); + } + + public HubsV2025R0 getEnterpriseHubsV2025R0( + GetEnterpriseHubsV2025R0QueryParams queryParams, GetEnterpriseHubsV2025R0Headers headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("query", convertToString(queryParams.getQuery())), + entryOf("sort", convertToString(queryParams.getSort())), + entryOf("direction", convertToString(queryParams.getDirection())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/enterprise_hubs"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), HubsV2025R0.class); + } + + public HubV2025R0 getHubByIdV2025R0(String hubId) { + return getHubByIdV2025R0(hubId, new GetHubByIdV2025R0Headers()); + } + + public HubV2025R0 getHubByIdV2025R0(String hubId, GetHubByIdV2025R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/hubs/", + convertToString(hubId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), HubV2025R0.class); + } + + public HubV2025R0 updateHubByIdV2025R0(String hubId, HubUpdateRequestV2025R0 requestBody) { + return updateHubByIdV2025R0(hubId, requestBody, new UpdateHubByIdV2025R0Headers()); + } + + public HubV2025R0 updateHubByIdV2025R0( + String hubId, HubUpdateRequestV2025R0 requestBody, UpdateHubByIdV2025R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/hubs/", + convertToString(hubId)), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), HubV2025R0.class); + } + + public void deleteHubByIdV2025R0(String hubId) { + deleteHubByIdV2025R0(hubId, new DeleteHubByIdV2025R0Headers()); + } + + public void deleteHubByIdV2025R0(String hubId, DeleteHubByIdV2025R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/hubs/", + convertToString(hubId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public HubV2025R0 copyHubV2025R0(String hubId, HubCopyRequestV2025R0 requestBody) { + return copyHubV2025R0(hubId, requestBody, new CopyHubV2025R0Headers()); + } + + public HubV2025R0 copyHubV2025R0( + String hubId, HubCopyRequestV2025R0 requestBody, CopyHubV2025R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/hubs/", + convertToString(hubId), + "/copy"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), HubV2025R0.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public HubsManager build() { + return new HubsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubs/UpdateHubByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubs/UpdateHubByIdV2025R0Headers.java new file mode 100644 index 000000000..0bb036af7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubs/UpdateHubByIdV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.hubs; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class UpdateHubByIdV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public UpdateHubByIdV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected UpdateHubByIdV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateHubByIdV2025R0Headers build() { + return new UpdateHubByIdV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/CreateSlackIntegrationMappingHeaders.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/CreateSlackIntegrationMappingHeaders.java new file mode 100644 index 000000000..2232fd860 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/CreateSlackIntegrationMappingHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.integrationmappings; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateSlackIntegrationMappingHeaders { + + public Map extraHeaders; + + public CreateSlackIntegrationMappingHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateSlackIntegrationMappingHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateSlackIntegrationMappingHeaders build() { + return new CreateSlackIntegrationMappingHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/CreateTeamsIntegrationMappingHeaders.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/CreateTeamsIntegrationMappingHeaders.java new file mode 100644 index 000000000..82a1410c7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/CreateTeamsIntegrationMappingHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.integrationmappings; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateTeamsIntegrationMappingHeaders { + + public Map extraHeaders; + + public CreateTeamsIntegrationMappingHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateTeamsIntegrationMappingHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateTeamsIntegrationMappingHeaders build() { + return new CreateTeamsIntegrationMappingHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/DeleteSlackIntegrationMappingByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/DeleteSlackIntegrationMappingByIdHeaders.java new file mode 100644 index 000000000..74e1ab524 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/DeleteSlackIntegrationMappingByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.integrationmappings; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteSlackIntegrationMappingByIdHeaders { + + public Map extraHeaders; + + public DeleteSlackIntegrationMappingByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteSlackIntegrationMappingByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteSlackIntegrationMappingByIdHeaders build() { + return new DeleteSlackIntegrationMappingByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/DeleteTeamsIntegrationMappingByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/DeleteTeamsIntegrationMappingByIdHeaders.java new file mode 100644 index 000000000..6b9485bd1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/DeleteTeamsIntegrationMappingByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.integrationmappings; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteTeamsIntegrationMappingByIdHeaders { + + public Map extraHeaders; + + public DeleteTeamsIntegrationMappingByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteTeamsIntegrationMappingByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteTeamsIntegrationMappingByIdHeaders build() { + return new DeleteTeamsIntegrationMappingByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingHeaders.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingHeaders.java new file mode 100644 index 000000000..d959e6be6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.integrationmappings; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetSlackIntegrationMappingHeaders { + + public Map extraHeaders; + + public GetSlackIntegrationMappingHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetSlackIntegrationMappingHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetSlackIntegrationMappingHeaders build() { + return new GetSlackIntegrationMappingHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingQueryParams.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingQueryParams.java new file mode 100644 index 000000000..89eaed09c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingQueryParams.java @@ -0,0 +1,134 @@ +package com.box.sdkgen.managers.integrationmappings; + +import com.box.sdkgen.serialization.json.EnumWrapper; + +public class GetSlackIntegrationMappingQueryParams { + + public String marker; + + public Long limit; + + public EnumWrapper partnerItemType; + + public String partnerItemId; + + public String boxItemId; + + public EnumWrapper boxItemType; + + public Boolean isManuallyCreated; + + public GetSlackIntegrationMappingQueryParams() {} + + protected GetSlackIntegrationMappingQueryParams(Builder builder) { + this.marker = builder.marker; + this.limit = builder.limit; + this.partnerItemType = builder.partnerItemType; + this.partnerItemId = builder.partnerItemId; + this.boxItemId = builder.boxItemId; + this.boxItemType = builder.boxItemType; + this.isManuallyCreated = builder.isManuallyCreated; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public EnumWrapper + getPartnerItemType() { + return partnerItemType; + } + + public String getPartnerItemId() { + return partnerItemId; + } + + public String getBoxItemId() { + return boxItemId; + } + + public EnumWrapper getBoxItemType() { + return boxItemType; + } + + public Boolean getIsManuallyCreated() { + return isManuallyCreated; + } + + public static class Builder { + + protected String marker; + + protected Long limit; + + protected EnumWrapper + partnerItemType; + + protected String partnerItemId; + + protected String boxItemId; + + protected EnumWrapper boxItemType; + + protected Boolean isManuallyCreated; + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder partnerItemType( + GetSlackIntegrationMappingQueryParamsPartnerItemTypeField partnerItemType) { + this.partnerItemType = + new EnumWrapper( + partnerItemType); + return this; + } + + public Builder partnerItemType( + EnumWrapper partnerItemType) { + this.partnerItemType = partnerItemType; + return this; + } + + public Builder partnerItemId(String partnerItemId) { + this.partnerItemId = partnerItemId; + return this; + } + + public Builder boxItemId(String boxItemId) { + this.boxItemId = boxItemId; + return this; + } + + public Builder boxItemType(GetSlackIntegrationMappingQueryParamsBoxItemTypeField boxItemType) { + this.boxItemType = + new EnumWrapper(boxItemType); + return this; + } + + public Builder boxItemType( + EnumWrapper boxItemType) { + this.boxItemType = boxItemType; + return this; + } + + public Builder isManuallyCreated(Boolean isManuallyCreated) { + this.isManuallyCreated = isManuallyCreated; + return this; + } + + public GetSlackIntegrationMappingQueryParams build() { + return new GetSlackIntegrationMappingQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingQueryParamsBoxItemTypeField.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingQueryParamsBoxItemTypeField.java new file mode 100644 index 000000000..e07598cda --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingQueryParamsBoxItemTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.integrationmappings; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetSlackIntegrationMappingQueryParamsBoxItemTypeField implements Valuable { + FOLDER("folder"); + + private final String value; + + GetSlackIntegrationMappingQueryParamsBoxItemTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetSlackIntegrationMappingQueryParamsBoxItemTypeFieldDeserializer + extends JsonDeserializer> { + + public GetSlackIntegrationMappingQueryParamsBoxItemTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetSlackIntegrationMappingQueryParamsBoxItemTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetSlackIntegrationMappingQueryParamsBoxItemTypeFieldSerializer + extends JsonSerializer> { + + public GetSlackIntegrationMappingQueryParamsBoxItemTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingQueryParamsPartnerItemTypeField.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingQueryParamsPartnerItemTypeField.java new file mode 100644 index 000000000..81ac49b40 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingQueryParamsPartnerItemTypeField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.managers.integrationmappings; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetSlackIntegrationMappingQueryParamsPartnerItemTypeField implements Valuable { + CHANNEL("channel"); + + private final String value; + + GetSlackIntegrationMappingQueryParamsPartnerItemTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetSlackIntegrationMappingQueryParamsPartnerItemTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public GetSlackIntegrationMappingQueryParamsPartnerItemTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetSlackIntegrationMappingQueryParamsPartnerItemTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper(value)); + } + } + + public static class GetSlackIntegrationMappingQueryParamsPartnerItemTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public GetSlackIntegrationMappingQueryParamsPartnerItemTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingHeaders.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingHeaders.java new file mode 100644 index 000000000..98dc78121 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.integrationmappings; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetTeamsIntegrationMappingHeaders { + + public Map extraHeaders; + + public GetTeamsIntegrationMappingHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetTeamsIntegrationMappingHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetTeamsIntegrationMappingHeaders build() { + return new GetTeamsIntegrationMappingHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingQueryParams.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingQueryParams.java new file mode 100644 index 000000000..65d601ecd --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingQueryParams.java @@ -0,0 +1,92 @@ +package com.box.sdkgen.managers.integrationmappings; + +import com.box.sdkgen.serialization.json.EnumWrapper; + +public class GetTeamsIntegrationMappingQueryParams { + + public EnumWrapper partnerItemType; + + public String partnerItemId; + + public String boxItemId; + + public EnumWrapper boxItemType; + + public GetTeamsIntegrationMappingQueryParams() {} + + protected GetTeamsIntegrationMappingQueryParams(Builder builder) { + this.partnerItemType = builder.partnerItemType; + this.partnerItemId = builder.partnerItemId; + this.boxItemId = builder.boxItemId; + this.boxItemType = builder.boxItemType; + } + + public EnumWrapper + getPartnerItemType() { + return partnerItemType; + } + + public String getPartnerItemId() { + return partnerItemId; + } + + public String getBoxItemId() { + return boxItemId; + } + + public EnumWrapper getBoxItemType() { + return boxItemType; + } + + public static class Builder { + + protected EnumWrapper + partnerItemType; + + protected String partnerItemId; + + protected String boxItemId; + + protected EnumWrapper boxItemType; + + public Builder partnerItemType( + GetTeamsIntegrationMappingQueryParamsPartnerItemTypeField partnerItemType) { + this.partnerItemType = + new EnumWrapper( + partnerItemType); + return this; + } + + public Builder partnerItemType( + EnumWrapper partnerItemType) { + this.partnerItemType = partnerItemType; + return this; + } + + public Builder partnerItemId(String partnerItemId) { + this.partnerItemId = partnerItemId; + return this; + } + + public Builder boxItemId(String boxItemId) { + this.boxItemId = boxItemId; + return this; + } + + public Builder boxItemType(GetTeamsIntegrationMappingQueryParamsBoxItemTypeField boxItemType) { + this.boxItemType = + new EnumWrapper(boxItemType); + return this; + } + + public Builder boxItemType( + EnumWrapper boxItemType) { + this.boxItemType = boxItemType; + return this; + } + + public GetTeamsIntegrationMappingQueryParams build() { + return new GetTeamsIntegrationMappingQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingQueryParamsBoxItemTypeField.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingQueryParamsBoxItemTypeField.java new file mode 100644 index 000000000..7702a7946 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingQueryParamsBoxItemTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.integrationmappings; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetTeamsIntegrationMappingQueryParamsBoxItemTypeField implements Valuable { + FOLDER("folder"); + + private final String value; + + GetTeamsIntegrationMappingQueryParamsBoxItemTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetTeamsIntegrationMappingQueryParamsBoxItemTypeFieldDeserializer + extends JsonDeserializer> { + + public GetTeamsIntegrationMappingQueryParamsBoxItemTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetTeamsIntegrationMappingQueryParamsBoxItemTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetTeamsIntegrationMappingQueryParamsBoxItemTypeFieldSerializer + extends JsonSerializer> { + + public GetTeamsIntegrationMappingQueryParamsBoxItemTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingQueryParamsPartnerItemTypeField.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingQueryParamsPartnerItemTypeField.java new file mode 100644 index 000000000..374b08af2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingQueryParamsPartnerItemTypeField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.managers.integrationmappings; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetTeamsIntegrationMappingQueryParamsPartnerItemTypeField implements Valuable { + CHANNEL("channel"), + TEAM("team"); + + private final String value; + + GetTeamsIntegrationMappingQueryParamsPartnerItemTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetTeamsIntegrationMappingQueryParamsPartnerItemTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public GetTeamsIntegrationMappingQueryParamsPartnerItemTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetTeamsIntegrationMappingQueryParamsPartnerItemTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper(value)); + } + } + + public static class GetTeamsIntegrationMappingQueryParamsPartnerItemTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public GetTeamsIntegrationMappingQueryParamsPartnerItemTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/IntegrationMappingsManager.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/IntegrationMappingsManager.java new file mode 100644 index 000000000..73b6f1a20 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/IntegrationMappingsManager.java @@ -0,0 +1,363 @@ +package com.box.sdkgen.managers.integrationmappings; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.integrationmapping.IntegrationMapping; +import com.box.sdkgen.schemas.integrationmappings.IntegrationMappings; +import com.box.sdkgen.schemas.integrationmappingslackcreaterequest.IntegrationMappingSlackCreateRequest; +import com.box.sdkgen.schemas.integrationmappingsteams.IntegrationMappingsTeams; +import com.box.sdkgen.schemas.integrationmappingteams.IntegrationMappingTeams; +import com.box.sdkgen.schemas.integrationmappingteamscreaterequest.IntegrationMappingTeamsCreateRequest; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class IntegrationMappingsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public IntegrationMappingsManager() { + this.networkSession = new NetworkSession(); + } + + protected IntegrationMappingsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public IntegrationMappings getSlackIntegrationMapping() { + return getSlackIntegrationMapping( + new GetSlackIntegrationMappingQueryParams(), new GetSlackIntegrationMappingHeaders()); + } + + public IntegrationMappings getSlackIntegrationMapping( + GetSlackIntegrationMappingQueryParams queryParams) { + return getSlackIntegrationMapping(queryParams, new GetSlackIntegrationMappingHeaders()); + } + + public IntegrationMappings getSlackIntegrationMapping(GetSlackIntegrationMappingHeaders headers) { + return getSlackIntegrationMapping(new GetSlackIntegrationMappingQueryParams(), headers); + } + + public IntegrationMappings getSlackIntegrationMapping( + GetSlackIntegrationMappingQueryParams queryParams, + GetSlackIntegrationMappingHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf("partner_item_type", convertToString(queryParams.getPartnerItemType())), + entryOf("partner_item_id", convertToString(queryParams.getPartnerItemId())), + entryOf("box_item_id", convertToString(queryParams.getBoxItemId())), + entryOf("box_item_type", convertToString(queryParams.getBoxItemType())), + entryOf( + "is_manually_created", convertToString(queryParams.getIsManuallyCreated())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/integration_mappings/slack"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), IntegrationMappings.class); + } + + public IntegrationMapping createSlackIntegrationMapping( + IntegrationMappingSlackCreateRequest requestBody) { + return createSlackIntegrationMapping(requestBody, new CreateSlackIntegrationMappingHeaders()); + } + + public IntegrationMapping createSlackIntegrationMapping( + IntegrationMappingSlackCreateRequest requestBody, + CreateSlackIntegrationMappingHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/integration_mappings/slack"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), IntegrationMapping.class); + } + + public IntegrationMapping updateSlackIntegrationMappingById(String integrationMappingId) { + return updateSlackIntegrationMappingById( + integrationMappingId, + new UpdateSlackIntegrationMappingByIdRequestBody(), + new UpdateSlackIntegrationMappingByIdHeaders()); + } + + public IntegrationMapping updateSlackIntegrationMappingById( + String integrationMappingId, UpdateSlackIntegrationMappingByIdRequestBody requestBody) { + return updateSlackIntegrationMappingById( + integrationMappingId, requestBody, new UpdateSlackIntegrationMappingByIdHeaders()); + } + + public IntegrationMapping updateSlackIntegrationMappingById( + String integrationMappingId, UpdateSlackIntegrationMappingByIdHeaders headers) { + return updateSlackIntegrationMappingById( + integrationMappingId, new UpdateSlackIntegrationMappingByIdRequestBody(), headers); + } + + public IntegrationMapping updateSlackIntegrationMappingById( + String integrationMappingId, + UpdateSlackIntegrationMappingByIdRequestBody requestBody, + UpdateSlackIntegrationMappingByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/integration_mappings/slack/", + convertToString(integrationMappingId)), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), IntegrationMapping.class); + } + + public void deleteSlackIntegrationMappingById(String integrationMappingId) { + deleteSlackIntegrationMappingById( + integrationMappingId, new DeleteSlackIntegrationMappingByIdHeaders()); + } + + public void deleteSlackIntegrationMappingById( + String integrationMappingId, DeleteSlackIntegrationMappingByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/integration_mappings/slack/", + convertToString(integrationMappingId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public IntegrationMappingsTeams getTeamsIntegrationMapping() { + return getTeamsIntegrationMapping( + new GetTeamsIntegrationMappingQueryParams(), new GetTeamsIntegrationMappingHeaders()); + } + + public IntegrationMappingsTeams getTeamsIntegrationMapping( + GetTeamsIntegrationMappingQueryParams queryParams) { + return getTeamsIntegrationMapping(queryParams, new GetTeamsIntegrationMappingHeaders()); + } + + public IntegrationMappingsTeams getTeamsIntegrationMapping( + GetTeamsIntegrationMappingHeaders headers) { + return getTeamsIntegrationMapping(new GetTeamsIntegrationMappingQueryParams(), headers); + } + + public IntegrationMappingsTeams getTeamsIntegrationMapping( + GetTeamsIntegrationMappingQueryParams queryParams, + GetTeamsIntegrationMappingHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("partner_item_type", convertToString(queryParams.getPartnerItemType())), + entryOf("partner_item_id", convertToString(queryParams.getPartnerItemId())), + entryOf("box_item_id", convertToString(queryParams.getBoxItemId())), + entryOf("box_item_type", convertToString(queryParams.getBoxItemType())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/integration_mappings/teams"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), IntegrationMappingsTeams.class); + } + + public IntegrationMappingTeams createTeamsIntegrationMapping( + IntegrationMappingTeamsCreateRequest requestBody) { + return createTeamsIntegrationMapping(requestBody, new CreateTeamsIntegrationMappingHeaders()); + } + + public IntegrationMappingTeams createTeamsIntegrationMapping( + IntegrationMappingTeamsCreateRequest requestBody, + CreateTeamsIntegrationMappingHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/integration_mappings/teams"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), IntegrationMappingTeams.class); + } + + public IntegrationMappingTeams updateTeamsIntegrationMappingById(String integrationMappingId) { + return updateTeamsIntegrationMappingById( + integrationMappingId, + new UpdateTeamsIntegrationMappingByIdRequestBody(), + new UpdateTeamsIntegrationMappingByIdHeaders()); + } + + public IntegrationMappingTeams updateTeamsIntegrationMappingById( + String integrationMappingId, UpdateTeamsIntegrationMappingByIdRequestBody requestBody) { + return updateTeamsIntegrationMappingById( + integrationMappingId, requestBody, new UpdateTeamsIntegrationMappingByIdHeaders()); + } + + public IntegrationMappingTeams updateTeamsIntegrationMappingById( + String integrationMappingId, UpdateTeamsIntegrationMappingByIdHeaders headers) { + return updateTeamsIntegrationMappingById( + integrationMappingId, new UpdateTeamsIntegrationMappingByIdRequestBody(), headers); + } + + public IntegrationMappingTeams updateTeamsIntegrationMappingById( + String integrationMappingId, + UpdateTeamsIntegrationMappingByIdRequestBody requestBody, + UpdateTeamsIntegrationMappingByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/integration_mappings/teams/", + convertToString(integrationMappingId)), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), IntegrationMappingTeams.class); + } + + public void deleteTeamsIntegrationMappingById(String integrationMappingId) { + deleteTeamsIntegrationMappingById( + integrationMappingId, new DeleteTeamsIntegrationMappingByIdHeaders()); + } + + public void deleteTeamsIntegrationMappingById( + String integrationMappingId, DeleteTeamsIntegrationMappingByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/integration_mappings/teams/", + convertToString(integrationMappingId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public IntegrationMappingsManager build() { + return new IntegrationMappingsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateSlackIntegrationMappingByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateSlackIntegrationMappingByIdHeaders.java new file mode 100644 index 000000000..c7af60a4d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateSlackIntegrationMappingByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.integrationmappings; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateSlackIntegrationMappingByIdHeaders { + + public Map extraHeaders; + + public UpdateSlackIntegrationMappingByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateSlackIntegrationMappingByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateSlackIntegrationMappingByIdHeaders build() { + return new UpdateSlackIntegrationMappingByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateSlackIntegrationMappingByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateSlackIntegrationMappingByIdRequestBody.java new file mode 100644 index 000000000..6e97344e0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateSlackIntegrationMappingByIdRequestBody.java @@ -0,0 +1,89 @@ +package com.box.sdkgen.managers.integrationmappings; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.integrationmappingboxitemslack.IntegrationMappingBoxItemSlack; +import com.box.sdkgen.schemas.integrationmappingslackoptions.IntegrationMappingSlackOptions; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateSlackIntegrationMappingByIdRequestBody extends SerializableObject { + + @JsonProperty("box_item") + protected IntegrationMappingBoxItemSlack boxItem; + + protected IntegrationMappingSlackOptions options; + + public UpdateSlackIntegrationMappingByIdRequestBody() { + super(); + } + + protected UpdateSlackIntegrationMappingByIdRequestBody(Builder builder) { + super(); + this.boxItem = builder.boxItem; + this.options = builder.options; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public IntegrationMappingBoxItemSlack getBoxItem() { + return boxItem; + } + + public IntegrationMappingSlackOptions getOptions() { + return options; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateSlackIntegrationMappingByIdRequestBody casted = + (UpdateSlackIntegrationMappingByIdRequestBody) o; + return Objects.equals(boxItem, casted.boxItem) && Objects.equals(options, casted.options); + } + + @Override + public int hashCode() { + return Objects.hash(boxItem, options); + } + + @Override + public String toString() { + return "UpdateSlackIntegrationMappingByIdRequestBody{" + + "boxItem='" + + boxItem + + '\'' + + ", " + + "options='" + + options + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected IntegrationMappingBoxItemSlack boxItem; + + protected IntegrationMappingSlackOptions options; + + public Builder boxItem(IntegrationMappingBoxItemSlack boxItem) { + this.boxItem = boxItem; + return this; + } + + public Builder options(IntegrationMappingSlackOptions options) { + this.options = options; + return this; + } + + public UpdateSlackIntegrationMappingByIdRequestBody build() { + return new UpdateSlackIntegrationMappingByIdRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateTeamsIntegrationMappingByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateTeamsIntegrationMappingByIdHeaders.java new file mode 100644 index 000000000..6da39d4c2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateTeamsIntegrationMappingByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.integrationmappings; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateTeamsIntegrationMappingByIdHeaders { + + public Map extraHeaders; + + public UpdateTeamsIntegrationMappingByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateTeamsIntegrationMappingByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateTeamsIntegrationMappingByIdHeaders build() { + return new UpdateTeamsIntegrationMappingByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateTeamsIntegrationMappingByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateTeamsIntegrationMappingByIdRequestBody.java new file mode 100644 index 000000000..7d9fa3a5c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateTeamsIntegrationMappingByIdRequestBody.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.managers.integrationmappings; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.folderreference.FolderReference; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateTeamsIntegrationMappingByIdRequestBody extends SerializableObject { + + @JsonProperty("box_item") + protected FolderReference boxItem; + + public UpdateTeamsIntegrationMappingByIdRequestBody() { + super(); + } + + protected UpdateTeamsIntegrationMappingByIdRequestBody(Builder builder) { + super(); + this.boxItem = builder.boxItem; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public FolderReference getBoxItem() { + return boxItem; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateTeamsIntegrationMappingByIdRequestBody casted = + (UpdateTeamsIntegrationMappingByIdRequestBody) o; + return Objects.equals(boxItem, casted.boxItem); + } + + @Override + public int hashCode() { + return Objects.hash(boxItem); + } + + @Override + public String toString() { + return "UpdateTeamsIntegrationMappingByIdRequestBody{" + "boxItem='" + boxItem + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected FolderReference boxItem; + + public Builder boxItem(FolderReference boxItem) { + this.boxItem = boxItem; + return this; + } + + public UpdateTeamsIntegrationMappingByIdRequestBody build() { + return new UpdateTeamsIntegrationMappingByIdRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/invites/CreateInviteHeaders.java b/src/main/java/com/box/sdkgen/managers/invites/CreateInviteHeaders.java new file mode 100644 index 000000000..41ca6ff40 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/invites/CreateInviteHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.invites; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateInviteHeaders { + + public Map extraHeaders; + + public CreateInviteHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateInviteHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateInviteHeaders build() { + return new CreateInviteHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/invites/CreateInviteQueryParams.java b/src/main/java/com/box/sdkgen/managers/invites/CreateInviteQueryParams.java new file mode 100644 index 000000000..9065c9b6b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/invites/CreateInviteQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.invites; + +import java.util.List; + +public class CreateInviteQueryParams { + + public List fields; + + public CreateInviteQueryParams() {} + + protected CreateInviteQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public CreateInviteQueryParams build() { + return new CreateInviteQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/invites/CreateInviteRequestBody.java b/src/main/java/com/box/sdkgen/managers/invites/CreateInviteRequestBody.java new file mode 100644 index 000000000..cc9fb573f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/invites/CreateInviteRequestBody.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.invites; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateInviteRequestBody extends SerializableObject { + + protected final CreateInviteRequestBodyEnterpriseField enterprise; + + @JsonProperty("actionable_by") + protected final CreateInviteRequestBodyActionableByField actionableBy; + + public CreateInviteRequestBody( + @JsonProperty("enterprise") CreateInviteRequestBodyEnterpriseField enterprise, + @JsonProperty("actionable_by") CreateInviteRequestBodyActionableByField actionableBy) { + super(); + this.enterprise = enterprise; + this.actionableBy = actionableBy; + } + + public CreateInviteRequestBodyEnterpriseField getEnterprise() { + return enterprise; + } + + public CreateInviteRequestBodyActionableByField getActionableBy() { + return actionableBy; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateInviteRequestBody casted = (CreateInviteRequestBody) o; + return Objects.equals(enterprise, casted.enterprise) + && Objects.equals(actionableBy, casted.actionableBy); + } + + @Override + public int hashCode() { + return Objects.hash(enterprise, actionableBy); + } + + @Override + public String toString() { + return "CreateInviteRequestBody{" + + "enterprise='" + + enterprise + + '\'' + + ", " + + "actionableBy='" + + actionableBy + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/invites/CreateInviteRequestBodyActionableByField.java b/src/main/java/com/box/sdkgen/managers/invites/CreateInviteRequestBodyActionableByField.java new file mode 100644 index 000000000..5d9b1a2ad --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/invites/CreateInviteRequestBodyActionableByField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.invites; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateInviteRequestBodyActionableByField extends SerializableObject { + + protected String login; + + public CreateInviteRequestBodyActionableByField() { + super(); + } + + protected CreateInviteRequestBodyActionableByField(Builder builder) { + super(); + this.login = builder.login; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getLogin() { + return login; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateInviteRequestBodyActionableByField casted = (CreateInviteRequestBodyActionableByField) o; + return Objects.equals(login, casted.login); + } + + @Override + public int hashCode() { + return Objects.hash(login); + } + + @Override + public String toString() { + return "CreateInviteRequestBodyActionableByField{" + "login='" + login + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String login; + + public Builder login(String login) { + this.login = login; + return this; + } + + public CreateInviteRequestBodyActionableByField build() { + return new CreateInviteRequestBodyActionableByField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/invites/CreateInviteRequestBodyEnterpriseField.java b/src/main/java/com/box/sdkgen/managers/invites/CreateInviteRequestBodyEnterpriseField.java new file mode 100644 index 000000000..30e10879c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/invites/CreateInviteRequestBodyEnterpriseField.java @@ -0,0 +1,43 @@ +package com.box.sdkgen.managers.invites; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateInviteRequestBodyEnterpriseField extends SerializableObject { + + protected final String id; + + public CreateInviteRequestBodyEnterpriseField(@JsonProperty("id") String id) { + super(); + this.id = id; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateInviteRequestBodyEnterpriseField casted = (CreateInviteRequestBodyEnterpriseField) o; + return Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + return "CreateInviteRequestBodyEnterpriseField{" + "id='" + id + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/invites/GetInviteByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/invites/GetInviteByIdHeaders.java new file mode 100644 index 000000000..cb033302d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/invites/GetInviteByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.invites; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetInviteByIdHeaders { + + public Map extraHeaders; + + public GetInviteByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetInviteByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetInviteByIdHeaders build() { + return new GetInviteByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/invites/GetInviteByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/invites/GetInviteByIdQueryParams.java new file mode 100644 index 000000000..f331a7b1d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/invites/GetInviteByIdQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.invites; + +import java.util.List; + +public class GetInviteByIdQueryParams { + + public List fields; + + public GetInviteByIdQueryParams() {} + + protected GetInviteByIdQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public GetInviteByIdQueryParams build() { + return new GetInviteByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/invites/InvitesManager.java b/src/main/java/com/box/sdkgen/managers/invites/InvitesManager.java new file mode 100644 index 000000000..6d02b77cd --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/invites/InvitesManager.java @@ -0,0 +1,141 @@ +package com.box.sdkgen.managers.invites; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.invite.Invite; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class InvitesManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public InvitesManager() { + this.networkSession = new NetworkSession(); + } + + protected InvitesManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public Invite createInvite(CreateInviteRequestBody requestBody) { + return createInvite(requestBody, new CreateInviteQueryParams(), new CreateInviteHeaders()); + } + + public Invite createInvite( + CreateInviteRequestBody requestBody, CreateInviteQueryParams queryParams) { + return createInvite(requestBody, queryParams, new CreateInviteHeaders()); + } + + public Invite createInvite(CreateInviteRequestBody requestBody, CreateInviteHeaders headers) { + return createInvite(requestBody, new CreateInviteQueryParams(), headers); + } + + public Invite createInvite( + CreateInviteRequestBody requestBody, + CreateInviteQueryParams queryParams, + CreateInviteHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/invites"), + "POST") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Invite.class); + } + + public Invite getInviteById(String inviteId) { + return getInviteById(inviteId, new GetInviteByIdQueryParams(), new GetInviteByIdHeaders()); + } + + public Invite getInviteById(String inviteId, GetInviteByIdQueryParams queryParams) { + return getInviteById(inviteId, queryParams, new GetInviteByIdHeaders()); + } + + public Invite getInviteById(String inviteId, GetInviteByIdHeaders headers) { + return getInviteById(inviteId, new GetInviteByIdQueryParams(), headers); + } + + public Invite getInviteById( + String inviteId, GetInviteByIdQueryParams queryParams, GetInviteByIdHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/invites/", + convertToString(inviteId)), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Invite.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public InvitesManager build() { + return new InvitesManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/CreateLegalHoldPolicyHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/CreateLegalHoldPolicyHeaders.java new file mode 100644 index 000000000..bac833a6f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/CreateLegalHoldPolicyHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.legalholdpolicies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateLegalHoldPolicyHeaders { + + public Map extraHeaders; + + public CreateLegalHoldPolicyHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateLegalHoldPolicyHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateLegalHoldPolicyHeaders build() { + return new CreateLegalHoldPolicyHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/CreateLegalHoldPolicyRequestBody.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/CreateLegalHoldPolicyRequestBody.java new file mode 100644 index 000000000..8cb861d78 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/CreateLegalHoldPolicyRequestBody.java @@ -0,0 +1,156 @@ +package com.box.sdkgen.managers.legalholdpolicies; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateLegalHoldPolicyRequestBody extends SerializableObject { + + @JsonProperty("policy_name") + protected final String policyName; + + protected String description; + + @JsonProperty("filter_started_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date filterStartedAt; + + @JsonProperty("filter_ended_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date filterEndedAt; + + @JsonProperty("is_ongoing") + protected Boolean isOngoing; + + public CreateLegalHoldPolicyRequestBody(@JsonProperty("policy_name") String policyName) { + super(); + this.policyName = policyName; + } + + protected CreateLegalHoldPolicyRequestBody(Builder builder) { + super(); + this.policyName = builder.policyName; + this.description = builder.description; + this.filterStartedAt = builder.filterStartedAt; + this.filterEndedAt = builder.filterEndedAt; + this.isOngoing = builder.isOngoing; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getPolicyName() { + return policyName; + } + + public String getDescription() { + return description; + } + + public Date getFilterStartedAt() { + return filterStartedAt; + } + + public Date getFilterEndedAt() { + return filterEndedAt; + } + + public Boolean getIsOngoing() { + return isOngoing; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateLegalHoldPolicyRequestBody casted = (CreateLegalHoldPolicyRequestBody) o; + return Objects.equals(policyName, casted.policyName) + && Objects.equals(description, casted.description) + && Objects.equals(filterStartedAt, casted.filterStartedAt) + && Objects.equals(filterEndedAt, casted.filterEndedAt) + && Objects.equals(isOngoing, casted.isOngoing); + } + + @Override + public int hashCode() { + return Objects.hash(policyName, description, filterStartedAt, filterEndedAt, isOngoing); + } + + @Override + public String toString() { + return "CreateLegalHoldPolicyRequestBody{" + + "policyName='" + + policyName + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "filterStartedAt='" + + filterStartedAt + + '\'' + + ", " + + "filterEndedAt='" + + filterEndedAt + + '\'' + + ", " + + "isOngoing='" + + isOngoing + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String policyName; + + protected String description; + + protected Date filterStartedAt; + + protected Date filterEndedAt; + + protected Boolean isOngoing; + + public Builder(String policyName) { + super(); + this.policyName = policyName; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder filterStartedAt(Date filterStartedAt) { + this.filterStartedAt = filterStartedAt; + return this; + } + + public Builder filterEndedAt(Date filterEndedAt) { + this.filterEndedAt = filterEndedAt; + return this; + } + + public Builder isOngoing(Boolean isOngoing) { + this.isOngoing = isOngoing; + return this; + } + + public CreateLegalHoldPolicyRequestBody build() { + return new CreateLegalHoldPolicyRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/DeleteLegalHoldPolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/DeleteLegalHoldPolicyByIdHeaders.java new file mode 100644 index 000000000..dec2b6029 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/DeleteLegalHoldPolicyByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.legalholdpolicies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteLegalHoldPolicyByIdHeaders { + + public Map extraHeaders; + + public DeleteLegalHoldPolicyByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteLegalHoldPolicyByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteLegalHoldPolicyByIdHeaders build() { + return new DeleteLegalHoldPolicyByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPoliciesHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPoliciesHeaders.java new file mode 100644 index 000000000..871faa5a6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPoliciesHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.legalholdpolicies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetLegalHoldPoliciesHeaders { + + public Map extraHeaders; + + public GetLegalHoldPoliciesHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetLegalHoldPoliciesHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetLegalHoldPoliciesHeaders build() { + return new GetLegalHoldPoliciesHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPoliciesQueryParams.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPoliciesQueryParams.java new file mode 100644 index 000000000..b42a7068f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPoliciesQueryParams.java @@ -0,0 +1,74 @@ +package com.box.sdkgen.managers.legalholdpolicies; + +import java.util.List; + +public class GetLegalHoldPoliciesQueryParams { + + public String policyName; + + public List fields; + + public String marker; + + public Long limit; + + public GetLegalHoldPoliciesQueryParams() {} + + protected GetLegalHoldPoliciesQueryParams(Builder builder) { + this.policyName = builder.policyName; + this.fields = builder.fields; + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getPolicyName() { + return policyName; + } + + public List getFields() { + return fields; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected String policyName; + + protected List fields; + + protected String marker; + + protected Long limit; + + public Builder policyName(String policyName) { + this.policyName = policyName; + return this; + } + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetLegalHoldPoliciesQueryParams build() { + return new GetLegalHoldPoliciesQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPolicyByIdHeaders.java new file mode 100644 index 000000000..8ba860378 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPolicyByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.legalholdpolicies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetLegalHoldPolicyByIdHeaders { + + public Map extraHeaders; + + public GetLegalHoldPolicyByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetLegalHoldPolicyByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetLegalHoldPolicyByIdHeaders build() { + return new GetLegalHoldPolicyByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/LegalHoldPoliciesManager.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/LegalHoldPoliciesManager.java new file mode 100644 index 000000000..cfa266596 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/LegalHoldPoliciesManager.java @@ -0,0 +1,231 @@ +package com.box.sdkgen.managers.legalholdpolicies; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.legalholdpolicies.LegalHoldPolicies; +import com.box.sdkgen.schemas.legalholdpolicy.LegalHoldPolicy; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class LegalHoldPoliciesManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public LegalHoldPoliciesManager() { + this.networkSession = new NetworkSession(); + } + + protected LegalHoldPoliciesManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public LegalHoldPolicies getLegalHoldPolicies() { + return getLegalHoldPolicies( + new GetLegalHoldPoliciesQueryParams(), new GetLegalHoldPoliciesHeaders()); + } + + public LegalHoldPolicies getLegalHoldPolicies(GetLegalHoldPoliciesQueryParams queryParams) { + return getLegalHoldPolicies(queryParams, new GetLegalHoldPoliciesHeaders()); + } + + public LegalHoldPolicies getLegalHoldPolicies(GetLegalHoldPoliciesHeaders headers) { + return getLegalHoldPolicies(new GetLegalHoldPoliciesQueryParams(), headers); + } + + public LegalHoldPolicies getLegalHoldPolicies( + GetLegalHoldPoliciesQueryParams queryParams, GetLegalHoldPoliciesHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("policy_name", convertToString(queryParams.getPolicyName())), + entryOf("fields", convertToString(queryParams.getFields())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/legal_hold_policies"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), LegalHoldPolicies.class); + } + + public LegalHoldPolicy createLegalHoldPolicy(CreateLegalHoldPolicyRequestBody requestBody) { + return createLegalHoldPolicy(requestBody, new CreateLegalHoldPolicyHeaders()); + } + + public LegalHoldPolicy createLegalHoldPolicy( + CreateLegalHoldPolicyRequestBody requestBody, CreateLegalHoldPolicyHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/legal_hold_policies"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), LegalHoldPolicy.class); + } + + public LegalHoldPolicy getLegalHoldPolicyById(String legalHoldPolicyId) { + return getLegalHoldPolicyById(legalHoldPolicyId, new GetLegalHoldPolicyByIdHeaders()); + } + + public LegalHoldPolicy getLegalHoldPolicyById( + String legalHoldPolicyId, GetLegalHoldPolicyByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/legal_hold_policies/", + convertToString(legalHoldPolicyId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), LegalHoldPolicy.class); + } + + public LegalHoldPolicy updateLegalHoldPolicyById(String legalHoldPolicyId) { + return updateLegalHoldPolicyById( + legalHoldPolicyId, + new UpdateLegalHoldPolicyByIdRequestBody(), + new UpdateLegalHoldPolicyByIdHeaders()); + } + + public LegalHoldPolicy updateLegalHoldPolicyById( + String legalHoldPolicyId, UpdateLegalHoldPolicyByIdRequestBody requestBody) { + return updateLegalHoldPolicyById( + legalHoldPolicyId, requestBody, new UpdateLegalHoldPolicyByIdHeaders()); + } + + public LegalHoldPolicy updateLegalHoldPolicyById( + String legalHoldPolicyId, UpdateLegalHoldPolicyByIdHeaders headers) { + return updateLegalHoldPolicyById( + legalHoldPolicyId, new UpdateLegalHoldPolicyByIdRequestBody(), headers); + } + + public LegalHoldPolicy updateLegalHoldPolicyById( + String legalHoldPolicyId, + UpdateLegalHoldPolicyByIdRequestBody requestBody, + UpdateLegalHoldPolicyByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/legal_hold_policies/", + convertToString(legalHoldPolicyId)), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), LegalHoldPolicy.class); + } + + public void deleteLegalHoldPolicyById(String legalHoldPolicyId) { + deleteLegalHoldPolicyById(legalHoldPolicyId, new DeleteLegalHoldPolicyByIdHeaders()); + } + + public void deleteLegalHoldPolicyById( + String legalHoldPolicyId, DeleteLegalHoldPolicyByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/legal_hold_policies/", + convertToString(legalHoldPolicyId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public LegalHoldPoliciesManager build() { + return new LegalHoldPoliciesManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/UpdateLegalHoldPolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/UpdateLegalHoldPolicyByIdHeaders.java new file mode 100644 index 000000000..3afaed56f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/UpdateLegalHoldPolicyByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.legalholdpolicies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateLegalHoldPolicyByIdHeaders { + + public Map extraHeaders; + + public UpdateLegalHoldPolicyByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateLegalHoldPolicyByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateLegalHoldPolicyByIdHeaders build() { + return new UpdateLegalHoldPolicyByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/UpdateLegalHoldPolicyByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/UpdateLegalHoldPolicyByIdRequestBody.java new file mode 100644 index 000000000..2b5cf8093 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/UpdateLegalHoldPolicyByIdRequestBody.java @@ -0,0 +1,107 @@ +package com.box.sdkgen.managers.legalholdpolicies; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateLegalHoldPolicyByIdRequestBody extends SerializableObject { + + @JsonProperty("policy_name") + protected String policyName; + + protected String description; + + @JsonProperty("release_notes") + protected String releaseNotes; + + public UpdateLegalHoldPolicyByIdRequestBody() { + super(); + } + + protected UpdateLegalHoldPolicyByIdRequestBody(Builder builder) { + super(); + this.policyName = builder.policyName; + this.description = builder.description; + this.releaseNotes = builder.releaseNotes; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getPolicyName() { + return policyName; + } + + public String getDescription() { + return description; + } + + public String getReleaseNotes() { + return releaseNotes; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateLegalHoldPolicyByIdRequestBody casted = (UpdateLegalHoldPolicyByIdRequestBody) o; + return Objects.equals(policyName, casted.policyName) + && Objects.equals(description, casted.description) + && Objects.equals(releaseNotes, casted.releaseNotes); + } + + @Override + public int hashCode() { + return Objects.hash(policyName, description, releaseNotes); + } + + @Override + public String toString() { + return "UpdateLegalHoldPolicyByIdRequestBody{" + + "policyName='" + + policyName + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "releaseNotes='" + + releaseNotes + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String policyName; + + protected String description; + + protected String releaseNotes; + + public Builder policyName(String policyName) { + this.policyName = policyName; + return this; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder releaseNotes(String releaseNotes) { + this.releaseNotes = releaseNotes; + return this; + } + + public UpdateLegalHoldPolicyByIdRequestBody build() { + return new UpdateLegalHoldPolicyByIdRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentHeaders.java new file mode 100644 index 000000000..bcc1dadc4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.legalholdpolicyassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateLegalHoldPolicyAssignmentHeaders { + + public Map extraHeaders; + + public CreateLegalHoldPolicyAssignmentHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateLegalHoldPolicyAssignmentHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateLegalHoldPolicyAssignmentHeaders build() { + return new CreateLegalHoldPolicyAssignmentHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBody.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBody.java new file mode 100644 index 000000000..3fa2843cf --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBody.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.legalholdpolicyassignments; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateLegalHoldPolicyAssignmentRequestBody extends SerializableObject { + + @JsonProperty("policy_id") + protected final String policyId; + + @JsonProperty("assign_to") + protected final CreateLegalHoldPolicyAssignmentRequestBodyAssignToField assignTo; + + public CreateLegalHoldPolicyAssignmentRequestBody( + @JsonProperty("policy_id") String policyId, + @JsonProperty("assign_to") CreateLegalHoldPolicyAssignmentRequestBodyAssignToField assignTo) { + super(); + this.policyId = policyId; + this.assignTo = assignTo; + } + + public String getPolicyId() { + return policyId; + } + + public CreateLegalHoldPolicyAssignmentRequestBodyAssignToField getAssignTo() { + return assignTo; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateLegalHoldPolicyAssignmentRequestBody casted = + (CreateLegalHoldPolicyAssignmentRequestBody) o; + return Objects.equals(policyId, casted.policyId) && Objects.equals(assignTo, casted.assignTo); + } + + @Override + public int hashCode() { + return Objects.hash(policyId, assignTo); + } + + @Override + public String toString() { + return "CreateLegalHoldPolicyAssignmentRequestBody{" + + "policyId='" + + policyId + + '\'' + + ", " + + "assignTo='" + + assignTo + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBodyAssignToField.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBodyAssignToField.java new file mode 100644 index 000000000..e51ee3bcd --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBodyAssignToField.java @@ -0,0 +1,80 @@ +package com.box.sdkgen.managers.legalholdpolicyassignments; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateLegalHoldPolicyAssignmentRequestBodyAssignToField extends SerializableObject { + + @JsonDeserialize( + using = + CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeField + .CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeFieldDeserializer.class) + @JsonSerialize( + using = + CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeField + .CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeFieldSerializer.class) + protected final EnumWrapper type; + + protected final String id; + + public CreateLegalHoldPolicyAssignmentRequestBodyAssignToField( + CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeField type, String id) { + super(); + this.type = new EnumWrapper(type); + this.id = id; + } + + public CreateLegalHoldPolicyAssignmentRequestBodyAssignToField( + @JsonProperty("type") + EnumWrapper type, + @JsonProperty("id") String id) { + super(); + this.type = type; + this.id = id; + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateLegalHoldPolicyAssignmentRequestBodyAssignToField casted = + (CreateLegalHoldPolicyAssignmentRequestBodyAssignToField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "CreateLegalHoldPolicyAssignmentRequestBodyAssignToField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeField.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeField.java new file mode 100644 index 000000000..8a7ba7931 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeField.java @@ -0,0 +1,70 @@ +package com.box.sdkgen.managers.legalholdpolicyassignments; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeField implements Valuable { + FILE("file"), + FILE_VERSION("file_version"), + FOLDER("folder"), + USER("user"), + OWNERSHIP("ownership"), + INTERACTION("interaction"); + + private final String value; + + CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper(value)); + } + } + + public static class CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/DeleteLegalHoldPolicyAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/DeleteLegalHoldPolicyAssignmentByIdHeaders.java new file mode 100644 index 000000000..3fce1637e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/DeleteLegalHoldPolicyAssignmentByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.legalholdpolicyassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteLegalHoldPolicyAssignmentByIdHeaders { + + public Map extraHeaders; + + public DeleteLegalHoldPolicyAssignmentByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteLegalHoldPolicyAssignmentByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteLegalHoldPolicyAssignmentByIdHeaders build() { + return new DeleteLegalHoldPolicyAssignmentByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentByIdHeaders.java new file mode 100644 index 000000000..634d3ff39 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.legalholdpolicyassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetLegalHoldPolicyAssignmentByIdHeaders { + + public Map extraHeaders; + + public GetLegalHoldPolicyAssignmentByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetLegalHoldPolicyAssignmentByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetLegalHoldPolicyAssignmentByIdHeaders build() { + return new GetLegalHoldPolicyAssignmentByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentFileOnHoldHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentFileOnHoldHeaders.java new file mode 100644 index 000000000..3a4f6ab67 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentFileOnHoldHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.legalholdpolicyassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetLegalHoldPolicyAssignmentFileOnHoldHeaders { + + public Map extraHeaders; + + public GetLegalHoldPolicyAssignmentFileOnHoldHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetLegalHoldPolicyAssignmentFileOnHoldHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetLegalHoldPolicyAssignmentFileOnHoldHeaders build() { + return new GetLegalHoldPolicyAssignmentFileOnHoldHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentFileOnHoldQueryParams.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentFileOnHoldQueryParams.java new file mode 100644 index 000000000..db06da2aa --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentFileOnHoldQueryParams.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.managers.legalholdpolicyassignments; + +import java.util.List; + +public class GetLegalHoldPolicyAssignmentFileOnHoldQueryParams { + + public String marker; + + public Long limit; + + public List fields; + + public GetLegalHoldPolicyAssignmentFileOnHoldQueryParams() {} + + protected GetLegalHoldPolicyAssignmentFileOnHoldQueryParams(Builder builder) { + this.marker = builder.marker; + this.limit = builder.limit; + this.fields = builder.fields; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected String marker; + + protected Long limit; + + protected List fields; + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public GetLegalHoldPolicyAssignmentFileOnHoldQueryParams build() { + return new GetLegalHoldPolicyAssignmentFileOnHoldQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsHeaders.java new file mode 100644 index 000000000..40a640fcf --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.legalholdpolicyassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetLegalHoldPolicyAssignmentsHeaders { + + public Map extraHeaders; + + public GetLegalHoldPolicyAssignmentsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetLegalHoldPolicyAssignmentsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetLegalHoldPolicyAssignmentsHeaders build() { + return new GetLegalHoldPolicyAssignmentsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsQueryParams.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsQueryParams.java new file mode 100644 index 000000000..c050c0938 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsQueryParams.java @@ -0,0 +1,112 @@ +package com.box.sdkgen.managers.legalholdpolicyassignments; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.List; + +public class GetLegalHoldPolicyAssignmentsQueryParams { + + public final String policyId; + + public EnumWrapper assignToType; + + public String assignToId; + + public String marker; + + public Long limit; + + public List fields; + + public GetLegalHoldPolicyAssignmentsQueryParams(String policyId) { + this.policyId = policyId; + } + + protected GetLegalHoldPolicyAssignmentsQueryParams(Builder builder) { + this.policyId = builder.policyId; + this.assignToType = builder.assignToType; + this.assignToId = builder.assignToId; + this.marker = builder.marker; + this.limit = builder.limit; + this.fields = builder.fields; + } + + public String getPolicyId() { + return policyId; + } + + public EnumWrapper getAssignToType() { + return assignToType; + } + + public String getAssignToId() { + return assignToId; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected final String policyId; + + protected EnumWrapper assignToType; + + protected String assignToId; + + protected String marker; + + protected Long limit; + + protected List fields; + + public Builder(String policyId) { + this.policyId = policyId; + } + + public Builder assignToType( + GetLegalHoldPolicyAssignmentsQueryParamsAssignToTypeField assignToType) { + this.assignToType = + new EnumWrapper(assignToType); + return this; + } + + public Builder assignToType( + EnumWrapper assignToType) { + this.assignToType = assignToType; + return this; + } + + public Builder assignToId(String assignToId) { + this.assignToId = assignToId; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public GetLegalHoldPolicyAssignmentsQueryParams build() { + return new GetLegalHoldPolicyAssignmentsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsQueryParamsAssignToTypeField.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsQueryParamsAssignToTypeField.java new file mode 100644 index 000000000..77680c5da --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsQueryParamsAssignToTypeField.java @@ -0,0 +1,70 @@ +package com.box.sdkgen.managers.legalholdpolicyassignments; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetLegalHoldPolicyAssignmentsQueryParamsAssignToTypeField implements Valuable { + FILE("file"), + FILE_VERSION("file_version"), + FOLDER("folder"), + USER("user"), + OWNERSHIP("ownership"), + INTERACTIONS("interactions"); + + private final String value; + + GetLegalHoldPolicyAssignmentsQueryParamsAssignToTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetLegalHoldPolicyAssignmentsQueryParamsAssignToTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public GetLegalHoldPolicyAssignmentsQueryParamsAssignToTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetLegalHoldPolicyAssignmentsQueryParamsAssignToTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper(value)); + } + } + + public static class GetLegalHoldPolicyAssignmentsQueryParamsAssignToTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public GetLegalHoldPolicyAssignmentsQueryParamsAssignToTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/LegalHoldPolicyAssignmentsManager.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/LegalHoldPolicyAssignmentsManager.java new file mode 100644 index 000000000..07b5df3a6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/LegalHoldPolicyAssignmentsManager.java @@ -0,0 +1,244 @@ +package com.box.sdkgen.managers.legalholdpolicyassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.filesonhold.FilesOnHold; +import com.box.sdkgen.schemas.legalholdpolicyassignment.LegalHoldPolicyAssignment; +import com.box.sdkgen.schemas.legalholdpolicyassignments.LegalHoldPolicyAssignments; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class LegalHoldPolicyAssignmentsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public LegalHoldPolicyAssignmentsManager() { + this.networkSession = new NetworkSession(); + } + + protected LegalHoldPolicyAssignmentsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public LegalHoldPolicyAssignments getLegalHoldPolicyAssignments( + GetLegalHoldPolicyAssignmentsQueryParams queryParams) { + return getLegalHoldPolicyAssignments(queryParams, new GetLegalHoldPolicyAssignmentsHeaders()); + } + + public LegalHoldPolicyAssignments getLegalHoldPolicyAssignments( + GetLegalHoldPolicyAssignmentsQueryParams queryParams, + GetLegalHoldPolicyAssignmentsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("policy_id", convertToString(queryParams.getPolicyId())), + entryOf("assign_to_type", convertToString(queryParams.getAssignToType())), + entryOf("assign_to_id", convertToString(queryParams.getAssignToId())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/legal_hold_policy_assignments"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), LegalHoldPolicyAssignments.class); + } + + public LegalHoldPolicyAssignment createLegalHoldPolicyAssignment( + CreateLegalHoldPolicyAssignmentRequestBody requestBody) { + return createLegalHoldPolicyAssignment( + requestBody, new CreateLegalHoldPolicyAssignmentHeaders()); + } + + public LegalHoldPolicyAssignment createLegalHoldPolicyAssignment( + CreateLegalHoldPolicyAssignmentRequestBody requestBody, + CreateLegalHoldPolicyAssignmentHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/legal_hold_policy_assignments"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), LegalHoldPolicyAssignment.class); + } + + public LegalHoldPolicyAssignment getLegalHoldPolicyAssignmentById( + String legalHoldPolicyAssignmentId) { + return getLegalHoldPolicyAssignmentById( + legalHoldPolicyAssignmentId, new GetLegalHoldPolicyAssignmentByIdHeaders()); + } + + public LegalHoldPolicyAssignment getLegalHoldPolicyAssignmentById( + String legalHoldPolicyAssignmentId, GetLegalHoldPolicyAssignmentByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/legal_hold_policy_assignments/", + convertToString(legalHoldPolicyAssignmentId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), LegalHoldPolicyAssignment.class); + } + + public void deleteLegalHoldPolicyAssignmentById(String legalHoldPolicyAssignmentId) { + deleteLegalHoldPolicyAssignmentById( + legalHoldPolicyAssignmentId, new DeleteLegalHoldPolicyAssignmentByIdHeaders()); + } + + public void deleteLegalHoldPolicyAssignmentById( + String legalHoldPolicyAssignmentId, DeleteLegalHoldPolicyAssignmentByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/legal_hold_policy_assignments/", + convertToString(legalHoldPolicyAssignmentId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public FilesOnHold getLegalHoldPolicyAssignmentFileOnHold(String legalHoldPolicyAssignmentId) { + return getLegalHoldPolicyAssignmentFileOnHold( + legalHoldPolicyAssignmentId, + new GetLegalHoldPolicyAssignmentFileOnHoldQueryParams(), + new GetLegalHoldPolicyAssignmentFileOnHoldHeaders()); + } + + public FilesOnHold getLegalHoldPolicyAssignmentFileOnHold( + String legalHoldPolicyAssignmentId, + GetLegalHoldPolicyAssignmentFileOnHoldQueryParams queryParams) { + return getLegalHoldPolicyAssignmentFileOnHold( + legalHoldPolicyAssignmentId, + queryParams, + new GetLegalHoldPolicyAssignmentFileOnHoldHeaders()); + } + + public FilesOnHold getLegalHoldPolicyAssignmentFileOnHold( + String legalHoldPolicyAssignmentId, GetLegalHoldPolicyAssignmentFileOnHoldHeaders headers) { + return getLegalHoldPolicyAssignmentFileOnHold( + legalHoldPolicyAssignmentId, + new GetLegalHoldPolicyAssignmentFileOnHoldQueryParams(), + headers); + } + + public FilesOnHold getLegalHoldPolicyAssignmentFileOnHold( + String legalHoldPolicyAssignmentId, + GetLegalHoldPolicyAssignmentFileOnHoldQueryParams queryParams, + GetLegalHoldPolicyAssignmentFileOnHoldHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/legal_hold_policy_assignments/", + convertToString(legalHoldPolicyAssignmentId), + "/files_on_hold"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FilesOnHold.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public LegalHoldPolicyAssignmentsManager build() { + return new LegalHoldPolicyAssignmentsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsHeaders.java b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsHeaders.java new file mode 100644 index 000000000..fb0fd9110 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.listcollaborations; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetCollaborationsHeaders { + + public Map extraHeaders; + + public GetCollaborationsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetCollaborationsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetCollaborationsHeaders build() { + return new GetCollaborationsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsQueryParams.java b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsQueryParams.java new file mode 100644 index 000000000..5d2d42894 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsQueryParams.java @@ -0,0 +1,84 @@ +package com.box.sdkgen.managers.listcollaborations; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.List; + +public class GetCollaborationsQueryParams { + + public final EnumWrapper status; + + public List fields; + + public Long offset; + + public Long limit; + + public GetCollaborationsQueryParams(GetCollaborationsQueryParamsStatusField status) { + this.status = new EnumWrapper(status); + } + + public GetCollaborationsQueryParams(EnumWrapper status) { + this.status = status; + } + + protected GetCollaborationsQueryParams(Builder builder) { + this.status = builder.status; + this.fields = builder.fields; + this.offset = builder.offset; + this.limit = builder.limit; + } + + public EnumWrapper getStatus() { + return status; + } + + public List getFields() { + return fields; + } + + public Long getOffset() { + return offset; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected final EnumWrapper status; + + protected List fields; + + protected Long offset; + + protected Long limit; + + public Builder(GetCollaborationsQueryParamsStatusField status) { + this.status = new EnumWrapper(status); + } + + public Builder(EnumWrapper status) { + this.status = status; + } + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetCollaborationsQueryParams build() { + return new GetCollaborationsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsQueryParamsStatusField.java b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsQueryParamsStatusField.java new file mode 100644 index 000000000..c9f60db0e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsQueryParamsStatusField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.listcollaborations; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetCollaborationsQueryParamsStatusField implements Valuable { + PENDING("pending"); + + private final String value; + + GetCollaborationsQueryParamsStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetCollaborationsQueryParamsStatusFieldDeserializer + extends JsonDeserializer> { + + public GetCollaborationsQueryParamsStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetCollaborationsQueryParamsStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetCollaborationsQueryParamsStatusFieldSerializer + extends JsonSerializer> { + + public GetCollaborationsQueryParamsStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFileCollaborationsHeaders.java b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFileCollaborationsHeaders.java new file mode 100644 index 000000000..a4fc2a3a3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFileCollaborationsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.listcollaborations; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFileCollaborationsHeaders { + + public Map extraHeaders; + + public GetFileCollaborationsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFileCollaborationsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFileCollaborationsHeaders build() { + return new GetFileCollaborationsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFileCollaborationsQueryParams.java b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFileCollaborationsQueryParams.java new file mode 100644 index 000000000..2526d72bc --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFileCollaborationsQueryParams.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.managers.listcollaborations; + +import java.util.List; + +public class GetFileCollaborationsQueryParams { + + public List fields; + + public Long limit; + + public String marker; + + public GetFileCollaborationsQueryParams() {} + + protected GetFileCollaborationsQueryParams(Builder builder) { + this.fields = builder.fields; + this.limit = builder.limit; + this.marker = builder.marker; + } + + public List getFields() { + return fields; + } + + public Long getLimit() { + return limit; + } + + public String getMarker() { + return marker; + } + + public static class Builder { + + protected List fields; + + protected Long limit; + + protected String marker; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public GetFileCollaborationsQueryParams build() { + return new GetFileCollaborationsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFolderCollaborationsHeaders.java b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFolderCollaborationsHeaders.java new file mode 100644 index 000000000..db61ee413 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFolderCollaborationsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.listcollaborations; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFolderCollaborationsHeaders { + + public Map extraHeaders; + + public GetFolderCollaborationsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFolderCollaborationsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFolderCollaborationsHeaders build() { + return new GetFolderCollaborationsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFolderCollaborationsQueryParams.java b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFolderCollaborationsQueryParams.java new file mode 100644 index 000000000..55aa0facf --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFolderCollaborationsQueryParams.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.managers.listcollaborations; + +import java.util.List; + +public class GetFolderCollaborationsQueryParams { + + public List fields; + + public Long limit; + + public String marker; + + public GetFolderCollaborationsQueryParams() {} + + protected GetFolderCollaborationsQueryParams(Builder builder) { + this.fields = builder.fields; + this.limit = builder.limit; + this.marker = builder.marker; + } + + public List getFields() { + return fields; + } + + public Long getLimit() { + return limit; + } + + public String getMarker() { + return marker; + } + + public static class Builder { + + protected List fields; + + protected Long limit; + + protected String marker; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public GetFolderCollaborationsQueryParams build() { + return new GetFolderCollaborationsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetGroupCollaborationsHeaders.java b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetGroupCollaborationsHeaders.java new file mode 100644 index 000000000..a3ef838ea --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetGroupCollaborationsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.listcollaborations; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetGroupCollaborationsHeaders { + + public Map extraHeaders; + + public GetGroupCollaborationsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetGroupCollaborationsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetGroupCollaborationsHeaders build() { + return new GetGroupCollaborationsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetGroupCollaborationsQueryParams.java b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetGroupCollaborationsQueryParams.java new file mode 100644 index 000000000..d7bc333de --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetGroupCollaborationsQueryParams.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.listcollaborations; + +public class GetGroupCollaborationsQueryParams { + + public Long limit; + + public Long offset; + + public GetGroupCollaborationsQueryParams() {} + + protected GetGroupCollaborationsQueryParams(Builder builder) { + this.limit = builder.limit; + this.offset = builder.offset; + } + + public Long getLimit() { + return limit; + } + + public Long getOffset() { + return offset; + } + + public static class Builder { + + protected Long limit; + + protected Long offset; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public GetGroupCollaborationsQueryParams build() { + return new GetGroupCollaborationsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/listcollaborations/ListCollaborationsManager.java b/src/main/java/com/box/sdkgen/managers/listcollaborations/ListCollaborationsManager.java new file mode 100644 index 000000000..457ccf67a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/listcollaborations/ListCollaborationsManager.java @@ -0,0 +1,238 @@ +package com.box.sdkgen.managers.listcollaborations; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.collaborations.Collaborations; +import com.box.sdkgen.schemas.collaborationsoffsetpaginated.CollaborationsOffsetPaginated; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class ListCollaborationsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public ListCollaborationsManager() { + this.networkSession = new NetworkSession(); + } + + protected ListCollaborationsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public Collaborations getFileCollaborations(String fileId) { + return getFileCollaborations( + fileId, new GetFileCollaborationsQueryParams(), new GetFileCollaborationsHeaders()); + } + + public Collaborations getFileCollaborations( + String fileId, GetFileCollaborationsQueryParams queryParams) { + return getFileCollaborations(fileId, queryParams, new GetFileCollaborationsHeaders()); + } + + public Collaborations getFileCollaborations(String fileId, GetFileCollaborationsHeaders headers) { + return getFileCollaborations(fileId, new GetFileCollaborationsQueryParams(), headers); + } + + public Collaborations getFileCollaborations( + String fileId, + GetFileCollaborationsQueryParams queryParams, + GetFileCollaborationsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("fields", convertToString(queryParams.getFields())), + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf("marker", convertToString(queryParams.getMarker())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/collaborations"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Collaborations.class); + } + + public Collaborations getFolderCollaborations(String folderId) { + return getFolderCollaborations( + folderId, new GetFolderCollaborationsQueryParams(), new GetFolderCollaborationsHeaders()); + } + + public Collaborations getFolderCollaborations( + String folderId, GetFolderCollaborationsQueryParams queryParams) { + return getFolderCollaborations(folderId, queryParams, new GetFolderCollaborationsHeaders()); + } + + public Collaborations getFolderCollaborations( + String folderId, GetFolderCollaborationsHeaders headers) { + return getFolderCollaborations(folderId, new GetFolderCollaborationsQueryParams(), headers); + } + + public Collaborations getFolderCollaborations( + String folderId, + GetFolderCollaborationsQueryParams queryParams, + GetFolderCollaborationsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("fields", convertToString(queryParams.getFields())), + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf("marker", convertToString(queryParams.getMarker())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId), + "/collaborations"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Collaborations.class); + } + + public CollaborationsOffsetPaginated getCollaborations(GetCollaborationsQueryParams queryParams) { + return getCollaborations(queryParams, new GetCollaborationsHeaders()); + } + + public CollaborationsOffsetPaginated getCollaborations( + GetCollaborationsQueryParams queryParams, GetCollaborationsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("status", convertToString(queryParams.getStatus())), + entryOf("fields", convertToString(queryParams.getFields())), + entryOf("offset", convertToString(queryParams.getOffset())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/collaborations"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), CollaborationsOffsetPaginated.class); + } + + public CollaborationsOffsetPaginated getGroupCollaborations(String groupId) { + return getGroupCollaborations( + groupId, new GetGroupCollaborationsQueryParams(), new GetGroupCollaborationsHeaders()); + } + + public CollaborationsOffsetPaginated getGroupCollaborations( + String groupId, GetGroupCollaborationsQueryParams queryParams) { + return getGroupCollaborations(groupId, queryParams, new GetGroupCollaborationsHeaders()); + } + + public CollaborationsOffsetPaginated getGroupCollaborations( + String groupId, GetGroupCollaborationsHeaders headers) { + return getGroupCollaborations(groupId, new GetGroupCollaborationsQueryParams(), headers); + } + + public CollaborationsOffsetPaginated getGroupCollaborations( + String groupId, + GetGroupCollaborationsQueryParams queryParams, + GetGroupCollaborationsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf("offset", convertToString(queryParams.getOffset())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/groups/", + convertToString(groupId), + "/collaborations"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), CollaborationsOffsetPaginated.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public ListCollaborationsManager build() { + return new ListCollaborationsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipHeaders.java b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipHeaders.java new file mode 100644 index 000000000..60bbae609 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.memberships; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateGroupMembershipHeaders { + + public Map extraHeaders; + + public CreateGroupMembershipHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateGroupMembershipHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateGroupMembershipHeaders build() { + return new CreateGroupMembershipHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipQueryParams.java b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipQueryParams.java new file mode 100644 index 000000000..a2a824bec --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.memberships; + +import java.util.List; + +public class CreateGroupMembershipQueryParams { + + public List fields; + + public CreateGroupMembershipQueryParams() {} + + protected CreateGroupMembershipQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public CreateGroupMembershipQueryParams build() { + return new CreateGroupMembershipQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBody.java b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBody.java new file mode 100644 index 000000000..9e6bc4610 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBody.java @@ -0,0 +1,147 @@ +package com.box.sdkgen.managers.memberships; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Map; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateGroupMembershipRequestBody extends SerializableObject { + + protected final CreateGroupMembershipRequestBodyUserField user; + + protected final CreateGroupMembershipRequestBodyGroupField group; + + @JsonDeserialize( + using = + CreateGroupMembershipRequestBodyRoleField + .CreateGroupMembershipRequestBodyRoleFieldDeserializer.class) + @JsonSerialize( + using = + CreateGroupMembershipRequestBodyRoleField + .CreateGroupMembershipRequestBodyRoleFieldSerializer.class) + protected EnumWrapper role; + + @JsonProperty("configurable_permissions") + @Nullable + protected Map configurablePermissions; + + public CreateGroupMembershipRequestBody( + @JsonProperty("user") CreateGroupMembershipRequestBodyUserField user, + @JsonProperty("group") CreateGroupMembershipRequestBodyGroupField group) { + super(); + this.user = user; + this.group = group; + } + + protected CreateGroupMembershipRequestBody(Builder builder) { + super(); + this.user = builder.user; + this.group = builder.group; + this.role = builder.role; + this.configurablePermissions = builder.configurablePermissions; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public CreateGroupMembershipRequestBodyUserField getUser() { + return user; + } + + public CreateGroupMembershipRequestBodyGroupField getGroup() { + return group; + } + + public EnumWrapper getRole() { + return role; + } + + public Map getConfigurablePermissions() { + return configurablePermissions; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateGroupMembershipRequestBody casted = (CreateGroupMembershipRequestBody) o; + return Objects.equals(user, casted.user) + && Objects.equals(group, casted.group) + && Objects.equals(role, casted.role) + && Objects.equals(configurablePermissions, casted.configurablePermissions); + } + + @Override + public int hashCode() { + return Objects.hash(user, group, role, configurablePermissions); + } + + @Override + public String toString() { + return "CreateGroupMembershipRequestBody{" + + "user='" + + user + + '\'' + + ", " + + "group='" + + group + + '\'' + + ", " + + "role='" + + role + + '\'' + + ", " + + "configurablePermissions='" + + configurablePermissions + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final CreateGroupMembershipRequestBodyUserField user; + + protected final CreateGroupMembershipRequestBodyGroupField group; + + protected EnumWrapper role; + + protected Map configurablePermissions; + + public Builder( + CreateGroupMembershipRequestBodyUserField user, + CreateGroupMembershipRequestBodyGroupField group) { + super(); + this.user = user; + this.group = group; + } + + public Builder role(CreateGroupMembershipRequestBodyRoleField role) { + this.role = new EnumWrapper(role); + return this; + } + + public Builder role(EnumWrapper role) { + this.role = role; + return this; + } + + public Builder configurablePermissions(Map configurablePermissions) { + this.configurablePermissions = configurablePermissions; + this.markNullableFieldAsSet("configurable_permissions"); + return this; + } + + public CreateGroupMembershipRequestBody build() { + return new CreateGroupMembershipRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBodyGroupField.java b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBodyGroupField.java new file mode 100644 index 000000000..b5b88129d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBodyGroupField.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.memberships; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateGroupMembershipRequestBodyGroupField extends SerializableObject { + + protected final String id; + + public CreateGroupMembershipRequestBodyGroupField(@JsonProperty("id") String id) { + super(); + this.id = id; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateGroupMembershipRequestBodyGroupField casted = + (CreateGroupMembershipRequestBodyGroupField) o; + return Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + return "CreateGroupMembershipRequestBodyGroupField{" + "id='" + id + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBodyRoleField.java b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBodyRoleField.java new file mode 100644 index 000000000..4e5615643 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBodyRoleField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.memberships; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateGroupMembershipRequestBodyRoleField implements Valuable { + MEMBER("member"), + ADMIN("admin"); + + private final String value; + + CreateGroupMembershipRequestBodyRoleField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateGroupMembershipRequestBodyRoleFieldDeserializer + extends JsonDeserializer> { + + public CreateGroupMembershipRequestBodyRoleFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateGroupMembershipRequestBodyRoleField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateGroupMembershipRequestBodyRoleFieldSerializer + extends JsonSerializer> { + + public CreateGroupMembershipRequestBodyRoleFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBodyUserField.java b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBodyUserField.java new file mode 100644 index 000000000..6a7a39cfe --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBodyUserField.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.memberships; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateGroupMembershipRequestBodyUserField extends SerializableObject { + + protected final String id; + + public CreateGroupMembershipRequestBodyUserField(@JsonProperty("id") String id) { + super(); + this.id = id; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateGroupMembershipRequestBodyUserField casted = + (CreateGroupMembershipRequestBodyUserField) o; + return Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + return "CreateGroupMembershipRequestBodyUserField{" + "id='" + id + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/memberships/DeleteGroupMembershipByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/memberships/DeleteGroupMembershipByIdHeaders.java new file mode 100644 index 000000000..475f93edb --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/memberships/DeleteGroupMembershipByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.memberships; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteGroupMembershipByIdHeaders { + + public Map extraHeaders; + + public DeleteGroupMembershipByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteGroupMembershipByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteGroupMembershipByIdHeaders build() { + return new DeleteGroupMembershipByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipByIdHeaders.java new file mode 100644 index 000000000..bdffa8638 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.memberships; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetGroupMembershipByIdHeaders { + + public Map extraHeaders; + + public GetGroupMembershipByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetGroupMembershipByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetGroupMembershipByIdHeaders build() { + return new GetGroupMembershipByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipByIdQueryParams.java new file mode 100644 index 000000000..6b8260de5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipByIdQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.memberships; + +import java.util.List; + +public class GetGroupMembershipByIdQueryParams { + + public List fields; + + public GetGroupMembershipByIdQueryParams() {} + + protected GetGroupMembershipByIdQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public GetGroupMembershipByIdQueryParams build() { + return new GetGroupMembershipByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipsHeaders.java b/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipsHeaders.java new file mode 100644 index 000000000..b2a98f5c3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.memberships; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetGroupMembershipsHeaders { + + public Map extraHeaders; + + public GetGroupMembershipsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetGroupMembershipsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetGroupMembershipsHeaders build() { + return new GetGroupMembershipsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipsQueryParams.java b/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipsQueryParams.java new file mode 100644 index 000000000..ce513988b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipsQueryParams.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.memberships; + +public class GetGroupMembershipsQueryParams { + + public Long limit; + + public Long offset; + + public GetGroupMembershipsQueryParams() {} + + protected GetGroupMembershipsQueryParams(Builder builder) { + this.limit = builder.limit; + this.offset = builder.offset; + } + + public Long getLimit() { + return limit; + } + + public Long getOffset() { + return offset; + } + + public static class Builder { + + protected Long limit; + + protected Long offset; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public GetGroupMembershipsQueryParams build() { + return new GetGroupMembershipsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/memberships/GetUserMembershipsHeaders.java b/src/main/java/com/box/sdkgen/managers/memberships/GetUserMembershipsHeaders.java new file mode 100644 index 000000000..26f14e0e5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/memberships/GetUserMembershipsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.memberships; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetUserMembershipsHeaders { + + public Map extraHeaders; + + public GetUserMembershipsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetUserMembershipsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetUserMembershipsHeaders build() { + return new GetUserMembershipsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/memberships/GetUserMembershipsQueryParams.java b/src/main/java/com/box/sdkgen/managers/memberships/GetUserMembershipsQueryParams.java new file mode 100644 index 000000000..4a9e5e54e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/memberships/GetUserMembershipsQueryParams.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.memberships; + +public class GetUserMembershipsQueryParams { + + public Long limit; + + public Long offset; + + public GetUserMembershipsQueryParams() {} + + protected GetUserMembershipsQueryParams(Builder builder) { + this.limit = builder.limit; + this.offset = builder.offset; + } + + public Long getLimit() { + return limit; + } + + public Long getOffset() { + return offset; + } + + public static class Builder { + + protected Long limit; + + protected Long offset; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public GetUserMembershipsQueryParams build() { + return new GetUserMembershipsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/memberships/MembershipsManager.java b/src/main/java/com/box/sdkgen/managers/memberships/MembershipsManager.java new file mode 100644 index 000000000..3a0e0283f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/memberships/MembershipsManager.java @@ -0,0 +1,357 @@ +package com.box.sdkgen.managers.memberships; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.groupmembership.GroupMembership; +import com.box.sdkgen.schemas.groupmemberships.GroupMemberships; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class MembershipsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public MembershipsManager() { + this.networkSession = new NetworkSession(); + } + + protected MembershipsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public GroupMemberships getUserMemberships(String userId) { + return getUserMemberships( + userId, new GetUserMembershipsQueryParams(), new GetUserMembershipsHeaders()); + } + + public GroupMemberships getUserMemberships( + String userId, GetUserMembershipsQueryParams queryParams) { + return getUserMemberships(userId, queryParams, new GetUserMembershipsHeaders()); + } + + public GroupMemberships getUserMemberships(String userId, GetUserMembershipsHeaders headers) { + return getUserMemberships(userId, new GetUserMembershipsQueryParams(), headers); + } + + public GroupMemberships getUserMemberships( + String userId, GetUserMembershipsQueryParams queryParams, GetUserMembershipsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf("offset", convertToString(queryParams.getOffset())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/users/", + convertToString(userId), + "/memberships"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), GroupMemberships.class); + } + + public GroupMemberships getGroupMemberships(String groupId) { + return getGroupMemberships( + groupId, new GetGroupMembershipsQueryParams(), new GetGroupMembershipsHeaders()); + } + + public GroupMemberships getGroupMemberships( + String groupId, GetGroupMembershipsQueryParams queryParams) { + return getGroupMemberships(groupId, queryParams, new GetGroupMembershipsHeaders()); + } + + public GroupMemberships getGroupMemberships(String groupId, GetGroupMembershipsHeaders headers) { + return getGroupMemberships(groupId, new GetGroupMembershipsQueryParams(), headers); + } + + public GroupMemberships getGroupMemberships( + String groupId, + GetGroupMembershipsQueryParams queryParams, + GetGroupMembershipsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf("offset", convertToString(queryParams.getOffset())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/groups/", + convertToString(groupId), + "/memberships"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), GroupMemberships.class); + } + + public GroupMembership createGroupMembership(CreateGroupMembershipRequestBody requestBody) { + return createGroupMembership( + requestBody, new CreateGroupMembershipQueryParams(), new CreateGroupMembershipHeaders()); + } + + public GroupMembership createGroupMembership( + CreateGroupMembershipRequestBody requestBody, CreateGroupMembershipQueryParams queryParams) { + return createGroupMembership(requestBody, queryParams, new CreateGroupMembershipHeaders()); + } + + public GroupMembership createGroupMembership( + CreateGroupMembershipRequestBody requestBody, CreateGroupMembershipHeaders headers) { + return createGroupMembership(requestBody, new CreateGroupMembershipQueryParams(), headers); + } + + public GroupMembership createGroupMembership( + CreateGroupMembershipRequestBody requestBody, + CreateGroupMembershipQueryParams queryParams, + CreateGroupMembershipHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/group_memberships"), + "POST") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), GroupMembership.class); + } + + public GroupMembership getGroupMembershipById(String groupMembershipId) { + return getGroupMembershipById( + groupMembershipId, + new GetGroupMembershipByIdQueryParams(), + new GetGroupMembershipByIdHeaders()); + } + + public GroupMembership getGroupMembershipById( + String groupMembershipId, GetGroupMembershipByIdQueryParams queryParams) { + return getGroupMembershipById( + groupMembershipId, queryParams, new GetGroupMembershipByIdHeaders()); + } + + public GroupMembership getGroupMembershipById( + String groupMembershipId, GetGroupMembershipByIdHeaders headers) { + return getGroupMembershipById( + groupMembershipId, new GetGroupMembershipByIdQueryParams(), headers); + } + + public GroupMembership getGroupMembershipById( + String groupMembershipId, + GetGroupMembershipByIdQueryParams queryParams, + GetGroupMembershipByIdHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/group_memberships/", + convertToString(groupMembershipId)), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), GroupMembership.class); + } + + public GroupMembership updateGroupMembershipById(String groupMembershipId) { + return updateGroupMembershipById( + groupMembershipId, + new UpdateGroupMembershipByIdRequestBody(), + new UpdateGroupMembershipByIdQueryParams(), + new UpdateGroupMembershipByIdHeaders()); + } + + public GroupMembership updateGroupMembershipById( + String groupMembershipId, UpdateGroupMembershipByIdRequestBody requestBody) { + return updateGroupMembershipById( + groupMembershipId, + requestBody, + new UpdateGroupMembershipByIdQueryParams(), + new UpdateGroupMembershipByIdHeaders()); + } + + public GroupMembership updateGroupMembershipById( + String groupMembershipId, UpdateGroupMembershipByIdQueryParams queryParams) { + return updateGroupMembershipById( + groupMembershipId, + new UpdateGroupMembershipByIdRequestBody(), + queryParams, + new UpdateGroupMembershipByIdHeaders()); + } + + public GroupMembership updateGroupMembershipById( + String groupMembershipId, + UpdateGroupMembershipByIdRequestBody requestBody, + UpdateGroupMembershipByIdQueryParams queryParams) { + return updateGroupMembershipById( + groupMembershipId, requestBody, queryParams, new UpdateGroupMembershipByIdHeaders()); + } + + public GroupMembership updateGroupMembershipById( + String groupMembershipId, UpdateGroupMembershipByIdHeaders headers) { + return updateGroupMembershipById( + groupMembershipId, + new UpdateGroupMembershipByIdRequestBody(), + new UpdateGroupMembershipByIdQueryParams(), + headers); + } + + public GroupMembership updateGroupMembershipById( + String groupMembershipId, + UpdateGroupMembershipByIdRequestBody requestBody, + UpdateGroupMembershipByIdHeaders headers) { + return updateGroupMembershipById( + groupMembershipId, requestBody, new UpdateGroupMembershipByIdQueryParams(), headers); + } + + public GroupMembership updateGroupMembershipById( + String groupMembershipId, + UpdateGroupMembershipByIdQueryParams queryParams, + UpdateGroupMembershipByIdHeaders headers) { + return updateGroupMembershipById( + groupMembershipId, new UpdateGroupMembershipByIdRequestBody(), queryParams, headers); + } + + public GroupMembership updateGroupMembershipById( + String groupMembershipId, + UpdateGroupMembershipByIdRequestBody requestBody, + UpdateGroupMembershipByIdQueryParams queryParams, + UpdateGroupMembershipByIdHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/group_memberships/", + convertToString(groupMembershipId)), + "PUT") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), GroupMembership.class); + } + + public void deleteGroupMembershipById(String groupMembershipId) { + deleteGroupMembershipById(groupMembershipId, new DeleteGroupMembershipByIdHeaders()); + } + + public void deleteGroupMembershipById( + String groupMembershipId, DeleteGroupMembershipByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/group_memberships/", + convertToString(groupMembershipId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public MembershipsManager build() { + return new MembershipsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdHeaders.java new file mode 100644 index 000000000..5b1783cdd --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.memberships; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateGroupMembershipByIdHeaders { + + public Map extraHeaders; + + public UpdateGroupMembershipByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateGroupMembershipByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateGroupMembershipByIdHeaders build() { + return new UpdateGroupMembershipByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdQueryParams.java new file mode 100644 index 000000000..879db73a9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.memberships; + +import java.util.List; + +public class UpdateGroupMembershipByIdQueryParams { + + public List fields; + + public UpdateGroupMembershipByIdQueryParams() {} + + protected UpdateGroupMembershipByIdQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public UpdateGroupMembershipByIdQueryParams build() { + return new UpdateGroupMembershipByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdRequestBody.java new file mode 100644 index 000000000..cc362b175 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdRequestBody.java @@ -0,0 +1,107 @@ +package com.box.sdkgen.managers.memberships; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Map; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateGroupMembershipByIdRequestBody extends SerializableObject { + + @JsonDeserialize( + using = + UpdateGroupMembershipByIdRequestBodyRoleField + .UpdateGroupMembershipByIdRequestBodyRoleFieldDeserializer.class) + @JsonSerialize( + using = + UpdateGroupMembershipByIdRequestBodyRoleField + .UpdateGroupMembershipByIdRequestBodyRoleFieldSerializer.class) + protected EnumWrapper role; + + @JsonProperty("configurable_permissions") + @Nullable + protected Map configurablePermissions; + + public UpdateGroupMembershipByIdRequestBody() { + super(); + } + + protected UpdateGroupMembershipByIdRequestBody(Builder builder) { + super(); + this.role = builder.role; + this.configurablePermissions = builder.configurablePermissions; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getRole() { + return role; + } + + public Map getConfigurablePermissions() { + return configurablePermissions; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateGroupMembershipByIdRequestBody casted = (UpdateGroupMembershipByIdRequestBody) o; + return Objects.equals(role, casted.role) + && Objects.equals(configurablePermissions, casted.configurablePermissions); + } + + @Override + public int hashCode() { + return Objects.hash(role, configurablePermissions); + } + + @Override + public String toString() { + return "UpdateGroupMembershipByIdRequestBody{" + + "role='" + + role + + '\'' + + ", " + + "configurablePermissions='" + + configurablePermissions + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper role; + + protected Map configurablePermissions; + + public Builder role(UpdateGroupMembershipByIdRequestBodyRoleField role) { + this.role = new EnumWrapper(role); + return this; + } + + public Builder role(EnumWrapper role) { + this.role = role; + return this; + } + + public Builder configurablePermissions(Map configurablePermissions) { + this.configurablePermissions = configurablePermissions; + this.markNullableFieldAsSet("configurable_permissions"); + return this; + } + + public UpdateGroupMembershipByIdRequestBody build() { + return new UpdateGroupMembershipByIdRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdRequestBodyRoleField.java b/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdRequestBodyRoleField.java new file mode 100644 index 000000000..603d3a8e4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdRequestBodyRoleField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.memberships; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateGroupMembershipByIdRequestBodyRoleField implements Valuable { + MEMBER("member"), + ADMIN("admin"); + + private final String value; + + UpdateGroupMembershipByIdRequestBodyRoleField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateGroupMembershipByIdRequestBodyRoleFieldDeserializer + extends JsonDeserializer> { + + public UpdateGroupMembershipByIdRequestBodyRoleFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateGroupMembershipByIdRequestBodyRoleField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateGroupMembershipByIdRequestBodyRoleFieldSerializer + extends JsonSerializer> { + + public UpdateGroupMembershipByIdRequestBodyRoleFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyHeaders.java new file mode 100644 index 000000000..fe13f37d7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.metadatacascadepolicies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class ApplyMetadataCascadePolicyHeaders { + + public Map extraHeaders; + + public ApplyMetadataCascadePolicyHeaders() { + this.extraHeaders = mapOf(); + } + + protected ApplyMetadataCascadePolicyHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public ApplyMetadataCascadePolicyHeaders build() { + return new ApplyMetadataCascadePolicyHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyRequestBody.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyRequestBody.java new file mode 100644 index 000000000..1f6602e4c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyRequestBody.java @@ -0,0 +1,72 @@ +package com.box.sdkgen.managers.metadatacascadepolicies; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ApplyMetadataCascadePolicyRequestBody extends SerializableObject { + + @JsonDeserialize( + using = + ApplyMetadataCascadePolicyRequestBodyConflictResolutionField + .ApplyMetadataCascadePolicyRequestBodyConflictResolutionFieldDeserializer.class) + @JsonSerialize( + using = + ApplyMetadataCascadePolicyRequestBodyConflictResolutionField + .ApplyMetadataCascadePolicyRequestBodyConflictResolutionFieldSerializer.class) + @JsonProperty("conflict_resolution") + protected final EnumWrapper + conflictResolution; + + public ApplyMetadataCascadePolicyRequestBody( + ApplyMetadataCascadePolicyRequestBodyConflictResolutionField conflictResolution) { + super(); + this.conflictResolution = + new EnumWrapper( + conflictResolution); + } + + public ApplyMetadataCascadePolicyRequestBody( + @JsonProperty("conflict_resolution") + EnumWrapper + conflictResolution) { + super(); + this.conflictResolution = conflictResolution; + } + + public EnumWrapper + getConflictResolution() { + return conflictResolution; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ApplyMetadataCascadePolicyRequestBody casted = (ApplyMetadataCascadePolicyRequestBody) o; + return Objects.equals(conflictResolution, casted.conflictResolution); + } + + @Override + public int hashCode() { + return Objects.hash(conflictResolution); + } + + @Override + public String toString() { + return "ApplyMetadataCascadePolicyRequestBody{" + + "conflictResolution='" + + conflictResolution + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyRequestBodyConflictResolutionField.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyRequestBodyConflictResolutionField.java new file mode 100644 index 000000000..30073c4c4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyRequestBodyConflictResolutionField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.managers.metadatacascadepolicies; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ApplyMetadataCascadePolicyRequestBodyConflictResolutionField implements Valuable { + NONE("none"), + OVERWRITE("overwrite"); + + private final String value; + + ApplyMetadataCascadePolicyRequestBodyConflictResolutionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ApplyMetadataCascadePolicyRequestBodyConflictResolutionFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public ApplyMetadataCascadePolicyRequestBodyConflictResolutionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ApplyMetadataCascadePolicyRequestBodyConflictResolutionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper(value)); + } + } + + public static class ApplyMetadataCascadePolicyRequestBodyConflictResolutionFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public ApplyMetadataCascadePolicyRequestBodyConflictResolutionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyHeaders.java new file mode 100644 index 000000000..c9c8815fb --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.metadatacascadepolicies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateMetadataCascadePolicyHeaders { + + public Map extraHeaders; + + public CreateMetadataCascadePolicyHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateMetadataCascadePolicyHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateMetadataCascadePolicyHeaders build() { + return new CreateMetadataCascadePolicyHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyRequestBody.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyRequestBody.java new file mode 100644 index 000000000..b05c4ccd7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyRequestBody.java @@ -0,0 +1,94 @@ +package com.box.sdkgen.managers.metadatacascadepolicies; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateMetadataCascadePolicyRequestBody extends SerializableObject { + + @JsonProperty("folder_id") + protected final String folderId; + + @JsonDeserialize( + using = + CreateMetadataCascadePolicyRequestBodyScopeField + .CreateMetadataCascadePolicyRequestBodyScopeFieldDeserializer.class) + @JsonSerialize( + using = + CreateMetadataCascadePolicyRequestBodyScopeField + .CreateMetadataCascadePolicyRequestBodyScopeFieldSerializer.class) + protected final EnumWrapper scope; + + protected final String templateKey; + + public CreateMetadataCascadePolicyRequestBody( + String folderId, CreateMetadataCascadePolicyRequestBodyScopeField scope, String templateKey) { + super(); + this.folderId = folderId; + this.scope = new EnumWrapper(scope); + this.templateKey = templateKey; + } + + public CreateMetadataCascadePolicyRequestBody( + @JsonProperty("folder_id") String folderId, + @JsonProperty("scope") EnumWrapper scope, + @JsonProperty("templateKey") String templateKey) { + super(); + this.folderId = folderId; + this.scope = scope; + this.templateKey = templateKey; + } + + public String getFolderId() { + return folderId; + } + + public EnumWrapper getScope() { + return scope; + } + + public String getTemplateKey() { + return templateKey; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateMetadataCascadePolicyRequestBody casted = (CreateMetadataCascadePolicyRequestBody) o; + return Objects.equals(folderId, casted.folderId) + && Objects.equals(scope, casted.scope) + && Objects.equals(templateKey, casted.templateKey); + } + + @Override + public int hashCode() { + return Objects.hash(folderId, scope, templateKey); + } + + @Override + public String toString() { + return "CreateMetadataCascadePolicyRequestBody{" + + "folderId='" + + folderId + + '\'' + + ", " + + "scope='" + + scope + + '\'' + + ", " + + "templateKey='" + + templateKey + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyRequestBodyScopeField.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyRequestBodyScopeField.java new file mode 100644 index 000000000..d409f05d7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyRequestBodyScopeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.metadatacascadepolicies; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateMetadataCascadePolicyRequestBodyScopeField implements Valuable { + GLOBAL("global"), + ENTERPRISE("enterprise"); + + private final String value; + + CreateMetadataCascadePolicyRequestBodyScopeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateMetadataCascadePolicyRequestBodyScopeFieldDeserializer + extends JsonDeserializer> { + + public CreateMetadataCascadePolicyRequestBodyScopeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateMetadataCascadePolicyRequestBodyScopeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateMetadataCascadePolicyRequestBodyScopeFieldSerializer + extends JsonSerializer> { + + public CreateMetadataCascadePolicyRequestBodyScopeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/DeleteMetadataCascadePolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/DeleteMetadataCascadePolicyByIdHeaders.java new file mode 100644 index 000000000..540a5e753 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/DeleteMetadataCascadePolicyByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.metadatacascadepolicies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteMetadataCascadePolicyByIdHeaders { + + public Map extraHeaders; + + public DeleteMetadataCascadePolicyByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteMetadataCascadePolicyByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteMetadataCascadePolicyByIdHeaders build() { + return new DeleteMetadataCascadePolicyByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePoliciesHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePoliciesHeaders.java new file mode 100644 index 000000000..ac3248165 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePoliciesHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.metadatacascadepolicies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetMetadataCascadePoliciesHeaders { + + public Map extraHeaders; + + public GetMetadataCascadePoliciesHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetMetadataCascadePoliciesHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetMetadataCascadePoliciesHeaders build() { + return new GetMetadataCascadePoliciesHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePoliciesQueryParams.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePoliciesQueryParams.java new file mode 100644 index 000000000..3f01b83f1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePoliciesQueryParams.java @@ -0,0 +1,73 @@ +package com.box.sdkgen.managers.metadatacascadepolicies; + +public class GetMetadataCascadePoliciesQueryParams { + + public final String folderId; + + public String ownerEnterpriseId; + + public String marker; + + public Long offset; + + public GetMetadataCascadePoliciesQueryParams(String folderId) { + this.folderId = folderId; + } + + protected GetMetadataCascadePoliciesQueryParams(Builder builder) { + this.folderId = builder.folderId; + this.ownerEnterpriseId = builder.ownerEnterpriseId; + this.marker = builder.marker; + this.offset = builder.offset; + } + + public String getFolderId() { + return folderId; + } + + public String getOwnerEnterpriseId() { + return ownerEnterpriseId; + } + + public String getMarker() { + return marker; + } + + public Long getOffset() { + return offset; + } + + public static class Builder { + + protected final String folderId; + + protected String ownerEnterpriseId; + + protected String marker; + + protected Long offset; + + public Builder(String folderId) { + this.folderId = folderId; + } + + public Builder ownerEnterpriseId(String ownerEnterpriseId) { + this.ownerEnterpriseId = ownerEnterpriseId; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public GetMetadataCascadePoliciesQueryParams build() { + return new GetMetadataCascadePoliciesQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePolicyByIdHeaders.java new file mode 100644 index 000000000..7d99dd986 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePolicyByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.metadatacascadepolicies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetMetadataCascadePolicyByIdHeaders { + + public Map extraHeaders; + + public GetMetadataCascadePolicyByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetMetadataCascadePolicyByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetMetadataCascadePolicyByIdHeaders build() { + return new GetMetadataCascadePolicyByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/MetadataCascadePoliciesManager.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/MetadataCascadePoliciesManager.java new file mode 100644 index 000000000..a64b28a33 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/MetadataCascadePoliciesManager.java @@ -0,0 +1,215 @@ +package com.box.sdkgen.managers.metadatacascadepolicies; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.metadatacascadepolicies.MetadataCascadePolicies; +import com.box.sdkgen.schemas.metadatacascadepolicy.MetadataCascadePolicy; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class MetadataCascadePoliciesManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public MetadataCascadePoliciesManager() { + this.networkSession = new NetworkSession(); + } + + protected MetadataCascadePoliciesManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public MetadataCascadePolicies getMetadataCascadePolicies( + GetMetadataCascadePoliciesQueryParams queryParams) { + return getMetadataCascadePolicies(queryParams, new GetMetadataCascadePoliciesHeaders()); + } + + public MetadataCascadePolicies getMetadataCascadePolicies( + GetMetadataCascadePoliciesQueryParams queryParams, + GetMetadataCascadePoliciesHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("folder_id", convertToString(queryParams.getFolderId())), + entryOf("owner_enterprise_id", convertToString(queryParams.getOwnerEnterpriseId())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("offset", convertToString(queryParams.getOffset())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_cascade_policies"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataCascadePolicies.class); + } + + public MetadataCascadePolicy createMetadataCascadePolicy( + CreateMetadataCascadePolicyRequestBody requestBody) { + return createMetadataCascadePolicy(requestBody, new CreateMetadataCascadePolicyHeaders()); + } + + public MetadataCascadePolicy createMetadataCascadePolicy( + CreateMetadataCascadePolicyRequestBody requestBody, + CreateMetadataCascadePolicyHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_cascade_policies"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataCascadePolicy.class); + } + + public MetadataCascadePolicy getMetadataCascadePolicyById(String metadataCascadePolicyId) { + return getMetadataCascadePolicyById( + metadataCascadePolicyId, new GetMetadataCascadePolicyByIdHeaders()); + } + + public MetadataCascadePolicy getMetadataCascadePolicyById( + String metadataCascadePolicyId, GetMetadataCascadePolicyByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_cascade_policies/", + convertToString(metadataCascadePolicyId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataCascadePolicy.class); + } + + public void deleteMetadataCascadePolicyById(String metadataCascadePolicyId) { + deleteMetadataCascadePolicyById( + metadataCascadePolicyId, new DeleteMetadataCascadePolicyByIdHeaders()); + } + + public void deleteMetadataCascadePolicyById( + String metadataCascadePolicyId, DeleteMetadataCascadePolicyByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_cascade_policies/", + convertToString(metadataCascadePolicyId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public void applyMetadataCascadePolicy( + String metadataCascadePolicyId, ApplyMetadataCascadePolicyRequestBody requestBody) { + applyMetadataCascadePolicy( + metadataCascadePolicyId, requestBody, new ApplyMetadataCascadePolicyHeaders()); + } + + public void applyMetadataCascadePolicy( + String metadataCascadePolicyId, + ApplyMetadataCascadePolicyRequestBody requestBody, + ApplyMetadataCascadePolicyHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_cascade_policies/", + convertToString(metadataCascadePolicyId), + "/apply"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public MetadataCascadePoliciesManager build() { + return new MetadataCascadePoliciesManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateHeaders.java new file mode 100644 index 000000000..617f0e9c3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.metadatatemplates; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateMetadataTemplateHeaders { + + public Map extraHeaders; + + public CreateMetadataTemplateHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateMetadataTemplateHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateMetadataTemplateHeaders build() { + return new CreateMetadataTemplateHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBody.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBody.java new file mode 100644 index 000000000..727fe9c51 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBody.java @@ -0,0 +1,162 @@ +package com.box.sdkgen.managers.metadatatemplates; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateMetadataTemplateRequestBody extends SerializableObject { + + protected final String scope; + + protected String templateKey; + + protected final String displayName; + + protected Boolean hidden; + + protected List fields; + + protected Boolean copyInstanceOnItemCopy; + + public CreateMetadataTemplateRequestBody( + @JsonProperty("scope") String scope, @JsonProperty("displayName") String displayName) { + super(); + this.scope = scope; + this.displayName = displayName; + } + + protected CreateMetadataTemplateRequestBody(Builder builder) { + super(); + this.scope = builder.scope; + this.templateKey = builder.templateKey; + this.displayName = builder.displayName; + this.hidden = builder.hidden; + this.fields = builder.fields; + this.copyInstanceOnItemCopy = builder.copyInstanceOnItemCopy; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getScope() { + return scope; + } + + public String getTemplateKey() { + return templateKey; + } + + public String getDisplayName() { + return displayName; + } + + public Boolean getHidden() { + return hidden; + } + + public List getFields() { + return fields; + } + + public Boolean getCopyInstanceOnItemCopy() { + return copyInstanceOnItemCopy; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateMetadataTemplateRequestBody casted = (CreateMetadataTemplateRequestBody) o; + return Objects.equals(scope, casted.scope) + && Objects.equals(templateKey, casted.templateKey) + && Objects.equals(displayName, casted.displayName) + && Objects.equals(hidden, casted.hidden) + && Objects.equals(fields, casted.fields) + && Objects.equals(copyInstanceOnItemCopy, casted.copyInstanceOnItemCopy); + } + + @Override + public int hashCode() { + return Objects.hash(scope, templateKey, displayName, hidden, fields, copyInstanceOnItemCopy); + } + + @Override + public String toString() { + return "CreateMetadataTemplateRequestBody{" + + "scope='" + + scope + + '\'' + + ", " + + "templateKey='" + + templateKey + + '\'' + + ", " + + "displayName='" + + displayName + + '\'' + + ", " + + "hidden='" + + hidden + + '\'' + + ", " + + "fields='" + + fields + + '\'' + + ", " + + "copyInstanceOnItemCopy='" + + copyInstanceOnItemCopy + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String scope; + + protected String templateKey; + + protected final String displayName; + + protected Boolean hidden; + + protected List fields; + + protected Boolean copyInstanceOnItemCopy; + + public Builder(String scope, String displayName) { + super(); + this.scope = scope; + this.displayName = displayName; + } + + public Builder templateKey(String templateKey) { + this.templateKey = templateKey; + return this; + } + + public Builder hidden(Boolean hidden) { + this.hidden = hidden; + return this; + } + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder copyInstanceOnItemCopy(Boolean copyInstanceOnItemCopy) { + this.copyInstanceOnItemCopy = copyInstanceOnItemCopy; + return this; + } + + public CreateMetadataTemplateRequestBody build() { + return new CreateMetadataTemplateRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsField.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsField.java new file mode 100644 index 000000000..670052637 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsField.java @@ -0,0 +1,192 @@ +package com.box.sdkgen.managers.metadatatemplates; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateMetadataTemplateRequestBodyFieldsField extends SerializableObject { + + @JsonDeserialize( + using = + CreateMetadataTemplateRequestBodyFieldsTypeField + .CreateMetadataTemplateRequestBodyFieldsTypeFieldDeserializer.class) + @JsonSerialize( + using = + CreateMetadataTemplateRequestBodyFieldsTypeField + .CreateMetadataTemplateRequestBodyFieldsTypeFieldSerializer.class) + protected final EnumWrapper type; + + protected final String key; + + protected final String displayName; + + protected String description; + + protected Boolean hidden; + + protected List options; + + public CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField type, String key, String displayName) { + super(); + this.type = new EnumWrapper(type); + this.key = key; + this.displayName = displayName; + } + + public CreateMetadataTemplateRequestBodyFieldsField( + @JsonProperty("type") EnumWrapper type, + @JsonProperty("key") String key, + @JsonProperty("displayName") String displayName) { + super(); + this.type = type; + this.key = key; + this.displayName = displayName; + } + + protected CreateMetadataTemplateRequestBodyFieldsField(Builder builder) { + super(); + this.type = builder.type; + this.key = builder.key; + this.displayName = builder.displayName; + this.description = builder.description; + this.hidden = builder.hidden; + this.options = builder.options; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getKey() { + return key; + } + + public String getDisplayName() { + return displayName; + } + + public String getDescription() { + return description; + } + + public Boolean getHidden() { + return hidden; + } + + public List getOptions() { + return options; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateMetadataTemplateRequestBodyFieldsField casted = + (CreateMetadataTemplateRequestBodyFieldsField) o; + return Objects.equals(type, casted.type) + && Objects.equals(key, casted.key) + && Objects.equals(displayName, casted.displayName) + && Objects.equals(description, casted.description) + && Objects.equals(hidden, casted.hidden) + && Objects.equals(options, casted.options); + } + + @Override + public int hashCode() { + return Objects.hash(type, key, displayName, description, hidden, options); + } + + @Override + public String toString() { + return "CreateMetadataTemplateRequestBodyFieldsField{" + + "type='" + + type + + '\'' + + ", " + + "key='" + + key + + '\'' + + ", " + + "displayName='" + + displayName + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "hidden='" + + hidden + + '\'' + + ", " + + "options='" + + options + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final EnumWrapper type; + + protected final String key; + + protected final String displayName; + + protected String description; + + protected Boolean hidden; + + protected List options; + + public Builder( + CreateMetadataTemplateRequestBodyFieldsTypeField type, String key, String displayName) { + super(); + this.type = new EnumWrapper(type); + this.key = key; + this.displayName = displayName; + } + + public Builder( + EnumWrapper type, + String key, + String displayName) { + super(); + this.type = type; + this.key = key; + this.displayName = displayName; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder hidden(Boolean hidden) { + this.hidden = hidden; + return this; + } + + public Builder options(List options) { + this.options = options; + return this; + } + + public CreateMetadataTemplateRequestBodyFieldsField build() { + return new CreateMetadataTemplateRequestBodyFieldsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsOptionsField.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsOptionsField.java new file mode 100644 index 000000000..cd2f06768 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsOptionsField.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.metadatatemplates; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateMetadataTemplateRequestBodyFieldsOptionsField extends SerializableObject { + + protected final String key; + + public CreateMetadataTemplateRequestBodyFieldsOptionsField(@JsonProperty("key") String key) { + super(); + this.key = key; + } + + public String getKey() { + return key; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateMetadataTemplateRequestBodyFieldsOptionsField casted = + (CreateMetadataTemplateRequestBodyFieldsOptionsField) o; + return Objects.equals(key, casted.key); + } + + @Override + public int hashCode() { + return Objects.hash(key); + } + + @Override + public String toString() { + return "CreateMetadataTemplateRequestBodyFieldsOptionsField{" + "key='" + key + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsTypeField.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsTypeField.java new file mode 100644 index 000000000..b4d3bc111 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsTypeField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.managers.metadatatemplates; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateMetadataTemplateRequestBodyFieldsTypeField implements Valuable { + STRING("string"), + FLOAT("float"), + DATE("date"), + ENUM("enum"), + MULTISELECT("multiSelect"); + + private final String value; + + CreateMetadataTemplateRequestBodyFieldsTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateMetadataTemplateRequestBodyFieldsTypeFieldDeserializer + extends JsonDeserializer> { + + public CreateMetadataTemplateRequestBodyFieldsTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateMetadataTemplateRequestBodyFieldsTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateMetadataTemplateRequestBodyFieldsTypeFieldSerializer + extends JsonSerializer> { + + public CreateMetadataTemplateRequestBodyFieldsTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/DeleteMetadataTemplateHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/DeleteMetadataTemplateHeaders.java new file mode 100644 index 000000000..04308afba --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/DeleteMetadataTemplateHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.metadatatemplates; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteMetadataTemplateHeaders { + + public Map extraHeaders; + + public DeleteMetadataTemplateHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteMetadataTemplateHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteMetadataTemplateHeaders build() { + return new DeleteMetadataTemplateHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/DeleteMetadataTemplateScope.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/DeleteMetadataTemplateScope.java new file mode 100644 index 000000000..3b22fb22a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/DeleteMetadataTemplateScope.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.metadatatemplates; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum DeleteMetadataTemplateScope implements Valuable { + GLOBAL("global"), + ENTERPRISE("enterprise"); + + private final String value; + + DeleteMetadataTemplateScope(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class DeleteMetadataTemplateScopeDeserializer + extends JsonDeserializer> { + + public DeleteMetadataTemplateScopeDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(DeleteMetadataTemplateScope.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class DeleteMetadataTemplateScopeSerializer + extends JsonSerializer> { + + public DeleteMetadataTemplateScopeSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetEnterpriseMetadataTemplatesHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetEnterpriseMetadataTemplatesHeaders.java new file mode 100644 index 000000000..aa67b35e8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetEnterpriseMetadataTemplatesHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.metadatatemplates; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetEnterpriseMetadataTemplatesHeaders { + + public Map extraHeaders; + + public GetEnterpriseMetadataTemplatesHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetEnterpriseMetadataTemplatesHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetEnterpriseMetadataTemplatesHeaders build() { + return new GetEnterpriseMetadataTemplatesHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetEnterpriseMetadataTemplatesQueryParams.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetEnterpriseMetadataTemplatesQueryParams.java new file mode 100644 index 000000000..ec8c23721 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetEnterpriseMetadataTemplatesQueryParams.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.metadatatemplates; + +public class GetEnterpriseMetadataTemplatesQueryParams { + + public String marker; + + public Long limit; + + public GetEnterpriseMetadataTemplatesQueryParams() {} + + protected GetEnterpriseMetadataTemplatesQueryParams(Builder builder) { + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected String marker; + + protected Long limit; + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetEnterpriseMetadataTemplatesQueryParams build() { + return new GetEnterpriseMetadataTemplatesQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetGlobalMetadataTemplatesHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetGlobalMetadataTemplatesHeaders.java new file mode 100644 index 000000000..e662672a6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetGlobalMetadataTemplatesHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.metadatatemplates; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetGlobalMetadataTemplatesHeaders { + + public Map extraHeaders; + + public GetGlobalMetadataTemplatesHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetGlobalMetadataTemplatesHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetGlobalMetadataTemplatesHeaders build() { + return new GetGlobalMetadataTemplatesHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetGlobalMetadataTemplatesQueryParams.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetGlobalMetadataTemplatesQueryParams.java new file mode 100644 index 000000000..477484c66 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetGlobalMetadataTemplatesQueryParams.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.metadatatemplates; + +public class GetGlobalMetadataTemplatesQueryParams { + + public String marker; + + public Long limit; + + public GetGlobalMetadataTemplatesQueryParams() {} + + protected GetGlobalMetadataTemplatesQueryParams(Builder builder) { + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected String marker; + + protected Long limit; + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetGlobalMetadataTemplatesQueryParams build() { + return new GetGlobalMetadataTemplatesQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateByIdHeaders.java new file mode 100644 index 000000000..d22223d88 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.metadatatemplates; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetMetadataTemplateByIdHeaders { + + public Map extraHeaders; + + public GetMetadataTemplateByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetMetadataTemplateByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetMetadataTemplateByIdHeaders build() { + return new GetMetadataTemplateByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateHeaders.java new file mode 100644 index 000000000..b3705f97f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.metadatatemplates; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetMetadataTemplateHeaders { + + public Map extraHeaders; + + public GetMetadataTemplateHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetMetadataTemplateHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetMetadataTemplateHeaders build() { + return new GetMetadataTemplateHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateScope.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateScope.java new file mode 100644 index 000000000..08a24db1e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateScope.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.metadatatemplates; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetMetadataTemplateScope implements Valuable { + GLOBAL("global"), + ENTERPRISE("enterprise"); + + private final String value; + + GetMetadataTemplateScope(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetMetadataTemplateScopeDeserializer + extends JsonDeserializer> { + + public GetMetadataTemplateScopeDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetMetadataTemplateScope.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetMetadataTemplateScopeSerializer + extends JsonSerializer> { + + public GetMetadataTemplateScopeSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplatesByInstanceIdHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplatesByInstanceIdHeaders.java new file mode 100644 index 000000000..0710a0811 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplatesByInstanceIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.metadatatemplates; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetMetadataTemplatesByInstanceIdHeaders { + + public Map extraHeaders; + + public GetMetadataTemplatesByInstanceIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetMetadataTemplatesByInstanceIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetMetadataTemplatesByInstanceIdHeaders build() { + return new GetMetadataTemplatesByInstanceIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplatesByInstanceIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplatesByInstanceIdQueryParams.java new file mode 100644 index 000000000..7afd7258a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplatesByInstanceIdQueryParams.java @@ -0,0 +1,59 @@ +package com.box.sdkgen.managers.metadatatemplates; + +public class GetMetadataTemplatesByInstanceIdQueryParams { + + public final String metadataInstanceId; + + public String marker; + + public Long limit; + + public GetMetadataTemplatesByInstanceIdQueryParams(String metadataInstanceId) { + this.metadataInstanceId = metadataInstanceId; + } + + protected GetMetadataTemplatesByInstanceIdQueryParams(Builder builder) { + this.metadataInstanceId = builder.metadataInstanceId; + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getMetadataInstanceId() { + return metadataInstanceId; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected final String metadataInstanceId; + + protected String marker; + + protected Long limit; + + public Builder(String metadataInstanceId) { + this.metadataInstanceId = metadataInstanceId; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetMetadataTemplatesByInstanceIdQueryParams build() { + return new GetMetadataTemplatesByInstanceIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/MetadataTemplatesManager.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/MetadataTemplatesManager.java new file mode 100644 index 000000000..0c6cb5113 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/MetadataTemplatesManager.java @@ -0,0 +1,339 @@ +package com.box.sdkgen.managers.metadatatemplates; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.metadatatemplate.MetadataTemplate; +import com.box.sdkgen.schemas.metadatatemplates.MetadataTemplates; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.List; +import java.util.Map; + +public class MetadataTemplatesManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public MetadataTemplatesManager() { + this.networkSession = new NetworkSession(); + } + + protected MetadataTemplatesManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public MetadataTemplates getMetadataTemplatesByInstanceId( + GetMetadataTemplatesByInstanceIdQueryParams queryParams) { + return getMetadataTemplatesByInstanceId( + queryParams, new GetMetadataTemplatesByInstanceIdHeaders()); + } + + public MetadataTemplates getMetadataTemplatesByInstanceId( + GetMetadataTemplatesByInstanceIdQueryParams queryParams, + GetMetadataTemplatesByInstanceIdHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf( + "metadata_instance_id", convertToString(queryParams.getMetadataInstanceId())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_templates"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTemplates.class); + } + + public MetadataTemplate getMetadataTemplate(GetMetadataTemplateScope scope, String templateKey) { + return getMetadataTemplate(scope, templateKey, new GetMetadataTemplateHeaders()); + } + + public MetadataTemplate getMetadataTemplate( + GetMetadataTemplateScope scope, String templateKey, GetMetadataTemplateHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_templates/", + convertToString(scope), + "/", + convertToString(templateKey), + "/schema"), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTemplate.class); + } + + public MetadataTemplate updateMetadataTemplate( + UpdateMetadataTemplateScope scope, + String templateKey, + List requestBody) { + return updateMetadataTemplate( + scope, templateKey, requestBody, new UpdateMetadataTemplateHeaders()); + } + + public MetadataTemplate updateMetadataTemplate( + UpdateMetadataTemplateScope scope, + String templateKey, + List requestBody, + UpdateMetadataTemplateHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_templates/", + convertToString(scope), + "/", + convertToString(templateKey), + "/schema"), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json-patch+json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTemplate.class); + } + + public void deleteMetadataTemplate(DeleteMetadataTemplateScope scope, String templateKey) { + deleteMetadataTemplate(scope, templateKey, new DeleteMetadataTemplateHeaders()); + } + + public void deleteMetadataTemplate( + DeleteMetadataTemplateScope scope, + String templateKey, + DeleteMetadataTemplateHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_templates/", + convertToString(scope), + "/", + convertToString(templateKey), + "/schema"), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public MetadataTemplate getMetadataTemplateById(String templateId) { + return getMetadataTemplateById(templateId, new GetMetadataTemplateByIdHeaders()); + } + + public MetadataTemplate getMetadataTemplateById( + String templateId, GetMetadataTemplateByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_templates/", + convertToString(templateId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTemplate.class); + } + + public MetadataTemplates getGlobalMetadataTemplates() { + return getGlobalMetadataTemplates( + new GetGlobalMetadataTemplatesQueryParams(), new GetGlobalMetadataTemplatesHeaders()); + } + + public MetadataTemplates getGlobalMetadataTemplates( + GetGlobalMetadataTemplatesQueryParams queryParams) { + return getGlobalMetadataTemplates(queryParams, new GetGlobalMetadataTemplatesHeaders()); + } + + public MetadataTemplates getGlobalMetadataTemplates(GetGlobalMetadataTemplatesHeaders headers) { + return getGlobalMetadataTemplates(new GetGlobalMetadataTemplatesQueryParams(), headers); + } + + public MetadataTemplates getGlobalMetadataTemplates( + GetGlobalMetadataTemplatesQueryParams queryParams, + GetGlobalMetadataTemplatesHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_templates/global"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTemplates.class); + } + + public MetadataTemplates getEnterpriseMetadataTemplates() { + return getEnterpriseMetadataTemplates( + new GetEnterpriseMetadataTemplatesQueryParams(), + new GetEnterpriseMetadataTemplatesHeaders()); + } + + public MetadataTemplates getEnterpriseMetadataTemplates( + GetEnterpriseMetadataTemplatesQueryParams queryParams) { + return getEnterpriseMetadataTemplates(queryParams, new GetEnterpriseMetadataTemplatesHeaders()); + } + + public MetadataTemplates getEnterpriseMetadataTemplates( + GetEnterpriseMetadataTemplatesHeaders headers) { + return getEnterpriseMetadataTemplates(new GetEnterpriseMetadataTemplatesQueryParams(), headers); + } + + public MetadataTemplates getEnterpriseMetadataTemplates( + GetEnterpriseMetadataTemplatesQueryParams queryParams, + GetEnterpriseMetadataTemplatesHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_templates/enterprise"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTemplates.class); + } + + public MetadataTemplate createMetadataTemplate(CreateMetadataTemplateRequestBody requestBody) { + return createMetadataTemplate(requestBody, new CreateMetadataTemplateHeaders()); + } + + public MetadataTemplate createMetadataTemplate( + CreateMetadataTemplateRequestBody requestBody, CreateMetadataTemplateHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_templates/schema"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTemplate.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public MetadataTemplatesManager build() { + return new MetadataTemplatesManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateHeaders.java new file mode 100644 index 000000000..c0c752885 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.metadatatemplates; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateMetadataTemplateHeaders { + + public Map extraHeaders; + + public UpdateMetadataTemplateHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateMetadataTemplateHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateMetadataTemplateHeaders build() { + return new UpdateMetadataTemplateHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateRequestBody.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateRequestBody.java new file mode 100644 index 000000000..09c4d9955 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateRequestBody.java @@ -0,0 +1,233 @@ +package com.box.sdkgen.managers.metadatatemplates; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateMetadataTemplateRequestBody extends SerializableObject { + + @JsonDeserialize( + using = + UpdateMetadataTemplateRequestBodyOpField + .UpdateMetadataTemplateRequestBodyOpFieldDeserializer.class) + @JsonSerialize( + using = + UpdateMetadataTemplateRequestBodyOpField + .UpdateMetadataTemplateRequestBodyOpFieldSerializer.class) + protected final EnumWrapper op; + + protected Map data; + + protected String fieldKey; + + protected List fieldKeys; + + protected String enumOptionKey; + + protected List enumOptionKeys; + + protected String multiSelectOptionKey; + + protected List multiSelectOptionKeys; + + public UpdateMetadataTemplateRequestBody(UpdateMetadataTemplateRequestBodyOpField op) { + super(); + this.op = new EnumWrapper(op); + } + + public UpdateMetadataTemplateRequestBody( + @JsonProperty("op") EnumWrapper op) { + super(); + this.op = op; + } + + protected UpdateMetadataTemplateRequestBody(Builder builder) { + super(); + this.op = builder.op; + this.data = builder.data; + this.fieldKey = builder.fieldKey; + this.fieldKeys = builder.fieldKeys; + this.enumOptionKey = builder.enumOptionKey; + this.enumOptionKeys = builder.enumOptionKeys; + this.multiSelectOptionKey = builder.multiSelectOptionKey; + this.multiSelectOptionKeys = builder.multiSelectOptionKeys; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getOp() { + return op; + } + + public Map getData() { + return data; + } + + public String getFieldKey() { + return fieldKey; + } + + public List getFieldKeys() { + return fieldKeys; + } + + public String getEnumOptionKey() { + return enumOptionKey; + } + + public List getEnumOptionKeys() { + return enumOptionKeys; + } + + public String getMultiSelectOptionKey() { + return multiSelectOptionKey; + } + + public List getMultiSelectOptionKeys() { + return multiSelectOptionKeys; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateMetadataTemplateRequestBody casted = (UpdateMetadataTemplateRequestBody) o; + return Objects.equals(op, casted.op) + && Objects.equals(data, casted.data) + && Objects.equals(fieldKey, casted.fieldKey) + && Objects.equals(fieldKeys, casted.fieldKeys) + && Objects.equals(enumOptionKey, casted.enumOptionKey) + && Objects.equals(enumOptionKeys, casted.enumOptionKeys) + && Objects.equals(multiSelectOptionKey, casted.multiSelectOptionKey) + && Objects.equals(multiSelectOptionKeys, casted.multiSelectOptionKeys); + } + + @Override + public int hashCode() { + return Objects.hash( + op, + data, + fieldKey, + fieldKeys, + enumOptionKey, + enumOptionKeys, + multiSelectOptionKey, + multiSelectOptionKeys); + } + + @Override + public String toString() { + return "UpdateMetadataTemplateRequestBody{" + + "op='" + + op + + '\'' + + ", " + + "data='" + + data + + '\'' + + ", " + + "fieldKey='" + + fieldKey + + '\'' + + ", " + + "fieldKeys='" + + fieldKeys + + '\'' + + ", " + + "enumOptionKey='" + + enumOptionKey + + '\'' + + ", " + + "enumOptionKeys='" + + enumOptionKeys + + '\'' + + ", " + + "multiSelectOptionKey='" + + multiSelectOptionKey + + '\'' + + ", " + + "multiSelectOptionKeys='" + + multiSelectOptionKeys + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final EnumWrapper op; + + protected Map data; + + protected String fieldKey; + + protected List fieldKeys; + + protected String enumOptionKey; + + protected List enumOptionKeys; + + protected String multiSelectOptionKey; + + protected List multiSelectOptionKeys; + + public Builder(UpdateMetadataTemplateRequestBodyOpField op) { + super(); + this.op = new EnumWrapper(op); + } + + public Builder(EnumWrapper op) { + super(); + this.op = op; + } + + public Builder data(Map data) { + this.data = data; + return this; + } + + public Builder fieldKey(String fieldKey) { + this.fieldKey = fieldKey; + return this; + } + + public Builder fieldKeys(List fieldKeys) { + this.fieldKeys = fieldKeys; + return this; + } + + public Builder enumOptionKey(String enumOptionKey) { + this.enumOptionKey = enumOptionKey; + return this; + } + + public Builder enumOptionKeys(List enumOptionKeys) { + this.enumOptionKeys = enumOptionKeys; + return this; + } + + public Builder multiSelectOptionKey(String multiSelectOptionKey) { + this.multiSelectOptionKey = multiSelectOptionKey; + return this; + } + + public Builder multiSelectOptionKeys(List multiSelectOptionKeys) { + this.multiSelectOptionKeys = multiSelectOptionKeys; + return this; + } + + public UpdateMetadataTemplateRequestBody build() { + return new UpdateMetadataTemplateRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateRequestBodyOpField.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateRequestBodyOpField.java new file mode 100644 index 000000000..6187bd77b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateRequestBodyOpField.java @@ -0,0 +1,74 @@ +package com.box.sdkgen.managers.metadatatemplates; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateMetadataTemplateRequestBodyOpField implements Valuable { + EDITTEMPLATE("editTemplate"), + ADDFIELD("addField"), + REORDERFIELDS("reorderFields"), + ADDENUMOPTION("addEnumOption"), + REORDERENUMOPTIONS("reorderEnumOptions"), + REORDERMULTISELECTOPTIONS("reorderMultiSelectOptions"), + ADDMULTISELECTOPTION("addMultiSelectOption"), + EDITFIELD("editField"), + REMOVEFIELD("removeField"), + EDITENUMOPTION("editEnumOption"), + REMOVEENUMOPTION("removeEnumOption"), + EDITMULTISELECTOPTION("editMultiSelectOption"), + REMOVEMULTISELECTOPTION("removeMultiSelectOption"); + + private final String value; + + UpdateMetadataTemplateRequestBodyOpField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateMetadataTemplateRequestBodyOpFieldDeserializer + extends JsonDeserializer> { + + public UpdateMetadataTemplateRequestBodyOpFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateMetadataTemplateRequestBodyOpField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateMetadataTemplateRequestBodyOpFieldSerializer + extends JsonSerializer> { + + public UpdateMetadataTemplateRequestBodyOpFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateScope.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateScope.java new file mode 100644 index 000000000..ad42e0eec --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateScope.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.metadatatemplates; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateMetadataTemplateScope implements Valuable { + GLOBAL("global"), + ENTERPRISE("enterprise"); + + private final String value; + + UpdateMetadataTemplateScope(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateMetadataTemplateScopeDeserializer + extends JsonDeserializer> { + + public UpdateMetadataTemplateScopeDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateMetadataTemplateScope.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateMetadataTemplateScopeSerializer + extends JsonSerializer> { + + public UpdateMetadataTemplateScopeSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/recentitems/GetRecentItemsHeaders.java b/src/main/java/com/box/sdkgen/managers/recentitems/GetRecentItemsHeaders.java new file mode 100644 index 000000000..6eefa6ca0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/recentitems/GetRecentItemsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.recentitems; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetRecentItemsHeaders { + + public Map extraHeaders; + + public GetRecentItemsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetRecentItemsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetRecentItemsHeaders build() { + return new GetRecentItemsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/recentitems/GetRecentItemsQueryParams.java b/src/main/java/com/box/sdkgen/managers/recentitems/GetRecentItemsQueryParams.java new file mode 100644 index 000000000..437e8604e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/recentitems/GetRecentItemsQueryParams.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.managers.recentitems; + +import java.util.List; + +public class GetRecentItemsQueryParams { + + public List fields; + + public Long limit; + + public String marker; + + public GetRecentItemsQueryParams() {} + + protected GetRecentItemsQueryParams(Builder builder) { + this.fields = builder.fields; + this.limit = builder.limit; + this.marker = builder.marker; + } + + public List getFields() { + return fields; + } + + public Long getLimit() { + return limit; + } + + public String getMarker() { + return marker; + } + + public static class Builder { + + protected List fields; + + protected Long limit; + + protected String marker; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public GetRecentItemsQueryParams build() { + return new GetRecentItemsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/recentitems/RecentItemsManager.java b/src/main/java/com/box/sdkgen/managers/recentitems/RecentItemsManager.java new file mode 100644 index 000000000..206e509c7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/recentitems/RecentItemsManager.java @@ -0,0 +1,105 @@ +package com.box.sdkgen.managers.recentitems; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.recentitems.RecentItems; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class RecentItemsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public RecentItemsManager() { + this.networkSession = new NetworkSession(); + } + + protected RecentItemsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public RecentItems getRecentItems() { + return getRecentItems(new GetRecentItemsQueryParams(), new GetRecentItemsHeaders()); + } + + public RecentItems getRecentItems(GetRecentItemsQueryParams queryParams) { + return getRecentItems(queryParams, new GetRecentItemsHeaders()); + } + + public RecentItems getRecentItems(GetRecentItemsHeaders headers) { + return getRecentItems(new GetRecentItemsQueryParams(), headers); + } + + public RecentItems getRecentItems( + GetRecentItemsQueryParams queryParams, GetRecentItemsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("fields", convertToString(queryParams.getFields())), + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf("marker", convertToString(queryParams.getMarker())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/recent_items"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), RecentItems.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public RecentItemsManager build() { + return new RecentItemsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyHeaders.java new file mode 100644 index 000000000..2f9c7c068 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.retentionpolicies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateRetentionPolicyHeaders { + + public Map extraHeaders; + + public CreateRetentionPolicyHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateRetentionPolicyHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateRetentionPolicyHeaders build() { + return new CreateRetentionPolicyHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBody.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBody.java new file mode 100644 index 000000000..99e78f29a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBody.java @@ -0,0 +1,346 @@ +package com.box.sdkgen.managers.retentionpolicies; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateRetentionPolicyRequestBody extends SerializableObject { + + @JsonProperty("policy_name") + protected final String policyName; + + protected String description; + + @JsonDeserialize( + using = + CreateRetentionPolicyRequestBodyPolicyTypeField + .CreateRetentionPolicyRequestBodyPolicyTypeFieldDeserializer.class) + @JsonSerialize( + using = + CreateRetentionPolicyRequestBodyPolicyTypeField + .CreateRetentionPolicyRequestBodyPolicyTypeFieldSerializer.class) + @JsonProperty("policy_type") + protected final EnumWrapper policyType; + + @JsonDeserialize( + using = + CreateRetentionPolicyRequestBodyDispositionActionField + .CreateRetentionPolicyRequestBodyDispositionActionFieldDeserializer.class) + @JsonSerialize( + using = + CreateRetentionPolicyRequestBodyDispositionActionField + .CreateRetentionPolicyRequestBodyDispositionActionFieldSerializer.class) + @JsonProperty("disposition_action") + protected final EnumWrapper + dispositionAction; + + @JsonProperty("retention_length") + protected String retentionLength; + + @JsonDeserialize( + using = + CreateRetentionPolicyRequestBodyRetentionTypeField + .CreateRetentionPolicyRequestBodyRetentionTypeFieldDeserializer.class) + @JsonSerialize( + using = + CreateRetentionPolicyRequestBodyRetentionTypeField + .CreateRetentionPolicyRequestBodyRetentionTypeFieldSerializer.class) + @JsonProperty("retention_type") + protected EnumWrapper retentionType; + + @JsonProperty("can_owner_extend_retention") + protected Boolean canOwnerExtendRetention; + + @JsonProperty("are_owners_notified") + protected Boolean areOwnersNotified; + + @JsonProperty("custom_notification_recipients") + protected List customNotificationRecipients; + + public CreateRetentionPolicyRequestBody( + String policyName, + CreateRetentionPolicyRequestBodyPolicyTypeField policyType, + CreateRetentionPolicyRequestBodyDispositionActionField dispositionAction) { + super(); + this.policyName = policyName; + this.policyType = new EnumWrapper(policyType); + this.dispositionAction = + new EnumWrapper(dispositionAction); + } + + public CreateRetentionPolicyRequestBody( + String policyName, + CreateRetentionPolicyRequestBodyPolicyTypeField policyType, + EnumWrapper dispositionAction) { + super(); + this.policyName = policyName; + this.policyType = new EnumWrapper(policyType); + this.dispositionAction = dispositionAction; + } + + public CreateRetentionPolicyRequestBody( + String policyName, + EnumWrapper policyType, + CreateRetentionPolicyRequestBodyDispositionActionField dispositionAction) { + super(); + this.policyName = policyName; + this.policyType = policyType; + this.dispositionAction = + new EnumWrapper(dispositionAction); + } + + public CreateRetentionPolicyRequestBody( + @JsonProperty("policy_name") String policyName, + @JsonProperty("policy_type") + EnumWrapper policyType, + @JsonProperty("disposition_action") + EnumWrapper dispositionAction) { + super(); + this.policyName = policyName; + this.policyType = policyType; + this.dispositionAction = dispositionAction; + } + + protected CreateRetentionPolicyRequestBody(Builder builder) { + super(); + this.policyName = builder.policyName; + this.description = builder.description; + this.policyType = builder.policyType; + this.dispositionAction = builder.dispositionAction; + this.retentionLength = builder.retentionLength; + this.retentionType = builder.retentionType; + this.canOwnerExtendRetention = builder.canOwnerExtendRetention; + this.areOwnersNotified = builder.areOwnersNotified; + this.customNotificationRecipients = builder.customNotificationRecipients; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getPolicyName() { + return policyName; + } + + public String getDescription() { + return description; + } + + public EnumWrapper getPolicyType() { + return policyType; + } + + public EnumWrapper + getDispositionAction() { + return dispositionAction; + } + + public String getRetentionLength() { + return retentionLength; + } + + public EnumWrapper getRetentionType() { + return retentionType; + } + + public Boolean getCanOwnerExtendRetention() { + return canOwnerExtendRetention; + } + + public Boolean getAreOwnersNotified() { + return areOwnersNotified; + } + + public List getCustomNotificationRecipients() { + return customNotificationRecipients; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateRetentionPolicyRequestBody casted = (CreateRetentionPolicyRequestBody) o; + return Objects.equals(policyName, casted.policyName) + && Objects.equals(description, casted.description) + && Objects.equals(policyType, casted.policyType) + && Objects.equals(dispositionAction, casted.dispositionAction) + && Objects.equals(retentionLength, casted.retentionLength) + && Objects.equals(retentionType, casted.retentionType) + && Objects.equals(canOwnerExtendRetention, casted.canOwnerExtendRetention) + && Objects.equals(areOwnersNotified, casted.areOwnersNotified) + && Objects.equals(customNotificationRecipients, casted.customNotificationRecipients); + } + + @Override + public int hashCode() { + return Objects.hash( + policyName, + description, + policyType, + dispositionAction, + retentionLength, + retentionType, + canOwnerExtendRetention, + areOwnersNotified, + customNotificationRecipients); + } + + @Override + public String toString() { + return "CreateRetentionPolicyRequestBody{" + + "policyName='" + + policyName + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "policyType='" + + policyType + + '\'' + + ", " + + "dispositionAction='" + + dispositionAction + + '\'' + + ", " + + "retentionLength='" + + retentionLength + + '\'' + + ", " + + "retentionType='" + + retentionType + + '\'' + + ", " + + "canOwnerExtendRetention='" + + canOwnerExtendRetention + + '\'' + + ", " + + "areOwnersNotified='" + + areOwnersNotified + + '\'' + + ", " + + "customNotificationRecipients='" + + customNotificationRecipients + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String policyName; + + protected String description; + + protected final EnumWrapper policyType; + + protected final EnumWrapper + dispositionAction; + + protected String retentionLength; + + protected EnumWrapper retentionType; + + protected Boolean canOwnerExtendRetention; + + protected Boolean areOwnersNotified; + + protected List customNotificationRecipients; + + public Builder( + String policyName, + CreateRetentionPolicyRequestBodyPolicyTypeField policyType, + CreateRetentionPolicyRequestBodyDispositionActionField dispositionAction) { + super(); + this.policyName = policyName; + this.policyType = + new EnumWrapper(policyType); + this.dispositionAction = + new EnumWrapper( + dispositionAction); + } + + public Builder( + String policyName, + CreateRetentionPolicyRequestBodyPolicyTypeField policyType, + EnumWrapper dispositionAction) { + super(); + this.policyName = policyName; + this.policyType = + new EnumWrapper(policyType); + this.dispositionAction = dispositionAction; + } + + public Builder( + String policyName, + EnumWrapper policyType, + CreateRetentionPolicyRequestBodyDispositionActionField dispositionAction) { + super(); + this.policyName = policyName; + this.policyType = policyType; + this.dispositionAction = + new EnumWrapper( + dispositionAction); + } + + public Builder( + String policyName, + EnumWrapper policyType, + EnumWrapper dispositionAction) { + super(); + this.policyName = policyName; + this.policyType = policyType; + this.dispositionAction = dispositionAction; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder retentionLength(String retentionLength) { + this.retentionLength = retentionLength; + return this; + } + + public Builder retentionType(CreateRetentionPolicyRequestBodyRetentionTypeField retentionType) { + this.retentionType = + new EnumWrapper(retentionType); + return this; + } + + public Builder retentionType( + EnumWrapper retentionType) { + this.retentionType = retentionType; + return this; + } + + public Builder canOwnerExtendRetention(Boolean canOwnerExtendRetention) { + this.canOwnerExtendRetention = canOwnerExtendRetention; + return this; + } + + public Builder areOwnersNotified(Boolean areOwnersNotified) { + this.areOwnersNotified = areOwnersNotified; + return this; + } + + public Builder customNotificationRecipients(List customNotificationRecipients) { + this.customNotificationRecipients = customNotificationRecipients; + return this; + } + + public CreateRetentionPolicyRequestBody build() { + return new CreateRetentionPolicyRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyDispositionActionField.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyDispositionActionField.java new file mode 100644 index 000000000..82d50bfa6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyDispositionActionField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.retentionpolicies; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateRetentionPolicyRequestBodyDispositionActionField implements Valuable { + PERMANENTLY_DELETE("permanently_delete"), + REMOVE_RETENTION("remove_retention"); + + private final String value; + + CreateRetentionPolicyRequestBodyDispositionActionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateRetentionPolicyRequestBodyDispositionActionFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public CreateRetentionPolicyRequestBodyDispositionActionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateRetentionPolicyRequestBodyDispositionActionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateRetentionPolicyRequestBodyDispositionActionFieldSerializer + extends JsonSerializer> { + + public CreateRetentionPolicyRequestBodyDispositionActionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyPolicyTypeField.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyPolicyTypeField.java new file mode 100644 index 000000000..750564488 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyPolicyTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.retentionpolicies; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateRetentionPolicyRequestBodyPolicyTypeField implements Valuable { + FINITE("finite"), + INDEFINITE("indefinite"); + + private final String value; + + CreateRetentionPolicyRequestBodyPolicyTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateRetentionPolicyRequestBodyPolicyTypeFieldDeserializer + extends JsonDeserializer> { + + public CreateRetentionPolicyRequestBodyPolicyTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateRetentionPolicyRequestBodyPolicyTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateRetentionPolicyRequestBodyPolicyTypeFieldSerializer + extends JsonSerializer> { + + public CreateRetentionPolicyRequestBodyPolicyTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyRetentionTypeField.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyRetentionTypeField.java new file mode 100644 index 000000000..cb78b202d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyRetentionTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.retentionpolicies; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateRetentionPolicyRequestBodyRetentionTypeField implements Valuable { + MODIFIABLE("modifiable"), + NON_MODIFIABLE("non_modifiable"); + + private final String value; + + CreateRetentionPolicyRequestBodyRetentionTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateRetentionPolicyRequestBodyRetentionTypeFieldDeserializer + extends JsonDeserializer> { + + public CreateRetentionPolicyRequestBodyRetentionTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateRetentionPolicyRequestBodyRetentionTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateRetentionPolicyRequestBodyRetentionTypeFieldSerializer + extends JsonSerializer> { + + public CreateRetentionPolicyRequestBodyRetentionTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/DeleteRetentionPolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/DeleteRetentionPolicyByIdHeaders.java new file mode 100644 index 000000000..542a5dbcd --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/DeleteRetentionPolicyByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.retentionpolicies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteRetentionPolicyByIdHeaders { + + public Map extraHeaders; + + public DeleteRetentionPolicyByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteRetentionPolicyByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteRetentionPolicyByIdHeaders build() { + return new DeleteRetentionPolicyByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesHeaders.java new file mode 100644 index 000000000..04feb1537 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.retentionpolicies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetRetentionPoliciesHeaders { + + public Map extraHeaders; + + public GetRetentionPoliciesHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetRetentionPoliciesHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetRetentionPoliciesHeaders build() { + return new GetRetentionPoliciesHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesQueryParams.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesQueryParams.java new file mode 100644 index 000000000..33ef29c7a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesQueryParams.java @@ -0,0 +1,109 @@ +package com.box.sdkgen.managers.retentionpolicies; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.List; + +public class GetRetentionPoliciesQueryParams { + + public String policyName; + + public EnumWrapper policyType; + + public String createdByUserId; + + public List fields; + + public Long limit; + + public String marker; + + public GetRetentionPoliciesQueryParams() {} + + protected GetRetentionPoliciesQueryParams(Builder builder) { + this.policyName = builder.policyName; + this.policyType = builder.policyType; + this.createdByUserId = builder.createdByUserId; + this.fields = builder.fields; + this.limit = builder.limit; + this.marker = builder.marker; + } + + public String getPolicyName() { + return policyName; + } + + public EnumWrapper getPolicyType() { + return policyType; + } + + public String getCreatedByUserId() { + return createdByUserId; + } + + public List getFields() { + return fields; + } + + public Long getLimit() { + return limit; + } + + public String getMarker() { + return marker; + } + + public static class Builder { + + protected String policyName; + + protected EnumWrapper policyType; + + protected String createdByUserId; + + protected List fields; + + protected Long limit; + + protected String marker; + + public Builder policyName(String policyName) { + this.policyName = policyName; + return this; + } + + public Builder policyType(GetRetentionPoliciesQueryParamsPolicyTypeField policyType) { + this.policyType = new EnumWrapper(policyType); + return this; + } + + public Builder policyType( + EnumWrapper policyType) { + this.policyType = policyType; + return this; + } + + public Builder createdByUserId(String createdByUserId) { + this.createdByUserId = createdByUserId; + return this; + } + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public GetRetentionPoliciesQueryParams build() { + return new GetRetentionPoliciesQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesQueryParamsPolicyTypeField.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesQueryParamsPolicyTypeField.java new file mode 100644 index 000000000..60cecb97a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesQueryParamsPolicyTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.retentionpolicies; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetRetentionPoliciesQueryParamsPolicyTypeField implements Valuable { + FINITE("finite"), + INDEFINITE("indefinite"); + + private final String value; + + GetRetentionPoliciesQueryParamsPolicyTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetRetentionPoliciesQueryParamsPolicyTypeFieldDeserializer + extends JsonDeserializer> { + + public GetRetentionPoliciesQueryParamsPolicyTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetRetentionPoliciesQueryParamsPolicyTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetRetentionPoliciesQueryParamsPolicyTypeFieldSerializer + extends JsonSerializer> { + + public GetRetentionPoliciesQueryParamsPolicyTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPolicyByIdHeaders.java new file mode 100644 index 000000000..a06a575b6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPolicyByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.retentionpolicies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetRetentionPolicyByIdHeaders { + + public Map extraHeaders; + + public GetRetentionPolicyByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetRetentionPolicyByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetRetentionPolicyByIdHeaders build() { + return new GetRetentionPolicyByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPolicyByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPolicyByIdQueryParams.java new file mode 100644 index 000000000..d1da411bf --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPolicyByIdQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.retentionpolicies; + +import java.util.List; + +public class GetRetentionPolicyByIdQueryParams { + + public List fields; + + public GetRetentionPolicyByIdQueryParams() {} + + protected GetRetentionPolicyByIdQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public GetRetentionPolicyByIdQueryParams build() { + return new GetRetentionPolicyByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/RetentionPoliciesManager.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/RetentionPoliciesManager.java new file mode 100644 index 000000000..1bc4120e8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/RetentionPoliciesManager.java @@ -0,0 +1,253 @@ +package com.box.sdkgen.managers.retentionpolicies; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.retentionpolicies.RetentionPolicies; +import com.box.sdkgen.schemas.retentionpolicy.RetentionPolicy; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class RetentionPoliciesManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public RetentionPoliciesManager() { + this.networkSession = new NetworkSession(); + } + + protected RetentionPoliciesManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public RetentionPolicies getRetentionPolicies() { + return getRetentionPolicies( + new GetRetentionPoliciesQueryParams(), new GetRetentionPoliciesHeaders()); + } + + public RetentionPolicies getRetentionPolicies(GetRetentionPoliciesQueryParams queryParams) { + return getRetentionPolicies(queryParams, new GetRetentionPoliciesHeaders()); + } + + public RetentionPolicies getRetentionPolicies(GetRetentionPoliciesHeaders headers) { + return getRetentionPolicies(new GetRetentionPoliciesQueryParams(), headers); + } + + public RetentionPolicies getRetentionPolicies( + GetRetentionPoliciesQueryParams queryParams, GetRetentionPoliciesHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("policy_name", convertToString(queryParams.getPolicyName())), + entryOf("policy_type", convertToString(queryParams.getPolicyType())), + entryOf("created_by_user_id", convertToString(queryParams.getCreatedByUserId())), + entryOf("fields", convertToString(queryParams.getFields())), + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf("marker", convertToString(queryParams.getMarker())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/retention_policies"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), RetentionPolicies.class); + } + + public RetentionPolicy createRetentionPolicy(CreateRetentionPolicyRequestBody requestBody) { + return createRetentionPolicy(requestBody, new CreateRetentionPolicyHeaders()); + } + + public RetentionPolicy createRetentionPolicy( + CreateRetentionPolicyRequestBody requestBody, CreateRetentionPolicyHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/retention_policies"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), RetentionPolicy.class); + } + + public RetentionPolicy getRetentionPolicyById(String retentionPolicyId) { + return getRetentionPolicyById( + retentionPolicyId, + new GetRetentionPolicyByIdQueryParams(), + new GetRetentionPolicyByIdHeaders()); + } + + public RetentionPolicy getRetentionPolicyById( + String retentionPolicyId, GetRetentionPolicyByIdQueryParams queryParams) { + return getRetentionPolicyById( + retentionPolicyId, queryParams, new GetRetentionPolicyByIdHeaders()); + } + + public RetentionPolicy getRetentionPolicyById( + String retentionPolicyId, GetRetentionPolicyByIdHeaders headers) { + return getRetentionPolicyById( + retentionPolicyId, new GetRetentionPolicyByIdQueryParams(), headers); + } + + public RetentionPolicy getRetentionPolicyById( + String retentionPolicyId, + GetRetentionPolicyByIdQueryParams queryParams, + GetRetentionPolicyByIdHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/retention_policies/", + convertToString(retentionPolicyId)), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), RetentionPolicy.class); + } + + public RetentionPolicy updateRetentionPolicyById(String retentionPolicyId) { + return updateRetentionPolicyById( + retentionPolicyId, + new UpdateRetentionPolicyByIdRequestBody(), + new UpdateRetentionPolicyByIdHeaders()); + } + + public RetentionPolicy updateRetentionPolicyById( + String retentionPolicyId, UpdateRetentionPolicyByIdRequestBody requestBody) { + return updateRetentionPolicyById( + retentionPolicyId, requestBody, new UpdateRetentionPolicyByIdHeaders()); + } + + public RetentionPolicy updateRetentionPolicyById( + String retentionPolicyId, UpdateRetentionPolicyByIdHeaders headers) { + return updateRetentionPolicyById( + retentionPolicyId, new UpdateRetentionPolicyByIdRequestBody(), headers); + } + + public RetentionPolicy updateRetentionPolicyById( + String retentionPolicyId, + UpdateRetentionPolicyByIdRequestBody requestBody, + UpdateRetentionPolicyByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/retention_policies/", + convertToString(retentionPolicyId)), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), RetentionPolicy.class); + } + + public void deleteRetentionPolicyById(String retentionPolicyId) { + deleteRetentionPolicyById(retentionPolicyId, new DeleteRetentionPolicyByIdHeaders()); + } + + public void deleteRetentionPolicyById( + String retentionPolicyId, DeleteRetentionPolicyByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/retention_policies/", + convertToString(retentionPolicyId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public RetentionPoliciesManager build() { + return new RetentionPoliciesManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdHeaders.java new file mode 100644 index 000000000..41b992487 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.retentionpolicies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateRetentionPolicyByIdHeaders { + + public Map extraHeaders; + + public UpdateRetentionPolicyByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateRetentionPolicyByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateRetentionPolicyByIdHeaders build() { + return new UpdateRetentionPolicyByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdRequestBody.java new file mode 100644 index 000000000..8e8b34d02 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdRequestBody.java @@ -0,0 +1,250 @@ +package com.box.sdkgen.managers.retentionpolicies; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.userbase.UserBase; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateRetentionPolicyByIdRequestBody extends SerializableObject { + + @JsonProperty("policy_name") + @Nullable + protected String policyName; + + @Nullable protected String description; + + @JsonProperty("disposition_action") + protected String dispositionAction; + + @JsonProperty("retention_type") + @Nullable + protected String retentionType; + + @JsonProperty("retention_length") + protected String retentionLength; + + @Nullable protected String status; + + @JsonProperty("can_owner_extend_retention") + @Nullable + protected Boolean canOwnerExtendRetention; + + @JsonProperty("are_owners_notified") + @Nullable + protected Boolean areOwnersNotified; + + @JsonProperty("custom_notification_recipients") + @Nullable + protected List customNotificationRecipients; + + public UpdateRetentionPolicyByIdRequestBody() { + super(); + } + + protected UpdateRetentionPolicyByIdRequestBody(Builder builder) { + super(); + this.policyName = builder.policyName; + this.description = builder.description; + this.dispositionAction = builder.dispositionAction; + this.retentionType = builder.retentionType; + this.retentionLength = builder.retentionLength; + this.status = builder.status; + this.canOwnerExtendRetention = builder.canOwnerExtendRetention; + this.areOwnersNotified = builder.areOwnersNotified; + this.customNotificationRecipients = builder.customNotificationRecipients; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getPolicyName() { + return policyName; + } + + public String getDescription() { + return description; + } + + public String getDispositionAction() { + return dispositionAction; + } + + public String getRetentionType() { + return retentionType; + } + + public String getRetentionLength() { + return retentionLength; + } + + public String getStatus() { + return status; + } + + public Boolean getCanOwnerExtendRetention() { + return canOwnerExtendRetention; + } + + public Boolean getAreOwnersNotified() { + return areOwnersNotified; + } + + public List getCustomNotificationRecipients() { + return customNotificationRecipients; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateRetentionPolicyByIdRequestBody casted = (UpdateRetentionPolicyByIdRequestBody) o; + return Objects.equals(policyName, casted.policyName) + && Objects.equals(description, casted.description) + && Objects.equals(dispositionAction, casted.dispositionAction) + && Objects.equals(retentionType, casted.retentionType) + && Objects.equals(retentionLength, casted.retentionLength) + && Objects.equals(status, casted.status) + && Objects.equals(canOwnerExtendRetention, casted.canOwnerExtendRetention) + && Objects.equals(areOwnersNotified, casted.areOwnersNotified) + && Objects.equals(customNotificationRecipients, casted.customNotificationRecipients); + } + + @Override + public int hashCode() { + return Objects.hash( + policyName, + description, + dispositionAction, + retentionType, + retentionLength, + status, + canOwnerExtendRetention, + areOwnersNotified, + customNotificationRecipients); + } + + @Override + public String toString() { + return "UpdateRetentionPolicyByIdRequestBody{" + + "policyName='" + + policyName + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "dispositionAction='" + + dispositionAction + + '\'' + + ", " + + "retentionType='" + + retentionType + + '\'' + + ", " + + "retentionLength='" + + retentionLength + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "canOwnerExtendRetention='" + + canOwnerExtendRetention + + '\'' + + ", " + + "areOwnersNotified='" + + areOwnersNotified + + '\'' + + ", " + + "customNotificationRecipients='" + + customNotificationRecipients + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String policyName; + + protected String description; + + protected String dispositionAction; + + protected String retentionType; + + protected String retentionLength; + + protected String status; + + protected Boolean canOwnerExtendRetention; + + protected Boolean areOwnersNotified; + + protected List customNotificationRecipients; + + public Builder policyName(String policyName) { + this.policyName = policyName; + this.markNullableFieldAsSet("policy_name"); + return this; + } + + public Builder description(String description) { + this.description = description; + this.markNullableFieldAsSet("description"); + return this; + } + + public Builder dispositionAction(String dispositionAction) { + this.dispositionAction = dispositionAction; + return this; + } + + public Builder retentionType(String retentionType) { + this.retentionType = retentionType; + this.markNullableFieldAsSet("retention_type"); + return this; + } + + public Builder retentionLength(String retentionLength) { + this.retentionLength = retentionLength; + return this; + } + + public Builder status(String status) { + this.status = status; + this.markNullableFieldAsSet("status"); + return this; + } + + public Builder canOwnerExtendRetention(Boolean canOwnerExtendRetention) { + this.canOwnerExtendRetention = canOwnerExtendRetention; + this.markNullableFieldAsSet("can_owner_extend_retention"); + return this; + } + + public Builder areOwnersNotified(Boolean areOwnersNotified) { + this.areOwnersNotified = areOwnersNotified; + this.markNullableFieldAsSet("are_owners_notified"); + return this; + } + + public Builder customNotificationRecipients(List customNotificationRecipients) { + this.customNotificationRecipients = customNotificationRecipients; + this.markNullableFieldAsSet("custom_notification_recipients"); + return this; + } + + public UpdateRetentionPolicyByIdRequestBody build() { + return new UpdateRetentionPolicyByIdRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentHeaders.java new file mode 100644 index 000000000..45f2b96e6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.retentionpolicyassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateRetentionPolicyAssignmentHeaders { + + public Map extraHeaders; + + public CreateRetentionPolicyAssignmentHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateRetentionPolicyAssignmentHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateRetentionPolicyAssignmentHeaders build() { + return new CreateRetentionPolicyAssignmentHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBody.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBody.java new file mode 100644 index 000000000..dae5c645e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBody.java @@ -0,0 +1,132 @@ +package com.box.sdkgen.managers.retentionpolicyassignments; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateRetentionPolicyAssignmentRequestBody extends SerializableObject { + + @JsonProperty("policy_id") + protected final String policyId; + + @JsonProperty("assign_to") + protected final CreateRetentionPolicyAssignmentRequestBodyAssignToField assignTo; + + @JsonProperty("filter_fields") + protected List filterFields; + + @JsonProperty("start_date_field") + protected String startDateField; + + public CreateRetentionPolicyAssignmentRequestBody( + @JsonProperty("policy_id") String policyId, + @JsonProperty("assign_to") CreateRetentionPolicyAssignmentRequestBodyAssignToField assignTo) { + super(); + this.policyId = policyId; + this.assignTo = assignTo; + } + + protected CreateRetentionPolicyAssignmentRequestBody(Builder builder) { + super(); + this.policyId = builder.policyId; + this.assignTo = builder.assignTo; + this.filterFields = builder.filterFields; + this.startDateField = builder.startDateField; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getPolicyId() { + return policyId; + } + + public CreateRetentionPolicyAssignmentRequestBodyAssignToField getAssignTo() { + return assignTo; + } + + public List getFilterFields() { + return filterFields; + } + + public String getStartDateField() { + return startDateField; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateRetentionPolicyAssignmentRequestBody casted = + (CreateRetentionPolicyAssignmentRequestBody) o; + return Objects.equals(policyId, casted.policyId) + && Objects.equals(assignTo, casted.assignTo) + && Objects.equals(filterFields, casted.filterFields) + && Objects.equals(startDateField, casted.startDateField); + } + + @Override + public int hashCode() { + return Objects.hash(policyId, assignTo, filterFields, startDateField); + } + + @Override + public String toString() { + return "CreateRetentionPolicyAssignmentRequestBody{" + + "policyId='" + + policyId + + '\'' + + ", " + + "assignTo='" + + assignTo + + '\'' + + ", " + + "filterFields='" + + filterFields + + '\'' + + ", " + + "startDateField='" + + startDateField + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String policyId; + + protected final CreateRetentionPolicyAssignmentRequestBodyAssignToField assignTo; + + protected List filterFields; + + protected String startDateField; + + public Builder( + String policyId, CreateRetentionPolicyAssignmentRequestBodyAssignToField assignTo) { + super(); + this.policyId = policyId; + this.assignTo = assignTo; + } + + public Builder filterFields( + List filterFields) { + this.filterFields = filterFields; + return this; + } + + public Builder startDateField(String startDateField) { + this.startDateField = startDateField; + return this; + } + + public CreateRetentionPolicyAssignmentRequestBody build() { + return new CreateRetentionPolicyAssignmentRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBodyAssignToField.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBodyAssignToField.java new file mode 100644 index 000000000..2566e6573 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBodyAssignToField.java @@ -0,0 +1,114 @@ +package com.box.sdkgen.managers.retentionpolicyassignments; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateRetentionPolicyAssignmentRequestBodyAssignToField extends SerializableObject { + + @JsonDeserialize( + using = + CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField + .CreateRetentionPolicyAssignmentRequestBodyAssignToTypeFieldDeserializer.class) + @JsonSerialize( + using = + CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField + .CreateRetentionPolicyAssignmentRequestBodyAssignToTypeFieldSerializer.class) + protected final EnumWrapper type; + + @Nullable protected String id; + + public CreateRetentionPolicyAssignmentRequestBodyAssignToField( + CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField type) { + super(); + this.type = new EnumWrapper(type); + } + + public CreateRetentionPolicyAssignmentRequestBodyAssignToField( + @JsonProperty("type") + EnumWrapper type) { + super(); + this.type = type; + } + + protected CreateRetentionPolicyAssignmentRequestBodyAssignToField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateRetentionPolicyAssignmentRequestBodyAssignToField casted = + (CreateRetentionPolicyAssignmentRequestBodyAssignToField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "CreateRetentionPolicyAssignmentRequestBodyAssignToField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final EnumWrapper type; + + protected String id; + + public Builder(CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField type) { + super(); + this.type = + new EnumWrapper(type); + } + + public Builder(EnumWrapper type) { + super(); + this.type = type; + } + + public Builder id(String id) { + this.id = id; + this.markNullableFieldAsSet("id"); + return this; + } + + public CreateRetentionPolicyAssignmentRequestBodyAssignToField build() { + return new CreateRetentionPolicyAssignmentRequestBodyAssignToField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField.java new file mode 100644 index 000000000..492f039f0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField.java @@ -0,0 +1,67 @@ +package com.box.sdkgen.managers.retentionpolicyassignments; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField implements Valuable { + ENTERPRISE("enterprise"), + FOLDER("folder"), + METADATA_TEMPLATE("metadata_template"); + + private final String value; + + CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateRetentionPolicyAssignmentRequestBodyAssignToTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public CreateRetentionPolicyAssignmentRequestBodyAssignToTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper(value)); + } + } + + public static class CreateRetentionPolicyAssignmentRequestBodyAssignToTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public CreateRetentionPolicyAssignmentRequestBodyAssignToTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField.java new file mode 100644 index 000000000..07371b4e9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.managers.retentionpolicyassignments; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField + extends SerializableObject { + + protected String field; + + protected String value; + + public CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField() { + super(); + } + + protected CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField(Builder builder) { + super(); + this.field = builder.field; + this.value = builder.value; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getField() { + return field; + } + + public String getValue() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField casted = + (CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField) o; + return Objects.equals(field, casted.field) && Objects.equals(value, casted.value); + } + + @Override + public int hashCode() { + return Objects.hash(field, value); + } + + @Override + public String toString() { + return "CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField{" + + "field='" + + field + + '\'' + + ", " + + "value='" + + value + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String field; + + protected String value; + + public Builder field(String field) { + this.field = field; + return this; + } + + public Builder value(String value) { + this.value = value; + return this; + } + + public CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField build() { + return new CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/DeleteRetentionPolicyAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/DeleteRetentionPolicyAssignmentByIdHeaders.java new file mode 100644 index 000000000..b227a22b3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/DeleteRetentionPolicyAssignmentByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.retentionpolicyassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteRetentionPolicyAssignmentByIdHeaders { + + public Map extraHeaders; + + public DeleteRetentionPolicyAssignmentByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteRetentionPolicyAssignmentByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteRetentionPolicyAssignmentByIdHeaders build() { + return new DeleteRetentionPolicyAssignmentByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetFilesUnderRetentionPolicyAssignmentHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetFilesUnderRetentionPolicyAssignmentHeaders.java new file mode 100644 index 000000000..2e20d07cd --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetFilesUnderRetentionPolicyAssignmentHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.retentionpolicyassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFilesUnderRetentionPolicyAssignmentHeaders { + + public Map extraHeaders; + + public GetFilesUnderRetentionPolicyAssignmentHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFilesUnderRetentionPolicyAssignmentHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFilesUnderRetentionPolicyAssignmentHeaders build() { + return new GetFilesUnderRetentionPolicyAssignmentHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetFilesUnderRetentionPolicyAssignmentQueryParams.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetFilesUnderRetentionPolicyAssignmentQueryParams.java new file mode 100644 index 000000000..8a74621a1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetFilesUnderRetentionPolicyAssignmentQueryParams.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.retentionpolicyassignments; + +public class GetFilesUnderRetentionPolicyAssignmentQueryParams { + + public String marker; + + public Long limit; + + public GetFilesUnderRetentionPolicyAssignmentQueryParams() {} + + protected GetFilesUnderRetentionPolicyAssignmentQueryParams(Builder builder) { + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected String marker; + + protected Long limit; + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetFilesUnderRetentionPolicyAssignmentQueryParams build() { + return new GetFilesUnderRetentionPolicyAssignmentQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentByIdHeaders.java new file mode 100644 index 000000000..09f3b0084 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.retentionpolicyassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetRetentionPolicyAssignmentByIdHeaders { + + public Map extraHeaders; + + public GetRetentionPolicyAssignmentByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetRetentionPolicyAssignmentByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetRetentionPolicyAssignmentByIdHeaders build() { + return new GetRetentionPolicyAssignmentByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentByIdQueryParams.java new file mode 100644 index 000000000..9e1731bef --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentByIdQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.retentionpolicyassignments; + +import java.util.List; + +public class GetRetentionPolicyAssignmentByIdQueryParams { + + public List fields; + + public GetRetentionPolicyAssignmentByIdQueryParams() {} + + protected GetRetentionPolicyAssignmentByIdQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public GetRetentionPolicyAssignmentByIdQueryParams build() { + return new GetRetentionPolicyAssignmentByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsHeaders.java new file mode 100644 index 000000000..c637eabc6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.retentionpolicyassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetRetentionPolicyAssignmentsHeaders { + + public Map extraHeaders; + + public GetRetentionPolicyAssignmentsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetRetentionPolicyAssignmentsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetRetentionPolicyAssignmentsHeaders build() { + return new GetRetentionPolicyAssignmentsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsQueryParams.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsQueryParams.java new file mode 100644 index 000000000..276456a3c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsQueryParams.java @@ -0,0 +1,80 @@ +package com.box.sdkgen.managers.retentionpolicyassignments; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.List; + +public class GetRetentionPolicyAssignmentsQueryParams { + + public EnumWrapper type; + + public List fields; + + public String marker; + + public Long limit; + + public GetRetentionPolicyAssignmentsQueryParams() {} + + protected GetRetentionPolicyAssignmentsQueryParams(Builder builder) { + this.type = builder.type; + this.fields = builder.fields; + this.marker = builder.marker; + this.limit = builder.limit; + } + + public EnumWrapper getType() { + return type; + } + + public List getFields() { + return fields; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected EnumWrapper type; + + protected List fields; + + protected String marker; + + protected Long limit; + + public Builder type(GetRetentionPolicyAssignmentsQueryParamsTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetRetentionPolicyAssignmentsQueryParams build() { + return new GetRetentionPolicyAssignmentsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsQueryParamsTypeField.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsQueryParamsTypeField.java new file mode 100644 index 000000000..78ebb61f9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsQueryParamsTypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.retentionpolicyassignments; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetRetentionPolicyAssignmentsQueryParamsTypeField implements Valuable { + FOLDER("folder"), + ENTERPRISE("enterprise"), + METADATA_TEMPLATE("metadata_template"); + + private final String value; + + GetRetentionPolicyAssignmentsQueryParamsTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetRetentionPolicyAssignmentsQueryParamsTypeFieldDeserializer + extends JsonDeserializer> { + + public GetRetentionPolicyAssignmentsQueryParamsTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetRetentionPolicyAssignmentsQueryParamsTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetRetentionPolicyAssignmentsQueryParamsTypeFieldSerializer + extends JsonSerializer> { + + public GetRetentionPolicyAssignmentsQueryParamsTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/RetentionPolicyAssignmentsManager.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/RetentionPolicyAssignmentsManager.java new file mode 100644 index 000000000..6ab42abcf --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/RetentionPolicyAssignmentsManager.java @@ -0,0 +1,278 @@ +package com.box.sdkgen.managers.retentionpolicyassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.filesunderretention.FilesUnderRetention; +import com.box.sdkgen.schemas.retentionpolicyassignment.RetentionPolicyAssignment; +import com.box.sdkgen.schemas.retentionpolicyassignments.RetentionPolicyAssignments; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class RetentionPolicyAssignmentsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public RetentionPolicyAssignmentsManager() { + this.networkSession = new NetworkSession(); + } + + protected RetentionPolicyAssignmentsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public RetentionPolicyAssignments getRetentionPolicyAssignments(String retentionPolicyId) { + return getRetentionPolicyAssignments( + retentionPolicyId, + new GetRetentionPolicyAssignmentsQueryParams(), + new GetRetentionPolicyAssignmentsHeaders()); + } + + public RetentionPolicyAssignments getRetentionPolicyAssignments( + String retentionPolicyId, GetRetentionPolicyAssignmentsQueryParams queryParams) { + return getRetentionPolicyAssignments( + retentionPolicyId, queryParams, new GetRetentionPolicyAssignmentsHeaders()); + } + + public RetentionPolicyAssignments getRetentionPolicyAssignments( + String retentionPolicyId, GetRetentionPolicyAssignmentsHeaders headers) { + return getRetentionPolicyAssignments( + retentionPolicyId, new GetRetentionPolicyAssignmentsQueryParams(), headers); + } + + public RetentionPolicyAssignments getRetentionPolicyAssignments( + String retentionPolicyId, + GetRetentionPolicyAssignmentsQueryParams queryParams, + GetRetentionPolicyAssignmentsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("type", convertToString(queryParams.getType())), + entryOf("fields", convertToString(queryParams.getFields())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/retention_policies/", + convertToString(retentionPolicyId), + "/assignments"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), RetentionPolicyAssignments.class); + } + + public RetentionPolicyAssignment createRetentionPolicyAssignment( + CreateRetentionPolicyAssignmentRequestBody requestBody) { + return createRetentionPolicyAssignment( + requestBody, new CreateRetentionPolicyAssignmentHeaders()); + } + + public RetentionPolicyAssignment createRetentionPolicyAssignment( + CreateRetentionPolicyAssignmentRequestBody requestBody, + CreateRetentionPolicyAssignmentHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/retention_policy_assignments"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), RetentionPolicyAssignment.class); + } + + public RetentionPolicyAssignment getRetentionPolicyAssignmentById( + String retentionPolicyAssignmentId) { + return getRetentionPolicyAssignmentById( + retentionPolicyAssignmentId, + new GetRetentionPolicyAssignmentByIdQueryParams(), + new GetRetentionPolicyAssignmentByIdHeaders()); + } + + public RetentionPolicyAssignment getRetentionPolicyAssignmentById( + String retentionPolicyAssignmentId, GetRetentionPolicyAssignmentByIdQueryParams queryParams) { + return getRetentionPolicyAssignmentById( + retentionPolicyAssignmentId, queryParams, new GetRetentionPolicyAssignmentByIdHeaders()); + } + + public RetentionPolicyAssignment getRetentionPolicyAssignmentById( + String retentionPolicyAssignmentId, GetRetentionPolicyAssignmentByIdHeaders headers) { + return getRetentionPolicyAssignmentById( + retentionPolicyAssignmentId, new GetRetentionPolicyAssignmentByIdQueryParams(), headers); + } + + public RetentionPolicyAssignment getRetentionPolicyAssignmentById( + String retentionPolicyAssignmentId, + GetRetentionPolicyAssignmentByIdQueryParams queryParams, + GetRetentionPolicyAssignmentByIdHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/retention_policy_assignments/", + convertToString(retentionPolicyAssignmentId)), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), RetentionPolicyAssignment.class); + } + + public void deleteRetentionPolicyAssignmentById(String retentionPolicyAssignmentId) { + deleteRetentionPolicyAssignmentById( + retentionPolicyAssignmentId, new DeleteRetentionPolicyAssignmentByIdHeaders()); + } + + public void deleteRetentionPolicyAssignmentById( + String retentionPolicyAssignmentId, DeleteRetentionPolicyAssignmentByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/retention_policy_assignments/", + convertToString(retentionPolicyAssignmentId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public FilesUnderRetention getFilesUnderRetentionPolicyAssignment( + String retentionPolicyAssignmentId) { + return getFilesUnderRetentionPolicyAssignment( + retentionPolicyAssignmentId, + new GetFilesUnderRetentionPolicyAssignmentQueryParams(), + new GetFilesUnderRetentionPolicyAssignmentHeaders()); + } + + public FilesUnderRetention getFilesUnderRetentionPolicyAssignment( + String retentionPolicyAssignmentId, + GetFilesUnderRetentionPolicyAssignmentQueryParams queryParams) { + return getFilesUnderRetentionPolicyAssignment( + retentionPolicyAssignmentId, + queryParams, + new GetFilesUnderRetentionPolicyAssignmentHeaders()); + } + + public FilesUnderRetention getFilesUnderRetentionPolicyAssignment( + String retentionPolicyAssignmentId, GetFilesUnderRetentionPolicyAssignmentHeaders headers) { + return getFilesUnderRetentionPolicyAssignment( + retentionPolicyAssignmentId, + new GetFilesUnderRetentionPolicyAssignmentQueryParams(), + headers); + } + + public FilesUnderRetention getFilesUnderRetentionPolicyAssignment( + String retentionPolicyAssignmentId, + GetFilesUnderRetentionPolicyAssignmentQueryParams queryParams, + GetFilesUnderRetentionPolicyAssignmentHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/retention_policy_assignments/", + convertToString(retentionPolicyAssignmentId), + "/files_under_retention"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FilesUnderRetention.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public RetentionPolicyAssignmentsManager build() { + return new RetentionPolicyAssignmentsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchByMetadataQueryHeaders.java b/src/main/java/com/box/sdkgen/managers/search/SearchByMetadataQueryHeaders.java new file mode 100644 index 000000000..218bcc2b1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/search/SearchByMetadataQueryHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.search; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class SearchByMetadataQueryHeaders { + + public Map extraHeaders; + + public SearchByMetadataQueryHeaders() { + this.extraHeaders = mapOf(); + } + + protected SearchByMetadataQueryHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public SearchByMetadataQueryHeaders build() { + return new SearchByMetadataQueryHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchForContentHeaders.java b/src/main/java/com/box/sdkgen/managers/search/SearchForContentHeaders.java new file mode 100644 index 000000000..6894eb19c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/search/SearchForContentHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.search; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class SearchForContentHeaders { + + public Map extraHeaders; + + public SearchForContentHeaders() { + this.extraHeaders = mapOf(); + } + + protected SearchForContentHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public SearchForContentHeaders build() { + return new SearchForContentHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParams.java b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParams.java new file mode 100644 index 000000000..386f862d1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParams.java @@ -0,0 +1,407 @@ +package com.box.sdkgen.managers.search; + +import com.box.sdkgen.schemas.metadatafilter.MetadataFilter; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +public class SearchForContentQueryParams { + + public String query; + + public EnumWrapper scope; + + public List fileExtensions; + + public List createdAtRange; + + public List updatedAtRange; + + public List sizeRange; + + public List ownerUserIds; + + public List recentUpdaterUserIds; + + public List ancestorFolderIds; + + public List> contentTypes; + + public EnumWrapper type; + + public EnumWrapper trashContent; + + public List mdfilters; + + public EnumWrapper sort; + + public EnumWrapper direction; + + public Long limit; + + public Boolean includeRecentSharedLinks; + + public List fields; + + public Long offset; + + public List deletedUserIds; + + public List deletedAtRange; + + public SearchForContentQueryParams() {} + + protected SearchForContentQueryParams(Builder builder) { + this.query = builder.query; + this.scope = builder.scope; + this.fileExtensions = builder.fileExtensions; + this.createdAtRange = builder.createdAtRange; + this.updatedAtRange = builder.updatedAtRange; + this.sizeRange = builder.sizeRange; + this.ownerUserIds = builder.ownerUserIds; + this.recentUpdaterUserIds = builder.recentUpdaterUserIds; + this.ancestorFolderIds = builder.ancestorFolderIds; + this.contentTypes = builder.contentTypes; + this.type = builder.type; + this.trashContent = builder.trashContent; + this.mdfilters = builder.mdfilters; + this.sort = builder.sort; + this.direction = builder.direction; + this.limit = builder.limit; + this.includeRecentSharedLinks = builder.includeRecentSharedLinks; + this.fields = builder.fields; + this.offset = builder.offset; + this.deletedUserIds = builder.deletedUserIds; + this.deletedAtRange = builder.deletedAtRange; + } + + public String getQuery() { + return query; + } + + public EnumWrapper getScope() { + return scope; + } + + public List getFileExtensions() { + return fileExtensions; + } + + public List getCreatedAtRange() { + return createdAtRange; + } + + public List getUpdatedAtRange() { + return updatedAtRange; + } + + public List getSizeRange() { + return sizeRange; + } + + public List getOwnerUserIds() { + return ownerUserIds; + } + + public List getRecentUpdaterUserIds() { + return recentUpdaterUserIds; + } + + public List getAncestorFolderIds() { + return ancestorFolderIds; + } + + public List> getContentTypes() { + return contentTypes; + } + + public EnumWrapper getType() { + return type; + } + + public EnumWrapper getTrashContent() { + return trashContent; + } + + public List getMdfilters() { + return mdfilters; + } + + public EnumWrapper getSort() { + return sort; + } + + public EnumWrapper getDirection() { + return direction; + } + + public Long getLimit() { + return limit; + } + + public Boolean getIncludeRecentSharedLinks() { + return includeRecentSharedLinks; + } + + public List getFields() { + return fields; + } + + public Long getOffset() { + return offset; + } + + public List getDeletedUserIds() { + return deletedUserIds; + } + + public List getDeletedAtRange() { + return deletedAtRange; + } + + public static class Builder { + + protected String query; + + protected EnumWrapper scope; + + protected List fileExtensions; + + protected List createdAtRange; + + protected List updatedAtRange; + + protected List sizeRange; + + protected List ownerUserIds; + + protected List recentUpdaterUserIds; + + protected List ancestorFolderIds; + + protected List> contentTypes; + + protected EnumWrapper type; + + protected EnumWrapper trashContent; + + protected List mdfilters; + + protected EnumWrapper sort; + + protected EnumWrapper direction; + + protected Long limit; + + protected Boolean includeRecentSharedLinks; + + protected List fields; + + protected Long offset; + + protected List deletedUserIds; + + protected List deletedAtRange; + + public Builder query(String query) { + this.query = query; + return this; + } + + public Builder scope(SearchForContentQueryParamsScopeField scope) { + this.scope = new EnumWrapper(scope); + return this; + } + + public Builder scope(EnumWrapper scope) { + this.scope = scope; + return this; + } + + public Builder fileExtensions(List fileExtensions) { + this.fileExtensions = fileExtensions; + return this; + } + + public Builder createdAtRange(List createdAtRange) { + this.createdAtRange = createdAtRange; + return this; + } + + public Builder updatedAtRange(List updatedAtRange) { + this.updatedAtRange = updatedAtRange; + return this; + } + + public Builder sizeRange(List sizeRange) { + this.sizeRange = sizeRange; + return this; + } + + public Builder ownerUserIds(List ownerUserIds) { + this.ownerUserIds = ownerUserIds; + return this; + } + + public Builder recentUpdaterUserIds(List recentUpdaterUserIds) { + this.recentUpdaterUserIds = recentUpdaterUserIds; + return this; + } + + public Builder ancestorFolderIds(List ancestorFolderIds) { + this.ancestorFolderIds = ancestorFolderIds; + return this; + } + + public Builder contentTypes(List contentTypes) { + this.contentTypes = + EnumWrapper.wrapValuableEnumList( + contentTypes, SearchForContentQueryParamsContentTypesField.class); + return this; + } + + public Builder type(SearchForContentQueryParamsTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder trashContent(SearchForContentQueryParamsTrashContentField trashContent) { + this.trashContent = + new EnumWrapper(trashContent); + return this; + } + + public Builder trashContent( + EnumWrapper trashContent) { + this.trashContent = trashContent; + return this; + } + + public Builder mdfilters(List mdfilters) { + this.mdfilters = mdfilters; + return this; + } + + public Builder sort(SearchForContentQueryParamsSortField sort) { + this.sort = new EnumWrapper(sort); + return this; + } + + public Builder sort(EnumWrapper sort) { + this.sort = sort; + return this; + } + + public Builder direction(SearchForContentQueryParamsDirectionField direction) { + this.direction = new EnumWrapper(direction); + return this; + } + + public Builder direction(EnumWrapper direction) { + this.direction = direction; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder includeRecentSharedLinks(Boolean includeRecentSharedLinks) { + this.includeRecentSharedLinks = includeRecentSharedLinks; + return this; + } + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public Builder deletedUserIds(List deletedUserIds) { + this.deletedUserIds = deletedUserIds; + return this; + } + + public Builder deletedAtRange(List deletedAtRange) { + this.deletedAtRange = deletedAtRange; + return this; + } + + public SearchForContentQueryParams build() { + return new SearchForContentQueryParams(this); + } + } + + public static class ContentTypesDeserializer + extends JsonDeserializer>> { + + public final JsonDeserializer> + elementDeserializer; + + public ContentTypesDeserializer() { + super(); + this.elementDeserializer = + new SearchForContentQueryParamsContentTypesField + .SearchForContentQueryParamsContentTypesFieldDeserializer(); + } + + @Override + public List> deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + JsonNode node = p.getCodec().readTree(p); + List> elements = new ArrayList<>(); + for (JsonNode item : node) { + JsonParser pa = item.traverse(p.getCodec()); + pa.nextToken(); + elements.add(elementDeserializer.deserialize(pa, ctxt)); + } + return elements; + } + } + + public static class ContentTypesSerializer + extends JsonSerializer>> { + + public final JsonSerializer> + elementSerializer; + + public ContentTypesSerializer() { + super(); + this.elementSerializer = + new SearchForContentQueryParamsContentTypesField + .SearchForContentQueryParamsContentTypesFieldSerializer(); + } + + @Override + public void serialize( + List> value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeStartArray(); + for (EnumWrapper item : value) { + elementSerializer.serialize(item, gen, serializers); + } + gen.writeEndArray(); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsContentTypesField.java b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsContentTypesField.java new file mode 100644 index 000000000..d4c7a02ec --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsContentTypesField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.managers.search; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SearchForContentQueryParamsContentTypesField implements Valuable { + NAME("name"), + DESCRIPTION("description"), + FILE_CONTENT("file_content"), + COMMENTS("comments"), + TAG("tag"); + + private final String value; + + SearchForContentQueryParamsContentTypesField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SearchForContentQueryParamsContentTypesFieldDeserializer + extends JsonDeserializer> { + + public SearchForContentQueryParamsContentTypesFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SearchForContentQueryParamsContentTypesField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SearchForContentQueryParamsContentTypesFieldSerializer + extends JsonSerializer> { + + public SearchForContentQueryParamsContentTypesFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsDirectionField.java b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsDirectionField.java new file mode 100644 index 000000000..88fecc208 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsDirectionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.search; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SearchForContentQueryParamsDirectionField implements Valuable { + DESC("DESC"), + ASC("ASC"); + + private final String value; + + SearchForContentQueryParamsDirectionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SearchForContentQueryParamsDirectionFieldDeserializer + extends JsonDeserializer> { + + public SearchForContentQueryParamsDirectionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SearchForContentQueryParamsDirectionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SearchForContentQueryParamsDirectionFieldSerializer + extends JsonSerializer> { + + public SearchForContentQueryParamsDirectionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsScopeField.java b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsScopeField.java new file mode 100644 index 000000000..6c6134a1d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsScopeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.search; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SearchForContentQueryParamsScopeField implements Valuable { + USER_CONTENT("user_content"), + ENTERPRISE_CONTENT("enterprise_content"); + + private final String value; + + SearchForContentQueryParamsScopeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SearchForContentQueryParamsScopeFieldDeserializer + extends JsonDeserializer> { + + public SearchForContentQueryParamsScopeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SearchForContentQueryParamsScopeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SearchForContentQueryParamsScopeFieldSerializer + extends JsonSerializer> { + + public SearchForContentQueryParamsScopeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsSortField.java b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsSortField.java new file mode 100644 index 000000000..6ab40b0ea --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsSortField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.search; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SearchForContentQueryParamsSortField implements Valuable { + MODIFIED_AT("modified_at"), + RELEVANCE("relevance"); + + private final String value; + + SearchForContentQueryParamsSortField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SearchForContentQueryParamsSortFieldDeserializer + extends JsonDeserializer> { + + public SearchForContentQueryParamsSortFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SearchForContentQueryParamsSortField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SearchForContentQueryParamsSortFieldSerializer + extends JsonSerializer> { + + public SearchForContentQueryParamsSortFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsTrashContentField.java b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsTrashContentField.java new file mode 100644 index 000000000..64990c84e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsTrashContentField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.search; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SearchForContentQueryParamsTrashContentField implements Valuable { + NON_TRASHED_ONLY("non_trashed_only"), + TRASHED_ONLY("trashed_only"), + ALL_ITEMS("all_items"); + + private final String value; + + SearchForContentQueryParamsTrashContentField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SearchForContentQueryParamsTrashContentFieldDeserializer + extends JsonDeserializer> { + + public SearchForContentQueryParamsTrashContentFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SearchForContentQueryParamsTrashContentField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SearchForContentQueryParamsTrashContentFieldSerializer + extends JsonSerializer> { + + public SearchForContentQueryParamsTrashContentFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsTypeField.java b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsTypeField.java new file mode 100644 index 000000000..435c29521 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsTypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.search; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SearchForContentQueryParamsTypeField implements Valuable { + FILE("file"), + FOLDER("folder"), + WEB_LINK("web_link"); + + private final String value; + + SearchForContentQueryParamsTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SearchForContentQueryParamsTypeFieldDeserializer + extends JsonDeserializer> { + + public SearchForContentQueryParamsTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SearchForContentQueryParamsTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SearchForContentQueryParamsTypeFieldSerializer + extends JsonSerializer> { + + public SearchForContentQueryParamsTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchManager.java b/src/main/java/com/box/sdkgen/managers/search/SearchManager.java new file mode 100644 index 000000000..e2ed10e44 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/search/SearchManager.java @@ -0,0 +1,157 @@ +package com.box.sdkgen.managers.search; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.metadataquery.MetadataQuery; +import com.box.sdkgen.schemas.metadataqueryresults.MetadataQueryResults; +import com.box.sdkgen.schemas.searchresultsorsearchresultswithsharedlinks.SearchResultsOrSearchResultsWithSharedLinks; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class SearchManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public SearchManager() { + this.networkSession = new NetworkSession(); + } + + protected SearchManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public MetadataQueryResults searchByMetadataQuery(MetadataQuery requestBody) { + return searchByMetadataQuery(requestBody, new SearchByMetadataQueryHeaders()); + } + + public MetadataQueryResults searchByMetadataQuery( + MetadataQuery requestBody, SearchByMetadataQueryHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_queries/execute_read"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataQueryResults.class); + } + + public SearchResultsOrSearchResultsWithSharedLinks searchForContent() { + return searchForContent(new SearchForContentQueryParams(), new SearchForContentHeaders()); + } + + public SearchResultsOrSearchResultsWithSharedLinks searchForContent( + SearchForContentQueryParams queryParams) { + return searchForContent(queryParams, new SearchForContentHeaders()); + } + + public SearchResultsOrSearchResultsWithSharedLinks searchForContent( + SearchForContentHeaders headers) { + return searchForContent(new SearchForContentQueryParams(), headers); + } + + public SearchResultsOrSearchResultsWithSharedLinks searchForContent( + SearchForContentQueryParams queryParams, SearchForContentHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("query", convertToString(queryParams.getQuery())), + entryOf("scope", convertToString(queryParams.getScope())), + entryOf("file_extensions", convertToString(queryParams.getFileExtensions())), + entryOf("created_at_range", convertToString(queryParams.getCreatedAtRange())), + entryOf("updated_at_range", convertToString(queryParams.getUpdatedAtRange())), + entryOf("size_range", convertToString(queryParams.getSizeRange())), + entryOf("owner_user_ids", convertToString(queryParams.getOwnerUserIds())), + entryOf( + "recent_updater_user_ids", + convertToString(queryParams.getRecentUpdaterUserIds())), + entryOf("ancestor_folder_ids", convertToString(queryParams.getAncestorFolderIds())), + entryOf("content_types", convertToString(queryParams.getContentTypes())), + entryOf("type", convertToString(queryParams.getType())), + entryOf("trash_content", convertToString(queryParams.getTrashContent())), + entryOf("mdfilters", convertToString(queryParams.getMdfilters())), + entryOf("sort", convertToString(queryParams.getSort())), + entryOf("direction", convertToString(queryParams.getDirection())), + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf( + "include_recent_shared_links", + convertToString(queryParams.getIncludeRecentSharedLinks())), + entryOf("fields", convertToString(queryParams.getFields())), + entryOf("offset", convertToString(queryParams.getOffset())), + entryOf("deleted_user_ids", convertToString(queryParams.getDeletedUserIds())), + entryOf("deleted_at_range", convertToString(queryParams.getDeletedAtRange())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/search"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize( + response.getData(), SearchResultsOrSearchResultsWithSharedLinks.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public SearchManager build() { + return new SearchManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sessiontermination/SessionTerminationManager.java b/src/main/java/com/box/sdkgen/managers/sessiontermination/SessionTerminationManager.java new file mode 100644 index 000000000..9fb5b72bb --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sessiontermination/SessionTerminationManager.java @@ -0,0 +1,119 @@ +package com.box.sdkgen.managers.sessiontermination; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.sessionterminationmessage.SessionTerminationMessage; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class SessionTerminationManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public SessionTerminationManager() { + this.networkSession = new NetworkSession(); + } + + protected SessionTerminationManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public SessionTerminationMessage terminateUsersSessions( + TerminateUsersSessionsRequestBody requestBody) { + return terminateUsersSessions(requestBody, new TerminateUsersSessionsHeaders()); + } + + public SessionTerminationMessage terminateUsersSessions( + TerminateUsersSessionsRequestBody requestBody, TerminateUsersSessionsHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/users/terminate_sessions"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), SessionTerminationMessage.class); + } + + public SessionTerminationMessage terminateGroupsSessions( + TerminateGroupsSessionsRequestBody requestBody) { + return terminateGroupsSessions(requestBody, new TerminateGroupsSessionsHeaders()); + } + + public SessionTerminationMessage terminateGroupsSessions( + TerminateGroupsSessionsRequestBody requestBody, TerminateGroupsSessionsHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/groups/terminate_sessions"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), SessionTerminationMessage.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public SessionTerminationManager build() { + return new SessionTerminationManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateGroupsSessionsHeaders.java b/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateGroupsSessionsHeaders.java new file mode 100644 index 000000000..32df8b27b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateGroupsSessionsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.sessiontermination; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class TerminateGroupsSessionsHeaders { + + public Map extraHeaders; + + public TerminateGroupsSessionsHeaders() { + this.extraHeaders = mapOf(); + } + + protected TerminateGroupsSessionsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public TerminateGroupsSessionsHeaders build() { + return new TerminateGroupsSessionsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateGroupsSessionsRequestBody.java b/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateGroupsSessionsRequestBody.java new file mode 100644 index 000000000..5374e8584 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateGroupsSessionsRequestBody.java @@ -0,0 +1,45 @@ +package com.box.sdkgen.managers.sessiontermination; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TerminateGroupsSessionsRequestBody extends SerializableObject { + + @JsonProperty("group_ids") + protected final List groupIds; + + public TerminateGroupsSessionsRequestBody(@JsonProperty("group_ids") List groupIds) { + super(); + this.groupIds = groupIds; + } + + public List getGroupIds() { + return groupIds; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TerminateGroupsSessionsRequestBody casted = (TerminateGroupsSessionsRequestBody) o; + return Objects.equals(groupIds, casted.groupIds); + } + + @Override + public int hashCode() { + return Objects.hash(groupIds); + } + + @Override + public String toString() { + return "TerminateGroupsSessionsRequestBody{" + "groupIds='" + groupIds + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateUsersSessionsHeaders.java b/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateUsersSessionsHeaders.java new file mode 100644 index 000000000..652d5d926 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateUsersSessionsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.sessiontermination; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class TerminateUsersSessionsHeaders { + + public Map extraHeaders; + + public TerminateUsersSessionsHeaders() { + this.extraHeaders = mapOf(); + } + + protected TerminateUsersSessionsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public TerminateUsersSessionsHeaders build() { + return new TerminateUsersSessionsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateUsersSessionsRequestBody.java b/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateUsersSessionsRequestBody.java new file mode 100644 index 000000000..eab49e34f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateUsersSessionsRequestBody.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.sessiontermination; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TerminateUsersSessionsRequestBody extends SerializableObject { + + @JsonProperty("user_ids") + protected final List userIds; + + @JsonProperty("user_logins") + protected final List userLogins; + + public TerminateUsersSessionsRequestBody( + @JsonProperty("user_ids") List userIds, + @JsonProperty("user_logins") List userLogins) { + super(); + this.userIds = userIds; + this.userLogins = userLogins; + } + + public List getUserIds() { + return userIds; + } + + public List getUserLogins() { + return userLogins; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TerminateUsersSessionsRequestBody casted = (TerminateUsersSessionsRequestBody) o; + return Objects.equals(userIds, casted.userIds) && Objects.equals(userLogins, casted.userLogins); + } + + @Override + public int hashCode() { + return Objects.hash(userIds, userLogins); + } + + @Override + public String toString() { + return "TerminateUsersSessionsRequestBody{" + + "userIds='" + + userIds + + '\'' + + ", " + + "userLogins='" + + userLogins + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksappitems/FindAppItemForSharedLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksappitems/FindAppItemForSharedLinkHeaders.java new file mode 100644 index 000000000..d7ec52e83 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksappitems/FindAppItemForSharedLinkHeaders.java @@ -0,0 +1,51 @@ +package com.box.sdkgen.managers.sharedlinksappitems; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class FindAppItemForSharedLinkHeaders { + + public final String boxapi; + + public Map extraHeaders; + + public FindAppItemForSharedLinkHeaders(String boxapi) { + this.boxapi = boxapi; + this.extraHeaders = mapOf(); + } + + protected FindAppItemForSharedLinkHeaders(Builder builder) { + this.boxapi = builder.boxapi; + this.extraHeaders = builder.extraHeaders; + } + + public String getBoxapi() { + return boxapi; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected final String boxapi; + + protected Map extraHeaders; + + public Builder(String boxapi) { + this.boxapi = boxapi; + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public FindAppItemForSharedLinkHeaders build() { + return new FindAppItemForSharedLinkHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksappitems/SharedLinksAppItemsManager.java b/src/main/java/com/box/sdkgen/managers/sharedlinksappitems/SharedLinksAppItemsManager.java new file mode 100644 index 000000000..a9c39b60c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksappitems/SharedLinksAppItemsManager.java @@ -0,0 +1,89 @@ +package com.box.sdkgen.managers.sharedlinksappitems; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.appitem.AppItem; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class SharedLinksAppItemsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public SharedLinksAppItemsManager() { + this.networkSession = new NetworkSession(); + } + + protected SharedLinksAppItemsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public AppItem findAppItemForSharedLink(FindAppItemForSharedLinkHeaders headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("boxapi", convertToString(headers.getBoxapi()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shared_items#app_items"), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), AppItem.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public SharedLinksAppItemsManager build() { + return new SharedLinksAppItemsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileHeaders.java new file mode 100644 index 000000000..eb2cb8311 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.sharedlinksfiles; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class AddShareLinkToFileHeaders { + + public Map extraHeaders; + + public AddShareLinkToFileHeaders() { + this.extraHeaders = mapOf(); + } + + protected AddShareLinkToFileHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public AddShareLinkToFileHeaders build() { + return new AddShareLinkToFileHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileQueryParams.java new file mode 100644 index 000000000..18da5322a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileQueryParams.java @@ -0,0 +1,14 @@ +package com.box.sdkgen.managers.sharedlinksfiles; + +public class AddShareLinkToFileQueryParams { + + public final String fields; + + public AddShareLinkToFileQueryParams(String fields) { + this.fields = fields; + } + + public String getFields() { + return fields; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBody.java new file mode 100644 index 000000000..00b62507f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBody.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.sharedlinksfiles; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AddShareLinkToFileRequestBody extends SerializableObject { + + @JsonProperty("shared_link") + protected AddShareLinkToFileRequestBodySharedLinkField sharedLink; + + public AddShareLinkToFileRequestBody() { + super(); + } + + protected AddShareLinkToFileRequestBody(Builder builder) { + super(); + this.sharedLink = builder.sharedLink; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public AddShareLinkToFileRequestBodySharedLinkField getSharedLink() { + return sharedLink; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddShareLinkToFileRequestBody casted = (AddShareLinkToFileRequestBody) o; + return Objects.equals(sharedLink, casted.sharedLink); + } + + @Override + public int hashCode() { + return Objects.hash(sharedLink); + } + + @Override + public String toString() { + return "AddShareLinkToFileRequestBody{" + "sharedLink='" + sharedLink + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected AddShareLinkToFileRequestBodySharedLinkField sharedLink; + + public Builder sharedLink(AddShareLinkToFileRequestBodySharedLinkField sharedLink) { + this.sharedLink = sharedLink; + return this; + } + + public AddShareLinkToFileRequestBody build() { + return new AddShareLinkToFileRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkAccessField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkAccessField.java new file mode 100644 index 000000000..55f610d8d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkAccessField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.sharedlinksfiles; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AddShareLinkToFileRequestBodySharedLinkAccessField implements Valuable { + OPEN("open"), + COMPANY("company"), + COLLABORATORS("collaborators"); + + private final String value; + + AddShareLinkToFileRequestBodySharedLinkAccessField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AddShareLinkToFileRequestBodySharedLinkAccessFieldDeserializer + extends JsonDeserializer> { + + public AddShareLinkToFileRequestBodySharedLinkAccessFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AddShareLinkToFileRequestBodySharedLinkAccessField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AddShareLinkToFileRequestBodySharedLinkAccessFieldSerializer + extends JsonSerializer> { + + public AddShareLinkToFileRequestBodySharedLinkAccessFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkField.java new file mode 100644 index 000000000..25ae2cc86 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkField.java @@ -0,0 +1,169 @@ +package com.box.sdkgen.managers.sharedlinksfiles; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AddShareLinkToFileRequestBodySharedLinkField extends SerializableObject { + + @JsonDeserialize( + using = + AddShareLinkToFileRequestBodySharedLinkAccessField + .AddShareLinkToFileRequestBodySharedLinkAccessFieldDeserializer.class) + @JsonSerialize( + using = + AddShareLinkToFileRequestBodySharedLinkAccessField + .AddShareLinkToFileRequestBodySharedLinkAccessFieldSerializer.class) + protected EnumWrapper access; + + @Nullable protected String password; + + @JsonProperty("vanity_name") + protected String vanityName; + + @JsonProperty("unshared_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date unsharedAt; + + protected AddShareLinkToFileRequestBodySharedLinkPermissionsField permissions; + + public AddShareLinkToFileRequestBodySharedLinkField() { + super(); + } + + protected AddShareLinkToFileRequestBodySharedLinkField(Builder builder) { + super(); + this.access = builder.access; + this.password = builder.password; + this.vanityName = builder.vanityName; + this.unsharedAt = builder.unsharedAt; + this.permissions = builder.permissions; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getAccess() { + return access; + } + + public String getPassword() { + return password; + } + + public String getVanityName() { + return vanityName; + } + + public Date getUnsharedAt() { + return unsharedAt; + } + + public AddShareLinkToFileRequestBodySharedLinkPermissionsField getPermissions() { + return permissions; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddShareLinkToFileRequestBodySharedLinkField casted = + (AddShareLinkToFileRequestBodySharedLinkField) o; + return Objects.equals(access, casted.access) + && Objects.equals(password, casted.password) + && Objects.equals(vanityName, casted.vanityName) + && Objects.equals(unsharedAt, casted.unsharedAt) + && Objects.equals(permissions, casted.permissions); + } + + @Override + public int hashCode() { + return Objects.hash(access, password, vanityName, unsharedAt, permissions); + } + + @Override + public String toString() { + return "AddShareLinkToFileRequestBodySharedLinkField{" + + "access='" + + access + + '\'' + + ", " + + "password='" + + password + + '\'' + + ", " + + "vanityName='" + + vanityName + + '\'' + + ", " + + "unsharedAt='" + + unsharedAt + + '\'' + + ", " + + "permissions='" + + permissions + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper access; + + protected String password; + + protected String vanityName; + + protected Date unsharedAt; + + protected AddShareLinkToFileRequestBodySharedLinkPermissionsField permissions; + + public Builder access(AddShareLinkToFileRequestBodySharedLinkAccessField access) { + this.access = new EnumWrapper(access); + return this; + } + + public Builder access(EnumWrapper access) { + this.access = access; + return this; + } + + public Builder password(String password) { + this.password = password; + this.markNullableFieldAsSet("password"); + return this; + } + + public Builder vanityName(String vanityName) { + this.vanityName = vanityName; + return this; + } + + public Builder unsharedAt(Date unsharedAt) { + this.unsharedAt = unsharedAt; + return this; + } + + public Builder permissions( + AddShareLinkToFileRequestBodySharedLinkPermissionsField permissions) { + this.permissions = permissions; + return this; + } + + public AddShareLinkToFileRequestBodySharedLinkField build() { + return new AddShareLinkToFileRequestBodySharedLinkField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkPermissionsField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkPermissionsField.java new file mode 100644 index 000000000..bd597948c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkPermissionsField.java @@ -0,0 +1,109 @@ +package com.box.sdkgen.managers.sharedlinksfiles; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AddShareLinkToFileRequestBodySharedLinkPermissionsField extends SerializableObject { + + @JsonProperty("can_download") + protected Boolean canDownload; + + @JsonProperty("can_preview") + protected Boolean canPreview; + + @JsonProperty("can_edit") + protected Boolean canEdit; + + public AddShareLinkToFileRequestBodySharedLinkPermissionsField() { + super(); + } + + protected AddShareLinkToFileRequestBodySharedLinkPermissionsField(Builder builder) { + super(); + this.canDownload = builder.canDownload; + this.canPreview = builder.canPreview; + this.canEdit = builder.canEdit; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getCanDownload() { + return canDownload; + } + + public Boolean getCanPreview() { + return canPreview; + } + + public Boolean getCanEdit() { + return canEdit; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddShareLinkToFileRequestBodySharedLinkPermissionsField casted = + (AddShareLinkToFileRequestBodySharedLinkPermissionsField) o; + return Objects.equals(canDownload, casted.canDownload) + && Objects.equals(canPreview, casted.canPreview) + && Objects.equals(canEdit, casted.canEdit); + } + + @Override + public int hashCode() { + return Objects.hash(canDownload, canPreview, canEdit); + } + + @Override + public String toString() { + return "AddShareLinkToFileRequestBodySharedLinkPermissionsField{" + + "canDownload='" + + canDownload + + '\'' + + ", " + + "canPreview='" + + canPreview + + '\'' + + ", " + + "canEdit='" + + canEdit + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean canDownload; + + protected Boolean canPreview; + + protected Boolean canEdit; + + public Builder canDownload(Boolean canDownload) { + this.canDownload = canDownload; + return this; + } + + public Builder canPreview(Boolean canPreview) { + this.canPreview = canPreview; + return this; + } + + public Builder canEdit(Boolean canEdit) { + this.canEdit = canEdit; + return this; + } + + public AddShareLinkToFileRequestBodySharedLinkPermissionsField build() { + return new AddShareLinkToFileRequestBodySharedLinkPermissionsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/FindFileForSharedLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/FindFileForSharedLinkHeaders.java new file mode 100644 index 000000000..24b2f99b8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/FindFileForSharedLinkHeaders.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.managers.sharedlinksfiles; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class FindFileForSharedLinkHeaders { + + public String ifNoneMatch; + + public final String boxapi; + + public Map extraHeaders; + + public FindFileForSharedLinkHeaders(String boxapi) { + this.boxapi = boxapi; + this.extraHeaders = mapOf(); + } + + protected FindFileForSharedLinkHeaders(Builder builder) { + this.ifNoneMatch = builder.ifNoneMatch; + this.boxapi = builder.boxapi; + this.extraHeaders = builder.extraHeaders; + } + + public String getIfNoneMatch() { + return ifNoneMatch; + } + + public String getBoxapi() { + return boxapi; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected String ifNoneMatch; + + protected final String boxapi; + + protected Map extraHeaders; + + public Builder(String boxapi) { + this.boxapi = boxapi; + this.extraHeaders = mapOf(); + } + + public Builder ifNoneMatch(String ifNoneMatch) { + this.ifNoneMatch = ifNoneMatch; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public FindFileForSharedLinkHeaders build() { + return new FindFileForSharedLinkHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/FindFileForSharedLinkQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/FindFileForSharedLinkQueryParams.java new file mode 100644 index 000000000..b7d983870 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/FindFileForSharedLinkQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.sharedlinksfiles; + +import java.util.List; + +public class FindFileForSharedLinkQueryParams { + + public List fields; + + public FindFileForSharedLinkQueryParams() {} + + protected FindFileForSharedLinkQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public FindFileForSharedLinkQueryParams build() { + return new FindFileForSharedLinkQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/GetSharedLinkForFileHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/GetSharedLinkForFileHeaders.java new file mode 100644 index 000000000..da37692c8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/GetSharedLinkForFileHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.sharedlinksfiles; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetSharedLinkForFileHeaders { + + public Map extraHeaders; + + public GetSharedLinkForFileHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetSharedLinkForFileHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetSharedLinkForFileHeaders build() { + return new GetSharedLinkForFileHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/GetSharedLinkForFileQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/GetSharedLinkForFileQueryParams.java new file mode 100644 index 000000000..5d5f4cc74 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/GetSharedLinkForFileQueryParams.java @@ -0,0 +1,14 @@ +package com.box.sdkgen.managers.sharedlinksfiles; + +public class GetSharedLinkForFileQueryParams { + + public final String fields; + + public GetSharedLinkForFileQueryParams(String fields) { + this.fields = fields; + } + + public String getFields() { + return fields; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileHeaders.java new file mode 100644 index 000000000..ff7937c3d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.sharedlinksfiles; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class RemoveSharedLinkFromFileHeaders { + + public Map extraHeaders; + + public RemoveSharedLinkFromFileHeaders() { + this.extraHeaders = mapOf(); + } + + protected RemoveSharedLinkFromFileHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public RemoveSharedLinkFromFileHeaders build() { + return new RemoveSharedLinkFromFileHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileQueryParams.java new file mode 100644 index 000000000..e0bf0f280 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileQueryParams.java @@ -0,0 +1,14 @@ +package com.box.sdkgen.managers.sharedlinksfiles; + +public class RemoveSharedLinkFromFileQueryParams { + + public final String fields; + + public RemoveSharedLinkFromFileQueryParams(String fields) { + this.fields = fields; + } + + public String getFields() { + return fields; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileRequestBody.java new file mode 100644 index 000000000..feefe7b81 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileRequestBody.java @@ -0,0 +1,67 @@ +package com.box.sdkgen.managers.sharedlinksfiles; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class RemoveSharedLinkFromFileRequestBody extends SerializableObject { + + @JsonProperty("shared_link") + @Nullable + protected RemoveSharedLinkFromFileRequestBodySharedLinkField sharedLink; + + public RemoveSharedLinkFromFileRequestBody() { + super(); + } + + protected RemoveSharedLinkFromFileRequestBody(Builder builder) { + super(); + this.sharedLink = builder.sharedLink; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public RemoveSharedLinkFromFileRequestBodySharedLinkField getSharedLink() { + return sharedLink; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RemoveSharedLinkFromFileRequestBody casted = (RemoveSharedLinkFromFileRequestBody) o; + return Objects.equals(sharedLink, casted.sharedLink); + } + + @Override + public int hashCode() { + return Objects.hash(sharedLink); + } + + @Override + public String toString() { + return "RemoveSharedLinkFromFileRequestBody{" + "sharedLink='" + sharedLink + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected RemoveSharedLinkFromFileRequestBodySharedLinkField sharedLink; + + public Builder sharedLink(RemoveSharedLinkFromFileRequestBodySharedLinkField sharedLink) { + this.sharedLink = sharedLink; + this.markNullableFieldAsSet("shared_link"); + return this; + } + + public RemoveSharedLinkFromFileRequestBody build() { + return new RemoveSharedLinkFromFileRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileRequestBodySharedLinkField.java new file mode 100644 index 000000000..77808b394 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileRequestBodySharedLinkField.java @@ -0,0 +1,17 @@ +package com.box.sdkgen.managers.sharedlinksfiles; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; + +@JsonFilter("nullablePropertyFilter") +public class RemoveSharedLinkFromFileRequestBodySharedLinkField extends SerializableObject { + + public RemoveSharedLinkFromFileRequestBodySharedLinkField() { + super(); + } + + @Override + public String toString() { + return "RemoveSharedLinkFromFileRequestBodySharedLinkField{" + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/SharedLinksFilesManager.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/SharedLinksFilesManager.java new file mode 100644 index 000000000..aa1fcd233 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/SharedLinksFilesManager.java @@ -0,0 +1,291 @@ +package com.box.sdkgen.managers.sharedlinksfiles; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class SharedLinksFilesManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public SharedLinksFilesManager() { + this.networkSession = new NetworkSession(); + } + + protected SharedLinksFilesManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public FileFull findFileForSharedLink(FindFileForSharedLinkHeaders headers) { + return findFileForSharedLink(new FindFileForSharedLinkQueryParams(), headers); + } + + public FileFull findFileForSharedLink( + FindFileForSharedLinkQueryParams queryParams, FindFileForSharedLinkHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf( + entryOf("if-none-match", convertToString(headers.getIfNoneMatch())), + entryOf("boxapi", convertToString(headers.getBoxapi()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shared_items"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FileFull.class); + } + + public FileFull getSharedLinkForFile(String fileId, GetSharedLinkForFileQueryParams queryParams) { + return getSharedLinkForFile(fileId, queryParams, new GetSharedLinkForFileHeaders()); + } + + public FileFull getSharedLinkForFile( + String fileId, + GetSharedLinkForFileQueryParams queryParams, + GetSharedLinkForFileHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "#get_shared_link"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FileFull.class); + } + + public FileFull addShareLinkToFile(String fileId, AddShareLinkToFileQueryParams queryParams) { + return addShareLinkToFile( + fileId, new AddShareLinkToFileRequestBody(), queryParams, new AddShareLinkToFileHeaders()); + } + + public FileFull addShareLinkToFile( + String fileId, + AddShareLinkToFileRequestBody requestBody, + AddShareLinkToFileQueryParams queryParams) { + return addShareLinkToFile(fileId, requestBody, queryParams, new AddShareLinkToFileHeaders()); + } + + public FileFull addShareLinkToFile( + String fileId, AddShareLinkToFileQueryParams queryParams, AddShareLinkToFileHeaders headers) { + return addShareLinkToFile(fileId, new AddShareLinkToFileRequestBody(), queryParams, headers); + } + + public FileFull addShareLinkToFile( + String fileId, + AddShareLinkToFileRequestBody requestBody, + AddShareLinkToFileQueryParams queryParams, + AddShareLinkToFileHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "#add_shared_link"), + "PUT") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FileFull.class); + } + + public FileFull updateSharedLinkOnFile( + String fileId, UpdateSharedLinkOnFileQueryParams queryParams) { + return updateSharedLinkOnFile( + fileId, + new UpdateSharedLinkOnFileRequestBody(), + queryParams, + new UpdateSharedLinkOnFileHeaders()); + } + + public FileFull updateSharedLinkOnFile( + String fileId, + UpdateSharedLinkOnFileRequestBody requestBody, + UpdateSharedLinkOnFileQueryParams queryParams) { + return updateSharedLinkOnFile( + fileId, requestBody, queryParams, new UpdateSharedLinkOnFileHeaders()); + } + + public FileFull updateSharedLinkOnFile( + String fileId, + UpdateSharedLinkOnFileQueryParams queryParams, + UpdateSharedLinkOnFileHeaders headers) { + return updateSharedLinkOnFile( + fileId, new UpdateSharedLinkOnFileRequestBody(), queryParams, headers); + } + + public FileFull updateSharedLinkOnFile( + String fileId, + UpdateSharedLinkOnFileRequestBody requestBody, + UpdateSharedLinkOnFileQueryParams queryParams, + UpdateSharedLinkOnFileHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "#update_shared_link"), + "PUT") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FileFull.class); + } + + public FileFull removeSharedLinkFromFile( + String fileId, RemoveSharedLinkFromFileQueryParams queryParams) { + return removeSharedLinkFromFile( + fileId, + new RemoveSharedLinkFromFileRequestBody(), + queryParams, + new RemoveSharedLinkFromFileHeaders()); + } + + public FileFull removeSharedLinkFromFile( + String fileId, + RemoveSharedLinkFromFileRequestBody requestBody, + RemoveSharedLinkFromFileQueryParams queryParams) { + return removeSharedLinkFromFile( + fileId, requestBody, queryParams, new RemoveSharedLinkFromFileHeaders()); + } + + public FileFull removeSharedLinkFromFile( + String fileId, + RemoveSharedLinkFromFileQueryParams queryParams, + RemoveSharedLinkFromFileHeaders headers) { + return removeSharedLinkFromFile( + fileId, new RemoveSharedLinkFromFileRequestBody(), queryParams, headers); + } + + public FileFull removeSharedLinkFromFile( + String fileId, + RemoveSharedLinkFromFileRequestBody requestBody, + RemoveSharedLinkFromFileQueryParams queryParams, + RemoveSharedLinkFromFileHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "#remove_shared_link"), + "PUT") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FileFull.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public SharedLinksFilesManager build() { + return new SharedLinksFilesManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileHeaders.java new file mode 100644 index 000000000..d5226884c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.sharedlinksfiles; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateSharedLinkOnFileHeaders { + + public Map extraHeaders; + + public UpdateSharedLinkOnFileHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateSharedLinkOnFileHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateSharedLinkOnFileHeaders build() { + return new UpdateSharedLinkOnFileHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileQueryParams.java new file mode 100644 index 000000000..c3a9bd4f5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileQueryParams.java @@ -0,0 +1,14 @@ +package com.box.sdkgen.managers.sharedlinksfiles; + +public class UpdateSharedLinkOnFileQueryParams { + + public final String fields; + + public UpdateSharedLinkOnFileQueryParams(String fields) { + this.fields = fields; + } + + public String getFields() { + return fields; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBody.java new file mode 100644 index 000000000..608419ae0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBody.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.sharedlinksfiles; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateSharedLinkOnFileRequestBody extends SerializableObject { + + @JsonProperty("shared_link") + protected UpdateSharedLinkOnFileRequestBodySharedLinkField sharedLink; + + public UpdateSharedLinkOnFileRequestBody() { + super(); + } + + protected UpdateSharedLinkOnFileRequestBody(Builder builder) { + super(); + this.sharedLink = builder.sharedLink; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public UpdateSharedLinkOnFileRequestBodySharedLinkField getSharedLink() { + return sharedLink; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateSharedLinkOnFileRequestBody casted = (UpdateSharedLinkOnFileRequestBody) o; + return Objects.equals(sharedLink, casted.sharedLink); + } + + @Override + public int hashCode() { + return Objects.hash(sharedLink); + } + + @Override + public String toString() { + return "UpdateSharedLinkOnFileRequestBody{" + "sharedLink='" + sharedLink + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected UpdateSharedLinkOnFileRequestBodySharedLinkField sharedLink; + + public Builder sharedLink(UpdateSharedLinkOnFileRequestBodySharedLinkField sharedLink) { + this.sharedLink = sharedLink; + return this; + } + + public UpdateSharedLinkOnFileRequestBody build() { + return new UpdateSharedLinkOnFileRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkAccessField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkAccessField.java new file mode 100644 index 000000000..d23b9148c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkAccessField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.managers.sharedlinksfiles; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateSharedLinkOnFileRequestBodySharedLinkAccessField implements Valuable { + OPEN("open"), + COMPANY("company"), + COLLABORATORS("collaborators"); + + private final String value; + + UpdateSharedLinkOnFileRequestBodySharedLinkAccessField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateSharedLinkOnFileRequestBodySharedLinkAccessFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public UpdateSharedLinkOnFileRequestBodySharedLinkAccessFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateSharedLinkOnFileRequestBodySharedLinkAccessField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateSharedLinkOnFileRequestBodySharedLinkAccessFieldSerializer + extends JsonSerializer> { + + public UpdateSharedLinkOnFileRequestBodySharedLinkAccessFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkField.java new file mode 100644 index 000000000..77b4a8ba3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkField.java @@ -0,0 +1,170 @@ +package com.box.sdkgen.managers.sharedlinksfiles; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateSharedLinkOnFileRequestBodySharedLinkField extends SerializableObject { + + @JsonDeserialize( + using = + UpdateSharedLinkOnFileRequestBodySharedLinkAccessField + .UpdateSharedLinkOnFileRequestBodySharedLinkAccessFieldDeserializer.class) + @JsonSerialize( + using = + UpdateSharedLinkOnFileRequestBodySharedLinkAccessField + .UpdateSharedLinkOnFileRequestBodySharedLinkAccessFieldSerializer.class) + protected EnumWrapper access; + + @Nullable protected String password; + + @JsonProperty("vanity_name") + protected String vanityName; + + @JsonProperty("unshared_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date unsharedAt; + + protected UpdateSharedLinkOnFileRequestBodySharedLinkPermissionsField permissions; + + public UpdateSharedLinkOnFileRequestBodySharedLinkField() { + super(); + } + + protected UpdateSharedLinkOnFileRequestBodySharedLinkField(Builder builder) { + super(); + this.access = builder.access; + this.password = builder.password; + this.vanityName = builder.vanityName; + this.unsharedAt = builder.unsharedAt; + this.permissions = builder.permissions; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getAccess() { + return access; + } + + public String getPassword() { + return password; + } + + public String getVanityName() { + return vanityName; + } + + public Date getUnsharedAt() { + return unsharedAt; + } + + public UpdateSharedLinkOnFileRequestBodySharedLinkPermissionsField getPermissions() { + return permissions; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateSharedLinkOnFileRequestBodySharedLinkField casted = + (UpdateSharedLinkOnFileRequestBodySharedLinkField) o; + return Objects.equals(access, casted.access) + && Objects.equals(password, casted.password) + && Objects.equals(vanityName, casted.vanityName) + && Objects.equals(unsharedAt, casted.unsharedAt) + && Objects.equals(permissions, casted.permissions); + } + + @Override + public int hashCode() { + return Objects.hash(access, password, vanityName, unsharedAt, permissions); + } + + @Override + public String toString() { + return "UpdateSharedLinkOnFileRequestBodySharedLinkField{" + + "access='" + + access + + '\'' + + ", " + + "password='" + + password + + '\'' + + ", " + + "vanityName='" + + vanityName + + '\'' + + ", " + + "unsharedAt='" + + unsharedAt + + '\'' + + ", " + + "permissions='" + + permissions + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper access; + + protected String password; + + protected String vanityName; + + protected Date unsharedAt; + + protected UpdateSharedLinkOnFileRequestBodySharedLinkPermissionsField permissions; + + public Builder access(UpdateSharedLinkOnFileRequestBodySharedLinkAccessField access) { + this.access = new EnumWrapper(access); + return this; + } + + public Builder access( + EnumWrapper access) { + this.access = access; + return this; + } + + public Builder password(String password) { + this.password = password; + this.markNullableFieldAsSet("password"); + return this; + } + + public Builder vanityName(String vanityName) { + this.vanityName = vanityName; + return this; + } + + public Builder unsharedAt(Date unsharedAt) { + this.unsharedAt = unsharedAt; + return this; + } + + public Builder permissions( + UpdateSharedLinkOnFileRequestBodySharedLinkPermissionsField permissions) { + this.permissions = permissions; + return this; + } + + public UpdateSharedLinkOnFileRequestBodySharedLinkField build() { + return new UpdateSharedLinkOnFileRequestBodySharedLinkField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkPermissionsField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkPermissionsField.java new file mode 100644 index 000000000..fd589f86d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkPermissionsField.java @@ -0,0 +1,110 @@ +package com.box.sdkgen.managers.sharedlinksfiles; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateSharedLinkOnFileRequestBodySharedLinkPermissionsField + extends SerializableObject { + + @JsonProperty("can_download") + protected Boolean canDownload; + + @JsonProperty("can_preview") + protected Boolean canPreview; + + @JsonProperty("can_edit") + protected Boolean canEdit; + + public UpdateSharedLinkOnFileRequestBodySharedLinkPermissionsField() { + super(); + } + + protected UpdateSharedLinkOnFileRequestBodySharedLinkPermissionsField(Builder builder) { + super(); + this.canDownload = builder.canDownload; + this.canPreview = builder.canPreview; + this.canEdit = builder.canEdit; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getCanDownload() { + return canDownload; + } + + public Boolean getCanPreview() { + return canPreview; + } + + public Boolean getCanEdit() { + return canEdit; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateSharedLinkOnFileRequestBodySharedLinkPermissionsField casted = + (UpdateSharedLinkOnFileRequestBodySharedLinkPermissionsField) o; + return Objects.equals(canDownload, casted.canDownload) + && Objects.equals(canPreview, casted.canPreview) + && Objects.equals(canEdit, casted.canEdit); + } + + @Override + public int hashCode() { + return Objects.hash(canDownload, canPreview, canEdit); + } + + @Override + public String toString() { + return "UpdateSharedLinkOnFileRequestBodySharedLinkPermissionsField{" + + "canDownload='" + + canDownload + + '\'' + + ", " + + "canPreview='" + + canPreview + + '\'' + + ", " + + "canEdit='" + + canEdit + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean canDownload; + + protected Boolean canPreview; + + protected Boolean canEdit; + + public Builder canDownload(Boolean canDownload) { + this.canDownload = canDownload; + return this; + } + + public Builder canPreview(Boolean canPreview) { + this.canPreview = canPreview; + return this; + } + + public Builder canEdit(Boolean canEdit) { + this.canEdit = canEdit; + return this; + } + + public UpdateSharedLinkOnFileRequestBodySharedLinkPermissionsField build() { + return new UpdateSharedLinkOnFileRequestBodySharedLinkPermissionsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderHeaders.java new file mode 100644 index 000000000..12cf289d2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.sharedlinksfolders; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class AddShareLinkToFolderHeaders { + + public Map extraHeaders; + + public AddShareLinkToFolderHeaders() { + this.extraHeaders = mapOf(); + } + + protected AddShareLinkToFolderHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public AddShareLinkToFolderHeaders build() { + return new AddShareLinkToFolderHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderQueryParams.java new file mode 100644 index 000000000..429ab8505 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderQueryParams.java @@ -0,0 +1,14 @@ +package com.box.sdkgen.managers.sharedlinksfolders; + +public class AddShareLinkToFolderQueryParams { + + public final String fields; + + public AddShareLinkToFolderQueryParams(String fields) { + this.fields = fields; + } + + public String getFields() { + return fields; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBody.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBody.java new file mode 100644 index 000000000..eddb11fb1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBody.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.sharedlinksfolders; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AddShareLinkToFolderRequestBody extends SerializableObject { + + @JsonProperty("shared_link") + protected AddShareLinkToFolderRequestBodySharedLinkField sharedLink; + + public AddShareLinkToFolderRequestBody() { + super(); + } + + protected AddShareLinkToFolderRequestBody(Builder builder) { + super(); + this.sharedLink = builder.sharedLink; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public AddShareLinkToFolderRequestBodySharedLinkField getSharedLink() { + return sharedLink; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddShareLinkToFolderRequestBody casted = (AddShareLinkToFolderRequestBody) o; + return Objects.equals(sharedLink, casted.sharedLink); + } + + @Override + public int hashCode() { + return Objects.hash(sharedLink); + } + + @Override + public String toString() { + return "AddShareLinkToFolderRequestBody{" + "sharedLink='" + sharedLink + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected AddShareLinkToFolderRequestBodySharedLinkField sharedLink; + + public Builder sharedLink(AddShareLinkToFolderRequestBodySharedLinkField sharedLink) { + this.sharedLink = sharedLink; + return this; + } + + public AddShareLinkToFolderRequestBody build() { + return new AddShareLinkToFolderRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkAccessField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkAccessField.java new file mode 100644 index 000000000..31f5fb3ea --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkAccessField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.sharedlinksfolders; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AddShareLinkToFolderRequestBodySharedLinkAccessField implements Valuable { + OPEN("open"), + COMPANY("company"), + COLLABORATORS("collaborators"); + + private final String value; + + AddShareLinkToFolderRequestBodySharedLinkAccessField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AddShareLinkToFolderRequestBodySharedLinkAccessFieldDeserializer + extends JsonDeserializer> { + + public AddShareLinkToFolderRequestBodySharedLinkAccessFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AddShareLinkToFolderRequestBodySharedLinkAccessField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AddShareLinkToFolderRequestBodySharedLinkAccessFieldSerializer + extends JsonSerializer> { + + public AddShareLinkToFolderRequestBodySharedLinkAccessFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkField.java new file mode 100644 index 000000000..7095f44c9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkField.java @@ -0,0 +1,170 @@ +package com.box.sdkgen.managers.sharedlinksfolders; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AddShareLinkToFolderRequestBodySharedLinkField extends SerializableObject { + + @JsonDeserialize( + using = + AddShareLinkToFolderRequestBodySharedLinkAccessField + .AddShareLinkToFolderRequestBodySharedLinkAccessFieldDeserializer.class) + @JsonSerialize( + using = + AddShareLinkToFolderRequestBodySharedLinkAccessField + .AddShareLinkToFolderRequestBodySharedLinkAccessFieldSerializer.class) + protected EnumWrapper access; + + @Nullable protected String password; + + @JsonProperty("vanity_name") + protected String vanityName; + + @JsonProperty("unshared_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date unsharedAt; + + protected AddShareLinkToFolderRequestBodySharedLinkPermissionsField permissions; + + public AddShareLinkToFolderRequestBodySharedLinkField() { + super(); + } + + protected AddShareLinkToFolderRequestBodySharedLinkField(Builder builder) { + super(); + this.access = builder.access; + this.password = builder.password; + this.vanityName = builder.vanityName; + this.unsharedAt = builder.unsharedAt; + this.permissions = builder.permissions; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getAccess() { + return access; + } + + public String getPassword() { + return password; + } + + public String getVanityName() { + return vanityName; + } + + public Date getUnsharedAt() { + return unsharedAt; + } + + public AddShareLinkToFolderRequestBodySharedLinkPermissionsField getPermissions() { + return permissions; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddShareLinkToFolderRequestBodySharedLinkField casted = + (AddShareLinkToFolderRequestBodySharedLinkField) o; + return Objects.equals(access, casted.access) + && Objects.equals(password, casted.password) + && Objects.equals(vanityName, casted.vanityName) + && Objects.equals(unsharedAt, casted.unsharedAt) + && Objects.equals(permissions, casted.permissions); + } + + @Override + public int hashCode() { + return Objects.hash(access, password, vanityName, unsharedAt, permissions); + } + + @Override + public String toString() { + return "AddShareLinkToFolderRequestBodySharedLinkField{" + + "access='" + + access + + '\'' + + ", " + + "password='" + + password + + '\'' + + ", " + + "vanityName='" + + vanityName + + '\'' + + ", " + + "unsharedAt='" + + unsharedAt + + '\'' + + ", " + + "permissions='" + + permissions + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper access; + + protected String password; + + protected String vanityName; + + protected Date unsharedAt; + + protected AddShareLinkToFolderRequestBodySharedLinkPermissionsField permissions; + + public Builder access(AddShareLinkToFolderRequestBodySharedLinkAccessField access) { + this.access = new EnumWrapper(access); + return this; + } + + public Builder access( + EnumWrapper access) { + this.access = access; + return this; + } + + public Builder password(String password) { + this.password = password; + this.markNullableFieldAsSet("password"); + return this; + } + + public Builder vanityName(String vanityName) { + this.vanityName = vanityName; + return this; + } + + public Builder unsharedAt(Date unsharedAt) { + this.unsharedAt = unsharedAt; + return this; + } + + public Builder permissions( + AddShareLinkToFolderRequestBodySharedLinkPermissionsField permissions) { + this.permissions = permissions; + return this; + } + + public AddShareLinkToFolderRequestBodySharedLinkField build() { + return new AddShareLinkToFolderRequestBodySharedLinkField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkPermissionsField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkPermissionsField.java new file mode 100644 index 000000000..4e9ae79ed --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkPermissionsField.java @@ -0,0 +1,109 @@ +package com.box.sdkgen.managers.sharedlinksfolders; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AddShareLinkToFolderRequestBodySharedLinkPermissionsField extends SerializableObject { + + @JsonProperty("can_download") + protected Boolean canDownload; + + @JsonProperty("can_preview") + protected Boolean canPreview; + + @JsonProperty("can_edit") + protected Boolean canEdit; + + public AddShareLinkToFolderRequestBodySharedLinkPermissionsField() { + super(); + } + + protected AddShareLinkToFolderRequestBodySharedLinkPermissionsField(Builder builder) { + super(); + this.canDownload = builder.canDownload; + this.canPreview = builder.canPreview; + this.canEdit = builder.canEdit; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getCanDownload() { + return canDownload; + } + + public Boolean getCanPreview() { + return canPreview; + } + + public Boolean getCanEdit() { + return canEdit; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddShareLinkToFolderRequestBodySharedLinkPermissionsField casted = + (AddShareLinkToFolderRequestBodySharedLinkPermissionsField) o; + return Objects.equals(canDownload, casted.canDownload) + && Objects.equals(canPreview, casted.canPreview) + && Objects.equals(canEdit, casted.canEdit); + } + + @Override + public int hashCode() { + return Objects.hash(canDownload, canPreview, canEdit); + } + + @Override + public String toString() { + return "AddShareLinkToFolderRequestBodySharedLinkPermissionsField{" + + "canDownload='" + + canDownload + + '\'' + + ", " + + "canPreview='" + + canPreview + + '\'' + + ", " + + "canEdit='" + + canEdit + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean canDownload; + + protected Boolean canPreview; + + protected Boolean canEdit; + + public Builder canDownload(Boolean canDownload) { + this.canDownload = canDownload; + return this; + } + + public Builder canPreview(Boolean canPreview) { + this.canPreview = canPreview; + return this; + } + + public Builder canEdit(Boolean canEdit) { + this.canEdit = canEdit; + return this; + } + + public AddShareLinkToFolderRequestBodySharedLinkPermissionsField build() { + return new AddShareLinkToFolderRequestBodySharedLinkPermissionsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/FindFolderForSharedLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/FindFolderForSharedLinkHeaders.java new file mode 100644 index 000000000..6b46eeafd --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/FindFolderForSharedLinkHeaders.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.managers.sharedlinksfolders; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class FindFolderForSharedLinkHeaders { + + public String ifNoneMatch; + + public final String boxapi; + + public Map extraHeaders; + + public FindFolderForSharedLinkHeaders(String boxapi) { + this.boxapi = boxapi; + this.extraHeaders = mapOf(); + } + + protected FindFolderForSharedLinkHeaders(Builder builder) { + this.ifNoneMatch = builder.ifNoneMatch; + this.boxapi = builder.boxapi; + this.extraHeaders = builder.extraHeaders; + } + + public String getIfNoneMatch() { + return ifNoneMatch; + } + + public String getBoxapi() { + return boxapi; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected String ifNoneMatch; + + protected final String boxapi; + + protected Map extraHeaders; + + public Builder(String boxapi) { + this.boxapi = boxapi; + this.extraHeaders = mapOf(); + } + + public Builder ifNoneMatch(String ifNoneMatch) { + this.ifNoneMatch = ifNoneMatch; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public FindFolderForSharedLinkHeaders build() { + return new FindFolderForSharedLinkHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/FindFolderForSharedLinkQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/FindFolderForSharedLinkQueryParams.java new file mode 100644 index 000000000..f4290bb4c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/FindFolderForSharedLinkQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.sharedlinksfolders; + +import java.util.List; + +public class FindFolderForSharedLinkQueryParams { + + public List fields; + + public FindFolderForSharedLinkQueryParams() {} + + protected FindFolderForSharedLinkQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public FindFolderForSharedLinkQueryParams build() { + return new FindFolderForSharedLinkQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/GetSharedLinkForFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/GetSharedLinkForFolderHeaders.java new file mode 100644 index 000000000..6d48eed6f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/GetSharedLinkForFolderHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.sharedlinksfolders; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetSharedLinkForFolderHeaders { + + public Map extraHeaders; + + public GetSharedLinkForFolderHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetSharedLinkForFolderHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetSharedLinkForFolderHeaders build() { + return new GetSharedLinkForFolderHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/GetSharedLinkForFolderQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/GetSharedLinkForFolderQueryParams.java new file mode 100644 index 000000000..4310e2e9a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/GetSharedLinkForFolderQueryParams.java @@ -0,0 +1,14 @@ +package com.box.sdkgen.managers.sharedlinksfolders; + +public class GetSharedLinkForFolderQueryParams { + + public final String fields; + + public GetSharedLinkForFolderQueryParams(String fields) { + this.fields = fields; + } + + public String getFields() { + return fields; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderHeaders.java new file mode 100644 index 000000000..e180a2abf --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.sharedlinksfolders; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class RemoveSharedLinkFromFolderHeaders { + + public Map extraHeaders; + + public RemoveSharedLinkFromFolderHeaders() { + this.extraHeaders = mapOf(); + } + + protected RemoveSharedLinkFromFolderHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public RemoveSharedLinkFromFolderHeaders build() { + return new RemoveSharedLinkFromFolderHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderQueryParams.java new file mode 100644 index 000000000..d1e839fda --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderQueryParams.java @@ -0,0 +1,14 @@ +package com.box.sdkgen.managers.sharedlinksfolders; + +public class RemoveSharedLinkFromFolderQueryParams { + + public final String fields; + + public RemoveSharedLinkFromFolderQueryParams(String fields) { + this.fields = fields; + } + + public String getFields() { + return fields; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderRequestBody.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderRequestBody.java new file mode 100644 index 000000000..32447c598 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderRequestBody.java @@ -0,0 +1,67 @@ +package com.box.sdkgen.managers.sharedlinksfolders; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class RemoveSharedLinkFromFolderRequestBody extends SerializableObject { + + @JsonProperty("shared_link") + @Nullable + protected RemoveSharedLinkFromFolderRequestBodySharedLinkField sharedLink; + + public RemoveSharedLinkFromFolderRequestBody() { + super(); + } + + protected RemoveSharedLinkFromFolderRequestBody(Builder builder) { + super(); + this.sharedLink = builder.sharedLink; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public RemoveSharedLinkFromFolderRequestBodySharedLinkField getSharedLink() { + return sharedLink; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RemoveSharedLinkFromFolderRequestBody casted = (RemoveSharedLinkFromFolderRequestBody) o; + return Objects.equals(sharedLink, casted.sharedLink); + } + + @Override + public int hashCode() { + return Objects.hash(sharedLink); + } + + @Override + public String toString() { + return "RemoveSharedLinkFromFolderRequestBody{" + "sharedLink='" + sharedLink + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected RemoveSharedLinkFromFolderRequestBodySharedLinkField sharedLink; + + public Builder sharedLink(RemoveSharedLinkFromFolderRequestBodySharedLinkField sharedLink) { + this.sharedLink = sharedLink; + this.markNullableFieldAsSet("shared_link"); + return this; + } + + public RemoveSharedLinkFromFolderRequestBody build() { + return new RemoveSharedLinkFromFolderRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderRequestBodySharedLinkField.java new file mode 100644 index 000000000..df33ad1b9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderRequestBodySharedLinkField.java @@ -0,0 +1,17 @@ +package com.box.sdkgen.managers.sharedlinksfolders; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; + +@JsonFilter("nullablePropertyFilter") +public class RemoveSharedLinkFromFolderRequestBodySharedLinkField extends SerializableObject { + + public RemoveSharedLinkFromFolderRequestBodySharedLinkField() { + super(); + } + + @Override + public String toString() { + return "RemoveSharedLinkFromFolderRequestBodySharedLinkField{" + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/SharedLinksFoldersManager.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/SharedLinksFoldersManager.java new file mode 100644 index 000000000..d6a75297a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/SharedLinksFoldersManager.java @@ -0,0 +1,300 @@ +package com.box.sdkgen.managers.sharedlinksfolders; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class SharedLinksFoldersManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public SharedLinksFoldersManager() { + this.networkSession = new NetworkSession(); + } + + protected SharedLinksFoldersManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public FolderFull findFolderForSharedLink(FindFolderForSharedLinkHeaders headers) { + return findFolderForSharedLink(new FindFolderForSharedLinkQueryParams(), headers); + } + + public FolderFull findFolderForSharedLink( + FindFolderForSharedLinkQueryParams queryParams, FindFolderForSharedLinkHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf( + entryOf("if-none-match", convertToString(headers.getIfNoneMatch())), + entryOf("boxapi", convertToString(headers.getBoxapi()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shared_items#folders"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FolderFull.class); + } + + public FolderFull getSharedLinkForFolder( + String folderId, GetSharedLinkForFolderQueryParams queryParams) { + return getSharedLinkForFolder(folderId, queryParams, new GetSharedLinkForFolderHeaders()); + } + + public FolderFull getSharedLinkForFolder( + String folderId, + GetSharedLinkForFolderQueryParams queryParams, + GetSharedLinkForFolderHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId), + "#get_shared_link"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FolderFull.class); + } + + public FolderFull addShareLinkToFolder( + String folderId, AddShareLinkToFolderQueryParams queryParams) { + return addShareLinkToFolder( + folderId, + new AddShareLinkToFolderRequestBody(), + queryParams, + new AddShareLinkToFolderHeaders()); + } + + public FolderFull addShareLinkToFolder( + String folderId, + AddShareLinkToFolderRequestBody requestBody, + AddShareLinkToFolderQueryParams queryParams) { + return addShareLinkToFolder( + folderId, requestBody, queryParams, new AddShareLinkToFolderHeaders()); + } + + public FolderFull addShareLinkToFolder( + String folderId, + AddShareLinkToFolderQueryParams queryParams, + AddShareLinkToFolderHeaders headers) { + return addShareLinkToFolder( + folderId, new AddShareLinkToFolderRequestBody(), queryParams, headers); + } + + public FolderFull addShareLinkToFolder( + String folderId, + AddShareLinkToFolderRequestBody requestBody, + AddShareLinkToFolderQueryParams queryParams, + AddShareLinkToFolderHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId), + "#add_shared_link"), + "PUT") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FolderFull.class); + } + + public FolderFull updateSharedLinkOnFolder( + String folderId, UpdateSharedLinkOnFolderQueryParams queryParams) { + return updateSharedLinkOnFolder( + folderId, + new UpdateSharedLinkOnFolderRequestBody(), + queryParams, + new UpdateSharedLinkOnFolderHeaders()); + } + + public FolderFull updateSharedLinkOnFolder( + String folderId, + UpdateSharedLinkOnFolderRequestBody requestBody, + UpdateSharedLinkOnFolderQueryParams queryParams) { + return updateSharedLinkOnFolder( + folderId, requestBody, queryParams, new UpdateSharedLinkOnFolderHeaders()); + } + + public FolderFull updateSharedLinkOnFolder( + String folderId, + UpdateSharedLinkOnFolderQueryParams queryParams, + UpdateSharedLinkOnFolderHeaders headers) { + return updateSharedLinkOnFolder( + folderId, new UpdateSharedLinkOnFolderRequestBody(), queryParams, headers); + } + + public FolderFull updateSharedLinkOnFolder( + String folderId, + UpdateSharedLinkOnFolderRequestBody requestBody, + UpdateSharedLinkOnFolderQueryParams queryParams, + UpdateSharedLinkOnFolderHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId), + "#update_shared_link"), + "PUT") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FolderFull.class); + } + + public FolderFull removeSharedLinkFromFolder( + String folderId, RemoveSharedLinkFromFolderQueryParams queryParams) { + return removeSharedLinkFromFolder( + folderId, + new RemoveSharedLinkFromFolderRequestBody(), + queryParams, + new RemoveSharedLinkFromFolderHeaders()); + } + + public FolderFull removeSharedLinkFromFolder( + String folderId, + RemoveSharedLinkFromFolderRequestBody requestBody, + RemoveSharedLinkFromFolderQueryParams queryParams) { + return removeSharedLinkFromFolder( + folderId, requestBody, queryParams, new RemoveSharedLinkFromFolderHeaders()); + } + + public FolderFull removeSharedLinkFromFolder( + String folderId, + RemoveSharedLinkFromFolderQueryParams queryParams, + RemoveSharedLinkFromFolderHeaders headers) { + return removeSharedLinkFromFolder( + folderId, new RemoveSharedLinkFromFolderRequestBody(), queryParams, headers); + } + + public FolderFull removeSharedLinkFromFolder( + String folderId, + RemoveSharedLinkFromFolderRequestBody requestBody, + RemoveSharedLinkFromFolderQueryParams queryParams, + RemoveSharedLinkFromFolderHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId), + "#remove_shared_link"), + "PUT") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FolderFull.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public SharedLinksFoldersManager build() { + return new SharedLinksFoldersManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderHeaders.java new file mode 100644 index 000000000..74a21c6b3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.sharedlinksfolders; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateSharedLinkOnFolderHeaders { + + public Map extraHeaders; + + public UpdateSharedLinkOnFolderHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateSharedLinkOnFolderHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateSharedLinkOnFolderHeaders build() { + return new UpdateSharedLinkOnFolderHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderQueryParams.java new file mode 100644 index 000000000..5bbd38493 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderQueryParams.java @@ -0,0 +1,14 @@ +package com.box.sdkgen.managers.sharedlinksfolders; + +public class UpdateSharedLinkOnFolderQueryParams { + + public final String fields; + + public UpdateSharedLinkOnFolderQueryParams(String fields) { + this.fields = fields; + } + + public String getFields() { + return fields; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBody.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBody.java new file mode 100644 index 000000000..1672c72ab --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBody.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.sharedlinksfolders; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateSharedLinkOnFolderRequestBody extends SerializableObject { + + @JsonProperty("shared_link") + protected UpdateSharedLinkOnFolderRequestBodySharedLinkField sharedLink; + + public UpdateSharedLinkOnFolderRequestBody() { + super(); + } + + protected UpdateSharedLinkOnFolderRequestBody(Builder builder) { + super(); + this.sharedLink = builder.sharedLink; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public UpdateSharedLinkOnFolderRequestBodySharedLinkField getSharedLink() { + return sharedLink; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateSharedLinkOnFolderRequestBody casted = (UpdateSharedLinkOnFolderRequestBody) o; + return Objects.equals(sharedLink, casted.sharedLink); + } + + @Override + public int hashCode() { + return Objects.hash(sharedLink); + } + + @Override + public String toString() { + return "UpdateSharedLinkOnFolderRequestBody{" + "sharedLink='" + sharedLink + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected UpdateSharedLinkOnFolderRequestBodySharedLinkField sharedLink; + + public Builder sharedLink(UpdateSharedLinkOnFolderRequestBodySharedLinkField sharedLink) { + this.sharedLink = sharedLink; + return this; + } + + public UpdateSharedLinkOnFolderRequestBody build() { + return new UpdateSharedLinkOnFolderRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkAccessField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkAccessField.java new file mode 100644 index 000000000..48aea5aba --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkAccessField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.managers.sharedlinksfolders; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateSharedLinkOnFolderRequestBodySharedLinkAccessField implements Valuable { + OPEN("open"), + COMPANY("company"), + COLLABORATORS("collaborators"); + + private final String value; + + UpdateSharedLinkOnFolderRequestBodySharedLinkAccessField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateSharedLinkOnFolderRequestBodySharedLinkAccessFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public UpdateSharedLinkOnFolderRequestBodySharedLinkAccessFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateSharedLinkOnFolderRequestBodySharedLinkAccessField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateSharedLinkOnFolderRequestBodySharedLinkAccessFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public UpdateSharedLinkOnFolderRequestBodySharedLinkAccessFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkField.java new file mode 100644 index 000000000..320d90291 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkField.java @@ -0,0 +1,169 @@ +package com.box.sdkgen.managers.sharedlinksfolders; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateSharedLinkOnFolderRequestBodySharedLinkField extends SerializableObject { + + @JsonDeserialize( + using = + UpdateSharedLinkOnFolderRequestBodySharedLinkAccessField + .UpdateSharedLinkOnFolderRequestBodySharedLinkAccessFieldDeserializer.class) + @JsonSerialize( + using = + UpdateSharedLinkOnFolderRequestBodySharedLinkAccessField + .UpdateSharedLinkOnFolderRequestBodySharedLinkAccessFieldSerializer.class) + protected EnumWrapper access; + + protected String password; + + @JsonProperty("vanity_name") + protected String vanityName; + + @JsonProperty("unshared_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date unsharedAt; + + protected UpdateSharedLinkOnFolderRequestBodySharedLinkPermissionsField permissions; + + public UpdateSharedLinkOnFolderRequestBodySharedLinkField() { + super(); + } + + protected UpdateSharedLinkOnFolderRequestBodySharedLinkField(Builder builder) { + super(); + this.access = builder.access; + this.password = builder.password; + this.vanityName = builder.vanityName; + this.unsharedAt = builder.unsharedAt; + this.permissions = builder.permissions; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getAccess() { + return access; + } + + public String getPassword() { + return password; + } + + public String getVanityName() { + return vanityName; + } + + public Date getUnsharedAt() { + return unsharedAt; + } + + public UpdateSharedLinkOnFolderRequestBodySharedLinkPermissionsField getPermissions() { + return permissions; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateSharedLinkOnFolderRequestBodySharedLinkField casted = + (UpdateSharedLinkOnFolderRequestBodySharedLinkField) o; + return Objects.equals(access, casted.access) + && Objects.equals(password, casted.password) + && Objects.equals(vanityName, casted.vanityName) + && Objects.equals(unsharedAt, casted.unsharedAt) + && Objects.equals(permissions, casted.permissions); + } + + @Override + public int hashCode() { + return Objects.hash(access, password, vanityName, unsharedAt, permissions); + } + + @Override + public String toString() { + return "UpdateSharedLinkOnFolderRequestBodySharedLinkField{" + + "access='" + + access + + '\'' + + ", " + + "password='" + + password + + '\'' + + ", " + + "vanityName='" + + vanityName + + '\'' + + ", " + + "unsharedAt='" + + unsharedAt + + '\'' + + ", " + + "permissions='" + + permissions + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper access; + + protected String password; + + protected String vanityName; + + protected Date unsharedAt; + + protected UpdateSharedLinkOnFolderRequestBodySharedLinkPermissionsField permissions; + + public Builder access(UpdateSharedLinkOnFolderRequestBodySharedLinkAccessField access) { + this.access = + new EnumWrapper(access); + return this; + } + + public Builder access( + EnumWrapper access) { + this.access = access; + return this; + } + + public Builder password(String password) { + this.password = password; + return this; + } + + public Builder vanityName(String vanityName) { + this.vanityName = vanityName; + return this; + } + + public Builder unsharedAt(Date unsharedAt) { + this.unsharedAt = unsharedAt; + return this; + } + + public Builder permissions( + UpdateSharedLinkOnFolderRequestBodySharedLinkPermissionsField permissions) { + this.permissions = permissions; + return this; + } + + public UpdateSharedLinkOnFolderRequestBodySharedLinkField build() { + return new UpdateSharedLinkOnFolderRequestBodySharedLinkField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkPermissionsField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkPermissionsField.java new file mode 100644 index 000000000..7d21be938 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkPermissionsField.java @@ -0,0 +1,110 @@ +package com.box.sdkgen.managers.sharedlinksfolders; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateSharedLinkOnFolderRequestBodySharedLinkPermissionsField + extends SerializableObject { + + @JsonProperty("can_download") + protected Boolean canDownload; + + @JsonProperty("can_preview") + protected Boolean canPreview; + + @JsonProperty("can_edit") + protected Boolean canEdit; + + public UpdateSharedLinkOnFolderRequestBodySharedLinkPermissionsField() { + super(); + } + + protected UpdateSharedLinkOnFolderRequestBodySharedLinkPermissionsField(Builder builder) { + super(); + this.canDownload = builder.canDownload; + this.canPreview = builder.canPreview; + this.canEdit = builder.canEdit; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getCanDownload() { + return canDownload; + } + + public Boolean getCanPreview() { + return canPreview; + } + + public Boolean getCanEdit() { + return canEdit; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateSharedLinkOnFolderRequestBodySharedLinkPermissionsField casted = + (UpdateSharedLinkOnFolderRequestBodySharedLinkPermissionsField) o; + return Objects.equals(canDownload, casted.canDownload) + && Objects.equals(canPreview, casted.canPreview) + && Objects.equals(canEdit, casted.canEdit); + } + + @Override + public int hashCode() { + return Objects.hash(canDownload, canPreview, canEdit); + } + + @Override + public String toString() { + return "UpdateSharedLinkOnFolderRequestBodySharedLinkPermissionsField{" + + "canDownload='" + + canDownload + + '\'' + + ", " + + "canPreview='" + + canPreview + + '\'' + + ", " + + "canEdit='" + + canEdit + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean canDownload; + + protected Boolean canPreview; + + protected Boolean canEdit; + + public Builder canDownload(Boolean canDownload) { + this.canDownload = canDownload; + return this; + } + + public Builder canPreview(Boolean canPreview) { + this.canPreview = canPreview; + return this; + } + + public Builder canEdit(Boolean canEdit) { + this.canEdit = canEdit; + return this; + } + + public UpdateSharedLinkOnFolderRequestBodySharedLinkPermissionsField build() { + return new UpdateSharedLinkOnFolderRequestBodySharedLinkPermissionsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkHeaders.java new file mode 100644 index 000000000..385e180d0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.sharedlinksweblinks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class AddShareLinkToWebLinkHeaders { + + public Map extraHeaders; + + public AddShareLinkToWebLinkHeaders() { + this.extraHeaders = mapOf(); + } + + protected AddShareLinkToWebLinkHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public AddShareLinkToWebLinkHeaders build() { + return new AddShareLinkToWebLinkHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkQueryParams.java new file mode 100644 index 000000000..17cac6b91 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkQueryParams.java @@ -0,0 +1,14 @@ +package com.box.sdkgen.managers.sharedlinksweblinks; + +public class AddShareLinkToWebLinkQueryParams { + + public final String fields; + + public AddShareLinkToWebLinkQueryParams(String fields) { + this.fields = fields; + } + + public String getFields() { + return fields; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBody.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBody.java new file mode 100644 index 000000000..b4cca3e4c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBody.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.sharedlinksweblinks; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AddShareLinkToWebLinkRequestBody extends SerializableObject { + + @JsonProperty("shared_link") + protected AddShareLinkToWebLinkRequestBodySharedLinkField sharedLink; + + public AddShareLinkToWebLinkRequestBody() { + super(); + } + + protected AddShareLinkToWebLinkRequestBody(Builder builder) { + super(); + this.sharedLink = builder.sharedLink; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public AddShareLinkToWebLinkRequestBodySharedLinkField getSharedLink() { + return sharedLink; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddShareLinkToWebLinkRequestBody casted = (AddShareLinkToWebLinkRequestBody) o; + return Objects.equals(sharedLink, casted.sharedLink); + } + + @Override + public int hashCode() { + return Objects.hash(sharedLink); + } + + @Override + public String toString() { + return "AddShareLinkToWebLinkRequestBody{" + "sharedLink='" + sharedLink + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected AddShareLinkToWebLinkRequestBodySharedLinkField sharedLink; + + public Builder sharedLink(AddShareLinkToWebLinkRequestBodySharedLinkField sharedLink) { + this.sharedLink = sharedLink; + return this; + } + + public AddShareLinkToWebLinkRequestBody build() { + return new AddShareLinkToWebLinkRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkAccessField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkAccessField.java new file mode 100644 index 000000000..9e98285f2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkAccessField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.sharedlinksweblinks; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AddShareLinkToWebLinkRequestBodySharedLinkAccessField implements Valuable { + OPEN("open"), + COMPANY("company"), + COLLABORATORS("collaborators"); + + private final String value; + + AddShareLinkToWebLinkRequestBodySharedLinkAccessField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AddShareLinkToWebLinkRequestBodySharedLinkAccessFieldDeserializer + extends JsonDeserializer> { + + public AddShareLinkToWebLinkRequestBodySharedLinkAccessFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AddShareLinkToWebLinkRequestBodySharedLinkAccessField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AddShareLinkToWebLinkRequestBodySharedLinkAccessFieldSerializer + extends JsonSerializer> { + + public AddShareLinkToWebLinkRequestBodySharedLinkAccessFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkField.java new file mode 100644 index 000000000..7b187511f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkField.java @@ -0,0 +1,170 @@ +package com.box.sdkgen.managers.sharedlinksweblinks; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AddShareLinkToWebLinkRequestBodySharedLinkField extends SerializableObject { + + @JsonDeserialize( + using = + AddShareLinkToWebLinkRequestBodySharedLinkAccessField + .AddShareLinkToWebLinkRequestBodySharedLinkAccessFieldDeserializer.class) + @JsonSerialize( + using = + AddShareLinkToWebLinkRequestBodySharedLinkAccessField + .AddShareLinkToWebLinkRequestBodySharedLinkAccessFieldSerializer.class) + protected EnumWrapper access; + + @Nullable protected String password; + + @JsonProperty("vanity_name") + protected String vanityName; + + @JsonProperty("unshared_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date unsharedAt; + + protected AddShareLinkToWebLinkRequestBodySharedLinkPermissionsField permissions; + + public AddShareLinkToWebLinkRequestBodySharedLinkField() { + super(); + } + + protected AddShareLinkToWebLinkRequestBodySharedLinkField(Builder builder) { + super(); + this.access = builder.access; + this.password = builder.password; + this.vanityName = builder.vanityName; + this.unsharedAt = builder.unsharedAt; + this.permissions = builder.permissions; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getAccess() { + return access; + } + + public String getPassword() { + return password; + } + + public String getVanityName() { + return vanityName; + } + + public Date getUnsharedAt() { + return unsharedAt; + } + + public AddShareLinkToWebLinkRequestBodySharedLinkPermissionsField getPermissions() { + return permissions; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddShareLinkToWebLinkRequestBodySharedLinkField casted = + (AddShareLinkToWebLinkRequestBodySharedLinkField) o; + return Objects.equals(access, casted.access) + && Objects.equals(password, casted.password) + && Objects.equals(vanityName, casted.vanityName) + && Objects.equals(unsharedAt, casted.unsharedAt) + && Objects.equals(permissions, casted.permissions); + } + + @Override + public int hashCode() { + return Objects.hash(access, password, vanityName, unsharedAt, permissions); + } + + @Override + public String toString() { + return "AddShareLinkToWebLinkRequestBodySharedLinkField{" + + "access='" + + access + + '\'' + + ", " + + "password='" + + password + + '\'' + + ", " + + "vanityName='" + + vanityName + + '\'' + + ", " + + "unsharedAt='" + + unsharedAt + + '\'' + + ", " + + "permissions='" + + permissions + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper access; + + protected String password; + + protected String vanityName; + + protected Date unsharedAt; + + protected AddShareLinkToWebLinkRequestBodySharedLinkPermissionsField permissions; + + public Builder access(AddShareLinkToWebLinkRequestBodySharedLinkAccessField access) { + this.access = new EnumWrapper(access); + return this; + } + + public Builder access( + EnumWrapper access) { + this.access = access; + return this; + } + + public Builder password(String password) { + this.password = password; + this.markNullableFieldAsSet("password"); + return this; + } + + public Builder vanityName(String vanityName) { + this.vanityName = vanityName; + return this; + } + + public Builder unsharedAt(Date unsharedAt) { + this.unsharedAt = unsharedAt; + return this; + } + + public Builder permissions( + AddShareLinkToWebLinkRequestBodySharedLinkPermissionsField permissions) { + this.permissions = permissions; + return this; + } + + public AddShareLinkToWebLinkRequestBodySharedLinkField build() { + return new AddShareLinkToWebLinkRequestBodySharedLinkField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkPermissionsField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkPermissionsField.java new file mode 100644 index 000000000..5b60ba3df --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkPermissionsField.java @@ -0,0 +1,109 @@ +package com.box.sdkgen.managers.sharedlinksweblinks; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AddShareLinkToWebLinkRequestBodySharedLinkPermissionsField extends SerializableObject { + + @JsonProperty("can_download") + protected Boolean canDownload; + + @JsonProperty("can_preview") + protected Boolean canPreview; + + @JsonProperty("can_edit") + protected Boolean canEdit; + + public AddShareLinkToWebLinkRequestBodySharedLinkPermissionsField() { + super(); + } + + protected AddShareLinkToWebLinkRequestBodySharedLinkPermissionsField(Builder builder) { + super(); + this.canDownload = builder.canDownload; + this.canPreview = builder.canPreview; + this.canEdit = builder.canEdit; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getCanDownload() { + return canDownload; + } + + public Boolean getCanPreview() { + return canPreview; + } + + public Boolean getCanEdit() { + return canEdit; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddShareLinkToWebLinkRequestBodySharedLinkPermissionsField casted = + (AddShareLinkToWebLinkRequestBodySharedLinkPermissionsField) o; + return Objects.equals(canDownload, casted.canDownload) + && Objects.equals(canPreview, casted.canPreview) + && Objects.equals(canEdit, casted.canEdit); + } + + @Override + public int hashCode() { + return Objects.hash(canDownload, canPreview, canEdit); + } + + @Override + public String toString() { + return "AddShareLinkToWebLinkRequestBodySharedLinkPermissionsField{" + + "canDownload='" + + canDownload + + '\'' + + ", " + + "canPreview='" + + canPreview + + '\'' + + ", " + + "canEdit='" + + canEdit + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean canDownload; + + protected Boolean canPreview; + + protected Boolean canEdit; + + public Builder canDownload(Boolean canDownload) { + this.canDownload = canDownload; + return this; + } + + public Builder canPreview(Boolean canPreview) { + this.canPreview = canPreview; + return this; + } + + public Builder canEdit(Boolean canEdit) { + this.canEdit = canEdit; + return this; + } + + public AddShareLinkToWebLinkRequestBodySharedLinkPermissionsField build() { + return new AddShareLinkToWebLinkRequestBodySharedLinkPermissionsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/FindWebLinkForSharedLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/FindWebLinkForSharedLinkHeaders.java new file mode 100644 index 000000000..33210d45c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/FindWebLinkForSharedLinkHeaders.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.managers.sharedlinksweblinks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class FindWebLinkForSharedLinkHeaders { + + public String ifNoneMatch; + + public final String boxapi; + + public Map extraHeaders; + + public FindWebLinkForSharedLinkHeaders(String boxapi) { + this.boxapi = boxapi; + this.extraHeaders = mapOf(); + } + + protected FindWebLinkForSharedLinkHeaders(Builder builder) { + this.ifNoneMatch = builder.ifNoneMatch; + this.boxapi = builder.boxapi; + this.extraHeaders = builder.extraHeaders; + } + + public String getIfNoneMatch() { + return ifNoneMatch; + } + + public String getBoxapi() { + return boxapi; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected String ifNoneMatch; + + protected final String boxapi; + + protected Map extraHeaders; + + public Builder(String boxapi) { + this.boxapi = boxapi; + this.extraHeaders = mapOf(); + } + + public Builder ifNoneMatch(String ifNoneMatch) { + this.ifNoneMatch = ifNoneMatch; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public FindWebLinkForSharedLinkHeaders build() { + return new FindWebLinkForSharedLinkHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/FindWebLinkForSharedLinkQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/FindWebLinkForSharedLinkQueryParams.java new file mode 100644 index 000000000..26de0d3b1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/FindWebLinkForSharedLinkQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.sharedlinksweblinks; + +import java.util.List; + +public class FindWebLinkForSharedLinkQueryParams { + + public List fields; + + public FindWebLinkForSharedLinkQueryParams() {} + + protected FindWebLinkForSharedLinkQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public FindWebLinkForSharedLinkQueryParams build() { + return new FindWebLinkForSharedLinkQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/GetSharedLinkForWebLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/GetSharedLinkForWebLinkHeaders.java new file mode 100644 index 000000000..090c05a3d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/GetSharedLinkForWebLinkHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.sharedlinksweblinks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetSharedLinkForWebLinkHeaders { + + public Map extraHeaders; + + public GetSharedLinkForWebLinkHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetSharedLinkForWebLinkHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetSharedLinkForWebLinkHeaders build() { + return new GetSharedLinkForWebLinkHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/GetSharedLinkForWebLinkQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/GetSharedLinkForWebLinkQueryParams.java new file mode 100644 index 000000000..874f64cdd --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/GetSharedLinkForWebLinkQueryParams.java @@ -0,0 +1,14 @@ +package com.box.sdkgen.managers.sharedlinksweblinks; + +public class GetSharedLinkForWebLinkQueryParams { + + public final String fields; + + public GetSharedLinkForWebLinkQueryParams(String fields) { + this.fields = fields; + } + + public String getFields() { + return fields; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkHeaders.java new file mode 100644 index 000000000..0817f6bff --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.sharedlinksweblinks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class RemoveSharedLinkFromWebLinkHeaders { + + public Map extraHeaders; + + public RemoveSharedLinkFromWebLinkHeaders() { + this.extraHeaders = mapOf(); + } + + protected RemoveSharedLinkFromWebLinkHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public RemoveSharedLinkFromWebLinkHeaders build() { + return new RemoveSharedLinkFromWebLinkHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkQueryParams.java new file mode 100644 index 000000000..68b8dadd3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkQueryParams.java @@ -0,0 +1,14 @@ +package com.box.sdkgen.managers.sharedlinksweblinks; + +public class RemoveSharedLinkFromWebLinkQueryParams { + + public final String fields; + + public RemoveSharedLinkFromWebLinkQueryParams(String fields) { + this.fields = fields; + } + + public String getFields() { + return fields; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkRequestBody.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkRequestBody.java new file mode 100644 index 000000000..24b1fc11a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkRequestBody.java @@ -0,0 +1,67 @@ +package com.box.sdkgen.managers.sharedlinksweblinks; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class RemoveSharedLinkFromWebLinkRequestBody extends SerializableObject { + + @JsonProperty("shared_link") + @Nullable + protected RemoveSharedLinkFromWebLinkRequestBodySharedLinkField sharedLink; + + public RemoveSharedLinkFromWebLinkRequestBody() { + super(); + } + + protected RemoveSharedLinkFromWebLinkRequestBody(Builder builder) { + super(); + this.sharedLink = builder.sharedLink; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public RemoveSharedLinkFromWebLinkRequestBodySharedLinkField getSharedLink() { + return sharedLink; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RemoveSharedLinkFromWebLinkRequestBody casted = (RemoveSharedLinkFromWebLinkRequestBody) o; + return Objects.equals(sharedLink, casted.sharedLink); + } + + @Override + public int hashCode() { + return Objects.hash(sharedLink); + } + + @Override + public String toString() { + return "RemoveSharedLinkFromWebLinkRequestBody{" + "sharedLink='" + sharedLink + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected RemoveSharedLinkFromWebLinkRequestBodySharedLinkField sharedLink; + + public Builder sharedLink(RemoveSharedLinkFromWebLinkRequestBodySharedLinkField sharedLink) { + this.sharedLink = sharedLink; + this.markNullableFieldAsSet("shared_link"); + return this; + } + + public RemoveSharedLinkFromWebLinkRequestBody build() { + return new RemoveSharedLinkFromWebLinkRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkRequestBodySharedLinkField.java new file mode 100644 index 000000000..3292b8194 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkRequestBodySharedLinkField.java @@ -0,0 +1,17 @@ +package com.box.sdkgen.managers.sharedlinksweblinks; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; + +@JsonFilter("nullablePropertyFilter") +public class RemoveSharedLinkFromWebLinkRequestBodySharedLinkField extends SerializableObject { + + public RemoveSharedLinkFromWebLinkRequestBodySharedLinkField() { + super(); + } + + @Override + public String toString() { + return "RemoveSharedLinkFromWebLinkRequestBodySharedLinkField{" + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/SharedLinksWebLinksManager.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/SharedLinksWebLinksManager.java new file mode 100644 index 000000000..3c6a50a11 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/SharedLinksWebLinksManager.java @@ -0,0 +1,300 @@ +package com.box.sdkgen.managers.sharedlinksweblinks; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.weblink.WebLink; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class SharedLinksWebLinksManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public SharedLinksWebLinksManager() { + this.networkSession = new NetworkSession(); + } + + protected SharedLinksWebLinksManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public WebLink findWebLinkForSharedLink(FindWebLinkForSharedLinkHeaders headers) { + return findWebLinkForSharedLink(new FindWebLinkForSharedLinkQueryParams(), headers); + } + + public WebLink findWebLinkForSharedLink( + FindWebLinkForSharedLinkQueryParams queryParams, FindWebLinkForSharedLinkHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf( + entryOf("if-none-match", convertToString(headers.getIfNoneMatch())), + entryOf("boxapi", convertToString(headers.getBoxapi()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shared_items#web_links"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), WebLink.class); + } + + public WebLink getSharedLinkForWebLink( + String webLinkId, GetSharedLinkForWebLinkQueryParams queryParams) { + return getSharedLinkForWebLink(webLinkId, queryParams, new GetSharedLinkForWebLinkHeaders()); + } + + public WebLink getSharedLinkForWebLink( + String webLinkId, + GetSharedLinkForWebLinkQueryParams queryParams, + GetSharedLinkForWebLinkHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/web_links/", + convertToString(webLinkId), + "#get_shared_link"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), WebLink.class); + } + + public WebLink addShareLinkToWebLink( + String webLinkId, AddShareLinkToWebLinkQueryParams queryParams) { + return addShareLinkToWebLink( + webLinkId, + new AddShareLinkToWebLinkRequestBody(), + queryParams, + new AddShareLinkToWebLinkHeaders()); + } + + public WebLink addShareLinkToWebLink( + String webLinkId, + AddShareLinkToWebLinkRequestBody requestBody, + AddShareLinkToWebLinkQueryParams queryParams) { + return addShareLinkToWebLink( + webLinkId, requestBody, queryParams, new AddShareLinkToWebLinkHeaders()); + } + + public WebLink addShareLinkToWebLink( + String webLinkId, + AddShareLinkToWebLinkQueryParams queryParams, + AddShareLinkToWebLinkHeaders headers) { + return addShareLinkToWebLink( + webLinkId, new AddShareLinkToWebLinkRequestBody(), queryParams, headers); + } + + public WebLink addShareLinkToWebLink( + String webLinkId, + AddShareLinkToWebLinkRequestBody requestBody, + AddShareLinkToWebLinkQueryParams queryParams, + AddShareLinkToWebLinkHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/web_links/", + convertToString(webLinkId), + "#add_shared_link"), + "PUT") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), WebLink.class); + } + + public WebLink updateSharedLinkOnWebLink( + String webLinkId, UpdateSharedLinkOnWebLinkQueryParams queryParams) { + return updateSharedLinkOnWebLink( + webLinkId, + new UpdateSharedLinkOnWebLinkRequestBody(), + queryParams, + new UpdateSharedLinkOnWebLinkHeaders()); + } + + public WebLink updateSharedLinkOnWebLink( + String webLinkId, + UpdateSharedLinkOnWebLinkRequestBody requestBody, + UpdateSharedLinkOnWebLinkQueryParams queryParams) { + return updateSharedLinkOnWebLink( + webLinkId, requestBody, queryParams, new UpdateSharedLinkOnWebLinkHeaders()); + } + + public WebLink updateSharedLinkOnWebLink( + String webLinkId, + UpdateSharedLinkOnWebLinkQueryParams queryParams, + UpdateSharedLinkOnWebLinkHeaders headers) { + return updateSharedLinkOnWebLink( + webLinkId, new UpdateSharedLinkOnWebLinkRequestBody(), queryParams, headers); + } + + public WebLink updateSharedLinkOnWebLink( + String webLinkId, + UpdateSharedLinkOnWebLinkRequestBody requestBody, + UpdateSharedLinkOnWebLinkQueryParams queryParams, + UpdateSharedLinkOnWebLinkHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/web_links/", + convertToString(webLinkId), + "#update_shared_link"), + "PUT") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), WebLink.class); + } + + public WebLink removeSharedLinkFromWebLink( + String webLinkId, RemoveSharedLinkFromWebLinkQueryParams queryParams) { + return removeSharedLinkFromWebLink( + webLinkId, + new RemoveSharedLinkFromWebLinkRequestBody(), + queryParams, + new RemoveSharedLinkFromWebLinkHeaders()); + } + + public WebLink removeSharedLinkFromWebLink( + String webLinkId, + RemoveSharedLinkFromWebLinkRequestBody requestBody, + RemoveSharedLinkFromWebLinkQueryParams queryParams) { + return removeSharedLinkFromWebLink( + webLinkId, requestBody, queryParams, new RemoveSharedLinkFromWebLinkHeaders()); + } + + public WebLink removeSharedLinkFromWebLink( + String webLinkId, + RemoveSharedLinkFromWebLinkQueryParams queryParams, + RemoveSharedLinkFromWebLinkHeaders headers) { + return removeSharedLinkFromWebLink( + webLinkId, new RemoveSharedLinkFromWebLinkRequestBody(), queryParams, headers); + } + + public WebLink removeSharedLinkFromWebLink( + String webLinkId, + RemoveSharedLinkFromWebLinkRequestBody requestBody, + RemoveSharedLinkFromWebLinkQueryParams queryParams, + RemoveSharedLinkFromWebLinkHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/web_links/", + convertToString(webLinkId), + "#remove_shared_link"), + "PUT") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), WebLink.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public SharedLinksWebLinksManager build() { + return new SharedLinksWebLinksManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkHeaders.java new file mode 100644 index 000000000..0473021b5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.sharedlinksweblinks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateSharedLinkOnWebLinkHeaders { + + public Map extraHeaders; + + public UpdateSharedLinkOnWebLinkHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateSharedLinkOnWebLinkHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateSharedLinkOnWebLinkHeaders build() { + return new UpdateSharedLinkOnWebLinkHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkQueryParams.java new file mode 100644 index 000000000..472976594 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkQueryParams.java @@ -0,0 +1,14 @@ +package com.box.sdkgen.managers.sharedlinksweblinks; + +public class UpdateSharedLinkOnWebLinkQueryParams { + + public final String fields; + + public UpdateSharedLinkOnWebLinkQueryParams(String fields) { + this.fields = fields; + } + + public String getFields() { + return fields; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBody.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBody.java new file mode 100644 index 000000000..c59c47a1b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBody.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.sharedlinksweblinks; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateSharedLinkOnWebLinkRequestBody extends SerializableObject { + + @JsonProperty("shared_link") + protected UpdateSharedLinkOnWebLinkRequestBodySharedLinkField sharedLink; + + public UpdateSharedLinkOnWebLinkRequestBody() { + super(); + } + + protected UpdateSharedLinkOnWebLinkRequestBody(Builder builder) { + super(); + this.sharedLink = builder.sharedLink; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public UpdateSharedLinkOnWebLinkRequestBodySharedLinkField getSharedLink() { + return sharedLink; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateSharedLinkOnWebLinkRequestBody casted = (UpdateSharedLinkOnWebLinkRequestBody) o; + return Objects.equals(sharedLink, casted.sharedLink); + } + + @Override + public int hashCode() { + return Objects.hash(sharedLink); + } + + @Override + public String toString() { + return "UpdateSharedLinkOnWebLinkRequestBody{" + "sharedLink='" + sharedLink + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected UpdateSharedLinkOnWebLinkRequestBodySharedLinkField sharedLink; + + public Builder sharedLink(UpdateSharedLinkOnWebLinkRequestBodySharedLinkField sharedLink) { + this.sharedLink = sharedLink; + return this; + } + + public UpdateSharedLinkOnWebLinkRequestBody build() { + return new UpdateSharedLinkOnWebLinkRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessField.java new file mode 100644 index 000000000..6c70eaad3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessField.java @@ -0,0 +1,67 @@ +package com.box.sdkgen.managers.sharedlinksweblinks; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessField implements Valuable { + OPEN("open"), + COMPANY("company"), + COLLABORATORS("collaborators"); + + private final String value; + + UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper(value)); + } + } + + public static class UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkField.java new file mode 100644 index 000000000..626ba9c14 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkField.java @@ -0,0 +1,171 @@ +package com.box.sdkgen.managers.sharedlinksweblinks; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateSharedLinkOnWebLinkRequestBodySharedLinkField extends SerializableObject { + + @JsonDeserialize( + using = + UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessField + .UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessFieldDeserializer.class) + @JsonSerialize( + using = + UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessField + .UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessFieldSerializer.class) + protected EnumWrapper access; + + @Nullable protected String password; + + @JsonProperty("vanity_name") + protected String vanityName; + + @JsonProperty("unshared_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date unsharedAt; + + protected UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField permissions; + + public UpdateSharedLinkOnWebLinkRequestBodySharedLinkField() { + super(); + } + + protected UpdateSharedLinkOnWebLinkRequestBodySharedLinkField(Builder builder) { + super(); + this.access = builder.access; + this.password = builder.password; + this.vanityName = builder.vanityName; + this.unsharedAt = builder.unsharedAt; + this.permissions = builder.permissions; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getAccess() { + return access; + } + + public String getPassword() { + return password; + } + + public String getVanityName() { + return vanityName; + } + + public Date getUnsharedAt() { + return unsharedAt; + } + + public UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField getPermissions() { + return permissions; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateSharedLinkOnWebLinkRequestBodySharedLinkField casted = + (UpdateSharedLinkOnWebLinkRequestBodySharedLinkField) o; + return Objects.equals(access, casted.access) + && Objects.equals(password, casted.password) + && Objects.equals(vanityName, casted.vanityName) + && Objects.equals(unsharedAt, casted.unsharedAt) + && Objects.equals(permissions, casted.permissions); + } + + @Override + public int hashCode() { + return Objects.hash(access, password, vanityName, unsharedAt, permissions); + } + + @Override + public String toString() { + return "UpdateSharedLinkOnWebLinkRequestBodySharedLinkField{" + + "access='" + + access + + '\'' + + ", " + + "password='" + + password + + '\'' + + ", " + + "vanityName='" + + vanityName + + '\'' + + ", " + + "unsharedAt='" + + unsharedAt + + '\'' + + ", " + + "permissions='" + + permissions + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper access; + + protected String password; + + protected String vanityName; + + protected Date unsharedAt; + + protected UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField permissions; + + public Builder access(UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessField access) { + this.access = + new EnumWrapper(access); + return this; + } + + public Builder access( + EnumWrapper access) { + this.access = access; + return this; + } + + public Builder password(String password) { + this.password = password; + this.markNullableFieldAsSet("password"); + return this; + } + + public Builder vanityName(String vanityName) { + this.vanityName = vanityName; + return this; + } + + public Builder unsharedAt(Date unsharedAt) { + this.unsharedAt = unsharedAt; + return this; + } + + public Builder permissions( + UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField permissions) { + this.permissions = permissions; + return this; + } + + public UpdateSharedLinkOnWebLinkRequestBodySharedLinkField build() { + return new UpdateSharedLinkOnWebLinkRequestBodySharedLinkField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField.java new file mode 100644 index 000000000..778f225b9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField.java @@ -0,0 +1,110 @@ +package com.box.sdkgen.managers.sharedlinksweblinks; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField + extends SerializableObject { + + @JsonProperty("can_download") + protected Boolean canDownload; + + @JsonProperty("can_preview") + protected Boolean canPreview; + + @JsonProperty("can_edit") + protected Boolean canEdit; + + public UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField() { + super(); + } + + protected UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField(Builder builder) { + super(); + this.canDownload = builder.canDownload; + this.canPreview = builder.canPreview; + this.canEdit = builder.canEdit; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getCanDownload() { + return canDownload; + } + + public Boolean getCanPreview() { + return canPreview; + } + + public Boolean getCanEdit() { + return canEdit; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField casted = + (UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField) o; + return Objects.equals(canDownload, casted.canDownload) + && Objects.equals(canPreview, casted.canPreview) + && Objects.equals(canEdit, casted.canEdit); + } + + @Override + public int hashCode() { + return Objects.hash(canDownload, canPreview, canEdit); + } + + @Override + public String toString() { + return "UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField{" + + "canDownload='" + + canDownload + + '\'' + + ", " + + "canPreview='" + + canPreview + + '\'' + + ", " + + "canEdit='" + + canEdit + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean canDownload; + + protected Boolean canPreview; + + protected Boolean canEdit; + + public Builder canDownload(Boolean canDownload) { + this.canDownload = canDownload; + return this; + } + + public Builder canPreview(Boolean canPreview) { + this.canPreview = canPreview; + return this; + } + + public Builder canEdit(Boolean canEdit) { + this.canEdit = canEdit; + return this; + } + + public UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField build() { + return new UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/CreateShieldInformationBarrierReportHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/CreateShieldInformationBarrierReportHeaders.java new file mode 100644 index 000000000..edea1eec3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/CreateShieldInformationBarrierReportHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.shieldinformationbarrierreports; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateShieldInformationBarrierReportHeaders { + + public Map extraHeaders; + + public CreateShieldInformationBarrierReportHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateShieldInformationBarrierReportHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateShieldInformationBarrierReportHeaders build() { + return new CreateShieldInformationBarrierReportHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportByIdHeaders.java new file mode 100644 index 000000000..8c94826cd --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.shieldinformationbarrierreports; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetShieldInformationBarrierReportByIdHeaders { + + public Map extraHeaders; + + public GetShieldInformationBarrierReportByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetShieldInformationBarrierReportByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetShieldInformationBarrierReportByIdHeaders build() { + return new GetShieldInformationBarrierReportByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportsHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportsHeaders.java new file mode 100644 index 000000000..fc6084b2b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.shieldinformationbarrierreports; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetShieldInformationBarrierReportsHeaders { + + public Map extraHeaders; + + public GetShieldInformationBarrierReportsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetShieldInformationBarrierReportsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetShieldInformationBarrierReportsHeaders build() { + return new GetShieldInformationBarrierReportsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportsQueryParams.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportsQueryParams.java new file mode 100644 index 000000000..ffcd4f637 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportsQueryParams.java @@ -0,0 +1,59 @@ +package com.box.sdkgen.managers.shieldinformationbarrierreports; + +public class GetShieldInformationBarrierReportsQueryParams { + + public final String shieldInformationBarrierId; + + public String marker; + + public Long limit; + + public GetShieldInformationBarrierReportsQueryParams(String shieldInformationBarrierId) { + this.shieldInformationBarrierId = shieldInformationBarrierId; + } + + protected GetShieldInformationBarrierReportsQueryParams(Builder builder) { + this.shieldInformationBarrierId = builder.shieldInformationBarrierId; + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getShieldInformationBarrierId() { + return shieldInformationBarrierId; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected final String shieldInformationBarrierId; + + protected String marker; + + protected Long limit; + + public Builder(String shieldInformationBarrierId) { + this.shieldInformationBarrierId = shieldInformationBarrierId; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetShieldInformationBarrierReportsQueryParams build() { + return new GetShieldInformationBarrierReportsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/ShieldInformationBarrierReportsManager.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/ShieldInformationBarrierReportsManager.java new file mode 100644 index 000000000..cec771eb0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/ShieldInformationBarrierReportsManager.java @@ -0,0 +1,163 @@ +package com.box.sdkgen.managers.shieldinformationbarrierreports; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.shieldinformationbarrierreference.ShieldInformationBarrierReference; +import com.box.sdkgen.schemas.shieldinformationbarrierreport.ShieldInformationBarrierReport; +import com.box.sdkgen.schemas.shieldinformationbarrierreports.ShieldInformationBarrierReports; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class ShieldInformationBarrierReportsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public ShieldInformationBarrierReportsManager() { + this.networkSession = new NetworkSession(); + } + + protected ShieldInformationBarrierReportsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public ShieldInformationBarrierReports getShieldInformationBarrierReports( + GetShieldInformationBarrierReportsQueryParams queryParams) { + return getShieldInformationBarrierReports( + queryParams, new GetShieldInformationBarrierReportsHeaders()); + } + + public ShieldInformationBarrierReports getShieldInformationBarrierReports( + GetShieldInformationBarrierReportsQueryParams queryParams, + GetShieldInformationBarrierReportsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf( + "shield_information_barrier_id", + convertToString(queryParams.getShieldInformationBarrierId())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shield_information_barrier_reports"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ShieldInformationBarrierReports.class); + } + + public ShieldInformationBarrierReport createShieldInformationBarrierReport( + ShieldInformationBarrierReference requestBody) { + return createShieldInformationBarrierReport( + requestBody, new CreateShieldInformationBarrierReportHeaders()); + } + + public ShieldInformationBarrierReport createShieldInformationBarrierReport( + ShieldInformationBarrierReference requestBody, + CreateShieldInformationBarrierReportHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shield_information_barrier_reports"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ShieldInformationBarrierReport.class); + } + + public ShieldInformationBarrierReport getShieldInformationBarrierReportById( + String shieldInformationBarrierReportId) { + return getShieldInformationBarrierReportById( + shieldInformationBarrierReportId, new GetShieldInformationBarrierReportByIdHeaders()); + } + + public ShieldInformationBarrierReport getShieldInformationBarrierReportById( + String shieldInformationBarrierReportId, + GetShieldInformationBarrierReportByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shield_information_barrier_reports/", + convertToString(shieldInformationBarrierReportId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ShieldInformationBarrierReport.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public ShieldInformationBarrierReportsManager build() { + return new ShieldInformationBarrierReportsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/CreateShieldInformationBarrierHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/CreateShieldInformationBarrierHeaders.java new file mode 100644 index 000000000..21ab7b22f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/CreateShieldInformationBarrierHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.shieldinformationbarriers; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateShieldInformationBarrierHeaders { + + public Map extraHeaders; + + public CreateShieldInformationBarrierHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateShieldInformationBarrierHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateShieldInformationBarrierHeaders build() { + return new CreateShieldInformationBarrierHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/CreateShieldInformationBarrierRequestBody.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/CreateShieldInformationBarrierRequestBody.java new file mode 100644 index 000000000..578db8add --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/CreateShieldInformationBarrierRequestBody.java @@ -0,0 +1,46 @@ +package com.box.sdkgen.managers.shieldinformationbarriers; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.enterprisebase.EnterpriseBase; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateShieldInformationBarrierRequestBody extends SerializableObject { + + protected final EnterpriseBase enterprise; + + public CreateShieldInformationBarrierRequestBody( + @JsonProperty("enterprise") EnterpriseBase enterprise) { + super(); + this.enterprise = enterprise; + } + + public EnterpriseBase getEnterprise() { + return enterprise; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateShieldInformationBarrierRequestBody casted = + (CreateShieldInformationBarrierRequestBody) o; + return Objects.equals(enterprise, casted.enterprise); + } + + @Override + public int hashCode() { + return Objects.hash(enterprise); + } + + @Override + public String toString() { + return "CreateShieldInformationBarrierRequestBody{" + "enterprise='" + enterprise + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarrierByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarrierByIdHeaders.java new file mode 100644 index 000000000..dd4413ea6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarrierByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.shieldinformationbarriers; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetShieldInformationBarrierByIdHeaders { + + public Map extraHeaders; + + public GetShieldInformationBarrierByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetShieldInformationBarrierByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetShieldInformationBarrierByIdHeaders build() { + return new GetShieldInformationBarrierByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarriersHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarriersHeaders.java new file mode 100644 index 000000000..866e75b81 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarriersHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.shieldinformationbarriers; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetShieldInformationBarriersHeaders { + + public Map extraHeaders; + + public GetShieldInformationBarriersHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetShieldInformationBarriersHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetShieldInformationBarriersHeaders build() { + return new GetShieldInformationBarriersHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarriersQueryParams.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarriersQueryParams.java new file mode 100644 index 000000000..3c0ce59a4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarriersQueryParams.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.shieldinformationbarriers; + +public class GetShieldInformationBarriersQueryParams { + + public String marker; + + public Long limit; + + public GetShieldInformationBarriersQueryParams() {} + + protected GetShieldInformationBarriersQueryParams(Builder builder) { + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected String marker; + + protected Long limit; + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetShieldInformationBarriersQueryParams build() { + return new GetShieldInformationBarriersQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/ShieldInformationBarriersManager.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/ShieldInformationBarriersManager.java new file mode 100644 index 000000000..c8abf5726 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/ShieldInformationBarriersManager.java @@ -0,0 +1,196 @@ +package com.box.sdkgen.managers.shieldinformationbarriers; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.shieldinformationbarrier.ShieldInformationBarrier; +import com.box.sdkgen.schemas.shieldinformationbarriers.ShieldInformationBarriers; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class ShieldInformationBarriersManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public ShieldInformationBarriersManager() { + this.networkSession = new NetworkSession(); + } + + protected ShieldInformationBarriersManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public ShieldInformationBarrier getShieldInformationBarrierById( + String shieldInformationBarrierId) { + return getShieldInformationBarrierById( + shieldInformationBarrierId, new GetShieldInformationBarrierByIdHeaders()); + } + + public ShieldInformationBarrier getShieldInformationBarrierById( + String shieldInformationBarrierId, GetShieldInformationBarrierByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shield_information_barriers/", + convertToString(shieldInformationBarrierId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ShieldInformationBarrier.class); + } + + public ShieldInformationBarrier updateShieldInformationBarrierStatus( + UpdateShieldInformationBarrierStatusRequestBody requestBody) { + return updateShieldInformationBarrierStatus( + requestBody, new UpdateShieldInformationBarrierStatusHeaders()); + } + + public ShieldInformationBarrier updateShieldInformationBarrierStatus( + UpdateShieldInformationBarrierStatusRequestBody requestBody, + UpdateShieldInformationBarrierStatusHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shield_information_barriers/change_status"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ShieldInformationBarrier.class); + } + + public ShieldInformationBarriers getShieldInformationBarriers() { + return getShieldInformationBarriers( + new GetShieldInformationBarriersQueryParams(), new GetShieldInformationBarriersHeaders()); + } + + public ShieldInformationBarriers getShieldInformationBarriers( + GetShieldInformationBarriersQueryParams queryParams) { + return getShieldInformationBarriers(queryParams, new GetShieldInformationBarriersHeaders()); + } + + public ShieldInformationBarriers getShieldInformationBarriers( + GetShieldInformationBarriersHeaders headers) { + return getShieldInformationBarriers(new GetShieldInformationBarriersQueryParams(), headers); + } + + public ShieldInformationBarriers getShieldInformationBarriers( + GetShieldInformationBarriersQueryParams queryParams, + GetShieldInformationBarriersHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shield_information_barriers"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ShieldInformationBarriers.class); + } + + public ShieldInformationBarrier createShieldInformationBarrier( + CreateShieldInformationBarrierRequestBody requestBody) { + return createShieldInformationBarrier(requestBody, new CreateShieldInformationBarrierHeaders()); + } + + public ShieldInformationBarrier createShieldInformationBarrier( + CreateShieldInformationBarrierRequestBody requestBody, + CreateShieldInformationBarrierHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shield_information_barriers"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ShieldInformationBarrier.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public ShieldInformationBarriersManager build() { + return new ShieldInformationBarriersManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusHeaders.java new file mode 100644 index 000000000..a82fea5e6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.shieldinformationbarriers; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateShieldInformationBarrierStatusHeaders { + + public Map extraHeaders; + + public UpdateShieldInformationBarrierStatusHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateShieldInformationBarrierStatusHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateShieldInformationBarrierStatusHeaders build() { + return new UpdateShieldInformationBarrierStatusHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusRequestBody.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusRequestBody.java new file mode 100644 index 000000000..d2d92b6ec --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusRequestBody.java @@ -0,0 +1,81 @@ +package com.box.sdkgen.managers.shieldinformationbarriers; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateShieldInformationBarrierStatusRequestBody extends SerializableObject { + + protected final String id; + + @JsonDeserialize( + using = + UpdateShieldInformationBarrierStatusRequestBodyStatusField + .UpdateShieldInformationBarrierStatusRequestBodyStatusFieldDeserializer.class) + @JsonSerialize( + using = + UpdateShieldInformationBarrierStatusRequestBodyStatusField + .UpdateShieldInformationBarrierStatusRequestBodyStatusFieldSerializer.class) + protected final EnumWrapper status; + + public UpdateShieldInformationBarrierStatusRequestBody( + String id, UpdateShieldInformationBarrierStatusRequestBodyStatusField status) { + super(); + this.id = id; + this.status = + new EnumWrapper(status); + } + + public UpdateShieldInformationBarrierStatusRequestBody( + @JsonProperty("id") String id, + @JsonProperty("status") + EnumWrapper status) { + super(); + this.id = id; + this.status = status; + } + + public String getId() { + return id; + } + + public EnumWrapper getStatus() { + return status; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateShieldInformationBarrierStatusRequestBody casted = + (UpdateShieldInformationBarrierStatusRequestBody) o; + return Objects.equals(id, casted.id) && Objects.equals(status, casted.status); + } + + @Override + public int hashCode() { + return Objects.hash(id, status); + } + + @Override + public String toString() { + return "UpdateShieldInformationBarrierStatusRequestBody{" + + "id='" + + id + + '\'' + + ", " + + "status='" + + status + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusRequestBodyStatusField.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusRequestBodyStatusField.java new file mode 100644 index 000000000..b4b3216b5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusRequestBodyStatusField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.managers.shieldinformationbarriers; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateShieldInformationBarrierStatusRequestBodyStatusField implements Valuable { + PENDING("pending"), + DISABLED("disabled"); + + private final String value; + + UpdateShieldInformationBarrierStatusRequestBodyStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateShieldInformationBarrierStatusRequestBodyStatusFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public UpdateShieldInformationBarrierStatusRequestBodyStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateShieldInformationBarrierStatusRequestBodyStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper(value)); + } + } + + public static class UpdateShieldInformationBarrierStatusRequestBodyStatusFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public UpdateShieldInformationBarrierStatusRequestBodyStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberHeaders.java new file mode 100644 index 000000000..7283b1a84 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegmentmembers; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateShieldInformationBarrierSegmentMemberHeaders { + + public Map extraHeaders; + + public CreateShieldInformationBarrierSegmentMemberHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateShieldInformationBarrierSegmentMemberHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateShieldInformationBarrierSegmentMemberHeaders build() { + return new CreateShieldInformationBarrierSegmentMemberHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBody.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBody.java new file mode 100644 index 000000000..e2d6e2467 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBody.java @@ -0,0 +1,157 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegmentmembers; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.shieldinformationbarrierbase.ShieldInformationBarrierBase; +import com.box.sdkgen.schemas.userbase.UserBase; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateShieldInformationBarrierSegmentMemberRequestBody extends SerializableObject { + + @JsonDeserialize( + using = + CreateShieldInformationBarrierSegmentMemberRequestBodyTypeField + .CreateShieldInformationBarrierSegmentMemberRequestBodyTypeFieldDeserializer.class) + @JsonSerialize( + using = + CreateShieldInformationBarrierSegmentMemberRequestBodyTypeField + .CreateShieldInformationBarrierSegmentMemberRequestBodyTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("shield_information_barrier") + protected ShieldInformationBarrierBase shieldInformationBarrier; + + @JsonProperty("shield_information_barrier_segment") + protected final + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField + shieldInformationBarrierSegment; + + protected final UserBase user; + + public CreateShieldInformationBarrierSegmentMemberRequestBody( + @JsonProperty("shield_information_barrier_segment") + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField + shieldInformationBarrierSegment, + @JsonProperty("user") UserBase user) { + super(); + this.shieldInformationBarrierSegment = shieldInformationBarrierSegment; + this.user = user; + } + + protected CreateShieldInformationBarrierSegmentMemberRequestBody(Builder builder) { + super(); + this.type = builder.type; + this.shieldInformationBarrier = builder.shieldInformationBarrier; + this.shieldInformationBarrierSegment = builder.shieldInformationBarrierSegment; + this.user = builder.user; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public ShieldInformationBarrierBase getShieldInformationBarrier() { + return shieldInformationBarrier; + } + + public CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField + getShieldInformationBarrierSegment() { + return shieldInformationBarrierSegment; + } + + public UserBase getUser() { + return user; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateShieldInformationBarrierSegmentMemberRequestBody casted = + (CreateShieldInformationBarrierSegmentMemberRequestBody) o; + return Objects.equals(type, casted.type) + && Objects.equals(shieldInformationBarrier, casted.shieldInformationBarrier) + && Objects.equals(shieldInformationBarrierSegment, casted.shieldInformationBarrierSegment) + && Objects.equals(user, casted.user); + } + + @Override + public int hashCode() { + return Objects.hash(type, shieldInformationBarrier, shieldInformationBarrierSegment, user); + } + + @Override + public String toString() { + return "CreateShieldInformationBarrierSegmentMemberRequestBody{" + + "type='" + + type + + '\'' + + ", " + + "shieldInformationBarrier='" + + shieldInformationBarrier + + '\'' + + ", " + + "shieldInformationBarrierSegment='" + + shieldInformationBarrierSegment + + '\'' + + ", " + + "user='" + + user + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected ShieldInformationBarrierBase shieldInformationBarrier; + + protected final + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField + shieldInformationBarrierSegment; + + protected final UserBase user; + + public Builder( + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField + shieldInformationBarrierSegment, + UserBase user) { + super(); + this.shieldInformationBarrierSegment = shieldInformationBarrierSegment; + this.user = user; + } + + public Builder type(CreateShieldInformationBarrierSegmentMemberRequestBodyTypeField type) { + this.type = + new EnumWrapper(type); + return this; + } + + public Builder type( + EnumWrapper type) { + this.type = type; + return this; + } + + public Builder shieldInformationBarrier(ShieldInformationBarrierBase shieldInformationBarrier) { + this.shieldInformationBarrier = shieldInformationBarrier; + return this; + } + + public CreateShieldInformationBarrierSegmentMemberRequestBody build() { + return new CreateShieldInformationBarrierSegmentMemberRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField.java new file mode 100644 index 000000000..ff5431952 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField.java @@ -0,0 +1,127 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegmentmembers; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public +class CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField + extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField + .CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeFieldDeserializer + .class) + @JsonSerialize( + using = + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField + .CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeFieldSerializer + .class) + protected EnumWrapper< + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField> + type; + + public + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField() { + super(); + } + + protected + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField( + Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper< + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField> + getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField + casted = + (CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField) + o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper< + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField> + type; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type( + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField + type) { + this.type = + new EnumWrapper< + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField>( + type); + return this; + } + + public Builder type( + EnumWrapper< + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField> + type) { + this.type = type; + return this; + } + + public + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField + build() { + return new CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField( + this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField.java new file mode 100644 index 000000000..68b49e829 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField.java @@ -0,0 +1,81 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegmentmembers; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField + implements Valuable { + SHIELD_INFORMATION_BARRIER_SEGMENT("shield_information_barrier_segment"); + + private final String value; + + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField( + String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static + class CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper< + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField>> { + + public + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper< + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField> + deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream( + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField + .values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper< + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField>( + value)); + } + } + + public static + class CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeFieldSerializer + extends JsonSerializer< + EnumWrapper< + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField>> { + + public + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper< + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField> + value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBodyTypeField.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBodyTypeField.java new file mode 100644 index 000000000..32caa1e85 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBodyTypeField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegmentmembers; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateShieldInformationBarrierSegmentMemberRequestBodyTypeField implements Valuable { + SHIELD_INFORMATION_BARRIER_SEGMENT_MEMBER("shield_information_barrier_segment_member"); + + private final String value; + + CreateShieldInformationBarrierSegmentMemberRequestBodyTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateShieldInformationBarrierSegmentMemberRequestBodyTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public CreateShieldInformationBarrierSegmentMemberRequestBodyTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateShieldInformationBarrierSegmentMemberRequestBodyTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper( + value)); + } + } + + public static class CreateShieldInformationBarrierSegmentMemberRequestBodyTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public CreateShieldInformationBarrierSegmentMemberRequestBodyTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/DeleteShieldInformationBarrierSegmentMemberByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/DeleteShieldInformationBarrierSegmentMemberByIdHeaders.java new file mode 100644 index 000000000..b4928959c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/DeleteShieldInformationBarrierSegmentMemberByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegmentmembers; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteShieldInformationBarrierSegmentMemberByIdHeaders { + + public Map extraHeaders; + + public DeleteShieldInformationBarrierSegmentMemberByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteShieldInformationBarrierSegmentMemberByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteShieldInformationBarrierSegmentMemberByIdHeaders build() { + return new DeleteShieldInformationBarrierSegmentMemberByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMemberByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMemberByIdHeaders.java new file mode 100644 index 000000000..5f154d50d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMemberByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegmentmembers; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetShieldInformationBarrierSegmentMemberByIdHeaders { + + public Map extraHeaders; + + public GetShieldInformationBarrierSegmentMemberByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetShieldInformationBarrierSegmentMemberByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetShieldInformationBarrierSegmentMemberByIdHeaders build() { + return new GetShieldInformationBarrierSegmentMemberByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMembersHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMembersHeaders.java new file mode 100644 index 000000000..b03c7a299 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMembersHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegmentmembers; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetShieldInformationBarrierSegmentMembersHeaders { + + public Map extraHeaders; + + public GetShieldInformationBarrierSegmentMembersHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetShieldInformationBarrierSegmentMembersHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetShieldInformationBarrierSegmentMembersHeaders build() { + return new GetShieldInformationBarrierSegmentMembersHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMembersQueryParams.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMembersQueryParams.java new file mode 100644 index 000000000..5a3130394 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMembersQueryParams.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegmentmembers; + +public class GetShieldInformationBarrierSegmentMembersQueryParams { + + public final String shieldInformationBarrierSegmentId; + + public String marker; + + public Long limit; + + public GetShieldInformationBarrierSegmentMembersQueryParams( + String shieldInformationBarrierSegmentId) { + this.shieldInformationBarrierSegmentId = shieldInformationBarrierSegmentId; + } + + protected GetShieldInformationBarrierSegmentMembersQueryParams(Builder builder) { + this.shieldInformationBarrierSegmentId = builder.shieldInformationBarrierSegmentId; + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getShieldInformationBarrierSegmentId() { + return shieldInformationBarrierSegmentId; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected final String shieldInformationBarrierSegmentId; + + protected String marker; + + protected Long limit; + + public Builder(String shieldInformationBarrierSegmentId) { + this.shieldInformationBarrierSegmentId = shieldInformationBarrierSegmentId; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetShieldInformationBarrierSegmentMembersQueryParams build() { + return new GetShieldInformationBarrierSegmentMembersQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembersManager.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembersManager.java new file mode 100644 index 000000000..52229db83 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembersManager.java @@ -0,0 +1,193 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegmentmembers; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.shieldinformationbarriersegmentmember.ShieldInformationBarrierSegmentMember; +import com.box.sdkgen.schemas.shieldinformationbarriersegmentmembers.ShieldInformationBarrierSegmentMembers; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class ShieldInformationBarrierSegmentMembersManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public ShieldInformationBarrierSegmentMembersManager() { + this.networkSession = new NetworkSession(); + } + + protected ShieldInformationBarrierSegmentMembersManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public ShieldInformationBarrierSegmentMember getShieldInformationBarrierSegmentMemberById( + String shieldInformationBarrierSegmentMemberId) { + return getShieldInformationBarrierSegmentMemberById( + shieldInformationBarrierSegmentMemberId, + new GetShieldInformationBarrierSegmentMemberByIdHeaders()); + } + + public ShieldInformationBarrierSegmentMember getShieldInformationBarrierSegmentMemberById( + String shieldInformationBarrierSegmentMemberId, + GetShieldInformationBarrierSegmentMemberByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shield_information_barrier_segment_members/", + convertToString(shieldInformationBarrierSegmentMemberId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ShieldInformationBarrierSegmentMember.class); + } + + public void deleteShieldInformationBarrierSegmentMemberById( + String shieldInformationBarrierSegmentMemberId) { + deleteShieldInformationBarrierSegmentMemberById( + shieldInformationBarrierSegmentMemberId, + new DeleteShieldInformationBarrierSegmentMemberByIdHeaders()); + } + + public void deleteShieldInformationBarrierSegmentMemberById( + String shieldInformationBarrierSegmentMemberId, + DeleteShieldInformationBarrierSegmentMemberByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shield_information_barrier_segment_members/", + convertToString(shieldInformationBarrierSegmentMemberId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public ShieldInformationBarrierSegmentMembers getShieldInformationBarrierSegmentMembers( + GetShieldInformationBarrierSegmentMembersQueryParams queryParams) { + return getShieldInformationBarrierSegmentMembers( + queryParams, new GetShieldInformationBarrierSegmentMembersHeaders()); + } + + public ShieldInformationBarrierSegmentMembers getShieldInformationBarrierSegmentMembers( + GetShieldInformationBarrierSegmentMembersQueryParams queryParams, + GetShieldInformationBarrierSegmentMembersHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf( + "shield_information_barrier_segment_id", + convertToString(queryParams.getShieldInformationBarrierSegmentId())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shield_information_barrier_segment_members"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize( + response.getData(), ShieldInformationBarrierSegmentMembers.class); + } + + public ShieldInformationBarrierSegmentMember createShieldInformationBarrierSegmentMember( + CreateShieldInformationBarrierSegmentMemberRequestBody requestBody) { + return createShieldInformationBarrierSegmentMember( + requestBody, new CreateShieldInformationBarrierSegmentMemberHeaders()); + } + + public ShieldInformationBarrierSegmentMember createShieldInformationBarrierSegmentMember( + CreateShieldInformationBarrierSegmentMemberRequestBody requestBody, + CreateShieldInformationBarrierSegmentMemberHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shield_information_barrier_segment_members"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ShieldInformationBarrierSegmentMember.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public ShieldInformationBarrierSegmentMembersManager build() { + return new ShieldInformationBarrierSegmentMembersManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionHeaders.java new file mode 100644 index 000000000..28d9265b5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegmentrestrictions; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateShieldInformationBarrierSegmentRestrictionHeaders { + + public Map extraHeaders; + + public CreateShieldInformationBarrierSegmentRestrictionHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateShieldInformationBarrierSegmentRestrictionHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateShieldInformationBarrierSegmentRestrictionHeaders build() { + return new CreateShieldInformationBarrierSegmentRestrictionHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBody.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBody.java new file mode 100644 index 000000000..b879ab3d0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBody.java @@ -0,0 +1,179 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegmentrestrictions; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.shieldinformationbarrierbase.ShieldInformationBarrierBase; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateShieldInformationBarrierSegmentRestrictionRequestBody + extends SerializableObject { + + @JsonDeserialize( + using = + CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeField + .CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeFieldDeserializer + .class) + @JsonSerialize( + using = + CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeField + .CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("shield_information_barrier") + protected ShieldInformationBarrierBase shieldInformationBarrier; + + @JsonProperty("shield_information_barrier_segment") + protected final + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField + shieldInformationBarrierSegment; + + @JsonProperty("restricted_segment") + protected final CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField + restrictedSegment; + + public CreateShieldInformationBarrierSegmentRestrictionRequestBody( + @JsonProperty("shield_information_barrier_segment") + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField + shieldInformationBarrierSegment, + @JsonProperty("restricted_segment") + CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField + restrictedSegment) { + super(); + this.shieldInformationBarrierSegment = shieldInformationBarrierSegment; + this.restrictedSegment = restrictedSegment; + this.type = + new EnumWrapper( + CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeField + .SHIELD_INFORMATION_BARRIER_SEGMENT_RESTRICTION); + } + + protected CreateShieldInformationBarrierSegmentRestrictionRequestBody(Builder builder) { + super(); + this.type = builder.type; + this.shieldInformationBarrier = builder.shieldInformationBarrier; + this.shieldInformationBarrierSegment = builder.shieldInformationBarrierSegment; + this.restrictedSegment = builder.restrictedSegment; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper + getType() { + return type; + } + + public ShieldInformationBarrierBase getShieldInformationBarrier() { + return shieldInformationBarrier; + } + + public + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField + getShieldInformationBarrierSegment() { + return shieldInformationBarrierSegment; + } + + public CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField + getRestrictedSegment() { + return restrictedSegment; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateShieldInformationBarrierSegmentRestrictionRequestBody casted = + (CreateShieldInformationBarrierSegmentRestrictionRequestBody) o; + return Objects.equals(type, casted.type) + && Objects.equals(shieldInformationBarrier, casted.shieldInformationBarrier) + && Objects.equals(shieldInformationBarrierSegment, casted.shieldInformationBarrierSegment) + && Objects.equals(restrictedSegment, casted.restrictedSegment); + } + + @Override + public int hashCode() { + return Objects.hash( + type, shieldInformationBarrier, shieldInformationBarrierSegment, restrictedSegment); + } + + @Override + public String toString() { + return "CreateShieldInformationBarrierSegmentRestrictionRequestBody{" + + "type='" + + type + + '\'' + + ", " + + "shieldInformationBarrier='" + + shieldInformationBarrier + + '\'' + + ", " + + "shieldInformationBarrierSegment='" + + shieldInformationBarrierSegment + + '\'' + + ", " + + "restrictedSegment='" + + restrictedSegment + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper + type; + + protected ShieldInformationBarrierBase shieldInformationBarrier; + + protected final + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField + shieldInformationBarrierSegment; + + protected final + CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField + restrictedSegment; + + public Builder( + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField + shieldInformationBarrierSegment, + CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField + restrictedSegment) { + super(); + this.shieldInformationBarrierSegment = shieldInformationBarrierSegment; + this.restrictedSegment = restrictedSegment; + this.type = + new EnumWrapper( + CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeField + .SHIELD_INFORMATION_BARRIER_SEGMENT_RESTRICTION); + } + + public Builder type(CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeField type) { + this.type = + new EnumWrapper( + type); + return this; + } + + public Builder type( + EnumWrapper type) { + this.type = type; + return this; + } + + public Builder shieldInformationBarrier(ShieldInformationBarrierBase shieldInformationBarrier) { + this.shieldInformationBarrier = shieldInformationBarrier; + return this; + } + + public CreateShieldInformationBarrierSegmentRestrictionRequestBody build() { + return new CreateShieldInformationBarrierSegmentRestrictionRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField.java new file mode 100644 index 000000000..ab28f0f3c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField.java @@ -0,0 +1,121 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegmentrestrictions; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField + extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = + CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField + .CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeFieldDeserializer + .class) + @JsonSerialize( + using = + CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField + .CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeFieldSerializer + .class) + protected EnumWrapper< + CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField> + type; + + public CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField() { + super(); + } + + protected CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField( + Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper< + CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField> + getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField casted = + (CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper< + CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField> + type; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type( + CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField + type) { + this.type = + new EnumWrapper< + CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField>( + type); + return this; + } + + public Builder type( + EnumWrapper< + CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField> + type) { + this.type = type; + return this; + } + + public CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField + build() { + return new CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField( + this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField.java new file mode 100644 index 000000000..85b96b228 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField.java @@ -0,0 +1,80 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegmentrestrictions; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField + implements Valuable { + SHIELD_INFORMATION_BARRIER_SEGMENT("shield_information_barrier_segment"); + + private final String value; + + CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField( + String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static + class CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper< + CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField>> { + + public + CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper< + CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField> + deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream( + CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField + .values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper< + CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField>( + value)); + } + } + + public static + class CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeFieldSerializer + extends JsonSerializer< + EnumWrapper< + CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField>> { + + public + CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper< + CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField> + value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField.java new file mode 100644 index 000000000..34cfa424a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField.java @@ -0,0 +1,127 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegmentrestrictions; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public +class CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField + extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField + .CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeFieldDeserializer + .class) + @JsonSerialize( + using = + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField + .CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeFieldSerializer + .class) + protected EnumWrapper< + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField> + type; + + public + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField() { + super(); + } + + protected + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField( + Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper< + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField> + getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField + casted = + (CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField) + o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper< + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField> + type; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type( + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField + type) { + this.type = + new EnumWrapper< + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField>( + type); + return this; + } + + public Builder type( + EnumWrapper< + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField> + type) { + this.type = type; + return this; + } + + public + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField + build() { + return new CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField( + this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField.java new file mode 100644 index 000000000..ca063cbe5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField.java @@ -0,0 +1,81 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegmentrestrictions; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField + implements Valuable { + SHIELD_INFORMATION_BARRIER_SEGMENT("shield_information_barrier_segment"); + + private final String value; + + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField( + String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static + class CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper< + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField>> { + + public + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper< + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField> + deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream( + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField + .values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper< + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField>( + value)); + } + } + + public static + class CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeFieldSerializer + extends JsonSerializer< + EnumWrapper< + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField>> { + + public + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper< + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField> + value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeField.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeField.java new file mode 100644 index 000000000..787c8e3f0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeField.java @@ -0,0 +1,69 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegmentrestrictions; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeField + implements Valuable { + SHIELD_INFORMATION_BARRIER_SEGMENT_RESTRICTION("shield_information_barrier_segment_restriction"); + + private final String value; + + CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static + class CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper + deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream( + CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper( + value)); + } + } + + public static class CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders.java new file mode 100644 index 000000000..c6c385c0c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegmentrestrictions; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders { + + public Map extraHeaders; + + public DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders build() { + return new DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionByIdHeaders.java new file mode 100644 index 000000000..093d919bd --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegmentrestrictions; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetShieldInformationBarrierSegmentRestrictionByIdHeaders { + + public Map extraHeaders; + + public GetShieldInformationBarrierSegmentRestrictionByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetShieldInformationBarrierSegmentRestrictionByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetShieldInformationBarrierSegmentRestrictionByIdHeaders build() { + return new GetShieldInformationBarrierSegmentRestrictionByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionsHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionsHeaders.java new file mode 100644 index 000000000..591a48a25 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegmentrestrictions; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetShieldInformationBarrierSegmentRestrictionsHeaders { + + public Map extraHeaders; + + public GetShieldInformationBarrierSegmentRestrictionsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetShieldInformationBarrierSegmentRestrictionsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetShieldInformationBarrierSegmentRestrictionsHeaders build() { + return new GetShieldInformationBarrierSegmentRestrictionsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionsQueryParams.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionsQueryParams.java new file mode 100644 index 000000000..94b94c7ea --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionsQueryParams.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegmentrestrictions; + +public class GetShieldInformationBarrierSegmentRestrictionsQueryParams { + + public final String shieldInformationBarrierSegmentId; + + public String marker; + + public Long limit; + + public GetShieldInformationBarrierSegmentRestrictionsQueryParams( + String shieldInformationBarrierSegmentId) { + this.shieldInformationBarrierSegmentId = shieldInformationBarrierSegmentId; + } + + protected GetShieldInformationBarrierSegmentRestrictionsQueryParams(Builder builder) { + this.shieldInformationBarrierSegmentId = builder.shieldInformationBarrierSegmentId; + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getShieldInformationBarrierSegmentId() { + return shieldInformationBarrierSegmentId; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected final String shieldInformationBarrierSegmentId; + + protected String marker; + + protected Long limit; + + public Builder(String shieldInformationBarrierSegmentId) { + this.shieldInformationBarrierSegmentId = shieldInformationBarrierSegmentId; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetShieldInformationBarrierSegmentRestrictionsQueryParams build() { + return new GetShieldInformationBarrierSegmentRestrictionsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictionsManager.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictionsManager.java new file mode 100644 index 000000000..6e4ca07f1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictionsManager.java @@ -0,0 +1,199 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegmentrestrictions; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.shieldinformationbarriersegmentrestriction.ShieldInformationBarrierSegmentRestriction; +import com.box.sdkgen.schemas.shieldinformationbarriersegmentrestrictions.ShieldInformationBarrierSegmentRestrictions; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class ShieldInformationBarrierSegmentRestrictionsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public ShieldInformationBarrierSegmentRestrictionsManager() { + this.networkSession = new NetworkSession(); + } + + protected ShieldInformationBarrierSegmentRestrictionsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public ShieldInformationBarrierSegmentRestriction + getShieldInformationBarrierSegmentRestrictionById( + String shieldInformationBarrierSegmentRestrictionId) { + return getShieldInformationBarrierSegmentRestrictionById( + shieldInformationBarrierSegmentRestrictionId, + new GetShieldInformationBarrierSegmentRestrictionByIdHeaders()); + } + + public ShieldInformationBarrierSegmentRestriction + getShieldInformationBarrierSegmentRestrictionById( + String shieldInformationBarrierSegmentRestrictionId, + GetShieldInformationBarrierSegmentRestrictionByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shield_information_barrier_segment_restrictions/", + convertToString(shieldInformationBarrierSegmentRestrictionId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize( + response.getData(), ShieldInformationBarrierSegmentRestriction.class); + } + + public void deleteShieldInformationBarrierSegmentRestrictionById( + String shieldInformationBarrierSegmentRestrictionId) { + deleteShieldInformationBarrierSegmentRestrictionById( + shieldInformationBarrierSegmentRestrictionId, + new DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders()); + } + + public void deleteShieldInformationBarrierSegmentRestrictionById( + String shieldInformationBarrierSegmentRestrictionId, + DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shield_information_barrier_segment_restrictions/", + convertToString(shieldInformationBarrierSegmentRestrictionId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public ShieldInformationBarrierSegmentRestrictions getShieldInformationBarrierSegmentRestrictions( + GetShieldInformationBarrierSegmentRestrictionsQueryParams queryParams) { + return getShieldInformationBarrierSegmentRestrictions( + queryParams, new GetShieldInformationBarrierSegmentRestrictionsHeaders()); + } + + public ShieldInformationBarrierSegmentRestrictions getShieldInformationBarrierSegmentRestrictions( + GetShieldInformationBarrierSegmentRestrictionsQueryParams queryParams, + GetShieldInformationBarrierSegmentRestrictionsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf( + "shield_information_barrier_segment_id", + convertToString(queryParams.getShieldInformationBarrierSegmentId())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shield_information_barrier_segment_restrictions"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize( + response.getData(), ShieldInformationBarrierSegmentRestrictions.class); + } + + public ShieldInformationBarrierSegmentRestriction + createShieldInformationBarrierSegmentRestriction( + CreateShieldInformationBarrierSegmentRestrictionRequestBody requestBody) { + return createShieldInformationBarrierSegmentRestriction( + requestBody, new CreateShieldInformationBarrierSegmentRestrictionHeaders()); + } + + public ShieldInformationBarrierSegmentRestriction + createShieldInformationBarrierSegmentRestriction( + CreateShieldInformationBarrierSegmentRestrictionRequestBody requestBody, + CreateShieldInformationBarrierSegmentRestrictionHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shield_information_barrier_segment_restrictions"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize( + response.getData(), ShieldInformationBarrierSegmentRestriction.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public ShieldInformationBarrierSegmentRestrictionsManager build() { + return new ShieldInformationBarrierSegmentRestrictionsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/CreateShieldInformationBarrierSegmentHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/CreateShieldInformationBarrierSegmentHeaders.java new file mode 100644 index 000000000..94acaca6e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/CreateShieldInformationBarrierSegmentHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateShieldInformationBarrierSegmentHeaders { + + public Map extraHeaders; + + public CreateShieldInformationBarrierSegmentHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateShieldInformationBarrierSegmentHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateShieldInformationBarrierSegmentHeaders build() { + return new CreateShieldInformationBarrierSegmentHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/CreateShieldInformationBarrierSegmentRequestBody.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/CreateShieldInformationBarrierSegmentRequestBody.java new file mode 100644 index 000000000..bbd71f9e1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/CreateShieldInformationBarrierSegmentRequestBody.java @@ -0,0 +1,109 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegments; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.shieldinformationbarrierbase.ShieldInformationBarrierBase; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateShieldInformationBarrierSegmentRequestBody extends SerializableObject { + + @JsonProperty("shield_information_barrier") + protected final ShieldInformationBarrierBase shieldInformationBarrier; + + protected final String name; + + protected String description; + + public CreateShieldInformationBarrierSegmentRequestBody( + @JsonProperty("shield_information_barrier") + ShieldInformationBarrierBase shieldInformationBarrier, + @JsonProperty("name") String name) { + super(); + this.shieldInformationBarrier = shieldInformationBarrier; + this.name = name; + } + + protected CreateShieldInformationBarrierSegmentRequestBody(Builder builder) { + super(); + this.shieldInformationBarrier = builder.shieldInformationBarrier; + this.name = builder.name; + this.description = builder.description; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public ShieldInformationBarrierBase getShieldInformationBarrier() { + return shieldInformationBarrier; + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateShieldInformationBarrierSegmentRequestBody casted = + (CreateShieldInformationBarrierSegmentRequestBody) o; + return Objects.equals(shieldInformationBarrier, casted.shieldInformationBarrier) + && Objects.equals(name, casted.name) + && Objects.equals(description, casted.description); + } + + @Override + public int hashCode() { + return Objects.hash(shieldInformationBarrier, name, description); + } + + @Override + public String toString() { + return "CreateShieldInformationBarrierSegmentRequestBody{" + + "shieldInformationBarrier='" + + shieldInformationBarrier + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "description='" + + description + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final ShieldInformationBarrierBase shieldInformationBarrier; + + protected final String name; + + protected String description; + + public Builder(ShieldInformationBarrierBase shieldInformationBarrier, String name) { + super(); + this.shieldInformationBarrier = shieldInformationBarrier; + this.name = name; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public CreateShieldInformationBarrierSegmentRequestBody build() { + return new CreateShieldInformationBarrierSegmentRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/DeleteShieldInformationBarrierSegmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/DeleteShieldInformationBarrierSegmentByIdHeaders.java new file mode 100644 index 000000000..0959d04d7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/DeleteShieldInformationBarrierSegmentByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteShieldInformationBarrierSegmentByIdHeaders { + + public Map extraHeaders; + + public DeleteShieldInformationBarrierSegmentByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteShieldInformationBarrierSegmentByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteShieldInformationBarrierSegmentByIdHeaders build() { + return new DeleteShieldInformationBarrierSegmentByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentByIdHeaders.java new file mode 100644 index 000000000..f764c4a1d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetShieldInformationBarrierSegmentByIdHeaders { + + public Map extraHeaders; + + public GetShieldInformationBarrierSegmentByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetShieldInformationBarrierSegmentByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetShieldInformationBarrierSegmentByIdHeaders build() { + return new GetShieldInformationBarrierSegmentByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentsHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentsHeaders.java new file mode 100644 index 000000000..5d7d2b785 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetShieldInformationBarrierSegmentsHeaders { + + public Map extraHeaders; + + public GetShieldInformationBarrierSegmentsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetShieldInformationBarrierSegmentsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetShieldInformationBarrierSegmentsHeaders build() { + return new GetShieldInformationBarrierSegmentsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentsQueryParams.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentsQueryParams.java new file mode 100644 index 000000000..3c0eea970 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentsQueryParams.java @@ -0,0 +1,59 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegments; + +public class GetShieldInformationBarrierSegmentsQueryParams { + + public final String shieldInformationBarrierId; + + public String marker; + + public Long limit; + + public GetShieldInformationBarrierSegmentsQueryParams(String shieldInformationBarrierId) { + this.shieldInformationBarrierId = shieldInformationBarrierId; + } + + protected GetShieldInformationBarrierSegmentsQueryParams(Builder builder) { + this.shieldInformationBarrierId = builder.shieldInformationBarrierId; + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getShieldInformationBarrierId() { + return shieldInformationBarrierId; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected final String shieldInformationBarrierId; + + protected String marker; + + protected Long limit; + + public Builder(String shieldInformationBarrierId) { + this.shieldInformationBarrierId = shieldInformationBarrierId; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetShieldInformationBarrierSegmentsQueryParams build() { + return new GetShieldInformationBarrierSegmentsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/ShieldInformationBarrierSegmentsManager.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/ShieldInformationBarrierSegmentsManager.java new file mode 100644 index 000000000..4f673a153 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/ShieldInformationBarrierSegmentsManager.java @@ -0,0 +1,241 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegments; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.shieldinformationbarriersegment.ShieldInformationBarrierSegment; +import com.box.sdkgen.schemas.shieldinformationbarriersegments.ShieldInformationBarrierSegments; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class ShieldInformationBarrierSegmentsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public ShieldInformationBarrierSegmentsManager() { + this.networkSession = new NetworkSession(); + } + + protected ShieldInformationBarrierSegmentsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public ShieldInformationBarrierSegment getShieldInformationBarrierSegmentById( + String shieldInformationBarrierSegmentId) { + return getShieldInformationBarrierSegmentById( + shieldInformationBarrierSegmentId, new GetShieldInformationBarrierSegmentByIdHeaders()); + } + + public ShieldInformationBarrierSegment getShieldInformationBarrierSegmentById( + String shieldInformationBarrierSegmentId, + GetShieldInformationBarrierSegmentByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shield_information_barrier_segments/", + convertToString(shieldInformationBarrierSegmentId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ShieldInformationBarrierSegment.class); + } + + public void deleteShieldInformationBarrierSegmentById(String shieldInformationBarrierSegmentId) { + deleteShieldInformationBarrierSegmentById( + shieldInformationBarrierSegmentId, new DeleteShieldInformationBarrierSegmentByIdHeaders()); + } + + public void deleteShieldInformationBarrierSegmentById( + String shieldInformationBarrierSegmentId, + DeleteShieldInformationBarrierSegmentByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shield_information_barrier_segments/", + convertToString(shieldInformationBarrierSegmentId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public ShieldInformationBarrierSegment updateShieldInformationBarrierSegmentById( + String shieldInformationBarrierSegmentId) { + return updateShieldInformationBarrierSegmentById( + shieldInformationBarrierSegmentId, + new UpdateShieldInformationBarrierSegmentByIdRequestBody(), + new UpdateShieldInformationBarrierSegmentByIdHeaders()); + } + + public ShieldInformationBarrierSegment updateShieldInformationBarrierSegmentById( + String shieldInformationBarrierSegmentId, + UpdateShieldInformationBarrierSegmentByIdRequestBody requestBody) { + return updateShieldInformationBarrierSegmentById( + shieldInformationBarrierSegmentId, + requestBody, + new UpdateShieldInformationBarrierSegmentByIdHeaders()); + } + + public ShieldInformationBarrierSegment updateShieldInformationBarrierSegmentById( + String shieldInformationBarrierSegmentId, + UpdateShieldInformationBarrierSegmentByIdHeaders headers) { + return updateShieldInformationBarrierSegmentById( + shieldInformationBarrierSegmentId, + new UpdateShieldInformationBarrierSegmentByIdRequestBody(), + headers); + } + + public ShieldInformationBarrierSegment updateShieldInformationBarrierSegmentById( + String shieldInformationBarrierSegmentId, + UpdateShieldInformationBarrierSegmentByIdRequestBody requestBody, + UpdateShieldInformationBarrierSegmentByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shield_information_barrier_segments/", + convertToString(shieldInformationBarrierSegmentId)), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ShieldInformationBarrierSegment.class); + } + + public ShieldInformationBarrierSegments getShieldInformationBarrierSegments( + GetShieldInformationBarrierSegmentsQueryParams queryParams) { + return getShieldInformationBarrierSegments( + queryParams, new GetShieldInformationBarrierSegmentsHeaders()); + } + + public ShieldInformationBarrierSegments getShieldInformationBarrierSegments( + GetShieldInformationBarrierSegmentsQueryParams queryParams, + GetShieldInformationBarrierSegmentsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf( + "shield_information_barrier_id", + convertToString(queryParams.getShieldInformationBarrierId())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shield_information_barrier_segments"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ShieldInformationBarrierSegments.class); + } + + public ShieldInformationBarrierSegment createShieldInformationBarrierSegment( + CreateShieldInformationBarrierSegmentRequestBody requestBody) { + return createShieldInformationBarrierSegment( + requestBody, new CreateShieldInformationBarrierSegmentHeaders()); + } + + public ShieldInformationBarrierSegment createShieldInformationBarrierSegment( + CreateShieldInformationBarrierSegmentRequestBody requestBody, + CreateShieldInformationBarrierSegmentHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shield_information_barrier_segments"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ShieldInformationBarrierSegment.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public ShieldInformationBarrierSegmentsManager build() { + return new ShieldInformationBarrierSegmentsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/UpdateShieldInformationBarrierSegmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/UpdateShieldInformationBarrierSegmentByIdHeaders.java new file mode 100644 index 000000000..1a7221c29 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/UpdateShieldInformationBarrierSegmentByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateShieldInformationBarrierSegmentByIdHeaders { + + public Map extraHeaders; + + public UpdateShieldInformationBarrierSegmentByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateShieldInformationBarrierSegmentByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateShieldInformationBarrierSegmentByIdHeaders build() { + return new UpdateShieldInformationBarrierSegmentByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/UpdateShieldInformationBarrierSegmentByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/UpdateShieldInformationBarrierSegmentByIdRequestBody.java new file mode 100644 index 000000000..ed1b3747c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/UpdateShieldInformationBarrierSegmentByIdRequestBody.java @@ -0,0 +1,87 @@ +package com.box.sdkgen.managers.shieldinformationbarriersegments; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateShieldInformationBarrierSegmentByIdRequestBody extends SerializableObject { + + protected String name; + + @Nullable protected String description; + + public UpdateShieldInformationBarrierSegmentByIdRequestBody() { + super(); + } + + protected UpdateShieldInformationBarrierSegmentByIdRequestBody(Builder builder) { + super(); + this.name = builder.name; + this.description = builder.description; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateShieldInformationBarrierSegmentByIdRequestBody casted = + (UpdateShieldInformationBarrierSegmentByIdRequestBody) o; + return Objects.equals(name, casted.name) && Objects.equals(description, casted.description); + } + + @Override + public int hashCode() { + return Objects.hash(name, description); + } + + @Override + public String toString() { + return "UpdateShieldInformationBarrierSegmentByIdRequestBody{" + + "name='" + + name + + '\'' + + ", " + + "description='" + + description + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String name; + + protected String description; + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder description(String description) { + this.description = description; + this.markNullableFieldAsSet("description"); + return this; + } + + public UpdateShieldInformationBarrierSegmentByIdRequestBody build() { + return new UpdateShieldInformationBarrierSegmentByIdRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldlists/CreateShieldListV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/shieldlists/CreateShieldListV2025R0Headers.java new file mode 100644 index 000000000..c309ce186 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldlists/CreateShieldListV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.shieldlists; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class CreateShieldListV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public CreateShieldListV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected CreateShieldListV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateShieldListV2025R0Headers build() { + return new CreateShieldListV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldlists/DeleteShieldListByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/shieldlists/DeleteShieldListByIdV2025R0Headers.java new file mode 100644 index 000000000..a9b681cc1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldlists/DeleteShieldListByIdV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.shieldlists; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class DeleteShieldListByIdV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public DeleteShieldListByIdV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected DeleteShieldListByIdV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteShieldListByIdV2025R0Headers build() { + return new DeleteShieldListByIdV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldlists/GetShieldListByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/shieldlists/GetShieldListByIdV2025R0Headers.java new file mode 100644 index 000000000..39012893f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldlists/GetShieldListByIdV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.shieldlists; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class GetShieldListByIdV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public GetShieldListByIdV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected GetShieldListByIdV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetShieldListByIdV2025R0Headers build() { + return new GetShieldListByIdV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldlists/GetShieldListsV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/shieldlists/GetShieldListsV2025R0Headers.java new file mode 100644 index 000000000..fb22f3648 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldlists/GetShieldListsV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.shieldlists; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class GetShieldListsV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public GetShieldListsV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected GetShieldListsV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetShieldListsV2025R0Headers build() { + return new GetShieldListsV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldlists/ShieldListsManager.java b/src/main/java/com/box/sdkgen/managers/shieldlists/ShieldListsManager.java new file mode 100644 index 000000000..12e5d2839 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldlists/ShieldListsManager.java @@ -0,0 +1,222 @@ +package com.box.sdkgen.managers.shieldlists; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.v2025r0.shieldlistscreatev2025r0.ShieldListsCreateV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistsupdatev2025r0.ShieldListsUpdateV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistsv2025r0.ShieldListsV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistv2025r0.ShieldListV2025R0; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class ShieldListsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public ShieldListsManager() { + this.networkSession = new NetworkSession(); + } + + protected ShieldListsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public ShieldListsV2025R0 getShieldListsV2025R0() { + return getShieldListsV2025R0(new GetShieldListsV2025R0Headers()); + } + + public ShieldListsV2025R0 getShieldListsV2025R0(GetShieldListsV2025R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shield_lists"), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ShieldListsV2025R0.class); + } + + public ShieldListV2025R0 createShieldListV2025R0(ShieldListsCreateV2025R0 requestBody) { + return createShieldListV2025R0(requestBody, new CreateShieldListV2025R0Headers()); + } + + public ShieldListV2025R0 createShieldListV2025R0( + ShieldListsCreateV2025R0 requestBody, CreateShieldListV2025R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shield_lists"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ShieldListV2025R0.class); + } + + public ShieldListV2025R0 getShieldListByIdV2025R0(String shieldListId) { + return getShieldListByIdV2025R0(shieldListId, new GetShieldListByIdV2025R0Headers()); + } + + public ShieldListV2025R0 getShieldListByIdV2025R0( + String shieldListId, GetShieldListByIdV2025R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shield_lists/", + convertToString(shieldListId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ShieldListV2025R0.class); + } + + public void deleteShieldListByIdV2025R0(String shieldListId) { + deleteShieldListByIdV2025R0(shieldListId, new DeleteShieldListByIdV2025R0Headers()); + } + + public void deleteShieldListByIdV2025R0( + String shieldListId, DeleteShieldListByIdV2025R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shield_lists/", + convertToString(shieldListId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public ShieldListV2025R0 updateShieldListByIdV2025R0( + String shieldListId, ShieldListsUpdateV2025R0 requestBody) { + return updateShieldListByIdV2025R0( + shieldListId, requestBody, new UpdateShieldListByIdV2025R0Headers()); + } + + public ShieldListV2025R0 updateShieldListByIdV2025R0( + String shieldListId, + ShieldListsUpdateV2025R0 requestBody, + UpdateShieldListByIdV2025R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/shield_lists/", + convertToString(shieldListId)), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ShieldListV2025R0.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public ShieldListsManager build() { + return new ShieldListsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/shieldlists/UpdateShieldListByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/shieldlists/UpdateShieldListByIdV2025R0Headers.java new file mode 100644 index 000000000..9a3f78687 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/shieldlists/UpdateShieldListByIdV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.shieldlists; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class UpdateShieldListByIdV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public UpdateShieldListByIdV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected UpdateShieldListByIdV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateShieldListByIdV2025R0Headers build() { + return new UpdateShieldListByIdV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/signrequests/CancelSignRequestHeaders.java b/src/main/java/com/box/sdkgen/managers/signrequests/CancelSignRequestHeaders.java new file mode 100644 index 000000000..b40341c56 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/signrequests/CancelSignRequestHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.signrequests; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CancelSignRequestHeaders { + + public Map extraHeaders; + + public CancelSignRequestHeaders() { + this.extraHeaders = mapOf(); + } + + protected CancelSignRequestHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CancelSignRequestHeaders build() { + return new CancelSignRequestHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/signrequests/CreateSignRequestHeaders.java b/src/main/java/com/box/sdkgen/managers/signrequests/CreateSignRequestHeaders.java new file mode 100644 index 000000000..f4a836257 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/signrequests/CreateSignRequestHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.signrequests; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateSignRequestHeaders { + + public Map extraHeaders; + + public CreateSignRequestHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateSignRequestHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateSignRequestHeaders build() { + return new CreateSignRequestHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestByIdHeaders.java new file mode 100644 index 000000000..a40d9e902 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.signrequests; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetSignRequestByIdHeaders { + + public Map extraHeaders; + + public GetSignRequestByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetSignRequestByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetSignRequestByIdHeaders build() { + return new GetSignRequestByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestsHeaders.java b/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestsHeaders.java new file mode 100644 index 000000000..1d2da7b24 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.signrequests; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetSignRequestsHeaders { + + public Map extraHeaders; + + public GetSignRequestsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetSignRequestsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetSignRequestsHeaders build() { + return new GetSignRequestsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestsQueryParams.java b/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestsQueryParams.java new file mode 100644 index 000000000..bb365feb1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestsQueryParams.java @@ -0,0 +1,74 @@ +package com.box.sdkgen.managers.signrequests; + +import java.util.List; + +public class GetSignRequestsQueryParams { + + public String marker; + + public Long limit; + + public List senders; + + public Boolean sharedRequests; + + public GetSignRequestsQueryParams() {} + + protected GetSignRequestsQueryParams(Builder builder) { + this.marker = builder.marker; + this.limit = builder.limit; + this.senders = builder.senders; + this.sharedRequests = builder.sharedRequests; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public List getSenders() { + return senders; + } + + public Boolean getSharedRequests() { + return sharedRequests; + } + + public static class Builder { + + protected String marker; + + protected Long limit; + + protected List senders; + + protected Boolean sharedRequests; + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder senders(List senders) { + this.senders = senders; + return this; + } + + public Builder sharedRequests(Boolean sharedRequests) { + this.sharedRequests = sharedRequests; + return this; + } + + public GetSignRequestsQueryParams build() { + return new GetSignRequestsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/signrequests/ResendSignRequestHeaders.java b/src/main/java/com/box/sdkgen/managers/signrequests/ResendSignRequestHeaders.java new file mode 100644 index 000000000..97004a76e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/signrequests/ResendSignRequestHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.signrequests; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class ResendSignRequestHeaders { + + public Map extraHeaders; + + public ResendSignRequestHeaders() { + this.extraHeaders = mapOf(); + } + + protected ResendSignRequestHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public ResendSignRequestHeaders build() { + return new ResendSignRequestHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/signrequests/SignRequestsManager.java b/src/main/java/com/box/sdkgen/managers/signrequests/SignRequestsManager.java new file mode 100644 index 000000000..6ce9a638f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/signrequests/SignRequestsManager.java @@ -0,0 +1,211 @@ +package com.box.sdkgen.managers.signrequests; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.signrequest.SignRequest; +import com.box.sdkgen.schemas.signrequestcreaterequest.SignRequestCreateRequest; +import com.box.sdkgen.schemas.signrequests.SignRequests; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class SignRequestsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public SignRequestsManager() { + this.networkSession = new NetworkSession(); + } + + protected SignRequestsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public SignRequest cancelSignRequest(String signRequestId) { + return cancelSignRequest(signRequestId, new CancelSignRequestHeaders()); + } + + public SignRequest cancelSignRequest(String signRequestId, CancelSignRequestHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/sign_requests/", + convertToString(signRequestId), + "/cancel"), + "POST") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), SignRequest.class); + } + + public void resendSignRequest(String signRequestId) { + resendSignRequest(signRequestId, new ResendSignRequestHeaders()); + } + + public void resendSignRequest(String signRequestId, ResendSignRequestHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/sign_requests/", + convertToString(signRequestId), + "/resend"), + "POST") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public SignRequest getSignRequestById(String signRequestId) { + return getSignRequestById(signRequestId, new GetSignRequestByIdHeaders()); + } + + public SignRequest getSignRequestById(String signRequestId, GetSignRequestByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/sign_requests/", + convertToString(signRequestId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), SignRequest.class); + } + + public SignRequests getSignRequests() { + return getSignRequests(new GetSignRequestsQueryParams(), new GetSignRequestsHeaders()); + } + + public SignRequests getSignRequests(GetSignRequestsQueryParams queryParams) { + return getSignRequests(queryParams, new GetSignRequestsHeaders()); + } + + public SignRequests getSignRequests(GetSignRequestsHeaders headers) { + return getSignRequests(new GetSignRequestsQueryParams(), headers); + } + + public SignRequests getSignRequests( + GetSignRequestsQueryParams queryParams, GetSignRequestsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf("senders", convertToString(queryParams.getSenders())), + entryOf("shared_requests", convertToString(queryParams.getSharedRequests())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/sign_requests"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), SignRequests.class); + } + + public SignRequest createSignRequest(SignRequestCreateRequest requestBody) { + return createSignRequest(requestBody, new CreateSignRequestHeaders()); + } + + public SignRequest createSignRequest( + SignRequestCreateRequest requestBody, CreateSignRequestHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/sign_requests"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), SignRequest.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public SignRequestsManager build() { + return new SignRequestsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplateByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplateByIdHeaders.java new file mode 100644 index 000000000..22b3e1d89 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplateByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.signtemplates; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetSignTemplateByIdHeaders { + + public Map extraHeaders; + + public GetSignTemplateByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetSignTemplateByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetSignTemplateByIdHeaders build() { + return new GetSignTemplateByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplatesHeaders.java b/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplatesHeaders.java new file mode 100644 index 000000000..1dc2f5485 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplatesHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.signtemplates; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetSignTemplatesHeaders { + + public Map extraHeaders; + + public GetSignTemplatesHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetSignTemplatesHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetSignTemplatesHeaders build() { + return new GetSignTemplatesHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplatesQueryParams.java b/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplatesQueryParams.java new file mode 100644 index 000000000..ea6476340 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplatesQueryParams.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.signtemplates; + +public class GetSignTemplatesQueryParams { + + public String marker; + + public Long limit; + + public GetSignTemplatesQueryParams() {} + + protected GetSignTemplatesQueryParams(Builder builder) { + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected String marker; + + protected Long limit; + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetSignTemplatesQueryParams build() { + return new GetSignTemplatesQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/signtemplates/SignTemplatesManager.java b/src/main/java/com/box/sdkgen/managers/signtemplates/SignTemplatesManager.java new file mode 100644 index 000000000..4bafb358e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/signtemplates/SignTemplatesManager.java @@ -0,0 +1,130 @@ +package com.box.sdkgen.managers.signtemplates; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.signtemplate.SignTemplate; +import com.box.sdkgen.schemas.signtemplates.SignTemplates; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class SignTemplatesManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public SignTemplatesManager() { + this.networkSession = new NetworkSession(); + } + + protected SignTemplatesManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public SignTemplates getSignTemplates() { + return getSignTemplates(new GetSignTemplatesQueryParams(), new GetSignTemplatesHeaders()); + } + + public SignTemplates getSignTemplates(GetSignTemplatesQueryParams queryParams) { + return getSignTemplates(queryParams, new GetSignTemplatesHeaders()); + } + + public SignTemplates getSignTemplates(GetSignTemplatesHeaders headers) { + return getSignTemplates(new GetSignTemplatesQueryParams(), headers); + } + + public SignTemplates getSignTemplates( + GetSignTemplatesQueryParams queryParams, GetSignTemplatesHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/sign_templates"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), SignTemplates.class); + } + + public SignTemplate getSignTemplateById(String templateId) { + return getSignTemplateById(templateId, new GetSignTemplateByIdHeaders()); + } + + public SignTemplate getSignTemplateById(String templateId, GetSignTemplateByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/sign_templates/", + convertToString(templateId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), SignTemplate.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public SignTemplatesManager build() { + return new SignTemplatesManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/skills/CreateBoxSkillCardsOnFileHeaders.java b/src/main/java/com/box/sdkgen/managers/skills/CreateBoxSkillCardsOnFileHeaders.java new file mode 100644 index 000000000..73e6aec4b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/skills/CreateBoxSkillCardsOnFileHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.skills; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateBoxSkillCardsOnFileHeaders { + + public Map extraHeaders; + + public CreateBoxSkillCardsOnFileHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateBoxSkillCardsOnFileHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateBoxSkillCardsOnFileHeaders build() { + return new CreateBoxSkillCardsOnFileHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/skills/CreateBoxSkillCardsOnFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/skills/CreateBoxSkillCardsOnFileRequestBody.java new file mode 100644 index 000000000..04bd28563 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/skills/CreateBoxSkillCardsOnFileRequestBody.java @@ -0,0 +1,49 @@ +package com.box.sdkgen.managers.skills; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.keywordskillcardorstatusskillcardortimelineskillcardortranscriptskillcard.KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateBoxSkillCardsOnFileRequestBody extends SerializableObject { + + protected final List + cards; + + public CreateBoxSkillCardsOnFileRequestBody( + @JsonProperty("cards") + List cards) { + super(); + this.cards = cards; + } + + public List + getCards() { + return cards; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateBoxSkillCardsOnFileRequestBody casted = (CreateBoxSkillCardsOnFileRequestBody) o; + return Objects.equals(cards, casted.cards); + } + + @Override + public int hashCode() { + return Objects.hash(cards); + } + + @Override + public String toString() { + return "CreateBoxSkillCardsOnFileRequestBody{" + "cards='" + cards + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/skills/DeleteBoxSkillCardsFromFileHeaders.java b/src/main/java/com/box/sdkgen/managers/skills/DeleteBoxSkillCardsFromFileHeaders.java new file mode 100644 index 000000000..eb2eb810e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/skills/DeleteBoxSkillCardsFromFileHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.skills; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteBoxSkillCardsFromFileHeaders { + + public Map extraHeaders; + + public DeleteBoxSkillCardsFromFileHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteBoxSkillCardsFromFileHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteBoxSkillCardsFromFileHeaders build() { + return new DeleteBoxSkillCardsFromFileHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/skills/GetBoxSkillCardsOnFileHeaders.java b/src/main/java/com/box/sdkgen/managers/skills/GetBoxSkillCardsOnFileHeaders.java new file mode 100644 index 000000000..abb918b46 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/skills/GetBoxSkillCardsOnFileHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.skills; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetBoxSkillCardsOnFileHeaders { + + public Map extraHeaders; + + public GetBoxSkillCardsOnFileHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetBoxSkillCardsOnFileHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetBoxSkillCardsOnFileHeaders build() { + return new GetBoxSkillCardsOnFileHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/skills/SkillsManager.java b/src/main/java/com/box/sdkgen/managers/skills/SkillsManager.java new file mode 100644 index 000000000..a70628e61 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/skills/SkillsManager.java @@ -0,0 +1,212 @@ +package com.box.sdkgen.managers.skills; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.skillcardsmetadata.SkillCardsMetadata; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.List; +import java.util.Map; + +public class SkillsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public SkillsManager() { + this.networkSession = new NetworkSession(); + } + + protected SkillsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public SkillCardsMetadata getBoxSkillCardsOnFile(String fileId) { + return getBoxSkillCardsOnFile(fileId, new GetBoxSkillCardsOnFileHeaders()); + } + + public SkillCardsMetadata getBoxSkillCardsOnFile( + String fileId, GetBoxSkillCardsOnFileHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/metadata/global/boxSkillsCards"), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), SkillCardsMetadata.class); + } + + public SkillCardsMetadata createBoxSkillCardsOnFile( + String fileId, CreateBoxSkillCardsOnFileRequestBody requestBody) { + return createBoxSkillCardsOnFile(fileId, requestBody, new CreateBoxSkillCardsOnFileHeaders()); + } + + public SkillCardsMetadata createBoxSkillCardsOnFile( + String fileId, + CreateBoxSkillCardsOnFileRequestBody requestBody, + CreateBoxSkillCardsOnFileHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/metadata/global/boxSkillsCards"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), SkillCardsMetadata.class); + } + + public SkillCardsMetadata updateBoxSkillCardsOnFile( + String fileId, List requestBody) { + return updateBoxSkillCardsOnFile(fileId, requestBody, new UpdateBoxSkillCardsOnFileHeaders()); + } + + public SkillCardsMetadata updateBoxSkillCardsOnFile( + String fileId, + List requestBody, + UpdateBoxSkillCardsOnFileHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/metadata/global/boxSkillsCards"), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json-patch+json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), SkillCardsMetadata.class); + } + + public void deleteBoxSkillCardsFromFile(String fileId) { + deleteBoxSkillCardsFromFile(fileId, new DeleteBoxSkillCardsFromFileHeaders()); + } + + public void deleteBoxSkillCardsFromFile( + String fileId, DeleteBoxSkillCardsFromFileHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/metadata/global/boxSkillsCards"), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public void updateAllSkillCardsOnFile( + String skillId, UpdateAllSkillCardsOnFileRequestBody requestBody) { + updateAllSkillCardsOnFile(skillId, requestBody, new UpdateAllSkillCardsOnFileHeaders()); + } + + public void updateAllSkillCardsOnFile( + String skillId, + UpdateAllSkillCardsOnFileRequestBody requestBody, + UpdateAllSkillCardsOnFileHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/skill_invocations/", + convertToString(skillId)), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public SkillsManager build() { + return new SkillsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileHeaders.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileHeaders.java new file mode 100644 index 000000000..8066bdaae --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.skills; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateAllSkillCardsOnFileHeaders { + + public Map extraHeaders; + + public UpdateAllSkillCardsOnFileHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateAllSkillCardsOnFileHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateAllSkillCardsOnFileHeaders build() { + return new UpdateAllSkillCardsOnFileHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBody.java new file mode 100644 index 000000000..9e258b9fc --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBody.java @@ -0,0 +1,176 @@ +package com.box.sdkgen.managers.skills; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateAllSkillCardsOnFileRequestBody extends SerializableObject { + + @JsonDeserialize( + using = + UpdateAllSkillCardsOnFileRequestBodyStatusField + .UpdateAllSkillCardsOnFileRequestBodyStatusFieldDeserializer.class) + @JsonSerialize( + using = + UpdateAllSkillCardsOnFileRequestBodyStatusField + .UpdateAllSkillCardsOnFileRequestBodyStatusFieldSerializer.class) + protected final EnumWrapper status; + + protected final UpdateAllSkillCardsOnFileRequestBodyMetadataField metadata; + + protected final UpdateAllSkillCardsOnFileRequestBodyFileField file; + + @JsonProperty("file_version") + protected UpdateAllSkillCardsOnFileRequestBodyFileVersionField fileVersion; + + protected UpdateAllSkillCardsOnFileRequestBodyUsageField usage; + + public UpdateAllSkillCardsOnFileRequestBody( + UpdateAllSkillCardsOnFileRequestBodyStatusField status, + UpdateAllSkillCardsOnFileRequestBodyMetadataField metadata, + UpdateAllSkillCardsOnFileRequestBodyFileField file) { + super(); + this.status = new EnumWrapper(status); + this.metadata = metadata; + this.file = file; + } + + public UpdateAllSkillCardsOnFileRequestBody( + @JsonProperty("status") EnumWrapper status, + @JsonProperty("metadata") UpdateAllSkillCardsOnFileRequestBodyMetadataField metadata, + @JsonProperty("file") UpdateAllSkillCardsOnFileRequestBodyFileField file) { + super(); + this.status = status; + this.metadata = metadata; + this.file = file; + } + + protected UpdateAllSkillCardsOnFileRequestBody(Builder builder) { + super(); + this.status = builder.status; + this.metadata = builder.metadata; + this.file = builder.file; + this.fileVersion = builder.fileVersion; + this.usage = builder.usage; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getStatus() { + return status; + } + + public UpdateAllSkillCardsOnFileRequestBodyMetadataField getMetadata() { + return metadata; + } + + public UpdateAllSkillCardsOnFileRequestBodyFileField getFile() { + return file; + } + + public UpdateAllSkillCardsOnFileRequestBodyFileVersionField getFileVersion() { + return fileVersion; + } + + public UpdateAllSkillCardsOnFileRequestBodyUsageField getUsage() { + return usage; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateAllSkillCardsOnFileRequestBody casted = (UpdateAllSkillCardsOnFileRequestBody) o; + return Objects.equals(status, casted.status) + && Objects.equals(metadata, casted.metadata) + && Objects.equals(file, casted.file) + && Objects.equals(fileVersion, casted.fileVersion) + && Objects.equals(usage, casted.usage); + } + + @Override + public int hashCode() { + return Objects.hash(status, metadata, file, fileVersion, usage); + } + + @Override + public String toString() { + return "UpdateAllSkillCardsOnFileRequestBody{" + + "status='" + + status + + '\'' + + ", " + + "metadata='" + + metadata + + '\'' + + ", " + + "file='" + + file + + '\'' + + ", " + + "fileVersion='" + + fileVersion + + '\'' + + ", " + + "usage='" + + usage + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final EnumWrapper status; + + protected final UpdateAllSkillCardsOnFileRequestBodyMetadataField metadata; + + protected final UpdateAllSkillCardsOnFileRequestBodyFileField file; + + protected UpdateAllSkillCardsOnFileRequestBodyFileVersionField fileVersion; + + protected UpdateAllSkillCardsOnFileRequestBodyUsageField usage; + + public Builder( + UpdateAllSkillCardsOnFileRequestBodyStatusField status, + UpdateAllSkillCardsOnFileRequestBodyMetadataField metadata, + UpdateAllSkillCardsOnFileRequestBodyFileField file) { + super(); + this.status = new EnumWrapper(status); + this.metadata = metadata; + this.file = file; + } + + public Builder( + EnumWrapper status, + UpdateAllSkillCardsOnFileRequestBodyMetadataField metadata, + UpdateAllSkillCardsOnFileRequestBodyFileField file) { + super(); + this.status = status; + this.metadata = metadata; + this.file = file; + } + + public Builder fileVersion(UpdateAllSkillCardsOnFileRequestBodyFileVersionField fileVersion) { + this.fileVersion = fileVersion; + return this; + } + + public Builder usage(UpdateAllSkillCardsOnFileRequestBodyUsageField usage) { + this.usage = usage; + return this; + } + + public UpdateAllSkillCardsOnFileRequestBody build() { + return new UpdateAllSkillCardsOnFileRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileField.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileField.java new file mode 100644 index 000000000..6ae3d293e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileField.java @@ -0,0 +1,101 @@ +package com.box.sdkgen.managers.skills; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateAllSkillCardsOnFileRequestBodyFileField extends SerializableObject { + + @JsonDeserialize( + using = + UpdateAllSkillCardsOnFileRequestBodyFileTypeField + .UpdateAllSkillCardsOnFileRequestBodyFileTypeFieldDeserializer.class) + @JsonSerialize( + using = + UpdateAllSkillCardsOnFileRequestBodyFileTypeField + .UpdateAllSkillCardsOnFileRequestBodyFileTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String id; + + public UpdateAllSkillCardsOnFileRequestBodyFileField() { + super(); + } + + protected UpdateAllSkillCardsOnFileRequestBodyFileField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateAllSkillCardsOnFileRequestBodyFileField casted = + (UpdateAllSkillCardsOnFileRequestBodyFileField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "UpdateAllSkillCardsOnFileRequestBodyFileField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected String id; + + public Builder type(UpdateAllSkillCardsOnFileRequestBodyFileTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public UpdateAllSkillCardsOnFileRequestBodyFileField build() { + return new UpdateAllSkillCardsOnFileRequestBodyFileField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileTypeField.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileTypeField.java new file mode 100644 index 000000000..88d1d3725 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.skills; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateAllSkillCardsOnFileRequestBodyFileTypeField implements Valuable { + FILE("file"); + + private final String value; + + UpdateAllSkillCardsOnFileRequestBodyFileTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateAllSkillCardsOnFileRequestBodyFileTypeFieldDeserializer + extends JsonDeserializer> { + + public UpdateAllSkillCardsOnFileRequestBodyFileTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateAllSkillCardsOnFileRequestBodyFileTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateAllSkillCardsOnFileRequestBodyFileTypeFieldSerializer + extends JsonSerializer> { + + public UpdateAllSkillCardsOnFileRequestBodyFileTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileVersionField.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileVersionField.java new file mode 100644 index 000000000..dec8d8e97 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileVersionField.java @@ -0,0 +1,102 @@ +package com.box.sdkgen.managers.skills; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateAllSkillCardsOnFileRequestBodyFileVersionField extends SerializableObject { + + @JsonDeserialize( + using = + UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField + .UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeFieldDeserializer.class) + @JsonSerialize( + using = + UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField + .UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String id; + + public UpdateAllSkillCardsOnFileRequestBodyFileVersionField() { + super(); + } + + protected UpdateAllSkillCardsOnFileRequestBodyFileVersionField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateAllSkillCardsOnFileRequestBodyFileVersionField casted = + (UpdateAllSkillCardsOnFileRequestBodyFileVersionField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "UpdateAllSkillCardsOnFileRequestBodyFileVersionField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected String id; + + public Builder type(UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type( + EnumWrapper type) { + this.type = type; + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public UpdateAllSkillCardsOnFileRequestBodyFileVersionField build() { + return new UpdateAllSkillCardsOnFileRequestBodyFileVersionField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField.java new file mode 100644 index 000000000..7e63cdd2c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.skills; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField implements Valuable { + FILE_VERSION("file_version"); + + private final String value; + + UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyMetadataField.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyMetadataField.java new file mode 100644 index 000000000..f38843f7b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyMetadataField.java @@ -0,0 +1,67 @@ +package com.box.sdkgen.managers.skills; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.keywordskillcardorstatusskillcardortimelineskillcardortranscriptskillcard.KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateAllSkillCardsOnFileRequestBodyMetadataField extends SerializableObject { + + protected List cards; + + public UpdateAllSkillCardsOnFileRequestBodyMetadataField() { + super(); + } + + protected UpdateAllSkillCardsOnFileRequestBodyMetadataField(Builder builder) { + super(); + this.cards = builder.cards; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List + getCards() { + return cards; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateAllSkillCardsOnFileRequestBodyMetadataField casted = + (UpdateAllSkillCardsOnFileRequestBodyMetadataField) o; + return Objects.equals(cards, casted.cards); + } + + @Override + public int hashCode() { + return Objects.hash(cards); + } + + @Override + public String toString() { + return "UpdateAllSkillCardsOnFileRequestBodyMetadataField{" + "cards='" + cards + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List cards; + + public Builder cards( + List cards) { + this.cards = cards; + return this; + } + + public UpdateAllSkillCardsOnFileRequestBodyMetadataField build() { + return new UpdateAllSkillCardsOnFileRequestBodyMetadataField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyStatusField.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyStatusField.java new file mode 100644 index 000000000..96c5b2de3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyStatusField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.managers.skills; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateAllSkillCardsOnFileRequestBodyStatusField implements Valuable { + INVOKED("invoked"), + PROCESSING("processing"), + SUCCESS("success"), + TRANSIENT_FAILURE("transient_failure"), + PERMANENT_FAILURE("permanent_failure"); + + private final String value; + + UpdateAllSkillCardsOnFileRequestBodyStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateAllSkillCardsOnFileRequestBodyStatusFieldDeserializer + extends JsonDeserializer> { + + public UpdateAllSkillCardsOnFileRequestBodyStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateAllSkillCardsOnFileRequestBodyStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateAllSkillCardsOnFileRequestBodyStatusFieldSerializer + extends JsonSerializer> { + + public UpdateAllSkillCardsOnFileRequestBodyStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyUsageField.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyUsageField.java new file mode 100644 index 000000000..f71be3850 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyUsageField.java @@ -0,0 +1,85 @@ +package com.box.sdkgen.managers.skills; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateAllSkillCardsOnFileRequestBodyUsageField extends SerializableObject { + + protected String unit; + + protected Double value; + + public UpdateAllSkillCardsOnFileRequestBodyUsageField() { + super(); + } + + protected UpdateAllSkillCardsOnFileRequestBodyUsageField(Builder builder) { + super(); + this.unit = builder.unit; + this.value = builder.value; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getUnit() { + return unit; + } + + public Double getValue() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateAllSkillCardsOnFileRequestBodyUsageField casted = + (UpdateAllSkillCardsOnFileRequestBodyUsageField) o; + return Objects.equals(unit, casted.unit) && Objects.equals(value, casted.value); + } + + @Override + public int hashCode() { + return Objects.hash(unit, value); + } + + @Override + public String toString() { + return "UpdateAllSkillCardsOnFileRequestBodyUsageField{" + + "unit='" + + unit + + '\'' + + ", " + + "value='" + + value + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String unit; + + protected Double value; + + public Builder unit(String unit) { + this.unit = unit; + return this; + } + + public Builder value(Double value) { + this.value = value; + return this; + } + + public UpdateAllSkillCardsOnFileRequestBodyUsageField build() { + return new UpdateAllSkillCardsOnFileRequestBodyUsageField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileHeaders.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileHeaders.java new file mode 100644 index 000000000..5b7934366 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.skills; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateBoxSkillCardsOnFileHeaders { + + public Map extraHeaders; + + public UpdateBoxSkillCardsOnFileHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateBoxSkillCardsOnFileHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateBoxSkillCardsOnFileHeaders build() { + return new UpdateBoxSkillCardsOnFileHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileRequestBody.java new file mode 100644 index 000000000..7c26ac7dd --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileRequestBody.java @@ -0,0 +1,150 @@ +package com.box.sdkgen.managers.skills; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.keywordskillcard.KeywordSkillCard; +import com.box.sdkgen.schemas.keywordskillcardorstatusskillcardortimelineskillcardortranscriptskillcard.KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard; +import com.box.sdkgen.schemas.statusskillcard.StatusSkillCard; +import com.box.sdkgen.schemas.timelineskillcard.TimelineSkillCard; +import com.box.sdkgen.schemas.transcriptskillcard.TranscriptSkillCard; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateBoxSkillCardsOnFileRequestBody extends SerializableObject { + + @JsonDeserialize( + using = + UpdateBoxSkillCardsOnFileRequestBodyOpField + .UpdateBoxSkillCardsOnFileRequestBodyOpFieldDeserializer.class) + @JsonSerialize( + using = + UpdateBoxSkillCardsOnFileRequestBodyOpField + .UpdateBoxSkillCardsOnFileRequestBodyOpFieldSerializer.class) + protected EnumWrapper op; + + protected String path; + + protected KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard value; + + public UpdateBoxSkillCardsOnFileRequestBody() { + super(); + } + + protected UpdateBoxSkillCardsOnFileRequestBody(Builder builder) { + super(); + this.op = builder.op; + this.path = builder.path; + this.value = builder.value; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getOp() { + return op; + } + + public String getPath() { + return path; + } + + public KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard getValue() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateBoxSkillCardsOnFileRequestBody casted = (UpdateBoxSkillCardsOnFileRequestBody) o; + return Objects.equals(op, casted.op) + && Objects.equals(path, casted.path) + && Objects.equals(value, casted.value); + } + + @Override + public int hashCode() { + return Objects.hash(op, path, value); + } + + @Override + public String toString() { + return "UpdateBoxSkillCardsOnFileRequestBody{" + + "op='" + + op + + '\'' + + ", " + + "path='" + + path + + '\'' + + ", " + + "value='" + + value + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper op; + + protected String path; + + protected KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard value; + + public Builder op(UpdateBoxSkillCardsOnFileRequestBodyOpField op) { + this.op = new EnumWrapper(op); + return this; + } + + public Builder op(EnumWrapper op) { + this.op = op; + return this; + } + + public Builder path(String path) { + this.path = path; + return this; + } + + public Builder value(KeywordSkillCard value) { + this.value = + new KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard(value); + return this; + } + + public Builder value(StatusSkillCard value) { + this.value = + new KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard(value); + return this; + } + + public Builder value(TimelineSkillCard value) { + this.value = + new KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard(value); + return this; + } + + public Builder value(TranscriptSkillCard value) { + this.value = + new KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard(value); + return this; + } + + public Builder value( + KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard value) { + this.value = value; + return this; + } + + public UpdateBoxSkillCardsOnFileRequestBody build() { + return new UpdateBoxSkillCardsOnFileRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileRequestBodyOpField.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileRequestBodyOpField.java new file mode 100644 index 000000000..050e96ed3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileRequestBodyOpField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.skills; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateBoxSkillCardsOnFileRequestBodyOpField implements Valuable { + REPLACE("replace"); + + private final String value; + + UpdateBoxSkillCardsOnFileRequestBodyOpField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateBoxSkillCardsOnFileRequestBodyOpFieldDeserializer + extends JsonDeserializer> { + + public UpdateBoxSkillCardsOnFileRequestBodyOpFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateBoxSkillCardsOnFileRequestBodyOpField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateBoxSkillCardsOnFileRequestBodyOpFieldSerializer + extends JsonSerializer> { + + public UpdateBoxSkillCardsOnFileRequestBodyOpFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePoliciesHeaders.java b/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePoliciesHeaders.java new file mode 100644 index 000000000..6cae444ec --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePoliciesHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.storagepolicies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetStoragePoliciesHeaders { + + public Map extraHeaders; + + public GetStoragePoliciesHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetStoragePoliciesHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetStoragePoliciesHeaders build() { + return new GetStoragePoliciesHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePoliciesQueryParams.java b/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePoliciesQueryParams.java new file mode 100644 index 000000000..4587ca345 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePoliciesQueryParams.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.managers.storagepolicies; + +import java.util.List; + +public class GetStoragePoliciesQueryParams { + + public List fields; + + public String marker; + + public Long limit; + + public GetStoragePoliciesQueryParams() {} + + protected GetStoragePoliciesQueryParams(Builder builder) { + this.fields = builder.fields; + this.marker = builder.marker; + this.limit = builder.limit; + } + + public List getFields() { + return fields; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected List fields; + + protected String marker; + + protected Long limit; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetStoragePoliciesQueryParams build() { + return new GetStoragePoliciesQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePolicyByIdHeaders.java new file mode 100644 index 000000000..392195cd6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePolicyByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.storagepolicies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetStoragePolicyByIdHeaders { + + public Map extraHeaders; + + public GetStoragePolicyByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetStoragePolicyByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetStoragePolicyByIdHeaders build() { + return new GetStoragePolicyByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicies/StoragePoliciesManager.java b/src/main/java/com/box/sdkgen/managers/storagepolicies/StoragePoliciesManager.java new file mode 100644 index 000000000..bcd15945c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/storagepolicies/StoragePoliciesManager.java @@ -0,0 +1,132 @@ +package com.box.sdkgen.managers.storagepolicies; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.storagepolicies.StoragePolicies; +import com.box.sdkgen.schemas.storagepolicy.StoragePolicy; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class StoragePoliciesManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public StoragePoliciesManager() { + this.networkSession = new NetworkSession(); + } + + protected StoragePoliciesManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public StoragePolicies getStoragePolicies() { + return getStoragePolicies(new GetStoragePoliciesQueryParams(), new GetStoragePoliciesHeaders()); + } + + public StoragePolicies getStoragePolicies(GetStoragePoliciesQueryParams queryParams) { + return getStoragePolicies(queryParams, new GetStoragePoliciesHeaders()); + } + + public StoragePolicies getStoragePolicies(GetStoragePoliciesHeaders headers) { + return getStoragePolicies(new GetStoragePoliciesQueryParams(), headers); + } + + public StoragePolicies getStoragePolicies( + GetStoragePoliciesQueryParams queryParams, GetStoragePoliciesHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("fields", convertToString(queryParams.getFields())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/storage_policies"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), StoragePolicies.class); + } + + public StoragePolicy getStoragePolicyById(String storagePolicyId) { + return getStoragePolicyById(storagePolicyId, new GetStoragePolicyByIdHeaders()); + } + + public StoragePolicy getStoragePolicyById( + String storagePolicyId, GetStoragePolicyByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/storage_policies/", + convertToString(storagePolicyId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), StoragePolicy.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public StoragePoliciesManager build() { + return new StoragePoliciesManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentHeaders.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentHeaders.java new file mode 100644 index 000000000..0c61f3bc8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.storagepolicyassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateStoragePolicyAssignmentHeaders { + + public Map extraHeaders; + + public CreateStoragePolicyAssignmentHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateStoragePolicyAssignmentHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateStoragePolicyAssignmentHeaders build() { + return new CreateStoragePolicyAssignmentHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBody.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBody.java new file mode 100644 index 000000000..c1593c3fd --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBody.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.managers.storagepolicyassignments; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateStoragePolicyAssignmentRequestBody extends SerializableObject { + + @JsonProperty("storage_policy") + protected final CreateStoragePolicyAssignmentRequestBodyStoragePolicyField storagePolicy; + + @JsonProperty("assigned_to") + protected final CreateStoragePolicyAssignmentRequestBodyAssignedToField assignedTo; + + public CreateStoragePolicyAssignmentRequestBody( + @JsonProperty("storage_policy") + CreateStoragePolicyAssignmentRequestBodyStoragePolicyField storagePolicy, + @JsonProperty("assigned_to") + CreateStoragePolicyAssignmentRequestBodyAssignedToField assignedTo) { + super(); + this.storagePolicy = storagePolicy; + this.assignedTo = assignedTo; + } + + public CreateStoragePolicyAssignmentRequestBodyStoragePolicyField getStoragePolicy() { + return storagePolicy; + } + + public CreateStoragePolicyAssignmentRequestBodyAssignedToField getAssignedTo() { + return assignedTo; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateStoragePolicyAssignmentRequestBody casted = (CreateStoragePolicyAssignmentRequestBody) o; + return Objects.equals(storagePolicy, casted.storagePolicy) + && Objects.equals(assignedTo, casted.assignedTo); + } + + @Override + public int hashCode() { + return Objects.hash(storagePolicy, assignedTo); + } + + @Override + public String toString() { + return "CreateStoragePolicyAssignmentRequestBody{" + + "storagePolicy='" + + storagePolicy + + '\'' + + ", " + + "assignedTo='" + + assignedTo + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyAssignedToField.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyAssignedToField.java new file mode 100644 index 000000000..7e45c5a1b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyAssignedToField.java @@ -0,0 +1,80 @@ +package com.box.sdkgen.managers.storagepolicyassignments; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateStoragePolicyAssignmentRequestBodyAssignedToField extends SerializableObject { + + @JsonDeserialize( + using = + CreateStoragePolicyAssignmentRequestBodyAssignedToTypeField + .CreateStoragePolicyAssignmentRequestBodyAssignedToTypeFieldDeserializer.class) + @JsonSerialize( + using = + CreateStoragePolicyAssignmentRequestBodyAssignedToTypeField + .CreateStoragePolicyAssignmentRequestBodyAssignedToTypeFieldSerializer.class) + protected final EnumWrapper type; + + protected final String id; + + public CreateStoragePolicyAssignmentRequestBodyAssignedToField( + CreateStoragePolicyAssignmentRequestBodyAssignedToTypeField type, String id) { + super(); + this.type = new EnumWrapper(type); + this.id = id; + } + + public CreateStoragePolicyAssignmentRequestBodyAssignedToField( + @JsonProperty("type") + EnumWrapper type, + @JsonProperty("id") String id) { + super(); + this.type = type; + this.id = id; + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateStoragePolicyAssignmentRequestBodyAssignedToField casted = + (CreateStoragePolicyAssignmentRequestBodyAssignedToField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "CreateStoragePolicyAssignmentRequestBodyAssignedToField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyAssignedToTypeField.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyAssignedToTypeField.java new file mode 100644 index 000000000..b198a937b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyAssignedToTypeField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.managers.storagepolicyassignments; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateStoragePolicyAssignmentRequestBodyAssignedToTypeField implements Valuable { + USER("user"), + ENTERPRISE("enterprise"); + + private final String value; + + CreateStoragePolicyAssignmentRequestBodyAssignedToTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateStoragePolicyAssignmentRequestBodyAssignedToTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public CreateStoragePolicyAssignmentRequestBodyAssignedToTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateStoragePolicyAssignmentRequestBodyAssignedToTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper(value)); + } + } + + public static class CreateStoragePolicyAssignmentRequestBodyAssignedToTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public CreateStoragePolicyAssignmentRequestBodyAssignedToTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyStoragePolicyField.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyStoragePolicyField.java new file mode 100644 index 000000000..71c207f15 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyStoragePolicyField.java @@ -0,0 +1,111 @@ +package com.box.sdkgen.managers.storagepolicyassignments; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateStoragePolicyAssignmentRequestBodyStoragePolicyField extends SerializableObject { + + @JsonDeserialize( + using = + CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField + .CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeFieldDeserializer.class) + @JsonSerialize( + using = + CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField + .CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeFieldSerializer.class) + protected EnumWrapper type; + + protected final String id; + + public CreateStoragePolicyAssignmentRequestBodyStoragePolicyField(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField.STORAGE_POLICY); + } + + protected CreateStoragePolicyAssignmentRequestBodyStoragePolicyField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateStoragePolicyAssignmentRequestBodyStoragePolicyField casted = + (CreateStoragePolicyAssignmentRequestBodyStoragePolicyField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "CreateStoragePolicyAssignmentRequestBodyStoragePolicyField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField.STORAGE_POLICY); + } + + public Builder type(CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField type) { + this.type = + new EnumWrapper(type); + return this; + } + + public Builder type( + EnumWrapper type) { + this.type = type; + return this; + } + + public CreateStoragePolicyAssignmentRequestBodyStoragePolicyField build() { + return new CreateStoragePolicyAssignmentRequestBodyStoragePolicyField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField.java new file mode 100644 index 000000000..de8cdbc39 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.managers.storagepolicyassignments; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField implements Valuable { + STORAGE_POLICY("storage_policy"); + + private final String value; + + CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper( + value)); + } + } + + public static class CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/DeleteStoragePolicyAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/DeleteStoragePolicyAssignmentByIdHeaders.java new file mode 100644 index 000000000..af29170b4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/DeleteStoragePolicyAssignmentByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.storagepolicyassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteStoragePolicyAssignmentByIdHeaders { + + public Map extraHeaders; + + public DeleteStoragePolicyAssignmentByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteStoragePolicyAssignmentByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteStoragePolicyAssignmentByIdHeaders build() { + return new DeleteStoragePolicyAssignmentByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentByIdHeaders.java new file mode 100644 index 000000000..439f79473 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.storagepolicyassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetStoragePolicyAssignmentByIdHeaders { + + public Map extraHeaders; + + public GetStoragePolicyAssignmentByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetStoragePolicyAssignmentByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetStoragePolicyAssignmentByIdHeaders build() { + return new GetStoragePolicyAssignmentByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsHeaders.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsHeaders.java new file mode 100644 index 000000000..c4b5c6d08 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.storagepolicyassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetStoragePolicyAssignmentsHeaders { + + public Map extraHeaders; + + public GetStoragePolicyAssignmentsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetStoragePolicyAssignmentsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetStoragePolicyAssignmentsHeaders build() { + return new GetStoragePolicyAssignmentsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsQueryParams.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsQueryParams.java new file mode 100644 index 000000000..4ac7e6c50 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsQueryParams.java @@ -0,0 +1,83 @@ +package com.box.sdkgen.managers.storagepolicyassignments; + +import com.box.sdkgen.serialization.json.EnumWrapper; + +public class GetStoragePolicyAssignmentsQueryParams { + + public String marker; + + public final EnumWrapper + resolvedForType; + + public final String resolvedForId; + + public GetStoragePolicyAssignmentsQueryParams( + GetStoragePolicyAssignmentsQueryParamsResolvedForTypeField resolvedForType, + String resolvedForId) { + this.resolvedForType = + new EnumWrapper( + resolvedForType); + this.resolvedForId = resolvedForId; + } + + public GetStoragePolicyAssignmentsQueryParams( + EnumWrapper resolvedForType, + String resolvedForId) { + this.resolvedForType = resolvedForType; + this.resolvedForId = resolvedForId; + } + + protected GetStoragePolicyAssignmentsQueryParams(Builder builder) { + this.marker = builder.marker; + this.resolvedForType = builder.resolvedForType; + this.resolvedForId = builder.resolvedForId; + } + + public String getMarker() { + return marker; + } + + public EnumWrapper + getResolvedForType() { + return resolvedForType; + } + + public String getResolvedForId() { + return resolvedForId; + } + + public static class Builder { + + protected String marker; + + protected final EnumWrapper + resolvedForType; + + protected final String resolvedForId; + + public Builder( + GetStoragePolicyAssignmentsQueryParamsResolvedForTypeField resolvedForType, + String resolvedForId) { + this.resolvedForType = + new EnumWrapper( + resolvedForType); + this.resolvedForId = resolvedForId; + } + + public Builder( + EnumWrapper resolvedForType, + String resolvedForId) { + this.resolvedForType = resolvedForType; + this.resolvedForId = resolvedForId; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public GetStoragePolicyAssignmentsQueryParams build() { + return new GetStoragePolicyAssignmentsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsQueryParamsResolvedForTypeField.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsQueryParamsResolvedForTypeField.java new file mode 100644 index 000000000..67f825398 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsQueryParamsResolvedForTypeField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.managers.storagepolicyassignments; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetStoragePolicyAssignmentsQueryParamsResolvedForTypeField implements Valuable { + USER("user"), + ENTERPRISE("enterprise"); + + private final String value; + + GetStoragePolicyAssignmentsQueryParamsResolvedForTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetStoragePolicyAssignmentsQueryParamsResolvedForTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public GetStoragePolicyAssignmentsQueryParamsResolvedForTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetStoragePolicyAssignmentsQueryParamsResolvedForTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper(value)); + } + } + + public static class GetStoragePolicyAssignmentsQueryParamsResolvedForTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public GetStoragePolicyAssignmentsQueryParamsResolvedForTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/StoragePolicyAssignmentsManager.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/StoragePolicyAssignmentsManager.java new file mode 100644 index 000000000..7d6159959 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/StoragePolicyAssignmentsManager.java @@ -0,0 +1,214 @@ +package com.box.sdkgen.managers.storagepolicyassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.storagepolicyassignment.StoragePolicyAssignment; +import com.box.sdkgen.schemas.storagepolicyassignments.StoragePolicyAssignments; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class StoragePolicyAssignmentsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public StoragePolicyAssignmentsManager() { + this.networkSession = new NetworkSession(); + } + + protected StoragePolicyAssignmentsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public StoragePolicyAssignments getStoragePolicyAssignments( + GetStoragePolicyAssignmentsQueryParams queryParams) { + return getStoragePolicyAssignments(queryParams, new GetStoragePolicyAssignmentsHeaders()); + } + + public StoragePolicyAssignments getStoragePolicyAssignments( + GetStoragePolicyAssignmentsQueryParams queryParams, + GetStoragePolicyAssignmentsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("resolved_for_type", convertToString(queryParams.getResolvedForType())), + entryOf("resolved_for_id", convertToString(queryParams.getResolvedForId())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/storage_policy_assignments"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), StoragePolicyAssignments.class); + } + + public StoragePolicyAssignment createStoragePolicyAssignment( + CreateStoragePolicyAssignmentRequestBody requestBody) { + return createStoragePolicyAssignment(requestBody, new CreateStoragePolicyAssignmentHeaders()); + } + + public StoragePolicyAssignment createStoragePolicyAssignment( + CreateStoragePolicyAssignmentRequestBody requestBody, + CreateStoragePolicyAssignmentHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/storage_policy_assignments"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), StoragePolicyAssignment.class); + } + + public StoragePolicyAssignment getStoragePolicyAssignmentById(String storagePolicyAssignmentId) { + return getStoragePolicyAssignmentById( + storagePolicyAssignmentId, new GetStoragePolicyAssignmentByIdHeaders()); + } + + public StoragePolicyAssignment getStoragePolicyAssignmentById( + String storagePolicyAssignmentId, GetStoragePolicyAssignmentByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/storage_policy_assignments/", + convertToString(storagePolicyAssignmentId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), StoragePolicyAssignment.class); + } + + public StoragePolicyAssignment updateStoragePolicyAssignmentById( + String storagePolicyAssignmentId, UpdateStoragePolicyAssignmentByIdRequestBody requestBody) { + return updateStoragePolicyAssignmentById( + storagePolicyAssignmentId, requestBody, new UpdateStoragePolicyAssignmentByIdHeaders()); + } + + public StoragePolicyAssignment updateStoragePolicyAssignmentById( + String storagePolicyAssignmentId, + UpdateStoragePolicyAssignmentByIdRequestBody requestBody, + UpdateStoragePolicyAssignmentByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/storage_policy_assignments/", + convertToString(storagePolicyAssignmentId)), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), StoragePolicyAssignment.class); + } + + public void deleteStoragePolicyAssignmentById(String storagePolicyAssignmentId) { + deleteStoragePolicyAssignmentById( + storagePolicyAssignmentId, new DeleteStoragePolicyAssignmentByIdHeaders()); + } + + public void deleteStoragePolicyAssignmentById( + String storagePolicyAssignmentId, DeleteStoragePolicyAssignmentByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/storage_policy_assignments/", + convertToString(storagePolicyAssignmentId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public StoragePolicyAssignmentsManager build() { + return new StoragePolicyAssignmentsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdHeaders.java new file mode 100644 index 000000000..1dbd09e1c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.storagepolicyassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateStoragePolicyAssignmentByIdHeaders { + + public Map extraHeaders; + + public UpdateStoragePolicyAssignmentByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateStoragePolicyAssignmentByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateStoragePolicyAssignmentByIdHeaders build() { + return new UpdateStoragePolicyAssignmentByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBody.java new file mode 100644 index 000000000..99c3eec64 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBody.java @@ -0,0 +1,51 @@ +package com.box.sdkgen.managers.storagepolicyassignments; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateStoragePolicyAssignmentByIdRequestBody extends SerializableObject { + + @JsonProperty("storage_policy") + protected final UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField storagePolicy; + + public UpdateStoragePolicyAssignmentByIdRequestBody( + @JsonProperty("storage_policy") + UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField storagePolicy) { + super(); + this.storagePolicy = storagePolicy; + } + + public UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField getStoragePolicy() { + return storagePolicy; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateStoragePolicyAssignmentByIdRequestBody casted = + (UpdateStoragePolicyAssignmentByIdRequestBody) o; + return Objects.equals(storagePolicy, casted.storagePolicy); + } + + @Override + public int hashCode() { + return Objects.hash(storagePolicy); + } + + @Override + public String toString() { + return "UpdateStoragePolicyAssignmentByIdRequestBody{" + + "storagePolicy='" + + storagePolicy + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField.java new file mode 100644 index 000000000..faf456e72 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField.java @@ -0,0 +1,113 @@ +package com.box.sdkgen.managers.storagepolicyassignments; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField + extends SerializableObject { + + @JsonDeserialize( + using = + UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField + .UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeFieldDeserializer.class) + @JsonSerialize( + using = + UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField + .UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeFieldSerializer.class) + protected EnumWrapper type; + + protected final String id; + + public UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField( + @JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField.STORAGE_POLICY); + } + + protected UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField casted = + (UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField.STORAGE_POLICY); + } + + public Builder type(UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField type) { + this.type = + new EnumWrapper(type); + return this; + } + + public Builder type( + EnumWrapper type) { + this.type = type; + return this; + } + + public UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField build() { + return new UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField.java new file mode 100644 index 000000000..b4fc5596e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField.java @@ -0,0 +1,67 @@ +package com.box.sdkgen.managers.storagepolicyassignments; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField implements Valuable { + STORAGE_POLICY("storage_policy"); + + private final String value; + + UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper + deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream( + UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper( + value)); + } + } + + public static class UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentHeaders.java b/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentHeaders.java new file mode 100644 index 000000000..f2d37127a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.taskassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateTaskAssignmentHeaders { + + public Map extraHeaders; + + public CreateTaskAssignmentHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateTaskAssignmentHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateTaskAssignmentHeaders build() { + return new CreateTaskAssignmentHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBody.java b/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBody.java new file mode 100644 index 000000000..86383530b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBody.java @@ -0,0 +1,61 @@ +package com.box.sdkgen.managers.taskassignments; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateTaskAssignmentRequestBody extends SerializableObject { + + protected final CreateTaskAssignmentRequestBodyTaskField task; + + @JsonProperty("assign_to") + protected final CreateTaskAssignmentRequestBodyAssignToField assignTo; + + public CreateTaskAssignmentRequestBody( + @JsonProperty("task") CreateTaskAssignmentRequestBodyTaskField task, + @JsonProperty("assign_to") CreateTaskAssignmentRequestBodyAssignToField assignTo) { + super(); + this.task = task; + this.assignTo = assignTo; + } + + public CreateTaskAssignmentRequestBodyTaskField getTask() { + return task; + } + + public CreateTaskAssignmentRequestBodyAssignToField getAssignTo() { + return assignTo; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateTaskAssignmentRequestBody casted = (CreateTaskAssignmentRequestBody) o; + return Objects.equals(task, casted.task) && Objects.equals(assignTo, casted.assignTo); + } + + @Override + public int hashCode() { + return Objects.hash(task, assignTo); + } + + @Override + public String toString() { + return "CreateTaskAssignmentRequestBody{" + + "task='" + + task + + '\'' + + ", " + + "assignTo='" + + assignTo + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyAssignToField.java b/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyAssignToField.java new file mode 100644 index 000000000..e015dd07b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyAssignToField.java @@ -0,0 +1,85 @@ +package com.box.sdkgen.managers.taskassignments; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateTaskAssignmentRequestBodyAssignToField extends SerializableObject { + + protected String id; + + protected String login; + + public CreateTaskAssignmentRequestBodyAssignToField() { + super(); + } + + protected CreateTaskAssignmentRequestBodyAssignToField(Builder builder) { + super(); + this.id = builder.id; + this.login = builder.login; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getLogin() { + return login; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateTaskAssignmentRequestBodyAssignToField casted = + (CreateTaskAssignmentRequestBodyAssignToField) o; + return Objects.equals(id, casted.id) && Objects.equals(login, casted.login); + } + + @Override + public int hashCode() { + return Objects.hash(id, login); + } + + @Override + public String toString() { + return "CreateTaskAssignmentRequestBodyAssignToField{" + + "id='" + + id + + '\'' + + ", " + + "login='" + + login + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected String login; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder login(String login) { + this.login = login; + return this; + } + + public CreateTaskAssignmentRequestBodyAssignToField build() { + return new CreateTaskAssignmentRequestBodyAssignToField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyTaskField.java b/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyTaskField.java new file mode 100644 index 000000000..0dc003cd6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyTaskField.java @@ -0,0 +1,108 @@ +package com.box.sdkgen.managers.taskassignments; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateTaskAssignmentRequestBodyTaskField extends SerializableObject { + + protected final String id; + + @JsonDeserialize( + using = + CreateTaskAssignmentRequestBodyTaskTypeField + .CreateTaskAssignmentRequestBodyTaskTypeFieldDeserializer.class) + @JsonSerialize( + using = + CreateTaskAssignmentRequestBodyTaskTypeField + .CreateTaskAssignmentRequestBodyTaskTypeFieldSerializer.class) + protected EnumWrapper type; + + public CreateTaskAssignmentRequestBodyTaskField(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + CreateTaskAssignmentRequestBodyTaskTypeField.TASK); + } + + protected CreateTaskAssignmentRequestBodyTaskField(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateTaskAssignmentRequestBodyTaskField casted = (CreateTaskAssignmentRequestBodyTaskField) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "CreateTaskAssignmentRequestBodyTaskField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + CreateTaskAssignmentRequestBodyTaskTypeField.TASK); + } + + public Builder type(CreateTaskAssignmentRequestBodyTaskTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public CreateTaskAssignmentRequestBodyTaskField build() { + return new CreateTaskAssignmentRequestBodyTaskField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyTaskTypeField.java b/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyTaskTypeField.java new file mode 100644 index 000000000..b5d76d772 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyTaskTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.taskassignments; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateTaskAssignmentRequestBodyTaskTypeField implements Valuable { + TASK("task"); + + private final String value; + + CreateTaskAssignmentRequestBodyTaskTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateTaskAssignmentRequestBodyTaskTypeFieldDeserializer + extends JsonDeserializer> { + + public CreateTaskAssignmentRequestBodyTaskTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateTaskAssignmentRequestBodyTaskTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateTaskAssignmentRequestBodyTaskTypeFieldSerializer + extends JsonSerializer> { + + public CreateTaskAssignmentRequestBodyTaskTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/DeleteTaskAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/taskassignments/DeleteTaskAssignmentByIdHeaders.java new file mode 100644 index 000000000..6ac277bfa --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/DeleteTaskAssignmentByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.taskassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteTaskAssignmentByIdHeaders { + + public Map extraHeaders; + + public DeleteTaskAssignmentByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteTaskAssignmentByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteTaskAssignmentByIdHeaders build() { + return new DeleteTaskAssignmentByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/GetTaskAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/taskassignments/GetTaskAssignmentByIdHeaders.java new file mode 100644 index 000000000..fc375f064 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/GetTaskAssignmentByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.taskassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetTaskAssignmentByIdHeaders { + + public Map extraHeaders; + + public GetTaskAssignmentByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetTaskAssignmentByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetTaskAssignmentByIdHeaders build() { + return new GetTaskAssignmentByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/GetTaskAssignmentsHeaders.java b/src/main/java/com/box/sdkgen/managers/taskassignments/GetTaskAssignmentsHeaders.java new file mode 100644 index 000000000..308f1a09b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/GetTaskAssignmentsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.taskassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetTaskAssignmentsHeaders { + + public Map extraHeaders; + + public GetTaskAssignmentsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetTaskAssignmentsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetTaskAssignmentsHeaders build() { + return new GetTaskAssignmentsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/TaskAssignmentsManager.java b/src/main/java/com/box/sdkgen/managers/taskassignments/TaskAssignmentsManager.java new file mode 100644 index 000000000..ab18ad155 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/TaskAssignmentsManager.java @@ -0,0 +1,214 @@ +package com.box.sdkgen.managers.taskassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.taskassignment.TaskAssignment; +import com.box.sdkgen.schemas.taskassignments.TaskAssignments; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class TaskAssignmentsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public TaskAssignmentsManager() { + this.networkSession = new NetworkSession(); + } + + protected TaskAssignmentsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public TaskAssignments getTaskAssignments(String taskId) { + return getTaskAssignments(taskId, new GetTaskAssignmentsHeaders()); + } + + public TaskAssignments getTaskAssignments(String taskId, GetTaskAssignmentsHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/tasks/", + convertToString(taskId), + "/assignments"), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), TaskAssignments.class); + } + + public TaskAssignment createTaskAssignment(CreateTaskAssignmentRequestBody requestBody) { + return createTaskAssignment(requestBody, new CreateTaskAssignmentHeaders()); + } + + public TaskAssignment createTaskAssignment( + CreateTaskAssignmentRequestBody requestBody, CreateTaskAssignmentHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/task_assignments"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), TaskAssignment.class); + } + + public TaskAssignment getTaskAssignmentById(String taskAssignmentId) { + return getTaskAssignmentById(taskAssignmentId, new GetTaskAssignmentByIdHeaders()); + } + + public TaskAssignment getTaskAssignmentById( + String taskAssignmentId, GetTaskAssignmentByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/task_assignments/", + convertToString(taskAssignmentId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), TaskAssignment.class); + } + + public TaskAssignment updateTaskAssignmentById(String taskAssignmentId) { + return updateTaskAssignmentById( + taskAssignmentId, + new UpdateTaskAssignmentByIdRequestBody(), + new UpdateTaskAssignmentByIdHeaders()); + } + + public TaskAssignment updateTaskAssignmentById( + String taskAssignmentId, UpdateTaskAssignmentByIdRequestBody requestBody) { + return updateTaskAssignmentById( + taskAssignmentId, requestBody, new UpdateTaskAssignmentByIdHeaders()); + } + + public TaskAssignment updateTaskAssignmentById( + String taskAssignmentId, UpdateTaskAssignmentByIdHeaders headers) { + return updateTaskAssignmentById( + taskAssignmentId, new UpdateTaskAssignmentByIdRequestBody(), headers); + } + + public TaskAssignment updateTaskAssignmentById( + String taskAssignmentId, + UpdateTaskAssignmentByIdRequestBody requestBody, + UpdateTaskAssignmentByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/task_assignments/", + convertToString(taskAssignmentId)), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), TaskAssignment.class); + } + + public void deleteTaskAssignmentById(String taskAssignmentId) { + deleteTaskAssignmentById(taskAssignmentId, new DeleteTaskAssignmentByIdHeaders()); + } + + public void deleteTaskAssignmentById( + String taskAssignmentId, DeleteTaskAssignmentByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/task_assignments/", + convertToString(taskAssignmentId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public TaskAssignmentsManager build() { + return new TaskAssignmentsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdHeaders.java new file mode 100644 index 000000000..81d528f05 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.taskassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateTaskAssignmentByIdHeaders { + + public Map extraHeaders; + + public UpdateTaskAssignmentByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateTaskAssignmentByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateTaskAssignmentByIdHeaders build() { + return new UpdateTaskAssignmentByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdRequestBody.java new file mode 100644 index 000000000..4a5473da4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdRequestBody.java @@ -0,0 +1,106 @@ +package com.box.sdkgen.managers.taskassignments; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateTaskAssignmentByIdRequestBody extends SerializableObject { + + protected String message; + + @JsonDeserialize( + using = + UpdateTaskAssignmentByIdRequestBodyResolutionStateField + .UpdateTaskAssignmentByIdRequestBodyResolutionStateFieldDeserializer.class) + @JsonSerialize( + using = + UpdateTaskAssignmentByIdRequestBodyResolutionStateField + .UpdateTaskAssignmentByIdRequestBodyResolutionStateFieldSerializer.class) + @JsonProperty("resolution_state") + protected EnumWrapper resolutionState; + + public UpdateTaskAssignmentByIdRequestBody() { + super(); + } + + protected UpdateTaskAssignmentByIdRequestBody(Builder builder) { + super(); + this.message = builder.message; + this.resolutionState = builder.resolutionState; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getMessage() { + return message; + } + + public EnumWrapper getResolutionState() { + return resolutionState; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateTaskAssignmentByIdRequestBody casted = (UpdateTaskAssignmentByIdRequestBody) o; + return Objects.equals(message, casted.message) + && Objects.equals(resolutionState, casted.resolutionState); + } + + @Override + public int hashCode() { + return Objects.hash(message, resolutionState); + } + + @Override + public String toString() { + return "UpdateTaskAssignmentByIdRequestBody{" + + "message='" + + message + + '\'' + + ", " + + "resolutionState='" + + resolutionState + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String message; + + protected EnumWrapper resolutionState; + + public Builder message(String message) { + this.message = message; + return this; + } + + public Builder resolutionState( + UpdateTaskAssignmentByIdRequestBodyResolutionStateField resolutionState) { + this.resolutionState = + new EnumWrapper(resolutionState); + return this; + } + + public Builder resolutionState( + EnumWrapper resolutionState) { + this.resolutionState = resolutionState; + return this; + } + + public UpdateTaskAssignmentByIdRequestBody build() { + return new UpdateTaskAssignmentByIdRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdRequestBodyResolutionStateField.java b/src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdRequestBodyResolutionStateField.java new file mode 100644 index 000000000..e6e4e4aaa --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdRequestBodyResolutionStateField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.managers.taskassignments; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateTaskAssignmentByIdRequestBodyResolutionStateField implements Valuable { + COMPLETED("completed"), + INCOMPLETE("incomplete"), + APPROVED("approved"), + REJECTED("rejected"); + + private final String value; + + UpdateTaskAssignmentByIdRequestBodyResolutionStateField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateTaskAssignmentByIdRequestBodyResolutionStateFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public UpdateTaskAssignmentByIdRequestBodyResolutionStateFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateTaskAssignmentByIdRequestBodyResolutionStateField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateTaskAssignmentByIdRequestBodyResolutionStateFieldSerializer + extends JsonSerializer> { + + public UpdateTaskAssignmentByIdRequestBodyResolutionStateFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskHeaders.java b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskHeaders.java new file mode 100644 index 000000000..7fff2de3f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.tasks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateTaskHeaders { + + public Map extraHeaders; + + public CreateTaskHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateTaskHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateTaskHeaders build() { + return new CreateTaskHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBody.java b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBody.java new file mode 100644 index 000000000..58fee0bbf --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBody.java @@ -0,0 +1,177 @@ +package com.box.sdkgen.managers.tasks; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateTaskRequestBody extends SerializableObject { + + protected final CreateTaskRequestBodyItemField item; + + @JsonDeserialize( + using = CreateTaskRequestBodyActionField.CreateTaskRequestBodyActionFieldDeserializer.class) + @JsonSerialize( + using = CreateTaskRequestBodyActionField.CreateTaskRequestBodyActionFieldSerializer.class) + protected EnumWrapper action; + + protected String message; + + @JsonProperty("due_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date dueAt; + + @JsonDeserialize( + using = + CreateTaskRequestBodyCompletionRuleField + .CreateTaskRequestBodyCompletionRuleFieldDeserializer.class) + @JsonSerialize( + using = + CreateTaskRequestBodyCompletionRuleField + .CreateTaskRequestBodyCompletionRuleFieldSerializer.class) + @JsonProperty("completion_rule") + protected EnumWrapper completionRule; + + public CreateTaskRequestBody(@JsonProperty("item") CreateTaskRequestBodyItemField item) { + super(); + this.item = item; + } + + protected CreateTaskRequestBody(Builder builder) { + super(); + this.item = builder.item; + this.action = builder.action; + this.message = builder.message; + this.dueAt = builder.dueAt; + this.completionRule = builder.completionRule; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public CreateTaskRequestBodyItemField getItem() { + return item; + } + + public EnumWrapper getAction() { + return action; + } + + public String getMessage() { + return message; + } + + public Date getDueAt() { + return dueAt; + } + + public EnumWrapper getCompletionRule() { + return completionRule; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateTaskRequestBody casted = (CreateTaskRequestBody) o; + return Objects.equals(item, casted.item) + && Objects.equals(action, casted.action) + && Objects.equals(message, casted.message) + && Objects.equals(dueAt, casted.dueAt) + && Objects.equals(completionRule, casted.completionRule); + } + + @Override + public int hashCode() { + return Objects.hash(item, action, message, dueAt, completionRule); + } + + @Override + public String toString() { + return "CreateTaskRequestBody{" + + "item='" + + item + + '\'' + + ", " + + "action='" + + action + + '\'' + + ", " + + "message='" + + message + + '\'' + + ", " + + "dueAt='" + + dueAt + + '\'' + + ", " + + "completionRule='" + + completionRule + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final CreateTaskRequestBodyItemField item; + + protected EnumWrapper action; + + protected String message; + + protected Date dueAt; + + protected EnumWrapper completionRule; + + public Builder(CreateTaskRequestBodyItemField item) { + super(); + this.item = item; + } + + public Builder action(CreateTaskRequestBodyActionField action) { + this.action = new EnumWrapper(action); + return this; + } + + public Builder action(EnumWrapper action) { + this.action = action; + return this; + } + + public Builder message(String message) { + this.message = message; + return this; + } + + public Builder dueAt(Date dueAt) { + this.dueAt = dueAt; + return this; + } + + public Builder completionRule(CreateTaskRequestBodyCompletionRuleField completionRule) { + this.completionRule = + new EnumWrapper(completionRule); + return this; + } + + public Builder completionRule( + EnumWrapper completionRule) { + this.completionRule = completionRule; + return this; + } + + public CreateTaskRequestBody build() { + return new CreateTaskRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyActionField.java b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyActionField.java new file mode 100644 index 000000000..e8911cf60 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyActionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.tasks; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateTaskRequestBodyActionField implements Valuable { + REVIEW("review"), + COMPLETE("complete"); + + private final String value; + + CreateTaskRequestBodyActionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateTaskRequestBodyActionFieldDeserializer + extends JsonDeserializer> { + + public CreateTaskRequestBodyActionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateTaskRequestBodyActionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateTaskRequestBodyActionFieldSerializer + extends JsonSerializer> { + + public CreateTaskRequestBodyActionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyCompletionRuleField.java b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyCompletionRuleField.java new file mode 100644 index 000000000..e05850cc4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyCompletionRuleField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.tasks; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateTaskRequestBodyCompletionRuleField implements Valuable { + ALL_ASSIGNEES("all_assignees"), + ANY_ASSIGNEE("any_assignee"); + + private final String value; + + CreateTaskRequestBodyCompletionRuleField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateTaskRequestBodyCompletionRuleFieldDeserializer + extends JsonDeserializer> { + + public CreateTaskRequestBodyCompletionRuleFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateTaskRequestBodyCompletionRuleField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateTaskRequestBodyCompletionRuleFieldSerializer + extends JsonSerializer> { + + public CreateTaskRequestBodyCompletionRuleFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyItemField.java b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyItemField.java new file mode 100644 index 000000000..62a6f0e73 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyItemField.java @@ -0,0 +1,97 @@ +package com.box.sdkgen.managers.tasks; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateTaskRequestBodyItemField extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = + CreateTaskRequestBodyItemTypeField.CreateTaskRequestBodyItemTypeFieldDeserializer.class) + @JsonSerialize( + using = CreateTaskRequestBodyItemTypeField.CreateTaskRequestBodyItemTypeFieldSerializer.class) + protected EnumWrapper type; + + public CreateTaskRequestBodyItemField() { + super(); + } + + protected CreateTaskRequestBodyItemField(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateTaskRequestBodyItemField casted = (CreateTaskRequestBodyItemField) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "CreateTaskRequestBodyItemField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(CreateTaskRequestBodyItemTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public CreateTaskRequestBodyItemField build() { + return new CreateTaskRequestBodyItemField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyItemTypeField.java b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyItemTypeField.java new file mode 100644 index 000000000..ad2ffab87 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyItemTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.tasks; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateTaskRequestBodyItemTypeField implements Valuable { + FILE("file"); + + private final String value; + + CreateTaskRequestBodyItemTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateTaskRequestBodyItemTypeFieldDeserializer + extends JsonDeserializer> { + + public CreateTaskRequestBodyItemTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateTaskRequestBodyItemTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateTaskRequestBodyItemTypeFieldSerializer + extends JsonSerializer> { + + public CreateTaskRequestBodyItemTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/tasks/DeleteTaskByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/tasks/DeleteTaskByIdHeaders.java new file mode 100644 index 000000000..400ffcec4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/tasks/DeleteTaskByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.tasks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteTaskByIdHeaders { + + public Map extraHeaders; + + public DeleteTaskByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteTaskByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteTaskByIdHeaders build() { + return new DeleteTaskByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/tasks/GetFileTasksHeaders.java b/src/main/java/com/box/sdkgen/managers/tasks/GetFileTasksHeaders.java new file mode 100644 index 000000000..d37da2488 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/tasks/GetFileTasksHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.tasks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetFileTasksHeaders { + + public Map extraHeaders; + + public GetFileTasksHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetFileTasksHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetFileTasksHeaders build() { + return new GetFileTasksHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/tasks/GetTaskByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/tasks/GetTaskByIdHeaders.java new file mode 100644 index 000000000..1c8c3a47e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/tasks/GetTaskByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.tasks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetTaskByIdHeaders { + + public Map extraHeaders; + + public GetTaskByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetTaskByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetTaskByIdHeaders build() { + return new GetTaskByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/tasks/TasksManager.java b/src/main/java/com/box/sdkgen/managers/tasks/TasksManager.java new file mode 100644 index 000000000..a434c18c1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/tasks/TasksManager.java @@ -0,0 +1,200 @@ +package com.box.sdkgen.managers.tasks; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.task.Task; +import com.box.sdkgen.schemas.tasks.Tasks; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class TasksManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public TasksManager() { + this.networkSession = new NetworkSession(); + } + + protected TasksManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public Tasks getFileTasks(String fileId) { + return getFileTasks(fileId, new GetFileTasksHeaders()); + } + + public Tasks getFileTasks(String fileId, GetFileTasksHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/tasks"), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Tasks.class); + } + + public Task createTask(CreateTaskRequestBody requestBody) { + return createTask(requestBody, new CreateTaskHeaders()); + } + + public Task createTask(CreateTaskRequestBody requestBody, CreateTaskHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/tasks"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Task.class); + } + + public Task getTaskById(String taskId) { + return getTaskById(taskId, new GetTaskByIdHeaders()); + } + + public Task getTaskById(String taskId, GetTaskByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/tasks/", + convertToString(taskId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Task.class); + } + + public Task updateTaskById(String taskId) { + return updateTaskById(taskId, new UpdateTaskByIdRequestBody(), new UpdateTaskByIdHeaders()); + } + + public Task updateTaskById(String taskId, UpdateTaskByIdRequestBody requestBody) { + return updateTaskById(taskId, requestBody, new UpdateTaskByIdHeaders()); + } + + public Task updateTaskById(String taskId, UpdateTaskByIdHeaders headers) { + return updateTaskById(taskId, new UpdateTaskByIdRequestBody(), headers); + } + + public Task updateTaskById( + String taskId, UpdateTaskByIdRequestBody requestBody, UpdateTaskByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/tasks/", + convertToString(taskId)), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Task.class); + } + + public void deleteTaskById(String taskId) { + deleteTaskById(taskId, new DeleteTaskByIdHeaders()); + } + + public void deleteTaskById(String taskId, DeleteTaskByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/tasks/", + convertToString(taskId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public TasksManager build() { + return new TasksManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdHeaders.java new file mode 100644 index 000000000..a1093033c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.tasks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateTaskByIdHeaders { + + public Map extraHeaders; + + public UpdateTaskByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateTaskByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateTaskByIdHeaders build() { + return new UpdateTaskByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBody.java new file mode 100644 index 000000000..e745e03b6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBody.java @@ -0,0 +1,160 @@ +package com.box.sdkgen.managers.tasks; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateTaskByIdRequestBody extends SerializableObject { + + @JsonDeserialize( + using = + UpdateTaskByIdRequestBodyActionField.UpdateTaskByIdRequestBodyActionFieldDeserializer + .class) + @JsonSerialize( + using = + UpdateTaskByIdRequestBodyActionField.UpdateTaskByIdRequestBodyActionFieldSerializer.class) + protected EnumWrapper action; + + protected String message; + + @JsonProperty("due_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date dueAt; + + @JsonDeserialize( + using = + UpdateTaskByIdRequestBodyCompletionRuleField + .UpdateTaskByIdRequestBodyCompletionRuleFieldDeserializer.class) + @JsonSerialize( + using = + UpdateTaskByIdRequestBodyCompletionRuleField + .UpdateTaskByIdRequestBodyCompletionRuleFieldSerializer.class) + @JsonProperty("completion_rule") + protected EnumWrapper completionRule; + + public UpdateTaskByIdRequestBody() { + super(); + } + + protected UpdateTaskByIdRequestBody(Builder builder) { + super(); + this.action = builder.action; + this.message = builder.message; + this.dueAt = builder.dueAt; + this.completionRule = builder.completionRule; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getAction() { + return action; + } + + public String getMessage() { + return message; + } + + public Date getDueAt() { + return dueAt; + } + + public EnumWrapper getCompletionRule() { + return completionRule; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateTaskByIdRequestBody casted = (UpdateTaskByIdRequestBody) o; + return Objects.equals(action, casted.action) + && Objects.equals(message, casted.message) + && Objects.equals(dueAt, casted.dueAt) + && Objects.equals(completionRule, casted.completionRule); + } + + @Override + public int hashCode() { + return Objects.hash(action, message, dueAt, completionRule); + } + + @Override + public String toString() { + return "UpdateTaskByIdRequestBody{" + + "action='" + + action + + '\'' + + ", " + + "message='" + + message + + '\'' + + ", " + + "dueAt='" + + dueAt + + '\'' + + ", " + + "completionRule='" + + completionRule + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper action; + + protected String message; + + protected Date dueAt; + + protected EnumWrapper completionRule; + + public Builder action(UpdateTaskByIdRequestBodyActionField action) { + this.action = new EnumWrapper(action); + return this; + } + + public Builder action(EnumWrapper action) { + this.action = action; + return this; + } + + public Builder message(String message) { + this.message = message; + return this; + } + + public Builder dueAt(Date dueAt) { + this.dueAt = dueAt; + return this; + } + + public Builder completionRule(UpdateTaskByIdRequestBodyCompletionRuleField completionRule) { + this.completionRule = + new EnumWrapper(completionRule); + return this; + } + + public Builder completionRule( + EnumWrapper completionRule) { + this.completionRule = completionRule; + return this; + } + + public UpdateTaskByIdRequestBody build() { + return new UpdateTaskByIdRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBodyActionField.java b/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBodyActionField.java new file mode 100644 index 000000000..5f289bded --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBodyActionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.tasks; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateTaskByIdRequestBodyActionField implements Valuable { + REVIEW("review"), + COMPLETE("complete"); + + private final String value; + + UpdateTaskByIdRequestBodyActionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateTaskByIdRequestBodyActionFieldDeserializer + extends JsonDeserializer> { + + public UpdateTaskByIdRequestBodyActionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateTaskByIdRequestBodyActionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateTaskByIdRequestBodyActionFieldSerializer + extends JsonSerializer> { + + public UpdateTaskByIdRequestBodyActionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBodyCompletionRuleField.java b/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBodyCompletionRuleField.java new file mode 100644 index 000000000..1e5d0d4a4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBodyCompletionRuleField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.tasks; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateTaskByIdRequestBodyCompletionRuleField implements Valuable { + ALL_ASSIGNEES("all_assignees"), + ANY_ASSIGNEE("any_assignee"); + + private final String value; + + UpdateTaskByIdRequestBodyCompletionRuleField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateTaskByIdRequestBodyCompletionRuleFieldDeserializer + extends JsonDeserializer> { + + public UpdateTaskByIdRequestBodyCompletionRuleFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateTaskByIdRequestBodyCompletionRuleField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateTaskByIdRequestBodyCompletionRuleFieldSerializer + extends JsonSerializer> { + + public UpdateTaskByIdRequestBodyCompletionRuleFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceHeaders.java b/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceHeaders.java new file mode 100644 index 000000000..ac5f503e2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.termsofservices; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateTermsOfServiceHeaders { + + public Map extraHeaders; + + public CreateTermsOfServiceHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateTermsOfServiceHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateTermsOfServiceHeaders build() { + return new CreateTermsOfServiceHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceRequestBody.java b/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceRequestBody.java new file mode 100644 index 000000000..9026dfd66 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceRequestBody.java @@ -0,0 +1,143 @@ +package com.box.sdkgen.managers.termsofservices; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateTermsOfServiceRequestBody extends SerializableObject { + + @JsonDeserialize( + using = + CreateTermsOfServiceRequestBodyStatusField + .CreateTermsOfServiceRequestBodyStatusFieldDeserializer.class) + @JsonSerialize( + using = + CreateTermsOfServiceRequestBodyStatusField + .CreateTermsOfServiceRequestBodyStatusFieldSerializer.class) + protected final EnumWrapper status; + + @JsonDeserialize( + using = + CreateTermsOfServiceRequestBodyTosTypeField + .CreateTermsOfServiceRequestBodyTosTypeFieldDeserializer.class) + @JsonSerialize( + using = + CreateTermsOfServiceRequestBodyTosTypeField + .CreateTermsOfServiceRequestBodyTosTypeFieldSerializer.class) + @JsonProperty("tos_type") + protected EnumWrapper tosType; + + protected final String text; + + public CreateTermsOfServiceRequestBody( + CreateTermsOfServiceRequestBodyStatusField status, String text) { + super(); + this.status = new EnumWrapper(status); + this.text = text; + } + + public CreateTermsOfServiceRequestBody( + @JsonProperty("status") EnumWrapper status, + @JsonProperty("text") String text) { + super(); + this.status = status; + this.text = text; + } + + protected CreateTermsOfServiceRequestBody(Builder builder) { + super(); + this.status = builder.status; + this.tosType = builder.tosType; + this.text = builder.text; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getStatus() { + return status; + } + + public EnumWrapper getTosType() { + return tosType; + } + + public String getText() { + return text; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateTermsOfServiceRequestBody casted = (CreateTermsOfServiceRequestBody) o; + return Objects.equals(status, casted.status) + && Objects.equals(tosType, casted.tosType) + && Objects.equals(text, casted.text); + } + + @Override + public int hashCode() { + return Objects.hash(status, tosType, text); + } + + @Override + public String toString() { + return "CreateTermsOfServiceRequestBody{" + + "status='" + + status + + '\'' + + ", " + + "tosType='" + + tosType + + '\'' + + ", " + + "text='" + + text + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final EnumWrapper status; + + protected EnumWrapper tosType; + + protected final String text; + + public Builder(CreateTermsOfServiceRequestBodyStatusField status, String text) { + super(); + this.status = new EnumWrapper(status); + this.text = text; + } + + public Builder(EnumWrapper status, String text) { + super(); + this.status = status; + this.text = text; + } + + public Builder tosType(CreateTermsOfServiceRequestBodyTosTypeField tosType) { + this.tosType = new EnumWrapper(tosType); + return this; + } + + public Builder tosType(EnumWrapper tosType) { + this.tosType = tosType; + return this; + } + + public CreateTermsOfServiceRequestBody build() { + return new CreateTermsOfServiceRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceRequestBodyStatusField.java b/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceRequestBodyStatusField.java new file mode 100644 index 000000000..15046e76b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceRequestBodyStatusField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.termsofservices; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateTermsOfServiceRequestBodyStatusField implements Valuable { + ENABLED("enabled"), + DISABLED("disabled"); + + private final String value; + + CreateTermsOfServiceRequestBodyStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateTermsOfServiceRequestBodyStatusFieldDeserializer + extends JsonDeserializer> { + + public CreateTermsOfServiceRequestBodyStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateTermsOfServiceRequestBodyStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateTermsOfServiceRequestBodyStatusFieldSerializer + extends JsonSerializer> { + + public CreateTermsOfServiceRequestBodyStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceRequestBodyTosTypeField.java b/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceRequestBodyTosTypeField.java new file mode 100644 index 000000000..8ba145180 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceRequestBodyTosTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.termsofservices; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateTermsOfServiceRequestBodyTosTypeField implements Valuable { + EXTERNAL("external"), + MANAGED("managed"); + + private final String value; + + CreateTermsOfServiceRequestBodyTosTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateTermsOfServiceRequestBodyTosTypeFieldDeserializer + extends JsonDeserializer> { + + public CreateTermsOfServiceRequestBodyTosTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateTermsOfServiceRequestBodyTosTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateTermsOfServiceRequestBodyTosTypeFieldSerializer + extends JsonSerializer> { + + public CreateTermsOfServiceRequestBodyTosTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceByIdHeaders.java new file mode 100644 index 000000000..31834d745 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.termsofservices; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetTermsOfServiceByIdHeaders { + + public Map extraHeaders; + + public GetTermsOfServiceByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetTermsOfServiceByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetTermsOfServiceByIdHeaders build() { + return new GetTermsOfServiceByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceHeaders.java b/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceHeaders.java new file mode 100644 index 000000000..8675735fa --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.termsofservices; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetTermsOfServiceHeaders { + + public Map extraHeaders; + + public GetTermsOfServiceHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetTermsOfServiceHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetTermsOfServiceHeaders build() { + return new GetTermsOfServiceHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceQueryParams.java b/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceQueryParams.java new file mode 100644 index 000000000..cac739c98 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceQueryParams.java @@ -0,0 +1,37 @@ +package com.box.sdkgen.managers.termsofservices; + +import com.box.sdkgen.serialization.json.EnumWrapper; + +public class GetTermsOfServiceQueryParams { + + public EnumWrapper tosType; + + public GetTermsOfServiceQueryParams() {} + + protected GetTermsOfServiceQueryParams(Builder builder) { + this.tosType = builder.tosType; + } + + public EnumWrapper getTosType() { + return tosType; + } + + public static class Builder { + + protected EnumWrapper tosType; + + public Builder tosType(GetTermsOfServiceQueryParamsTosTypeField tosType) { + this.tosType = new EnumWrapper(tosType); + return this; + } + + public Builder tosType(EnumWrapper tosType) { + this.tosType = tosType; + return this; + } + + public GetTermsOfServiceQueryParams build() { + return new GetTermsOfServiceQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceQueryParamsTosTypeField.java b/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceQueryParamsTosTypeField.java new file mode 100644 index 000000000..d8c8ebb85 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceQueryParamsTosTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.termsofservices; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetTermsOfServiceQueryParamsTosTypeField implements Valuable { + EXTERNAL("external"), + MANAGED("managed"); + + private final String value; + + GetTermsOfServiceQueryParamsTosTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetTermsOfServiceQueryParamsTosTypeFieldDeserializer + extends JsonDeserializer> { + + public GetTermsOfServiceQueryParamsTosTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetTermsOfServiceQueryParamsTosTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetTermsOfServiceQueryParamsTosTypeFieldSerializer + extends JsonSerializer> { + + public GetTermsOfServiceQueryParamsTosTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/TermsOfServicesManager.java b/src/main/java/com/box/sdkgen/managers/termsofservices/TermsOfServicesManager.java new file mode 100644 index 000000000..834f80931 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/TermsOfServicesManager.java @@ -0,0 +1,187 @@ +package com.box.sdkgen.managers.termsofservices; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.termsofservice.TermsOfService; +import com.box.sdkgen.schemas.termsofservices.TermsOfServices; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class TermsOfServicesManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public TermsOfServicesManager() { + this.networkSession = new NetworkSession(); + } + + protected TermsOfServicesManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public TermsOfServices getTermsOfService() { + return getTermsOfService(new GetTermsOfServiceQueryParams(), new GetTermsOfServiceHeaders()); + } + + public TermsOfServices getTermsOfService(GetTermsOfServiceQueryParams queryParams) { + return getTermsOfService(queryParams, new GetTermsOfServiceHeaders()); + } + + public TermsOfServices getTermsOfService(GetTermsOfServiceHeaders headers) { + return getTermsOfService(new GetTermsOfServiceQueryParams(), headers); + } + + public TermsOfServices getTermsOfService( + GetTermsOfServiceQueryParams queryParams, GetTermsOfServiceHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("tos_type", convertToString(queryParams.getTosType())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/terms_of_services"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), TermsOfServices.class); + } + + public TermsOfService createTermsOfService(CreateTermsOfServiceRequestBody requestBody) { + return createTermsOfService(requestBody, new CreateTermsOfServiceHeaders()); + } + + public TermsOfService createTermsOfService( + CreateTermsOfServiceRequestBody requestBody, CreateTermsOfServiceHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/terms_of_services"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), TermsOfService.class); + } + + public TermsOfService getTermsOfServiceById(String termsOfServiceId) { + return getTermsOfServiceById(termsOfServiceId, new GetTermsOfServiceByIdHeaders()); + } + + public TermsOfService getTermsOfServiceById( + String termsOfServiceId, GetTermsOfServiceByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/terms_of_services/", + convertToString(termsOfServiceId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), TermsOfService.class); + } + + public TermsOfService updateTermsOfServiceById( + String termsOfServiceId, UpdateTermsOfServiceByIdRequestBody requestBody) { + return updateTermsOfServiceById( + termsOfServiceId, requestBody, new UpdateTermsOfServiceByIdHeaders()); + } + + public TermsOfService updateTermsOfServiceById( + String termsOfServiceId, + UpdateTermsOfServiceByIdRequestBody requestBody, + UpdateTermsOfServiceByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/terms_of_services/", + convertToString(termsOfServiceId)), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), TermsOfService.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public TermsOfServicesManager build() { + return new TermsOfServicesManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdHeaders.java new file mode 100644 index 000000000..503f95390 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.termsofservices; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateTermsOfServiceByIdHeaders { + + public Map extraHeaders; + + public UpdateTermsOfServiceByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateTermsOfServiceByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateTermsOfServiceByIdHeaders build() { + return new UpdateTermsOfServiceByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdRequestBody.java new file mode 100644 index 000000000..17509054b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdRequestBody.java @@ -0,0 +1,78 @@ +package com.box.sdkgen.managers.termsofservices; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateTermsOfServiceByIdRequestBody extends SerializableObject { + + @JsonDeserialize( + using = + UpdateTermsOfServiceByIdRequestBodyStatusField + .UpdateTermsOfServiceByIdRequestBodyStatusFieldDeserializer.class) + @JsonSerialize( + using = + UpdateTermsOfServiceByIdRequestBodyStatusField + .UpdateTermsOfServiceByIdRequestBodyStatusFieldSerializer.class) + protected final EnumWrapper status; + + protected final String text; + + public UpdateTermsOfServiceByIdRequestBody( + UpdateTermsOfServiceByIdRequestBodyStatusField status, String text) { + super(); + this.status = new EnumWrapper(status); + this.text = text; + } + + public UpdateTermsOfServiceByIdRequestBody( + @JsonProperty("status") EnumWrapper status, + @JsonProperty("text") String text) { + super(); + this.status = status; + this.text = text; + } + + public EnumWrapper getStatus() { + return status; + } + + public String getText() { + return text; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateTermsOfServiceByIdRequestBody casted = (UpdateTermsOfServiceByIdRequestBody) o; + return Objects.equals(status, casted.status) && Objects.equals(text, casted.text); + } + + @Override + public int hashCode() { + return Objects.hash(status, text); + } + + @Override + public String toString() { + return "UpdateTermsOfServiceByIdRequestBody{" + + "status='" + + status + + '\'' + + ", " + + "text='" + + text + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdRequestBodyStatusField.java b/src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdRequestBodyStatusField.java new file mode 100644 index 000000000..88c9b413e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdRequestBodyStatusField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.termsofservices; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateTermsOfServiceByIdRequestBodyStatusField implements Valuable { + ENABLED("enabled"), + DISABLED("disabled"); + + private final String value; + + UpdateTermsOfServiceByIdRequestBodyStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateTermsOfServiceByIdRequestBodyStatusFieldDeserializer + extends JsonDeserializer> { + + public UpdateTermsOfServiceByIdRequestBodyStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateTermsOfServiceByIdRequestBodyStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateTermsOfServiceByIdRequestBodyStatusFieldSerializer + extends JsonSerializer> { + + public UpdateTermsOfServiceByIdRequestBodyStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserHeaders.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserHeaders.java new file mode 100644 index 000000000..d9b99b846 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.termsofserviceuserstatuses; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateTermsOfServiceStatusForUserHeaders { + + public Map extraHeaders; + + public CreateTermsOfServiceStatusForUserHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateTermsOfServiceStatusForUserHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateTermsOfServiceStatusForUserHeaders build() { + return new CreateTermsOfServiceStatusForUserHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBody.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBody.java new file mode 100644 index 000000000..044330399 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBody.java @@ -0,0 +1,76 @@ +package com.box.sdkgen.managers.termsofserviceuserstatuses; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateTermsOfServiceStatusForUserRequestBody extends SerializableObject { + + protected final CreateTermsOfServiceStatusForUserRequestBodyTosField tos; + + protected final CreateTermsOfServiceStatusForUserRequestBodyUserField user; + + @JsonProperty("is_accepted") + protected final boolean isAccepted; + + public CreateTermsOfServiceStatusForUserRequestBody( + @JsonProperty("tos") CreateTermsOfServiceStatusForUserRequestBodyTosField tos, + @JsonProperty("user") CreateTermsOfServiceStatusForUserRequestBodyUserField user, + @JsonProperty("is_accepted") boolean isAccepted) { + super(); + this.tos = tos; + this.user = user; + this.isAccepted = isAccepted; + } + + public CreateTermsOfServiceStatusForUserRequestBodyTosField getTos() { + return tos; + } + + public CreateTermsOfServiceStatusForUserRequestBodyUserField getUser() { + return user; + } + + public boolean getIsAccepted() { + return isAccepted; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateTermsOfServiceStatusForUserRequestBody casted = + (CreateTermsOfServiceStatusForUserRequestBody) o; + return Objects.equals(tos, casted.tos) + && Objects.equals(user, casted.user) + && Objects.equals(isAccepted, casted.isAccepted); + } + + @Override + public int hashCode() { + return Objects.hash(tos, user, isAccepted); + } + + @Override + public String toString() { + return "CreateTermsOfServiceStatusForUserRequestBody{" + + "tos='" + + tos + + '\'' + + ", " + + "user='" + + user + + '\'' + + ", " + + "isAccepted='" + + isAccepted + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyTosField.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyTosField.java new file mode 100644 index 000000000..e80a2f78c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyTosField.java @@ -0,0 +1,110 @@ +package com.box.sdkgen.managers.termsofserviceuserstatuses; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateTermsOfServiceStatusForUserRequestBodyTosField extends SerializableObject { + + @JsonDeserialize( + using = + CreateTermsOfServiceStatusForUserRequestBodyTosTypeField + .CreateTermsOfServiceStatusForUserRequestBodyTosTypeFieldDeserializer.class) + @JsonSerialize( + using = + CreateTermsOfServiceStatusForUserRequestBodyTosTypeField + .CreateTermsOfServiceStatusForUserRequestBodyTosTypeFieldSerializer.class) + protected EnumWrapper type; + + protected final String id; + + public CreateTermsOfServiceStatusForUserRequestBodyTosField(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + CreateTermsOfServiceStatusForUserRequestBodyTosTypeField.TERMS_OF_SERVICE); + } + + protected CreateTermsOfServiceStatusForUserRequestBodyTosField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateTermsOfServiceStatusForUserRequestBodyTosField casted = + (CreateTermsOfServiceStatusForUserRequestBodyTosField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "CreateTermsOfServiceStatusForUserRequestBodyTosField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + CreateTermsOfServiceStatusForUserRequestBodyTosTypeField.TERMS_OF_SERVICE); + } + + public Builder type(CreateTermsOfServiceStatusForUserRequestBodyTosTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type( + EnumWrapper type) { + this.type = type; + return this; + } + + public CreateTermsOfServiceStatusForUserRequestBodyTosField build() { + return new CreateTermsOfServiceStatusForUserRequestBodyTosField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyTosTypeField.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyTosTypeField.java new file mode 100644 index 000000000..fcc2b766f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyTosTypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.termsofserviceuserstatuses; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateTermsOfServiceStatusForUserRequestBodyTosTypeField implements Valuable { + TERMS_OF_SERVICE("terms_of_service"); + + private final String value; + + CreateTermsOfServiceStatusForUserRequestBodyTosTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateTermsOfServiceStatusForUserRequestBodyTosTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public CreateTermsOfServiceStatusForUserRequestBodyTosTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateTermsOfServiceStatusForUserRequestBodyTosTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateTermsOfServiceStatusForUserRequestBodyTosTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public CreateTermsOfServiceStatusForUserRequestBodyTosTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyUserField.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyUserField.java new file mode 100644 index 000000000..fe5286e0a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyUserField.java @@ -0,0 +1,110 @@ +package com.box.sdkgen.managers.termsofserviceuserstatuses; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateTermsOfServiceStatusForUserRequestBodyUserField extends SerializableObject { + + @JsonDeserialize( + using = + CreateTermsOfServiceStatusForUserRequestBodyUserTypeField + .CreateTermsOfServiceStatusForUserRequestBodyUserTypeFieldDeserializer.class) + @JsonSerialize( + using = + CreateTermsOfServiceStatusForUserRequestBodyUserTypeField + .CreateTermsOfServiceStatusForUserRequestBodyUserTypeFieldSerializer.class) + protected EnumWrapper type; + + protected final String id; + + public CreateTermsOfServiceStatusForUserRequestBodyUserField(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + CreateTermsOfServiceStatusForUserRequestBodyUserTypeField.USER); + } + + protected CreateTermsOfServiceStatusForUserRequestBodyUserField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateTermsOfServiceStatusForUserRequestBodyUserField casted = + (CreateTermsOfServiceStatusForUserRequestBodyUserField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "CreateTermsOfServiceStatusForUserRequestBodyUserField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + CreateTermsOfServiceStatusForUserRequestBodyUserTypeField.USER); + } + + public Builder type(CreateTermsOfServiceStatusForUserRequestBodyUserTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type( + EnumWrapper type) { + this.type = type; + return this; + } + + public CreateTermsOfServiceStatusForUserRequestBodyUserField build() { + return new CreateTermsOfServiceStatusForUserRequestBodyUserField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyUserTypeField.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyUserTypeField.java new file mode 100644 index 000000000..14a7362f5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyUserTypeField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.managers.termsofserviceuserstatuses; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateTermsOfServiceStatusForUserRequestBodyUserTypeField implements Valuable { + USER("user"); + + private final String value; + + CreateTermsOfServiceStatusForUserRequestBodyUserTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateTermsOfServiceStatusForUserRequestBodyUserTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public CreateTermsOfServiceStatusForUserRequestBodyUserTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateTermsOfServiceStatusForUserRequestBodyUserTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper(value)); + } + } + + public static class CreateTermsOfServiceStatusForUserRequestBodyUserTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public CreateTermsOfServiceStatusForUserRequestBodyUserTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/GetTermsOfServiceUserStatusesHeaders.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/GetTermsOfServiceUserStatusesHeaders.java new file mode 100644 index 000000000..bf305be00 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/GetTermsOfServiceUserStatusesHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.termsofserviceuserstatuses; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetTermsOfServiceUserStatusesHeaders { + + public Map extraHeaders; + + public GetTermsOfServiceUserStatusesHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetTermsOfServiceUserStatusesHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetTermsOfServiceUserStatusesHeaders build() { + return new GetTermsOfServiceUserStatusesHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/GetTermsOfServiceUserStatusesQueryParams.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/GetTermsOfServiceUserStatusesQueryParams.java new file mode 100644 index 000000000..2d6cd9c6f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/GetTermsOfServiceUserStatusesQueryParams.java @@ -0,0 +1,45 @@ +package com.box.sdkgen.managers.termsofserviceuserstatuses; + +public class GetTermsOfServiceUserStatusesQueryParams { + + public final String tosId; + + public String userId; + + public GetTermsOfServiceUserStatusesQueryParams(String tosId) { + this.tosId = tosId; + } + + protected GetTermsOfServiceUserStatusesQueryParams(Builder builder) { + this.tosId = builder.tosId; + this.userId = builder.userId; + } + + public String getTosId() { + return tosId; + } + + public String getUserId() { + return userId; + } + + public static class Builder { + + protected final String tosId; + + protected String userId; + + public Builder(String tosId) { + this.tosId = tosId; + } + + public Builder userId(String userId) { + this.userId = userId; + return this; + } + + public GetTermsOfServiceUserStatusesQueryParams build() { + return new GetTermsOfServiceUserStatusesQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/TermsOfServiceUserStatusesManager.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/TermsOfServiceUserStatusesManager.java new file mode 100644 index 000000000..de4620f07 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/TermsOfServiceUserStatusesManager.java @@ -0,0 +1,164 @@ +package com.box.sdkgen.managers.termsofserviceuserstatuses; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.termsofserviceuserstatus.TermsOfServiceUserStatus; +import com.box.sdkgen.schemas.termsofserviceuserstatuses.TermsOfServiceUserStatuses; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class TermsOfServiceUserStatusesManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public TermsOfServiceUserStatusesManager() { + this.networkSession = new NetworkSession(); + } + + protected TermsOfServiceUserStatusesManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public TermsOfServiceUserStatuses getTermsOfServiceUserStatuses( + GetTermsOfServiceUserStatusesQueryParams queryParams) { + return getTermsOfServiceUserStatuses(queryParams, new GetTermsOfServiceUserStatusesHeaders()); + } + + public TermsOfServiceUserStatuses getTermsOfServiceUserStatuses( + GetTermsOfServiceUserStatusesQueryParams queryParams, + GetTermsOfServiceUserStatusesHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("tos_id", convertToString(queryParams.getTosId())), + entryOf("user_id", convertToString(queryParams.getUserId())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/terms_of_service_user_statuses"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), TermsOfServiceUserStatuses.class); + } + + public TermsOfServiceUserStatus createTermsOfServiceStatusForUser( + CreateTermsOfServiceStatusForUserRequestBody requestBody) { + return createTermsOfServiceStatusForUser( + requestBody, new CreateTermsOfServiceStatusForUserHeaders()); + } + + public TermsOfServiceUserStatus createTermsOfServiceStatusForUser( + CreateTermsOfServiceStatusForUserRequestBody requestBody, + CreateTermsOfServiceStatusForUserHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/terms_of_service_user_statuses"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), TermsOfServiceUserStatus.class); + } + + public TermsOfServiceUserStatus updateTermsOfServiceStatusForUserById( + String termsOfServiceUserStatusId, + UpdateTermsOfServiceStatusForUserByIdRequestBody requestBody) { + return updateTermsOfServiceStatusForUserById( + termsOfServiceUserStatusId, + requestBody, + new UpdateTermsOfServiceStatusForUserByIdHeaders()); + } + + public TermsOfServiceUserStatus updateTermsOfServiceStatusForUserById( + String termsOfServiceUserStatusId, + UpdateTermsOfServiceStatusForUserByIdRequestBody requestBody, + UpdateTermsOfServiceStatusForUserByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/terms_of_service_user_statuses/", + convertToString(termsOfServiceUserStatusId)), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), TermsOfServiceUserStatus.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public TermsOfServiceUserStatusesManager build() { + return new TermsOfServiceUserStatusesManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/UpdateTermsOfServiceStatusForUserByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/UpdateTermsOfServiceStatusForUserByIdHeaders.java new file mode 100644 index 000000000..ae235313a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/UpdateTermsOfServiceStatusForUserByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.termsofserviceuserstatuses; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateTermsOfServiceStatusForUserByIdHeaders { + + public Map extraHeaders; + + public UpdateTermsOfServiceStatusForUserByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateTermsOfServiceStatusForUserByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateTermsOfServiceStatusForUserByIdHeaders build() { + return new UpdateTermsOfServiceStatusForUserByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/UpdateTermsOfServiceStatusForUserByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/UpdateTermsOfServiceStatusForUserByIdRequestBody.java new file mode 100644 index 000000000..a1ba191ab --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/UpdateTermsOfServiceStatusForUserByIdRequestBody.java @@ -0,0 +1,50 @@ +package com.box.sdkgen.managers.termsofserviceuserstatuses; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateTermsOfServiceStatusForUserByIdRequestBody extends SerializableObject { + + @JsonProperty("is_accepted") + protected final boolean isAccepted; + + public UpdateTermsOfServiceStatusForUserByIdRequestBody( + @JsonProperty("is_accepted") boolean isAccepted) { + super(); + this.isAccepted = isAccepted; + } + + public boolean getIsAccepted() { + return isAccepted; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateTermsOfServiceStatusForUserByIdRequestBody casted = + (UpdateTermsOfServiceStatusForUserByIdRequestBody) o; + return Objects.equals(isAccepted, casted.isAccepted); + } + + @Override + public int hashCode() { + return Objects.hash(isAccepted); + } + + @Override + public String toString() { + return "UpdateTermsOfServiceStatusForUserByIdRequestBody{" + + "isAccepted='" + + isAccepted + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/transfer/TransferManager.java b/src/main/java/com/box/sdkgen/managers/transfer/TransferManager.java new file mode 100644 index 000000000..a851f12c2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/transfer/TransferManager.java @@ -0,0 +1,121 @@ +package com.box.sdkgen.managers.transfer; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class TransferManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public TransferManager() { + this.networkSession = new NetworkSession(); + } + + protected TransferManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public FolderFull transferOwnedFolder(String userId, TransferOwnedFolderRequestBody requestBody) { + return transferOwnedFolder( + userId, + requestBody, + new TransferOwnedFolderQueryParams(), + new TransferOwnedFolderHeaders()); + } + + public FolderFull transferOwnedFolder( + String userId, + TransferOwnedFolderRequestBody requestBody, + TransferOwnedFolderQueryParams queryParams) { + return transferOwnedFolder(userId, requestBody, queryParams, new TransferOwnedFolderHeaders()); + } + + public FolderFull transferOwnedFolder( + String userId, + TransferOwnedFolderRequestBody requestBody, + TransferOwnedFolderHeaders headers) { + return transferOwnedFolder(userId, requestBody, new TransferOwnedFolderQueryParams(), headers); + } + + public FolderFull transferOwnedFolder( + String userId, + TransferOwnedFolderRequestBody requestBody, + TransferOwnedFolderQueryParams queryParams, + TransferOwnedFolderHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("fields", convertToString(queryParams.getFields())), + entryOf("notify", convertToString(queryParams.getNotify())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/users/", + convertToString(userId), + "/folders/0"), + "PUT") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), FolderFull.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public TransferManager build() { + return new TransferManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderHeaders.java new file mode 100644 index 000000000..07aa234bf --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.transfer; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class TransferOwnedFolderHeaders { + + public Map extraHeaders; + + public TransferOwnedFolderHeaders() { + this.extraHeaders = mapOf(); + } + + protected TransferOwnedFolderHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public TransferOwnedFolderHeaders build() { + return new TransferOwnedFolderHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderQueryParams.java b/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderQueryParams.java new file mode 100644 index 000000000..cec0a9006 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderQueryParams.java @@ -0,0 +1,46 @@ +package com.box.sdkgen.managers.transfer; + +import java.util.List; + +public class TransferOwnedFolderQueryParams { + + public List fields; + + public Boolean notify; + + public TransferOwnedFolderQueryParams() {} + + protected TransferOwnedFolderQueryParams(Builder builder) { + this.fields = builder.fields; + this.notify = builder.notify; + } + + public List getFields() { + return fields; + } + + public Boolean getNotify() { + return notify; + } + + public static class Builder { + + protected List fields; + + protected Boolean notify; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder notify(Boolean notify) { + this.notify = notify; + return this; + } + + public TransferOwnedFolderQueryParams build() { + return new TransferOwnedFolderQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderRequestBody.java b/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderRequestBody.java new file mode 100644 index 000000000..336b1c8ba --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderRequestBody.java @@ -0,0 +1,45 @@ +package com.box.sdkgen.managers.transfer; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TransferOwnedFolderRequestBody extends SerializableObject { + + @JsonProperty("owned_by") + protected final TransferOwnedFolderRequestBodyOwnedByField ownedBy; + + public TransferOwnedFolderRequestBody( + @JsonProperty("owned_by") TransferOwnedFolderRequestBodyOwnedByField ownedBy) { + super(); + this.ownedBy = ownedBy; + } + + public TransferOwnedFolderRequestBodyOwnedByField getOwnedBy() { + return ownedBy; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TransferOwnedFolderRequestBody casted = (TransferOwnedFolderRequestBody) o; + return Objects.equals(ownedBy, casted.ownedBy); + } + + @Override + public int hashCode() { + return Objects.hash(ownedBy); + } + + @Override + public String toString() { + return "TransferOwnedFolderRequestBody{" + "ownedBy='" + ownedBy + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderRequestBodyOwnedByField.java b/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderRequestBodyOwnedByField.java new file mode 100644 index 000000000..806f1800f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderRequestBodyOwnedByField.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.transfer; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TransferOwnedFolderRequestBodyOwnedByField extends SerializableObject { + + protected final String id; + + public TransferOwnedFolderRequestBodyOwnedByField(@JsonProperty("id") String id) { + super(); + this.id = id; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TransferOwnedFolderRequestBodyOwnedByField casted = + (TransferOwnedFolderRequestBodyOwnedByField) o; + return Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + return "TransferOwnedFolderRequestBodyOwnedByField{" + "id='" + id + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trashedfiles/DeleteTrashedFileByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedfiles/DeleteTrashedFileByIdHeaders.java new file mode 100644 index 000000000..2f4206dd8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trashedfiles/DeleteTrashedFileByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.trashedfiles; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteTrashedFileByIdHeaders { + + public Map extraHeaders; + + public DeleteTrashedFileByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteTrashedFileByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteTrashedFileByIdHeaders build() { + return new DeleteTrashedFileByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trashedfiles/GetTrashedFileByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedfiles/GetTrashedFileByIdHeaders.java new file mode 100644 index 000000000..88f2bff4b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trashedfiles/GetTrashedFileByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.trashedfiles; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetTrashedFileByIdHeaders { + + public Map extraHeaders; + + public GetTrashedFileByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetTrashedFileByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetTrashedFileByIdHeaders build() { + return new GetTrashedFileByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trashedfiles/GetTrashedFileByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/trashedfiles/GetTrashedFileByIdQueryParams.java new file mode 100644 index 000000000..847eb97d8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trashedfiles/GetTrashedFileByIdQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.trashedfiles; + +import java.util.List; + +public class GetTrashedFileByIdQueryParams { + + public List fields; + + public GetTrashedFileByIdQueryParams() {} + + protected GetTrashedFileByIdQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public GetTrashedFileByIdQueryParams build() { + return new GetTrashedFileByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashHeaders.java new file mode 100644 index 000000000..4f543401b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.trashedfiles; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class RestoreFileFromTrashHeaders { + + public Map extraHeaders; + + public RestoreFileFromTrashHeaders() { + this.extraHeaders = mapOf(); + } + + protected RestoreFileFromTrashHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public RestoreFileFromTrashHeaders build() { + return new RestoreFileFromTrashHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashQueryParams.java b/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashQueryParams.java new file mode 100644 index 000000000..0ef892c37 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.trashedfiles; + +import java.util.List; + +public class RestoreFileFromTrashQueryParams { + + public List fields; + + public RestoreFileFromTrashQueryParams() {} + + protected RestoreFileFromTrashQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public RestoreFileFromTrashQueryParams build() { + return new RestoreFileFromTrashQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashRequestBody.java b/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashRequestBody.java new file mode 100644 index 000000000..1825ce1d9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashRequestBody.java @@ -0,0 +1,84 @@ +package com.box.sdkgen.managers.trashedfiles; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class RestoreFileFromTrashRequestBody extends SerializableObject { + + protected String name; + + protected RestoreFileFromTrashRequestBodyParentField parent; + + public RestoreFileFromTrashRequestBody() { + super(); + } + + protected RestoreFileFromTrashRequestBody(Builder builder) { + super(); + this.name = builder.name; + this.parent = builder.parent; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public RestoreFileFromTrashRequestBodyParentField getParent() { + return parent; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RestoreFileFromTrashRequestBody casted = (RestoreFileFromTrashRequestBody) o; + return Objects.equals(name, casted.name) && Objects.equals(parent, casted.parent); + } + + @Override + public int hashCode() { + return Objects.hash(name, parent); + } + + @Override + public String toString() { + return "RestoreFileFromTrashRequestBody{" + + "name='" + + name + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String name; + + protected RestoreFileFromTrashRequestBodyParentField parent; + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder parent(RestoreFileFromTrashRequestBodyParentField parent) { + this.parent = parent; + return this; + } + + public RestoreFileFromTrashRequestBody build() { + return new RestoreFileFromTrashRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashRequestBodyParentField.java b/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashRequestBodyParentField.java new file mode 100644 index 000000000..779007a11 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashRequestBodyParentField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.trashedfiles; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class RestoreFileFromTrashRequestBodyParentField extends SerializableObject { + + protected String id; + + public RestoreFileFromTrashRequestBodyParentField() { + super(); + } + + protected RestoreFileFromTrashRequestBodyParentField(Builder builder) { + super(); + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RestoreFileFromTrashRequestBodyParentField casted = + (RestoreFileFromTrashRequestBodyParentField) o; + return Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + return "RestoreFileFromTrashRequestBodyParentField{" + "id='" + id + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + public Builder id(String id) { + this.id = id; + return this; + } + + public RestoreFileFromTrashRequestBodyParentField build() { + return new RestoreFileFromTrashRequestBodyParentField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trashedfiles/TrashedFilesManager.java b/src/main/java/com/box/sdkgen/managers/trashedfiles/TrashedFilesManager.java new file mode 100644 index 000000000..9f5529e97 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trashedfiles/TrashedFilesManager.java @@ -0,0 +1,219 @@ +package com.box.sdkgen.managers.trashedfiles; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.trashfile.TrashFile; +import com.box.sdkgen.schemas.trashfilerestored.TrashFileRestored; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class TrashedFilesManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public TrashedFilesManager() { + this.networkSession = new NetworkSession(); + } + + protected TrashedFilesManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public TrashFileRestored restoreFileFromTrash(String fileId) { + return restoreFileFromTrash( + fileId, + new RestoreFileFromTrashRequestBody(), + new RestoreFileFromTrashQueryParams(), + new RestoreFileFromTrashHeaders()); + } + + public TrashFileRestored restoreFileFromTrash( + String fileId, RestoreFileFromTrashRequestBody requestBody) { + return restoreFileFromTrash( + fileId, + requestBody, + new RestoreFileFromTrashQueryParams(), + new RestoreFileFromTrashHeaders()); + } + + public TrashFileRestored restoreFileFromTrash( + String fileId, RestoreFileFromTrashQueryParams queryParams) { + return restoreFileFromTrash( + fileId, + new RestoreFileFromTrashRequestBody(), + queryParams, + new RestoreFileFromTrashHeaders()); + } + + public TrashFileRestored restoreFileFromTrash( + String fileId, + RestoreFileFromTrashRequestBody requestBody, + RestoreFileFromTrashQueryParams queryParams) { + return restoreFileFromTrash( + fileId, requestBody, queryParams, new RestoreFileFromTrashHeaders()); + } + + public TrashFileRestored restoreFileFromTrash( + String fileId, RestoreFileFromTrashHeaders headers) { + return restoreFileFromTrash( + fileId, + new RestoreFileFromTrashRequestBody(), + new RestoreFileFromTrashQueryParams(), + headers); + } + + public TrashFileRestored restoreFileFromTrash( + String fileId, + RestoreFileFromTrashRequestBody requestBody, + RestoreFileFromTrashHeaders headers) { + return restoreFileFromTrash( + fileId, requestBody, new RestoreFileFromTrashQueryParams(), headers); + } + + public TrashFileRestored restoreFileFromTrash( + String fileId, + RestoreFileFromTrashQueryParams queryParams, + RestoreFileFromTrashHeaders headers) { + return restoreFileFromTrash( + fileId, new RestoreFileFromTrashRequestBody(), queryParams, headers); + } + + public TrashFileRestored restoreFileFromTrash( + String fileId, + RestoreFileFromTrashRequestBody requestBody, + RestoreFileFromTrashQueryParams queryParams, + RestoreFileFromTrashHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId)), + "POST") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), TrashFileRestored.class); + } + + public TrashFile getTrashedFileById(String fileId) { + return getTrashedFileById( + fileId, new GetTrashedFileByIdQueryParams(), new GetTrashedFileByIdHeaders()); + } + + public TrashFile getTrashedFileById(String fileId, GetTrashedFileByIdQueryParams queryParams) { + return getTrashedFileById(fileId, queryParams, new GetTrashedFileByIdHeaders()); + } + + public TrashFile getTrashedFileById(String fileId, GetTrashedFileByIdHeaders headers) { + return getTrashedFileById(fileId, new GetTrashedFileByIdQueryParams(), headers); + } + + public TrashFile getTrashedFileById( + String fileId, GetTrashedFileByIdQueryParams queryParams, GetTrashedFileByIdHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/trash"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), TrashFile.class); + } + + public void deleteTrashedFileById(String fileId) { + deleteTrashedFileById(fileId, new DeleteTrashedFileByIdHeaders()); + } + + public void deleteTrashedFileById(String fileId, DeleteTrashedFileByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/", + convertToString(fileId), + "/trash"), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public TrashedFilesManager build() { + return new TrashedFilesManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trashedfolders/DeleteTrashedFolderByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedfolders/DeleteTrashedFolderByIdHeaders.java new file mode 100644 index 000000000..2a89e19e3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trashedfolders/DeleteTrashedFolderByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.trashedfolders; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteTrashedFolderByIdHeaders { + + public Map extraHeaders; + + public DeleteTrashedFolderByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteTrashedFolderByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteTrashedFolderByIdHeaders build() { + return new DeleteTrashedFolderByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trashedfolders/GetTrashedFolderByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedfolders/GetTrashedFolderByIdHeaders.java new file mode 100644 index 000000000..7f08c9477 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trashedfolders/GetTrashedFolderByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.trashedfolders; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetTrashedFolderByIdHeaders { + + public Map extraHeaders; + + public GetTrashedFolderByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetTrashedFolderByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetTrashedFolderByIdHeaders build() { + return new GetTrashedFolderByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trashedfolders/GetTrashedFolderByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/trashedfolders/GetTrashedFolderByIdQueryParams.java new file mode 100644 index 000000000..9ee4ecd73 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trashedfolders/GetTrashedFolderByIdQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.trashedfolders; + +import java.util.List; + +public class GetTrashedFolderByIdQueryParams { + + public List fields; + + public GetTrashedFolderByIdQueryParams() {} + + protected GetTrashedFolderByIdQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public GetTrashedFolderByIdQueryParams build() { + return new GetTrashedFolderByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashHeaders.java new file mode 100644 index 000000000..3b46b514b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.trashedfolders; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class RestoreFolderFromTrashHeaders { + + public Map extraHeaders; + + public RestoreFolderFromTrashHeaders() { + this.extraHeaders = mapOf(); + } + + protected RestoreFolderFromTrashHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public RestoreFolderFromTrashHeaders build() { + return new RestoreFolderFromTrashHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashQueryParams.java b/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashQueryParams.java new file mode 100644 index 000000000..74029969b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.trashedfolders; + +import java.util.List; + +public class RestoreFolderFromTrashQueryParams { + + public List fields; + + public RestoreFolderFromTrashQueryParams() {} + + protected RestoreFolderFromTrashQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public RestoreFolderFromTrashQueryParams build() { + return new RestoreFolderFromTrashQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashRequestBody.java b/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashRequestBody.java new file mode 100644 index 000000000..3b0db7b97 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashRequestBody.java @@ -0,0 +1,84 @@ +package com.box.sdkgen.managers.trashedfolders; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class RestoreFolderFromTrashRequestBody extends SerializableObject { + + protected String name; + + protected RestoreFolderFromTrashRequestBodyParentField parent; + + public RestoreFolderFromTrashRequestBody() { + super(); + } + + protected RestoreFolderFromTrashRequestBody(Builder builder) { + super(); + this.name = builder.name; + this.parent = builder.parent; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public RestoreFolderFromTrashRequestBodyParentField getParent() { + return parent; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RestoreFolderFromTrashRequestBody casted = (RestoreFolderFromTrashRequestBody) o; + return Objects.equals(name, casted.name) && Objects.equals(parent, casted.parent); + } + + @Override + public int hashCode() { + return Objects.hash(name, parent); + } + + @Override + public String toString() { + return "RestoreFolderFromTrashRequestBody{" + + "name='" + + name + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String name; + + protected RestoreFolderFromTrashRequestBodyParentField parent; + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder parent(RestoreFolderFromTrashRequestBodyParentField parent) { + this.parent = parent; + return this; + } + + public RestoreFolderFromTrashRequestBody build() { + return new RestoreFolderFromTrashRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashRequestBodyParentField.java b/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashRequestBodyParentField.java new file mode 100644 index 000000000..079b5c639 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashRequestBodyParentField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.trashedfolders; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class RestoreFolderFromTrashRequestBodyParentField extends SerializableObject { + + protected String id; + + public RestoreFolderFromTrashRequestBodyParentField() { + super(); + } + + protected RestoreFolderFromTrashRequestBodyParentField(Builder builder) { + super(); + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RestoreFolderFromTrashRequestBodyParentField casted = + (RestoreFolderFromTrashRequestBodyParentField) o; + return Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + return "RestoreFolderFromTrashRequestBodyParentField{" + "id='" + id + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + public Builder id(String id) { + this.id = id; + return this; + } + + public RestoreFolderFromTrashRequestBodyParentField build() { + return new RestoreFolderFromTrashRequestBodyParentField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trashedfolders/TrashedFoldersManager.java b/src/main/java/com/box/sdkgen/managers/trashedfolders/TrashedFoldersManager.java new file mode 100644 index 000000000..3640a69e8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trashedfolders/TrashedFoldersManager.java @@ -0,0 +1,222 @@ +package com.box.sdkgen.managers.trashedfolders; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.trashfolder.TrashFolder; +import com.box.sdkgen.schemas.trashfolderrestored.TrashFolderRestored; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class TrashedFoldersManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public TrashedFoldersManager() { + this.networkSession = new NetworkSession(); + } + + protected TrashedFoldersManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public TrashFolderRestored restoreFolderFromTrash(String folderId) { + return restoreFolderFromTrash( + folderId, + new RestoreFolderFromTrashRequestBody(), + new RestoreFolderFromTrashQueryParams(), + new RestoreFolderFromTrashHeaders()); + } + + public TrashFolderRestored restoreFolderFromTrash( + String folderId, RestoreFolderFromTrashRequestBody requestBody) { + return restoreFolderFromTrash( + folderId, + requestBody, + new RestoreFolderFromTrashQueryParams(), + new RestoreFolderFromTrashHeaders()); + } + + public TrashFolderRestored restoreFolderFromTrash( + String folderId, RestoreFolderFromTrashQueryParams queryParams) { + return restoreFolderFromTrash( + folderId, + new RestoreFolderFromTrashRequestBody(), + queryParams, + new RestoreFolderFromTrashHeaders()); + } + + public TrashFolderRestored restoreFolderFromTrash( + String folderId, + RestoreFolderFromTrashRequestBody requestBody, + RestoreFolderFromTrashQueryParams queryParams) { + return restoreFolderFromTrash( + folderId, requestBody, queryParams, new RestoreFolderFromTrashHeaders()); + } + + public TrashFolderRestored restoreFolderFromTrash( + String folderId, RestoreFolderFromTrashHeaders headers) { + return restoreFolderFromTrash( + folderId, + new RestoreFolderFromTrashRequestBody(), + new RestoreFolderFromTrashQueryParams(), + headers); + } + + public TrashFolderRestored restoreFolderFromTrash( + String folderId, + RestoreFolderFromTrashRequestBody requestBody, + RestoreFolderFromTrashHeaders headers) { + return restoreFolderFromTrash( + folderId, requestBody, new RestoreFolderFromTrashQueryParams(), headers); + } + + public TrashFolderRestored restoreFolderFromTrash( + String folderId, + RestoreFolderFromTrashQueryParams queryParams, + RestoreFolderFromTrashHeaders headers) { + return restoreFolderFromTrash( + folderId, new RestoreFolderFromTrashRequestBody(), queryParams, headers); + } + + public TrashFolderRestored restoreFolderFromTrash( + String folderId, + RestoreFolderFromTrashRequestBody requestBody, + RestoreFolderFromTrashQueryParams queryParams, + RestoreFolderFromTrashHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId)), + "POST") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), TrashFolderRestored.class); + } + + public TrashFolder getTrashedFolderById(String folderId) { + return getTrashedFolderById( + folderId, new GetTrashedFolderByIdQueryParams(), new GetTrashedFolderByIdHeaders()); + } + + public TrashFolder getTrashedFolderById( + String folderId, GetTrashedFolderByIdQueryParams queryParams) { + return getTrashedFolderById(folderId, queryParams, new GetTrashedFolderByIdHeaders()); + } + + public TrashFolder getTrashedFolderById(String folderId, GetTrashedFolderByIdHeaders headers) { + return getTrashedFolderById(folderId, new GetTrashedFolderByIdQueryParams(), headers); + } + + public TrashFolder getTrashedFolderById( + String folderId, + GetTrashedFolderByIdQueryParams queryParams, + GetTrashedFolderByIdHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId), + "/trash"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), TrashFolder.class); + } + + public void deleteTrashedFolderById(String folderId) { + deleteTrashedFolderById(folderId, new DeleteTrashedFolderByIdHeaders()); + } + + public void deleteTrashedFolderById(String folderId, DeleteTrashedFolderByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/", + convertToString(folderId), + "/trash"), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public TrashedFoldersManager build() { + return new TrashedFoldersManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsHeaders.java b/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsHeaders.java new file mode 100644 index 000000000..896c2b9da --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.trasheditems; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetTrashedItemsHeaders { + + public Map extraHeaders; + + public GetTrashedItemsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetTrashedItemsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetTrashedItemsHeaders build() { + return new GetTrashedItemsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsQueryParams.java b/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsQueryParams.java new file mode 100644 index 000000000..b36110b65 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsQueryParams.java @@ -0,0 +1,127 @@ +package com.box.sdkgen.managers.trasheditems; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.List; + +public class GetTrashedItemsQueryParams { + + public List fields; + + public Long limit; + + public Long offset; + + public Boolean usemarker; + + public String marker; + + public EnumWrapper direction; + + public EnumWrapper sort; + + public GetTrashedItemsQueryParams() {} + + protected GetTrashedItemsQueryParams(Builder builder) { + this.fields = builder.fields; + this.limit = builder.limit; + this.offset = builder.offset; + this.usemarker = builder.usemarker; + this.marker = builder.marker; + this.direction = builder.direction; + this.sort = builder.sort; + } + + public List getFields() { + return fields; + } + + public Long getLimit() { + return limit; + } + + public Long getOffset() { + return offset; + } + + public Boolean getUsemarker() { + return usemarker; + } + + public String getMarker() { + return marker; + } + + public EnumWrapper getDirection() { + return direction; + } + + public EnumWrapper getSort() { + return sort; + } + + public static class Builder { + + protected List fields; + + protected Long limit; + + protected Long offset; + + protected Boolean usemarker; + + protected String marker; + + protected EnumWrapper direction; + + protected EnumWrapper sort; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public Builder usemarker(Boolean usemarker) { + this.usemarker = usemarker; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder direction(GetTrashedItemsQueryParamsDirectionField direction) { + this.direction = new EnumWrapper(direction); + return this; + } + + public Builder direction(EnumWrapper direction) { + this.direction = direction; + return this; + } + + public Builder sort(GetTrashedItemsQueryParamsSortField sort) { + this.sort = new EnumWrapper(sort); + return this; + } + + public Builder sort(EnumWrapper sort) { + this.sort = sort; + return this; + } + + public GetTrashedItemsQueryParams build() { + return new GetTrashedItemsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsQueryParamsDirectionField.java b/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsQueryParamsDirectionField.java new file mode 100644 index 000000000..2ddbf2bac --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsQueryParamsDirectionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.trasheditems; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetTrashedItemsQueryParamsDirectionField implements Valuable { + ASC("ASC"), + DESC("DESC"); + + private final String value; + + GetTrashedItemsQueryParamsDirectionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetTrashedItemsQueryParamsDirectionFieldDeserializer + extends JsonDeserializer> { + + public GetTrashedItemsQueryParamsDirectionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetTrashedItemsQueryParamsDirectionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetTrashedItemsQueryParamsDirectionFieldSerializer + extends JsonSerializer> { + + public GetTrashedItemsQueryParamsDirectionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsQueryParamsSortField.java b/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsQueryParamsSortField.java new file mode 100644 index 000000000..b0d73cc18 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsQueryParamsSortField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.trasheditems; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetTrashedItemsQueryParamsSortField implements Valuable { + NAME("name"), + DATE("date"), + SIZE("size"); + + private final String value; + + GetTrashedItemsQueryParamsSortField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetTrashedItemsQueryParamsSortFieldDeserializer + extends JsonDeserializer> { + + public GetTrashedItemsQueryParamsSortFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetTrashedItemsQueryParamsSortField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetTrashedItemsQueryParamsSortFieldSerializer + extends JsonSerializer> { + + public GetTrashedItemsQueryParamsSortFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trasheditems/TrashedItemsManager.java b/src/main/java/com/box/sdkgen/managers/trasheditems/TrashedItemsManager.java new file mode 100644 index 000000000..423236787 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trasheditems/TrashedItemsManager.java @@ -0,0 +1,109 @@ +package com.box.sdkgen.managers.trasheditems; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.items.Items; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class TrashedItemsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public TrashedItemsManager() { + this.networkSession = new NetworkSession(); + } + + protected TrashedItemsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public Items getTrashedItems() { + return getTrashedItems(new GetTrashedItemsQueryParams(), new GetTrashedItemsHeaders()); + } + + public Items getTrashedItems(GetTrashedItemsQueryParams queryParams) { + return getTrashedItems(queryParams, new GetTrashedItemsHeaders()); + } + + public Items getTrashedItems(GetTrashedItemsHeaders headers) { + return getTrashedItems(new GetTrashedItemsQueryParams(), headers); + } + + public Items getTrashedItems( + GetTrashedItemsQueryParams queryParams, GetTrashedItemsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("fields", convertToString(queryParams.getFields())), + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf("offset", convertToString(queryParams.getOffset())), + entryOf("usemarker", convertToString(queryParams.getUsemarker())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("direction", convertToString(queryParams.getDirection())), + entryOf("sort", convertToString(queryParams.getSort())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/folders/trash/items"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Items.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public TrashedItemsManager build() { + return new TrashedItemsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trashedweblinks/DeleteTrashedWebLinkByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedweblinks/DeleteTrashedWebLinkByIdHeaders.java new file mode 100644 index 000000000..323922904 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trashedweblinks/DeleteTrashedWebLinkByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.trashedweblinks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteTrashedWebLinkByIdHeaders { + + public Map extraHeaders; + + public DeleteTrashedWebLinkByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteTrashedWebLinkByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteTrashedWebLinkByIdHeaders build() { + return new DeleteTrashedWebLinkByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trashedweblinks/GetTrashedWebLinkByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedweblinks/GetTrashedWebLinkByIdHeaders.java new file mode 100644 index 000000000..8b55fa2a4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trashedweblinks/GetTrashedWebLinkByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.trashedweblinks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetTrashedWebLinkByIdHeaders { + + public Map extraHeaders; + + public GetTrashedWebLinkByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetTrashedWebLinkByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetTrashedWebLinkByIdHeaders build() { + return new GetTrashedWebLinkByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trashedweblinks/GetTrashedWebLinkByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/trashedweblinks/GetTrashedWebLinkByIdQueryParams.java new file mode 100644 index 000000000..8e419bcd4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trashedweblinks/GetTrashedWebLinkByIdQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.trashedweblinks; + +import java.util.List; + +public class GetTrashedWebLinkByIdQueryParams { + + public List fields; + + public GetTrashedWebLinkByIdQueryParams() {} + + protected GetTrashedWebLinkByIdQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public GetTrashedWebLinkByIdQueryParams build() { + return new GetTrashedWebLinkByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashHeaders.java new file mode 100644 index 000000000..89606f258 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.trashedweblinks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class RestoreWeblinkFromTrashHeaders { + + public Map extraHeaders; + + public RestoreWeblinkFromTrashHeaders() { + this.extraHeaders = mapOf(); + } + + protected RestoreWeblinkFromTrashHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public RestoreWeblinkFromTrashHeaders build() { + return new RestoreWeblinkFromTrashHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashQueryParams.java b/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashQueryParams.java new file mode 100644 index 000000000..301bc58a8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.trashedweblinks; + +import java.util.List; + +public class RestoreWeblinkFromTrashQueryParams { + + public List fields; + + public RestoreWeblinkFromTrashQueryParams() {} + + protected RestoreWeblinkFromTrashQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public RestoreWeblinkFromTrashQueryParams build() { + return new RestoreWeblinkFromTrashQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashRequestBody.java b/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashRequestBody.java new file mode 100644 index 000000000..8d89c60dc --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashRequestBody.java @@ -0,0 +1,84 @@ +package com.box.sdkgen.managers.trashedweblinks; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class RestoreWeblinkFromTrashRequestBody extends SerializableObject { + + protected String name; + + protected RestoreWeblinkFromTrashRequestBodyParentField parent; + + public RestoreWeblinkFromTrashRequestBody() { + super(); + } + + protected RestoreWeblinkFromTrashRequestBody(Builder builder) { + super(); + this.name = builder.name; + this.parent = builder.parent; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public RestoreWeblinkFromTrashRequestBodyParentField getParent() { + return parent; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RestoreWeblinkFromTrashRequestBody casted = (RestoreWeblinkFromTrashRequestBody) o; + return Objects.equals(name, casted.name) && Objects.equals(parent, casted.parent); + } + + @Override + public int hashCode() { + return Objects.hash(name, parent); + } + + @Override + public String toString() { + return "RestoreWeblinkFromTrashRequestBody{" + + "name='" + + name + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String name; + + protected RestoreWeblinkFromTrashRequestBodyParentField parent; + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder parent(RestoreWeblinkFromTrashRequestBodyParentField parent) { + this.parent = parent; + return this; + } + + public RestoreWeblinkFromTrashRequestBody build() { + return new RestoreWeblinkFromTrashRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashRequestBodyParentField.java b/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashRequestBodyParentField.java new file mode 100644 index 000000000..7a9979451 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashRequestBodyParentField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.trashedweblinks; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class RestoreWeblinkFromTrashRequestBodyParentField extends SerializableObject { + + protected String id; + + public RestoreWeblinkFromTrashRequestBodyParentField() { + super(); + } + + protected RestoreWeblinkFromTrashRequestBodyParentField(Builder builder) { + super(); + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RestoreWeblinkFromTrashRequestBodyParentField casted = + (RestoreWeblinkFromTrashRequestBodyParentField) o; + return Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + return "RestoreWeblinkFromTrashRequestBodyParentField{" + "id='" + id + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + public Builder id(String id) { + this.id = id; + return this; + } + + public RestoreWeblinkFromTrashRequestBodyParentField build() { + return new RestoreWeblinkFromTrashRequestBodyParentField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/trashedweblinks/TrashedWebLinksManager.java b/src/main/java/com/box/sdkgen/managers/trashedweblinks/TrashedWebLinksManager.java new file mode 100644 index 000000000..689e85196 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/trashedweblinks/TrashedWebLinksManager.java @@ -0,0 +1,223 @@ +package com.box.sdkgen.managers.trashedweblinks; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.trashweblink.TrashWebLink; +import com.box.sdkgen.schemas.trashweblinkrestored.TrashWebLinkRestored; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class TrashedWebLinksManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public TrashedWebLinksManager() { + this.networkSession = new NetworkSession(); + } + + protected TrashedWebLinksManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public TrashWebLinkRestored restoreWeblinkFromTrash(String webLinkId) { + return restoreWeblinkFromTrash( + webLinkId, + new RestoreWeblinkFromTrashRequestBody(), + new RestoreWeblinkFromTrashQueryParams(), + new RestoreWeblinkFromTrashHeaders()); + } + + public TrashWebLinkRestored restoreWeblinkFromTrash( + String webLinkId, RestoreWeblinkFromTrashRequestBody requestBody) { + return restoreWeblinkFromTrash( + webLinkId, + requestBody, + new RestoreWeblinkFromTrashQueryParams(), + new RestoreWeblinkFromTrashHeaders()); + } + + public TrashWebLinkRestored restoreWeblinkFromTrash( + String webLinkId, RestoreWeblinkFromTrashQueryParams queryParams) { + return restoreWeblinkFromTrash( + webLinkId, + new RestoreWeblinkFromTrashRequestBody(), + queryParams, + new RestoreWeblinkFromTrashHeaders()); + } + + public TrashWebLinkRestored restoreWeblinkFromTrash( + String webLinkId, + RestoreWeblinkFromTrashRequestBody requestBody, + RestoreWeblinkFromTrashQueryParams queryParams) { + return restoreWeblinkFromTrash( + webLinkId, requestBody, queryParams, new RestoreWeblinkFromTrashHeaders()); + } + + public TrashWebLinkRestored restoreWeblinkFromTrash( + String webLinkId, RestoreWeblinkFromTrashHeaders headers) { + return restoreWeblinkFromTrash( + webLinkId, + new RestoreWeblinkFromTrashRequestBody(), + new RestoreWeblinkFromTrashQueryParams(), + headers); + } + + public TrashWebLinkRestored restoreWeblinkFromTrash( + String webLinkId, + RestoreWeblinkFromTrashRequestBody requestBody, + RestoreWeblinkFromTrashHeaders headers) { + return restoreWeblinkFromTrash( + webLinkId, requestBody, new RestoreWeblinkFromTrashQueryParams(), headers); + } + + public TrashWebLinkRestored restoreWeblinkFromTrash( + String webLinkId, + RestoreWeblinkFromTrashQueryParams queryParams, + RestoreWeblinkFromTrashHeaders headers) { + return restoreWeblinkFromTrash( + webLinkId, new RestoreWeblinkFromTrashRequestBody(), queryParams, headers); + } + + public TrashWebLinkRestored restoreWeblinkFromTrash( + String webLinkId, + RestoreWeblinkFromTrashRequestBody requestBody, + RestoreWeblinkFromTrashQueryParams queryParams, + RestoreWeblinkFromTrashHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/web_links/", + convertToString(webLinkId)), + "POST") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), TrashWebLinkRestored.class); + } + + public TrashWebLink getTrashedWebLinkById(String webLinkId) { + return getTrashedWebLinkById( + webLinkId, new GetTrashedWebLinkByIdQueryParams(), new GetTrashedWebLinkByIdHeaders()); + } + + public TrashWebLink getTrashedWebLinkById( + String webLinkId, GetTrashedWebLinkByIdQueryParams queryParams) { + return getTrashedWebLinkById(webLinkId, queryParams, new GetTrashedWebLinkByIdHeaders()); + } + + public TrashWebLink getTrashedWebLinkById( + String webLinkId, GetTrashedWebLinkByIdHeaders headers) { + return getTrashedWebLinkById(webLinkId, new GetTrashedWebLinkByIdQueryParams(), headers); + } + + public TrashWebLink getTrashedWebLinkById( + String webLinkId, + GetTrashedWebLinkByIdQueryParams queryParams, + GetTrashedWebLinkByIdHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/web_links/", + convertToString(webLinkId), + "/trash"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), TrashWebLink.class); + } + + public void deleteTrashedWebLinkById(String webLinkId) { + deleteTrashedWebLinkById(webLinkId, new DeleteTrashedWebLinkByIdHeaders()); + } + + public void deleteTrashedWebLinkById(String webLinkId, DeleteTrashedWebLinkByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/web_links/", + convertToString(webLinkId), + "/trash"), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public TrashedWebLinksManager build() { + return new TrashedWebLinksManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckHeaders.java b/src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckHeaders.java new file mode 100644 index 000000000..94952d541 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.uploads; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class PreflightFileUploadCheckHeaders { + + public Map extraHeaders; + + public PreflightFileUploadCheckHeaders() { + this.extraHeaders = mapOf(); + } + + protected PreflightFileUploadCheckHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public PreflightFileUploadCheckHeaders build() { + return new PreflightFileUploadCheckHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckRequestBody.java b/src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckRequestBody.java new file mode 100644 index 000000000..3c2e5ed5f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckRequestBody.java @@ -0,0 +1,104 @@ +package com.box.sdkgen.managers.uploads; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class PreflightFileUploadCheckRequestBody extends SerializableObject { + + protected String name; + + protected Integer size; + + protected PreflightFileUploadCheckRequestBodyParentField parent; + + public PreflightFileUploadCheckRequestBody() { + super(); + } + + protected PreflightFileUploadCheckRequestBody(Builder builder) { + super(); + this.name = builder.name; + this.size = builder.size; + this.parent = builder.parent; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public Integer getSize() { + return size; + } + + public PreflightFileUploadCheckRequestBodyParentField getParent() { + return parent; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PreflightFileUploadCheckRequestBody casted = (PreflightFileUploadCheckRequestBody) o; + return Objects.equals(name, casted.name) + && Objects.equals(size, casted.size) + && Objects.equals(parent, casted.parent); + } + + @Override + public int hashCode() { + return Objects.hash(name, size, parent); + } + + @Override + public String toString() { + return "PreflightFileUploadCheckRequestBody{" + + "name='" + + name + + '\'' + + ", " + + "size='" + + size + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String name; + + protected Integer size; + + protected PreflightFileUploadCheckRequestBodyParentField parent; + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder size(Integer size) { + this.size = size; + return this; + } + + public Builder parent(PreflightFileUploadCheckRequestBodyParentField parent) { + this.parent = parent; + return this; + } + + public PreflightFileUploadCheckRequestBody build() { + return new PreflightFileUploadCheckRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckRequestBodyParentField.java b/src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckRequestBodyParentField.java new file mode 100644 index 000000000..04a4b0769 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckRequestBodyParentField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.uploads; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class PreflightFileUploadCheckRequestBodyParentField extends SerializableObject { + + protected String id; + + public PreflightFileUploadCheckRequestBodyParentField() { + super(); + } + + protected PreflightFileUploadCheckRequestBodyParentField(Builder builder) { + super(); + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PreflightFileUploadCheckRequestBodyParentField casted = + (PreflightFileUploadCheckRequestBodyParentField) o; + return Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + return "PreflightFileUploadCheckRequestBodyParentField{" + "id='" + id + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + public Builder id(String id) { + this.id = id; + return this; + } + + public PreflightFileUploadCheckRequestBodyParentField build() { + return new PreflightFileUploadCheckRequestBodyParentField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileHeaders.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileHeaders.java new file mode 100644 index 000000000..d16b7e9e5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileHeaders.java @@ -0,0 +1,54 @@ +package com.box.sdkgen.managers.uploads; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UploadFileHeaders { + + public String contentMd5; + + public Map extraHeaders; + + public UploadFileHeaders() { + this.extraHeaders = mapOf(); + } + + protected UploadFileHeaders(Builder builder) { + this.contentMd5 = builder.contentMd5; + this.extraHeaders = builder.extraHeaders; + } + + public String getContentMd5() { + return contentMd5; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected String contentMd5; + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder contentMd5(String contentMd5) { + this.contentMd5 = contentMd5; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UploadFileHeaders build() { + return new UploadFileHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileQueryParams.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileQueryParams.java new file mode 100644 index 000000000..4ddc1090f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.uploads; + +import java.util.List; + +public class UploadFileQueryParams { + + public List fields; + + public UploadFileQueryParams() {} + + protected UploadFileQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public UploadFileQueryParams build() { + return new UploadFileQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBody.java new file mode 100644 index 000000000..b9408c8f9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBody.java @@ -0,0 +1,72 @@ +package com.box.sdkgen.managers.uploads; + +import java.io.InputStream; + +public class UploadFileRequestBody { + + public final UploadFileRequestBodyAttributesField attributes; + + public final InputStream file; + + public String fileFileName; + + public String fileContentType; + + public UploadFileRequestBody(UploadFileRequestBodyAttributesField attributes, InputStream file) { + this.attributes = attributes; + this.file = file; + } + + protected UploadFileRequestBody(Builder builder) { + this.attributes = builder.attributes; + this.file = builder.file; + this.fileFileName = builder.fileFileName; + this.fileContentType = builder.fileContentType; + } + + public UploadFileRequestBodyAttributesField getAttributes() { + return attributes; + } + + public InputStream getFile() { + return file; + } + + public String getFileFileName() { + return fileFileName; + } + + public String getFileContentType() { + return fileContentType; + } + + public static class Builder { + + protected final UploadFileRequestBodyAttributesField attributes; + + protected final InputStream file; + + protected String fileFileName; + + protected String fileContentType; + + public Builder(UploadFileRequestBodyAttributesField attributes, InputStream file) { + this.attributes = attributes; + this.file = file; + } + + public Builder fileFileName(String fileFileName) { + this.fileFileName = fileFileName; + return this; + } + + public Builder fileContentType(String fileContentType) { + this.fileContentType = fileContentType; + return this; + } + + public UploadFileRequestBody build() { + return new UploadFileRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBodyAttributesField.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBodyAttributesField.java new file mode 100644 index 000000000..212239aac --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBodyAttributesField.java @@ -0,0 +1,134 @@ +package com.box.sdkgen.managers.uploads; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UploadFileRequestBodyAttributesField extends SerializableObject { + + protected final String name; + + protected final UploadFileRequestBodyAttributesParentField parent; + + @JsonProperty("content_created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date contentCreatedAt; + + @JsonProperty("content_modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date contentModifiedAt; + + public UploadFileRequestBodyAttributesField( + @JsonProperty("name") String name, + @JsonProperty("parent") UploadFileRequestBodyAttributesParentField parent) { + super(); + this.name = name; + this.parent = parent; + } + + protected UploadFileRequestBodyAttributesField(Builder builder) { + super(); + this.name = builder.name; + this.parent = builder.parent; + this.contentCreatedAt = builder.contentCreatedAt; + this.contentModifiedAt = builder.contentModifiedAt; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public UploadFileRequestBodyAttributesParentField getParent() { + return parent; + } + + public Date getContentCreatedAt() { + return contentCreatedAt; + } + + public Date getContentModifiedAt() { + return contentModifiedAt; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UploadFileRequestBodyAttributesField casted = (UploadFileRequestBodyAttributesField) o; + return Objects.equals(name, casted.name) + && Objects.equals(parent, casted.parent) + && Objects.equals(contentCreatedAt, casted.contentCreatedAt) + && Objects.equals(contentModifiedAt, casted.contentModifiedAt); + } + + @Override + public int hashCode() { + return Objects.hash(name, parent, contentCreatedAt, contentModifiedAt); + } + + @Override + public String toString() { + return "UploadFileRequestBodyAttributesField{" + + "name='" + + name + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + ", " + + "contentCreatedAt='" + + contentCreatedAt + + '\'' + + ", " + + "contentModifiedAt='" + + contentModifiedAt + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String name; + + protected final UploadFileRequestBodyAttributesParentField parent; + + protected Date contentCreatedAt; + + protected Date contentModifiedAt; + + public Builder(String name, UploadFileRequestBodyAttributesParentField parent) { + super(); + this.name = name; + this.parent = parent; + } + + public Builder contentCreatedAt(Date contentCreatedAt) { + this.contentCreatedAt = contentCreatedAt; + return this; + } + + public Builder contentModifiedAt(Date contentModifiedAt) { + this.contentModifiedAt = contentModifiedAt; + return this; + } + + public UploadFileRequestBodyAttributesField build() { + return new UploadFileRequestBodyAttributesField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBodyAttributesParentField.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBodyAttributesParentField.java new file mode 100644 index 000000000..64c94c3fd --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBodyAttributesParentField.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.uploads; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UploadFileRequestBodyAttributesParentField extends SerializableObject { + + protected final String id; + + public UploadFileRequestBodyAttributesParentField(@JsonProperty("id") String id) { + super(); + this.id = id; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UploadFileRequestBodyAttributesParentField casted = + (UploadFileRequestBodyAttributesParentField) o; + return Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + return "UploadFileRequestBodyAttributesParentField{" + "id='" + id + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionHeaders.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionHeaders.java new file mode 100644 index 000000000..b3369b79c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionHeaders.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.managers.uploads; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UploadFileVersionHeaders { + + public String ifMatch; + + public String contentMd5; + + public Map extraHeaders; + + public UploadFileVersionHeaders() { + this.extraHeaders = mapOf(); + } + + protected UploadFileVersionHeaders(Builder builder) { + this.ifMatch = builder.ifMatch; + this.contentMd5 = builder.contentMd5; + this.extraHeaders = builder.extraHeaders; + } + + public String getIfMatch() { + return ifMatch; + } + + public String getContentMd5() { + return contentMd5; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected String ifMatch; + + protected String contentMd5; + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder ifMatch(String ifMatch) { + this.ifMatch = ifMatch; + return this; + } + + public Builder contentMd5(String contentMd5) { + this.contentMd5 = contentMd5; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UploadFileVersionHeaders build() { + return new UploadFileVersionHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionQueryParams.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionQueryParams.java new file mode 100644 index 000000000..c02215e24 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.uploads; + +import java.util.List; + +public class UploadFileVersionQueryParams { + + public List fields; + + public UploadFileVersionQueryParams() {} + + protected UploadFileVersionQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public UploadFileVersionQueryParams build() { + return new UploadFileVersionQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionRequestBody.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionRequestBody.java new file mode 100644 index 000000000..61018c6e8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionRequestBody.java @@ -0,0 +1,73 @@ +package com.box.sdkgen.managers.uploads; + +import java.io.InputStream; + +public class UploadFileVersionRequestBody { + + public final UploadFileVersionRequestBodyAttributesField attributes; + + public final InputStream file; + + public String fileFileName; + + public String fileContentType; + + public UploadFileVersionRequestBody( + UploadFileVersionRequestBodyAttributesField attributes, InputStream file) { + this.attributes = attributes; + this.file = file; + } + + protected UploadFileVersionRequestBody(Builder builder) { + this.attributes = builder.attributes; + this.file = builder.file; + this.fileFileName = builder.fileFileName; + this.fileContentType = builder.fileContentType; + } + + public UploadFileVersionRequestBodyAttributesField getAttributes() { + return attributes; + } + + public InputStream getFile() { + return file; + } + + public String getFileFileName() { + return fileFileName; + } + + public String getFileContentType() { + return fileContentType; + } + + public static class Builder { + + protected final UploadFileVersionRequestBodyAttributesField attributes; + + protected final InputStream file; + + protected String fileFileName; + + protected String fileContentType; + + public Builder(UploadFileVersionRequestBodyAttributesField attributes, InputStream file) { + this.attributes = attributes; + this.file = file; + } + + public Builder fileFileName(String fileFileName) { + this.fileFileName = fileFileName; + return this; + } + + public Builder fileContentType(String fileContentType) { + this.fileContentType = fileContentType; + return this; + } + + public UploadFileVersionRequestBody build() { + return new UploadFileVersionRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionRequestBodyAttributesField.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionRequestBodyAttributesField.java new file mode 100644 index 000000000..03800febd --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionRequestBodyAttributesField.java @@ -0,0 +1,95 @@ +package com.box.sdkgen.managers.uploads; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UploadFileVersionRequestBodyAttributesField extends SerializableObject { + + protected final String name; + + @JsonProperty("content_modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date contentModifiedAt; + + public UploadFileVersionRequestBodyAttributesField(@JsonProperty("name") String name) { + super(); + this.name = name; + } + + protected UploadFileVersionRequestBodyAttributesField(Builder builder) { + super(); + this.name = builder.name; + this.contentModifiedAt = builder.contentModifiedAt; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public Date getContentModifiedAt() { + return contentModifiedAt; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UploadFileVersionRequestBodyAttributesField casted = + (UploadFileVersionRequestBodyAttributesField) o; + return Objects.equals(name, casted.name) + && Objects.equals(contentModifiedAt, casted.contentModifiedAt); + } + + @Override + public int hashCode() { + return Objects.hash(name, contentModifiedAt); + } + + @Override + public String toString() { + return "UploadFileVersionRequestBodyAttributesField{" + + "name='" + + name + + '\'' + + ", " + + "contentModifiedAt='" + + contentModifiedAt + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String name; + + protected Date contentModifiedAt; + + public Builder(String name) { + super(); + this.name = name; + } + + public Builder contentModifiedAt(Date contentModifiedAt) { + this.contentModifiedAt = contentModifiedAt; + return this; + } + + public UploadFileVersionRequestBodyAttributesField build() { + return new UploadFileVersionRequestBodyAttributesField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckHeaders.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckHeaders.java new file mode 100644 index 000000000..d6312507d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckHeaders.java @@ -0,0 +1,54 @@ +package com.box.sdkgen.managers.uploads; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UploadWithPreflightCheckHeaders { + + public String contentMd5; + + public Map extraHeaders; + + public UploadWithPreflightCheckHeaders() { + this.extraHeaders = mapOf(); + } + + protected UploadWithPreflightCheckHeaders(Builder builder) { + this.contentMd5 = builder.contentMd5; + this.extraHeaders = builder.extraHeaders; + } + + public String getContentMd5() { + return contentMd5; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected String contentMd5; + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder contentMd5(String contentMd5) { + this.contentMd5 = contentMd5; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UploadWithPreflightCheckHeaders build() { + return new UploadWithPreflightCheckHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckQueryParams.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckQueryParams.java new file mode 100644 index 000000000..522d12067 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.uploads; + +import java.util.List; + +public class UploadWithPreflightCheckQueryParams { + + public List fields; + + public UploadWithPreflightCheckQueryParams() {} + + protected UploadWithPreflightCheckQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public UploadWithPreflightCheckQueryParams build() { + return new UploadWithPreflightCheckQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBody.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBody.java new file mode 100644 index 000000000..5d249be6a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBody.java @@ -0,0 +1,74 @@ +package com.box.sdkgen.managers.uploads; + +import java.io.InputStream; + +public class UploadWithPreflightCheckRequestBody { + + public final UploadWithPreflightCheckRequestBodyAttributesField attributes; + + public final InputStream file; + + public String fileFileName; + + public String fileContentType; + + public UploadWithPreflightCheckRequestBody( + UploadWithPreflightCheckRequestBodyAttributesField attributes, InputStream file) { + this.attributes = attributes; + this.file = file; + } + + protected UploadWithPreflightCheckRequestBody(Builder builder) { + this.attributes = builder.attributes; + this.file = builder.file; + this.fileFileName = builder.fileFileName; + this.fileContentType = builder.fileContentType; + } + + public UploadWithPreflightCheckRequestBodyAttributesField getAttributes() { + return attributes; + } + + public InputStream getFile() { + return file; + } + + public String getFileFileName() { + return fileFileName; + } + + public String getFileContentType() { + return fileContentType; + } + + public static class Builder { + + protected final UploadWithPreflightCheckRequestBodyAttributesField attributes; + + protected final InputStream file; + + protected String fileFileName; + + protected String fileContentType; + + public Builder( + UploadWithPreflightCheckRequestBodyAttributesField attributes, InputStream file) { + this.attributes = attributes; + this.file = file; + } + + public Builder fileFileName(String fileFileName) { + this.fileFileName = fileFileName; + return this; + } + + public Builder fileContentType(String fileContentType) { + this.fileContentType = fileContentType; + return this; + } + + public UploadWithPreflightCheckRequestBody build() { + return new UploadWithPreflightCheckRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBodyAttributesField.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBodyAttributesField.java new file mode 100644 index 000000000..c60cacb6e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBodyAttributesField.java @@ -0,0 +1,153 @@ +package com.box.sdkgen.managers.uploads; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UploadWithPreflightCheckRequestBodyAttributesField extends SerializableObject { + + protected final String name; + + protected final UploadWithPreflightCheckRequestBodyAttributesParentField parent; + + @JsonProperty("content_created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date contentCreatedAt; + + @JsonProperty("content_modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date contentModifiedAt; + + protected final int size; + + public UploadWithPreflightCheckRequestBodyAttributesField( + @JsonProperty("name") String name, + @JsonProperty("parent") UploadWithPreflightCheckRequestBodyAttributesParentField parent, + @JsonProperty("size") int size) { + super(); + this.name = name; + this.parent = parent; + this.size = size; + } + + protected UploadWithPreflightCheckRequestBodyAttributesField(Builder builder) { + super(); + this.name = builder.name; + this.parent = builder.parent; + this.contentCreatedAt = builder.contentCreatedAt; + this.contentModifiedAt = builder.contentModifiedAt; + this.size = builder.size; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public UploadWithPreflightCheckRequestBodyAttributesParentField getParent() { + return parent; + } + + public Date getContentCreatedAt() { + return contentCreatedAt; + } + + public Date getContentModifiedAt() { + return contentModifiedAt; + } + + public int getSize() { + return size; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UploadWithPreflightCheckRequestBodyAttributesField casted = + (UploadWithPreflightCheckRequestBodyAttributesField) o; + return Objects.equals(name, casted.name) + && Objects.equals(parent, casted.parent) + && Objects.equals(contentCreatedAt, casted.contentCreatedAt) + && Objects.equals(contentModifiedAt, casted.contentModifiedAt) + && Objects.equals(size, casted.size); + } + + @Override + public int hashCode() { + return Objects.hash(name, parent, contentCreatedAt, contentModifiedAt, size); + } + + @Override + public String toString() { + return "UploadWithPreflightCheckRequestBodyAttributesField{" + + "name='" + + name + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + ", " + + "contentCreatedAt='" + + contentCreatedAt + + '\'' + + ", " + + "contentModifiedAt='" + + contentModifiedAt + + '\'' + + ", " + + "size='" + + size + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String name; + + protected final UploadWithPreflightCheckRequestBodyAttributesParentField parent; + + protected Date contentCreatedAt; + + protected Date contentModifiedAt; + + protected final int size; + + public Builder( + String name, UploadWithPreflightCheckRequestBodyAttributesParentField parent, int size) { + super(); + this.name = name; + this.parent = parent; + this.size = size; + } + + public Builder contentCreatedAt(Date contentCreatedAt) { + this.contentCreatedAt = contentCreatedAt; + return this; + } + + public Builder contentModifiedAt(Date contentModifiedAt) { + this.contentModifiedAt = contentModifiedAt; + return this; + } + + public UploadWithPreflightCheckRequestBodyAttributesField build() { + return new UploadWithPreflightCheckRequestBodyAttributesField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBodyAttributesParentField.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBodyAttributesParentField.java new file mode 100644 index 000000000..3d8cb592f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBodyAttributesParentField.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.uploads; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UploadWithPreflightCheckRequestBodyAttributesParentField extends SerializableObject { + + protected final String id; + + public UploadWithPreflightCheckRequestBodyAttributesParentField(@JsonProperty("id") String id) { + super(); + this.id = id; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UploadWithPreflightCheckRequestBodyAttributesParentField casted = + (UploadWithPreflightCheckRequestBodyAttributesParentField) o; + return Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + return "UploadWithPreflightCheckRequestBodyAttributesParentField{" + "id='" + id + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadsManager.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadsManager.java new file mode 100644 index 000000000..2c2fbeec9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadsManager.java @@ -0,0 +1,294 @@ +package com.box.sdkgen.managers.uploads; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.box.errors.BoxSDKError; +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.MultipartItem; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.files.Files; +import com.box.sdkgen.schemas.uploadurl.UploadUrl; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Arrays; +import java.util.Map; + +public class UploadsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public UploadsManager() { + this.networkSession = new NetworkSession(); + } + + protected UploadsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public Files uploadFileVersion(String fileId, UploadFileVersionRequestBody requestBody) { + return uploadFileVersion( + fileId, requestBody, new UploadFileVersionQueryParams(), new UploadFileVersionHeaders()); + } + + public Files uploadFileVersion( + String fileId, + UploadFileVersionRequestBody requestBody, + UploadFileVersionQueryParams queryParams) { + return uploadFileVersion(fileId, requestBody, queryParams, new UploadFileVersionHeaders()); + } + + public Files uploadFileVersion( + String fileId, UploadFileVersionRequestBody requestBody, UploadFileVersionHeaders headers) { + return uploadFileVersion(fileId, requestBody, new UploadFileVersionQueryParams(), headers); + } + + public Files uploadFileVersion( + String fileId, + UploadFileVersionRequestBody requestBody, + UploadFileVersionQueryParams queryParams, + UploadFileVersionHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf( + entryOf("if-match", convertToString(headers.getIfMatch())), + entryOf("content-md5", convertToString(headers.getContentMd5()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getUploadUrl(), + "/2.0/files/", + convertToString(fileId), + "/content"), + "POST") + .params(queryParamsMap) + .headers(headersMap) + .multipartData( + Arrays.asList( + new MultipartItem.Builder("attributes") + .data(JsonManager.serialize(requestBody.getAttributes())) + .build(), + new MultipartItem.Builder("file") + .fileStream(requestBody.getFile()) + .fileName(requestBody.getFileFileName()) + .contentType(requestBody.getFileContentType()) + .build())) + .contentType("multipart/form-data") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Files.class); + } + + public UploadUrl preflightFileUploadCheck() { + return preflightFileUploadCheck( + new PreflightFileUploadCheckRequestBody(), new PreflightFileUploadCheckHeaders()); + } + + public UploadUrl preflightFileUploadCheck(PreflightFileUploadCheckRequestBody requestBody) { + return preflightFileUploadCheck(requestBody, new PreflightFileUploadCheckHeaders()); + } + + public UploadUrl preflightFileUploadCheck(PreflightFileUploadCheckHeaders headers) { + return preflightFileUploadCheck(new PreflightFileUploadCheckRequestBody(), headers); + } + + public UploadUrl preflightFileUploadCheck( + PreflightFileUploadCheckRequestBody requestBody, PreflightFileUploadCheckHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/files/content"), + "OPTIONS") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), UploadUrl.class); + } + + public Files uploadFile(UploadFileRequestBody requestBody) { + return uploadFile(requestBody, new UploadFileQueryParams(), new UploadFileHeaders()); + } + + public Files uploadFile(UploadFileRequestBody requestBody, UploadFileQueryParams queryParams) { + return uploadFile(requestBody, queryParams, new UploadFileHeaders()); + } + + public Files uploadFile(UploadFileRequestBody requestBody, UploadFileHeaders headers) { + return uploadFile(requestBody, new UploadFileQueryParams(), headers); + } + + public Files uploadFile( + UploadFileRequestBody requestBody, + UploadFileQueryParams queryParams, + UploadFileHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("content-md5", convertToString(headers.getContentMd5()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getUploadUrl(), + "/2.0/files/content"), + "POST") + .params(queryParamsMap) + .headers(headersMap) + .multipartData( + Arrays.asList( + new MultipartItem.Builder("attributes") + .data(JsonManager.serialize(requestBody.getAttributes())) + .build(), + new MultipartItem.Builder("file") + .fileStream(requestBody.getFile()) + .fileName(requestBody.getFileFileName()) + .contentType(requestBody.getFileContentType()) + .build())) + .contentType("multipart/form-data") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Files.class); + } + + public Files uploadWithPreflightCheck(UploadWithPreflightCheckRequestBody requestBody) { + return uploadWithPreflightCheck( + requestBody, + new UploadWithPreflightCheckQueryParams(), + new UploadWithPreflightCheckHeaders()); + } + + public Files uploadWithPreflightCheck( + UploadWithPreflightCheckRequestBody requestBody, + UploadWithPreflightCheckQueryParams queryParams) { + return uploadWithPreflightCheck( + requestBody, queryParams, new UploadWithPreflightCheckHeaders()); + } + + public Files uploadWithPreflightCheck( + UploadWithPreflightCheckRequestBody requestBody, UploadWithPreflightCheckHeaders headers) { + return uploadWithPreflightCheck( + requestBody, new UploadWithPreflightCheckQueryParams(), headers); + } + + public Files uploadWithPreflightCheck( + UploadWithPreflightCheckRequestBody requestBody, + UploadWithPreflightCheckQueryParams queryParams, + UploadWithPreflightCheckHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("content-md5", convertToString(headers.getContentMd5()))), + headers.getExtraHeaders())); + UploadUrl preflightUploadUrl = + this.preflightFileUploadCheck( + new PreflightFileUploadCheckRequestBody.Builder() + .name(requestBody.getAttributes().getName()) + .size(requestBody.getAttributes().getSize()) + .parent( + new PreflightFileUploadCheckRequestBodyParentField.Builder() + .id(requestBody.getAttributes().getParent().getId()) + .build()) + .build(), + new PreflightFileUploadCheckHeaders.Builder() + .extraHeaders(headers.getExtraHeaders()) + .build()); + if (preflightUploadUrl.getUploadUrl() == null + || !(preflightUploadUrl.getUploadUrl().contains("http"))) { + throw new BoxSDKError("Unable to get preflight upload URL"); + } + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder(preflightUploadUrl.getUploadUrl(), "POST") + .params(queryParamsMap) + .headers(headersMap) + .multipartData( + Arrays.asList( + new MultipartItem.Builder("attributes") + .data(JsonManager.serialize(requestBody.getAttributes())) + .build(), + new MultipartItem.Builder("file") + .fileStream(requestBody.getFile()) + .fileName(requestBody.getFileFileName()) + .contentType(requestBody.getFileContentType()) + .build())) + .contentType("multipart/form-data") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Files.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public UploadsManager build() { + return new UploadsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationHeaders.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationHeaders.java new file mode 100644 index 000000000..f3c4770f8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.usercollaborations; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateCollaborationHeaders { + + public Map extraHeaders; + + public CreateCollaborationHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateCollaborationHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateCollaborationHeaders build() { + return new CreateCollaborationHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationQueryParams.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationQueryParams.java new file mode 100644 index 000000000..ea29c7a88 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationQueryParams.java @@ -0,0 +1,46 @@ +package com.box.sdkgen.managers.usercollaborations; + +import java.util.List; + +public class CreateCollaborationQueryParams { + + public List fields; + + public Boolean notify; + + public CreateCollaborationQueryParams() {} + + protected CreateCollaborationQueryParams(Builder builder) { + this.fields = builder.fields; + this.notify = builder.notify; + } + + public List getFields() { + return fields; + } + + public Boolean getNotify() { + return notify; + } + + public static class Builder { + + protected List fields; + + protected Boolean notify; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder notify(Boolean notify) { + this.notify = notify; + return this; + } + + public CreateCollaborationQueryParams build() { + return new CreateCollaborationQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBody.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBody.java new file mode 100644 index 000000000..a86d275e5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBody.java @@ -0,0 +1,202 @@ +package com.box.sdkgen.managers.usercollaborations; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateCollaborationRequestBody extends SerializableObject { + + protected final CreateCollaborationRequestBodyItemField item; + + @JsonProperty("accessible_by") + protected final CreateCollaborationRequestBodyAccessibleByField accessibleBy; + + @JsonDeserialize( + using = + CreateCollaborationRequestBodyRoleField + .CreateCollaborationRequestBodyRoleFieldDeserializer.class) + @JsonSerialize( + using = + CreateCollaborationRequestBodyRoleField.CreateCollaborationRequestBodyRoleFieldSerializer + .class) + protected final EnumWrapper role; + + @JsonProperty("is_access_only") + protected Boolean isAccessOnly; + + @JsonProperty("can_view_path") + protected Boolean canViewPath; + + @JsonProperty("expires_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date expiresAt; + + public CreateCollaborationRequestBody( + CreateCollaborationRequestBodyItemField item, + CreateCollaborationRequestBodyAccessibleByField accessibleBy, + CreateCollaborationRequestBodyRoleField role) { + super(); + this.item = item; + this.accessibleBy = accessibleBy; + this.role = new EnumWrapper(role); + } + + public CreateCollaborationRequestBody( + @JsonProperty("item") CreateCollaborationRequestBodyItemField item, + @JsonProperty("accessible_by") CreateCollaborationRequestBodyAccessibleByField accessibleBy, + @JsonProperty("role") EnumWrapper role) { + super(); + this.item = item; + this.accessibleBy = accessibleBy; + this.role = role; + } + + protected CreateCollaborationRequestBody(Builder builder) { + super(); + this.item = builder.item; + this.accessibleBy = builder.accessibleBy; + this.role = builder.role; + this.isAccessOnly = builder.isAccessOnly; + this.canViewPath = builder.canViewPath; + this.expiresAt = builder.expiresAt; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public CreateCollaborationRequestBodyItemField getItem() { + return item; + } + + public CreateCollaborationRequestBodyAccessibleByField getAccessibleBy() { + return accessibleBy; + } + + public EnumWrapper getRole() { + return role; + } + + public Boolean getIsAccessOnly() { + return isAccessOnly; + } + + public Boolean getCanViewPath() { + return canViewPath; + } + + public Date getExpiresAt() { + return expiresAt; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateCollaborationRequestBody casted = (CreateCollaborationRequestBody) o; + return Objects.equals(item, casted.item) + && Objects.equals(accessibleBy, casted.accessibleBy) + && Objects.equals(role, casted.role) + && Objects.equals(isAccessOnly, casted.isAccessOnly) + && Objects.equals(canViewPath, casted.canViewPath) + && Objects.equals(expiresAt, casted.expiresAt); + } + + @Override + public int hashCode() { + return Objects.hash(item, accessibleBy, role, isAccessOnly, canViewPath, expiresAt); + } + + @Override + public String toString() { + return "CreateCollaborationRequestBody{" + + "item='" + + item + + '\'' + + ", " + + "accessibleBy='" + + accessibleBy + + '\'' + + ", " + + "role='" + + role + + '\'' + + ", " + + "isAccessOnly='" + + isAccessOnly + + '\'' + + ", " + + "canViewPath='" + + canViewPath + + '\'' + + ", " + + "expiresAt='" + + expiresAt + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final CreateCollaborationRequestBodyItemField item; + + protected final CreateCollaborationRequestBodyAccessibleByField accessibleBy; + + protected final EnumWrapper role; + + protected Boolean isAccessOnly; + + protected Boolean canViewPath; + + protected Date expiresAt; + + public Builder( + CreateCollaborationRequestBodyItemField item, + CreateCollaborationRequestBodyAccessibleByField accessibleBy, + CreateCollaborationRequestBodyRoleField role) { + super(); + this.item = item; + this.accessibleBy = accessibleBy; + this.role = new EnumWrapper(role); + } + + public Builder( + CreateCollaborationRequestBodyItemField item, + CreateCollaborationRequestBodyAccessibleByField accessibleBy, + EnumWrapper role) { + super(); + this.item = item; + this.accessibleBy = accessibleBy; + this.role = role; + } + + public Builder isAccessOnly(Boolean isAccessOnly) { + this.isAccessOnly = isAccessOnly; + return this; + } + + public Builder canViewPath(Boolean canViewPath) { + this.canViewPath = canViewPath; + return this; + } + + public Builder expiresAt(Date expiresAt) { + this.expiresAt = expiresAt; + return this; + } + + public CreateCollaborationRequestBody build() { + return new CreateCollaborationRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyAccessibleByField.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyAccessibleByField.java new file mode 100644 index 000000000..91ffe4539 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyAccessibleByField.java @@ -0,0 +1,130 @@ +package com.box.sdkgen.managers.usercollaborations; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateCollaborationRequestBodyAccessibleByField extends SerializableObject { + + @JsonDeserialize( + using = + CreateCollaborationRequestBodyAccessibleByTypeField + .CreateCollaborationRequestBodyAccessibleByTypeFieldDeserializer.class) + @JsonSerialize( + using = + CreateCollaborationRequestBodyAccessibleByTypeField + .CreateCollaborationRequestBodyAccessibleByTypeFieldSerializer.class) + protected final EnumWrapper type; + + protected String id; + + protected String login; + + public CreateCollaborationRequestBodyAccessibleByField( + CreateCollaborationRequestBodyAccessibleByTypeField type) { + super(); + this.type = new EnumWrapper(type); + } + + public CreateCollaborationRequestBodyAccessibleByField( + @JsonProperty("type") EnumWrapper type) { + super(); + this.type = type; + } + + protected CreateCollaborationRequestBodyAccessibleByField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + this.login = builder.login; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + public String getLogin() { + return login; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateCollaborationRequestBodyAccessibleByField casted = + (CreateCollaborationRequestBodyAccessibleByField) o; + return Objects.equals(type, casted.type) + && Objects.equals(id, casted.id) + && Objects.equals(login, casted.login); + } + + @Override + public int hashCode() { + return Objects.hash(type, id, login); + } + + @Override + public String toString() { + return "CreateCollaborationRequestBodyAccessibleByField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + ", " + + "login='" + + login + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final EnumWrapper type; + + protected String id; + + protected String login; + + public Builder(CreateCollaborationRequestBodyAccessibleByTypeField type) { + super(); + this.type = new EnumWrapper(type); + } + + public Builder(EnumWrapper type) { + super(); + this.type = type; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder login(String login) { + this.login = login; + return this; + } + + public CreateCollaborationRequestBodyAccessibleByField build() { + return new CreateCollaborationRequestBodyAccessibleByField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyAccessibleByTypeField.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyAccessibleByTypeField.java new file mode 100644 index 000000000..3beba39aa --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyAccessibleByTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.usercollaborations; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateCollaborationRequestBodyAccessibleByTypeField implements Valuable { + USER("user"), + GROUP("group"); + + private final String value; + + CreateCollaborationRequestBodyAccessibleByTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateCollaborationRequestBodyAccessibleByTypeFieldDeserializer + extends JsonDeserializer> { + + public CreateCollaborationRequestBodyAccessibleByTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateCollaborationRequestBodyAccessibleByTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateCollaborationRequestBodyAccessibleByTypeFieldSerializer + extends JsonSerializer> { + + public CreateCollaborationRequestBodyAccessibleByTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyItemField.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyItemField.java new file mode 100644 index 000000000..d7be57d8d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyItemField.java @@ -0,0 +1,100 @@ +package com.box.sdkgen.managers.usercollaborations; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateCollaborationRequestBodyItemField extends SerializableObject { + + @JsonDeserialize( + using = + CreateCollaborationRequestBodyItemTypeField + .CreateCollaborationRequestBodyItemTypeFieldDeserializer.class) + @JsonSerialize( + using = + CreateCollaborationRequestBodyItemTypeField + .CreateCollaborationRequestBodyItemTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String id; + + public CreateCollaborationRequestBodyItemField() { + super(); + } + + protected CreateCollaborationRequestBodyItemField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateCollaborationRequestBodyItemField casted = (CreateCollaborationRequestBodyItemField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "CreateCollaborationRequestBodyItemField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected String id; + + public Builder type(CreateCollaborationRequestBodyItemTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public CreateCollaborationRequestBodyItemField build() { + return new CreateCollaborationRequestBodyItemField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyItemTypeField.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyItemTypeField.java new file mode 100644 index 000000000..ebfce42e0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyItemTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.usercollaborations; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateCollaborationRequestBodyItemTypeField implements Valuable { + FILE("file"), + FOLDER("folder"); + + private final String value; + + CreateCollaborationRequestBodyItemTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateCollaborationRequestBodyItemTypeFieldDeserializer + extends JsonDeserializer> { + + public CreateCollaborationRequestBodyItemTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateCollaborationRequestBodyItemTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateCollaborationRequestBodyItemTypeFieldSerializer + extends JsonSerializer> { + + public CreateCollaborationRequestBodyItemTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyRoleField.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyRoleField.java new file mode 100644 index 000000000..76649bf2a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyRoleField.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.managers.usercollaborations; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateCollaborationRequestBodyRoleField implements Valuable { + EDITOR("editor"), + VIEWER("viewer"), + PREVIEWER("previewer"), + UPLOADER("uploader"), + PREVIEWER_UPLOADER("previewer uploader"), + VIEWER_UPLOADER("viewer uploader"), + CO_OWNER("co-owner"); + + private final String value; + + CreateCollaborationRequestBodyRoleField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateCollaborationRequestBodyRoleFieldDeserializer + extends JsonDeserializer> { + + public CreateCollaborationRequestBodyRoleFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateCollaborationRequestBodyRoleField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateCollaborationRequestBodyRoleFieldSerializer + extends JsonSerializer> { + + public CreateCollaborationRequestBodyRoleFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/DeleteCollaborationByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/DeleteCollaborationByIdHeaders.java new file mode 100644 index 000000000..e85c71c7d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/DeleteCollaborationByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.usercollaborations; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteCollaborationByIdHeaders { + + public Map extraHeaders; + + public DeleteCollaborationByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteCollaborationByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteCollaborationByIdHeaders build() { + return new DeleteCollaborationByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/GetCollaborationByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/GetCollaborationByIdHeaders.java new file mode 100644 index 000000000..4cbf98ebb --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/GetCollaborationByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.usercollaborations; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetCollaborationByIdHeaders { + + public Map extraHeaders; + + public GetCollaborationByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetCollaborationByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetCollaborationByIdHeaders build() { + return new GetCollaborationByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/GetCollaborationByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/GetCollaborationByIdQueryParams.java new file mode 100644 index 000000000..9080f1174 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/GetCollaborationByIdQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.usercollaborations; + +import java.util.List; + +public class GetCollaborationByIdQueryParams { + + public List fields; + + public GetCollaborationByIdQueryParams() {} + + protected GetCollaborationByIdQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public GetCollaborationByIdQueryParams build() { + return new GetCollaborationByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdHeaders.java new file mode 100644 index 000000000..993e0e40f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.usercollaborations; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateCollaborationByIdHeaders { + + public Map extraHeaders; + + public UpdateCollaborationByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateCollaborationByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateCollaborationByIdHeaders build() { + return new UpdateCollaborationByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBody.java new file mode 100644 index 000000000..e1b0de905 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBody.java @@ -0,0 +1,166 @@ +package com.box.sdkgen.managers.usercollaborations; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateCollaborationByIdRequestBody extends SerializableObject { + + @JsonDeserialize( + using = + UpdateCollaborationByIdRequestBodyRoleField + .UpdateCollaborationByIdRequestBodyRoleFieldDeserializer.class) + @JsonSerialize( + using = + UpdateCollaborationByIdRequestBodyRoleField + .UpdateCollaborationByIdRequestBodyRoleFieldSerializer.class) + protected final EnumWrapper role; + + @JsonDeserialize( + using = + UpdateCollaborationByIdRequestBodyStatusField + .UpdateCollaborationByIdRequestBodyStatusFieldDeserializer.class) + @JsonSerialize( + using = + UpdateCollaborationByIdRequestBodyStatusField + .UpdateCollaborationByIdRequestBodyStatusFieldSerializer.class) + protected EnumWrapper status; + + @JsonProperty("expires_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date expiresAt; + + @JsonProperty("can_view_path") + protected Boolean canViewPath; + + public UpdateCollaborationByIdRequestBody(UpdateCollaborationByIdRequestBodyRoleField role) { + super(); + this.role = new EnumWrapper(role); + } + + public UpdateCollaborationByIdRequestBody( + @JsonProperty("role") EnumWrapper role) { + super(); + this.role = role; + } + + protected UpdateCollaborationByIdRequestBody(Builder builder) { + super(); + this.role = builder.role; + this.status = builder.status; + this.expiresAt = builder.expiresAt; + this.canViewPath = builder.canViewPath; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getRole() { + return role; + } + + public EnumWrapper getStatus() { + return status; + } + + public Date getExpiresAt() { + return expiresAt; + } + + public Boolean getCanViewPath() { + return canViewPath; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateCollaborationByIdRequestBody casted = (UpdateCollaborationByIdRequestBody) o; + return Objects.equals(role, casted.role) + && Objects.equals(status, casted.status) + && Objects.equals(expiresAt, casted.expiresAt) + && Objects.equals(canViewPath, casted.canViewPath); + } + + @Override + public int hashCode() { + return Objects.hash(role, status, expiresAt, canViewPath); + } + + @Override + public String toString() { + return "UpdateCollaborationByIdRequestBody{" + + "role='" + + role + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "expiresAt='" + + expiresAt + + '\'' + + ", " + + "canViewPath='" + + canViewPath + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final EnumWrapper role; + + protected EnumWrapper status; + + protected Date expiresAt; + + protected Boolean canViewPath; + + public Builder(UpdateCollaborationByIdRequestBodyRoleField role) { + super(); + this.role = new EnumWrapper(role); + } + + public Builder(EnumWrapper role) { + super(); + this.role = role; + } + + public Builder status(UpdateCollaborationByIdRequestBodyStatusField status) { + this.status = new EnumWrapper(status); + return this; + } + + public Builder status(EnumWrapper status) { + this.status = status; + return this; + } + + public Builder expiresAt(Date expiresAt) { + this.expiresAt = expiresAt; + return this; + } + + public Builder canViewPath(Boolean canViewPath) { + this.canViewPath = canViewPath; + return this; + } + + public UpdateCollaborationByIdRequestBody build() { + return new UpdateCollaborationByIdRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBodyRoleField.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBodyRoleField.java new file mode 100644 index 000000000..9a11cd61e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBodyRoleField.java @@ -0,0 +1,69 @@ +package com.box.sdkgen.managers.usercollaborations; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateCollaborationByIdRequestBodyRoleField implements Valuable { + EDITOR("editor"), + VIEWER("viewer"), + PREVIEWER("previewer"), + UPLOADER("uploader"), + PREVIEWER_UPLOADER("previewer uploader"), + VIEWER_UPLOADER("viewer uploader"), + CO_OWNER("co-owner"), + OWNER("owner"); + + private final String value; + + UpdateCollaborationByIdRequestBodyRoleField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateCollaborationByIdRequestBodyRoleFieldDeserializer + extends JsonDeserializer> { + + public UpdateCollaborationByIdRequestBodyRoleFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateCollaborationByIdRequestBodyRoleField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateCollaborationByIdRequestBodyRoleFieldSerializer + extends JsonSerializer> { + + public UpdateCollaborationByIdRequestBodyRoleFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBodyStatusField.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBodyStatusField.java new file mode 100644 index 000000000..b8f75d63f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBodyStatusField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.usercollaborations; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateCollaborationByIdRequestBodyStatusField implements Valuable { + PENDING("pending"), + ACCEPTED("accepted"), + REJECTED("rejected"); + + private final String value; + + UpdateCollaborationByIdRequestBodyStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateCollaborationByIdRequestBodyStatusFieldDeserializer + extends JsonDeserializer> { + + public UpdateCollaborationByIdRequestBodyStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateCollaborationByIdRequestBodyStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateCollaborationByIdRequestBodyStatusFieldSerializer + extends JsonSerializer> { + + public UpdateCollaborationByIdRequestBodyStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/UserCollaborationsManager.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/UserCollaborationsManager.java new file mode 100644 index 000000000..03bf6de88 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/UserCollaborationsManager.java @@ -0,0 +1,213 @@ +package com.box.sdkgen.managers.usercollaborations; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.collaboration.Collaboration; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class UserCollaborationsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public UserCollaborationsManager() { + this.networkSession = new NetworkSession(); + } + + protected UserCollaborationsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public Collaboration getCollaborationById(String collaborationId) { + return getCollaborationById( + collaborationId, new GetCollaborationByIdQueryParams(), new GetCollaborationByIdHeaders()); + } + + public Collaboration getCollaborationById( + String collaborationId, GetCollaborationByIdQueryParams queryParams) { + return getCollaborationById(collaborationId, queryParams, new GetCollaborationByIdHeaders()); + } + + public Collaboration getCollaborationById( + String collaborationId, GetCollaborationByIdHeaders headers) { + return getCollaborationById(collaborationId, new GetCollaborationByIdQueryParams(), headers); + } + + public Collaboration getCollaborationById( + String collaborationId, + GetCollaborationByIdQueryParams queryParams, + GetCollaborationByIdHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/collaborations/", + convertToString(collaborationId)), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Collaboration.class); + } + + public Collaboration updateCollaborationById( + String collaborationId, UpdateCollaborationByIdRequestBody requestBody) { + return updateCollaborationById( + collaborationId, requestBody, new UpdateCollaborationByIdHeaders()); + } + + public Collaboration updateCollaborationById( + String collaborationId, + UpdateCollaborationByIdRequestBody requestBody, + UpdateCollaborationByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/collaborations/", + convertToString(collaborationId)), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + if (convertToString(response.getStatus()).equals("204")) { + return null; + } + return JsonManager.deserialize(response.getData(), Collaboration.class); + } + + public void deleteCollaborationById(String collaborationId) { + deleteCollaborationById(collaborationId, new DeleteCollaborationByIdHeaders()); + } + + public void deleteCollaborationById( + String collaborationId, DeleteCollaborationByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/collaborations/", + convertToString(collaborationId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Collaboration createCollaboration(CreateCollaborationRequestBody requestBody) { + return createCollaboration( + requestBody, new CreateCollaborationQueryParams(), new CreateCollaborationHeaders()); + } + + public Collaboration createCollaboration( + CreateCollaborationRequestBody requestBody, CreateCollaborationQueryParams queryParams) { + return createCollaboration(requestBody, queryParams, new CreateCollaborationHeaders()); + } + + public Collaboration createCollaboration( + CreateCollaborationRequestBody requestBody, CreateCollaborationHeaders headers) { + return createCollaboration(requestBody, new CreateCollaborationQueryParams(), headers); + } + + public Collaboration createCollaboration( + CreateCollaborationRequestBody requestBody, + CreateCollaborationQueryParams queryParams, + CreateCollaborationHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("fields", convertToString(queryParams.getFields())), + entryOf("notify", convertToString(queryParams.getNotify())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/collaborations"), + "POST") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Collaboration.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public UserCollaborationsManager build() { + return new UserCollaborationsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/users/CreateUserHeaders.java b/src/main/java/com/box/sdkgen/managers/users/CreateUserHeaders.java new file mode 100644 index 000000000..a6945af94 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/users/CreateUserHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.users; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateUserHeaders { + + public Map extraHeaders; + + public CreateUserHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateUserHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateUserHeaders build() { + return new CreateUserHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/users/CreateUserQueryParams.java b/src/main/java/com/box/sdkgen/managers/users/CreateUserQueryParams.java new file mode 100644 index 000000000..4a79a0fdf --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/users/CreateUserQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.users; + +import java.util.List; + +public class CreateUserQueryParams { + + public List fields; + + public CreateUserQueryParams() {} + + protected CreateUserQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public CreateUserQueryParams build() { + return new CreateUserQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBody.java b/src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBody.java new file mode 100644 index 000000000..7db569122 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBody.java @@ -0,0 +1,442 @@ +package com.box.sdkgen.managers.users; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.trackingcode.TrackingCode; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateUserRequestBody extends SerializableObject { + + protected final String name; + + protected String login; + + @JsonProperty("is_platform_access_only") + protected Boolean isPlatformAccessOnly; + + @JsonDeserialize( + using = CreateUserRequestBodyRoleField.CreateUserRequestBodyRoleFieldDeserializer.class) + @JsonSerialize( + using = CreateUserRequestBodyRoleField.CreateUserRequestBodyRoleFieldSerializer.class) + protected EnumWrapper role; + + protected String language; + + @JsonProperty("is_sync_enabled") + protected Boolean isSyncEnabled; + + @JsonProperty("job_title") + protected String jobTitle; + + protected String phone; + + protected String address; + + @JsonProperty("space_amount") + protected Long spaceAmount; + + @JsonProperty("tracking_codes") + protected List trackingCodes; + + @JsonProperty("can_see_managed_users") + protected Boolean canSeeManagedUsers; + + protected String timezone; + + @JsonProperty("is_external_collab_restricted") + protected Boolean isExternalCollabRestricted; + + @JsonProperty("is_exempt_from_device_limits") + protected Boolean isExemptFromDeviceLimits; + + @JsonProperty("is_exempt_from_login_verification") + protected Boolean isExemptFromLoginVerification; + + @JsonDeserialize( + using = CreateUserRequestBodyStatusField.CreateUserRequestBodyStatusFieldDeserializer.class) + @JsonSerialize( + using = CreateUserRequestBodyStatusField.CreateUserRequestBodyStatusFieldSerializer.class) + protected EnumWrapper status; + + @JsonProperty("external_app_user_id") + protected String externalAppUserId; + + public CreateUserRequestBody(@JsonProperty("name") String name) { + super(); + this.name = name; + } + + protected CreateUserRequestBody(Builder builder) { + super(); + this.name = builder.name; + this.login = builder.login; + this.isPlatformAccessOnly = builder.isPlatformAccessOnly; + this.role = builder.role; + this.language = builder.language; + this.isSyncEnabled = builder.isSyncEnabled; + this.jobTitle = builder.jobTitle; + this.phone = builder.phone; + this.address = builder.address; + this.spaceAmount = builder.spaceAmount; + this.trackingCodes = builder.trackingCodes; + this.canSeeManagedUsers = builder.canSeeManagedUsers; + this.timezone = builder.timezone; + this.isExternalCollabRestricted = builder.isExternalCollabRestricted; + this.isExemptFromDeviceLimits = builder.isExemptFromDeviceLimits; + this.isExemptFromLoginVerification = builder.isExemptFromLoginVerification; + this.status = builder.status; + this.externalAppUserId = builder.externalAppUserId; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public String getLogin() { + return login; + } + + public Boolean getIsPlatformAccessOnly() { + return isPlatformAccessOnly; + } + + public EnumWrapper getRole() { + return role; + } + + public String getLanguage() { + return language; + } + + public Boolean getIsSyncEnabled() { + return isSyncEnabled; + } + + public String getJobTitle() { + return jobTitle; + } + + public String getPhone() { + return phone; + } + + public String getAddress() { + return address; + } + + public Long getSpaceAmount() { + return spaceAmount; + } + + public List getTrackingCodes() { + return trackingCodes; + } + + public Boolean getCanSeeManagedUsers() { + return canSeeManagedUsers; + } + + public String getTimezone() { + return timezone; + } + + public Boolean getIsExternalCollabRestricted() { + return isExternalCollabRestricted; + } + + public Boolean getIsExemptFromDeviceLimits() { + return isExemptFromDeviceLimits; + } + + public Boolean getIsExemptFromLoginVerification() { + return isExemptFromLoginVerification; + } + + public EnumWrapper getStatus() { + return status; + } + + public String getExternalAppUserId() { + return externalAppUserId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateUserRequestBody casted = (CreateUserRequestBody) o; + return Objects.equals(name, casted.name) + && Objects.equals(login, casted.login) + && Objects.equals(isPlatformAccessOnly, casted.isPlatformAccessOnly) + && Objects.equals(role, casted.role) + && Objects.equals(language, casted.language) + && Objects.equals(isSyncEnabled, casted.isSyncEnabled) + && Objects.equals(jobTitle, casted.jobTitle) + && Objects.equals(phone, casted.phone) + && Objects.equals(address, casted.address) + && Objects.equals(spaceAmount, casted.spaceAmount) + && Objects.equals(trackingCodes, casted.trackingCodes) + && Objects.equals(canSeeManagedUsers, casted.canSeeManagedUsers) + && Objects.equals(timezone, casted.timezone) + && Objects.equals(isExternalCollabRestricted, casted.isExternalCollabRestricted) + && Objects.equals(isExemptFromDeviceLimits, casted.isExemptFromDeviceLimits) + && Objects.equals(isExemptFromLoginVerification, casted.isExemptFromLoginVerification) + && Objects.equals(status, casted.status) + && Objects.equals(externalAppUserId, casted.externalAppUserId); + } + + @Override + public int hashCode() { + return Objects.hash( + name, + login, + isPlatformAccessOnly, + role, + language, + isSyncEnabled, + jobTitle, + phone, + address, + spaceAmount, + trackingCodes, + canSeeManagedUsers, + timezone, + isExternalCollabRestricted, + isExemptFromDeviceLimits, + isExemptFromLoginVerification, + status, + externalAppUserId); + } + + @Override + public String toString() { + return "CreateUserRequestBody{" + + "name='" + + name + + '\'' + + ", " + + "login='" + + login + + '\'' + + ", " + + "isPlatformAccessOnly='" + + isPlatformAccessOnly + + '\'' + + ", " + + "role='" + + role + + '\'' + + ", " + + "language='" + + language + + '\'' + + ", " + + "isSyncEnabled='" + + isSyncEnabled + + '\'' + + ", " + + "jobTitle='" + + jobTitle + + '\'' + + ", " + + "phone='" + + phone + + '\'' + + ", " + + "address='" + + address + + '\'' + + ", " + + "spaceAmount='" + + spaceAmount + + '\'' + + ", " + + "trackingCodes='" + + trackingCodes + + '\'' + + ", " + + "canSeeManagedUsers='" + + canSeeManagedUsers + + '\'' + + ", " + + "timezone='" + + timezone + + '\'' + + ", " + + "isExternalCollabRestricted='" + + isExternalCollabRestricted + + '\'' + + ", " + + "isExemptFromDeviceLimits='" + + isExemptFromDeviceLimits + + '\'' + + ", " + + "isExemptFromLoginVerification='" + + isExemptFromLoginVerification + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "externalAppUserId='" + + externalAppUserId + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String name; + + protected String login; + + protected Boolean isPlatformAccessOnly; + + protected EnumWrapper role; + + protected String language; + + protected Boolean isSyncEnabled; + + protected String jobTitle; + + protected String phone; + + protected String address; + + protected Long spaceAmount; + + protected List trackingCodes; + + protected Boolean canSeeManagedUsers; + + protected String timezone; + + protected Boolean isExternalCollabRestricted; + + protected Boolean isExemptFromDeviceLimits; + + protected Boolean isExemptFromLoginVerification; + + protected EnumWrapper status; + + protected String externalAppUserId; + + public Builder(String name) { + super(); + this.name = name; + } + + public Builder login(String login) { + this.login = login; + return this; + } + + public Builder isPlatformAccessOnly(Boolean isPlatformAccessOnly) { + this.isPlatformAccessOnly = isPlatformAccessOnly; + return this; + } + + public Builder role(CreateUserRequestBodyRoleField role) { + this.role = new EnumWrapper(role); + return this; + } + + public Builder role(EnumWrapper role) { + this.role = role; + return this; + } + + public Builder language(String language) { + this.language = language; + return this; + } + + public Builder isSyncEnabled(Boolean isSyncEnabled) { + this.isSyncEnabled = isSyncEnabled; + return this; + } + + public Builder jobTitle(String jobTitle) { + this.jobTitle = jobTitle; + return this; + } + + public Builder phone(String phone) { + this.phone = phone; + return this; + } + + public Builder address(String address) { + this.address = address; + return this; + } + + public Builder spaceAmount(Long spaceAmount) { + this.spaceAmount = spaceAmount; + return this; + } + + public Builder trackingCodes(List trackingCodes) { + this.trackingCodes = trackingCodes; + return this; + } + + public Builder canSeeManagedUsers(Boolean canSeeManagedUsers) { + this.canSeeManagedUsers = canSeeManagedUsers; + return this; + } + + public Builder timezone(String timezone) { + this.timezone = timezone; + return this; + } + + public Builder isExternalCollabRestricted(Boolean isExternalCollabRestricted) { + this.isExternalCollabRestricted = isExternalCollabRestricted; + return this; + } + + public Builder isExemptFromDeviceLimits(Boolean isExemptFromDeviceLimits) { + this.isExemptFromDeviceLimits = isExemptFromDeviceLimits; + return this; + } + + public Builder isExemptFromLoginVerification(Boolean isExemptFromLoginVerification) { + this.isExemptFromLoginVerification = isExemptFromLoginVerification; + return this; + } + + public Builder status(CreateUserRequestBodyStatusField status) { + this.status = new EnumWrapper(status); + return this; + } + + public Builder status(EnumWrapper status) { + this.status = status; + return this; + } + + public Builder externalAppUserId(String externalAppUserId) { + this.externalAppUserId = externalAppUserId; + return this; + } + + public CreateUserRequestBody build() { + return new CreateUserRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBodyRoleField.java b/src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBodyRoleField.java new file mode 100644 index 000000000..3cee9f71c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBodyRoleField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.users; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateUserRequestBodyRoleField implements Valuable { + COADMIN("coadmin"), + USER("user"); + + private final String value; + + CreateUserRequestBodyRoleField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateUserRequestBodyRoleFieldDeserializer + extends JsonDeserializer> { + + public CreateUserRequestBodyRoleFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateUserRequestBodyRoleField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateUserRequestBodyRoleFieldSerializer + extends JsonSerializer> { + + public CreateUserRequestBodyRoleFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBodyStatusField.java b/src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBodyStatusField.java new file mode 100644 index 000000000..6e4f4c129 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBodyStatusField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.managers.users; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateUserRequestBodyStatusField implements Valuable { + ACTIVE("active"), + INACTIVE("inactive"), + CANNOT_DELETE_EDIT("cannot_delete_edit"), + CANNOT_DELETE_EDIT_UPLOAD("cannot_delete_edit_upload"); + + private final String value; + + CreateUserRequestBodyStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateUserRequestBodyStatusFieldDeserializer + extends JsonDeserializer> { + + public CreateUserRequestBodyStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateUserRequestBodyStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateUserRequestBodyStatusFieldSerializer + extends JsonSerializer> { + + public CreateUserRequestBodyStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdHeaders.java new file mode 100644 index 000000000..480498aa5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.users; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteUserByIdHeaders { + + public Map extraHeaders; + + public DeleteUserByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteUserByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteUserByIdHeaders build() { + return new DeleteUserByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdQueryParams.java new file mode 100644 index 000000000..6e5d7e702 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdQueryParams.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.users; + +public class DeleteUserByIdQueryParams { + + public Boolean notify; + + public Boolean force; + + public DeleteUserByIdQueryParams() {} + + protected DeleteUserByIdQueryParams(Builder builder) { + this.notify = builder.notify; + this.force = builder.force; + } + + public Boolean getNotify() { + return notify; + } + + public Boolean getForce() { + return force; + } + + public static class Builder { + + protected Boolean notify; + + protected Boolean force; + + public Builder notify(Boolean notify) { + this.notify = notify; + return this; + } + + public Builder force(Boolean force) { + this.force = force; + return this; + } + + public DeleteUserByIdQueryParams build() { + return new DeleteUserByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/users/GetUserByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/users/GetUserByIdHeaders.java new file mode 100644 index 000000000..e4fc80ba8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/users/GetUserByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.users; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetUserByIdHeaders { + + public Map extraHeaders; + + public GetUserByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetUserByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetUserByIdHeaders build() { + return new GetUserByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/users/GetUserByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/users/GetUserByIdQueryParams.java new file mode 100644 index 000000000..95d010eef --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/users/GetUserByIdQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.users; + +import java.util.List; + +public class GetUserByIdQueryParams { + + public List fields; + + public GetUserByIdQueryParams() {} + + protected GetUserByIdQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public GetUserByIdQueryParams build() { + return new GetUserByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/users/GetUserMeHeaders.java b/src/main/java/com/box/sdkgen/managers/users/GetUserMeHeaders.java new file mode 100644 index 000000000..08e0aa925 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/users/GetUserMeHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.users; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetUserMeHeaders { + + public Map extraHeaders; + + public GetUserMeHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetUserMeHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetUserMeHeaders build() { + return new GetUserMeHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/users/GetUserMeQueryParams.java b/src/main/java/com/box/sdkgen/managers/users/GetUserMeQueryParams.java new file mode 100644 index 000000000..dc9266af6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/users/GetUserMeQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.users; + +import java.util.List; + +public class GetUserMeQueryParams { + + public List fields; + + public GetUserMeQueryParams() {} + + protected GetUserMeQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public GetUserMeQueryParams build() { + return new GetUserMeQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/users/GetUsersHeaders.java b/src/main/java/com/box/sdkgen/managers/users/GetUsersHeaders.java new file mode 100644 index 000000000..944b40975 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/users/GetUsersHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.users; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetUsersHeaders { + + public Map extraHeaders; + + public GetUsersHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetUsersHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetUsersHeaders build() { + return new GetUsersHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/users/GetUsersQueryParams.java b/src/main/java/com/box/sdkgen/managers/users/GetUsersQueryParams.java new file mode 100644 index 000000000..8684398db --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/users/GetUsersQueryParams.java @@ -0,0 +1,136 @@ +package com.box.sdkgen.managers.users; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.List; + +public class GetUsersQueryParams { + + public String filterTerm; + + public EnumWrapper userType; + + public String externalAppUserId; + + public List fields; + + public Long offset; + + public Long limit; + + public Boolean usemarker; + + public String marker; + + public GetUsersQueryParams() {} + + protected GetUsersQueryParams(Builder builder) { + this.filterTerm = builder.filterTerm; + this.userType = builder.userType; + this.externalAppUserId = builder.externalAppUserId; + this.fields = builder.fields; + this.offset = builder.offset; + this.limit = builder.limit; + this.usemarker = builder.usemarker; + this.marker = builder.marker; + } + + public String getFilterTerm() { + return filterTerm; + } + + public EnumWrapper getUserType() { + return userType; + } + + public String getExternalAppUserId() { + return externalAppUserId; + } + + public List getFields() { + return fields; + } + + public Long getOffset() { + return offset; + } + + public Long getLimit() { + return limit; + } + + public Boolean getUsemarker() { + return usemarker; + } + + public String getMarker() { + return marker; + } + + public static class Builder { + + protected String filterTerm; + + protected EnumWrapper userType; + + protected String externalAppUserId; + + protected List fields; + + protected Long offset; + + protected Long limit; + + protected Boolean usemarker; + + protected String marker; + + public Builder filterTerm(String filterTerm) { + this.filterTerm = filterTerm; + return this; + } + + public Builder userType(GetUsersQueryParamsUserTypeField userType) { + this.userType = new EnumWrapper(userType); + return this; + } + + public Builder userType(EnumWrapper userType) { + this.userType = userType; + return this; + } + + public Builder externalAppUserId(String externalAppUserId) { + this.externalAppUserId = externalAppUserId; + return this; + } + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder usemarker(Boolean usemarker) { + this.usemarker = usemarker; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public GetUsersQueryParams build() { + return new GetUsersQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/users/GetUsersQueryParamsUserTypeField.java b/src/main/java/com/box/sdkgen/managers/users/GetUsersQueryParamsUserTypeField.java new file mode 100644 index 000000000..2da1d6b5e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/users/GetUsersQueryParamsUserTypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.users; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetUsersQueryParamsUserTypeField implements Valuable { + ALL("all"), + MANAGED("managed"), + EXTERNAL("external"); + + private final String value; + + GetUsersQueryParamsUserTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetUsersQueryParamsUserTypeFieldDeserializer + extends JsonDeserializer> { + + public GetUsersQueryParamsUserTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetUsersQueryParamsUserTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetUsersQueryParamsUserTypeFieldSerializer + extends JsonSerializer> { + + public GetUsersQueryParamsUserTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdHeaders.java new file mode 100644 index 000000000..09660fdee --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.users; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateUserByIdHeaders { + + public Map extraHeaders; + + public UpdateUserByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateUserByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateUserByIdHeaders build() { + return new UpdateUserByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdQueryParams.java new file mode 100644 index 000000000..af6df41a6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdQueryParams.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.managers.users; + +import java.util.List; + +public class UpdateUserByIdQueryParams { + + public List fields; + + public UpdateUserByIdQueryParams() {} + + protected UpdateUserByIdQueryParams(Builder builder) { + this.fields = builder.fields; + } + + public List getFields() { + return fields; + } + + public static class Builder { + + protected List fields; + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public UpdateUserByIdQueryParams build() { + return new UpdateUserByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBody.java new file mode 100644 index 000000000..e7f0f606c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBody.java @@ -0,0 +1,511 @@ +package com.box.sdkgen.managers.users; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.trackingcode.TrackingCode; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateUserByIdRequestBody extends SerializableObject { + + @Nullable protected String enterprise; + + protected Boolean notify; + + protected String name; + + protected String login; + + @JsonDeserialize( + using = + UpdateUserByIdRequestBodyRoleField.UpdateUserByIdRequestBodyRoleFieldDeserializer.class) + @JsonSerialize( + using = UpdateUserByIdRequestBodyRoleField.UpdateUserByIdRequestBodyRoleFieldSerializer.class) + protected EnumWrapper role; + + protected String language; + + @JsonProperty("is_sync_enabled") + protected Boolean isSyncEnabled; + + @JsonProperty("job_title") + protected String jobTitle; + + protected String phone; + + protected String address; + + @JsonProperty("tracking_codes") + protected List trackingCodes; + + @JsonProperty("can_see_managed_users") + protected Boolean canSeeManagedUsers; + + protected String timezone; + + @JsonProperty("is_external_collab_restricted") + protected Boolean isExternalCollabRestricted; + + @JsonProperty("is_exempt_from_device_limits") + protected Boolean isExemptFromDeviceLimits; + + @JsonProperty("is_exempt_from_login_verification") + protected Boolean isExemptFromLoginVerification; + + @JsonProperty("is_password_reset_required") + protected Boolean isPasswordResetRequired; + + @JsonDeserialize( + using = + UpdateUserByIdRequestBodyStatusField.UpdateUserByIdRequestBodyStatusFieldDeserializer + .class) + @JsonSerialize( + using = + UpdateUserByIdRequestBodyStatusField.UpdateUserByIdRequestBodyStatusFieldSerializer.class) + protected EnumWrapper status; + + @JsonProperty("space_amount") + protected Long spaceAmount; + + @JsonProperty("notification_email") + @Nullable + protected UpdateUserByIdRequestBodyNotificationEmailField notificationEmail; + + @JsonProperty("external_app_user_id") + protected String externalAppUserId; + + public UpdateUserByIdRequestBody() { + super(); + } + + protected UpdateUserByIdRequestBody(Builder builder) { + super(); + this.enterprise = builder.enterprise; + this.notify = builder.notify; + this.name = builder.name; + this.login = builder.login; + this.role = builder.role; + this.language = builder.language; + this.isSyncEnabled = builder.isSyncEnabled; + this.jobTitle = builder.jobTitle; + this.phone = builder.phone; + this.address = builder.address; + this.trackingCodes = builder.trackingCodes; + this.canSeeManagedUsers = builder.canSeeManagedUsers; + this.timezone = builder.timezone; + this.isExternalCollabRestricted = builder.isExternalCollabRestricted; + this.isExemptFromDeviceLimits = builder.isExemptFromDeviceLimits; + this.isExemptFromLoginVerification = builder.isExemptFromLoginVerification; + this.isPasswordResetRequired = builder.isPasswordResetRequired; + this.status = builder.status; + this.spaceAmount = builder.spaceAmount; + this.notificationEmail = builder.notificationEmail; + this.externalAppUserId = builder.externalAppUserId; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getEnterprise() { + return enterprise; + } + + public Boolean getNotify() { + return notify; + } + + public String getName() { + return name; + } + + public String getLogin() { + return login; + } + + public EnumWrapper getRole() { + return role; + } + + public String getLanguage() { + return language; + } + + public Boolean getIsSyncEnabled() { + return isSyncEnabled; + } + + public String getJobTitle() { + return jobTitle; + } + + public String getPhone() { + return phone; + } + + public String getAddress() { + return address; + } + + public List getTrackingCodes() { + return trackingCodes; + } + + public Boolean getCanSeeManagedUsers() { + return canSeeManagedUsers; + } + + public String getTimezone() { + return timezone; + } + + public Boolean getIsExternalCollabRestricted() { + return isExternalCollabRestricted; + } + + public Boolean getIsExemptFromDeviceLimits() { + return isExemptFromDeviceLimits; + } + + public Boolean getIsExemptFromLoginVerification() { + return isExemptFromLoginVerification; + } + + public Boolean getIsPasswordResetRequired() { + return isPasswordResetRequired; + } + + public EnumWrapper getStatus() { + return status; + } + + public Long getSpaceAmount() { + return spaceAmount; + } + + public UpdateUserByIdRequestBodyNotificationEmailField getNotificationEmail() { + return notificationEmail; + } + + public String getExternalAppUserId() { + return externalAppUserId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateUserByIdRequestBody casted = (UpdateUserByIdRequestBody) o; + return Objects.equals(enterprise, casted.enterprise) + && Objects.equals(notify, casted.notify) + && Objects.equals(name, casted.name) + && Objects.equals(login, casted.login) + && Objects.equals(role, casted.role) + && Objects.equals(language, casted.language) + && Objects.equals(isSyncEnabled, casted.isSyncEnabled) + && Objects.equals(jobTitle, casted.jobTitle) + && Objects.equals(phone, casted.phone) + && Objects.equals(address, casted.address) + && Objects.equals(trackingCodes, casted.trackingCodes) + && Objects.equals(canSeeManagedUsers, casted.canSeeManagedUsers) + && Objects.equals(timezone, casted.timezone) + && Objects.equals(isExternalCollabRestricted, casted.isExternalCollabRestricted) + && Objects.equals(isExemptFromDeviceLimits, casted.isExemptFromDeviceLimits) + && Objects.equals(isExemptFromLoginVerification, casted.isExemptFromLoginVerification) + && Objects.equals(isPasswordResetRequired, casted.isPasswordResetRequired) + && Objects.equals(status, casted.status) + && Objects.equals(spaceAmount, casted.spaceAmount) + && Objects.equals(notificationEmail, casted.notificationEmail) + && Objects.equals(externalAppUserId, casted.externalAppUserId); + } + + @Override + public int hashCode() { + return Objects.hash( + enterprise, + notify, + name, + login, + role, + language, + isSyncEnabled, + jobTitle, + phone, + address, + trackingCodes, + canSeeManagedUsers, + timezone, + isExternalCollabRestricted, + isExemptFromDeviceLimits, + isExemptFromLoginVerification, + isPasswordResetRequired, + status, + spaceAmount, + notificationEmail, + externalAppUserId); + } + + @Override + public String toString() { + return "UpdateUserByIdRequestBody{" + + "enterprise='" + + enterprise + + '\'' + + ", " + + "notify='" + + notify + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "login='" + + login + + '\'' + + ", " + + "role='" + + role + + '\'' + + ", " + + "language='" + + language + + '\'' + + ", " + + "isSyncEnabled='" + + isSyncEnabled + + '\'' + + ", " + + "jobTitle='" + + jobTitle + + '\'' + + ", " + + "phone='" + + phone + + '\'' + + ", " + + "address='" + + address + + '\'' + + ", " + + "trackingCodes='" + + trackingCodes + + '\'' + + ", " + + "canSeeManagedUsers='" + + canSeeManagedUsers + + '\'' + + ", " + + "timezone='" + + timezone + + '\'' + + ", " + + "isExternalCollabRestricted='" + + isExternalCollabRestricted + + '\'' + + ", " + + "isExemptFromDeviceLimits='" + + isExemptFromDeviceLimits + + '\'' + + ", " + + "isExemptFromLoginVerification='" + + isExemptFromLoginVerification + + '\'' + + ", " + + "isPasswordResetRequired='" + + isPasswordResetRequired + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "spaceAmount='" + + spaceAmount + + '\'' + + ", " + + "notificationEmail='" + + notificationEmail + + '\'' + + ", " + + "externalAppUserId='" + + externalAppUserId + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String enterprise; + + protected Boolean notify; + + protected String name; + + protected String login; + + protected EnumWrapper role; + + protected String language; + + protected Boolean isSyncEnabled; + + protected String jobTitle; + + protected String phone; + + protected String address; + + protected List trackingCodes; + + protected Boolean canSeeManagedUsers; + + protected String timezone; + + protected Boolean isExternalCollabRestricted; + + protected Boolean isExemptFromDeviceLimits; + + protected Boolean isExemptFromLoginVerification; + + protected Boolean isPasswordResetRequired; + + protected EnumWrapper status; + + protected Long spaceAmount; + + protected UpdateUserByIdRequestBodyNotificationEmailField notificationEmail; + + protected String externalAppUserId; + + public Builder enterprise(String enterprise) { + this.enterprise = enterprise; + this.markNullableFieldAsSet("enterprise"); + return this; + } + + public Builder notify(Boolean notify) { + this.notify = notify; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder login(String login) { + this.login = login; + return this; + } + + public Builder role(UpdateUserByIdRequestBodyRoleField role) { + this.role = new EnumWrapper(role); + return this; + } + + public Builder role(EnumWrapper role) { + this.role = role; + return this; + } + + public Builder language(String language) { + this.language = language; + return this; + } + + public Builder isSyncEnabled(Boolean isSyncEnabled) { + this.isSyncEnabled = isSyncEnabled; + return this; + } + + public Builder jobTitle(String jobTitle) { + this.jobTitle = jobTitle; + return this; + } + + public Builder phone(String phone) { + this.phone = phone; + return this; + } + + public Builder address(String address) { + this.address = address; + return this; + } + + public Builder trackingCodes(List trackingCodes) { + this.trackingCodes = trackingCodes; + return this; + } + + public Builder canSeeManagedUsers(Boolean canSeeManagedUsers) { + this.canSeeManagedUsers = canSeeManagedUsers; + return this; + } + + public Builder timezone(String timezone) { + this.timezone = timezone; + return this; + } + + public Builder isExternalCollabRestricted(Boolean isExternalCollabRestricted) { + this.isExternalCollabRestricted = isExternalCollabRestricted; + return this; + } + + public Builder isExemptFromDeviceLimits(Boolean isExemptFromDeviceLimits) { + this.isExemptFromDeviceLimits = isExemptFromDeviceLimits; + return this; + } + + public Builder isExemptFromLoginVerification(Boolean isExemptFromLoginVerification) { + this.isExemptFromLoginVerification = isExemptFromLoginVerification; + return this; + } + + public Builder isPasswordResetRequired(Boolean isPasswordResetRequired) { + this.isPasswordResetRequired = isPasswordResetRequired; + return this; + } + + public Builder status(UpdateUserByIdRequestBodyStatusField status) { + this.status = new EnumWrapper(status); + return this; + } + + public Builder status(EnumWrapper status) { + this.status = status; + return this; + } + + public Builder spaceAmount(Long spaceAmount) { + this.spaceAmount = spaceAmount; + return this; + } + + public Builder notificationEmail( + UpdateUserByIdRequestBodyNotificationEmailField notificationEmail) { + this.notificationEmail = notificationEmail; + this.markNullableFieldAsSet("notification_email"); + return this; + } + + public Builder externalAppUserId(String externalAppUserId) { + this.externalAppUserId = externalAppUserId; + return this; + } + + public UpdateUserByIdRequestBody build() { + return new UpdateUserByIdRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBodyNotificationEmailField.java b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBodyNotificationEmailField.java new file mode 100644 index 000000000..733c32514 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBodyNotificationEmailField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.users; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateUserByIdRequestBodyNotificationEmailField extends SerializableObject { + + protected String email; + + public UpdateUserByIdRequestBodyNotificationEmailField() { + super(); + } + + protected UpdateUserByIdRequestBodyNotificationEmailField(Builder builder) { + super(); + this.email = builder.email; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getEmail() { + return email; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateUserByIdRequestBodyNotificationEmailField casted = + (UpdateUserByIdRequestBodyNotificationEmailField) o; + return Objects.equals(email, casted.email); + } + + @Override + public int hashCode() { + return Objects.hash(email); + } + + @Override + public String toString() { + return "UpdateUserByIdRequestBodyNotificationEmailField{" + "email='" + email + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String email; + + public Builder email(String email) { + this.email = email; + return this; + } + + public UpdateUserByIdRequestBodyNotificationEmailField build() { + return new UpdateUserByIdRequestBodyNotificationEmailField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBodyRoleField.java b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBodyRoleField.java new file mode 100644 index 000000000..1f8fceea2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBodyRoleField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.users; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateUserByIdRequestBodyRoleField implements Valuable { + COADMIN("coadmin"), + USER("user"); + + private final String value; + + UpdateUserByIdRequestBodyRoleField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateUserByIdRequestBodyRoleFieldDeserializer + extends JsonDeserializer> { + + public UpdateUserByIdRequestBodyRoleFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateUserByIdRequestBodyRoleField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateUserByIdRequestBodyRoleFieldSerializer + extends JsonSerializer> { + + public UpdateUserByIdRequestBodyRoleFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBodyStatusField.java b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBodyStatusField.java new file mode 100644 index 000000000..65dac434c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBodyStatusField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.managers.users; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateUserByIdRequestBodyStatusField implements Valuable { + ACTIVE("active"), + INACTIVE("inactive"), + CANNOT_DELETE_EDIT("cannot_delete_edit"), + CANNOT_DELETE_EDIT_UPLOAD("cannot_delete_edit_upload"); + + private final String value; + + UpdateUserByIdRequestBodyStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateUserByIdRequestBodyStatusFieldDeserializer + extends JsonDeserializer> { + + public UpdateUserByIdRequestBodyStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateUserByIdRequestBodyStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateUserByIdRequestBodyStatusFieldSerializer + extends JsonSerializer> { + + public UpdateUserByIdRequestBodyStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/users/UsersManager.java b/src/main/java/com/box/sdkgen/managers/users/UsersManager.java new file mode 100644 index 000000000..ffb53782c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/users/UsersManager.java @@ -0,0 +1,324 @@ +package com.box.sdkgen.managers.users; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.userfull.UserFull; +import com.box.sdkgen.schemas.users.Users; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class UsersManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public UsersManager() { + this.networkSession = new NetworkSession(); + } + + protected UsersManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public Users getUsers() { + return getUsers(new GetUsersQueryParams(), new GetUsersHeaders()); + } + + public Users getUsers(GetUsersQueryParams queryParams) { + return getUsers(queryParams, new GetUsersHeaders()); + } + + public Users getUsers(GetUsersHeaders headers) { + return getUsers(new GetUsersQueryParams(), headers); + } + + public Users getUsers(GetUsersQueryParams queryParams, GetUsersHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("filter_term", convertToString(queryParams.getFilterTerm())), + entryOf("user_type", convertToString(queryParams.getUserType())), + entryOf( + "external_app_user_id", convertToString(queryParams.getExternalAppUserId())), + entryOf("fields", convertToString(queryParams.getFields())), + entryOf("offset", convertToString(queryParams.getOffset())), + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf("usemarker", convertToString(queryParams.getUsemarker())), + entryOf("marker", convertToString(queryParams.getMarker())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/users"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Users.class); + } + + public UserFull createUser(CreateUserRequestBody requestBody) { + return createUser(requestBody, new CreateUserQueryParams(), new CreateUserHeaders()); + } + + public UserFull createUser(CreateUserRequestBody requestBody, CreateUserQueryParams queryParams) { + return createUser(requestBody, queryParams, new CreateUserHeaders()); + } + + public UserFull createUser(CreateUserRequestBody requestBody, CreateUserHeaders headers) { + return createUser(requestBody, new CreateUserQueryParams(), headers); + } + + public UserFull createUser( + CreateUserRequestBody requestBody, + CreateUserQueryParams queryParams, + CreateUserHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/users"), + "POST") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), UserFull.class); + } + + public UserFull getUserMe() { + return getUserMe(new GetUserMeQueryParams(), new GetUserMeHeaders()); + } + + public UserFull getUserMe(GetUserMeQueryParams queryParams) { + return getUserMe(queryParams, new GetUserMeHeaders()); + } + + public UserFull getUserMe(GetUserMeHeaders headers) { + return getUserMe(new GetUserMeQueryParams(), headers); + } + + public UserFull getUserMe(GetUserMeQueryParams queryParams, GetUserMeHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/users/me"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), UserFull.class); + } + + public UserFull getUserById(String userId) { + return getUserById(userId, new GetUserByIdQueryParams(), new GetUserByIdHeaders()); + } + + public UserFull getUserById(String userId, GetUserByIdQueryParams queryParams) { + return getUserById(userId, queryParams, new GetUserByIdHeaders()); + } + + public UserFull getUserById(String userId, GetUserByIdHeaders headers) { + return getUserById(userId, new GetUserByIdQueryParams(), headers); + } + + public UserFull getUserById( + String userId, GetUserByIdQueryParams queryParams, GetUserByIdHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/users/", + convertToString(userId)), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), UserFull.class); + } + + public UserFull updateUserById(String userId) { + return updateUserById( + userId, + new UpdateUserByIdRequestBody(), + new UpdateUserByIdQueryParams(), + new UpdateUserByIdHeaders()); + } + + public UserFull updateUserById(String userId, UpdateUserByIdRequestBody requestBody) { + return updateUserById( + userId, requestBody, new UpdateUserByIdQueryParams(), new UpdateUserByIdHeaders()); + } + + public UserFull updateUserById(String userId, UpdateUserByIdQueryParams queryParams) { + return updateUserById( + userId, new UpdateUserByIdRequestBody(), queryParams, new UpdateUserByIdHeaders()); + } + + public UserFull updateUserById( + String userId, UpdateUserByIdRequestBody requestBody, UpdateUserByIdQueryParams queryParams) { + return updateUserById(userId, requestBody, queryParams, new UpdateUserByIdHeaders()); + } + + public UserFull updateUserById(String userId, UpdateUserByIdHeaders headers) { + return updateUserById( + userId, new UpdateUserByIdRequestBody(), new UpdateUserByIdQueryParams(), headers); + } + + public UserFull updateUserById( + String userId, UpdateUserByIdRequestBody requestBody, UpdateUserByIdHeaders headers) { + return updateUserById(userId, requestBody, new UpdateUserByIdQueryParams(), headers); + } + + public UserFull updateUserById( + String userId, UpdateUserByIdQueryParams queryParams, UpdateUserByIdHeaders headers) { + return updateUserById(userId, new UpdateUserByIdRequestBody(), queryParams, headers); + } + + public UserFull updateUserById( + String userId, + UpdateUserByIdRequestBody requestBody, + UpdateUserByIdQueryParams queryParams, + UpdateUserByIdHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/users/", + convertToString(userId)), + "PUT") + .params(queryParamsMap) + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), UserFull.class); + } + + public void deleteUserById(String userId) { + deleteUserById(userId, new DeleteUserByIdQueryParams(), new DeleteUserByIdHeaders()); + } + + public void deleteUserById(String userId, DeleteUserByIdQueryParams queryParams) { + deleteUserById(userId, queryParams, new DeleteUserByIdHeaders()); + } + + public void deleteUserById(String userId, DeleteUserByIdHeaders headers) { + deleteUserById(userId, new DeleteUserByIdQueryParams(), headers); + } + + public void deleteUserById( + String userId, DeleteUserByIdQueryParams queryParams, DeleteUserByIdHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("notify", convertToString(queryParams.getNotify())), + entryOf("force", convertToString(queryParams.getForce())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/users/", + convertToString(userId)), + "DELETE") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public UsersManager build() { + return new UsersManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookHeaders.java b/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookHeaders.java new file mode 100644 index 000000000..5ad926cc3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.webhooks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateWebhookHeaders { + + public Map extraHeaders; + + public CreateWebhookHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateWebhookHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateWebhookHeaders build() { + return new CreateWebhookHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBody.java b/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBody.java new file mode 100644 index 000000000..ecb6193ef --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBody.java @@ -0,0 +1,145 @@ +package com.box.sdkgen.managers.webhooks; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateWebhookRequestBody extends SerializableObject { + + protected final CreateWebhookRequestBodyTargetField target; + + protected final String address; + + @JsonDeserialize(using = TriggersDeserializer.class) + @JsonSerialize(using = TriggersSerializer.class) + protected final List> triggers; + + public CreateWebhookRequestBody( + @JsonProperty("target") CreateWebhookRequestBodyTargetField target, + @JsonProperty("address") String address, + @JsonProperty("triggers") List triggers) { + super(); + this.target = target; + this.address = address; + this.triggers = + EnumWrapper.wrapValuableEnumList(triggers, CreateWebhookRequestBodyTriggersField.class); + } + + public CreateWebhookRequestBodyTargetField getTarget() { + return target; + } + + public String getAddress() { + return address; + } + + public List> getTriggers() { + return triggers; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateWebhookRequestBody casted = (CreateWebhookRequestBody) o; + return Objects.equals(target, casted.target) + && Objects.equals(address, casted.address) + && Objects.equals(triggers, casted.triggers); + } + + @Override + public int hashCode() { + return Objects.hash(target, address, triggers); + } + + @Override + public String toString() { + return "CreateWebhookRequestBody{" + + "target='" + + target + + '\'' + + ", " + + "address='" + + address + + '\'' + + ", " + + "triggers='" + + triggers + + '\'' + + "}"; + } + + public static class TriggersDeserializer + extends JsonDeserializer>> { + + public final JsonDeserializer> + elementDeserializer; + + public TriggersDeserializer() { + super(); + this.elementDeserializer = + new CreateWebhookRequestBodyTriggersField + .CreateWebhookRequestBodyTriggersFieldDeserializer(); + } + + @Override + public List> deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + JsonNode node = p.getCodec().readTree(p); + List> elements = new ArrayList<>(); + for (JsonNode item : node) { + JsonParser pa = item.traverse(p.getCodec()); + pa.nextToken(); + elements.add(elementDeserializer.deserialize(pa, ctxt)); + } + return elements; + } + } + + public static class TriggersSerializer + extends JsonSerializer>> { + + public final JsonSerializer> + elementSerializer; + + public TriggersSerializer() { + super(); + this.elementSerializer = + new CreateWebhookRequestBodyTriggersField + .CreateWebhookRequestBodyTriggersFieldSerializer(); + } + + @Override + public void serialize( + List> value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeStartArray(); + for (EnumWrapper item : value) { + elementSerializer.serialize(item, gen, serializers); + } + gen.writeEndArray(); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTargetField.java b/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTargetField.java new file mode 100644 index 000000000..2579f29ae --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTargetField.java @@ -0,0 +1,100 @@ +package com.box.sdkgen.managers.webhooks; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateWebhookRequestBodyTargetField extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = + CreateWebhookRequestBodyTargetTypeField + .CreateWebhookRequestBodyTargetTypeFieldDeserializer.class) + @JsonSerialize( + using = + CreateWebhookRequestBodyTargetTypeField.CreateWebhookRequestBodyTargetTypeFieldSerializer + .class) + protected EnumWrapper type; + + public CreateWebhookRequestBodyTargetField() { + super(); + } + + protected CreateWebhookRequestBodyTargetField(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateWebhookRequestBodyTargetField casted = (CreateWebhookRequestBodyTargetField) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "CreateWebhookRequestBodyTargetField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(CreateWebhookRequestBodyTargetTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public CreateWebhookRequestBodyTargetField build() { + return new CreateWebhookRequestBodyTargetField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTargetTypeField.java b/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTargetTypeField.java new file mode 100644 index 000000000..cc5e4a8a9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTargetTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.webhooks; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateWebhookRequestBodyTargetTypeField implements Valuable { + FILE("file"), + FOLDER("folder"); + + private final String value; + + CreateWebhookRequestBodyTargetTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateWebhookRequestBodyTargetTypeFieldDeserializer + extends JsonDeserializer> { + + public CreateWebhookRequestBodyTargetTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateWebhookRequestBodyTargetTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateWebhookRequestBodyTargetTypeFieldSerializer + extends JsonSerializer> { + + public CreateWebhookRequestBodyTargetTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTriggersField.java b/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTriggersField.java new file mode 100644 index 000000000..dff89a4dd --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTriggersField.java @@ -0,0 +1,101 @@ +package com.box.sdkgen.managers.webhooks; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateWebhookRequestBodyTriggersField implements Valuable { + FILE_UPLOADED("FILE.UPLOADED"), + FILE_PREVIEWED("FILE.PREVIEWED"), + FILE_DOWNLOADED("FILE.DOWNLOADED"), + FILE_TRASHED("FILE.TRASHED"), + FILE_DELETED("FILE.DELETED"), + FILE_RESTORED("FILE.RESTORED"), + FILE_COPIED("FILE.COPIED"), + FILE_MOVED("FILE.MOVED"), + FILE_LOCKED("FILE.LOCKED"), + FILE_UNLOCKED("FILE.UNLOCKED"), + FILE_RENAMED("FILE.RENAMED"), + COMMENT_CREATED("COMMENT.CREATED"), + COMMENT_UPDATED("COMMENT.UPDATED"), + COMMENT_DELETED("COMMENT.DELETED"), + TASK_ASSIGNMENT_CREATED("TASK_ASSIGNMENT.CREATED"), + TASK_ASSIGNMENT_UPDATED("TASK_ASSIGNMENT.UPDATED"), + METADATA_INSTANCE_CREATED("METADATA_INSTANCE.CREATED"), + METADATA_INSTANCE_UPDATED("METADATA_INSTANCE.UPDATED"), + METADATA_INSTANCE_DELETED("METADATA_INSTANCE.DELETED"), + FOLDER_CREATED("FOLDER.CREATED"), + FOLDER_RENAMED("FOLDER.RENAMED"), + FOLDER_DOWNLOADED("FOLDER.DOWNLOADED"), + FOLDER_RESTORED("FOLDER.RESTORED"), + FOLDER_DELETED("FOLDER.DELETED"), + FOLDER_COPIED("FOLDER.COPIED"), + FOLDER_MOVED("FOLDER.MOVED"), + FOLDER_TRASHED("FOLDER.TRASHED"), + WEBHOOK_DELETED("WEBHOOK.DELETED"), + COLLABORATION_CREATED("COLLABORATION.CREATED"), + COLLABORATION_ACCEPTED("COLLABORATION.ACCEPTED"), + COLLABORATION_REJECTED("COLLABORATION.REJECTED"), + COLLABORATION_REMOVED("COLLABORATION.REMOVED"), + COLLABORATION_UPDATED("COLLABORATION.UPDATED"), + SHARED_LINK_DELETED("SHARED_LINK.DELETED"), + SHARED_LINK_CREATED("SHARED_LINK.CREATED"), + SHARED_LINK_UPDATED("SHARED_LINK.UPDATED"), + SIGN_REQUEST_COMPLETED("SIGN_REQUEST.COMPLETED"), + SIGN_REQUEST_DECLINED("SIGN_REQUEST.DECLINED"), + SIGN_REQUEST_EXPIRED("SIGN_REQUEST.EXPIRED"), + SIGN_REQUEST_SIGNER_EMAIL_BOUNCED("SIGN_REQUEST.SIGNER_EMAIL_BOUNCED"); + + private final String value; + + CreateWebhookRequestBodyTriggersField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateWebhookRequestBodyTriggersFieldDeserializer + extends JsonDeserializer> { + + public CreateWebhookRequestBodyTriggersFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateWebhookRequestBodyTriggersField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateWebhookRequestBodyTriggersFieldSerializer + extends JsonSerializer> { + + public CreateWebhookRequestBodyTriggersFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/DeleteWebhookByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/webhooks/DeleteWebhookByIdHeaders.java new file mode 100644 index 000000000..697f1d572 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/webhooks/DeleteWebhookByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.webhooks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteWebhookByIdHeaders { + + public Map extraHeaders; + + public DeleteWebhookByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteWebhookByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteWebhookByIdHeaders build() { + return new DeleteWebhookByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhookByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhookByIdHeaders.java new file mode 100644 index 000000000..4d9f05362 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhookByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.webhooks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetWebhookByIdHeaders { + + public Map extraHeaders; + + public GetWebhookByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetWebhookByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetWebhookByIdHeaders build() { + return new GetWebhookByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhooksHeaders.java b/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhooksHeaders.java new file mode 100644 index 000000000..f7e3a11ef --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhooksHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.webhooks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetWebhooksHeaders { + + public Map extraHeaders; + + public GetWebhooksHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetWebhooksHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetWebhooksHeaders build() { + return new GetWebhooksHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhooksQueryParams.java b/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhooksQueryParams.java new file mode 100644 index 000000000..95b38dc5a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhooksQueryParams.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.webhooks; + +public class GetWebhooksQueryParams { + + public String marker; + + public Long limit; + + public GetWebhooksQueryParams() {} + + protected GetWebhooksQueryParams(Builder builder) { + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected String marker; + + protected Long limit; + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetWebhooksQueryParams build() { + return new GetWebhooksQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdHeaders.java new file mode 100644 index 000000000..2a2883371 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.webhooks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateWebhookByIdHeaders { + + public Map extraHeaders; + + public UpdateWebhookByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateWebhookByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateWebhookByIdHeaders build() { + return new UpdateWebhookByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBody.java new file mode 100644 index 000000000..f823c820c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBody.java @@ -0,0 +1,176 @@ +package com.box.sdkgen.managers.webhooks; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateWebhookByIdRequestBody extends SerializableObject { + + protected UpdateWebhookByIdRequestBodyTargetField target; + + protected String address; + + @JsonDeserialize(using = TriggersDeserializer.class) + @JsonSerialize(using = TriggersSerializer.class) + protected List> triggers; + + public UpdateWebhookByIdRequestBody() { + super(); + } + + protected UpdateWebhookByIdRequestBody(Builder builder) { + super(); + this.target = builder.target; + this.address = builder.address; + this.triggers = builder.triggers; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public UpdateWebhookByIdRequestBodyTargetField getTarget() { + return target; + } + + public String getAddress() { + return address; + } + + public List> getTriggers() { + return triggers; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateWebhookByIdRequestBody casted = (UpdateWebhookByIdRequestBody) o; + return Objects.equals(target, casted.target) + && Objects.equals(address, casted.address) + && Objects.equals(triggers, casted.triggers); + } + + @Override + public int hashCode() { + return Objects.hash(target, address, triggers); + } + + @Override + public String toString() { + return "UpdateWebhookByIdRequestBody{" + + "target='" + + target + + '\'' + + ", " + + "address='" + + address + + '\'' + + ", " + + "triggers='" + + triggers + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected UpdateWebhookByIdRequestBodyTargetField target; + + protected String address; + + protected List> triggers; + + public Builder target(UpdateWebhookByIdRequestBodyTargetField target) { + this.target = target; + return this; + } + + public Builder address(String address) { + this.address = address; + return this; + } + + public Builder triggers(List triggers) { + this.triggers = + EnumWrapper.wrapValuableEnumList( + triggers, UpdateWebhookByIdRequestBodyTriggersField.class); + return this; + } + + public UpdateWebhookByIdRequestBody build() { + return new UpdateWebhookByIdRequestBody(this); + } + } + + public static class TriggersDeserializer + extends JsonDeserializer>> { + + public final JsonDeserializer> + elementDeserializer; + + public TriggersDeserializer() { + super(); + this.elementDeserializer = + new UpdateWebhookByIdRequestBodyTriggersField + .UpdateWebhookByIdRequestBodyTriggersFieldDeserializer(); + } + + @Override + public List> deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + JsonNode node = p.getCodec().readTree(p); + List> elements = new ArrayList<>(); + for (JsonNode item : node) { + JsonParser pa = item.traverse(p.getCodec()); + pa.nextToken(); + elements.add(elementDeserializer.deserialize(pa, ctxt)); + } + return elements; + } + } + + public static class TriggersSerializer + extends JsonSerializer>> { + + public final JsonSerializer> + elementSerializer; + + public TriggersSerializer() { + super(); + this.elementSerializer = + new UpdateWebhookByIdRequestBodyTriggersField + .UpdateWebhookByIdRequestBodyTriggersFieldSerializer(); + } + + @Override + public void serialize( + List> value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeStartArray(); + for (EnumWrapper item : value) { + elementSerializer.serialize(item, gen, serializers); + } + gen.writeEndArray(); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTargetField.java b/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTargetField.java new file mode 100644 index 000000000..5f8d97f43 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTargetField.java @@ -0,0 +1,100 @@ +package com.box.sdkgen.managers.webhooks; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateWebhookByIdRequestBodyTargetField extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = + UpdateWebhookByIdRequestBodyTargetTypeField + .UpdateWebhookByIdRequestBodyTargetTypeFieldDeserializer.class) + @JsonSerialize( + using = + UpdateWebhookByIdRequestBodyTargetTypeField + .UpdateWebhookByIdRequestBodyTargetTypeFieldSerializer.class) + protected EnumWrapper type; + + public UpdateWebhookByIdRequestBodyTargetField() { + super(); + } + + protected UpdateWebhookByIdRequestBodyTargetField(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateWebhookByIdRequestBodyTargetField casted = (UpdateWebhookByIdRequestBodyTargetField) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "UpdateWebhookByIdRequestBodyTargetField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(UpdateWebhookByIdRequestBodyTargetTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public UpdateWebhookByIdRequestBodyTargetField build() { + return new UpdateWebhookByIdRequestBodyTargetField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTargetTypeField.java b/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTargetTypeField.java new file mode 100644 index 000000000..e6e0752ab --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTargetTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.webhooks; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateWebhookByIdRequestBodyTargetTypeField implements Valuable { + FILE("file"), + FOLDER("folder"); + + private final String value; + + UpdateWebhookByIdRequestBodyTargetTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateWebhookByIdRequestBodyTargetTypeFieldDeserializer + extends JsonDeserializer> { + + public UpdateWebhookByIdRequestBodyTargetTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateWebhookByIdRequestBodyTargetTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateWebhookByIdRequestBodyTargetTypeFieldSerializer + extends JsonSerializer> { + + public UpdateWebhookByIdRequestBodyTargetTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTriggersField.java b/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTriggersField.java new file mode 100644 index 000000000..7f8e6854d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTriggersField.java @@ -0,0 +1,101 @@ +package com.box.sdkgen.managers.webhooks; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateWebhookByIdRequestBodyTriggersField implements Valuable { + FILE_UPLOADED("FILE.UPLOADED"), + FILE_PREVIEWED("FILE.PREVIEWED"), + FILE_DOWNLOADED("FILE.DOWNLOADED"), + FILE_TRASHED("FILE.TRASHED"), + FILE_DELETED("FILE.DELETED"), + FILE_RESTORED("FILE.RESTORED"), + FILE_COPIED("FILE.COPIED"), + FILE_MOVED("FILE.MOVED"), + FILE_LOCKED("FILE.LOCKED"), + FILE_UNLOCKED("FILE.UNLOCKED"), + FILE_RENAMED("FILE.RENAMED"), + COMMENT_CREATED("COMMENT.CREATED"), + COMMENT_UPDATED("COMMENT.UPDATED"), + COMMENT_DELETED("COMMENT.DELETED"), + TASK_ASSIGNMENT_CREATED("TASK_ASSIGNMENT.CREATED"), + TASK_ASSIGNMENT_UPDATED("TASK_ASSIGNMENT.UPDATED"), + METADATA_INSTANCE_CREATED("METADATA_INSTANCE.CREATED"), + METADATA_INSTANCE_UPDATED("METADATA_INSTANCE.UPDATED"), + METADATA_INSTANCE_DELETED("METADATA_INSTANCE.DELETED"), + FOLDER_CREATED("FOLDER.CREATED"), + FOLDER_RENAMED("FOLDER.RENAMED"), + FOLDER_DOWNLOADED("FOLDER.DOWNLOADED"), + FOLDER_RESTORED("FOLDER.RESTORED"), + FOLDER_DELETED("FOLDER.DELETED"), + FOLDER_COPIED("FOLDER.COPIED"), + FOLDER_MOVED("FOLDER.MOVED"), + FOLDER_TRASHED("FOLDER.TRASHED"), + WEBHOOK_DELETED("WEBHOOK.DELETED"), + COLLABORATION_CREATED("COLLABORATION.CREATED"), + COLLABORATION_ACCEPTED("COLLABORATION.ACCEPTED"), + COLLABORATION_REJECTED("COLLABORATION.REJECTED"), + COLLABORATION_REMOVED("COLLABORATION.REMOVED"), + COLLABORATION_UPDATED("COLLABORATION.UPDATED"), + SHARED_LINK_DELETED("SHARED_LINK.DELETED"), + SHARED_LINK_CREATED("SHARED_LINK.CREATED"), + SHARED_LINK_UPDATED("SHARED_LINK.UPDATED"), + SIGN_REQUEST_COMPLETED("SIGN_REQUEST.COMPLETED"), + SIGN_REQUEST_DECLINED("SIGN_REQUEST.DECLINED"), + SIGN_REQUEST_EXPIRED("SIGN_REQUEST.EXPIRED"), + SIGN_REQUEST_SIGNER_EMAIL_BOUNCED("SIGN_REQUEST.SIGNER_EMAIL_BOUNCED"); + + private final String value; + + UpdateWebhookByIdRequestBodyTriggersField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateWebhookByIdRequestBodyTriggersFieldDeserializer + extends JsonDeserializer> { + + public UpdateWebhookByIdRequestBodyTriggersFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateWebhookByIdRequestBodyTriggersField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateWebhookByIdRequestBodyTriggersFieldSerializer + extends JsonSerializer> { + + public UpdateWebhookByIdRequestBodyTriggersFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/WebhooksManager.java b/src/main/java/com/box/sdkgen/managers/webhooks/WebhooksManager.java new file mode 100644 index 000000000..09bd96b73 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/webhooks/WebhooksManager.java @@ -0,0 +1,278 @@ +package com.box.sdkgen.managers.webhooks; + +import static com.box.sdkgen.internal.utils.UtilsManager.compareSignatures; +import static com.box.sdkgen.internal.utils.UtilsManager.computeWebhookSignature; +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.dateTimeFromString; +import static com.box.sdkgen.internal.utils.UtilsManager.dateTimeToEpochSeconds; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.getEpochTimeInSeconds; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.webhook.Webhook; +import com.box.sdkgen.schemas.webhooks.Webhooks; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Date; +import java.util.Map; + +public class WebhooksManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public WebhooksManager() { + this.networkSession = new NetworkSession(); + } + + protected WebhooksManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public Webhooks getWebhooks() { + return getWebhooks(new GetWebhooksQueryParams(), new GetWebhooksHeaders()); + } + + public Webhooks getWebhooks(GetWebhooksQueryParams queryParams) { + return getWebhooks(queryParams, new GetWebhooksHeaders()); + } + + public Webhooks getWebhooks(GetWebhooksHeaders headers) { + return getWebhooks(new GetWebhooksQueryParams(), headers); + } + + public Webhooks getWebhooks(GetWebhooksQueryParams queryParams, GetWebhooksHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/webhooks"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Webhooks.class); + } + + public Webhook createWebhook(CreateWebhookRequestBody requestBody) { + return createWebhook(requestBody, new CreateWebhookHeaders()); + } + + public Webhook createWebhook(CreateWebhookRequestBody requestBody, CreateWebhookHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/webhooks"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Webhook.class); + } + + public Webhook getWebhookById(String webhookId) { + return getWebhookById(webhookId, new GetWebhookByIdHeaders()); + } + + public Webhook getWebhookById(String webhookId, GetWebhookByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/webhooks/", + convertToString(webhookId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Webhook.class); + } + + public Webhook updateWebhookById(String webhookId) { + return updateWebhookById( + webhookId, new UpdateWebhookByIdRequestBody(), new UpdateWebhookByIdHeaders()); + } + + public Webhook updateWebhookById(String webhookId, UpdateWebhookByIdRequestBody requestBody) { + return updateWebhookById(webhookId, requestBody, new UpdateWebhookByIdHeaders()); + } + + public Webhook updateWebhookById(String webhookId, UpdateWebhookByIdHeaders headers) { + return updateWebhookById(webhookId, new UpdateWebhookByIdRequestBody(), headers); + } + + public Webhook updateWebhookById( + String webhookId, + UpdateWebhookByIdRequestBody requestBody, + UpdateWebhookByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/webhooks/", + convertToString(webhookId)), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Webhook.class); + } + + public void deleteWebhookById(String webhookId) { + deleteWebhookById(webhookId, new DeleteWebhookByIdHeaders()); + } + + public void deleteWebhookById(String webhookId, DeleteWebhookByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/webhooks/", + convertToString(webhookId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public static boolean validateMessage( + String body, Map headers, String primaryKey) { + return validateMessage(body, headers, primaryKey, null, 600); + } + + public static boolean validateMessage( + String body, Map headers, String primaryKey, String secondaryKey) { + return validateMessage(body, headers, primaryKey, secondaryKey, 600); + } + + public static boolean validateMessage( + String body, Map headers, String primaryKey, Integer maxAge) { + return validateMessage(body, headers, primaryKey, null, maxAge); + } + + public static boolean validateMessage( + String body, + Map headers, + String primaryKey, + String secondaryKey, + Integer maxAge) { + Date deliveryTimestamp = dateTimeFromString(headers.get("box-delivery-timestamp")); + long currentEpoch = getEpochTimeInSeconds(); + if (currentEpoch - maxAge > dateTimeToEpochSeconds(deliveryTimestamp) + || dateTimeToEpochSeconds(deliveryTimestamp) > currentEpoch) { + return false; + } + if (!(primaryKey == null) + && !(headers.get("box-signature-primary") == null) + && compareSignatures( + computeWebhookSignature(body, headers, primaryKey, false), + headers.get("box-signature-primary"))) { + return true; + } + if (!(primaryKey == null) + && !(headers.get("box-signature-primary") == null) + && compareSignatures( + computeWebhookSignature(body, headers, primaryKey, true), + headers.get("box-signature-primary"))) { + return true; + } + if (!(secondaryKey == null) + && !(headers.get("box-signature-secondary") == null) + && compareSignatures( + computeWebhookSignature(body, headers, secondaryKey, false), + headers.get("box-signature-secondary"))) { + return true; + } + if (!(secondaryKey == null) + && !(headers.get("box-signature-secondary") == null) + && compareSignatures( + computeWebhookSignature(body, headers, secondaryKey, true), + headers.get("box-signature-secondary"))) { + return true; + } + return false; + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public WebhooksManager build() { + return new WebhooksManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkHeaders.java new file mode 100644 index 000000000..9a4a008b6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.weblinks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateWebLinkHeaders { + + public Map extraHeaders; + + public CreateWebLinkHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateWebLinkHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateWebLinkHeaders build() { + return new CreateWebLinkHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkRequestBody.java b/src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkRequestBody.java new file mode 100644 index 000000000..ab5520667 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkRequestBody.java @@ -0,0 +1,124 @@ +package com.box.sdkgen.managers.weblinks; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateWebLinkRequestBody extends SerializableObject { + + protected final String url; + + protected final CreateWebLinkRequestBodyParentField parent; + + protected String name; + + protected String description; + + public CreateWebLinkRequestBody( + @JsonProperty("url") String url, + @JsonProperty("parent") CreateWebLinkRequestBodyParentField parent) { + super(); + this.url = url; + this.parent = parent; + } + + protected CreateWebLinkRequestBody(Builder builder) { + super(); + this.url = builder.url; + this.parent = builder.parent; + this.name = builder.name; + this.description = builder.description; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getUrl() { + return url; + } + + public CreateWebLinkRequestBodyParentField getParent() { + return parent; + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateWebLinkRequestBody casted = (CreateWebLinkRequestBody) o; + return Objects.equals(url, casted.url) + && Objects.equals(parent, casted.parent) + && Objects.equals(name, casted.name) + && Objects.equals(description, casted.description); + } + + @Override + public int hashCode() { + return Objects.hash(url, parent, name, description); + } + + @Override + public String toString() { + return "CreateWebLinkRequestBody{" + + "url='" + + url + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "description='" + + description + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String url; + + protected final CreateWebLinkRequestBodyParentField parent; + + protected String name; + + protected String description; + + public Builder(String url, CreateWebLinkRequestBodyParentField parent) { + super(); + this.url = url; + this.parent = parent; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public CreateWebLinkRequestBody build() { + return new CreateWebLinkRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkRequestBodyParentField.java b/src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkRequestBodyParentField.java new file mode 100644 index 000000000..c05a1a2d7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkRequestBodyParentField.java @@ -0,0 +1,43 @@ +package com.box.sdkgen.managers.weblinks; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateWebLinkRequestBodyParentField extends SerializableObject { + + protected final String id; + + public CreateWebLinkRequestBodyParentField(@JsonProperty("id") String id) { + super(); + this.id = id; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateWebLinkRequestBodyParentField casted = (CreateWebLinkRequestBodyParentField) o; + return Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + return "CreateWebLinkRequestBodyParentField{" + "id='" + id + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/DeleteWebLinkByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/weblinks/DeleteWebLinkByIdHeaders.java new file mode 100644 index 000000000..47e824501 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/weblinks/DeleteWebLinkByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.weblinks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteWebLinkByIdHeaders { + + public Map extraHeaders; + + public DeleteWebLinkByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteWebLinkByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteWebLinkByIdHeaders build() { + return new DeleteWebLinkByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/GetWebLinkByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/weblinks/GetWebLinkByIdHeaders.java new file mode 100644 index 000000000..86c963d97 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/weblinks/GetWebLinkByIdHeaders.java @@ -0,0 +1,54 @@ +package com.box.sdkgen.managers.weblinks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetWebLinkByIdHeaders { + + public String boxapi; + + public Map extraHeaders; + + public GetWebLinkByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetWebLinkByIdHeaders(Builder builder) { + this.boxapi = builder.boxapi; + this.extraHeaders = builder.extraHeaders; + } + + public String getBoxapi() { + return boxapi; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected String boxapi; + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder boxapi(String boxapi) { + this.boxapi = boxapi; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetWebLinkByIdHeaders build() { + return new GetWebLinkByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdHeaders.java new file mode 100644 index 000000000..8627d2cda --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.weblinks; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateWebLinkByIdHeaders { + + public Map extraHeaders; + + public UpdateWebLinkByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateWebLinkByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateWebLinkByIdHeaders build() { + return new UpdateWebLinkByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBody.java new file mode 100644 index 000000000..82ffbc883 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBody.java @@ -0,0 +1,144 @@ +package com.box.sdkgen.managers.weblinks; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateWebLinkByIdRequestBody extends SerializableObject { + + protected String url; + + protected UpdateWebLinkByIdRequestBodyParentField parent; + + protected String name; + + protected String description; + + @JsonProperty("shared_link") + protected UpdateWebLinkByIdRequestBodySharedLinkField sharedLink; + + public UpdateWebLinkByIdRequestBody() { + super(); + } + + protected UpdateWebLinkByIdRequestBody(Builder builder) { + super(); + this.url = builder.url; + this.parent = builder.parent; + this.name = builder.name; + this.description = builder.description; + this.sharedLink = builder.sharedLink; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getUrl() { + return url; + } + + public UpdateWebLinkByIdRequestBodyParentField getParent() { + return parent; + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + public UpdateWebLinkByIdRequestBodySharedLinkField getSharedLink() { + return sharedLink; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateWebLinkByIdRequestBody casted = (UpdateWebLinkByIdRequestBody) o; + return Objects.equals(url, casted.url) + && Objects.equals(parent, casted.parent) + && Objects.equals(name, casted.name) + && Objects.equals(description, casted.description) + && Objects.equals(sharedLink, casted.sharedLink); + } + + @Override + public int hashCode() { + return Objects.hash(url, parent, name, description, sharedLink); + } + + @Override + public String toString() { + return "UpdateWebLinkByIdRequestBody{" + + "url='" + + url + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "sharedLink='" + + sharedLink + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String url; + + protected UpdateWebLinkByIdRequestBodyParentField parent; + + protected String name; + + protected String description; + + protected UpdateWebLinkByIdRequestBodySharedLinkField sharedLink; + + public Builder url(String url) { + this.url = url; + return this; + } + + public Builder parent(UpdateWebLinkByIdRequestBodyParentField parent) { + this.parent = parent; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder sharedLink(UpdateWebLinkByIdRequestBodySharedLinkField sharedLink) { + this.sharedLink = sharedLink; + return this; + } + + public UpdateWebLinkByIdRequestBody build() { + return new UpdateWebLinkByIdRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodyParentField.java b/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodyParentField.java new file mode 100644 index 000000000..8e000f373 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodyParentField.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.managers.weblinks; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateWebLinkByIdRequestBodyParentField extends SerializableObject { + + protected String id; + + @JsonProperty("user_id") + protected String userId; + + public UpdateWebLinkByIdRequestBodyParentField() { + super(); + } + + protected UpdateWebLinkByIdRequestBodyParentField(Builder builder) { + super(); + this.id = builder.id; + this.userId = builder.userId; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getUserId() { + return userId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateWebLinkByIdRequestBodyParentField casted = (UpdateWebLinkByIdRequestBodyParentField) o; + return Objects.equals(id, casted.id) && Objects.equals(userId, casted.userId); + } + + @Override + public int hashCode() { + return Objects.hash(id, userId); + } + + @Override + public String toString() { + return "UpdateWebLinkByIdRequestBodyParentField{" + + "id='" + + id + + '\'' + + ", " + + "userId='" + + userId + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected String userId; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder userId(String userId) { + this.userId = userId; + return this; + } + + public UpdateWebLinkByIdRequestBodyParentField build() { + return new UpdateWebLinkByIdRequestBodyParentField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodySharedLinkAccessField.java b/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodySharedLinkAccessField.java new file mode 100644 index 000000000..fb49728c9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodySharedLinkAccessField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.managers.weblinks; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UpdateWebLinkByIdRequestBodySharedLinkAccessField implements Valuable { + OPEN("open"), + COMPANY("company"), + COLLABORATORS("collaborators"); + + private final String value; + + UpdateWebLinkByIdRequestBodySharedLinkAccessField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UpdateWebLinkByIdRequestBodySharedLinkAccessFieldDeserializer + extends JsonDeserializer> { + + public UpdateWebLinkByIdRequestBodySharedLinkAccessFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UpdateWebLinkByIdRequestBodySharedLinkAccessField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UpdateWebLinkByIdRequestBodySharedLinkAccessFieldSerializer + extends JsonSerializer> { + + public UpdateWebLinkByIdRequestBodySharedLinkAccessFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodySharedLinkField.java new file mode 100644 index 000000000..7bc6df5e3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodySharedLinkField.java @@ -0,0 +1,149 @@ +package com.box.sdkgen.managers.weblinks; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateWebLinkByIdRequestBodySharedLinkField extends SerializableObject { + + @JsonDeserialize( + using = + UpdateWebLinkByIdRequestBodySharedLinkAccessField + .UpdateWebLinkByIdRequestBodySharedLinkAccessFieldDeserializer.class) + @JsonSerialize( + using = + UpdateWebLinkByIdRequestBodySharedLinkAccessField + .UpdateWebLinkByIdRequestBodySharedLinkAccessFieldSerializer.class) + protected EnumWrapper access; + + @Nullable protected String password; + + @JsonProperty("vanity_name") + protected String vanityName; + + @JsonProperty("unshared_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date unsharedAt; + + public UpdateWebLinkByIdRequestBodySharedLinkField() { + super(); + } + + protected UpdateWebLinkByIdRequestBodySharedLinkField(Builder builder) { + super(); + this.access = builder.access; + this.password = builder.password; + this.vanityName = builder.vanityName; + this.unsharedAt = builder.unsharedAt; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getAccess() { + return access; + } + + public String getPassword() { + return password; + } + + public String getVanityName() { + return vanityName; + } + + public Date getUnsharedAt() { + return unsharedAt; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateWebLinkByIdRequestBodySharedLinkField casted = + (UpdateWebLinkByIdRequestBodySharedLinkField) o; + return Objects.equals(access, casted.access) + && Objects.equals(password, casted.password) + && Objects.equals(vanityName, casted.vanityName) + && Objects.equals(unsharedAt, casted.unsharedAt); + } + + @Override + public int hashCode() { + return Objects.hash(access, password, vanityName, unsharedAt); + } + + @Override + public String toString() { + return "UpdateWebLinkByIdRequestBodySharedLinkField{" + + "access='" + + access + + '\'' + + ", " + + "password='" + + password + + '\'' + + ", " + + "vanityName='" + + vanityName + + '\'' + + ", " + + "unsharedAt='" + + unsharedAt + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper access; + + protected String password; + + protected String vanityName; + + protected Date unsharedAt; + + public Builder access(UpdateWebLinkByIdRequestBodySharedLinkAccessField access) { + this.access = new EnumWrapper(access); + return this; + } + + public Builder access(EnumWrapper access) { + this.access = access; + return this; + } + + public Builder password(String password) { + this.password = password; + this.markNullableFieldAsSet("password"); + return this; + } + + public Builder vanityName(String vanityName) { + this.vanityName = vanityName; + return this; + } + + public Builder unsharedAt(Date unsharedAt) { + this.unsharedAt = unsharedAt; + return this; + } + + public UpdateWebLinkByIdRequestBodySharedLinkField build() { + return new UpdateWebLinkByIdRequestBodySharedLinkField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/WebLinksManager.java b/src/main/java/com/box/sdkgen/managers/weblinks/WebLinksManager.java new file mode 100644 index 000000000..cdf79b6c6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/weblinks/WebLinksManager.java @@ -0,0 +1,181 @@ +package com.box.sdkgen.managers.weblinks; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.weblink.WebLink; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class WebLinksManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public WebLinksManager() { + this.networkSession = new NetworkSession(); + } + + protected WebLinksManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public WebLink createWebLink(CreateWebLinkRequestBody requestBody) { + return createWebLink(requestBody, new CreateWebLinkHeaders()); + } + + public WebLink createWebLink(CreateWebLinkRequestBody requestBody, CreateWebLinkHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/web_links"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), WebLink.class); + } + + public WebLink getWebLinkById(String webLinkId) { + return getWebLinkById(webLinkId, new GetWebLinkByIdHeaders()); + } + + public WebLink getWebLinkById(String webLinkId, GetWebLinkByIdHeaders headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("boxapi", convertToString(headers.getBoxapi()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/web_links/", + convertToString(webLinkId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), WebLink.class); + } + + public WebLink updateWebLinkById(String webLinkId) { + return updateWebLinkById( + webLinkId, new UpdateWebLinkByIdRequestBody(), new UpdateWebLinkByIdHeaders()); + } + + public WebLink updateWebLinkById(String webLinkId, UpdateWebLinkByIdRequestBody requestBody) { + return updateWebLinkById(webLinkId, requestBody, new UpdateWebLinkByIdHeaders()); + } + + public WebLink updateWebLinkById(String webLinkId, UpdateWebLinkByIdHeaders headers) { + return updateWebLinkById(webLinkId, new UpdateWebLinkByIdRequestBody(), headers); + } + + public WebLink updateWebLinkById( + String webLinkId, + UpdateWebLinkByIdRequestBody requestBody, + UpdateWebLinkByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/web_links/", + convertToString(webLinkId)), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), WebLink.class); + } + + public void deleteWebLinkById(String webLinkId) { + deleteWebLinkById(webLinkId, new DeleteWebLinkByIdHeaders()); + } + + public void deleteWebLinkById(String webLinkId, DeleteWebLinkByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/web_links/", + convertToString(webLinkId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public WebLinksManager build() { + return new WebLinksManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/workflows/GetWorkflowsHeaders.java b/src/main/java/com/box/sdkgen/managers/workflows/GetWorkflowsHeaders.java new file mode 100644 index 000000000..ca81c7d74 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/workflows/GetWorkflowsHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.workflows; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetWorkflowsHeaders { + + public Map extraHeaders; + + public GetWorkflowsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetWorkflowsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetWorkflowsHeaders build() { + return new GetWorkflowsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/workflows/GetWorkflowsQueryParams.java b/src/main/java/com/box/sdkgen/managers/workflows/GetWorkflowsQueryParams.java new file mode 100644 index 000000000..9da961abf --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/workflows/GetWorkflowsQueryParams.java @@ -0,0 +1,73 @@ +package com.box.sdkgen.managers.workflows; + +public class GetWorkflowsQueryParams { + + public final String folderId; + + public String triggerType; + + public Long limit; + + public String marker; + + public GetWorkflowsQueryParams(String folderId) { + this.folderId = folderId; + } + + protected GetWorkflowsQueryParams(Builder builder) { + this.folderId = builder.folderId; + this.triggerType = builder.triggerType; + this.limit = builder.limit; + this.marker = builder.marker; + } + + public String getFolderId() { + return folderId; + } + + public String getTriggerType() { + return triggerType; + } + + public Long getLimit() { + return limit; + } + + public String getMarker() { + return marker; + } + + public static class Builder { + + protected final String folderId; + + protected String triggerType; + + protected Long limit; + + protected String marker; + + public Builder(String folderId) { + this.folderId = folderId; + } + + public Builder triggerType(String triggerType) { + this.triggerType = triggerType; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public GetWorkflowsQueryParams build() { + return new GetWorkflowsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowHeaders.java b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowHeaders.java new file mode 100644 index 000000000..0550781ab --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.workflows; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class StartWorkflowHeaders { + + public Map extraHeaders; + + public StartWorkflowHeaders() { + this.extraHeaders = mapOf(); + } + + protected StartWorkflowHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public StartWorkflowHeaders build() { + return new StartWorkflowHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBody.java b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBody.java new file mode 100644 index 000000000..78600e152 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBody.java @@ -0,0 +1,158 @@ +package com.box.sdkgen.managers.workflows; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.outcome.Outcome; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class StartWorkflowRequestBody extends SerializableObject { + + @JsonDeserialize( + using = StartWorkflowRequestBodyTypeField.StartWorkflowRequestBodyTypeFieldDeserializer.class) + @JsonSerialize( + using = StartWorkflowRequestBodyTypeField.StartWorkflowRequestBodyTypeFieldSerializer.class) + protected EnumWrapper type; + + protected final StartWorkflowRequestBodyFlowField flow; + + protected final List files; + + protected final StartWorkflowRequestBodyFolderField folder; + + protected List outcomes; + + public StartWorkflowRequestBody( + @JsonProperty("flow") StartWorkflowRequestBodyFlowField flow, + @JsonProperty("files") List files, + @JsonProperty("folder") StartWorkflowRequestBodyFolderField folder) { + super(); + this.flow = flow; + this.files = files; + this.folder = folder; + } + + protected StartWorkflowRequestBody(Builder builder) { + super(); + this.type = builder.type; + this.flow = builder.flow; + this.files = builder.files; + this.folder = builder.folder; + this.outcomes = builder.outcomes; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public StartWorkflowRequestBodyFlowField getFlow() { + return flow; + } + + public List getFiles() { + return files; + } + + public StartWorkflowRequestBodyFolderField getFolder() { + return folder; + } + + public List getOutcomes() { + return outcomes; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StartWorkflowRequestBody casted = (StartWorkflowRequestBody) o; + return Objects.equals(type, casted.type) + && Objects.equals(flow, casted.flow) + && Objects.equals(files, casted.files) + && Objects.equals(folder, casted.folder) + && Objects.equals(outcomes, casted.outcomes); + } + + @Override + public int hashCode() { + return Objects.hash(type, flow, files, folder, outcomes); + } + + @Override + public String toString() { + return "StartWorkflowRequestBody{" + + "type='" + + type + + '\'' + + ", " + + "flow='" + + flow + + '\'' + + ", " + + "files='" + + files + + '\'' + + ", " + + "folder='" + + folder + + '\'' + + ", " + + "outcomes='" + + outcomes + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final StartWorkflowRequestBodyFlowField flow; + + protected final List files; + + protected final StartWorkflowRequestBodyFolderField folder; + + protected List outcomes; + + public Builder( + StartWorkflowRequestBodyFlowField flow, + List files, + StartWorkflowRequestBodyFolderField folder) { + super(); + this.flow = flow; + this.files = files; + this.folder = folder; + } + + public Builder type(StartWorkflowRequestBodyTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder outcomes(List outcomes) { + this.outcomes = outcomes; + return this; + } + + public StartWorkflowRequestBody build() { + return new StartWorkflowRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFilesField.java b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFilesField.java new file mode 100644 index 000000000..4e9076374 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFilesField.java @@ -0,0 +1,100 @@ +package com.box.sdkgen.managers.workflows; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class StartWorkflowRequestBodyFilesField extends SerializableObject { + + @JsonDeserialize( + using = + StartWorkflowRequestBodyFilesTypeField.StartWorkflowRequestBodyFilesTypeFieldDeserializer + .class) + @JsonSerialize( + using = + StartWorkflowRequestBodyFilesTypeField.StartWorkflowRequestBodyFilesTypeFieldSerializer + .class) + protected EnumWrapper type; + + protected String id; + + public StartWorkflowRequestBodyFilesField() { + super(); + } + + protected StartWorkflowRequestBodyFilesField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StartWorkflowRequestBodyFilesField casted = (StartWorkflowRequestBodyFilesField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "StartWorkflowRequestBodyFilesField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected String id; + + public Builder type(StartWorkflowRequestBodyFilesTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public StartWorkflowRequestBodyFilesField build() { + return new StartWorkflowRequestBodyFilesField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFilesTypeField.java b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFilesTypeField.java new file mode 100644 index 000000000..d15d6247d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFilesTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.workflows; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum StartWorkflowRequestBodyFilesTypeField implements Valuable { + FILE("file"); + + private final String value; + + StartWorkflowRequestBodyFilesTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class StartWorkflowRequestBodyFilesTypeFieldDeserializer + extends JsonDeserializer> { + + public StartWorkflowRequestBodyFilesTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(StartWorkflowRequestBodyFilesTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class StartWorkflowRequestBodyFilesTypeFieldSerializer + extends JsonSerializer> { + + public StartWorkflowRequestBodyFilesTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFlowField.java b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFlowField.java new file mode 100644 index 000000000..cfcbb79d3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFlowField.java @@ -0,0 +1,84 @@ +package com.box.sdkgen.managers.workflows; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class StartWorkflowRequestBodyFlowField extends SerializableObject { + + protected String type; + + protected String id; + + public StartWorkflowRequestBodyFlowField() { + super(); + } + + protected StartWorkflowRequestBodyFlowField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StartWorkflowRequestBodyFlowField casted = (StartWorkflowRequestBodyFlowField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "StartWorkflowRequestBodyFlowField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String type; + + protected String id; + + public Builder type(String type) { + this.type = type; + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public StartWorkflowRequestBodyFlowField build() { + return new StartWorkflowRequestBodyFlowField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFolderField.java b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFolderField.java new file mode 100644 index 000000000..fa3bbdd50 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFolderField.java @@ -0,0 +1,100 @@ +package com.box.sdkgen.managers.workflows; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class StartWorkflowRequestBodyFolderField extends SerializableObject { + + @JsonDeserialize( + using = + StartWorkflowRequestBodyFolderTypeField + .StartWorkflowRequestBodyFolderTypeFieldDeserializer.class) + @JsonSerialize( + using = + StartWorkflowRequestBodyFolderTypeField.StartWorkflowRequestBodyFolderTypeFieldSerializer + .class) + protected EnumWrapper type; + + protected String id; + + public StartWorkflowRequestBodyFolderField() { + super(); + } + + protected StartWorkflowRequestBodyFolderField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StartWorkflowRequestBodyFolderField casted = (StartWorkflowRequestBodyFolderField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "StartWorkflowRequestBodyFolderField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected String id; + + public Builder type(StartWorkflowRequestBodyFolderTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public StartWorkflowRequestBodyFolderField build() { + return new StartWorkflowRequestBodyFolderField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFolderTypeField.java b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFolderTypeField.java new file mode 100644 index 000000000..2ff3cf727 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFolderTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.workflows; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum StartWorkflowRequestBodyFolderTypeField implements Valuable { + FOLDER("folder"); + + private final String value; + + StartWorkflowRequestBodyFolderTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class StartWorkflowRequestBodyFolderTypeFieldDeserializer + extends JsonDeserializer> { + + public StartWorkflowRequestBodyFolderTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(StartWorkflowRequestBodyFolderTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class StartWorkflowRequestBodyFolderTypeFieldSerializer + extends JsonSerializer> { + + public StartWorkflowRequestBodyFolderTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyTypeField.java b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyTypeField.java new file mode 100644 index 000000000..b56871837 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.managers.workflows; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum StartWorkflowRequestBodyTypeField implements Valuable { + WORKFLOW_PARAMETERS("workflow_parameters"); + + private final String value; + + StartWorkflowRequestBodyTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class StartWorkflowRequestBodyTypeFieldDeserializer + extends JsonDeserializer> { + + public StartWorkflowRequestBodyTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(StartWorkflowRequestBodyTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class StartWorkflowRequestBodyTypeFieldSerializer + extends JsonSerializer> { + + public StartWorkflowRequestBodyTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/workflows/WorkflowsManager.java b/src/main/java/com/box/sdkgen/managers/workflows/WorkflowsManager.java new file mode 100644 index 000000000..ee62d08a0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/workflows/WorkflowsManager.java @@ -0,0 +1,123 @@ +package com.box.sdkgen.managers.workflows; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.workflows.Workflows; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class WorkflowsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public WorkflowsManager() { + this.networkSession = new NetworkSession(); + } + + protected WorkflowsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public Workflows getWorkflows(GetWorkflowsQueryParams queryParams) { + return getWorkflows(queryParams, new GetWorkflowsHeaders()); + } + + public Workflows getWorkflows(GetWorkflowsQueryParams queryParams, GetWorkflowsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("folder_id", convertToString(queryParams.getFolderId())), + entryOf("trigger_type", convertToString(queryParams.getTriggerType())), + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf("marker", convertToString(queryParams.getMarker())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/workflows"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), Workflows.class); + } + + public void startWorkflow(String workflowId, StartWorkflowRequestBody requestBody) { + startWorkflow(workflowId, requestBody, new StartWorkflowHeaders()); + } + + public void startWorkflow( + String workflowId, StartWorkflowRequestBody requestBody, StartWorkflowHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/workflows/", + convertToString(workflowId), + "/start"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public WorkflowsManager build() { + return new WorkflowsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/zipdownloads/CreateZipDownloadHeaders.java b/src/main/java/com/box/sdkgen/managers/zipdownloads/CreateZipDownloadHeaders.java new file mode 100644 index 000000000..12c28973d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/zipdownloads/CreateZipDownloadHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.zipdownloads; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateZipDownloadHeaders { + + public Map extraHeaders; + + public CreateZipDownloadHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateZipDownloadHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateZipDownloadHeaders build() { + return new CreateZipDownloadHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/zipdownloads/DownloadZipHeaders.java b/src/main/java/com/box/sdkgen/managers/zipdownloads/DownloadZipHeaders.java new file mode 100644 index 000000000..963b8074a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/zipdownloads/DownloadZipHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.zipdownloads; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DownloadZipHeaders { + + public Map extraHeaders; + + public DownloadZipHeaders() { + this.extraHeaders = mapOf(); + } + + protected DownloadZipHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DownloadZipHeaders build() { + return new DownloadZipHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/zipdownloads/GetZipDownloadContentHeaders.java b/src/main/java/com/box/sdkgen/managers/zipdownloads/GetZipDownloadContentHeaders.java new file mode 100644 index 000000000..9a447d0a2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/zipdownloads/GetZipDownloadContentHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.zipdownloads; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetZipDownloadContentHeaders { + + public Map extraHeaders; + + public GetZipDownloadContentHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetZipDownloadContentHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetZipDownloadContentHeaders build() { + return new GetZipDownloadContentHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/zipdownloads/GetZipDownloadStatusHeaders.java b/src/main/java/com/box/sdkgen/managers/zipdownloads/GetZipDownloadStatusHeaders.java new file mode 100644 index 000000000..dc03a2e10 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/zipdownloads/GetZipDownloadStatusHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.zipdownloads; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetZipDownloadStatusHeaders { + + public Map extraHeaders; + + public GetZipDownloadStatusHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetZipDownloadStatusHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetZipDownloadStatusHeaders build() { + return new GetZipDownloadStatusHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/zipdownloads/ZipDownloadsManager.java b/src/main/java/com/box/sdkgen/managers/zipdownloads/ZipDownloadsManager.java new file mode 100644 index 000000000..40d2ad2ef --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/zipdownloads/ZipDownloadsManager.java @@ -0,0 +1,149 @@ +package com.box.sdkgen.managers.zipdownloads; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.zipdownload.ZipDownload; +import com.box.sdkgen.schemas.zipdownloadrequest.ZipDownloadRequest; +import com.box.sdkgen.schemas.zipdownloadstatus.ZipDownloadStatus; +import com.box.sdkgen.serialization.json.JsonManager; +import java.io.InputStream; +import java.util.Map; + +public class ZipDownloadsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public ZipDownloadsManager() { + this.networkSession = new NetworkSession(); + } + + protected ZipDownloadsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public ZipDownload createZipDownload(ZipDownloadRequest requestBody) { + return createZipDownload(requestBody, new CreateZipDownloadHeaders()); + } + + public ZipDownload createZipDownload( + ZipDownloadRequest requestBody, CreateZipDownloadHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/zip_downloads"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ZipDownload.class); + } + + public InputStream getZipDownloadContent(String downloadUrl) { + return getZipDownloadContent(downloadUrl, new GetZipDownloadContentHeaders()); + } + + public InputStream getZipDownloadContent( + String downloadUrl, GetZipDownloadContentHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder(downloadUrl, "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.BINARY) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return response.getContent(); + } + + public ZipDownloadStatus getZipDownloadStatus(String statusUrl) { + return getZipDownloadStatus(statusUrl, new GetZipDownloadStatusHeaders()); + } + + public ZipDownloadStatus getZipDownloadStatus( + String statusUrl, GetZipDownloadStatusHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder(statusUrl, "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ZipDownloadStatus.class); + } + + public InputStream downloadZip(ZipDownloadRequest requestBody) { + return downloadZip(requestBody, new DownloadZipHeaders()); + } + + public InputStream downloadZip(ZipDownloadRequest requestBody, DownloadZipHeaders headers) { + ZipDownload zipDownloadSession = + this.createZipDownload( + new ZipDownloadRequest.Builder(requestBody.getItems()) + .downloadFileName(requestBody.getDownloadFileName()) + .build(), + new CreateZipDownloadHeaders.Builder().extraHeaders(headers.getExtraHeaders()).build()); + return this.getZipDownloadContent( + zipDownloadSession.getDownloadUrl(), + new GetZipDownloadContentHeaders.Builder().extraHeaders(headers.getExtraHeaders()).build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public ZipDownloadsManager build() { + return new ZipDownloadsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/networking/auth/Authentication.java b/src/main/java/com/box/sdkgen/networking/auth/Authentication.java new file mode 100644 index 000000000..0c50a6bee --- /dev/null +++ b/src/main/java/com/box/sdkgen/networking/auth/Authentication.java @@ -0,0 +1,27 @@ +package com.box.sdkgen.networking.auth; + +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.accesstoken.AccessToken; +import java.util.List; + +public interface Authentication { + + AccessToken retrieveToken(); + + AccessToken retrieveToken(NetworkSession networkSession); + + AccessToken refreshToken(); + + AccessToken refreshToken(NetworkSession networkSession); + + String retrieveAuthorizationHeader(); + + String retrieveAuthorizationHeader(NetworkSession networkSession); + + void revokeToken(); + + void revokeToken(NetworkSession networkSession); + + AccessToken downscopeToken( + List scopes, String resource, String sharedLink, NetworkSession networkSession); +} diff --git a/src/main/java/com/box/sdkgen/networking/baseurls/BaseUrls.java b/src/main/java/com/box/sdkgen/networking/baseurls/BaseUrls.java new file mode 100644 index 000000000..f05ceb7fa --- /dev/null +++ b/src/main/java/com/box/sdkgen/networking/baseurls/BaseUrls.java @@ -0,0 +1,99 @@ +package com.box.sdkgen.networking.baseurls; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +public class BaseUrls { + @JsonProperty("base_url") + protected String baseUrl = "https://api.box.com"; + + @JsonProperty("upload_url") + protected String uploadUrl = "https://upload.box.com/api"; + + @JsonProperty("oauth2_url") + protected String oauth2Url = "https://account.box.com/api/oauth2"; + + public BaseUrls() {} + + protected BaseUrls(Builder builder) { + this.baseUrl = builder.baseUrl; + this.uploadUrl = builder.uploadUrl; + this.oauth2Url = builder.oauth2Url; + } + + public String getBaseUrl() { + return baseUrl; + } + + public String getUploadUrl() { + return uploadUrl; + } + + public String getOauth2Url() { + return oauth2Url; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BaseUrls casted = (BaseUrls) o; + return Objects.equals(baseUrl, casted.baseUrl) + && Objects.equals(uploadUrl, casted.uploadUrl) + && Objects.equals(oauth2Url, casted.oauth2Url); + } + + @Override + public int hashCode() { + return Objects.hash(baseUrl, uploadUrl, oauth2Url); + } + + @Override + public String toString() { + return "BaseUrls{" + + "baseUrl='" + + baseUrl + + '\'' + + ", " + + "uploadUrl='" + + uploadUrl + + '\'' + + ", " + + "oauth2Url='" + + oauth2Url + + '\'' + + "}"; + } + + public static class Builder { + + protected String baseUrl = "https://api.box.com"; + + protected String uploadUrl = "https://upload.box.com/api"; + + protected String oauth2Url = "https://account.box.com/api/oauth2"; + + public Builder baseUrl(String baseUrl) { + this.baseUrl = baseUrl; + return this; + } + + public Builder uploadUrl(String uploadUrl) { + this.uploadUrl = uploadUrl; + return this; + } + + public Builder oauth2Url(String oauth2Url) { + this.oauth2Url = oauth2Url; + return this; + } + + public BaseUrls build() { + return new BaseUrls(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java b/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java new file mode 100644 index 000000000..07cc4d359 --- /dev/null +++ b/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java @@ -0,0 +1,361 @@ +package com.box.sdkgen.networking.boxnetworkclient; + +import static com.box.sdkgen.box.BoxConstants.USER_AGENT_HEADER; +import static com.box.sdkgen.box.BoxConstants.X_BOX_UA_HEADER; +import static com.box.sdkgen.internal.utils.UtilsManager.readByteStream; +import static com.box.sdkgen.serialization.json.JsonManager.jsonToSerializedData; +import static com.box.sdkgen.serialization.json.JsonManager.sdToJson; +import static com.box.sdkgen.serialization.json.JsonManager.sdToUrlParams; +import static java.util.Collections.singletonList; +import static okhttp3.ConnectionSpec.MODERN_TLS; + +import com.box.sdkgen.box.errors.BoxAPIError; +import com.box.sdkgen.box.errors.BoxSDKError; +import com.box.sdkgen.internal.logging.DataSanitizer; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.MultipartItem; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.networking.networkclient.NetworkClient; +import com.fasterxml.jackson.databind.JsonNode; +import java.io.IOException; +import java.net.URI; +import java.util.Locale; +import java.util.Map; +import java.util.Objects; +import java.util.TreeMap; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; +import okhttp3.Call; +import okhttp3.Headers; +import okhttp3.HttpUrl; +import okhttp3.MediaType; +import okhttp3.MultipartBody; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import okio.BufferedSink; +import okio.Okio; +import okio.Source; + +public class BoxNetworkClient implements NetworkClient { + + private static final int BASE_TIMEOUT = 1; + private static final double RANDOM_FACTOR = 0.5; + + protected OkHttpClient httpClient; + + public BoxNetworkClient(OkHttpClient httpClient) { + this.httpClient = httpClient; + } + + public BoxNetworkClient() { + OkHttpClient.Builder builder = + new OkHttpClient.Builder() + .followSslRedirects(true) + .followRedirects(false) + .connectionSpecs(singletonList(MODERN_TLS)); + httpClient = builder.build(); + } + + public OkHttpClient getHttpClient() { + return httpClient; + } + + public FetchResponse fetch(FetchOptions options) { + NetworkSession networkSession = + options.getNetworkSession() == null ? new NetworkSession() : options.getNetworkSession(); + + FetchOptions fetchOptions = + networkSession.getInterceptors().stream() + .reduce( + options, + (modifiedOptions, interceptor) -> interceptor.beforeRequest(modifiedOptions), + (o1, o2) -> o2); + + boolean authenticationNeeded = false; + Request request; + FetchResponse fetchResponse = null; + Exception exceptionThrown = null; + + int attemptNumber = 1; + int numberOfRetriesOnException = 0; + int attemptForRetry = 0; + boolean shouldRetry = false; + + while (true) { + request = prepareRequest(fetchOptions, authenticationNeeded, networkSession); + + Response response = null; + String rawResponseBody = null; + + try { + response = executeOnClient(request); + + Map headersMap = + response.headers().toMultimap().entrySet().stream() + .collect( + Collectors.toMap( + Map.Entry::getKey, + e -> e.getValue().get(0), + (existing, replacement) -> existing, + () -> new TreeMap<>(String.CASE_INSENSITIVE_ORDER))); + + String responseUrl = + response.networkResponse() != null + ? response.networkResponse().request().url().toString() + : response.request().url().toString(); + + attemptForRetry = attemptNumber; + + if (Objects.equals( + fetchOptions.getResponseFormat().getEnumValue(), ResponseFormat.BINARY)) { + fetchResponse = + new FetchResponse.Builder(response.code(), headersMap) + .content(response.body().byteStream()) + .url(responseUrl) + .build(); + } else { + rawResponseBody = response.body() != null ? response.body().string() : null; + fetchResponse = + new FetchResponse.Builder(response.code(), headersMap) + .data(readJsonFromRawBody(rawResponseBody)) + .url(responseUrl) + .build(); + } + + fetchResponse = + networkSession.getInterceptors().stream() + .reduce( + fetchResponse, + (modifiedResponse, interceptor) -> interceptor.afterRequest(modifiedResponse), + (o1, o2) -> o2); + + } catch (Exception e) { + exceptionThrown = e; + numberOfRetriesOnException++; + attemptForRetry = numberOfRetriesOnException; + if (response != null) { + response.close(); + } + + fetchResponse = + new FetchResponse.Builder(0, new TreeMap<>(String.CASE_INSENSITIVE_ORDER)).build(); + } + + shouldRetry = + networkSession + .getRetryStrategy() + .shouldRetry(fetchOptions, fetchResponse, attemptForRetry); + + if (shouldRetry) { + double retryDelay = + networkSession + .getRetryStrategy() + .retryAfter(fetchOptions, fetchResponse, attemptForRetry); + if (retryDelay > 0) { + try { + TimeUnit.SECONDS.sleep((long) retryDelay); + } catch (InterruptedException ie) { + Thread.currentThread().interrupt(); + throw new BoxSDKError("Retry interrupted", ie); + } + } + attemptNumber++; + continue; + } + + if (fetchResponse != null + && fetchResponse.getStatus() >= 300 + && fetchResponse.getStatus() < 400 + && fetchOptions.followRedirects) { + if (!fetchResponse.getHeaders().containsKey("Location")) { + throw new BoxSDKError( + "Redirect response missing Location header for " + fetchOptions.getUrl()); + } + URI originalUri = URI.create(fetchOptions.getUrl()); + URI redirectUri = URI.create(fetchResponse.getHeaders().get("Location")); + boolean sameOrigin = + originalUri.getHost().equals(redirectUri.getHost()) + && originalUri.getPort() == redirectUri.getPort() + && originalUri.getScheme().equals(redirectUri.getScheme()); + return fetch( + new FetchOptions.Builder(fetchResponse.getHeaders().get("Location"), "GET") + .responseFormat(fetchOptions.getResponseFormat()) + .auth(sameOrigin ? fetchOptions.getAuth() : null) + .networkSession(networkSession) + .build()); + } + + if (fetchResponse != null + && fetchResponse.getStatus() >= 200 + && fetchResponse.getStatus() < 400) { + return fetchResponse; + } + + throwOnUnsuccessfulResponse( + request, + fetchResponse, + rawResponseBody, + exceptionThrown, + networkSession.getDataSanitizer()); + } + } + + private static Request prepareRequest( + FetchOptions options, boolean reauthenticate, NetworkSession networkSession) { + Request.Builder requestBuilder = new Request.Builder().url(options.getUrl()); + Headers headers = prepareHeaders(options, reauthenticate, networkSession); + HttpUrl url = prepareUrl(options); + RequestBody body = prepareRequestBody(options); + + requestBuilder.headers(headers); + requestBuilder.url(url); + requestBuilder.method(options.getMethod().toUpperCase(Locale.ROOT), body); + return requestBuilder.build(); + } + + private static Headers prepareHeaders( + FetchOptions options, boolean reauthenticate, NetworkSession networkSession) { + Headers.Builder headersBuilder = new Headers.Builder(); + + networkSession.getAdditionalHeaders().forEach(headersBuilder::add); + + if (options.getHeaders() != null) { + options.getHeaders().forEach(headersBuilder::add); + } + if (options.getAuth() != null) { + if (reauthenticate) { + options.getAuth().refreshToken(networkSession); + } + headersBuilder.add( + "Authorization", options.getAuth().retrieveAuthorizationHeader(networkSession)); + } + headersBuilder.add("User-Agent", USER_AGENT_HEADER); + headersBuilder.add("X-Box-UA", X_BOX_UA_HEADER); + return headersBuilder.build(); + } + + private static HttpUrl prepareUrl(FetchOptions options) { + + HttpUrl baseUrl = HttpUrl.parse(options.getUrl()); + if (baseUrl == null) { + throw new IllegalArgumentException("Invalid URL " + options.getUrl()); + } + HttpUrl.Builder urlBuilder = baseUrl.newBuilder(); + if (options.getParams() != null) { + options.getParams().forEach(urlBuilder::addQueryParameter); + } + return urlBuilder.build(); + } + + private static RequestBody prepareRequestBody(FetchOptions options) { + if (options.getMethod().equalsIgnoreCase("GET")) { + return null; + } + String contentType = options.getContentType(); + MediaType mediaType = MediaType.parse(contentType); + switch (contentType) { + case "application/json": + case "application/json-patch+json": + return options.getData() != null + ? RequestBody.create(sdToJson(options.getData()), mediaType) + : RequestBody.create("", mediaType); + case "application/x-www-form-urlencoded": + return options.getData() != null + ? RequestBody.create(sdToUrlParams(options.getData()), mediaType) + : RequestBody.create("", mediaType); + case "multipart/form-data": + MultipartBody.Builder bodyBuilder = new MultipartBody.Builder().setType(MultipartBody.FORM); + for (MultipartItem part : options.multipartData) { + if (part.getData() != null) { + bodyBuilder.addFormDataPart(part.getPartName(), sdToJson(part.getData())); + } else { + bodyBuilder.addFormDataPart( + part.getPartName(), + part.getFileName() != null ? part.getFileName() : "file", + createMultipartRequestBody(part)); + } + } + return bodyBuilder.build(); + case "application/octet-stream": + return RequestBody.create(readByteStream(options.getFileStream()), mediaType); + default: + throw new IllegalArgumentException("Unsupported content type " + contentType); + } + } + + protected Call createNewCall(Request request) { + return this.httpClient.newCall(request); + } + + private Response executeOnClient(Request request) throws IOException { + return createNewCall(request).execute(); + } + + private static JsonNode readJsonFromRawBody(String rawResponseBody) { + if (rawResponseBody == null) { + return null; + } + + try { + return jsonToSerializedData(rawResponseBody); + } catch (Exception e) { + return null; + } + } + + private static void throwOnUnsuccessfulResponse( + Request request, + FetchResponse fetchResponse, + String rawResponseBody, + Exception exceptionThrown, + DataSanitizer dataSanitizer) { + if (fetchResponse == null) { + throw new BoxSDKError(exceptionThrown.getMessage(), exceptionThrown); + } + try { + throw BoxAPIError.fromAPICall(request, fetchResponse, rawResponseBody, dataSanitizer); + } finally { + try { + if (fetchResponse.getContent() != null) { + fetchResponse.getContent().close(); + } + } catch (IOException ignored) { + } + } + } + + private static int getRetryAfterTimeInSeconds(int attemptNumber, String retryAfterHeader) { + + if (retryAfterHeader != null) { + return Integer.parseInt(retryAfterHeader); + } + + double minWindow = 1 - RANDOM_FACTOR; + double maxWindow = 1 + RANDOM_FACTOR; + double jitter = (Math.random() * (maxWindow - minWindow)) + minWindow; + return (int) (Math.pow(2, attemptNumber) * BASE_TIMEOUT * jitter); + } + + public static RequestBody createMultipartRequestBody(MultipartItem part) { + return new RequestBody() { + @Override + public MediaType contentType() { + if (part.contentType != null) { + return MediaType.parse(part.contentType); + } + return MediaType.parse("application/octet-stream"); + } + + @Override + public void writeTo(BufferedSink sink) throws IOException { + try (Source source = Okio.source(part.getFileStream())) { + sink.writeAll(source); + } + } + }; + } +} diff --git a/src/main/java/com/box/sdkgen/networking/defaultnetworkclient/DefaultNetworkClient.java b/src/main/java/com/box/sdkgen/networking/defaultnetworkclient/DefaultNetworkClient.java new file mode 100644 index 000000000..e22be2d7a --- /dev/null +++ b/src/main/java/com/box/sdkgen/networking/defaultnetworkclient/DefaultNetworkClient.java @@ -0,0 +1,293 @@ +package com.box.sdkgen.networking.defaultnetworkclient; + +import static com.box.sdkgen.serialization.json.JsonManager.jsonToSerializedData; +import static com.box.sdkgen.serialization.json.JsonManager.sdToJson; +import static com.box.sdkgen.serialization.json.JsonManager.sdToUrlParams; +import static java.util.Collections.singletonList; +import static okhttp3.ConnectionSpec.MODERN_TLS; + +import com.box.sdkgen.box.errors.BoxSDKError; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.MultipartItem; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.networking.networkclient.NetworkClient; +import java.io.IOException; +import java.util.Locale; +import java.util.Map; +import java.util.Objects; +import java.util.TreeMap; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; +import okhttp3.Call; +import okhttp3.Headers; +import okhttp3.HttpUrl; +import okhttp3.MediaType; +import okhttp3.MultipartBody; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import okio.BufferedSink; +import okio.Okio; +import okio.Source; + +public class DefaultNetworkClient implements NetworkClient { + + protected OkHttpClient httpClient; + + public DefaultNetworkClient(OkHttpClient httpClient) { + this.httpClient = httpClient; + } + + public DefaultNetworkClient() { + OkHttpClient.Builder builder = + new OkHttpClient.Builder() + .followSslRedirects(true) + .followRedirects(false) + .connectionSpecs(singletonList(MODERN_TLS)); + httpClient = builder.build(); + } + + public FetchResponse fetch(FetchOptions options) { + NetworkSession networkSession = + options.getNetworkSession() == null ? new NetworkSession() : options.getNetworkSession(); + + FetchOptions fetchOptions = + networkSession.getInterceptors().stream() + .reduce( + options, + (modifiedOptions, interceptor) -> interceptor.beforeRequest(modifiedOptions), + (o1, o2) -> o2); + + boolean authenticationNeeded = false; + Request request; + FetchResponse fetchResponse = null; + Exception exceptionThrown = null; + + int attemptNumber = 1; + int numberOfRetriesOnException = 0; + int attemptForRetry = 0; + boolean shouldRetry = false; + + while (true) { + request = prepareRequest(fetchOptions, authenticationNeeded, networkSession); + + Response response = null; + try { + response = executeOnClient(request); + + Map headersMap = + response.headers().toMultimap().entrySet().stream() + .collect( + Collectors.toMap( + Map.Entry::getKey, + e -> e.getValue().get(0), + (existing, replacement) -> existing, + () -> new TreeMap<>(String.CASE_INSENSITIVE_ORDER))); + + String responseUrl = + response.networkResponse() != null + ? response.networkResponse().request().url().toString() + : response.request().url().toString(); + + attemptForRetry = attemptNumber; + fetchResponse = + Objects.equals(fetchOptions.getResponseFormat().getEnumValue(), ResponseFormat.BINARY) + ? new FetchResponse.Builder(response.code(), headersMap) + .content(response.body().byteStream()) + .url(responseUrl) + .build() + : new FetchResponse.Builder(response.code(), headersMap) + .data( + response.body() != null + ? jsonToSerializedData(response.body().string()) + : null) + .url(responseUrl) + .build(); + + fetchResponse = + networkSession.getInterceptors().stream() + .reduce( + fetchResponse, + (modifiedResponse, interceptor) -> interceptor.afterRequest(modifiedResponse), + (o1, o2) -> o2); + + } catch (Exception e) { + exceptionThrown = e; + numberOfRetriesOnException++; + attemptForRetry = numberOfRetriesOnException; + if (response != null) { + response.close(); + } + + fetchResponse = + new FetchResponse.Builder(0, new TreeMap<>(String.CASE_INSENSITIVE_ORDER)).build(); + } + + shouldRetry = + networkSession + .getRetryStrategy() + .shouldRetry(fetchOptions, fetchResponse, attemptForRetry); + + if (shouldRetry) { + double retryDelay = + networkSession + .getRetryStrategy() + .retryAfter(fetchOptions, fetchResponse, attemptForRetry); + if (retryDelay > 0) { + try { + TimeUnit.SECONDS.sleep((long) retryDelay); + } catch (InterruptedException ie) { + Thread.currentThread().interrupt(); + throw new BoxSDKError("Retry interrupted", ie); + } + } + attemptNumber++; + continue; + } + + if (fetchResponse.getStatus() >= 300 + && fetchResponse.getStatus() < 400 + && fetchOptions.followRedirects) { + if (!fetchResponse.getHeaders().containsKey("Location")) { + throw new BoxSDKError( + "Redirect response missing Location header for " + fetchOptions.getUrl()); + } + return fetch( + new FetchOptions.Builder(fetchResponse.getHeaders().get("Location"), "GET") + .responseFormat(fetchOptions.getResponseFormat()) + .auth(fetchOptions.getAuth()) + .networkSession(networkSession) + .build()); + } + + if (fetchResponse != null + && fetchResponse.getStatus() >= 200 + && fetchResponse.getStatus() < 400) { + return fetchResponse; + } + + throwOnUnsuccessfulResponse(request, fetchResponse, exceptionThrown); + } + } + + private static Request prepareRequest( + FetchOptions options, boolean reauthenticate, NetworkSession networkSession) { + Request.Builder requestBuilder = new Request.Builder().url(options.getUrl()); + Headers headers = prepareHeaders(options, reauthenticate, networkSession); + HttpUrl url = prepareUrl(options); + RequestBody body = prepareRequestBody(options); + + requestBuilder.headers(headers); + requestBuilder.url(url); + requestBuilder.method(options.getMethod().toUpperCase(Locale.ROOT), body); + return requestBuilder.build(); + } + + private static Headers prepareHeaders( + FetchOptions options, boolean reauthenticate, NetworkSession networkSession) { + Headers.Builder headersBuilder = new Headers.Builder(); + + networkSession.getAdditionalHeaders().forEach(headersBuilder::add); + + if (options.getHeaders() != null) { + options.getHeaders().forEach(headersBuilder::add); + } + if (options.getAuth() != null) { + if (reauthenticate) { + options.getAuth().refreshToken(networkSession); + } + headersBuilder.add( + "Authorization", options.getAuth().retrieveAuthorizationHeader(networkSession)); + } + return headersBuilder.build(); + } + + private static HttpUrl prepareUrl(FetchOptions options) { + + HttpUrl baseUrl = HttpUrl.parse(options.getUrl()); + if (baseUrl == null) { + throw new IllegalArgumentException("Invalid URL " + options.getUrl()); + } + HttpUrl.Builder urlBuilder = baseUrl.newBuilder(); + if (options.getParams() != null) { + options.getParams().forEach(urlBuilder::addQueryParameter); + } + return urlBuilder.build(); + } + + private static RequestBody prepareRequestBody(FetchOptions options) { + if (options.getMethod().equalsIgnoreCase("GET")) { + return null; + } + String contentType = options.getContentType(); + MediaType mediaType = MediaType.parse(contentType); + switch (contentType) { + case "application/json": + case "application/json-patch+json": + return options.getData() != null + ? RequestBody.create(sdToJson(options.getData()), mediaType) + : RequestBody.create("", mediaType); + case "application/x-www-form-urlencoded": + return options.getData() != null + ? RequestBody.create(sdToUrlParams(options.getData()), mediaType) + : RequestBody.create("", mediaType); + case "multipart/form-data": + MultipartBody.Builder bodyBuilder = new MultipartBody.Builder().setType(MultipartBody.FORM); + for (MultipartItem part : options.multipartData) { + if (part.getData() != null) { + bodyBuilder.addFormDataPart(part.getPartName(), sdToJson(part.getData())); + } else { + bodyBuilder.addFormDataPart( + part.getPartName(), + part.getFileName() != null ? part.getFileName() : "file", + createMultipartRequestBody(part)); + } + } + return bodyBuilder.build(); + default: + throw new IllegalArgumentException("Unsupported content type " + contentType); + } + } + + protected Call createNewCall(Request request) { + return this.httpClient.newCall(request); + } + + private Response executeOnClient(Request request) { + try { + return createNewCall(request).execute(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public static RequestBody createMultipartRequestBody(MultipartItem part) { + return new RequestBody() { + @Override + public MediaType contentType() { + if (part.contentType != null) { + return MediaType.parse(part.contentType); + } + return MediaType.parse("application/octet-stream"); + } + + @Override + public void writeTo(BufferedSink sink) throws IOException { + try (Source source = Okio.source(part.getFileStream())) { + sink.writeAll(source); + } + } + }; + } + + private static void throwOnUnsuccessfulResponse( + Request request, FetchResponse fetchResponse, Exception exceptionThrown) { + if (fetchResponse == null) { + throw new RuntimeException(exceptionThrown.getMessage(), exceptionThrown); + } + throw new RuntimeException(fetchResponse.getData().toString()); + } +} diff --git a/src/main/java/com/box/sdkgen/networking/fetchoptions/FetchOptions.java b/src/main/java/com/box/sdkgen/networking/fetchoptions/FetchOptions.java new file mode 100644 index 000000000..f0c6290a4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/networking/fetchoptions/FetchOptions.java @@ -0,0 +1,201 @@ +package com.box.sdkgen.networking.fetchoptions; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.databind.JsonNode; +import java.io.InputStream; +import java.util.List; +import java.util.Map; + +public class FetchOptions { + + public final String url; + + public final String method; + + public Map params; + + public Map headers; + + public JsonNode data; + + public InputStream fileStream; + + public List multipartData; + + public String contentType; + + public EnumWrapper responseFormat; + + public Authentication auth; + + public NetworkSession networkSession; + + public Boolean followRedirects; + + public FetchOptions(String url, String method) { + this.url = url; + this.method = method; + this.contentType = "application/json"; + this.responseFormat = new EnumWrapper(ResponseFormat.JSON); + this.followRedirects = true; + } + + protected FetchOptions(Builder builder) { + this.url = builder.url; + this.method = builder.method; + this.params = builder.params; + this.headers = builder.headers; + this.data = builder.data; + this.fileStream = builder.fileStream; + this.multipartData = builder.multipartData; + this.contentType = builder.contentType; + this.responseFormat = builder.responseFormat; + this.auth = builder.auth; + this.networkSession = builder.networkSession; + this.followRedirects = builder.followRedirects; + } + + public String getUrl() { + return url; + } + + public String getMethod() { + return method; + } + + public Map getParams() { + return params; + } + + public Map getHeaders() { + return headers; + } + + public JsonNode getData() { + return data; + } + + public InputStream getFileStream() { + return fileStream; + } + + public List getMultipartData() { + return multipartData; + } + + public String getContentType() { + return contentType; + } + + public EnumWrapper getResponseFormat() { + return responseFormat; + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public Boolean getFollowRedirects() { + return followRedirects; + } + + public static class Builder { + + protected final String url; + + protected final String method; + + protected Map params; + + protected Map headers; + + protected JsonNode data; + + protected InputStream fileStream; + + protected List multipartData; + + protected String contentType; + + protected EnumWrapper responseFormat; + + protected Authentication auth; + + protected NetworkSession networkSession; + + protected Boolean followRedirects; + + public Builder(String url, String method) { + this.url = url; + this.method = method; + this.contentType = "application/json"; + this.responseFormat = new EnumWrapper(ResponseFormat.JSON); + this.followRedirects = true; + } + + public Builder params(Map params) { + this.params = params; + return this; + } + + public Builder headers(Map headers) { + this.headers = headers; + return this; + } + + public Builder data(JsonNode data) { + this.data = data; + return this; + } + + public Builder fileStream(InputStream fileStream) { + this.fileStream = fileStream; + return this; + } + + public Builder multipartData(List multipartData) { + this.multipartData = multipartData; + return this; + } + + public Builder contentType(String contentType) { + this.contentType = contentType; + return this; + } + + public Builder responseFormat(ResponseFormat responseFormat) { + this.responseFormat = new EnumWrapper(responseFormat); + return this; + } + + public Builder responseFormat(EnumWrapper responseFormat) { + this.responseFormat = responseFormat; + return this; + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public Builder followRedirects(Boolean followRedirects) { + this.followRedirects = followRedirects; + return this; + } + + public FetchOptions build() { + return new FetchOptions(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/networking/fetchoptions/MultipartItem.java b/src/main/java/com/box/sdkgen/networking/fetchoptions/MultipartItem.java new file mode 100644 index 000000000..fa39eed37 --- /dev/null +++ b/src/main/java/com/box/sdkgen/networking/fetchoptions/MultipartItem.java @@ -0,0 +1,90 @@ +package com.box.sdkgen.networking.fetchoptions; + +import com.fasterxml.jackson.databind.JsonNode; +import java.io.InputStream; + +public class MultipartItem { + + public final String partName; + + public JsonNode data; + + public InputStream fileStream; + + public String fileName; + + public String contentType; + + public MultipartItem(String partName) { + this.partName = partName; + } + + protected MultipartItem(Builder builder) { + this.partName = builder.partName; + this.data = builder.data; + this.fileStream = builder.fileStream; + this.fileName = builder.fileName; + this.contentType = builder.contentType; + } + + public String getPartName() { + return partName; + } + + public JsonNode getData() { + return data; + } + + public InputStream getFileStream() { + return fileStream; + } + + public String getFileName() { + return fileName; + } + + public String getContentType() { + return contentType; + } + + public static class Builder { + + protected final String partName; + + protected JsonNode data; + + protected InputStream fileStream; + + protected String fileName; + + protected String contentType; + + public Builder(String partName) { + this.partName = partName; + } + + public Builder data(JsonNode data) { + this.data = data; + return this; + } + + public Builder fileStream(InputStream fileStream) { + this.fileStream = fileStream; + return this; + } + + public Builder fileName(String fileName) { + this.fileName = fileName; + return this; + } + + public Builder contentType(String contentType) { + this.contentType = contentType; + return this; + } + + public MultipartItem build() { + return new MultipartItem(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/networking/fetchoptions/ResponseFormat.java b/src/main/java/com/box/sdkgen/networking/fetchoptions/ResponseFormat.java new file mode 100644 index 000000000..256fc7859 --- /dev/null +++ b/src/main/java/com/box/sdkgen/networking/fetchoptions/ResponseFormat.java @@ -0,0 +1,61 @@ +package com.box.sdkgen.networking.fetchoptions; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ResponseFormat implements Valuable { + JSON("json"), + BINARY("binary"), + NO_CONTENT("no_content"); + + private final String value; + + ResponseFormat(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ResponseFormatDeserializer + extends JsonDeserializer> { + + public ResponseFormatDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ResponseFormat.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ResponseFormatSerializer extends JsonSerializer> { + + public ResponseFormatSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/networking/fetchresponse/FetchResponse.java b/src/main/java/com/box/sdkgen/networking/fetchresponse/FetchResponse.java new file mode 100644 index 000000000..a15c5b1a5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/networking/fetchresponse/FetchResponse.java @@ -0,0 +1,88 @@ +package com.box.sdkgen.networking.fetchresponse; + +import com.fasterxml.jackson.databind.JsonNode; +import java.io.InputStream; +import java.util.Map; + +public class FetchResponse { + + public String url; + + public final int status; + + public JsonNode data; + + public InputStream content; + + public final Map headers; + + public FetchResponse(int status, Map headers) { + this.status = status; + this.headers = headers; + } + + protected FetchResponse(Builder builder) { + this.url = builder.url; + this.status = builder.status; + this.data = builder.data; + this.content = builder.content; + this.headers = builder.headers; + } + + public String getUrl() { + return url; + } + + public int getStatus() { + return status; + } + + public JsonNode getData() { + return data; + } + + public InputStream getContent() { + return content; + } + + public Map getHeaders() { + return headers; + } + + public static class Builder { + + protected String url; + + protected final int status; + + protected JsonNode data; + + protected InputStream content; + + protected final Map headers; + + public Builder(int status, Map headers) { + this.status = status; + this.headers = headers; + } + + public Builder url(String url) { + this.url = url; + return this; + } + + public Builder data(JsonNode data) { + this.data = data; + return this; + } + + public Builder content(InputStream content) { + this.content = content; + return this; + } + + public FetchResponse build() { + return new FetchResponse(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/networking/interceptors/Interceptor.java b/src/main/java/com/box/sdkgen/networking/interceptors/Interceptor.java new file mode 100644 index 000000000..5880b15df --- /dev/null +++ b/src/main/java/com/box/sdkgen/networking/interceptors/Interceptor.java @@ -0,0 +1,11 @@ +package com.box.sdkgen.networking.interceptors; + +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; + +public interface Interceptor { + + FetchOptions beforeRequest(FetchOptions options); + + FetchResponse afterRequest(FetchResponse response); +} diff --git a/src/main/java/com/box/sdkgen/networking/network/NetworkSession.java b/src/main/java/com/box/sdkgen/networking/network/NetworkSession.java new file mode 100644 index 000000000..4206ff5a6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/networking/network/NetworkSession.java @@ -0,0 +1,199 @@ +package com.box.sdkgen.networking.network; + +import com.box.sdkgen.internal.logging.DataSanitizer; +import com.box.sdkgen.networking.baseurls.BaseUrls; +import com.box.sdkgen.networking.boxnetworkclient.BoxNetworkClient; +import com.box.sdkgen.networking.interceptors.Interceptor; +import com.box.sdkgen.networking.networkclient.NetworkClient; +import com.box.sdkgen.networking.retries.BoxRetryStrategy; +import com.box.sdkgen.networking.retries.RetryStrategy; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class NetworkSession { + protected Map additionalHeaders = new HashMap<>(); + + protected BaseUrls baseUrls = new BaseUrls(); + + protected List interceptors = new ArrayList<>(); + + protected NetworkClient networkClient; + + protected RetryStrategy retryStrategy; + + protected DataSanitizer dataSanitizer; + + public NetworkSession() { + networkClient = new BoxNetworkClient(); + retryStrategy = new BoxRetryStrategy(); + dataSanitizer = new DataSanitizer(); + } + + protected NetworkSession(Builder builder) { + this.additionalHeaders = builder.additionalHeaders; + this.baseUrls = builder.baseUrls; + this.networkClient = builder.networkClient; + this.interceptors = builder.interceptors; + this.retryStrategy = builder.retryStrategy; + this.dataSanitizer = builder.dataSanitizer; + } + + public NetworkSession withAdditionalHeaders() { + return withAdditionalHeaders(new HashMap<>()); + } + + public NetworkSession withAdditionalHeaders(Map additionalHeaders) { + Map newHeaders = new HashMap<>(); + newHeaders.putAll(this.additionalHeaders); + newHeaders.putAll(additionalHeaders); + return new NetworkSession.Builder() + .additionalHeaders(newHeaders) + .baseUrls(this.baseUrls) + .interceptors(this.interceptors) + .networkClient(this.networkClient) + .retryStrategy(this.retryStrategy) + .dataSanitizer(dataSanitizer) + .build(); + } + + public NetworkSession withCustomBaseUrls(BaseUrls baseUrls) { + return new Builder() + .additionalHeaders(this.additionalHeaders) + .baseUrls(baseUrls) + .interceptors(this.interceptors) + .networkClient(this.networkClient) + .retryStrategy(this.retryStrategy) + .dataSanitizer(dataSanitizer) + .build(); + } + + public NetworkSession withInterceptors(List interceptors) { + List newInterceptors = + Stream.concat(this.interceptors.stream(), interceptors.stream()) + .collect(Collectors.toList()); + return new Builder() + .additionalHeaders(this.additionalHeaders) + .baseUrls(this.baseUrls) + .interceptors(newInterceptors) + .networkClient(this.networkClient) + .retryStrategy(this.retryStrategy) + .dataSanitizer(dataSanitizer) + .build(); + } + + public NetworkSession withNetworkClient(NetworkClient networkClient) { + return new Builder() + .additionalHeaders(this.additionalHeaders) + .baseUrls(this.baseUrls) + .interceptors(this.interceptors) + .networkClient(networkClient) + .retryStrategy(this.retryStrategy) + .dataSanitizer(dataSanitizer) + .build(); + } + + public NetworkSession withRetryStrategy(RetryStrategy retryStrategy) { + return new Builder() + .additionalHeaders(this.additionalHeaders) + .baseUrls(this.baseUrls) + .interceptors(this.interceptors) + .networkClient(this.networkClient) + .retryStrategy(retryStrategy) + .dataSanitizer(dataSanitizer) + .build(); + } + + public NetworkSession withDataSanitizer(DataSanitizer dataSanitizer) { + return new Builder() + .additionalHeaders(this.additionalHeaders) + .baseUrls(this.baseUrls) + .interceptors(this.interceptors) + .networkClient(this.networkClient) + .retryStrategy(this.retryStrategy) + .dataSanitizer(dataSanitizer) + .build(); + } + + public Map getAdditionalHeaders() { + return additionalHeaders; + } + + public BaseUrls getBaseUrls() { + return baseUrls; + } + + public NetworkClient getNetworkClient() { + return networkClient; + } + + public List getInterceptors() { + return interceptors; + } + + public RetryStrategy getRetryStrategy() { + return retryStrategy; + } + + public DataSanitizer getDataSanitizer() { + return dataSanitizer; + } + + public static class Builder { + + protected Map additionalHeaders = new HashMap<>(); + + protected BaseUrls baseUrls = new BaseUrls(); + + protected NetworkClient networkClient; + + protected List interceptors = new ArrayList<>(); + + protected RetryStrategy retryStrategy; + + protected DataSanitizer dataSanitizer; + + public Builder() { + networkClient = new BoxNetworkClient(); + retryStrategy = new BoxRetryStrategy(); + dataSanitizer = new DataSanitizer(); + } + + public Builder additionalHeaders(Map additionalHeaders) { + this.additionalHeaders = additionalHeaders; + return this; + } + + public Builder baseUrls(BaseUrls baseUrls) { + this.baseUrls = baseUrls; + return this; + } + + public Builder networkClient(NetworkClient networkClient) { + this.networkClient = networkClient; + return this; + } + + public Builder interceptors(List interceptors) { + this.interceptors = interceptors; + return this; + } + + public Builder retryStrategy(RetryStrategy retryStrategy) { + this.retryStrategy = retryStrategy; + return this; + } + + public Builder dataSanitizer(DataSanitizer dataSanitizer) { + this.dataSanitizer = dataSanitizer; + return this; + } + + public NetworkSession build() { + return new NetworkSession(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/networking/networkclient/NetworkClient.java b/src/main/java/com/box/sdkgen/networking/networkclient/NetworkClient.java new file mode 100644 index 000000000..23c1adaac --- /dev/null +++ b/src/main/java/com/box/sdkgen/networking/networkclient/NetworkClient.java @@ -0,0 +1,9 @@ +package com.box.sdkgen.networking.networkclient; + +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; + +public interface NetworkClient { + + FetchResponse fetch(FetchOptions options); +} diff --git a/src/main/java/com/box/sdkgen/networking/retries/BoxRetryStrategy.java b/src/main/java/com/box/sdkgen/networking/retries/BoxRetryStrategy.java new file mode 100644 index 000000000..6c2891681 --- /dev/null +++ b/src/main/java/com/box/sdkgen/networking/retries/BoxRetryStrategy.java @@ -0,0 +1,134 @@ +package com.box.sdkgen.networking.retries; + +import static com.box.sdkgen.internal.utils.UtilsManager.random; + +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; + +public class BoxRetryStrategy implements RetryStrategy { + + public int maxAttempts; + + public double retryRandomizationFactor; + + public double retryBaseInterval; + + public int maxRetriesOnException; + + public BoxRetryStrategy() { + this.maxAttempts = 5; + this.retryRandomizationFactor = 0.5; + this.retryBaseInterval = 1; + this.maxRetriesOnException = 2; + } + + protected BoxRetryStrategy(Builder builder) { + this.maxAttempts = builder.maxAttempts; + this.retryRandomizationFactor = builder.retryRandomizationFactor; + this.retryBaseInterval = builder.retryBaseInterval; + this.maxRetriesOnException = builder.maxRetriesOnException; + } + + @Override + public boolean shouldRetry( + FetchOptions fetchOptions, FetchResponse fetchResponse, int attemptNumber) { + if (fetchResponse.getStatus() == 0) { + return attemptNumber <= this.maxRetriesOnException; + } + boolean isSuccessful = fetchResponse.getStatus() >= 200 && fetchResponse.getStatus() < 400; + String retryAfterHeader = fetchResponse.getHeaders().get("Retry-After"); + boolean isAcceptedWithRetryAfter = + fetchResponse.getStatus() == 202 && !(retryAfterHeader == null); + if (attemptNumber >= this.maxAttempts) { + return false; + } + if (isAcceptedWithRetryAfter) { + return true; + } + if (fetchResponse.getStatus() >= 500) { + return true; + } + if (fetchResponse.getStatus() == 429) { + return true; + } + if (fetchResponse.getStatus() == 401 && !(fetchOptions.getAuth() == null)) { + fetchOptions.getAuth().refreshToken(fetchOptions.getNetworkSession()); + return true; + } + if (isSuccessful) { + return false; + } + return false; + } + + @Override + public double retryAfter( + FetchOptions fetchOptions, FetchResponse fetchResponse, int attemptNumber) { + String retryAfterHeader = fetchResponse.getHeaders().get("Retry-After"); + if (!(retryAfterHeader == null)) { + return Double.parseDouble(retryAfterHeader); + } + double randomization = + random(1 - this.retryRandomizationFactor, 1 + this.retryRandomizationFactor); + double exponential = Math.pow(2, attemptNumber); + return exponential * this.retryBaseInterval * randomization; + } + + public int getMaxAttempts() { + return maxAttempts; + } + + public double getRetryRandomizationFactor() { + return retryRandomizationFactor; + } + + public double getRetryBaseInterval() { + return retryBaseInterval; + } + + public int getMaxRetriesOnException() { + return maxRetriesOnException; + } + + public static class Builder { + + protected int maxAttempts; + + protected double retryRandomizationFactor; + + protected double retryBaseInterval; + + protected int maxRetriesOnException; + + public Builder() { + this.maxAttempts = 5; + this.retryRandomizationFactor = 0.5; + this.retryBaseInterval = 1; + this.maxRetriesOnException = 2; + } + + public Builder maxAttempts(int maxAttempts) { + this.maxAttempts = maxAttempts; + return this; + } + + public Builder retryRandomizationFactor(double retryRandomizationFactor) { + this.retryRandomizationFactor = retryRandomizationFactor; + return this; + } + + public Builder retryBaseInterval(double retryBaseInterval) { + this.retryBaseInterval = retryBaseInterval; + return this; + } + + public Builder maxRetriesOnException(int maxRetriesOnException) { + this.maxRetriesOnException = maxRetriesOnException; + return this; + } + + public BoxRetryStrategy build() { + return new BoxRetryStrategy(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/networking/retries/RetryStrategy.java b/src/main/java/com/box/sdkgen/networking/retries/RetryStrategy.java new file mode 100644 index 000000000..a6a83e2e3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/networking/retries/RetryStrategy.java @@ -0,0 +1,11 @@ +package com.box.sdkgen.networking.retries; + +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; + +public interface RetryStrategy { + + boolean shouldRetry(FetchOptions fetchOptions, FetchResponse fetchResponse, int attemptNumber); + + double retryAfter(FetchOptions fetchOptions, FetchResponse fetchResponse, int attemptNumber); +} diff --git a/src/main/java/com/box/sdkgen/networking/version/Version.java b/src/main/java/com/box/sdkgen/networking/version/Version.java new file mode 100644 index 000000000..f31faab37 --- /dev/null +++ b/src/main/java/com/box/sdkgen/networking/version/Version.java @@ -0,0 +1,8 @@ +package com.box.sdkgen.networking.version; + +public class Version { + + public static String getVersion() { + return "0.1.0"; + } +} diff --git a/src/main/java/com/box/sdkgen/parameters/v2025r0/boxversionheaderv2025r0/BoxVersionHeaderV2025R0.java b/src/main/java/com/box/sdkgen/parameters/v2025r0/boxversionheaderv2025r0/BoxVersionHeaderV2025R0.java new file mode 100644 index 000000000..da8911ec9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/parameters/v2025r0/boxversionheaderv2025r0/BoxVersionHeaderV2025R0.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum BoxVersionHeaderV2025R0 implements Valuable { + _2025_0("2025.0"); + + private final String value; + + BoxVersionHeaderV2025R0(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class BoxVersionHeaderV2025R0Deserializer + extends JsonDeserializer> { + + public BoxVersionHeaderV2025R0Deserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(BoxVersionHeaderV2025R0.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class BoxVersionHeaderV2025R0Serializer + extends JsonSerializer> { + + public BoxVersionHeaderV2025R0Serializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/accesstoken/AccessToken.java b/src/main/java/com/box/sdkgen/schemas/accesstoken/AccessToken.java new file mode 100644 index 000000000..2de8e26ff --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/accesstoken/AccessToken.java @@ -0,0 +1,190 @@ +package com.box.sdkgen.schemas.accesstoken; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.fileorfolderscope.FileOrFolderScope; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AccessToken extends SerializableObject { + + @JsonProperty("access_token") + protected String accessToken; + + @JsonProperty("expires_in") + protected Long expiresIn; + + @JsonDeserialize(using = AccessTokenTokenTypeField.AccessTokenTokenTypeFieldDeserializer.class) + @JsonSerialize(using = AccessTokenTokenTypeField.AccessTokenTokenTypeFieldSerializer.class) + @JsonProperty("token_type") + protected EnumWrapper tokenType; + + @JsonProperty("restricted_to") + protected List restrictedTo; + + @JsonProperty("refresh_token") + protected String refreshToken; + + @JsonDeserialize( + using = AccessTokenIssuedTokenTypeField.AccessTokenIssuedTokenTypeFieldDeserializer.class) + @JsonSerialize( + using = AccessTokenIssuedTokenTypeField.AccessTokenIssuedTokenTypeFieldSerializer.class) + @JsonProperty("issued_token_type") + protected EnumWrapper issuedTokenType; + + public AccessToken() { + super(); + } + + protected AccessToken(Builder builder) { + super(); + this.accessToken = builder.accessToken; + this.expiresIn = builder.expiresIn; + this.tokenType = builder.tokenType; + this.restrictedTo = builder.restrictedTo; + this.refreshToken = builder.refreshToken; + this.issuedTokenType = builder.issuedTokenType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getAccessToken() { + return accessToken; + } + + public Long getExpiresIn() { + return expiresIn; + } + + public EnumWrapper getTokenType() { + return tokenType; + } + + public List getRestrictedTo() { + return restrictedTo; + } + + public String getRefreshToken() { + return refreshToken; + } + + public EnumWrapper getIssuedTokenType() { + return issuedTokenType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AccessToken casted = (AccessToken) o; + return Objects.equals(accessToken, casted.accessToken) + && Objects.equals(expiresIn, casted.expiresIn) + && Objects.equals(tokenType, casted.tokenType) + && Objects.equals(restrictedTo, casted.restrictedTo) + && Objects.equals(refreshToken, casted.refreshToken) + && Objects.equals(issuedTokenType, casted.issuedTokenType); + } + + @Override + public int hashCode() { + return Objects.hash( + accessToken, expiresIn, tokenType, restrictedTo, refreshToken, issuedTokenType); + } + + @Override + public String toString() { + return "AccessToken{" + + "accessToken='" + + accessToken + + '\'' + + ", " + + "expiresIn='" + + expiresIn + + '\'' + + ", " + + "tokenType='" + + tokenType + + '\'' + + ", " + + "restrictedTo='" + + restrictedTo + + '\'' + + ", " + + "refreshToken='" + + refreshToken + + '\'' + + ", " + + "issuedTokenType='" + + issuedTokenType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String accessToken; + + protected Long expiresIn; + + protected EnumWrapper tokenType; + + protected List restrictedTo; + + protected String refreshToken; + + protected EnumWrapper issuedTokenType; + + public Builder accessToken(String accessToken) { + this.accessToken = accessToken; + return this; + } + + public Builder expiresIn(Long expiresIn) { + this.expiresIn = expiresIn; + return this; + } + + public Builder tokenType(AccessTokenTokenTypeField tokenType) { + this.tokenType = new EnumWrapper(tokenType); + return this; + } + + public Builder tokenType(EnumWrapper tokenType) { + this.tokenType = tokenType; + return this; + } + + public Builder restrictedTo(List restrictedTo) { + this.restrictedTo = restrictedTo; + return this; + } + + public Builder refreshToken(String refreshToken) { + this.refreshToken = refreshToken; + return this; + } + + public Builder issuedTokenType(AccessTokenIssuedTokenTypeField issuedTokenType) { + this.issuedTokenType = new EnumWrapper(issuedTokenType); + return this; + } + + public Builder issuedTokenType(EnumWrapper issuedTokenType) { + this.issuedTokenType = issuedTokenType; + return this; + } + + public AccessToken build() { + return new AccessToken(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/accesstoken/AccessTokenIssuedTokenTypeField.java b/src/main/java/com/box/sdkgen/schemas/accesstoken/AccessTokenIssuedTokenTypeField.java new file mode 100644 index 000000000..a87be314a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/accesstoken/AccessTokenIssuedTokenTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.accesstoken; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AccessTokenIssuedTokenTypeField implements Valuable { + URN_IETF_PARAMS_OAUTH_TOKEN_TYPE_ACCESS_TOKEN("urn:ietf:params:oauth:token-type:access_token"); + + private final String value; + + AccessTokenIssuedTokenTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AccessTokenIssuedTokenTypeFieldDeserializer + extends JsonDeserializer> { + + public AccessTokenIssuedTokenTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AccessTokenIssuedTokenTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AccessTokenIssuedTokenTypeFieldSerializer + extends JsonSerializer> { + + public AccessTokenIssuedTokenTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/accesstoken/AccessTokenTokenTypeField.java b/src/main/java/com/box/sdkgen/schemas/accesstoken/AccessTokenTokenTypeField.java new file mode 100644 index 000000000..85ed1dfb7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/accesstoken/AccessTokenTokenTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.accesstoken; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AccessTokenTokenTypeField implements Valuable { + BEARER("bearer"); + + private final String value; + + AccessTokenTokenTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AccessTokenTokenTypeFieldDeserializer + extends JsonDeserializer> { + + public AccessTokenTokenTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AccessTokenTokenTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AccessTokenTokenTypeFieldSerializer + extends JsonSerializer> { + + public AccessTokenTokenTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentallowedentity/AiAgentAllowedEntity.java b/src/main/java/com/box/sdkgen/schemas/aiagentallowedentity/AiAgentAllowedEntity.java new file mode 100644 index 000000000..1931256dc --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentallowedentity/AiAgentAllowedEntity.java @@ -0,0 +1,83 @@ +package com.box.sdkgen.schemas.aiagentallowedentity; + +import com.box.sdkgen.internal.OneOfTwo; +import com.box.sdkgen.schemas.groupbase.GroupBase; +import com.box.sdkgen.schemas.userbase.UserBase; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize(using = AiAgentAllowedEntity.AiAgentAllowedEntityDeserializer.class) +@JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) +public class AiAgentAllowedEntity extends OneOfTwo { + + protected final String id; + + protected final String type; + + public AiAgentAllowedEntity(UserBase userBase) { + super(userBase, null); + this.id = userBase.getId(); + this.type = EnumWrapper.convertToString(userBase.getType()); + } + + public AiAgentAllowedEntity(GroupBase groupBase) { + super(null, groupBase); + this.id = groupBase.getId(); + this.type = EnumWrapper.convertToString(groupBase.getType()); + } + + public boolean isUserBase() { + return value0 != null; + } + + public UserBase getUserBase() { + return value0; + } + + public boolean isGroupBase() { + return value1 != null; + } + + public GroupBase getGroupBase() { + return value1; + } + + public String getId() { + return id; + } + + public String getType() { + return type; + } + + static class AiAgentAllowedEntityDeserializer extends JsonDeserializer { + + public AiAgentAllowedEntityDeserializer() { + super(); + } + + @Override + public AiAgentAllowedEntity deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "user": + return new AiAgentAllowedEntity(JsonManager.deserialize(node, UserBase.class)); + case "group": + return new AiAgentAllowedEntity(JsonManager.deserialize(node, GroupBase.class)); + } + } + throw new JsonMappingException(jp, "Unable to deserialize AiAgentAllowedEntity"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentask/AiAgentAsk.java b/src/main/java/com/box/sdkgen/schemas/aiagentask/AiAgentAsk.java new file mode 100644 index 000000000..9e34bd12d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentask/AiAgentAsk.java @@ -0,0 +1,233 @@ +package com.box.sdkgen.schemas.aiagentask; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.aiagentbasictexttool.AiAgentBasicTextTool; +import com.box.sdkgen.schemas.aiagentlongtexttool.AiAgentLongTextTool; +import com.box.sdkgen.schemas.aiagentspreadsheettool.AiAgentSpreadsheetTool; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiAgentAsk extends SerializableObject { + + @JsonDeserialize(using = AiAgentAskTypeField.AiAgentAskTypeFieldDeserializer.class) + @JsonSerialize(using = AiAgentAskTypeField.AiAgentAskTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("long_text") + protected AiAgentLongTextTool longText; + + @JsonProperty("basic_text") + protected AiAgentBasicTextTool basicText; + + protected AiAgentSpreadsheetTool spreadsheet; + + @JsonProperty("long_text_multi") + protected AiAgentLongTextTool longTextMulti; + + @JsonProperty("basic_text_multi") + protected AiAgentBasicTextTool basicTextMulti; + + @JsonProperty("basic_image") + protected AiAgentBasicTextTool basicImage; + + @JsonProperty("basic_image_multi") + protected AiAgentBasicTextTool basicImageMulti; + + public AiAgentAsk() { + super(); + this.type = new EnumWrapper(AiAgentAskTypeField.AI_AGENT_ASK); + } + + protected AiAgentAsk(Builder builder) { + super(); + this.type = builder.type; + this.longText = builder.longText; + this.basicText = builder.basicText; + this.spreadsheet = builder.spreadsheet; + this.longTextMulti = builder.longTextMulti; + this.basicTextMulti = builder.basicTextMulti; + this.basicImage = builder.basicImage; + this.basicImageMulti = builder.basicImageMulti; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public AiAgentLongTextTool getLongText() { + return longText; + } + + public AiAgentBasicTextTool getBasicText() { + return basicText; + } + + public AiAgentSpreadsheetTool getSpreadsheet() { + return spreadsheet; + } + + public AiAgentLongTextTool getLongTextMulti() { + return longTextMulti; + } + + public AiAgentBasicTextTool getBasicTextMulti() { + return basicTextMulti; + } + + public AiAgentBasicTextTool getBasicImage() { + return basicImage; + } + + public AiAgentBasicTextTool getBasicImageMulti() { + return basicImageMulti; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiAgentAsk casted = (AiAgentAsk) o; + return Objects.equals(type, casted.type) + && Objects.equals(longText, casted.longText) + && Objects.equals(basicText, casted.basicText) + && Objects.equals(spreadsheet, casted.spreadsheet) + && Objects.equals(longTextMulti, casted.longTextMulti) + && Objects.equals(basicTextMulti, casted.basicTextMulti) + && Objects.equals(basicImage, casted.basicImage) + && Objects.equals(basicImageMulti, casted.basicImageMulti); + } + + @Override + public int hashCode() { + return Objects.hash( + type, + longText, + basicText, + spreadsheet, + longTextMulti, + basicTextMulti, + basicImage, + basicImageMulti); + } + + @Override + public String toString() { + return "AiAgentAsk{" + + "type='" + + type + + '\'' + + ", " + + "longText='" + + longText + + '\'' + + ", " + + "basicText='" + + basicText + + '\'' + + ", " + + "spreadsheet='" + + spreadsheet + + '\'' + + ", " + + "longTextMulti='" + + longTextMulti + + '\'' + + ", " + + "basicTextMulti='" + + basicTextMulti + + '\'' + + ", " + + "basicImage='" + + basicImage + + '\'' + + ", " + + "basicImageMulti='" + + basicImageMulti + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected AiAgentLongTextTool longText; + + protected AiAgentBasicTextTool basicText; + + protected AiAgentSpreadsheetTool spreadsheet; + + protected AiAgentLongTextTool longTextMulti; + + protected AiAgentBasicTextTool basicTextMulti; + + protected AiAgentBasicTextTool basicImage; + + protected AiAgentBasicTextTool basicImageMulti; + + public Builder() { + super(); + this.type = new EnumWrapper(AiAgentAskTypeField.AI_AGENT_ASK); + } + + public Builder type(AiAgentAskTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder longText(AiAgentLongTextTool longText) { + this.longText = longText; + return this; + } + + public Builder basicText(AiAgentBasicTextTool basicText) { + this.basicText = basicText; + return this; + } + + public Builder spreadsheet(AiAgentSpreadsheetTool spreadsheet) { + this.spreadsheet = spreadsheet; + return this; + } + + public Builder longTextMulti(AiAgentLongTextTool longTextMulti) { + this.longTextMulti = longTextMulti; + return this; + } + + public Builder basicTextMulti(AiAgentBasicTextTool basicTextMulti) { + this.basicTextMulti = basicTextMulti; + return this; + } + + public Builder basicImage(AiAgentBasicTextTool basicImage) { + this.basicImage = basicImage; + return this; + } + + public Builder basicImageMulti(AiAgentBasicTextTool basicImageMulti) { + this.basicImageMulti = basicImageMulti; + return this; + } + + public AiAgentAsk build() { + return new AiAgentAsk(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentask/AiAgentAskTypeField.java b/src/main/java/com/box/sdkgen/schemas/aiagentask/AiAgentAskTypeField.java new file mode 100644 index 000000000..b264c96a1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentask/AiAgentAskTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.aiagentask; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AiAgentAskTypeField implements Valuable { + AI_AGENT_ASK("ai_agent_ask"); + + private final String value; + + AiAgentAskTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AiAgentAskTypeFieldDeserializer + extends JsonDeserializer> { + + public AiAgentAskTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AiAgentAskTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AiAgentAskTypeFieldSerializer + extends JsonSerializer> { + + public AiAgentAskTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentaskoraiagentextractoraiagentextractstructuredoraiagenttextgen/AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen.java b/src/main/java/com/box/sdkgen/schemas/aiagentaskoraiagentextractoraiagentextractstructuredoraiagenttextgen/AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen.java new file mode 100644 index 000000000..97ddaf059 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentaskoraiagentextractoraiagentextractstructuredoraiagenttextgen/AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen.java @@ -0,0 +1,123 @@ +package com.box.sdkgen.schemas.aiagentaskoraiagentextractoraiagentextractstructuredoraiagenttextgen; + +import com.box.sdkgen.internal.OneOfFour; +import com.box.sdkgen.schemas.aiagentask.AiAgentAsk; +import com.box.sdkgen.schemas.aiagentextract.AiAgentExtract; +import com.box.sdkgen.schemas.aiagentextractstructured.AiAgentExtractStructured; +import com.box.sdkgen.schemas.aiagenttextgen.AiAgentTextGen; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize( + using = + AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen + .AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGenDeserializer.class) +@JsonSerialize(using = OneOfFour.OneOfFourSerializer.class) +public class AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen + extends OneOfFour { + + protected final String type; + + public AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen( + AiAgentAsk aiAgentAsk) { + super(aiAgentAsk, null, null, null); + this.type = EnumWrapper.convertToString(aiAgentAsk.getType()); + } + + public AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen( + AiAgentExtract aiAgentExtract) { + super(null, aiAgentExtract, null, null); + this.type = EnumWrapper.convertToString(aiAgentExtract.getType()); + } + + public AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen( + AiAgentExtractStructured aiAgentExtractStructured) { + super(null, null, aiAgentExtractStructured, null); + this.type = EnumWrapper.convertToString(aiAgentExtractStructured.getType()); + } + + public AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen( + AiAgentTextGen aiAgentTextGen) { + super(null, null, null, aiAgentTextGen); + this.type = EnumWrapper.convertToString(aiAgentTextGen.getType()); + } + + public boolean isAiAgentAsk() { + return value0 != null; + } + + public AiAgentAsk getAiAgentAsk() { + return value0; + } + + public boolean isAiAgentExtract() { + return value1 != null; + } + + public AiAgentExtract getAiAgentExtract() { + return value1; + } + + public boolean isAiAgentExtractStructured() { + return value2 != null; + } + + public AiAgentExtractStructured getAiAgentExtractStructured() { + return value2; + } + + public boolean isAiAgentTextGen() { + return value3 != null; + } + + public AiAgentTextGen getAiAgentTextGen() { + return value3; + } + + public String getType() { + return type; + } + + static class AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGenDeserializer + extends JsonDeserializer< + AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen> { + + public AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGenDeserializer() { + super(); + } + + @Override + public AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen deserialize( + JsonParser jp, DeserializationContext ctxt) throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "ai_agent_ask": + return new AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen( + JsonManager.deserialize(node, AiAgentAsk.class)); + case "ai_agent_extract": + return new AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen( + JsonManager.deserialize(node, AiAgentExtract.class)); + case "ai_agent_extract_structured": + return new AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen( + JsonManager.deserialize(node, AiAgentExtractStructured.class)); + case "ai_agent_text_gen": + return new AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen( + JsonManager.deserialize(node, AiAgentTextGen.class)); + } + } + throw new JsonMappingException( + jp, + "Unable to deserialize AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentaskoraiagentreference/AiAgentAskOrAiAgentReference.java b/src/main/java/com/box/sdkgen/schemas/aiagentaskoraiagentreference/AiAgentAskOrAiAgentReference.java new file mode 100644 index 000000000..8588c3cf6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentaskoraiagentreference/AiAgentAskOrAiAgentReference.java @@ -0,0 +1,79 @@ +package com.box.sdkgen.schemas.aiagentaskoraiagentreference; + +import com.box.sdkgen.internal.OneOfTwo; +import com.box.sdkgen.schemas.aiagentask.AiAgentAsk; +import com.box.sdkgen.schemas.aiagentreference.AiAgentReference; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize( + using = AiAgentAskOrAiAgentReference.AiAgentAskOrAiAgentReferenceDeserializer.class) +@JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) +public class AiAgentAskOrAiAgentReference extends OneOfTwo { + + protected final String type; + + public AiAgentAskOrAiAgentReference(AiAgentAsk aiAgentAsk) { + super(aiAgentAsk, null); + this.type = EnumWrapper.convertToString(aiAgentAsk.getType()); + } + + public AiAgentAskOrAiAgentReference(AiAgentReference aiAgentReference) { + super(null, aiAgentReference); + this.type = EnumWrapper.convertToString(aiAgentReference.getType()); + } + + public boolean isAiAgentAsk() { + return value0 != null; + } + + public AiAgentAsk getAiAgentAsk() { + return value0; + } + + public boolean isAiAgentReference() { + return value1 != null; + } + + public AiAgentReference getAiAgentReference() { + return value1; + } + + public String getType() { + return type; + } + + static class AiAgentAskOrAiAgentReferenceDeserializer + extends JsonDeserializer { + + public AiAgentAskOrAiAgentReferenceDeserializer() { + super(); + } + + @Override + public AiAgentAskOrAiAgentReference deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "ai_agent_ask": + return new AiAgentAskOrAiAgentReference( + JsonManager.deserialize(node, AiAgentAsk.class)); + case "ai_agent_id": + return new AiAgentAskOrAiAgentReference( + JsonManager.deserialize(node, AiAgentReference.class)); + } + } + throw new JsonMappingException(jp, "Unable to deserialize AiAgentAskOrAiAgentReference"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentbasicgentool/AiAgentBasicGenTool.java b/src/main/java/com/box/sdkgen/schemas/aiagentbasicgentool/AiAgentBasicGenTool.java new file mode 100644 index 000000000..a0e5e88d6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentbasicgentool/AiAgentBasicGenTool.java @@ -0,0 +1,170 @@ +package com.box.sdkgen.schemas.aiagentbasicgentool; + +import com.box.sdkgen.schemas.aiagentlongtexttooltextgen.AiAgentLongTextToolTextGen; +import com.box.sdkgen.schemas.aiagentlongtexttooltextgen.AiAgentLongTextToolTextGenEmbeddingsField; +import com.box.sdkgen.schemas.aillmendpointparams.AiLlmEndpointParams; +import com.box.sdkgen.schemas.aillmendpointparamsaws.AiLlmEndpointParamsAws; +import com.box.sdkgen.schemas.aillmendpointparamsgoogle.AiLlmEndpointParamsGoogle; +import com.box.sdkgen.schemas.aillmendpointparamsibm.AiLlmEndpointParamsIbm; +import com.box.sdkgen.schemas.aillmendpointparamsopenai.AiLlmEndpointParamsOpenAi; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiAgentBasicGenTool extends AiAgentLongTextToolTextGen { + + @JsonProperty("content_template") + protected String contentTemplate; + + public AiAgentBasicGenTool() { + super(); + } + + protected AiAgentBasicGenTool(Builder builder) { + super(builder); + this.contentTemplate = builder.contentTemplate; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getContentTemplate() { + return contentTemplate; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiAgentBasicGenTool casted = (AiAgentBasicGenTool) o; + return Objects.equals(model, casted.model) + && Objects.equals(numTokensForCompletion, casted.numTokensForCompletion) + && Objects.equals(llmEndpointParams, casted.llmEndpointParams) + && Objects.equals(systemMessage, casted.systemMessage) + && Objects.equals(promptTemplate, casted.promptTemplate) + && Objects.equals(embeddings, casted.embeddings) + && Objects.equals(contentTemplate, casted.contentTemplate); + } + + @Override + public int hashCode() { + return Objects.hash( + model, + numTokensForCompletion, + llmEndpointParams, + systemMessage, + promptTemplate, + embeddings, + contentTemplate); + } + + @Override + public String toString() { + return "AiAgentBasicGenTool{" + + "model='" + + model + + '\'' + + ", " + + "numTokensForCompletion='" + + numTokensForCompletion + + '\'' + + ", " + + "llmEndpointParams='" + + llmEndpointParams + + '\'' + + ", " + + "systemMessage='" + + systemMessage + + '\'' + + ", " + + "promptTemplate='" + + promptTemplate + + '\'' + + ", " + + "embeddings='" + + embeddings + + '\'' + + ", " + + "contentTemplate='" + + contentTemplate + + '\'' + + "}"; + } + + public static class Builder extends AiAgentLongTextToolTextGen.Builder { + + protected String contentTemplate; + + public Builder contentTemplate(String contentTemplate) { + this.contentTemplate = contentTemplate; + return this; + } + + @Override + public Builder model(String model) { + this.model = model; + return this; + } + + @Override + public Builder numTokensForCompletion(Long numTokensForCompletion) { + this.numTokensForCompletion = numTokensForCompletion; + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsOpenAi llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsGoogle llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsAws llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsIbm llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParams llmEndpointParams) { + this.llmEndpointParams = llmEndpointParams; + return this; + } + + @Override + public Builder systemMessage(String systemMessage) { + this.systemMessage = systemMessage; + return this; + } + + @Override + public Builder promptTemplate(String promptTemplate) { + this.promptTemplate = promptTemplate; + return this; + } + + @Override + public Builder embeddings(AiAgentLongTextToolTextGenEmbeddingsField embeddings) { + this.embeddings = embeddings; + return this; + } + + public AiAgentBasicGenTool build() { + return new AiAgentBasicGenTool(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttool/AiAgentBasicTextTool.java b/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttool/AiAgentBasicTextTool.java new file mode 100644 index 000000000..313b9808c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttool/AiAgentBasicTextTool.java @@ -0,0 +1,150 @@ +package com.box.sdkgen.schemas.aiagentbasictexttool; + +import com.box.sdkgen.schemas.aiagentbasictexttoolbase.AiAgentBasicTextToolBase; +import com.box.sdkgen.schemas.aillmendpointparams.AiLlmEndpointParams; +import com.box.sdkgen.schemas.aillmendpointparamsaws.AiLlmEndpointParamsAws; +import com.box.sdkgen.schemas.aillmendpointparamsgoogle.AiLlmEndpointParamsGoogle; +import com.box.sdkgen.schemas.aillmendpointparamsibm.AiLlmEndpointParamsIbm; +import com.box.sdkgen.schemas.aillmendpointparamsopenai.AiLlmEndpointParamsOpenAi; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiAgentBasicTextTool extends AiAgentBasicTextToolBase { + + @JsonProperty("system_message") + protected String systemMessage; + + @JsonProperty("prompt_template") + protected String promptTemplate; + + public AiAgentBasicTextTool() { + super(); + } + + protected AiAgentBasicTextTool(Builder builder) { + super(builder); + this.systemMessage = builder.systemMessage; + this.promptTemplate = builder.promptTemplate; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getSystemMessage() { + return systemMessage; + } + + public String getPromptTemplate() { + return promptTemplate; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiAgentBasicTextTool casted = (AiAgentBasicTextTool) o; + return Objects.equals(model, casted.model) + && Objects.equals(numTokensForCompletion, casted.numTokensForCompletion) + && Objects.equals(llmEndpointParams, casted.llmEndpointParams) + && Objects.equals(systemMessage, casted.systemMessage) + && Objects.equals(promptTemplate, casted.promptTemplate); + } + + @Override + public int hashCode() { + return Objects.hash( + model, numTokensForCompletion, llmEndpointParams, systemMessage, promptTemplate); + } + + @Override + public String toString() { + return "AiAgentBasicTextTool{" + + "model='" + + model + + '\'' + + ", " + + "numTokensForCompletion='" + + numTokensForCompletion + + '\'' + + ", " + + "llmEndpointParams='" + + llmEndpointParams + + '\'' + + ", " + + "systemMessage='" + + systemMessage + + '\'' + + ", " + + "promptTemplate='" + + promptTemplate + + '\'' + + "}"; + } + + public static class Builder extends AiAgentBasicTextToolBase.Builder { + + protected String systemMessage; + + protected String promptTemplate; + + public Builder systemMessage(String systemMessage) { + this.systemMessage = systemMessage; + return this; + } + + public Builder promptTemplate(String promptTemplate) { + this.promptTemplate = promptTemplate; + return this; + } + + @Override + public Builder model(String model) { + this.model = model; + return this; + } + + @Override + public Builder numTokensForCompletion(Long numTokensForCompletion) { + this.numTokensForCompletion = numTokensForCompletion; + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsOpenAi llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsGoogle llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsAws llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsIbm llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParams llmEndpointParams) { + this.llmEndpointParams = llmEndpointParams; + return this; + } + + public AiAgentBasicTextTool build() { + return new AiAgentBasicTextTool(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttoolbase/AiAgentBasicTextToolBase.java b/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttoolbase/AiAgentBasicTextToolBase.java new file mode 100644 index 000000000..c13f6e674 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttoolbase/AiAgentBasicTextToolBase.java @@ -0,0 +1,132 @@ +package com.box.sdkgen.schemas.aiagentbasictexttoolbase; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.aillmendpointparams.AiLlmEndpointParams; +import com.box.sdkgen.schemas.aillmendpointparamsaws.AiLlmEndpointParamsAws; +import com.box.sdkgen.schemas.aillmendpointparamsgoogle.AiLlmEndpointParamsGoogle; +import com.box.sdkgen.schemas.aillmendpointparamsibm.AiLlmEndpointParamsIbm; +import com.box.sdkgen.schemas.aillmendpointparamsopenai.AiLlmEndpointParamsOpenAi; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiAgentBasicTextToolBase extends SerializableObject { + + protected String model; + + @JsonProperty("num_tokens_for_completion") + protected Long numTokensForCompletion; + + @JsonProperty("llm_endpoint_params") + protected AiLlmEndpointParams llmEndpointParams; + + public AiAgentBasicTextToolBase() { + super(); + } + + protected AiAgentBasicTextToolBase(Builder builder) { + super(); + this.model = builder.model; + this.numTokensForCompletion = builder.numTokensForCompletion; + this.llmEndpointParams = builder.llmEndpointParams; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getModel() { + return model; + } + + public Long getNumTokensForCompletion() { + return numTokensForCompletion; + } + + public AiLlmEndpointParams getLlmEndpointParams() { + return llmEndpointParams; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiAgentBasicTextToolBase casted = (AiAgentBasicTextToolBase) o; + return Objects.equals(model, casted.model) + && Objects.equals(numTokensForCompletion, casted.numTokensForCompletion) + && Objects.equals(llmEndpointParams, casted.llmEndpointParams); + } + + @Override + public int hashCode() { + return Objects.hash(model, numTokensForCompletion, llmEndpointParams); + } + + @Override + public String toString() { + return "AiAgentBasicTextToolBase{" + + "model='" + + model + + '\'' + + ", " + + "numTokensForCompletion='" + + numTokensForCompletion + + '\'' + + ", " + + "llmEndpointParams='" + + llmEndpointParams + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String model; + + protected Long numTokensForCompletion; + + protected AiLlmEndpointParams llmEndpointParams; + + public Builder model(String model) { + this.model = model; + return this; + } + + public Builder numTokensForCompletion(Long numTokensForCompletion) { + this.numTokensForCompletion = numTokensForCompletion; + return this; + } + + public Builder llmEndpointParams(AiLlmEndpointParamsOpenAi llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + public Builder llmEndpointParams(AiLlmEndpointParamsGoogle llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + public Builder llmEndpointParams(AiLlmEndpointParamsAws llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + public Builder llmEndpointParams(AiLlmEndpointParamsIbm llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + public Builder llmEndpointParams(AiLlmEndpointParams llmEndpointParams) { + this.llmEndpointParams = llmEndpointParams; + return this; + } + + public AiAgentBasicTextToolBase build() { + return new AiAgentBasicTextToolBase(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttooltextgen/AiAgentBasicTextToolTextGen.java b/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttooltextgen/AiAgentBasicTextToolTextGen.java new file mode 100644 index 000000000..9e732c590 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttooltextgen/AiAgentBasicTextToolTextGen.java @@ -0,0 +1,150 @@ +package com.box.sdkgen.schemas.aiagentbasictexttooltextgen; + +import com.box.sdkgen.schemas.aiagentbasictexttoolbase.AiAgentBasicTextToolBase; +import com.box.sdkgen.schemas.aillmendpointparams.AiLlmEndpointParams; +import com.box.sdkgen.schemas.aillmendpointparamsaws.AiLlmEndpointParamsAws; +import com.box.sdkgen.schemas.aillmendpointparamsgoogle.AiLlmEndpointParamsGoogle; +import com.box.sdkgen.schemas.aillmendpointparamsibm.AiLlmEndpointParamsIbm; +import com.box.sdkgen.schemas.aillmendpointparamsopenai.AiLlmEndpointParamsOpenAi; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiAgentBasicTextToolTextGen extends AiAgentBasicTextToolBase { + + @JsonProperty("system_message") + protected String systemMessage; + + @JsonProperty("prompt_template") + protected String promptTemplate; + + public AiAgentBasicTextToolTextGen() { + super(); + } + + protected AiAgentBasicTextToolTextGen(Builder builder) { + super(builder); + this.systemMessage = builder.systemMessage; + this.promptTemplate = builder.promptTemplate; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getSystemMessage() { + return systemMessage; + } + + public String getPromptTemplate() { + return promptTemplate; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiAgentBasicTextToolTextGen casted = (AiAgentBasicTextToolTextGen) o; + return Objects.equals(model, casted.model) + && Objects.equals(numTokensForCompletion, casted.numTokensForCompletion) + && Objects.equals(llmEndpointParams, casted.llmEndpointParams) + && Objects.equals(systemMessage, casted.systemMessage) + && Objects.equals(promptTemplate, casted.promptTemplate); + } + + @Override + public int hashCode() { + return Objects.hash( + model, numTokensForCompletion, llmEndpointParams, systemMessage, promptTemplate); + } + + @Override + public String toString() { + return "AiAgentBasicTextToolTextGen{" + + "model='" + + model + + '\'' + + ", " + + "numTokensForCompletion='" + + numTokensForCompletion + + '\'' + + ", " + + "llmEndpointParams='" + + llmEndpointParams + + '\'' + + ", " + + "systemMessage='" + + systemMessage + + '\'' + + ", " + + "promptTemplate='" + + promptTemplate + + '\'' + + "}"; + } + + public static class Builder extends AiAgentBasicTextToolBase.Builder { + + protected String systemMessage; + + protected String promptTemplate; + + public Builder systemMessage(String systemMessage) { + this.systemMessage = systemMessage; + return this; + } + + public Builder promptTemplate(String promptTemplate) { + this.promptTemplate = promptTemplate; + return this; + } + + @Override + public Builder model(String model) { + this.model = model; + return this; + } + + @Override + public Builder numTokensForCompletion(Long numTokensForCompletion) { + this.numTokensForCompletion = numTokensForCompletion; + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsOpenAi llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsGoogle llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsAws llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsIbm llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParams llmEndpointParams) { + this.llmEndpointParams = llmEndpointParams; + return this; + } + + public AiAgentBasicTextToolTextGen build() { + return new AiAgentBasicTextToolTextGen(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentextract/AiAgentExtract.java b/src/main/java/com/box/sdkgen/schemas/aiagentextract/AiAgentExtract.java new file mode 100644 index 000000000..60b73387f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentextract/AiAgentExtract.java @@ -0,0 +1,146 @@ +package com.box.sdkgen.schemas.aiagentextract; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.aiagentbasictexttool.AiAgentBasicTextTool; +import com.box.sdkgen.schemas.aiagentlongtexttool.AiAgentLongTextTool; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiAgentExtract extends SerializableObject { + + @JsonDeserialize(using = AiAgentExtractTypeField.AiAgentExtractTypeFieldDeserializer.class) + @JsonSerialize(using = AiAgentExtractTypeField.AiAgentExtractTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("long_text") + protected AiAgentLongTextTool longText; + + @JsonProperty("basic_text") + protected AiAgentBasicTextTool basicText; + + @JsonProperty("basic_image") + protected AiAgentBasicTextTool basicImage; + + public AiAgentExtract() { + super(); + this.type = new EnumWrapper(AiAgentExtractTypeField.AI_AGENT_EXTRACT); + } + + protected AiAgentExtract(Builder builder) { + super(); + this.type = builder.type; + this.longText = builder.longText; + this.basicText = builder.basicText; + this.basicImage = builder.basicImage; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public AiAgentLongTextTool getLongText() { + return longText; + } + + public AiAgentBasicTextTool getBasicText() { + return basicText; + } + + public AiAgentBasicTextTool getBasicImage() { + return basicImage; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiAgentExtract casted = (AiAgentExtract) o; + return Objects.equals(type, casted.type) + && Objects.equals(longText, casted.longText) + && Objects.equals(basicText, casted.basicText) + && Objects.equals(basicImage, casted.basicImage); + } + + @Override + public int hashCode() { + return Objects.hash(type, longText, basicText, basicImage); + } + + @Override + public String toString() { + return "AiAgentExtract{" + + "type='" + + type + + '\'' + + ", " + + "longText='" + + longText + + '\'' + + ", " + + "basicText='" + + basicText + + '\'' + + ", " + + "basicImage='" + + basicImage + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected AiAgentLongTextTool longText; + + protected AiAgentBasicTextTool basicText; + + protected AiAgentBasicTextTool basicImage; + + public Builder() { + super(); + this.type = + new EnumWrapper(AiAgentExtractTypeField.AI_AGENT_EXTRACT); + } + + public Builder type(AiAgentExtractTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder longText(AiAgentLongTextTool longText) { + this.longText = longText; + return this; + } + + public Builder basicText(AiAgentBasicTextTool basicText) { + this.basicText = basicText; + return this; + } + + public Builder basicImage(AiAgentBasicTextTool basicImage) { + this.basicImage = basicImage; + return this; + } + + public AiAgentExtract build() { + return new AiAgentExtract(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentextract/AiAgentExtractTypeField.java b/src/main/java/com/box/sdkgen/schemas/aiagentextract/AiAgentExtractTypeField.java new file mode 100644 index 000000000..ded9dfdfa --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentextract/AiAgentExtractTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.aiagentextract; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AiAgentExtractTypeField implements Valuable { + AI_AGENT_EXTRACT("ai_agent_extract"); + + private final String value; + + AiAgentExtractTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AiAgentExtractTypeFieldDeserializer + extends JsonDeserializer> { + + public AiAgentExtractTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AiAgentExtractTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AiAgentExtractTypeFieldSerializer + extends JsonSerializer> { + + public AiAgentExtractTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentextractoraiagentreference/AiAgentExtractOrAiAgentReference.java b/src/main/java/com/box/sdkgen/schemas/aiagentextractoraiagentreference/AiAgentExtractOrAiAgentReference.java new file mode 100644 index 000000000..0b1ba2115 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentextractoraiagentreference/AiAgentExtractOrAiAgentReference.java @@ -0,0 +1,79 @@ +package com.box.sdkgen.schemas.aiagentextractoraiagentreference; + +import com.box.sdkgen.internal.OneOfTwo; +import com.box.sdkgen.schemas.aiagentextract.AiAgentExtract; +import com.box.sdkgen.schemas.aiagentreference.AiAgentReference; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize( + using = AiAgentExtractOrAiAgentReference.AiAgentExtractOrAiAgentReferenceDeserializer.class) +@JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) +public class AiAgentExtractOrAiAgentReference extends OneOfTwo { + + protected final String type; + + public AiAgentExtractOrAiAgentReference(AiAgentExtract aiAgentExtract) { + super(aiAgentExtract, null); + this.type = EnumWrapper.convertToString(aiAgentExtract.getType()); + } + + public AiAgentExtractOrAiAgentReference(AiAgentReference aiAgentReference) { + super(null, aiAgentReference); + this.type = EnumWrapper.convertToString(aiAgentReference.getType()); + } + + public boolean isAiAgentExtract() { + return value0 != null; + } + + public AiAgentExtract getAiAgentExtract() { + return value0; + } + + public boolean isAiAgentReference() { + return value1 != null; + } + + public AiAgentReference getAiAgentReference() { + return value1; + } + + public String getType() { + return type; + } + + static class AiAgentExtractOrAiAgentReferenceDeserializer + extends JsonDeserializer { + + public AiAgentExtractOrAiAgentReferenceDeserializer() { + super(); + } + + @Override + public AiAgentExtractOrAiAgentReference deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "ai_agent_extract": + return new AiAgentExtractOrAiAgentReference( + JsonManager.deserialize(node, AiAgentExtract.class)); + case "ai_agent_id": + return new AiAgentExtractOrAiAgentReference( + JsonManager.deserialize(node, AiAgentReference.class)); + } + } + throw new JsonMappingException(jp, "Unable to deserialize AiAgentExtractOrAiAgentReference"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentextractstructured/AiAgentExtractStructured.java b/src/main/java/com/box/sdkgen/schemas/aiagentextractstructured/AiAgentExtractStructured.java new file mode 100644 index 000000000..129db5a75 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentextractstructured/AiAgentExtractStructured.java @@ -0,0 +1,151 @@ +package com.box.sdkgen.schemas.aiagentextractstructured; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.aiagentbasictexttool.AiAgentBasicTextTool; +import com.box.sdkgen.schemas.aiagentlongtexttool.AiAgentLongTextTool; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiAgentExtractStructured extends SerializableObject { + + @JsonDeserialize( + using = AiAgentExtractStructuredTypeField.AiAgentExtractStructuredTypeFieldDeserializer.class) + @JsonSerialize( + using = AiAgentExtractStructuredTypeField.AiAgentExtractStructuredTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("long_text") + protected AiAgentLongTextTool longText; + + @JsonProperty("basic_text") + protected AiAgentBasicTextTool basicText; + + @JsonProperty("basic_image") + protected AiAgentBasicTextTool basicImage; + + public AiAgentExtractStructured() { + super(); + this.type = + new EnumWrapper( + AiAgentExtractStructuredTypeField.AI_AGENT_EXTRACT_STRUCTURED); + } + + protected AiAgentExtractStructured(Builder builder) { + super(); + this.type = builder.type; + this.longText = builder.longText; + this.basicText = builder.basicText; + this.basicImage = builder.basicImage; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public AiAgentLongTextTool getLongText() { + return longText; + } + + public AiAgentBasicTextTool getBasicText() { + return basicText; + } + + public AiAgentBasicTextTool getBasicImage() { + return basicImage; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiAgentExtractStructured casted = (AiAgentExtractStructured) o; + return Objects.equals(type, casted.type) + && Objects.equals(longText, casted.longText) + && Objects.equals(basicText, casted.basicText) + && Objects.equals(basicImage, casted.basicImage); + } + + @Override + public int hashCode() { + return Objects.hash(type, longText, basicText, basicImage); + } + + @Override + public String toString() { + return "AiAgentExtractStructured{" + + "type='" + + type + + '\'' + + ", " + + "longText='" + + longText + + '\'' + + ", " + + "basicText='" + + basicText + + '\'' + + ", " + + "basicImage='" + + basicImage + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected AiAgentLongTextTool longText; + + protected AiAgentBasicTextTool basicText; + + protected AiAgentBasicTextTool basicImage; + + public Builder() { + super(); + this.type = + new EnumWrapper( + AiAgentExtractStructuredTypeField.AI_AGENT_EXTRACT_STRUCTURED); + } + + public Builder type(AiAgentExtractStructuredTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder longText(AiAgentLongTextTool longText) { + this.longText = longText; + return this; + } + + public Builder basicText(AiAgentBasicTextTool basicText) { + this.basicText = basicText; + return this; + } + + public Builder basicImage(AiAgentBasicTextTool basicImage) { + this.basicImage = basicImage; + return this; + } + + public AiAgentExtractStructured build() { + return new AiAgentExtractStructured(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentextractstructured/AiAgentExtractStructuredTypeField.java b/src/main/java/com/box/sdkgen/schemas/aiagentextractstructured/AiAgentExtractStructuredTypeField.java new file mode 100644 index 000000000..84f8fd2c2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentextractstructured/AiAgentExtractStructuredTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.aiagentextractstructured; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AiAgentExtractStructuredTypeField implements Valuable { + AI_AGENT_EXTRACT_STRUCTURED("ai_agent_extract_structured"); + + private final String value; + + AiAgentExtractStructuredTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AiAgentExtractStructuredTypeFieldDeserializer + extends JsonDeserializer> { + + public AiAgentExtractStructuredTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AiAgentExtractStructuredTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AiAgentExtractStructuredTypeFieldSerializer + extends JsonSerializer> { + + public AiAgentExtractStructuredTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentextractstructuredoraiagentreference/AiAgentExtractStructuredOrAiAgentReference.java b/src/main/java/com/box/sdkgen/schemas/aiagentextractstructuredoraiagentreference/AiAgentExtractStructuredOrAiAgentReference.java new file mode 100644 index 000000000..b91b081f8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentextractstructuredoraiagentreference/AiAgentExtractStructuredOrAiAgentReference.java @@ -0,0 +1,84 @@ +package com.box.sdkgen.schemas.aiagentextractstructuredoraiagentreference; + +import com.box.sdkgen.internal.OneOfTwo; +import com.box.sdkgen.schemas.aiagentextractstructured.AiAgentExtractStructured; +import com.box.sdkgen.schemas.aiagentreference.AiAgentReference; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize( + using = + AiAgentExtractStructuredOrAiAgentReference + .AiAgentExtractStructuredOrAiAgentReferenceDeserializer.class) +@JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) +public class AiAgentExtractStructuredOrAiAgentReference + extends OneOfTwo { + + protected final String type; + + public AiAgentExtractStructuredOrAiAgentReference( + AiAgentExtractStructured aiAgentExtractStructured) { + super(aiAgentExtractStructured, null); + this.type = EnumWrapper.convertToString(aiAgentExtractStructured.getType()); + } + + public AiAgentExtractStructuredOrAiAgentReference(AiAgentReference aiAgentReference) { + super(null, aiAgentReference); + this.type = EnumWrapper.convertToString(aiAgentReference.getType()); + } + + public boolean isAiAgentExtractStructured() { + return value0 != null; + } + + public AiAgentExtractStructured getAiAgentExtractStructured() { + return value0; + } + + public boolean isAiAgentReference() { + return value1 != null; + } + + public AiAgentReference getAiAgentReference() { + return value1; + } + + public String getType() { + return type; + } + + static class AiAgentExtractStructuredOrAiAgentReferenceDeserializer + extends JsonDeserializer { + + public AiAgentExtractStructuredOrAiAgentReferenceDeserializer() { + super(); + } + + @Override + public AiAgentExtractStructuredOrAiAgentReference deserialize( + JsonParser jp, DeserializationContext ctxt) throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "ai_agent_extract_structured": + return new AiAgentExtractStructuredOrAiAgentReference( + JsonManager.deserialize(node, AiAgentExtractStructured.class)); + case "ai_agent_id": + return new AiAgentExtractStructuredOrAiAgentReference( + JsonManager.deserialize(node, AiAgentReference.class)); + } + } + throw new JsonMappingException( + jp, "Unable to deserialize AiAgentExtractStructuredOrAiAgentReference"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentinfo/AiAgentInfo.java b/src/main/java/com/box/sdkgen/schemas/aiagentinfo/AiAgentInfo.java new file mode 100644 index 000000000..ececa19c8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentinfo/AiAgentInfo.java @@ -0,0 +1,85 @@ +package com.box.sdkgen.schemas.aiagentinfo; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiAgentInfo extends SerializableObject { + + protected List models; + + protected String processor; + + public AiAgentInfo() { + super(); + } + + protected AiAgentInfo(Builder builder) { + super(); + this.models = builder.models; + this.processor = builder.processor; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getModels() { + return models; + } + + public String getProcessor() { + return processor; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiAgentInfo casted = (AiAgentInfo) o; + return Objects.equals(models, casted.models) && Objects.equals(processor, casted.processor); + } + + @Override + public int hashCode() { + return Objects.hash(models, processor); + } + + @Override + public String toString() { + return "AiAgentInfo{" + + "models='" + + models + + '\'' + + ", " + + "processor='" + + processor + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List models; + + protected String processor; + + public Builder models(List models) { + this.models = models; + return this; + } + + public Builder processor(String processor) { + this.processor = processor; + return this; + } + + public AiAgentInfo build() { + return new AiAgentInfo(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentinfo/AiAgentInfoModelsField.java b/src/main/java/com/box/sdkgen/schemas/aiagentinfo/AiAgentInfoModelsField.java new file mode 100644 index 000000000..eb4883d49 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentinfo/AiAgentInfoModelsField.java @@ -0,0 +1,106 @@ +package com.box.sdkgen.schemas.aiagentinfo; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiAgentInfoModelsField extends SerializableObject { + + protected String name; + + protected String provider; + + @JsonProperty("supported_purpose") + protected String supportedPurpose; + + public AiAgentInfoModelsField() { + super(); + } + + protected AiAgentInfoModelsField(Builder builder) { + super(); + this.name = builder.name; + this.provider = builder.provider; + this.supportedPurpose = builder.supportedPurpose; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public String getProvider() { + return provider; + } + + public String getSupportedPurpose() { + return supportedPurpose; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiAgentInfoModelsField casted = (AiAgentInfoModelsField) o; + return Objects.equals(name, casted.name) + && Objects.equals(provider, casted.provider) + && Objects.equals(supportedPurpose, casted.supportedPurpose); + } + + @Override + public int hashCode() { + return Objects.hash(name, provider, supportedPurpose); + } + + @Override + public String toString() { + return "AiAgentInfoModelsField{" + + "name='" + + name + + '\'' + + ", " + + "provider='" + + provider + + '\'' + + ", " + + "supportedPurpose='" + + supportedPurpose + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String name; + + protected String provider; + + protected String supportedPurpose; + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder provider(String provider) { + this.provider = provider; + return this; + } + + public Builder supportedPurpose(String supportedPurpose) { + this.supportedPurpose = supportedPurpose; + return this; + } + + public AiAgentInfoModelsField build() { + return new AiAgentInfoModelsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttool/AiAgentLongTextTool.java b/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttool/AiAgentLongTextTool.java new file mode 100644 index 000000000..03c6a83f0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttool/AiAgentLongTextTool.java @@ -0,0 +1,155 @@ +package com.box.sdkgen.schemas.aiagentlongtexttool; + +import com.box.sdkgen.schemas.aiagentbasictexttool.AiAgentBasicTextTool; +import com.box.sdkgen.schemas.aillmendpointparams.AiLlmEndpointParams; +import com.box.sdkgen.schemas.aillmendpointparamsaws.AiLlmEndpointParamsAws; +import com.box.sdkgen.schemas.aillmendpointparamsgoogle.AiLlmEndpointParamsGoogle; +import com.box.sdkgen.schemas.aillmendpointparamsibm.AiLlmEndpointParamsIbm; +import com.box.sdkgen.schemas.aillmendpointparamsopenai.AiLlmEndpointParamsOpenAi; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiAgentLongTextTool extends AiAgentBasicTextTool { + + protected AiAgentLongTextToolEmbeddingsField embeddings; + + public AiAgentLongTextTool() { + super(); + } + + protected AiAgentLongTextTool(Builder builder) { + super(builder); + this.embeddings = builder.embeddings; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public AiAgentLongTextToolEmbeddingsField getEmbeddings() { + return embeddings; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiAgentLongTextTool casted = (AiAgentLongTextTool) o; + return Objects.equals(model, casted.model) + && Objects.equals(numTokensForCompletion, casted.numTokensForCompletion) + && Objects.equals(llmEndpointParams, casted.llmEndpointParams) + && Objects.equals(systemMessage, casted.systemMessage) + && Objects.equals(promptTemplate, casted.promptTemplate) + && Objects.equals(embeddings, casted.embeddings); + } + + @Override + public int hashCode() { + return Objects.hash( + model, + numTokensForCompletion, + llmEndpointParams, + systemMessage, + promptTemplate, + embeddings); + } + + @Override + public String toString() { + return "AiAgentLongTextTool{" + + "model='" + + model + + '\'' + + ", " + + "numTokensForCompletion='" + + numTokensForCompletion + + '\'' + + ", " + + "llmEndpointParams='" + + llmEndpointParams + + '\'' + + ", " + + "systemMessage='" + + systemMessage + + '\'' + + ", " + + "promptTemplate='" + + promptTemplate + + '\'' + + ", " + + "embeddings='" + + embeddings + + '\'' + + "}"; + } + + public static class Builder extends AiAgentBasicTextTool.Builder { + + protected AiAgentLongTextToolEmbeddingsField embeddings; + + public Builder embeddings(AiAgentLongTextToolEmbeddingsField embeddings) { + this.embeddings = embeddings; + return this; + } + + @Override + public Builder model(String model) { + this.model = model; + return this; + } + + @Override + public Builder numTokensForCompletion(Long numTokensForCompletion) { + this.numTokensForCompletion = numTokensForCompletion; + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsOpenAi llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsGoogle llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsAws llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsIbm llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParams llmEndpointParams) { + this.llmEndpointParams = llmEndpointParams; + return this; + } + + @Override + public Builder systemMessage(String systemMessage) { + this.systemMessage = systemMessage; + return this; + } + + @Override + public Builder promptTemplate(String promptTemplate) { + this.promptTemplate = promptTemplate; + return this; + } + + public AiAgentLongTextTool build() { + return new AiAgentLongTextTool(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttool/AiAgentLongTextToolEmbeddingsField.java b/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttool/AiAgentLongTextToolEmbeddingsField.java new file mode 100644 index 000000000..0cea1a952 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttool/AiAgentLongTextToolEmbeddingsField.java @@ -0,0 +1,84 @@ +package com.box.sdkgen.schemas.aiagentlongtexttool; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiAgentLongTextToolEmbeddingsField extends SerializableObject { + + protected String model; + + protected AiAgentLongTextToolEmbeddingsStrategyField strategy; + + public AiAgentLongTextToolEmbeddingsField() { + super(); + } + + protected AiAgentLongTextToolEmbeddingsField(Builder builder) { + super(); + this.model = builder.model; + this.strategy = builder.strategy; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getModel() { + return model; + } + + public AiAgentLongTextToolEmbeddingsStrategyField getStrategy() { + return strategy; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiAgentLongTextToolEmbeddingsField casted = (AiAgentLongTextToolEmbeddingsField) o; + return Objects.equals(model, casted.model) && Objects.equals(strategy, casted.strategy); + } + + @Override + public int hashCode() { + return Objects.hash(model, strategy); + } + + @Override + public String toString() { + return "AiAgentLongTextToolEmbeddingsField{" + + "model='" + + model + + '\'' + + ", " + + "strategy='" + + strategy + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String model; + + protected AiAgentLongTextToolEmbeddingsStrategyField strategy; + + public Builder model(String model) { + this.model = model; + return this; + } + + public Builder strategy(AiAgentLongTextToolEmbeddingsStrategyField strategy) { + this.strategy = strategy; + return this; + } + + public AiAgentLongTextToolEmbeddingsField build() { + return new AiAgentLongTextToolEmbeddingsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttool/AiAgentLongTextToolEmbeddingsStrategyField.java b/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttool/AiAgentLongTextToolEmbeddingsStrategyField.java new file mode 100644 index 000000000..dfb1153ea --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttool/AiAgentLongTextToolEmbeddingsStrategyField.java @@ -0,0 +1,88 @@ +package com.box.sdkgen.schemas.aiagentlongtexttool; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiAgentLongTextToolEmbeddingsStrategyField extends SerializableObject { + + protected String id; + + @JsonProperty("num_tokens_per_chunk") + protected Long numTokensPerChunk; + + public AiAgentLongTextToolEmbeddingsStrategyField() { + super(); + } + + protected AiAgentLongTextToolEmbeddingsStrategyField(Builder builder) { + super(); + this.id = builder.id; + this.numTokensPerChunk = builder.numTokensPerChunk; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public Long getNumTokensPerChunk() { + return numTokensPerChunk; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiAgentLongTextToolEmbeddingsStrategyField casted = + (AiAgentLongTextToolEmbeddingsStrategyField) o; + return Objects.equals(id, casted.id) + && Objects.equals(numTokensPerChunk, casted.numTokensPerChunk); + } + + @Override + public int hashCode() { + return Objects.hash(id, numTokensPerChunk); + } + + @Override + public String toString() { + return "AiAgentLongTextToolEmbeddingsStrategyField{" + + "id='" + + id + + '\'' + + ", " + + "numTokensPerChunk='" + + numTokensPerChunk + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected Long numTokensPerChunk; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder numTokensPerChunk(Long numTokensPerChunk) { + this.numTokensPerChunk = numTokensPerChunk; + return this; + } + + public AiAgentLongTextToolEmbeddingsStrategyField build() { + return new AiAgentLongTextToolEmbeddingsStrategyField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttooltextgen/AiAgentLongTextToolTextGen.java b/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttooltextgen/AiAgentLongTextToolTextGen.java new file mode 100644 index 000000000..bcbe827c7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttooltextgen/AiAgentLongTextToolTextGen.java @@ -0,0 +1,155 @@ +package com.box.sdkgen.schemas.aiagentlongtexttooltextgen; + +import com.box.sdkgen.schemas.aiagentbasictexttooltextgen.AiAgentBasicTextToolTextGen; +import com.box.sdkgen.schemas.aillmendpointparams.AiLlmEndpointParams; +import com.box.sdkgen.schemas.aillmendpointparamsaws.AiLlmEndpointParamsAws; +import com.box.sdkgen.schemas.aillmendpointparamsgoogle.AiLlmEndpointParamsGoogle; +import com.box.sdkgen.schemas.aillmendpointparamsibm.AiLlmEndpointParamsIbm; +import com.box.sdkgen.schemas.aillmendpointparamsopenai.AiLlmEndpointParamsOpenAi; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiAgentLongTextToolTextGen extends AiAgentBasicTextToolTextGen { + + protected AiAgentLongTextToolTextGenEmbeddingsField embeddings; + + public AiAgentLongTextToolTextGen() { + super(); + } + + protected AiAgentLongTextToolTextGen(Builder builder) { + super(builder); + this.embeddings = builder.embeddings; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public AiAgentLongTextToolTextGenEmbeddingsField getEmbeddings() { + return embeddings; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiAgentLongTextToolTextGen casted = (AiAgentLongTextToolTextGen) o; + return Objects.equals(model, casted.model) + && Objects.equals(numTokensForCompletion, casted.numTokensForCompletion) + && Objects.equals(llmEndpointParams, casted.llmEndpointParams) + && Objects.equals(systemMessage, casted.systemMessage) + && Objects.equals(promptTemplate, casted.promptTemplate) + && Objects.equals(embeddings, casted.embeddings); + } + + @Override + public int hashCode() { + return Objects.hash( + model, + numTokensForCompletion, + llmEndpointParams, + systemMessage, + promptTemplate, + embeddings); + } + + @Override + public String toString() { + return "AiAgentLongTextToolTextGen{" + + "model='" + + model + + '\'' + + ", " + + "numTokensForCompletion='" + + numTokensForCompletion + + '\'' + + ", " + + "llmEndpointParams='" + + llmEndpointParams + + '\'' + + ", " + + "systemMessage='" + + systemMessage + + '\'' + + ", " + + "promptTemplate='" + + promptTemplate + + '\'' + + ", " + + "embeddings='" + + embeddings + + '\'' + + "}"; + } + + public static class Builder extends AiAgentBasicTextToolTextGen.Builder { + + protected AiAgentLongTextToolTextGenEmbeddingsField embeddings; + + public Builder embeddings(AiAgentLongTextToolTextGenEmbeddingsField embeddings) { + this.embeddings = embeddings; + return this; + } + + @Override + public Builder model(String model) { + this.model = model; + return this; + } + + @Override + public Builder numTokensForCompletion(Long numTokensForCompletion) { + this.numTokensForCompletion = numTokensForCompletion; + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsOpenAi llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsGoogle llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsAws llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsIbm llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParams llmEndpointParams) { + this.llmEndpointParams = llmEndpointParams; + return this; + } + + @Override + public Builder systemMessage(String systemMessage) { + this.systemMessage = systemMessage; + return this; + } + + @Override + public Builder promptTemplate(String promptTemplate) { + this.promptTemplate = promptTemplate; + return this; + } + + public AiAgentLongTextToolTextGen build() { + return new AiAgentLongTextToolTextGen(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttooltextgen/AiAgentLongTextToolTextGenEmbeddingsField.java b/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttooltextgen/AiAgentLongTextToolTextGenEmbeddingsField.java new file mode 100644 index 000000000..54c1b2df5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttooltextgen/AiAgentLongTextToolTextGenEmbeddingsField.java @@ -0,0 +1,85 @@ +package com.box.sdkgen.schemas.aiagentlongtexttooltextgen; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiAgentLongTextToolTextGenEmbeddingsField extends SerializableObject { + + protected String model; + + protected AiAgentLongTextToolTextGenEmbeddingsStrategyField strategy; + + public AiAgentLongTextToolTextGenEmbeddingsField() { + super(); + } + + protected AiAgentLongTextToolTextGenEmbeddingsField(Builder builder) { + super(); + this.model = builder.model; + this.strategy = builder.strategy; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getModel() { + return model; + } + + public AiAgentLongTextToolTextGenEmbeddingsStrategyField getStrategy() { + return strategy; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiAgentLongTextToolTextGenEmbeddingsField casted = + (AiAgentLongTextToolTextGenEmbeddingsField) o; + return Objects.equals(model, casted.model) && Objects.equals(strategy, casted.strategy); + } + + @Override + public int hashCode() { + return Objects.hash(model, strategy); + } + + @Override + public String toString() { + return "AiAgentLongTextToolTextGenEmbeddingsField{" + + "model='" + + model + + '\'' + + ", " + + "strategy='" + + strategy + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String model; + + protected AiAgentLongTextToolTextGenEmbeddingsStrategyField strategy; + + public Builder model(String model) { + this.model = model; + return this; + } + + public Builder strategy(AiAgentLongTextToolTextGenEmbeddingsStrategyField strategy) { + this.strategy = strategy; + return this; + } + + public AiAgentLongTextToolTextGenEmbeddingsField build() { + return new AiAgentLongTextToolTextGenEmbeddingsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttooltextgen/AiAgentLongTextToolTextGenEmbeddingsStrategyField.java b/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttooltextgen/AiAgentLongTextToolTextGenEmbeddingsStrategyField.java new file mode 100644 index 000000000..3d6ddda22 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttooltextgen/AiAgentLongTextToolTextGenEmbeddingsStrategyField.java @@ -0,0 +1,88 @@ +package com.box.sdkgen.schemas.aiagentlongtexttooltextgen; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiAgentLongTextToolTextGenEmbeddingsStrategyField extends SerializableObject { + + protected String id; + + @JsonProperty("num_tokens_per_chunk") + protected Long numTokensPerChunk; + + public AiAgentLongTextToolTextGenEmbeddingsStrategyField() { + super(); + } + + protected AiAgentLongTextToolTextGenEmbeddingsStrategyField(Builder builder) { + super(); + this.id = builder.id; + this.numTokensPerChunk = builder.numTokensPerChunk; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public Long getNumTokensPerChunk() { + return numTokensPerChunk; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiAgentLongTextToolTextGenEmbeddingsStrategyField casted = + (AiAgentLongTextToolTextGenEmbeddingsStrategyField) o; + return Objects.equals(id, casted.id) + && Objects.equals(numTokensPerChunk, casted.numTokensPerChunk); + } + + @Override + public int hashCode() { + return Objects.hash(id, numTokensPerChunk); + } + + @Override + public String toString() { + return "AiAgentLongTextToolTextGenEmbeddingsStrategyField{" + + "id='" + + id + + '\'' + + ", " + + "numTokensPerChunk='" + + numTokensPerChunk + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected Long numTokensPerChunk; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder numTokensPerChunk(Long numTokensPerChunk) { + this.numTokensPerChunk = numTokensPerChunk; + return this; + } + + public AiAgentLongTextToolTextGenEmbeddingsStrategyField build() { + return new AiAgentLongTextToolTextGenEmbeddingsStrategyField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReference.java b/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReference.java new file mode 100644 index 000000000..d8f107cdb --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReference.java @@ -0,0 +1,92 @@ +package com.box.sdkgen.schemas.aiagentreference; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiAgentReference extends SerializableObject { + + @JsonDeserialize(using = AiAgentReferenceTypeField.AiAgentReferenceTypeFieldDeserializer.class) + @JsonSerialize(using = AiAgentReferenceTypeField.AiAgentReferenceTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String id; + + public AiAgentReference() { + super(); + this.type = new EnumWrapper(AiAgentReferenceTypeField.AI_AGENT_ID); + } + + protected AiAgentReference(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiAgentReference casted = (AiAgentReference) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "AiAgentReference{" + "type='" + type + '\'' + ", " + "id='" + id + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected String id; + + public Builder() { + super(); + this.type = new EnumWrapper(AiAgentReferenceTypeField.AI_AGENT_ID); + } + + public Builder type(AiAgentReferenceTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public AiAgentReference build() { + return new AiAgentReference(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReferenceTypeField.java b/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReferenceTypeField.java new file mode 100644 index 000000000..5a1b7bd5a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReferenceTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.aiagentreference; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AiAgentReferenceTypeField implements Valuable { + AI_AGENT_ID("ai_agent_id"); + + private final String value; + + AiAgentReferenceTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AiAgentReferenceTypeFieldDeserializer + extends JsonDeserializer> { + + public AiAgentReferenceTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AiAgentReferenceTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AiAgentReferenceTypeFieldSerializer + extends JsonSerializer> { + + public AiAgentReferenceTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentreferenceoraiagenttextgen/AiAgentReferenceOrAiAgentTextGen.java b/src/main/java/com/box/sdkgen/schemas/aiagentreferenceoraiagenttextgen/AiAgentReferenceOrAiAgentTextGen.java new file mode 100644 index 000000000..21178af35 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentreferenceoraiagenttextgen/AiAgentReferenceOrAiAgentTextGen.java @@ -0,0 +1,79 @@ +package com.box.sdkgen.schemas.aiagentreferenceoraiagenttextgen; + +import com.box.sdkgen.internal.OneOfTwo; +import com.box.sdkgen.schemas.aiagentreference.AiAgentReference; +import com.box.sdkgen.schemas.aiagenttextgen.AiAgentTextGen; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize( + using = AiAgentReferenceOrAiAgentTextGen.AiAgentReferenceOrAiAgentTextGenDeserializer.class) +@JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) +public class AiAgentReferenceOrAiAgentTextGen extends OneOfTwo { + + protected final String type; + + public AiAgentReferenceOrAiAgentTextGen(AiAgentReference aiAgentReference) { + super(aiAgentReference, null); + this.type = EnumWrapper.convertToString(aiAgentReference.getType()); + } + + public AiAgentReferenceOrAiAgentTextGen(AiAgentTextGen aiAgentTextGen) { + super(null, aiAgentTextGen); + this.type = EnumWrapper.convertToString(aiAgentTextGen.getType()); + } + + public boolean isAiAgentReference() { + return value0 != null; + } + + public AiAgentReference getAiAgentReference() { + return value0; + } + + public boolean isAiAgentTextGen() { + return value1 != null; + } + + public AiAgentTextGen getAiAgentTextGen() { + return value1; + } + + public String getType() { + return type; + } + + static class AiAgentReferenceOrAiAgentTextGenDeserializer + extends JsonDeserializer { + + public AiAgentReferenceOrAiAgentTextGenDeserializer() { + super(); + } + + @Override + public AiAgentReferenceOrAiAgentTextGen deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "ai_agent_id": + return new AiAgentReferenceOrAiAgentTextGen( + JsonManager.deserialize(node, AiAgentReference.class)); + case "ai_agent_text_gen": + return new AiAgentReferenceOrAiAgentTextGen( + JsonManager.deserialize(node, AiAgentTextGen.class)); + } + } + throw new JsonMappingException(jp, "Unable to deserialize AiAgentReferenceOrAiAgentTextGen"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentspreadsheettool/AiAgentSpreadsheetTool.java b/src/main/java/com/box/sdkgen/schemas/aiagentspreadsheettool/AiAgentSpreadsheetTool.java new file mode 100644 index 000000000..7ea190081 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagentspreadsheettool/AiAgentSpreadsheetTool.java @@ -0,0 +1,132 @@ +package com.box.sdkgen.schemas.aiagentspreadsheettool; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.aillmendpointparams.AiLlmEndpointParams; +import com.box.sdkgen.schemas.aillmendpointparamsaws.AiLlmEndpointParamsAws; +import com.box.sdkgen.schemas.aillmendpointparamsgoogle.AiLlmEndpointParamsGoogle; +import com.box.sdkgen.schemas.aillmendpointparamsibm.AiLlmEndpointParamsIbm; +import com.box.sdkgen.schemas.aillmendpointparamsopenai.AiLlmEndpointParamsOpenAi; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiAgentSpreadsheetTool extends SerializableObject { + + protected String model; + + @JsonProperty("num_tokens_for_completion") + protected Long numTokensForCompletion; + + @JsonProperty("llm_endpoint_params") + protected AiLlmEndpointParams llmEndpointParams; + + public AiAgentSpreadsheetTool() { + super(); + } + + protected AiAgentSpreadsheetTool(Builder builder) { + super(); + this.model = builder.model; + this.numTokensForCompletion = builder.numTokensForCompletion; + this.llmEndpointParams = builder.llmEndpointParams; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getModel() { + return model; + } + + public Long getNumTokensForCompletion() { + return numTokensForCompletion; + } + + public AiLlmEndpointParams getLlmEndpointParams() { + return llmEndpointParams; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiAgentSpreadsheetTool casted = (AiAgentSpreadsheetTool) o; + return Objects.equals(model, casted.model) + && Objects.equals(numTokensForCompletion, casted.numTokensForCompletion) + && Objects.equals(llmEndpointParams, casted.llmEndpointParams); + } + + @Override + public int hashCode() { + return Objects.hash(model, numTokensForCompletion, llmEndpointParams); + } + + @Override + public String toString() { + return "AiAgentSpreadsheetTool{" + + "model='" + + model + + '\'' + + ", " + + "numTokensForCompletion='" + + numTokensForCompletion + + '\'' + + ", " + + "llmEndpointParams='" + + llmEndpointParams + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String model; + + protected Long numTokensForCompletion; + + protected AiLlmEndpointParams llmEndpointParams; + + public Builder model(String model) { + this.model = model; + return this; + } + + public Builder numTokensForCompletion(Long numTokensForCompletion) { + this.numTokensForCompletion = numTokensForCompletion; + return this; + } + + public Builder llmEndpointParams(AiLlmEndpointParamsOpenAi llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + public Builder llmEndpointParams(AiLlmEndpointParamsGoogle llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + public Builder llmEndpointParams(AiLlmEndpointParamsAws llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + public Builder llmEndpointParams(AiLlmEndpointParamsIbm llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + public Builder llmEndpointParams(AiLlmEndpointParams llmEndpointParams) { + this.llmEndpointParams = llmEndpointParams; + return this; + } + + public AiAgentSpreadsheetTool build() { + return new AiAgentSpreadsheetTool(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagenttextgen/AiAgentTextGen.java b/src/main/java/com/box/sdkgen/schemas/aiagenttextgen/AiAgentTextGen.java new file mode 100644 index 000000000..23444f0a2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagenttextgen/AiAgentTextGen.java @@ -0,0 +1,96 @@ +package com.box.sdkgen.schemas.aiagenttextgen; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.aiagentbasicgentool.AiAgentBasicGenTool; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiAgentTextGen extends SerializableObject { + + @JsonDeserialize(using = AiAgentTextGenTypeField.AiAgentTextGenTypeFieldDeserializer.class) + @JsonSerialize(using = AiAgentTextGenTypeField.AiAgentTextGenTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("basic_gen") + protected AiAgentBasicGenTool basicGen; + + public AiAgentTextGen() { + super(); + this.type = new EnumWrapper(AiAgentTextGenTypeField.AI_AGENT_TEXT_GEN); + } + + protected AiAgentTextGen(Builder builder) { + super(); + this.type = builder.type; + this.basicGen = builder.basicGen; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public AiAgentBasicGenTool getBasicGen() { + return basicGen; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiAgentTextGen casted = (AiAgentTextGen) o; + return Objects.equals(type, casted.type) && Objects.equals(basicGen, casted.basicGen); + } + + @Override + public int hashCode() { + return Objects.hash(type, basicGen); + } + + @Override + public String toString() { + return "AiAgentTextGen{" + "type='" + type + '\'' + ", " + "basicGen='" + basicGen + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected AiAgentBasicGenTool basicGen; + + public Builder() { + super(); + this.type = + new EnumWrapper(AiAgentTextGenTypeField.AI_AGENT_TEXT_GEN); + } + + public Builder type(AiAgentTextGenTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder basicGen(AiAgentBasicGenTool basicGen) { + this.basicGen = basicGen; + return this; + } + + public AiAgentTextGen build() { + return new AiAgentTextGen(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagenttextgen/AiAgentTextGenTypeField.java b/src/main/java/com/box/sdkgen/schemas/aiagenttextgen/AiAgentTextGenTypeField.java new file mode 100644 index 000000000..da57d7203 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagenttextgen/AiAgentTextGenTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.aiagenttextgen; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AiAgentTextGenTypeField implements Valuable { + AI_AGENT_TEXT_GEN("ai_agent_text_gen"); + + private final String value; + + AiAgentTextGenTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AiAgentTextGenTypeFieldDeserializer + extends JsonDeserializer> { + + public AiAgentTextGenTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AiAgentTextGenTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AiAgentTextGenTypeFieldSerializer + extends JsonSerializer> { + + public AiAgentTextGenTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiask/AiAsk.java b/src/main/java/com/box/sdkgen/schemas/aiask/AiAsk.java new file mode 100644 index 000000000..79a756d18 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiask/AiAsk.java @@ -0,0 +1,198 @@ +package com.box.sdkgen.schemas.aiask; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.aiagentask.AiAgentAsk; +import com.box.sdkgen.schemas.aiagentaskoraiagentreference.AiAgentAskOrAiAgentReference; +import com.box.sdkgen.schemas.aiagentreference.AiAgentReference; +import com.box.sdkgen.schemas.aidialoguehistory.AiDialogueHistory; +import com.box.sdkgen.schemas.aiitemask.AiItemAsk; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiAsk extends SerializableObject { + + @JsonDeserialize(using = AiAskModeField.AiAskModeFieldDeserializer.class) + @JsonSerialize(using = AiAskModeField.AiAskModeFieldSerializer.class) + protected final EnumWrapper mode; + + protected final String prompt; + + protected final List items; + + @JsonProperty("dialogue_history") + protected List dialogueHistory; + + @JsonProperty("include_citations") + protected Boolean includeCitations; + + @JsonProperty("ai_agent") + protected AiAgentAskOrAiAgentReference aiAgent; + + public AiAsk(AiAskModeField mode, String prompt, List items) { + super(); + this.mode = new EnumWrapper(mode); + this.prompt = prompt; + this.items = items; + } + + public AiAsk( + @JsonProperty("mode") EnumWrapper mode, + @JsonProperty("prompt") String prompt, + @JsonProperty("items") List items) { + super(); + this.mode = mode; + this.prompt = prompt; + this.items = items; + } + + protected AiAsk(Builder builder) { + super(); + this.mode = builder.mode; + this.prompt = builder.prompt; + this.items = builder.items; + this.dialogueHistory = builder.dialogueHistory; + this.includeCitations = builder.includeCitations; + this.aiAgent = builder.aiAgent; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getMode() { + return mode; + } + + public String getPrompt() { + return prompt; + } + + public List getItems() { + return items; + } + + public List getDialogueHistory() { + return dialogueHistory; + } + + public Boolean getIncludeCitations() { + return includeCitations; + } + + public AiAgentAskOrAiAgentReference getAiAgent() { + return aiAgent; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiAsk casted = (AiAsk) o; + return Objects.equals(mode, casted.mode) + && Objects.equals(prompt, casted.prompt) + && Objects.equals(items, casted.items) + && Objects.equals(dialogueHistory, casted.dialogueHistory) + && Objects.equals(includeCitations, casted.includeCitations) + && Objects.equals(aiAgent, casted.aiAgent); + } + + @Override + public int hashCode() { + return Objects.hash(mode, prompt, items, dialogueHistory, includeCitations, aiAgent); + } + + @Override + public String toString() { + return "AiAsk{" + + "mode='" + + mode + + '\'' + + ", " + + "prompt='" + + prompt + + '\'' + + ", " + + "items='" + + items + + '\'' + + ", " + + "dialogueHistory='" + + dialogueHistory + + '\'' + + ", " + + "includeCitations='" + + includeCitations + + '\'' + + ", " + + "aiAgent='" + + aiAgent + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final EnumWrapper mode; + + protected final String prompt; + + protected final List items; + + protected List dialogueHistory; + + protected Boolean includeCitations; + + protected AiAgentAskOrAiAgentReference aiAgent; + + public Builder(AiAskModeField mode, String prompt, List items) { + super(); + this.mode = new EnumWrapper(mode); + this.prompt = prompt; + this.items = items; + } + + public Builder(EnumWrapper mode, String prompt, List items) { + super(); + this.mode = mode; + this.prompt = prompt; + this.items = items; + } + + public Builder dialogueHistory(List dialogueHistory) { + this.dialogueHistory = dialogueHistory; + return this; + } + + public Builder includeCitations(Boolean includeCitations) { + this.includeCitations = includeCitations; + return this; + } + + public Builder aiAgent(AiAgentAsk aiAgent) { + this.aiAgent = new AiAgentAskOrAiAgentReference(aiAgent); + return this; + } + + public Builder aiAgent(AiAgentReference aiAgent) { + this.aiAgent = new AiAgentAskOrAiAgentReference(aiAgent); + return this; + } + + public Builder aiAgent(AiAgentAskOrAiAgentReference aiAgent) { + this.aiAgent = aiAgent; + return this; + } + + public AiAsk build() { + return new AiAsk(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiask/AiAskModeField.java b/src/main/java/com/box/sdkgen/schemas/aiask/AiAskModeField.java new file mode 100644 index 000000000..64350cb9c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiask/AiAskModeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.aiask; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AiAskModeField implements Valuable { + MULTIPLE_ITEM_QA("multiple_item_qa"), + SINGLE_ITEM_QA("single_item_qa"); + + private final String value; + + AiAskModeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AiAskModeFieldDeserializer + extends JsonDeserializer> { + + public AiAskModeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AiAskModeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AiAskModeFieldSerializer extends JsonSerializer> { + + public AiAskModeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aicitation/AiCitation.java b/src/main/java/com/box/sdkgen/schemas/aicitation/AiCitation.java new file mode 100644 index 000000000..2960a7e36 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aicitation/AiCitation.java @@ -0,0 +1,133 @@ +package com.box.sdkgen.schemas.aicitation; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiCitation extends SerializableObject { + + protected String content; + + protected String id; + + @JsonDeserialize(using = AiCitationTypeField.AiCitationTypeFieldDeserializer.class) + @JsonSerialize(using = AiCitationTypeField.AiCitationTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String name; + + public AiCitation() { + super(); + } + + protected AiCitation(Builder builder) { + super(); + this.content = builder.content; + this.id = builder.id; + this.type = builder.type; + this.name = builder.name; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getContent() { + return content; + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiCitation casted = (AiCitation) o; + return Objects.equals(content, casted.content) + && Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name); + } + + @Override + public int hashCode() { + return Objects.hash(content, id, type, name); + } + + @Override + public String toString() { + return "AiCitation{" + + "content='" + + content + + '\'' + + ", " + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String content; + + protected String id; + + protected EnumWrapper type; + + protected String name; + + public Builder content(String content) { + this.content = content; + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(AiCitationTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public AiCitation build() { + return new AiCitation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aicitation/AiCitationTypeField.java b/src/main/java/com/box/sdkgen/schemas/aicitation/AiCitationTypeField.java new file mode 100644 index 000000000..05bab2da9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aicitation/AiCitationTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.aicitation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AiCitationTypeField implements Valuable { + FILE("file"); + + private final String value; + + AiCitationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AiCitationTypeFieldDeserializer + extends JsonDeserializer> { + + public AiCitationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AiCitationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AiCitationTypeFieldSerializer + extends JsonSerializer> { + + public AiCitationTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aidialoguehistory/AiDialogueHistory.java b/src/main/java/com/box/sdkgen/schemas/aidialoguehistory/AiDialogueHistory.java new file mode 100644 index 000000000..24a0f724e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aidialoguehistory/AiDialogueHistory.java @@ -0,0 +1,112 @@ +package com.box.sdkgen.schemas.aidialoguehistory; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiDialogueHistory extends SerializableObject { + + protected String prompt; + + protected String answer; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + public AiDialogueHistory() { + super(); + } + + protected AiDialogueHistory(Builder builder) { + super(); + this.prompt = builder.prompt; + this.answer = builder.answer; + this.createdAt = builder.createdAt; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getPrompt() { + return prompt; + } + + public String getAnswer() { + return answer; + } + + public Date getCreatedAt() { + return createdAt; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiDialogueHistory casted = (AiDialogueHistory) o; + return Objects.equals(prompt, casted.prompt) + && Objects.equals(answer, casted.answer) + && Objects.equals(createdAt, casted.createdAt); + } + + @Override + public int hashCode() { + return Objects.hash(prompt, answer, createdAt); + } + + @Override + public String toString() { + return "AiDialogueHistory{" + + "prompt='" + + prompt + + '\'' + + ", " + + "answer='" + + answer + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String prompt; + + protected String answer; + + protected Date createdAt; + + public Builder prompt(String prompt) { + this.prompt = prompt; + return this; + } + + public Builder answer(String answer) { + this.answer = answer; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public AiDialogueHistory build() { + return new AiDialogueHistory(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiextract/AiExtract.java b/src/main/java/com/box/sdkgen/schemas/aiextract/AiExtract.java new file mode 100644 index 000000000..94e77dd50 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiextract/AiExtract.java @@ -0,0 +1,120 @@ +package com.box.sdkgen.schemas.aiextract; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.aiagentextract.AiAgentExtract; +import com.box.sdkgen.schemas.aiagentextractoraiagentreference.AiAgentExtractOrAiAgentReference; +import com.box.sdkgen.schemas.aiagentreference.AiAgentReference; +import com.box.sdkgen.schemas.aiitembase.AiItemBase; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiExtract extends SerializableObject { + + protected final String prompt; + + protected final List items; + + @JsonProperty("ai_agent") + protected AiAgentExtractOrAiAgentReference aiAgent; + + public AiExtract( + @JsonProperty("prompt") String prompt, @JsonProperty("items") List items) { + super(); + this.prompt = prompt; + this.items = items; + } + + protected AiExtract(Builder builder) { + super(); + this.prompt = builder.prompt; + this.items = builder.items; + this.aiAgent = builder.aiAgent; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getPrompt() { + return prompt; + } + + public List getItems() { + return items; + } + + public AiAgentExtractOrAiAgentReference getAiAgent() { + return aiAgent; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiExtract casted = (AiExtract) o; + return Objects.equals(prompt, casted.prompt) + && Objects.equals(items, casted.items) + && Objects.equals(aiAgent, casted.aiAgent); + } + + @Override + public int hashCode() { + return Objects.hash(prompt, items, aiAgent); + } + + @Override + public String toString() { + return "AiExtract{" + + "prompt='" + + prompt + + '\'' + + ", " + + "items='" + + items + + '\'' + + ", " + + "aiAgent='" + + aiAgent + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String prompt; + + protected final List items; + + protected AiAgentExtractOrAiAgentReference aiAgent; + + public Builder(String prompt, List items) { + super(); + this.prompt = prompt; + this.items = items; + } + + public Builder aiAgent(AiAgentExtract aiAgent) { + this.aiAgent = new AiAgentExtractOrAiAgentReference(aiAgent); + return this; + } + + public Builder aiAgent(AiAgentReference aiAgent) { + this.aiAgent = new AiAgentExtractOrAiAgentReference(aiAgent); + return this; + } + + public Builder aiAgent(AiAgentExtractOrAiAgentReference aiAgent) { + this.aiAgent = aiAgent; + return this; + } + + public AiExtract build() { + return new AiExtract(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractresponse/AiExtractResponse.java b/src/main/java/com/box/sdkgen/schemas/aiextractresponse/AiExtractResponse.java new file mode 100644 index 000000000..06d254b0c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiextractresponse/AiExtractResponse.java @@ -0,0 +1,17 @@ +package com.box.sdkgen.schemas.aiextractresponse; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; + +@JsonFilter("nullablePropertyFilter") +public class AiExtractResponse extends SerializableObject { + + public AiExtractResponse() { + super(); + } + + @Override + public String toString() { + return "AiExtractResponse{" + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java new file mode 100644 index 000000000..02d718127 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java @@ -0,0 +1,142 @@ +package com.box.sdkgen.schemas.aiextractstructured; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.aiagentextractstructured.AiAgentExtractStructured; +import com.box.sdkgen.schemas.aiagentextractstructuredoraiagentreference.AiAgentExtractStructuredOrAiAgentReference; +import com.box.sdkgen.schemas.aiagentreference.AiAgentReference; +import com.box.sdkgen.schemas.aiitembase.AiItemBase; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiExtractStructured extends SerializableObject { + + protected final List items; + + @JsonProperty("metadata_template") + protected AiExtractStructuredMetadataTemplateField metadataTemplate; + + protected List fields; + + @JsonProperty("ai_agent") + protected AiAgentExtractStructuredOrAiAgentReference aiAgent; + + public AiExtractStructured(@JsonProperty("items") List items) { + super(); + this.items = items; + } + + protected AiExtractStructured(Builder builder) { + super(); + this.items = builder.items; + this.metadataTemplate = builder.metadataTemplate; + this.fields = builder.fields; + this.aiAgent = builder.aiAgent; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getItems() { + return items; + } + + public AiExtractStructuredMetadataTemplateField getMetadataTemplate() { + return metadataTemplate; + } + + public List getFields() { + return fields; + } + + public AiAgentExtractStructuredOrAiAgentReference getAiAgent() { + return aiAgent; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiExtractStructured casted = (AiExtractStructured) o; + return Objects.equals(items, casted.items) + && Objects.equals(metadataTemplate, casted.metadataTemplate) + && Objects.equals(fields, casted.fields) + && Objects.equals(aiAgent, casted.aiAgent); + } + + @Override + public int hashCode() { + return Objects.hash(items, metadataTemplate, fields, aiAgent); + } + + @Override + public String toString() { + return "AiExtractStructured{" + + "items='" + + items + + '\'' + + ", " + + "metadataTemplate='" + + metadataTemplate + + '\'' + + ", " + + "fields='" + + fields + + '\'' + + ", " + + "aiAgent='" + + aiAgent + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final List items; + + protected AiExtractStructuredMetadataTemplateField metadataTemplate; + + protected List fields; + + protected AiAgentExtractStructuredOrAiAgentReference aiAgent; + + public Builder(List items) { + super(); + this.items = items; + } + + public Builder metadataTemplate(AiExtractStructuredMetadataTemplateField metadataTemplate) { + this.metadataTemplate = metadataTemplate; + return this; + } + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder aiAgent(AiAgentExtractStructured aiAgent) { + this.aiAgent = new AiAgentExtractStructuredOrAiAgentReference(aiAgent); + return this; + } + + public Builder aiAgent(AiAgentReference aiAgent) { + this.aiAgent = new AiAgentExtractStructuredOrAiAgentReference(aiAgent); + return this; + } + + public Builder aiAgent(AiAgentExtractStructuredOrAiAgentReference aiAgent) { + this.aiAgent = aiAgent; + return this; + } + + public AiExtractStructured build() { + return new AiExtractStructured(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsField.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsField.java new file mode 100644 index 000000000..fea660bb5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsField.java @@ -0,0 +1,164 @@ +package com.box.sdkgen.schemas.aiextractstructured; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiExtractStructuredFieldsField extends SerializableObject { + + protected final String key; + + protected String description; + + protected String displayName; + + protected String prompt; + + protected String type; + + protected List options; + + public AiExtractStructuredFieldsField(@JsonProperty("key") String key) { + super(); + this.key = key; + } + + protected AiExtractStructuredFieldsField(Builder builder) { + super(); + this.key = builder.key; + this.description = builder.description; + this.displayName = builder.displayName; + this.prompt = builder.prompt; + this.type = builder.type; + this.options = builder.options; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getKey() { + return key; + } + + public String getDescription() { + return description; + } + + public String getDisplayName() { + return displayName; + } + + public String getPrompt() { + return prompt; + } + + public String getType() { + return type; + } + + public List getOptions() { + return options; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiExtractStructuredFieldsField casted = (AiExtractStructuredFieldsField) o; + return Objects.equals(key, casted.key) + && Objects.equals(description, casted.description) + && Objects.equals(displayName, casted.displayName) + && Objects.equals(prompt, casted.prompt) + && Objects.equals(type, casted.type) + && Objects.equals(options, casted.options); + } + + @Override + public int hashCode() { + return Objects.hash(key, description, displayName, prompt, type, options); + } + + @Override + public String toString() { + return "AiExtractStructuredFieldsField{" + + "key='" + + key + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "displayName='" + + displayName + + '\'' + + ", " + + "prompt='" + + prompt + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "options='" + + options + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String key; + + protected String description; + + protected String displayName; + + protected String prompt; + + protected String type; + + protected List options; + + public Builder(String key) { + super(); + this.key = key; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder displayName(String displayName) { + this.displayName = displayName; + return this; + } + + public Builder prompt(String prompt) { + this.prompt = prompt; + return this; + } + + public Builder type(String type) { + this.type = type; + return this; + } + + public Builder options(List options) { + this.options = options; + return this; + } + + public AiExtractStructuredFieldsField build() { + return new AiExtractStructuredFieldsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsOptionsField.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsOptionsField.java new file mode 100644 index 000000000..44c27050d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsOptionsField.java @@ -0,0 +1,43 @@ +package com.box.sdkgen.schemas.aiextractstructured; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiExtractStructuredFieldsOptionsField extends SerializableObject { + + protected final String key; + + public AiExtractStructuredFieldsOptionsField(@JsonProperty("key") String key) { + super(); + this.key = key; + } + + public String getKey() { + return key; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiExtractStructuredFieldsOptionsField casted = (AiExtractStructuredFieldsOptionsField) o; + return Objects.equals(key, casted.key); + } + + @Override + public int hashCode() { + return Objects.hash(key); + } + + @Override + public String toString() { + return "AiExtractStructuredFieldsOptionsField{" + "key='" + key + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredMetadataTemplateField.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredMetadataTemplateField.java new file mode 100644 index 000000000..4637e7b67 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredMetadataTemplateField.java @@ -0,0 +1,122 @@ +package com.box.sdkgen.schemas.aiextractstructured; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiExtractStructuredMetadataTemplateField extends SerializableObject { + + @JsonProperty("template_key") + protected String templateKey; + + @JsonDeserialize( + using = + AiExtractStructuredMetadataTemplateTypeField + .AiExtractStructuredMetadataTemplateTypeFieldDeserializer.class) + @JsonSerialize( + using = + AiExtractStructuredMetadataTemplateTypeField + .AiExtractStructuredMetadataTemplateTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String scope; + + public AiExtractStructuredMetadataTemplateField() { + super(); + } + + protected AiExtractStructuredMetadataTemplateField(Builder builder) { + super(); + this.templateKey = builder.templateKey; + this.type = builder.type; + this.scope = builder.scope; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getTemplateKey() { + return templateKey; + } + + public EnumWrapper getType() { + return type; + } + + public String getScope() { + return scope; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiExtractStructuredMetadataTemplateField casted = (AiExtractStructuredMetadataTemplateField) o; + return Objects.equals(templateKey, casted.templateKey) + && Objects.equals(type, casted.type) + && Objects.equals(scope, casted.scope); + } + + @Override + public int hashCode() { + return Objects.hash(templateKey, type, scope); + } + + @Override + public String toString() { + return "AiExtractStructuredMetadataTemplateField{" + + "templateKey='" + + templateKey + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "scope='" + + scope + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String templateKey; + + protected EnumWrapper type; + + protected String scope; + + public Builder templateKey(String templateKey) { + this.templateKey = templateKey; + return this; + } + + public Builder type(AiExtractStructuredMetadataTemplateTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder scope(String scope) { + this.scope = scope; + return this; + } + + public AiExtractStructuredMetadataTemplateField build() { + return new AiExtractStructuredMetadataTemplateField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredMetadataTemplateTypeField.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredMetadataTemplateTypeField.java new file mode 100644 index 000000000..2f59595c1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredMetadataTemplateTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.aiextractstructured; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AiExtractStructuredMetadataTemplateTypeField implements Valuable { + METADATA_TEMPLATE("metadata_template"); + + private final String value; + + AiExtractStructuredMetadataTemplateTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AiExtractStructuredMetadataTemplateTypeFieldDeserializer + extends JsonDeserializer> { + + public AiExtractStructuredMetadataTemplateTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AiExtractStructuredMetadataTemplateTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AiExtractStructuredMetadataTemplateTypeFieldSerializer + extends JsonSerializer> { + + public AiExtractStructuredMetadataTemplateTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java new file mode 100644 index 000000000..468796cf9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java @@ -0,0 +1,135 @@ +package com.box.sdkgen.schemas.aiextractstructuredresponse; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.aiagentinfo.AiAgentInfo; +import com.box.sdkgen.schemas.aiextractresponse.AiExtractResponse; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiExtractStructuredResponse extends SerializableObject { + + protected final AiExtractResponse answer; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected final Date createdAt; + + @JsonProperty("completion_reason") + protected String completionReason; + + @JsonProperty("ai_agent_info") + protected AiAgentInfo aiAgentInfo; + + public AiExtractStructuredResponse( + @JsonProperty("answer") AiExtractResponse answer, + @JsonProperty("created_at") Date createdAt) { + super(); + this.answer = answer; + this.createdAt = createdAt; + } + + protected AiExtractStructuredResponse(Builder builder) { + super(); + this.answer = builder.answer; + this.createdAt = builder.createdAt; + this.completionReason = builder.completionReason; + this.aiAgentInfo = builder.aiAgentInfo; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public AiExtractResponse getAnswer() { + return answer; + } + + public Date getCreatedAt() { + return createdAt; + } + + public String getCompletionReason() { + return completionReason; + } + + public AiAgentInfo getAiAgentInfo() { + return aiAgentInfo; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiExtractStructuredResponse casted = (AiExtractStructuredResponse) o; + return Objects.equals(answer, casted.answer) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(completionReason, casted.completionReason) + && Objects.equals(aiAgentInfo, casted.aiAgentInfo); + } + + @Override + public int hashCode() { + return Objects.hash(answer, createdAt, completionReason, aiAgentInfo); + } + + @Override + public String toString() { + return "AiExtractStructuredResponse{" + + "answer='" + + answer + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "completionReason='" + + completionReason + + '\'' + + ", " + + "aiAgentInfo='" + + aiAgentInfo + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final AiExtractResponse answer; + + protected final Date createdAt; + + protected String completionReason; + + protected AiAgentInfo aiAgentInfo; + + public Builder(AiExtractResponse answer, Date createdAt) { + super(); + this.answer = answer; + this.createdAt = createdAt; + } + + public Builder completionReason(String completionReason) { + this.completionReason = completionReason; + return this; + } + + public Builder aiAgentInfo(AiAgentInfo aiAgentInfo) { + this.aiAgentInfo = aiAgentInfo; + return this; + } + + public AiExtractStructuredResponse build() { + return new AiExtractStructuredResponse(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiitemask/AiItemAsk.java b/src/main/java/com/box/sdkgen/schemas/aiitemask/AiItemAsk.java new file mode 100644 index 000000000..2f7ada452 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiitemask/AiItemAsk.java @@ -0,0 +1,121 @@ +package com.box.sdkgen.schemas.aiitemask; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiItemAsk extends SerializableObject { + + protected final String id; + + @JsonDeserialize(using = AiItemAskTypeField.AiItemAskTypeFieldDeserializer.class) + @JsonSerialize(using = AiItemAskTypeField.AiItemAskTypeFieldSerializer.class) + protected final EnumWrapper type; + + protected String content; + + public AiItemAsk(String id, AiItemAskTypeField type) { + super(); + this.id = id; + this.type = new EnumWrapper(type); + } + + public AiItemAsk( + @JsonProperty("id") String id, @JsonProperty("type") EnumWrapper type) { + super(); + this.id = id; + this.type = type; + } + + protected AiItemAsk(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.content = builder.content; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getContent() { + return content; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiItemAsk casted = (AiItemAsk) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(content, casted.content); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, content); + } + + @Override + public String toString() { + return "AiItemAsk{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "content='" + + content + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected final EnumWrapper type; + + protected String content; + + public Builder(String id, AiItemAskTypeField type) { + super(); + this.id = id; + this.type = new EnumWrapper(type); + } + + public Builder(String id, EnumWrapper type) { + super(); + this.id = id; + this.type = type; + } + + public Builder content(String content) { + this.content = content; + return this; + } + + public AiItemAsk build() { + return new AiItemAsk(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiitemask/AiItemAskTypeField.java b/src/main/java/com/box/sdkgen/schemas/aiitemask/AiItemAskTypeField.java new file mode 100644 index 000000000..0b4c95965 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiitemask/AiItemAskTypeField.java @@ -0,0 +1,61 @@ +package com.box.sdkgen.schemas.aiitemask; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AiItemAskTypeField implements Valuable { + FILE("file"), + HUBS("hubs"); + + private final String value; + + AiItemAskTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AiItemAskTypeFieldDeserializer + extends JsonDeserializer> { + + public AiItemAskTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AiItemAskTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AiItemAskTypeFieldSerializer + extends JsonSerializer> { + + public AiItemAskTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiitembase/AiItemBase.java b/src/main/java/com/box/sdkgen/schemas/aiitembase/AiItemBase.java new file mode 100644 index 000000000..e82e9adba --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiitembase/AiItemBase.java @@ -0,0 +1,118 @@ +package com.box.sdkgen.schemas.aiitembase; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiItemBase extends SerializableObject { + + protected final String id; + + @JsonDeserialize(using = AiItemBaseTypeField.AiItemBaseTypeFieldDeserializer.class) + @JsonSerialize(using = AiItemBaseTypeField.AiItemBaseTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String content; + + public AiItemBase(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = new EnumWrapper(AiItemBaseTypeField.FILE); + } + + protected AiItemBase(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.content = builder.content; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getContent() { + return content; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiItemBase casted = (AiItemBase) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(content, casted.content); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, content); + } + + @Override + public String toString() { + return "AiItemBase{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "content='" + + content + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + protected String content; + + public Builder(String id) { + super(); + this.id = id; + this.type = new EnumWrapper(AiItemBaseTypeField.FILE); + } + + public Builder type(AiItemBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder content(String content) { + this.content = content; + return this; + } + + public AiItemBase build() { + return new AiItemBase(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiitembase/AiItemBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/aiitembase/AiItemBaseTypeField.java new file mode 100644 index 000000000..94ff42103 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiitembase/AiItemBaseTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.aiitembase; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AiItemBaseTypeField implements Valuable { + FILE("file"); + + private final String value; + + AiItemBaseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AiItemBaseTypeFieldDeserializer + extends JsonDeserializer> { + + public AiItemBaseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AiItemBaseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AiItemBaseTypeFieldSerializer + extends JsonSerializer> { + + public AiItemBaseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aillmendpointparams/AiLlmEndpointParams.java b/src/main/java/com/box/sdkgen/schemas/aillmendpointparams/AiLlmEndpointParams.java new file mode 100644 index 000000000..120c9101e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aillmendpointparams/AiLlmEndpointParams.java @@ -0,0 +1,136 @@ +package com.box.sdkgen.schemas.aillmendpointparams; + +import com.box.sdkgen.internal.OneOfFour; +import com.box.sdkgen.schemas.aillmendpointparamsaws.AiLlmEndpointParamsAws; +import com.box.sdkgen.schemas.aillmendpointparamsgoogle.AiLlmEndpointParamsGoogle; +import com.box.sdkgen.schemas.aillmendpointparamsibm.AiLlmEndpointParamsIbm; +import com.box.sdkgen.schemas.aillmendpointparamsopenai.AiLlmEndpointParamsOpenAi; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize(using = AiLlmEndpointParams.AiLlmEndpointParamsDeserializer.class) +@JsonSerialize(using = OneOfFour.OneOfFourSerializer.class) +public class AiLlmEndpointParams + extends OneOfFour< + AiLlmEndpointParamsOpenAi, + AiLlmEndpointParamsGoogle, + AiLlmEndpointParamsAws, + AiLlmEndpointParamsIbm> { + + protected final String type; + + protected final Double temperature; + + protected final Double topP; + + public AiLlmEndpointParams(AiLlmEndpointParamsOpenAi aiLlmEndpointParamsOpenAi) { + super(aiLlmEndpointParamsOpenAi, null, null, null); + this.type = EnumWrapper.convertToString(aiLlmEndpointParamsOpenAi.getType()); + this.temperature = aiLlmEndpointParamsOpenAi.getTemperature(); + this.topP = aiLlmEndpointParamsOpenAi.getTopP(); + } + + public AiLlmEndpointParams(AiLlmEndpointParamsGoogle aiLlmEndpointParamsGoogle) { + super(null, aiLlmEndpointParamsGoogle, null, null); + this.type = EnumWrapper.convertToString(aiLlmEndpointParamsGoogle.getType()); + this.temperature = aiLlmEndpointParamsGoogle.getTemperature(); + this.topP = aiLlmEndpointParamsGoogle.getTopP(); + } + + public AiLlmEndpointParams(AiLlmEndpointParamsAws aiLlmEndpointParamsAws) { + super(null, null, aiLlmEndpointParamsAws, null); + this.type = EnumWrapper.convertToString(aiLlmEndpointParamsAws.getType()); + this.temperature = aiLlmEndpointParamsAws.getTemperature(); + this.topP = aiLlmEndpointParamsAws.getTopP(); + } + + public AiLlmEndpointParams(AiLlmEndpointParamsIbm aiLlmEndpointParamsIbm) { + super(null, null, null, aiLlmEndpointParamsIbm); + this.type = EnumWrapper.convertToString(aiLlmEndpointParamsIbm.getType()); + this.temperature = aiLlmEndpointParamsIbm.getTemperature(); + this.topP = aiLlmEndpointParamsIbm.getTopP(); + } + + public boolean isAiLlmEndpointParamsOpenAi() { + return value0 != null; + } + + public AiLlmEndpointParamsOpenAi getAiLlmEndpointParamsOpenAi() { + return value0; + } + + public boolean isAiLlmEndpointParamsGoogle() { + return value1 != null; + } + + public AiLlmEndpointParamsGoogle getAiLlmEndpointParamsGoogle() { + return value1; + } + + public boolean isAiLlmEndpointParamsAws() { + return value2 != null; + } + + public AiLlmEndpointParamsAws getAiLlmEndpointParamsAws() { + return value2; + } + + public boolean isAiLlmEndpointParamsIbm() { + return value3 != null; + } + + public AiLlmEndpointParamsIbm getAiLlmEndpointParamsIbm() { + return value3; + } + + public String getType() { + return type; + } + + public double getTemperature() { + return temperature; + } + + public double getTopP() { + return topP; + } + + static class AiLlmEndpointParamsDeserializer extends JsonDeserializer { + + public AiLlmEndpointParamsDeserializer() { + super(); + } + + @Override + public AiLlmEndpointParams deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "openai_params": + return new AiLlmEndpointParams( + JsonManager.deserialize(node, AiLlmEndpointParamsOpenAi.class)); + case "google_params": + return new AiLlmEndpointParams( + JsonManager.deserialize(node, AiLlmEndpointParamsGoogle.class)); + case "aws_params": + return new AiLlmEndpointParams( + JsonManager.deserialize(node, AiLlmEndpointParamsAws.class)); + case "ibm_params": + return new AiLlmEndpointParams( + JsonManager.deserialize(node, AiLlmEndpointParamsIbm.class)); + } + } + throw new JsonMappingException(jp, "Unable to deserialize AiLlmEndpointParams"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsaws/AiLlmEndpointParamsAws.java b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsaws/AiLlmEndpointParamsAws.java new file mode 100644 index 000000000..ded28f764 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsaws/AiLlmEndpointParamsAws.java @@ -0,0 +1,132 @@ +package com.box.sdkgen.schemas.aillmendpointparamsaws; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiLlmEndpointParamsAws extends SerializableObject { + + @JsonDeserialize( + using = AiLlmEndpointParamsAwsTypeField.AiLlmEndpointParamsAwsTypeFieldDeserializer.class) + @JsonSerialize( + using = AiLlmEndpointParamsAwsTypeField.AiLlmEndpointParamsAwsTypeFieldSerializer.class) + protected EnumWrapper type; + + @Nullable protected Double temperature; + + @JsonProperty("top_p") + @Nullable + protected Double topP; + + public AiLlmEndpointParamsAws() { + super(); + this.type = + new EnumWrapper( + AiLlmEndpointParamsAwsTypeField.AWS_PARAMS); + } + + protected AiLlmEndpointParamsAws(Builder builder) { + super(); + this.type = builder.type; + this.temperature = builder.temperature; + this.topP = builder.topP; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public Double getTemperature() { + return temperature; + } + + public Double getTopP() { + return topP; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiLlmEndpointParamsAws casted = (AiLlmEndpointParamsAws) o; + return Objects.equals(type, casted.type) + && Objects.equals(temperature, casted.temperature) + && Objects.equals(topP, casted.topP); + } + + @Override + public int hashCode() { + return Objects.hash(type, temperature, topP); + } + + @Override + public String toString() { + return "AiLlmEndpointParamsAws{" + + "type='" + + type + + '\'' + + ", " + + "temperature='" + + temperature + + '\'' + + ", " + + "topP='" + + topP + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected Double temperature; + + protected Double topP; + + public Builder() { + super(); + this.type = + new EnumWrapper( + AiLlmEndpointParamsAwsTypeField.AWS_PARAMS); + } + + public Builder type(AiLlmEndpointParamsAwsTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder temperature(Double temperature) { + this.temperature = temperature; + this.markNullableFieldAsSet("temperature"); + return this; + } + + public Builder topP(Double topP) { + this.topP = topP; + this.markNullableFieldAsSet("top_p"); + return this; + } + + public AiLlmEndpointParamsAws build() { + return new AiLlmEndpointParamsAws(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsaws/AiLlmEndpointParamsAwsTypeField.java b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsaws/AiLlmEndpointParamsAwsTypeField.java new file mode 100644 index 000000000..907e831df --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsaws/AiLlmEndpointParamsAwsTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.aillmendpointparamsaws; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AiLlmEndpointParamsAwsTypeField implements Valuable { + AWS_PARAMS("aws_params"); + + private final String value; + + AiLlmEndpointParamsAwsTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AiLlmEndpointParamsAwsTypeFieldDeserializer + extends JsonDeserializer> { + + public AiLlmEndpointParamsAwsTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AiLlmEndpointParamsAwsTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AiLlmEndpointParamsAwsTypeFieldSerializer + extends JsonSerializer> { + + public AiLlmEndpointParamsAwsTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsgoogle/AiLlmEndpointParamsGoogle.java b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsgoogle/AiLlmEndpointParamsGoogle.java new file mode 100644 index 000000000..ced58633a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsgoogle/AiLlmEndpointParamsGoogle.java @@ -0,0 +1,155 @@ +package com.box.sdkgen.schemas.aillmendpointparamsgoogle; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiLlmEndpointParamsGoogle extends SerializableObject { + + @JsonDeserialize( + using = + AiLlmEndpointParamsGoogleTypeField.AiLlmEndpointParamsGoogleTypeFieldDeserializer.class) + @JsonSerialize( + using = AiLlmEndpointParamsGoogleTypeField.AiLlmEndpointParamsGoogleTypeFieldSerializer.class) + protected EnumWrapper type; + + @Nullable protected Double temperature; + + @JsonProperty("top_p") + @Nullable + protected Double topP; + + @JsonProperty("top_k") + @Nullable + protected Double topK; + + public AiLlmEndpointParamsGoogle() { + super(); + this.type = + new EnumWrapper( + AiLlmEndpointParamsGoogleTypeField.GOOGLE_PARAMS); + } + + protected AiLlmEndpointParamsGoogle(Builder builder) { + super(); + this.type = builder.type; + this.temperature = builder.temperature; + this.topP = builder.topP; + this.topK = builder.topK; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public Double getTemperature() { + return temperature; + } + + public Double getTopP() { + return topP; + } + + public Double getTopK() { + return topK; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiLlmEndpointParamsGoogle casted = (AiLlmEndpointParamsGoogle) o; + return Objects.equals(type, casted.type) + && Objects.equals(temperature, casted.temperature) + && Objects.equals(topP, casted.topP) + && Objects.equals(topK, casted.topK); + } + + @Override + public int hashCode() { + return Objects.hash(type, temperature, topP, topK); + } + + @Override + public String toString() { + return "AiLlmEndpointParamsGoogle{" + + "type='" + + type + + '\'' + + ", " + + "temperature='" + + temperature + + '\'' + + ", " + + "topP='" + + topP + + '\'' + + ", " + + "topK='" + + topK + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected Double temperature; + + protected Double topP; + + protected Double topK; + + public Builder() { + super(); + this.type = + new EnumWrapper( + AiLlmEndpointParamsGoogleTypeField.GOOGLE_PARAMS); + } + + public Builder type(AiLlmEndpointParamsGoogleTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder temperature(Double temperature) { + this.temperature = temperature; + this.markNullableFieldAsSet("temperature"); + return this; + } + + public Builder topP(Double topP) { + this.topP = topP; + this.markNullableFieldAsSet("top_p"); + return this; + } + + public Builder topK(Double topK) { + this.topK = topK; + this.markNullableFieldAsSet("top_k"); + return this; + } + + public AiLlmEndpointParamsGoogle build() { + return new AiLlmEndpointParamsGoogle(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsgoogle/AiLlmEndpointParamsGoogleTypeField.java b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsgoogle/AiLlmEndpointParamsGoogleTypeField.java new file mode 100644 index 000000000..20f17f9e6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsgoogle/AiLlmEndpointParamsGoogleTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.aillmendpointparamsgoogle; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AiLlmEndpointParamsGoogleTypeField implements Valuable { + GOOGLE_PARAMS("google_params"); + + private final String value; + + AiLlmEndpointParamsGoogleTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AiLlmEndpointParamsGoogleTypeFieldDeserializer + extends JsonDeserializer> { + + public AiLlmEndpointParamsGoogleTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AiLlmEndpointParamsGoogleTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AiLlmEndpointParamsGoogleTypeFieldSerializer + extends JsonSerializer> { + + public AiLlmEndpointParamsGoogleTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsibm/AiLlmEndpointParamsIbm.java b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsibm/AiLlmEndpointParamsIbm.java new file mode 100644 index 000000000..9887fbbed --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsibm/AiLlmEndpointParamsIbm.java @@ -0,0 +1,154 @@ +package com.box.sdkgen.schemas.aillmendpointparamsibm; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiLlmEndpointParamsIbm extends SerializableObject { + + @JsonDeserialize( + using = AiLlmEndpointParamsIbmTypeField.AiLlmEndpointParamsIbmTypeFieldDeserializer.class) + @JsonSerialize( + using = AiLlmEndpointParamsIbmTypeField.AiLlmEndpointParamsIbmTypeFieldSerializer.class) + protected EnumWrapper type; + + @Nullable protected Double temperature; + + @JsonProperty("top_p") + @Nullable + protected Double topP; + + @JsonProperty("top_k") + @Nullable + protected Double topK; + + public AiLlmEndpointParamsIbm() { + super(); + this.type = + new EnumWrapper( + AiLlmEndpointParamsIbmTypeField.IBM_PARAMS); + } + + protected AiLlmEndpointParamsIbm(Builder builder) { + super(); + this.type = builder.type; + this.temperature = builder.temperature; + this.topP = builder.topP; + this.topK = builder.topK; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public Double getTemperature() { + return temperature; + } + + public Double getTopP() { + return topP; + } + + public Double getTopK() { + return topK; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiLlmEndpointParamsIbm casted = (AiLlmEndpointParamsIbm) o; + return Objects.equals(type, casted.type) + && Objects.equals(temperature, casted.temperature) + && Objects.equals(topP, casted.topP) + && Objects.equals(topK, casted.topK); + } + + @Override + public int hashCode() { + return Objects.hash(type, temperature, topP, topK); + } + + @Override + public String toString() { + return "AiLlmEndpointParamsIbm{" + + "type='" + + type + + '\'' + + ", " + + "temperature='" + + temperature + + '\'' + + ", " + + "topP='" + + topP + + '\'' + + ", " + + "topK='" + + topK + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected Double temperature; + + protected Double topP; + + protected Double topK; + + public Builder() { + super(); + this.type = + new EnumWrapper( + AiLlmEndpointParamsIbmTypeField.IBM_PARAMS); + } + + public Builder type(AiLlmEndpointParamsIbmTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder temperature(Double temperature) { + this.temperature = temperature; + this.markNullableFieldAsSet("temperature"); + return this; + } + + public Builder topP(Double topP) { + this.topP = topP; + this.markNullableFieldAsSet("top_p"); + return this; + } + + public Builder topK(Double topK) { + this.topK = topK; + this.markNullableFieldAsSet("top_k"); + return this; + } + + public AiLlmEndpointParamsIbm build() { + return new AiLlmEndpointParamsIbm(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsibm/AiLlmEndpointParamsIbmTypeField.java b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsibm/AiLlmEndpointParamsIbmTypeField.java new file mode 100644 index 000000000..d64852463 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsibm/AiLlmEndpointParamsIbmTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.aillmendpointparamsibm; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AiLlmEndpointParamsIbmTypeField implements Valuable { + IBM_PARAMS("ibm_params"); + + private final String value; + + AiLlmEndpointParamsIbmTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AiLlmEndpointParamsIbmTypeFieldDeserializer + extends JsonDeserializer> { + + public AiLlmEndpointParamsIbmTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AiLlmEndpointParamsIbmTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AiLlmEndpointParamsIbmTypeFieldSerializer + extends JsonSerializer> { + + public AiLlmEndpointParamsIbmTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsopenai/AiLlmEndpointParamsOpenAi.java b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsopenai/AiLlmEndpointParamsOpenAi.java new file mode 100644 index 000000000..7950b97ba --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsopenai/AiLlmEndpointParamsOpenAi.java @@ -0,0 +1,197 @@ +package com.box.sdkgen.schemas.aillmendpointparamsopenai; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiLlmEndpointParamsOpenAi extends SerializableObject { + + @JsonDeserialize( + using = + AiLlmEndpointParamsOpenAiTypeField.AiLlmEndpointParamsOpenAiTypeFieldDeserializer.class) + @JsonSerialize( + using = AiLlmEndpointParamsOpenAiTypeField.AiLlmEndpointParamsOpenAiTypeFieldSerializer.class) + protected EnumWrapper type; + + @Nullable protected Double temperature; + + @JsonProperty("top_p") + @Nullable + protected Double topP; + + @JsonProperty("frequency_penalty") + @Nullable + protected Double frequencyPenalty; + + @JsonProperty("presence_penalty") + @Nullable + protected Double presencePenalty; + + @Nullable protected String stop; + + public AiLlmEndpointParamsOpenAi() { + super(); + this.type = + new EnumWrapper( + AiLlmEndpointParamsOpenAiTypeField.OPENAI_PARAMS); + } + + protected AiLlmEndpointParamsOpenAi(Builder builder) { + super(); + this.type = builder.type; + this.temperature = builder.temperature; + this.topP = builder.topP; + this.frequencyPenalty = builder.frequencyPenalty; + this.presencePenalty = builder.presencePenalty; + this.stop = builder.stop; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public Double getTemperature() { + return temperature; + } + + public Double getTopP() { + return topP; + } + + public Double getFrequencyPenalty() { + return frequencyPenalty; + } + + public Double getPresencePenalty() { + return presencePenalty; + } + + public String getStop() { + return stop; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiLlmEndpointParamsOpenAi casted = (AiLlmEndpointParamsOpenAi) o; + return Objects.equals(type, casted.type) + && Objects.equals(temperature, casted.temperature) + && Objects.equals(topP, casted.topP) + && Objects.equals(frequencyPenalty, casted.frequencyPenalty) + && Objects.equals(presencePenalty, casted.presencePenalty) + && Objects.equals(stop, casted.stop); + } + + @Override + public int hashCode() { + return Objects.hash(type, temperature, topP, frequencyPenalty, presencePenalty, stop); + } + + @Override + public String toString() { + return "AiLlmEndpointParamsOpenAi{" + + "type='" + + type + + '\'' + + ", " + + "temperature='" + + temperature + + '\'' + + ", " + + "topP='" + + topP + + '\'' + + ", " + + "frequencyPenalty='" + + frequencyPenalty + + '\'' + + ", " + + "presencePenalty='" + + presencePenalty + + '\'' + + ", " + + "stop='" + + stop + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected Double temperature; + + protected Double topP; + + protected Double frequencyPenalty; + + protected Double presencePenalty; + + protected String stop; + + public Builder() { + super(); + this.type = + new EnumWrapper( + AiLlmEndpointParamsOpenAiTypeField.OPENAI_PARAMS); + } + + public Builder type(AiLlmEndpointParamsOpenAiTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder temperature(Double temperature) { + this.temperature = temperature; + this.markNullableFieldAsSet("temperature"); + return this; + } + + public Builder topP(Double topP) { + this.topP = topP; + this.markNullableFieldAsSet("top_p"); + return this; + } + + public Builder frequencyPenalty(Double frequencyPenalty) { + this.frequencyPenalty = frequencyPenalty; + this.markNullableFieldAsSet("frequency_penalty"); + return this; + } + + public Builder presencePenalty(Double presencePenalty) { + this.presencePenalty = presencePenalty; + this.markNullableFieldAsSet("presence_penalty"); + return this; + } + + public Builder stop(String stop) { + this.stop = stop; + this.markNullableFieldAsSet("stop"); + return this; + } + + public AiLlmEndpointParamsOpenAi build() { + return new AiLlmEndpointParamsOpenAi(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsopenai/AiLlmEndpointParamsOpenAiTypeField.java b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsopenai/AiLlmEndpointParamsOpenAiTypeField.java new file mode 100644 index 000000000..59f219f5a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsopenai/AiLlmEndpointParamsOpenAiTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.aillmendpointparamsopenai; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AiLlmEndpointParamsOpenAiTypeField implements Valuable { + OPENAI_PARAMS("openai_params"); + + private final String value; + + AiLlmEndpointParamsOpenAiTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AiLlmEndpointParamsOpenAiTypeFieldDeserializer + extends JsonDeserializer> { + + public AiLlmEndpointParamsOpenAiTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AiLlmEndpointParamsOpenAiTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AiLlmEndpointParamsOpenAiTypeFieldSerializer + extends JsonSerializer> { + + public AiLlmEndpointParamsOpenAiTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aimultipleagentresponse/AiMultipleAgentResponse.java b/src/main/java/com/box/sdkgen/schemas/aimultipleagentresponse/AiMultipleAgentResponse.java new file mode 100644 index 000000000..d34259780 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aimultipleagentresponse/AiMultipleAgentResponse.java @@ -0,0 +1,134 @@ +package com.box.sdkgen.schemas.aimultipleagentresponse; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.aisingleagentresponsefull.AiSingleAgentResponseFull; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiMultipleAgentResponse extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + protected final List entries; + + public AiMultipleAgentResponse(@JsonProperty("entries") List entries) { + super(); + this.entries = entries; + } + + protected AiMultipleAgentResponse(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiMultipleAgentResponse casted = (AiMultipleAgentResponse) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "AiMultipleAgentResponse{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected final List entries; + + public Builder(List entries) { + super(); + this.entries = entries; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public AiMultipleAgentResponse build() { + return new AiMultipleAgentResponse(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/airesponse/AiResponse.java b/src/main/java/com/box/sdkgen/schemas/airesponse/AiResponse.java new file mode 100644 index 000000000..f71069b8f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/airesponse/AiResponse.java @@ -0,0 +1,133 @@ +package com.box.sdkgen.schemas.airesponse; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.aiagentinfo.AiAgentInfo; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiResponse extends SerializableObject { + + protected final String answer; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected final Date createdAt; + + @JsonProperty("completion_reason") + protected String completionReason; + + @JsonProperty("ai_agent_info") + protected AiAgentInfo aiAgentInfo; + + public AiResponse( + @JsonProperty("answer") String answer, @JsonProperty("created_at") Date createdAt) { + super(); + this.answer = answer; + this.createdAt = createdAt; + } + + protected AiResponse(Builder builder) { + super(); + this.answer = builder.answer; + this.createdAt = builder.createdAt; + this.completionReason = builder.completionReason; + this.aiAgentInfo = builder.aiAgentInfo; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getAnswer() { + return answer; + } + + public Date getCreatedAt() { + return createdAt; + } + + public String getCompletionReason() { + return completionReason; + } + + public AiAgentInfo getAiAgentInfo() { + return aiAgentInfo; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiResponse casted = (AiResponse) o; + return Objects.equals(answer, casted.answer) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(completionReason, casted.completionReason) + && Objects.equals(aiAgentInfo, casted.aiAgentInfo); + } + + @Override + public int hashCode() { + return Objects.hash(answer, createdAt, completionReason, aiAgentInfo); + } + + @Override + public String toString() { + return "AiResponse{" + + "answer='" + + answer + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "completionReason='" + + completionReason + + '\'' + + ", " + + "aiAgentInfo='" + + aiAgentInfo + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String answer; + + protected final Date createdAt; + + protected String completionReason; + + protected AiAgentInfo aiAgentInfo; + + public Builder(String answer, Date createdAt) { + super(); + this.answer = answer; + this.createdAt = createdAt; + } + + public Builder completionReason(String completionReason) { + this.completionReason = completionReason; + return this; + } + + public Builder aiAgentInfo(AiAgentInfo aiAgentInfo) { + this.aiAgentInfo = aiAgentInfo; + return this; + } + + public AiResponse build() { + return new AiResponse(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/airesponsefull/AiResponseFull.java b/src/main/java/com/box/sdkgen/schemas/airesponsefull/AiResponseFull.java new file mode 100644 index 000000000..3acf3d8a6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/airesponsefull/AiResponseFull.java @@ -0,0 +1,107 @@ +package com.box.sdkgen.schemas.airesponsefull; + +import com.box.sdkgen.schemas.aiagentinfo.AiAgentInfo; +import com.box.sdkgen.schemas.aicitation.AiCitation; +import com.box.sdkgen.schemas.airesponse.AiResponse; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Date; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiResponseFull extends AiResponse { + + protected List citations; + + public AiResponseFull( + @JsonProperty("answer") String answer, @JsonProperty("created_at") Date createdAt) { + super(answer, createdAt); + } + + protected AiResponseFull(Builder builder) { + super(builder); + this.citations = builder.citations; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getCitations() { + return citations; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiResponseFull casted = (AiResponseFull) o; + return Objects.equals(answer, casted.answer) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(completionReason, casted.completionReason) + && Objects.equals(aiAgentInfo, casted.aiAgentInfo) + && Objects.equals(citations, casted.citations); + } + + @Override + public int hashCode() { + return Objects.hash(answer, createdAt, completionReason, aiAgentInfo, citations); + } + + @Override + public String toString() { + return "AiResponseFull{" + + "answer='" + + answer + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "completionReason='" + + completionReason + + '\'' + + ", " + + "aiAgentInfo='" + + aiAgentInfo + + '\'' + + ", " + + "citations='" + + citations + + '\'' + + "}"; + } + + public static class Builder extends AiResponse.Builder { + + protected List citations; + + public Builder(String answer, Date createdAt) { + super(answer, createdAt); + } + + public Builder citations(List citations) { + this.citations = citations; + return this; + } + + @Override + public Builder completionReason(String completionReason) { + this.completionReason = completionReason; + return this; + } + + @Override + public Builder aiAgentInfo(AiAgentInfo aiAgentInfo) { + this.aiAgentInfo = aiAgentInfo; + return this; + } + + public AiResponseFull build() { + return new AiResponseFull(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aisingleagentresponse/AiSingleAgentResponse.java b/src/main/java/com/box/sdkgen/schemas/aisingleagentresponse/AiSingleAgentResponse.java new file mode 100644 index 000000000..e3fe896b2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aisingleagentresponse/AiSingleAgentResponse.java @@ -0,0 +1,292 @@ +package com.box.sdkgen.schemas.aisingleagentresponse; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.aiagentallowedentity.AiAgentAllowedEntity; +import com.box.sdkgen.schemas.userbase.UserBase; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiSingleAgentResponse extends SerializableObject { + + protected final String id; + + @JsonDeserialize( + using = AiSingleAgentResponseTypeField.AiSingleAgentResponseTypeFieldDeserializer.class) + @JsonSerialize( + using = AiSingleAgentResponseTypeField.AiSingleAgentResponseTypeFieldSerializer.class) + protected EnumWrapper type; + + protected final String origin; + + protected final String name; + + @JsonProperty("access_state") + protected final String accessState; + + @JsonProperty("created_by") + protected UserBase createdBy; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("modified_by") + protected UserBase modifiedBy; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date modifiedAt; + + @JsonProperty("icon_reference") + protected String iconReference; + + @JsonProperty("allowed_entities") + protected List allowedEntities; + + public AiSingleAgentResponse( + @JsonProperty("id") String id, + @JsonProperty("origin") String origin, + @JsonProperty("name") String name, + @JsonProperty("access_state") String accessState) { + super(); + this.id = id; + this.origin = origin; + this.name = name; + this.accessState = accessState; + } + + protected AiSingleAgentResponse(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.origin = builder.origin; + this.name = builder.name; + this.accessState = builder.accessState; + this.createdBy = builder.createdBy; + this.createdAt = builder.createdAt; + this.modifiedBy = builder.modifiedBy; + this.modifiedAt = builder.modifiedAt; + this.iconReference = builder.iconReference; + this.allowedEntities = builder.allowedEntities; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getOrigin() { + return origin; + } + + public String getName() { + return name; + } + + public String getAccessState() { + return accessState; + } + + public UserBase getCreatedBy() { + return createdBy; + } + + public Date getCreatedAt() { + return createdAt; + } + + public UserBase getModifiedBy() { + return modifiedBy; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + public String getIconReference() { + return iconReference; + } + + public List getAllowedEntities() { + return allowedEntities; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiSingleAgentResponse casted = (AiSingleAgentResponse) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(origin, casted.origin) + && Objects.equals(name, casted.name) + && Objects.equals(accessState, casted.accessState) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedBy, casted.modifiedBy) + && Objects.equals(modifiedAt, casted.modifiedAt) + && Objects.equals(iconReference, casted.iconReference) + && Objects.equals(allowedEntities, casted.allowedEntities); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + type, + origin, + name, + accessState, + createdBy, + createdAt, + modifiedBy, + modifiedAt, + iconReference, + allowedEntities); + } + + @Override + public String toString() { + return "AiSingleAgentResponse{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "origin='" + + origin + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "accessState='" + + accessState + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedBy='" + + modifiedBy + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + ", " + + "iconReference='" + + iconReference + + '\'' + + ", " + + "allowedEntities='" + + allowedEntities + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + protected final String origin; + + protected final String name; + + protected final String accessState; + + protected UserBase createdBy; + + protected Date createdAt; + + protected UserBase modifiedBy; + + protected Date modifiedAt; + + protected String iconReference; + + protected List allowedEntities; + + public Builder(String id, String origin, String name, String accessState) { + super(); + this.id = id; + this.origin = origin; + this.name = name; + this.accessState = accessState; + } + + public Builder type(AiSingleAgentResponseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder createdBy(UserBase createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder modifiedBy(UserBase modifiedBy) { + this.modifiedBy = modifiedBy; + return this; + } + + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + public Builder iconReference(String iconReference) { + this.iconReference = iconReference; + return this; + } + + public Builder allowedEntities(List allowedEntities) { + this.allowedEntities = allowedEntities; + return this; + } + + public AiSingleAgentResponse build() { + return new AiSingleAgentResponse(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aisingleagentresponse/AiSingleAgentResponseTypeField.java b/src/main/java/com/box/sdkgen/schemas/aisingleagentresponse/AiSingleAgentResponseTypeField.java new file mode 100644 index 000000000..bd48fcfde --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aisingleagentresponse/AiSingleAgentResponseTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.aisingleagentresponse; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AiSingleAgentResponseTypeField implements Valuable { + AI_AGENT("ai_agent"); + + private final String value; + + AiSingleAgentResponseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AiSingleAgentResponseTypeFieldDeserializer + extends JsonDeserializer> { + + public AiSingleAgentResponseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AiSingleAgentResponseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AiSingleAgentResponseTypeFieldSerializer + extends JsonSerializer> { + + public AiSingleAgentResponseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aisingleagentresponsefull/AiSingleAgentResponseFull.java b/src/main/java/com/box/sdkgen/schemas/aisingleagentresponsefull/AiSingleAgentResponseFull.java new file mode 100644 index 000000000..b8276520e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aisingleagentresponsefull/AiSingleAgentResponseFull.java @@ -0,0 +1,239 @@ +package com.box.sdkgen.schemas.aisingleagentresponsefull; + +import com.box.sdkgen.schemas.aiagentallowedentity.AiAgentAllowedEntity; +import com.box.sdkgen.schemas.aisingleagentresponse.AiSingleAgentResponse; +import com.box.sdkgen.schemas.aisingleagentresponse.AiSingleAgentResponseTypeField; +import com.box.sdkgen.schemas.aistudioagentaskresponse.AiStudioAgentAskResponse; +import com.box.sdkgen.schemas.aistudioagentextractresponse.AiStudioAgentExtractResponse; +import com.box.sdkgen.schemas.aistudioagenttextgenresponse.AiStudioAgentTextGenResponse; +import com.box.sdkgen.schemas.userbase.UserBase; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Date; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiSingleAgentResponseFull extends AiSingleAgentResponse { + + protected AiStudioAgentAskResponse ask; + + @JsonProperty("text_gen") + protected AiStudioAgentTextGenResponse textGen; + + protected AiStudioAgentExtractResponse extract; + + public AiSingleAgentResponseFull( + @JsonProperty("id") String id, + @JsonProperty("origin") String origin, + @JsonProperty("name") String name, + @JsonProperty("access_state") String accessState) { + super(id, origin, name, accessState); + } + + protected AiSingleAgentResponseFull(Builder builder) { + super(builder); + this.ask = builder.ask; + this.textGen = builder.textGen; + this.extract = builder.extract; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public AiStudioAgentAskResponse getAsk() { + return ask; + } + + public AiStudioAgentTextGenResponse getTextGen() { + return textGen; + } + + public AiStudioAgentExtractResponse getExtract() { + return extract; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiSingleAgentResponseFull casted = (AiSingleAgentResponseFull) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(origin, casted.origin) + && Objects.equals(name, casted.name) + && Objects.equals(accessState, casted.accessState) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedBy, casted.modifiedBy) + && Objects.equals(modifiedAt, casted.modifiedAt) + && Objects.equals(iconReference, casted.iconReference) + && Objects.equals(allowedEntities, casted.allowedEntities) + && Objects.equals(ask, casted.ask) + && Objects.equals(textGen, casted.textGen) + && Objects.equals(extract, casted.extract); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + type, + origin, + name, + accessState, + createdBy, + createdAt, + modifiedBy, + modifiedAt, + iconReference, + allowedEntities, + ask, + textGen, + extract); + } + + @Override + public String toString() { + return "AiSingleAgentResponseFull{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "origin='" + + origin + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "accessState='" + + accessState + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedBy='" + + modifiedBy + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + ", " + + "iconReference='" + + iconReference + + '\'' + + ", " + + "allowedEntities='" + + allowedEntities + + '\'' + + ", " + + "ask='" + + ask + + '\'' + + ", " + + "textGen='" + + textGen + + '\'' + + ", " + + "extract='" + + extract + + '\'' + + "}"; + } + + public static class Builder extends AiSingleAgentResponse.Builder { + + protected AiStudioAgentAskResponse ask; + + protected AiStudioAgentTextGenResponse textGen; + + protected AiStudioAgentExtractResponse extract; + + public Builder(String id, String origin, String name, String accessState) { + super(id, origin, name, accessState); + } + + public Builder ask(AiStudioAgentAskResponse ask) { + this.ask = ask; + return this; + } + + public Builder textGen(AiStudioAgentTextGenResponse textGen) { + this.textGen = textGen; + return this; + } + + public Builder extract(AiStudioAgentExtractResponse extract) { + this.extract = extract; + return this; + } + + @Override + public Builder type(AiSingleAgentResponseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder createdBy(UserBase createdBy) { + this.createdBy = createdBy; + return this; + } + + @Override + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + @Override + public Builder modifiedBy(UserBase modifiedBy) { + this.modifiedBy = modifiedBy; + return this; + } + + @Override + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + @Override + public Builder iconReference(String iconReference) { + this.iconReference = iconReference; + return this; + } + + @Override + public Builder allowedEntities(List allowedEntities) { + this.allowedEntities = allowedEntities; + return this; + } + + public AiSingleAgentResponseFull build() { + return new AiSingleAgentResponseFull(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentask/AiStudioAgentAsk.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentask/AiStudioAgentAsk.java new file mode 100644 index 000000000..cff15ddf9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentask/AiStudioAgentAsk.java @@ -0,0 +1,317 @@ +package com.box.sdkgen.schemas.aistudioagentask; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.aistudioagentbasictexttool.AiStudioAgentBasicTextTool; +import com.box.sdkgen.schemas.aistudioagentlongtexttool.AiStudioAgentLongTextTool; +import com.box.sdkgen.schemas.aistudioagentspreadsheettool.AiStudioAgentSpreadsheetTool; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiStudioAgentAsk extends SerializableObject { + + @JsonDeserialize(using = AiStudioAgentAskTypeField.AiStudioAgentAskTypeFieldDeserializer.class) + @JsonSerialize(using = AiStudioAgentAskTypeField.AiStudioAgentAskTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("access_state") + protected final String accessState; + + protected final String description; + + @JsonProperty("custom_instructions") + @Nullable + protected String customInstructions; + + @JsonProperty("suggested_questions") + protected List suggestedQuestions; + + @JsonProperty("long_text") + protected AiStudioAgentLongTextTool longText; + + @JsonProperty("basic_text") + protected AiStudioAgentBasicTextTool basicText; + + @JsonProperty("basic_image") + protected AiStudioAgentBasicTextTool basicImage; + + protected AiStudioAgentSpreadsheetTool spreadsheet; + + @JsonProperty("long_text_multi") + protected AiStudioAgentLongTextTool longTextMulti; + + @JsonProperty("basic_text_multi") + protected AiStudioAgentBasicTextTool basicTextMulti; + + @JsonProperty("basic_image_multi") + protected AiStudioAgentBasicTextTool basicImageMulti; + + public AiStudioAgentAsk( + @JsonProperty("access_state") String accessState, + @JsonProperty("description") String description) { + super(); + this.accessState = accessState; + this.description = description; + this.type = new EnumWrapper(AiStudioAgentAskTypeField.AI_AGENT_ASK); + } + + protected AiStudioAgentAsk(Builder builder) { + super(); + this.type = builder.type; + this.accessState = builder.accessState; + this.description = builder.description; + this.customInstructions = builder.customInstructions; + this.suggestedQuestions = builder.suggestedQuestions; + this.longText = builder.longText; + this.basicText = builder.basicText; + this.basicImage = builder.basicImage; + this.spreadsheet = builder.spreadsheet; + this.longTextMulti = builder.longTextMulti; + this.basicTextMulti = builder.basicTextMulti; + this.basicImageMulti = builder.basicImageMulti; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getAccessState() { + return accessState; + } + + public String getDescription() { + return description; + } + + public String getCustomInstructions() { + return customInstructions; + } + + public List getSuggestedQuestions() { + return suggestedQuestions; + } + + public AiStudioAgentLongTextTool getLongText() { + return longText; + } + + public AiStudioAgentBasicTextTool getBasicText() { + return basicText; + } + + public AiStudioAgentBasicTextTool getBasicImage() { + return basicImage; + } + + public AiStudioAgentSpreadsheetTool getSpreadsheet() { + return spreadsheet; + } + + public AiStudioAgentLongTextTool getLongTextMulti() { + return longTextMulti; + } + + public AiStudioAgentBasicTextTool getBasicTextMulti() { + return basicTextMulti; + } + + public AiStudioAgentBasicTextTool getBasicImageMulti() { + return basicImageMulti; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiStudioAgentAsk casted = (AiStudioAgentAsk) o; + return Objects.equals(type, casted.type) + && Objects.equals(accessState, casted.accessState) + && Objects.equals(description, casted.description) + && Objects.equals(customInstructions, casted.customInstructions) + && Objects.equals(suggestedQuestions, casted.suggestedQuestions) + && Objects.equals(longText, casted.longText) + && Objects.equals(basicText, casted.basicText) + && Objects.equals(basicImage, casted.basicImage) + && Objects.equals(spreadsheet, casted.spreadsheet) + && Objects.equals(longTextMulti, casted.longTextMulti) + && Objects.equals(basicTextMulti, casted.basicTextMulti) + && Objects.equals(basicImageMulti, casted.basicImageMulti); + } + + @Override + public int hashCode() { + return Objects.hash( + type, + accessState, + description, + customInstructions, + suggestedQuestions, + longText, + basicText, + basicImage, + spreadsheet, + longTextMulti, + basicTextMulti, + basicImageMulti); + } + + @Override + public String toString() { + return "AiStudioAgentAsk{" + + "type='" + + type + + '\'' + + ", " + + "accessState='" + + accessState + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "customInstructions='" + + customInstructions + + '\'' + + ", " + + "suggestedQuestions='" + + suggestedQuestions + + '\'' + + ", " + + "longText='" + + longText + + '\'' + + ", " + + "basicText='" + + basicText + + '\'' + + ", " + + "basicImage='" + + basicImage + + '\'' + + ", " + + "spreadsheet='" + + spreadsheet + + '\'' + + ", " + + "longTextMulti='" + + longTextMulti + + '\'' + + ", " + + "basicTextMulti='" + + basicTextMulti + + '\'' + + ", " + + "basicImageMulti='" + + basicImageMulti + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String accessState; + + protected final String description; + + protected String customInstructions; + + protected List suggestedQuestions; + + protected AiStudioAgentLongTextTool longText; + + protected AiStudioAgentBasicTextTool basicText; + + protected AiStudioAgentBasicTextTool basicImage; + + protected AiStudioAgentSpreadsheetTool spreadsheet; + + protected AiStudioAgentLongTextTool longTextMulti; + + protected AiStudioAgentBasicTextTool basicTextMulti; + + protected AiStudioAgentBasicTextTool basicImageMulti; + + public Builder(String accessState, String description) { + super(); + this.accessState = accessState; + this.description = description; + this.type = + new EnumWrapper(AiStudioAgentAskTypeField.AI_AGENT_ASK); + } + + public Builder type(AiStudioAgentAskTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder customInstructions(String customInstructions) { + this.customInstructions = customInstructions; + this.markNullableFieldAsSet("custom_instructions"); + return this; + } + + public Builder suggestedQuestions(List suggestedQuestions) { + this.suggestedQuestions = suggestedQuestions; + return this; + } + + public Builder longText(AiStudioAgentLongTextTool longText) { + this.longText = longText; + return this; + } + + public Builder basicText(AiStudioAgentBasicTextTool basicText) { + this.basicText = basicText; + return this; + } + + public Builder basicImage(AiStudioAgentBasicTextTool basicImage) { + this.basicImage = basicImage; + return this; + } + + public Builder spreadsheet(AiStudioAgentSpreadsheetTool spreadsheet) { + this.spreadsheet = spreadsheet; + return this; + } + + public Builder longTextMulti(AiStudioAgentLongTextTool longTextMulti) { + this.longTextMulti = longTextMulti; + return this; + } + + public Builder basicTextMulti(AiStudioAgentBasicTextTool basicTextMulti) { + this.basicTextMulti = basicTextMulti; + return this; + } + + public Builder basicImageMulti(AiStudioAgentBasicTextTool basicImageMulti) { + this.basicImageMulti = basicImageMulti; + return this; + } + + public AiStudioAgentAsk build() { + return new AiStudioAgentAsk(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentask/AiStudioAgentAskTypeField.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentask/AiStudioAgentAskTypeField.java new file mode 100644 index 000000000..b6a1a9426 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentask/AiStudioAgentAskTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.aistudioagentask; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AiStudioAgentAskTypeField implements Valuable { + AI_AGENT_ASK("ai_agent_ask"); + + private final String value; + + AiStudioAgentAskTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AiStudioAgentAskTypeFieldDeserializer + extends JsonDeserializer> { + + public AiStudioAgentAskTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AiStudioAgentAskTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AiStudioAgentAskTypeFieldSerializer + extends JsonSerializer> { + + public AiStudioAgentAskTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentaskresponse/AiStudioAgentAskResponse.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentaskresponse/AiStudioAgentAskResponse.java new file mode 100644 index 000000000..51a5c388d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentaskresponse/AiStudioAgentAskResponse.java @@ -0,0 +1,322 @@ +package com.box.sdkgen.schemas.aistudioagentaskresponse; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.aistudioagentbasictexttoolresponse.AiStudioAgentBasicTextToolResponse; +import com.box.sdkgen.schemas.aistudioagentlongtexttoolresponse.AiStudioAgentLongTextToolResponse; +import com.box.sdkgen.schemas.aistudioagentspreadsheettoolresponse.AiStudioAgentSpreadsheetToolResponse; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiStudioAgentAskResponse extends SerializableObject { + + @JsonDeserialize( + using = AiStudioAgentAskResponseTypeField.AiStudioAgentAskResponseTypeFieldDeserializer.class) + @JsonSerialize( + using = AiStudioAgentAskResponseTypeField.AiStudioAgentAskResponseTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("access_state") + protected final String accessState; + + protected final String description; + + @JsonProperty("custom_instructions") + @Nullable + protected String customInstructions; + + @JsonProperty("suggested_questions") + protected List suggestedQuestions; + + @JsonProperty("long_text") + protected AiStudioAgentLongTextToolResponse longText; + + @JsonProperty("basic_text") + protected AiStudioAgentBasicTextToolResponse basicText; + + @JsonProperty("basic_image") + protected AiStudioAgentBasicTextToolResponse basicImage; + + protected AiStudioAgentSpreadsheetToolResponse spreadsheet; + + @JsonProperty("long_text_multi") + protected AiStudioAgentLongTextToolResponse longTextMulti; + + @JsonProperty("basic_text_multi") + protected AiStudioAgentBasicTextToolResponse basicTextMulti; + + @JsonProperty("basic_image_multi") + protected AiStudioAgentBasicTextToolResponse basicImageMulti; + + public AiStudioAgentAskResponse( + @JsonProperty("access_state") String accessState, + @JsonProperty("description") String description) { + super(); + this.accessState = accessState; + this.description = description; + this.type = + new EnumWrapper( + AiStudioAgentAskResponseTypeField.AI_AGENT_ASK); + } + + protected AiStudioAgentAskResponse(Builder builder) { + super(); + this.type = builder.type; + this.accessState = builder.accessState; + this.description = builder.description; + this.customInstructions = builder.customInstructions; + this.suggestedQuestions = builder.suggestedQuestions; + this.longText = builder.longText; + this.basicText = builder.basicText; + this.basicImage = builder.basicImage; + this.spreadsheet = builder.spreadsheet; + this.longTextMulti = builder.longTextMulti; + this.basicTextMulti = builder.basicTextMulti; + this.basicImageMulti = builder.basicImageMulti; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getAccessState() { + return accessState; + } + + public String getDescription() { + return description; + } + + public String getCustomInstructions() { + return customInstructions; + } + + public List getSuggestedQuestions() { + return suggestedQuestions; + } + + public AiStudioAgentLongTextToolResponse getLongText() { + return longText; + } + + public AiStudioAgentBasicTextToolResponse getBasicText() { + return basicText; + } + + public AiStudioAgentBasicTextToolResponse getBasicImage() { + return basicImage; + } + + public AiStudioAgentSpreadsheetToolResponse getSpreadsheet() { + return spreadsheet; + } + + public AiStudioAgentLongTextToolResponse getLongTextMulti() { + return longTextMulti; + } + + public AiStudioAgentBasicTextToolResponse getBasicTextMulti() { + return basicTextMulti; + } + + public AiStudioAgentBasicTextToolResponse getBasicImageMulti() { + return basicImageMulti; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiStudioAgentAskResponse casted = (AiStudioAgentAskResponse) o; + return Objects.equals(type, casted.type) + && Objects.equals(accessState, casted.accessState) + && Objects.equals(description, casted.description) + && Objects.equals(customInstructions, casted.customInstructions) + && Objects.equals(suggestedQuestions, casted.suggestedQuestions) + && Objects.equals(longText, casted.longText) + && Objects.equals(basicText, casted.basicText) + && Objects.equals(basicImage, casted.basicImage) + && Objects.equals(spreadsheet, casted.spreadsheet) + && Objects.equals(longTextMulti, casted.longTextMulti) + && Objects.equals(basicTextMulti, casted.basicTextMulti) + && Objects.equals(basicImageMulti, casted.basicImageMulti); + } + + @Override + public int hashCode() { + return Objects.hash( + type, + accessState, + description, + customInstructions, + suggestedQuestions, + longText, + basicText, + basicImage, + spreadsheet, + longTextMulti, + basicTextMulti, + basicImageMulti); + } + + @Override + public String toString() { + return "AiStudioAgentAskResponse{" + + "type='" + + type + + '\'' + + ", " + + "accessState='" + + accessState + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "customInstructions='" + + customInstructions + + '\'' + + ", " + + "suggestedQuestions='" + + suggestedQuestions + + '\'' + + ", " + + "longText='" + + longText + + '\'' + + ", " + + "basicText='" + + basicText + + '\'' + + ", " + + "basicImage='" + + basicImage + + '\'' + + ", " + + "spreadsheet='" + + spreadsheet + + '\'' + + ", " + + "longTextMulti='" + + longTextMulti + + '\'' + + ", " + + "basicTextMulti='" + + basicTextMulti + + '\'' + + ", " + + "basicImageMulti='" + + basicImageMulti + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String accessState; + + protected final String description; + + protected String customInstructions; + + protected List suggestedQuestions; + + protected AiStudioAgentLongTextToolResponse longText; + + protected AiStudioAgentBasicTextToolResponse basicText; + + protected AiStudioAgentBasicTextToolResponse basicImage; + + protected AiStudioAgentSpreadsheetToolResponse spreadsheet; + + protected AiStudioAgentLongTextToolResponse longTextMulti; + + protected AiStudioAgentBasicTextToolResponse basicTextMulti; + + protected AiStudioAgentBasicTextToolResponse basicImageMulti; + + public Builder(String accessState, String description) { + super(); + this.accessState = accessState; + this.description = description; + this.type = + new EnumWrapper( + AiStudioAgentAskResponseTypeField.AI_AGENT_ASK); + } + + public Builder type(AiStudioAgentAskResponseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder customInstructions(String customInstructions) { + this.customInstructions = customInstructions; + this.markNullableFieldAsSet("custom_instructions"); + return this; + } + + public Builder suggestedQuestions(List suggestedQuestions) { + this.suggestedQuestions = suggestedQuestions; + return this; + } + + public Builder longText(AiStudioAgentLongTextToolResponse longText) { + this.longText = longText; + return this; + } + + public Builder basicText(AiStudioAgentBasicTextToolResponse basicText) { + this.basicText = basicText; + return this; + } + + public Builder basicImage(AiStudioAgentBasicTextToolResponse basicImage) { + this.basicImage = basicImage; + return this; + } + + public Builder spreadsheet(AiStudioAgentSpreadsheetToolResponse spreadsheet) { + this.spreadsheet = spreadsheet; + return this; + } + + public Builder longTextMulti(AiStudioAgentLongTextToolResponse longTextMulti) { + this.longTextMulti = longTextMulti; + return this; + } + + public Builder basicTextMulti(AiStudioAgentBasicTextToolResponse basicTextMulti) { + this.basicTextMulti = basicTextMulti; + return this; + } + + public Builder basicImageMulti(AiStudioAgentBasicTextToolResponse basicImageMulti) { + this.basicImageMulti = basicImageMulti; + return this; + } + + public AiStudioAgentAskResponse build() { + return new AiStudioAgentAskResponse(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentaskresponse/AiStudioAgentAskResponseTypeField.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentaskresponse/AiStudioAgentAskResponseTypeField.java new file mode 100644 index 000000000..188aa9aac --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentaskresponse/AiStudioAgentAskResponseTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.aistudioagentaskresponse; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AiStudioAgentAskResponseTypeField implements Valuable { + AI_AGENT_ASK("ai_agent_ask"); + + private final String value; + + AiStudioAgentAskResponseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AiStudioAgentAskResponseTypeFieldDeserializer + extends JsonDeserializer> { + + public AiStudioAgentAskResponseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AiStudioAgentAskResponseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AiStudioAgentAskResponseTypeFieldSerializer + extends JsonSerializer> { + + public AiStudioAgentAskResponseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentbasicgentool/AiStudioAgentBasicGenTool.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentbasicgentool/AiStudioAgentBasicGenTool.java new file mode 100644 index 000000000..9fdc7c9dc --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentbasicgentool/AiStudioAgentBasicGenTool.java @@ -0,0 +1,182 @@ +package com.box.sdkgen.schemas.aistudioagentbasicgentool; + +import com.box.sdkgen.schemas.aiagentbasicgentool.AiAgentBasicGenTool; +import com.box.sdkgen.schemas.aiagentlongtexttooltextgen.AiAgentLongTextToolTextGenEmbeddingsField; +import com.box.sdkgen.schemas.aillmendpointparams.AiLlmEndpointParams; +import com.box.sdkgen.schemas.aillmendpointparamsaws.AiLlmEndpointParamsAws; +import com.box.sdkgen.schemas.aillmendpointparamsgoogle.AiLlmEndpointParamsGoogle; +import com.box.sdkgen.schemas.aillmendpointparamsibm.AiLlmEndpointParamsIbm; +import com.box.sdkgen.schemas.aillmendpointparamsopenai.AiLlmEndpointParamsOpenAi; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiStudioAgentBasicGenTool extends AiAgentBasicGenTool { + + @JsonProperty("is_custom_instructions_included") + protected Boolean isCustomInstructionsIncluded; + + public AiStudioAgentBasicGenTool() { + super(); + } + + protected AiStudioAgentBasicGenTool(Builder builder) { + super(builder); + this.isCustomInstructionsIncluded = builder.isCustomInstructionsIncluded; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getIsCustomInstructionsIncluded() { + return isCustomInstructionsIncluded; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiStudioAgentBasicGenTool casted = (AiStudioAgentBasicGenTool) o; + return Objects.equals(model, casted.model) + && Objects.equals(numTokensForCompletion, casted.numTokensForCompletion) + && Objects.equals(llmEndpointParams, casted.llmEndpointParams) + && Objects.equals(systemMessage, casted.systemMessage) + && Objects.equals(promptTemplate, casted.promptTemplate) + && Objects.equals(embeddings, casted.embeddings) + && Objects.equals(contentTemplate, casted.contentTemplate) + && Objects.equals(isCustomInstructionsIncluded, casted.isCustomInstructionsIncluded); + } + + @Override + public int hashCode() { + return Objects.hash( + model, + numTokensForCompletion, + llmEndpointParams, + systemMessage, + promptTemplate, + embeddings, + contentTemplate, + isCustomInstructionsIncluded); + } + + @Override + public String toString() { + return "AiStudioAgentBasicGenTool{" + + "model='" + + model + + '\'' + + ", " + + "numTokensForCompletion='" + + numTokensForCompletion + + '\'' + + ", " + + "llmEndpointParams='" + + llmEndpointParams + + '\'' + + ", " + + "systemMessage='" + + systemMessage + + '\'' + + ", " + + "promptTemplate='" + + promptTemplate + + '\'' + + ", " + + "embeddings='" + + embeddings + + '\'' + + ", " + + "contentTemplate='" + + contentTemplate + + '\'' + + ", " + + "isCustomInstructionsIncluded='" + + isCustomInstructionsIncluded + + '\'' + + "}"; + } + + public static class Builder extends AiAgentBasicGenTool.Builder { + + protected Boolean isCustomInstructionsIncluded; + + public Builder isCustomInstructionsIncluded(Boolean isCustomInstructionsIncluded) { + this.isCustomInstructionsIncluded = isCustomInstructionsIncluded; + return this; + } + + @Override + public Builder model(String model) { + this.model = model; + return this; + } + + @Override + public Builder numTokensForCompletion(Long numTokensForCompletion) { + this.numTokensForCompletion = numTokensForCompletion; + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsOpenAi llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsGoogle llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsAws llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsIbm llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParams llmEndpointParams) { + this.llmEndpointParams = llmEndpointParams; + return this; + } + + @Override + public Builder systemMessage(String systemMessage) { + this.systemMessage = systemMessage; + return this; + } + + @Override + public Builder promptTemplate(String promptTemplate) { + this.promptTemplate = promptTemplate; + return this; + } + + @Override + public Builder embeddings(AiAgentLongTextToolTextGenEmbeddingsField embeddings) { + this.embeddings = embeddings; + return this; + } + + @Override + public Builder contentTemplate(String contentTemplate) { + this.contentTemplate = contentTemplate; + return this; + } + + public AiStudioAgentBasicGenTool build() { + return new AiStudioAgentBasicGenTool(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentbasicgentoolresponse/AiStudioAgentBasicGenToolResponse.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentbasicgentoolresponse/AiStudioAgentBasicGenToolResponse.java new file mode 100644 index 000000000..e55714d10 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentbasicgentoolresponse/AiStudioAgentBasicGenToolResponse.java @@ -0,0 +1,193 @@ +package com.box.sdkgen.schemas.aistudioagentbasicgentoolresponse; + +import com.box.sdkgen.schemas.aiagentlongtexttooltextgen.AiAgentLongTextToolTextGenEmbeddingsField; +import com.box.sdkgen.schemas.aillmendpointparams.AiLlmEndpointParams; +import com.box.sdkgen.schemas.aillmendpointparamsaws.AiLlmEndpointParamsAws; +import com.box.sdkgen.schemas.aillmendpointparamsgoogle.AiLlmEndpointParamsGoogle; +import com.box.sdkgen.schemas.aillmendpointparamsibm.AiLlmEndpointParamsIbm; +import com.box.sdkgen.schemas.aillmendpointparamsopenai.AiLlmEndpointParamsOpenAi; +import com.box.sdkgen.schemas.aistudioagentbasicgentool.AiStudioAgentBasicGenTool; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiStudioAgentBasicGenToolResponse extends AiStudioAgentBasicGenTool { + + protected List warnings; + + public AiStudioAgentBasicGenToolResponse() { + super(); + } + + protected AiStudioAgentBasicGenToolResponse(Builder builder) { + super(builder); + this.warnings = builder.warnings; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getWarnings() { + return warnings; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiStudioAgentBasicGenToolResponse casted = (AiStudioAgentBasicGenToolResponse) o; + return Objects.equals(model, casted.model) + && Objects.equals(numTokensForCompletion, casted.numTokensForCompletion) + && Objects.equals(llmEndpointParams, casted.llmEndpointParams) + && Objects.equals(systemMessage, casted.systemMessage) + && Objects.equals(promptTemplate, casted.promptTemplate) + && Objects.equals(embeddings, casted.embeddings) + && Objects.equals(contentTemplate, casted.contentTemplate) + && Objects.equals(isCustomInstructionsIncluded, casted.isCustomInstructionsIncluded) + && Objects.equals(warnings, casted.warnings); + } + + @Override + public int hashCode() { + return Objects.hash( + model, + numTokensForCompletion, + llmEndpointParams, + systemMessage, + promptTemplate, + embeddings, + contentTemplate, + isCustomInstructionsIncluded, + warnings); + } + + @Override + public String toString() { + return "AiStudioAgentBasicGenToolResponse{" + + "model='" + + model + + '\'' + + ", " + + "numTokensForCompletion='" + + numTokensForCompletion + + '\'' + + ", " + + "llmEndpointParams='" + + llmEndpointParams + + '\'' + + ", " + + "systemMessage='" + + systemMessage + + '\'' + + ", " + + "promptTemplate='" + + promptTemplate + + '\'' + + ", " + + "embeddings='" + + embeddings + + '\'' + + ", " + + "contentTemplate='" + + contentTemplate + + '\'' + + ", " + + "isCustomInstructionsIncluded='" + + isCustomInstructionsIncluded + + '\'' + + ", " + + "warnings='" + + warnings + + '\'' + + "}"; + } + + public static class Builder extends AiStudioAgentBasicGenTool.Builder { + + protected List warnings; + + public Builder warnings(List warnings) { + this.warnings = warnings; + return this; + } + + @Override + public Builder model(String model) { + this.model = model; + return this; + } + + @Override + public Builder numTokensForCompletion(Long numTokensForCompletion) { + this.numTokensForCompletion = numTokensForCompletion; + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsOpenAi llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsGoogle llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsAws llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsIbm llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParams llmEndpointParams) { + this.llmEndpointParams = llmEndpointParams; + return this; + } + + @Override + public Builder systemMessage(String systemMessage) { + this.systemMessage = systemMessage; + return this; + } + + @Override + public Builder promptTemplate(String promptTemplate) { + this.promptTemplate = promptTemplate; + return this; + } + + @Override + public Builder embeddings(AiAgentLongTextToolTextGenEmbeddingsField embeddings) { + this.embeddings = embeddings; + return this; + } + + @Override + public Builder contentTemplate(String contentTemplate) { + this.contentTemplate = contentTemplate; + return this; + } + + @Override + public Builder isCustomInstructionsIncluded(Boolean isCustomInstructionsIncluded) { + this.isCustomInstructionsIncluded = isCustomInstructionsIncluded; + return this; + } + + public AiStudioAgentBasicGenToolResponse build() { + return new AiStudioAgentBasicGenToolResponse(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentbasictexttool/AiStudioAgentBasicTextTool.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentbasictexttool/AiStudioAgentBasicTextTool.java new file mode 100644 index 000000000..d6cddc6d8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentbasictexttool/AiStudioAgentBasicTextTool.java @@ -0,0 +1,157 @@ +package com.box.sdkgen.schemas.aistudioagentbasictexttool; + +import com.box.sdkgen.schemas.aiagentbasictexttool.AiAgentBasicTextTool; +import com.box.sdkgen.schemas.aillmendpointparams.AiLlmEndpointParams; +import com.box.sdkgen.schemas.aillmendpointparamsaws.AiLlmEndpointParamsAws; +import com.box.sdkgen.schemas.aillmendpointparamsgoogle.AiLlmEndpointParamsGoogle; +import com.box.sdkgen.schemas.aillmendpointparamsibm.AiLlmEndpointParamsIbm; +import com.box.sdkgen.schemas.aillmendpointparamsopenai.AiLlmEndpointParamsOpenAi; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiStudioAgentBasicTextTool extends AiAgentBasicTextTool { + + @JsonProperty("is_custom_instructions_included") + protected Boolean isCustomInstructionsIncluded; + + public AiStudioAgentBasicTextTool() { + super(); + } + + protected AiStudioAgentBasicTextTool(Builder builder) { + super(builder); + this.isCustomInstructionsIncluded = builder.isCustomInstructionsIncluded; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getIsCustomInstructionsIncluded() { + return isCustomInstructionsIncluded; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiStudioAgentBasicTextTool casted = (AiStudioAgentBasicTextTool) o; + return Objects.equals(model, casted.model) + && Objects.equals(numTokensForCompletion, casted.numTokensForCompletion) + && Objects.equals(llmEndpointParams, casted.llmEndpointParams) + && Objects.equals(systemMessage, casted.systemMessage) + && Objects.equals(promptTemplate, casted.promptTemplate) + && Objects.equals(isCustomInstructionsIncluded, casted.isCustomInstructionsIncluded); + } + + @Override + public int hashCode() { + return Objects.hash( + model, + numTokensForCompletion, + llmEndpointParams, + systemMessage, + promptTemplate, + isCustomInstructionsIncluded); + } + + @Override + public String toString() { + return "AiStudioAgentBasicTextTool{" + + "model='" + + model + + '\'' + + ", " + + "numTokensForCompletion='" + + numTokensForCompletion + + '\'' + + ", " + + "llmEndpointParams='" + + llmEndpointParams + + '\'' + + ", " + + "systemMessage='" + + systemMessage + + '\'' + + ", " + + "promptTemplate='" + + promptTemplate + + '\'' + + ", " + + "isCustomInstructionsIncluded='" + + isCustomInstructionsIncluded + + '\'' + + "}"; + } + + public static class Builder extends AiAgentBasicTextTool.Builder { + + protected Boolean isCustomInstructionsIncluded; + + public Builder isCustomInstructionsIncluded(Boolean isCustomInstructionsIncluded) { + this.isCustomInstructionsIncluded = isCustomInstructionsIncluded; + return this; + } + + @Override + public Builder model(String model) { + this.model = model; + return this; + } + + @Override + public Builder numTokensForCompletion(Long numTokensForCompletion) { + this.numTokensForCompletion = numTokensForCompletion; + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsOpenAi llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsGoogle llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsAws llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsIbm llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParams llmEndpointParams) { + this.llmEndpointParams = llmEndpointParams; + return this; + } + + @Override + public Builder systemMessage(String systemMessage) { + this.systemMessage = systemMessage; + return this; + } + + @Override + public Builder promptTemplate(String promptTemplate) { + this.promptTemplate = promptTemplate; + return this; + } + + public AiStudioAgentBasicTextTool build() { + return new AiStudioAgentBasicTextTool(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentbasictexttoolresponse/AiStudioAgentBasicTextToolResponse.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentbasictexttoolresponse/AiStudioAgentBasicTextToolResponse.java new file mode 100644 index 000000000..b7d7644db --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentbasictexttoolresponse/AiStudioAgentBasicTextToolResponse.java @@ -0,0 +1,168 @@ +package com.box.sdkgen.schemas.aistudioagentbasictexttoolresponse; + +import com.box.sdkgen.schemas.aillmendpointparams.AiLlmEndpointParams; +import com.box.sdkgen.schemas.aillmendpointparamsaws.AiLlmEndpointParamsAws; +import com.box.sdkgen.schemas.aillmendpointparamsgoogle.AiLlmEndpointParamsGoogle; +import com.box.sdkgen.schemas.aillmendpointparamsibm.AiLlmEndpointParamsIbm; +import com.box.sdkgen.schemas.aillmendpointparamsopenai.AiLlmEndpointParamsOpenAi; +import com.box.sdkgen.schemas.aistudioagentbasictexttool.AiStudioAgentBasicTextTool; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiStudioAgentBasicTextToolResponse extends AiStudioAgentBasicTextTool { + + protected List warnings; + + public AiStudioAgentBasicTextToolResponse() { + super(); + } + + protected AiStudioAgentBasicTextToolResponse(Builder builder) { + super(builder); + this.warnings = builder.warnings; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getWarnings() { + return warnings; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiStudioAgentBasicTextToolResponse casted = (AiStudioAgentBasicTextToolResponse) o; + return Objects.equals(model, casted.model) + && Objects.equals(numTokensForCompletion, casted.numTokensForCompletion) + && Objects.equals(llmEndpointParams, casted.llmEndpointParams) + && Objects.equals(systemMessage, casted.systemMessage) + && Objects.equals(promptTemplate, casted.promptTemplate) + && Objects.equals(isCustomInstructionsIncluded, casted.isCustomInstructionsIncluded) + && Objects.equals(warnings, casted.warnings); + } + + @Override + public int hashCode() { + return Objects.hash( + model, + numTokensForCompletion, + llmEndpointParams, + systemMessage, + promptTemplate, + isCustomInstructionsIncluded, + warnings); + } + + @Override + public String toString() { + return "AiStudioAgentBasicTextToolResponse{" + + "model='" + + model + + '\'' + + ", " + + "numTokensForCompletion='" + + numTokensForCompletion + + '\'' + + ", " + + "llmEndpointParams='" + + llmEndpointParams + + '\'' + + ", " + + "systemMessage='" + + systemMessage + + '\'' + + ", " + + "promptTemplate='" + + promptTemplate + + '\'' + + ", " + + "isCustomInstructionsIncluded='" + + isCustomInstructionsIncluded + + '\'' + + ", " + + "warnings='" + + warnings + + '\'' + + "}"; + } + + public static class Builder extends AiStudioAgentBasicTextTool.Builder { + + protected List warnings; + + public Builder warnings(List warnings) { + this.warnings = warnings; + return this; + } + + @Override + public Builder model(String model) { + this.model = model; + return this; + } + + @Override + public Builder numTokensForCompletion(Long numTokensForCompletion) { + this.numTokensForCompletion = numTokensForCompletion; + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsOpenAi llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsGoogle llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsAws llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsIbm llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParams llmEndpointParams) { + this.llmEndpointParams = llmEndpointParams; + return this; + } + + @Override + public Builder systemMessage(String systemMessage) { + this.systemMessage = systemMessage; + return this; + } + + @Override + public Builder promptTemplate(String promptTemplate) { + this.promptTemplate = promptTemplate; + return this; + } + + @Override + public Builder isCustomInstructionsIncluded(Boolean isCustomInstructionsIncluded) { + this.isCustomInstructionsIncluded = isCustomInstructionsIncluded; + return this; + } + + public AiStudioAgentBasicTextToolResponse build() { + return new AiStudioAgentBasicTextToolResponse(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentextract/AiStudioAgentExtract.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentextract/AiStudioAgentExtract.java new file mode 100644 index 000000000..6c0203abf --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentextract/AiStudioAgentExtract.java @@ -0,0 +1,210 @@ +package com.box.sdkgen.schemas.aistudioagentextract; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.aistudioagentbasictexttool.AiStudioAgentBasicTextTool; +import com.box.sdkgen.schemas.aistudioagentlongtexttool.AiStudioAgentLongTextTool; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiStudioAgentExtract extends SerializableObject { + + @JsonDeserialize( + using = AiStudioAgentExtractTypeField.AiStudioAgentExtractTypeFieldDeserializer.class) + @JsonSerialize( + using = AiStudioAgentExtractTypeField.AiStudioAgentExtractTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("access_state") + protected final String accessState; + + protected final String description; + + @JsonProperty("custom_instructions") + @Nullable + protected String customInstructions; + + @JsonProperty("long_text") + protected AiStudioAgentLongTextTool longText; + + @JsonProperty("basic_text") + protected AiStudioAgentBasicTextTool basicText; + + @JsonProperty("basic_image") + protected AiStudioAgentBasicTextTool basicImage; + + public AiStudioAgentExtract( + @JsonProperty("access_state") String accessState, + @JsonProperty("description") String description) { + super(); + this.accessState = accessState; + this.description = description; + this.type = + new EnumWrapper( + AiStudioAgentExtractTypeField.AI_AGENT_EXTRACT); + } + + protected AiStudioAgentExtract(Builder builder) { + super(); + this.type = builder.type; + this.accessState = builder.accessState; + this.description = builder.description; + this.customInstructions = builder.customInstructions; + this.longText = builder.longText; + this.basicText = builder.basicText; + this.basicImage = builder.basicImage; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getAccessState() { + return accessState; + } + + public String getDescription() { + return description; + } + + public String getCustomInstructions() { + return customInstructions; + } + + public AiStudioAgentLongTextTool getLongText() { + return longText; + } + + public AiStudioAgentBasicTextTool getBasicText() { + return basicText; + } + + public AiStudioAgentBasicTextTool getBasicImage() { + return basicImage; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiStudioAgentExtract casted = (AiStudioAgentExtract) o; + return Objects.equals(type, casted.type) + && Objects.equals(accessState, casted.accessState) + && Objects.equals(description, casted.description) + && Objects.equals(customInstructions, casted.customInstructions) + && Objects.equals(longText, casted.longText) + && Objects.equals(basicText, casted.basicText) + && Objects.equals(basicImage, casted.basicImage); + } + + @Override + public int hashCode() { + return Objects.hash( + type, accessState, description, customInstructions, longText, basicText, basicImage); + } + + @Override + public String toString() { + return "AiStudioAgentExtract{" + + "type='" + + type + + '\'' + + ", " + + "accessState='" + + accessState + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "customInstructions='" + + customInstructions + + '\'' + + ", " + + "longText='" + + longText + + '\'' + + ", " + + "basicText='" + + basicText + + '\'' + + ", " + + "basicImage='" + + basicImage + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String accessState; + + protected final String description; + + protected String customInstructions; + + protected AiStudioAgentLongTextTool longText; + + protected AiStudioAgentBasicTextTool basicText; + + protected AiStudioAgentBasicTextTool basicImage; + + public Builder(String accessState, String description) { + super(); + this.accessState = accessState; + this.description = description; + this.type = + new EnumWrapper( + AiStudioAgentExtractTypeField.AI_AGENT_EXTRACT); + } + + public Builder type(AiStudioAgentExtractTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder customInstructions(String customInstructions) { + this.customInstructions = customInstructions; + this.markNullableFieldAsSet("custom_instructions"); + return this; + } + + public Builder longText(AiStudioAgentLongTextTool longText) { + this.longText = longText; + return this; + } + + public Builder basicText(AiStudioAgentBasicTextTool basicText) { + this.basicText = basicText; + return this; + } + + public Builder basicImage(AiStudioAgentBasicTextTool basicImage) { + this.basicImage = basicImage; + return this; + } + + public AiStudioAgentExtract build() { + return new AiStudioAgentExtract(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentextract/AiStudioAgentExtractTypeField.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentextract/AiStudioAgentExtractTypeField.java new file mode 100644 index 000000000..58ea0c31d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentextract/AiStudioAgentExtractTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.aistudioagentextract; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AiStudioAgentExtractTypeField implements Valuable { + AI_AGENT_EXTRACT("ai_agent_extract"); + + private final String value; + + AiStudioAgentExtractTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AiStudioAgentExtractTypeFieldDeserializer + extends JsonDeserializer> { + + public AiStudioAgentExtractTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AiStudioAgentExtractTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AiStudioAgentExtractTypeFieldSerializer + extends JsonSerializer> { + + public AiStudioAgentExtractTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentextractresponse/AiStudioAgentExtractResponse.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentextractresponse/AiStudioAgentExtractResponse.java new file mode 100644 index 000000000..0067dd666 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentextractresponse/AiStudioAgentExtractResponse.java @@ -0,0 +1,214 @@ +package com.box.sdkgen.schemas.aistudioagentextractresponse; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.aistudioagentbasictexttoolresponse.AiStudioAgentBasicTextToolResponse; +import com.box.sdkgen.schemas.aistudioagentlongtexttoolresponse.AiStudioAgentLongTextToolResponse; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiStudioAgentExtractResponse extends SerializableObject { + + @JsonDeserialize( + using = + AiStudioAgentExtractResponseTypeField.AiStudioAgentExtractResponseTypeFieldDeserializer + .class) + @JsonSerialize( + using = + AiStudioAgentExtractResponseTypeField.AiStudioAgentExtractResponseTypeFieldSerializer + .class) + protected EnumWrapper type; + + @JsonProperty("access_state") + protected final String accessState; + + protected final String description; + + @JsonProperty("custom_instructions") + @Nullable + protected String customInstructions; + + @JsonProperty("long_text") + protected AiStudioAgentLongTextToolResponse longText; + + @JsonProperty("basic_text") + protected AiStudioAgentBasicTextToolResponse basicText; + + @JsonProperty("basic_image") + protected AiStudioAgentBasicTextToolResponse basicImage; + + public AiStudioAgentExtractResponse( + @JsonProperty("access_state") String accessState, + @JsonProperty("description") String description) { + super(); + this.accessState = accessState; + this.description = description; + this.type = + new EnumWrapper( + AiStudioAgentExtractResponseTypeField.AI_AGENT_EXTRACT); + } + + protected AiStudioAgentExtractResponse(Builder builder) { + super(); + this.type = builder.type; + this.accessState = builder.accessState; + this.description = builder.description; + this.customInstructions = builder.customInstructions; + this.longText = builder.longText; + this.basicText = builder.basicText; + this.basicImage = builder.basicImage; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getAccessState() { + return accessState; + } + + public String getDescription() { + return description; + } + + public String getCustomInstructions() { + return customInstructions; + } + + public AiStudioAgentLongTextToolResponse getLongText() { + return longText; + } + + public AiStudioAgentBasicTextToolResponse getBasicText() { + return basicText; + } + + public AiStudioAgentBasicTextToolResponse getBasicImage() { + return basicImage; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiStudioAgentExtractResponse casted = (AiStudioAgentExtractResponse) o; + return Objects.equals(type, casted.type) + && Objects.equals(accessState, casted.accessState) + && Objects.equals(description, casted.description) + && Objects.equals(customInstructions, casted.customInstructions) + && Objects.equals(longText, casted.longText) + && Objects.equals(basicText, casted.basicText) + && Objects.equals(basicImage, casted.basicImage); + } + + @Override + public int hashCode() { + return Objects.hash( + type, accessState, description, customInstructions, longText, basicText, basicImage); + } + + @Override + public String toString() { + return "AiStudioAgentExtractResponse{" + + "type='" + + type + + '\'' + + ", " + + "accessState='" + + accessState + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "customInstructions='" + + customInstructions + + '\'' + + ", " + + "longText='" + + longText + + '\'' + + ", " + + "basicText='" + + basicText + + '\'' + + ", " + + "basicImage='" + + basicImage + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String accessState; + + protected final String description; + + protected String customInstructions; + + protected AiStudioAgentLongTextToolResponse longText; + + protected AiStudioAgentBasicTextToolResponse basicText; + + protected AiStudioAgentBasicTextToolResponse basicImage; + + public Builder(String accessState, String description) { + super(); + this.accessState = accessState; + this.description = description; + this.type = + new EnumWrapper( + AiStudioAgentExtractResponseTypeField.AI_AGENT_EXTRACT); + } + + public Builder type(AiStudioAgentExtractResponseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder customInstructions(String customInstructions) { + this.customInstructions = customInstructions; + this.markNullableFieldAsSet("custom_instructions"); + return this; + } + + public Builder longText(AiStudioAgentLongTextToolResponse longText) { + this.longText = longText; + return this; + } + + public Builder basicText(AiStudioAgentBasicTextToolResponse basicText) { + this.basicText = basicText; + return this; + } + + public Builder basicImage(AiStudioAgentBasicTextToolResponse basicImage) { + this.basicImage = basicImage; + return this; + } + + public AiStudioAgentExtractResponse build() { + return new AiStudioAgentExtractResponse(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentextractresponse/AiStudioAgentExtractResponseTypeField.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentextractresponse/AiStudioAgentExtractResponseTypeField.java new file mode 100644 index 000000000..d992b5939 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentextractresponse/AiStudioAgentExtractResponseTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.aistudioagentextractresponse; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AiStudioAgentExtractResponseTypeField implements Valuable { + AI_AGENT_EXTRACT("ai_agent_extract"); + + private final String value; + + AiStudioAgentExtractResponseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AiStudioAgentExtractResponseTypeFieldDeserializer + extends JsonDeserializer> { + + public AiStudioAgentExtractResponseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AiStudioAgentExtractResponseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AiStudioAgentExtractResponseTypeFieldSerializer + extends JsonSerializer> { + + public AiStudioAgentExtractResponseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentlongtexttool/AiStudioAgentLongTextTool.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentlongtexttool/AiStudioAgentLongTextTool.java new file mode 100644 index 000000000..c9d2b5e79 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentlongtexttool/AiStudioAgentLongTextTool.java @@ -0,0 +1,170 @@ +package com.box.sdkgen.schemas.aistudioagentlongtexttool; + +import com.box.sdkgen.schemas.aiagentlongtexttool.AiAgentLongTextTool; +import com.box.sdkgen.schemas.aiagentlongtexttool.AiAgentLongTextToolEmbeddingsField; +import com.box.sdkgen.schemas.aillmendpointparams.AiLlmEndpointParams; +import com.box.sdkgen.schemas.aillmendpointparamsaws.AiLlmEndpointParamsAws; +import com.box.sdkgen.schemas.aillmendpointparamsgoogle.AiLlmEndpointParamsGoogle; +import com.box.sdkgen.schemas.aillmendpointparamsibm.AiLlmEndpointParamsIbm; +import com.box.sdkgen.schemas.aillmendpointparamsopenai.AiLlmEndpointParamsOpenAi; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiStudioAgentLongTextTool extends AiAgentLongTextTool { + + @JsonProperty("is_custom_instructions_included") + protected Boolean isCustomInstructionsIncluded; + + public AiStudioAgentLongTextTool() { + super(); + } + + protected AiStudioAgentLongTextTool(Builder builder) { + super(builder); + this.isCustomInstructionsIncluded = builder.isCustomInstructionsIncluded; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getIsCustomInstructionsIncluded() { + return isCustomInstructionsIncluded; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiStudioAgentLongTextTool casted = (AiStudioAgentLongTextTool) o; + return Objects.equals(model, casted.model) + && Objects.equals(numTokensForCompletion, casted.numTokensForCompletion) + && Objects.equals(llmEndpointParams, casted.llmEndpointParams) + && Objects.equals(systemMessage, casted.systemMessage) + && Objects.equals(promptTemplate, casted.promptTemplate) + && Objects.equals(embeddings, casted.embeddings) + && Objects.equals(isCustomInstructionsIncluded, casted.isCustomInstructionsIncluded); + } + + @Override + public int hashCode() { + return Objects.hash( + model, + numTokensForCompletion, + llmEndpointParams, + systemMessage, + promptTemplate, + embeddings, + isCustomInstructionsIncluded); + } + + @Override + public String toString() { + return "AiStudioAgentLongTextTool{" + + "model='" + + model + + '\'' + + ", " + + "numTokensForCompletion='" + + numTokensForCompletion + + '\'' + + ", " + + "llmEndpointParams='" + + llmEndpointParams + + '\'' + + ", " + + "systemMessage='" + + systemMessage + + '\'' + + ", " + + "promptTemplate='" + + promptTemplate + + '\'' + + ", " + + "embeddings='" + + embeddings + + '\'' + + ", " + + "isCustomInstructionsIncluded='" + + isCustomInstructionsIncluded + + '\'' + + "}"; + } + + public static class Builder extends AiAgentLongTextTool.Builder { + + protected Boolean isCustomInstructionsIncluded; + + public Builder isCustomInstructionsIncluded(Boolean isCustomInstructionsIncluded) { + this.isCustomInstructionsIncluded = isCustomInstructionsIncluded; + return this; + } + + @Override + public Builder model(String model) { + this.model = model; + return this; + } + + @Override + public Builder numTokensForCompletion(Long numTokensForCompletion) { + this.numTokensForCompletion = numTokensForCompletion; + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsOpenAi llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsGoogle llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsAws llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsIbm llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParams llmEndpointParams) { + this.llmEndpointParams = llmEndpointParams; + return this; + } + + @Override + public Builder systemMessage(String systemMessage) { + this.systemMessage = systemMessage; + return this; + } + + @Override + public Builder promptTemplate(String promptTemplate) { + this.promptTemplate = promptTemplate; + return this; + } + + @Override + public Builder embeddings(AiAgentLongTextToolEmbeddingsField embeddings) { + this.embeddings = embeddings; + return this; + } + + public AiStudioAgentLongTextTool build() { + return new AiStudioAgentLongTextTool(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentlongtexttoolresponse/AiStudioAgentLongTextToolResponse.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentlongtexttoolresponse/AiStudioAgentLongTextToolResponse.java new file mode 100644 index 000000000..fedd0fb8d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentlongtexttoolresponse/AiStudioAgentLongTextToolResponse.java @@ -0,0 +1,181 @@ +package com.box.sdkgen.schemas.aistudioagentlongtexttoolresponse; + +import com.box.sdkgen.schemas.aiagentlongtexttool.AiAgentLongTextToolEmbeddingsField; +import com.box.sdkgen.schemas.aillmendpointparams.AiLlmEndpointParams; +import com.box.sdkgen.schemas.aillmendpointparamsaws.AiLlmEndpointParamsAws; +import com.box.sdkgen.schemas.aillmendpointparamsgoogle.AiLlmEndpointParamsGoogle; +import com.box.sdkgen.schemas.aillmendpointparamsibm.AiLlmEndpointParamsIbm; +import com.box.sdkgen.schemas.aillmendpointparamsopenai.AiLlmEndpointParamsOpenAi; +import com.box.sdkgen.schemas.aistudioagentlongtexttool.AiStudioAgentLongTextTool; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiStudioAgentLongTextToolResponse extends AiStudioAgentLongTextTool { + + protected List warnings; + + public AiStudioAgentLongTextToolResponse() { + super(); + } + + protected AiStudioAgentLongTextToolResponse(Builder builder) { + super(builder); + this.warnings = builder.warnings; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getWarnings() { + return warnings; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiStudioAgentLongTextToolResponse casted = (AiStudioAgentLongTextToolResponse) o; + return Objects.equals(model, casted.model) + && Objects.equals(numTokensForCompletion, casted.numTokensForCompletion) + && Objects.equals(llmEndpointParams, casted.llmEndpointParams) + && Objects.equals(systemMessage, casted.systemMessage) + && Objects.equals(promptTemplate, casted.promptTemplate) + && Objects.equals(embeddings, casted.embeddings) + && Objects.equals(isCustomInstructionsIncluded, casted.isCustomInstructionsIncluded) + && Objects.equals(warnings, casted.warnings); + } + + @Override + public int hashCode() { + return Objects.hash( + model, + numTokensForCompletion, + llmEndpointParams, + systemMessage, + promptTemplate, + embeddings, + isCustomInstructionsIncluded, + warnings); + } + + @Override + public String toString() { + return "AiStudioAgentLongTextToolResponse{" + + "model='" + + model + + '\'' + + ", " + + "numTokensForCompletion='" + + numTokensForCompletion + + '\'' + + ", " + + "llmEndpointParams='" + + llmEndpointParams + + '\'' + + ", " + + "systemMessage='" + + systemMessage + + '\'' + + ", " + + "promptTemplate='" + + promptTemplate + + '\'' + + ", " + + "embeddings='" + + embeddings + + '\'' + + ", " + + "isCustomInstructionsIncluded='" + + isCustomInstructionsIncluded + + '\'' + + ", " + + "warnings='" + + warnings + + '\'' + + "}"; + } + + public static class Builder extends AiStudioAgentLongTextTool.Builder { + + protected List warnings; + + public Builder warnings(List warnings) { + this.warnings = warnings; + return this; + } + + @Override + public Builder model(String model) { + this.model = model; + return this; + } + + @Override + public Builder numTokensForCompletion(Long numTokensForCompletion) { + this.numTokensForCompletion = numTokensForCompletion; + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsOpenAi llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsGoogle llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsAws llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsIbm llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParams llmEndpointParams) { + this.llmEndpointParams = llmEndpointParams; + return this; + } + + @Override + public Builder systemMessage(String systemMessage) { + this.systemMessage = systemMessage; + return this; + } + + @Override + public Builder promptTemplate(String promptTemplate) { + this.promptTemplate = promptTemplate; + return this; + } + + @Override + public Builder embeddings(AiAgentLongTextToolEmbeddingsField embeddings) { + this.embeddings = embeddings; + return this; + } + + @Override + public Builder isCustomInstructionsIncluded(Boolean isCustomInstructionsIncluded) { + this.isCustomInstructionsIncluded = isCustomInstructionsIncluded; + return this; + } + + public AiStudioAgentLongTextToolResponse build() { + return new AiStudioAgentLongTextToolResponse(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentspreadsheettool/AiStudioAgentSpreadsheetTool.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentspreadsheettool/AiStudioAgentSpreadsheetTool.java new file mode 100644 index 000000000..0192c6790 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentspreadsheettool/AiStudioAgentSpreadsheetTool.java @@ -0,0 +1,108 @@ +package com.box.sdkgen.schemas.aistudioagentspreadsheettool; + +import com.box.sdkgen.schemas.aiagentspreadsheettool.AiAgentSpreadsheetTool; +import com.box.sdkgen.schemas.aillmendpointparams.AiLlmEndpointParams; +import com.box.sdkgen.schemas.aillmendpointparamsaws.AiLlmEndpointParamsAws; +import com.box.sdkgen.schemas.aillmendpointparamsgoogle.AiLlmEndpointParamsGoogle; +import com.box.sdkgen.schemas.aillmendpointparamsibm.AiLlmEndpointParamsIbm; +import com.box.sdkgen.schemas.aillmendpointparamsopenai.AiLlmEndpointParamsOpenAi; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiStudioAgentSpreadsheetTool extends AiAgentSpreadsheetTool { + + public AiStudioAgentSpreadsheetTool() { + super(); + } + + protected AiStudioAgentSpreadsheetTool(Builder builder) { + super(builder); + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiStudioAgentSpreadsheetTool casted = (AiStudioAgentSpreadsheetTool) o; + return Objects.equals(model, casted.model) + && Objects.equals(numTokensForCompletion, casted.numTokensForCompletion) + && Objects.equals(llmEndpointParams, casted.llmEndpointParams); + } + + @Override + public int hashCode() { + return Objects.hash(model, numTokensForCompletion, llmEndpointParams); + } + + @Override + public String toString() { + return "AiStudioAgentSpreadsheetTool{" + + "model='" + + model + + '\'' + + ", " + + "numTokensForCompletion='" + + numTokensForCompletion + + '\'' + + ", " + + "llmEndpointParams='" + + llmEndpointParams + + '\'' + + "}"; + } + + public static class Builder extends AiAgentSpreadsheetTool.Builder { + + @Override + public Builder model(String model) { + this.model = model; + return this; + } + + @Override + public Builder numTokensForCompletion(Long numTokensForCompletion) { + this.numTokensForCompletion = numTokensForCompletion; + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsOpenAi llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsGoogle llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsAws llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsIbm llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParams llmEndpointParams) { + this.llmEndpointParams = llmEndpointParams; + return this; + } + + public AiStudioAgentSpreadsheetTool build() { + return new AiStudioAgentSpreadsheetTool(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentspreadsheettoolresponse/AiStudioAgentSpreadsheetToolResponse.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentspreadsheettoolresponse/AiStudioAgentSpreadsheetToolResponse.java new file mode 100644 index 000000000..0a40ea916 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentspreadsheettoolresponse/AiStudioAgentSpreadsheetToolResponse.java @@ -0,0 +1,128 @@ +package com.box.sdkgen.schemas.aistudioagentspreadsheettoolresponse; + +import com.box.sdkgen.schemas.aillmendpointparams.AiLlmEndpointParams; +import com.box.sdkgen.schemas.aillmendpointparamsaws.AiLlmEndpointParamsAws; +import com.box.sdkgen.schemas.aillmendpointparamsgoogle.AiLlmEndpointParamsGoogle; +import com.box.sdkgen.schemas.aillmendpointparamsibm.AiLlmEndpointParamsIbm; +import com.box.sdkgen.schemas.aillmendpointparamsopenai.AiLlmEndpointParamsOpenAi; +import com.box.sdkgen.schemas.aistudioagentspreadsheettool.AiStudioAgentSpreadsheetTool; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiStudioAgentSpreadsheetToolResponse extends AiStudioAgentSpreadsheetTool { + + protected List warnings; + + public AiStudioAgentSpreadsheetToolResponse() { + super(); + } + + protected AiStudioAgentSpreadsheetToolResponse(Builder builder) { + super(builder); + this.warnings = builder.warnings; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getWarnings() { + return warnings; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiStudioAgentSpreadsheetToolResponse casted = (AiStudioAgentSpreadsheetToolResponse) o; + return Objects.equals(model, casted.model) + && Objects.equals(numTokensForCompletion, casted.numTokensForCompletion) + && Objects.equals(llmEndpointParams, casted.llmEndpointParams) + && Objects.equals(warnings, casted.warnings); + } + + @Override + public int hashCode() { + return Objects.hash(model, numTokensForCompletion, llmEndpointParams, warnings); + } + + @Override + public String toString() { + return "AiStudioAgentSpreadsheetToolResponse{" + + "model='" + + model + + '\'' + + ", " + + "numTokensForCompletion='" + + numTokensForCompletion + + '\'' + + ", " + + "llmEndpointParams='" + + llmEndpointParams + + '\'' + + ", " + + "warnings='" + + warnings + + '\'' + + "}"; + } + + public static class Builder extends AiStudioAgentSpreadsheetTool.Builder { + + protected List warnings; + + public Builder warnings(List warnings) { + this.warnings = warnings; + return this; + } + + @Override + public Builder model(String model) { + this.model = model; + return this; + } + + @Override + public Builder numTokensForCompletion(Long numTokensForCompletion) { + this.numTokensForCompletion = numTokensForCompletion; + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsOpenAi llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsGoogle llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsAws llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParamsIbm llmEndpointParams) { + this.llmEndpointParams = new AiLlmEndpointParams(llmEndpointParams); + return this; + } + + @Override + public Builder llmEndpointParams(AiLlmEndpointParams llmEndpointParams) { + this.llmEndpointParams = llmEndpointParams; + return this; + } + + public AiStudioAgentSpreadsheetToolResponse build() { + return new AiStudioAgentSpreadsheetToolResponse(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgen/AiStudioAgentTextGen.java b/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgen/AiStudioAgentTextGen.java new file mode 100644 index 000000000..7f2088563 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgen/AiStudioAgentTextGen.java @@ -0,0 +1,190 @@ +package com.box.sdkgen.schemas.aistudioagenttextgen; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.aistudioagentbasicgentool.AiStudioAgentBasicGenTool; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiStudioAgentTextGen extends SerializableObject { + + @JsonDeserialize( + using = AiStudioAgentTextGenTypeField.AiStudioAgentTextGenTypeFieldDeserializer.class) + @JsonSerialize( + using = AiStudioAgentTextGenTypeField.AiStudioAgentTextGenTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("access_state") + protected final String accessState; + + protected final String description; + + @JsonProperty("custom_instructions") + @Nullable + protected String customInstructions; + + @JsonProperty("suggested_questions") + protected List suggestedQuestions; + + @JsonProperty("basic_gen") + protected AiStudioAgentBasicGenTool basicGen; + + public AiStudioAgentTextGen( + @JsonProperty("access_state") String accessState, + @JsonProperty("description") String description) { + super(); + this.accessState = accessState; + this.description = description; + this.type = + new EnumWrapper( + AiStudioAgentTextGenTypeField.AI_AGENT_TEXT_GEN); + } + + protected AiStudioAgentTextGen(Builder builder) { + super(); + this.type = builder.type; + this.accessState = builder.accessState; + this.description = builder.description; + this.customInstructions = builder.customInstructions; + this.suggestedQuestions = builder.suggestedQuestions; + this.basicGen = builder.basicGen; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getAccessState() { + return accessState; + } + + public String getDescription() { + return description; + } + + public String getCustomInstructions() { + return customInstructions; + } + + public List getSuggestedQuestions() { + return suggestedQuestions; + } + + public AiStudioAgentBasicGenTool getBasicGen() { + return basicGen; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiStudioAgentTextGen casted = (AiStudioAgentTextGen) o; + return Objects.equals(type, casted.type) + && Objects.equals(accessState, casted.accessState) + && Objects.equals(description, casted.description) + && Objects.equals(customInstructions, casted.customInstructions) + && Objects.equals(suggestedQuestions, casted.suggestedQuestions) + && Objects.equals(basicGen, casted.basicGen); + } + + @Override + public int hashCode() { + return Objects.hash( + type, accessState, description, customInstructions, suggestedQuestions, basicGen); + } + + @Override + public String toString() { + return "AiStudioAgentTextGen{" + + "type='" + + type + + '\'' + + ", " + + "accessState='" + + accessState + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "customInstructions='" + + customInstructions + + '\'' + + ", " + + "suggestedQuestions='" + + suggestedQuestions + + '\'' + + ", " + + "basicGen='" + + basicGen + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String accessState; + + protected final String description; + + protected String customInstructions; + + protected List suggestedQuestions; + + protected AiStudioAgentBasicGenTool basicGen; + + public Builder(String accessState, String description) { + super(); + this.accessState = accessState; + this.description = description; + this.type = + new EnumWrapper( + AiStudioAgentTextGenTypeField.AI_AGENT_TEXT_GEN); + } + + public Builder type(AiStudioAgentTextGenTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder customInstructions(String customInstructions) { + this.customInstructions = customInstructions; + this.markNullableFieldAsSet("custom_instructions"); + return this; + } + + public Builder suggestedQuestions(List suggestedQuestions) { + this.suggestedQuestions = suggestedQuestions; + return this; + } + + public Builder basicGen(AiStudioAgentBasicGenTool basicGen) { + this.basicGen = basicGen; + return this; + } + + public AiStudioAgentTextGen build() { + return new AiStudioAgentTextGen(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgen/AiStudioAgentTextGenTypeField.java b/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgen/AiStudioAgentTextGenTypeField.java new file mode 100644 index 000000000..e5c3ced67 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgen/AiStudioAgentTextGenTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.aistudioagenttextgen; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AiStudioAgentTextGenTypeField implements Valuable { + AI_AGENT_TEXT_GEN("ai_agent_text_gen"); + + private final String value; + + AiStudioAgentTextGenTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AiStudioAgentTextGenTypeFieldDeserializer + extends JsonDeserializer> { + + public AiStudioAgentTextGenTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AiStudioAgentTextGenTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AiStudioAgentTextGenTypeFieldSerializer + extends JsonSerializer> { + + public AiStudioAgentTextGenTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgenresponse/AiStudioAgentTextGenResponse.java b/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgenresponse/AiStudioAgentTextGenResponse.java new file mode 100644 index 000000000..44360e076 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgenresponse/AiStudioAgentTextGenResponse.java @@ -0,0 +1,194 @@ +package com.box.sdkgen.schemas.aistudioagenttextgenresponse; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.aistudioagentbasicgentoolresponse.AiStudioAgentBasicGenToolResponse; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiStudioAgentTextGenResponse extends SerializableObject { + + @JsonDeserialize( + using = + AiStudioAgentTextGenResponseTypeField.AiStudioAgentTextGenResponseTypeFieldDeserializer + .class) + @JsonSerialize( + using = + AiStudioAgentTextGenResponseTypeField.AiStudioAgentTextGenResponseTypeFieldSerializer + .class) + protected EnumWrapper type; + + @JsonProperty("access_state") + protected final String accessState; + + protected final String description; + + @JsonProperty("custom_instructions") + @Nullable + protected String customInstructions; + + @JsonProperty("suggested_questions") + protected List suggestedQuestions; + + @JsonProperty("basic_gen") + protected AiStudioAgentBasicGenToolResponse basicGen; + + public AiStudioAgentTextGenResponse( + @JsonProperty("access_state") String accessState, + @JsonProperty("description") String description) { + super(); + this.accessState = accessState; + this.description = description; + this.type = + new EnumWrapper( + AiStudioAgentTextGenResponseTypeField.AI_AGENT_TEXT_GEN); + } + + protected AiStudioAgentTextGenResponse(Builder builder) { + super(); + this.type = builder.type; + this.accessState = builder.accessState; + this.description = builder.description; + this.customInstructions = builder.customInstructions; + this.suggestedQuestions = builder.suggestedQuestions; + this.basicGen = builder.basicGen; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getAccessState() { + return accessState; + } + + public String getDescription() { + return description; + } + + public String getCustomInstructions() { + return customInstructions; + } + + public List getSuggestedQuestions() { + return suggestedQuestions; + } + + public AiStudioAgentBasicGenToolResponse getBasicGen() { + return basicGen; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiStudioAgentTextGenResponse casted = (AiStudioAgentTextGenResponse) o; + return Objects.equals(type, casted.type) + && Objects.equals(accessState, casted.accessState) + && Objects.equals(description, casted.description) + && Objects.equals(customInstructions, casted.customInstructions) + && Objects.equals(suggestedQuestions, casted.suggestedQuestions) + && Objects.equals(basicGen, casted.basicGen); + } + + @Override + public int hashCode() { + return Objects.hash( + type, accessState, description, customInstructions, suggestedQuestions, basicGen); + } + + @Override + public String toString() { + return "AiStudioAgentTextGenResponse{" + + "type='" + + type + + '\'' + + ", " + + "accessState='" + + accessState + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "customInstructions='" + + customInstructions + + '\'' + + ", " + + "suggestedQuestions='" + + suggestedQuestions + + '\'' + + ", " + + "basicGen='" + + basicGen + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String accessState; + + protected final String description; + + protected String customInstructions; + + protected List suggestedQuestions; + + protected AiStudioAgentBasicGenToolResponse basicGen; + + public Builder(String accessState, String description) { + super(); + this.accessState = accessState; + this.description = description; + this.type = + new EnumWrapper( + AiStudioAgentTextGenResponseTypeField.AI_AGENT_TEXT_GEN); + } + + public Builder type(AiStudioAgentTextGenResponseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder customInstructions(String customInstructions) { + this.customInstructions = customInstructions; + this.markNullableFieldAsSet("custom_instructions"); + return this; + } + + public Builder suggestedQuestions(List suggestedQuestions) { + this.suggestedQuestions = suggestedQuestions; + return this; + } + + public Builder basicGen(AiStudioAgentBasicGenToolResponse basicGen) { + this.basicGen = basicGen; + return this; + } + + public AiStudioAgentTextGenResponse build() { + return new AiStudioAgentTextGenResponse(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgenresponse/AiStudioAgentTextGenResponseTypeField.java b/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgenresponse/AiStudioAgentTextGenResponseTypeField.java new file mode 100644 index 000000000..2e8bace85 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgenresponse/AiStudioAgentTextGenResponseTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.aistudioagenttextgenresponse; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AiStudioAgentTextGenResponseTypeField implements Valuable { + AI_AGENT_TEXT_GEN("ai_agent_text_gen"); + + private final String value; + + AiStudioAgentTextGenResponseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AiStudioAgentTextGenResponseTypeFieldDeserializer + extends JsonDeserializer> { + + public AiStudioAgentTextGenResponseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AiStudioAgentTextGenResponseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AiStudioAgentTextGenResponseTypeFieldSerializer + extends JsonSerializer> { + + public AiStudioAgentTextGenResponseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGen.java b/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGen.java new file mode 100644 index 000000000..0e54e202e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGen.java @@ -0,0 +1,141 @@ +package com.box.sdkgen.schemas.aitextgen; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.aiagentreference.AiAgentReference; +import com.box.sdkgen.schemas.aiagentreferenceoraiagenttextgen.AiAgentReferenceOrAiAgentTextGen; +import com.box.sdkgen.schemas.aiagenttextgen.AiAgentTextGen; +import com.box.sdkgen.schemas.aidialoguehistory.AiDialogueHistory; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiTextGen extends SerializableObject { + + protected final String prompt; + + protected final List items; + + @JsonProperty("dialogue_history") + protected List dialogueHistory; + + @JsonProperty("ai_agent") + protected AiAgentReferenceOrAiAgentTextGen aiAgent; + + public AiTextGen( + @JsonProperty("prompt") String prompt, + @JsonProperty("items") List items) { + super(); + this.prompt = prompt; + this.items = items; + } + + protected AiTextGen(Builder builder) { + super(); + this.prompt = builder.prompt; + this.items = builder.items; + this.dialogueHistory = builder.dialogueHistory; + this.aiAgent = builder.aiAgent; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getPrompt() { + return prompt; + } + + public List getItems() { + return items; + } + + public List getDialogueHistory() { + return dialogueHistory; + } + + public AiAgentReferenceOrAiAgentTextGen getAiAgent() { + return aiAgent; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiTextGen casted = (AiTextGen) o; + return Objects.equals(prompt, casted.prompt) + && Objects.equals(items, casted.items) + && Objects.equals(dialogueHistory, casted.dialogueHistory) + && Objects.equals(aiAgent, casted.aiAgent); + } + + @Override + public int hashCode() { + return Objects.hash(prompt, items, dialogueHistory, aiAgent); + } + + @Override + public String toString() { + return "AiTextGen{" + + "prompt='" + + prompt + + '\'' + + ", " + + "items='" + + items + + '\'' + + ", " + + "dialogueHistory='" + + dialogueHistory + + '\'' + + ", " + + "aiAgent='" + + aiAgent + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String prompt; + + protected final List items; + + protected List dialogueHistory; + + protected AiAgentReferenceOrAiAgentTextGen aiAgent; + + public Builder(String prompt, List items) { + super(); + this.prompt = prompt; + this.items = items; + } + + public Builder dialogueHistory(List dialogueHistory) { + this.dialogueHistory = dialogueHistory; + return this; + } + + public Builder aiAgent(AiAgentReference aiAgent) { + this.aiAgent = new AiAgentReferenceOrAiAgentTextGen(aiAgent); + return this; + } + + public Builder aiAgent(AiAgentTextGen aiAgent) { + this.aiAgent = new AiAgentReferenceOrAiAgentTextGen(aiAgent); + return this; + } + + public Builder aiAgent(AiAgentReferenceOrAiAgentTextGen aiAgent) { + this.aiAgent = aiAgent; + return this; + } + + public AiTextGen build() { + return new AiTextGen(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGenItemsField.java b/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGenItemsField.java new file mode 100644 index 000000000..75f620eba --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGenItemsField.java @@ -0,0 +1,118 @@ +package com.box.sdkgen.schemas.aitextgen; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AiTextGenItemsField extends SerializableObject { + + protected final String id; + + @JsonDeserialize(using = AiTextGenItemsTypeField.AiTextGenItemsTypeFieldDeserializer.class) + @JsonSerialize(using = AiTextGenItemsTypeField.AiTextGenItemsTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String content; + + public AiTextGenItemsField(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = new EnumWrapper(AiTextGenItemsTypeField.FILE); + } + + protected AiTextGenItemsField(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.content = builder.content; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getContent() { + return content; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiTextGenItemsField casted = (AiTextGenItemsField) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(content, casted.content); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, content); + } + + @Override + public String toString() { + return "AiTextGenItemsField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "content='" + + content + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + protected String content; + + public Builder(String id) { + super(); + this.id = id; + this.type = new EnumWrapper(AiTextGenItemsTypeField.FILE); + } + + public Builder type(AiTextGenItemsTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder content(String content) { + this.content = content; + return this; + } + + public AiTextGenItemsField build() { + return new AiTextGenItemsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGenItemsTypeField.java b/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGenItemsTypeField.java new file mode 100644 index 000000000..d327fcdc0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGenItemsTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.aitextgen; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AiTextGenItemsTypeField implements Valuable { + FILE("file"); + + private final String value; + + AiTextGenItemsTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AiTextGenItemsTypeFieldDeserializer + extends JsonDeserializer> { + + public AiTextGenItemsTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AiTextGenItemsTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AiTextGenItemsTypeFieldSerializer + extends JsonSerializer> { + + public AiTextGenItemsTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/appitem/AppItem.java b/src/main/java/com/box/sdkgen/schemas/appitem/AppItem.java new file mode 100644 index 000000000..7055ae0ae --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/appitem/AppItem.java @@ -0,0 +1,117 @@ +package com.box.sdkgen.schemas.appitem; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AppItem extends SerializableObject { + + protected final String id; + + @JsonDeserialize(using = AppItemTypeField.AppItemTypeFieldDeserializer.class) + @JsonSerialize(using = AppItemTypeField.AppItemTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("application_type") + protected final String applicationType; + + public AppItem( + @JsonProperty("id") String id, @JsonProperty("application_type") String applicationType) { + super(); + this.id = id; + this.applicationType = applicationType; + this.type = new EnumWrapper(AppItemTypeField.APP_ITEM); + } + + protected AppItem(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.applicationType = builder.applicationType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getApplicationType() { + return applicationType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AppItem casted = (AppItem) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(applicationType, casted.applicationType); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, applicationType); + } + + @Override + public String toString() { + return "AppItem{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "applicationType='" + + applicationType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + protected final String applicationType; + + public Builder(String id, String applicationType) { + super(); + this.id = id; + this.applicationType = applicationType; + this.type = new EnumWrapper(AppItemTypeField.APP_ITEM); + } + + public Builder type(AppItemTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public AppItem build() { + return new AppItem(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/appitem/AppItemTypeField.java b/src/main/java/com/box/sdkgen/schemas/appitem/AppItemTypeField.java new file mode 100644 index 000000000..6cd75411d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/appitem/AppItemTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.appitem; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AppItemTypeField implements Valuable { + APP_ITEM("app_item"); + + private final String value; + + AppItemTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AppItemTypeFieldDeserializer + extends JsonDeserializer> { + + public AppItemTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AppItemTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AppItemTypeFieldSerializer + extends JsonSerializer> { + + public AppItemTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/appitemassociation/AppItemAssociation.java b/src/main/java/com/box/sdkgen/schemas/appitemassociation/AppItemAssociation.java new file mode 100644 index 000000000..641e7671f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/appitemassociation/AppItemAssociation.java @@ -0,0 +1,205 @@ +package com.box.sdkgen.schemas.appitemassociation; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.appitem.AppItem; +import com.box.sdkgen.schemas.filebase.FileBase; +import com.box.sdkgen.schemas.filebaseorfolderbaseorweblinkbase.FileBaseOrFolderBaseOrWebLinkBase; +import com.box.sdkgen.schemas.folderbase.FolderBase; +import com.box.sdkgen.schemas.weblinkbase.WebLinkBase; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AppItemAssociation extends SerializableObject { + + protected final String id; + + @JsonDeserialize( + using = AppItemAssociationTypeField.AppItemAssociationTypeFieldDeserializer.class) + @JsonSerialize(using = AppItemAssociationTypeField.AppItemAssociationTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("app_item") + protected final AppItem appItem; + + protected final FileBaseOrFolderBaseOrWebLinkBase item; + + public AppItemAssociation(String id, AppItem appItem, FileBase item) { + super(); + this.id = id; + this.appItem = appItem; + this.item = new FileBaseOrFolderBaseOrWebLinkBase(item); + this.type = + new EnumWrapper( + AppItemAssociationTypeField.APP_ITEM_ASSOCIATION); + } + + public AppItemAssociation(String id, AppItem appItem, FolderBase item) { + super(); + this.id = id; + this.appItem = appItem; + this.item = new FileBaseOrFolderBaseOrWebLinkBase(item); + this.type = + new EnumWrapper( + AppItemAssociationTypeField.APP_ITEM_ASSOCIATION); + } + + public AppItemAssociation(String id, AppItem appItem, WebLinkBase item) { + super(); + this.id = id; + this.appItem = appItem; + this.item = new FileBaseOrFolderBaseOrWebLinkBase(item); + this.type = + new EnumWrapper( + AppItemAssociationTypeField.APP_ITEM_ASSOCIATION); + } + + public AppItemAssociation( + @JsonProperty("id") String id, + @JsonProperty("app_item") AppItem appItem, + @JsonProperty("item") FileBaseOrFolderBaseOrWebLinkBase item) { + super(); + this.id = id; + this.appItem = appItem; + this.item = item; + this.type = + new EnumWrapper( + AppItemAssociationTypeField.APP_ITEM_ASSOCIATION); + } + + protected AppItemAssociation(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.appItem = builder.appItem; + this.item = builder.item; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public AppItem getAppItem() { + return appItem; + } + + public FileBaseOrFolderBaseOrWebLinkBase getItem() { + return item; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AppItemAssociation casted = (AppItemAssociation) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(appItem, casted.appItem) + && Objects.equals(item, casted.item); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, appItem, item); + } + + @Override + public String toString() { + return "AppItemAssociation{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "appItem='" + + appItem + + '\'' + + ", " + + "item='" + + item + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + protected final AppItem appItem; + + protected final FileBaseOrFolderBaseOrWebLinkBase item; + + public Builder(String id, AppItem appItem, FileBase item) { + super(); + this.id = id; + this.appItem = appItem; + this.item = new FileBaseOrFolderBaseOrWebLinkBase(item); + this.type = + new EnumWrapper( + AppItemAssociationTypeField.APP_ITEM_ASSOCIATION); + } + + public Builder(String id, AppItem appItem, FolderBase item) { + super(); + this.id = id; + this.appItem = appItem; + this.item = new FileBaseOrFolderBaseOrWebLinkBase(item); + this.type = + new EnumWrapper( + AppItemAssociationTypeField.APP_ITEM_ASSOCIATION); + } + + public Builder(String id, AppItem appItem, WebLinkBase item) { + super(); + this.id = id; + this.appItem = appItem; + this.item = new FileBaseOrFolderBaseOrWebLinkBase(item); + this.type = + new EnumWrapper( + AppItemAssociationTypeField.APP_ITEM_ASSOCIATION); + } + + public Builder(String id, AppItem appItem, FileBaseOrFolderBaseOrWebLinkBase item) { + super(); + this.id = id; + this.appItem = appItem; + this.item = item; + this.type = + new EnumWrapper( + AppItemAssociationTypeField.APP_ITEM_ASSOCIATION); + } + + public Builder type(AppItemAssociationTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public AppItemAssociation build() { + return new AppItemAssociation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/appitemassociation/AppItemAssociationTypeField.java b/src/main/java/com/box/sdkgen/schemas/appitemassociation/AppItemAssociationTypeField.java new file mode 100644 index 000000000..dbdc28c0b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/appitemassociation/AppItemAssociationTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.appitemassociation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AppItemAssociationTypeField implements Valuable { + APP_ITEM_ASSOCIATION("app_item_association"); + + private final String value; + + AppItemAssociationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AppItemAssociationTypeFieldDeserializer + extends JsonDeserializer> { + + public AppItemAssociationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AppItemAssociationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AppItemAssociationTypeFieldSerializer + extends JsonSerializer> { + + public AppItemAssociationTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/appitemassociations/AppItemAssociations.java b/src/main/java/com/box/sdkgen/schemas/appitemassociations/AppItemAssociations.java new file mode 100644 index 000000000..13475996a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/appitemassociations/AppItemAssociations.java @@ -0,0 +1,133 @@ +package com.box.sdkgen.schemas.appitemassociations; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.appitemassociation.AppItemAssociation; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AppItemAssociations extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + protected List entries; + + public AppItemAssociations() { + super(); + } + + protected AppItemAssociations(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AppItemAssociations casted = (AppItemAssociations) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "AppItemAssociations{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public AppItemAssociations build() { + return new AppItemAssociations(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/appitemeventsource/AppItemEventSource.java b/src/main/java/com/box/sdkgen/schemas/appitemeventsource/AppItemEventSource.java new file mode 100644 index 000000000..f42716d83 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/appitemeventsource/AppItemEventSource.java @@ -0,0 +1,159 @@ +package com.box.sdkgen.schemas.appitemeventsource; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.groupmini.GroupMini; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AppItemEventSource extends SerializableObject { + + protected final String id; + + @JsonDeserialize( + using = AppItemEventSourceTypeField.AppItemEventSourceTypeFieldDeserializer.class) + @JsonSerialize(using = AppItemEventSourceTypeField.AppItemEventSourceTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("app_item_type") + protected final String appItemType; + + protected UserMini user; + + protected GroupMini group; + + public AppItemEventSource( + @JsonProperty("id") String id, @JsonProperty("app_item_type") String appItemType) { + super(); + this.id = id; + this.appItemType = appItemType; + this.type = new EnumWrapper(AppItemEventSourceTypeField.APP_ITEM); + } + + protected AppItemEventSource(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.appItemType = builder.appItemType; + this.user = builder.user; + this.group = builder.group; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getAppItemType() { + return appItemType; + } + + public UserMini getUser() { + return user; + } + + public GroupMini getGroup() { + return group; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AppItemEventSource casted = (AppItemEventSource) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(appItemType, casted.appItemType) + && Objects.equals(user, casted.user) + && Objects.equals(group, casted.group); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, appItemType, user, group); + } + + @Override + public String toString() { + return "AppItemEventSource{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "appItemType='" + + appItemType + + '\'' + + ", " + + "user='" + + user + + '\'' + + ", " + + "group='" + + group + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + protected final String appItemType; + + protected UserMini user; + + protected GroupMini group; + + public Builder(String id, String appItemType) { + super(); + this.id = id; + this.appItemType = appItemType; + this.type = + new EnumWrapper(AppItemEventSourceTypeField.APP_ITEM); + } + + public Builder type(AppItemEventSourceTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder user(UserMini user) { + this.user = user; + return this; + } + + public Builder group(GroupMini group) { + this.group = group; + return this; + } + + public AppItemEventSource build() { + return new AppItemEventSource(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/appitemeventsource/AppItemEventSourceTypeField.java b/src/main/java/com/box/sdkgen/schemas/appitemeventsource/AppItemEventSourceTypeField.java new file mode 100644 index 000000000..17d665d61 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/appitemeventsource/AppItemEventSourceTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.appitemeventsource; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AppItemEventSourceTypeField implements Valuable { + APP_ITEM("app_item"); + + private final String value; + + AppItemEventSourceTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class AppItemEventSourceTypeFieldDeserializer + extends JsonDeserializer> { + + public AppItemEventSourceTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AppItemEventSourceTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AppItemEventSourceTypeFieldSerializer + extends JsonSerializer> { + + public AppItemEventSourceTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/appitemeventsourceoreventsourceorfileorfolderorgenericsourceoruser/AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser.java b/src/main/java/com/box/sdkgen/schemas/appitemeventsourceoreventsourceorfileorfolderorgenericsourceoruser/AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser.java new file mode 100644 index 000000000..e8ed55c14 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/appitemeventsourceoreventsourceorfileorfolderorgenericsourceoruser/AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser.java @@ -0,0 +1,152 @@ +package com.box.sdkgen.schemas.appitemeventsourceoreventsourceorfileorfolderorgenericsourceoruser; + +import com.box.sdkgen.internal.OneOfSix; +import com.box.sdkgen.schemas.appitemeventsource.AppItemEventSource; +import com.box.sdkgen.schemas.eventsource.EventSource; +import com.box.sdkgen.schemas.file.File; +import com.box.sdkgen.schemas.folder.Folder; +import com.box.sdkgen.schemas.user.User; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; +import java.util.Map; + +@JsonDeserialize( + using = + AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser + .AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUserDeserializer.class) +@JsonSerialize(using = OneOfSix.OneOfSixSerializer.class) +public class AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser + extends OneOfSix, User> { + + public AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser( + AppItemEventSource appItemEventSource) { + super(appItemEventSource, null, null, null, null, null); + } + + public AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser( + EventSource eventSource) { + super(null, eventSource, null, null, null, null); + } + + public AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser(File file) { + super(null, null, file, null, null, null); + } + + public AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser(Folder folder) { + super(null, null, null, folder, null, null); + } + + public AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser( + Map map) { + super(null, null, null, null, map, null); + } + + public AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser(User user) { + super(null, null, null, null, null, user); + } + + public boolean isAppItemEventSource() { + return value0 != null; + } + + public AppItemEventSource getAppItemEventSource() { + return value0; + } + + public boolean isEventSource() { + return value1 != null; + } + + public EventSource getEventSource() { + return value1; + } + + public boolean isFile() { + return value2 != null; + } + + public File getFile() { + return value2; + } + + public boolean isFolder() { + return value3 != null; + } + + public Folder getFolder() { + return value3; + } + + public boolean isMap() { + return value4 != null; + } + + public Map getMap() { + return value4; + } + + public boolean isUser() { + return value5 != null; + } + + public User getUser() { + return value5; + } + + static class AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUserDeserializer + extends JsonDeserializer { + + public AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUserDeserializer() { + super(); + } + + @Override + public AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser deserialize( + JsonParser jp, DeserializationContext ctxt) throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "app_item": + return new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser( + JsonManager.deserialize(node, AppItemEventSource.class)); + case "file": + return new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser( + JsonManager.deserialize(node, File.class)); + case "folder": + return new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser( + JsonManager.deserialize(node, Folder.class)); + case "user": + return new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser( + JsonManager.deserialize(node, User.class)); + } + } + JsonNode discriminant1 = node.get("item_type"); + if (!(discriminant1 == null)) { + switch (discriminant1.asText()) { + case "file": + return new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser( + JsonManager.deserialize(node, EventSource.class)); + case "folder": + return new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser( + JsonManager.deserialize(node, EventSource.class)); + } + } + try { + return new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser( + OneOfSix.OBJECT_MAPPER.convertValue(node, Map.class)); + } catch (Exception ignored) { + } + throw new JsonMappingException( + jp, + "Unable to deserialize AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/classification/Classification.java b/src/main/java/com/box/sdkgen/schemas/classification/Classification.java new file mode 100644 index 000000000..e3eaee5a1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/classification/Classification.java @@ -0,0 +1,220 @@ +package com.box.sdkgen.schemas.classification; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Classification extends SerializableObject { + + @JsonProperty("Box__Security__Classification__Key") + protected String boxSecurityClassificationKey; + + @JsonProperty("$parent") + protected String parent; + + @JsonDeserialize( + using = ClassificationTemplateField.ClassificationTemplateFieldDeserializer.class) + @JsonSerialize(using = ClassificationTemplateField.ClassificationTemplateFieldSerializer.class) + @JsonProperty("$template") + protected EnumWrapper template; + + @JsonProperty("$scope") + protected String scope; + + @JsonProperty("$version") + protected Long version; + + @JsonProperty("$type") + protected String type; + + @JsonProperty("$typeVersion") + protected Double typeVersion; + + @JsonProperty("$canEdit") + protected Boolean canEdit; + + public Classification() { + super(); + } + + protected Classification(Builder builder) { + super(); + this.boxSecurityClassificationKey = builder.boxSecurityClassificationKey; + this.parent = builder.parent; + this.template = builder.template; + this.scope = builder.scope; + this.version = builder.version; + this.type = builder.type; + this.typeVersion = builder.typeVersion; + this.canEdit = builder.canEdit; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getBoxSecurityClassificationKey() { + return boxSecurityClassificationKey; + } + + public String getParent() { + return parent; + } + + public EnumWrapper getTemplate() { + return template; + } + + public String getScope() { + return scope; + } + + public Long getVersion() { + return version; + } + + public String getType() { + return type; + } + + public Double getTypeVersion() { + return typeVersion; + } + + public Boolean getCanEdit() { + return canEdit; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Classification casted = (Classification) o; + return Objects.equals(boxSecurityClassificationKey, casted.boxSecurityClassificationKey) + && Objects.equals(parent, casted.parent) + && Objects.equals(template, casted.template) + && Objects.equals(scope, casted.scope) + && Objects.equals(version, casted.version) + && Objects.equals(type, casted.type) + && Objects.equals(typeVersion, casted.typeVersion) + && Objects.equals(canEdit, casted.canEdit); + } + + @Override + public int hashCode() { + return Objects.hash( + boxSecurityClassificationKey, parent, template, scope, version, type, typeVersion, canEdit); + } + + @Override + public String toString() { + return "Classification{" + + "boxSecurityClassificationKey='" + + boxSecurityClassificationKey + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + ", " + + "template='" + + template + + '\'' + + ", " + + "scope='" + + scope + + '\'' + + ", " + + "version='" + + version + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "typeVersion='" + + typeVersion + + '\'' + + ", " + + "canEdit='" + + canEdit + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String boxSecurityClassificationKey; + + protected String parent; + + protected EnumWrapper template; + + protected String scope; + + protected Long version; + + protected String type; + + protected Double typeVersion; + + protected Boolean canEdit; + + public Builder boxSecurityClassificationKey(String boxSecurityClassificationKey) { + this.boxSecurityClassificationKey = boxSecurityClassificationKey; + return this; + } + + public Builder parent(String parent) { + this.parent = parent; + return this; + } + + public Builder template(ClassificationTemplateField template) { + this.template = new EnumWrapper(template); + return this; + } + + public Builder template(EnumWrapper template) { + this.template = template; + return this; + } + + public Builder scope(String scope) { + this.scope = scope; + return this; + } + + public Builder version(Long version) { + this.version = version; + return this; + } + + public Builder type(String type) { + this.type = type; + return this; + } + + public Builder typeVersion(Double typeVersion) { + this.typeVersion = typeVersion; + return this; + } + + public Builder canEdit(Boolean canEdit) { + this.canEdit = canEdit; + return this; + } + + public Classification build() { + return new Classification(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/classification/ClassificationTemplateField.java b/src/main/java/com/box/sdkgen/schemas/classification/ClassificationTemplateField.java new file mode 100644 index 000000000..679af6b99 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/classification/ClassificationTemplateField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.classification; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ClassificationTemplateField implements Valuable { + SECURITYCLASSIFICATION_6VMVOCHWUWO("securityClassification-6VMVochwUWo"); + + private final String value; + + ClassificationTemplateField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ClassificationTemplateFieldDeserializer + extends JsonDeserializer> { + + public ClassificationTemplateFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ClassificationTemplateField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ClassificationTemplateFieldSerializer + extends JsonSerializer> { + + public ClassificationTemplateFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplate.java b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplate.java new file mode 100644 index 000000000..5e1e4e78a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplate.java @@ -0,0 +1,256 @@ +package com.box.sdkgen.schemas.classificationtemplate; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ClassificationTemplate extends SerializableObject { + + protected final String id; + + @JsonDeserialize( + using = ClassificationTemplateTypeField.ClassificationTemplateTypeFieldDeserializer.class) + @JsonSerialize( + using = ClassificationTemplateTypeField.ClassificationTemplateTypeFieldSerializer.class) + protected EnumWrapper type; + + protected final String scope; + + @JsonDeserialize( + using = + ClassificationTemplateTemplateKeyField.ClassificationTemplateTemplateKeyFieldDeserializer + .class) + @JsonSerialize( + using = + ClassificationTemplateTemplateKeyField.ClassificationTemplateTemplateKeyFieldSerializer + .class) + protected EnumWrapper templateKey; + + @JsonDeserialize( + using = + ClassificationTemplateDisplayNameField.ClassificationTemplateDisplayNameFieldDeserializer + .class) + @JsonSerialize( + using = + ClassificationTemplateDisplayNameField.ClassificationTemplateDisplayNameFieldSerializer + .class) + protected EnumWrapper displayName; + + protected Boolean hidden; + + protected Boolean copyInstanceOnItemCopy; + + protected final List fields; + + public ClassificationTemplate( + @JsonProperty("id") String id, + @JsonProperty("scope") String scope, + @JsonProperty("fields") List fields) { + super(); + this.id = id; + this.scope = scope; + this.fields = fields; + this.type = + new EnumWrapper( + ClassificationTemplateTypeField.METADATA_TEMPLATE); + this.templateKey = + new EnumWrapper( + ClassificationTemplateTemplateKeyField.SECURITYCLASSIFICATION_6VMVOCHWUWO); + this.displayName = + new EnumWrapper( + ClassificationTemplateDisplayNameField.CLASSIFICATION); + } + + protected ClassificationTemplate(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.scope = builder.scope; + this.templateKey = builder.templateKey; + this.displayName = builder.displayName; + this.hidden = builder.hidden; + this.copyInstanceOnItemCopy = builder.copyInstanceOnItemCopy; + this.fields = builder.fields; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getScope() { + return scope; + } + + public EnumWrapper getTemplateKey() { + return templateKey; + } + + public EnumWrapper getDisplayName() { + return displayName; + } + + public Boolean getHidden() { + return hidden; + } + + public Boolean getCopyInstanceOnItemCopy() { + return copyInstanceOnItemCopy; + } + + public List getFields() { + return fields; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ClassificationTemplate casted = (ClassificationTemplate) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(scope, casted.scope) + && Objects.equals(templateKey, casted.templateKey) + && Objects.equals(displayName, casted.displayName) + && Objects.equals(hidden, casted.hidden) + && Objects.equals(copyInstanceOnItemCopy, casted.copyInstanceOnItemCopy) + && Objects.equals(fields, casted.fields); + } + + @Override + public int hashCode() { + return Objects.hash( + id, type, scope, templateKey, displayName, hidden, copyInstanceOnItemCopy, fields); + } + + @Override + public String toString() { + return "ClassificationTemplate{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "scope='" + + scope + + '\'' + + ", " + + "templateKey='" + + templateKey + + '\'' + + ", " + + "displayName='" + + displayName + + '\'' + + ", " + + "hidden='" + + hidden + + '\'' + + ", " + + "copyInstanceOnItemCopy='" + + copyInstanceOnItemCopy + + '\'' + + ", " + + "fields='" + + fields + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + protected final String scope; + + protected EnumWrapper templateKey; + + protected EnumWrapper displayName; + + protected Boolean hidden; + + protected Boolean copyInstanceOnItemCopy; + + protected final List fields; + + public Builder(String id, String scope, List fields) { + super(); + this.id = id; + this.scope = scope; + this.fields = fields; + this.type = + new EnumWrapper( + ClassificationTemplateTypeField.METADATA_TEMPLATE); + this.templateKey = + new EnumWrapper( + ClassificationTemplateTemplateKeyField.SECURITYCLASSIFICATION_6VMVOCHWUWO); + this.displayName = + new EnumWrapper( + ClassificationTemplateDisplayNameField.CLASSIFICATION); + } + + public Builder type(ClassificationTemplateTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder templateKey(ClassificationTemplateTemplateKeyField templateKey) { + this.templateKey = new EnumWrapper(templateKey); + return this; + } + + public Builder templateKey(EnumWrapper templateKey) { + this.templateKey = templateKey; + return this; + } + + public Builder displayName(ClassificationTemplateDisplayNameField displayName) { + this.displayName = new EnumWrapper(displayName); + return this; + } + + public Builder displayName(EnumWrapper displayName) { + this.displayName = displayName; + return this; + } + + public Builder hidden(Boolean hidden) { + this.hidden = hidden; + return this; + } + + public Builder copyInstanceOnItemCopy(Boolean copyInstanceOnItemCopy) { + this.copyInstanceOnItemCopy = copyInstanceOnItemCopy; + return this; + } + + public ClassificationTemplate build() { + return new ClassificationTemplate(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateDisplayNameField.java b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateDisplayNameField.java new file mode 100644 index 000000000..380810dae --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateDisplayNameField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.classificationtemplate; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ClassificationTemplateDisplayNameField implements Valuable { + CLASSIFICATION("Classification"); + + private final String value; + + ClassificationTemplateDisplayNameField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ClassificationTemplateDisplayNameFieldDeserializer + extends JsonDeserializer> { + + public ClassificationTemplateDisplayNameFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ClassificationTemplateDisplayNameField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ClassificationTemplateDisplayNameFieldSerializer + extends JsonSerializer> { + + public ClassificationTemplateDisplayNameFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsDisplayNameField.java b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsDisplayNameField.java new file mode 100644 index 000000000..74ec58fa3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsDisplayNameField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.classificationtemplate; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ClassificationTemplateFieldsDisplayNameField implements Valuable { + CLASSIFICATION("Classification"); + + private final String value; + + ClassificationTemplateFieldsDisplayNameField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ClassificationTemplateFieldsDisplayNameFieldDeserializer + extends JsonDeserializer> { + + public ClassificationTemplateFieldsDisplayNameFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ClassificationTemplateFieldsDisplayNameField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ClassificationTemplateFieldsDisplayNameFieldSerializer + extends JsonSerializer> { + + public ClassificationTemplateFieldsDisplayNameFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsField.java b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsField.java new file mode 100644 index 000000000..80c2338ac --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsField.java @@ -0,0 +1,223 @@ +package com.box.sdkgen.schemas.classificationtemplate; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ClassificationTemplateFieldsField extends SerializableObject { + + protected final String id; + + @JsonDeserialize( + using = + ClassificationTemplateFieldsTypeField.ClassificationTemplateFieldsTypeFieldDeserializer + .class) + @JsonSerialize( + using = + ClassificationTemplateFieldsTypeField.ClassificationTemplateFieldsTypeFieldSerializer + .class) + protected EnumWrapper type; + + @JsonDeserialize( + using = + ClassificationTemplateFieldsKeyField.ClassificationTemplateFieldsKeyFieldDeserializer + .class) + @JsonSerialize( + using = + ClassificationTemplateFieldsKeyField.ClassificationTemplateFieldsKeyFieldSerializer.class) + protected EnumWrapper key; + + @JsonDeserialize( + using = + ClassificationTemplateFieldsDisplayNameField + .ClassificationTemplateFieldsDisplayNameFieldDeserializer.class) + @JsonSerialize( + using = + ClassificationTemplateFieldsDisplayNameField + .ClassificationTemplateFieldsDisplayNameFieldSerializer.class) + protected EnumWrapper displayName; + + protected Boolean hidden; + + protected final List options; + + public ClassificationTemplateFieldsField( + @JsonProperty("id") String id, + @JsonProperty("options") List options) { + super(); + this.id = id; + this.options = options; + this.type = + new EnumWrapper( + ClassificationTemplateFieldsTypeField.ENUM); + this.key = + new EnumWrapper( + ClassificationTemplateFieldsKeyField.BOX__SECURITY__CLASSIFICATION__KEY); + this.displayName = + new EnumWrapper( + ClassificationTemplateFieldsDisplayNameField.CLASSIFICATION); + } + + protected ClassificationTemplateFieldsField(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.key = builder.key; + this.displayName = builder.displayName; + this.hidden = builder.hidden; + this.options = builder.options; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public EnumWrapper getKey() { + return key; + } + + public EnumWrapper getDisplayName() { + return displayName; + } + + public Boolean getHidden() { + return hidden; + } + + public List getOptions() { + return options; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ClassificationTemplateFieldsField casted = (ClassificationTemplateFieldsField) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(key, casted.key) + && Objects.equals(displayName, casted.displayName) + && Objects.equals(hidden, casted.hidden) + && Objects.equals(options, casted.options); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, key, displayName, hidden, options); + } + + @Override + public String toString() { + return "ClassificationTemplateFieldsField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "key='" + + key + + '\'' + + ", " + + "displayName='" + + displayName + + '\'' + + ", " + + "hidden='" + + hidden + + '\'' + + ", " + + "options='" + + options + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + protected EnumWrapper key; + + protected EnumWrapper displayName; + + protected Boolean hidden; + + protected final List options; + + public Builder(String id, List options) { + super(); + this.id = id; + this.options = options; + this.type = + new EnumWrapper( + ClassificationTemplateFieldsTypeField.ENUM); + this.key = + new EnumWrapper( + ClassificationTemplateFieldsKeyField.BOX__SECURITY__CLASSIFICATION__KEY); + this.displayName = + new EnumWrapper( + ClassificationTemplateFieldsDisplayNameField.CLASSIFICATION); + } + + public Builder type(ClassificationTemplateFieldsTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder key(ClassificationTemplateFieldsKeyField key) { + this.key = new EnumWrapper(key); + return this; + } + + public Builder key(EnumWrapper key) { + this.key = key; + return this; + } + + public Builder displayName(ClassificationTemplateFieldsDisplayNameField displayName) { + this.displayName = new EnumWrapper(displayName); + return this; + } + + public Builder displayName( + EnumWrapper displayName) { + this.displayName = displayName; + return this; + } + + public Builder hidden(Boolean hidden) { + this.hidden = hidden; + return this; + } + + public ClassificationTemplateFieldsField build() { + return new ClassificationTemplateFieldsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsKeyField.java b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsKeyField.java new file mode 100644 index 000000000..cafecc38c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsKeyField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.classificationtemplate; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ClassificationTemplateFieldsKeyField implements Valuable { + BOX__SECURITY__CLASSIFICATION__KEY("Box__Security__Classification__Key"); + + private final String value; + + ClassificationTemplateFieldsKeyField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ClassificationTemplateFieldsKeyFieldDeserializer + extends JsonDeserializer> { + + public ClassificationTemplateFieldsKeyFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ClassificationTemplateFieldsKeyField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ClassificationTemplateFieldsKeyFieldSerializer + extends JsonSerializer> { + + public ClassificationTemplateFieldsKeyFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsOptionsField.java b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsOptionsField.java new file mode 100644 index 000000000..c1dbd70f9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsOptionsField.java @@ -0,0 +1,104 @@ +package com.box.sdkgen.schemas.classificationtemplate; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ClassificationTemplateFieldsOptionsField extends SerializableObject { + + protected final String id; + + protected final String key; + + protected ClassificationTemplateFieldsOptionsStaticConfigField staticConfig; + + public ClassificationTemplateFieldsOptionsField( + @JsonProperty("id") String id, @JsonProperty("key") String key) { + super(); + this.id = id; + this.key = key; + } + + protected ClassificationTemplateFieldsOptionsField(Builder builder) { + super(); + this.id = builder.id; + this.key = builder.key; + this.staticConfig = builder.staticConfig; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getKey() { + return key; + } + + public ClassificationTemplateFieldsOptionsStaticConfigField getStaticConfig() { + return staticConfig; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ClassificationTemplateFieldsOptionsField casted = (ClassificationTemplateFieldsOptionsField) o; + return Objects.equals(id, casted.id) + && Objects.equals(key, casted.key) + && Objects.equals(staticConfig, casted.staticConfig); + } + + @Override + public int hashCode() { + return Objects.hash(id, key, staticConfig); + } + + @Override + public String toString() { + return "ClassificationTemplateFieldsOptionsField{" + + "id='" + + id + + '\'' + + ", " + + "key='" + + key + + '\'' + + ", " + + "staticConfig='" + + staticConfig + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected final String key; + + protected ClassificationTemplateFieldsOptionsStaticConfigField staticConfig; + + public Builder(String id, String key) { + super(); + this.id = id; + this.key = key; + } + + public Builder staticConfig(ClassificationTemplateFieldsOptionsStaticConfigField staticConfig) { + this.staticConfig = staticConfig; + return this; + } + + public ClassificationTemplateFieldsOptionsField build() { + return new ClassificationTemplateFieldsOptionsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsOptionsStaticConfigClassificationField.java b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsOptionsStaticConfigClassificationField.java new file mode 100644 index 000000000..7bbd6bd5c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsOptionsStaticConfigClassificationField.java @@ -0,0 +1,89 @@ +package com.box.sdkgen.schemas.classificationtemplate; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ClassificationTemplateFieldsOptionsStaticConfigClassificationField + extends SerializableObject { + + protected String classificationDefinition; + + @JsonProperty("colorID") + protected Long colorId; + + public ClassificationTemplateFieldsOptionsStaticConfigClassificationField() { + super(); + } + + protected ClassificationTemplateFieldsOptionsStaticConfigClassificationField(Builder builder) { + super(); + this.classificationDefinition = builder.classificationDefinition; + this.colorId = builder.colorId; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getClassificationDefinition() { + return classificationDefinition; + } + + public Long getColorId() { + return colorId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ClassificationTemplateFieldsOptionsStaticConfigClassificationField casted = + (ClassificationTemplateFieldsOptionsStaticConfigClassificationField) o; + return Objects.equals(classificationDefinition, casted.classificationDefinition) + && Objects.equals(colorId, casted.colorId); + } + + @Override + public int hashCode() { + return Objects.hash(classificationDefinition, colorId); + } + + @Override + public String toString() { + return "ClassificationTemplateFieldsOptionsStaticConfigClassificationField{" + + "classificationDefinition='" + + classificationDefinition + + '\'' + + ", " + + "colorId='" + + colorId + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String classificationDefinition; + + protected Long colorId; + + public Builder classificationDefinition(String classificationDefinition) { + this.classificationDefinition = classificationDefinition; + return this; + } + + public Builder colorId(Long colorId) { + this.colorId = colorId; + return this; + } + + public ClassificationTemplateFieldsOptionsStaticConfigClassificationField build() { + return new ClassificationTemplateFieldsOptionsStaticConfigClassificationField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsOptionsStaticConfigField.java b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsOptionsStaticConfigField.java new file mode 100644 index 000000000..de5eb7062 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsOptionsStaticConfigField.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.schemas.classificationtemplate; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ClassificationTemplateFieldsOptionsStaticConfigField extends SerializableObject { + + protected ClassificationTemplateFieldsOptionsStaticConfigClassificationField classification; + + public ClassificationTemplateFieldsOptionsStaticConfigField() { + super(); + } + + protected ClassificationTemplateFieldsOptionsStaticConfigField(Builder builder) { + super(); + this.classification = builder.classification; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public ClassificationTemplateFieldsOptionsStaticConfigClassificationField getClassification() { + return classification; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ClassificationTemplateFieldsOptionsStaticConfigField casted = + (ClassificationTemplateFieldsOptionsStaticConfigField) o; + return Objects.equals(classification, casted.classification); + } + + @Override + public int hashCode() { + return Objects.hash(classification); + } + + @Override + public String toString() { + return "ClassificationTemplateFieldsOptionsStaticConfigField{" + + "classification='" + + classification + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected ClassificationTemplateFieldsOptionsStaticConfigClassificationField classification; + + public Builder classification( + ClassificationTemplateFieldsOptionsStaticConfigClassificationField classification) { + this.classification = classification; + return this; + } + + public ClassificationTemplateFieldsOptionsStaticConfigField build() { + return new ClassificationTemplateFieldsOptionsStaticConfigField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsTypeField.java b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsTypeField.java new file mode 100644 index 000000000..a34162566 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.classificationtemplate; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ClassificationTemplateFieldsTypeField implements Valuable { + ENUM("enum"); + + private final String value; + + ClassificationTemplateFieldsTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ClassificationTemplateFieldsTypeFieldDeserializer + extends JsonDeserializer> { + + public ClassificationTemplateFieldsTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ClassificationTemplateFieldsTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ClassificationTemplateFieldsTypeFieldSerializer + extends JsonSerializer> { + + public ClassificationTemplateFieldsTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateTemplateKeyField.java b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateTemplateKeyField.java new file mode 100644 index 000000000..d36c2b3ae --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateTemplateKeyField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.classificationtemplate; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ClassificationTemplateTemplateKeyField implements Valuable { + SECURITYCLASSIFICATION_6VMVOCHWUWO("securityClassification-6VMVochwUWo"); + + private final String value; + + ClassificationTemplateTemplateKeyField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ClassificationTemplateTemplateKeyFieldDeserializer + extends JsonDeserializer> { + + public ClassificationTemplateTemplateKeyFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ClassificationTemplateTemplateKeyField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ClassificationTemplateTemplateKeyFieldSerializer + extends JsonSerializer> { + + public ClassificationTemplateTemplateKeyFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateTypeField.java b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateTypeField.java new file mode 100644 index 000000000..6ee60ed3c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.classificationtemplate; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ClassificationTemplateTypeField implements Valuable { + METADATA_TEMPLATE("metadata_template"); + + private final String value; + + ClassificationTemplateTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ClassificationTemplateTypeFieldDeserializer + extends JsonDeserializer> { + + public ClassificationTemplateTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ClassificationTemplateTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ClassificationTemplateTypeFieldSerializer + extends JsonSerializer> { + + public ClassificationTemplateTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/clienterror/ClientError.java b/src/main/java/com/box/sdkgen/schemas/clienterror/ClientError.java new file mode 100644 index 000000000..896ec2f8a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/clienterror/ClientError.java @@ -0,0 +1,205 @@ +package com.box.sdkgen.schemas.clienterror; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Map; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ClientError extends SerializableObject { + + @JsonDeserialize(using = ClientErrorTypeField.ClientErrorTypeFieldDeserializer.class) + @JsonSerialize(using = ClientErrorTypeField.ClientErrorTypeFieldSerializer.class) + protected EnumWrapper type; + + protected Integer status; + + @JsonDeserialize(using = ClientErrorCodeField.ClientErrorCodeFieldDeserializer.class) + @JsonSerialize(using = ClientErrorCodeField.ClientErrorCodeFieldSerializer.class) + protected EnumWrapper code; + + protected String message; + + @JsonProperty("context_info") + @Nullable + protected Map contextInfo; + + @JsonProperty("help_url") + protected String helpUrl; + + @JsonProperty("request_id") + protected String requestId; + + public ClientError() { + super(); + } + + protected ClientError(Builder builder) { + super(); + this.type = builder.type; + this.status = builder.status; + this.code = builder.code; + this.message = builder.message; + this.contextInfo = builder.contextInfo; + this.helpUrl = builder.helpUrl; + this.requestId = builder.requestId; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public Integer getStatus() { + return status; + } + + public EnumWrapper getCode() { + return code; + } + + public String getMessage() { + return message; + } + + public Map getContextInfo() { + return contextInfo; + } + + public String getHelpUrl() { + return helpUrl; + } + + public String getRequestId() { + return requestId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ClientError casted = (ClientError) o; + return Objects.equals(type, casted.type) + && Objects.equals(status, casted.status) + && Objects.equals(code, casted.code) + && Objects.equals(message, casted.message) + && Objects.equals(contextInfo, casted.contextInfo) + && Objects.equals(helpUrl, casted.helpUrl) + && Objects.equals(requestId, casted.requestId); + } + + @Override + public int hashCode() { + return Objects.hash(type, status, code, message, contextInfo, helpUrl, requestId); + } + + @Override + public String toString() { + return "ClientError{" + + "type='" + + type + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "code='" + + code + + '\'' + + ", " + + "message='" + + message + + '\'' + + ", " + + "contextInfo='" + + contextInfo + + '\'' + + ", " + + "helpUrl='" + + helpUrl + + '\'' + + ", " + + "requestId='" + + requestId + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected Integer status; + + protected EnumWrapper code; + + protected String message; + + protected Map contextInfo; + + protected String helpUrl; + + protected String requestId; + + public Builder type(ClientErrorTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder status(Integer status) { + this.status = status; + return this; + } + + public Builder code(ClientErrorCodeField code) { + this.code = new EnumWrapper(code); + return this; + } + + public Builder code(EnumWrapper code) { + this.code = code; + return this; + } + + public Builder message(String message) { + this.message = message; + return this; + } + + public Builder contextInfo(Map contextInfo) { + this.contextInfo = contextInfo; + this.markNullableFieldAsSet("context_info"); + return this; + } + + public Builder helpUrl(String helpUrl) { + this.helpUrl = helpUrl; + return this; + } + + public Builder requestId(String requestId) { + this.requestId = requestId; + return this; + } + + public ClientError build() { + return new ClientError(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/clienterror/ClientErrorCodeField.java b/src/main/java/com/box/sdkgen/schemas/clienterror/ClientErrorCodeField.java new file mode 100644 index 000000000..ef08b095b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/clienterror/ClientErrorCodeField.java @@ -0,0 +1,76 @@ +package com.box.sdkgen.schemas.clienterror; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ClientErrorCodeField implements Valuable { + CREATED("created"), + ACCEPTED("accepted"), + NO_CONTENT("no_content"), + REDIRECT("redirect"), + NOT_MODIFIED("not_modified"), + BAD_REQUEST("bad_request"), + UNAUTHORIZED("unauthorized"), + FORBIDDEN("forbidden"), + NOT_FOUND("not_found"), + METHOD_NOT_ALLOWED("method_not_allowed"), + CONFLICT("conflict"), + PRECONDITION_FAILED("precondition_failed"), + TOO_MANY_REQUESTS("too_many_requests"), + INTERNAL_SERVER_ERROR("internal_server_error"), + UNAVAILABLE("unavailable"), + ITEM_NAME_INVALID("item_name_invalid"), + INSUFFICIENT_SCOPE("insufficient_scope"); + + private final String value; + + ClientErrorCodeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ClientErrorCodeFieldDeserializer + extends JsonDeserializer> { + + public ClientErrorCodeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ClientErrorCodeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ClientErrorCodeFieldSerializer + extends JsonSerializer> { + + public ClientErrorCodeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/clienterror/ClientErrorTypeField.java b/src/main/java/com/box/sdkgen/schemas/clienterror/ClientErrorTypeField.java new file mode 100644 index 000000000..95f5ae062 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/clienterror/ClientErrorTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.clienterror; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ClientErrorTypeField implements Valuable { + ERROR("error"); + + private final String value; + + ClientErrorTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ClientErrorTypeFieldDeserializer + extends JsonDeserializer> { + + public ClientErrorTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ClientErrorTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ClientErrorTypeFieldSerializer + extends JsonSerializer> { + + public ClientErrorTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaboration/Collaboration.java b/src/main/java/com/box/sdkgen/schemas/collaboration/Collaboration.java new file mode 100644 index 000000000..fcd71e366 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaboration/Collaboration.java @@ -0,0 +1,440 @@ +package com.box.sdkgen.schemas.collaboration; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.appitem.AppItem; +import com.box.sdkgen.schemas.file.File; +import com.box.sdkgen.schemas.fileorfolderorweblink.FileOrFolderOrWebLink; +import com.box.sdkgen.schemas.folder.Folder; +import com.box.sdkgen.schemas.groupmini.GroupMini; +import com.box.sdkgen.schemas.groupminiorusercollaborations.GroupMiniOrUserCollaborations; +import com.box.sdkgen.schemas.usercollaborations.UserCollaborations; +import com.box.sdkgen.schemas.weblink.WebLink; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Collaboration extends SerializableObject { + + protected final String id; + + @JsonDeserialize(using = CollaborationTypeField.CollaborationTypeFieldDeserializer.class) + @JsonSerialize(using = CollaborationTypeField.CollaborationTypeFieldSerializer.class) + protected EnumWrapper type; + + @Nullable protected FileOrFolderOrWebLink item; + + @JsonProperty("app_item") + @Nullable + protected AppItem appItem; + + @JsonProperty("accessible_by") + protected GroupMiniOrUserCollaborations accessibleBy; + + @JsonProperty("invite_email") + @Nullable + protected String inviteEmail; + + @JsonDeserialize(using = CollaborationRoleField.CollaborationRoleFieldDeserializer.class) + @JsonSerialize(using = CollaborationRoleField.CollaborationRoleFieldSerializer.class) + protected EnumWrapper role; + + @JsonProperty("expires_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date expiresAt; + + @JsonProperty("is_access_only") + protected Boolean isAccessOnly; + + @JsonDeserialize(using = CollaborationStatusField.CollaborationStatusFieldDeserializer.class) + @JsonSerialize(using = CollaborationStatusField.CollaborationStatusFieldSerializer.class) + protected EnumWrapper status; + + @JsonProperty("acknowledged_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date acknowledgedAt; + + @JsonProperty("created_by") + protected UserCollaborations createdBy; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date modifiedAt; + + @JsonProperty("acceptance_requirements_status") + protected CollaborationAcceptanceRequirementsStatusField acceptanceRequirementsStatus; + + public Collaboration(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = new EnumWrapper(CollaborationTypeField.COLLABORATION); + } + + protected Collaboration(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.item = builder.item; + this.appItem = builder.appItem; + this.accessibleBy = builder.accessibleBy; + this.inviteEmail = builder.inviteEmail; + this.role = builder.role; + this.expiresAt = builder.expiresAt; + this.isAccessOnly = builder.isAccessOnly; + this.status = builder.status; + this.acknowledgedAt = builder.acknowledgedAt; + this.createdBy = builder.createdBy; + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + this.acceptanceRequirementsStatus = builder.acceptanceRequirementsStatus; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public FileOrFolderOrWebLink getItem() { + return item; + } + + public AppItem getAppItem() { + return appItem; + } + + public GroupMiniOrUserCollaborations getAccessibleBy() { + return accessibleBy; + } + + public String getInviteEmail() { + return inviteEmail; + } + + public EnumWrapper getRole() { + return role; + } + + public Date getExpiresAt() { + return expiresAt; + } + + public Boolean getIsAccessOnly() { + return isAccessOnly; + } + + public EnumWrapper getStatus() { + return status; + } + + public Date getAcknowledgedAt() { + return acknowledgedAt; + } + + public UserCollaborations getCreatedBy() { + return createdBy; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + public CollaborationAcceptanceRequirementsStatusField getAcceptanceRequirementsStatus() { + return acceptanceRequirementsStatus; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Collaboration casted = (Collaboration) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(item, casted.item) + && Objects.equals(appItem, casted.appItem) + && Objects.equals(accessibleBy, casted.accessibleBy) + && Objects.equals(inviteEmail, casted.inviteEmail) + && Objects.equals(role, casted.role) + && Objects.equals(expiresAt, casted.expiresAt) + && Objects.equals(isAccessOnly, casted.isAccessOnly) + && Objects.equals(status, casted.status) + && Objects.equals(acknowledgedAt, casted.acknowledgedAt) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt) + && Objects.equals(acceptanceRequirementsStatus, casted.acceptanceRequirementsStatus); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + type, + item, + appItem, + accessibleBy, + inviteEmail, + role, + expiresAt, + isAccessOnly, + status, + acknowledgedAt, + createdBy, + createdAt, + modifiedAt, + acceptanceRequirementsStatus); + } + + @Override + public String toString() { + return "Collaboration{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "item='" + + item + + '\'' + + ", " + + "appItem='" + + appItem + + '\'' + + ", " + + "accessibleBy='" + + accessibleBy + + '\'' + + ", " + + "inviteEmail='" + + inviteEmail + + '\'' + + ", " + + "role='" + + role + + '\'' + + ", " + + "expiresAt='" + + expiresAt + + '\'' + + ", " + + "isAccessOnly='" + + isAccessOnly + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "acknowledgedAt='" + + acknowledgedAt + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + ", " + + "acceptanceRequirementsStatus='" + + acceptanceRequirementsStatus + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + protected FileOrFolderOrWebLink item; + + protected AppItem appItem; + + protected GroupMiniOrUserCollaborations accessibleBy; + + protected String inviteEmail; + + protected EnumWrapper role; + + protected Date expiresAt; + + protected Boolean isAccessOnly; + + protected EnumWrapper status; + + protected Date acknowledgedAt; + + protected UserCollaborations createdBy; + + protected Date createdAt; + + protected Date modifiedAt; + + protected CollaborationAcceptanceRequirementsStatusField acceptanceRequirementsStatus; + + public Builder(String id) { + super(); + this.id = id; + this.type = new EnumWrapper(CollaborationTypeField.COLLABORATION); + } + + public Builder type(CollaborationTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder item(File item) { + this.item = new FileOrFolderOrWebLink(item); + this.markNullableFieldAsSet("item"); + return this; + } + + public Builder item(Folder item) { + this.item = new FileOrFolderOrWebLink(item); + this.markNullableFieldAsSet("item"); + return this; + } + + public Builder item(WebLink item) { + this.item = new FileOrFolderOrWebLink(item); + this.markNullableFieldAsSet("item"); + return this; + } + + public Builder item(FileOrFolderOrWebLink item) { + this.item = item; + this.markNullableFieldAsSet("item"); + return this; + } + + public Builder appItem(AppItem appItem) { + this.appItem = appItem; + this.markNullableFieldAsSet("app_item"); + return this; + } + + public Builder accessibleBy(GroupMini accessibleBy) { + this.accessibleBy = new GroupMiniOrUserCollaborations(accessibleBy); + return this; + } + + public Builder accessibleBy(UserCollaborations accessibleBy) { + this.accessibleBy = new GroupMiniOrUserCollaborations(accessibleBy); + return this; + } + + public Builder accessibleBy(GroupMiniOrUserCollaborations accessibleBy) { + this.accessibleBy = accessibleBy; + return this; + } + + public Builder inviteEmail(String inviteEmail) { + this.inviteEmail = inviteEmail; + this.markNullableFieldAsSet("invite_email"); + return this; + } + + public Builder role(CollaborationRoleField role) { + this.role = new EnumWrapper(role); + return this; + } + + public Builder role(EnumWrapper role) { + this.role = role; + return this; + } + + public Builder expiresAt(Date expiresAt) { + this.expiresAt = expiresAt; + this.markNullableFieldAsSet("expires_at"); + return this; + } + + public Builder isAccessOnly(Boolean isAccessOnly) { + this.isAccessOnly = isAccessOnly; + return this; + } + + public Builder status(CollaborationStatusField status) { + this.status = new EnumWrapper(status); + return this; + } + + public Builder status(EnumWrapper status) { + this.status = status; + return this; + } + + public Builder acknowledgedAt(Date acknowledgedAt) { + this.acknowledgedAt = acknowledgedAt; + return this; + } + + public Builder createdBy(UserCollaborations createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + public Builder acceptanceRequirementsStatus( + CollaborationAcceptanceRequirementsStatusField acceptanceRequirementsStatus) { + this.acceptanceRequirementsStatus = acceptanceRequirementsStatus; + return this; + } + + public Collaboration build() { + return new Collaboration(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusField.java b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusField.java new file mode 100644 index 000000000..a25dcfdad --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusField.java @@ -0,0 +1,126 @@ +package com.box.sdkgen.schemas.collaboration; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CollaborationAcceptanceRequirementsStatusField extends SerializableObject { + + @JsonProperty("terms_of_service_requirement") + protected CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField + termsOfServiceRequirement; + + @JsonProperty("strong_password_requirement") + protected CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField + strongPasswordRequirement; + + @JsonProperty("two_factor_authentication_requirement") + protected CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField + twoFactorAuthenticationRequirement; + + public CollaborationAcceptanceRequirementsStatusField() { + super(); + } + + protected CollaborationAcceptanceRequirementsStatusField(Builder builder) { + super(); + this.termsOfServiceRequirement = builder.termsOfServiceRequirement; + this.strongPasswordRequirement = builder.strongPasswordRequirement; + this.twoFactorAuthenticationRequirement = builder.twoFactorAuthenticationRequirement; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField + getTermsOfServiceRequirement() { + return termsOfServiceRequirement; + } + + public CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField + getStrongPasswordRequirement() { + return strongPasswordRequirement; + } + + public CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField + getTwoFactorAuthenticationRequirement() { + return twoFactorAuthenticationRequirement; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CollaborationAcceptanceRequirementsStatusField casted = + (CollaborationAcceptanceRequirementsStatusField) o; + return Objects.equals(termsOfServiceRequirement, casted.termsOfServiceRequirement) + && Objects.equals(strongPasswordRequirement, casted.strongPasswordRequirement) + && Objects.equals( + twoFactorAuthenticationRequirement, casted.twoFactorAuthenticationRequirement); + } + + @Override + public int hashCode() { + return Objects.hash( + termsOfServiceRequirement, strongPasswordRequirement, twoFactorAuthenticationRequirement); + } + + @Override + public String toString() { + return "CollaborationAcceptanceRequirementsStatusField{" + + "termsOfServiceRequirement='" + + termsOfServiceRequirement + + '\'' + + ", " + + "strongPasswordRequirement='" + + strongPasswordRequirement + + '\'' + + ", " + + "twoFactorAuthenticationRequirement='" + + twoFactorAuthenticationRequirement + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField + termsOfServiceRequirement; + + protected CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField + strongPasswordRequirement; + + protected CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField + twoFactorAuthenticationRequirement; + + public Builder termsOfServiceRequirement( + CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField + termsOfServiceRequirement) { + this.termsOfServiceRequirement = termsOfServiceRequirement; + return this; + } + + public Builder strongPasswordRequirement( + CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField + strongPasswordRequirement) { + this.strongPasswordRequirement = strongPasswordRequirement; + return this; + } + + public Builder twoFactorAuthenticationRequirement( + CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField + twoFactorAuthenticationRequirement) { + this.twoFactorAuthenticationRequirement = twoFactorAuthenticationRequirement; + return this; + } + + public CollaborationAcceptanceRequirementsStatusField build() { + return new CollaborationAcceptanceRequirementsStatusField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField.java b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField.java new file mode 100644 index 000000000..5d54adc38 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField.java @@ -0,0 +1,99 @@ +package com.box.sdkgen.schemas.collaboration; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField + extends SerializableObject { + + @JsonProperty("enterprise_has_strong_password_required_for_external_users") + protected Boolean enterpriseHasStrongPasswordRequiredForExternalUsers; + + @JsonProperty("user_has_strong_password") + @Nullable + protected Boolean userHasStrongPassword; + + public CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField() { + super(); + } + + protected CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField( + Builder builder) { + super(); + this.enterpriseHasStrongPasswordRequiredForExternalUsers = + builder.enterpriseHasStrongPasswordRequiredForExternalUsers; + this.userHasStrongPassword = builder.userHasStrongPassword; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getEnterpriseHasStrongPasswordRequiredForExternalUsers() { + return enterpriseHasStrongPasswordRequiredForExternalUsers; + } + + public Boolean getUserHasStrongPassword() { + return userHasStrongPassword; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField casted = + (CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField) o; + return Objects.equals( + enterpriseHasStrongPasswordRequiredForExternalUsers, + casted.enterpriseHasStrongPasswordRequiredForExternalUsers) + && Objects.equals(userHasStrongPassword, casted.userHasStrongPassword); + } + + @Override + public int hashCode() { + return Objects.hash(enterpriseHasStrongPasswordRequiredForExternalUsers, userHasStrongPassword); + } + + @Override + public String toString() { + return "CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField{" + + "enterpriseHasStrongPasswordRequiredForExternalUsers='" + + enterpriseHasStrongPasswordRequiredForExternalUsers + + '\'' + + ", " + + "userHasStrongPassword='" + + userHasStrongPassword + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean enterpriseHasStrongPasswordRequiredForExternalUsers; + + protected Boolean userHasStrongPassword; + + public Builder enterpriseHasStrongPasswordRequiredForExternalUsers( + Boolean enterpriseHasStrongPasswordRequiredForExternalUsers) { + this.enterpriseHasStrongPasswordRequiredForExternalUsers = + enterpriseHasStrongPasswordRequiredForExternalUsers; + return this; + } + + public Builder userHasStrongPassword(Boolean userHasStrongPassword) { + this.userHasStrongPassword = userHasStrongPassword; + this.markNullableFieldAsSet("user_has_strong_password"); + return this; + } + + public CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField build() { + return new CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField.java b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField.java new file mode 100644 index 000000000..a3bf2e9b4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField.java @@ -0,0 +1,95 @@ +package com.box.sdkgen.schemas.collaboration; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.termsofservicebase.TermsOfServiceBase; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField + extends SerializableObject { + + @JsonProperty("is_accepted") + @Nullable + protected Boolean isAccepted; + + @JsonProperty("terms_of_service") + protected TermsOfServiceBase termsOfService; + + public CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField() { + super(); + } + + protected CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField( + Builder builder) { + super(); + this.isAccepted = builder.isAccepted; + this.termsOfService = builder.termsOfService; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getIsAccepted() { + return isAccepted; + } + + public TermsOfServiceBase getTermsOfService() { + return termsOfService; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField casted = + (CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField) o; + return Objects.equals(isAccepted, casted.isAccepted) + && Objects.equals(termsOfService, casted.termsOfService); + } + + @Override + public int hashCode() { + return Objects.hash(isAccepted, termsOfService); + } + + @Override + public String toString() { + return "CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField{" + + "isAccepted='" + + isAccepted + + '\'' + + ", " + + "termsOfService='" + + termsOfService + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean isAccepted; + + protected TermsOfServiceBase termsOfService; + + public Builder isAccepted(Boolean isAccepted) { + this.isAccepted = isAccepted; + this.markNullableFieldAsSet("is_accepted"); + return this; + } + + public Builder termsOfService(TermsOfServiceBase termsOfService) { + this.termsOfService = termsOfService; + return this; + } + + public CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField build() { + return new CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField.java b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField.java new file mode 100644 index 000000000..fd4277838 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField.java @@ -0,0 +1,99 @@ +package com.box.sdkgen.schemas.collaboration; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField + extends SerializableObject { + + @JsonProperty("enterprise_has_two_factor_auth_enabled") + protected Boolean enterpriseHasTwoFactorAuthEnabled; + + @JsonProperty("user_has_two_factor_authentication_enabled") + @Nullable + protected Boolean userHasTwoFactorAuthenticationEnabled; + + public CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField() { + super(); + } + + protected CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField( + Builder builder) { + super(); + this.enterpriseHasTwoFactorAuthEnabled = builder.enterpriseHasTwoFactorAuthEnabled; + this.userHasTwoFactorAuthenticationEnabled = builder.userHasTwoFactorAuthenticationEnabled; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getEnterpriseHasTwoFactorAuthEnabled() { + return enterpriseHasTwoFactorAuthEnabled; + } + + public Boolean getUserHasTwoFactorAuthenticationEnabled() { + return userHasTwoFactorAuthenticationEnabled; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField casted = + (CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField) o; + return Objects.equals( + enterpriseHasTwoFactorAuthEnabled, casted.enterpriseHasTwoFactorAuthEnabled) + && Objects.equals( + userHasTwoFactorAuthenticationEnabled, casted.userHasTwoFactorAuthenticationEnabled); + } + + @Override + public int hashCode() { + return Objects.hash(enterpriseHasTwoFactorAuthEnabled, userHasTwoFactorAuthenticationEnabled); + } + + @Override + public String toString() { + return "CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField{" + + "enterpriseHasTwoFactorAuthEnabled='" + + enterpriseHasTwoFactorAuthEnabled + + '\'' + + ", " + + "userHasTwoFactorAuthenticationEnabled='" + + userHasTwoFactorAuthenticationEnabled + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean enterpriseHasTwoFactorAuthEnabled; + + protected Boolean userHasTwoFactorAuthenticationEnabled; + + public Builder enterpriseHasTwoFactorAuthEnabled(Boolean enterpriseHasTwoFactorAuthEnabled) { + this.enterpriseHasTwoFactorAuthEnabled = enterpriseHasTwoFactorAuthEnabled; + return this; + } + + public Builder userHasTwoFactorAuthenticationEnabled( + Boolean userHasTwoFactorAuthenticationEnabled) { + this.userHasTwoFactorAuthenticationEnabled = userHasTwoFactorAuthenticationEnabled; + this.markNullableFieldAsSet("user_has_two_factor_authentication_enabled"); + return this; + } + + public CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField + build() { + return new CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField( + this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationRoleField.java b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationRoleField.java new file mode 100644 index 000000000..b3c7e8d33 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationRoleField.java @@ -0,0 +1,69 @@ +package com.box.sdkgen.schemas.collaboration; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CollaborationRoleField implements Valuable { + EDITOR("editor"), + VIEWER("viewer"), + PREVIEWER("previewer"), + UPLOADER("uploader"), + PREVIEWER_UPLOADER("previewer uploader"), + VIEWER_UPLOADER("viewer uploader"), + CO_OWNER("co-owner"), + OWNER("owner"); + + private final String value; + + CollaborationRoleField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CollaborationRoleFieldDeserializer + extends JsonDeserializer> { + + public CollaborationRoleFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CollaborationRoleField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CollaborationRoleFieldSerializer + extends JsonSerializer> { + + public CollaborationRoleFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationStatusField.java b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationStatusField.java new file mode 100644 index 000000000..f59cdcd76 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationStatusField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.collaboration; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CollaborationStatusField implements Valuable { + ACCEPTED("accepted"), + PENDING("pending"), + REJECTED("rejected"); + + private final String value; + + CollaborationStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CollaborationStatusFieldDeserializer + extends JsonDeserializer> { + + public CollaborationStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CollaborationStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CollaborationStatusFieldSerializer + extends JsonSerializer> { + + public CollaborationStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationTypeField.java b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationTypeField.java new file mode 100644 index 000000000..1f2d3c1e6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.collaboration; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CollaborationTypeField implements Valuable { + COLLABORATION("collaboration"); + + private final String value; + + CollaborationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CollaborationTypeFieldDeserializer + extends JsonDeserializer> { + + public CollaborationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CollaborationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CollaborationTypeFieldSerializer + extends JsonSerializer> { + + public CollaborationTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentries/CollaborationAllowlistEntries.java b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentries/CollaborationAllowlistEntries.java new file mode 100644 index 000000000..e936457ac --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentries/CollaborationAllowlistEntries.java @@ -0,0 +1,133 @@ +package com.box.sdkgen.schemas.collaborationallowlistentries; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.collaborationallowlistentry.CollaborationAllowlistEntry; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CollaborationAllowlistEntries extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + protected List entries; + + public CollaborationAllowlistEntries() { + super(); + } + + protected CollaborationAllowlistEntries(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CollaborationAllowlistEntries casted = (CollaborationAllowlistEntries) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "CollaborationAllowlistEntries{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public CollaborationAllowlistEntries build() { + return new CollaborationAllowlistEntries(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntry.java b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntry.java new file mode 100644 index 000000000..53a581efc --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntry.java @@ -0,0 +1,195 @@ +package com.box.sdkgen.schemas.collaborationallowlistentry; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CollaborationAllowlistEntry extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = + CollaborationAllowlistEntryTypeField.CollaborationAllowlistEntryTypeFieldDeserializer + .class) + @JsonSerialize( + using = + CollaborationAllowlistEntryTypeField.CollaborationAllowlistEntryTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String domain; + + @JsonDeserialize( + using = + CollaborationAllowlistEntryDirectionField + .CollaborationAllowlistEntryDirectionFieldDeserializer.class) + @JsonSerialize( + using = + CollaborationAllowlistEntryDirectionField + .CollaborationAllowlistEntryDirectionFieldSerializer.class) + protected EnumWrapper direction; + + protected CollaborationAllowlistEntryEnterpriseField enterprise; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + public CollaborationAllowlistEntry() { + super(); + } + + protected CollaborationAllowlistEntry(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.domain = builder.domain; + this.direction = builder.direction; + this.enterprise = builder.enterprise; + this.createdAt = builder.createdAt; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getDomain() { + return domain; + } + + public EnumWrapper getDirection() { + return direction; + } + + public CollaborationAllowlistEntryEnterpriseField getEnterprise() { + return enterprise; + } + + public Date getCreatedAt() { + return createdAt; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CollaborationAllowlistEntry casted = (CollaborationAllowlistEntry) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(domain, casted.domain) + && Objects.equals(direction, casted.direction) + && Objects.equals(enterprise, casted.enterprise) + && Objects.equals(createdAt, casted.createdAt); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, domain, direction, enterprise, createdAt); + } + + @Override + public String toString() { + return "CollaborationAllowlistEntry{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "domain='" + + domain + + '\'' + + ", " + + "direction='" + + direction + + '\'' + + ", " + + "enterprise='" + + enterprise + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected String domain; + + protected EnumWrapper direction; + + protected CollaborationAllowlistEntryEnterpriseField enterprise; + + protected Date createdAt; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(CollaborationAllowlistEntryTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder domain(String domain) { + this.domain = domain; + return this; + } + + public Builder direction(CollaborationAllowlistEntryDirectionField direction) { + this.direction = new EnumWrapper(direction); + return this; + } + + public Builder direction(EnumWrapper direction) { + this.direction = direction; + return this; + } + + public Builder enterprise(CollaborationAllowlistEntryEnterpriseField enterprise) { + this.enterprise = enterprise; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public CollaborationAllowlistEntry build() { + return new CollaborationAllowlistEntry(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryDirectionField.java b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryDirectionField.java new file mode 100644 index 000000000..e9f1ad5b4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryDirectionField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.collaborationallowlistentry; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CollaborationAllowlistEntryDirectionField implements Valuable { + INBOUND("inbound"), + OUTBOUND("outbound"), + BOTH("both"); + + private final String value; + + CollaborationAllowlistEntryDirectionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CollaborationAllowlistEntryDirectionFieldDeserializer + extends JsonDeserializer> { + + public CollaborationAllowlistEntryDirectionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CollaborationAllowlistEntryDirectionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CollaborationAllowlistEntryDirectionFieldSerializer + extends JsonSerializer> { + + public CollaborationAllowlistEntryDirectionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryEnterpriseField.java b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryEnterpriseField.java new file mode 100644 index 000000000..de71e6c1d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryEnterpriseField.java @@ -0,0 +1,121 @@ +package com.box.sdkgen.schemas.collaborationallowlistentry; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CollaborationAllowlistEntryEnterpriseField extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = + CollaborationAllowlistEntryEnterpriseTypeField + .CollaborationAllowlistEntryEnterpriseTypeFieldDeserializer.class) + @JsonSerialize( + using = + CollaborationAllowlistEntryEnterpriseTypeField + .CollaborationAllowlistEntryEnterpriseTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String name; + + public CollaborationAllowlistEntryEnterpriseField() { + super(); + } + + protected CollaborationAllowlistEntryEnterpriseField(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.name = builder.name; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CollaborationAllowlistEntryEnterpriseField casted = + (CollaborationAllowlistEntryEnterpriseField) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name); + } + + @Override + public String toString() { + return "CollaborationAllowlistEntryEnterpriseField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected String name; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(CollaborationAllowlistEntryEnterpriseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public CollaborationAllowlistEntryEnterpriseField build() { + return new CollaborationAllowlistEntryEnterpriseField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryEnterpriseTypeField.java b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryEnterpriseTypeField.java new file mode 100644 index 000000000..66e550511 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryEnterpriseTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.collaborationallowlistentry; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CollaborationAllowlistEntryEnterpriseTypeField implements Valuable { + ENTERPRISE("enterprise"); + + private final String value; + + CollaborationAllowlistEntryEnterpriseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CollaborationAllowlistEntryEnterpriseTypeFieldDeserializer + extends JsonDeserializer> { + + public CollaborationAllowlistEntryEnterpriseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CollaborationAllowlistEntryEnterpriseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CollaborationAllowlistEntryEnterpriseTypeFieldSerializer + extends JsonSerializer> { + + public CollaborationAllowlistEntryEnterpriseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryTypeField.java b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryTypeField.java new file mode 100644 index 000000000..5ab1e97fc --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.collaborationallowlistentry; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CollaborationAllowlistEntryTypeField implements Valuable { + COLLABORATION_WHITELIST_ENTRY("collaboration_whitelist_entry"); + + private final String value; + + CollaborationAllowlistEntryTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CollaborationAllowlistEntryTypeFieldDeserializer + extends JsonDeserializer> { + + public CollaborationAllowlistEntryTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CollaborationAllowlistEntryTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CollaborationAllowlistEntryTypeFieldSerializer + extends JsonSerializer> { + + public CollaborationAllowlistEntryTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTarget.java b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTarget.java new file mode 100644 index 000000000..ec5377520 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTarget.java @@ -0,0 +1,187 @@ +package com.box.sdkgen.schemas.collaborationallowlistexempttarget; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CollaborationAllowlistExemptTarget extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = + CollaborationAllowlistExemptTargetTypeField + .CollaborationAllowlistExemptTargetTypeFieldDeserializer.class) + @JsonSerialize( + using = + CollaborationAllowlistExemptTargetTypeField + .CollaborationAllowlistExemptTargetTypeFieldSerializer.class) + protected EnumWrapper type; + + protected CollaborationAllowlistExemptTargetEnterpriseField enterprise; + + protected UserMini user; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date modifiedAt; + + public CollaborationAllowlistExemptTarget() { + super(); + } + + protected CollaborationAllowlistExemptTarget(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.enterprise = builder.enterprise; + this.user = builder.user; + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public CollaborationAllowlistExemptTargetEnterpriseField getEnterprise() { + return enterprise; + } + + public UserMini getUser() { + return user; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CollaborationAllowlistExemptTarget casted = (CollaborationAllowlistExemptTarget) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(enterprise, casted.enterprise) + && Objects.equals(user, casted.user) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, enterprise, user, createdAt, modifiedAt); + } + + @Override + public String toString() { + return "CollaborationAllowlistExemptTarget{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "enterprise='" + + enterprise + + '\'' + + ", " + + "user='" + + user + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected CollaborationAllowlistExemptTargetEnterpriseField enterprise; + + protected UserMini user; + + protected Date createdAt; + + protected Date modifiedAt; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(CollaborationAllowlistExemptTargetTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder enterprise(CollaborationAllowlistExemptTargetEnterpriseField enterprise) { + this.enterprise = enterprise; + return this; + } + + public Builder user(UserMini user) { + this.user = user; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + public CollaborationAllowlistExemptTarget build() { + return new CollaborationAllowlistExemptTarget(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTargetEnterpriseField.java b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTargetEnterpriseField.java new file mode 100644 index 000000000..099dcc04b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTargetEnterpriseField.java @@ -0,0 +1,121 @@ +package com.box.sdkgen.schemas.collaborationallowlistexempttarget; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CollaborationAllowlistExemptTargetEnterpriseField extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = + CollaborationAllowlistExemptTargetEnterpriseTypeField + .CollaborationAllowlistExemptTargetEnterpriseTypeFieldDeserializer.class) + @JsonSerialize( + using = + CollaborationAllowlistExemptTargetEnterpriseTypeField + .CollaborationAllowlistExemptTargetEnterpriseTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String name; + + public CollaborationAllowlistExemptTargetEnterpriseField() { + super(); + } + + protected CollaborationAllowlistExemptTargetEnterpriseField(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.name = builder.name; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CollaborationAllowlistExemptTargetEnterpriseField casted = + (CollaborationAllowlistExemptTargetEnterpriseField) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name); + } + + @Override + public String toString() { + return "CollaborationAllowlistExemptTargetEnterpriseField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected String name; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(CollaborationAllowlistExemptTargetEnterpriseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public CollaborationAllowlistExemptTargetEnterpriseField build() { + return new CollaborationAllowlistExemptTargetEnterpriseField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTargetEnterpriseTypeField.java b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTargetEnterpriseTypeField.java new file mode 100644 index 000000000..d3d5ed3ea --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTargetEnterpriseTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.collaborationallowlistexempttarget; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CollaborationAllowlistExemptTargetEnterpriseTypeField implements Valuable { + ENTERPRISE("enterprise"); + + private final String value; + + CollaborationAllowlistExemptTargetEnterpriseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CollaborationAllowlistExemptTargetEnterpriseTypeFieldDeserializer + extends JsonDeserializer> { + + public CollaborationAllowlistExemptTargetEnterpriseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CollaborationAllowlistExemptTargetEnterpriseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CollaborationAllowlistExemptTargetEnterpriseTypeFieldSerializer + extends JsonSerializer> { + + public CollaborationAllowlistExemptTargetEnterpriseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTargetTypeField.java b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTargetTypeField.java new file mode 100644 index 000000000..a0e426db3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTargetTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.collaborationallowlistexempttarget; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CollaborationAllowlistExemptTargetTypeField implements Valuable { + COLLABORATION_WHITELIST_EXEMPT_TARGET("collaboration_whitelist_exempt_target"); + + private final String value; + + CollaborationAllowlistExemptTargetTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CollaborationAllowlistExemptTargetTypeFieldDeserializer + extends JsonDeserializer> { + + public CollaborationAllowlistExemptTargetTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CollaborationAllowlistExemptTargetTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CollaborationAllowlistExemptTargetTypeFieldSerializer + extends JsonSerializer> { + + public CollaborationAllowlistExemptTargetTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargets.java b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargets.java new file mode 100644 index 000000000..23ef65bab --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargets.java @@ -0,0 +1,133 @@ +package com.box.sdkgen.schemas.collaborationallowlistexempttargets; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.collaborationallowlistexempttarget.CollaborationAllowlistExemptTarget; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CollaborationAllowlistExemptTargets extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + protected List entries; + + public CollaborationAllowlistExemptTargets() { + super(); + } + + protected CollaborationAllowlistExemptTargets(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CollaborationAllowlistExemptTargets casted = (CollaborationAllowlistExemptTargets) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "CollaborationAllowlistExemptTargets{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public CollaborationAllowlistExemptTargets build() { + return new CollaborationAllowlistExemptTargets(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaborations/Collaborations.java b/src/main/java/com/box/sdkgen/schemas/collaborations/Collaborations.java new file mode 100644 index 000000000..e810cc4b8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaborations/Collaborations.java @@ -0,0 +1,133 @@ +package com.box.sdkgen.schemas.collaborations; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.collaboration.Collaboration; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Collaborations extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + protected List entries; + + public Collaborations() { + super(); + } + + protected Collaborations(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Collaborations casted = (Collaborations) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "Collaborations{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public Collaborations build() { + return new Collaborations(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationsoffsetpaginated/CollaborationsOffsetPaginated.java b/src/main/java/com/box/sdkgen/schemas/collaborationsoffsetpaginated/CollaborationsOffsetPaginated.java new file mode 100644 index 000000000..a55b7b0de --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaborationsoffsetpaginated/CollaborationsOffsetPaginated.java @@ -0,0 +1,127 @@ +package com.box.sdkgen.schemas.collaborationsoffsetpaginated; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.collaboration.Collaboration; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CollaborationsOffsetPaginated extends SerializableObject { + + @JsonProperty("total_count") + protected Long totalCount; + + protected Long limit; + + protected Long offset; + + protected List entries; + + public CollaborationsOffsetPaginated() { + super(); + } + + protected CollaborationsOffsetPaginated(Builder builder) { + super(); + this.totalCount = builder.totalCount; + this.limit = builder.limit; + this.offset = builder.offset; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getTotalCount() { + return totalCount; + } + + public Long getLimit() { + return limit; + } + + public Long getOffset() { + return offset; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CollaborationsOffsetPaginated casted = (CollaborationsOffsetPaginated) o; + return Objects.equals(totalCount, casted.totalCount) + && Objects.equals(limit, casted.limit) + && Objects.equals(offset, casted.offset) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, limit, offset, entries); + } + + @Override + public String toString() { + return "CollaborationsOffsetPaginated{" + + "totalCount='" + + totalCount + + '\'' + + ", " + + "limit='" + + limit + + '\'' + + ", " + + "offset='" + + offset + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long totalCount; + + protected Long limit; + + protected Long offset; + + protected List entries; + + public Builder totalCount(Long totalCount) { + this.totalCount = totalCount; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public CollaborationsOffsetPaginated build() { + return new CollaborationsOffsetPaginated(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariable.java b/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariable.java new file mode 100644 index 000000000..76fe54006 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariable.java @@ -0,0 +1,145 @@ +package com.box.sdkgen.schemas.collaboratorvariable; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CollaboratorVariable extends SerializableObject { + + @JsonDeserialize( + using = CollaboratorVariableTypeField.CollaboratorVariableTypeFieldDeserializer.class) + @JsonSerialize( + using = CollaboratorVariableTypeField.CollaboratorVariableTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonDeserialize( + using = + CollaboratorVariableVariableTypeField.CollaboratorVariableVariableTypeFieldDeserializer + .class) + @JsonSerialize( + using = + CollaboratorVariableVariableTypeField.CollaboratorVariableVariableTypeFieldSerializer + .class) + @JsonProperty("variable_type") + protected EnumWrapper variableType; + + @JsonProperty("variable_value") + protected final List variableValue; + + public CollaboratorVariable( + @JsonProperty("variable_value") List variableValue) { + super(); + this.variableValue = variableValue; + this.type = + new EnumWrapper(CollaboratorVariableTypeField.VARIABLE); + this.variableType = + new EnumWrapper( + CollaboratorVariableVariableTypeField.USER_LIST); + } + + protected CollaboratorVariable(Builder builder) { + super(); + this.type = builder.type; + this.variableType = builder.variableType; + this.variableValue = builder.variableValue; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public EnumWrapper getVariableType() { + return variableType; + } + + public List getVariableValue() { + return variableValue; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CollaboratorVariable casted = (CollaboratorVariable) o; + return Objects.equals(type, casted.type) + && Objects.equals(variableType, casted.variableType) + && Objects.equals(variableValue, casted.variableValue); + } + + @Override + public int hashCode() { + return Objects.hash(type, variableType, variableValue); + } + + @Override + public String toString() { + return "CollaboratorVariable{" + + "type='" + + type + + '\'' + + ", " + + "variableType='" + + variableType + + '\'' + + ", " + + "variableValue='" + + variableValue + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected EnumWrapper variableType; + + protected final List variableValue; + + public Builder(List variableValue) { + super(); + this.variableValue = variableValue; + this.type = + new EnumWrapper(CollaboratorVariableTypeField.VARIABLE); + this.variableType = + new EnumWrapper( + CollaboratorVariableVariableTypeField.USER_LIST); + } + + public Builder type(CollaboratorVariableTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder variableType(CollaboratorVariableVariableTypeField variableType) { + this.variableType = new EnumWrapper(variableType); + return this; + } + + public Builder variableType(EnumWrapper variableType) { + this.variableType = variableType; + return this; + } + + public CollaboratorVariable build() { + return new CollaboratorVariable(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableTypeField.java b/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableTypeField.java new file mode 100644 index 000000000..9e7b515f8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.collaboratorvariable; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CollaboratorVariableTypeField implements Valuable { + VARIABLE("variable"); + + private final String value; + + CollaboratorVariableTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CollaboratorVariableTypeFieldDeserializer + extends JsonDeserializer> { + + public CollaboratorVariableTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CollaboratorVariableTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CollaboratorVariableTypeFieldSerializer + extends JsonSerializer> { + + public CollaboratorVariableTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableTypeField.java b/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableTypeField.java new file mode 100644 index 000000000..6dd67779f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.collaboratorvariable; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CollaboratorVariableVariableTypeField implements Valuable { + USER_LIST("user_list"); + + private final String value; + + CollaboratorVariableVariableTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CollaboratorVariableVariableTypeFieldDeserializer + extends JsonDeserializer> { + + public CollaboratorVariableVariableTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CollaboratorVariableVariableTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CollaboratorVariableVariableTypeFieldSerializer + extends JsonSerializer> { + + public CollaboratorVariableVariableTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableValueField.java b/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableValueField.java new file mode 100644 index 000000000..4d1d1ac66 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableValueField.java @@ -0,0 +1,108 @@ +package com.box.sdkgen.schemas.collaboratorvariable; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CollaboratorVariableVariableValueField extends SerializableObject { + + @JsonDeserialize( + using = + CollaboratorVariableVariableValueTypeField + .CollaboratorVariableVariableValueTypeFieldDeserializer.class) + @JsonSerialize( + using = + CollaboratorVariableVariableValueTypeField + .CollaboratorVariableVariableValueTypeFieldSerializer.class) + protected EnumWrapper type; + + protected final String id; + + public CollaboratorVariableVariableValueField(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + CollaboratorVariableVariableValueTypeField.USER); + } + + protected CollaboratorVariableVariableValueField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CollaboratorVariableVariableValueField casted = (CollaboratorVariableVariableValueField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "CollaboratorVariableVariableValueField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + CollaboratorVariableVariableValueTypeField.USER); + } + + public Builder type(CollaboratorVariableVariableValueTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public CollaboratorVariableVariableValueField build() { + return new CollaboratorVariableVariableValueField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableValueTypeField.java b/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableValueTypeField.java new file mode 100644 index 000000000..b19320522 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableValueTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.collaboratorvariable; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CollaboratorVariableVariableValueTypeField implements Valuable { + USER("user"); + + private final String value; + + CollaboratorVariableVariableValueTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CollaboratorVariableVariableValueTypeFieldDeserializer + extends JsonDeserializer> { + + public CollaboratorVariableVariableValueTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CollaboratorVariableVariableValueTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CollaboratorVariableVariableValueTypeFieldSerializer + extends JsonSerializer> { + + public CollaboratorVariableVariableValueTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collection/Collection.java b/src/main/java/com/box/sdkgen/schemas/collection/Collection.java new file mode 100644 index 000000000..292e689fb --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collection/Collection.java @@ -0,0 +1,151 @@ +package com.box.sdkgen.schemas.collection; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Collection extends SerializableObject { + + protected String id; + + @JsonDeserialize(using = CollectionTypeField.CollectionTypeFieldDeserializer.class) + @JsonSerialize(using = CollectionTypeField.CollectionTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonDeserialize(using = CollectionNameField.CollectionNameFieldDeserializer.class) + @JsonSerialize(using = CollectionNameField.CollectionNameFieldSerializer.class) + protected EnumWrapper name; + + @JsonDeserialize( + using = CollectionCollectionTypeField.CollectionCollectionTypeFieldDeserializer.class) + @JsonSerialize( + using = CollectionCollectionTypeField.CollectionCollectionTypeFieldSerializer.class) + @JsonProperty("collection_type") + protected EnumWrapper collectionType; + + public Collection() { + super(); + } + + protected Collection(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.name = builder.name; + this.collectionType = builder.collectionType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public EnumWrapper getName() { + return name; + } + + public EnumWrapper getCollectionType() { + return collectionType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Collection casted = (Collection) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name) + && Objects.equals(collectionType, casted.collectionType); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name, collectionType); + } + + @Override + public String toString() { + return "Collection{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "collectionType='" + + collectionType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected EnumWrapper name; + + protected EnumWrapper collectionType; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(CollectionTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder name(CollectionNameField name) { + this.name = new EnumWrapper(name); + return this; + } + + public Builder name(EnumWrapper name) { + this.name = name; + return this; + } + + public Builder collectionType(CollectionCollectionTypeField collectionType) { + this.collectionType = new EnumWrapper(collectionType); + return this; + } + + public Builder collectionType(EnumWrapper collectionType) { + this.collectionType = collectionType; + return this; + } + + public Collection build() { + return new Collection(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collection/CollectionCollectionTypeField.java b/src/main/java/com/box/sdkgen/schemas/collection/CollectionCollectionTypeField.java new file mode 100644 index 000000000..0adb03a3c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collection/CollectionCollectionTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.collection; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CollectionCollectionTypeField implements Valuable { + FAVORITES("favorites"); + + private final String value; + + CollectionCollectionTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CollectionCollectionTypeFieldDeserializer + extends JsonDeserializer> { + + public CollectionCollectionTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CollectionCollectionTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CollectionCollectionTypeFieldSerializer + extends JsonSerializer> { + + public CollectionCollectionTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collection/CollectionNameField.java b/src/main/java/com/box/sdkgen/schemas/collection/CollectionNameField.java new file mode 100644 index 000000000..f9a828120 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collection/CollectionNameField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.collection; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CollectionNameField implements Valuable { + FAVORITES("Favorites"); + + private final String value; + + CollectionNameField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CollectionNameFieldDeserializer + extends JsonDeserializer> { + + public CollectionNameFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CollectionNameField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CollectionNameFieldSerializer + extends JsonSerializer> { + + public CollectionNameFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collection/CollectionTypeField.java b/src/main/java/com/box/sdkgen/schemas/collection/CollectionTypeField.java new file mode 100644 index 000000000..d2e243cac --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collection/CollectionTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.collection; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CollectionTypeField implements Valuable { + COLLECTION("collection"); + + private final String value; + + CollectionTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CollectionTypeFieldDeserializer + extends JsonDeserializer> { + + public CollectionTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CollectionTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CollectionTypeFieldSerializer + extends JsonSerializer> { + + public CollectionTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collections/Collections.java b/src/main/java/com/box/sdkgen/schemas/collections/Collections.java new file mode 100644 index 000000000..8fe7d34c2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collections/Collections.java @@ -0,0 +1,146 @@ +package com.box.sdkgen.schemas.collections; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.collection.Collection; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Collections extends SerializableObject { + + @JsonProperty("total_count") + protected Long totalCount; + + protected Long limit; + + protected Long offset; + + protected List order; + + protected List entries; + + public Collections() { + super(); + } + + protected Collections(Builder builder) { + super(); + this.totalCount = builder.totalCount; + this.limit = builder.limit; + this.offset = builder.offset; + this.order = builder.order; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getTotalCount() { + return totalCount; + } + + public Long getLimit() { + return limit; + } + + public Long getOffset() { + return offset; + } + + public List getOrder() { + return order; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Collections casted = (Collections) o; + return Objects.equals(totalCount, casted.totalCount) + && Objects.equals(limit, casted.limit) + && Objects.equals(offset, casted.offset) + && Objects.equals(order, casted.order) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, limit, offset, order, entries); + } + + @Override + public String toString() { + return "Collections{" + + "totalCount='" + + totalCount + + '\'' + + ", " + + "limit='" + + limit + + '\'' + + ", " + + "offset='" + + offset + + '\'' + + ", " + + "order='" + + order + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long totalCount; + + protected Long limit; + + protected Long offset; + + protected List order; + + protected List entries; + + public Builder totalCount(Long totalCount) { + this.totalCount = totalCount; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public Builder order(List order) { + this.order = order; + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public Collections build() { + return new Collections(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collections/CollectionsOrderDirectionField.java b/src/main/java/com/box/sdkgen/schemas/collections/CollectionsOrderDirectionField.java new file mode 100644 index 000000000..aea5f1647 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collections/CollectionsOrderDirectionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.collections; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CollectionsOrderDirectionField implements Valuable { + ASC("ASC"), + DESC("DESC"); + + private final String value; + + CollectionsOrderDirectionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CollectionsOrderDirectionFieldDeserializer + extends JsonDeserializer> { + + public CollectionsOrderDirectionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CollectionsOrderDirectionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CollectionsOrderDirectionFieldSerializer + extends JsonSerializer> { + + public CollectionsOrderDirectionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collections/CollectionsOrderField.java b/src/main/java/com/box/sdkgen/schemas/collections/CollectionsOrderField.java new file mode 100644 index 000000000..eec2fc632 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/collections/CollectionsOrderField.java @@ -0,0 +1,96 @@ +package com.box.sdkgen.schemas.collections; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CollectionsOrderField extends SerializableObject { + + protected String by; + + @JsonDeserialize( + using = CollectionsOrderDirectionField.CollectionsOrderDirectionFieldDeserializer.class) + @JsonSerialize( + using = CollectionsOrderDirectionField.CollectionsOrderDirectionFieldSerializer.class) + protected EnumWrapper direction; + + public CollectionsOrderField() { + super(); + } + + protected CollectionsOrderField(Builder builder) { + super(); + this.by = builder.by; + this.direction = builder.direction; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getBy() { + return by; + } + + public EnumWrapper getDirection() { + return direction; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CollectionsOrderField casted = (CollectionsOrderField) o; + return Objects.equals(by, casted.by) && Objects.equals(direction, casted.direction); + } + + @Override + public int hashCode() { + return Objects.hash(by, direction); + } + + @Override + public String toString() { + return "CollectionsOrderField{" + + "by='" + + by + + '\'' + + ", " + + "direction='" + + direction + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String by; + + protected EnumWrapper direction; + + public Builder by(String by) { + this.by = by; + return this; + } + + public Builder direction(CollectionsOrderDirectionField direction) { + this.direction = new EnumWrapper(direction); + return this; + } + + public Builder direction(EnumWrapper direction) { + this.direction = direction; + return this; + } + + public CollectionsOrderField build() { + return new CollectionsOrderField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/comment/Comment.java b/src/main/java/com/box/sdkgen/schemas/comment/Comment.java new file mode 100644 index 000000000..4939eb86f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/comment/Comment.java @@ -0,0 +1,204 @@ +package com.box.sdkgen.schemas.comment; + +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.commentbase.CommentBase; +import com.box.sdkgen.schemas.commentbase.CommentBaseTypeField; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Comment extends CommentBase { + + @JsonProperty("is_reply_comment") + protected Boolean isReplyComment; + + protected String message; + + @JsonProperty("created_by") + protected UserMini createdBy; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date modifiedAt; + + protected CommentItemField item; + + public Comment() { + super(); + } + + protected Comment(Builder builder) { + super(builder); + this.isReplyComment = builder.isReplyComment; + this.message = builder.message; + this.createdBy = builder.createdBy; + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + this.item = builder.item; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getIsReplyComment() { + return isReplyComment; + } + + public String getMessage() { + return message; + } + + public UserMini getCreatedBy() { + return createdBy; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + public CommentItemField getItem() { + return item; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Comment casted = (Comment) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(isReplyComment, casted.isReplyComment) + && Objects.equals(message, casted.message) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt) + && Objects.equals(item, casted.item); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, isReplyComment, message, createdBy, createdAt, modifiedAt, item); + } + + @Override + public String toString() { + return "Comment{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "isReplyComment='" + + isReplyComment + + '\'' + + ", " + + "message='" + + message + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + ", " + + "item='" + + item + + '\'' + + "}"; + } + + public static class Builder extends CommentBase.Builder { + + protected Boolean isReplyComment; + + protected String message; + + protected UserMini createdBy; + + protected Date createdAt; + + protected Date modifiedAt; + + protected CommentItemField item; + + public Builder isReplyComment(Boolean isReplyComment) { + this.isReplyComment = isReplyComment; + return this; + } + + public Builder message(String message) { + this.message = message; + return this; + } + + public Builder createdBy(UserMini createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + public Builder item(CommentItemField item) { + this.item = item; + return this; + } + + @Override + public Builder id(String id) { + this.id = id; + return this; + } + + @Override + public Builder type(CommentBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Comment build() { + return new Comment(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/comment/CommentItemField.java b/src/main/java/com/box/sdkgen/schemas/comment/CommentItemField.java new file mode 100644 index 000000000..df27a53ef --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/comment/CommentItemField.java @@ -0,0 +1,76 @@ +package com.box.sdkgen.schemas.comment; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CommentItemField extends SerializableObject { + + protected String id; + + protected String type; + + public CommentItemField() { + super(); + } + + protected CommentItemField(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CommentItemField casted = (CommentItemField) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "CommentItemField{" + "id='" + id + '\'' + ", " + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected String type; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(String type) { + this.type = type; + return this; + } + + public CommentItemField build() { + return new CommentItemField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/commentbase/CommentBase.java b/src/main/java/com/box/sdkgen/schemas/commentbase/CommentBase.java new file mode 100644 index 000000000..9016f73d8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/commentbase/CommentBase.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.schemas.commentbase; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CommentBase extends SerializableObject { + + protected String id; + + @JsonDeserialize(using = CommentBaseTypeField.CommentBaseTypeFieldDeserializer.class) + @JsonSerialize(using = CommentBaseTypeField.CommentBaseTypeFieldSerializer.class) + protected EnumWrapper type; + + public CommentBase() { + super(); + } + + protected CommentBase(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CommentBase casted = (CommentBase) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "CommentBase{" + "id='" + id + '\'' + ", " + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(CommentBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public CommentBase build() { + return new CommentBase(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/commentbase/CommentBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/commentbase/CommentBaseTypeField.java new file mode 100644 index 000000000..74e8e205a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/commentbase/CommentBaseTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.commentbase; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CommentBaseTypeField implements Valuable { + COMMENT("comment"); + + private final String value; + + CommentBaseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CommentBaseTypeFieldDeserializer + extends JsonDeserializer> { + + public CommentBaseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CommentBaseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CommentBaseTypeFieldSerializer + extends JsonSerializer> { + + public CommentBaseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/commentfull/CommentFull.java b/src/main/java/com/box/sdkgen/schemas/commentfull/CommentFull.java new file mode 100644 index 000000000..d57ff6d56 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/commentfull/CommentFull.java @@ -0,0 +1,167 @@ +package com.box.sdkgen.schemas.commentfull; + +import com.box.sdkgen.schemas.comment.Comment; +import com.box.sdkgen.schemas.comment.CommentItemField; +import com.box.sdkgen.schemas.commentbase.CommentBaseTypeField; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CommentFull extends Comment { + + @JsonProperty("tagged_message") + protected String taggedMessage; + + public CommentFull() { + super(); + } + + protected CommentFull(Builder builder) { + super(builder); + this.taggedMessage = builder.taggedMessage; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getTaggedMessage() { + return taggedMessage; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CommentFull casted = (CommentFull) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(isReplyComment, casted.isReplyComment) + && Objects.equals(message, casted.message) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt) + && Objects.equals(item, casted.item) + && Objects.equals(taggedMessage, casted.taggedMessage); + } + + @Override + public int hashCode() { + return Objects.hash( + id, type, isReplyComment, message, createdBy, createdAt, modifiedAt, item, taggedMessage); + } + + @Override + public String toString() { + return "CommentFull{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "isReplyComment='" + + isReplyComment + + '\'' + + ", " + + "message='" + + message + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + ", " + + "item='" + + item + + '\'' + + ", " + + "taggedMessage='" + + taggedMessage + + '\'' + + "}"; + } + + public static class Builder extends Comment.Builder { + + protected String taggedMessage; + + public Builder taggedMessage(String taggedMessage) { + this.taggedMessage = taggedMessage; + return this; + } + + @Override + public Builder id(String id) { + this.id = id; + return this; + } + + @Override + public Builder type(CommentBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder isReplyComment(Boolean isReplyComment) { + this.isReplyComment = isReplyComment; + return this; + } + + @Override + public Builder message(String message) { + this.message = message; + return this; + } + + @Override + public Builder createdBy(UserMini createdBy) { + this.createdBy = createdBy; + return this; + } + + @Override + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + @Override + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + @Override + public Builder item(CommentItemField item) { + this.item = item; + return this; + } + + public CommentFull build() { + return new CommentFull(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/comments/Comments.java b/src/main/java/com/box/sdkgen/schemas/comments/Comments.java new file mode 100644 index 000000000..de0059d8c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/comments/Comments.java @@ -0,0 +1,146 @@ +package com.box.sdkgen.schemas.comments; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.commentfull.CommentFull; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Comments extends SerializableObject { + + @JsonProperty("total_count") + protected Long totalCount; + + protected Long limit; + + protected Long offset; + + protected List order; + + protected List entries; + + public Comments() { + super(); + } + + protected Comments(Builder builder) { + super(); + this.totalCount = builder.totalCount; + this.limit = builder.limit; + this.offset = builder.offset; + this.order = builder.order; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getTotalCount() { + return totalCount; + } + + public Long getLimit() { + return limit; + } + + public Long getOffset() { + return offset; + } + + public List getOrder() { + return order; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Comments casted = (Comments) o; + return Objects.equals(totalCount, casted.totalCount) + && Objects.equals(limit, casted.limit) + && Objects.equals(offset, casted.offset) + && Objects.equals(order, casted.order) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, limit, offset, order, entries); + } + + @Override + public String toString() { + return "Comments{" + + "totalCount='" + + totalCount + + '\'' + + ", " + + "limit='" + + limit + + '\'' + + ", " + + "offset='" + + offset + + '\'' + + ", " + + "order='" + + order + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long totalCount; + + protected Long limit; + + protected Long offset; + + protected List order; + + protected List entries; + + public Builder totalCount(Long totalCount) { + this.totalCount = totalCount; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public Builder order(List order) { + this.order = order; + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public Comments build() { + return new Comments(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/comments/CommentsOrderDirectionField.java b/src/main/java/com/box/sdkgen/schemas/comments/CommentsOrderDirectionField.java new file mode 100644 index 000000000..daca96129 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/comments/CommentsOrderDirectionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.comments; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CommentsOrderDirectionField implements Valuable { + ASC("ASC"), + DESC("DESC"); + + private final String value; + + CommentsOrderDirectionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CommentsOrderDirectionFieldDeserializer + extends JsonDeserializer> { + + public CommentsOrderDirectionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CommentsOrderDirectionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CommentsOrderDirectionFieldSerializer + extends JsonSerializer> { + + public CommentsOrderDirectionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/comments/CommentsOrderField.java b/src/main/java/com/box/sdkgen/schemas/comments/CommentsOrderField.java new file mode 100644 index 000000000..af4bf8c37 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/comments/CommentsOrderField.java @@ -0,0 +1,95 @@ +package com.box.sdkgen.schemas.comments; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CommentsOrderField extends SerializableObject { + + protected String by; + + @JsonDeserialize( + using = CommentsOrderDirectionField.CommentsOrderDirectionFieldDeserializer.class) + @JsonSerialize(using = CommentsOrderDirectionField.CommentsOrderDirectionFieldSerializer.class) + protected EnumWrapper direction; + + public CommentsOrderField() { + super(); + } + + protected CommentsOrderField(Builder builder) { + super(); + this.by = builder.by; + this.direction = builder.direction; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getBy() { + return by; + } + + public EnumWrapper getDirection() { + return direction; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CommentsOrderField casted = (CommentsOrderField) o; + return Objects.equals(by, casted.by) && Objects.equals(direction, casted.direction); + } + + @Override + public int hashCode() { + return Objects.hash(by, direction); + } + + @Override + public String toString() { + return "CommentsOrderField{" + + "by='" + + by + + '\'' + + ", " + + "direction='" + + direction + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String by; + + protected EnumWrapper direction; + + public Builder by(String by) { + this.by = by; + return this; + } + + public Builder direction(CommentsOrderDirectionField direction) { + this.direction = new EnumWrapper(direction); + return this; + } + + public Builder direction(EnumWrapper direction) { + this.direction = direction; + return this; + } + + public CommentsOrderField build() { + return new CommentsOrderField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariable.java b/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariable.java new file mode 100644 index 000000000..cc3835224 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariable.java @@ -0,0 +1,175 @@ +package com.box.sdkgen.schemas.completionrulevariable; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CompletionRuleVariable extends SerializableObject { + + @JsonDeserialize( + using = CompletionRuleVariableTypeField.CompletionRuleVariableTypeFieldDeserializer.class) + @JsonSerialize( + using = CompletionRuleVariableTypeField.CompletionRuleVariableTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonDeserialize( + using = + CompletionRuleVariableVariableTypeField + .CompletionRuleVariableVariableTypeFieldDeserializer.class) + @JsonSerialize( + using = + CompletionRuleVariableVariableTypeField.CompletionRuleVariableVariableTypeFieldSerializer + .class) + @JsonProperty("variable_type") + protected EnumWrapper variableType; + + @JsonDeserialize( + using = + CompletionRuleVariableVariableValueField + .CompletionRuleVariableVariableValueFieldDeserializer.class) + @JsonSerialize( + using = + CompletionRuleVariableVariableValueField + .CompletionRuleVariableVariableValueFieldSerializer.class) + @JsonProperty("variable_value") + protected final EnumWrapper variableValue; + + public CompletionRuleVariable(CompletionRuleVariableVariableValueField variableValue) { + super(); + this.variableValue = new EnumWrapper(variableValue); + this.type = + new EnumWrapper(CompletionRuleVariableTypeField.VARIABLE); + this.variableType = + new EnumWrapper( + CompletionRuleVariableVariableTypeField.TASK_COMPLETION_RULE); + } + + public CompletionRuleVariable( + @JsonProperty("variable_value") + EnumWrapper variableValue) { + super(); + this.variableValue = variableValue; + this.type = + new EnumWrapper(CompletionRuleVariableTypeField.VARIABLE); + this.variableType = + new EnumWrapper( + CompletionRuleVariableVariableTypeField.TASK_COMPLETION_RULE); + } + + protected CompletionRuleVariable(Builder builder) { + super(); + this.type = builder.type; + this.variableType = builder.variableType; + this.variableValue = builder.variableValue; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public EnumWrapper getVariableType() { + return variableType; + } + + public EnumWrapper getVariableValue() { + return variableValue; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CompletionRuleVariable casted = (CompletionRuleVariable) o; + return Objects.equals(type, casted.type) + && Objects.equals(variableType, casted.variableType) + && Objects.equals(variableValue, casted.variableValue); + } + + @Override + public int hashCode() { + return Objects.hash(type, variableType, variableValue); + } + + @Override + public String toString() { + return "CompletionRuleVariable{" + + "type='" + + type + + '\'' + + ", " + + "variableType='" + + variableType + + '\'' + + ", " + + "variableValue='" + + variableValue + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected EnumWrapper variableType; + + protected final EnumWrapper variableValue; + + public Builder(CompletionRuleVariableVariableValueField variableValue) { + super(); + this.variableValue = new EnumWrapper(variableValue); + this.type = + new EnumWrapper( + CompletionRuleVariableTypeField.VARIABLE); + this.variableType = + new EnumWrapper( + CompletionRuleVariableVariableTypeField.TASK_COMPLETION_RULE); + } + + public Builder(EnumWrapper variableValue) { + super(); + this.variableValue = variableValue; + this.type = + new EnumWrapper( + CompletionRuleVariableTypeField.VARIABLE); + this.variableType = + new EnumWrapper( + CompletionRuleVariableVariableTypeField.TASK_COMPLETION_RULE); + } + + public Builder type(CompletionRuleVariableTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder variableType(CompletionRuleVariableVariableTypeField variableType) { + this.variableType = new EnumWrapper(variableType); + return this; + } + + public Builder variableType(EnumWrapper variableType) { + this.variableType = variableType; + return this; + } + + public CompletionRuleVariable build() { + return new CompletionRuleVariable(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariableTypeField.java b/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariableTypeField.java new file mode 100644 index 000000000..4439cd225 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariableTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.completionrulevariable; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CompletionRuleVariableTypeField implements Valuable { + VARIABLE("variable"); + + private final String value; + + CompletionRuleVariableTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CompletionRuleVariableTypeFieldDeserializer + extends JsonDeserializer> { + + public CompletionRuleVariableTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CompletionRuleVariableTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CompletionRuleVariableTypeFieldSerializer + extends JsonSerializer> { + + public CompletionRuleVariableTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariableVariableTypeField.java b/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariableVariableTypeField.java new file mode 100644 index 000000000..84d6dd3d1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariableVariableTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.completionrulevariable; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CompletionRuleVariableVariableTypeField implements Valuable { + TASK_COMPLETION_RULE("task_completion_rule"); + + private final String value; + + CompletionRuleVariableVariableTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CompletionRuleVariableVariableTypeFieldDeserializer + extends JsonDeserializer> { + + public CompletionRuleVariableVariableTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CompletionRuleVariableVariableTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CompletionRuleVariableVariableTypeFieldSerializer + extends JsonSerializer> { + + public CompletionRuleVariableVariableTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariableVariableValueField.java b/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariableVariableValueField.java new file mode 100644 index 000000000..e29f419f4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariableVariableValueField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.completionrulevariable; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CompletionRuleVariableVariableValueField implements Valuable { + ALL_ASSIGNEES("all_assignees"), + ANY_ASSIGNEES("any_assignees"); + + private final String value; + + CompletionRuleVariableVariableValueField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CompletionRuleVariableVariableValueFieldDeserializer + extends JsonDeserializer> { + + public CompletionRuleVariableVariableValueFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CompletionRuleVariableVariableValueField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CompletionRuleVariableVariableValueFieldSerializer + extends JsonSerializer> { + + public CompletionRuleVariableVariableValueFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/conflicterror/ConflictError.java b/src/main/java/com/box/sdkgen/schemas/conflicterror/ConflictError.java new file mode 100644 index 000000000..50d5f2f1d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/conflicterror/ConflictError.java @@ -0,0 +1,140 @@ +package com.box.sdkgen.schemas.conflicterror; + +import com.box.sdkgen.schemas.clienterror.ClientError; +import com.box.sdkgen.schemas.clienterror.ClientErrorCodeField; +import com.box.sdkgen.schemas.clienterror.ClientErrorTypeField; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Map; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ConflictError extends ClientError { + + public ConflictError() { + super(); + } + + protected ConflictError(Builder builder) { + super(builder); + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ConflictError casted = (ConflictError) o; + return Objects.equals(type, casted.type) + && Objects.equals(status, casted.status) + && Objects.equals(code, casted.code) + && Objects.equals(message, casted.message) + && Objects.equals(contextInfo, casted.contextInfo) + && Objects.equals(helpUrl, casted.helpUrl) + && Objects.equals(requestId, casted.requestId); + } + + @Override + public int hashCode() { + return Objects.hash(type, status, code, message, contextInfo, helpUrl, requestId); + } + + @Override + public String toString() { + return "ConflictError{" + + "type='" + + type + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "code='" + + code + + '\'' + + ", " + + "message='" + + message + + '\'' + + ", " + + "contextInfo='" + + contextInfo + + '\'' + + ", " + + "helpUrl='" + + helpUrl + + '\'' + + ", " + + "requestId='" + + requestId + + '\'' + + "}"; + } + + public static class Builder extends ClientError.Builder { + + @Override + public Builder type(ClientErrorTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder status(Integer status) { + this.status = status; + return this; + } + + @Override + public Builder code(ClientErrorCodeField code) { + this.code = new EnumWrapper(code); + return this; + } + + @Override + public Builder code(EnumWrapper code) { + this.code = code; + return this; + } + + @Override + public Builder message(String message) { + this.message = message; + return this; + } + + @Override + public Builder contextInfo(Map contextInfo) { + this.contextInfo = contextInfo; + this.markNullableFieldAsSet("context_info"); + return this; + } + + @Override + public Builder helpUrl(String helpUrl) { + this.helpUrl = helpUrl; + return this; + } + + @Override + public Builder requestId(String requestId) { + this.requestId = requestId; + return this; + } + + public ConflictError build() { + return new ConflictError(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/conflicterror/ConflictErrorContextInfoField.java b/src/main/java/com/box/sdkgen/schemas/conflicterror/ConflictErrorContextInfoField.java new file mode 100644 index 000000000..7fd5d68e3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/conflicterror/ConflictErrorContextInfoField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.conflicterror; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.fileconflict.FileConflict; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ConflictErrorContextInfoField extends SerializableObject { + + protected List conflicts; + + public ConflictErrorContextInfoField() { + super(); + } + + protected ConflictErrorContextInfoField(Builder builder) { + super(); + this.conflicts = builder.conflicts; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getConflicts() { + return conflicts; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ConflictErrorContextInfoField casted = (ConflictErrorContextInfoField) o; + return Objects.equals(conflicts, casted.conflicts); + } + + @Override + public int hashCode() { + return Objects.hash(conflicts); + } + + @Override + public String toString() { + return "ConflictErrorContextInfoField{" + "conflicts='" + conflicts + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List conflicts; + + public Builder conflicts(List conflicts) { + this.conflicts = conflicts; + return this; + } + + public ConflictErrorContextInfoField build() { + return new ConflictErrorContextInfoField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/createaiagent/CreateAiAgent.java b/src/main/java/com/box/sdkgen/schemas/createaiagent/CreateAiAgent.java new file mode 100644 index 000000000..b006f468a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/createaiagent/CreateAiAgent.java @@ -0,0 +1,221 @@ +package com.box.sdkgen.schemas.createaiagent; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.aiagentallowedentity.AiAgentAllowedEntity; +import com.box.sdkgen.schemas.aistudioagentask.AiStudioAgentAsk; +import com.box.sdkgen.schemas.aistudioagentextract.AiStudioAgentExtract; +import com.box.sdkgen.schemas.aistudioagenttextgen.AiStudioAgentTextGen; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateAiAgent extends SerializableObject { + + @JsonDeserialize(using = CreateAiAgentTypeField.CreateAiAgentTypeFieldDeserializer.class) + @JsonSerialize(using = CreateAiAgentTypeField.CreateAiAgentTypeFieldSerializer.class) + protected EnumWrapper type; + + protected final String name; + + @JsonProperty("access_state") + protected final String accessState; + + @JsonProperty("icon_reference") + protected String iconReference; + + @JsonProperty("allowed_entities") + protected List allowedEntities; + + protected AiStudioAgentAsk ask; + + @JsonProperty("text_gen") + protected AiStudioAgentTextGen textGen; + + protected AiStudioAgentExtract extract; + + public CreateAiAgent( + @JsonProperty("name") String name, @JsonProperty("access_state") String accessState) { + super(); + this.name = name; + this.accessState = accessState; + this.type = new EnumWrapper(CreateAiAgentTypeField.AI_AGENT); + } + + protected CreateAiAgent(Builder builder) { + super(); + this.type = builder.type; + this.name = builder.name; + this.accessState = builder.accessState; + this.iconReference = builder.iconReference; + this.allowedEntities = builder.allowedEntities; + this.ask = builder.ask; + this.textGen = builder.textGen; + this.extract = builder.extract; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getName() { + return name; + } + + public String getAccessState() { + return accessState; + } + + public String getIconReference() { + return iconReference; + } + + public List getAllowedEntities() { + return allowedEntities; + } + + public AiStudioAgentAsk getAsk() { + return ask; + } + + public AiStudioAgentTextGen getTextGen() { + return textGen; + } + + public AiStudioAgentExtract getExtract() { + return extract; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateAiAgent casted = (CreateAiAgent) o; + return Objects.equals(type, casted.type) + && Objects.equals(name, casted.name) + && Objects.equals(accessState, casted.accessState) + && Objects.equals(iconReference, casted.iconReference) + && Objects.equals(allowedEntities, casted.allowedEntities) + && Objects.equals(ask, casted.ask) + && Objects.equals(textGen, casted.textGen) + && Objects.equals(extract, casted.extract); + } + + @Override + public int hashCode() { + return Objects.hash( + type, name, accessState, iconReference, allowedEntities, ask, textGen, extract); + } + + @Override + public String toString() { + return "CreateAiAgent{" + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "accessState='" + + accessState + + '\'' + + ", " + + "iconReference='" + + iconReference + + '\'' + + ", " + + "allowedEntities='" + + allowedEntities + + '\'' + + ", " + + "ask='" + + ask + + '\'' + + ", " + + "textGen='" + + textGen + + '\'' + + ", " + + "extract='" + + extract + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String name; + + protected final String accessState; + + protected String iconReference; + + protected List allowedEntities; + + protected AiStudioAgentAsk ask; + + protected AiStudioAgentTextGen textGen; + + protected AiStudioAgentExtract extract; + + public Builder(String name, String accessState) { + super(); + this.name = name; + this.accessState = accessState; + this.type = new EnumWrapper(CreateAiAgentTypeField.AI_AGENT); + } + + public Builder type(CreateAiAgentTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder iconReference(String iconReference) { + this.iconReference = iconReference; + return this; + } + + public Builder allowedEntities(List allowedEntities) { + this.allowedEntities = allowedEntities; + return this; + } + + public Builder ask(AiStudioAgentAsk ask) { + this.ask = ask; + return this; + } + + public Builder textGen(AiStudioAgentTextGen textGen) { + this.textGen = textGen; + return this; + } + + public Builder extract(AiStudioAgentExtract extract) { + this.extract = extract; + return this; + } + + public CreateAiAgent build() { + return new CreateAiAgent(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/createaiagent/CreateAiAgentTypeField.java b/src/main/java/com/box/sdkgen/schemas/createaiagent/CreateAiAgentTypeField.java new file mode 100644 index 000000000..c7ec4f906 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/createaiagent/CreateAiAgentTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.createaiagent; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CreateAiAgentTypeField implements Valuable { + AI_AGENT("ai_agent"); + + private final String value; + + CreateAiAgentTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CreateAiAgentTypeFieldDeserializer + extends JsonDeserializer> { + + public CreateAiAgentTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CreateAiAgentTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CreateAiAgentTypeFieldSerializer + extends JsonSerializer> { + + public CreateAiAgentTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/devicepinner/DevicePinner.java b/src/main/java/com/box/sdkgen/schemas/devicepinner/DevicePinner.java new file mode 100644 index 000000000..2defde2d6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/devicepinner/DevicePinner.java @@ -0,0 +1,137 @@ +package com.box.sdkgen.schemas.devicepinner; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class DevicePinner extends SerializableObject { + + protected String id; + + @JsonDeserialize(using = DevicePinnerTypeField.DevicePinnerTypeFieldDeserializer.class) + @JsonSerialize(using = DevicePinnerTypeField.DevicePinnerTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("owned_by") + protected UserMini ownedBy; + + @JsonProperty("product_name") + protected String productName; + + public DevicePinner() { + super(); + } + + protected DevicePinner(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.ownedBy = builder.ownedBy; + this.productName = builder.productName; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public UserMini getOwnedBy() { + return ownedBy; + } + + public String getProductName() { + return productName; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DevicePinner casted = (DevicePinner) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(ownedBy, casted.ownedBy) + && Objects.equals(productName, casted.productName); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, ownedBy, productName); + } + + @Override + public String toString() { + return "DevicePinner{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "ownedBy='" + + ownedBy + + '\'' + + ", " + + "productName='" + + productName + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected UserMini ownedBy; + + protected String productName; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(DevicePinnerTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder ownedBy(UserMini ownedBy) { + this.ownedBy = ownedBy; + return this; + } + + public Builder productName(String productName) { + this.productName = productName; + return this; + } + + public DevicePinner build() { + return new DevicePinner(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/devicepinner/DevicePinnerTypeField.java b/src/main/java/com/box/sdkgen/schemas/devicepinner/DevicePinnerTypeField.java new file mode 100644 index 000000000..beb0dd8f9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/devicepinner/DevicePinnerTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.devicepinner; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum DevicePinnerTypeField implements Valuable { + DEVICE_PINNER("device_pinner"); + + private final String value; + + DevicePinnerTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class DevicePinnerTypeFieldDeserializer + extends JsonDeserializer> { + + public DevicePinnerTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(DevicePinnerTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class DevicePinnerTypeFieldSerializer + extends JsonSerializer> { + + public DevicePinnerTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinners.java b/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinners.java new file mode 100644 index 000000000..2a80ccb0f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinners.java @@ -0,0 +1,127 @@ +package com.box.sdkgen.schemas.devicepinners; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.devicepinner.DevicePinner; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class DevicePinners extends SerializableObject { + + protected List entries; + + protected Long limit; + + @JsonProperty("next_marker") + protected Long nextMarker; + + protected List order; + + public DevicePinners() { + super(); + } + + protected DevicePinners(Builder builder) { + super(); + this.entries = builder.entries; + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.order = builder.order; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getEntries() { + return entries; + } + + public Long getLimit() { + return limit; + } + + public Long getNextMarker() { + return nextMarker; + } + + public List getOrder() { + return order; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DevicePinners casted = (DevicePinners) o; + return Objects.equals(entries, casted.entries) + && Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(order, casted.order); + } + + @Override + public int hashCode() { + return Objects.hash(entries, limit, nextMarker, order); + } + + @Override + public String toString() { + return "DevicePinners{" + + "entries='" + + entries + + '\'' + + ", " + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "order='" + + order + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List entries; + + protected Long limit; + + protected Long nextMarker; + + protected List order; + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(Long nextMarker) { + this.nextMarker = nextMarker; + return this; + } + + public Builder order(List order) { + this.order = order; + return this; + } + + public DevicePinners build() { + return new DevicePinners(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinnersOrderByField.java b/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinnersOrderByField.java new file mode 100644 index 000000000..0bc6d9356 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinnersOrderByField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.devicepinners; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum DevicePinnersOrderByField implements Valuable { + ID("id"); + + private final String value; + + DevicePinnersOrderByField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class DevicePinnersOrderByFieldDeserializer + extends JsonDeserializer> { + + public DevicePinnersOrderByFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(DevicePinnersOrderByField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class DevicePinnersOrderByFieldSerializer + extends JsonSerializer> { + + public DevicePinnersOrderByFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinnersOrderDirectionField.java b/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinnersOrderDirectionField.java new file mode 100644 index 000000000..75cfe4f45 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinnersOrderDirectionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.devicepinners; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum DevicePinnersOrderDirectionField implements Valuable { + ASC("asc"), + DESC("desc"); + + private final String value; + + DevicePinnersOrderDirectionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class DevicePinnersOrderDirectionFieldDeserializer + extends JsonDeserializer> { + + public DevicePinnersOrderDirectionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(DevicePinnersOrderDirectionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class DevicePinnersOrderDirectionFieldSerializer + extends JsonSerializer> { + + public DevicePinnersOrderDirectionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinnersOrderField.java b/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinnersOrderField.java new file mode 100644 index 000000000..4467c7a2b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinnersOrderField.java @@ -0,0 +1,103 @@ +package com.box.sdkgen.schemas.devicepinners; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class DevicePinnersOrderField extends SerializableObject { + + @JsonDeserialize(using = DevicePinnersOrderByField.DevicePinnersOrderByFieldDeserializer.class) + @JsonSerialize(using = DevicePinnersOrderByField.DevicePinnersOrderByFieldSerializer.class) + protected EnumWrapper by; + + @JsonDeserialize( + using = DevicePinnersOrderDirectionField.DevicePinnersOrderDirectionFieldDeserializer.class) + @JsonSerialize( + using = DevicePinnersOrderDirectionField.DevicePinnersOrderDirectionFieldSerializer.class) + protected EnumWrapper direction; + + public DevicePinnersOrderField() { + super(); + } + + protected DevicePinnersOrderField(Builder builder) { + super(); + this.by = builder.by; + this.direction = builder.direction; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getBy() { + return by; + } + + public EnumWrapper getDirection() { + return direction; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DevicePinnersOrderField casted = (DevicePinnersOrderField) o; + return Objects.equals(by, casted.by) && Objects.equals(direction, casted.direction); + } + + @Override + public int hashCode() { + return Objects.hash(by, direction); + } + + @Override + public String toString() { + return "DevicePinnersOrderField{" + + "by='" + + by + + '\'' + + ", " + + "direction='" + + direction + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper by; + + protected EnumWrapper direction; + + public Builder by(DevicePinnersOrderByField by) { + this.by = new EnumWrapper(by); + return this; + } + + public Builder by(EnumWrapper by) { + this.by = by; + return this; + } + + public Builder direction(DevicePinnersOrderDirectionField direction) { + this.direction = new EnumWrapper(direction); + return this; + } + + public Builder direction(EnumWrapper direction) { + this.direction = direction; + return this; + } + + public DevicePinnersOrderField build() { + return new DevicePinnersOrderField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/emailalias/EmailAlias.java b/src/main/java/com/box/sdkgen/schemas/emailalias/EmailAlias.java new file mode 100644 index 000000000..0a382cff1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/emailalias/EmailAlias.java @@ -0,0 +1,135 @@ +package com.box.sdkgen.schemas.emailalias; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class EmailAlias extends SerializableObject { + + protected String id; + + @JsonDeserialize(using = EmailAliasTypeField.EmailAliasTypeFieldDeserializer.class) + @JsonSerialize(using = EmailAliasTypeField.EmailAliasTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String email; + + @JsonProperty("is_confirmed") + protected Boolean isConfirmed; + + public EmailAlias() { + super(); + } + + protected EmailAlias(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.email = builder.email; + this.isConfirmed = builder.isConfirmed; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getEmail() { + return email; + } + + public Boolean getIsConfirmed() { + return isConfirmed; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EmailAlias casted = (EmailAlias) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(email, casted.email) + && Objects.equals(isConfirmed, casted.isConfirmed); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, email, isConfirmed); + } + + @Override + public String toString() { + return "EmailAlias{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "email='" + + email + + '\'' + + ", " + + "isConfirmed='" + + isConfirmed + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected String email; + + protected Boolean isConfirmed; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(EmailAliasTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder email(String email) { + this.email = email; + return this; + } + + public Builder isConfirmed(Boolean isConfirmed) { + this.isConfirmed = isConfirmed; + return this; + } + + public EmailAlias build() { + return new EmailAlias(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/emailalias/EmailAliasTypeField.java b/src/main/java/com/box/sdkgen/schemas/emailalias/EmailAliasTypeField.java new file mode 100644 index 000000000..bdbfac90b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/emailalias/EmailAliasTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.emailalias; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum EmailAliasTypeField implements Valuable { + EMAIL_ALIAS("email_alias"); + + private final String value; + + EmailAliasTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class EmailAliasTypeFieldDeserializer + extends JsonDeserializer> { + + public EmailAliasTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(EmailAliasTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class EmailAliasTypeFieldSerializer + extends JsonSerializer> { + + public EmailAliasTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/emailaliases/EmailAliases.java b/src/main/java/com/box/sdkgen/schemas/emailaliases/EmailAliases.java new file mode 100644 index 000000000..42f2aad83 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/emailaliases/EmailAliases.java @@ -0,0 +1,88 @@ +package com.box.sdkgen.schemas.emailaliases; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.emailalias.EmailAlias; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class EmailAliases extends SerializableObject { + + @JsonProperty("total_count") + protected Long totalCount; + + protected List entries; + + public EmailAliases() { + super(); + } + + protected EmailAliases(Builder builder) { + super(); + this.totalCount = builder.totalCount; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getTotalCount() { + return totalCount; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EmailAliases casted = (EmailAliases) o; + return Objects.equals(totalCount, casted.totalCount) && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, entries); + } + + @Override + public String toString() { + return "EmailAliases{" + + "totalCount='" + + totalCount + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long totalCount; + + protected List entries; + + public Builder totalCount(Long totalCount) { + this.totalCount = totalCount; + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public EmailAliases build() { + return new EmailAliases(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/enterprisebase/EnterpriseBase.java b/src/main/java/com/box/sdkgen/schemas/enterprisebase/EnterpriseBase.java new file mode 100644 index 000000000..b9fb043d4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/enterprisebase/EnterpriseBase.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.schemas.enterprisebase; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class EnterpriseBase extends SerializableObject { + + protected String id; + + @JsonDeserialize(using = EnterpriseBaseTypeField.EnterpriseBaseTypeFieldDeserializer.class) + @JsonSerialize(using = EnterpriseBaseTypeField.EnterpriseBaseTypeFieldSerializer.class) + protected EnumWrapper type; + + public EnterpriseBase() { + super(); + } + + protected EnterpriseBase(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseBase casted = (EnterpriseBase) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "EnterpriseBase{" + "id='" + id + '\'' + ", " + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(EnterpriseBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public EnterpriseBase build() { + return new EnterpriseBase(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/enterprisebase/EnterpriseBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/enterprisebase/EnterpriseBaseTypeField.java new file mode 100644 index 000000000..8ecca0724 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/enterprisebase/EnterpriseBaseTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.enterprisebase; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum EnterpriseBaseTypeField implements Valuable { + ENTERPRISE("enterprise"); + + private final String value; + + EnterpriseBaseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class EnterpriseBaseTypeFieldDeserializer + extends JsonDeserializer> { + + public EnterpriseBaseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(EnterpriseBaseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class EnterpriseBaseTypeFieldSerializer + extends JsonSerializer> { + + public EnterpriseBaseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/event/Event.java b/src/main/java/com/box/sdkgen/schemas/event/Event.java new file mode 100644 index 000000000..f0cdf4dfc --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/event/Event.java @@ -0,0 +1,290 @@ +package com.box.sdkgen.schemas.event; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.appitemeventsource.AppItemEventSource; +import com.box.sdkgen.schemas.appitemeventsourceoreventsourceorfileorfolderorgenericsourceoruser.AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser; +import com.box.sdkgen.schemas.eventsource.EventSource; +import com.box.sdkgen.schemas.file.File; +import com.box.sdkgen.schemas.folder.Folder; +import com.box.sdkgen.schemas.user.User; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Map; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Event extends SerializableObject { + + protected String type; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("recorded_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date recordedAt; + + @JsonProperty("event_id") + protected String eventId; + + @JsonProperty("created_by") + protected UserMini createdBy; + + @JsonDeserialize(using = EventEventTypeField.EventEventTypeFieldDeserializer.class) + @JsonSerialize(using = EventEventTypeField.EventEventTypeFieldSerializer.class) + @JsonProperty("event_type") + protected EnumWrapper eventType; + + @JsonProperty("session_id") + protected String sessionId; + + protected AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser source; + + @JsonProperty("additional_details") + protected EventAdditionalDetailsField additionalDetails; + + public Event() { + super(); + } + + protected Event(Builder builder) { + super(); + this.type = builder.type; + this.createdAt = builder.createdAt; + this.recordedAt = builder.recordedAt; + this.eventId = builder.eventId; + this.createdBy = builder.createdBy; + this.eventType = builder.eventType; + this.sessionId = builder.sessionId; + this.source = builder.source; + this.additionalDetails = builder.additionalDetails; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getType() { + return type; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getRecordedAt() { + return recordedAt; + } + + public String getEventId() { + return eventId; + } + + public UserMini getCreatedBy() { + return createdBy; + } + + public EnumWrapper getEventType() { + return eventType; + } + + public String getSessionId() { + return sessionId; + } + + public AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser getSource() { + return source; + } + + public EventAdditionalDetailsField getAdditionalDetails() { + return additionalDetails; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Event casted = (Event) o; + return Objects.equals(type, casted.type) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(recordedAt, casted.recordedAt) + && Objects.equals(eventId, casted.eventId) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(eventType, casted.eventType) + && Objects.equals(sessionId, casted.sessionId) + && Objects.equals(source, casted.source) + && Objects.equals(additionalDetails, casted.additionalDetails); + } + + @Override + public int hashCode() { + return Objects.hash( + type, + createdAt, + recordedAt, + eventId, + createdBy, + eventType, + sessionId, + source, + additionalDetails); + } + + @Override + public String toString() { + return "Event{" + + "type='" + + type + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "recordedAt='" + + recordedAt + + '\'' + + ", " + + "eventId='" + + eventId + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "eventType='" + + eventType + + '\'' + + ", " + + "sessionId='" + + sessionId + + '\'' + + ", " + + "source='" + + source + + '\'' + + ", " + + "additionalDetails='" + + additionalDetails + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String type; + + protected Date createdAt; + + protected Date recordedAt; + + protected String eventId; + + protected UserMini createdBy; + + protected EnumWrapper eventType; + + protected String sessionId; + + protected AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser source; + + protected EventAdditionalDetailsField additionalDetails; + + public Builder type(String type) { + this.type = type; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder recordedAt(Date recordedAt) { + this.recordedAt = recordedAt; + return this; + } + + public Builder eventId(String eventId) { + this.eventId = eventId; + return this; + } + + public Builder createdBy(UserMini createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder eventType(EventEventTypeField eventType) { + this.eventType = new EnumWrapper(eventType); + return this; + } + + public Builder eventType(EnumWrapper eventType) { + this.eventType = eventType; + return this; + } + + public Builder sessionId(String sessionId) { + this.sessionId = sessionId; + return this; + } + + public Builder source(AppItemEventSource source) { + this.source = new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser(source); + return this; + } + + public Builder source(EventSource source) { + this.source = new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser(source); + return this; + } + + public Builder source(File source) { + this.source = new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser(source); + return this; + } + + public Builder source(Folder source) { + this.source = new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser(source); + return this; + } + + public Builder source(Map source) { + this.source = new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser(source); + return this; + } + + public Builder source(User source) { + this.source = new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser(source); + return this; + } + + public Builder source( + AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser source) { + this.source = source; + return this; + } + + public Builder additionalDetails(EventAdditionalDetailsField additionalDetails) { + this.additionalDetails = additionalDetails; + return this; + } + + public Event build() { + return new Event(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/event/EventAdditionalDetailsField.java b/src/main/java/com/box/sdkgen/schemas/event/EventAdditionalDetailsField.java new file mode 100644 index 000000000..c6507c875 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/event/EventAdditionalDetailsField.java @@ -0,0 +1,17 @@ +package com.box.sdkgen.schemas.event; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; + +@JsonFilter("nullablePropertyFilter") +public class EventAdditionalDetailsField extends SerializableObject { + + public EventAdditionalDetailsField() { + super(); + } + + @Override + public String toString() { + return "EventAdditionalDetailsField{" + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/event/EventEventTypeField.java b/src/main/java/com/box/sdkgen/schemas/event/EventEventTypeField.java new file mode 100644 index 000000000..468e02604 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/event/EventEventTypeField.java @@ -0,0 +1,203 @@ +package com.box.sdkgen.schemas.event; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum EventEventTypeField implements Valuable { + ACCESS_GRANTED("ACCESS_GRANTED"), + ACCESS_REVOKED("ACCESS_REVOKED"), + ADD_DEVICE_ASSOCIATION("ADD_DEVICE_ASSOCIATION"), + ADD_LOGIN_ACTIVITY_DEVICE("ADD_LOGIN_ACTIVITY_DEVICE"), + ADMIN_LOGIN("ADMIN_LOGIN"), + APPLICATION_CREATED("APPLICATION_CREATED"), + APPLICATION_PUBLIC_KEY_ADDED("APPLICATION_PUBLIC_KEY_ADDED"), + APPLICATION_PUBLIC_KEY_DELETED("APPLICATION_PUBLIC_KEY_DELETED"), + CHANGE_ADMIN_ROLE("CHANGE_ADMIN_ROLE"), + CHANGE_FOLDER_PERMISSION("CHANGE_FOLDER_PERMISSION"), + COLLABORATION_ACCEPT("COLLABORATION_ACCEPT"), + COLLABORATION_EXPIRATION("COLLABORATION_EXPIRATION"), + COLLABORATION_INVITE("COLLABORATION_INVITE"), + COLLABORATION_REMOVE("COLLABORATION_REMOVE"), + COLLABORATION_ROLE_CHANGE("COLLABORATION_ROLE_CHANGE"), + COLLAB_ADD_COLLABORATOR("COLLAB_ADD_COLLABORATOR"), + COLLAB_INVITE_COLLABORATOR("COLLAB_INVITE_COLLABORATOR"), + COLLAB_REMOVE_COLLABORATOR("COLLAB_REMOVE_COLLABORATOR"), + COLLAB_ROLE_CHANGE("COLLAB_ROLE_CHANGE"), + COMMENT_CREATE("COMMENT_CREATE"), + COMMENT_DELETE("COMMENT_DELETE"), + CONTENT_ACCESS("CONTENT_ACCESS"), + CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY("CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY"), + CONTENT_WORKFLOW_AUTOMATION_ADD("CONTENT_WORKFLOW_AUTOMATION_ADD"), + CONTENT_WORKFLOW_AUTOMATION_DELETE("CONTENT_WORKFLOW_AUTOMATION_DELETE"), + CONTENT_WORKFLOW_POLICY_ADD("CONTENT_WORKFLOW_POLICY_ADD"), + CONTENT_WORKFLOW_SHARING_POLICY_VIOLATION("CONTENT_WORKFLOW_SHARING_POLICY_VIOLATION"), + CONTENT_WORKFLOW_UPLOAD_POLICY_VIOLATION("CONTENT_WORKFLOW_UPLOAD_POLICY_VIOLATION"), + COPY("COPY"), + DATA_RETENTION_CREATE_RETENTION("DATA_RETENTION_CREATE_RETENTION"), + DATA_RETENTION_REMOVE_RETENTION("DATA_RETENTION_REMOVE_RETENTION"), + DELETE("DELETE"), + DELETE_USER("DELETE_USER"), + DEVICE_TRUST_CHECK_FAILED("DEVICE_TRUST_CHECK_FAILED"), + DOWNLOAD("DOWNLOAD"), + EDIT("EDIT"), + EDIT_USER("EDIT_USER"), + EDR_CROWDSTRIKE_DEVICE_DETECTED("EDR_CROWDSTRIKE_DEVICE_DETECTED"), + EDR_CROWDSTRIKE_NO_BOX_TOOLS("EDR_CROWDSTRIKE_NO_BOX_TOOLS"), + EDR_CROWDSTRIKE_BOX_TOOLS_OUTDATED("EDR_CROWDSTRIKE_BOX_TOOLS_OUTDATED"), + EDR_CROWDSTRIKE_DRIVE_OUTDATED("EDR_CROWDSTRIKE_DRIVE_OUTDATED"), + EDR_CROWDSTRIKE_ACCESS_ALLOWED_NO_CROWDSTRIKE_DEVICE( + "EDR_CROWDSTRIKE_ACCESS_ALLOWED_NO_CROWDSTRIKE_DEVICE"), + EDR_CROWDSTRIKE_ACCESS_REVOKED("EDR_CROWDSTRIKE_ACCESS_REVOKED"), + EMAIL_ALIAS_CONFIRM("EMAIL_ALIAS_CONFIRM"), + EMAIL_ALIAS_REMOVE("EMAIL_ALIAS_REMOVE"), + ENABLE_TWO_FACTOR_AUTH("ENABLE_TWO_FACTOR_AUTH"), + ENTERPRISE_APP_AUTHORIZATION_UPDATE("ENTERPRISE_APP_AUTHORIZATION_UPDATE"), + FAILED_LOGIN("FAILED_LOGIN"), + FILE_MARKED_MALICIOUS("FILE_MARKED_MALICIOUS"), + FILE_WATERMARKED_DOWNLOAD("FILE_WATERMARKED_DOWNLOAD"), + GROUP_ADD_ITEM("GROUP_ADD_ITEM"), + GROUP_ADD_USER("GROUP_ADD_USER"), + GROUP_CREATION("GROUP_CREATION"), + GROUP_DELETION("GROUP_DELETION"), + GROUP_EDITED("GROUP_EDITED"), + GROUP_REMOVE_ITEM("GROUP_REMOVE_ITEM"), + GROUP_REMOVE_USER("GROUP_REMOVE_USER"), + ITEM_COPY("ITEM_COPY"), + ITEM_CREATE("ITEM_CREATE"), + ITEM_DOWNLOAD("ITEM_DOWNLOAD"), + ITEM_EMAIL_SEND("ITEM_EMAIL_SEND"), + ITEM_MAKE_CURRENT_VERSION("ITEM_MAKE_CURRENT_VERSION"), + ITEM_MODIFY("ITEM_MODIFY"), + ITEM_MOVE("ITEM_MOVE"), + ITEM_OPEN("ITEM_OPEN"), + ITEM_PREVIEW("ITEM_PREVIEW"), + ITEM_RENAME("ITEM_RENAME"), + ITEM_SHARED("ITEM_SHARED"), + ITEM_SHARED_CREATE("ITEM_SHARED_CREATE"), + ITEM_SHARED_UNSHARE("ITEM_SHARED_UNSHARE"), + ITEM_SHARED_UPDATE("ITEM_SHARED_UPDATE"), + ITEM_SYNC("ITEM_SYNC"), + ITEM_TRASH("ITEM_TRASH"), + ITEM_UNDELETE_VIA_TRASH("ITEM_UNDELETE_VIA_TRASH"), + ITEM_UNSYNC("ITEM_UNSYNC"), + ITEM_UPLOAD("ITEM_UPLOAD"), + LEGAL_HOLD_ASSIGNMENT_CREATE("LEGAL_HOLD_ASSIGNMENT_CREATE"), + LEGAL_HOLD_ASSIGNMENT_DELETE("LEGAL_HOLD_ASSIGNMENT_DELETE"), + LEGAL_HOLD_POLICY_CREATE("LEGAL_HOLD_POLICY_CREATE"), + LEGAL_HOLD_POLICY_DELETE("LEGAL_HOLD_POLICY_DELETE"), + LEGAL_HOLD_POLICY_UPDATE("LEGAL_HOLD_POLICY_UPDATE"), + LOCK("LOCK"), + LOCK_CREATE("LOCK_CREATE"), + LOCK_DESTROY("LOCK_DESTROY"), + LOGIN("LOGIN"), + MASTER_INVITE_ACCEPT("MASTER_INVITE_ACCEPT"), + MASTER_INVITE_REJECT("MASTER_INVITE_REJECT"), + METADATA_INSTANCE_CREATE("METADATA_INSTANCE_CREATE"), + METADATA_INSTANCE_DELETE("METADATA_INSTANCE_DELETE"), + METADATA_INSTANCE_UPDATE("METADATA_INSTANCE_UPDATE"), + METADATA_TEMPLATE_CREATE("METADATA_TEMPLATE_CREATE"), + METADATA_TEMPLATE_DELETE("METADATA_TEMPLATE_DELETE"), + METADATA_TEMPLATE_UPDATE("METADATA_TEMPLATE_UPDATE"), + MOVE("MOVE"), + NEW_USER("NEW_USER"), + PREVIEW("PREVIEW"), + REMOVE_DEVICE_ASSOCIATION("REMOVE_DEVICE_ASSOCIATION"), + REMOVE_LOGIN_ACTIVITY_DEVICE("REMOVE_LOGIN_ACTIVITY_DEVICE"), + RENAME("RENAME"), + RETENTION_POLICY_ASSIGNMENT_ADD("RETENTION_POLICY_ASSIGNMENT_ADD"), + SHARE("SHARE"), + SHARED_LINK_SEND("SHARED_LINK_SEND"), + SHARE_EXPIRATION("SHARE_EXPIRATION"), + SHIELD_ALERT("SHIELD_ALERT"), + SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED("SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED"), + SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED_MISSING_JUSTIFICATION( + "SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED_MISSING_JUSTIFICATION"), + SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED("SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED"), + SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED_MISSING_JUSTIFICATION( + "SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED_MISSING_JUSTIFICATION"), + SHIELD_JUSTIFICATION_APPROVAL("SHIELD_JUSTIFICATION_APPROVAL"), + SHIELD_SHARED_LINK_ACCESS_BLOCKED("SHIELD_SHARED_LINK_ACCESS_BLOCKED"), + SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_CREATE("SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_CREATE"), + SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_UPDATE("SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_UPDATE"), + SIGN_DOCUMENT_ASSIGNED("SIGN_DOCUMENT_ASSIGNED"), + SIGN_DOCUMENT_CANCELLED("SIGN_DOCUMENT_CANCELLED"), + SIGN_DOCUMENT_COMPLETED("SIGN_DOCUMENT_COMPLETED"), + SIGN_DOCUMENT_CONVERTED("SIGN_DOCUMENT_CONVERTED"), + SIGN_DOCUMENT_CREATED("SIGN_DOCUMENT_CREATED"), + SIGN_DOCUMENT_DECLINED("SIGN_DOCUMENT_DECLINED"), + SIGN_DOCUMENT_EXPIRED("SIGN_DOCUMENT_EXPIRED"), + SIGN_DOCUMENT_SIGNED("SIGN_DOCUMENT_SIGNED"), + SIGN_DOCUMENT_VIEWED_BY_SIGNED("SIGN_DOCUMENT_VIEWED_BY_SIGNED"), + SIGNER_DOWNLOADED("SIGNER_DOWNLOADED"), + SIGNER_FORWARDED("SIGNER_FORWARDED"), + STORAGE_EXPIRATION("STORAGE_EXPIRATION"), + TAG_ITEM_CREATE("TAG_ITEM_CREATE"), + TASK_ASSIGNMENT_CREATE("TASK_ASSIGNMENT_CREATE"), + TASK_ASSIGNMENT_DELETE("TASK_ASSIGNMENT_DELETE"), + TASK_ASSIGNMENT_UPDATE("TASK_ASSIGNMENT_UPDATE"), + TASK_CREATE("TASK_CREATE"), + TASK_UPDATE("TASK_UPDATE"), + TERMS_OF_SERVICE_ACCEPT("TERMS_OF_SERVICE_ACCEPT"), + TERMS_OF_SERVICE_REJECT("TERMS_OF_SERVICE_REJECT"), + UNDELETE("UNDELETE"), + UNLOCK("UNLOCK"), + UNSHARE("UNSHARE"), + UPDATE_COLLABORATION_EXPIRATION("UPDATE_COLLABORATION_EXPIRATION"), + UPDATE_SHARE_EXPIRATION("UPDATE_SHARE_EXPIRATION"), + UPLOAD("UPLOAD"), + USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE("USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE"), + WATERMARK_LABEL_CREATE("WATERMARK_LABEL_CREATE"), + WATERMARK_LABEL_DELETE("WATERMARK_LABEL_DELETE"); + + private final String value; + + EventEventTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class EventEventTypeFieldDeserializer + extends JsonDeserializer> { + + public EventEventTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(EventEventTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class EventEventTypeFieldSerializer + extends JsonSerializer> { + + public EventEventTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/events/Events.java b/src/main/java/com/box/sdkgen/schemas/events/Events.java new file mode 100644 index 000000000..81cc10d4c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/events/Events.java @@ -0,0 +1,119 @@ +package com.box.sdkgen.schemas.events; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.event.Event; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Events extends SerializableObject { + + @JsonProperty("chunk_size") + protected Long chunkSize; + + @JsonProperty("next_stream_position") + protected EventsNextStreamPositionField nextStreamPosition; + + protected List entries; + + public Events() { + super(); + } + + protected Events(Builder builder) { + super(); + this.chunkSize = builder.chunkSize; + this.nextStreamPosition = builder.nextStreamPosition; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getChunkSize() { + return chunkSize; + } + + public EventsNextStreamPositionField getNextStreamPosition() { + return nextStreamPosition; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Events casted = (Events) o; + return Objects.equals(chunkSize, casted.chunkSize) + && Objects.equals(nextStreamPosition, casted.nextStreamPosition) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(chunkSize, nextStreamPosition, entries); + } + + @Override + public String toString() { + return "Events{" + + "chunkSize='" + + chunkSize + + '\'' + + ", " + + "nextStreamPosition='" + + nextStreamPosition + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long chunkSize; + + protected EventsNextStreamPositionField nextStreamPosition; + + protected List entries; + + public Builder chunkSize(Long chunkSize) { + this.chunkSize = chunkSize; + return this; + } + + public Builder nextStreamPosition(String nextStreamPosition) { + this.nextStreamPosition = new EventsNextStreamPositionField(nextStreamPosition); + return this; + } + + public Builder nextStreamPosition(long nextStreamPosition) { + this.nextStreamPosition = new EventsNextStreamPositionField(nextStreamPosition); + return this; + } + + public Builder nextStreamPosition(EventsNextStreamPositionField nextStreamPosition) { + this.nextStreamPosition = nextStreamPosition; + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public Events build() { + return new Events(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/events/EventsNextStreamPositionField.java b/src/main/java/com/box/sdkgen/schemas/events/EventsNextStreamPositionField.java new file mode 100644 index 000000000..6a6fa1633 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/events/EventsNextStreamPositionField.java @@ -0,0 +1,67 @@ +package com.box.sdkgen.schemas.events; + +import com.box.sdkgen.internal.OneOfTwo; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize( + using = EventsNextStreamPositionField.EventsNextStreamPositionFieldDeserializer.class) +@JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) +public class EventsNextStreamPositionField extends OneOfTwo { + + public EventsNextStreamPositionField(String string) { + super(string, null); + } + + public EventsNextStreamPositionField(Long longNumber) { + super(null, longNumber); + } + + public boolean isString() { + return value0 != null; + } + + public String getString() { + return value0; + } + + public boolean isLongNumber() { + return value1 != null; + } + + public Long getLongNumber() { + return value1; + } + + static class EventsNextStreamPositionFieldDeserializer + extends JsonDeserializer { + + public EventsNextStreamPositionFieldDeserializer() { + super(); + } + + @Override + public EventsNextStreamPositionField deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + try { + return new EventsNextStreamPositionField( + OneOfTwo.OBJECT_MAPPER.convertValue(node, Long.class)); + } catch (Exception ignored) { + } + try { + return new EventsNextStreamPositionField( + OneOfTwo.OBJECT_MAPPER.convertValue(node, String.class)); + } catch (Exception ignored) { + } + throw new JsonMappingException(jp, "Unable to deserialize EventsNextStreamPositionField"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/eventsource/EventSource.java b/src/main/java/com/box/sdkgen/schemas/eventsource/EventSource.java new file mode 100644 index 000000000..60afd1bcf --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/eventsource/EventSource.java @@ -0,0 +1,187 @@ +package com.box.sdkgen.schemas.eventsource; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class EventSource extends SerializableObject { + + @JsonDeserialize(using = EventSourceItemTypeField.EventSourceItemTypeFieldDeserializer.class) + @JsonSerialize(using = EventSourceItemTypeField.EventSourceItemTypeFieldSerializer.class) + @JsonProperty("item_type") + protected final EnumWrapper itemType; + + @JsonProperty("item_id") + protected final String itemId; + + @JsonProperty("item_name") + protected final String itemName; + + protected EventSourceClassificationField classification; + + @Nullable protected FolderMini parent; + + @JsonProperty("owned_by") + protected UserMini ownedBy; + + public EventSource(EventSourceItemTypeField itemType, String itemId, String itemName) { + super(); + this.itemType = new EnumWrapper(itemType); + this.itemId = itemId; + this.itemName = itemName; + } + + public EventSource( + @JsonProperty("item_type") EnumWrapper itemType, + @JsonProperty("item_id") String itemId, + @JsonProperty("item_name") String itemName) { + super(); + this.itemType = itemType; + this.itemId = itemId; + this.itemName = itemName; + } + + protected EventSource(Builder builder) { + super(); + this.itemType = builder.itemType; + this.itemId = builder.itemId; + this.itemName = builder.itemName; + this.classification = builder.classification; + this.parent = builder.parent; + this.ownedBy = builder.ownedBy; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getItemType() { + return itemType; + } + + public String getItemId() { + return itemId; + } + + public String getItemName() { + return itemName; + } + + public EventSourceClassificationField getClassification() { + return classification; + } + + public FolderMini getParent() { + return parent; + } + + public UserMini getOwnedBy() { + return ownedBy; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSource casted = (EventSource) o; + return Objects.equals(itemType, casted.itemType) + && Objects.equals(itemId, casted.itemId) + && Objects.equals(itemName, casted.itemName) + && Objects.equals(classification, casted.classification) + && Objects.equals(parent, casted.parent) + && Objects.equals(ownedBy, casted.ownedBy); + } + + @Override + public int hashCode() { + return Objects.hash(itemType, itemId, itemName, classification, parent, ownedBy); + } + + @Override + public String toString() { + return "EventSource{" + + "itemType='" + + itemType + + '\'' + + ", " + + "itemId='" + + itemId + + '\'' + + ", " + + "itemName='" + + itemName + + '\'' + + ", " + + "classification='" + + classification + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + ", " + + "ownedBy='" + + ownedBy + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final EnumWrapper itemType; + + protected final String itemId; + + protected final String itemName; + + protected EventSourceClassificationField classification; + + protected FolderMini parent; + + protected UserMini ownedBy; + + public Builder(EventSourceItemTypeField itemType, String itemId, String itemName) { + super(); + this.itemType = new EnumWrapper(itemType); + this.itemId = itemId; + this.itemName = itemName; + } + + public Builder(EnumWrapper itemType, String itemId, String itemName) { + super(); + this.itemType = itemType; + this.itemId = itemId; + this.itemName = itemName; + } + + public Builder classification(EventSourceClassificationField classification) { + this.classification = classification; + return this; + } + + public Builder parent(FolderMini parent) { + this.parent = parent; + this.markNullableFieldAsSet("parent"); + return this; + } + + public Builder ownedBy(UserMini ownedBy) { + this.ownedBy = ownedBy; + return this; + } + + public EventSource build() { + return new EventSource(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/eventsource/EventSourceClassificationField.java b/src/main/java/com/box/sdkgen/schemas/eventsource/EventSourceClassificationField.java new file mode 100644 index 000000000..093fa1538 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/eventsource/EventSourceClassificationField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.eventsource; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class EventSourceClassificationField extends SerializableObject { + + protected String name; + + public EventSourceClassificationField() { + super(); + } + + protected EventSourceClassificationField(Builder builder) { + super(); + this.name = builder.name; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventSourceClassificationField casted = (EventSourceClassificationField) o; + return Objects.equals(name, casted.name); + } + + @Override + public int hashCode() { + return Objects.hash(name); + } + + @Override + public String toString() { + return "EventSourceClassificationField{" + "name='" + name + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String name; + + public Builder name(String name) { + this.name = name; + return this; + } + + public EventSourceClassificationField build() { + return new EventSourceClassificationField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/eventsource/EventSourceItemTypeField.java b/src/main/java/com/box/sdkgen/schemas/eventsource/EventSourceItemTypeField.java new file mode 100644 index 000000000..8e7f32039 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/eventsource/EventSourceItemTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.eventsource; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum EventSourceItemTypeField implements Valuable { + FILE("file"), + FOLDER("folder"); + + private final String value; + + EventSourceItemTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class EventSourceItemTypeFieldDeserializer + extends JsonDeserializer> { + + public EventSourceItemTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(EventSourceItemTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class EventSourceItemTypeFieldSerializer + extends JsonSerializer> { + + public EventSourceItemTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/file/File.java b/src/main/java/com/box/sdkgen/schemas/file/File.java new file mode 100644 index 000000000..5c8100b38 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/file/File.java @@ -0,0 +1,486 @@ +package com.box.sdkgen.schemas.file; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.filebase.FileBaseTypeField; +import com.box.sdkgen.schemas.filemini.FileMini; +import com.box.sdkgen.schemas.fileversionmini.FileVersionMini; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class File extends FileMini { + + protected String description; + + protected Long size; + + @JsonProperty("path_collection") + protected FilePathCollectionField pathCollection; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date modifiedAt; + + @JsonProperty("trashed_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date trashedAt; + + @JsonProperty("purged_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date purgedAt; + + @JsonProperty("content_created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date contentCreatedAt; + + @JsonProperty("content_modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date contentModifiedAt; + + @JsonProperty("created_by") + protected UserMini createdBy; + + @JsonProperty("modified_by") + protected UserMini modifiedBy; + + @JsonProperty("owned_by") + protected UserMini ownedBy; + + @JsonProperty("shared_link") + protected FileSharedLinkField sharedLink; + + @Nullable protected FolderMini parent; + + @JsonDeserialize(using = FileItemStatusField.FileItemStatusFieldDeserializer.class) + @JsonSerialize(using = FileItemStatusField.FileItemStatusFieldSerializer.class) + @JsonProperty("item_status") + protected EnumWrapper itemStatus; + + public File(@JsonProperty("id") String id) { + super(id); + } + + protected File(Builder builder) { + super(builder); + this.description = builder.description; + this.size = builder.size; + this.pathCollection = builder.pathCollection; + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + this.trashedAt = builder.trashedAt; + this.purgedAt = builder.purgedAt; + this.contentCreatedAt = builder.contentCreatedAt; + this.contentModifiedAt = builder.contentModifiedAt; + this.createdBy = builder.createdBy; + this.modifiedBy = builder.modifiedBy; + this.ownedBy = builder.ownedBy; + this.sharedLink = builder.sharedLink; + this.parent = builder.parent; + this.itemStatus = builder.itemStatus; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getDescription() { + return description; + } + + public Long getSize() { + return size; + } + + public FilePathCollectionField getPathCollection() { + return pathCollection; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + public Date getTrashedAt() { + return trashedAt; + } + + public Date getPurgedAt() { + return purgedAt; + } + + public Date getContentCreatedAt() { + return contentCreatedAt; + } + + public Date getContentModifiedAt() { + return contentModifiedAt; + } + + public UserMini getCreatedBy() { + return createdBy; + } + + public UserMini getModifiedBy() { + return modifiedBy; + } + + public UserMini getOwnedBy() { + return ownedBy; + } + + public FileSharedLinkField getSharedLink() { + return sharedLink; + } + + public FolderMini getParent() { + return parent; + } + + public EnumWrapper getItemStatus() { + return itemStatus; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + File casted = (File) o; + return Objects.equals(id, casted.id) + && Objects.equals(etag, casted.etag) + && Objects.equals(type, casted.type) + && Objects.equals(sequenceId, casted.sequenceId) + && Objects.equals(name, casted.name) + && Objects.equals(sha1, casted.sha1) + && Objects.equals(fileVersion, casted.fileVersion) + && Objects.equals(description, casted.description) + && Objects.equals(size, casted.size) + && Objects.equals(pathCollection, casted.pathCollection) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt) + && Objects.equals(trashedAt, casted.trashedAt) + && Objects.equals(purgedAt, casted.purgedAt) + && Objects.equals(contentCreatedAt, casted.contentCreatedAt) + && Objects.equals(contentModifiedAt, casted.contentModifiedAt) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(modifiedBy, casted.modifiedBy) + && Objects.equals(ownedBy, casted.ownedBy) + && Objects.equals(sharedLink, casted.sharedLink) + && Objects.equals(parent, casted.parent) + && Objects.equals(itemStatus, casted.itemStatus); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + etag, + type, + sequenceId, + name, + sha1, + fileVersion, + description, + size, + pathCollection, + createdAt, + modifiedAt, + trashedAt, + purgedAt, + contentCreatedAt, + contentModifiedAt, + createdBy, + modifiedBy, + ownedBy, + sharedLink, + parent, + itemStatus); + } + + @Override + public String toString() { + return "File{" + + "id='" + + id + + '\'' + + ", " + + "etag='" + + etag + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "sequenceId='" + + sequenceId + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "sha1='" + + sha1 + + '\'' + + ", " + + "fileVersion='" + + fileVersion + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "size='" + + size + + '\'' + + ", " + + "pathCollection='" + + pathCollection + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + ", " + + "trashedAt='" + + trashedAt + + '\'' + + ", " + + "purgedAt='" + + purgedAt + + '\'' + + ", " + + "contentCreatedAt='" + + contentCreatedAt + + '\'' + + ", " + + "contentModifiedAt='" + + contentModifiedAt + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "modifiedBy='" + + modifiedBy + + '\'' + + ", " + + "ownedBy='" + + ownedBy + + '\'' + + ", " + + "sharedLink='" + + sharedLink + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + ", " + + "itemStatus='" + + itemStatus + + '\'' + + "}"; + } + + public static class Builder extends FileMini.Builder { + + protected String description; + + protected Long size; + + protected FilePathCollectionField pathCollection; + + protected Date createdAt; + + protected Date modifiedAt; + + protected Date trashedAt; + + protected Date purgedAt; + + protected Date contentCreatedAt; + + protected Date contentModifiedAt; + + protected UserMini createdBy; + + protected UserMini modifiedBy; + + protected UserMini ownedBy; + + protected FileSharedLinkField sharedLink; + + protected FolderMini parent; + + protected EnumWrapper itemStatus; + + public Builder(String id) { + super(id); + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder size(Long size) { + this.size = size; + return this; + } + + public Builder pathCollection(FilePathCollectionField pathCollection) { + this.pathCollection = pathCollection; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + public Builder trashedAt(Date trashedAt) { + this.trashedAt = trashedAt; + this.markNullableFieldAsSet("trashed_at"); + return this; + } + + public Builder purgedAt(Date purgedAt) { + this.purgedAt = purgedAt; + this.markNullableFieldAsSet("purged_at"); + return this; + } + + public Builder contentCreatedAt(Date contentCreatedAt) { + this.contentCreatedAt = contentCreatedAt; + this.markNullableFieldAsSet("content_created_at"); + return this; + } + + public Builder contentModifiedAt(Date contentModifiedAt) { + this.contentModifiedAt = contentModifiedAt; + this.markNullableFieldAsSet("content_modified_at"); + return this; + } + + public Builder createdBy(UserMini createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder modifiedBy(UserMini modifiedBy) { + this.modifiedBy = modifiedBy; + return this; + } + + public Builder ownedBy(UserMini ownedBy) { + this.ownedBy = ownedBy; + return this; + } + + public Builder sharedLink(FileSharedLinkField sharedLink) { + this.sharedLink = sharedLink; + return this; + } + + public Builder parent(FolderMini parent) { + this.parent = parent; + this.markNullableFieldAsSet("parent"); + return this; + } + + public Builder itemStatus(FileItemStatusField itemStatus) { + this.itemStatus = new EnumWrapper(itemStatus); + return this; + } + + public Builder itemStatus(EnumWrapper itemStatus) { + this.itemStatus = itemStatus; + return this; + } + + @Override + public Builder etag(String etag) { + this.etag = etag; + this.markNullableFieldAsSet("etag"); + return this; + } + + @Override + public Builder type(FileBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder sequenceId(String sequenceId) { + this.sequenceId = sequenceId; + return this; + } + + @Override + public Builder name(String name) { + this.name = name; + return this; + } + + @Override + public Builder sha1(String sha1) { + this.sha1 = sha1; + return this; + } + + @Override + public Builder fileVersion(FileVersionMini fileVersion) { + this.fileVersion = fileVersion; + return this; + } + + public File build() { + return new File(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/file/FileItemStatusField.java b/src/main/java/com/box/sdkgen/schemas/file/FileItemStatusField.java new file mode 100644 index 000000000..8caaff860 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/file/FileItemStatusField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.file; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FileItemStatusField implements Valuable { + ACTIVE("active"), + TRASHED("trashed"), + DELETED("deleted"); + + private final String value; + + FileItemStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FileItemStatusFieldDeserializer + extends JsonDeserializer> { + + public FileItemStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FileItemStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FileItemStatusFieldSerializer + extends JsonSerializer> { + + public FileItemStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/file/FilePathCollectionField.java b/src/main/java/com/box/sdkgen/schemas/file/FilePathCollectionField.java new file mode 100644 index 000000000..46fcae8b8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/file/FilePathCollectionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.file; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FilePathCollectionField extends SerializableObject { + + @JsonProperty("total_count") + protected final long totalCount; + + protected final List entries; + + public FilePathCollectionField( + @JsonProperty("total_count") long totalCount, + @JsonProperty("entries") List entries) { + super(); + this.totalCount = totalCount; + this.entries = entries; + } + + public long getTotalCount() { + return totalCount; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FilePathCollectionField casted = (FilePathCollectionField) o; + return Objects.equals(totalCount, casted.totalCount) && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, entries); + } + + @Override + public String toString() { + return "FilePathCollectionField{" + + "totalCount='" + + totalCount + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkAccessField.java b/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkAccessField.java new file mode 100644 index 000000000..794851e0b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkAccessField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.file; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FileSharedLinkAccessField implements Valuable { + OPEN("open"), + COMPANY("company"), + COLLABORATORS("collaborators"); + + private final String value; + + FileSharedLinkAccessField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FileSharedLinkAccessFieldDeserializer + extends JsonDeserializer> { + + public FileSharedLinkAccessFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FileSharedLinkAccessField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FileSharedLinkAccessFieldSerializer + extends JsonSerializer> { + + public FileSharedLinkAccessFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkEffectiveAccessField.java b/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkEffectiveAccessField.java new file mode 100644 index 000000000..28d706dd8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkEffectiveAccessField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.file; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FileSharedLinkEffectiveAccessField implements Valuable { + OPEN("open"), + COMPANY("company"), + COLLABORATORS("collaborators"); + + private final String value; + + FileSharedLinkEffectiveAccessField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FileSharedLinkEffectiveAccessFieldDeserializer + extends JsonDeserializer> { + + public FileSharedLinkEffectiveAccessFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FileSharedLinkEffectiveAccessField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FileSharedLinkEffectiveAccessFieldSerializer + extends JsonSerializer> { + + public FileSharedLinkEffectiveAccessFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkEffectivePermissionField.java b/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkEffectivePermissionField.java new file mode 100644 index 000000000..951c475f7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkEffectivePermissionField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.schemas.file; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FileSharedLinkEffectivePermissionField implements Valuable { + CAN_EDIT("can_edit"), + CAN_DOWNLOAD("can_download"), + CAN_PREVIEW("can_preview"), + NO_ACCESS("no_access"); + + private final String value; + + FileSharedLinkEffectivePermissionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FileSharedLinkEffectivePermissionFieldDeserializer + extends JsonDeserializer> { + + public FileSharedLinkEffectivePermissionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FileSharedLinkEffectivePermissionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FileSharedLinkEffectivePermissionFieldSerializer + extends JsonSerializer> { + + public FileSharedLinkEffectivePermissionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkField.java b/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkField.java new file mode 100644 index 000000000..94e13a8c0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkField.java @@ -0,0 +1,433 @@ +package com.box.sdkgen.schemas.file; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileSharedLinkField extends SerializableObject { + + protected final String url; + + @JsonProperty("download_url") + @Nullable + protected String downloadUrl; + + @JsonProperty("vanity_url") + @Nullable + protected String vanityUrl; + + @JsonProperty("vanity_name") + @Nullable + protected String vanityName; + + @JsonDeserialize(using = FileSharedLinkAccessField.FileSharedLinkAccessFieldDeserializer.class) + @JsonSerialize(using = FileSharedLinkAccessField.FileSharedLinkAccessFieldSerializer.class) + protected EnumWrapper access; + + @JsonDeserialize( + using = + FileSharedLinkEffectiveAccessField.FileSharedLinkEffectiveAccessFieldDeserializer.class) + @JsonSerialize( + using = FileSharedLinkEffectiveAccessField.FileSharedLinkEffectiveAccessFieldSerializer.class) + @JsonProperty("effective_access") + protected final EnumWrapper effectiveAccess; + + @JsonDeserialize( + using = + FileSharedLinkEffectivePermissionField.FileSharedLinkEffectivePermissionFieldDeserializer + .class) + @JsonSerialize( + using = + FileSharedLinkEffectivePermissionField.FileSharedLinkEffectivePermissionFieldSerializer + .class) + @JsonProperty("effective_permission") + protected final EnumWrapper effectivePermission; + + @JsonProperty("unshared_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date unsharedAt; + + @JsonProperty("is_password_enabled") + protected final boolean isPasswordEnabled; + + protected FileSharedLinkPermissionsField permissions; + + @JsonProperty("download_count") + protected final long downloadCount; + + @JsonProperty("preview_count") + protected final long previewCount; + + public FileSharedLinkField( + String url, + FileSharedLinkEffectiveAccessField effectiveAccess, + FileSharedLinkEffectivePermissionField effectivePermission, + boolean isPasswordEnabled, + long downloadCount, + long previewCount) { + super(); + this.url = url; + this.effectiveAccess = new EnumWrapper(effectiveAccess); + this.effectivePermission = + new EnumWrapper(effectivePermission); + this.isPasswordEnabled = isPasswordEnabled; + this.downloadCount = downloadCount; + this.previewCount = previewCount; + } + + public FileSharedLinkField( + String url, + FileSharedLinkEffectiveAccessField effectiveAccess, + EnumWrapper effectivePermission, + boolean isPasswordEnabled, + long downloadCount, + long previewCount) { + super(); + this.url = url; + this.effectiveAccess = new EnumWrapper(effectiveAccess); + this.effectivePermission = effectivePermission; + this.isPasswordEnabled = isPasswordEnabled; + this.downloadCount = downloadCount; + this.previewCount = previewCount; + } + + public FileSharedLinkField( + String url, + EnumWrapper effectiveAccess, + FileSharedLinkEffectivePermissionField effectivePermission, + boolean isPasswordEnabled, + long downloadCount, + long previewCount) { + super(); + this.url = url; + this.effectiveAccess = effectiveAccess; + this.effectivePermission = + new EnumWrapper(effectivePermission); + this.isPasswordEnabled = isPasswordEnabled; + this.downloadCount = downloadCount; + this.previewCount = previewCount; + } + + public FileSharedLinkField( + @JsonProperty("url") String url, + @JsonProperty("effective_access") + EnumWrapper effectiveAccess, + @JsonProperty("effective_permission") + EnumWrapper effectivePermission, + @JsonProperty("is_password_enabled") boolean isPasswordEnabled, + @JsonProperty("download_count") long downloadCount, + @JsonProperty("preview_count") long previewCount) { + super(); + this.url = url; + this.effectiveAccess = effectiveAccess; + this.effectivePermission = effectivePermission; + this.isPasswordEnabled = isPasswordEnabled; + this.downloadCount = downloadCount; + this.previewCount = previewCount; + } + + protected FileSharedLinkField(Builder builder) { + super(); + this.url = builder.url; + this.downloadUrl = builder.downloadUrl; + this.vanityUrl = builder.vanityUrl; + this.vanityName = builder.vanityName; + this.access = builder.access; + this.effectiveAccess = builder.effectiveAccess; + this.effectivePermission = builder.effectivePermission; + this.unsharedAt = builder.unsharedAt; + this.isPasswordEnabled = builder.isPasswordEnabled; + this.permissions = builder.permissions; + this.downloadCount = builder.downloadCount; + this.previewCount = builder.previewCount; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getUrl() { + return url; + } + + public String getDownloadUrl() { + return downloadUrl; + } + + public String getVanityUrl() { + return vanityUrl; + } + + public String getVanityName() { + return vanityName; + } + + public EnumWrapper getAccess() { + return access; + } + + public EnumWrapper getEffectiveAccess() { + return effectiveAccess; + } + + public EnumWrapper getEffectivePermission() { + return effectivePermission; + } + + public Date getUnsharedAt() { + return unsharedAt; + } + + public boolean getIsPasswordEnabled() { + return isPasswordEnabled; + } + + public FileSharedLinkPermissionsField getPermissions() { + return permissions; + } + + public long getDownloadCount() { + return downloadCount; + } + + public long getPreviewCount() { + return previewCount; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileSharedLinkField casted = (FileSharedLinkField) o; + return Objects.equals(url, casted.url) + && Objects.equals(downloadUrl, casted.downloadUrl) + && Objects.equals(vanityUrl, casted.vanityUrl) + && Objects.equals(vanityName, casted.vanityName) + && Objects.equals(access, casted.access) + && Objects.equals(effectiveAccess, casted.effectiveAccess) + && Objects.equals(effectivePermission, casted.effectivePermission) + && Objects.equals(unsharedAt, casted.unsharedAt) + && Objects.equals(isPasswordEnabled, casted.isPasswordEnabled) + && Objects.equals(permissions, casted.permissions) + && Objects.equals(downloadCount, casted.downloadCount) + && Objects.equals(previewCount, casted.previewCount); + } + + @Override + public int hashCode() { + return Objects.hash( + url, + downloadUrl, + vanityUrl, + vanityName, + access, + effectiveAccess, + effectivePermission, + unsharedAt, + isPasswordEnabled, + permissions, + downloadCount, + previewCount); + } + + @Override + public String toString() { + return "FileSharedLinkField{" + + "url='" + + url + + '\'' + + ", " + + "downloadUrl='" + + downloadUrl + + '\'' + + ", " + + "vanityUrl='" + + vanityUrl + + '\'' + + ", " + + "vanityName='" + + vanityName + + '\'' + + ", " + + "access='" + + access + + '\'' + + ", " + + "effectiveAccess='" + + effectiveAccess + + '\'' + + ", " + + "effectivePermission='" + + effectivePermission + + '\'' + + ", " + + "unsharedAt='" + + unsharedAt + + '\'' + + ", " + + "isPasswordEnabled='" + + isPasswordEnabled + + '\'' + + ", " + + "permissions='" + + permissions + + '\'' + + ", " + + "downloadCount='" + + downloadCount + + '\'' + + ", " + + "previewCount='" + + previewCount + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String url; + + protected String downloadUrl; + + protected String vanityUrl; + + protected String vanityName; + + protected EnumWrapper access; + + protected final EnumWrapper effectiveAccess; + + protected final EnumWrapper effectivePermission; + + protected Date unsharedAt; + + protected final boolean isPasswordEnabled; + + protected FileSharedLinkPermissionsField permissions; + + protected final long downloadCount; + + protected final long previewCount; + + public Builder( + String url, + FileSharedLinkEffectiveAccessField effectiveAccess, + FileSharedLinkEffectivePermissionField effectivePermission, + boolean isPasswordEnabled, + long downloadCount, + long previewCount) { + super(); + this.url = url; + this.effectiveAccess = new EnumWrapper(effectiveAccess); + this.effectivePermission = + new EnumWrapper(effectivePermission); + this.isPasswordEnabled = isPasswordEnabled; + this.downloadCount = downloadCount; + this.previewCount = previewCount; + } + + public Builder( + String url, + FileSharedLinkEffectiveAccessField effectiveAccess, + EnumWrapper effectivePermission, + boolean isPasswordEnabled, + long downloadCount, + long previewCount) { + super(); + this.url = url; + this.effectiveAccess = new EnumWrapper(effectiveAccess); + this.effectivePermission = effectivePermission; + this.isPasswordEnabled = isPasswordEnabled; + this.downloadCount = downloadCount; + this.previewCount = previewCount; + } + + public Builder( + String url, + EnumWrapper effectiveAccess, + FileSharedLinkEffectivePermissionField effectivePermission, + boolean isPasswordEnabled, + long downloadCount, + long previewCount) { + super(); + this.url = url; + this.effectiveAccess = effectiveAccess; + this.effectivePermission = + new EnumWrapper(effectivePermission); + this.isPasswordEnabled = isPasswordEnabled; + this.downloadCount = downloadCount; + this.previewCount = previewCount; + } + + public Builder( + String url, + EnumWrapper effectiveAccess, + EnumWrapper effectivePermission, + boolean isPasswordEnabled, + long downloadCount, + long previewCount) { + super(); + this.url = url; + this.effectiveAccess = effectiveAccess; + this.effectivePermission = effectivePermission; + this.isPasswordEnabled = isPasswordEnabled; + this.downloadCount = downloadCount; + this.previewCount = previewCount; + } + + public Builder downloadUrl(String downloadUrl) { + this.downloadUrl = downloadUrl; + this.markNullableFieldAsSet("download_url"); + return this; + } + + public Builder vanityUrl(String vanityUrl) { + this.vanityUrl = vanityUrl; + this.markNullableFieldAsSet("vanity_url"); + return this; + } + + public Builder vanityName(String vanityName) { + this.vanityName = vanityName; + this.markNullableFieldAsSet("vanity_name"); + return this; + } + + public Builder access(FileSharedLinkAccessField access) { + this.access = new EnumWrapper(access); + return this; + } + + public Builder access(EnumWrapper access) { + this.access = access; + return this; + } + + public Builder unsharedAt(Date unsharedAt) { + this.unsharedAt = unsharedAt; + this.markNullableFieldAsSet("unshared_at"); + return this; + } + + public Builder permissions(FileSharedLinkPermissionsField permissions) { + this.permissions = permissions; + return this; + } + + public FileSharedLinkField build() { + return new FileSharedLinkField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkPermissionsField.java b/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkPermissionsField.java new file mode 100644 index 000000000..762c7e7be --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkPermissionsField.java @@ -0,0 +1,77 @@ +package com.box.sdkgen.schemas.file; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileSharedLinkPermissionsField extends SerializableObject { + + @JsonProperty("can_download") + protected final boolean canDownload; + + @JsonProperty("can_preview") + protected final boolean canPreview; + + @JsonProperty("can_edit") + protected final boolean canEdit; + + public FileSharedLinkPermissionsField( + @JsonProperty("can_download") boolean canDownload, + @JsonProperty("can_preview") boolean canPreview, + @JsonProperty("can_edit") boolean canEdit) { + super(); + this.canDownload = canDownload; + this.canPreview = canPreview; + this.canEdit = canEdit; + } + + public boolean getCanDownload() { + return canDownload; + } + + public boolean getCanPreview() { + return canPreview; + } + + public boolean getCanEdit() { + return canEdit; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileSharedLinkPermissionsField casted = (FileSharedLinkPermissionsField) o; + return Objects.equals(canDownload, casted.canDownload) + && Objects.equals(canPreview, casted.canPreview) + && Objects.equals(canEdit, casted.canEdit); + } + + @Override + public int hashCode() { + return Objects.hash(canDownload, canPreview, canEdit); + } + + @Override + public String toString() { + return "FileSharedLinkPermissionsField{" + + "canDownload='" + + canDownload + + '\'' + + ", " + + "canPreview='" + + canPreview + + '\'' + + ", " + + "canEdit='" + + canEdit + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filebase/FileBase.java b/src/main/java/com/box/sdkgen/schemas/filebase/FileBase.java new file mode 100644 index 000000000..31765f53b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filebase/FileBase.java @@ -0,0 +1,120 @@ +package com.box.sdkgen.schemas.filebase; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileBase extends SerializableObject { + + protected final String id; + + @Nullable protected String etag; + + @JsonDeserialize(using = FileBaseTypeField.FileBaseTypeFieldDeserializer.class) + @JsonSerialize(using = FileBaseTypeField.FileBaseTypeFieldSerializer.class) + protected EnumWrapper type; + + public FileBase(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = new EnumWrapper(FileBaseTypeField.FILE); + } + + protected FileBase(Builder builder) { + super(); + this.id = builder.id; + this.etag = builder.etag; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getEtag() { + return etag; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileBase casted = (FileBase) o; + return Objects.equals(id, casted.id) + && Objects.equals(etag, casted.etag) + && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, etag, type); + } + + @Override + public String toString() { + return "FileBase{" + + "id='" + + id + + '\'' + + ", " + + "etag='" + + etag + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected String etag; + + protected EnumWrapper type; + + public Builder(String id) { + super(); + this.id = id; + this.type = new EnumWrapper(FileBaseTypeField.FILE); + } + + public Builder etag(String etag) { + this.etag = etag; + this.markNullableFieldAsSet("etag"); + return this; + } + + public Builder type(FileBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public FileBase build() { + return new FileBase(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filebase/FileBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/filebase/FileBaseTypeField.java new file mode 100644 index 000000000..5f57f1703 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filebase/FileBaseTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.filebase; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FileBaseTypeField implements Valuable { + FILE("file"); + + private final String value; + + FileBaseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FileBaseTypeFieldDeserializer + extends JsonDeserializer> { + + public FileBaseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FileBaseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FileBaseTypeFieldSerializer + extends JsonSerializer> { + + public FileBaseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filebaseorfolderbaseorweblinkbase/FileBaseOrFolderBaseOrWebLinkBase.java b/src/main/java/com/box/sdkgen/schemas/filebaseorfolderbaseorweblinkbase/FileBaseOrFolderBaseOrWebLinkBase.java new file mode 100644 index 000000000..0f35889e9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filebaseorfolderbaseorweblinkbase/FileBaseOrFolderBaseOrWebLinkBase.java @@ -0,0 +1,115 @@ +package com.box.sdkgen.schemas.filebaseorfolderbaseorweblinkbase; + +import com.box.sdkgen.internal.OneOfThree; +import com.box.sdkgen.schemas.filebase.FileBase; +import com.box.sdkgen.schemas.folderbase.FolderBase; +import com.box.sdkgen.schemas.weblinkbase.WebLinkBase; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize( + using = FileBaseOrFolderBaseOrWebLinkBase.FileBaseOrFolderBaseOrWebLinkBaseDeserializer.class) +@JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) +public class FileBaseOrFolderBaseOrWebLinkBase + extends OneOfThree { + + protected final String id; + + protected final String etag; + + protected final String type; + + public FileBaseOrFolderBaseOrWebLinkBase(FileBase fileBase) { + super(fileBase, null, null); + this.id = fileBase.getId(); + this.etag = fileBase.getEtag(); + this.type = EnumWrapper.convertToString(fileBase.getType()); + } + + public FileBaseOrFolderBaseOrWebLinkBase(FolderBase folderBase) { + super(null, folderBase, null); + this.id = folderBase.getId(); + this.etag = folderBase.getEtag(); + this.type = EnumWrapper.convertToString(folderBase.getType()); + } + + public FileBaseOrFolderBaseOrWebLinkBase(WebLinkBase webLinkBase) { + super(null, null, webLinkBase); + this.id = webLinkBase.getId(); + this.etag = webLinkBase.getEtag(); + this.type = EnumWrapper.convertToString(webLinkBase.getType()); + } + + public boolean isFileBase() { + return value0 != null; + } + + public FileBase getFileBase() { + return value0; + } + + public boolean isFolderBase() { + return value1 != null; + } + + public FolderBase getFolderBase() { + return value1; + } + + public boolean isWebLinkBase() { + return value2 != null; + } + + public WebLinkBase getWebLinkBase() { + return value2; + } + + public String getId() { + return id; + } + + public String getEtag() { + return etag; + } + + public String getType() { + return type; + } + + static class FileBaseOrFolderBaseOrWebLinkBaseDeserializer + extends JsonDeserializer { + + public FileBaseOrFolderBaseOrWebLinkBaseDeserializer() { + super(); + } + + @Override + public FileBaseOrFolderBaseOrWebLinkBase deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "file": + return new FileBaseOrFolderBaseOrWebLinkBase( + JsonManager.deserialize(node, FileBase.class)); + case "folder": + return new FileBaseOrFolderBaseOrWebLinkBase( + JsonManager.deserialize(node, FolderBase.class)); + case "web_link": + return new FileBaseOrFolderBaseOrWebLinkBase( + JsonManager.deserialize(node, WebLinkBase.class)); + } + } + throw new JsonMappingException(jp, "Unable to deserialize FileBaseOrFolderBaseOrWebLinkBase"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/fileconflict/FileConflict.java b/src/main/java/com/box/sdkgen/schemas/fileconflict/FileConflict.java new file mode 100644 index 000000000..6497c1f27 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/fileconflict/FileConflict.java @@ -0,0 +1,132 @@ +package com.box.sdkgen.schemas.fileconflict; + +import com.box.sdkgen.schemas.filebase.FileBaseTypeField; +import com.box.sdkgen.schemas.filemini.FileMini; +import com.box.sdkgen.schemas.fileversionmini.FileVersionMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileConflict extends FileMini { + + public FileConflict(@JsonProperty("id") String id) { + super(id); + } + + protected FileConflict(Builder builder) { + super(builder); + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileConflict casted = (FileConflict) o; + return Objects.equals(id, casted.id) + && Objects.equals(etag, casted.etag) + && Objects.equals(type, casted.type) + && Objects.equals(sequenceId, casted.sequenceId) + && Objects.equals(name, casted.name) + && Objects.equals(sha1, casted.sha1) + && Objects.equals(fileVersion, casted.fileVersion); + } + + @Override + public int hashCode() { + return Objects.hash(id, etag, type, sequenceId, name, sha1, fileVersion); + } + + @Override + public String toString() { + return "FileConflict{" + + "id='" + + id + + '\'' + + ", " + + "etag='" + + etag + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "sequenceId='" + + sequenceId + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "sha1='" + + sha1 + + '\'' + + ", " + + "fileVersion='" + + fileVersion + + '\'' + + "}"; + } + + public static class Builder extends FileMini.Builder { + + public Builder(String id) { + super(id); + } + + @Override + public Builder etag(String etag) { + this.etag = etag; + this.markNullableFieldAsSet("etag"); + return this; + } + + @Override + public Builder type(FileBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder sequenceId(String sequenceId) { + this.sequenceId = sequenceId; + return this; + } + + @Override + public Builder name(String name) { + this.name = name; + return this; + } + + @Override + public Builder sha1(String sha1) { + this.sha1 = sha1; + return this; + } + + @Override + public Builder fileVersion(FileVersionMini fileVersion) { + this.fileVersion = fileVersion; + return this; + } + + public FileConflict build() { + return new FileConflict(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFull.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFull.java new file mode 100644 index 000000000..e4f41be32 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFull.java @@ -0,0 +1,912 @@ +package com.box.sdkgen.schemas.filefull; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.file.File; +import com.box.sdkgen.schemas.file.FileItemStatusField; +import com.box.sdkgen.schemas.file.FilePathCollectionField; +import com.box.sdkgen.schemas.file.FileSharedLinkField; +import com.box.sdkgen.schemas.filebase.FileBaseTypeField; +import com.box.sdkgen.schemas.fileversionmini.FileVersionMini; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileFull extends File { + + @JsonProperty("version_number") + protected String versionNumber; + + @JsonProperty("comment_count") + protected Long commentCount; + + protected FileFullPermissionsField permissions; + + protected List tags; + + @Nullable protected FileFullLockField lock; + + protected String extension; + + @JsonProperty("is_package") + protected Boolean isPackage; + + @JsonProperty("expiring_embed_link") + protected FileFullExpiringEmbedLinkField expiringEmbedLink; + + @JsonProperty("watermark_info") + protected FileFullWatermarkInfoField watermarkInfo; + + @JsonProperty("is_accessible_via_shared_link") + protected Boolean isAccessibleViaSharedLink; + + @JsonDeserialize(using = AllowedInviteeRolesDeserializer.class) + @JsonSerialize(using = AllowedInviteeRolesSerializer.class) + @JsonProperty("allowed_invitee_roles") + protected List> allowedInviteeRoles; + + @JsonProperty("is_externally_owned") + protected Boolean isExternallyOwned; + + @JsonProperty("has_collaborations") + protected Boolean hasCollaborations; + + protected FileFullMetadataField metadata; + + @JsonProperty("expires_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date expiresAt; + + protected FileFullRepresentationsField representations; + + protected FileFullClassificationField classification; + + @JsonProperty("uploader_display_name") + protected String uploaderDisplayName; + + @JsonProperty("disposition_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date dispositionAt; + + @JsonDeserialize(using = SharedLinkPermissionOptionsDeserializer.class) + @JsonSerialize(using = SharedLinkPermissionOptionsSerializer.class) + @JsonProperty("shared_link_permission_options") + @Nullable + protected List> sharedLinkPermissionOptions; + + @JsonProperty("is_associated_with_app_item") + protected Boolean isAssociatedWithAppItem; + + public FileFull(@JsonProperty("id") String id) { + super(id); + } + + protected FileFull(Builder builder) { + super(builder); + this.versionNumber = builder.versionNumber; + this.commentCount = builder.commentCount; + this.permissions = builder.permissions; + this.tags = builder.tags; + this.lock = builder.lock; + this.extension = builder.extension; + this.isPackage = builder.isPackage; + this.expiringEmbedLink = builder.expiringEmbedLink; + this.watermarkInfo = builder.watermarkInfo; + this.isAccessibleViaSharedLink = builder.isAccessibleViaSharedLink; + this.allowedInviteeRoles = builder.allowedInviteeRoles; + this.isExternallyOwned = builder.isExternallyOwned; + this.hasCollaborations = builder.hasCollaborations; + this.metadata = builder.metadata; + this.expiresAt = builder.expiresAt; + this.representations = builder.representations; + this.classification = builder.classification; + this.uploaderDisplayName = builder.uploaderDisplayName; + this.dispositionAt = builder.dispositionAt; + this.sharedLinkPermissionOptions = builder.sharedLinkPermissionOptions; + this.isAssociatedWithAppItem = builder.isAssociatedWithAppItem; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getVersionNumber() { + return versionNumber; + } + + public Long getCommentCount() { + return commentCount; + } + + public FileFullPermissionsField getPermissions() { + return permissions; + } + + public List getTags() { + return tags; + } + + public FileFullLockField getLock() { + return lock; + } + + public String getExtension() { + return extension; + } + + public Boolean getIsPackage() { + return isPackage; + } + + public FileFullExpiringEmbedLinkField getExpiringEmbedLink() { + return expiringEmbedLink; + } + + public FileFullWatermarkInfoField getWatermarkInfo() { + return watermarkInfo; + } + + public Boolean getIsAccessibleViaSharedLink() { + return isAccessibleViaSharedLink; + } + + public List> getAllowedInviteeRoles() { + return allowedInviteeRoles; + } + + public Boolean getIsExternallyOwned() { + return isExternallyOwned; + } + + public Boolean getHasCollaborations() { + return hasCollaborations; + } + + public FileFullMetadataField getMetadata() { + return metadata; + } + + public Date getExpiresAt() { + return expiresAt; + } + + public FileFullRepresentationsField getRepresentations() { + return representations; + } + + public FileFullClassificationField getClassification() { + return classification; + } + + public String getUploaderDisplayName() { + return uploaderDisplayName; + } + + public Date getDispositionAt() { + return dispositionAt; + } + + public List> + getSharedLinkPermissionOptions() { + return sharedLinkPermissionOptions; + } + + public Boolean getIsAssociatedWithAppItem() { + return isAssociatedWithAppItem; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileFull casted = (FileFull) o; + return Objects.equals(id, casted.id) + && Objects.equals(etag, casted.etag) + && Objects.equals(type, casted.type) + && Objects.equals(sequenceId, casted.sequenceId) + && Objects.equals(name, casted.name) + && Objects.equals(sha1, casted.sha1) + && Objects.equals(fileVersion, casted.fileVersion) + && Objects.equals(description, casted.description) + && Objects.equals(size, casted.size) + && Objects.equals(pathCollection, casted.pathCollection) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt) + && Objects.equals(trashedAt, casted.trashedAt) + && Objects.equals(purgedAt, casted.purgedAt) + && Objects.equals(contentCreatedAt, casted.contentCreatedAt) + && Objects.equals(contentModifiedAt, casted.contentModifiedAt) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(modifiedBy, casted.modifiedBy) + && Objects.equals(ownedBy, casted.ownedBy) + && Objects.equals(sharedLink, casted.sharedLink) + && Objects.equals(parent, casted.parent) + && Objects.equals(itemStatus, casted.itemStatus) + && Objects.equals(versionNumber, casted.versionNumber) + && Objects.equals(commentCount, casted.commentCount) + && Objects.equals(permissions, casted.permissions) + && Objects.equals(tags, casted.tags) + && Objects.equals(lock, casted.lock) + && Objects.equals(extension, casted.extension) + && Objects.equals(isPackage, casted.isPackage) + && Objects.equals(expiringEmbedLink, casted.expiringEmbedLink) + && Objects.equals(watermarkInfo, casted.watermarkInfo) + && Objects.equals(isAccessibleViaSharedLink, casted.isAccessibleViaSharedLink) + && Objects.equals(allowedInviteeRoles, casted.allowedInviteeRoles) + && Objects.equals(isExternallyOwned, casted.isExternallyOwned) + && Objects.equals(hasCollaborations, casted.hasCollaborations) + && Objects.equals(metadata, casted.metadata) + && Objects.equals(expiresAt, casted.expiresAt) + && Objects.equals(representations, casted.representations) + && Objects.equals(classification, casted.classification) + && Objects.equals(uploaderDisplayName, casted.uploaderDisplayName) + && Objects.equals(dispositionAt, casted.dispositionAt) + && Objects.equals(sharedLinkPermissionOptions, casted.sharedLinkPermissionOptions) + && Objects.equals(isAssociatedWithAppItem, casted.isAssociatedWithAppItem); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + etag, + type, + sequenceId, + name, + sha1, + fileVersion, + description, + size, + pathCollection, + createdAt, + modifiedAt, + trashedAt, + purgedAt, + contentCreatedAt, + contentModifiedAt, + createdBy, + modifiedBy, + ownedBy, + sharedLink, + parent, + itemStatus, + versionNumber, + commentCount, + permissions, + tags, + lock, + extension, + isPackage, + expiringEmbedLink, + watermarkInfo, + isAccessibleViaSharedLink, + allowedInviteeRoles, + isExternallyOwned, + hasCollaborations, + metadata, + expiresAt, + representations, + classification, + uploaderDisplayName, + dispositionAt, + sharedLinkPermissionOptions, + isAssociatedWithAppItem); + } + + @Override + public String toString() { + return "FileFull{" + + "id='" + + id + + '\'' + + ", " + + "etag='" + + etag + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "sequenceId='" + + sequenceId + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "sha1='" + + sha1 + + '\'' + + ", " + + "fileVersion='" + + fileVersion + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "size='" + + size + + '\'' + + ", " + + "pathCollection='" + + pathCollection + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + ", " + + "trashedAt='" + + trashedAt + + '\'' + + ", " + + "purgedAt='" + + purgedAt + + '\'' + + ", " + + "contentCreatedAt='" + + contentCreatedAt + + '\'' + + ", " + + "contentModifiedAt='" + + contentModifiedAt + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "modifiedBy='" + + modifiedBy + + '\'' + + ", " + + "ownedBy='" + + ownedBy + + '\'' + + ", " + + "sharedLink='" + + sharedLink + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + ", " + + "itemStatus='" + + itemStatus + + '\'' + + ", " + + "versionNumber='" + + versionNumber + + '\'' + + ", " + + "commentCount='" + + commentCount + + '\'' + + ", " + + "permissions='" + + permissions + + '\'' + + ", " + + "tags='" + + tags + + '\'' + + ", " + + "lock='" + + lock + + '\'' + + ", " + + "extension='" + + extension + + '\'' + + ", " + + "isPackage='" + + isPackage + + '\'' + + ", " + + "expiringEmbedLink='" + + expiringEmbedLink + + '\'' + + ", " + + "watermarkInfo='" + + watermarkInfo + + '\'' + + ", " + + "isAccessibleViaSharedLink='" + + isAccessibleViaSharedLink + + '\'' + + ", " + + "allowedInviteeRoles='" + + allowedInviteeRoles + + '\'' + + ", " + + "isExternallyOwned='" + + isExternallyOwned + + '\'' + + ", " + + "hasCollaborations='" + + hasCollaborations + + '\'' + + ", " + + "metadata='" + + metadata + + '\'' + + ", " + + "expiresAt='" + + expiresAt + + '\'' + + ", " + + "representations='" + + representations + + '\'' + + ", " + + "classification='" + + classification + + '\'' + + ", " + + "uploaderDisplayName='" + + uploaderDisplayName + + '\'' + + ", " + + "dispositionAt='" + + dispositionAt + + '\'' + + ", " + + "sharedLinkPermissionOptions='" + + sharedLinkPermissionOptions + + '\'' + + ", " + + "isAssociatedWithAppItem='" + + isAssociatedWithAppItem + + '\'' + + "}"; + } + + public static class Builder extends File.Builder { + + protected String versionNumber; + + protected Long commentCount; + + protected FileFullPermissionsField permissions; + + protected List tags; + + protected FileFullLockField lock; + + protected String extension; + + protected Boolean isPackage; + + protected FileFullExpiringEmbedLinkField expiringEmbedLink; + + protected FileFullWatermarkInfoField watermarkInfo; + + protected Boolean isAccessibleViaSharedLink; + + protected List> allowedInviteeRoles; + + protected Boolean isExternallyOwned; + + protected Boolean hasCollaborations; + + protected FileFullMetadataField metadata; + + protected Date expiresAt; + + protected FileFullRepresentationsField representations; + + protected FileFullClassificationField classification; + + protected String uploaderDisplayName; + + protected Date dispositionAt; + + protected List> + sharedLinkPermissionOptions; + + protected Boolean isAssociatedWithAppItem; + + public Builder(String id) { + super(id); + } + + public Builder versionNumber(String versionNumber) { + this.versionNumber = versionNumber; + return this; + } + + public Builder commentCount(Long commentCount) { + this.commentCount = commentCount; + return this; + } + + public Builder permissions(FileFullPermissionsField permissions) { + this.permissions = permissions; + return this; + } + + public Builder tags(List tags) { + this.tags = tags; + return this; + } + + public Builder lock(FileFullLockField lock) { + this.lock = lock; + this.markNullableFieldAsSet("lock"); + return this; + } + + public Builder extension(String extension) { + this.extension = extension; + return this; + } + + public Builder isPackage(Boolean isPackage) { + this.isPackage = isPackage; + return this; + } + + public Builder expiringEmbedLink(FileFullExpiringEmbedLinkField expiringEmbedLink) { + this.expiringEmbedLink = expiringEmbedLink; + return this; + } + + public Builder watermarkInfo(FileFullWatermarkInfoField watermarkInfo) { + this.watermarkInfo = watermarkInfo; + return this; + } + + public Builder isAccessibleViaSharedLink(Boolean isAccessibleViaSharedLink) { + this.isAccessibleViaSharedLink = isAccessibleViaSharedLink; + return this; + } + + public Builder allowedInviteeRoles(List allowedInviteeRoles) { + this.allowedInviteeRoles = + EnumWrapper.wrapValuableEnumList( + allowedInviteeRoles, FileFullAllowedInviteeRolesField.class); + return this; + } + + public Builder isExternallyOwned(Boolean isExternallyOwned) { + this.isExternallyOwned = isExternallyOwned; + return this; + } + + public Builder hasCollaborations(Boolean hasCollaborations) { + this.hasCollaborations = hasCollaborations; + return this; + } + + public Builder metadata(FileFullMetadataField metadata) { + this.metadata = metadata; + return this; + } + + public Builder expiresAt(Date expiresAt) { + this.expiresAt = expiresAt; + this.markNullableFieldAsSet("expires_at"); + return this; + } + + public Builder representations(FileFullRepresentationsField representations) { + this.representations = representations; + return this; + } + + public Builder classification(FileFullClassificationField classification) { + this.classification = classification; + return this; + } + + public Builder uploaderDisplayName(String uploaderDisplayName) { + this.uploaderDisplayName = uploaderDisplayName; + return this; + } + + public Builder dispositionAt(Date dispositionAt) { + this.dispositionAt = dispositionAt; + this.markNullableFieldAsSet("disposition_at"); + return this; + } + + public Builder sharedLinkPermissionOptions( + List sharedLinkPermissionOptions) { + this.sharedLinkPermissionOptions = + EnumWrapper.wrapValuableEnumList( + sharedLinkPermissionOptions, FileFullSharedLinkPermissionOptionsField.class); + this.markNullableFieldAsSet("shared_link_permission_options"); + return this; + } + + public Builder isAssociatedWithAppItem(Boolean isAssociatedWithAppItem) { + this.isAssociatedWithAppItem = isAssociatedWithAppItem; + return this; + } + + @Override + public Builder etag(String etag) { + this.etag = etag; + this.markNullableFieldAsSet("etag"); + return this; + } + + @Override + public Builder type(FileBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder sequenceId(String sequenceId) { + this.sequenceId = sequenceId; + return this; + } + + @Override + public Builder name(String name) { + this.name = name; + return this; + } + + @Override + public Builder sha1(String sha1) { + this.sha1 = sha1; + return this; + } + + @Override + public Builder fileVersion(FileVersionMini fileVersion) { + this.fileVersion = fileVersion; + return this; + } + + @Override + public Builder description(String description) { + this.description = description; + return this; + } + + @Override + public Builder size(Long size) { + this.size = size; + return this; + } + + @Override + public Builder pathCollection(FilePathCollectionField pathCollection) { + this.pathCollection = pathCollection; + return this; + } + + @Override + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + @Override + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + @Override + public Builder trashedAt(Date trashedAt) { + this.trashedAt = trashedAt; + this.markNullableFieldAsSet("trashed_at"); + return this; + } + + @Override + public Builder purgedAt(Date purgedAt) { + this.purgedAt = purgedAt; + this.markNullableFieldAsSet("purged_at"); + return this; + } + + @Override + public Builder contentCreatedAt(Date contentCreatedAt) { + this.contentCreatedAt = contentCreatedAt; + this.markNullableFieldAsSet("content_created_at"); + return this; + } + + @Override + public Builder contentModifiedAt(Date contentModifiedAt) { + this.contentModifiedAt = contentModifiedAt; + this.markNullableFieldAsSet("content_modified_at"); + return this; + } + + @Override + public Builder createdBy(UserMini createdBy) { + this.createdBy = createdBy; + return this; + } + + @Override + public Builder modifiedBy(UserMini modifiedBy) { + this.modifiedBy = modifiedBy; + return this; + } + + @Override + public Builder ownedBy(UserMini ownedBy) { + this.ownedBy = ownedBy; + return this; + } + + @Override + public Builder sharedLink(FileSharedLinkField sharedLink) { + this.sharedLink = sharedLink; + return this; + } + + @Override + public Builder parent(FolderMini parent) { + this.parent = parent; + this.markNullableFieldAsSet("parent"); + return this; + } + + @Override + public Builder itemStatus(FileItemStatusField itemStatus) { + this.itemStatus = new EnumWrapper(itemStatus); + return this; + } + + @Override + public Builder itemStatus(EnumWrapper itemStatus) { + this.itemStatus = itemStatus; + return this; + } + + public FileFull build() { + return new FileFull(this); + } + } + + public static class AllowedInviteeRolesDeserializer + extends JsonDeserializer>> { + + public final JsonDeserializer> + elementDeserializer; + + public AllowedInviteeRolesDeserializer() { + super(); + this.elementDeserializer = + new FileFullAllowedInviteeRolesField.FileFullAllowedInviteeRolesFieldDeserializer(); + } + + @Override + public List> deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + JsonNode node = p.getCodec().readTree(p); + List> elements = new ArrayList<>(); + for (JsonNode item : node) { + JsonParser pa = item.traverse(p.getCodec()); + pa.nextToken(); + elements.add(elementDeserializer.deserialize(pa, ctxt)); + } + return elements; + } + } + + public static class AllowedInviteeRolesSerializer + extends JsonSerializer>> { + + public final JsonSerializer> elementSerializer; + + public AllowedInviteeRolesSerializer() { + super(); + this.elementSerializer = + new FileFullAllowedInviteeRolesField.FileFullAllowedInviteeRolesFieldSerializer(); + } + + @Override + public void serialize( + List> value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeStartArray(); + for (EnumWrapper item : value) { + elementSerializer.serialize(item, gen, serializers); + } + gen.writeEndArray(); + } + } + + public static class SharedLinkPermissionOptionsDeserializer + extends JsonDeserializer>> { + + public final JsonDeserializer> + elementDeserializer; + + public SharedLinkPermissionOptionsDeserializer() { + super(); + this.elementDeserializer = + new FileFullSharedLinkPermissionOptionsField + .FileFullSharedLinkPermissionOptionsFieldDeserializer(); + } + + @Override + public List> deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + JsonNode node = p.getCodec().readTree(p); + List> elements = new ArrayList<>(); + for (JsonNode item : node) { + JsonParser pa = item.traverse(p.getCodec()); + pa.nextToken(); + elements.add(elementDeserializer.deserialize(pa, ctxt)); + } + return elements; + } + } + + public static class SharedLinkPermissionOptionsSerializer + extends JsonSerializer>> { + + public final JsonSerializer> + elementSerializer; + + public SharedLinkPermissionOptionsSerializer() { + super(); + this.elementSerializer = + new FileFullSharedLinkPermissionOptionsField + .FileFullSharedLinkPermissionOptionsFieldSerializer(); + } + + @Override + public void serialize( + List> value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeStartArray(); + for (EnumWrapper item : value) { + elementSerializer.serialize(item, gen, serializers); + } + gen.writeEndArray(); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullAllowedInviteeRolesField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullAllowedInviteeRolesField.java new file mode 100644 index 000000000..8d750adc8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullAllowedInviteeRolesField.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.schemas.filefull; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FileFullAllowedInviteeRolesField implements Valuable { + EDITOR("editor"), + VIEWER("viewer"), + PREVIEWER("previewer"), + UPLOADER("uploader"), + PREVIEWER_UPLOADER("previewer uploader"), + VIEWER_UPLOADER("viewer uploader"), + CO_OWNER("co-owner"); + + private final String value; + + FileFullAllowedInviteeRolesField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FileFullAllowedInviteeRolesFieldDeserializer + extends JsonDeserializer> { + + public FileFullAllowedInviteeRolesFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FileFullAllowedInviteeRolesField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FileFullAllowedInviteeRolesFieldSerializer + extends JsonSerializer> { + + public FileFullAllowedInviteeRolesFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullClassificationField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullClassificationField.java new file mode 100644 index 000000000..e08cc1bbb --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullClassificationField.java @@ -0,0 +1,104 @@ +package com.box.sdkgen.schemas.filefull; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileFullClassificationField extends SerializableObject { + + protected String name; + + protected String definition; + + protected String color; + + public FileFullClassificationField() { + super(); + } + + protected FileFullClassificationField(Builder builder) { + super(); + this.name = builder.name; + this.definition = builder.definition; + this.color = builder.color; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public String getDefinition() { + return definition; + } + + public String getColor() { + return color; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileFullClassificationField casted = (FileFullClassificationField) o; + return Objects.equals(name, casted.name) + && Objects.equals(definition, casted.definition) + && Objects.equals(color, casted.color); + } + + @Override + public int hashCode() { + return Objects.hash(name, definition, color); + } + + @Override + public String toString() { + return "FileFullClassificationField{" + + "name='" + + name + + '\'' + + ", " + + "definition='" + + definition + + '\'' + + ", " + + "color='" + + color + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String name; + + protected String definition; + + protected String color; + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder definition(String definition) { + this.definition = definition; + return this; + } + + public Builder color(String color) { + this.color = color; + return this; + } + + public FileFullClassificationField build() { + return new FileFullClassificationField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullExpiringEmbedLinkField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullExpiringEmbedLinkField.java new file mode 100644 index 000000000..36c7867c1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullExpiringEmbedLinkField.java @@ -0,0 +1,165 @@ +package com.box.sdkgen.schemas.filefull; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.fileorfolderscope.FileOrFolderScope; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileFullExpiringEmbedLinkField extends SerializableObject { + + @JsonProperty("access_token") + protected String accessToken; + + @JsonProperty("expires_in") + protected Long expiresIn; + + @JsonDeserialize( + using = + FileFullExpiringEmbedLinkTokenTypeField + .FileFullExpiringEmbedLinkTokenTypeFieldDeserializer.class) + @JsonSerialize( + using = + FileFullExpiringEmbedLinkTokenTypeField.FileFullExpiringEmbedLinkTokenTypeFieldSerializer + .class) + @JsonProperty("token_type") + protected EnumWrapper tokenType; + + @JsonProperty("restricted_to") + protected List restrictedTo; + + protected String url; + + public FileFullExpiringEmbedLinkField() { + super(); + } + + protected FileFullExpiringEmbedLinkField(Builder builder) { + super(); + this.accessToken = builder.accessToken; + this.expiresIn = builder.expiresIn; + this.tokenType = builder.tokenType; + this.restrictedTo = builder.restrictedTo; + this.url = builder.url; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getAccessToken() { + return accessToken; + } + + public Long getExpiresIn() { + return expiresIn; + } + + public EnumWrapper getTokenType() { + return tokenType; + } + + public List getRestrictedTo() { + return restrictedTo; + } + + public String getUrl() { + return url; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileFullExpiringEmbedLinkField casted = (FileFullExpiringEmbedLinkField) o; + return Objects.equals(accessToken, casted.accessToken) + && Objects.equals(expiresIn, casted.expiresIn) + && Objects.equals(tokenType, casted.tokenType) + && Objects.equals(restrictedTo, casted.restrictedTo) + && Objects.equals(url, casted.url); + } + + @Override + public int hashCode() { + return Objects.hash(accessToken, expiresIn, tokenType, restrictedTo, url); + } + + @Override + public String toString() { + return "FileFullExpiringEmbedLinkField{" + + "accessToken='" + + accessToken + + '\'' + + ", " + + "expiresIn='" + + expiresIn + + '\'' + + ", " + + "tokenType='" + + tokenType + + '\'' + + ", " + + "restrictedTo='" + + restrictedTo + + '\'' + + ", " + + "url='" + + url + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String accessToken; + + protected Long expiresIn; + + protected EnumWrapper tokenType; + + protected List restrictedTo; + + protected String url; + + public Builder accessToken(String accessToken) { + this.accessToken = accessToken; + return this; + } + + public Builder expiresIn(Long expiresIn) { + this.expiresIn = expiresIn; + return this; + } + + public Builder tokenType(FileFullExpiringEmbedLinkTokenTypeField tokenType) { + this.tokenType = new EnumWrapper(tokenType); + return this; + } + + public Builder tokenType(EnumWrapper tokenType) { + this.tokenType = tokenType; + return this; + } + + public Builder restrictedTo(List restrictedTo) { + this.restrictedTo = restrictedTo; + return this; + } + + public Builder url(String url) { + this.url = url; + return this; + } + + public FileFullExpiringEmbedLinkField build() { + return new FileFullExpiringEmbedLinkField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullExpiringEmbedLinkTokenTypeField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullExpiringEmbedLinkTokenTypeField.java new file mode 100644 index 000000000..4d09bf7eb --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullExpiringEmbedLinkTokenTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.filefull; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FileFullExpiringEmbedLinkTokenTypeField implements Valuable { + BEARER("bearer"); + + private final String value; + + FileFullExpiringEmbedLinkTokenTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FileFullExpiringEmbedLinkTokenTypeFieldDeserializer + extends JsonDeserializer> { + + public FileFullExpiringEmbedLinkTokenTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FileFullExpiringEmbedLinkTokenTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FileFullExpiringEmbedLinkTokenTypeFieldSerializer + extends JsonSerializer> { + + public FileFullExpiringEmbedLinkTokenTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockAppTypeField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockAppTypeField.java new file mode 100644 index 000000000..9bcdea427 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockAppTypeField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.schemas.filefull; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FileFullLockAppTypeField implements Valuable { + GSUITE("gsuite"), + OFFICE_WOPI("office_wopi"), + OFFICE_WOPIPLUS("office_wopiplus"), + OTHER("other"); + + private final String value; + + FileFullLockAppTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FileFullLockAppTypeFieldDeserializer + extends JsonDeserializer> { + + public FileFullLockAppTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FileFullLockAppTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FileFullLockAppTypeFieldSerializer + extends JsonSerializer> { + + public FileFullLockAppTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockField.java new file mode 100644 index 000000000..6796a5a4d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockField.java @@ -0,0 +1,214 @@ +package com.box.sdkgen.schemas.filefull; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileFullLockField extends SerializableObject { + + protected String id; + + @JsonDeserialize(using = FileFullLockTypeField.FileFullLockTypeFieldDeserializer.class) + @JsonSerialize(using = FileFullLockTypeField.FileFullLockTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("created_by") + protected UserMini createdBy; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("expired_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date expiredAt; + + @JsonProperty("is_download_prevented") + protected Boolean isDownloadPrevented; + + @JsonDeserialize(using = FileFullLockAppTypeField.FileFullLockAppTypeFieldDeserializer.class) + @JsonSerialize(using = FileFullLockAppTypeField.FileFullLockAppTypeFieldSerializer.class) + @JsonProperty("app_type") + @Nullable + protected EnumWrapper appType; + + public FileFullLockField() { + super(); + } + + protected FileFullLockField(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.createdBy = builder.createdBy; + this.createdAt = builder.createdAt; + this.expiredAt = builder.expiredAt; + this.isDownloadPrevented = builder.isDownloadPrevented; + this.appType = builder.appType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public UserMini getCreatedBy() { + return createdBy; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getExpiredAt() { + return expiredAt; + } + + public Boolean getIsDownloadPrevented() { + return isDownloadPrevented; + } + + public EnumWrapper getAppType() { + return appType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileFullLockField casted = (FileFullLockField) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(expiredAt, casted.expiredAt) + && Objects.equals(isDownloadPrevented, casted.isDownloadPrevented) + && Objects.equals(appType, casted.appType); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, createdBy, createdAt, expiredAt, isDownloadPrevented, appType); + } + + @Override + public String toString() { + return "FileFullLockField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "expiredAt='" + + expiredAt + + '\'' + + ", " + + "isDownloadPrevented='" + + isDownloadPrevented + + '\'' + + ", " + + "appType='" + + appType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected UserMini createdBy; + + protected Date createdAt; + + protected Date expiredAt; + + protected Boolean isDownloadPrevented; + + protected EnumWrapper appType; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(FileFullLockTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder createdBy(UserMini createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder expiredAt(Date expiredAt) { + this.expiredAt = expiredAt; + return this; + } + + public Builder isDownloadPrevented(Boolean isDownloadPrevented) { + this.isDownloadPrevented = isDownloadPrevented; + return this; + } + + public Builder appType(FileFullLockAppTypeField appType) { + this.appType = new EnumWrapper(appType); + this.markNullableFieldAsSet("app_type"); + return this; + } + + public Builder appType(EnumWrapper appType) { + this.appType = appType; + this.markNullableFieldAsSet("app_type"); + return this; + } + + public FileFullLockField build() { + return new FileFullLockField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockTypeField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockTypeField.java new file mode 100644 index 000000000..de399f504 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.filefull; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FileFullLockTypeField implements Valuable { + LOCK("lock"); + + private final String value; + + FileFullLockTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FileFullLockTypeFieldDeserializer + extends JsonDeserializer> { + + public FileFullLockTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FileFullLockTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FileFullLockTypeFieldSerializer + extends JsonSerializer> { + + public FileFullLockTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullMetadataField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullMetadataField.java new file mode 100644 index 000000000..b7b2e0d69 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullMetadataField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.schemas.filefull; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.metadatafull.MetadataFull; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Map; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileFullMetadataField extends SerializableObject { + + @JsonAnyGetter @JsonAnySetter protected Map> extraData; + + public FileFullMetadataField() { + super(); + } + + protected FileFullMetadataField(Builder builder) { + super(); + this.extraData = builder.extraData; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Map> getExtraData() { + return extraData; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileFullMetadataField casted = (FileFullMetadataField) o; + return Objects.equals(extraData, casted.extraData); + } + + @Override + public int hashCode() { + return Objects.hash(extraData); + } + + @Override + public String toString() { + return "FileFullMetadataField{" + "extraData='" + extraData + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Map> extraData; + + public Builder extraData(Map> extraData) { + this.extraData = extraData; + return this; + } + + public FileFullMetadataField build() { + return new FileFullMetadataField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullPermissionsField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullPermissionsField.java new file mode 100644 index 000000000..59591243d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullPermissionsField.java @@ -0,0 +1,215 @@ +package com.box.sdkgen.schemas.filefull; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileFullPermissionsField extends SerializableObject { + + @JsonProperty("can_delete") + protected final boolean canDelete; + + @JsonProperty("can_download") + protected final boolean canDownload; + + @JsonProperty("can_invite_collaborator") + protected final boolean canInviteCollaborator; + + @JsonProperty("can_rename") + protected final boolean canRename; + + @JsonProperty("can_set_share_access") + protected final boolean canSetShareAccess; + + @JsonProperty("can_share") + protected final boolean canShare; + + @JsonProperty("can_annotate") + protected final boolean canAnnotate; + + @JsonProperty("can_comment") + protected final boolean canComment; + + @JsonProperty("can_preview") + protected final boolean canPreview; + + @JsonProperty("can_upload") + protected final boolean canUpload; + + @JsonProperty("can_view_annotations_all") + protected final boolean canViewAnnotationsAll; + + @JsonProperty("can_view_annotations_self") + protected final boolean canViewAnnotationsSelf; + + public FileFullPermissionsField( + @JsonProperty("can_delete") boolean canDelete, + @JsonProperty("can_download") boolean canDownload, + @JsonProperty("can_invite_collaborator") boolean canInviteCollaborator, + @JsonProperty("can_rename") boolean canRename, + @JsonProperty("can_set_share_access") boolean canSetShareAccess, + @JsonProperty("can_share") boolean canShare, + @JsonProperty("can_annotate") boolean canAnnotate, + @JsonProperty("can_comment") boolean canComment, + @JsonProperty("can_preview") boolean canPreview, + @JsonProperty("can_upload") boolean canUpload, + @JsonProperty("can_view_annotations_all") boolean canViewAnnotationsAll, + @JsonProperty("can_view_annotations_self") boolean canViewAnnotationsSelf) { + super(); + this.canDelete = canDelete; + this.canDownload = canDownload; + this.canInviteCollaborator = canInviteCollaborator; + this.canRename = canRename; + this.canSetShareAccess = canSetShareAccess; + this.canShare = canShare; + this.canAnnotate = canAnnotate; + this.canComment = canComment; + this.canPreview = canPreview; + this.canUpload = canUpload; + this.canViewAnnotationsAll = canViewAnnotationsAll; + this.canViewAnnotationsSelf = canViewAnnotationsSelf; + } + + public boolean getCanDelete() { + return canDelete; + } + + public boolean getCanDownload() { + return canDownload; + } + + public boolean getCanInviteCollaborator() { + return canInviteCollaborator; + } + + public boolean getCanRename() { + return canRename; + } + + public boolean getCanSetShareAccess() { + return canSetShareAccess; + } + + public boolean getCanShare() { + return canShare; + } + + public boolean getCanAnnotate() { + return canAnnotate; + } + + public boolean getCanComment() { + return canComment; + } + + public boolean getCanPreview() { + return canPreview; + } + + public boolean getCanUpload() { + return canUpload; + } + + public boolean getCanViewAnnotationsAll() { + return canViewAnnotationsAll; + } + + public boolean getCanViewAnnotationsSelf() { + return canViewAnnotationsSelf; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileFullPermissionsField casted = (FileFullPermissionsField) o; + return Objects.equals(canDelete, casted.canDelete) + && Objects.equals(canDownload, casted.canDownload) + && Objects.equals(canInviteCollaborator, casted.canInviteCollaborator) + && Objects.equals(canRename, casted.canRename) + && Objects.equals(canSetShareAccess, casted.canSetShareAccess) + && Objects.equals(canShare, casted.canShare) + && Objects.equals(canAnnotate, casted.canAnnotate) + && Objects.equals(canComment, casted.canComment) + && Objects.equals(canPreview, casted.canPreview) + && Objects.equals(canUpload, casted.canUpload) + && Objects.equals(canViewAnnotationsAll, casted.canViewAnnotationsAll) + && Objects.equals(canViewAnnotationsSelf, casted.canViewAnnotationsSelf); + } + + @Override + public int hashCode() { + return Objects.hash( + canDelete, + canDownload, + canInviteCollaborator, + canRename, + canSetShareAccess, + canShare, + canAnnotate, + canComment, + canPreview, + canUpload, + canViewAnnotationsAll, + canViewAnnotationsSelf); + } + + @Override + public String toString() { + return "FileFullPermissionsField{" + + "canDelete='" + + canDelete + + '\'' + + ", " + + "canDownload='" + + canDownload + + '\'' + + ", " + + "canInviteCollaborator='" + + canInviteCollaborator + + '\'' + + ", " + + "canRename='" + + canRename + + '\'' + + ", " + + "canSetShareAccess='" + + canSetShareAccess + + '\'' + + ", " + + "canShare='" + + canShare + + '\'' + + ", " + + "canAnnotate='" + + canAnnotate + + '\'' + + ", " + + "canComment='" + + canComment + + '\'' + + ", " + + "canPreview='" + + canPreview + + '\'' + + ", " + + "canUpload='" + + canUpload + + '\'' + + ", " + + "canViewAnnotationsAll='" + + canViewAnnotationsAll + + '\'' + + ", " + + "canViewAnnotationsSelf='" + + canViewAnnotationsSelf + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesContentField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesContentField.java new file mode 100644 index 000000000..51af58efd --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesContentField.java @@ -0,0 +1,69 @@ +package com.box.sdkgen.schemas.filefull; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileFullRepresentationsEntriesContentField extends SerializableObject { + + @JsonProperty("url_template") + protected String urlTemplate; + + public FileFullRepresentationsEntriesContentField() { + super(); + } + + protected FileFullRepresentationsEntriesContentField(Builder builder) { + super(); + this.urlTemplate = builder.urlTemplate; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getUrlTemplate() { + return urlTemplate; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileFullRepresentationsEntriesContentField casted = + (FileFullRepresentationsEntriesContentField) o; + return Objects.equals(urlTemplate, casted.urlTemplate); + } + + @Override + public int hashCode() { + return Objects.hash(urlTemplate); + } + + @Override + public String toString() { + return "FileFullRepresentationsEntriesContentField{" + + "urlTemplate='" + + urlTemplate + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String urlTemplate; + + public Builder urlTemplate(String urlTemplate) { + this.urlTemplate = urlTemplate; + return this; + } + + public FileFullRepresentationsEntriesContentField build() { + return new FileFullRepresentationsEntriesContentField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesField.java new file mode 100644 index 000000000..8ab7d5d44 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesField.java @@ -0,0 +1,142 @@ +package com.box.sdkgen.schemas.filefull; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileFullRepresentationsEntriesField extends SerializableObject { + + protected FileFullRepresentationsEntriesContentField content; + + protected FileFullRepresentationsEntriesInfoField info; + + protected FileFullRepresentationsEntriesPropertiesField properties; + + protected String representation; + + protected FileFullRepresentationsEntriesStatusField status; + + public FileFullRepresentationsEntriesField() { + super(); + } + + protected FileFullRepresentationsEntriesField(Builder builder) { + super(); + this.content = builder.content; + this.info = builder.info; + this.properties = builder.properties; + this.representation = builder.representation; + this.status = builder.status; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public FileFullRepresentationsEntriesContentField getContent() { + return content; + } + + public FileFullRepresentationsEntriesInfoField getInfo() { + return info; + } + + public FileFullRepresentationsEntriesPropertiesField getProperties() { + return properties; + } + + public String getRepresentation() { + return representation; + } + + public FileFullRepresentationsEntriesStatusField getStatus() { + return status; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileFullRepresentationsEntriesField casted = (FileFullRepresentationsEntriesField) o; + return Objects.equals(content, casted.content) + && Objects.equals(info, casted.info) + && Objects.equals(properties, casted.properties) + && Objects.equals(representation, casted.representation) + && Objects.equals(status, casted.status); + } + + @Override + public int hashCode() { + return Objects.hash(content, info, properties, representation, status); + } + + @Override + public String toString() { + return "FileFullRepresentationsEntriesField{" + + "content='" + + content + + '\'' + + ", " + + "info='" + + info + + '\'' + + ", " + + "properties='" + + properties + + '\'' + + ", " + + "representation='" + + representation + + '\'' + + ", " + + "status='" + + status + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected FileFullRepresentationsEntriesContentField content; + + protected FileFullRepresentationsEntriesInfoField info; + + protected FileFullRepresentationsEntriesPropertiesField properties; + + protected String representation; + + protected FileFullRepresentationsEntriesStatusField status; + + public Builder content(FileFullRepresentationsEntriesContentField content) { + this.content = content; + return this; + } + + public Builder info(FileFullRepresentationsEntriesInfoField info) { + this.info = info; + return this; + } + + public Builder properties(FileFullRepresentationsEntriesPropertiesField properties) { + this.properties = properties; + return this; + } + + public Builder representation(String representation) { + this.representation = representation; + return this; + } + + public Builder status(FileFullRepresentationsEntriesStatusField status) { + this.status = status; + return this; + } + + public FileFullRepresentationsEntriesField build() { + return new FileFullRepresentationsEntriesField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesInfoField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesInfoField.java new file mode 100644 index 000000000..db4ea96ff --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesInfoField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.filefull; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileFullRepresentationsEntriesInfoField extends SerializableObject { + + protected String url; + + public FileFullRepresentationsEntriesInfoField() { + super(); + } + + protected FileFullRepresentationsEntriesInfoField(Builder builder) { + super(); + this.url = builder.url; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getUrl() { + return url; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileFullRepresentationsEntriesInfoField casted = (FileFullRepresentationsEntriesInfoField) o; + return Objects.equals(url, casted.url); + } + + @Override + public int hashCode() { + return Objects.hash(url); + } + + @Override + public String toString() { + return "FileFullRepresentationsEntriesInfoField{" + "url='" + url + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String url; + + public Builder url(String url) { + this.url = url; + return this; + } + + public FileFullRepresentationsEntriesInfoField build() { + return new FileFullRepresentationsEntriesInfoField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesPropertiesField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesPropertiesField.java new file mode 100644 index 000000000..6d5005da2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesPropertiesField.java @@ -0,0 +1,105 @@ +package com.box.sdkgen.schemas.filefull; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileFullRepresentationsEntriesPropertiesField extends SerializableObject { + + protected String dimensions; + + protected String paged; + + protected String thumb; + + public FileFullRepresentationsEntriesPropertiesField() { + super(); + } + + protected FileFullRepresentationsEntriesPropertiesField(Builder builder) { + super(); + this.dimensions = builder.dimensions; + this.paged = builder.paged; + this.thumb = builder.thumb; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getDimensions() { + return dimensions; + } + + public String getPaged() { + return paged; + } + + public String getThumb() { + return thumb; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileFullRepresentationsEntriesPropertiesField casted = + (FileFullRepresentationsEntriesPropertiesField) o; + return Objects.equals(dimensions, casted.dimensions) + && Objects.equals(paged, casted.paged) + && Objects.equals(thumb, casted.thumb); + } + + @Override + public int hashCode() { + return Objects.hash(dimensions, paged, thumb); + } + + @Override + public String toString() { + return "FileFullRepresentationsEntriesPropertiesField{" + + "dimensions='" + + dimensions + + '\'' + + ", " + + "paged='" + + paged + + '\'' + + ", " + + "thumb='" + + thumb + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String dimensions; + + protected String paged; + + protected String thumb; + + public Builder dimensions(String dimensions) { + this.dimensions = dimensions; + return this; + } + + public Builder paged(String paged) { + this.paged = paged; + return this; + } + + public Builder thumb(String thumb) { + this.thumb = thumb; + return this; + } + + public FileFullRepresentationsEntriesPropertiesField build() { + return new FileFullRepresentationsEntriesPropertiesField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesStatusField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesStatusField.java new file mode 100644 index 000000000..425706879 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesStatusField.java @@ -0,0 +1,79 @@ +package com.box.sdkgen.schemas.filefull; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileFullRepresentationsEntriesStatusField extends SerializableObject { + + @JsonDeserialize( + using = + FileFullRepresentationsEntriesStatusStateField + .FileFullRepresentationsEntriesStatusStateFieldDeserializer.class) + @JsonSerialize( + using = + FileFullRepresentationsEntriesStatusStateField + .FileFullRepresentationsEntriesStatusStateFieldSerializer.class) + protected EnumWrapper state; + + public FileFullRepresentationsEntriesStatusField() { + super(); + } + + protected FileFullRepresentationsEntriesStatusField(Builder builder) { + super(); + this.state = builder.state; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getState() { + return state; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileFullRepresentationsEntriesStatusField casted = + (FileFullRepresentationsEntriesStatusField) o; + return Objects.equals(state, casted.state); + } + + @Override + public int hashCode() { + return Objects.hash(state); + } + + @Override + public String toString() { + return "FileFullRepresentationsEntriesStatusField{" + "state='" + state + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper state; + + public Builder state(FileFullRepresentationsEntriesStatusStateField state) { + this.state = new EnumWrapper(state); + return this; + } + + public Builder state(EnumWrapper state) { + this.state = state; + return this; + } + + public FileFullRepresentationsEntriesStatusField build() { + return new FileFullRepresentationsEntriesStatusField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesStatusStateField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesStatusStateField.java new file mode 100644 index 000000000..ef4e8cef0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesStatusStateField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.schemas.filefull; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FileFullRepresentationsEntriesStatusStateField implements Valuable { + SUCCESS("success"), + VIEWABLE("viewable"), + PENDING("pending"), + NONE("none"); + + private final String value; + + FileFullRepresentationsEntriesStatusStateField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FileFullRepresentationsEntriesStatusStateFieldDeserializer + extends JsonDeserializer> { + + public FileFullRepresentationsEntriesStatusStateFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FileFullRepresentationsEntriesStatusStateField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FileFullRepresentationsEntriesStatusStateFieldSerializer + extends JsonSerializer> { + + public FileFullRepresentationsEntriesStatusStateFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsField.java new file mode 100644 index 000000000..26dc54d54 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.filefull; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileFullRepresentationsField extends SerializableObject { + + protected List entries; + + public FileFullRepresentationsField() { + super(); + } + + protected FileFullRepresentationsField(Builder builder) { + super(); + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileFullRepresentationsField casted = (FileFullRepresentationsField) o; + return Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(entries); + } + + @Override + public String toString() { + return "FileFullRepresentationsField{" + "entries='" + entries + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List entries; + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public FileFullRepresentationsField build() { + return new FileFullRepresentationsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullSharedLinkPermissionOptionsField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullSharedLinkPermissionOptionsField.java new file mode 100644 index 000000000..79a522a73 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullSharedLinkPermissionOptionsField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.filefull; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FileFullSharedLinkPermissionOptionsField implements Valuable { + CAN_PREVIEW("can_preview"), + CAN_DOWNLOAD("can_download"), + CAN_EDIT("can_edit"); + + private final String value; + + FileFullSharedLinkPermissionOptionsField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FileFullSharedLinkPermissionOptionsFieldDeserializer + extends JsonDeserializer> { + + public FileFullSharedLinkPermissionOptionsFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FileFullSharedLinkPermissionOptionsField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FileFullSharedLinkPermissionOptionsFieldSerializer + extends JsonSerializer> { + + public FileFullSharedLinkPermissionOptionsFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullWatermarkInfoField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullWatermarkInfoField.java new file mode 100644 index 000000000..0ece9aff2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullWatermarkInfoField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.filefull; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileFullWatermarkInfoField extends SerializableObject { + + @JsonProperty("is_watermarked") + protected Boolean isWatermarked; + + public FileFullWatermarkInfoField() { + super(); + } + + protected FileFullWatermarkInfoField(Builder builder) { + super(); + this.isWatermarked = builder.isWatermarked; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getIsWatermarked() { + return isWatermarked; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileFullWatermarkInfoField casted = (FileFullWatermarkInfoField) o; + return Objects.equals(isWatermarked, casted.isWatermarked); + } + + @Override + public int hashCode() { + return Objects.hash(isWatermarked); + } + + @Override + public String toString() { + return "FileFullWatermarkInfoField{" + "isWatermarked='" + isWatermarked + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean isWatermarked; + + public Builder isWatermarked(Boolean isWatermarked) { + this.isWatermarked = isWatermarked; + return this; + } + + public FileFullWatermarkInfoField build() { + return new FileFullWatermarkInfoField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filefullorfolderfull/FileFullOrFolderFull.java b/src/main/java/com/box/sdkgen/schemas/filefullorfolderfull/FileFullOrFolderFull.java new file mode 100644 index 000000000..a8143ff6c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filefullorfolderfull/FileFullOrFolderFull.java @@ -0,0 +1,263 @@ +package com.box.sdkgen.schemas.filefullorfolderfull; + +import com.box.sdkgen.internal.OneOfTwo; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; +import java.util.Date; +import java.util.List; + +@JsonDeserialize(using = FileFullOrFolderFull.FileFullOrFolderFullDeserializer.class) +@JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) +public class FileFullOrFolderFull extends OneOfTwo { + + protected final List tags; + + protected final Boolean isAccessibleViaSharedLink; + + protected final List allowedInviteeRoles; + + protected final Boolean isExternallyOwned; + + protected final Boolean hasCollaborations; + + protected final Boolean isAssociatedWithAppItem; + + protected final String description; + + protected final Long size; + + protected final Date createdAt; + + protected final Date modifiedAt; + + protected final Date trashedAt; + + protected final Date purgedAt; + + protected final Date contentCreatedAt; + + protected final Date contentModifiedAt; + + protected final UserMini createdBy; + + protected final UserMini modifiedBy; + + protected final UserMini ownedBy; + + protected final FolderMini parent; + + protected final String itemStatus; + + protected final String sequenceId; + + protected final String name; + + protected final String id; + + protected final String etag; + + protected final String type; + + public FileFullOrFolderFull(FileFull fileFull) { + super(fileFull, null); + this.tags = fileFull.getTags(); + this.isAccessibleViaSharedLink = fileFull.getIsAccessibleViaSharedLink(); + this.allowedInviteeRoles = EnumWrapper.convertToString(fileFull.getAllowedInviteeRoles()); + this.isExternallyOwned = fileFull.getIsExternallyOwned(); + this.hasCollaborations = fileFull.getHasCollaborations(); + this.isAssociatedWithAppItem = fileFull.getIsAssociatedWithAppItem(); + this.description = fileFull.getDescription(); + this.size = fileFull.getSize(); + this.createdAt = fileFull.getCreatedAt(); + this.modifiedAt = fileFull.getModifiedAt(); + this.trashedAt = fileFull.getTrashedAt(); + this.purgedAt = fileFull.getPurgedAt(); + this.contentCreatedAt = fileFull.getContentCreatedAt(); + this.contentModifiedAt = fileFull.getContentModifiedAt(); + this.createdBy = fileFull.getCreatedBy(); + this.modifiedBy = fileFull.getModifiedBy(); + this.ownedBy = fileFull.getOwnedBy(); + this.parent = fileFull.getParent(); + this.itemStatus = EnumWrapper.convertToString(fileFull.getItemStatus()); + this.sequenceId = fileFull.getSequenceId(); + this.name = fileFull.getName(); + this.id = fileFull.getId(); + this.etag = fileFull.getEtag(); + this.type = EnumWrapper.convertToString(fileFull.getType()); + } + + public FileFullOrFolderFull(FolderFull folderFull) { + super(null, folderFull); + this.tags = folderFull.getTags(); + this.isAccessibleViaSharedLink = folderFull.getIsAccessibleViaSharedLink(); + this.allowedInviteeRoles = EnumWrapper.convertToString(folderFull.getAllowedInviteeRoles()); + this.isExternallyOwned = folderFull.getIsExternallyOwned(); + this.hasCollaborations = folderFull.getHasCollaborations(); + this.isAssociatedWithAppItem = folderFull.getIsAssociatedWithAppItem(); + this.description = folderFull.getDescription(); + this.size = folderFull.getSize(); + this.createdAt = folderFull.getCreatedAt(); + this.modifiedAt = folderFull.getModifiedAt(); + this.trashedAt = folderFull.getTrashedAt(); + this.purgedAt = folderFull.getPurgedAt(); + this.contentCreatedAt = folderFull.getContentCreatedAt(); + this.contentModifiedAt = folderFull.getContentModifiedAt(); + this.createdBy = folderFull.getCreatedBy(); + this.modifiedBy = folderFull.getModifiedBy(); + this.ownedBy = folderFull.getOwnedBy(); + this.parent = folderFull.getParent(); + this.itemStatus = EnumWrapper.convertToString(folderFull.getItemStatus()); + this.sequenceId = folderFull.getSequenceId(); + this.name = folderFull.getName(); + this.id = folderFull.getId(); + this.etag = folderFull.getEtag(); + this.type = EnumWrapper.convertToString(folderFull.getType()); + } + + public boolean isFileFull() { + return value0 != null; + } + + public FileFull getFileFull() { + return value0; + } + + public boolean isFolderFull() { + return value1 != null; + } + + public FolderFull getFolderFull() { + return value1; + } + + public List getTags() { + return tags; + } + + public boolean getIsAccessibleViaSharedLink() { + return isAccessibleViaSharedLink; + } + + public List getAllowedInviteeRoles() { + return allowedInviteeRoles; + } + + public boolean getIsExternallyOwned() { + return isExternallyOwned; + } + + public boolean getHasCollaborations() { + return hasCollaborations; + } + + public boolean getIsAssociatedWithAppItem() { + return isAssociatedWithAppItem; + } + + public String getDescription() { + return description; + } + + public long getSize() { + return size; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + public Date getTrashedAt() { + return trashedAt; + } + + public Date getPurgedAt() { + return purgedAt; + } + + public Date getContentCreatedAt() { + return contentCreatedAt; + } + + public Date getContentModifiedAt() { + return contentModifiedAt; + } + + public UserMini getCreatedBy() { + return createdBy; + } + + public UserMini getModifiedBy() { + return modifiedBy; + } + + public UserMini getOwnedBy() { + return ownedBy; + } + + public FolderMini getParent() { + return parent; + } + + public String getItemStatus() { + return itemStatus; + } + + public String getSequenceId() { + return sequenceId; + } + + public String getName() { + return name; + } + + public String getId() { + return id; + } + + public String getEtag() { + return etag; + } + + public String getType() { + return type; + } + + static class FileFullOrFolderFullDeserializer extends JsonDeserializer { + + public FileFullOrFolderFullDeserializer() { + super(); + } + + @Override + public FileFullOrFolderFull deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "file": + return new FileFullOrFolderFull(JsonManager.deserialize(node, FileFull.class)); + case "folder": + return new FileFullOrFolderFull(JsonManager.deserialize(node, FolderFull.class)); + } + } + throw new JsonMappingException(jp, "Unable to deserialize FileFullOrFolderFull"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filefullorfolderfullorweblink/FileFullOrFolderFullOrWebLink.java b/src/main/java/com/box/sdkgen/schemas/filefullorfolderfullorweblink/FileFullOrFolderFullOrWebLink.java new file mode 100644 index 000000000..941ba7d78 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filefullorfolderfullorweblink/FileFullOrFolderFullOrWebLink.java @@ -0,0 +1,223 @@ +package com.box.sdkgen.schemas.filefullorfolderfullorweblink; + +import com.box.sdkgen.internal.OneOfThree; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.schemas.weblink.WebLink; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; +import java.util.Date; + +@JsonDeserialize( + using = FileFullOrFolderFullOrWebLink.FileFullOrFolderFullOrWebLinkDeserializer.class) +@JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) +public class FileFullOrFolderFullOrWebLink extends OneOfThree { + + protected final String description; + + protected final Date createdAt; + + protected final Date modifiedAt; + + protected final Date trashedAt; + + protected final Date purgedAt; + + protected final UserMini createdBy; + + protected final UserMini modifiedBy; + + protected final UserMini ownedBy; + + protected final FolderMini parent; + + protected final String itemStatus; + + protected final String sequenceId; + + protected final String name; + + protected final String id; + + protected final String etag; + + protected final String type; + + public FileFullOrFolderFullOrWebLink(FileFull fileFull) { + super(fileFull, null, null); + this.description = fileFull.getDescription(); + this.createdAt = fileFull.getCreatedAt(); + this.modifiedAt = fileFull.getModifiedAt(); + this.trashedAt = fileFull.getTrashedAt(); + this.purgedAt = fileFull.getPurgedAt(); + this.createdBy = fileFull.getCreatedBy(); + this.modifiedBy = fileFull.getModifiedBy(); + this.ownedBy = fileFull.getOwnedBy(); + this.parent = fileFull.getParent(); + this.itemStatus = EnumWrapper.convertToString(fileFull.getItemStatus()); + this.sequenceId = fileFull.getSequenceId(); + this.name = fileFull.getName(); + this.id = fileFull.getId(); + this.etag = fileFull.getEtag(); + this.type = EnumWrapper.convertToString(fileFull.getType()); + } + + public FileFullOrFolderFullOrWebLink(FolderFull folderFull) { + super(null, folderFull, null); + this.description = folderFull.getDescription(); + this.createdAt = folderFull.getCreatedAt(); + this.modifiedAt = folderFull.getModifiedAt(); + this.trashedAt = folderFull.getTrashedAt(); + this.purgedAt = folderFull.getPurgedAt(); + this.createdBy = folderFull.getCreatedBy(); + this.modifiedBy = folderFull.getModifiedBy(); + this.ownedBy = folderFull.getOwnedBy(); + this.parent = folderFull.getParent(); + this.itemStatus = EnumWrapper.convertToString(folderFull.getItemStatus()); + this.sequenceId = folderFull.getSequenceId(); + this.name = folderFull.getName(); + this.id = folderFull.getId(); + this.etag = folderFull.getEtag(); + this.type = EnumWrapper.convertToString(folderFull.getType()); + } + + public FileFullOrFolderFullOrWebLink(WebLink webLink) { + super(null, null, webLink); + this.description = webLink.getDescription(); + this.createdAt = webLink.getCreatedAt(); + this.modifiedAt = webLink.getModifiedAt(); + this.trashedAt = webLink.getTrashedAt(); + this.purgedAt = webLink.getPurgedAt(); + this.createdBy = webLink.getCreatedBy(); + this.modifiedBy = webLink.getModifiedBy(); + this.ownedBy = webLink.getOwnedBy(); + this.parent = webLink.getParent(); + this.itemStatus = EnumWrapper.convertToString(webLink.getItemStatus()); + this.sequenceId = webLink.getSequenceId(); + this.name = webLink.getName(); + this.id = webLink.getId(); + this.etag = webLink.getEtag(); + this.type = EnumWrapper.convertToString(webLink.getType()); + } + + public boolean isFileFull() { + return value0 != null; + } + + public FileFull getFileFull() { + return value0; + } + + public boolean isFolderFull() { + return value1 != null; + } + + public FolderFull getFolderFull() { + return value1; + } + + public boolean isWebLink() { + return value2 != null; + } + + public WebLink getWebLink() { + return value2; + } + + public String getDescription() { + return description; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + public Date getTrashedAt() { + return trashedAt; + } + + public Date getPurgedAt() { + return purgedAt; + } + + public UserMini getCreatedBy() { + return createdBy; + } + + public UserMini getModifiedBy() { + return modifiedBy; + } + + public UserMini getOwnedBy() { + return ownedBy; + } + + public FolderMini getParent() { + return parent; + } + + public String getItemStatus() { + return itemStatus; + } + + public String getSequenceId() { + return sequenceId; + } + + public String getName() { + return name; + } + + public String getId() { + return id; + } + + public String getEtag() { + return etag; + } + + public String getType() { + return type; + } + + static class FileFullOrFolderFullOrWebLinkDeserializer + extends JsonDeserializer { + + public FileFullOrFolderFullOrWebLinkDeserializer() { + super(); + } + + @Override + public FileFullOrFolderFullOrWebLink deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "file": + return new FileFullOrFolderFullOrWebLink(JsonManager.deserialize(node, FileFull.class)); + case "folder": + return new FileFullOrFolderFullOrWebLink( + JsonManager.deserialize(node, FolderFull.class)); + case "web_link": + return new FileFullOrFolderFullOrWebLink(JsonManager.deserialize(node, WebLink.class)); + } + } + throw new JsonMappingException(jp, "Unable to deserialize FileFullOrFolderFullOrWebLink"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filefullorfolderminiorweblink/FileFullOrFolderMiniOrWebLink.java b/src/main/java/com/box/sdkgen/schemas/filefullorfolderminiorweblink/FileFullOrFolderMiniOrWebLink.java new file mode 100644 index 000000000..72122e0b7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filefullorfolderminiorweblink/FileFullOrFolderMiniOrWebLink.java @@ -0,0 +1,130 @@ +package com.box.sdkgen.schemas.filefullorfolderminiorweblink; + +import com.box.sdkgen.internal.OneOfThree; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.weblink.WebLink; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize( + using = FileFullOrFolderMiniOrWebLink.FileFullOrFolderMiniOrWebLinkDeserializer.class) +@JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) +public class FileFullOrFolderMiniOrWebLink extends OneOfThree { + + protected final String sequenceId; + + protected final String name; + + protected final String id; + + protected final String etag; + + protected final String type; + + public FileFullOrFolderMiniOrWebLink(FileFull fileFull) { + super(fileFull, null, null); + this.sequenceId = fileFull.getSequenceId(); + this.name = fileFull.getName(); + this.id = fileFull.getId(); + this.etag = fileFull.getEtag(); + this.type = EnumWrapper.convertToString(fileFull.getType()); + } + + public FileFullOrFolderMiniOrWebLink(FolderMini folderMini) { + super(null, folderMini, null); + this.sequenceId = folderMini.getSequenceId(); + this.name = folderMini.getName(); + this.id = folderMini.getId(); + this.etag = folderMini.getEtag(); + this.type = EnumWrapper.convertToString(folderMini.getType()); + } + + public FileFullOrFolderMiniOrWebLink(WebLink webLink) { + super(null, null, webLink); + this.sequenceId = webLink.getSequenceId(); + this.name = webLink.getName(); + this.id = webLink.getId(); + this.etag = webLink.getEtag(); + this.type = EnumWrapper.convertToString(webLink.getType()); + } + + public boolean isFileFull() { + return value0 != null; + } + + public FileFull getFileFull() { + return value0; + } + + public boolean isFolderMini() { + return value1 != null; + } + + public FolderMini getFolderMini() { + return value1; + } + + public boolean isWebLink() { + return value2 != null; + } + + public WebLink getWebLink() { + return value2; + } + + public String getSequenceId() { + return sequenceId; + } + + public String getName() { + return name; + } + + public String getId() { + return id; + } + + public String getEtag() { + return etag; + } + + public String getType() { + return type; + } + + static class FileFullOrFolderMiniOrWebLinkDeserializer + extends JsonDeserializer { + + public FileFullOrFolderMiniOrWebLinkDeserializer() { + super(); + } + + @Override + public FileFullOrFolderMiniOrWebLink deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "file": + return new FileFullOrFolderMiniOrWebLink(JsonManager.deserialize(node, FileFull.class)); + case "folder": + return new FileFullOrFolderMiniOrWebLink( + JsonManager.deserialize(node, FolderMini.class)); + case "web_link": + return new FileFullOrFolderMiniOrWebLink(JsonManager.deserialize(node, WebLink.class)); + } + } + throw new JsonMappingException(jp, "Unable to deserialize FileFullOrFolderMiniOrWebLink"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filemini/FileMini.java b/src/main/java/com/box/sdkgen/schemas/filemini/FileMini.java new file mode 100644 index 000000000..15282db6c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filemini/FileMini.java @@ -0,0 +1,166 @@ +package com.box.sdkgen.schemas.filemini; + +import com.box.sdkgen.schemas.filebase.FileBase; +import com.box.sdkgen.schemas.filebase.FileBaseTypeField; +import com.box.sdkgen.schemas.fileversionmini.FileVersionMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileMini extends FileBase { + + @JsonProperty("sequence_id") + protected String sequenceId; + + protected String name; + + protected String sha1; + + @JsonProperty("file_version") + protected FileVersionMini fileVersion; + + public FileMini(@JsonProperty("id") String id) { + super(id); + } + + protected FileMini(Builder builder) { + super(builder); + this.sequenceId = builder.sequenceId; + this.name = builder.name; + this.sha1 = builder.sha1; + this.fileVersion = builder.fileVersion; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getSequenceId() { + return sequenceId; + } + + public String getName() { + return name; + } + + public String getSha1() { + return sha1; + } + + public FileVersionMini getFileVersion() { + return fileVersion; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileMini casted = (FileMini) o; + return Objects.equals(id, casted.id) + && Objects.equals(etag, casted.etag) + && Objects.equals(type, casted.type) + && Objects.equals(sequenceId, casted.sequenceId) + && Objects.equals(name, casted.name) + && Objects.equals(sha1, casted.sha1) + && Objects.equals(fileVersion, casted.fileVersion); + } + + @Override + public int hashCode() { + return Objects.hash(id, etag, type, sequenceId, name, sha1, fileVersion); + } + + @Override + public String toString() { + return "FileMini{" + + "id='" + + id + + '\'' + + ", " + + "etag='" + + etag + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "sequenceId='" + + sequenceId + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "sha1='" + + sha1 + + '\'' + + ", " + + "fileVersion='" + + fileVersion + + '\'' + + "}"; + } + + public static class Builder extends FileBase.Builder { + + protected String sequenceId; + + protected String name; + + protected String sha1; + + protected FileVersionMini fileVersion; + + public Builder(String id) { + super(id); + } + + public Builder sequenceId(String sequenceId) { + this.sequenceId = sequenceId; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder sha1(String sha1) { + this.sha1 = sha1; + return this; + } + + public Builder fileVersion(FileVersionMini fileVersion) { + this.fileVersion = fileVersion; + return this; + } + + @Override + public Builder etag(String etag) { + this.etag = etag; + this.markNullableFieldAsSet("etag"); + return this; + } + + @Override + public Builder type(FileBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public FileMini build() { + return new FileMini(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/fileminiorfoldermini/FileMiniOrFolderMini.java b/src/main/java/com/box/sdkgen/schemas/fileminiorfoldermini/FileMiniOrFolderMini.java new file mode 100644 index 000000000..c080ed759 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/fileminiorfoldermini/FileMiniOrFolderMini.java @@ -0,0 +1,107 @@ +package com.box.sdkgen.schemas.fileminiorfoldermini; + +import com.box.sdkgen.internal.OneOfTwo; +import com.box.sdkgen.schemas.filemini.FileMini; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize(using = FileMiniOrFolderMini.FileMiniOrFolderMiniDeserializer.class) +@JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) +public class FileMiniOrFolderMini extends OneOfTwo { + + protected final String sequenceId; + + protected final String name; + + protected final String id; + + protected final String etag; + + protected final String type; + + public FileMiniOrFolderMini(FileMini fileMini) { + super(fileMini, null); + this.sequenceId = fileMini.getSequenceId(); + this.name = fileMini.getName(); + this.id = fileMini.getId(); + this.etag = fileMini.getEtag(); + this.type = EnumWrapper.convertToString(fileMini.getType()); + } + + public FileMiniOrFolderMini(FolderMini folderMini) { + super(null, folderMini); + this.sequenceId = folderMini.getSequenceId(); + this.name = folderMini.getName(); + this.id = folderMini.getId(); + this.etag = folderMini.getEtag(); + this.type = EnumWrapper.convertToString(folderMini.getType()); + } + + public boolean isFileMini() { + return value0 != null; + } + + public FileMini getFileMini() { + return value0; + } + + public boolean isFolderMini() { + return value1 != null; + } + + public FolderMini getFolderMini() { + return value1; + } + + public String getSequenceId() { + return sequenceId; + } + + public String getName() { + return name; + } + + public String getId() { + return id; + } + + public String getEtag() { + return etag; + } + + public String getType() { + return type; + } + + static class FileMiniOrFolderMiniDeserializer extends JsonDeserializer { + + public FileMiniOrFolderMiniDeserializer() { + super(); + } + + @Override + public FileMiniOrFolderMini deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "file": + return new FileMiniOrFolderMini(JsonManager.deserialize(node, FileMini.class)); + case "folder": + return new FileMiniOrFolderMini(JsonManager.deserialize(node, FolderMini.class)); + } + } + throw new JsonMappingException(jp, "Unable to deserialize FileMiniOrFolderMini"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/fileorfolder/FileOrFolder.java b/src/main/java/com/box/sdkgen/schemas/fileorfolder/FileOrFolder.java new file mode 100644 index 000000000..0eef1deab --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/fileorfolder/FileOrFolder.java @@ -0,0 +1,213 @@ +package com.box.sdkgen.schemas.fileorfolder; + +import com.box.sdkgen.internal.OneOfTwo; +import com.box.sdkgen.schemas.file.File; +import com.box.sdkgen.schemas.folder.Folder; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; +import java.util.Date; + +@JsonDeserialize(using = FileOrFolder.FileOrFolderDeserializer.class) +@JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) +public class FileOrFolder extends OneOfTwo { + + protected final String description; + + protected final Long size; + + protected final Date createdAt; + + protected final Date modifiedAt; + + protected final Date trashedAt; + + protected final Date purgedAt; + + protected final Date contentCreatedAt; + + protected final Date contentModifiedAt; + + protected final UserMini createdBy; + + protected final UserMini modifiedBy; + + protected final UserMini ownedBy; + + protected final FolderMini parent; + + protected final String itemStatus; + + protected final String sequenceId; + + protected final String name; + + protected final String id; + + protected final String etag; + + protected final String type; + + public FileOrFolder(File file) { + super(file, null); + this.description = file.getDescription(); + this.size = file.getSize(); + this.createdAt = file.getCreatedAt(); + this.modifiedAt = file.getModifiedAt(); + this.trashedAt = file.getTrashedAt(); + this.purgedAt = file.getPurgedAt(); + this.contentCreatedAt = file.getContentCreatedAt(); + this.contentModifiedAt = file.getContentModifiedAt(); + this.createdBy = file.getCreatedBy(); + this.modifiedBy = file.getModifiedBy(); + this.ownedBy = file.getOwnedBy(); + this.parent = file.getParent(); + this.itemStatus = EnumWrapper.convertToString(file.getItemStatus()); + this.sequenceId = file.getSequenceId(); + this.name = file.getName(); + this.id = file.getId(); + this.etag = file.getEtag(); + this.type = EnumWrapper.convertToString(file.getType()); + } + + public FileOrFolder(Folder folder) { + super(null, folder); + this.description = folder.getDescription(); + this.size = folder.getSize(); + this.createdAt = folder.getCreatedAt(); + this.modifiedAt = folder.getModifiedAt(); + this.trashedAt = folder.getTrashedAt(); + this.purgedAt = folder.getPurgedAt(); + this.contentCreatedAt = folder.getContentCreatedAt(); + this.contentModifiedAt = folder.getContentModifiedAt(); + this.createdBy = folder.getCreatedBy(); + this.modifiedBy = folder.getModifiedBy(); + this.ownedBy = folder.getOwnedBy(); + this.parent = folder.getParent(); + this.itemStatus = EnumWrapper.convertToString(folder.getItemStatus()); + this.sequenceId = folder.getSequenceId(); + this.name = folder.getName(); + this.id = folder.getId(); + this.etag = folder.getEtag(); + this.type = EnumWrapper.convertToString(folder.getType()); + } + + public boolean isFile() { + return value0 != null; + } + + public File getFile() { + return value0; + } + + public boolean isFolder() { + return value1 != null; + } + + public Folder getFolder() { + return value1; + } + + public String getDescription() { + return description; + } + + public long getSize() { + return size; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + public Date getTrashedAt() { + return trashedAt; + } + + public Date getPurgedAt() { + return purgedAt; + } + + public Date getContentCreatedAt() { + return contentCreatedAt; + } + + public Date getContentModifiedAt() { + return contentModifiedAt; + } + + public UserMini getCreatedBy() { + return createdBy; + } + + public UserMini getModifiedBy() { + return modifiedBy; + } + + public UserMini getOwnedBy() { + return ownedBy; + } + + public FolderMini getParent() { + return parent; + } + + public String getItemStatus() { + return itemStatus; + } + + public String getSequenceId() { + return sequenceId; + } + + public String getName() { + return name; + } + + public String getId() { + return id; + } + + public String getEtag() { + return etag; + } + + public String getType() { + return type; + } + + static class FileOrFolderDeserializer extends JsonDeserializer { + + public FileOrFolderDeserializer() { + super(); + } + + @Override + public FileOrFolder deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "file": + return new FileOrFolder(JsonManager.deserialize(node, File.class)); + case "folder": + return new FileOrFolder(JsonManager.deserialize(node, Folder.class)); + } + } + throw new JsonMappingException(jp, "Unable to deserialize FileOrFolder"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/fileorfolderorweblink/FileOrFolderOrWebLink.java b/src/main/java/com/box/sdkgen/schemas/fileorfolderorweblink/FileOrFolderOrWebLink.java new file mode 100644 index 000000000..7b3e6050f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/fileorfolderorweblink/FileOrFolderOrWebLink.java @@ -0,0 +1,220 @@ +package com.box.sdkgen.schemas.fileorfolderorweblink; + +import com.box.sdkgen.internal.OneOfThree; +import com.box.sdkgen.schemas.file.File; +import com.box.sdkgen.schemas.folder.Folder; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.schemas.weblink.WebLink; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; +import java.util.Date; + +@JsonDeserialize(using = FileOrFolderOrWebLink.FileOrFolderOrWebLinkDeserializer.class) +@JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) +public class FileOrFolderOrWebLink extends OneOfThree { + + protected final String description; + + protected final Date createdAt; + + protected final Date modifiedAt; + + protected final Date trashedAt; + + protected final Date purgedAt; + + protected final UserMini createdBy; + + protected final UserMini modifiedBy; + + protected final UserMini ownedBy; + + protected final FolderMini parent; + + protected final String itemStatus; + + protected final String sequenceId; + + protected final String name; + + protected final String id; + + protected final String etag; + + protected final String type; + + public FileOrFolderOrWebLink(File file) { + super(file, null, null); + this.description = file.getDescription(); + this.createdAt = file.getCreatedAt(); + this.modifiedAt = file.getModifiedAt(); + this.trashedAt = file.getTrashedAt(); + this.purgedAt = file.getPurgedAt(); + this.createdBy = file.getCreatedBy(); + this.modifiedBy = file.getModifiedBy(); + this.ownedBy = file.getOwnedBy(); + this.parent = file.getParent(); + this.itemStatus = EnumWrapper.convertToString(file.getItemStatus()); + this.sequenceId = file.getSequenceId(); + this.name = file.getName(); + this.id = file.getId(); + this.etag = file.getEtag(); + this.type = EnumWrapper.convertToString(file.getType()); + } + + public FileOrFolderOrWebLink(Folder folder) { + super(null, folder, null); + this.description = folder.getDescription(); + this.createdAt = folder.getCreatedAt(); + this.modifiedAt = folder.getModifiedAt(); + this.trashedAt = folder.getTrashedAt(); + this.purgedAt = folder.getPurgedAt(); + this.createdBy = folder.getCreatedBy(); + this.modifiedBy = folder.getModifiedBy(); + this.ownedBy = folder.getOwnedBy(); + this.parent = folder.getParent(); + this.itemStatus = EnumWrapper.convertToString(folder.getItemStatus()); + this.sequenceId = folder.getSequenceId(); + this.name = folder.getName(); + this.id = folder.getId(); + this.etag = folder.getEtag(); + this.type = EnumWrapper.convertToString(folder.getType()); + } + + public FileOrFolderOrWebLink(WebLink webLink) { + super(null, null, webLink); + this.description = webLink.getDescription(); + this.createdAt = webLink.getCreatedAt(); + this.modifiedAt = webLink.getModifiedAt(); + this.trashedAt = webLink.getTrashedAt(); + this.purgedAt = webLink.getPurgedAt(); + this.createdBy = webLink.getCreatedBy(); + this.modifiedBy = webLink.getModifiedBy(); + this.ownedBy = webLink.getOwnedBy(); + this.parent = webLink.getParent(); + this.itemStatus = EnumWrapper.convertToString(webLink.getItemStatus()); + this.sequenceId = webLink.getSequenceId(); + this.name = webLink.getName(); + this.id = webLink.getId(); + this.etag = webLink.getEtag(); + this.type = EnumWrapper.convertToString(webLink.getType()); + } + + public boolean isFile() { + return value0 != null; + } + + public File getFile() { + return value0; + } + + public boolean isFolder() { + return value1 != null; + } + + public Folder getFolder() { + return value1; + } + + public boolean isWebLink() { + return value2 != null; + } + + public WebLink getWebLink() { + return value2; + } + + public String getDescription() { + return description; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + public Date getTrashedAt() { + return trashedAt; + } + + public Date getPurgedAt() { + return purgedAt; + } + + public UserMini getCreatedBy() { + return createdBy; + } + + public UserMini getModifiedBy() { + return modifiedBy; + } + + public UserMini getOwnedBy() { + return ownedBy; + } + + public FolderMini getParent() { + return parent; + } + + public String getItemStatus() { + return itemStatus; + } + + public String getSequenceId() { + return sequenceId; + } + + public String getName() { + return name; + } + + public String getId() { + return id; + } + + public String getEtag() { + return etag; + } + + public String getType() { + return type; + } + + static class FileOrFolderOrWebLinkDeserializer extends JsonDeserializer { + + public FileOrFolderOrWebLinkDeserializer() { + super(); + } + + @Override + public FileOrFolderOrWebLink deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "file": + return new FileOrFolderOrWebLink(JsonManager.deserialize(node, File.class)); + case "folder": + return new FileOrFolderOrWebLink(JsonManager.deserialize(node, Folder.class)); + case "web_link": + return new FileOrFolderOrWebLink(JsonManager.deserialize(node, WebLink.class)); + } + } + throw new JsonMappingException(jp, "Unable to deserialize FileOrFolderOrWebLink"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/fileorfolderscope/FileOrFolderScope.java b/src/main/java/com/box/sdkgen/schemas/fileorfolderscope/FileOrFolderScope.java new file mode 100644 index 000000000..ed6b0ff8d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/fileorfolderscope/FileOrFolderScope.java @@ -0,0 +1,108 @@ +package com.box.sdkgen.schemas.fileorfolderscope; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.filemini.FileMini; +import com.box.sdkgen.schemas.fileminiorfoldermini.FileMiniOrFolderMini; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileOrFolderScope extends SerializableObject { + + @JsonDeserialize( + using = FileOrFolderScopeScopeField.FileOrFolderScopeScopeFieldDeserializer.class) + @JsonSerialize(using = FileOrFolderScopeScopeField.FileOrFolderScopeScopeFieldSerializer.class) + protected EnumWrapper scope; + + protected FileMiniOrFolderMini object; + + public FileOrFolderScope() { + super(); + } + + protected FileOrFolderScope(Builder builder) { + super(); + this.scope = builder.scope; + this.object = builder.object; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getScope() { + return scope; + } + + public FileMiniOrFolderMini getObject() { + return object; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileOrFolderScope casted = (FileOrFolderScope) o; + return Objects.equals(scope, casted.scope) && Objects.equals(object, casted.object); + } + + @Override + public int hashCode() { + return Objects.hash(scope, object); + } + + @Override + public String toString() { + return "FileOrFolderScope{" + + "scope='" + + scope + + '\'' + + ", " + + "object='" + + object + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper scope; + + protected FileMiniOrFolderMini object; + + public Builder scope(FileOrFolderScopeScopeField scope) { + this.scope = new EnumWrapper(scope); + return this; + } + + public Builder scope(EnumWrapper scope) { + this.scope = scope; + return this; + } + + public Builder object(FileMini object) { + this.object = new FileMiniOrFolderMini(object); + return this; + } + + public Builder object(FolderMini object) { + this.object = new FileMiniOrFolderMini(object); + return this; + } + + public Builder object(FileMiniOrFolderMini object) { + this.object = object; + return this; + } + + public FileOrFolderScope build() { + return new FileOrFolderScope(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/fileorfolderscope/FileOrFolderScopeScopeField.java b/src/main/java/com/box/sdkgen/schemas/fileorfolderscope/FileOrFolderScopeScopeField.java new file mode 100644 index 000000000..807bf22e4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/fileorfolderscope/FileOrFolderScopeScopeField.java @@ -0,0 +1,75 @@ +package com.box.sdkgen.schemas.fileorfolderscope; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FileOrFolderScopeScopeField implements Valuable { + ANNOTATION_EDIT("annotation_edit"), + ANNOTATION_VIEW_ALL("annotation_view_all"), + ANNOTATION_VIEW_SELF("annotation_view_self"), + BASE_EXPLORER("base_explorer"), + BASE_PICKER("base_picker"), + BASE_PREVIEW("base_preview"), + BASE_UPLOAD("base_upload"), + ITEM_DELETE("item_delete"), + ITEM_DOWNLOAD("item_download"), + ITEM_PREVIEW("item_preview"), + ITEM_RENAME("item_rename"), + ITEM_SHARE("item_share"), + ITEM_UPLOAD("item_upload"), + ITEM_READ("item_read"); + + private final String value; + + FileOrFolderScopeScopeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FileOrFolderScopeScopeFieldDeserializer + extends JsonDeserializer> { + + public FileOrFolderScopeScopeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FileOrFolderScopeScopeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FileOrFolderScopeScopeFieldSerializer + extends JsonSerializer> { + + public FileOrFolderScopeScopeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequest.java b/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequest.java new file mode 100644 index 000000000..c75b3c88e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequest.java @@ -0,0 +1,383 @@ +package com.box.sdkgen.schemas.filerequest; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileRequest extends SerializableObject { + + protected final String id; + + @JsonDeserialize(using = FileRequestTypeField.FileRequestTypeFieldDeserializer.class) + @JsonSerialize(using = FileRequestTypeField.FileRequestTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String title; + + @Nullable protected String description; + + @JsonDeserialize(using = FileRequestStatusField.FileRequestStatusFieldDeserializer.class) + @JsonSerialize(using = FileRequestStatusField.FileRequestStatusFieldSerializer.class) + protected EnumWrapper status; + + @JsonProperty("is_email_required") + protected Boolean isEmailRequired; + + @JsonProperty("is_description_required") + protected Boolean isDescriptionRequired; + + @JsonProperty("expires_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date expiresAt; + + protected final FolderMini folder; + + protected String url; + + @Nullable protected String etag; + + @JsonProperty("created_by") + protected UserMini createdBy; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected final Date createdAt; + + @JsonProperty("updated_by") + protected UserMini updatedBy; + + @JsonProperty("updated_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected final Date updatedAt; + + public FileRequest( + @JsonProperty("id") String id, + @JsonProperty("folder") FolderMini folder, + @JsonProperty("created_at") Date createdAt, + @JsonProperty("updated_at") Date updatedAt) { + super(); + this.id = id; + this.folder = folder; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + this.type = new EnumWrapper(FileRequestTypeField.FILE_REQUEST); + } + + protected FileRequest(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.title = builder.title; + this.description = builder.description; + this.status = builder.status; + this.isEmailRequired = builder.isEmailRequired; + this.isDescriptionRequired = builder.isDescriptionRequired; + this.expiresAt = builder.expiresAt; + this.folder = builder.folder; + this.url = builder.url; + this.etag = builder.etag; + this.createdBy = builder.createdBy; + this.createdAt = builder.createdAt; + this.updatedBy = builder.updatedBy; + this.updatedAt = builder.updatedAt; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getTitle() { + return title; + } + + public String getDescription() { + return description; + } + + public EnumWrapper getStatus() { + return status; + } + + public Boolean getIsEmailRequired() { + return isEmailRequired; + } + + public Boolean getIsDescriptionRequired() { + return isDescriptionRequired; + } + + public Date getExpiresAt() { + return expiresAt; + } + + public FolderMini getFolder() { + return folder; + } + + public String getUrl() { + return url; + } + + public String getEtag() { + return etag; + } + + public UserMini getCreatedBy() { + return createdBy; + } + + public Date getCreatedAt() { + return createdAt; + } + + public UserMini getUpdatedBy() { + return updatedBy; + } + + public Date getUpdatedAt() { + return updatedAt; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileRequest casted = (FileRequest) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(title, casted.title) + && Objects.equals(description, casted.description) + && Objects.equals(status, casted.status) + && Objects.equals(isEmailRequired, casted.isEmailRequired) + && Objects.equals(isDescriptionRequired, casted.isDescriptionRequired) + && Objects.equals(expiresAt, casted.expiresAt) + && Objects.equals(folder, casted.folder) + && Objects.equals(url, casted.url) + && Objects.equals(etag, casted.etag) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(updatedBy, casted.updatedBy) + && Objects.equals(updatedAt, casted.updatedAt); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + type, + title, + description, + status, + isEmailRequired, + isDescriptionRequired, + expiresAt, + folder, + url, + etag, + createdBy, + createdAt, + updatedBy, + updatedAt); + } + + @Override + public String toString() { + return "FileRequest{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "title='" + + title + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "isEmailRequired='" + + isEmailRequired + + '\'' + + ", " + + "isDescriptionRequired='" + + isDescriptionRequired + + '\'' + + ", " + + "expiresAt='" + + expiresAt + + '\'' + + ", " + + "folder='" + + folder + + '\'' + + ", " + + "url='" + + url + + '\'' + + ", " + + "etag='" + + etag + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "updatedBy='" + + updatedBy + + '\'' + + ", " + + "updatedAt='" + + updatedAt + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + protected String title; + + protected String description; + + protected EnumWrapper status; + + protected Boolean isEmailRequired; + + protected Boolean isDescriptionRequired; + + protected Date expiresAt; + + protected final FolderMini folder; + + protected String url; + + protected String etag; + + protected UserMini createdBy; + + protected final Date createdAt; + + protected UserMini updatedBy; + + protected final Date updatedAt; + + public Builder(String id, FolderMini folder, Date createdAt, Date updatedAt) { + super(); + this.id = id; + this.folder = folder; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + this.type = new EnumWrapper(FileRequestTypeField.FILE_REQUEST); + } + + public Builder type(FileRequestTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder title(String title) { + this.title = title; + return this; + } + + public Builder description(String description) { + this.description = description; + this.markNullableFieldAsSet("description"); + return this; + } + + public Builder status(FileRequestStatusField status) { + this.status = new EnumWrapper(status); + return this; + } + + public Builder status(EnumWrapper status) { + this.status = status; + return this; + } + + public Builder isEmailRequired(Boolean isEmailRequired) { + this.isEmailRequired = isEmailRequired; + return this; + } + + public Builder isDescriptionRequired(Boolean isDescriptionRequired) { + this.isDescriptionRequired = isDescriptionRequired; + return this; + } + + public Builder expiresAt(Date expiresAt) { + this.expiresAt = expiresAt; + return this; + } + + public Builder url(String url) { + this.url = url; + return this; + } + + public Builder etag(String etag) { + this.etag = etag; + this.markNullableFieldAsSet("etag"); + return this; + } + + public Builder createdBy(UserMini createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder updatedBy(UserMini updatedBy) { + this.updatedBy = updatedBy; + return this; + } + + public FileRequest build() { + return new FileRequest(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequestStatusField.java b/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequestStatusField.java new file mode 100644 index 000000000..75073a1e6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequestStatusField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.filerequest; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FileRequestStatusField implements Valuable { + ACTIVE("active"), + INACTIVE("inactive"); + + private final String value; + + FileRequestStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FileRequestStatusFieldDeserializer + extends JsonDeserializer> { + + public FileRequestStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FileRequestStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FileRequestStatusFieldSerializer + extends JsonSerializer> { + + public FileRequestStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequestTypeField.java b/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequestTypeField.java new file mode 100644 index 000000000..d9049640c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequestTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.filerequest; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FileRequestTypeField implements Valuable { + FILE_REQUEST("file_request"); + + private final String value; + + FileRequestTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FileRequestTypeFieldDeserializer + extends JsonDeserializer> { + + public FileRequestTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FileRequestTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FileRequestTypeFieldSerializer + extends JsonSerializer> { + + public FileRequestTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequest.java b/src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequest.java new file mode 100644 index 000000000..aeb5343ca --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequest.java @@ -0,0 +1,143 @@ +package com.box.sdkgen.schemas.filerequestcopyrequest; + +import com.box.sdkgen.schemas.filerequestupdaterequest.FileRequestUpdateRequest; +import com.box.sdkgen.schemas.filerequestupdaterequest.FileRequestUpdateRequestStatusField; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileRequestCopyRequest extends FileRequestUpdateRequest { + + protected final FileRequestCopyRequestFolderField folder; + + public FileRequestCopyRequest(@JsonProperty("folder") FileRequestCopyRequestFolderField folder) { + super(); + this.folder = folder; + } + + protected FileRequestCopyRequest(Builder builder) { + super(builder); + this.folder = builder.folder; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public FileRequestCopyRequestFolderField getFolder() { + return folder; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileRequestCopyRequest casted = (FileRequestCopyRequest) o; + return Objects.equals(title, casted.title) + && Objects.equals(description, casted.description) + && Objects.equals(status, casted.status) + && Objects.equals(isEmailRequired, casted.isEmailRequired) + && Objects.equals(isDescriptionRequired, casted.isDescriptionRequired) + && Objects.equals(expiresAt, casted.expiresAt) + && Objects.equals(folder, casted.folder); + } + + @Override + public int hashCode() { + return Objects.hash( + title, description, status, isEmailRequired, isDescriptionRequired, expiresAt, folder); + } + + @Override + public String toString() { + return "FileRequestCopyRequest{" + + "title='" + + title + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "isEmailRequired='" + + isEmailRequired + + '\'' + + ", " + + "isDescriptionRequired='" + + isDescriptionRequired + + '\'' + + ", " + + "expiresAt='" + + expiresAt + + '\'' + + ", " + + "folder='" + + folder + + '\'' + + "}"; + } + + public static class Builder extends FileRequestUpdateRequest.Builder { + + protected final FileRequestCopyRequestFolderField folder; + + public Builder(FileRequestCopyRequestFolderField folder) { + super(); + this.folder = folder; + } + + @Override + public Builder title(String title) { + this.title = title; + return this; + } + + @Override + public Builder description(String description) { + this.description = description; + return this; + } + + @Override + public Builder status(FileRequestUpdateRequestStatusField status) { + this.status = new EnumWrapper(status); + return this; + } + + @Override + public Builder status(EnumWrapper status) { + this.status = status; + return this; + } + + @Override + public Builder isEmailRequired(Boolean isEmailRequired) { + this.isEmailRequired = isEmailRequired; + return this; + } + + @Override + public Builder isDescriptionRequired(Boolean isDescriptionRequired) { + this.isDescriptionRequired = isDescriptionRequired; + return this; + } + + @Override + public Builder expiresAt(Date expiresAt) { + this.expiresAt = expiresAt; + return this; + } + + public FileRequestCopyRequest build() { + return new FileRequestCopyRequest(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequestFolderField.java b/src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequestFolderField.java new file mode 100644 index 000000000..2ea20c5fe --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequestFolderField.java @@ -0,0 +1,102 @@ +package com.box.sdkgen.schemas.filerequestcopyrequest; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileRequestCopyRequestFolderField extends SerializableObject { + + @JsonDeserialize( + using = + FileRequestCopyRequestFolderTypeField.FileRequestCopyRequestFolderTypeFieldDeserializer + .class) + @JsonSerialize( + using = + FileRequestCopyRequestFolderTypeField.FileRequestCopyRequestFolderTypeFieldSerializer + .class) + protected EnumWrapper type; + + protected final String id; + + public FileRequestCopyRequestFolderField(@JsonProperty("id") String id) { + super(); + this.id = id; + } + + protected FileRequestCopyRequestFolderField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileRequestCopyRequestFolderField casted = (FileRequestCopyRequestFolderField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "FileRequestCopyRequestFolderField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + } + + public Builder type(FileRequestCopyRequestFolderTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public FileRequestCopyRequestFolderField build() { + return new FileRequestCopyRequestFolderField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequestFolderTypeField.java b/src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequestFolderTypeField.java new file mode 100644 index 000000000..732f852c9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequestFolderTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.filerequestcopyrequest; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FileRequestCopyRequestFolderTypeField implements Valuable { + FOLDER("folder"); + + private final String value; + + FileRequestCopyRequestFolderTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FileRequestCopyRequestFolderTypeFieldDeserializer + extends JsonDeserializer> { + + public FileRequestCopyRequestFolderTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FileRequestCopyRequestFolderTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FileRequestCopyRequestFolderTypeFieldSerializer + extends JsonSerializer> { + + public FileRequestCopyRequestFolderTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filerequestupdaterequest/FileRequestUpdateRequest.java b/src/main/java/com/box/sdkgen/schemas/filerequestupdaterequest/FileRequestUpdateRequest.java new file mode 100644 index 000000000..6c3e3f3d5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filerequestupdaterequest/FileRequestUpdateRequest.java @@ -0,0 +1,184 @@ +package com.box.sdkgen.schemas.filerequestupdaterequest; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileRequestUpdateRequest extends SerializableObject { + + protected String title; + + protected String description; + + @JsonDeserialize( + using = + FileRequestUpdateRequestStatusField.FileRequestUpdateRequestStatusFieldDeserializer.class) + @JsonSerialize( + using = + FileRequestUpdateRequestStatusField.FileRequestUpdateRequestStatusFieldSerializer.class) + protected EnumWrapper status; + + @JsonProperty("is_email_required") + protected Boolean isEmailRequired; + + @JsonProperty("is_description_required") + protected Boolean isDescriptionRequired; + + @JsonProperty("expires_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date expiresAt; + + public FileRequestUpdateRequest() { + super(); + } + + protected FileRequestUpdateRequest(Builder builder) { + super(); + this.title = builder.title; + this.description = builder.description; + this.status = builder.status; + this.isEmailRequired = builder.isEmailRequired; + this.isDescriptionRequired = builder.isDescriptionRequired; + this.expiresAt = builder.expiresAt; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getTitle() { + return title; + } + + public String getDescription() { + return description; + } + + public EnumWrapper getStatus() { + return status; + } + + public Boolean getIsEmailRequired() { + return isEmailRequired; + } + + public Boolean getIsDescriptionRequired() { + return isDescriptionRequired; + } + + public Date getExpiresAt() { + return expiresAt; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileRequestUpdateRequest casted = (FileRequestUpdateRequest) o; + return Objects.equals(title, casted.title) + && Objects.equals(description, casted.description) + && Objects.equals(status, casted.status) + && Objects.equals(isEmailRequired, casted.isEmailRequired) + && Objects.equals(isDescriptionRequired, casted.isDescriptionRequired) + && Objects.equals(expiresAt, casted.expiresAt); + } + + @Override + public int hashCode() { + return Objects.hash( + title, description, status, isEmailRequired, isDescriptionRequired, expiresAt); + } + + @Override + public String toString() { + return "FileRequestUpdateRequest{" + + "title='" + + title + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "isEmailRequired='" + + isEmailRequired + + '\'' + + ", " + + "isDescriptionRequired='" + + isDescriptionRequired + + '\'' + + ", " + + "expiresAt='" + + expiresAt + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String title; + + protected String description; + + protected EnumWrapper status; + + protected Boolean isEmailRequired; + + protected Boolean isDescriptionRequired; + + protected Date expiresAt; + + public Builder title(String title) { + this.title = title; + return this; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder status(FileRequestUpdateRequestStatusField status) { + this.status = new EnumWrapper(status); + return this; + } + + public Builder status(EnumWrapper status) { + this.status = status; + return this; + } + + public Builder isEmailRequired(Boolean isEmailRequired) { + this.isEmailRequired = isEmailRequired; + return this; + } + + public Builder isDescriptionRequired(Boolean isDescriptionRequired) { + this.isDescriptionRequired = isDescriptionRequired; + return this; + } + + public Builder expiresAt(Date expiresAt) { + this.expiresAt = expiresAt; + return this; + } + + public FileRequestUpdateRequest build() { + return new FileRequestUpdateRequest(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filerequestupdaterequest/FileRequestUpdateRequestStatusField.java b/src/main/java/com/box/sdkgen/schemas/filerequestupdaterequest/FileRequestUpdateRequestStatusField.java new file mode 100644 index 000000000..bd3c11cad --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filerequestupdaterequest/FileRequestUpdateRequestStatusField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.filerequestupdaterequest; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FileRequestUpdateRequestStatusField implements Valuable { + ACTIVE("active"), + INACTIVE("inactive"); + + private final String value; + + FileRequestUpdateRequestStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FileRequestUpdateRequestStatusFieldDeserializer + extends JsonDeserializer> { + + public FileRequestUpdateRequestStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FileRequestUpdateRequestStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FileRequestUpdateRequestStatusFieldSerializer + extends JsonSerializer> { + + public FileRequestUpdateRequestStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/files/Files.java b/src/main/java/com/box/sdkgen/schemas/files/Files.java new file mode 100644 index 000000000..3868c282a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/files/Files.java @@ -0,0 +1,88 @@ +package com.box.sdkgen.schemas.files; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Files extends SerializableObject { + + @JsonProperty("total_count") + protected Long totalCount; + + protected List entries; + + public Files() { + super(); + } + + protected Files(Builder builder) { + super(); + this.totalCount = builder.totalCount; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getTotalCount() { + return totalCount; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Files casted = (Files) o; + return Objects.equals(totalCount, casted.totalCount) && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, entries); + } + + @Override + public String toString() { + return "Files{" + + "totalCount='" + + totalCount + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long totalCount; + + protected List entries; + + public Builder totalCount(Long totalCount) { + this.totalCount = totalCount; + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public Files build() { + return new Files(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filesonhold/FilesOnHold.java b/src/main/java/com/box/sdkgen/schemas/filesonhold/FilesOnHold.java new file mode 100644 index 000000000..2f8d00334 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filesonhold/FilesOnHold.java @@ -0,0 +1,133 @@ +package com.box.sdkgen.schemas.filesonhold; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.filemini.FileMini; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FilesOnHold extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + protected List entries; + + public FilesOnHold() { + super(); + } + + protected FilesOnHold(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FilesOnHold casted = (FilesOnHold) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "FilesOnHold{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public FilesOnHold build() { + return new FilesOnHold(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filesunderretention/FilesUnderRetention.java b/src/main/java/com/box/sdkgen/schemas/filesunderretention/FilesUnderRetention.java new file mode 100644 index 000000000..1d9238b0c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filesunderretention/FilesUnderRetention.java @@ -0,0 +1,133 @@ +package com.box.sdkgen.schemas.filesunderretention; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.filemini.FileMini; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FilesUnderRetention extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + protected List entries; + + public FilesUnderRetention() { + super(); + } + + protected FilesUnderRetention(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FilesUnderRetention casted = (FilesUnderRetention) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "FilesUnderRetention{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public FilesUnderRetention build() { + return new FilesUnderRetention(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/fileversion/FileVersion.java b/src/main/java/com/box/sdkgen/schemas/fileversion/FileVersion.java new file mode 100644 index 000000000..4b85b2f25 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/fileversion/FileVersion.java @@ -0,0 +1,340 @@ +package com.box.sdkgen.schemas.fileversion; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.fileversionbase.FileVersionBaseTypeField; +import com.box.sdkgen.schemas.fileversionmini.FileVersionMini; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileVersion extends FileVersionMini { + + protected String name; + + protected Long size; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date modifiedAt; + + @JsonProperty("modified_by") + protected UserMini modifiedBy; + + @JsonProperty("trashed_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date trashedAt; + + @JsonProperty("trashed_by") + protected UserMini trashedBy; + + @JsonProperty("restored_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date restoredAt; + + @JsonProperty("restored_by") + protected UserMini restoredBy; + + @JsonProperty("purged_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date purgedAt; + + @JsonProperty("uploader_display_name") + protected String uploaderDisplayName; + + public FileVersion(@JsonProperty("id") String id) { + super(id); + } + + protected FileVersion(Builder builder) { + super(builder); + this.name = builder.name; + this.size = builder.size; + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + this.modifiedBy = builder.modifiedBy; + this.trashedAt = builder.trashedAt; + this.trashedBy = builder.trashedBy; + this.restoredAt = builder.restoredAt; + this.restoredBy = builder.restoredBy; + this.purgedAt = builder.purgedAt; + this.uploaderDisplayName = builder.uploaderDisplayName; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public Long getSize() { + return size; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + public UserMini getModifiedBy() { + return modifiedBy; + } + + public Date getTrashedAt() { + return trashedAt; + } + + public UserMini getTrashedBy() { + return trashedBy; + } + + public Date getRestoredAt() { + return restoredAt; + } + + public UserMini getRestoredBy() { + return restoredBy; + } + + public Date getPurgedAt() { + return purgedAt; + } + + public String getUploaderDisplayName() { + return uploaderDisplayName; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileVersion casted = (FileVersion) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(sha1, casted.sha1) + && Objects.equals(name, casted.name) + && Objects.equals(size, casted.size) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt) + && Objects.equals(modifiedBy, casted.modifiedBy) + && Objects.equals(trashedAt, casted.trashedAt) + && Objects.equals(trashedBy, casted.trashedBy) + && Objects.equals(restoredAt, casted.restoredAt) + && Objects.equals(restoredBy, casted.restoredBy) + && Objects.equals(purgedAt, casted.purgedAt) + && Objects.equals(uploaderDisplayName, casted.uploaderDisplayName); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + type, + sha1, + name, + size, + createdAt, + modifiedAt, + modifiedBy, + trashedAt, + trashedBy, + restoredAt, + restoredBy, + purgedAt, + uploaderDisplayName); + } + + @Override + public String toString() { + return "FileVersion{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "sha1='" + + sha1 + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "size='" + + size + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + ", " + + "modifiedBy='" + + modifiedBy + + '\'' + + ", " + + "trashedAt='" + + trashedAt + + '\'' + + ", " + + "trashedBy='" + + trashedBy + + '\'' + + ", " + + "restoredAt='" + + restoredAt + + '\'' + + ", " + + "restoredBy='" + + restoredBy + + '\'' + + ", " + + "purgedAt='" + + purgedAt + + '\'' + + ", " + + "uploaderDisplayName='" + + uploaderDisplayName + + '\'' + + "}"; + } + + public static class Builder extends FileVersionMini.Builder { + + protected String name; + + protected Long size; + + protected Date createdAt; + + protected Date modifiedAt; + + protected UserMini modifiedBy; + + protected Date trashedAt; + + protected UserMini trashedBy; + + protected Date restoredAt; + + protected UserMini restoredBy; + + protected Date purgedAt; + + protected String uploaderDisplayName; + + public Builder(String id) { + super(id); + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder size(Long size) { + this.size = size; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + public Builder modifiedBy(UserMini modifiedBy) { + this.modifiedBy = modifiedBy; + return this; + } + + public Builder trashedAt(Date trashedAt) { + this.trashedAt = trashedAt; + this.markNullableFieldAsSet("trashed_at"); + return this; + } + + public Builder trashedBy(UserMini trashedBy) { + this.trashedBy = trashedBy; + return this; + } + + public Builder restoredAt(Date restoredAt) { + this.restoredAt = restoredAt; + this.markNullableFieldAsSet("restored_at"); + return this; + } + + public Builder restoredBy(UserMini restoredBy) { + this.restoredBy = restoredBy; + return this; + } + + public Builder purgedAt(Date purgedAt) { + this.purgedAt = purgedAt; + this.markNullableFieldAsSet("purged_at"); + return this; + } + + public Builder uploaderDisplayName(String uploaderDisplayName) { + this.uploaderDisplayName = uploaderDisplayName; + return this; + } + + @Override + public Builder type(FileVersionBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder sha1(String sha1) { + this.sha1 = sha1; + return this; + } + + public FileVersion build() { + return new FileVersion(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionbase/FileVersionBase.java b/src/main/java/com/box/sdkgen/schemas/fileversionbase/FileVersionBase.java new file mode 100644 index 000000000..49480a366 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/fileversionbase/FileVersionBase.java @@ -0,0 +1,90 @@ +package com.box.sdkgen.schemas.fileversionbase; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileVersionBase extends SerializableObject { + + protected final String id; + + @JsonDeserialize(using = FileVersionBaseTypeField.FileVersionBaseTypeFieldDeserializer.class) + @JsonSerialize(using = FileVersionBaseTypeField.FileVersionBaseTypeFieldSerializer.class) + protected EnumWrapper type; + + public FileVersionBase(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = new EnumWrapper(FileVersionBaseTypeField.FILE_VERSION); + } + + protected FileVersionBase(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileVersionBase casted = (FileVersionBase) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "FileVersionBase{" + "id='" + id + '\'' + ", " + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + public Builder(String id) { + super(); + this.id = id; + this.type = new EnumWrapper(FileVersionBaseTypeField.FILE_VERSION); + } + + public Builder type(FileVersionBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public FileVersionBase build() { + return new FileVersionBase(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionbase/FileVersionBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/fileversionbase/FileVersionBaseTypeField.java new file mode 100644 index 000000000..7b6eaccfb --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/fileversionbase/FileVersionBaseTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.fileversionbase; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FileVersionBaseTypeField implements Valuable { + FILE_VERSION("file_version"); + + private final String value; + + FileVersionBaseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FileVersionBaseTypeFieldDeserializer + extends JsonDeserializer> { + + public FileVersionBaseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FileVersionBaseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FileVersionBaseTypeFieldSerializer + extends JsonSerializer> { + + public FileVersionBaseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionfull/FileVersionFull.java b/src/main/java/com/box/sdkgen/schemas/fileversionfull/FileVersionFull.java new file mode 100644 index 000000000..6381563b8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/fileversionfull/FileVersionFull.java @@ -0,0 +1,247 @@ +package com.box.sdkgen.schemas.fileversionfull; + +import com.box.sdkgen.schemas.fileversion.FileVersion; +import com.box.sdkgen.schemas.fileversionbase.FileVersionBaseTypeField; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileVersionFull extends FileVersion { + + @JsonProperty("version_number") + protected String versionNumber; + + public FileVersionFull(@JsonProperty("id") String id) { + super(id); + } + + protected FileVersionFull(Builder builder) { + super(builder); + this.versionNumber = builder.versionNumber; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getVersionNumber() { + return versionNumber; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileVersionFull casted = (FileVersionFull) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(sha1, casted.sha1) + && Objects.equals(name, casted.name) + && Objects.equals(size, casted.size) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt) + && Objects.equals(modifiedBy, casted.modifiedBy) + && Objects.equals(trashedAt, casted.trashedAt) + && Objects.equals(trashedBy, casted.trashedBy) + && Objects.equals(restoredAt, casted.restoredAt) + && Objects.equals(restoredBy, casted.restoredBy) + && Objects.equals(purgedAt, casted.purgedAt) + && Objects.equals(uploaderDisplayName, casted.uploaderDisplayName) + && Objects.equals(versionNumber, casted.versionNumber); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + type, + sha1, + name, + size, + createdAt, + modifiedAt, + modifiedBy, + trashedAt, + trashedBy, + restoredAt, + restoredBy, + purgedAt, + uploaderDisplayName, + versionNumber); + } + + @Override + public String toString() { + return "FileVersionFull{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "sha1='" + + sha1 + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "size='" + + size + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + ", " + + "modifiedBy='" + + modifiedBy + + '\'' + + ", " + + "trashedAt='" + + trashedAt + + '\'' + + ", " + + "trashedBy='" + + trashedBy + + '\'' + + ", " + + "restoredAt='" + + restoredAt + + '\'' + + ", " + + "restoredBy='" + + restoredBy + + '\'' + + ", " + + "purgedAt='" + + purgedAt + + '\'' + + ", " + + "uploaderDisplayName='" + + uploaderDisplayName + + '\'' + + ", " + + "versionNumber='" + + versionNumber + + '\'' + + "}"; + } + + public static class Builder extends FileVersion.Builder { + + protected String versionNumber; + + public Builder(String id) { + super(id); + } + + public Builder versionNumber(String versionNumber) { + this.versionNumber = versionNumber; + return this; + } + + @Override + public Builder type(FileVersionBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder sha1(String sha1) { + this.sha1 = sha1; + return this; + } + + @Override + public Builder name(String name) { + this.name = name; + return this; + } + + @Override + public Builder size(Long size) { + this.size = size; + return this; + } + + @Override + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + @Override + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + @Override + public Builder modifiedBy(UserMini modifiedBy) { + this.modifiedBy = modifiedBy; + return this; + } + + @Override + public Builder trashedAt(Date trashedAt) { + this.trashedAt = trashedAt; + this.markNullableFieldAsSet("trashed_at"); + return this; + } + + @Override + public Builder trashedBy(UserMini trashedBy) { + this.trashedBy = trashedBy; + return this; + } + + @Override + public Builder restoredAt(Date restoredAt) { + this.restoredAt = restoredAt; + this.markNullableFieldAsSet("restored_at"); + return this; + } + + @Override + public Builder restoredBy(UserMini restoredBy) { + this.restoredBy = restoredBy; + return this; + } + + @Override + public Builder purgedAt(Date purgedAt) { + this.purgedAt = purgedAt; + this.markNullableFieldAsSet("purged_at"); + return this; + } + + @Override + public Builder uploaderDisplayName(String uploaderDisplayName) { + this.uploaderDisplayName = uploaderDisplayName; + return this; + } + + public FileVersionFull build() { + return new FileVersionFull(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionlegalhold/FileVersionLegalHold.java b/src/main/java/com/box/sdkgen/schemas/fileversionlegalhold/FileVersionLegalHold.java new file mode 100644 index 000000000..ac5175762 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/fileversionlegalhold/FileVersionLegalHold.java @@ -0,0 +1,186 @@ +package com.box.sdkgen.schemas.fileversionlegalhold; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.filemini.FileMini; +import com.box.sdkgen.schemas.fileversionmini.FileVersionMini; +import com.box.sdkgen.schemas.legalholdpolicyassignment.LegalHoldPolicyAssignment; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileVersionLegalHold extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = FileVersionLegalHoldTypeField.FileVersionLegalHoldTypeFieldDeserializer.class) + @JsonSerialize( + using = FileVersionLegalHoldTypeField.FileVersionLegalHoldTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("file_version") + protected FileVersionMini fileVersion; + + protected FileMini file; + + @JsonProperty("legal_hold_policy_assignments") + protected List legalHoldPolicyAssignments; + + @JsonProperty("deleted_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date deletedAt; + + public FileVersionLegalHold() { + super(); + } + + protected FileVersionLegalHold(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.fileVersion = builder.fileVersion; + this.file = builder.file; + this.legalHoldPolicyAssignments = builder.legalHoldPolicyAssignments; + this.deletedAt = builder.deletedAt; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public FileVersionMini getFileVersion() { + return fileVersion; + } + + public FileMini getFile() { + return file; + } + + public List getLegalHoldPolicyAssignments() { + return legalHoldPolicyAssignments; + } + + public Date getDeletedAt() { + return deletedAt; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileVersionLegalHold casted = (FileVersionLegalHold) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(fileVersion, casted.fileVersion) + && Objects.equals(file, casted.file) + && Objects.equals(legalHoldPolicyAssignments, casted.legalHoldPolicyAssignments) + && Objects.equals(deletedAt, casted.deletedAt); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, fileVersion, file, legalHoldPolicyAssignments, deletedAt); + } + + @Override + public String toString() { + return "FileVersionLegalHold{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "fileVersion='" + + fileVersion + + '\'' + + ", " + + "file='" + + file + + '\'' + + ", " + + "legalHoldPolicyAssignments='" + + legalHoldPolicyAssignments + + '\'' + + ", " + + "deletedAt='" + + deletedAt + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected FileVersionMini fileVersion; + + protected FileMini file; + + protected List legalHoldPolicyAssignments; + + protected Date deletedAt; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(FileVersionLegalHoldTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder fileVersion(FileVersionMini fileVersion) { + this.fileVersion = fileVersion; + return this; + } + + public Builder file(FileMini file) { + this.file = file; + return this; + } + + public Builder legalHoldPolicyAssignments( + List legalHoldPolicyAssignments) { + this.legalHoldPolicyAssignments = legalHoldPolicyAssignments; + return this; + } + + public Builder deletedAt(Date deletedAt) { + this.deletedAt = deletedAt; + return this; + } + + public FileVersionLegalHold build() { + return new FileVersionLegalHold(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionlegalhold/FileVersionLegalHoldTypeField.java b/src/main/java/com/box/sdkgen/schemas/fileversionlegalhold/FileVersionLegalHoldTypeField.java new file mode 100644 index 000000000..3d92ff9ed --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/fileversionlegalhold/FileVersionLegalHoldTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.fileversionlegalhold; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FileVersionLegalHoldTypeField implements Valuable { + FILE_VERSION_LEGAL_HOLD("file_version_legal_hold"); + + private final String value; + + FileVersionLegalHoldTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FileVersionLegalHoldTypeFieldDeserializer + extends JsonDeserializer> { + + public FileVersionLegalHoldTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FileVersionLegalHoldTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FileVersionLegalHoldTypeFieldSerializer + extends JsonSerializer> { + + public FileVersionLegalHoldTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionlegalholds/FileVersionLegalHolds.java b/src/main/java/com/box/sdkgen/schemas/fileversionlegalholds/FileVersionLegalHolds.java new file mode 100644 index 000000000..4c5a072fe --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/fileversionlegalholds/FileVersionLegalHolds.java @@ -0,0 +1,133 @@ +package com.box.sdkgen.schemas.fileversionlegalholds; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.fileversionlegalhold.FileVersionLegalHold; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileVersionLegalHolds extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + protected List entries; + + public FileVersionLegalHolds() { + super(); + } + + protected FileVersionLegalHolds(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileVersionLegalHolds casted = (FileVersionLegalHolds) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "FileVersionLegalHolds{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public FileVersionLegalHolds build() { + return new FileVersionLegalHolds(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionmini/FileVersionMini.java b/src/main/java/com/box/sdkgen/schemas/fileversionmini/FileVersionMini.java new file mode 100644 index 000000000..b56f36aa4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/fileversionmini/FileVersionMini.java @@ -0,0 +1,94 @@ +package com.box.sdkgen.schemas.fileversionmini; + +import com.box.sdkgen.schemas.fileversionbase.FileVersionBase; +import com.box.sdkgen.schemas.fileversionbase.FileVersionBaseTypeField; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileVersionMini extends FileVersionBase { + + protected String sha1; + + public FileVersionMini(@JsonProperty("id") String id) { + super(id); + } + + protected FileVersionMini(Builder builder) { + super(builder); + this.sha1 = builder.sha1; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getSha1() { + return sha1; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileVersionMini casted = (FileVersionMini) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(sha1, casted.sha1); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, sha1); + } + + @Override + public String toString() { + return "FileVersionMini{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "sha1='" + + sha1 + + '\'' + + "}"; + } + + public static class Builder extends FileVersionBase.Builder { + + protected String sha1; + + public Builder(String id) { + super(id); + } + + public Builder sha1(String sha1) { + this.sha1 = sha1; + return this; + } + + @Override + public Builder type(FileVersionBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public FileVersionMini build() { + return new FileVersionMini(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionretention/FileVersionRetention.java b/src/main/java/com/box/sdkgen/schemas/fileversionretention/FileVersionRetention.java new file mode 100644 index 000000000..f9fb3b811 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/fileversionretention/FileVersionRetention.java @@ -0,0 +1,207 @@ +package com.box.sdkgen.schemas.fileversionretention; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.filemini.FileMini; +import com.box.sdkgen.schemas.fileversionmini.FileVersionMini; +import com.box.sdkgen.schemas.retentionpolicymini.RetentionPolicyMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileVersionRetention extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = FileVersionRetentionTypeField.FileVersionRetentionTypeFieldDeserializer.class) + @JsonSerialize( + using = FileVersionRetentionTypeField.FileVersionRetentionTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("file_version") + protected FileVersionMini fileVersion; + + protected FileMini file; + + @JsonProperty("applied_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date appliedAt; + + @JsonProperty("disposition_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date dispositionAt; + + @JsonProperty("winning_retention_policy") + protected RetentionPolicyMini winningRetentionPolicy; + + public FileVersionRetention() { + super(); + } + + protected FileVersionRetention(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.fileVersion = builder.fileVersion; + this.file = builder.file; + this.appliedAt = builder.appliedAt; + this.dispositionAt = builder.dispositionAt; + this.winningRetentionPolicy = builder.winningRetentionPolicy; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public FileVersionMini getFileVersion() { + return fileVersion; + } + + public FileMini getFile() { + return file; + } + + public Date getAppliedAt() { + return appliedAt; + } + + public Date getDispositionAt() { + return dispositionAt; + } + + public RetentionPolicyMini getWinningRetentionPolicy() { + return winningRetentionPolicy; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileVersionRetention casted = (FileVersionRetention) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(fileVersion, casted.fileVersion) + && Objects.equals(file, casted.file) + && Objects.equals(appliedAt, casted.appliedAt) + && Objects.equals(dispositionAt, casted.dispositionAt) + && Objects.equals(winningRetentionPolicy, casted.winningRetentionPolicy); + } + + @Override + public int hashCode() { + return Objects.hash( + id, type, fileVersion, file, appliedAt, dispositionAt, winningRetentionPolicy); + } + + @Override + public String toString() { + return "FileVersionRetention{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "fileVersion='" + + fileVersion + + '\'' + + ", " + + "file='" + + file + + '\'' + + ", " + + "appliedAt='" + + appliedAt + + '\'' + + ", " + + "dispositionAt='" + + dispositionAt + + '\'' + + ", " + + "winningRetentionPolicy='" + + winningRetentionPolicy + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected FileVersionMini fileVersion; + + protected FileMini file; + + protected Date appliedAt; + + protected Date dispositionAt; + + protected RetentionPolicyMini winningRetentionPolicy; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(FileVersionRetentionTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder fileVersion(FileVersionMini fileVersion) { + this.fileVersion = fileVersion; + return this; + } + + public Builder file(FileMini file) { + this.file = file; + return this; + } + + public Builder appliedAt(Date appliedAt) { + this.appliedAt = appliedAt; + return this; + } + + public Builder dispositionAt(Date dispositionAt) { + this.dispositionAt = dispositionAt; + return this; + } + + public Builder winningRetentionPolicy(RetentionPolicyMini winningRetentionPolicy) { + this.winningRetentionPolicy = winningRetentionPolicy; + return this; + } + + public FileVersionRetention build() { + return new FileVersionRetention(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionretention/FileVersionRetentionTypeField.java b/src/main/java/com/box/sdkgen/schemas/fileversionretention/FileVersionRetentionTypeField.java new file mode 100644 index 000000000..25970f233 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/fileversionretention/FileVersionRetentionTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.fileversionretention; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FileVersionRetentionTypeField implements Valuable { + FILE_VERSION_RETENTION("file_version_retention"); + + private final String value; + + FileVersionRetentionTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FileVersionRetentionTypeFieldDeserializer + extends JsonDeserializer> { + + public FileVersionRetentionTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FileVersionRetentionTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FileVersionRetentionTypeFieldSerializer + extends JsonSerializer> { + + public FileVersionRetentionTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionretentions/FileVersionRetentions.java b/src/main/java/com/box/sdkgen/schemas/fileversionretentions/FileVersionRetentions.java new file mode 100644 index 000000000..1d1474d67 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/fileversionretentions/FileVersionRetentions.java @@ -0,0 +1,133 @@ +package com.box.sdkgen.schemas.fileversionretentions; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.fileversionretention.FileVersionRetention; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileVersionRetentions extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + protected List entries; + + public FileVersionRetentions() { + super(); + } + + protected FileVersionRetentions(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileVersionRetentions casted = (FileVersionRetentions) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "FileVersionRetentions{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public FileVersionRetentions build() { + return new FileVersionRetentions(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/fileversions/FileVersions.java b/src/main/java/com/box/sdkgen/schemas/fileversions/FileVersions.java new file mode 100644 index 000000000..240cec318 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/fileversions/FileVersions.java @@ -0,0 +1,146 @@ +package com.box.sdkgen.schemas.fileversions; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.fileversionfull.FileVersionFull; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileVersions extends SerializableObject { + + @JsonProperty("total_count") + protected Long totalCount; + + protected Long limit; + + protected Long offset; + + protected List order; + + protected List entries; + + public FileVersions() { + super(); + } + + protected FileVersions(Builder builder) { + super(); + this.totalCount = builder.totalCount; + this.limit = builder.limit; + this.offset = builder.offset; + this.order = builder.order; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getTotalCount() { + return totalCount; + } + + public Long getLimit() { + return limit; + } + + public Long getOffset() { + return offset; + } + + public List getOrder() { + return order; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileVersions casted = (FileVersions) o; + return Objects.equals(totalCount, casted.totalCount) + && Objects.equals(limit, casted.limit) + && Objects.equals(offset, casted.offset) + && Objects.equals(order, casted.order) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, limit, offset, order, entries); + } + + @Override + public String toString() { + return "FileVersions{" + + "totalCount='" + + totalCount + + '\'' + + ", " + + "limit='" + + limit + + '\'' + + ", " + + "offset='" + + offset + + '\'' + + ", " + + "order='" + + order + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long totalCount; + + protected Long limit; + + protected Long offset; + + protected List order; + + protected List entries; + + public Builder totalCount(Long totalCount) { + this.totalCount = totalCount; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public Builder order(List order) { + this.order = order; + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public FileVersions build() { + return new FileVersions(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/fileversions/FileVersionsOrderDirectionField.java b/src/main/java/com/box/sdkgen/schemas/fileversions/FileVersionsOrderDirectionField.java new file mode 100644 index 000000000..278e78cef --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/fileversions/FileVersionsOrderDirectionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.fileversions; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FileVersionsOrderDirectionField implements Valuable { + ASC("ASC"), + DESC("DESC"); + + private final String value; + + FileVersionsOrderDirectionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FileVersionsOrderDirectionFieldDeserializer + extends JsonDeserializer> { + + public FileVersionsOrderDirectionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FileVersionsOrderDirectionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FileVersionsOrderDirectionFieldSerializer + extends JsonSerializer> { + + public FileVersionsOrderDirectionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/fileversions/FileVersionsOrderField.java b/src/main/java/com/box/sdkgen/schemas/fileversions/FileVersionsOrderField.java new file mode 100644 index 000000000..1935e03a8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/fileversions/FileVersionsOrderField.java @@ -0,0 +1,96 @@ +package com.box.sdkgen.schemas.fileversions; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileVersionsOrderField extends SerializableObject { + + protected String by; + + @JsonDeserialize( + using = FileVersionsOrderDirectionField.FileVersionsOrderDirectionFieldDeserializer.class) + @JsonSerialize( + using = FileVersionsOrderDirectionField.FileVersionsOrderDirectionFieldSerializer.class) + protected EnumWrapper direction; + + public FileVersionsOrderField() { + super(); + } + + protected FileVersionsOrderField(Builder builder) { + super(); + this.by = builder.by; + this.direction = builder.direction; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getBy() { + return by; + } + + public EnumWrapper getDirection() { + return direction; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileVersionsOrderField casted = (FileVersionsOrderField) o; + return Objects.equals(by, casted.by) && Objects.equals(direction, casted.direction); + } + + @Override + public int hashCode() { + return Objects.hash(by, direction); + } + + @Override + public String toString() { + return "FileVersionsOrderField{" + + "by='" + + by + + '\'' + + ", " + + "direction='" + + direction + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String by; + + protected EnumWrapper direction; + + public Builder by(String by) { + this.by = by; + return this; + } + + public Builder direction(FileVersionsOrderDirectionField direction) { + this.direction = new EnumWrapper(direction); + return this; + } + + public Builder direction(EnumWrapper direction) { + this.direction = direction; + return this; + } + + public FileVersionsOrderField build() { + return new FileVersionsOrderField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folder/Folder.java b/src/main/java/com/box/sdkgen/schemas/folder/Folder.java new file mode 100644 index 000000000..a2ae049ad --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/folder/Folder.java @@ -0,0 +1,511 @@ +package com.box.sdkgen.schemas.folder; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.folderbase.FolderBaseTypeField; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.items.Items; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Folder extends FolderMini { + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date createdAt; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date modifiedAt; + + protected String description; + + protected Long size; + + @JsonProperty("path_collection") + protected FolderPathCollectionField pathCollection; + + @JsonProperty("created_by") + protected UserMini createdBy; + + @JsonProperty("modified_by") + protected UserMini modifiedBy; + + @JsonProperty("trashed_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date trashedAt; + + @JsonProperty("purged_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date purgedAt; + + @JsonProperty("content_created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date contentCreatedAt; + + @JsonProperty("content_modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date contentModifiedAt; + + @JsonProperty("owned_by") + protected UserMini ownedBy; + + @JsonProperty("shared_link") + @Nullable + protected FolderSharedLinkField sharedLink; + + @JsonProperty("folder_upload_email") + @Nullable + protected FolderFolderUploadEmailField folderUploadEmail; + + @Nullable protected FolderMini parent; + + @JsonDeserialize(using = FolderItemStatusField.FolderItemStatusFieldDeserializer.class) + @JsonSerialize(using = FolderItemStatusField.FolderItemStatusFieldSerializer.class) + @JsonProperty("item_status") + protected EnumWrapper itemStatus; + + @JsonProperty("item_collection") + protected Items itemCollection; + + public Folder(@JsonProperty("id") String id) { + super(id); + } + + protected Folder(Builder builder) { + super(builder); + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + this.description = builder.description; + this.size = builder.size; + this.pathCollection = builder.pathCollection; + this.createdBy = builder.createdBy; + this.modifiedBy = builder.modifiedBy; + this.trashedAt = builder.trashedAt; + this.purgedAt = builder.purgedAt; + this.contentCreatedAt = builder.contentCreatedAt; + this.contentModifiedAt = builder.contentModifiedAt; + this.ownedBy = builder.ownedBy; + this.sharedLink = builder.sharedLink; + this.folderUploadEmail = builder.folderUploadEmail; + this.parent = builder.parent; + this.itemStatus = builder.itemStatus; + this.itemCollection = builder.itemCollection; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + public String getDescription() { + return description; + } + + public Long getSize() { + return size; + } + + public FolderPathCollectionField getPathCollection() { + return pathCollection; + } + + public UserMini getCreatedBy() { + return createdBy; + } + + public UserMini getModifiedBy() { + return modifiedBy; + } + + public Date getTrashedAt() { + return trashedAt; + } + + public Date getPurgedAt() { + return purgedAt; + } + + public Date getContentCreatedAt() { + return contentCreatedAt; + } + + public Date getContentModifiedAt() { + return contentModifiedAt; + } + + public UserMini getOwnedBy() { + return ownedBy; + } + + public FolderSharedLinkField getSharedLink() { + return sharedLink; + } + + public FolderFolderUploadEmailField getFolderUploadEmail() { + return folderUploadEmail; + } + + public FolderMini getParent() { + return parent; + } + + public EnumWrapper getItemStatus() { + return itemStatus; + } + + public Items getItemCollection() { + return itemCollection; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Folder casted = (Folder) o; + return Objects.equals(id, casted.id) + && Objects.equals(etag, casted.etag) + && Objects.equals(type, casted.type) + && Objects.equals(sequenceId, casted.sequenceId) + && Objects.equals(name, casted.name) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt) + && Objects.equals(description, casted.description) + && Objects.equals(size, casted.size) + && Objects.equals(pathCollection, casted.pathCollection) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(modifiedBy, casted.modifiedBy) + && Objects.equals(trashedAt, casted.trashedAt) + && Objects.equals(purgedAt, casted.purgedAt) + && Objects.equals(contentCreatedAt, casted.contentCreatedAt) + && Objects.equals(contentModifiedAt, casted.contentModifiedAt) + && Objects.equals(ownedBy, casted.ownedBy) + && Objects.equals(sharedLink, casted.sharedLink) + && Objects.equals(folderUploadEmail, casted.folderUploadEmail) + && Objects.equals(parent, casted.parent) + && Objects.equals(itemStatus, casted.itemStatus) + && Objects.equals(itemCollection, casted.itemCollection); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + etag, + type, + sequenceId, + name, + createdAt, + modifiedAt, + description, + size, + pathCollection, + createdBy, + modifiedBy, + trashedAt, + purgedAt, + contentCreatedAt, + contentModifiedAt, + ownedBy, + sharedLink, + folderUploadEmail, + parent, + itemStatus, + itemCollection); + } + + @Override + public String toString() { + return "Folder{" + + "id='" + + id + + '\'' + + ", " + + "etag='" + + etag + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "sequenceId='" + + sequenceId + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "size='" + + size + + '\'' + + ", " + + "pathCollection='" + + pathCollection + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "modifiedBy='" + + modifiedBy + + '\'' + + ", " + + "trashedAt='" + + trashedAt + + '\'' + + ", " + + "purgedAt='" + + purgedAt + + '\'' + + ", " + + "contentCreatedAt='" + + contentCreatedAt + + '\'' + + ", " + + "contentModifiedAt='" + + contentModifiedAt + + '\'' + + ", " + + "ownedBy='" + + ownedBy + + '\'' + + ", " + + "sharedLink='" + + sharedLink + + '\'' + + ", " + + "folderUploadEmail='" + + folderUploadEmail + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + ", " + + "itemStatus='" + + itemStatus + + '\'' + + ", " + + "itemCollection='" + + itemCollection + + '\'' + + "}"; + } + + public static class Builder extends FolderMini.Builder { + + protected Date createdAt; + + protected Date modifiedAt; + + protected String description; + + protected Long size; + + protected FolderPathCollectionField pathCollection; + + protected UserMini createdBy; + + protected UserMini modifiedBy; + + protected Date trashedAt; + + protected Date purgedAt; + + protected Date contentCreatedAt; + + protected Date contentModifiedAt; + + protected UserMini ownedBy; + + protected FolderSharedLinkField sharedLink; + + protected FolderFolderUploadEmailField folderUploadEmail; + + protected FolderMini parent; + + protected EnumWrapper itemStatus; + + protected Items itemCollection; + + public Builder(String id) { + super(id); + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + this.markNullableFieldAsSet("created_at"); + return this; + } + + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + this.markNullableFieldAsSet("modified_at"); + return this; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder size(Long size) { + this.size = size; + return this; + } + + public Builder pathCollection(FolderPathCollectionField pathCollection) { + this.pathCollection = pathCollection; + return this; + } + + public Builder createdBy(UserMini createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder modifiedBy(UserMini modifiedBy) { + this.modifiedBy = modifiedBy; + return this; + } + + public Builder trashedAt(Date trashedAt) { + this.trashedAt = trashedAt; + this.markNullableFieldAsSet("trashed_at"); + return this; + } + + public Builder purgedAt(Date purgedAt) { + this.purgedAt = purgedAt; + this.markNullableFieldAsSet("purged_at"); + return this; + } + + public Builder contentCreatedAt(Date contentCreatedAt) { + this.contentCreatedAt = contentCreatedAt; + this.markNullableFieldAsSet("content_created_at"); + return this; + } + + public Builder contentModifiedAt(Date contentModifiedAt) { + this.contentModifiedAt = contentModifiedAt; + this.markNullableFieldAsSet("content_modified_at"); + return this; + } + + public Builder ownedBy(UserMini ownedBy) { + this.ownedBy = ownedBy; + return this; + } + + public Builder sharedLink(FolderSharedLinkField sharedLink) { + this.sharedLink = sharedLink; + this.markNullableFieldAsSet("shared_link"); + return this; + } + + public Builder folderUploadEmail(FolderFolderUploadEmailField folderUploadEmail) { + this.folderUploadEmail = folderUploadEmail; + this.markNullableFieldAsSet("folder_upload_email"); + return this; + } + + public Builder parent(FolderMini parent) { + this.parent = parent; + this.markNullableFieldAsSet("parent"); + return this; + } + + public Builder itemStatus(FolderItemStatusField itemStatus) { + this.itemStatus = new EnumWrapper(itemStatus); + return this; + } + + public Builder itemStatus(EnumWrapper itemStatus) { + this.itemStatus = itemStatus; + return this; + } + + public Builder itemCollection(Items itemCollection) { + this.itemCollection = itemCollection; + return this; + } + + @Override + public Builder etag(String etag) { + this.etag = etag; + this.markNullableFieldAsSet("etag"); + return this; + } + + @Override + public Builder type(FolderBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder sequenceId(String sequenceId) { + this.sequenceId = sequenceId; + return this; + } + + @Override + public Builder name(String name) { + this.name = name; + return this; + } + + public Folder build() { + return new Folder(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folder/FolderFolderUploadEmailAccessField.java b/src/main/java/com/box/sdkgen/schemas/folder/FolderFolderUploadEmailAccessField.java new file mode 100644 index 000000000..f9604c989 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/folder/FolderFolderUploadEmailAccessField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.folder; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FolderFolderUploadEmailAccessField implements Valuable { + OPEN("open"), + COLLABORATORS("collaborators"); + + private final String value; + + FolderFolderUploadEmailAccessField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FolderFolderUploadEmailAccessFieldDeserializer + extends JsonDeserializer> { + + public FolderFolderUploadEmailAccessFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FolderFolderUploadEmailAccessField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FolderFolderUploadEmailAccessFieldSerializer + extends JsonSerializer> { + + public FolderFolderUploadEmailAccessFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folder/FolderFolderUploadEmailField.java b/src/main/java/com/box/sdkgen/schemas/folder/FolderFolderUploadEmailField.java new file mode 100644 index 000000000..2d035e1e4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/folder/FolderFolderUploadEmailField.java @@ -0,0 +1,97 @@ +package com.box.sdkgen.schemas.folder; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FolderFolderUploadEmailField extends SerializableObject { + + @JsonDeserialize( + using = + FolderFolderUploadEmailAccessField.FolderFolderUploadEmailAccessFieldDeserializer.class) + @JsonSerialize( + using = FolderFolderUploadEmailAccessField.FolderFolderUploadEmailAccessFieldSerializer.class) + protected EnumWrapper access; + + protected String email; + + public FolderFolderUploadEmailField() { + super(); + } + + protected FolderFolderUploadEmailField(Builder builder) { + super(); + this.access = builder.access; + this.email = builder.email; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getAccess() { + return access; + } + + public String getEmail() { + return email; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FolderFolderUploadEmailField casted = (FolderFolderUploadEmailField) o; + return Objects.equals(access, casted.access) && Objects.equals(email, casted.email); + } + + @Override + public int hashCode() { + return Objects.hash(access, email); + } + + @Override + public String toString() { + return "FolderFolderUploadEmailField{" + + "access='" + + access + + '\'' + + ", " + + "email='" + + email + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper access; + + protected String email; + + public Builder access(FolderFolderUploadEmailAccessField access) { + this.access = new EnumWrapper(access); + return this; + } + + public Builder access(EnumWrapper access) { + this.access = access; + return this; + } + + public Builder email(String email) { + this.email = email; + return this; + } + + public FolderFolderUploadEmailField build() { + return new FolderFolderUploadEmailField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folder/FolderItemStatusField.java b/src/main/java/com/box/sdkgen/schemas/folder/FolderItemStatusField.java new file mode 100644 index 000000000..445dd8e54 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/folder/FolderItemStatusField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.folder; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FolderItemStatusField implements Valuable { + ACTIVE("active"), + TRASHED("trashed"), + DELETED("deleted"); + + private final String value; + + FolderItemStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FolderItemStatusFieldDeserializer + extends JsonDeserializer> { + + public FolderItemStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FolderItemStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FolderItemStatusFieldSerializer + extends JsonSerializer> { + + public FolderItemStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folder/FolderPathCollectionField.java b/src/main/java/com/box/sdkgen/schemas/folder/FolderPathCollectionField.java new file mode 100644 index 000000000..55cba6e9e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/folder/FolderPathCollectionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.folder; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FolderPathCollectionField extends SerializableObject { + + @JsonProperty("total_count") + protected final long totalCount; + + protected final List entries; + + public FolderPathCollectionField( + @JsonProperty("total_count") long totalCount, + @JsonProperty("entries") List entries) { + super(); + this.totalCount = totalCount; + this.entries = entries; + } + + public long getTotalCount() { + return totalCount; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FolderPathCollectionField casted = (FolderPathCollectionField) o; + return Objects.equals(totalCount, casted.totalCount) && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, entries); + } + + @Override + public String toString() { + return "FolderPathCollectionField{" + + "totalCount='" + + totalCount + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkAccessField.java b/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkAccessField.java new file mode 100644 index 000000000..13c6d618e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkAccessField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.folder; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FolderSharedLinkAccessField implements Valuable { + OPEN("open"), + COMPANY("company"), + COLLABORATORS("collaborators"); + + private final String value; + + FolderSharedLinkAccessField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FolderSharedLinkAccessFieldDeserializer + extends JsonDeserializer> { + + public FolderSharedLinkAccessFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FolderSharedLinkAccessField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FolderSharedLinkAccessFieldSerializer + extends JsonSerializer> { + + public FolderSharedLinkAccessFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkEffectiveAccessField.java b/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkEffectiveAccessField.java new file mode 100644 index 000000000..102d5ab4b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkEffectiveAccessField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.folder; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FolderSharedLinkEffectiveAccessField implements Valuable { + OPEN("open"), + COMPANY("company"), + COLLABORATORS("collaborators"); + + private final String value; + + FolderSharedLinkEffectiveAccessField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FolderSharedLinkEffectiveAccessFieldDeserializer + extends JsonDeserializer> { + + public FolderSharedLinkEffectiveAccessFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FolderSharedLinkEffectiveAccessField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FolderSharedLinkEffectiveAccessFieldSerializer + extends JsonSerializer> { + + public FolderSharedLinkEffectiveAccessFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkEffectivePermissionField.java b/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkEffectivePermissionField.java new file mode 100644 index 000000000..746cc4910 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkEffectivePermissionField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.schemas.folder; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FolderSharedLinkEffectivePermissionField implements Valuable { + CAN_EDIT("can_edit"), + CAN_DOWNLOAD("can_download"), + CAN_PREVIEW("can_preview"), + NO_ACCESS("no_access"); + + private final String value; + + FolderSharedLinkEffectivePermissionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FolderSharedLinkEffectivePermissionFieldDeserializer + extends JsonDeserializer> { + + public FolderSharedLinkEffectivePermissionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FolderSharedLinkEffectivePermissionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FolderSharedLinkEffectivePermissionFieldSerializer + extends JsonSerializer> { + + public FolderSharedLinkEffectivePermissionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkField.java b/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkField.java new file mode 100644 index 000000000..6f25a0344 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkField.java @@ -0,0 +1,436 @@ +package com.box.sdkgen.schemas.folder; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FolderSharedLinkField extends SerializableObject { + + protected final String url; + + @JsonProperty("download_url") + @Nullable + protected String downloadUrl; + + @JsonProperty("vanity_url") + @Nullable + protected String vanityUrl; + + @JsonProperty("vanity_name") + @Nullable + protected String vanityName; + + @JsonDeserialize( + using = FolderSharedLinkAccessField.FolderSharedLinkAccessFieldDeserializer.class) + @JsonSerialize(using = FolderSharedLinkAccessField.FolderSharedLinkAccessFieldSerializer.class) + protected EnumWrapper access; + + @JsonDeserialize( + using = + FolderSharedLinkEffectiveAccessField.FolderSharedLinkEffectiveAccessFieldDeserializer + .class) + @JsonSerialize( + using = + FolderSharedLinkEffectiveAccessField.FolderSharedLinkEffectiveAccessFieldSerializer.class) + @JsonProperty("effective_access") + protected final EnumWrapper effectiveAccess; + + @JsonDeserialize( + using = + FolderSharedLinkEffectivePermissionField + .FolderSharedLinkEffectivePermissionFieldDeserializer.class) + @JsonSerialize( + using = + FolderSharedLinkEffectivePermissionField + .FolderSharedLinkEffectivePermissionFieldSerializer.class) + @JsonProperty("effective_permission") + protected final EnumWrapper effectivePermission; + + @JsonProperty("unshared_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date unsharedAt; + + @JsonProperty("is_password_enabled") + protected final boolean isPasswordEnabled; + + protected FolderSharedLinkPermissionsField permissions; + + @JsonProperty("download_count") + protected final long downloadCount; + + @JsonProperty("preview_count") + protected final long previewCount; + + public FolderSharedLinkField( + String url, + FolderSharedLinkEffectiveAccessField effectiveAccess, + FolderSharedLinkEffectivePermissionField effectivePermission, + boolean isPasswordEnabled, + long downloadCount, + long previewCount) { + super(); + this.url = url; + this.effectiveAccess = new EnumWrapper(effectiveAccess); + this.effectivePermission = + new EnumWrapper(effectivePermission); + this.isPasswordEnabled = isPasswordEnabled; + this.downloadCount = downloadCount; + this.previewCount = previewCount; + } + + public FolderSharedLinkField( + String url, + FolderSharedLinkEffectiveAccessField effectiveAccess, + EnumWrapper effectivePermission, + boolean isPasswordEnabled, + long downloadCount, + long previewCount) { + super(); + this.url = url; + this.effectiveAccess = new EnumWrapper(effectiveAccess); + this.effectivePermission = effectivePermission; + this.isPasswordEnabled = isPasswordEnabled; + this.downloadCount = downloadCount; + this.previewCount = previewCount; + } + + public FolderSharedLinkField( + String url, + EnumWrapper effectiveAccess, + FolderSharedLinkEffectivePermissionField effectivePermission, + boolean isPasswordEnabled, + long downloadCount, + long previewCount) { + super(); + this.url = url; + this.effectiveAccess = effectiveAccess; + this.effectivePermission = + new EnumWrapper(effectivePermission); + this.isPasswordEnabled = isPasswordEnabled; + this.downloadCount = downloadCount; + this.previewCount = previewCount; + } + + public FolderSharedLinkField( + @JsonProperty("url") String url, + @JsonProperty("effective_access") + EnumWrapper effectiveAccess, + @JsonProperty("effective_permission") + EnumWrapper effectivePermission, + @JsonProperty("is_password_enabled") boolean isPasswordEnabled, + @JsonProperty("download_count") long downloadCount, + @JsonProperty("preview_count") long previewCount) { + super(); + this.url = url; + this.effectiveAccess = effectiveAccess; + this.effectivePermission = effectivePermission; + this.isPasswordEnabled = isPasswordEnabled; + this.downloadCount = downloadCount; + this.previewCount = previewCount; + } + + protected FolderSharedLinkField(Builder builder) { + super(); + this.url = builder.url; + this.downloadUrl = builder.downloadUrl; + this.vanityUrl = builder.vanityUrl; + this.vanityName = builder.vanityName; + this.access = builder.access; + this.effectiveAccess = builder.effectiveAccess; + this.effectivePermission = builder.effectivePermission; + this.unsharedAt = builder.unsharedAt; + this.isPasswordEnabled = builder.isPasswordEnabled; + this.permissions = builder.permissions; + this.downloadCount = builder.downloadCount; + this.previewCount = builder.previewCount; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getUrl() { + return url; + } + + public String getDownloadUrl() { + return downloadUrl; + } + + public String getVanityUrl() { + return vanityUrl; + } + + public String getVanityName() { + return vanityName; + } + + public EnumWrapper getAccess() { + return access; + } + + public EnumWrapper getEffectiveAccess() { + return effectiveAccess; + } + + public EnumWrapper getEffectivePermission() { + return effectivePermission; + } + + public Date getUnsharedAt() { + return unsharedAt; + } + + public boolean getIsPasswordEnabled() { + return isPasswordEnabled; + } + + public FolderSharedLinkPermissionsField getPermissions() { + return permissions; + } + + public long getDownloadCount() { + return downloadCount; + } + + public long getPreviewCount() { + return previewCount; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FolderSharedLinkField casted = (FolderSharedLinkField) o; + return Objects.equals(url, casted.url) + && Objects.equals(downloadUrl, casted.downloadUrl) + && Objects.equals(vanityUrl, casted.vanityUrl) + && Objects.equals(vanityName, casted.vanityName) + && Objects.equals(access, casted.access) + && Objects.equals(effectiveAccess, casted.effectiveAccess) + && Objects.equals(effectivePermission, casted.effectivePermission) + && Objects.equals(unsharedAt, casted.unsharedAt) + && Objects.equals(isPasswordEnabled, casted.isPasswordEnabled) + && Objects.equals(permissions, casted.permissions) + && Objects.equals(downloadCount, casted.downloadCount) + && Objects.equals(previewCount, casted.previewCount); + } + + @Override + public int hashCode() { + return Objects.hash( + url, + downloadUrl, + vanityUrl, + vanityName, + access, + effectiveAccess, + effectivePermission, + unsharedAt, + isPasswordEnabled, + permissions, + downloadCount, + previewCount); + } + + @Override + public String toString() { + return "FolderSharedLinkField{" + + "url='" + + url + + '\'' + + ", " + + "downloadUrl='" + + downloadUrl + + '\'' + + ", " + + "vanityUrl='" + + vanityUrl + + '\'' + + ", " + + "vanityName='" + + vanityName + + '\'' + + ", " + + "access='" + + access + + '\'' + + ", " + + "effectiveAccess='" + + effectiveAccess + + '\'' + + ", " + + "effectivePermission='" + + effectivePermission + + '\'' + + ", " + + "unsharedAt='" + + unsharedAt + + '\'' + + ", " + + "isPasswordEnabled='" + + isPasswordEnabled + + '\'' + + ", " + + "permissions='" + + permissions + + '\'' + + ", " + + "downloadCount='" + + downloadCount + + '\'' + + ", " + + "previewCount='" + + previewCount + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String url; + + protected String downloadUrl; + + protected String vanityUrl; + + protected String vanityName; + + protected EnumWrapper access; + + protected final EnumWrapper effectiveAccess; + + protected final EnumWrapper effectivePermission; + + protected Date unsharedAt; + + protected final boolean isPasswordEnabled; + + protected FolderSharedLinkPermissionsField permissions; + + protected final long downloadCount; + + protected final long previewCount; + + public Builder( + String url, + FolderSharedLinkEffectiveAccessField effectiveAccess, + FolderSharedLinkEffectivePermissionField effectivePermission, + boolean isPasswordEnabled, + long downloadCount, + long previewCount) { + super(); + this.url = url; + this.effectiveAccess = new EnumWrapper(effectiveAccess); + this.effectivePermission = + new EnumWrapper(effectivePermission); + this.isPasswordEnabled = isPasswordEnabled; + this.downloadCount = downloadCount; + this.previewCount = previewCount; + } + + public Builder( + String url, + FolderSharedLinkEffectiveAccessField effectiveAccess, + EnumWrapper effectivePermission, + boolean isPasswordEnabled, + long downloadCount, + long previewCount) { + super(); + this.url = url; + this.effectiveAccess = new EnumWrapper(effectiveAccess); + this.effectivePermission = effectivePermission; + this.isPasswordEnabled = isPasswordEnabled; + this.downloadCount = downloadCount; + this.previewCount = previewCount; + } + + public Builder( + String url, + EnumWrapper effectiveAccess, + FolderSharedLinkEffectivePermissionField effectivePermission, + boolean isPasswordEnabled, + long downloadCount, + long previewCount) { + super(); + this.url = url; + this.effectiveAccess = effectiveAccess; + this.effectivePermission = + new EnumWrapper(effectivePermission); + this.isPasswordEnabled = isPasswordEnabled; + this.downloadCount = downloadCount; + this.previewCount = previewCount; + } + + public Builder( + String url, + EnumWrapper effectiveAccess, + EnumWrapper effectivePermission, + boolean isPasswordEnabled, + long downloadCount, + long previewCount) { + super(); + this.url = url; + this.effectiveAccess = effectiveAccess; + this.effectivePermission = effectivePermission; + this.isPasswordEnabled = isPasswordEnabled; + this.downloadCount = downloadCount; + this.previewCount = previewCount; + } + + public Builder downloadUrl(String downloadUrl) { + this.downloadUrl = downloadUrl; + this.markNullableFieldAsSet("download_url"); + return this; + } + + public Builder vanityUrl(String vanityUrl) { + this.vanityUrl = vanityUrl; + this.markNullableFieldAsSet("vanity_url"); + return this; + } + + public Builder vanityName(String vanityName) { + this.vanityName = vanityName; + this.markNullableFieldAsSet("vanity_name"); + return this; + } + + public Builder access(FolderSharedLinkAccessField access) { + this.access = new EnumWrapper(access); + return this; + } + + public Builder access(EnumWrapper access) { + this.access = access; + return this; + } + + public Builder unsharedAt(Date unsharedAt) { + this.unsharedAt = unsharedAt; + this.markNullableFieldAsSet("unshared_at"); + return this; + } + + public Builder permissions(FolderSharedLinkPermissionsField permissions) { + this.permissions = permissions; + return this; + } + + public FolderSharedLinkField build() { + return new FolderSharedLinkField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkPermissionsField.java b/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkPermissionsField.java new file mode 100644 index 000000000..749e7db9d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkPermissionsField.java @@ -0,0 +1,77 @@ +package com.box.sdkgen.schemas.folder; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FolderSharedLinkPermissionsField extends SerializableObject { + + @JsonProperty("can_download") + protected final boolean canDownload; + + @JsonProperty("can_preview") + protected final boolean canPreview; + + @JsonProperty("can_edit") + protected final boolean canEdit; + + public FolderSharedLinkPermissionsField( + @JsonProperty("can_download") boolean canDownload, + @JsonProperty("can_preview") boolean canPreview, + @JsonProperty("can_edit") boolean canEdit) { + super(); + this.canDownload = canDownload; + this.canPreview = canPreview; + this.canEdit = canEdit; + } + + public boolean getCanDownload() { + return canDownload; + } + + public boolean getCanPreview() { + return canPreview; + } + + public boolean getCanEdit() { + return canEdit; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FolderSharedLinkPermissionsField casted = (FolderSharedLinkPermissionsField) o; + return Objects.equals(canDownload, casted.canDownload) + && Objects.equals(canPreview, casted.canPreview) + && Objects.equals(canEdit, casted.canEdit); + } + + @Override + public int hashCode() { + return Objects.hash(canDownload, canPreview, canEdit); + } + + @Override + public String toString() { + return "FolderSharedLinkPermissionsField{" + + "canDownload='" + + canDownload + + '\'' + + ", " + + "canPreview='" + + canPreview + + '\'' + + ", " + + "canEdit='" + + canEdit + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folderbase/FolderBase.java b/src/main/java/com/box/sdkgen/schemas/folderbase/FolderBase.java new file mode 100644 index 000000000..7dffc7221 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/folderbase/FolderBase.java @@ -0,0 +1,120 @@ +package com.box.sdkgen.schemas.folderbase; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FolderBase extends SerializableObject { + + protected final String id; + + @Nullable protected String etag; + + @JsonDeserialize(using = FolderBaseTypeField.FolderBaseTypeFieldDeserializer.class) + @JsonSerialize(using = FolderBaseTypeField.FolderBaseTypeFieldSerializer.class) + protected EnumWrapper type; + + public FolderBase(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = new EnumWrapper(FolderBaseTypeField.FOLDER); + } + + protected FolderBase(Builder builder) { + super(); + this.id = builder.id; + this.etag = builder.etag; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getEtag() { + return etag; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FolderBase casted = (FolderBase) o; + return Objects.equals(id, casted.id) + && Objects.equals(etag, casted.etag) + && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, etag, type); + } + + @Override + public String toString() { + return "FolderBase{" + + "id='" + + id + + '\'' + + ", " + + "etag='" + + etag + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected String etag; + + protected EnumWrapper type; + + public Builder(String id) { + super(); + this.id = id; + this.type = new EnumWrapper(FolderBaseTypeField.FOLDER); + } + + public Builder etag(String etag) { + this.etag = etag; + this.markNullableFieldAsSet("etag"); + return this; + } + + public Builder type(FolderBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public FolderBase build() { + return new FolderBase(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folderbase/FolderBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/folderbase/FolderBaseTypeField.java new file mode 100644 index 000000000..730c684be --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/folderbase/FolderBaseTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.folderbase; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FolderBaseTypeField implements Valuable { + FOLDER("folder"); + + private final String value; + + FolderBaseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FolderBaseTypeFieldDeserializer + extends JsonDeserializer> { + + public FolderBaseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FolderBaseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FolderBaseTypeFieldSerializer + extends JsonSerializer> { + + public FolderBaseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFull.java b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFull.java new file mode 100644 index 000000000..765c8a22d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFull.java @@ -0,0 +1,791 @@ +package com.box.sdkgen.schemas.folderfull; + +import com.box.sdkgen.schemas.folder.Folder; +import com.box.sdkgen.schemas.folder.FolderFolderUploadEmailField; +import com.box.sdkgen.schemas.folder.FolderItemStatusField; +import com.box.sdkgen.schemas.folder.FolderPathCollectionField; +import com.box.sdkgen.schemas.folder.FolderSharedLinkField; +import com.box.sdkgen.schemas.folderbase.FolderBaseTypeField; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.items.Items; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FolderFull extends Folder { + + @JsonDeserialize(using = FolderFullSyncStateField.FolderFullSyncStateFieldDeserializer.class) + @JsonSerialize(using = FolderFullSyncStateField.FolderFullSyncStateFieldSerializer.class) + @JsonProperty("sync_state") + protected EnumWrapper syncState; + + @JsonProperty("has_collaborations") + protected Boolean hasCollaborations; + + protected FolderFullPermissionsField permissions; + + protected List tags; + + @JsonProperty("can_non_owners_invite") + protected Boolean canNonOwnersInvite; + + @JsonProperty("is_externally_owned") + protected Boolean isExternallyOwned; + + protected FolderFullMetadataField metadata; + + @JsonProperty("is_collaboration_restricted_to_enterprise") + protected Boolean isCollaborationRestrictedToEnterprise; + + @JsonDeserialize(using = AllowedSharedLinkAccessLevelsDeserializer.class) + @JsonSerialize(using = AllowedSharedLinkAccessLevelsSerializer.class) + @JsonProperty("allowed_shared_link_access_levels") + protected List> + allowedSharedLinkAccessLevels; + + @JsonDeserialize(using = AllowedInviteeRolesDeserializer.class) + @JsonSerialize(using = AllowedInviteeRolesSerializer.class) + @JsonProperty("allowed_invitee_roles") + protected List> allowedInviteeRoles; + + @JsonProperty("watermark_info") + protected FolderFullWatermarkInfoField watermarkInfo; + + @JsonProperty("is_accessible_via_shared_link") + protected Boolean isAccessibleViaSharedLink; + + @JsonProperty("can_non_owners_view_collaborators") + protected Boolean canNonOwnersViewCollaborators; + + protected FolderFullClassificationField classification; + + @JsonProperty("is_associated_with_app_item") + protected Boolean isAssociatedWithAppItem; + + public FolderFull(@JsonProperty("id") String id) { + super(id); + } + + protected FolderFull(Builder builder) { + super(builder); + this.syncState = builder.syncState; + this.hasCollaborations = builder.hasCollaborations; + this.permissions = builder.permissions; + this.tags = builder.tags; + this.canNonOwnersInvite = builder.canNonOwnersInvite; + this.isExternallyOwned = builder.isExternallyOwned; + this.metadata = builder.metadata; + this.isCollaborationRestrictedToEnterprise = builder.isCollaborationRestrictedToEnterprise; + this.allowedSharedLinkAccessLevels = builder.allowedSharedLinkAccessLevels; + this.allowedInviteeRoles = builder.allowedInviteeRoles; + this.watermarkInfo = builder.watermarkInfo; + this.isAccessibleViaSharedLink = builder.isAccessibleViaSharedLink; + this.canNonOwnersViewCollaborators = builder.canNonOwnersViewCollaborators; + this.classification = builder.classification; + this.isAssociatedWithAppItem = builder.isAssociatedWithAppItem; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getSyncState() { + return syncState; + } + + public Boolean getHasCollaborations() { + return hasCollaborations; + } + + public FolderFullPermissionsField getPermissions() { + return permissions; + } + + public List getTags() { + return tags; + } + + public Boolean getCanNonOwnersInvite() { + return canNonOwnersInvite; + } + + public Boolean getIsExternallyOwned() { + return isExternallyOwned; + } + + public FolderFullMetadataField getMetadata() { + return metadata; + } + + public Boolean getIsCollaborationRestrictedToEnterprise() { + return isCollaborationRestrictedToEnterprise; + } + + public List> + getAllowedSharedLinkAccessLevels() { + return allowedSharedLinkAccessLevels; + } + + public List> getAllowedInviteeRoles() { + return allowedInviteeRoles; + } + + public FolderFullWatermarkInfoField getWatermarkInfo() { + return watermarkInfo; + } + + public Boolean getIsAccessibleViaSharedLink() { + return isAccessibleViaSharedLink; + } + + public Boolean getCanNonOwnersViewCollaborators() { + return canNonOwnersViewCollaborators; + } + + public FolderFullClassificationField getClassification() { + return classification; + } + + public Boolean getIsAssociatedWithAppItem() { + return isAssociatedWithAppItem; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FolderFull casted = (FolderFull) o; + return Objects.equals(id, casted.id) + && Objects.equals(etag, casted.etag) + && Objects.equals(type, casted.type) + && Objects.equals(sequenceId, casted.sequenceId) + && Objects.equals(name, casted.name) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt) + && Objects.equals(description, casted.description) + && Objects.equals(size, casted.size) + && Objects.equals(pathCollection, casted.pathCollection) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(modifiedBy, casted.modifiedBy) + && Objects.equals(trashedAt, casted.trashedAt) + && Objects.equals(purgedAt, casted.purgedAt) + && Objects.equals(contentCreatedAt, casted.contentCreatedAt) + && Objects.equals(contentModifiedAt, casted.contentModifiedAt) + && Objects.equals(ownedBy, casted.ownedBy) + && Objects.equals(sharedLink, casted.sharedLink) + && Objects.equals(folderUploadEmail, casted.folderUploadEmail) + && Objects.equals(parent, casted.parent) + && Objects.equals(itemStatus, casted.itemStatus) + && Objects.equals(itemCollection, casted.itemCollection) + && Objects.equals(syncState, casted.syncState) + && Objects.equals(hasCollaborations, casted.hasCollaborations) + && Objects.equals(permissions, casted.permissions) + && Objects.equals(tags, casted.tags) + && Objects.equals(canNonOwnersInvite, casted.canNonOwnersInvite) + && Objects.equals(isExternallyOwned, casted.isExternallyOwned) + && Objects.equals(metadata, casted.metadata) + && Objects.equals( + isCollaborationRestrictedToEnterprise, casted.isCollaborationRestrictedToEnterprise) + && Objects.equals(allowedSharedLinkAccessLevels, casted.allowedSharedLinkAccessLevels) + && Objects.equals(allowedInviteeRoles, casted.allowedInviteeRoles) + && Objects.equals(watermarkInfo, casted.watermarkInfo) + && Objects.equals(isAccessibleViaSharedLink, casted.isAccessibleViaSharedLink) + && Objects.equals(canNonOwnersViewCollaborators, casted.canNonOwnersViewCollaborators) + && Objects.equals(classification, casted.classification) + && Objects.equals(isAssociatedWithAppItem, casted.isAssociatedWithAppItem); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + etag, + type, + sequenceId, + name, + createdAt, + modifiedAt, + description, + size, + pathCollection, + createdBy, + modifiedBy, + trashedAt, + purgedAt, + contentCreatedAt, + contentModifiedAt, + ownedBy, + sharedLink, + folderUploadEmail, + parent, + itemStatus, + itemCollection, + syncState, + hasCollaborations, + permissions, + tags, + canNonOwnersInvite, + isExternallyOwned, + metadata, + isCollaborationRestrictedToEnterprise, + allowedSharedLinkAccessLevels, + allowedInviteeRoles, + watermarkInfo, + isAccessibleViaSharedLink, + canNonOwnersViewCollaborators, + classification, + isAssociatedWithAppItem); + } + + @Override + public String toString() { + return "FolderFull{" + + "id='" + + id + + '\'' + + ", " + + "etag='" + + etag + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "sequenceId='" + + sequenceId + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "size='" + + size + + '\'' + + ", " + + "pathCollection='" + + pathCollection + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "modifiedBy='" + + modifiedBy + + '\'' + + ", " + + "trashedAt='" + + trashedAt + + '\'' + + ", " + + "purgedAt='" + + purgedAt + + '\'' + + ", " + + "contentCreatedAt='" + + contentCreatedAt + + '\'' + + ", " + + "contentModifiedAt='" + + contentModifiedAt + + '\'' + + ", " + + "ownedBy='" + + ownedBy + + '\'' + + ", " + + "sharedLink='" + + sharedLink + + '\'' + + ", " + + "folderUploadEmail='" + + folderUploadEmail + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + ", " + + "itemStatus='" + + itemStatus + + '\'' + + ", " + + "itemCollection='" + + itemCollection + + '\'' + + ", " + + "syncState='" + + syncState + + '\'' + + ", " + + "hasCollaborations='" + + hasCollaborations + + '\'' + + ", " + + "permissions='" + + permissions + + '\'' + + ", " + + "tags='" + + tags + + '\'' + + ", " + + "canNonOwnersInvite='" + + canNonOwnersInvite + + '\'' + + ", " + + "isExternallyOwned='" + + isExternallyOwned + + '\'' + + ", " + + "metadata='" + + metadata + + '\'' + + ", " + + "isCollaborationRestrictedToEnterprise='" + + isCollaborationRestrictedToEnterprise + + '\'' + + ", " + + "allowedSharedLinkAccessLevels='" + + allowedSharedLinkAccessLevels + + '\'' + + ", " + + "allowedInviteeRoles='" + + allowedInviteeRoles + + '\'' + + ", " + + "watermarkInfo='" + + watermarkInfo + + '\'' + + ", " + + "isAccessibleViaSharedLink='" + + isAccessibleViaSharedLink + + '\'' + + ", " + + "canNonOwnersViewCollaborators='" + + canNonOwnersViewCollaborators + + '\'' + + ", " + + "classification='" + + classification + + '\'' + + ", " + + "isAssociatedWithAppItem='" + + isAssociatedWithAppItem + + '\'' + + "}"; + } + + public static class Builder extends Folder.Builder { + + protected EnumWrapper syncState; + + protected Boolean hasCollaborations; + + protected FolderFullPermissionsField permissions; + + protected List tags; + + protected Boolean canNonOwnersInvite; + + protected Boolean isExternallyOwned; + + protected FolderFullMetadataField metadata; + + protected Boolean isCollaborationRestrictedToEnterprise; + + protected List> + allowedSharedLinkAccessLevels; + + protected List> allowedInviteeRoles; + + protected FolderFullWatermarkInfoField watermarkInfo; + + protected Boolean isAccessibleViaSharedLink; + + protected Boolean canNonOwnersViewCollaborators; + + protected FolderFullClassificationField classification; + + protected Boolean isAssociatedWithAppItem; + + public Builder(String id) { + super(id); + } + + public Builder syncState(FolderFullSyncStateField syncState) { + this.syncState = new EnumWrapper(syncState); + return this; + } + + public Builder syncState(EnumWrapper syncState) { + this.syncState = syncState; + return this; + } + + public Builder hasCollaborations(Boolean hasCollaborations) { + this.hasCollaborations = hasCollaborations; + return this; + } + + public Builder permissions(FolderFullPermissionsField permissions) { + this.permissions = permissions; + return this; + } + + public Builder tags(List tags) { + this.tags = tags; + return this; + } + + public Builder canNonOwnersInvite(Boolean canNonOwnersInvite) { + this.canNonOwnersInvite = canNonOwnersInvite; + return this; + } + + public Builder isExternallyOwned(Boolean isExternallyOwned) { + this.isExternallyOwned = isExternallyOwned; + return this; + } + + public Builder metadata(FolderFullMetadataField metadata) { + this.metadata = metadata; + return this; + } + + public Builder isCollaborationRestrictedToEnterprise( + Boolean isCollaborationRestrictedToEnterprise) { + this.isCollaborationRestrictedToEnterprise = isCollaborationRestrictedToEnterprise; + return this; + } + + public Builder allowedSharedLinkAccessLevels( + List allowedSharedLinkAccessLevels) { + this.allowedSharedLinkAccessLevels = + EnumWrapper.wrapValuableEnumList( + allowedSharedLinkAccessLevels, FolderFullAllowedSharedLinkAccessLevelsField.class); + return this; + } + + public Builder allowedInviteeRoles(List allowedInviteeRoles) { + this.allowedInviteeRoles = + EnumWrapper.wrapValuableEnumList( + allowedInviteeRoles, FolderFullAllowedInviteeRolesField.class); + return this; + } + + public Builder watermarkInfo(FolderFullWatermarkInfoField watermarkInfo) { + this.watermarkInfo = watermarkInfo; + return this; + } + + public Builder isAccessibleViaSharedLink(Boolean isAccessibleViaSharedLink) { + this.isAccessibleViaSharedLink = isAccessibleViaSharedLink; + return this; + } + + public Builder canNonOwnersViewCollaborators(Boolean canNonOwnersViewCollaborators) { + this.canNonOwnersViewCollaborators = canNonOwnersViewCollaborators; + return this; + } + + public Builder classification(FolderFullClassificationField classification) { + this.classification = classification; + return this; + } + + public Builder isAssociatedWithAppItem(Boolean isAssociatedWithAppItem) { + this.isAssociatedWithAppItem = isAssociatedWithAppItem; + return this; + } + + @Override + public Builder etag(String etag) { + this.etag = etag; + this.markNullableFieldAsSet("etag"); + return this; + } + + @Override + public Builder type(FolderBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder sequenceId(String sequenceId) { + this.sequenceId = sequenceId; + return this; + } + + @Override + public Builder name(String name) { + this.name = name; + return this; + } + + @Override + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + this.markNullableFieldAsSet("created_at"); + return this; + } + + @Override + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + this.markNullableFieldAsSet("modified_at"); + return this; + } + + @Override + public Builder description(String description) { + this.description = description; + return this; + } + + @Override + public Builder size(Long size) { + this.size = size; + return this; + } + + @Override + public Builder pathCollection(FolderPathCollectionField pathCollection) { + this.pathCollection = pathCollection; + return this; + } + + @Override + public Builder createdBy(UserMini createdBy) { + this.createdBy = createdBy; + return this; + } + + @Override + public Builder modifiedBy(UserMini modifiedBy) { + this.modifiedBy = modifiedBy; + return this; + } + + @Override + public Builder trashedAt(Date trashedAt) { + this.trashedAt = trashedAt; + this.markNullableFieldAsSet("trashed_at"); + return this; + } + + @Override + public Builder purgedAt(Date purgedAt) { + this.purgedAt = purgedAt; + this.markNullableFieldAsSet("purged_at"); + return this; + } + + @Override + public Builder contentCreatedAt(Date contentCreatedAt) { + this.contentCreatedAt = contentCreatedAt; + this.markNullableFieldAsSet("content_created_at"); + return this; + } + + @Override + public Builder contentModifiedAt(Date contentModifiedAt) { + this.contentModifiedAt = contentModifiedAt; + this.markNullableFieldAsSet("content_modified_at"); + return this; + } + + @Override + public Builder ownedBy(UserMini ownedBy) { + this.ownedBy = ownedBy; + return this; + } + + @Override + public Builder sharedLink(FolderSharedLinkField sharedLink) { + this.sharedLink = sharedLink; + this.markNullableFieldAsSet("shared_link"); + return this; + } + + @Override + public Builder folderUploadEmail(FolderFolderUploadEmailField folderUploadEmail) { + this.folderUploadEmail = folderUploadEmail; + this.markNullableFieldAsSet("folder_upload_email"); + return this; + } + + @Override + public Builder parent(FolderMini parent) { + this.parent = parent; + this.markNullableFieldAsSet("parent"); + return this; + } + + @Override + public Builder itemStatus(FolderItemStatusField itemStatus) { + this.itemStatus = new EnumWrapper(itemStatus); + return this; + } + + @Override + public Builder itemStatus(EnumWrapper itemStatus) { + this.itemStatus = itemStatus; + return this; + } + + @Override + public Builder itemCollection(Items itemCollection) { + this.itemCollection = itemCollection; + return this; + } + + public FolderFull build() { + return new FolderFull(this); + } + } + + public static class AllowedSharedLinkAccessLevelsDeserializer + extends JsonDeserializer>> { + + public final JsonDeserializer> + elementDeserializer; + + public AllowedSharedLinkAccessLevelsDeserializer() { + super(); + this.elementDeserializer = + new FolderFullAllowedSharedLinkAccessLevelsField + .FolderFullAllowedSharedLinkAccessLevelsFieldDeserializer(); + } + + @Override + public List> deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + JsonNode node = p.getCodec().readTree(p); + List> elements = new ArrayList<>(); + for (JsonNode item : node) { + JsonParser pa = item.traverse(p.getCodec()); + pa.nextToken(); + elements.add(elementDeserializer.deserialize(pa, ctxt)); + } + return elements; + } + } + + public static class AllowedSharedLinkAccessLevelsSerializer + extends JsonSerializer>> { + + public final JsonSerializer> + elementSerializer; + + public AllowedSharedLinkAccessLevelsSerializer() { + super(); + this.elementSerializer = + new FolderFullAllowedSharedLinkAccessLevelsField + .FolderFullAllowedSharedLinkAccessLevelsFieldSerializer(); + } + + @Override + public void serialize( + List> value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeStartArray(); + for (EnumWrapper item : value) { + elementSerializer.serialize(item, gen, serializers); + } + gen.writeEndArray(); + } + } + + public static class AllowedInviteeRolesDeserializer + extends JsonDeserializer>> { + + public final JsonDeserializer> + elementDeserializer; + + public AllowedInviteeRolesDeserializer() { + super(); + this.elementDeserializer = + new FolderFullAllowedInviteeRolesField.FolderFullAllowedInviteeRolesFieldDeserializer(); + } + + @Override + public List> deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + JsonNode node = p.getCodec().readTree(p); + List> elements = new ArrayList<>(); + for (JsonNode item : node) { + JsonParser pa = item.traverse(p.getCodec()); + pa.nextToken(); + elements.add(elementDeserializer.deserialize(pa, ctxt)); + } + return elements; + } + } + + public static class AllowedInviteeRolesSerializer + extends JsonSerializer>> { + + public final JsonSerializer> elementSerializer; + + public AllowedInviteeRolesSerializer() { + super(); + this.elementSerializer = + new FolderFullAllowedInviteeRolesField.FolderFullAllowedInviteeRolesFieldSerializer(); + } + + @Override + public void serialize( + List> value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeStartArray(); + for (EnumWrapper item : value) { + elementSerializer.serialize(item, gen, serializers); + } + gen.writeEndArray(); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullAllowedInviteeRolesField.java b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullAllowedInviteeRolesField.java new file mode 100644 index 000000000..f572501a7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullAllowedInviteeRolesField.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.schemas.folderfull; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FolderFullAllowedInviteeRolesField implements Valuable { + EDITOR("editor"), + VIEWER("viewer"), + PREVIEWER("previewer"), + UPLOADER("uploader"), + PREVIEWER_UPLOADER("previewer uploader"), + VIEWER_UPLOADER("viewer uploader"), + CO_OWNER("co-owner"); + + private final String value; + + FolderFullAllowedInviteeRolesField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FolderFullAllowedInviteeRolesFieldDeserializer + extends JsonDeserializer> { + + public FolderFullAllowedInviteeRolesFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FolderFullAllowedInviteeRolesField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FolderFullAllowedInviteeRolesFieldSerializer + extends JsonSerializer> { + + public FolderFullAllowedInviteeRolesFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullAllowedSharedLinkAccessLevelsField.java b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullAllowedSharedLinkAccessLevelsField.java new file mode 100644 index 000000000..22ffcc0e5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullAllowedSharedLinkAccessLevelsField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.folderfull; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FolderFullAllowedSharedLinkAccessLevelsField implements Valuable { + OPEN("open"), + COMPANY("company"), + COLLABORATORS("collaborators"); + + private final String value; + + FolderFullAllowedSharedLinkAccessLevelsField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FolderFullAllowedSharedLinkAccessLevelsFieldDeserializer + extends JsonDeserializer> { + + public FolderFullAllowedSharedLinkAccessLevelsFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FolderFullAllowedSharedLinkAccessLevelsField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FolderFullAllowedSharedLinkAccessLevelsFieldSerializer + extends JsonSerializer> { + + public FolderFullAllowedSharedLinkAccessLevelsFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullClassificationField.java b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullClassificationField.java new file mode 100644 index 000000000..587b0801c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullClassificationField.java @@ -0,0 +1,104 @@ +package com.box.sdkgen.schemas.folderfull; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FolderFullClassificationField extends SerializableObject { + + protected String name; + + protected String definition; + + protected String color; + + public FolderFullClassificationField() { + super(); + } + + protected FolderFullClassificationField(Builder builder) { + super(); + this.name = builder.name; + this.definition = builder.definition; + this.color = builder.color; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public String getDefinition() { + return definition; + } + + public String getColor() { + return color; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FolderFullClassificationField casted = (FolderFullClassificationField) o; + return Objects.equals(name, casted.name) + && Objects.equals(definition, casted.definition) + && Objects.equals(color, casted.color); + } + + @Override + public int hashCode() { + return Objects.hash(name, definition, color); + } + + @Override + public String toString() { + return "FolderFullClassificationField{" + + "name='" + + name + + '\'' + + ", " + + "definition='" + + definition + + '\'' + + ", " + + "color='" + + color + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String name; + + protected String definition; + + protected String color; + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder definition(String definition) { + this.definition = definition; + return this; + } + + public Builder color(String color) { + this.color = color; + return this; + } + + public FolderFullClassificationField build() { + return new FolderFullClassificationField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullMetadataField.java b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullMetadataField.java new file mode 100644 index 000000000..03b0e58db --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullMetadataField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.schemas.folderfull; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.metadatafull.MetadataFull; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Map; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FolderFullMetadataField extends SerializableObject { + + @JsonAnyGetter @JsonAnySetter protected Map> extraData; + + public FolderFullMetadataField() { + super(); + } + + protected FolderFullMetadataField(Builder builder) { + super(); + this.extraData = builder.extraData; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Map> getExtraData() { + return extraData; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FolderFullMetadataField casted = (FolderFullMetadataField) o; + return Objects.equals(extraData, casted.extraData); + } + + @Override + public int hashCode() { + return Objects.hash(extraData); + } + + @Override + public String toString() { + return "FolderFullMetadataField{" + "extraData='" + extraData + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Map> extraData; + + public Builder extraData(Map> extraData) { + this.extraData = extraData; + return this; + } + + public FolderFullMetadataField build() { + return new FolderFullMetadataField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullPermissionsField.java b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullPermissionsField.java new file mode 100644 index 000000000..55e0eb841 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullPermissionsField.java @@ -0,0 +1,140 @@ +package com.box.sdkgen.schemas.folderfull; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FolderFullPermissionsField extends SerializableObject { + + @JsonProperty("can_delete") + protected final boolean canDelete; + + @JsonProperty("can_download") + protected final boolean canDownload; + + @JsonProperty("can_invite_collaborator") + protected final boolean canInviteCollaborator; + + @JsonProperty("can_rename") + protected final boolean canRename; + + @JsonProperty("can_set_share_access") + protected final boolean canSetShareAccess; + + @JsonProperty("can_share") + protected final boolean canShare; + + @JsonProperty("can_upload") + protected final boolean canUpload; + + public FolderFullPermissionsField( + @JsonProperty("can_delete") boolean canDelete, + @JsonProperty("can_download") boolean canDownload, + @JsonProperty("can_invite_collaborator") boolean canInviteCollaborator, + @JsonProperty("can_rename") boolean canRename, + @JsonProperty("can_set_share_access") boolean canSetShareAccess, + @JsonProperty("can_share") boolean canShare, + @JsonProperty("can_upload") boolean canUpload) { + super(); + this.canDelete = canDelete; + this.canDownload = canDownload; + this.canInviteCollaborator = canInviteCollaborator; + this.canRename = canRename; + this.canSetShareAccess = canSetShareAccess; + this.canShare = canShare; + this.canUpload = canUpload; + } + + public boolean getCanDelete() { + return canDelete; + } + + public boolean getCanDownload() { + return canDownload; + } + + public boolean getCanInviteCollaborator() { + return canInviteCollaborator; + } + + public boolean getCanRename() { + return canRename; + } + + public boolean getCanSetShareAccess() { + return canSetShareAccess; + } + + public boolean getCanShare() { + return canShare; + } + + public boolean getCanUpload() { + return canUpload; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FolderFullPermissionsField casted = (FolderFullPermissionsField) o; + return Objects.equals(canDelete, casted.canDelete) + && Objects.equals(canDownload, casted.canDownload) + && Objects.equals(canInviteCollaborator, casted.canInviteCollaborator) + && Objects.equals(canRename, casted.canRename) + && Objects.equals(canSetShareAccess, casted.canSetShareAccess) + && Objects.equals(canShare, casted.canShare) + && Objects.equals(canUpload, casted.canUpload); + } + + @Override + public int hashCode() { + return Objects.hash( + canDelete, + canDownload, + canInviteCollaborator, + canRename, + canSetShareAccess, + canShare, + canUpload); + } + + @Override + public String toString() { + return "FolderFullPermissionsField{" + + "canDelete='" + + canDelete + + '\'' + + ", " + + "canDownload='" + + canDownload + + '\'' + + ", " + + "canInviteCollaborator='" + + canInviteCollaborator + + '\'' + + ", " + + "canRename='" + + canRename + + '\'' + + ", " + + "canSetShareAccess='" + + canSetShareAccess + + '\'' + + ", " + + "canShare='" + + canShare + + '\'' + + ", " + + "canUpload='" + + canUpload + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullSyncStateField.java b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullSyncStateField.java new file mode 100644 index 000000000..199d022a8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullSyncStateField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.folderfull; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FolderFullSyncStateField implements Valuable { + SYNCED("synced"), + NOT_SYNCED("not_synced"), + PARTIALLY_SYNCED("partially_synced"); + + private final String value; + + FolderFullSyncStateField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FolderFullSyncStateFieldDeserializer + extends JsonDeserializer> { + + public FolderFullSyncStateFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FolderFullSyncStateField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FolderFullSyncStateFieldSerializer + extends JsonSerializer> { + + public FolderFullSyncStateFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullWatermarkInfoField.java b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullWatermarkInfoField.java new file mode 100644 index 000000000..aa94aad8f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullWatermarkInfoField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.folderfull; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FolderFullWatermarkInfoField extends SerializableObject { + + @JsonProperty("is_watermarked") + protected Boolean isWatermarked; + + public FolderFullWatermarkInfoField() { + super(); + } + + protected FolderFullWatermarkInfoField(Builder builder) { + super(); + this.isWatermarked = builder.isWatermarked; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getIsWatermarked() { + return isWatermarked; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FolderFullWatermarkInfoField casted = (FolderFullWatermarkInfoField) o; + return Objects.equals(isWatermarked, casted.isWatermarked); + } + + @Override + public int hashCode() { + return Objects.hash(isWatermarked); + } + + @Override + public String toString() { + return "FolderFullWatermarkInfoField{" + "isWatermarked='" + isWatermarked + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean isWatermarked; + + public Builder isWatermarked(Boolean isWatermarked) { + this.isWatermarked = isWatermarked; + return this; + } + + public FolderFullWatermarkInfoField build() { + return new FolderFullWatermarkInfoField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folderlock/FolderLock.java b/src/main/java/com/box/sdkgen/schemas/folderlock/FolderLock.java new file mode 100644 index 000000000..8bb4e4363 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/folderlock/FolderLock.java @@ -0,0 +1,193 @@ +package com.box.sdkgen.schemas.folderlock; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.userbase.UserBase; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FolderLock extends SerializableObject { + + protected FolderMini folder; + + protected String id; + + protected String type; + + @JsonProperty("created_by") + protected UserBase createdBy; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("locked_operations") + protected FolderLockLockedOperationsField lockedOperations; + + @JsonProperty("lock_type") + protected String lockType; + + public FolderLock() { + super(); + } + + protected FolderLock(Builder builder) { + super(); + this.folder = builder.folder; + this.id = builder.id; + this.type = builder.type; + this.createdBy = builder.createdBy; + this.createdAt = builder.createdAt; + this.lockedOperations = builder.lockedOperations; + this.lockType = builder.lockType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public FolderMini getFolder() { + return folder; + } + + public String getId() { + return id; + } + + public String getType() { + return type; + } + + public UserBase getCreatedBy() { + return createdBy; + } + + public Date getCreatedAt() { + return createdAt; + } + + public FolderLockLockedOperationsField getLockedOperations() { + return lockedOperations; + } + + public String getLockType() { + return lockType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FolderLock casted = (FolderLock) o; + return Objects.equals(folder, casted.folder) + && Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(lockedOperations, casted.lockedOperations) + && Objects.equals(lockType, casted.lockType); + } + + @Override + public int hashCode() { + return Objects.hash(folder, id, type, createdBy, createdAt, lockedOperations, lockType); + } + + @Override + public String toString() { + return "FolderLock{" + + "folder='" + + folder + + '\'' + + ", " + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "lockedOperations='" + + lockedOperations + + '\'' + + ", " + + "lockType='" + + lockType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected FolderMini folder; + + protected String id; + + protected String type; + + protected UserBase createdBy; + + protected Date createdAt; + + protected FolderLockLockedOperationsField lockedOperations; + + protected String lockType; + + public Builder folder(FolderMini folder) { + this.folder = folder; + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(String type) { + this.type = type; + return this; + } + + public Builder createdBy(UserBase createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder lockedOperations(FolderLockLockedOperationsField lockedOperations) { + this.lockedOperations = lockedOperations; + return this; + } + + public Builder lockType(String lockType) { + this.lockType = lockType; + return this; + } + + public FolderLock build() { + return new FolderLock(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folderlock/FolderLockLockedOperationsField.java b/src/main/java/com/box/sdkgen/schemas/folderlock/FolderLockLockedOperationsField.java new file mode 100644 index 000000000..facf8c90f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/folderlock/FolderLockLockedOperationsField.java @@ -0,0 +1,59 @@ +package com.box.sdkgen.schemas.folderlock; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FolderLockLockedOperationsField extends SerializableObject { + + protected final boolean move; + + protected final boolean delete; + + public FolderLockLockedOperationsField( + @JsonProperty("move") boolean move, @JsonProperty("delete") boolean delete) { + super(); + this.move = move; + this.delete = delete; + } + + public boolean getMove() { + return move; + } + + public boolean getDelete() { + return delete; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FolderLockLockedOperationsField casted = (FolderLockLockedOperationsField) o; + return Objects.equals(move, casted.move) && Objects.equals(delete, casted.delete); + } + + @Override + public int hashCode() { + return Objects.hash(move, delete); + } + + @Override + public String toString() { + return "FolderLockLockedOperationsField{" + + "move='" + + move + + '\'' + + ", " + + "delete='" + + delete + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folderlocks/FolderLocks.java b/src/main/java/com/box/sdkgen/schemas/folderlocks/FolderLocks.java new file mode 100644 index 000000000..f8cac5ba1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/folderlocks/FolderLocks.java @@ -0,0 +1,111 @@ +package com.box.sdkgen.schemas.folderlocks; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.folderlock.FolderLock; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FolderLocks extends SerializableObject { + + protected List entries; + + protected String limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + public FolderLocks() { + super(); + } + + protected FolderLocks(Builder builder) { + super(); + this.entries = builder.entries; + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getEntries() { + return entries; + } + + public String getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FolderLocks casted = (FolderLocks) o; + return Objects.equals(entries, casted.entries) + && Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker); + } + + @Override + public int hashCode() { + return Objects.hash(entries, limit, nextMarker); + } + + @Override + public String toString() { + return "FolderLocks{" + + "entries='" + + entries + + '\'' + + ", " + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List entries; + + protected String limit; + + protected String nextMarker; + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public Builder limit(String limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public FolderLocks build() { + return new FolderLocks(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/foldermini/FolderMini.java b/src/main/java/com/box/sdkgen/schemas/foldermini/FolderMini.java new file mode 100644 index 000000000..4266834b9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/foldermini/FolderMini.java @@ -0,0 +1,126 @@ +package com.box.sdkgen.schemas.foldermini; + +import com.box.sdkgen.schemas.folderbase.FolderBase; +import com.box.sdkgen.schemas.folderbase.FolderBaseTypeField; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FolderMini extends FolderBase { + + @JsonProperty("sequence_id") + protected String sequenceId; + + protected String name; + + public FolderMini(@JsonProperty("id") String id) { + super(id); + } + + protected FolderMini(Builder builder) { + super(builder); + this.sequenceId = builder.sequenceId; + this.name = builder.name; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getSequenceId() { + return sequenceId; + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FolderMini casted = (FolderMini) o; + return Objects.equals(id, casted.id) + && Objects.equals(etag, casted.etag) + && Objects.equals(type, casted.type) + && Objects.equals(sequenceId, casted.sequenceId) + && Objects.equals(name, casted.name); + } + + @Override + public int hashCode() { + return Objects.hash(id, etag, type, sequenceId, name); + } + + @Override + public String toString() { + return "FolderMini{" + + "id='" + + id + + '\'' + + ", " + + "etag='" + + etag + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "sequenceId='" + + sequenceId + + '\'' + + ", " + + "name='" + + name + + '\'' + + "}"; + } + + public static class Builder extends FolderBase.Builder { + + protected String sequenceId; + + protected String name; + + public Builder(String id) { + super(id); + } + + public Builder sequenceId(String sequenceId) { + this.sequenceId = sequenceId; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + @Override + public Builder etag(String etag) { + this.etag = etag; + this.markNullableFieldAsSet("etag"); + return this; + } + + @Override + public Builder type(FolderBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public FolderMini build() { + return new FolderMini(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folderreference/FolderReference.java b/src/main/java/com/box/sdkgen/schemas/folderreference/FolderReference.java new file mode 100644 index 000000000..915af3fb9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/folderreference/FolderReference.java @@ -0,0 +1,90 @@ +package com.box.sdkgen.schemas.folderreference; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FolderReference extends SerializableObject { + + @JsonDeserialize(using = FolderReferenceTypeField.FolderReferenceTypeFieldDeserializer.class) + @JsonSerialize(using = FolderReferenceTypeField.FolderReferenceTypeFieldSerializer.class) + protected EnumWrapper type; + + protected final String id; + + public FolderReference(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = new EnumWrapper(FolderReferenceTypeField.FOLDER); + } + + protected FolderReference(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FolderReference casted = (FolderReference) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "FolderReference{" + "type='" + type + '\'' + ", " + "id='" + id + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + this.type = new EnumWrapper(FolderReferenceTypeField.FOLDER); + } + + public Builder type(FolderReferenceTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public FolderReference build() { + return new FolderReference(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folderreference/FolderReferenceTypeField.java b/src/main/java/com/box/sdkgen/schemas/folderreference/FolderReferenceTypeField.java new file mode 100644 index 000000000..7bbfa19d1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/folderreference/FolderReferenceTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.folderreference; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FolderReferenceTypeField implements Valuable { + FOLDER("folder"); + + private final String value; + + FolderReferenceTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FolderReferenceTypeFieldDeserializer + extends JsonDeserializer> { + + public FolderReferenceTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FolderReferenceTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FolderReferenceTypeFieldSerializer + extends JsonSerializer> { + + public FolderReferenceTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/group/Group.java b/src/main/java/com/box/sdkgen/schemas/group/Group.java new file mode 100644 index 000000000..01b150ff2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/group/Group.java @@ -0,0 +1,152 @@ +package com.box.sdkgen.schemas.group; + +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.groupbase.GroupBaseTypeField; +import com.box.sdkgen.schemas.groupmini.GroupMini; +import com.box.sdkgen.schemas.groupmini.GroupMiniGroupTypeField; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Group extends GroupMini { + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date modifiedAt; + + public Group(@JsonProperty("id") String id) { + super(id); + } + + protected Group(Builder builder) { + super(builder); + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Group casted = (Group) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name) + && Objects.equals(groupType, casted.groupType) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name, groupType, createdAt, modifiedAt); + } + + @Override + public String toString() { + return "Group{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "groupType='" + + groupType + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + "}"; + } + + public static class Builder extends GroupMini.Builder { + + protected Date createdAt; + + protected Date modifiedAt; + + public Builder(String id) { + super(id); + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + @Override + public Builder type(GroupBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder name(String name) { + this.name = name; + return this; + } + + @Override + public Builder groupType(GroupMiniGroupTypeField groupType) { + this.groupType = new EnumWrapper(groupType); + return this; + } + + @Override + public Builder groupType(EnumWrapper groupType) { + this.groupType = groupType; + return this; + } + + public Group build() { + return new Group(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/groupbase/GroupBase.java b/src/main/java/com/box/sdkgen/schemas/groupbase/GroupBase.java new file mode 100644 index 000000000..3b93619f8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/groupbase/GroupBase.java @@ -0,0 +1,90 @@ +package com.box.sdkgen.schemas.groupbase; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class GroupBase extends SerializableObject { + + protected final String id; + + @JsonDeserialize(using = GroupBaseTypeField.GroupBaseTypeFieldDeserializer.class) + @JsonSerialize(using = GroupBaseTypeField.GroupBaseTypeFieldSerializer.class) + protected EnumWrapper type; + + public GroupBase(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = new EnumWrapper(GroupBaseTypeField.GROUP); + } + + protected GroupBase(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GroupBase casted = (GroupBase) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "GroupBase{" + "id='" + id + '\'' + ", " + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + public Builder(String id) { + super(); + this.id = id; + this.type = new EnumWrapper(GroupBaseTypeField.GROUP); + } + + public Builder type(GroupBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public GroupBase build() { + return new GroupBase(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/groupbase/GroupBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/groupbase/GroupBaseTypeField.java new file mode 100644 index 000000000..ade51f282 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/groupbase/GroupBaseTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.groupbase; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GroupBaseTypeField implements Valuable { + GROUP("group"); + + private final String value; + + GroupBaseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GroupBaseTypeFieldDeserializer + extends JsonDeserializer> { + + public GroupBaseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GroupBaseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GroupBaseTypeFieldSerializer + extends JsonSerializer> { + + public GroupBaseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFull.java b/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFull.java new file mode 100644 index 000000000..a8feb3161 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFull.java @@ -0,0 +1,283 @@ +package com.box.sdkgen.schemas.groupfull; + +import com.box.sdkgen.schemas.group.Group; +import com.box.sdkgen.schemas.groupbase.GroupBaseTypeField; +import com.box.sdkgen.schemas.groupmini.GroupMiniGroupTypeField; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class GroupFull extends Group { + + protected String provenance; + + @JsonProperty("external_sync_identifier") + protected String externalSyncIdentifier; + + protected String description; + + @JsonDeserialize( + using = GroupFullInvitabilityLevelField.GroupFullInvitabilityLevelFieldDeserializer.class) + @JsonSerialize( + using = GroupFullInvitabilityLevelField.GroupFullInvitabilityLevelFieldSerializer.class) + @JsonProperty("invitability_level") + protected EnumWrapper invitabilityLevel; + + @JsonDeserialize( + using = + GroupFullMemberViewabilityLevelField.GroupFullMemberViewabilityLevelFieldDeserializer + .class) + @JsonSerialize( + using = + GroupFullMemberViewabilityLevelField.GroupFullMemberViewabilityLevelFieldSerializer.class) + @JsonProperty("member_viewability_level") + protected EnumWrapper memberViewabilityLevel; + + protected GroupFullPermissionsField permissions; + + public GroupFull(@JsonProperty("id") String id) { + super(id); + } + + protected GroupFull(Builder builder) { + super(builder); + this.provenance = builder.provenance; + this.externalSyncIdentifier = builder.externalSyncIdentifier; + this.description = builder.description; + this.invitabilityLevel = builder.invitabilityLevel; + this.memberViewabilityLevel = builder.memberViewabilityLevel; + this.permissions = builder.permissions; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getProvenance() { + return provenance; + } + + public String getExternalSyncIdentifier() { + return externalSyncIdentifier; + } + + public String getDescription() { + return description; + } + + public EnumWrapper getInvitabilityLevel() { + return invitabilityLevel; + } + + public EnumWrapper getMemberViewabilityLevel() { + return memberViewabilityLevel; + } + + public GroupFullPermissionsField getPermissions() { + return permissions; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GroupFull casted = (GroupFull) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name) + && Objects.equals(groupType, casted.groupType) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt) + && Objects.equals(provenance, casted.provenance) + && Objects.equals(externalSyncIdentifier, casted.externalSyncIdentifier) + && Objects.equals(description, casted.description) + && Objects.equals(invitabilityLevel, casted.invitabilityLevel) + && Objects.equals(memberViewabilityLevel, casted.memberViewabilityLevel) + && Objects.equals(permissions, casted.permissions); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + type, + name, + groupType, + createdAt, + modifiedAt, + provenance, + externalSyncIdentifier, + description, + invitabilityLevel, + memberViewabilityLevel, + permissions); + } + + @Override + public String toString() { + return "GroupFull{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "groupType='" + + groupType + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + ", " + + "provenance='" + + provenance + + '\'' + + ", " + + "externalSyncIdentifier='" + + externalSyncIdentifier + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "invitabilityLevel='" + + invitabilityLevel + + '\'' + + ", " + + "memberViewabilityLevel='" + + memberViewabilityLevel + + '\'' + + ", " + + "permissions='" + + permissions + + '\'' + + "}"; + } + + public static class Builder extends Group.Builder { + + protected String provenance; + + protected String externalSyncIdentifier; + + protected String description; + + protected EnumWrapper invitabilityLevel; + + protected EnumWrapper memberViewabilityLevel; + + protected GroupFullPermissionsField permissions; + + public Builder(String id) { + super(id); + } + + public Builder provenance(String provenance) { + this.provenance = provenance; + return this; + } + + public Builder externalSyncIdentifier(String externalSyncIdentifier) { + this.externalSyncIdentifier = externalSyncIdentifier; + return this; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder invitabilityLevel(GroupFullInvitabilityLevelField invitabilityLevel) { + this.invitabilityLevel = new EnumWrapper(invitabilityLevel); + return this; + } + + public Builder invitabilityLevel( + EnumWrapper invitabilityLevel) { + this.invitabilityLevel = invitabilityLevel; + return this; + } + + public Builder memberViewabilityLevel( + GroupFullMemberViewabilityLevelField memberViewabilityLevel) { + this.memberViewabilityLevel = + new EnumWrapper(memberViewabilityLevel); + return this; + } + + public Builder memberViewabilityLevel( + EnumWrapper memberViewabilityLevel) { + this.memberViewabilityLevel = memberViewabilityLevel; + return this; + } + + public Builder permissions(GroupFullPermissionsField permissions) { + this.permissions = permissions; + return this; + } + + @Override + public Builder type(GroupBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder name(String name) { + this.name = name; + return this; + } + + @Override + public Builder groupType(GroupMiniGroupTypeField groupType) { + this.groupType = new EnumWrapper(groupType); + return this; + } + + @Override + public Builder groupType(EnumWrapper groupType) { + this.groupType = groupType; + return this; + } + + @Override + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + @Override + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + public GroupFull build() { + return new GroupFull(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFullInvitabilityLevelField.java b/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFullInvitabilityLevelField.java new file mode 100644 index 000000000..ed8a2b8f8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFullInvitabilityLevelField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.groupfull; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GroupFullInvitabilityLevelField implements Valuable { + ADMINS_ONLY("admins_only"), + ADMINS_AND_MEMBERS("admins_and_members"), + ALL_MANAGED_USERS("all_managed_users"); + + private final String value; + + GroupFullInvitabilityLevelField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GroupFullInvitabilityLevelFieldDeserializer + extends JsonDeserializer> { + + public GroupFullInvitabilityLevelFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GroupFullInvitabilityLevelField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GroupFullInvitabilityLevelFieldSerializer + extends JsonSerializer> { + + public GroupFullInvitabilityLevelFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFullMemberViewabilityLevelField.java b/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFullMemberViewabilityLevelField.java new file mode 100644 index 000000000..961eac018 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFullMemberViewabilityLevelField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.groupfull; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GroupFullMemberViewabilityLevelField implements Valuable { + ADMINS_ONLY("admins_only"), + ADMINS_AND_MEMBERS("admins_and_members"), + ALL_MANAGED_USERS("all_managed_users"); + + private final String value; + + GroupFullMemberViewabilityLevelField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GroupFullMemberViewabilityLevelFieldDeserializer + extends JsonDeserializer> { + + public GroupFullMemberViewabilityLevelFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GroupFullMemberViewabilityLevelField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GroupFullMemberViewabilityLevelFieldSerializer + extends JsonSerializer> { + + public GroupFullMemberViewabilityLevelFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFullPermissionsField.java b/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFullPermissionsField.java new file mode 100644 index 000000000..fb3d5d91f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFullPermissionsField.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.schemas.groupfull; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class GroupFullPermissionsField extends SerializableObject { + + @JsonProperty("can_invite_as_collaborator") + protected Boolean canInviteAsCollaborator; + + public GroupFullPermissionsField() { + super(); + } + + protected GroupFullPermissionsField(Builder builder) { + super(); + this.canInviteAsCollaborator = builder.canInviteAsCollaborator; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getCanInviteAsCollaborator() { + return canInviteAsCollaborator; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GroupFullPermissionsField casted = (GroupFullPermissionsField) o; + return Objects.equals(canInviteAsCollaborator, casted.canInviteAsCollaborator); + } + + @Override + public int hashCode() { + return Objects.hash(canInviteAsCollaborator); + } + + @Override + public String toString() { + return "GroupFullPermissionsField{" + + "canInviteAsCollaborator='" + + canInviteAsCollaborator + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean canInviteAsCollaborator; + + public Builder canInviteAsCollaborator(Boolean canInviteAsCollaborator) { + this.canInviteAsCollaborator = canInviteAsCollaborator; + return this; + } + + public GroupFullPermissionsField build() { + return new GroupFullPermissionsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembership.java b/src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembership.java new file mode 100644 index 000000000..74af30bb1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembership.java @@ -0,0 +1,208 @@ +package com.box.sdkgen.schemas.groupmembership; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.groupmini.GroupMini; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class GroupMembership extends SerializableObject { + + protected String id; + + @JsonDeserialize(using = GroupMembershipTypeField.GroupMembershipTypeFieldDeserializer.class) + @JsonSerialize(using = GroupMembershipTypeField.GroupMembershipTypeFieldSerializer.class) + protected EnumWrapper type; + + protected UserMini user; + + protected GroupMini group; + + @JsonDeserialize(using = GroupMembershipRoleField.GroupMembershipRoleFieldDeserializer.class) + @JsonSerialize(using = GroupMembershipRoleField.GroupMembershipRoleFieldSerializer.class) + protected EnumWrapper role; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date modifiedAt; + + public GroupMembership() { + super(); + } + + protected GroupMembership(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.user = builder.user; + this.group = builder.group; + this.role = builder.role; + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public UserMini getUser() { + return user; + } + + public GroupMini getGroup() { + return group; + } + + public EnumWrapper getRole() { + return role; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GroupMembership casted = (GroupMembership) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(user, casted.user) + && Objects.equals(group, casted.group) + && Objects.equals(role, casted.role) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, user, group, role, createdAt, modifiedAt); + } + + @Override + public String toString() { + return "GroupMembership{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "user='" + + user + + '\'' + + ", " + + "group='" + + group + + '\'' + + ", " + + "role='" + + role + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected UserMini user; + + protected GroupMini group; + + protected EnumWrapper role; + + protected Date createdAt; + + protected Date modifiedAt; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(GroupMembershipTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder user(UserMini user) { + this.user = user; + return this; + } + + public Builder group(GroupMini group) { + this.group = group; + return this; + } + + public Builder role(GroupMembershipRoleField role) { + this.role = new EnumWrapper(role); + return this; + } + + public Builder role(EnumWrapper role) { + this.role = role; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + public GroupMembership build() { + return new GroupMembership(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembershipRoleField.java b/src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembershipRoleField.java new file mode 100644 index 000000000..26894d0bf --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembershipRoleField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.groupmembership; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GroupMembershipRoleField implements Valuable { + MEMBER("member"), + ADMIN("admin"); + + private final String value; + + GroupMembershipRoleField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GroupMembershipRoleFieldDeserializer + extends JsonDeserializer> { + + public GroupMembershipRoleFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GroupMembershipRoleField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GroupMembershipRoleFieldSerializer + extends JsonSerializer> { + + public GroupMembershipRoleFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembershipTypeField.java b/src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembershipTypeField.java new file mode 100644 index 000000000..da07fd1f1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembershipTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.groupmembership; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GroupMembershipTypeField implements Valuable { + GROUP_MEMBERSHIP("group_membership"); + + private final String value; + + GroupMembershipTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GroupMembershipTypeFieldDeserializer + extends JsonDeserializer> { + + public GroupMembershipTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GroupMembershipTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GroupMembershipTypeFieldSerializer + extends JsonSerializer> { + + public GroupMembershipTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/groupmemberships/GroupMemberships.java b/src/main/java/com/box/sdkgen/schemas/groupmemberships/GroupMemberships.java new file mode 100644 index 000000000..4341be8fd --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/groupmemberships/GroupMemberships.java @@ -0,0 +1,146 @@ +package com.box.sdkgen.schemas.groupmemberships; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.groupmembership.GroupMembership; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class GroupMemberships extends SerializableObject { + + @JsonProperty("total_count") + protected Long totalCount; + + protected Long limit; + + protected Long offset; + + protected List order; + + protected List entries; + + public GroupMemberships() { + super(); + } + + protected GroupMemberships(Builder builder) { + super(); + this.totalCount = builder.totalCount; + this.limit = builder.limit; + this.offset = builder.offset; + this.order = builder.order; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getTotalCount() { + return totalCount; + } + + public Long getLimit() { + return limit; + } + + public Long getOffset() { + return offset; + } + + public List getOrder() { + return order; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GroupMemberships casted = (GroupMemberships) o; + return Objects.equals(totalCount, casted.totalCount) + && Objects.equals(limit, casted.limit) + && Objects.equals(offset, casted.offset) + && Objects.equals(order, casted.order) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, limit, offset, order, entries); + } + + @Override + public String toString() { + return "GroupMemberships{" + + "totalCount='" + + totalCount + + '\'' + + ", " + + "limit='" + + limit + + '\'' + + ", " + + "offset='" + + offset + + '\'' + + ", " + + "order='" + + order + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long totalCount; + + protected Long limit; + + protected Long offset; + + protected List order; + + protected List entries; + + public Builder totalCount(Long totalCount) { + this.totalCount = totalCount; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public Builder order(List order) { + this.order = order; + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public GroupMemberships build() { + return new GroupMemberships(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/groupmemberships/GroupMembershipsOrderDirectionField.java b/src/main/java/com/box/sdkgen/schemas/groupmemberships/GroupMembershipsOrderDirectionField.java new file mode 100644 index 000000000..e4c4ca18d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/groupmemberships/GroupMembershipsOrderDirectionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.groupmemberships; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GroupMembershipsOrderDirectionField implements Valuable { + ASC("ASC"), + DESC("DESC"); + + private final String value; + + GroupMembershipsOrderDirectionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GroupMembershipsOrderDirectionFieldDeserializer + extends JsonDeserializer> { + + public GroupMembershipsOrderDirectionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GroupMembershipsOrderDirectionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GroupMembershipsOrderDirectionFieldSerializer + extends JsonSerializer> { + + public GroupMembershipsOrderDirectionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/groupmemberships/GroupMembershipsOrderField.java b/src/main/java/com/box/sdkgen/schemas/groupmemberships/GroupMembershipsOrderField.java new file mode 100644 index 000000000..5bc23c3e2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/groupmemberships/GroupMembershipsOrderField.java @@ -0,0 +1,98 @@ +package com.box.sdkgen.schemas.groupmemberships; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class GroupMembershipsOrderField extends SerializableObject { + + protected String by; + + @JsonDeserialize( + using = + GroupMembershipsOrderDirectionField.GroupMembershipsOrderDirectionFieldDeserializer.class) + @JsonSerialize( + using = + GroupMembershipsOrderDirectionField.GroupMembershipsOrderDirectionFieldSerializer.class) + protected EnumWrapper direction; + + public GroupMembershipsOrderField() { + super(); + } + + protected GroupMembershipsOrderField(Builder builder) { + super(); + this.by = builder.by; + this.direction = builder.direction; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getBy() { + return by; + } + + public EnumWrapper getDirection() { + return direction; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GroupMembershipsOrderField casted = (GroupMembershipsOrderField) o; + return Objects.equals(by, casted.by) && Objects.equals(direction, casted.direction); + } + + @Override + public int hashCode() { + return Objects.hash(by, direction); + } + + @Override + public String toString() { + return "GroupMembershipsOrderField{" + + "by='" + + by + + '\'' + + ", " + + "direction='" + + direction + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String by; + + protected EnumWrapper direction; + + public Builder by(String by) { + this.by = by; + return this; + } + + public Builder direction(GroupMembershipsOrderDirectionField direction) { + this.direction = new EnumWrapper(direction); + return this; + } + + public Builder direction(EnumWrapper direction) { + this.direction = direction; + return this; + } + + public GroupMembershipsOrderField build() { + return new GroupMembershipsOrderField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/groupmini/GroupMini.java b/src/main/java/com/box/sdkgen/schemas/groupmini/GroupMini.java new file mode 100644 index 000000000..cffbf61a3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/groupmini/GroupMini.java @@ -0,0 +1,123 @@ +package com.box.sdkgen.schemas.groupmini; + +import com.box.sdkgen.schemas.groupbase.GroupBase; +import com.box.sdkgen.schemas.groupbase.GroupBaseTypeField; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class GroupMini extends GroupBase { + + protected String name; + + @JsonDeserialize(using = GroupMiniGroupTypeField.GroupMiniGroupTypeFieldDeserializer.class) + @JsonSerialize(using = GroupMiniGroupTypeField.GroupMiniGroupTypeFieldSerializer.class) + @JsonProperty("group_type") + protected EnumWrapper groupType; + + public GroupMini(@JsonProperty("id") String id) { + super(id); + } + + protected GroupMini(Builder builder) { + super(builder); + this.name = builder.name; + this.groupType = builder.groupType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public EnumWrapper getGroupType() { + return groupType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GroupMini casted = (GroupMini) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name) + && Objects.equals(groupType, casted.groupType); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name, groupType); + } + + @Override + public String toString() { + return "GroupMini{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "groupType='" + + groupType + + '\'' + + "}"; + } + + public static class Builder extends GroupBase.Builder { + + protected String name; + + protected EnumWrapper groupType; + + public Builder(String id) { + super(id); + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder groupType(GroupMiniGroupTypeField groupType) { + this.groupType = new EnumWrapper(groupType); + return this; + } + + public Builder groupType(EnumWrapper groupType) { + this.groupType = groupType; + return this; + } + + @Override + public Builder type(GroupBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public GroupMini build() { + return new GroupMini(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/groupmini/GroupMiniGroupTypeField.java b/src/main/java/com/box/sdkgen/schemas/groupmini/GroupMiniGroupTypeField.java new file mode 100644 index 000000000..a57e1fb96 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/groupmini/GroupMiniGroupTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.groupmini; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GroupMiniGroupTypeField implements Valuable { + MANAGED_GROUP("managed_group"), + ALL_USERS_GROUP("all_users_group"); + + private final String value; + + GroupMiniGroupTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GroupMiniGroupTypeFieldDeserializer + extends JsonDeserializer> { + + public GroupMiniGroupTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GroupMiniGroupTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GroupMiniGroupTypeFieldSerializer + extends JsonSerializer> { + + public GroupMiniGroupTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/groupminiorusercollaborations/GroupMiniOrUserCollaborations.java b/src/main/java/com/box/sdkgen/schemas/groupminiorusercollaborations/GroupMiniOrUserCollaborations.java new file mode 100644 index 000000000..f2d87d7be --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/groupminiorusercollaborations/GroupMiniOrUserCollaborations.java @@ -0,0 +1,95 @@ +package com.box.sdkgen.schemas.groupminiorusercollaborations; + +import com.box.sdkgen.internal.OneOfTwo; +import com.box.sdkgen.schemas.groupmini.GroupMini; +import com.box.sdkgen.schemas.usercollaborations.UserCollaborations; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize( + using = GroupMiniOrUserCollaborations.GroupMiniOrUserCollaborationsDeserializer.class) +@JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) +public class GroupMiniOrUserCollaborations extends OneOfTwo { + + protected final String name; + + protected final String id; + + protected final String type; + + public GroupMiniOrUserCollaborations(GroupMini groupMini) { + super(groupMini, null); + this.name = groupMini.getName(); + this.id = groupMini.getId(); + this.type = EnumWrapper.convertToString(groupMini.getType()); + } + + public GroupMiniOrUserCollaborations(UserCollaborations userCollaborations) { + super(null, userCollaborations); + this.name = userCollaborations.getName(); + this.id = userCollaborations.getId(); + this.type = EnumWrapper.convertToString(userCollaborations.getType()); + } + + public boolean isGroupMini() { + return value0 != null; + } + + public GroupMini getGroupMini() { + return value0; + } + + public boolean isUserCollaborations() { + return value1 != null; + } + + public UserCollaborations getUserCollaborations() { + return value1; + } + + public String getName() { + return name; + } + + public String getId() { + return id; + } + + public String getType() { + return type; + } + + static class GroupMiniOrUserCollaborationsDeserializer + extends JsonDeserializer { + + public GroupMiniOrUserCollaborationsDeserializer() { + super(); + } + + @Override + public GroupMiniOrUserCollaborations deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "group": + return new GroupMiniOrUserCollaborations( + JsonManager.deserialize(node, GroupMini.class)); + case "user": + return new GroupMiniOrUserCollaborations( + JsonManager.deserialize(node, UserCollaborations.class)); + } + } + throw new JsonMappingException(jp, "Unable to deserialize GroupMiniOrUserCollaborations"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/groups/Groups.java b/src/main/java/com/box/sdkgen/schemas/groups/Groups.java new file mode 100644 index 000000000..2a440d016 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/groups/Groups.java @@ -0,0 +1,146 @@ +package com.box.sdkgen.schemas.groups; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.groupfull.GroupFull; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Groups extends SerializableObject { + + @JsonProperty("total_count") + protected Long totalCount; + + protected Long limit; + + protected Long offset; + + protected List order; + + protected List entries; + + public Groups() { + super(); + } + + protected Groups(Builder builder) { + super(); + this.totalCount = builder.totalCount; + this.limit = builder.limit; + this.offset = builder.offset; + this.order = builder.order; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getTotalCount() { + return totalCount; + } + + public Long getLimit() { + return limit; + } + + public Long getOffset() { + return offset; + } + + public List getOrder() { + return order; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Groups casted = (Groups) o; + return Objects.equals(totalCount, casted.totalCount) + && Objects.equals(limit, casted.limit) + && Objects.equals(offset, casted.offset) + && Objects.equals(order, casted.order) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, limit, offset, order, entries); + } + + @Override + public String toString() { + return "Groups{" + + "totalCount='" + + totalCount + + '\'' + + ", " + + "limit='" + + limit + + '\'' + + ", " + + "offset='" + + offset + + '\'' + + ", " + + "order='" + + order + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long totalCount; + + protected Long limit; + + protected Long offset; + + protected List order; + + protected List entries; + + public Builder totalCount(Long totalCount) { + this.totalCount = totalCount; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public Builder order(List order) { + this.order = order; + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public Groups build() { + return new Groups(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/groups/GroupsOrderDirectionField.java b/src/main/java/com/box/sdkgen/schemas/groups/GroupsOrderDirectionField.java new file mode 100644 index 000000000..535b1d430 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/groups/GroupsOrderDirectionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.groups; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GroupsOrderDirectionField implements Valuable { + ASC("ASC"), + DESC("DESC"); + + private final String value; + + GroupsOrderDirectionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GroupsOrderDirectionFieldDeserializer + extends JsonDeserializer> { + + public GroupsOrderDirectionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GroupsOrderDirectionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GroupsOrderDirectionFieldSerializer + extends JsonSerializer> { + + public GroupsOrderDirectionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/groups/GroupsOrderField.java b/src/main/java/com/box/sdkgen/schemas/groups/GroupsOrderField.java new file mode 100644 index 000000000..ab064920f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/groups/GroupsOrderField.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.schemas.groups; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class GroupsOrderField extends SerializableObject { + + protected String by; + + @JsonDeserialize(using = GroupsOrderDirectionField.GroupsOrderDirectionFieldDeserializer.class) + @JsonSerialize(using = GroupsOrderDirectionField.GroupsOrderDirectionFieldSerializer.class) + protected EnumWrapper direction; + + public GroupsOrderField() { + super(); + } + + protected GroupsOrderField(Builder builder) { + super(); + this.by = builder.by; + this.direction = builder.direction; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getBy() { + return by; + } + + public EnumWrapper getDirection() { + return direction; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GroupsOrderField casted = (GroupsOrderField) o; + return Objects.equals(by, casted.by) && Objects.equals(direction, casted.direction); + } + + @Override + public int hashCode() { + return Objects.hash(by, direction); + } + + @Override + public String toString() { + return "GroupsOrderField{" + "by='" + by + '\'' + ", " + "direction='" + direction + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String by; + + protected EnumWrapper direction; + + public Builder by(String by) { + this.by = by; + return this; + } + + public Builder direction(GroupsOrderDirectionField direction) { + this.direction = new EnumWrapper(direction); + return this; + } + + public Builder direction(EnumWrapper direction) { + this.direction = direction; + return this; + } + + public GroupsOrderField build() { + return new GroupsOrderField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMapping.java b/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMapping.java new file mode 100644 index 000000000..0deef7253 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMapping.java @@ -0,0 +1,304 @@ +package com.box.sdkgen.schemas.integrationmapping; + +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.integrationmappingbase.IntegrationMappingBase; +import com.box.sdkgen.schemas.integrationmappingbase.IntegrationMappingBaseTypeField; +import com.box.sdkgen.schemas.integrationmappingpartneritemslack.IntegrationMappingPartnerItemSlack; +import com.box.sdkgen.schemas.integrationmappingpartneritemslackunion.IntegrationMappingPartnerItemSlackUnion; +import com.box.sdkgen.schemas.integrationmappingslackoptions.IntegrationMappingSlackOptions; +import com.box.sdkgen.schemas.userintegrationmappings.UserIntegrationMappings; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class IntegrationMapping extends IntegrationMappingBase { + + @JsonDeserialize( + using = + IntegrationMappingIntegrationTypeField.IntegrationMappingIntegrationTypeFieldDeserializer + .class) + @JsonSerialize( + using = + IntegrationMappingIntegrationTypeField.IntegrationMappingIntegrationTypeFieldSerializer + .class) + @JsonProperty("integration_type") + protected EnumWrapper integrationType; + + @JsonProperty("is_manually_created") + protected Boolean isManuallyCreated; + + protected IntegrationMappingSlackOptions options; + + @JsonProperty("created_by") + protected UserIntegrationMappings createdBy; + + @JsonProperty("modified_by") + protected UserIntegrationMappings modifiedBy; + + @JsonProperty("partner_item") + protected final IntegrationMappingPartnerItemSlackUnion partnerItem; + + @JsonProperty("box_item") + protected final FolderMini boxItem; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date modifiedAt; + + public IntegrationMapping( + String id, IntegrationMappingPartnerItemSlack partnerItem, FolderMini boxItem) { + super(id); + this.partnerItem = new IntegrationMappingPartnerItemSlackUnion(partnerItem); + this.boxItem = boxItem; + } + + public IntegrationMapping( + @JsonProperty("id") String id, + @JsonProperty("partner_item") IntegrationMappingPartnerItemSlackUnion partnerItem, + @JsonProperty("box_item") FolderMini boxItem) { + super(id); + this.partnerItem = partnerItem; + this.boxItem = boxItem; + } + + protected IntegrationMapping(Builder builder) { + super(builder); + this.integrationType = builder.integrationType; + this.isManuallyCreated = builder.isManuallyCreated; + this.options = builder.options; + this.createdBy = builder.createdBy; + this.modifiedBy = builder.modifiedBy; + this.partnerItem = builder.partnerItem; + this.boxItem = builder.boxItem; + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getIntegrationType() { + return integrationType; + } + + public Boolean getIsManuallyCreated() { + return isManuallyCreated; + } + + public IntegrationMappingSlackOptions getOptions() { + return options; + } + + public UserIntegrationMappings getCreatedBy() { + return createdBy; + } + + public UserIntegrationMappings getModifiedBy() { + return modifiedBy; + } + + public IntegrationMappingPartnerItemSlackUnion getPartnerItem() { + return partnerItem; + } + + public FolderMini getBoxItem() { + return boxItem; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IntegrationMapping casted = (IntegrationMapping) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(integrationType, casted.integrationType) + && Objects.equals(isManuallyCreated, casted.isManuallyCreated) + && Objects.equals(options, casted.options) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(modifiedBy, casted.modifiedBy) + && Objects.equals(partnerItem, casted.partnerItem) + && Objects.equals(boxItem, casted.boxItem) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + type, + integrationType, + isManuallyCreated, + options, + createdBy, + modifiedBy, + partnerItem, + boxItem, + createdAt, + modifiedAt); + } + + @Override + public String toString() { + return "IntegrationMapping{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "integrationType='" + + integrationType + + '\'' + + ", " + + "isManuallyCreated='" + + isManuallyCreated + + '\'' + + ", " + + "options='" + + options + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "modifiedBy='" + + modifiedBy + + '\'' + + ", " + + "partnerItem='" + + partnerItem + + '\'' + + ", " + + "boxItem='" + + boxItem + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + "}"; + } + + public static class Builder extends IntegrationMappingBase.Builder { + + protected EnumWrapper integrationType; + + protected Boolean isManuallyCreated; + + protected IntegrationMappingSlackOptions options; + + protected UserIntegrationMappings createdBy; + + protected UserIntegrationMappings modifiedBy; + + protected final IntegrationMappingPartnerItemSlackUnion partnerItem; + + protected final FolderMini boxItem; + + protected Date createdAt; + + protected Date modifiedAt; + + public Builder(String id, IntegrationMappingPartnerItemSlack partnerItem, FolderMini boxItem) { + super(id); + this.partnerItem = new IntegrationMappingPartnerItemSlackUnion(partnerItem); + this.boxItem = boxItem; + } + + public Builder( + String id, IntegrationMappingPartnerItemSlackUnion partnerItem, FolderMini boxItem) { + super(id); + this.partnerItem = partnerItem; + this.boxItem = boxItem; + } + + public Builder integrationType(IntegrationMappingIntegrationTypeField integrationType) { + this.integrationType = + new EnumWrapper(integrationType); + return this; + } + + public Builder integrationType( + EnumWrapper integrationType) { + this.integrationType = integrationType; + return this; + } + + public Builder isManuallyCreated(Boolean isManuallyCreated) { + this.isManuallyCreated = isManuallyCreated; + return this; + } + + public Builder options(IntegrationMappingSlackOptions options) { + this.options = options; + return this; + } + + public Builder createdBy(UserIntegrationMappings createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder modifiedBy(UserIntegrationMappings modifiedBy) { + this.modifiedBy = modifiedBy; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + @Override + public Builder type(IntegrationMappingBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public IntegrationMapping build() { + return new IntegrationMapping(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMappingIntegrationTypeField.java b/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMappingIntegrationTypeField.java new file mode 100644 index 000000000..b43c13aa6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMappingIntegrationTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.integrationmapping; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum IntegrationMappingIntegrationTypeField implements Valuable { + SLACK("slack"); + + private final String value; + + IntegrationMappingIntegrationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class IntegrationMappingIntegrationTypeFieldDeserializer + extends JsonDeserializer> { + + public IntegrationMappingIntegrationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(IntegrationMappingIntegrationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class IntegrationMappingIntegrationTypeFieldSerializer + extends JsonSerializer> { + + public IntegrationMappingIntegrationTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingbase/IntegrationMappingBase.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingbase/IntegrationMappingBase.java new file mode 100644 index 000000000..cdb9be98f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingbase/IntegrationMappingBase.java @@ -0,0 +1,96 @@ +package com.box.sdkgen.schemas.integrationmappingbase; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class IntegrationMappingBase extends SerializableObject { + + protected final String id; + + @JsonDeserialize( + using = IntegrationMappingBaseTypeField.IntegrationMappingBaseTypeFieldDeserializer.class) + @JsonSerialize( + using = IntegrationMappingBaseTypeField.IntegrationMappingBaseTypeFieldSerializer.class) + protected EnumWrapper type; + + public IntegrationMappingBase(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + IntegrationMappingBaseTypeField.INTEGRATION_MAPPING); + } + + protected IntegrationMappingBase(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IntegrationMappingBase casted = (IntegrationMappingBase) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "IntegrationMappingBase{" + "id='" + id + '\'' + ", " + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + IntegrationMappingBaseTypeField.INTEGRATION_MAPPING); + } + + public Builder type(IntegrationMappingBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public IntegrationMappingBase build() { + return new IntegrationMappingBase(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingbase/IntegrationMappingBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingbase/IntegrationMappingBaseTypeField.java new file mode 100644 index 000000000..77834633b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingbase/IntegrationMappingBaseTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.integrationmappingbase; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum IntegrationMappingBaseTypeField implements Valuable { + INTEGRATION_MAPPING("integration_mapping"); + + private final String value; + + IntegrationMappingBaseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class IntegrationMappingBaseTypeFieldDeserializer + extends JsonDeserializer> { + + public IntegrationMappingBaseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(IntegrationMappingBaseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class IntegrationMappingBaseTypeFieldSerializer + extends JsonSerializer> { + + public IntegrationMappingBaseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingboxitemslack/IntegrationMappingBoxItemSlack.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingboxitemslack/IntegrationMappingBoxItemSlack.java new file mode 100644 index 000000000..bc827931c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingboxitemslack/IntegrationMappingBoxItemSlack.java @@ -0,0 +1,108 @@ +package com.box.sdkgen.schemas.integrationmappingboxitemslack; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class IntegrationMappingBoxItemSlack extends SerializableObject { + + @JsonDeserialize( + using = + IntegrationMappingBoxItemSlackTypeField + .IntegrationMappingBoxItemSlackTypeFieldDeserializer.class) + @JsonSerialize( + using = + IntegrationMappingBoxItemSlackTypeField.IntegrationMappingBoxItemSlackTypeFieldSerializer + .class) + protected EnumWrapper type; + + protected final String id; + + public IntegrationMappingBoxItemSlack(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + IntegrationMappingBoxItemSlackTypeField.FOLDER); + } + + protected IntegrationMappingBoxItemSlack(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IntegrationMappingBoxItemSlack casted = (IntegrationMappingBoxItemSlack) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "IntegrationMappingBoxItemSlack{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + IntegrationMappingBoxItemSlackTypeField.FOLDER); + } + + public Builder type(IntegrationMappingBoxItemSlackTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public IntegrationMappingBoxItemSlack build() { + return new IntegrationMappingBoxItemSlack(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingboxitemslack/IntegrationMappingBoxItemSlackTypeField.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingboxitemslack/IntegrationMappingBoxItemSlackTypeField.java new file mode 100644 index 000000000..805090e70 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingboxitemslack/IntegrationMappingBoxItemSlackTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.integrationmappingboxitemslack; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum IntegrationMappingBoxItemSlackTypeField implements Valuable { + FOLDER("folder"); + + private final String value; + + IntegrationMappingBoxItemSlackTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class IntegrationMappingBoxItemSlackTypeFieldDeserializer + extends JsonDeserializer> { + + public IntegrationMappingBoxItemSlackTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(IntegrationMappingBoxItemSlackTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class IntegrationMappingBoxItemSlackTypeFieldSerializer + extends JsonSerializer> { + + public IntegrationMappingBoxItemSlackTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslack/IntegrationMappingPartnerItemSlack.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslack/IntegrationMappingPartnerItemSlack.java new file mode 100644 index 000000000..f69dc5d25 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslack/IntegrationMappingPartnerItemSlack.java @@ -0,0 +1,154 @@ +package com.box.sdkgen.schemas.integrationmappingpartneritemslack; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class IntegrationMappingPartnerItemSlack extends SerializableObject { + + @JsonDeserialize( + using = + IntegrationMappingPartnerItemSlackTypeField + .IntegrationMappingPartnerItemSlackTypeFieldDeserializer.class) + @JsonSerialize( + using = + IntegrationMappingPartnerItemSlackTypeField + .IntegrationMappingPartnerItemSlackTypeFieldSerializer.class) + protected EnumWrapper type; + + protected final String id; + + @JsonProperty("slack_workspace_id") + @Nullable + protected String slackWorkspaceId; + + @JsonProperty("slack_org_id") + @Nullable + protected String slackOrgId; + + public IntegrationMappingPartnerItemSlack(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + IntegrationMappingPartnerItemSlackTypeField.CHANNEL); + } + + protected IntegrationMappingPartnerItemSlack(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + this.slackWorkspaceId = builder.slackWorkspaceId; + this.slackOrgId = builder.slackOrgId; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + public String getSlackWorkspaceId() { + return slackWorkspaceId; + } + + public String getSlackOrgId() { + return slackOrgId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IntegrationMappingPartnerItemSlack casted = (IntegrationMappingPartnerItemSlack) o; + return Objects.equals(type, casted.type) + && Objects.equals(id, casted.id) + && Objects.equals(slackWorkspaceId, casted.slackWorkspaceId) + && Objects.equals(slackOrgId, casted.slackOrgId); + } + + @Override + public int hashCode() { + return Objects.hash(type, id, slackWorkspaceId, slackOrgId); + } + + @Override + public String toString() { + return "IntegrationMappingPartnerItemSlack{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + ", " + + "slackWorkspaceId='" + + slackWorkspaceId + + '\'' + + ", " + + "slackOrgId='" + + slackOrgId + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + protected String slackWorkspaceId; + + protected String slackOrgId; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + IntegrationMappingPartnerItemSlackTypeField.CHANNEL); + } + + public Builder type(IntegrationMappingPartnerItemSlackTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder slackWorkspaceId(String slackWorkspaceId) { + this.slackWorkspaceId = slackWorkspaceId; + this.markNullableFieldAsSet("slack_workspace_id"); + return this; + } + + public Builder slackOrgId(String slackOrgId) { + this.slackOrgId = slackOrgId; + this.markNullableFieldAsSet("slack_org_id"); + return this; + } + + public IntegrationMappingPartnerItemSlack build() { + return new IntegrationMappingPartnerItemSlack(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslack/IntegrationMappingPartnerItemSlackTypeField.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslack/IntegrationMappingPartnerItemSlackTypeField.java new file mode 100644 index 000000000..70d7b9159 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslack/IntegrationMappingPartnerItemSlackTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.integrationmappingpartneritemslack; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum IntegrationMappingPartnerItemSlackTypeField implements Valuable { + CHANNEL("channel"); + + private final String value; + + IntegrationMappingPartnerItemSlackTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class IntegrationMappingPartnerItemSlackTypeFieldDeserializer + extends JsonDeserializer> { + + public IntegrationMappingPartnerItemSlackTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(IntegrationMappingPartnerItemSlackTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class IntegrationMappingPartnerItemSlackTypeFieldSerializer + extends JsonSerializer> { + + public IntegrationMappingPartnerItemSlackTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslackunion/IntegrationMappingPartnerItemSlackUnion.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslackunion/IntegrationMappingPartnerItemSlackUnion.java new file mode 100644 index 000000000..f8f3329dc --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslackunion/IntegrationMappingPartnerItemSlackUnion.java @@ -0,0 +1,88 @@ +package com.box.sdkgen.schemas.integrationmappingpartneritemslackunion; + +import com.box.sdkgen.internal.OneOfOne; +import com.box.sdkgen.schemas.integrationmappingpartneritemslack.IntegrationMappingPartnerItemSlack; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize( + using = + IntegrationMappingPartnerItemSlackUnion.IntegrationMappingPartnerItemSlackUnionDeserializer + .class) +@JsonSerialize(using = OneOfOne.OneOfOneSerializer.class) +public class IntegrationMappingPartnerItemSlackUnion + extends OneOfOne { + + protected final String type; + + protected final String id; + + protected final String slackWorkspaceId; + + protected final String slackOrgId; + + public IntegrationMappingPartnerItemSlackUnion( + IntegrationMappingPartnerItemSlack integrationMappingPartnerItemSlack) { + super(integrationMappingPartnerItemSlack); + this.type = EnumWrapper.convertToString(integrationMappingPartnerItemSlack.getType()); + this.id = integrationMappingPartnerItemSlack.getId(); + this.slackWorkspaceId = integrationMappingPartnerItemSlack.getSlackWorkspaceId(); + this.slackOrgId = integrationMappingPartnerItemSlack.getSlackOrgId(); + } + + public boolean isIntegrationMappingPartnerItemSlack() { + return value0 != null; + } + + public IntegrationMappingPartnerItemSlack getIntegrationMappingPartnerItemSlack() { + return value0; + } + + public String getType() { + return type; + } + + public String getId() { + return id; + } + + public String getSlackWorkspaceId() { + return slackWorkspaceId; + } + + public String getSlackOrgId() { + return slackOrgId; + } + + static class IntegrationMappingPartnerItemSlackUnionDeserializer + extends JsonDeserializer { + + public IntegrationMappingPartnerItemSlackUnionDeserializer() { + super(); + } + + @Override + public IntegrationMappingPartnerItemSlackUnion deserialize( + JsonParser jp, DeserializationContext ctxt) throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "channel": + return new IntegrationMappingPartnerItemSlackUnion( + JsonManager.deserialize(node, IntegrationMappingPartnerItemSlack.class)); + } + } + throw new JsonMappingException( + jp, "Unable to deserialize IntegrationMappingPartnerItemSlackUnion"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteams/IntegrationMappingPartnerItemTeams.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteams/IntegrationMappingPartnerItemTeams.java new file mode 100644 index 000000000..7885213ef --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteams/IntegrationMappingPartnerItemTeams.java @@ -0,0 +1,94 @@ +package com.box.sdkgen.schemas.integrationmappingpartneritemteams; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class IntegrationMappingPartnerItemTeams extends SerializableObject { + + @JsonDeserialize( + using = + IntegrationMappingPartnerItemTeamsTypeField + .IntegrationMappingPartnerItemTeamsTypeFieldDeserializer.class) + @JsonSerialize( + using = + IntegrationMappingPartnerItemTeamsTypeField + .IntegrationMappingPartnerItemTeamsTypeFieldSerializer.class) + protected final EnumWrapper type; + + protected final String id; + + @JsonProperty("tenant_id") + protected final String tenantId; + + public IntegrationMappingPartnerItemTeams( + IntegrationMappingPartnerItemTeamsTypeField type, String id, String tenantId) { + super(); + this.type = new EnumWrapper(type); + this.id = id; + this.tenantId = tenantId; + } + + public IntegrationMappingPartnerItemTeams( + @JsonProperty("type") EnumWrapper type, + @JsonProperty("id") String id, + @JsonProperty("tenant_id") String tenantId) { + super(); + this.type = type; + this.id = id; + this.tenantId = tenantId; + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + public String getTenantId() { + return tenantId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IntegrationMappingPartnerItemTeams casted = (IntegrationMappingPartnerItemTeams) o; + return Objects.equals(type, casted.type) + && Objects.equals(id, casted.id) + && Objects.equals(tenantId, casted.tenantId); + } + + @Override + public int hashCode() { + return Objects.hash(type, id, tenantId); + } + + @Override + public String toString() { + return "IntegrationMappingPartnerItemTeams{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + ", " + + "tenantId='" + + tenantId + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteams/IntegrationMappingPartnerItemTeamsTypeField.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteams/IntegrationMappingPartnerItemTeamsTypeField.java new file mode 100644 index 000000000..fec163e71 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteams/IntegrationMappingPartnerItemTeamsTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.integrationmappingpartneritemteams; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum IntegrationMappingPartnerItemTeamsTypeField implements Valuable { + CHANNEL("channel"), + TEAM("team"); + + private final String value; + + IntegrationMappingPartnerItemTeamsTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class IntegrationMappingPartnerItemTeamsTypeFieldDeserializer + extends JsonDeserializer> { + + public IntegrationMappingPartnerItemTeamsTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(IntegrationMappingPartnerItemTeamsTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class IntegrationMappingPartnerItemTeamsTypeFieldSerializer + extends JsonSerializer> { + + public IntegrationMappingPartnerItemTeamsTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteamscreaterequest/IntegrationMappingPartnerItemTeamsCreateRequest.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteamscreaterequest/IntegrationMappingPartnerItemTeamsCreateRequest.java new file mode 100644 index 000000000..c5383e3a7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteamscreaterequest/IntegrationMappingPartnerItemTeamsCreateRequest.java @@ -0,0 +1,114 @@ +package com.box.sdkgen.schemas.integrationmappingpartneritemteamscreaterequest; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class IntegrationMappingPartnerItemTeamsCreateRequest extends SerializableObject { + + @JsonDeserialize( + using = + IntegrationMappingPartnerItemTeamsCreateRequestTypeField + .IntegrationMappingPartnerItemTeamsCreateRequestTypeFieldDeserializer.class) + @JsonSerialize( + using = + IntegrationMappingPartnerItemTeamsCreateRequestTypeField + .IntegrationMappingPartnerItemTeamsCreateRequestTypeFieldSerializer.class) + protected final EnumWrapper type; + + protected final String id; + + @JsonProperty("tenant_id") + protected final String tenantId; + + @JsonProperty("team_id") + protected final String teamId; + + public IntegrationMappingPartnerItemTeamsCreateRequest( + IntegrationMappingPartnerItemTeamsCreateRequestTypeField type, + String id, + String tenantId, + String teamId) { + super(); + this.type = new EnumWrapper(type); + this.id = id; + this.tenantId = tenantId; + this.teamId = teamId; + } + + public IntegrationMappingPartnerItemTeamsCreateRequest( + @JsonProperty("type") + EnumWrapper type, + @JsonProperty("id") String id, + @JsonProperty("tenant_id") String tenantId, + @JsonProperty("team_id") String teamId) { + super(); + this.type = type; + this.id = id; + this.tenantId = tenantId; + this.teamId = teamId; + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + public String getTenantId() { + return tenantId; + } + + public String getTeamId() { + return teamId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IntegrationMappingPartnerItemTeamsCreateRequest casted = + (IntegrationMappingPartnerItemTeamsCreateRequest) o; + return Objects.equals(type, casted.type) + && Objects.equals(id, casted.id) + && Objects.equals(tenantId, casted.tenantId) + && Objects.equals(teamId, casted.teamId); + } + + @Override + public int hashCode() { + return Objects.hash(type, id, tenantId, teamId); + } + + @Override + public String toString() { + return "IntegrationMappingPartnerItemTeamsCreateRequest{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + ", " + + "tenantId='" + + tenantId + + '\'' + + ", " + + "teamId='" + + teamId + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteamscreaterequest/IntegrationMappingPartnerItemTeamsCreateRequestTypeField.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteamscreaterequest/IntegrationMappingPartnerItemTeamsCreateRequestTypeField.java new file mode 100644 index 000000000..66ffb2ac2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteamscreaterequest/IntegrationMappingPartnerItemTeamsCreateRequestTypeField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.schemas.integrationmappingpartneritemteamscreaterequest; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum IntegrationMappingPartnerItemTeamsCreateRequestTypeField implements Valuable { + CHANNEL("channel"), + TEAM("team"); + + private final String value; + + IntegrationMappingPartnerItemTeamsCreateRequestTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class IntegrationMappingPartnerItemTeamsCreateRequestTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public IntegrationMappingPartnerItemTeamsCreateRequestTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(IntegrationMappingPartnerItemTeamsCreateRequestTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class IntegrationMappingPartnerItemTeamsCreateRequestTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public IntegrationMappingPartnerItemTeamsCreateRequestTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteamsunion/IntegrationMappingPartnerItemTeamsUnion.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteamsunion/IntegrationMappingPartnerItemTeamsUnion.java new file mode 100644 index 000000000..ce3a8399f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteamsunion/IntegrationMappingPartnerItemTeamsUnion.java @@ -0,0 +1,84 @@ +package com.box.sdkgen.schemas.integrationmappingpartneritemteamsunion; + +import com.box.sdkgen.internal.OneOfOne; +import com.box.sdkgen.schemas.integrationmappingpartneritemteams.IntegrationMappingPartnerItemTeams; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize( + using = + IntegrationMappingPartnerItemTeamsUnion.IntegrationMappingPartnerItemTeamsUnionDeserializer + .class) +@JsonSerialize(using = OneOfOne.OneOfOneSerializer.class) +public class IntegrationMappingPartnerItemTeamsUnion + extends OneOfOne { + + protected final String type; + + protected final String id; + + protected final String tenantId; + + public IntegrationMappingPartnerItemTeamsUnion( + IntegrationMappingPartnerItemTeams integrationMappingPartnerItemTeams) { + super(integrationMappingPartnerItemTeams); + this.type = EnumWrapper.convertToString(integrationMappingPartnerItemTeams.getType()); + this.id = integrationMappingPartnerItemTeams.getId(); + this.tenantId = integrationMappingPartnerItemTeams.getTenantId(); + } + + public boolean isIntegrationMappingPartnerItemTeams() { + return value0 != null; + } + + public IntegrationMappingPartnerItemTeams getIntegrationMappingPartnerItemTeams() { + return value0; + } + + public String getType() { + return type; + } + + public String getId() { + return id; + } + + public String getTenantId() { + return tenantId; + } + + static class IntegrationMappingPartnerItemTeamsUnionDeserializer + extends JsonDeserializer { + + public IntegrationMappingPartnerItemTeamsUnionDeserializer() { + super(); + } + + @Override + public IntegrationMappingPartnerItemTeamsUnion deserialize( + JsonParser jp, DeserializationContext ctxt) throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "channel": + return new IntegrationMappingPartnerItemTeamsUnion( + JsonManager.deserialize(node, IntegrationMappingPartnerItemTeams.class)); + case "team": + return new IntegrationMappingPartnerItemTeamsUnion( + JsonManager.deserialize(node, IntegrationMappingPartnerItemTeams.class)); + } + } + throw new JsonMappingException( + jp, "Unable to deserialize IntegrationMappingPartnerItemTeamsUnion"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappings/IntegrationMappings.java b/src/main/java/com/box/sdkgen/schemas/integrationmappings/IntegrationMappings.java new file mode 100644 index 000000000..cd1d386f5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappings/IntegrationMappings.java @@ -0,0 +1,111 @@ +package com.box.sdkgen.schemas.integrationmappings; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.integrationmapping.IntegrationMapping; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class IntegrationMappings extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + protected List entries; + + public IntegrationMappings() { + super(); + } + + protected IntegrationMappings(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IntegrationMappings casted = (IntegrationMappings) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, entries); + } + + @Override + public String toString() { + return "IntegrationMappings{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public IntegrationMappings build() { + return new IntegrationMappings(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingslackcreaterequest/IntegrationMappingSlackCreateRequest.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingslackcreaterequest/IntegrationMappingSlackCreateRequest.java new file mode 100644 index 000000000..a24c840b0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingslackcreaterequest/IntegrationMappingSlackCreateRequest.java @@ -0,0 +1,111 @@ +package com.box.sdkgen.schemas.integrationmappingslackcreaterequest; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.integrationmappingboxitemslack.IntegrationMappingBoxItemSlack; +import com.box.sdkgen.schemas.integrationmappingpartneritemslack.IntegrationMappingPartnerItemSlack; +import com.box.sdkgen.schemas.integrationmappingslackoptions.IntegrationMappingSlackOptions; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class IntegrationMappingSlackCreateRequest extends SerializableObject { + + @JsonProperty("partner_item") + protected final IntegrationMappingPartnerItemSlack partnerItem; + + @JsonProperty("box_item") + protected final IntegrationMappingBoxItemSlack boxItem; + + protected IntegrationMappingSlackOptions options; + + public IntegrationMappingSlackCreateRequest( + @JsonProperty("partner_item") IntegrationMappingPartnerItemSlack partnerItem, + @JsonProperty("box_item") IntegrationMappingBoxItemSlack boxItem) { + super(); + this.partnerItem = partnerItem; + this.boxItem = boxItem; + } + + protected IntegrationMappingSlackCreateRequest(Builder builder) { + super(); + this.partnerItem = builder.partnerItem; + this.boxItem = builder.boxItem; + this.options = builder.options; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public IntegrationMappingPartnerItemSlack getPartnerItem() { + return partnerItem; + } + + public IntegrationMappingBoxItemSlack getBoxItem() { + return boxItem; + } + + public IntegrationMappingSlackOptions getOptions() { + return options; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IntegrationMappingSlackCreateRequest casted = (IntegrationMappingSlackCreateRequest) o; + return Objects.equals(partnerItem, casted.partnerItem) + && Objects.equals(boxItem, casted.boxItem) + && Objects.equals(options, casted.options); + } + + @Override + public int hashCode() { + return Objects.hash(partnerItem, boxItem, options); + } + + @Override + public String toString() { + return "IntegrationMappingSlackCreateRequest{" + + "partnerItem='" + + partnerItem + + '\'' + + ", " + + "boxItem='" + + boxItem + + '\'' + + ", " + + "options='" + + options + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final IntegrationMappingPartnerItemSlack partnerItem; + + protected final IntegrationMappingBoxItemSlack boxItem; + + protected IntegrationMappingSlackOptions options; + + public Builder( + IntegrationMappingPartnerItemSlack partnerItem, IntegrationMappingBoxItemSlack boxItem) { + super(); + this.partnerItem = partnerItem; + this.boxItem = boxItem; + } + + public Builder options(IntegrationMappingSlackOptions options) { + this.options = options; + return this; + } + + public IntegrationMappingSlackCreateRequest build() { + return new IntegrationMappingSlackCreateRequest(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingslackoptions/IntegrationMappingSlackOptions.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingslackoptions/IntegrationMappingSlackOptions.java new file mode 100644 index 000000000..a29fa556e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingslackoptions/IntegrationMappingSlackOptions.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.schemas.integrationmappingslackoptions; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class IntegrationMappingSlackOptions extends SerializableObject { + + @JsonProperty("is_access_management_disabled") + protected Boolean isAccessManagementDisabled; + + public IntegrationMappingSlackOptions() { + super(); + } + + protected IntegrationMappingSlackOptions(Builder builder) { + super(); + this.isAccessManagementDisabled = builder.isAccessManagementDisabled; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getIsAccessManagementDisabled() { + return isAccessManagementDisabled; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IntegrationMappingSlackOptions casted = (IntegrationMappingSlackOptions) o; + return Objects.equals(isAccessManagementDisabled, casted.isAccessManagementDisabled); + } + + @Override + public int hashCode() { + return Objects.hash(isAccessManagementDisabled); + } + + @Override + public String toString() { + return "IntegrationMappingSlackOptions{" + + "isAccessManagementDisabled='" + + isAccessManagementDisabled + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean isAccessManagementDisabled; + + public Builder isAccessManagementDisabled(Boolean isAccessManagementDisabled) { + this.isAccessManagementDisabled = isAccessManagementDisabled; + return this; + } + + public IntegrationMappingSlackOptions build() { + return new IntegrationMappingSlackOptions(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingsteams/IntegrationMappingsTeams.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingsteams/IntegrationMappingsTeams.java new file mode 100644 index 000000000..5cdabfc2a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingsteams/IntegrationMappingsTeams.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.integrationmappingsteams; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.integrationmappingteams.IntegrationMappingTeams; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class IntegrationMappingsTeams extends SerializableObject { + + protected List entries; + + public IntegrationMappingsTeams() { + super(); + } + + protected IntegrationMappingsTeams(Builder builder) { + super(); + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IntegrationMappingsTeams casted = (IntegrationMappingsTeams) o; + return Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(entries); + } + + @Override + public String toString() { + return "IntegrationMappingsTeams{" + "entries='" + entries + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List entries; + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public IntegrationMappingsTeams build() { + return new IntegrationMappingsTeams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeams.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeams.java new file mode 100644 index 000000000..69bf701e0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeams.java @@ -0,0 +1,241 @@ +package com.box.sdkgen.schemas.integrationmappingteams; + +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.folderreference.FolderReference; +import com.box.sdkgen.schemas.integrationmappingbase.IntegrationMappingBase; +import com.box.sdkgen.schemas.integrationmappingbase.IntegrationMappingBaseTypeField; +import com.box.sdkgen.schemas.integrationmappingpartneritemteams.IntegrationMappingPartnerItemTeams; +import com.box.sdkgen.schemas.integrationmappingpartneritemteamsunion.IntegrationMappingPartnerItemTeamsUnion; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class IntegrationMappingTeams extends IntegrationMappingBase { + + @JsonDeserialize( + using = + IntegrationMappingTeamsIntegrationTypeField + .IntegrationMappingTeamsIntegrationTypeFieldDeserializer.class) + @JsonSerialize( + using = + IntegrationMappingTeamsIntegrationTypeField + .IntegrationMappingTeamsIntegrationTypeFieldSerializer.class) + @JsonProperty("integration_type") + protected EnumWrapper integrationType; + + @JsonProperty("is_overridden_by_manual_mapping") + protected Boolean isOverriddenByManualMapping; + + @JsonProperty("partner_item") + protected final IntegrationMappingPartnerItemTeamsUnion partnerItem; + + @JsonProperty("box_item") + protected final FolderReference boxItem; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date modifiedAt; + + public IntegrationMappingTeams( + String id, IntegrationMappingPartnerItemTeams partnerItem, FolderReference boxItem) { + super(id); + this.partnerItem = new IntegrationMappingPartnerItemTeamsUnion(partnerItem); + this.boxItem = boxItem; + } + + public IntegrationMappingTeams( + @JsonProperty("id") String id, + @JsonProperty("partner_item") IntegrationMappingPartnerItemTeamsUnion partnerItem, + @JsonProperty("box_item") FolderReference boxItem) { + super(id); + this.partnerItem = partnerItem; + this.boxItem = boxItem; + } + + protected IntegrationMappingTeams(Builder builder) { + super(builder); + this.integrationType = builder.integrationType; + this.isOverriddenByManualMapping = builder.isOverriddenByManualMapping; + this.partnerItem = builder.partnerItem; + this.boxItem = builder.boxItem; + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getIntegrationType() { + return integrationType; + } + + public Boolean getIsOverriddenByManualMapping() { + return isOverriddenByManualMapping; + } + + public IntegrationMappingPartnerItemTeamsUnion getPartnerItem() { + return partnerItem; + } + + public FolderReference getBoxItem() { + return boxItem; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IntegrationMappingTeams casted = (IntegrationMappingTeams) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(integrationType, casted.integrationType) + && Objects.equals(isOverriddenByManualMapping, casted.isOverriddenByManualMapping) + && Objects.equals(partnerItem, casted.partnerItem) + && Objects.equals(boxItem, casted.boxItem) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + type, + integrationType, + isOverriddenByManualMapping, + partnerItem, + boxItem, + createdAt, + modifiedAt); + } + + @Override + public String toString() { + return "IntegrationMappingTeams{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "integrationType='" + + integrationType + + '\'' + + ", " + + "isOverriddenByManualMapping='" + + isOverriddenByManualMapping + + '\'' + + ", " + + "partnerItem='" + + partnerItem + + '\'' + + ", " + + "boxItem='" + + boxItem + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + "}"; + } + + public static class Builder extends IntegrationMappingBase.Builder { + + protected EnumWrapper integrationType; + + protected Boolean isOverriddenByManualMapping; + + protected final IntegrationMappingPartnerItemTeamsUnion partnerItem; + + protected final FolderReference boxItem; + + protected Date createdAt; + + protected Date modifiedAt; + + public Builder( + String id, IntegrationMappingPartnerItemTeams partnerItem, FolderReference boxItem) { + super(id); + this.partnerItem = new IntegrationMappingPartnerItemTeamsUnion(partnerItem); + this.boxItem = boxItem; + } + + public Builder( + String id, IntegrationMappingPartnerItemTeamsUnion partnerItem, FolderReference boxItem) { + super(id); + this.partnerItem = partnerItem; + this.boxItem = boxItem; + } + + public Builder integrationType(IntegrationMappingTeamsIntegrationTypeField integrationType) { + this.integrationType = + new EnumWrapper(integrationType); + return this; + } + + public Builder integrationType( + EnumWrapper integrationType) { + this.integrationType = integrationType; + return this; + } + + public Builder isOverriddenByManualMapping(Boolean isOverriddenByManualMapping) { + this.isOverriddenByManualMapping = isOverriddenByManualMapping; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + @Override + public Builder type(IntegrationMappingBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public IntegrationMappingTeams build() { + return new IntegrationMappingTeams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeamsIntegrationTypeField.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeamsIntegrationTypeField.java new file mode 100644 index 000000000..862b27789 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeamsIntegrationTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.integrationmappingteams; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum IntegrationMappingTeamsIntegrationTypeField implements Valuable { + TEAMS("teams"); + + private final String value; + + IntegrationMappingTeamsIntegrationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class IntegrationMappingTeamsIntegrationTypeFieldDeserializer + extends JsonDeserializer> { + + public IntegrationMappingTeamsIntegrationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(IntegrationMappingTeamsIntegrationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class IntegrationMappingTeamsIntegrationTypeFieldSerializer + extends JsonSerializer> { + + public IntegrationMappingTeamsIntegrationTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingteamscreaterequest/IntegrationMappingTeamsCreateRequest.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingteamscreaterequest/IntegrationMappingTeamsCreateRequest.java new file mode 100644 index 000000000..1dedb8d84 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingteamscreaterequest/IntegrationMappingTeamsCreateRequest.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.schemas.integrationmappingteamscreaterequest; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.folderreference.FolderReference; +import com.box.sdkgen.schemas.integrationmappingpartneritemteamscreaterequest.IntegrationMappingPartnerItemTeamsCreateRequest; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class IntegrationMappingTeamsCreateRequest extends SerializableObject { + + @JsonProperty("partner_item") + protected final IntegrationMappingPartnerItemTeamsCreateRequest partnerItem; + + @JsonProperty("box_item") + protected final FolderReference boxItem; + + public IntegrationMappingTeamsCreateRequest( + @JsonProperty("partner_item") IntegrationMappingPartnerItemTeamsCreateRequest partnerItem, + @JsonProperty("box_item") FolderReference boxItem) { + super(); + this.partnerItem = partnerItem; + this.boxItem = boxItem; + } + + public IntegrationMappingPartnerItemTeamsCreateRequest getPartnerItem() { + return partnerItem; + } + + public FolderReference getBoxItem() { + return boxItem; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IntegrationMappingTeamsCreateRequest casted = (IntegrationMappingTeamsCreateRequest) o; + return Objects.equals(partnerItem, casted.partnerItem) + && Objects.equals(boxItem, casted.boxItem); + } + + @Override + public int hashCode() { + return Objects.hash(partnerItem, boxItem); + } + + @Override + public String toString() { + return "IntegrationMappingTeamsCreateRequest{" + + "partnerItem='" + + partnerItem + + '\'' + + ", " + + "boxItem='" + + boxItem + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/invite/Invite.java b/src/main/java/com/box/sdkgen/schemas/invite/Invite.java new file mode 100644 index 000000000..2f56a051c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/invite/Invite.java @@ -0,0 +1,226 @@ +package com.box.sdkgen.schemas.invite; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Invite extends SerializableObject { + + protected final String id; + + @JsonDeserialize(using = InviteTypeField.InviteTypeFieldDeserializer.class) + @JsonSerialize(using = InviteTypeField.InviteTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("invited_to") + protected InviteInvitedToField invitedTo; + + @JsonProperty("actionable_by") + protected UserMini actionableBy; + + @JsonProperty("invited_by") + protected UserMini invitedBy; + + protected String status; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date modifiedAt; + + public Invite(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = new EnumWrapper(InviteTypeField.INVITE); + } + + protected Invite(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.invitedTo = builder.invitedTo; + this.actionableBy = builder.actionableBy; + this.invitedBy = builder.invitedBy; + this.status = builder.status; + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public InviteInvitedToField getInvitedTo() { + return invitedTo; + } + + public UserMini getActionableBy() { + return actionableBy; + } + + public UserMini getInvitedBy() { + return invitedBy; + } + + public String getStatus() { + return status; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Invite casted = (Invite) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(invitedTo, casted.invitedTo) + && Objects.equals(actionableBy, casted.actionableBy) + && Objects.equals(invitedBy, casted.invitedBy) + && Objects.equals(status, casted.status) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt); + } + + @Override + public int hashCode() { + return Objects.hash( + id, type, invitedTo, actionableBy, invitedBy, status, createdAt, modifiedAt); + } + + @Override + public String toString() { + return "Invite{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "invitedTo='" + + invitedTo + + '\'' + + ", " + + "actionableBy='" + + actionableBy + + '\'' + + ", " + + "invitedBy='" + + invitedBy + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + protected InviteInvitedToField invitedTo; + + protected UserMini actionableBy; + + protected UserMini invitedBy; + + protected String status; + + protected Date createdAt; + + protected Date modifiedAt; + + public Builder(String id) { + super(); + this.id = id; + this.type = new EnumWrapper(InviteTypeField.INVITE); + } + + public Builder type(InviteTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder invitedTo(InviteInvitedToField invitedTo) { + this.invitedTo = invitedTo; + return this; + } + + public Builder actionableBy(UserMini actionableBy) { + this.actionableBy = actionableBy; + return this; + } + + public Builder invitedBy(UserMini invitedBy) { + this.invitedBy = invitedBy; + return this; + } + + public Builder status(String status) { + this.status = status; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + public Invite build() { + return new Invite(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/invite/InviteInvitedToField.java b/src/main/java/com/box/sdkgen/schemas/invite/InviteInvitedToField.java new file mode 100644 index 000000000..b269f209d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/invite/InviteInvitedToField.java @@ -0,0 +1,114 @@ +package com.box.sdkgen.schemas.invite; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class InviteInvitedToField extends SerializableObject { + + protected String id; + + @JsonDeserialize(using = InviteInvitedToTypeField.InviteInvitedToTypeFieldDeserializer.class) + @JsonSerialize(using = InviteInvitedToTypeField.InviteInvitedToTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String name; + + public InviteInvitedToField() { + super(); + } + + protected InviteInvitedToField(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.name = builder.name; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + InviteInvitedToField casted = (InviteInvitedToField) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name); + } + + @Override + public String toString() { + return "InviteInvitedToField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected String name; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(InviteInvitedToTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public InviteInvitedToField build() { + return new InviteInvitedToField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/invite/InviteInvitedToTypeField.java b/src/main/java/com/box/sdkgen/schemas/invite/InviteInvitedToTypeField.java new file mode 100644 index 000000000..f7ce981c6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/invite/InviteInvitedToTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.invite; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum InviteInvitedToTypeField implements Valuable { + ENTERPRISE("enterprise"); + + private final String value; + + InviteInvitedToTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class InviteInvitedToTypeFieldDeserializer + extends JsonDeserializer> { + + public InviteInvitedToTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(InviteInvitedToTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class InviteInvitedToTypeFieldSerializer + extends JsonSerializer> { + + public InviteInvitedToTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/invite/InviteTypeField.java b/src/main/java/com/box/sdkgen/schemas/invite/InviteTypeField.java new file mode 100644 index 000000000..aa13af594 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/invite/InviteTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.invite; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum InviteTypeField implements Valuable { + INVITE("invite"); + + private final String value; + + InviteTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class InviteTypeFieldDeserializer + extends JsonDeserializer> { + + public InviteTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(InviteTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class InviteTypeFieldSerializer + extends JsonSerializer> { + + public InviteTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/items/Items.java b/src/main/java/com/box/sdkgen/schemas/items/Items.java new file mode 100644 index 000000000..588cb2d9c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/items/Items.java @@ -0,0 +1,191 @@ +package com.box.sdkgen.schemas.items; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.filefullorfolderfullorweblink.FileFullOrFolderFullOrWebLink; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Items extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + @JsonProperty("total_count") + protected Long totalCount; + + protected Long offset; + + protected List order; + + protected List entries; + + public Items() { + super(); + } + + protected Items(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.totalCount = builder.totalCount; + this.offset = builder.offset; + this.order = builder.order; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public Long getTotalCount() { + return totalCount; + } + + public Long getOffset() { + return offset; + } + + public List getOrder() { + return order; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Items casted = (Items) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(totalCount, casted.totalCount) + && Objects.equals(offset, casted.offset) + && Objects.equals(order, casted.order) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, totalCount, offset, order, entries); + } + + @Override + public String toString() { + return "Items{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "totalCount='" + + totalCount + + '\'' + + ", " + + "offset='" + + offset + + '\'' + + ", " + + "order='" + + order + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected Long totalCount; + + protected Long offset; + + protected List order; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder totalCount(Long totalCount) { + this.totalCount = totalCount; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public Builder order(List order) { + this.order = order; + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public Items build() { + return new Items(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/items/ItemsOrderDirectionField.java b/src/main/java/com/box/sdkgen/schemas/items/ItemsOrderDirectionField.java new file mode 100644 index 000000000..87308a123 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/items/ItemsOrderDirectionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.items; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ItemsOrderDirectionField implements Valuable { + ASC("ASC"), + DESC("DESC"); + + private final String value; + + ItemsOrderDirectionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ItemsOrderDirectionFieldDeserializer + extends JsonDeserializer> { + + public ItemsOrderDirectionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ItemsOrderDirectionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ItemsOrderDirectionFieldSerializer + extends JsonSerializer> { + + public ItemsOrderDirectionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/items/ItemsOrderField.java b/src/main/java/com/box/sdkgen/schemas/items/ItemsOrderField.java new file mode 100644 index 000000000..8c70eabf4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/items/ItemsOrderField.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.schemas.items; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ItemsOrderField extends SerializableObject { + + protected String by; + + @JsonDeserialize(using = ItemsOrderDirectionField.ItemsOrderDirectionFieldDeserializer.class) + @JsonSerialize(using = ItemsOrderDirectionField.ItemsOrderDirectionFieldSerializer.class) + protected EnumWrapper direction; + + public ItemsOrderField() { + super(); + } + + protected ItemsOrderField(Builder builder) { + super(); + this.by = builder.by; + this.direction = builder.direction; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getBy() { + return by; + } + + public EnumWrapper getDirection() { + return direction; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ItemsOrderField casted = (ItemsOrderField) o; + return Objects.equals(by, casted.by) && Objects.equals(direction, casted.direction); + } + + @Override + public int hashCode() { + return Objects.hash(by, direction); + } + + @Override + public String toString() { + return "ItemsOrderField{" + "by='" + by + '\'' + ", " + "direction='" + direction + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String by; + + protected EnumWrapper direction; + + public Builder by(String by) { + this.by = by; + return this; + } + + public Builder direction(ItemsOrderDirectionField direction) { + this.direction = new EnumWrapper(direction); + return this; + } + + public Builder direction(EnumWrapper direction) { + this.direction = direction; + return this; + } + + public ItemsOrderField build() { + return new ItemsOrderField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginated.java b/src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginated.java new file mode 100644 index 000000000..9a8324eb7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginated.java @@ -0,0 +1,146 @@ +package com.box.sdkgen.schemas.itemsoffsetpaginated; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.filefullorfolderfullorweblink.FileFullOrFolderFullOrWebLink; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ItemsOffsetPaginated extends SerializableObject { + + @JsonProperty("total_count") + protected Long totalCount; + + protected Long limit; + + protected Long offset; + + protected List order; + + protected List entries; + + public ItemsOffsetPaginated() { + super(); + } + + protected ItemsOffsetPaginated(Builder builder) { + super(); + this.totalCount = builder.totalCount; + this.limit = builder.limit; + this.offset = builder.offset; + this.order = builder.order; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getTotalCount() { + return totalCount; + } + + public Long getLimit() { + return limit; + } + + public Long getOffset() { + return offset; + } + + public List getOrder() { + return order; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ItemsOffsetPaginated casted = (ItemsOffsetPaginated) o; + return Objects.equals(totalCount, casted.totalCount) + && Objects.equals(limit, casted.limit) + && Objects.equals(offset, casted.offset) + && Objects.equals(order, casted.order) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, limit, offset, order, entries); + } + + @Override + public String toString() { + return "ItemsOffsetPaginated{" + + "totalCount='" + + totalCount + + '\'' + + ", " + + "limit='" + + limit + + '\'' + + ", " + + "offset='" + + offset + + '\'' + + ", " + + "order='" + + order + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long totalCount; + + protected Long limit; + + protected Long offset; + + protected List order; + + protected List entries; + + public Builder totalCount(Long totalCount) { + this.totalCount = totalCount; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public Builder order(List order) { + this.order = order; + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public ItemsOffsetPaginated build() { + return new ItemsOffsetPaginated(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginatedOrderDirectionField.java b/src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginatedOrderDirectionField.java new file mode 100644 index 000000000..701426d2e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginatedOrderDirectionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.itemsoffsetpaginated; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ItemsOffsetPaginatedOrderDirectionField implements Valuable { + ASC("ASC"), + DESC("DESC"); + + private final String value; + + ItemsOffsetPaginatedOrderDirectionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ItemsOffsetPaginatedOrderDirectionFieldDeserializer + extends JsonDeserializer> { + + public ItemsOffsetPaginatedOrderDirectionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ItemsOffsetPaginatedOrderDirectionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ItemsOffsetPaginatedOrderDirectionFieldSerializer + extends JsonSerializer> { + + public ItemsOffsetPaginatedOrderDirectionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginatedOrderField.java b/src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginatedOrderField.java new file mode 100644 index 000000000..3c2df1b43 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginatedOrderField.java @@ -0,0 +1,100 @@ +package com.box.sdkgen.schemas.itemsoffsetpaginated; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ItemsOffsetPaginatedOrderField extends SerializableObject { + + protected String by; + + @JsonDeserialize( + using = + ItemsOffsetPaginatedOrderDirectionField + .ItemsOffsetPaginatedOrderDirectionFieldDeserializer.class) + @JsonSerialize( + using = + ItemsOffsetPaginatedOrderDirectionField.ItemsOffsetPaginatedOrderDirectionFieldSerializer + .class) + protected EnumWrapper direction; + + public ItemsOffsetPaginatedOrderField() { + super(); + } + + protected ItemsOffsetPaginatedOrderField(Builder builder) { + super(); + this.by = builder.by; + this.direction = builder.direction; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getBy() { + return by; + } + + public EnumWrapper getDirection() { + return direction; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ItemsOffsetPaginatedOrderField casted = (ItemsOffsetPaginatedOrderField) o; + return Objects.equals(by, casted.by) && Objects.equals(direction, casted.direction); + } + + @Override + public int hashCode() { + return Objects.hash(by, direction); + } + + @Override + public String toString() { + return "ItemsOffsetPaginatedOrderField{" + + "by='" + + by + + '\'' + + ", " + + "direction='" + + direction + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String by; + + protected EnumWrapper direction; + + public Builder by(String by) { + this.by = by; + return this; + } + + public Builder direction(ItemsOffsetPaginatedOrderDirectionField direction) { + this.direction = new EnumWrapper(direction); + return this; + } + + public Builder direction(EnumWrapper direction) { + this.direction = direction; + return this; + } + + public ItemsOffsetPaginatedOrderField build() { + return new ItemsOffsetPaginatedOrderField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCard.java b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCard.java new file mode 100644 index 000000000..65ee6b600 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCard.java @@ -0,0 +1,218 @@ +package com.box.sdkgen.schemas.keywordskillcard; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class KeywordSkillCard extends SerializableObject { + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonDeserialize(using = KeywordSkillCardTypeField.KeywordSkillCardTypeFieldDeserializer.class) + @JsonSerialize(using = KeywordSkillCardTypeField.KeywordSkillCardTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonDeserialize( + using = + KeywordSkillCardSkillCardTypeField.KeywordSkillCardSkillCardTypeFieldDeserializer.class) + @JsonSerialize( + using = KeywordSkillCardSkillCardTypeField.KeywordSkillCardSkillCardTypeFieldSerializer.class) + @JsonProperty("skill_card_type") + protected EnumWrapper skillCardType; + + @JsonProperty("skill_card_title") + protected KeywordSkillCardSkillCardTitleField skillCardTitle; + + protected final KeywordSkillCardSkillField skill; + + protected final KeywordSkillCardInvocationField invocation; + + protected final List entries; + + public KeywordSkillCard( + @JsonProperty("skill") KeywordSkillCardSkillField skill, + @JsonProperty("invocation") KeywordSkillCardInvocationField invocation, + @JsonProperty("entries") List entries) { + super(); + this.skill = skill; + this.invocation = invocation; + this.entries = entries; + this.type = new EnumWrapper(KeywordSkillCardTypeField.SKILL_CARD); + this.skillCardType = + new EnumWrapper( + KeywordSkillCardSkillCardTypeField.KEYWORD); + } + + protected KeywordSkillCard(Builder builder) { + super(); + this.createdAt = builder.createdAt; + this.type = builder.type; + this.skillCardType = builder.skillCardType; + this.skillCardTitle = builder.skillCardTitle; + this.skill = builder.skill; + this.invocation = builder.invocation; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Date getCreatedAt() { + return createdAt; + } + + public EnumWrapper getType() { + return type; + } + + public EnumWrapper getSkillCardType() { + return skillCardType; + } + + public KeywordSkillCardSkillCardTitleField getSkillCardTitle() { + return skillCardTitle; + } + + public KeywordSkillCardSkillField getSkill() { + return skill; + } + + public KeywordSkillCardInvocationField getInvocation() { + return invocation; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + KeywordSkillCard casted = (KeywordSkillCard) o; + return Objects.equals(createdAt, casted.createdAt) + && Objects.equals(type, casted.type) + && Objects.equals(skillCardType, casted.skillCardType) + && Objects.equals(skillCardTitle, casted.skillCardTitle) + && Objects.equals(skill, casted.skill) + && Objects.equals(invocation, casted.invocation) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(createdAt, type, skillCardType, skillCardTitle, skill, invocation, entries); + } + + @Override + public String toString() { + return "KeywordSkillCard{" + + "createdAt='" + + createdAt + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "skillCardType='" + + skillCardType + + '\'' + + ", " + + "skillCardTitle='" + + skillCardTitle + + '\'' + + ", " + + "skill='" + + skill + + '\'' + + ", " + + "invocation='" + + invocation + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Date createdAt; + + protected EnumWrapper type; + + protected EnumWrapper skillCardType; + + protected KeywordSkillCardSkillCardTitleField skillCardTitle; + + protected final KeywordSkillCardSkillField skill; + + protected final KeywordSkillCardInvocationField invocation; + + protected final List entries; + + public Builder( + KeywordSkillCardSkillField skill, + KeywordSkillCardInvocationField invocation, + List entries) { + super(); + this.skill = skill; + this.invocation = invocation; + this.entries = entries; + this.type = new EnumWrapper(KeywordSkillCardTypeField.SKILL_CARD); + this.skillCardType = + new EnumWrapper( + KeywordSkillCardSkillCardTypeField.KEYWORD); + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder type(KeywordSkillCardTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder skillCardType(KeywordSkillCardSkillCardTypeField skillCardType) { + this.skillCardType = new EnumWrapper(skillCardType); + return this; + } + + public Builder skillCardType(EnumWrapper skillCardType) { + this.skillCardType = skillCardType; + return this; + } + + public Builder skillCardTitle(KeywordSkillCardSkillCardTitleField skillCardTitle) { + this.skillCardTitle = skillCardTitle; + return this; + } + + public KeywordSkillCard build() { + return new KeywordSkillCard(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardEntriesField.java b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardEntriesField.java new file mode 100644 index 000000000..81155e1e8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardEntriesField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.keywordskillcard; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class KeywordSkillCardEntriesField extends SerializableObject { + + protected String text; + + public KeywordSkillCardEntriesField() { + super(); + } + + protected KeywordSkillCardEntriesField(Builder builder) { + super(); + this.text = builder.text; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getText() { + return text; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + KeywordSkillCardEntriesField casted = (KeywordSkillCardEntriesField) o; + return Objects.equals(text, casted.text); + } + + @Override + public int hashCode() { + return Objects.hash(text); + } + + @Override + public String toString() { + return "KeywordSkillCardEntriesField{" + "text='" + text + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String text; + + public Builder text(String text) { + this.text = text; + return this; + } + + public KeywordSkillCardEntriesField build() { + return new KeywordSkillCardEntriesField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardInvocationField.java b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardInvocationField.java new file mode 100644 index 000000000..c988b1655 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardInvocationField.java @@ -0,0 +1,106 @@ +package com.box.sdkgen.schemas.keywordskillcard; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class KeywordSkillCardInvocationField extends SerializableObject { + + @JsonDeserialize( + using = + KeywordSkillCardInvocationTypeField.KeywordSkillCardInvocationTypeFieldDeserializer.class) + @JsonSerialize( + using = + KeywordSkillCardInvocationTypeField.KeywordSkillCardInvocationTypeFieldSerializer.class) + protected EnumWrapper type; + + protected final String id; + + public KeywordSkillCardInvocationField(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + KeywordSkillCardInvocationTypeField.SKILL_INVOCATION); + } + + protected KeywordSkillCardInvocationField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + KeywordSkillCardInvocationField casted = (KeywordSkillCardInvocationField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "KeywordSkillCardInvocationField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + KeywordSkillCardInvocationTypeField.SKILL_INVOCATION); + } + + public Builder type(KeywordSkillCardInvocationTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public KeywordSkillCardInvocationField build() { + return new KeywordSkillCardInvocationField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardInvocationTypeField.java b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardInvocationTypeField.java new file mode 100644 index 000000000..fd9cd8efb --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardInvocationTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.keywordskillcard; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum KeywordSkillCardInvocationTypeField implements Valuable { + SKILL_INVOCATION("skill_invocation"); + + private final String value; + + KeywordSkillCardInvocationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class KeywordSkillCardInvocationTypeFieldDeserializer + extends JsonDeserializer> { + + public KeywordSkillCardInvocationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(KeywordSkillCardInvocationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class KeywordSkillCardInvocationTypeFieldSerializer + extends JsonSerializer> { + + public KeywordSkillCardInvocationTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillCardTitleField.java b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillCardTitleField.java new file mode 100644 index 000000000..a9d2ea33d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillCardTitleField.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.schemas.keywordskillcard; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class KeywordSkillCardSkillCardTitleField extends SerializableObject { + + protected String code; + + protected final String message; + + public KeywordSkillCardSkillCardTitleField(@JsonProperty("message") String message) { + super(); + this.message = message; + } + + protected KeywordSkillCardSkillCardTitleField(Builder builder) { + super(); + this.code = builder.code; + this.message = builder.message; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getCode() { + return code; + } + + public String getMessage() { + return message; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + KeywordSkillCardSkillCardTitleField casted = (KeywordSkillCardSkillCardTitleField) o; + return Objects.equals(code, casted.code) && Objects.equals(message, casted.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, message); + } + + @Override + public String toString() { + return "KeywordSkillCardSkillCardTitleField{" + + "code='" + + code + + '\'' + + ", " + + "message='" + + message + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String code; + + protected final String message; + + public Builder(String message) { + super(); + this.message = message; + } + + public Builder code(String code) { + this.code = code; + return this; + } + + public KeywordSkillCardSkillCardTitleField build() { + return new KeywordSkillCardSkillCardTitleField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillCardTypeField.java b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillCardTypeField.java new file mode 100644 index 000000000..f64d70d5e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillCardTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.keywordskillcard; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum KeywordSkillCardSkillCardTypeField implements Valuable { + KEYWORD("keyword"); + + private final String value; + + KeywordSkillCardSkillCardTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class KeywordSkillCardSkillCardTypeFieldDeserializer + extends JsonDeserializer> { + + public KeywordSkillCardSkillCardTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(KeywordSkillCardSkillCardTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class KeywordSkillCardSkillCardTypeFieldSerializer + extends JsonSerializer> { + + public KeywordSkillCardSkillCardTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillField.java b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillField.java new file mode 100644 index 000000000..1e9528a84 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillField.java @@ -0,0 +1,94 @@ +package com.box.sdkgen.schemas.keywordskillcard; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class KeywordSkillCardSkillField extends SerializableObject { + + @JsonDeserialize( + using = KeywordSkillCardSkillTypeField.KeywordSkillCardSkillTypeFieldDeserializer.class) + @JsonSerialize( + using = KeywordSkillCardSkillTypeField.KeywordSkillCardSkillTypeFieldSerializer.class) + protected EnumWrapper type; + + protected final String id; + + public KeywordSkillCardSkillField(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper(KeywordSkillCardSkillTypeField.SERVICE); + } + + protected KeywordSkillCardSkillField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + KeywordSkillCardSkillField casted = (KeywordSkillCardSkillField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "KeywordSkillCardSkillField{" + "type='" + type + '\'' + ", " + "id='" + id + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper(KeywordSkillCardSkillTypeField.SERVICE); + } + + public Builder type(KeywordSkillCardSkillTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public KeywordSkillCardSkillField build() { + return new KeywordSkillCardSkillField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillTypeField.java b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillTypeField.java new file mode 100644 index 000000000..6147b85d9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.keywordskillcard; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum KeywordSkillCardSkillTypeField implements Valuable { + SERVICE("service"); + + private final String value; + + KeywordSkillCardSkillTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class KeywordSkillCardSkillTypeFieldDeserializer + extends JsonDeserializer> { + + public KeywordSkillCardSkillTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(KeywordSkillCardSkillTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class KeywordSkillCardSkillTypeFieldSerializer + extends JsonSerializer> { + + public KeywordSkillCardSkillTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardTypeField.java b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardTypeField.java new file mode 100644 index 000000000..0b2215173 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.keywordskillcard; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum KeywordSkillCardTypeField implements Valuable { + SKILL_CARD("skill_card"); + + private final String value; + + KeywordSkillCardTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class KeywordSkillCardTypeFieldDeserializer + extends JsonDeserializer> { + + public KeywordSkillCardTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(KeywordSkillCardTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class KeywordSkillCardTypeFieldSerializer + extends JsonSerializer> { + + public KeywordSkillCardTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/keywordskillcardorstatusskillcardortimelineskillcardortranscriptskillcard/KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard.java b/src/main/java/com/box/sdkgen/schemas/keywordskillcardorstatusskillcardortimelineskillcardortranscriptskillcard/KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard.java new file mode 100644 index 000000000..eac0e96bb --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/keywordskillcardorstatusskillcardortimelineskillcardortranscriptskillcard/KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard.java @@ -0,0 +1,145 @@ +package com.box.sdkgen.schemas.keywordskillcardorstatusskillcardortimelineskillcardortranscriptskillcard; + +import com.box.sdkgen.internal.OneOfFour; +import com.box.sdkgen.schemas.keywordskillcard.KeywordSkillCard; +import com.box.sdkgen.schemas.statusskillcard.StatusSkillCard; +import com.box.sdkgen.schemas.timelineskillcard.TimelineSkillCard; +import com.box.sdkgen.schemas.transcriptskillcard.TranscriptSkillCard; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; +import java.util.Date; + +@JsonDeserialize( + using = + KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard + .KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCardDeserializer + .class) +@JsonSerialize(using = OneOfFour.OneOfFourSerializer.class) +public class KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard + extends OneOfFour { + + protected final Date createdAt; + + protected final String type; + + protected final String skillCardType; + + public KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard( + KeywordSkillCard keywordSkillCard) { + super(keywordSkillCard, null, null, null); + this.createdAt = keywordSkillCard.getCreatedAt(); + this.type = EnumWrapper.convertToString(keywordSkillCard.getType()); + this.skillCardType = EnumWrapper.convertToString(keywordSkillCard.getSkillCardType()); + } + + public KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard( + StatusSkillCard statusSkillCard) { + super(null, statusSkillCard, null, null); + this.createdAt = statusSkillCard.getCreatedAt(); + this.type = EnumWrapper.convertToString(statusSkillCard.getType()); + this.skillCardType = EnumWrapper.convertToString(statusSkillCard.getSkillCardType()); + } + + public KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard( + TimelineSkillCard timelineSkillCard) { + super(null, null, timelineSkillCard, null); + this.createdAt = timelineSkillCard.getCreatedAt(); + this.type = EnumWrapper.convertToString(timelineSkillCard.getType()); + this.skillCardType = EnumWrapper.convertToString(timelineSkillCard.getSkillCardType()); + } + + public KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard( + TranscriptSkillCard transcriptSkillCard) { + super(null, null, null, transcriptSkillCard); + this.createdAt = transcriptSkillCard.getCreatedAt(); + this.type = EnumWrapper.convertToString(transcriptSkillCard.getType()); + this.skillCardType = EnumWrapper.convertToString(transcriptSkillCard.getSkillCardType()); + } + + public boolean isKeywordSkillCard() { + return value0 != null; + } + + public KeywordSkillCard getKeywordSkillCard() { + return value0; + } + + public boolean isStatusSkillCard() { + return value1 != null; + } + + public StatusSkillCard getStatusSkillCard() { + return value1; + } + + public boolean isTimelineSkillCard() { + return value2 != null; + } + + public TimelineSkillCard getTimelineSkillCard() { + return value2; + } + + public boolean isTranscriptSkillCard() { + return value3 != null; + } + + public TranscriptSkillCard getTranscriptSkillCard() { + return value3; + } + + public Date getCreatedAt() { + return createdAt; + } + + public String getType() { + return type; + } + + public String getSkillCardType() { + return skillCardType; + } + + static class KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCardDeserializer + extends JsonDeserializer< + KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard> { + + public KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCardDeserializer() { + super(); + } + + @Override + public KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard deserialize( + JsonParser jp, DeserializationContext ctxt) throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("skill_card_type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "keyword": + return new KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard( + JsonManager.deserialize(node, KeywordSkillCard.class)); + case "status": + return new KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard( + JsonManager.deserialize(node, StatusSkillCard.class)); + case "timeline": + return new KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard( + JsonManager.deserialize(node, TimelineSkillCard.class)); + case "transcript": + return new KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard( + JsonManager.deserialize(node, TranscriptSkillCard.class)); + } + } + throw new JsonMappingException( + jp, + "Unable to deserialize KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicies/LegalHoldPolicies.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicies/LegalHoldPolicies.java new file mode 100644 index 000000000..939c1903f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicies/LegalHoldPolicies.java @@ -0,0 +1,133 @@ +package com.box.sdkgen.schemas.legalholdpolicies; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.legalholdpolicy.LegalHoldPolicy; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class LegalHoldPolicies extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + protected List entries; + + public LegalHoldPolicies() { + super(); + } + + protected LegalHoldPolicies(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LegalHoldPolicies casted = (LegalHoldPolicies) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "LegalHoldPolicies{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public LegalHoldPolicies build() { + return new LegalHoldPolicies(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicy.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicy.java new file mode 100644 index 000000000..7e5a9da48 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicy.java @@ -0,0 +1,328 @@ +package com.box.sdkgen.schemas.legalholdpolicy; + +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.legalholdpolicymini.LegalHoldPolicyMini; +import com.box.sdkgen.schemas.legalholdpolicymini.LegalHoldPolicyMiniTypeField; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class LegalHoldPolicy extends LegalHoldPolicyMini { + + @JsonProperty("policy_name") + protected String policyName; + + protected String description; + + @JsonDeserialize(using = LegalHoldPolicyStatusField.LegalHoldPolicyStatusFieldDeserializer.class) + @JsonSerialize(using = LegalHoldPolicyStatusField.LegalHoldPolicyStatusFieldSerializer.class) + protected EnumWrapper status; + + @JsonProperty("assignment_counts") + protected LegalHoldPolicyAssignmentCountsField assignmentCounts; + + @JsonProperty("created_by") + protected UserMini createdBy; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date modifiedAt; + + @JsonProperty("deleted_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date deletedAt; + + @JsonProperty("filter_started_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date filterStartedAt; + + @JsonProperty("filter_ended_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date filterEndedAt; + + @JsonProperty("release_notes") + protected String releaseNotes; + + public LegalHoldPolicy(@JsonProperty("id") String id) { + super(id); + } + + protected LegalHoldPolicy(Builder builder) { + super(builder); + this.policyName = builder.policyName; + this.description = builder.description; + this.status = builder.status; + this.assignmentCounts = builder.assignmentCounts; + this.createdBy = builder.createdBy; + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + this.deletedAt = builder.deletedAt; + this.filterStartedAt = builder.filterStartedAt; + this.filterEndedAt = builder.filterEndedAt; + this.releaseNotes = builder.releaseNotes; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getPolicyName() { + return policyName; + } + + public String getDescription() { + return description; + } + + public EnumWrapper getStatus() { + return status; + } + + public LegalHoldPolicyAssignmentCountsField getAssignmentCounts() { + return assignmentCounts; + } + + public UserMini getCreatedBy() { + return createdBy; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + public Date getDeletedAt() { + return deletedAt; + } + + public Date getFilterStartedAt() { + return filterStartedAt; + } + + public Date getFilterEndedAt() { + return filterEndedAt; + } + + public String getReleaseNotes() { + return releaseNotes; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LegalHoldPolicy casted = (LegalHoldPolicy) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(policyName, casted.policyName) + && Objects.equals(description, casted.description) + && Objects.equals(status, casted.status) + && Objects.equals(assignmentCounts, casted.assignmentCounts) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt) + && Objects.equals(deletedAt, casted.deletedAt) + && Objects.equals(filterStartedAt, casted.filterStartedAt) + && Objects.equals(filterEndedAt, casted.filterEndedAt) + && Objects.equals(releaseNotes, casted.releaseNotes); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + type, + policyName, + description, + status, + assignmentCounts, + createdBy, + createdAt, + modifiedAt, + deletedAt, + filterStartedAt, + filterEndedAt, + releaseNotes); + } + + @Override + public String toString() { + return "LegalHoldPolicy{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "policyName='" + + policyName + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "assignmentCounts='" + + assignmentCounts + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + ", " + + "deletedAt='" + + deletedAt + + '\'' + + ", " + + "filterStartedAt='" + + filterStartedAt + + '\'' + + ", " + + "filterEndedAt='" + + filterEndedAt + + '\'' + + ", " + + "releaseNotes='" + + releaseNotes + + '\'' + + "}"; + } + + public static class Builder extends LegalHoldPolicyMini.Builder { + + protected String policyName; + + protected String description; + + protected EnumWrapper status; + + protected LegalHoldPolicyAssignmentCountsField assignmentCounts; + + protected UserMini createdBy; + + protected Date createdAt; + + protected Date modifiedAt; + + protected Date deletedAt; + + protected Date filterStartedAt; + + protected Date filterEndedAt; + + protected String releaseNotes; + + public Builder(String id) { + super(id); + } + + public Builder policyName(String policyName) { + this.policyName = policyName; + return this; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder status(LegalHoldPolicyStatusField status) { + this.status = new EnumWrapper(status); + return this; + } + + public Builder status(EnumWrapper status) { + this.status = status; + return this; + } + + public Builder assignmentCounts(LegalHoldPolicyAssignmentCountsField assignmentCounts) { + this.assignmentCounts = assignmentCounts; + return this; + } + + public Builder createdBy(UserMini createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + public Builder deletedAt(Date deletedAt) { + this.deletedAt = deletedAt; + return this; + } + + public Builder filterStartedAt(Date filterStartedAt) { + this.filterStartedAt = filterStartedAt; + return this; + } + + public Builder filterEndedAt(Date filterEndedAt) { + this.filterEndedAt = filterEndedAt; + return this; + } + + public Builder releaseNotes(String releaseNotes) { + this.releaseNotes = releaseNotes; + return this; + } + + @Override + public Builder type(LegalHoldPolicyMiniTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public LegalHoldPolicy build() { + return new LegalHoldPolicy(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicyAssignmentCountsField.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicyAssignmentCountsField.java new file mode 100644 index 000000000..59a01c5c5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicyAssignmentCountsField.java @@ -0,0 +1,125 @@ +package com.box.sdkgen.schemas.legalholdpolicy; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class LegalHoldPolicyAssignmentCountsField extends SerializableObject { + + protected Long user; + + protected Long folder; + + protected Long file; + + @JsonProperty("file_version") + protected Long fileVersion; + + public LegalHoldPolicyAssignmentCountsField() { + super(); + } + + protected LegalHoldPolicyAssignmentCountsField(Builder builder) { + super(); + this.user = builder.user; + this.folder = builder.folder; + this.file = builder.file; + this.fileVersion = builder.fileVersion; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getUser() { + return user; + } + + public Long getFolder() { + return folder; + } + + public Long getFile() { + return file; + } + + public Long getFileVersion() { + return fileVersion; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LegalHoldPolicyAssignmentCountsField casted = (LegalHoldPolicyAssignmentCountsField) o; + return Objects.equals(user, casted.user) + && Objects.equals(folder, casted.folder) + && Objects.equals(file, casted.file) + && Objects.equals(fileVersion, casted.fileVersion); + } + + @Override + public int hashCode() { + return Objects.hash(user, folder, file, fileVersion); + } + + @Override + public String toString() { + return "LegalHoldPolicyAssignmentCountsField{" + + "user='" + + user + + '\'' + + ", " + + "folder='" + + folder + + '\'' + + ", " + + "file='" + + file + + '\'' + + ", " + + "fileVersion='" + + fileVersion + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long user; + + protected Long folder; + + protected Long file; + + protected Long fileVersion; + + public Builder user(Long user) { + this.user = user; + return this; + } + + public Builder folder(Long folder) { + this.folder = folder; + return this; + } + + public Builder file(Long file) { + this.file = file; + return this; + } + + public Builder fileVersion(Long fileVersion) { + this.fileVersion = fileVersion; + return this; + } + + public LegalHoldPolicyAssignmentCountsField build() { + return new LegalHoldPolicyAssignmentCountsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicyStatusField.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicyStatusField.java new file mode 100644 index 000000000..c368e702e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicyStatusField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.schemas.legalholdpolicy; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum LegalHoldPolicyStatusField implements Valuable { + ACTIVE("active"), + APPLYING("applying"), + RELEASING("releasing"), + RELEASED("released"); + + private final String value; + + LegalHoldPolicyStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class LegalHoldPolicyStatusFieldDeserializer + extends JsonDeserializer> { + + public LegalHoldPolicyStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(LegalHoldPolicyStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class LegalHoldPolicyStatusFieldSerializer + extends JsonSerializer> { + + public LegalHoldPolicyStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignment/LegalHoldPolicyAssignment.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignment/LegalHoldPolicyAssignment.java new file mode 100644 index 000000000..fd0f535b0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignment/LegalHoldPolicyAssignment.java @@ -0,0 +1,206 @@ +package com.box.sdkgen.schemas.legalholdpolicyassignment; + +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.file.File; +import com.box.sdkgen.schemas.fileorfolderorweblink.FileOrFolderOrWebLink; +import com.box.sdkgen.schemas.folder.Folder; +import com.box.sdkgen.schemas.legalholdpolicyassignmentbase.LegalHoldPolicyAssignmentBase; +import com.box.sdkgen.schemas.legalholdpolicyassignmentbase.LegalHoldPolicyAssignmentBaseTypeField; +import com.box.sdkgen.schemas.legalholdpolicymini.LegalHoldPolicyMini; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.schemas.weblink.WebLink; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class LegalHoldPolicyAssignment extends LegalHoldPolicyAssignmentBase { + + @JsonProperty("legal_hold_policy") + protected LegalHoldPolicyMini legalHoldPolicy; + + @JsonProperty("assigned_to") + protected FileOrFolderOrWebLink assignedTo; + + @JsonProperty("assigned_by") + protected UserMini assignedBy; + + @JsonProperty("assigned_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date assignedAt; + + @JsonProperty("deleted_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date deletedAt; + + public LegalHoldPolicyAssignment() { + super(); + } + + protected LegalHoldPolicyAssignment(Builder builder) { + super(builder); + this.legalHoldPolicy = builder.legalHoldPolicy; + this.assignedTo = builder.assignedTo; + this.assignedBy = builder.assignedBy; + this.assignedAt = builder.assignedAt; + this.deletedAt = builder.deletedAt; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public LegalHoldPolicyMini getLegalHoldPolicy() { + return legalHoldPolicy; + } + + public FileOrFolderOrWebLink getAssignedTo() { + return assignedTo; + } + + public UserMini getAssignedBy() { + return assignedBy; + } + + public Date getAssignedAt() { + return assignedAt; + } + + public Date getDeletedAt() { + return deletedAt; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LegalHoldPolicyAssignment casted = (LegalHoldPolicyAssignment) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(legalHoldPolicy, casted.legalHoldPolicy) + && Objects.equals(assignedTo, casted.assignedTo) + && Objects.equals(assignedBy, casted.assignedBy) + && Objects.equals(assignedAt, casted.assignedAt) + && Objects.equals(deletedAt, casted.deletedAt); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, legalHoldPolicy, assignedTo, assignedBy, assignedAt, deletedAt); + } + + @Override + public String toString() { + return "LegalHoldPolicyAssignment{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "legalHoldPolicy='" + + legalHoldPolicy + + '\'' + + ", " + + "assignedTo='" + + assignedTo + + '\'' + + ", " + + "assignedBy='" + + assignedBy + + '\'' + + ", " + + "assignedAt='" + + assignedAt + + '\'' + + ", " + + "deletedAt='" + + deletedAt + + '\'' + + "}"; + } + + public static class Builder extends LegalHoldPolicyAssignmentBase.Builder { + + protected LegalHoldPolicyMini legalHoldPolicy; + + protected FileOrFolderOrWebLink assignedTo; + + protected UserMini assignedBy; + + protected Date assignedAt; + + protected Date deletedAt; + + public Builder legalHoldPolicy(LegalHoldPolicyMini legalHoldPolicy) { + this.legalHoldPolicy = legalHoldPolicy; + return this; + } + + public Builder assignedTo(File assignedTo) { + this.assignedTo = new FileOrFolderOrWebLink(assignedTo); + return this; + } + + public Builder assignedTo(Folder assignedTo) { + this.assignedTo = new FileOrFolderOrWebLink(assignedTo); + return this; + } + + public Builder assignedTo(WebLink assignedTo) { + this.assignedTo = new FileOrFolderOrWebLink(assignedTo); + return this; + } + + public Builder assignedTo(FileOrFolderOrWebLink assignedTo) { + this.assignedTo = assignedTo; + return this; + } + + public Builder assignedBy(UserMini assignedBy) { + this.assignedBy = assignedBy; + return this; + } + + public Builder assignedAt(Date assignedAt) { + this.assignedAt = assignedAt; + return this; + } + + public Builder deletedAt(Date deletedAt) { + this.deletedAt = deletedAt; + return this; + } + + @Override + public Builder id(String id) { + this.id = id; + return this; + } + + @Override + public Builder type(LegalHoldPolicyAssignmentBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public LegalHoldPolicyAssignment build() { + return new LegalHoldPolicyAssignment(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignmentbase/LegalHoldPolicyAssignmentBase.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignmentbase/LegalHoldPolicyAssignmentBase.java new file mode 100644 index 000000000..082e8c4be --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignmentbase/LegalHoldPolicyAssignmentBase.java @@ -0,0 +1,100 @@ +package com.box.sdkgen.schemas.legalholdpolicyassignmentbase; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class LegalHoldPolicyAssignmentBase extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = + LegalHoldPolicyAssignmentBaseTypeField.LegalHoldPolicyAssignmentBaseTypeFieldDeserializer + .class) + @JsonSerialize( + using = + LegalHoldPolicyAssignmentBaseTypeField.LegalHoldPolicyAssignmentBaseTypeFieldSerializer + .class) + protected EnumWrapper type; + + public LegalHoldPolicyAssignmentBase() { + super(); + } + + protected LegalHoldPolicyAssignmentBase(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LegalHoldPolicyAssignmentBase casted = (LegalHoldPolicyAssignmentBase) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "LegalHoldPolicyAssignmentBase{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(LegalHoldPolicyAssignmentBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public LegalHoldPolicyAssignmentBase build() { + return new LegalHoldPolicyAssignmentBase(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignmentbase/LegalHoldPolicyAssignmentBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignmentbase/LegalHoldPolicyAssignmentBaseTypeField.java new file mode 100644 index 000000000..82a4d9204 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignmentbase/LegalHoldPolicyAssignmentBaseTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.legalholdpolicyassignmentbase; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum LegalHoldPolicyAssignmentBaseTypeField implements Valuable { + LEGAL_HOLD_POLICY_ASSIGNMENT("legal_hold_policy_assignment"); + + private final String value; + + LegalHoldPolicyAssignmentBaseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class LegalHoldPolicyAssignmentBaseTypeFieldDeserializer + extends JsonDeserializer> { + + public LegalHoldPolicyAssignmentBaseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(LegalHoldPolicyAssignmentBaseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class LegalHoldPolicyAssignmentBaseTypeFieldSerializer + extends JsonSerializer> { + + public LegalHoldPolicyAssignmentBaseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignments/LegalHoldPolicyAssignments.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignments/LegalHoldPolicyAssignments.java new file mode 100644 index 000000000..5ae76ad11 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignments/LegalHoldPolicyAssignments.java @@ -0,0 +1,133 @@ +package com.box.sdkgen.schemas.legalholdpolicyassignments; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.legalholdpolicyassignment.LegalHoldPolicyAssignment; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class LegalHoldPolicyAssignments extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + protected List entries; + + public LegalHoldPolicyAssignments() { + super(); + } + + protected LegalHoldPolicyAssignments(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LegalHoldPolicyAssignments casted = (LegalHoldPolicyAssignments) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "LegalHoldPolicyAssignments{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public LegalHoldPolicyAssignments build() { + return new LegalHoldPolicyAssignments(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicymini/LegalHoldPolicyMini.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicymini/LegalHoldPolicyMini.java new file mode 100644 index 000000000..2cf38c61a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicymini/LegalHoldPolicyMini.java @@ -0,0 +1,95 @@ +package com.box.sdkgen.schemas.legalholdpolicymini; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class LegalHoldPolicyMini extends SerializableObject { + + protected final String id; + + @JsonDeserialize( + using = LegalHoldPolicyMiniTypeField.LegalHoldPolicyMiniTypeFieldDeserializer.class) + @JsonSerialize(using = LegalHoldPolicyMiniTypeField.LegalHoldPolicyMiniTypeFieldSerializer.class) + protected EnumWrapper type; + + public LegalHoldPolicyMini(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + LegalHoldPolicyMiniTypeField.LEGAL_HOLD_POLICY); + } + + protected LegalHoldPolicyMini(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LegalHoldPolicyMini casted = (LegalHoldPolicyMini) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "LegalHoldPolicyMini{" + "id='" + id + '\'' + ", " + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + LegalHoldPolicyMiniTypeField.LEGAL_HOLD_POLICY); + } + + public Builder type(LegalHoldPolicyMiniTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public LegalHoldPolicyMini build() { + return new LegalHoldPolicyMini(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicymini/LegalHoldPolicyMiniTypeField.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicymini/LegalHoldPolicyMiniTypeField.java new file mode 100644 index 000000000..37c6b202e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicymini/LegalHoldPolicyMiniTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.legalholdpolicymini; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum LegalHoldPolicyMiniTypeField implements Valuable { + LEGAL_HOLD_POLICY("legal_hold_policy"); + + private final String value; + + LegalHoldPolicyMiniTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class LegalHoldPolicyMiniTypeFieldDeserializer + extends JsonDeserializer> { + + public LegalHoldPolicyMiniTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(LegalHoldPolicyMiniTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class LegalHoldPolicyMiniTypeFieldSerializer + extends JsonSerializer> { + + public LegalHoldPolicyMiniTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadata/Metadata.java b/src/main/java/com/box/sdkgen/schemas/metadata/Metadata.java new file mode 100644 index 000000000..bf21ad499 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadata/Metadata.java @@ -0,0 +1,90 @@ +package com.box.sdkgen.schemas.metadata; + +import com.box.sdkgen.schemas.metadatabase.MetadataBase; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Metadata extends MetadataBase { + + public Metadata() { + super(); + } + + protected Metadata(Builder builder) { + super(builder); + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Metadata casted = (Metadata) o; + return Objects.equals(parent, casted.parent) + && Objects.equals(template, casted.template) + && Objects.equals(scope, casted.scope) + && Objects.equals(version, casted.version); + } + + @Override + public int hashCode() { + return Objects.hash(parent, template, scope, version); + } + + @Override + public String toString() { + return "Metadata{" + + "parent='" + + parent + + '\'' + + ", " + + "template='" + + template + + '\'' + + ", " + + "scope='" + + scope + + '\'' + + ", " + + "version='" + + version + + '\'' + + "}"; + } + + public static class Builder extends MetadataBase.Builder { + + @Override + public Builder parent(String parent) { + this.parent = parent; + return this; + } + + @Override + public Builder template(String template) { + this.template = template; + return this; + } + + @Override + public Builder scope(String scope) { + this.scope = scope; + return this; + } + + @Override + public Builder version(Long version) { + this.version = version; + return this; + } + + public Metadata build() { + return new Metadata(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatabase/MetadataBase.java b/src/main/java/com/box/sdkgen/schemas/metadatabase/MetadataBase.java new file mode 100644 index 000000000..ed166df18 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatabase/MetadataBase.java @@ -0,0 +1,128 @@ +package com.box.sdkgen.schemas.metadatabase; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class MetadataBase extends SerializableObject { + + @JsonProperty("$parent") + protected String parent; + + @JsonProperty("$template") + protected String template; + + @JsonProperty("$scope") + protected String scope; + + @JsonProperty("$version") + protected Long version; + + public MetadataBase() { + super(); + } + + protected MetadataBase(Builder builder) { + super(); + this.parent = builder.parent; + this.template = builder.template; + this.scope = builder.scope; + this.version = builder.version; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getParent() { + return parent; + } + + public String getTemplate() { + return template; + } + + public String getScope() { + return scope; + } + + public Long getVersion() { + return version; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataBase casted = (MetadataBase) o; + return Objects.equals(parent, casted.parent) + && Objects.equals(template, casted.template) + && Objects.equals(scope, casted.scope) + && Objects.equals(version, casted.version); + } + + @Override + public int hashCode() { + return Objects.hash(parent, template, scope, version); + } + + @Override + public String toString() { + return "MetadataBase{" + + "parent='" + + parent + + '\'' + + ", " + + "template='" + + template + + '\'' + + ", " + + "scope='" + + scope + + '\'' + + ", " + + "version='" + + version + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String parent; + + protected String template; + + protected String scope; + + protected Long version; + + public Builder parent(String parent) { + this.parent = parent; + return this; + } + + public Builder template(String template) { + this.template = template; + return this; + } + + public Builder scope(String scope) { + this.scope = scope; + return this; + } + + public Builder version(Long version) { + this.version = version; + return this; + } + + public MetadataBase build() { + return new MetadataBase(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicies/MetadataCascadePolicies.java b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicies/MetadataCascadePolicies.java new file mode 100644 index 000000000..7a66d51e9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicies/MetadataCascadePolicies.java @@ -0,0 +1,133 @@ +package com.box.sdkgen.schemas.metadatacascadepolicies; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.metadatacascadepolicy.MetadataCascadePolicy; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class MetadataCascadePolicies extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + protected List entries; + + public MetadataCascadePolicies() { + super(); + } + + protected MetadataCascadePolicies(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataCascadePolicies casted = (MetadataCascadePolicies) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "MetadataCascadePolicies{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public MetadataCascadePolicies build() { + return new MetadataCascadePolicies(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicy.java b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicy.java new file mode 100644 index 000000000..c60ee223d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicy.java @@ -0,0 +1,182 @@ +package com.box.sdkgen.schemas.metadatacascadepolicy; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class MetadataCascadePolicy extends SerializableObject { + + protected final String id; + + @JsonDeserialize( + using = MetadataCascadePolicyTypeField.MetadataCascadePolicyTypeFieldDeserializer.class) + @JsonSerialize( + using = MetadataCascadePolicyTypeField.MetadataCascadePolicyTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("owner_enterprise") + protected MetadataCascadePolicyOwnerEnterpriseField ownerEnterprise; + + protected MetadataCascadePolicyParentField parent; + + protected String scope; + + protected String templateKey; + + public MetadataCascadePolicy(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + MetadataCascadePolicyTypeField.METADATA_CASCADE_POLICY); + } + + protected MetadataCascadePolicy(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.ownerEnterprise = builder.ownerEnterprise; + this.parent = builder.parent; + this.scope = builder.scope; + this.templateKey = builder.templateKey; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public MetadataCascadePolicyOwnerEnterpriseField getOwnerEnterprise() { + return ownerEnterprise; + } + + public MetadataCascadePolicyParentField getParent() { + return parent; + } + + public String getScope() { + return scope; + } + + public String getTemplateKey() { + return templateKey; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataCascadePolicy casted = (MetadataCascadePolicy) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(ownerEnterprise, casted.ownerEnterprise) + && Objects.equals(parent, casted.parent) + && Objects.equals(scope, casted.scope) + && Objects.equals(templateKey, casted.templateKey); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, ownerEnterprise, parent, scope, templateKey); + } + + @Override + public String toString() { + return "MetadataCascadePolicy{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "ownerEnterprise='" + + ownerEnterprise + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + ", " + + "scope='" + + scope + + '\'' + + ", " + + "templateKey='" + + templateKey + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + protected MetadataCascadePolicyOwnerEnterpriseField ownerEnterprise; + + protected MetadataCascadePolicyParentField parent; + + protected String scope; + + protected String templateKey; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + MetadataCascadePolicyTypeField.METADATA_CASCADE_POLICY); + } + + public Builder type(MetadataCascadePolicyTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder ownerEnterprise(MetadataCascadePolicyOwnerEnterpriseField ownerEnterprise) { + this.ownerEnterprise = ownerEnterprise; + return this; + } + + public Builder parent(MetadataCascadePolicyParentField parent) { + this.parent = parent; + return this; + } + + public Builder scope(String scope) { + this.scope = scope; + return this; + } + + public Builder templateKey(String templateKey) { + this.templateKey = templateKey; + return this; + } + + public MetadataCascadePolicy build() { + return new MetadataCascadePolicy(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyOwnerEnterpriseField.java b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyOwnerEnterpriseField.java new file mode 100644 index 000000000..274e95386 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyOwnerEnterpriseField.java @@ -0,0 +1,101 @@ +package com.box.sdkgen.schemas.metadatacascadepolicy; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class MetadataCascadePolicyOwnerEnterpriseField extends SerializableObject { + + @JsonDeserialize( + using = + MetadataCascadePolicyOwnerEnterpriseTypeField + .MetadataCascadePolicyOwnerEnterpriseTypeFieldDeserializer.class) + @JsonSerialize( + using = + MetadataCascadePolicyOwnerEnterpriseTypeField + .MetadataCascadePolicyOwnerEnterpriseTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String id; + + public MetadataCascadePolicyOwnerEnterpriseField() { + super(); + } + + protected MetadataCascadePolicyOwnerEnterpriseField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataCascadePolicyOwnerEnterpriseField casted = + (MetadataCascadePolicyOwnerEnterpriseField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "MetadataCascadePolicyOwnerEnterpriseField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected String id; + + public Builder type(MetadataCascadePolicyOwnerEnterpriseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public MetadataCascadePolicyOwnerEnterpriseField build() { + return new MetadataCascadePolicyOwnerEnterpriseField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyOwnerEnterpriseTypeField.java b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyOwnerEnterpriseTypeField.java new file mode 100644 index 000000000..446b7e21a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyOwnerEnterpriseTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.metadatacascadepolicy; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum MetadataCascadePolicyOwnerEnterpriseTypeField implements Valuable { + ENTERPRISE("enterprise"); + + private final String value; + + MetadataCascadePolicyOwnerEnterpriseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class MetadataCascadePolicyOwnerEnterpriseTypeFieldDeserializer + extends JsonDeserializer> { + + public MetadataCascadePolicyOwnerEnterpriseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(MetadataCascadePolicyOwnerEnterpriseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class MetadataCascadePolicyOwnerEnterpriseTypeFieldSerializer + extends JsonSerializer> { + + public MetadataCascadePolicyOwnerEnterpriseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyParentField.java b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyParentField.java new file mode 100644 index 000000000..87a008bae --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyParentField.java @@ -0,0 +1,99 @@ +package com.box.sdkgen.schemas.metadatacascadepolicy; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class MetadataCascadePolicyParentField extends SerializableObject { + + @JsonDeserialize( + using = + MetadataCascadePolicyParentTypeField.MetadataCascadePolicyParentTypeFieldDeserializer + .class) + @JsonSerialize( + using = + MetadataCascadePolicyParentTypeField.MetadataCascadePolicyParentTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String id; + + public MetadataCascadePolicyParentField() { + super(); + } + + protected MetadataCascadePolicyParentField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataCascadePolicyParentField casted = (MetadataCascadePolicyParentField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "MetadataCascadePolicyParentField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected String id; + + public Builder type(MetadataCascadePolicyParentTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public MetadataCascadePolicyParentField build() { + return new MetadataCascadePolicyParentField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyParentTypeField.java b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyParentTypeField.java new file mode 100644 index 000000000..91dd61959 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyParentTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.metadatacascadepolicy; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum MetadataCascadePolicyParentTypeField implements Valuable { + FOLDER("folder"); + + private final String value; + + MetadataCascadePolicyParentTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class MetadataCascadePolicyParentTypeFieldDeserializer + extends JsonDeserializer> { + + public MetadataCascadePolicyParentTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(MetadataCascadePolicyParentTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class MetadataCascadePolicyParentTypeFieldSerializer + extends JsonSerializer> { + + public MetadataCascadePolicyParentTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyTypeField.java b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyTypeField.java new file mode 100644 index 000000000..a8d2de661 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.metadatacascadepolicy; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum MetadataCascadePolicyTypeField implements Valuable { + METADATA_CASCADE_POLICY("metadata_cascade_policy"); + + private final String value; + + MetadataCascadePolicyTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class MetadataCascadePolicyTypeFieldDeserializer + extends JsonDeserializer> { + + public MetadataCascadePolicyTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(MetadataCascadePolicyTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class MetadataCascadePolicyTypeFieldSerializer + extends JsonSerializer> { + + public MetadataCascadePolicyTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadataerror/MetadataError.java b/src/main/java/com/box/sdkgen/schemas/metadataerror/MetadataError.java new file mode 100644 index 000000000..d482b3fad --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadataerror/MetadataError.java @@ -0,0 +1,106 @@ +package com.box.sdkgen.schemas.metadataerror; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class MetadataError extends SerializableObject { + + protected String code; + + protected String message; + + @JsonProperty("request_id") + protected String requestId; + + public MetadataError() { + super(); + } + + protected MetadataError(Builder builder) { + super(); + this.code = builder.code; + this.message = builder.message; + this.requestId = builder.requestId; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getCode() { + return code; + } + + public String getMessage() { + return message; + } + + public String getRequestId() { + return requestId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataError casted = (MetadataError) o; + return Objects.equals(code, casted.code) + && Objects.equals(message, casted.message) + && Objects.equals(requestId, casted.requestId); + } + + @Override + public int hashCode() { + return Objects.hash(code, message, requestId); + } + + @Override + public String toString() { + return "MetadataError{" + + "code='" + + code + + '\'' + + ", " + + "message='" + + message + + '\'' + + ", " + + "requestId='" + + requestId + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String code; + + protected String message; + + protected String requestId; + + public Builder code(String code) { + this.code = code; + return this; + } + + public Builder message(String message) { + this.message = message; + return this; + } + + public Builder requestId(String requestId) { + this.requestId = requestId; + return this; + } + + public MetadataError build() { + return new MetadataError(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatafieldfilterdaterange/MetadataFieldFilterDateRange.java b/src/main/java/com/box/sdkgen/schemas/metadatafieldfilterdaterange/MetadataFieldFilterDateRange.java new file mode 100644 index 000000000..6e182f846 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatafieldfilterdaterange/MetadataFieldFilterDateRange.java @@ -0,0 +1,84 @@ +package com.box.sdkgen.schemas.metadatafieldfilterdaterange; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class MetadataFieldFilterDateRange extends SerializableObject { + + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date lt; + + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date gt; + + public MetadataFieldFilterDateRange() { + super(); + } + + protected MetadataFieldFilterDateRange(Builder builder) { + super(); + this.lt = builder.lt; + this.gt = builder.gt; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Date getLt() { + return lt; + } + + public Date getGt() { + return gt; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataFieldFilterDateRange casted = (MetadataFieldFilterDateRange) o; + return Objects.equals(lt, casted.lt) && Objects.equals(gt, casted.gt); + } + + @Override + public int hashCode() { + return Objects.hash(lt, gt); + } + + @Override + public String toString() { + return "MetadataFieldFilterDateRange{" + "lt='" + lt + '\'' + ", " + "gt='" + gt + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Date lt; + + protected Date gt; + + public Builder lt(Date lt) { + this.lt = lt; + return this; + } + + public Builder gt(Date gt) { + this.gt = gt; + return this; + } + + public MetadataFieldFilterDateRange build() { + return new MetadataFieldFilterDateRange(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatafieldfilterdaterangeormetadatafieldfilterfloatrangeorarrayofstringornumberorstring/MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString.java b/src/main/java/com/box/sdkgen/schemas/metadatafieldfilterdaterangeormetadatafieldfilterfloatrangeorarrayofstringornumberorstring/MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString.java new file mode 100644 index 000000000..ce7019906 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatafieldfilterdaterangeormetadatafieldfilterfloatrangeorarrayofstringornumberorstring/MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString.java @@ -0,0 +1,138 @@ +package com.box.sdkgen.schemas.metadatafieldfilterdaterangeormetadatafieldfilterfloatrangeorarrayofstringornumberorstring; + +import com.box.sdkgen.internal.OneOfFive; +import com.box.sdkgen.schemas.metadatafieldfilterdaterange.MetadataFieldFilterDateRange; +import com.box.sdkgen.schemas.metadatafieldfilterfloatrange.MetadataFieldFilterFloatRange; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; +import java.util.List; + +@JsonDeserialize( + using = + MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString + .MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrStringDeserializer + .class) +@JsonSerialize(using = OneOfFive.OneOfFiveSerializer.class) +public +class MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString + extends OneOfFive< + MetadataFieldFilterDateRange, MetadataFieldFilterFloatRange, List, Double, String> { + + public MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( + MetadataFieldFilterDateRange metadataFieldFilterDateRange) { + super(metadataFieldFilterDateRange, null, null, null, null); + } + + public MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( + MetadataFieldFilterFloatRange metadataFieldFilterFloatRange) { + super(null, metadataFieldFilterFloatRange, null, null, null); + } + + public MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( + List listOfString) { + super(null, null, listOfString, null, null); + } + + public MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( + Double doubleNumber) { + super(null, null, null, doubleNumber, null); + } + + public MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( + String string) { + super(null, null, null, null, string); + } + + public boolean isMetadataFieldFilterDateRange() { + return value0 != null; + } + + public MetadataFieldFilterDateRange getMetadataFieldFilterDateRange() { + return value0; + } + + public boolean isMetadataFieldFilterFloatRange() { + return value1 != null; + } + + public MetadataFieldFilterFloatRange getMetadataFieldFilterFloatRange() { + return value1; + } + + public boolean isListOfString() { + return value2 != null; + } + + public List getListOfString() { + return value2; + } + + public boolean isDoubleNumber() { + return value3 != null; + } + + public Double getDoubleNumber() { + return value3; + } + + public boolean isString() { + return value4 != null; + } + + public String getString() { + return value4; + } + + static + class MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrStringDeserializer + extends JsonDeserializer< + MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString> { + + public + MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrStringDeserializer() { + super(); + } + + @Override + public + MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString + deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + try { + return new MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( + OneOfFive.OBJECT_MAPPER.convertValue(node, MetadataFieldFilterDateRange.class)); + } catch (Exception ignored) { + } + try { + return new MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( + OneOfFive.OBJECT_MAPPER.convertValue(node, MetadataFieldFilterFloatRange.class)); + } catch (Exception ignored) { + } + try { + return new MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( + OneOfFive.OBJECT_MAPPER.convertValue(node, List.class)); + } catch (Exception ignored) { + } + try { + return new MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( + OneOfFive.OBJECT_MAPPER.convertValue(node, Double.class)); + } catch (Exception ignored) { + } + try { + return new MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( + OneOfFive.OBJECT_MAPPER.convertValue(node, String.class)); + } catch (Exception ignored) { + } + throw new JsonMappingException( + jp, + "Unable to deserialize MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatafieldfilterfloatrange/MetadataFieldFilterFloatRange.java b/src/main/java/com/box/sdkgen/schemas/metadatafieldfilterfloatrange/MetadataFieldFilterFloatRange.java new file mode 100644 index 000000000..2f352ea1f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatafieldfilterfloatrange/MetadataFieldFilterFloatRange.java @@ -0,0 +1,76 @@ +package com.box.sdkgen.schemas.metadatafieldfilterfloatrange; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class MetadataFieldFilterFloatRange extends SerializableObject { + + protected Double lt; + + protected Double gt; + + public MetadataFieldFilterFloatRange() { + super(); + } + + protected MetadataFieldFilterFloatRange(Builder builder) { + super(); + this.lt = builder.lt; + this.gt = builder.gt; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Double getLt() { + return lt; + } + + public Double getGt() { + return gt; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataFieldFilterFloatRange casted = (MetadataFieldFilterFloatRange) o; + return Objects.equals(lt, casted.lt) && Objects.equals(gt, casted.gt); + } + + @Override + public int hashCode() { + return Objects.hash(lt, gt); + } + + @Override + public String toString() { + return "MetadataFieldFilterFloatRange{" + "lt='" + lt + '\'' + ", " + "gt='" + gt + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Double lt; + + protected Double gt; + + public Builder lt(Double lt) { + this.lt = lt; + return this; + } + + public Builder gt(Double gt) { + this.gt = gt; + return this; + } + + public MetadataFieldFilterFloatRange build() { + return new MetadataFieldFilterFloatRange(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatafilter/MetadataFilter.java b/src/main/java/com/box/sdkgen/schemas/metadatafilter/MetadataFilter.java new file mode 100644 index 000000000..5a71050f1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatafilter/MetadataFilter.java @@ -0,0 +1,129 @@ +package com.box.sdkgen.schemas.metadatafilter; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.metadatafieldfilterdaterangeormetadatafieldfilterfloatrangeorarrayofstringornumberorstring.MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Map; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class MetadataFilter extends SerializableObject { + + @JsonDeserialize(using = MetadataFilterScopeField.MetadataFilterScopeFieldDeserializer.class) + @JsonSerialize(using = MetadataFilterScopeField.MetadataFilterScopeFieldSerializer.class) + protected EnumWrapper scope; + + protected String templateKey; + + protected Map< + String, + MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString> + filters; + + public MetadataFilter() { + super(); + } + + protected MetadataFilter(Builder builder) { + super(); + this.scope = builder.scope; + this.templateKey = builder.templateKey; + this.filters = builder.filters; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getScope() { + return scope; + } + + public String getTemplateKey() { + return templateKey; + } + + public Map< + String, + MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString> + getFilters() { + return filters; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataFilter casted = (MetadataFilter) o; + return Objects.equals(scope, casted.scope) + && Objects.equals(templateKey, casted.templateKey) + && Objects.equals(filters, casted.filters); + } + + @Override + public int hashCode() { + return Objects.hash(scope, templateKey, filters); + } + + @Override + public String toString() { + return "MetadataFilter{" + + "scope='" + + scope + + '\'' + + ", " + + "templateKey='" + + templateKey + + '\'' + + ", " + + "filters='" + + filters + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper scope; + + protected String templateKey; + + protected Map< + String, + MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString> + filters; + + public Builder scope(MetadataFilterScopeField scope) { + this.scope = new EnumWrapper(scope); + return this; + } + + public Builder scope(EnumWrapper scope) { + this.scope = scope; + return this; + } + + public Builder templateKey(String templateKey) { + this.templateKey = templateKey; + return this; + } + + public Builder filters( + Map< + String, + MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString> + filters) { + this.filters = filters; + return this; + } + + public MetadataFilter build() { + return new MetadataFilter(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatafilter/MetadataFilterScopeField.java b/src/main/java/com/box/sdkgen/schemas/metadatafilter/MetadataFilterScopeField.java new file mode 100644 index 000000000..025c825ff --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatafilter/MetadataFilterScopeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.metadatafilter; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum MetadataFilterScopeField implements Valuable { + GLOBAL("global"), + ENTERPRISE("enterprise"), + ENTERPRISE__ENTERPRISE_ID_("enterprise_{enterprise_id}"); + + private final String value; + + MetadataFilterScopeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class MetadataFilterScopeFieldDeserializer + extends JsonDeserializer> { + + public MetadataFilterScopeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(MetadataFilterScopeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class MetadataFilterScopeFieldSerializer + extends JsonSerializer> { + + public MetadataFilterScopeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatafull/MetadataFull.java b/src/main/java/com/box/sdkgen/schemas/metadatafull/MetadataFull.java new file mode 100644 index 000000000..f60901704 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatafull/MetadataFull.java @@ -0,0 +1,194 @@ +package com.box.sdkgen.schemas.metadatafull; + +import com.box.sdkgen.schemas.metadata.Metadata; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Map; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class MetadataFull extends Metadata { + + @JsonProperty("$canEdit") + protected Boolean canEdit; + + @JsonProperty("$id") + protected String id; + + @JsonProperty("$type") + protected String type; + + @JsonProperty("$typeVersion") + protected Long typeVersion; + + @JsonAnyGetter @JsonAnySetter protected Map extraData; + + public MetadataFull() { + super(); + } + + protected MetadataFull(Builder builder) { + super(builder); + this.canEdit = builder.canEdit; + this.id = builder.id; + this.type = builder.type; + this.typeVersion = builder.typeVersion; + this.extraData = builder.extraData; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getCanEdit() { + return canEdit; + } + + public String getId() { + return id; + } + + public String getType() { + return type; + } + + public Long getTypeVersion() { + return typeVersion; + } + + public Map getExtraData() { + return extraData; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataFull casted = (MetadataFull) o; + return Objects.equals(parent, casted.parent) + && Objects.equals(template, casted.template) + && Objects.equals(scope, casted.scope) + && Objects.equals(version, casted.version) + && Objects.equals(canEdit, casted.canEdit) + && Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(typeVersion, casted.typeVersion) + && Objects.equals(extraData, casted.extraData); + } + + @Override + public int hashCode() { + return Objects.hash( + parent, template, scope, version, canEdit, id, type, typeVersion, extraData); + } + + @Override + public String toString() { + return "MetadataFull{" + + "parent='" + + parent + + '\'' + + ", " + + "template='" + + template + + '\'' + + ", " + + "scope='" + + scope + + '\'' + + ", " + + "version='" + + version + + '\'' + + ", " + + "canEdit='" + + canEdit + + '\'' + + ", " + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "typeVersion='" + + typeVersion + + '\'' + + ", " + + "extraData='" + + extraData + + '\'' + + "}"; + } + + public static class Builder extends Metadata.Builder { + + protected Boolean canEdit; + + protected String id; + + protected String type; + + protected Long typeVersion; + + protected Map extraData; + + public Builder canEdit(Boolean canEdit) { + this.canEdit = canEdit; + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(String type) { + this.type = type; + return this; + } + + public Builder typeVersion(Long typeVersion) { + this.typeVersion = typeVersion; + return this; + } + + public Builder extraData(Map extraData) { + this.extraData = extraData; + return this; + } + + @Override + public Builder parent(String parent) { + this.parent = parent; + return this; + } + + @Override + public Builder template(String template) { + this.template = template; + return this; + } + + @Override + public Builder scope(String scope) { + this.scope = scope; + return this; + } + + @Override + public Builder version(Long version) { + this.version = version; + return this; + } + + public MetadataFull build() { + return new MetadataFull(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatainstancevalue/MetadataInstanceValue.java b/src/main/java/com/box/sdkgen/schemas/metadatainstancevalue/MetadataInstanceValue.java new file mode 100644 index 000000000..5306b0666 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatainstancevalue/MetadataInstanceValue.java @@ -0,0 +1,96 @@ +package com.box.sdkgen.schemas.metadatainstancevalue; + +import com.box.sdkgen.internal.OneOfFour; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; +import java.util.List; + +@JsonDeserialize(using = MetadataInstanceValue.MetadataInstanceValueDeserializer.class) +@JsonSerialize(using = OneOfFour.OneOfFourSerializer.class) +public class MetadataInstanceValue extends OneOfFour> { + + public MetadataInstanceValue(String string) { + super(string, null, null, null); + } + + public MetadataInstanceValue(Long longNumber) { + super(null, longNumber, null, null); + } + + public MetadataInstanceValue(Double doubleNumber) { + super(null, null, doubleNumber, null); + } + + public MetadataInstanceValue(List listOfString) { + super(null, null, null, listOfString); + } + + public boolean isString() { + return value0 != null; + } + + public String getString() { + return value0; + } + + public boolean isLongNumber() { + return value1 != null; + } + + public Long getLongNumber() { + return value1; + } + + public boolean isDoubleNumber() { + return value2 != null; + } + + public Double getDoubleNumber() { + return value2; + } + + public boolean isListOfString() { + return value3 != null; + } + + public List getListOfString() { + return value3; + } + + static class MetadataInstanceValueDeserializer extends JsonDeserializer { + + public MetadataInstanceValueDeserializer() { + super(); + } + + @Override + public MetadataInstanceValue deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + try { + return new MetadataInstanceValue(OneOfFour.OBJECT_MAPPER.convertValue(node, Long.class)); + } catch (Exception ignored) { + } + try { + return new MetadataInstanceValue(OneOfFour.OBJECT_MAPPER.convertValue(node, Double.class)); + } catch (Exception ignored) { + } + try { + return new MetadataInstanceValue(OneOfFour.OBJECT_MAPPER.convertValue(node, List.class)); + } catch (Exception ignored) { + } + try { + return new MetadataInstanceValue(OneOfFour.OBJECT_MAPPER.convertValue(node, String.class)); + } catch (Exception ignored) { + } + throw new JsonMappingException(jp, "Unable to deserialize MetadataInstanceValue"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadataquery/MetadataQuery.java b/src/main/java/com/box/sdkgen/schemas/metadataquery/MetadataQuery.java new file mode 100644 index 000000000..eb64ed5f7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadataquery/MetadataQuery.java @@ -0,0 +1,205 @@ +package com.box.sdkgen.schemas.metadataquery; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class MetadataQuery extends SerializableObject { + + protected final String from; + + protected String query; + + @JsonProperty("query_params") + protected Map queryParams; + + @JsonProperty("ancestor_folder_id") + protected final String ancestorFolderId; + + @JsonProperty("order_by") + protected List orderBy; + + protected Long limit; + + protected String marker; + + protected List fields; + + public MetadataQuery( + @JsonProperty("from") String from, + @JsonProperty("ancestor_folder_id") String ancestorFolderId) { + super(); + this.from = from; + this.ancestorFolderId = ancestorFolderId; + } + + protected MetadataQuery(Builder builder) { + super(); + this.from = builder.from; + this.query = builder.query; + this.queryParams = builder.queryParams; + this.ancestorFolderId = builder.ancestorFolderId; + this.orderBy = builder.orderBy; + this.limit = builder.limit; + this.marker = builder.marker; + this.fields = builder.fields; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getFrom() { + return from; + } + + public String getQuery() { + return query; + } + + public Map getQueryParams() { + return queryParams; + } + + public String getAncestorFolderId() { + return ancestorFolderId; + } + + public List getOrderBy() { + return orderBy; + } + + public Long getLimit() { + return limit; + } + + public String getMarker() { + return marker; + } + + public List getFields() { + return fields; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataQuery casted = (MetadataQuery) o; + return Objects.equals(from, casted.from) + && Objects.equals(query, casted.query) + && Objects.equals(queryParams, casted.queryParams) + && Objects.equals(ancestorFolderId, casted.ancestorFolderId) + && Objects.equals(orderBy, casted.orderBy) + && Objects.equals(limit, casted.limit) + && Objects.equals(marker, casted.marker) + && Objects.equals(fields, casted.fields); + } + + @Override + public int hashCode() { + return Objects.hash(from, query, queryParams, ancestorFolderId, orderBy, limit, marker, fields); + } + + @Override + public String toString() { + return "MetadataQuery{" + + "from='" + + from + + '\'' + + ", " + + "query='" + + query + + '\'' + + ", " + + "queryParams='" + + queryParams + + '\'' + + ", " + + "ancestorFolderId='" + + ancestorFolderId + + '\'' + + ", " + + "orderBy='" + + orderBy + + '\'' + + ", " + + "limit='" + + limit + + '\'' + + ", " + + "marker='" + + marker + + '\'' + + ", " + + "fields='" + + fields + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String from; + + protected String query; + + protected Map queryParams; + + protected final String ancestorFolderId; + + protected List orderBy; + + protected Long limit; + + protected String marker; + + protected List fields; + + public Builder(String from, String ancestorFolderId) { + super(); + this.from = from; + this.ancestorFolderId = ancestorFolderId; + } + + public Builder query(String query) { + this.query = query; + return this; + } + + public Builder queryParams(Map queryParams) { + this.queryParams = queryParams; + return this; + } + + public Builder orderBy(List orderBy) { + this.orderBy = orderBy; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public MetadataQuery build() { + return new MetadataQuery(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadataquery/MetadataQueryOrderByDirectionField.java b/src/main/java/com/box/sdkgen/schemas/metadataquery/MetadataQueryOrderByDirectionField.java new file mode 100644 index 000000000..dc6b2f2e4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadataquery/MetadataQueryOrderByDirectionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.metadataquery; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum MetadataQueryOrderByDirectionField implements Valuable { + ASC("ASC"), + DESC("DESC"); + + private final String value; + + MetadataQueryOrderByDirectionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class MetadataQueryOrderByDirectionFieldDeserializer + extends JsonDeserializer> { + + public MetadataQueryOrderByDirectionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(MetadataQueryOrderByDirectionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class MetadataQueryOrderByDirectionFieldSerializer + extends JsonSerializer> { + + public MetadataQueryOrderByDirectionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadataquery/MetadataQueryOrderByField.java b/src/main/java/com/box/sdkgen/schemas/metadataquery/MetadataQueryOrderByField.java new file mode 100644 index 000000000..e3a381047 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadataquery/MetadataQueryOrderByField.java @@ -0,0 +1,99 @@ +package com.box.sdkgen.schemas.metadataquery; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class MetadataQueryOrderByField extends SerializableObject { + + @JsonProperty("field_key") + protected String fieldKey; + + @JsonDeserialize( + using = + MetadataQueryOrderByDirectionField.MetadataQueryOrderByDirectionFieldDeserializer.class) + @JsonSerialize( + using = MetadataQueryOrderByDirectionField.MetadataQueryOrderByDirectionFieldSerializer.class) + protected EnumWrapper direction; + + public MetadataQueryOrderByField() { + super(); + } + + protected MetadataQueryOrderByField(Builder builder) { + super(); + this.fieldKey = builder.fieldKey; + this.direction = builder.direction; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getFieldKey() { + return fieldKey; + } + + public EnumWrapper getDirection() { + return direction; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataQueryOrderByField casted = (MetadataQueryOrderByField) o; + return Objects.equals(fieldKey, casted.fieldKey) && Objects.equals(direction, casted.direction); + } + + @Override + public int hashCode() { + return Objects.hash(fieldKey, direction); + } + + @Override + public String toString() { + return "MetadataQueryOrderByField{" + + "fieldKey='" + + fieldKey + + '\'' + + ", " + + "direction='" + + direction + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String fieldKey; + + protected EnumWrapper direction; + + public Builder fieldKey(String fieldKey) { + this.fieldKey = fieldKey; + return this; + } + + public Builder direction(MetadataQueryOrderByDirectionField direction) { + this.direction = new EnumWrapper(direction); + return this; + } + + public Builder direction(EnumWrapper direction) { + this.direction = direction; + return this; + } + + public MetadataQueryOrderByField build() { + return new MetadataQueryOrderByField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndex.java b/src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndex.java new file mode 100644 index 000000000..f1461e06f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndex.java @@ -0,0 +1,144 @@ +package com.box.sdkgen.schemas.metadataqueryindex; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class MetadataQueryIndex extends SerializableObject { + + protected String id; + + protected final String type; + + @JsonDeserialize( + using = MetadataQueryIndexStatusField.MetadataQueryIndexStatusFieldDeserializer.class) + @JsonSerialize( + using = MetadataQueryIndexStatusField.MetadataQueryIndexStatusFieldSerializer.class) + protected final EnumWrapper status; + + protected List fields; + + public MetadataQueryIndex(String type, MetadataQueryIndexStatusField status) { + super(); + this.type = type; + this.status = new EnumWrapper(status); + } + + public MetadataQueryIndex( + @JsonProperty("type") String type, + @JsonProperty("status") EnumWrapper status) { + super(); + this.type = type; + this.status = status; + } + + protected MetadataQueryIndex(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.status = builder.status; + this.fields = builder.fields; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getType() { + return type; + } + + public EnumWrapper getStatus() { + return status; + } + + public List getFields() { + return fields; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataQueryIndex casted = (MetadataQueryIndex) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(status, casted.status) + && Objects.equals(fields, casted.fields); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, status, fields); + } + + @Override + public String toString() { + return "MetadataQueryIndex{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "fields='" + + fields + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected final String type; + + protected final EnumWrapper status; + + protected List fields; + + public Builder(String type, MetadataQueryIndexStatusField status) { + super(); + this.type = type; + this.status = new EnumWrapper(status); + } + + public Builder(String type, EnumWrapper status) { + super(); + this.type = type; + this.status = status; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public MetadataQueryIndex build() { + return new MetadataQueryIndex(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndexFieldsField.java b/src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndexFieldsField.java new file mode 100644 index 000000000..aabe1f4e1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndexFieldsField.java @@ -0,0 +1,104 @@ +package com.box.sdkgen.schemas.metadataqueryindex; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class MetadataQueryIndexFieldsField extends SerializableObject { + + protected String key; + + @JsonDeserialize( + using = + MetadataQueryIndexFieldsSortDirectionField + .MetadataQueryIndexFieldsSortDirectionFieldDeserializer.class) + @JsonSerialize( + using = + MetadataQueryIndexFieldsSortDirectionField + .MetadataQueryIndexFieldsSortDirectionFieldSerializer.class) + @JsonProperty("sort_direction") + protected EnumWrapper sortDirection; + + public MetadataQueryIndexFieldsField() { + super(); + } + + protected MetadataQueryIndexFieldsField(Builder builder) { + super(); + this.key = builder.key; + this.sortDirection = builder.sortDirection; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getKey() { + return key; + } + + public EnumWrapper getSortDirection() { + return sortDirection; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataQueryIndexFieldsField casted = (MetadataQueryIndexFieldsField) o; + return Objects.equals(key, casted.key) && Objects.equals(sortDirection, casted.sortDirection); + } + + @Override + public int hashCode() { + return Objects.hash(key, sortDirection); + } + + @Override + public String toString() { + return "MetadataQueryIndexFieldsField{" + + "key='" + + key + + '\'' + + ", " + + "sortDirection='" + + sortDirection + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String key; + + protected EnumWrapper sortDirection; + + public Builder key(String key) { + this.key = key; + return this; + } + + public Builder sortDirection(MetadataQueryIndexFieldsSortDirectionField sortDirection) { + this.sortDirection = + new EnumWrapper(sortDirection); + return this; + } + + public Builder sortDirection( + EnumWrapper sortDirection) { + this.sortDirection = sortDirection; + return this; + } + + public MetadataQueryIndexFieldsField build() { + return new MetadataQueryIndexFieldsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndexFieldsSortDirectionField.java b/src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndexFieldsSortDirectionField.java new file mode 100644 index 000000000..75c387f89 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndexFieldsSortDirectionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.metadataqueryindex; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum MetadataQueryIndexFieldsSortDirectionField implements Valuable { + ASC("asc"), + DESC("desc"); + + private final String value; + + MetadataQueryIndexFieldsSortDirectionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class MetadataQueryIndexFieldsSortDirectionFieldDeserializer + extends JsonDeserializer> { + + public MetadataQueryIndexFieldsSortDirectionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(MetadataQueryIndexFieldsSortDirectionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class MetadataQueryIndexFieldsSortDirectionFieldSerializer + extends JsonSerializer> { + + public MetadataQueryIndexFieldsSortDirectionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndexStatusField.java b/src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndexStatusField.java new file mode 100644 index 000000000..22f4529ba --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndexStatusField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.metadataqueryindex; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum MetadataQueryIndexStatusField implements Valuable { + BUILDING("building"), + ACTIVE("active"), + DISABLED("disabled"); + + private final String value; + + MetadataQueryIndexStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class MetadataQueryIndexStatusFieldDeserializer + extends JsonDeserializer> { + + public MetadataQueryIndexStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(MetadataQueryIndexStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class MetadataQueryIndexStatusFieldSerializer + extends JsonSerializer> { + + public MetadataQueryIndexStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadataqueryresults/MetadataQueryResults.java b/src/main/java/com/box/sdkgen/schemas/metadataqueryresults/MetadataQueryResults.java new file mode 100644 index 000000000..91b0da0e7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadataqueryresults/MetadataQueryResults.java @@ -0,0 +1,108 @@ +package com.box.sdkgen.schemas.metadataqueryresults; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.filefullorfolderfull.FileFullOrFolderFull; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class MetadataQueryResults extends SerializableObject { + + protected List entries; + + protected Long limit; + + @JsonProperty("next_marker") + protected String nextMarker; + + public MetadataQueryResults() { + super(); + } + + protected MetadataQueryResults(Builder builder) { + super(); + this.entries = builder.entries; + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getEntries() { + return entries; + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataQueryResults casted = (MetadataQueryResults) o; + return Objects.equals(entries, casted.entries) + && Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker); + } + + @Override + public int hashCode() { + return Objects.hash(entries, limit, nextMarker); + } + + @Override + public String toString() { + return "MetadataQueryResults{" + + "entries='" + + entries + + '\'' + + ", " + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List entries; + + protected Long limit; + + protected String nextMarker; + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + return this; + } + + public MetadataQueryResults build() { + return new MetadataQueryResults(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatas/Metadatas.java b/src/main/java/com/box/sdkgen/schemas/metadatas/Metadatas.java new file mode 100644 index 000000000..67360324f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatas/Metadatas.java @@ -0,0 +1,78 @@ +package com.box.sdkgen.schemas.metadatas; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.metadata.Metadata; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Metadatas extends SerializableObject { + + protected List entries; + + protected Long limit; + + public Metadatas() { + super(); + } + + protected Metadatas(Builder builder) { + super(); + this.entries = builder.entries; + this.limit = builder.limit; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getEntries() { + return entries; + } + + public Long getLimit() { + return limit; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Metadatas casted = (Metadatas) o; + return Objects.equals(entries, casted.entries) && Objects.equals(limit, casted.limit); + } + + @Override + public int hashCode() { + return Objects.hash(entries, limit); + } + + @Override + public String toString() { + return "Metadatas{" + "entries='" + entries + '\'' + ", " + "limit='" + limit + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List entries; + + protected Long limit; + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Metadatas build() { + return new Metadatas(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplate.java b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplate.java new file mode 100644 index 000000000..f7d2df08b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplate.java @@ -0,0 +1,217 @@ +package com.box.sdkgen.schemas.metadatatemplate; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class MetadataTemplate extends SerializableObject { + + protected final String id; + + @JsonDeserialize(using = MetadataTemplateTypeField.MetadataTemplateTypeFieldDeserializer.class) + @JsonSerialize(using = MetadataTemplateTypeField.MetadataTemplateTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String scope; + + protected String templateKey; + + protected String displayName; + + protected Boolean hidden; + + protected List fields; + + protected Boolean copyInstanceOnItemCopy; + + public MetadataTemplate(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper(MetadataTemplateTypeField.METADATA_TEMPLATE); + } + + protected MetadataTemplate(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.scope = builder.scope; + this.templateKey = builder.templateKey; + this.displayName = builder.displayName; + this.hidden = builder.hidden; + this.fields = builder.fields; + this.copyInstanceOnItemCopy = builder.copyInstanceOnItemCopy; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getScope() { + return scope; + } + + public String getTemplateKey() { + return templateKey; + } + + public String getDisplayName() { + return displayName; + } + + public Boolean getHidden() { + return hidden; + } + + public List getFields() { + return fields; + } + + public Boolean getCopyInstanceOnItemCopy() { + return copyInstanceOnItemCopy; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataTemplate casted = (MetadataTemplate) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(scope, casted.scope) + && Objects.equals(templateKey, casted.templateKey) + && Objects.equals(displayName, casted.displayName) + && Objects.equals(hidden, casted.hidden) + && Objects.equals(fields, casted.fields) + && Objects.equals(copyInstanceOnItemCopy, casted.copyInstanceOnItemCopy); + } + + @Override + public int hashCode() { + return Objects.hash( + id, type, scope, templateKey, displayName, hidden, fields, copyInstanceOnItemCopy); + } + + @Override + public String toString() { + return "MetadataTemplate{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "scope='" + + scope + + '\'' + + ", " + + "templateKey='" + + templateKey + + '\'' + + ", " + + "displayName='" + + displayName + + '\'' + + ", " + + "hidden='" + + hidden + + '\'' + + ", " + + "fields='" + + fields + + '\'' + + ", " + + "copyInstanceOnItemCopy='" + + copyInstanceOnItemCopy + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + protected String scope; + + protected String templateKey; + + protected String displayName; + + protected Boolean hidden; + + protected List fields; + + protected Boolean copyInstanceOnItemCopy; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper(MetadataTemplateTypeField.METADATA_TEMPLATE); + } + + public Builder type(MetadataTemplateTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder scope(String scope) { + this.scope = scope; + return this; + } + + public Builder templateKey(String templateKey) { + this.templateKey = templateKey; + return this; + } + + public Builder displayName(String displayName) { + this.displayName = displayName; + return this; + } + + public Builder hidden(Boolean hidden) { + this.hidden = hidden; + return this; + } + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder copyInstanceOnItemCopy(Boolean copyInstanceOnItemCopy) { + this.copyInstanceOnItemCopy = copyInstanceOnItemCopy; + return this; + } + + public MetadataTemplate build() { + return new MetadataTemplate(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsField.java b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsField.java new file mode 100644 index 000000000..7be30f533 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsField.java @@ -0,0 +1,203 @@ +package com.box.sdkgen.schemas.metadatatemplate; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class MetadataTemplateFieldsField extends SerializableObject { + + @JsonDeserialize( + using = MetadataTemplateFieldsTypeField.MetadataTemplateFieldsTypeFieldDeserializer.class) + @JsonSerialize( + using = MetadataTemplateFieldsTypeField.MetadataTemplateFieldsTypeFieldSerializer.class) + protected final EnumWrapper type; + + protected final String key; + + protected final String displayName; + + protected String description; + + protected Boolean hidden; + + protected List options; + + protected String id; + + public MetadataTemplateFieldsField( + MetadataTemplateFieldsTypeField type, String key, String displayName) { + super(); + this.type = new EnumWrapper(type); + this.key = key; + this.displayName = displayName; + } + + public MetadataTemplateFieldsField( + @JsonProperty("type") EnumWrapper type, + @JsonProperty("key") String key, + @JsonProperty("displayName") String displayName) { + super(); + this.type = type; + this.key = key; + this.displayName = displayName; + } + + protected MetadataTemplateFieldsField(Builder builder) { + super(); + this.type = builder.type; + this.key = builder.key; + this.displayName = builder.displayName; + this.description = builder.description; + this.hidden = builder.hidden; + this.options = builder.options; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getKey() { + return key; + } + + public String getDisplayName() { + return displayName; + } + + public String getDescription() { + return description; + } + + public Boolean getHidden() { + return hidden; + } + + public List getOptions() { + return options; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataTemplateFieldsField casted = (MetadataTemplateFieldsField) o; + return Objects.equals(type, casted.type) + && Objects.equals(key, casted.key) + && Objects.equals(displayName, casted.displayName) + && Objects.equals(description, casted.description) + && Objects.equals(hidden, casted.hidden) + && Objects.equals(options, casted.options) + && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, key, displayName, description, hidden, options, id); + } + + @Override + public String toString() { + return "MetadataTemplateFieldsField{" + + "type='" + + type + + '\'' + + ", " + + "key='" + + key + + '\'' + + ", " + + "displayName='" + + displayName + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "hidden='" + + hidden + + '\'' + + ", " + + "options='" + + options + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final EnumWrapper type; + + protected final String key; + + protected final String displayName; + + protected String description; + + protected Boolean hidden; + + protected List options; + + protected String id; + + public Builder(MetadataTemplateFieldsTypeField type, String key, String displayName) { + super(); + this.type = new EnumWrapper(type); + this.key = key; + this.displayName = displayName; + } + + public Builder( + EnumWrapper type, String key, String displayName) { + super(); + this.type = type; + this.key = key; + this.displayName = displayName; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder hidden(Boolean hidden) { + this.hidden = hidden; + return this; + } + + public Builder options(List options) { + this.options = options; + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public MetadataTemplateFieldsField build() { + return new MetadataTemplateFieldsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsOptionsField.java b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsOptionsField.java new file mode 100644 index 000000000..c33b14ab1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsOptionsField.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.schemas.metadatatemplate; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class MetadataTemplateFieldsOptionsField extends SerializableObject { + + protected final String key; + + protected String id; + + public MetadataTemplateFieldsOptionsField(@JsonProperty("key") String key) { + super(); + this.key = key; + } + + protected MetadataTemplateFieldsOptionsField(Builder builder) { + super(); + this.key = builder.key; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getKey() { + return key; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataTemplateFieldsOptionsField casted = (MetadataTemplateFieldsOptionsField) o; + return Objects.equals(key, casted.key) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(key, id); + } + + @Override + public String toString() { + return "MetadataTemplateFieldsOptionsField{" + + "key='" + + key + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String key; + + protected String id; + + public Builder(String key) { + super(); + this.key = key; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public MetadataTemplateFieldsOptionsField build() { + return new MetadataTemplateFieldsOptionsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsTypeField.java b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsTypeField.java new file mode 100644 index 000000000..23fa9fb4c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsTypeField.java @@ -0,0 +1,67 @@ +package com.box.sdkgen.schemas.metadatatemplate; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum MetadataTemplateFieldsTypeField implements Valuable { + STRING("string"), + FLOAT("float"), + DATE("date"), + ENUM("enum"), + MULTISELECT("multiSelect"), + INTEGER("integer"); + + private final String value; + + MetadataTemplateFieldsTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class MetadataTemplateFieldsTypeFieldDeserializer + extends JsonDeserializer> { + + public MetadataTemplateFieldsTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(MetadataTemplateFieldsTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class MetadataTemplateFieldsTypeFieldSerializer + extends JsonSerializer> { + + public MetadataTemplateFieldsTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateTypeField.java b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateTypeField.java new file mode 100644 index 000000000..d832fb9ea --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.metadatatemplate; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum MetadataTemplateTypeField implements Valuable { + METADATA_TEMPLATE("metadata_template"); + + private final String value; + + MetadataTemplateTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class MetadataTemplateTypeFieldDeserializer + extends JsonDeserializer> { + + public MetadataTemplateTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(MetadataTemplateTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class MetadataTemplateTypeFieldSerializer + extends JsonSerializer> { + + public MetadataTemplateTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatatemplates/MetadataTemplates.java b/src/main/java/com/box/sdkgen/schemas/metadatatemplates/MetadataTemplates.java new file mode 100644 index 000000000..62b08ca56 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatatemplates/MetadataTemplates.java @@ -0,0 +1,133 @@ +package com.box.sdkgen.schemas.metadatatemplates; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.metadatatemplate.MetadataTemplate; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class MetadataTemplates extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + protected List entries; + + public MetadataTemplates() { + super(); + } + + protected MetadataTemplates(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataTemplates casted = (MetadataTemplates) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "MetadataTemplates{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public MetadataTemplates build() { + return new MetadataTemplates(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/oauth2error/OAuth2Error.java b/src/main/java/com/box/sdkgen/schemas/oauth2error/OAuth2Error.java new file mode 100644 index 000000000..744e3c90d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/oauth2error/OAuth2Error.java @@ -0,0 +1,87 @@ +package com.box.sdkgen.schemas.oauth2error; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class OAuth2Error extends SerializableObject { + + protected String error; + + @JsonProperty("error_description") + protected String errorDescription; + + public OAuth2Error() { + super(); + } + + protected OAuth2Error(Builder builder) { + super(); + this.error = builder.error; + this.errorDescription = builder.errorDescription; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getError() { + return error; + } + + public String getErrorDescription() { + return errorDescription; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OAuth2Error casted = (OAuth2Error) o; + return Objects.equals(error, casted.error) + && Objects.equals(errorDescription, casted.errorDescription); + } + + @Override + public int hashCode() { + return Objects.hash(error, errorDescription); + } + + @Override + public String toString() { + return "OAuth2Error{" + + "error='" + + error + + '\'' + + ", " + + "errorDescription='" + + errorDescription + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String error; + + protected String errorDescription; + + public Builder error(String error) { + this.error = error; + return this; + } + + public Builder errorDescription(String errorDescription) { + this.errorDescription = errorDescription; + return this; + } + + public OAuth2Error build() { + return new OAuth2Error(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/outcome/Outcome.java b/src/main/java/com/box/sdkgen/schemas/outcome/Outcome.java new file mode 100644 index 000000000..8506d0ffd --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/outcome/Outcome.java @@ -0,0 +1,170 @@ +package com.box.sdkgen.schemas.outcome; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.collaboratorvariable.CollaboratorVariable; +import com.box.sdkgen.schemas.completionrulevariable.CompletionRuleVariable; +import com.box.sdkgen.schemas.rolevariable.RoleVariable; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Outcome extends SerializableObject { + + protected final String id; + + protected CollaboratorVariable collaborators; + + @JsonProperty("completion_rule") + protected CompletionRuleVariable completionRule; + + @JsonProperty("file_collaborator_role") + protected RoleVariable fileCollaboratorRole; + + @JsonProperty("task_collaborators") + protected CollaboratorVariable taskCollaborators; + + protected RoleVariable role; + + public Outcome(@JsonProperty("id") String id) { + super(); + this.id = id; + } + + protected Outcome(Builder builder) { + super(); + this.id = builder.id; + this.collaborators = builder.collaborators; + this.completionRule = builder.completionRule; + this.fileCollaboratorRole = builder.fileCollaboratorRole; + this.taskCollaborators = builder.taskCollaborators; + this.role = builder.role; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public CollaboratorVariable getCollaborators() { + return collaborators; + } + + public CompletionRuleVariable getCompletionRule() { + return completionRule; + } + + public RoleVariable getFileCollaboratorRole() { + return fileCollaboratorRole; + } + + public CollaboratorVariable getTaskCollaborators() { + return taskCollaborators; + } + + public RoleVariable getRole() { + return role; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Outcome casted = (Outcome) o; + return Objects.equals(id, casted.id) + && Objects.equals(collaborators, casted.collaborators) + && Objects.equals(completionRule, casted.completionRule) + && Objects.equals(fileCollaboratorRole, casted.fileCollaboratorRole) + && Objects.equals(taskCollaborators, casted.taskCollaborators) + && Objects.equals(role, casted.role); + } + + @Override + public int hashCode() { + return Objects.hash( + id, collaborators, completionRule, fileCollaboratorRole, taskCollaborators, role); + } + + @Override + public String toString() { + return "Outcome{" + + "id='" + + id + + '\'' + + ", " + + "collaborators='" + + collaborators + + '\'' + + ", " + + "completionRule='" + + completionRule + + '\'' + + ", " + + "fileCollaboratorRole='" + + fileCollaboratorRole + + '\'' + + ", " + + "taskCollaborators='" + + taskCollaborators + + '\'' + + ", " + + "role='" + + role + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected CollaboratorVariable collaborators; + + protected CompletionRuleVariable completionRule; + + protected RoleVariable fileCollaboratorRole; + + protected CollaboratorVariable taskCollaborators; + + protected RoleVariable role; + + public Builder(String id) { + super(); + this.id = id; + } + + public Builder collaborators(CollaboratorVariable collaborators) { + this.collaborators = collaborators; + return this; + } + + public Builder completionRule(CompletionRuleVariable completionRule) { + this.completionRule = completionRule; + return this; + } + + public Builder fileCollaboratorRole(RoleVariable fileCollaboratorRole) { + this.fileCollaboratorRole = fileCollaboratorRole; + return this; + } + + public Builder taskCollaborators(CollaboratorVariable taskCollaborators) { + this.taskCollaborators = taskCollaborators; + return this; + } + + public Builder role(RoleVariable role) { + this.role = role; + return this; + } + + public Outcome build() { + return new Outcome(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/postoauth2revoke/PostOAuth2Revoke.java b/src/main/java/com/box/sdkgen/schemas/postoauth2revoke/PostOAuth2Revoke.java new file mode 100644 index 000000000..6573da9f2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/postoauth2revoke/PostOAuth2Revoke.java @@ -0,0 +1,107 @@ +package com.box.sdkgen.schemas.postoauth2revoke; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class PostOAuth2Revoke extends SerializableObject { + + @JsonProperty("client_id") + protected String clientId; + + @JsonProperty("client_secret") + protected String clientSecret; + + protected String token; + + public PostOAuth2Revoke() { + super(); + } + + protected PostOAuth2Revoke(Builder builder) { + super(); + this.clientId = builder.clientId; + this.clientSecret = builder.clientSecret; + this.token = builder.token; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getClientId() { + return clientId; + } + + public String getClientSecret() { + return clientSecret; + } + + public String getToken() { + return token; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PostOAuth2Revoke casted = (PostOAuth2Revoke) o; + return Objects.equals(clientId, casted.clientId) + && Objects.equals(clientSecret, casted.clientSecret) + && Objects.equals(token, casted.token); + } + + @Override + public int hashCode() { + return Objects.hash(clientId, clientSecret, token); + } + + @Override + public String toString() { + return "PostOAuth2Revoke{" + + "clientId='" + + clientId + + '\'' + + ", " + + "clientSecret='" + + clientSecret + + '\'' + + ", " + + "token='" + + token + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String clientId; + + protected String clientSecret; + + protected String token; + + public Builder clientId(String clientId) { + this.clientId = clientId; + return this; + } + + public Builder clientSecret(String clientSecret) { + this.clientSecret = clientSecret; + return this; + } + + public Builder token(String token) { + this.token = token; + return this; + } + + public PostOAuth2Revoke build() { + return new PostOAuth2Revoke(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2Token.java b/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2Token.java new file mode 100644 index 000000000..92efb9937 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2Token.java @@ -0,0 +1,412 @@ +package com.box.sdkgen.schemas.postoauth2token; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class PostOAuth2Token extends SerializableObject { + + @JsonDeserialize( + using = PostOAuth2TokenGrantTypeField.PostOAuth2TokenGrantTypeFieldDeserializer.class) + @JsonSerialize( + using = PostOAuth2TokenGrantTypeField.PostOAuth2TokenGrantTypeFieldSerializer.class) + @JsonProperty("grant_type") + protected final EnumWrapper grantType; + + @JsonProperty("client_id") + protected String clientId; + + @JsonProperty("client_secret") + protected String clientSecret; + + protected String code; + + @JsonProperty("refresh_token") + protected String refreshToken; + + protected String assertion; + + @JsonProperty("subject_token") + protected String subjectToken; + + @JsonDeserialize( + using = + PostOAuth2TokenSubjectTokenTypeField.PostOAuth2TokenSubjectTokenTypeFieldDeserializer + .class) + @JsonSerialize( + using = + PostOAuth2TokenSubjectTokenTypeField.PostOAuth2TokenSubjectTokenTypeFieldSerializer.class) + @JsonProperty("subject_token_type") + protected EnumWrapper subjectTokenType; + + @JsonProperty("actor_token") + protected String actorToken; + + @JsonDeserialize( + using = + PostOAuth2TokenActorTokenTypeField.PostOAuth2TokenActorTokenTypeFieldDeserializer.class) + @JsonSerialize( + using = PostOAuth2TokenActorTokenTypeField.PostOAuth2TokenActorTokenTypeFieldSerializer.class) + @JsonProperty("actor_token_type") + protected EnumWrapper actorTokenType; + + protected String scope; + + protected String resource; + + @JsonDeserialize( + using = + PostOAuth2TokenBoxSubjectTypeField.PostOAuth2TokenBoxSubjectTypeFieldDeserializer.class) + @JsonSerialize( + using = PostOAuth2TokenBoxSubjectTypeField.PostOAuth2TokenBoxSubjectTypeFieldSerializer.class) + @JsonProperty("box_subject_type") + protected EnumWrapper boxSubjectType; + + @JsonProperty("box_subject_id") + protected String boxSubjectId; + + @JsonProperty("box_shared_link") + protected String boxSharedLink; + + public PostOAuth2Token(PostOAuth2TokenGrantTypeField grantType) { + super(); + this.grantType = new EnumWrapper(grantType); + } + + public PostOAuth2Token( + @JsonProperty("grant_type") EnumWrapper grantType) { + super(); + this.grantType = grantType; + } + + protected PostOAuth2Token(Builder builder) { + super(); + this.grantType = builder.grantType; + this.clientId = builder.clientId; + this.clientSecret = builder.clientSecret; + this.code = builder.code; + this.refreshToken = builder.refreshToken; + this.assertion = builder.assertion; + this.subjectToken = builder.subjectToken; + this.subjectTokenType = builder.subjectTokenType; + this.actorToken = builder.actorToken; + this.actorTokenType = builder.actorTokenType; + this.scope = builder.scope; + this.resource = builder.resource; + this.boxSubjectType = builder.boxSubjectType; + this.boxSubjectId = builder.boxSubjectId; + this.boxSharedLink = builder.boxSharedLink; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getGrantType() { + return grantType; + } + + public String getClientId() { + return clientId; + } + + public String getClientSecret() { + return clientSecret; + } + + public String getCode() { + return code; + } + + public String getRefreshToken() { + return refreshToken; + } + + public String getAssertion() { + return assertion; + } + + public String getSubjectToken() { + return subjectToken; + } + + public EnumWrapper getSubjectTokenType() { + return subjectTokenType; + } + + public String getActorToken() { + return actorToken; + } + + public EnumWrapper getActorTokenType() { + return actorTokenType; + } + + public String getScope() { + return scope; + } + + public String getResource() { + return resource; + } + + public EnumWrapper getBoxSubjectType() { + return boxSubjectType; + } + + public String getBoxSubjectId() { + return boxSubjectId; + } + + public String getBoxSharedLink() { + return boxSharedLink; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PostOAuth2Token casted = (PostOAuth2Token) o; + return Objects.equals(grantType, casted.grantType) + && Objects.equals(clientId, casted.clientId) + && Objects.equals(clientSecret, casted.clientSecret) + && Objects.equals(code, casted.code) + && Objects.equals(refreshToken, casted.refreshToken) + && Objects.equals(assertion, casted.assertion) + && Objects.equals(subjectToken, casted.subjectToken) + && Objects.equals(subjectTokenType, casted.subjectTokenType) + && Objects.equals(actorToken, casted.actorToken) + && Objects.equals(actorTokenType, casted.actorTokenType) + && Objects.equals(scope, casted.scope) + && Objects.equals(resource, casted.resource) + && Objects.equals(boxSubjectType, casted.boxSubjectType) + && Objects.equals(boxSubjectId, casted.boxSubjectId) + && Objects.equals(boxSharedLink, casted.boxSharedLink); + } + + @Override + public int hashCode() { + return Objects.hash( + grantType, + clientId, + clientSecret, + code, + refreshToken, + assertion, + subjectToken, + subjectTokenType, + actorToken, + actorTokenType, + scope, + resource, + boxSubjectType, + boxSubjectId, + boxSharedLink); + } + + @Override + public String toString() { + return "PostOAuth2Token{" + + "grantType='" + + grantType + + '\'' + + ", " + + "clientId='" + + clientId + + '\'' + + ", " + + "clientSecret='" + + clientSecret + + '\'' + + ", " + + "code='" + + code + + '\'' + + ", " + + "refreshToken='" + + refreshToken + + '\'' + + ", " + + "assertion='" + + assertion + + '\'' + + ", " + + "subjectToken='" + + subjectToken + + '\'' + + ", " + + "subjectTokenType='" + + subjectTokenType + + '\'' + + ", " + + "actorToken='" + + actorToken + + '\'' + + ", " + + "actorTokenType='" + + actorTokenType + + '\'' + + ", " + + "scope='" + + scope + + '\'' + + ", " + + "resource='" + + resource + + '\'' + + ", " + + "boxSubjectType='" + + boxSubjectType + + '\'' + + ", " + + "boxSubjectId='" + + boxSubjectId + + '\'' + + ", " + + "boxSharedLink='" + + boxSharedLink + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final EnumWrapper grantType; + + protected String clientId; + + protected String clientSecret; + + protected String code; + + protected String refreshToken; + + protected String assertion; + + protected String subjectToken; + + protected EnumWrapper subjectTokenType; + + protected String actorToken; + + protected EnumWrapper actorTokenType; + + protected String scope; + + protected String resource; + + protected EnumWrapper boxSubjectType; + + protected String boxSubjectId; + + protected String boxSharedLink; + + public Builder(PostOAuth2TokenGrantTypeField grantType) { + super(); + this.grantType = new EnumWrapper(grantType); + } + + public Builder(EnumWrapper grantType) { + super(); + this.grantType = grantType; + } + + public Builder clientId(String clientId) { + this.clientId = clientId; + return this; + } + + public Builder clientSecret(String clientSecret) { + this.clientSecret = clientSecret; + return this; + } + + public Builder code(String code) { + this.code = code; + return this; + } + + public Builder refreshToken(String refreshToken) { + this.refreshToken = refreshToken; + return this; + } + + public Builder assertion(String assertion) { + this.assertion = assertion; + return this; + } + + public Builder subjectToken(String subjectToken) { + this.subjectToken = subjectToken; + return this; + } + + public Builder subjectTokenType(PostOAuth2TokenSubjectTokenTypeField subjectTokenType) { + this.subjectTokenType = + new EnumWrapper(subjectTokenType); + return this; + } + + public Builder subjectTokenType( + EnumWrapper subjectTokenType) { + this.subjectTokenType = subjectTokenType; + return this; + } + + public Builder actorToken(String actorToken) { + this.actorToken = actorToken; + return this; + } + + public Builder actorTokenType(PostOAuth2TokenActorTokenTypeField actorTokenType) { + this.actorTokenType = new EnumWrapper(actorTokenType); + return this; + } + + public Builder actorTokenType(EnumWrapper actorTokenType) { + this.actorTokenType = actorTokenType; + return this; + } + + public Builder scope(String scope) { + this.scope = scope; + return this; + } + + public Builder resource(String resource) { + this.resource = resource; + return this; + } + + public Builder boxSubjectType(PostOAuth2TokenBoxSubjectTypeField boxSubjectType) { + this.boxSubjectType = new EnumWrapper(boxSubjectType); + return this; + } + + public Builder boxSubjectType(EnumWrapper boxSubjectType) { + this.boxSubjectType = boxSubjectType; + return this; + } + + public Builder boxSubjectId(String boxSubjectId) { + this.boxSubjectId = boxSubjectId; + return this; + } + + public Builder boxSharedLink(String boxSharedLink) { + this.boxSharedLink = boxSharedLink; + return this; + } + + public PostOAuth2Token build() { + return new PostOAuth2Token(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenActorTokenTypeField.java b/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenActorTokenTypeField.java new file mode 100644 index 000000000..7f05be804 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenActorTokenTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.postoauth2token; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum PostOAuth2TokenActorTokenTypeField implements Valuable { + URN_IETF_PARAMS_OAUTH_TOKEN_TYPE_ID_TOKEN("urn:ietf:params:oauth:token-type:id_token"); + + private final String value; + + PostOAuth2TokenActorTokenTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class PostOAuth2TokenActorTokenTypeFieldDeserializer + extends JsonDeserializer> { + + public PostOAuth2TokenActorTokenTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(PostOAuth2TokenActorTokenTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class PostOAuth2TokenActorTokenTypeFieldSerializer + extends JsonSerializer> { + + public PostOAuth2TokenActorTokenTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenBoxSubjectTypeField.java b/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenBoxSubjectTypeField.java new file mode 100644 index 000000000..90d1f66f8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenBoxSubjectTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.postoauth2token; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum PostOAuth2TokenBoxSubjectTypeField implements Valuable { + ENTERPRISE("enterprise"), + USER("user"); + + private final String value; + + PostOAuth2TokenBoxSubjectTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class PostOAuth2TokenBoxSubjectTypeFieldDeserializer + extends JsonDeserializer> { + + public PostOAuth2TokenBoxSubjectTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(PostOAuth2TokenBoxSubjectTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class PostOAuth2TokenBoxSubjectTypeFieldSerializer + extends JsonSerializer> { + + public PostOAuth2TokenBoxSubjectTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenGrantTypeField.java b/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenGrantTypeField.java new file mode 100644 index 000000000..3a7b4d0dc --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenGrantTypeField.java @@ -0,0 +1,67 @@ +package com.box.sdkgen.schemas.postoauth2token; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum PostOAuth2TokenGrantTypeField implements Valuable { + AUTHORIZATION_CODE("authorization_code"), + REFRESH_TOKEN("refresh_token"), + CLIENT_CREDENTIALS("client_credentials"), + URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER("urn:ietf:params:oauth:grant-type:jwt-bearer"), + URN_IETF_PARAMS_OAUTH_GRANT_TYPE_TOKEN_EXCHANGE( + "urn:ietf:params:oauth:grant-type:token-exchange"); + + private final String value; + + PostOAuth2TokenGrantTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class PostOAuth2TokenGrantTypeFieldDeserializer + extends JsonDeserializer> { + + public PostOAuth2TokenGrantTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(PostOAuth2TokenGrantTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class PostOAuth2TokenGrantTypeFieldSerializer + extends JsonSerializer> { + + public PostOAuth2TokenGrantTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenSubjectTokenTypeField.java b/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenSubjectTokenTypeField.java new file mode 100644 index 000000000..59a03b0bc --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenSubjectTokenTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.postoauth2token; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum PostOAuth2TokenSubjectTokenTypeField implements Valuable { + URN_IETF_PARAMS_OAUTH_TOKEN_TYPE_ACCESS_TOKEN("urn:ietf:params:oauth:token-type:access_token"); + + private final String value; + + PostOAuth2TokenSubjectTokenTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class PostOAuth2TokenSubjectTokenTypeFieldDeserializer + extends JsonDeserializer> { + + public PostOAuth2TokenSubjectTokenTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(PostOAuth2TokenSubjectTokenTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class PostOAuth2TokenSubjectTokenTypeFieldSerializer + extends JsonSerializer> { + + public PostOAuth2TokenSubjectTokenTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/postoauth2tokenrefreshaccesstoken/PostOAuth2TokenRefreshAccessToken.java b/src/main/java/com/box/sdkgen/schemas/postoauth2tokenrefreshaccesstoken/PostOAuth2TokenRefreshAccessToken.java new file mode 100644 index 000000000..c871df9c1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/postoauth2tokenrefreshaccesstoken/PostOAuth2TokenRefreshAccessToken.java @@ -0,0 +1,149 @@ +package com.box.sdkgen.schemas.postoauth2tokenrefreshaccesstoken; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class PostOAuth2TokenRefreshAccessToken extends SerializableObject { + + @JsonDeserialize( + using = + PostOAuth2TokenRefreshAccessTokenGrantTypeField + .PostOAuth2TokenRefreshAccessTokenGrantTypeFieldDeserializer.class) + @JsonSerialize( + using = + PostOAuth2TokenRefreshAccessTokenGrantTypeField + .PostOAuth2TokenRefreshAccessTokenGrantTypeFieldSerializer.class) + @JsonProperty("grant_type") + protected EnumWrapper grantType; + + @JsonProperty("client_id") + protected final String clientId; + + @JsonProperty("client_secret") + protected final String clientSecret; + + @JsonProperty("refresh_token") + protected final String refreshToken; + + public PostOAuth2TokenRefreshAccessToken( + @JsonProperty("client_id") String clientId, + @JsonProperty("client_secret") String clientSecret, + @JsonProperty("refresh_token") String refreshToken) { + super(); + this.clientId = clientId; + this.clientSecret = clientSecret; + this.refreshToken = refreshToken; + this.grantType = + new EnumWrapper( + PostOAuth2TokenRefreshAccessTokenGrantTypeField.REFRESH_TOKEN); + } + + protected PostOAuth2TokenRefreshAccessToken(Builder builder) { + super(); + this.grantType = builder.grantType; + this.clientId = builder.clientId; + this.clientSecret = builder.clientSecret; + this.refreshToken = builder.refreshToken; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getGrantType() { + return grantType; + } + + public String getClientId() { + return clientId; + } + + public String getClientSecret() { + return clientSecret; + } + + public String getRefreshToken() { + return refreshToken; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PostOAuth2TokenRefreshAccessToken casted = (PostOAuth2TokenRefreshAccessToken) o; + return Objects.equals(grantType, casted.grantType) + && Objects.equals(clientId, casted.clientId) + && Objects.equals(clientSecret, casted.clientSecret) + && Objects.equals(refreshToken, casted.refreshToken); + } + + @Override + public int hashCode() { + return Objects.hash(grantType, clientId, clientSecret, refreshToken); + } + + @Override + public String toString() { + return "PostOAuth2TokenRefreshAccessToken{" + + "grantType='" + + grantType + + '\'' + + ", " + + "clientId='" + + clientId + + '\'' + + ", " + + "clientSecret='" + + clientSecret + + '\'' + + ", " + + "refreshToken='" + + refreshToken + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper grantType; + + protected final String clientId; + + protected final String clientSecret; + + protected final String refreshToken; + + public Builder(String clientId, String clientSecret, String refreshToken) { + super(); + this.clientId = clientId; + this.clientSecret = clientSecret; + this.refreshToken = refreshToken; + this.grantType = + new EnumWrapper( + PostOAuth2TokenRefreshAccessTokenGrantTypeField.REFRESH_TOKEN); + } + + public Builder grantType(PostOAuth2TokenRefreshAccessTokenGrantTypeField grantType) { + this.grantType = new EnumWrapper(grantType); + return this; + } + + public Builder grantType( + EnumWrapper grantType) { + this.grantType = grantType; + return this; + } + + public PostOAuth2TokenRefreshAccessToken build() { + return new PostOAuth2TokenRefreshAccessToken(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/postoauth2tokenrefreshaccesstoken/PostOAuth2TokenRefreshAccessTokenGrantTypeField.java b/src/main/java/com/box/sdkgen/schemas/postoauth2tokenrefreshaccesstoken/PostOAuth2TokenRefreshAccessTokenGrantTypeField.java new file mode 100644 index 000000000..8b541d339 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/postoauth2tokenrefreshaccesstoken/PostOAuth2TokenRefreshAccessTokenGrantTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.postoauth2tokenrefreshaccesstoken; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum PostOAuth2TokenRefreshAccessTokenGrantTypeField implements Valuable { + REFRESH_TOKEN("refresh_token"); + + private final String value; + + PostOAuth2TokenRefreshAccessTokenGrantTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class PostOAuth2TokenRefreshAccessTokenGrantTypeFieldDeserializer + extends JsonDeserializer> { + + public PostOAuth2TokenRefreshAccessTokenGrantTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(PostOAuth2TokenRefreshAccessTokenGrantTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class PostOAuth2TokenRefreshAccessTokenGrantTypeFieldSerializer + extends JsonSerializer> { + + public PostOAuth2TokenRefreshAccessTokenGrantTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/realtimeserver/RealtimeServer.java b/src/main/java/com/box/sdkgen/schemas/realtimeserver/RealtimeServer.java new file mode 100644 index 000000000..8aa87dbf1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/realtimeserver/RealtimeServer.java @@ -0,0 +1,145 @@ +package com.box.sdkgen.schemas.realtimeserver; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class RealtimeServer extends SerializableObject { + + protected String type; + + protected String url; + + protected String ttl; + + @JsonProperty("max_retries") + protected String maxRetries; + + @JsonProperty("retry_timeout") + protected Long retryTimeout; + + public RealtimeServer() { + super(); + } + + protected RealtimeServer(Builder builder) { + super(); + this.type = builder.type; + this.url = builder.url; + this.ttl = builder.ttl; + this.maxRetries = builder.maxRetries; + this.retryTimeout = builder.retryTimeout; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getType() { + return type; + } + + public String getUrl() { + return url; + } + + public String getTtl() { + return ttl; + } + + public String getMaxRetries() { + return maxRetries; + } + + public Long getRetryTimeout() { + return retryTimeout; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RealtimeServer casted = (RealtimeServer) o; + return Objects.equals(type, casted.type) + && Objects.equals(url, casted.url) + && Objects.equals(ttl, casted.ttl) + && Objects.equals(maxRetries, casted.maxRetries) + && Objects.equals(retryTimeout, casted.retryTimeout); + } + + @Override + public int hashCode() { + return Objects.hash(type, url, ttl, maxRetries, retryTimeout); + } + + @Override + public String toString() { + return "RealtimeServer{" + + "type='" + + type + + '\'' + + ", " + + "url='" + + url + + '\'' + + ", " + + "ttl='" + + ttl + + '\'' + + ", " + + "maxRetries='" + + maxRetries + + '\'' + + ", " + + "retryTimeout='" + + retryTimeout + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String type; + + protected String url; + + protected String ttl; + + protected String maxRetries; + + protected Long retryTimeout; + + public Builder type(String type) { + this.type = type; + return this; + } + + public Builder url(String url) { + this.url = url; + return this; + } + + public Builder ttl(String ttl) { + this.ttl = ttl; + return this; + } + + public Builder maxRetries(String maxRetries) { + this.maxRetries = maxRetries; + return this; + } + + public Builder retryTimeout(Long retryTimeout) { + this.retryTimeout = retryTimeout; + return this; + } + + public RealtimeServer build() { + return new RealtimeServer(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/realtimeservers/RealtimeServers.java b/src/main/java/com/box/sdkgen/schemas/realtimeservers/RealtimeServers.java new file mode 100644 index 000000000..db63d4db6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/realtimeservers/RealtimeServers.java @@ -0,0 +1,88 @@ +package com.box.sdkgen.schemas.realtimeservers; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.realtimeserver.RealtimeServer; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class RealtimeServers extends SerializableObject { + + @JsonProperty("chunk_size") + protected Long chunkSize; + + protected List entries; + + public RealtimeServers() { + super(); + } + + protected RealtimeServers(Builder builder) { + super(); + this.chunkSize = builder.chunkSize; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getChunkSize() { + return chunkSize; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RealtimeServers casted = (RealtimeServers) o; + return Objects.equals(chunkSize, casted.chunkSize) && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(chunkSize, entries); + } + + @Override + public String toString() { + return "RealtimeServers{" + + "chunkSize='" + + chunkSize + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long chunkSize; + + protected List entries; + + public Builder chunkSize(Long chunkSize) { + this.chunkSize = chunkSize; + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public RealtimeServers build() { + return new RealtimeServers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/recentitem/RecentItem.java b/src/main/java/com/box/sdkgen/schemas/recentitem/RecentItem.java new file mode 100644 index 000000000..c5bba5115 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/recentitem/RecentItem.java @@ -0,0 +1,181 @@ +package com.box.sdkgen.schemas.recentitem; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.filefullorfolderfullorweblink.FileFullOrFolderFullOrWebLink; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.weblink.WebLink; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class RecentItem extends SerializableObject { + + protected String type; + + protected FileFullOrFolderFullOrWebLink item; + + @JsonDeserialize( + using = RecentItemInteractionTypeField.RecentItemInteractionTypeFieldDeserializer.class) + @JsonSerialize( + using = RecentItemInteractionTypeField.RecentItemInteractionTypeFieldSerializer.class) + @JsonProperty("interaction_type") + protected EnumWrapper interactionType; + + @JsonProperty("interacted_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date interactedAt; + + @JsonProperty("interaction_shared_link") + protected String interactionSharedLink; + + public RecentItem() { + super(); + } + + protected RecentItem(Builder builder) { + super(); + this.type = builder.type; + this.item = builder.item; + this.interactionType = builder.interactionType; + this.interactedAt = builder.interactedAt; + this.interactionSharedLink = builder.interactionSharedLink; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getType() { + return type; + } + + public FileFullOrFolderFullOrWebLink getItem() { + return item; + } + + public EnumWrapper getInteractionType() { + return interactionType; + } + + public Date getInteractedAt() { + return interactedAt; + } + + public String getInteractionSharedLink() { + return interactionSharedLink; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RecentItem casted = (RecentItem) o; + return Objects.equals(type, casted.type) + && Objects.equals(item, casted.item) + && Objects.equals(interactionType, casted.interactionType) + && Objects.equals(interactedAt, casted.interactedAt) + && Objects.equals(interactionSharedLink, casted.interactionSharedLink); + } + + @Override + public int hashCode() { + return Objects.hash(type, item, interactionType, interactedAt, interactionSharedLink); + } + + @Override + public String toString() { + return "RecentItem{" + + "type='" + + type + + '\'' + + ", " + + "item='" + + item + + '\'' + + ", " + + "interactionType='" + + interactionType + + '\'' + + ", " + + "interactedAt='" + + interactedAt + + '\'' + + ", " + + "interactionSharedLink='" + + interactionSharedLink + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String type; + + protected FileFullOrFolderFullOrWebLink item; + + protected EnumWrapper interactionType; + + protected Date interactedAt; + + protected String interactionSharedLink; + + public Builder type(String type) { + this.type = type; + return this; + } + + public Builder item(FileFull item) { + this.item = new FileFullOrFolderFullOrWebLink(item); + return this; + } + + public Builder item(FolderFull item) { + this.item = new FileFullOrFolderFullOrWebLink(item); + return this; + } + + public Builder item(WebLink item) { + this.item = new FileFullOrFolderFullOrWebLink(item); + return this; + } + + public Builder item(FileFullOrFolderFullOrWebLink item) { + this.item = item; + return this; + } + + public Builder interactionType(RecentItemInteractionTypeField interactionType) { + this.interactionType = new EnumWrapper(interactionType); + return this; + } + + public Builder interactionType(EnumWrapper interactionType) { + this.interactionType = interactionType; + return this; + } + + public Builder interactedAt(Date interactedAt) { + this.interactedAt = interactedAt; + return this; + } + + public Builder interactionSharedLink(String interactionSharedLink) { + this.interactionSharedLink = interactionSharedLink; + return this; + } + + public RecentItem build() { + return new RecentItem(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/recentitem/RecentItemInteractionTypeField.java b/src/main/java/com/box/sdkgen/schemas/recentitem/RecentItemInteractionTypeField.java new file mode 100644 index 000000000..c0491cf1e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/recentitem/RecentItemInteractionTypeField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.schemas.recentitem; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum RecentItemInteractionTypeField implements Valuable { + ITEM_PREVIEW("item_preview"), + ITEM_UPLOAD("item_upload"), + ITEM_COMMENT("item_comment"), + ITEM_OPEN("item_open"), + ITEM_MODIFY("item_modify"); + + private final String value; + + RecentItemInteractionTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class RecentItemInteractionTypeFieldDeserializer + extends JsonDeserializer> { + + public RecentItemInteractionTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(RecentItemInteractionTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class RecentItemInteractionTypeFieldSerializer + extends JsonSerializer> { + + public RecentItemInteractionTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/recentitems/RecentItems.java b/src/main/java/com/box/sdkgen/schemas/recentitems/RecentItems.java new file mode 100644 index 000000000..88770a49c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/recentitems/RecentItems.java @@ -0,0 +1,133 @@ +package com.box.sdkgen.schemas.recentitems; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.recentitem.RecentItem; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class RecentItems extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + protected List entries; + + public RecentItems() { + super(); + } + + protected RecentItems(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RecentItems casted = (RecentItems) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "RecentItems{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public RecentItems build() { + return new RecentItems(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicies/RetentionPolicies.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicies/RetentionPolicies.java new file mode 100644 index 000000000..92317b265 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicies/RetentionPolicies.java @@ -0,0 +1,111 @@ +package com.box.sdkgen.schemas.retentionpolicies; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.retentionpolicy.RetentionPolicy; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class RetentionPolicies extends SerializableObject { + + protected List entries; + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + public RetentionPolicies() { + super(); + } + + protected RetentionPolicies(Builder builder) { + super(); + this.entries = builder.entries; + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getEntries() { + return entries; + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RetentionPolicies casted = (RetentionPolicies) o; + return Objects.equals(entries, casted.entries) + && Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker); + } + + @Override + public int hashCode() { + return Objects.hash(entries, limit, nextMarker); + } + + @Override + public String toString() { + return "RetentionPolicies{" + + "entries='" + + entries + + '\'' + + ", " + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List entries; + + protected Long limit; + + protected String nextMarker; + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public RetentionPolicies build() { + return new RetentionPolicies(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicy.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicy.java new file mode 100644 index 000000000..16ad03198 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicy.java @@ -0,0 +1,386 @@ +package com.box.sdkgen.schemas.retentionpolicy; + +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.retentionpolicybase.RetentionPolicyBaseTypeField; +import com.box.sdkgen.schemas.retentionpolicymini.RetentionPolicyMini; +import com.box.sdkgen.schemas.retentionpolicymini.RetentionPolicyMiniDispositionActionField; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class RetentionPolicy extends RetentionPolicyMini { + + protected String description; + + @JsonDeserialize( + using = RetentionPolicyPolicyTypeField.RetentionPolicyPolicyTypeFieldDeserializer.class) + @JsonSerialize( + using = RetentionPolicyPolicyTypeField.RetentionPolicyPolicyTypeFieldSerializer.class) + @JsonProperty("policy_type") + protected EnumWrapper policyType; + + @JsonDeserialize( + using = RetentionPolicyRetentionTypeField.RetentionPolicyRetentionTypeFieldDeserializer.class) + @JsonSerialize( + using = RetentionPolicyRetentionTypeField.RetentionPolicyRetentionTypeFieldSerializer.class) + @JsonProperty("retention_type") + protected EnumWrapper retentionType; + + @JsonDeserialize(using = RetentionPolicyStatusField.RetentionPolicyStatusFieldDeserializer.class) + @JsonSerialize(using = RetentionPolicyStatusField.RetentionPolicyStatusFieldSerializer.class) + protected EnumWrapper status; + + @JsonProperty("created_by") + protected UserMini createdBy; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date modifiedAt; + + @JsonProperty("can_owner_extend_retention") + protected Boolean canOwnerExtendRetention; + + @JsonProperty("are_owners_notified") + protected Boolean areOwnersNotified; + + @JsonProperty("custom_notification_recipients") + protected List customNotificationRecipients; + + @JsonProperty("assignment_counts") + protected RetentionPolicyAssignmentCountsField assignmentCounts; + + public RetentionPolicy(@JsonProperty("id") String id) { + super(id); + } + + protected RetentionPolicy(Builder builder) { + super(builder); + this.description = builder.description; + this.policyType = builder.policyType; + this.retentionType = builder.retentionType; + this.status = builder.status; + this.createdBy = builder.createdBy; + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + this.canOwnerExtendRetention = builder.canOwnerExtendRetention; + this.areOwnersNotified = builder.areOwnersNotified; + this.customNotificationRecipients = builder.customNotificationRecipients; + this.assignmentCounts = builder.assignmentCounts; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getDescription() { + return description; + } + + public EnumWrapper getPolicyType() { + return policyType; + } + + public EnumWrapper getRetentionType() { + return retentionType; + } + + public EnumWrapper getStatus() { + return status; + } + + public UserMini getCreatedBy() { + return createdBy; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + public Boolean getCanOwnerExtendRetention() { + return canOwnerExtendRetention; + } + + public Boolean getAreOwnersNotified() { + return areOwnersNotified; + } + + public List getCustomNotificationRecipients() { + return customNotificationRecipients; + } + + public RetentionPolicyAssignmentCountsField getAssignmentCounts() { + return assignmentCounts; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RetentionPolicy casted = (RetentionPolicy) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(policyName, casted.policyName) + && Objects.equals(retentionLength, casted.retentionLength) + && Objects.equals(dispositionAction, casted.dispositionAction) + && Objects.equals(description, casted.description) + && Objects.equals(policyType, casted.policyType) + && Objects.equals(retentionType, casted.retentionType) + && Objects.equals(status, casted.status) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt) + && Objects.equals(canOwnerExtendRetention, casted.canOwnerExtendRetention) + && Objects.equals(areOwnersNotified, casted.areOwnersNotified) + && Objects.equals(customNotificationRecipients, casted.customNotificationRecipients) + && Objects.equals(assignmentCounts, casted.assignmentCounts); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + type, + policyName, + retentionLength, + dispositionAction, + description, + policyType, + retentionType, + status, + createdBy, + createdAt, + modifiedAt, + canOwnerExtendRetention, + areOwnersNotified, + customNotificationRecipients, + assignmentCounts); + } + + @Override + public String toString() { + return "RetentionPolicy{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "policyName='" + + policyName + + '\'' + + ", " + + "retentionLength='" + + retentionLength + + '\'' + + ", " + + "dispositionAction='" + + dispositionAction + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "policyType='" + + policyType + + '\'' + + ", " + + "retentionType='" + + retentionType + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + ", " + + "canOwnerExtendRetention='" + + canOwnerExtendRetention + + '\'' + + ", " + + "areOwnersNotified='" + + areOwnersNotified + + '\'' + + ", " + + "customNotificationRecipients='" + + customNotificationRecipients + + '\'' + + ", " + + "assignmentCounts='" + + assignmentCounts + + '\'' + + "}"; + } + + public static class Builder extends RetentionPolicyMini.Builder { + + protected String description; + + protected EnumWrapper policyType; + + protected EnumWrapper retentionType; + + protected EnumWrapper status; + + protected UserMini createdBy; + + protected Date createdAt; + + protected Date modifiedAt; + + protected Boolean canOwnerExtendRetention; + + protected Boolean areOwnersNotified; + + protected List customNotificationRecipients; + + protected RetentionPolicyAssignmentCountsField assignmentCounts; + + public Builder(String id) { + super(id); + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder policyType(RetentionPolicyPolicyTypeField policyType) { + this.policyType = new EnumWrapper(policyType); + return this; + } + + public Builder policyType(EnumWrapper policyType) { + this.policyType = policyType; + return this; + } + + public Builder retentionType(RetentionPolicyRetentionTypeField retentionType) { + this.retentionType = new EnumWrapper(retentionType); + return this; + } + + public Builder retentionType(EnumWrapper retentionType) { + this.retentionType = retentionType; + return this; + } + + public Builder status(RetentionPolicyStatusField status) { + this.status = new EnumWrapper(status); + return this; + } + + public Builder status(EnumWrapper status) { + this.status = status; + return this; + } + + public Builder createdBy(UserMini createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + public Builder canOwnerExtendRetention(Boolean canOwnerExtendRetention) { + this.canOwnerExtendRetention = canOwnerExtendRetention; + return this; + } + + public Builder areOwnersNotified(Boolean areOwnersNotified) { + this.areOwnersNotified = areOwnersNotified; + return this; + } + + public Builder customNotificationRecipients(List customNotificationRecipients) { + this.customNotificationRecipients = customNotificationRecipients; + return this; + } + + public Builder assignmentCounts(RetentionPolicyAssignmentCountsField assignmentCounts) { + this.assignmentCounts = assignmentCounts; + return this; + } + + @Override + public Builder type(RetentionPolicyBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder policyName(String policyName) { + this.policyName = policyName; + return this; + } + + @Override + public Builder retentionLength(String retentionLength) { + this.retentionLength = retentionLength; + return this; + } + + @Override + public Builder dispositionAction(RetentionPolicyMiniDispositionActionField dispositionAction) { + this.dispositionAction = + new EnumWrapper(dispositionAction); + return this; + } + + @Override + public Builder dispositionAction( + EnumWrapper dispositionAction) { + this.dispositionAction = dispositionAction; + return this; + } + + public RetentionPolicy build() { + return new RetentionPolicy(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyAssignmentCountsField.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyAssignmentCountsField.java new file mode 100644 index 000000000..5dba56a1e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyAssignmentCountsField.java @@ -0,0 +1,106 @@ +package com.box.sdkgen.schemas.retentionpolicy; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class RetentionPolicyAssignmentCountsField extends SerializableObject { + + protected Long enterprise; + + protected Long folder; + + @JsonProperty("metadata_template") + protected Long metadataTemplate; + + public RetentionPolicyAssignmentCountsField() { + super(); + } + + protected RetentionPolicyAssignmentCountsField(Builder builder) { + super(); + this.enterprise = builder.enterprise; + this.folder = builder.folder; + this.metadataTemplate = builder.metadataTemplate; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getEnterprise() { + return enterprise; + } + + public Long getFolder() { + return folder; + } + + public Long getMetadataTemplate() { + return metadataTemplate; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RetentionPolicyAssignmentCountsField casted = (RetentionPolicyAssignmentCountsField) o; + return Objects.equals(enterprise, casted.enterprise) + && Objects.equals(folder, casted.folder) + && Objects.equals(metadataTemplate, casted.metadataTemplate); + } + + @Override + public int hashCode() { + return Objects.hash(enterprise, folder, metadataTemplate); + } + + @Override + public String toString() { + return "RetentionPolicyAssignmentCountsField{" + + "enterprise='" + + enterprise + + '\'' + + ", " + + "folder='" + + folder + + '\'' + + ", " + + "metadataTemplate='" + + metadataTemplate + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long enterprise; + + protected Long folder; + + protected Long metadataTemplate; + + public Builder enterprise(Long enterprise) { + this.enterprise = enterprise; + return this; + } + + public Builder folder(Long folder) { + this.folder = folder; + return this; + } + + public Builder metadataTemplate(Long metadataTemplate) { + this.metadataTemplate = metadataTemplate; + return this; + } + + public RetentionPolicyAssignmentCountsField build() { + return new RetentionPolicyAssignmentCountsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyPolicyTypeField.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyPolicyTypeField.java new file mode 100644 index 000000000..df4df7491 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyPolicyTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.retentionpolicy; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum RetentionPolicyPolicyTypeField implements Valuable { + FINITE("finite"), + INDEFINITE("indefinite"); + + private final String value; + + RetentionPolicyPolicyTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class RetentionPolicyPolicyTypeFieldDeserializer + extends JsonDeserializer> { + + public RetentionPolicyPolicyTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(RetentionPolicyPolicyTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class RetentionPolicyPolicyTypeFieldSerializer + extends JsonSerializer> { + + public RetentionPolicyPolicyTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyRetentionTypeField.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyRetentionTypeField.java new file mode 100644 index 000000000..422f61f3e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyRetentionTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.retentionpolicy; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum RetentionPolicyRetentionTypeField implements Valuable { + MODIFIABLE("modifiable"), + NON_MODIFIABLE("non_modifiable"); + + private final String value; + + RetentionPolicyRetentionTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class RetentionPolicyRetentionTypeFieldDeserializer + extends JsonDeserializer> { + + public RetentionPolicyRetentionTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(RetentionPolicyRetentionTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class RetentionPolicyRetentionTypeFieldSerializer + extends JsonSerializer> { + + public RetentionPolicyRetentionTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyStatusField.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyStatusField.java new file mode 100644 index 000000000..bf8b68785 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyStatusField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.retentionpolicy; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum RetentionPolicyStatusField implements Valuable { + ACTIVE("active"), + RETIRED("retired"); + + private final String value; + + RetentionPolicyStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class RetentionPolicyStatusFieldDeserializer + extends JsonDeserializer> { + + public RetentionPolicyStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(RetentionPolicyStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class RetentionPolicyStatusFieldSerializer + extends JsonSerializer> { + + public RetentionPolicyStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignment.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignment.java new file mode 100644 index 000000000..fc55f70f7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignment.java @@ -0,0 +1,244 @@ +package com.box.sdkgen.schemas.retentionpolicyassignment; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.retentionpolicymini.RetentionPolicyMini; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class RetentionPolicyAssignment extends SerializableObject { + + protected final String id; + + @JsonDeserialize( + using = + RetentionPolicyAssignmentTypeField.RetentionPolicyAssignmentTypeFieldDeserializer.class) + @JsonSerialize( + using = RetentionPolicyAssignmentTypeField.RetentionPolicyAssignmentTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("retention_policy") + protected RetentionPolicyMini retentionPolicy; + + @JsonProperty("assigned_to") + protected RetentionPolicyAssignmentAssignedToField assignedTo; + + @JsonProperty("filter_fields") + @Nullable + protected List filterFields; + + @JsonProperty("assigned_by") + protected UserMini assignedBy; + + @JsonProperty("assigned_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date assignedAt; + + @JsonProperty("start_date_field") + protected String startDateField; + + public RetentionPolicyAssignment(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + RetentionPolicyAssignmentTypeField.RETENTION_POLICY_ASSIGNMENT); + } + + protected RetentionPolicyAssignment(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.retentionPolicy = builder.retentionPolicy; + this.assignedTo = builder.assignedTo; + this.filterFields = builder.filterFields; + this.assignedBy = builder.assignedBy; + this.assignedAt = builder.assignedAt; + this.startDateField = builder.startDateField; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public RetentionPolicyMini getRetentionPolicy() { + return retentionPolicy; + } + + public RetentionPolicyAssignmentAssignedToField getAssignedTo() { + return assignedTo; + } + + public List getFilterFields() { + return filterFields; + } + + public UserMini getAssignedBy() { + return assignedBy; + } + + public Date getAssignedAt() { + return assignedAt; + } + + public String getStartDateField() { + return startDateField; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RetentionPolicyAssignment casted = (RetentionPolicyAssignment) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(retentionPolicy, casted.retentionPolicy) + && Objects.equals(assignedTo, casted.assignedTo) + && Objects.equals(filterFields, casted.filterFields) + && Objects.equals(assignedBy, casted.assignedBy) + && Objects.equals(assignedAt, casted.assignedAt) + && Objects.equals(startDateField, casted.startDateField); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + type, + retentionPolicy, + assignedTo, + filterFields, + assignedBy, + assignedAt, + startDateField); + } + + @Override + public String toString() { + return "RetentionPolicyAssignment{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "retentionPolicy='" + + retentionPolicy + + '\'' + + ", " + + "assignedTo='" + + assignedTo + + '\'' + + ", " + + "filterFields='" + + filterFields + + '\'' + + ", " + + "assignedBy='" + + assignedBy + + '\'' + + ", " + + "assignedAt='" + + assignedAt + + '\'' + + ", " + + "startDateField='" + + startDateField + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + protected RetentionPolicyMini retentionPolicy; + + protected RetentionPolicyAssignmentAssignedToField assignedTo; + + protected List filterFields; + + protected UserMini assignedBy; + + protected Date assignedAt; + + protected String startDateField; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + RetentionPolicyAssignmentTypeField.RETENTION_POLICY_ASSIGNMENT); + } + + public Builder type(RetentionPolicyAssignmentTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder retentionPolicy(RetentionPolicyMini retentionPolicy) { + this.retentionPolicy = retentionPolicy; + return this; + } + + public Builder assignedTo(RetentionPolicyAssignmentAssignedToField assignedTo) { + this.assignedTo = assignedTo; + return this; + } + + public Builder filterFields(List filterFields) { + this.filterFields = filterFields; + this.markNullableFieldAsSet("filter_fields"); + return this; + } + + public Builder assignedBy(UserMini assignedBy) { + this.assignedBy = assignedBy; + return this; + } + + public Builder assignedAt(Date assignedAt) { + this.assignedAt = assignedAt; + return this; + } + + public Builder startDateField(String startDateField) { + this.startDateField = startDateField; + return this; + } + + public RetentionPolicyAssignment build() { + return new RetentionPolicyAssignment(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentAssignedToField.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentAssignedToField.java new file mode 100644 index 000000000..207f3bbe7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentAssignedToField.java @@ -0,0 +1,102 @@ +package com.box.sdkgen.schemas.retentionpolicyassignment; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class RetentionPolicyAssignmentAssignedToField extends SerializableObject { + + @Nullable protected String id; + + @JsonDeserialize( + using = + RetentionPolicyAssignmentAssignedToTypeField + .RetentionPolicyAssignmentAssignedToTypeFieldDeserializer.class) + @JsonSerialize( + using = + RetentionPolicyAssignmentAssignedToTypeField + .RetentionPolicyAssignmentAssignedToTypeFieldSerializer.class) + protected EnumWrapper type; + + public RetentionPolicyAssignmentAssignedToField() { + super(); + } + + protected RetentionPolicyAssignmentAssignedToField(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RetentionPolicyAssignmentAssignedToField casted = (RetentionPolicyAssignmentAssignedToField) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "RetentionPolicyAssignmentAssignedToField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + public Builder id(String id) { + this.id = id; + this.markNullableFieldAsSet("id"); + return this; + } + + public Builder type(RetentionPolicyAssignmentAssignedToTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public RetentionPolicyAssignmentAssignedToField build() { + return new RetentionPolicyAssignmentAssignedToField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentAssignedToTypeField.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentAssignedToTypeField.java new file mode 100644 index 000000000..a62317795 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentAssignedToTypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.retentionpolicyassignment; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum RetentionPolicyAssignmentAssignedToTypeField implements Valuable { + FOLDER("folder"), + ENTERPRISE("enterprise"), + METADATA_TEMPLATE("metadata_template"); + + private final String value; + + RetentionPolicyAssignmentAssignedToTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class RetentionPolicyAssignmentAssignedToTypeFieldDeserializer + extends JsonDeserializer> { + + public RetentionPolicyAssignmentAssignedToTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(RetentionPolicyAssignmentAssignedToTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class RetentionPolicyAssignmentAssignedToTypeFieldSerializer + extends JsonSerializer> { + + public RetentionPolicyAssignmentAssignedToTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentFilterFieldsField.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentFilterFieldsField.java new file mode 100644 index 000000000..37bf6e80a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentFilterFieldsField.java @@ -0,0 +1,88 @@ +package com.box.sdkgen.schemas.retentionpolicyassignment; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class RetentionPolicyAssignmentFilterFieldsField extends SerializableObject { + + @Nullable protected String field; + + @Nullable protected String value; + + public RetentionPolicyAssignmentFilterFieldsField() { + super(); + } + + protected RetentionPolicyAssignmentFilterFieldsField(Builder builder) { + super(); + this.field = builder.field; + this.value = builder.value; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getField() { + return field; + } + + public String getValue() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RetentionPolicyAssignmentFilterFieldsField casted = + (RetentionPolicyAssignmentFilterFieldsField) o; + return Objects.equals(field, casted.field) && Objects.equals(value, casted.value); + } + + @Override + public int hashCode() { + return Objects.hash(field, value); + } + + @Override + public String toString() { + return "RetentionPolicyAssignmentFilterFieldsField{" + + "field='" + + field + + '\'' + + ", " + + "value='" + + value + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String field; + + protected String value; + + public Builder field(String field) { + this.field = field; + this.markNullableFieldAsSet("field"); + return this; + } + + public Builder value(String value) { + this.value = value; + this.markNullableFieldAsSet("value"); + return this; + } + + public RetentionPolicyAssignmentFilterFieldsField build() { + return new RetentionPolicyAssignmentFilterFieldsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentTypeField.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentTypeField.java new file mode 100644 index 000000000..74d350392 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.retentionpolicyassignment; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum RetentionPolicyAssignmentTypeField implements Valuable { + RETENTION_POLICY_ASSIGNMENT("retention_policy_assignment"); + + private final String value; + + RetentionPolicyAssignmentTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class RetentionPolicyAssignmentTypeFieldDeserializer + extends JsonDeserializer> { + + public RetentionPolicyAssignmentTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(RetentionPolicyAssignmentTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class RetentionPolicyAssignmentTypeFieldSerializer + extends JsonSerializer> { + + public RetentionPolicyAssignmentTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignmentbase/RetentionPolicyAssignmentBase.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignmentbase/RetentionPolicyAssignmentBase.java new file mode 100644 index 000000000..41c9beb1f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignmentbase/RetentionPolicyAssignmentBase.java @@ -0,0 +1,108 @@ +package com.box.sdkgen.schemas.retentionpolicyassignmentbase; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class RetentionPolicyAssignmentBase extends SerializableObject { + + protected final String id; + + @JsonDeserialize( + using = + RetentionPolicyAssignmentBaseTypeField.RetentionPolicyAssignmentBaseTypeFieldDeserializer + .class) + @JsonSerialize( + using = + RetentionPolicyAssignmentBaseTypeField.RetentionPolicyAssignmentBaseTypeFieldSerializer + .class) + protected EnumWrapper type; + + public RetentionPolicyAssignmentBase(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + RetentionPolicyAssignmentBaseTypeField.RETENTION_POLICY_ASSIGNMENT); + } + + protected RetentionPolicyAssignmentBase(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RetentionPolicyAssignmentBase casted = (RetentionPolicyAssignmentBase) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "RetentionPolicyAssignmentBase{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + RetentionPolicyAssignmentBaseTypeField.RETENTION_POLICY_ASSIGNMENT); + } + + public Builder type(RetentionPolicyAssignmentBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public RetentionPolicyAssignmentBase build() { + return new RetentionPolicyAssignmentBase(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignmentbase/RetentionPolicyAssignmentBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignmentbase/RetentionPolicyAssignmentBaseTypeField.java new file mode 100644 index 000000000..5a119cc1c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignmentbase/RetentionPolicyAssignmentBaseTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.retentionpolicyassignmentbase; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum RetentionPolicyAssignmentBaseTypeField implements Valuable { + RETENTION_POLICY_ASSIGNMENT("retention_policy_assignment"); + + private final String value; + + RetentionPolicyAssignmentBaseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class RetentionPolicyAssignmentBaseTypeFieldDeserializer + extends JsonDeserializer> { + + public RetentionPolicyAssignmentBaseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(RetentionPolicyAssignmentBaseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class RetentionPolicyAssignmentBaseTypeFieldSerializer + extends JsonSerializer> { + + public RetentionPolicyAssignmentBaseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignments/RetentionPolicyAssignments.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignments/RetentionPolicyAssignments.java new file mode 100644 index 000000000..3f53a2ee9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignments/RetentionPolicyAssignments.java @@ -0,0 +1,111 @@ +package com.box.sdkgen.schemas.retentionpolicyassignments; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.retentionpolicyassignment.RetentionPolicyAssignment; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class RetentionPolicyAssignments extends SerializableObject { + + protected List entries; + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + public RetentionPolicyAssignments() { + super(); + } + + protected RetentionPolicyAssignments(Builder builder) { + super(); + this.entries = builder.entries; + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getEntries() { + return entries; + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RetentionPolicyAssignments casted = (RetentionPolicyAssignments) o; + return Objects.equals(entries, casted.entries) + && Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker); + } + + @Override + public int hashCode() { + return Objects.hash(entries, limit, nextMarker); + } + + @Override + public String toString() { + return "RetentionPolicyAssignments{" + + "entries='" + + entries + + '\'' + + ", " + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List entries; + + protected Long limit; + + protected String nextMarker; + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public RetentionPolicyAssignments build() { + return new RetentionPolicyAssignments(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicybase/RetentionPolicyBase.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicybase/RetentionPolicyBase.java new file mode 100644 index 000000000..dddc962d8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicybase/RetentionPolicyBase.java @@ -0,0 +1,95 @@ +package com.box.sdkgen.schemas.retentionpolicybase; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class RetentionPolicyBase extends SerializableObject { + + protected final String id; + + @JsonDeserialize( + using = RetentionPolicyBaseTypeField.RetentionPolicyBaseTypeFieldDeserializer.class) + @JsonSerialize(using = RetentionPolicyBaseTypeField.RetentionPolicyBaseTypeFieldSerializer.class) + protected EnumWrapper type; + + public RetentionPolicyBase(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + RetentionPolicyBaseTypeField.RETENTION_POLICY); + } + + protected RetentionPolicyBase(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RetentionPolicyBase casted = (RetentionPolicyBase) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "RetentionPolicyBase{" + "id='" + id + '\'' + ", " + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + RetentionPolicyBaseTypeField.RETENTION_POLICY); + } + + public Builder type(RetentionPolicyBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public RetentionPolicyBase build() { + return new RetentionPolicyBase(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicybase/RetentionPolicyBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicybase/RetentionPolicyBaseTypeField.java new file mode 100644 index 000000000..451c2c362 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicybase/RetentionPolicyBaseTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.retentionpolicybase; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum RetentionPolicyBaseTypeField implements Valuable { + RETENTION_POLICY("retention_policy"); + + private final String value; + + RetentionPolicyBaseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class RetentionPolicyBaseTypeFieldDeserializer + extends JsonDeserializer> { + + public RetentionPolicyBaseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(RetentionPolicyBaseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class RetentionPolicyBaseTypeFieldSerializer + extends JsonSerializer> { + + public RetentionPolicyBaseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicymini/RetentionPolicyMini.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicymini/RetentionPolicyMini.java new file mode 100644 index 000000000..debfa8d81 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicymini/RetentionPolicyMini.java @@ -0,0 +1,152 @@ +package com.box.sdkgen.schemas.retentionpolicymini; + +import com.box.sdkgen.schemas.retentionpolicybase.RetentionPolicyBase; +import com.box.sdkgen.schemas.retentionpolicybase.RetentionPolicyBaseTypeField; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class RetentionPolicyMini extends RetentionPolicyBase { + + @JsonProperty("policy_name") + protected String policyName; + + @JsonProperty("retention_length") + protected String retentionLength; + + @JsonDeserialize( + using = + RetentionPolicyMiniDispositionActionField + .RetentionPolicyMiniDispositionActionFieldDeserializer.class) + @JsonSerialize( + using = + RetentionPolicyMiniDispositionActionField + .RetentionPolicyMiniDispositionActionFieldSerializer.class) + @JsonProperty("disposition_action") + protected EnumWrapper dispositionAction; + + public RetentionPolicyMini(@JsonProperty("id") String id) { + super(id); + } + + protected RetentionPolicyMini(Builder builder) { + super(builder); + this.policyName = builder.policyName; + this.retentionLength = builder.retentionLength; + this.dispositionAction = builder.dispositionAction; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getPolicyName() { + return policyName; + } + + public String getRetentionLength() { + return retentionLength; + } + + public EnumWrapper getDispositionAction() { + return dispositionAction; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RetentionPolicyMini casted = (RetentionPolicyMini) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(policyName, casted.policyName) + && Objects.equals(retentionLength, casted.retentionLength) + && Objects.equals(dispositionAction, casted.dispositionAction); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, policyName, retentionLength, dispositionAction); + } + + @Override + public String toString() { + return "RetentionPolicyMini{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "policyName='" + + policyName + + '\'' + + ", " + + "retentionLength='" + + retentionLength + + '\'' + + ", " + + "dispositionAction='" + + dispositionAction + + '\'' + + "}"; + } + + public static class Builder extends RetentionPolicyBase.Builder { + + protected String policyName; + + protected String retentionLength; + + protected EnumWrapper dispositionAction; + + public Builder(String id) { + super(id); + } + + public Builder policyName(String policyName) { + this.policyName = policyName; + return this; + } + + public Builder retentionLength(String retentionLength) { + this.retentionLength = retentionLength; + return this; + } + + public Builder dispositionAction(RetentionPolicyMiniDispositionActionField dispositionAction) { + this.dispositionAction = + new EnumWrapper(dispositionAction); + return this; + } + + public Builder dispositionAction( + EnumWrapper dispositionAction) { + this.dispositionAction = dispositionAction; + return this; + } + + @Override + public Builder type(RetentionPolicyBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public RetentionPolicyMini build() { + return new RetentionPolicyMini(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicymini/RetentionPolicyMiniDispositionActionField.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicymini/RetentionPolicyMiniDispositionActionField.java new file mode 100644 index 000000000..564401cfd --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicymini/RetentionPolicyMiniDispositionActionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.retentionpolicymini; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum RetentionPolicyMiniDispositionActionField implements Valuable { + PERMANENTLY_DELETE("permanently_delete"), + REMOVE_RETENTION("remove_retention"); + + private final String value; + + RetentionPolicyMiniDispositionActionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class RetentionPolicyMiniDispositionActionFieldDeserializer + extends JsonDeserializer> { + + public RetentionPolicyMiniDispositionActionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(RetentionPolicyMiniDispositionActionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class RetentionPolicyMiniDispositionActionFieldSerializer + extends JsonSerializer> { + + public RetentionPolicyMiniDispositionActionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariable.java b/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariable.java new file mode 100644 index 000000000..ad3d451a8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariable.java @@ -0,0 +1,158 @@ +package com.box.sdkgen.schemas.rolevariable; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class RoleVariable extends SerializableObject { + + @JsonDeserialize(using = RoleVariableTypeField.RoleVariableTypeFieldDeserializer.class) + @JsonSerialize(using = RoleVariableTypeField.RoleVariableTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonDeserialize( + using = RoleVariableVariableTypeField.RoleVariableVariableTypeFieldDeserializer.class) + @JsonSerialize( + using = RoleVariableVariableTypeField.RoleVariableVariableTypeFieldSerializer.class) + @JsonProperty("variable_type") + protected EnumWrapper variableType; + + @JsonDeserialize( + using = RoleVariableVariableValueField.RoleVariableVariableValueFieldDeserializer.class) + @JsonSerialize( + using = RoleVariableVariableValueField.RoleVariableVariableValueFieldSerializer.class) + @JsonProperty("variable_value") + protected final EnumWrapper variableValue; + + public RoleVariable(RoleVariableVariableValueField variableValue) { + super(); + this.variableValue = new EnumWrapper(variableValue); + this.type = new EnumWrapper(RoleVariableTypeField.VARIABLE); + this.variableType = + new EnumWrapper( + RoleVariableVariableTypeField.COLLABORATOR_ROLE); + } + + public RoleVariable( + @JsonProperty("variable_value") EnumWrapper variableValue) { + super(); + this.variableValue = variableValue; + this.type = new EnumWrapper(RoleVariableTypeField.VARIABLE); + this.variableType = + new EnumWrapper( + RoleVariableVariableTypeField.COLLABORATOR_ROLE); + } + + protected RoleVariable(Builder builder) { + super(); + this.type = builder.type; + this.variableType = builder.variableType; + this.variableValue = builder.variableValue; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public EnumWrapper getVariableType() { + return variableType; + } + + public EnumWrapper getVariableValue() { + return variableValue; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RoleVariable casted = (RoleVariable) o; + return Objects.equals(type, casted.type) + && Objects.equals(variableType, casted.variableType) + && Objects.equals(variableValue, casted.variableValue); + } + + @Override + public int hashCode() { + return Objects.hash(type, variableType, variableValue); + } + + @Override + public String toString() { + return "RoleVariable{" + + "type='" + + type + + '\'' + + ", " + + "variableType='" + + variableType + + '\'' + + ", " + + "variableValue='" + + variableValue + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected EnumWrapper variableType; + + protected final EnumWrapper variableValue; + + public Builder(RoleVariableVariableValueField variableValue) { + super(); + this.variableValue = new EnumWrapper(variableValue); + this.type = new EnumWrapper(RoleVariableTypeField.VARIABLE); + this.variableType = + new EnumWrapper( + RoleVariableVariableTypeField.COLLABORATOR_ROLE); + } + + public Builder(EnumWrapper variableValue) { + super(); + this.variableValue = variableValue; + this.type = new EnumWrapper(RoleVariableTypeField.VARIABLE); + this.variableType = + new EnumWrapper( + RoleVariableVariableTypeField.COLLABORATOR_ROLE); + } + + public Builder type(RoleVariableTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder variableType(RoleVariableVariableTypeField variableType) { + this.variableType = new EnumWrapper(variableType); + return this; + } + + public Builder variableType(EnumWrapper variableType) { + this.variableType = variableType; + return this; + } + + public RoleVariable build() { + return new RoleVariable(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariableTypeField.java b/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariableTypeField.java new file mode 100644 index 000000000..8786d5c8d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariableTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.rolevariable; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum RoleVariableTypeField implements Valuable { + VARIABLE("variable"); + + private final String value; + + RoleVariableTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class RoleVariableTypeFieldDeserializer + extends JsonDeserializer> { + + public RoleVariableTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(RoleVariableTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class RoleVariableTypeFieldSerializer + extends JsonSerializer> { + + public RoleVariableTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariableVariableTypeField.java b/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariableVariableTypeField.java new file mode 100644 index 000000000..66caa47c9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariableVariableTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.rolevariable; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum RoleVariableVariableTypeField implements Valuable { + COLLABORATOR_ROLE("collaborator_role"); + + private final String value; + + RoleVariableVariableTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class RoleVariableVariableTypeFieldDeserializer + extends JsonDeserializer> { + + public RoleVariableVariableTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(RoleVariableVariableTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class RoleVariableVariableTypeFieldSerializer + extends JsonSerializer> { + + public RoleVariableVariableTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariableVariableValueField.java b/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariableVariableValueField.java new file mode 100644 index 000000000..82db76b7e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariableVariableValueField.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.schemas.rolevariable; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum RoleVariableVariableValueField implements Valuable { + EDITOR("editor"), + VIEWER("viewer"), + PREVIEWER("previewer"), + UPLOADER("uploader"), + PREVIEWER_UPLOADER("previewer uploader"), + VIEWER_UPLOADER("viewer uploader"), + CO_OWNER("co-owner"); + + private final String value; + + RoleVariableVariableValueField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class RoleVariableVariableValueFieldDeserializer + extends JsonDeserializer> { + + public RoleVariableVariableValueFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(RoleVariableVariableValueField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class RoleVariableVariableValueFieldSerializer + extends JsonSerializer> { + + public RoleVariableVariableValueFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/searchresults/SearchResults.java b/src/main/java/com/box/sdkgen/schemas/searchresults/SearchResults.java new file mode 100644 index 000000000..71693ba16 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/searchresults/SearchResults.java @@ -0,0 +1,164 @@ +package com.box.sdkgen.schemas.searchresults; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.filefullorfolderfullorweblink.FileFullOrFolderFullOrWebLink; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SearchResults extends SerializableObject { + + @JsonProperty("total_count") + protected Long totalCount; + + protected Long limit; + + protected Long offset; + + @JsonDeserialize(using = SearchResultsTypeField.SearchResultsTypeFieldDeserializer.class) + @JsonSerialize(using = SearchResultsTypeField.SearchResultsTypeFieldSerializer.class) + protected EnumWrapper type; + + protected List entries; + + public SearchResults() { + super(); + this.type = + new EnumWrapper(SearchResultsTypeField.SEARCH_RESULTS_ITEMS); + } + + protected SearchResults(Builder builder) { + super(); + this.totalCount = builder.totalCount; + this.limit = builder.limit; + this.offset = builder.offset; + this.type = builder.type; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getTotalCount() { + return totalCount; + } + + public Long getLimit() { + return limit; + } + + public Long getOffset() { + return offset; + } + + public EnumWrapper getType() { + return type; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SearchResults casted = (SearchResults) o; + return Objects.equals(totalCount, casted.totalCount) + && Objects.equals(limit, casted.limit) + && Objects.equals(offset, casted.offset) + && Objects.equals(type, casted.type) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, limit, offset, type, entries); + } + + @Override + public String toString() { + return "SearchResults{" + + "totalCount='" + + totalCount + + '\'' + + ", " + + "limit='" + + limit + + '\'' + + ", " + + "offset='" + + offset + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long totalCount; + + protected Long limit; + + protected Long offset; + + protected EnumWrapper type; + + protected List entries; + + public Builder() { + super(); + this.type = + new EnumWrapper(SearchResultsTypeField.SEARCH_RESULTS_ITEMS); + } + + public Builder totalCount(Long totalCount) { + this.totalCount = totalCount; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public Builder type(SearchResultsTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public SearchResults build() { + return new SearchResults(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/searchresults/SearchResultsTypeField.java b/src/main/java/com/box/sdkgen/schemas/searchresults/SearchResultsTypeField.java new file mode 100644 index 000000000..0fcc97074 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/searchresults/SearchResultsTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.searchresults; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SearchResultsTypeField implements Valuable { + SEARCH_RESULTS_ITEMS("search_results_items"); + + private final String value; + + SearchResultsTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SearchResultsTypeFieldDeserializer + extends JsonDeserializer> { + + public SearchResultsTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SearchResultsTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SearchResultsTypeFieldSerializer + extends JsonSerializer> { + + public SearchResultsTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/searchresultsorsearchresultswithsharedlinks/SearchResultsOrSearchResultsWithSharedLinks.java b/src/main/java/com/box/sdkgen/schemas/searchresultsorsearchresultswithsharedlinks/SearchResultsOrSearchResultsWithSharedLinks.java new file mode 100644 index 000000000..b3b9ace3c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/searchresultsorsearchresultswithsharedlinks/SearchResultsOrSearchResultsWithSharedLinks.java @@ -0,0 +1,108 @@ +package com.box.sdkgen.schemas.searchresultsorsearchresultswithsharedlinks; + +import com.box.sdkgen.internal.OneOfTwo; +import com.box.sdkgen.schemas.searchresults.SearchResults; +import com.box.sdkgen.schemas.searchresultswithsharedlinks.SearchResultsWithSharedLinks; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize( + using = + SearchResultsOrSearchResultsWithSharedLinks + .SearchResultsOrSearchResultsWithSharedLinksDeserializer.class) +@JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) +public class SearchResultsOrSearchResultsWithSharedLinks + extends OneOfTwo { + + protected final Long totalCount; + + protected final Long limit; + + protected final Long offset; + + protected final String type; + + public SearchResultsOrSearchResultsWithSharedLinks(SearchResults searchResults) { + super(searchResults, null); + this.totalCount = searchResults.getTotalCount(); + this.limit = searchResults.getLimit(); + this.offset = searchResults.getOffset(); + this.type = EnumWrapper.convertToString(searchResults.getType()); + } + + public SearchResultsOrSearchResultsWithSharedLinks( + SearchResultsWithSharedLinks searchResultsWithSharedLinks) { + super(null, searchResultsWithSharedLinks); + this.totalCount = searchResultsWithSharedLinks.getTotalCount(); + this.limit = searchResultsWithSharedLinks.getLimit(); + this.offset = searchResultsWithSharedLinks.getOffset(); + this.type = EnumWrapper.convertToString(searchResultsWithSharedLinks.getType()); + } + + public boolean isSearchResults() { + return value0 != null; + } + + public SearchResults getSearchResults() { + return value0; + } + + public boolean isSearchResultsWithSharedLinks() { + return value1 != null; + } + + public SearchResultsWithSharedLinks getSearchResultsWithSharedLinks() { + return value1; + } + + public long getTotalCount() { + return totalCount; + } + + public long getLimit() { + return limit; + } + + public long getOffset() { + return offset; + } + + public String getType() { + return type; + } + + static class SearchResultsOrSearchResultsWithSharedLinksDeserializer + extends JsonDeserializer { + + public SearchResultsOrSearchResultsWithSharedLinksDeserializer() { + super(); + } + + @Override + public SearchResultsOrSearchResultsWithSharedLinks deserialize( + JsonParser jp, DeserializationContext ctxt) throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "search_results_items": + return new SearchResultsOrSearchResultsWithSharedLinks( + JsonManager.deserialize(node, SearchResults.class)); + case "search_results_with_shared_links": + return new SearchResultsOrSearchResultsWithSharedLinks( + JsonManager.deserialize(node, SearchResultsWithSharedLinks.class)); + } + } + throw new JsonMappingException( + jp, "Unable to deserialize SearchResultsOrSearchResultsWithSharedLinks"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/searchresultswithsharedlinks/SearchResultsWithSharedLinks.java b/src/main/java/com/box/sdkgen/schemas/searchresultswithsharedlinks/SearchResultsWithSharedLinks.java new file mode 100644 index 000000000..8151798eb --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/searchresultswithsharedlinks/SearchResultsWithSharedLinks.java @@ -0,0 +1,172 @@ +package com.box.sdkgen.schemas.searchresultswithsharedlinks; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.searchresultwithsharedlink.SearchResultWithSharedLink; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SearchResultsWithSharedLinks extends SerializableObject { + + @JsonProperty("total_count") + protected Long totalCount; + + protected Long limit; + + protected Long offset; + + @JsonDeserialize( + using = + SearchResultsWithSharedLinksTypeField.SearchResultsWithSharedLinksTypeFieldDeserializer + .class) + @JsonSerialize( + using = + SearchResultsWithSharedLinksTypeField.SearchResultsWithSharedLinksTypeFieldSerializer + .class) + protected EnumWrapper type; + + protected List entries; + + public SearchResultsWithSharedLinks() { + super(); + this.type = + new EnumWrapper( + SearchResultsWithSharedLinksTypeField.SEARCH_RESULTS_WITH_SHARED_LINKS); + } + + protected SearchResultsWithSharedLinks(Builder builder) { + super(); + this.totalCount = builder.totalCount; + this.limit = builder.limit; + this.offset = builder.offset; + this.type = builder.type; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getTotalCount() { + return totalCount; + } + + public Long getLimit() { + return limit; + } + + public Long getOffset() { + return offset; + } + + public EnumWrapper getType() { + return type; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SearchResultsWithSharedLinks casted = (SearchResultsWithSharedLinks) o; + return Objects.equals(totalCount, casted.totalCount) + && Objects.equals(limit, casted.limit) + && Objects.equals(offset, casted.offset) + && Objects.equals(type, casted.type) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, limit, offset, type, entries); + } + + @Override + public String toString() { + return "SearchResultsWithSharedLinks{" + + "totalCount='" + + totalCount + + '\'' + + ", " + + "limit='" + + limit + + '\'' + + ", " + + "offset='" + + offset + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long totalCount; + + protected Long limit; + + protected Long offset; + + protected EnumWrapper type; + + protected List entries; + + public Builder() { + super(); + this.type = + new EnumWrapper( + SearchResultsWithSharedLinksTypeField.SEARCH_RESULTS_WITH_SHARED_LINKS); + } + + public Builder totalCount(Long totalCount) { + this.totalCount = totalCount; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public Builder type(SearchResultsWithSharedLinksTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public SearchResultsWithSharedLinks build() { + return new SearchResultsWithSharedLinks(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/searchresultswithsharedlinks/SearchResultsWithSharedLinksTypeField.java b/src/main/java/com/box/sdkgen/schemas/searchresultswithsharedlinks/SearchResultsWithSharedLinksTypeField.java new file mode 100644 index 000000000..5df195751 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/searchresultswithsharedlinks/SearchResultsWithSharedLinksTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.searchresultswithsharedlinks; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SearchResultsWithSharedLinksTypeField implements Valuable { + SEARCH_RESULTS_WITH_SHARED_LINKS("search_results_with_shared_links"); + + private final String value; + + SearchResultsWithSharedLinksTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SearchResultsWithSharedLinksTypeFieldDeserializer + extends JsonDeserializer> { + + public SearchResultsWithSharedLinksTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SearchResultsWithSharedLinksTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SearchResultsWithSharedLinksTypeFieldSerializer + extends JsonSerializer> { + + public SearchResultsWithSharedLinksTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/searchresultwithsharedlink/SearchResultWithSharedLink.java b/src/main/java/com/box/sdkgen/schemas/searchresultwithsharedlink/SearchResultWithSharedLink.java new file mode 100644 index 000000000..b496e61b9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/searchresultwithsharedlink/SearchResultWithSharedLink.java @@ -0,0 +1,125 @@ +package com.box.sdkgen.schemas.searchresultwithsharedlink; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.filefullorfolderfullorweblink.FileFullOrFolderFullOrWebLink; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.weblink.WebLink; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SearchResultWithSharedLink extends SerializableObject { + + @JsonProperty("accessible_via_shared_link") + protected String accessibleViaSharedLink; + + protected FileFullOrFolderFullOrWebLink item; + + protected String type; + + public SearchResultWithSharedLink() { + super(); + } + + protected SearchResultWithSharedLink(Builder builder) { + super(); + this.accessibleViaSharedLink = builder.accessibleViaSharedLink; + this.item = builder.item; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getAccessibleViaSharedLink() { + return accessibleViaSharedLink; + } + + public FileFullOrFolderFullOrWebLink getItem() { + return item; + } + + public String getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SearchResultWithSharedLink casted = (SearchResultWithSharedLink) o; + return Objects.equals(accessibleViaSharedLink, casted.accessibleViaSharedLink) + && Objects.equals(item, casted.item) + && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(accessibleViaSharedLink, item, type); + } + + @Override + public String toString() { + return "SearchResultWithSharedLink{" + + "accessibleViaSharedLink='" + + accessibleViaSharedLink + + '\'' + + ", " + + "item='" + + item + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String accessibleViaSharedLink; + + protected FileFullOrFolderFullOrWebLink item; + + protected String type; + + public Builder accessibleViaSharedLink(String accessibleViaSharedLink) { + this.accessibleViaSharedLink = accessibleViaSharedLink; + return this; + } + + public Builder item(FileFull item) { + this.item = new FileFullOrFolderFullOrWebLink(item); + return this; + } + + public Builder item(FolderFull item) { + this.item = new FileFullOrFolderFullOrWebLink(item); + return this; + } + + public Builder item(WebLink item) { + this.item = new FileFullOrFolderFullOrWebLink(item); + return this; + } + + public Builder item(FileFullOrFolderFullOrWebLink item) { + this.item = item; + return this; + } + + public Builder type(String type) { + this.type = type; + return this; + } + + public SearchResultWithSharedLink build() { + return new SearchResultWithSharedLink(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/sessionterminationmessage/SessionTerminationMessage.java b/src/main/java/com/box/sdkgen/schemas/sessionterminationmessage/SessionTerminationMessage.java new file mode 100644 index 000000000..9d069b236 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/sessionterminationmessage/SessionTerminationMessage.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.sessionterminationmessage; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SessionTerminationMessage extends SerializableObject { + + protected String message; + + public SessionTerminationMessage() { + super(); + } + + protected SessionTerminationMessage(Builder builder) { + super(); + this.message = builder.message; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getMessage() { + return message; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SessionTerminationMessage casted = (SessionTerminationMessage) o; + return Objects.equals(message, casted.message); + } + + @Override + public int hashCode() { + return Objects.hash(message); + } + + @Override + public String toString() { + return "SessionTerminationMessage{" + "message='" + message + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String message; + + public Builder message(String message) { + this.message = message; + return this; + } + + public SessionTerminationMessage build() { + return new SessionTerminationMessage(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrier/ShieldInformationBarrier.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrier/ShieldInformationBarrier.java new file mode 100644 index 000000000..b3ef33e8c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrier/ShieldInformationBarrier.java @@ -0,0 +1,287 @@ +package com.box.sdkgen.schemas.shieldinformationbarrier; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.enterprisebase.EnterpriseBase; +import com.box.sdkgen.schemas.userbase.UserBase; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldInformationBarrier extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = ShieldInformationBarrierTypeField.ShieldInformationBarrierTypeFieldDeserializer.class) + @JsonSerialize( + using = ShieldInformationBarrierTypeField.ShieldInformationBarrierTypeFieldSerializer.class) + protected EnumWrapper type; + + protected EnterpriseBase enterprise; + + @JsonDeserialize( + using = + ShieldInformationBarrierStatusField.ShieldInformationBarrierStatusFieldDeserializer.class) + @JsonSerialize( + using = + ShieldInformationBarrierStatusField.ShieldInformationBarrierStatusFieldSerializer.class) + protected EnumWrapper status; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("created_by") + protected UserBase createdBy; + + @JsonProperty("updated_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date updatedAt; + + @JsonProperty("updated_by") + protected UserBase updatedBy; + + @JsonProperty("enabled_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date enabledAt; + + @JsonProperty("enabled_by") + protected UserBase enabledBy; + + public ShieldInformationBarrier() { + super(); + } + + protected ShieldInformationBarrier(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.enterprise = builder.enterprise; + this.status = builder.status; + this.createdAt = builder.createdAt; + this.createdBy = builder.createdBy; + this.updatedAt = builder.updatedAt; + this.updatedBy = builder.updatedBy; + this.enabledAt = builder.enabledAt; + this.enabledBy = builder.enabledBy; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public EnterpriseBase getEnterprise() { + return enterprise; + } + + public EnumWrapper getStatus() { + return status; + } + + public Date getCreatedAt() { + return createdAt; + } + + public UserBase getCreatedBy() { + return createdBy; + } + + public Date getUpdatedAt() { + return updatedAt; + } + + public UserBase getUpdatedBy() { + return updatedBy; + } + + public Date getEnabledAt() { + return enabledAt; + } + + public UserBase getEnabledBy() { + return enabledBy; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldInformationBarrier casted = (ShieldInformationBarrier) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(enterprise, casted.enterprise) + && Objects.equals(status, casted.status) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(updatedAt, casted.updatedAt) + && Objects.equals(updatedBy, casted.updatedBy) + && Objects.equals(enabledAt, casted.enabledAt) + && Objects.equals(enabledBy, casted.enabledBy); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + type, + enterprise, + status, + createdAt, + createdBy, + updatedAt, + updatedBy, + enabledAt, + enabledBy); + } + + @Override + public String toString() { + return "ShieldInformationBarrier{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "enterprise='" + + enterprise + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "updatedAt='" + + updatedAt + + '\'' + + ", " + + "updatedBy='" + + updatedBy + + '\'' + + ", " + + "enabledAt='" + + enabledAt + + '\'' + + ", " + + "enabledBy='" + + enabledBy + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected EnterpriseBase enterprise; + + protected EnumWrapper status; + + protected Date createdAt; + + protected UserBase createdBy; + + protected Date updatedAt; + + protected UserBase updatedBy; + + protected Date enabledAt; + + protected UserBase enabledBy; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(ShieldInformationBarrierTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder enterprise(EnterpriseBase enterprise) { + this.enterprise = enterprise; + return this; + } + + public Builder status(ShieldInformationBarrierStatusField status) { + this.status = new EnumWrapper(status); + return this; + } + + public Builder status(EnumWrapper status) { + this.status = status; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder createdBy(UserBase createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder updatedAt(Date updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + public Builder updatedBy(UserBase updatedBy) { + this.updatedBy = updatedBy; + return this; + } + + public Builder enabledAt(Date enabledAt) { + this.enabledAt = enabledAt; + return this; + } + + public Builder enabledBy(UserBase enabledBy) { + this.enabledBy = enabledBy; + return this; + } + + public ShieldInformationBarrier build() { + return new ShieldInformationBarrier(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrier/ShieldInformationBarrierStatusField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrier/ShieldInformationBarrierStatusField.java new file mode 100644 index 000000000..79bc542e2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrier/ShieldInformationBarrierStatusField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.schemas.shieldinformationbarrier; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ShieldInformationBarrierStatusField implements Valuable { + DRAFT("draft"), + PENDING("pending"), + DISABLED("disabled"), + ENABLED("enabled"), + INVALID("invalid"); + + private final String value; + + ShieldInformationBarrierStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ShieldInformationBarrierStatusFieldDeserializer + extends JsonDeserializer> { + + public ShieldInformationBarrierStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ShieldInformationBarrierStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ShieldInformationBarrierStatusFieldSerializer + extends JsonSerializer> { + + public ShieldInformationBarrierStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrier/ShieldInformationBarrierTypeField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrier/ShieldInformationBarrierTypeField.java new file mode 100644 index 000000000..97b1c89db --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrier/ShieldInformationBarrierTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.shieldinformationbarrier; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ShieldInformationBarrierTypeField implements Valuable { + SHIELD_INFORMATION_BARRIER("shield_information_barrier"); + + private final String value; + + ShieldInformationBarrierTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ShieldInformationBarrierTypeFieldDeserializer + extends JsonDeserializer> { + + public ShieldInformationBarrierTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ShieldInformationBarrierTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ShieldInformationBarrierTypeFieldSerializer + extends JsonSerializer> { + + public ShieldInformationBarrierTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierbase/ShieldInformationBarrierBase.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierbase/ShieldInformationBarrierBase.java new file mode 100644 index 000000000..2b1d4630c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierbase/ShieldInformationBarrierBase.java @@ -0,0 +1,100 @@ +package com.box.sdkgen.schemas.shieldinformationbarrierbase; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldInformationBarrierBase extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = + ShieldInformationBarrierBaseTypeField.ShieldInformationBarrierBaseTypeFieldDeserializer + .class) + @JsonSerialize( + using = + ShieldInformationBarrierBaseTypeField.ShieldInformationBarrierBaseTypeFieldSerializer + .class) + protected EnumWrapper type; + + public ShieldInformationBarrierBase() { + super(); + } + + protected ShieldInformationBarrierBase(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldInformationBarrierBase casted = (ShieldInformationBarrierBase) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "ShieldInformationBarrierBase{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(ShieldInformationBarrierBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public ShieldInformationBarrierBase build() { + return new ShieldInformationBarrierBase(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierbase/ShieldInformationBarrierBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierbase/ShieldInformationBarrierBaseTypeField.java new file mode 100644 index 000000000..e805359cc --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierbase/ShieldInformationBarrierBaseTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.shieldinformationbarrierbase; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ShieldInformationBarrierBaseTypeField implements Valuable { + SHIELD_INFORMATION_BARRIER("shield_information_barrier"); + + private final String value; + + ShieldInformationBarrierBaseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ShieldInformationBarrierBaseTypeFieldDeserializer + extends JsonDeserializer> { + + public ShieldInformationBarrierBaseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ShieldInformationBarrierBaseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ShieldInformationBarrierBaseTypeFieldSerializer + extends JsonSerializer> { + + public ShieldInformationBarrierBaseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreference/ShieldInformationBarrierReference.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreference/ShieldInformationBarrierReference.java new file mode 100644 index 000000000..4e1e4cfcd --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreference/ShieldInformationBarrierReference.java @@ -0,0 +1,69 @@ +package com.box.sdkgen.schemas.shieldinformationbarrierreference; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.shieldinformationbarrierbase.ShieldInformationBarrierBase; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldInformationBarrierReference extends SerializableObject { + + @JsonProperty("shield_information_barrier") + protected ShieldInformationBarrierBase shieldInformationBarrier; + + public ShieldInformationBarrierReference() { + super(); + } + + protected ShieldInformationBarrierReference(Builder builder) { + super(); + this.shieldInformationBarrier = builder.shieldInformationBarrier; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public ShieldInformationBarrierBase getShieldInformationBarrier() { + return shieldInformationBarrier; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldInformationBarrierReference casted = (ShieldInformationBarrierReference) o; + return Objects.equals(shieldInformationBarrier, casted.shieldInformationBarrier); + } + + @Override + public int hashCode() { + return Objects.hash(shieldInformationBarrier); + } + + @Override + public String toString() { + return "ShieldInformationBarrierReference{" + + "shieldInformationBarrier='" + + shieldInformationBarrier + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected ShieldInformationBarrierBase shieldInformationBarrier; + + public Builder shieldInformationBarrier(ShieldInformationBarrierBase shieldInformationBarrier) { + this.shieldInformationBarrier = shieldInformationBarrier; + return this; + } + + public ShieldInformationBarrierReference build() { + return new ShieldInformationBarrierReference(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreport/ShieldInformationBarrierReport.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreport/ShieldInformationBarrierReport.java new file mode 100644 index 000000000..6fcaa06bc --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreport/ShieldInformationBarrierReport.java @@ -0,0 +1,221 @@ +package com.box.sdkgen.schemas.shieldinformationbarrierreport; + +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.shieldinformationbarrierreference.ShieldInformationBarrierReference; +import com.box.sdkgen.schemas.shieldinformationbarrierreportbase.ShieldInformationBarrierReportBase; +import com.box.sdkgen.schemas.shieldinformationbarrierreportbase.ShieldInformationBarrierReportBaseTypeField; +import com.box.sdkgen.schemas.shieldinformationbarrierreportdetails.ShieldInformationBarrierReportDetails; +import com.box.sdkgen.schemas.userbase.UserBase; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldInformationBarrierReport extends ShieldInformationBarrierReportBase { + + @JsonProperty("shield_information_barrier") + protected ShieldInformationBarrierReference shieldInformationBarrier; + + @JsonDeserialize( + using = + ShieldInformationBarrierReportStatusField + .ShieldInformationBarrierReportStatusFieldDeserializer.class) + @JsonSerialize( + using = + ShieldInformationBarrierReportStatusField + .ShieldInformationBarrierReportStatusFieldSerializer.class) + protected EnumWrapper status; + + protected ShieldInformationBarrierReportDetails details; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("created_by") + protected UserBase createdBy; + + @JsonProperty("updated_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date updatedAt; + + public ShieldInformationBarrierReport() { + super(); + } + + protected ShieldInformationBarrierReport(Builder builder) { + super(builder); + this.shieldInformationBarrier = builder.shieldInformationBarrier; + this.status = builder.status; + this.details = builder.details; + this.createdAt = builder.createdAt; + this.createdBy = builder.createdBy; + this.updatedAt = builder.updatedAt; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public ShieldInformationBarrierReference getShieldInformationBarrier() { + return shieldInformationBarrier; + } + + public EnumWrapper getStatus() { + return status; + } + + public ShieldInformationBarrierReportDetails getDetails() { + return details; + } + + public Date getCreatedAt() { + return createdAt; + } + + public UserBase getCreatedBy() { + return createdBy; + } + + public Date getUpdatedAt() { + return updatedAt; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldInformationBarrierReport casted = (ShieldInformationBarrierReport) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(shieldInformationBarrier, casted.shieldInformationBarrier) + && Objects.equals(status, casted.status) + && Objects.equals(details, casted.details) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(updatedAt, casted.updatedAt); + } + + @Override + public int hashCode() { + return Objects.hash( + id, type, shieldInformationBarrier, status, details, createdAt, createdBy, updatedAt); + } + + @Override + public String toString() { + return "ShieldInformationBarrierReport{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "shieldInformationBarrier='" + + shieldInformationBarrier + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "details='" + + details + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "updatedAt='" + + updatedAt + + '\'' + + "}"; + } + + public static class Builder extends ShieldInformationBarrierReportBase.Builder { + + protected ShieldInformationBarrierReference shieldInformationBarrier; + + protected EnumWrapper status; + + protected ShieldInformationBarrierReportDetails details; + + protected Date createdAt; + + protected UserBase createdBy; + + protected Date updatedAt; + + public Builder shieldInformationBarrier( + ShieldInformationBarrierReference shieldInformationBarrier) { + this.shieldInformationBarrier = shieldInformationBarrier; + return this; + } + + public Builder status(ShieldInformationBarrierReportStatusField status) { + this.status = new EnumWrapper(status); + return this; + } + + public Builder status(EnumWrapper status) { + this.status = status; + return this; + } + + public Builder details(ShieldInformationBarrierReportDetails details) { + this.details = details; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder createdBy(UserBase createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder updatedAt(Date updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + @Override + public Builder id(String id) { + this.id = id; + return this; + } + + @Override + public Builder type(ShieldInformationBarrierReportBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public ShieldInformationBarrierReport build() { + return new ShieldInformationBarrierReport(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreport/ShieldInformationBarrierReportStatusField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreport/ShieldInformationBarrierReportStatusField.java new file mode 100644 index 000000000..ac2084a01 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreport/ShieldInformationBarrierReportStatusField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.schemas.shieldinformationbarrierreport; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ShieldInformationBarrierReportStatusField implements Valuable { + PENDING("pending"), + ERROR("error"), + DONE("done"), + CANCELLED("cancelled"); + + private final String value; + + ShieldInformationBarrierReportStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ShieldInformationBarrierReportStatusFieldDeserializer + extends JsonDeserializer> { + + public ShieldInformationBarrierReportStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ShieldInformationBarrierReportStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ShieldInformationBarrierReportStatusFieldSerializer + extends JsonSerializer> { + + public ShieldInformationBarrierReportStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportbase/ShieldInformationBarrierReportBase.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportbase/ShieldInformationBarrierReportBase.java new file mode 100644 index 000000000..e1711bc76 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportbase/ShieldInformationBarrierReportBase.java @@ -0,0 +1,100 @@ +package com.box.sdkgen.schemas.shieldinformationbarrierreportbase; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldInformationBarrierReportBase extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = + ShieldInformationBarrierReportBaseTypeField + .ShieldInformationBarrierReportBaseTypeFieldDeserializer.class) + @JsonSerialize( + using = + ShieldInformationBarrierReportBaseTypeField + .ShieldInformationBarrierReportBaseTypeFieldSerializer.class) + protected EnumWrapper type; + + public ShieldInformationBarrierReportBase() { + super(); + } + + protected ShieldInformationBarrierReportBase(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldInformationBarrierReportBase casted = (ShieldInformationBarrierReportBase) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "ShieldInformationBarrierReportBase{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(ShieldInformationBarrierReportBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public ShieldInformationBarrierReportBase build() { + return new ShieldInformationBarrierReportBase(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportbase/ShieldInformationBarrierReportBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportbase/ShieldInformationBarrierReportBaseTypeField.java new file mode 100644 index 000000000..4be0721e5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportbase/ShieldInformationBarrierReportBaseTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.shieldinformationbarrierreportbase; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ShieldInformationBarrierReportBaseTypeField implements Valuable { + SHIELD_INFORMATION_BARRIER_REPORT("shield_information_barrier_report"); + + private final String value; + + ShieldInformationBarrierReportBaseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ShieldInformationBarrierReportBaseTypeFieldDeserializer + extends JsonDeserializer> { + + public ShieldInformationBarrierReportBaseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ShieldInformationBarrierReportBaseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ShieldInformationBarrierReportBaseTypeFieldSerializer + extends JsonSerializer> { + + public ShieldInformationBarrierReportBaseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportdetails/ShieldInformationBarrierReportDetails.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportdetails/ShieldInformationBarrierReportDetails.java new file mode 100644 index 000000000..7c9ae5b09 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportdetails/ShieldInformationBarrierReportDetails.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.shieldinformationbarrierreportdetails; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldInformationBarrierReportDetails extends SerializableObject { + + protected ShieldInformationBarrierReportDetailsDetailsField details; + + public ShieldInformationBarrierReportDetails() { + super(); + } + + protected ShieldInformationBarrierReportDetails(Builder builder) { + super(); + this.details = builder.details; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public ShieldInformationBarrierReportDetailsDetailsField getDetails() { + return details; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldInformationBarrierReportDetails casted = (ShieldInformationBarrierReportDetails) o; + return Objects.equals(details, casted.details); + } + + @Override + public int hashCode() { + return Objects.hash(details); + } + + @Override + public String toString() { + return "ShieldInformationBarrierReportDetails{" + "details='" + details + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected ShieldInformationBarrierReportDetailsDetailsField details; + + public Builder details(ShieldInformationBarrierReportDetailsDetailsField details) { + this.details = details; + return this; + } + + public ShieldInformationBarrierReportDetails build() { + return new ShieldInformationBarrierReportDetails(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportdetails/ShieldInformationBarrierReportDetailsDetailsField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportdetails/ShieldInformationBarrierReportDetailsDetailsField.java new file mode 100644 index 000000000..fcf3ce69f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportdetails/ShieldInformationBarrierReportDetailsDetailsField.java @@ -0,0 +1,69 @@ +package com.box.sdkgen.schemas.shieldinformationbarrierreportdetails; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldInformationBarrierReportDetailsDetailsField extends SerializableObject { + + @JsonProperty("folder_id") + protected String folderId; + + public ShieldInformationBarrierReportDetailsDetailsField() { + super(); + } + + protected ShieldInformationBarrierReportDetailsDetailsField(Builder builder) { + super(); + this.folderId = builder.folderId; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getFolderId() { + return folderId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldInformationBarrierReportDetailsDetailsField casted = + (ShieldInformationBarrierReportDetailsDetailsField) o; + return Objects.equals(folderId, casted.folderId); + } + + @Override + public int hashCode() { + return Objects.hash(folderId); + } + + @Override + public String toString() { + return "ShieldInformationBarrierReportDetailsDetailsField{" + + "folderId='" + + folderId + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String folderId; + + public Builder folderId(String folderId) { + this.folderId = folderId; + return this; + } + + public ShieldInformationBarrierReportDetailsDetailsField build() { + return new ShieldInformationBarrierReportDetailsDetailsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreports/ShieldInformationBarrierReports.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreports/ShieldInformationBarrierReports.java new file mode 100644 index 000000000..23f2f5d53 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreports/ShieldInformationBarrierReports.java @@ -0,0 +1,111 @@ +package com.box.sdkgen.schemas.shieldinformationbarrierreports; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.shieldinformationbarrierreport.ShieldInformationBarrierReport; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldInformationBarrierReports extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + protected List entries; + + public ShieldInformationBarrierReports() { + super(); + } + + protected ShieldInformationBarrierReports(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldInformationBarrierReports casted = (ShieldInformationBarrierReports) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, entries); + } + + @Override + public String toString() { + return "ShieldInformationBarrierReports{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public ShieldInformationBarrierReports build() { + return new ShieldInformationBarrierReports(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriers/ShieldInformationBarriers.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriers/ShieldInformationBarriers.java new file mode 100644 index 000000000..6dd351013 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriers/ShieldInformationBarriers.java @@ -0,0 +1,111 @@ +package com.box.sdkgen.schemas.shieldinformationbarriers; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.shieldinformationbarrier.ShieldInformationBarrier; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldInformationBarriers extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + protected List entries; + + public ShieldInformationBarriers() { + super(); + } + + protected ShieldInformationBarriers(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldInformationBarriers casted = (ShieldInformationBarriers) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, entries); + } + + @Override + public String toString() { + return "ShieldInformationBarriers{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public ShieldInformationBarriers build() { + return new ShieldInformationBarriers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegment/ShieldInformationBarrierSegment.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegment/ShieldInformationBarrierSegment.java new file mode 100644 index 000000000..bc5b9a481 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegment/ShieldInformationBarrierSegment.java @@ -0,0 +1,257 @@ +package com.box.sdkgen.schemas.shieldinformationbarriersegment; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.shieldinformationbarrierbase.ShieldInformationBarrierBase; +import com.box.sdkgen.schemas.userbase.UserBase; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldInformationBarrierSegment extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = + ShieldInformationBarrierSegmentTypeField + .ShieldInformationBarrierSegmentTypeFieldDeserializer.class) + @JsonSerialize( + using = + ShieldInformationBarrierSegmentTypeField + .ShieldInformationBarrierSegmentTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("shield_information_barrier") + protected ShieldInformationBarrierBase shieldInformationBarrier; + + protected String name; + + protected String description; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("created_by") + protected UserBase createdBy; + + @JsonProperty("updated_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date updatedAt; + + @JsonProperty("updated_by") + protected UserBase updatedBy; + + public ShieldInformationBarrierSegment() { + super(); + } + + protected ShieldInformationBarrierSegment(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.shieldInformationBarrier = builder.shieldInformationBarrier; + this.name = builder.name; + this.description = builder.description; + this.createdAt = builder.createdAt; + this.createdBy = builder.createdBy; + this.updatedAt = builder.updatedAt; + this.updatedBy = builder.updatedBy; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public ShieldInformationBarrierBase getShieldInformationBarrier() { + return shieldInformationBarrier; + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + public Date getCreatedAt() { + return createdAt; + } + + public UserBase getCreatedBy() { + return createdBy; + } + + public Date getUpdatedAt() { + return updatedAt; + } + + public UserBase getUpdatedBy() { + return updatedBy; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldInformationBarrierSegment casted = (ShieldInformationBarrierSegment) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(shieldInformationBarrier, casted.shieldInformationBarrier) + && Objects.equals(name, casted.name) + && Objects.equals(description, casted.description) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(updatedAt, casted.updatedAt) + && Objects.equals(updatedBy, casted.updatedBy); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + type, + shieldInformationBarrier, + name, + description, + createdAt, + createdBy, + updatedAt, + updatedBy); + } + + @Override + public String toString() { + return "ShieldInformationBarrierSegment{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "shieldInformationBarrier='" + + shieldInformationBarrier + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "updatedAt='" + + updatedAt + + '\'' + + ", " + + "updatedBy='" + + updatedBy + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected ShieldInformationBarrierBase shieldInformationBarrier; + + protected String name; + + protected String description; + + protected Date createdAt; + + protected UserBase createdBy; + + protected Date updatedAt; + + protected UserBase updatedBy; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(ShieldInformationBarrierSegmentTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder shieldInformationBarrier(ShieldInformationBarrierBase shieldInformationBarrier) { + this.shieldInformationBarrier = shieldInformationBarrier; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder createdBy(UserBase createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder updatedAt(Date updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + public Builder updatedBy(UserBase updatedBy) { + this.updatedBy = updatedBy; + return this; + } + + public ShieldInformationBarrierSegment build() { + return new ShieldInformationBarrierSegment(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegment/ShieldInformationBarrierSegmentTypeField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegment/ShieldInformationBarrierSegmentTypeField.java new file mode 100644 index 000000000..26543a6a3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegment/ShieldInformationBarrierSegmentTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.shieldinformationbarriersegment; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ShieldInformationBarrierSegmentTypeField implements Valuable { + SHIELD_INFORMATION_BARRIER_SEGMENT("shield_information_barrier_segment"); + + private final String value; + + ShieldInformationBarrierSegmentTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ShieldInformationBarrierSegmentTypeFieldDeserializer + extends JsonDeserializer> { + + public ShieldInformationBarrierSegmentTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ShieldInformationBarrierSegmentTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ShieldInformationBarrierSegmentTypeFieldSerializer + extends JsonSerializer> { + + public ShieldInformationBarrierSegmentTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMember.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMember.java new file mode 100644 index 000000000..d75cd5844 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMember.java @@ -0,0 +1,233 @@ +package com.box.sdkgen.schemas.shieldinformationbarriersegmentmember; + +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.shieldinformationbarrierbase.ShieldInformationBarrierBase; +import com.box.sdkgen.schemas.shieldinformationbarriersegmentmemberbase.ShieldInformationBarrierSegmentMemberBaseTypeField; +import com.box.sdkgen.schemas.shieldinformationbarriersegmentmembermini.ShieldInformationBarrierSegmentMemberMini; +import com.box.sdkgen.schemas.userbase.UserBase; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldInformationBarrierSegmentMember + extends ShieldInformationBarrierSegmentMemberMini { + + @JsonProperty("shield_information_barrier") + protected ShieldInformationBarrierBase shieldInformationBarrier; + + @JsonProperty("shield_information_barrier_segment") + protected ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField + shieldInformationBarrierSegment; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("created_by") + protected UserBase createdBy; + + @JsonProperty("updated_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date updatedAt; + + @JsonProperty("updated_by") + protected UserBase updatedBy; + + public ShieldInformationBarrierSegmentMember() { + super(); + } + + protected ShieldInformationBarrierSegmentMember(Builder builder) { + super(builder); + this.shieldInformationBarrier = builder.shieldInformationBarrier; + this.shieldInformationBarrierSegment = builder.shieldInformationBarrierSegment; + this.createdAt = builder.createdAt; + this.createdBy = builder.createdBy; + this.updatedAt = builder.updatedAt; + this.updatedBy = builder.updatedBy; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public ShieldInformationBarrierBase getShieldInformationBarrier() { + return shieldInformationBarrier; + } + + public ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField + getShieldInformationBarrierSegment() { + return shieldInformationBarrierSegment; + } + + public Date getCreatedAt() { + return createdAt; + } + + public UserBase getCreatedBy() { + return createdBy; + } + + public Date getUpdatedAt() { + return updatedAt; + } + + public UserBase getUpdatedBy() { + return updatedBy; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldInformationBarrierSegmentMember casted = (ShieldInformationBarrierSegmentMember) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(user, casted.user) + && Objects.equals(shieldInformationBarrier, casted.shieldInformationBarrier) + && Objects.equals(shieldInformationBarrierSegment, casted.shieldInformationBarrierSegment) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(updatedAt, casted.updatedAt) + && Objects.equals(updatedBy, casted.updatedBy); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + type, + user, + shieldInformationBarrier, + shieldInformationBarrierSegment, + createdAt, + createdBy, + updatedAt, + updatedBy); + } + + @Override + public String toString() { + return "ShieldInformationBarrierSegmentMember{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "user='" + + user + + '\'' + + ", " + + "shieldInformationBarrier='" + + shieldInformationBarrier + + '\'' + + ", " + + "shieldInformationBarrierSegment='" + + shieldInformationBarrierSegment + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "updatedAt='" + + updatedAt + + '\'' + + ", " + + "updatedBy='" + + updatedBy + + '\'' + + "}"; + } + + public static class Builder extends ShieldInformationBarrierSegmentMemberMini.Builder { + + protected ShieldInformationBarrierBase shieldInformationBarrier; + + protected ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField + shieldInformationBarrierSegment; + + protected Date createdAt; + + protected UserBase createdBy; + + protected Date updatedAt; + + protected UserBase updatedBy; + + public Builder shieldInformationBarrier(ShieldInformationBarrierBase shieldInformationBarrier) { + this.shieldInformationBarrier = shieldInformationBarrier; + return this; + } + + public Builder shieldInformationBarrierSegment( + ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField + shieldInformationBarrierSegment) { + this.shieldInformationBarrierSegment = shieldInformationBarrierSegment; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder createdBy(UserBase createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder updatedAt(Date updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + public Builder updatedBy(UserBase updatedBy) { + this.updatedBy = updatedBy; + return this; + } + + @Override + public Builder id(String id) { + this.id = id; + return this; + } + + @Override + public Builder type(ShieldInformationBarrierSegmentMemberBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder user(UserBase user) { + this.user = user; + return this; + } + + public ShieldInformationBarrierSegmentMember build() { + return new ShieldInformationBarrierSegmentMember(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField.java new file mode 100644 index 000000000..711f2fbe7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField.java @@ -0,0 +1,115 @@ +package com.box.sdkgen.schemas.shieldinformationbarriersegmentmember; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField + extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = + ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField + .ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeFieldDeserializer + .class) + @JsonSerialize( + using = + ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField + .ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeFieldSerializer + .class) + protected EnumWrapper< + ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField> + type; + + public ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField() { + super(); + } + + protected ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField( + Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper + getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField casted = + (ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper< + ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField> + type; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type( + ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField type) { + this.type = + new EnumWrapper< + ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField>(type); + return this; + } + + public Builder type( + EnumWrapper + type) { + this.type = type; + return this; + } + + public ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField build() { + return new ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField.java new file mode 100644 index 000000000..36c6f218a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField.java @@ -0,0 +1,78 @@ +package com.box.sdkgen.schemas.shieldinformationbarriersegmentmember; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField + implements Valuable { + SHIELD_INFORMATION_BARRIER_SEGMENT("shield_information_barrier_segment"); + + private final String value; + + ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static + class ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper< + ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField>> { + + public + ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper< + ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField> + deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream( + ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField + .values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper< + ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField>( + value)); + } + } + + public static + class ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeFieldSerializer + extends JsonSerializer< + EnumWrapper< + ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField>> { + + public + ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper + value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmemberbase/ShieldInformationBarrierSegmentMemberBase.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmemberbase/ShieldInformationBarrierSegmentMemberBase.java new file mode 100644 index 000000000..c717be6a6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmemberbase/ShieldInformationBarrierSegmentMemberBase.java @@ -0,0 +1,101 @@ +package com.box.sdkgen.schemas.shieldinformationbarriersegmentmemberbase; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldInformationBarrierSegmentMemberBase extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = + ShieldInformationBarrierSegmentMemberBaseTypeField + .ShieldInformationBarrierSegmentMemberBaseTypeFieldDeserializer.class) + @JsonSerialize( + using = + ShieldInformationBarrierSegmentMemberBaseTypeField + .ShieldInformationBarrierSegmentMemberBaseTypeFieldSerializer.class) + protected EnumWrapper type; + + public ShieldInformationBarrierSegmentMemberBase() { + super(); + } + + protected ShieldInformationBarrierSegmentMemberBase(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldInformationBarrierSegmentMemberBase casted = + (ShieldInformationBarrierSegmentMemberBase) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "ShieldInformationBarrierSegmentMemberBase{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(ShieldInformationBarrierSegmentMemberBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public ShieldInformationBarrierSegmentMemberBase build() { + return new ShieldInformationBarrierSegmentMemberBase(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmemberbase/ShieldInformationBarrierSegmentMemberBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmemberbase/ShieldInformationBarrierSegmentMemberBaseTypeField.java new file mode 100644 index 000000000..88788bfb0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmemberbase/ShieldInformationBarrierSegmentMemberBaseTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.shieldinformationbarriersegmentmemberbase; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ShieldInformationBarrierSegmentMemberBaseTypeField implements Valuable { + SHIELD_INFORMATION_BARRIER_SEGMENT_MEMBER("shield_information_barrier_segment_member"); + + private final String value; + + ShieldInformationBarrierSegmentMemberBaseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ShieldInformationBarrierSegmentMemberBaseTypeFieldDeserializer + extends JsonDeserializer> { + + public ShieldInformationBarrierSegmentMemberBaseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ShieldInformationBarrierSegmentMemberBaseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ShieldInformationBarrierSegmentMemberBaseTypeFieldSerializer + extends JsonSerializer> { + + public ShieldInformationBarrierSegmentMemberBaseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmembermini/ShieldInformationBarrierSegmentMemberMini.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmembermini/ShieldInformationBarrierSegmentMemberMini.java new file mode 100644 index 000000000..133717e19 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmembermini/ShieldInformationBarrierSegmentMemberMini.java @@ -0,0 +1,98 @@ +package com.box.sdkgen.schemas.shieldinformationbarriersegmentmembermini; + +import com.box.sdkgen.schemas.shieldinformationbarriersegmentmemberbase.ShieldInformationBarrierSegmentMemberBase; +import com.box.sdkgen.schemas.shieldinformationbarriersegmentmemberbase.ShieldInformationBarrierSegmentMemberBaseTypeField; +import com.box.sdkgen.schemas.userbase.UserBase; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldInformationBarrierSegmentMemberMini + extends ShieldInformationBarrierSegmentMemberBase { + + protected UserBase user; + + public ShieldInformationBarrierSegmentMemberMini() { + super(); + } + + protected ShieldInformationBarrierSegmentMemberMini(Builder builder) { + super(builder); + this.user = builder.user; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public UserBase getUser() { + return user; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldInformationBarrierSegmentMemberMini casted = + (ShieldInformationBarrierSegmentMemberMini) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(user, casted.user); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, user); + } + + @Override + public String toString() { + return "ShieldInformationBarrierSegmentMemberMini{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "user='" + + user + + '\'' + + "}"; + } + + public static class Builder extends ShieldInformationBarrierSegmentMemberBase.Builder { + + protected UserBase user; + + public Builder user(UserBase user) { + this.user = user; + return this; + } + + @Override + public Builder id(String id) { + this.id = id; + return this; + } + + @Override + public Builder type(ShieldInformationBarrierSegmentMemberBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public ShieldInformationBarrierSegmentMemberMini build() { + return new ShieldInformationBarrierSegmentMemberMini(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembers.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembers.java new file mode 100644 index 000000000..198b74197 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembers.java @@ -0,0 +1,111 @@ +package com.box.sdkgen.schemas.shieldinformationbarriersegmentmembers; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.shieldinformationbarriersegmentmember.ShieldInformationBarrierSegmentMember; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldInformationBarrierSegmentMembers extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + protected List entries; + + public ShieldInformationBarrierSegmentMembers() { + super(); + } + + protected ShieldInformationBarrierSegmentMembers(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldInformationBarrierSegmentMembers casted = (ShieldInformationBarrierSegmentMembers) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, entries); + } + + @Override + public String toString() { + return "ShieldInformationBarrierSegmentMembers{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public ShieldInformationBarrierSegmentMembers build() { + return new ShieldInformationBarrierSegmentMembers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestriction/ShieldInformationBarrierSegmentRestriction.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestriction/ShieldInformationBarrierSegmentRestriction.java new file mode 100644 index 000000000..ecf72b85d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestriction/ShieldInformationBarrierSegmentRestriction.java @@ -0,0 +1,222 @@ +package com.box.sdkgen.schemas.shieldinformationbarriersegmentrestriction; + +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.shieldinformationbarrierbase.ShieldInformationBarrierBase; +import com.box.sdkgen.schemas.shieldinformationbarriersegmentrestrictionbase.ShieldInformationBarrierSegmentRestrictionBaseTypeField; +import com.box.sdkgen.schemas.shieldinformationbarriersegmentrestrictionmini.ShieldInformationBarrierSegmentRestrictionMini; +import com.box.sdkgen.schemas.shieldinformationbarriersegmentrestrictionmini.ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField; +import com.box.sdkgen.schemas.shieldinformationbarriersegmentrestrictionmini.ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField; +import com.box.sdkgen.schemas.userbase.UserBase; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldInformationBarrierSegmentRestriction + extends ShieldInformationBarrierSegmentRestrictionMini { + + @JsonProperty("shield_information_barrier") + protected ShieldInformationBarrierBase shieldInformationBarrier; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("created_by") + protected UserBase createdBy; + + @JsonProperty("updated_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date updatedAt; + + @JsonProperty("updated_by") + protected UserBase updatedBy; + + public ShieldInformationBarrierSegmentRestriction( + @JsonProperty("shield_information_barrier_segment") + ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField + shieldInformationBarrierSegment, + @JsonProperty("restricted_segment") + ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField restrictedSegment) { + super(shieldInformationBarrierSegment, restrictedSegment); + } + + protected ShieldInformationBarrierSegmentRestriction(Builder builder) { + super(builder); + this.shieldInformationBarrier = builder.shieldInformationBarrier; + this.createdAt = builder.createdAt; + this.createdBy = builder.createdBy; + this.updatedAt = builder.updatedAt; + this.updatedBy = builder.updatedBy; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public ShieldInformationBarrierBase getShieldInformationBarrier() { + return shieldInformationBarrier; + } + + public Date getCreatedAt() { + return createdAt; + } + + public UserBase getCreatedBy() { + return createdBy; + } + + public Date getUpdatedAt() { + return updatedAt; + } + + public UserBase getUpdatedBy() { + return updatedBy; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldInformationBarrierSegmentRestriction casted = + (ShieldInformationBarrierSegmentRestriction) o; + return Objects.equals(type, casted.type) + && Objects.equals(id, casted.id) + && Objects.equals(shieldInformationBarrierSegment, casted.shieldInformationBarrierSegment) + && Objects.equals(restrictedSegment, casted.restrictedSegment) + && Objects.equals(shieldInformationBarrier, casted.shieldInformationBarrier) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(updatedAt, casted.updatedAt) + && Objects.equals(updatedBy, casted.updatedBy); + } + + @Override + public int hashCode() { + return Objects.hash( + type, + id, + shieldInformationBarrierSegment, + restrictedSegment, + shieldInformationBarrier, + createdAt, + createdBy, + updatedAt, + updatedBy); + } + + @Override + public String toString() { + return "ShieldInformationBarrierSegmentRestriction{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + ", " + + "shieldInformationBarrierSegment='" + + shieldInformationBarrierSegment + + '\'' + + ", " + + "restrictedSegment='" + + restrictedSegment + + '\'' + + ", " + + "shieldInformationBarrier='" + + shieldInformationBarrier + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "updatedAt='" + + updatedAt + + '\'' + + ", " + + "updatedBy='" + + updatedBy + + '\'' + + "}"; + } + + public static class Builder extends ShieldInformationBarrierSegmentRestrictionMini.Builder { + + protected ShieldInformationBarrierBase shieldInformationBarrier; + + protected Date createdAt; + + protected UserBase createdBy; + + protected Date updatedAt; + + protected UserBase updatedBy; + + public Builder( + ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField + shieldInformationBarrierSegment, + ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField restrictedSegment) { + super(shieldInformationBarrierSegment, restrictedSegment); + } + + public Builder shieldInformationBarrier(ShieldInformationBarrierBase shieldInformationBarrier) { + this.shieldInformationBarrier = shieldInformationBarrier; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder createdBy(UserBase createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder updatedAt(Date updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + public Builder updatedBy(UserBase updatedBy) { + this.updatedBy = updatedBy; + return this; + } + + @Override + public Builder type(ShieldInformationBarrierSegmentRestrictionBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder id(String id) { + this.id = id; + return this; + } + + public ShieldInformationBarrierSegmentRestriction build() { + return new ShieldInformationBarrierSegmentRestriction(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionbase/ShieldInformationBarrierSegmentRestrictionBase.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionbase/ShieldInformationBarrierSegmentRestrictionBase.java new file mode 100644 index 000000000..1e7de31b0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionbase/ShieldInformationBarrierSegmentRestrictionBase.java @@ -0,0 +1,101 @@ +package com.box.sdkgen.schemas.shieldinformationbarriersegmentrestrictionbase; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldInformationBarrierSegmentRestrictionBase extends SerializableObject { + + @JsonDeserialize( + using = + ShieldInformationBarrierSegmentRestrictionBaseTypeField + .ShieldInformationBarrierSegmentRestrictionBaseTypeFieldDeserializer.class) + @JsonSerialize( + using = + ShieldInformationBarrierSegmentRestrictionBaseTypeField + .ShieldInformationBarrierSegmentRestrictionBaseTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String id; + + public ShieldInformationBarrierSegmentRestrictionBase() { + super(); + } + + protected ShieldInformationBarrierSegmentRestrictionBase(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldInformationBarrierSegmentRestrictionBase casted = + (ShieldInformationBarrierSegmentRestrictionBase) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "ShieldInformationBarrierSegmentRestrictionBase{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected String id; + + public Builder type(ShieldInformationBarrierSegmentRestrictionBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public ShieldInformationBarrierSegmentRestrictionBase build() { + return new ShieldInformationBarrierSegmentRestrictionBase(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionbase/ShieldInformationBarrierSegmentRestrictionBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionbase/ShieldInformationBarrierSegmentRestrictionBaseTypeField.java new file mode 100644 index 000000000..68b240b08 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionbase/ShieldInformationBarrierSegmentRestrictionBaseTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.shieldinformationbarriersegmentrestrictionbase; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ShieldInformationBarrierSegmentRestrictionBaseTypeField implements Valuable { + SHIELD_INFORMATION_BARRIER_SEGMENT_RESTRICTION("shield_information_barrier_segment_restriction"); + + private final String value; + + ShieldInformationBarrierSegmentRestrictionBaseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ShieldInformationBarrierSegmentRestrictionBaseTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public ShieldInformationBarrierSegmentRestrictionBaseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ShieldInformationBarrierSegmentRestrictionBaseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ShieldInformationBarrierSegmentRestrictionBaseTypeFieldSerializer + extends JsonSerializer> { + + public ShieldInformationBarrierSegmentRestrictionBaseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMini.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMini.java new file mode 100644 index 000000000..6da765944 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMini.java @@ -0,0 +1,132 @@ +package com.box.sdkgen.schemas.shieldinformationbarriersegmentrestrictionmini; + +import com.box.sdkgen.schemas.shieldinformationbarriersegmentrestrictionbase.ShieldInformationBarrierSegmentRestrictionBase; +import com.box.sdkgen.schemas.shieldinformationbarriersegmentrestrictionbase.ShieldInformationBarrierSegmentRestrictionBaseTypeField; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldInformationBarrierSegmentRestrictionMini + extends ShieldInformationBarrierSegmentRestrictionBase { + + @JsonProperty("shield_information_barrier_segment") + protected final ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField + shieldInformationBarrierSegment; + + @JsonProperty("restricted_segment") + protected final ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField + restrictedSegment; + + public ShieldInformationBarrierSegmentRestrictionMini( + @JsonProperty("shield_information_barrier_segment") + ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField + shieldInformationBarrierSegment, + @JsonProperty("restricted_segment") + ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField restrictedSegment) { + super(); + this.shieldInformationBarrierSegment = shieldInformationBarrierSegment; + this.restrictedSegment = restrictedSegment; + } + + protected ShieldInformationBarrierSegmentRestrictionMini(Builder builder) { + super(builder); + this.shieldInformationBarrierSegment = builder.shieldInformationBarrierSegment; + this.restrictedSegment = builder.restrictedSegment; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField + getShieldInformationBarrierSegment() { + return shieldInformationBarrierSegment; + } + + public ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField + getRestrictedSegment() { + return restrictedSegment; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldInformationBarrierSegmentRestrictionMini casted = + (ShieldInformationBarrierSegmentRestrictionMini) o; + return Objects.equals(type, casted.type) + && Objects.equals(id, casted.id) + && Objects.equals(shieldInformationBarrierSegment, casted.shieldInformationBarrierSegment) + && Objects.equals(restrictedSegment, casted.restrictedSegment); + } + + @Override + public int hashCode() { + return Objects.hash(type, id, shieldInformationBarrierSegment, restrictedSegment); + } + + @Override + public String toString() { + return "ShieldInformationBarrierSegmentRestrictionMini{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + ", " + + "shieldInformationBarrierSegment='" + + shieldInformationBarrierSegment + + '\'' + + ", " + + "restrictedSegment='" + + restrictedSegment + + '\'' + + "}"; + } + + public static class Builder extends ShieldInformationBarrierSegmentRestrictionBase.Builder { + + protected final + ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField + shieldInformationBarrierSegment; + + protected final ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField + restrictedSegment; + + public Builder( + ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField + shieldInformationBarrierSegment, + ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField restrictedSegment) { + super(); + this.shieldInformationBarrierSegment = shieldInformationBarrierSegment; + this.restrictedSegment = restrictedSegment; + } + + @Override + public Builder type(ShieldInformationBarrierSegmentRestrictionBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder id(String id) { + this.id = id; + return this; + } + + public ShieldInformationBarrierSegmentRestrictionMini build() { + return new ShieldInformationBarrierSegmentRestrictionMini(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField.java new file mode 100644 index 000000000..53bd94487 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField.java @@ -0,0 +1,112 @@ +package com.box.sdkgen.schemas.shieldinformationbarriersegmentrestrictionmini; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField + extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = + ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentTypeField + .ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentTypeFieldDeserializer + .class) + @JsonSerialize( + using = + ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentTypeField + .ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentTypeFieldSerializer + .class) + protected EnumWrapper + type; + + public ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField() { + super(); + } + + protected ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper + getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField casted = + (ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper + type; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type( + ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentTypeField type) { + this.type = + new EnumWrapper( + type); + return this; + } + + public Builder type( + EnumWrapper + type) { + this.type = type; + return this; + } + + public ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField build() { + return new ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentTypeField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentTypeField.java new file mode 100644 index 000000000..1f1232968 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentTypeField.java @@ -0,0 +1,70 @@ +package com.box.sdkgen.schemas.shieldinformationbarriersegmentrestrictionmini; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentTypeField + implements Valuable { + SHIELD_INFORMATION_BARRIER_SEGMENT("shield_information_barrier_segment"); + + private final String value; + + ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static + class ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper + deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream( + ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper< + ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentTypeField>(value)); + } + } + + public static + class ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField.java new file mode 100644 index 000000000..cb9a29a62 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField.java @@ -0,0 +1,121 @@ +package com.box.sdkgen.schemas.shieldinformationbarriersegmentrestrictionmini; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField + extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = + ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField + .ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeFieldDeserializer + .class) + @JsonSerialize( + using = + ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField + .ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeFieldSerializer + .class) + protected EnumWrapper< + ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField> + type; + + public ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField() { + super(); + } + + protected ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField( + Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper< + ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField> + getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField casted = + (ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper< + ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField> + type; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type( + ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField + type) { + this.type = + new EnumWrapper< + ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField>( + type); + return this; + } + + public Builder type( + EnumWrapper< + ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField> + type) { + this.type = type; + return this; + } + + public ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField + build() { + return new ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField( + this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField.java new file mode 100644 index 000000000..06914f9f5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField.java @@ -0,0 +1,80 @@ +package com.box.sdkgen.schemas.shieldinformationbarriersegmentrestrictionmini; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField + implements Valuable { + SHIELD_INFORMATION_BARRIER_SEGMENT("shield_information_barrier_segment"); + + private final String value; + + ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField( + String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static + class ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper< + ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField>> { + + public + ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper< + ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField> + deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream( + ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField + .values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper< + ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField>( + value)); + } + } + + public static + class ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeFieldSerializer + extends JsonSerializer< + EnumWrapper< + ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField>> { + + public + ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper< + ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField> + value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictions.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictions.java new file mode 100644 index 000000000..154b87034 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictions.java @@ -0,0 +1,112 @@ +package com.box.sdkgen.schemas.shieldinformationbarriersegmentrestrictions; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.shieldinformationbarriersegmentrestriction.ShieldInformationBarrierSegmentRestriction; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldInformationBarrierSegmentRestrictions extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + protected List entries; + + public ShieldInformationBarrierSegmentRestrictions() { + super(); + } + + protected ShieldInformationBarrierSegmentRestrictions(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldInformationBarrierSegmentRestrictions casted = + (ShieldInformationBarrierSegmentRestrictions) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, entries); + } + + @Override + public String toString() { + return "ShieldInformationBarrierSegmentRestrictions{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public ShieldInformationBarrierSegmentRestrictions build() { + return new ShieldInformationBarrierSegmentRestrictions(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegments/ShieldInformationBarrierSegments.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegments/ShieldInformationBarrierSegments.java new file mode 100644 index 000000000..a71ed4e41 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegments/ShieldInformationBarrierSegments.java @@ -0,0 +1,111 @@ +package com.box.sdkgen.schemas.shieldinformationbarriersegments; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.shieldinformationbarriersegment.ShieldInformationBarrierSegment; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldInformationBarrierSegments extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + protected List entries; + + public ShieldInformationBarrierSegments() { + super(); + } + + protected ShieldInformationBarrierSegments(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldInformationBarrierSegments casted = (ShieldInformationBarrierSegments) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, entries); + } + + @Override + public String toString() { + return "ShieldInformationBarrierSegments{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public ShieldInformationBarrierSegments build() { + return new ShieldInformationBarrierSegments(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequest.java b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequest.java new file mode 100644 index 000000000..47eeeab3b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequest.java @@ -0,0 +1,541 @@ +package com.box.sdkgen.schemas.signrequest; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.filebase.FileBase; +import com.box.sdkgen.schemas.filemini.FileMini; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.signrequestbase.SignRequestBase; +import com.box.sdkgen.schemas.signrequestprefilltag.SignRequestPrefillTag; +import com.box.sdkgen.schemas.signrequestsigner.SignRequestSigner; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SignRequest extends SignRequestBase { + + @JsonDeserialize(using = SignRequestTypeField.SignRequestTypeFieldDeserializer.class) + @JsonSerialize(using = SignRequestTypeField.SignRequestTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("source_files") + protected List sourceFiles; + + protected List signers; + + @JsonProperty("signature_color") + @Nullable + protected String signatureColor; + + protected String id; + + @JsonProperty("prepare_url") + @Nullable + protected String prepareUrl; + + @JsonProperty("signing_log") + protected FileMini signingLog; + + @JsonDeserialize(using = SignRequestStatusField.SignRequestStatusFieldDeserializer.class) + @JsonSerialize(using = SignRequestStatusField.SignRequestStatusFieldSerializer.class) + protected EnumWrapper status; + + @JsonProperty("sign_files") + protected SignRequestSignFilesField signFiles; + + @JsonProperty("auto_expire_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date autoExpireAt; + + @JsonProperty("parent_folder") + protected FolderMini parentFolder; + + @JsonProperty("collaborator_level") + @Nullable + protected String collaboratorLevel; + + @JsonProperty("sender_email") + @Nullable + protected String senderEmail; + + @JsonProperty("sender_id") + @Nullable + protected Long senderId; + + public SignRequest() { + super(); + } + + protected SignRequest(Builder builder) { + super(builder); + this.type = builder.type; + this.sourceFiles = builder.sourceFiles; + this.signers = builder.signers; + this.signatureColor = builder.signatureColor; + this.id = builder.id; + this.prepareUrl = builder.prepareUrl; + this.signingLog = builder.signingLog; + this.status = builder.status; + this.signFiles = builder.signFiles; + this.autoExpireAt = builder.autoExpireAt; + this.parentFolder = builder.parentFolder; + this.collaboratorLevel = builder.collaboratorLevel; + this.senderEmail = builder.senderEmail; + this.senderId = builder.senderId; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public List getSourceFiles() { + return sourceFiles; + } + + public List getSigners() { + return signers; + } + + public String getSignatureColor() { + return signatureColor; + } + + public String getId() { + return id; + } + + public String getPrepareUrl() { + return prepareUrl; + } + + public FileMini getSigningLog() { + return signingLog; + } + + public EnumWrapper getStatus() { + return status; + } + + public SignRequestSignFilesField getSignFiles() { + return signFiles; + } + + public Date getAutoExpireAt() { + return autoExpireAt; + } + + public FolderMini getParentFolder() { + return parentFolder; + } + + public String getCollaboratorLevel() { + return collaboratorLevel; + } + + public String getSenderEmail() { + return senderEmail; + } + + public Long getSenderId() { + return senderId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequest casted = (SignRequest) o; + return Objects.equals(isDocumentPreparationNeeded, casted.isDocumentPreparationNeeded) + && Objects.equals(redirectUrl, casted.redirectUrl) + && Objects.equals(declinedRedirectUrl, casted.declinedRedirectUrl) + && Objects.equals(areTextSignaturesEnabled, casted.areTextSignaturesEnabled) + && Objects.equals(emailSubject, casted.emailSubject) + && Objects.equals(emailMessage, casted.emailMessage) + && Objects.equals(areRemindersEnabled, casted.areRemindersEnabled) + && Objects.equals(name, casted.name) + && Objects.equals(prefillTags, casted.prefillTags) + && Objects.equals(daysValid, casted.daysValid) + && Objects.equals(externalId, casted.externalId) + && Objects.equals(templateId, casted.templateId) + && Objects.equals(externalSystemName, casted.externalSystemName) + && Objects.equals(type, casted.type) + && Objects.equals(sourceFiles, casted.sourceFiles) + && Objects.equals(signers, casted.signers) + && Objects.equals(signatureColor, casted.signatureColor) + && Objects.equals(id, casted.id) + && Objects.equals(prepareUrl, casted.prepareUrl) + && Objects.equals(signingLog, casted.signingLog) + && Objects.equals(status, casted.status) + && Objects.equals(signFiles, casted.signFiles) + && Objects.equals(autoExpireAt, casted.autoExpireAt) + && Objects.equals(parentFolder, casted.parentFolder) + && Objects.equals(collaboratorLevel, casted.collaboratorLevel) + && Objects.equals(senderEmail, casted.senderEmail) + && Objects.equals(senderId, casted.senderId); + } + + @Override + public int hashCode() { + return Objects.hash( + isDocumentPreparationNeeded, + redirectUrl, + declinedRedirectUrl, + areTextSignaturesEnabled, + emailSubject, + emailMessage, + areRemindersEnabled, + name, + prefillTags, + daysValid, + externalId, + templateId, + externalSystemName, + type, + sourceFiles, + signers, + signatureColor, + id, + prepareUrl, + signingLog, + status, + signFiles, + autoExpireAt, + parentFolder, + collaboratorLevel, + senderEmail, + senderId); + } + + @Override + public String toString() { + return "SignRequest{" + + "isDocumentPreparationNeeded='" + + isDocumentPreparationNeeded + + '\'' + + ", " + + "redirectUrl='" + + redirectUrl + + '\'' + + ", " + + "declinedRedirectUrl='" + + declinedRedirectUrl + + '\'' + + ", " + + "areTextSignaturesEnabled='" + + areTextSignaturesEnabled + + '\'' + + ", " + + "emailSubject='" + + emailSubject + + '\'' + + ", " + + "emailMessage='" + + emailMessage + + '\'' + + ", " + + "areRemindersEnabled='" + + areRemindersEnabled + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "prefillTags='" + + prefillTags + + '\'' + + ", " + + "daysValid='" + + daysValid + + '\'' + + ", " + + "externalId='" + + externalId + + '\'' + + ", " + + "templateId='" + + templateId + + '\'' + + ", " + + "externalSystemName='" + + externalSystemName + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "sourceFiles='" + + sourceFiles + + '\'' + + ", " + + "signers='" + + signers + + '\'' + + ", " + + "signatureColor='" + + signatureColor + + '\'' + + ", " + + "id='" + + id + + '\'' + + ", " + + "prepareUrl='" + + prepareUrl + + '\'' + + ", " + + "signingLog='" + + signingLog + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "signFiles='" + + signFiles + + '\'' + + ", " + + "autoExpireAt='" + + autoExpireAt + + '\'' + + ", " + + "parentFolder='" + + parentFolder + + '\'' + + ", " + + "collaboratorLevel='" + + collaboratorLevel + + '\'' + + ", " + + "senderEmail='" + + senderEmail + + '\'' + + ", " + + "senderId='" + + senderId + + '\'' + + "}"; + } + + public static class Builder extends SignRequestBase.Builder { + + protected EnumWrapper type; + + protected List sourceFiles; + + protected List signers; + + protected String signatureColor; + + protected String id; + + protected String prepareUrl; + + protected FileMini signingLog; + + protected EnumWrapper status; + + protected SignRequestSignFilesField signFiles; + + protected Date autoExpireAt; + + protected FolderMini parentFolder; + + protected String collaboratorLevel; + + protected String senderEmail; + + protected Long senderId; + + public Builder type(SignRequestTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder sourceFiles(List sourceFiles) { + this.sourceFiles = sourceFiles; + return this; + } + + public Builder signers(List signers) { + this.signers = signers; + return this; + } + + public Builder signatureColor(String signatureColor) { + this.signatureColor = signatureColor; + this.markNullableFieldAsSet("signature_color"); + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder prepareUrl(String prepareUrl) { + this.prepareUrl = prepareUrl; + this.markNullableFieldAsSet("prepare_url"); + return this; + } + + public Builder signingLog(FileMini signingLog) { + this.signingLog = signingLog; + return this; + } + + public Builder status(SignRequestStatusField status) { + this.status = new EnumWrapper(status); + return this; + } + + public Builder status(EnumWrapper status) { + this.status = status; + return this; + } + + public Builder signFiles(SignRequestSignFilesField signFiles) { + this.signFiles = signFiles; + return this; + } + + public Builder autoExpireAt(Date autoExpireAt) { + this.autoExpireAt = autoExpireAt; + this.markNullableFieldAsSet("auto_expire_at"); + return this; + } + + public Builder parentFolder(FolderMini parentFolder) { + this.parentFolder = parentFolder; + return this; + } + + public Builder collaboratorLevel(String collaboratorLevel) { + this.collaboratorLevel = collaboratorLevel; + this.markNullableFieldAsSet("collaborator_level"); + return this; + } + + public Builder senderEmail(String senderEmail) { + this.senderEmail = senderEmail; + this.markNullableFieldAsSet("sender_email"); + return this; + } + + public Builder senderId(Long senderId) { + this.senderId = senderId; + this.markNullableFieldAsSet("sender_id"); + return this; + } + + @Override + public Builder isDocumentPreparationNeeded(Boolean isDocumentPreparationNeeded) { + this.isDocumentPreparationNeeded = isDocumentPreparationNeeded; + return this; + } + + @Override + public Builder redirectUrl(String redirectUrl) { + this.redirectUrl = redirectUrl; + this.markNullableFieldAsSet("redirect_url"); + return this; + } + + @Override + public Builder declinedRedirectUrl(String declinedRedirectUrl) { + this.declinedRedirectUrl = declinedRedirectUrl; + this.markNullableFieldAsSet("declined_redirect_url"); + return this; + } + + @Override + public Builder areTextSignaturesEnabled(Boolean areTextSignaturesEnabled) { + this.areTextSignaturesEnabled = areTextSignaturesEnabled; + return this; + } + + @Override + public Builder emailSubject(String emailSubject) { + this.emailSubject = emailSubject; + this.markNullableFieldAsSet("email_subject"); + return this; + } + + @Override + public Builder emailMessage(String emailMessage) { + this.emailMessage = emailMessage; + this.markNullableFieldAsSet("email_message"); + return this; + } + + @Override + public Builder areRemindersEnabled(Boolean areRemindersEnabled) { + this.areRemindersEnabled = areRemindersEnabled; + return this; + } + + @Override + public Builder name(String name) { + this.name = name; + return this; + } + + @Override + public Builder prefillTags(List prefillTags) { + this.prefillTags = prefillTags; + return this; + } + + @Override + public Builder daysValid(Long daysValid) { + this.daysValid = daysValid; + this.markNullableFieldAsSet("days_valid"); + return this; + } + + @Override + public Builder externalId(String externalId) { + this.externalId = externalId; + this.markNullableFieldAsSet("external_id"); + return this; + } + + @Override + public Builder templateId(String templateId) { + this.templateId = templateId; + this.markNullableFieldAsSet("template_id"); + return this; + } + + @Override + public Builder externalSystemName(String externalSystemName) { + this.externalSystemName = externalSystemName; + this.markNullableFieldAsSet("external_system_name"); + return this; + } + + public SignRequest build() { + return new SignRequest(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestSignFilesField.java b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestSignFilesField.java new file mode 100644 index 000000000..9b8012173 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestSignFilesField.java @@ -0,0 +1,89 @@ +package com.box.sdkgen.schemas.signrequest; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.filemini.FileMini; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignFilesField extends SerializableObject { + + protected List files; + + @JsonProperty("is_ready_for_download") + protected Boolean isReadyForDownload; + + public SignRequestSignFilesField() { + super(); + } + + protected SignRequestSignFilesField(Builder builder) { + super(); + this.files = builder.files; + this.isReadyForDownload = builder.isReadyForDownload; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getFiles() { + return files; + } + + public Boolean getIsReadyForDownload() { + return isReadyForDownload; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignFilesField casted = (SignRequestSignFilesField) o; + return Objects.equals(files, casted.files) + && Objects.equals(isReadyForDownload, casted.isReadyForDownload); + } + + @Override + public int hashCode() { + return Objects.hash(files, isReadyForDownload); + } + + @Override + public String toString() { + return "SignRequestSignFilesField{" + + "files='" + + files + + '\'' + + ", " + + "isReadyForDownload='" + + isReadyForDownload + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List files; + + protected Boolean isReadyForDownload; + + public Builder files(List files) { + this.files = files; + return this; + } + + public Builder isReadyForDownload(Boolean isReadyForDownload) { + this.isReadyForDownload = isReadyForDownload; + return this; + } + + public SignRequestSignFilesField build() { + return new SignRequestSignFilesField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestStatusField.java b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestStatusField.java new file mode 100644 index 000000000..6e22d34e0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestStatusField.java @@ -0,0 +1,73 @@ +package com.box.sdkgen.schemas.signrequest; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SignRequestStatusField implements Valuable { + CONVERTING("converting"), + CREATED("created"), + SENT("sent"), + VIEWED("viewed"), + SIGNED("signed"), + CANCELLED("cancelled"), + DECLINED("declined"), + ERROR_CONVERTING("error_converting"), + ERROR_SENDING("error_sending"), + EXPIRED("expired"), + FINALIZING("finalizing"), + ERROR_FINALIZING("error_finalizing"); + + private final String value; + + SignRequestStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestStatusFieldDeserializer + extends JsonDeserializer> { + + public SignRequestStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SignRequestStatusFieldSerializer + extends JsonSerializer> { + + public SignRequestStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestTypeField.java new file mode 100644 index 000000000..08cac0b57 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.signrequest; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SignRequestTypeField implements Valuable { + SIGN_REQUEST("sign-request"); + + private final String value; + + SignRequestTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestTypeFieldDeserializer + extends JsonDeserializer> { + + public SignRequestTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SignRequestTypeFieldSerializer + extends JsonSerializer> { + + public SignRequestTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestbase/SignRequestBase.java b/src/main/java/com/box/sdkgen/schemas/signrequestbase/SignRequestBase.java new file mode 100644 index 000000000..d5803f8f1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestbase/SignRequestBase.java @@ -0,0 +1,339 @@ +package com.box.sdkgen.schemas.signrequestbase; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.signrequestprefilltag.SignRequestPrefillTag; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SignRequestBase extends SerializableObject { + + @JsonProperty("is_document_preparation_needed") + protected Boolean isDocumentPreparationNeeded; + + @JsonProperty("redirect_url") + @Nullable + protected String redirectUrl; + + @JsonProperty("declined_redirect_url") + @Nullable + protected String declinedRedirectUrl; + + @JsonProperty("are_text_signatures_enabled") + protected Boolean areTextSignaturesEnabled; + + @JsonProperty("email_subject") + @Nullable + protected String emailSubject; + + @JsonProperty("email_message") + @Nullable + protected String emailMessage; + + @JsonProperty("are_reminders_enabled") + protected Boolean areRemindersEnabled; + + protected String name; + + @JsonProperty("prefill_tags") + protected List prefillTags; + + @JsonProperty("days_valid") + @Nullable + protected Long daysValid; + + @JsonProperty("external_id") + @Nullable + protected String externalId; + + @JsonProperty("template_id") + @Nullable + protected String templateId; + + @JsonProperty("external_system_name") + @Nullable + protected String externalSystemName; + + public SignRequestBase() { + super(); + } + + protected SignRequestBase(Builder builder) { + super(); + this.isDocumentPreparationNeeded = builder.isDocumentPreparationNeeded; + this.redirectUrl = builder.redirectUrl; + this.declinedRedirectUrl = builder.declinedRedirectUrl; + this.areTextSignaturesEnabled = builder.areTextSignaturesEnabled; + this.emailSubject = builder.emailSubject; + this.emailMessage = builder.emailMessage; + this.areRemindersEnabled = builder.areRemindersEnabled; + this.name = builder.name; + this.prefillTags = builder.prefillTags; + this.daysValid = builder.daysValid; + this.externalId = builder.externalId; + this.templateId = builder.templateId; + this.externalSystemName = builder.externalSystemName; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getIsDocumentPreparationNeeded() { + return isDocumentPreparationNeeded; + } + + public String getRedirectUrl() { + return redirectUrl; + } + + public String getDeclinedRedirectUrl() { + return declinedRedirectUrl; + } + + public Boolean getAreTextSignaturesEnabled() { + return areTextSignaturesEnabled; + } + + public String getEmailSubject() { + return emailSubject; + } + + public String getEmailMessage() { + return emailMessage; + } + + public Boolean getAreRemindersEnabled() { + return areRemindersEnabled; + } + + public String getName() { + return name; + } + + public List getPrefillTags() { + return prefillTags; + } + + public Long getDaysValid() { + return daysValid; + } + + public String getExternalId() { + return externalId; + } + + public String getTemplateId() { + return templateId; + } + + public String getExternalSystemName() { + return externalSystemName; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestBase casted = (SignRequestBase) o; + return Objects.equals(isDocumentPreparationNeeded, casted.isDocumentPreparationNeeded) + && Objects.equals(redirectUrl, casted.redirectUrl) + && Objects.equals(declinedRedirectUrl, casted.declinedRedirectUrl) + && Objects.equals(areTextSignaturesEnabled, casted.areTextSignaturesEnabled) + && Objects.equals(emailSubject, casted.emailSubject) + && Objects.equals(emailMessage, casted.emailMessage) + && Objects.equals(areRemindersEnabled, casted.areRemindersEnabled) + && Objects.equals(name, casted.name) + && Objects.equals(prefillTags, casted.prefillTags) + && Objects.equals(daysValid, casted.daysValid) + && Objects.equals(externalId, casted.externalId) + && Objects.equals(templateId, casted.templateId) + && Objects.equals(externalSystemName, casted.externalSystemName); + } + + @Override + public int hashCode() { + return Objects.hash( + isDocumentPreparationNeeded, + redirectUrl, + declinedRedirectUrl, + areTextSignaturesEnabled, + emailSubject, + emailMessage, + areRemindersEnabled, + name, + prefillTags, + daysValid, + externalId, + templateId, + externalSystemName); + } + + @Override + public String toString() { + return "SignRequestBase{" + + "isDocumentPreparationNeeded='" + + isDocumentPreparationNeeded + + '\'' + + ", " + + "redirectUrl='" + + redirectUrl + + '\'' + + ", " + + "declinedRedirectUrl='" + + declinedRedirectUrl + + '\'' + + ", " + + "areTextSignaturesEnabled='" + + areTextSignaturesEnabled + + '\'' + + ", " + + "emailSubject='" + + emailSubject + + '\'' + + ", " + + "emailMessage='" + + emailMessage + + '\'' + + ", " + + "areRemindersEnabled='" + + areRemindersEnabled + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "prefillTags='" + + prefillTags + + '\'' + + ", " + + "daysValid='" + + daysValid + + '\'' + + ", " + + "externalId='" + + externalId + + '\'' + + ", " + + "templateId='" + + templateId + + '\'' + + ", " + + "externalSystemName='" + + externalSystemName + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean isDocumentPreparationNeeded; + + protected String redirectUrl; + + protected String declinedRedirectUrl; + + protected Boolean areTextSignaturesEnabled; + + protected String emailSubject; + + protected String emailMessage; + + protected Boolean areRemindersEnabled; + + protected String name; + + protected List prefillTags; + + protected Long daysValid; + + protected String externalId; + + protected String templateId; + + protected String externalSystemName; + + public Builder isDocumentPreparationNeeded(Boolean isDocumentPreparationNeeded) { + this.isDocumentPreparationNeeded = isDocumentPreparationNeeded; + return this; + } + + public Builder redirectUrl(String redirectUrl) { + this.redirectUrl = redirectUrl; + this.markNullableFieldAsSet("redirect_url"); + return this; + } + + public Builder declinedRedirectUrl(String declinedRedirectUrl) { + this.declinedRedirectUrl = declinedRedirectUrl; + this.markNullableFieldAsSet("declined_redirect_url"); + return this; + } + + public Builder areTextSignaturesEnabled(Boolean areTextSignaturesEnabled) { + this.areTextSignaturesEnabled = areTextSignaturesEnabled; + return this; + } + + public Builder emailSubject(String emailSubject) { + this.emailSubject = emailSubject; + this.markNullableFieldAsSet("email_subject"); + return this; + } + + public Builder emailMessage(String emailMessage) { + this.emailMessage = emailMessage; + this.markNullableFieldAsSet("email_message"); + return this; + } + + public Builder areRemindersEnabled(Boolean areRemindersEnabled) { + this.areRemindersEnabled = areRemindersEnabled; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder prefillTags(List prefillTags) { + this.prefillTags = prefillTags; + return this; + } + + public Builder daysValid(Long daysValid) { + this.daysValid = daysValid; + this.markNullableFieldAsSet("days_valid"); + return this; + } + + public Builder externalId(String externalId) { + this.externalId = externalId; + this.markNullableFieldAsSet("external_id"); + return this; + } + + public Builder templateId(String templateId) { + this.templateId = templateId; + this.markNullableFieldAsSet("template_id"); + return this; + } + + public Builder externalSystemName(String externalSystemName) { + this.externalSystemName = externalSystemName; + this.markNullableFieldAsSet("external_system_name"); + return this; + } + + public SignRequestBase build() { + return new SignRequestBase(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestcreaterequest/SignRequestCreateRequest.java b/src/main/java/com/box/sdkgen/schemas/signrequestcreaterequest/SignRequestCreateRequest.java new file mode 100644 index 000000000..16ae0b23a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestcreaterequest/SignRequestCreateRequest.java @@ -0,0 +1,324 @@ +package com.box.sdkgen.schemas.signrequestcreaterequest; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.schemas.filebase.FileBase; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.signrequestbase.SignRequestBase; +import com.box.sdkgen.schemas.signrequestcreatesigner.SignRequestCreateSigner; +import com.box.sdkgen.schemas.signrequestprefilltag.SignRequestPrefillTag; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SignRequestCreateRequest extends SignRequestBase { + + @JsonProperty("source_files") + @Nullable + protected List sourceFiles; + + @JsonDeserialize( + using = + SignRequestCreateRequestSignatureColorField + .SignRequestCreateRequestSignatureColorFieldDeserializer.class) + @JsonSerialize( + using = + SignRequestCreateRequestSignatureColorField + .SignRequestCreateRequestSignatureColorFieldSerializer.class) + @JsonProperty("signature_color") + @Nullable + protected EnumWrapper signatureColor; + + protected final List signers; + + @JsonProperty("parent_folder") + protected FolderMini parentFolder; + + public SignRequestCreateRequest(@JsonProperty("signers") List signers) { + super(); + this.signers = signers; + } + + protected SignRequestCreateRequest(Builder builder) { + super(builder); + this.sourceFiles = builder.sourceFiles; + this.signatureColor = builder.signatureColor; + this.signers = builder.signers; + this.parentFolder = builder.parentFolder; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getSourceFiles() { + return sourceFiles; + } + + public EnumWrapper getSignatureColor() { + return signatureColor; + } + + public List getSigners() { + return signers; + } + + public FolderMini getParentFolder() { + return parentFolder; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestCreateRequest casted = (SignRequestCreateRequest) o; + return Objects.equals(isDocumentPreparationNeeded, casted.isDocumentPreparationNeeded) + && Objects.equals(redirectUrl, casted.redirectUrl) + && Objects.equals(declinedRedirectUrl, casted.declinedRedirectUrl) + && Objects.equals(areTextSignaturesEnabled, casted.areTextSignaturesEnabled) + && Objects.equals(emailSubject, casted.emailSubject) + && Objects.equals(emailMessage, casted.emailMessage) + && Objects.equals(areRemindersEnabled, casted.areRemindersEnabled) + && Objects.equals(name, casted.name) + && Objects.equals(prefillTags, casted.prefillTags) + && Objects.equals(daysValid, casted.daysValid) + && Objects.equals(externalId, casted.externalId) + && Objects.equals(templateId, casted.templateId) + && Objects.equals(externalSystemName, casted.externalSystemName) + && Objects.equals(sourceFiles, casted.sourceFiles) + && Objects.equals(signatureColor, casted.signatureColor) + && Objects.equals(signers, casted.signers) + && Objects.equals(parentFolder, casted.parentFolder); + } + + @Override + public int hashCode() { + return Objects.hash( + isDocumentPreparationNeeded, + redirectUrl, + declinedRedirectUrl, + areTextSignaturesEnabled, + emailSubject, + emailMessage, + areRemindersEnabled, + name, + prefillTags, + daysValid, + externalId, + templateId, + externalSystemName, + sourceFiles, + signatureColor, + signers, + parentFolder); + } + + @Override + public String toString() { + return "SignRequestCreateRequest{" + + "isDocumentPreparationNeeded='" + + isDocumentPreparationNeeded + + '\'' + + ", " + + "redirectUrl='" + + redirectUrl + + '\'' + + ", " + + "declinedRedirectUrl='" + + declinedRedirectUrl + + '\'' + + ", " + + "areTextSignaturesEnabled='" + + areTextSignaturesEnabled + + '\'' + + ", " + + "emailSubject='" + + emailSubject + + '\'' + + ", " + + "emailMessage='" + + emailMessage + + '\'' + + ", " + + "areRemindersEnabled='" + + areRemindersEnabled + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "prefillTags='" + + prefillTags + + '\'' + + ", " + + "daysValid='" + + daysValid + + '\'' + + ", " + + "externalId='" + + externalId + + '\'' + + ", " + + "templateId='" + + templateId + + '\'' + + ", " + + "externalSystemName='" + + externalSystemName + + '\'' + + ", " + + "sourceFiles='" + + sourceFiles + + '\'' + + ", " + + "signatureColor='" + + signatureColor + + '\'' + + ", " + + "signers='" + + signers + + '\'' + + ", " + + "parentFolder='" + + parentFolder + + '\'' + + "}"; + } + + public static class Builder extends SignRequestBase.Builder { + + protected List sourceFiles; + + protected EnumWrapper signatureColor; + + protected final List signers; + + protected FolderMini parentFolder; + + public Builder(List signers) { + super(); + this.signers = signers; + } + + public Builder sourceFiles(List sourceFiles) { + this.sourceFiles = sourceFiles; + this.markNullableFieldAsSet("source_files"); + return this; + } + + public Builder signatureColor(SignRequestCreateRequestSignatureColorField signatureColor) { + this.signatureColor = + new EnumWrapper(signatureColor); + this.markNullableFieldAsSet("signature_color"); + return this; + } + + public Builder signatureColor( + EnumWrapper signatureColor) { + this.signatureColor = signatureColor; + this.markNullableFieldAsSet("signature_color"); + return this; + } + + public Builder parentFolder(FolderMini parentFolder) { + this.parentFolder = parentFolder; + return this; + } + + @Override + public Builder isDocumentPreparationNeeded(Boolean isDocumentPreparationNeeded) { + this.isDocumentPreparationNeeded = isDocumentPreparationNeeded; + return this; + } + + @Override + public Builder redirectUrl(String redirectUrl) { + this.redirectUrl = redirectUrl; + this.markNullableFieldAsSet("redirect_url"); + return this; + } + + @Override + public Builder declinedRedirectUrl(String declinedRedirectUrl) { + this.declinedRedirectUrl = declinedRedirectUrl; + this.markNullableFieldAsSet("declined_redirect_url"); + return this; + } + + @Override + public Builder areTextSignaturesEnabled(Boolean areTextSignaturesEnabled) { + this.areTextSignaturesEnabled = areTextSignaturesEnabled; + return this; + } + + @Override + public Builder emailSubject(String emailSubject) { + this.emailSubject = emailSubject; + this.markNullableFieldAsSet("email_subject"); + return this; + } + + @Override + public Builder emailMessage(String emailMessage) { + this.emailMessage = emailMessage; + this.markNullableFieldAsSet("email_message"); + return this; + } + + @Override + public Builder areRemindersEnabled(Boolean areRemindersEnabled) { + this.areRemindersEnabled = areRemindersEnabled; + return this; + } + + @Override + public Builder name(String name) { + this.name = name; + return this; + } + + @Override + public Builder prefillTags(List prefillTags) { + this.prefillTags = prefillTags; + return this; + } + + @Override + public Builder daysValid(Long daysValid) { + this.daysValid = daysValid; + this.markNullableFieldAsSet("days_valid"); + return this; + } + + @Override + public Builder externalId(String externalId) { + this.externalId = externalId; + this.markNullableFieldAsSet("external_id"); + return this; + } + + @Override + public Builder templateId(String templateId) { + this.templateId = templateId; + this.markNullableFieldAsSet("template_id"); + return this; + } + + @Override + public Builder externalSystemName(String externalSystemName) { + this.externalSystemName = externalSystemName; + this.markNullableFieldAsSet("external_system_name"); + return this; + } + + public SignRequestCreateRequest build() { + return new SignRequestCreateRequest(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestcreaterequest/SignRequestCreateRequestSignatureColorField.java b/src/main/java/com/box/sdkgen/schemas/signrequestcreaterequest/SignRequestCreateRequestSignatureColorField.java new file mode 100644 index 000000000..31c969827 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestcreaterequest/SignRequestCreateRequestSignatureColorField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.signrequestcreaterequest; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SignRequestCreateRequestSignatureColorField implements Valuable { + BLUE("blue"), + BLACK("black"), + RED("red"); + + private final String value; + + SignRequestCreateRequestSignatureColorField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestCreateRequestSignatureColorFieldDeserializer + extends JsonDeserializer> { + + public SignRequestCreateRequestSignatureColorFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestCreateRequestSignatureColorField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SignRequestCreateRequestSignatureColorFieldSerializer + extends JsonSerializer> { + + public SignRequestCreateRequestSignatureColorFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestcreatesigner/SignRequestCreateSigner.java b/src/main/java/com/box/sdkgen/schemas/signrequestcreatesigner/SignRequestCreateSigner.java new file mode 100644 index 000000000..6dccc19d9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestcreatesigner/SignRequestCreateSigner.java @@ -0,0 +1,325 @@ +package com.box.sdkgen.schemas.signrequestcreatesigner; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SignRequestCreateSigner extends SerializableObject { + + @Nullable protected String email; + + @JsonDeserialize( + using = SignRequestCreateSignerRoleField.SignRequestCreateSignerRoleFieldDeserializer.class) + @JsonSerialize( + using = SignRequestCreateSignerRoleField.SignRequestCreateSignerRoleFieldSerializer.class) + protected EnumWrapper role; + + @JsonProperty("is_in_person") + protected Boolean isInPerson; + + protected Long order; + + @JsonProperty("embed_url_external_user_id") + @Nullable + protected String embedUrlExternalUserId; + + @JsonProperty("redirect_url") + @Nullable + protected String redirectUrl; + + @JsonProperty("declined_redirect_url") + @Nullable + protected String declinedRedirectUrl; + + @JsonProperty("login_required") + @Nullable + protected Boolean loginRequired; + + @JsonProperty("verification_phone_number") + @Nullable + protected String verificationPhoneNumber; + + @Nullable protected String password; + + @JsonProperty("signer_group_id") + @Nullable + protected String signerGroupId; + + @JsonProperty("suppress_notifications") + @Nullable + protected Boolean suppressNotifications; + + public SignRequestCreateSigner() { + super(); + } + + protected SignRequestCreateSigner(Builder builder) { + super(); + this.email = builder.email; + this.role = builder.role; + this.isInPerson = builder.isInPerson; + this.order = builder.order; + this.embedUrlExternalUserId = builder.embedUrlExternalUserId; + this.redirectUrl = builder.redirectUrl; + this.declinedRedirectUrl = builder.declinedRedirectUrl; + this.loginRequired = builder.loginRequired; + this.verificationPhoneNumber = builder.verificationPhoneNumber; + this.password = builder.password; + this.signerGroupId = builder.signerGroupId; + this.suppressNotifications = builder.suppressNotifications; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getEmail() { + return email; + } + + public EnumWrapper getRole() { + return role; + } + + public Boolean getIsInPerson() { + return isInPerson; + } + + public Long getOrder() { + return order; + } + + public String getEmbedUrlExternalUserId() { + return embedUrlExternalUserId; + } + + public String getRedirectUrl() { + return redirectUrl; + } + + public String getDeclinedRedirectUrl() { + return declinedRedirectUrl; + } + + public Boolean getLoginRequired() { + return loginRequired; + } + + public String getVerificationPhoneNumber() { + return verificationPhoneNumber; + } + + public String getPassword() { + return password; + } + + public String getSignerGroupId() { + return signerGroupId; + } + + public Boolean getSuppressNotifications() { + return suppressNotifications; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestCreateSigner casted = (SignRequestCreateSigner) o; + return Objects.equals(email, casted.email) + && Objects.equals(role, casted.role) + && Objects.equals(isInPerson, casted.isInPerson) + && Objects.equals(order, casted.order) + && Objects.equals(embedUrlExternalUserId, casted.embedUrlExternalUserId) + && Objects.equals(redirectUrl, casted.redirectUrl) + && Objects.equals(declinedRedirectUrl, casted.declinedRedirectUrl) + && Objects.equals(loginRequired, casted.loginRequired) + && Objects.equals(verificationPhoneNumber, casted.verificationPhoneNumber) + && Objects.equals(password, casted.password) + && Objects.equals(signerGroupId, casted.signerGroupId) + && Objects.equals(suppressNotifications, casted.suppressNotifications); + } + + @Override + public int hashCode() { + return Objects.hash( + email, + role, + isInPerson, + order, + embedUrlExternalUserId, + redirectUrl, + declinedRedirectUrl, + loginRequired, + verificationPhoneNumber, + password, + signerGroupId, + suppressNotifications); + } + + @Override + public String toString() { + return "SignRequestCreateSigner{" + + "email='" + + email + + '\'' + + ", " + + "role='" + + role + + '\'' + + ", " + + "isInPerson='" + + isInPerson + + '\'' + + ", " + + "order='" + + order + + '\'' + + ", " + + "embedUrlExternalUserId='" + + embedUrlExternalUserId + + '\'' + + ", " + + "redirectUrl='" + + redirectUrl + + '\'' + + ", " + + "declinedRedirectUrl='" + + declinedRedirectUrl + + '\'' + + ", " + + "loginRequired='" + + loginRequired + + '\'' + + ", " + + "verificationPhoneNumber='" + + verificationPhoneNumber + + '\'' + + ", " + + "password='" + + password + + '\'' + + ", " + + "signerGroupId='" + + signerGroupId + + '\'' + + ", " + + "suppressNotifications='" + + suppressNotifications + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String email; + + protected EnumWrapper role; + + protected Boolean isInPerson; + + protected Long order; + + protected String embedUrlExternalUserId; + + protected String redirectUrl; + + protected String declinedRedirectUrl; + + protected Boolean loginRequired; + + protected String verificationPhoneNumber; + + protected String password; + + protected String signerGroupId; + + protected Boolean suppressNotifications; + + public Builder email(String email) { + this.email = email; + this.markNullableFieldAsSet("email"); + return this; + } + + public Builder role(SignRequestCreateSignerRoleField role) { + this.role = new EnumWrapper(role); + return this; + } + + public Builder role(EnumWrapper role) { + this.role = role; + return this; + } + + public Builder isInPerson(Boolean isInPerson) { + this.isInPerson = isInPerson; + return this; + } + + public Builder order(Long order) { + this.order = order; + return this; + } + + public Builder embedUrlExternalUserId(String embedUrlExternalUserId) { + this.embedUrlExternalUserId = embedUrlExternalUserId; + this.markNullableFieldAsSet("embed_url_external_user_id"); + return this; + } + + public Builder redirectUrl(String redirectUrl) { + this.redirectUrl = redirectUrl; + this.markNullableFieldAsSet("redirect_url"); + return this; + } + + public Builder declinedRedirectUrl(String declinedRedirectUrl) { + this.declinedRedirectUrl = declinedRedirectUrl; + this.markNullableFieldAsSet("declined_redirect_url"); + return this; + } + + public Builder loginRequired(Boolean loginRequired) { + this.loginRequired = loginRequired; + this.markNullableFieldAsSet("login_required"); + return this; + } + + public Builder verificationPhoneNumber(String verificationPhoneNumber) { + this.verificationPhoneNumber = verificationPhoneNumber; + this.markNullableFieldAsSet("verification_phone_number"); + return this; + } + + public Builder password(String password) { + this.password = password; + this.markNullableFieldAsSet("password"); + return this; + } + + public Builder signerGroupId(String signerGroupId) { + this.signerGroupId = signerGroupId; + this.markNullableFieldAsSet("signer_group_id"); + return this; + } + + public Builder suppressNotifications(Boolean suppressNotifications) { + this.suppressNotifications = suppressNotifications; + this.markNullableFieldAsSet("suppress_notifications"); + return this; + } + + public SignRequestCreateSigner build() { + return new SignRequestCreateSigner(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestcreatesigner/SignRequestCreateSignerRoleField.java b/src/main/java/com/box/sdkgen/schemas/signrequestcreatesigner/SignRequestCreateSignerRoleField.java new file mode 100644 index 000000000..543e56117 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestcreatesigner/SignRequestCreateSignerRoleField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.signrequestcreatesigner; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SignRequestCreateSignerRoleField implements Valuable { + SIGNER("signer"), + APPROVER("approver"), + FINAL_COPY_READER("final_copy_reader"); + + private final String value; + + SignRequestCreateSignerRoleField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestCreateSignerRoleFieldDeserializer + extends JsonDeserializer> { + + public SignRequestCreateSignerRoleFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestCreateSignerRoleField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SignRequestCreateSignerRoleFieldSerializer + extends JsonSerializer> { + + public SignRequestCreateSignerRoleFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestprefilltag/SignRequestPrefillTag.java b/src/main/java/com/box/sdkgen/schemas/signrequestprefilltag/SignRequestPrefillTag.java new file mode 100644 index 000000000..3a9793a77 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestprefilltag/SignRequestPrefillTag.java @@ -0,0 +1,143 @@ +package com.box.sdkgen.schemas.signrequestprefilltag; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateUtils; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SignRequestPrefillTag extends SerializableObject { + + @JsonProperty("document_tag_id") + @Nullable + protected String documentTagId; + + @JsonProperty("text_value") + @Nullable + protected String textValue; + + @JsonProperty("checkbox_value") + @Nullable + protected Boolean checkboxValue; + + @JsonProperty("date_value") + @JsonSerialize(using = DateUtils.DateSerializer.class) + @JsonDeserialize(using = DateUtils.DateDeserializer.class) + @Nullable + protected Date dateValue; + + public SignRequestPrefillTag() { + super(); + } + + protected SignRequestPrefillTag(Builder builder) { + super(); + this.documentTagId = builder.documentTagId; + this.textValue = builder.textValue; + this.checkboxValue = builder.checkboxValue; + this.dateValue = builder.dateValue; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getDocumentTagId() { + return documentTagId; + } + + public String getTextValue() { + return textValue; + } + + public Boolean getCheckboxValue() { + return checkboxValue; + } + + public Date getDateValue() { + return dateValue; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestPrefillTag casted = (SignRequestPrefillTag) o; + return Objects.equals(documentTagId, casted.documentTagId) + && Objects.equals(textValue, casted.textValue) + && Objects.equals(checkboxValue, casted.checkboxValue) + && Objects.equals(dateValue, casted.dateValue); + } + + @Override + public int hashCode() { + return Objects.hash(documentTagId, textValue, checkboxValue, dateValue); + } + + @Override + public String toString() { + return "SignRequestPrefillTag{" + + "documentTagId='" + + documentTagId + + '\'' + + ", " + + "textValue='" + + textValue + + '\'' + + ", " + + "checkboxValue='" + + checkboxValue + + '\'' + + ", " + + "dateValue='" + + dateValue + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String documentTagId; + + protected String textValue; + + protected Boolean checkboxValue; + + protected Date dateValue; + + public Builder documentTagId(String documentTagId) { + this.documentTagId = documentTagId; + this.markNullableFieldAsSet("document_tag_id"); + return this; + } + + public Builder textValue(String textValue) { + this.textValue = textValue; + this.markNullableFieldAsSet("text_value"); + return this; + } + + public Builder checkboxValue(Boolean checkboxValue) { + this.checkboxValue = checkboxValue; + this.markNullableFieldAsSet("checkbox_value"); + return this; + } + + public Builder dateValue(Date dateValue) { + this.dateValue = dateValue; + this.markNullableFieldAsSet("date_value"); + return this; + } + + public SignRequestPrefillTag build() { + return new SignRequestPrefillTag(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequests/SignRequests.java b/src/main/java/com/box/sdkgen/schemas/signrequests/SignRequests.java new file mode 100644 index 000000000..5172097a1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequests/SignRequests.java @@ -0,0 +1,111 @@ +package com.box.sdkgen.schemas.signrequests; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.signrequest.SignRequest; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SignRequests extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + protected List entries; + + public SignRequests() { + super(); + } + + protected SignRequests(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequests casted = (SignRequests) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, entries); + } + + @Override + public String toString() { + return "SignRequests{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public SignRequests build() { + return new SignRequests(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSigner.java b/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSigner.java new file mode 100644 index 000000000..368ce7a43 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSigner.java @@ -0,0 +1,321 @@ +package com.box.sdkgen.schemas.signrequestsigner; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.schemas.signrequestcreatesigner.SignRequestCreateSigner; +import com.box.sdkgen.schemas.signrequestcreatesigner.SignRequestCreateSignerRoleField; +import com.box.sdkgen.schemas.signrequestsignerinput.SignRequestSignerInput; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SignRequestSigner extends SignRequestCreateSigner { + + @JsonProperty("has_viewed_document") + protected Boolean hasViewedDocument; + + @JsonProperty("signer_decision") + @Nullable + protected SignRequestSignerSignerDecisionField signerDecision; + + protected List inputs; + + @JsonProperty("embed_url") + @Nullable + protected String embedUrl; + + @JsonProperty("iframeable_embed_url") + @Nullable + protected String iframeableEmbedUrl; + + public SignRequestSigner() { + super(); + } + + protected SignRequestSigner(Builder builder) { + super(builder); + this.hasViewedDocument = builder.hasViewedDocument; + this.signerDecision = builder.signerDecision; + this.inputs = builder.inputs; + this.embedUrl = builder.embedUrl; + this.iframeableEmbedUrl = builder.iframeableEmbedUrl; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getHasViewedDocument() { + return hasViewedDocument; + } + + public SignRequestSignerSignerDecisionField getSignerDecision() { + return signerDecision; + } + + public List getInputs() { + return inputs; + } + + public String getEmbedUrl() { + return embedUrl; + } + + public String getIframeableEmbedUrl() { + return iframeableEmbedUrl; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSigner casted = (SignRequestSigner) o; + return Objects.equals(email, casted.email) + && Objects.equals(role, casted.role) + && Objects.equals(isInPerson, casted.isInPerson) + && Objects.equals(order, casted.order) + && Objects.equals(embedUrlExternalUserId, casted.embedUrlExternalUserId) + && Objects.equals(redirectUrl, casted.redirectUrl) + && Objects.equals(declinedRedirectUrl, casted.declinedRedirectUrl) + && Objects.equals(loginRequired, casted.loginRequired) + && Objects.equals(verificationPhoneNumber, casted.verificationPhoneNumber) + && Objects.equals(password, casted.password) + && Objects.equals(signerGroupId, casted.signerGroupId) + && Objects.equals(suppressNotifications, casted.suppressNotifications) + && Objects.equals(hasViewedDocument, casted.hasViewedDocument) + && Objects.equals(signerDecision, casted.signerDecision) + && Objects.equals(inputs, casted.inputs) + && Objects.equals(embedUrl, casted.embedUrl) + && Objects.equals(iframeableEmbedUrl, casted.iframeableEmbedUrl); + } + + @Override + public int hashCode() { + return Objects.hash( + email, + role, + isInPerson, + order, + embedUrlExternalUserId, + redirectUrl, + declinedRedirectUrl, + loginRequired, + verificationPhoneNumber, + password, + signerGroupId, + suppressNotifications, + hasViewedDocument, + signerDecision, + inputs, + embedUrl, + iframeableEmbedUrl); + } + + @Override + public String toString() { + return "SignRequestSigner{" + + "email='" + + email + + '\'' + + ", " + + "role='" + + role + + '\'' + + ", " + + "isInPerson='" + + isInPerson + + '\'' + + ", " + + "order='" + + order + + '\'' + + ", " + + "embedUrlExternalUserId='" + + embedUrlExternalUserId + + '\'' + + ", " + + "redirectUrl='" + + redirectUrl + + '\'' + + ", " + + "declinedRedirectUrl='" + + declinedRedirectUrl + + '\'' + + ", " + + "loginRequired='" + + loginRequired + + '\'' + + ", " + + "verificationPhoneNumber='" + + verificationPhoneNumber + + '\'' + + ", " + + "password='" + + password + + '\'' + + ", " + + "signerGroupId='" + + signerGroupId + + '\'' + + ", " + + "suppressNotifications='" + + suppressNotifications + + '\'' + + ", " + + "hasViewedDocument='" + + hasViewedDocument + + '\'' + + ", " + + "signerDecision='" + + signerDecision + + '\'' + + ", " + + "inputs='" + + inputs + + '\'' + + ", " + + "embedUrl='" + + embedUrl + + '\'' + + ", " + + "iframeableEmbedUrl='" + + iframeableEmbedUrl + + '\'' + + "}"; + } + + public static class Builder extends SignRequestCreateSigner.Builder { + + protected Boolean hasViewedDocument; + + protected SignRequestSignerSignerDecisionField signerDecision; + + protected List inputs; + + protected String embedUrl; + + protected String iframeableEmbedUrl; + + public Builder hasViewedDocument(Boolean hasViewedDocument) { + this.hasViewedDocument = hasViewedDocument; + return this; + } + + public Builder signerDecision(SignRequestSignerSignerDecisionField signerDecision) { + this.signerDecision = signerDecision; + this.markNullableFieldAsSet("signer_decision"); + return this; + } + + public Builder inputs(List inputs) { + this.inputs = inputs; + return this; + } + + public Builder embedUrl(String embedUrl) { + this.embedUrl = embedUrl; + this.markNullableFieldAsSet("embed_url"); + return this; + } + + public Builder iframeableEmbedUrl(String iframeableEmbedUrl) { + this.iframeableEmbedUrl = iframeableEmbedUrl; + this.markNullableFieldAsSet("iframeable_embed_url"); + return this; + } + + @Override + public Builder email(String email) { + this.email = email; + this.markNullableFieldAsSet("email"); + return this; + } + + @Override + public Builder role(SignRequestCreateSignerRoleField role) { + this.role = new EnumWrapper(role); + return this; + } + + @Override + public Builder role(EnumWrapper role) { + this.role = role; + return this; + } + + @Override + public Builder isInPerson(Boolean isInPerson) { + this.isInPerson = isInPerson; + return this; + } + + @Override + public Builder order(Long order) { + this.order = order; + return this; + } + + @Override + public Builder embedUrlExternalUserId(String embedUrlExternalUserId) { + this.embedUrlExternalUserId = embedUrlExternalUserId; + this.markNullableFieldAsSet("embed_url_external_user_id"); + return this; + } + + @Override + public Builder redirectUrl(String redirectUrl) { + this.redirectUrl = redirectUrl; + this.markNullableFieldAsSet("redirect_url"); + return this; + } + + @Override + public Builder declinedRedirectUrl(String declinedRedirectUrl) { + this.declinedRedirectUrl = declinedRedirectUrl; + this.markNullableFieldAsSet("declined_redirect_url"); + return this; + } + + @Override + public Builder loginRequired(Boolean loginRequired) { + this.loginRequired = loginRequired; + this.markNullableFieldAsSet("login_required"); + return this; + } + + @Override + public Builder verificationPhoneNumber(String verificationPhoneNumber) { + this.verificationPhoneNumber = verificationPhoneNumber; + this.markNullableFieldAsSet("verification_phone_number"); + return this; + } + + @Override + public Builder password(String password) { + this.password = password; + this.markNullableFieldAsSet("password"); + return this; + } + + @Override + public Builder signerGroupId(String signerGroupId) { + this.signerGroupId = signerGroupId; + this.markNullableFieldAsSet("signer_group_id"); + return this; + } + + @Override + public Builder suppressNotifications(Boolean suppressNotifications) { + this.suppressNotifications = suppressNotifications; + this.markNullableFieldAsSet("suppress_notifications"); + return this; + } + + public SignRequestSigner build() { + return new SignRequestSigner(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSignerSignerDecisionField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSignerSignerDecisionField.java new file mode 100644 index 000000000..c69b3a0a4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSignerSignerDecisionField.java @@ -0,0 +1,130 @@ +package com.box.sdkgen.schemas.signrequestsigner; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerSignerDecisionField extends SerializableObject { + + @JsonDeserialize( + using = + SignRequestSignerSignerDecisionTypeField + .SignRequestSignerSignerDecisionTypeFieldDeserializer.class) + @JsonSerialize( + using = + SignRequestSignerSignerDecisionTypeField + .SignRequestSignerSignerDecisionTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("finalized_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date finalizedAt; + + @JsonProperty("additional_info") + @Nullable + protected String additionalInfo; + + public SignRequestSignerSignerDecisionField() { + super(); + } + + protected SignRequestSignerSignerDecisionField(Builder builder) { + super(); + this.type = builder.type; + this.finalizedAt = builder.finalizedAt; + this.additionalInfo = builder.additionalInfo; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public Date getFinalizedAt() { + return finalizedAt; + } + + public String getAdditionalInfo() { + return additionalInfo; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerSignerDecisionField casted = (SignRequestSignerSignerDecisionField) o; + return Objects.equals(type, casted.type) + && Objects.equals(finalizedAt, casted.finalizedAt) + && Objects.equals(additionalInfo, casted.additionalInfo); + } + + @Override + public int hashCode() { + return Objects.hash(type, finalizedAt, additionalInfo); + } + + @Override + public String toString() { + return "SignRequestSignerSignerDecisionField{" + + "type='" + + type + + '\'' + + ", " + + "finalizedAt='" + + finalizedAt + + '\'' + + ", " + + "additionalInfo='" + + additionalInfo + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected Date finalizedAt; + + protected String additionalInfo; + + public Builder type(SignRequestSignerSignerDecisionTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder finalizedAt(Date finalizedAt) { + this.finalizedAt = finalizedAt; + return this; + } + + public Builder additionalInfo(String additionalInfo) { + this.additionalInfo = additionalInfo; + this.markNullableFieldAsSet("additional_info"); + return this; + } + + public SignRequestSignerSignerDecisionField build() { + return new SignRequestSignerSignerDecisionField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSignerSignerDecisionTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSignerSignerDecisionTypeField.java new file mode 100644 index 000000000..582635fb1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSignerSignerDecisionTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.signrequestsigner; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SignRequestSignerSignerDecisionTypeField implements Valuable { + SIGNED("signed"), + DECLINED("declined"); + + private final String value; + + SignRequestSignerSignerDecisionTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestSignerSignerDecisionTypeFieldDeserializer + extends JsonDeserializer> { + + public SignRequestSignerSignerDecisionTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestSignerSignerDecisionTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SignRequestSignerSignerDecisionTypeFieldSerializer + extends JsonSerializer> { + + public SignRequestSignerSignerDecisionTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInput.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInput.java new file mode 100644 index 000000000..71d3fa265 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInput.java @@ -0,0 +1,202 @@ +package com.box.sdkgen.schemas.signrequestsignerinput; + +import com.box.sdkgen.schemas.signrequestprefilltag.SignRequestPrefillTag; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerInput extends SignRequestPrefillTag { + + @JsonDeserialize( + using = SignRequestSignerInputTypeField.SignRequestSignerInputTypeFieldDeserializer.class) + @JsonSerialize( + using = SignRequestSignerInputTypeField.SignRequestSignerInputTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonDeserialize( + using = + SignRequestSignerInputContentTypeField.SignRequestSignerInputContentTypeFieldDeserializer + .class) + @JsonSerialize( + using = + SignRequestSignerInputContentTypeField.SignRequestSignerInputContentTypeFieldSerializer + .class) + @JsonProperty("content_type") + protected EnumWrapper contentType; + + @JsonProperty("page_index") + protected final long pageIndex; + + @JsonProperty("read_only") + protected Boolean readOnly; + + public SignRequestSignerInput(@JsonProperty("page_index") long pageIndex) { + super(); + this.pageIndex = pageIndex; + } + + protected SignRequestSignerInput(Builder builder) { + super(builder); + this.type = builder.type; + this.contentType = builder.contentType; + this.pageIndex = builder.pageIndex; + this.readOnly = builder.readOnly; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public EnumWrapper getContentType() { + return contentType; + } + + public long getPageIndex() { + return pageIndex; + } + + public Boolean getReadOnly() { + return readOnly; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerInput casted = (SignRequestSignerInput) o; + return Objects.equals(documentTagId, casted.documentTagId) + && Objects.equals(textValue, casted.textValue) + && Objects.equals(checkboxValue, casted.checkboxValue) + && Objects.equals(dateValue, casted.dateValue) + && Objects.equals(type, casted.type) + && Objects.equals(contentType, casted.contentType) + && Objects.equals(pageIndex, casted.pageIndex) + && Objects.equals(readOnly, casted.readOnly); + } + + @Override + public int hashCode() { + return Objects.hash( + documentTagId, textValue, checkboxValue, dateValue, type, contentType, pageIndex, readOnly); + } + + @Override + public String toString() { + return "SignRequestSignerInput{" + + "documentTagId='" + + documentTagId + + '\'' + + ", " + + "textValue='" + + textValue + + '\'' + + ", " + + "checkboxValue='" + + checkboxValue + + '\'' + + ", " + + "dateValue='" + + dateValue + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "contentType='" + + contentType + + '\'' + + ", " + + "pageIndex='" + + pageIndex + + '\'' + + ", " + + "readOnly='" + + readOnly + + '\'' + + "}"; + } + + public static class Builder extends SignRequestPrefillTag.Builder { + + protected EnumWrapper type; + + protected EnumWrapper contentType; + + protected final long pageIndex; + + protected Boolean readOnly; + + public Builder(long pageIndex) { + super(); + this.pageIndex = pageIndex; + } + + public Builder type(SignRequestSignerInputTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder contentType(SignRequestSignerInputContentTypeField contentType) { + this.contentType = new EnumWrapper(contentType); + return this; + } + + public Builder contentType(EnumWrapper contentType) { + this.contentType = contentType; + return this; + } + + public Builder readOnly(Boolean readOnly) { + this.readOnly = readOnly; + return this; + } + + @Override + public Builder documentTagId(String documentTagId) { + this.documentTagId = documentTagId; + this.markNullableFieldAsSet("document_tag_id"); + return this; + } + + @Override + public Builder textValue(String textValue) { + this.textValue = textValue; + this.markNullableFieldAsSet("text_value"); + return this; + } + + @Override + public Builder checkboxValue(Boolean checkboxValue) { + this.checkboxValue = checkboxValue; + this.markNullableFieldAsSet("checkbox_value"); + return this; + } + + @Override + public Builder dateValue(Date dateValue) { + this.dateValue = dateValue; + this.markNullableFieldAsSet("date_value"); + return this; + } + + public SignRequestSignerInput build() { + return new SignRequestSignerInput(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInputContentTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInputContentTypeField.java new file mode 100644 index 000000000..79ee003f9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInputContentTypeField.java @@ -0,0 +1,76 @@ +package com.box.sdkgen.schemas.signrequestsignerinput; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SignRequestSignerInputContentTypeField implements Valuable { + SIGNATURE("signature"), + INITIAL("initial"), + STAMP("stamp"), + DATE("date"), + CHECKBOX("checkbox"), + TEXT("text"), + FULL_NAME("full_name"), + FIRST_NAME("first_name"), + LAST_NAME("last_name"), + COMPANY("company"), + TITLE("title"), + EMAIL("email"), + ATTACHMENT("attachment"), + RADIO("radio"), + DROPDOWN("dropdown"); + + private final String value; + + SignRequestSignerInputContentTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestSignerInputContentTypeFieldDeserializer + extends JsonDeserializer> { + + public SignRequestSignerInputContentTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestSignerInputContentTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SignRequestSignerInputContentTypeFieldSerializer + extends JsonSerializer> { + + public SignRequestSignerInputContentTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInputTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInputTypeField.java new file mode 100644 index 000000000..79b69c16a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInputTypeField.java @@ -0,0 +1,67 @@ +package com.box.sdkgen.schemas.signrequestsignerinput; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SignRequestSignerInputTypeField implements Valuable { + SIGNATURE("signature"), + DATE("date"), + TEXT("text"), + CHECKBOX("checkbox"), + RADIO("radio"), + DROPDOWN("dropdown"); + + private final String value; + + SignRequestSignerInputTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestSignerInputTypeFieldDeserializer + extends JsonDeserializer> { + + public SignRequestSignerInputTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestSignerInputTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SignRequestSignerInputTypeFieldSerializer + extends JsonSerializer> { + + public SignRequestSignerInputTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplate.java b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplate.java new file mode 100644 index 000000000..84c792082 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplate.java @@ -0,0 +1,427 @@ +package com.box.sdkgen.schemas.signtemplate; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.filemini.FileMini; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.templatesigner.TemplateSigner; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SignTemplate extends SerializableObject { + + @JsonDeserialize(using = SignTemplateTypeField.SignTemplateTypeFieldDeserializer.class) + @JsonSerialize(using = SignTemplateTypeField.SignTemplateTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String id; + + @Nullable protected String name; + + @JsonProperty("email_subject") + @Nullable + protected String emailSubject; + + @JsonProperty("email_message") + @Nullable + protected String emailMessage; + + @JsonProperty("days_valid") + @Nullable + protected Long daysValid; + + @JsonProperty("parent_folder") + protected FolderMini parentFolder; + + @JsonProperty("source_files") + protected List sourceFiles; + + @JsonProperty("are_fields_locked") + protected Boolean areFieldsLocked; + + @JsonProperty("are_options_locked") + protected Boolean areOptionsLocked; + + @JsonProperty("are_recipients_locked") + protected Boolean areRecipientsLocked; + + @JsonProperty("are_email_settings_locked") + protected Boolean areEmailSettingsLocked; + + @JsonProperty("are_files_locked") + protected Boolean areFilesLocked; + + protected List signers; + + @JsonProperty("additional_info") + protected SignTemplateAdditionalInfoField additionalInfo; + + @JsonProperty("ready_sign_link") + @Nullable + protected SignTemplateReadySignLinkField readySignLink; + + @JsonProperty("custom_branding") + @Nullable + protected SignTemplateCustomBrandingField customBranding; + + public SignTemplate() { + super(); + } + + protected SignTemplate(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + this.name = builder.name; + this.emailSubject = builder.emailSubject; + this.emailMessage = builder.emailMessage; + this.daysValid = builder.daysValid; + this.parentFolder = builder.parentFolder; + this.sourceFiles = builder.sourceFiles; + this.areFieldsLocked = builder.areFieldsLocked; + this.areOptionsLocked = builder.areOptionsLocked; + this.areRecipientsLocked = builder.areRecipientsLocked; + this.areEmailSettingsLocked = builder.areEmailSettingsLocked; + this.areFilesLocked = builder.areFilesLocked; + this.signers = builder.signers; + this.additionalInfo = builder.additionalInfo; + this.readySignLink = builder.readySignLink; + this.customBranding = builder.customBranding; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + public String getName() { + return name; + } + + public String getEmailSubject() { + return emailSubject; + } + + public String getEmailMessage() { + return emailMessage; + } + + public Long getDaysValid() { + return daysValid; + } + + public FolderMini getParentFolder() { + return parentFolder; + } + + public List getSourceFiles() { + return sourceFiles; + } + + public Boolean getAreFieldsLocked() { + return areFieldsLocked; + } + + public Boolean getAreOptionsLocked() { + return areOptionsLocked; + } + + public Boolean getAreRecipientsLocked() { + return areRecipientsLocked; + } + + public Boolean getAreEmailSettingsLocked() { + return areEmailSettingsLocked; + } + + public Boolean getAreFilesLocked() { + return areFilesLocked; + } + + public List getSigners() { + return signers; + } + + public SignTemplateAdditionalInfoField getAdditionalInfo() { + return additionalInfo; + } + + public SignTemplateReadySignLinkField getReadySignLink() { + return readySignLink; + } + + public SignTemplateCustomBrandingField getCustomBranding() { + return customBranding; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignTemplate casted = (SignTemplate) o; + return Objects.equals(type, casted.type) + && Objects.equals(id, casted.id) + && Objects.equals(name, casted.name) + && Objects.equals(emailSubject, casted.emailSubject) + && Objects.equals(emailMessage, casted.emailMessage) + && Objects.equals(daysValid, casted.daysValid) + && Objects.equals(parentFolder, casted.parentFolder) + && Objects.equals(sourceFiles, casted.sourceFiles) + && Objects.equals(areFieldsLocked, casted.areFieldsLocked) + && Objects.equals(areOptionsLocked, casted.areOptionsLocked) + && Objects.equals(areRecipientsLocked, casted.areRecipientsLocked) + && Objects.equals(areEmailSettingsLocked, casted.areEmailSettingsLocked) + && Objects.equals(areFilesLocked, casted.areFilesLocked) + && Objects.equals(signers, casted.signers) + && Objects.equals(additionalInfo, casted.additionalInfo) + && Objects.equals(readySignLink, casted.readySignLink) + && Objects.equals(customBranding, casted.customBranding); + } + + @Override + public int hashCode() { + return Objects.hash( + type, + id, + name, + emailSubject, + emailMessage, + daysValid, + parentFolder, + sourceFiles, + areFieldsLocked, + areOptionsLocked, + areRecipientsLocked, + areEmailSettingsLocked, + areFilesLocked, + signers, + additionalInfo, + readySignLink, + customBranding); + } + + @Override + public String toString() { + return "SignTemplate{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "emailSubject='" + + emailSubject + + '\'' + + ", " + + "emailMessage='" + + emailMessage + + '\'' + + ", " + + "daysValid='" + + daysValid + + '\'' + + ", " + + "parentFolder='" + + parentFolder + + '\'' + + ", " + + "sourceFiles='" + + sourceFiles + + '\'' + + ", " + + "areFieldsLocked='" + + areFieldsLocked + + '\'' + + ", " + + "areOptionsLocked='" + + areOptionsLocked + + '\'' + + ", " + + "areRecipientsLocked='" + + areRecipientsLocked + + '\'' + + ", " + + "areEmailSettingsLocked='" + + areEmailSettingsLocked + + '\'' + + ", " + + "areFilesLocked='" + + areFilesLocked + + '\'' + + ", " + + "signers='" + + signers + + '\'' + + ", " + + "additionalInfo='" + + additionalInfo + + '\'' + + ", " + + "readySignLink='" + + readySignLink + + '\'' + + ", " + + "customBranding='" + + customBranding + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected String id; + + protected String name; + + protected String emailSubject; + + protected String emailMessage; + + protected Long daysValid; + + protected FolderMini parentFolder; + + protected List sourceFiles; + + protected Boolean areFieldsLocked; + + protected Boolean areOptionsLocked; + + protected Boolean areRecipientsLocked; + + protected Boolean areEmailSettingsLocked; + + protected Boolean areFilesLocked; + + protected List signers; + + protected SignTemplateAdditionalInfoField additionalInfo; + + protected SignTemplateReadySignLinkField readySignLink; + + protected SignTemplateCustomBrandingField customBranding; + + public Builder type(SignTemplateTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder name(String name) { + this.name = name; + this.markNullableFieldAsSet("name"); + return this; + } + + public Builder emailSubject(String emailSubject) { + this.emailSubject = emailSubject; + this.markNullableFieldAsSet("email_subject"); + return this; + } + + public Builder emailMessage(String emailMessage) { + this.emailMessage = emailMessage; + this.markNullableFieldAsSet("email_message"); + return this; + } + + public Builder daysValid(Long daysValid) { + this.daysValid = daysValid; + this.markNullableFieldAsSet("days_valid"); + return this; + } + + public Builder parentFolder(FolderMini parentFolder) { + this.parentFolder = parentFolder; + return this; + } + + public Builder sourceFiles(List sourceFiles) { + this.sourceFiles = sourceFiles; + return this; + } + + public Builder areFieldsLocked(Boolean areFieldsLocked) { + this.areFieldsLocked = areFieldsLocked; + return this; + } + + public Builder areOptionsLocked(Boolean areOptionsLocked) { + this.areOptionsLocked = areOptionsLocked; + return this; + } + + public Builder areRecipientsLocked(Boolean areRecipientsLocked) { + this.areRecipientsLocked = areRecipientsLocked; + return this; + } + + public Builder areEmailSettingsLocked(Boolean areEmailSettingsLocked) { + this.areEmailSettingsLocked = areEmailSettingsLocked; + return this; + } + + public Builder areFilesLocked(Boolean areFilesLocked) { + this.areFilesLocked = areFilesLocked; + return this; + } + + public Builder signers(List signers) { + this.signers = signers; + return this; + } + + public Builder additionalInfo(SignTemplateAdditionalInfoField additionalInfo) { + this.additionalInfo = additionalInfo; + return this; + } + + public Builder readySignLink(SignTemplateReadySignLinkField readySignLink) { + this.readySignLink = readySignLink; + this.markNullableFieldAsSet("ready_sign_link"); + return this; + } + + public Builder customBranding(SignTemplateCustomBrandingField customBranding) { + this.customBranding = customBranding; + this.markNullableFieldAsSet("custom_branding"); + return this; + } + + public SignTemplate build() { + return new SignTemplate(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoField.java b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoField.java new file mode 100644 index 000000000..0fd472972 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoField.java @@ -0,0 +1,159 @@ +package com.box.sdkgen.schemas.signtemplate; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SignTemplateAdditionalInfoField extends SerializableObject { + + @JsonDeserialize(using = NonEditableDeserializer.class) + @JsonSerialize(using = NonEditableSerializer.class) + @JsonProperty("non_editable") + protected List> nonEditable; + + protected SignTemplateAdditionalInfoRequiredField required; + + public SignTemplateAdditionalInfoField() { + super(); + } + + protected SignTemplateAdditionalInfoField(Builder builder) { + super(); + this.nonEditable = builder.nonEditable; + this.required = builder.required; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List> getNonEditable() { + return nonEditable; + } + + public SignTemplateAdditionalInfoRequiredField getRequired() { + return required; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignTemplateAdditionalInfoField casted = (SignTemplateAdditionalInfoField) o; + return Objects.equals(nonEditable, casted.nonEditable) + && Objects.equals(required, casted.required); + } + + @Override + public int hashCode() { + return Objects.hash(nonEditable, required); + } + + @Override + public String toString() { + return "SignTemplateAdditionalInfoField{" + + "nonEditable='" + + nonEditable + + '\'' + + ", " + + "required='" + + required + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List> nonEditable; + + protected SignTemplateAdditionalInfoRequiredField required; + + public Builder nonEditable(List nonEditable) { + this.nonEditable = + EnumWrapper.wrapValuableEnumList( + nonEditable, SignTemplateAdditionalInfoNonEditableField.class); + return this; + } + + public Builder required(SignTemplateAdditionalInfoRequiredField required) { + this.required = required; + return this; + } + + public SignTemplateAdditionalInfoField build() { + return new SignTemplateAdditionalInfoField(this); + } + } + + public static class NonEditableDeserializer + extends JsonDeserializer>> { + + public final JsonDeserializer> + elementDeserializer; + + public NonEditableDeserializer() { + super(); + this.elementDeserializer = + new SignTemplateAdditionalInfoNonEditableField + .SignTemplateAdditionalInfoNonEditableFieldDeserializer(); + } + + @Override + public List> deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + JsonNode node = p.getCodec().readTree(p); + List> elements = new ArrayList<>(); + for (JsonNode item : node) { + JsonParser pa = item.traverse(p.getCodec()); + pa.nextToken(); + elements.add(elementDeserializer.deserialize(pa, ctxt)); + } + return elements; + } + } + + public static class NonEditableSerializer + extends JsonSerializer>> { + + public final JsonSerializer> + elementSerializer; + + public NonEditableSerializer() { + super(); + this.elementSerializer = + new SignTemplateAdditionalInfoNonEditableField + .SignTemplateAdditionalInfoNonEditableFieldSerializer(); + } + + @Override + public void serialize( + List> value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeStartArray(); + for (EnumWrapper item : value) { + elementSerializer.serialize(item, gen, serializers); + } + gen.writeEndArray(); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoNonEditableField.java b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoNonEditableField.java new file mode 100644 index 000000000..35b2bc8a8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoNonEditableField.java @@ -0,0 +1,67 @@ +package com.box.sdkgen.schemas.signtemplate; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SignTemplateAdditionalInfoNonEditableField implements Valuable { + EMAIL_SUBJECT("email_subject"), + EMAIL_MESSAGE("email_message"), + NAME("name"), + DAYS_VALID("days_valid"), + SIGNERS("signers"), + SOURCE_FILES("source_files"); + + private final String value; + + SignTemplateAdditionalInfoNonEditableField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignTemplateAdditionalInfoNonEditableFieldDeserializer + extends JsonDeserializer> { + + public SignTemplateAdditionalInfoNonEditableFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignTemplateAdditionalInfoNonEditableField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SignTemplateAdditionalInfoNonEditableFieldSerializer + extends JsonSerializer> { + + public SignTemplateAdditionalInfoNonEditableFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoRequiredField.java b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoRequiredField.java new file mode 100644 index 000000000..20ca7912e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoRequiredField.java @@ -0,0 +1,146 @@ +package com.box.sdkgen.schemas.signtemplate; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SignTemplateAdditionalInfoRequiredField extends SerializableObject { + + @JsonDeserialize(using = SignersDeserializer.class) + @JsonSerialize(using = SignersSerializer.class) + protected List>> signers; + + public SignTemplateAdditionalInfoRequiredField() { + super(); + } + + protected SignTemplateAdditionalInfoRequiredField(Builder builder) { + super(); + this.signers = builder.signers; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List>> getSigners() { + return signers; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignTemplateAdditionalInfoRequiredField casted = (SignTemplateAdditionalInfoRequiredField) o; + return Objects.equals(signers, casted.signers); + } + + @Override + public int hashCode() { + return Objects.hash(signers); + } + + @Override + public String toString() { + return "SignTemplateAdditionalInfoRequiredField{" + "signers='" + signers + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List>> signers; + + public Builder signers(List> signers) { + this.signers = + EnumWrapper.wrapValuableEnumListOfLists( + signers, SignTemplateAdditionalInfoRequiredSignersField.class); + return this; + } + + public SignTemplateAdditionalInfoRequiredField build() { + return new SignTemplateAdditionalInfoRequiredField(this); + } + } + + public static class SignersDeserializer + extends JsonDeserializer< + List>>> { + + public final JsonDeserializer> + elementDeserializer; + + public SignersDeserializer() { + super(); + this.elementDeserializer = + new SignTemplateAdditionalInfoRequiredSignersField + .SignTemplateAdditionalInfoRequiredSignersFieldDeserializer(); + } + + @Override + public List>> deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + JsonNode node = p.getCodec().readTree(p); + List>> elements = + new ArrayList<>(); + for (JsonNode item : node) { + List> innerElements = + new ArrayList<>(); + for (JsonNode innerItem : item) { + JsonParser pa = innerItem.traverse(p.getCodec()); + pa.nextToken(); + innerElements.add(elementDeserializer.deserialize(pa, ctxt)); + } + elements.add(innerElements); + } + return elements; + } + } + + public static class SignersSerializer + extends JsonSerializer< + List>>> { + + public final JsonSerializer> + elementSerializer; + + public SignersSerializer() { + super(); + this.elementSerializer = + new SignTemplateAdditionalInfoRequiredSignersField + .SignTemplateAdditionalInfoRequiredSignersFieldSerializer(); + } + + @Override + public void serialize( + List>> value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeStartArray(); + for (List> item : value) { + gen.writeStartArray(); + for (EnumWrapper innerItem : item) { + elementSerializer.serialize(innerItem, gen, serializers); + } + gen.writeEndArray(); + } + gen.writeEndArray(); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoRequiredSignersField.java b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoRequiredSignersField.java new file mode 100644 index 000000000..3d44b3664 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoRequiredSignersField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.signtemplate; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SignTemplateAdditionalInfoRequiredSignersField implements Valuable { + EMAIL("email"); + + private final String value; + + SignTemplateAdditionalInfoRequiredSignersField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignTemplateAdditionalInfoRequiredSignersFieldDeserializer + extends JsonDeserializer> { + + public SignTemplateAdditionalInfoRequiredSignersFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignTemplateAdditionalInfoRequiredSignersField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SignTemplateAdditionalInfoRequiredSignersFieldSerializer + extends JsonSerializer> { + + public SignTemplateAdditionalInfoRequiredSignersFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateCustomBrandingField.java b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateCustomBrandingField.java new file mode 100644 index 000000000..86f0e25a0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateCustomBrandingField.java @@ -0,0 +1,137 @@ +package com.box.sdkgen.schemas.signtemplate; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SignTemplateCustomBrandingField extends SerializableObject { + + @JsonProperty("company_name") + @Nullable + protected String companyName; + + @JsonProperty("logo_uri") + @Nullable + protected String logoUri; + + @JsonProperty("branding_color") + @Nullable + protected String brandingColor; + + @JsonProperty("email_footer_text") + @Nullable + protected String emailFooterText; + + public SignTemplateCustomBrandingField() { + super(); + } + + protected SignTemplateCustomBrandingField(Builder builder) { + super(); + this.companyName = builder.companyName; + this.logoUri = builder.logoUri; + this.brandingColor = builder.brandingColor; + this.emailFooterText = builder.emailFooterText; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getCompanyName() { + return companyName; + } + + public String getLogoUri() { + return logoUri; + } + + public String getBrandingColor() { + return brandingColor; + } + + public String getEmailFooterText() { + return emailFooterText; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignTemplateCustomBrandingField casted = (SignTemplateCustomBrandingField) o; + return Objects.equals(companyName, casted.companyName) + && Objects.equals(logoUri, casted.logoUri) + && Objects.equals(brandingColor, casted.brandingColor) + && Objects.equals(emailFooterText, casted.emailFooterText); + } + + @Override + public int hashCode() { + return Objects.hash(companyName, logoUri, brandingColor, emailFooterText); + } + + @Override + public String toString() { + return "SignTemplateCustomBrandingField{" + + "companyName='" + + companyName + + '\'' + + ", " + + "logoUri='" + + logoUri + + '\'' + + ", " + + "brandingColor='" + + brandingColor + + '\'' + + ", " + + "emailFooterText='" + + emailFooterText + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String companyName; + + protected String logoUri; + + protected String brandingColor; + + protected String emailFooterText; + + public Builder companyName(String companyName) { + this.companyName = companyName; + this.markNullableFieldAsSet("company_name"); + return this; + } + + public Builder logoUri(String logoUri) { + this.logoUri = logoUri; + this.markNullableFieldAsSet("logo_uri"); + return this; + } + + public Builder brandingColor(String brandingColor) { + this.brandingColor = brandingColor; + this.markNullableFieldAsSet("branding_color"); + return this; + } + + public Builder emailFooterText(String emailFooterText) { + this.emailFooterText = emailFooterText; + this.markNullableFieldAsSet("email_footer_text"); + return this; + } + + public SignTemplateCustomBrandingField build() { + return new SignTemplateCustomBrandingField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateReadySignLinkField.java b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateReadySignLinkField.java new file mode 100644 index 000000000..aa9910036 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateReadySignLinkField.java @@ -0,0 +1,170 @@ +package com.box.sdkgen.schemas.signtemplate; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SignTemplateReadySignLinkField extends SerializableObject { + + protected String url; + + @Nullable protected String name; + + @Nullable protected String instructions; + + @JsonProperty("folder_id") + @Nullable + protected String folderId; + + @JsonProperty("is_notification_disabled") + protected Boolean isNotificationDisabled; + + @JsonProperty("is_active") + protected Boolean isActive; + + public SignTemplateReadySignLinkField() { + super(); + } + + protected SignTemplateReadySignLinkField(Builder builder) { + super(); + this.url = builder.url; + this.name = builder.name; + this.instructions = builder.instructions; + this.folderId = builder.folderId; + this.isNotificationDisabled = builder.isNotificationDisabled; + this.isActive = builder.isActive; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getUrl() { + return url; + } + + public String getName() { + return name; + } + + public String getInstructions() { + return instructions; + } + + public String getFolderId() { + return folderId; + } + + public Boolean getIsNotificationDisabled() { + return isNotificationDisabled; + } + + public Boolean getIsActive() { + return isActive; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignTemplateReadySignLinkField casted = (SignTemplateReadySignLinkField) o; + return Objects.equals(url, casted.url) + && Objects.equals(name, casted.name) + && Objects.equals(instructions, casted.instructions) + && Objects.equals(folderId, casted.folderId) + && Objects.equals(isNotificationDisabled, casted.isNotificationDisabled) + && Objects.equals(isActive, casted.isActive); + } + + @Override + public int hashCode() { + return Objects.hash(url, name, instructions, folderId, isNotificationDisabled, isActive); + } + + @Override + public String toString() { + return "SignTemplateReadySignLinkField{" + + "url='" + + url + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "instructions='" + + instructions + + '\'' + + ", " + + "folderId='" + + folderId + + '\'' + + ", " + + "isNotificationDisabled='" + + isNotificationDisabled + + '\'' + + ", " + + "isActive='" + + isActive + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String url; + + protected String name; + + protected String instructions; + + protected String folderId; + + protected Boolean isNotificationDisabled; + + protected Boolean isActive; + + public Builder url(String url) { + this.url = url; + return this; + } + + public Builder name(String name) { + this.name = name; + this.markNullableFieldAsSet("name"); + return this; + } + + public Builder instructions(String instructions) { + this.instructions = instructions; + this.markNullableFieldAsSet("instructions"); + return this; + } + + public Builder folderId(String folderId) { + this.folderId = folderId; + this.markNullableFieldAsSet("folder_id"); + return this; + } + + public Builder isNotificationDisabled(Boolean isNotificationDisabled) { + this.isNotificationDisabled = isNotificationDisabled; + return this; + } + + public Builder isActive(Boolean isActive) { + this.isActive = isActive; + return this; + } + + public SignTemplateReadySignLinkField build() { + return new SignTemplateReadySignLinkField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateTypeField.java b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateTypeField.java new file mode 100644 index 000000000..84a9414ae --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.signtemplate; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SignTemplateTypeField implements Valuable { + SIGN_TEMPLATE("sign-template"); + + private final String value; + + SignTemplateTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignTemplateTypeFieldDeserializer + extends JsonDeserializer> { + + public SignTemplateTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignTemplateTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SignTemplateTypeFieldSerializer + extends JsonSerializer> { + + public SignTemplateTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signtemplates/SignTemplates.java b/src/main/java/com/box/sdkgen/schemas/signtemplates/SignTemplates.java new file mode 100644 index 000000000..3fcf217c6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signtemplates/SignTemplates.java @@ -0,0 +1,133 @@ +package com.box.sdkgen.schemas.signtemplates; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.signtemplate.SignTemplate; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SignTemplates extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + protected List entries; + + public SignTemplates() { + super(); + } + + protected SignTemplates(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignTemplates casted = (SignTemplates) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "SignTemplates{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public SignTemplates build() { + return new SignTemplates(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/skillcardsmetadata/SkillCardsMetadata.java b/src/main/java/com/box/sdkgen/schemas/skillcardsmetadata/SkillCardsMetadata.java new file mode 100644 index 000000000..ebccfb30d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/skillcardsmetadata/SkillCardsMetadata.java @@ -0,0 +1,231 @@ +package com.box.sdkgen.schemas.skillcardsmetadata; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.keywordskillcardorstatusskillcardortimelineskillcardortranscriptskillcard.KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SkillCardsMetadata extends SerializableObject { + + @JsonProperty("$canEdit") + protected Boolean canEdit; + + @JsonProperty("$id") + protected String id; + + @JsonProperty("$parent") + protected String parent; + + @JsonProperty("$scope") + protected String scope; + + @JsonProperty("$template") + protected String template; + + @JsonProperty("$type") + protected String type; + + @JsonProperty("$typeVersion") + protected Long typeVersion; + + @JsonProperty("$version") + protected Long version; + + protected List cards; + + public SkillCardsMetadata() { + super(); + } + + protected SkillCardsMetadata(Builder builder) { + super(); + this.canEdit = builder.canEdit; + this.id = builder.id; + this.parent = builder.parent; + this.scope = builder.scope; + this.template = builder.template; + this.type = builder.type; + this.typeVersion = builder.typeVersion; + this.version = builder.version; + this.cards = builder.cards; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getCanEdit() { + return canEdit; + } + + public String getId() { + return id; + } + + public String getParent() { + return parent; + } + + public String getScope() { + return scope; + } + + public String getTemplate() { + return template; + } + + public String getType() { + return type; + } + + public Long getTypeVersion() { + return typeVersion; + } + + public Long getVersion() { + return version; + } + + public List + getCards() { + return cards; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SkillCardsMetadata casted = (SkillCardsMetadata) o; + return Objects.equals(canEdit, casted.canEdit) + && Objects.equals(id, casted.id) + && Objects.equals(parent, casted.parent) + && Objects.equals(scope, casted.scope) + && Objects.equals(template, casted.template) + && Objects.equals(type, casted.type) + && Objects.equals(typeVersion, casted.typeVersion) + && Objects.equals(version, casted.version) + && Objects.equals(cards, casted.cards); + } + + @Override + public int hashCode() { + return Objects.hash(canEdit, id, parent, scope, template, type, typeVersion, version, cards); + } + + @Override + public String toString() { + return "SkillCardsMetadata{" + + "canEdit='" + + canEdit + + '\'' + + ", " + + "id='" + + id + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + ", " + + "scope='" + + scope + + '\'' + + ", " + + "template='" + + template + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "typeVersion='" + + typeVersion + + '\'' + + ", " + + "version='" + + version + + '\'' + + ", " + + "cards='" + + cards + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean canEdit; + + protected String id; + + protected String parent; + + protected String scope; + + protected String template; + + protected String type; + + protected Long typeVersion; + + protected Long version; + + protected List cards; + + public Builder canEdit(Boolean canEdit) { + this.canEdit = canEdit; + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder parent(String parent) { + this.parent = parent; + return this; + } + + public Builder scope(String scope) { + this.scope = scope; + return this; + } + + public Builder template(String template) { + this.template = template; + return this; + } + + public Builder type(String type) { + this.type = type; + return this; + } + + public Builder typeVersion(Long typeVersion) { + this.typeVersion = typeVersion; + return this; + } + + public Builder version(Long version) { + this.version = version; + return this; + } + + public Builder cards( + List cards) { + this.cards = cards; + return this; + } + + public SkillCardsMetadata build() { + return new SkillCardsMetadata(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocation.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocation.java new file mode 100644 index 000000000..7742a06c6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocation.java @@ -0,0 +1,268 @@ +package com.box.sdkgen.schemas.skillinvocation; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.event.Event; +import com.box.sdkgen.schemas.file.File; +import com.box.sdkgen.schemas.fileorfolder.FileOrFolder; +import com.box.sdkgen.schemas.folder.Folder; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SkillInvocation extends SerializableObject { + + @JsonDeserialize(using = SkillInvocationTypeField.SkillInvocationTypeFieldDeserializer.class) + @JsonSerialize(using = SkillInvocationTypeField.SkillInvocationTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String id; + + protected SkillInvocationSkillField skill; + + protected SkillInvocationTokenField token; + + protected SkillInvocationStatusField status; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + protected String trigger; + + protected SkillInvocationEnterpriseField enterprise; + + protected FileOrFolder source; + + protected Event event; + + public SkillInvocation() { + super(); + } + + protected SkillInvocation(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + this.skill = builder.skill; + this.token = builder.token; + this.status = builder.status; + this.createdAt = builder.createdAt; + this.trigger = builder.trigger; + this.enterprise = builder.enterprise; + this.source = builder.source; + this.event = builder.event; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + public SkillInvocationSkillField getSkill() { + return skill; + } + + public SkillInvocationTokenField getToken() { + return token; + } + + public SkillInvocationStatusField getStatus() { + return status; + } + + public Date getCreatedAt() { + return createdAt; + } + + public String getTrigger() { + return trigger; + } + + public SkillInvocationEnterpriseField getEnterprise() { + return enterprise; + } + + public FileOrFolder getSource() { + return source; + } + + public Event getEvent() { + return event; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SkillInvocation casted = (SkillInvocation) o; + return Objects.equals(type, casted.type) + && Objects.equals(id, casted.id) + && Objects.equals(skill, casted.skill) + && Objects.equals(token, casted.token) + && Objects.equals(status, casted.status) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(trigger, casted.trigger) + && Objects.equals(enterprise, casted.enterprise) + && Objects.equals(source, casted.source) + && Objects.equals(event, casted.event); + } + + @Override + public int hashCode() { + return Objects.hash( + type, id, skill, token, status, createdAt, trigger, enterprise, source, event); + } + + @Override + public String toString() { + return "SkillInvocation{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + ", " + + "skill='" + + skill + + '\'' + + ", " + + "token='" + + token + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "trigger='" + + trigger + + '\'' + + ", " + + "enterprise='" + + enterprise + + '\'' + + ", " + + "source='" + + source + + '\'' + + ", " + + "event='" + + event + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected String id; + + protected SkillInvocationSkillField skill; + + protected SkillInvocationTokenField token; + + protected SkillInvocationStatusField status; + + protected Date createdAt; + + protected String trigger; + + protected SkillInvocationEnterpriseField enterprise; + + protected FileOrFolder source; + + protected Event event; + + public Builder type(SkillInvocationTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder skill(SkillInvocationSkillField skill) { + this.skill = skill; + return this; + } + + public Builder token(SkillInvocationTokenField token) { + this.token = token; + return this; + } + + public Builder status(SkillInvocationStatusField status) { + this.status = status; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder trigger(String trigger) { + this.trigger = trigger; + return this; + } + + public Builder enterprise(SkillInvocationEnterpriseField enterprise) { + this.enterprise = enterprise; + return this; + } + + public Builder source(File source) { + this.source = new FileOrFolder(source); + return this; + } + + public Builder source(Folder source) { + this.source = new FileOrFolder(source); + return this; + } + + public Builder source(FileOrFolder source) { + this.source = source; + return this; + } + + public Builder event(Event event) { + this.event = event; + return this; + } + + public SkillInvocation build() { + return new SkillInvocation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationEnterpriseField.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationEnterpriseField.java new file mode 100644 index 000000000..053cb5541 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationEnterpriseField.java @@ -0,0 +1,117 @@ +package com.box.sdkgen.schemas.skillinvocation; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SkillInvocationEnterpriseField extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = + SkillInvocationEnterpriseTypeField.SkillInvocationEnterpriseTypeFieldDeserializer.class) + @JsonSerialize( + using = SkillInvocationEnterpriseTypeField.SkillInvocationEnterpriseTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String name; + + public SkillInvocationEnterpriseField() { + super(); + } + + protected SkillInvocationEnterpriseField(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.name = builder.name; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SkillInvocationEnterpriseField casted = (SkillInvocationEnterpriseField) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name); + } + + @Override + public String toString() { + return "SkillInvocationEnterpriseField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected String name; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(SkillInvocationEnterpriseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public SkillInvocationEnterpriseField build() { + return new SkillInvocationEnterpriseField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationEnterpriseTypeField.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationEnterpriseTypeField.java new file mode 100644 index 000000000..a45d617d1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationEnterpriseTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.skillinvocation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SkillInvocationEnterpriseTypeField implements Valuable { + ENTERPRISE("enterprise"); + + private final String value; + + SkillInvocationEnterpriseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SkillInvocationEnterpriseTypeFieldDeserializer + extends JsonDeserializer> { + + public SkillInvocationEnterpriseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SkillInvocationEnterpriseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SkillInvocationEnterpriseTypeFieldSerializer + extends JsonSerializer> { + + public SkillInvocationEnterpriseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationSkillField.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationSkillField.java new file mode 100644 index 000000000..d0524f67e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationSkillField.java @@ -0,0 +1,137 @@ +package com.box.sdkgen.schemas.skillinvocation; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SkillInvocationSkillField extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = SkillInvocationSkillTypeField.SkillInvocationSkillTypeFieldDeserializer.class) + @JsonSerialize( + using = SkillInvocationSkillTypeField.SkillInvocationSkillTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String name; + + @JsonProperty("api_key") + protected String apiKey; + + public SkillInvocationSkillField() { + super(); + } + + protected SkillInvocationSkillField(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.name = builder.name; + this.apiKey = builder.apiKey; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getName() { + return name; + } + + public String getApiKey() { + return apiKey; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SkillInvocationSkillField casted = (SkillInvocationSkillField) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name) + && Objects.equals(apiKey, casted.apiKey); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name, apiKey); + } + + @Override + public String toString() { + return "SkillInvocationSkillField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "apiKey='" + + apiKey + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected String name; + + protected String apiKey; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(SkillInvocationSkillTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder apiKey(String apiKey) { + this.apiKey = apiKey; + return this; + } + + public SkillInvocationSkillField build() { + return new SkillInvocationSkillField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationSkillTypeField.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationSkillTypeField.java new file mode 100644 index 000000000..6e2295c0e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationSkillTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.skillinvocation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SkillInvocationSkillTypeField implements Valuable { + SKILL("skill"); + + private final String value; + + SkillInvocationSkillTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SkillInvocationSkillTypeFieldDeserializer + extends JsonDeserializer> { + + public SkillInvocationSkillTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SkillInvocationSkillTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SkillInvocationSkillTypeFieldSerializer + extends JsonSerializer> { + + public SkillInvocationSkillTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationStatusField.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationStatusField.java new file mode 100644 index 000000000..f7786cdab --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationStatusField.java @@ -0,0 +1,138 @@ +package com.box.sdkgen.schemas.skillinvocation; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SkillInvocationStatusField extends SerializableObject { + + @JsonDeserialize( + using = SkillInvocationStatusStateField.SkillInvocationStatusStateFieldDeserializer.class) + @JsonSerialize( + using = SkillInvocationStatusStateField.SkillInvocationStatusStateFieldSerializer.class) + protected EnumWrapper state; + + protected String message; + + @JsonProperty("error_code") + protected String errorCode; + + @JsonProperty("additional_info") + protected String additionalInfo; + + public SkillInvocationStatusField() { + super(); + } + + protected SkillInvocationStatusField(Builder builder) { + super(); + this.state = builder.state; + this.message = builder.message; + this.errorCode = builder.errorCode; + this.additionalInfo = builder.additionalInfo; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getState() { + return state; + } + + public String getMessage() { + return message; + } + + public String getErrorCode() { + return errorCode; + } + + public String getAdditionalInfo() { + return additionalInfo; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SkillInvocationStatusField casted = (SkillInvocationStatusField) o; + return Objects.equals(state, casted.state) + && Objects.equals(message, casted.message) + && Objects.equals(errorCode, casted.errorCode) + && Objects.equals(additionalInfo, casted.additionalInfo); + } + + @Override + public int hashCode() { + return Objects.hash(state, message, errorCode, additionalInfo); + } + + @Override + public String toString() { + return "SkillInvocationStatusField{" + + "state='" + + state + + '\'' + + ", " + + "message='" + + message + + '\'' + + ", " + + "errorCode='" + + errorCode + + '\'' + + ", " + + "additionalInfo='" + + additionalInfo + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper state; + + protected String message; + + protected String errorCode; + + protected String additionalInfo; + + public Builder state(SkillInvocationStatusStateField state) { + this.state = new EnumWrapper(state); + return this; + } + + public Builder state(EnumWrapper state) { + this.state = state; + return this; + } + + public Builder message(String message) { + this.message = message; + return this; + } + + public Builder errorCode(String errorCode) { + this.errorCode = errorCode; + return this; + } + + public Builder additionalInfo(String additionalInfo) { + this.additionalInfo = additionalInfo; + return this; + } + + public SkillInvocationStatusField build() { + return new SkillInvocationStatusField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationStatusStateField.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationStatusStateField.java new file mode 100644 index 000000000..548c35a45 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationStatusStateField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.schemas.skillinvocation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SkillInvocationStatusStateField implements Valuable { + INVOKED("invoked"), + PROCESSING("processing"), + SUCCESS("success"), + TRANSIENT_FAILURE("transient_failure"), + PERMANENT_FAILURE("permanent_failure"); + + private final String value; + + SkillInvocationStatusStateField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SkillInvocationStatusStateFieldDeserializer + extends JsonDeserializer> { + + public SkillInvocationStatusStateFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SkillInvocationStatusStateField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SkillInvocationStatusStateFieldSerializer + extends JsonSerializer> { + + public SkillInvocationStatusStateFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenField.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenField.java new file mode 100644 index 000000000..237be0148 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenField.java @@ -0,0 +1,84 @@ +package com.box.sdkgen.schemas.skillinvocation; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SkillInvocationTokenField extends SerializableObject { + + protected SkillInvocationTokenReadField read; + + protected SkillInvocationTokenWriteField write; + + public SkillInvocationTokenField() { + super(); + } + + protected SkillInvocationTokenField(Builder builder) { + super(); + this.read = builder.read; + this.write = builder.write; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public SkillInvocationTokenReadField getRead() { + return read; + } + + public SkillInvocationTokenWriteField getWrite() { + return write; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SkillInvocationTokenField casted = (SkillInvocationTokenField) o; + return Objects.equals(read, casted.read) && Objects.equals(write, casted.write); + } + + @Override + public int hashCode() { + return Objects.hash(read, write); + } + + @Override + public String toString() { + return "SkillInvocationTokenField{" + + "read='" + + read + + '\'' + + ", " + + "write='" + + write + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected SkillInvocationTokenReadField read; + + protected SkillInvocationTokenWriteField write; + + public Builder read(SkillInvocationTokenReadField read) { + this.read = read; + return this; + } + + public Builder write(SkillInvocationTokenWriteField write) { + this.write = write; + return this; + } + + public SkillInvocationTokenField build() { + return new SkillInvocationTokenField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenReadField.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenReadField.java new file mode 100644 index 000000000..c41b763a2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenReadField.java @@ -0,0 +1,144 @@ +package com.box.sdkgen.schemas.skillinvocation; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SkillInvocationTokenReadField extends SerializableObject { + + @JsonProperty("access_token") + protected String accessToken; + + @JsonProperty("expires_in") + protected Long expiresIn; + + @JsonDeserialize( + using = + SkillInvocationTokenReadTokenTypeField.SkillInvocationTokenReadTokenTypeFieldDeserializer + .class) + @JsonSerialize( + using = + SkillInvocationTokenReadTokenTypeField.SkillInvocationTokenReadTokenTypeFieldSerializer + .class) + @JsonProperty("token_type") + protected EnumWrapper tokenType; + + @JsonProperty("restricted_to") + protected String restrictedTo; + + public SkillInvocationTokenReadField() { + super(); + } + + protected SkillInvocationTokenReadField(Builder builder) { + super(); + this.accessToken = builder.accessToken; + this.expiresIn = builder.expiresIn; + this.tokenType = builder.tokenType; + this.restrictedTo = builder.restrictedTo; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getAccessToken() { + return accessToken; + } + + public Long getExpiresIn() { + return expiresIn; + } + + public EnumWrapper getTokenType() { + return tokenType; + } + + public String getRestrictedTo() { + return restrictedTo; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SkillInvocationTokenReadField casted = (SkillInvocationTokenReadField) o; + return Objects.equals(accessToken, casted.accessToken) + && Objects.equals(expiresIn, casted.expiresIn) + && Objects.equals(tokenType, casted.tokenType) + && Objects.equals(restrictedTo, casted.restrictedTo); + } + + @Override + public int hashCode() { + return Objects.hash(accessToken, expiresIn, tokenType, restrictedTo); + } + + @Override + public String toString() { + return "SkillInvocationTokenReadField{" + + "accessToken='" + + accessToken + + '\'' + + ", " + + "expiresIn='" + + expiresIn + + '\'' + + ", " + + "tokenType='" + + tokenType + + '\'' + + ", " + + "restrictedTo='" + + restrictedTo + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String accessToken; + + protected Long expiresIn; + + protected EnumWrapper tokenType; + + protected String restrictedTo; + + public Builder accessToken(String accessToken) { + this.accessToken = accessToken; + return this; + } + + public Builder expiresIn(Long expiresIn) { + this.expiresIn = expiresIn; + return this; + } + + public Builder tokenType(SkillInvocationTokenReadTokenTypeField tokenType) { + this.tokenType = new EnumWrapper(tokenType); + return this; + } + + public Builder tokenType(EnumWrapper tokenType) { + this.tokenType = tokenType; + return this; + } + + public Builder restrictedTo(String restrictedTo) { + this.restrictedTo = restrictedTo; + return this; + } + + public SkillInvocationTokenReadField build() { + return new SkillInvocationTokenReadField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenReadTokenTypeField.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenReadTokenTypeField.java new file mode 100644 index 000000000..2a96c401d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenReadTokenTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.skillinvocation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SkillInvocationTokenReadTokenTypeField implements Valuable { + BEARER("bearer"); + + private final String value; + + SkillInvocationTokenReadTokenTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SkillInvocationTokenReadTokenTypeFieldDeserializer + extends JsonDeserializer> { + + public SkillInvocationTokenReadTokenTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SkillInvocationTokenReadTokenTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SkillInvocationTokenReadTokenTypeFieldSerializer + extends JsonSerializer> { + + public SkillInvocationTokenReadTokenTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenWriteField.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenWriteField.java new file mode 100644 index 000000000..a8c02725f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenWriteField.java @@ -0,0 +1,144 @@ +package com.box.sdkgen.schemas.skillinvocation; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class SkillInvocationTokenWriteField extends SerializableObject { + + @JsonProperty("access_token") + protected String accessToken; + + @JsonProperty("expires_in") + protected Long expiresIn; + + @JsonDeserialize( + using = + SkillInvocationTokenWriteTokenTypeField + .SkillInvocationTokenWriteTokenTypeFieldDeserializer.class) + @JsonSerialize( + using = + SkillInvocationTokenWriteTokenTypeField.SkillInvocationTokenWriteTokenTypeFieldSerializer + .class) + @JsonProperty("token_type") + protected EnumWrapper tokenType; + + @JsonProperty("restricted_to") + protected String restrictedTo; + + public SkillInvocationTokenWriteField() { + super(); + } + + protected SkillInvocationTokenWriteField(Builder builder) { + super(); + this.accessToken = builder.accessToken; + this.expiresIn = builder.expiresIn; + this.tokenType = builder.tokenType; + this.restrictedTo = builder.restrictedTo; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getAccessToken() { + return accessToken; + } + + public Long getExpiresIn() { + return expiresIn; + } + + public EnumWrapper getTokenType() { + return tokenType; + } + + public String getRestrictedTo() { + return restrictedTo; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SkillInvocationTokenWriteField casted = (SkillInvocationTokenWriteField) o; + return Objects.equals(accessToken, casted.accessToken) + && Objects.equals(expiresIn, casted.expiresIn) + && Objects.equals(tokenType, casted.tokenType) + && Objects.equals(restrictedTo, casted.restrictedTo); + } + + @Override + public int hashCode() { + return Objects.hash(accessToken, expiresIn, tokenType, restrictedTo); + } + + @Override + public String toString() { + return "SkillInvocationTokenWriteField{" + + "accessToken='" + + accessToken + + '\'' + + ", " + + "expiresIn='" + + expiresIn + + '\'' + + ", " + + "tokenType='" + + tokenType + + '\'' + + ", " + + "restrictedTo='" + + restrictedTo + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String accessToken; + + protected Long expiresIn; + + protected EnumWrapper tokenType; + + protected String restrictedTo; + + public Builder accessToken(String accessToken) { + this.accessToken = accessToken; + return this; + } + + public Builder expiresIn(Long expiresIn) { + this.expiresIn = expiresIn; + return this; + } + + public Builder tokenType(SkillInvocationTokenWriteTokenTypeField tokenType) { + this.tokenType = new EnumWrapper(tokenType); + return this; + } + + public Builder tokenType(EnumWrapper tokenType) { + this.tokenType = tokenType; + return this; + } + + public Builder restrictedTo(String restrictedTo) { + this.restrictedTo = restrictedTo; + return this; + } + + public SkillInvocationTokenWriteField build() { + return new SkillInvocationTokenWriteField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenWriteTokenTypeField.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenWriteTokenTypeField.java new file mode 100644 index 000000000..f6aa0d0dc --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenWriteTokenTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.skillinvocation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SkillInvocationTokenWriteTokenTypeField implements Valuable { + BEARER("bearer"); + + private final String value; + + SkillInvocationTokenWriteTokenTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SkillInvocationTokenWriteTokenTypeFieldDeserializer + extends JsonDeserializer> { + + public SkillInvocationTokenWriteTokenTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SkillInvocationTokenWriteTokenTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SkillInvocationTokenWriteTokenTypeFieldSerializer + extends JsonSerializer> { + + public SkillInvocationTokenWriteTokenTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTypeField.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTypeField.java new file mode 100644 index 000000000..cd038b446 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.skillinvocation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SkillInvocationTypeField implements Valuable { + SKILL_INVOCATION("skill_invocation"); + + private final String value; + + SkillInvocationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SkillInvocationTypeFieldDeserializer + extends JsonDeserializer> { + + public SkillInvocationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SkillInvocationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SkillInvocationTypeFieldSerializer + extends JsonSerializer> { + + public SkillInvocationTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCard.java b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCard.java new file mode 100644 index 000000000..b4bd81312 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCard.java @@ -0,0 +1,216 @@ +package com.box.sdkgen.schemas.statusskillcard; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class StatusSkillCard extends SerializableObject { + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonDeserialize(using = StatusSkillCardTypeField.StatusSkillCardTypeFieldDeserializer.class) + @JsonSerialize(using = StatusSkillCardTypeField.StatusSkillCardTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonDeserialize( + using = StatusSkillCardSkillCardTypeField.StatusSkillCardSkillCardTypeFieldDeserializer.class) + @JsonSerialize( + using = StatusSkillCardSkillCardTypeField.StatusSkillCardSkillCardTypeFieldSerializer.class) + @JsonProperty("skill_card_type") + protected EnumWrapper skillCardType; + + @JsonProperty("skill_card_title") + protected StatusSkillCardSkillCardTitleField skillCardTitle; + + protected final StatusSkillCardStatusField status; + + protected final StatusSkillCardSkillField skill; + + protected final StatusSkillCardInvocationField invocation; + + public StatusSkillCard( + @JsonProperty("status") StatusSkillCardStatusField status, + @JsonProperty("skill") StatusSkillCardSkillField skill, + @JsonProperty("invocation") StatusSkillCardInvocationField invocation) { + super(); + this.status = status; + this.skill = skill; + this.invocation = invocation; + this.type = new EnumWrapper(StatusSkillCardTypeField.SKILL_CARD); + this.skillCardType = + new EnumWrapper( + StatusSkillCardSkillCardTypeField.STATUS); + } + + protected StatusSkillCard(Builder builder) { + super(); + this.createdAt = builder.createdAt; + this.type = builder.type; + this.skillCardType = builder.skillCardType; + this.skillCardTitle = builder.skillCardTitle; + this.status = builder.status; + this.skill = builder.skill; + this.invocation = builder.invocation; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Date getCreatedAt() { + return createdAt; + } + + public EnumWrapper getType() { + return type; + } + + public EnumWrapper getSkillCardType() { + return skillCardType; + } + + public StatusSkillCardSkillCardTitleField getSkillCardTitle() { + return skillCardTitle; + } + + public StatusSkillCardStatusField getStatus() { + return status; + } + + public StatusSkillCardSkillField getSkill() { + return skill; + } + + public StatusSkillCardInvocationField getInvocation() { + return invocation; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StatusSkillCard casted = (StatusSkillCard) o; + return Objects.equals(createdAt, casted.createdAt) + && Objects.equals(type, casted.type) + && Objects.equals(skillCardType, casted.skillCardType) + && Objects.equals(skillCardTitle, casted.skillCardTitle) + && Objects.equals(status, casted.status) + && Objects.equals(skill, casted.skill) + && Objects.equals(invocation, casted.invocation); + } + + @Override + public int hashCode() { + return Objects.hash(createdAt, type, skillCardType, skillCardTitle, status, skill, invocation); + } + + @Override + public String toString() { + return "StatusSkillCard{" + + "createdAt='" + + createdAt + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "skillCardType='" + + skillCardType + + '\'' + + ", " + + "skillCardTitle='" + + skillCardTitle + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "skill='" + + skill + + '\'' + + ", " + + "invocation='" + + invocation + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Date createdAt; + + protected EnumWrapper type; + + protected EnumWrapper skillCardType; + + protected StatusSkillCardSkillCardTitleField skillCardTitle; + + protected final StatusSkillCardStatusField status; + + protected final StatusSkillCardSkillField skill; + + protected final StatusSkillCardInvocationField invocation; + + public Builder( + StatusSkillCardStatusField status, + StatusSkillCardSkillField skill, + StatusSkillCardInvocationField invocation) { + super(); + this.status = status; + this.skill = skill; + this.invocation = invocation; + this.type = new EnumWrapper(StatusSkillCardTypeField.SKILL_CARD); + this.skillCardType = + new EnumWrapper( + StatusSkillCardSkillCardTypeField.STATUS); + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder type(StatusSkillCardTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder skillCardType(StatusSkillCardSkillCardTypeField skillCardType) { + this.skillCardType = new EnumWrapper(skillCardType); + return this; + } + + public Builder skillCardType(EnumWrapper skillCardType) { + this.skillCardType = skillCardType; + return this; + } + + public Builder skillCardTitle(StatusSkillCardSkillCardTitleField skillCardTitle) { + this.skillCardTitle = skillCardTitle; + return this; + } + + public StatusSkillCard build() { + return new StatusSkillCard(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardInvocationField.java b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardInvocationField.java new file mode 100644 index 000000000..dd12ecc1b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardInvocationField.java @@ -0,0 +1,105 @@ +package com.box.sdkgen.schemas.statusskillcard; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class StatusSkillCardInvocationField extends SerializableObject { + + @JsonDeserialize( + using = + StatusSkillCardInvocationTypeField.StatusSkillCardInvocationTypeFieldDeserializer.class) + @JsonSerialize( + using = StatusSkillCardInvocationTypeField.StatusSkillCardInvocationTypeFieldSerializer.class) + protected EnumWrapper type; + + protected final String id; + + public StatusSkillCardInvocationField(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + StatusSkillCardInvocationTypeField.SKILL_INVOCATION); + } + + protected StatusSkillCardInvocationField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StatusSkillCardInvocationField casted = (StatusSkillCardInvocationField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "StatusSkillCardInvocationField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + StatusSkillCardInvocationTypeField.SKILL_INVOCATION); + } + + public Builder type(StatusSkillCardInvocationTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public StatusSkillCardInvocationField build() { + return new StatusSkillCardInvocationField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardInvocationTypeField.java b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardInvocationTypeField.java new file mode 100644 index 000000000..d371fbeae --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardInvocationTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.statusskillcard; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum StatusSkillCardInvocationTypeField implements Valuable { + SKILL_INVOCATION("skill_invocation"); + + private final String value; + + StatusSkillCardInvocationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class StatusSkillCardInvocationTypeFieldDeserializer + extends JsonDeserializer> { + + public StatusSkillCardInvocationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(StatusSkillCardInvocationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class StatusSkillCardInvocationTypeFieldSerializer + extends JsonSerializer> { + + public StatusSkillCardInvocationTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillCardTitleField.java b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillCardTitleField.java new file mode 100644 index 000000000..8189636a0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillCardTitleField.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.schemas.statusskillcard; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class StatusSkillCardSkillCardTitleField extends SerializableObject { + + protected String code; + + protected final String message; + + public StatusSkillCardSkillCardTitleField(@JsonProperty("message") String message) { + super(); + this.message = message; + } + + protected StatusSkillCardSkillCardTitleField(Builder builder) { + super(); + this.code = builder.code; + this.message = builder.message; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getCode() { + return code; + } + + public String getMessage() { + return message; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StatusSkillCardSkillCardTitleField casted = (StatusSkillCardSkillCardTitleField) o; + return Objects.equals(code, casted.code) && Objects.equals(message, casted.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, message); + } + + @Override + public String toString() { + return "StatusSkillCardSkillCardTitleField{" + + "code='" + + code + + '\'' + + ", " + + "message='" + + message + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String code; + + protected final String message; + + public Builder(String message) { + super(); + this.message = message; + } + + public Builder code(String code) { + this.code = code; + return this; + } + + public StatusSkillCardSkillCardTitleField build() { + return new StatusSkillCardSkillCardTitleField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillCardTypeField.java b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillCardTypeField.java new file mode 100644 index 000000000..9195953b8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillCardTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.statusskillcard; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum StatusSkillCardSkillCardTypeField implements Valuable { + STATUS("status"); + + private final String value; + + StatusSkillCardSkillCardTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class StatusSkillCardSkillCardTypeFieldDeserializer + extends JsonDeserializer> { + + public StatusSkillCardSkillCardTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(StatusSkillCardSkillCardTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class StatusSkillCardSkillCardTypeFieldSerializer + extends JsonSerializer> { + + public StatusSkillCardSkillCardTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillField.java b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillField.java new file mode 100644 index 000000000..4e92ed873 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillField.java @@ -0,0 +1,94 @@ +package com.box.sdkgen.schemas.statusskillcard; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class StatusSkillCardSkillField extends SerializableObject { + + @JsonDeserialize( + using = StatusSkillCardSkillTypeField.StatusSkillCardSkillTypeFieldDeserializer.class) + @JsonSerialize( + using = StatusSkillCardSkillTypeField.StatusSkillCardSkillTypeFieldSerializer.class) + protected EnumWrapper type; + + protected final String id; + + public StatusSkillCardSkillField(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper(StatusSkillCardSkillTypeField.SERVICE); + } + + protected StatusSkillCardSkillField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StatusSkillCardSkillField casted = (StatusSkillCardSkillField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "StatusSkillCardSkillField{" + "type='" + type + '\'' + ", " + "id='" + id + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper(StatusSkillCardSkillTypeField.SERVICE); + } + + public Builder type(StatusSkillCardSkillTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public StatusSkillCardSkillField build() { + return new StatusSkillCardSkillField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillTypeField.java b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillTypeField.java new file mode 100644 index 000000000..bec9f207d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.statusskillcard; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum StatusSkillCardSkillTypeField implements Valuable { + SERVICE("service"); + + private final String value; + + StatusSkillCardSkillTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class StatusSkillCardSkillTypeFieldDeserializer + extends JsonDeserializer> { + + public StatusSkillCardSkillTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(StatusSkillCardSkillTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class StatusSkillCardSkillTypeFieldSerializer + extends JsonSerializer> { + + public StatusSkillCardSkillTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardStatusCodeField.java b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardStatusCodeField.java new file mode 100644 index 000000000..49d326cb1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardStatusCodeField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.schemas.statusskillcard; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum StatusSkillCardStatusCodeField implements Valuable { + INVOKED("invoked"), + PROCESSING("processing"), + SUCCESS("success"), + TRANSIENT_FAILURE("transient_failure"), + PERMANENT_FAILURE("permanent_failure"); + + private final String value; + + StatusSkillCardStatusCodeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class StatusSkillCardStatusCodeFieldDeserializer + extends JsonDeserializer> { + + public StatusSkillCardStatusCodeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(StatusSkillCardStatusCodeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class StatusSkillCardStatusCodeFieldSerializer + extends JsonSerializer> { + + public StatusSkillCardStatusCodeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardStatusField.java b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardStatusField.java new file mode 100644 index 000000000..792fa248f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardStatusField.java @@ -0,0 +1,104 @@ +package com.box.sdkgen.schemas.statusskillcard; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class StatusSkillCardStatusField extends SerializableObject { + + @JsonDeserialize( + using = StatusSkillCardStatusCodeField.StatusSkillCardStatusCodeFieldDeserializer.class) + @JsonSerialize( + using = StatusSkillCardStatusCodeField.StatusSkillCardStatusCodeFieldSerializer.class) + protected final EnumWrapper code; + + protected String message; + + public StatusSkillCardStatusField(StatusSkillCardStatusCodeField code) { + super(); + this.code = new EnumWrapper(code); + } + + public StatusSkillCardStatusField( + @JsonProperty("code") EnumWrapper code) { + super(); + this.code = code; + } + + protected StatusSkillCardStatusField(Builder builder) { + super(); + this.code = builder.code; + this.message = builder.message; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getCode() { + return code; + } + + public String getMessage() { + return message; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StatusSkillCardStatusField casted = (StatusSkillCardStatusField) o; + return Objects.equals(code, casted.code) && Objects.equals(message, casted.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, message); + } + + @Override + public String toString() { + return "StatusSkillCardStatusField{" + + "code='" + + code + + '\'' + + ", " + + "message='" + + message + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final EnumWrapper code; + + protected String message; + + public Builder(StatusSkillCardStatusCodeField code) { + super(); + this.code = new EnumWrapper(code); + } + + public Builder(EnumWrapper code) { + super(); + this.code = code; + } + + public Builder message(String message) { + this.message = message; + return this; + } + + public StatusSkillCardStatusField build() { + return new StatusSkillCardStatusField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardTypeField.java b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardTypeField.java new file mode 100644 index 000000000..468a54d86 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.statusskillcard; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum StatusSkillCardTypeField implements Valuable { + SKILL_CARD("skill_card"); + + private final String value; + + StatusSkillCardTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class StatusSkillCardTypeFieldDeserializer + extends JsonDeserializer> { + + public StatusSkillCardTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(StatusSkillCardTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class StatusSkillCardTypeFieldSerializer + extends JsonSerializer> { + + public StatusSkillCardTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/storagepolicies/StoragePolicies.java b/src/main/java/com/box/sdkgen/schemas/storagepolicies/StoragePolicies.java new file mode 100644 index 000000000..02ad6cc44 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/storagepolicies/StoragePolicies.java @@ -0,0 +1,133 @@ +package com.box.sdkgen.schemas.storagepolicies; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.storagepolicy.StoragePolicy; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class StoragePolicies extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + protected List entries; + + public StoragePolicies() { + super(); + } + + protected StoragePolicies(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StoragePolicies casted = (StoragePolicies) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "StoragePolicies{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public StoragePolicies build() { + return new StoragePolicies(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/storagepolicy/StoragePolicy.java b/src/main/java/com/box/sdkgen/schemas/storagepolicy/StoragePolicy.java new file mode 100644 index 000000000..0be682fb9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/storagepolicy/StoragePolicy.java @@ -0,0 +1,94 @@ +package com.box.sdkgen.schemas.storagepolicy; + +import com.box.sdkgen.schemas.storagepolicymini.StoragePolicyMini; +import com.box.sdkgen.schemas.storagepolicymini.StoragePolicyMiniTypeField; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class StoragePolicy extends StoragePolicyMini { + + protected String name; + + public StoragePolicy(@JsonProperty("id") String id) { + super(id); + } + + protected StoragePolicy(Builder builder) { + super(builder); + this.name = builder.name; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StoragePolicy casted = (StoragePolicy) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name); + } + + @Override + public String toString() { + return "StoragePolicy{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + "}"; + } + + public static class Builder extends StoragePolicyMini.Builder { + + protected String name; + + public Builder(String id) { + super(id); + } + + public Builder name(String name) { + this.name = name; + return this; + } + + @Override + public Builder type(StoragePolicyMiniTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public StoragePolicy build() { + return new StoragePolicy(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignment.java b/src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignment.java new file mode 100644 index 000000000..75f24c87a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignment.java @@ -0,0 +1,146 @@ +package com.box.sdkgen.schemas.storagepolicyassignment; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.storagepolicymini.StoragePolicyMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class StoragePolicyAssignment extends SerializableObject { + + protected final String id; + + @JsonDeserialize( + using = StoragePolicyAssignmentTypeField.StoragePolicyAssignmentTypeFieldDeserializer.class) + @JsonSerialize( + using = StoragePolicyAssignmentTypeField.StoragePolicyAssignmentTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("storage_policy") + protected StoragePolicyMini storagePolicy; + + @JsonProperty("assigned_to") + protected StoragePolicyAssignmentAssignedToField assignedTo; + + public StoragePolicyAssignment(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + StoragePolicyAssignmentTypeField.STORAGE_POLICY_ASSIGNMENT); + } + + protected StoragePolicyAssignment(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.storagePolicy = builder.storagePolicy; + this.assignedTo = builder.assignedTo; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public StoragePolicyMini getStoragePolicy() { + return storagePolicy; + } + + public StoragePolicyAssignmentAssignedToField getAssignedTo() { + return assignedTo; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StoragePolicyAssignment casted = (StoragePolicyAssignment) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(storagePolicy, casted.storagePolicy) + && Objects.equals(assignedTo, casted.assignedTo); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, storagePolicy, assignedTo); + } + + @Override + public String toString() { + return "StoragePolicyAssignment{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "storagePolicy='" + + storagePolicy + + '\'' + + ", " + + "assignedTo='" + + assignedTo + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + protected StoragePolicyMini storagePolicy; + + protected StoragePolicyAssignmentAssignedToField assignedTo; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + StoragePolicyAssignmentTypeField.STORAGE_POLICY_ASSIGNMENT); + } + + public Builder type(StoragePolicyAssignmentTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder storagePolicy(StoragePolicyMini storagePolicy) { + this.storagePolicy = storagePolicy; + return this; + } + + public Builder assignedTo(StoragePolicyAssignmentAssignedToField assignedTo) { + this.assignedTo = assignedTo; + return this; + } + + public StoragePolicyAssignment build() { + return new StoragePolicyAssignment(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignmentAssignedToField.java b/src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignmentAssignedToField.java new file mode 100644 index 000000000..b838861c5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignmentAssignedToField.java @@ -0,0 +1,84 @@ +package com.box.sdkgen.schemas.storagepolicyassignment; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class StoragePolicyAssignmentAssignedToField extends SerializableObject { + + protected String id; + + protected String type; + + public StoragePolicyAssignmentAssignedToField() { + super(); + } + + protected StoragePolicyAssignmentAssignedToField(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StoragePolicyAssignmentAssignedToField casted = (StoragePolicyAssignmentAssignedToField) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "StoragePolicyAssignmentAssignedToField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected String type; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(String type) { + this.type = type; + return this; + } + + public StoragePolicyAssignmentAssignedToField build() { + return new StoragePolicyAssignmentAssignedToField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignmentTypeField.java b/src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignmentTypeField.java new file mode 100644 index 000000000..35c4ca085 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignmentTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.storagepolicyassignment; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum StoragePolicyAssignmentTypeField implements Valuable { + STORAGE_POLICY_ASSIGNMENT("storage_policy_assignment"); + + private final String value; + + StoragePolicyAssignmentTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class StoragePolicyAssignmentTypeFieldDeserializer + extends JsonDeserializer> { + + public StoragePolicyAssignmentTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(StoragePolicyAssignmentTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class StoragePolicyAssignmentTypeFieldSerializer + extends JsonSerializer> { + + public StoragePolicyAssignmentTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/storagepolicyassignments/StoragePolicyAssignments.java b/src/main/java/com/box/sdkgen/schemas/storagepolicyassignments/StoragePolicyAssignments.java new file mode 100644 index 000000000..9b7118a1d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/storagepolicyassignments/StoragePolicyAssignments.java @@ -0,0 +1,133 @@ +package com.box.sdkgen.schemas.storagepolicyassignments; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.storagepolicyassignment.StoragePolicyAssignment; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class StoragePolicyAssignments extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + protected List entries; + + public StoragePolicyAssignments() { + super(); + } + + protected StoragePolicyAssignments(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StoragePolicyAssignments casted = (StoragePolicyAssignments) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "StoragePolicyAssignments{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public StoragePolicyAssignments build() { + return new StoragePolicyAssignments(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/storagepolicymini/StoragePolicyMini.java b/src/main/java/com/box/sdkgen/schemas/storagepolicymini/StoragePolicyMini.java new file mode 100644 index 000000000..85f314570 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/storagepolicymini/StoragePolicyMini.java @@ -0,0 +1,92 @@ +package com.box.sdkgen.schemas.storagepolicymini; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class StoragePolicyMini extends SerializableObject { + + protected final String id; + + @JsonDeserialize(using = StoragePolicyMiniTypeField.StoragePolicyMiniTypeFieldDeserializer.class) + @JsonSerialize(using = StoragePolicyMiniTypeField.StoragePolicyMiniTypeFieldSerializer.class) + protected EnumWrapper type; + + public StoragePolicyMini(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper(StoragePolicyMiniTypeField.STORAGE_POLICY); + } + + protected StoragePolicyMini(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StoragePolicyMini casted = (StoragePolicyMini) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "StoragePolicyMini{" + "id='" + id + '\'' + ", " + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper(StoragePolicyMiniTypeField.STORAGE_POLICY); + } + + public Builder type(StoragePolicyMiniTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public StoragePolicyMini build() { + return new StoragePolicyMini(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/storagepolicymini/StoragePolicyMiniTypeField.java b/src/main/java/com/box/sdkgen/schemas/storagepolicymini/StoragePolicyMiniTypeField.java new file mode 100644 index 000000000..b9d6ee6d8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/storagepolicymini/StoragePolicyMiniTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.storagepolicymini; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum StoragePolicyMiniTypeField implements Valuable { + STORAGE_POLICY("storage_policy"); + + private final String value; + + StoragePolicyMiniTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class StoragePolicyMiniTypeFieldDeserializer + extends JsonDeserializer> { + + public StoragePolicyMiniTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(StoragePolicyMiniTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class StoragePolicyMiniTypeFieldSerializer + extends JsonSerializer> { + + public StoragePolicyMiniTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/task/Task.java b/src/main/java/com/box/sdkgen/schemas/task/Task.java new file mode 100644 index 000000000..5669349cf --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/task/Task.java @@ -0,0 +1,307 @@ +package com.box.sdkgen.schemas.task; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.filemini.FileMini; +import com.box.sdkgen.schemas.taskassignments.TaskAssignments; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Task extends SerializableObject { + + protected String id; + + @JsonDeserialize(using = TaskTypeField.TaskTypeFieldDeserializer.class) + @JsonSerialize(using = TaskTypeField.TaskTypeFieldSerializer.class) + protected EnumWrapper type; + + protected FileMini item; + + @JsonProperty("due_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date dueAt; + + @JsonDeserialize(using = TaskActionField.TaskActionFieldDeserializer.class) + @JsonSerialize(using = TaskActionField.TaskActionFieldSerializer.class) + protected EnumWrapper action; + + protected String message; + + @JsonProperty("task_assignment_collection") + protected TaskAssignments taskAssignmentCollection; + + @JsonProperty("is_completed") + protected Boolean isCompleted; + + @JsonProperty("created_by") + protected UserMini createdBy; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonDeserialize(using = TaskCompletionRuleField.TaskCompletionRuleFieldDeserializer.class) + @JsonSerialize(using = TaskCompletionRuleField.TaskCompletionRuleFieldSerializer.class) + @JsonProperty("completion_rule") + protected EnumWrapper completionRule; + + public Task() { + super(); + } + + protected Task(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.item = builder.item; + this.dueAt = builder.dueAt; + this.action = builder.action; + this.message = builder.message; + this.taskAssignmentCollection = builder.taskAssignmentCollection; + this.isCompleted = builder.isCompleted; + this.createdBy = builder.createdBy; + this.createdAt = builder.createdAt; + this.completionRule = builder.completionRule; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public FileMini getItem() { + return item; + } + + public Date getDueAt() { + return dueAt; + } + + public EnumWrapper getAction() { + return action; + } + + public String getMessage() { + return message; + } + + public TaskAssignments getTaskAssignmentCollection() { + return taskAssignmentCollection; + } + + public Boolean getIsCompleted() { + return isCompleted; + } + + public UserMini getCreatedBy() { + return createdBy; + } + + public Date getCreatedAt() { + return createdAt; + } + + public EnumWrapper getCompletionRule() { + return completionRule; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Task casted = (Task) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(item, casted.item) + && Objects.equals(dueAt, casted.dueAt) + && Objects.equals(action, casted.action) + && Objects.equals(message, casted.message) + && Objects.equals(taskAssignmentCollection, casted.taskAssignmentCollection) + && Objects.equals(isCompleted, casted.isCompleted) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(completionRule, casted.completionRule); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + type, + item, + dueAt, + action, + message, + taskAssignmentCollection, + isCompleted, + createdBy, + createdAt, + completionRule); + } + + @Override + public String toString() { + return "Task{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "item='" + + item + + '\'' + + ", " + + "dueAt='" + + dueAt + + '\'' + + ", " + + "action='" + + action + + '\'' + + ", " + + "message='" + + message + + '\'' + + ", " + + "taskAssignmentCollection='" + + taskAssignmentCollection + + '\'' + + ", " + + "isCompleted='" + + isCompleted + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "completionRule='" + + completionRule + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected FileMini item; + + protected Date dueAt; + + protected EnumWrapper action; + + protected String message; + + protected TaskAssignments taskAssignmentCollection; + + protected Boolean isCompleted; + + protected UserMini createdBy; + + protected Date createdAt; + + protected EnumWrapper completionRule; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(TaskTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder item(FileMini item) { + this.item = item; + return this; + } + + public Builder dueAt(Date dueAt) { + this.dueAt = dueAt; + return this; + } + + public Builder action(TaskActionField action) { + this.action = new EnumWrapper(action); + return this; + } + + public Builder action(EnumWrapper action) { + this.action = action; + return this; + } + + public Builder message(String message) { + this.message = message; + return this; + } + + public Builder taskAssignmentCollection(TaskAssignments taskAssignmentCollection) { + this.taskAssignmentCollection = taskAssignmentCollection; + return this; + } + + public Builder isCompleted(Boolean isCompleted) { + this.isCompleted = isCompleted; + return this; + } + + public Builder createdBy(UserMini createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder completionRule(TaskCompletionRuleField completionRule) { + this.completionRule = new EnumWrapper(completionRule); + return this; + } + + public Builder completionRule(EnumWrapper completionRule) { + this.completionRule = completionRule; + return this; + } + + public Task build() { + return new Task(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/task/TaskActionField.java b/src/main/java/com/box/sdkgen/schemas/task/TaskActionField.java new file mode 100644 index 000000000..067dacc4e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/task/TaskActionField.java @@ -0,0 +1,61 @@ +package com.box.sdkgen.schemas.task; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TaskActionField implements Valuable { + REVIEW("review"), + COMPLETE("complete"); + + private final String value; + + TaskActionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TaskActionFieldDeserializer + extends JsonDeserializer> { + + public TaskActionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TaskActionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TaskActionFieldSerializer + extends JsonSerializer> { + + public TaskActionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/task/TaskCompletionRuleField.java b/src/main/java/com/box/sdkgen/schemas/task/TaskCompletionRuleField.java new file mode 100644 index 000000000..0f81faef9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/task/TaskCompletionRuleField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.task; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TaskCompletionRuleField implements Valuable { + ALL_ASSIGNEES("all_assignees"), + ANY_ASSIGNEE("any_assignee"); + + private final String value; + + TaskCompletionRuleField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TaskCompletionRuleFieldDeserializer + extends JsonDeserializer> { + + public TaskCompletionRuleFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TaskCompletionRuleField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TaskCompletionRuleFieldSerializer + extends JsonSerializer> { + + public TaskCompletionRuleFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/task/TaskTypeField.java b/src/main/java/com/box/sdkgen/schemas/task/TaskTypeField.java new file mode 100644 index 000000000..2da6264e5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/task/TaskTypeField.java @@ -0,0 +1,59 @@ +package com.box.sdkgen.schemas.task; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TaskTypeField implements Valuable { + TASK("task"); + + private final String value; + + TaskTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TaskTypeFieldDeserializer + extends JsonDeserializer> { + + public TaskTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TaskTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TaskTypeFieldSerializer extends JsonSerializer> { + + public TaskTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignment.java b/src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignment.java new file mode 100644 index 000000000..b7822c56f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignment.java @@ -0,0 +1,285 @@ +package com.box.sdkgen.schemas.taskassignment; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.filemini.FileMini; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TaskAssignment extends SerializableObject { + + protected String id; + + @JsonDeserialize(using = TaskAssignmentTypeField.TaskAssignmentTypeFieldDeserializer.class) + @JsonSerialize(using = TaskAssignmentTypeField.TaskAssignmentTypeFieldSerializer.class) + protected EnumWrapper type; + + protected FileMini item; + + @JsonProperty("assigned_to") + protected UserMini assignedTo; + + protected String message; + + @JsonProperty("completed_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date completedAt; + + @JsonProperty("assigned_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date assignedAt; + + @JsonProperty("reminded_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date remindedAt; + + @JsonDeserialize( + using = + TaskAssignmentResolutionStateField.TaskAssignmentResolutionStateFieldDeserializer.class) + @JsonSerialize( + using = TaskAssignmentResolutionStateField.TaskAssignmentResolutionStateFieldSerializer.class) + @JsonProperty("resolution_state") + protected EnumWrapper resolutionState; + + @JsonProperty("assigned_by") + protected UserMini assignedBy; + + public TaskAssignment() { + super(); + } + + protected TaskAssignment(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.item = builder.item; + this.assignedTo = builder.assignedTo; + this.message = builder.message; + this.completedAt = builder.completedAt; + this.assignedAt = builder.assignedAt; + this.remindedAt = builder.remindedAt; + this.resolutionState = builder.resolutionState; + this.assignedBy = builder.assignedBy; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public FileMini getItem() { + return item; + } + + public UserMini getAssignedTo() { + return assignedTo; + } + + public String getMessage() { + return message; + } + + public Date getCompletedAt() { + return completedAt; + } + + public Date getAssignedAt() { + return assignedAt; + } + + public Date getRemindedAt() { + return remindedAt; + } + + public EnumWrapper getResolutionState() { + return resolutionState; + } + + public UserMini getAssignedBy() { + return assignedBy; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TaskAssignment casted = (TaskAssignment) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(item, casted.item) + && Objects.equals(assignedTo, casted.assignedTo) + && Objects.equals(message, casted.message) + && Objects.equals(completedAt, casted.completedAt) + && Objects.equals(assignedAt, casted.assignedAt) + && Objects.equals(remindedAt, casted.remindedAt) + && Objects.equals(resolutionState, casted.resolutionState) + && Objects.equals(assignedBy, casted.assignedBy); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + type, + item, + assignedTo, + message, + completedAt, + assignedAt, + remindedAt, + resolutionState, + assignedBy); + } + + @Override + public String toString() { + return "TaskAssignment{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "item='" + + item + + '\'' + + ", " + + "assignedTo='" + + assignedTo + + '\'' + + ", " + + "message='" + + message + + '\'' + + ", " + + "completedAt='" + + completedAt + + '\'' + + ", " + + "assignedAt='" + + assignedAt + + '\'' + + ", " + + "remindedAt='" + + remindedAt + + '\'' + + ", " + + "resolutionState='" + + resolutionState + + '\'' + + ", " + + "assignedBy='" + + assignedBy + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected FileMini item; + + protected UserMini assignedTo; + + protected String message; + + protected Date completedAt; + + protected Date assignedAt; + + protected Date remindedAt; + + protected EnumWrapper resolutionState; + + protected UserMini assignedBy; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(TaskAssignmentTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder item(FileMini item) { + this.item = item; + return this; + } + + public Builder assignedTo(UserMini assignedTo) { + this.assignedTo = assignedTo; + return this; + } + + public Builder message(String message) { + this.message = message; + return this; + } + + public Builder completedAt(Date completedAt) { + this.completedAt = completedAt; + return this; + } + + public Builder assignedAt(Date assignedAt) { + this.assignedAt = assignedAt; + return this; + } + + public Builder remindedAt(Date remindedAt) { + this.remindedAt = remindedAt; + return this; + } + + public Builder resolutionState(TaskAssignmentResolutionStateField resolutionState) { + this.resolutionState = new EnumWrapper(resolutionState); + return this; + } + + public Builder resolutionState( + EnumWrapper resolutionState) { + this.resolutionState = resolutionState; + return this; + } + + public Builder assignedBy(UserMini assignedBy) { + this.assignedBy = assignedBy; + return this; + } + + public TaskAssignment build() { + return new TaskAssignment(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignmentResolutionStateField.java b/src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignmentResolutionStateField.java new file mode 100644 index 000000000..d321b3b0c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignmentResolutionStateField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.schemas.taskassignment; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TaskAssignmentResolutionStateField implements Valuable { + COMPLETED("completed"), + INCOMPLETE("incomplete"), + APPROVED("approved"), + REJECTED("rejected"); + + private final String value; + + TaskAssignmentResolutionStateField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TaskAssignmentResolutionStateFieldDeserializer + extends JsonDeserializer> { + + public TaskAssignmentResolutionStateFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TaskAssignmentResolutionStateField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TaskAssignmentResolutionStateFieldSerializer + extends JsonSerializer> { + + public TaskAssignmentResolutionStateFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignmentTypeField.java b/src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignmentTypeField.java new file mode 100644 index 000000000..7a11897d4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignmentTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.taskassignment; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TaskAssignmentTypeField implements Valuable { + TASK_ASSIGNMENT("task_assignment"); + + private final String value; + + TaskAssignmentTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TaskAssignmentTypeFieldDeserializer + extends JsonDeserializer> { + + public TaskAssignmentTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TaskAssignmentTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TaskAssignmentTypeFieldSerializer + extends JsonSerializer> { + + public TaskAssignmentTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/taskassignments/TaskAssignments.java b/src/main/java/com/box/sdkgen/schemas/taskassignments/TaskAssignments.java new file mode 100644 index 000000000..48d338939 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/taskassignments/TaskAssignments.java @@ -0,0 +1,88 @@ +package com.box.sdkgen.schemas.taskassignments; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.taskassignment.TaskAssignment; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TaskAssignments extends SerializableObject { + + @JsonProperty("total_count") + protected Long totalCount; + + protected List entries; + + public TaskAssignments() { + super(); + } + + protected TaskAssignments(Builder builder) { + super(); + this.totalCount = builder.totalCount; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getTotalCount() { + return totalCount; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TaskAssignments casted = (TaskAssignments) o; + return Objects.equals(totalCount, casted.totalCount) && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, entries); + } + + @Override + public String toString() { + return "TaskAssignments{" + + "totalCount='" + + totalCount + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long totalCount; + + protected List entries; + + public Builder totalCount(Long totalCount) { + this.totalCount = totalCount; + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public TaskAssignments build() { + return new TaskAssignments(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/tasks/Tasks.java b/src/main/java/com/box/sdkgen/schemas/tasks/Tasks.java new file mode 100644 index 000000000..27d244a07 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/tasks/Tasks.java @@ -0,0 +1,88 @@ +package com.box.sdkgen.schemas.tasks; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.task.Task; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Tasks extends SerializableObject { + + @JsonProperty("total_count") + protected Long totalCount; + + protected List entries; + + public Tasks() { + super(); + } + + protected Tasks(Builder builder) { + super(); + this.totalCount = builder.totalCount; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getTotalCount() { + return totalCount; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Tasks casted = (Tasks) o; + return Objects.equals(totalCount, casted.totalCount) && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, entries); + } + + @Override + public String toString() { + return "Tasks{" + + "totalCount='" + + totalCount + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long totalCount; + + protected List entries; + + public Builder totalCount(Long totalCount) { + this.totalCount = totalCount; + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public Tasks build() { + return new Tasks(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/templatesigner/TemplateSigner.java b/src/main/java/com/box/sdkgen/schemas/templatesigner/TemplateSigner.java new file mode 100644 index 000000000..47f6bba28 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/templatesigner/TemplateSigner.java @@ -0,0 +1,297 @@ +package com.box.sdkgen.schemas.templatesigner; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.templatesignerinput.TemplateSignerInput; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TemplateSigner extends SerializableObject { + + protected List inputs; + + @Nullable protected String email; + + @JsonDeserialize(using = TemplateSignerRoleField.TemplateSignerRoleFieldDeserializer.class) + @JsonSerialize(using = TemplateSignerRoleField.TemplateSignerRoleFieldSerializer.class) + protected EnumWrapper role; + + @JsonProperty("is_in_person") + protected Boolean isInPerson; + + protected Long order; + + @JsonProperty("signer_group_id") + @Nullable + protected String signerGroupId; + + @Nullable protected String label; + + @JsonProperty("public_id") + protected String publicId; + + @JsonProperty("is_password_required") + @Nullable + protected Boolean isPasswordRequired; + + @JsonProperty("is_phone_number_required") + @Nullable + protected Boolean isPhoneNumberRequired; + + @JsonProperty("login_required") + @Nullable + protected Boolean loginRequired; + + public TemplateSigner() { + super(); + } + + protected TemplateSigner(Builder builder) { + super(); + this.inputs = builder.inputs; + this.email = builder.email; + this.role = builder.role; + this.isInPerson = builder.isInPerson; + this.order = builder.order; + this.signerGroupId = builder.signerGroupId; + this.label = builder.label; + this.publicId = builder.publicId; + this.isPasswordRequired = builder.isPasswordRequired; + this.isPhoneNumberRequired = builder.isPhoneNumberRequired; + this.loginRequired = builder.loginRequired; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getInputs() { + return inputs; + } + + public String getEmail() { + return email; + } + + public EnumWrapper getRole() { + return role; + } + + public Boolean getIsInPerson() { + return isInPerson; + } + + public Long getOrder() { + return order; + } + + public String getSignerGroupId() { + return signerGroupId; + } + + public String getLabel() { + return label; + } + + public String getPublicId() { + return publicId; + } + + public Boolean getIsPasswordRequired() { + return isPasswordRequired; + } + + public Boolean getIsPhoneNumberRequired() { + return isPhoneNumberRequired; + } + + public Boolean getLoginRequired() { + return loginRequired; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TemplateSigner casted = (TemplateSigner) o; + return Objects.equals(inputs, casted.inputs) + && Objects.equals(email, casted.email) + && Objects.equals(role, casted.role) + && Objects.equals(isInPerson, casted.isInPerson) + && Objects.equals(order, casted.order) + && Objects.equals(signerGroupId, casted.signerGroupId) + && Objects.equals(label, casted.label) + && Objects.equals(publicId, casted.publicId) + && Objects.equals(isPasswordRequired, casted.isPasswordRequired) + && Objects.equals(isPhoneNumberRequired, casted.isPhoneNumberRequired) + && Objects.equals(loginRequired, casted.loginRequired); + } + + @Override + public int hashCode() { + return Objects.hash( + inputs, + email, + role, + isInPerson, + order, + signerGroupId, + label, + publicId, + isPasswordRequired, + isPhoneNumberRequired, + loginRequired); + } + + @Override + public String toString() { + return "TemplateSigner{" + + "inputs='" + + inputs + + '\'' + + ", " + + "email='" + + email + + '\'' + + ", " + + "role='" + + role + + '\'' + + ", " + + "isInPerson='" + + isInPerson + + '\'' + + ", " + + "order='" + + order + + '\'' + + ", " + + "signerGroupId='" + + signerGroupId + + '\'' + + ", " + + "label='" + + label + + '\'' + + ", " + + "publicId='" + + publicId + + '\'' + + ", " + + "isPasswordRequired='" + + isPasswordRequired + + '\'' + + ", " + + "isPhoneNumberRequired='" + + isPhoneNumberRequired + + '\'' + + ", " + + "loginRequired='" + + loginRequired + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List inputs; + + protected String email; + + protected EnumWrapper role; + + protected Boolean isInPerson; + + protected Long order; + + protected String signerGroupId; + + protected String label; + + protected String publicId; + + protected Boolean isPasswordRequired; + + protected Boolean isPhoneNumberRequired; + + protected Boolean loginRequired; + + public Builder inputs(List inputs) { + this.inputs = inputs; + return this; + } + + public Builder email(String email) { + this.email = email; + this.markNullableFieldAsSet("email"); + return this; + } + + public Builder role(TemplateSignerRoleField role) { + this.role = new EnumWrapper(role); + return this; + } + + public Builder role(EnumWrapper role) { + this.role = role; + return this; + } + + public Builder isInPerson(Boolean isInPerson) { + this.isInPerson = isInPerson; + return this; + } + + public Builder order(Long order) { + this.order = order; + return this; + } + + public Builder signerGroupId(String signerGroupId) { + this.signerGroupId = signerGroupId; + this.markNullableFieldAsSet("signer_group_id"); + return this; + } + + public Builder label(String label) { + this.label = label; + this.markNullableFieldAsSet("label"); + return this; + } + + public Builder publicId(String publicId) { + this.publicId = publicId; + return this; + } + + public Builder isPasswordRequired(Boolean isPasswordRequired) { + this.isPasswordRequired = isPasswordRequired; + this.markNullableFieldAsSet("is_password_required"); + return this; + } + + public Builder isPhoneNumberRequired(Boolean isPhoneNumberRequired) { + this.isPhoneNumberRequired = isPhoneNumberRequired; + this.markNullableFieldAsSet("is_phone_number_required"); + return this; + } + + public Builder loginRequired(Boolean loginRequired) { + this.loginRequired = loginRequired; + this.markNullableFieldAsSet("login_required"); + return this; + } + + public TemplateSigner build() { + return new TemplateSigner(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/templatesigner/TemplateSignerRoleField.java b/src/main/java/com/box/sdkgen/schemas/templatesigner/TemplateSignerRoleField.java new file mode 100644 index 000000000..e2de6ebf0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/templatesigner/TemplateSignerRoleField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.templatesigner; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TemplateSignerRoleField implements Valuable { + SIGNER("signer"), + APPROVER("approver"), + FINAL_COPY_READER("final_copy_reader"); + + private final String value; + + TemplateSignerRoleField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TemplateSignerRoleFieldDeserializer + extends JsonDeserializer> { + + public TemplateSignerRoleFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TemplateSignerRoleField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TemplateSignerRoleFieldSerializer + extends JsonSerializer> { + + public TemplateSignerRoleFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInput.java b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInput.java new file mode 100644 index 000000000..cc6443dc0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInput.java @@ -0,0 +1,359 @@ +package com.box.sdkgen.schemas.templatesignerinput; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.schemas.signrequestprefilltag.SignRequestPrefillTag; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TemplateSignerInput extends SignRequestPrefillTag { + + @JsonDeserialize( + using = TemplateSignerInputTypeField.TemplateSignerInputTypeFieldDeserializer.class) + @JsonSerialize(using = TemplateSignerInputTypeField.TemplateSignerInputTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonDeserialize( + using = + TemplateSignerInputContentTypeField.TemplateSignerInputContentTypeFieldDeserializer.class) + @JsonSerialize( + using = + TemplateSignerInputContentTypeField.TemplateSignerInputContentTypeFieldSerializer.class) + @JsonProperty("content_type") + protected EnumWrapper contentType; + + @JsonProperty("is_required") + protected Boolean isRequired; + + @JsonProperty("page_index") + protected final long pageIndex; + + @JsonProperty("document_id") + @Nullable + protected String documentId; + + @JsonProperty("dropdown_choices") + @Nullable + protected List dropdownChoices; + + @JsonProperty("group_id") + @Nullable + protected String groupId; + + protected TemplateSignerInputCoordinatesField coordinates; + + protected TemplateSignerInputDimensionsField dimensions; + + @Nullable protected String label; + + @JsonProperty("read_only") + protected Boolean readOnly; + + public TemplateSignerInput(@JsonProperty("page_index") long pageIndex) { + super(); + this.pageIndex = pageIndex; + } + + protected TemplateSignerInput(Builder builder) { + super(builder); + this.type = builder.type; + this.contentType = builder.contentType; + this.isRequired = builder.isRequired; + this.pageIndex = builder.pageIndex; + this.documentId = builder.documentId; + this.dropdownChoices = builder.dropdownChoices; + this.groupId = builder.groupId; + this.coordinates = builder.coordinates; + this.dimensions = builder.dimensions; + this.label = builder.label; + this.readOnly = builder.readOnly; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public EnumWrapper getContentType() { + return contentType; + } + + public Boolean getIsRequired() { + return isRequired; + } + + public long getPageIndex() { + return pageIndex; + } + + public String getDocumentId() { + return documentId; + } + + public List getDropdownChoices() { + return dropdownChoices; + } + + public String getGroupId() { + return groupId; + } + + public TemplateSignerInputCoordinatesField getCoordinates() { + return coordinates; + } + + public TemplateSignerInputDimensionsField getDimensions() { + return dimensions; + } + + public String getLabel() { + return label; + } + + public Boolean getReadOnly() { + return readOnly; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TemplateSignerInput casted = (TemplateSignerInput) o; + return Objects.equals(documentTagId, casted.documentTagId) + && Objects.equals(textValue, casted.textValue) + && Objects.equals(checkboxValue, casted.checkboxValue) + && Objects.equals(dateValue, casted.dateValue) + && Objects.equals(type, casted.type) + && Objects.equals(contentType, casted.contentType) + && Objects.equals(isRequired, casted.isRequired) + && Objects.equals(pageIndex, casted.pageIndex) + && Objects.equals(documentId, casted.documentId) + && Objects.equals(dropdownChoices, casted.dropdownChoices) + && Objects.equals(groupId, casted.groupId) + && Objects.equals(coordinates, casted.coordinates) + && Objects.equals(dimensions, casted.dimensions) + && Objects.equals(label, casted.label) + && Objects.equals(readOnly, casted.readOnly); + } + + @Override + public int hashCode() { + return Objects.hash( + documentTagId, + textValue, + checkboxValue, + dateValue, + type, + contentType, + isRequired, + pageIndex, + documentId, + dropdownChoices, + groupId, + coordinates, + dimensions, + label, + readOnly); + } + + @Override + public String toString() { + return "TemplateSignerInput{" + + "documentTagId='" + + documentTagId + + '\'' + + ", " + + "textValue='" + + textValue + + '\'' + + ", " + + "checkboxValue='" + + checkboxValue + + '\'' + + ", " + + "dateValue='" + + dateValue + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "contentType='" + + contentType + + '\'' + + ", " + + "isRequired='" + + isRequired + + '\'' + + ", " + + "pageIndex='" + + pageIndex + + '\'' + + ", " + + "documentId='" + + documentId + + '\'' + + ", " + + "dropdownChoices='" + + dropdownChoices + + '\'' + + ", " + + "groupId='" + + groupId + + '\'' + + ", " + + "coordinates='" + + coordinates + + '\'' + + ", " + + "dimensions='" + + dimensions + + '\'' + + ", " + + "label='" + + label + + '\'' + + ", " + + "readOnly='" + + readOnly + + '\'' + + "}"; + } + + public static class Builder extends SignRequestPrefillTag.Builder { + + protected EnumWrapper type; + + protected EnumWrapper contentType; + + protected Boolean isRequired; + + protected final long pageIndex; + + protected String documentId; + + protected List dropdownChoices; + + protected String groupId; + + protected TemplateSignerInputCoordinatesField coordinates; + + protected TemplateSignerInputDimensionsField dimensions; + + protected String label; + + protected Boolean readOnly; + + public Builder(long pageIndex) { + super(); + this.pageIndex = pageIndex; + } + + public Builder type(TemplateSignerInputTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder contentType(TemplateSignerInputContentTypeField contentType) { + this.contentType = new EnumWrapper(contentType); + return this; + } + + public Builder contentType(EnumWrapper contentType) { + this.contentType = contentType; + return this; + } + + public Builder isRequired(Boolean isRequired) { + this.isRequired = isRequired; + return this; + } + + public Builder documentId(String documentId) { + this.documentId = documentId; + this.markNullableFieldAsSet("document_id"); + return this; + } + + public Builder dropdownChoices(List dropdownChoices) { + this.dropdownChoices = dropdownChoices; + this.markNullableFieldAsSet("dropdown_choices"); + return this; + } + + public Builder groupId(String groupId) { + this.groupId = groupId; + this.markNullableFieldAsSet("group_id"); + return this; + } + + public Builder coordinates(TemplateSignerInputCoordinatesField coordinates) { + this.coordinates = coordinates; + return this; + } + + public Builder dimensions(TemplateSignerInputDimensionsField dimensions) { + this.dimensions = dimensions; + return this; + } + + public Builder label(String label) { + this.label = label; + this.markNullableFieldAsSet("label"); + return this; + } + + public Builder readOnly(Boolean readOnly) { + this.readOnly = readOnly; + return this; + } + + @Override + public Builder documentTagId(String documentTagId) { + this.documentTagId = documentTagId; + this.markNullableFieldAsSet("document_tag_id"); + return this; + } + + @Override + public Builder textValue(String textValue) { + this.textValue = textValue; + this.markNullableFieldAsSet("text_value"); + return this; + } + + @Override + public Builder checkboxValue(Boolean checkboxValue) { + this.checkboxValue = checkboxValue; + this.markNullableFieldAsSet("checkbox_value"); + return this; + } + + @Override + public Builder dateValue(Date dateValue) { + this.dateValue = dateValue; + this.markNullableFieldAsSet("date_value"); + return this; + } + + public TemplateSignerInput build() { + return new TemplateSignerInput(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputContentTypeField.java b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputContentTypeField.java new file mode 100644 index 000000000..138ac2f71 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputContentTypeField.java @@ -0,0 +1,76 @@ +package com.box.sdkgen.schemas.templatesignerinput; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TemplateSignerInputContentTypeField implements Valuable { + SIGNATURE("signature"), + INITIAL("initial"), + STAMP("stamp"), + DATE("date"), + CHECKBOX("checkbox"), + TEXT("text"), + FULL_NAME("full_name"), + FIRST_NAME("first_name"), + LAST_NAME("last_name"), + COMPANY("company"), + TITLE("title"), + EMAIL("email"), + ATTACHMENT("attachment"), + RADIO("radio"), + DROPDOWN("dropdown"); + + private final String value; + + TemplateSignerInputContentTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TemplateSignerInputContentTypeFieldDeserializer + extends JsonDeserializer> { + + public TemplateSignerInputContentTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TemplateSignerInputContentTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TemplateSignerInputContentTypeFieldSerializer + extends JsonSerializer> { + + public TemplateSignerInputContentTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputCoordinatesField.java b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputCoordinatesField.java new file mode 100644 index 000000000..f3e3149b1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputCoordinatesField.java @@ -0,0 +1,84 @@ +package com.box.sdkgen.schemas.templatesignerinput; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TemplateSignerInputCoordinatesField extends SerializableObject { + + protected Double x; + + protected Double y; + + public TemplateSignerInputCoordinatesField() { + super(); + } + + protected TemplateSignerInputCoordinatesField(Builder builder) { + super(); + this.x = builder.x; + this.y = builder.y; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Double getX() { + return x; + } + + public Double getY() { + return y; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TemplateSignerInputCoordinatesField casted = (TemplateSignerInputCoordinatesField) o; + return Objects.equals(x, casted.x) && Objects.equals(y, casted.y); + } + + @Override + public int hashCode() { + return Objects.hash(x, y); + } + + @Override + public String toString() { + return "TemplateSignerInputCoordinatesField{" + + "x='" + + x + + '\'' + + ", " + + "y='" + + y + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Double x; + + protected Double y; + + public Builder x(Double x) { + this.x = x; + return this; + } + + public Builder y(Double y) { + this.y = y; + return this; + } + + public TemplateSignerInputCoordinatesField build() { + return new TemplateSignerInputCoordinatesField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputDimensionsField.java b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputDimensionsField.java new file mode 100644 index 000000000..10f9f5684 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputDimensionsField.java @@ -0,0 +1,84 @@ +package com.box.sdkgen.schemas.templatesignerinput; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TemplateSignerInputDimensionsField extends SerializableObject { + + protected Double width; + + protected Double height; + + public TemplateSignerInputDimensionsField() { + super(); + } + + protected TemplateSignerInputDimensionsField(Builder builder) { + super(); + this.width = builder.width; + this.height = builder.height; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Double getWidth() { + return width; + } + + public Double getHeight() { + return height; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TemplateSignerInputDimensionsField casted = (TemplateSignerInputDimensionsField) o; + return Objects.equals(width, casted.width) && Objects.equals(height, casted.height); + } + + @Override + public int hashCode() { + return Objects.hash(width, height); + } + + @Override + public String toString() { + return "TemplateSignerInputDimensionsField{" + + "width='" + + width + + '\'' + + ", " + + "height='" + + height + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Double width; + + protected Double height; + + public Builder width(Double width) { + this.width = width; + return this; + } + + public Builder height(Double height) { + this.height = height; + return this; + } + + public TemplateSignerInputDimensionsField build() { + return new TemplateSignerInputDimensionsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputTypeField.java b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputTypeField.java new file mode 100644 index 000000000..48f8f67c6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputTypeField.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.schemas.templatesignerinput; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TemplateSignerInputTypeField implements Valuable { + SIGNATURE("signature"), + DATE("date"), + TEXT("text"), + CHECKBOX("checkbox"), + ATTACHMENT("attachment"), + RADIO("radio"), + DROPDOWN("dropdown"); + + private final String value; + + TemplateSignerInputTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TemplateSignerInputTypeFieldDeserializer + extends JsonDeserializer> { + + public TemplateSignerInputTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TemplateSignerInputTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TemplateSignerInputTypeFieldSerializer + extends JsonSerializer> { + + public TemplateSignerInputTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfService.java b/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfService.java new file mode 100644 index 000000000..2298bc166 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfService.java @@ -0,0 +1,214 @@ +package com.box.sdkgen.schemas.termsofservice; + +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.termsofservicebase.TermsOfServiceBase; +import com.box.sdkgen.schemas.termsofservicebase.TermsOfServiceBaseTypeField; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TermsOfService extends TermsOfServiceBase { + + @JsonDeserialize(using = TermsOfServiceStatusField.TermsOfServiceStatusFieldDeserializer.class) + @JsonSerialize(using = TermsOfServiceStatusField.TermsOfServiceStatusFieldSerializer.class) + protected EnumWrapper status; + + protected TermsOfServiceEnterpriseField enterprise; + + @JsonDeserialize(using = TermsOfServiceTosTypeField.TermsOfServiceTosTypeFieldDeserializer.class) + @JsonSerialize(using = TermsOfServiceTosTypeField.TermsOfServiceTosTypeFieldSerializer.class) + @JsonProperty("tos_type") + protected EnumWrapper tosType; + + protected String text; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date modifiedAt; + + public TermsOfService(@JsonProperty("id") String id) { + super(id); + } + + protected TermsOfService(Builder builder) { + super(builder); + this.status = builder.status; + this.enterprise = builder.enterprise; + this.tosType = builder.tosType; + this.text = builder.text; + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getStatus() { + return status; + } + + public TermsOfServiceEnterpriseField getEnterprise() { + return enterprise; + } + + public EnumWrapper getTosType() { + return tosType; + } + + public String getText() { + return text; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TermsOfService casted = (TermsOfService) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(status, casted.status) + && Objects.equals(enterprise, casted.enterprise) + && Objects.equals(tosType, casted.tosType) + && Objects.equals(text, casted.text) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, status, enterprise, tosType, text, createdAt, modifiedAt); + } + + @Override + public String toString() { + return "TermsOfService{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "enterprise='" + + enterprise + + '\'' + + ", " + + "tosType='" + + tosType + + '\'' + + ", " + + "text='" + + text + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + "}"; + } + + public static class Builder extends TermsOfServiceBase.Builder { + + protected EnumWrapper status; + + protected TermsOfServiceEnterpriseField enterprise; + + protected EnumWrapper tosType; + + protected String text; + + protected Date createdAt; + + protected Date modifiedAt; + + public Builder(String id) { + super(id); + } + + public Builder status(TermsOfServiceStatusField status) { + this.status = new EnumWrapper(status); + return this; + } + + public Builder status(EnumWrapper status) { + this.status = status; + return this; + } + + public Builder enterprise(TermsOfServiceEnterpriseField enterprise) { + this.enterprise = enterprise; + return this; + } + + public Builder tosType(TermsOfServiceTosTypeField tosType) { + this.tosType = new EnumWrapper(tosType); + return this; + } + + public Builder tosType(EnumWrapper tosType) { + this.tosType = tosType; + return this; + } + + public Builder text(String text) { + this.text = text; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + @Override + public Builder type(TermsOfServiceBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public TermsOfService build() { + return new TermsOfService(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceEnterpriseField.java b/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceEnterpriseField.java new file mode 100644 index 000000000..b140da4da --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceEnterpriseField.java @@ -0,0 +1,116 @@ +package com.box.sdkgen.schemas.termsofservice; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TermsOfServiceEnterpriseField extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = TermsOfServiceEnterpriseTypeField.TermsOfServiceEnterpriseTypeFieldDeserializer.class) + @JsonSerialize( + using = TermsOfServiceEnterpriseTypeField.TermsOfServiceEnterpriseTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String name; + + public TermsOfServiceEnterpriseField() { + super(); + } + + protected TermsOfServiceEnterpriseField(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.name = builder.name; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TermsOfServiceEnterpriseField casted = (TermsOfServiceEnterpriseField) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name); + } + + @Override + public String toString() { + return "TermsOfServiceEnterpriseField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected String name; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(TermsOfServiceEnterpriseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public TermsOfServiceEnterpriseField build() { + return new TermsOfServiceEnterpriseField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceEnterpriseTypeField.java b/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceEnterpriseTypeField.java new file mode 100644 index 000000000..c980cd33d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceEnterpriseTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.termsofservice; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TermsOfServiceEnterpriseTypeField implements Valuable { + ENTERPRISE("enterprise"); + + private final String value; + + TermsOfServiceEnterpriseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TermsOfServiceEnterpriseTypeFieldDeserializer + extends JsonDeserializer> { + + public TermsOfServiceEnterpriseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TermsOfServiceEnterpriseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TermsOfServiceEnterpriseTypeFieldSerializer + extends JsonSerializer> { + + public TermsOfServiceEnterpriseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceStatusField.java b/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceStatusField.java new file mode 100644 index 000000000..612ab5b1c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceStatusField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.termsofservice; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TermsOfServiceStatusField implements Valuable { + ENABLED("enabled"), + DISABLED("disabled"); + + private final String value; + + TermsOfServiceStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TermsOfServiceStatusFieldDeserializer + extends JsonDeserializer> { + + public TermsOfServiceStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TermsOfServiceStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TermsOfServiceStatusFieldSerializer + extends JsonSerializer> { + + public TermsOfServiceStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceTosTypeField.java b/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceTosTypeField.java new file mode 100644 index 000000000..13652408a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceTosTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.termsofservice; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TermsOfServiceTosTypeField implements Valuable { + MANAGED("managed"), + EXTERNAL("external"); + + private final String value; + + TermsOfServiceTosTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TermsOfServiceTosTypeFieldDeserializer + extends JsonDeserializer> { + + public TermsOfServiceTosTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TermsOfServiceTosTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TermsOfServiceTosTypeFieldSerializer + extends JsonSerializer> { + + public TermsOfServiceTosTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/termsofservicebase/TermsOfServiceBase.java b/src/main/java/com/box/sdkgen/schemas/termsofservicebase/TermsOfServiceBase.java new file mode 100644 index 000000000..b5ee488a8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/termsofservicebase/TermsOfServiceBase.java @@ -0,0 +1,94 @@ +package com.box.sdkgen.schemas.termsofservicebase; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TermsOfServiceBase extends SerializableObject { + + protected final String id; + + @JsonDeserialize( + using = TermsOfServiceBaseTypeField.TermsOfServiceBaseTypeFieldDeserializer.class) + @JsonSerialize(using = TermsOfServiceBaseTypeField.TermsOfServiceBaseTypeFieldSerializer.class) + protected EnumWrapper type; + + public TermsOfServiceBase(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper(TermsOfServiceBaseTypeField.TERMS_OF_SERVICE); + } + + protected TermsOfServiceBase(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TermsOfServiceBase casted = (TermsOfServiceBase) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "TermsOfServiceBase{" + "id='" + id + '\'' + ", " + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + TermsOfServiceBaseTypeField.TERMS_OF_SERVICE); + } + + public Builder type(TermsOfServiceBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public TermsOfServiceBase build() { + return new TermsOfServiceBase(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/termsofservicebase/TermsOfServiceBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/termsofservicebase/TermsOfServiceBaseTypeField.java new file mode 100644 index 000000000..cfbf0908f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/termsofservicebase/TermsOfServiceBaseTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.termsofservicebase; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TermsOfServiceBaseTypeField implements Valuable { + TERMS_OF_SERVICE("terms_of_service"); + + private final String value; + + TermsOfServiceBaseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TermsOfServiceBaseTypeFieldDeserializer + extends JsonDeserializer> { + + public TermsOfServiceBaseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TermsOfServiceBaseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TermsOfServiceBaseTypeFieldSerializer + extends JsonSerializer> { + + public TermsOfServiceBaseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/termsofservices/TermsOfServices.java b/src/main/java/com/box/sdkgen/schemas/termsofservices/TermsOfServices.java new file mode 100644 index 000000000..e1cd3accf --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/termsofservices/TermsOfServices.java @@ -0,0 +1,88 @@ +package com.box.sdkgen.schemas.termsofservices; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.termsofservice.TermsOfService; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TermsOfServices extends SerializableObject { + + @JsonProperty("total_count") + protected Long totalCount; + + protected List entries; + + public TermsOfServices() { + super(); + } + + protected TermsOfServices(Builder builder) { + super(); + this.totalCount = builder.totalCount; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getTotalCount() { + return totalCount; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TermsOfServices casted = (TermsOfServices) o; + return Objects.equals(totalCount, casted.totalCount) && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, entries); + } + + @Override + public String toString() { + return "TermsOfServices{" + + "totalCount='" + + totalCount + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long totalCount; + + protected List entries; + + public Builder totalCount(Long totalCount) { + this.totalCount = totalCount; + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public TermsOfServices build() { + return new TermsOfServices(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatus/TermsOfServiceUserStatus.java b/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatus/TermsOfServiceUserStatus.java new file mode 100644 index 000000000..c2f44bf5e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatus/TermsOfServiceUserStatus.java @@ -0,0 +1,211 @@ +package com.box.sdkgen.schemas.termsofserviceuserstatus; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.termsofservicebase.TermsOfServiceBase; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TermsOfServiceUserStatus extends SerializableObject { + + protected final String id; + + @JsonDeserialize( + using = TermsOfServiceUserStatusTypeField.TermsOfServiceUserStatusTypeFieldDeserializer.class) + @JsonSerialize( + using = TermsOfServiceUserStatusTypeField.TermsOfServiceUserStatusTypeFieldSerializer.class) + protected EnumWrapper type; + + protected TermsOfServiceBase tos; + + protected UserMini user; + + @JsonProperty("is_accepted") + protected Boolean isAccepted; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date modifiedAt; + + public TermsOfServiceUserStatus(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + TermsOfServiceUserStatusTypeField.TERMS_OF_SERVICE_USER_STATUS); + } + + protected TermsOfServiceUserStatus(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.tos = builder.tos; + this.user = builder.user; + this.isAccepted = builder.isAccepted; + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public TermsOfServiceBase getTos() { + return tos; + } + + public UserMini getUser() { + return user; + } + + public Boolean getIsAccepted() { + return isAccepted; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TermsOfServiceUserStatus casted = (TermsOfServiceUserStatus) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(tos, casted.tos) + && Objects.equals(user, casted.user) + && Objects.equals(isAccepted, casted.isAccepted) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, tos, user, isAccepted, createdAt, modifiedAt); + } + + @Override + public String toString() { + return "TermsOfServiceUserStatus{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "tos='" + + tos + + '\'' + + ", " + + "user='" + + user + + '\'' + + ", " + + "isAccepted='" + + isAccepted + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + protected TermsOfServiceBase tos; + + protected UserMini user; + + protected Boolean isAccepted; + + protected Date createdAt; + + protected Date modifiedAt; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + TermsOfServiceUserStatusTypeField.TERMS_OF_SERVICE_USER_STATUS); + } + + public Builder type(TermsOfServiceUserStatusTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder tos(TermsOfServiceBase tos) { + this.tos = tos; + return this; + } + + public Builder user(UserMini user) { + this.user = user; + return this; + } + + public Builder isAccepted(Boolean isAccepted) { + this.isAccepted = isAccepted; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + public TermsOfServiceUserStatus build() { + return new TermsOfServiceUserStatus(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatus/TermsOfServiceUserStatusTypeField.java b/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatus/TermsOfServiceUserStatusTypeField.java new file mode 100644 index 000000000..7dfe28d44 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatus/TermsOfServiceUserStatusTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.termsofserviceuserstatus; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TermsOfServiceUserStatusTypeField implements Valuable { + TERMS_OF_SERVICE_USER_STATUS("terms_of_service_user_status"); + + private final String value; + + TermsOfServiceUserStatusTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TermsOfServiceUserStatusTypeFieldDeserializer + extends JsonDeserializer> { + + public TermsOfServiceUserStatusTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TermsOfServiceUserStatusTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TermsOfServiceUserStatusTypeFieldSerializer + extends JsonSerializer> { + + public TermsOfServiceUserStatusTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatuses/TermsOfServiceUserStatuses.java b/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatuses/TermsOfServiceUserStatuses.java new file mode 100644 index 000000000..bf3a0d919 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatuses/TermsOfServiceUserStatuses.java @@ -0,0 +1,88 @@ +package com.box.sdkgen.schemas.termsofserviceuserstatuses; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.termsofserviceuserstatus.TermsOfServiceUserStatus; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TermsOfServiceUserStatuses extends SerializableObject { + + @JsonProperty("total_count") + protected Long totalCount; + + protected List entries; + + public TermsOfServiceUserStatuses() { + super(); + } + + protected TermsOfServiceUserStatuses(Builder builder) { + super(); + this.totalCount = builder.totalCount; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getTotalCount() { + return totalCount; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TermsOfServiceUserStatuses casted = (TermsOfServiceUserStatuses) o; + return Objects.equals(totalCount, casted.totalCount) && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, entries); + } + + @Override + public String toString() { + return "TermsOfServiceUserStatuses{" + + "totalCount='" + + totalCount + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long totalCount; + + protected List entries; + + public Builder totalCount(Long totalCount) { + this.totalCount = totalCount; + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public TermsOfServiceUserStatuses build() { + return new TermsOfServiceUserStatuses(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCard.java b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCard.java new file mode 100644 index 000000000..5e92d5cb8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCard.java @@ -0,0 +1,240 @@ +package com.box.sdkgen.schemas.timelineskillcard; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TimelineSkillCard extends SerializableObject { + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonDeserialize(using = TimelineSkillCardTypeField.TimelineSkillCardTypeFieldDeserializer.class) + @JsonSerialize(using = TimelineSkillCardTypeField.TimelineSkillCardTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonDeserialize( + using = + TimelineSkillCardSkillCardTypeField.TimelineSkillCardSkillCardTypeFieldDeserializer.class) + @JsonSerialize( + using = + TimelineSkillCardSkillCardTypeField.TimelineSkillCardSkillCardTypeFieldSerializer.class) + @JsonProperty("skill_card_type") + protected EnumWrapper skillCardType; + + @JsonProperty("skill_card_title") + protected TimelineSkillCardSkillCardTitleField skillCardTitle; + + protected final TimelineSkillCardSkillField skill; + + protected final TimelineSkillCardInvocationField invocation; + + protected Long duration; + + protected final List entries; + + public TimelineSkillCard( + @JsonProperty("skill") TimelineSkillCardSkillField skill, + @JsonProperty("invocation") TimelineSkillCardInvocationField invocation, + @JsonProperty("entries") List entries) { + super(); + this.skill = skill; + this.invocation = invocation; + this.entries = entries; + this.type = new EnumWrapper(TimelineSkillCardTypeField.SKILL_CARD); + this.skillCardType = + new EnumWrapper( + TimelineSkillCardSkillCardTypeField.TIMELINE); + } + + protected TimelineSkillCard(Builder builder) { + super(); + this.createdAt = builder.createdAt; + this.type = builder.type; + this.skillCardType = builder.skillCardType; + this.skillCardTitle = builder.skillCardTitle; + this.skill = builder.skill; + this.invocation = builder.invocation; + this.duration = builder.duration; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Date getCreatedAt() { + return createdAt; + } + + public EnumWrapper getType() { + return type; + } + + public EnumWrapper getSkillCardType() { + return skillCardType; + } + + public TimelineSkillCardSkillCardTitleField getSkillCardTitle() { + return skillCardTitle; + } + + public TimelineSkillCardSkillField getSkill() { + return skill; + } + + public TimelineSkillCardInvocationField getInvocation() { + return invocation; + } + + public Long getDuration() { + return duration; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TimelineSkillCard casted = (TimelineSkillCard) o; + return Objects.equals(createdAt, casted.createdAt) + && Objects.equals(type, casted.type) + && Objects.equals(skillCardType, casted.skillCardType) + && Objects.equals(skillCardTitle, casted.skillCardTitle) + && Objects.equals(skill, casted.skill) + && Objects.equals(invocation, casted.invocation) + && Objects.equals(duration, casted.duration) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash( + createdAt, type, skillCardType, skillCardTitle, skill, invocation, duration, entries); + } + + @Override + public String toString() { + return "TimelineSkillCard{" + + "createdAt='" + + createdAt + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "skillCardType='" + + skillCardType + + '\'' + + ", " + + "skillCardTitle='" + + skillCardTitle + + '\'' + + ", " + + "skill='" + + skill + + '\'' + + ", " + + "invocation='" + + invocation + + '\'' + + ", " + + "duration='" + + duration + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Date createdAt; + + protected EnumWrapper type; + + protected EnumWrapper skillCardType; + + protected TimelineSkillCardSkillCardTitleField skillCardTitle; + + protected final TimelineSkillCardSkillField skill; + + protected final TimelineSkillCardInvocationField invocation; + + protected Long duration; + + protected final List entries; + + public Builder( + TimelineSkillCardSkillField skill, + TimelineSkillCardInvocationField invocation, + List entries) { + super(); + this.skill = skill; + this.invocation = invocation; + this.entries = entries; + this.type = + new EnumWrapper(TimelineSkillCardTypeField.SKILL_CARD); + this.skillCardType = + new EnumWrapper( + TimelineSkillCardSkillCardTypeField.TIMELINE); + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder type(TimelineSkillCardTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder skillCardType(TimelineSkillCardSkillCardTypeField skillCardType) { + this.skillCardType = new EnumWrapper(skillCardType); + return this; + } + + public Builder skillCardType(EnumWrapper skillCardType) { + this.skillCardType = skillCardType; + return this; + } + + public Builder skillCardTitle(TimelineSkillCardSkillCardTitleField skillCardTitle) { + this.skillCardTitle = skillCardTitle; + return this; + } + + public Builder duration(Long duration) { + this.duration = duration; + return this; + } + + public TimelineSkillCard build() { + return new TimelineSkillCard(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardEntriesAppearsField.java b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardEntriesAppearsField.java new file mode 100644 index 000000000..1e8ab432a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardEntriesAppearsField.java @@ -0,0 +1,84 @@ +package com.box.sdkgen.schemas.timelineskillcard; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TimelineSkillCardEntriesAppearsField extends SerializableObject { + + protected Long start; + + protected Long end; + + public TimelineSkillCardEntriesAppearsField() { + super(); + } + + protected TimelineSkillCardEntriesAppearsField(Builder builder) { + super(); + this.start = builder.start; + this.end = builder.end; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getStart() { + return start; + } + + public Long getEnd() { + return end; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TimelineSkillCardEntriesAppearsField casted = (TimelineSkillCardEntriesAppearsField) o; + return Objects.equals(start, casted.start) && Objects.equals(end, casted.end); + } + + @Override + public int hashCode() { + return Objects.hash(start, end); + } + + @Override + public String toString() { + return "TimelineSkillCardEntriesAppearsField{" + + "start='" + + start + + '\'' + + ", " + + "end='" + + end + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long start; + + protected Long end; + + public Builder start(Long start) { + this.start = start; + return this; + } + + public Builder end(Long end) { + this.end = end; + return this; + } + + public TimelineSkillCardEntriesAppearsField build() { + return new TimelineSkillCardEntriesAppearsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardEntriesField.java b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardEntriesField.java new file mode 100644 index 000000000..41b6048d7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardEntriesField.java @@ -0,0 +1,107 @@ +package com.box.sdkgen.schemas.timelineskillcard; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TimelineSkillCardEntriesField extends SerializableObject { + + protected String text; + + protected List appears; + + @JsonProperty("image_url") + protected String imageUrl; + + public TimelineSkillCardEntriesField() { + super(); + } + + protected TimelineSkillCardEntriesField(Builder builder) { + super(); + this.text = builder.text; + this.appears = builder.appears; + this.imageUrl = builder.imageUrl; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getText() { + return text; + } + + public List getAppears() { + return appears; + } + + public String getImageUrl() { + return imageUrl; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TimelineSkillCardEntriesField casted = (TimelineSkillCardEntriesField) o; + return Objects.equals(text, casted.text) + && Objects.equals(appears, casted.appears) + && Objects.equals(imageUrl, casted.imageUrl); + } + + @Override + public int hashCode() { + return Objects.hash(text, appears, imageUrl); + } + + @Override + public String toString() { + return "TimelineSkillCardEntriesField{" + + "text='" + + text + + '\'' + + ", " + + "appears='" + + appears + + '\'' + + ", " + + "imageUrl='" + + imageUrl + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String text; + + protected List appears; + + protected String imageUrl; + + public Builder text(String text) { + this.text = text; + return this; + } + + public Builder appears(List appears) { + this.appears = appears; + return this; + } + + public Builder imageUrl(String imageUrl) { + this.imageUrl = imageUrl; + return this; + } + + public TimelineSkillCardEntriesField build() { + return new TimelineSkillCardEntriesField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardInvocationField.java b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardInvocationField.java new file mode 100644 index 000000000..cc4729fd4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardInvocationField.java @@ -0,0 +1,107 @@ +package com.box.sdkgen.schemas.timelineskillcard; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TimelineSkillCardInvocationField extends SerializableObject { + + @JsonDeserialize( + using = + TimelineSkillCardInvocationTypeField.TimelineSkillCardInvocationTypeFieldDeserializer + .class) + @JsonSerialize( + using = + TimelineSkillCardInvocationTypeField.TimelineSkillCardInvocationTypeFieldSerializer.class) + protected EnumWrapper type; + + protected final String id; + + public TimelineSkillCardInvocationField(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + TimelineSkillCardInvocationTypeField.SKILL_INVOCATION); + } + + protected TimelineSkillCardInvocationField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TimelineSkillCardInvocationField casted = (TimelineSkillCardInvocationField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "TimelineSkillCardInvocationField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + TimelineSkillCardInvocationTypeField.SKILL_INVOCATION); + } + + public Builder type(TimelineSkillCardInvocationTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public TimelineSkillCardInvocationField build() { + return new TimelineSkillCardInvocationField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardInvocationTypeField.java b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardInvocationTypeField.java new file mode 100644 index 000000000..9915deeac --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardInvocationTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.timelineskillcard; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TimelineSkillCardInvocationTypeField implements Valuable { + SKILL_INVOCATION("skill_invocation"); + + private final String value; + + TimelineSkillCardInvocationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TimelineSkillCardInvocationTypeFieldDeserializer + extends JsonDeserializer> { + + public TimelineSkillCardInvocationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TimelineSkillCardInvocationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TimelineSkillCardInvocationTypeFieldSerializer + extends JsonSerializer> { + + public TimelineSkillCardInvocationTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillCardTitleField.java b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillCardTitleField.java new file mode 100644 index 000000000..85bdc7133 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillCardTitleField.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.schemas.timelineskillcard; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TimelineSkillCardSkillCardTitleField extends SerializableObject { + + protected String code; + + protected final String message; + + public TimelineSkillCardSkillCardTitleField(@JsonProperty("message") String message) { + super(); + this.message = message; + } + + protected TimelineSkillCardSkillCardTitleField(Builder builder) { + super(); + this.code = builder.code; + this.message = builder.message; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getCode() { + return code; + } + + public String getMessage() { + return message; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TimelineSkillCardSkillCardTitleField casted = (TimelineSkillCardSkillCardTitleField) o; + return Objects.equals(code, casted.code) && Objects.equals(message, casted.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, message); + } + + @Override + public String toString() { + return "TimelineSkillCardSkillCardTitleField{" + + "code='" + + code + + '\'' + + ", " + + "message='" + + message + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String code; + + protected final String message; + + public Builder(String message) { + super(); + this.message = message; + } + + public Builder code(String code) { + this.code = code; + return this; + } + + public TimelineSkillCardSkillCardTitleField build() { + return new TimelineSkillCardSkillCardTitleField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillCardTypeField.java b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillCardTypeField.java new file mode 100644 index 000000000..4816b482e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillCardTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.timelineskillcard; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TimelineSkillCardSkillCardTypeField implements Valuable { + TIMELINE("timeline"); + + private final String value; + + TimelineSkillCardSkillCardTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TimelineSkillCardSkillCardTypeFieldDeserializer + extends JsonDeserializer> { + + public TimelineSkillCardSkillCardTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TimelineSkillCardSkillCardTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TimelineSkillCardSkillCardTypeFieldSerializer + extends JsonSerializer> { + + public TimelineSkillCardSkillCardTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillField.java b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillField.java new file mode 100644 index 000000000..bf7169b54 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillField.java @@ -0,0 +1,102 @@ +package com.box.sdkgen.schemas.timelineskillcard; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TimelineSkillCardSkillField extends SerializableObject { + + @JsonDeserialize( + using = TimelineSkillCardSkillTypeField.TimelineSkillCardSkillTypeFieldDeserializer.class) + @JsonSerialize( + using = TimelineSkillCardSkillTypeField.TimelineSkillCardSkillTypeFieldSerializer.class) + protected EnumWrapper type; + + protected final String id; + + public TimelineSkillCardSkillField(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper(TimelineSkillCardSkillTypeField.SERVICE); + } + + protected TimelineSkillCardSkillField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TimelineSkillCardSkillField casted = (TimelineSkillCardSkillField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "TimelineSkillCardSkillField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper(TimelineSkillCardSkillTypeField.SERVICE); + } + + public Builder type(TimelineSkillCardSkillTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public TimelineSkillCardSkillField build() { + return new TimelineSkillCardSkillField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillTypeField.java b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillTypeField.java new file mode 100644 index 000000000..f03d00269 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.timelineskillcard; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TimelineSkillCardSkillTypeField implements Valuable { + SERVICE("service"); + + private final String value; + + TimelineSkillCardSkillTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TimelineSkillCardSkillTypeFieldDeserializer + extends JsonDeserializer> { + + public TimelineSkillCardSkillTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TimelineSkillCardSkillTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TimelineSkillCardSkillTypeFieldSerializer + extends JsonSerializer> { + + public TimelineSkillCardSkillTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardTypeField.java b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardTypeField.java new file mode 100644 index 000000000..a5af38276 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.timelineskillcard; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TimelineSkillCardTypeField implements Valuable { + SKILL_CARD("skill_card"); + + private final String value; + + TimelineSkillCardTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TimelineSkillCardTypeFieldDeserializer + extends JsonDeserializer> { + + public TimelineSkillCardTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TimelineSkillCardTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TimelineSkillCardTypeFieldSerializer + extends JsonSerializer> { + + public TimelineSkillCardTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trackingcode/TrackingCode.java b/src/main/java/com/box/sdkgen/schemas/trackingcode/TrackingCode.java new file mode 100644 index 000000000..3da7d2df5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trackingcode/TrackingCode.java @@ -0,0 +1,114 @@ +package com.box.sdkgen.schemas.trackingcode; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TrackingCode extends SerializableObject { + + @JsonDeserialize(using = TrackingCodeTypeField.TrackingCodeTypeFieldDeserializer.class) + @JsonSerialize(using = TrackingCodeTypeField.TrackingCodeTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String name; + + protected String value; + + public TrackingCode() { + super(); + } + + protected TrackingCode(Builder builder) { + super(); + this.type = builder.type; + this.name = builder.name; + this.value = builder.value; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getName() { + return name; + } + + public String getValue() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TrackingCode casted = (TrackingCode) o; + return Objects.equals(type, casted.type) + && Objects.equals(name, casted.name) + && Objects.equals(value, casted.value); + } + + @Override + public int hashCode() { + return Objects.hash(type, name, value); + } + + @Override + public String toString() { + return "TrackingCode{" + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "value='" + + value + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected String name; + + protected String value; + + public Builder type(TrackingCodeTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder value(String value) { + this.value = value; + return this; + } + + public TrackingCode build() { + return new TrackingCode(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trackingcode/TrackingCodeTypeField.java b/src/main/java/com/box/sdkgen/schemas/trackingcode/TrackingCodeTypeField.java new file mode 100644 index 000000000..1e800f0dc --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trackingcode/TrackingCodeTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.trackingcode; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TrackingCodeTypeField implements Valuable { + TRACKING_CODE("tracking_code"); + + private final String value; + + TrackingCodeTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TrackingCodeTypeFieldDeserializer + extends JsonDeserializer> { + + public TrackingCodeTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TrackingCodeTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TrackingCodeTypeFieldSerializer + extends JsonSerializer> { + + public TrackingCodeTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCard.java b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCard.java new file mode 100644 index 000000000..4b47df5e6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCard.java @@ -0,0 +1,244 @@ +package com.box.sdkgen.schemas.transcriptskillcard; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TranscriptSkillCard extends SerializableObject { + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonDeserialize( + using = TranscriptSkillCardTypeField.TranscriptSkillCardTypeFieldDeserializer.class) + @JsonSerialize(using = TranscriptSkillCardTypeField.TranscriptSkillCardTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonDeserialize( + using = + TranscriptSkillCardSkillCardTypeField.TranscriptSkillCardSkillCardTypeFieldDeserializer + .class) + @JsonSerialize( + using = + TranscriptSkillCardSkillCardTypeField.TranscriptSkillCardSkillCardTypeFieldSerializer + .class) + @JsonProperty("skill_card_type") + protected EnumWrapper skillCardType; + + @JsonProperty("skill_card_title") + protected TranscriptSkillCardSkillCardTitleField skillCardTitle; + + protected final TranscriptSkillCardSkillField skill; + + protected final TranscriptSkillCardInvocationField invocation; + + protected Long duration; + + protected final List entries; + + public TranscriptSkillCard( + @JsonProperty("skill") TranscriptSkillCardSkillField skill, + @JsonProperty("invocation") TranscriptSkillCardInvocationField invocation, + @JsonProperty("entries") List entries) { + super(); + this.skill = skill; + this.invocation = invocation; + this.entries = entries; + this.type = + new EnumWrapper(TranscriptSkillCardTypeField.SKILL_CARD); + this.skillCardType = + new EnumWrapper( + TranscriptSkillCardSkillCardTypeField.TRANSCRIPT); + } + + protected TranscriptSkillCard(Builder builder) { + super(); + this.createdAt = builder.createdAt; + this.type = builder.type; + this.skillCardType = builder.skillCardType; + this.skillCardTitle = builder.skillCardTitle; + this.skill = builder.skill; + this.invocation = builder.invocation; + this.duration = builder.duration; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Date getCreatedAt() { + return createdAt; + } + + public EnumWrapper getType() { + return type; + } + + public EnumWrapper getSkillCardType() { + return skillCardType; + } + + public TranscriptSkillCardSkillCardTitleField getSkillCardTitle() { + return skillCardTitle; + } + + public TranscriptSkillCardSkillField getSkill() { + return skill; + } + + public TranscriptSkillCardInvocationField getInvocation() { + return invocation; + } + + public Long getDuration() { + return duration; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TranscriptSkillCard casted = (TranscriptSkillCard) o; + return Objects.equals(createdAt, casted.createdAt) + && Objects.equals(type, casted.type) + && Objects.equals(skillCardType, casted.skillCardType) + && Objects.equals(skillCardTitle, casted.skillCardTitle) + && Objects.equals(skill, casted.skill) + && Objects.equals(invocation, casted.invocation) + && Objects.equals(duration, casted.duration) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash( + createdAt, type, skillCardType, skillCardTitle, skill, invocation, duration, entries); + } + + @Override + public String toString() { + return "TranscriptSkillCard{" + + "createdAt='" + + createdAt + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "skillCardType='" + + skillCardType + + '\'' + + ", " + + "skillCardTitle='" + + skillCardTitle + + '\'' + + ", " + + "skill='" + + skill + + '\'' + + ", " + + "invocation='" + + invocation + + '\'' + + ", " + + "duration='" + + duration + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Date createdAt; + + protected EnumWrapper type; + + protected EnumWrapper skillCardType; + + protected TranscriptSkillCardSkillCardTitleField skillCardTitle; + + protected final TranscriptSkillCardSkillField skill; + + protected final TranscriptSkillCardInvocationField invocation; + + protected Long duration; + + protected final List entries; + + public Builder( + TranscriptSkillCardSkillField skill, + TranscriptSkillCardInvocationField invocation, + List entries) { + super(); + this.skill = skill; + this.invocation = invocation; + this.entries = entries; + this.type = + new EnumWrapper(TranscriptSkillCardTypeField.SKILL_CARD); + this.skillCardType = + new EnumWrapper( + TranscriptSkillCardSkillCardTypeField.TRANSCRIPT); + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder type(TranscriptSkillCardTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder skillCardType(TranscriptSkillCardSkillCardTypeField skillCardType) { + this.skillCardType = new EnumWrapper(skillCardType); + return this; + } + + public Builder skillCardType(EnumWrapper skillCardType) { + this.skillCardType = skillCardType; + return this; + } + + public Builder skillCardTitle(TranscriptSkillCardSkillCardTitleField skillCardTitle) { + this.skillCardTitle = skillCardTitle; + return this; + } + + public Builder duration(Long duration) { + this.duration = duration; + return this; + } + + public TranscriptSkillCard build() { + return new TranscriptSkillCard(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardEntriesAppearsField.java b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardEntriesAppearsField.java new file mode 100644 index 000000000..6222defd8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardEntriesAppearsField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.transcriptskillcard; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TranscriptSkillCardEntriesAppearsField extends SerializableObject { + + protected Long start; + + public TranscriptSkillCardEntriesAppearsField() { + super(); + } + + protected TranscriptSkillCardEntriesAppearsField(Builder builder) { + super(); + this.start = builder.start; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getStart() { + return start; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TranscriptSkillCardEntriesAppearsField casted = (TranscriptSkillCardEntriesAppearsField) o; + return Objects.equals(start, casted.start); + } + + @Override + public int hashCode() { + return Objects.hash(start); + } + + @Override + public String toString() { + return "TranscriptSkillCardEntriesAppearsField{" + "start='" + start + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long start; + + public Builder start(Long start) { + this.start = start; + return this; + } + + public TranscriptSkillCardEntriesAppearsField build() { + return new TranscriptSkillCardEntriesAppearsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardEntriesField.java b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardEntriesField.java new file mode 100644 index 000000000..eb7b129c0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardEntriesField.java @@ -0,0 +1,85 @@ +package com.box.sdkgen.schemas.transcriptskillcard; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TranscriptSkillCardEntriesField extends SerializableObject { + + protected String text; + + protected List appears; + + public TranscriptSkillCardEntriesField() { + super(); + } + + protected TranscriptSkillCardEntriesField(Builder builder) { + super(); + this.text = builder.text; + this.appears = builder.appears; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getText() { + return text; + } + + public List getAppears() { + return appears; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TranscriptSkillCardEntriesField casted = (TranscriptSkillCardEntriesField) o; + return Objects.equals(text, casted.text) && Objects.equals(appears, casted.appears); + } + + @Override + public int hashCode() { + return Objects.hash(text, appears); + } + + @Override + public String toString() { + return "TranscriptSkillCardEntriesField{" + + "text='" + + text + + '\'' + + ", " + + "appears='" + + appears + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String text; + + protected List appears; + + public Builder text(String text) { + this.text = text; + return this; + } + + public Builder appears(List appears) { + this.appears = appears; + return this; + } + + public TranscriptSkillCardEntriesField build() { + return new TranscriptSkillCardEntriesField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardInvocationField.java b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardInvocationField.java new file mode 100644 index 000000000..1ee5d1056 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardInvocationField.java @@ -0,0 +1,108 @@ +package com.box.sdkgen.schemas.transcriptskillcard; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TranscriptSkillCardInvocationField extends SerializableObject { + + @JsonDeserialize( + using = + TranscriptSkillCardInvocationTypeField.TranscriptSkillCardInvocationTypeFieldDeserializer + .class) + @JsonSerialize( + using = + TranscriptSkillCardInvocationTypeField.TranscriptSkillCardInvocationTypeFieldSerializer + .class) + protected EnumWrapper type; + + protected final String id; + + public TranscriptSkillCardInvocationField(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + TranscriptSkillCardInvocationTypeField.SKILL_INVOCATION); + } + + protected TranscriptSkillCardInvocationField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TranscriptSkillCardInvocationField casted = (TranscriptSkillCardInvocationField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "TranscriptSkillCardInvocationField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + TranscriptSkillCardInvocationTypeField.SKILL_INVOCATION); + } + + public Builder type(TranscriptSkillCardInvocationTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public TranscriptSkillCardInvocationField build() { + return new TranscriptSkillCardInvocationField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardInvocationTypeField.java b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardInvocationTypeField.java new file mode 100644 index 000000000..52fba0836 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardInvocationTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.transcriptskillcard; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TranscriptSkillCardInvocationTypeField implements Valuable { + SKILL_INVOCATION("skill_invocation"); + + private final String value; + + TranscriptSkillCardInvocationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TranscriptSkillCardInvocationTypeFieldDeserializer + extends JsonDeserializer> { + + public TranscriptSkillCardInvocationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TranscriptSkillCardInvocationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TranscriptSkillCardInvocationTypeFieldSerializer + extends JsonSerializer> { + + public TranscriptSkillCardInvocationTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillCardTitleField.java b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillCardTitleField.java new file mode 100644 index 000000000..d797ae47c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillCardTitleField.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.schemas.transcriptskillcard; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TranscriptSkillCardSkillCardTitleField extends SerializableObject { + + protected String code; + + protected final String message; + + public TranscriptSkillCardSkillCardTitleField(@JsonProperty("message") String message) { + super(); + this.message = message; + } + + protected TranscriptSkillCardSkillCardTitleField(Builder builder) { + super(); + this.code = builder.code; + this.message = builder.message; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getCode() { + return code; + } + + public String getMessage() { + return message; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TranscriptSkillCardSkillCardTitleField casted = (TranscriptSkillCardSkillCardTitleField) o; + return Objects.equals(code, casted.code) && Objects.equals(message, casted.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, message); + } + + @Override + public String toString() { + return "TranscriptSkillCardSkillCardTitleField{" + + "code='" + + code + + '\'' + + ", " + + "message='" + + message + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String code; + + protected final String message; + + public Builder(String message) { + super(); + this.message = message; + } + + public Builder code(String code) { + this.code = code; + return this; + } + + public TranscriptSkillCardSkillCardTitleField build() { + return new TranscriptSkillCardSkillCardTitleField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillCardTypeField.java b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillCardTypeField.java new file mode 100644 index 000000000..4f60593a6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillCardTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.transcriptskillcard; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TranscriptSkillCardSkillCardTypeField implements Valuable { + TRANSCRIPT("transcript"); + + private final String value; + + TranscriptSkillCardSkillCardTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TranscriptSkillCardSkillCardTypeFieldDeserializer + extends JsonDeserializer> { + + public TranscriptSkillCardSkillCardTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TranscriptSkillCardSkillCardTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TranscriptSkillCardSkillCardTypeFieldSerializer + extends JsonSerializer> { + + public TranscriptSkillCardSkillCardTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillField.java b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillField.java new file mode 100644 index 000000000..85df0d94e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillField.java @@ -0,0 +1,104 @@ +package com.box.sdkgen.schemas.transcriptskillcard; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TranscriptSkillCardSkillField extends SerializableObject { + + @JsonDeserialize( + using = TranscriptSkillCardSkillTypeField.TranscriptSkillCardSkillTypeFieldDeserializer.class) + @JsonSerialize( + using = TranscriptSkillCardSkillTypeField.TranscriptSkillCardSkillTypeFieldSerializer.class) + protected EnumWrapper type; + + protected final String id; + + public TranscriptSkillCardSkillField(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + TranscriptSkillCardSkillTypeField.SERVICE); + } + + protected TranscriptSkillCardSkillField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TranscriptSkillCardSkillField casted = (TranscriptSkillCardSkillField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "TranscriptSkillCardSkillField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + TranscriptSkillCardSkillTypeField.SERVICE); + } + + public Builder type(TranscriptSkillCardSkillTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public TranscriptSkillCardSkillField build() { + return new TranscriptSkillCardSkillField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillTypeField.java b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillTypeField.java new file mode 100644 index 000000000..7a8a42fb3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.transcriptskillcard; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TranscriptSkillCardSkillTypeField implements Valuable { + SERVICE("service"); + + private final String value; + + TranscriptSkillCardSkillTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TranscriptSkillCardSkillTypeFieldDeserializer + extends JsonDeserializer> { + + public TranscriptSkillCardSkillTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TranscriptSkillCardSkillTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TranscriptSkillCardSkillTypeFieldSerializer + extends JsonSerializer> { + + public TranscriptSkillCardSkillTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardTypeField.java b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardTypeField.java new file mode 100644 index 000000000..72e09caa2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.transcriptskillcard; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TranscriptSkillCardTypeField implements Valuable { + SKILL_CARD("skill_card"); + + private final String value; + + TranscriptSkillCardTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TranscriptSkillCardTypeFieldDeserializer + extends JsonDeserializer> { + + public TranscriptSkillCardTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TranscriptSkillCardTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TranscriptSkillCardTypeFieldSerializer + extends JsonSerializer> { + + public TranscriptSkillCardTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFile.java b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFile.java new file mode 100644 index 000000000..d5fc9d111 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFile.java @@ -0,0 +1,592 @@ +package com.box.sdkgen.schemas.trashfile; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.fileversionmini.FileVersionMini; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TrashFile extends SerializableObject { + + protected final String id; + + @Nullable protected String etag; + + @JsonDeserialize(using = TrashFileTypeField.TrashFileTypeFieldDeserializer.class) + @JsonSerialize(using = TrashFileTypeField.TrashFileTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("sequence_id") + protected final String sequenceId; + + protected String name; + + protected final String sha1; + + @JsonProperty("file_version") + protected FileVersionMini fileVersion; + + protected final String description; + + protected final long size; + + @JsonProperty("path_collection") + protected final TrashFilePathCollectionField pathCollection; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected final Date createdAt; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected final Date modifiedAt; + + @JsonProperty("trashed_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date trashedAt; + + @JsonProperty("purged_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date purgedAt; + + @JsonProperty("content_created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date contentCreatedAt; + + @JsonProperty("content_modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date contentModifiedAt; + + @JsonProperty("created_by") + protected UserMini createdBy; + + @JsonProperty("modified_by") + protected final UserMini modifiedBy; + + @JsonProperty("owned_by") + protected final UserMini ownedBy; + + @JsonProperty("shared_link") + @Nullable + protected String sharedLink; + + protected FolderMini parent; + + @JsonDeserialize(using = TrashFileItemStatusField.TrashFileItemStatusFieldDeserializer.class) + @JsonSerialize(using = TrashFileItemStatusField.TrashFileItemStatusFieldSerializer.class) + @JsonProperty("item_status") + protected final EnumWrapper itemStatus; + + public TrashFile( + String id, + String sequenceId, + String sha1, + String description, + long size, + TrashFilePathCollectionField pathCollection, + Date createdAt, + Date modifiedAt, + UserMini modifiedBy, + UserMini ownedBy, + TrashFileItemStatusField itemStatus) { + super(); + this.id = id; + this.sequenceId = sequenceId; + this.sha1 = sha1; + this.description = description; + this.size = size; + this.pathCollection = pathCollection; + this.createdAt = createdAt; + this.modifiedAt = modifiedAt; + this.modifiedBy = modifiedBy; + this.ownedBy = ownedBy; + this.itemStatus = new EnumWrapper(itemStatus); + this.type = new EnumWrapper(TrashFileTypeField.FILE); + } + + public TrashFile( + @JsonProperty("id") String id, + @JsonProperty("sequence_id") String sequenceId, + @JsonProperty("sha1") String sha1, + @JsonProperty("description") String description, + @JsonProperty("size") long size, + @JsonProperty("path_collection") TrashFilePathCollectionField pathCollection, + @JsonProperty("created_at") Date createdAt, + @JsonProperty("modified_at") Date modifiedAt, + @JsonProperty("modified_by") UserMini modifiedBy, + @JsonProperty("owned_by") UserMini ownedBy, + @JsonProperty("item_status") EnumWrapper itemStatus) { + super(); + this.id = id; + this.sequenceId = sequenceId; + this.sha1 = sha1; + this.description = description; + this.size = size; + this.pathCollection = pathCollection; + this.createdAt = createdAt; + this.modifiedAt = modifiedAt; + this.modifiedBy = modifiedBy; + this.ownedBy = ownedBy; + this.itemStatus = itemStatus; + this.type = new EnumWrapper(TrashFileTypeField.FILE); + } + + protected TrashFile(Builder builder) { + super(); + this.id = builder.id; + this.etag = builder.etag; + this.type = builder.type; + this.sequenceId = builder.sequenceId; + this.name = builder.name; + this.sha1 = builder.sha1; + this.fileVersion = builder.fileVersion; + this.description = builder.description; + this.size = builder.size; + this.pathCollection = builder.pathCollection; + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + this.trashedAt = builder.trashedAt; + this.purgedAt = builder.purgedAt; + this.contentCreatedAt = builder.contentCreatedAt; + this.contentModifiedAt = builder.contentModifiedAt; + this.createdBy = builder.createdBy; + this.modifiedBy = builder.modifiedBy; + this.ownedBy = builder.ownedBy; + this.sharedLink = builder.sharedLink; + this.parent = builder.parent; + this.itemStatus = builder.itemStatus; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getEtag() { + return etag; + } + + public EnumWrapper getType() { + return type; + } + + public String getSequenceId() { + return sequenceId; + } + + public String getName() { + return name; + } + + public String getSha1() { + return sha1; + } + + public FileVersionMini getFileVersion() { + return fileVersion; + } + + public String getDescription() { + return description; + } + + public long getSize() { + return size; + } + + public TrashFilePathCollectionField getPathCollection() { + return pathCollection; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + public Date getTrashedAt() { + return trashedAt; + } + + public Date getPurgedAt() { + return purgedAt; + } + + public Date getContentCreatedAt() { + return contentCreatedAt; + } + + public Date getContentModifiedAt() { + return contentModifiedAt; + } + + public UserMini getCreatedBy() { + return createdBy; + } + + public UserMini getModifiedBy() { + return modifiedBy; + } + + public UserMini getOwnedBy() { + return ownedBy; + } + + public String getSharedLink() { + return sharedLink; + } + + public FolderMini getParent() { + return parent; + } + + public EnumWrapper getItemStatus() { + return itemStatus; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TrashFile casted = (TrashFile) o; + return Objects.equals(id, casted.id) + && Objects.equals(etag, casted.etag) + && Objects.equals(type, casted.type) + && Objects.equals(sequenceId, casted.sequenceId) + && Objects.equals(name, casted.name) + && Objects.equals(sha1, casted.sha1) + && Objects.equals(fileVersion, casted.fileVersion) + && Objects.equals(description, casted.description) + && Objects.equals(size, casted.size) + && Objects.equals(pathCollection, casted.pathCollection) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt) + && Objects.equals(trashedAt, casted.trashedAt) + && Objects.equals(purgedAt, casted.purgedAt) + && Objects.equals(contentCreatedAt, casted.contentCreatedAt) + && Objects.equals(contentModifiedAt, casted.contentModifiedAt) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(modifiedBy, casted.modifiedBy) + && Objects.equals(ownedBy, casted.ownedBy) + && Objects.equals(sharedLink, casted.sharedLink) + && Objects.equals(parent, casted.parent) + && Objects.equals(itemStatus, casted.itemStatus); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + etag, + type, + sequenceId, + name, + sha1, + fileVersion, + description, + size, + pathCollection, + createdAt, + modifiedAt, + trashedAt, + purgedAt, + contentCreatedAt, + contentModifiedAt, + createdBy, + modifiedBy, + ownedBy, + sharedLink, + parent, + itemStatus); + } + + @Override + public String toString() { + return "TrashFile{" + + "id='" + + id + + '\'' + + ", " + + "etag='" + + etag + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "sequenceId='" + + sequenceId + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "sha1='" + + sha1 + + '\'' + + ", " + + "fileVersion='" + + fileVersion + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "size='" + + size + + '\'' + + ", " + + "pathCollection='" + + pathCollection + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + ", " + + "trashedAt='" + + trashedAt + + '\'' + + ", " + + "purgedAt='" + + purgedAt + + '\'' + + ", " + + "contentCreatedAt='" + + contentCreatedAt + + '\'' + + ", " + + "contentModifiedAt='" + + contentModifiedAt + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "modifiedBy='" + + modifiedBy + + '\'' + + ", " + + "ownedBy='" + + ownedBy + + '\'' + + ", " + + "sharedLink='" + + sharedLink + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + ", " + + "itemStatus='" + + itemStatus + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected String etag; + + protected EnumWrapper type; + + protected final String sequenceId; + + protected String name; + + protected final String sha1; + + protected FileVersionMini fileVersion; + + protected final String description; + + protected final long size; + + protected final TrashFilePathCollectionField pathCollection; + + protected final Date createdAt; + + protected final Date modifiedAt; + + protected Date trashedAt; + + protected Date purgedAt; + + protected Date contentCreatedAt; + + protected Date contentModifiedAt; + + protected UserMini createdBy; + + protected final UserMini modifiedBy; + + protected final UserMini ownedBy; + + protected String sharedLink; + + protected FolderMini parent; + + protected final EnumWrapper itemStatus; + + public Builder( + String id, + String sequenceId, + String sha1, + String description, + long size, + TrashFilePathCollectionField pathCollection, + Date createdAt, + Date modifiedAt, + UserMini modifiedBy, + UserMini ownedBy, + TrashFileItemStatusField itemStatus) { + super(); + this.id = id; + this.sequenceId = sequenceId; + this.sha1 = sha1; + this.description = description; + this.size = size; + this.pathCollection = pathCollection; + this.createdAt = createdAt; + this.modifiedAt = modifiedAt; + this.modifiedBy = modifiedBy; + this.ownedBy = ownedBy; + this.itemStatus = new EnumWrapper(itemStatus); + this.type = new EnumWrapper(TrashFileTypeField.FILE); + } + + public Builder( + String id, + String sequenceId, + String sha1, + String description, + long size, + TrashFilePathCollectionField pathCollection, + Date createdAt, + Date modifiedAt, + UserMini modifiedBy, + UserMini ownedBy, + EnumWrapper itemStatus) { + super(); + this.id = id; + this.sequenceId = sequenceId; + this.sha1 = sha1; + this.description = description; + this.size = size; + this.pathCollection = pathCollection; + this.createdAt = createdAt; + this.modifiedAt = modifiedAt; + this.modifiedBy = modifiedBy; + this.ownedBy = ownedBy; + this.itemStatus = itemStatus; + this.type = new EnumWrapper(TrashFileTypeField.FILE); + } + + public Builder etag(String etag) { + this.etag = etag; + this.markNullableFieldAsSet("etag"); + return this; + } + + public Builder type(TrashFileTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder fileVersion(FileVersionMini fileVersion) { + this.fileVersion = fileVersion; + return this; + } + + public Builder trashedAt(Date trashedAt) { + this.trashedAt = trashedAt; + this.markNullableFieldAsSet("trashed_at"); + return this; + } + + public Builder purgedAt(Date purgedAt) { + this.purgedAt = purgedAt; + this.markNullableFieldAsSet("purged_at"); + return this; + } + + public Builder contentCreatedAt(Date contentCreatedAt) { + this.contentCreatedAt = contentCreatedAt; + this.markNullableFieldAsSet("content_created_at"); + return this; + } + + public Builder contentModifiedAt(Date contentModifiedAt) { + this.contentModifiedAt = contentModifiedAt; + this.markNullableFieldAsSet("content_modified_at"); + return this; + } + + public Builder createdBy(UserMini createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder sharedLink(String sharedLink) { + this.sharedLink = sharedLink; + this.markNullableFieldAsSet("shared_link"); + return this; + } + + public Builder parent(FolderMini parent) { + this.parent = parent; + return this; + } + + public TrashFile build() { + return new TrashFile(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFileItemStatusField.java b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFileItemStatusField.java new file mode 100644 index 000000000..e943c79de --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFileItemStatusField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.trashfile; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TrashFileItemStatusField implements Valuable { + ACTIVE("active"), + TRASHED("trashed"), + DELETED("deleted"); + + private final String value; + + TrashFileItemStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TrashFileItemStatusFieldDeserializer + extends JsonDeserializer> { + + public TrashFileItemStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TrashFileItemStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TrashFileItemStatusFieldSerializer + extends JsonSerializer> { + + public TrashFileItemStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFilePathCollectionEntriesField.java b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFilePathCollectionEntriesField.java new file mode 100644 index 000000000..c0e7ab21f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFilePathCollectionEntriesField.java @@ -0,0 +1,164 @@ +package com.box.sdkgen.schemas.trashfile; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TrashFilePathCollectionEntriesField extends SerializableObject { + + @JsonDeserialize( + using = + TrashFilePathCollectionEntriesTypeField + .TrashFilePathCollectionEntriesTypeFieldDeserializer.class) + @JsonSerialize( + using = + TrashFilePathCollectionEntriesTypeField.TrashFilePathCollectionEntriesTypeFieldSerializer + .class) + protected EnumWrapper type; + + protected String id; + + @JsonProperty("sequence_id") + @Nullable + protected String sequenceId; + + @Nullable protected String etag; + + protected String name; + + public TrashFilePathCollectionEntriesField() { + super(); + } + + protected TrashFilePathCollectionEntriesField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + this.sequenceId = builder.sequenceId; + this.etag = builder.etag; + this.name = builder.name; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + public String getSequenceId() { + return sequenceId; + } + + public String getEtag() { + return etag; + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TrashFilePathCollectionEntriesField casted = (TrashFilePathCollectionEntriesField) o; + return Objects.equals(type, casted.type) + && Objects.equals(id, casted.id) + && Objects.equals(sequenceId, casted.sequenceId) + && Objects.equals(etag, casted.etag) + && Objects.equals(name, casted.name); + } + + @Override + public int hashCode() { + return Objects.hash(type, id, sequenceId, etag, name); + } + + @Override + public String toString() { + return "TrashFilePathCollectionEntriesField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + ", " + + "sequenceId='" + + sequenceId + + '\'' + + ", " + + "etag='" + + etag + + '\'' + + ", " + + "name='" + + name + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected String id; + + protected String sequenceId; + + protected String etag; + + protected String name; + + public Builder type(TrashFilePathCollectionEntriesTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder sequenceId(String sequenceId) { + this.sequenceId = sequenceId; + this.markNullableFieldAsSet("sequence_id"); + return this; + } + + public Builder etag(String etag) { + this.etag = etag; + this.markNullableFieldAsSet("etag"); + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public TrashFilePathCollectionEntriesField build() { + return new TrashFilePathCollectionEntriesField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFilePathCollectionEntriesTypeField.java b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFilePathCollectionEntriesTypeField.java new file mode 100644 index 000000000..3fff9104d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFilePathCollectionEntriesTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.trashfile; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TrashFilePathCollectionEntriesTypeField implements Valuable { + FOLDER("folder"); + + private final String value; + + TrashFilePathCollectionEntriesTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TrashFilePathCollectionEntriesTypeFieldDeserializer + extends JsonDeserializer> { + + public TrashFilePathCollectionEntriesTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TrashFilePathCollectionEntriesTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TrashFilePathCollectionEntriesTypeFieldSerializer + extends JsonSerializer> { + + public TrashFilePathCollectionEntriesTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFilePathCollectionField.java b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFilePathCollectionField.java new file mode 100644 index 000000000..f44446045 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFilePathCollectionField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.trashfile; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TrashFilePathCollectionField extends SerializableObject { + + @JsonProperty("total_count") + protected final long totalCount; + + protected final List entries; + + public TrashFilePathCollectionField( + @JsonProperty("total_count") long totalCount, + @JsonProperty("entries") List entries) { + super(); + this.totalCount = totalCount; + this.entries = entries; + } + + public long getTotalCount() { + return totalCount; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TrashFilePathCollectionField casted = (TrashFilePathCollectionField) o; + return Objects.equals(totalCount, casted.totalCount) && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, entries); + } + + @Override + public String toString() { + return "TrashFilePathCollectionField{" + + "totalCount='" + + totalCount + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFileTypeField.java b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFileTypeField.java new file mode 100644 index 000000000..54b2c6ce9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFileTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.trashfile; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TrashFileTypeField implements Valuable { + FILE("file"); + + private final String value; + + TrashFileTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TrashFileTypeFieldDeserializer + extends JsonDeserializer> { + + public TrashFileTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TrashFileTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TrashFileTypeFieldSerializer + extends JsonSerializer> { + + public TrashFileTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestored.java b/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestored.java new file mode 100644 index 000000000..f5243b07c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestored.java @@ -0,0 +1,590 @@ +package com.box.sdkgen.schemas.trashfilerestored; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.fileversionmini.FileVersionMini; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TrashFileRestored extends SerializableObject { + + protected final String id; + + @Nullable protected String etag; + + @JsonDeserialize(using = TrashFileRestoredTypeField.TrashFileRestoredTypeFieldDeserializer.class) + @JsonSerialize(using = TrashFileRestoredTypeField.TrashFileRestoredTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("sequence_id") + protected final String sequenceId; + + protected String name; + + protected final String sha1; + + @JsonProperty("file_version") + protected FileVersionMini fileVersion; + + protected final String description; + + protected final long size; + + @JsonProperty("path_collection") + protected final TrashFileRestoredPathCollectionField pathCollection; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected final Date createdAt; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected final Date modifiedAt; + + @JsonProperty("trashed_at") + @Nullable + protected String trashedAt; + + @JsonProperty("purged_at") + @Nullable + protected String purgedAt; + + @JsonProperty("content_created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date contentCreatedAt; + + @JsonProperty("content_modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date contentModifiedAt; + + @JsonProperty("created_by") + protected UserMini createdBy; + + @JsonProperty("modified_by") + protected final UserMini modifiedBy; + + @JsonProperty("owned_by") + protected final UserMini ownedBy; + + @JsonProperty("shared_link") + @Nullable + protected String sharedLink; + + protected FolderMini parent; + + @JsonDeserialize( + using = TrashFileRestoredItemStatusField.TrashFileRestoredItemStatusFieldDeserializer.class) + @JsonSerialize( + using = TrashFileRestoredItemStatusField.TrashFileRestoredItemStatusFieldSerializer.class) + @JsonProperty("item_status") + protected final EnumWrapper itemStatus; + + public TrashFileRestored( + String id, + String sequenceId, + String sha1, + String description, + long size, + TrashFileRestoredPathCollectionField pathCollection, + Date createdAt, + Date modifiedAt, + UserMini modifiedBy, + UserMini ownedBy, + TrashFileRestoredItemStatusField itemStatus) { + super(); + this.id = id; + this.sequenceId = sequenceId; + this.sha1 = sha1; + this.description = description; + this.size = size; + this.pathCollection = pathCollection; + this.createdAt = createdAt; + this.modifiedAt = modifiedAt; + this.modifiedBy = modifiedBy; + this.ownedBy = ownedBy; + this.itemStatus = new EnumWrapper(itemStatus); + this.type = new EnumWrapper(TrashFileRestoredTypeField.FILE); + } + + public TrashFileRestored( + @JsonProperty("id") String id, + @JsonProperty("sequence_id") String sequenceId, + @JsonProperty("sha1") String sha1, + @JsonProperty("description") String description, + @JsonProperty("size") long size, + @JsonProperty("path_collection") TrashFileRestoredPathCollectionField pathCollection, + @JsonProperty("created_at") Date createdAt, + @JsonProperty("modified_at") Date modifiedAt, + @JsonProperty("modified_by") UserMini modifiedBy, + @JsonProperty("owned_by") UserMini ownedBy, + @JsonProperty("item_status") EnumWrapper itemStatus) { + super(); + this.id = id; + this.sequenceId = sequenceId; + this.sha1 = sha1; + this.description = description; + this.size = size; + this.pathCollection = pathCollection; + this.createdAt = createdAt; + this.modifiedAt = modifiedAt; + this.modifiedBy = modifiedBy; + this.ownedBy = ownedBy; + this.itemStatus = itemStatus; + this.type = new EnumWrapper(TrashFileRestoredTypeField.FILE); + } + + protected TrashFileRestored(Builder builder) { + super(); + this.id = builder.id; + this.etag = builder.etag; + this.type = builder.type; + this.sequenceId = builder.sequenceId; + this.name = builder.name; + this.sha1 = builder.sha1; + this.fileVersion = builder.fileVersion; + this.description = builder.description; + this.size = builder.size; + this.pathCollection = builder.pathCollection; + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + this.trashedAt = builder.trashedAt; + this.purgedAt = builder.purgedAt; + this.contentCreatedAt = builder.contentCreatedAt; + this.contentModifiedAt = builder.contentModifiedAt; + this.createdBy = builder.createdBy; + this.modifiedBy = builder.modifiedBy; + this.ownedBy = builder.ownedBy; + this.sharedLink = builder.sharedLink; + this.parent = builder.parent; + this.itemStatus = builder.itemStatus; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getEtag() { + return etag; + } + + public EnumWrapper getType() { + return type; + } + + public String getSequenceId() { + return sequenceId; + } + + public String getName() { + return name; + } + + public String getSha1() { + return sha1; + } + + public FileVersionMini getFileVersion() { + return fileVersion; + } + + public String getDescription() { + return description; + } + + public long getSize() { + return size; + } + + public TrashFileRestoredPathCollectionField getPathCollection() { + return pathCollection; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + public String getTrashedAt() { + return trashedAt; + } + + public String getPurgedAt() { + return purgedAt; + } + + public Date getContentCreatedAt() { + return contentCreatedAt; + } + + public Date getContentModifiedAt() { + return contentModifiedAt; + } + + public UserMini getCreatedBy() { + return createdBy; + } + + public UserMini getModifiedBy() { + return modifiedBy; + } + + public UserMini getOwnedBy() { + return ownedBy; + } + + public String getSharedLink() { + return sharedLink; + } + + public FolderMini getParent() { + return parent; + } + + public EnumWrapper getItemStatus() { + return itemStatus; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TrashFileRestored casted = (TrashFileRestored) o; + return Objects.equals(id, casted.id) + && Objects.equals(etag, casted.etag) + && Objects.equals(type, casted.type) + && Objects.equals(sequenceId, casted.sequenceId) + && Objects.equals(name, casted.name) + && Objects.equals(sha1, casted.sha1) + && Objects.equals(fileVersion, casted.fileVersion) + && Objects.equals(description, casted.description) + && Objects.equals(size, casted.size) + && Objects.equals(pathCollection, casted.pathCollection) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt) + && Objects.equals(trashedAt, casted.trashedAt) + && Objects.equals(purgedAt, casted.purgedAt) + && Objects.equals(contentCreatedAt, casted.contentCreatedAt) + && Objects.equals(contentModifiedAt, casted.contentModifiedAt) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(modifiedBy, casted.modifiedBy) + && Objects.equals(ownedBy, casted.ownedBy) + && Objects.equals(sharedLink, casted.sharedLink) + && Objects.equals(parent, casted.parent) + && Objects.equals(itemStatus, casted.itemStatus); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + etag, + type, + sequenceId, + name, + sha1, + fileVersion, + description, + size, + pathCollection, + createdAt, + modifiedAt, + trashedAt, + purgedAt, + contentCreatedAt, + contentModifiedAt, + createdBy, + modifiedBy, + ownedBy, + sharedLink, + parent, + itemStatus); + } + + @Override + public String toString() { + return "TrashFileRestored{" + + "id='" + + id + + '\'' + + ", " + + "etag='" + + etag + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "sequenceId='" + + sequenceId + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "sha1='" + + sha1 + + '\'' + + ", " + + "fileVersion='" + + fileVersion + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "size='" + + size + + '\'' + + ", " + + "pathCollection='" + + pathCollection + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + ", " + + "trashedAt='" + + trashedAt + + '\'' + + ", " + + "purgedAt='" + + purgedAt + + '\'' + + ", " + + "contentCreatedAt='" + + contentCreatedAt + + '\'' + + ", " + + "contentModifiedAt='" + + contentModifiedAt + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "modifiedBy='" + + modifiedBy + + '\'' + + ", " + + "ownedBy='" + + ownedBy + + '\'' + + ", " + + "sharedLink='" + + sharedLink + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + ", " + + "itemStatus='" + + itemStatus + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected String etag; + + protected EnumWrapper type; + + protected final String sequenceId; + + protected String name; + + protected final String sha1; + + protected FileVersionMini fileVersion; + + protected final String description; + + protected final long size; + + protected final TrashFileRestoredPathCollectionField pathCollection; + + protected final Date createdAt; + + protected final Date modifiedAt; + + protected String trashedAt; + + protected String purgedAt; + + protected Date contentCreatedAt; + + protected Date contentModifiedAt; + + protected UserMini createdBy; + + protected final UserMini modifiedBy; + + protected final UserMini ownedBy; + + protected String sharedLink; + + protected FolderMini parent; + + protected final EnumWrapper itemStatus; + + public Builder( + String id, + String sequenceId, + String sha1, + String description, + long size, + TrashFileRestoredPathCollectionField pathCollection, + Date createdAt, + Date modifiedAt, + UserMini modifiedBy, + UserMini ownedBy, + TrashFileRestoredItemStatusField itemStatus) { + super(); + this.id = id; + this.sequenceId = sequenceId; + this.sha1 = sha1; + this.description = description; + this.size = size; + this.pathCollection = pathCollection; + this.createdAt = createdAt; + this.modifiedAt = modifiedAt; + this.modifiedBy = modifiedBy; + this.ownedBy = ownedBy; + this.itemStatus = new EnumWrapper(itemStatus); + this.type = new EnumWrapper(TrashFileRestoredTypeField.FILE); + } + + public Builder( + String id, + String sequenceId, + String sha1, + String description, + long size, + TrashFileRestoredPathCollectionField pathCollection, + Date createdAt, + Date modifiedAt, + UserMini modifiedBy, + UserMini ownedBy, + EnumWrapper itemStatus) { + super(); + this.id = id; + this.sequenceId = sequenceId; + this.sha1 = sha1; + this.description = description; + this.size = size; + this.pathCollection = pathCollection; + this.createdAt = createdAt; + this.modifiedAt = modifiedAt; + this.modifiedBy = modifiedBy; + this.ownedBy = ownedBy; + this.itemStatus = itemStatus; + this.type = new EnumWrapper(TrashFileRestoredTypeField.FILE); + } + + public Builder etag(String etag) { + this.etag = etag; + this.markNullableFieldAsSet("etag"); + return this; + } + + public Builder type(TrashFileRestoredTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder fileVersion(FileVersionMini fileVersion) { + this.fileVersion = fileVersion; + return this; + } + + public Builder trashedAt(String trashedAt) { + this.trashedAt = trashedAt; + this.markNullableFieldAsSet("trashed_at"); + return this; + } + + public Builder purgedAt(String purgedAt) { + this.purgedAt = purgedAt; + this.markNullableFieldAsSet("purged_at"); + return this; + } + + public Builder contentCreatedAt(Date contentCreatedAt) { + this.contentCreatedAt = contentCreatedAt; + this.markNullableFieldAsSet("content_created_at"); + return this; + } + + public Builder contentModifiedAt(Date contentModifiedAt) { + this.contentModifiedAt = contentModifiedAt; + this.markNullableFieldAsSet("content_modified_at"); + return this; + } + + public Builder createdBy(UserMini createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder sharedLink(String sharedLink) { + this.sharedLink = sharedLink; + this.markNullableFieldAsSet("shared_link"); + return this; + } + + public Builder parent(FolderMini parent) { + this.parent = parent; + return this; + } + + public TrashFileRestored build() { + return new TrashFileRestored(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestoredItemStatusField.java b/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestoredItemStatusField.java new file mode 100644 index 000000000..497164c05 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestoredItemStatusField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.trashfilerestored; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TrashFileRestoredItemStatusField implements Valuable { + ACTIVE("active"), + TRASHED("trashed"), + DELETED("deleted"); + + private final String value; + + TrashFileRestoredItemStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TrashFileRestoredItemStatusFieldDeserializer + extends JsonDeserializer> { + + public TrashFileRestoredItemStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TrashFileRestoredItemStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TrashFileRestoredItemStatusFieldSerializer + extends JsonSerializer> { + + public TrashFileRestoredItemStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestoredPathCollectionField.java b/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestoredPathCollectionField.java new file mode 100644 index 000000000..37c862fc3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestoredPathCollectionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.trashfilerestored; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TrashFileRestoredPathCollectionField extends SerializableObject { + + @JsonProperty("total_count") + protected final long totalCount; + + protected final List entries; + + public TrashFileRestoredPathCollectionField( + @JsonProperty("total_count") long totalCount, + @JsonProperty("entries") List entries) { + super(); + this.totalCount = totalCount; + this.entries = entries; + } + + public long getTotalCount() { + return totalCount; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TrashFileRestoredPathCollectionField casted = (TrashFileRestoredPathCollectionField) o; + return Objects.equals(totalCount, casted.totalCount) && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, entries); + } + + @Override + public String toString() { + return "TrashFileRestoredPathCollectionField{" + + "totalCount='" + + totalCount + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestoredTypeField.java b/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestoredTypeField.java new file mode 100644 index 000000000..bbb980a09 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestoredTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.trashfilerestored; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TrashFileRestoredTypeField implements Valuable { + FILE("file"); + + private final String value; + + TrashFileRestoredTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TrashFileRestoredTypeFieldDeserializer + extends JsonDeserializer> { + + public TrashFileRestoredTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TrashFileRestoredTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TrashFileRestoredTypeFieldSerializer + extends JsonSerializer> { + + public TrashFileRestoredTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolder.java b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolder.java new file mode 100644 index 000000000..ab969b53f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolder.java @@ -0,0 +1,571 @@ +package com.box.sdkgen.schemas.trashfolder; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TrashFolder extends SerializableObject { + + protected final String id; + + @Nullable protected String etag; + + @JsonDeserialize(using = TrashFolderTypeField.TrashFolderTypeFieldDeserializer.class) + @JsonSerialize(using = TrashFolderTypeField.TrashFolderTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("sequence_id") + protected String sequenceId; + + protected final String name; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date createdAt; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date modifiedAt; + + protected final String description; + + protected final long size; + + @JsonProperty("path_collection") + protected final TrashFolderPathCollectionField pathCollection; + + @JsonProperty("created_by") + protected final UserMini createdBy; + + @JsonProperty("modified_by") + protected final UserMini modifiedBy; + + @JsonProperty("trashed_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date trashedAt; + + @JsonProperty("purged_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date purgedAt; + + @JsonProperty("content_created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date contentCreatedAt; + + @JsonProperty("content_modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date contentModifiedAt; + + @JsonProperty("owned_by") + protected final UserMini ownedBy; + + @JsonProperty("shared_link") + @Nullable + protected String sharedLink; + + @JsonProperty("folder_upload_email") + @Nullable + protected String folderUploadEmail; + + protected FolderMini parent; + + @JsonDeserialize(using = TrashFolderItemStatusField.TrashFolderItemStatusFieldDeserializer.class) + @JsonSerialize(using = TrashFolderItemStatusField.TrashFolderItemStatusFieldSerializer.class) + @JsonProperty("item_status") + protected final EnumWrapper itemStatus; + + public TrashFolder( + String id, + String name, + String description, + long size, + TrashFolderPathCollectionField pathCollection, + UserMini createdBy, + UserMini modifiedBy, + UserMini ownedBy, + TrashFolderItemStatusField itemStatus) { + super(); + this.id = id; + this.name = name; + this.description = description; + this.size = size; + this.pathCollection = pathCollection; + this.createdBy = createdBy; + this.modifiedBy = modifiedBy; + this.ownedBy = ownedBy; + this.itemStatus = new EnumWrapper(itemStatus); + this.type = new EnumWrapper(TrashFolderTypeField.FOLDER); + } + + public TrashFolder( + @JsonProperty("id") String id, + @JsonProperty("name") String name, + @JsonProperty("description") String description, + @JsonProperty("size") long size, + @JsonProperty("path_collection") TrashFolderPathCollectionField pathCollection, + @JsonProperty("created_by") UserMini createdBy, + @JsonProperty("modified_by") UserMini modifiedBy, + @JsonProperty("owned_by") UserMini ownedBy, + @JsonProperty("item_status") EnumWrapper itemStatus) { + super(); + this.id = id; + this.name = name; + this.description = description; + this.size = size; + this.pathCollection = pathCollection; + this.createdBy = createdBy; + this.modifiedBy = modifiedBy; + this.ownedBy = ownedBy; + this.itemStatus = itemStatus; + this.type = new EnumWrapper(TrashFolderTypeField.FOLDER); + } + + protected TrashFolder(Builder builder) { + super(); + this.id = builder.id; + this.etag = builder.etag; + this.type = builder.type; + this.sequenceId = builder.sequenceId; + this.name = builder.name; + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + this.description = builder.description; + this.size = builder.size; + this.pathCollection = builder.pathCollection; + this.createdBy = builder.createdBy; + this.modifiedBy = builder.modifiedBy; + this.trashedAt = builder.trashedAt; + this.purgedAt = builder.purgedAt; + this.contentCreatedAt = builder.contentCreatedAt; + this.contentModifiedAt = builder.contentModifiedAt; + this.ownedBy = builder.ownedBy; + this.sharedLink = builder.sharedLink; + this.folderUploadEmail = builder.folderUploadEmail; + this.parent = builder.parent; + this.itemStatus = builder.itemStatus; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getEtag() { + return etag; + } + + public EnumWrapper getType() { + return type; + } + + public String getSequenceId() { + return sequenceId; + } + + public String getName() { + return name; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + public String getDescription() { + return description; + } + + public long getSize() { + return size; + } + + public TrashFolderPathCollectionField getPathCollection() { + return pathCollection; + } + + public UserMini getCreatedBy() { + return createdBy; + } + + public UserMini getModifiedBy() { + return modifiedBy; + } + + public Date getTrashedAt() { + return trashedAt; + } + + public Date getPurgedAt() { + return purgedAt; + } + + public Date getContentCreatedAt() { + return contentCreatedAt; + } + + public Date getContentModifiedAt() { + return contentModifiedAt; + } + + public UserMini getOwnedBy() { + return ownedBy; + } + + public String getSharedLink() { + return sharedLink; + } + + public String getFolderUploadEmail() { + return folderUploadEmail; + } + + public FolderMini getParent() { + return parent; + } + + public EnumWrapper getItemStatus() { + return itemStatus; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TrashFolder casted = (TrashFolder) o; + return Objects.equals(id, casted.id) + && Objects.equals(etag, casted.etag) + && Objects.equals(type, casted.type) + && Objects.equals(sequenceId, casted.sequenceId) + && Objects.equals(name, casted.name) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt) + && Objects.equals(description, casted.description) + && Objects.equals(size, casted.size) + && Objects.equals(pathCollection, casted.pathCollection) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(modifiedBy, casted.modifiedBy) + && Objects.equals(trashedAt, casted.trashedAt) + && Objects.equals(purgedAt, casted.purgedAt) + && Objects.equals(contentCreatedAt, casted.contentCreatedAt) + && Objects.equals(contentModifiedAt, casted.contentModifiedAt) + && Objects.equals(ownedBy, casted.ownedBy) + && Objects.equals(sharedLink, casted.sharedLink) + && Objects.equals(folderUploadEmail, casted.folderUploadEmail) + && Objects.equals(parent, casted.parent) + && Objects.equals(itemStatus, casted.itemStatus); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + etag, + type, + sequenceId, + name, + createdAt, + modifiedAt, + description, + size, + pathCollection, + createdBy, + modifiedBy, + trashedAt, + purgedAt, + contentCreatedAt, + contentModifiedAt, + ownedBy, + sharedLink, + folderUploadEmail, + parent, + itemStatus); + } + + @Override + public String toString() { + return "TrashFolder{" + + "id='" + + id + + '\'' + + ", " + + "etag='" + + etag + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "sequenceId='" + + sequenceId + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "size='" + + size + + '\'' + + ", " + + "pathCollection='" + + pathCollection + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "modifiedBy='" + + modifiedBy + + '\'' + + ", " + + "trashedAt='" + + trashedAt + + '\'' + + ", " + + "purgedAt='" + + purgedAt + + '\'' + + ", " + + "contentCreatedAt='" + + contentCreatedAt + + '\'' + + ", " + + "contentModifiedAt='" + + contentModifiedAt + + '\'' + + ", " + + "ownedBy='" + + ownedBy + + '\'' + + ", " + + "sharedLink='" + + sharedLink + + '\'' + + ", " + + "folderUploadEmail='" + + folderUploadEmail + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + ", " + + "itemStatus='" + + itemStatus + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected String etag; + + protected EnumWrapper type; + + protected String sequenceId; + + protected final String name; + + protected Date createdAt; + + protected Date modifiedAt; + + protected final String description; + + protected final long size; + + protected final TrashFolderPathCollectionField pathCollection; + + protected final UserMini createdBy; + + protected final UserMini modifiedBy; + + protected Date trashedAt; + + protected Date purgedAt; + + protected Date contentCreatedAt; + + protected Date contentModifiedAt; + + protected final UserMini ownedBy; + + protected String sharedLink; + + protected String folderUploadEmail; + + protected FolderMini parent; + + protected final EnumWrapper itemStatus; + + public Builder( + String id, + String name, + String description, + long size, + TrashFolderPathCollectionField pathCollection, + UserMini createdBy, + UserMini modifiedBy, + UserMini ownedBy, + TrashFolderItemStatusField itemStatus) { + super(); + this.id = id; + this.name = name; + this.description = description; + this.size = size; + this.pathCollection = pathCollection; + this.createdBy = createdBy; + this.modifiedBy = modifiedBy; + this.ownedBy = ownedBy; + this.itemStatus = new EnumWrapper(itemStatus); + this.type = new EnumWrapper(TrashFolderTypeField.FOLDER); + } + + public Builder( + String id, + String name, + String description, + long size, + TrashFolderPathCollectionField pathCollection, + UserMini createdBy, + UserMini modifiedBy, + UserMini ownedBy, + EnumWrapper itemStatus) { + super(); + this.id = id; + this.name = name; + this.description = description; + this.size = size; + this.pathCollection = pathCollection; + this.createdBy = createdBy; + this.modifiedBy = modifiedBy; + this.ownedBy = ownedBy; + this.itemStatus = itemStatus; + this.type = new EnumWrapper(TrashFolderTypeField.FOLDER); + } + + public Builder etag(String etag) { + this.etag = etag; + this.markNullableFieldAsSet("etag"); + return this; + } + + public Builder type(TrashFolderTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder sequenceId(String sequenceId) { + this.sequenceId = sequenceId; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + this.markNullableFieldAsSet("created_at"); + return this; + } + + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + this.markNullableFieldAsSet("modified_at"); + return this; + } + + public Builder trashedAt(Date trashedAt) { + this.trashedAt = trashedAt; + this.markNullableFieldAsSet("trashed_at"); + return this; + } + + public Builder purgedAt(Date purgedAt) { + this.purgedAt = purgedAt; + this.markNullableFieldAsSet("purged_at"); + return this; + } + + public Builder contentCreatedAt(Date contentCreatedAt) { + this.contentCreatedAt = contentCreatedAt; + this.markNullableFieldAsSet("content_created_at"); + return this; + } + + public Builder contentModifiedAt(Date contentModifiedAt) { + this.contentModifiedAt = contentModifiedAt; + this.markNullableFieldAsSet("content_modified_at"); + return this; + } + + public Builder sharedLink(String sharedLink) { + this.sharedLink = sharedLink; + this.markNullableFieldAsSet("shared_link"); + return this; + } + + public Builder folderUploadEmail(String folderUploadEmail) { + this.folderUploadEmail = folderUploadEmail; + this.markNullableFieldAsSet("folder_upload_email"); + return this; + } + + public Builder parent(FolderMini parent) { + this.parent = parent; + return this; + } + + public TrashFolder build() { + return new TrashFolder(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderItemStatusField.java b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderItemStatusField.java new file mode 100644 index 000000000..5e36fc5e6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderItemStatusField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.trashfolder; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TrashFolderItemStatusField implements Valuable { + ACTIVE("active"), + TRASHED("trashed"), + DELETED("deleted"); + + private final String value; + + TrashFolderItemStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TrashFolderItemStatusFieldDeserializer + extends JsonDeserializer> { + + public TrashFolderItemStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TrashFolderItemStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TrashFolderItemStatusFieldSerializer + extends JsonSerializer> { + + public TrashFolderItemStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderPathCollectionEntriesField.java b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderPathCollectionEntriesField.java new file mode 100644 index 000000000..bda17627d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderPathCollectionEntriesField.java @@ -0,0 +1,164 @@ +package com.box.sdkgen.schemas.trashfolder; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TrashFolderPathCollectionEntriesField extends SerializableObject { + + @JsonDeserialize( + using = + TrashFolderPathCollectionEntriesTypeField + .TrashFolderPathCollectionEntriesTypeFieldDeserializer.class) + @JsonSerialize( + using = + TrashFolderPathCollectionEntriesTypeField + .TrashFolderPathCollectionEntriesTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String id; + + @JsonProperty("sequence_id") + @Nullable + protected String sequenceId; + + @Nullable protected String etag; + + protected String name; + + public TrashFolderPathCollectionEntriesField() { + super(); + } + + protected TrashFolderPathCollectionEntriesField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + this.sequenceId = builder.sequenceId; + this.etag = builder.etag; + this.name = builder.name; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + public String getSequenceId() { + return sequenceId; + } + + public String getEtag() { + return etag; + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TrashFolderPathCollectionEntriesField casted = (TrashFolderPathCollectionEntriesField) o; + return Objects.equals(type, casted.type) + && Objects.equals(id, casted.id) + && Objects.equals(sequenceId, casted.sequenceId) + && Objects.equals(etag, casted.etag) + && Objects.equals(name, casted.name); + } + + @Override + public int hashCode() { + return Objects.hash(type, id, sequenceId, etag, name); + } + + @Override + public String toString() { + return "TrashFolderPathCollectionEntriesField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + ", " + + "sequenceId='" + + sequenceId + + '\'' + + ", " + + "etag='" + + etag + + '\'' + + ", " + + "name='" + + name + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected String id; + + protected String sequenceId; + + protected String etag; + + protected String name; + + public Builder type(TrashFolderPathCollectionEntriesTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder sequenceId(String sequenceId) { + this.sequenceId = sequenceId; + this.markNullableFieldAsSet("sequence_id"); + return this; + } + + public Builder etag(String etag) { + this.etag = etag; + this.markNullableFieldAsSet("etag"); + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public TrashFolderPathCollectionEntriesField build() { + return new TrashFolderPathCollectionEntriesField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderPathCollectionEntriesTypeField.java b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderPathCollectionEntriesTypeField.java new file mode 100644 index 000000000..4ad767288 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderPathCollectionEntriesTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.trashfolder; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TrashFolderPathCollectionEntriesTypeField implements Valuable { + FOLDER("folder"); + + private final String value; + + TrashFolderPathCollectionEntriesTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TrashFolderPathCollectionEntriesTypeFieldDeserializer + extends JsonDeserializer> { + + public TrashFolderPathCollectionEntriesTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TrashFolderPathCollectionEntriesTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TrashFolderPathCollectionEntriesTypeFieldSerializer + extends JsonSerializer> { + + public TrashFolderPathCollectionEntriesTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderPathCollectionField.java b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderPathCollectionField.java new file mode 100644 index 000000000..38d5ec30c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderPathCollectionField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.trashfolder; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TrashFolderPathCollectionField extends SerializableObject { + + @JsonProperty("total_count") + protected final long totalCount; + + protected final List entries; + + public TrashFolderPathCollectionField( + @JsonProperty("total_count") long totalCount, + @JsonProperty("entries") List entries) { + super(); + this.totalCount = totalCount; + this.entries = entries; + } + + public long getTotalCount() { + return totalCount; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TrashFolderPathCollectionField casted = (TrashFolderPathCollectionField) o; + return Objects.equals(totalCount, casted.totalCount) && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, entries); + } + + @Override + public String toString() { + return "TrashFolderPathCollectionField{" + + "totalCount='" + + totalCount + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderTypeField.java b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderTypeField.java new file mode 100644 index 000000000..cd3de5a35 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.trashfolder; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TrashFolderTypeField implements Valuable { + FOLDER("folder"); + + private final String value; + + TrashFolderTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TrashFolderTypeFieldDeserializer + extends JsonDeserializer> { + + public TrashFolderTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TrashFolderTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TrashFolderTypeFieldSerializer + extends JsonSerializer> { + + public TrashFolderTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestored.java b/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestored.java new file mode 100644 index 000000000..5f855f1c8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestored.java @@ -0,0 +1,533 @@ +package com.box.sdkgen.schemas.trashfolderrestored; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TrashFolderRestored extends SerializableObject { + + protected String id; + + @Nullable protected String etag; + + @JsonDeserialize( + using = TrashFolderRestoredTypeField.TrashFolderRestoredTypeFieldDeserializer.class) + @JsonSerialize(using = TrashFolderRestoredTypeField.TrashFolderRestoredTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("sequence_id") + protected String sequenceId; + + protected String name; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date createdAt; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date modifiedAt; + + protected String description; + + protected Long size; + + @JsonProperty("path_collection") + protected TrashFolderRestoredPathCollectionField pathCollection; + + @JsonProperty("created_by") + protected UserMini createdBy; + + @JsonProperty("modified_by") + protected UserMini modifiedBy; + + @JsonProperty("trashed_at") + @Nullable + protected String trashedAt; + + @JsonProperty("purged_at") + @Nullable + protected String purgedAt; + + @JsonProperty("content_created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date contentCreatedAt; + + @JsonProperty("content_modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date contentModifiedAt; + + @JsonProperty("owned_by") + protected UserMini ownedBy; + + @JsonProperty("shared_link") + @Nullable + protected String sharedLink; + + @JsonProperty("folder_upload_email") + @Nullable + protected String folderUploadEmail; + + protected FolderMini parent; + + @JsonDeserialize( + using = + TrashFolderRestoredItemStatusField.TrashFolderRestoredItemStatusFieldDeserializer.class) + @JsonSerialize( + using = TrashFolderRestoredItemStatusField.TrashFolderRestoredItemStatusFieldSerializer.class) + @JsonProperty("item_status") + protected EnumWrapper itemStatus; + + public TrashFolderRestored() { + super(); + } + + protected TrashFolderRestored(Builder builder) { + super(); + this.id = builder.id; + this.etag = builder.etag; + this.type = builder.type; + this.sequenceId = builder.sequenceId; + this.name = builder.name; + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + this.description = builder.description; + this.size = builder.size; + this.pathCollection = builder.pathCollection; + this.createdBy = builder.createdBy; + this.modifiedBy = builder.modifiedBy; + this.trashedAt = builder.trashedAt; + this.purgedAt = builder.purgedAt; + this.contentCreatedAt = builder.contentCreatedAt; + this.contentModifiedAt = builder.contentModifiedAt; + this.ownedBy = builder.ownedBy; + this.sharedLink = builder.sharedLink; + this.folderUploadEmail = builder.folderUploadEmail; + this.parent = builder.parent; + this.itemStatus = builder.itemStatus; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getEtag() { + return etag; + } + + public EnumWrapper getType() { + return type; + } + + public String getSequenceId() { + return sequenceId; + } + + public String getName() { + return name; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + public String getDescription() { + return description; + } + + public Long getSize() { + return size; + } + + public TrashFolderRestoredPathCollectionField getPathCollection() { + return pathCollection; + } + + public UserMini getCreatedBy() { + return createdBy; + } + + public UserMini getModifiedBy() { + return modifiedBy; + } + + public String getTrashedAt() { + return trashedAt; + } + + public String getPurgedAt() { + return purgedAt; + } + + public Date getContentCreatedAt() { + return contentCreatedAt; + } + + public Date getContentModifiedAt() { + return contentModifiedAt; + } + + public UserMini getOwnedBy() { + return ownedBy; + } + + public String getSharedLink() { + return sharedLink; + } + + public String getFolderUploadEmail() { + return folderUploadEmail; + } + + public FolderMini getParent() { + return parent; + } + + public EnumWrapper getItemStatus() { + return itemStatus; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TrashFolderRestored casted = (TrashFolderRestored) o; + return Objects.equals(id, casted.id) + && Objects.equals(etag, casted.etag) + && Objects.equals(type, casted.type) + && Objects.equals(sequenceId, casted.sequenceId) + && Objects.equals(name, casted.name) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt) + && Objects.equals(description, casted.description) + && Objects.equals(size, casted.size) + && Objects.equals(pathCollection, casted.pathCollection) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(modifiedBy, casted.modifiedBy) + && Objects.equals(trashedAt, casted.trashedAt) + && Objects.equals(purgedAt, casted.purgedAt) + && Objects.equals(contentCreatedAt, casted.contentCreatedAt) + && Objects.equals(contentModifiedAt, casted.contentModifiedAt) + && Objects.equals(ownedBy, casted.ownedBy) + && Objects.equals(sharedLink, casted.sharedLink) + && Objects.equals(folderUploadEmail, casted.folderUploadEmail) + && Objects.equals(parent, casted.parent) + && Objects.equals(itemStatus, casted.itemStatus); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + etag, + type, + sequenceId, + name, + createdAt, + modifiedAt, + description, + size, + pathCollection, + createdBy, + modifiedBy, + trashedAt, + purgedAt, + contentCreatedAt, + contentModifiedAt, + ownedBy, + sharedLink, + folderUploadEmail, + parent, + itemStatus); + } + + @Override + public String toString() { + return "TrashFolderRestored{" + + "id='" + + id + + '\'' + + ", " + + "etag='" + + etag + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "sequenceId='" + + sequenceId + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "size='" + + size + + '\'' + + ", " + + "pathCollection='" + + pathCollection + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "modifiedBy='" + + modifiedBy + + '\'' + + ", " + + "trashedAt='" + + trashedAt + + '\'' + + ", " + + "purgedAt='" + + purgedAt + + '\'' + + ", " + + "contentCreatedAt='" + + contentCreatedAt + + '\'' + + ", " + + "contentModifiedAt='" + + contentModifiedAt + + '\'' + + ", " + + "ownedBy='" + + ownedBy + + '\'' + + ", " + + "sharedLink='" + + sharedLink + + '\'' + + ", " + + "folderUploadEmail='" + + folderUploadEmail + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + ", " + + "itemStatus='" + + itemStatus + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected String etag; + + protected EnumWrapper type; + + protected String sequenceId; + + protected String name; + + protected Date createdAt; + + protected Date modifiedAt; + + protected String description; + + protected Long size; + + protected TrashFolderRestoredPathCollectionField pathCollection; + + protected UserMini createdBy; + + protected UserMini modifiedBy; + + protected String trashedAt; + + protected String purgedAt; + + protected Date contentCreatedAt; + + protected Date contentModifiedAt; + + protected UserMini ownedBy; + + protected String sharedLink; + + protected String folderUploadEmail; + + protected FolderMini parent; + + protected EnumWrapper itemStatus; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder etag(String etag) { + this.etag = etag; + this.markNullableFieldAsSet("etag"); + return this; + } + + public Builder type(TrashFolderRestoredTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder sequenceId(String sequenceId) { + this.sequenceId = sequenceId; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + this.markNullableFieldAsSet("created_at"); + return this; + } + + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + this.markNullableFieldAsSet("modified_at"); + return this; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder size(Long size) { + this.size = size; + return this; + } + + public Builder pathCollection(TrashFolderRestoredPathCollectionField pathCollection) { + this.pathCollection = pathCollection; + return this; + } + + public Builder createdBy(UserMini createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder modifiedBy(UserMini modifiedBy) { + this.modifiedBy = modifiedBy; + return this; + } + + public Builder trashedAt(String trashedAt) { + this.trashedAt = trashedAt; + this.markNullableFieldAsSet("trashed_at"); + return this; + } + + public Builder purgedAt(String purgedAt) { + this.purgedAt = purgedAt; + this.markNullableFieldAsSet("purged_at"); + return this; + } + + public Builder contentCreatedAt(Date contentCreatedAt) { + this.contentCreatedAt = contentCreatedAt; + this.markNullableFieldAsSet("content_created_at"); + return this; + } + + public Builder contentModifiedAt(Date contentModifiedAt) { + this.contentModifiedAt = contentModifiedAt; + this.markNullableFieldAsSet("content_modified_at"); + return this; + } + + public Builder ownedBy(UserMini ownedBy) { + this.ownedBy = ownedBy; + return this; + } + + public Builder sharedLink(String sharedLink) { + this.sharedLink = sharedLink; + this.markNullableFieldAsSet("shared_link"); + return this; + } + + public Builder folderUploadEmail(String folderUploadEmail) { + this.folderUploadEmail = folderUploadEmail; + this.markNullableFieldAsSet("folder_upload_email"); + return this; + } + + public Builder parent(FolderMini parent) { + this.parent = parent; + return this; + } + + public Builder itemStatus(TrashFolderRestoredItemStatusField itemStatus) { + this.itemStatus = new EnumWrapper(itemStatus); + return this; + } + + public Builder itemStatus(EnumWrapper itemStatus) { + this.itemStatus = itemStatus; + return this; + } + + public TrashFolderRestored build() { + return new TrashFolderRestored(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestoredItemStatusField.java b/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestoredItemStatusField.java new file mode 100644 index 000000000..2a3c9919b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestoredItemStatusField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.trashfolderrestored; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TrashFolderRestoredItemStatusField implements Valuable { + ACTIVE("active"), + TRASHED("trashed"), + DELETED("deleted"); + + private final String value; + + TrashFolderRestoredItemStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TrashFolderRestoredItemStatusFieldDeserializer + extends JsonDeserializer> { + + public TrashFolderRestoredItemStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TrashFolderRestoredItemStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TrashFolderRestoredItemStatusFieldSerializer + extends JsonSerializer> { + + public TrashFolderRestoredItemStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestoredPathCollectionField.java b/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestoredPathCollectionField.java new file mode 100644 index 000000000..c2e4e57e3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestoredPathCollectionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.trashfolderrestored; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TrashFolderRestoredPathCollectionField extends SerializableObject { + + @JsonProperty("total_count") + protected final long totalCount; + + protected final List entries; + + public TrashFolderRestoredPathCollectionField( + @JsonProperty("total_count") long totalCount, + @JsonProperty("entries") List entries) { + super(); + this.totalCount = totalCount; + this.entries = entries; + } + + public long getTotalCount() { + return totalCount; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TrashFolderRestoredPathCollectionField casted = (TrashFolderRestoredPathCollectionField) o; + return Objects.equals(totalCount, casted.totalCount) && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, entries); + } + + @Override + public String toString() { + return "TrashFolderRestoredPathCollectionField{" + + "totalCount='" + + totalCount + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestoredTypeField.java b/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestoredTypeField.java new file mode 100644 index 000000000..c3092fb31 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestoredTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.trashfolderrestored; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TrashFolderRestoredTypeField implements Valuable { + FOLDER("folder"); + + private final String value; + + TrashFolderRestoredTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TrashFolderRestoredTypeFieldDeserializer + extends JsonDeserializer> { + + public TrashFolderRestoredTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TrashFolderRestoredTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TrashFolderRestoredTypeFieldSerializer + extends JsonSerializer> { + + public TrashFolderRestoredTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLink.java b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLink.java new file mode 100644 index 000000000..0f60acbc6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLink.java @@ -0,0 +1,456 @@ +package com.box.sdkgen.schemas.trashweblink; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TrashWebLink extends SerializableObject { + + @JsonDeserialize(using = TrashWebLinkTypeField.TrashWebLinkTypeFieldDeserializer.class) + @JsonSerialize(using = TrashWebLinkTypeField.TrashWebLinkTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String id; + + @JsonProperty("sequence_id") + protected String sequenceId; + + protected String etag; + + protected String name; + + protected String url; + + protected FolderMini parent; + + protected String description; + + @JsonProperty("path_collection") + protected TrashWebLinkPathCollectionField pathCollection; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date modifiedAt; + + @JsonProperty("trashed_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date trashedAt; + + @JsonProperty("purged_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date purgedAt; + + @JsonProperty("created_by") + protected UserMini createdBy; + + @JsonProperty("modified_by") + protected UserMini modifiedBy; + + @JsonProperty("owned_by") + protected UserMini ownedBy; + + @JsonProperty("shared_link") + @Nullable + protected String sharedLink; + + @JsonDeserialize( + using = TrashWebLinkItemStatusField.TrashWebLinkItemStatusFieldDeserializer.class) + @JsonSerialize(using = TrashWebLinkItemStatusField.TrashWebLinkItemStatusFieldSerializer.class) + @JsonProperty("item_status") + protected EnumWrapper itemStatus; + + public TrashWebLink() { + super(); + } + + protected TrashWebLink(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + this.sequenceId = builder.sequenceId; + this.etag = builder.etag; + this.name = builder.name; + this.url = builder.url; + this.parent = builder.parent; + this.description = builder.description; + this.pathCollection = builder.pathCollection; + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + this.trashedAt = builder.trashedAt; + this.purgedAt = builder.purgedAt; + this.createdBy = builder.createdBy; + this.modifiedBy = builder.modifiedBy; + this.ownedBy = builder.ownedBy; + this.sharedLink = builder.sharedLink; + this.itemStatus = builder.itemStatus; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + public String getSequenceId() { + return sequenceId; + } + + public String getEtag() { + return etag; + } + + public String getName() { + return name; + } + + public String getUrl() { + return url; + } + + public FolderMini getParent() { + return parent; + } + + public String getDescription() { + return description; + } + + public TrashWebLinkPathCollectionField getPathCollection() { + return pathCollection; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + public Date getTrashedAt() { + return trashedAt; + } + + public Date getPurgedAt() { + return purgedAt; + } + + public UserMini getCreatedBy() { + return createdBy; + } + + public UserMini getModifiedBy() { + return modifiedBy; + } + + public UserMini getOwnedBy() { + return ownedBy; + } + + public String getSharedLink() { + return sharedLink; + } + + public EnumWrapper getItemStatus() { + return itemStatus; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TrashWebLink casted = (TrashWebLink) o; + return Objects.equals(type, casted.type) + && Objects.equals(id, casted.id) + && Objects.equals(sequenceId, casted.sequenceId) + && Objects.equals(etag, casted.etag) + && Objects.equals(name, casted.name) + && Objects.equals(url, casted.url) + && Objects.equals(parent, casted.parent) + && Objects.equals(description, casted.description) + && Objects.equals(pathCollection, casted.pathCollection) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt) + && Objects.equals(trashedAt, casted.trashedAt) + && Objects.equals(purgedAt, casted.purgedAt) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(modifiedBy, casted.modifiedBy) + && Objects.equals(ownedBy, casted.ownedBy) + && Objects.equals(sharedLink, casted.sharedLink) + && Objects.equals(itemStatus, casted.itemStatus); + } + + @Override + public int hashCode() { + return Objects.hash( + type, + id, + sequenceId, + etag, + name, + url, + parent, + description, + pathCollection, + createdAt, + modifiedAt, + trashedAt, + purgedAt, + createdBy, + modifiedBy, + ownedBy, + sharedLink, + itemStatus); + } + + @Override + public String toString() { + return "TrashWebLink{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + ", " + + "sequenceId='" + + sequenceId + + '\'' + + ", " + + "etag='" + + etag + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "url='" + + url + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "pathCollection='" + + pathCollection + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + ", " + + "trashedAt='" + + trashedAt + + '\'' + + ", " + + "purgedAt='" + + purgedAt + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "modifiedBy='" + + modifiedBy + + '\'' + + ", " + + "ownedBy='" + + ownedBy + + '\'' + + ", " + + "sharedLink='" + + sharedLink + + '\'' + + ", " + + "itemStatus='" + + itemStatus + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected String id; + + protected String sequenceId; + + protected String etag; + + protected String name; + + protected String url; + + protected FolderMini parent; + + protected String description; + + protected TrashWebLinkPathCollectionField pathCollection; + + protected Date createdAt; + + protected Date modifiedAt; + + protected Date trashedAt; + + protected Date purgedAt; + + protected UserMini createdBy; + + protected UserMini modifiedBy; + + protected UserMini ownedBy; + + protected String sharedLink; + + protected EnumWrapper itemStatus; + + public Builder type(TrashWebLinkTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder sequenceId(String sequenceId) { + this.sequenceId = sequenceId; + return this; + } + + public Builder etag(String etag) { + this.etag = etag; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder url(String url) { + this.url = url; + return this; + } + + public Builder parent(FolderMini parent) { + this.parent = parent; + return this; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder pathCollection(TrashWebLinkPathCollectionField pathCollection) { + this.pathCollection = pathCollection; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + public Builder trashedAt(Date trashedAt) { + this.trashedAt = trashedAt; + this.markNullableFieldAsSet("trashed_at"); + return this; + } + + public Builder purgedAt(Date purgedAt) { + this.purgedAt = purgedAt; + this.markNullableFieldAsSet("purged_at"); + return this; + } + + public Builder createdBy(UserMini createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder modifiedBy(UserMini modifiedBy) { + this.modifiedBy = modifiedBy; + return this; + } + + public Builder ownedBy(UserMini ownedBy) { + this.ownedBy = ownedBy; + return this; + } + + public Builder sharedLink(String sharedLink) { + this.sharedLink = sharedLink; + this.markNullableFieldAsSet("shared_link"); + return this; + } + + public Builder itemStatus(TrashWebLinkItemStatusField itemStatus) { + this.itemStatus = new EnumWrapper(itemStatus); + return this; + } + + public Builder itemStatus(EnumWrapper itemStatus) { + this.itemStatus = itemStatus; + return this; + } + + public TrashWebLink build() { + return new TrashWebLink(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkItemStatusField.java b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkItemStatusField.java new file mode 100644 index 000000000..0685ef16c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkItemStatusField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.trashweblink; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TrashWebLinkItemStatusField implements Valuable { + ACTIVE("active"), + TRASHED("trashed"), + DELETED("deleted"); + + private final String value; + + TrashWebLinkItemStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TrashWebLinkItemStatusFieldDeserializer + extends JsonDeserializer> { + + public TrashWebLinkItemStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TrashWebLinkItemStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TrashWebLinkItemStatusFieldSerializer + extends JsonSerializer> { + + public TrashWebLinkItemStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkPathCollectionEntriesField.java b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkPathCollectionEntriesField.java new file mode 100644 index 000000000..bc51a4eb2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkPathCollectionEntriesField.java @@ -0,0 +1,164 @@ +package com.box.sdkgen.schemas.trashweblink; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TrashWebLinkPathCollectionEntriesField extends SerializableObject { + + @JsonDeserialize( + using = + TrashWebLinkPathCollectionEntriesTypeField + .TrashWebLinkPathCollectionEntriesTypeFieldDeserializer.class) + @JsonSerialize( + using = + TrashWebLinkPathCollectionEntriesTypeField + .TrashWebLinkPathCollectionEntriesTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String id; + + @JsonProperty("sequence_id") + @Nullable + protected String sequenceId; + + @Nullable protected String etag; + + protected String name; + + public TrashWebLinkPathCollectionEntriesField() { + super(); + } + + protected TrashWebLinkPathCollectionEntriesField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + this.sequenceId = builder.sequenceId; + this.etag = builder.etag; + this.name = builder.name; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + public String getSequenceId() { + return sequenceId; + } + + public String getEtag() { + return etag; + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TrashWebLinkPathCollectionEntriesField casted = (TrashWebLinkPathCollectionEntriesField) o; + return Objects.equals(type, casted.type) + && Objects.equals(id, casted.id) + && Objects.equals(sequenceId, casted.sequenceId) + && Objects.equals(etag, casted.etag) + && Objects.equals(name, casted.name); + } + + @Override + public int hashCode() { + return Objects.hash(type, id, sequenceId, etag, name); + } + + @Override + public String toString() { + return "TrashWebLinkPathCollectionEntriesField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + ", " + + "sequenceId='" + + sequenceId + + '\'' + + ", " + + "etag='" + + etag + + '\'' + + ", " + + "name='" + + name + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected String id; + + protected String sequenceId; + + protected String etag; + + protected String name; + + public Builder type(TrashWebLinkPathCollectionEntriesTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder sequenceId(String sequenceId) { + this.sequenceId = sequenceId; + this.markNullableFieldAsSet("sequence_id"); + return this; + } + + public Builder etag(String etag) { + this.etag = etag; + this.markNullableFieldAsSet("etag"); + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public TrashWebLinkPathCollectionEntriesField build() { + return new TrashWebLinkPathCollectionEntriesField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkPathCollectionEntriesTypeField.java b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkPathCollectionEntriesTypeField.java new file mode 100644 index 000000000..d79dd0fb6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkPathCollectionEntriesTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.trashweblink; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TrashWebLinkPathCollectionEntriesTypeField implements Valuable { + FOLDER("folder"); + + private final String value; + + TrashWebLinkPathCollectionEntriesTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TrashWebLinkPathCollectionEntriesTypeFieldDeserializer + extends JsonDeserializer> { + + public TrashWebLinkPathCollectionEntriesTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TrashWebLinkPathCollectionEntriesTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TrashWebLinkPathCollectionEntriesTypeFieldSerializer + extends JsonSerializer> { + + public TrashWebLinkPathCollectionEntriesTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkPathCollectionField.java b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkPathCollectionField.java new file mode 100644 index 000000000..31fb1704c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkPathCollectionField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.trashweblink; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TrashWebLinkPathCollectionField extends SerializableObject { + + @JsonProperty("total_count") + protected final long totalCount; + + protected final List entries; + + public TrashWebLinkPathCollectionField( + @JsonProperty("total_count") long totalCount, + @JsonProperty("entries") List entries) { + super(); + this.totalCount = totalCount; + this.entries = entries; + } + + public long getTotalCount() { + return totalCount; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TrashWebLinkPathCollectionField casted = (TrashWebLinkPathCollectionField) o; + return Objects.equals(totalCount, casted.totalCount) && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, entries); + } + + @Override + public String toString() { + return "TrashWebLinkPathCollectionField{" + + "totalCount='" + + totalCount + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkTypeField.java b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkTypeField.java new file mode 100644 index 000000000..a3369f260 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.trashweblink; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TrashWebLinkTypeField implements Valuable { + WEB_LINK("web_link"); + + private final String value; + + TrashWebLinkTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TrashWebLinkTypeFieldDeserializer + extends JsonDeserializer> { + + public TrashWebLinkTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TrashWebLinkTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TrashWebLinkTypeFieldSerializer + extends JsonSerializer> { + + public TrashWebLinkTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestored.java b/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestored.java new file mode 100644 index 000000000..3b7520a4a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestored.java @@ -0,0 +1,457 @@ +package com.box.sdkgen.schemas.trashweblinkrestored; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TrashWebLinkRestored extends SerializableObject { + + @JsonDeserialize( + using = TrashWebLinkRestoredTypeField.TrashWebLinkRestoredTypeFieldDeserializer.class) + @JsonSerialize( + using = TrashWebLinkRestoredTypeField.TrashWebLinkRestoredTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String id; + + @JsonProperty("sequence_id") + protected final String sequenceId; + + protected String etag; + + protected String name; + + protected String url; + + protected FolderMini parent; + + protected String description; + + @JsonProperty("path_collection") + protected final TrashWebLinkRestoredPathCollectionField pathCollection; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date modifiedAt; + + @JsonProperty("trashed_at") + @Nullable + protected String trashedAt; + + @JsonProperty("purged_at") + @Nullable + protected String purgedAt; + + @JsonProperty("created_by") + protected UserMini createdBy; + + @JsonProperty("modified_by") + protected UserMini modifiedBy; + + @JsonProperty("owned_by") + protected UserMini ownedBy; + + @JsonProperty("shared_link") + @Nullable + protected String sharedLink; + + @JsonDeserialize( + using = + TrashWebLinkRestoredItemStatusField.TrashWebLinkRestoredItemStatusFieldDeserializer.class) + @JsonSerialize( + using = + TrashWebLinkRestoredItemStatusField.TrashWebLinkRestoredItemStatusFieldSerializer.class) + @JsonProperty("item_status") + protected EnumWrapper itemStatus; + + public TrashWebLinkRestored( + @JsonProperty("sequence_id") String sequenceId, + @JsonProperty("path_collection") TrashWebLinkRestoredPathCollectionField pathCollection) { + super(); + this.sequenceId = sequenceId; + this.pathCollection = pathCollection; + } + + protected TrashWebLinkRestored(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + this.sequenceId = builder.sequenceId; + this.etag = builder.etag; + this.name = builder.name; + this.url = builder.url; + this.parent = builder.parent; + this.description = builder.description; + this.pathCollection = builder.pathCollection; + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + this.trashedAt = builder.trashedAt; + this.purgedAt = builder.purgedAt; + this.createdBy = builder.createdBy; + this.modifiedBy = builder.modifiedBy; + this.ownedBy = builder.ownedBy; + this.sharedLink = builder.sharedLink; + this.itemStatus = builder.itemStatus; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + public String getSequenceId() { + return sequenceId; + } + + public String getEtag() { + return etag; + } + + public String getName() { + return name; + } + + public String getUrl() { + return url; + } + + public FolderMini getParent() { + return parent; + } + + public String getDescription() { + return description; + } + + public TrashWebLinkRestoredPathCollectionField getPathCollection() { + return pathCollection; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + public String getTrashedAt() { + return trashedAt; + } + + public String getPurgedAt() { + return purgedAt; + } + + public UserMini getCreatedBy() { + return createdBy; + } + + public UserMini getModifiedBy() { + return modifiedBy; + } + + public UserMini getOwnedBy() { + return ownedBy; + } + + public String getSharedLink() { + return sharedLink; + } + + public EnumWrapper getItemStatus() { + return itemStatus; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TrashWebLinkRestored casted = (TrashWebLinkRestored) o; + return Objects.equals(type, casted.type) + && Objects.equals(id, casted.id) + && Objects.equals(sequenceId, casted.sequenceId) + && Objects.equals(etag, casted.etag) + && Objects.equals(name, casted.name) + && Objects.equals(url, casted.url) + && Objects.equals(parent, casted.parent) + && Objects.equals(description, casted.description) + && Objects.equals(pathCollection, casted.pathCollection) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt) + && Objects.equals(trashedAt, casted.trashedAt) + && Objects.equals(purgedAt, casted.purgedAt) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(modifiedBy, casted.modifiedBy) + && Objects.equals(ownedBy, casted.ownedBy) + && Objects.equals(sharedLink, casted.sharedLink) + && Objects.equals(itemStatus, casted.itemStatus); + } + + @Override + public int hashCode() { + return Objects.hash( + type, + id, + sequenceId, + etag, + name, + url, + parent, + description, + pathCollection, + createdAt, + modifiedAt, + trashedAt, + purgedAt, + createdBy, + modifiedBy, + ownedBy, + sharedLink, + itemStatus); + } + + @Override + public String toString() { + return "TrashWebLinkRestored{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + ", " + + "sequenceId='" + + sequenceId + + '\'' + + ", " + + "etag='" + + etag + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "url='" + + url + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "pathCollection='" + + pathCollection + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + ", " + + "trashedAt='" + + trashedAt + + '\'' + + ", " + + "purgedAt='" + + purgedAt + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "modifiedBy='" + + modifiedBy + + '\'' + + ", " + + "ownedBy='" + + ownedBy + + '\'' + + ", " + + "sharedLink='" + + sharedLink + + '\'' + + ", " + + "itemStatus='" + + itemStatus + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected String id; + + protected final String sequenceId; + + protected String etag; + + protected String name; + + protected String url; + + protected FolderMini parent; + + protected String description; + + protected final TrashWebLinkRestoredPathCollectionField pathCollection; + + protected Date createdAt; + + protected Date modifiedAt; + + protected String trashedAt; + + protected String purgedAt; + + protected UserMini createdBy; + + protected UserMini modifiedBy; + + protected UserMini ownedBy; + + protected String sharedLink; + + protected EnumWrapper itemStatus; + + public Builder(String sequenceId, TrashWebLinkRestoredPathCollectionField pathCollection) { + super(); + this.sequenceId = sequenceId; + this.pathCollection = pathCollection; + } + + public Builder type(TrashWebLinkRestoredTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder etag(String etag) { + this.etag = etag; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder url(String url) { + this.url = url; + return this; + } + + public Builder parent(FolderMini parent) { + this.parent = parent; + return this; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + public Builder trashedAt(String trashedAt) { + this.trashedAt = trashedAt; + this.markNullableFieldAsSet("trashed_at"); + return this; + } + + public Builder purgedAt(String purgedAt) { + this.purgedAt = purgedAt; + this.markNullableFieldAsSet("purged_at"); + return this; + } + + public Builder createdBy(UserMini createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder modifiedBy(UserMini modifiedBy) { + this.modifiedBy = modifiedBy; + return this; + } + + public Builder ownedBy(UserMini ownedBy) { + this.ownedBy = ownedBy; + return this; + } + + public Builder sharedLink(String sharedLink) { + this.sharedLink = sharedLink; + this.markNullableFieldAsSet("shared_link"); + return this; + } + + public Builder itemStatus(TrashWebLinkRestoredItemStatusField itemStatus) { + this.itemStatus = new EnumWrapper(itemStatus); + return this; + } + + public Builder itemStatus(EnumWrapper itemStatus) { + this.itemStatus = itemStatus; + return this; + } + + public TrashWebLinkRestored build() { + return new TrashWebLinkRestored(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestoredItemStatusField.java b/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestoredItemStatusField.java new file mode 100644 index 000000000..1837f762a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestoredItemStatusField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.trashweblinkrestored; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TrashWebLinkRestoredItemStatusField implements Valuable { + ACTIVE("active"), + TRASHED("trashed"), + DELETED("deleted"); + + private final String value; + + TrashWebLinkRestoredItemStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TrashWebLinkRestoredItemStatusFieldDeserializer + extends JsonDeserializer> { + + public TrashWebLinkRestoredItemStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TrashWebLinkRestoredItemStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TrashWebLinkRestoredItemStatusFieldSerializer + extends JsonSerializer> { + + public TrashWebLinkRestoredItemStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestoredPathCollectionField.java b/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestoredPathCollectionField.java new file mode 100644 index 000000000..eabe2ef18 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestoredPathCollectionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.trashweblinkrestored; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TrashWebLinkRestoredPathCollectionField extends SerializableObject { + + @JsonProperty("total_count") + protected final long totalCount; + + protected final List entries; + + public TrashWebLinkRestoredPathCollectionField( + @JsonProperty("total_count") long totalCount, + @JsonProperty("entries") List entries) { + super(); + this.totalCount = totalCount; + this.entries = entries; + } + + public long getTotalCount() { + return totalCount; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TrashWebLinkRestoredPathCollectionField casted = (TrashWebLinkRestoredPathCollectionField) o; + return Objects.equals(totalCount, casted.totalCount) && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, entries); + } + + @Override + public String toString() { + return "TrashWebLinkRestoredPathCollectionField{" + + "totalCount='" + + totalCount + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestoredTypeField.java b/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestoredTypeField.java new file mode 100644 index 000000000..75405122c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestoredTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.trashweblinkrestored; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TrashWebLinkRestoredTypeField implements Valuable { + WEB_LINK("web_link"); + + private final String value; + + TrashWebLinkRestoredTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TrashWebLinkRestoredTypeFieldDeserializer + extends JsonDeserializer> { + + public TrashWebLinkRestoredTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TrashWebLinkRestoredTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TrashWebLinkRestoredTypeFieldSerializer + extends JsonSerializer> { + + public TrashWebLinkRestoredTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/uploadedpart/UploadedPart.java b/src/main/java/com/box/sdkgen/schemas/uploadedpart/UploadedPart.java new file mode 100644 index 000000000..9676c3323 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/uploadedpart/UploadedPart.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.uploadedpart; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.uploadpart.UploadPart; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UploadedPart extends SerializableObject { + + protected UploadPart part; + + public UploadedPart() { + super(); + } + + protected UploadedPart(Builder builder) { + super(); + this.part = builder.part; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public UploadPart getPart() { + return part; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UploadedPart casted = (UploadedPart) o; + return Objects.equals(part, casted.part); + } + + @Override + public int hashCode() { + return Objects.hash(part); + } + + @Override + public String toString() { + return "UploadedPart{" + "part='" + part + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected UploadPart part; + + public Builder part(UploadPart part) { + this.part = part; + return this; + } + + public UploadedPart build() { + return new UploadedPart(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/uploadpart/UploadPart.java b/src/main/java/com/box/sdkgen/schemas/uploadpart/UploadPart.java new file mode 100644 index 000000000..a733ae719 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/uploadpart/UploadPart.java @@ -0,0 +1,98 @@ +package com.box.sdkgen.schemas.uploadpart; + +import com.box.sdkgen.schemas.uploadpartmini.UploadPartMini; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UploadPart extends UploadPartMini { + + protected String sha1; + + public UploadPart() { + super(); + } + + protected UploadPart(Builder builder) { + super(builder); + this.sha1 = builder.sha1; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getSha1() { + return sha1; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UploadPart casted = (UploadPart) o; + return Objects.equals(partId, casted.partId) + && Objects.equals(offset, casted.offset) + && Objects.equals(size, casted.size) + && Objects.equals(sha1, casted.sha1); + } + + @Override + public int hashCode() { + return Objects.hash(partId, offset, size, sha1); + } + + @Override + public String toString() { + return "UploadPart{" + + "partId='" + + partId + + '\'' + + ", " + + "offset='" + + offset + + '\'' + + ", " + + "size='" + + size + + '\'' + + ", " + + "sha1='" + + sha1 + + '\'' + + "}"; + } + + public static class Builder extends UploadPartMini.Builder { + + protected String sha1; + + public Builder sha1(String sha1) { + this.sha1 = sha1; + return this; + } + + @Override + public Builder partId(String partId) { + this.partId = partId; + return this; + } + + @Override + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + @Override + public Builder size(Long size) { + this.size = size; + return this; + } + + public UploadPart build() { + return new UploadPart(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/uploadpartmini/UploadPartMini.java b/src/main/java/com/box/sdkgen/schemas/uploadpartmini/UploadPartMini.java new file mode 100644 index 000000000..4db31edf6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/uploadpartmini/UploadPartMini.java @@ -0,0 +1,106 @@ +package com.box.sdkgen.schemas.uploadpartmini; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UploadPartMini extends SerializableObject { + + @JsonProperty("part_id") + protected String partId; + + protected Long offset; + + protected Long size; + + public UploadPartMini() { + super(); + } + + protected UploadPartMini(Builder builder) { + super(); + this.partId = builder.partId; + this.offset = builder.offset; + this.size = builder.size; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getPartId() { + return partId; + } + + public Long getOffset() { + return offset; + } + + public Long getSize() { + return size; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UploadPartMini casted = (UploadPartMini) o; + return Objects.equals(partId, casted.partId) + && Objects.equals(offset, casted.offset) + && Objects.equals(size, casted.size); + } + + @Override + public int hashCode() { + return Objects.hash(partId, offset, size); + } + + @Override + public String toString() { + return "UploadPartMini{" + + "partId='" + + partId + + '\'' + + ", " + + "offset='" + + offset + + '\'' + + ", " + + "size='" + + size + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String partId; + + protected Long offset; + + protected Long size; + + public Builder partId(String partId) { + this.partId = partId; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public Builder size(Long size) { + this.size = size; + return this; + } + + public UploadPartMini build() { + return new UploadPartMini(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/uploadparts/UploadParts.java b/src/main/java/com/box/sdkgen/schemas/uploadparts/UploadParts.java new file mode 100644 index 000000000..22c317913 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/uploadparts/UploadParts.java @@ -0,0 +1,146 @@ +package com.box.sdkgen.schemas.uploadparts; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.uploadpart.UploadPart; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UploadParts extends SerializableObject { + + @JsonProperty("total_count") + protected Long totalCount; + + protected Long limit; + + protected Long offset; + + protected List order; + + protected List entries; + + public UploadParts() { + super(); + } + + protected UploadParts(Builder builder) { + super(); + this.totalCount = builder.totalCount; + this.limit = builder.limit; + this.offset = builder.offset; + this.order = builder.order; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getTotalCount() { + return totalCount; + } + + public Long getLimit() { + return limit; + } + + public Long getOffset() { + return offset; + } + + public List getOrder() { + return order; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UploadParts casted = (UploadParts) o; + return Objects.equals(totalCount, casted.totalCount) + && Objects.equals(limit, casted.limit) + && Objects.equals(offset, casted.offset) + && Objects.equals(order, casted.order) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, limit, offset, order, entries); + } + + @Override + public String toString() { + return "UploadParts{" + + "totalCount='" + + totalCount + + '\'' + + ", " + + "limit='" + + limit + + '\'' + + ", " + + "offset='" + + offset + + '\'' + + ", " + + "order='" + + order + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long totalCount; + + protected Long limit; + + protected Long offset; + + protected List order; + + protected List entries; + + public Builder totalCount(Long totalCount) { + this.totalCount = totalCount; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public Builder order(List order) { + this.order = order; + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public UploadParts build() { + return new UploadParts(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/uploadparts/UploadPartsOrderDirectionField.java b/src/main/java/com/box/sdkgen/schemas/uploadparts/UploadPartsOrderDirectionField.java new file mode 100644 index 000000000..9c5b58e11 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/uploadparts/UploadPartsOrderDirectionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.uploadparts; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UploadPartsOrderDirectionField implements Valuable { + ASC("ASC"), + DESC("DESC"); + + private final String value; + + UploadPartsOrderDirectionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UploadPartsOrderDirectionFieldDeserializer + extends JsonDeserializer> { + + public UploadPartsOrderDirectionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UploadPartsOrderDirectionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UploadPartsOrderDirectionFieldSerializer + extends JsonSerializer> { + + public UploadPartsOrderDirectionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/uploadparts/UploadPartsOrderField.java b/src/main/java/com/box/sdkgen/schemas/uploadparts/UploadPartsOrderField.java new file mode 100644 index 000000000..473955718 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/uploadparts/UploadPartsOrderField.java @@ -0,0 +1,96 @@ +package com.box.sdkgen.schemas.uploadparts; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UploadPartsOrderField extends SerializableObject { + + protected String by; + + @JsonDeserialize( + using = UploadPartsOrderDirectionField.UploadPartsOrderDirectionFieldDeserializer.class) + @JsonSerialize( + using = UploadPartsOrderDirectionField.UploadPartsOrderDirectionFieldSerializer.class) + protected EnumWrapper direction; + + public UploadPartsOrderField() { + super(); + } + + protected UploadPartsOrderField(Builder builder) { + super(); + this.by = builder.by; + this.direction = builder.direction; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getBy() { + return by; + } + + public EnumWrapper getDirection() { + return direction; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UploadPartsOrderField casted = (UploadPartsOrderField) o; + return Objects.equals(by, casted.by) && Objects.equals(direction, casted.direction); + } + + @Override + public int hashCode() { + return Objects.hash(by, direction); + } + + @Override + public String toString() { + return "UploadPartsOrderField{" + + "by='" + + by + + '\'' + + ", " + + "direction='" + + direction + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String by; + + protected EnumWrapper direction; + + public Builder by(String by) { + this.by = by; + return this; + } + + public Builder direction(UploadPartsOrderDirectionField direction) { + this.direction = new EnumWrapper(direction); + return this; + } + + public Builder direction(EnumWrapper direction) { + this.direction = direction; + return this; + } + + public UploadPartsOrderField build() { + return new UploadPartsOrderField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSession.java b/src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSession.java new file mode 100644 index 000000000..588f1643e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSession.java @@ -0,0 +1,201 @@ +package com.box.sdkgen.schemas.uploadsession; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UploadSession extends SerializableObject { + + protected String id; + + @JsonDeserialize(using = UploadSessionTypeField.UploadSessionTypeFieldDeserializer.class) + @JsonSerialize(using = UploadSessionTypeField.UploadSessionTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("session_expires_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date sessionExpiresAt; + + @JsonProperty("part_size") + protected Long partSize; + + @JsonProperty("total_parts") + protected Integer totalParts; + + @JsonProperty("num_parts_processed") + protected Integer numPartsProcessed; + + @JsonProperty("session_endpoints") + protected UploadSessionSessionEndpointsField sessionEndpoints; + + public UploadSession() { + super(); + } + + protected UploadSession(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.sessionExpiresAt = builder.sessionExpiresAt; + this.partSize = builder.partSize; + this.totalParts = builder.totalParts; + this.numPartsProcessed = builder.numPartsProcessed; + this.sessionEndpoints = builder.sessionEndpoints; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public Date getSessionExpiresAt() { + return sessionExpiresAt; + } + + public Long getPartSize() { + return partSize; + } + + public Integer getTotalParts() { + return totalParts; + } + + public Integer getNumPartsProcessed() { + return numPartsProcessed; + } + + public UploadSessionSessionEndpointsField getSessionEndpoints() { + return sessionEndpoints; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UploadSession casted = (UploadSession) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(sessionExpiresAt, casted.sessionExpiresAt) + && Objects.equals(partSize, casted.partSize) + && Objects.equals(totalParts, casted.totalParts) + && Objects.equals(numPartsProcessed, casted.numPartsProcessed) + && Objects.equals(sessionEndpoints, casted.sessionEndpoints); + } + + @Override + public int hashCode() { + return Objects.hash( + id, type, sessionExpiresAt, partSize, totalParts, numPartsProcessed, sessionEndpoints); + } + + @Override + public String toString() { + return "UploadSession{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "sessionExpiresAt='" + + sessionExpiresAt + + '\'' + + ", " + + "partSize='" + + partSize + + '\'' + + ", " + + "totalParts='" + + totalParts + + '\'' + + ", " + + "numPartsProcessed='" + + numPartsProcessed + + '\'' + + ", " + + "sessionEndpoints='" + + sessionEndpoints + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected Date sessionExpiresAt; + + protected Long partSize; + + protected Integer totalParts; + + protected Integer numPartsProcessed; + + protected UploadSessionSessionEndpointsField sessionEndpoints; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(UploadSessionTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder sessionExpiresAt(Date sessionExpiresAt) { + this.sessionExpiresAt = sessionExpiresAt; + return this; + } + + public Builder partSize(Long partSize) { + this.partSize = partSize; + return this; + } + + public Builder totalParts(Integer totalParts) { + this.totalParts = totalParts; + return this; + } + + public Builder numPartsProcessed(Integer numPartsProcessed) { + this.numPartsProcessed = numPartsProcessed; + return this; + } + + public Builder sessionEndpoints(UploadSessionSessionEndpointsField sessionEndpoints) { + this.sessionEndpoints = sessionEndpoints; + return this; + } + + public UploadSession build() { + return new UploadSession(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSessionSessionEndpointsField.java b/src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSessionSessionEndpointsField.java new file mode 100644 index 000000000..2bdc99747 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSessionSessionEndpointsField.java @@ -0,0 +1,165 @@ +package com.box.sdkgen.schemas.uploadsession; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UploadSessionSessionEndpointsField extends SerializableObject { + + @JsonProperty("upload_part") + protected String uploadPart; + + protected String commit; + + protected String abort; + + @JsonProperty("list_parts") + protected String listParts; + + protected String status; + + @JsonProperty("log_event") + protected String logEvent; + + public UploadSessionSessionEndpointsField() { + super(); + } + + protected UploadSessionSessionEndpointsField(Builder builder) { + super(); + this.uploadPart = builder.uploadPart; + this.commit = builder.commit; + this.abort = builder.abort; + this.listParts = builder.listParts; + this.status = builder.status; + this.logEvent = builder.logEvent; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getUploadPart() { + return uploadPart; + } + + public String getCommit() { + return commit; + } + + public String getAbort() { + return abort; + } + + public String getListParts() { + return listParts; + } + + public String getStatus() { + return status; + } + + public String getLogEvent() { + return logEvent; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UploadSessionSessionEndpointsField casted = (UploadSessionSessionEndpointsField) o; + return Objects.equals(uploadPart, casted.uploadPart) + && Objects.equals(commit, casted.commit) + && Objects.equals(abort, casted.abort) + && Objects.equals(listParts, casted.listParts) + && Objects.equals(status, casted.status) + && Objects.equals(logEvent, casted.logEvent); + } + + @Override + public int hashCode() { + return Objects.hash(uploadPart, commit, abort, listParts, status, logEvent); + } + + @Override + public String toString() { + return "UploadSessionSessionEndpointsField{" + + "uploadPart='" + + uploadPart + + '\'' + + ", " + + "commit='" + + commit + + '\'' + + ", " + + "abort='" + + abort + + '\'' + + ", " + + "listParts='" + + listParts + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "logEvent='" + + logEvent + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String uploadPart; + + protected String commit; + + protected String abort; + + protected String listParts; + + protected String status; + + protected String logEvent; + + public Builder uploadPart(String uploadPart) { + this.uploadPart = uploadPart; + return this; + } + + public Builder commit(String commit) { + this.commit = commit; + return this; + } + + public Builder abort(String abort) { + this.abort = abort; + return this; + } + + public Builder listParts(String listParts) { + this.listParts = listParts; + return this; + } + + public Builder status(String status) { + this.status = status; + return this; + } + + public Builder logEvent(String logEvent) { + this.logEvent = logEvent; + return this; + } + + public UploadSessionSessionEndpointsField build() { + return new UploadSessionSessionEndpointsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSessionTypeField.java b/src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSessionTypeField.java new file mode 100644 index 000000000..4b1cc1ed2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSessionTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.uploadsession; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UploadSessionTypeField implements Valuable { + UPLOAD_SESSION("upload_session"); + + private final String value; + + UploadSessionTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UploadSessionTypeFieldDeserializer + extends JsonDeserializer> { + + public UploadSessionTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UploadSessionTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UploadSessionTypeFieldSerializer + extends JsonSerializer> { + + public UploadSessionTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/uploadurl/UploadUrl.java b/src/main/java/com/box/sdkgen/schemas/uploadurl/UploadUrl.java new file mode 100644 index 000000000..1d5b411ea --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/uploadurl/UploadUrl.java @@ -0,0 +1,88 @@ +package com.box.sdkgen.schemas.uploadurl; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UploadUrl extends SerializableObject { + + @JsonProperty("upload_url") + protected String uploadUrl; + + @JsonProperty("upload_token") + protected String uploadToken; + + public UploadUrl() { + super(); + } + + protected UploadUrl(Builder builder) { + super(); + this.uploadUrl = builder.uploadUrl; + this.uploadToken = builder.uploadToken; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getUploadUrl() { + return uploadUrl; + } + + public String getUploadToken() { + return uploadToken; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UploadUrl casted = (UploadUrl) o; + return Objects.equals(uploadUrl, casted.uploadUrl) + && Objects.equals(uploadToken, casted.uploadToken); + } + + @Override + public int hashCode() { + return Objects.hash(uploadUrl, uploadToken); + } + + @Override + public String toString() { + return "UploadUrl{" + + "uploadUrl='" + + uploadUrl + + '\'' + + ", " + + "uploadToken='" + + uploadToken + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String uploadUrl; + + protected String uploadToken; + + public Builder uploadUrl(String uploadUrl) { + this.uploadUrl = uploadUrl; + return this; + } + + public Builder uploadToken(String uploadToken) { + this.uploadToken = uploadToken; + return this; + } + + public UploadUrl build() { + return new UploadUrl(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/user/User.java b/src/main/java/com/box/sdkgen/schemas/user/User.java new file mode 100644 index 000000000..b8ba875cf --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/user/User.java @@ -0,0 +1,387 @@ +package com.box.sdkgen.schemas.user; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.userbase.UserBaseTypeField; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class User extends UserMini { + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date modifiedAt; + + protected String language; + + protected String timezone; + + @JsonProperty("space_amount") + protected Long spaceAmount; + + @JsonProperty("space_used") + protected Long spaceUsed; + + @JsonProperty("max_upload_size") + protected Long maxUploadSize; + + @JsonDeserialize(using = UserStatusField.UserStatusFieldDeserializer.class) + @JsonSerialize(using = UserStatusField.UserStatusFieldSerializer.class) + protected EnumWrapper status; + + @JsonProperty("job_title") + protected String jobTitle; + + protected String phone; + + protected String address; + + @JsonProperty("avatar_url") + protected String avatarUrl; + + @JsonProperty("notification_email") + @Nullable + protected UserNotificationEmailField notificationEmail; + + public User(@JsonProperty("id") String id) { + super(id); + } + + protected User(Builder builder) { + super(builder); + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + this.language = builder.language; + this.timezone = builder.timezone; + this.spaceAmount = builder.spaceAmount; + this.spaceUsed = builder.spaceUsed; + this.maxUploadSize = builder.maxUploadSize; + this.status = builder.status; + this.jobTitle = builder.jobTitle; + this.phone = builder.phone; + this.address = builder.address; + this.avatarUrl = builder.avatarUrl; + this.notificationEmail = builder.notificationEmail; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + public String getLanguage() { + return language; + } + + public String getTimezone() { + return timezone; + } + + public Long getSpaceAmount() { + return spaceAmount; + } + + public Long getSpaceUsed() { + return spaceUsed; + } + + public Long getMaxUploadSize() { + return maxUploadSize; + } + + public EnumWrapper getStatus() { + return status; + } + + public String getJobTitle() { + return jobTitle; + } + + public String getPhone() { + return phone; + } + + public String getAddress() { + return address; + } + + public String getAvatarUrl() { + return avatarUrl; + } + + public UserNotificationEmailField getNotificationEmail() { + return notificationEmail; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + User casted = (User) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name) + && Objects.equals(login, casted.login) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt) + && Objects.equals(language, casted.language) + && Objects.equals(timezone, casted.timezone) + && Objects.equals(spaceAmount, casted.spaceAmount) + && Objects.equals(spaceUsed, casted.spaceUsed) + && Objects.equals(maxUploadSize, casted.maxUploadSize) + && Objects.equals(status, casted.status) + && Objects.equals(jobTitle, casted.jobTitle) + && Objects.equals(phone, casted.phone) + && Objects.equals(address, casted.address) + && Objects.equals(avatarUrl, casted.avatarUrl) + && Objects.equals(notificationEmail, casted.notificationEmail); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + type, + name, + login, + createdAt, + modifiedAt, + language, + timezone, + spaceAmount, + spaceUsed, + maxUploadSize, + status, + jobTitle, + phone, + address, + avatarUrl, + notificationEmail); + } + + @Override + public String toString() { + return "User{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "login='" + + login + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + ", " + + "language='" + + language + + '\'' + + ", " + + "timezone='" + + timezone + + '\'' + + ", " + + "spaceAmount='" + + spaceAmount + + '\'' + + ", " + + "spaceUsed='" + + spaceUsed + + '\'' + + ", " + + "maxUploadSize='" + + maxUploadSize + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "jobTitle='" + + jobTitle + + '\'' + + ", " + + "phone='" + + phone + + '\'' + + ", " + + "address='" + + address + + '\'' + + ", " + + "avatarUrl='" + + avatarUrl + + '\'' + + ", " + + "notificationEmail='" + + notificationEmail + + '\'' + + "}"; + } + + public static class Builder extends UserMini.Builder { + + protected Date createdAt; + + protected Date modifiedAt; + + protected String language; + + protected String timezone; + + protected Long spaceAmount; + + protected Long spaceUsed; + + protected Long maxUploadSize; + + protected EnumWrapper status; + + protected String jobTitle; + + protected String phone; + + protected String address; + + protected String avatarUrl; + + protected UserNotificationEmailField notificationEmail; + + public Builder(String id) { + super(id); + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + public Builder language(String language) { + this.language = language; + return this; + } + + public Builder timezone(String timezone) { + this.timezone = timezone; + return this; + } + + public Builder spaceAmount(Long spaceAmount) { + this.spaceAmount = spaceAmount; + return this; + } + + public Builder spaceUsed(Long spaceUsed) { + this.spaceUsed = spaceUsed; + return this; + } + + public Builder maxUploadSize(Long maxUploadSize) { + this.maxUploadSize = maxUploadSize; + return this; + } + + public Builder status(UserStatusField status) { + this.status = new EnumWrapper(status); + return this; + } + + public Builder status(EnumWrapper status) { + this.status = status; + return this; + } + + public Builder jobTitle(String jobTitle) { + this.jobTitle = jobTitle; + return this; + } + + public Builder phone(String phone) { + this.phone = phone; + return this; + } + + public Builder address(String address) { + this.address = address; + return this; + } + + public Builder avatarUrl(String avatarUrl) { + this.avatarUrl = avatarUrl; + return this; + } + + public Builder notificationEmail(UserNotificationEmailField notificationEmail) { + this.notificationEmail = notificationEmail; + this.markNullableFieldAsSet("notification_email"); + return this; + } + + @Override + public Builder type(UserBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder name(String name) { + this.name = name; + return this; + } + + @Override + public Builder login(String login) { + this.login = login; + return this; + } + + public User build() { + return new User(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/user/UserNotificationEmailField.java b/src/main/java/com/box/sdkgen/schemas/user/UserNotificationEmailField.java new file mode 100644 index 000000000..14001d55f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/user/UserNotificationEmailField.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.schemas.user; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UserNotificationEmailField extends SerializableObject { + + protected String email; + + @JsonProperty("is_confirmed") + protected Boolean isConfirmed; + + public UserNotificationEmailField() { + super(); + } + + protected UserNotificationEmailField(Builder builder) { + super(); + this.email = builder.email; + this.isConfirmed = builder.isConfirmed; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getEmail() { + return email; + } + + public Boolean getIsConfirmed() { + return isConfirmed; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserNotificationEmailField casted = (UserNotificationEmailField) o; + return Objects.equals(email, casted.email) && Objects.equals(isConfirmed, casted.isConfirmed); + } + + @Override + public int hashCode() { + return Objects.hash(email, isConfirmed); + } + + @Override + public String toString() { + return "UserNotificationEmailField{" + + "email='" + + email + + '\'' + + ", " + + "isConfirmed='" + + isConfirmed + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String email; + + protected Boolean isConfirmed; + + public Builder email(String email) { + this.email = email; + return this; + } + + public Builder isConfirmed(Boolean isConfirmed) { + this.isConfirmed = isConfirmed; + return this; + } + + public UserNotificationEmailField build() { + return new UserNotificationEmailField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/user/UserStatusField.java b/src/main/java/com/box/sdkgen/schemas/user/UserStatusField.java new file mode 100644 index 000000000..3380fb3e3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/user/UserStatusField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.user; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UserStatusField implements Valuable { + ACTIVE("active"), + INACTIVE("inactive"), + CANNOT_DELETE_EDIT("cannot_delete_edit"), + CANNOT_DELETE_EDIT_UPLOAD("cannot_delete_edit_upload"); + + private final String value; + + UserStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UserStatusFieldDeserializer + extends JsonDeserializer> { + + public UserStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UserStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UserStatusFieldSerializer + extends JsonSerializer> { + + public UserStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/useravatar/UserAvatar.java b/src/main/java/com/box/sdkgen/schemas/useravatar/UserAvatar.java new file mode 100644 index 000000000..4512ecff5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/useravatar/UserAvatar.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.useravatar; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UserAvatar extends SerializableObject { + + @JsonProperty("pic_urls") + protected UserAvatarPicUrlsField picUrls; + + public UserAvatar() { + super(); + } + + protected UserAvatar(Builder builder) { + super(); + this.picUrls = builder.picUrls; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public UserAvatarPicUrlsField getPicUrls() { + return picUrls; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserAvatar casted = (UserAvatar) o; + return Objects.equals(picUrls, casted.picUrls); + } + + @Override + public int hashCode() { + return Objects.hash(picUrls); + } + + @Override + public String toString() { + return "UserAvatar{" + "picUrls='" + picUrls + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected UserAvatarPicUrlsField picUrls; + + public Builder picUrls(UserAvatarPicUrlsField picUrls) { + this.picUrls = picUrls; + return this; + } + + public UserAvatar build() { + return new UserAvatar(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/useravatar/UserAvatarPicUrlsField.java b/src/main/java/com/box/sdkgen/schemas/useravatar/UserAvatarPicUrlsField.java new file mode 100644 index 000000000..b68bfb85e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/useravatar/UserAvatarPicUrlsField.java @@ -0,0 +1,104 @@ +package com.box.sdkgen.schemas.useravatar; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UserAvatarPicUrlsField extends SerializableObject { + + protected String small; + + protected String large; + + protected String preview; + + public UserAvatarPicUrlsField() { + super(); + } + + protected UserAvatarPicUrlsField(Builder builder) { + super(); + this.small = builder.small; + this.large = builder.large; + this.preview = builder.preview; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getSmall() { + return small; + } + + public String getLarge() { + return large; + } + + public String getPreview() { + return preview; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserAvatarPicUrlsField casted = (UserAvatarPicUrlsField) o; + return Objects.equals(small, casted.small) + && Objects.equals(large, casted.large) + && Objects.equals(preview, casted.preview); + } + + @Override + public int hashCode() { + return Objects.hash(small, large, preview); + } + + @Override + public String toString() { + return "UserAvatarPicUrlsField{" + + "small='" + + small + + '\'' + + ", " + + "large='" + + large + + '\'' + + ", " + + "preview='" + + preview + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String small; + + protected String large; + + protected String preview; + + public Builder small(String small) { + this.small = small; + return this; + } + + public Builder large(String large) { + this.large = large; + return this; + } + + public Builder preview(String preview) { + this.preview = preview; + return this; + } + + public UserAvatarPicUrlsField build() { + return new UserAvatarPicUrlsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/userbase/UserBase.java b/src/main/java/com/box/sdkgen/schemas/userbase/UserBase.java new file mode 100644 index 000000000..94644f834 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/userbase/UserBase.java @@ -0,0 +1,90 @@ +package com.box.sdkgen.schemas.userbase; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UserBase extends SerializableObject { + + protected final String id; + + @JsonDeserialize(using = UserBaseTypeField.UserBaseTypeFieldDeserializer.class) + @JsonSerialize(using = UserBaseTypeField.UserBaseTypeFieldSerializer.class) + protected EnumWrapper type; + + public UserBase(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = new EnumWrapper(UserBaseTypeField.USER); + } + + protected UserBase(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserBase casted = (UserBase) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "UserBase{" + "id='" + id + '\'' + ", " + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + public Builder(String id) { + super(); + this.id = id; + this.type = new EnumWrapper(UserBaseTypeField.USER); + } + + public Builder type(UserBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public UserBase build() { + return new UserBase(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/userbase/UserBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/userbase/UserBaseTypeField.java new file mode 100644 index 000000000..2e6527129 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/userbase/UserBaseTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.userbase; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UserBaseTypeField implements Valuable { + USER("user"); + + private final String value; + + UserBaseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UserBaseTypeFieldDeserializer + extends JsonDeserializer> { + + public UserBaseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UserBaseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UserBaseTypeFieldSerializer + extends JsonSerializer> { + + public UserBaseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/usercollaborations/UserCollaborations.java b/src/main/java/com/box/sdkgen/schemas/usercollaborations/UserCollaborations.java new file mode 100644 index 000000000..60438c32c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/usercollaborations/UserCollaborations.java @@ -0,0 +1,133 @@ +package com.box.sdkgen.schemas.usercollaborations; + +import com.box.sdkgen.schemas.userbase.UserBase; +import com.box.sdkgen.schemas.userbase.UserBaseTypeField; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UserCollaborations extends UserBase { + + protected String name; + + protected String login; + + @JsonProperty("is_active") + protected Boolean isActive; + + public UserCollaborations(@JsonProperty("id") String id) { + super(id); + } + + protected UserCollaborations(Builder builder) { + super(builder); + this.name = builder.name; + this.login = builder.login; + this.isActive = builder.isActive; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public String getLogin() { + return login; + } + + public Boolean getIsActive() { + return isActive; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserCollaborations casted = (UserCollaborations) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name) + && Objects.equals(login, casted.login) + && Objects.equals(isActive, casted.isActive); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name, login, isActive); + } + + @Override + public String toString() { + return "UserCollaborations{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "login='" + + login + + '\'' + + ", " + + "isActive='" + + isActive + + '\'' + + "}"; + } + + public static class Builder extends UserBase.Builder { + + protected String name; + + protected String login; + + protected Boolean isActive; + + public Builder(String id) { + super(id); + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder login(String login) { + this.login = login; + return this; + } + + public Builder isActive(Boolean isActive) { + this.isActive = isActive; + return this; + } + + @Override + public Builder type(UserBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public UserCollaborations build() { + return new UserCollaborations(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/userfull/UserFull.java b/src/main/java/com/box/sdkgen/schemas/userfull/UserFull.java new file mode 100644 index 000000000..c9f8c23e6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/userfull/UserFull.java @@ -0,0 +1,527 @@ +package com.box.sdkgen.schemas.userfull; + +import com.box.sdkgen.schemas.trackingcode.TrackingCode; +import com.box.sdkgen.schemas.user.User; +import com.box.sdkgen.schemas.user.UserNotificationEmailField; +import com.box.sdkgen.schemas.user.UserStatusField; +import com.box.sdkgen.schemas.userbase.UserBaseTypeField; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UserFull extends User { + + @JsonDeserialize(using = UserFullRoleField.UserFullRoleFieldDeserializer.class) + @JsonSerialize(using = UserFullRoleField.UserFullRoleFieldSerializer.class) + protected EnumWrapper role; + + @JsonProperty("tracking_codes") + protected List trackingCodes; + + @JsonProperty("can_see_managed_users") + protected Boolean canSeeManagedUsers; + + @JsonProperty("is_sync_enabled") + protected Boolean isSyncEnabled; + + @JsonProperty("is_external_collab_restricted") + protected Boolean isExternalCollabRestricted; + + @JsonProperty("is_exempt_from_device_limits") + protected Boolean isExemptFromDeviceLimits; + + @JsonProperty("is_exempt_from_login_verification") + protected Boolean isExemptFromLoginVerification; + + protected UserFullEnterpriseField enterprise; + + @JsonProperty("my_tags") + protected List myTags; + + protected String hostname; + + @JsonProperty("is_platform_access_only") + protected Boolean isPlatformAccessOnly; + + @JsonProperty("external_app_user_id") + protected String externalAppUserId; + + public UserFull(@JsonProperty("id") String id) { + super(id); + } + + protected UserFull(Builder builder) { + super(builder); + this.role = builder.role; + this.trackingCodes = builder.trackingCodes; + this.canSeeManagedUsers = builder.canSeeManagedUsers; + this.isSyncEnabled = builder.isSyncEnabled; + this.isExternalCollabRestricted = builder.isExternalCollabRestricted; + this.isExemptFromDeviceLimits = builder.isExemptFromDeviceLimits; + this.isExemptFromLoginVerification = builder.isExemptFromLoginVerification; + this.enterprise = builder.enterprise; + this.myTags = builder.myTags; + this.hostname = builder.hostname; + this.isPlatformAccessOnly = builder.isPlatformAccessOnly; + this.externalAppUserId = builder.externalAppUserId; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getRole() { + return role; + } + + public List getTrackingCodes() { + return trackingCodes; + } + + public Boolean getCanSeeManagedUsers() { + return canSeeManagedUsers; + } + + public Boolean getIsSyncEnabled() { + return isSyncEnabled; + } + + public Boolean getIsExternalCollabRestricted() { + return isExternalCollabRestricted; + } + + public Boolean getIsExemptFromDeviceLimits() { + return isExemptFromDeviceLimits; + } + + public Boolean getIsExemptFromLoginVerification() { + return isExemptFromLoginVerification; + } + + public UserFullEnterpriseField getEnterprise() { + return enterprise; + } + + public List getMyTags() { + return myTags; + } + + public String getHostname() { + return hostname; + } + + public Boolean getIsPlatformAccessOnly() { + return isPlatformAccessOnly; + } + + public String getExternalAppUserId() { + return externalAppUserId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserFull casted = (UserFull) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name) + && Objects.equals(login, casted.login) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt) + && Objects.equals(language, casted.language) + && Objects.equals(timezone, casted.timezone) + && Objects.equals(spaceAmount, casted.spaceAmount) + && Objects.equals(spaceUsed, casted.spaceUsed) + && Objects.equals(maxUploadSize, casted.maxUploadSize) + && Objects.equals(status, casted.status) + && Objects.equals(jobTitle, casted.jobTitle) + && Objects.equals(phone, casted.phone) + && Objects.equals(address, casted.address) + && Objects.equals(avatarUrl, casted.avatarUrl) + && Objects.equals(notificationEmail, casted.notificationEmail) + && Objects.equals(role, casted.role) + && Objects.equals(trackingCodes, casted.trackingCodes) + && Objects.equals(canSeeManagedUsers, casted.canSeeManagedUsers) + && Objects.equals(isSyncEnabled, casted.isSyncEnabled) + && Objects.equals(isExternalCollabRestricted, casted.isExternalCollabRestricted) + && Objects.equals(isExemptFromDeviceLimits, casted.isExemptFromDeviceLimits) + && Objects.equals(isExemptFromLoginVerification, casted.isExemptFromLoginVerification) + && Objects.equals(enterprise, casted.enterprise) + && Objects.equals(myTags, casted.myTags) + && Objects.equals(hostname, casted.hostname) + && Objects.equals(isPlatformAccessOnly, casted.isPlatformAccessOnly) + && Objects.equals(externalAppUserId, casted.externalAppUserId); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + type, + name, + login, + createdAt, + modifiedAt, + language, + timezone, + spaceAmount, + spaceUsed, + maxUploadSize, + status, + jobTitle, + phone, + address, + avatarUrl, + notificationEmail, + role, + trackingCodes, + canSeeManagedUsers, + isSyncEnabled, + isExternalCollabRestricted, + isExemptFromDeviceLimits, + isExemptFromLoginVerification, + enterprise, + myTags, + hostname, + isPlatformAccessOnly, + externalAppUserId); + } + + @Override + public String toString() { + return "UserFull{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "login='" + + login + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + ", " + + "language='" + + language + + '\'' + + ", " + + "timezone='" + + timezone + + '\'' + + ", " + + "spaceAmount='" + + spaceAmount + + '\'' + + ", " + + "spaceUsed='" + + spaceUsed + + '\'' + + ", " + + "maxUploadSize='" + + maxUploadSize + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "jobTitle='" + + jobTitle + + '\'' + + ", " + + "phone='" + + phone + + '\'' + + ", " + + "address='" + + address + + '\'' + + ", " + + "avatarUrl='" + + avatarUrl + + '\'' + + ", " + + "notificationEmail='" + + notificationEmail + + '\'' + + ", " + + "role='" + + role + + '\'' + + ", " + + "trackingCodes='" + + trackingCodes + + '\'' + + ", " + + "canSeeManagedUsers='" + + canSeeManagedUsers + + '\'' + + ", " + + "isSyncEnabled='" + + isSyncEnabled + + '\'' + + ", " + + "isExternalCollabRestricted='" + + isExternalCollabRestricted + + '\'' + + ", " + + "isExemptFromDeviceLimits='" + + isExemptFromDeviceLimits + + '\'' + + ", " + + "isExemptFromLoginVerification='" + + isExemptFromLoginVerification + + '\'' + + ", " + + "enterprise='" + + enterprise + + '\'' + + ", " + + "myTags='" + + myTags + + '\'' + + ", " + + "hostname='" + + hostname + + '\'' + + ", " + + "isPlatformAccessOnly='" + + isPlatformAccessOnly + + '\'' + + ", " + + "externalAppUserId='" + + externalAppUserId + + '\'' + + "}"; + } + + public static class Builder extends User.Builder { + + protected EnumWrapper role; + + protected List trackingCodes; + + protected Boolean canSeeManagedUsers; + + protected Boolean isSyncEnabled; + + protected Boolean isExternalCollabRestricted; + + protected Boolean isExemptFromDeviceLimits; + + protected Boolean isExemptFromLoginVerification; + + protected UserFullEnterpriseField enterprise; + + protected List myTags; + + protected String hostname; + + protected Boolean isPlatformAccessOnly; + + protected String externalAppUserId; + + public Builder(String id) { + super(id); + } + + public Builder role(UserFullRoleField role) { + this.role = new EnumWrapper(role); + return this; + } + + public Builder role(EnumWrapper role) { + this.role = role; + return this; + } + + public Builder trackingCodes(List trackingCodes) { + this.trackingCodes = trackingCodes; + return this; + } + + public Builder canSeeManagedUsers(Boolean canSeeManagedUsers) { + this.canSeeManagedUsers = canSeeManagedUsers; + return this; + } + + public Builder isSyncEnabled(Boolean isSyncEnabled) { + this.isSyncEnabled = isSyncEnabled; + return this; + } + + public Builder isExternalCollabRestricted(Boolean isExternalCollabRestricted) { + this.isExternalCollabRestricted = isExternalCollabRestricted; + return this; + } + + public Builder isExemptFromDeviceLimits(Boolean isExemptFromDeviceLimits) { + this.isExemptFromDeviceLimits = isExemptFromDeviceLimits; + return this; + } + + public Builder isExemptFromLoginVerification(Boolean isExemptFromLoginVerification) { + this.isExemptFromLoginVerification = isExemptFromLoginVerification; + return this; + } + + public Builder enterprise(UserFullEnterpriseField enterprise) { + this.enterprise = enterprise; + return this; + } + + public Builder myTags(List myTags) { + this.myTags = myTags; + return this; + } + + public Builder hostname(String hostname) { + this.hostname = hostname; + return this; + } + + public Builder isPlatformAccessOnly(Boolean isPlatformAccessOnly) { + this.isPlatformAccessOnly = isPlatformAccessOnly; + return this; + } + + public Builder externalAppUserId(String externalAppUserId) { + this.externalAppUserId = externalAppUserId; + return this; + } + + @Override + public Builder type(UserBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder name(String name) { + this.name = name; + return this; + } + + @Override + public Builder login(String login) { + this.login = login; + return this; + } + + @Override + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + @Override + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + @Override + public Builder language(String language) { + this.language = language; + return this; + } + + @Override + public Builder timezone(String timezone) { + this.timezone = timezone; + return this; + } + + @Override + public Builder spaceAmount(Long spaceAmount) { + this.spaceAmount = spaceAmount; + return this; + } + + @Override + public Builder spaceUsed(Long spaceUsed) { + this.spaceUsed = spaceUsed; + return this; + } + + @Override + public Builder maxUploadSize(Long maxUploadSize) { + this.maxUploadSize = maxUploadSize; + return this; + } + + @Override + public Builder status(UserStatusField status) { + this.status = new EnumWrapper(status); + return this; + } + + @Override + public Builder status(EnumWrapper status) { + this.status = status; + return this; + } + + @Override + public Builder jobTitle(String jobTitle) { + this.jobTitle = jobTitle; + return this; + } + + @Override + public Builder phone(String phone) { + this.phone = phone; + return this; + } + + @Override + public Builder address(String address) { + this.address = address; + return this; + } + + @Override + public Builder avatarUrl(String avatarUrl) { + this.avatarUrl = avatarUrl; + return this; + } + + @Override + public Builder notificationEmail(UserNotificationEmailField notificationEmail) { + this.notificationEmail = notificationEmail; + this.markNullableFieldAsSet("notification_email"); + return this; + } + + public UserFull build() { + return new UserFull(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/userfull/UserFullEnterpriseField.java b/src/main/java/com/box/sdkgen/schemas/userfull/UserFullEnterpriseField.java new file mode 100644 index 000000000..2194df23c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/userfull/UserFullEnterpriseField.java @@ -0,0 +1,115 @@ +package com.box.sdkgen.schemas.userfull; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UserFullEnterpriseField extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = UserFullEnterpriseTypeField.UserFullEnterpriseTypeFieldDeserializer.class) + @JsonSerialize(using = UserFullEnterpriseTypeField.UserFullEnterpriseTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String name; + + public UserFullEnterpriseField() { + super(); + } + + protected UserFullEnterpriseField(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.name = builder.name; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserFullEnterpriseField casted = (UserFullEnterpriseField) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name); + } + + @Override + public String toString() { + return "UserFullEnterpriseField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected String name; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(UserFullEnterpriseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public UserFullEnterpriseField build() { + return new UserFullEnterpriseField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/userfull/UserFullEnterpriseTypeField.java b/src/main/java/com/box/sdkgen/schemas/userfull/UserFullEnterpriseTypeField.java new file mode 100644 index 000000000..0824ff82c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/userfull/UserFullEnterpriseTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.userfull; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UserFullEnterpriseTypeField implements Valuable { + ENTERPRISE("enterprise"); + + private final String value; + + UserFullEnterpriseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UserFullEnterpriseTypeFieldDeserializer + extends JsonDeserializer> { + + public UserFullEnterpriseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UserFullEnterpriseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UserFullEnterpriseTypeFieldSerializer + extends JsonSerializer> { + + public UserFullEnterpriseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/userfull/UserFullRoleField.java b/src/main/java/com/box/sdkgen/schemas/userfull/UserFullRoleField.java new file mode 100644 index 000000000..5bc612dcb --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/userfull/UserFullRoleField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.userfull; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UserFullRoleField implements Valuable { + ADMIN("admin"), + COADMIN("coadmin"), + USER("user"); + + private final String value; + + UserFullRoleField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UserFullRoleFieldDeserializer + extends JsonDeserializer> { + + public UserFullRoleFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UserFullRoleField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UserFullRoleFieldSerializer + extends JsonSerializer> { + + public UserFullRoleFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/userintegrationmappings/UserIntegrationMappings.java b/src/main/java/com/box/sdkgen/schemas/userintegrationmappings/UserIntegrationMappings.java new file mode 100644 index 000000000..24464df1d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/userintegrationmappings/UserIntegrationMappings.java @@ -0,0 +1,113 @@ +package com.box.sdkgen.schemas.userintegrationmappings; + +import com.box.sdkgen.schemas.userbase.UserBase; +import com.box.sdkgen.schemas.userbase.UserBaseTypeField; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UserIntegrationMappings extends UserBase { + + protected String name; + + protected String login; + + public UserIntegrationMappings(@JsonProperty("id") String id) { + super(id); + } + + protected UserIntegrationMappings(Builder builder) { + super(builder); + this.name = builder.name; + this.login = builder.login; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public String getLogin() { + return login; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserIntegrationMappings casted = (UserIntegrationMappings) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name) + && Objects.equals(login, casted.login); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name, login); + } + + @Override + public String toString() { + return "UserIntegrationMappings{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "login='" + + login + + '\'' + + "}"; + } + + public static class Builder extends UserBase.Builder { + + protected String name; + + protected String login; + + public Builder(String id) { + super(id); + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder login(String login) { + this.login = login; + return this; + } + + @Override + public Builder type(UserBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public UserIntegrationMappings build() { + return new UserIntegrationMappings(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/usermini/UserMini.java b/src/main/java/com/box/sdkgen/schemas/usermini/UserMini.java new file mode 100644 index 000000000..613e632e8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/usermini/UserMini.java @@ -0,0 +1,113 @@ +package com.box.sdkgen.schemas.usermini; + +import com.box.sdkgen.schemas.userbase.UserBase; +import com.box.sdkgen.schemas.userbase.UserBaseTypeField; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UserMini extends UserBase { + + protected String name; + + protected String login; + + public UserMini(@JsonProperty("id") String id) { + super(id); + } + + protected UserMini(Builder builder) { + super(builder); + this.name = builder.name; + this.login = builder.login; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public String getLogin() { + return login; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserMini casted = (UserMini) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name) + && Objects.equals(login, casted.login); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name, login); + } + + @Override + public String toString() { + return "UserMini{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "login='" + + login + + '\'' + + "}"; + } + + public static class Builder extends UserBase.Builder { + + protected String name; + + protected String login; + + public Builder(String id) { + super(id); + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder login(String login) { + this.login = login; + return this; + } + + @Override + public Builder type(UserBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public UserMini build() { + return new UserMini(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/users/Users.java b/src/main/java/com/box/sdkgen/schemas/users/Users.java new file mode 100644 index 000000000..cf1a59f23 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/users/Users.java @@ -0,0 +1,191 @@ +package com.box.sdkgen.schemas.users; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.userfull.UserFull; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Users extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + @JsonProperty("total_count") + protected Long totalCount; + + protected Long offset; + + protected List order; + + protected List entries; + + public Users() { + super(); + } + + protected Users(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.totalCount = builder.totalCount; + this.offset = builder.offset; + this.order = builder.order; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public Long getTotalCount() { + return totalCount; + } + + public Long getOffset() { + return offset; + } + + public List getOrder() { + return order; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Users casted = (Users) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(totalCount, casted.totalCount) + && Objects.equals(offset, casted.offset) + && Objects.equals(order, casted.order) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, totalCount, offset, order, entries); + } + + @Override + public String toString() { + return "Users{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "totalCount='" + + totalCount + + '\'' + + ", " + + "offset='" + + offset + + '\'' + + ", " + + "order='" + + order + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected Long totalCount; + + protected Long offset; + + protected List order; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder totalCount(Long totalCount) { + this.totalCount = totalCount; + return this; + } + + public Builder offset(Long offset) { + this.offset = offset; + return this; + } + + public Builder order(List order) { + this.order = order; + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public Users build() { + return new Users(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/users/UsersOrderDirectionField.java b/src/main/java/com/box/sdkgen/schemas/users/UsersOrderDirectionField.java new file mode 100644 index 000000000..4f172e906 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/users/UsersOrderDirectionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.users; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UsersOrderDirectionField implements Valuable { + ASC("ASC"), + DESC("DESC"); + + private final String value; + + UsersOrderDirectionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UsersOrderDirectionFieldDeserializer + extends JsonDeserializer> { + + public UsersOrderDirectionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UsersOrderDirectionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UsersOrderDirectionFieldSerializer + extends JsonSerializer> { + + public UsersOrderDirectionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/users/UsersOrderField.java b/src/main/java/com/box/sdkgen/schemas/users/UsersOrderField.java new file mode 100644 index 000000000..225df7868 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/users/UsersOrderField.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.schemas.users; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UsersOrderField extends SerializableObject { + + protected String by; + + @JsonDeserialize(using = UsersOrderDirectionField.UsersOrderDirectionFieldDeserializer.class) + @JsonSerialize(using = UsersOrderDirectionField.UsersOrderDirectionFieldSerializer.class) + protected EnumWrapper direction; + + public UsersOrderField() { + super(); + } + + protected UsersOrderField(Builder builder) { + super(); + this.by = builder.by; + this.direction = builder.direction; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getBy() { + return by; + } + + public EnumWrapper getDirection() { + return direction; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UsersOrderField casted = (UsersOrderField) o; + return Objects.equals(by, casted.by) && Objects.equals(direction, casted.direction); + } + + @Override + public int hashCode() { + return Objects.hash(by, direction); + } + + @Override + public String toString() { + return "UsersOrderField{" + "by='" + by + '\'' + ", " + "direction='" + direction + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String by; + + protected EnumWrapper direction; + + public Builder by(String by) { + this.by = by; + return this; + } + + public Builder direction(UsersOrderDirectionField direction) { + this.direction = new EnumWrapper(direction); + return this; + } + + public Builder direction(EnumWrapper direction) { + this.direction = direction; + return this; + } + + public UsersOrderField build() { + return new UsersOrderField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/archivesv2025r0/ArchivesV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/archivesv2025r0/ArchivesV2025R0.java new file mode 100644 index 000000000..687f6e500 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/archivesv2025r0/ArchivesV2025R0.java @@ -0,0 +1,111 @@ +package com.box.sdkgen.schemas.v2025r0.archivesv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.archivev2025r0.ArchiveV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ArchivesV2025R0 extends SerializableObject { + + protected List entries; + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + public ArchivesV2025R0() { + super(); + } + + protected ArchivesV2025R0(Builder builder) { + super(); + this.entries = builder.entries; + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getEntries() { + return entries; + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ArchivesV2025R0 casted = (ArchivesV2025R0) o; + return Objects.equals(entries, casted.entries) + && Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker); + } + + @Override + public int hashCode() { + return Objects.hash(entries, limit, nextMarker); + } + + @Override + public String toString() { + return "ArchivesV2025R0{" + + "entries='" + + entries + + '\'' + + ", " + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List entries; + + protected Long limit; + + protected String nextMarker; + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public ArchivesV2025R0 build() { + return new ArchivesV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0.java new file mode 100644 index 000000000..da2be4bf2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0.java @@ -0,0 +1,134 @@ +package com.box.sdkgen.schemas.v2025r0.archivev2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ArchiveV2025R0 extends SerializableObject { + + protected final String id; + + @JsonDeserialize(using = ArchiveV2025R0TypeField.ArchiveV2025R0TypeFieldDeserializer.class) + @JsonSerialize(using = ArchiveV2025R0TypeField.ArchiveV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + protected final String name; + + protected final long size; + + public ArchiveV2025R0( + @JsonProperty("id") String id, + @JsonProperty("name") String name, + @JsonProperty("size") long size) { + super(); + this.id = id; + this.name = name; + this.size = size; + this.type = new EnumWrapper(ArchiveV2025R0TypeField.ARCHIVE); + } + + protected ArchiveV2025R0(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.name = builder.name; + this.size = builder.size; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getName() { + return name; + } + + public long getSize() { + return size; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ArchiveV2025R0 casted = (ArchiveV2025R0) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name) + && Objects.equals(size, casted.size); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name, size); + } + + @Override + public String toString() { + return "ArchiveV2025R0{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "size='" + + size + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + protected final String name; + + protected final long size; + + public Builder(String id, String name, long size) { + super(); + this.id = id; + this.name = name; + this.size = size; + this.type = new EnumWrapper(ArchiveV2025R0TypeField.ARCHIVE); + } + + public Builder type(ArchiveV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public ArchiveV2025R0 build() { + return new ArchiveV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0TypeField.java new file mode 100644 index 000000000..a33ec4c2e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.archivev2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ArchiveV2025R0TypeField implements Valuable { + ARCHIVE("archive"); + + private final String value; + + ArchiveV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ArchiveV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public ArchiveV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ArchiveV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ArchiveV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public ArchiveV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/clienterrorv2025r0/ClientErrorV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/clienterrorv2025r0/ClientErrorV2025R0.java new file mode 100644 index 000000000..a444b89a0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/clienterrorv2025r0/ClientErrorV2025R0.java @@ -0,0 +1,207 @@ +package com.box.sdkgen.schemas.v2025r0.clienterrorv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Map; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ClientErrorV2025R0 extends SerializableObject { + + @JsonDeserialize( + using = ClientErrorV2025R0TypeField.ClientErrorV2025R0TypeFieldDeserializer.class) + @JsonSerialize(using = ClientErrorV2025R0TypeField.ClientErrorV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + protected Integer status; + + @JsonDeserialize( + using = ClientErrorV2025R0CodeField.ClientErrorV2025R0CodeFieldDeserializer.class) + @JsonSerialize(using = ClientErrorV2025R0CodeField.ClientErrorV2025R0CodeFieldSerializer.class) + protected EnumWrapper code; + + protected String message; + + @JsonProperty("context_info") + @Nullable + protected Map contextInfo; + + @JsonProperty("help_url") + protected String helpUrl; + + @JsonProperty("request_id") + protected String requestId; + + public ClientErrorV2025R0() { + super(); + } + + protected ClientErrorV2025R0(Builder builder) { + super(); + this.type = builder.type; + this.status = builder.status; + this.code = builder.code; + this.message = builder.message; + this.contextInfo = builder.contextInfo; + this.helpUrl = builder.helpUrl; + this.requestId = builder.requestId; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public Integer getStatus() { + return status; + } + + public EnumWrapper getCode() { + return code; + } + + public String getMessage() { + return message; + } + + public Map getContextInfo() { + return contextInfo; + } + + public String getHelpUrl() { + return helpUrl; + } + + public String getRequestId() { + return requestId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ClientErrorV2025R0 casted = (ClientErrorV2025R0) o; + return Objects.equals(type, casted.type) + && Objects.equals(status, casted.status) + && Objects.equals(code, casted.code) + && Objects.equals(message, casted.message) + && Objects.equals(contextInfo, casted.contextInfo) + && Objects.equals(helpUrl, casted.helpUrl) + && Objects.equals(requestId, casted.requestId); + } + + @Override + public int hashCode() { + return Objects.hash(type, status, code, message, contextInfo, helpUrl, requestId); + } + + @Override + public String toString() { + return "ClientErrorV2025R0{" + + "type='" + + type + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "code='" + + code + + '\'' + + ", " + + "message='" + + message + + '\'' + + ", " + + "contextInfo='" + + contextInfo + + '\'' + + ", " + + "helpUrl='" + + helpUrl + + '\'' + + ", " + + "requestId='" + + requestId + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected Integer status; + + protected EnumWrapper code; + + protected String message; + + protected Map contextInfo; + + protected String helpUrl; + + protected String requestId; + + public Builder type(ClientErrorV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder status(Integer status) { + this.status = status; + return this; + } + + public Builder code(ClientErrorV2025R0CodeField code) { + this.code = new EnumWrapper(code); + return this; + } + + public Builder code(EnumWrapper code) { + this.code = code; + return this; + } + + public Builder message(String message) { + this.message = message; + return this; + } + + public Builder contextInfo(Map contextInfo) { + this.contextInfo = contextInfo; + this.markNullableFieldAsSet("context_info"); + return this; + } + + public Builder helpUrl(String helpUrl) { + this.helpUrl = helpUrl; + return this; + } + + public Builder requestId(String requestId) { + this.requestId = requestId; + return this; + } + + public ClientErrorV2025R0 build() { + return new ClientErrorV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/clienterrorv2025r0/ClientErrorV2025R0CodeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/clienterrorv2025r0/ClientErrorV2025R0CodeField.java new file mode 100644 index 000000000..05d7db7cf --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/clienterrorv2025r0/ClientErrorV2025R0CodeField.java @@ -0,0 +1,78 @@ +package com.box.sdkgen.schemas.v2025r0.clienterrorv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ClientErrorV2025R0CodeField implements Valuable { + CREATED("created"), + ACCEPTED("accepted"), + NO_CONTENT("no_content"), + REDIRECT("redirect"), + NOT_MODIFIED("not_modified"), + BAD_REQUEST("bad_request"), + UNAUTHORIZED("unauthorized"), + FORBIDDEN("forbidden"), + NOT_FOUND("not_found"), + METHOD_NOT_ALLOWED("method_not_allowed"), + CONFLICT("conflict"), + PRECONDITION_FAILED("precondition_failed"), + TOO_MANY_REQUESTS("too_many_requests"), + INTERNAL_SERVER_ERROR("internal_server_error"), + UNAVAILABLE("unavailable"), + ITEM_NAME_INVALID("item_name_invalid"), + INSUFFICIENT_SCOPE("insufficient_scope"); + + private final String value; + + ClientErrorV2025R0CodeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ClientErrorV2025R0CodeFieldDeserializer + extends JsonDeserializer> { + + public ClientErrorV2025R0CodeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ClientErrorV2025R0CodeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ClientErrorV2025R0CodeFieldSerializer + extends JsonSerializer> { + + public ClientErrorV2025R0CodeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/clienterrorv2025r0/ClientErrorV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/clienterrorv2025r0/ClientErrorV2025R0TypeField.java new file mode 100644 index 000000000..b6c9e1e88 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/clienterrorv2025r0/ClientErrorV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.clienterrorv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ClientErrorV2025R0TypeField implements Valuable { + ERROR("error"); + + private final String value; + + ClientErrorV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ClientErrorV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public ClientErrorV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ClientErrorV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ClientErrorV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public ClientErrorV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchbasev2025r0/DocGenBatchBaseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchbasev2025r0/DocGenBatchBaseV2025R0.java new file mode 100644 index 000000000..6770e3f94 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchbasev2025r0/DocGenBatchBaseV2025R0.java @@ -0,0 +1,96 @@ +package com.box.sdkgen.schemas.v2025r0.docgenbatchbasev2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class DocGenBatchBaseV2025R0 extends SerializableObject { + + protected final String id; + + @JsonDeserialize( + using = DocGenBatchBaseV2025R0TypeField.DocGenBatchBaseV2025R0TypeFieldDeserializer.class) + @JsonSerialize( + using = DocGenBatchBaseV2025R0TypeField.DocGenBatchBaseV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + public DocGenBatchBaseV2025R0(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + DocGenBatchBaseV2025R0TypeField.DOCGEN_BATCH); + } + + protected DocGenBatchBaseV2025R0(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocGenBatchBaseV2025R0 casted = (DocGenBatchBaseV2025R0) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "DocGenBatchBaseV2025R0{" + "id='" + id + '\'' + ", " + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + DocGenBatchBaseV2025R0TypeField.DOCGEN_BATCH); + } + + public Builder type(DocGenBatchBaseV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public DocGenBatchBaseV2025R0 build() { + return new DocGenBatchBaseV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchbasev2025r0/DocGenBatchBaseV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchbasev2025r0/DocGenBatchBaseV2025R0TypeField.java new file mode 100644 index 000000000..b798e2d17 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchbasev2025r0/DocGenBatchBaseV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.docgenbatchbasev2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum DocGenBatchBaseV2025R0TypeField implements Valuable { + DOCGEN_BATCH("docgen_batch"); + + private final String value; + + DocGenBatchBaseV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class DocGenBatchBaseV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public DocGenBatchBaseV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(DocGenBatchBaseV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class DocGenBatchBaseV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public DocGenBatchBaseV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0.java new file mode 100644 index 000000000..efcc42a46 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0.java @@ -0,0 +1,173 @@ +package com.box.sdkgen.schemas.v2025r0.docgenbatchcreaterequestv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.docgendocumentgenerationdatav2025r0.DocGenDocumentGenerationDataV2025R0; +import com.box.sdkgen.schemas.v2025r0.filereferencev2025r0.FileReferenceV2025R0; +import com.box.sdkgen.schemas.v2025r0.fileversionbasev2025r0.FileVersionBaseV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class DocGenBatchCreateRequestV2025R0 extends SerializableObject { + + protected final FileReferenceV2025R0 file; + + @JsonProperty("file_version") + protected FileVersionBaseV2025R0 fileVersion; + + @JsonProperty("input_source") + protected final String inputSource; + + @JsonProperty("destination_folder") + protected final DocGenBatchCreateRequestV2025R0DestinationFolderField destinationFolder; + + @JsonProperty("output_type") + protected final String outputType; + + @JsonProperty("document_generation_data") + protected final List documentGenerationData; + + public DocGenBatchCreateRequestV2025R0( + @JsonProperty("file") FileReferenceV2025R0 file, + @JsonProperty("input_source") String inputSource, + @JsonProperty("destination_folder") + DocGenBatchCreateRequestV2025R0DestinationFolderField destinationFolder, + @JsonProperty("output_type") String outputType, + @JsonProperty("document_generation_data") + List documentGenerationData) { + super(); + this.file = file; + this.inputSource = inputSource; + this.destinationFolder = destinationFolder; + this.outputType = outputType; + this.documentGenerationData = documentGenerationData; + } + + protected DocGenBatchCreateRequestV2025R0(Builder builder) { + super(); + this.file = builder.file; + this.fileVersion = builder.fileVersion; + this.inputSource = builder.inputSource; + this.destinationFolder = builder.destinationFolder; + this.outputType = builder.outputType; + this.documentGenerationData = builder.documentGenerationData; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public FileReferenceV2025R0 getFile() { + return file; + } + + public FileVersionBaseV2025R0 getFileVersion() { + return fileVersion; + } + + public String getInputSource() { + return inputSource; + } + + public DocGenBatchCreateRequestV2025R0DestinationFolderField getDestinationFolder() { + return destinationFolder; + } + + public String getOutputType() { + return outputType; + } + + public List getDocumentGenerationData() { + return documentGenerationData; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocGenBatchCreateRequestV2025R0 casted = (DocGenBatchCreateRequestV2025R0) o; + return Objects.equals(file, casted.file) + && Objects.equals(fileVersion, casted.fileVersion) + && Objects.equals(inputSource, casted.inputSource) + && Objects.equals(destinationFolder, casted.destinationFolder) + && Objects.equals(outputType, casted.outputType) + && Objects.equals(documentGenerationData, casted.documentGenerationData); + } + + @Override + public int hashCode() { + return Objects.hash( + file, fileVersion, inputSource, destinationFolder, outputType, documentGenerationData); + } + + @Override + public String toString() { + return "DocGenBatchCreateRequestV2025R0{" + + "file='" + + file + + '\'' + + ", " + + "fileVersion='" + + fileVersion + + '\'' + + ", " + + "inputSource='" + + inputSource + + '\'' + + ", " + + "destinationFolder='" + + destinationFolder + + '\'' + + ", " + + "outputType='" + + outputType + + '\'' + + ", " + + "documentGenerationData='" + + documentGenerationData + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final FileReferenceV2025R0 file; + + protected FileVersionBaseV2025R0 fileVersion; + + protected final String inputSource; + + protected final DocGenBatchCreateRequestV2025R0DestinationFolderField destinationFolder; + + protected final String outputType; + + protected final List documentGenerationData; + + public Builder( + FileReferenceV2025R0 file, + String inputSource, + DocGenBatchCreateRequestV2025R0DestinationFolderField destinationFolder, + String outputType, + List documentGenerationData) { + super(); + this.file = file; + this.inputSource = inputSource; + this.destinationFolder = destinationFolder; + this.outputType = outputType; + this.documentGenerationData = documentGenerationData; + } + + public Builder fileVersion(FileVersionBaseV2025R0 fileVersion) { + this.fileVersion = fileVersion; + return this; + } + + public DocGenBatchCreateRequestV2025R0 build() { + return new DocGenBatchCreateRequestV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0DestinationFolderField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0DestinationFolderField.java new file mode 100644 index 000000000..c30df1c1d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0DestinationFolderField.java @@ -0,0 +1,110 @@ +package com.box.sdkgen.schemas.v2025r0.docgenbatchcreaterequestv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class DocGenBatchCreateRequestV2025R0DestinationFolderField extends SerializableObject { + + @JsonDeserialize( + using = + DocGenBatchCreateRequestV2025R0DestinationFolderTypeField + .DocGenBatchCreateRequestV2025R0DestinationFolderTypeFieldDeserializer.class) + @JsonSerialize( + using = + DocGenBatchCreateRequestV2025R0DestinationFolderTypeField + .DocGenBatchCreateRequestV2025R0DestinationFolderTypeFieldSerializer.class) + protected EnumWrapper type; + + protected final String id; + + public DocGenBatchCreateRequestV2025R0DestinationFolderField(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + DocGenBatchCreateRequestV2025R0DestinationFolderTypeField.FOLDER); + } + + protected DocGenBatchCreateRequestV2025R0DestinationFolderField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocGenBatchCreateRequestV2025R0DestinationFolderField casted = + (DocGenBatchCreateRequestV2025R0DestinationFolderField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "DocGenBatchCreateRequestV2025R0DestinationFolderField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + DocGenBatchCreateRequestV2025R0DestinationFolderTypeField.FOLDER); + } + + public Builder type(DocGenBatchCreateRequestV2025R0DestinationFolderTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type( + EnumWrapper type) { + this.type = type; + return this; + } + + public DocGenBatchCreateRequestV2025R0DestinationFolderField build() { + return new DocGenBatchCreateRequestV2025R0DestinationFolderField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0DestinationFolderTypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0DestinationFolderTypeField.java new file mode 100644 index 000000000..eccd71d29 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0DestinationFolderTypeField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.schemas.v2025r0.docgenbatchcreaterequestv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum DocGenBatchCreateRequestV2025R0DestinationFolderTypeField implements Valuable { + FOLDER("folder"); + + private final String value; + + DocGenBatchCreateRequestV2025R0DestinationFolderTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class DocGenBatchCreateRequestV2025R0DestinationFolderTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public DocGenBatchCreateRequestV2025R0DestinationFolderTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(DocGenBatchCreateRequestV2025R0DestinationFolderTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper(value)); + } + } + + public static class DocGenBatchCreateRequestV2025R0DestinationFolderTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public DocGenBatchCreateRequestV2025R0DestinationFolderTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgendocumentgenerationdatav2025r0/DocGenDocumentGenerationDataV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgendocumentgenerationdatav2025r0/DocGenDocumentGenerationDataV2025R0.java new file mode 100644 index 000000000..70e616f9c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgendocumentgenerationdatav2025r0/DocGenDocumentGenerationDataV2025R0.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.v2025r0.docgendocumentgenerationdatav2025r0; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Map; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class DocGenDocumentGenerationDataV2025R0 extends SerializableObject { + + @JsonProperty("generated_file_name") + protected final String generatedFileName; + + @JsonProperty("user_input") + protected final Map userInput; + + public DocGenDocumentGenerationDataV2025R0( + @JsonProperty("generated_file_name") String generatedFileName, + @JsonProperty("user_input") Map userInput) { + super(); + this.generatedFileName = generatedFileName; + this.userInput = userInput; + } + + public String getGeneratedFileName() { + return generatedFileName; + } + + public Map getUserInput() { + return userInput; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocGenDocumentGenerationDataV2025R0 casted = (DocGenDocumentGenerationDataV2025R0) o; + return Objects.equals(generatedFileName, casted.generatedFileName) + && Objects.equals(userInput, casted.userInput); + } + + @Override + public int hashCode() { + return Objects.hash(generatedFileName, userInput); + } + + @Override + public String toString() { + return "DocGenDocumentGenerationDataV2025R0{" + + "generatedFileName='" + + generatedFileName + + '\'' + + ", " + + "userInput='" + + userInput + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobbasev2025r0/DocGenJobBaseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobbasev2025r0/DocGenJobBaseV2025R0.java new file mode 100644 index 000000000..23f22df42 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobbasev2025r0/DocGenJobBaseV2025R0.java @@ -0,0 +1,94 @@ +package com.box.sdkgen.schemas.v2025r0.docgenjobbasev2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class DocGenJobBaseV2025R0 extends SerializableObject { + + protected final String id; + + @JsonDeserialize( + using = DocGenJobBaseV2025R0TypeField.DocGenJobBaseV2025R0TypeFieldDeserializer.class) + @JsonSerialize( + using = DocGenJobBaseV2025R0TypeField.DocGenJobBaseV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + public DocGenJobBaseV2025R0(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper(DocGenJobBaseV2025R0TypeField.DOCGEN_JOB); + } + + protected DocGenJobBaseV2025R0(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocGenJobBaseV2025R0 casted = (DocGenJobBaseV2025R0) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "DocGenJobBaseV2025R0{" + "id='" + id + '\'' + ", " + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper(DocGenJobBaseV2025R0TypeField.DOCGEN_JOB); + } + + public Builder type(DocGenJobBaseV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public DocGenJobBaseV2025R0 build() { + return new DocGenJobBaseV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobbasev2025r0/DocGenJobBaseV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobbasev2025r0/DocGenJobBaseV2025R0TypeField.java new file mode 100644 index 000000000..df8934561 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobbasev2025r0/DocGenJobBaseV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.docgenjobbasev2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum DocGenJobBaseV2025R0TypeField implements Valuable { + DOCGEN_JOB("docgen_job"); + + private final String value; + + DocGenJobBaseV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class DocGenJobBaseV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public DocGenJobBaseV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(DocGenJobBaseV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class DocGenJobBaseV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public DocGenJobBaseV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobfullv2025r0/DocGenJobFullV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobfullv2025r0/DocGenJobFullV2025R0.java new file mode 100644 index 000000000..528147353 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobfullv2025r0/DocGenJobFullV2025R0.java @@ -0,0 +1,260 @@ +package com.box.sdkgen.schemas.v2025r0.docgenjobfullv2025r0; + +import com.box.sdkgen.schemas.v2025r0.docgenbatchbasev2025r0.DocGenBatchBaseV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgenjobbasev2025r0.DocGenJobBaseV2025R0TypeField; +import com.box.sdkgen.schemas.v2025r0.docgenjobv2025r0.DocGenJobV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgenjobv2025r0.DocGenJobV2025R0StatusField; +import com.box.sdkgen.schemas.v2025r0.enterprisereferencev2025r0.EnterpriseReferenceV2025R0; +import com.box.sdkgen.schemas.v2025r0.filereferencev2025r0.FileReferenceV2025R0; +import com.box.sdkgen.schemas.v2025r0.fileversionbasev2025r0.FileVersionBaseV2025R0; +import com.box.sdkgen.schemas.v2025r0.userbasev2025r0.UserBaseV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class DocGenJobFullV2025R0 extends DocGenJobV2025R0 { + + @JsonProperty("created_at") + protected String createdAt; + + @JsonProperty("created_by") + protected final UserBaseV2025R0 createdBy; + + protected final EnterpriseReferenceV2025R0 enterprise; + + protected final String source; + + public DocGenJobFullV2025R0( + String id, + DocGenBatchBaseV2025R0 batch, + FileReferenceV2025R0 templateFile, + FileVersionBaseV2025R0 templateFileVersion, + DocGenJobV2025R0StatusField status, + String outputType, + UserBaseV2025R0 createdBy, + EnterpriseReferenceV2025R0 enterprise, + String source) { + super(id, batch, templateFile, templateFileVersion, status, outputType); + this.createdBy = createdBy; + this.enterprise = enterprise; + this.source = source; + } + + public DocGenJobFullV2025R0( + @JsonProperty("id") String id, + @JsonProperty("batch") DocGenBatchBaseV2025R0 batch, + @JsonProperty("template_file") FileReferenceV2025R0 templateFile, + @JsonProperty("template_file_version") FileVersionBaseV2025R0 templateFileVersion, + @JsonProperty("status") EnumWrapper status, + @JsonProperty("output_type") String outputType, + @JsonProperty("created_by") UserBaseV2025R0 createdBy, + @JsonProperty("enterprise") EnterpriseReferenceV2025R0 enterprise, + @JsonProperty("source") String source) { + super(id, batch, templateFile, templateFileVersion, status, outputType); + this.createdBy = createdBy; + this.enterprise = enterprise; + this.source = source; + } + + protected DocGenJobFullV2025R0(Builder builder) { + super(builder); + this.createdAt = builder.createdAt; + this.createdBy = builder.createdBy; + this.enterprise = builder.enterprise; + this.source = builder.source; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getCreatedAt() { + return createdAt; + } + + public UserBaseV2025R0 getCreatedBy() { + return createdBy; + } + + public EnterpriseReferenceV2025R0 getEnterprise() { + return enterprise; + } + + public String getSource() { + return source; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocGenJobFullV2025R0 casted = (DocGenJobFullV2025R0) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(batch, casted.batch) + && Objects.equals(templateFile, casted.templateFile) + && Objects.equals(templateFileVersion, casted.templateFileVersion) + && Objects.equals(outputFile, casted.outputFile) + && Objects.equals(outputFileVersion, casted.outputFileVersion) + && Objects.equals(status, casted.status) + && Objects.equals(outputType, casted.outputType) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(enterprise, casted.enterprise) + && Objects.equals(source, casted.source); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + type, + batch, + templateFile, + templateFileVersion, + outputFile, + outputFileVersion, + status, + outputType, + createdAt, + createdBy, + enterprise, + source); + } + + @Override + public String toString() { + return "DocGenJobFullV2025R0{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "batch='" + + batch + + '\'' + + ", " + + "templateFile='" + + templateFile + + '\'' + + ", " + + "templateFileVersion='" + + templateFileVersion + + '\'' + + ", " + + "outputFile='" + + outputFile + + '\'' + + ", " + + "outputFileVersion='" + + outputFileVersion + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "outputType='" + + outputType + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "enterprise='" + + enterprise + + '\'' + + ", " + + "source='" + + source + + '\'' + + "}"; + } + + public static class Builder extends DocGenJobV2025R0.Builder { + + protected String createdAt; + + protected final UserBaseV2025R0 createdBy; + + protected final EnterpriseReferenceV2025R0 enterprise; + + protected final String source; + + public Builder( + String id, + DocGenBatchBaseV2025R0 batch, + FileReferenceV2025R0 templateFile, + FileVersionBaseV2025R0 templateFileVersion, + DocGenJobV2025R0StatusField status, + String outputType, + UserBaseV2025R0 createdBy, + EnterpriseReferenceV2025R0 enterprise, + String source) { + super(id, batch, templateFile, templateFileVersion, status, outputType); + this.createdBy = createdBy; + this.enterprise = enterprise; + this.source = source; + } + + public Builder( + String id, + DocGenBatchBaseV2025R0 batch, + FileReferenceV2025R0 templateFile, + FileVersionBaseV2025R0 templateFileVersion, + EnumWrapper status, + String outputType, + UserBaseV2025R0 createdBy, + EnterpriseReferenceV2025R0 enterprise, + String source) { + super(id, batch, templateFile, templateFileVersion, status, outputType); + this.createdBy = createdBy; + this.enterprise = enterprise; + this.source = source; + } + + public Builder createdAt(String createdAt) { + this.createdAt = createdAt; + return this; + } + + @Override + public Builder type(DocGenJobBaseV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder outputFile(FileReferenceV2025R0 outputFile) { + this.outputFile = outputFile; + return this; + } + + @Override + public Builder outputFileVersion(FileVersionBaseV2025R0 outputFileVersion) { + this.outputFileVersion = outputFileVersion; + return this; + } + + public DocGenJobFullV2025R0 build() { + return new DocGenJobFullV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobsfullv2025r0/DocGenJobsFullV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobsfullv2025r0/DocGenJobsFullV2025R0.java new file mode 100644 index 000000000..a5ff1254f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobsfullv2025r0/DocGenJobsFullV2025R0.java @@ -0,0 +1,133 @@ +package com.box.sdkgen.schemas.v2025r0.docgenjobsfullv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.docgenjobfullv2025r0.DocGenJobFullV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class DocGenJobsFullV2025R0 extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + protected List entries; + + public DocGenJobsFullV2025R0() { + super(); + } + + protected DocGenJobsFullV2025R0(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocGenJobsFullV2025R0 casted = (DocGenJobsFullV2025R0) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "DocGenJobsFullV2025R0{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public DocGenJobsFullV2025R0 build() { + return new DocGenJobsFullV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobsv2025r0/DocGenJobsV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobsv2025r0/DocGenJobsV2025R0.java new file mode 100644 index 000000000..bcabc031d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobsv2025r0/DocGenJobsV2025R0.java @@ -0,0 +1,133 @@ +package com.box.sdkgen.schemas.v2025r0.docgenjobsv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.docgenjobv2025r0.DocGenJobV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class DocGenJobsV2025R0 extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + protected List entries; + + public DocGenJobsV2025R0() { + super(); + } + + protected DocGenJobsV2025R0(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocGenJobsV2025R0 casted = (DocGenJobsV2025R0) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "DocGenJobsV2025R0{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public DocGenJobsV2025R0 build() { + return new DocGenJobsV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0.java new file mode 100644 index 000000000..54ccb06c1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0.java @@ -0,0 +1,257 @@ +package com.box.sdkgen.schemas.v2025r0.docgenjobv2025r0; + +import com.box.sdkgen.schemas.v2025r0.docgenbatchbasev2025r0.DocGenBatchBaseV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgenjobbasev2025r0.DocGenJobBaseV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgenjobbasev2025r0.DocGenJobBaseV2025R0TypeField; +import com.box.sdkgen.schemas.v2025r0.filereferencev2025r0.FileReferenceV2025R0; +import com.box.sdkgen.schemas.v2025r0.fileversionbasev2025r0.FileVersionBaseV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class DocGenJobV2025R0 extends DocGenJobBaseV2025R0 { + + protected final DocGenBatchBaseV2025R0 batch; + + @JsonProperty("template_file") + protected final FileReferenceV2025R0 templateFile; + + @JsonProperty("template_file_version") + protected final FileVersionBaseV2025R0 templateFileVersion; + + @JsonProperty("output_file") + protected FileReferenceV2025R0 outputFile; + + @JsonProperty("output_file_version") + protected FileVersionBaseV2025R0 outputFileVersion; + + @JsonDeserialize( + using = DocGenJobV2025R0StatusField.DocGenJobV2025R0StatusFieldDeserializer.class) + @JsonSerialize(using = DocGenJobV2025R0StatusField.DocGenJobV2025R0StatusFieldSerializer.class) + protected final EnumWrapper status; + + @JsonProperty("output_type") + protected final String outputType; + + public DocGenJobV2025R0( + String id, + DocGenBatchBaseV2025R0 batch, + FileReferenceV2025R0 templateFile, + FileVersionBaseV2025R0 templateFileVersion, + DocGenJobV2025R0StatusField status, + String outputType) { + super(id); + this.batch = batch; + this.templateFile = templateFile; + this.templateFileVersion = templateFileVersion; + this.status = new EnumWrapper(status); + this.outputType = outputType; + } + + public DocGenJobV2025R0( + @JsonProperty("id") String id, + @JsonProperty("batch") DocGenBatchBaseV2025R0 batch, + @JsonProperty("template_file") FileReferenceV2025R0 templateFile, + @JsonProperty("template_file_version") FileVersionBaseV2025R0 templateFileVersion, + @JsonProperty("status") EnumWrapper status, + @JsonProperty("output_type") String outputType) { + super(id); + this.batch = batch; + this.templateFile = templateFile; + this.templateFileVersion = templateFileVersion; + this.status = status; + this.outputType = outputType; + } + + protected DocGenJobV2025R0(Builder builder) { + super(builder); + this.batch = builder.batch; + this.templateFile = builder.templateFile; + this.templateFileVersion = builder.templateFileVersion; + this.outputFile = builder.outputFile; + this.outputFileVersion = builder.outputFileVersion; + this.status = builder.status; + this.outputType = builder.outputType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public DocGenBatchBaseV2025R0 getBatch() { + return batch; + } + + public FileReferenceV2025R0 getTemplateFile() { + return templateFile; + } + + public FileVersionBaseV2025R0 getTemplateFileVersion() { + return templateFileVersion; + } + + public FileReferenceV2025R0 getOutputFile() { + return outputFile; + } + + public FileVersionBaseV2025R0 getOutputFileVersion() { + return outputFileVersion; + } + + public EnumWrapper getStatus() { + return status; + } + + public String getOutputType() { + return outputType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocGenJobV2025R0 casted = (DocGenJobV2025R0) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(batch, casted.batch) + && Objects.equals(templateFile, casted.templateFile) + && Objects.equals(templateFileVersion, casted.templateFileVersion) + && Objects.equals(outputFile, casted.outputFile) + && Objects.equals(outputFileVersion, casted.outputFileVersion) + && Objects.equals(status, casted.status) + && Objects.equals(outputType, casted.outputType); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + type, + batch, + templateFile, + templateFileVersion, + outputFile, + outputFileVersion, + status, + outputType); + } + + @Override + public String toString() { + return "DocGenJobV2025R0{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "batch='" + + batch + + '\'' + + ", " + + "templateFile='" + + templateFile + + '\'' + + ", " + + "templateFileVersion='" + + templateFileVersion + + '\'' + + ", " + + "outputFile='" + + outputFile + + '\'' + + ", " + + "outputFileVersion='" + + outputFileVersion + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "outputType='" + + outputType + + '\'' + + "}"; + } + + public static class Builder extends DocGenJobBaseV2025R0.Builder { + + protected final DocGenBatchBaseV2025R0 batch; + + protected final FileReferenceV2025R0 templateFile; + + protected final FileVersionBaseV2025R0 templateFileVersion; + + protected FileReferenceV2025R0 outputFile; + + protected FileVersionBaseV2025R0 outputFileVersion; + + protected final EnumWrapper status; + + protected final String outputType; + + public Builder( + String id, + DocGenBatchBaseV2025R0 batch, + FileReferenceV2025R0 templateFile, + FileVersionBaseV2025R0 templateFileVersion, + DocGenJobV2025R0StatusField status, + String outputType) { + super(id); + this.batch = batch; + this.templateFile = templateFile; + this.templateFileVersion = templateFileVersion; + this.status = new EnumWrapper(status); + this.outputType = outputType; + } + + public Builder( + String id, + DocGenBatchBaseV2025R0 batch, + FileReferenceV2025R0 templateFile, + FileVersionBaseV2025R0 templateFileVersion, + EnumWrapper status, + String outputType) { + super(id); + this.batch = batch; + this.templateFile = templateFile; + this.templateFileVersion = templateFileVersion; + this.status = status; + this.outputType = outputType; + } + + public Builder outputFile(FileReferenceV2025R0 outputFile) { + this.outputFile = outputFile; + return this; + } + + public Builder outputFileVersion(FileVersionBaseV2025R0 outputFileVersion) { + this.outputFileVersion = outputFileVersion; + return this; + } + + @Override + public Builder type(DocGenJobBaseV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public DocGenJobV2025R0 build() { + return new DocGenJobV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0StatusField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0StatusField.java new file mode 100644 index 000000000..13be2c01e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0StatusField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.schemas.v2025r0.docgenjobv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum DocGenJobV2025R0StatusField implements Valuable { + SUBMITTED("submitted"), + COMPLETED("completed"), + FAILED("failed"), + COMPLETED_WITH_ERROR("completed_with_error"), + PENDING("pending"); + + private final String value; + + DocGenJobV2025R0StatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class DocGenJobV2025R0StatusFieldDeserializer + extends JsonDeserializer> { + + public DocGenJobV2025R0StatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(DocGenJobV2025R0StatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class DocGenJobV2025R0StatusFieldSerializer + extends JsonSerializer> { + + public DocGenJobV2025R0StatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagsprocessingmessagev2025r0/DocGenTagsProcessingMessageV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagsprocessingmessagev2025r0/DocGenTagsProcessingMessageV2025R0.java new file mode 100644 index 000000000..60ef7be99 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagsprocessingmessagev2025r0/DocGenTagsProcessingMessageV2025R0.java @@ -0,0 +1,43 @@ +package com.box.sdkgen.schemas.v2025r0.docgentagsprocessingmessagev2025r0; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class DocGenTagsProcessingMessageV2025R0 extends SerializableObject { + + protected final String message; + + public DocGenTagsProcessingMessageV2025R0(@JsonProperty("message") String message) { + super(); + this.message = message; + } + + public String getMessage() { + return message; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocGenTagsProcessingMessageV2025R0 casted = (DocGenTagsProcessingMessageV2025R0) o; + return Objects.equals(message, casted.message); + } + + @Override + public int hashCode() { + return Objects.hash(message); + } + + @Override + public String toString() { + return "DocGenTagsProcessingMessageV2025R0{" + "message='" + message + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagsv2025r0/DocGenTagsV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagsv2025r0/DocGenTagsV2025R0.java new file mode 100644 index 000000000..3a9b6c564 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagsv2025r0/DocGenTagsV2025R0.java @@ -0,0 +1,133 @@ +package com.box.sdkgen.schemas.v2025r0.docgentagsv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.docgentagv2025r0.DocGenTagV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class DocGenTagsV2025R0 extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + protected List entries; + + public DocGenTagsV2025R0() { + super(); + } + + protected DocGenTagsV2025R0(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocGenTagsV2025R0 casted = (DocGenTagsV2025R0) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "DocGenTagsV2025R0{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public DocGenTagsV2025R0 build() { + return new DocGenTagsV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagv2025r0/DocGenTagV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagv2025r0/DocGenTagV2025R0.java new file mode 100644 index 000000000..75e6fb9ae --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagv2025r0/DocGenTagV2025R0.java @@ -0,0 +1,92 @@ +package com.box.sdkgen.schemas.v2025r0.docgentagv2025r0; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class DocGenTagV2025R0 extends SerializableObject { + + @JsonProperty("tag_content") + protected final String tagContent; + + @JsonDeserialize( + using = DocGenTagV2025R0TagTypeField.DocGenTagV2025R0TagTypeFieldDeserializer.class) + @JsonSerialize(using = DocGenTagV2025R0TagTypeField.DocGenTagV2025R0TagTypeFieldSerializer.class) + @JsonProperty("tag_type") + protected final EnumWrapper tagType; + + @JsonProperty("json_paths") + protected final List jsonPaths; + + public DocGenTagV2025R0( + String tagContent, DocGenTagV2025R0TagTypeField tagType, List jsonPaths) { + super(); + this.tagContent = tagContent; + this.tagType = new EnumWrapper(tagType); + this.jsonPaths = jsonPaths; + } + + public DocGenTagV2025R0( + @JsonProperty("tag_content") String tagContent, + @JsonProperty("tag_type") EnumWrapper tagType, + @JsonProperty("json_paths") List jsonPaths) { + super(); + this.tagContent = tagContent; + this.tagType = tagType; + this.jsonPaths = jsonPaths; + } + + public String getTagContent() { + return tagContent; + } + + public EnumWrapper getTagType() { + return tagType; + } + + public List getJsonPaths() { + return jsonPaths; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocGenTagV2025R0 casted = (DocGenTagV2025R0) o; + return Objects.equals(tagContent, casted.tagContent) + && Objects.equals(tagType, casted.tagType) + && Objects.equals(jsonPaths, casted.jsonPaths); + } + + @Override + public int hashCode() { + return Objects.hash(tagContent, tagType, jsonPaths); + } + + @Override + public String toString() { + return "DocGenTagV2025R0{" + + "tagContent='" + + tagContent + + '\'' + + ", " + + "tagType='" + + tagType + + '\'' + + ", " + + "jsonPaths='" + + jsonPaths + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagv2025r0/DocGenTagV2025R0TagTypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagv2025r0/DocGenTagV2025R0TagTypeField.java new file mode 100644 index 000000000..97c33e7f2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagv2025r0/DocGenTagV2025R0TagTypeField.java @@ -0,0 +1,67 @@ +package com.box.sdkgen.schemas.v2025r0.docgentagv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum DocGenTagV2025R0TagTypeField implements Valuable { + TEXT("text"), + ARITHMETIC("arithmetic"), + CONDITIONAL("conditional"), + FOR_LOOP("for-loop"), + TABLE_LOOP("table-loop"), + IMAGE("image"); + + private final String value; + + DocGenTagV2025R0TagTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class DocGenTagV2025R0TagTypeFieldDeserializer + extends JsonDeserializer> { + + public DocGenTagV2025R0TagTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(DocGenTagV2025R0TagTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class DocGenTagV2025R0TagTypeFieldSerializer + extends JsonSerializer> { + + public DocGenTagV2025R0TagTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatebasev2025r0/DocGenTemplateBaseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatebasev2025r0/DocGenTemplateBaseV2025R0.java new file mode 100644 index 000000000..771b81217 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatebasev2025r0/DocGenTemplateBaseV2025R0.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.v2025r0.docgentemplatebasev2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.filereferencev2025r0.FileReferenceV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class DocGenTemplateBaseV2025R0 extends SerializableObject { + + protected FileReferenceV2025R0 file; + + public DocGenTemplateBaseV2025R0() { + super(); + } + + protected DocGenTemplateBaseV2025R0(Builder builder) { + super(); + this.file = builder.file; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public FileReferenceV2025R0 getFile() { + return file; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocGenTemplateBaseV2025R0 casted = (DocGenTemplateBaseV2025R0) o; + return Objects.equals(file, casted.file); + } + + @Override + public int hashCode() { + return Objects.hash(file); + } + + @Override + public String toString() { + return "DocGenTemplateBaseV2025R0{" + "file='" + file + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected FileReferenceV2025R0 file; + + public Builder file(FileReferenceV2025R0 file) { + this.file = file; + return this; + } + + public DocGenTemplateBaseV2025R0 build() { + return new DocGenTemplateBaseV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatecreaterequestv2025r0/DocGenTemplateCreateRequestV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatecreaterequestv2025r0/DocGenTemplateCreateRequestV2025R0.java new file mode 100644 index 000000000..9e53813c8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatecreaterequestv2025r0/DocGenTemplateCreateRequestV2025R0.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.schemas.v2025r0.docgentemplatecreaterequestv2025r0; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.filereferencev2025r0.FileReferenceV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class DocGenTemplateCreateRequestV2025R0 extends SerializableObject { + + protected final FileReferenceV2025R0 file; + + public DocGenTemplateCreateRequestV2025R0(@JsonProperty("file") FileReferenceV2025R0 file) { + super(); + this.file = file; + } + + public FileReferenceV2025R0 getFile() { + return file; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocGenTemplateCreateRequestV2025R0 casted = (DocGenTemplateCreateRequestV2025R0) o; + return Objects.equals(file, casted.file); + } + + @Override + public int hashCode() { + return Objects.hash(file); + } + + @Override + public String toString() { + return "DocGenTemplateCreateRequestV2025R0{" + "file='" + file + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatesv2025r0/DocGenTemplatesV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatesv2025r0/DocGenTemplatesV2025R0.java new file mode 100644 index 000000000..c77ac9c1f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatesv2025r0/DocGenTemplatesV2025R0.java @@ -0,0 +1,133 @@ +package com.box.sdkgen.schemas.v2025r0.docgentemplatesv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.docgentemplatev2025r0.DocGenTemplateV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class DocGenTemplatesV2025R0 extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + protected List entries; + + public DocGenTemplatesV2025R0() { + super(); + } + + protected DocGenTemplatesV2025R0(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocGenTemplatesV2025R0 casted = (DocGenTemplatesV2025R0) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "DocGenTemplatesV2025R0{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public DocGenTemplatesV2025R0 build() { + return new DocGenTemplatesV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatev2025r0/DocGenTemplateV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatev2025r0/DocGenTemplateV2025R0.java new file mode 100644 index 000000000..c5146d11d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatev2025r0/DocGenTemplateV2025R0.java @@ -0,0 +1,81 @@ +package com.box.sdkgen.schemas.v2025r0.docgentemplatev2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.schemas.v2025r0.docgentemplatebasev2025r0.DocGenTemplateBaseV2025R0; +import com.box.sdkgen.schemas.v2025r0.filereferencev2025r0.FileReferenceV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class DocGenTemplateV2025R0 extends DocGenTemplateBaseV2025R0 { + + @JsonProperty("file_name") + @Nullable + protected String fileName; + + public DocGenTemplateV2025R0() { + super(); + } + + protected DocGenTemplateV2025R0(Builder builder) { + super(builder); + this.fileName = builder.fileName; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getFileName() { + return fileName; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocGenTemplateV2025R0 casted = (DocGenTemplateV2025R0) o; + return Objects.equals(file, casted.file) && Objects.equals(fileName, casted.fileName); + } + + @Override + public int hashCode() { + return Objects.hash(file, fileName); + } + + @Override + public String toString() { + return "DocGenTemplateV2025R0{" + + "file='" + + file + + '\'' + + ", " + + "fileName='" + + fileName + + '\'' + + "}"; + } + + public static class Builder extends DocGenTemplateBaseV2025R0.Builder { + + protected String fileName; + + public Builder fileName(String fileName) { + this.fileName = fileName; + this.markNullableFieldAsSet("file_name"); + return this; + } + + @Override + public Builder file(FileReferenceV2025R0 file) { + this.file = file; + return this; + } + + public DocGenTemplateV2025R0 build() { + return new DocGenTemplateV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisereferencev2025r0/EnterpriseReferenceV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisereferencev2025r0/EnterpriseReferenceV2025R0.java new file mode 100644 index 000000000..79f8b5921 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisereferencev2025r0/EnterpriseReferenceV2025R0.java @@ -0,0 +1,90 @@ +package com.box.sdkgen.schemas.v2025r0.enterprisereferencev2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class EnterpriseReferenceV2025R0 extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = + EnterpriseReferenceV2025R0TypeField.EnterpriseReferenceV2025R0TypeFieldDeserializer.class) + @JsonSerialize( + using = + EnterpriseReferenceV2025R0TypeField.EnterpriseReferenceV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + public EnterpriseReferenceV2025R0() { + super(); + } + + protected EnterpriseReferenceV2025R0(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseReferenceV2025R0 casted = (EnterpriseReferenceV2025R0) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "EnterpriseReferenceV2025R0{" + "id='" + id + '\'' + ", " + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(EnterpriseReferenceV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public EnterpriseReferenceV2025R0 build() { + return new EnterpriseReferenceV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisereferencev2025r0/EnterpriseReferenceV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisereferencev2025r0/EnterpriseReferenceV2025R0TypeField.java new file mode 100644 index 000000000..4721cb4d8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisereferencev2025r0/EnterpriseReferenceV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.enterprisereferencev2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum EnterpriseReferenceV2025R0TypeField implements Valuable { + ENTERPRISE("enterprise"); + + private final String value; + + EnterpriseReferenceV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class EnterpriseReferenceV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public EnterpriseReferenceV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(EnterpriseReferenceV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class EnterpriseReferenceV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public EnterpriseReferenceV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/filereferenceorfolderreferenceorweblinkreferencev2025r0/FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/filereferenceorfolderreferenceorweblinkreferencev2025r0/FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0.java new file mode 100644 index 000000000..bd3a74912 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/filereferenceorfolderreferenceorweblinkreferencev2025r0/FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0.java @@ -0,0 +1,112 @@ +package com.box.sdkgen.schemas.v2025r0.filereferenceorfolderreferenceorweblinkreferencev2025r0; + +import com.box.sdkgen.internal.OneOfThree; +import com.box.sdkgen.schemas.v2025r0.filereferencev2025r0.FileReferenceV2025R0; +import com.box.sdkgen.schemas.v2025r0.folderreferencev2025r0.FolderReferenceV2025R0; +import com.box.sdkgen.schemas.v2025r0.weblinkreferencev2025r0.WeblinkReferenceV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize( + using = + FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0 + .FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0Deserializer.class) +@JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) +public class FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0 + extends OneOfThree { + + protected final String type; + + protected final String id; + + public FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0( + FileReferenceV2025R0 fileReferenceV2025R0) { + super(fileReferenceV2025R0, null, null); + this.type = EnumWrapper.convertToString(fileReferenceV2025R0.getType()); + this.id = fileReferenceV2025R0.getId(); + } + + public FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0( + FolderReferenceV2025R0 folderReferenceV2025R0) { + super(null, folderReferenceV2025R0, null); + this.type = EnumWrapper.convertToString(folderReferenceV2025R0.getType()); + this.id = folderReferenceV2025R0.getId(); + } + + public FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0( + WeblinkReferenceV2025R0 weblinkReferenceV2025R0) { + super(null, null, weblinkReferenceV2025R0); + this.type = EnumWrapper.convertToString(weblinkReferenceV2025R0.getType()); + this.id = weblinkReferenceV2025R0.getId(); + } + + public boolean isFileReferenceV2025R0() { + return value0 != null; + } + + public FileReferenceV2025R0 getFileReferenceV2025R0() { + return value0; + } + + public boolean isFolderReferenceV2025R0() { + return value1 != null; + } + + public FolderReferenceV2025R0 getFolderReferenceV2025R0() { + return value1; + } + + public boolean isWeblinkReferenceV2025R0() { + return value2 != null; + } + + public WeblinkReferenceV2025R0 getWeblinkReferenceV2025R0() { + return value2; + } + + public String getType() { + return type; + } + + public String getId() { + return id; + } + + static class FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0Deserializer + extends JsonDeserializer { + + public FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0Deserializer() { + super(); + } + + @Override + public FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0 deserialize( + JsonParser jp, DeserializationContext ctxt) throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "file": + return new FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0( + JsonManager.deserialize(node, FileReferenceV2025R0.class)); + case "folder": + return new FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0( + JsonManager.deserialize(node, FolderReferenceV2025R0.class)); + case "weblink": + return new FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0( + JsonManager.deserialize(node, WeblinkReferenceV2025R0.class)); + } + } + throw new JsonMappingException( + jp, "Unable to deserialize FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/filereferencev2025r0/FileReferenceV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/filereferencev2025r0/FileReferenceV2025R0.java new file mode 100644 index 000000000..51808da23 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/filereferencev2025r0/FileReferenceV2025R0.java @@ -0,0 +1,93 @@ +package com.box.sdkgen.schemas.v2025r0.filereferencev2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileReferenceV2025R0 extends SerializableObject { + + @JsonDeserialize( + using = FileReferenceV2025R0TypeField.FileReferenceV2025R0TypeFieldDeserializer.class) + @JsonSerialize( + using = FileReferenceV2025R0TypeField.FileReferenceV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + protected final String id; + + public FileReferenceV2025R0(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = new EnumWrapper(FileReferenceV2025R0TypeField.FILE); + } + + protected FileReferenceV2025R0(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileReferenceV2025R0 casted = (FileReferenceV2025R0) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "FileReferenceV2025R0{" + "type='" + type + '\'' + ", " + "id='" + id + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper(FileReferenceV2025R0TypeField.FILE); + } + + public Builder type(FileReferenceV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public FileReferenceV2025R0 build() { + return new FileReferenceV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/filereferencev2025r0/FileReferenceV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/filereferencev2025r0/FileReferenceV2025R0TypeField.java new file mode 100644 index 000000000..dbc60d679 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/filereferencev2025r0/FileReferenceV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.filereferencev2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FileReferenceV2025R0TypeField implements Valuable { + FILE("file"); + + private final String value; + + FileReferenceV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FileReferenceV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public FileReferenceV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FileReferenceV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FileReferenceV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public FileReferenceV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/fileversionbasev2025r0/FileVersionBaseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/fileversionbasev2025r0/FileVersionBaseV2025R0.java new file mode 100644 index 000000000..a80f6fe14 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/fileversionbasev2025r0/FileVersionBaseV2025R0.java @@ -0,0 +1,96 @@ +package com.box.sdkgen.schemas.v2025r0.fileversionbasev2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FileVersionBaseV2025R0 extends SerializableObject { + + protected final String id; + + @JsonDeserialize( + using = FileVersionBaseV2025R0TypeField.FileVersionBaseV2025R0TypeFieldDeserializer.class) + @JsonSerialize( + using = FileVersionBaseV2025R0TypeField.FileVersionBaseV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + public FileVersionBaseV2025R0(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + FileVersionBaseV2025R0TypeField.FILE_VERSION); + } + + protected FileVersionBaseV2025R0(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileVersionBaseV2025R0 casted = (FileVersionBaseV2025R0) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "FileVersionBaseV2025R0{" + "id='" + id + '\'' + ", " + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + FileVersionBaseV2025R0TypeField.FILE_VERSION); + } + + public Builder type(FileVersionBaseV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public FileVersionBaseV2025R0 build() { + return new FileVersionBaseV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/fileversionbasev2025r0/FileVersionBaseV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/fileversionbasev2025r0/FileVersionBaseV2025R0TypeField.java new file mode 100644 index 000000000..d943912cc --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/fileversionbasev2025r0/FileVersionBaseV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.fileversionbasev2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FileVersionBaseV2025R0TypeField implements Valuable { + FILE_VERSION("file_version"); + + private final String value; + + FileVersionBaseV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FileVersionBaseV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public FileVersionBaseV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FileVersionBaseV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FileVersionBaseV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public FileVersionBaseV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/folderreferencev2025r0/FolderReferenceV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/folderreferencev2025r0/FolderReferenceV2025R0.java new file mode 100644 index 000000000..0065d51ca --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/folderreferencev2025r0/FolderReferenceV2025R0.java @@ -0,0 +1,94 @@ +package com.box.sdkgen.schemas.v2025r0.folderreferencev2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class FolderReferenceV2025R0 extends SerializableObject { + + @JsonDeserialize( + using = FolderReferenceV2025R0TypeField.FolderReferenceV2025R0TypeFieldDeserializer.class) + @JsonSerialize( + using = FolderReferenceV2025R0TypeField.FolderReferenceV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + protected final String id; + + public FolderReferenceV2025R0(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper(FolderReferenceV2025R0TypeField.FOLDER); + } + + protected FolderReferenceV2025R0(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FolderReferenceV2025R0 casted = (FolderReferenceV2025R0) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "FolderReferenceV2025R0{" + "type='" + type + '\'' + ", " + "id='" + id + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper(FolderReferenceV2025R0TypeField.FOLDER); + } + + public Builder type(FolderReferenceV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public FolderReferenceV2025R0 build() { + return new FolderReferenceV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/folderreferencev2025r0/FolderReferenceV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/folderreferencev2025r0/FolderReferenceV2025R0TypeField.java new file mode 100644 index 000000000..5b696c938 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/folderreferencev2025r0/FolderReferenceV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.folderreferencev2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FolderReferenceV2025R0TypeField implements Valuable { + FOLDER("folder"); + + private final String value; + + FolderReferenceV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class FolderReferenceV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public FolderReferenceV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FolderReferenceV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FolderReferenceV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public FolderReferenceV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/groupbasev2025r0/GroupBaseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/groupbasev2025r0/GroupBaseV2025R0.java new file mode 100644 index 000000000..2b7e4a77c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/groupbasev2025r0/GroupBaseV2025R0.java @@ -0,0 +1,90 @@ +package com.box.sdkgen.schemas.v2025r0.groupbasev2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class GroupBaseV2025R0 extends SerializableObject { + + protected final String id; + + @JsonDeserialize(using = GroupBaseV2025R0TypeField.GroupBaseV2025R0TypeFieldDeserializer.class) + @JsonSerialize(using = GroupBaseV2025R0TypeField.GroupBaseV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + public GroupBaseV2025R0(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = new EnumWrapper(GroupBaseV2025R0TypeField.GROUP); + } + + protected GroupBaseV2025R0(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GroupBaseV2025R0 casted = (GroupBaseV2025R0) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "GroupBaseV2025R0{" + "id='" + id + '\'' + ", " + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + public Builder(String id) { + super(); + this.id = id; + this.type = new EnumWrapper(GroupBaseV2025R0TypeField.GROUP); + } + + public Builder type(GroupBaseV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public GroupBaseV2025R0 build() { + return new GroupBaseV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/groupbasev2025r0/GroupBaseV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/groupbasev2025r0/GroupBaseV2025R0TypeField.java new file mode 100644 index 000000000..18687c8fa --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/groupbasev2025r0/GroupBaseV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.groupbasev2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GroupBaseV2025R0TypeField implements Valuable { + GROUP("group"); + + private final String value; + + GroupBaseV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GroupBaseV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public GroupBaseV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GroupBaseV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GroupBaseV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public GroupBaseV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/groupminiv2025r0/GroupMiniV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/groupminiv2025r0/GroupMiniV2025R0.java new file mode 100644 index 000000000..e364d6fea --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/groupminiv2025r0/GroupMiniV2025R0.java @@ -0,0 +1,125 @@ +package com.box.sdkgen.schemas.v2025r0.groupminiv2025r0; + +import com.box.sdkgen.schemas.v2025r0.groupbasev2025r0.GroupBaseV2025R0; +import com.box.sdkgen.schemas.v2025r0.groupbasev2025r0.GroupBaseV2025R0TypeField; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class GroupMiniV2025R0 extends GroupBaseV2025R0 { + + protected String name; + + @JsonDeserialize( + using = GroupMiniV2025R0GroupTypeField.GroupMiniV2025R0GroupTypeFieldDeserializer.class) + @JsonSerialize( + using = GroupMiniV2025R0GroupTypeField.GroupMiniV2025R0GroupTypeFieldSerializer.class) + @JsonProperty("group_type") + protected EnumWrapper groupType; + + public GroupMiniV2025R0(@JsonProperty("id") String id) { + super(id); + } + + protected GroupMiniV2025R0(Builder builder) { + super(builder); + this.name = builder.name; + this.groupType = builder.groupType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public EnumWrapper getGroupType() { + return groupType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GroupMiniV2025R0 casted = (GroupMiniV2025R0) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name) + && Objects.equals(groupType, casted.groupType); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name, groupType); + } + + @Override + public String toString() { + return "GroupMiniV2025R0{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "groupType='" + + groupType + + '\'' + + "}"; + } + + public static class Builder extends GroupBaseV2025R0.Builder { + + protected String name; + + protected EnumWrapper groupType; + + public Builder(String id) { + super(id); + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder groupType(GroupMiniV2025R0GroupTypeField groupType) { + this.groupType = new EnumWrapper(groupType); + return this; + } + + public Builder groupType(EnumWrapper groupType) { + this.groupType = groupType; + return this; + } + + @Override + public Builder type(GroupBaseV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public GroupMiniV2025R0 build() { + return new GroupMiniV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/groupminiv2025r0/GroupMiniV2025R0GroupTypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/groupminiv2025r0/GroupMiniV2025R0GroupTypeField.java new file mode 100644 index 000000000..f65cfe8cc --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/groupminiv2025r0/GroupMiniV2025R0GroupTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.v2025r0.groupminiv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GroupMiniV2025R0GroupTypeField implements Valuable { + MANAGED_GROUP("managed_group"), + ALL_USERS_GROUP("all_users_group"); + + private final String value; + + GroupMiniV2025R0GroupTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GroupMiniV2025R0GroupTypeFieldDeserializer + extends JsonDeserializer> { + + public GroupMiniV2025R0GroupTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GroupMiniV2025R0GroupTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GroupMiniV2025R0GroupTypeFieldSerializer + extends JsonSerializer> { + + public GroupMiniV2025R0GroupTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubaccessgranteev2025r0/HubAccessGranteeV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubaccessgranteev2025r0/HubAccessGranteeV2025R0.java new file mode 100644 index 000000000..4d03565d2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubaccessgranteev2025r0/HubAccessGranteeV2025R0.java @@ -0,0 +1,95 @@ +package com.box.sdkgen.schemas.v2025r0.hubaccessgranteev2025r0; + +import com.box.sdkgen.internal.OneOfTwo; +import com.box.sdkgen.schemas.v2025r0.groupminiv2025r0.GroupMiniV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubcollaborationuserv2025r0.HubCollaborationUserV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize(using = HubAccessGranteeV2025R0.HubAccessGranteeV2025R0Deserializer.class) +@JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) +public class HubAccessGranteeV2025R0 + extends OneOfTwo { + + protected final String name; + + protected final String id; + + protected final String type; + + public HubAccessGranteeV2025R0(HubCollaborationUserV2025R0 hubCollaborationUserV2025R0) { + super(hubCollaborationUserV2025R0, null); + this.name = hubCollaborationUserV2025R0.getName(); + this.id = hubCollaborationUserV2025R0.getId(); + this.type = EnumWrapper.convertToString(hubCollaborationUserV2025R0.getType()); + } + + public HubAccessGranteeV2025R0(GroupMiniV2025R0 groupMiniV2025R0) { + super(null, groupMiniV2025R0); + this.name = groupMiniV2025R0.getName(); + this.id = groupMiniV2025R0.getId(); + this.type = EnumWrapper.convertToString(groupMiniV2025R0.getType()); + } + + public boolean isHubCollaborationUserV2025R0() { + return value0 != null; + } + + public HubCollaborationUserV2025R0 getHubCollaborationUserV2025R0() { + return value0; + } + + public boolean isGroupMiniV2025R0() { + return value1 != null; + } + + public GroupMiniV2025R0 getGroupMiniV2025R0() { + return value1; + } + + public String getName() { + return name; + } + + public String getId() { + return id; + } + + public String getType() { + return type; + } + + static class HubAccessGranteeV2025R0Deserializer + extends JsonDeserializer { + + public HubAccessGranteeV2025R0Deserializer() { + super(); + } + + @Override + public HubAccessGranteeV2025R0 deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "user": + return new HubAccessGranteeV2025R0( + JsonManager.deserialize(node, HubCollaborationUserV2025R0.class)); + case "group": + return new HubAccessGranteeV2025R0( + JsonManager.deserialize(node, GroupMiniV2025R0.class)); + } + } + throw new JsonMappingException(jp, "Unable to deserialize HubAccessGranteeV2025R0"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubactionv2025r0/HubActionV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubactionv2025r0/HubActionV2025R0.java new file mode 100644 index 000000000..ec5657659 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubactionv2025r0/HubActionV2025R0.java @@ -0,0 +1,61 @@ +package com.box.sdkgen.schemas.v2025r0.hubactionv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum HubActionV2025R0 implements Valuable { + ADD("add"), + REMOVE("remove"); + + private final String value; + + HubActionV2025R0(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class HubActionV2025R0Deserializer + extends JsonDeserializer> { + + public HubActionV2025R0Deserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(HubActionV2025R0.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class HubActionV2025R0Serializer + extends JsonSerializer> { + + public HubActionV2025R0Serializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubbasev2025r0/HubBaseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubbasev2025r0/HubBaseV2025R0.java new file mode 100644 index 000000000..294eef8f9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubbasev2025r0/HubBaseV2025R0.java @@ -0,0 +1,90 @@ +package com.box.sdkgen.schemas.v2025r0.hubbasev2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class HubBaseV2025R0 extends SerializableObject { + + protected final String id; + + @JsonDeserialize(using = HubBaseV2025R0TypeField.HubBaseV2025R0TypeFieldDeserializer.class) + @JsonSerialize(using = HubBaseV2025R0TypeField.HubBaseV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + public HubBaseV2025R0(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = new EnumWrapper(HubBaseV2025R0TypeField.HUBS); + } + + protected HubBaseV2025R0(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubBaseV2025R0 casted = (HubBaseV2025R0) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "HubBaseV2025R0{" + "id='" + id + '\'' + ", " + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + public Builder(String id) { + super(); + this.id = id; + this.type = new EnumWrapper(HubBaseV2025R0TypeField.HUBS); + } + + public Builder type(HubBaseV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public HubBaseV2025R0 build() { + return new HubBaseV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubbasev2025r0/HubBaseV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubbasev2025r0/HubBaseV2025R0TypeField.java new file mode 100644 index 000000000..d8b5ee44a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubbasev2025r0/HubBaseV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.hubbasev2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum HubBaseV2025R0TypeField implements Valuable { + HUBS("hubs"); + + private final String value; + + HubBaseV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class HubBaseV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public HubBaseV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(HubBaseV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class HubBaseV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public HubBaseV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0.java new file mode 100644 index 000000000..83a8ba164 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0.java @@ -0,0 +1,76 @@ +package com.box.sdkgen.schemas.v2025r0.hubcollaborationcreaterequestv2025r0; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class HubCollaborationCreateRequestV2025R0 extends SerializableObject { + + protected final HubCollaborationCreateRequestV2025R0HubField hub; + + @JsonProperty("accessible_by") + protected final HubCollaborationCreateRequestV2025R0AccessibleByField accessibleBy; + + protected final String role; + + public HubCollaborationCreateRequestV2025R0( + @JsonProperty("hub") HubCollaborationCreateRequestV2025R0HubField hub, + @JsonProperty("accessible_by") + HubCollaborationCreateRequestV2025R0AccessibleByField accessibleBy, + @JsonProperty("role") String role) { + super(); + this.hub = hub; + this.accessibleBy = accessibleBy; + this.role = role; + } + + public HubCollaborationCreateRequestV2025R0HubField getHub() { + return hub; + } + + public HubCollaborationCreateRequestV2025R0AccessibleByField getAccessibleBy() { + return accessibleBy; + } + + public String getRole() { + return role; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubCollaborationCreateRequestV2025R0 casted = (HubCollaborationCreateRequestV2025R0) o; + return Objects.equals(hub, casted.hub) + && Objects.equals(accessibleBy, casted.accessibleBy) + && Objects.equals(role, casted.role); + } + + @Override + public int hashCode() { + return Objects.hash(hub, accessibleBy, role); + } + + @Override + public String toString() { + return "HubCollaborationCreateRequestV2025R0{" + + "hub='" + + hub + + '\'' + + ", " + + "accessibleBy='" + + accessibleBy + + '\'' + + ", " + + "role='" + + role + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0AccessibleByField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0AccessibleByField.java new file mode 100644 index 000000000..dcbc90f3f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0AccessibleByField.java @@ -0,0 +1,107 @@ +package com.box.sdkgen.schemas.v2025r0.hubcollaborationcreaterequestv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class HubCollaborationCreateRequestV2025R0AccessibleByField extends SerializableObject { + + protected final String type; + + protected String id; + + protected String login; + + public HubCollaborationCreateRequestV2025R0AccessibleByField(@JsonProperty("type") String type) { + super(); + this.type = type; + } + + protected HubCollaborationCreateRequestV2025R0AccessibleByField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + this.login = builder.login; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getType() { + return type; + } + + public String getId() { + return id; + } + + public String getLogin() { + return login; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubCollaborationCreateRequestV2025R0AccessibleByField casted = + (HubCollaborationCreateRequestV2025R0AccessibleByField) o; + return Objects.equals(type, casted.type) + && Objects.equals(id, casted.id) + && Objects.equals(login, casted.login); + } + + @Override + public int hashCode() { + return Objects.hash(type, id, login); + } + + @Override + public String toString() { + return "HubCollaborationCreateRequestV2025R0AccessibleByField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + ", " + + "login='" + + login + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String type; + + protected String id; + + protected String login; + + public Builder(String type) { + super(); + this.type = type; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder login(String login) { + this.login = login; + return this; + } + + public HubCollaborationCreateRequestV2025R0AccessibleByField build() { + return new HubCollaborationCreateRequestV2025R0AccessibleByField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0HubField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0HubField.java new file mode 100644 index 000000000..c32a65281 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0HubField.java @@ -0,0 +1,109 @@ +package com.box.sdkgen.schemas.v2025r0.hubcollaborationcreaterequestv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class HubCollaborationCreateRequestV2025R0HubField extends SerializableObject { + + @JsonDeserialize( + using = + HubCollaborationCreateRequestV2025R0HubTypeField + .HubCollaborationCreateRequestV2025R0HubTypeFieldDeserializer.class) + @JsonSerialize( + using = + HubCollaborationCreateRequestV2025R0HubTypeField + .HubCollaborationCreateRequestV2025R0HubTypeFieldSerializer.class) + protected EnumWrapper type; + + protected final String id; + + public HubCollaborationCreateRequestV2025R0HubField(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + HubCollaborationCreateRequestV2025R0HubTypeField.HUBS); + } + + protected HubCollaborationCreateRequestV2025R0HubField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubCollaborationCreateRequestV2025R0HubField casted = + (HubCollaborationCreateRequestV2025R0HubField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "HubCollaborationCreateRequestV2025R0HubField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + HubCollaborationCreateRequestV2025R0HubTypeField.HUBS); + } + + public Builder type(HubCollaborationCreateRequestV2025R0HubTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public HubCollaborationCreateRequestV2025R0HubField build() { + return new HubCollaborationCreateRequestV2025R0HubField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0HubTypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0HubTypeField.java new file mode 100644 index 000000000..14dc5202e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0HubTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.hubcollaborationcreaterequestv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum HubCollaborationCreateRequestV2025R0HubTypeField implements Valuable { + HUBS("hubs"); + + private final String value; + + HubCollaborationCreateRequestV2025R0HubTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class HubCollaborationCreateRequestV2025R0HubTypeFieldDeserializer + extends JsonDeserializer> { + + public HubCollaborationCreateRequestV2025R0HubTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(HubCollaborationCreateRequestV2025R0HubTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class HubCollaborationCreateRequestV2025R0HubTypeFieldSerializer + extends JsonSerializer> { + + public HubCollaborationCreateRequestV2025R0HubTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationsv2025r0/HubCollaborationsV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationsv2025r0/HubCollaborationsV2025R0.java new file mode 100644 index 000000000..33d310a15 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationsv2025r0/HubCollaborationsV2025R0.java @@ -0,0 +1,111 @@ +package com.box.sdkgen.schemas.v2025r0.hubcollaborationsv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.hubcollaborationv2025r0.HubCollaborationV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class HubCollaborationsV2025R0 extends SerializableObject { + + protected List entries; + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + public HubCollaborationsV2025R0() { + super(); + } + + protected HubCollaborationsV2025R0(Builder builder) { + super(); + this.entries = builder.entries; + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getEntries() { + return entries; + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubCollaborationsV2025R0 casted = (HubCollaborationsV2025R0) o; + return Objects.equals(entries, casted.entries) + && Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker); + } + + @Override + public int hashCode() { + return Objects.hash(entries, limit, nextMarker); + } + + @Override + public String toString() { + return "HubCollaborationsV2025R0{" + + "entries='" + + entries + + '\'' + + ", " + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List entries; + + protected Long limit; + + protected String nextMarker; + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public HubCollaborationsV2025R0 build() { + return new HubCollaborationsV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationupdaterequestv2025r0/HubCollaborationUpdateRequestV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationupdaterequestv2025r0/HubCollaborationUpdateRequestV2025R0.java new file mode 100644 index 000000000..dc11cae8d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationupdaterequestv2025r0/HubCollaborationUpdateRequestV2025R0.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.hubcollaborationupdaterequestv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class HubCollaborationUpdateRequestV2025R0 extends SerializableObject { + + protected String role; + + public HubCollaborationUpdateRequestV2025R0() { + super(); + } + + protected HubCollaborationUpdateRequestV2025R0(Builder builder) { + super(); + this.role = builder.role; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getRole() { + return role; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubCollaborationUpdateRequestV2025R0 casted = (HubCollaborationUpdateRequestV2025R0) o; + return Objects.equals(role, casted.role); + } + + @Override + public int hashCode() { + return Objects.hash(role); + } + + @Override + public String toString() { + return "HubCollaborationUpdateRequestV2025R0{" + "role='" + role + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String role; + + public Builder role(String role) { + this.role = role; + return this; + } + + public HubCollaborationUpdateRequestV2025R0 build() { + return new HubCollaborationUpdateRequestV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationuserv2025r0/HubCollaborationUserV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationuserv2025r0/HubCollaborationUserV2025R0.java new file mode 100644 index 000000000..9827e1345 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationuserv2025r0/HubCollaborationUserV2025R0.java @@ -0,0 +1,113 @@ +package com.box.sdkgen.schemas.v2025r0.hubcollaborationuserv2025r0; + +import com.box.sdkgen.schemas.v2025r0.userbasev2025r0.UserBaseV2025R0; +import com.box.sdkgen.schemas.v2025r0.userbasev2025r0.UserBaseV2025R0TypeField; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class HubCollaborationUserV2025R0 extends UserBaseV2025R0 { + + protected String name; + + protected String login; + + public HubCollaborationUserV2025R0(@JsonProperty("id") String id) { + super(id); + } + + protected HubCollaborationUserV2025R0(Builder builder) { + super(builder); + this.name = builder.name; + this.login = builder.login; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public String getLogin() { + return login; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubCollaborationUserV2025R0 casted = (HubCollaborationUserV2025R0) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name) + && Objects.equals(login, casted.login); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name, login); + } + + @Override + public String toString() { + return "HubCollaborationUserV2025R0{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "login='" + + login + + '\'' + + "}"; + } + + public static class Builder extends UserBaseV2025R0.Builder { + + protected String name; + + protected String login; + + public Builder(String id) { + super(id); + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder login(String login) { + this.login = login; + return this; + } + + @Override + public Builder type(UserBaseV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public HubCollaborationUserV2025R0 build() { + return new HubCollaborationUserV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0.java new file mode 100644 index 000000000..b1912b909 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0.java @@ -0,0 +1,228 @@ +package com.box.sdkgen.schemas.v2025r0.hubcollaborationv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.groupminiv2025r0.GroupMiniV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubaccessgranteev2025r0.HubAccessGranteeV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubbasev2025r0.HubBaseV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubcollaborationuserv2025r0.HubCollaborationUserV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class HubCollaborationV2025R0 extends SerializableObject { + + protected final String id; + + @JsonDeserialize( + using = HubCollaborationV2025R0TypeField.HubCollaborationV2025R0TypeFieldDeserializer.class) + @JsonSerialize( + using = HubCollaborationV2025R0TypeField.HubCollaborationV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + protected HubBaseV2025R0 hub; + + @JsonProperty("accessible_by") + protected HubAccessGranteeV2025R0 accessibleBy; + + protected String role; + + @JsonDeserialize( + using = + HubCollaborationV2025R0StatusField.HubCollaborationV2025R0StatusFieldDeserializer.class) + @JsonSerialize( + using = HubCollaborationV2025R0StatusField.HubCollaborationV2025R0StatusFieldSerializer.class) + protected EnumWrapper status; + + @JsonProperty("acceptance_requirements_status") + protected HubCollaborationV2025R0AcceptanceRequirementsStatusField acceptanceRequirementsStatus; + + public HubCollaborationV2025R0(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + HubCollaborationV2025R0TypeField.HUB_COLLABORATION); + } + + protected HubCollaborationV2025R0(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.hub = builder.hub; + this.accessibleBy = builder.accessibleBy; + this.role = builder.role; + this.status = builder.status; + this.acceptanceRequirementsStatus = builder.acceptanceRequirementsStatus; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public HubBaseV2025R0 getHub() { + return hub; + } + + public HubAccessGranteeV2025R0 getAccessibleBy() { + return accessibleBy; + } + + public String getRole() { + return role; + } + + public EnumWrapper getStatus() { + return status; + } + + public HubCollaborationV2025R0AcceptanceRequirementsStatusField + getAcceptanceRequirementsStatus() { + return acceptanceRequirementsStatus; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubCollaborationV2025R0 casted = (HubCollaborationV2025R0) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(hub, casted.hub) + && Objects.equals(accessibleBy, casted.accessibleBy) + && Objects.equals(role, casted.role) + && Objects.equals(status, casted.status) + && Objects.equals(acceptanceRequirementsStatus, casted.acceptanceRequirementsStatus); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, hub, accessibleBy, role, status, acceptanceRequirementsStatus); + } + + @Override + public String toString() { + return "HubCollaborationV2025R0{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "hub='" + + hub + + '\'' + + ", " + + "accessibleBy='" + + accessibleBy + + '\'' + + ", " + + "role='" + + role + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "acceptanceRequirementsStatus='" + + acceptanceRequirementsStatus + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + protected HubBaseV2025R0 hub; + + protected HubAccessGranteeV2025R0 accessibleBy; + + protected String role; + + protected EnumWrapper status; + + protected HubCollaborationV2025R0AcceptanceRequirementsStatusField acceptanceRequirementsStatus; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + HubCollaborationV2025R0TypeField.HUB_COLLABORATION); + } + + public Builder type(HubCollaborationV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder hub(HubBaseV2025R0 hub) { + this.hub = hub; + return this; + } + + public Builder accessibleBy(HubCollaborationUserV2025R0 accessibleBy) { + this.accessibleBy = new HubAccessGranteeV2025R0(accessibleBy); + return this; + } + + public Builder accessibleBy(GroupMiniV2025R0 accessibleBy) { + this.accessibleBy = new HubAccessGranteeV2025R0(accessibleBy); + return this; + } + + public Builder accessibleBy(HubAccessGranteeV2025R0 accessibleBy) { + this.accessibleBy = accessibleBy; + return this; + } + + public Builder role(String role) { + this.role = role; + return this; + } + + public Builder status(HubCollaborationV2025R0StatusField status) { + this.status = new EnumWrapper(status); + return this; + } + + public Builder status(EnumWrapper status) { + this.status = status; + return this; + } + + public Builder acceptanceRequirementsStatus( + HubCollaborationV2025R0AcceptanceRequirementsStatusField acceptanceRequirementsStatus) { + this.acceptanceRequirementsStatus = acceptanceRequirementsStatus; + return this; + } + + public HubCollaborationV2025R0 build() { + return new HubCollaborationV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusField.java new file mode 100644 index 000000000..e40a78311 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusField.java @@ -0,0 +1,128 @@ +package com.box.sdkgen.schemas.v2025r0.hubcollaborationv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class HubCollaborationV2025R0AcceptanceRequirementsStatusField extends SerializableObject { + + @JsonProperty("terms_of_service_requirement") + protected HubCollaborationV2025R0AcceptanceRequirementsStatusTermsOfServiceRequirementField + termsOfServiceRequirement; + + @JsonProperty("strong_password_requirement") + protected HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField + strongPasswordRequirement; + + @JsonProperty("two_factor_authentication_requirement") + protected + HubCollaborationV2025R0AcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField + twoFactorAuthenticationRequirement; + + public HubCollaborationV2025R0AcceptanceRequirementsStatusField() { + super(); + } + + protected HubCollaborationV2025R0AcceptanceRequirementsStatusField(Builder builder) { + super(); + this.termsOfServiceRequirement = builder.termsOfServiceRequirement; + this.strongPasswordRequirement = builder.strongPasswordRequirement; + this.twoFactorAuthenticationRequirement = builder.twoFactorAuthenticationRequirement; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public HubCollaborationV2025R0AcceptanceRequirementsStatusTermsOfServiceRequirementField + getTermsOfServiceRequirement() { + return termsOfServiceRequirement; + } + + public HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField + getStrongPasswordRequirement() { + return strongPasswordRequirement; + } + + public HubCollaborationV2025R0AcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField + getTwoFactorAuthenticationRequirement() { + return twoFactorAuthenticationRequirement; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubCollaborationV2025R0AcceptanceRequirementsStatusField casted = + (HubCollaborationV2025R0AcceptanceRequirementsStatusField) o; + return Objects.equals(termsOfServiceRequirement, casted.termsOfServiceRequirement) + && Objects.equals(strongPasswordRequirement, casted.strongPasswordRequirement) + && Objects.equals( + twoFactorAuthenticationRequirement, casted.twoFactorAuthenticationRequirement); + } + + @Override + public int hashCode() { + return Objects.hash( + termsOfServiceRequirement, strongPasswordRequirement, twoFactorAuthenticationRequirement); + } + + @Override + public String toString() { + return "HubCollaborationV2025R0AcceptanceRequirementsStatusField{" + + "termsOfServiceRequirement='" + + termsOfServiceRequirement + + '\'' + + ", " + + "strongPasswordRequirement='" + + strongPasswordRequirement + + '\'' + + ", " + + "twoFactorAuthenticationRequirement='" + + twoFactorAuthenticationRequirement + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected HubCollaborationV2025R0AcceptanceRequirementsStatusTermsOfServiceRequirementField + termsOfServiceRequirement; + + protected HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField + strongPasswordRequirement; + + protected + HubCollaborationV2025R0AcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField + twoFactorAuthenticationRequirement; + + public Builder termsOfServiceRequirement( + HubCollaborationV2025R0AcceptanceRequirementsStatusTermsOfServiceRequirementField + termsOfServiceRequirement) { + this.termsOfServiceRequirement = termsOfServiceRequirement; + return this; + } + + public Builder strongPasswordRequirement( + HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField + strongPasswordRequirement) { + this.strongPasswordRequirement = strongPasswordRequirement; + return this; + } + + public Builder twoFactorAuthenticationRequirement( + HubCollaborationV2025R0AcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField + twoFactorAuthenticationRequirement) { + this.twoFactorAuthenticationRequirement = twoFactorAuthenticationRequirement; + return this; + } + + public HubCollaborationV2025R0AcceptanceRequirementsStatusField build() { + return new HubCollaborationV2025R0AcceptanceRequirementsStatusField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField.java new file mode 100644 index 000000000..48b81ea3a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField.java @@ -0,0 +1,101 @@ +package com.box.sdkgen.schemas.v2025r0.hubcollaborationv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField + extends SerializableObject { + + @JsonProperty("enterprise_has_strong_password_required_for_external_users") + protected Boolean enterpriseHasStrongPasswordRequiredForExternalUsers; + + @JsonProperty("user_has_strong_password") + @Nullable + protected Boolean userHasStrongPassword; + + public HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField() { + super(); + } + + protected HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField( + Builder builder) { + super(); + this.enterpriseHasStrongPasswordRequiredForExternalUsers = + builder.enterpriseHasStrongPasswordRequiredForExternalUsers; + this.userHasStrongPassword = builder.userHasStrongPassword; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getEnterpriseHasStrongPasswordRequiredForExternalUsers() { + return enterpriseHasStrongPasswordRequiredForExternalUsers; + } + + public Boolean getUserHasStrongPassword() { + return userHasStrongPassword; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField casted = + (HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField) o; + return Objects.equals( + enterpriseHasStrongPasswordRequiredForExternalUsers, + casted.enterpriseHasStrongPasswordRequiredForExternalUsers) + && Objects.equals(userHasStrongPassword, casted.userHasStrongPassword); + } + + @Override + public int hashCode() { + return Objects.hash(enterpriseHasStrongPasswordRequiredForExternalUsers, userHasStrongPassword); + } + + @Override + public String toString() { + return "HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField{" + + "enterpriseHasStrongPasswordRequiredForExternalUsers='" + + enterpriseHasStrongPasswordRequiredForExternalUsers + + '\'' + + ", " + + "userHasStrongPassword='" + + userHasStrongPassword + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean enterpriseHasStrongPasswordRequiredForExternalUsers; + + protected Boolean userHasStrongPassword; + + public Builder enterpriseHasStrongPasswordRequiredForExternalUsers( + Boolean enterpriseHasStrongPasswordRequiredForExternalUsers) { + this.enterpriseHasStrongPasswordRequiredForExternalUsers = + enterpriseHasStrongPasswordRequiredForExternalUsers; + return this; + } + + public Builder userHasStrongPassword(Boolean userHasStrongPassword) { + this.userHasStrongPassword = userHasStrongPassword; + this.markNullableFieldAsSet("user_has_strong_password"); + return this; + } + + public HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField + build() { + return new HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField( + this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusTermsOfServiceRequirementField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusTermsOfServiceRequirementField.java new file mode 100644 index 000000000..276e720e8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusTermsOfServiceRequirementField.java @@ -0,0 +1,97 @@ +package com.box.sdkgen.schemas.v2025r0.hubcollaborationv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.termsofservicebasev2025r0.TermsOfServiceBaseV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class HubCollaborationV2025R0AcceptanceRequirementsStatusTermsOfServiceRequirementField + extends SerializableObject { + + @JsonProperty("is_accepted") + @Nullable + protected Boolean isAccepted; + + @JsonProperty("terms_of_service") + protected TermsOfServiceBaseV2025R0 termsOfService; + + public HubCollaborationV2025R0AcceptanceRequirementsStatusTermsOfServiceRequirementField() { + super(); + } + + protected HubCollaborationV2025R0AcceptanceRequirementsStatusTermsOfServiceRequirementField( + Builder builder) { + super(); + this.isAccepted = builder.isAccepted; + this.termsOfService = builder.termsOfService; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getIsAccepted() { + return isAccepted; + } + + public TermsOfServiceBaseV2025R0 getTermsOfService() { + return termsOfService; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubCollaborationV2025R0AcceptanceRequirementsStatusTermsOfServiceRequirementField casted = + (HubCollaborationV2025R0AcceptanceRequirementsStatusTermsOfServiceRequirementField) o; + return Objects.equals(isAccepted, casted.isAccepted) + && Objects.equals(termsOfService, casted.termsOfService); + } + + @Override + public int hashCode() { + return Objects.hash(isAccepted, termsOfService); + } + + @Override + public String toString() { + return "HubCollaborationV2025R0AcceptanceRequirementsStatusTermsOfServiceRequirementField{" + + "isAccepted='" + + isAccepted + + '\'' + + ", " + + "termsOfService='" + + termsOfService + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean isAccepted; + + protected TermsOfServiceBaseV2025R0 termsOfService; + + public Builder isAccepted(Boolean isAccepted) { + this.isAccepted = isAccepted; + this.markNullableFieldAsSet("is_accepted"); + return this; + } + + public Builder termsOfService(TermsOfServiceBaseV2025R0 termsOfService) { + this.termsOfService = termsOfService; + return this; + } + + public HubCollaborationV2025R0AcceptanceRequirementsStatusTermsOfServiceRequirementField + build() { + return new HubCollaborationV2025R0AcceptanceRequirementsStatusTermsOfServiceRequirementField( + this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField.java new file mode 100644 index 000000000..b46a64cb2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField.java @@ -0,0 +1,105 @@ +package com.box.sdkgen.schemas.v2025r0.hubcollaborationv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public +class HubCollaborationV2025R0AcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField + extends SerializableObject { + + @JsonProperty("enterprise_has_two_factor_auth_enabled") + protected Boolean enterpriseHasTwoFactorAuthEnabled; + + @JsonProperty("user_has_two_factor_authentication_enabled") + @Nullable + protected Boolean userHasTwoFactorAuthenticationEnabled; + + public + HubCollaborationV2025R0AcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField() { + super(); + } + + protected + HubCollaborationV2025R0AcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField( + Builder builder) { + super(); + this.enterpriseHasTwoFactorAuthEnabled = builder.enterpriseHasTwoFactorAuthEnabled; + this.userHasTwoFactorAuthenticationEnabled = builder.userHasTwoFactorAuthenticationEnabled; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getEnterpriseHasTwoFactorAuthEnabled() { + return enterpriseHasTwoFactorAuthEnabled; + } + + public Boolean getUserHasTwoFactorAuthenticationEnabled() { + return userHasTwoFactorAuthenticationEnabled; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubCollaborationV2025R0AcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField + casted = + (HubCollaborationV2025R0AcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField) + o; + return Objects.equals( + enterpriseHasTwoFactorAuthEnabled, casted.enterpriseHasTwoFactorAuthEnabled) + && Objects.equals( + userHasTwoFactorAuthenticationEnabled, casted.userHasTwoFactorAuthenticationEnabled); + } + + @Override + public int hashCode() { + return Objects.hash(enterpriseHasTwoFactorAuthEnabled, userHasTwoFactorAuthenticationEnabled); + } + + @Override + public String toString() { + return "HubCollaborationV2025R0AcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField{" + + "enterpriseHasTwoFactorAuthEnabled='" + + enterpriseHasTwoFactorAuthEnabled + + '\'' + + ", " + + "userHasTwoFactorAuthenticationEnabled='" + + userHasTwoFactorAuthenticationEnabled + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean enterpriseHasTwoFactorAuthEnabled; + + protected Boolean userHasTwoFactorAuthenticationEnabled; + + public Builder enterpriseHasTwoFactorAuthEnabled(Boolean enterpriseHasTwoFactorAuthEnabled) { + this.enterpriseHasTwoFactorAuthEnabled = enterpriseHasTwoFactorAuthEnabled; + return this; + } + + public Builder userHasTwoFactorAuthenticationEnabled( + Boolean userHasTwoFactorAuthenticationEnabled) { + this.userHasTwoFactorAuthenticationEnabled = userHasTwoFactorAuthenticationEnabled; + this.markNullableFieldAsSet("user_has_two_factor_authentication_enabled"); + return this; + } + + public + HubCollaborationV2025R0AcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField + build() { + return new HubCollaborationV2025R0AcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField( + this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0StatusField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0StatusField.java new file mode 100644 index 000000000..b9bc9d709 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0StatusField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.v2025r0.hubcollaborationv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum HubCollaborationV2025R0StatusField implements Valuable { + ACCEPTED("accepted"), + PENDING("pending"), + REJECTED("rejected"); + + private final String value; + + HubCollaborationV2025R0StatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class HubCollaborationV2025R0StatusFieldDeserializer + extends JsonDeserializer> { + + public HubCollaborationV2025R0StatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(HubCollaborationV2025R0StatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class HubCollaborationV2025R0StatusFieldSerializer + extends JsonSerializer> { + + public HubCollaborationV2025R0StatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0TypeField.java new file mode 100644 index 000000000..996c799a6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.hubcollaborationv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum HubCollaborationV2025R0TypeField implements Valuable { + HUB_COLLABORATION("hub_collaboration"); + + private final String value; + + HubCollaborationV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class HubCollaborationV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public HubCollaborationV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(HubCollaborationV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class HubCollaborationV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public HubCollaborationV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcopyrequestv2025r0/HubCopyRequestV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcopyrequestv2025r0/HubCopyRequestV2025R0.java new file mode 100644 index 000000000..837bf8ca3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcopyrequestv2025r0/HubCopyRequestV2025R0.java @@ -0,0 +1,84 @@ +package com.box.sdkgen.schemas.v2025r0.hubcopyrequestv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class HubCopyRequestV2025R0 extends SerializableObject { + + protected String title; + + protected String description; + + public HubCopyRequestV2025R0() { + super(); + } + + protected HubCopyRequestV2025R0(Builder builder) { + super(); + this.title = builder.title; + this.description = builder.description; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getTitle() { + return title; + } + + public String getDescription() { + return description; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubCopyRequestV2025R0 casted = (HubCopyRequestV2025R0) o; + return Objects.equals(title, casted.title) && Objects.equals(description, casted.description); + } + + @Override + public int hashCode() { + return Objects.hash(title, description); + } + + @Override + public String toString() { + return "HubCopyRequestV2025R0{" + + "title='" + + title + + '\'' + + ", " + + "description='" + + description + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String title; + + protected String description; + + public Builder title(String title) { + this.title = title; + return this; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public HubCopyRequestV2025R0 build() { + return new HubCopyRequestV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcreaterequestv2025r0/HubCreateRequestV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcreaterequestv2025r0/HubCreateRequestV2025R0.java new file mode 100644 index 000000000..65e0ba21c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcreaterequestv2025r0/HubCreateRequestV2025R0.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.schemas.v2025r0.hubcreaterequestv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class HubCreateRequestV2025R0 extends SerializableObject { + + protected final String title; + + protected String description; + + public HubCreateRequestV2025R0(@JsonProperty("title") String title) { + super(); + this.title = title; + } + + protected HubCreateRequestV2025R0(Builder builder) { + super(); + this.title = builder.title; + this.description = builder.description; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getTitle() { + return title; + } + + public String getDescription() { + return description; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubCreateRequestV2025R0 casted = (HubCreateRequestV2025R0) o; + return Objects.equals(title, casted.title) && Objects.equals(description, casted.description); + } + + @Override + public int hashCode() { + return Objects.hash(title, description); + } + + @Override + public String toString() { + return "HubCreateRequestV2025R0{" + + "title='" + + title + + '\'' + + ", " + + "description='" + + description + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String title; + + protected String description; + + public Builder(String title) { + super(); + this.title = title; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public HubCreateRequestV2025R0 build() { + return new HubCreateRequestV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationresultv2025r0/HubItemOperationResultV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationresultv2025r0/HubItemOperationResultV2025R0.java new file mode 100644 index 000000000..6867dcfbe --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationresultv2025r0/HubItemOperationResultV2025R0.java @@ -0,0 +1,142 @@ +package com.box.sdkgen.schemas.v2025r0.hubitemoperationresultv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.filereferencev2025r0.FileReferenceV2025R0; +import com.box.sdkgen.schemas.v2025r0.folderreferencev2025r0.FolderReferenceV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubitemreferencev2025r0.HubItemReferenceV2025R0; +import com.box.sdkgen.schemas.v2025r0.weblinkreferencev2025r0.WeblinkReferenceV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class HubItemOperationResultV2025R0 extends SerializableObject { + + protected String action; + + protected HubItemReferenceV2025R0 item; + + protected Long status; + + protected String error; + + public HubItemOperationResultV2025R0() { + super(); + } + + protected HubItemOperationResultV2025R0(Builder builder) { + super(); + this.action = builder.action; + this.item = builder.item; + this.status = builder.status; + this.error = builder.error; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getAction() { + return action; + } + + public HubItemReferenceV2025R0 getItem() { + return item; + } + + public Long getStatus() { + return status; + } + + public String getError() { + return error; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubItemOperationResultV2025R0 casted = (HubItemOperationResultV2025R0) o; + return Objects.equals(action, casted.action) + && Objects.equals(item, casted.item) + && Objects.equals(status, casted.status) + && Objects.equals(error, casted.error); + } + + @Override + public int hashCode() { + return Objects.hash(action, item, status, error); + } + + @Override + public String toString() { + return "HubItemOperationResultV2025R0{" + + "action='" + + action + + '\'' + + ", " + + "item='" + + item + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "error='" + + error + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String action; + + protected HubItemReferenceV2025R0 item; + + protected Long status; + + protected String error; + + public Builder action(String action) { + this.action = action; + return this; + } + + public Builder item(FileReferenceV2025R0 item) { + this.item = new HubItemReferenceV2025R0(item); + return this; + } + + public Builder item(FolderReferenceV2025R0 item) { + this.item = new HubItemReferenceV2025R0(item); + return this; + } + + public Builder item(WeblinkReferenceV2025R0 item) { + this.item = new HubItemReferenceV2025R0(item); + return this; + } + + public Builder item(HubItemReferenceV2025R0 item) { + this.item = item; + return this; + } + + public Builder status(Long status) { + this.status = status; + return this; + } + + public Builder error(String error) { + this.error = error; + return this; + } + + public HubItemOperationResultV2025R0 build() { + return new HubItemOperationResultV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationv2025r0/HubItemOperationV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationv2025r0/HubItemOperationV2025R0.java new file mode 100644 index 000000000..9c6c63b3f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationv2025r0/HubItemOperationV2025R0.java @@ -0,0 +1,122 @@ +package com.box.sdkgen.schemas.v2025r0.hubitemoperationv2025r0; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.filereferenceorfolderreferenceorweblinkreferencev2025r0.FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0; +import com.box.sdkgen.schemas.v2025r0.filereferencev2025r0.FileReferenceV2025R0; +import com.box.sdkgen.schemas.v2025r0.folderreferencev2025r0.FolderReferenceV2025R0; +import com.box.sdkgen.schemas.v2025r0.weblinkreferencev2025r0.WeblinkReferenceV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class HubItemOperationV2025R0 extends SerializableObject { + + @JsonDeserialize( + using = + HubItemOperationV2025R0ActionField.HubItemOperationV2025R0ActionFieldDeserializer.class) + @JsonSerialize( + using = HubItemOperationV2025R0ActionField.HubItemOperationV2025R0ActionFieldSerializer.class) + protected final EnumWrapper action; + + protected final FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0 item; + + public HubItemOperationV2025R0( + HubItemOperationV2025R0ActionField action, FileReferenceV2025R0 item) { + super(); + this.action = new EnumWrapper(action); + this.item = new FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0(item); + } + + public HubItemOperationV2025R0( + HubItemOperationV2025R0ActionField action, FolderReferenceV2025R0 item) { + super(); + this.action = new EnumWrapper(action); + this.item = new FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0(item); + } + + public HubItemOperationV2025R0( + HubItemOperationV2025R0ActionField action, WeblinkReferenceV2025R0 item) { + super(); + this.action = new EnumWrapper(action); + this.item = new FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0(item); + } + + public HubItemOperationV2025R0( + HubItemOperationV2025R0ActionField action, + FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0 item) { + super(); + this.action = new EnumWrapper(action); + this.item = item; + } + + public HubItemOperationV2025R0( + EnumWrapper action, FileReferenceV2025R0 item) { + super(); + this.action = action; + this.item = new FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0(item); + } + + public HubItemOperationV2025R0( + EnumWrapper action, FolderReferenceV2025R0 item) { + super(); + this.action = action; + this.item = new FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0(item); + } + + public HubItemOperationV2025R0( + EnumWrapper action, WeblinkReferenceV2025R0 item) { + super(); + this.action = action; + this.item = new FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0(item); + } + + public HubItemOperationV2025R0( + @JsonProperty("action") EnumWrapper action, + @JsonProperty("item") FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0 item) { + super(); + this.action = action; + this.item = item; + } + + public EnumWrapper getAction() { + return action; + } + + public FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0 getItem() { + return item; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubItemOperationV2025R0 casted = (HubItemOperationV2025R0) o; + return Objects.equals(action, casted.action) && Objects.equals(item, casted.item); + } + + @Override + public int hashCode() { + return Objects.hash(action, item); + } + + @Override + public String toString() { + return "HubItemOperationV2025R0{" + + "action='" + + action + + '\'' + + ", " + + "item='" + + item + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationv2025r0/HubItemOperationV2025R0ActionField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationv2025r0/HubItemOperationV2025R0ActionField.java new file mode 100644 index 000000000..2b08c006d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationv2025r0/HubItemOperationV2025R0ActionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.v2025r0.hubitemoperationv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum HubItemOperationV2025R0ActionField implements Valuable { + ADD("add"), + REMOVE("remove"); + + private final String value; + + HubItemOperationV2025R0ActionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class HubItemOperationV2025R0ActionFieldDeserializer + extends JsonDeserializer> { + + public HubItemOperationV2025R0ActionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(HubItemOperationV2025R0ActionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class HubItemOperationV2025R0ActionFieldSerializer + extends JsonSerializer> { + + public HubItemOperationV2025R0ActionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemreferencev2025r0/HubItemReferenceV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemreferencev2025r0/HubItemReferenceV2025R0.java new file mode 100644 index 000000000..76e08d187 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemreferencev2025r0/HubItemReferenceV2025R0.java @@ -0,0 +1,105 @@ +package com.box.sdkgen.schemas.v2025r0.hubitemreferencev2025r0; + +import com.box.sdkgen.internal.OneOfThree; +import com.box.sdkgen.schemas.v2025r0.filereferencev2025r0.FileReferenceV2025R0; +import com.box.sdkgen.schemas.v2025r0.folderreferencev2025r0.FolderReferenceV2025R0; +import com.box.sdkgen.schemas.v2025r0.weblinkreferencev2025r0.WeblinkReferenceV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize(using = HubItemReferenceV2025R0.HubItemReferenceV2025R0Deserializer.class) +@JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) +public class HubItemReferenceV2025R0 + extends OneOfThree { + + protected final String type; + + protected final String id; + + public HubItemReferenceV2025R0(FileReferenceV2025R0 fileReferenceV2025R0) { + super(fileReferenceV2025R0, null, null); + this.type = EnumWrapper.convertToString(fileReferenceV2025R0.getType()); + this.id = fileReferenceV2025R0.getId(); + } + + public HubItemReferenceV2025R0(FolderReferenceV2025R0 folderReferenceV2025R0) { + super(null, folderReferenceV2025R0, null); + this.type = EnumWrapper.convertToString(folderReferenceV2025R0.getType()); + this.id = folderReferenceV2025R0.getId(); + } + + public HubItemReferenceV2025R0(WeblinkReferenceV2025R0 weblinkReferenceV2025R0) { + super(null, null, weblinkReferenceV2025R0); + this.type = EnumWrapper.convertToString(weblinkReferenceV2025R0.getType()); + this.id = weblinkReferenceV2025R0.getId(); + } + + public boolean isFileReferenceV2025R0() { + return value0 != null; + } + + public FileReferenceV2025R0 getFileReferenceV2025R0() { + return value0; + } + + public boolean isFolderReferenceV2025R0() { + return value1 != null; + } + + public FolderReferenceV2025R0 getFolderReferenceV2025R0() { + return value1; + } + + public boolean isWeblinkReferenceV2025R0() { + return value2 != null; + } + + public WeblinkReferenceV2025R0 getWeblinkReferenceV2025R0() { + return value2; + } + + public String getType() { + return type; + } + + public String getId() { + return id; + } + + static class HubItemReferenceV2025R0Deserializer + extends JsonDeserializer { + + public HubItemReferenceV2025R0Deserializer() { + super(); + } + + @Override + public HubItemReferenceV2025R0 deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "file": + return new HubItemReferenceV2025R0( + JsonManager.deserialize(node, FileReferenceV2025R0.class)); + case "folder": + return new HubItemReferenceV2025R0( + JsonManager.deserialize(node, FolderReferenceV2025R0.class)); + case "weblink": + return new HubItemReferenceV2025R0( + JsonManager.deserialize(node, WeblinkReferenceV2025R0.class)); + } + } + throw new JsonMappingException(jp, "Unable to deserialize HubItemReferenceV2025R0"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemsmanagerequestv2025r0/HubItemsManageRequestV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemsmanagerequestv2025r0/HubItemsManageRequestV2025R0.java new file mode 100644 index 000000000..2cf7f4ab6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemsmanagerequestv2025r0/HubItemsManageRequestV2025R0.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.v2025r0.hubitemsmanagerequestv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.hubitemoperationv2025r0.HubItemOperationV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class HubItemsManageRequestV2025R0 extends SerializableObject { + + protected List operations; + + public HubItemsManageRequestV2025R0() { + super(); + } + + protected HubItemsManageRequestV2025R0(Builder builder) { + super(); + this.operations = builder.operations; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getOperations() { + return operations; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubItemsManageRequestV2025R0 casted = (HubItemsManageRequestV2025R0) o; + return Objects.equals(operations, casted.operations); + } + + @Override + public int hashCode() { + return Objects.hash(operations); + } + + @Override + public String toString() { + return "HubItemsManageRequestV2025R0{" + "operations='" + operations + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List operations; + + public Builder operations(List operations) { + this.operations = operations; + return this; + } + + public HubItemsManageRequestV2025R0 build() { + return new HubItemsManageRequestV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemsmanageresponsev2025r0/HubItemsManageResponseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemsmanageresponsev2025r0/HubItemsManageResponseV2025R0.java new file mode 100644 index 000000000..f7a99c6c5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemsmanageresponsev2025r0/HubItemsManageResponseV2025R0.java @@ -0,0 +1,46 @@ +package com.box.sdkgen.schemas.v2025r0.hubitemsmanageresponsev2025r0; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.hubitemoperationresultv2025r0.HubItemOperationResultV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class HubItemsManageResponseV2025R0 extends SerializableObject { + + protected final List operations; + + public HubItemsManageResponseV2025R0( + @JsonProperty("operations") List operations) { + super(); + this.operations = operations; + } + + public List getOperations() { + return operations; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubItemsManageResponseV2025R0 casted = (HubItemsManageResponseV2025R0) o; + return Objects.equals(operations, casted.operations); + } + + @Override + public int hashCode() { + return Objects.hash(operations); + } + + @Override + public String toString() { + return "HubItemsManageResponseV2025R0{" + "operations='" + operations + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemsv2025r0/HubItemsV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemsv2025r0/HubItemsV2025R0.java new file mode 100644 index 000000000..5839f5f4c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemsv2025r0/HubItemsV2025R0.java @@ -0,0 +1,111 @@ +package com.box.sdkgen.schemas.v2025r0.hubitemsv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.hubitemv2025r0.HubItemV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class HubItemsV2025R0 extends SerializableObject { + + protected List entries; + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + public HubItemsV2025R0() { + super(); + } + + protected HubItemsV2025R0(Builder builder) { + super(); + this.entries = builder.entries; + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getEntries() { + return entries; + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubItemsV2025R0 casted = (HubItemsV2025R0) o; + return Objects.equals(entries, casted.entries) + && Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker); + } + + @Override + public int hashCode() { + return Objects.hash(entries, limit, nextMarker); + } + + @Override + public String toString() { + return "HubItemsV2025R0{" + + "entries='" + + entries + + '\'' + + ", " + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List entries; + + protected Long limit; + + protected String nextMarker; + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public HubItemsV2025R0 build() { + return new HubItemsV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemv2025r0/HubItemV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemv2025r0/HubItemV2025R0.java new file mode 100644 index 000000000..7c46fc6e7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemv2025r0/HubItemV2025R0.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.schemas.v2025r0.hubitemv2025r0; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class HubItemV2025R0 extends SerializableObject { + + protected final String id; + + @JsonDeserialize(using = HubItemV2025R0TypeField.HubItemV2025R0TypeFieldDeserializer.class) + @JsonSerialize(using = HubItemV2025R0TypeField.HubItemV2025R0TypeFieldSerializer.class) + protected final EnumWrapper type; + + protected final String name; + + public HubItemV2025R0(String id, HubItemV2025R0TypeField type, String name) { + super(); + this.id = id; + this.type = new EnumWrapper(type); + this.name = name; + } + + public HubItemV2025R0( + @JsonProperty("id") String id, + @JsonProperty("type") EnumWrapper type, + @JsonProperty("name") String name) { + super(); + this.id = id; + this.type = type; + this.name = name; + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubItemV2025R0 casted = (HubItemV2025R0) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name); + } + + @Override + public String toString() { + return "HubItemV2025R0{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemv2025r0/HubItemV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemv2025r0/HubItemV2025R0TypeField.java new file mode 100644 index 000000000..8fe853d9d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemv2025r0/HubItemV2025R0TypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.v2025r0.hubitemv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum HubItemV2025R0TypeField implements Valuable { + FILE("file"), + FOLDER("folder"), + WEB_LINK("web_link"); + + private final String value; + + HubItemV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class HubItemV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public HubItemV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(HubItemV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class HubItemV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public HubItemV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubsv2025r0/HubsV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubsv2025r0/HubsV2025R0.java new file mode 100644 index 000000000..3d91afa85 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubsv2025r0/HubsV2025R0.java @@ -0,0 +1,111 @@ +package com.box.sdkgen.schemas.v2025r0.hubsv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.hubv2025r0.HubV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class HubsV2025R0 extends SerializableObject { + + protected List entries; + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + public HubsV2025R0() { + super(); + } + + protected HubsV2025R0(Builder builder) { + super(); + this.entries = builder.entries; + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getEntries() { + return entries; + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubsV2025R0 casted = (HubsV2025R0) o; + return Objects.equals(entries, casted.entries) + && Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker); + } + + @Override + public int hashCode() { + return Objects.hash(entries, limit, nextMarker); + } + + @Override + public String toString() { + return "HubsV2025R0{" + + "entries='" + + entries + + '\'' + + ", " + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List entries; + + protected Long limit; + + protected String nextMarker; + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public HubsV2025R0 build() { + return new HubsV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubupdaterequestv2025r0/HubUpdateRequestV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubupdaterequestv2025r0/HubUpdateRequestV2025R0.java new file mode 100644 index 000000000..a05794397 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubupdaterequestv2025r0/HubUpdateRequestV2025R0.java @@ -0,0 +1,174 @@ +package com.box.sdkgen.schemas.v2025r0.hubupdaterequestv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class HubUpdateRequestV2025R0 extends SerializableObject { + + protected String title; + + protected String description; + + @JsonProperty("is_ai_enabled") + protected Boolean isAiEnabled; + + @JsonProperty("is_collaboration_restricted_to_enterprise") + protected Boolean isCollaborationRestrictedToEnterprise; + + @JsonProperty("can_non_owners_invite") + protected Boolean canNonOwnersInvite; + + @JsonProperty("can_shared_link_be_created") + protected Boolean canSharedLinkBeCreated; + + public HubUpdateRequestV2025R0() { + super(); + } + + protected HubUpdateRequestV2025R0(Builder builder) { + super(); + this.title = builder.title; + this.description = builder.description; + this.isAiEnabled = builder.isAiEnabled; + this.isCollaborationRestrictedToEnterprise = builder.isCollaborationRestrictedToEnterprise; + this.canNonOwnersInvite = builder.canNonOwnersInvite; + this.canSharedLinkBeCreated = builder.canSharedLinkBeCreated; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getTitle() { + return title; + } + + public String getDescription() { + return description; + } + + public Boolean getIsAiEnabled() { + return isAiEnabled; + } + + public Boolean getIsCollaborationRestrictedToEnterprise() { + return isCollaborationRestrictedToEnterprise; + } + + public Boolean getCanNonOwnersInvite() { + return canNonOwnersInvite; + } + + public Boolean getCanSharedLinkBeCreated() { + return canSharedLinkBeCreated; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubUpdateRequestV2025R0 casted = (HubUpdateRequestV2025R0) o; + return Objects.equals(title, casted.title) + && Objects.equals(description, casted.description) + && Objects.equals(isAiEnabled, casted.isAiEnabled) + && Objects.equals( + isCollaborationRestrictedToEnterprise, casted.isCollaborationRestrictedToEnterprise) + && Objects.equals(canNonOwnersInvite, casted.canNonOwnersInvite) + && Objects.equals(canSharedLinkBeCreated, casted.canSharedLinkBeCreated); + } + + @Override + public int hashCode() { + return Objects.hash( + title, + description, + isAiEnabled, + isCollaborationRestrictedToEnterprise, + canNonOwnersInvite, + canSharedLinkBeCreated); + } + + @Override + public String toString() { + return "HubUpdateRequestV2025R0{" + + "title='" + + title + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "isAiEnabled='" + + isAiEnabled + + '\'' + + ", " + + "isCollaborationRestrictedToEnterprise='" + + isCollaborationRestrictedToEnterprise + + '\'' + + ", " + + "canNonOwnersInvite='" + + canNonOwnersInvite + + '\'' + + ", " + + "canSharedLinkBeCreated='" + + canSharedLinkBeCreated + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String title; + + protected String description; + + protected Boolean isAiEnabled; + + protected Boolean isCollaborationRestrictedToEnterprise; + + protected Boolean canNonOwnersInvite; + + protected Boolean canSharedLinkBeCreated; + + public Builder title(String title) { + this.title = title; + return this; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder isAiEnabled(Boolean isAiEnabled) { + this.isAiEnabled = isAiEnabled; + return this; + } + + public Builder isCollaborationRestrictedToEnterprise( + Boolean isCollaborationRestrictedToEnterprise) { + this.isCollaborationRestrictedToEnterprise = isCollaborationRestrictedToEnterprise; + return this; + } + + public Builder canNonOwnersInvite(Boolean canNonOwnersInvite) { + this.canNonOwnersInvite = canNonOwnersInvite; + return this; + } + + public Builder canSharedLinkBeCreated(Boolean canSharedLinkBeCreated) { + this.canSharedLinkBeCreated = canSharedLinkBeCreated; + return this; + } + + public HubUpdateRequestV2025R0 build() { + return new HubUpdateRequestV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0.java new file mode 100644 index 000000000..395611e5d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0.java @@ -0,0 +1,317 @@ +package com.box.sdkgen.schemas.v2025r0.hubv2025r0; + +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.v2025r0.hubbasev2025r0.HubBaseV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubbasev2025r0.HubBaseV2025R0TypeField; +import com.box.sdkgen.schemas.v2025r0.userminiv2025r0.UserMiniV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class HubV2025R0 extends HubBaseV2025R0 { + + protected String title; + + protected String description; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("updated_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date updatedAt; + + @JsonProperty("created_by") + protected UserMiniV2025R0 createdBy; + + @JsonProperty("updated_by") + protected UserMiniV2025R0 updatedBy; + + @JsonProperty("view_count") + protected Integer viewCount; + + @JsonProperty("is_ai_enabled") + protected Boolean isAiEnabled; + + @JsonProperty("is_collaboration_restricted_to_enterprise") + protected Boolean isCollaborationRestrictedToEnterprise; + + @JsonProperty("can_non_owners_invite") + protected Boolean canNonOwnersInvite; + + @JsonProperty("can_shared_link_be_created") + protected Boolean canSharedLinkBeCreated; + + public HubV2025R0(@JsonProperty("id") String id) { + super(id); + } + + protected HubV2025R0(Builder builder) { + super(builder); + this.title = builder.title; + this.description = builder.description; + this.createdAt = builder.createdAt; + this.updatedAt = builder.updatedAt; + this.createdBy = builder.createdBy; + this.updatedBy = builder.updatedBy; + this.viewCount = builder.viewCount; + this.isAiEnabled = builder.isAiEnabled; + this.isCollaborationRestrictedToEnterprise = builder.isCollaborationRestrictedToEnterprise; + this.canNonOwnersInvite = builder.canNonOwnersInvite; + this.canSharedLinkBeCreated = builder.canSharedLinkBeCreated; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getTitle() { + return title; + } + + public String getDescription() { + return description; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getUpdatedAt() { + return updatedAt; + } + + public UserMiniV2025R0 getCreatedBy() { + return createdBy; + } + + public UserMiniV2025R0 getUpdatedBy() { + return updatedBy; + } + + public Integer getViewCount() { + return viewCount; + } + + public Boolean getIsAiEnabled() { + return isAiEnabled; + } + + public Boolean getIsCollaborationRestrictedToEnterprise() { + return isCollaborationRestrictedToEnterprise; + } + + public Boolean getCanNonOwnersInvite() { + return canNonOwnersInvite; + } + + public Boolean getCanSharedLinkBeCreated() { + return canSharedLinkBeCreated; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubV2025R0 casted = (HubV2025R0) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(title, casted.title) + && Objects.equals(description, casted.description) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(updatedAt, casted.updatedAt) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(updatedBy, casted.updatedBy) + && Objects.equals(viewCount, casted.viewCount) + && Objects.equals(isAiEnabled, casted.isAiEnabled) + && Objects.equals( + isCollaborationRestrictedToEnterprise, casted.isCollaborationRestrictedToEnterprise) + && Objects.equals(canNonOwnersInvite, casted.canNonOwnersInvite) + && Objects.equals(canSharedLinkBeCreated, casted.canSharedLinkBeCreated); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + type, + title, + description, + createdAt, + updatedAt, + createdBy, + updatedBy, + viewCount, + isAiEnabled, + isCollaborationRestrictedToEnterprise, + canNonOwnersInvite, + canSharedLinkBeCreated); + } + + @Override + public String toString() { + return "HubV2025R0{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "title='" + + title + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "updatedAt='" + + updatedAt + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "updatedBy='" + + updatedBy + + '\'' + + ", " + + "viewCount='" + + viewCount + + '\'' + + ", " + + "isAiEnabled='" + + isAiEnabled + + '\'' + + ", " + + "isCollaborationRestrictedToEnterprise='" + + isCollaborationRestrictedToEnterprise + + '\'' + + ", " + + "canNonOwnersInvite='" + + canNonOwnersInvite + + '\'' + + ", " + + "canSharedLinkBeCreated='" + + canSharedLinkBeCreated + + '\'' + + "}"; + } + + public static class Builder extends HubBaseV2025R0.Builder { + + protected String title; + + protected String description; + + protected Date createdAt; + + protected Date updatedAt; + + protected UserMiniV2025R0 createdBy; + + protected UserMiniV2025R0 updatedBy; + + protected Integer viewCount; + + protected Boolean isAiEnabled; + + protected Boolean isCollaborationRestrictedToEnterprise; + + protected Boolean canNonOwnersInvite; + + protected Boolean canSharedLinkBeCreated; + + public Builder(String id) { + super(id); + } + + public Builder title(String title) { + this.title = title; + return this; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder updatedAt(Date updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + public Builder createdBy(UserMiniV2025R0 createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder updatedBy(UserMiniV2025R0 updatedBy) { + this.updatedBy = updatedBy; + return this; + } + + public Builder viewCount(Integer viewCount) { + this.viewCount = viewCount; + return this; + } + + public Builder isAiEnabled(Boolean isAiEnabled) { + this.isAiEnabled = isAiEnabled; + return this; + } + + public Builder isCollaborationRestrictedToEnterprise( + Boolean isCollaborationRestrictedToEnterprise) { + this.isCollaborationRestrictedToEnterprise = isCollaborationRestrictedToEnterprise; + return this; + } + + public Builder canNonOwnersInvite(Boolean canNonOwnersInvite) { + this.canNonOwnersInvite = canNonOwnersInvite; + return this; + } + + public Builder canSharedLinkBeCreated(Boolean canSharedLinkBeCreated) { + this.canSharedLinkBeCreated = canSharedLinkBeCreated; + return this; + } + + @Override + public Builder type(HubBaseV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public HubV2025R0 build() { + return new HubV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentcountryv2025r0/ShieldListContentCountryV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentcountryv2025r0/ShieldListContentCountryV2025R0.java new file mode 100644 index 000000000..b23a6465d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentcountryv2025r0/ShieldListContentCountryV2025R0.java @@ -0,0 +1,110 @@ +package com.box.sdkgen.schemas.v2025r0.shieldlistcontentcountryv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldListContentCountryV2025R0 extends SerializableObject { + + @JsonDeserialize( + using = + ShieldListContentCountryV2025R0TypeField + .ShieldListContentCountryV2025R0TypeFieldDeserializer.class) + @JsonSerialize( + using = + ShieldListContentCountryV2025R0TypeField + .ShieldListContentCountryV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("country_codes") + protected final List countryCodes; + + public ShieldListContentCountryV2025R0(@JsonProperty("country_codes") List countryCodes) { + super(); + this.countryCodes = countryCodes; + this.type = + new EnumWrapper( + ShieldListContentCountryV2025R0TypeField.COUNTRY); + } + + protected ShieldListContentCountryV2025R0(Builder builder) { + super(); + this.type = builder.type; + this.countryCodes = builder.countryCodes; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public List getCountryCodes() { + return countryCodes; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldListContentCountryV2025R0 casted = (ShieldListContentCountryV2025R0) o; + return Objects.equals(type, casted.type) && Objects.equals(countryCodes, casted.countryCodes); + } + + @Override + public int hashCode() { + return Objects.hash(type, countryCodes); + } + + @Override + public String toString() { + return "ShieldListContentCountryV2025R0{" + + "type='" + + type + + '\'' + + ", " + + "countryCodes='" + + countryCodes + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final List countryCodes; + + public Builder(List countryCodes) { + super(); + this.countryCodes = countryCodes; + this.type = + new EnumWrapper( + ShieldListContentCountryV2025R0TypeField.COUNTRY); + } + + public Builder type(ShieldListContentCountryV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public ShieldListContentCountryV2025R0 build() { + return new ShieldListContentCountryV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentcountryv2025r0/ShieldListContentCountryV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentcountryv2025r0/ShieldListContentCountryV2025R0TypeField.java new file mode 100644 index 000000000..e30308c52 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentcountryv2025r0/ShieldListContentCountryV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.shieldlistcontentcountryv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ShieldListContentCountryV2025R0TypeField implements Valuable { + COUNTRY("country"); + + private final String value; + + ShieldListContentCountryV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ShieldListContentCountryV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public ShieldListContentCountryV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ShieldListContentCountryV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ShieldListContentCountryV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public ShieldListContentCountryV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentdomainv2025r0/ShieldListContentDomainV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentdomainv2025r0/ShieldListContentDomainV2025R0.java new file mode 100644 index 000000000..bcf57ae56 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentdomainv2025r0/ShieldListContentDomainV2025R0.java @@ -0,0 +1,109 @@ +package com.box.sdkgen.schemas.v2025r0.shieldlistcontentdomainv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldListContentDomainV2025R0 extends SerializableObject { + + @JsonDeserialize( + using = + ShieldListContentDomainV2025R0TypeField + .ShieldListContentDomainV2025R0TypeFieldDeserializer.class) + @JsonSerialize( + using = + ShieldListContentDomainV2025R0TypeField.ShieldListContentDomainV2025R0TypeFieldSerializer + .class) + protected EnumWrapper type; + + protected final List domains; + + public ShieldListContentDomainV2025R0(@JsonProperty("domains") List domains) { + super(); + this.domains = domains; + this.type = + new EnumWrapper( + ShieldListContentDomainV2025R0TypeField.DOMAIN); + } + + protected ShieldListContentDomainV2025R0(Builder builder) { + super(); + this.type = builder.type; + this.domains = builder.domains; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public List getDomains() { + return domains; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldListContentDomainV2025R0 casted = (ShieldListContentDomainV2025R0) o; + return Objects.equals(type, casted.type) && Objects.equals(domains, casted.domains); + } + + @Override + public int hashCode() { + return Objects.hash(type, domains); + } + + @Override + public String toString() { + return "ShieldListContentDomainV2025R0{" + + "type='" + + type + + '\'' + + ", " + + "domains='" + + domains + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final List domains; + + public Builder(List domains) { + super(); + this.domains = domains; + this.type = + new EnumWrapper( + ShieldListContentDomainV2025R0TypeField.DOMAIN); + } + + public Builder type(ShieldListContentDomainV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public ShieldListContentDomainV2025R0 build() { + return new ShieldListContentDomainV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentdomainv2025r0/ShieldListContentDomainV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentdomainv2025r0/ShieldListContentDomainV2025R0TypeField.java new file mode 100644 index 000000000..8357c31e3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentdomainv2025r0/ShieldListContentDomainV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.shieldlistcontentdomainv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ShieldListContentDomainV2025R0TypeField implements Valuable { + DOMAIN("domain"); + + private final String value; + + ShieldListContentDomainV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ShieldListContentDomainV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public ShieldListContentDomainV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ShieldListContentDomainV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ShieldListContentDomainV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public ShieldListContentDomainV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentemailv2025r0/ShieldListContentEmailV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentemailv2025r0/ShieldListContentEmailV2025R0.java new file mode 100644 index 000000000..c8fcbf1b0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentemailv2025r0/ShieldListContentEmailV2025R0.java @@ -0,0 +1,112 @@ +package com.box.sdkgen.schemas.v2025r0.shieldlistcontentemailv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldListContentEmailV2025R0 extends SerializableObject { + + @JsonDeserialize( + using = + ShieldListContentEmailV2025R0TypeField.ShieldListContentEmailV2025R0TypeFieldDeserializer + .class) + @JsonSerialize( + using = + ShieldListContentEmailV2025R0TypeField.ShieldListContentEmailV2025R0TypeFieldSerializer + .class) + protected EnumWrapper type; + + @JsonProperty("email_addresses") + protected final List emailAddresses; + + public ShieldListContentEmailV2025R0( + @JsonProperty("email_addresses") List emailAddresses) { + super(); + this.emailAddresses = emailAddresses; + this.type = + new EnumWrapper( + ShieldListContentEmailV2025R0TypeField.EMAIL); + } + + protected ShieldListContentEmailV2025R0(Builder builder) { + super(); + this.type = builder.type; + this.emailAddresses = builder.emailAddresses; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public List getEmailAddresses() { + return emailAddresses; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldListContentEmailV2025R0 casted = (ShieldListContentEmailV2025R0) o; + return Objects.equals(type, casted.type) + && Objects.equals(emailAddresses, casted.emailAddresses); + } + + @Override + public int hashCode() { + return Objects.hash(type, emailAddresses); + } + + @Override + public String toString() { + return "ShieldListContentEmailV2025R0{" + + "type='" + + type + + '\'' + + ", " + + "emailAddresses='" + + emailAddresses + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final List emailAddresses; + + public Builder(List emailAddresses) { + super(); + this.emailAddresses = emailAddresses; + this.type = + new EnumWrapper( + ShieldListContentEmailV2025R0TypeField.EMAIL); + } + + public Builder type(ShieldListContentEmailV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public ShieldListContentEmailV2025R0 build() { + return new ShieldListContentEmailV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentemailv2025r0/ShieldListContentEmailV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentemailv2025r0/ShieldListContentEmailV2025R0TypeField.java new file mode 100644 index 000000000..0cd080f98 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentemailv2025r0/ShieldListContentEmailV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.shieldlistcontentemailv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ShieldListContentEmailV2025R0TypeField implements Valuable { + EMAIL("email"); + + private final String value; + + ShieldListContentEmailV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ShieldListContentEmailV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public ShieldListContentEmailV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ShieldListContentEmailV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ShieldListContentEmailV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public ShieldListContentEmailV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0.java new file mode 100644 index 000000000..e41c4acd8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0.java @@ -0,0 +1,111 @@ +package com.box.sdkgen.schemas.v2025r0.shieldlistcontentintegrationv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldListContentIntegrationV2025R0 extends SerializableObject { + + @JsonDeserialize( + using = + ShieldListContentIntegrationV2025R0TypeField + .ShieldListContentIntegrationV2025R0TypeFieldDeserializer.class) + @JsonSerialize( + using = + ShieldListContentIntegrationV2025R0TypeField + .ShieldListContentIntegrationV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + protected final List integrations; + + public ShieldListContentIntegrationV2025R0( + @JsonProperty("integrations") + List integrations) { + super(); + this.integrations = integrations; + this.type = + new EnumWrapper( + ShieldListContentIntegrationV2025R0TypeField.INTEGRATION); + } + + protected ShieldListContentIntegrationV2025R0(Builder builder) { + super(); + this.type = builder.type; + this.integrations = builder.integrations; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public List getIntegrations() { + return integrations; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldListContentIntegrationV2025R0 casted = (ShieldListContentIntegrationV2025R0) o; + return Objects.equals(type, casted.type) && Objects.equals(integrations, casted.integrations); + } + + @Override + public int hashCode() { + return Objects.hash(type, integrations); + } + + @Override + public String toString() { + return "ShieldListContentIntegrationV2025R0{" + + "type='" + + type + + '\'' + + ", " + + "integrations='" + + integrations + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final List integrations; + + public Builder(List integrations) { + super(); + this.integrations = integrations; + this.type = + new EnumWrapper( + ShieldListContentIntegrationV2025R0TypeField.INTEGRATION); + } + + public Builder type(ShieldListContentIntegrationV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public ShieldListContentIntegrationV2025R0 build() { + return new ShieldListContentIntegrationV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0IntegrationsField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0IntegrationsField.java new file mode 100644 index 000000000..85db3d3f2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0IntegrationsField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.v2025r0.shieldlistcontentintegrationv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldListContentIntegrationV2025R0IntegrationsField extends SerializableObject { + + protected String id; + + public ShieldListContentIntegrationV2025R0IntegrationsField() { + super(); + } + + protected ShieldListContentIntegrationV2025R0IntegrationsField(Builder builder) { + super(); + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldListContentIntegrationV2025R0IntegrationsField casted = + (ShieldListContentIntegrationV2025R0IntegrationsField) o; + return Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + return "ShieldListContentIntegrationV2025R0IntegrationsField{" + "id='" + id + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + public Builder id(String id) { + this.id = id; + return this; + } + + public ShieldListContentIntegrationV2025R0IntegrationsField build() { + return new ShieldListContentIntegrationV2025R0IntegrationsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0TypeField.java new file mode 100644 index 000000000..ba2b883c9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.shieldlistcontentintegrationv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ShieldListContentIntegrationV2025R0TypeField implements Valuable { + INTEGRATION("integration"); + + private final String value; + + ShieldListContentIntegrationV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ShieldListContentIntegrationV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public ShieldListContentIntegrationV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ShieldListContentIntegrationV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ShieldListContentIntegrationV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public ShieldListContentIntegrationV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentipv2025r0/ShieldListContentIpV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentipv2025r0/ShieldListContentIpV2025R0.java new file mode 100644 index 000000000..b4a1651e3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentipv2025r0/ShieldListContentIpV2025R0.java @@ -0,0 +1,108 @@ +package com.box.sdkgen.schemas.v2025r0.shieldlistcontentipv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldListContentIpV2025R0 extends SerializableObject { + + @JsonDeserialize( + using = + ShieldListContentIpV2025R0TypeField.ShieldListContentIpV2025R0TypeFieldDeserializer.class) + @JsonSerialize( + using = + ShieldListContentIpV2025R0TypeField.ShieldListContentIpV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("ip_addresses") + protected final List ipAddresses; + + public ShieldListContentIpV2025R0(@JsonProperty("ip_addresses") List ipAddresses) { + super(); + this.ipAddresses = ipAddresses; + this.type = + new EnumWrapper( + ShieldListContentIpV2025R0TypeField.IP); + } + + protected ShieldListContentIpV2025R0(Builder builder) { + super(); + this.type = builder.type; + this.ipAddresses = builder.ipAddresses; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public List getIpAddresses() { + return ipAddresses; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldListContentIpV2025R0 casted = (ShieldListContentIpV2025R0) o; + return Objects.equals(type, casted.type) && Objects.equals(ipAddresses, casted.ipAddresses); + } + + @Override + public int hashCode() { + return Objects.hash(type, ipAddresses); + } + + @Override + public String toString() { + return "ShieldListContentIpV2025R0{" + + "type='" + + type + + '\'' + + ", " + + "ipAddresses='" + + ipAddresses + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final List ipAddresses; + + public Builder(List ipAddresses) { + super(); + this.ipAddresses = ipAddresses; + this.type = + new EnumWrapper( + ShieldListContentIpV2025R0TypeField.IP); + } + + public Builder type(ShieldListContentIpV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public ShieldListContentIpV2025R0 build() { + return new ShieldListContentIpV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentipv2025r0/ShieldListContentIpV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentipv2025r0/ShieldListContentIpV2025R0TypeField.java new file mode 100644 index 000000000..96e463527 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentipv2025r0/ShieldListContentIpV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.shieldlistcontentipv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ShieldListContentIpV2025R0TypeField implements Valuable { + IP("ip"); + + private final String value; + + ShieldListContentIpV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ShieldListContentIpV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public ShieldListContentIpV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ShieldListContentIpV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ShieldListContentIpV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public ShieldListContentIpV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentrequestv2025r0/ShieldListContentRequestV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentrequestv2025r0/ShieldListContentRequestV2025R0.java new file mode 100644 index 000000000..bf74fe4a0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentrequestv2025r0/ShieldListContentRequestV2025R0.java @@ -0,0 +1,121 @@ +package com.box.sdkgen.schemas.v2025r0.shieldlistcontentrequestv2025r0; + +import com.box.sdkgen.internal.OneOfFour; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentcountryv2025r0.ShieldListContentCountryV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentdomainv2025r0.ShieldListContentDomainV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentemailv2025r0.ShieldListContentEmailV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentipv2025r0.ShieldListContentIpV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize( + using = ShieldListContentRequestV2025R0.ShieldListContentRequestV2025R0Deserializer.class) +@JsonSerialize(using = OneOfFour.OneOfFourSerializer.class) +public class ShieldListContentRequestV2025R0 + extends OneOfFour< + ShieldListContentCountryV2025R0, + ShieldListContentDomainV2025R0, + ShieldListContentEmailV2025R0, + ShieldListContentIpV2025R0> { + + protected final String type; + + public ShieldListContentRequestV2025R0( + ShieldListContentCountryV2025R0 shieldListContentCountryV2025R0) { + super(shieldListContentCountryV2025R0, null, null, null); + this.type = EnumWrapper.convertToString(shieldListContentCountryV2025R0.getType()); + } + + public ShieldListContentRequestV2025R0( + ShieldListContentDomainV2025R0 shieldListContentDomainV2025R0) { + super(null, shieldListContentDomainV2025R0, null, null); + this.type = EnumWrapper.convertToString(shieldListContentDomainV2025R0.getType()); + } + + public ShieldListContentRequestV2025R0( + ShieldListContentEmailV2025R0 shieldListContentEmailV2025R0) { + super(null, null, shieldListContentEmailV2025R0, null); + this.type = EnumWrapper.convertToString(shieldListContentEmailV2025R0.getType()); + } + + public ShieldListContentRequestV2025R0(ShieldListContentIpV2025R0 shieldListContentIpV2025R0) { + super(null, null, null, shieldListContentIpV2025R0); + this.type = EnumWrapper.convertToString(shieldListContentIpV2025R0.getType()); + } + + public boolean isShieldListContentCountryV2025R0() { + return value0 != null; + } + + public ShieldListContentCountryV2025R0 getShieldListContentCountryV2025R0() { + return value0; + } + + public boolean isShieldListContentDomainV2025R0() { + return value1 != null; + } + + public ShieldListContentDomainV2025R0 getShieldListContentDomainV2025R0() { + return value1; + } + + public boolean isShieldListContentEmailV2025R0() { + return value2 != null; + } + + public ShieldListContentEmailV2025R0 getShieldListContentEmailV2025R0() { + return value2; + } + + public boolean isShieldListContentIpV2025R0() { + return value3 != null; + } + + public ShieldListContentIpV2025R0 getShieldListContentIpV2025R0() { + return value3; + } + + public String getType() { + return type; + } + + static class ShieldListContentRequestV2025R0Deserializer + extends JsonDeserializer { + + public ShieldListContentRequestV2025R0Deserializer() { + super(); + } + + @Override + public ShieldListContentRequestV2025R0 deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "country": + return new ShieldListContentRequestV2025R0( + JsonManager.deserialize(node, ShieldListContentCountryV2025R0.class)); + case "domain": + return new ShieldListContentRequestV2025R0( + JsonManager.deserialize(node, ShieldListContentDomainV2025R0.class)); + case "email": + return new ShieldListContentRequestV2025R0( + JsonManager.deserialize(node, ShieldListContentEmailV2025R0.class)); + case "ip": + return new ShieldListContentRequestV2025R0( + JsonManager.deserialize(node, ShieldListContentIpV2025R0.class)); + } + } + throw new JsonMappingException(jp, "Unable to deserialize ShieldListContentRequestV2025R0"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentv2025r0/ShieldListContentV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentv2025r0/ShieldListContentV2025R0.java new file mode 100644 index 000000000..71336a431 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentv2025r0/ShieldListContentV2025R0.java @@ -0,0 +1,136 @@ +package com.box.sdkgen.schemas.v2025r0.shieldlistcontentv2025r0; + +import com.box.sdkgen.internal.OneOfFive; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentcountryv2025r0.ShieldListContentCountryV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentdomainv2025r0.ShieldListContentDomainV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentemailv2025r0.ShieldListContentEmailV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentintegrationv2025r0.ShieldListContentIntegrationV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentipv2025r0.ShieldListContentIpV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize(using = ShieldListContentV2025R0.ShieldListContentV2025R0Deserializer.class) +@JsonSerialize(using = OneOfFive.OneOfFiveSerializer.class) +public class ShieldListContentV2025R0 + extends OneOfFive< + ShieldListContentCountryV2025R0, + ShieldListContentDomainV2025R0, + ShieldListContentEmailV2025R0, + ShieldListContentIpV2025R0, + ShieldListContentIntegrationV2025R0> { + + protected final String type; + + public ShieldListContentV2025R0(ShieldListContentCountryV2025R0 shieldListContentCountryV2025R0) { + super(shieldListContentCountryV2025R0, null, null, null, null); + this.type = EnumWrapper.convertToString(shieldListContentCountryV2025R0.getType()); + } + + public ShieldListContentV2025R0(ShieldListContentDomainV2025R0 shieldListContentDomainV2025R0) { + super(null, shieldListContentDomainV2025R0, null, null, null); + this.type = EnumWrapper.convertToString(shieldListContentDomainV2025R0.getType()); + } + + public ShieldListContentV2025R0(ShieldListContentEmailV2025R0 shieldListContentEmailV2025R0) { + super(null, null, shieldListContentEmailV2025R0, null, null); + this.type = EnumWrapper.convertToString(shieldListContentEmailV2025R0.getType()); + } + + public ShieldListContentV2025R0(ShieldListContentIpV2025R0 shieldListContentIpV2025R0) { + super(null, null, null, shieldListContentIpV2025R0, null); + this.type = EnumWrapper.convertToString(shieldListContentIpV2025R0.getType()); + } + + public ShieldListContentV2025R0( + ShieldListContentIntegrationV2025R0 shieldListContentIntegrationV2025R0) { + super(null, null, null, null, shieldListContentIntegrationV2025R0); + this.type = EnumWrapper.convertToString(shieldListContentIntegrationV2025R0.getType()); + } + + public boolean isShieldListContentCountryV2025R0() { + return value0 != null; + } + + public ShieldListContentCountryV2025R0 getShieldListContentCountryV2025R0() { + return value0; + } + + public boolean isShieldListContentDomainV2025R0() { + return value1 != null; + } + + public ShieldListContentDomainV2025R0 getShieldListContentDomainV2025R0() { + return value1; + } + + public boolean isShieldListContentEmailV2025R0() { + return value2 != null; + } + + public ShieldListContentEmailV2025R0 getShieldListContentEmailV2025R0() { + return value2; + } + + public boolean isShieldListContentIpV2025R0() { + return value3 != null; + } + + public ShieldListContentIpV2025R0 getShieldListContentIpV2025R0() { + return value3; + } + + public boolean isShieldListContentIntegrationV2025R0() { + return value4 != null; + } + + public ShieldListContentIntegrationV2025R0 getShieldListContentIntegrationV2025R0() { + return value4; + } + + public String getType() { + return type; + } + + static class ShieldListContentV2025R0Deserializer + extends JsonDeserializer { + + public ShieldListContentV2025R0Deserializer() { + super(); + } + + @Override + public ShieldListContentV2025R0 deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "country": + return new ShieldListContentV2025R0( + JsonManager.deserialize(node, ShieldListContentCountryV2025R0.class)); + case "domain": + return new ShieldListContentV2025R0( + JsonManager.deserialize(node, ShieldListContentDomainV2025R0.class)); + case "email": + return new ShieldListContentV2025R0( + JsonManager.deserialize(node, ShieldListContentEmailV2025R0.class)); + case "ip": + return new ShieldListContentV2025R0( + JsonManager.deserialize(node, ShieldListContentIpV2025R0.class)); + case "integration": + return new ShieldListContentV2025R0( + JsonManager.deserialize(node, ShieldListContentIntegrationV2025R0.class)); + } + } + throw new JsonMappingException(jp, "Unable to deserialize ShieldListContentV2025R0"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0.java new file mode 100644 index 000000000..a7b0cbeff --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0.java @@ -0,0 +1,139 @@ +package com.box.sdkgen.schemas.v2025r0.shieldlistminiv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldListMiniV2025R0 extends SerializableObject { + + protected final String id; + + @JsonDeserialize( + using = ShieldListMiniV2025R0TypeField.ShieldListMiniV2025R0TypeFieldDeserializer.class) + @JsonSerialize( + using = ShieldListMiniV2025R0TypeField.ShieldListMiniV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + protected final String name; + + protected final ShieldListMiniV2025R0ContentField content; + + public ShieldListMiniV2025R0( + @JsonProperty("id") String id, + @JsonProperty("name") String name, + @JsonProperty("content") ShieldListMiniV2025R0ContentField content) { + super(); + this.id = id; + this.name = name; + this.content = content; + this.type = + new EnumWrapper(ShieldListMiniV2025R0TypeField.SHIELD_LIST); + } + + protected ShieldListMiniV2025R0(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.name = builder.name; + this.content = builder.content; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getName() { + return name; + } + + public ShieldListMiniV2025R0ContentField getContent() { + return content; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldListMiniV2025R0 casted = (ShieldListMiniV2025R0) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name) + && Objects.equals(content, casted.content); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name, content); + } + + @Override + public String toString() { + return "ShieldListMiniV2025R0{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "content='" + + content + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + protected final String name; + + protected final ShieldListMiniV2025R0ContentField content; + + public Builder(String id, String name, ShieldListMiniV2025R0ContentField content) { + super(); + this.id = id; + this.name = name; + this.content = content; + this.type = + new EnumWrapper( + ShieldListMiniV2025R0TypeField.SHIELD_LIST); + } + + public Builder type(ShieldListMiniV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public ShieldListMiniV2025R0 build() { + return new ShieldListMiniV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0ContentField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0ContentField.java new file mode 100644 index 000000000..119d28275 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0ContentField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.shieldlistminiv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldListMiniV2025R0ContentField extends SerializableObject { + + protected String type; + + public ShieldListMiniV2025R0ContentField() { + super(); + } + + protected ShieldListMiniV2025R0ContentField(Builder builder) { + super(); + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldListMiniV2025R0ContentField casted = (ShieldListMiniV2025R0ContentField) o; + return Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(type); + } + + @Override + public String toString() { + return "ShieldListMiniV2025R0ContentField{" + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String type; + + public Builder type(String type) { + this.type = type; + return this; + } + + public ShieldListMiniV2025R0ContentField build() { + return new ShieldListMiniV2025R0ContentField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0TypeField.java new file mode 100644 index 000000000..7cea0655b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.shieldlistminiv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ShieldListMiniV2025R0TypeField implements Valuable { + SHIELD_LIST("shield_list"); + + private final String value; + + ShieldListMiniV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ShieldListMiniV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public ShieldListMiniV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ShieldListMiniV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ShieldListMiniV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public ShieldListMiniV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistscreatev2025r0/ShieldListsCreateV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistscreatev2025r0/ShieldListsCreateV2025R0.java new file mode 100644 index 000000000..a3becfd8d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistscreatev2025r0/ShieldListsCreateV2025R0.java @@ -0,0 +1,158 @@ +package com.box.sdkgen.schemas.v2025r0.shieldlistscreatev2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentcountryv2025r0.ShieldListContentCountryV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentdomainv2025r0.ShieldListContentDomainV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentemailv2025r0.ShieldListContentEmailV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentipv2025r0.ShieldListContentIpV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentrequestv2025r0.ShieldListContentRequestV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldListsCreateV2025R0 extends SerializableObject { + + protected final String name; + + protected String description; + + protected final ShieldListContentRequestV2025R0 content; + + public ShieldListsCreateV2025R0(String name, ShieldListContentCountryV2025R0 content) { + super(); + this.name = name; + this.content = new ShieldListContentRequestV2025R0(content); + } + + public ShieldListsCreateV2025R0(String name, ShieldListContentDomainV2025R0 content) { + super(); + this.name = name; + this.content = new ShieldListContentRequestV2025R0(content); + } + + public ShieldListsCreateV2025R0(String name, ShieldListContentEmailV2025R0 content) { + super(); + this.name = name; + this.content = new ShieldListContentRequestV2025R0(content); + } + + public ShieldListsCreateV2025R0(String name, ShieldListContentIpV2025R0 content) { + super(); + this.name = name; + this.content = new ShieldListContentRequestV2025R0(content); + } + + public ShieldListsCreateV2025R0( + @JsonProperty("name") String name, + @JsonProperty("content") ShieldListContentRequestV2025R0 content) { + super(); + this.name = name; + this.content = content; + } + + protected ShieldListsCreateV2025R0(Builder builder) { + super(); + this.name = builder.name; + this.description = builder.description; + this.content = builder.content; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + public ShieldListContentRequestV2025R0 getContent() { + return content; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldListsCreateV2025R0 casted = (ShieldListsCreateV2025R0) o; + return Objects.equals(name, casted.name) + && Objects.equals(description, casted.description) + && Objects.equals(content, casted.content); + } + + @Override + public int hashCode() { + return Objects.hash(name, description, content); + } + + @Override + public String toString() { + return "ShieldListsCreateV2025R0{" + + "name='" + + name + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "content='" + + content + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String name; + + protected String description; + + protected final ShieldListContentRequestV2025R0 content; + + public Builder(String name, ShieldListContentCountryV2025R0 content) { + super(); + this.name = name; + this.content = new ShieldListContentRequestV2025R0(content); + } + + public Builder(String name, ShieldListContentDomainV2025R0 content) { + super(); + this.name = name; + this.content = new ShieldListContentRequestV2025R0(content); + } + + public Builder(String name, ShieldListContentEmailV2025R0 content) { + super(); + this.name = name; + this.content = new ShieldListContentRequestV2025R0(content); + } + + public Builder(String name, ShieldListContentIpV2025R0 content) { + super(); + this.name = name; + this.content = new ShieldListContentRequestV2025R0(content); + } + + public Builder(String name, ShieldListContentRequestV2025R0 content) { + super(); + this.name = name; + this.content = content; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public ShieldListsCreateV2025R0 build() { + return new ShieldListsCreateV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistsupdatev2025r0/ShieldListsUpdateV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistsupdatev2025r0/ShieldListsUpdateV2025R0.java new file mode 100644 index 000000000..a8c3a55a8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistsupdatev2025r0/ShieldListsUpdateV2025R0.java @@ -0,0 +1,158 @@ +package com.box.sdkgen.schemas.v2025r0.shieldlistsupdatev2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentcountryv2025r0.ShieldListContentCountryV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentdomainv2025r0.ShieldListContentDomainV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentemailv2025r0.ShieldListContentEmailV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentipv2025r0.ShieldListContentIpV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentrequestv2025r0.ShieldListContentRequestV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldListsUpdateV2025R0 extends SerializableObject { + + protected final String name; + + protected String description; + + protected final ShieldListContentRequestV2025R0 content; + + public ShieldListsUpdateV2025R0(String name, ShieldListContentCountryV2025R0 content) { + super(); + this.name = name; + this.content = new ShieldListContentRequestV2025R0(content); + } + + public ShieldListsUpdateV2025R0(String name, ShieldListContentDomainV2025R0 content) { + super(); + this.name = name; + this.content = new ShieldListContentRequestV2025R0(content); + } + + public ShieldListsUpdateV2025R0(String name, ShieldListContentEmailV2025R0 content) { + super(); + this.name = name; + this.content = new ShieldListContentRequestV2025R0(content); + } + + public ShieldListsUpdateV2025R0(String name, ShieldListContentIpV2025R0 content) { + super(); + this.name = name; + this.content = new ShieldListContentRequestV2025R0(content); + } + + public ShieldListsUpdateV2025R0( + @JsonProperty("name") String name, + @JsonProperty("content") ShieldListContentRequestV2025R0 content) { + super(); + this.name = name; + this.content = content; + } + + protected ShieldListsUpdateV2025R0(Builder builder) { + super(); + this.name = builder.name; + this.description = builder.description; + this.content = builder.content; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + public ShieldListContentRequestV2025R0 getContent() { + return content; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldListsUpdateV2025R0 casted = (ShieldListsUpdateV2025R0) o; + return Objects.equals(name, casted.name) + && Objects.equals(description, casted.description) + && Objects.equals(content, casted.content); + } + + @Override + public int hashCode() { + return Objects.hash(name, description, content); + } + + @Override + public String toString() { + return "ShieldListsUpdateV2025R0{" + + "name='" + + name + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "content='" + + content + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String name; + + protected String description; + + protected final ShieldListContentRequestV2025R0 content; + + public Builder(String name, ShieldListContentCountryV2025R0 content) { + super(); + this.name = name; + this.content = new ShieldListContentRequestV2025R0(content); + } + + public Builder(String name, ShieldListContentDomainV2025R0 content) { + super(); + this.name = name; + this.content = new ShieldListContentRequestV2025R0(content); + } + + public Builder(String name, ShieldListContentEmailV2025R0 content) { + super(); + this.name = name; + this.content = new ShieldListContentRequestV2025R0(content); + } + + public Builder(String name, ShieldListContentIpV2025R0 content) { + super(); + this.name = name; + this.content = new ShieldListContentRequestV2025R0(content); + } + + public Builder(String name, ShieldListContentRequestV2025R0 content) { + super(); + this.name = name; + this.content = content; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public ShieldListsUpdateV2025R0 build() { + return new ShieldListsUpdateV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistsv2025r0/ShieldListsV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistsv2025r0/ShieldListsV2025R0.java new file mode 100644 index 000000000..fed57f7c5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistsv2025r0/ShieldListsV2025R0.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.v2025r0.shieldlistsv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.shieldlistminiv2025r0.ShieldListMiniV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldListsV2025R0 extends SerializableObject { + + protected List entries; + + public ShieldListsV2025R0() { + super(); + } + + protected ShieldListsV2025R0(Builder builder) { + super(); + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldListsV2025R0 casted = (ShieldListsV2025R0) o; + return Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(entries); + } + + @Override + public String toString() { + return "ShieldListsV2025R0{" + "entries='" + entries + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List entries; + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public ShieldListsV2025R0 build() { + return new ShieldListsV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistv2025r0/ShieldListV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistv2025r0/ShieldListV2025R0.java new file mode 100644 index 000000000..db6740ba5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistv2025r0/ShieldListV2025R0.java @@ -0,0 +1,394 @@ +package com.box.sdkgen.schemas.v2025r0.shieldlistv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.v2025r0.enterprisereferencev2025r0.EnterpriseReferenceV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentcountryv2025r0.ShieldListContentCountryV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentdomainv2025r0.ShieldListContentDomainV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentemailv2025r0.ShieldListContentEmailV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentintegrationv2025r0.ShieldListContentIntegrationV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentipv2025r0.ShieldListContentIpV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentv2025r0.ShieldListContentV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ShieldListV2025R0 extends SerializableObject { + + protected final String id; + + protected final String type; + + protected final String name; + + protected final EnterpriseReferenceV2025R0 enterprise; + + protected String description; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected final Date createdAt; + + @JsonProperty("updated_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected final Date updatedAt; + + protected final ShieldListContentV2025R0 content; + + public ShieldListV2025R0( + String id, + String type, + String name, + EnterpriseReferenceV2025R0 enterprise, + Date createdAt, + Date updatedAt, + ShieldListContentCountryV2025R0 content) { + super(); + this.id = id; + this.type = type; + this.name = name; + this.enterprise = enterprise; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + this.content = new ShieldListContentV2025R0(content); + } + + public ShieldListV2025R0( + String id, + String type, + String name, + EnterpriseReferenceV2025R0 enterprise, + Date createdAt, + Date updatedAt, + ShieldListContentDomainV2025R0 content) { + super(); + this.id = id; + this.type = type; + this.name = name; + this.enterprise = enterprise; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + this.content = new ShieldListContentV2025R0(content); + } + + public ShieldListV2025R0( + String id, + String type, + String name, + EnterpriseReferenceV2025R0 enterprise, + Date createdAt, + Date updatedAt, + ShieldListContentEmailV2025R0 content) { + super(); + this.id = id; + this.type = type; + this.name = name; + this.enterprise = enterprise; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + this.content = new ShieldListContentV2025R0(content); + } + + public ShieldListV2025R0( + String id, + String type, + String name, + EnterpriseReferenceV2025R0 enterprise, + Date createdAt, + Date updatedAt, + ShieldListContentIpV2025R0 content) { + super(); + this.id = id; + this.type = type; + this.name = name; + this.enterprise = enterprise; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + this.content = new ShieldListContentV2025R0(content); + } + + public ShieldListV2025R0( + String id, + String type, + String name, + EnterpriseReferenceV2025R0 enterprise, + Date createdAt, + Date updatedAt, + ShieldListContentIntegrationV2025R0 content) { + super(); + this.id = id; + this.type = type; + this.name = name; + this.enterprise = enterprise; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + this.content = new ShieldListContentV2025R0(content); + } + + public ShieldListV2025R0( + @JsonProperty("id") String id, + @JsonProperty("type") String type, + @JsonProperty("name") String name, + @JsonProperty("enterprise") EnterpriseReferenceV2025R0 enterprise, + @JsonProperty("created_at") Date createdAt, + @JsonProperty("updated_at") Date updatedAt, + @JsonProperty("content") ShieldListContentV2025R0 content) { + super(); + this.id = id; + this.type = type; + this.name = name; + this.enterprise = enterprise; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + this.content = content; + } + + protected ShieldListV2025R0(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.name = builder.name; + this.enterprise = builder.enterprise; + this.description = builder.description; + this.createdAt = builder.createdAt; + this.updatedAt = builder.updatedAt; + this.content = builder.content; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getType() { + return type; + } + + public String getName() { + return name; + } + + public EnterpriseReferenceV2025R0 getEnterprise() { + return enterprise; + } + + public String getDescription() { + return description; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getUpdatedAt() { + return updatedAt; + } + + public ShieldListContentV2025R0 getContent() { + return content; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldListV2025R0 casted = (ShieldListV2025R0) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name) + && Objects.equals(enterprise, casted.enterprise) + && Objects.equals(description, casted.description) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(updatedAt, casted.updatedAt) + && Objects.equals(content, casted.content); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name, enterprise, description, createdAt, updatedAt, content); + } + + @Override + public String toString() { + return "ShieldListV2025R0{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "enterprise='" + + enterprise + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "updatedAt='" + + updatedAt + + '\'' + + ", " + + "content='" + + content + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected final String type; + + protected final String name; + + protected final EnterpriseReferenceV2025R0 enterprise; + + protected String description; + + protected final Date createdAt; + + protected final Date updatedAt; + + protected final ShieldListContentV2025R0 content; + + public Builder( + String id, + String type, + String name, + EnterpriseReferenceV2025R0 enterprise, + Date createdAt, + Date updatedAt, + ShieldListContentCountryV2025R0 content) { + super(); + this.id = id; + this.type = type; + this.name = name; + this.enterprise = enterprise; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + this.content = new ShieldListContentV2025R0(content); + } + + public Builder( + String id, + String type, + String name, + EnterpriseReferenceV2025R0 enterprise, + Date createdAt, + Date updatedAt, + ShieldListContentDomainV2025R0 content) { + super(); + this.id = id; + this.type = type; + this.name = name; + this.enterprise = enterprise; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + this.content = new ShieldListContentV2025R0(content); + } + + public Builder( + String id, + String type, + String name, + EnterpriseReferenceV2025R0 enterprise, + Date createdAt, + Date updatedAt, + ShieldListContentEmailV2025R0 content) { + super(); + this.id = id; + this.type = type; + this.name = name; + this.enterprise = enterprise; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + this.content = new ShieldListContentV2025R0(content); + } + + public Builder( + String id, + String type, + String name, + EnterpriseReferenceV2025R0 enterprise, + Date createdAt, + Date updatedAt, + ShieldListContentIpV2025R0 content) { + super(); + this.id = id; + this.type = type; + this.name = name; + this.enterprise = enterprise; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + this.content = new ShieldListContentV2025R0(content); + } + + public Builder( + String id, + String type, + String name, + EnterpriseReferenceV2025R0 enterprise, + Date createdAt, + Date updatedAt, + ShieldListContentIntegrationV2025R0 content) { + super(); + this.id = id; + this.type = type; + this.name = name; + this.enterprise = enterprise; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + this.content = new ShieldListContentV2025R0(content); + } + + public Builder( + String id, + String type, + String name, + EnterpriseReferenceV2025R0 enterprise, + Date createdAt, + Date updatedAt, + ShieldListContentV2025R0 content) { + super(); + this.id = id; + this.type = type; + this.name = name; + this.enterprise = enterprise; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + this.content = content; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public ShieldListV2025R0 build() { + return new ShieldListV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/termsofservicebasev2025r0/TermsOfServiceBaseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/termsofservicebasev2025r0/TermsOfServiceBaseV2025R0.java new file mode 100644 index 000000000..02595f037 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/termsofservicebasev2025r0/TermsOfServiceBaseV2025R0.java @@ -0,0 +1,97 @@ +package com.box.sdkgen.schemas.v2025r0.termsofservicebasev2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class TermsOfServiceBaseV2025R0 extends SerializableObject { + + protected final String id; + + @JsonDeserialize( + using = + TermsOfServiceBaseV2025R0TypeField.TermsOfServiceBaseV2025R0TypeFieldDeserializer.class) + @JsonSerialize( + using = TermsOfServiceBaseV2025R0TypeField.TermsOfServiceBaseV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + public TermsOfServiceBaseV2025R0(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + TermsOfServiceBaseV2025R0TypeField.TERMS_OF_SERVICE); + } + + protected TermsOfServiceBaseV2025R0(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TermsOfServiceBaseV2025R0 casted = (TermsOfServiceBaseV2025R0) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "TermsOfServiceBaseV2025R0{" + "id='" + id + '\'' + ", " + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + TermsOfServiceBaseV2025R0TypeField.TERMS_OF_SERVICE); + } + + public Builder type(TermsOfServiceBaseV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public TermsOfServiceBaseV2025R0 build() { + return new TermsOfServiceBaseV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/termsofservicebasev2025r0/TermsOfServiceBaseV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/termsofservicebasev2025r0/TermsOfServiceBaseV2025R0TypeField.java new file mode 100644 index 000000000..44f645453 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/termsofservicebasev2025r0/TermsOfServiceBaseV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.termsofservicebasev2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum TermsOfServiceBaseV2025R0TypeField implements Valuable { + TERMS_OF_SERVICE("terms_of_service"); + + private final String value; + + TermsOfServiceBaseV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class TermsOfServiceBaseV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public TermsOfServiceBaseV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(TermsOfServiceBaseV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class TermsOfServiceBaseV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public TermsOfServiceBaseV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/userbasev2025r0/UserBaseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/userbasev2025r0/UserBaseV2025R0.java new file mode 100644 index 000000000..b2ad9ac50 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/userbasev2025r0/UserBaseV2025R0.java @@ -0,0 +1,90 @@ +package com.box.sdkgen.schemas.v2025r0.userbasev2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UserBaseV2025R0 extends SerializableObject { + + protected final String id; + + @JsonDeserialize(using = UserBaseV2025R0TypeField.UserBaseV2025R0TypeFieldDeserializer.class) + @JsonSerialize(using = UserBaseV2025R0TypeField.UserBaseV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + public UserBaseV2025R0(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = new EnumWrapper(UserBaseV2025R0TypeField.USER); + } + + protected UserBaseV2025R0(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserBaseV2025R0 casted = (UserBaseV2025R0) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "UserBaseV2025R0{" + "id='" + id + '\'' + ", " + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + public Builder(String id) { + super(); + this.id = id; + this.type = new EnumWrapper(UserBaseV2025R0TypeField.USER); + } + + public Builder type(UserBaseV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public UserBaseV2025R0 build() { + return new UserBaseV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/userbasev2025r0/UserBaseV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/userbasev2025r0/UserBaseV2025R0TypeField.java new file mode 100644 index 000000000..d0f73986b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/userbasev2025r0/UserBaseV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.userbasev2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UserBaseV2025R0TypeField implements Valuable { + USER("user"); + + private final String value; + + UserBaseV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UserBaseV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public UserBaseV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UserBaseV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UserBaseV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public UserBaseV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/userminiv2025r0/UserMiniV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/userminiv2025r0/UserMiniV2025R0.java new file mode 100644 index 000000000..495ca03a7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/userminiv2025r0/UserMiniV2025R0.java @@ -0,0 +1,113 @@ +package com.box.sdkgen.schemas.v2025r0.userminiv2025r0; + +import com.box.sdkgen.schemas.v2025r0.userbasev2025r0.UserBaseV2025R0; +import com.box.sdkgen.schemas.v2025r0.userbasev2025r0.UserBaseV2025R0TypeField; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UserMiniV2025R0 extends UserBaseV2025R0 { + + protected String name; + + protected String login; + + public UserMiniV2025R0(@JsonProperty("id") String id) { + super(id); + } + + protected UserMiniV2025R0(Builder builder) { + super(builder); + this.name = builder.name; + this.login = builder.login; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public String getLogin() { + return login; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserMiniV2025R0 casted = (UserMiniV2025R0) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name) + && Objects.equals(login, casted.login); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name, login); + } + + @Override + public String toString() { + return "UserMiniV2025R0{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "login='" + + login + + '\'' + + "}"; + } + + public static class Builder extends UserBaseV2025R0.Builder { + + protected String name; + + protected String login; + + public Builder(String id) { + super(id); + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder login(String login) { + this.login = login; + return this; + } + + @Override + public Builder type(UserBaseV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public UserMiniV2025R0 build() { + return new UserMiniV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0.java new file mode 100644 index 000000000..83d69a360 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0.java @@ -0,0 +1,95 @@ +package com.box.sdkgen.schemas.v2025r0.weblinkreferencev2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class WeblinkReferenceV2025R0 extends SerializableObject { + + @JsonDeserialize( + using = WeblinkReferenceV2025R0TypeField.WeblinkReferenceV2025R0TypeFieldDeserializer.class) + @JsonSerialize( + using = WeblinkReferenceV2025R0TypeField.WeblinkReferenceV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + protected final String id; + + public WeblinkReferenceV2025R0(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper(WeblinkReferenceV2025R0TypeField.WEBLINK); + } + + protected WeblinkReferenceV2025R0(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WeblinkReferenceV2025R0 casted = (WeblinkReferenceV2025R0) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "WeblinkReferenceV2025R0{" + "type='" + type + '\'' + ", " + "id='" + id + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + WeblinkReferenceV2025R0TypeField.WEBLINK); + } + + public Builder type(WeblinkReferenceV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public WeblinkReferenceV2025R0 build() { + return new WeblinkReferenceV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0TypeField.java new file mode 100644 index 000000000..d5670fce6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.weblinkreferencev2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum WeblinkReferenceV2025R0TypeField implements Valuable { + WEBLINK("weblink"); + + private final String value; + + WeblinkReferenceV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class WeblinkReferenceV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public WeblinkReferenceV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(WeblinkReferenceV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class WeblinkReferenceV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public WeblinkReferenceV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/watermark/Watermark.java b/src/main/java/com/box/sdkgen/schemas/watermark/Watermark.java new file mode 100644 index 000000000..0788d6794 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/watermark/Watermark.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.watermark; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Watermark extends SerializableObject { + + protected WatermarkWatermarkField watermark; + + public Watermark() { + super(); + } + + protected Watermark(Builder builder) { + super(); + this.watermark = builder.watermark; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public WatermarkWatermarkField getWatermark() { + return watermark; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Watermark casted = (Watermark) o; + return Objects.equals(watermark, casted.watermark); + } + + @Override + public int hashCode() { + return Objects.hash(watermark); + } + + @Override + public String toString() { + return "Watermark{" + "watermark='" + watermark + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected WatermarkWatermarkField watermark; + + public Builder watermark(WatermarkWatermarkField watermark) { + this.watermark = watermark; + return this; + } + + public Watermark build() { + return new Watermark(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/watermark/WatermarkWatermarkField.java b/src/main/java/com/box/sdkgen/schemas/watermark/WatermarkWatermarkField.java new file mode 100644 index 000000000..636743fd4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/watermark/WatermarkWatermarkField.java @@ -0,0 +1,96 @@ +package com.box.sdkgen.schemas.watermark; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class WatermarkWatermarkField extends SerializableObject { + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date modifiedAt; + + public WatermarkWatermarkField() { + super(); + } + + protected WatermarkWatermarkField(Builder builder) { + super(); + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WatermarkWatermarkField casted = (WatermarkWatermarkField) o; + return Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt); + } + + @Override + public int hashCode() { + return Objects.hash(createdAt, modifiedAt); + } + + @Override + public String toString() { + return "WatermarkWatermarkField{" + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Date createdAt; + + protected Date modifiedAt; + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + public WatermarkWatermarkField build() { + return new WatermarkWatermarkField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/webhook/Webhook.java b/src/main/java/com/box/sdkgen/schemas/webhook/Webhook.java new file mode 100644 index 000000000..533032640 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/webhook/Webhook.java @@ -0,0 +1,235 @@ +package com.box.sdkgen.schemas.webhook; + +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.schemas.webhookmini.WebhookMini; +import com.box.sdkgen.schemas.webhookmini.WebhookMiniTargetField; +import com.box.sdkgen.schemas.webhookmini.WebhookMiniTypeField; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Webhook extends WebhookMini { + + @JsonProperty("created_by") + protected UserMini createdBy; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + protected String address; + + @JsonDeserialize(using = TriggersDeserializer.class) + @JsonSerialize(using = TriggersSerializer.class) + protected List> triggers; + + public Webhook() { + super(); + } + + protected Webhook(Builder builder) { + super(builder); + this.createdBy = builder.createdBy; + this.createdAt = builder.createdAt; + this.address = builder.address; + this.triggers = builder.triggers; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public UserMini getCreatedBy() { + return createdBy; + } + + public Date getCreatedAt() { + return createdAt; + } + + public String getAddress() { + return address; + } + + public List> getTriggers() { + return triggers; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Webhook casted = (Webhook) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(target, casted.target) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(address, casted.address) + && Objects.equals(triggers, casted.triggers); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, target, createdBy, createdAt, address, triggers); + } + + @Override + public String toString() { + return "Webhook{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "target='" + + target + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "address='" + + address + + '\'' + + ", " + + "triggers='" + + triggers + + '\'' + + "}"; + } + + public static class Builder extends WebhookMini.Builder { + + protected UserMini createdBy; + + protected Date createdAt; + + protected String address; + + protected List> triggers; + + public Builder createdBy(UserMini createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder address(String address) { + this.address = address; + return this; + } + + public Builder triggers(List triggers) { + this.triggers = EnumWrapper.wrapValuableEnumList(triggers, WebhookTriggersField.class); + return this; + } + + @Override + public Builder id(String id) { + this.id = id; + return this; + } + + @Override + public Builder type(WebhookMiniTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder target(WebhookMiniTargetField target) { + this.target = target; + return this; + } + + public Webhook build() { + return new Webhook(this); + } + } + + public static class TriggersDeserializer + extends JsonDeserializer>> { + + public final JsonDeserializer> elementDeserializer; + + public TriggersDeserializer() { + super(); + this.elementDeserializer = new WebhookTriggersField.WebhookTriggersFieldDeserializer(); + } + + @Override + public List> deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + JsonNode node = p.getCodec().readTree(p); + List> elements = new ArrayList<>(); + for (JsonNode item : node) { + JsonParser pa = item.traverse(p.getCodec()); + pa.nextToken(); + elements.add(elementDeserializer.deserialize(pa, ctxt)); + } + return elements; + } + } + + public static class TriggersSerializer + extends JsonSerializer>> { + + public final JsonSerializer> elementSerializer; + + public TriggersSerializer() { + super(); + this.elementSerializer = new WebhookTriggersField.WebhookTriggersFieldSerializer(); + } + + @Override + public void serialize( + List> value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeStartArray(); + for (EnumWrapper item : value) { + elementSerializer.serialize(item, gen, serializers); + } + gen.writeEndArray(); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/webhook/WebhookTriggersField.java b/src/main/java/com/box/sdkgen/schemas/webhook/WebhookTriggersField.java new file mode 100644 index 000000000..1a9754348 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/webhook/WebhookTriggersField.java @@ -0,0 +1,99 @@ +package com.box.sdkgen.schemas.webhook; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum WebhookTriggersField implements Valuable { + FILE_UPLOADED("FILE.UPLOADED"), + FILE_PREVIEWED("FILE.PREVIEWED"), + FILE_DOWNLOADED("FILE.DOWNLOADED"), + FILE_TRASHED("FILE.TRASHED"), + FILE_DELETED("FILE.DELETED"), + FILE_RESTORED("FILE.RESTORED"), + FILE_COPIED("FILE.COPIED"), + FILE_MOVED("FILE.MOVED"), + FILE_LOCKED("FILE.LOCKED"), + FILE_UNLOCKED("FILE.UNLOCKED"), + FILE_RENAMED("FILE.RENAMED"), + COMMENT_CREATED("COMMENT.CREATED"), + COMMENT_UPDATED("COMMENT.UPDATED"), + COMMENT_DELETED("COMMENT.DELETED"), + TASK_ASSIGNMENT_CREATED("TASK_ASSIGNMENT.CREATED"), + TASK_ASSIGNMENT_UPDATED("TASK_ASSIGNMENT.UPDATED"), + METADATA_INSTANCE_CREATED("METADATA_INSTANCE.CREATED"), + METADATA_INSTANCE_UPDATED("METADATA_INSTANCE.UPDATED"), + METADATA_INSTANCE_DELETED("METADATA_INSTANCE.DELETED"), + FOLDER_CREATED("FOLDER.CREATED"), + FOLDER_RENAMED("FOLDER.RENAMED"), + FOLDER_DOWNLOADED("FOLDER.DOWNLOADED"), + FOLDER_RESTORED("FOLDER.RESTORED"), + FOLDER_DELETED("FOLDER.DELETED"), + FOLDER_COPIED("FOLDER.COPIED"), + FOLDER_MOVED("FOLDER.MOVED"), + FOLDER_TRASHED("FOLDER.TRASHED"), + WEBHOOK_DELETED("WEBHOOK.DELETED"), + COLLABORATION_CREATED("COLLABORATION.CREATED"), + COLLABORATION_ACCEPTED("COLLABORATION.ACCEPTED"), + COLLABORATION_REJECTED("COLLABORATION.REJECTED"), + COLLABORATION_REMOVED("COLLABORATION.REMOVED"), + COLLABORATION_UPDATED("COLLABORATION.UPDATED"), + SHARED_LINK_DELETED("SHARED_LINK.DELETED"), + SHARED_LINK_CREATED("SHARED_LINK.CREATED"), + SHARED_LINK_UPDATED("SHARED_LINK.UPDATED"), + SIGN_REQUEST_COMPLETED("SIGN_REQUEST.COMPLETED"), + SIGN_REQUEST_DECLINED("SIGN_REQUEST.DECLINED"), + SIGN_REQUEST_EXPIRED("SIGN_REQUEST.EXPIRED"), + SIGN_REQUEST_SIGNER_EMAIL_BOUNCED("SIGN_REQUEST.SIGNER_EMAIL_BOUNCED"); + + private final String value; + + WebhookTriggersField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class WebhookTriggersFieldDeserializer + extends JsonDeserializer> { + + public WebhookTriggersFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(WebhookTriggersField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class WebhookTriggersFieldSerializer + extends JsonSerializer> { + + public WebhookTriggersFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/webhookinvocation/WebhookInvocation.java b/src/main/java/com/box/sdkgen/schemas/webhookinvocation/WebhookInvocation.java new file mode 100644 index 000000000..4ebb105fb --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/webhookinvocation/WebhookInvocation.java @@ -0,0 +1,221 @@ +package com.box.sdkgen.schemas.webhookinvocation; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.file.File; +import com.box.sdkgen.schemas.fileorfolder.FileOrFolder; +import com.box.sdkgen.schemas.folder.Folder; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.schemas.webhook.Webhook; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class WebhookInvocation extends SerializableObject { + + protected String id; + + @JsonDeserialize(using = WebhookInvocationTypeField.WebhookInvocationTypeFieldDeserializer.class) + @JsonSerialize(using = WebhookInvocationTypeField.WebhookInvocationTypeFieldSerializer.class) + protected EnumWrapper type; + + protected Webhook webhook; + + @JsonProperty("created_by") + protected UserMini createdBy; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonDeserialize( + using = WebhookInvocationTriggerField.WebhookInvocationTriggerFieldDeserializer.class) + @JsonSerialize( + using = WebhookInvocationTriggerField.WebhookInvocationTriggerFieldSerializer.class) + protected EnumWrapper trigger; + + protected FileOrFolder source; + + public WebhookInvocation() { + super(); + } + + protected WebhookInvocation(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.webhook = builder.webhook; + this.createdBy = builder.createdBy; + this.createdAt = builder.createdAt; + this.trigger = builder.trigger; + this.source = builder.source; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public Webhook getWebhook() { + return webhook; + } + + public UserMini getCreatedBy() { + return createdBy; + } + + public Date getCreatedAt() { + return createdAt; + } + + public EnumWrapper getTrigger() { + return trigger; + } + + public FileOrFolder getSource() { + return source; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WebhookInvocation casted = (WebhookInvocation) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(webhook, casted.webhook) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(trigger, casted.trigger) + && Objects.equals(source, casted.source); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, webhook, createdBy, createdAt, trigger, source); + } + + @Override + public String toString() { + return "WebhookInvocation{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "webhook='" + + webhook + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "trigger='" + + trigger + + '\'' + + ", " + + "source='" + + source + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected Webhook webhook; + + protected UserMini createdBy; + + protected Date createdAt; + + protected EnumWrapper trigger; + + protected FileOrFolder source; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(WebhookInvocationTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder webhook(Webhook webhook) { + this.webhook = webhook; + return this; + } + + public Builder createdBy(UserMini createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder trigger(WebhookInvocationTriggerField trigger) { + this.trigger = new EnumWrapper(trigger); + return this; + } + + public Builder trigger(EnumWrapper trigger) { + this.trigger = trigger; + return this; + } + + public Builder source(File source) { + this.source = new FileOrFolder(source); + return this; + } + + public Builder source(Folder source) { + this.source = new FileOrFolder(source); + return this; + } + + public Builder source(FileOrFolder source) { + this.source = source; + return this; + } + + public WebhookInvocation build() { + return new WebhookInvocation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/webhookinvocation/WebhookInvocationTriggerField.java b/src/main/java/com/box/sdkgen/schemas/webhookinvocation/WebhookInvocationTriggerField.java new file mode 100644 index 000000000..dd299d6c2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/webhookinvocation/WebhookInvocationTriggerField.java @@ -0,0 +1,101 @@ +package com.box.sdkgen.schemas.webhookinvocation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum WebhookInvocationTriggerField implements Valuable { + FILE_UPLOADED("FILE.UPLOADED"), + FILE_PREVIEWED("FILE.PREVIEWED"), + FILE_DOWNLOADED("FILE.DOWNLOADED"), + FILE_TRASHED("FILE.TRASHED"), + FILE_DELETED("FILE.DELETED"), + FILE_RESTORED("FILE.RESTORED"), + FILE_COPIED("FILE.COPIED"), + FILE_MOVED("FILE.MOVED"), + FILE_LOCKED("FILE.LOCKED"), + FILE_UNLOCKED("FILE.UNLOCKED"), + FILE_RENAMED("FILE.RENAMED"), + COMMENT_CREATED("COMMENT.CREATED"), + COMMENT_UPDATED("COMMENT.UPDATED"), + COMMENT_DELETED("COMMENT.DELETED"), + TASK_ASSIGNMENT_CREATED("TASK_ASSIGNMENT.CREATED"), + TASK_ASSIGNMENT_UPDATED("TASK_ASSIGNMENT.UPDATED"), + METADATA_INSTANCE_CREATED("METADATA_INSTANCE.CREATED"), + METADATA_INSTANCE_UPDATED("METADATA_INSTANCE.UPDATED"), + METADATA_INSTANCE_DELETED("METADATA_INSTANCE.DELETED"), + FOLDER_CREATED("FOLDER.CREATED"), + FOLDER_RENAMED("FOLDER.RENAMED"), + FOLDER_DOWNLOADED("FOLDER.DOWNLOADED"), + FOLDER_RESTORED("FOLDER.RESTORED"), + FOLDER_DELETED("FOLDER.DELETED"), + FOLDER_COPIED("FOLDER.COPIED"), + FOLDER_MOVED("FOLDER.MOVED"), + FOLDER_TRASHED("FOLDER.TRASHED"), + WEBHOOK_DELETED("WEBHOOK.DELETED"), + COLLABORATION_CREATED("COLLABORATION.CREATED"), + COLLABORATION_ACCEPTED("COLLABORATION.ACCEPTED"), + COLLABORATION_REJECTED("COLLABORATION.REJECTED"), + COLLABORATION_REMOVED("COLLABORATION.REMOVED"), + COLLABORATION_UPDATED("COLLABORATION.UPDATED"), + SHARED_LINK_DELETED("SHARED_LINK.DELETED"), + SHARED_LINK_CREATED("SHARED_LINK.CREATED"), + SHARED_LINK_UPDATED("SHARED_LINK.UPDATED"), + SIGN_REQUEST_COMPLETED("SIGN_REQUEST.COMPLETED"), + SIGN_REQUEST_DECLINED("SIGN_REQUEST.DECLINED"), + SIGN_REQUEST_EXPIRED("SIGN_REQUEST.EXPIRED"), + SIGN_REQUEST_SIGNER_EMAIL_BOUNCED("SIGN_REQUEST.SIGNER_EMAIL_BOUNCED"); + + private final String value; + + WebhookInvocationTriggerField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class WebhookInvocationTriggerFieldDeserializer + extends JsonDeserializer> { + + public WebhookInvocationTriggerFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(WebhookInvocationTriggerField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class WebhookInvocationTriggerFieldSerializer + extends JsonSerializer> { + + public WebhookInvocationTriggerFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/webhookinvocation/WebhookInvocationTypeField.java b/src/main/java/com/box/sdkgen/schemas/webhookinvocation/WebhookInvocationTypeField.java new file mode 100644 index 000000000..29b06376b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/webhookinvocation/WebhookInvocationTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.webhookinvocation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum WebhookInvocationTypeField implements Valuable { + WEBHOOK_EVENT("webhook_event"); + + private final String value; + + WebhookInvocationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class WebhookInvocationTypeFieldDeserializer + extends JsonDeserializer> { + + public WebhookInvocationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(WebhookInvocationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class WebhookInvocationTypeFieldSerializer + extends JsonSerializer> { + + public WebhookInvocationTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMini.java b/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMini.java new file mode 100644 index 000000000..3627fd41e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMini.java @@ -0,0 +1,114 @@ +package com.box.sdkgen.schemas.webhookmini; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class WebhookMini extends SerializableObject { + + protected String id; + + @JsonDeserialize(using = WebhookMiniTypeField.WebhookMiniTypeFieldDeserializer.class) + @JsonSerialize(using = WebhookMiniTypeField.WebhookMiniTypeFieldSerializer.class) + protected EnumWrapper type; + + protected WebhookMiniTargetField target; + + public WebhookMini() { + super(); + } + + protected WebhookMini(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.target = builder.target; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public WebhookMiniTargetField getTarget() { + return target; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WebhookMini casted = (WebhookMini) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(target, casted.target); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, target); + } + + @Override + public String toString() { + return "WebhookMini{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "target='" + + target + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected WebhookMiniTargetField target; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(WebhookMiniTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder target(WebhookMiniTargetField target) { + this.target = target; + return this; + } + + public WebhookMini build() { + return new WebhookMini(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMiniTargetField.java b/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMiniTargetField.java new file mode 100644 index 000000000..19408d57c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMiniTargetField.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.schemas.webhookmini; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class WebhookMiniTargetField extends SerializableObject { + + protected String id; + + @JsonDeserialize(using = WebhookMiniTargetTypeField.WebhookMiniTargetTypeFieldDeserializer.class) + @JsonSerialize(using = WebhookMiniTargetTypeField.WebhookMiniTargetTypeFieldSerializer.class) + protected EnumWrapper type; + + public WebhookMiniTargetField() { + super(); + } + + protected WebhookMiniTargetField(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WebhookMiniTargetField casted = (WebhookMiniTargetField) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "WebhookMiniTargetField{" + "id='" + id + '\'' + ", " + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(WebhookMiniTargetTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public WebhookMiniTargetField build() { + return new WebhookMiniTargetField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMiniTargetTypeField.java b/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMiniTargetTypeField.java new file mode 100644 index 000000000..2c5e7b9a2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMiniTargetTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.webhookmini; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum WebhookMiniTargetTypeField implements Valuable { + FILE("file"), + FOLDER("folder"); + + private final String value; + + WebhookMiniTargetTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class WebhookMiniTargetTypeFieldDeserializer + extends JsonDeserializer> { + + public WebhookMiniTargetTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(WebhookMiniTargetTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class WebhookMiniTargetTypeFieldSerializer + extends JsonSerializer> { + + public WebhookMiniTargetTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMiniTypeField.java b/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMiniTypeField.java new file mode 100644 index 000000000..b9a49a308 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMiniTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.webhookmini; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum WebhookMiniTypeField implements Valuable { + WEBHOOK("webhook"); + + private final String value; + + WebhookMiniTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class WebhookMiniTypeFieldDeserializer + extends JsonDeserializer> { + + public WebhookMiniTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(WebhookMiniTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class WebhookMiniTypeFieldSerializer + extends JsonSerializer> { + + public WebhookMiniTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/webhooks/Webhooks.java b/src/main/java/com/box/sdkgen/schemas/webhooks/Webhooks.java new file mode 100644 index 000000000..026a515cc --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/webhooks/Webhooks.java @@ -0,0 +1,133 @@ +package com.box.sdkgen.schemas.webhooks; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.webhookmini.WebhookMini; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Webhooks extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + protected List entries; + + public Webhooks() { + super(); + } + + protected Webhooks(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Webhooks casted = (Webhooks) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "Webhooks{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public Webhooks build() { + return new Webhooks(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/weblink/WebLink.java b/src/main/java/com/box/sdkgen/schemas/weblink/WebLink.java new file mode 100644 index 000000000..fb6a7e087 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/weblink/WebLink.java @@ -0,0 +1,401 @@ +package com.box.sdkgen.schemas.weblink; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.schemas.weblinkbase.WebLinkBaseTypeField; +import com.box.sdkgen.schemas.weblinkmini.WebLinkMini; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class WebLink extends WebLinkMini { + + protected FolderMini parent; + + protected String description; + + @JsonProperty("path_collection") + protected WebLinkPathCollectionField pathCollection; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date modifiedAt; + + @JsonProperty("trashed_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date trashedAt; + + @JsonProperty("purged_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date purgedAt; + + @JsonProperty("created_by") + protected UserMini createdBy; + + @JsonProperty("modified_by") + protected UserMini modifiedBy; + + @JsonProperty("owned_by") + protected UserMini ownedBy; + + @JsonProperty("shared_link") + protected WebLinkSharedLinkField sharedLink; + + @JsonDeserialize(using = WebLinkItemStatusField.WebLinkItemStatusFieldDeserializer.class) + @JsonSerialize(using = WebLinkItemStatusField.WebLinkItemStatusFieldSerializer.class) + @JsonProperty("item_status") + protected EnumWrapper itemStatus; + + public WebLink(@JsonProperty("id") String id) { + super(id); + } + + protected WebLink(Builder builder) { + super(builder); + this.parent = builder.parent; + this.description = builder.description; + this.pathCollection = builder.pathCollection; + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + this.trashedAt = builder.trashedAt; + this.purgedAt = builder.purgedAt; + this.createdBy = builder.createdBy; + this.modifiedBy = builder.modifiedBy; + this.ownedBy = builder.ownedBy; + this.sharedLink = builder.sharedLink; + this.itemStatus = builder.itemStatus; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public FolderMini getParent() { + return parent; + } + + public String getDescription() { + return description; + } + + public WebLinkPathCollectionField getPathCollection() { + return pathCollection; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + public Date getTrashedAt() { + return trashedAt; + } + + public Date getPurgedAt() { + return purgedAt; + } + + public UserMini getCreatedBy() { + return createdBy; + } + + public UserMini getModifiedBy() { + return modifiedBy; + } + + public UserMini getOwnedBy() { + return ownedBy; + } + + public WebLinkSharedLinkField getSharedLink() { + return sharedLink; + } + + public EnumWrapper getItemStatus() { + return itemStatus; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WebLink casted = (WebLink) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(etag, casted.etag) + && Objects.equals(url, casted.url) + && Objects.equals(sequenceId, casted.sequenceId) + && Objects.equals(name, casted.name) + && Objects.equals(parent, casted.parent) + && Objects.equals(description, casted.description) + && Objects.equals(pathCollection, casted.pathCollection) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt) + && Objects.equals(trashedAt, casted.trashedAt) + && Objects.equals(purgedAt, casted.purgedAt) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(modifiedBy, casted.modifiedBy) + && Objects.equals(ownedBy, casted.ownedBy) + && Objects.equals(sharedLink, casted.sharedLink) + && Objects.equals(itemStatus, casted.itemStatus); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + type, + etag, + url, + sequenceId, + name, + parent, + description, + pathCollection, + createdAt, + modifiedAt, + trashedAt, + purgedAt, + createdBy, + modifiedBy, + ownedBy, + sharedLink, + itemStatus); + } + + @Override + public String toString() { + return "WebLink{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "etag='" + + etag + + '\'' + + ", " + + "url='" + + url + + '\'' + + ", " + + "sequenceId='" + + sequenceId + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "pathCollection='" + + pathCollection + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + ", " + + "trashedAt='" + + trashedAt + + '\'' + + ", " + + "purgedAt='" + + purgedAt + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "modifiedBy='" + + modifiedBy + + '\'' + + ", " + + "ownedBy='" + + ownedBy + + '\'' + + ", " + + "sharedLink='" + + sharedLink + + '\'' + + ", " + + "itemStatus='" + + itemStatus + + '\'' + + "}"; + } + + public static class Builder extends WebLinkMini.Builder { + + protected FolderMini parent; + + protected String description; + + protected WebLinkPathCollectionField pathCollection; + + protected Date createdAt; + + protected Date modifiedAt; + + protected Date trashedAt; + + protected Date purgedAt; + + protected UserMini createdBy; + + protected UserMini modifiedBy; + + protected UserMini ownedBy; + + protected WebLinkSharedLinkField sharedLink; + + protected EnumWrapper itemStatus; + + public Builder(String id) { + super(id); + } + + public Builder parent(FolderMini parent) { + this.parent = parent; + return this; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder pathCollection(WebLinkPathCollectionField pathCollection) { + this.pathCollection = pathCollection; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + public Builder trashedAt(Date trashedAt) { + this.trashedAt = trashedAt; + this.markNullableFieldAsSet("trashed_at"); + return this; + } + + public Builder purgedAt(Date purgedAt) { + this.purgedAt = purgedAt; + this.markNullableFieldAsSet("purged_at"); + return this; + } + + public Builder createdBy(UserMini createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder modifiedBy(UserMini modifiedBy) { + this.modifiedBy = modifiedBy; + return this; + } + + public Builder ownedBy(UserMini ownedBy) { + this.ownedBy = ownedBy; + return this; + } + + public Builder sharedLink(WebLinkSharedLinkField sharedLink) { + this.sharedLink = sharedLink; + return this; + } + + public Builder itemStatus(WebLinkItemStatusField itemStatus) { + this.itemStatus = new EnumWrapper(itemStatus); + return this; + } + + public Builder itemStatus(EnumWrapper itemStatus) { + this.itemStatus = itemStatus; + return this; + } + + @Override + public Builder type(WebLinkBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder etag(String etag) { + this.etag = etag; + return this; + } + + @Override + public Builder url(String url) { + this.url = url; + return this; + } + + @Override + public Builder sequenceId(String sequenceId) { + this.sequenceId = sequenceId; + return this; + } + + @Override + public Builder name(String name) { + this.name = name; + return this; + } + + public WebLink build() { + return new WebLink(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkItemStatusField.java b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkItemStatusField.java new file mode 100644 index 000000000..d2e2e4fab --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkItemStatusField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.weblink; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum WebLinkItemStatusField implements Valuable { + ACTIVE("active"), + TRASHED("trashed"), + DELETED("deleted"); + + private final String value; + + WebLinkItemStatusField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class WebLinkItemStatusFieldDeserializer + extends JsonDeserializer> { + + public WebLinkItemStatusFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(WebLinkItemStatusField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class WebLinkItemStatusFieldSerializer + extends JsonSerializer> { + + public WebLinkItemStatusFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkPathCollectionField.java b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkPathCollectionField.java new file mode 100644 index 000000000..822d07beb --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkPathCollectionField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.weblink; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class WebLinkPathCollectionField extends SerializableObject { + + @JsonProperty("total_count") + protected final long totalCount; + + protected final List entries; + + public WebLinkPathCollectionField( + @JsonProperty("total_count") long totalCount, + @JsonProperty("entries") List entries) { + super(); + this.totalCount = totalCount; + this.entries = entries; + } + + public long getTotalCount() { + return totalCount; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WebLinkPathCollectionField casted = (WebLinkPathCollectionField) o; + return Objects.equals(totalCount, casted.totalCount) && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, entries); + } + + @Override + public String toString() { + return "WebLinkPathCollectionField{" + + "totalCount='" + + totalCount + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkAccessField.java b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkAccessField.java new file mode 100644 index 000000000..355e0d89b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkAccessField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.weblink; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum WebLinkSharedLinkAccessField implements Valuable { + OPEN("open"), + COMPANY("company"), + COLLABORATORS("collaborators"); + + private final String value; + + WebLinkSharedLinkAccessField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class WebLinkSharedLinkAccessFieldDeserializer + extends JsonDeserializer> { + + public WebLinkSharedLinkAccessFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(WebLinkSharedLinkAccessField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class WebLinkSharedLinkAccessFieldSerializer + extends JsonSerializer> { + + public WebLinkSharedLinkAccessFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkEffectiveAccessField.java b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkEffectiveAccessField.java new file mode 100644 index 000000000..d980fba2c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkEffectiveAccessField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.weblink; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum WebLinkSharedLinkEffectiveAccessField implements Valuable { + OPEN("open"), + COMPANY("company"), + COLLABORATORS("collaborators"); + + private final String value; + + WebLinkSharedLinkEffectiveAccessField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class WebLinkSharedLinkEffectiveAccessFieldDeserializer + extends JsonDeserializer> { + + public WebLinkSharedLinkEffectiveAccessFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(WebLinkSharedLinkEffectiveAccessField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class WebLinkSharedLinkEffectiveAccessFieldSerializer + extends JsonSerializer> { + + public WebLinkSharedLinkEffectiveAccessFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkEffectivePermissionField.java b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkEffectivePermissionField.java new file mode 100644 index 000000000..4e9a46ab6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkEffectivePermissionField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.schemas.weblink; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum WebLinkSharedLinkEffectivePermissionField implements Valuable { + CAN_EDIT("can_edit"), + CAN_DOWNLOAD("can_download"), + CAN_PREVIEW("can_preview"), + NO_ACCESS("no_access"); + + private final String value; + + WebLinkSharedLinkEffectivePermissionField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class WebLinkSharedLinkEffectivePermissionFieldDeserializer + extends JsonDeserializer> { + + public WebLinkSharedLinkEffectivePermissionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(WebLinkSharedLinkEffectivePermissionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class WebLinkSharedLinkEffectivePermissionFieldSerializer + extends JsonSerializer> { + + public WebLinkSharedLinkEffectivePermissionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkField.java b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkField.java new file mode 100644 index 000000000..39879ade0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkField.java @@ -0,0 +1,439 @@ +package com.box.sdkgen.schemas.weblink; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class WebLinkSharedLinkField extends SerializableObject { + + protected final String url; + + @JsonProperty("download_url") + @Nullable + protected String downloadUrl; + + @JsonProperty("vanity_url") + @Nullable + protected String vanityUrl; + + @JsonProperty("vanity_name") + @Nullable + protected String vanityName; + + @JsonDeserialize( + using = WebLinkSharedLinkAccessField.WebLinkSharedLinkAccessFieldDeserializer.class) + @JsonSerialize(using = WebLinkSharedLinkAccessField.WebLinkSharedLinkAccessFieldSerializer.class) + protected EnumWrapper access; + + @JsonDeserialize( + using = + WebLinkSharedLinkEffectiveAccessField.WebLinkSharedLinkEffectiveAccessFieldDeserializer + .class) + @JsonSerialize( + using = + WebLinkSharedLinkEffectiveAccessField.WebLinkSharedLinkEffectiveAccessFieldSerializer + .class) + @JsonProperty("effective_access") + protected final EnumWrapper effectiveAccess; + + @JsonDeserialize( + using = + WebLinkSharedLinkEffectivePermissionField + .WebLinkSharedLinkEffectivePermissionFieldDeserializer.class) + @JsonSerialize( + using = + WebLinkSharedLinkEffectivePermissionField + .WebLinkSharedLinkEffectivePermissionFieldSerializer.class) + @JsonProperty("effective_permission") + protected final EnumWrapper effectivePermission; + + @JsonProperty("unshared_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected Date unsharedAt; + + @JsonProperty("is_password_enabled") + protected final boolean isPasswordEnabled; + + protected WebLinkSharedLinkPermissionsField permissions; + + @JsonProperty("download_count") + protected final long downloadCount; + + @JsonProperty("preview_count") + protected final long previewCount; + + public WebLinkSharedLinkField( + String url, + WebLinkSharedLinkEffectiveAccessField effectiveAccess, + WebLinkSharedLinkEffectivePermissionField effectivePermission, + boolean isPasswordEnabled, + long downloadCount, + long previewCount) { + super(); + this.url = url; + this.effectiveAccess = new EnumWrapper(effectiveAccess); + this.effectivePermission = + new EnumWrapper(effectivePermission); + this.isPasswordEnabled = isPasswordEnabled; + this.downloadCount = downloadCount; + this.previewCount = previewCount; + } + + public WebLinkSharedLinkField( + String url, + WebLinkSharedLinkEffectiveAccessField effectiveAccess, + EnumWrapper effectivePermission, + boolean isPasswordEnabled, + long downloadCount, + long previewCount) { + super(); + this.url = url; + this.effectiveAccess = new EnumWrapper(effectiveAccess); + this.effectivePermission = effectivePermission; + this.isPasswordEnabled = isPasswordEnabled; + this.downloadCount = downloadCount; + this.previewCount = previewCount; + } + + public WebLinkSharedLinkField( + String url, + EnumWrapper effectiveAccess, + WebLinkSharedLinkEffectivePermissionField effectivePermission, + boolean isPasswordEnabled, + long downloadCount, + long previewCount) { + super(); + this.url = url; + this.effectiveAccess = effectiveAccess; + this.effectivePermission = + new EnumWrapper(effectivePermission); + this.isPasswordEnabled = isPasswordEnabled; + this.downloadCount = downloadCount; + this.previewCount = previewCount; + } + + public WebLinkSharedLinkField( + @JsonProperty("url") String url, + @JsonProperty("effective_access") + EnumWrapper effectiveAccess, + @JsonProperty("effective_permission") + EnumWrapper effectivePermission, + @JsonProperty("is_password_enabled") boolean isPasswordEnabled, + @JsonProperty("download_count") long downloadCount, + @JsonProperty("preview_count") long previewCount) { + super(); + this.url = url; + this.effectiveAccess = effectiveAccess; + this.effectivePermission = effectivePermission; + this.isPasswordEnabled = isPasswordEnabled; + this.downloadCount = downloadCount; + this.previewCount = previewCount; + } + + protected WebLinkSharedLinkField(Builder builder) { + super(); + this.url = builder.url; + this.downloadUrl = builder.downloadUrl; + this.vanityUrl = builder.vanityUrl; + this.vanityName = builder.vanityName; + this.access = builder.access; + this.effectiveAccess = builder.effectiveAccess; + this.effectivePermission = builder.effectivePermission; + this.unsharedAt = builder.unsharedAt; + this.isPasswordEnabled = builder.isPasswordEnabled; + this.permissions = builder.permissions; + this.downloadCount = builder.downloadCount; + this.previewCount = builder.previewCount; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getUrl() { + return url; + } + + public String getDownloadUrl() { + return downloadUrl; + } + + public String getVanityUrl() { + return vanityUrl; + } + + public String getVanityName() { + return vanityName; + } + + public EnumWrapper getAccess() { + return access; + } + + public EnumWrapper getEffectiveAccess() { + return effectiveAccess; + } + + public EnumWrapper getEffectivePermission() { + return effectivePermission; + } + + public Date getUnsharedAt() { + return unsharedAt; + } + + public boolean getIsPasswordEnabled() { + return isPasswordEnabled; + } + + public WebLinkSharedLinkPermissionsField getPermissions() { + return permissions; + } + + public long getDownloadCount() { + return downloadCount; + } + + public long getPreviewCount() { + return previewCount; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WebLinkSharedLinkField casted = (WebLinkSharedLinkField) o; + return Objects.equals(url, casted.url) + && Objects.equals(downloadUrl, casted.downloadUrl) + && Objects.equals(vanityUrl, casted.vanityUrl) + && Objects.equals(vanityName, casted.vanityName) + && Objects.equals(access, casted.access) + && Objects.equals(effectiveAccess, casted.effectiveAccess) + && Objects.equals(effectivePermission, casted.effectivePermission) + && Objects.equals(unsharedAt, casted.unsharedAt) + && Objects.equals(isPasswordEnabled, casted.isPasswordEnabled) + && Objects.equals(permissions, casted.permissions) + && Objects.equals(downloadCount, casted.downloadCount) + && Objects.equals(previewCount, casted.previewCount); + } + + @Override + public int hashCode() { + return Objects.hash( + url, + downloadUrl, + vanityUrl, + vanityName, + access, + effectiveAccess, + effectivePermission, + unsharedAt, + isPasswordEnabled, + permissions, + downloadCount, + previewCount); + } + + @Override + public String toString() { + return "WebLinkSharedLinkField{" + + "url='" + + url + + '\'' + + ", " + + "downloadUrl='" + + downloadUrl + + '\'' + + ", " + + "vanityUrl='" + + vanityUrl + + '\'' + + ", " + + "vanityName='" + + vanityName + + '\'' + + ", " + + "access='" + + access + + '\'' + + ", " + + "effectiveAccess='" + + effectiveAccess + + '\'' + + ", " + + "effectivePermission='" + + effectivePermission + + '\'' + + ", " + + "unsharedAt='" + + unsharedAt + + '\'' + + ", " + + "isPasswordEnabled='" + + isPasswordEnabled + + '\'' + + ", " + + "permissions='" + + permissions + + '\'' + + ", " + + "downloadCount='" + + downloadCount + + '\'' + + ", " + + "previewCount='" + + previewCount + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String url; + + protected String downloadUrl; + + protected String vanityUrl; + + protected String vanityName; + + protected EnumWrapper access; + + protected final EnumWrapper effectiveAccess; + + protected final EnumWrapper effectivePermission; + + protected Date unsharedAt; + + protected final boolean isPasswordEnabled; + + protected WebLinkSharedLinkPermissionsField permissions; + + protected final long downloadCount; + + protected final long previewCount; + + public Builder( + String url, + WebLinkSharedLinkEffectiveAccessField effectiveAccess, + WebLinkSharedLinkEffectivePermissionField effectivePermission, + boolean isPasswordEnabled, + long downloadCount, + long previewCount) { + super(); + this.url = url; + this.effectiveAccess = + new EnumWrapper(effectiveAccess); + this.effectivePermission = + new EnumWrapper(effectivePermission); + this.isPasswordEnabled = isPasswordEnabled; + this.downloadCount = downloadCount; + this.previewCount = previewCount; + } + + public Builder( + String url, + WebLinkSharedLinkEffectiveAccessField effectiveAccess, + EnumWrapper effectivePermission, + boolean isPasswordEnabled, + long downloadCount, + long previewCount) { + super(); + this.url = url; + this.effectiveAccess = + new EnumWrapper(effectiveAccess); + this.effectivePermission = effectivePermission; + this.isPasswordEnabled = isPasswordEnabled; + this.downloadCount = downloadCount; + this.previewCount = previewCount; + } + + public Builder( + String url, + EnumWrapper effectiveAccess, + WebLinkSharedLinkEffectivePermissionField effectivePermission, + boolean isPasswordEnabled, + long downloadCount, + long previewCount) { + super(); + this.url = url; + this.effectiveAccess = effectiveAccess; + this.effectivePermission = + new EnumWrapper(effectivePermission); + this.isPasswordEnabled = isPasswordEnabled; + this.downloadCount = downloadCount; + this.previewCount = previewCount; + } + + public Builder( + String url, + EnumWrapper effectiveAccess, + EnumWrapper effectivePermission, + boolean isPasswordEnabled, + long downloadCount, + long previewCount) { + super(); + this.url = url; + this.effectiveAccess = effectiveAccess; + this.effectivePermission = effectivePermission; + this.isPasswordEnabled = isPasswordEnabled; + this.downloadCount = downloadCount; + this.previewCount = previewCount; + } + + public Builder downloadUrl(String downloadUrl) { + this.downloadUrl = downloadUrl; + this.markNullableFieldAsSet("download_url"); + return this; + } + + public Builder vanityUrl(String vanityUrl) { + this.vanityUrl = vanityUrl; + this.markNullableFieldAsSet("vanity_url"); + return this; + } + + public Builder vanityName(String vanityName) { + this.vanityName = vanityName; + this.markNullableFieldAsSet("vanity_name"); + return this; + } + + public Builder access(WebLinkSharedLinkAccessField access) { + this.access = new EnumWrapper(access); + return this; + } + + public Builder access(EnumWrapper access) { + this.access = access; + return this; + } + + public Builder unsharedAt(Date unsharedAt) { + this.unsharedAt = unsharedAt; + this.markNullableFieldAsSet("unshared_at"); + return this; + } + + public Builder permissions(WebLinkSharedLinkPermissionsField permissions) { + this.permissions = permissions; + return this; + } + + public WebLinkSharedLinkField build() { + return new WebLinkSharedLinkField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkPermissionsField.java b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkPermissionsField.java new file mode 100644 index 000000000..9235cd312 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkPermissionsField.java @@ -0,0 +1,77 @@ +package com.box.sdkgen.schemas.weblink; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class WebLinkSharedLinkPermissionsField extends SerializableObject { + + @JsonProperty("can_download") + protected final boolean canDownload; + + @JsonProperty("can_preview") + protected final boolean canPreview; + + @JsonProperty("can_edit") + protected final boolean canEdit; + + public WebLinkSharedLinkPermissionsField( + @JsonProperty("can_download") boolean canDownload, + @JsonProperty("can_preview") boolean canPreview, + @JsonProperty("can_edit") boolean canEdit) { + super(); + this.canDownload = canDownload; + this.canPreview = canPreview; + this.canEdit = canEdit; + } + + public boolean getCanDownload() { + return canDownload; + } + + public boolean getCanPreview() { + return canPreview; + } + + public boolean getCanEdit() { + return canEdit; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WebLinkSharedLinkPermissionsField casted = (WebLinkSharedLinkPermissionsField) o; + return Objects.equals(canDownload, casted.canDownload) + && Objects.equals(canPreview, casted.canPreview) + && Objects.equals(canEdit, casted.canEdit); + } + + @Override + public int hashCode() { + return Objects.hash(canDownload, canPreview, canEdit); + } + + @Override + public String toString() { + return "WebLinkSharedLinkPermissionsField{" + + "canDownload='" + + canDownload + + '\'' + + ", " + + "canPreview='" + + canPreview + + '\'' + + ", " + + "canEdit='" + + canEdit + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/weblinkbase/WebLinkBase.java b/src/main/java/com/box/sdkgen/schemas/weblinkbase/WebLinkBase.java new file mode 100644 index 000000000..cce496c94 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/weblinkbase/WebLinkBase.java @@ -0,0 +1,118 @@ +package com.box.sdkgen.schemas.weblinkbase; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class WebLinkBase extends SerializableObject { + + protected final String id; + + @JsonDeserialize(using = WebLinkBaseTypeField.WebLinkBaseTypeFieldDeserializer.class) + @JsonSerialize(using = WebLinkBaseTypeField.WebLinkBaseTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String etag; + + public WebLinkBase(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = new EnumWrapper(WebLinkBaseTypeField.WEB_LINK); + } + + protected WebLinkBase(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.etag = builder.etag; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getEtag() { + return etag; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WebLinkBase casted = (WebLinkBase) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(etag, casted.etag); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, etag); + } + + @Override + public String toString() { + return "WebLinkBase{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "etag='" + + etag + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + protected String etag; + + public Builder(String id) { + super(); + this.id = id; + this.type = new EnumWrapper(WebLinkBaseTypeField.WEB_LINK); + } + + public Builder type(WebLinkBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder etag(String etag) { + this.etag = etag; + return this; + } + + public WebLinkBase build() { + return new WebLinkBase(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/weblinkbase/WebLinkBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/weblinkbase/WebLinkBaseTypeField.java new file mode 100644 index 000000000..a125dfcb5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/weblinkbase/WebLinkBaseTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.weblinkbase; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum WebLinkBaseTypeField implements Valuable { + WEB_LINK("web_link"); + + private final String value; + + WebLinkBaseTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class WebLinkBaseTypeFieldDeserializer + extends JsonDeserializer> { + + public WebLinkBaseTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(WebLinkBaseTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class WebLinkBaseTypeFieldSerializer + extends JsonSerializer> { + + public WebLinkBaseTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/weblinkmini/WebLinkMini.java b/src/main/java/com/box/sdkgen/schemas/weblinkmini/WebLinkMini.java new file mode 100644 index 000000000..f919d1e06 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/weblinkmini/WebLinkMini.java @@ -0,0 +1,144 @@ +package com.box.sdkgen.schemas.weblinkmini; + +import com.box.sdkgen.schemas.weblinkbase.WebLinkBase; +import com.box.sdkgen.schemas.weblinkbase.WebLinkBaseTypeField; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class WebLinkMini extends WebLinkBase { + + protected String url; + + @JsonProperty("sequence_id") + protected String sequenceId; + + protected String name; + + public WebLinkMini(@JsonProperty("id") String id) { + super(id); + } + + protected WebLinkMini(Builder builder) { + super(builder); + this.url = builder.url; + this.sequenceId = builder.sequenceId; + this.name = builder.name; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getUrl() { + return url; + } + + public String getSequenceId() { + return sequenceId; + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WebLinkMini casted = (WebLinkMini) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(etag, casted.etag) + && Objects.equals(url, casted.url) + && Objects.equals(sequenceId, casted.sequenceId) + && Objects.equals(name, casted.name); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, etag, url, sequenceId, name); + } + + @Override + public String toString() { + return "WebLinkMini{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "etag='" + + etag + + '\'' + + ", " + + "url='" + + url + + '\'' + + ", " + + "sequenceId='" + + sequenceId + + '\'' + + ", " + + "name='" + + name + + '\'' + + "}"; + } + + public static class Builder extends WebLinkBase.Builder { + + protected String url; + + protected String sequenceId; + + protected String name; + + public Builder(String id) { + super(id); + } + + public Builder url(String url) { + this.url = url; + return this; + } + + public Builder sequenceId(String sequenceId) { + this.sequenceId = sequenceId; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + @Override + public Builder type(WebLinkBaseTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder etag(String etag) { + this.etag = etag; + return this; + } + + public WebLinkMini build() { + return new WebLinkMini(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/Workflow.java b/src/main/java/com/box/sdkgen/schemas/workflow/Workflow.java new file mode 100644 index 000000000..d833cec28 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/workflow/Workflow.java @@ -0,0 +1,129 @@ +package com.box.sdkgen.schemas.workflow; + +import com.box.sdkgen.schemas.workflowmini.WorkflowMini; +import com.box.sdkgen.schemas.workflowmini.WorkflowMiniTypeField; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Workflow extends WorkflowMini { + + protected List flows; + + public Workflow() { + super(); + } + + protected Workflow(Builder builder) { + super(builder); + this.flows = builder.flows; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getFlows() { + return flows; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Workflow casted = (Workflow) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name) + && Objects.equals(description, casted.description) + && Objects.equals(isEnabled, casted.isEnabled) + && Objects.equals(flows, casted.flows); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name, description, isEnabled, flows); + } + + @Override + public String toString() { + return "Workflow{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "isEnabled='" + + isEnabled + + '\'' + + ", " + + "flows='" + + flows + + '\'' + + "}"; + } + + public static class Builder extends WorkflowMini.Builder { + + protected List flows; + + public Builder flows(List flows) { + this.flows = flows; + return this; + } + + @Override + public Builder id(String id) { + this.id = id; + return this; + } + + @Override + public Builder type(WorkflowMiniTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder name(String name) { + this.name = name; + return this; + } + + @Override + public Builder description(String description) { + this.description = description; + return this; + } + + @Override + public Builder isEnabled(Boolean isEnabled) { + this.isEnabled = isEnabled; + return this; + } + + public Workflow build() { + return new Workflow(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsField.java new file mode 100644 index 000000000..81d4c9396 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsField.java @@ -0,0 +1,180 @@ +package com.box.sdkgen.schemas.workflow; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.userbase.UserBase; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class WorkflowFlowsField extends SerializableObject { + + protected String id; + + @JsonDeserialize(using = WorkflowFlowsTypeField.WorkflowFlowsTypeFieldDeserializer.class) + @JsonSerialize(using = WorkflowFlowsTypeField.WorkflowFlowsTypeFieldSerializer.class) + protected EnumWrapper type; + + protected WorkflowFlowsTriggerField trigger; + + protected List outcomes; + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("created_by") + protected UserBase createdBy; + + public WorkflowFlowsField() { + super(); + } + + protected WorkflowFlowsField(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.trigger = builder.trigger; + this.outcomes = builder.outcomes; + this.createdAt = builder.createdAt; + this.createdBy = builder.createdBy; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public WorkflowFlowsTriggerField getTrigger() { + return trigger; + } + + public List getOutcomes() { + return outcomes; + } + + public Date getCreatedAt() { + return createdAt; + } + + public UserBase getCreatedBy() { + return createdBy; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WorkflowFlowsField casted = (WorkflowFlowsField) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(trigger, casted.trigger) + && Objects.equals(outcomes, casted.outcomes) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(createdBy, casted.createdBy); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, trigger, outcomes, createdAt, createdBy); + } + + @Override + public String toString() { + return "WorkflowFlowsField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "trigger='" + + trigger + + '\'' + + ", " + + "outcomes='" + + outcomes + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected WorkflowFlowsTriggerField trigger; + + protected List outcomes; + + protected Date createdAt; + + protected UserBase createdBy; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(WorkflowFlowsTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder trigger(WorkflowFlowsTriggerField trigger) { + this.trigger = trigger; + return this; + } + + public Builder outcomes(List outcomes) { + this.outcomes = outcomes; + return this; + } + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder createdBy(UserBase createdBy) { + this.createdBy = createdBy; + return this; + } + + public WorkflowFlowsField build() { + return new WorkflowFlowsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesActionTypeField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesActionTypeField.java new file mode 100644 index 000000000..460920ca2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesActionTypeField.java @@ -0,0 +1,84 @@ +package com.box.sdkgen.schemas.workflow; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum WorkflowFlowsOutcomesActionTypeField implements Valuable { + ADD_METADATA("add_metadata"), + ASSIGN_TASK("assign_task"), + COPY_FILE("copy_file"), + COPY_FOLDER("copy_folder"), + CREATE_FOLDER("create_folder"), + DELETE_FILE("delete_file"), + DELETE_FOLDER("delete_folder"), + LOCK_FILE("lock_file"), + MOVE_FILE("move_file"), + MOVE_FOLDER("move_folder"), + REMOVE_WATERMARK_FILE("remove_watermark_file"), + RENAME_FOLDER("rename_folder"), + RESTORE_FOLDER("restore_folder"), + SHARE_FILE("share_file"), + SHARE_FOLDER("share_folder"), + UNLOCK_FILE("unlock_file"), + UPLOAD_FILE("upload_file"), + WAIT_FOR_TASK("wait_for_task"), + WATERMARK_FILE("watermark_file"), + GO_BACK_TO_STEP("go_back_to_step"), + APPLY_FILE_CLASSIFICATION("apply_file_classification"), + APPLY_FOLDER_CLASSIFICATION("apply_folder_classification"), + SEND_NOTIFICATION("send_notification"); + + private final String value; + + WorkflowFlowsOutcomesActionTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class WorkflowFlowsOutcomesActionTypeFieldDeserializer + extends JsonDeserializer> { + + public WorkflowFlowsOutcomesActionTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(WorkflowFlowsOutcomesActionTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class WorkflowFlowsOutcomesActionTypeFieldSerializer + extends JsonSerializer> { + + public WorkflowFlowsOutcomesActionTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesField.java new file mode 100644 index 000000000..2bb1e0169 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesField.java @@ -0,0 +1,170 @@ +package com.box.sdkgen.schemas.workflow; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class WorkflowFlowsOutcomesField extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = WorkflowFlowsOutcomesTypeField.WorkflowFlowsOutcomesTypeFieldDeserializer.class) + @JsonSerialize( + using = WorkflowFlowsOutcomesTypeField.WorkflowFlowsOutcomesTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String name; + + @JsonDeserialize( + using = + WorkflowFlowsOutcomesActionTypeField.WorkflowFlowsOutcomesActionTypeFieldDeserializer + .class) + @JsonSerialize( + using = + WorkflowFlowsOutcomesActionTypeField.WorkflowFlowsOutcomesActionTypeFieldSerializer.class) + @JsonProperty("action_type") + protected EnumWrapper actionType; + + @JsonProperty("if_rejected") + protected List ifRejected; + + public WorkflowFlowsOutcomesField() { + super(); + } + + protected WorkflowFlowsOutcomesField(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.name = builder.name; + this.actionType = builder.actionType; + this.ifRejected = builder.ifRejected; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getName() { + return name; + } + + public EnumWrapper getActionType() { + return actionType; + } + + public List getIfRejected() { + return ifRejected; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WorkflowFlowsOutcomesField casted = (WorkflowFlowsOutcomesField) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name) + && Objects.equals(actionType, casted.actionType) + && Objects.equals(ifRejected, casted.ifRejected); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name, actionType, ifRejected); + } + + @Override + public String toString() { + return "WorkflowFlowsOutcomesField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "actionType='" + + actionType + + '\'' + + ", " + + "ifRejected='" + + ifRejected + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected String name; + + protected EnumWrapper actionType; + + protected List ifRejected; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(WorkflowFlowsOutcomesTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder actionType(WorkflowFlowsOutcomesActionTypeField actionType) { + this.actionType = new EnumWrapper(actionType); + return this; + } + + public Builder actionType(EnumWrapper actionType) { + this.actionType = actionType; + return this; + } + + public Builder ifRejected(List ifRejected) { + this.ifRejected = ifRejected; + return this; + } + + public WorkflowFlowsOutcomesField build() { + return new WorkflowFlowsOutcomesField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesIfRejectedActionTypeField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesIfRejectedActionTypeField.java new file mode 100644 index 000000000..e7087d824 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesIfRejectedActionTypeField.java @@ -0,0 +1,84 @@ +package com.box.sdkgen.schemas.workflow; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum WorkflowFlowsOutcomesIfRejectedActionTypeField implements Valuable { + ADD_METADATA("add_metadata"), + ASSIGN_TASK("assign_task"), + COPY_FILE("copy_file"), + COPY_FOLDER("copy_folder"), + CREATE_FOLDER("create_folder"), + DELETE_FILE("delete_file"), + DELETE_FOLDER("delete_folder"), + LOCK_FILE("lock_file"), + MOVE_FILE("move_file"), + MOVE_FOLDER("move_folder"), + REMOVE_WATERMARK_FILE("remove_watermark_file"), + RENAME_FOLDER("rename_folder"), + RESTORE_FOLDER("restore_folder"), + SHARE_FILE("share_file"), + SHARE_FOLDER("share_folder"), + UNLOCK_FILE("unlock_file"), + UPLOAD_FILE("upload_file"), + WAIT_FOR_TASK("wait_for_task"), + WATERMARK_FILE("watermark_file"), + GO_BACK_TO_STEP("go_back_to_step"), + APPLY_FILE_CLASSIFICATION("apply_file_classification"), + APPLY_FOLDER_CLASSIFICATION("apply_folder_classification"), + SEND_NOTIFICATION("send_notification"); + + private final String value; + + WorkflowFlowsOutcomesIfRejectedActionTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class WorkflowFlowsOutcomesIfRejectedActionTypeFieldDeserializer + extends JsonDeserializer> { + + public WorkflowFlowsOutcomesIfRejectedActionTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(WorkflowFlowsOutcomesIfRejectedActionTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class WorkflowFlowsOutcomesIfRejectedActionTypeFieldSerializer + extends JsonSerializer> { + + public WorkflowFlowsOutcomesIfRejectedActionTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesIfRejectedField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesIfRejectedField.java new file mode 100644 index 000000000..423cb8da1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesIfRejectedField.java @@ -0,0 +1,155 @@ +package com.box.sdkgen.schemas.workflow; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class WorkflowFlowsOutcomesIfRejectedField extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = + WorkflowFlowsOutcomesIfRejectedTypeField + .WorkflowFlowsOutcomesIfRejectedTypeFieldDeserializer.class) + @JsonSerialize( + using = + WorkflowFlowsOutcomesIfRejectedTypeField + .WorkflowFlowsOutcomesIfRejectedTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String name; + + @JsonDeserialize( + using = + WorkflowFlowsOutcomesIfRejectedActionTypeField + .WorkflowFlowsOutcomesIfRejectedActionTypeFieldDeserializer.class) + @JsonSerialize( + using = + WorkflowFlowsOutcomesIfRejectedActionTypeField + .WorkflowFlowsOutcomesIfRejectedActionTypeFieldSerializer.class) + @JsonProperty("action_type") + protected EnumWrapper actionType; + + public WorkflowFlowsOutcomesIfRejectedField() { + super(); + } + + protected WorkflowFlowsOutcomesIfRejectedField(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.name = builder.name; + this.actionType = builder.actionType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getName() { + return name; + } + + public EnumWrapper getActionType() { + return actionType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WorkflowFlowsOutcomesIfRejectedField casted = (WorkflowFlowsOutcomesIfRejectedField) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name) + && Objects.equals(actionType, casted.actionType); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name, actionType); + } + + @Override + public String toString() { + return "WorkflowFlowsOutcomesIfRejectedField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "actionType='" + + actionType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected String name; + + protected EnumWrapper actionType; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(WorkflowFlowsOutcomesIfRejectedTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder actionType(WorkflowFlowsOutcomesIfRejectedActionTypeField actionType) { + this.actionType = new EnumWrapper(actionType); + return this; + } + + public Builder actionType( + EnumWrapper actionType) { + this.actionType = actionType; + return this; + } + + public WorkflowFlowsOutcomesIfRejectedField build() { + return new WorkflowFlowsOutcomesIfRejectedField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesIfRejectedTypeField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesIfRejectedTypeField.java new file mode 100644 index 000000000..53c3db46a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesIfRejectedTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.workflow; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum WorkflowFlowsOutcomesIfRejectedTypeField implements Valuable { + OUTCOME("outcome"); + + private final String value; + + WorkflowFlowsOutcomesIfRejectedTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class WorkflowFlowsOutcomesIfRejectedTypeFieldDeserializer + extends JsonDeserializer> { + + public WorkflowFlowsOutcomesIfRejectedTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(WorkflowFlowsOutcomesIfRejectedTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class WorkflowFlowsOutcomesIfRejectedTypeFieldSerializer + extends JsonSerializer> { + + public WorkflowFlowsOutcomesIfRejectedTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesTypeField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesTypeField.java new file mode 100644 index 000000000..8b70557d4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.workflow; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum WorkflowFlowsOutcomesTypeField implements Valuable { + OUTCOME("outcome"); + + private final String value; + + WorkflowFlowsOutcomesTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class WorkflowFlowsOutcomesTypeFieldDeserializer + extends JsonDeserializer> { + + public WorkflowFlowsOutcomesTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(WorkflowFlowsOutcomesTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class WorkflowFlowsOutcomesTypeFieldSerializer + extends JsonSerializer> { + + public WorkflowFlowsOutcomesTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerField.java new file mode 100644 index 000000000..f6779ffa2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerField.java @@ -0,0 +1,131 @@ +package com.box.sdkgen.schemas.workflow; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class WorkflowFlowsTriggerField extends SerializableObject { + + @JsonDeserialize( + using = WorkflowFlowsTriggerTypeField.WorkflowFlowsTriggerTypeFieldDeserializer.class) + @JsonSerialize( + using = WorkflowFlowsTriggerTypeField.WorkflowFlowsTriggerTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonDeserialize( + using = + WorkflowFlowsTriggerTriggerTypeField.WorkflowFlowsTriggerTriggerTypeFieldDeserializer + .class) + @JsonSerialize( + using = + WorkflowFlowsTriggerTriggerTypeField.WorkflowFlowsTriggerTriggerTypeFieldSerializer.class) + @JsonProperty("trigger_type") + protected EnumWrapper triggerType; + + protected List scope; + + public WorkflowFlowsTriggerField() { + super(); + } + + protected WorkflowFlowsTriggerField(Builder builder) { + super(); + this.type = builder.type; + this.triggerType = builder.triggerType; + this.scope = builder.scope; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public EnumWrapper getTriggerType() { + return triggerType; + } + + public List getScope() { + return scope; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WorkflowFlowsTriggerField casted = (WorkflowFlowsTriggerField) o; + return Objects.equals(type, casted.type) + && Objects.equals(triggerType, casted.triggerType) + && Objects.equals(scope, casted.scope); + } + + @Override + public int hashCode() { + return Objects.hash(type, triggerType, scope); + } + + @Override + public String toString() { + return "WorkflowFlowsTriggerField{" + + "type='" + + type + + '\'' + + ", " + + "triggerType='" + + triggerType + + '\'' + + ", " + + "scope='" + + scope + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected EnumWrapper triggerType; + + protected List scope; + + public Builder type(WorkflowFlowsTriggerTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder triggerType(WorkflowFlowsTriggerTriggerTypeField triggerType) { + this.triggerType = new EnumWrapper(triggerType); + return this; + } + + public Builder triggerType(EnumWrapper triggerType) { + this.triggerType = triggerType; + return this; + } + + public Builder scope(List scope) { + this.scope = scope; + return this; + } + + public WorkflowFlowsTriggerField build() { + return new WorkflowFlowsTriggerField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeField.java new file mode 100644 index 000000000..a15356cb7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeField.java @@ -0,0 +1,117 @@ +package com.box.sdkgen.schemas.workflow; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class WorkflowFlowsTriggerScopeField extends SerializableObject { + + @JsonDeserialize( + using = + WorkflowFlowsTriggerScopeTypeField.WorkflowFlowsTriggerScopeTypeFieldDeserializer.class) + @JsonSerialize( + using = WorkflowFlowsTriggerScopeTypeField.WorkflowFlowsTriggerScopeTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String ref; + + protected WorkflowFlowsTriggerScopeObjectField object; + + public WorkflowFlowsTriggerScopeField() { + super(); + } + + protected WorkflowFlowsTriggerScopeField(Builder builder) { + super(); + this.type = builder.type; + this.ref = builder.ref; + this.object = builder.object; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getRef() { + return ref; + } + + public WorkflowFlowsTriggerScopeObjectField getObject() { + return object; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WorkflowFlowsTriggerScopeField casted = (WorkflowFlowsTriggerScopeField) o; + return Objects.equals(type, casted.type) + && Objects.equals(ref, casted.ref) + && Objects.equals(object, casted.object); + } + + @Override + public int hashCode() { + return Objects.hash(type, ref, object); + } + + @Override + public String toString() { + return "WorkflowFlowsTriggerScopeField{" + + "type='" + + type + + '\'' + + ", " + + "ref='" + + ref + + '\'' + + ", " + + "object='" + + object + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected String ref; + + protected WorkflowFlowsTriggerScopeObjectField object; + + public Builder type(WorkflowFlowsTriggerScopeTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder ref(String ref) { + this.ref = ref; + return this; + } + + public Builder object(WorkflowFlowsTriggerScopeObjectField object) { + this.object = object; + return this; + } + + public WorkflowFlowsTriggerScopeField build() { + return new WorkflowFlowsTriggerScopeField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeObjectField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeObjectField.java new file mode 100644 index 000000000..29f1d0a95 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeObjectField.java @@ -0,0 +1,100 @@ +package com.box.sdkgen.schemas.workflow; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class WorkflowFlowsTriggerScopeObjectField extends SerializableObject { + + @JsonDeserialize( + using = + WorkflowFlowsTriggerScopeObjectTypeField + .WorkflowFlowsTriggerScopeObjectTypeFieldDeserializer.class) + @JsonSerialize( + using = + WorkflowFlowsTriggerScopeObjectTypeField + .WorkflowFlowsTriggerScopeObjectTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String id; + + public WorkflowFlowsTriggerScopeObjectField() { + super(); + } + + protected WorkflowFlowsTriggerScopeObjectField(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WorkflowFlowsTriggerScopeObjectField casted = (WorkflowFlowsTriggerScopeObjectField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "WorkflowFlowsTriggerScopeObjectField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected String id; + + public Builder type(WorkflowFlowsTriggerScopeObjectTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public WorkflowFlowsTriggerScopeObjectField build() { + return new WorkflowFlowsTriggerScopeObjectField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeObjectTypeField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeObjectTypeField.java new file mode 100644 index 000000000..ae8402c54 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeObjectTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.workflow; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum WorkflowFlowsTriggerScopeObjectTypeField implements Valuable { + FOLDER("folder"); + + private final String value; + + WorkflowFlowsTriggerScopeObjectTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class WorkflowFlowsTriggerScopeObjectTypeFieldDeserializer + extends JsonDeserializer> { + + public WorkflowFlowsTriggerScopeObjectTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(WorkflowFlowsTriggerScopeObjectTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class WorkflowFlowsTriggerScopeObjectTypeFieldSerializer + extends JsonSerializer> { + + public WorkflowFlowsTriggerScopeObjectTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeTypeField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeTypeField.java new file mode 100644 index 000000000..7c5c4d881 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.workflow; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum WorkflowFlowsTriggerScopeTypeField implements Valuable { + TRIGGER_SCOPE("trigger_scope"); + + private final String value; + + WorkflowFlowsTriggerScopeTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class WorkflowFlowsTriggerScopeTypeFieldDeserializer + extends JsonDeserializer> { + + public WorkflowFlowsTriggerScopeTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(WorkflowFlowsTriggerScopeTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class WorkflowFlowsTriggerScopeTypeFieldSerializer + extends JsonSerializer> { + + public WorkflowFlowsTriggerScopeTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerTriggerTypeField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerTriggerTypeField.java new file mode 100644 index 000000000..585b5cc89 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerTriggerTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.workflow; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum WorkflowFlowsTriggerTriggerTypeField implements Valuable { + WORKFLOW_MANUAL_START("WORKFLOW_MANUAL_START"); + + private final String value; + + WorkflowFlowsTriggerTriggerTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class WorkflowFlowsTriggerTriggerTypeFieldDeserializer + extends JsonDeserializer> { + + public WorkflowFlowsTriggerTriggerTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(WorkflowFlowsTriggerTriggerTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class WorkflowFlowsTriggerTriggerTypeFieldSerializer + extends JsonSerializer> { + + public WorkflowFlowsTriggerTriggerTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerTypeField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerTypeField.java new file mode 100644 index 000000000..33da167a1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.workflow; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum WorkflowFlowsTriggerTypeField implements Valuable { + TRIGGER("trigger"); + + private final String value; + + WorkflowFlowsTriggerTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class WorkflowFlowsTriggerTypeFieldDeserializer + extends JsonDeserializer> { + + public WorkflowFlowsTriggerTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(WorkflowFlowsTriggerTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class WorkflowFlowsTriggerTypeFieldSerializer + extends JsonSerializer> { + + public WorkflowFlowsTriggerTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTypeField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTypeField.java new file mode 100644 index 000000000..402561c3f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.workflow; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum WorkflowFlowsTypeField implements Valuable { + FLOW("flow"); + + private final String value; + + WorkflowFlowsTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class WorkflowFlowsTypeFieldDeserializer + extends JsonDeserializer> { + + public WorkflowFlowsTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(WorkflowFlowsTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class WorkflowFlowsTypeFieldSerializer + extends JsonSerializer> { + + public WorkflowFlowsTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/workflowfull/WorkflowFull.java b/src/main/java/com/box/sdkgen/schemas/workflowfull/WorkflowFull.java new file mode 100644 index 000000000..c3b845ac4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/workflowfull/WorkflowFull.java @@ -0,0 +1,222 @@ +package com.box.sdkgen.schemas.workflowfull; + +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.userbase.UserBase; +import com.box.sdkgen.schemas.workflow.Workflow; +import com.box.sdkgen.schemas.workflow.WorkflowFlowsField; +import com.box.sdkgen.schemas.workflowmini.WorkflowMiniTypeField; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class WorkflowFull extends Workflow { + + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date createdAt; + + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date modifiedAt; + + @JsonProperty("created_by") + protected UserBase createdBy; + + @JsonProperty("modified_by") + protected UserBase modifiedBy; + + public WorkflowFull() { + super(); + } + + protected WorkflowFull(Builder builder) { + super(builder); + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + this.createdBy = builder.createdBy; + this.modifiedBy = builder.modifiedBy; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + public UserBase getCreatedBy() { + return createdBy; + } + + public UserBase getModifiedBy() { + return modifiedBy; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WorkflowFull casted = (WorkflowFull) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name) + && Objects.equals(description, casted.description) + && Objects.equals(isEnabled, casted.isEnabled) + && Objects.equals(flows, casted.flows) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(modifiedBy, casted.modifiedBy); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + type, + name, + description, + isEnabled, + flows, + createdAt, + modifiedAt, + createdBy, + modifiedBy); + } + + @Override + public String toString() { + return "WorkflowFull{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "isEnabled='" + + isEnabled + + '\'' + + ", " + + "flows='" + + flows + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "modifiedBy='" + + modifiedBy + + '\'' + + "}"; + } + + public static class Builder extends Workflow.Builder { + + protected Date createdAt; + + protected Date modifiedAt; + + protected UserBase createdBy; + + protected UserBase modifiedBy; + + public Builder createdAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder modifiedAt(Date modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + public Builder createdBy(UserBase createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder modifiedBy(UserBase modifiedBy) { + this.modifiedBy = modifiedBy; + return this; + } + + @Override + public Builder id(String id) { + this.id = id; + return this; + } + + @Override + public Builder type(WorkflowMiniTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder name(String name) { + this.name = name; + return this; + } + + @Override + public Builder description(String description) { + this.description = description; + return this; + } + + @Override + public Builder isEnabled(Boolean isEnabled) { + this.isEnabled = isEnabled; + return this; + } + + @Override + public Builder flows(List flows) { + this.flows = flows; + return this; + } + + public WorkflowFull build() { + return new WorkflowFull(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/workflowmini/WorkflowMini.java b/src/main/java/com/box/sdkgen/schemas/workflowmini/WorkflowMini.java new file mode 100644 index 000000000..eb6b72f83 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/workflowmini/WorkflowMini.java @@ -0,0 +1,154 @@ +package com.box.sdkgen.schemas.workflowmini; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class WorkflowMini extends SerializableObject { + + protected String id; + + @JsonDeserialize(using = WorkflowMiniTypeField.WorkflowMiniTypeFieldDeserializer.class) + @JsonSerialize(using = WorkflowMiniTypeField.WorkflowMiniTypeFieldSerializer.class) + protected EnumWrapper type; + + protected String name; + + protected String description; + + @JsonProperty("is_enabled") + protected Boolean isEnabled; + + public WorkflowMini() { + super(); + } + + protected WorkflowMini(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.name = builder.name; + this.description = builder.description; + this.isEnabled = builder.isEnabled; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + public Boolean getIsEnabled() { + return isEnabled; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WorkflowMini casted = (WorkflowMini) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name) + && Objects.equals(description, casted.description) + && Objects.equals(isEnabled, casted.isEnabled); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name, description, isEnabled); + } + + @Override + public String toString() { + return "WorkflowMini{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "isEnabled='" + + isEnabled + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected String name; + + protected String description; + + protected Boolean isEnabled; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(WorkflowMiniTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder isEnabled(Boolean isEnabled) { + this.isEnabled = isEnabled; + return this; + } + + public WorkflowMini build() { + return new WorkflowMini(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/workflowmini/WorkflowMiniTypeField.java b/src/main/java/com/box/sdkgen/schemas/workflowmini/WorkflowMiniTypeField.java new file mode 100644 index 000000000..571750807 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/workflowmini/WorkflowMiniTypeField.java @@ -0,0 +1,60 @@ +package com.box.sdkgen.schemas.workflowmini; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum WorkflowMiniTypeField implements Valuable { + WORKFLOW("workflow"); + + private final String value; + + WorkflowMiniTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class WorkflowMiniTypeFieldDeserializer + extends JsonDeserializer> { + + public WorkflowMiniTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(WorkflowMiniTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class WorkflowMiniTypeFieldSerializer + extends JsonSerializer> { + + public WorkflowMiniTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/workflows/Workflows.java b/src/main/java/com/box/sdkgen/schemas/workflows/Workflows.java new file mode 100644 index 000000000..4f2eaac36 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/workflows/Workflows.java @@ -0,0 +1,133 @@ +package com.box.sdkgen.schemas.workflows; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.workflow.Workflow; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class Workflows extends SerializableObject { + + protected Long limit; + + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + protected List entries; + + public Workflows() { + super(); + } + + protected Workflows(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Workflows casted = (Workflows) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "Workflows{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public Workflows build() { + return new Workflows(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownload.java b/src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownload.java new file mode 100644 index 000000000..c22c95e82 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownload.java @@ -0,0 +1,135 @@ +package com.box.sdkgen.schemas.zipdownload; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Date; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ZipDownload extends SerializableObject { + + @JsonProperty("download_url") + protected String downloadUrl; + + @JsonProperty("status_url") + protected String statusUrl; + + @JsonProperty("expires_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected Date expiresAt; + + @JsonProperty("name_conflicts") + protected List> nameConflicts; + + public ZipDownload() { + super(); + } + + protected ZipDownload(Builder builder) { + super(); + this.downloadUrl = builder.downloadUrl; + this.statusUrl = builder.statusUrl; + this.expiresAt = builder.expiresAt; + this.nameConflicts = builder.nameConflicts; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getDownloadUrl() { + return downloadUrl; + } + + public String getStatusUrl() { + return statusUrl; + } + + public Date getExpiresAt() { + return expiresAt; + } + + public List> getNameConflicts() { + return nameConflicts; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ZipDownload casted = (ZipDownload) o; + return Objects.equals(downloadUrl, casted.downloadUrl) + && Objects.equals(statusUrl, casted.statusUrl) + && Objects.equals(expiresAt, casted.expiresAt) + && Objects.equals(nameConflicts, casted.nameConflicts); + } + + @Override + public int hashCode() { + return Objects.hash(downloadUrl, statusUrl, expiresAt, nameConflicts); + } + + @Override + public String toString() { + return "ZipDownload{" + + "downloadUrl='" + + downloadUrl + + '\'' + + ", " + + "statusUrl='" + + statusUrl + + '\'' + + ", " + + "expiresAt='" + + expiresAt + + '\'' + + ", " + + "nameConflicts='" + + nameConflicts + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String downloadUrl; + + protected String statusUrl; + + protected Date expiresAt; + + protected List> nameConflicts; + + public Builder downloadUrl(String downloadUrl) { + this.downloadUrl = downloadUrl; + return this; + } + + public Builder statusUrl(String statusUrl) { + this.statusUrl = statusUrl; + return this; + } + + public Builder expiresAt(Date expiresAt) { + this.expiresAt = expiresAt; + return this; + } + + public Builder nameConflicts(List> nameConflicts) { + this.nameConflicts = nameConflicts; + return this; + } + + public ZipDownload build() { + return new ZipDownload(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownloadNameConflictsField.java b/src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownloadNameConflictsField.java new file mode 100644 index 000000000..29314b399 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownloadNameConflictsField.java @@ -0,0 +1,138 @@ +package com.box.sdkgen.schemas.zipdownload; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ZipDownloadNameConflictsField extends SerializableObject { + + protected String id; + + @JsonDeserialize( + using = ZipDownloadNameConflictsTypeField.ZipDownloadNameConflictsTypeFieldDeserializer.class) + @JsonSerialize( + using = ZipDownloadNameConflictsTypeField.ZipDownloadNameConflictsTypeFieldSerializer.class) + protected EnumWrapper type; + + @JsonProperty("original_name") + protected String originalName; + + @JsonProperty("download_name") + protected String downloadName; + + public ZipDownloadNameConflictsField() { + super(); + } + + protected ZipDownloadNameConflictsField(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.originalName = builder.originalName; + this.downloadName = builder.downloadName; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getOriginalName() { + return originalName; + } + + public String getDownloadName() { + return downloadName; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ZipDownloadNameConflictsField casted = (ZipDownloadNameConflictsField) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(originalName, casted.originalName) + && Objects.equals(downloadName, casted.downloadName); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, originalName, downloadName); + } + + @Override + public String toString() { + return "ZipDownloadNameConflictsField{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "originalName='" + + originalName + + '\'' + + ", " + + "downloadName='" + + downloadName + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected String originalName; + + protected String downloadName; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(ZipDownloadNameConflictsTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder originalName(String originalName) { + this.originalName = originalName; + return this; + } + + public Builder downloadName(String downloadName) { + this.downloadName = downloadName; + return this; + } + + public ZipDownloadNameConflictsField build() { + return new ZipDownloadNameConflictsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownloadNameConflictsTypeField.java b/src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownloadNameConflictsTypeField.java new file mode 100644 index 000000000..3c6dd804b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownloadNameConflictsTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.zipdownload; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ZipDownloadNameConflictsTypeField implements Valuable { + FILE("file"), + FOLDER("folder"); + + private final String value; + + ZipDownloadNameConflictsTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ZipDownloadNameConflictsTypeFieldDeserializer + extends JsonDeserializer> { + + public ZipDownloadNameConflictsTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ZipDownloadNameConflictsTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ZipDownloadNameConflictsTypeFieldSerializer + extends JsonSerializer> { + + public ZipDownloadNameConflictsTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/zipdownloadrequest/ZipDownloadRequest.java b/src/main/java/com/box/sdkgen/schemas/zipdownloadrequest/ZipDownloadRequest.java new file mode 100644 index 000000000..a58ef8aff --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/zipdownloadrequest/ZipDownloadRequest.java @@ -0,0 +1,89 @@ +package com.box.sdkgen.schemas.zipdownloadrequest; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ZipDownloadRequest extends SerializableObject { + + protected final List items; + + @JsonProperty("download_file_name") + protected String downloadFileName; + + public ZipDownloadRequest(@JsonProperty("items") List items) { + super(); + this.items = items; + } + + protected ZipDownloadRequest(Builder builder) { + super(); + this.items = builder.items; + this.downloadFileName = builder.downloadFileName; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getItems() { + return items; + } + + public String getDownloadFileName() { + return downloadFileName; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ZipDownloadRequest casted = (ZipDownloadRequest) o; + return Objects.equals(items, casted.items) + && Objects.equals(downloadFileName, casted.downloadFileName); + } + + @Override + public int hashCode() { + return Objects.hash(items, downloadFileName); + } + + @Override + public String toString() { + return "ZipDownloadRequest{" + + "items='" + + items + + '\'' + + ", " + + "downloadFileName='" + + downloadFileName + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final List items; + + protected String downloadFileName; + + public Builder(List items) { + super(); + this.items = items; + } + + public Builder downloadFileName(String downloadFileName) { + this.downloadFileName = downloadFileName; + return this; + } + + public ZipDownloadRequest build() { + return new ZipDownloadRequest(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/zipdownloadrequest/ZipDownloadRequestItemsField.java b/src/main/java/com/box/sdkgen/schemas/zipdownloadrequest/ZipDownloadRequestItemsField.java new file mode 100644 index 000000000..2ee9a0ccc --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/zipdownloadrequest/ZipDownloadRequestItemsField.java @@ -0,0 +1,73 @@ +package com.box.sdkgen.schemas.zipdownloadrequest; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ZipDownloadRequestItemsField extends SerializableObject { + + @JsonDeserialize( + using = ZipDownloadRequestItemsTypeField.ZipDownloadRequestItemsTypeFieldDeserializer.class) + @JsonSerialize( + using = ZipDownloadRequestItemsTypeField.ZipDownloadRequestItemsTypeFieldSerializer.class) + protected final EnumWrapper type; + + protected final String id; + + public ZipDownloadRequestItemsField(ZipDownloadRequestItemsTypeField type, String id) { + super(); + this.type = new EnumWrapper(type); + this.id = id; + } + + public ZipDownloadRequestItemsField( + @JsonProperty("type") EnumWrapper type, + @JsonProperty("id") String id) { + super(); + this.type = type; + this.id = id; + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ZipDownloadRequestItemsField casted = (ZipDownloadRequestItemsField) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "ZipDownloadRequestItemsField{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/zipdownloadrequest/ZipDownloadRequestItemsTypeField.java b/src/main/java/com/box/sdkgen/schemas/zipdownloadrequest/ZipDownloadRequestItemsTypeField.java new file mode 100644 index 000000000..447142601 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/zipdownloadrequest/ZipDownloadRequestItemsTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.zipdownloadrequest; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ZipDownloadRequestItemsTypeField implements Valuable { + FILE("file"), + FOLDER("folder"); + + private final String value; + + ZipDownloadRequestItemsTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ZipDownloadRequestItemsTypeFieldDeserializer + extends JsonDeserializer> { + + public ZipDownloadRequestItemsTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ZipDownloadRequestItemsTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ZipDownloadRequestItemsTypeFieldSerializer + extends JsonSerializer> { + + public ZipDownloadRequestItemsTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/zipdownloadstatus/ZipDownloadStatus.java b/src/main/java/com/box/sdkgen/schemas/zipdownloadstatus/ZipDownloadStatus.java new file mode 100644 index 000000000..92a74dc3a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/zipdownloadstatus/ZipDownloadStatus.java @@ -0,0 +1,159 @@ +package com.box.sdkgen.schemas.zipdownloadstatus; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ZipDownloadStatus extends SerializableObject { + + @JsonProperty("total_file_count") + protected Long totalFileCount; + + @JsonProperty("downloaded_file_count") + protected Long downloadedFileCount; + + @JsonProperty("skipped_file_count") + protected Long skippedFileCount; + + @JsonProperty("skipped_folder_count") + protected Long skippedFolderCount; + + @JsonDeserialize( + using = ZipDownloadStatusStateField.ZipDownloadStatusStateFieldDeserializer.class) + @JsonSerialize(using = ZipDownloadStatusStateField.ZipDownloadStatusStateFieldSerializer.class) + protected EnumWrapper state; + + public ZipDownloadStatus() { + super(); + } + + protected ZipDownloadStatus(Builder builder) { + super(); + this.totalFileCount = builder.totalFileCount; + this.downloadedFileCount = builder.downloadedFileCount; + this.skippedFileCount = builder.skippedFileCount; + this.skippedFolderCount = builder.skippedFolderCount; + this.state = builder.state; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getTotalFileCount() { + return totalFileCount; + } + + public Long getDownloadedFileCount() { + return downloadedFileCount; + } + + public Long getSkippedFileCount() { + return skippedFileCount; + } + + public Long getSkippedFolderCount() { + return skippedFolderCount; + } + + public EnumWrapper getState() { + return state; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ZipDownloadStatus casted = (ZipDownloadStatus) o; + return Objects.equals(totalFileCount, casted.totalFileCount) + && Objects.equals(downloadedFileCount, casted.downloadedFileCount) + && Objects.equals(skippedFileCount, casted.skippedFileCount) + && Objects.equals(skippedFolderCount, casted.skippedFolderCount) + && Objects.equals(state, casted.state); + } + + @Override + public int hashCode() { + return Objects.hash( + totalFileCount, downloadedFileCount, skippedFileCount, skippedFolderCount, state); + } + + @Override + public String toString() { + return "ZipDownloadStatus{" + + "totalFileCount='" + + totalFileCount + + '\'' + + ", " + + "downloadedFileCount='" + + downloadedFileCount + + '\'' + + ", " + + "skippedFileCount='" + + skippedFileCount + + '\'' + + ", " + + "skippedFolderCount='" + + skippedFolderCount + + '\'' + + ", " + + "state='" + + state + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long totalFileCount; + + protected Long downloadedFileCount; + + protected Long skippedFileCount; + + protected Long skippedFolderCount; + + protected EnumWrapper state; + + public Builder totalFileCount(Long totalFileCount) { + this.totalFileCount = totalFileCount; + return this; + } + + public Builder downloadedFileCount(Long downloadedFileCount) { + this.downloadedFileCount = downloadedFileCount; + return this; + } + + public Builder skippedFileCount(Long skippedFileCount) { + this.skippedFileCount = skippedFileCount; + return this; + } + + public Builder skippedFolderCount(Long skippedFolderCount) { + this.skippedFolderCount = skippedFolderCount; + return this; + } + + public Builder state(ZipDownloadStatusStateField state) { + this.state = new EnumWrapper(state); + return this; + } + + public Builder state(EnumWrapper state) { + this.state = state; + return this; + } + + public ZipDownloadStatus build() { + return new ZipDownloadStatus(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/zipdownloadstatus/ZipDownloadStatusStateField.java b/src/main/java/com/box/sdkgen/schemas/zipdownloadstatus/ZipDownloadStatusStateField.java new file mode 100644 index 000000000..37e326e6a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/zipdownloadstatus/ZipDownloadStatusStateField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.zipdownloadstatus; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ZipDownloadStatusStateField implements Valuable { + IN_PROGRESS("in_progress"), + FAILED("failed"), + SUCCEEDED("succeeded"); + + private final String value; + + ZipDownloadStatusStateField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ZipDownloadStatusStateFieldDeserializer + extends JsonDeserializer> { + + public ZipDownloadStatusStateFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ZipDownloadStatusStateField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ZipDownloadStatusStateFieldSerializer + extends JsonSerializer> { + + public ZipDownloadStatusStateFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/serialization/json/EnumWrapper.java b/src/main/java/com/box/sdkgen/serialization/json/EnumWrapper.java new file mode 100644 index 000000000..1dafbde17 --- /dev/null +++ b/src/main/java/com/box/sdkgen/serialization/json/EnumWrapper.java @@ -0,0 +1,109 @@ +package com.box.sdkgen.serialization.json; + +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +public class EnumWrapper & Valuable> implements Valuable { + private E value; + private final String stringValue; + + public EnumWrapper(E enumValue) { + this.stringValue = enumValue.getValue(); + this.value = enumValue; + } + + public EnumWrapper(String value) { + this.stringValue = value; + } + + public E getEnumValue() { + return value; + } + + public String getStringValue() { + return stringValue; + } + + @Override + public String getValue() { + return stringValue; + } + + @Override + public String toString() { + return "EnumWrapper{" + "value=" + value + ", stringValue='" + stringValue + '\'' + '}'; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnumWrapper casted = (EnumWrapper) o; + return Objects.equals(stringValue, casted.stringValue); + } + + @Override + public int hashCode() { + return Objects.hash(stringValue); + } + + public static & Valuable> List> wrapValuableEnumList( + List listField, Class enumType) { + if (listField == null || listField.isEmpty()) { + return Collections.emptyList(); + } + return listField.stream() + .map( + field -> { + if (field instanceof EnumWrapper) { + return (EnumWrapper) field; + } else if (field.getClass().isAssignableFrom(enumType)) { + return new EnumWrapper<>(enumType.cast(field)); + } else { + throw new IllegalArgumentException("Unsupported type: " + field.getClass()); + } + }) + .collect(Collectors.toList()); + } + + public static & Valuable> + List>> wrapValuableEnumListOfLists( + List> listOfLists, Class enumType) { + if (listOfLists == null || listOfLists.isEmpty()) { + return Collections.emptyList(); + } + return listOfLists.stream() + .map(list -> wrapValuableEnumList(list, enumType)) + .collect(Collectors.toList()); + } + + public static & Valuable> List> wrapListOfEnums(List enums) { + return enums.stream().map(EnumWrapper::new).collect(Collectors.toList()); + } + + public static & Valuable> List>> wrapListOfListsOfEnums( + List> listOfEnums) { + return listOfEnums.stream().map(EnumWrapper::wrapListOfEnums).collect(Collectors.toList()); + } + + public static & Valuable> String convertToString(EnumWrapper enumValue) { + if (enumValue == null) { + return null; + } + return enumValue.getStringValue(); + } + + public static & Valuable> List convertToString( + List> enumValue) { + if (enumValue == null) { + return null; + } + return enumValue.stream().map(EnumWrapper::getStringValue).collect(Collectors.toList()); + } +} diff --git a/src/main/java/com/box/sdkgen/serialization/json/JsonManager.java b/src/main/java/com/box/sdkgen/serialization/json/JsonManager.java new file mode 100644 index 000000000..cc682ab53 --- /dev/null +++ b/src/main/java/com/box/sdkgen/serialization/json/JsonManager.java @@ -0,0 +1,116 @@ +package com.box.sdkgen.serialization.json; + +import com.box.sdkgen.internal.NullablePropertyFilter; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.ObjectWriter; +import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider; +import com.fasterxml.jackson.databind.util.TokenBuffer; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; + +public class JsonManager { + + public static final ObjectMapper OBJECT_MAPPER = + new ObjectMapper().disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); + + public static final SimpleFilterProvider EXPLICITLY_SET_FILTERS = + new SimpleFilterProvider() + .addFilter("nullablePropertyFilter", new NullablePropertyFilter()) + .setFailOnUnknownId(false); + + public static final ObjectWriter WRITER = OBJECT_MAPPER.writer(EXPLICITLY_SET_FILTERS); + + public static JsonNode serialize(Object value) { + try { + TokenBuffer tokenBuffer = new TokenBuffer(OBJECT_MAPPER, false); + WRITER.writeValue(tokenBuffer, value); + + JsonNode node = tokenBuffer.asParser().readValueAsTree(); + tokenBuffer.close(); + + return node; + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public static T deserialize(JsonNode content, Class valueType) { + T deserializedObject = OBJECT_MAPPER.convertValue(content, valueType); + deserializedObject.setRawData(content); + return deserializedObject; + } + + public static JsonNode jsonToSerializedData(String text) { + try { + return OBJECT_MAPPER.readTree(text); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + + public static JsonNode jsonToSerializedData(JsonParser jp) { + try { + return OBJECT_MAPPER.readTree(jp); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public static String sdToJson(JsonNode jsonNode) { + return jsonNode.toString(); + } + + public static String sdToUrlParams(JsonNode jsonNode) { + Map map = + OBJECT_MAPPER.convertValue(jsonNode, new TypeReference>() {}); + StringBuilder formData = new StringBuilder(); + for (Map.Entry entry : map.entrySet()) { + if (formData.length() != 0) { + formData.append('&'); + } + formData.append(URLEncoder.encode(entry.getKey())); + formData.append('='); + formData.append(URLEncoder.encode(entry.getValue())); + } + return formData.toString(); + } + + public static String getSdValueByKey(JsonNode jsonNode, String key) { + return jsonNode.get(key).asText(); + } + + public static String sanitizedValue() { + return "---[redacted]---"; + } + + public static JsonNode sanitizeSerializedData(JsonNode sd, Map keysToSanitize) { + if (!sd.isObject()) { + return sd; + } + Map sanitizedDictionary = new HashMap<>(); + sd.fields() + .forEachRemaining( + entry -> { + String key = entry.getKey(); + JsonNode value = entry.getValue(); + if (keysToSanitize.containsKey(key.toLowerCase(Locale.ROOT)) && value.isTextual()) { + sanitizedDictionary.put(key, new ObjectMapper().valueToTree(sanitizedValue())); + } else if (value.isObject()) { + sanitizedDictionary.put(key, sanitizeSerializedData(value, keysToSanitize)); + } else { + sanitizedDictionary.put(key, value); + } + }); + + return new ObjectMapper().valueToTree(sanitizedDictionary); + } +} diff --git a/src/main/java/com/box/sdkgen/serialization/json/Valuable.java b/src/main/java/com/box/sdkgen/serialization/json/Valuable.java new file mode 100644 index 000000000..ab183c38a --- /dev/null +++ b/src/main/java/com/box/sdkgen/serialization/json/Valuable.java @@ -0,0 +1,5 @@ +package com.box.sdkgen.serialization.json; + +public interface Valuable { + String getValue(); +} diff --git a/src/test/Fixtures/BoxAI/ExtractMetadataFreeform200.json b/src/test/Fixtures/BoxAI/ExtractMetadataFreeform200.json deleted file mode 100644 index 1ec314c6a..000000000 --- a/src/test/Fixtures/BoxAI/ExtractMetadataFreeform200.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "answer": "Public APIs are important because of key and important reasons.", - "completion_reason": "done", - "created_at": "2012-12-12T10:53:43.123-08:00" -} \ No newline at end of file diff --git a/src/test/Fixtures/BoxAI/ExtractMetadataStructured200.json b/src/test/Fixtures/BoxAI/ExtractMetadataStructured200.json deleted file mode 100644 index 31e8b1b67..000000000 --- a/src/test/Fixtures/BoxAI/ExtractMetadataStructured200.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "answer": { - "firstName": "John", - "lastName": "Doe", - "age": 25, - "hobbies": [ - "reading", - "travelling" - ] - }, - "completion_reason": "done", - "created_at": "2012-12-12T10:53:43.123-08:00" -} \ No newline at end of file diff --git a/src/test/Fixtures/BoxAI/GetAIAgentDefaultConfigAsk200.json b/src/test/Fixtures/BoxAI/GetAIAgentDefaultConfigAsk200.json deleted file mode 100644 index 9416ee251..000000000 --- a/src/test/Fixtures/BoxAI/GetAIAgentDefaultConfigAsk200.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "type": "ai_agent_ask", - "basic_text": { - "llm_endpoint_params": { - "type": "openai_params", - "frequency_penalty": 1.5, - "presence_penalty": 1.5, - "stop": "<|im_end|>", - "temperature": 0, - "top_p": 1 - }, - "model": "openai__gpt_3_5_turbo", - "num_tokens_for_completion": 8400, - "prompt_template": "It is `{current_date}`, consider these travel options `{content}` and answer `{user_question}`", - "system_message": "You are a helpful travel assistant specialized in budget travel" - }, - "basic_text_multi": { - "llm_endpoint_params": { - "type": "openai_params", - "frequency_penalty": 1.5, - "presence_penalty": 1.5, - "stop": "<|im_end|>", - "temperature": 0, - "top_p": 1 - }, - "model": "openai__gpt_3_5_turbo", - "num_tokens_for_completion": 8400, - "prompt_template": "It is `{current_date}`, consider these travel options `{content}` and answer `{user_question}`", - "system_message": "You are a helpful travel assistant specialized in budget travel" - }, - "long_text": { - "embeddings": { - "model": "openai__text_embedding_ada_002", - "strategy": { - "id": "basic", - "num_tokens_per_chunk": 64 - } - }, - "llm_endpoint_params": { - "type": "openai_params", - "frequency_penalty": 1.5, - "presence_penalty": 1.5, - "stop": "<|im_end|>", - "temperature": 0, - "top_p": 1 - }, - "model": "openai__gpt_3_5_turbo", - "num_tokens_for_completion": 8400, - "prompt_template": "It is `{current_date}`, consider these travel options `{content}` and answer `{user_question}`", - "system_message": "You are a helpful travel assistant specialized in budget travel" - }, - "long_text_multi": { - "embeddings": { - "model": "openai__text_embedding_ada_002", - "strategy": { - "id": "basic", - "num_tokens_per_chunk": 64 - } - }, - "llm_endpoint_params": { - "type": "openai_params", - "frequency_penalty": 1.5, - "presence_penalty": 1.5, - "stop": "<|im_end|>", - "temperature": 0, - "top_p": 1 - }, - "model": "openai__gpt_3_5_turbo", - "num_tokens_for_completion": 8400, - "prompt_template": "It is `{current_date}`, consider these travel options `{content}` and answer `{user_question}`", - "system_message": "You are a helpful travel assistant specialized in budget travel" - } -} \ No newline at end of file diff --git a/src/test/Fixtures/BoxAI/GetAIAgentDefaultConfigExtract200.json b/src/test/Fixtures/BoxAI/GetAIAgentDefaultConfigExtract200.json deleted file mode 100644 index 4089200ff..000000000 --- a/src/test/Fixtures/BoxAI/GetAIAgentDefaultConfigExtract200.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "type": "ai_agent_extract", - "basic_text": { - "llm_endpoint_params": { - "type": "openai_params", - "frequency_penalty": 1.5, - "presence_penalty": 1.5, - "stop": "<|im_end|>", - "temperature": 0, - "top_p": 1 - }, - "model": "azure__openai__gpt_3_5_turbo_16k", - "num_tokens_for_completion": 8400, - "prompt_template": "It is `{current_date}`, consider these travel options `{content}` and answer the `{user_question}`.", - "system_message": "You are a helpful travel assistant specialized in budget travel" - }, - "long_text": { - "embeddings": { - "model": "openai__text_embedding_ada_002", - "strategy": { - "id": "basic", - "num_tokens_per_chunk": 64 - } - }, - "llm_endpoint_params": { - "type": "openai_params", - "frequency_penalty": 1.5, - "presence_penalty": 1.5, - "stop": "<|im_end|>", - "temperature": 0, - "top_p": 1 - }, - "model": "azure__openai__gpt_3_5_turbo_16k", - "num_tokens_for_completion": 8400, - "prompt_template": "It is `{current_date}`, consider these travel options `{content}` and answer the `{user_question}`.", - "system_message": "You are a helpful travel assistant specialized in budget travel" - } -} \ No newline at end of file diff --git a/src/test/Fixtures/BoxAI/GetAIAgentDefaultConfigExtractStructured200.json b/src/test/Fixtures/BoxAI/GetAIAgentDefaultConfigExtractStructured200.json deleted file mode 100644 index 89555e825..000000000 --- a/src/test/Fixtures/BoxAI/GetAIAgentDefaultConfigExtractStructured200.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "type": "ai_agent_extract_structured", - "basic_text": { - "llm_endpoint_params": { - "type": "openai_params", - "frequency_penalty": 1.5, - "presence_penalty": 1.5, - "stop": "<|im_end|>", - "temperature": 0, - "top_p": 1 - }, - "model": "azure__openai__gpt_3_5_turbo_16k", - "num_tokens_for_completion": 8400, - "prompt_template": "It is `{current_date}`, consider these travel options `{content}` and answer the `{user_question}`.", - "system_message": "You are a helpful travel assistant specialized in budget travel" - }, - "long_text": { - "embeddings": { - "model": "openai__text_embedding_ada_002", - "strategy": { - "id": "basic", - "num_tokens_per_chunk": 64 - } - }, - "llm_endpoint_params": { - "type": "openai_params", - "frequency_penalty": 1.5, - "presence_penalty": 1.5, - "stop": "<|im_end|>", - "temperature": 0, - "top_p": 1 - }, - "model": "azure__openai__gpt_3_5_turbo_16k", - "num_tokens_for_completion": 8400, - "prompt_template": "It is `{current_date}`, consider these travel options `{content}` and answer the `{user_question}`.", - "system_message": "You are a helpful travel assistant specialized in budget travel" - } -} \ No newline at end of file diff --git a/src/test/Fixtures/BoxAI/GetAIAgentDefaultConfigTextGen200.json b/src/test/Fixtures/BoxAI/GetAIAgentDefaultConfigTextGen200.json deleted file mode 100644 index f024bb1be..000000000 --- a/src/test/Fixtures/BoxAI/GetAIAgentDefaultConfigTextGen200.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "ai_agent_text_gen", - "basic_gen": { - "content_template": "---{content}---", - "embeddings": { - "model": "openai__text_embedding_ada_002", - "strategy": { - "id": "basic", - "num_tokens_per_chunk": 64 - } - }, - "llm_endpoint_params": { - "type": "openai_params", - "frequency_penalty": 1.5, - "presence_penalty": 1.5, - "stop": "<|im_end|>", - "temperature": 0, - "top_p": 1 - }, - "model": "openai__gpt_3_5_turbo", - "num_tokens_for_completion": 8400, - "prompt_template": "It is `{current_date}`, and I have $8000 and want to spend a week in the Azores. `{user_question}`", - "system_message": "You are a helpful travel assistant specialized in budget travel" - } -} diff --git a/src/test/Fixtures/BoxAI/SendAIRequest200.json b/src/test/Fixtures/BoxAI/SendAIRequest200.json deleted file mode 100644 index 070e51719..000000000 --- a/src/test/Fixtures/BoxAI/SendAIRequest200.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "answer": "Public APIs are important because of key and important reasons.", - "completion_reason": "done", - "created_at": "2012-12-12T10:53:43.123-08:00" -} diff --git a/src/test/Fixtures/BoxAI/SendAITextGen200.json b/src/test/Fixtures/BoxAI/SendAITextGen200.json deleted file mode 100644 index 070e51719..000000000 --- a/src/test/Fixtures/BoxAI/SendAITextGen200.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "answer": "Public APIs are important because of key and important reasons.", - "completion_reason": "done", - "created_at": "2012-12-12T10:53:43.123-08:00" -} diff --git a/src/test/Fixtures/BoxAPIConnection/State.json b/src/test/Fixtures/BoxAPIConnection/State.json deleted file mode 100644 index 4c0071e5b..000000000 --- a/src/test/Fixtures/BoxAPIConnection/State.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "accessToken": "iKqkOC4FWkd1kG1HV9P17s5N7mqJBC2N", - "refreshToken": "QALVa7gLVz8bYf4B5wDYoXfhmR7746c4", - "lastRefresh": 0, - "expires": 0, - "userAgent": "Box Java SDK v2.45.0 (Java 1.8.0_131)", - "tokenURL": "https://api.box.com/oauth2/token", - "baseURL": "https://api.box.com/2.0/", - "baseUploadURL": "https://upload.box.com/api/2.0/", - "autoRefresh": true, - "maxRetryAttempts": 1 -} diff --git a/src/test/Fixtures/BoxAPIConnection/StateDeprecated.json b/src/test/Fixtures/BoxAPIConnection/StateDeprecated.json deleted file mode 100644 index 8ed043636..000000000 --- a/src/test/Fixtures/BoxAPIConnection/StateDeprecated.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "accessToken": "iKqkOC4FWkd1kG1HV9P17s5N7mqJBC2N", - "refreshToken": "QALVa7gLVz8bYf4B5wDYoXfhmR7746c4", - "lastRefresh": 0, - "expires": 0, - "userAgent": "Box Java SDK v2.45.0 (Java 1.8.0_131)", - "tokenURL": "https://api.box.com/oauth2/token", - "baseURL": "https://api.box.com/2.0/", - "baseUploadURL": "https://upload.box.com/api/2.0/", - "autoRefresh": true, - "maxRequestAttempts": 2 -} diff --git a/src/test/Fixtures/BoxBatch/BatchCreateMetadataRequest.json b/src/test/Fixtures/BoxBatch/BatchCreateMetadataRequest.json deleted file mode 100644 index 9c5cb3ab9..000000000 --- a/src/test/Fixtures/BoxBatch/BatchCreateMetadataRequest.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "requests": [ - { - "method": "POST", - "relative_url": "/files/12345/metadata/global/properties", - "headers": { - "Content-Type": "application/json", - "Accept-Encoding": "gzip", - "Accept-Charset": "utf-8" - } - } - ] -} diff --git a/src/test/Fixtures/BoxBatch/BatchCreateMetadataResponse.json b/src/test/Fixtures/BoxBatch/BatchCreateMetadataResponse.json deleted file mode 100644 index 771203fcb..000000000 --- a/src/test/Fixtures/BoxBatch/BatchCreateMetadataResponse.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "responses": [ - { - "status": 201, - "response": { - "foo": "bar", - "$type": "properties", - "$parent": "file_12345", - "$id": "c1234-bda4-421a-a420-2142167bb98", - "$version": 0, - "$typeVersion": 5, - "$template": "properties", - "$scope": "global", - "$canEdit": true - }, - "headers": {} - } - ] -} diff --git a/src/test/Fixtures/BoxCollaboration/CreateCollaboration201.json b/src/test/Fixtures/BoxCollaboration/CreateCollaboration201.json deleted file mode 100644 index e2bb56771..000000000 --- a/src/test/Fixtures/BoxCollaboration/CreateCollaboration201.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "type": "collaboration", - "id": "12345", - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "created_at": "2018-04-18T15:05:29-07:00", - "modified_at": "2018-04-18T15:05:29-07:00", - "expires_at": "2020-04-07T12:51:30-07:00", - "status": "accepted", - "accessible_by": { - "type": "user", - "id": "2222", - "name": "Example User", - "login": "example@user.com" - }, - "role": "editor", - "acknowledged_at": "2018-04-18T15:05:28-07:00", - "item": { - "type": "folder", - "id": "5678", - "sequence_id": "2", - "etag": "2", - "name": "Ball Valve Diagram" - }, - "is_access_only": false -} diff --git a/src/test/Fixtures/BoxCollaboration/CreateFileCollaboration201.json b/src/test/Fixtures/BoxCollaboration/CreateFileCollaboration201.json deleted file mode 100644 index efb6d0645..000000000 --- a/src/test/Fixtures/BoxCollaboration/CreateFileCollaboration201.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "type": "collaboration", - "id": "12345", - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "example@test.com" - }, - "created_at": "2018-04-19T10:43:14-07:00", - "modified_at": "2018-04-19T10:43:14-07:00", - "expires_at": "2020-04-07T12:51:30-07:00", - "status": "accepted", - "accessible_by": { - "type": "user", - "id": "2222", - "name": "SDK User", - "login": "sdk@user.com" - }, - "role": "editor", - "acknowledged_at": "2018-04-19T10:43:14-07:00", - "item": { - "type": "file", - "id": "3333", - "file_version": { - "type": "file_version", - "id": "4444", - "sha1": "aa810e72823f3c3dad2d1d4488966f6f1e0a8a9d" - }, - "sequence_id": "5", - "etag": "5", - "sha1": "aa810e72823f3c3dad2d1d4488966f6f1e0a8a9d", - "name": "1_1-4_bsp_ball_valve.pdf" - }, - "is_access_only": true -} diff --git a/src/test/Fixtures/BoxCollaboration/GetCollaborationInfo200.json b/src/test/Fixtures/BoxCollaboration/GetCollaborationInfo200.json deleted file mode 100644 index 19e7ad9a8..000000000 --- a/src/test/Fixtures/BoxCollaboration/GetCollaborationInfo200.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "type": "collaboration", - "id": "12345", - "created_by": { - "type": "user", - "id": "5678", - "name": "Carl Callahan", - "login": "testuser@example.com" - }, - "created_at": "2016-06-06T11:38:58-07:00", - "modified_at": "2016-06-06T11:42:37-07:00", - "expires_at": null, - "status": "accepted", - "accessible_by": { - "type": "user", - "id": "1111", - "name": "Cary Cheng", - "login": "example@test.com" - }, - "role": "editor", - "acknowledged_at": "2016-06-06T11:38:58-07:00", - "item": { - "type": "folder", - "id": "2222", - "sequence_id": "2", - "etag": "2", - "name": "Ball Valve Diagram" - }, - "is_access_only": false -} diff --git a/src/test/Fixtures/BoxCollaboration/GetCollaborationOnFolder200.json b/src/test/Fixtures/BoxCollaboration/GetCollaborationOnFolder200.json deleted file mode 100644 index e0345e737..000000000 --- a/src/test/Fixtures/BoxCollaboration/GetCollaborationOnFolder200.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "total_count": 2, - "entries": [ - { - "type": "collaboration", - "id": "12345", - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "created_at": "2016-06-06T11:38:58-07:00", - "modified_at": "2016-06-06T11:42:37-07:00", - "expires_at": null, - "status": "accepted", - "accessible_by": { - "type": "user", - "id": "2222", - "name": "Example User", - "login": "example@user.com" - }, - "role": "editor", - "acknowledged_at": "2016-06-06T11:38:58-07:00", - "item": { - "type": "folder", - "id": "5678", - "sequence_id": "2", - "etag": "2", - "name": "Ball Valve Diagram" - }, - "is_access_only": false - }, - { - "type": "collaboration", - "id": "32145", - "created_by": { - "type": "user", - "id": "2222", - "name": "Test User", - "login": "test@user.com" - }, - "created_at": "2018-04-18T15:05:29-07:00", - "modified_at": "2018-04-18T15:37:40-07:00", - "expires_at": null, - "status": "accepted", - "accessible_by": { - "type": "user", - "id": "8888", - "name": "SDK User", - "login": "sdk@user.com" - }, - "role": "viewer", - "acknowledged_at": "2018-04-18T15:05:28-07:00", - "item": { - "type": "folder", - "id": "5555", - "sequence_id": "2", - "etag": "2", - "name": "Ball Valve Diagram" - }, - "is_access_only": false - } - ] -} diff --git a/src/test/Fixtures/BoxCollaboration/GetInviteEmailAttributesOnCollaboration200.json b/src/test/Fixtures/BoxCollaboration/GetInviteEmailAttributesOnCollaboration200.json deleted file mode 100644 index 702cd0a66..000000000 --- a/src/test/Fixtures/BoxCollaboration/GetInviteEmailAttributesOnCollaboration200.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "collaboration", - "id": "12345", - "invite_email": "example@test.com" -} diff --git a/src/test/Fixtures/BoxCollaboration/GetPendingCollaborationInfo200.json b/src/test/Fixtures/BoxCollaboration/GetPendingCollaborationInfo200.json deleted file mode 100644 index 8651be3a2..000000000 --- a/src/test/Fixtures/BoxCollaboration/GetPendingCollaborationInfo200.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "total_count": 1, - "entries": [ - { - "type": "collaboration", - "id": "12345", - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "created_at": "2018-04-18T16:57:50-07:00", - "modified_at": "2018-04-18T17:22:53-07:00", - "expires_at": null, - "status": "pending", - "accessible_by": { - "type": "user", - "id": "2222", - "name": "Example User", - "login": "example@user.com" - }, - "role": "editor", - "acknowledged_at": null, - "item": null, - "is_access_only": false - } - ], - "limit": 100, - "offset": 0 -} diff --git a/src/test/Fixtures/BoxCollaboration/UpdateCollaboration200.json b/src/test/Fixtures/BoxCollaboration/UpdateCollaboration200.json deleted file mode 100644 index 2cb48ee8c..000000000 --- a/src/test/Fixtures/BoxCollaboration/UpdateCollaboration200.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "type": "collaboration", - "id": "13261262875", - "created_by": { - "type": "user", - "id": "235699372", - "name": "Cary Cheng", - "login": "ccheng+demo@box.com" - }, - "created_at": "2018-04-18T15:05:29-07:00", - "modified_at": "2018-04-18T15:37:40-07:00", - "expires_at": "2020-04-07T12:51:30-07:00", - "status": "accepted", - "accessible_by": { - "type": "user", - "id": "244764141", - "name": "Anthony Towns", - "login": "towns@kroger.com" - }, - "role": "viewer", - "acknowledged_at": "2018-04-18T15:05:28-07:00", - "item": { - "type": "folder", - "id": "8271532885", - "sequence_id": "2", - "etag": "2", - "name": "Ball Valve Diagram" - }, - "is_access_only": false -} diff --git a/src/test/Fixtures/BoxCollaborationAllowlist/CreateAllowlistForAUser201.json b/src/test/Fixtures/BoxCollaborationAllowlist/CreateAllowlistForAUser201.json deleted file mode 100644 index af2b17936..000000000 --- a/src/test/Fixtures/BoxCollaborationAllowlist/CreateAllowlistForAUser201.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "collaboration_whitelist_exempt_target", - "id": "12345", - "user": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "enterprise": { - "type": "enterprise", - "id": "2222", - "name": "Box" - }, - "created_at": "2018-04-19T15:41:10-07:00", - "modified_at": "2018-04-19T15:41:10-07:00" -} diff --git a/src/test/Fixtures/BoxCollaborationAllowlist/CreateAllowlistForDomain201.json b/src/test/Fixtures/BoxCollaborationAllowlist/CreateAllowlistForDomain201.json deleted file mode 100644 index aac76f237..000000000 --- a/src/test/Fixtures/BoxCollaborationAllowlist/CreateAllowlistForDomain201.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "collaboration_whitelist_entry", - "id": "12345", - "domain": "example.com", - "direction": "both", - "enterprise": { - "type": "enterprise", - "id": "1111", - "name": "Example" - }, - "created_at": "2018-04-19T14:41:24-07:00", - "modified_at": "2018-04-19T14:41:24-07:00" -} diff --git a/src/test/Fixtures/BoxCollaborationAllowlist/GetAllowlistInfoForADomain200.json b/src/test/Fixtures/BoxCollaborationAllowlist/GetAllowlistInfoForADomain200.json deleted file mode 100644 index aac76f237..000000000 --- a/src/test/Fixtures/BoxCollaborationAllowlist/GetAllowlistInfoForADomain200.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "collaboration_whitelist_entry", - "id": "12345", - "domain": "example.com", - "direction": "both", - "enterprise": { - "type": "enterprise", - "id": "1111", - "name": "Example" - }, - "created_at": "2018-04-19T14:41:24-07:00", - "modified_at": "2018-04-19T14:41:24-07:00" -} diff --git a/src/test/Fixtures/BoxCollaborationAllowlist/GetAllowlistInfoForAUser200.json b/src/test/Fixtures/BoxCollaborationAllowlist/GetAllowlistInfoForAUser200.json deleted file mode 100644 index 546e1d949..000000000 --- a/src/test/Fixtures/BoxCollaborationAllowlist/GetAllowlistInfoForAUser200.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "collaboration_whitelist_exempt_target", - "id": "12345", - "user": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "enterprise": { - "type": "enterprise", - "id": "2222", - "name": "Example" - }, - "created_at": "2018-04-19T15:41:10-07:00", - "modified_at": "2018-04-19T15:41:10-07:00" -} diff --git a/src/test/Fixtures/BoxCollaborationAllowlist/GetAllowlistInfoForAllDomains200.json b/src/test/Fixtures/BoxCollaborationAllowlist/GetAllowlistInfoForAllDomains200.json deleted file mode 100644 index 8a93e95d3..000000000 --- a/src/test/Fixtures/BoxCollaborationAllowlist/GetAllowlistInfoForAllDomains200.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "entries": [ - { - "type": "collaboration_whitelist_entry", - "id": "1111", - "domain": "test.com", - "direction": "both" - }, - { - "type": "collaboration_whitelist_entry", - "id": "2222", - "domain": "example.com", - "direction": "both" - }, - { - "type": "collaboration_whitelist_entry", - "id": "3333", - "domain": "user.com", - "direction": "both" - } - ], - "limit": 100, - "order": [ - { - "by": "id", - "direction": "ASC" - } - ] -} diff --git a/src/test/Fixtures/BoxCollaborationAllowlist/GetAllowlistInfoForAllUsers200.json b/src/test/Fixtures/BoxCollaborationAllowlist/GetAllowlistInfoForAllUsers200.json deleted file mode 100644 index b710295a4..000000000 --- a/src/test/Fixtures/BoxCollaborationAllowlist/GetAllowlistInfoForAllUsers200.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "entries": [ - { - "type": "collaboration_whitelist_exempt_target", - "id": "1234", - "user": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - } - }, - { - "type": "collaboration_whitelist_exempt_target", - "id": "5678", - "user": { - "type": "user", - "id": "2222", - "name": "Example User", - "login": "example@user.com" - } - } - ], - "limit": 100, - "order": [ - { - "by": "id", - "direction": "ASC" - } - ] -} diff --git a/src/test/Fixtures/BoxCollection/AddItemToCollection200.json b/src/test/Fixtures/BoxCollection/AddItemToCollection200.json deleted file mode 100644 index cf74c5694..000000000 --- a/src/test/Fixtures/BoxCollection/AddItemToCollection200.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "type": "folder", - "id": "12345", - "sequence_id": "2", - "etag": "2", - "name": "Ball Valve Diagram", - "created_at": "2016-06-06T11:02:33-07:00", - "modified_at": "2016-07-06T14:42:06-07:00", - "description": "", - "size": 75256, - "path_collection": { - "total_count": 1, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - } - ] - }, - "created_by": { - "type": "user", - "id": "1111", - "name": "Carl Callahan", - "login": "exampleuser@test.com" - }, - "modified_by": { - "type": "user", - "id": "2222", - "name": "Cary Cheng", - "login": "testuser@example.com" - }, - "trashed_at": null, - "purged_at": null, - "content_created_at": "2016-06-06T11:02:33-07:00", - "content_modified_at": "2016-07-06T14:42:06-07:00", - "owned_by": { - "type": "user", - "id": "1111", - "name": "Carl Callahan", - "login": "exampleuser@test.com" - }, - "shared_link": null, - "folder_upload_email": null, - "parent": null, - "item_status": "active", - "item_collection": { - "total_count": 2, - "entries": [ - { - "type": "file", - "id": "5678", - "file_version": { - "type": "file_version", - "id": "72464630113", - "sha1": "05e74cbb2f89a3ded0ab1d5c4f7f1a086c259ac3" - }, - "sequence_id": "9", - "etag": "9", - "sha1": "05e74cbb2f89a3ded0ab1d5c4f7f1a086c259ac3", - "name": "1_1-4_BSP_BALL_VALVE.dwg" - }, - { - "type": "file", - "id": "7654", - "file_version": { - "type": "file_version", - "id": "77379685333", - "sha1": "aa810e72823f3c3dad2d1d4488966f6f1e0a8a9d" - }, - "sequence_id": "5", - "etag": "5", - "sha1": "aa810e72823f3c3dad2d1d4488966f6f1e0a8a9d", - "name": "1_1-4_bsp_ball_valve.pdf" - } - ], - "offset": 0, - "limit": 100, - "order": [ - { - "by": "type", - "direction": "ASC" - }, - { - "by": "name", - "direction": "ASC" - } - ] - } -} diff --git a/src/test/Fixtures/BoxCollection/GetCollectionItems200.json b/src/test/Fixtures/BoxCollection/GetCollectionItems200.json deleted file mode 100644 index 6cd5a49d1..000000000 --- a/src/test/Fixtures/BoxCollection/GetCollectionItems200.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "total_count": 4, - "entries": [ - { - "type": "file", - "id": "12345", - "file_version": { - "type": "file_version", - "id": "5678", - "sha1": "9f425a006e19bb38566af5b2122abd2e0c5dd851" - }, - "sequence_id": "1", - "etag": "1", - "sha1": "9f425a006e19bb38566af5b2122abd2e0c5dd851", - "name": "Simple Contract Final.pdf" - }, - { - "type": "web_link", - "id": "123456", - "sequence_id": "0", - "etag": "0", - "name": "google.com", - "url": "" - } - ], - "limit": 100, - "offset": 0 -} diff --git a/src/test/Fixtures/BoxCollection/GetCollections200.json b/src/test/Fixtures/BoxCollection/GetCollections200.json deleted file mode 100644 index f6a88d2a8..000000000 --- a/src/test/Fixtures/BoxCollection/GetCollections200.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "total_count": 14, - "entries": [ - { - "id": "123456", - "type": "collection", - "name": "Favorites", - "collection_type": "favorites" - } - ], - "limit": 100, - "offset": 0 -} diff --git a/src/test/Fixtures/BoxComment/CreateComment201.json b/src/test/Fixtures/BoxComment/CreateComment201.json deleted file mode 100644 index c0cf6bd97..000000000 --- a/src/test/Fixtures/BoxComment/CreateComment201.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "comment", - "id": "12345", - "is_reply_comment": false, - "message": "This is a test message.", - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "created_at": "2018-04-19T14:00:43-07:00", - "item": { - "id": "2222", - "type": "file" - }, - "modified_at": "2018-04-19T14:00:43-07:00" -} diff --git a/src/test/Fixtures/BoxComment/GetCommentInfo200.json b/src/test/Fixtures/BoxComment/GetCommentInfo200.json deleted file mode 100644 index 8ea45ae97..000000000 --- a/src/test/Fixtures/BoxComment/GetCommentInfo200.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "comment", - "id": "12345", - "is_reply_comment": false, - "message": "@Test User  yes", - "created_by": { - "type": "user", - "id": "1111", - "name": "Example User", - "login": "example@user.com" - }, - "created_at": "2016-07-06T15:53:54-07:00", - "item": { - "id": "2222", - "type": "file" - }, - "modified_at": "2016-07-06T15:53:54-07:00" -} diff --git a/src/test/Fixtures/BoxComment/GetCommentsOnFile200.json b/src/test/Fixtures/BoxComment/GetCommentsOnFile200.json deleted file mode 100644 index 94d27209f..000000000 --- a/src/test/Fixtures/BoxComment/GetCommentsOnFile200.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "total_count": 3, - "offset": 0, - "limit": 100, - "entries": [ - { - "type": "comment", - "id": "1111", - "is_reply_comment": false, - "message": "@Test User default comment.", - "created_by": { - "type": "user", - "id": "12345", - "name": "Example User", - "login": "example@user.com" - }, - "created_at": "2016-07-06T14:48:18-07:00" - }, - { - "type": "comment", - "id": "2222", - "is_reply_comment": false, - "message": "@Example User This works.", - "created_by": { - "type": "user", - "id": "32422", - "name": "Test User", - "login": "test@user.com" - }, - "created_at": "2016-07-06T15:25:00-07:00" - }, - { - "type": "comment", - "id": "3333", - "is_reply_comment": false, - "message": "@Test User yes\n\n", - "created_by": { - "type": "user", - "id": "12345", - "name": "Example User", - "login": "example@user.com" - }, - "created_at": "2016-07-06T15:53:54-07:00" - } - ] -} diff --git a/src/test/Fixtures/BoxComment/UpdateCommentsMessage200.json b/src/test/Fixtures/BoxComment/UpdateCommentsMessage200.json deleted file mode 100644 index b98cfcd07..000000000 --- a/src/test/Fixtures/BoxComment/UpdateCommentsMessage200.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "comment", - "id": "12345", - "is_reply_comment": false, - "message": "This is an updated message.", - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "created_at": "2018-04-19T14:00:43-07:00", - "item": { - "id": "2222", - "type": "file" - }, - "modified_at": "2018-04-19T14:26:25-07:00" -} diff --git a/src/test/Fixtures/BoxDevicePin/GetAllEnterpriseDevicePins200.json b/src/test/Fixtures/BoxDevicePin/GetAllEnterpriseDevicePins200.json deleted file mode 100644 index 8398bfa42..000000000 --- a/src/test/Fixtures/BoxDevicePin/GetAllEnterpriseDevicePins200.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "entries": [ - { - "type": "device_pinner", - "id": "12345", - "owned_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "product_name": "iPad" - }, - { - "type": "device_pinner", - "id": "23523", - "owned_by": { - "type": "user", - "id": "2222", - "name": "Example User", - "login": "example@user.com" - }, - "product_name": "iPad" - } - ], - "limit": 100, - "order": [ - { - "by": "id", - "direction": "ASC" - } - ] -} diff --git a/src/test/Fixtures/BoxDevicePin/GetDevicePinInfo200.json b/src/test/Fixtures/BoxDevicePin/GetDevicePinInfo200.json deleted file mode 100644 index d5dff2171..000000000 --- a/src/test/Fixtures/BoxDevicePin/GetDevicePinInfo200.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "device_pinner", - "id": "12345", - "owned_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "product_name": "iPhone", - "created_at": "2016-04-23T11:03:16-07:00", - "modified_at": "2016-04-23T11:03:16-07:00" -} diff --git a/src/test/Fixtures/BoxEvent/GetEnterpriseEvents200.json b/src/test/Fixtures/BoxEvent/GetEnterpriseEvents200.json deleted file mode 100644 index c7490cc1f..000000000 --- a/src/test/Fixtures/BoxEvent/GetEnterpriseEvents200.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "chunk_size": 2, - "next_stream_position": "1152922986252290886", - "entries": [ - { - "source": { - "type": "user", - "id": "12345", - "name": "Test User", - "login": "test@user.com" - }, - "created_by": { - "type": "user", - "id": "54321", - "name": "Example User", - "login": "example@user.com" - }, - "created_at": "2015-12-02T09:41:31-08:00", - "event_id": "1a4ade16-b1ff-4cc3-89a8-955e1522557c", - "event_type": "ADD_LOGIN_ACTIVITY_DEVICE", - "ip_address": "Unknown IP", - "type": "event", - "session_id": null, - "additional_details": null, - "action_by": { - "type": "user", - "id": "54321", - "name": "Example User", - "login": "example@user.com" - } - }, - { - "source": { - "type": "user", - "id": "12345", - "name": "Test User", - "login": "test@user.com" - }, - "created_by": { - "type": "user", - "id": "54321", - "name": "Example User", - "login": "example@user.com" - }, - "created_at": "2015-12-02T09:41:31-08:00", - "event_id": "1a4ade16-b1ff-4cc3-89a8-955e1522557c", - "event_type": "ADD_LOGIN_ACTIVITY_DEVICE", - "ip_address": "Unknown IP", - "type": "event", - "session_id": null, - "additional_details": null, - "action_by": { - "type": "user", - "id": "54321", - "name": "Example User", - "login": "example@user.com" - } - } - ] -} diff --git a/src/test/Fixtures/BoxException/BoxResponseException400WithErrorAndErrorDescription.json b/src/test/Fixtures/BoxException/BoxResponseException400WithErrorAndErrorDescription.json deleted file mode 100644 index e1f92dc2f..000000000 --- a/src/test/Fixtures/BoxException/BoxResponseException400WithErrorAndErrorDescription.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "status": 403, - "error": "Forbidden", - "error_description": "Unauthorized Access", - "request_id": "22222" -} diff --git a/src/test/Fixtures/BoxException/BoxResponseException403.json b/src/test/Fixtures/BoxException/BoxResponseException403.json deleted file mode 100644 index 1c59dfc83..000000000 --- a/src/test/Fixtures/BoxException/BoxResponseException403.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "status": 403, - "code": "Forbidden" -} diff --git a/src/test/Fixtures/BoxException/BoxResponseException403WithRequestID.json b/src/test/Fixtures/BoxException/BoxResponseException403WithRequestID.json deleted file mode 100644 index 34a852949..000000000 --- a/src/test/Fixtures/BoxException/BoxResponseException403WithRequestID.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "status": 403, - "code": "Forbidden", - "request_id": "22222" -} diff --git a/src/test/Fixtures/BoxException/BoxResponseException404.json b/src/test/Fixtures/BoxException/BoxResponseException404.json deleted file mode 100644 index 6c6cfac97..000000000 --- a/src/test/Fixtures/BoxException/BoxResponseException404.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "status": 404, - "code": "instance_not_found" -} diff --git a/src/test/Fixtures/BoxException/BoxResponseException409.json b/src/test/Fixtures/BoxException/BoxResponseException409.json deleted file mode 100644 index 5a48d6c73..000000000 --- a/src/test/Fixtures/BoxException/BoxResponseException409.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "status": 409, - "code": "Conflict" -} diff --git a/src/test/Fixtures/BoxException/BoxResponseException500.json b/src/test/Fixtures/BoxException/BoxResponseException500.json deleted file mode 100644 index da78dd72b..000000000 --- a/src/test/Fixtures/BoxException/BoxResponseException500.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "status": 500, - "code": "Internal Server Error" -} diff --git a/src/test/Fixtures/BoxFile/CanUploadFile200.json b/src/test/Fixtures/BoxFile/CanUploadFile200.json deleted file mode 100644 index b4f2dc113..000000000 --- a/src/test/Fixtures/BoxFile/CanUploadFile200.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "upload_token": "Pc3FIOG9vSGV4VHo4QzAyg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQP", - "upload_url": "https://upload-las.app.box.com/api/2.0/files/content?upload_session_id=1234" -} diff --git a/src/test/Fixtures/BoxFile/CommitUpload201.json b/src/test/Fixtures/BoxFile/CommitUpload201.json deleted file mode 100644 index 86bb2de87..000000000 --- a/src/test/Fixtures/BoxFile/CommitUpload201.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "total_count": 1, - "entries": [ - { - "type": "file", - "id": "1111111", - "file_version": { - "type": "file_version", - "id": "111111", - "sha1": "59cc614b395ce5b3051bb78b51d6720c28318c96" - }, - "sequence_id": "0", - "etag": "0", - "sha1": "59cc614b395ce5b3051bb78b51d6720c28318c96", - "name": "testfile.txt", - "description": "", - "size": 10, - "path_collection": { - "total_count": 1, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - } - ] - }, - "created_at": "2017-11-02T15:04:38-07:00", - "modified_at": "2017-11-02T15:04:38-07:00", - "trashed_at": null, - "purged_at": null, - "content_created_at": "2017-11-02T15:04:38-07:00", - "content_modified_at": "2017-11-02T15:04:38-07:00", - "created_by": { - "type": "user", - "id": "11111", - "name": "Test User", - "login": "testuser@box.com" - }, - "modified_by": { - "type": "user", - "id": "11111", - "name": "Test User", - "login": "testuser@box.com" - }, - "owned_by": { - "type": "user", - "id": "11111", - "name": "Test User", - "login": "testuser@box.com" - }, - "shared_link": null, - "parent": { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - }, - "item_status": "active" - } - ] -} diff --git a/src/test/Fixtures/BoxFile/CommitUploadWithAttributes201.json b/src/test/Fixtures/BoxFile/CommitUploadWithAttributes201.json deleted file mode 100644 index af8e0beb4..000000000 --- a/src/test/Fixtures/BoxFile/CommitUploadWithAttributes201.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "total_count": 1, - "entries": [ - { - "type": "file", - "id": "1111111", - "file_version": { - "type": "file_version", - "id": "111111", - "sha1": "59cc614b395ce5b3051bb78b51d6720c28318c96" - }, - "sequence_id": "0", - "etag": "0", - "sha1": "59cc614b395ce5b3051bb78b51d6720c28318c96", - "name": "testfile.txt", - "description": "", - "size": 10, - "path_collection": { - "total_count": 1, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - } - ] - }, - "created_at": "2017-11-02T15:04:38-07:00", - "modified_at": "2017-11-02T15:04:38-07:00", - "trashed_at": null, - "purged_at": null, - "content_created_at": "2017-11-02T15:04:38-07:00", - "content_modified_at": "2017-04-07T17:58:08-07:00", - "created_by": { - "type": "user", - "id": "11111", - "name": "Test User", - "login": "testuser@box.com" - }, - "modified_by": { - "type": "user", - "id": "11111", - "name": "Test User", - "login": "testuser@box.com" - }, - "owned_by": { - "type": "user", - "id": "11111", - "name": "Test User", - "login": "testuser@box.com" - }, - "shared_link": null, - "parent": { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - }, - "item_status": "active" - } - ] -} diff --git a/src/test/Fixtures/BoxFile/CopyFile200.json b/src/test/Fixtures/BoxFile/CopyFile200.json deleted file mode 100644 index 1cef64681..000000000 --- a/src/test/Fixtures/BoxFile/CopyFile200.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "type": "file", - "id": "12345", - "file_version": { - "type": "file_version", - "id": "305010059772", - "sha1": "7ea91497ad7351d80f3a8439ae3d89dcc2675d27" - }, - "sequence_id": "0", - "etag": "0", - "sha1": "7ea91497ad7351d80f3a8439ae3d89dcc2675d27", - "name": "New File Name", - "description": "", - "size": 68142, - "path_collection": { - "total_count": 1, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - } - ] - }, - "created_at": "2018-04-25T11:00:18-07:00", - "modified_at": "2018-04-25T11:00:18-07:00", - "trashed_at": null, - "purged_at": null, - "content_created_at": "2018-04-24T12:15:12-07:00", - "content_modified_at": "2018-04-24T12:15:12-07:00", - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "modified_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "owned_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "shared_link": null, - "parent": { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - }, - "item_status": "active" -} diff --git a/src/test/Fixtures/BoxFile/CreateClassificationOnFile201.json b/src/test/Fixtures/BoxFile/CreateClassificationOnFile201.json deleted file mode 100644 index 6e386ab43..000000000 --- a/src/test/Fixtures/BoxFile/CreateClassificationOnFile201.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "Box__Security__Classification__Key": "Public", - "$type": "securityClassification-6VMVochwUWo-2113c92e-6de3-4f48-bb3c-ef08817b5e63", - "$parent": "file_12345", - "$id": "e1224150-9a7b-4760-96d9-fa845c140967", - "$version": 0, - "$typeVersion": 6, - "$template": "securityClassification-6VMVochwUWo", - "$scope": "enterprise_12345", - "$canEdit": true -} diff --git a/src/test/Fixtures/BoxFile/CreateFileWithDescription201.json b/src/test/Fixtures/BoxFile/CreateFileWithDescription201.json deleted file mode 100644 index 6f9c3c44b..000000000 --- a/src/test/Fixtures/BoxFile/CreateFileWithDescription201.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "total_count": 1, - "entries": [ - { - "type": "file", - "id": "11111", - "file_version": { - "type": "file_version", - "id": "22222", - "sha1": "13f59ca81ca01c147b7c425183bbd058e680331f" - }, - "sequence_id": "0", - "etag": "0", - "sha1": "13f59ca81ca01c147b7c425183bbd058e680331f", - "name": "Test File.txt", - "description": "Test Description", - "size": 9, - "path_collection": { - "total_count": 1, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - } - ] - }, - "created_at": "2019-03-31T16:21:22-07:00", - "modified_at": "2019-03-31T16:21:22-07:00", - "trashed_at": null, - "purged_at": null, - "content_created_at": "2019-03-31T16:21:22-07:00", - "content_modified_at": "2019-03-31T16:21:22-07:00", - "created_by": { - "type": "user", - "id": "55555", - "name": "Test User", - "login": "testuser@example.com" - }, - "modified_by": { - "type": "user", - "id": "55555", - "name": "TestUser", - "login": "testuser@example.com" - }, - "owned_by": { - "type": "user", - "id": "55555", - "name": "Test User", - "login": "testuser@example.com" - }, - "shared_link": null, - "parent": { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - }, - "item_status": "active" - } - ] -} - diff --git a/src/test/Fixtures/BoxFile/CreateMetadataOnFile201.json b/src/test/Fixtures/BoxFile/CreateMetadataOnFile201.json deleted file mode 100644 index db8f2df05..000000000 --- a/src/test/Fixtures/BoxFile/CreateMetadataOnFile201.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "foo": "bar", - "$type": "properties", - "$parent": "file_1111", - "$id": "12345", - "$version": 0, - "$typeVersion": 4, - "$template": "properties", - "$scope": "global" -} diff --git a/src/test/Fixtures/BoxFile/CreateSharedLinkWithPassword201.json b/src/test/Fixtures/BoxFile/CreateSharedLinkWithPassword201.json deleted file mode 100644 index 7bd35c042..000000000 --- a/src/test/Fixtures/BoxFile/CreateSharedLinkWithPassword201.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "type": "file", - "id": "1111", - "file_version": { - "type": "file_version", - "id": "2222", - "sha1": "a9225c82fdce3e5701111976de462c22a76df7ee" - }, - "sequence_id": "1", - "etag": "1", - "sha1": "a9225c82fdce3e5701111976de462c22a76df7ee", - "name": "test.png", - "description": "", - "size": 2882774, - "path_collection": { - "total_count": 2, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - }, - { - "type": "folder", - "id": "3333", - "sequence_id": "0", - "etag": "0", - "name": "Test Folder" - } - ] - }, - "created_at": "2018-07-02T10:29:20-07:00", - "modified_at": "2018-07-02T10:29:22-07:00", - "trashed_at": null, - "purged_at": null, - "content_created_at": "2018-04-30T15:36:09-07:00", - "content_modified_at": "2018-04-30T15:36:09-07:00", - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@example.com" - }, - "modified_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@example.com" - }, - "owned_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@example.com" - }, - "shared_link": { - "url": "https://testt3t2t2t2.box.com/s/12345", - "download_url": "https://testt3t2t2t2.box.com/shared/static/12345.png", - "vanity_url": null, - "effective_access": "open", - "effective_permission": "can_download", - "is_password_enabled": true, - "unshared_at": null, - "download_count": 0, - "preview_count": 0, - "access": "open", - "permissions": { - "can_preview": true, - "can_download": true - } - }, - "parent": { - "type": "folder", - "id": "5555", - "sequence_id": "0", - "etag": "0", - "name": "Test Folder" - }, - "item_status": "active" -} diff --git a/src/test/Fixtures/BoxFile/CreateUploadSession201.json b/src/test/Fixtures/BoxFile/CreateUploadSession201.json deleted file mode 100644 index dd8535a81..000000000 --- a/src/test/Fixtures/BoxFile/CreateUploadSession201.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "total_parts": 1, - "part_size": 5, - "session_endpoints": { - "list_parts": "https://localhost:53621/2.0/files/upload_sessions/D5E3F8ADA11A38F0A66AD0B64AACA658/parts", - "commit": "https://localhost:53621/2.0/files/upload_sessions/D5E3F8ADA11A38F0A66AD0B64AACA658/commit", - "log_event": "https://localhost:53621/2.0/files/upload_sessions/D5E3F8ADA11A38F0A66AD0B64AACA658/log", - "upload_part": "https://localhost:53621/2.0/files/upload_sessions/D5E3F8ADA11A38F0A66AD0B64AACA658", - "status": "https://localhost:53621/2.0/files/upload_sessions/D5E3F8ADA11A38F0A66AD0B64AACA658", - "abort": "https://localhost:53621/2.0/files/upload_sessions/D5E3F8ADA11A38F0A66AD0B64AACA658" - }, - "session_expires_at": "2017-11-09T21:59:16Z", - "id": "D5E3F8ADA11A38F0A66AD0B64AACA658", - "type": "upload_session", - "num_parts_processed": 0 -} diff --git a/src/test/Fixtures/BoxFile/GetAllFileVersions200.json b/src/test/Fixtures/BoxFile/GetAllFileVersions200.json deleted file mode 100644 index 18a484ab0..000000000 --- a/src/test/Fixtures/BoxFile/GetAllFileVersions200.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "total_count": 1, - "entries": [ - { - "type": "file_version", - "id": "12345", - "sha1": "a783fb33dcc129625d36c1b401fd315222590b5d", - "name": "Example.jpg", - "size": 37921, - "created_at": "2018-05-02T13:50:57-07:00", - "modified_at": "2018-05-02T13:50:59-07:00", - "modified_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "trashed_at": null, - "purged_at": null - } - ], - "limit": 1000, - "offset": 0 -} diff --git a/src/test/Fixtures/BoxFile/GetFileInfo200.json b/src/test/Fixtures/BoxFile/GetFileInfo200.json deleted file mode 100644 index 72373dcef..000000000 --- a/src/test/Fixtures/BoxFile/GetFileInfo200.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "type": "file", - "id": "12345", - "file_version": { - "type": "file_version", - "id": "304867920258", - "sha1": "7ea91497ad7351d80f3a8439ae3d89dcc2675d27" - }, - "sequence_id": "0", - "etag": "0", - "sha1": "7ea91497ad7351d80f3a8439ae3d89dcc2675d27", - "name": "Example.pdf", - "description": "", - "size": 68142, - "path_collection": { - "total_count": 2, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - }, - { - "type": "folder", - "id": "1111", - "sequence_id": "0", - "etag": "0", - "name": "Example Folder" - } - ] - }, - "created_at": "2018-04-24T17:00:44-07:00", - "modified_at": "2018-04-24T17:01:11-07:00", - "trashed_at": null, - "purged_at": null, - "content_created_at": "2018-04-24T12:15:12-07:00", - "content_modified_at": "2018-04-24T12:15:12-07:00", - "is_externally_owned": true, - "uploader_display_name": "Test User", - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "modified_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "owned_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "shared_link": null, - "parent": { - "type": "folder", - "id": "2222", - "sequence_id": "0", - "etag": "0", - "name": "Test Folder" - }, - "item_status": "active", - "allowed_invitee_roles": [ - "open" - ], - "has_collaborations": true, - "classification": { - "color": "#00FFFF", - "definition": "Content that should not be shared outside the company.", - "name": "Top Secret" - }, - "disposition_at": "2012-12-12T18:53:43Z", - "is_accessible_via_shared_link": true, - "permissions": { - "can_annotate": true, - "can_comment": true, - "can_delete": true, - "can_download": true, - "can_invite_collaborator": true, - "can_preview": true, - "can_rename": true, - "can_set_share_access": true, - "can_share": true, - "can_upload": true, - "can_view_annotations_all": true, - "can_view_annotations_self": true - } -} diff --git a/src/test/Fixtures/BoxFile/GetFileInfoCausesDeserializationException.json b/src/test/Fixtures/BoxFile/GetFileInfoCausesDeserializationException.json deleted file mode 100644 index 02fbce7dd..000000000 --- a/src/test/Fixtures/BoxFile/GetFileInfoCausesDeserializationException.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "type": "file", - "id": "12345", - "file_version": { - "type": "file_version", - "id": "304867920258", - "sha1": "7ea91497ad7351d80f3a8439ae3d89dcc2675d27" - }, - "sequence_id": "0", - "etag": 0, - "sha1": "7ea91497ad7351d80f3a8439ae3d89dcc2675d27", - "name": "Example.pdf", - "description": "", - "size": 68142, - "path_collection": { - "total_count": 2, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - }, - { - "type": "folder", - "id": "1111", - "sequence_id": "0", - "etag": "0", - "name": "Example Folder" - } - ] - }, - "created_at": "2018-04-24T17:00:44-07:00", - "modified_at": "2018-04-24T17:01:11-07:00", - "trashed_at": null, - "purged_at": null, - "content_created_at": "2018-04-24T12:15:12-07:00", - "content_modified_at": "2018-04-24T12:15:12-07:00", - "is_externally_owned": true, - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "modified_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "owned_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "shared_link": null, - "parent": { - "type": "folder", - "id": "2222", - "sequence_id": "0", - "etag": "0", - "name": "Test Folder" - }, - "item_status": "active", - "allowed_invitee_roles": [ - "open" - ], - "has_collaborations": true -} diff --git a/src/test/Fixtures/BoxFile/GetFileRepresentation200.json b/src/test/Fixtures/BoxFile/GetFileRepresentation200.json deleted file mode 100644 index 492154c60..000000000 --- a/src/test/Fixtures/BoxFile/GetFileRepresentation200.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "representation": "jpg", - "properties": { - "dimensions": "32x32", - "paged": false, - "thumb": true - }, - "info": { - "url": "https://localhost:53621/2.0/internal_files/1030335435441/versions/1116437417841/representations/jpg_thumb_32x32" - }, - "status": { - "state": "success" - }, - "content": { - "url_template": "https://localhost:53621/2.0/internal_files/1030335435441/versions/1116437417841/representations/jpg_thumb_32x32/content/{+asset_path}" - } -} diff --git a/src/test/Fixtures/BoxFile/GetFileRepresentation200WithPending.json b/src/test/Fixtures/BoxFile/GetFileRepresentation200WithPending.json deleted file mode 100644 index ec1ade405..000000000 --- a/src/test/Fixtures/BoxFile/GetFileRepresentation200WithPending.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "representation": "jpg", - "properties": { - "dimensions": "32x32", - "paged": false, - "thumb": true - }, - "info": { - "url": "https://localhost:53621/2.0/internal_files/1030335435441/versions/1116437417841/representations/jpg_thumb_32x32" - }, - "status": { - "state": "pending" - }, - "content": { - "url_template": "https://localhost:53621/2.0/internal_files/1030335435441/versions/1116437417841/representations/jpg_thumb_32x32/content/{+asset_path}" - } -} diff --git a/src/test/Fixtures/BoxFile/GetFileRepresentations200.json b/src/test/Fixtures/BoxFile/GetFileRepresentations200.json deleted file mode 100644 index 90c233cd3..000000000 --- a/src/test/Fixtures/BoxFile/GetFileRepresentations200.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "type": "file", - "id": "12345", - "etag": "0", - "representations": { - "entries": [ - { - "representation": "jpg", - "properties": { - "dimensions": "32x32", - "paged": false, - "thumb": true - }, - "info": { - "url": "https://localhost:53621/2.0/internal_files/12345/versions/1116420931563/representations/jpg_thumb_32x32" - }, - "status": { - "state": "none" - }, - "content": { - "url_template": "https://localhost:53621/2.0/internal_files/12345/versions/1116420931563/representations/jpg_thumb_32x32/content/{+asset_path}" - } - } - ] - } -} diff --git a/src/test/Fixtures/BoxFile/GetFileTasksInfoWithFields200.json b/src/test/Fixtures/BoxFile/GetFileTasksInfoWithFields200.json deleted file mode 100644 index 20afd4615..000000000 --- a/src/test/Fixtures/BoxFile/GetFileTasksInfoWithFields200.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "total_count": 5, - "entries": [ - { - "type": "task", - "id": "38599261", - "is_completed": true - }, - { - "type": "task", - "id": "38620737", - "is_completed": true - }, - { - "type": "task", - "id": "38620945", - "is_completed": true - }, - { - "type": "task", - "id": "38621621", - "is_completed": true - }, - { - "type": "task", - "id": "44118229", - "is_completed": true - } - ] -} diff --git a/src/test/Fixtures/BoxFile/GetFileVersion200.json b/src/test/Fixtures/BoxFile/GetFileVersion200.json deleted file mode 100644 index fb3944e56..000000000 --- a/src/test/Fixtures/BoxFile/GetFileVersion200.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "file_version", - "id": "12345", - "sha1": "a783fb33dcc129625d36c1b401fd315222590b5d", - "name": "Example.jpg", - "size": 37921, - "created_at": "2018-05-02T13:50:57-07:00", - "modified_at": "2018-05-02T13:50:59-07:00", - "modified_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "trashed_at": null, - "purged_at": null -} diff --git a/src/test/Fixtures/BoxFile/GetMetadataOnFile200.json b/src/test/Fixtures/BoxFile/GetMetadataOnFile200.json deleted file mode 100644 index db8f2df05..000000000 --- a/src/test/Fixtures/BoxFile/GetMetadataOnFile200.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "foo": "bar", - "$type": "properties", - "$parent": "file_1111", - "$id": "12345", - "$version": 0, - "$typeVersion": 4, - "$template": "properties", - "$scope": "global" -} diff --git a/src/test/Fixtures/BoxFile/ListUploadedPart200.json b/src/test/Fixtures/BoxFile/ListUploadedPart200.json deleted file mode 100644 index 899524191..000000000 --- a/src/test/Fixtures/BoxFile/ListUploadedPart200.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "total_count": 1, - "limit": 100, - "offset": 0, - "order": [ - { - "by": "type", - "direction": "ASC" - } - ], - "entries": [ - { - "part_id": "CFEB5BA9", - "offset": 0, - "size": 5, - "sha1": "5fde1ccb603e6566d20da811c9c8bcccb044d4ae" - } - ] -} diff --git a/src/test/Fixtures/BoxFile/ListUploadedParts200.json b/src/test/Fixtures/BoxFile/ListUploadedParts200.json deleted file mode 100644 index d314e8af1..000000000 --- a/src/test/Fixtures/BoxFile/ListUploadedParts200.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "total_count": 2, - "limit": 100, - "offset": 0, - "order": [ - { - "by": "type", - "direction": "ASC" - } - ], - "entries": [ - { - "part_id": "AHDJNA9", - "offset": 5, - "size": 5, - "sha1": "5fde1cfjwuvbjkafhryejwocb044d4ae" - }, - { - "part_id": "BHFYWL5BA9", - "offset": 11, - "size": 5, - "sha1": "nfyuwknf6566d20da811c9c8bcccb044d4ae" - } - ] -} diff --git a/src/test/Fixtures/BoxFile/LockFile200.json b/src/test/Fixtures/BoxFile/LockFile200.json deleted file mode 100644 index 6b0c13699..000000000 --- a/src/test/Fixtures/BoxFile/LockFile200.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "file", - "id": "12345", - "etag": "1", - "lock": { - "type": "lock", - "id": "1111", - "created_by": { - "type": "user", - "id": "2222", - "name": "Test User", - "login": "test@user.com" - }, - "created_at": "2018-04-25T11:48:45-07:00", - "expires_at": null, - "is_download_prevented": true - } -} diff --git a/src/test/Fixtures/BoxFile/MoveFile200.json b/src/test/Fixtures/BoxFile/MoveFile200.json deleted file mode 100644 index 6b0056c3f..000000000 --- a/src/test/Fixtures/BoxFile/MoveFile200.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "type": "file", - "id": "12345", - "file_version": { - "type": "file_version", - "id": "304867920258", - "sha1": "7ea91497ad7351d80f3a8439ae3d89dcc2675d27" - }, - "sequence_id": "1", - "etag": "1", - "sha1": "7ea91497ad7351d80f3a8439ae3d89dcc2675d27", - "name": "New File Name", - "description": "", - "size": 68142, - "path_collection": { - "total_count": 2, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - }, - { - "type": "folder", - "id": "1111", - "sequence_id": "0", - "etag": "0", - "name": "Another Move Folder" - } - ] - }, - "created_at": "2018-04-24T17:00:44-07:00", - "modified_at": "2018-04-25T10:47:00-07:00", - "trashed_at": null, - "purged_at": null, - "content_created_at": "2018-04-24T12:15:12-07:00", - "content_modified_at": "2018-04-24T12:15:12-07:00", - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "modified_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "owned_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "shared_link": null, - "parent": { - "type": "folder", - "id": "1111", - "sequence_id": "0", - "etag": "0", - "name": "Another Move Folder" - }, - "item_status": "active" -} diff --git a/src/test/Fixtures/BoxFile/UnlockFile200.json b/src/test/Fixtures/BoxFile/UnlockFile200.json deleted file mode 100644 index 763e64883..000000000 --- a/src/test/Fixtures/BoxFile/UnlockFile200.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "type": "file", - "id": "12345", - "etag": "1", - "lock": null -} diff --git a/src/test/Fixtures/BoxFile/UpdateClassificationOnFile200.json b/src/test/Fixtures/BoxFile/UpdateClassificationOnFile200.json deleted file mode 100644 index 31e9df129..000000000 --- a/src/test/Fixtures/BoxFile/UpdateClassificationOnFile200.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "Box__Security__Classification__Key": "Internal", - "$type": "securityClassification-6VMVochwUWo-2113c92e-6de3-4f48-bb3c-ef08817b5e63", - "$parent": "file_12345", - "$id": "e1224150-9a7b-4760-96d9-fa845c140967", - "$version": 0, - "$typeVersion": 6, - "$template": "securityClassification-6VMVochwUWo", - "$scope": "enterprise_12345", - "$canEdit": true -} diff --git a/src/test/Fixtures/BoxFile/UpdateFileInfo200.json b/src/test/Fixtures/BoxFile/UpdateFileInfo200.json deleted file mode 100644 index 25754c7ab..000000000 --- a/src/test/Fixtures/BoxFile/UpdateFileInfo200.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "type": "file", - "id": "12345", - "file_version": { - "type": "file_version", - "id": "304867920258", - "sha1": "7ea91497ad7351d80f3a8439ae3d89dcc2675d27" - }, - "sequence_id": "0", - "etag": "0", - "sha1": "7ea91497ad7351d80f3a8439ae3d89dcc2675d27", - "name": "New File Name", - "description": "", - "size": 68142, - "path_collection": { - "total_count": 2, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - }, - { - "type": "folder", - "id": "1111", - "sequence_id": "0", - "etag": "0", - "name": "Example Folder" - } - ] - }, - "created_at": "2018-04-24T17:00:44-07:00", - "modified_at": "2018-04-24T17:01:11-07:00", - "trashed_at": null, - "purged_at": null, - "content_created_at": "2018-04-24T12:15:12-07:00", - "content_modified_at": "2018-04-24T12:15:12-07:00", - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "modified_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "owned_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "shared_link": null, - "parent": { - "type": "folder", - "id": "2222", - "sequence_id": "0", - "etag": "0", - "name": "Test Folder" - }, - "item_status": "active" -} diff --git a/src/test/Fixtures/BoxFile/UpdateMetadataOnFile200.json b/src/test/Fixtures/BoxFile/UpdateMetadataOnFile200.json deleted file mode 100644 index 68a32c3c1..000000000 --- a/src/test/Fixtures/BoxFile/UpdateMetadataOnFile200.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "test1": "text", - "test2": [ - "first", - "second", - "third" - ], - "test3": 2, - "test4": 2.33333333333333344E17, - "$type": "account-e68798f0-347f-4882-a1ae-f65b032780ac", - "$parent": "file_12345", - "$id": "0db91053-c355-4fc7-b69c-9d511974bbc4", - "$version": 1, - "$typeVersion": 1, - "$template": "testtemplate", - "$scope": "enterprise_11111", - "$canEdit": true -} diff --git a/src/test/Fixtures/BoxFile/UploadNewVersion201.json b/src/test/Fixtures/BoxFile/UploadNewVersion201.json deleted file mode 100644 index 26f37108c..000000000 --- a/src/test/Fixtures/BoxFile/UploadNewVersion201.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "total_count": 1, - "entries": [ - { - "type": "file", - "id": "11111", - "file_version": { - "type": "file_version", - "id": "12345", - "sha1": "66b034c4281cc624495835a3b5cd80edbaaae688" - }, - "sequence_id": "2", - "etag": "2", - "sha1": "66b034c4281cc624495835a3b5cd80edbaaae688", - "name": "test.txt", - "description": "", - "size": 105459, - "path_collection": { - "total_count": 2, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - }, - { - "type": "folder", - "id": "22222", - "sequence_id": "0", - "etag": "0", - "name": "Test Folder" - } - ] - }, - "created_at": "2015-10-14T11:22:25-07:00", - "modified_at": "2018-05-29T11:41:51-07:00", - "trashed_at": null, - "purged_at": null, - "content_created_at": "2015-08-24T11:34:45-07:00", - "content_modified_at": "2018-05-29T11:41:51-07:00", - "created_by": { - "type": "user", - "id": "33333", - "name": "Test User", - "login": "testuser@example.com" - }, - "modified_by": { - "type": "user", - "id": "33333", - "name": "Test User", - "login": "testuser@example.com" - }, - "owned_by": { - "type": "user", - "id": "33333", - "name": "Test User", - "login": "testuser@example.com" - }, - "shared_link": null, - "parent": { - "type": "folder", - "id": "22222", - "sequence_id": "0", - "etag": "0", - "name": "Test Folder" - }, - "item_status": "active" - } - ] -} diff --git a/src/test/Fixtures/BoxFile/UploadPartOne200.json b/src/test/Fixtures/BoxFile/UploadPartOne200.json deleted file mode 100644 index 22d5be28b..000000000 --- a/src/test/Fixtures/BoxFile/UploadPartOne200.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "part": { - "part_id": "CFEB5BA9", - "offset": 0, - "size": 5, - "sha1": "5fde1ccb603e6566d20da811c9c8bcccb044d4ae" - } -} diff --git a/src/test/Fixtures/BoxFileRequest/CopyFileRequest200.json b/src/test/Fixtures/BoxFileRequest/CopyFileRequest200.json deleted file mode 100644 index 358481162..000000000 --- a/src/test/Fixtures/BoxFileRequest/CopyFileRequest200.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "id": "82037344", - "type": "file-request", - "created_at": "2020-09-28T10:53:43-08:00", - "created_by": { - "id": "11446498", - "type": "user", - "login": "ceo@example.com", - "name": "Aaron Levie" - }, - "description": "Following documents are requested for your process", - "etag": "1", - "expires_at": "2020-09-28T10:53:43-08:00", - "folder": { - "id": "12345", - "type": "folder", - "etag": "1", - "name": "Contracts", - "sequence_id": "3" - }, - "is_description_required": true, - "is_email_required": true, - "status": "active", - "title": "Please upload documents", - "updated_at": "2020-09-28T10:53:43-08:00", - "updated_by": { - "id": "11446498", - "type": "user", - "login": "ceo@example.com", - "name": "Aaron Levie" - }, - "url": "/f/19e57f40ace247278a8e3d336678c64a" -} diff --git a/src/test/Fixtures/BoxFileRequest/GetFileRequest200.json b/src/test/Fixtures/BoxFileRequest/GetFileRequest200.json deleted file mode 100644 index 43a4d6980..000000000 --- a/src/test/Fixtures/BoxFileRequest/GetFileRequest200.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "id": "42037322", - "type": "file-request", - "created_at": "2020-09-28T10:53:43-08:00", - "created_by": { - "id": "11446498", - "type": "user", - "login": "ceo@example.com", - "name": "Aaron Levie" - }, - "description": "Following documents are requested for your process", - "etag": "1", - "expires_at": "2020-09-28T10:53:43-08:00", - "folder": { - "id": "12345", - "type": "folder", - "etag": "1", - "name": "Contracts", - "sequence_id": "3" - }, - "is_description_required": true, - "is_email_required": true, - "status": "active", - "title": "Please upload documents", - "updated_at": "2020-09-28T10:53:43-08:00", - "updated_by": { - "id": "11446498", - "type": "user", - "login": "ceo@example.com", - "name": "Aaron Levie" - }, - "url": "/f/19e57f40ace247278a8e3d336678c64a" -} diff --git a/src/test/Fixtures/BoxFileRequest/UpdateFileRequest200.json b/src/test/Fixtures/BoxFileRequest/UpdateFileRequest200.json deleted file mode 100644 index 43a4d6980..000000000 --- a/src/test/Fixtures/BoxFileRequest/UpdateFileRequest200.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "id": "42037322", - "type": "file-request", - "created_at": "2020-09-28T10:53:43-08:00", - "created_by": { - "id": "11446498", - "type": "user", - "login": "ceo@example.com", - "name": "Aaron Levie" - }, - "description": "Following documents are requested for your process", - "etag": "1", - "expires_at": "2020-09-28T10:53:43-08:00", - "folder": { - "id": "12345", - "type": "folder", - "etag": "1", - "name": "Contracts", - "sequence_id": "3" - }, - "is_description_required": true, - "is_email_required": true, - "status": "active", - "title": "Please upload documents", - "updated_at": "2020-09-28T10:53:43-08:00", - "updated_by": { - "id": "11446498", - "type": "user", - "login": "ceo@example.com", - "name": "Aaron Levie" - }, - "url": "/f/19e57f40ace247278a8e3d336678c64a" -} diff --git a/src/test/Fixtures/BoxFolder/CopyFolder201.json b/src/test/Fixtures/BoxFolder/CopyFolder201.json deleted file mode 100644 index eea4bb50b..000000000 --- a/src/test/Fixtures/BoxFolder/CopyFolder201.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "type": "folder", - "id": "12345", - "sequence_id": "0", - "etag": "0", - "name": "New Folder Name", - "created_at": "2018-04-24T13:07:52-07:00", - "modified_at": "2018-04-24T13:07:52-07:00", - "description": "Folder Description", - "size": 75256, - "path_collection": { - "total_count": 2, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - }, - { - "type": "folder", - "id": "1111", - "sequence_id": "2", - "etag": "2", - "name": "New Parent Folder" - } - ] - }, - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "modified_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "trashed_at": null, - "purged_at": null, - "content_created_at": "2018-04-24T13:07:52-07:00", - "content_modified_at": "2018-04-24T13:07:52-07:00", - "owned_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "shared_link": null, - "folder_upload_email": null, - "parent": { - "type": "folder", - "id": "12345", - "sequence_id": "2", - "etag": "2", - "name": "New Parent Folder" - }, - "item_status": "active", - "item_collection": { - "total_count": 2, - "entries": [ - { - "type": "file", - "id": "2222", - "file_version": { - "type": "file_version", - "id": "304832276745", - "sha1": "05e74cbb2f89a3ded0ab1d5c4f7f1a086c259ac3" - }, - "sequence_id": "1", - "etag": "1", - "sha1": "05e74cbb2f89a3ded0ab1d5c4f7f1a086c259ac3", - "name": "File.pdf" - }, - { - "type": "file", - "id": "3333", - "file_version": { - "type": "file_version", - "id": "304832277177", - "sha1": "aa810e72823f3c3dad2d1d4488966f6f1e0a8a9d" - }, - "sequence_id": "1", - "etag": "1", - "sha1": "aa810e72823f3c3dad2d1d4488966f6f1e0a8a9d", - "name": "Example.pdf" - } - ], - "offset": 0, - "limit": 100, - "order": [ - { - "by": "type", - "direction": "ASC" - }, - { - "by": "name", - "direction": "ASC" - } - ] - } -} diff --git a/src/test/Fixtures/BoxFolder/CreateClassificationOnFolder201.json b/src/test/Fixtures/BoxFolder/CreateClassificationOnFolder201.json deleted file mode 100644 index fccb254f5..000000000 --- a/src/test/Fixtures/BoxFolder/CreateClassificationOnFolder201.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "Box__Security__Classification__Key": "Public", - "$type": "securityClassification-6VMVochwUWo-2113c92e-6de3-4f48-bb3c-ef08817b5e63", - "$parent": "folder_12345", - "$id": "e1224150-9a7b-4760-96d9-fa845c140967", - "$version": 0, - "$typeVersion": 6, - "$template": "securityClassification-6VMVochwUWo", - "$scope": "enterprise_12345", - "$canEdit": true -} diff --git a/src/test/Fixtures/BoxFolder/CreateFolderLock200.json b/src/test/Fixtures/BoxFolder/CreateFolderLock200.json deleted file mode 100644 index d84d6c16c..000000000 --- a/src/test/Fixtures/BoxFolder/CreateFolderLock200.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "12345678", - "type": "folder_lock", - "created_at": "2020-09-14T23:12:53Z", - "created_by": { - "id": "11446498", - "type": "user" - }, - "folder": { - "id": "12345", - "type": "folder", - "etag": "1", - "name": "Contracts", - "sequence_id": "3" - }, - "lock_type": "freeze", - "locked_operations": { - "delete": true, - "move": true - } -} diff --git a/src/test/Fixtures/BoxFolder/CreateMetadataOnFolder201.json b/src/test/Fixtures/BoxFolder/CreateMetadataOnFolder201.json deleted file mode 100644 index 324b3d822..000000000 --- a/src/test/Fixtures/BoxFolder/CreateMetadataOnFolder201.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "foo": "bar", - "$type": "properties", - "$parent": "folder_12345", - "$id": "12345", - "$version": 0, - "$typeVersion": 4, - "$template": "properties", - "$scope": "global" -} diff --git a/src/test/Fixtures/BoxFolder/CreateNewFolder201.json b/src/test/Fixtures/BoxFolder/CreateNewFolder201.json deleted file mode 100644 index 67e3c78f8..000000000 --- a/src/test/Fixtures/BoxFolder/CreateNewFolder201.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "type": "folder", - "id": "0", - "sequence_id": "0", - "etag": "0", - "name": "Example Test Folder", - "created_at": "2018-04-24T12:50:03-07:00", - "modified_at": "2018-04-24T12:50:03-07:00", - "description": "", - "size": 0, - "path_collection": { - "total_count": 1, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - } - ] - }, - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "modified_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "trashed_at": null, - "purged_at": null, - "content_created_at": "2018-04-24T12:50:03-07:00", - "content_modified_at": "2018-04-24T12:50:03-07:00", - "owned_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "shared_link": null, - "folder_upload_email": null, - "parent": { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - }, - "item_status": "active", - "item_collection": { - "total_count": 0, - "entries": [], - "offset": 0, - "limit": 100, - "order": [ - { - "by": "type", - "direction": "ASC" - }, - { - "by": "name", - "direction": "ASC" - } - ] - } -} diff --git a/src/test/Fixtures/BoxFolder/CreateSharedLinkForFolder200.json b/src/test/Fixtures/BoxFolder/CreateSharedLinkForFolder200.json deleted file mode 100644 index 332ecb8bb..000000000 --- a/src/test/Fixtures/BoxFolder/CreateSharedLinkForFolder200.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "folder", - "id": "12345", - "etag": "1", - "shared_link": { - "url": "https://example.box.com/s/kg4dt71xs1u552ctef3pb023ben0bk7vs", - "download_url": null, - "vanity_url": null, - "effective_access": "open", - "effective_permission": "can_download", - "is_password_enabled": false, - "unshared_at": null, - "download_count": 0, - "preview_count": 0, - "access": "open", - "permissions": { - "can_preview": true, - "can_download": true - } - } -} diff --git a/src/test/Fixtures/BoxFolder/GetAllFolderCollaborations200.json b/src/test/Fixtures/BoxFolder/GetAllFolderCollaborations200.json deleted file mode 100644 index b5737bc52..000000000 --- a/src/test/Fixtures/BoxFolder/GetAllFolderCollaborations200.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "total_count": 2, - "entries": [ - { - "type": "collaboration", - "id": "12345", - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "created_at": "2016-09-19T11:16:59-07:00", - "modified_at": "2016-09-19T14:30:59-07:00", - "expires_at": null, - "status": "accepted", - "accessible_by": { - "type": "user", - "id": "2222", - "name": "Test User", - "login": "test@user.com" - }, - "role": "viewer", - "acknowledged_at": "2016-09-19T11:16:59-07:00", - "item": { - "type": "folder", - "id": "3333", - "sequence_id": "1", - "etag": "1", - "name": "Test Folder" - } - }, - { - "type": "collaboration", - "id": "124783", - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "created_at": "2016-09-19T11:16:59-07:00", - "modified_at": "2016-09-19T14:30:59-07:00", - "expires_at": null, - "status": "accepted", - "accessible_by": { - "type": "group", - "id": "2322", - "name": "Owners Group", - "group_type": "managed_group" - }, - "role": "viewer", - "acknowledged_at": "2016-09-19T11:16:59-07:00", - "item": { - "type": "folder", - "id": "4444", - "sequence_id": "1", - "etag": "1", - "name": "Test Folder 2" - } - } - ] -} diff --git a/src/test/Fixtures/BoxFolder/GetAllFolderCollaborations200WithFields.json b/src/test/Fixtures/BoxFolder/GetAllFolderCollaborations200WithFields.json deleted file mode 100644 index 37c013211..000000000 --- a/src/test/Fixtures/BoxFolder/GetAllFolderCollaborations200WithFields.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "total_count": 2, - "entries": [ - { - "type": "collaboration", - "id": "12345", - "item": { - "type": "folder", - "id": "3333", - "sequence_id": "1", - "etag": "1", - "name": "Test Folder" - }, - "can_view_path": false - }, - { - "type": "collaboration", - "id": "124783", - "item": { - "type": "folder", - "id": "3333", - "sequence_id": "1", - "etag": "1", - "name": "Test Folder" - }, - "can_view_path": true - } - ] -} diff --git a/src/test/Fixtures/BoxFolder/GetAllFolderItems200.json b/src/test/Fixtures/BoxFolder/GetAllFolderItems200.json deleted file mode 100644 index 8a0a4cd27..000000000 --- a/src/test/Fixtures/BoxFolder/GetAllFolderItems200.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "total_count": 2, - "entries": [ - { - "type": "file", - "id": "12345", - "file_version": { - "type": "file_version", - "id": "72464630113", - "sha1": "05e74cbb2f89a3ded0ab1d5c4f7f1a086c259ac3" - }, - "sequence_id": "10", - "etag": "10", - "sha1": "05e74cbb2f89a3ded0ab1d5c4f7f1a086c259ac3", - "name": "Example.pdf" - }, - { - "type": "file", - "id": "23423", - "file_version": { - "type": "file_version", - "id": "77379685333", - "sha1": "aa810e72823f3c3dad2d1d4488966f6f1e0a8a9d" - }, - "sequence_id": "5", - "etag": "5", - "sha1": "aa810e72823f3c3dad2d1d4488966f6f1e0a8a9d", - "name": "Example2.com" - } - ], - "offset": 0, - "limit": 100, - "order": [ - { - "by": "type", - "direction": "ASC" - }, - { - "by": "name", - "direction": "ASC" - } - ] -} diff --git a/src/test/Fixtures/BoxFolder/GetAllMetadataOnFolder200.json b/src/test/Fixtures/BoxFolder/GetAllMetadataOnFolder200.json deleted file mode 100644 index cb5ef099c..000000000 --- a/src/test/Fixtures/BoxFolder/GetAllMetadataOnFolder200.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "entries": [ - { - "foo": "bar", - "$type": "properties", - "$parent": "folder_12345", - "$id": "12345", - "$version": 0, - "$typeVersion": 4, - "$template": "properties", - "$scope": "global" - } - ], - "limit": 100 -} diff --git a/src/test/Fixtures/BoxFolder/GetAllRootFolderItems200.json b/src/test/Fixtures/BoxFolder/GetAllRootFolderItems200.json deleted file mode 100644 index bf5ed0b0f..000000000 --- a/src/test/Fixtures/BoxFolder/GetAllRootFolderItems200.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files", - "created_at": null, - "modified_at": null, - "description": "", - "size": 22392366495, - "path_collection": { - "total_count": 0, - "entries": [] - }, - "created_by": { - "type": "user", - "id": "", - "name": "", - "login": "" - }, - "modified_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "trashed_at": null, - "purged_at": null, - "content_created_at": null, - "content_modified_at": null, - "owned_by": { - "type": "user", - "id": "2222", - "name": "Test User", - "login": "test@user.com" - }, - "shared_link": null, - "folder_upload_email": null, - "parent": null, - "item_status": "active", - "item_collection": { - "total_count": 2, - "entries": [ - { - "type": "folder", - "id": "12345", - "sequence_id": "0", - "etag": "0", - "name": "Example Folder" - }, - { - "type": "folder", - "id": "43243", - "sequence_id": "1", - "etag": "1", - "name": "Example Folder 2" - } - ], - "offset": 0, - "limit": 100, - "order": [ - { - "by": "type", - "direction": "ASC" - }, - { - "by": "name", - "direction": "ASC" - } - ] - } -} diff --git a/src/test/Fixtures/BoxFolder/GetCollaborations200.json b/src/test/Fixtures/BoxFolder/GetCollaborations200.json deleted file mode 100644 index 114690248..000000000 --- a/src/test/Fixtures/BoxFolder/GetCollaborations200.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "total_count": 1, - "entries": [ - { - "type": "collaboration", - "id": "13237653007", - "created_by": { - "type": "user", - "id": "235699372", - "name": "Cary Cheng", - "login": "ccheng+demo@box.com" - }, - "created_at": "2018-04-11T13:33:14-07:00", - "modified_at": "2018-04-11T13:33:14-07:00", - "expires_at": null, - "status": "pending", - "accessible_by": null, - "role": "viewer", - "acknowledged_at": null, - "item": { - "type": "folder", - "id": "48577276286", - "sequence_id": "0", - "etag": "0", - "name": "Retention Test" - } - } - ] -} diff --git a/src/test/Fixtures/BoxFolder/GetFolderInfo200.json b/src/test/Fixtures/BoxFolder/GetFolderInfo200.json deleted file mode 100644 index 3bb8b5703..000000000 --- a/src/test/Fixtures/BoxFolder/GetFolderInfo200.json +++ /dev/null @@ -1,121 +0,0 @@ -{ - "type": "folder", - "id": "12345", - "sequence_id": "2", - "etag": "2", - "name": "Example Folder", - "created_at": "2016-06-06T11:02:33-07:00", - "modified_at": "2016-07-06T14:42:06-07:00", - "description": "", - "size": 75256, - "path_collection": { - "total_count": 1, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - } - ] - }, - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "modified_by": { - "type": "user", - "id": "2222", - "name": "Test User", - "login": "test@user.com" - }, - "trashed_at": null, - "purged_at": null, - "content_created_at": "2016-06-06T11:02:33-07:00", - "content_modified_at": "2016-07-06T14:42:06-07:00", - "is_externally_owned": true, - "owned_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "shared_link": null, - "folder_upload_email": null, - "parent": { - "type": "folder", - "id": "23143", - "sequence_id": "2", - "etag": "2", - "name": "All Files" - }, - "item_status": "active", - "item_collection": { - "total_count": 2, - "entries": [ - { - "type": "file", - "id": "2222", - "file_version": { - "type": "file_version", - "id": "72464630113", - "sha1": "05e74cbb2f89a3ded0ab1d5c4f7f1a086c259ac3" - }, - "sequence_id": "10", - "etag": "10", - "sha1": "05e74cbb2f89a3ded0ab1d5c4f7f1a086c259ac3", - "name": "Example.pdf" - }, - { - "type": "file", - "id": "2222", - "file_version": { - "type": "file_version", - "id": "77379685333", - "sha1": "aa810e72823f3c3dad2d1d4488966f6f1e0a8a9d" - }, - "sequence_id": "5", - "etag": "5", - "sha1": "aa810e72823f3c3dad2d1d4488966f6f1e0a8a9d", - "name": "Example2.pdf" - } - ], - "offset": 0, - "limit": 100, - "order": [ - { - "by": "type", - "direction": "ASC" - }, - { - "by": "name", - "direction": "ASC" - } - ] - }, - "allowed_invitee_roles": [ - "open" - ], - "allowed_shared_link_access_levels": [ - "open" - ], - "classification": { - "color": "#00FFFF", - "definition": "Content that should not be shared outside the company.", - "name": "Top Secret" - }, - "is_accessible_via_shared_link": true, - "permissions": { - "can_delete": true, - "can_download": true, - "can_invite_collaborator": true, - "can_rename": true, - "can_set_share_access": true, - "can_share": true, - "can_upload": true - }, - "can_non_owners_view_collaborators": true -} diff --git a/src/test/Fixtures/BoxFolder/GetFolderInfoCausesDeserializationException.json b/src/test/Fixtures/BoxFolder/GetFolderInfoCausesDeserializationException.json deleted file mode 100644 index f6ffebd94..000000000 --- a/src/test/Fixtures/BoxFolder/GetFolderInfoCausesDeserializationException.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "type": "folder", - "id": "12345", - "sequence_id": "2", - "etag": 2, - "name": "Example Folder", - "created_at": "2016-06-06T11:02:33-07:00", - "modified_at": "2016-07-06T14:42:06-07:00", - "description": "", - "size": 75256, - "path_collection": { - "total_count": 1, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - } - ] - }, - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "modified_by": { - "type": "user", - "id": "2222", - "name": "Test User", - "login": "test@user.com" - }, - "trashed_at": null, - "purged_at": null, - "content_created_at": "2016-06-06T11:02:33-07:00", - "content_modified_at": "2016-07-06T14:42:06-07:00", - "is_externally_owned": true, - "owned_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "shared_link": null, - "folder_upload_email": null, - "parent": { - "type": "folder", - "id": "23143", - "sequence_id": "2", - "etag": "2", - "name": "All Files" - }, - "item_status": "active", - "item_collection": { - "total_count": 2, - "entries": [ - { - "type": "file", - "id": "2222", - "file_version": { - "type": "file_version", - "id": "72464630113", - "sha1": "05e74cbb2f89a3ded0ab1d5c4f7f1a086c259ac3" - }, - "sequence_id": "10", - "etag": "10", - "sha1": "05e74cbb2f89a3ded0ab1d5c4f7f1a086c259ac3", - "name": "Example.pdf" - }, - { - "type": "file", - "id": "2222", - "file_version": { - "type": "file_version", - "id": "77379685333", - "sha1": "aa810e72823f3c3dad2d1d4488966f6f1e0a8a9d" - }, - "sequence_id": "5", - "etag": "5", - "sha1": "aa810e72823f3c3dad2d1d4488966f6f1e0a8a9d", - "name": "Example2.pdf" - } - ], - "offset": 0, - "limit": 100, - "order": [ - { - "by": "type", - "direction": "ASC" - }, - { - "by": "name", - "direction": "ASC" - } - ] - }, - "allowed_invitee_roles": [ - "open" - ], - "allowed_shared_link_access_levels": [ - "open" - ] -} diff --git a/src/test/Fixtures/BoxFolder/GetFolderInfoForCollaborationRestriction200.json b/src/test/Fixtures/BoxFolder/GetFolderInfoForCollaborationRestriction200.json deleted file mode 100644 index f65a97ed0..000000000 --- a/src/test/Fixtures/BoxFolder/GetFolderInfoForCollaborationRestriction200.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "type": "folder", - "id": "12345", - "sequence_id": "2", - "etag": "2", - "name": "Example Folder", - "created_at": "2016-06-06T11:02:33-07:00", - "modified_at": "2016-07-06T14:42:06-07:00", - "description": "", - "size": 75256, - "is_collaboration_restricted_to_enterprise": true, - "path_collection": { - "total_count": 1, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - } - ] - }, - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "modified_by": { - "type": "user", - "id": "2222", - "name": "Test User", - "login": "test@user.com" - }, - "trashed_at": null, - "purged_at": null, - "content_created_at": "2016-06-06T11:02:33-07:00", - "content_modified_at": "2016-07-06T14:42:06-07:00", - "owned_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "shared_link": null, - "folder_upload_email": null, - "parent": { - "type": "folder", - "id": "23143", - "sequence_id": "2", - "etag": "2", - "name": "All Files" - }, - "item_status": "active", - "item_collection": { - "total_count": 2, - "entries": [ - { - "type": "file", - "id": "2222", - "file_version": { - "type": "file_version", - "id": "72464630113", - "sha1": "05e74cbb2f89a3ded0ab1d5c4f7f1a086c259ac3" - }, - "sequence_id": "10", - "etag": "10", - "sha1": "05e74cbb2f89a3ded0ab1d5c4f7f1a086c259ac3", - "name": "Example.pdf" - }, - { - "type": "file", - "id": "2222", - "file_version": { - "type": "file_version", - "id": "77379685333", - "sha1": "aa810e72823f3c3dad2d1d4488966f6f1e0a8a9d" - }, - "sequence_id": "5", - "etag": "5", - "sha1": "aa810e72823f3c3dad2d1d4488966f6f1e0a8a9d", - "name": "Example2.pdf" - } - ], - "offset": 0, - "limit": 100, - "order": [ - { - "by": "type", - "direction": "ASC" - }, - { - "by": "name", - "direction": "ASC" - } - ] - } -} diff --git a/src/test/Fixtures/BoxFolder/GetFolderItemsWithSort200.json b/src/test/Fixtures/BoxFolder/GetFolderItemsWithSort200.json deleted file mode 100644 index 5232e4701..000000000 --- a/src/test/Fixtures/BoxFolder/GetFolderItemsWithSort200.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "total_count": 10, - "entries": [ - { - "type": "folder", - "id": "12345", - "sequence_id": "0", - "etag": "0", - "name": "Test" - }, - { - "type": "folder", - "id": "56781", - "sequence_id": "0", - "etag": "0", - "name": "Test 2" - }, - { - "type": "file", - "id": "11111", - "sha1": "fcd25218f7190f6d0a07d6ce03e933d3d8270851", - "file_version": { - "type": "file_version", - "id": "54323", - "sha1": "fcd25219f7190f6d0a06d6ce03e933d3d8270851" - }, - "sequence_id": "17", - "etag": "17", - "name": "Test File.jpg" - }, - { - "type": "file", - "id": "22222", - "file_version": { - "type": "file_version", - "id": "56781", - "sha1": "39512b7b8d16d13fdbaab6e4fc5e2d58c87d4c16" - }, - "sequence_id": "3", - "etag": "3", - "sha1": "39512b8b8d16d15fdbaab6e4fb5e2d58c87d4c16", - "name": "Test File 2.jpg" - }, - { - "type": "file", - "id": "3333", - "file_version": { - "type": "file_version", - "id": "12345", - "sha1": "8d0988e5ea5b330c529df6a8dcf3066815c6d218" - }, - "sequence_id": "1", - "etag": "1", - "sha1": "8d0988e6ea5b310c529df6a8dcf3066815c6d218", - "name": "Test File 3.jpg" - }, - { - "type": "file", - "id": "55555", - "file_version": { - "type": "file_version", - "id": "23424", - "sha1": "4066a921b78546f3e8146725d037a96236442764" - }, - "sequence_id": "3", - "etag": "3", - "sha1": "4066a925b78546f2e8146725d037a96236442764", - "name": "Test File 4.jpg" - }, - { - "type": "file", - "id": "77777", - "file_version": { - "type": "file_version", - "id": "32242", - "sha1": "a9225c82fdcm3e5701111976de462c22a76df7ee" - }, - "sequence_id": "1", - "etag": "1", - "sha1": "a9225c82fdce3g5701111976de462c22a76df7ee", - "name": "Test File 5.jpg" - }, - { - "type": "web_link", - "id": "77777", - "sequence_id": "1", - "etag": "1", - "name": "google.com", - "url": "https://test.com" - }, - { - "type": "web_link", - "id": "88888", - "sequence_id": "0", - "etag": "0", - "name": "test.com", - "url": "https://example.com" - } - ] -} diff --git a/src/test/Fixtures/BoxFolder/GetFolderLocks200.json b/src/test/Fixtures/BoxFolder/GetFolderLocks200.json deleted file mode 100644 index f3ff7caa6..000000000 --- a/src/test/Fixtures/BoxFolder/GetFolderLocks200.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "entries": [ - { - "folder": { - "id": "12345", - "etag": "1", - "type": "folder", - "sequence_id": "3", - "name": "Contracts" - }, - "id": "12345678", - "type": "folder_lock", - "created_by": { - "id": "11446498", - "type": "user" - }, - "created_at": "2020-09-14T23:12:53Z", - "locked_operations": { - "move": true, - "delete": true - }, - "lock_type": "freeze" - } - ], - "limit": 1000, - "next_marker": null -} diff --git a/src/test/Fixtures/BoxFolder/GetMetadataForFolder200.json b/src/test/Fixtures/BoxFolder/GetMetadataForFolder200.json deleted file mode 100644 index 324b3d822..000000000 --- a/src/test/Fixtures/BoxFolder/GetMetadataForFolder200.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "foo": "bar", - "$type": "properties", - "$parent": "folder_12345", - "$id": "12345", - "$version": 0, - "$typeVersion": 4, - "$template": "properties", - "$scope": "global" -} diff --git a/src/test/Fixtures/BoxFolder/MoveFolder200.json b/src/test/Fixtures/BoxFolder/MoveFolder200.json deleted file mode 100644 index 2e8dd2439..000000000 --- a/src/test/Fixtures/BoxFolder/MoveFolder200.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "type": "folder", - "id": "12345", - "sequence_id": "1", - "etag": "1", - "name": "Moved Folder", - "created_at": "2018-04-24T13:34:42-07:00", - "modified_at": "2018-04-24T13:34:42-07:00", - "description": "", - "size": 0, - "path_collection": { - "total_count": 2, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - }, - { - "type": "folder", - "id": "1111", - "sequence_id": "0", - "etag": "0", - "name": "New Parent Folder" - } - ] - }, - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "modified_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "trashed_at": null, - "purged_at": null, - "content_created_at": "2018-04-24T13:34:42-07:00", - "content_modified_at": "2018-04-24T13:34:42-07:00", - "owned_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "shared_link": null, - "folder_upload_email": null, - "parent": { - "type": "folder", - "id": "2222", - "sequence_id": "0", - "etag": "0", - "name": "New Parent Folder" - }, - "item_status": "active", - "item_collection": { - "total_count": 0, - "entries": [], - "offset": 0, - "limit": 100, - "order": [ - { - "by": "type", - "direction": "ASC" - }, - { - "by": "name", - "direction": "ASC" - } - ] - } -} diff --git a/src/test/Fixtures/BoxFolder/PutTransferFolder200.json b/src/test/Fixtures/BoxFolder/PutTransferFolder200.json deleted file mode 100644 index 67e3c78f8..000000000 --- a/src/test/Fixtures/BoxFolder/PutTransferFolder200.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "type": "folder", - "id": "0", - "sequence_id": "0", - "etag": "0", - "name": "Example Test Folder", - "created_at": "2018-04-24T12:50:03-07:00", - "modified_at": "2018-04-24T12:50:03-07:00", - "description": "", - "size": 0, - "path_collection": { - "total_count": 1, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - } - ] - }, - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "modified_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "trashed_at": null, - "purged_at": null, - "content_created_at": "2018-04-24T12:50:03-07:00", - "content_modified_at": "2018-04-24T12:50:03-07:00", - "owned_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "shared_link": null, - "folder_upload_email": null, - "parent": { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - }, - "item_status": "active", - "item_collection": { - "total_count": 0, - "entries": [], - "offset": 0, - "limit": 100, - "order": [ - { - "by": "type", - "direction": "ASC" - }, - { - "by": "name", - "direction": "ASC" - } - ] - } -} diff --git a/src/test/Fixtures/BoxFolder/UpdateClassificationOnFolder200.json b/src/test/Fixtures/BoxFolder/UpdateClassificationOnFolder200.json deleted file mode 100644 index f18a95c7e..000000000 --- a/src/test/Fixtures/BoxFolder/UpdateClassificationOnFolder200.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "Box__Security__Classification__Key": "Internal", - "$type": "securityClassification-6VMVochwUWo-2113c92e-6de3-4f48-bb3c-ef08817b5e63", - "$parent": "folder_12345", - "$id": "e1224150-9a7b-4760-96d9-fa845c140967", - "$version": 0, - "$typeVersion": 6, - "$template": "securityClassification-6VMVochwUWo", - "$scope": "enterprise_12345", - "$canEdit": true -} diff --git a/src/test/Fixtures/BoxFolder/UpdateFolderInfo200.json b/src/test/Fixtures/BoxFolder/UpdateFolderInfo200.json deleted file mode 100644 index f9da9d89b..000000000 --- a/src/test/Fixtures/BoxFolder/UpdateFolderInfo200.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "type": "folder", - "id": "12345", - "sequence_id": "3", - "etag": "3", - "name": "New Folder Name", - "created_at": "2016-06-06T11:02:33-07:00", - "modified_at": "2018-04-24T12:28:55-07:00", - "description": "Folder Description", - "size": 75256, - "path_collection": { - "total_count": 1, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - } - ] - }, - "created_by": { - "type": "user", - "id": "1111", - "name": "Example User", - "login": "example@user.com" - }, - "modified_by": { - "type": "user", - "id": "2222", - "name": "Test User", - "login": "test@user.com" - }, - "trashed_at": null, - "purged_at": null, - "content_created_at": "2016-06-06T11:02:33-07:00", - "content_modified_at": "2018-04-24T12:28:55-07:00", - "owned_by": { - "type": "user", - "id": "1111", - "name": "Example User", - "login": "example@user.com" - }, - "shared_link": null, - "folder_upload_email": null, - "parent": null, - "item_status": "active", - "item_collection": { - "total_count": 2, - "entries": [ - { - "type": "file", - "id": "12345", - "file_version": { - "type": "file_version", - "id": "72464630113", - "sha1": "05e74cbb2f89a3ded0ab1d5c4f7f1a086c259ac3" - }, - "sequence_id": "10", - "etag": "10", - "sha1": "05e74cbb2f89a3ded0ab1d5c4f7f1a086c259ac3", - "name": "File.pdf" - }, - { - "type": "file", - "id": "34234", - "file_version": { - "type": "file_version", - "id": "77379685333", - "sha1": "aa810e72823f3c3dad2d1d4488966f6f1e0a8a9d" - }, - "sequence_id": "5", - "etag": "5", - "sha1": "aa810e72823f3c3dad2d1d4488966f6f1e0a8a9d", - "name": "Example.pdf" - } - ], - "offset": 0, - "limit": 100, - "order": [ - { - "by": "type", - "direction": "ASC" - }, - { - "by": "name", - "direction": "ASC" - } - ] - } -} diff --git a/src/test/Fixtures/BoxFolder/UpdateMetadataOnFolder200.json b/src/test/Fixtures/BoxFolder/UpdateMetadataOnFolder200.json deleted file mode 100644 index e76171412..000000000 --- a/src/test/Fixtures/BoxFolder/UpdateMetadataOnFolder200.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "test1": "text", - "test2": [ - "first", - "second", - "third" - ], - "test3": 2, - "test4": 2.33333333333333344E17, - "$type": "account-e68798f0-347f-4882-a1ae-f65b032780ac", - "$parent": "folder_12345", - "$id": "0db91053-c355-4fc7-b69c-9d511974bbc4", - "$version": 1, - "$typeVersion": 1, - "$template": "testtemplate", - "$scope": "enterprise_11111", - "$canEdit": true -} diff --git a/src/test/Fixtures/BoxGroup/CreateAGroup201.json b/src/test/Fixtures/BoxGroup/CreateAGroup201.json deleted file mode 100644 index e79d9d8f7..000000000 --- a/src/test/Fixtures/BoxGroup/CreateAGroup201.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "group", - "id": "12345", - "name": "Test Group", - "group_type": "managed_group", - "created_at": "2018-04-20T12:51:49-07:00", - "modified_at": "2018-04-20T12:51:49-07:00" -} diff --git a/src/test/Fixtures/BoxGroup/CreateGroupMembership201.json b/src/test/Fixtures/BoxGroup/CreateGroupMembership201.json deleted file mode 100644 index 700b57e94..000000000 --- a/src/test/Fixtures/BoxGroup/CreateGroupMembership201.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "group_membership", - "id": "12345", - "user": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "group": { - "type": "group", - "id": "2222", - "name": "Example Group", - "group_type": "managed_group" - }, - "role": "member", - "configurable_permissions": null, - "created_at": "2018-04-20T15:26:10-07:00", - "modified_at": "2018-04-20T15:26:10-07:00" -} diff --git a/src/test/Fixtures/BoxGroup/GetAGroupsCollaborations1stPage200.json b/src/test/Fixtures/BoxGroup/GetAGroupsCollaborations1stPage200.json deleted file mode 100644 index 0ef694bda..000000000 --- a/src/test/Fixtures/BoxGroup/GetAGroupsCollaborations1stPage200.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "total_count": 200, - "entries": [ - { - "type": "collaboration", - "id": "12345", - "created_by": null, - "created_at": "2018-04-20T14:57:25-07:00", - "modified_at": "2018-04-20T14:57:25-07:00", - "expires_at": null, - "status": "accepted", - "accessible_by": { - "type": "group", - "id": "1111", - "name": "New Group Name", - "group_type": "managed_group" - }, - "role": "editor", - "acknowledged_at": "2018-04-20T14:57:25-07:00", - "item": { - "type": "folder", - "id": "2222", - "sequence_id": "2", - "etag": "2", - "name": "Ball Valve Diagram" - } - } - ], - "offset": 0, - "limit": 100 -} diff --git a/src/test/Fixtures/BoxGroup/GetAGroupsCollaborations2ndPage200.json b/src/test/Fixtures/BoxGroup/GetAGroupsCollaborations2ndPage200.json deleted file mode 100644 index 5b5e6e24a..000000000 --- a/src/test/Fixtures/BoxGroup/GetAGroupsCollaborations2ndPage200.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "total_count": 200, - "entries": [ - { - "type": "collaboration", - "id": "23647", - "created_by": null, - "created_at": "2018-04-20T14:57:25-07:00", - "modified_at": "2018-04-20T14:57:25-07:00", - "expires_at": null, - "status": "accepted", - "accessible_by": { - "type": "group", - "id": "1111", - "name": "New Group Name", - "group_type": "managed_group" - }, - "role": "editor", - "acknowledged_at": "2018-04-20T14:57:25-07:00", - "item": { - "type": "file", - "id": "12342", - "sequence_id": "2", - "etag": "2", - "name": "Ball Valve Diagram" - } - } - ], - "offset": 1, - "limit": 100 -} diff --git a/src/test/Fixtures/BoxGroup/GetAGroupsInfo200.json b/src/test/Fixtures/BoxGroup/GetAGroupsInfo200.json deleted file mode 100644 index e79d9d8f7..000000000 --- a/src/test/Fixtures/BoxGroup/GetAGroupsInfo200.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "group", - "id": "12345", - "name": "Test Group", - "group_type": "managed_group", - "created_at": "2018-04-20T12:51:49-07:00", - "modified_at": "2018-04-20T12:51:49-07:00" -} diff --git a/src/test/Fixtures/BoxGroup/GetAllGroups200.json b/src/test/Fixtures/BoxGroup/GetAllGroups200.json deleted file mode 100644 index bc6e46184..000000000 --- a/src/test/Fixtures/BoxGroup/GetAllGroups200.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "total_count": 2, - "entries": [ - { - "type": "group", - "id": "12345", - "name": "Test Group 1", - "group_type": "managed_group" - }, - { - "type": "group", - "id": "53453", - "name": "Test Group 2", - "group_type": "managed_group" - } - ], - "limit": 100, - "offset": 0 -} diff --git a/src/test/Fixtures/BoxGroup/GetGroupMembershipForAUser200.json b/src/test/Fixtures/BoxGroup/GetGroupMembershipForAUser200.json deleted file mode 100644 index f27747d47..000000000 --- a/src/test/Fixtures/BoxGroup/GetGroupMembershipForAUser200.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "total_count": 2, - "entries": [ - { - "type": "group_membership", - "id": "12345", - "user": { - "type": "user", - "id": "1111", - "name": "Example User", - "login": "example@user.com" - }, - "group": { - "type": "group", - "id": "1111", - "name": "Test Group 1", - "group_type": "managed_group" - }, - "role": "member" - }, - { - "type": "group_membership", - "id": "32423", - "user": { - "type": "user", - "id": "1111", - "name": "Example User", - "login": "example@user.com" - }, - "group": { - "type": "group", - "id": "2222", - "name": "Test Group 2", - "group_type": "managed_group" - }, - "role": "admin" - } - ], - "limit": 100, - "offset": 0 -} diff --git a/src/test/Fixtures/BoxGroup/GetGroupsByName200.json b/src/test/Fixtures/BoxGroup/GetGroupsByName200.json deleted file mode 100644 index 893b8f61d..000000000 --- a/src/test/Fixtures/BoxGroup/GetGroupsByName200.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "total_count": 1, - "entries": [ - { - "type": "group", - "id": "12345", - "name": "[getCollaborationsSucceedsAndHandlesResponseCorrectly] Test Group" - } - ], - "limit": 100, - "offset": 0 -} diff --git a/src/test/Fixtures/BoxGroup/GetGroupsByNameWithFieldsOption200.json b/src/test/Fixtures/BoxGroup/GetGroupsByNameWithFieldsOption200.json deleted file mode 100644 index ea40f6952..000000000 --- a/src/test/Fixtures/BoxGroup/GetGroupsByNameWithFieldsOption200.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "total_count": 1, - "entries": [ - { - "type": "group", - "id": "12345", - "description": "This is Test Group" - } - ], - "limit": 100, - "offset": 0 -} diff --git a/src/test/Fixtures/BoxGroup/GetMembershipForAGroup200.json b/src/test/Fixtures/BoxGroup/GetMembershipForAGroup200.json deleted file mode 100644 index 23d911ae9..000000000 --- a/src/test/Fixtures/BoxGroup/GetMembershipForAGroup200.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "offset": 0, - "limit": 100, - "total_count": 1, - "entries": [ - { - "type": "group_membership", - "id": "12345", - "user": { - "type": "user", - "id": "2222", - "name": "Example User", - "login": "example@user.com" - }, - "group": { - "type": "group", - "id": "1111", - "name": "Example Group", - "group_type": "managed_group" - }, - "role": "admin" - } - ] -} diff --git a/src/test/Fixtures/BoxGroup/UpdateAGroupsInfo200.json b/src/test/Fixtures/BoxGroup/UpdateAGroupsInfo200.json deleted file mode 100644 index 7e589ed4a..000000000 --- a/src/test/Fixtures/BoxGroup/UpdateAGroupsInfo200.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "group", - "id": "12345", - "name": "New Group Name", - "group_type": "managed_group", - "created_at": "2018-04-20T12:51:49-07:00", - "modified_at": "2018-04-20T13:56:06-07:00" -} diff --git a/src/test/Fixtures/BoxGroup/UpdateGroupMembership200.json b/src/test/Fixtures/BoxGroup/UpdateGroupMembership200.json deleted file mode 100644 index 3cd1be492..000000000 --- a/src/test/Fixtures/BoxGroup/UpdateGroupMembership200.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "group_membership", - "id": "12345", - "user": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "group": { - "type": "group", - "id": "2222", - "name": "Example Group", - "group_type": "managed_group" - }, - "role": "admin", - "configurable_permissions": { - "can_create_accounts": true, - "can_edit_accounts": true, - "can_instant_login": true, - "can_run_reports": true - }, - "created_at": "2018-04-20T15:26:10-07:00", - "modified_at": "2018-04-20T15:40:11-07:00" -} diff --git a/src/test/Fixtures/BoxItem/GetSharedItemFile200.json b/src/test/Fixtures/BoxItem/GetSharedItemFile200.json deleted file mode 100644 index 2164306af..000000000 --- a/src/test/Fixtures/BoxItem/GetSharedItemFile200.json +++ /dev/null @@ -1,185 +0,0 @@ -{ - "id": "12345", - "type": "file", - "allowed_invitee_roles": [ - "editor" - ], - "classification": { - "color": "#FF0000", - "definition": "Content that should not be shared outside the company.", - "name": "Top Secret" - }, - "comment_count": 10, - "content_created_at": "2012-12-12T10:53:43-08:00", - "content_modified_at": "2012-12-12T10:53:43-08:00", - "created_at": "2012-12-12T10:53:43-08:00", - "created_by": { - "id": "11446498", - "type": "user", - "login": "ceo@example.com", - "name": "Aaron Levie" - }, - "description": "Contract for Q1 renewal", - "disposition_at": "2012-12-12T10:53:43-08:00", - "etag": "1", - "expires_at": "2012-12-12T10:53:43-08:00", - "expiring_embed_link": { - "access_token": "c3FIOG9vSGV4VHo4QzAyg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ", - "expires_in": 3600, - "restricted_to": [ - { - "scope": "item_download", - "object": { - "id": "12345", - "etag": "1", - "type": "folder", - "sequence_id": "3", - "name": "Contracts" - } - } - ], - "token_type": "bearer", - "url": "https://cloud.app.box.com/preview/expiring_embed/..." - }, - "extension": "pdf", - "file_version": { - "id": "12345", - "type": "file_version", - "sha1": "134b65991ed521fcfe4724b7d814ab8ded5185dc" - }, - "has_collaborations": true, - "is_accessible_via_shared_link": true, - "is_externally_owned": true, - "is_package": true, - "item_status": "active", - "lock": { - "id": "11446498", - "type": "lock", - "app_type": "office_wopiplus", - "created_at": "2012-12-12T10:53:43-08:00", - "created_by": { - "id": "11446498", - "type": "user", - "login": "ceo@example.com", - "name": "Aaron Levie" - }, - "expired_at": "2012-12-12T10:53:43-08:00", - "is_download_prevented": true - }, - "metadata": { - "enterprise_27335": { - "marketingCollateral": { - "$canEdit": true, - "$id": "01234500-12f1-1234-aa12-b1d234cb567e", - "$parent": "folder_59449484661", - "$scope": "enterprise_27335", - "$template": "marketingCollateral", - "$type": "properties-6bcba49f-ca6d-4d2a-a758-57fe6edf44d0", - "$typeVersion": 2, - "$version": 1 - } - } - }, - "modified_at": "2012-12-12T10:53:43-08:00", - "modified_by": { - "id": "11446498", - "type": "user", - "login": "ceo@example.com", - "name": "Aaron Levie" - }, - "name": "Contract.pdf", - "owned_by": { - "id": "11446498", - "type": "user", - "login": "ceo@example.com", - "name": "Aaron Levie" - }, - "parent": { - "id": "12345", - "type": "folder", - "etag": "1", - "name": "Contracts", - "sequence_id": "3" - }, - "path_collection": { - "entries": [ - { - "id": "12345", - "etag": "1", - "type": "folder", - "sequence_id": "3", - "name": "Contracts" - } - ], - "total_count": 1 - }, - "permissions": { - "can_annotate": true, - "can_comment": true, - "can_delete": true, - "can_download": true, - "can_invite_collaborator": true, - "can_preview": true, - "can_rename": true, - "can_set_share_access": true, - "can_share": true, - "can_upload": true, - "can_view_annotations_all": true, - "can_view_annotations_self": true - }, - "purged_at": "2012-12-12T10:53:43-08:00", - "representations": { - "entries": [ - { - "content": { - "url_template": "https://dl.boxcloud.com/api/2.0/internal_files/123/versions/345/representations/png_paged_2048x2048/content/{+asset_path}?watermark_content=4567" - }, - "info": { - "url": "https://api.box.com/2.0/internal_files/123/versions/345/representations/png_paged_2048x2048" - }, - "properties": { - "dimensions": "2048x2048", - "paged": true, - "thumb": true - }, - "representation": "png", - "status": { - "state": "success" - } - } - ] - }, - "sequence_id": "3", - "sha1": "85136C79CBF9FE36BB9D05D0639C70C265C18D37", - "shared_link": { - "access": "open", - "download_count": 3, - "download_url": "https://www.box.com/shared/static/rh935iit6ewrmw0unyul.jpeg", - "effective_access": "company", - "effective_permission": "can_download", - "is_password_enabled": true, - "permissions": { - "can_download": true, - "can_edit": false, - "can_preview": true - }, - "preview_count": 3, - "unshared_at": "2018-04-13T13:53:23-07:00", - "url": "https://www.box.com/s/vspke7y05sb214wjokpk", - "vanity_name": "my_url", - "vanity_url": "https://acme.app.box.com/v/my_url/" - }, - "shared_link_permission_options": [ - "can_preview" - ], - "size": 629644, - "tags": [ - "approved" - ], - "trashed_at": "2012-12-12T10:53:43-08:00", - "uploader_display_name": "Ellis Wiggins", - "version_number": "1", - "watermark_info": { - "is_watermarked": true - } -} \ No newline at end of file diff --git a/src/test/Fixtures/BoxLegalHold/GetFileVersionLegalHolds200.json b/src/test/Fixtures/BoxLegalHold/GetFileVersionLegalHolds200.json deleted file mode 100644 index 48a9ac4d6..000000000 --- a/src/test/Fixtures/BoxLegalHold/GetFileVersionLegalHolds200.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "entries": [ - { - "type": "legal_hold", - "id": "99999" - } - ], - "limit": 100, - "order": [ - { - "by": "retention_policy_set_id, file_version_id", - "direction": "ASC" - } - ] -} \ No newline at end of file diff --git a/src/test/Fixtures/BoxLegalHold/GetFileVersionLegalHoldsID200.json b/src/test/Fixtures/BoxLegalHold/GetFileVersionLegalHoldsID200.json deleted file mode 100644 index e91cf715e..000000000 --- a/src/test/Fixtures/BoxLegalHold/GetFileVersionLegalHoldsID200.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "legal_hold", - "id": "99999", - "file_version": { - "type": "file_version", - "id": "77777" - }, - "file": { - "type": "file", - "id": "88888", - "etag": "0" - }, - "legal_hold_policy_assignments": [ - { - "type": "legal_hold_policy_assignment", - "id": "12345" - } - ], - "deleted_at": null -} \ No newline at end of file diff --git a/src/test/Fixtures/BoxLegalHold/GetLegalHoldPolicies200.json b/src/test/Fixtures/BoxLegalHold/GetLegalHoldPolicies200.json deleted file mode 100644 index 491316761..000000000 --- a/src/test/Fixtures/BoxLegalHold/GetLegalHoldPolicies200.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "entries": [ - { - "type": "legal_hold_policy", - "id": "22222", - "policy_name": "IRS Audit" - }, - { - "type": "legal_hold_policy", - "id": "11111", - "policy_name": "Trial Documents" - } - ], - "limit": 100, - "order": [ - { - "by": "policy_name", - "direction": "ASC" - } - ] -} \ No newline at end of file diff --git a/src/test/Fixtures/BoxLegalHold/GetLegalHoldPoliciesID200.json b/src/test/Fixtures/BoxLegalHold/GetLegalHoldPoliciesID200.json deleted file mode 100644 index 4c9d76aaa..000000000 --- a/src/test/Fixtures/BoxLegalHold/GetLegalHoldPoliciesID200.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "legal_hold_policy", - "id": "11111", - "policy_name": "Trial Documents", - "description": "", - "status": "active", - "assignment_counts": { - "user": 0, - "folder": 0, - "file": 0, - "file_version": 0 - }, - "is_ongoing": true, - "created_by": { - "type": "user", - "id": "33333", - "name": "Test User", - "login": "testuser@example.com" - }, - "created_at": "2018-04-25T16:37:05-07:00", - "modified_at": "2018-04-25T16:37:05-07:00", - "deleted_at": null, - "filter_started_at": null, - "filter_ended_at": null -} \ No newline at end of file diff --git a/src/test/Fixtures/BoxLegalHold/GetLegalHoldPolicyAssignmentsID200.json b/src/test/Fixtures/BoxLegalHold/GetLegalHoldPolicyAssignmentsID200.json deleted file mode 100644 index e28423a20..000000000 --- a/src/test/Fixtures/BoxLegalHold/GetLegalHoldPolicyAssignmentsID200.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "type": "legal_hold_policy_assignment", - "id": "12345", - "legal_hold_policy": { - "type": "legal_hold_policy", - "id": "11111", - "policy_name": "Trial Documents" - }, - "assigned_to": { - "type": "folder", - "id": "55555" - }, - "assigned_by": { - "type": "user", - "id": "33333", - "name": "Test User", - "login": "testuser@example.com" - }, - "assigned_at": "2018-04-25T17:07:56-07:00", - "deleted_at": null, - "modified_at": "2018-04-25T17:07:57-07:00" -} \ No newline at end of file diff --git a/src/test/Fixtures/BoxLegalHold/GetLegalHoldPolicyAssignmentsPolicyID200.json b/src/test/Fixtures/BoxLegalHold/GetLegalHoldPolicyAssignmentsPolicyID200.json deleted file mode 100644 index b0e9c7d37..000000000 --- a/src/test/Fixtures/BoxLegalHold/GetLegalHoldPolicyAssignmentsPolicyID200.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "entries": [ - { - "type": "legal_hold_policy_assignment", - "id": "12345" - } - ], - "limit": 100, - "order": [ - { - "by": "retention_policy_id, retention_policy_object_id", - "direction": "ASC" - } - ] -} \ No newline at end of file diff --git a/src/test/Fixtures/BoxLegalHold/PostLegalHoldPolicies201.json b/src/test/Fixtures/BoxLegalHold/PostLegalHoldPolicies201.json deleted file mode 100644 index 228414a0d..000000000 --- a/src/test/Fixtures/BoxLegalHold/PostLegalHoldPolicies201.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "legal_hold_policy", - "id": "11111", - "policy_name": "Trial Documents", - "description": "", - "status": "active", - "assignment_counts": { - "user": 0, - "folder": 0, - "file": 0, - "file_version": 0 - }, - "created_by": { - "type": "user", - "id": "33333", - "name": "Test User", - "login": "testuser@example.com" - }, - "created_at": "2018-04-25T16:37:05-07:00", - "modified_at": "2018-04-25T16:37:05-07:00", - "deleted_at": null, - "filter_started_at": "2018-04-25T16:37:05-07:00", - "filter_ended_at": "2020-04-25T16:37:05-07:00" -} diff --git a/src/test/Fixtures/BoxLegalHold/PostLegalHoldPolicyAssignments201.json b/src/test/Fixtures/BoxLegalHold/PostLegalHoldPolicyAssignments201.json deleted file mode 100644 index c67da85d2..000000000 --- a/src/test/Fixtures/BoxLegalHold/PostLegalHoldPolicyAssignments201.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "legal_hold_policy_assignment", - "id": "12345", - "legal_hold_policy": { - "type": "legal_hold_policy", - "id": "11111", - "policy_name": "Trial Documents" - }, - "assigned_to": { - "type": "folder", - "id": "55555" - }, - "assigned_by": { - "type": "user", - "id": "33333", - "name": "Test User", - "login": "testuser@example.com" - }, - "is_ongoing": true, - "assigned_at": "2018-04-25T17:07:56-07:00", - "deleted_at": null, - "modified_at": "2018-04-25T17:07:57-07:00" -} diff --git a/src/test/Fixtures/BoxLegalHold/PostOngoingLegalHoldPolicies201.json b/src/test/Fixtures/BoxLegalHold/PostOngoingLegalHoldPolicies201.json deleted file mode 100644 index 5d429914a..000000000 --- a/src/test/Fixtures/BoxLegalHold/PostOngoingLegalHoldPolicies201.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "legal_hold_policy", - "id": "11111", - "policy_name": "Trial Documents", - "description": "This is a description.", - "status": "active", - "assignment_counts": { - "user": 0, - "folder": 0, - "file": 0, - "file_version": 0 - }, - "is_ongoing": true, - "created_by": { - "type": "user", - "id": "33333", - "name": "Test User", - "login": "testuser@example.com" - }, - "created_at": "2018-04-25T16:37:05-07:00", - "modified_at": "2018-04-25T16:37:05-07:00", - "deleted_at": null, - "filter_started_at": null, - "filter_ended_at": null -} diff --git a/src/test/Fixtures/BoxLegalHold/PostOngoingWithStartDateLegalHoldPolicies201.json b/src/test/Fixtures/BoxLegalHold/PostOngoingWithStartDateLegalHoldPolicies201.json deleted file mode 100644 index 5b26e7ade..000000000 --- a/src/test/Fixtures/BoxLegalHold/PostOngoingWithStartDateLegalHoldPolicies201.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "legal_hold_policy", - "id": "11111", - "policy_name": "Trial Documents", - "description": "This is a description.", - "status": "active", - "assignment_counts": { - "user": 0, - "folder": 0, - "file": 0, - "file_version": 0 - }, - "is_ongoing": true, - "created_by": { - "type": "user", - "id": "33333", - "name": "Test User", - "login": "testuser@example.com" - }, - "created_at": "2018-04-25T16:37:05-07:00", - "modified_at": "2018-04-25T16:37:05-07:00", - "deleted_at": null, - "filter_started_at": "2018-04-25T16:37:05-07:00", - "filter_ended_at": null -} diff --git a/src/test/Fixtures/BoxLegalHold/PutLegalHoldPoliciesID200.json b/src/test/Fixtures/BoxLegalHold/PutLegalHoldPoliciesID200.json deleted file mode 100644 index 4faebeace..000000000 --- a/src/test/Fixtures/BoxLegalHold/PutLegalHoldPoliciesID200.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "legal_hold_policy", - "id": "11111", - "policy_name": "Trial Documents", - "description": "Documents related to our ongoing litigation", - "status": "active", - "assignment_counts": { - "user": 0, - "folder": 0, - "file": 0, - "file_version": 0 - }, - "is_ongoing": true, - "created_by": { - "type": "user", - "id": "33333", - "name": "Test User", - "login": "testuser@example.com" - }, - "created_at": "2018-04-25T16:37:05-07:00", - "modified_at": "2018-04-25T16:45:55-07:00", - "deleted_at": null, - "filter_started_at": null, - "filter_ended_at": null -} \ No newline at end of file diff --git a/src/test/Fixtures/BoxMetadataCascadePolicy/CreateMetadataCascadePolicies201.json b/src/test/Fixtures/BoxMetadataCascadePolicy/CreateMetadataCascadePolicies201.json deleted file mode 100644 index bac583fcc..000000000 --- a/src/test/Fixtures/BoxMetadataCascadePolicy/CreateMetadataCascadePolicies201.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "84113349-794d-445c-b93c-d8481b223434", - "type": "metadata_cascade_policy", - "owner_enterprise": { - "type": "enterprise", - "id": "11111" - }, - "parent": { - "type": "folder", - "id": "22222" - }, - "scope": "enterprise_11111", - "templateKey": "testTemplate" -} diff --git a/src/test/Fixtures/BoxMetadataCascadePolicy/GetAllMetadataCascadePolicies200.json b/src/test/Fixtures/BoxMetadataCascadePolicy/GetAllMetadataCascadePolicies200.json deleted file mode 100644 index 47f0dbfe6..000000000 --- a/src/test/Fixtures/BoxMetadataCascadePolicy/GetAllMetadataCascadePolicies200.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "limit": 100, - "entries": [ - { - "id": "84113349-794d-445c-b93c-d8481b223434", - "type": "metadata_cascade_policy", - "owner_enterprise": { - "type": "enterprise", - "id": "11111" - }, - "parent": { - "type": "folder", - "id": "22222" - }, - "scope": "enterprise_11111", - "templateKey": "testTemplate" - } - ], - "next_marker": null, - "prev_marker": null -} diff --git a/src/test/Fixtures/BoxMetadataCascadePolicy/GetMetadataCascadePoliciesID200.json b/src/test/Fixtures/BoxMetadataCascadePolicy/GetMetadataCascadePoliciesID200.json deleted file mode 100644 index bac583fcc..000000000 --- a/src/test/Fixtures/BoxMetadataCascadePolicy/GetMetadataCascadePoliciesID200.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "84113349-794d-445c-b93c-d8481b223434", - "type": "metadata_cascade_policy", - "owner_enterprise": { - "type": "enterprise", - "id": "11111" - }, - "parent": { - "type": "folder", - "id": "22222" - }, - "scope": "enterprise_11111", - "templateKey": "testTemplate" -} diff --git a/src/test/Fixtures/BoxMetadataTemplate/CreateMetadataTemplate200.json b/src/test/Fixtures/BoxMetadataTemplate/CreateMetadataTemplate200.json deleted file mode 100644 index be5b3dcfa..000000000 --- a/src/test/Fixtures/BoxMetadataTemplate/CreateMetadataTemplate200.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "id": "f7a9891f", - "templateKey": "documentFlow03", - "scope": "enterprise", - "displayName": "Document Flow 03", - "hidden": false, - "fields": [ - { - "id": "f7a9894f", - "type": "enum", - "key": "fy", - "displayName": "FY", - "options": [ - { - "id": "f7a9895f", - "key": "FY16" - }, - { - "id": "f7a9896f", - "key": "FY17" - } - ] - } - ] -} diff --git a/src/test/Fixtures/BoxMetadataTemplate/GetAMetadataTemplateInfo200.json b/src/test/Fixtures/BoxMetadataTemplate/GetAMetadataTemplateInfo200.json deleted file mode 100644 index 480333379..000000000 --- a/src/test/Fixtures/BoxMetadataTemplate/GetAMetadataTemplateInfo200.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id": "12345", - "type": "metadata_template", - "templateKey": "Test Template Key", - "scope": "global", - "displayName": "Test Template", - "hidden": false, - "fields": [ - { - "id": "35252", - "type": "string", - "key": "keywords", - "displayName": "Keywords", - "hidden": false - } - ] -} diff --git a/src/test/Fixtures/BoxMetadataTemplate/GetAllEnterpriseTemplates200.json b/src/test/Fixtures/BoxMetadataTemplate/GetAllEnterpriseTemplates200.json deleted file mode 100644 index 982b8eaec..000000000 --- a/src/test/Fixtures/BoxMetadataTemplate/GetAllEnterpriseTemplates200.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "limit": 100, - "entries": [ - { - "id": "12345", - "type": "metadata_template", - "templateKey": "Test Template", - "scope": "global", - "displayName": "Template", - "hidden": false, - "fields": [ - { - "id": "1111", - "type": "string", - "key": "keywords", - "displayName": "Keywords", - "hidden": false - } - ] - }, - { - "id": "23131", - "type": "metadata_template", - "templateKey": "Test Template 2", - "scope": "global", - "displayName": "Template 2", - "hidden": false, - "fields": [ - { - "id": "2222", - "type": "string", - "key": "timelines", - "displayName": "Timelines", - "hidden": false - } - ] - } - ], - "next_marker": null, - "prev_marker": null -} diff --git a/src/test/Fixtures/BoxMetadataTemplate/GetMetadataTemplateOptionInfo200.json b/src/test/Fixtures/BoxMetadataTemplate/GetMetadataTemplateOptionInfo200.json deleted file mode 100644 index 830fb129b..000000000 --- a/src/test/Fixtures/BoxMetadataTemplate/GetMetadataTemplateOptionInfo200.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "id": "f7a9891f", - "templateKey": "productInfo", - "scope": "enterprise_12345", - "displayName": "Product Info", - "hidden": false, - "fields": [ - { - "id": "f7a9892f", - "type": "float", - "key": "skuNumber", - "displayName": "SKU Number", - "hidden": false - }, - { - "id": "f7a9893f", - "type": "string", - "key": "description", - "displayName": "Description", - "hidden": false - }, - { - "id": "f7a9894f", - "type": "enum", - "key": "department", - "displayName": "Department", - "hidden": false, - "options": [ - { - "id": "f7a9895f", - "key": "Beauty" - }, - { - "id": "f7a9896f", - "key": "Shoes" - } - ] - }, - { - "id": "f7a9897f", - "type": "date", - "key": "displayDate", - "displayName": "Display Date", - "hidden": false - } - ] -} diff --git a/src/test/Fixtures/BoxMetadataTemplate/MetadataQuery1stRequest.json b/src/test/Fixtures/BoxMetadataTemplate/MetadataQuery1stRequest.json deleted file mode 100644 index 4faeda85b..000000000 --- a/src/test/Fixtures/BoxMetadataTemplate/MetadataQuery1stRequest.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "from": "enterprise_67890.relayWorkflowInformation", - "query": "templateName >= :arg", - "query_params": { - "arg": "Templ Name" - }, - "ancestor_folder_id": "0", - "limit": 2 -} diff --git a/src/test/Fixtures/BoxMetadataTemplate/MetadataQuery1stResponse200.json b/src/test/Fixtures/BoxMetadataTemplate/MetadataQuery1stResponse200.json deleted file mode 100644 index d2db17d13..000000000 --- a/src/test/Fixtures/BoxMetadataTemplate/MetadataQuery1stResponse200.json +++ /dev/null @@ -1,197 +0,0 @@ -{ - "entries": [ - { - "item": { - "type": "file", - "id": "123450", - "file_version": { - "type": "file_version", - "id": "234560", - "sha1": "qwertyuiop1234567890qwertyuiop0" - }, - "sequence_id": "0", - "etag": "0", - "sha1": "1234567890qwertyuiopasdfghjkl0", - "name": "1.jpg", - "description": "", - "size": 1036724, - "path_collection": { - "total_count": 2, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - }, - { - "type": "folder", - "id": "34567", - "sequence_id": "0", - "etag": "0", - "name": "a" - } - ] - }, - "created_at": "2019-12-10T15:55:20-08:00", - "modified_at": "2019-12-10T15:55:20-08:00", - "trashed_at": null, - "purged_at": null, - "content_created_at": "2019-08-27T15:49:45-07:00", - "content_modified_at": "2019-08-27T15:49:45-07:00", - "created_by": { - "type": "user", - "id": "45678", - "name": "Test User", - "login": "user@example.com" - }, - "modified_by": { - "type": "user", - "id": "45678", - "name": "Test User", - "login": "user@example.com" - }, - "owned_by": { - "type": "user", - "id": "45678", - "name": "Test User", - "login": "user@example.com" - }, - "shared_link": null, - "parent": { - "type": "folder", - "id": "34567", - "sequence_id": "0", - "etag": "0", - "name": "a" - }, - "item_status": "active" - }, - "metadata": { - "enterprise_67890": { - "relayWorkflowInformation": { - "workflowName": "Werk Flow 0", - "templateName": "Templ Name", - "dateCompleted": "2019-12-13T00:00:00Z", - "$id": "asdfghjklqwertyuiop12345678900", - "$version": 1, - "$type": "relayWorkflowInformation-asdfghjklqwertyuiop1234567890", - "$parent": "file_123450", - "$typeScope": "enterprise_67890", - "$typeVersion": 2 - } - } - } - }, - { - "item": { - "type": "file", - "id": "123451", - "file_version": { - "type": "file_version", - "id": "234561", - "sha1": "qwertyuiop1234567890qwertyuiop1" - }, - "sequence_id": "0", - "etag": "0", - "sha1": "1234567890qwertyuiopasdfghjkl1", - "name": "2.jpg", - "description": "", - "size": 1036724, - "path_collection": { - "total_count": 2, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - }, - { - "type": "folder", - "id": "34567", - "sequence_id": "0", - "etag": "0", - "name": "a" - } - ] - }, - "created_at": "2019-12-10T15:55:20-08:00", - "modified_at": "2019-12-10T15:55:20-08:00", - "trashed_at": null, - "purged_at": null, - "content_created_at": "2019-08-27T15:49:45-07:00", - "content_modified_at": "2019-08-27T15:49:45-07:00", - "created_by": { - "type": "user", - "id": "45678", - "name": "Test User", - "login": "user@example.com" - }, - "modified_by": { - "type": "user", - "id": "45678", - "name": "Test User", - "login": "user@example.com" - }, - "owned_by": { - "type": "user", - "id": "45678", - "name": "Test User", - "login": "user@example.com" - }, - "shared_link": null, - "parent": { - "type": "folder", - "id": "34567", - "sequence_id": "0", - "etag": "0", - "name": "a" - }, - "item_status": "active" - }, - "metadata": { - "enterprise_67890": { - "relayWorkflowInformation": { - "workflowName": "Werk Flo Name", - "templateName": "Templ Name", - "dateCompleted": "2019-12-13T00:00:00Z", - "$id": "asdfghjklqwertyuiop1234567890", - "$version": 1, - "$type": "relayWorkflowInformation-asdfghjklqwertyuiop1234567890", - "$parent": "file_123451", - "$typeScope": "enterprise_67890", - "$typeVersion": 2 - }, - "randomTemplate": { - "customField": "custom", - "$id": "32fdsa1432hf33jkf3", - "$version": 1, - "$type": "randomTemplate-asdfghjkf234hjjhfks7890", - "$parent": "file_12343251", - "$typeScope": "enterprise_67890", - "$typeVersion": 2 - } - }, - "enterprise_123456": { - "someTemplate": { - "$parent": "file_161753469109", - "$version": 0, - "customerName": "Phoenix Corp", - "$type": "someTemplate-3d5fcaca-f496-4bb6-9046-d25c37bc5594", - "$typeVersion": 0, - "$id": "ba52e2cc-371d-4659-8d53-50f1ac642e35", - "amount": 100, - "claimDate": "2016-04-10T00:00:00Z", - "region": "West", - "$typeScope": "enterprise_123456" - } - } - } - } - ], - "limit": 2, - "next_marker": "0!asdfghjklzxcvbnmqwertyuiop1234567890qwertyuiopasdfghjklzxcvbnmasdfghjkl1234567890asdfghjklzxcvbnmzxcvbnmqwertyuiopasdfghjklzxcvbnm1234567890asdfghjklzxcvbnmqweRTYuiOpasDfGhjKlzxcvBNmqwerTYuIopasdFghJkLzxCvbnmASdfghJklqweRtyUiOpzxCvbnasdfghjKLqwerTYUiopasdFGHjklertyuIOp1234567890zxcvBnmasdFghJkLqwErtYuIoPasdfGhjksdFGHJKertyuIFGHJcvbnqwertyuiopasdFGHjkLzxcvbnmdfgHJdfg765fbbd." -} diff --git a/src/test/Fixtures/BoxMetadataTemplate/MetadataQuery2ndRequest.json b/src/test/Fixtures/BoxMetadataTemplate/MetadataQuery2ndRequest.json deleted file mode 100644 index a093cfabd..000000000 --- a/src/test/Fixtures/BoxMetadataTemplate/MetadataQuery2ndRequest.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "from": "enterprise_67890.relayWorkflowInformation", - "query": "templateName >= :arg", - "query_params": { - "arg": "Templ Name" - }, - "ancestor_folder_id": "0", - "limit": 2, - "marker": "0!asdfghjklzxcvbnmqwertyuiop1234567890qwertyuiopasdfghjklzxcvbnmasdfghjkl1234567890asdfghjklzxcvbnmzxcvbnmqwertyuiopasdfghjklzxcvbnm1234567890asdfghjklzxcvbnmqweRTYuiOpasDfGhjKlzxcvBNmqwerTYuIopasdFghJkLzxCvbnmASdfghJklqweRtyUiOpzxCvbnasdfghjKLqwerTYUiopasdFGHjklertyuIOp1234567890zxcvBnmasdFghJkLqwErtYuIoPasdfGhjksdFGHJKertyuIFGHJcvbnqwertyuiopasdFGHjkLzxcvbnmdfgHJdfg765fbbd." -} diff --git a/src/test/Fixtures/BoxMetadataTemplate/MetadataQuery2ndResponse200.json b/src/test/Fixtures/BoxMetadataTemplate/MetadataQuery2ndResponse200.json deleted file mode 100644 index 7ff22b4a3..000000000 --- a/src/test/Fixtures/BoxMetadataTemplate/MetadataQuery2ndResponse200.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "entries": [ - { - "item": { - "type": "file", - "id": "123452", - "file_version": { - "type": "file_version", - "id": "234562", - "sha1": "qwertyuiop1234567890qwertyuiop2" - }, - "sequence_id": "0", - "etag": "0", - "sha1": "1234567890qwertyuiopasdfghjkl2", - "name": "3.jpg", - "description": "", - "size": 1036724, - "path_collection": { - "total_count": 2, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - }, - { - "type": "folder", - "id": "34567", - "sequence_id": "0", - "etag": "0", - "name": "a" - } - ] - }, - "created_at": "2019-12-10T15:55:20-08:00", - "modified_at": "2019-12-10T15:55:20-08:00", - "trashed_at": null, - "purged_at": null, - "content_created_at": "2019-08-27T15:49:45-07:00", - "content_modified_at": "2019-08-27T15:49:45-07:00", - "created_by": { - "type": "user", - "id": "45678", - "name": "Test User", - "login": "user@example.com" - }, - "modified_by": { - "type": "user", - "id": "45678", - "name": "Test User", - "login": "user@example.com" - }, - "owned_by": { - "type": "user", - "id": "45678", - "name": "Test User", - "login": "user@example.com" - }, - "shared_link": null, - "parent": { - "type": "folder", - "id": "34567", - "sequence_id": "0", - "etag": "0", - "name": "a" - }, - "item_status": "active" - }, - "metadata": { - "enterprise_67890": { - "relayWorkflowInformation": { - "workflowName": "Werk Flo Name", - "templateName": "Templ Name", - "dateCompleted": "2019-12-13T00:00:00Z", - "$id": "asdfghjklqwertyuiop1234567890", - "$version": 1, - "$type": "relayWorkflowInformation-asdfghjklqwertyuiop1234567890", - "$parent": "file_123452", - "$typeScope": "enterprise_67890", - "$typeVersion": 2 - } - } - } - } - ], - "limit": 2 -} diff --git a/src/test/Fixtures/BoxMetadataTemplate/MetadataQueryResponseForFields200.json b/src/test/Fixtures/BoxMetadataTemplate/MetadataQueryResponseForFields200.json deleted file mode 100644 index f7fe03c52..000000000 --- a/src/test/Fixtures/BoxMetadataTemplate/MetadataQueryResponseForFields200.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "entries": [ - { - "type": "file", - "id": "1244738582", - "etag": "1", - "sha1": "012b5jdunwkfu438991344044", - "name": "Very Important.docx", - "metadata": { - "enterprise_67890": { - "catalogImages": { - "$parent": "file_50347290", - "$version": 2, - "$template": "catalogImages", - "$scope": "enterprise_67890", - "photographer": "Bob Dylan" - } - } - } - }, - { - "type": "folder", - "id": "124242482", - "etag": "1", - "sha1": "012b5ir8391344044", - "name": "Also Important.docx", - "metadata": { - "enterprise_67890": { - "catalogImages": { - "$parent": "file_50427290", - "$version": 2, - "$template": "catalogImages", - "$scope": "enterprise_67890", - "photographer": "Bob Dylan" - } - } - } - } - ], - "limit": 2, - "next_marker": "0!WkeoDQ3mm5cI_RzSN--UOG1ICuw0gz3729kfhwuoagt54nbv[qmgfhsygreh98nfu94344PpctrcgVa8AMIe7gRwSNBNloVR-XuGmfqTw" -} diff --git a/src/test/Fixtures/BoxMetadataTemplate/UpdateMetadataTemplate200.json b/src/test/Fixtures/BoxMetadataTemplate/UpdateMetadataTemplate200.json deleted file mode 100644 index 073ed7ead..000000000 --- a/src/test/Fixtures/BoxMetadataTemplate/UpdateMetadataTemplate200.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "f7a9891f", - "templateKey": "documentFlow03", - "scope": "enterprise", - "displayName": "Document Flow 03", - "hidden": false, - "fields": [ - { - "id": "f7a9894f", - "type": "enum", - "key": "fy", - "displayName": "FY", - "options": [ - { - "id": "f7a9895f", - "key": "FY16" - }, - { - "id": "f7a9896f", - "key": "FY17" - } - ] - } - ], - "copyInstanceOnItemCopy": true -} diff --git a/src/test/Fixtures/BoxMetadataTemplate/UpdateMetadataTemplateWithStaticConfig200.json b/src/test/Fixtures/BoxMetadataTemplate/UpdateMetadataTemplateWithStaticConfig200.json deleted file mode 100644 index ce4d09d38..000000000 --- a/src/test/Fixtures/BoxMetadataTemplate/UpdateMetadataTemplateWithStaticConfig200.json +++ /dev/null @@ -1,28 +0,0 @@ - -{ - "id": "f7a9891f", - "templateKey": "documentFlow03", - "scope": "enterprise", - "displayName": "Document Flow 03", - "hidden": false, - "fields": [ - { - "type": "enum", - "key": "Box__Security__Classification__Key", - "displayName": "Classification", - "hidden": false, - "options": [ - { - "key": "Classified", - "staticConfig": { - "classification": { - "colorID": 4, - "classificationDefinition": "Top Seret" - } - } - } - ] - } - ], - "copyInstanceOnItemCopy": true -} diff --git a/src/test/Fixtures/BoxRetentionPolicy/CreateRetentionPolicy201.json b/src/test/Fixtures/BoxRetentionPolicy/CreateRetentionPolicy201.json deleted file mode 100644 index 7d6cc45f5..000000000 --- a/src/test/Fixtures/BoxRetentionPolicy/CreateRetentionPolicy201.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "retention_policy", - "id": "12345", - "policy_name": "Test Retention Policy", - "policy_type": "indefinite", - "retention_length": "indefinite", - "disposition_action": "remove_retention", - "can_owner_extend_retention": false, - "status": "active", - "are_owners_notified": false, - "custom_notification_recipients": [], - "assignment_counts": { - "enterprise": 0, - "folder": 0, - "metadata_template": 0 - }, - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "created_at": "2018-04-23T10:17:14-07:00", - "modified_at": "2018-04-23T10:17:14-07:00", - "description": "description", - "retention_type": "modifiable" -} diff --git a/src/test/Fixtures/BoxRetentionPolicy/CreateRetentionPolicyAssignmentForEnterprise201.json b/src/test/Fixtures/BoxRetentionPolicy/CreateRetentionPolicyAssignmentForEnterprise201.json deleted file mode 100644 index d43c863ed..000000000 --- a/src/test/Fixtures/BoxRetentionPolicy/CreateRetentionPolicyAssignmentForEnterprise201.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "type": "retention_policy_assignment", - "id": "12345", - "retention_policy": { - "type": "retention_policy", - "id": "1111", - "policy_name": "A Retention Policy" - }, - "assigned_to": { - "type": "enterprise", - "id": "2222" - }, - "filter_fields": [], - "assigned_by": { - "type": "user", - "id": "3333", - "name": "Test User", - "login": "test@user.com" - }, - "assigned_at": "2018-04-23T12:37:36-07:00", - "start_date_field": "upload_date" -} diff --git a/src/test/Fixtures/BoxRetentionPolicy/CreateRetentionPolicyAssignmentForMetadataTemplate201.json b/src/test/Fixtures/BoxRetentionPolicy/CreateRetentionPolicyAssignmentForMetadataTemplate201.json deleted file mode 100644 index 7a2dec6b3..000000000 --- a/src/test/Fixtures/BoxRetentionPolicy/CreateRetentionPolicyAssignmentForMetadataTemplate201.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "retention_policy_assignment", - "id": "12345", - "retention_policy": { - "type": "retention_policy", - "id": "1111", - "policy_name": "A Retention Policy", - "retention_length": "30", - "disposition_action": "remove_retention" - }, - "assigned_to": { - "type": "metadata_template", - "id": "c5c3a90a-7530-44c9-a47a-e522473a8d06" - }, - "filter_fields": [], - "assigned_by": { - "type": "user", - "id": "3333", - "name": "Test User", - "login": "test@user.com" - }, - "assigned_at": "2021-12-16T10:37:10-08:00", - "start_date_field": "68144df9-597b-4ccb-b1ca-b981eaa321c4" -} diff --git a/src/test/Fixtures/BoxRetentionPolicy/CreateRetentionPolicyAssignmentForMetadataTemplateWithoutStartDateField201.json b/src/test/Fixtures/BoxRetentionPolicy/CreateRetentionPolicyAssignmentForMetadataTemplateWithoutStartDateField201.json deleted file mode 100644 index 457c44ddc..000000000 --- a/src/test/Fixtures/BoxRetentionPolicy/CreateRetentionPolicyAssignmentForMetadataTemplateWithoutStartDateField201.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "retention_policy_assignment", - "id": "12345", - "retention_policy": { - "type": "retention_policy", - "id": "1111", - "policy_name": "A Retention Policy", - "retention_length": "30", - "disposition_action": "remove_retention" - }, - "assigned_to": { - "type": "metadata_template", - "id": "c5c3a90a-7530-44c9-a47a-e522473a8d06" - }, - "filter_fields": [], - "assigned_by": { - "type": "user", - "id": "3333", - "name": "Test User", - "login": "test@user.com" - }, - "assigned_at": "2021-12-16T10:37:10-08:00", - "start_date_field": "upload_date" -} diff --git a/src/test/Fixtures/BoxRetentionPolicy/GetAllFileVersionRetentions200.json b/src/test/Fixtures/BoxRetentionPolicy/GetAllFileVersionRetentions200.json deleted file mode 100644 index 7c8d259c1..000000000 --- a/src/test/Fixtures/BoxRetentionPolicy/GetAllFileVersionRetentions200.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "entries": [ - { - "type": "file_version_retention", - "id": "12345" - }, - { - "type": "file_version_retention", - "id": "32442" - } - ], - "limit": 100, - "next_marker": "eyJ0eXBlIjoiZmlsZV92ZXJzaW9uX2lkIiwiZGlyIjoibmV4dCIsInRhaWwiOiIyODcwNzUyNjY2NDEifQ", - "order": [ - { - "by": "file_version_id", - "direction": "ASC" - } - ] -} diff --git a/src/test/Fixtures/BoxRetentionPolicy/GetAllRetentionPolicies200.json b/src/test/Fixtures/BoxRetentionPolicy/GetAllRetentionPolicies200.json deleted file mode 100644 index 34f18e013..000000000 --- a/src/test/Fixtures/BoxRetentionPolicy/GetAllRetentionPolicies200.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "entries": [ - { - "type": "retention_policy", - "disposition_action": "remove_retention", - "id": "12345", - "policy_name": "A Retention Policy", - "retention_length": "30" - }, - { - "type": "retention_policy", - "disposition_action": "permanently_delete", - "id": "32421", - "policy_name": "A Retention Policy 2", - "retention_length": "1" - } - ], - "limit": 1000 -} diff --git a/src/test/Fixtures/BoxRetentionPolicy/GetAllRetentionPolicyAssignments200.json b/src/test/Fixtures/BoxRetentionPolicy/GetAllRetentionPolicyAssignments200.json deleted file mode 100644 index 24ccd026c..000000000 --- a/src/test/Fixtures/BoxRetentionPolicy/GetAllRetentionPolicyAssignments200.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "entries": [ - { - "type": "retention_policy_assignment", - "id": "12345" - }, - { - "type": "retention_policy_assignment", - "id": "42342" - } - ], - "limit": 1000 -} diff --git a/src/test/Fixtures/BoxRetentionPolicy/GetFileRetentionInfo200.json b/src/test/Fixtures/BoxRetentionPolicy/GetFileRetentionInfo200.json deleted file mode 100644 index 844649aa9..000000000 --- a/src/test/Fixtures/BoxRetentionPolicy/GetFileRetentionInfo200.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "file_version_retention", - "id": "12345", - "applied_at": "2018-02-28T18:03:31-08:00", - "disposition_at": "2106-02-06T22:28:15-08:00", - "winning_retention_policy": { - "type": "retention_policy", - "id": "1111", - "policy_name": "test2" - }, - "file_version": { - "type": "file_version", - "id": "2222", - "sha1": null - }, - "file": { - "type": "file", - "id": "3333", - "etag": "1" - } -} diff --git a/src/test/Fixtures/BoxRetentionPolicy/GetFileVersionsUnderRetention200.json b/src/test/Fixtures/BoxRetentionPolicy/GetFileVersionsUnderRetention200.json deleted file mode 100644 index edb682019..000000000 --- a/src/test/Fixtures/BoxRetentionPolicy/GetFileVersionsUnderRetention200.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "entries": [ - { - "id": "123456", - "etag": "1", - "type": "file_version", - "sequence_id": "3", - "name": "Contract.pdf", - "sha1": "85136C79CBF9FE36BB9D05D0639C70C265C18D37", - "file_version": { - "id": "1234567", - "type": "file_version", - "sha1": "134b65991ed521fcfe4724b7d814ab8ded5185dc" - }, - "applied_at": "2012-12-12T10:53:43-08:00" - } - ], - "limit": 1000, - "marker": "SomeMarker" -} diff --git a/src/test/Fixtures/BoxRetentionPolicy/GetFilesUnderRetention200.json b/src/test/Fixtures/BoxRetentionPolicy/GetFilesUnderRetention200.json deleted file mode 100644 index 1f7ac885c..000000000 --- a/src/test/Fixtures/BoxRetentionPolicy/GetFilesUnderRetention200.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "entries": [ - { - "id": "12345", - "etag": "1", - "type": "file", - "sequence_id": "3", - "name": "Contract.pdf", - "sha1": "85136C79CBF9FE36BB9D05D0639C70C265C18D37", - "file_version": { - "id": "123456", - "type": "file_version", - "sha1": "134b65991ed521fcfe4724b7d814ab8ded5185dc" - }, - "applied_at": "2012-12-12T10:53:43-08:00" - } - ], - "limit": 1000, - "marker": "some marker" -} diff --git a/src/test/Fixtures/BoxRetentionPolicy/GetRetentionPolicyAssignment200.json b/src/test/Fixtures/BoxRetentionPolicy/GetRetentionPolicyAssignment200.json deleted file mode 100644 index cbd0899d1..000000000 --- a/src/test/Fixtures/BoxRetentionPolicy/GetRetentionPolicyAssignment200.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "entries": [ - { - "type": "retention_policy_assignment", - "id": "12345" - } - ], - "limit": 1000 -} diff --git a/src/test/Fixtures/BoxRetentionPolicy/GetRetentionPolicyAssignmentInfo200.json b/src/test/Fixtures/BoxRetentionPolicy/GetRetentionPolicyAssignmentInfo200.json deleted file mode 100644 index d43c863ed..000000000 --- a/src/test/Fixtures/BoxRetentionPolicy/GetRetentionPolicyAssignmentInfo200.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "type": "retention_policy_assignment", - "id": "12345", - "retention_policy": { - "type": "retention_policy", - "id": "1111", - "policy_name": "A Retention Policy" - }, - "assigned_to": { - "type": "enterprise", - "id": "2222" - }, - "filter_fields": [], - "assigned_by": { - "type": "user", - "id": "3333", - "name": "Test User", - "login": "test@user.com" - }, - "assigned_at": "2018-04-23T12:37:36-07:00", - "start_date_field": "upload_date" -} diff --git a/src/test/Fixtures/BoxRetentionPolicy/GetRetentionPolicyInfo200.json b/src/test/Fixtures/BoxRetentionPolicy/GetRetentionPolicyInfo200.json deleted file mode 100644 index 4eba711ab..000000000 --- a/src/test/Fixtures/BoxRetentionPolicy/GetRetentionPolicyInfo200.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "retention_policy", - "id": "12345", - "policy_name": "A Retention Policy", - "policy_type": "finite", - "retention_length": "2", - "disposition_action": "remove_retention", - "can_owner_extend_retention": true, - "status": "active", - "are_owners_notified": true, - "custom_notification_recipients": [], - "assignment_counts": { - "enterprise": 0, - "folder": 0, - "metadata_template": 0 - }, - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "created_at": "2018-04-09T15:16:39-07:00", - "modified_at": "2018-04-09T15:16:39-07:00", - "description": "description", - "retention_type": "non_modifiable" -} diff --git a/src/test/Fixtures/BoxRetentionPolicy/UpdateRetentionPolicyInfo200.json b/src/test/Fixtures/BoxRetentionPolicy/UpdateRetentionPolicyInfo200.json deleted file mode 100644 index f841d2114..000000000 --- a/src/test/Fixtures/BoxRetentionPolicy/UpdateRetentionPolicyInfo200.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "retention_policy", - "id": "12345", - "policy_name": "New Policy Name", - "policy_type": "finite", - "retention_length": "44", - "disposition_action": "remove_retention", - "can_owner_extend_retention": false, - "status": "retired", - "are_owners_notified": false, - "custom_notification_recipients": [], - "assignment_counts": { - "enterprise": 0, - "folder": 0, - "metadata_template": 0 - }, - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "created_at": "2018-04-23T10:17:14-07:00", - "modified_at": "2018-04-23T11:07:29-07:00", - "description": "updated description", - "retention_type": "non_modifiable" -} diff --git a/src/test/Fixtures/BoxSearch/GetSearchItemsIncludingSharedLinks200.json b/src/test/Fixtures/BoxSearch/GetSearchItemsIncludingSharedLinks200.json deleted file mode 100644 index 17d460e20..000000000 --- a/src/test/Fixtures/BoxSearch/GetSearchItemsIncludingSharedLinks200.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "entries": [ - { - "type": "search_result", - "accessible_via_shared_link": "https://www.box.com/s/vspke7y05sb214wjokpk", - "item": { - "id": "12345", - "etag": "1", - "type": "file", - "sequence_id": "3", - "name": "Contract.pdf", - "sha1": "85136C79CBF9FE36BB9D05D0639C70C265C18D37", - "file_version": { - "id": "12345", - "type": "file_version", - "sha1": "134b65991ed521fcfe4724b7d814ab8ded5185dc" - }, - "description": "Contract for Q1 renewal", - "size": 629644, - "path_collection": { - "total_count": 1, - "entries": [ - { - "id": "12345", - "etag": "1", - "type": "folder", - "sequence_id": "3", - "name": "Contracts" - } - ] - }, - "created_at": "2012-12-12T10:53:43-08:00", - "modified_at": "2012-12-12T10:53:43-08:00", - "trashed_at": "2012-12-12T10:53:43-08:00", - "purged_at": "2012-12-12T10:53:43-08:00", - "content_created_at": "2012-12-12T10:53:43-08:00", - "content_modified_at": "2012-12-12T10:53:43-08:00", - "created_by": { - "id": "11446498", - "type": "user", - "name": "Aaron Levie", - "login": "ceo@example.com" - }, - "modified_by": { - "id": "11446498", - "type": "user", - "name": "Aaron Levie", - "login": "ceo@example.com" - }, - "owned_by": { - "id": "11446498", - "type": "user", - "name": "Aaron Levie", - "login": "ceo@example.com" - }, - "shared_link": { - "url": "https://www.box.com/s/vspke7y05sb214wjokpk", - "download_url": "https://www.box.com/shared/static/rh935iit6ewrmw0unyul.jpeg", - "vanity_url": "https://acme.app.box.com/v/my_url/", - "vanity_name": "my_url", - "access": "open", - "effective_access": "company", - "effective_permission": "can_download", - "unshared_at": "2018-04-13T13:53:23-07:00", - "is_password_enabled": true, - "permissions": { - "can_download": true, - "can_preview": true - }, - "download_count": 3, - "preview_count": 3 - }, - "parent": { - "id": "12345", - "etag": "1", - "type": "folder", - "sequence_id": "3", - "name": "Contracts" - }, - "item_status": "active" - } - } - ], - "limit": 10, - "offset": 10, - "total_count": 11 -} diff --git a/src/test/Fixtures/BoxSharedLink/CreateEditableSharedLink201.json b/src/test/Fixtures/BoxSharedLink/CreateEditableSharedLink201.json deleted file mode 100644 index f804e0f36..000000000 --- a/src/test/Fixtures/BoxSharedLink/CreateEditableSharedLink201.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "shared_link": { - "url": "https://testt3t2t2t2.box.com/s/12345", - "download_url": "https://testt3t2t2t2.box.com/shared/static/12345.png", - "vanity_url": null, - "effective_access": "open", - "effective_permission": "can_download", - "is_password_enabled": true, - "unshared_at": null, - "download_count": 0, - "preview_count": 0, - "access": "open", - "permissions": { - "can_preview": true, - "can_download": true, - "can_edit": true - } - } -} diff --git a/src/test/Fixtures/BoxSharedLink/CreateSharedLink201.json b/src/test/Fixtures/BoxSharedLink/CreateSharedLink201.json deleted file mode 100644 index 19a360663..000000000 --- a/src/test/Fixtures/BoxSharedLink/CreateSharedLink201.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "shared_link": { - "url": "https://testt3t2t2t2.box.com/s/12345", - "download_url": "https://testt3t2t2t2.box.com/shared/static/12345.png", - "vanity_url": null, - "effective_access": "open", - "effective_permission": "can_download", - "is_password_enabled": true, - "unshared_at": null, - "download_count": 0, - "preview_count": 0, - "access": "open" - } -} diff --git a/src/test/Fixtures/BoxSignRequest/CancelSignRequest200.json b/src/test/Fixtures/BoxSignRequest/CancelSignRequest200.json deleted file mode 100644 index d9e3a7477..000000000 --- a/src/test/Fixtures/BoxSignRequest/CancelSignRequest200.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "is_document_preparation_needed": true, - "are_text_signatures_enabled": true, - "are_dates_enabled": true, - "signature_color": "blue", - "email_subject": "Sign Request from Acme", - "email_message": "Hello! Please sign the document below", - "are_reminders_enabled": true, - "signers": [ - { - "email": "example@gmail.com", - "role": "signer", - "is_in_person": true, - "order": 2, - "embed_url_external_user_id": "1234", - "has_viewed_email": true, - "has_viewed_document": true, - "signer_decision": { - "type": "signed", - "finalized_at": "2021-04-26T08:12:13.982Z" - }, - "inputs": [ - { - "document_tag_id": "1234", - "text_value": "text", - "checkbox_value": true, - "date_value": "2021-04-26T08:12:13.982Z", - "type": "text", - "page_index": 4, - "content_type": "checkbox" - } - ], - "embed_url": "https://example.com", - "redirect_url": "https://box.com/redirect_url_signer_1", - "declined_redirect_url": "https://box.com/declined_redirect_url_signer_1" - } - ], - "source_files": [ - { - "id": "12345", - "etag": "1", - "type": "file", - "sequence_id": "3", - "name": "Contract.pdf", - "sha1": "85136C79CBF9FE36BB9D05D0639C70C265C18D37", - "file_version": { - "id": "12345", - "type": "file_version", - "sha1": "134b65991ed521fcfe4724b7d814ab8ded5185dc" - } - } - ], - "parent_folder": { - "id": "12345", - "etag": "1", - "type": "folder", - "sequence_id": "3", - "name": "Contracts" - }, - "name": "name", - "prefill_tags": [ - { - "document_tag_id": "1234", - "text_value": "text", - "checkbox_value": true, - "date_value": "2021-04-26T08:12:13.982Z" - } - ], - "days_valid": 2, - "external_id": "123", - "type": "sign-request", - "id": "12345", - "prepare_url": "https://prepareurl.com", - "redirect_url": "https://box.com/redirect_url", - "declined_redirect_url": "https://box.com/declined_redirect_url", - "signing_log": { - "id": "12345", - "etag": "1", - "type": "file", - "sequence_id": "3", - "name": "Contract.pdf", - "sha1": "85136C79CBF9FE36BB9D05D0639C70C265C18D37", - "file_version": { - "id": "12345", - "type": "file_version", - "sha1": "134b65991ed521fcfe4724b7d814ab8ded5185dc" - } - }, - "status": "cancelled", - "sign_files": { - "files": [ - { - "id": "12345", - "etag": "1", - "type": "file", - "sequence_id": "3", - "name": "Contract.pdf", - "sha1": "85136C79CBF9FE36BB9D05D0639C70C265C18D37", - "file_version": { - "id": "12345", - "type": "file_version", - "sha1": "134b65991ed521fcfe4724b7d814ab8ded5185dc" - } - } - ], - "is_ready_for_download": true - }, - "auto_expire_at": "2021-04-26T08:12:13.982Z", - "template_id": "93153068-5420-467b-b8ef-aaaaaaaaaaa" -} diff --git a/src/test/Fixtures/BoxSignRequest/CreateSignRequest200.json b/src/test/Fixtures/BoxSignRequest/CreateSignRequest200.json deleted file mode 100644 index 9720d605b..000000000 --- a/src/test/Fixtures/BoxSignRequest/CreateSignRequest200.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "is_document_preparation_needed": true, - "are_text_signatures_enabled": true, - "are_dates_enabled": true, - "signature_color": "blue", - "email_subject": "Sign Request from Acme", - "email_message": "Hello! Please sign the document below", - "are_reminders_enabled": true, - "signers": [ - { - "email": "example@gmail.com", - "role": "signer", - "is_in_person": true, - "order": 2, - "embed_url_external_user_id": "1234", - "has_viewed_email": true, - "has_viewed_document": true, - "signer_decision": { - "type": "signed", - "finalized_at": "2021-04-26T08:12:13.982Z", - "additional_info": "Requesting changes before signing." - }, - "inputs": [ - { - "document_tag_id": "1234", - "text_value": "text", - "checkbox_value": true, - "date_value": "2021-04-26", - "type": "text", - "page_index": 4, - "content_type": "checkbox" - } - ], - "embed_url": "https://example.com", - "redirect_url": "https://box.com/redirect_url_signer_1", - "declined_redirect_url": "https://box.com/declined_redirect_url_signer_1", - "iframeable_embed_url": "https://app.box.com/embed/sign/document/gfhr4222-a331-494b-808b-79bc7f3992a3/f14d7098-a331-494b-808b-79bc7f3992a4", - "suppress_notifications": true, - "login_required": true, - "verification_phone_number": "1234567890" - } - ], - "source_files": [ - { - "id": "12345", - "etag": "1", - "type": "file", - "sequence_id": "3", - "name": "Contract.pdf", - "sha1": "85136C79CBF9FE36BB9D05D0639C70C265C18D37", - "file_version": { - "id": "12345", - "type": "file_version", - "sha1": "134b65991ed521fcfe4724b7d814ab8ded5185dc" - } - } - ], - "parent_folder": { - "id": "12345", - "etag": "1", - "type": "folder", - "sequence_id": "3", - "name": "Contracts" - }, - "name": "name", - "prefill_tags": [ - { - "document_tag_id": "1234", - "text_value": "text", - "checkbox_value": true, - "date_value": "2021-04-26" - } - ], - "days_valid": 2, - "external_id": "123", - "type": "sign-request", - "id": "12345", - "prepare_url": "https://prepareurl.com", - "redirect_url": "https://box.com/redirect_url", - "declined_redirect_url": "https://box.com/declined_redirect_url", - "signing_log": { - "id": "12345", - "etag": "1", - "type": "file", - "sequence_id": "3", - "name": "Contract.pdf", - "sha1": "85136C79CBF9FE36BB9D05D0639C70C265C18D37", - "file_version": { - "id": "12345", - "type": "file_version", - "sha1": "134b65991ed521fcfe4724b7d814ab8ded5185dc" - } - }, - "status": "converting", - "sign_files": { - "files": [ - { - "id": "12345", - "etag": "1", - "type": "file", - "sequence_id": "3", - "name": "Contract.pdf", - "sha1": "85136C79CBF9FE36BB9D05D0639C70C265C18D37", - "file_version": { - "id": "12345", - "type": "file_version", - "sha1": "134b65991ed521fcfe4724b7d814ab8ded5185dc" - } - } - ], - "is_ready_for_download": true - }, - "auto_expire_at": "2021-04-26T08:12:13.982Z", - "template_id": "93153068-5420-467b-b8ef-aaaaaaaaaaa" -} diff --git a/src/test/Fixtures/BoxSignRequest/GetAllSignRequests200.json b/src/test/Fixtures/BoxSignRequest/GetAllSignRequests200.json deleted file mode 100644 index add5988e3..000000000 --- a/src/test/Fixtures/BoxSignRequest/GetAllSignRequests200.json +++ /dev/null @@ -1,135 +0,0 @@ -{ - "limit": 1000, - "next_marker": 3000, - "entries": [ - { - "is_document_preparation_needed": true, - "are_text_signatures_enabled": true, - "are_dates_enabled": true, - "signature_color": "blue", - "email_subject": "Sign Request from Acme", - "email_message": "Hello! Please sign the document below", - "are_reminders_enabled": true, - "signers": [ - { - "email": "example@gmail.com", - "role": "signer", - "is_in_person": true, - "order": 2, - "embed_url_external_user_id": "1234", - "has_viewed_email": true, - "has_viewed_document": true, - "signer_decision": { - "type": "signed", - "finalized_at": "2021-04-26T08:12:13.982Z" - }, - "inputs": [ - { - "document_tag_id": "1234", - "text_value": null, - "checkbox_value": true, - "date_value": null, - "type": "text", - "page_index": 4, - "content_type": "checkbox" - }, - { - "document_tag_id": "1234", - "text_value": "John Doe", - "checkbox_value": null, - "date_value": null, - "type": "signature", - "page_index": 1, - "content_type": "signature" - }, - { - "document_tag_id": "1234", - "text_value": null, - "checkbox_value": null, - "date_value": "2021-12-03", - "type": "date", - "page_index": 1, - "content_type": "date" - } - ], - "embed_url": "https://example.com", - "redirect_url": "https://box.com/redirect_url_signer_1", - "declined_redirect_url": "https://box.com/declined_redirect_url_signer_1", - "iframeable_embed_url": "https://app.box.com/embed/sign/document/gfhr4222-a331-494b-808b-79bc7f3992a3/f14d7098-a331-494b-808b-79bc7f3992a4" - } - ], - "source_files": [ - { - "id": "12345", - "etag": "1", - "type": "file", - "sequence_id": "3", - "name": "Contract.pdf", - "sha1": "85136C79CBF9FE36BB9D05D0639C70C265C18D37", - "file_version": { - "id": "12345", - "type": "file_version", - "sha1": "134b65991ed521fcfe4724b7d814ab8ded5185dc" - } - } - ], - "parent_folder": { - "id": "12345", - "etag": "1", - "type": "folder", - "sequence_id": "3", - "name": "Contracts" - }, - "name": "name", - "prefill_tags": [ - { - "document_tag_id": "1234", - "text_value": "text", - "checkbox_value": true, - "date_value": "2021-04-26T08:12:13.982Z" - } - ], - "days_valid": 2, - "external_id": "123", - "type": "sign-request", - "id": "12345", - "prepare_url": "https://prepareurl.com", - "redirect_url": "https://box.com/redirect_url", - "declined_redirect_url": "https://box.com/declined_redirect_url", - "signing_log": { - "id": "12345", - "etag": "1", - "type": "file", - "sequence_id": "3", - "name": "Contract.pdf", - "sha1": "85136C79CBF9FE36BB9D05D0639C70C265C18D37", - "file_version": { - "id": "12345", - "type": "file_version", - "sha1": "134b65991ed521fcfe4724b7d814ab8ded5185dc" - } - }, - "status": "converting", - "sign_files": { - "files": [ - { - "id": "12345", - "etag": "1", - "type": "file", - "sequence_id": "3", - "name": "Contract.pdf", - "sha1": "85136C79CBF9FE36BB9D05D0639C70C265C18D37", - "file_version": { - "id": "12345", - "type": "file_version", - "sha1": "134b65991ed521fcfe4724b7d814ab8ded5185dc" - } - } - ], - "is_ready_for_download": true - }, - "auto_expire_at": "2021-04-26T08:12:13.982Z", - "template_id": "93153068-5420-467b-b8ef-aaaaaaaaaaa" - } - ] -} diff --git a/src/test/Fixtures/BoxSignRequest/GetSignRequest200.json b/src/test/Fixtures/BoxSignRequest/GetSignRequest200.json deleted file mode 100644 index a4e899599..000000000 --- a/src/test/Fixtures/BoxSignRequest/GetSignRequest200.json +++ /dev/null @@ -1,133 +0,0 @@ -{ - "is_document_preparation_needed": true, - "are_text_signatures_enabled": true, - "are_dates_enabled": true, - "signature_color": "blue", - "email_subject": "Sign Request from Acme", - "email_message": "Hello! Please sign the document below", - "are_reminders_enabled": true, - "signers": [ - { - "email": "example@gmail.com", - "role": "signer", - "is_in_person": true, - "order": 2, - "embed_url_external_user_id": "1234", - "has_viewed_email": true, - "has_viewed_document": true, - "signer_decision": { - "type": "signed", - "finalized_at": "2021-04-26T08:12:13.982Z", - "additional_info": "Requesting changes before signing." - }, - "inputs": [ - { - "document_tag_id": "1234", - "text_value": "text", - "checkbox_value": true, - "date_value": "2021-04-26T08:12:13.982Z", - "type": "text", - "page_index": 4, - "content_type": "checkbox" - }, - { - "document_tag_id": null, - "text_value": "", - "checkbox_value": null, - "date_value": null, - "type": "signature", - "page_index": 1, - "content_type": "signature" - }, - { - "document_tag_id": null, - "text_value": "Dec 3, 2021", - "checkbox_value": null, - "date_value": "2021-12-03", - "type": "date", - "page_index": 1, - "content_type": "date" - } - ], - "embed_url": "https://example.com", - "redirect_url": "https://box.com/redirect_url_signer_1", - "declined_redirect_url": "https://box.com/declined_redirect_url_signer_1", - "iframeable_embed_url": "https://app.box.com/embed/sign/document/gfhr4222-a331-494b-808b-79bc7f3992a3/f14d7098-a331-494b-808b-79bc7f3992a4", - "suppress_notifications": true, - "login_required": true, - "verification_phone_number": "1234567890" - } - ], - "source_files": [ - { - "id": "12345", - "etag": "1", - "type": "file", - "sequence_id": "3", - "name": "Contract.pdf", - "sha1": "85136C79CBF9FE36BB9D05D0639C70C265C18D37", - "file_version": { - "id": "12345", - "type": "file_version", - "sha1": "134b65991ed521fcfe4724b7d814ab8ded5185dc" - } - } - ], - "parent_folder": { - "id": "12345", - "etag": "1", - "type": "folder", - "sequence_id": "3", - "name": "Contracts" - }, - "name": "name", - "prefill_tags": [ - { - "document_tag_id": "1234", - "text_value": "text", - "checkbox_value": true, - "date_value": "2021-04-26T08:12:13.982Z" - } - ], - "days_valid": 2, - "external_id": "123", - "type": "sign-request", - "id": "12345", - "prepare_url": "https://prepareurl.com", - "redirect_url": "https://box.com/redirect_url", - "declined_redirect_url": "https://box.com/declined_redirect_url", - "signing_log": { - "id": "12345", - "etag": "1", - "type": "file", - "sequence_id": "3", - "name": "Contract.pdf", - "sha1": "85136C79CBF9FE36BB9D05D0639C70C265C18D37", - "file_version": { - "id": "12345", - "type": "file_version", - "sha1": "134b65991ed521fcfe4724b7d814ab8ded5185dc" - } - }, - "status": "converting", - "sign_files": { - "files": [ - { - "id": "12345", - "etag": "1", - "type": "file", - "sequence_id": "3", - "name": "Contract.pdf", - "sha1": "85136C79CBF9FE36BB9D05D0639C70C265C18D37", - "file_version": { - "id": "12345", - "type": "file_version", - "sha1": "134b65991ed521fcfe4724b7d814ab8ded5185dc" - } - } - ], - "is_ready_for_download": true - }, - "auto_expire_at": "2021-04-26T08:12:13.982Z", - "template_id": "93153068-5420-467b-b8ef-aaaaaaaaaaa" -} diff --git a/src/test/Fixtures/BoxSignTemplate/GetAllSignTemplates200.json b/src/test/Fixtures/BoxSignTemplate/GetAllSignTemplates200.json deleted file mode 100644 index 52a697185..000000000 --- a/src/test/Fixtures/BoxSignTemplate/GetAllSignTemplates200.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "limit": 100, - "next_marker": null, - "prev_marker": null, - "entries": [ - { - "id": "93153068-5420-467b-b8ef-aaaaaaaaaaa", - "name": "contract.pdf", - "email_message": "Please sign this document.\n\nKind regards,\n\nSomeone", - "email_subject": "Someone has requested your signature on a document", - "parent_folder": { - "id": "1234567890", - "etag": "0", - "type": "folder", - "sequence_id": "0", - "name": "My Sign Requests" - }, - "auto_expire_days": null, - "source_files": [ - { - "id": "1234567890", - "etag": "0", - "type": "file", - "sequence_id": "0", - "sha1": "082c9540e82e9c465309367a32404054b13aaaaaa", - "file_version": { - "id": "1234567890", - "type": "file_version", - "sha1": "082c9540e82e9c465309367a32404054b13aaaaaa" - } - } - ], - "are_email_settings_locked": false, - "are_fields_locked": false, - "are_files_locked": false, - "are_options_locked": false, - "are_recipients_locked": false, - "signers": [ - { - "email": "", - "label": "", - "public_id": "18K8KAAA", - "role": "final_copy_reader", - "is_in_person": false, - "order": 1, - "inputs": [] - }, - { - "email": "", - "label": "", - "public_id": "13XQXAAA", - "role": "signer", - "is_in_person": false, - "order": 1, - "inputs": [ - { - "document_tag_id": null, - "id": "0260f921-3b52-477f-ae74-aaaaaaaaaaa", - "type": "signature", - "text_value": null, - "is_required": true, - "coordinates": { - "x": 0.27038464059712, - "y": 0.10051756244533624 - }, - "dimensions": { - "width": 0.23570031566618235, - "height": 0.04781003891921971 - }, - "date_value": null, - "page_index": 0, - "checkbox_value": null, - "document_id": "2fdf9003-d798-40ee-be7f-aaaaaaaaaaa", - "content_type": "signature", - "dropdown_choices": null, - "group_id": null, - "label": null - } - ] - } - ], - "ready_sign_link": { - "url": "https://app.box.com/sign/ready-sign-link/59917816-c12b-4ef6-8f1d-aaaaaaaaaaa", - "name": "contract.pdf", - "instructions": "Hello", - "folder_id": "1234567890", - "is_notification_disabled": true, - "is_active": true - }, - "custom_branding": null, - "days_valid": 0, - "additional_info": { - "non_editable": [], - "required": { - "signers": [ - [ - "email" - ], - [ - "email" - ] - ] - } - } - } - ] -} \ No newline at end of file diff --git a/src/test/Fixtures/BoxSignTemplate/GetSignTemplateInfo200.json b/src/test/Fixtures/BoxSignTemplate/GetSignTemplateInfo200.json deleted file mode 100644 index c701c985a..000000000 --- a/src/test/Fixtures/BoxSignTemplate/GetSignTemplateInfo200.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "id": "93153068-5420-467b-b8ef-aaaaaaaaaaa", - "name": "contract.pdf", - "email_message": "Please sign this document.\n\nKind regards,\n\nSomeone", - "email_subject": "Someone has requested your signature on a document", - "parent_folder": { - "id": "1234567890", - "etag": "0", - "type": "folder", - "sequence_id": "0", - "name": "My Sign Requests" - }, - "auto_expire_days": 30, - "source_files": [ - { - "id": "1234567890", - "etag": "0", - "type": "file", - "sequence_id": "0", - "sha1": "082c9540e82e9c465309367a32404054b13aaaaaa", - "file_version": { - "id": "1234567890", - "type": "file_version", - "sha1": "082c9540e82e9c465309367a32404054b13aaaaaa" - } - } - ], - "are_email_settings_locked": true, - "are_fields_locked": true, - "are_files_locked": true, - "are_options_locked": false, - "are_recipients_locked": false, - "signers": [ - { - "email": "user1@mail.com", - "label": "", - "public_id": "18K8KAAA", - "role": "final_copy_reader", - "is_in_person": false, - "order": 1, - "inputs": [] - }, - { - "email": "user2@mail.com", - "label": "", - "public_id": "13XQXAAA", - "role": "signer", - "is_in_person": false, - "order": 1, - "inputs": [ - { - "document_tag_id": null, - "id": "0260f921-3b52-477f-ae74-aaaaaaaaaaa", - "type": "signature", - "text_value": null, - "is_required": true, - "coordinates": { - "x": 0.27038464059712, - "y": 0.10051756244533624 - }, - "dimensions": { - "width": 0.23570031566618235, - "height": 0.04781003891921971 - }, - "date_value": null, - "page_index": 0, - "checkbox_value": null, - "document_id": "2fdf9003-d798-40ee-be7f-aaaaaaaaaaa", - "content_type": "signature", - "dropdown_choices": null, - "group_id": null, - "label": null - } - ] - } - ], - "ready_sign_link": { - "url": "https://app.box.com/sign/ready-sign-link/59917816-c12b-4ef6-8f1d-aaaaaaaaaaa", - "name": "contract.pdf", - "instructions": "Hello", - "folder_id": "1234567890", - "is_notification_disabled": true, - "is_active": true - }, - "custom_branding": { - "company_name": "Corporation inc.", - "logo_uri": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA\nAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A\n8AAQUBAScY42YAAAAASUVORK5CYII=", - "branding_color": "9E5E6F", - "email_footer_text": "Contact email email@mail.com" - }, - "days_valid": 0, - "additional_info": { - "non_editable": [], - "required": { - "signers": [ - [ - "email" - ], - [ - "email" - ] - ] - } - } -} \ No newline at end of file diff --git a/src/test/Fixtures/BoxStoragePolicy/Get_A_Storage_Policy_200.json b/src/test/Fixtures/BoxStoragePolicy/Get_A_Storage_Policy_200.json deleted file mode 100644 index 9a5fa9121..000000000 --- a/src/test/Fixtures/BoxStoragePolicy/Get_A_Storage_Policy_200.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "storage_policy", - "id": "11", - "name": "AWS Frankfurt / AWS Dublin with in region Uploads/Downloads/Previews" -} diff --git a/src/test/Fixtures/BoxStoragePolicy/Get_All_Storage_Policies_200.json b/src/test/Fixtures/BoxStoragePolicy/Get_All_Storage_Policies_200.json deleted file mode 100644 index 2658627cb..000000000 --- a/src/test/Fixtures/BoxStoragePolicy/Get_All_Storage_Policies_200.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "next_marker": null, - "limit": 1000, - "entries": [ - { - "type": "storage_policy", - "id": "11", - "name": "AWS Montreal / AWS Dublin" - }, - { - "type": "storage_policy", - "id": "22", - "name": "AWS Frankfurt / AWS Dublin with in region Uploads/Downloads/Previews" - }, - { - "type": "storage_policy", - "id": "33", - "name": "US" - } - ] -} diff --git a/src/test/Fixtures/BoxStoragePolicy/Get_Storage_Policy_Assignments_200.json b/src/test/Fixtures/BoxStoragePolicy/Get_Storage_Policy_Assignments_200.json deleted file mode 100644 index 364b8ee45..000000000 --- a/src/test/Fixtures/BoxStoragePolicy/Get_Storage_Policy_Assignments_200.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "next_marker": null, - "limit": 1, - "entries": [ - { - "type": "storage_policy_assignment", - "id": "12345", - "storage_policy": { - "type": "storage_policy", - "id": "11" - }, - "assigned_to": { - "type": "enterprise", - "id": "22" - } - } - ] -} diff --git a/src/test/Fixtures/BoxTask/CreateATaskWithActionComplete200.json b/src/test/Fixtures/BoxTask/CreateATaskWithActionComplete200.json deleted file mode 100644 index 3971c753b..000000000 --- a/src/test/Fixtures/BoxTask/CreateATaskWithActionComplete200.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "type": "task", - "id": "12345", - "item": { - "type": "file", - "id": "1111", - "file_version": { - "type": "file_version", - "id": "304867920258", - "sha1": "7ea91497ad7351d80f3a8439ae3d89dcc2675d27" - }, - "sequence_id": "2", - "etag": "2", - "sha1": "7ea91497ad7351d80f3a8439ae3d89dcc2675d27", - "name": "Sample.pdf" - }, - "due_at": null, - "action": "complete", - "message": "New Message", - "completion_rule": "all_assignees", - "task_assignment_collection": { - "total_count": 0, - "entries": [] - }, - "is_completed": false, - "created_by": { - "type": "user", - "id": "2222", - "name": "Test User", - "login": "test@user.com" - }, - "created_at": "2018-04-26T17:02:45-07:00" -} diff --git a/src/test/Fixtures/BoxTask/CreateTaskAssignment201.json b/src/test/Fixtures/BoxTask/CreateTaskAssignment201.json deleted file mode 100644 index 8d28e60b7..000000000 --- a/src/test/Fixtures/BoxTask/CreateTaskAssignment201.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "task_assignment", - "id": "12345", - "item": { - "type": "file", - "id": "22222", - "file_version": { - "type": "file_version", - "id": "222220", - "sha1": "6afc05eae22e994f1c7dd48e58f8895dd9028223" - }, - "sequence_id": "0", - "etag": "0", - "sha1": "6afc05eae22e994f1c7dd48e58f8895dd9028223", - "name": "Copied file.txt" - }, - "assigned_to": { - "type": "user", - "id": "33333", - "name": "Test User", - "login": "testuser@example.com" - }, - "message": "", - "completed_at": null, - "assigned_at": "2018-04-26T19:12:18-07:00", - "reminded_at": null, - "resolution_state": "incomplete", - "assigned_by": { - "type": "user", - "id": "33333", - "name": "Test User", - "login": "testuser@example.com" - }, - "status": "incomplete" -} diff --git a/src/test/Fixtures/BoxTask/CreateTaskOnFile201.json b/src/test/Fixtures/BoxTask/CreateTaskOnFile201.json deleted file mode 100644 index 298d0fb5f..000000000 --- a/src/test/Fixtures/BoxTask/CreateTaskOnFile201.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "type": "task", - "id": "12345", - "item": { - "type": "file", - "id": "1111", - "file_version": { - "type": "file_version", - "id": "304867920258", - "sha1": "7ea91497ad7351d80f3a8439ae3d89dcc2675d27" - }, - "sequence_id": "2", - "etag": "2", - "sha1": "7ea91497ad7351d80f3a8439ae3d89dcc2675d27", - "name": "Sample.pdf" - }, - "due_at": null, - "action": "review", - "message": "Please Review", - "completion_rule": "all_assignees", - "task_assignment_collection": { - "total_count": 0, - "entries": [] - }, - "is_completed": false, - "created_by": { - "type": "user", - "id": "11111", - "name": "Test User", - "login": "test@user.com" - }, - "created_at": "2018-04-26T17:02:45-07:00" -} diff --git a/src/test/Fixtures/BoxTask/GetATaskOnFile200.json b/src/test/Fixtures/BoxTask/GetATaskOnFile200.json deleted file mode 100644 index ef96ab354..000000000 --- a/src/test/Fixtures/BoxTask/GetATaskOnFile200.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "type": "task", - "id": "12345", - "item": { - "type": "file", - "id": "1111", - "file_version": { - "type": "file_version", - "id": "304867920258", - "sha1": "7ea91497ad7351d80f3a8439ae3d89dcc2675d27" - }, - "sequence_id": "2", - "etag": "2", - "sha1": "7ea91497ad7351d80f3a8439ae3d89dcc2675d27", - "name": "Sample.pdf" - }, - "due_at": null, - "action": "review", - "message": "Please Review", - "task_assignment_collection": { - "total_count": 0, - "entries": [] - }, - "is_completed": false, - "created_by": { - "type": "user", - "id": "2222", - "name": "Test User", - "login": "test@user.com" - }, - "created_at": "2018-04-26T17:02:45-07:00" -} diff --git a/src/test/Fixtures/BoxTask/GetAllTaskAssignments200.json b/src/test/Fixtures/BoxTask/GetAllTaskAssignments200.json deleted file mode 100644 index 61dcf3c74..000000000 --- a/src/test/Fixtures/BoxTask/GetAllTaskAssignments200.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "total_count": 1, - "entries": [ - { - "type": "task_assignment", - "id": "12345", - "item": { - "type": "file", - "id": "22222", - "file_version": { - "type": "file_version", - "id": "222220", - "sha1": "6afc05eae22e994f1c7dd48e58f8895dd9028223" - }, - "sequence_id": "0", - "etag": "0", - "sha1": "6afc05eae22e994f1c7dd48e58f8895dd9028223", - "name": "Copied file.txt" - }, - "assigned_to": { - "type": "user", - "id": "33333", - "name": "Test User", - "login": "testuser@example.com" - } - } - ] -} diff --git a/src/test/Fixtures/BoxTask/GetAllTasksOnFile200.json b/src/test/Fixtures/BoxTask/GetAllTasksOnFile200.json deleted file mode 100644 index 3c8cd8080..000000000 --- a/src/test/Fixtures/BoxTask/GetAllTasksOnFile200.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "total_count": 1, - "entries": [ - { - "type": "task", - "id": "12345", - "item": { - "type": "file", - "id": "1111", - "file_version": { - "type": "file_version", - "id": "304867920258", - "sha1": "7ea91497ad7351d80f3a8439ae3d89dcc2675d27" - }, - "sequence_id": "2", - "etag": "2", - "sha1": "7ea91497ad7351d80f3a8439ae3d89dcc2675d27", - "name": "Sample.pdf" - }, - "due_at": "2019-05-01T00:00:00Z" - } - ] -} diff --git a/src/test/Fixtures/BoxTask/GetStatusOnTaskAssignment200.json b/src/test/Fixtures/BoxTask/GetStatusOnTaskAssignment200.json deleted file mode 100644 index d4250094e..000000000 --- a/src/test/Fixtures/BoxTask/GetStatusOnTaskAssignment200.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "task_assignment", - "id": "12345", - "item": { - "type": "file", - "id": "11111", - "file_version": { - "type": "file_version", - "id": "22222", - "sha1": "8d0988e6ea5b310c529df6a8dcf3066815c6d218" - }, - "sequence_id": "1", - "etag": "1", - "sha1": "8d0988e6ea5b310c529df6a8dcf3066815c6d218", - "name": "test.jpg" - }, - "assigned_to": { - "type": "user", - "id": "33333", - "name": "Test User", - "login": "test@example.com" - }, - "message": "", - "completed_at": null, - "assigned_at": "2018-07-10T13:24:06-07:00", - "reminded_at": null, - "resolution_state": "incomplete", - "assigned_by": { - "type": "user", - "id": "33333", - "name": "Test User", - "login": "test@example.com" - }, - "status": "incomplete" -} diff --git a/src/test/Fixtures/BoxTask/GetTaskAssignment200.json b/src/test/Fixtures/BoxTask/GetTaskAssignment200.json deleted file mode 100644 index abf42f0d1..000000000 --- a/src/test/Fixtures/BoxTask/GetTaskAssignment200.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "task_assignment", - "id": "12345", - "item": { - "type": "file", - "id": "22222", - "file_version": { - "type": "file_version", - "id": "222220", - "sha1": "6afc05eae22e994f1c7dd48e58f8895dd9028223" - }, - "sequence_id": "0", - "etag": "0", - "sha1": "6afc05eae22e994f1c7dd48e58f8895dd9028223", - "name": "Copied file.txt" - }, - "assigned_to": { - "type": "user", - "id": "33333", - "name": "Test User", - "login": "testuser@example.com" - }, - "message": "", - "completed_at": null, - "assigned_at": "2018-04-26T19:12:18-07:00", - "reminded_at": null, - "resolution_state": "incomplete", - "assigned_by": { - "type": "user", - "id": "33333", - "name": "Test User", - "login": "testuser@example.com" - } -} diff --git a/src/test/Fixtures/BoxTask/GetTaskInfo200.json b/src/test/Fixtures/BoxTask/GetTaskInfo200.json deleted file mode 100644 index abb4d076e..000000000 --- a/src/test/Fixtures/BoxTask/GetTaskInfo200.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "type": "task", - "id": "12345", - "item": { - "type": "file", - "id": "11111", - "file_version": { - "type": "file_version", - "id": "22222", - "sha1": "0bbd79a106c504f99573e3799756debba4c760cd" - }, - "sequence_id": "0", - "etag": "0", - "sha1": "0bbd79a106c504f99573e3799756debba4c760cd", - "name": "test_file.txt" - }, - "due_at": "2014-04-03T11:09:43-07:00", - "action": "review_random_string", - "message": "Please Review", - "task_assignment_collection": { - "total_count": 0, - "entries": [] - }, - "is_completed": false, - "created_by": { - "type": "user", - "id": "222222", - "name": "Test User", - "login": "test@user.com" - }, - "created_at": "2013-04-03T11:12:54-07:00" -} diff --git a/src/test/Fixtures/BoxTask/UpdateATaskAssignmentInfo200.json b/src/test/Fixtures/BoxTask/UpdateATaskAssignmentInfo200.json deleted file mode 100644 index ced38317e..000000000 --- a/src/test/Fixtures/BoxTask/UpdateATaskAssignmentInfo200.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "task_assignment", - "id": "12345", - "item": { - "type": "file", - "id": "22222", - "file_version": { - "type": "file_version", - "id": "222220", - "sha1": "6afc05eae22e994f1c7dd48e58f8895dd9028223" - }, - "sequence_id": "0", - "etag": "0", - "sha1": "6afc05eae22e994f1c7dd48e58f8895dd9028223", - "name": "Copied file.txt" - }, - "assigned_to": { - "type": "user", - "id": "33333", - "name": "Test User", - "login": "testuser@example.com" - }, - "message": "Looks good to me!", - "completed_at": "2018-04-26T19:26:23-07:00", - "assigned_at": "2018-04-26T19:12:18-07:00", - "reminded_at": null, - "resolution_state": "completed", - "assigned_by": { - "type": "user", - "id": "33333", - "name": "Test User", - "login": "testuser@example.com" - } -} diff --git a/src/test/Fixtures/BoxTask/UpdateATaskInfo200.json b/src/test/Fixtures/BoxTask/UpdateATaskInfo200.json deleted file mode 100644 index a63c34ac8..000000000 --- a/src/test/Fixtures/BoxTask/UpdateATaskInfo200.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "type": "task", - "id": "12345", - "item": { - "type": "file", - "id": "1111", - "file_version": { - "type": "file_version", - "id": "304867920258", - "sha1": "7ea91497ad7351d80f3a8439ae3d89dcc2675d27" - }, - "sequence_id": "2", - "etag": "2", - "sha1": "7ea91497ad7351d80f3a8439ae3d89dcc2675d27", - "name": "Sample.pdf" - }, - "due_at": null, - "action": "review", - "message": "New Message", - "completion_rule": "all_assignees", - "task_assignment_collection": { - "total_count": 0, - "entries": [] - }, - "is_completed": false, - "created_by": { - "type": "user", - "id": "2222", - "name": "Test User", - "login": "test@user.com" - }, - "created_at": "2018-04-26T17:02:45-07:00" -} diff --git a/src/test/Fixtures/BoxTermsOfService/GetATermsOfServiceInfo200.json b/src/test/Fixtures/BoxTermsOfService/GetATermsOfServiceInfo200.json deleted file mode 100644 index 4e1516ef1..000000000 --- a/src/test/Fixtures/BoxTermsOfService/GetATermsOfServiceInfo200.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "terms_of_service", - "id": "12345", - "status": "disabled", - "enterprise": { - "type": "enterprise", - "id": "1111", - "name": "Test" - }, - "tos_type": "managed", - "text": "", - "created_at": "2015-06-03T18:01:29-07:00", - "modified_at": "2018-04-18T17:44:10-07:00" -} diff --git a/src/test/Fixtures/BoxTermsOfService/GetAllTermsOfServices200.json b/src/test/Fixtures/BoxTermsOfService/GetAllTermsOfServices200.json deleted file mode 100644 index 78ca7c8cb..000000000 --- a/src/test/Fixtures/BoxTermsOfService/GetAllTermsOfServices200.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "total_count": 2, - "entries": [ - { - "type": "terms_of_service", - "id": "12345", - "status": "disabled", - "enterprise": { - "type": "enterprise", - "id": "1111", - "name": "Test" - }, - "tos_type": "managed", - "text": "", - "created_at": "2015-06-03T18:01:29-07:00", - "modified_at": "2018-04-18T17:44:10-07:00" - }, - { - "type": "terms_of_service", - "id": "42343", - "status": "disabled", - "enterprise": { - "type": "enterprise", - "id": "2222", - "name": "Test" - }, - "tos_type": "external", - "text": "Example Terms Of Service Text.", - "created_at": "2015-06-03T18:01:29-07:00", - "modified_at": "2017-10-25T11:20:45-07:00" - } - ] -} diff --git a/src/test/Fixtures/BoxTermsOfService/GetTermsOfServiceForUserStatuses200.json b/src/test/Fixtures/BoxTermsOfService/GetTermsOfServiceForUserStatuses200.json deleted file mode 100644 index 6f62c77e5..000000000 --- a/src/test/Fixtures/BoxTermsOfService/GetTermsOfServiceForUserStatuses200.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "total_count": 1, - "entries": [ - { - "type": "terms_of_service_user_status", - "id": "5678", - "tos": { - "type": "terms_of_service", - "id": "1234" - }, - "user": { - "type": "user", - "id": "7777", - "name": "Test User", - "login": "test@example.com" - }, - "is_accepted": true, - "created_at": "2015-06-03T18:01:31-07:00", - "modified_at": "2017-11-01T13:39:36-07:00" - } - ] -} diff --git a/src/test/Fixtures/BoxTrash/GetAllTrashItems200.json b/src/test/Fixtures/BoxTrash/GetAllTrashItems200.json deleted file mode 100644 index 33eb538b8..000000000 --- a/src/test/Fixtures/BoxTrash/GetAllTrashItems200.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "total_count": 21, - "entries": [ - { - "type": "folder", - "id": "12345", - "sequence_id": "1", - "etag": "1", - "name": "Test Folder" - }, - { - "type": "file", - "id": "32343", - "file_version": { - "type": "file_version", - "id": "1111", - "sha1": "83348a9c7c6772d3c2b836adf16772ccd3545f49" - }, - "sequence_id": "1", - "etag": "1", - "sha1": "83348a9c7c6772d3c2b836adf16772ccd3545f49", - "name": "File.pdf" - } - ], - "offset": 0, - "limit": 100, - "order": [ - { - "by": "type", - "direction": "ASC" - }, - { - "by": "name", - "direction": "ASC" - } - ] -} diff --git a/src/test/Fixtures/BoxTrash/GetAllTrashItemsUsingmarker200.json b/src/test/Fixtures/BoxTrash/GetAllTrashItemsUsingmarker200.json deleted file mode 100644 index 402fbc448..000000000 --- a/src/test/Fixtures/BoxTrash/GetAllTrashItemsUsingmarker200.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "entries": [ - { - "type": "folder", - "id": "12345", - "sequence_id": "1", - "etag": "1", - "name": "Test Folder" - }, - { - "type": "file", - "id": "32343", - "file_version": { - "type": "file_version", - "id": "1111", - "sha1": "83348a9c7c6772d3c2b836adf16772ccd3545f49" - }, - "sequence_id": "1", - "etag": "1", - "sha1": "83348a9c7c6772d3c2b836adf16772ccd3545f49", - "name": "File.pdf" - } - ], - "limit": 500, - "next_marker": "eyJ0eXBlIjoiT3duZWRCeUZpbGUiLCJkaXIiOiJuZXh0IiwidGFpbCI6ImV5SjJhV1YzVTJOdmNHVWlPaUpoYkd3aUxDSnNZWE4wU1dRaU9qazFNRFUwTlRVMU9UZzBNbjAifQ" -} \ No newline at end of file diff --git a/src/test/Fixtures/BoxTrash/GetTrashedFileItemInfo200.json b/src/test/Fixtures/BoxTrash/GetTrashedFileItemInfo200.json deleted file mode 100644 index 71e52067b..000000000 --- a/src/test/Fixtures/BoxTrash/GetTrashedFileItemInfo200.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "type": "file", - "id": "12345", - "file_version": { - "type": "file_version", - "id": "259642100187", - "sha1": "83348a9c7c6772d3c2b836adf16772ccd3545f49" - }, - "sequence_id": "1", - "etag": "1", - "sha1": "83348a9c7c6772d3c2b836adf16772ccd3545f49", - "name": "File.pdf", - "description": "", - "size": 60023, - "path_collection": { - "total_count": 1, - "entries": [ - { - "type": "folder", - "id": "1", - "sequence_id": null, - "etag": null, - "name": "Trash" - } - ] - }, - "created_at": "2017-11-09T16:26:51-08:00", - "modified_at": "2018-04-09T13:22:31-07:00", - "trashed_at": "2018-04-09T13:14:44-07:00", - "purged_at": null, - "content_created_at": "2017-10-18T18:53:51-07:00", - "content_modified_at": "2017-10-18T18:53:51-07:00", - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "modified_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "owned_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "shared_link": null, - "parent": { - "type": "folder", - "id": "41708454327", - "sequence_id": "0", - "etag": "0", - "name": "sdk_test" - }, - "item_status": "trashed" -} diff --git a/src/test/Fixtures/BoxTrash/GetTrashedFolderItemInfo200.json b/src/test/Fixtures/BoxTrash/GetTrashedFolderItemInfo200.json deleted file mode 100644 index 450b2ffc4..000000000 --- a/src/test/Fixtures/BoxTrash/GetTrashedFolderItemInfo200.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "type": "folder", - "id": "12345", - "sequence_id": "1", - "etag": "1", - "name": "Another retention test", - "created_at": "2018-04-09T14:37:57-07:00", - "modified_at": "2018-04-09T14:38:32-07:00", - "description": "", - "size": 438370, - "path_collection": { - "total_count": 1, - "entries": [ - { - "type": "folder", - "id": "1", - "sequence_id": null, - "etag": null, - "name": "Trash" - } - ] - }, - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "modified_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "trashed_at": "2018-04-09T17:15:43-07:00", - "purged_at": "2018-05-09T17:15:43-07:00", - "content_created_at": "2018-04-09T14:37:57-07:00", - "content_modified_at": "2018-04-09T14:38:32-07:00", - "owned_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "shared_link": null, - "folder_upload_email": null, - "parent": { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - }, - "item_status": "trashed" -} diff --git a/src/test/Fixtures/BoxTrash/RestoreFileItemFromTrash201.json b/src/test/Fixtures/BoxTrash/RestoreFileItemFromTrash201.json deleted file mode 100644 index 3ef8493a7..000000000 --- a/src/test/Fixtures/BoxTrash/RestoreFileItemFromTrash201.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "type": "file", - "id": "12345", - "file_version": { - "type": "file_version", - "id": "259642100187", - "sha1": "83348a9c7c6772d3c2b836adf16772ccd3545f49" - }, - "sequence_id": "2", - "etag": "2", - "sha1": "83348a9c7c6772d3c2b836adf16772ccd3545f49", - "name": "File.pdf", - "description": "", - "size": 60023, - "path_collection": { - "total_count": 2, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - }, - { - "type": "folder", - "id": "1111", - "sequence_id": "0", - "etag": "0", - "name": "Test Folder" - } - ] - }, - "created_at": "2017-11-09T16:26:51-08:00", - "modified_at": "2018-04-09T13:22:31-07:00", - "trashed_at": null, - "purged_at": null, - "content_created_at": "2017-10-18T18:53:51-07:00", - "content_modified_at": "2017-10-18T18:53:51-07:00", - "created_by": { - "type": "user", - "id": "2222", - "name": "Test User", - "login": "test@user.com" - }, - "modified_by": { - "type": "user", - "id": "2222", - "name": "Test User", - "login": "test@user.com" - }, - "owned_by": { - "type": "user", - "id": "2222", - "name": "Test User", - "login": "test@user.com" - }, - "shared_link": null, - "parent": { - "type": "folder", - "id": "1111", - "sequence_id": "0", - "etag": "0", - "name": "Test Folder" - }, - "item_status": "active" -} diff --git a/src/test/Fixtures/BoxTrash/RestoreFolderItemFromTrash201.json b/src/test/Fixtures/BoxTrash/RestoreFolderItemFromTrash201.json deleted file mode 100644 index 3cf59433d..000000000 --- a/src/test/Fixtures/BoxTrash/RestoreFolderItemFromTrash201.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "type": "folder", - "id": "12345", - "sequence_id": "2", - "etag": "2", - "name": "Test Folder", - "created_at": "2018-04-09T14:37:57-07:00", - "modified_at": "2018-04-09T14:38:32-07:00", - "description": "", - "size": 438370, - "path_collection": { - "total_count": 1, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - } - ] - }, - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "modified_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "trashed_at": null, - "purged_at": null, - "content_created_at": "2018-04-09T14:37:57-07:00", - "content_modified_at": "2018-04-09T14:38:32-07:00", - "owned_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "shared_link": null, - "folder_upload_email": null, - "parent": { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - }, - "item_status": "active" -} diff --git a/src/test/Fixtures/BoxUser/CreateAppUser201.json b/src/test/Fixtures/BoxUser/CreateAppUser201.json deleted file mode 100644 index 165285c5e..000000000 --- a/src/test/Fixtures/BoxUser/CreateAppUser201.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "user", - "id": "12345", - "name": "Java SDK App User", - "login": "testuser@boxdevedition.com", - "created_at": "2018-04-25T13:51:04-07:00", - "modified_at": "2018-04-25T13:51:04-07:00", - "language": "en", - "timezone": "America/Los_Angeles", - "space_amount": 10737418240, - "space_used": 0, - "max_upload_size": 16106127360, - "status": "active", - "job_title": "", - "phone": "", - "address": "", - "avatar_url": "https://test.app.box.com/api/avatar/large/12345" -} diff --git a/src/test/Fixtures/BoxUser/CreateEmailAlias201.json b/src/test/Fixtures/BoxUser/CreateEmailAlias201.json deleted file mode 100644 index dc149b03d..000000000 --- a/src/test/Fixtures/BoxUser/CreateEmailAlias201.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "type": "email_alias", - "id": "12345", - "is_confirmed": true, - "email": "test@user.com" -} diff --git a/src/test/Fixtures/BoxUser/CreateManagedUser201.json b/src/test/Fixtures/BoxUser/CreateManagedUser201.json deleted file mode 100644 index dc5693208..000000000 --- a/src/test/Fixtures/BoxUser/CreateManagedUser201.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "user", - "id": "12345", - "name": "Test Managed User", - "login": "test@user.com", - "created_at": "2018-04-25T14:28:20-07:00", - "modified_at": "2018-04-25T14:28:20-07:00", - "language": "en", - "timezone": "America/Los_Angeles", - "space_amount": 10737418240, - "space_used": 0, - "max_upload_size": 16106127360, - "status": "active", - "job_title": "", - "phone": "", - "address": "", - "avatar_url": "https://test.app.box.com/api/avatar/large/12345" -} diff --git a/src/test/Fixtures/BoxUser/CreateTrackingCodes200.json b/src/test/Fixtures/BoxUser/CreateTrackingCodes200.json deleted file mode 100644 index 9df66dda8..000000000 --- a/src/test/Fixtures/BoxUser/CreateTrackingCodes200.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "user", - "id": "12345", - "tracking_codes": [ - { - "type": "tracking_code", - "name": "Employee ID", - "value": "12345" - }, - { - "type": "tracking_code", - "name": "Department ID", - "value": "8675" - } - ] -} diff --git a/src/test/Fixtures/BoxUser/GetAllEnterpriseUsers200.json b/src/test/Fixtures/BoxUser/GetAllEnterpriseUsers200.json deleted file mode 100644 index 0669d4967..000000000 --- a/src/test/Fixtures/BoxUser/GetAllEnterpriseUsers200.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "total_count": 111, - "entries": [ - { - "type": "user", - "id": "12345", - "name": "Test User", - "login": "test@user.com", - "created_at": "2015-06-02T11:08:09-07:00", - "modified_at": "2015-06-02T11:08:09-07:00", - "language": "en", - "timezone": "America/Los_Angeles", - "space_amount": 10737418240, - "space_used": 0, - "max_upload_size": 16106127360, - "status": "active", - "job_title": "", - "phone": "", - "address": "", - "avatar_url": "https://test.app.box.com/api/avatar/large/12345" - }, - { - "type": "user", - "id": "43242", - "name": "Example User", - "login": "example@user.com", - "created_at": "2016-09-20T10:58:18-07:00", - "modified_at": "2017-11-27T13:30:53-08:00", - "language": "en", - "timezone": "America/Los_Angeles", - "space_amount": 10737418240, - "space_used": 0, - "max_upload_size": 16106127360, - "status": "active", - "job_title": "", - "phone": "", - "address": "", - "avatar_url": "https://test.app.box.com/api/avatar/large/43242" - } - ], - "limit": 100, - "offset": 0 -} diff --git a/src/test/Fixtures/BoxUser/GetAllEnterpriseUsersMarkerPagination200.json b/src/test/Fixtures/BoxUser/GetAllEnterpriseUsersMarkerPagination200.json deleted file mode 100644 index f80d8d39e..000000000 --- a/src/test/Fixtures/BoxUser/GetAllEnterpriseUsersMarkerPagination200.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "entries": [ - { - "type": "user", - "id": "12345", - "name": "Test User", - "login": "test@user.com", - "created_at": "2015-06-02T11:08:09-07:00", - "modified_at": "2015-06-02T11:08:09-07:00", - "language": "en", - "timezone": "America/Los_Angeles", - "space_amount": 10737418240, - "space_used": 0, - "max_upload_size": 16106127360, - "status": "active", - "job_title": "", - "phone": "", - "address": "", - "avatar_url": "https://test.app.box.com/api/avatar/large/12345" - }, - { - "type": "user", - "id": "43242", - "name": "Example User", - "login": "example@user.com", - "created_at": "2016-09-20T10:58:18-07:00", - "modified_at": "2017-11-27T13:30:53-08:00", - "language": "en", - "timezone": "America/Los_Angeles", - "space_amount": 10737418240, - "space_used": 0, - "max_upload_size": 16106127360, - "status": "active", - "job_title": "", - "phone": "", - "address": "", - "avatar_url": "https://test.app.box.com/api/avatar/large/43242" - } - ], - "limit": 100, - "next_marker": "eyJ0eXBlIWQiLfdsebwOiJuZXh0IiwidGFpbCI6IjEwOTMxOTE4MDc2In0" -} diff --git a/src/test/Fixtures/BoxUser/GetCurrentUserInfo200.json b/src/test/Fixtures/BoxUser/GetCurrentUserInfo200.json deleted file mode 100644 index 5a64158f4..000000000 --- a/src/test/Fixtures/BoxUser/GetCurrentUserInfo200.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "type": "user", - "id": "12345", - "name": "Test User", - "login": "test@user.com", - "created_at": "2015-04-09T12:32:40-07:00", - "modified_at": "2018-04-25T11:00:20-07:00", - "language": "en", - "timezone": "America/Los_Angeles", - "space_amount": 1000000000000000, - "space_used": 22392578035, - "max_upload_size": 16106127360, - "status": "active", - "job_title": "", - "phone": "1111111111", - "address": "", - "avatar_url": "https://test.app.box.com/api/avatar/large/12345", - "notification_email": { - "email": "notifications@example.com", - "is_confirmed": true - } -} diff --git a/src/test/Fixtures/BoxUser/GetCurrentUserInfoWithNoNotifcationEmail200.json b/src/test/Fixtures/BoxUser/GetCurrentUserInfoWithNoNotifcationEmail200.json deleted file mode 100644 index d6e8983d4..000000000 --- a/src/test/Fixtures/BoxUser/GetCurrentUserInfoWithNoNotifcationEmail200.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "user", - "id": "12345", - "name": "Test User", - "login": "test@user.com", - "created_at": "2015-04-09T12:32:40-07:00", - "modified_at": "2018-04-25T11:00:20-07:00", - "language": "en", - "timezone": "America/Los_Angeles", - "space_amount": 1000000000000000, - "space_used": 22392578035, - "max_upload_size": 16106127360, - "status": "active", - "job_title": "", - "phone": "1111111111", - "address": "", - "avatar_url": "https://test.app.box.com/api/avatar/large/12345", - "notification_email": [] -} diff --git a/src/test/Fixtures/BoxUser/GetUserEmailAlias200.json b/src/test/Fixtures/BoxUser/GetUserEmailAlias200.json deleted file mode 100644 index ede4e2693..000000000 --- a/src/test/Fixtures/BoxUser/GetUserEmailAlias200.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "total_count": 1, - "entries": [ - { - "type": "email_alias", - "id": "12345", - "is_confirmed": true, - "email": "test@user.com" - } - ] -} diff --git a/src/test/Fixtures/BoxUser/GetUserInfoCausesDeserializationException.json b/src/test/Fixtures/BoxUser/GetUserInfoCausesDeserializationException.json deleted file mode 100644 index 03d1b6354..000000000 --- a/src/test/Fixtures/BoxUser/GetUserInfoCausesDeserializationException.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "user", - "id": "12345", - "name": "Test User", - "login": "test@user.com", - "created_at": "2015-04-09T12:32:40-07:00", - "modified_at": "2018-04-25T11:00:20-07:00", - "language": "en", - "timezone": "America/Los_Angeles", - "space_amount": 1000000000000000, - "space_used": 22392578035, - "max_upload_size": 16106127360, - "status": "active", - "job_title": "", - "phone": 11111111, - "address": "", - "avatar_url": "https://test.app.box.com/api/avatar/large/12345" -} diff --git a/src/test/Fixtures/BoxUser/GetUserThreeTrackingCodes200.json b/src/test/Fixtures/BoxUser/GetUserThreeTrackingCodes200.json deleted file mode 100644 index e395bd53a..000000000 --- a/src/test/Fixtures/BoxUser/GetUserThreeTrackingCodes200.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "user", - "id": "12345", - "tracking_codes": [ - { - "type": "tracking_code", - "name": "Employee ID", - "value": "12345" - }, - { - "type": "tracking_code", - "name": "Department ID", - "value": "8675" - }, - { - "type": "tracking_code", - "name": "Company ID", - "value": "1701" - } - ] -} diff --git a/src/test/Fixtures/BoxUser/GetUserTwoTrackingCodes200.json b/src/test/Fixtures/BoxUser/GetUserTwoTrackingCodes200.json deleted file mode 100644 index 9df66dda8..000000000 --- a/src/test/Fixtures/BoxUser/GetUserTwoTrackingCodes200.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "user", - "id": "12345", - "tracking_codes": [ - { - "type": "tracking_code", - "name": "Employee ID", - "value": "12345" - }, - { - "type": "tracking_code", - "name": "Department ID", - "value": "8675" - } - ] -} diff --git a/src/test/Fixtures/BoxUser/UpdateTrackingCodes200.json b/src/test/Fixtures/BoxUser/UpdateTrackingCodes200.json deleted file mode 100644 index e395bd53a..000000000 --- a/src/test/Fixtures/BoxUser/UpdateTrackingCodes200.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "user", - "id": "12345", - "tracking_codes": [ - { - "type": "tracking_code", - "name": "Employee ID", - "value": "12345" - }, - { - "type": "tracking_code", - "name": "Department ID", - "value": "8675" - }, - { - "type": "tracking_code", - "name": "Company ID", - "value": "1701" - } - ] -} diff --git a/src/test/Fixtures/BoxUser/UpdateUserInfo200.json b/src/test/Fixtures/BoxUser/UpdateUserInfo200.json deleted file mode 100644 index eaaeaac17..000000000 --- a/src/test/Fixtures/BoxUser/UpdateUserInfo200.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "user", - "id": "12345", - "name": "New User Name", - "login": "new@test.com", - "created_at": "2018-04-25T15:55:05-07:00", - "modified_at": "2018-04-25T15:55:05-07:00", - "language": "en", - "timezone": "America/Los_Angeles", - "space_amount": 10737418240, - "space_used": 0, - "max_upload_size": 16106127360, - "status": "active", - "job_title": "Example Job", - "phone": "650-123-4567", - "address": "Test Address", - "avatar_url": "https://test.app.box.com/api/avatar/large/12345" -} diff --git a/src/test/Fixtures/BoxUser/small_avatar.png b/src/test/Fixtures/BoxUser/small_avatar.png deleted file mode 100644 index 1914264c08781d1f30ee0b8482bccf44586f2dc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j3CU&3?x-=hn)ga%mF?ju0VQumF+E%TuG2$FoVOh l8)-lem#2$k2*>s01R$Gz9%CSj!PC{xWt~$(697H@6ZHT9 diff --git a/src/test/Fixtures/BoxWatermark/CreateWatermarkOnFile200.json b/src/test/Fixtures/BoxWatermark/CreateWatermarkOnFile200.json deleted file mode 100644 index 152eec5c1..000000000 --- a/src/test/Fixtures/BoxWatermark/CreateWatermarkOnFile200.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "watermark": { - "created_at": "2018-04-24T17:01:11-07:00", - "modified_at": "2018-04-24T17:01:11-07:00" - } -} diff --git a/src/test/Fixtures/BoxWatermark/CreateWatermarkOnFolder200.json b/src/test/Fixtures/BoxWatermark/CreateWatermarkOnFolder200.json deleted file mode 100644 index d0cd618e7..000000000 --- a/src/test/Fixtures/BoxWatermark/CreateWatermarkOnFolder200.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "watermark": { - "created_at": "2018-04-24T16:30:07-07:00", - "modified_at": "2018-04-24T16:30:07-07:00" - } -} diff --git a/src/test/Fixtures/BoxWebLink/CreateWebLinkOnFolder201.json b/src/test/Fixtures/BoxWebLink/CreateWebLinkOnFolder201.json deleted file mode 100644 index da8f80586..000000000 --- a/src/test/Fixtures/BoxWebLink/CreateWebLinkOnFolder201.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "type": "web_link", - "id": "12345", - "sequence_id": "0", - "etag": "0", - "name": "example.com", - "url": "https://example.com", - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "created_at": "2018-04-24T17:33:40-07:00", - "modified_at": "2018-04-24T17:33:40-07:00", - "parent": { - "type": "folder", - "id": "2222", - "sequence_id": "0", - "etag": "0", - "name": "Test Folder" - }, - "description": "This goes to an example page", - "item_status": "active", - "trashed_at": null, - "purged_at": null, - "shared_link": null, - "path_collection": { - "total_count": 2, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - }, - { - "type": "folder", - "id": "2222", - "sequence_id": "0", - "etag": "0", - "name": "Test Folder" - } - ] - }, - "modified_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "owned_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - } -} diff --git a/src/test/Fixtures/BoxWebLink/GetWebLinkOnFolder200.json b/src/test/Fixtures/BoxWebLink/GetWebLinkOnFolder200.json deleted file mode 100644 index 996d7420d..000000000 --- a/src/test/Fixtures/BoxWebLink/GetWebLinkOnFolder200.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "type": "web_link", - "id": "12345", - "sequence_id": "0", - "etag": "0", - "name": "google.com", - "url": "https://example.com", - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "created_at": "2018-04-24T17:33:40-07:00", - "modified_at": "2018-04-24T17:33:40-07:00", - "parent": { - "type": "folder", - "id": "2222", - "sequence_id": "0", - "etag": "0", - "name": "Example Folder" - }, - "description": "", - "item_status": "active", - "trashed_at": null, - "purged_at": null, - "shared_link": null, - "path_collection": { - "total_count": 2, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - }, - { - "type": "folder", - "id": "2222", - "sequence_id": "0", - "etag": "0", - "name": "Example Folder" - } - ] - }, - "modified_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "owned_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - } -} diff --git a/src/test/Fixtures/BoxWebLink/UpdateWebLinkOnFolder200.json b/src/test/Fixtures/BoxWebLink/UpdateWebLinkOnFolder200.json deleted file mode 100644 index 5ec18d4e3..000000000 --- a/src/test/Fixtures/BoxWebLink/UpdateWebLinkOnFolder200.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "type": "web_link", - "id": "12345", - "sequence_id": "1", - "etag": "1", - "name": "example.com", - "url": "https://example.com", - "created_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "created_at": "2018-04-24T17:33:40-07:00", - "modified_at": "2018-04-27T13:23:04-07:00", - "parent": { - "type": "folder", - "id": "2222", - "sequence_id": "0", - "etag": "0", - "name": "Example Folder" - }, - "description": "", - "item_status": "active", - "trashed_at": null, - "purged_at": null, - "shared_link": null, - "path_collection": { - "total_count": 2, - "entries": [ - { - "type": "folder", - "id": "0", - "sequence_id": null, - "etag": null, - "name": "All Files" - }, - { - "type": "folder", - "id": "2222", - "sequence_id": "0", - "etag": "0", - "name": "Example Folder" - } - ] - }, - "modified_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - }, - "owned_by": { - "type": "user", - "id": "1111", - "name": "Test User", - "login": "test@user.com" - } -} diff --git a/src/test/Fixtures/BoxWebhook/CreateWebhook201.json b/src/test/Fixtures/BoxWebhook/CreateWebhook201.json deleted file mode 100644 index ec933776b..000000000 --- a/src/test/Fixtures/BoxWebhook/CreateWebhook201.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "id": "12345", - "type": "webhook", - "target": { - "id": "1111", - "type": "folder" - }, - "created_by": { - "type": "user", - "id": "2222", - "name": "Test User", - "login": "test@user.com" - }, - "created_at": "2018-04-27T13:52:47-07:00", - "address": "https://example.com", - "triggers": [ - "FILE.LOCKED" - ] -} diff --git a/src/test/Fixtures/BoxWebhook/GetAllWebhooks200.json b/src/test/Fixtures/BoxWebhook/GetAllWebhooks200.json deleted file mode 100644 index a58c85068..000000000 --- a/src/test/Fixtures/BoxWebhook/GetAllWebhooks200.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "entries": [ - { - "id": "12345", - "type": "webhook", - "target": { - "id": "1111", - "type": "folder" - } - } - ], - "limit": 100 -} diff --git a/src/test/Fixtures/BoxWebhook/GetWebhook200.json b/src/test/Fixtures/BoxWebhook/GetWebhook200.json deleted file mode 100644 index ec933776b..000000000 --- a/src/test/Fixtures/BoxWebhook/GetWebhook200.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "id": "12345", - "type": "webhook", - "target": { - "id": "1111", - "type": "folder" - }, - "created_by": { - "type": "user", - "id": "2222", - "name": "Test User", - "login": "test@user.com" - }, - "created_at": "2018-04-27T13:52:47-07:00", - "address": "https://example.com", - "triggers": [ - "FILE.LOCKED" - ] -} diff --git a/src/test/Fixtures/BoxWebhook/UpdateWebhookInfo200.json b/src/test/Fixtures/BoxWebhook/UpdateWebhookInfo200.json deleted file mode 100644 index a220dbbe2..000000000 --- a/src/test/Fixtures/BoxWebhook/UpdateWebhookInfo200.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "id": "12345", - "type": "webhook", - "target": { - "id": "1111", - "type": "folder" - }, - "created_by": { - "type": "user", - "id": "2222", - "name": "Test User", - "login": "test@user.com" - }, - "created_at": "2018-04-27T14:42:28-07:00", - "address": "https://newexample.com", - "triggers": [ - "FILE.UPLOADED" - ] -} diff --git a/src/test/Fixtures/BoxZip/CreateZipFile202.json b/src/test/Fixtures/BoxZip/CreateZipFile202.json deleted file mode 100644 index 5a6703aac..000000000 --- a/src/test/Fixtures/BoxZip/CreateZipFile202.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "download_url": "https://api.box.com/zip_downloads/124hfiowk3fa8kmrwh/content", - "status_url": "https://api.box.com/zip_downloads/124hfiowk3fa8kmrwh/status", - "expires_at": "2018-04-25T11:00:18-07:00", - "name_conflicts": [ - [ - { - "id": "100", - "type": "file", - "original_name": "salary.pdf", - "download_name": "aqc823.pdf" - }, - { - "id": "200", - "type": "file", - "original_name": "salary.pdf", - "download_name": "aci23s.pdf" - } - ], - [ - { - "id": "1000", - "type": "folder", - "original_name": "employees", - "download_name": "3d366a_employees" - }, - { - "id": "2000", - "type": "folder", - "original_name": "employees", - "download_name": "3aa6a7_employees" - } - ] - ] -} diff --git a/src/test/config/config.json.template b/src/test/config/config.json.template deleted file mode 100644 index 74170c6db..000000000 --- a/src/test/config/config.json.template +++ /dev/null @@ -1,12 +0,0 @@ -{ - "boxAppSettings": { - "clientID": "", - "clientSecret": "", - "appAuth": { - "publicKeyID": "", - "privateKey": "", - "passphrase": "" - } - }, - "enterpriseID": "" -} \ No newline at end of file diff --git a/src/test/config/config.properties.template b/src/test/config/config.properties.template deleted file mode 100644 index b73270353..000000000 --- a/src/test/config/config.properties.template +++ /dev/null @@ -1,14 +0,0 @@ -# Remove the .template extension to this file to configure tests. The config.properties file should never be added to -# source control since it may contain sensitive information. - -# Set an auth token for a test account here in order to run integration tests. -accessToken = -refreshToken = -clientID = -clientSecret = -collaborator = -collaboratorID = -enterpriseID = - -# Transactional auth credentials -transactionalAccessToken = diff --git a/src/test/java/com/box/sdk/AcceptAllHostsVerifier.java b/src/test/java/com/box/sdk/AcceptAllHostsVerifier.java deleted file mode 100644 index f14243b9d..000000000 --- a/src/test/java/com/box/sdk/AcceptAllHostsVerifier.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.box.sdk; - -import javax.net.ssl.HostnameVerifier; -import javax.net.ssl.SSLSession; - -class AcceptAllHostsVerifier implements HostnameVerifier { - @Override - public boolean verify(String hostname, SSLSession session) { - return true; - } -} diff --git a/src/test/java/com/box/sdk/BoxAITest.java b/src/test/java/com/box/sdk/BoxAITest.java deleted file mode 100644 index fd6ad47ec..000000000 --- a/src/test/java/com/box/sdk/BoxAITest.java +++ /dev/null @@ -1,431 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -import java.text.ParseException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Date; -import java.util.List; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.equalTo; - -/** - * {@link BoxAI} related unit tests. - */ -public class BoxAITest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void testSendAIRequestSuccess() { - final String fileId = "12345"; - final String prompt = "What is the name of the file?"; - - String result = TestUtils.getFixture("BoxAI/SendAIRequest200"); - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo("/2.0/ai/ask")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxAIResponse response = BoxAI.sendAIRequest( - api, - prompt, - Collections.singletonList(new BoxAIItem(fileId, BoxAIItem.Type.FILE)), - BoxAI.Mode.SINGLE_ITEM_QA - ); - - assertThat( - response.getAnswer(), equalTo("Public APIs are important because of key and important reasons.") - ); - assertThat(response.getCreatedAt(), equalTo(new Date(1355338423123L))); - assertThat(response.getCompletionReason(), equalTo("done")); - } - - @Test - public void testSendAITexGenRequestWithNoDialogueHistorySuccess() { - final String fileId = "12345"; - final String prompt = "What is the name of the file?"; - String expectedRequestBody = String.format( - "{\"prompt\": \"%s\", \"items\": [{\"id\": \"%s\", \"type\": \"file\"}]}", prompt, fileId); - - String result = TestUtils.getFixture("BoxAI/SendAITextGen200"); - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo("/2.0/ai/text_gen")) - .withRequestBody(WireMock.equalToJson(expectedRequestBody)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxAIResponse response = BoxAI.sendAITextGenRequest( - api, - prompt, - Collections.singletonList(new BoxAIItem(fileId, BoxAIItem.Type.FILE)) - ); - - assertThat( - response.getAnswer(), equalTo("Public APIs are important because of key and important reasons.") - ); - assertThat(response.getCreatedAt(), equalTo(new Date(1355338423123L))); - assertThat(response.getCompletionReason(), equalTo("done")); - } - - @Test - public void testSendAITexGenRequestWithDialogueHistorySuccess() throws ParseException { - final String fileId = "12345"; - final String prompt = "What is the name of the file?"; - Date date1 = BoxDateFormat.parse("2021-01-01T00:00:00Z"); - Date date2 = BoxDateFormat.parse("2022-01-01T00:00:00Z"); - - List dialogueHistory = new ArrayList<>(); - dialogueHistory.add( - new BoxAIDialogueEntry("What is the name of the file?", "Test file", date1) - ); - dialogueHistory.add( - new BoxAIDialogueEntry("What is the size of the file?", "10kb", date2) - ); - - String expectedRequestBody = String.format( - "{\n" - + " \"prompt\": \"%s\",\n" - + " \"items\": [\n" - + " {\"id\": \"%s\", \"type\": \"file\"}\n" - + " ],\n" - + " \"dialogue_history\": [\n" - + " {\"prompt\": \"What is the name of the file?\", \"answer\": \"Test file\"," - + " \"created_at\" : \"2021-01-01T00:00:00Z\"},\n" - + " {\"prompt\": \"What is the size of the file?\", \"answer\": \"10kb\"," - + " \"created_at\" : \"2022-01-01T00:00:00Z\"}\n" - + " ]\n" - + "}", - prompt, fileId - ); - - - String result = TestUtils.getFixture("BoxAI/SendAITextGen200"); - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo("/2.0/ai/text_gen")) - .withRequestBody(WireMock.equalToJson(expectedRequestBody)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxAIResponse response = BoxAI.sendAITextGenRequest( - api, - prompt, - Collections.singletonList(new BoxAIItem(fileId, BoxAIItem.Type.FILE)), - dialogueHistory - ); - - assertThat( - response.getAnswer(), equalTo("Public APIs are important because of key and important reasons.") - ); - assertThat(response.getCreatedAt(), equalTo(new Date(1355338423123L))); - assertThat(response.getCompletionReason(), equalTo("done")); - } - - @Test - public void testSendAIRequestWithAgentSuccess() throws ParseException { - final String fileId = "12345"; - final String prompt = "What is the name of the file?"; - List dialogueHistory = new ArrayList<>(); - Date date1 = BoxDateFormat.parse("2013-05-16T15:27:57-07:00"); - Date date2 = BoxDateFormat.parse("2013-05-16T15:26:57-07:00"); - dialogueHistory.add( - new BoxAIDialogueEntry("What is the name of the file?", "Test file", date1) - ); - dialogueHistory.add( - new BoxAIDialogueEntry("What is the size of the file?", "10kb", date2) - ); - - String result = TestUtils.getFixture("BoxAI/SendAIRequest200"); - String agentText = TestUtils.getFixture("BoxAI/GetAIAgentDefaultConfigAsk200"); - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo("/2.0/ai/ask")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxAIAgentAsk agent = new BoxAIAgentAsk(Json.parse(agentText).asObject()); - BoxAIResponse response = BoxAI.sendAIRequest( - api, - prompt, - Collections.singletonList(new BoxAIItem(fileId, BoxAIItem.Type.FILE)), - BoxAI.Mode.SINGLE_ITEM_QA, - dialogueHistory, - agent, - false - ); - - assertThat( - response.getAnswer(), equalTo("Public APIs are important because of key and important reasons.") - ); - assertThat(response.getCreatedAt(), equalTo(new Date(1355338423123L))); - assertThat(response.getCompletionReason(), equalTo("done")); - } - - @Test - public void testSendAITextGenRequestWithAgentSuccess() throws ParseException { - final String fileId = "12345"; - final String prompt = "What is the name of the file?"; - Date date1 = BoxDateFormat.parse("2013-05-16T15:27:57-07:00"); - Date date2 = BoxDateFormat.parse("2013-05-16T15:26:57-07:00"); - List dialogueHistory = new ArrayList<>(); - dialogueHistory.add( - new BoxAIDialogueEntry("What is the name of the file?", "Test file", date1) - ); - dialogueHistory.add( - new BoxAIDialogueEntry("What is the size of the file?", "10kb", date2) - ); - - String result = TestUtils.getFixture("BoxAI/SendAITextGen200"); - String agentText = TestUtils.getFixture("BoxAI/GetAIAgentDefaultConfigTextGen200"); - BoxAIAgentTextGen agent = new BoxAIAgentTextGen(Json.parse(agentText).asObject()); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo("/2.0/ai/text_gen")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxAIResponse response = BoxAI.sendAITextGenRequest( - api, - prompt, - Collections.singletonList(new BoxAIItem(fileId, BoxAIItem.Type.FILE)), - dialogueHistory, - agent - ); - - assertThat( - response.getAnswer(), equalTo("Public APIs are important because of key and important reasons.") - ); - assertThat(response.getCreatedAt(), equalTo(new Date(1355338423123L))); - assertThat(response.getCompletionReason(), equalTo("done")); - } - - @Test - public void testGetAIAgentDefaultConfigAskSuccess() { - String result = TestUtils.getFixture("BoxAI/GetAIAgentDefaultConfigAsk200"); - String urlPath = "/2.0/ai_agent_default"; - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(urlPath)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxAIAgent agent = BoxAI.getAiAgentDefaultConfig(api, BoxAIAgent.Mode.ASK, "en", "openai__gpt_3_5_turbo"); - BoxAIAgentAsk agentAsk = (BoxAIAgentAsk) agent; - - assertThat(agent.getType(), equalTo("ai_agent_ask")); - assertThat(agentAsk.getBasicText().getModel(), equalTo("openai__gpt_3_5_turbo")); - - JsonObject jsonResult = Json.parse(result).asObject(); - assertThat(agent.getJSONObject().toString(), equalTo(jsonResult.toString())); - } - - @Test - public void testGetAIAgentDefaultConfigTextGenSuccess() { - String result = TestUtils.getFixture("BoxAI/GetAIAgentDefaultConfigTextGen200"); - String urlPath = "/2.0/ai_agent_default"; - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(urlPath)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxAIAgent agent = BoxAI.getAiAgentDefaultConfig(api, BoxAIAgent.Mode.TEXT_GEN, "en", "openai__gpt_3_5_turbo"); - BoxAIAgentTextGen agentTextGen = (BoxAIAgentTextGen) agent; - - assertThat(agent.getType(), equalTo("ai_agent_text_gen")); - assertThat(agentTextGen.getBasicGen().getModel(), equalTo("openai__gpt_3_5_turbo")); - - JsonObject jsonResult = Json.parse(result).asObject(); - assertThat(agent.getJSONObject().toString(), equalTo(jsonResult.toString())); - } - - @Test - public void testGetAIAgentDefaultConfigExtractSuccess() { - String result = TestUtils.getFixture("BoxAI/GetAIAgentDefaultConfigExtract200"); - String urlPath = "/2.0/ai_agent_default"; - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(urlPath)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxAIAgent agent = BoxAI.getAiAgentDefaultConfig(api, BoxAIAgent.Mode.EXTRACT, - "en", "openai__gpt_3_5_turbo"); - BoxAIAgentExtract agentExtract = (BoxAIAgentExtract) agent; - - assertThat(agent.getType(), equalTo("ai_agent_extract")); - assertThat(agentExtract.getBasicText().getModel(), equalTo("azure__openai__gpt_3_5_turbo_16k")); - - JsonObject jsonResult = Json.parse(result).asObject(); - assertThat(agent.getJSONObject().toString(), equalTo(jsonResult.toString())); - } - - @Test - public void testGetAIAgentDefaultConfigExtractStructuredSuccess() { - String result = TestUtils.getFixture("BoxAI/GetAIAgentDefaultConfigExtractStructured200"); - String urlPath = "/2.0/ai_agent_default"; - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(urlPath)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxAIAgent agent = BoxAI.getAiAgentDefaultConfig(api, BoxAIAgent.Mode.EXTRACT_STRUCTURED, - "en", "openai__gpt_3_5_turbo"); - BoxAIAgentExtractStructured agentExtract = (BoxAIAgentExtractStructured) agent; - - assertThat(agent.getType(), equalTo("ai_agent_extract_structured")); - assertThat(agentExtract.getBasicText().getModel(), equalTo("azure__openai__gpt_3_5_turbo_16k")); - - JsonObject jsonResult = Json.parse(result).asObject(); - assertThat(agent.getJSONObject().toString(), equalTo(jsonResult.toString())); - } - - @Test - public void testExtractMetadataFreeformSuccess() { - String agentString = TestUtils.getFixture("BoxAI/GetAIAgentDefaultConfigExtract200"); - final String fileId = "12345"; - final String prompt = "Extract data related to contract conditions"; - final BoxAIAgentExtract agent = new BoxAIAgentExtract(Json.parse(agentString).asObject()); - JsonObject expectedRequestBody = new JsonObject(); - expectedRequestBody.add("prompt", prompt); - expectedRequestBody.add("items", new JsonArray().add(new JsonObject() - .add("type", "file") - .add("id", fileId))); - expectedRequestBody.add("ai_agent", agent.getJSONObject()); - - String result = TestUtils.getFixture("BoxAI/ExtractMetadataFreeform200"); - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo("/2.0/ai/extract")) - .withRequestBody(WireMock.equalToJson( - expectedRequestBody.toString() - )) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxAIResponse response = BoxAI.extractMetadataFreeform( - api, - prompt, - Collections.singletonList(new BoxAIItem(fileId, BoxAIItem.Type.FILE)), - agent - ); - - assertThat(response.getAnswer(), equalTo("Public APIs are important because of key and important reasons.")); - assertThat(response.getCreatedAt(), equalTo(new Date(1355338423123L))); - assertThat(response.getCompletionReason(), equalTo("done")); - } - - @Test - public void testExtractMetadataStructuredWithTemplateSuccess() { - String agentString = TestUtils.getFixture("BoxAI/GetAIAgentDefaultConfigExtractStructured200"); - final String fileId = "12345"; - final BoxAIExtractMetadataTemplate template = new BoxAIExtractMetadataTemplate("templateId", "enterprise"); - final List items = Collections.singletonList(new BoxAIItem(fileId, BoxAIItem.Type.FILE)); - final String result = TestUtils.getFixture("BoxAI/ExtractMetadataStructured200"); - final BoxAIAgentExtractStructured agent = new BoxAIAgentExtractStructured(Json.parse(agentString).asObject()); - - final JsonObject expectedRequestBody = new JsonObject() - .add("items", new JsonArray().add(new JsonObject() - .add("type", "file") - .add("id", fileId))) - .add("metadata_template", new JsonObject() - .add("type", "metadata_template") - .add("template_key", template.getTemplateKey()) - .add("scope", template.getScope())) - .add("ai_agent", agent.getJSONObject()); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo("/2.0/ai/extract_structured")) - .withRequestBody(WireMock.equalToJson( - expectedRequestBody.toString() - )) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxAIExtractStructuredResponse response = BoxAI.extractMetadataStructured( - api, - items, - template, - agent - ); - - assertThat(response.getSourceJson(), equalTo(Json.parse(result).asObject())); - assertThat(response.getAnswer().get("firstName").asString(), equalTo("John")); - assertThat(response.getAnswer().get("lastName").asString(), equalTo("Doe")); - assertThat(response.getAnswer().get("age").asInt(), equalTo(25)); - assertThat(response.getAnswer().get("hobbies").asArray().get(0).asString(), equalTo("reading")); - - assertThat(response.getCreatedAt(), equalTo(new Date(1355338423123L))); - assertThat(response.getCompletionReason(), equalTo("done")); - } - - @Test - public void testExtractMetadataStructuredWithFieldSuccess() { - String agentString = TestUtils.getFixture("BoxAI/GetAIAgentDefaultConfigExtractStructured200"); - final String fileId = "12345"; - final List items = Collections.singletonList(new BoxAIItem(fileId, BoxAIItem.Type.FILE)); - final String result = TestUtils.getFixture("BoxAI/ExtractMetadataStructured200"); - final BoxAIAgentExtractStructured agent = new BoxAIAgentExtractStructured(Json.parse(agentString).asObject()); - final BoxAIExtractField field = new BoxAIExtractField( - "text", - "The name of the file", - "Name", - "name", - Arrays.asList( - new BoxAIExtractFieldOption("option 1"), - new BoxAIExtractFieldOption("option 2") - ), - "What is the name of the file?"); - - final JsonObject expectedRequestBody = new JsonObject() - .add("items", new JsonArray().add(new JsonObject() - .add("type", "file") - .add("id", fileId))) - .add("ai_agent", agent.getJSONObject()) - .add("fields", new JsonArray().add(field.getJSONObject())); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo("/2.0/ai/extract_structured")) - .withRequestBody(WireMock.equalToJson( - expectedRequestBody.toString() - )) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxAIExtractStructuredResponse response = BoxAI.extractMetadataStructured( - api, - items, - Collections.singletonList(field), - agent - ); - - assertThat(response.getSourceJson(), equalTo(Json.parse(result).asObject())); - assertThat(response.getAnswer().get("firstName").asString(), equalTo("John")); - assertThat(response.getAnswer().get("lastName").asString(), equalTo("Doe")); - assertThat(response.getAnswer().get("age").asInt(), equalTo(25)); - assertThat(response.getAnswer().get("hobbies").asArray().get(0).asString(), equalTo("reading")); - - assertThat(response.getCreatedAt(), equalTo(new Date(1355338423123L))); - assertThat(response.getCompletionReason(), equalTo("done")); - } -} diff --git a/src/test/java/com/box/sdk/BoxAPIConnectionForTests.java b/src/test/java/com/box/sdk/BoxAPIConnectionForTests.java deleted file mode 100644 index b48c38dd9..000000000 --- a/src/test/java/com/box/sdk/BoxAPIConnectionForTests.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.box.sdk; - -import static okhttp3.ConnectionSpec.CLEARTEXT; -import static okhttp3.ConnectionSpec.MODERN_TLS; - -import java.util.Arrays; -import okhttp3.OkHttpClient; - -class BoxAPIConnectionForTests extends BoxAPIConnection { - BoxAPIConnectionForTests(String accessToken) { - super(accessToken); - configureSslCertificatesValidation(new TrustAllTrustManager(), new AcceptAllHostsVerifier()); - } - - BoxAPIConnectionForTests(String clientID, String clientSecret, String accessToken, String refreshToken) { - super(clientID, clientSecret, accessToken, refreshToken); - configureSslCertificatesValidation(new TrustAllTrustManager(), new AcceptAllHostsVerifier()); - } - - BoxAPIConnectionForTests(String clientID, String clientSecret, String authCode) { - super(clientID, clientSecret, authCode); - configureSslCertificatesValidation(new TrustAllTrustManager(), new AcceptAllHostsVerifier()); - } - - BoxAPIConnectionForTests(String clientID, String clientSecret) { - super(clientID, clientSecret); - configureSslCertificatesValidation(new TrustAllTrustManager(), new AcceptAllHostsVerifier()); - } - - BoxAPIConnectionForTests(BoxConfig boxConfig) { - super(boxConfig); - configureSslCertificatesValidation(new TrustAllTrustManager(), new AcceptAllHostsVerifier()); - } - - @Override - protected OkHttpClient.Builder modifyHttpClientBuilder(OkHttpClient.Builder httpClientBuilder) { - return httpClientBuilder.connectionSpecs(Arrays.asList(MODERN_TLS, CLEARTEXT)); - } -} diff --git a/src/test/java/com/box/sdk/BoxAPIConnectionTest.java b/src/test/java/com/box/sdk/BoxAPIConnectionTest.java deleted file mode 100644 index 1096f73ae..000000000 --- a/src/test/java/com/box/sdk/BoxAPIConnectionTest.java +++ /dev/null @@ -1,998 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxAPIConnection.DEFAULT_HOSTNAME_VERIFIER; -import static com.box.sdk.BoxAPIConnection.DEFAULT_TRUST_MANAGER; -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; -import static com.github.tomakehurst.wiremock.client.WireMock.matching; -import static com.github.tomakehurst.wiremock.client.WireMock.post; -import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static com.github.tomakehurst.wiremock.stubbing.Scenario.STARTED; -import static java.lang.String.format; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.containsString; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.not; -import static org.hamcrest.Matchers.startsWith; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.fail; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import com.box.sdk.BoxAPIConnection.ResourceLinkType; -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.WireMockServer; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.net.InetSocketAddress; -import java.net.MalformedURLException; -import java.net.Proxy; -import java.net.URI; -import java.net.URISyntaxException; -import java.net.URL; -import java.util.ArrayList; -import java.util.List; -import javax.net.ssl.SSLHandshakeException; -import javax.net.ssl.SSLPeerUnverifiedException; -import org.junit.Assert; -import org.junit.Rule; -import org.junit.Test; - -public class BoxAPIConnectionTest { - @Rule - // we do not use HTTPS mock as wiremock ha trouble proxying HTTPS traffic - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicPort()); - @Rule - public WireMockRule wireMockHttpsRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - - private final String accessToken = "fakeToken"; - private final String refreshToken = "fake refresh token"; - private final String clientId = "fakeID"; - private final String clientSecret = "fakeSecret"; - - @Test - public void canRefreshWhenGivenRefreshToken() { - final String anyClientID = ""; - final String anyClientSecret = ""; - final String anyAccessToken = ""; - final String anyRefreshToken = ""; - - BoxAPIConnection api = - new BoxAPIConnectionForTests(anyClientID, anyClientSecret, anyAccessToken, anyRefreshToken); - - assertThat(api.canRefresh(), is(true)); - } - - @Test - public void needsRefreshWhenTokenHasExpired() { - final String anyAccessToken = ""; - - BoxAPIConnection api = new BoxAPIConnectionForTests(anyAccessToken); - api.setExpires(-1); - - assertThat(api.needsRefresh(), is(true)); - } - - @Test - public void doesNotNeedRefreshWhenTokenHasNotExpired() { - final String anyAccessToken = ""; - - BoxAPIConnection api = new BoxAPIConnectionForTests(anyAccessToken); - api.setExpires(Long.MAX_VALUE); - - assertThat(api.needsRefresh(), is(not(true))); - } - - @Test - public void needsRefreshWhenExpiresIsZero() { - final String anyAccessToken = ""; - - BoxAPIConnection api = new BoxAPIConnectionForTests(anyAccessToken); - api.setExpires(0); - - assertThat(api.needsRefresh(), is(true)); - } - - @Test - public void interceptorReceivesSentRequest() throws MalformedURLException { - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - - BoxAPIResponse fakeResponse = new BoxAPIResponse(); - - RequestInterceptor mockInterceptor = mock(RequestInterceptor.class); - when(mockInterceptor.onRequest(any(BoxAPIRequest.class))).thenReturn(fakeResponse); - api.setRequestInterceptor(mockInterceptor); - - BoxAPIRequest request = new BoxAPIRequest(api, new URL("http://anyurl.com"), "GET"); - - try (BoxAPIResponse response = request.send()) { - assertThat(response, is(equalTo(fakeResponse))); - } - } - - @Test - public void restoreConnectionThatDoesNotNeedRefresh() { - BoxAPIConnection api = new BoxAPIConnectionForTests(accessToken, clientSecret, accessToken, refreshToken); - api.setExpires(3600000L); - api.setLastRefresh(System.currentTimeMillis()); - String state = api.save(); - - final BoxAPIConnection restoredAPI = BoxAPIConnection.restore("fake client ID", "fake client secret", state); - restoredAPI.setRequestInterceptor(request -> { - String tokenURLString = restoredAPI.getTokenURL(); - String requestURLString = request.getUrl().toString(); - if (requestURLString.contains(tokenURLString)) { - fail("The connection was refreshed."); - } - - if (requestURLString.contains("folders")) { - return new BoxJSONResponse() { - @Override - public String getJSON() { - JsonObject responseJSON = new JsonObject() - .add("id", "fake ID") - .add("type", "folder"); - return responseJSON.toString(); - } - }; - } - - fail("Unexpected request."); - return null; - }); - - assertFalse(restoredAPI.needsRefresh()); - } - - @Test - public void getDefaultAuthorizationURLSuccess() throws Exception { - List scopes = new ArrayList<>(); - scopes.add("root_readwrite"); - scopes.add("manage_groups"); - - URL authURL = BoxAPIConnection.getAuthorizationURL( - clientId, new URI("http://localhost:3000"), "test", scopes - ); - - String query = authURL.getQuery(); - assertThat(query, containsString("client_id=" + clientId)); - assertThat(query, containsString("response_type=code")); - assertThat(query, containsString("redirect_uri=http%3A%2F%2Flocalhost%3A3000")); - assertThat(query, containsString("state=test")); - assertThat(query, containsString("scope=root_readwrite+manage_groups")); - } - - @Test - public void getAuthorizationURLSuccess() throws Exception { - List scopes = new ArrayList<>(); - scopes.add("root_readwrite"); - scopes.add("manage_groups"); - - BoxAPIConnection api = new BoxAPIConnectionForTests(clientId, clientSecret); - api.setBaseAuthorizationURL("https://account.my-box.com/api"); - - URL authURL = api.getAuthorizationURL(new URI("http://localhost:3000"), "test", scopes); - - assertThat(authURL.toString(), startsWith("https://account.my-box.com/api/oauth2/authorize?")); - - String query = authURL.getQuery(); - assertThat(query, containsString("client_id=" + clientId)); - assertThat(query, containsString("response_type=code")); - assertThat(query, containsString("redirect_uri=http%3A%2F%2Flocalhost%3A3000")); - assertThat(query, containsString("state=test")); - assertThat(query, containsString("scope=root_readwrite+manage_groups")); - } - - @Test - public void revokeTokenCallsCorrectEndpoint() { - BoxAPIConnection api = new BoxAPIConnectionForTests(clientId, clientSecret, accessToken, refreshToken); - api.configureSslCertificatesValidation(new TrustAllTrustManager(), new AcceptAllHostsVerifier()); - api.setBaseURL(baseHttpsUrl()); - api.setBaseUploadURL(baseHttpsUrl()); - api.setBaseAuthorizationURL(baseHttpsUrl()); - - wireMockHttpsRule.stubFor(post(urlPathEqualTo("/oauth2/revoke")) - .withRequestBody( - equalTo(String.format("token=%s&client_id=fakeID&client_secret=fakeSecret", accessToken)) - ) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody("{}"))); - - api.revokeToken(); - } - - @Test - public void getLowerScopedTokenRefreshesTheTokenIfNeededbyCallingGetAccessToken() { - BoxAPIConnection api = mock(BoxAPIConnection.class); - - List scopes = new ArrayList<>(); - scopes.add("item_preview"); - - when(api.getTokenURL()).thenReturn("https://api.box.com/oauth2/token"); - when(api.getLowerScopedToken(scopes, null)).thenCallRealMethod(); - try { - api.getLowerScopedToken(scopes, null); - } catch (RuntimeException e) { - //Ignore it - } - verify(api).getAccessToken(); - } - - @Test - public void checkAllResourceLinkTypes() { - this.getResourceLinkTypeFromURLString( - "https://api.box.com/2.0/files/1234567890", ResourceLinkType.APIEndpoint); - this.getResourceLinkTypeFromURLString( - "https://example.box.com/s/qwertyuiop1234567890asdfghjkl", ResourceLinkType.SharedLink); - this.getResourceLinkTypeFromURLString( - "https://example.app.box.com/notes/09876321?s=zxcvm123458asdf", ResourceLinkType.SharedLink); - this.getResourceLinkTypeFromURLString( - null, ResourceLinkType.Unknown); - this.getResourceLinkTypeFromURLString( - "", ResourceLinkType.Unknown); - this.getResourceLinkTypeFromURLString( - "qwertyuiopasdfghjklzxcvbnm1234567890", ResourceLinkType.Unknown); - } - - private void getResourceLinkTypeFromURLString(String resource, ResourceLinkType resourceLinkType) { - BoxAPIConnection api = mock(BoxAPIConnection.class); - when(api.determineResourceLinkType(resource)) - .thenCallRealMethod(); - ResourceLinkType actualResourceLinkType = api.determineResourceLinkType(resource); - assertEquals(actualResourceLinkType, resourceLinkType); - } - - @Test - public void addingCustomHeadersWorks() { - - final String targetHeader = "As-User"; - final String targetHeaderValue = "12345"; - - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setCustomHeader(targetHeader, targetHeaderValue); - - api.setRequestInterceptor(request -> { - boolean isHeaderPresent = false; - List headers = request.getHeaders(); - for (BoxAPIRequest.RequestHeader header : headers) { - if (header.getKey().equals(targetHeader) && header.getValue().equals(targetHeaderValue)) { - isHeaderPresent = true; - break; - } - } - Assert.assertTrue(isHeaderPresent); - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"type\":\"file\",\"id\":\"98765\"}"; - } - }; - }); - - BoxFile file = new BoxFile(api, "98765"); - file.getInfo(); - } - - - @Test - public void removingCustomHeadersWorks() { - - final String targetHeader = "As-User"; - final String targetHeaderValue = "12345"; - - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setCustomHeader(targetHeader, targetHeaderValue); - api.removeCustomHeader(targetHeader); - - api.setRequestInterceptor(request -> { - boolean isHeaderPresent = false; - List headers = request.getHeaders(); - for (BoxAPIRequest.RequestHeader header : headers) { - if (header.getKey().equals(targetHeader) && header.getValue().equals(targetHeaderValue)) { - isHeaderPresent = true; - break; - } - } - assertFalse(isHeaderPresent); - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"type\":\"file\",\"id\":\"98765\"}"; - } - }; - }); - - BoxFile file = new BoxFile(api, "98765"); - file.getInfo(); - } - - @Test - public void asUserAddsAsUserHeader() { - final String userID = "12345"; - - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.asUser(userID); - - api.setRequestInterceptor(request -> { - boolean isHeaderPresent = false; - List headers = request.getHeaders(); - for (BoxAPIRequest.RequestHeader header : headers) { - if (header.getKey().equals("As-User") && header.getValue().equals(userID)) { - isHeaderPresent = true; - break; - } - } - Assert.assertTrue(isHeaderPresent); - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"type\":\"file\",\"id\":\"98765\"}"; - } - }; - }); - - BoxFile file = new BoxFile(api, "98765"); - file.getInfo(); - } - - @Test - public void asSelfRemovesAsUserHeader() { - final String userID = "12345"; - - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.asUser(userID); - api.asSelf(); - - api.setRequestInterceptor(request -> { - boolean isHeaderPresent = false; - List headers = request.getHeaders(); - for (BoxAPIRequest.RequestHeader header : headers) { - if (header.getKey().equals("As-User") && header.getValue().equals(userID)) { - isHeaderPresent = true; - break; - } - } - assertFalse(isHeaderPresent); - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"type\":\"file\",\"id\":\"98765\"}"; - } - }; - }); - - BoxFile file = new BoxFile(api, "98765"); - file.getInfo(); - } - - @Test - public void suppressNotificationsAddsBoxNotificationsHeader() { - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.suppressNotifications(); - - api.setRequestInterceptor(request -> { - boolean isHeaderPresent = false; - List headers = request.getHeaders(); - for (BoxAPIRequest.RequestHeader header : headers) { - if (header.getKey().equals("Box-Notifications") && header.getValue().equals("off")) { - isHeaderPresent = true; - break; - } - } - Assert.assertTrue(isHeaderPresent); - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"type\":\"file\",\"id\":\"98765\"}"; - } - }; - }); - - BoxFile file = new BoxFile(api, "98765"); - file.getInfo(); - } - - @Test - public void enableNotificationsRemovesBoxNotificationsHeader() { - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.suppressNotifications(); - api.enableNotifications(); - - api.setRequestInterceptor(request -> { - boolean isHeaderPresent = false; - List headers = request.getHeaders(); - for (BoxAPIRequest.RequestHeader header : headers) { - if (header.getKey().equals("Box-Notifications") && header.getValue().equals("off")) { - isHeaderPresent = true; - break; - } - } - assertFalse(isHeaderPresent); - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"type\":\"file\",\"id\":\"98765\"}"; - } - }; - }); - - BoxFile file = new BoxFile(api, "98765"); - file.getInfo(); - } - - @Test - public void requestToStringWorksInsideRequestInterceptor() { - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(request -> { - String reqString = request.toString(); - Assert.assertTrue(reqString.length() > 0); - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"type\":\"file\",\"id\":\"98765\"}"; - } - }; - }); - - new BoxFile(api, "98765").getInfo(); - } - - @Test - public void shouldUseGlobalMaxRetries() { - int defaultMaxRetries = BoxGlobalSettings.getMaxRetryAttempts(); - int newMaxRetries = defaultMaxRetries + 5; - BoxGlobalSettings.setMaxRetryAttempts(newMaxRetries); - - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - assertEquals(newMaxRetries, api.getMaxRetryAttempts()); - - // Set back the original number to not interfere with other test cases - BoxGlobalSettings.setMaxRetryAttempts(defaultMaxRetries); - } - - @Test - public void shouldUseInstanceTimeoutSettings() throws MalformedURLException { - int instanceConnectTimeout = BoxGlobalSettings.getConnectTimeout() + 1000; - int instanceReadTimeout = BoxGlobalSettings.getReadTimeout() + 1000; - - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - - api.setConnectTimeout(instanceConnectTimeout); - api.setReadTimeout(instanceReadTimeout); - - BoxAPIRequest req = new BoxAPIRequest(api, new URL("https://api.box.com/2.0/users/me"), "GET"); - - assertEquals(instanceConnectTimeout, req.getConnectTimeout()); - assertEquals(instanceReadTimeout, req.getReadTimeout()); - } - - @Test - public void allowsToSaveAndRestoreApplicationConnection() throws URISyntaxException { - // given - BoxAPIConnection api = new BoxAPIConnectionForTests(clientId, clientSecret, accessToken, refreshToken); - api.setRequestInterceptor( - request -> new BoxAPIConnectionTest.AuthenticationResponse(accessToken, refreshToken, "4245") - ); - - // when - api.refresh(); - String savedConnection = api.save(); - BoxAPIConnection restoredApi = BoxAPIConnection.restore(clientId, clientSecret, savedConnection); - - // then - assertThat(api.getAccessToken(), is(restoredApi.getAccessToken())); - assertThat(api.getLastRefresh(), is(restoredApi.getLastRefresh())); - assertThat(api.getExpires(), is(restoredApi.getExpires())); - assertThat(api.getUserAgent(), is(restoredApi.getUserAgent())); - assertThat(api.getTokenURL(), is(restoredApi.getTokenURL())); - assertThat(api.getRevokeURL(), is(restoredApi.getRevokeURL())); - assertThat( - api.getAuthorizationURL(new URI("https://redirect.me"), "test", new ArrayList<>()), - is(restoredApi.getAuthorizationURL(new URI("https://redirect.me"), "test", new ArrayList<>())) - ); - assertThat(api.getBaseURL(), is(restoredApi.getBaseURL())); - assertThat(api.getBaseAppUrl(), is(restoredApi.getBaseAppUrl())); - assertThat(api.getBaseUploadURL(), is(restoredApi.getBaseUploadURL())); - assertThat(api.getAutoRefresh(), is(restoredApi.getAutoRefresh())); - assertThat(api.getMaxRetryAttempts(), is(restoredApi.getMaxRetryAttempts())); - } - - @Test - public void restoresProperUrlsFromOldVersions() { - // given - String accessToken = "access_token"; - String clientId = "some_client_id"; - String clientSecret = "some_client_secret"; - String refreshToken = "some_refresh_token"; - BoxAPIConnection api = new BoxAPIConnection(clientId, clientSecret, accessToken, refreshToken); - api.setBaseURL("https://api.box.com/2.0/"); - api.setBaseUploadURL("https://upload.box.com/api/2.0/"); - String savedConnection = api.save(); - - // when - BoxAPIConnection restoredApi = BoxAPIConnection.restore(clientId, clientSecret, savedConnection); - - // then - assertThat("https://api.box.com/2.0/", is(restoredApi.getBaseURL())); - assertThat("https://upload.box.com/api/2.0/", is(restoredApi.getBaseUploadURL())); - } - - @Test - public void restoresProperUrlsWhenNotSet() { - // given - String accessToken = "access_token"; - String clientId = "some_client_id"; - String clientSecret = "some_client_secret"; - String refreshToken = "some_refresh_token"; - BoxAPIConnection api = new BoxAPIConnection(clientId, clientSecret, accessToken, refreshToken); - api.setBaseURL("https://api.box.com/2.0/"); - String savedConnection = api.save(); - - // when - BoxAPIConnection restoredApi = BoxAPIConnection.restore(clientId, clientSecret, savedConnection); - - // then - assertThat("https://api.box.com/2.0/", is(restoredApi.getBaseURL())); - assertThat("https://upload.box.com/api/2.0/", is(restoredApi.getBaseUploadURL())); - } - - @Test - public void restoresWithEmptyRefreshToken() { - // given - String clientId = "some_client_id"; - String clientSecret = "some_client_secret"; - String state = "{\"accessToken\":\"some-access-token\"," - + "\"refreshToken\":null," - + "\"lastRefresh\":1672759898468," - + "\"expires\":3829000," - + "\"userAgent\":\"Box Java SDK v3.8.1 (Java 17.0.4)\"," - + "\"tokenURL\":null," - + "\"revokeURL\":null," - + "\"baseURL\":\"https://api.box.com/\"," - + "\"baseUploadURL\":\"https://upload.box.com/api/\"," - + "\"authorizationURL\":\"https://account.box.com/api/\"," - + "\"autoRefresh\":true," - + "\"maxRetryAttempts\":5}"; - - // when - BoxAPIConnection restoredApi = BoxAPIConnection.restore(clientId, clientSecret, state); - - // then - assertThat("some-access-token", is(restoredApi.getAccessToken())); - assertNull(restoredApi.getRefreshToken()); - assertThat("https://api.box.com/2.0/", is(restoredApi.getBaseURL())); - assertThat("https://upload.box.com/api/2.0/", is(restoredApi.getBaseUploadURL())); - } - - @Test - public void restoresProperUrlsWhenDeprecatedUrlsAreSet() { - // given - String clientId = "some_client_id"; - String clientSecret = "some_client_secret"; - - String savedConnection = "{" - + "\"accessToken\":\"access_token\"," - + "\"refreshToken\":\"some_refresh_token\"," - + "\"lastRefresh\":0," - + "\"expires\":0," - + "\"userAgent\":\"Box Java SDK v3.8.0 (Java 1.8.0_345)\"," - + "\"tokenURL\":\"https://api.box.com/token\"," - + "\"revokeURL\":\"https://api.box.com/revoke\"," - + "\"baseURL\":\"https://api.box.com/\"," - + "\"baseUploadURL\":\"https://upload.box.com/api/\"," - + "\"authorizationURL\":\"https://account.box.com/api/\"," - + "\"autoRefresh\":true,\"maxRetryAttempts\":5" - + "}"; - // when - BoxAPIConnection restoredApi = BoxAPIConnection.restore(clientId, clientSecret, savedConnection); - - // then - assertThat("https://api.box.com/token", is(restoredApi.getTokenURL())); - assertThat("https://api.box.com/revoke", is(restoredApi.getRevokeURL())); - } - - @Test - public void restoresProperUrlsWhenSomeAreMissing() { - // given - String accessToken = "access_token"; - String clientId = "some_client_id"; - String clientSecret = "some_client_secret"; - String refreshToken = "some_refresh_token"; - - String savedConnection = "{" - + "\"accessToken\":\"access_token\"," - + "\"refreshToken\":\"some_refresh_token\"," - + "\"lastRefresh\":0," - + "\"expires\":0," - + "\"userAgent\":\"Box Java SDK v3.8.0 (Java 1.8.0_345)\"," - + "\"baseURL\":\"https://api.box.com/\"," - + "\"authorizationURL\":\"https://account.box.com/api/\"," - + "\"autoRefresh\":true,\"maxRetryAttempts\":5" - + "}"; - // when - BoxAPIConnection restoredApi = BoxAPIConnection.restore(clientId, clientSecret, savedConnection); - - // then - assertThat("https://api.box.com/2.0/", is(restoredApi.getBaseURL())); - assertThat("https://upload.box.com/api/2.0/", is(restoredApi.getBaseUploadURL())); - } - - @Test - public void restoresDefaultMaxRequestAttemptsWhenMissing() { - // given - String accessToken = "access_token"; - String clientId = "some_client_id"; - String clientSecret = "some_client_secret"; - String refreshToken = "some_refresh_token"; - - String savedConnection = "{" - + "\"accessToken\":\"access_token\"," - + "\"refreshToken\":\"some_refresh_token\"," - + "\"lastRefresh\":0," - + "\"expires\":0," - + "\"userAgent\":\"Box Java SDK v3.8.0 (Java 1.8.0_345)\"," - + "\"baseURL\":\"https://api.box.com/\"," - + "\"authorizationURL\":\"https://account.box.com/api/\"," - + "\"autoRefresh\":true" - + "}"; - // when - BoxAPIConnection restoredApi = BoxAPIConnection.restore(clientId, clientSecret, savedConnection); - - // then - assertThat(BoxGlobalSettings.getMaxRetryAttempts(), is(restoredApi.getMaxRetryAttempts())); - } - - @Test - public void successfullyRestoresConnectionWithDeprecatedSettings() { - String restoreState = TestUtils.getFixture("BoxAPIConnection/State"); - String restoreStateDeprecated = TestUtils.getFixture("BoxAPIConnection/StateDeprecated"); - - BoxAPIConnection api = - BoxAPIConnection.restore(clientId, clientSecret, restoreState); - String savedStateAPI = api.save(); - - BoxAPIConnection deprecatedAPI = - BoxAPIConnection.restore(clientId, clientSecret, restoreStateDeprecated); - String savedStateAPIDeprecated = deprecatedAPI.save(); - - assertEquals(api.getMaxRetryAttempts(), deprecatedAPI.getMaxRetryAttempts()); - assertEquals(savedStateAPI, savedStateAPIDeprecated); - } - - @Test - public void setBaseUrls() { - BoxAPIConnection api = new BoxAPIConnectionForTests(clientId, clientSecret, accessToken, refreshToken); - String baseURL = "https://my-base.url"; - String baseUploadURL = "https://my-base-upload.url"; - String baseAppURL = "https://my-base-app.url"; - api.setBaseURL(baseURL); - api.setBaseUploadURL(baseUploadURL); - api.setBaseAppUrl(baseAppURL); - - assertThat(api.getBaseURL(), is(baseURL + "/2.0/")); - assertThat(api.getBaseUploadURL(), is(baseUploadURL + "/2.0/")); - assertThat(api.getBaseAppUrl(), is(baseAppURL)); - assertThat(api.getRevokeURL(), is(baseURL + "/oauth2/revoke")); - assertThat(api.getTokenURL(), is(baseURL + "/oauth2/token")); - } - - @Test - public void canOverrideTokenUrlWithBaseUrl() { - BoxAPIConnection api = new BoxAPIConnectionForTests(clientId, clientSecret, accessToken, refreshToken); - - api.setBaseURL("https://my-base.url"); - - assertThat(api.getTokenURL(), is("https://my-base.url/oauth2/token")); - } - - @Test - public void canOverrideRevokeUrlWithBaseUrl() { - BoxAPIConnection api = new BoxAPIConnectionForTests(clientId, clientSecret, accessToken, refreshToken); - - api.setBaseURL("https://my-base.url"); - - assertThat(api.getRevokeURL(), is("https://my-base.url/oauth2/revoke")); - } - - @Test - public void allowsToSaveAndRestoreApplicationConnectionWithBaseUrlSet() throws URISyntaxException { - // given - BoxAPIConnection api = new BoxAPIConnectionForTests(clientId, clientSecret, accessToken, refreshToken); - api.setBaseURL("https://my-base.url"); - api.setBaseUploadURL("https://my-base-upload.url"); - api.setBaseAuthorizationURL("https://my-authorization.url"); - api.setRequestInterceptor( - request -> new BoxAPIConnectionTest.AuthenticationResponse("access_token", refreshToken, "4245") - ); - - // when - api.refresh(); - String savedConnection = api.save(); - BoxAPIConnection restoredApi = BoxAPIConnection.restore(clientId, clientSecret, savedConnection); - - // then - assertThat(api.getBaseURL(), is(restoredApi.getBaseURL())); - assertThat(api.getBaseAppUrl(), is(restoredApi.getBaseAppUrl())); - assertThat(api.getBaseUploadURL(), is(restoredApi.getBaseUploadURL())); - assertThat(api.getRevokeURL(), is(restoredApi.getRevokeURL())); - assertThat(api.getTokenURL(), is(restoredApi.getTokenURL())); - assertThat( - api.getAuthorizationURL(new URI("https://my.redirect"), "test", new ArrayList<>()), - is(restoredApi.getAuthorizationURL(new URI("https://my.redirect"), "test", new ArrayList<>())) - ); - } - - @Test - public void usesCorrectTokenUrlToAuthenticateWhenBaseUrlIsSet() { - String code = "fakeCode"; - - BoxAPIConnection api = new BoxAPIConnectionForTests(clientId, clientSecret); - api.configureSslCertificatesValidation(new TrustAllTrustManager(), new AcceptAllHostsVerifier()); - api.setAutoRefresh(false); - api.setBaseURL(baseHttpsUrl()); - mockAndAssertAuthentication(clientId, clientSecret, code); - - api.authenticate(code); - - assertThat(api.getAccessToken(), is("access-token")); - assertThat(api.getRefreshToken(), is("refresh-token")); - } - - @Test - public void usesCorrectTokenToAuthenticateUrlWhenBaseUrlIsSet() { - String code = "fakeCode"; - - BoxAPIConnection api = new BoxAPIConnectionForTests(clientId, clientSecret); - api.configureSslCertificatesValidation(new TrustAllTrustManager(), new AcceptAllHostsVerifier()); - api.setAutoRefresh(false); - api.setBaseURL(baseHttpsUrl()); - mockAndAssertAuthentication(clientId, clientSecret, code); - - api.authenticate(code); - - assertThat(api.getAccessToken(), is("access-token")); - assertThat(api.getRefreshToken(), is("refresh-token")); - } - - @Test - public void usesCorrectTokenUrlToRevokeWhenBaseUrlIsSet() { - BoxAPIConnection api = new BoxAPIConnectionForTests(clientId, clientSecret, accessToken, refreshToken); - api.configureSslCertificatesValidation(new TrustAllTrustManager(), new AcceptAllHostsVerifier()); - api.setBaseURL(baseHttpsUrl()); - - mockAndAssertRevoke(accessToken, clientId, clientSecret); - - api.revokeToken(); - } - - @Test - public void checkThatTheProxyIsUsed() { - // given and then - // we do not use HTTPS mock as wiremock ha trouble proxying HTTPS traffic - wireMockRule.stubFor(post(urlPathEqualTo("/oauth2/token")) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody( - "{\"refresh_token\":\"refresh-token\", \"access_token\":\"access-token\", \"expires_in\": 1}" - ))); - BoxAPIConnection api = new BoxAPIConnectionForTests(clientId, clientSecret, accessToken, refreshToken); - String serverLocation = baseHttpUrl(); - api.setBaseURL(serverLocation); - WireMockServer proxyWireMockServer = new WireMockServer(wireMockConfig().dynamicPort()); - proxyWireMockServer.start(); - proxyWireMockServer.stubFor(post(urlPathEqualTo("/oauth2/token")) - .withHeader("Host", equalTo("localhost:" + wireMockRule.port())) - .willReturn(aResponse().proxiedFrom(serverLocation))); - - try { - // when - Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", proxyWireMockServer.port())); - api.setProxy(proxy); - api.authenticate("fake code"); - } finally { - proxyWireMockServer.stop(); - } - } - - @Test - public void shouldAddProxyAuthentication() { - // given and then - // we do not use HTTPS mock as wiremock ha trouble proxying HTTPS traffic - wireMockRule.stubFor(post(urlPathEqualTo("/oauth2/token")) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody( - "{\"refresh_token\":\"refresh-token\", \"access_token\":\"access-token\", \"expires_in\": 1}" - ))); - String serverLocation = baseHttpUrl(); - BoxAPIConnection api = new BoxAPIConnectionForTests(clientId, clientSecret, accessToken, refreshToken); - api.setBaseURL(serverLocation); - WireMockServer proxyWireMockServer = new WireMockServer(wireMockConfig().dynamicPort()); - proxyWireMockServer.start(); - proxyWireMockServer.stubFor(post(urlPathEqualTo("/oauth2/token")) - .inScenario("Proxy Authorization") - .whenScenarioStateIs(STARTED) - .willReturn(aResponse() - .withStatus(407)) - .willSetStateTo("AUTHORIZATION REQUESTED")); - // host must direct to actual server that should respond - proxyWireMockServer.stubFor(post(urlPathEqualTo("/oauth2/token")) - .inScenario("Proxy Authorization") - .whenScenarioStateIs("AUTHORIZATION REQUESTED") - .withHeader("Proxy-Authorization", matching("Basic .+")) - .willReturn(aResponse().proxiedFrom(serverLocation))); - - try { - // when - Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", proxyWireMockServer.port())); - api.setProxy(proxy); - api.setProxyBasicAuthentication("fakeProxyUsername", "fakeProxyPassword"); - api.authenticate("fake code"); - } finally { - proxyWireMockServer.stop(); - } - } - - @Test - public void shouldUseProvidedAuthenticator() { - // given and then - wireMockRule.stubFor(post(urlPathEqualTo("/oauth2/token")) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody( - "{\"refresh_token\":\"refresh-token\", \"access_token\":\"access-token\", \"expires_in\": 1}" - ))); - String serverLocation = baseHttpUrl(); - BoxAPIConnection api = new BoxAPIConnectionForTests(clientId, clientSecret, accessToken, refreshToken); - api.setBaseURL(serverLocation); - WireMockServer proxyWireMockServer = new WireMockServer(wireMockConfig().dynamicPort()); - proxyWireMockServer.start(); - proxyWireMockServer.stubFor(post(urlPathEqualTo("/oauth2/token")) - .inScenario("Proxy Authorization") - .whenScenarioStateIs(STARTED) - .willReturn(aResponse() - .withStatus(407)) - .willSetStateTo("AUTHORIZATION REQUESTED")); - // host must direct to actual server that should respond - proxyWireMockServer.stubFor(post(urlPathEqualTo("/oauth2/token")) - .inScenario("Proxy Authorization") - .whenScenarioStateIs("AUTHORIZATION REQUESTED") - .withHeader("Proxy-Authorization", equalTo("My custom authenticator")) - .willReturn(aResponse().proxiedFrom(serverLocation))); - - try { - // when - Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", proxyWireMockServer.port())); - api.setProxy(proxy); - api.setProxyAuthenticator((route, response) -> response - .request() - .newBuilder() - .addHeader("Proxy-Authorization", "My custom authenticator") - .build()); - api.authenticate("fake code"); - } finally { - proxyWireMockServer.stop(); - } - } - - @Test - public void failsByDefaultWhenUsingSelfSignedCertificates() { - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.configureSslCertificatesValidation(DEFAULT_TRUST_MANAGER, DEFAULT_HOSTNAME_VERIFIER); - api.setBaseURL(baseHttpsUrl()); - - try { - api.authenticate("fake code"); - } catch (Exception e) { - Throwable cause = e.getCause(); - assertThat(cause.getClass(), is(SSLHandshakeException.class)); - assertThat(cause.getMessage(), - containsString("unable to find valid certification path to requested target")); - } - } - - @Test - public void failsByDefaultWhenUsingSelfSignedCertificatesThatPointToLocalhost() { - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setBaseURL(baseHttpsUrl()); - api.configureSslCertificatesValidation(new TrustAllTrustManager(), DEFAULT_HOSTNAME_VERIFIER); - - try { - api.authenticate("fake code"); - } catch (Exception e) { - Throwable cause = e.getCause(); - assertThat(cause.getClass(), is(SSLPeerUnverifiedException.class)); - assertThat(cause.getMessage(), - containsString("Hostname localhost not verified")); - } - } - - @Test - public void canBeConfiguredToUseSelfSignedCertificates() { - // given and then - wireMockHttpsRule.stubFor(post(urlPathEqualTo("/oauth2/token")) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody( - "{\"refresh_token\":\"refresh-token\"," - + " \"access_token\":\"access-token-from-mock\"," - + " \"expires_in\": 1}" - ))); - - String serverLocation = baseHttpsUrl(); - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setBaseURL(serverLocation); - - api.configureSslCertificatesValidation(new TrustAllTrustManager(), new AcceptAllHostsVerifier()); - - api.authenticate("fake code"); - assertThat(api.getAccessToken(), is("access-token-from-mock")); - } - - private String baseHttpsUrl() { - return format("https://localhost:%d", wireMockHttpsRule.httpsPort()); - } - - private String baseHttpUrl() { - return format("http://localhost:%d", wireMockRule.port()); - } - - private void mockAndAssertRevoke(String token, String clientId, String clientSecret) { - wireMockHttpsRule.stubFor(post(urlPathEqualTo("/oauth2/revoke")) - .withRequestBody(equalTo( - format( - "token=%s&client_id=%s&client_secret=%s", token, clientId, clientSecret - ) - )) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody( - "{\"refresh_token\":\"refresh-token\", \"access_token\":\"access-token\", \"expires_in\": 1}" - ))); - } - - private void mockAndAssertAuthentication(String clientId, String clientSecret, String code) { - wireMockHttpsRule.stubFor(post(urlPathEqualTo("/oauth2/token")) - .withRequestBody(equalTo( - format( - "grant_type=authorization_code&code=%s&client_id=%s&client_secret=%s", code, clientId, clientSecret - ) - )) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody( - "{\"refresh_token\":\"refresh-token\", \"access_token\":\"access-token\", \"expires_in\": 1}" - ))); - } - - private static final class AuthenticationResponse extends BoxJSONResponse { - private final String accessToken; - private final String refreshToken; - private final String expiresIn; - - private AuthenticationResponse(String accessToken, String refreshToken, String expiresIn) { - this.accessToken = accessToken; - this.refreshToken = refreshToken; - this.expiresIn = expiresIn; - } - - - @Override - public String getJSON() { - return "{\n" - + " \"access_token\": \"" + accessToken + "\",\n" - + " \"refresh_token\": \"" + refreshToken + "\",\n" - + " \"expires_in\": " + expiresIn + ",\n" - + " \"restricted_to\": [],\n" - + " \"token_type\": \"bearer\"\n" - + "}"; - } - } -} diff --git a/src/test/java/com/box/sdk/BoxAPIRequestTest.java b/src/test/java/com/box/sdk/BoxAPIRequestTest.java deleted file mode 100644 index dfb7471f9..000000000 --- a/src/test/java/com/box/sdk/BoxAPIRequestTest.java +++ /dev/null @@ -1,396 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.TestUtils.createConnectionWith; -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.box.sdk.http.HttpHeaders.AUTHORIZATION; -import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; -import static com.github.tomakehurst.wiremock.client.WireMock.get; -import static com.github.tomakehurst.wiremock.client.WireMock.getRequestedFor; -import static com.github.tomakehurst.wiremock.client.WireMock.matching; -import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; -import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; -import static com.github.tomakehurst.wiremock.client.WireMock.verify; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static java.nio.charset.StandardCharsets.UTF_8; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.fail; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; - -import com.eclipsesource.json.ParseException; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import com.github.tomakehurst.wiremock.matching.EqualToPattern; -import com.github.tomakehurst.wiremock.matching.RequestPatternBuilder; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.zip.GZIPOutputStream; -import com.github.luben.zstd.ZstdOutputStream; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mockito; - -public class BoxAPIRequestTest { - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - - @Test - public void requestRetriesTheDefaultNumberOfTimesWhenServerReturns500() { - stubFor(get(urlEqualTo("/")).willReturn(aResponse().withStatus(500).withBody("{}"))); - Time mockTime = mock(Time.class); - BackoffCounter backoffCounter = new BackoffCounter(mockTime); - - BoxAPIConnection api = createConnectionWith(boxMockUrl().toString()); - BoxAPIRequest request = new BoxAPIRequest(api, boxMockUrl(), "GET"); - request.setBackoffCounter(backoffCounter); - - try { - request.send(); - } catch (BoxAPIException e) { - verify(BoxAPIConnection.DEFAULT_MAX_RETRIES + 1, getRequestedFor(urlEqualTo("/"))); - } - } - - @Test - public void requestRetriesTheDefaultNumberOfTimesWhenServerReturns429() { - stubFor(get(urlEqualTo("/")).willReturn(aResponse().withStatus(429).withBody("{}"))); - Time mockTime = mock(Time.class); - BackoffCounter backoffCounter = new BackoffCounter(mockTime); - - BoxAPIConnection api = createConnectionWith(boxMockUrl().toString()); - BoxAPIRequest request = new BoxAPIRequest(api, boxMockUrl(), "GET"); - request.setBackoffCounter(backoffCounter); - - try { - request.send(); - } catch (BoxAPIException e) { - verify(BoxAPIConnection.DEFAULT_MAX_RETRIES + 1, getRequestedFor(urlEqualTo("/"))); - } - } - - @Test - public void requestRetriesTheDefaultNumberOfTimesWhenServerReturnsInvalidGrantInErrorField() { - String body = "{\"error\":\"invalid_grant\",\"error_description\":\"Current date" - + "\\/time MUST be before the expiration date\\/time listed in the 'exp' claim\"}"; - stubFor(get(urlEqualTo("/")).willReturn(aResponse() - .withStatus(400) - .withBody(body))); - Time mockTime = mock(Time.class); - BackoffCounter backoffCounter = new BackoffCounter(mockTime); - - BoxAPIConnection api = createConnectionWith(boxMockUrl().toString()); - BoxAPIRequest request = new BoxAPIRequest(api, boxMockUrl(), "GET"); - request.setBackoffCounter(backoffCounter); - - try { - request.send(); - } catch (BoxAPIException e) { - verify(BoxAPIConnection.DEFAULT_MAX_RETRIES + 1, getRequestedFor(urlEqualTo("/"))); - } - } - - @Test - public void requestRetriesTheNumberOfTimesConfiguredInTheAPIConnection() { - final int expectedNumRetryAttempts = 1; - stubFor(get(urlEqualTo("/")).willReturn(aResponse().withStatus(500).withBody("{}"))); - Time mockTime = mock(Time.class); - BackoffCounter backoffCounter = new BackoffCounter(mockTime); - - BoxAPIConnection api = createConnectionWith(boxMockUrl().toString()); - api.setMaxRetryAttempts(expectedNumRetryAttempts); - - BoxAPIRequest request = new BoxAPIRequest(api, boxMockUrl(), "GET"); - request.setBackoffCounter(backoffCounter); - - try { - request.send(); - } catch (BoxAPIException e) { - verify(expectedNumRetryAttempts + 1, getRequestedFor(urlEqualTo("/"))); - } - } - - @Test - public void requestRetriesUsingSecondsProvidedInRetryHeader() throws InterruptedException { - final int expectedNumRetryAttempts = 1; - stubFor(get(urlEqualTo("/")).willReturn(aResponse() - .withStatus(429) - .withBody("{}") - .withHeader("Retry-After", "20") - )); - Time mockTime = mock(Time.class); - BackoffCounter backoffCounter = new BackoffCounter(mockTime); - - BoxAPIConnection api = createConnectionWith(boxMockUrl().toString()); - api.setMaxRetryAttempts(expectedNumRetryAttempts); - - BoxAPIRequest request = new BoxAPIRequest(api, boxMockUrl(), "GET"); - request.setBackoffCounter(backoffCounter); - - try { - request.send(); - } catch (BoxAPIException e) { - Mockito.verify(mockTime).waitDuration(eq(20000)); - } - } - - @Test - public void requestSendsXBoxUAHeader() { - - stubFor(get(urlEqualTo("/")).willReturn(aResponse() - .withStatus(202) - .withHeader("Content-Type", APPLICATION_JSON) - .withBody("{}"))); - - BoxAPIConnection api = createConnectionWith(boxMockUrl().toString()); - BoxAPIRequest request = new BoxAPIRequest(api, boxMockUrl(), "GET"); - - try (BoxAPIResponse response = request.send()) { - assertNotNull(response); - String headerRegex = "agent=box-java-sdk/\\d\\.\\d+\\.\\d+(-[a-zA-Z]+)?; env=Java/\\d+\\.\\d+\\.\\d+.*"; - RequestPatternBuilder requestPatternBuilder = RequestPatternBuilder.newRequestPattern() - .withHeader("X-Box-UA", matching(headerRegex)); - verify(requestPatternBuilder); - } - } - - @Test - public void requestDoesNotAllowModifyingBoxUAHeader() { - - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - - BoxAPIRequest request = new BoxAPIRequest(api, boxMockUrl(), "GET"); - - try { - request.addHeader("X-Box-UA", "foo"); - fail("Exception should have been thrown"); - } catch (IllegalArgumentException ex) { - // Don't need to do anything - } - } - - @Test - public void requestDoesNotAllowDuplicateAsUserHeader() { - - BoxAPIRequest request = new BoxAPIRequest(new BoxAPIConnectionForTests(""), boxMockUrl(), "GET"); - - request.addHeader("As-User", "12345"); - request.addHeader("As-User", "67890"); - - boolean headerFound = false; - String headerValue = null; - for (BoxAPIRequest.RequestHeader header : request.getHeaders()) { - if (header.getKey().equals("As-User")) { - if (headerFound) { - fail("Duplicate As-User header found!"); - return; - } - - headerFound = true; - headerValue = header.getValue(); - } - } - - assertEquals("67890", headerValue); - } - - @Test - public void whenJsonCannotBeParseExceptionIsThrown() { - BoxAPIConnection api = createConnectionWith(boxMockUrl().toString()); - BoxAPIRequest request = new BoxAPIRequest(api, boxMockUrl(), "GET"); - stubFor(get(urlEqualTo("/")).willReturn( - aResponse() - .withStatus(200) - .withHeader("content-type", APPLICATION_JSON) - .withBody("Not a Json".getBytes(UTF_8)) - )); - try { - request.send(); - } catch (BoxAPIException e) { - assertThat(e.getMessage(), is("Error parsing JSON:\nNot a Json")); - assertThat(e.getCause().getClass(), is(ParseException.class)); - } - } - - @Test - public void handlesGZIPResponse() { - BoxAPIConnection api = createConnectionWith(boxMockUrl().toString()); - BoxAPIRequest request = new BoxAPIRequest(api, boxMockUrl(), "GET"); - String jsonString = "{\"foo\":\"bar\"}"; - stubFor(get(urlEqualTo("/")).willReturn( - aResponse() - .withStatus(200) - .withHeader("content-type", APPLICATION_JSON) - .withHeader("content-encoding", "gzip") - .withBody(gzipped(jsonString)) - )); - - try (BoxAPIResponse response = request.send()) { - assertThat(response.bodyToString(), is(jsonString)); - } - } - - @Test - public void willNotRetry400ErrorWithPlainTextResponse() { - stubFor(get(urlEqualTo("/")).willReturn(aResponse().withStatus(400).withBody("Not a JSON"))); - - BoxAPIConnection api = createConnectionWith(boxMockUrl().toString()); - - BoxAPIRequest request = new BoxAPIRequest(api, boxMockUrl(), "GET"); - - try { - request.send(); - } catch (BoxAPIException e) { - verify(1, getRequestedFor(urlEqualTo("/"))); - assertThat(e.getMessage(), is("API returned an error\nNot a JSON")); - assertThat(e.getResponse(), is("Not a JSON")); - assertThat(e.getResponseCode(), is(400)); - } - } - - @Test - public void willNotRetry400ErrorWithJsonResponse() { - stubFor(get(urlEqualTo("/")).willReturn(aResponse().withStatus(400).withBody("{\"foo\":\"bar\"}"))); - - BoxAPIConnection api = createConnectionWith(boxMockUrl().toString()); - - BoxAPIRequest request = new BoxAPIRequest(api, boxMockUrl(), "GET"); - - try { - request.send(); - } catch (BoxAPIException e) { - verify(1, getRequestedFor(urlEqualTo("/"))); - assertThat(e.getMessage(), is("The API returned an error code [400]")); - assertThat(e.getResponse(), is("{\"foo\":\"bar\"}")); - assertThat(e.getResponseCode(), is(400)); - } - } - - @Test - public void interceptorCanModifyRequest() { - String headerName = "XX-My-Custom-Header"; - String headerValue = "some value"; - stubFor(get(urlEqualTo("/")).withHeader(headerName, equalTo(headerValue)) - .willReturn(aResponse().withStatus(200).withBody("{\"foo\":\"bar\"}"))); - - BoxAPIConnection api = createConnectionWith(boxMockUrl().toString()); - api.setRequestInterceptor(request -> { - request.addHeader(headerName, headerValue); - return null; - }); - - new BoxAPIRequest(api, boxMockUrl(), "GET").send(); - verify(1, getRequestedFor(urlEqualTo("/"))); - } - - @Test - public void interceptorCanModifyRequestURL() { - String initialPath = "/"; - String modifiedPath = "/2"; - - stubFor(get(urlEqualTo(initialPath)) - .willReturn(aResponse().withStatus(404))); - stubFor(get(urlEqualTo(modifiedPath)) - .willReturn(aResponse().withStatus(200).withBody("{\"foo\":\"bar\"}"))); - - BoxAPIConnection api = createConnectionWith(boxMockUrl().toString()); - api.setRequestInterceptor(request -> { - request.setUrl(boxMockUrl(modifiedPath)); - return null; - }); - - new BoxAPIRequest(api, boxMockUrl(), "GET").send(); - verify(1, getRequestedFor(urlEqualTo(modifiedPath))); - verify(0, getRequestedFor(urlEqualTo(initialPath))); - } - - @Test - public void addsAuthenticationHeaderByDefault() { - stubFor(get(urlEqualTo("/")) - .willReturn(aResponse().withStatus(200).withBody("{\"foo\":\"bar\"}"))); - - BoxAPIConnection api = createConnectionWith(boxMockUrl().toString()); - - - new BoxAPIRequest(api, boxMockUrl(), "GET").send(); - verify(1, getRequestedFor(urlEqualTo("/")) - .withHeader(AUTHORIZATION, new EqualToPattern("Bearer", true)) - ); - } - - @Test - public void willNotAddAuthenticationHeaderWhenDisabled() { - stubFor(get(urlEqualTo("/")) - .willReturn(aResponse().withStatus(200).withBody("{\"foo\":\"bar\"}"))); - - BoxAPIConnection api = createConnectionWith(boxMockUrl().toString()); - - BoxAPIRequest request = new BoxAPIRequest(api, boxMockUrl(), "GET"); - request.shouldAuthenticate(false); - request.send(); - verify(1, getRequestedFor(urlEqualTo("/")).withoutHeader(AUTHORIZATION)); - } - - private byte[] gzipped(String str) { - try { - ByteArrayOutputStream obj = new ByteArrayOutputStream(); - try (GZIPOutputStream gzip = new GZIPOutputStream(obj)) { - byte[] bytes = str.getBytes(UTF_8); - gzip.write(bytes, 0, bytes.length); - gzip.flush(); - gzip.finish(); - } - return obj.toByteArray(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - @Test - public void handlesZstdResponse() throws IOException { - BoxAPIConnection api = createConnectionWith(boxMockUrl().toString()); - BoxAPIRequest request = new BoxAPIRequest(api, boxMockUrl(), "GET"); - String jsonString = "{\"foo\":\"bar\"}"; - - stubFor(get(urlEqualTo("/")).willReturn( - aResponse() - .withStatus(200) - .withHeader("content-type", APPLICATION_JSON) - .withHeader("content-encoding", "zstd") - .withBody(zstdCompressed(jsonString)) - )); - - try (BoxAPIResponse response = request.send()) { - assertThat(response.bodyToString(), is(jsonString)); - } - } - - private byte[] zstdCompressed(String str) throws IOException { - ByteArrayOutputStream obj = new ByteArrayOutputStream(); - try (ZstdOutputStream zstd = new ZstdOutputStream(obj)) { - zstd.write(str.getBytes(UTF_8)); - } - return obj.toByteArray(); - } - - private URL boxMockUrl() { - try { - return new URL(format("https://localhost:%d/", wireMockRule.httpsPort())); - } catch (MalformedURLException e) { - throw new RuntimeException(e); - } - } - - private URL boxMockUrl(String path) { - try { - return new URL(format("https://localhost:%d%s", wireMockRule.httpsPort(), path)); - } catch (MalformedURLException e) { - throw new RuntimeException(e); - } - } -} diff --git a/src/test/java/com/box/sdk/BoxAPIResponseExceptionTest.java b/src/test/java/com/box/sdk/BoxAPIResponseExceptionTest.java deleted file mode 100644 index 9ca5f4a4a..000000000 --- a/src/test/java/com/box/sdk/BoxAPIResponseExceptionTest.java +++ /dev/null @@ -1,313 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.TestUtils.createConnectionWith; -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.post; -import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; -import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static java.util.Collections.singletonList; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.fail; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -/** - * BoxAPIConnection unit tests - */ -public class BoxAPIResponseExceptionTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(baseUrl()); - } - - @Test - public void testAPIResponseExceptionReturnsCorrectErrorMessage() throws MalformedURLException { - BoxAPIConnection api = createConnectionWith(baseUrl()); - - final JsonObject fakeJSONResponse = Json.parse("{\n" - + " \"type\": \"error\",\n" - + " \"status\": \"409\",\n" - + " \"code\": \"item_name_in_use\",\n" - + " \"context_info\": {\n" - + " \"conflicts\": [\n" - + " {\n" - + " \"type\": \"folder\",\n" - + " \"id\": \"12345\",\n" - + " \"sequence_id\": \"1\",\n" - + " \"etag\": \"1\",\n" - + " \"name\": \"Helpful things\"\n" - + " }\n" - + " ]\n" - + " },\n" - + " \"help_url\": \"http://developers.box.com/docs/#errors\",\n" - + " \"message\": \"Item with the same name already exists\",\n" - + " \"request_id\": \"5678\"\n" - + " }").asObject(); - - stubFor(post(urlEqualTo("/folders")) - .willReturn(aResponse() - .withStatus(409) - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(fakeJSONResponse.toString()))); - - BoxAPIRequest request = new BoxAPIRequest(api, foldersUrl(), "POST"); - - try { - request.send(); - } catch (BoxAPIResponseException e) { - assertEquals(409, e.getResponseCode()); - assertEquals("The API returned an error code [409 | 5678] item_name_in_use - " - + "Item with the same name already exists", e.getMessage()); - return; - } - - fail("Never threw a BoxAPIResponseException"); - } - - @Test - public void testAPIResponseExceptionMissingFieldsReturnsCorrectErrorMessage() throws MalformedURLException { - BoxAPIConnection api = createConnectionWith(baseUrl()); - final JsonObject fakeJSONResponse = Json.parse("{\n" - + " \"type\": \"error\",\n" - + " \"status\": \"409\",\n" - + " \"context_info\": {\n" - + " \"conflicts\": [\n" - + " {\n" - + " \"type\": \"folder\",\n" - + " \"id\": \"12345\",\n" - + " \"sequence_id\": \"1\",\n" - + " \"etag\": \"1\",\n" - + " \"name\": \"Helpful things\"\n" - + " }\n" - + " ]\n" - + " },\n" - + " \"help_url\": \"http://developers.box.com/docs/#errors\"\n" - + " }").asObject(); - - stubFor(post(urlEqualTo("/folders")) - .willReturn(aResponse() - .withStatus(409) - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(fakeJSONResponse.toString()))); - - BoxAPIRequest request = new BoxAPIRequest(api, foldersUrl(), "POST"); - - try { - request.send(); - } catch (BoxAPIResponseException e) { - assertEquals(409, e.getResponseCode()); - assertEquals("The API returned an error code [409]", e.getMessage()); - return; - } - - fail("Never threw a BoxAPIResponseException"); - } - - @Test - public void testAPIResponseExceptionMissingBodyReturnsCorrectErrorMessage() throws MalformedURLException { - BoxAPIConnection api = createConnectionWith(baseUrl()); - - stubFor(post(urlEqualTo("/folders")) - .willReturn(aResponse() - .withStatus(403))); - - BoxAPIRequest request = new BoxAPIRequest(api, foldersUrl(), "POST"); - - try { - request.send(); - } catch (BoxAPIResponseException e) { - assertEquals(403, e.getResponseCode()); - assertEquals("", e.getResponse()); - assertEquals("The API returned an error code [403]", e.getMessage()); - return; - } - - fail("Never threw a BoxAPIResponseException"); - } - - @Test - public void testAPIResponseExceptionWithHTMLBodyReturnsCorrectErrorMessage() throws MalformedURLException { - - String body = "

    500 Server Error

    "; - - BoxAPIConnection api = createConnectionWith(baseUrl()); - api.setMaxRetryAttempts(1); - - stubFor(post(urlEqualTo("/folders")) - .willReturn(aResponse() - .withBody(body) - .withStatus(500))); - - BoxAPIRequest request = new BoxAPIRequest(api, foldersUrl(), "POST"); - - try { - request.send(); - } catch (BoxAPIResponseException e) { - assertEquals(500, e.getResponseCode()); - assertEquals(body, e.getResponse()); - assertEquals("The API returned an error code [500]", e.getMessage()); - return; - } - - fail("Never threw a BoxAPIResponseException"); - } - - @Test - public void testResponseExceptionHeadersIsCaseInsensitive() { - Map> headers = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); - headers.put("FOO", singletonList("bAr")); - BoxAPIResponseException responseException = new BoxAPIResponseException("Test Message", 202, "{}", headers); - - Assert.assertTrue(responseException.getHeaders().containsKey("foo")); - Assert.assertTrue(responseException.getHeaders().containsKey("fOo")); - Assert.assertTrue(responseException.getHeaders().containsKey("FOO")); - assertEquals("bAr", responseException.getHeaders().get("foo").get(0)); - } - - @Test - public void testGetResponseHeadersWithNoRequestID() { - final String userURL = "/2.0/users/12345"; - - String result = TestUtils.getFixture("BoxException/BoxResponseException403"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(userURL)) - .willReturn(WireMock.aResponse() - .withHeader("BOX-REQUEST-ID", "11111") - .withStatus(403) - .withBody(result))); - - try { - BoxUser user = new BoxUser(this.api, "12345"); - assertNotNull(user.getInfo()); - } catch (Exception e) { - assertEquals("The API returned an error code [403 | .11111] Forbidden", e.getMessage()); - } - } - - - @Test - public void testGetResponseExceptionCorrectlyWithAllID() { - final String userURL = "/2.0/users/12345"; - - String result = TestUtils.getFixture("BoxException/BoxResponseException403WithRequestID"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(userURL)) - .willReturn(WireMock.aResponse() - .withHeader("BOX-REQUEST-ID", "11111") - .withStatus(403) - .withBody(result))); - - try { - BoxUser user = new BoxUser(this.api, "12345"); - assertNotNull(user.getInfo()); - } catch (Exception e) { - assertEquals("The API returned an error code [403 | 22222.11111] Forbidden", e.getMessage()); - } - } - - @Test - public void testGetResponseExceptionErrorAndErrorDescription() { - final String userURL = "/2.0/users/12345"; - - String result = TestUtils.getFixture("BoxException/BoxResponseException400WithErrorAndErrorDescription"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(userURL)) - .willReturn(WireMock.aResponse() - .withHeader("BOX-REQUEST-ID", "11111") - .withStatus(403) - .withBody(result))); - - - try { - new BoxUser(this.api, "12345"); - } catch (Exception e) { - assertEquals( - "The API returned an error code [403 | 22222.11111] Forbidden - Unauthorized Access", - e.getMessage() - ); - } - - } - - @Test - public void testGetResponseHeadersCorrectlyWithEmptyBody() { - final String userURL = "/2.0/users/12345"; - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(userURL)) - .willReturn(WireMock.aResponse() - .withHeader("BOX-REQUEST-ID", "11111") - .withStatus(403))); - - try { - BoxUser user = new BoxUser(this.api, "12345"); - assertNotNull(user.getInfo()); - } catch (Exception e) { - assertEquals("The API returned an error code [403 | .11111]", e.getMessage()); - } - } - - @Test - public void testGeneratingWhenContextInfoPresentWithOneError() { - // given - String errorJsonString = "{\n" - + " \"type\": \"error\",\n" - + " \"status\": 400,\n" - + " \"code\": \"bad_request\",\n" - + " \"context_info\": {\n" - + " \"errors\": [\n" - + " {\n" - + " \"reason\": \"invalid_parameter\",\n" - + " \"name\": \"stream_type\",\n" - + " \"message\": \"Invalid value 'admin_logs_streaming'.\"\n" - + " }\n" - + " ]\n" - + " },\n" - + " \"help_url\": \"http:\\/\\/developers.box.com\\/docs\\/#errors\",\n" - + " \"message\": \"Bad Request\",\n" - + " \"request_id\": \"feo3k0gwg4ji04zl\"\n" - + "}"; - - //when - BoxAPIResponseException exception = - new BoxAPIResponseException("Bad Request", 400, errorJsonString, new HashMap<>()); - - assertThat(exception.getMessage(), is("Bad Request [400 | feo3k0gwg4ji04zl] bad_request - Bad Request")); - assertThat(exception.getResponseCode(), is(400)); - assertThat(exception.getResponse(), is(errorJsonString) - ); - } - - private URL foldersUrl() throws MalformedURLException { - return new URL(baseUrl() + "/folders"); - } - - private String baseUrl() { - return format("https://localhost:%d", wireMockRule.httpsPort()); - } -} diff --git a/src/test/java/com/box/sdk/BoxAPIResponseTest.java b/src/test/java/com/box/sdk/BoxAPIResponseTest.java deleted file mode 100644 index 27202114c..000000000 --- a/src/test/java/com/box/sdk/BoxAPIResponseTest.java +++ /dev/null @@ -1,183 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BinaryBodyUtils.writeStreamWithContentLength; -import static com.box.sdk.StandardCharsets.UTF_8; -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static java.util.Arrays.asList; -import static java.util.Collections.singletonList; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.contains; -import static org.hamcrest.Matchers.is; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; -import org.junit.Test; - -public class BoxAPIResponseTest { - - /** - * Simulated large InputStream that generates data on demand. - */ - static class LargeByteArrayInputStream extends InputStream { - private final long size; - private long bytesRead = 0; - - LargeByteArrayInputStream(long size) { - this.size = size; - } - - @Override - public int read() throws IOException { - if (bytesRead < size) { - bytesRead++; - return 'A'; // Simulated byte - } - return -1; // End of stream - } - - @Override - public int read(byte[] b, int off, int len) throws IOException { - if (bytesRead >= size) { - return -1; - } - int bytesToRead = (int) Math.min(len, size - bytesRead); - for (int i = 0; i < bytesToRead; i++) { - b[off + i] = 'A'; - } - bytesRead += bytesToRead; - return bytesToRead; - } - } - - - /** - * Null OutputStream that discards written data (useful for counting bytes). - */ - class NullOutputStream extends OutputStream { - long bytesWritten = 0; - @Override - public void write(int b) { - bytesWritten++; - } - - @Override - public void write(byte[] b, int off, int len) { - bytesWritten += len; - } - - long getBytesWritten() { - return bytesWritten; - } - } - - @Test - public void testAPIResponseHeaderIsCaseInsensitive() { - Map> headers = new TreeMap<>(); - headers.put("FOO", singletonList("bAr")); - BoxAPIResponse response = new BoxAPIResponse(202, "GET", "https://aaa.com", headers); - - assertThat(response.getHeaders().get("foo"), contains("bAr")); - assertThat(response.getHeaderField("foo"), is("bAr")); - assertThat(response.getHeaders().get("fOo"), contains("bAr")); - assertThat(response.getHeaderField("fOo"), is("bAr")); - assertThat(response.getHeaders().get("FOO"), contains("bAr")); - assertThat(response.getHeaderField("FOO"), is("bAr")); - } - - @Test - public void testWhenHeadersAreNull() { - new BoxAPIResponse(202, "GET", "https://aaa.com", null); - } - - @Test - public void testReturnsFirstHeaderFromList() { - Map> headers = new TreeMap<>(); - headers.put("FOO", asList("bAr", "zab")); - BoxAPIResponse response = new BoxAPIResponse(202, "GET", "https://aaa.com", headers); - - assertThat(response.getHeaders().get("foo"), contains("bAr", "zab")); - assertThat(response.getHeaderField("foo"), is("bAr")); - } - - @Test - public void testResponseWithoutBodyToString() { - Map> headers = new TreeMap<>(); - headers.put("FOO", asList("bAr", "zab")); - BoxAPIResponse response = new BoxAPIResponse(200, "GET", "https://aaa.com", headers); - - String str = response.toString(); - assertThat(str, is("Response\nGET https://aaa.com 200\nHeaders:\nfoo: [[bAr, zab]]")); - } - - @Test - public void testBinaryResponseToString() { - Map> headers = new TreeMap<>(); - headers.put("FOO", asList("bAr", "zab")); - ByteArrayInputStream responseBody = new ByteArrayInputStream("This is image".getBytes(UTF_8)); - BoxAPIResponse response = new BoxAPIResponse( - 202, "GET", "https://aaa.com", headers, responseBody, "image/jpg", responseBody.available() - ); - - String str = response.toString(); - assertThat(str, is("Response\nGET https://aaa.com 202\nContent-Type: image/jpg\nHeaders:\nfoo: [[bAr, zab]]")); - } - - @Test - public void testJsonResponseToString() { - Map> headers = new TreeMap<>(); - headers.put("FOO", asList("bAr", "zab")); - ByteArrayInputStream responseBody = new ByteArrayInputStream("{\"foo\":\"bar\"}".getBytes(UTF_8)); - BoxAPIResponse response = new BoxAPIResponse( - 202, "GET", "https://aaa.com", headers, responseBody, APPLICATION_JSON, responseBody.available() - ); - - String str = response.toString(); - assertThat(str, is( - "Response\nGET https://aaa.com 202\n" - + "Content-Type: application/json\n" - + "Headers:\nfoo: [[bAr, zab]]\n" - + "Body:\n{\"foo\":\"bar\"}") - ); - } - - - @Test - public void testBoxJSONResponseToString() { - Map> headers = new TreeMap<>(); - headers.put("FOO", asList("bAr", "zab")); - String responseBody = "{\"foo\":\"bar\"}"; - JsonObject jsonBody = Json.parse(responseBody).asObject(); - BoxAPIResponse response = new BoxJSONResponse( - 202, "GET", "https://aaa.com", headers, jsonBody - ); - - String str = response.toString(); - assertThat(str, is( - "Response\nGET https://aaa.com 202\n" - + "Content-Type: application/json\n" - + "Headers:\nfoo: [[bAr, zab]]\n" - + "Body:\n{\"foo\":\"bar\"}") - ); - } - - @Test - public void testLargeBinaryResponseContentLength() { - long contentLength = Integer.MAX_VALUE + 10000L; - Map> headers = new TreeMap<>(); - headers.put("content-length", singletonList(Long.toString(contentLength))); - LargeByteArrayInputStream inputStream = new LargeByteArrayInputStream(contentLength); - NullOutputStream outputStream = new NullOutputStream(); - BoxAPIResponse response = new BoxAPIResponse( - 202, "GET", "https://aaa.com", headers, inputStream, "image/jpg", -1 - ); - writeStreamWithContentLength(response, outputStream); - assertThat(outputStream.getBytesWritten(), is(contentLength)); - } -} diff --git a/src/test/java/com/box/sdk/BoxCCGAPIConnectionTest.java b/src/test/java/com/box/sdk/BoxCCGAPIConnectionTest.java deleted file mode 100644 index 93b57f530..000000000 --- a/src/test/java/com/box/sdk/BoxCCGAPIConnectionTest.java +++ /dev/null @@ -1,362 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxAPIConnection.AS_USER_HEADER; -import static com.box.sdk.BoxCCGAPIConnection.ENTERPRISE_SUBJECT_TYPE; -import static com.box.sdk.BoxCCGAPIConnection.USER_SUBJECT_TYPE; -import static com.box.sdk.http.ContentType.APPLICATION_FORM_URLENCODED; -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.box.sdk.http.HttpHeaders.CONTENT_TYPE; -import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.post; -import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; -import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static com.github.tomakehurst.wiremock.stubbing.Scenario.STARTED; -import static java.lang.String.format; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.containsInAnyOrder; -import static org.hamcrest.Matchers.hasSize; -import static org.hamcrest.Matchers.is; - -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Optional; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.stream.Collectors; -import org.junit.Rule; -import org.junit.Test; - -/** - * Unit tests for {@link BoxCCGAPIConnection} - */ -public class BoxCCGAPIConnectionTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - - @Test - public void createsServiceAccountConnection() { - // given - String clientId = "some_client_id"; - String clientSecret = "some_client_secret"; - String enterpriseId = "some_enterprise_id"; - String accessToken = "access_token"; - BoxAPIConnection api = - BoxCCGAPIConnection.applicationServiceAccountConnection(clientId, clientSecret, enterpriseId); - api.setRequestInterceptor(request -> { - // then - assertThat(request.getMethod(), is("POST")); - assertRequestHeaders(request); - assertRequestTokenBody( - request, - "some_client_id", - "some_client_secret", - ENTERPRISE_SUBJECT_TYPE, - "some_enterprise_id" - ); - return new CCGAuthenticationResponse(accessToken, "4245"); - }); - - // when - api.refresh(); - - assertThat(api.getAccessToken(), is(accessToken)); - assertThat(api.getExpires(), is(4245000L)); - assertThat(api.getClientID(), is(clientId)); - assertThat(api.getClientSecret(), is(clientSecret)); - } - - @Test - public void createsUserConnection() { - // given - String clientId = "some_client_id"; - String clientSecret = "some_client_secret"; - String userId = "some_user_id"; - String accessToken = "access_token"; - BoxAPIConnection api = - BoxCCGAPIConnection.userConnection(clientId, clientSecret, userId); - api.setRequestInterceptor(request -> { - // then - assertThat(request.getMethod(), is("POST")); - assertRequestHeaders(request); - assertRequestTokenBody( - request, - "some_client_id", - "some_client_secret", - USER_SUBJECT_TYPE, - "some_user_id" - ); - return new CCGAuthenticationResponse(accessToken, "4245"); - }); - - // when - api.refresh(); - - assertThat(api.getAccessToken(), is(accessToken)); - assertThat(api.getExpires(), is(4245000L)); - assertThat(api.getClientID(), is(clientId)); - assertThat(api.getClientSecret(), is(clientSecret)); - } - - @Test - public void shouldRetryOnFailure() { - // given - String accessToken = "access_token"; - BoxAPIConnection api = createDefaultApplicationConnection(); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - String scenarioName = "Retry getting token"; - String stateName = "Retry"; - stubFor(post(urlEqualTo("/oauth2/token")) - .inScenario(scenarioName) - .whenScenarioStateIs(STARTED) - .willReturn(aResponse() - .withBody("{}") - .withStatus(500) - .withHeader(CONTENT_TYPE, APPLICATION_JSON) - ) - .willSetStateTo(stateName)); - stubFor(post(urlEqualTo("/oauth2/token")) - .inScenario(scenarioName) - .whenScenarioStateIs(stateName) - .willReturn(aResponse() - .withBody("{\n" - + " \"access_token\": \"" + accessToken + "\",\n" - + " \"expires_in\": 4000,\n" - + " \"restricted_to\": [],\n" - + " \"token_type\": \"bearer\"\n" - + "}") - .withHeader(CONTENT_TYPE, APPLICATION_JSON) - .withStatus(200) - ) - ); - - // when - api.refresh(); - - // then - assertThat(api.getAccessToken(), is(accessToken)); - } - - @Test - public void allowsToSaveAndRestoreApplicationConnection() throws URISyntaxException { - // given - String accessToken = "access_token"; - String clientId = "some_client_id"; - String clientSecret = "some_client_secret"; - String enterpriseId = "some_enterprise_id"; - BoxCCGAPIConnection api = - BoxCCGAPIConnection.applicationServiceAccountConnection(clientId, clientSecret, enterpriseId); - api.setRequestInterceptor(request -> new CCGAuthenticationResponse(accessToken, "4245")); - - // when - api.refresh(); - String savedConnection = api.save(); - BoxCCGAPIConnection restoredApi = BoxCCGAPIConnection.restore(clientId, clientSecret, savedConnection); - - // then - assertThat(api.getAccessToken(), is(restoredApi.getAccessToken())); - assertThat(api.getLastRefresh(), is(restoredApi.getLastRefresh())); - assertThat(api.getExpires(), is(restoredApi.getExpires())); - assertThat(api.getUserAgent(), is(restoredApi.getUserAgent())); - assertThat(api.getTokenURL(), is(restoredApi.getTokenURL())); - assertThat(api.getRevokeURL(), is(restoredApi.getRevokeURL())); - assertThat( - api.getAuthorizationURL(new URI("https://redirect.me"), "test", new ArrayList<>()), - is(restoredApi.getAuthorizationURL(new URI("https://redirect.me"), "test", new ArrayList<>())) - ); - assertThat(api.getBaseURL(), is(restoredApi.getBaseURL())); - assertThat(api.getBaseAppUrl(), is(restoredApi.getBaseAppUrl())); - assertThat(api.getBaseUploadURL(), is(restoredApi.getBaseUploadURL())); - assertThat(api.getAutoRefresh(), is(restoredApi.getAutoRefresh())); - assertThat(api.getMaxRetryAttempts(), is(restoredApi.getMaxRetryAttempts())); - assertThat(api.isUserConnection(), is(restoredApi.isUserConnection())); - } - - @Test - public void allowsToSaveAndRestoreUserConnection() { - // given - String accessToken = "access_token"; - String clientId = "some_client_id"; - String clientSecret = "some_client_secret"; - String userId = "some_user_id"; - BoxCCGAPIConnection api = - BoxCCGAPIConnection.userConnection(clientId, clientSecret, userId); - api.setRequestInterceptor(request -> new CCGAuthenticationResponse(accessToken, "4245")); - - // when - api.refresh(); - String savedConnection = api.save(); - BoxAPIConnection restoredApi = BoxCCGAPIConnection.restore(clientId, clientSecret, savedConnection); - - restoredApi.setRequestInterceptor(request -> { - // then - assertThat(request.getMethod(), is("POST")); - assertRequestHeaders(request); - assertRequestTokenBody( - request, - clientId, - clientSecret, - USER_SUBJECT_TYPE, - userId - ); - return new CCGAuthenticationResponse(accessToken, "4245"); - }); - - // when - restoredApi.refresh(); - } - - @Test - public void applicationConnectionAllowsToSetAsUserHeader() { - // given - String accessToken = "access_token"; - BoxAPIConnection api = createDefaultApplicationConnection(); - String userId = "some_user_id"; - api.asUser(userId); - api.setRequestInterceptor(request -> { - // then - Optional header = request.getHeaders().stream() - .filter(h -> h.getKey().equals(AS_USER_HEADER)) - .findFirst(); - assertThat(header.isPresent(), is(true)); - assertThat(header.get().getValue(), is(userId)); - return new CCGAuthenticationResponse(accessToken, "4245"); - }); - - // when - api.refresh(); - } - - @Test - public void applicationConnectionAllowsToRemoveAsUserHeader() { - // given - String accessToken = "access_token"; - BoxAPIConnection api = createDefaultApplicationConnection(); - api.asUser("some_user_id"); - api.asSelf(); - api.setRequestInterceptor(request -> { - // then - Optional header = request.getHeaders().stream() - .filter(h -> h.getKey().equals(AS_USER_HEADER)) - .findFirst(); - assertThat(header.isPresent(), is(false)); - return new CCGAuthenticationResponse(accessToken, "4245"); - }); - - // when - api.refresh(); - } - - @Test - public void allowsToRevokeToken() { - // given - String clientId = "some_client_id"; - String clientSecret = "some_client_secret"; - String userId = "some_user_id"; - String accessToken = "access_token"; - AtomicBoolean wasTokenRevoked = new AtomicBoolean(false); - BoxAPIConnection api = - BoxCCGAPIConnection.userConnection(clientId, clientSecret, userId); - api.setAccessToken(""); - api.setRequestInterceptor(request -> { - if (request.getUrl().toString().contains("token")) { - return new CCGAuthenticationResponse(accessToken, "4245"); - } - // then - wasTokenRevoked.set(true); - assertThat(request.getMethod(), is("POST")); - assertRevokeTokenBody( - request, - clientId, - clientSecret, - accessToken - ); - return new BoxAPIResponse() { - @Override - public int getResponseCode() { - return 200; - } - }; - }); - - // when - api.refresh(); - api.revokeToken(); - - //then - assertThat(wasTokenRevoked.get(), is(true)); - } - - private BoxAPIConnection createDefaultApplicationConnection() { - BoxCCGAPIConnection api = BoxCCGAPIConnection - .applicationServiceAccountConnection("some_client_id", "some_client_secret", "some_enterprise_id"); - api.configureSslCertificatesValidation(new TrustAllTrustManager(), new AcceptAllHostsVerifier()); - return api; - } - - private void assertRequestTokenBody( - BoxAPIRequest request, String clientId, String clientSecret, String subjectType, String subjectId - ) { - List body = new BufferedReader(new InputStreamReader(request.getBody(), StandardCharsets.UTF_8)) - .lines() - .flatMap(s -> Arrays.stream(s.split("&"))) - .collect(Collectors.toList()); - assertThat(body, hasSize(5)); - assertThat(body, containsInAnyOrder( - "grant_type=client_credentials", - "client_id=" + clientId, - "client_secret=" + clientSecret, - "box_subject_type=" + subjectType, - "box_subject_id=" + subjectId - - )); - } - - private void assertRevokeTokenBody(BoxAPIRequest request, String clientId, String clientSecret, String token) { - List body = new BufferedReader(new InputStreamReader(request.getBody(), StandardCharsets.UTF_8)) - .lines() - .flatMap(s -> Arrays.stream(s.split("&"))) - .collect(Collectors.toList()); - assertThat(body, hasSize(3)); - assertThat(body, containsInAnyOrder( - "client_id=" + clientId, - "client_secret=" + clientSecret, - "token=" + token - )); - } - - private void assertRequestHeaders(BoxAPIRequest request) { - Optional header = request.getHeaders().stream() - .filter(h -> h.getKey().equals(CONTENT_TYPE)) - .findFirst(); - assertThat(header.isPresent(), is(true)); - assertThat(header.get().getValue(), is(APPLICATION_FORM_URLENCODED)); - } - - private static final class CCGAuthenticationResponse extends BoxJSONResponse { - private final String accessToken; - private final String expiresIn; - - private CCGAuthenticationResponse(String accessToken, String expiresIn) { - this.accessToken = accessToken; - this.expiresIn = expiresIn; - } - - - @Override - public String getJSON() { - return "{\n" - + " \"access_token\": \"" + accessToken + "\",\n" - + " \"expires_in\": " + expiresIn + ",\n" - + " \"restricted_to\": [],\n" - + " \"token_type\": \"bearer\"\n" - + "}"; - } - } -} diff --git a/src/test/java/com/box/sdk/BoxCollaborationAllowlistExemptTargetTest.java b/src/test/java/com/box/sdk/BoxCollaborationAllowlistExemptTargetTest.java deleted file mode 100644 index 846667f1e..000000000 --- a/src/test/java/com/box/sdk/BoxCollaborationAllowlistExemptTargetTest.java +++ /dev/null @@ -1,122 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; - -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.util.Iterator; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -public class BoxCollaborationAllowlistExemptTargetTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void testCreateAllowlistForAUserSucceedsAndSendsCorrectJson() { - final String allowlistURL = "/2.0/collaboration_whitelist_exempt_targets"; - final String userToAllowlistID = "1111"; - final String userToAllowlistLogin = "test@user.com"; - final String userToAllowlistName = "Test User"; - final String allowlistType = "collaboration_whitelist_exempt_target"; - final String allowlistID = "12345"; - - JsonObject userInnerObject = new JsonObject() - .add("id", userToAllowlistID) - .add("type", "user"); - - JsonObject userOuterObject = new JsonObject() - .add("user", userInnerObject); - - String result = TestUtils.getFixture("BoxCollaborationAllowlist/CreateAllowlistForAUser201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(allowlistURL)) - .withRequestBody(WireMock.equalToJson(userOuterObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxCollaborationAllowlistExemptTarget.Info userAllowlistInfo = - BoxCollaborationAllowlistExemptTarget.create(this.api, userToAllowlistID); - - Assert.assertEquals(allowlistType, userAllowlistInfo.getType()); - Assert.assertEquals(allowlistID, userAllowlistInfo.getID()); - Assert.assertEquals(userToAllowlistID, userAllowlistInfo.getUser().getID()); - Assert.assertEquals(userToAllowlistName, userAllowlistInfo.getUser().getName()); - Assert.assertEquals(userToAllowlistLogin, userAllowlistInfo.getUser().getLogin()); - } - - @Test - public void testGetAllowlistInfoForAUser() { - final String allowlistID = "12345"; - final String allowlistURL = "/2.0/collaboration_whitelist_exempt_targets/" + allowlistID; - final String allowlistedUserID = "1111"; - final String allowlistedUserLogin = "test@user.com"; - final String enterpriseID = "2222"; - final String enterpriseName = "Example"; - - String result = TestUtils.getFixture("BoxCollaborationAllowlist/GetAllowlistInfoForAUser200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(allowlistURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxCollaborationAllowlistExemptTarget.Info userAllowlistInfo = new - BoxCollaborationAllowlistExemptTarget(this.api, allowlistID).getInfo(); - - Assert.assertEquals(allowlistID, userAllowlistInfo.getID()); - Assert.assertEquals(allowlistedUserID, userAllowlistInfo.getUser().getID()); - Assert.assertEquals(allowlistedUserLogin, userAllowlistInfo.getUser().getLogin()); - Assert.assertEquals(enterpriseID, userAllowlistInfo.getEnterprise().getID()); - Assert.assertEquals(enterpriseName, userAllowlistInfo.getEnterprise().getName()); - } - - @Test - public void testGetAllowlistInfoForAllUsers() { - final String allowlistExemptUserURL = "/2.0/collaboration_whitelist_exempt_targets"; - final String firstAllowlistType = "collaboration_whitelist_exempt_target"; - final String firstAllowlistID = "1234"; - - String result = TestUtils.getFixture("BoxCollaborationAllowlist/GetAllowlistInfoForAllUsers200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(allowlistExemptUserURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - Iterator allowlistInfo = - BoxCollaborationAllowlistExemptTarget.getAll(this.api).iterator(); - - BoxCollaborationAllowlistExemptTarget.Info firstAllowlistInfo = allowlistInfo.next(); - - Assert.assertEquals(firstAllowlistType, firstAllowlistInfo.getType()); - Assert.assertEquals(firstAllowlistID, firstAllowlistInfo.getID()); - } - - @Test - public void testDeleteCollaborationAllowlistForUser() { - final String allowlistID = "12345"; - final String deleteAllowlistURL = "/2.0/collaboration_whitelist_exempt_targets/" + allowlistID; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(deleteAllowlistURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(204))); - - new BoxCollaborationAllowlistExemptTarget(this.api, allowlistID).delete(); - } -} diff --git a/src/test/java/com/box/sdk/BoxCollaborationAllowlistTest.java b/src/test/java/com/box/sdk/BoxCollaborationAllowlistTest.java deleted file mode 100644 index 32db42747..000000000 --- a/src/test/java/com/box/sdk/BoxCollaborationAllowlistTest.java +++ /dev/null @@ -1,143 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.junit.Assert.assertEquals; - -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.util.Arrays; -import java.util.Iterator; -import java.util.List; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; - -public class BoxCollaborationAllowlistTest { - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void testDeleteAllowlistForDomainSucceeds() { - final String whitelistID = "12345"; - final String deleteAllowlistURL = "/2.0/collaboration_whitelist_entries/" + whitelistID; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(deleteAllowlistURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(204))); - - new BoxCollaborationAllowlist(this.api, whitelistID).delete(); - } - - @Test - public void testGetAllowlistInfoForAllDomainsSucceeds() { - final String whitelistURL = "/2.0/collaboration_whitelist_entries"; - final String firstAllowlistID = "1111"; - final String firstAllowlistDomain = "test.com"; - final String firstAllowlistDirection = "both"; - - String result = TestUtils.getFixture("BoxCollaborationAllowlist/GetAllowlistInfoForAllDomains200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(whitelistURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - Iterator iterator = BoxCollaborationAllowlist.getAll(this.api).iterator(); - BoxCollaborationAllowlist.Info firstAllowlistInfo = iterator.next(); - - assertEquals(firstAllowlistID, firstAllowlistInfo.getID()); - assertEquals(firstAllowlistDomain, firstAllowlistInfo.getDomain()); - assertEquals(firstAllowlistDirection, firstAllowlistInfo.getDirection().toString()); - } - - @Test - public void testGetAllowlistInfoForADomainSucceeds() { - final String whitelistID = "12345"; - final String getAllowlistInfoURL = "/2.0/collaboration_whitelist_entries/" + whitelistID; - final String whitelistDomain = "example.com"; - final String whitelistDirection = "both"; - - String result = TestUtils.getFixture("BoxCollaborationAllowlist/GetAllowlistInfoForADomain200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(getAllowlistInfoURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxCollaborationAllowlist.Info whitelistInfo = new BoxCollaborationAllowlist(this.api, whitelistID).getInfo(); - - assertEquals(whitelistID, whitelistInfo.getID()); - assertEquals(whitelistDomain, whitelistInfo.getDomain()); - assertEquals(whitelistDirection, whitelistInfo.getDirection().toString()); - } - - @Test - public void testCreateAllowlistForDomainSucceedsAndSendsCorrectJson() { - final String whitelistURL = "/2.0/collaboration_whitelist_entries"; - final String domainToAllowlist = "example.com"; - final String whitelistDirection = "both"; - final String whitelistType = "collaboration_whitelist_entry"; - final String whitelistID = "12345"; - final String whitelistedEnterpriseName = "Example"; - - JsonObject whitelistObject = new JsonObject() - .add("domain", domainToAllowlist) - .add("direction", whitelistDirection); - - String result = TestUtils.getFixture("BoxCollaborationAllowlist/CreateAllowlistForDomain201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(whitelistURL)) - .withRequestBody(WireMock.equalToJson(whitelistObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxCollaborationAllowlist.Info collabAllowlistInfo = BoxCollaborationAllowlist.create(this.api, - domainToAllowlist, BoxCollaborationAllowlist.AllowlistDirection.BOTH); - - assertEquals(whitelistType, collabAllowlistInfo.getType()); - assertEquals(whitelistID, collabAllowlistInfo.getID()); - assertEquals(whitelistDirection, collabAllowlistInfo.getDirection().toString()); - assertEquals(domainToAllowlist, collabAllowlistInfo.getDomain()); - assertEquals(whitelistedEnterpriseName, collabAllowlistInfo.getEnterprise().getName()); - } - - @RunWith(Parameterized.class) - public static class EnumValueChecker { - private final String inputString; - private final BoxCollaborationAllowlist.AllowlistDirection expectedResult; - - public EnumValueChecker(String inputString, BoxCollaborationAllowlist.AllowlistDirection expectedResult) { - this.inputString = inputString; - this.expectedResult = expectedResult; - } - - @Parameterized.Parameters - public static List enumValues() { - return Arrays.asList(new Object[][]{ - {"inbound", BoxCollaborationAllowlist.AllowlistDirection.INBOUND}, - {"outbound", BoxCollaborationAllowlist.AllowlistDirection.OUTBOUND}, - {"both", BoxCollaborationAllowlist.AllowlistDirection.BOTH} - }); - } - - @Test - public void whitelistDirectionTest() { - assertEquals(this.expectedResult, - BoxCollaborationAllowlist.AllowlistDirection.fromDirection(this.inputString)); - } - } -} diff --git a/src/test/java/com/box/sdk/BoxCollaborationTest.java b/src/test/java/com/box/sdk/BoxCollaborationTest.java deleted file mode 100644 index fdbbc2b48..000000000 --- a/src/test/java/com/box/sdk/BoxCollaborationTest.java +++ /dev/null @@ -1,325 +0,0 @@ -package com.box.sdk; - - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.junit.Assert.*; - -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.util.Collection; -import java.util.Date; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -public class BoxCollaborationTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void testCreateFileCollaborationSucceeds() { - final String collaborationURL = "/2.0/collaborations"; - final String fileName = "1_1-4_bsp_ball_valve.pdf"; - - String result = TestUtils.getFixture("BoxCollaboration/CreateFileCollaboration201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(collaborationURL)) - .withQueryParam("notify", WireMock.containing("false")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxUser collaborator = new BoxUser(this.api, "1111"); - BoxFile file = new BoxFile(this.api, "12345"); - Date expiresAt = new Date(1586289090000L); - BoxCollaboration.Info collabInfo = file.collaborate( - collaborator, BoxCollaboration.Role.EDITOR, false, false, expiresAt, true - ); - - assertFalse(collabInfo.getCanViewPath()); - assertEquals(fileName, collabInfo.getItem().getName()); - assertEquals(BoxFile.TYPE, collabInfo.getItem().getType()); - assertEquals(BoxFile.Info.class, collabInfo.getItem().getClass()); - assertEquals(BoxCollaboration.Role.EDITOR, collabInfo.getRole()); - assertEquals(BoxCollaboration.Status.ACCEPTED, collabInfo.getStatus()); - assertEquals(expiresAt.getTime(), collabInfo.getExpiresAt().getTime()); - assertTrue(collabInfo.getIsAccessOnly()); - } - - @Test - public void testAcceptPendingCollaborationSendsCorrectJson() { - final String collabID = "12345"; - final String collaborationURL = "/2.0/collaborations"; - final String acceptCollaborationURL = "/2.0/collaborations/" + collabID; - JsonObject acceptInvite = new JsonObject() - .add("status", "accepted"); - - String result = TestUtils.getFixture("BoxCollaboration/GetPendingCollaborationInfo200"); - String updatedResult = TestUtils.getFixture("BoxCollaboration/UpdateCollaboration200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(collaborationURL)) - .withQueryParam("status", WireMock.containing("pending")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(acceptCollaborationURL)) - .withRequestBody(WireMock.equalToJson(acceptInvite.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(updatedResult))); - - Collection pendingCollaborations = BoxCollaboration.getPendingCollaborations(this.api); - for (BoxCollaboration.Info collabInfo : pendingCollaborations) { - collabInfo.setStatus(BoxCollaboration.Status.ACCEPTED); - collabInfo.getResource().updateInfo(collabInfo); - } - } - - @Test - public void testGetPendingCollaborationInfoSucceeds() { - final String collaborationURL = "/2.0/collaborations"; - - String result = TestUtils.getFixture("BoxCollaboration/GetPendingCollaborationInfo200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(collaborationURL)) - .withQueryParam("status", WireMock.containing("pending")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - Collection pendingCollaborations = BoxCollaboration.getPendingCollaborations(this.api); - BoxCollaboration.Info pendingCollabInfo = pendingCollaborations.iterator().next(); - - assertEquals(BoxCollaboration.Status.PENDING, pendingCollabInfo.getStatus()); - assertEquals(BoxCollaboration.Role.EDITOR, pendingCollabInfo.getRole()); - } - - @Test - public void testGetPendingCollaborationInfoWithFieldsSucceeds() { - final String collaborationURL = "/2.0/collaborations?status=pending&fields=id%2Crole%2Cstatus"; - - String result = TestUtils.getFixture("BoxCollaboration/GetPendingCollaborationInfo200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlEqualTo(collaborationURL)) - .withQueryParam("status", WireMock.containing("pending")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - Collection pendingCollaborations = - BoxCollaboration.getPendingCollaborations(this.api, "id", "role", "status"); - BoxCollaboration.Info pendingCollabInfo = pendingCollaborations.iterator().next(); - - assertEquals(BoxCollaboration.Status.PENDING, pendingCollabInfo.getStatus()); - assertEquals(BoxCollaboration.Role.EDITOR, pendingCollabInfo.getRole()); - } - - @Test - public void testGetCollaborationsOnFolderSucceeds() { - final String folderID = "12345"; - final String folderName = "Ball Valve Diagram"; - final String getFolderCollaborationURL = "/2.0/folders/" + folderID + "/collaborations"; - - String result = TestUtils.getFixture("BoxCollaboration/GetCollaborationOnFolder200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(getFolderCollaborationURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - Collection collaborations = folder.getCollaborations(); - BoxCollaboration.Info firstCollabInfo = collaborations.iterator().next(); - - assertEquals(2, collaborations.size()); - assertEquals(BoxCollaboration.Status.ACCEPTED, firstCollabInfo.getStatus()); - assertEquals(BoxCollaboration.Role.EDITOR, firstCollabInfo.getRole()); - assertEquals(folderName, firstCollabInfo.getItem().getName()); - assertEquals(BoxFolder.TYPE, firstCollabInfo.getItem().getType()); - assertEquals(BoxFolder.Info.class, firstCollabInfo.getItem().getClass()); - } - - @Test - public void testDeletedCollaborationSucceeds() { - final String collaborationID = "12345"; - final String deleteCollaborationURL = "/2.0/collaborations/" + collaborationID; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(deleteCollaborationURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(204))); - - BoxCollaboration collaboration = new BoxCollaboration(this.api, collaborationID); - collaboration.delete(); - } - - @Test - public void testCreateAndEditCollaborationSucceeds() { - final String collabID = "12345"; - final String itemName = "Ball Valve Diagram"; - final String createCollaborationURL = "/2.0/collaborations"; - final String editCollaborationURL = "/2.0/collaborations/" + collabID; - - String result = TestUtils.getFixture("BoxCollaboration/CreateCollaboration201"); - - String editResult = TestUtils.getFixture("BoxCollaboration/UpdateCollaboration200"); - - Date expiresAt = new Date(1586289090000L); - JsonObject user = new JsonObject() - .add("id", "2222") - .add("type", "user"); - JsonObject folder = new JsonObject() - .add("id", "5678") - .add("type", "folder"); - - JsonObject createBody = new JsonObject() - .add("accessible_by", user) - .add("item", folder) - .add("role", BoxCollaboration.Role.EDITOR.toJSONString()) - .add("can_view_path", false) - .add("expires_at", BoxDateFormat.format(expiresAt)) - .add("is_access_only", false); - - JsonObject updateBody = new JsonObject() - .add("role", BoxCollaboration.Role.VIEWER.toJSONString()) - .add("expires_at", BoxDateFormat.format(expiresAt)); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(createCollaborationURL)) - .withRequestBody(WireMock.equalToJson(createBody.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(editCollaborationURL)) - .withRequestBody(WireMock.equalToJson(updateBody.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(editResult))); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(editCollaborationURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(editResult))); - - BoxCollaboration.Info collabInfo = BoxCollaboration.create(this.api, user, folder, BoxCollaboration.Role.EDITOR, - false, false, expiresAt, false); - - assertEquals(BoxCollaboration.Status.ACCEPTED, collabInfo.getStatus()); - assertEquals(BoxCollaboration.Role.EDITOR, collabInfo.getRole()); - assertFalse(collabInfo.getCanViewPath()); - assertEquals(collabID, collabInfo.getID()); - assertEquals(itemName, collabInfo.getItem().getName()); - assertEquals(expiresAt, collabInfo.getExpiresAt()); - assertFalse(collabInfo.getIsAccessOnly()); - - - BoxCollaboration collaboration = new BoxCollaboration(this.api, collabID); - collabInfo.setRole(BoxCollaboration.Role.VIEWER); - collabInfo.setExpiresAt(expiresAt); - collaboration.updateInfo(collabInfo); - BoxCollaboration.Info updatedCollabInfo = new BoxCollaboration(this.api, collabID).getInfo(); - - assertEquals(BoxCollaboration.Role.VIEWER, updatedCollabInfo.getRole()); - assertEquals(expiresAt, collabInfo.getExpiresAt()); - } - - @Test - public void testGetCollaborationInfoSucceeds() { - final String collabID = "12345"; - final String collabItemID = "2222"; - final String collabItemName = "Ball Valve Diagram"; - final String createdByEmail = "testuser@example.com"; - final String getCollaborationURL = "/2.0/collaborations/" + collabID; - - String result = TestUtils.getFixture("BoxCollaboration/GetCollaborationInfo200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(getCollaborationURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxCollaboration.Info collabInfo = new BoxCollaboration(this.api, collabID).getInfo(); - - assertEquals(BoxCollaboration.Status.ACCEPTED, collabInfo.getStatus()); - assertEquals(BoxCollaboration.Role.EDITOR, collabInfo.getRole()); - assertFalse(collabInfo.getCanViewPath()); - assertEquals(collabID, collabInfo.getID()); - assertEquals(createdByEmail, collabInfo.getCreatedBy().getLogin()); - assertEquals(collabItemID, collabInfo.getItem().getID()); - assertEquals(collabItemName, collabInfo.getItem().getName()); - assertFalse(collabInfo.getIsAccessOnly()); - } - - @Test - public void testCanViewPathSendsCorrectJson() { - final String collabID = "12345"; - final boolean canViewPathOn = true; - final String collaborationURL = "/2.0/collaborations/" + collabID; - - String result = TestUtils.getFixture("BoxCollaboration/UpdateCollaboration200"); - - JsonObject jsonObject = new JsonObject() - .add("can_view_path", true) - .add("role", "editor"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(collaborationURL)) - .withRequestBody(WireMock.equalToJson(jsonObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxCollaboration collaboration = new BoxCollaboration(this.api, collabID); - BoxCollaboration.Info info = collaboration.new Info(); - info.setRole(BoxCollaboration.Role.EDITOR); - info.setCanViewPath(canViewPathOn); - collaboration.updateInfo(info); - } - - @Test - public void testGetAccessibleLoginSucceeds() { - final String collabID = "12345"; - final String accessiblyByLogin = "example@test.com"; - final String getCollaborationURL = "/2.0/collaborations/" + collabID; - - String result = TestUtils.getFixture("BoxCollaboration/GetCollaborationInfo200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(getCollaborationURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxCollaboration.Info collabInfo = new BoxCollaboration(this.api, collabID).getInfo(); - - assertEquals(accessiblyByLogin, collabInfo.getAccessibleBy().getLogin()); - } - - @Test - public void testGetInviteEmailSucceeds() { - final String collabID = "12345"; - final String inviteEmail = "example@test.com"; - final String getCollaborationURL = "/2.0/collaborations/" + collabID; - - String result = TestUtils.getFixture("BoxCollaboration/GetInviteEmailAttributesOnCollaboration200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(getCollaborationURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxCollaboration.Info collabInfo = new BoxCollaboration(this.api, collabID).getInfo("invite_email"); - - assertEquals(inviteEmail, collabInfo.getInviteEmail()); - } -} diff --git a/src/test/java/com/box/sdk/BoxCollectionTest.java b/src/test/java/com/box/sdk/BoxCollectionTest.java deleted file mode 100644 index 32aeddb50..000000000 --- a/src/test/java/com/box/sdk/BoxCollectionTest.java +++ /dev/null @@ -1,150 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.notNullValue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; - -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.util.Iterator; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -public class BoxCollectionTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void testGetItemsRequestCorrectFields() { - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo("/2.0/collections/0/items/")) - .withQueryParam("fields", WireMock.containing("name")) - .withQueryParam("fields", WireMock.containing("description")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody("{}"))); - - BoxCollection collection = new BoxCollection(api, "0"); - collection.getItems("name", "description"); - } - - @Test - public void testGetItemsRangeRequestsCorrectOffsetLimitAndFields() { - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo("/2.0/collections/0/items/")) - .withQueryParam("offset", WireMock.equalTo("0")) - .withQueryParam("limit", WireMock.equalTo("2")) - .withQueryParam("fields", WireMock.containing("name")) - .withQueryParam("fields", WireMock.containing("description")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody("{\"total_count\": 3, \"entries\":[]}"))); - - BoxCollection collection = new BoxCollection(this.api, "0"); - PartialCollection items = collection.getItemsRange(0, 2, "name", "description"); - assertEquals(3L, items.fullSize()); - assertEquals(0, items.offset()); - assertEquals(2L, items.limit()); - } - - @Test - public void addItemToCollectionSucceeds() { - final String folderId = "12345"; - final String addItemURL = "/2.0/folders/" + folderId + "?([a-z]*)"; - final String collectionURL = "/2.0/collections/?limit=100&offset=0"; - BoxCollection favorites = null; - - String collectionsResults = TestUtils.getFixture("BoxCollection/GetCollections200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlEqualTo(collectionURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(collectionsResults))); - - String result = TestUtils.getFixture("BoxCollection/AddItemToCollection200"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathMatching(addItemURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - Iterable collections = BoxCollection.getAllCollections(this.api); - - for (BoxCollection.Info info : collections) { - favorites = info.getResource(); - } - - BoxFolder folder = new BoxFolder(this.api, "12345"); - BoxFolder.Info folderInfo = folder.setCollections(favorites); - - assertThat(favorites, is(notNullValue())); - assertEquals("Ball Valve Diagram", folderInfo.getName()); - assertEquals(75256, folderInfo.getSize()); - assertEquals("12345", folderInfo.getID()); - } - - @Test - public void getCollectionSucceeds() { - final String collectionURL = "/2.0/collections/?limit=100&offset=0"; - - String result = TestUtils.getFixture("BoxCollection/GetCollections200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlEqualTo(collectionURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - Iterable collections = BoxCollection.getAllCollections(this.api); - - BoxCollection.Info favorites = null; - for (BoxCollection.Info info : collections) { - favorites = info; - } - - assertThat(favorites, is(notNullValue())); - assertEquals("Favorites", favorites.getName()); - assertEquals("123456", favorites.getID()); - assertEquals("favorites", favorites.getCollectionType()); - } - - @Test - public void testGetItemsParsesFieldsCorrectly() { - final String collectionID = "12345"; - final String collectionID2 = "123456"; - final String collectionItemsURL = "/2.0/collections/12345/items/"; - final String collectionName = "Simple Contract Final.pdf"; - final String collectionName2 = "google.com"; - - String result = TestUtils.getFixture("BoxCollection/GetCollectionItems200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(collectionItemsURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxCollection collection = new BoxCollection(this.api, collectionID); - Iterator iterator = collection.getItems().iterator(); - BoxFile.Info info = (BoxFile.Info) iterator.next(); - BoxWebLink.Info info2 = (BoxWebLink.Info) iterator.next(); - - assertEquals(collectionID, info.getID()); - assertEquals(collectionName, info.getName()); - assertEquals(collectionID2, info2.getID()); - assertEquals(collectionName2, info2.getName()); - assertNull(info2.getLinkURL()); - } -} diff --git a/src/test/java/com/box/sdk/BoxCommentTest.java b/src/test/java/com/box/sdk/BoxCommentTest.java deleted file mode 100644 index 7c8fa1a8a..000000000 --- a/src/test/java/com/box/sdk/BoxCommentTest.java +++ /dev/null @@ -1,154 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; - -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.util.List; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -public class BoxCommentTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void testDeleteACommentSucceeds() { - final String commentID = "12345"; - final String deleteCommentURL = "/2.0/comments/" + commentID; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(deleteCommentURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(204))); - - new BoxComment(this.api, commentID).delete(); - } - - @Test - public void testChangeACommentsMessageSucceedsAndSendCorrectJson() { - final String commentID = "12345"; - final String changeCommentURL = "/2.0/comments/" + commentID; - final String updatedMessage = "This is an updated message."; - - JsonObject updateCommentObject = new JsonObject() - .add("message", updatedMessage); - - String result = TestUtils.getFixture("BoxComment/UpdateCommentsMessage200"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(changeCommentURL)) - .withRequestBody(WireMock.equalToJson(updateCommentObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxComment comment = new BoxComment(this.api, commentID); - BoxComment.Info commentInfo = comment.changeMessage(updatedMessage); - - assertEquals(updatedMessage, commentInfo.getMessage()); - } - - @Test - public void testCreateCommentSucceedsAndSendsCorrectJson() { - final String createCommentURL = "/2.0/comments"; - final String fileID = "2222"; - final String commentID = "12345"; - final String testCommentMesssage = "This is a test message."; - final String createdByLogin = "test@user.com"; - - JsonObject itemObject = new JsonObject() - .add("type", "file") - .add("id", fileID); - - JsonObject postCommentObject = new JsonObject() - .add("item", itemObject) - .add("message", testCommentMesssage); - - String result = TestUtils.getFixture("BoxComment/CreateComment201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(createCommentURL)) - .withRequestBody(WireMock.equalToJson(postCommentObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFile file = new BoxFile(this.api, fileID); - BoxComment.Info commentInfo = file.addComment(testCommentMesssage); - - assertFalse(commentInfo.getIsReplyComment()); - assertEquals(commentID, commentInfo.getID()); - assertEquals(testCommentMesssage, commentInfo.getMessage()); - assertEquals(createdByLogin, commentInfo.getCreatedBy().getLogin()); - assertEquals(fileID, commentInfo.getItem().getID()); - } - - @Test - public void testGetCommentsOnFileSucceeds() { - final String fileID = "12345"; - final String fileCommentURL = "/2.0/files/" + fileID + "/comments"; - final String firstCommentMessage = "@Test User default comment."; - final String firstCommentID = "1111"; - final String firstCommentCreatedByLogin = "example@user.com"; - final String secondCommentMessage = "@Example User This works."; - final String secondCommentID = "2222"; - final String secondCommentCreatedByLogin = "test@user.com"; - - String result = TestUtils.getFixture("BoxComment/GetCommentsOnFile200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(fileCommentURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFile file = new BoxFile(this.api, fileID); - List comments = file.getComments(); - BoxComment.Info firstComment = comments.get(0); - BoxComment.Info secondComment = comments.get(1); - - assertEquals(3, comments.size()); - assertEquals(firstCommentMessage, firstComment.getMessage()); - assertEquals(firstCommentID, firstComment.getID()); - assertEquals(firstCommentCreatedByLogin, firstComment.getCreatedBy().getLogin()); - assertEquals(secondCommentMessage, secondComment.getMessage()); - assertEquals(secondCommentID, secondComment.getID()); - assertEquals(secondCommentCreatedByLogin, secondComment.getCreatedBy().getLogin()); - } - - @Test - public void testGetCommentInfoSucceeds() { - final String commentID = "12345"; - final String getCommentURL = "/2.0/comments/" + commentID; - final String commentMessage = "@Test User  yes"; - final String createdByName = "Example User"; - final String itemID = "2222"; - - String result = TestUtils.getFixture("BoxComment/GetCommentInfo200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(getCommentURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxComment.Info commentInfo = new BoxComment(this.api, commentID).getInfo(); - - assertFalse(commentInfo.getIsReplyComment()); - assertEquals(commentMessage, commentInfo.getMessage()); - assertEquals(commentID, commentInfo.getID()); - assertEquals(createdByName, commentInfo.getCreatedBy().getName()); - assertEquals(itemID, commentInfo.getItem().getID()); - } -} diff --git a/src/test/java/com/box/sdk/BoxDateFormatTest.java b/src/test/java/com/box/sdk/BoxDateFormatTest.java deleted file mode 100644 index a1abd583d..000000000 --- a/src/test/java/com/box/sdk/BoxDateFormatTest.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.box.sdk; - -import static org.junit.Assert.assertEquals; - -import java.text.ParseException; -import java.time.LocalDateTime; -import java.time.ZoneOffset; -import java.util.Date; -import org.junit.Test; - -public class BoxDateFormatTest { - - @Test - public void testParseWorksWithOffsetTimezone() throws ParseException { - - Date date = BoxDateFormat.parse("2019-04-06T15:57:01-07:00"); - Date expectedDate = new Date(1554591421000L); - assertEquals(expectedDate, date); - } - - @Test - public void testParseWorksWithZuluTimezone() throws ParseException { - - Date date = BoxDateFormat.parse("2019-04-06T22:58:49Z"); - Date expectedDate = new Date(1554591529000L); - assertEquals(expectedDate, date); - } - - @Test - public void testParseWorksWithZeroOffsetTimezone() throws ParseException { - - Date date = BoxDateFormat.parse("2019-04-06T22:58:49+00:00"); - Date expectedDate = new Date(1554591529000L); - assertEquals(expectedDate, date); - } - - @Test - public void testParseWorksWithMinusZeroOffsetTimezone() throws ParseException { - - Date date = BoxDateFormat.parse("2019-04-06T22:58:49-00:00"); - Date expectedDate = new Date(1554591529000L); - assertEquals(expectedDate, date); - } - - @Test - public void testParseWorksWithRFC822ZeroOffsetTimezone() throws ParseException { - - Date date = BoxDateFormat.parse("2019-04-06T22:58:49+0000"); - Date expectedDate = new Date(1554591529000L); - assertEquals(expectedDate, date); - } - - @Test - public void testFormatOutputsZuluTimezone() { - Date date = new Date(1554591421000L); - String expectedString = "2019-04-06T22:57:01Z"; - assertEquals(expectedString, BoxDateFormat.format(date)); - } - - @Test - public void testParseWorksWithMilisecondsResolution() throws ParseException { - - Date date = BoxDateFormat.parse("2019-04-06T22:58:49.123+01:00"); - Date expectedDate = new Date(1554587929123L); - assertEquals(expectedDate, date); - } - - @Test - public void testFormatDateToDateOnlyString() { - Date date = Date.from(LocalDateTime.of(2020, 5, 14, 10, 15, 12) - .toInstant(ZoneOffset.UTC)); - - String formattedDate = BoxDateFormat.formatAsDateOnly(date); - - assertEquals(formattedDate, "2020-05-14"); - } -} diff --git a/src/test/java/com/box/sdk/BoxDeveloperEditionAPIConnectionTest.java b/src/test/java/com/box/sdk/BoxDeveloperEditionAPIConnectionTest.java deleted file mode 100644 index 917363f41..000000000 --- a/src/test/java/com/box/sdk/BoxDeveloperEditionAPIConnectionTest.java +++ /dev/null @@ -1,365 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.post; -import static com.github.tomakehurst.wiremock.client.WireMock.postRequestedFor; -import static com.github.tomakehurst.wiremock.client.WireMock.requestMatching; -import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; -import static com.github.tomakehurst.wiremock.client.WireMock.urlPathMatching; -import static com.github.tomakehurst.wiremock.client.WireMock.verify; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static com.github.tomakehurst.wiremock.stubbing.Scenario.STARTED; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.is; -import static org.mockito.Mockito.*; - -import com.github.tomakehurst.wiremock.extension.Parameters; -import com.github.tomakehurst.wiremock.http.Request; -import com.github.tomakehurst.wiremock.http.RequestMethod; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import com.github.tomakehurst.wiremock.matching.MatchResult; -import com.github.tomakehurst.wiremock.matching.RequestMatcherExtension; -import org.jose4j.jwt.JwtClaims; -import org.jose4j.jwt.consumer.JwtConsumer; -import org.jose4j.jwt.consumer.JwtConsumerBuilder; -import org.junit.Assert; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mockito; -import java.security.KeyFactory; -import java.security.NoSuchAlgorithmException; -import java.security.PrivateKey; -import java.security.spec.InvalidKeySpecException; -import java.security.spec.PKCS8EncodedKeySpec; - -public class BoxDeveloperEditionAPIConnectionTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - - private String jtiClaim = null; - - @Test - public void retriesWithNewJWTAssertionOnErrorResponseAndFails() { - final String tokenPath = "/oauth2/token"; - BoxDeveloperEditionAPIConnection api = this.getBoxDeveloperEditionAPIConnection(); - - this.mockFirstResponse(tokenPath); - - this.wireMockRule.stubFor(requestMatching(this.getRequestMatcher(tokenPath)) - .atPriority(2) - .inScenario("JWT Retry") - .whenScenarioStateIs("429 sent") - .willReturn(aResponse() - .withStatus(429) - .withHeader("Retry-After", "1") - .withHeader("Date", "Sat, 18 Nov 2017 11:18:00 GMT"))); - - this.mockListener(); - - try { - api.authenticate(); - } catch (BoxAPIException e) { - verify(3, postRequestedFor(urlPathEqualTo("/oauth2/token"))); - assertThat(e.getResponseCode(), is(429)); - } - } - - @Test - public void retriesWithNewJWTAssertionOnErrorResponseAndSucceeds() { - final String tokenPath = "/oauth2/token"; - final String accessToken = "mNr1FrCvOeWiGnwLL0OcTL0Lux5jbyBa"; - BoxDeveloperEditionAPIConnection api = this.getBoxDeveloperEditionAPIConnection(); - - this.mockFirstResponse(tokenPath); - - this.wireMockRule.stubFor(requestMatching(this.getRequestMatcher(tokenPath)) - .atPriority(2) - .inScenario("JWT Retry") - .whenScenarioStateIs("429 sent") - .willReturn(aResponse() - .withStatus(200) - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(responseWithToken(accessToken)))); - - this.mockListener(); - - api.authenticate(); - - verify(2, postRequestedFor(urlPathEqualTo("/oauth2/token"))); - assertThat(api.getAccessToken(), is(accessToken)); - } - - @Test - public void retriesWithNewJWTAssertionOnClockSkewErrorResponseAndSucceeds() { - final String tokenPath = "/oauth2/token"; - final String accessToken = "some_token"; - BoxDeveloperEditionAPIConnection api = this.getBoxDeveloperEditionAPIConnection(); - - this.wireMockRule.stubFor(post(urlPathMatching(tokenPath)) - .atPriority(1) - .inScenario("JWT Retry") - .whenScenarioStateIs(STARTED) - .willReturn(aResponse() - .withStatus(400) - .withHeader("Retry-After", "1") - .withHeader("Date", "Sat, 18 Nov 2017 11:18:00 GMT") - .withHeader("Content-Type", APPLICATION_JSON) - .withBody("{\n" - + " \"type\": \"error\",\n" - + " \"status\": 400,\n" - + " \"code\": \"invalid_grant\",\n" - + " \"message\": \"Current date time must be before the expiration" - + " date time listed in the 'exp' claim.\"\n" - + "}")) - .willSetStateTo("400 sent")); - - this.wireMockRule.stubFor(requestMatching(this.getRequestMatcher(tokenPath)) - .atPriority(2) - .inScenario("JWT Retry") - .whenScenarioStateIs("400 sent") - .willReturn(aResponse() - .withStatus(200) - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(responseWithToken(accessToken)))); - - this.mockListener(); - - api.authenticate(); - - verify(2, postRequestedFor(urlPathEqualTo("/oauth2/token"))); - assertThat(api.getAccessToken(), is(accessToken)); - } - - @Test - public void retriesWithWhenJtiClaimIsDuplicated() { - final String tokenPath = "/oauth2/token"; - final String accessToken = "some_token"; - BoxDeveloperEditionAPIConnection api = this.getBoxDeveloperEditionAPIConnection(); - - this.wireMockRule.stubFor(post(urlPathMatching(tokenPath)) - .inScenario("Retry when JTI fails") - .whenScenarioStateIs(STARTED) - .willReturn(aResponse() - .withStatus(400) - .withHeader("Content-Type", APPLICATION_JSON) - .withBody("{" - + "\"error\":\"invalid_grant\"," - + "\"error_description\":\"Please check the 'jti' claim. A unique 'jti' value is required.\"" - + "}" - )) - .willSetStateTo("400 error recieved")); - - this.wireMockRule.stubFor(post(urlPathMatching(tokenPath)) - .inScenario("Retry when JTI fails") - .whenScenarioStateIs("400 error recieved") - .willReturn(aResponse() - .withStatus(200) - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(responseWithToken(accessToken) - ))); - - api.authenticate(); - verify(2, postRequestedFor(urlPathEqualTo("/oauth2/token"))); - assertThat(api.getAccessToken(), is(accessToken)); - } - - @Test - public void usesCustomDecryptorClassImplementation() throws NoSuchAlgorithmException, InvalidKeySpecException { - final String tokenPath = "/oauth2/token"; - final String accessToken = "mNr1FrCvOeWiGnwLL0OcTL0Lux5jbyBa"; - // This is freshly-generated private key, which is not used for a real Box account. - // It is safe to use in this unit test. - String decryptedPrivateKey = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC5fehGf7yDfLTDewsBcPyJSIIH1IB" - + "z3a7etHWCLEkUria6fVMltD/SMrqpOYL5ayFQEP3pzP0pskBD/uGFXCDfuPJ4SToHgaJYHIyw56YZcwqO6+T/3pWpQ54kuxUZH+" - + "ojkTLaJAyMPCiXCNTQD6UDYDHaYQLXafJYh3GWzQVTqXJmCwjv7CD22O0cWkQNH1pelnTQ6ZSvn9osSgnUV51CVlziC05T6" - + "LxgVd0UhiBa1HdTI3D7X5SbXx4bFs1x/qyqJCNQX4J7sB9jUtKl0s6SX+UN5j59tbDCE/x0t4OOpetSECWkVxRMX5R6CezVj" - + "Us+3PnNMCjXxGrb3DnB6P0dAgMBAAECggEAFyTHg2xSqBE6OJ20jNR9Hd/nIXT5JfvF4tGfS8OcxrDH8kLKygyIXgCoW47qc" - + "ZZVTLkiBTbna3lrHVDC8LHDBEb+MdXpIKCjEd1WDIiKp+g7rANwyiAKilj+dVTGWCEsRI3MS31t911WLyoR63fYPeiVr8qk4" - + "R29+B/GI2unO33VXNQj4lF81jvHdqgIQkYaY37nQSGx7MHamDscDLHvWKzrvY4sjidS4KgmVzkVmbMBwHvY6asoGhkZWTtir" - + "u0rJpirvHaGJAuWZjfVCaZkT4XAKloOrsZiMmAYCzG5xLy4EiB68zHFmQ8V/zLcMCSlofC9tmvp9NQHPY7cSUFzYQKBgQDqC" - + "5j+SFFx56gz63gazYKseGIfkFHbQFOulVdV6cSDuIjvZtQJ2PMaIv8i5tpGlIJsPiOqoJU0NI1/aGrPFtFUpNXChMaPWiBdm" - + "GDwJKUO8EWsHYk1sm0z7Nf4tfuPAV/kH75wsOMlcQ5qrtYU3rrcjfEIpILtG/VTja+37OAZmQKBgQDK5FaoHb8W4hanZQ6my" - + "AG39iF2Z9qITKWyvZ8yh3zGvhvO5RGR7KPjrCp1cnizNfmF+q6lJxmXXowijdTaL7opaVayCJt3ewvgatr9uhT8Vz6kgfeA7" - + "O+7dIRaTQB8+YTeMFRdlRnuVGx2JLbyUycIJCb3mmWHGTL9lW0ZWyHaJQKBgQDHOBIFuLci9uZ1M2Tro60sc9hKN8WFlI7ml" - + "5ZcufydhrGA3o10yGe+ArYcFlcMJxORYZ9oeQIoCue64L2yAyEyJJET34NIuJW+NZumLfsV6S3VINsPiw5rWZpIyVcU1j2yZ" - + "9bqA5eF4mM8KhBueVyjqmrWSXpsrBS6B2vgalAjWQKBgBtx0asCAxQ0Vv4jtFypF1psB9C9cZkYTR2lesBaBW3Yz2goIj1L9" - + "ktYwZGLf3o2Zd9SrocWh+aq2mfeKZmt9Q+e+SQx992snkmoCqFhp28O2iFklzcwValUtIaGffdpxShM/0x9W7maX+WHR9v1l" - + "YULZt39W5hvty8IJG7WnfilAoGBAM6SeUI0xN30tWV5r1cLCG4d+THzqGjZCisCiL2/QN9cWKhtan5Z0+EZd7YkPQpFPw7+R" - + "CDL/zrR6RMV0ZhLjxMwVwbameaHoYKYKzTP8rGYwrVFWDNeGh9arn9UdeF/CTfwBiYDtHSjHdVOUW3KYb6VnYuFG+uog0uOB" - + "5uEg9Z5"; - byte[] privateKeyBytes = Base64.decode(decryptedPrivateKey); - PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(privateKeyBytes); - KeyFactory keyFactory = KeyFactory.getInstance("RSA"); - PrivateKey privateKey = keyFactory.generatePrivate(keySpec); - - IPrivateKeyDecryptor decryptorMock = mock(IPrivateKeyDecryptor.class); - - when(decryptorMock.decryptPrivateKey(anyString(), eq("testkey"))).thenReturn(privateKey); - BoxDeveloperEditionAPIConnection api = this.getBoxDeveloperEditionAPIConnection(decryptorMock); - - this.mockFirstResponse(tokenPath); - - this.wireMockRule.stubFor(requestMatching(this.getRequestMatcher(tokenPath)) - .atPriority(2) - .inScenario("JWT Retry") - .whenScenarioStateIs("429 sent") - .willReturn(aResponse() - .withStatus(200) - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(responseWithToken(accessToken)))); - - this.mockListener(); - - api.authenticate(); - - Mockito.verify(decryptorMock, times(2)).decryptPrivateKey(anyString(), eq("testkey")); - assertThat(api.getAccessToken(), is(accessToken)); - } - - private static String responseWithToken(String accessToken) { - return "{\n" - + " \"access_token\": \"" + accessToken + "\",\n" - + " \"expires_in\": 4169,\n" - + " \"restricted_to\": [],\n" - + " \"token_type\": \"bearer\"\n" - + "}"; - } - - private BoxDeveloperEditionAPIConnection getBoxDeveloperEditionAPIConnection() { - return getBoxDeveloperEditionAPIConnection(null); - } - - private BoxDeveloperEditionAPIConnection getBoxDeveloperEditionAPIConnection(IPrivateKeyDecryptor decryptor) { - final String baseURL = "https://localhost:" + wireMockRule.httpsPort(); - final int expectedNumRetryAttempts = 2; - - JWTEncryptionPreferences prefs = new JWTEncryptionPreferences(); - prefs.setEncryptionAlgorithm(EncryptionAlgorithm.RSA_SHA_256); - // @NOTE(mwiller) 2018-01-16: These are freshly-generated keys which are not used for a real Box - // account. They are safe to use in this unit test. - String privateKey = "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpQcm9jLVR5cGU6IDQsRU5DUllQVEVECkRFSy1JbmZvOiBB" - + "RVMtMjU2LUNCQywxMTYwMDM3MUZFNkIzMjBFNzVEOTE0NEE5OEIwMDU4MgoKMDYwRUVDdW5QVWQxMmlScXEwZnhQU1BLZWh6VGtocH" - + "p4UnJobklLYXlhcUcxS2Uzc1RWdHJGdW0xdEdoNWNrNwpBZFphMnVhSkhna1ZTS0hqSldwUTMwUnZnUjlvK2wyS2FRNnZpKzRaRHRm" - + "UVYyMmNnblIyb0hBWHM4a1hzdU1ECk04QUhqUW85TWpqV1dxZGQ0cFlyYys5eDBxakVaTXQ1dzdyWW9mVkRmdTgxVVVkZi80UFhtOG" - + "RLY2ZaYkRQSHkKVGxEaUhycFRTWFdqZFZiWnJqYUZXM3lPK2M3bkY2MmV6MTNIUDRhcmhoeTB3TnRYNVRYUUtTQ01tRHQ2SDkxKwp0" - + "VWxYd29kek1Hbk1oYUN0QmcvblRZUks5VkVkbFBJUlRpaUlpV0t5V2NmeDNDMU1yQkJVakkvaUttUHpuNXFRCitJbjVScFVOcWphWU" - + "5taExPQmp0NC9LRy9zM2JrUEZzd0lpUVY4eFI0ditLMjdZcUxNQWNWMytpL3k5cXNFY0cKSkNnNS9vZmJyanZ1TXFXNDVyY2dKckc4" - + "YVRNTkdMUzZqbTZ4ZkQ5Ym9IajQxNUQ4cTVFZEl2cDhCeFRrcGNucApOV0k3MXZIY2poWGJxNEhXZ1FqbE9hb2wzL2FJR2srb084VU" - + "w0b3FSaDFyR09pVkNjcENqTkltWkNiakJSVTVzCitQWFRvakdPSGd4V3BwQ2MrajVwWFpZNjUvenVzVHJaTy8yT2hrSTg5Sm4xcUp2" - + "K0xFVnpENGsyRWQvcmo1ZG0KOVVsSEJJbWlVakpONTNpRHFTMFFpYk9sYXNDR3kwZW51N0lxL244a1FBUG9nOEZvRjBDcVh4cC8zM3" - + "NYK1JIMgpodHdjcVlsOXNkNVFFUWlSNnBXclQwSDdLdk1KWGtqaGp1bWthMzVsMCs3Y1FDUXR1Tm9HUm8yei8rUDNJaCtPCmd5eGpW" - + "ZmRvaEtNalQ3UU52M3RJbytyazZDNzFxR0w5eDM0bkNGY2t4Z0dqeS84OEwwMkt2ZVR4YlR2WVJVZTYKRTZZSGFUdDY2QUNmYmpNaU" - + "p6WjVaYjlSUXNGM0IvYkU2cndFODFMc2tMUWlYRFZGaG8wQmp6dlVDUGF6R1d6YgpwSWhsZkhNQ1k4N3VkMGE5NkdNU2FjSlJJc3pZ" - + "SlQyelFiYUVtVDJKcmJZK2p6NGRoSjhXaVNWYXZTSG5xQWdTClZpRXg2SUtSOHI0L2F1d2hlRGpoaWRrWXdVTXlsUFlVRXpqT00raD" - + "c2RFZmaWNVRVBWWUtRSFlFTWNiNWo1OFcKY0xiSGNPeWN0MElXem81REF1aFIrMzFFMGFHY2hSbUJuRGd3RkFvY3hvWStHMlRDdkpQ" - + "WFpYUml0cHM2YjdrQQpmd3pCci9BRUhCY0xLWGZjRXhraHprVlkvbGx0cjB6TkZVRWNEQkhkdmlsb0JQZjZVQXF0THBSTkRVa1hYZn" - + "M1Cm0xcWtka3lBakp3UllZdjR3QTFDU0ptVExVVHpYOWZCcjlyc3EyM2VvV2JtN0FwT2FYSjRPdnM4VS9HUnV2c0wKbXRaMk1ST2lG" - + "K1paTVhRNUdlTEkzS2pVcE1KdXlBeXU2UkZITVF2TWlZN2UrUTJvSTB1S1g0WEZYYWhpYUthTwpCZnhONWI3NlRBSFByUGJMVFhqN2" - + "pOL0FnbVJFQUw4TUFWbEZDMUNpV0I0YzhqV0RLUVcrUWpZQ0tDY1ZDeXltClh1UW5QUjZ0U09NWGY5Z0pQZ0F1dnFHb1lVZHJNZ1h2" - + "S0xZdjlRS3dJdUNMcmlxU2VQeksvMWR3QXFrSEZpQlMKUzRhSE5nQ2NYWkplcUtHZmlodTAvTnVXK0dFYzNucVFaSCs3cHpoZ29jMW" - + "gwRU5SNVl0KzUyam54aitqa3diNQpUN1cvOVdGeXc4Y2lkNVkvaWt3UTBhbHl6RUNkZ2lod2l0ZFR6NysrNGZMakFVQklQOCt5RU5v" - + "NHhsc1F3Y1dBCjU5VWd6ZmlMNlprS3FUc2JBUm5HQW84NFBGQ0ZpQnQySnM2ZEQ1SFJGTUFHRHpVR3ZkOEk3bWtTdnBIN0RpRVQKYU" - + "pLRWpxK3FtMnZXQ21hVHVmSitkSmY3K1hyMU5xUGFFZEhkMDh3cVVZVE9nMEtjSlVvT2lTcGVQL2hWQkpXSQotLS0tLUVORCBSU0Eg" - + "UFJJVkFURSBLRVktLS0tLQo="; - prefs.setPrivateKey(new String(Base64.decode(privateKey))); - prefs.setPrivateKeyPassword("testkey"); - prefs.setPublicKeyID("abcdefg"); - if (decryptor != null) { - prefs.setPrivateKeyDecryptor(decryptor); - } - - BoxDeveloperEditionAPIConnection api = new BoxDeveloperEditionAPIConnection("12345", - DeveloperEditionEntityType.USER, "foo", "bar", prefs, null); - api.configureSslCertificatesValidation(new TrustAllTrustManager(), new AcceptAllHostsVerifier()); - api.setBaseURL(baseURL + "/"); - api.setMaxRetryAttempts(expectedNumRetryAttempts); - - return api; - } - - private void mockFirstResponse(String tokenPath) { - this.wireMockRule.stubFor(post(urlPathMatching(tokenPath)) - .atPriority(1) - .inScenario("JWT Retry") - .whenScenarioStateIs(STARTED) - .willReturn(aResponse() - .withStatus(429) - .withHeader("Retry-After", "1") - .withHeader("Date", "Sat, 18 Nov 2017 11:18:00 GMT")) - .willSetStateTo("429 sent")); - } - - private RequestMatcherExtension getRequestMatcher(final String tokenPath) { - return new RequestMatcherExtension() { - @Override - public MatchResult match(Request request, Parameters parameters) { - if (!request.getMethod().equals(RequestMethod.POST) || !request.getUrl() - .equals(tokenPath)) { - return MatchResult.noMatch(); - } - - Assert.assertNotNull("JTI should be saved from previous request", - BoxDeveloperEditionAPIConnectionTest.this.jtiClaim); - - try { - JwtClaims claims = BoxDeveloperEditionAPIConnectionTest.this - .getClaimsFromRequest(request); - String jti = claims.getJwtId(); - long expTimestamp = claims.getExpirationTime().getValue(); - - Assert.assertNotEquals("JWT should have a new timestamp", 1511003910L, - expTimestamp); - Assert.assertNotEquals("JWT should have a new jti claim", - BoxDeveloperEditionAPIConnectionTest.this.jtiClaim, jti); - - } catch (Exception ex) { - Assert.fail("Could not parse JWT when request is retried: " + ex.getMessage()); - } - - return MatchResult.exactMatch(); - } - }; - } - - private JwtClaims getClaimsFromRequest(Request request) throws Exception { - - // Get the JWT out of the request body - String body = request.getBodyAsString(); - String[] tokens = body.split("&"); - String jwt = null; - for (String s : tokens) { - String[] parts = s.split("="); - if (parts[0] != null && parts[0].equals("assertion") && parts[1] != null) { - jwt = parts[1]; - } - } - if (jwt == null) { - throw new Exception("No jwt assertion found in request body"); - } - - // Parse out the JWT to verify the claims - JwtConsumer jwtConsumer = new JwtConsumerBuilder() - .setSkipSignatureVerification() - .setSkipAllValidators() - .build(); - return jwtConsumer.processToClaims(jwt); - } - - private void mockListener() { - this.wireMockRule.addMockServiceRequestListener((request, response) -> { - try { - JwtClaims claims = BoxDeveloperEditionAPIConnectionTest.this - .getClaimsFromRequest(request); - - if (BoxDeveloperEditionAPIConnectionTest.this.jtiClaim == null) { - BoxDeveloperEditionAPIConnectionTest.this.jtiClaim = claims.getJwtId(); - } - } catch (Exception ex) { - Assert.fail("Could not save JTI claim from request"); - } - }); - } -} - diff --git a/src/test/java/com/box/sdk/BoxDevicePinTest.java b/src/test/java/com/box/sdk/BoxDevicePinTest.java deleted file mode 100644 index ebfc2fcdd..000000000 --- a/src/test/java/com/box/sdk/BoxDevicePinTest.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.client.WireMock.delete; -import static com.github.tomakehurst.wiremock.client.WireMock.get; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.junit.Assert.assertEquals; - -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.util.Iterator; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -/** - * {@link BoxDevicePin} related unit tests. - */ -public class BoxDevicePinTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void testDeleteDevicePinSendsCorrectRequest() { - final String devicePinID = "12345"; - final String deleteDevicePinURL = "/2.0/device_pinners/" + devicePinID; - - wireMockRule.stubFor(delete(WireMock.urlPathEqualTo(deleteDevicePinURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(204))); - - BoxDevicePin devicePin = new BoxDevicePin(this.api, devicePinID); - devicePin.delete(); - } - - @Test - public void testGetDevicePinInfoSucceeds() { - final String devicePinID = "12345"; - final String devicePinURL = "/2.0/device_pinners/" + devicePinID; - final String ownedByUserName = "Test User"; - final String ownedByUserLogin = "test@user.com"; - final String productName = "iPhone"; - - String result = TestUtils.getFixture("BoxDevicePin/GetDevicePinInfo200"); - - wireMockRule.stubFor(get(WireMock.urlPathEqualTo(devicePinURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxDevicePin devicePin = new BoxDevicePin(this.api, devicePinID); - BoxDevicePin.Info devicePinInfo = devicePin.getInfo(); - - assertEquals(devicePinID, devicePinInfo.getID()); - assertEquals(ownedByUserName, devicePinInfo.getOwnedBy().getName()); - assertEquals(ownedByUserLogin, devicePinInfo.getOwnedBy().getLogin()); - assertEquals(productName, devicePinInfo.getProductName()); - } - - @Test - public void testGetAllEnterpriseDevicePinsSucceeds() { - final String enterpriseID = "1111"; - final String getAllDevicePinsURL = "/2.0/enterprises/" + enterpriseID + "/device_pinners"; - final String firstDevicePinID = "12345"; - final String firstDevicePinProductName = "iPad"; - final String secondDevicePinOwnedByLogin = "example@user.com"; - - String result = TestUtils.getFixture("BoxDevicePin/GetAllEnterpriseDevicePins200"); - - wireMockRule.stubFor(get(WireMock.urlPathEqualTo(getAllDevicePinsURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - Iterator iterator = BoxDevicePin.getEnterpriceDevicePins(this.api, enterpriseID).iterator(); - BoxDevicePin.Info firstDevicePin = iterator.next(); - - assertEquals(firstDevicePinID, firstDevicePin.getID()); - assertEquals(firstDevicePinProductName, firstDevicePin.getProductName()); - - BoxDevicePin.Info secondDevicePin = iterator.next(); - - assertEquals(secondDevicePinOwnedByLogin, secondDevicePin.getOwnedBy().getLogin()); - } -} diff --git a/src/test/java/com/box/sdk/BoxEventTest.java b/src/test/java/com/box/sdk/BoxEventTest.java deleted file mode 100644 index 21eaf041b..000000000 --- a/src/test/java/com/box/sdk/BoxEventTest.java +++ /dev/null @@ -1,167 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -public class BoxEventTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(baseUrl()); - } - - @Test - public void testIsEventLogUnique() throws ParseException { - final String eventURL = "/2.0/events"; - String startTime = "2019-02-02T21:48:38Z"; - String endTime = "2019-02-02T23:48:40Z"; - - String getResult = TestUtils.getFixture("BoxEvent/GetEnterpriseEvents200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(eventURL)) - .withQueryParam("stream_type", WireMock.equalTo("admin_logs")) - .withQueryParam("limit", WireMock.equalTo("500")) - .withQueryParam("created_after", WireMock.equalTo("2019-02-02T21:48:38Z")) - .withQueryParam("created_before", WireMock.equalTo("2019-02-02T23:48:40Z")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(getResult))); - - Date startDate = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssX").parse(startTime); - Date endDate = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssX").parse(endTime); - EventLog eventLog = EventLog.getEnterpriseEvents( - this.api, new EnterpriseEventsRequest().after(startDate).before(endDate) - ); - assertEquals(1, eventLog.getSize()); - } - - @Test - public void testEventLog() throws ParseException { - final String eventURL = "/2.0/events"; - String startTime = "2019-02-02T21:48:38Z"; - String endTime = "2019-02-02T23:48:40Z"; - - String getResult = TestUtils.getFixture("BoxEvent/GetEnterpriseEvents200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(eventURL)) - .withQueryParam("stream_type", WireMock.equalTo("admin_logs")) - .withQueryParam("limit", WireMock.equalTo("500")) - .withQueryParam("created_after", WireMock.equalTo("2019-02-02T21:48:38Z")) - .withQueryParam("created_before", WireMock.equalTo("2019-02-02T23:48:40Z")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(getResult))); - - Date startDate = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssX").parse(startTime); - Date endDate = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssX").parse(endTime); - EventLog eventLog = EventLog.getEnterpriseEvents( - this.api, new EnterpriseEventsRequest().after(startDate).before(endDate) - ); - BoxEvent event = eventLog.iterator().next(); - assertEquals("54321", event.getActionBy().getID()); - assertEquals("12345", event.getSourceInfo().getID()); - assertEquals("Example User", event.getCreatedBy().getName()); - assertEquals(BoxEvent.EventType.ADD_LOGIN_ACTIVITY_DEVICE, event.getEventType()); - assertEquals("ADD_LOGIN_ACTIVITY_DEVICE", event.getTypeName()); - } - - @Test - public void newBoxEventHandlesUnknownEventType() { - String eventJSON = "{ \"type\": \"event\", \"event_id\": \"f82c3ba03e41f7e8a7608363cc6c0390183c3f83\", " - + "\"event_type\": \"UNKNOWN_EVENT_TYPE\" }"; - BoxEvent event = new BoxEvent(null, eventJSON); - - assertThat(event.getEventType(), is(BoxEvent.EventType.UNKNOWN)); - } - - @Test - public void newBoxEventShouldParseAllFieldsCorrectly() throws ParseException { - final String eventID = "non-empty event ID"; - final String sessionID = "non-empty session ID"; - final String userID = "non-empty user ID"; - final String userName = "non-empty user name"; - final String userLogin = "non-empty user login"; - final String createdAt = "2014-12-18T16:25:15-08:00"; - final String ipAddress = "non-empty IP"; - final String detailsType = "non-empty details type"; - final boolean isPerformedByAdmin = true; - - JsonObject eventJSON = new JsonObject() - .add("event_id", eventID) - .add("session_id", sessionID) - .add("created_by", new JsonObject() - .add("type", "user") - .add("id", userID) - .add("name", userName) - .add("login", userLogin)) - .add("created_at", createdAt) - .add("ip_address", ipAddress) - .add("additional_details", new JsonObject() - .add("type", detailsType) - .add("is_performed_by_admin", isPerformedByAdmin)) - .add("accessible_by", new JsonObject() - .add("type", "user") - .add("id", userID) - .add("name", userName) - .add("login", userLogin)); - - BoxEvent event = new BoxEvent(null, eventJSON); - assertEquals(eventID, event.getID()); - assertEquals(sessionID, event.getSessionID()); - assertEquals(userID, event.getCreatedBy().getID()); - assertEquals(userName, event.getCreatedBy().getName()); - assertEquals(userLogin, event.getCreatedBy().getLogin()); - assertEquals(BoxDateFormat.parse(createdAt), event.getCreatedAt()); - assertEquals(ipAddress, event.getIPAddress()); - assertEquals(detailsType, event.getAdditionalDetails().get("type").asString()); - assertEquals(isPerformedByAdmin, event.getAdditionalDetails().get("is_performed_by_admin").asBoolean()); - assertEquals(userID, event.getAccessibleBy().getID()); - assertEquals(userName, event.getAccessibleBy().getName()); - assertEquals(userLogin, event.getAccessibleBy().getLogin()); - } - - @Test - public void newBoxEventShouldParseAccessibleByFieldCorrectlyWhenItIsAGroup() { - final String eventID = "non-empty event ID"; - final String groupID = "non-empty group ID"; - final String groupName = "non-empty group name"; - JsonObject eventJSON = new JsonObject() - .add("event_id", eventID) - .add("accessible_by", new JsonObject() - .add("type", "group") - .add("id", groupID) - .add("name", groupName)); - - BoxEvent event = new BoxEvent(null, eventJSON); - assertEquals(eventID, event.getID()); - - assertTrue(event.getAccessibleBy() instanceof BoxGroup.Info); - BoxGroup.Info parsedGroupInfo = (BoxGroup.Info) event.getAccessibleBy(); - assertEquals(groupID, parsedGroupInfo.getID()); - assertEquals(groupName, parsedGroupInfo.getName()); - } - - private String baseUrl() { - return format("https://localhost:%d", wireMockRule.httpsPort()); - } -} diff --git a/src/test/java/com/box/sdk/BoxFileRequestTest.java b/src/test/java/com/box/sdk/BoxFileRequestTest.java deleted file mode 100644 index 7189a4aaf..000000000 --- a/src/test/java/com/box/sdk/BoxFileRequestTest.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.box.sdk; - - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; - -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -/** - * {@link BoxFileRequest} related integration and unit tests. - */ -public class BoxFileRequestTest { - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void getFileRequestSucceeds() { - final String fileRequestID = "42037322"; - final String fileRequestURL = "/2.0/file_requests/" + fileRequestID; - - String result = TestUtils.getFixture("BoxFileRequest/GetFileRequest200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(fileRequestURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFileRequest fileRequest = new BoxFileRequest(this.api, fileRequestID); - BoxFileRequest.Info fileRequestInfo = fileRequest.getInfo(); - - assertEquals("Following documents are requested for your process", fileRequestInfo.getDescription()); - assertEquals("Please upload documents", fileRequestInfo.getTitle()); - assertEquals(this.api.getBaseAppUrl() - + fileRequestInfo.getPath(), fileRequestInfo.getUrl().toString()); - } - - @Test - public void deleteFileRequestSucceeds() { - final String fileRequestID = "42037322"; - final String fileRequestURL = "/2.0/file_requests/" + fileRequestID; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(fileRequestURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(204))); - - BoxFileRequest fileRequest = new BoxFileRequest(this.api, fileRequestID); - fileRequest.delete(); - } - - @Test - public void copyFileRequestSucceeds() { - final String fileRequestID = "42037322"; - final String folderID = "12345"; - final String description = "Following documents are requested for your process"; - final Boolean isDescriptionRequired = true; - final BoxFileRequest.Status status = BoxFileRequest.Status.ACTIVE; - final String fileRequestURL = "/2.0/file_requests/" + fileRequestID + "/copy"; - - JsonObject folderBody = new JsonObject() - .add("id", folderID) - .add("type", "folder"); - - JsonObject body = new JsonObject() - .add("description", description) - .add("is_description_required", true) - .add("status", status.toJSONString()) - .add("folder", folderBody); - - String result = TestUtils.getFixture("BoxFileRequest/CopyFileRequest200"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(fileRequestURL)) - .withRequestBody(WireMock.equalToJson(body.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFileRequest fileRequest = new BoxFileRequest(this.api, fileRequestID); - BoxFileRequest.Info fileRequestInfo = fileRequest.new Info(); - fileRequestInfo.setDescription(description); - fileRequestInfo.setIsDescriptionRequired(isDescriptionRequired); - fileRequestInfo.setStatus(status); - fileRequestInfo = fileRequest.copyInfo(fileRequestInfo, folderID); - - assertEquals(fileRequestInfo.getDescription(), description); - assertEquals(fileRequestInfo.getIsDescriptionRequired(), true); - assertEquals(fileRequestInfo.getStatus(), status); - assertNotEquals(fileRequestInfo.getID(), fileRequestID); - } - - @Test - public void updateFileRequestSucceeds() { - final String fileRequestID = "42037322"; - final String description = "Following documents are requested for your process"; - final Boolean isDescriptionRequired = true; - final BoxFileRequest.Status status = BoxFileRequest.Status.ACTIVE; - final String fileRequestURL = "/2.0/file_requests/" + fileRequestID; - - JsonObject body = new JsonObject() - .add("description", description) - .add("is_description_required", true) - .add("status", status.toJSONString()); - - String result = TestUtils.getFixture("BoxFileRequest/UpdateFileRequest200"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(fileRequestURL)) - .withRequestBody(WireMock.equalToJson(body.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFileRequest fileRequest = new BoxFileRequest(this.api, fileRequestID); - BoxFileRequest.Info fileRequestInfo = fileRequest.new Info(); - fileRequestInfo.setDescription(description); - fileRequestInfo.setIsDescriptionRequired(isDescriptionRequired); - fileRequestInfo.setStatus(status); - fileRequestInfo = fileRequest.updateInfo(fileRequestInfo); - - assertEquals(fileRequestInfo.getDescription(), description); - assertEquals(fileRequestInfo.getIsDescriptionRequired(), true); - assertEquals(fileRequestInfo.getStatus(), status); - } -} - diff --git a/src/test/java/com/box/sdk/BoxFileTest.java b/src/test/java/com/box/sdk/BoxFileTest.java deleted file mode 100644 index 09a42ea73..000000000 --- a/src/test/java/com/box/sdk/BoxFileTest.java +++ /dev/null @@ -1,1437 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxSharedLink.Access.OPEN; -import static com.box.sdk.TestUtils.getFixture; -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.box.sdk.http.ContentType.APPLICATION_JSON_PATCH; -import static com.box.sdk.http.ContentType.APPLICATION_OCTET_STREAM; -import static com.github.tomakehurst.wiremock.client.WireMock.getRequestedFor; -import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; -import static com.github.tomakehurst.wiremock.client.WireMock.verify; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static java.nio.charset.StandardCharsets.UTF_8; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.containsString; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - -import com.box.sdk.sharedlink.BoxSharedLinkRequest; -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import com.github.tomakehurst.wiremock.matching.EqualToJsonPattern; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; -import java.text.ParseException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.EnumSet; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Date; -import java.util.concurrent.atomic.AtomicInteger; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -/** - * {@link BoxFile} related unit tests. - */ -public class BoxFileTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - api.setBaseUploadURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void getAndSetTags() { - JsonObject fakeResponse = new JsonObject(); - fakeResponse.add("type", "file"); - fakeResponse.add("id", "1234"); - JsonArray tagsJSON = new JsonArray(); - tagsJSON.add("foo"); - tagsJSON.add("bar"); - fakeResponse.add("tags", tagsJSON); - - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(JSONRequestInterceptor.respondWith(fakeResponse)); - - BoxFile file = new BoxFile(api, "1234"); - BoxFile.Info info = file.getInfo(); - List tags = info.getTags(); - assertEquals("foo", tags.get(0)); - assertEquals("bar", tags.get(1)); - - tags.add("baz"); - info.setTags(tags); - - api.setRequestInterceptor(new JSONRequestInterceptor() { - @Override - protected BoxAPIResponse onJSONRequest(BoxJSONRequest request, JsonObject json) { - assertEquals("foo", json.get("tags").asArray().get(0).asString()); - assertEquals("bar", json.get("tags").asArray().get(1).asString()); - assertEquals("baz", json.get("tags").asArray().get(2).asString()); - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{}"; - } - }; - } - }); - - file.updateInfo(info); - } - - @Test - public void collaborateWithOptionalParamsSendsCorrectRequest() { - - final String fileID = "983745"; - final String collaboratorLogin = "boxer@example.com"; - final BoxCollaboration.Role collaboratorRole = BoxCollaboration.Role.VIEWER; - - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(new JSONRequestInterceptor() { - @Override - public BoxJSONResponse onJSONRequest(BoxJSONRequest request, JsonObject body) { - assertEquals( - "https://api.box.com/2.0/collaborations?notify=true", - request.getUrl().toString()); - assertEquals("POST", request.getMethod()); - - assertEquals(fileID, body.get("item").asObject().get("id").asString()); - assertEquals("file", body.get("item").asObject().get("type").asString()); - assertEquals(collaboratorLogin, body.get("accessible_by").asObject().get("login").asString()); - assertEquals("user", body.get("accessible_by").asObject().get("type").asString()); - assertEquals(collaboratorRole.toJSONString(), body.get("role").asString()); - assertEquals("2020-04-07T19:51:30Z", body.get("expires_at").asString()); - assertTrue(body.get("is_access_only").asBoolean()); - - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"type\":\"collaboration\",\"id\":\"98763245\"}"; - } - }; - } - }); - - BoxFile file = new BoxFile(api, fileID); - Date expiresAt = new Date(1586289090000L); - file.collaborate(collaboratorLogin, collaboratorRole, true, true, expiresAt, true); - } - - @Test - public void testGetFileInfoSucceeds() throws ParseException { - final String fileID = "12345"; - final String fileURL = "/2.0/files/" + fileID; - final String fileName = "Example.pdf"; - final String pathCollectionName = "All Files"; - final String createdByLogin = "test@user.com"; - final String uploaderDisplayName = "Test User"; - final String modifiedByName = "Test User"; - final String ownedByID = "1111"; - final String classificationColor = "#00FFFF"; - final String classificationDefinition = "Content that should not be shared outside the company."; - final String classificationName = "Top Secret"; - List roles = new ArrayList<>(); - roles.add("open"); - - String result = getFixture("BoxFile/GetFileInfo200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(fileURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFile file = new BoxFile(this.api, fileID); - BoxFile.Info info = file.getInfo(); - - assertEquals("file", info.getType()); - assertEquals(fileID, info.getID()); - assertEquals(fileName, info.getName()); - assertEquals(pathCollectionName, info.getPathCollection().get(0).getName()); - assertEquals(uploaderDisplayName, info.getUploaderDisplayName()); - assertEquals(createdByLogin, info.getCreatedBy().getLogin()); - assertEquals(modifiedByName, info.getModifiedBy().getName()); - assertEquals(ownedByID, info.getOwnedBy().getID()); - assertEquals(roles, info.getAllowedInviteeRoles()); - assertEquals(classificationColor, info.getClassification().getColor()); - assertEquals(classificationDefinition, info.getClassification().getDefinition()); - assertEquals(classificationName, info.getClassification().getName()); - assertTrue(info.getIsExternallyOwned()); - assertTrue(info.getHasCollaborations()); - assertEquals(info.getDispositionAt(), BoxDateFormat.parse("2012-12-12T18:53:43Z")); - assertTrue(info.getIsAccessibleViaSharedLink()); - assertEquals(info.getPermissions(), EnumSet.allOf(BoxFile.Permission.class)); - } - - @Test(expected = BoxDeserializationException.class) - public void testDeserializationException() { - final String fileID = "12345"; - final String filesURL = "/2.0/files/" + fileID; - - String result = getFixture("BoxFile/GetFileInfoCausesDeserializationException"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(filesURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFile.Info fileInfo = new BoxFile(this.api, fileID).getInfo(); - assertEquals("12345", fileInfo.getID()); - } - - @Test - public void testRemoveSharedLink() { - final String fileID = "12345"; - final String fileURL = "/2.0/files/" + fileID; - JsonObject jsonObject = new JsonObject() - .add("shared_link", (String) null); - - String putResult = getFixture("BoxFile/GetFileInfo200"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(fileURL)) - .withRequestBody(WireMock.containing(jsonObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(putResult))); - - BoxFile file = new BoxFile(this.api, fileID); - BoxFile.Info info = file.new Info(); - info.removeSharedLink(); - file.updateInfo(info); - - assertNull("Shared Link was not removed", info.getSharedLink()); - } - - @Test - public void testGetTasksWithFields() { - final String fileID = "12345"; - final String tasksURL = "/2.0/files/" + fileID + "/tasks"; - - String result = getFixture("BoxFile/GetFileTasksInfoWithFields200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(tasksURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFile file = new BoxFile(this.api, fileID); - List tasks = file.getTasks("is_completed"); - for (BoxTask.Info task : tasks) { - assertTrue(task.isCompleted()); - } - } - - @Test - public void testUpdateFileInformationSucceedsAndSendsCorrectJson() { - final String fileID = "12345"; - final String fileURL = "/2.0/files/" + fileID; - final String newFileName = "New File Name"; - JsonObject updateObject = new JsonObject() - .add("name", newFileName); - - String result = getFixture("BoxFile/UpdateFileInfo200"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(fileURL)) - .withRequestBody(WireMock.equalToJson(updateObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFile file = new BoxFile(this.api, fileID); - BoxFile.Info info = file.new Info(); - info.setName(newFileName); - file.updateInfo(info); - - assertEquals(newFileName, info.getName()); - } - - @Test - public void testCopyFileSucceedsAndSendsCorrectJson() { - final String fileID = "12345"; - final String fileURL = "/2.0/files/" + fileID + "/copy"; - final String parentID = "0"; - final String parentName = "All Files"; - JsonObject innerObject = new JsonObject() - .add("id", "0"); - JsonObject parentObject = new JsonObject() - .add("parent", innerObject); - - String result = getFixture("BoxFile/CopyFile200"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(fileURL)) - .withRequestBody(WireMock.equalToJson(parentObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder rootFolder = BoxFolder.getRootFolder(this.api); - BoxFile file = new BoxFile(this.api, fileID); - BoxFile.Info copiedFileInfo = file.copy(rootFolder); - - assertEquals(parentID, copiedFileInfo.getParent().getID()); - assertEquals(parentName, copiedFileInfo.getParent().getName()); - } - - @Test - public void testMoveFileSucceedsAndSendsCorrectJson() { - final String fileID = "12345"; - final String fileURL = "/2.0/files/" + fileID; - final String newParentID = "1111"; - final String newParentName = "Another Move Folder"; - JsonObject moveObject = new JsonObject() - .add("id", newParentID); - JsonObject parentObject = new JsonObject() - .add("parent", moveObject); - - String result = getFixture("BoxFile/MoveFile200"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(fileURL)) - .withRequestBody(WireMock.equalToJson(parentObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFile file = new BoxFile(this.api, fileID); - BoxFolder destinationFolder = new BoxFolder(this.api, newParentID); - BoxItem.Info fileInfo = file.move(destinationFolder); - - assertEquals(newParentID, fileInfo.getParent().getID()); - assertEquals(fileID, fileInfo.getID()); - assertEquals(newParentName, fileInfo.getParent().getName()); - } - - @Test - public void testDeleteFileSucceeds() { - final String fileID = "12345"; - final String deleteFileURL = "/2.0/files/" + fileID; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(deleteFileURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(204))); - - BoxFile file = new BoxFile(this.api, fileID); - file.delete(); - } - - @Test - public void testLockFileSucceedsAndSendsCorrectJson() { - final String fileID = "12345"; - final String fileURL = "/2.0/files/" + fileID; - final boolean isDownloadPrevented = true; - final String createdByLogin = "test@user.com"; - final String createdByName = "Test User"; - - JsonObject innerObject = new JsonObject() - .add("type", "lock") - .add("is_download_prevented", "true"); - - new JsonObject().add("lock", innerObject); - - String result = getFixture("BoxFile/LockFile200"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(fileURL)) - .withQueryParam("fields", WireMock.containing("lock")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFile file = new BoxFile(this.api, fileID); - BoxLock fileLock = file.lock(true); - - assertEquals(isDownloadPrevented, fileLock.getIsDownloadPrevented()); - assertEquals(createdByLogin, fileLock.getCreatedBy().getLogin()); - assertEquals(createdByName, fileLock.getCreatedBy().getName()); - } - - @Test - public void testUnlockFileSucceedsAndSendSendsCorrectJson() { - final String fileID = "12345"; - final String fileURL = "/2.0/files/" + fileID; - JsonObject unlockObject = new JsonObject().add("lock", Json.NULL); - - String fileResult = getFixture("BoxFile/GetFileInfo200"); - - String result = getFixture("BoxFile/UnlockFile200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(fileURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(fileResult))); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(fileURL)) - .withQueryParam("fields", WireMock.containing("lock")) - .withRequestBody(WireMock.equalToJson(unlockObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFile file = new BoxFile(this.api, fileID); - file.unlock(); - - assertEquals(fileID, file.getID()); - assertNull(file.getInfo().getLock()); - } - - @Test - public void testDeleteMetadataOnFileSucceeds() { - final String fileID = "12345"; - final String metadataURL = "/2.0/files/" + fileID + "/metadata/global/properties"; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(metadataURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(204))); - - BoxFile file = new BoxFile(this.api, fileID); - file.deleteMetadata(); - } - - @Test - public void testGetThumbnailSucceeds() { - final String fileID = "12345"; - wireMockRule.stubFor( - WireMock.get(WireMock.urlPathEqualTo("/2.0/files/" + fileID)) - .withQueryParam("fields", WireMock.equalTo("representations")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(getFixture("BoxFile/GetFileRepresentations200", wireMockRule.httpsPort())) - .withStatus(200)) - ); - wireMockRule.stubFor( - WireMock.get(WireMock.urlPathEqualTo( - "/2.0/internal_files/12345/versions/1116420931563/representations/jpg_thumb_32x32") - ) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(getFixture("BoxFile/GetFileRepresentation200", wireMockRule.httpsPort())) - .withStatus(200)) - ); - wireMockRule.stubFor( - WireMock.get(WireMock.urlPathEqualTo( - "/2.0/internal_files/1030335435441/versions/1116437417841/representations/jpg_thumb_32x32/content/" - )) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", "image/jpg") - .withHeader("Content-Length", String.valueOf(13)) - .withBody("This is a JPG") - .withStatus(200)) - ); - - BoxFile file = new BoxFile(this.api, fileID); - OutputStream output = new ByteArrayOutputStream(); - file.getRepresentationContent("[jpg?dimensions=32x32]", output); - assertThat(output.toString(), equalTo("This is a JPG")); - } - - @Test - public void testGetRepresentationContentThrowsWhenExceedingMaxRetries() { - final String fileID = "12345"; - wireMockRule.stubFor( - WireMock.get(WireMock.urlPathEqualTo("/2.0/files/" + fileID)) - .withQueryParam("fields", WireMock.equalTo("representations")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(getFixture("BoxFile/GetFileRepresentations200", wireMockRule.httpsPort())) - .withStatus(200)) - ); - wireMockRule.stubFor( - WireMock.get(WireMock.urlPathEqualTo( - "/2.0/internal_files/12345/versions/1116420931563/representations/jpg_thumb_32x32") - ) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(getFixture("BoxFile/GetFileRepresentation200WithPending", wireMockRule.httpsPort())) - .withStatus(200)) - ); - - try { - BoxFile file = new BoxFile(this.api, fileID); - OutputStream output = new ByteArrayOutputStream(); - file.getRepresentationContent("[jpg?dimensions=32x32]", "", output, 5); - fail("getRepresentationContent did not fail with BoxAPIException due to pending status"); - } catch (BoxAPIException apiException) { - assertEquals( - apiException.getMessage(), - "Representation did not have a success status allowing it to be retrieved after 5 attempts" - ); - } - } - - @Test - public void testGetRepresentationContentSuccess() { - final String fileID = "12345"; - wireMockRule.stubFor( - WireMock.get(WireMock.urlPathEqualTo("/2.0/files/" + fileID)) - .withQueryParam("fields", WireMock.equalTo("representations")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(getFixture("BoxFile/GetFileRepresentations200", wireMockRule.httpsPort())) - .withStatus(200)) - ); - wireMockRule.stubFor( - WireMock.get(WireMock.urlPathEqualTo( - "/2.0/internal_files/12345/versions/1116420931563/representations/jpg_thumb_32x32") - ) - .inScenario("Get file representation status info") - .willSetStateTo("pending status") - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(getFixture("BoxFile/GetFileRepresentation200WithPending", wireMockRule.httpsPort())) - .withStatus(200)) - ); - wireMockRule.stubFor( - WireMock.get(WireMock.urlPathEqualTo( - "/2.0/internal_files/12345/versions/1116420931563/representations/jpg_thumb_32x32") - ) - .inScenario("Get file representation status info") - .whenScenarioStateIs("pending status") - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(getFixture("BoxFile/GetFileRepresentation200", wireMockRule.httpsPort())) - .withStatus(200)) - ); - - wireMockRule.stubFor( - WireMock.get(WireMock.urlPathEqualTo( - "/2.0/internal_files/1030335435441/versions/1116437417841/representations/jpg_thumb_32x32/content/" - )) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", "image/jpg") - .withHeader("Content-Length", String.valueOf(13)) - .withBody("This is a JPG") - .withStatus(200)) - ); - - BoxFile file = new BoxFile(this.api, fileID); - OutputStream output = new ByteArrayOutputStream(); - file.getRepresentationContent("[jpg?dimensions=32x32]", output); - assertThat(output.toString(), equalTo("This is a JPG")); - } - - @Test - public void testGetFileVersionByIdSucceeds() { - final String versionID = "12345"; - final String fileID = "1111"; - final String versionURL = "/2.0/files/" + fileID + "/versions/" + versionID; - - String versionResult = getFixture("BoxFile/GetFileVersion200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(versionURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(versionResult))); - - BoxFile file = new BoxFile(this.api, fileID); - BoxFileVersion version = file.getVersionByID(versionID); - - assertEquals(versionID, version.getVersionID()); - assertEquals(fileID, version.getFileID()); - } - - @Test - public void testDeletePreviousFileVersionSucceeds() { - final String versionID = "12345"; - final String fileID = "1111"; - final String fileURL = "/2.0/files/" + fileID + "/versions"; - final String versionURL = "/2.0/files/" + fileID + "/versions/" + versionID; - - String result = getFixture("BoxFile/GetFileInfo200"); - - String versionResult = getFixture("BoxFile/GetAllFileVersions200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(fileURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(fileURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(versionResult))); - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(versionURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(204))); - - BoxFile file = new BoxFile(this.api, fileID); - Collection versions = file.getVersions(); - BoxFileVersion firstVersion = versions.iterator().next(); - firstVersion.delete(); - } - - @Test - public void testCreateMetadataOnFileSucceeds() { - final String metadataID = "12345"; - final String fileID = "12345"; - final String scope = "global"; - final String metadataURL = "/2.0/files/" + fileID + "/metadata/global/properties"; - JsonObject metadataObject = new JsonObject() - .add("foo", "bar"); - - String result = getFixture("BoxFile/CreateMetadataOnFile201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(metadataURL)) - .withRequestBody(WireMock.equalToJson(metadataObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFile file = new BoxFile(this.api, fileID); - Metadata info = file.createMetadata(new Metadata().add("/foo", "bar")); - - assertEquals(metadataID, info.getID()); - assertEquals(scope, info.getScope()); - } - - @Test - public void testGetMetadataOnFileSucceeds() { - final String fileID = "12345"; - final String metadataID = "12345"; - final String parent = "file_1111"; - final String template = "properties"; - final String scope = "global"; - final String metadataURL = "/2.0/files/" + fileID + "/metadata/global/properties"; - - String result = getFixture("BoxFile/GetMetadataOnFile200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(metadataURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFile file = new BoxFile(this.api, fileID); - Metadata metadata = file.getMetadata(); - - assertEquals(metadataID, metadata.getID()); - assertEquals(parent, metadata.getParentID()); - assertEquals(template, metadata.getTemplateName()); - assertEquals(scope, metadata.getScope()); - } - - @Test - public void testUploadNewVersionReturnsCorrectInfo() { - String fileID = "11111"; - String fileName = "test.txt"; - byte[] bytes = new byte[]{1, 2, 3}; - InputStream fileContents = new ByteArrayInputStream(bytes); - - String result = getFixture("BoxFile/UploadNewVersion201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo("/2.0/files/" + fileID + "/content")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFile file = new BoxFile(this.api, fileID); - - BoxFile.Info info = file.uploadNewVersion(fileContents); - - assertEquals(fileID, info.getID()); - assertEquals(fileName, info.getName()); - } - - @Test - public void createSharedLinkSucceeds() { - final String fileID = "1111"; - final String password = "test1"; - - JsonObject permissionsObject = new JsonObject() - .add("can_download", true) - .add("can_preview", true) - .add("can_edit", false); - - JsonObject innerObject = new JsonObject() - .add("password", password) - .add("access", "open") - .add("permissions", permissionsObject); - - JsonObject sharedLinkObject = new JsonObject() - .add("shared_link", innerObject); - - String result = getFixture("BoxSharedLink/CreateSharedLink201"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo("/2.0/files/" + fileID)) - .withRequestBody(WireMock.equalToJson(sharedLinkObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFile file = new BoxFile(this.api, fileID); - BoxSharedLink.Permissions permissions = new BoxSharedLink.Permissions(); - - permissions.setCanDownload(true); - permissions.setCanPreview(true); - BoxSharedLink sharedLink = file.createSharedLink( - new BoxSharedLinkRequest().access(OPEN) - .permissions(true, true) - .password(password) - ); - assertTrue(sharedLink.getIsPasswordEnabled()); - } - - @Test - public void createEditableSharedLinkSucceeds() { - final String fileID = "1111"; - final String password = "test1"; - - JsonObject permissionsObject = new JsonObject() - .add("can_download", true) - .add("can_preview", true) - .add("can_edit", true); - - JsonObject innerObject = new JsonObject() - .add("password", password) - .add("access", "open") - .add("permissions", permissionsObject); - - JsonObject sharedLinkObject = new JsonObject() - .add("shared_link", innerObject); - - String result = getFixture("BoxSharedLink/CreateEditableSharedLink201"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo("/2.0/files/" + fileID)) - .withRequestBody(WireMock.equalToJson(sharedLinkObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFile file = new BoxFile(this.api, fileID); - - BoxSharedLink sharedLink = file.createSharedLink( - new BoxSharedLinkRequest().access(OPEN) - .permissions(true, true, true) - .password(password) - ); - assertTrue(sharedLink.getIsPasswordEnabled()); - assertTrue(sharedLink.getPermissions().getCanEdit()); - } - - @Test - public void testDownloadFromSharedLinkWithPassword() { - final String sharedItemsURL = "/2.0/shared_items"; - final String fileContentURL = "/2.0/files/12345/content"; - final String sharedLink = "https://app.box.com/s/abcdef123456"; - final String password = "password"; - final byte[] fileContent = "This is a test file content".getBytes(); - final String expectedSharedLinkHeaderValue = "shared_link=" + sharedLink + "&shared_link_password=" + password; - final String expectedDownloadPath = "/shared/static/rh935iit6ewrmw0unyul.jpeg"; - final String expectedDownloadUrl = format("https://localhost:%d%s", wireMockRule.httpsPort(), expectedDownloadPath); - - String sharedItemsResponse = "{ \"type\": \"file\", \"id\": \"12345\" }"; - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(sharedItemsURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(sharedItemsResponse))); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(fileContentURL)) - .withHeader("boxapi", WireMock.equalTo(expectedSharedLinkHeaderValue)) - .willReturn(WireMock.aResponse() - .withStatus(302) - .withHeader("Location", expectedDownloadUrl))); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(expectedDownloadPath)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", "application/octet-stream") - .withBody(fileContent))); - - - ByteArrayOutputStream output = new ByteArrayOutputStream(); - BoxFile.downloadFromSharedLink(api, output, sharedLink, password); - - verify(1, getRequestedFor( - urlEqualTo("/2.0/shared_items?fields=id")). - withHeader("BoxApi", WireMock.equalTo(expectedSharedLinkHeaderValue))); - - verify(1, getRequestedFor(urlEqualTo(fileContentURL)). - withHeader("boxapi", WireMock.equalTo(expectedSharedLinkHeaderValue))); - - verify(1, getRequestedFor(urlEqualTo(expectedDownloadPath))); - - assertArrayEquals(fileContent, output.toByteArray()); - } - - @Test - public void testDownloadFromSharedLinkWithProgressListener() { - final String sharedItemsURL = "/2.0/shared_items"; - final String fileContentURL = "/2.0/files/12345/content"; - final String sharedLink = "https://app.box.com/s/abcdef123456"; - final byte[] fileContent = "This is a test file content".getBytes(); - final String expectedSharedLinkHeaderValue = "shared_link=" + sharedLink; - final String expectedDownloadPath = "/shared/static/rh935iit6ewrmw0unyul.jpeg"; - final String expectedDownloadUrl = format( - "https://localhost:%d%s", wireMockRule.httpsPort(), expectedDownloadPath - ); - - String sharedItemsResponse = format( - "{ \"download_url\": \"%s\", \"type\": \"file\", \"id\": \"12345\" }", - expectedDownloadUrl - ); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(sharedItemsURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(sharedItemsResponse))); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(fileContentURL)) - .withHeader("boxapi", WireMock.equalTo(expectedSharedLinkHeaderValue)) - .willReturn(WireMock.aResponse() - .withStatus(302) - .withHeader("Location", expectedDownloadUrl))); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(expectedDownloadPath)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", "application/octet-stream") - .withBody(fileContent))); - - - ByteArrayOutputStream output = new ByteArrayOutputStream(); - ProgressListener listener = (numBytes, totalBytes) -> { - // Implement progress listener logic if needed - }; - BoxFile.downloadFromSharedLink(api, output, sharedLink, listener); - - verify(1, getRequestedFor( - urlEqualTo("/2.0/shared_items?fields=id")). - withHeader("BoxApi", WireMock.equalTo(expectedSharedLinkHeaderValue))); - - verify(1, getRequestedFor(urlEqualTo(fileContentURL)). - withHeader("boxapi", WireMock.equalTo(expectedSharedLinkHeaderValue))); - - verify(1, getRequestedFor(urlEqualTo(expectedDownloadPath))); - - assertArrayEquals(fileContent, output.toByteArray()); - } - - @Test - public void testAddClassification() { - final String fileID = "12345"; - final String classificationType = "Public"; - final String metadataURL = "/2.0/files/" + fileID + "/metadata/enterprise/securityClassification-6VMVochwUWo"; - JsonObject metadataObject = new JsonObject() - .add("Box__Security__Classification__Key", classificationType); - - String result = getFixture("BoxFile/CreateClassificationOnFile201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(metadataURL)) - .withRequestBody(WireMock.equalToJson(metadataObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFile file = new BoxFile(this.api, fileID); - String classification = file.addClassification(classificationType); - - assertEquals(classificationType, classification); - } - - @Test - public void testUpdateClassification() { - final String fileID = "12345"; - final String classificationType = "Internal"; - final String metadataURL = "/2.0/files/" + fileID + "/metadata/enterprise/securityClassification-6VMVochwUWo"; - JsonObject metadataObject = new JsonObject() - .add("op", "add") - .add("path", "/Box__Security__Classification__Key") - .add("value", "Internal"); - - JsonArray metadataArray = new JsonArray() - .add(metadataObject); - - String result = getFixture("BoxFile/UpdateClassificationOnFile200"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(metadataURL)) - .withRequestBody(WireMock.equalToJson(metadataArray.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON_PATCH) - .withBody(result))); - - BoxFile file = new BoxFile(this.api, fileID); - String classification = file.updateClassification(classificationType); - - assertEquals(classificationType, classification); - } - - @Test - public void testSetClassification() { - final String fileID = "12345"; - final String classificationType = "Internal"; - final String metadataURL = "/2.0/files/" + fileID + "/metadata/enterprise/securityClassification-6VMVochwUWo"; - JsonObject metadataObject = new JsonObject() - .add("op", "replace") - .add("path", "/Box__Security__Classification__Key") - .add("value", "Internal"); - - JsonArray metadataArray = new JsonArray() - .add(metadataObject); - - String result = getFixture("BoxFile/UpdateClassificationOnFile200"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(metadataURL)) - .willReturn(WireMock.aResponse() - .withBody("{}") - .withStatus(409))); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(metadataURL)) - .withRequestBody(WireMock.equalToJson(metadataArray.toString())) - .withHeader("Content-Type", WireMock.equalTo(APPLICATION_JSON_PATCH)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFile file = new BoxFile(this.api, fileID); - String classification = file.setClassification(classificationType); - - assertEquals(classificationType, classification); - } - - @Test(expected = BoxAPIResponseException.class) - public void testSetClassificationThrowsException() { - final String fileID = "12345"; - final String classificationType = "Internal"; - final String metadataURL = "/2.0/files/" + fileID + "/metadata/enterprise/securityClassification-6VMVochwUWo"; - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(metadataURL)) - .willReturn(WireMock.aResponse() - .withBody("{}") - .withStatus(403))); - - BoxFile file = new BoxFile(this.api, fileID); - file.setClassification(classificationType); - } - - @Test - public void testGetClassification() { - final String fileID = "12345"; - final String metadataURL = "/2.0/files/" + fileID + "/metadata/enterprise/securityClassification-6VMVochwUWo"; - - String result = getFixture("BoxFile/CreateClassificationOnFile201"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(metadataURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFile file = new BoxFile(this.api, fileID); - String classification = file.getClassification(); - - assertEquals("Public", classification); - } - - @Test - public void testGetClassificationReturnsNone() { - final String fileID = "12345"; - final String metadataURL = "/2.0/files/" + fileID + "/metadata/enterprise/securityClassification-6VMVochwUWo"; - - String getResult = getFixture("BoxException/BoxResponseException404"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(metadataURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(getResult) - .withStatus(404))); - - BoxFile file = new BoxFile(this.api, fileID); - String classification = file.getClassification(); - - assertNull(classification); - } - - @Test(expected = BoxAPIException.class) - public void testGetClassificationThrows() { - final String fileID = "12345"; - final String metadataURL = "/2.0/files/" + fileID + "/metadata/enterprise/securityClassification-6VMVochwUWo"; - - String getResult = getFixture("BoxException/BoxResponseException403"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(metadataURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(getResult) - .withStatus(403))); - - BoxFile file = new BoxFile(this.api, fileID); - file.getClassification(); - } - - @Test - public void testDeleteClassification() { - final String fileID = "12345"; - final String metadataURL = "/2.0/files/" + fileID + "/metadata/enterprise/securityClassification-6VMVochwUWo"; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(metadataURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON_PATCH) - .withStatus(204))); - - BoxFile file = new BoxFile(this.api, fileID); - file.deleteClassification(); - } - - @Test - public void testSetMetadataReturnsCorrectly() { - final String fileID = "12345"; - final String metadataURL = "/2.0/files/" + fileID + "/metadata/enterprise/testtemplate"; - ArrayList secondValueArray = new ArrayList<>(); - secondValueArray.add("first"); - secondValueArray.add("second"); - secondValueArray.add("third"); - - String postResult = getFixture("/BoxException/BoxResponseException409"); - String putResult = getFixture("/BoxFile/UpdateMetadataOnFile200"); - - final String firstValue = "text"; - JsonArray secondValueJson = new JsonArray() - .add("first") - .add("second") - .add("third"); - final int thirdValue = 2; - final double fourthValue = 233333333333333340.0; - - JsonObject firstAttribute = new JsonObject() - .add("op", "add") - .add("path", "/test1") - .add("value", firstValue); - - JsonObject secondAttribute = new JsonObject() - .add("op", "add") - .add("path", "/test2") - .add("value", secondValueJson); - - JsonObject thirdAttribute = new JsonObject() - .add("op", "add") - .add("path", "/test3") - .add("value", thirdValue); - - JsonObject fourthAttribute = new JsonObject() - .add("op", "add") - .add("path", "/test4") - .add("value", fourthValue); - - JsonArray jsonArray = new JsonArray() - .add(firstAttribute) - .add(secondAttribute) - .add(thirdAttribute) - .add(fourthAttribute); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(metadataURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(postResult) - .withStatus(409))); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(metadataURL)) - .withRequestBody(WireMock.equalToJson(jsonArray.toString())) - .withHeader("Content-Type", WireMock.equalTo(APPLICATION_JSON_PATCH)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(putResult) - .withStatus(200))); - - BoxFile file = new BoxFile(this.api, fileID); - - Metadata metadata = new Metadata() - .add("/test1", firstValue) - .add("/test2", secondValueArray) - .add("/test3", thirdValue) - .add("/test4", fourthValue); - - Metadata metadataValues = file.setMetadata("testtemplate", "enterprise", metadata); - - assertEquals("file_12345", metadataValues.getParentID()); - assertEquals("testtemplate", metadataValues.getTemplateName()); - assertEquals("enterprise_11111", metadataValues.getScope()); - assertEquals(firstValue, metadataValues.getString("/test1")); - assertEquals(secondValueJson, metadataValues.getValue("/test2")); - assertEquals(thirdValue, metadataValues.getDouble("/test3"), 0); - assertEquals(fourthValue, metadataValues.getDouble("/test4"), 4); - } - - @Test - public void testChunkedUploadWithCorrectPartSize() throws IOException, InterruptedException { - final String preflightURL = "/2.0/files/content"; - final String sessionURL = "/2.0/files/upload_sessions"; - final String uploadURL = "/2.0/files/upload_sessions/D5E3F8ADA11A38F0A66AD0B64AACA658"; - final String commitURL = "/2.0/files/upload_sessions/D5E3F8ADA11A38F0A66AD0B64AACA658/commit"; - FakeStream stream = new FakeStream("aaaaa"); - - String sessionResult = getFixture("BoxFile/CreateUploadSession201", wireMockRule.httpsPort()); - String uploadResult = getFixture("BoxFile/UploadPartOne200"); - String commitResult = getFixture("BoxFile/CommitUpload201"); - String canUploadResult = getFixture("BoxFile/CanUploadFile200"); - - JsonObject idObject = new JsonObject() - .add("id", "12345"); - - JsonObject preflightObject = new JsonObject() - .add("name", "testfile.txt") - .add("size", 5) - .add("parent", idObject); - - JsonObject sessionObject = new JsonObject() - .add("folder_id", "12345") - .add("file_size", 5) - .add("file_name", "testfile.txt"); - - JsonObject partOne = new JsonObject() - .add("part_id", "CFEB5BA9") - .add("offset", 0) - .add("size", 5); - - JsonArray parts = new JsonArray() - .add(partOne); - - JsonObject commitObject = new JsonObject() - .add("parts", parts); - - wireMockRule.stubFor(WireMock.options(WireMock.urlPathEqualTo(preflightURL)) - .withHeader("Content-Type", WireMock.equalTo(APPLICATION_JSON)) - .withRequestBody(WireMock.equalToJson(preflightObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(200) - .withBody(canUploadResult))); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(sessionURL)) - .withRequestBody(WireMock.equalToJson(sessionObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(sessionResult))); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(uploadURL)) - .withHeader("Digest", WireMock.containing("sha=31HjfCaaqU04+T5Te/biAgshQGw=")) - .withHeader("Content-Type", WireMock.containing(APPLICATION_OCTET_STREAM)) - .withHeader("Content-Range", WireMock.containing("bytes 0-4/5")) - .withRequestBody(WireMock.equalTo("aaaaa")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(uploadResult))); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(commitURL)) - .withHeader("Content-Type", WireMock.equalTo(APPLICATION_JSON)) - .withRequestBody(WireMock.containing(commitObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(commitResult))); - - BoxFolder folder = new BoxFolder(this.api, "12345"); - BoxFile.Info uploadedFile = folder.uploadLargeFile(stream, "testfile.txt", 5); - - assertEquals("1111111", uploadedFile.getID()); - assertEquals("testuser@box.com", uploadedFile.getModifiedBy().getLogin()); - assertEquals("Test User", uploadedFile.getOwnedBy().getName()); - assertEquals("folder", uploadedFile.getParent().getType()); - assertEquals("testfile.txt", uploadedFile.getName()); - } - - @Test - public void testChunkedVersionUploadWithCorrectPartSizeAndAttributes() throws IOException, InterruptedException { - final String sessionURL = "/2.0/files/1111111/upload_sessions"; - final String uploadURL = "/2.0/files/upload_sessions/D5E3F8ADA11A38F0A66AD0B64AACA658"; - final String commitURL = "/2.0/files/upload_sessions/D5E3F8ADA11A38F0A66AD0B64AACA658/commit"; - FakeStream stream = new FakeStream("aaaaa"); - - String sessionResult = getFixture("BoxFile/CreateUploadSession201", wireMockRule.httpsPort()); - String uploadResult = getFixture("BoxFile/UploadPartOne200"); - String commitResult = getFixture("BoxFile/CommitUploadWithAttributes201"); - - JsonObject sessionObject = new JsonObject() - .add("file_size", 5); - - JsonObject partOne = new JsonObject() - .add("part_id", "CFEB5BA9") - .add("offset", 0) - .add("size", 5); - - JsonArray parts = new JsonArray() - .add(partOne); - - Map fileAttributes = new HashMap<>(); - fileAttributes.put("content_modified_at", "2017-04-08T00:58:08Z"); - - JsonObject fileAttributesJson = new JsonObject(); - for (String attrKey : fileAttributes.keySet()) { - fileAttributesJson.set(attrKey, fileAttributes.get(attrKey)); - } - - JsonObject commitObject = new JsonObject() - .add("parts", parts) - .add("attributes", fileAttributesJson); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(sessionURL)) - .withRequestBody(WireMock.equalToJson(sessionObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(sessionResult))); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(uploadURL)) - .withHeader("Digest", WireMock.containing("sha=31HjfCaaqU04+T5Te/biAgshQGw=")) - .withHeader("Content-Type", WireMock.containing(APPLICATION_OCTET_STREAM)) - .withHeader("Content-Range", WireMock.containing("bytes 0-4/5")) - .withRequestBody(WireMock.equalTo("aaaaa")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(uploadResult))); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(commitURL)) - .withHeader("Content-Type", WireMock.equalTo(APPLICATION_JSON)) - .withRequestBody(WireMock.containing(commitObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(commitResult))); - - BoxFile file = new BoxFile(this.api, "1111111"); - BoxFile.Info uploadedFile = file.uploadLargeFile(stream, 5, fileAttributes); - - assertEquals("1111111", uploadedFile.getID()); - assertEquals("testuser@box.com", uploadedFile.getModifiedBy().getLogin()); - assertEquals("Test User", uploadedFile.getOwnedBy().getName()); - assertEquals("folder", uploadedFile.getParent().getType()); - assertEquals("testfile.txt", uploadedFile.getName()); - assertEquals(1491613088000L, uploadedFile.getContentModifiedAt().getTime()); - } - - @Test - public void setsVanityUrlOnASharedLink() { - //given - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor( - request -> { - //then - JsonObject responseJson = Json.parse(request.bodyToString()).asObject(); - JsonObject sharedLinkJson = responseJson.get("shared_link").asObject(); - assertThat(sharedLinkJson.get("vanity_name").asString(), is("myCustomName")); - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{}"; - } - }; - } - ); - BoxSharedLinkRequest sharedLink = new BoxSharedLinkRequest() - .vanityName("myCustomName"); - - //when - BoxFile file = new BoxFile(api, "12345"); - file.createSharedLink(sharedLink); - } - - @Test - public void createDefaultSharedLink() { - //given - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor( - request -> { - //then - String requestString = request.bodyToString(); - assertThat(requestString, is("{\"shared_link\":{}}")); - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{}"; - } - }; - } - ); - BoxSharedLinkRequest sharedLink = new BoxSharedLinkRequest(); - - //when - BoxFile file = new BoxFile(api, "12345"); - file.createSharedLink(sharedLink); - } - - @Test - public void setMetadataWorksWhenNoChangesSubmittedAndConflictOccured() { - // given - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - BoxFile file = new BoxFile(api, "someFile"); - final AtomicInteger postCounter = new AtomicInteger(0); - final AtomicInteger getCounter = new AtomicInteger(0); - api.setRequestInterceptor( - request -> { - if (request.getMethod().equals("POST")) { - postCounter.incrementAndGet(); - throw new BoxAPIException("Conflict", 409, "{}"); - } - if (request.getMethod().equals("GET")) { - getCounter.incrementAndGet(); - } - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{}"; - } - }; - } - ); - - // when - file.setMetadata("template1", "enterprise-1", new Metadata()); - - // then - assertThat(postCounter.get(), is(1)); - assertThat(getCounter.get(), is(1)); - } - - @Test - public void getVersionsWithSpecificFieldsAndDefaultLimit() { - // given - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - BoxFile file = new BoxFile(api, "6543"); - - // then - api.setRequestInterceptor( - request -> { - try { - String query = URLDecoder.decode(request.getUrl().getQuery(), "UTF-8"); - assertThat(query, containsString("limit=1000&offset=0&fields=name,version_number")); - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"entries\": [], \"total_count\": 100}"; - } - }; - } catch (UnsupportedEncodingException e) { - throw new RuntimeException(e); - } - } - ); - - // when - file.getVersions("name", "version_number"); - } - - @Test - public void getVersionsWithLimitAndOffset() { - // given - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - BoxFile file = new BoxFile(api, "6543"); - - // then - api.setRequestInterceptor( - request -> { - try { - String query = URLDecoder.decode(request.getUrl().getQuery(), "UTF-8"); - assertThat(query, containsString("limit=10&offset=0&fields=name,version_number")); - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"entries\": [], \"total_count\": 100}"; - } - }; - } catch (UnsupportedEncodingException e) { - throw new RuntimeException(e); - } - } - ); - - // when - file.getVersionsRange(0, 10, "name", "version_number"); - } - - @Test - public void setsDispositionAt() throws ParseException { - //given - String fileId = "12345"; - final String fileURL = "/2.0/files/" + fileId; - String dispositionAtString = "2012-12-12T18:53:43Z"; - String result = getFixture("BoxFile/GetFileInfo200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(fileURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - api.setRequestInterceptor( - request -> { - //then - if (request.getMethod().equals("PUT")) { - JsonObject requestJson = Json.parse(request.bodyToString()).asObject(); - String dispositionAt = requestJson.get("disposition_at").asString(); - assertThat(dispositionAt, is(dispositionAtString)); - } - return new BoxJSONResponse() { - @Override - public String getJSON() { - return result; - } - }; - } - ); - - //when - BoxFile file = new BoxFile(api, fileId); - BoxFile.Info info = file.getInfo(); - info.setDispositionAt(BoxDateFormat.parse(dispositionAtString)); - file.updateInfo(info); - } - - /** - * Fake stream class used in testing in uploadLargeFile() if part size is populated correctly. - */ - public static class FakeStream extends InputStream { - String value; - int pointer; - - public FakeStream(String value) { - this.value = value; - this.pointer = 0; - } - - @Override - public int read() { - char a = this.value.toCharArray()[this.pointer]; - this.pointer += 1; - return a; - } - - @Override - public int read(byte[] b, int offset, int len) { - b[offset] = this.value.getBytes(UTF_8)[offset]; - this.pointer += 1; - return 1; - } - } - - @Test - public void renameFile() { - final String fileID = "12345"; - final String metadataURL = "/2.0/files/" + fileID; - String result = getFixture("BoxFile/GetFileInfo200"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(metadataURL)) - .withRequestBody(new EqualToJsonPattern("{\"name\": \"New Name\"}", false, false)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result) - .withStatus(200))); - - new BoxFile(this.api, fileID).rename("New Name"); - } -} diff --git a/src/test/java/com/box/sdk/BoxFileVersionLegalHoldTest.java b/src/test/java/com/box/sdk/BoxFileVersionLegalHoldTest.java deleted file mode 100644 index 1aa62ec91..000000000 --- a/src/test/java/com/box/sdk/BoxFileVersionLegalHoldTest.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.box.sdk; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import java.util.Iterator; -import org.junit.Test; - -/** - * {@link BoxFileVersionLegalHoldTest} related unit tests. - */ -public class BoxFileVersionLegalHoldTest { - - /** - * Unit test for {@link BoxFileVersionLegalHold#getInfo(String...)} - */ - @Test - public void testGetInfoSendsCorrectRequest() { - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(request -> { - assertEquals("https://api.box.com/2.0/file_version_legal_holds/0?fields=file", - request.getUrl().toString()); - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"id\": \"0\"}"; - } - }; - }); - - BoxFileVersionLegalHold hold = new BoxFileVersionLegalHold(api, "0"); - hold.getInfo("file"); - } - - /** - * Unit test for {@link BoxFileVersionLegalHold#getInfo(String...)} - */ - @Test - public void testGetInfoParseAllFieldsCorrectly() { - final String id = "240997"; - final String fileVersionID = "141649417"; - final String fileID = "5025122933"; - final String fileEtag = "1"; - final String firstPolicyID = "255473"; - final String secondPolicyID = "255617"; - - final JsonObject fakeJSONResponse = Json.parse("{\n" - + " \"type\": \"legal_hold\",\n" - + " \"id\": \"240997\",\n" - + " \"file_version\": {\n" - + " \"type\": \"file_version\",\n" - + " \"id\": \"141649417\"\n" - + " },\n" - + " \"file\": {\n" - + " \"type\": \"file\",\n" - + " \"id\": \"5025122933\",\n" - + " \"etag\": \"1\"\n" - + " },\n" - + " \"legal_hold_policy_assignments\": [\n" - + " {\n" - + " \"type\": \"legal_hold_policy_assignment\",\n" - + " \"id\": \"255473\"\n" - + " },\n" - + " {\n" - + " \"type\": \"legal_hold_policy_assignment\",\n" - + " \"id\": \"255617\"\n" - + " }\n" - + " ],\n" - + " \"deleted_at\": null\n" - + "}").asObject(); - - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(JSONRequestInterceptor.respondWith(fakeJSONResponse)); - - BoxFileVersionLegalHold hold = new BoxFileVersionLegalHold(api, id); - BoxFileVersionLegalHold.Info info = hold.getInfo(); - assertEquals(id, info.getID()); - assertEquals(fileVersionID, info.getFileVersion().getID()); - assertEquals(fileID, info.getFileVersion().getFileID()); - assertEquals(fileID, info.getFile().getID()); - assertEquals(fileEtag, info.getFile().getEtag()); - assertNull(info.getDeletedAt()); - Iterator iterator = info.getAssignments().iterator(); - assertEquals(firstPolicyID, iterator.next().getID()); - assertEquals(secondPolicyID, iterator.next().getID()); - assertFalse(iterator.hasNext()); - } -} diff --git a/src/test/java/com/box/sdk/BoxFileVersionRetentionTest.java b/src/test/java/com/box/sdk/BoxFileVersionRetentionTest.java deleted file mode 100644 index 614df2707..000000000 --- a/src/test/java/com/box/sdk/BoxFileVersionRetentionTest.java +++ /dev/null @@ -1,194 +0,0 @@ -package com.box.sdk; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import java.net.MalformedURLException; -import java.net.URL; -import java.text.ParseException; -import java.util.Date; -import java.util.Iterator; -import org.junit.Test; - -/** - * {@link BoxFileVersionRetention} related unit tests. - */ -public class BoxFileVersionRetentionTest { - - /** - * Unit test for {@link BoxFileVersionRetention#getInfo(String...)} - */ - @Test - public void testGetInfoSendsCorrectRequest() { - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(request -> { - assertEquals("https://api.box.com/2.0/file_version_retentions/0?fields=file%2Capplied_at", - request.getUrl().toString()); - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"id\": \"0\"}"; - } - }; - }); - - BoxFileVersionRetention retention = new BoxFileVersionRetention(api, "0"); - retention.getInfo("file", "applied_at"); - } - - /** - * Unit test for {@link BoxFileVersionRetention#getInfo(String...)} - */ - @Test - public void testGetInfoParseAllFieldsCorrectly() throws ParseException { - final String id = "112729"; - final Date appliedAt = BoxDateFormat.parse("2015-08-06T22:02:24-07:00"); - final Date dispositionAt = BoxDateFormat.parse("2016-08-06T21:45:28-07:00"); - final String winningPolicyID = "41173"; - final String winningPolicyName = "Tax Documents"; - final String fileVersionID = "124887629"; - final String fileVersionSHA1 = "4262d6250b0e6f440dca43a2337bd4621bad9136"; - final String fileID = "5011706273"; - final String fileEtag = "2"; - - final JsonObject fakeJSONResponse = Json.parse("{\n" - + " \"type\": \"file_version_retention\",\n" - + " \"id\": \"112729\",\n" - + " \"applied_at\": \"2015-08-06T22:02:24-07:00\",\n" - + " \"disposition_at\": \"2016-08-06T21:45:28-07:00\",\n" - + " \"winning_retention_policy\": {\n" - + " \"type\": \"retention_policy\",\n" - + " \"id\": \"41173\",\n" - + " \"policy_name\": \"Tax Documents\"\n" - + " },\n" - + " \"file_version\": {\n" - + " \"type\": \"file_version\",\n" - + " \"id\": \"124887629\",\n" - + " \"sha1\": \"4262d6250b0e6f440dca43a2337bd4621bad9136\"\n" - + " },\n" - + " \"file\": {\n" - + " \"type\": \"file_version\",\n" - + " \"id\": \"5011706273\",\n" - + " \"etag\": \"2\"\n" - + " }\n" - + "}").asObject(); - - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(JSONRequestInterceptor.respondWith(fakeJSONResponse)); - - BoxFileVersionRetention retention = new BoxFileVersionRetention(api, id); - BoxFileVersionRetention.Info info = retention.getInfo(); - assertEquals(appliedAt, info.getAppliedAt()); - assertEquals(dispositionAt, info.getDispositionAt()); - assertEquals(winningPolicyID, info.getWinningPolicy().getID()); - assertEquals(winningPolicyName, info.getWinningPolicy().getPolicyName()); - assertEquals(fileVersionID, info.getFileVersion().getID()); - assertEquals(fileVersionSHA1, info.getFileVersion().getSha1()); - assertEquals(fileID, info.getFile().getID()); - assertEquals(fileEtag, info.getFile().getEtag()); - } - - /** - * Unit test for {@link BoxFileVersionRetention#getAll(BoxAPIConnection, String...)} - */ - @Test - public void testGetAllSendsCorrectRequest() { - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(request -> { - assertEquals("https://api.box.com/2.0/file_version_retentions?limit=100", - request.getUrl().toString()); - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"entries\": []}"; - } - }; - }); - - BoxFileVersionRetention.getAll(api); - } - - /** - * Unit test for - * {@link BoxFileVersionRetention#getRetentions(BoxAPIConnection, BoxFileVersionRetention.QueryFilter, String...)} - */ - @Test - public void testGetRetentionsSendsCorrectRequest() throws ParseException { - final String urlString = "https://api.box.com/2.0/file_version_retentions" - + "?file_id=0&file_version_id=1&policy_id=2" - + "&disposition_action=permanently_delete" - + "&disposition_before=2016-09-15T13%3A15%3A35Z" - + "&disposition_after=2014-09-15T13%3A15%3A35Z" - + "&fields=file%2Capplied_at" - + "&limit=100"; - - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(request -> { - try { - assertEquals(new URL(urlString), request.getUrl()); - } catch (MalformedURLException e) { - assert false; - } - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"entries\": []}"; - } - }; - }); - - BoxFileVersionRetention.QueryFilter filter = new BoxFileVersionRetention.QueryFilter() - .addFileID("0") - .addFileVersionID("1") - .addPolicyID("2") - .addDispositionAction(BoxRetentionPolicy.ACTION_PERMANENTLY_DELETE) - .addDispositionBefore(BoxDateFormat.parse("2016-09-15T13:15:35Z")) - .addDispositionAfter(BoxDateFormat.parse("2014-09-15T13:15:35Z")); - - Iterator iterator - = BoxFileVersionRetention.getRetentions(api, filter, "file", "applied_at").iterator(); - assertFalse(iterator.hasNext()); - } - - /** - * Unit test for {@link BoxFileVersionRetention#getAll(BoxAPIConnection, String...)} - */ - @Test - public void testGetAllParseAllFieldsCorrectly() { - final String firstEntryID = "112725"; - final String secondEntryID = "112733"; - - final JsonObject fakeJSONResponse = Json.parse("{\n" - + " \"entries\": [\n" - + " {\n" - + " \"type\": \"file_version_retention\",\n" - + " \"id\": \"112725\"\n" - + " },\n" - + " {\n" - + " \"type\": \"file_version_retention\",\n" - + " \"id\": \"112733\"\n" - + " }\n" - + " ],\n" - + " \"limit\": 100,\n" - + " \"order\": [\n" - + " {\n" - + " \"by\": \"file_version_id\",\n" - + " \"direction\": \"ASC\"\n" - + " }\n" - + " ]\n" - + "}").asObject(); - - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(JSONRequestInterceptor.respondWith(fakeJSONResponse)); - - Iterator iterator = BoxFileVersionRetention.getAll(api).iterator(); - BoxFileVersionRetention.Info info = iterator.next(); - assertEquals(firstEntryID, info.getID()); - info = iterator.next(); - assertEquals(secondEntryID, info.getID()); - assertFalse(iterator.hasNext()); - } - -} diff --git a/src/test/java/com/box/sdk/BoxFileVersionTest.java b/src/test/java/com/box/sdk/BoxFileVersionTest.java deleted file mode 100644 index ea5efbcad..000000000 --- a/src/test/java/com/box/sdk/BoxFileVersionTest.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import java.text.ParseException; -import java.util.Date; -import org.junit.Assert; -import org.junit.Test; - -/** - * {@link BoxFileVersion} related tests. - */ -public class BoxFileVersionTest { - - /** - * Unit test for {@link BoxFileVersion#delete()} - */ - @Test - public void testDeleteSendsCorrectRequest() { - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(request -> { - Assert.assertEquals("https://api.box.com/2.0/files/0/versions/1", - request.getUrl().toString()); - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"id\": \"0\"}"; - } - }; - }); - - BoxFile file = new BoxFile(api, "0"); - BoxFileVersion version = new BoxFileVersion(api, new JsonObject().add("id", "1"), file.getID()); - version.delete(); - } - - /** - * Unit test for {@link BoxFileVersion#promote()} - */ - @Test - public void testPromoteSendsCorrectJSON() { - final String type = "file_version"; - final String id = "1"; - - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(new JSONRequestInterceptor() { - @Override - protected BoxAPIResponse onJSONRequest(BoxJSONRequest request, JsonObject json) { - Assert.assertEquals("https://api.box.com/2.0/files/0/versions/current", request.getUrl().toString()); - Assert.assertEquals(type, json.get("type").asString()); - Assert.assertEquals(id, json.get("id").asString()); - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"id\": \"0\"}"; - } - }; - } - }); - - BoxFileVersion version = new BoxFileVersion(api, new JsonObject().add("id", "1"), "0"); - version.promote(); - } - - /** - * Unit test for {@link BoxFileVersion#promote()} - */ - @Test - public void testPromoteParseAllFieldsCorrectly() throws ParseException { - final String id = "871399"; - final String sha1 = "12039d6dd9a7e6eefc78846802e"; - final String name = "Stark Family Lineage.doc"; - final long size = 11; - final String uploaderDisplayName = "Arya Stark"; - final Date createdAt = BoxDateFormat.parse("2013-11-20T13:20:50-08:00"); - final Date modifiedAt = BoxDateFormat.parse("2013-11-20T13:26:48-08:00"); - final String modifiedById = "13711334"; - final String modifiedByName = "Eddard Stark"; - final String modifiedByLogin = "ned@winterfell.com"; - - final JsonObject fakeJSONResponse = Json.parse("{\n" - + " \"type\": \"file_version\",\n" - + " \"id\": \"871399\",\n" - + " \"sha1\": \"12039d6dd9a7e6eefc78846802e\",\n" - + " \"name\": \"Stark Family Lineage.doc\",\n" - + " \"size\": 11,\n" - + " \"uploader_display_name\": \"Arya Stark\",\n" - + " \"created_at\": \"2013-11-20T13:20:50-08:00\",\n" - + " \"modified_at\": \"2013-11-20T13:26:48-08:00\",\n" - + " \"modified_by\": {\n" - + " \"type\": \"user\",\n" - + " \"id\": \"13711334\",\n" - + " \"name\": \"Eddard Stark\",\n" - + " \"login\": \"ned@winterfell.com\"\n" - + " }\n" - + "}").asObject(); - - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(JSONRequestInterceptor.respondWith(fakeJSONResponse)); - - BoxFileVersion version = new BoxFileVersion(api, new JsonObject().add("id", id), "0"); - version.promote(); - Assert.assertEquals(id, version.getID()); - Assert.assertEquals(sha1, version.getSha1()); - Assert.assertEquals(name, version.getName()); - Assert.assertEquals(size, version.getSize()); - Assert.assertEquals(uploaderDisplayName, version.getUploaderDisplayName()); - Assert.assertEquals(createdAt, version.getCreatedAt()); - Assert.assertEquals(modifiedAt, version.getModifiedAt()); - Assert.assertEquals(modifiedById, version.getModifiedBy().getID()); - Assert.assertEquals(modifiedByName, version.getModifiedBy().getName()); - Assert.assertEquals(modifiedByLogin, version.getModifiedBy().getLogin()); - - } -} diff --git a/src/test/java/com/box/sdk/BoxFolderTest.java b/src/test/java/com/box/sdk/BoxFolderTest.java deleted file mode 100644 index af297dffa..000000000 --- a/src/test/java/com/box/sdk/BoxFolderTest.java +++ /dev/null @@ -1,1711 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxFolder.SortDirection.DESC; -import static com.box.sdk.BoxSharedLink.Access.OPEN; -import static com.box.sdk.PagingParameters.marker; -import static com.box.sdk.SortParameters.ascending; -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.box.sdk.http.ContentType.APPLICATION_JSON_PATCH; -import static com.box.sdk.http.ContentType.APPLICATION_OCTET_STREAM; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static com.github.tomakehurst.wiremock.stubbing.Scenario.STARTED; -import static java.lang.String.format; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertThrows; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - -import com.box.sdk.sharedlink.BoxSharedLinkRequest; -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import com.github.tomakehurst.wiremock.matching.EqualToJsonPattern; -import com.github.tomakehurst.wiremock.matching.EqualToPattern; -import com.github.tomakehurst.wiremock.matching.MultipartValuePatternBuilder; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Date; -import java.util.EnumSet; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicInteger; -import org.hamcrest.CoreMatchers; -import org.junit.Assume; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -/** - * {@link BoxFolder} related unit tests. - */ -public class BoxFolderTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - api.setBaseUploadURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void testChunkedUploadThrows409() throws IOException, InterruptedException { - String javaVersion = System.getProperty("java.version"); - Assume.assumeFalse("Test is not run for JDK 7", javaVersion.contains("1.7")); - final String preflightURL = "/2.0/files/content"; - BoxFileTest.FakeStream stream = new BoxFileTest.FakeStream("aaaaa"); - - String getResult = TestUtils.getFixture("BoxException/BoxResponseException409"); - - JsonObject idObject = new JsonObject() - .add("id", "12345"); - - JsonObject preflightObject = new JsonObject() - .add("name", "testfile.txt") - .add("size", 5) - .add("parent", idObject); - - wireMockRule.stubFor(WireMock.options(WireMock.urlPathEqualTo(preflightURL)) - .withRequestBody(WireMock.equalToJson(preflightObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(getResult) - .withStatus(409))); - - try { - BoxFolder folder = new BoxFolder(this.api, "12345"); - folder.uploadLargeFile(stream, "testfile.txt", 5); - fail("Preflight check for chunked upload did not fail with 409."); - } catch (BoxAPIException apiEx) { - assertEquals(apiEx.getResponseCode(), 409); - } - } - - @Test - public void testChunkedUploadWithCorrectPartSizeAndAttributes() throws IOException, InterruptedException { - String javaVersion = System.getProperty("java.version"); - Assume.assumeFalse("Test is not run for JDK 7", javaVersion.contains("1.7")); - final String preflightURL = "/2.0/files/content"; - final String sessionURL = "/2.0/files/upload_sessions"; - final String uploadURL = "/2.0/files/upload_sessions/D5E3F8ADA11A38F0A66AD0B64AACA658"; - final String commitURL = "/2.0/files/upload_sessions/D5E3F8ADA11A38F0A66AD0B64AACA658/commit"; - BoxFileTest.FakeStream stream = new BoxFileTest.FakeStream("aaaaa"); - - String sessionResult = TestUtils.getFixture("BoxFile/CreateUploadSession201", wireMockRule.httpsPort()); - String uploadResult = TestUtils.getFixture("BoxFile/UploadPartOne200"); - String commitResult = TestUtils.getFixture("BoxFile/CommitUploadWithAttributes201"); - String canUploadResult = TestUtils.getFixture("BoxFile/CanUploadFile200"); - - JsonObject idObject = new JsonObject() - .add("id", "12345"); - - JsonObject preflightObject = new JsonObject() - .add("name", "testfile.txt") - .add("size", 5) - .add("parent", idObject); - - JsonObject sessionObject = new JsonObject() - .add("folder_id", "12345") - .add("file_size", 5) - .add("file_name", "testfile.txt"); - - JsonObject partOne = new JsonObject() - .add("part_id", "CFEB5BA9") - .add("offset", 0) - .add("size", 5); - - JsonArray parts = new JsonArray() - .add(partOne); - - Map fileAttributes = new HashMap<>(); - fileAttributes.put("content_modified_at", "2017-04-08T00:58:08Z"); - - JsonObject fileAttributesJson = new JsonObject(); - for (String attrKey : fileAttributes.keySet()) { - fileAttributesJson.set(attrKey, fileAttributes.get(attrKey)); - } - - JsonObject commitObject = new JsonObject() - .add("parts", parts) - .add("attributes", fileAttributesJson); - - wireMockRule.stubFor(WireMock.options(WireMock.urlPathEqualTo(preflightURL)) - .withRequestBody(WireMock.equalToJson(preflightObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(200) - .withBody(canUploadResult))); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(sessionURL)) - .withRequestBody(WireMock.equalToJson(sessionObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(sessionResult))); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(uploadURL)) - .withHeader("Digest", WireMock.containing("sha=31HjfCaaqU04+T5Te/biAgshQGw=")) - .withHeader("Content-Type", WireMock.containing(APPLICATION_OCTET_STREAM)) - .withHeader("Content-Range", WireMock.containing("bytes 0-4/5")) - .withRequestBody(WireMock.equalTo("aaaaa")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(uploadResult))); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(commitURL)) - .withHeader("Content-Type", WireMock.equalTo(APPLICATION_JSON)) - .withRequestBody(WireMock.containing(commitObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(commitResult))); - - BoxFolder folder = new BoxFolder(this.api, "12345"); - BoxFile.Info uploadedFile = folder.uploadLargeFile(stream, "testfile.txt", 5, fileAttributes); - - assertEquals("1111111", uploadedFile.getID()); - assertEquals("testuser@box.com", uploadedFile.getModifiedBy().getLogin()); - assertEquals("Test User", uploadedFile.getOwnedBy().getName()); - assertEquals("folder", uploadedFile.getParent().getType()); - assertEquals("testfile.txt", uploadedFile.getName()); - assertEquals(1491613088000L, uploadedFile.getContentModifiedAt().getTime()); - } - - @Test - public void testChunkedParallelUploadWithCorrectPartSizeAndAttributes() throws IOException, InterruptedException { - String javaVersion = System.getProperty("java.version"); - Assume.assumeFalse("Test is not run for JDK 7", javaVersion.contains("1.7")); - final String preflightURL = "/2.0/files/content"; - final String sessionURL = "/2.0/files/upload_sessions"; - final String uploadURL = "/2.0/files/upload_sessions/D5E3F8ADA11A38F0A66AD0B64AACA658"; - final String commitURL = "/2.0/files/upload_sessions/D5E3F8ADA11A38F0A66AD0B64AACA658/commit"; - BoxFileTest.FakeStream stream = new BoxFileTest.FakeStream("aaaaa"); - - String sessionResult = TestUtils.getFixture("BoxFile/CreateUploadSession201", wireMockRule.httpsPort()); - String uploadResult = TestUtils.getFixture("BoxFile/UploadPartOne200"); - String commitResult = TestUtils.getFixture("BoxFile/CommitUploadWithAttributes201"); - String canUploadResult = TestUtils.getFixture("BoxFile/CanUploadFile200"); - - JsonObject idObject = new JsonObject() - .add("id", "12345"); - - JsonObject preflightObject = new JsonObject() - .add("name", "testfile.txt") - .add("size", 5) - .add("parent", idObject); - - JsonObject sessionObject = new JsonObject() - .add("folder_id", "12345") - .add("file_size", 5) - .add("file_name", "testfile.txt"); - - JsonObject partOne = new JsonObject() - .add("part_id", "CFEB5BA9") - .add("offset", 0) - .add("size", 5); - - JsonArray parts = new JsonArray() - .add(partOne); - - Map fileAttributes = new HashMap<>(); - fileAttributes.put("content_modified_at", "2017-04-08T00:58:08Z"); - - JsonObject fileAttributesJson = new JsonObject(); - for (String attrKey : fileAttributes.keySet()) { - fileAttributesJson.set(attrKey, fileAttributes.get(attrKey)); - } - - JsonObject commitObject = new JsonObject() - .add("parts", parts) - .add("attributes", fileAttributesJson); - - wireMockRule.stubFor(WireMock.options(WireMock.urlPathEqualTo(preflightURL)) - .withRequestBody(WireMock.equalToJson(preflightObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(200) - .withBody(canUploadResult))); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(sessionURL)) - .withRequestBody(WireMock.equalToJson(sessionObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(sessionResult))); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(uploadURL)) - .withHeader("Digest", WireMock.containing("sha=31HjfCaaqU04+T5Te/biAgshQGw=")) - .withHeader("Content-Type", WireMock.containing(APPLICATION_OCTET_STREAM)) - .withHeader("Content-Range", WireMock.containing("bytes 0-4/5")) - .withRequestBody(WireMock.equalTo("aaaaa")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(uploadResult))); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(commitURL)) - .withHeader("Content-Type", WireMock.equalTo(APPLICATION_JSON)) - .withRequestBody(WireMock.containing(commitObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(commitResult))); - - BoxFolder folder = new BoxFolder(this.api, "12345"); - BoxFile.Info uploadedFile = folder.uploadLargeFile(stream, "testfile.txt", - 5, 2, 60, TimeUnit.SECONDS, fileAttributes); - - assertEquals("1111111", uploadedFile.getID()); - assertEquals("testuser@box.com", uploadedFile.getModifiedBy().getLogin()); - assertEquals("Test User", uploadedFile.getOwnedBy().getName()); - assertEquals("folder", uploadedFile.getParent().getType()); - assertEquals("testfile.txt", uploadedFile.getName()); - assertEquals(1491613088000L, uploadedFile.getContentModifiedAt().getTime()); - } - - @Test - public void testChunkedUploadWith500Error() throws IOException, InterruptedException { - String javaVersion = System.getProperty("java.version"); - Assume.assumeFalse("Test is not run for JDK 7", javaVersion.contains("1.7")); - String responseBody500 = TestUtils.getFixture("BoxException/BoxResponseException500"); - final String preflightURL = "/2.0/files/content"; - final String sessionURL = "/2.0/files/upload_sessions"; - final String uploadURL = "/2.0/files/upload_sessions/D5E3F8ADA11A38F0A66AD0B64AACA658"; - final String listPartsURL = "/2.0/files/upload_sessions/D5E3F8ADA11A38F0A66AD0B64AACA658/parts"; - final String commitURL = "/2.0/files/upload_sessions/D5E3F8ADA11A38F0A66AD0B64AACA658/commit"; - - BoxFileTest.FakeStream stream = new BoxFileTest.FakeStream("aaaaa"); - - String sessionResult = TestUtils.getFixture("BoxFile/CreateUploadSession201", wireMockRule.httpsPort()); - String partsResult = TestUtils.getFixture("BoxFile/ListUploadedPart200"); - String commitResult = TestUtils.getFixture("BoxFile/CommitUpload201"); - String canUploadResult = TestUtils.getFixture("BoxFile/CanUploadFile200"); - - JsonObject idObject = new JsonObject() - .add("id", "12345"); - - JsonObject preflightObject = new JsonObject() - .add("name", "testfile.txt") - .add("size", 5) - .add("parent", idObject); - - JsonObject sessionObject = new JsonObject() - .add("folder_id", "12345") - .add("file_size", 5) - .add("file_name", "testfile.txt"); - - JsonObject partOne = new JsonObject() - .add("part_id", "CFEB5BA9") - .add("offset", 0) - .add("size", 5); - - JsonArray parts = new JsonArray() - .add(partOne); - - JsonObject commitObject = new JsonObject() - .add("parts", parts); - - wireMockRule.stubFor(WireMock.options(WireMock.urlPathEqualTo(preflightURL)) - .withRequestBody(WireMock.equalToJson(preflightObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(200) - .withBody(canUploadResult))); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(sessionURL)) - .withRequestBody(WireMock.equalToJson(sessionObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(sessionResult) - .withStatus(201))); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(uploadURL)) - .withHeader("Digest", WireMock.containing("sha=31HjfCaaqU04+T5Te/biAgshQGw=")) - .withHeader("Content-Type", WireMock.containing(APPLICATION_OCTET_STREAM)) - .withHeader("Content-Range", WireMock.containing("bytes 0-4/5")) - .withRequestBody(WireMock.equalTo("aaaaa")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(responseBody500) - .withStatus(500))); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(listPartsURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(partsResult) - .withStatus(200))); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(commitURL)) - .withHeader("Content-Type", WireMock.equalTo(APPLICATION_JSON)) - .withRequestBody(WireMock.containing(commitObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(commitResult) - .withStatus(201))); - - BoxFolder folder = new BoxFolder(this.api, "12345"); - BoxFile.Info uploadedFile = folder.uploadLargeFile(stream, "testfile.txt", 5); - - assertEquals("1111111", uploadedFile.getID()); - assertEquals("testuser@box.com", uploadedFile.getModifiedBy().getLogin()); - assertEquals("Test User", uploadedFile.getOwnedBy().getName()); - assertEquals("folder", uploadedFile.getParent().getType()); - assertEquals("testfile.txt", uploadedFile.getName()); - } - - @Test - public void testRetryingChunkedUploadWith500Error() throws IOException, InterruptedException { - String javaVersion = System.getProperty("java.version"); - Assume.assumeFalse("Test is not run for JDK 7", javaVersion.contains("1.7")); - String responseBody500 = TestUtils.getFixture("BoxException/BoxResponseException500"); - final String preflightURL = "/2.0/files/content"; - final String sessionURL = "/2.0/files/upload_sessions"; - final String uploadURL = "/2.0/files/upload_sessions/D5E3F8ADA11A38F0A66AD0B64AACA658"; - final String listPartsURL = "/2.0/files/upload_sessions/D5E3F8ADA11A38F0A66AD0B64AACA658/parts"; - final String commitURL = "/2.0/files/upload_sessions/D5E3F8ADA11A38F0A66AD0B64AACA658/commit"; - - BoxFileTest.FakeStream stream = new BoxFileTest.FakeStream("aaaaa"); - - String sessionResult = TestUtils.getFixture("BoxFile/CreateUploadSession201", wireMockRule.httpsPort()); - String uploadResult = TestUtils.getFixture("BoxFile/UploadPartOne200"); - String wrongPartsResult = TestUtils.getFixture("BoxFile/ListUploadedParts200"); - String commitResult = TestUtils.getFixture("BoxFile/CommitUpload201"); - String canUploadResult = TestUtils.getFixture("BoxFile/CanUploadFile200"); - - JsonObject idObject = new JsonObject() - .add("id", "12345"); - - JsonObject preflightObject = new JsonObject() - .add("name", "testfile.txt") - .add("size", 5) - .add("parent", idObject); - - JsonObject sessionObject = new JsonObject() - .add("folder_id", "12345") - .add("file_size", 5) - .add("file_name", "testfile.txt"); - - JsonObject partOne = new JsonObject() - .add("part_id", "CFEB5BA9") - .add("offset", 0) - .add("size", 5); - - JsonArray parts = new JsonArray() - .add(partOne); - - JsonObject commitObject = new JsonObject() - .add("parts", parts); - - wireMockRule.stubFor(WireMock.options(WireMock.urlPathEqualTo(preflightURL)) - .withRequestBody(WireMock.equalToJson(preflightObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(200) - .withBody(canUploadResult))); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(sessionURL)) - .withRequestBody(WireMock.equalToJson(sessionObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(sessionResult) - .withStatus(201))); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(uploadURL)) - .withHeader("Digest", WireMock.containing("sha=31HjfCaaqU04+T5Te/biAgshQGw=")) - .withHeader("Content-Type", WireMock.containing(APPLICATION_OCTET_STREAM)) - .withHeader("Content-Range", WireMock.containing("bytes 0-4/5")) - .withRequestBody(WireMock.equalTo("aaaaa")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(responseBody500) - .withStatus(500))); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(listPartsURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(wrongPartsResult) - .withStatus(200))); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(uploadURL)) - .withHeader("Digest", WireMock.containing("sha=31HjfCaaqU04+T5Te/biAgshQGw=")) - .withHeader("Content-Type", WireMock.containing(APPLICATION_OCTET_STREAM)) - .withHeader("Content-Range", WireMock.containing("bytes 0-4/5")) - .withRequestBody(WireMock.equalTo("aaaaa")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(uploadResult) - .withStatus(200))); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(commitURL)) - .withHeader("Content-Type", WireMock.equalTo(APPLICATION_JSON)) - .withRequestBody(WireMock.containing(commitObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(commitResult) - .withStatus(201))); - - BoxFolder folder = new BoxFolder(this.api, "12345"); - BoxFile.Info uploadedFile = folder.uploadLargeFile(stream, "testfile.txt", 5); - - assertEquals("1111111", uploadedFile.getID()); - assertEquals("testuser@box.com", uploadedFile.getModifiedBy().getLogin()); - assertEquals("Test User", uploadedFile.getOwnedBy().getName()); - assertEquals("folder", uploadedFile.getParent().getType()); - assertEquals("testfile.txt", uploadedFile.getName()); - } - - @Test - public void testGetAllRootFolderItemsSucceeds() { - final String rootFolderItemsURL = "/2.0/folders/0/items/"; - final String folderURL = "/2.0/folders/0"; - final String ownedByUserLogin = "test@user.com"; - final String modifiedByLogin = "test@user.com"; - final String modifiedByName = "Test User"; - - String items = TestUtils.getFixture("BoxFolder/GetAllRootFolderItems200"); - String info = TestUtils.getFixture("BoxFolder/GetFolderInfo200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(rootFolderItemsURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(200).withBody(items))); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(folderURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(info) - .withStatus(200))); - - BoxFolder rootFolder = BoxFolder.getRootFolder(this.api); - BoxFolder.Info rootFolderInfo = rootFolder.getInfo(); - - assertEquals(ownedByUserLogin, rootFolderInfo.getOwnedBy().getLogin()); - assertEquals(modifiedByLogin, rootFolderInfo.getModifiedBy().getLogin()); - assertEquals(modifiedByName, rootFolderInfo.getModifiedBy().getName()); - assertEquals(rootFolderInfo.getPermissions(), EnumSet.allOf(BoxFolder.Permission.class)); - } - - @Test - public void testGetAllFolderItemsSucceeds() { - final String folderID = "12345"; - final String folderURL = "/2.0/folders/" + folderID + "/items/"; - final String firstFolderName = "Example.pdf"; - - String result = TestUtils.getFixture("BoxFolder/GetAllFolderItems200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(folderURL)) - .withQueryParam("limit", WireMock.containing("1000")) - .withQueryParam("usemarker", WireMock.containing("true")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - BoxItem.Info firstFolderInfo = folder.iterator().next(); - - assertEquals(folderID, firstFolderInfo.getID()); - assertEquals(firstFolderName, firstFolderInfo.getName()); - } - - @Test - public void testGetFolderInfoSucceeds() { - final String folderID = "12345"; - final String folderInfoURL = "/2.0/folders/" + folderID; - final String folderName = "Example Folder"; - final String pathCollectionItemName = "All Files"; - final String createdByLogin = "test@user.com"; - final String modifiedByName = "Test User"; - final String classificationColor = "#00FFFF"; - final String classificationDefinition = "Content that should not be shared outside the company."; - final String classificationName = "Top Secret"; - List roles = new ArrayList<>(); - roles.add("open"); - - String result = TestUtils.getFixture("BoxFolder/GetFolderInfo200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(folderInfoURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - BoxFolder.Info info = folder.getInfo(); - - assertEquals("folder", info.getType()); - assertEquals(folderID, info.getID()); - assertEquals(folderName, info.getName()); - assertEquals(pathCollectionItemName, info.getPathCollection().get(0).getName()); - assertEquals(createdByLogin, info.getCreatedBy().getLogin()); - assertEquals(modifiedByName, info.getModifiedBy().getName()); - assertEquals(roles, info.getAllowedInviteeRoles()); - assertEquals(roles, info.getAllowedSharedLinkAccessLevels()); - assertTrue(info.getIsExternallyOwned()); - assertEquals(classificationColor, info.getClassification().getColor()); - assertEquals(classificationDefinition, info.getClassification().getDefinition()); - assertEquals(classificationName, info.getClassification().getName()); - assertTrue(info.getIsAccessibleViaSharedLink()); - assertTrue(info.getCanNonOwnersViewCollaborators()); - } - - @Test - public void testGetRestrictedCollaborationFieldSucceeds() { - final String folderID = "12345"; - final String folderInfoURL = "/2.0/folders/" + folderID; - - String result = TestUtils.getFixture("BoxFolder/GetFolderInfoForCollaborationRestriction200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(folderInfoURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - BoxFolder.Info info = folder.getInfo(); - - assertTrue(info.getIsCollaborationRestrictedToEnterprise()); - } - - @Test - public void testSetRestrictedCollaborationFieldSucceeds() { - final String folderID = "12345"; - final String folderInfoURL = "/2.0/folders/" + folderID; - JsonObject jsonObject = new JsonObject() - .add("is_collaboration_restricted_to_enterprise", true); - - String result = TestUtils.getFixture("BoxFolder/GetFolderInfoForCollaborationRestriction200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(folderInfoURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(folderInfoURL)) - .withRequestBody(WireMock.equalToJson(jsonObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - BoxFolder.Info folderInfo = folder.getInfo(); - folderInfo.setIsCollaborationRestrictedToEnterprise(true); - folder.updateInfo(folderInfo); - - assertTrue(folder.getInfo().getIsCollaborationRestrictedToEnterprise()); - } - - @Test - public void testUpdateFolderInfoSucceedsAndSendsCorrectJson() { - final String folderID = "12345"; - final String folderURL = "/2.0/folders/" + folderID; - final String folderName = "New Folder Name"; - final String folderDescription = "Folder Description"; - - JsonObject updateFolderObject = new JsonObject() - .add("name", folderName) - .add("description", "Folder Description") - .add("is_password_enabled", true) - .add("can_download", false) - .add("can_preview", false); - - String result = TestUtils.getFixture("BoxFolder/UpdateFolderInfo200"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(folderURL)) - .withRequestBody(WireMock.equalToJson(updateFolderObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - BoxFolder.Info info = folder.new Info(); - info.setName(folderName); - info.setDescription(folderDescription); - info.addPendingChange("is_password_enabled", true); - info.addPendingChange("can_download", false); - info.addPendingChange("can_preview", false); - folder.updateInfo(info); - - assertEquals(folderID, info.getID()); - assertEquals(folderName, info.getName()); - assertEquals(folderDescription, info.getDescription()); - } - - @Test - public void testCreateNewFolderSucceedsAndSendsCorrectJson() { - final String folderID = "0"; - final String folderURL = "/2.0/folders"; - final String folderName = "Example Test Folder"; - final String parentFolderName = "All Files"; - final String ownedByUserName = "Test User"; - final String ownedByUserLogin = "test@user.com"; - - JsonObject parentObject = new JsonObject() - .add("id", "0"); - - JsonObject createFolderObject = new JsonObject() - .add("name", folderName) - .add("parent", parentObject); - - String result = TestUtils.getFixture("BoxFolder/CreateNewFolder201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(folderURL)) - .withRequestBody(WireMock.equalToJson(createFolderObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder parentFolder = new BoxFolder(this.api, folderID); - BoxFolder.Info childFolderInfo = parentFolder.createFolder(folderName); - - assertEquals(folderID, childFolderInfo.getID()); - assertEquals(folderName, childFolderInfo.getName()); - assertEquals(parentFolderName, childFolderInfo.getParent().getName()); - assertEquals(ownedByUserName, childFolderInfo.getOwnedBy().getName()); - assertEquals(ownedByUserLogin, childFolderInfo.getOwnedBy().getLogin()); - } - - @Test - public void testCopyFolderSucceedsAndSendsCorrectJson() { - final String folderID = "12345"; - final String folderURL = "/2.0/folders/" + folderID + "/copy"; - final String newParentID = "12345"; - - JsonObject parentObject = new JsonObject() - .add("id", newParentID); - - JsonObject copyObject = new JsonObject() - .add("parent", parentObject); - - String result = TestUtils.getFixture("BoxFolder/CopyFolder201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(folderURL)) - .withRequestBody(WireMock.equalToJson(copyObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - BoxFolder destination = new BoxFolder(this.api, newParentID); - BoxFolder.Info copiedFolderInfo = folder.copy(destination); - - assertEquals(folderID, copiedFolderInfo.getID()); - assertEquals(newParentID, copiedFolderInfo.getParent().getID()); - } - - @Test - public void testMoveFolderSucceedsAndSendsCorrectJson() { - final String folderID = "12345"; - final String moveFolderURL = "/2.0/folders/" + folderID; - final String parentID = "2222"; - - JsonObject innerObject = new JsonObject() - .add("id", parentID); - - JsonObject parentObject = new JsonObject() - .add("parent", innerObject); - - String result = TestUtils.getFixture("BoxFolder/MoveFolder200"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(moveFolderURL)) - .withRequestBody(WireMock.equalToJson(parentObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - BoxFolder destination = new BoxFolder(this.api, parentID); - BoxItem.Info folderInfo = folder.move(destination); - - assertEquals(parentID, folderInfo.getParent().getID()); - assertEquals(folderID, folderInfo.getID()); - } - - @Test - public void testDeleteFolderSendsCorrectJson() { - final String folderID = "12345"; - final String deleteFolderURL = "/2.0/folders/" + folderID; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(deleteFolderURL)) - .withQueryParam("recursive", WireMock.containing("true")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(204))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - folder.delete(true); - } - - @Test - public void testCreateSharedLinkForFolderSucceedsAndSendsCorrectJson() { - final String folderID = "12345"; - final String folderURL = "/2.0/folders/" + folderID; - - JsonObject accessObject = new JsonObject() - .add("access", "open"); - - JsonObject sharedLinkObject = new JsonObject() - .add("shared_link", accessObject); - - String result = TestUtils.getFixture("BoxFolder/CreateSharedLinkForFolder200"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(folderURL)) - .withRequestBody(WireMock.equalToJson(sharedLinkObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxSharedLink sharedLink = new BoxSharedLink(); - sharedLink.setAccess(OPEN); - - BoxFolder folder = new BoxFolder(this.api, folderID); - BoxFolder.Info info = folder.new Info(); - info.setSharedLink(sharedLink); - folder.updateInfo(info); - - assertEquals(OPEN, info.getSharedLink().getEffectiveAccess()); - assertFalse(info.getSharedLink().getIsPasswordEnabled()); - assertEquals(OPEN, info.getSharedLink().getAccess()); - } - - @Test - public void testGetAllFolderCollaborationsSucceeds() { - final String folderID = "3333"; - final String folderCollaborationURL = "/2.0/folders/" + folderID + "/collaborations"; - final String collaborationID = "12345"; - final String accessiblyByLogin = "Test User"; - final BoxCollaboration.Role collaborationRole = BoxCollaboration.Role.VIEWER; - - String result = TestUtils.getFixture("BoxFolder/GetAllFolderCollaborations200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(folderCollaborationURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - Collection collaborations = folder.getCollaborations(); - Iterator iterator = collaborations.iterator(); - BoxCollaboration.Info collaborationInfo = iterator.next(); - BoxCollaboration.Info collaborationInfo2 = iterator.next(); - - assertEquals(collaborationID, collaborationInfo.getID()); - assertEquals(folderID, collaborationInfo.getItem().getID()); - assertEquals(accessiblyByLogin, collaborationInfo.getAccessibleBy().getName()); - assertEquals(collaborationRole, collaborationInfo.getRole()); - assertEquals(BoxCollaborator.CollaboratorType.GROUP, collaborationInfo2.getAccessibleBy().getType()); - assertEquals(BoxCollaborator.GroupType.MANAGED_GROUP, - collaborationInfo2.getAccessibleBy().getGroupType()); - } - - @Test - public void testGetAllFolderCollaborationsWithFieldsSucceeds() { - final String folderID = "3333"; - final String folderCollaborationURL = "/2.0/folders/" + folderID - + "/collaborations?fields=id%2Ctype%2Ccan_view_path"; - - String result = TestUtils.getFixture("BoxFolder/GetAllFolderCollaborations200WithFields"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlEqualTo(folderCollaborationURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - Collection collaborations = folder.getCollaborations("id", "type", "can_view_path"); - - Iterator iterator = collaborations.iterator(); - - BoxCollaboration.Info collaborationInfo = iterator.next(); - assertEquals("12345", collaborationInfo.getID()); - assertFalse(collaborationInfo.getCanViewPath()); - - BoxCollaboration.Info collaborationInfo2 = iterator.next(); - assertEquals("124783", collaborationInfo2.getID()); - assertTrue(collaborationInfo2.getCanViewPath()); - } - - @Test - public void testCreateMetadataOnFolderSucceedsAndSendsCorrectJson() { - final String folderID = "12345"; - final String metadataURL = "/2.0/folders/" + folderID + "/metadata/global/properties"; - final String metadataID = "12345"; - final String parentID = "folder_12345"; - - JsonObject metadataObject = new JsonObject() - .add("foo", "bar"); - - String result = TestUtils.getFixture("BoxFolder/CreateMetadataOnFolder201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(metadataURL)) - .withRequestBody(WireMock.equalToJson(metadataObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - Metadata metadataInfo = folder.createMetadata(new Metadata().add("/foo", "bar")); - assertEquals(metadataID, metadataInfo.getID()); - assertEquals(parentID, metadataInfo.getParentID()); - } - - @Test - public void testGetMetadataOnFolderSucceds() { - final String folderID = "12345"; - final String metadataURL = "/2.0/folders/" + folderID + "/metadata/global/properties"; - final String metadataID = "12345"; - final String parentID = "folder_12345"; - - String result = TestUtils.getFixture("BoxFolder/CreateMetadataOnFolder201"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(metadataURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - Metadata metadata = folder.getMetadata(); - - assertEquals(metadataID, metadata.getID()); - assertEquals(parentID, metadata.getParentID()); - } - - @Test - public void testGetAllMetadataSucceeds() { - final String folderID = "12345"; - final String metadataURL = "/2.0/folders/" + folderID + "/metadata"; - final String metadataID = "12345"; - final String parentID = "folder_12345"; - final String template = "properties"; - final String scope = "global"; - - String result = TestUtils.getFixture("BoxFolder/GetAllMetadataOnFolder200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(metadataURL)) - .withQueryParam("limit", WireMock.containing("100")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - Iterator metadataList = folder.getAllMetadata().iterator(); - Metadata metadata = metadataList.next(); - - assertEquals(metadataID, metadata.getID()); - assertEquals(parentID, metadata.getParentID()); - assertEquals(template, metadata.getTemplateName()); - assertEquals(scope, metadata.getScope()); - } - - @Test - public void testAddMetadataCascadePolicySucceedsSendsCorrectJson() { - final String cascadePolicyURL = "/2.0/metadata_cascade_policies"; - final String folderID = "22222"; - final String scope = "enterprise_11111"; - final String templateKey = "testTemplate"; - JsonObject cascadeObject = new JsonObject() - .add("folder_id", folderID) - .add("scope", scope) - .add("templateKey", templateKey); - - String result = TestUtils.getFixture("BoxMetadataCascadePolicy/CreateMetadataCascadePolicies201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(cascadePolicyURL)) - .withRequestBody(WireMock.equalToJson(cascadeObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - BoxMetadataCascadePolicy.Info metadataCascadePolicyInfo = folder.addMetadataCascadePolicy(scope, templateKey); - - assertEquals(folderID, metadataCascadePolicyInfo.getParent().getID()); - assertEquals(scope, metadataCascadePolicyInfo.getScope()); - assertEquals(templateKey, metadataCascadePolicyInfo.getTemplateKey()); - } - - @Test - public void testGetAllMetadataCascadePoliciesOnFolderSucceeds() { - final String folderID = "22222"; - final String cascadePolicyID = "84113349-794d-445c-b93c-d8481b223434"; - final String enterpriseID = "11111"; - final String scope = "enterprise_11111"; - final String templateKey = "testTemplate"; - final String cascadePoliciesURL = "/2.0/metadata_cascade_policies"; - - String result = TestUtils.getFixture("BoxMetadataCascadePolicy/GetAllMetadataCascadePolicies200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(cascadePoliciesURL)) - .withQueryParam("folder_id", WireMock.equalTo(folderID)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - Iterator metadataCascadePolicies = folder - .getMetadataCascadePolicies().iterator(); - - BoxMetadataCascadePolicy.Info firstCascadePolicy = metadataCascadePolicies.next(); - - assertEquals(folderID, firstCascadePolicy.getParent().getID()); - assertEquals(cascadePolicyID, firstCascadePolicy.getID()); - assertEquals(enterpriseID, firstCascadePolicy.getOwnerEnterprise().getID()); - assertEquals(scope, firstCascadePolicy.getScope()); - assertEquals(templateKey, firstCascadePolicy.getTemplateKey()); - } - - @Test - public void testGetAllMetadataCascadePoliciesOnFolderWithFieldsSucceeds() { - final String folderID = "22222"; - final String cascadePolicyID = "84113349-794d-445c-b93c-d8481b223434"; - final String enterpriseID = "11111"; - final String scope = "enterprise_11111"; - final String templateKey = "testTemplate"; - final String cascadePoliciesURL = "/2.0/metadata_cascade_policies"; - - String result = TestUtils.getFixture("BoxMetadataCascadePolicy/GetAllMetadataCascadePolicies200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(cascadePoliciesURL)) - .withQueryParam("folder_id", WireMock.equalTo(folderID)) - .withQueryParam("fields", WireMock.equalTo("owner_enterprise")) - .withQueryParam("limit", WireMock.equalTo("100")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - Iterator metadataCascadePolicies = folder - .getMetadataCascadePolicies("owner_enterprise").iterator(); - - BoxMetadataCascadePolicy.Info firstCascadePolicy = metadataCascadePolicies.next(); - - assertEquals(folderID, firstCascadePolicy.getParent().getID()); - assertEquals(cascadePolicyID, firstCascadePolicy.getID()); - assertEquals(enterpriseID, firstCascadePolicy.getOwnerEnterprise().getID()); - assertEquals(scope, firstCascadePolicy.getScope()); - assertEquals(templateKey, firstCascadePolicy.getTemplateKey()); - } - - @Test - public void testGetAllMetadataCascadePoliciesWithEnterpriseIDSucceeds() { - final String folderID = "22222"; - final String cascadePolicyID = "84113349-794d-445c-b93c-d8481b223434"; - final String enterpriseID = "11111"; - final String scope = "enterprise_11111"; - final String templateKey = "testTemplate"; - final int limit = 100; - final String cascadePoliciesURL = "/2.0/metadata_cascade_policies"; - - String result = TestUtils.getFixture("BoxMetadataCascadePolicy/GetAllMetadataCascadePolicies200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(cascadePoliciesURL)) - .withQueryParam("folder_id", WireMock.equalTo(folderID)) - .withQueryParam("owner_enterprise_id", WireMock.equalTo(enterpriseID)) - .withQueryParam("fields", WireMock.equalTo("owner_enterprise")) - .withQueryParam("limit", WireMock.equalTo("100")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - Iterator metadataCascadePolicies = folder - .getMetadataCascadePolicies(enterpriseID, limit, "owner_enterprise").iterator(); - - BoxMetadataCascadePolicy.Info firstCascadePolicy = metadataCascadePolicies.next(); - - assertEquals(folderID, firstCascadePolicy.getParent().getID()); - assertEquals(cascadePolicyID, firstCascadePolicy.getID()); - assertEquals(enterpriseID, firstCascadePolicy.getOwnerEnterprise().getID()); - assertEquals(scope, firstCascadePolicy.getScope()); - assertEquals(templateKey, firstCascadePolicy.getTemplateKey()); - } - - @Test - public void createSharedLinkSucceeds() { - final String folderID = "1111"; - final String password = "test1"; - - JsonObject permissionsObject = new JsonObject() - .add("can_download", true) - .add("can_preview", true) - .add("can_edit", false); - - JsonObject innerObject = new JsonObject() - .add("password", password) - .add("access", "open") - .add("permissions", permissionsObject); - - JsonObject sharedLinkObject = new JsonObject() - .add("shared_link", innerObject); - - String result = TestUtils.getFixture("BoxSharedLink/CreateSharedLink201"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo("/2.0/folders/" + folderID)) - .withRequestBody(WireMock.equalToJson(sharedLinkObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - - BoxSharedLink sharedLink = folder.createSharedLink( - new BoxSharedLinkRequest() - .access(OPEN) - .permissions(true, true) - .password(password) - ); - - assertTrue(sharedLink.getIsPasswordEnabled()); - } - - @Test - public void createSharedLinkChangesCanEditPermissionToFalse() { - final String folderID = "1111"; - final String password = "test1"; - - JsonObject permissionsObject = new JsonObject() - .add("can_download", true) - .add("can_preview", true) - .add("can_edit", false); - - JsonObject sharedLinkJson = new JsonObject() - .add("password", password) - .add("access", "open") - .add("permissions", permissionsObject); - - JsonObject sharedLinkObject = new JsonObject() - .add("shared_link", sharedLinkJson); - - String result = TestUtils.getFixture("BoxSharedLink/CreateSharedLink201"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo("/2.0/folders/" + folderID)) - .withRequestBody(WireMock.equalToJson(sharedLinkObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - folder.createSharedLink( - new BoxSharedLinkRequest() - .access(OPEN) - .permissions(true, true, true) - .password(password) - ); - } - - @Test - public void testAddClassification() { - final String folderID = "12345"; - final String classificationType = "Public"; - final String metadataURL = "/2.0/folders/" + folderID - + "/metadata/enterprise/securityClassification-6VMVochwUWo"; - JsonObject metadataObject = new JsonObject() - .add("Box__Security__Classification__Key", classificationType); - - String result = TestUtils.getFixture("BoxFolder/CreateClassificationOnFolder201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(metadataURL)) - .withRequestBody(WireMock.equalToJson(metadataObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - String classification = folder.addClassification(classificationType); - - assertEquals(classificationType, classification); - } - - @Test - public void testUpdateClassification() { - final String folderID = "12345"; - final String classificationType = "Internal"; - final String metadataURL = "/2.0/folders/" + folderID - + "/metadata/enterprise/securityClassification-6VMVochwUWo"; - JsonObject metadataObject = new JsonObject() - .add("op", "replace") - .add("path", "/Box__Security__Classification__Key") - .add("value", "Internal"); - - JsonArray metadataArray = new JsonArray() - .add(metadataObject); - - String result = TestUtils.getFixture("BoxFolder/UpdateClassificationOnFolder200"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(metadataURL)) - .withRequestBody(WireMock.equalToJson(metadataArray.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON_PATCH) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - String classification = folder.updateClassification(classificationType); - - assertEquals(classificationType, classification); - } - - @Test - public void testSetClassification() { - final String folderID = "12345"; - final String classificationType = "Internal"; - final String metadataURL = "/2.0/folders/" + folderID - + "/metadata/enterprise/securityClassification-6VMVochwUWo"; - JsonObject metadataObject = new JsonObject() - .add("op", "replace") - .add("path", "/Box__Security__Classification__Key") - .add("value", "Internal"); - - JsonArray metadataArray = new JsonArray() - .add(metadataObject); - - String result = TestUtils.getFixture("BoxFolder/UpdateClassificationOnFolder200"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(metadataURL)) - .willReturn(WireMock.aResponse() - .withBody("{}") - .withStatus(409))); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(metadataURL)) - .withRequestBody(WireMock.equalToJson(metadataArray.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON_PATCH) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - String classification = folder.setClassification(classificationType); - - assertEquals(classificationType, classification); - } - - @Test(expected = BoxAPIResponseException.class) - public void testSetClassificationThrowsException() { - final String folderID = "12345"; - final String classificationType = "Internal"; - final String metadataURL = "/2.0/folders/" + folderID - + "/metadata/enterprise/securityClassification-6VMVochwUWo"; - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(metadataURL)) - .willReturn(WireMock.aResponse() - .withBody("{}") - .withStatus(403))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - folder.setClassification(classificationType); - - WireMock.verify(1, WireMock.postRequestedFor(WireMock.urlPathEqualTo(metadataURL))); - } - - @Test - public void testGetClassification() { - final String folderID = "12345"; - final String metadataURL = "/2.0/folders/" + folderID - + "/metadata/enterprise/securityClassification-6VMVochwUWo"; - - String result = TestUtils.getFixture("BoxFolder/CreateClassificationOnFolder201"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(metadataURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - String classification = folder.getClassification(); - - assertEquals("Public", classification); - } - - @Test - public void testDeleteClassification() { - final String folderID = "12345"; - final String metadataURL = "/2.0/folders/" + folderID - + "/metadata/enterprise/securityClassification-6VMVochwUWo"; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(metadataURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON_PATCH) - .withStatus(204))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - folder.deleteClassification(); - - WireMock.verify(1, WireMock.deleteRequestedFor(WireMock.urlPathEqualTo(metadataURL))); - } - - @Test - public void testUploadFileWithCorrectMultipartOrder() { - final String folderID = "0"; - final String fileURL = "/2.0/files/content"; - final String fileContent = "Test file"; - final String fileName = "Test File.txt"; - final String fileDescription = "Test Description"; - InputStream stream = new ByteArrayInputStream(fileContent.getBytes(StandardCharsets.UTF_8)); - final String expectedAttributesJson = - "{\"name\":\"Test File.txt\",\"parent\":{\"id\": \"0\"},\"description\":\"Test Description\"}"; - - String result = TestUtils.getFixture("BoxFile/CreateFileWithDescription201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(fileURL)) - .withRequestBody(WireMock.matching(".*attributes.*file.*")) // Check that attributes comes before file - .withMultipartRequestBody( - new MultipartValuePatternBuilder() - .withName("attributes") - .withBody(new EqualToJsonPattern(expectedAttributesJson, false, false)) - ).withMultipartRequestBody( - new MultipartValuePatternBuilder() - .withName("file") - .withBody(new EqualToPattern(fileContent)) - ) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON_PATCH) - .withBody(result) - .withStatus(201))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - BoxFile.Info file = folder.uploadFile(stream, fileName, fileDescription); - - assertEquals(fileDescription, file.getDescription()); - assertEquals(folderID, file.getParent().getID()); - assertEquals(fileName, file.getName()); - } - - @Test - public void testUploadFileWithDescriptionSucceeds() { - final String folderID = "12345"; - final String fileURL = "/2.0/files/content"; - final String fileContent = "Test file"; - final String fileName = "Test File.txt"; - final String fileDescription = "Test Description"; - InputStream stream = new ByteArrayInputStream(fileContent.getBytes(StandardCharsets.UTF_8)); - - String result = TestUtils.getFixture("BoxFile/CreateFileWithDescription201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(fileURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON_PATCH) - .withBody(result) - .withStatus(201))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - BoxFile.Info file = folder.uploadFile(stream, fileName, fileDescription); - - assertEquals(fileDescription, file.getDescription()); - } - - @Test - public void testUploadFileSucceedsAfter500InTheFirstAttempt() throws IOException { - final String folderID = "12345"; - final String fileURL = "/2.0/files/content"; - final String fileContent = "Test file"; - final String fileName = "Test File.txt"; - InputStream stream = new ByteArrayInputStream(fileContent.getBytes(StandardCharsets.UTF_8)); - - String result = TestUtils.getFixture("BoxFile/CreateFileWithDescription201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(fileURL)) - .inScenario("Retry Scenario") - .whenScenarioStateIs(STARTED) - .willReturn(WireMock.aResponse() - .withStatus(500)) - .willSetStateTo("Retry")); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(fileURL)) - .inScenario("Retry Scenario") - .whenScenarioStateIs("Retry") - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON_PATCH) - .withBody(result) - .withStatus(201)) - .willSetStateTo("Success")); - - BoxFolder folder = new BoxFolder(this.api, folderID); - BoxFile.Info file = folder.uploadFile(stream, fileName); - - WireMock.verify(2, WireMock.postRequestedFor(WireMock.urlEqualTo("/2.0/files/content"))); - - assertEquals(fileName, file.getName()); - } - - @Test - public void testGetFolderItemsWithSortAndOffset() { - final String folderID = "12345"; - final String folderItemsURL = "/2.0/folders/" + folderID + "/items/"; - - String result = TestUtils.getFixture("BoxFolder/GetFolderItemsWithSort200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(folderItemsURL)) - .withQueryParam("sort", WireMock.equalTo("name")) - .withQueryParam("direction", WireMock.equalTo("ASC")) - .withQueryParam("fields", WireMock.equalTo("name")) - .withQueryParam("limit", WireMock.equalTo("1000")) - .withQueryParam("offset", WireMock.equalTo("0")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result) - .withStatus(200))); - - BoxFolder folder = new BoxFolder(this.api, "12345"); - Iterator itemIterator = folder.getChildren("name", - BoxFolder.SortDirection.ASC, "name").iterator(); - BoxItem.Info boxItem1 = itemIterator.next(); - assertEquals("Test", boxItem1.getName()); - BoxItem.Info boxItem2 = itemIterator.next(); - assertEquals("Test 2", boxItem2.getName()); - } - - @Test - public void testGetFolderItemsWithOffsetAndLimit() { - final String folderID = "12345"; - final String folderItemsURL = "/2.0/folders/" + folderID + "/items/"; - - String result = TestUtils.getFixture("BoxFolder/GetFolderItemsWithSort200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(folderItemsURL)) - .withQueryParam("sort", WireMock.equalTo("name")) - .withQueryParam("direction", WireMock.equalTo("ASC")) - .withQueryParam("fields", WireMock.equalTo("name")) - .withQueryParam("limit", WireMock.equalTo("500")) - .withQueryParam("offset", WireMock.equalTo("10")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result) - .withStatus(200))); - - BoxFolder folder = new BoxFolder(this.api, "12345"); - Iterator itemIterator = folder.getChildren("name", - BoxFolder.SortDirection.ASC, 10, 500, "name").iterator(); - BoxItem.Info boxItem1 = itemIterator.next(); - assertEquals("Test", boxItem1.getName()); - BoxItem.Info boxItem2 = itemIterator.next(); - assertEquals("Test 2", boxItem2.getName()); - } - - @Test - public void testGetFolderItemsWithSortAndMarkerBasedPagingFails() { - BoxFolder folder = new BoxFolder(this.api, "12345"); - assertThrows( - "Sorting is not supported when using marker based pagination.", - IllegalArgumentException.class, - () -> folder.getChildren(ascending("name"), marker(100)) - ); - } - - @Test - public void testSetMetadataReturnsCorrectly() { - final String folderID = "12345"; - final String metadataURL = "/2.0/folders/" + folderID + "/metadata/enterprise/testtemplate"; - ArrayList secondValueArray = new ArrayList<>(); - secondValueArray.add("first"); - secondValueArray.add("second"); - secondValueArray.add("third"); - - String postResult = TestUtils.getFixture("/BoxException/BoxResponseException409"); - String putResult = TestUtils.getFixture("/BoxFolder/UpdateMetadataOnFolder200"); - - final String firstValue = "text"; - JsonArray secondValueJson = new JsonArray() - .add("first") - .add("second") - .add("third"); - final int thirdValue = 2; - final double fourthValue = 233333333333333340.0; - - JsonObject firstAttribute = new JsonObject() - .add("op", "add") - .add("path", "/test1") - .add("value", "text"); - - JsonObject secondAttribute = new JsonObject() - .add("op", "add") - .add("path", "/test2") - .add("value", secondValueJson); - - JsonObject thirdAttribute = new JsonObject() - .add("op", "add") - .add("path", "/test3") - .add("value", thirdValue); - - JsonObject fourthAttribute = new JsonObject() - .add("op", "add") - .add("path", "/test4") - .add("value", fourthValue); - - JsonArray jsonArray = new JsonArray() - .add(firstAttribute) - .add(secondAttribute) - .add(thirdAttribute) - .add(fourthAttribute); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(metadataURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(postResult) - .withStatus(409))); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(metadataURL)) - .withRequestBody(WireMock.equalToJson(jsonArray.toString())) - .withHeader("Content-Type", WireMock.equalTo(APPLICATION_JSON_PATCH)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(putResult) - .withStatus(200))); - - BoxFolder folder = new BoxFolder(this.api, "12345"); - - Metadata metadata = new Metadata() - .add("/test1", firstValue) - .add("/test2", secondValueArray) - .add("/test3", thirdValue) - .add("/test4", fourthValue); - - Metadata metadataValues = folder.setMetadata("testtemplate", "enterprise", metadata); - - assertEquals("folder_12345", metadataValues.getParentID()); - assertEquals("testtemplate", metadataValues.getTemplateName()); - assertEquals("enterprise_11111", metadataValues.getScope()); - assertEquals(firstValue, metadataValues.getString("/test1")); - assertEquals(secondValueJson, metadataValues.getValue("/test2")); - assertEquals(thirdValue, metadataValues.getDouble("/test3"), 0); - assertEquals(fourthValue, metadataValues.getDouble("/test4"), 4); - } - - @Test(expected = BoxDeserializationException.class) - public void testDeserializationException() { - final String folderID = "12345"; - final String foldersURL = "/2.0/folders/" + folderID; - - String result = TestUtils.getFixture("BoxFolder/GetFolderInfoCausesDeserializationException"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(foldersURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder.Info folderInfo = new BoxFolder(this.api, folderID).getInfo(); - assertEquals("12345", folderInfo.getID()); - } - - @Test - public void createFolderLockSucceeds() { - final String folderID = "12345678"; - final String folderLockURL = "/2.0/folder_locks"; - - JsonObject folderObject = new JsonObject(); - folderObject.add("type", "folder"); - folderObject.add("id", folderID); - - JsonObject lockedOperations = new JsonObject(); - lockedOperations.add("move", true); - lockedOperations.add("delete", true); - - JsonObject body = new JsonObject(); - body.add("folder", folderObject); - body.add("locked_operations", lockedOperations); - - String result = TestUtils.getFixture("BoxFolder/CreateFolderLock200"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(folderLockURL)) - .withRequestBody(WireMock.equalToJson(body.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - BoxFolderLock.Info folderLock = folder.lock(); - - assertEquals("12345678", folderLock.getID()); - assertEquals("11446498", folderLock.getCreatedBy().getID()); - assertEquals("Contracts", folderLock.getFolder().getName()); - } - - @Test - public void getFolderLocks() { - final String folderID = "12345"; - final String folderLocksURL = "/2.0/folder_locks"; - - String result = TestUtils.getFixture("BoxFolder/GetFolderLocks200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(folderLocksURL)) - .withQueryParam("folder_id", WireMock.equalTo(folderID)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result) - .withStatus(200))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - Iterator lockIterator = folder.getLocks().iterator(); - BoxFolderLock.Info lock = lockIterator.next(); - - assertEquals("12345678", lock.getID()); - assertEquals("Contracts", lock.getFolder().getName()); - assertEquals("freeze", lock.getLockType()); - assertTrue(lock.getLockedOperations().get("move")); - } - - @Test - public void deleteFolderLockSucceeds() { - final String folderLockID = "12345678"; - final String deleteFolderLockURL = "/2.0/folder_locks/" + folderLockID; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(deleteFolderLockURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(204))); - - BoxFolderLock folderLock = new BoxFolderLock(this.api, folderLockID); - folderLock.delete(); - } - - @Test - public void setsVanityUrlOnASharedLink() { - //given - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor( - request -> { - //then - JsonObject responseJson = Json.parse(request.bodyToString()).asObject(); - JsonObject sharedLinkJson = responseJson.get("shared_link").asObject(); - assertThat(sharedLinkJson.get("vanity_name").asString(), is("myCustomName")); - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{}"; - } - }; - } - ); - BoxSharedLinkRequest request = new BoxSharedLinkRequest() - .vanityName("myCustomName"); - - //when - BoxFolder folder = new BoxFolder(api, "12345"); - folder.createSharedLink(request); - } - - @Test - public void iterateWithOffset() { - this.api.setRequestInterceptor(request -> { - String query = request.getUrl().getQuery(); - assertThat(query, is("sort=name&direction=DESC&limit=2&offset=3")); - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"entries\": [], \"total_count\": 0}"; - } - }; - }); - BoxFolder folder = new BoxFolder(this.api, "123456"); - assertFalse(folder.getChildren("name", DESC, 3, 2).iterator().hasNext()); - } - - @Test - public void startIteratingWithMarker() { - this.api.setRequestInterceptor(request -> { - String query = request.getUrl().getQuery(); - assertThat(query, CoreMatchers.is("limit=2&usemarker=true")); - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"entries\": [], \"next_marker\": \"\"}"; - } - }; - }); - BoxFolder folder = new BoxFolder(this.api, "123456"); - assertFalse(folder.getChildren( - SortParameters.none(), marker(2)).iterator().hasNext() - ); - } - - @Test - public void setMetadataWorksWhenNoChangesSubmittedAndConflictOccured() { - // given - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - BoxFolder folder = new BoxFolder(api, "someFolder"); - final AtomicInteger postCounter = new AtomicInteger(0); - final AtomicInteger getCounter = new AtomicInteger(0); - api.setRequestInterceptor( - request -> { - if (request.getMethod().equals("POST")) { - postCounter.incrementAndGet(); - throw new BoxAPIException("Conflict", 409, "{}"); - } - if (request.getMethod().equals("GET")) { - getCounter.incrementAndGet(); - } - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{}"; - } - }; - } - ); - - // when - folder.setMetadata("template1", "enterprise-1", new Metadata()); - - // then - assertThat(postCounter.get(), is(1)); - assertThat(getCounter.get(), is(1)); - } - - @Test - public void renameFolder() { - final String folderId = "12345"; - final String metadataURL = "/2.0/folders/" + folderId; - String result = TestUtils.getFixture("BoxFolder/GetFolderInfo200"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(metadataURL)) - .withRequestBody(new EqualToJsonPattern("{\"name\": \"New Name\"}", false, false)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result) - .withStatus(200))); - - new BoxFolder(this.api, folderId).rename("New Name"); - } - - @Test - public void collaborateWithOptionalParamsSendsCorrectRequest() { - - final String folderId = "983745"; - final String collaboratorLogin = "boxer@example.com"; - final BoxCollaboration.Role collaboratorRole = BoxCollaboration.Role.VIEWER; - - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(new JSONRequestInterceptor() { - @Override - public BoxJSONResponse onJSONRequest(BoxJSONRequest request, JsonObject body) { - assertEquals( - "https://api.box.com/2.0/collaborations?notify=true", - request.getUrl().toString()); - assertEquals("POST", request.getMethod()); - - assertEquals(folderId, body.get("item").asObject().get("id").asString()); - assertEquals("folder", body.get("item").asObject().get("type").asString()); - assertEquals(collaboratorLogin, body.get("accessible_by").asObject().get("login").asString()); - assertEquals("user", body.get("accessible_by").asObject().get("type").asString()); - assertEquals(collaboratorRole.toJSONString(), body.get("role").asString()); - assertEquals("2020-04-07T19:51:30Z", body.get("expires_at").asString()); - assertTrue(body.get("is_access_only").asBoolean()); - - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"type\":\"collaboration\",\"id\":\"98763245\"}"; - } - }; - } - }); - - BoxFolder folder = new BoxFolder(api, folderId); - Date expiresAt = new Date(1586289090000L); - folder.collaborate(collaboratorLogin, collaboratorRole, true, true, expiresAt, true); - } -} diff --git a/src/test/java/com/box/sdk/BoxGroupMembershipTest.java b/src/test/java/com/box/sdk/BoxGroupMembershipTest.java deleted file mode 100644 index b2d13bb00..000000000 --- a/src/test/java/com/box/sdk/BoxGroupMembershipTest.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.box.sdk; - -import static org.junit.Assert.assertEquals; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import java.text.ParseException; -import java.util.Date; -import org.junit.Test; - -/** - * {@link BoxGroupMembership} related unittests. - */ -public class BoxGroupMembershipTest { - - /** - * Unit test for {@link BoxGroupMembership#updateInfo(BoxGroupMembership.Info)}. - */ - @Test - public void testUpdateInfoSendsCorrectJson() { - final BoxGroupMembership.GroupRole groupRole = BoxGroupMembership.GroupRole.ADMIN; - - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(new JSONRequestInterceptor() { - @Override - protected BoxAPIResponse onJSONRequest(BoxJSONRequest request, JsonObject json) { - assertEquals("https://api.box.com/2.0/group_memberships/0", request.getUrl().toString()); - assertEquals(groupRole.toJSONString(), json.get("role").asString()); - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{}"; - } - }; - } - }); - - BoxGroupMembership membership = new BoxGroupMembership(api, "0"); - BoxGroupMembership.Info info = membership.new Info(); - info.setGroupRole(groupRole); - membership.updateInfo(info); - } - - /** - * Unit test for {@link BoxGroupMembership#updateInfo(BoxGroupMembership.Info)}. - */ - @Test - public void testUpdateInfoParseAllFieldsCorrectly() throws ParseException { - final String id = "1560354"; - final String userID = "13130406"; - final String userName = "Alison Wonderland"; - final String userLogin = "alice@gmail.com"; - final String groupID = "119720"; - final String groupName = "family"; - final BoxGroupMembership.GroupRole groupRole = BoxGroupMembership.GroupRole.ADMIN; - final Date createdAt = BoxDateFormat.parse("2013-05-16T15:27:57-07:00"); - final Date modifiedAt = BoxDateFormat.parse("2013-05-16T15:27:57-07:00"); - - final JsonObject fakeJSONResponse = Json.parse("{\n" - + " \"type\": \"group_membership\",\n" - + " \"id\": \"1560354\",\n" - + " \"user\": {\n" - + " \"type\": \"user\",\n" - + " \"id\": \"13130406\",\n" - + " \"name\": \"Alison Wonderland\",\n" - + " \"login\": \"alice@gmail.com\"\n" - + " },\n" - + " \"group\": {\n" - + " \"type\": \"group\",\n" - + " \"id\": \"119720\",\n" - + " \"name\": \"family\"\n" - + " },\n" - + " \"role\": \"admin\",\n" - + " \"created_at\": \"2013-05-16T15:27:57-07:00\",\n" - + " \"modified_at\": \"2013-05-16T15:27:57-07:00\"\n" - + "}").asObject(); - - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(JSONRequestInterceptor.respondWith(fakeJSONResponse)); - BoxGroupMembership membership = new BoxGroupMembership(api, id); - BoxGroupMembership.Info info = membership.new Info(); - info.setGroupRole(BoxGroupMembership.GroupRole.ADMIN); - membership.updateInfo(info); - assertEquals(id, info.getID()); - assertEquals(userID, info.getUser().getID()); - assertEquals(userName, info.getUser().getName()); - assertEquals(userLogin, info.getUser().getLogin()); - assertEquals(groupID, info.getGroup().getID()); - assertEquals(groupName, info.getGroup().getName()); - assertEquals(groupRole, info.getGroupRole()); - assertEquals(createdAt, info.getCreatedAt()); - assertEquals(modifiedAt, info.getModifiedAt()); - } -} diff --git a/src/test/java/com/box/sdk/BoxGroupTest.java b/src/test/java/com/box/sdk/BoxGroupTest.java deleted file mode 100644 index 89fa60728..000000000 --- a/src/test/java/com/box/sdk/BoxGroupTest.java +++ /dev/null @@ -1,386 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.junit.Assert.assertEquals; - -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.util.Collection; -import java.util.Iterator; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -/** - * {@link BoxGroup} related unit tests. - */ -public class BoxGroupTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void testGetAllGroupsByNameSucceeds() { - final String getGroupsByNameURL = "/2.0/groups"; - final String groupsID = "12345"; - final String groupsName = "[getCollaborationsSucceedsAndHandlesResponseCorrectly] Test Group"; - - String result = TestUtils.getFixture("BoxGroup/GetGroupsByName200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(getGroupsByNameURL)) - .withQueryParam("filter_term", WireMock.containing("Test")) - .withQueryParam("limit", WireMock.containing("1000")) - .withQueryParam("offset", WireMock.containing("0")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - Iterator iterator = BoxGroup.getAllGroupsByName(this.api, "Test").iterator(); - BoxGroup.Info firstGroupInfo = iterator.next(); - - assertEquals(groupsName, firstGroupInfo.getName()); - assertEquals(groupsID, firstGroupInfo.getID()); - } - - @Test - public void testGetAllGroupsByNameWithFieldsOptionSucceeds() { - final String getGroupsByNameURL = "/2.0/groups"; - final String groupsID = "12345"; - final String groupsDescription = "This is Test Group"; - - String result = TestUtils.getFixture("BoxGroup/GetGroupsByNameWithFieldsOption200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(getGroupsByNameURL)) - .withQueryParam("filter_term", WireMock.containing("Test")) - .withQueryParam("fields", WireMock.containing("description")) - .withQueryParam("limit", WireMock.containing("1000")) - .withQueryParam("offset", WireMock.containing("0")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - Iterator iterator = BoxGroup.getAllGroupsByName(this.api, "Test", "description").iterator(); - BoxGroup.Info firstGroupInfo = iterator.next(); - - assertEquals(groupsID, firstGroupInfo.getID()); - assertEquals(groupsDescription, firstGroupInfo.getDescription()); - Assert.assertNull(firstGroupInfo.getName()); - } - - @Test - public void testGetMembershipForAUserSucceeds() { - final String userID = "1111"; - final String getMembershipForUserURL = "/2.0/users/" + userID + "/memberships"; - final String firstGroupMembershipID = "12345"; - final String firstGroupMembershipUserName = "Example User"; - final String firstGroupMembershipGroupName = "Test Group 1"; - final String secondGroupMembershipID = "32423"; - final String secondGroupMembershipUserName = "Example User"; - final String secondGroupMembershipGroupName = "Test Group 2"; - - String result = TestUtils.getFixture("BoxGroup/GetGroupMembershipForAUser200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(getMembershipForUserURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxUser user = new BoxUser(this.api, userID); - Iterator memberships = user.getAllMemberships().iterator(); - - BoxGroupMembership.Info firstMembershipInfo = memberships.next(); - - assertEquals(firstGroupMembershipID, firstMembershipInfo.getID()); - assertEquals(firstGroupMembershipUserName, firstMembershipInfo.getUser().getName()); - assertEquals(firstGroupMembershipGroupName, firstMembershipInfo.getGroup().getName()); - - BoxGroupMembership.Info secondMembershipInfo = memberships.next(); - - assertEquals(secondGroupMembershipID, secondMembershipInfo.getID()); - assertEquals(secondGroupMembershipUserName, secondMembershipInfo.getUser().getName()); - assertEquals(secondGroupMembershipGroupName, secondMembershipInfo.getGroup().getName()); - } - - @Test - public void testGetMembershipForAGroupSucceeds() { - final String groupMembershipID = "12345"; - final String groupID = "1111"; - final String getGroupMembershipURL = "/2.0/groups/" + groupID + "/memberships"; - final String userID = "2222"; - - String result = TestUtils.getFixture("BoxGroup/GetMembershipForAGroup200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(getGroupMembershipURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxGroup group = new BoxGroup(this.api, groupID); - Iterable memberships = group.getAllMemberships(); - BoxGroupMembership.Info membership = memberships.iterator().next(); - - assertEquals(groupMembershipID, membership.getID()); - assertEquals(groupID, membership.getGroup().getID()); - assertEquals(userID, membership.getUser().getID()); - } - - @Test - public void testDeleteGroupMembershipSucceeds() { - final String groupMembershipID = "12345"; - final String deleteGroupMembershipURL = "/2.0/group_memberships/" + groupMembershipID; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(deleteGroupMembershipURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(204))); - - BoxGroupMembership membership = new BoxGroupMembership(this.api, groupMembershipID); - membership.delete(); - } - - @Test - public void testUpdateGroupMembershipSucceeds() { - final String groupMembershipID = "12345"; - final String groupMembershipURL = "/2.0/group_memberships/" + groupMembershipID; - final String groupName = "Example Group"; - final BoxGroupMembership.GroupRole role = BoxGroupMembership.GroupRole.ADMIN; - - JsonObject membershipObject = new JsonObject() - .add("role", "admin"); - - String result = TestUtils.getFixture("BoxGroup/UpdateGroupMembership200"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(groupMembershipURL)) - .withRequestBody(WireMock.equalToJson(membershipObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxGroupMembership membership = new BoxGroupMembership(this.api, groupMembershipID); - BoxGroupMembership.Info info = membership.new Info(); - info.addPendingChange("role", "admin"); - membership.updateInfo(info); - - assertEquals(groupName, info.getGroup().getName()); - assertEquals(groupMembershipID, info.getID()); - assertEquals(role, info.getGroupRole()); - } - - @Test - public void testCreateGroupMembershipSucceedsAndSendsCorrectJson() { - final String groupID = "2222"; - final String userID = "1111"; - final String groupCollaborationURL = "/2.0/group_memberships"; - final String groupMembershipID = "12345"; - final BoxGroupMembership.GroupRole groupMembershipRole = BoxGroupMembership.GroupRole.MEMBER; - - String result = TestUtils.getFixture("BoxGroup/CreateGroupMembership201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(groupCollaborationURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxGroup group = new BoxGroup(this.api, groupID); - BoxUser user = new BoxUser(this.api, userID); - BoxGroupMembership.Info groupMembershipInfo = group.addMembership(user); - - assertEquals(groupMembershipID, groupMembershipInfo.getID()); - assertEquals(groupMembershipRole, groupMembershipInfo.getGroupRole()); - assertEquals(groupID, groupMembershipInfo.getGroup().getID()); - assertEquals(userID, groupMembershipInfo.getUser().getID()); - } - - @Test - public void testGetGroupsCollaborationsSucceeds() { - final String groupID = "12345"; - final String groupCollaborationURL = "/2.0/groups/" + groupID + "/collaborations"; - final String accessibleByName = "New Group Name"; - final String accessiblyByID = "1111"; - final BoxCollaboration.Role groupRole = BoxCollaboration.Role.EDITOR; - final String itemID = "2222"; - final String itemName = "Ball Valve Diagram"; - - String result = TestUtils.getFixture("BoxGroup/GetAGroupsCollaborations1stPage200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(groupCollaborationURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxGroup group = new BoxGroup(this.api, groupID); - Collection groupInfo = group.getCollaborations(); - BoxCollaboration.Info info = groupInfo.iterator().next(); - - assertEquals(accessibleByName, info.getAccessibleBy().getName()); - assertEquals(accessiblyByID, info.getAccessibleBy().getID()); - assertEquals(groupRole, info.getRole()); - assertEquals(itemID, info.getItem().getID()); - assertEquals(itemName, info.getItem().getName()); - } - - @Test - public void testGetAllGroupsCollaborationsSucceeds() { - final String groupID = "12345"; - final String groupCollaborationURL = "/2.0/groups/" + groupID + "/collaborations"; - String result1 = TestUtils.getFixture("BoxGroup/GetAGroupsCollaborations1stPage200"); - String result2 = TestUtils.getFixture("BoxGroup/GetAGroupsCollaborations2ndPage200"); - - // First request will return a page of results with one item - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(groupCollaborationURL)) - .withQueryParam("offset", WireMock.containing("0")) - .withQueryParam("limit", WireMock.containing("100")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result1))); - - // Second request will return a page of results with remaining one item - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(groupCollaborationURL)) - .withQueryParam("offset", WireMock.containing("1")) - .withQueryParam("limit", WireMock.containing("100")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result2))); - - BoxGroup group = new BoxGroup(this.api, groupID); - Iterator collaborations = group.getAllCollaborations().iterator(); - - // First item on the first page of results - BoxCollaboration.Info currCollaboration = collaborations.next(); - assertEquals("12345", currCollaboration.getID()); - assertEquals("New Group Name", currCollaboration.getAccessibleBy().getName()); - assertEquals("2222", currCollaboration.getItem().getID()); - assertEquals("folder", currCollaboration.getItem().getType()); - - // First item on the second page of results (this next call makes the second request to get the second page) - currCollaboration = collaborations.next(); - assertEquals("23647", currCollaboration.getID()); - assertEquals("New Group Name", currCollaboration.getAccessibleBy().getName()); - assertEquals("12342", currCollaboration.getItem().getID()); - assertEquals("file", currCollaboration.getItem().getType()); - } - - @Test - public void testDeleteAGroupSucceedsAndSendsCorrectJson() { - final String groupID = "12345"; - final String deleteGroupURL = "/2.0/groups/" + groupID; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(deleteGroupURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(204))); - - BoxGroup group = new BoxGroup(this.api, groupID); - group.delete(); - } - - - @Test - public void testUpdateAGroupInfoSendsCorrectJson() { - final String groupID = "12345"; - final String groupURL = "/2.0/groups/" + groupID; - final String groupName = "New Group Name"; - - JsonObject groupObject = new JsonObject() - .add("name", groupName); - - String getGroupResult = TestUtils.getFixture("BoxGroup/GetAGroupsInfo200"); - String updateGroupResult = TestUtils.getFixture("BoxGroup/UpdateAGroupsInfo200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(groupURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(getGroupResult))); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(groupURL)) - .withRequestBody(WireMock.equalToJson(groupObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(updateGroupResult))); - - BoxGroup group = new BoxGroup(this.api, groupID); - BoxGroup.Info groupInfo = group.getInfo(); - groupInfo.setName(groupName); - group.updateInfo(groupInfo); - } - - @Test - public void testGetAGroupInfoSucceeds() { - final String groupID = "12345"; - final String groupURL = "/2.0/groups/" + groupID; - final String groupName = "Test Group"; - - String result = TestUtils.getFixture("BoxGroup/GetAGroupsInfo200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(groupURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxGroup.Info groupInfo = new BoxGroup(this.api, groupID).getInfo(); - - assertEquals(groupID, groupInfo.getID()); - assertEquals(groupName, groupInfo.getName()); - } - - @Test - public void testCreateGroupSucceedsAndSendsCorrectJson() { - final String createGroupsURL = "/2.0/groups"; - final String groupID = "12345"; - final String groupName = "Test Group"; - - JsonObject groupObject = new JsonObject() - .add("name", groupName); - - String result = TestUtils.getFixture("BoxGroup/CreateAGroup201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(createGroupsURL)) - .withRequestBody(WireMock.equalToJson(groupObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxGroup.Info groupInfo = BoxGroup.createGroup(this.api, groupName); - - assertEquals(groupID, groupInfo.getID()); - assertEquals(groupName, groupInfo.getName()); - } - - @Test - public void testGetAllEnterpriseGroupsSucceeds() { - final String getAllGroupsURL = "/2.0/groups"; - final String firstGroupID = "12345"; - final String firstGroupName = "Test Group 1"; - final String secondGroupID = "53453"; - final String secondGroupName = "Test Group 2"; - - String result = TestUtils.getFixture("BoxGroup/GetAllGroups200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(getAllGroupsURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - Iterator groups = BoxGroup.getAllGroups(this.api).iterator(); - BoxGroup.Info firstGroupInfo = groups.next(); - - assertEquals(firstGroupName, firstGroupInfo.getName()); - assertEquals(firstGroupID, firstGroupInfo.getID()); - - BoxGroup.Info secondGroupInfo = groups.next(); - - assertEquals(secondGroupName, secondGroupInfo.getName()); - assertEquals(secondGroupID, secondGroupInfo.getID()); - } -} diff --git a/src/test/java/com/box/sdk/BoxInviteTest.java b/src/test/java/com/box/sdk/BoxInviteTest.java deleted file mode 100644 index 1ec22e296..000000000 --- a/src/test/java/com/box/sdk/BoxInviteTest.java +++ /dev/null @@ -1,118 +0,0 @@ -package com.box.sdk; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import org.junit.Test; - -public class BoxInviteTest { - - @Test - public void inviteUserToEnterpriseWorks() { - - final String userID = "13130406"; - final String userName = "Alison Wonderland"; - final String userLogin = "alice@gmail.com"; - final String enterpriseID = "119720"; - final String enterpriseName = "Australian DJs"; - final String inviterID = "029384"; - final String inviterName = "Valentino Khan"; - final String inviterLogin = "vkhan@hotmail.com"; - final String inviteID = "873465289356"; - final String status = "pending"; - - final JsonObject fakeJSONResponse = Json.parse("{\n" - + " \"type\": \"invite\",\n" - + " \"id\": \"" + inviteID + "\",\n" - + " \"invited_to\": {\n" - + " \"type\": \"enterprise\",\n" - + " \"id\": \"" + enterpriseID + "\",\n" - + " \"name\": \"" + enterpriseName + "\"\n" - + " },\n" - + " \"actionable_by\": {\n" - + " \"type\": \"user\",\n" - + " \"id\": \"" + userID + "\",\n" - + " \"name\": \"" + userName + "\",\n" - + " \"login\": \"" + userLogin + "\"\n" - + " },\n" - + " \"invited_by\": {\n" - + " \"type\": \"user\",\n" - + " \"id\": \"" + inviterID + "\",\n" - + " \"name\": \"" + inviterName + "\",\n" - + " \"login\": \"" + inviterLogin + "\"\n" - + " },\n" - + " \"status\": \"" + status + "\",\n" - + " \"created_at\": \"2014-12-23T12:55:53-08:00\",\n" - + " \"modified_at\": \"2014-12-23T12:55:53-08:00\"\n" - + "}").asObject(); - - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(request -> { - final String url = request.getUrl().toString(); - if (url.equals("https://api.box.com/2.0/users/" + userID + "?fields=login")) { - - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"type\":\"user\",\"id\":\"" + userID + "\",\"login\":\"" + userLogin + "\"}"; - } - }; - } else if (url.equals("https://api.box.com/2.0/invites")) { - - return new BoxJSONResponse() { - @Override - public String getJSON() { - return fakeJSONResponse.toString(); - } - }; - } else { - fail("Unexpcted API request " + request.getUrl()); - } - - return null; - }); - BoxInvite.Info info = BoxInvite.inviteUserToEnterprise(api, userLogin, enterpriseID); - - assertEquals(inviteID, info.getID()); - - BoxEnterprise enterprise = info.getInvitedTo(); - assertEquals(enterpriseID, enterprise.getID()); - assertEquals(enterpriseName, enterprise.getName()); - - BoxUser.Info invited = info.getActionableBy(); - assertEquals(userID, invited.getID()); - assertEquals(userName, invited.getName()); - assertEquals(userLogin, invited.getLogin()); - - BoxUser.Info inviter = info.getInvitedBy(); - assertEquals(inviterID, inviter.getID()); - assertEquals(inviterName, inviter.getName()); - assertEquals(inviterLogin, inviter.getLogin()); - - assertEquals(status, info.getStatus()); - } - - @Test - public void getInfoMakesCorrectCall() { - - final String id = "783645"; - - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(request -> { - assertEquals("https://api.box.com/2.0/invites/" + id, - request.getUrl().toString()); - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"type\":\"invite\",\"id\":\"" + id + "\"}"; - } - }; - }); - - BoxInvite invite = new BoxInvite(api, id); - BoxInvite.Info info = invite.getInfo(); - assertEquals(id, info.getID()); - } -} diff --git a/src/test/java/com/box/sdk/BoxItemTest.java b/src/test/java/com/box/sdk/BoxItemTest.java deleted file mode 100644 index d54e71f84..000000000 --- a/src/test/java/com/box/sdk/BoxItemTest.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import org.hamcrest.CoreMatchers; -import org.hamcrest.MatcherAssert; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -import java.util.Collections; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.client.WireMock.*; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.junit.Assert.assertEquals; - -public class BoxItemTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - api.setBaseUploadURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void shouldUseRequestInterceptor() { - String itemType = "file"; - String itemId = "some_id"; - BoxAPIConnection api = new BoxAPIConnection(""); - api.setRequestInterceptor(request -> { - if ("https://api.box.com/2.0/shared_items".equals(request.getUrl().toString())) { - JsonObject body = new JsonObject(); - body.add("type", itemType); - body.add("id", itemId); - return new BoxJSONResponse( - 200, - request.getMethod(), - request.getUrl().toString(), - Collections.emptyMap(), - body - ); - } - return null; - }); - - BoxItem.Info item = BoxItem.getSharedItem(api, "some_link"); - MatcherAssert.assertThat(item.getType(), CoreMatchers.is(itemType)); - MatcherAssert.assertThat(item.getID(), CoreMatchers.is(itemId)); - } - - @Test - public void shouldgetSharedItemWithoutPasswordAndUseBaseClient() { - final String sharedLink = "https://app.box.com/s/kwio6b4ovt1264rnfbyqo1"; - final String expectedSharedLinkHeaderValue = "shared_link=" + sharedLink; - final String sharedItemsURL = "/2.0/shared_items"; - - String result = TestUtils.getFixture("BoxItem/GetSharedItemFile200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(sharedItemsURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxItem.Info itemInfo = BoxItem.getSharedItem(api, sharedLink); - - assertEquals("file", itemInfo.getType()); - - verify(1, getRequestedFor( - urlEqualTo("/2.0/shared_items")).withHeader("BoxApi", equalTo(expectedSharedLinkHeaderValue))); - } - - @Test - public void shouldgetSharedItemWithPasswordAndUseBaseClient() { - final String sharedLink = "https://app.box.com/s/kwio6b4ovt1264rnfbyqo1"; - final String password = "letmein"; - final String expectedSharedLinkHeaderValue = "shared_link=" + sharedLink + "&shared_link_password=" + password; - final String sharedItemsURL = "/2.0/shared_items"; - - String result = TestUtils.getFixture("BoxItem/GetSharedItemFile200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(sharedItemsURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxItem.Info itemInfo = BoxItem.getSharedItem(api, sharedLink, password); - - assertEquals("file", itemInfo.getType()); - - verify(1, getRequestedFor( - urlEqualTo("/2.0/shared_items")).withHeader("BoxApi", equalTo(expectedSharedLinkHeaderValue))); - } -} diff --git a/src/test/java/com/box/sdk/BoxJSONRequestTest.java b/src/test/java/com/box/sdk/BoxJSONRequestTest.java deleted file mode 100644 index d07c2b734..000000000 --- a/src/test/java/com/box/sdk/BoxJSONRequestTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.TestUtils.createConnectionWith; -import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.get; -import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; -import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.core.Is.is; -import static org.mockito.Mockito.mock; - -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.net.MalformedURLException; -import java.net.URL; -import org.junit.Rule; -import org.junit.Test; - -public class BoxJSONRequestTest { - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - - @Test - public void shouldHandleApiResponse() { - stubFor(get(urlEqualTo("/")).willReturn(aResponse().withStatus(202))); - Time mockTime = mock(Time.class); - BackoffCounter backoffCounter = new BackoffCounter(mockTime); - - BoxAPIConnection api = createConnectionWith(boxMockUrl().toString()); - BoxJSONRequest request = new BoxJSONRequest(api, boxMockUrl(), "GET"); - request.setBackoffCounter(backoffCounter); - - BoxJSONResponse response = request.send(); - assertThat(response.getResponseCode(), is(202)); - } - - private URL boxMockUrl() { - try { - return new URL(format("https://localhost:%d/", wireMockRule.httpsPort())); - } catch (MalformedURLException e) { - throw new RuntimeException(e); - } - } -} diff --git a/src/test/java/com/box/sdk/BoxLegalHoldPolicyAssignmentTest.java b/src/test/java/com/box/sdk/BoxLegalHoldPolicyAssignmentTest.java deleted file mode 100644 index 6dde5fa07..000000000 --- a/src/test/java/com/box/sdk/BoxLegalHoldPolicyAssignmentTest.java +++ /dev/null @@ -1,169 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.junit.Assert.assertEquals; - -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.util.Iterator; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -/** - * {@link BoxLegalHoldAssignment} related unit tests. - */ -public class BoxLegalHoldPolicyAssignmentTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void testGetLegalHoldsPolicyAssignmentSucceeds() { - final String assignmentID = "12345"; - final String assignmentURL = "/2.0/legal_hold_policy_assignments/" + assignmentID; - final String policyID = "11111"; - final String policyName = "Trial Documents"; - final String assignedByID = "33333"; - final String assignedByLogin = "testuser@example.com"; - - String result = TestUtils.getFixture("BoxLegalHold/GetLegalHoldPolicyAssignmentsID200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(assignmentURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxLegalHoldAssignment assignment = new BoxLegalHoldAssignment(this.api, assignmentID); - BoxLegalHoldAssignment.Info info = assignment.getInfo(); - - assertEquals(assignmentID, info.getID()); - assertEquals(policyID, info.getLegalHold().getID()); - assertEquals(policyName, info.getLegalHold().getPolicyName()); - assertEquals(assignedByID, info.getAssignedBy().getID()); - assertEquals(assignedByLogin, info.getAssignedBy().getLogin()); - } - - @Test - public void testGetAllLegalHoldsPolicyAssignmentsSucceeds() { - final String policyID = "11111"; - final String assignmentID = "12345"; - final String assignmentURL = "/2.0/legal_hold_policies/" + policyID + "/assignments"; - - String result = TestUtils.getFixture("BoxLegalHold/GetLegalHoldPolicyAssignmentsPolicyID200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(assignmentURL)) - .withQueryParam("limit", WireMock.containing("100")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxLegalHoldPolicy policy = new BoxLegalHoldPolicy(this.api, policyID); - Iterator assignments = policy.getAssignments().iterator(); - BoxLegalHoldAssignment.Info assignmentInfo = assignments.next(); - - assertEquals(assignmentID, assignmentInfo.getID()); - } - - @Test - public void testCreateLegalHoldsPolicyAssignmentSucceedsAndSendsCorrectJson() { - final String policyID = "11111"; - final String folderID = "55555"; - final String assignmentID = "12345"; - final String assignedByName = "Test User"; - final String assignedByLogin = "testuser@example.com"; - final String assignmentURL = "/2.0/legal_hold_policy_assignments"; - JsonObject innerObject = new JsonObject() - .add("id", folderID) - .add("type", "folder"); - - JsonObject assignmentObject = new JsonObject() - .add("policy_id", policyID) - .add("assign_to", innerObject); - - String result = TestUtils.getFixture("BoxLegalHold/PostLegalHoldPolicyAssignments201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(assignmentURL)) - .withRequestBody(WireMock.equalToJson(assignmentObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxLegalHoldPolicy policy = new BoxLegalHoldPolicy(this.api, policyID); - BoxFolder folder = new BoxFolder(this.api, folderID); - BoxLegalHoldAssignment.Info assignInfo = policy.assignTo(folder); - - assertEquals(assignmentID, assignInfo.getID()); - assertEquals(policyID, assignInfo.getLegalHold().getID()); - assertEquals(folderID, assignInfo.getAssignedToID()); - assertEquals(assignedByLogin, assignInfo.getAssignedBy().getLogin()); - assertEquals(assignedByName, assignInfo.getAssignedBy().getName()); - } - - @Test - public void testDeleteLegalHoldsPolicyAssignmentSucceeds() { - final String assignmentID = "12345"; - final String assignmentURL = "/2.0/legal_hold_policy_assignments/" + assignmentID; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(assignmentURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(204))); - - BoxLegalHoldAssignment assignment = new BoxLegalHoldAssignment(this.api, assignmentID); - assignment.delete(); - } - - @Test - public void testGetFileVersionLegalHoldSucceeds() { - final String legalHoldID = "99999"; - final String versionID = "77777"; - final String fileID = "88888"; - final String versionURL = "/2.0/file_version_legal_holds/" + legalHoldID; - - String result = TestUtils.getFixture("BoxLegalHold/GetFileVersionLegalHoldsID200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(versionURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFileVersionLegalHold hold = new BoxFileVersionLegalHold(this.api, legalHoldID); - BoxFileVersionLegalHold.Info legalHold = hold.getInfo(); - - assertEquals(legalHoldID, legalHold.getID()); - assertEquals(versionID, legalHold.getFileVersion().getID()); - assertEquals(fileID, legalHold.getFile().getID()); - } - - @Test - public void testGetAllFileVersionLegalHoldsSucceeds() { - final String policyID = "99999"; - final String versionURL = "/2.0/file_version_legal_holds"; - - String result = TestUtils.getFixture("BoxLegalHold/GetFileVersionLegalHolds200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(versionURL)) - .withQueryParam("policy_id", WireMock.containing(policyID)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxLegalHoldPolicy policy = new BoxLegalHoldPolicy(this.api, policyID); - Iterator fileVersionHolds = policy.getFileVersionHolds().iterator(); - BoxFileVersionLegalHold.Info versionEntry = fileVersionHolds.next(); - - assertEquals(policyID, versionEntry.getID()); - } - -} diff --git a/src/test/java/com/box/sdk/BoxLegalHoldPolicyTest.java b/src/test/java/com/box/sdk/BoxLegalHoldPolicyTest.java deleted file mode 100644 index c75e2653b..000000000 --- a/src/test/java/com/box/sdk/BoxLegalHoldPolicyTest.java +++ /dev/null @@ -1,276 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; - -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.Iterator; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -/** - * {@link BoxLegalHoldPolicy} related unit tests. - */ -public class BoxLegalHoldPolicyTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void testGetLegalHoldPolicySucceeds() { - final String legalHoldsID = "12345"; - final String legalHoldsURL = "/2.0/legal_hold_policies/" + legalHoldsID; - final String policyName = "Trial Documents"; - final String createdByLogin = "testuser@example.com"; - final String createdByName = "Test User"; - final String createdByID = "33333"; - - String result = TestUtils.getFixture("BoxLegalHold/GetLegalHoldPoliciesID200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(legalHoldsURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxLegalHoldPolicy policy = new BoxLegalHoldPolicy(this.api, legalHoldsID); - BoxLegalHoldPolicy.Info policyInfo = policy.getInfo(); - - Assert.assertEquals(legalHoldsID, policyInfo.getID()); - Assert.assertEquals(policyName, policyInfo.getPolicyName()); - Assert.assertEquals(createdByLogin, policyInfo.getCreatedBy().getLogin()); - Assert.assertEquals(createdByName, policyInfo.getCreatedBy().getName()); - Assert.assertEquals(createdByID, policyInfo.getCreatedBy().getID()); - } - - @Test - public void testGetAllLegalHoldPoliciesSucceeds() { - final String legalHoldsURL = "/2.0/legal_hold_policies"; - final String firstLegalHoldID = "22222"; - final String firstLegalHoldName = "IRS Audit"; - final String secondLegalHoldID = "11111"; - final String secondLegalHoldName = "Trial Documents"; - - String result = TestUtils.getFixture("BoxLegalHold/GetLegalHoldPolicies200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(legalHoldsURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - Iterator policies = BoxLegalHoldPolicy.getAll(this.api).iterator(); - BoxLegalHoldPolicy.Info firstPolicyInfo = policies.next(); - - Assert.assertEquals(firstLegalHoldID, firstPolicyInfo.getID()); - Assert.assertEquals(firstLegalHoldName, firstPolicyInfo.getPolicyName()); - - BoxLegalHoldPolicy.Info secondPolicyInfo = policies.next(); - - Assert.assertEquals(secondLegalHoldID, secondPolicyInfo.getID()); - Assert.assertEquals(secondLegalHoldName, secondPolicyInfo.getPolicyName()); - } - - @Test - public void testCreateNewLegalHoldPolicySucceedsAndSendsCorrectJson() { - final String legalHoldsURL = "/2.0/legal_hold_policies"; - final String policyID = "11111"; - final String createdByID = "33333"; - final String createdByName = "Test User"; - final String createdByLogin = "testuser@example.com"; - final String policyName = "Trial Documents"; - - - JsonObject policyObject = new JsonObject() - .add("policy_name", policyName) - .add("is_ongoing", true); - - String result = TestUtils.getFixture("BoxLegalHold/PostOngoingLegalHoldPolicies201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(legalHoldsURL)) - .withRequestBody(WireMock.equalToJson(policyObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxLegalHoldPolicy.Info policyInfo = BoxLegalHoldPolicy.create(this.api, policyName); - - Assert.assertEquals(policyID, policyInfo.getID()); - Assert.assertEquals(createdByID, policyInfo.getCreatedBy().getID()); - Assert.assertEquals(createdByName, policyInfo.getCreatedBy().getName()); - Assert.assertEquals(createdByLogin, policyInfo.getCreatedBy().getLogin()); - Assert.assertEquals(policyName, policyInfo.getPolicyName()); - Assert.assertTrue(policyInfo.getIsOngoing()); - } - - @Test - public void testCreateNewLegalHoldPolicyWithDateFilters() throws ParseException { - final String legalHoldsURL = "/2.0/legal_hold_policies"; - final String policyID = "11111"; - final String createdByID = "33333"; - final String createdByName = "Test User"; - final String createdByLogin = "testuser@example.com"; - final String policyName = "Trial Documents"; - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX"); - final String startTimeString = "2018-04-25T23:37:05Z"; - final String endTimeString = "2020-04-25T23:37:05Z"; - final Date startTime = dateFormat.parse("2018-04-25T16:37:05-07:00"); - final Date endTime = dateFormat.parse("2020-04-25T16:37:05-07:00"); - - JsonObject policyObject = new JsonObject() - .add("policy_name", policyName) - .add("filter_started_at", startTimeString) - .add("filter_ended_at", endTimeString); - - String result = TestUtils.getFixture("BoxLegalHold/PostLegalHoldPolicies201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(legalHoldsURL)) - .withRequestBody(WireMock.equalToJson(policyObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxLegalHoldPolicy.Info policyInfo = BoxLegalHoldPolicy.create(this.api, policyName, null, - startTime, endTime); - - Assert.assertEquals(policyID, policyInfo.getID()); - Assert.assertEquals(createdByID, policyInfo.getCreatedBy().getID()); - Assert.assertEquals(createdByName, policyInfo.getCreatedBy().getName()); - Assert.assertEquals(createdByLogin, policyInfo.getCreatedBy().getLogin()); - Assert.assertEquals(policyName, policyInfo.getPolicyName()); - Assert.assertEquals(startTime, policyInfo.getFilterStartedAt()); - Assert.assertEquals(endTime, policyInfo.getFilterEndedAt()); - } - - @Test - public void testCreateOngoingNewLegalHoldPolicySucceedsAndSendsCorrectJson() { - final String legalHoldsURL = "/2.0/legal_hold_policies"; - final String policyID = "11111"; - final String createdByID = "33333"; - final String createdByName = "Test User"; - final String createdByLogin = "testuser@example.com"; - final String policyName = "Trial Documents"; - final String description = "This is a description."; - - JsonObject policyObject = new JsonObject() - .add("policy_name", policyName) - .add("is_ongoing", true) - .add("description", description); - - String result = TestUtils.getFixture("BoxLegalHold/PostOngoingLegalHoldPolicies201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(legalHoldsURL)) - .withRequestBody(WireMock.equalToJson(policyObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxLegalHoldPolicy.Info policyInfo = BoxLegalHoldPolicy.createOngoing(this.api, policyName, description); - - Assert.assertEquals(policyID, policyInfo.getID()); - Assert.assertEquals(createdByID, policyInfo.getCreatedBy().getID()); - Assert.assertEquals(createdByName, policyInfo.getCreatedBy().getName()); - Assert.assertEquals(createdByLogin, policyInfo.getCreatedBy().getLogin()); - Assert.assertEquals(policyName, policyInfo.getPolicyName()); - Assert.assertEquals(description, policyInfo.getDescription()); - Assert.assertTrue(policyInfo.getIsOngoing()); - } - - @Test - public void testCreateOngoingWithStartDateNewLegalHoldPolicySucceedsAndSendsCorrectJson() throws ParseException { - final String legalHoldsURL = "/2.0/legal_hold_policies"; - final String policyID = "11111"; - final String createdByID = "33333"; - final String createdByName = "Test User"; - final String createdByLogin = "testuser@example.com"; - final String policyName = "Trial Documents"; - final String description = "This is a description."; - final String startTimeString = "2018-04-25T23:37:05Z"; - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX"); - final Date startTime = dateFormat.parse("2018-04-25T16:37:05-07:00"); - - JsonObject policyObject = new JsonObject() - .add("policy_name", policyName) - .add("is_ongoing", true) - .add("description", description) - .add("filter_started_at", startTimeString); - - String result = TestUtils.getFixture("BoxLegalHold/PostOngoingWithStartDateLegalHoldPolicies201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(legalHoldsURL)) - .withRequestBody(WireMock.equalToJson(policyObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxLegalHoldPolicy.Info policyInfo = BoxLegalHoldPolicy.createOngoing( - this.api, policyName, description, startTime - ); - - Assert.assertEquals(policyID, policyInfo.getID()); - Assert.assertEquals(createdByID, policyInfo.getCreatedBy().getID()); - Assert.assertEquals(createdByName, policyInfo.getCreatedBy().getName()); - Assert.assertEquals(createdByLogin, policyInfo.getCreatedBy().getLogin()); - Assert.assertEquals(policyName, policyInfo.getPolicyName()); - Assert.assertEquals(description, policyInfo.getDescription()); - Assert.assertEquals(startTime, policyInfo.getFilterStartedAt()); - Assert.assertTrue(policyInfo.getIsOngoing()); - } - - - @Test - public void testUpdateLegalHoldPolicySucceedsAndSendsCorrectJson() { - final String legalHoldsID = "11111"; - final String legalHoldsURL = "/2.0/legal_hold_policies/" + legalHoldsID; - final String legalHoldsDescription = "Documents related to our ongoing litigation"; - final String legalHoldsPolicyName = "Trial Documents"; - - JsonObject updateObject = new JsonObject() - .add("description", legalHoldsDescription) - .add("policy_name", legalHoldsPolicyName); - - String result = TestUtils.getFixture("BoxLegalHold/PutLegalHoldPoliciesID200"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(legalHoldsURL)) - .withRequestBody(WireMock.equalToJson(updateObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxLegalHoldPolicy policy = new BoxLegalHoldPolicy(this.api, legalHoldsID); - BoxLegalHoldPolicy.Info policyInfo = policy.new Info(); - policyInfo.setDescription(legalHoldsDescription); - policyInfo.setPolicyName(legalHoldsPolicyName); - policy.updateInfo(policyInfo); - - Assert.assertEquals(legalHoldsDescription, policyInfo.getDescription()); - Assert.assertEquals(legalHoldsPolicyName, policyInfo.getPolicyName()); - } - - @Test - public void testDeleteLegalHoldPolicySucceeds() { - final String legalHoldsID = "11111"; - final String legalHoldsURL = "/2.0/legal_hold_policies/" + legalHoldsID; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(legalHoldsURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(204))); - - BoxLegalHoldPolicy policy = new BoxLegalHoldPolicy(this.api, legalHoldsID); - policy.delete(); - } -} diff --git a/src/test/java/com/box/sdk/BoxLoggerTest.java b/src/test/java/com/box/sdk/BoxLoggerTest.java deleted file mode 100644 index 35cf3f6ed..000000000 --- a/src/test/java/com/box/sdk/BoxLoggerTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.box.sdk; - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.empty; - -import java.util.ArrayList; -import java.util.List; -import java.util.logging.Handler; -import java.util.logging.LogRecord; -import org.junit.Test; - -public class BoxLoggerTest { - @Test - public void canAddHandler() { - HandlerForTests handler = new HandlerForTests(); - BoxLogger boxLogger = BoxLogger.defaultLogger(); - - boxLogger.addHandler(handler); - boxLogger.info("Test"); - - LogRecord logRecord = handler.logEntries.get(0); - assertThat(logRecord.getMessage(), is("Test")); - } - - @Test - public void canRemoveHandler() { - HandlerForTests handler = new HandlerForTests(); - BoxLogger boxLogger = BoxLogger.defaultLogger(); - - boxLogger.addHandler(handler); - boxLogger.removeHandler(handler); - boxLogger.info("Test"); - - assertThat(handler.logEntries, empty()); - } - - private static final class HandlerForTests extends Handler { - List logEntries = new ArrayList<>(); - - @Override - public void publish(LogRecord record) { - logEntries.add(record); - } - - @Override - public void flush() { - } - - @Override - public void close() throws SecurityException { - } - } -} diff --git a/src/test/java/com/box/sdk/BoxMetadataCascadePolicyTest.java b/src/test/java/com/box/sdk/BoxMetadataCascadePolicyTest.java deleted file mode 100644 index a36f36a2b..000000000 --- a/src/test/java/com/box/sdk/BoxMetadataCascadePolicyTest.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.junit.Assert.assertEquals; - -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.util.Iterator; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -public class BoxMetadataCascadePolicyTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void testCreateMetadataCascadePolicySucceedsSendsCorrectJson() { - final String cascadePolicyURL = "/2.0/metadata_cascade_policies"; - final String folderID = "22222"; - final String scope = "enterprise_11111"; - final String templateKey = "testTemplate"; - JsonObject cascadeObject = new JsonObject() - .add("folder_id", folderID) - .add("scope", scope) - .add("templateKey", templateKey); - - String result = TestUtils.getFixture("BoxMetadataCascadePolicy/CreateMetadataCascadePolicies201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(cascadePolicyURL)) - .withRequestBody(WireMock.equalToJson(cascadeObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxMetadataCascadePolicy.Info metadataCascadePolicyInfo = BoxMetadataCascadePolicy.create(this.api, folderID, - scope, templateKey); - - assertEquals(folderID, metadataCascadePolicyInfo.getParent().getID()); - assertEquals(scope, metadataCascadePolicyInfo.getScope()); - assertEquals(templateKey, metadataCascadePolicyInfo.getTemplateKey()); - } - - @Test - public void testGetAllMetadataCascadePoliciesSucceeds() { - final String folderID = "22222"; - final String cascadePolicyID = "84113349-794d-445c-b93c-d8481b223434"; - final String enterpriseID = "11111"; - final String scope = "enterprise_11111"; - final String templateKey = "testTemplate"; - final String cascadePoliciesURL = "/2.0/metadata_cascade_policies"; - - String result = TestUtils.getFixture("BoxMetadataCascadePolicy/GetAllMetadataCascadePolicies200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(cascadePoliciesURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - Iterator metadataCascadePolicies = - BoxMetadataCascadePolicy.getAll(this.api, folderID).iterator(); - - BoxMetadataCascadePolicy.Info firstCascadePolicy = metadataCascadePolicies.next(); - - assertEquals(folderID, firstCascadePolicy.getParent().getID()); - assertEquals(cascadePolicyID, firstCascadePolicy.getID()); - assertEquals(enterpriseID, firstCascadePolicy.getOwnerEnterprise().getID()); - assertEquals(scope, firstCascadePolicy.getScope()); - assertEquals(templateKey, firstCascadePolicy.getTemplateKey()); - } - - @Test - public void testGetAMetadataCascadePolicySucceeds() { - final String cascadePolicyID = "84113349-794d-445c-b93c-d8481b223434"; - final String enterpriseID = "11111"; - final String parentID = "22222"; - final String scope = "enterprise_11111"; - final String templateKey = "testTemplate"; - final String cascadePolicyURL = "/2.0/metadata_cascade_policies/" + cascadePolicyID; - - String result = TestUtils.getFixture("BoxMetadataCascadePolicy/GetMetadataCascadePoliciesID200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(cascadePolicyURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxMetadataCascadePolicy metadataCascadePolicy = new BoxMetadataCascadePolicy(this.api, cascadePolicyID); - BoxMetadataCascadePolicy.Info metadataCascadePolicyInfo = metadataCascadePolicy.getInfo(); - - assertEquals(enterpriseID, metadataCascadePolicyInfo.getOwnerEnterprise().getID()); - assertEquals(parentID, metadataCascadePolicyInfo.getParent().getID()); - assertEquals(scope, metadataCascadePolicyInfo.getScope()); - assertEquals(templateKey, metadataCascadePolicyInfo.getTemplateKey()); - } - - @Test - public void testForceApplyMetadataCascadePolicySucceedsAndSendsCorrectJson() { - final String conflictResolution = "none"; - final String cascadePolicyID = "84113349-794d-445c-b93c-d8481b223434"; - final String forceApplyURL = "/2.0/metadata_cascade_policies/" + cascadePolicyID + "/apply"; - - JsonObject policyObject = new JsonObject() - .add("conflict_resolution", conflictResolution); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(forceApplyURL)) - .withRequestBody(WireMock.equalToJson(policyObject.toString())) - .willReturn(WireMock.aResponse() - .withStatus(202))); - - BoxMetadataCascadePolicy metadataCascadePolicy = new BoxMetadataCascadePolicy(this.api, cascadePolicyID); - metadataCascadePolicy.forceApply(conflictResolution); - } - - @Test - public void testDeleteMetadataCascadePolicySendsCorrectRequest() { - final String cascadePolicyID = "84113349-794d-445c-b93c-d8481b223434"; - final String cascadePolicyURL = "/2.0/metadata_cascade_policies/" + cascadePolicyID; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(cascadePolicyURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(204))); - - BoxMetadataCascadePolicy metadataCascadePolicy = new BoxMetadataCascadePolicy(this.api, cascadePolicyID); - metadataCascadePolicy.delete(); - } -} diff --git a/src/test/java/com/box/sdk/BoxResourceIterableTest.java b/src/test/java/com/box/sdk/BoxResourceIterableTest.java deleted file mode 100644 index b8fdf68d9..000000000 --- a/src/test/java/com/box/sdk/BoxResourceIterableTest.java +++ /dev/null @@ -1,156 +0,0 @@ -package com.box.sdk; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import com.eclipsesource.json.JsonObject; -import java.util.Iterator; -import java.util.NoSuchElementException; -import org.junit.Test; - -/** - * {@link BoxResourceIterable} related unit tests. - */ -public class BoxResourceIterableTest { - - /** - * Unit test for {@link BoxResourceIterable.IteratorImpl#next()}. - */ - @Test(expected = NoSuchElementException.class) - public void testNextSendsCorrectRequestWithLimit() { - final URLTemplate urlTemplate = new URLTemplate("endpoint/%s"); - final int limit = 19; - - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(new RequestInterceptor() { - @Override - public BoxAPIResponse onRequest(BoxAPIRequest request) { - assertEquals( - "https://api.box.com/2.0/endpoint/0?limit=19", request.getUrl().toString()); - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"entries\":[]}"; - } - }; - } - }); - - Iterator iterator = new BoxResourceIterable(api, urlTemplate.build(api.getBaseURL(), "0"), limit) { - @Override - protected Void factory(JsonObject jsonObject) { - return null; - } - } - .iterator(); - - iterator.next(); - } - - /** - * Unit test for {@link BoxResourceIterable.IteratorImpl#hasNext()}. - */ - @Test - public void testNextSendsCorrectRequestWithMarker() { - final URLTemplate urlTemplate = new URLTemplate("endpoint/%s"); - final int limit = 19; - - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(new RequestInterceptor() { - @Override - public BoxAPIResponse onRequest(BoxAPIRequest request) { - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"entries\":[{\"field\": \"value\"}], \"next_marker\": \"marker\"}"; - } - }; - } - }); - - Iterator iterator = new BoxResourceIterable(api, urlTemplate.build(api.getBaseURL(), "0"), limit) { - @Override - protected Void factory(JsonObject jsonObject) { - return null; - } - } - .iterator(); - - iterator.next(); - - api.setRequestInterceptor(new RequestInterceptor() { - @Override - public BoxAPIResponse onRequest(BoxAPIRequest request) { - assertEquals( - "https://api.box.com/2.0/endpoint/0?limit=19&marker=marker", request.getUrl().toString()); - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"entries\":[]}"; - } - }; - } - }); - - assertFalse(iterator.hasNext()); - } - - /** - * Unit test for {@link BoxResourceIterable.IteratorImpl#next()}. - */ - @Test - public void testIteratorIteratesThruEntriesCorrectly() { - final String value1 = "1"; - final String value2 = "2"; - final String value3 = "3"; - final URLTemplate urlTemplate = new URLTemplate("endpoint/%s"); - final int limit = 19; - - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(new RequestInterceptor() { - @Override - public BoxAPIResponse onRequest(BoxAPIRequest request) { - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"entries\":[{\"field\": \"1\"}, {\"field\": \"2\"}], \"next_marker\": \"marker\"}"; - } - }; - } - }); - - Iterator iterator = new BoxResourceIterable(api, urlTemplate.build(api.getBaseURL(), "0"), - limit) { - @Override - protected String factory(JsonObject jsonObject) { - return jsonObject.get("field").asString(); - } - } - .iterator(); - - assertTrue(iterator.hasNext()); - String field = iterator.next(); - assertEquals(value1, field); - assertTrue(iterator.hasNext()); - field = iterator.next(); - assertEquals(value2, field); - - api.setRequestInterceptor(new RequestInterceptor() { - @Override - public BoxAPIResponse onRequest(BoxAPIRequest request) { - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"entries\":[{\"field\": \"3\"}]}"; - } - }; - } - }); - - assertTrue(iterator.hasNext()); - field = iterator.next(); - assertEquals(value3, field); - assertFalse(iterator.hasNext()); - } -} diff --git a/src/test/java/com/box/sdk/BoxResourceTest.java b/src/test/java/com/box/sdk/BoxResourceTest.java deleted file mode 100644 index fb04b98ac..000000000 --- a/src/test/java/com/box/sdk/BoxResourceTest.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.box.sdk; - -import com.eclipsesource.json.JsonObject; -import java.util.HashMap; -import java.util.Map; -import org.junit.Assert; -import org.junit.Test; - -/** - * A {@link BoxResource} related unit tests. - */ -public class BoxResourceTest { - - /** - * {@link BoxResourceType} by {@link BoxResource} {@link Class}. - */ - private final Map, String> resourceTypeByClass; - - /** - * Constructor. - */ - public BoxResourceTest() { - Map, String> resourceTypeByClass = new HashMap<>(); - resourceTypeByClass.put(BoxFolder.class, "folder"); - resourceTypeByClass.put(BoxFile.class, "file"); - resourceTypeByClass.put(BoxComment.class, "comment"); - resourceTypeByClass.put(BoxCollaboration.class, "collaboration"); - resourceTypeByClass.put(BoxTask.class, "task"); - resourceTypeByClass.put(BoxTaskAssignment.class, "task_assignment"); - resourceTypeByClass.put(BoxUser.class, "user"); - resourceTypeByClass.put(BoxGroup.class, "group"); - resourceTypeByClass.put(BoxGroupMembership.class, "group_membership"); - resourceTypeByClass.put(BoxEvent.class, "event"); - resourceTypeByClass.put(BoxWebHook.class, "webhook"); - this.resourceTypeByClass = resourceTypeByClass; - } - - /** - * Unit tests for {@link BoxResource#getResourceType(Class)}. - */ - @Test - public void testGetType() { - for (Map.Entry, String> resourceTypeByClassEntry - : this.resourceTypeByClass.entrySet()) { - Assert.assertEquals( - resourceTypeByClassEntry.getValue(), - BoxResource.getResourceType(resourceTypeByClassEntry.getKey()) - ); - } - } - - /** - * Unit tests for {@link BoxResource#getResourceType(Class)} / Illegal resource type (e.g.: abstract). - */ - @Test(expected = IllegalArgumentException.class) - public void testGetTypeUnknown() { - BoxResource.getResourceType(BoxResource.class); - } - - /** - * Unit tests for {@link BoxResource#parseInfo(BoxAPIConnection, JsonObject)}. - */ - @Test - public void testParseInfo() { - for (Map.Entry, String> resourceTypeByClassEntry - : this.resourceTypeByClass.entrySet()) { - - String type = resourceTypeByClassEntry.getValue(); - Class clazz = resourceTypeByClassEntry.getKey(); - - if (BoxEvent.class.isAssignableFrom(clazz)) { - continue; - } - - JsonObject jsonObject = new JsonObject(); - jsonObject.set("type", type); - jsonObject.set("id", "id"); - - BoxResource.Info resource = BoxResource.parseInfo(null, jsonObject); - Assert.assertNotNull(String.format("Resource Info for '%s' type can not be null!", type), resource); - Assert.assertEquals(type, BoxResource.getResourceType(resource.getResource().getClass())); - } - } - -} diff --git a/src/test/java/com/box/sdk/BoxRetentionPolicyAssignmentTest.java b/src/test/java/com/box/sdk/BoxRetentionPolicyAssignmentTest.java deleted file mode 100644 index f4a2a098b..000000000 --- a/src/test/java/com/box/sdk/BoxRetentionPolicyAssignmentTest.java +++ /dev/null @@ -1,354 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.junit.Assert.assertEquals; - -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.util.Iterator; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -/** - * {@link BoxRetentionPolicyAssignment} related unit tests. - */ -public class BoxRetentionPolicyAssignmentTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void testGetPolicyAssignmentForEnterpriseSucceeds() { - final String assignmentID = "12345"; - final String policyID = "1111"; - final String getAssignmentsURL = "/2.0/retention_policies/" + policyID + "/assignments"; - - String result = TestUtils.getFixture("BoxRetentionPolicy/GetRetentionPolicyAssignment200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(getAssignmentsURL)) - .withQueryParam("type", WireMock.containing("enterprise")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxRetentionPolicy policy = new BoxRetentionPolicy(this.api, policyID); - Iterator enterpriseAssignments = - policy.getEnterpriseAssignments().iterator(); - - BoxRetentionPolicyAssignment.Info assignmentInfo = enterpriseAssignments.next(); - - assertEquals(assignmentID, assignmentInfo.getID()); - } - - @Test - public void testGetPolicyAssignmentForFolderSucceeds() { - final String assignmentID = "12345"; - final String policyID = "1111"; - final String getAssignmentsURL = "/2.0/retention_policies/" + policyID + "/assignments"; - - String result = TestUtils.getFixture("BoxRetentionPolicy/GetRetentionPolicyAssignment200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(getAssignmentsURL)) - .withQueryParam("type", WireMock.containing("folder")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxRetentionPolicy policy = new BoxRetentionPolicy(this.api, policyID); - Iterator folderAssignments = - policy.getFolderAssignments().iterator(); - - BoxRetentionPolicyAssignment.Info assignmentInfo = folderAssignments.next(); - - assertEquals(assignmentID, assignmentInfo.getID()); - } - - @Test - public void testGetAllPolicyAssignmentsSucceeds() { - final String policyID = "1111"; - final String getAssignmentsURL = "/2.0/retention_policies/" + policyID + "/assignments"; - final String firstAssignmentID = "12345"; - final String secondAssignmentID = "42342"; - - String result = TestUtils.getFixture("BoxRetentionPolicy/GetAllRetentionPolicyAssignments200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(getAssignmentsURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxRetentionPolicy policy = new BoxRetentionPolicy(this.api, policyID); - Iterator assignments = - policy.getEnterpriseAssignments().iterator(); - - - BoxRetentionPolicyAssignment.Info firstAssignmentInfo = assignments.next(); - - assertEquals(firstAssignmentID, firstAssignmentInfo.getID()); - - BoxRetentionPolicyAssignment.Info secondAssignmentInfo = assignments.next(); - - assertEquals(secondAssignmentID, secondAssignmentInfo.getID()); - } - - @Test - public void testCreateRetentionPolicyAssignmentSucceedsAndSendsCorrectJson() { - final String assignmentID = "12345"; - final String assignmentURL = "/2.0/retention_policy_assignments"; - final String policyID = "1111"; - final String policyName = "A Retention Policy"; - final String assignedByLogin = "test@user.com"; - final String startDateField = "upload_date"; - - JsonObject assignToObject = new JsonObject() - .add("type", "enterprise"); - - JsonObject assignmentObject = new JsonObject() - .add("policy_id", policyID) - .add("assign_to", assignToObject); - - String result = TestUtils.getFixture("BoxRetentionPolicy/CreateRetentionPolicyAssignmentForEnterprise201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(assignmentURL)) - .withRequestBody(WireMock.equalToJson(assignmentObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxRetentionPolicy policy = new BoxRetentionPolicy(this.api, policyID); - BoxRetentionPolicyAssignment.Info enterpriseAssignmentInfo = policy.assignToEnterprise(); - - assertEquals(assignmentID, enterpriseAssignmentInfo.getID()); - assertEquals(policyName, enterpriseAssignmentInfo.getRetentionPolicy().getPolicyName()); - assertEquals(assignedByLogin, enterpriseAssignmentInfo.getAssignedBy().getLogin()); - assertEquals(startDateField, enterpriseAssignmentInfo.getStartDateField()); - } - - @Test - public void testCreateRetentionPolicyAssignmentToMetadataTemplate() { - final String assignmentID = "12345"; - final String assignmentURL = "/2.0/retention_policy_assignments"; - final String policyID = "1111"; - final String metadataTemplateID = "c5c3a90a-7530-44c9-a47a-e522473a8d06"; - final String metadataTemplateDateFieldId = "68144df9-597b-4ccb-b1ca-b981eaa321c4"; - - JsonObject assignToObject = new JsonObject() - .add("type", "metadata_template") - .add("id", metadataTemplateID); - - JsonObject assignmentObject = new JsonObject() - .add("policy_id", policyID) - .add("assign_to", assignToObject) - .add("start_date_field", metadataTemplateDateFieldId); - - String result = TestUtils.getFixture( - "BoxRetentionPolicy/CreateRetentionPolicyAssignmentForMetadataTemplate201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(assignmentURL)) - .withRequestBody(WireMock.equalToJson(assignmentObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxRetentionPolicy policy = new BoxRetentionPolicy(this.api, policyID); - BoxRetentionPolicyAssignment.Info enterpriseAssignmentInfo = policy.assignToMetadataTemplate( - metadataTemplateID, metadataTemplateDateFieldId); - - assertEquals(assignmentID, enterpriseAssignmentInfo.getID()); - assertEquals(policyID, enterpriseAssignmentInfo.getRetentionPolicy().getID()); - assertEquals(metadataTemplateID, enterpriseAssignmentInfo.getAssignedToID()); - assertEquals(metadataTemplateDateFieldId, enterpriseAssignmentInfo.getStartDateField()); - } - - @Test - public void testCreateRetentionPolicyAssignmentToMetadataTemplateWithoutStartDateField() { - final String assignmentID = "12345"; - final String assignmentURL = "/2.0/retention_policy_assignments"; - final String policyID = "1111"; - final String metadataTemplateID = "c5c3a90a-7530-44c9-a47a-e522473a8d06"; - - JsonObject assignToObject = new JsonObject() - .add("type", "metadata_template") - .add("id", metadataTemplateID); - - JsonObject assignmentObject = new JsonObject() - .add("policy_id", policyID) - .add("assign_to", assignToObject); - - String result = TestUtils.getFixture( - "BoxRetentionPolicy/CreateRetentionPolicyAssignmentForMetadataTemplateWithoutStartDateField201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(assignmentURL)) - .withRequestBody(WireMock.equalToJson(assignmentObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxRetentionPolicy policy = new BoxRetentionPolicy(this.api, policyID); - BoxRetentionPolicyAssignment.Info enterpriseAssignmentInfo - = policy.assignToMetadataTemplate(metadataTemplateID); - - assertEquals(assignmentID, enterpriseAssignmentInfo.getID()); - assertEquals(policyID, enterpriseAssignmentInfo.getRetentionPolicy().getID()); - assertEquals(metadataTemplateID, enterpriseAssignmentInfo.getAssignedToID()); - assertEquals("upload_date", enterpriseAssignmentInfo.getStartDateField()); - } - - @Test - public void testGetRetentionPolicyAssignmentInfoSucceeds() { - final String assignmentID = "12345"; - String assignmentURL = "/2.0/retention_policy_assignments/" + assignmentID; - final String retentionPolicyID = "1111"; - final String assignedByLogin = "test@user.com"; - final String startDateField = "upload_date"; - - String result = TestUtils.getFixture("BoxRetentionPolicy/GetRetentionPolicyAssignmentInfo200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(assignmentURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxRetentionPolicyAssignment assignment = new BoxRetentionPolicyAssignment(this.api, assignmentID); - BoxRetentionPolicyAssignment.Info assignmentInfo = assignment.getInfo("assigned_to"); - - assertEquals(assignmentID, assignmentInfo.getID()); - assertEquals(retentionPolicyID, assignmentInfo.getRetentionPolicy().getID()); - assertEquals(assignedByLogin, assignmentInfo.getAssignedBy().getLogin()); - assertEquals(startDateField, assignmentInfo.getStartDateField()); - } - - @Test - public void testGetAllFileVersionRetentionsSucceeds() { - String versionRetentionURL = "/2.0/file_version_retentions"; - final String firstRetentionID = "12345"; - final String secondRetentionID = "32442"; - - String result = TestUtils.getFixture("BoxRetentionPolicy/GetAllFileVersionRetentions200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(versionRetentionURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFileVersionRetention.QueryFilter filter = new BoxFileVersionRetention.QueryFilter(); - Iterator retentions - = BoxFileVersionRetention.getRetentions(this.api, filter, "file", "applied_at").iterator(); - - BoxFileVersionRetention.Info firstRetention = retentions.next(); - - assertEquals(firstRetentionID, firstRetention.getID()); - - BoxFileVersionRetention.Info secondRetention = retentions.next(); - - assertEquals(secondRetentionID, secondRetention.getID()); - } - - @Test - public void testGetFileRetentionInfoSucceeds() { - final String retentionID = "12345"; - final String versionRetentionURL = "/2.0/file_version_retentions/" + retentionID; - final String retentionPolicyID = "1111"; - final String retentionPolicyName = "test2"; - final String fileVersionID = "2222"; - - String result = TestUtils.getFixture("BoxRetentionPolicy/GetFileRetentionInfo200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(versionRetentionURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFileVersionRetention policy = new BoxFileVersionRetention(this.api, retentionID); - BoxFileVersionRetention.Info policyInfo = policy.getInfo(); - - assertEquals(retentionID, policyInfo.getID()); - assertEquals(retentionPolicyID, policyInfo.getWinningPolicy().getID()); - assertEquals(retentionPolicyName, policyInfo.getWinningPolicy().getPolicyName()); - assertEquals(fileVersionID, policyInfo.getFileVersion().getID()); - } - - @Test - public void testGetFilesUnderRetentionSucceeds() { - final String retentionAssignmentID = "12345"; - final String filesUnderRetentionURL = "/2.0/retention_policy_assignments/" - + retentionAssignmentID + "/files_under_retention"; - final String fileId = "12345"; - final String fileName = "Contract.pdf"; - final String fileVersionID = "123456"; - - String result = TestUtils.getFixture("BoxRetentionPolicy/GetFilesUnderRetention200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(filesUnderRetentionURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxRetentionPolicyAssignment retetionAssignment = - new BoxRetentionPolicyAssignment(this.api, retentionAssignmentID); - Iterator filesUnderRetention = retetionAssignment.getFilesUnderRetention().iterator(); - - BoxFile.Info firstFileUnderRetention = filesUnderRetention.next(); - - assertEquals(fileId, firstFileUnderRetention.getID()); - assertEquals(fileName, firstFileUnderRetention.getName()); - assertEquals(fileVersionID, firstFileUnderRetention.getVersion().getVersionID()); - } - - @Test - public void testGetFileVersionsUnderRetentionSucceeds() { - final String retentionAssignmentID = "12345"; - final String filesUnderRetentionURL = "/2.0/retention_policy_assignments/" - + retentionAssignmentID + "/file_versions_under_retention"; - final String fileId = "123456"; - final String fileName = "Contract.pdf"; - final String fileVersionID = "1234567"; - - String result = TestUtils.getFixture("BoxRetentionPolicy/GetFileVersionsUnderRetention200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(filesUnderRetentionURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxRetentionPolicyAssignment retetionAssignment = - new BoxRetentionPolicyAssignment(this.api, retentionAssignmentID); - Iterator fileVersionsUnderRetention = - retetionAssignment.getFileVersionsUnderRetention().iterator(); - - BoxFile.Info firstFileVersionUnderRetention = fileVersionsUnderRetention.next(); - - assertEquals(fileId, firstFileVersionUnderRetention.getID()); - assertEquals(fileId, firstFileVersionUnderRetention.getVersion().getFileID()); - assertEquals(fileName, firstFileVersionUnderRetention.getName()); - assertEquals(fileVersionID, firstFileVersionUnderRetention.getVersion().getVersionID()); - } - - @Test - public void testDeleteRetentionPolicyAssignmentSucceeds() { - final String retentionAssignmentID = "12345"; - final String retentionPolicyAssignmentURL = "/2.0/retention_policy_assignments/" + retentionAssignmentID; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(retentionPolicyAssignmentURL)) - .willReturn(WireMock.noContent() - .withStatus(204) - .withHeader("Content-Type", APPLICATION_JSON) - )); - - BoxRetentionPolicyAssignment retetionAssignment = - new BoxRetentionPolicyAssignment(this.api, retentionAssignmentID); - - retetionAssignment.delete(); - } -} diff --git a/src/test/java/com/box/sdk/BoxRetentionPolicyTest.java b/src/test/java/com/box/sdk/BoxRetentionPolicyTest.java deleted file mode 100644 index 01ad9f6a3..000000000 --- a/src/test/java/com/box/sdk/BoxRetentionPolicyTest.java +++ /dev/null @@ -1,164 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.util.Iterator; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -/** - * {@link BoxRetentionPolicy} related unit tests. - */ -public class BoxRetentionPolicyTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void testGetAllRetentionPoliciesSucceeds() { - final String getAllRetentionPoliciesURL = "/2.0/retention_policies"; - final String firstRetentionPolicyID = "12345"; - final String firstRetentionPolicyName = "A Retention Policy"; - final int firstRetentionPolicyLength = 30; - final String secondRetentionPolicyID = "32421"; - final String secondRetentionPolicyName = "A Retention Policy 2"; - final int secondRetentionPolicyLength = 1; - - String result = TestUtils.getFixture("BoxRetentionPolicy/GetAllRetentionPolicies200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(getAllRetentionPoliciesURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - Iterator policies = BoxRetentionPolicy.getAll(this.api).iterator(); - BoxRetentionPolicy.Info firstRetentionPolicy = policies.next(); - - assertEquals(firstRetentionPolicyID, firstRetentionPolicy.getID()); - assertEquals(firstRetentionPolicyName, firstRetentionPolicy.getPolicyName()); - assertEquals(firstRetentionPolicyLength, firstRetentionPolicy.getRetentionLength()); - - BoxRetentionPolicy.Info secondRetentionPolicy = policies.next(); - - assertEquals(secondRetentionPolicyID, secondRetentionPolicy.getID()); - assertEquals(secondRetentionPolicyName, secondRetentionPolicy.getPolicyName()); - assertEquals(secondRetentionPolicyLength, secondRetentionPolicy.getRetentionLength()); - } - - @Test - public void testGetRetentionPolicyInfoSucceeds() { - final String policyName = "A Retention Policy"; - final String policyStatus = "active"; - final String dispositionAction = "remove_retention"; - final String retentionPolicyID = "12345"; - final String getRetentionPolicyInfoURL = "/2.0/retention_policies/" + retentionPolicyID; - final String description = "description"; - final RetentionPolicyParams.RetentionType retentionType = RetentionPolicyParams.RetentionType.NON_MODIFIABLE; - - String result = TestUtils.getFixture("BoxRetentionPolicy/GetRetentionPolicyInfo200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(getRetentionPolicyInfoURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxRetentionPolicy policy = new BoxRetentionPolicy(this.api, retentionPolicyID); - BoxRetentionPolicy.Info policyInfo = policy.getInfo("policy_name", "status"); - - assertEquals(policyName, policyInfo.getPolicyName()); - assertEquals(policyStatus, policyInfo.getStatus()); - assertEquals(retentionPolicyID, policyInfo.getID()); - assertEquals(dispositionAction, policyInfo.getDispositionAction()); - assertEquals(description, policyInfo.getDescription()); - assertEquals(retentionType, policyInfo.getRetentionType()); - assertTrue(policyInfo.getAreOwnersNotified()); - assertTrue(policyInfo.getCanOwnerExtendRetention()); - } - - @Test - public void testCreateRetentionPolicySucceeds() { - final String policyID = "12345"; - final String policyName = "Test Retention Policy"; - final String policyType = "indefinite"; - final String dispositionAction = "remove_retention"; - final String createRetentionPolicyURL = "/2.0/retention_policies"; - final String createdByLogin = "test@user.com"; - final String policyStatus = "active"; - final String description = "description"; - final RetentionPolicyParams.RetentionType retentionType = RetentionPolicyParams.RetentionType.MODIFIABLE; - - String result = TestUtils.getFixture("BoxRetentionPolicy/CreateRetentionPolicy201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(createRetentionPolicyURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - RetentionPolicyParams optionalParams = new RetentionPolicyParams(); - optionalParams.setDescription(description); - optionalParams.setRetentionType(retentionType); - BoxRetentionPolicy.Info policyInfo = BoxRetentionPolicy.createIndefinitePolicy( - this.api, policyName, optionalParams - ); - - assertEquals(policyName, policyInfo.getPolicyName()); - assertEquals(policyType, policyInfo.getPolicyType()); - assertEquals(dispositionAction, policyInfo.getDispositionAction()); - assertEquals(createdByLogin, policyInfo.getCreatedBy().getLogin()); - assertEquals(policyID, policyInfo.getID()); - assertEquals(policyStatus, policyInfo.getStatus()); - assertEquals(description, policyInfo.getDescription()); - assertEquals(retentionType, policyInfo.getRetentionType()); - } - - @Test - public void testUpdateRetentionPolicyInfoSendsCorrectJson() { - final String policyID = "12345"; - final String updateRetentionPolicyURL = "/2.0/retention_policies/" + policyID; - final String updatedPolicyName = "New Policy Name"; - final String updatedPolicyStatus = "retired"; - final String updatedDescription = "updated description"; - final int updatedRetentionLength = 44; - final RetentionPolicyParams.RetentionType updatedRetentionType = - RetentionPolicyParams.RetentionType.NON_MODIFIABLE; - - JsonObject retentionPolicyObject = new JsonObject() - .add("policy_name", updatedPolicyName) - .add("status", updatedPolicyStatus) - .add("description", updatedDescription) - .add("retention_length", updatedRetentionLength) - .add("retention_type", updatedRetentionType.toJSONString()); - - String result = TestUtils.getFixture("BoxRetentionPolicy/UpdateRetentionPolicyInfo200"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(updateRetentionPolicyURL)) - .withRequestBody(WireMock.equalToJson(retentionPolicyObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxRetentionPolicy policy = new BoxRetentionPolicy(this.api, policyID); - BoxRetentionPolicy.Info policyInfo = policy.new Info(); - policyInfo.setPolicyName(updatedPolicyName); - policyInfo.setStatus(updatedPolicyStatus); - policyInfo.setDescription(updatedDescription); - policyInfo.setRetentionLength(updatedRetentionLength); - policyInfo.setRetentionTypeToNonModifiable(); - policy.updateInfo(policyInfo); - } -} diff --git a/src/test/java/com/box/sdk/BoxSearchParametersTest.java b/src/test/java/com/box/sdk/BoxSearchParametersTest.java deleted file mode 100644 index 912cb185f..000000000 --- a/src/test/java/com/box/sdk/BoxSearchParametersTest.java +++ /dev/null @@ -1,262 +0,0 @@ -package com.box.sdk; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.TimeZone; -import org.junit.Test; - -public class BoxSearchParametersTest { - @Test(expected = BoxAPIException.class) - public void searchWithoutQueryAndMetadataThrowsError() { - BoxSearchParameters searchParams = new BoxSearchParameters(); - searchParams.getQueryParameters(); - } - - @Test - public void shouldCorrectlySetAndGetQueryParam() { - final String query = "A Query"; - BoxSearchParameters searchParams = new BoxSearchParameters(); - searchParams.setQuery(query); - QueryStringBuilder queryParams = searchParams.getQueryParameters(); - - assertEquals("?query=A+Query", queryParams.toString()); - } - - @Test - public void shouldCorrectlySetAndGetFieldParam() { - final List fields = new ArrayList<>(); - fields.add("field1"); - fields.add("field2"); - BoxSearchParameters searchParams = new BoxSearchParameters(); - searchParams.setFields(fields); - searchParams.setQuery("query"); - QueryStringBuilder queryParams = searchParams.getQueryParameters(); - - assertEquals("?query=query&fields=field1%2Cfield2", queryParams.toString()); - } - - @Test - public void shouldCorrectlySetAndGetFileExtensionsParam() { - final List fields = new ArrayList<>(); - fields.add("pdf"); - fields.add("doc"); - BoxSearchParameters searchParams = new BoxSearchParameters(); - searchParams.setFileExtensions(fields); - searchParams.setQuery("query"); - QueryStringBuilder queryParams = searchParams.getQueryParameters(); - - assertEquals("?query=query&file_extensions=pdf%2Cdoc", queryParams.toString()); - } - - @Test - public void shouldCorrectlySetAndGetOwnerUserIdsParam() { - final List owners = new ArrayList<>(); - owners.add("123"); - owners.add("456"); - BoxSearchParameters searchParams = new BoxSearchParameters(); - searchParams.setOwnerUserIds(owners); - searchParams.setQuery("query"); - QueryStringBuilder queryParams = searchParams.getQueryParameters(); - - assertEquals("?query=query&owner_user_ids=123%2C456", queryParams.toString()); - } - - @Test - public void shouldCorrectlySetAndGetAncestorFolderIdsParam() { - final List folderIds = new ArrayList<>(); - folderIds.add("123"); - folderIds.add("456"); - BoxSearchParameters searchParams = new BoxSearchParameters(); - searchParams.setAncestorFolderIds(folderIds); - searchParams.setQuery("query"); - QueryStringBuilder queryParams = searchParams.getQueryParameters(); - - assertEquals("?query=query&ancestor_folder_ids=123%2C456", queryParams.toString()); - } - - @Test - public void shouldCorrectlySetAndGetContentTypesParam() { - final List contentTypes = new ArrayList<>(); - contentTypes.add("description"); - contentTypes.add("file_content"); - BoxSearchParameters searchParams = new BoxSearchParameters(); - searchParams.setContentTypes(contentTypes); - searchParams.setQuery("query"); - QueryStringBuilder queryParams = searchParams.getQueryParameters(); - - assertEquals("?query=query&content_types=description%2Cfile_content", queryParams.toString()); - } - - @Test - public void shouldCorrectlyHandleSettingAndGettingEmptyContentTypesParam() { - final List contentTypes = new ArrayList<>(); - BoxSearchParameters searchParams = new BoxSearchParameters(); - searchParams.setContentTypes(contentTypes); - searchParams.setQuery("query"); - QueryStringBuilder queryParams = searchParams.getQueryParameters(); - - assertEquals("?query=query", queryParams.toString()); - } - - @Test - public void shouldCorrectlySetAndGetScopeParam() { - BoxSearchParameters searchParams = new BoxSearchParameters(); - searchParams.setScope("enterprise"); - searchParams.setQuery("query"); - QueryStringBuilder queryParams = searchParams.getQueryParameters(); - - assertEquals("?query=query&scope=enterprise", queryParams.toString()); - } - - @Test - public void shouldCorrectlySetAndGetTypeParam() { - BoxSearchParameters searchParams = new BoxSearchParameters(); - searchParams.setType("file"); - searchParams.setQuery("query"); - QueryStringBuilder queryParams = searchParams.getQueryParameters(); - - assertEquals("?query=query&type=file", queryParams.toString()); - } - - @Test - public void shouldCorrectlySetAndGetTrashContentParam() { - BoxSearchParameters searchParams = new BoxSearchParameters(); - searchParams.setTrashContent("trashed_only"); - searchParams.setQuery("query"); - QueryStringBuilder queryParams = searchParams.getQueryParameters(); - - assertEquals("?query=query&trash_content=trashed_only", queryParams.toString()); - } - - @Test - public void shouldCorrectlySetAndGetCreatedRangeParam() { - BoxSearchParameters searchParams = new BoxSearchParameters(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX"); - sdf.setTimeZone(TimeZone.getTimeZone("UTC")); - String createdFromDateString = "2016-01-01T00:00:00Z"; - String createdToDateString = "2016-04-01T00:00:00Z"; - - try { - Date createdFromDate = sdf.parse(createdFromDateString); - Date createdToDate = sdf.parse(createdToDateString); - DateRange createdRange = new DateRange(createdFromDate, createdToDate); - searchParams.setCreatedRange(createdRange); - } catch (ParseException e) { /* no op */ } - - searchParams.setQuery("query"); - QueryStringBuilder queryParams = searchParams.getQueryParameters(); - - assertEquals( - "?query=query&created_at_range=2016-01-01T00%3A00%3A00Z%2C2016-04-01T00%3A00%3A00Z", - queryParams.toString() - ); - } - - @Test - public void shouldCorrectlySetAndGetUpdatedRangeParam() { - BoxSearchParameters searchParams = new BoxSearchParameters(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX"); - sdf.setTimeZone(TimeZone.getTimeZone("UTC")); - String updatedFromDateString = "2016-01-01T00:00:00Z"; - String updatedToDateString = "2016-04-01T00:00:00Z"; - - try { - Date updatedFromDate = sdf.parse(updatedFromDateString); - Date updatedToDate = sdf.parse(updatedToDateString); - DateRange updatedRange = new DateRange(updatedFromDate, updatedToDate); - searchParams.setUpdatedRange(updatedRange); - } catch (ParseException e) { /* no op */ } - - searchParams.setQuery("query"); - QueryStringBuilder queryParams = searchParams.getQueryParameters(); - - assertEquals( - "?query=query&updated_at_range=2016-01-01T00%3A00%3A00Z%2C2016-04-01T00%3A00%3A00Z", - queryParams.toString() - ); - } - - @Test - public void shouldCorrectlySetAndGetMetadataFilterParam() { - BoxSearchParameters searchParams = new BoxSearchParameters(); - BoxMetadataFilter metadataFilter = new BoxMetadataFilter(); - metadataFilter.setScope("enterprise"); - metadataFilter.setTemplateKey("test"); - - SizeRange sizeRange = new SizeRange(12, 19); - metadataFilter.addNumberRangeFilter("testnumber", sizeRange); - - metadataFilter.addFilter("test", "example"); - - searchParams.setMetadataFilter(metadataFilter); - - QueryStringBuilder queryParams = searchParams.getQueryParameters(); - - assertEquals( - "?mdfilters=%5B%7B%22templateKey%22%3A%22test%22%2C%22scope%22%3A%22enterprise" - + "%22%2C%22filters%22%3A%7B%22testnumber%22%3A%7B%22gt%22%3A12%2C%22lt" - + "%22%3A19%7D%2C%22test%22%3A%22example%22%7D%7D%5D", - queryParams.toString() - ); - } - - @Test - public void shouldCorrectlySetSortAndDirection() { - String modifiedAt = "modified_at"; - String direction = "DESC"; - BoxSearchParameters searchParams = new BoxSearchParameters(); - searchParams.setQuery("Test Query"); - searchParams.setSort(modifiedAt); - searchParams.setDirection(direction); - - QueryStringBuilder queryParams = searchParams.getQueryParameters(); - - assertEquals(modifiedAt, searchParams.getSort()); - assertEquals(direction, searchParams.getDirection()); - assertEquals(queryParams.toString(), "?query=Test+Query&sort=modified_at&direction=DESC"); - - boolean isCleared = searchParams.clearParameters(); - assertTrue(isCleared); - assertNull(searchParams.getSort()); - } - - @Test - public void shouldCorrectlySetAndGetDeleterUserIdsAndDeletedRange() { - BoxSearchParameters searchParams = new BoxSearchParameters(); - searchParams.setQuery("Test Query"); - - searchParams.setTrashContent("trashed_only"); - - List deleterUserIds = new ArrayList<>(); - deleterUserIds.add("123"); - deleterUserIds.add("456"); - searchParams.setDeleterUserIds(deleterUserIds); - - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX"); - sdf.setTimeZone(TimeZone.getTimeZone("UTC")); - String deletedFromDateString = "2016-01-01T00:00:00Z"; - String deletedToDateString = "2016-04-01T00:00:00Z"; - - try { - Date deletedFromDate = sdf.parse(deletedFromDateString); - Date deletedToDate = sdf.parse(deletedToDateString); - DateRange deletedRange = new DateRange(deletedFromDate, deletedToDate); - searchParams.setDeletedRange(deletedRange); - } catch (ParseException e) { /* no op */ } - - QueryStringBuilder queryParams = searchParams.getQueryParameters(); - - assertEquals( - "?query=Test+Query&trash_content=trashed_only&deleter_user_ids=123%2C456" - + "&deleted_range=2016-01-01T00%3A00%3A00Z%2C2016-04-01T00%3A00%3A00Z", - queryParams.toString() - ); - } -} diff --git a/src/test/java/com/box/sdk/BoxSearchTest.java b/src/test/java/com/box/sdk/BoxSearchTest.java deleted file mode 100644 index f71e97bec..000000000 --- a/src/test/java/com/box/sdk/BoxSearchTest.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.get; -import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; -import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.is; - -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.util.Iterator; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -public class BoxSearchTest { - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void searchWithQueryRequestsCorrectFields() { - String query = "A query"; - - stubFor(get(urlPathEqualTo("/2.0/search")) - .withQueryParam("query", WireMock.equalTo(query)) - .withQueryParam("limit", WireMock.equalTo("10")) - .withQueryParam("offset", WireMock.equalTo("10")) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody("{\"total_count\": 1, \"offset\": 10, \"limit\": 10, \"entries\":" - + "[{\"type\": \"file\", \"id\": \"0\"}]}"))); - - BoxSearch boxSearch = new BoxSearch(api); - BoxSearchParameters searchParams = new BoxSearchParameters(); - - searchParams.setQuery(query); - - PartialCollection searchResults = boxSearch.searchRange(10, 10, searchParams); - - assertThat(searchResults.size(), is(1)); - } - - @Test - public void searchWithMetadataRequestsCorrectFiltersAndFields() { - - final String filters = "[{\"templateKey\":\"test\",\"scope\":\"enterprise\"," - + "\"filters\":{\"number\":{\"gt\":12,\"lt\":19},\"test\":\"example\"}}]"; - - stubFor(get(urlPathEqualTo("/2.0/search")) - .withQueryParam("type", WireMock.equalTo("file")) - .withQueryParam("mdfilters", WireMock.equalTo(filters)) - .withQueryParam("limit", WireMock.equalTo("10")) - .withQueryParam("offset", WireMock.equalTo("10")) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody("{\"total_count\": 1, \"offset\": 10, \"limit\": 10, \"entries\":" - + "[{\"type\": \"file\", \"id\": \"0\"}]}"))); - - BoxSearch boxSearch = new BoxSearch(api); - BoxSearchParameters searchParams = new BoxSearchParameters(); - - searchParams.setType("file"); - BoxMetadataFilter metadataFilter = new BoxMetadataFilter(); - metadataFilter.setScope("enterprise"); - metadataFilter.setTemplateKey("test"); - SizeRange sizeRange = new SizeRange(12, 19); - metadataFilter.addNumberRangeFilter("number", sizeRange); - metadataFilter.addFilter("test", "example"); - searchParams.setMetadataFilter(metadataFilter); - - PartialCollection searchResults = boxSearch.searchRange(10, 10, searchParams); - - assertThat(searchResults.size(), is(1)); - } - - @Test - public void searchIncludeSharedLinksRequestsCorrectFields() { - String query = "A query"; - - String result = TestUtils.getFixture("BoxSearch/GetSearchItemsIncludingSharedLinks200"); - - stubFor(get(urlPathEqualTo("/2.0/search")) - .withQueryParam("query", WireMock.equalTo(query)) - .withQueryParam("include_recent_shared_links", WireMock.equalTo("true")) - .withQueryParam("limit", WireMock.equalTo("10")) - .withQueryParam("offset", WireMock.equalTo("10")) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxSearch boxSearch = new BoxSearch(api); - BoxSearchParameters searchParams = new BoxSearchParameters(); - - searchParams.setQuery(query); - - PartialCollection searchResults = boxSearch.searchRangeIncludeSharedLinks(10, - 10, searchParams); - Iterator searchResultsIterator = searchResults.iterator(); - BoxSearchSharedLink searchItem = searchResultsIterator.next(); - - assertThat(searchResults.size(), is(1)); - assertThat(searchItem.getType(), is("search_result")); - assertThat(searchItem.getItem().getID(), is("12345")); - assertThat(searchItem.getItem().getSharedLink().getURL(), - is("https://www.box.com/s/vspke7y05sb214wjokpk")); - assertThat(searchItem.getAccessibleViaSharedLink().toString(), - is("https://www.box.com/s/vspke7y05sb214wjokpk")); - } -} diff --git a/src/test/java/com/box/sdk/BoxSensitiveDataSanitizerTest.java b/src/test/java/com/box/sdk/BoxSensitiveDataSanitizerTest.java deleted file mode 100644 index 2b4bec7a7..000000000 --- a/src/test/java/com/box/sdk/BoxSensitiveDataSanitizerTest.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.box.sdk; - -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.is; - -import com.eclipsesource.json.JsonObject; -import java.util.HashMap; -import java.util.Map; -import okhttp3.Headers; -import org.junit.Test; - -public class BoxSensitiveDataSanitizerTest { - @Test - public void removeSensitiveDataFromHeaders() { - Map headersMap = new HashMap<>(); - headersMap.put("authorization", "token"); - headersMap.put("user-agent", "java-sdk"); - - Headers headers = Headers.of(headersMap); - Headers sanitizedHeaders = BoxSensitiveDataSanitizer.sanitizeHeaders(headers); - - assertThat(sanitizedHeaders.size(), is(2)); - assertThat(sanitizedHeaders.get("authorization"), is("[REDACTED]")); - assertThat(sanitizedHeaders.get("user-agent"), is("java-sdk")); - } - - @Test - public void removeAllHeadersWhenOnlySensitiveData() { - Map headersMap = new HashMap<>(); - headersMap.put("authorization", "token"); - headersMap.put("password", "123"); - - Headers headers = Headers.of(headersMap); - Headers sanitizedHeaders = BoxSensitiveDataSanitizer.sanitizeHeaders(headers); - - assertThat(sanitizedHeaders.size(), is(2)); - assertThat(sanitizedHeaders.get("authorization"), is("[REDACTED]")); - assertThat(sanitizedHeaders.get("password"), is("[REDACTED]")); - } - - @Test - public void removeSensitiveDataFromHeadersWhenUppercase() { - Map headersMap = new HashMap<>(); - headersMap.put("Authorization", "token"); - headersMap.put("user-agent", "java-sdk"); - - Headers headers = Headers.of(headersMap); - Headers sanitizedHeaders = BoxSensitiveDataSanitizer.sanitizeHeaders(headers); - - assertThat(sanitizedHeaders.size(), is(2)); - assertThat(sanitizedHeaders.get("Authorization"), is("[REDACTED]")); - assertThat(sanitizedHeaders.get("user-agent"), is("java-sdk")); - } - - @Test - public void headersNotRemovedWhenNoSensitiveData() { - Map headersMap = new HashMap<>(); - headersMap.put("accept", "application/json"); - headersMap.put("user-agent", "java-sdk"); - - Headers headers = Headers.of(headersMap); - Headers sanitizedHeaders = BoxSensitiveDataSanitizer.sanitizeHeaders(headers); - - assertThat(sanitizedHeaders.size(), is(2)); - assertThat(sanitizedHeaders.get("accept"), is("application/json")); - assertThat(sanitizedHeaders.get("user-agent"), is("java-sdk")); - } - - @Test - public void returnEmptyHeadersWhenEmptyHeadersPassed() { - Headers headers = Headers.of(new HashMap<>()); - Headers sanitizedHeaders = BoxSensitiveDataSanitizer.sanitizeHeaders(headers); - - assertThat(sanitizedHeaders.size(), is(0)); - } - - @Test - public void sanitizeAddedKeys() { - Map headersMap = new HashMap<>(); - headersMap.put("x-auth", "token"); - - Headers headers = Headers.of(headersMap); - BoxSensitiveDataSanitizer.addKeyToSanitize("x-auth"); - Headers sanitizedHeaders = BoxSensitiveDataSanitizer.sanitizeHeaders(headers); - - assertThat(sanitizedHeaders.size(), is(1)); - assertThat(sanitizedHeaders.get("x-auth"), is("[REDACTED]")); - } - - @Test - public void removeSensitiveDataFromJsonBody() { - JsonObject body = new JsonObject() - .add("authorization", "token") - .add("user-agent", "java-sdk"); - JsonObject sanitizedBody = BoxSensitiveDataSanitizer.sanitizeJsonBody(body); - - assertThat(sanitizedBody.get("authorization").asString(), is("[REDACATED]")); - assertThat(sanitizedBody.get("user-agent").asString(), is("java-sdk")); - } -} diff --git a/src/test/java/com/box/sdk/BoxSharedLinkTest.java b/src/test/java/com/box/sdk/BoxSharedLinkTest.java deleted file mode 100644 index aeb249af5..000000000 --- a/src/test/java/com/box/sdk/BoxSharedLinkTest.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.box.sdk; - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.assertThrows; - -import com.box.sdk.BoxSharedLink.Permissions; -import com.eclipsesource.json.JsonObject; -import org.junit.Test; - -public class BoxSharedLinkTest { - - @Test - public void vanityNameHasToBeAtLeast12CharactersLong() { - final BoxSharedLink link = new BoxSharedLink(); - assertThrows( - "The vanityName has to be at least 12 characters long.", - IllegalArgumentException.class, - () -> link.setVanityName("tooShort") - ); - } - - @Test - public void setsNewPermissions() { - BoxSharedLink link = new BoxSharedLink(); - - link.setPermissions(permissions(true, false)); - - assertThat(link.getPermissions(), is(this.permissions(true, false))); - JsonObject pendingChanges = link.getPendingChangesAsJsonObject(); - JsonObject changesToPermissions = pendingChanges.get("permissions").asObject(); - assertThat(changesToPermissions.get("can_download").asBoolean(), is(true)); - assertThat(changesToPermissions.get("can_preview").asBoolean(), is(false)); - } - - @Test - public void doNotStorePendingChangeWhenPermissionsNotChanged() { - BoxSharedLink link = new BoxSharedLink(); - link.setPermissions(permissions(true, false)); - link.removeChildObject("permissions"); - - link.setPermissions(this.permissions(true, false)); - - assertThat(link.getPermissions(), is(permissions(true, false))); - assertThat(link.getPendingChangesAsJsonObject().toString(), is("{}")); - } - - @Test - public void storePendingChangeWhenPermissionsChanged() { - BoxSharedLink link = new BoxSharedLink(); - link.setPermissions(permissions(true, false)); - link.removeChildObject("permissions"); - - link.setPermissions(this.permissions(false, false)); - - assertThat(link.getPermissions(), is(permissions(false, false))); - JsonObject pendingChanges = link.getPendingChangesAsJsonObject(); - JsonObject changesToPermissions = pendingChanges.get("permissions").asObject(); - assertThat(changesToPermissions.get("can_download").asBoolean(), is(false)); - assertThat(changesToPermissions.get("can_preview").asBoolean(), is(false)); - } - - private Permissions permissions(boolean canDownload, boolean canPreview) { - Permissions permissions = new Permissions(); - permissions.setCanDownload(canDownload); - permissions.setCanPreview(canPreview); - return permissions; - } -} diff --git a/src/test/java/com/box/sdk/BoxSignRequestTest.java b/src/test/java/com/box/sdk/BoxSignRequestTest.java deleted file mode 100644 index 3107fb6fc..000000000 --- a/src/test/java/com/box/sdk/BoxSignRequestTest.java +++ /dev/null @@ -1,247 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.client.WireMock.postRequestedFor; -import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.junit.Assert.assertEquals; - -import com.box.sdk.BoxSignRequestSigner.BoxSignRequestInputContentType; -import com.box.sdk.BoxSignRequestSigner.BoxSignerInput; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -/** - * {@link BoxSignRequest} related unit tests. - */ -public class BoxSignRequestTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void createSignRequestSucceeds() { - final String fileId = "12345"; - final String fileName = "Contract.pdf"; - final String signerEmail = "example@gmail.com"; - final String signRequestId = "12345"; - final BoxSignRequestInputContentType contentType = BoxSignRequestInputContentType.Checkbox; - final String templateId = "93153068-5420-467b-b8ef-aaaaaaaaaaa"; - - final String prepareUrl = "https://prepareurl.com"; - final String redirectUrl = "https://box.com/redirect_url"; - final String declinedRedirectUrl = "https://box.com/declined_redirect_url"; - final String iframeableEmedUrl = "https://app.box.com/embed/sign/document/gfhr4222-a331-494b-808b-79bc7f3992a3/f14d7098-a331-494b-808b-79bc7f3992a4"; - - final String signerRedirectUrl = "https://box.com/redirect_url_signer_1"; - final String signerDeclinedRedirectUrl = "https://box.com/declined_redirect_url_signer_1"; - final Boolean signerLoginRequired = true; - final String signerPassword = "password"; - final Boolean signerSuppressNotifications = true; - final String signerVerficationPhoneNumber = "1234567890"; - - String result = TestUtils.getFixture("BoxSignRequest/CreateSignRequest200"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo("/2.0/sign_requests")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - List files = new ArrayList<>(); - BoxSignRequestFile file = new BoxSignRequestFile("12345"); - files.add(file); - - List signers = new ArrayList<>(); - BoxSignRequestSigner newSigner = new BoxSignRequestSigner("signer@mail.com"); - newSigner.setEmbedUrlExternalUserId("1234"); - newSigner.setLoginRequired(signerLoginRequired); - newSigner.setPassword(signerPassword); - newSigner.setSuppressNotifications(signerSuppressNotifications); - newSigner.setVerificationPhoneNumber(signerVerficationPhoneNumber); - signers.add(newSigner); - - String parentFolderId = "55555"; - - BoxSignRequestCreateParams params = new BoxSignRequestCreateParams(); - params.setTemplateId(templateId); - params.setPrefillTags(Collections.singletonList(new BoxSignRequestPrefillTag("id", "text"))); - BoxSignRequest.Info signRequestInfo = BoxSignRequest.createSignRequest(this.api, files, - signers, parentFolderId, params); - - BoxFile.Info fileInfo = signRequestInfo.getSourceFiles().get(0); - BoxSignRequestSigner signer = signRequestInfo.getSigners().get(0); - BoxSignerInput input = signer.getInputs().get(0); - assertEquals(signerRedirectUrl, signer.getRedirectUrl()); - assertEquals(iframeableEmedUrl, signer.getIframeableEmedUrl()); - assertEquals(signerDeclinedRedirectUrl, signer.getDeclinedRedirectUrl()); - assertEquals(signerLoginRequired, signer.getLoginRequired()); - assertEquals(signerSuppressNotifications, signer.getSuppressNotifications()); - assertEquals(signerVerficationPhoneNumber, signer.getVerificationPhoneNumber()); - - assertEquals(prepareUrl, signRequestInfo.getPrepareUrl()); - assertEquals(redirectUrl, signRequestInfo.getRedirectUrl()); - assertEquals(declinedRedirectUrl, signRequestInfo.getDeclinedRedirectUrl()); - assertEquals(fileId, fileInfo.getID()); - assertEquals(fileName, fileInfo.getName()); - assertEquals(signerEmail, signer.getEmail()); - assertEquals(signRequestId, signRequestInfo.getID()); - assertEquals(contentType, input.getContentType()); - assertEquals(templateId, signRequestInfo.getTemplateId()); - - } - - @Test - public void getSignRequestInfoSucceeds() { - final String fileId = "12345"; - final String fileName = "Contract.pdf"; - final String signerEmail = "example@gmail.com"; - final String signRequestId = "12345"; - BoxSignRequestInputContentType contentType = BoxSignRequestInputContentType.Checkbox; - - final String prepareUrl = "https://prepareurl.com"; - final String redirectUrl = "https://box.com/redirect_url"; - final String declinedRedirectUrl = "https://box.com/declined_redirect_url"; - final String iframeableEmedUrl = "https://app.box.com/embed/sign/document/gfhr4222-a331-494b-808b-79bc7f3992a3/f14d7098-a331-494b-808b-79bc7f3992a4"; - - final String signerRedirectUrl = "https://box.com/redirect_url_signer_1"; - final String signerDeclinedRedirectUrl = "https://box.com/declined_redirect_url_signer_1"; - final Boolean signerLoginRequired = true; - final Boolean signerSuppressNotifications = true; - final String signerVerficationPhoneNumber = "1234567890"; - final String signerDecisionAdditionalInfo = "Requesting changes before signing."; - - final String templateId = "93153068-5420-467b-b8ef-aaaaaaaaaaa"; - - final String requestUrl = "/2.0/sign_requests/" + signRequestId; - - String result = TestUtils.getFixture("BoxSignRequest/GetSignRequest200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(requestUrl)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxSignRequest signRequest = new BoxSignRequest(this.api, signRequestId); - BoxSignRequest.Info signRequestInfo = signRequest.getInfo(); - - BoxFile.Info fileInfo = signRequestInfo.getSourceFiles().get(0); - BoxSignRequestSigner signer = signRequestInfo.getSigners().get(0); - BoxSignerInput input = signer.getInputs().get(0); - assertEquals(signerRedirectUrl, signer.getRedirectUrl()); - assertEquals(signerDeclinedRedirectUrl, signer.getDeclinedRedirectUrl()); - assertEquals(iframeableEmedUrl, signer.getIframeableEmedUrl()); - assertEquals(signerLoginRequired, signer.getLoginRequired()); - assertEquals(signerSuppressNotifications, signer.getSuppressNotifications()); - assertEquals(signerVerficationPhoneNumber, signer.getVerificationPhoneNumber()); - assertEquals(signerDecisionAdditionalInfo, signer.getSignerDecision().getAdditionalInfo()); - - assertEquals(prepareUrl, signRequestInfo.getPrepareUrl()); - assertEquals(redirectUrl, signRequestInfo.getRedirectUrl()); - assertEquals(declinedRedirectUrl, signRequestInfo.getDeclinedRedirectUrl()); - assertEquals(fileId, fileInfo.getID()); - assertEquals(fileName, fileInfo.getName()); - assertEquals(signerEmail, signer.getEmail()); - assertEquals(signRequestId, signRequestInfo.getID()); - assertEquals(contentType, input.getContentType()); - assertEquals(templateId, signRequestInfo.getTemplateId()); - } - - @Test - public void getAllSignRequestsSucceeds() { - final String fileId = "12345"; - final String fileName = "Contract.pdf"; - final String signerEmail = "example@gmail.com"; - final String signRequestId = "12345"; - final BoxSignRequestInputContentType contentType = BoxSignRequestInputContentType.Checkbox; - - final String prepareUrl = "https://prepareurl.com"; - final String redirectUrl = "https://box.com/redirect_url"; - final String declinedRedirectUrl = "https://box.com/declined_redirect_url"; - final String iframeableEmedUrl = "https://app.box.com/embed/sign/document/gfhr4222-a331-494b-808b-79bc7f3992a3/f14d7098-a331-494b-808b-79bc7f3992a4"; - - final String signerRedirectUrl = "https://box.com/redirect_url_signer_1"; - final String signerDeclinedRedirectUrl = "https://box.com/declined_redirect_url_signer_1"; - final String templateId = "93153068-5420-467b-b8ef-aaaaaaaaaaa"; - - final String requestUrl = "/2.0/sign_requests"; - - String result = TestUtils.getFixture("BoxSignRequest/GetAllSignRequests200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(requestUrl)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - Iterator signRequests = BoxSignRequest.getAll(this.api).iterator(); - BoxSignRequest.Info firstSignRequest = signRequests.next(); - - BoxFile.Info fileInfo = firstSignRequest.getSourceFiles().get(0); - BoxSignRequestSigner signer = firstSignRequest.getSigners().get(0); - BoxSignerInput input = signer.getInputs().get(0); - assertEquals(signerRedirectUrl, signer.getRedirectUrl()); - assertEquals(signerDeclinedRedirectUrl, signer.getDeclinedRedirectUrl()); - assertEquals(iframeableEmedUrl, signer.getIframeableEmedUrl()); - - assertEquals(prepareUrl, firstSignRequest.getPrepareUrl()); - assertEquals(redirectUrl, firstSignRequest.getRedirectUrl()); - assertEquals(declinedRedirectUrl, firstSignRequest.getDeclinedRedirectUrl()); - assertEquals(fileId, fileInfo.getID()); - assertEquals(fileName, fileInfo.getName()); - assertEquals(signerEmail, signer.getEmail()); - assertEquals(signRequestId, firstSignRequest.getID()); - assertEquals(contentType, input.getContentType()); - assertEquals(templateId, firstSignRequest.getTemplateId()); - } - - @Test - public void cancelSignRequestSucceeds() { - final String signRequestId = "12345"; - - final String requestUrl = "/2.0/sign_requests/" + signRequestId + "/cancel"; - - String result = TestUtils.getFixture("BoxSignRequest/CancelSignRequest200"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(requestUrl)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxSignRequest signRequest = new BoxSignRequest(this.api, signRequestId); - BoxSignRequest.Info signRequestInfo = signRequest.cancel(); - - assertEquals(BoxSignRequest.BoxSignRequestStatus.Cancelled, signRequestInfo.getStatus()); - } - - @Test - public void resendSignRequestSucceeds() { - final String signRequestId = "12345"; - - final String requestUrl = "/2.0/sign_requests/" + signRequestId + "/resend"; - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(requestUrl)) - .willReturn(WireMock.aResponse() - .withStatus(202))); - - BoxSignRequest signRequest = new BoxSignRequest(this.api, signRequestId); - - signRequest.resend(); - - WireMock.verify(1, postRequestedFor(urlPathEqualTo(requestUrl))); - } -} - diff --git a/src/test/java/com/box/sdk/BoxSignTemplateTest.java b/src/test/java/com/box/sdk/BoxSignTemplateTest.java deleted file mode 100644 index c7a003fc1..000000000 --- a/src/test/java/com/box/sdk/BoxSignTemplateTest.java +++ /dev/null @@ -1,124 +0,0 @@ -package com.box.sdk; - - -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.util.Iterator; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - - -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -public class BoxSignTemplateTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void getSignTemplateInfoSucceeds() { - final String templateId = "93153068-5420-467b-b8ef-aaaaaaaaaaa"; - final String name = "contract.pdf"; - final String parentFolderId = "1234567890"; - final String emailMessage = "Please sign this document.\n\nKind regards,\n\nSomeone"; - final String emailSubject = "Someone has requested your signature on a document"; - final String sourceFileId = "1234567890"; - final String sourceFileVersionId = "1234567890"; - final String signerEmail1 = "user1@mail.com"; - final String signerEmail2 = "user2@mail.com"; - final BoxSignTemplateSigner.BoxSignTemplateSignerInputType signerInputType = - BoxSignTemplateSigner.BoxSignTemplateSignerInputType.Signature; - final String signerInputDocumentId = "2fdf9003-d798-40ee-be7f-aaaaaaaaaaa"; - final BoxSignTemplateSigner.BoxSignTemplateSignerInputContentType signerInputContentType = - BoxSignTemplateSigner.BoxSignTemplateSignerInputContentType.Signature; - final String readySignLinkUrl = "https://app.box.com/sign/ready-sign-link/59917816-c12b-4ef6-8f1d-aaaaaaaaaaa"; - final String readySignLinkName = "contract.pdf"; - final String readySignLinkInstructions = "Hello"; - final String readySignLinkFolderId = "1234567890"; - final boolean readySignLinkIsNotificationDisabled = true; - final boolean readySignLinkIsActive = true; - final String customBrandingCompanyName = "Corporation inc."; - final String customBrandingLogoUri = - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA\nAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A\n" - + "8AAQUBAScY42YAAAAASUVORK5CYII="; - final String customBrandingColor = "9E5E6F"; - final String customBrandingEmailFooterText = "Contact email email@mail.com"; - final Integer daysValid = 0; - final int additionalInfoNonEditableLength = 0; - final int additionalInfoRequiredSignersLength = 2; - - final String requestUrl = "/2.0/sign_templates/" + templateId; - - String result = TestUtils.getFixture("BoxSignTemplate/GetSignTemplateInfo200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(requestUrl)).willReturn(WireMock.aResponse() - .withHeader("Content-Type", "application/json").withBody(result))); - - BoxSignTemplate template = new BoxSignTemplate(api, templateId); - BoxSignTemplate.Info info = template.getInfo(); - - assertEquals(templateId, info.getID()); - assertEquals(name, info.getName()); - assertEquals(parentFolderId, info.getParentFolder().getID()); - assertEquals(emailMessage, info.getEmailMessage()); - assertEquals(emailSubject, info.getEmailSubject()); - assertEquals(sourceFileId, info.getSourceFiles().get(0).getID()); - assertEquals(sourceFileVersionId, info.getSourceFiles().get(0).getVersion().getID()); - assertEquals(signerEmail1, info.getSigners().get(0).getEmail()); - assertEquals(signerEmail2, info.getSigners().get(1).getEmail()); - assertEquals(signerInputType, info.getSigners().get(1).getInputs().get(0).getType()); - assertEquals(signerInputDocumentId, info.getSigners().get(1).getInputs().get(0).getDocumentId()); - assertEquals(signerInputContentType, info.getSigners().get(1).getInputs().get(0).getContentType()); - assertEquals(readySignLinkUrl, info.getReadySignLink().getUrl()); - assertEquals(readySignLinkName, info.getReadySignLink().getName()); - assertEquals(readySignLinkInstructions, info.getReadySignLink().getInstructions()); - assertEquals(readySignLinkFolderId, info.getReadySignLink().getFolderID()); - assertEquals(readySignLinkIsNotificationDisabled, info.getReadySignLink().getIsNofiticationDisabled()); - assertEquals(readySignLinkIsActive, info.getReadySignLink().getIsActive()); - assertEquals(customBrandingCompanyName, info.getCustomBranding().getCompanyName()); - assertEquals(customBrandingLogoUri, info.getCustomBranding().getLogoUri()); - assertEquals(customBrandingColor, info.getCustomBranding().getBrandingColor()); - assertEquals(customBrandingEmailFooterText, info.getCustomBranding().getEmailFooterText()); - assertEquals(daysValid, info.getDaysValid()); - assertEquals(additionalInfoNonEditableLength, info.getAdditionalInfo().getNonEditable().size()); - assertEquals(additionalInfoRequiredSignersLength, info.getAdditionalInfo().getRequired().getSigners().size()); - assertTrue(info.getAreFilesLocked()); - assertTrue(info.getAreFieldsLocked()); - assertTrue(info.getAreEmailSettingsLocked()); - assertFalse(info.getAreOptionsLocked()); - assertFalse(info.getAreRecipientsLocked()); - } - - @Test - public void getAllSignTemplatesSucceeds() { - final String templateId = "93153068-5420-467b-b8ef-aaaaaaaaaaa"; - final String name = "contract.pdf"; - final String parentFolderId = "1234567890"; - - final String requestUrl = "/2.0/sign_templates"; - String result = TestUtils.getFixture("BoxSignTemplate/GetAllSignTemplates200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(requestUrl)) - .willReturn(WireMock.aResponse().withHeader("Content-Type", "application/json") - .withBody(result))); - - Iterator iterator = BoxSignTemplate.getAll(api).iterator(); - BoxSignTemplate.Info info = iterator.next(); - - assertEquals(templateId, info.getID()); - assertEquals(name, info.getName()); - assertEquals(parentFolderId, info.getParentFolder().getID()); - } -} diff --git a/src/test/java/com/box/sdk/BoxStoragePolicyAssignmentTest.java b/src/test/java/com/box/sdk/BoxStoragePolicyAssignmentTest.java deleted file mode 100644 index 1e3980003..000000000 --- a/src/test/java/com/box/sdk/BoxStoragePolicyAssignmentTest.java +++ /dev/null @@ -1,244 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.delete; -import static com.github.tomakehurst.wiremock.client.WireMock.deleteRequestedFor; -import static com.github.tomakehurst.wiremock.client.WireMock.get; -import static com.github.tomakehurst.wiremock.client.WireMock.post; -import static com.github.tomakehurst.wiremock.client.WireMock.put; -import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; -import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; -import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; -import static com.github.tomakehurst.wiremock.client.WireMock.verify; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertEquals; - -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -/** - * {@link BoxStoragePolicyAssignment} related tests - */ -public class BoxStoragePolicyAssignmentTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void testCreateAssignmentParseAllFieldsCorrectly() { - - final String storagePolicyAssignmentID = "user_1111"; - final String storagePolicyAssignedToType = "user"; - final String storagePolicyAssignedToID = "5678"; - final String storagePolicyType = "storage_policy"; - final String storagePolicyID = "1234"; - - JsonObject assignedToObject = new JsonObject() - .add("type", storagePolicyAssignedToType) - .add("id", storagePolicyAssignedToID); - - JsonObject storagePolicyObject = new JsonObject() - .add("type", storagePolicyType) - .add("id", storagePolicyID); - - JsonObject mockJSON = new JsonObject() - .add("type", storagePolicyAssignedToType) - .add("id", storagePolicyAssignmentID) - .add("assigned_to", assignedToObject) - .add("storage_policy", storagePolicyObject); - - wireMockRule.stubFor(post(urlEqualTo("/2.0/storage_policy_assignments")) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(mockJSON.toString()))); - - BoxStoragePolicyAssignment.Info assignmentInfo = - BoxStoragePolicyAssignment.create(this.api, storagePolicyID, storagePolicyAssignedToID); - assertThat(assignmentInfo.getID(), is(equalTo(mockJSON.get("id").asString()))); - assertThat(assignmentInfo.getStoragePolicyID(), - is(equalTo(mockJSON.get("storage_policy").asObject().get("id").asString()))); - assertThat(assignmentInfo.getAssignedToType(), - is(equalTo(mockJSON.get("assigned_to").asObject().get("type").asString()))); - } - - @Test - public void testGetStorageAssignmentInfoParseAllFieldsCorrectly() { - final String assignmentID = "12345"; - final String storagePolicyType = "storage_policy"; - final String storagePolicyID = "11"; - final String assignedToType = "user"; - final String assignedToID = "22"; - - String result = TestUtils.getFixture("BoxStoragePolicy/Get_Storage_Policy_Assignments_200"); - - wireMockRule.stubFor(get(urlPathEqualTo("/2.0/storage_policy_assignments")) - .withQueryParam("resolved_for_id", WireMock.equalTo(assignedToID)) - .withQueryParam("resolved_for_type", WireMock.equalTo(assignedToType)) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxStoragePolicyAssignment.Info info = BoxStoragePolicyAssignment.getAssignmentForTarget(this.api, - assignedToType, assignedToID); - - assertEquals(assignmentID, info.getID()); - assertEquals(storagePolicyType, info.getStoragePolicyType()); - assertEquals(storagePolicyID, info.getStoragePolicyID()); - assertEquals(storagePolicyID, info.getStoragePolicyID()); - assertEquals(storagePolicyType, info.getStoragePolicyType()); - } - - @Test - public void testGetStorageAssignmentInfoWithIDParseAllFieldsCorrectly() { - final String assignmentType = "storage_policy_assignment"; - final String assignmentID = "user_1111"; - final String assignedToType = "user"; - final String assignedToID = "5678"; - final String storagePolicyID = "1234"; - final String storagePolicyType = "storage_policy"; - - JsonObject assignedToObject = new JsonObject() - .add("type", assignedToType) - .add("id", assignedToID); - - JsonObject storagePolicyObject = new JsonObject() - .add("type", storagePolicyType) - .add("id", storagePolicyID); - - JsonObject mockJSON = new JsonObject() - .add("type", assignmentType) - .add("id", assignmentID) - .add("assigned_to", assignedToObject) - .add("storage_policy", storagePolicyObject); - - wireMockRule.stubFor(get(urlEqualTo("/2.0/storage_policy_assignments/" + assignmentID)) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(mockJSON.toString()))); - - BoxStoragePolicyAssignment assignment = new BoxStoragePolicyAssignment(this.api, assignmentID); - BoxStoragePolicyAssignment.Info assignmentInfo = assignment.getInfo(); - assertThat(assignmentInfo.getID(), is(equalTo(mockJSON.get("id").asString()))); - assertThat(assignmentInfo.getStoragePolicyID(), - is(equalTo(mockJSON.get("storage_policy").asObject().get("id").asString()))); - assertThat(assignmentInfo.getAssignedToType(), - is(equalTo(mockJSON.get("assigned_to").asObject().get("type").asString()))); - } - - @Test - public void testDeleteStorageAssignmentSendsCorrectRequest() { - - final String assignmentID = "user_1111"; - final String assignmentURL = "/2.0/storage_policy_assignments/" + assignmentID; - - stubFor(delete(urlEqualTo(assignmentURL)).willReturn(aResponse().withStatus(204))); - - BoxStoragePolicyAssignment assignment = new BoxStoragePolicyAssignment(this.api, assignmentID); - assignment.delete(); - - verify(deleteRequestedFor(urlEqualTo(assignmentURL)).withRequestBody(WireMock.absent())); - } - - @Test - public void testUpdateStorageAssignmentInfoParseAllFieldsCorrectly() { - final String assignmentID = "user_1111"; - final String assignmentType = "storage_policy_assignment"; - final String assignedToType = "user"; - final String assignedToID = "7777"; - final String storagePolicyType = "storage_policy"; - final String storagePolicyID = "12345"; - - JsonObject assignedToObject = new JsonObject() - .add("type", assignedToType) - .add("id", assignedToID); - - JsonObject storagePolicyObject = new JsonObject() - .add("type", storagePolicyType) - .add("id", storagePolicyID); - - JsonObject mockJSON = new JsonObject() - .add("type", assignmentType) - .add("id", assignmentID) - .add("assigned_to", assignedToObject) - .add("storage_policy", storagePolicyObject); - - wireMockRule.stubFor(put(urlEqualTo("/2.0/storage_policy_assignments/" + assignmentID)) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(mockJSON.toString()))); - - BoxStoragePolicyAssignment storagePolicyAssignment = new BoxStoragePolicyAssignment(this.api, assignmentID); - BoxStoragePolicyAssignment.Info info = storagePolicyAssignment.new Info(); - info.setStoragePolicyID(storagePolicyID); - storagePolicyAssignment.updateInfo(info); - - assertThat(info.getID(), is(equalTo(mockJSON.get("id").asString()))); - assertThat(info.getStoragePolicyID(), - is(equalTo(mockJSON.get("storage_policy").asObject().get("id").asString()))); - } - - @Test - public void testAssignStorageAssignmentInfoParseAllFieldsCorrectly() { - final String assignedToType = "user"; - final String assignedToID = "22"; - final String storagePolicyID = "11"; - - String result = TestUtils.getFixture("BoxStoragePolicy/Get_Storage_Policy_Assignments_200"); - - wireMockRule.stubFor(get(urlPathEqualTo("/2.0/storage_policy_assignments")) - .withQueryParam("resolved_for_id", WireMock.equalTo(assignedToID)) - .withQueryParam("resolved_for_type", WireMock.equalTo(assignedToType)) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxStoragePolicyAssignment.Info assignmentInfo = - BoxStoragePolicyAssignment.assign(this.api, storagePolicyID, assignedToID); - - assertEquals(assignmentInfo.getStoragePolicyID(), storagePolicyID); - } - - @Test - public void testAssignStorageAssignmentInfoIsEnterpriseParseAllFieldsCorrectly() { - final String assignedToType = "enterprise"; - final String assignedToID = "22"; - final String storagePolicyID = "11"; - - String policyResult = TestUtils.getFixture("BoxStoragePolicy/Get_Storage_Policy_Assignments_200"); - - wireMockRule.stubFor(get(urlPathEqualTo("/2.0/storage_policy_assignments")) - .withQueryParam("resolved_for_id", WireMock.equalTo(assignedToID)) - .withQueryParam("resolved_for_type", WireMock.equalTo("user")) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(policyResult))); - - String assignResult = TestUtils.getFixture("BoxStoragePolicy/Get_Storage_Policy_Assignments_200"); - - wireMockRule.stubFor(post(urlPathEqualTo("/2.0/storage_policy_assignments")) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(assignResult))); - - BoxStoragePolicyAssignment.Info assignmentInfo = - BoxStoragePolicyAssignment.assign(this.api, storagePolicyID, assignedToID); - - assertEquals(assignedToType, assignmentInfo.getAssignedToType()); - } -} diff --git a/src/test/java/com/box/sdk/BoxStoragePolicyTest.java b/src/test/java/com/box/sdk/BoxStoragePolicyTest.java deleted file mode 100644 index e2506c89e..000000000 --- a/src/test/java/com/box/sdk/BoxStoragePolicyTest.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.get; -import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.junit.Assert.assertEquals; - -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.util.Iterator; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -/** - * {@link BoxStoragePolicy} related tests. - */ -public class BoxStoragePolicyTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void testGetInfoParseAllFieldsCorrectly() { - final String storagePolicyID = "11"; - final String storagePolicyName = "AWS Frankfurt / AWS Dublin with in region Uploads/Downloads/Previews"; - - String result = TestUtils.getFixture("BoxStoragePolicy/Get_A_Storage_Policy_200"); - - wireMockRule.stubFor(get(urlEqualTo("/2.0/storage_policies/" + storagePolicyID)) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxStoragePolicy storagePolicy = new BoxStoragePolicy(this.api, storagePolicyID); - BoxStoragePolicy.Info storagePolicyInfo = storagePolicy.getInfo(); - assertEquals(storagePolicyID, storagePolicyInfo.getID()); - assertEquals(storagePolicyName, storagePolicyInfo.getStoragePolicyName()); - } - - @Test - public void testGetStoragePoliciesParseAllFieldsCorrectly() { - final String firstStoragePolicyID = "11"; - final String firstStoragePolicyName = "AWS Montreal / AWS Dublin"; - final String secondStoragePolicyID = "22"; - final String secondStoragePolicyName = "AWS Frankfurt / AWS Dublin with in region Uploads/Downloads/Previews"; - - String result = TestUtils.getFixture("BoxStoragePolicy/Get_All_Storage_Policies_200"); - - wireMockRule.stubFor(get(urlEqualTo("/2.0/storage_policies?limit=100")) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - Iterator storagePolcies = BoxStoragePolicy.getAll(this.api).iterator(); - BoxStoragePolicy.Info firstStoragePolicyInfo = storagePolcies.next(); - assertEquals(firstStoragePolicyID, firstStoragePolicyInfo.getID()); - assertEquals(firstStoragePolicyName, firstStoragePolicyInfo.getStoragePolicyName()); - - BoxStoragePolicy.Info secondStoragePolicyInfo = storagePolcies.next(); - assertEquals(secondStoragePolicyID, secondStoragePolicyInfo.getID()); - assertEquals(secondStoragePolicyName, secondStoragePolicyInfo.getStoragePolicyName()); - } -} diff --git a/src/test/java/com/box/sdk/BoxTaskAssignmentTest.java b/src/test/java/com/box/sdk/BoxTaskAssignmentTest.java deleted file mode 100644 index 73765bd0e..000000000 --- a/src/test/java/com/box/sdk/BoxTaskAssignmentTest.java +++ /dev/null @@ -1,223 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; - -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.util.Iterator; -import java.util.List; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - - -/** - * {@link BoxTaskAssignment} related tests. - */ -public class BoxTaskAssignmentTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void testCreateTaskAssignmentOnUserSucceedsAndSendsCorrectJson() { - final String assignmentID = "12345"; - final String assignedToID = "33333"; - final String policyID = "11111"; - final String assignedByLogin = "testuser@example.com"; - final String taskAssignmentURL = "/2.0/task_assignments"; - - JsonObject taskObject = new JsonObject() - .add("type", "task") - .add("id", policyID); - - JsonObject assignedToObject = new JsonObject() - .add("id", assignedToID); - - JsonObject assignmentObject = new JsonObject() - .add("task", taskObject) - .add("assign_to", assignedToObject); - - String result = TestUtils.getFixture("BoxTask/CreateTaskAssignment201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(taskAssignmentURL)) - .withRequestBody(WireMock.equalToJson(assignmentObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxUser user = new BoxUser(this.api, assignedToID); - BoxTask task = new BoxTask(this.api, policyID); - BoxTaskAssignment.Info assignmentInfo = task.addAssignment(user); - - Assert.assertEquals(assignmentID, assignmentInfo.getID()); - Assert.assertEquals(assignedToID, assignmentInfo.getAssignedTo().getID()); - Assert.assertEquals(assignedByLogin, assignmentInfo.getAssignedBy().getLogin()); - } - - @Test - public void testGetTaskAssignmentInfoByIDSucceeds() { - final String assignmentID = "12345"; - final String fileID = "22222"; - final String assignedToID = "33333"; - final String assignedByID = "33333"; - final String status = "incomplete"; - final String assignmentURL = "/2.0/task_assignments/" + assignmentID; - - String result = TestUtils.getFixture("BoxTask/CreateTaskAssignment201"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(assignmentURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxTaskAssignment.Info assignmentInfo = new BoxTaskAssignment(this.api, assignmentID).getInfo(); - - Assert.assertEquals(assignmentID, assignmentInfo.getID()); - Assert.assertEquals(fileID, assignmentInfo.getItem().getID()); - Assert.assertEquals(assignedToID, assignmentInfo.getAssignedTo().getID()); - Assert.assertEquals(assignedByID, assignmentInfo.getAssignedBy().getID()); - Assert.assertEquals(status, assignmentInfo.getStatus()); - } - - @Test - public void testSetTaskOnTaskAssignmentSucceeds() { - final String assignmentID = "12345"; - final String assignmentURL = "/2.0/task_assignments/" + assignmentID; - final String status = "incomplete"; - JsonObject taskObject = new JsonObject() - .add("status", status); - - String result = TestUtils.getFixture("BoxTask/CreateTaskAssignment201"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(assignmentURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(assignmentURL)) - .withRequestBody(WireMock.equalToJson(taskObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxTaskAssignment assignment = new BoxTaskAssignment(this.api, assignmentID); - BoxTaskAssignment.Info assignmentInfo = assignment.getInfo(); - assignmentInfo.setStatus(status); - assignment.updateInfo(assignmentInfo); - - - Assert.assertEquals(status, assignment.getInfo().getStatus()); - } - - @Test - public void testGetTaskAssignmentsSucceeds() { - final String policyID = "11111"; - final String assignmentID = "12345"; - final String fileID = "22222"; - final String assignedToID = "33333"; - final String assignedToLogin = "testuser@example.com"; - final String assignmentURL = "/2.0/tasks/" + policyID + "/assignments"; - - String result = TestUtils.getFixture("BoxTask/GetAllTaskAssignments200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(assignmentURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxTask task = new BoxTask(this.api, policyID); - List assignmentList = task.getAssignments(); - - Assert.assertEquals(assignmentID, assignmentList.get(0).getID()); - Assert.assertEquals(fileID, assignmentList.get(0).getItem().getID()); - Assert.assertEquals(assignedToID, assignmentList.get(0).getAssignedTo().getID()); - Assert.assertEquals(assignedToLogin, assignmentList.get(0).getAssignedTo().getLogin()); - } - - @Test - public void testGetAllTaskAssignmentsSucceeds() { - final String policyID = "11111"; - final String assignmentID = "12345"; - final String fileID = "22222"; - final String assignmentURL = "/2.0/tasks/" + policyID + "/assignments"; - - String result = TestUtils.getFixture("BoxTask/GetAllTaskAssignments200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(assignmentURL)) - .withQueryParam("limit", WireMock.containing("100")) - .withQueryParam("offset", WireMock.containing("0")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxTask task = new BoxTask(this.api, policyID); - Iterator assignmentList = task.getAllAssignments().iterator(); - - BoxTaskAssignment.Info firstAssignment = assignmentList.next(); - - Assert.assertEquals(assignmentID, firstAssignment.getID()); - Assert.assertEquals(fileID, firstAssignment.getItem().getID()); - } - - @Test - public void testUpdateTaskAssignmentInfoSucceeds() { - final String assignmentID = "12345"; - final String assignedToID = "33333"; - final String assignedToLogin = "testuser@example.com"; - final String updatedMessage = "Looks good to me!"; - final BoxTaskAssignment.ResolutionState updatedState = BoxTaskAssignment.ResolutionState.COMPLETED; - final String assignmentURL = "/2.0/task_assignments/" + assignmentID; - - String getResult = TestUtils.getFixture("BoxTask/GetTaskAssignment200"); - - String result = TestUtils.getFixture("BoxTask/UpdateATaskAssignmentInfo200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(assignmentURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(getResult))); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(assignmentURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxTaskAssignment taskAssignment = new BoxTaskAssignment(this.api, assignmentID); - BoxTaskAssignment.Info info = taskAssignment.getInfo(); - info.setResolutionState(updatedState); - info.setMessage(updatedMessage); - taskAssignment.updateInfo(info); - - Assert.assertEquals(assignmentID, info.getID()); - Assert.assertEquals(assignedToID, info.getAssignedTo().getID()); - Assert.assertEquals(assignedToLogin, info.getAssignedTo().getLogin()); - Assert.assertEquals(updatedMessage, info.getMessage()); - Assert.assertEquals(BoxTaskAssignment.ResolutionState.COMPLETED, info.getResolutionState()); - } - - @Test - public void testDeleteTaskAssignmentSucceeds() { - final String assignmentID = "12345"; - final String assignmentURL = "/2.0/task_assignments/" + assignmentID; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(assignmentURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(204))); - - BoxTaskAssignment taskAssignment = new BoxTaskAssignment(this.api, assignmentID); - taskAssignment.delete(); - } -} diff --git a/src/test/java/com/box/sdk/BoxTaskTest.java b/src/test/java/com/box/sdk/BoxTaskTest.java deleted file mode 100644 index 874c7403a..000000000 --- a/src/test/java/com/box/sdk/BoxTaskTest.java +++ /dev/null @@ -1,205 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.junit.Assert.assertEquals; - -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.util.Date; -import java.util.List; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -/** - * {@link BoxTask} related unit tests. - */ -public class BoxTaskTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void testCreateTaskSucceeds() { - final String taskID = "12345"; - final String fileID = "1111"; - final String taskURL = "/2.0/tasks"; - final String taskMessage = "Please Review"; - final String createdByLogin = "test@user.com"; - Date dueAt = new Date(); - - String result = TestUtils.getFixture("BoxTask/CreateTaskOnFile201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(taskURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFile file = new BoxFile(this.api, fileID); - BoxTask.Info taskInfo = file.addTask(BoxTask.Action.REVIEW, taskMessage, dueAt, - BoxTask.CompletionRule.ALL_ASSIGNEES); - - assertEquals(taskID, taskInfo.getID()); - assertEquals(fileID, taskInfo.getItem().getID()); - assertEquals(taskMessage, taskInfo.getMessage()); - assertEquals("all_assignees", taskInfo.getCompletionRule()); - assertEquals(createdByLogin, taskInfo.getCreatedBy().getLogin()); - } - - @Test - public void testGetATaskOnFileSucceeds() { - final String taskID = "12345"; - final String fileID = "1111"; - final String fileName = "Sample.pdf"; - final String message = "Please Review"; - final String createdByID = "2222"; - final String createdByLogin = "test@user.com"; - final String taskURL = "/2.0/tasks/" + taskID; - - String result = TestUtils.getFixture("BoxTask/GetATaskOnFile200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(taskURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxTask task = new BoxTask(this.api, taskID); - BoxTask.Info info = task.getInfo(); - - assertEquals(taskID, info.getID()); - assertEquals(fileID, info.getItem().getID()); - assertEquals(fileName, info.getItem().getName()); - assertEquals(message, info.getMessage()); - assertEquals(createdByID, info.getCreatedBy().getID()); - assertEquals(createdByLogin, info.getCreatedBy().getLogin()); - } - - @Test - public void testGetAllTasksOnFileSucceeds() { - final String taskID = "12345"; - final String fileID = "1111"; - final String fileName = "Sample.pdf"; - final String taskURL = "/2.0/files/" + fileID + "/tasks"; - - String result = TestUtils.getFixture("BoxTask/GetAllTasksOnFile200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(taskURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFile file = new BoxFile(this.api, fileID); - List tasks = file.getTasks(); - - assertEquals(taskID, tasks.get(0).getID()); - assertEquals(fileID, tasks.get(0).getItem().getID()); - assertEquals(fileName, tasks.get(0).getItem().getName()); - } - - @Test - public void testCreateTaskWithActionCompleteSucceeds() { - final String fileID = "1111"; - final String taskID = "12345"; - final String taskURL = "/2.0/tasks"; - final String taskMessage = "New Message"; - - JsonObject fileObject = new JsonObject() - .add("type", "file") - .add("id", "1111"); - - JsonObject object = new JsonObject() - .add("item", fileObject) - .add("action", "complete") - .add("message", taskMessage) - .add("completion_rule", "all_assignees"); - - String result = TestUtils.getFixture("BoxTask/CreateATaskWithActionComplete200"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(taskURL)) - .withRequestBody(WireMock.containing(object.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(201) - .withBody(result))); - - BoxFile file = new BoxFile(this.api, fileID); - BoxTask.Info taskInfo = file.addTask(BoxTask.Action.COMPLETE, taskMessage, null, - BoxTask.CompletionRule.ALL_ASSIGNEES); - - assertEquals(BoxTask.Action.COMPLETE.toString().toLowerCase(java.util.Locale.ROOT), taskInfo.getTaskType()); - assertEquals(fileID, taskInfo.getItem().getID()); - assertEquals(taskID, taskInfo.getID()); - assertEquals(taskMessage, taskInfo.getMessage()); - } - - @Test - public void testDeleteATaskSucceeds() { - final String taskID = "12345"; - final String taskURL = "/2.0/tasks/" + taskID; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(taskURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(204))); - - BoxTask task = new BoxTask(this.api, taskID); - task.delete(); - } - - @Test - public void testUpdateTaskInfoSucceedsAndSendsCorrectJson() { - final String taskID = "12345"; - final String fileID = "1111"; - final String taskMessage = "New Message"; - final String createdByLogin = "test@user.com"; - final String taskURL = "/2.0/tasks/" + taskID; - - String result = TestUtils.getFixture("BoxTask/UpdateATaskInfo200"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(taskURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxTask task = new BoxTask(this.api, taskID); - BoxTask.Info info = task.new Info(); - info.setMessage(taskMessage); - info.setCompletionRule(BoxTask.CompletionRule.ALL_ASSIGNEES); - task.updateInfo(info); - - assertEquals(taskID, info.getID()); - assertEquals(fileID, info.getItem().getID()); - assertEquals(taskMessage, info.getMessage()); - assertEquals("all_assignees", info.getCompletionRule()); - assertEquals(createdByLogin, info.getCreatedBy().getLogin()); - } - - @Test - public void addTaskParsesCorrectly() { - final String taskID = "12345"; - final String taskURL = "/2.0/tasks/" + taskID; - - String result = TestUtils.getFixture("BoxTask/GetTaskInfo200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(taskURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxTask task = new BoxTask(this.api, taskID); - BoxTask.Info taskInfo = task.getInfo(); - - assertEquals("review_random_string", taskInfo.getTaskType()); - assertEquals("Please Review", taskInfo.getMessage()); - } -} diff --git a/src/test/java/com/box/sdk/BoxTermsOfServiceTest.java b/src/test/java/com/box/sdk/BoxTermsOfServiceTest.java deleted file mode 100644 index b9e60d994..000000000 --- a/src/test/java/com/box/sdk/BoxTermsOfServiceTest.java +++ /dev/null @@ -1,127 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.junit.Assert.assertEquals; - -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.util.Arrays; -import java.util.List; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; - -public class BoxTermsOfServiceTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void testGetAllTermsOfServicesSucceeds() { - final String tosURL = "/2.0/terms_of_services"; - final String firstTosID = "12345"; - final String firstEnterpriseID = "1111"; - final String secondTosID = "42343"; - final String secondEnterpriseID = "2222"; - - String result = TestUtils.getFixture("BoxTermsOfService/GetAllTermsOfServices200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(tosURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - List termsOfServices = BoxTermsOfService.getAllTermsOfServices(this.api); - BoxTermsOfService.Info firstTermsOfService = termsOfServices.get(0); - - assertEquals(firstTosID, firstTermsOfService.getID()); - assertEquals(firstEnterpriseID, firstTermsOfService.getEnterprise().getID()); - - BoxTermsOfService.Info secondTermsOfService = termsOfServices.get(1); - - assertEquals(secondTosID, secondTermsOfService.getID()); - assertEquals(secondEnterpriseID, secondTermsOfService.getEnterprise().getID()); - } - - @Test - public void testGetATermsOfServiceInfoSucceeds() { - final String tosID = "12345"; - final String tosURL = "/2.0/terms_of_services/" + tosID; - final String enterpriseID = "1111"; - - String result = TestUtils.getFixture("BoxTermsOfService/GetATermsOfServiceInfo200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(tosURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxTermsOfService termsOfService = new BoxTermsOfService(this.api, tosID); - BoxTermsOfService.Info tosInfo = termsOfService.getInfo(); - - assertEquals(tosID, tosInfo.getID()); - assertEquals(enterpriseID, tosInfo.getEnterprise().getID()); - assertEquals(BoxTermsOfService.TermsOfServiceType.MANAGED, tosInfo.getTosType()); - } - - @RunWith(Parameterized.class) - public static class EnumValueCheckerTosType { - private final String inputString; - private final BoxTermsOfService.TermsOfServiceType expectedResult; - - public EnumValueCheckerTosType(String inputString, BoxTermsOfService.TermsOfServiceType expectedResult) { - this.inputString = inputString; - this.expectedResult = expectedResult; - } - - @Parameterized.Parameters - public static List enumValues() { - return Arrays.asList(new Object[][]{ - {"managed", BoxTermsOfService.TermsOfServiceType.MANAGED}, - {"external", BoxTermsOfService.TermsOfServiceType.EXTERNAL} - }); - } - - @Test - public void termsOfServiceTypeTest() { - assertEquals(this.expectedResult, - BoxTermsOfService.TermsOfServiceType.fromTosType(this.inputString)); - } - } - - @RunWith(Parameterized.class) - public static class EnumValueCheckerTosStatus { - private final String inputString; - private final BoxTermsOfService.TermsOfServiceStatus expectedResult; - - public EnumValueCheckerTosStatus(String inputString, BoxTermsOfService.TermsOfServiceStatus expectedResult) { - this.inputString = inputString; - this.expectedResult = expectedResult; - } - - @Parameterized.Parameters - public static List enumValues() { - return Arrays.asList(new Object[][]{ - {"enabled", BoxTermsOfService.TermsOfServiceStatus.ENABLED}, - {"disabled", BoxTermsOfService.TermsOfServiceStatus.DISABLED} - }); - } - - @Test - public void termsOfServiceStatusTest() { - assertEquals(this.expectedResult, - BoxTermsOfService.TermsOfServiceStatus.fromStatus(this.inputString)); - } - } -} diff --git a/src/test/java/com/box/sdk/BoxTermsOfServiceUserStatusTest.java b/src/test/java/com/box/sdk/BoxTermsOfServiceUserStatusTest.java deleted file mode 100644 index 4c13e5a97..000000000 --- a/src/test/java/com/box/sdk/BoxTermsOfServiceUserStatusTest.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; - -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.util.List; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -public class BoxTermsOfServiceUserStatusTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void testGetUserStatusInfoOnTermsOfServiceSucceeds() { - final String statusID = "5678"; - final String tosID = "1234"; - final String userID = "7777"; - final String userLogin = "test@example.com"; - final String statusURL = "/2.0/terms_of_service_user_statuses"; - - String result = TestUtils.getFixture("BoxTermsOfService/GetTermsOfServiceForUserStatuses200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(statusURL)) - .withQueryParam("tos_id", WireMock.containing(tosID)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - List tosUserStatusInfo = - BoxTermsOfServiceUserStatus.getInfo(this.api, tosID, userID); - - Assert.assertEquals(statusID, tosUserStatusInfo.get(0).getID()); - Assert.assertEquals(tosID, tosUserStatusInfo.get(0).getTermsOfService().getID()); - Assert.assertEquals(userID, tosUserStatusInfo.get(0).getUser().getID()); - Assert.assertEquals(userLogin, tosUserStatusInfo.get(0).getUser().getLogin()); - } -} diff --git a/src/test/java/com/box/sdk/BoxTransactionalAPIConnectionTest.java b/src/test/java/com/box/sdk/BoxTransactionalAPIConnectionTest.java deleted file mode 100644 index 454d1012c..000000000 --- a/src/test/java/com/box/sdk/BoxTransactionalAPIConnectionTest.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.box.sdk; - -import org.junit.Test; - -public class BoxTransactionalAPIConnectionTest { - @Test(expected = UnsupportedOperationException.class) - public void attemptingToAuthenticateATransactionalConnectionThrowsError() { - BoxTransactionalAPIConnection transactionalConnection = new BoxTransactionalAPIConnection("accessToken"); - transactionalConnection.authenticate("authCode"); - } - - @Test(expected = UnsupportedOperationException.class) - public void attemptingToRefreshATransactionalConnectionThrowsError() { - BoxTransactionalAPIConnection transactionalConnection = new BoxTransactionalAPIConnection("accessToken"); - transactionalConnection.refresh(); - } - - @Test(expected = UnsupportedOperationException.class) - public void attemptingToSetAutoRefreshOnTransactionalConnectionThrowsError() { - BoxTransactionalAPIConnection transactionalConnection = new BoxTransactionalAPIConnection("accessToken"); - transactionalConnection.setAutoRefresh(true); - } -} diff --git a/src/test/java/com/box/sdk/BoxTrashTest.java b/src/test/java/com/box/sdk/BoxTrashTest.java deleted file mode 100644 index ecff6a9dd..000000000 --- a/src/test/java/com/box/sdk/BoxTrashTest.java +++ /dev/null @@ -1,270 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThrows; - -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.util.Iterator; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -public class BoxTrashTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void testGetAllTrashedItemsSucceeds() { - final String trashURL = "/2.0/folders/trash/items/"; - final String firstTrashID = "12345"; - final String firstTrashName = "Test Folder"; - final String secondTrashID = "32343"; - final String secondTrashName = "File.pdf"; - - String result = TestUtils.getFixture("BoxTrash/GetAllTrashItems200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(trashURL)) - .withQueryParam("limit", WireMock.containing("1000")) - .withQueryParam("usemarker", WireMock.containing("true")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxTrash trash = new BoxTrash(this.api); - Iterator trashEntries = trash.iterator(); - BoxItem.Info firstTrashItem = trashEntries.next(); - - assertEquals(firstTrashID, firstTrashItem.getID()); - assertEquals(firstTrashName, firstTrashItem.getName()); - - BoxItem.Info secondTrashItem = trashEntries.next(); - - assertEquals(secondTrashID, secondTrashItem.getID()); - assertEquals(secondTrashName, secondTrashItem.getName()); - } - - @Test - public void testRestoreFolderFromTrashSucceeds() { - final String folderID = "12345"; - final String restoreFolderURL = "/2.0/folders/" + folderID; - final String folderName = "Test Folder"; - final String createdByName = "Test User"; - final String parentFolderName = "All Files"; - - String result = TestUtils.getFixture("BoxTrash/RestoreFolderItemFromTrash201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(restoreFolderURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxTrash trash = new BoxTrash(this.api); - BoxFolder.Info restoredFolder = trash.restoreFolder(folderID); - - assertEquals(folderID, restoredFolder.getID()); - assertEquals(folderName, restoredFolder.getName()); - assertEquals(createdByName, restoredFolder.getCreatedBy().getName()); - assertEquals(parentFolderName, restoredFolder.getParent().getName()); - } - - @Test - public void testRestoreFileFromTrashSucceeds() { - final String fileID = "12345"; - final String restoreFileURL = "/2.0/files/" + fileID; - final String fileName = "File.pdf"; - final String pathCollectionName = "All Files"; - final String createdByName = "Test User"; - final String parentFolderName = "Test Folder"; - - String result = TestUtils.getFixture("BoxTrash/RestoreFileItemFromTrash201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(restoreFileURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxTrash trash = new BoxTrash(this.api); - BoxFile.Info restoredFile = trash.restoreFile(fileID); - - assertEquals(fileID, restoredFile.getID()); - assertEquals(fileName, restoredFile.getName()); - assertEquals(pathCollectionName, restoredFile.getPathCollection().get(0).getName()); - assertEquals(createdByName, restoredFile.getCreatedBy().getName()); - assertEquals(parentFolderName, restoredFile.getParent().getName()); - } - - @Test - public void testGetTrashedFolderItemInfoSucceeds() { - final String folderID = "12345"; - final String trashURL = "/2.0/folders/" + folderID + "/trash"; - final String folderName = "Another retention test"; - final String createdByLogin = "test@user.com"; - final String modifiedByName = "Test User"; - final String ownedByID = "1111"; - - String result = TestUtils.getFixture("BoxTrash/GetTrashedFolderItemInfo200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(trashURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxTrash trash = new BoxTrash(this.api); - BoxFolder.Info folderInfo = trash.getFolderInfo(folderID); - - assertEquals(folderName, folderInfo.getName()); - assertEquals(createdByLogin, folderInfo.getCreatedBy().getLogin()); - assertEquals(modifiedByName, folderInfo.getModifiedBy().getName()); - assertEquals(ownedByID, folderInfo.getOwnedBy().getID()); - } - - @Test - public void testGetTrashedFileItemInfoSucceeds() { - final String fileID = "12345"; - final String trashURL = "/2.0/files/" + fileID + "/trash"; - final String folderName = "File.pdf"; - final String createdByLogin = "test@user.com"; - final String modifiedByName = "Test User"; - final String ownedByID = "1111"; - - String result = TestUtils.getFixture("BoxTrash/GetTrashedFileItemInfo200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(trashURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxTrash trash = new BoxTrash(this.api); - BoxFile.Info fileInfo = trash.getFileInfo(fileID); - - assertEquals(folderName, fileInfo.getName()); - assertEquals(createdByLogin, fileInfo.getCreatedBy().getLogin()); - assertEquals(modifiedByName, fileInfo.getModifiedBy().getName()); - assertEquals(ownedByID, fileInfo.getOwnedBy().getID()); - } - - @Test - public void testPermanentlyDeleteFolderFromTrash() { - final String folderID = "12345"; - final String deleteFolderURL = "/2.0/folders/" + folderID + "/trash"; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(deleteFolderURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(204))); - - BoxTrash trash = new BoxTrash(this.api); - trash.deleteFolder(folderID); - } - - @Test - public void testPermanentlyDeleteFileFromTrash() { - final String fileID = "12345"; - final String deleteFileURL = "/2.0/files/" + fileID + "/trash"; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(deleteFileURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(204))); - - BoxTrash trash = new BoxTrash(this.api); - trash.deleteFile(fileID); - } - - @Test - public void testGetAllTrashedItemsWithOrderAndOffsetAndLimit() { - final String trashURL = "/2.0/folders/trash/items/"; - final String firstTrashID = "12345"; - final String firstTrashName = "Test Folder"; - final String secondTrashID = "32343"; - final String secondTrashName = "File.pdf"; - - String result = TestUtils.getFixture("BoxTrash/GetAllTrashItems200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(trashURL)) - .withQueryParam("limit", WireMock.containing("500")) - .withQueryParam("offset", WireMock.containing("100")) - .withQueryParam("sort", WireMock.containing("name")) - .withQueryParam("direction", WireMock.containing("DESC")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxTrash trash = new BoxTrash(this.api); - Iterable trashEntries = trash.items( - SortParameters.descending("name"), - PagingParameters.offset(100, 500) - ); - Iterator iterator = trashEntries.iterator(); - BoxItem.Info firstTrashItem = iterator.next(); - - assertEquals(firstTrashID, firstTrashItem.getID()); - assertEquals(firstTrashName, firstTrashItem.getName()); - - BoxItem.Info secondTrashItem = iterator.next(); - - assertEquals(secondTrashID, secondTrashItem.getID()); - assertEquals(secondTrashName, secondTrashItem.getName()); - } - - @Test - public void testGetAllTrashedItemsWithStreamPositionAndLimit() { - final String trashURL = "/2.0/folders/trash/items/"; - final String firstTrashID = "12345"; - final String firstTrashName = "Test Folder"; - final String secondTrashID = "32343"; - final String secondTrashName = "File.pdf"; - - String result = TestUtils.getFixture("BoxTrash/GetAllTrashItemsUsingmarker200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(trashURL)) - .withQueryParam("limit", WireMock.equalTo("500")) - .withQueryParam("usemarker", WireMock.equalTo("true")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxTrash trash = new BoxTrash(this.api); - Iterable trashEntries = trash.items( - SortParameters.none(), - PagingParameters.marker(500) - ); - - Iterator iterator = trashEntries.iterator(); - BoxItem.Info firstTrashItem = iterator.next(); - - assertEquals(firstTrashID, firstTrashItem.getID()); - assertEquals(firstTrashName, firstTrashItem.getName()); - - BoxItem.Info secondTrashItem = iterator.next(); - - assertEquals(secondTrashID, secondTrashItem.getID()); - assertEquals(secondTrashName, secondTrashItem.getName()); - } - - @Test - public void testGetAllTrashedItemsFailsWithOrderAndStreamPosition() { - - BoxTrash trash = new BoxTrash(this.api); - assertThrows( - "Sorting is not supported when using marker based pagination.", - IllegalArgumentException.class, - () -> trash.items( - SortParameters.ascending("name"), - PagingParameters.marker(500) - ) - ); - } -} diff --git a/src/test/java/com/box/sdk/BoxURLTemplateTest.java b/src/test/java/com/box/sdk/BoxURLTemplateTest.java deleted file mode 100644 index bd1637545..000000000 --- a/src/test/java/com/box/sdk/BoxURLTemplateTest.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.box.sdk; - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.assertEquals; - -import java.net.URL; -import org.junit.Assert; -import org.junit.Test; - -/** - * Unit tests for {@link URLTemplate}. - */ -public class BoxURLTemplateTest { - public static final String BASE_URL = TestUtils.getAPIConnection().getBaseURL(); - - /** - * Unit test for {@link URLTemplate#build(String, Object...)} - */ - @Test - public void testBuildSucceeds() { - String param = "12345"; - URLTemplate template = new URLTemplate("test/%s"); - URL url = template.build(BASE_URL, param); - String expectedURL = BASE_URL + "test/" + param; - assertThat(url.toString(), is(expectedURL)); - } - - /** - * Unit test for {@link URLTemplate#build(String, Object...)} - */ - @Test - public void testBuildFails() { - URLTemplate template = new URLTemplate("test/%s"); - try { - template.build(BASE_URL, "123dfest"); - } catch (BoxAPIException e) { - assertEquals("An invalid path parameter passed in. It must be numeric.", e.getMessage()); - return; - } - Assert.fail("Never threw a BoxAPIException"); - } - - /** - * Unit test for {@link URLTemplate#buildAlpha(String, Object...)} - */ - @Test - public void testBuildAlphaSucceeds() { - String param = "$123-45_67"; - URLTemplate template = new URLTemplate("test/%s"); - URL url = template.buildAlpha(BASE_URL, param); - String expectedURL = BASE_URL + "test/" + param; - assertThat(url.toString(), is(expectedURL)); - } - - /** - * Unit test for {@link URLTemplate#buildAlpha(String, Object...)} - */ - @Test - public void testBuildAlphaFails() { - URLTemplate template = new URLTemplate("test/%s"); - try { - template.buildAlpha(BASE_URL, "1234.45/43/5"); - } catch (BoxAPIException e) { - assertEquals("An invalid path parameter passed in. It must be alphanumeric.", e.getMessage()); - return; - } - Assert.fail("Never threw a BoxAPIException"); - } -} diff --git a/src/test/java/com/box/sdk/BoxUserTest.java b/src/test/java/com/box/sdk/BoxUserTest.java deleted file mode 100644 index cc133a1d2..000000000 --- a/src/test/java/com/box/sdk/BoxUserTest.java +++ /dev/null @@ -1,701 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BinaryBodyUtils.writeStreamTo; -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; - -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import com.github.tomakehurst.wiremock.matching.ContainsPattern; -import com.github.tomakehurst.wiremock.matching.EqualToPattern; -import com.github.tomakehurst.wiremock.matching.MultipartValuePatternBuilder; -import com.github.tomakehurst.wiremock.stubbing.Scenario; -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.io.UnsupportedEncodingException; -import java.net.URL; -import java.net.URLDecoder; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.Collection; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Locale; -import java.util.Map; -import org.hamcrest.CoreMatchers; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -/** - * {@link BoxUser} related tests. - */ - -public class BoxUserTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void testGetAvatar() throws IOException { - final String expectedURL = "/2.0/users/12345/avatar"; - File file = new File("src/test/Fixtures/BoxUser/small_avatar.png"); - byte[] fileByteArray = Files.readAllBytes(file.toPath()); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(expectedURL)) - .willReturn(WireMock.aResponse() - .withStatus(200) - .withHeader("Content-Type", "image/png") - .withBody(fileByteArray))); - - BoxUser user = new BoxUser(this.api, "12345"); - ByteArrayOutputStream output = new ByteArrayOutputStream(); - InputStream avatarStream = user.getAvatar(); - writeStreamTo(avatarStream, output); - assertArrayEquals(fileByteArray, output.toByteArray()); - } - - @Test - public void downloadAvatar() throws IOException { - final String expectedURL = "/2.0/users/12345/avatar"; - File file = new File("src/test/Fixtures/BoxUser/small_avatar.png"); - byte[] fileByteArray = Files.readAllBytes(file.toPath()); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(expectedURL)) - .willReturn(WireMock.aResponse() - .withStatus(200) - .withHeader("Content-Type", "image/png") - .withBody(fileByteArray))); - - BoxUser user = new BoxUser(this.api, "12345"); - ByteArrayOutputStream output = new ByteArrayOutputStream(); - user.downloadAvatar(output); - assertArrayEquals(fileByteArray, output.toByteArray()); - } - - private void getCurrentUserTest() { - final String userURL = "/2.0/users/me"; - final String userInfoURL = "/2.0/users/12345"; - final String userName = "Test User"; - final String userLogin = "test@user.com"; - final String userphoneNumber = "1111111111"; - - String result = TestUtils.getFixture("BoxUser/GetCurrentUserInfo200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(userURL)) - .willReturn(WireMock.okForContentType(APPLICATION_JSON, result))); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(userInfoURL)) - .willReturn(WireMock.okForContentType(APPLICATION_JSON, result))); - - BoxUser user = BoxUser.getCurrentUser(this.api); - BoxUser.Info info = user.getInfo(); - - assertEquals(userName, info.getName()); - assertEquals(userLogin, info.getLogin()); - assertEquals(userphoneNumber, info.getPhone()); - } - - @Test - public void testGetCurrentUserInfoSucceeds() { - getCurrentUserTest(); - } - - @Test - public void testGetCurrentUserInfoOnNonUsLocaleSucceeds() { - Locale.setDefault(new Locale("tr", "TR")); - getCurrentUserTest(); - } - - @Test - public void testGetUserInfoByIDSucceeds() { - final String userID = "12345"; - final String userURL = "/2.0/users/" + userID; - final String userName = "Test User"; - final String userLogin = "test@user.com"; - final String userPhoneNumber = "1111111111"; - final String notificationEmail = "notifications@example.com"; - - String result = TestUtils.getFixture("BoxUser/GetCurrentUserInfo200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(userURL)) - .willReturn(WireMock.okForContentType(APPLICATION_JSON, result))); - - BoxUser user = new BoxUser(this.api, userID); - BoxUser.Info userInfo = user.getInfo(); - - assertEquals(userID, userInfo.getID()); - assertEquals(userName, userInfo.getName()); - assertEquals(userLogin, userInfo.getLogin()); - assertEquals(userPhoneNumber, userInfo.getPhone()); - assertEquals(notificationEmail, userInfo.getNotificationEmail().getEmail()); - assertTrue(userInfo.getNotificationEmail().getIsConfirmed()); - } - - @Test - public void testGetUserInfoWithNoNotificationEmailByIDSucceeds() { - final String userID = "12345"; - final String userURL = "/2.0/users/" + userID; - final String userName = "Test User"; - final String userLogin = "test@user.com"; - final String userPhoneNumber = "1111111111"; - - String result = TestUtils.getFixture("BoxUser/GetCurrentUserInfoWithNoNotifcationEmail200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(userURL)) - .willReturn(WireMock.okForContentType(APPLICATION_JSON, result))); - - BoxUser user = new BoxUser(this.api, userID); - BoxUser.Info userInfo = user.getInfo(); - - assertEquals(userID, userInfo.getID()); - assertEquals(userName, userInfo.getName()); - assertEquals(userLogin, userInfo.getLogin()); - assertEquals(userPhoneNumber, userInfo.getPhone()); - assertNull(userInfo.getNotificationEmail()); - } - - @Test - public void testCreateAppUserSucceeds() { - final String userURL = "/2.0/users"; - final String userID = "12345"; - final String userName = "Java SDK App User"; - final String userLogin = "testuser@boxdevedition.com"; - - String result = TestUtils.getFixture("BoxUser/CreateAppUser201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(userURL)) - .willReturn(WireMock.okForContentType(APPLICATION_JSON, result))); - - BoxUser.Info createdUserInfo = BoxUser.createAppUser(this.api, userName); - - assertEquals(userID, createdUserInfo.getID()); - assertEquals(userName, createdUserInfo.getName()); - assertEquals(userLogin, createdUserInfo.getLogin()); - } - - @Test - public void testCreateAppUserSucceedsWithFields() { - final String userURL = "/2.0/users"; - final String userID = "12345"; - final String userName = "Java SDK App User"; - final String userLogin = "testuser@boxdevedition.com"; - - String result = TestUtils.getFixture("BoxUser/CreateAppUser201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(userURL)) - .withQueryParam("fields", WireMock.equalTo("name,login")) - .willReturn(WireMock.okForContentType(APPLICATION_JSON, result))); - - BoxUser.Info createdUserInfo = BoxUser.createAppUser(this.api, userName, "name", "login"); - - assertEquals(userID, createdUserInfo.getID()); - assertEquals(userName, createdUserInfo.getName()); - assertEquals(userLogin, createdUserInfo.getLogin()); - } - - @Test - public void testCreateManagedUserSucceeds() { - final String userURL = "/2.0/users"; - final String userID = "12345"; - final String userName = "Test Managed User"; - final String userLogin = "test@user.com"; - final String userTimeZone = "America/Los_Angeles"; - - String result = TestUtils.getFixture("BoxUser/CreateManagedUser201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(userURL)) - .willReturn(WireMock.okForContentType(APPLICATION_JSON, result))); - - BoxUser.Info createdUserInfo = BoxUser.createEnterpriseUser(this.api, userLogin, userName); - - assertEquals(userID, createdUserInfo.getID()); - assertEquals(userName, createdUserInfo.getName()); - assertEquals(userLogin, createdUserInfo.getLogin()); - assertEquals(userTimeZone, createdUserInfo.getTimezone()); - } - - @Test - public void testCreateManagedUserSucceedsWithFields() { - final String userURL = "/2.0/users"; - final String userID = "12345"; - final String userName = "Test Managed User"; - final String userLogin = "test@user.com"; - final String userTimeZone = "America/Los_Angeles"; - - String result = TestUtils.getFixture("BoxUser/CreateManagedUser201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(userURL)) - .withQueryParam("fields", WireMock.equalTo("name,login,timezone")) - .willReturn(WireMock.okForContentType(APPLICATION_JSON, result))); - - BoxUser.Info createdUserInfo = BoxUser.createEnterpriseUser( - this.api, userLogin, userName, "name", "login", "timezone" - ); - - assertEquals(userID, createdUserInfo.getID()); - assertEquals(userName, createdUserInfo.getName()); - assertEquals(userLogin, createdUserInfo.getLogin()); - assertEquals(userTimeZone, createdUserInfo.getTimezone()); - } - - @Test - public void testCreateManagedUserDoesNotIncludeNotdefinedOptionalFields() { - final String userURL = "/2.0/users"; - final String userName = "Test Managed User"; - final String userLogin = "test@user.com"; - final boolean isSyncEnabled = false; - - String result = TestUtils.getFixture("BoxUser/CreateManagedUser201"); - - JsonObject createBody = new JsonObject() - .add("name", userName) - .add("login", userLogin) - .add("is_sync_enabled", isSyncEnabled); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(userURL)) - .withRequestBody(WireMock.equalToJson(createBody.toString())) - .willReturn(WireMock.okForContentType(APPLICATION_JSON, result))); - - CreateUserParams optionalParams = new CreateUserParams(); - optionalParams.setIsSyncEnabled(isSyncEnabled); - BoxUser.createEnterpriseUser(this.api, userLogin, userName, optionalParams); - } - - @Test - public void testUpdateUserInfoSucceedsAndSendsCorrectJson() { - final String userID = "12345"; - final String userURL = "/2.0/users/" + userID; - final String userName = "New User Name"; - final String userLogin = "new@test.com"; - final String userJob = "Example Job"; - final String userPhone = "650-123-4567"; - - JsonObject userObject = new JsonObject() - .add("name", userName) - .add("login", userLogin) - .add("job_title", userJob) - .add("phone", userPhone); - - String result = TestUtils.getFixture("BoxUser/UpdateUserInfo200"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(userURL)) - .withRequestBody(WireMock.equalToJson(userObject.toString())) - .willReturn(WireMock.okForContentType(APPLICATION_JSON, result))); - - BoxUser user = new BoxUser(this.api, userID); - BoxUser.Info info = user.new Info(); - info.setName(userName); - info.setLogin(userLogin); - info.setJobTitle(userJob); - info.setPhone(userPhone); - user.updateInfo(info); - - assertEquals(userID, info.getID()); - assertEquals(userName, info.getName()); - assertEquals(userLogin, info.getLogin()); - assertEquals(userJob, info.getJobTitle()); - assertEquals(userPhone, info.getPhone()); - } - - @Test - public void testUpdateUserInfoSucceedsWithFields() { - final String userID = "12345"; - final String userURL = "/2.0/users/" + userID; - final String userName = "New User Name"; - final String userLogin = "new@test.com"; - final String userJob = "Example Job"; - final String userPhone = "650-123-4567"; - - JsonObject userObject = new JsonObject() - .add("name", userName) - .add("login", userLogin) - .add("job_title", userJob) - .add("phone", userPhone); - - String result = TestUtils.getFixture("BoxUser/UpdateUserInfo200"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(userURL)) - .withQueryParam("fields", WireMock.equalTo("name,login,job_title,phone")) - .withRequestBody(WireMock.equalToJson(userObject.toString())) - .willReturn(WireMock.okForContentType(APPLICATION_JSON, result))); - - BoxUser user = new BoxUser(this.api, userID); - BoxUser.Info info = user.new Info(); - info.setName(userName); - info.setLogin(userLogin); - info.setJobTitle(userJob); - info.setPhone(userPhone); - user.updateInfo(info, "name", "login", "job_title", "phone"); - - assertEquals(userID, info.getID()); - assertEquals(userName, info.getName()); - assertEquals(userLogin, info.getLogin()); - assertEquals(userJob, info.getJobTitle()); - assertEquals(userPhone, info.getPhone()); - } - - @Test - public void testDeleteUserWithParamsSucceeds() { - final String userID = "12345"; - final String userURL = "/2.0/users/" + userID; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(userURL)) - .withQueryParam("force", new EqualToPattern("false")) - .withQueryParam("notify", new EqualToPattern("false")) - .willReturn(WireMock.noContent())); - - BoxUser user = new BoxUser(this.api, userID); - user.delete(false, false); - } - - @Test - public void testDeleteUserSucceeds() { - final String userID = "12345"; - final String userURL = "/2.0/users/" + userID; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(userURL)) - // we expect no query params will be sent - .withQueryParams(new HashMap<>()) - .willReturn(WireMock.noContent())); - - BoxUser user = new BoxUser(this.api, userID); - user.delete(); - } - - @Test - public void testCreateEmailAliasSucceeds() { - final String userID = "12345"; - final String emailAliasURL = "/2.0/users/" + userID + "/email_aliases"; - final String emailAlias = "test@user.com"; - JsonObject emailAliasObject = new JsonObject() - .add("email", emailAlias); - - String result = TestUtils.getFixture("BoxUser/CreateEmailAlias201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(emailAliasURL)) - .withRequestBody(WireMock.equalToJson(emailAliasObject.toString())) - .willReturn(WireMock.okForContentType(APPLICATION_JSON, result))); - - BoxUser user = new BoxUser(this.api, userID); - EmailAlias alias = user.addEmailAlias(emailAlias); - - assertEquals(userID, alias.getID()); - assertTrue(alias.getIsConfirmed()); - assertEquals(emailAlias, alias.getEmail()); - } - - @Test - public void testGetEmailAliasSucceeds() { - final String userID = "12345"; - final String userEmail = "test@user.com"; - final String emailAliasURL = "/2.0/users/" + userID + "/email_aliases"; - - String result = TestUtils.getFixture("BoxUser/GetUserEmailAlias200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(emailAliasURL)) - .willReturn(WireMock.okForContentType(APPLICATION_JSON, result))); - - BoxUser user = new BoxUser(this.api, userID); - Collection emailAliases = user.getEmailAliases(); - - assertEquals(userID, emailAliases.iterator().next().getID()); - assertEquals(userEmail, emailAliases.iterator().next().getEmail()); - } - - @Test - public void testDeleteEmailAliasSucceeds() { - final String userID = "12345"; - final String aliasID = "12345"; - final String deleteAliasURL = "/2.0/users/" + userID + "/email_aliases/" + aliasID; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(deleteAliasURL)) - .willReturn(WireMock.noContent())); - - BoxUser user = new BoxUser(this.api, userID); - user.deleteEmailAlias(aliasID); - } - - @Test - public void testGetAllEnterpriseUsersSucceeds() { - final String getAllUsersURL = "/2.0/users"; - final String firstUserID = "12345"; - final String firstUserName = "Test User"; - final String firstUserLogin = "test@user.com"; - final String secondUserID = "43242"; - final String secondUserName = "Example User"; - final String secondUserLogin = "example@user.com"; - - String result = TestUtils.getFixture("BoxUser/GetAllEnterpriseUsers200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(getAllUsersURL)) - .willReturn(WireMock.okForContentType(APPLICATION_JSON, result))); - - Iterator users = BoxUser.getAllEnterpriseUsers(this.api).iterator(); - BoxUser.Info firstUser = users.next(); - - assertEquals(firstUserID, firstUser.getID()); - assertEquals(firstUserName, firstUser.getName()); - assertEquals(firstUserLogin, firstUser.getLogin()); - - BoxUser.Info secondUser = users.next(); - - assertEquals(secondUserID, secondUser.getID()); - assertEquals(secondUserName, secondUser.getName()); - assertEquals(secondUserLogin, secondUser.getLogin()); - } - - @Test - public void testGetAllEnterpriseUsersMarkerPaginationSucceeds() { - final String getAllUsersURL = "/2.0/users"; - final String firstUserID = "12345"; - final String firstUserName = "Test User"; - final String firstUserLogin = "test@user.com"; - final String secondUserID = "43242"; - final String secondUserName = "Example User"; - final String secondUserLogin = "example@user.com"; - - String result = TestUtils.getFixture("BoxUser/GetAllEnterpriseUsersMarkerPagination200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(getAllUsersURL)) - .withQueryParam("usemarker", WireMock.equalTo("true")) - .withQueryParam("limit", WireMock.equalTo("100")) - .willReturn(WireMock.okForContentType(APPLICATION_JSON, result))); - - Iterator users = BoxUser.getAllEnterpriseUsers(this.api, true, null).iterator(); - BoxUser.Info firstUser = users.next(); - - assertEquals(firstUserID, firstUser.getID()); - assertEquals(firstUserName, firstUser.getName()); - assertEquals(firstUserLogin, firstUser.getLogin()); - - BoxUser.Info secondUser = users.next(); - - assertEquals(secondUserID, secondUser.getID()); - assertEquals(secondUserName, secondUser.getName()); - assertEquals(secondUserLogin, secondUser.getLogin()); - } - - @Test - public void testTransferContent() { - final String sourceUserID = "1111"; - final String destinationUserID = "5678"; - final String createdByLogin = "test@user.com"; - final String transferredFolderName = "Example Test Folder"; - final String transferContentURL = "/2.0/users/" + sourceUserID + "/folders/0"; - - JsonObject destinationUser = new JsonObject() - .add("id", destinationUserID); - JsonObject ownedBy = new JsonObject() - .add("owned_by", destinationUser); - - String result = TestUtils.getFixture("BoxFolder/PutTransferFolder200"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(transferContentURL)) - .withRequestBody(WireMock.equalToJson(ownedBy.toString())) - .willReturn(WireMock.okForContentType(APPLICATION_JSON, result))); - - BoxUser sourceUser = new BoxUser(this.api, sourceUserID); - BoxFolder.Info movedFolder = sourceUser.transferContent(destinationUserID); - - assertEquals(transferredFolderName, movedFolder.getName()); - assertEquals(createdByLogin, movedFolder.getCreatedBy().getLogin()); - } - - @Test(expected = BoxDeserializationException.class) - public void testDeserializationException() { - final String userID = "12345"; - final String usersURL = "/2.0/users/" + userID; - - String result = TestUtils.getFixture("BoxUser/GetUserInfoCausesDeserializationException"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(usersURL)) - .willReturn(WireMock.okForContentType(APPLICATION_JSON, result))); - - BoxUser.Info userInfo = new BoxUser(this.api, userID).getInfo(); - assertEquals("12345", userInfo.getID()); - } - - @Test - public void testCreateReadAddTrackingCodesSucceeds() { - final String userID = "12345"; - final String departmentID = "8675"; - final String companyID = "1701"; - final String usersURL = "/2.0/users/" + userID; - - // Mock: Create two tracking codes - Map createTrackingCodes = new HashMap<>(); - createTrackingCodes.put("Employee ID", userID); - createTrackingCodes.put("Department ID", departmentID); - String createBody = this.trackingCodesJson(createTrackingCodes).toString(); - String createResponse = TestUtils.getFixture("BoxUser/CreateTrackingCodes200"); - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(usersURL)) - .withRequestBody(WireMock.equalToJson(createBody)) - .willReturn(WireMock.okForContentType(APPLICATION_JSON, createResponse))); - - // Mock: Verify change - String twoTrackingCodesResponse = TestUtils.getFixture("BoxUser/GetUserTwoTrackingCodes200"); - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(usersURL)) - .withQueryParam("fields", WireMock.equalTo("tracking_codes")) - .inScenario("Get Tracking Code Scenario") - .whenScenarioStateIs(Scenario.STARTED) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(twoTrackingCodesResponse)) - .willSetStateTo("1st Request")); - - // Mock: Add one more tracking code - Map appendTrackingCodes = new HashMap<>(); - appendTrackingCodes.put("Employee ID", userID); - appendTrackingCodes.put("Department ID", departmentID); - appendTrackingCodes.put("Company ID", companyID); - String updateBody = this.trackingCodesJson(appendTrackingCodes).toString(); - String updateResponse = TestUtils.getFixture("BoxUser/UpdateTrackingCodes200"); - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(usersURL)) - .withRequestBody(WireMock.equalToJson(updateBody)) - .willReturn(WireMock.okForContentType(APPLICATION_JSON, updateResponse))); - - // Mock: Verify change - String threeTrackingCodesResponse = TestUtils.getFixture("BoxUser/GetUserThreeTrackingCodes200"); - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(usersURL)) - .withQueryParam("fields", WireMock.equalTo("tracking_codes")) - .inScenario("Get Tracking Code Scenario") - .whenScenarioStateIs("1st Request") - .willReturn(WireMock.okForContentType(APPLICATION_JSON, threeTrackingCodesResponse)) - .willSetStateTo("2nd Request")); - - // Create two tracking codes - BoxUser user = new BoxUser(this.api, userID); - BoxUser.Info info = user.new Info(); - info.setTrackingCodes(createTrackingCodes); - user.updateInfo(info); - - // Verify change - user = new BoxUser(this.api, userID); - info = user.getInfo("tracking_codes"); - Map receivedTrackingCodes = info.getTrackingCodes(); - assertEquals(createTrackingCodes, receivedTrackingCodes); - - // Add one more tracking code - info.appendTrackingCodes("Company ID", companyID); - user.updateInfo(info); - - // Verify change - user = new BoxUser(this.api, userID); - info = user.getInfo("tracking_codes"); - receivedTrackingCodes = info.getTrackingCodes(); - assertEquals(appendTrackingCodes, receivedTrackingCodes); - } - - @Test - public void uploadAvatarAsFile() { - final String userID = "12345"; - BoxUser user = new BoxUser(api, userID); - String fileName = "red_100x100.png"; - String filePath = getSampleFilePath(fileName); - File file = new File(filePath); - - String responseBody = "{\"pic_urls\": {\"small\": \"url1\",\"large\": \"url2\",\"preview\": \"url3\"}}"; - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo("/2.0/users/12345/avatar")) - .withHeader("Content-Type", new ContainsPattern("multipart/form-data")) - .withMultipartRequestBody( - new MultipartValuePatternBuilder() - .withName("pic") - .withHeader("Content-Type", new EqualToPattern("image/png")) - ) - .willReturn(WireMock.okForContentType(APPLICATION_JSON, responseBody))); - - AvatarUploadResponse response = user.uploadAvatar(file); - - assertThat(response.getSmall(), CoreMatchers.equalTo("url1")); - assertThat(response.getLarge(), CoreMatchers.equalTo("url2")); - assertThat(response.getPreview(), CoreMatchers.equalTo("url3")); - } - - @Test - public void uploadAvatarAsStream() throws IOException { - final String userID = "12345"; - BoxUser user = new BoxUser(api, userID); - String fileName = "red_100x100.png"; - String filePath = getSampleFilePath(fileName); - - String responseBody = "{\"pic_urls\": {\"small\": \"url1\",\"large\": \"url2\",\"preview\": \"url3\"}}"; - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo("/2.0/users/12345/avatar")) - .withHeader("Content-Type", new ContainsPattern("multipart/form-data")) - .withMultipartRequestBody( - new MultipartValuePatternBuilder() - .withName("pic") - .withHeader("Content-Type", new EqualToPattern("image/png")) - ) - .willReturn(WireMock.okForContentType(APPLICATION_JSON, responseBody))); - - AvatarUploadResponse response = user.uploadAvatar(Files.newInputStream(Paths.get(filePath)), fileName); - - assertThat(response.getSmall(), CoreMatchers.equalTo("url1")); - assertThat(response.getLarge(), CoreMatchers.equalTo("url2")); - assertThat(response.getPreview(), CoreMatchers.equalTo("url3")); - } - - @Test - public void deleteAvatar() { - final String userID = "12345"; - BoxUser user = new BoxUser(api, userID); - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo("/2.0/users/12345/avatar")) - .willReturn(WireMock.noContent())); - - user.deleteAvatar(); - } - - @Test - public void createBoxNotificationEmailSetsAllFields() { - final String email = "mail@box.com"; - final boolean isConfirmed = true; - - BoxNotificationEmail boxNotificationEmail = new BoxNotificationEmail(email, isConfirmed); - - assertEquals(email, boxNotificationEmail.getEmail()); - assertEquals(isConfirmed, boxNotificationEmail.getIsConfirmed()); - } - - private static String getSampleFilePath(String fileName) { - URL fileURL = BoxUserTest.class.getResource("/sample-files/" + fileName); - try { - return URLDecoder.decode(fileURL.getFile(), "utf-8"); - } catch (UnsupportedEncodingException e) { - throw new RuntimeException(e); - } - } - - private JsonObject trackingCodesJson(Map trackingCodes) { - JsonArray trackingCodesJsonArray = new JsonArray(); - for (String attrKey : trackingCodes.keySet()) { - JsonObject trackingCode = new JsonObject(); - trackingCode.set("type", "tracking_code"); - trackingCode.set("name", attrKey); - trackingCode.set("value", trackingCodes.get(attrKey)); - trackingCodesJsonArray.add(trackingCode); - } - - JsonObject trackingCodesJson = new JsonObject(); - trackingCodesJson.set("tracking_codes", trackingCodesJsonArray); - return trackingCodesJson; - } -} diff --git a/src/test/java/com/box/sdk/BoxWatermarkTest.java b/src/test/java/com/box/sdk/BoxWatermarkTest.java deleted file mode 100644 index a9b6592c2..000000000 --- a/src/test/java/com/box/sdk/BoxWatermarkTest.java +++ /dev/null @@ -1,151 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; - -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -/** - * {@link BoxWatermark} related tests. - */ -public class BoxWatermarkTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(baseUrl()); - } - - @Test - public void testCreateWatermarkOnFolderSucceedsSendsCorrectJson() { - final String folderID = "12345"; - final String watermarkURL = "/2.0/folders/" + folderID + "/watermark"; - JsonObject innerObject = new JsonObject() - .add("imprint", "default"); - JsonObject watermarkObject = new JsonObject() - .add("watermark", innerObject); - - String result = TestUtils.getFixture("BoxWatermark/CreateWatermarkOnFolder200"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(watermarkURL)) - .withRequestBody(WireMock.equalToJson(watermarkObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - BoxWatermark watermark = folder.applyWatermark(); - - Assert.assertNotNull(watermark); - Assert.assertNotNull(watermark.getCreatedAt()); - Assert.assertNotNull(watermark.getModifiedAt()); - } - - @Test - public void testGetWatermarkOnFolderSucceeds() { - final String folderID = "12345"; - final String watermarkURL = "/2.0/folders/" + folderID + "/watermark"; - - String result = TestUtils.getFixture("BoxWatermark/CreateWatermarkOnFolder200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(watermarkURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - BoxWatermark watermark = folder.getWatermark(); - - Assert.assertNotNull(watermark); - Assert.assertNotNull(watermark.getCreatedAt()); - Assert.assertNotNull(watermark.getModifiedAt()); - } - - @Test - public void testDeleteWaterOnFolderSucceeds() { - final String folderID = "12345"; - final String deleteWatermarkURL = "/2.0/folders/" + folderID + "/watermark"; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(deleteWatermarkURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(204))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - folder.removeWatermark(); - } - - @Test - public void testCreateWatermarkOnFileSucceedsAndSendsCorrectJson() { - final String fileID = "12345"; - final String fileWatermarkURL = "/2.0/files/" + fileID + "/watermark"; - JsonObject innerObject = new JsonObject() - .add("imprint", "default"); - JsonObject watermarkObject = new JsonObject() - .add("watermark", innerObject); - - String result = TestUtils.getFixture("BoxWatermark/CreateWatermarkOnFile200"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(fileWatermarkURL)) - .withRequestBody(WireMock.equalToJson(watermarkObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFile file = new BoxFile(this.api, fileID); - BoxWatermark watermark = file.applyWatermark(); - - Assert.assertNotNull(watermark); - Assert.assertNotNull(watermark.getCreatedAt()); - Assert.assertNotNull(watermark.getModifiedAt()); - } - - @Test - public void testGetWatermarkOnFileSucceeds() { - final String fileID = "12345"; - final String watermarkURL = "/2.0/files/" + fileID + "/watermark"; - - String result = TestUtils.getFixture("BoxWatermark/CreateWatermarkOnFile200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(watermarkURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFile file = new BoxFile(this.api, fileID); - BoxWatermark watermark = file.getWatermark(); - - Assert.assertNotNull(watermark); - Assert.assertNotNull(watermark.getCreatedAt()); - Assert.assertNotNull(watermark.getModifiedAt()); - } - - @Test - public void testDeleteWaterOnFileSucceeds() { - final String fileID = "12345"; - final String deleteWatermarkURL = "/2.0/files/" + fileID + "/watermark"; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(deleteWatermarkURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(204))); - - BoxFile file = new BoxFile(this.api, fileID); - file.removeWatermark(); - } - - private String baseUrl() { - return format("https://localhost:%d", wireMockRule.httpsPort()); - } -} diff --git a/src/test/java/com/box/sdk/BoxWebHookSignatureVerifierTest.java b/src/test/java/com/box/sdk/BoxWebHookSignatureVerifierTest.java deleted file mode 100644 index 38008bcc9..000000000 --- a/src/test/java/com/box/sdk/BoxWebHookSignatureVerifierTest.java +++ /dev/null @@ -1,221 +0,0 @@ -package com.box.sdk; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; - -/** - * A {@link BoxWebHookSignatureVerifier} related tests. - */ -public class BoxWebHookSignatureVerifierTest { - - private static final String SIGNATURE_VERSION = "1"; - private static final String SIGNATURE_ALGORITHM = "HmacSHA256"; - - private static final String PRIMARY_SIGNATURE_KEY = "faqZQdZ2dbNVaFdPWRsVMjZOC4nVwgp0"; - private static final String SECONDARY_SIGNATURE_KEY = "4SidLLVJLIx3L3RAvMhybvvpmJHUd4iD"; - - private static final String DELIVERY_TIMESTAMP = "2016-07-08T01:20:32-07:00"; - private static final String WEB_HOOK_PAYLOAD = "{ \"payload\" : \"test\" }"; - - private static final String PRIMARY_SIGNATURE = "R54s9jpedqP/Og92+77Ip8hVtfWjR4pnaJXcvRGafCQ="; - private static final String SECONDARY_SIGNATURE = "V4b6jfPoCaTpcPvUDaaYLfVC4+DUZ3/B6F0pz44shEE="; - - /** - * Unit test that version has to be supported. - */ - @Test - public void testInvalidVersion() { - BoxWebHookSignatureVerifier verifier = - new BoxWebHookSignatureVerifier(PRIMARY_SIGNATURE_KEY, SECONDARY_SIGNATURE_KEY); - assertTrue(verifier.verify( - SIGNATURE_VERSION, - SIGNATURE_ALGORITHM, - PRIMARY_SIGNATURE, - null, - WEB_HOOK_PAYLOAD, - DELIVERY_TIMESTAMP - )); - assertTrue(verifier.verify( - SIGNATURE_VERSION, - SIGNATURE_ALGORITHM, - null, - SECONDARY_SIGNATURE, - WEB_HOOK_PAYLOAD, - DELIVERY_TIMESTAMP - )); - assertFalse(verifier.verify( - "-1", - SIGNATURE_ALGORITHM, - PRIMARY_SIGNATURE, - null, - WEB_HOOK_PAYLOAD, - DELIVERY_TIMESTAMP - )); - assertFalse(verifier.verify( - "-1", - SIGNATURE_ALGORITHM, - null, - SECONDARY_SIGNATURE, - WEB_HOOK_PAYLOAD, - DELIVERY_TIMESTAMP - )); - } - - /** - * Unit test that algorithm has to be supported. - */ - @Test - public void testInvalidAlgorithm() { - BoxWebHookSignatureVerifier verifier = - new BoxWebHookSignatureVerifier(PRIMARY_SIGNATURE_KEY, SECONDARY_SIGNATURE_KEY); - assertTrue(verifier.verify( - SIGNATURE_VERSION, - SIGNATURE_ALGORITHM, - PRIMARY_SIGNATURE, - null, - WEB_HOOK_PAYLOAD, - DELIVERY_TIMESTAMP - )); - assertTrue(verifier.verify( - SIGNATURE_VERSION, - SIGNATURE_ALGORITHM, - null, - SECONDARY_SIGNATURE, - WEB_HOOK_PAYLOAD, - DELIVERY_TIMESTAMP - )); - assertFalse(verifier.verify( - SIGNATURE_VERSION, - "none", - PRIMARY_SIGNATURE, - null, - WEB_HOOK_PAYLOAD, - DELIVERY_TIMESTAMP - )); - assertFalse(verifier.verify( - SIGNATURE_VERSION, - "none", - null, - SECONDARY_SIGNATURE, - WEB_HOOK_PAYLOAD, - DELIVERY_TIMESTAMP - )); - } - - @Test - public void verifyPrimaryKeyOnly() { - final BoxWebHookSignatureVerifier verifier = - new BoxWebHookSignatureVerifier(PRIMARY_SIGNATURE_KEY, null); - - assertFalse(verifier.verify( - SIGNATURE_VERSION, - SIGNATURE_ALGORITHM, - "", - "", - WEB_HOOK_PAYLOAD, - DELIVERY_TIMESTAMP - )); - assertFalse(verifier.verify( - SIGNATURE_VERSION, - SIGNATURE_ALGORITHM, - null, - null, - WEB_HOOK_PAYLOAD, - DELIVERY_TIMESTAMP - )); - assertFalse(verifier.verify( - SIGNATURE_VERSION, - SIGNATURE_ALGORITHM, - "", - SECONDARY_SIGNATURE, - WEB_HOOK_PAYLOAD, - DELIVERY_TIMESTAMP - )); - assertFalse(verifier.verify( - SIGNATURE_VERSION, - SIGNATURE_ALGORITHM, - null, - SECONDARY_SIGNATURE, - WEB_HOOK_PAYLOAD, - DELIVERY_TIMESTAMP - )); - assertTrue(verifier.verify( - SIGNATURE_VERSION, - SIGNATURE_ALGORITHM, - PRIMARY_SIGNATURE, - null, - WEB_HOOK_PAYLOAD, - DELIVERY_TIMESTAMP - )); - assertTrue(verifier.verify( - SIGNATURE_VERSION, - SIGNATURE_ALGORITHM, - PRIMARY_SIGNATURE, - SECONDARY_SIGNATURE, - WEB_HOOK_PAYLOAD, - DELIVERY_TIMESTAMP - )); - } - - @Test - public void verifyRotatedKeys() { - final BoxWebHookSignatureVerifier verifier = - new BoxWebHookSignatureVerifier(PRIMARY_SIGNATURE_KEY, SECONDARY_SIGNATURE_KEY); - - // no key is valid - assertFalse(verifier.verify( - SIGNATURE_VERSION, - SIGNATURE_ALGORITHM, - "", - "", - WEB_HOOK_PAYLOAD, - DELIVERY_TIMESTAMP - )); - assertFalse(verifier.verify( - SIGNATURE_VERSION, - SIGNATURE_ALGORITHM, - null, - null, - WEB_HOOK_PAYLOAD, - DELIVERY_TIMESTAMP - )); - - // primary signature is valid - assertTrue(verifier.verify( - SIGNATURE_VERSION, - SIGNATURE_ALGORITHM, - PRIMARY_SIGNATURE, - "", - WEB_HOOK_PAYLOAD, - DELIVERY_TIMESTAMP - )); - assertTrue(verifier.verify( - SIGNATURE_VERSION, - SIGNATURE_ALGORITHM, - PRIMARY_SIGNATURE, - null, - WEB_HOOK_PAYLOAD, - DELIVERY_TIMESTAMP - )); - - // secondary signature is valid - assertTrue(verifier.verify( - SIGNATURE_VERSION, - SIGNATURE_ALGORITHM, - "", - SECONDARY_SIGNATURE, - WEB_HOOK_PAYLOAD, - DELIVERY_TIMESTAMP)); - assertTrue(verifier.verify( - SIGNATURE_VERSION, - SIGNATURE_ALGORITHM, - null, - SECONDARY_SIGNATURE, - WEB_HOOK_PAYLOAD, - DELIVERY_TIMESTAMP - )); - } - -} diff --git a/src/test/java/com/box/sdk/BoxWebHookTest.java b/src/test/java/com/box/sdk/BoxWebHookTest.java deleted file mode 100644 index e0a4ddc27..000000000 --- a/src/test/java/com/box/sdk/BoxWebHookTest.java +++ /dev/null @@ -1,164 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.junit.Assert.assertEquals; - -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.io.IOException; -import java.net.URL; -import java.util.Iterator; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -/** - * {@link BoxWebHook} related tests. - */ -public class BoxWebHookTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void testCreateWebhookSucceedsAndSendsCorrectJson() throws IOException { - final String webhookID = "12345"; - final String folderID = "1111"; - final String createdByID = "2222"; - final String createdByLogin = "test@user.com"; - final String address = "https:/example.com"; - final String webhookURL = "/2.0/webhooks"; - - JsonObject innerObject = new JsonObject() - .add("type", "folder") - .add("id", "1111"); - - JsonObject webhookObject = new JsonObject() - .add("target", innerObject) - .add("triggers", new JsonArray().add("FILE.LOCKED")) - .add("address", address); - - String result = TestUtils.getFixture("BoxWebhook/CreateWebhook201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(webhookURL)) - .withRequestBody(WireMock.equalToJson(webhookObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - BoxWebHook.Info webhookInfo = BoxWebHook.create(folder, new URL(address), BoxWebHook.Trigger.FILE_LOCKED); - - assertEquals(webhookID, webhookInfo.getID()); - assertEquals(folderID, webhookInfo.getTarget().getId()); - assertEquals(createdByID, webhookInfo.getCreatedBy().getID()); - assertEquals(createdByLogin, webhookInfo.getCreatedBy().getLogin()); - assertEquals(BoxWebHook.Trigger.FILE_LOCKED, webhookInfo.getTriggers().iterator().next()); - } - - @Test - public void testGetWebhookSuceeds() { - final String webhookID = "12345"; - final String folderID = "1111"; - final String createdByID = "2222"; - final String webhookURL = "/2.0/webhooks/" + webhookID; - - String result = TestUtils.getFixture("BoxWebhook/GetWebhook200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(webhookURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxWebHook webhook = new BoxWebHook(this.api, webhookID); - BoxWebHook.Info info = webhook.getInfo(); - - assertEquals(webhookID, info.getID()); - assertEquals(folderID, info.getTarget().getId()); - assertEquals(createdByID, info.getCreatedBy().getID()); - } - - @Test - public void testGetAllWebhooksSucceeds() { - final String webhookID = "12345"; - final String folderID = "1111"; - final String webhookURL = "/2.0/webhooks"; - - String result = TestUtils.getFixture("BoxWebhook/GetAllWebhooks200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(webhookURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - Iterator webhooks = BoxWebHook.all(this.api).iterator(); - BoxWebHook.Info webhookInfo = webhooks.next(); - - assertEquals(webhookID, webhookInfo.getID()); - assertEquals(folderID, webhookInfo.getTarget().getId()); - } - - @Test - public void testUpdateWebhookInfoSucceeds() throws IOException { - final String newAddress = "https://newexample.com"; - final String webhookID = "12345"; - final String createdByLogin = "test@user.com"; - final String webhookURL = "/2.0/webhooks/" + webhookID; - - JsonArray triggers = new JsonArray() - .add("FILE.UPLOADED"); - - JsonObject updateObject = new JsonObject() - .add("triggers", triggers) - .add("address", newAddress); - - String result = TestUtils.getFixture("BoxWebhook/UpdateWebhookInfo200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(webhookURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(webhookURL)) - .withRequestBody(WireMock.equalToJson(updateObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxWebHook webhook = new BoxWebHook(this.api, webhookID); - BoxWebHook.Info info = webhook.new Info(); - info.setAddress(new URL(newAddress)); - info.setTriggers(BoxWebHook.Trigger.FILE_UPLOADED); - webhook.updateInfo(info); - - assertEquals(new URL(newAddress), info.getAddress()); - assertEquals(webhookID, info.getID()); - assertEquals(createdByLogin, info.getCreatedBy().getLogin()); - } - - @Test - public void testDeleteWebhookSucceeds() { - final String webhookID = "12345"; - final String webhookURL = "/2.0/webhooks/" + webhookID; - - wireMockRule.stubFor(WireMock.delete(WireMock.urlPathEqualTo(webhookURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withStatus(204) - .withBody(""))); - - BoxWebHook webhook = new BoxWebHook(this.api, webhookID); - webhook.delete(); - } -} diff --git a/src/test/java/com/box/sdk/BoxWebLinkTest.java b/src/test/java/com/box/sdk/BoxWebLinkTest.java deleted file mode 100644 index 9bb9256ab..000000000 --- a/src/test/java/com/box/sdk/BoxWebLinkTest.java +++ /dev/null @@ -1,154 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxSharedLink.Access.OPEN; -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static java.util.Calendar.OCTOBER; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertEquals; - -import com.box.sdk.sharedlink.BoxSharedLinkWithoutPermissionsRequest; -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.io.IOException; -import java.net.URL; -import java.util.GregorianCalendar; -import java.util.TimeZone; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -/** - * {@link BoxWebLink} related unit tests. - */ -public class BoxWebLinkTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void testCreateWebLinkSucceedsAndSendsCorrectJson() throws IOException { - final String folderID = "12345"; - final String webLinkURL = "/2.0/web_links"; - final String urlToLink = "https://example.com"; - final String webLinkID = "12345"; - final String webLinkName = "example.com"; - - String result = TestUtils.getFixture("BoxWebLink/CreateWebLinkOnFolder201"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(webLinkURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxFolder folder = new BoxFolder(this.api, folderID); - URL url = new URL(urlToLink); - BoxWebLink.Info webLink = folder.createWebLink("Link to Example", url, "This goes to an example page"); - - assertEquals(webLinkID, webLink.getID()); - assertEquals(webLinkName, webLink.getName()); - assertEquals(webLinkID, webLink.getID()); - assertEquals(urlToLink, webLink.getLinkURL().toString()); - } - - @Test - public void testGetWebLinkSucceeds() throws IOException { - final String webLinkID = "12345"; - final String linkURL = "https://example.com"; - final String createdByName = "Test User"; - final String parentName = "Example Folder"; - final String modifiedByName = "Test User"; - final String ownedByLogin = "test@user.com"; - final String webLinkURL = "/2.0/web_links/" + webLinkID; - - String result = TestUtils.getFixture("BoxWebLink/GetWebLinkOnFolder200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(webLinkURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxWebLink webLink = new BoxWebLink(this.api, webLinkID); - BoxWebLink.Info webLinkInfo = webLink.getInfo(); - - assertEquals(webLinkID, webLinkInfo.getID()); - assertEquals(new URL(linkURL), webLinkInfo.getLinkURL()); - assertEquals(createdByName, webLinkInfo.getCreatedBy().getName()); - assertEquals(parentName, webLinkInfo.getParent().getName()); - assertEquals(modifiedByName, webLinkInfo.getModifiedBy().getName()); - assertEquals(ownedByLogin, webLinkInfo.getOwnedBy().getLogin()); - } - - @Test - public void testUpdateWebLinkSucceedsAndSendsCorrectJson() throws IOException { - final String newName = "example.com"; - final String webLinkID = "12345"; - final String newURL = "https://example.com"; - final String webLinkURL = "/2.0/web_links/" + webLinkID; - - JsonObject updatedObject = new JsonObject() - .add("name", newName) - .add("url", newURL); - - String result = TestUtils.getFixture("BoxWebLink/UpdateWebLinkOnFolder200"); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(webLinkURL)) - .withRequestBody(WireMock.containing(updatedObject.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxWebLink webLink = new BoxWebLink(this.api, webLinkID); - BoxWebLink.Info webLinkInfo = webLink.new Info(); - webLinkInfo.setName(newName); - webLinkInfo.addPendingChange("url", newURL); - webLink.updateInfo(webLinkInfo); - - assertEquals(newName, webLinkInfo.getName()); - assertEquals(new URL(newURL), webLinkInfo.getLinkURL()); - } - - @Test - public void createsASharedLink() { - //given - BoxWebLink webLink = new BoxWebLink(this.api, "12345"); - this.api.setRequestInterceptor( - request -> { - //then - JsonObject responseJson = Json.parse(request.bodyToString()).asObject(); - JsonObject sharedLinkJson = responseJson.get("shared_link").asObject(); - assertThat(sharedLinkJson.get("vanity_name").asString(), is("myCustomName")); - assertThat(sharedLinkJson.get("password").asString(), is("my-secret-password")); - assertThat(sharedLinkJson.get("access").asString(), is("open")); - assertThat(sharedLinkJson.get("unshared_at").asString(), is("2021-10-08T07:53:45Z")); - return new BoxJSONResponse() { - @Override - public String getJSON() { - return "{}"; - } - }; - } - ); - - //when - GregorianCalendar unsharedDate = new GregorianCalendar(2021, OCTOBER, 8, 7, 53, 45); - unsharedDate.setTimeZone(TimeZone.getTimeZone("utc")); - BoxSharedLinkWithoutPermissionsRequest sharedLinkRequest = new BoxSharedLinkWithoutPermissionsRequest() - .access(OPEN) - .password("my-secret-password") - .unsharedDate(unsharedDate.getTime()) - .vanityName("myCustomName"); - webLink.createSharedLink(sharedLinkRequest); - } -} diff --git a/src/test/java/com/box/sdk/BoxZipTest.java b/src/test/java/com/box/sdk/BoxZipTest.java deleted file mode 100644 index c6c89e980..000000000 --- a/src/test/java/com/box/sdk/BoxZipTest.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.box.sdk; - - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.junit.Assert.assertEquals; - -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.text.ParseException; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -/** - * {@link BoxZip} related unit tests. - */ -public class BoxZipTest { - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void createZipSucceeds() throws ParseException { - final String fileID = "466239504569"; - final String folderID = "466239504580"; - final String downloadFileName = "test"; - - final String downloadURL = "https://api.box.com/zip_downloads/124hfiowk3fa8kmrwh/content"; - final String statusURL = "https://api.box.com/zip_downloads/124hfiowk3fa8kmrwh/status"; - final Date expiresAt = BoxDateFormat.parse("2018-04-25T11:00:18-07:00"); - - ArrayList items = new ArrayList<>(); - JsonArray itemsBody = new JsonArray(); - BoxZipItem file = new BoxZipItem("file", fileID); - BoxZipItem folder = new BoxZipItem("folder", folderID); - items.add(file); - items.add(folder); - itemsBody.add(file.getJSONObject()).add(folder.getJSONObject()); - - JsonObject body = new JsonObject() - .add("items", itemsBody) - .add("download_file_name", downloadFileName); - - String result = TestUtils.getFixture("BoxZip/CreateZipFile202"); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo("/2.0/zip_downloads")) - .withRequestBody(WireMock.equalToJson(body.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - BoxZip zip = new BoxZip(this.api); - BoxZipInfo zipInfo = zip.create(downloadFileName, items); - BoxZipConflict conflict1 = zipInfo.getNameConflicts().get(0); - List conflict1Items = conflict1.getItems(); - - assertEquals(downloadURL, zipInfo.getDownloadURL().toString()); - assertEquals(statusURL, zipInfo.getStatusURL().toString()); - assertEquals(expiresAt, zipInfo.getExpiresAt()); - assertEquals("100", conflict1Items.get(0).getID()); - assertEquals("salary.pdf", conflict1Items.get(0).getOriginalName()); - assertEquals("aqc823.pdf", conflict1Items.get(0).getDownloadName()); - assertEquals("200", conflict1Items.get(1).getID()); - assertEquals("salary.pdf", conflict1Items.get(1).getOriginalName()); - assertEquals("aci23s.pdf", conflict1Items.get(1).getDownloadName()); - } -} - diff --git a/src/test/java/com/box/sdk/EventLogTest.java b/src/test/java/com/box/sdk/EventLogTest.java deleted file mode 100644 index 513c912fd..000000000 --- a/src/test/java/com/box/sdk/EventLogTest.java +++ /dev/null @@ -1,213 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.BoxEvent.EventType.FAILED_LOGIN; -import static com.box.sdk.BoxEvent.EventType.LOGIN; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.containsString; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.not; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import java.net.URLDecoder; -import java.util.Date; -import org.junit.Test; - -public class EventLogTest { - - private static final BoxJSONResponse EMPTY_RESPONSE = new BoxJSONResponse() { - @Override - public String getJSON() { - return "{\"entries\": [], \"next_stream_position\": \"new_position\", \"chunk_size\": 0}"; - } - }; - - @Test - public void getEnterpriseEvents() { - final Date after = new Date(0L); - final Date before = new Date(System.currentTimeMillis()); - final int limit = 500; - final String position = "1152923110369165138"; - BoxEvent.EventType[] eventTypes = {LOGIN, FAILED_LOGIN}; - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(request -> { - try { - String query = URLDecoder.decode(request.getUrl().getQuery(), "UTF-8"); - assertThat(query, containsString("stream_type=admin_logs")); - assertThat(query, containsString("created_after=" + BoxDateFormat.format(after))); - assertThat(query, containsString("created_before=" + BoxDateFormat.format(before))); - assertThat(query, containsString("limit=" + limit)); - assertThat(query, containsString("stream_position=" + position)); - assertThat(query, containsString("event_type=LOGIN,FAILED_LOGIN")); - return EMPTY_RESPONSE; - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - - EnterpriseEventsRequest request = new EnterpriseEventsRequest() - .after(after) - .before(before) - .limit(limit) - .position(position) - .types(eventTypes); - EventLog.getEnterpriseEvents(api, request); - } - - @Test - public void getEnterpriseEventsWithoutAnyParams() { - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(request -> { - try { - String query = URLDecoder.decode(request.getUrl().getQuery(), "UTF-8"); - assertThat(query, is("stream_type=admin_logs&limit=500")); - return EMPTY_RESPONSE; - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - - EventLog.getEnterpriseEvents(api, new EnterpriseEventsRequest()); - } - - @Test - public void getEnterpriseEventsAddsLimitOnlyIfDifferentThanDefault() { - final int limit = 100; - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(request -> { - try { - String query = URLDecoder.decode(request.getUrl().getQuery(), "UTF-8"); - assertThat(query, is("stream_type=admin_logs&limit=" + limit)); - return EMPTY_RESPONSE; - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - - EventLog.getEnterpriseEvents(api, new EnterpriseEventsRequest().limit(limit)); - } - - @Test - public void getEnterpriseEventsStream() { - final int limit = 100; - final String position = "1152923110369165138"; - BoxEvent.EventType[] eventTypes = {LOGIN, FAILED_LOGIN}; - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(request -> { - try { - String query = URLDecoder.decode(request.getUrl().getQuery(), "UTF-8"); - assertThat(query, containsString("stream_type=admin_logs_streaming")); - assertThat(query, not(containsString("created_after"))); - assertThat(query, not(containsString("created_before"))); - assertThat(query, containsString("limit=" + limit)); - assertThat(query, containsString("stream_position=1152923110369165138")); - assertThat(query, containsString("event_type=LOGIN,FAILED_LOGIN")); - return EMPTY_RESPONSE; - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - - EnterpriseEventsStreamRequest request = new EnterpriseEventsStreamRequest() - .limit(limit) - .position(position) - .types(eventTypes); - EventLog.getEnterpriseEventsStream(api, request); - } - - @Test - public void getEnterpriseEventsStreamWithoutAnyParams() { - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(request -> { - try { - String query = URLDecoder.decode(request.getUrl().getQuery(), "UTF-8"); - assertThat(query, is("stream_type=admin_logs_streaming&limit=500")); - return EMPTY_RESPONSE; - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - - EventLog.getEnterpriseEventsStream(api, new EnterpriseEventsStreamRequest()); - } - - @Test - public void createEventLogWhenNextPositionIsNotInteger() { - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - JsonObject json = Json.parse( - "{\"next_stream_position\": \"1152923112788365709\", \"chunk_size\": 12, \"entries\": []}" - ).asObject(); - EventLog eventLog = new EventLog(api, json, null, 10); - - assertThat(eventLog.getNextStreamPosition(), is("1152923112788365709")); - } - - @Test - public void createEventLogWhenNextPositionIsInteger() { - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - JsonObject json = Json.parse( - "{\"next_stream_position\": 1152923112788365709, \"chunk_size\": 12, \"entries\": []}" - ).asObject(); - EventLog eventLog = new EventLog(api, json, null, 10); - - assertThat(eventLog.getNextStreamPosition(), is("1152923112788365709")); - } - - @Test - public void getEnterpriseEventsTypesAsString() { - final Date after = new Date(0L); - final Date before = new Date(System.currentTimeMillis()); - final int limit = 500; - final String position = "1152923110369165138"; - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(request -> { - try { - String query = URLDecoder.decode(request.getUrl().getQuery(), "UTF-8"); - assertThat(query, containsString("stream_type=admin_logs")); - assertThat(query, containsString("created_after=" + BoxDateFormat.format(after))); - assertThat(query, containsString("created_before=" + BoxDateFormat.format(before))); - assertThat(query, containsString("limit=" + limit)); - assertThat(query, containsString("stream_position=" + position)); - assertThat(query, containsString("event_type=LOGIN,FAILED_LOGIN")); - return EMPTY_RESPONSE; - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - - EnterpriseEventsRequest request = new EnterpriseEventsRequest() - .after(after) - .before(before) - .limit(limit) - .position(position) - .typeNames("LOGIN", "FAILED_LOGIN"); - EventLog.getEnterpriseEvents(api, request); - } - - @Test - public void getEnterpriseEventsStreamWithTypesAsString() { - final int limit = 100; - final String position = "1152923110369165138"; - BoxAPIConnection api = new BoxAPIConnectionForTests(""); - api.setRequestInterceptor(request -> { - try { - String query = URLDecoder.decode(request.getUrl().getQuery(), "UTF-8"); - assertThat(query, containsString("stream_type=admin_logs_streaming")); - assertThat(query, not(containsString("created_after"))); - assertThat(query, not(containsString("created_before"))); - assertThat(query, containsString("limit=" + limit)); - assertThat(query, containsString("stream_position=1152923110369165138")); - assertThat(query, containsString("event_type=LOGIN,FAILED_LOGIN")); - return EMPTY_RESPONSE; - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - - EnterpriseEventsStreamRequest request = new EnterpriseEventsStreamRequest() - .limit(limit) - .position(position) - .typeNames("LOGIN", "FAILED_LOGIN"); - EventLog.getEnterpriseEventsStream(api, request); - } -} diff --git a/src/test/java/com/box/sdk/EventStreamTest.java b/src/test/java/com/box/sdk/EventStreamTest.java deleted file mode 100644 index 432dee60f..000000000 --- a/src/test/java/com/box/sdk/EventStreamTest.java +++ /dev/null @@ -1,205 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.get; -import static com.github.tomakehurst.wiremock.client.WireMock.options; -import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; -import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; -import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching; -import static com.github.tomakehurst.wiremock.client.WireMock.urlPathMatching; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; - -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.TimeUnit; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -public class EventStreamTest { - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void canStopStreamWhileWaitingForAPIResponse() throws InterruptedException { - final long streamPosition = 123456; - final String realtimeServerURL = "/2.0/realtimeServer?channel=0"; - String eventsURL = "/2.0/events"; - - stubFor(options(urlEqualTo(eventsURL)) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody("{ \"entries\": [ { \"url\": \"https://localhost:" + wireMockRule.httpsPort() - + realtimeServerURL + "\", \"max_retries\": \"3\", \"retry_timeout\": 60000 } ] }"))); - - stubFor(get(urlPathMatching(eventsURL)) - .withQueryParam("stream_position", WireMock.equalTo("now")) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody("{ \"next_stream_position\": " + streamPosition + ",\"entries\":[] }"))); - - stubFor(get(urlMatching("/2.0/realtimeServer.*")) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody("{ \"message\": \"new_change\" }"))); - - - final EventStream stream = new EventStream(api); - final Object requestLock = new Object(); - this.wireMockRule.addMockServiceRequestListener((request, response) -> { - String streamPositionURL = realtimeServerURL + "&stream_position=" + streamPosition; - boolean requestUrlMatch = request.getUrl().contains(streamPositionURL); - if (requestUrlMatch) { - stream.stop(); - - synchronized (requestLock) { - requestLock.notify(); - } - } - }); - - stream.start(); - synchronized (requestLock) { - requestLock.wait(); - } - - assertThat(stream.isStarted(), is(false)); - } - - @Test - public void duplicateEventsAreNotReported() throws InterruptedException { - final String realtimeServerURL = "/2.0/realtimeServer?channel=0"; - String eventsURL = "/2.0/events"; - - stubFor(options(urlEqualTo(eventsURL)) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody("{ \"entries\": [ { \"url\": \"https://localhost:" + wireMockRule.httpsPort() - + realtimeServerURL + "\", \"max_retries\": \"3\", \"retry_timeout\": 60000 } ] }"))); - - stubFor(get(urlMatching("/2.0/events\\?.*stream_position=now.*")) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody("{ \"next_stream_position\": 0 }"))); - - stubFor(get(urlMatching("/2.0/events\\?.*stream_position=0")) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody("{ \"next_stream_position\": 1, \"entries\": [ { \"type\": \"event\", " - + "\"event_id\": \"1\" } ] }"))); - - stubFor(get(urlMatching("/2.0/events\\?.*stream_position=1")) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody("{ \"next_stream_position\": -1, \"entries\": [ { \"type\": \"event\", " - + "\"event_id\": \"1\" } ] }"))); - - stubFor(get(urlMatching("/2.0/events\\?.*stream_position=-1")) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody("{ \"next_stream_position\": -1, \"entries\": [] }"))); - - stubFor(get(urlMatching("/2.0/realtimeServer.*")) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody("{ \"message\": \"new_change\" }"))); - - final EventStream stream = new EventStream(api); - final EventListener eventListener = mock(EventListener.class); - stream.addListener(eventListener); - - final Object requestLock = new Object(); - this.wireMockRule.addMockServiceRequestListener((request, response) -> { - boolean requestUrlMatch = request.getUrl().contains("-1"); - if (requestUrlMatch) { - synchronized (requestLock) { - requestLock.notify(); - } - } - }); - - stream.start(); - synchronized (requestLock) { - requestLock.wait(); - } - - verify(eventListener).onEvent(any(BoxEvent.class)); - } - - @Test - public void delayBetweenCalls() throws InterruptedException { - - final String realtimeServerURL = "/2.0/realtimeServer?channel=0"; - final int delay = 1000; - final long[] times = new long[2]; - - stubFor(options(urlEqualTo("/2.0/events")) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody("{ \"entries\": [ { \"url\": \"https://localhost:" + wireMockRule.httpsPort() - + realtimeServerURL + "\", \"max_retries\": \"3\", \"retry_timeout\": 60000 } ] }"))); - - stubFor(get(urlMatching("/2.0/events\\?.*stream_position=now.*")) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody("{ \"next_stream_position\": 123 }"))); - - stubFor(get(urlMatching("/2.0/realtimeServer.*")) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody("{ \"message\": \"new_change\" }"))); - - stubFor(get(urlMatching("/2.0/events\\?.*stream_position=123.*")) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody("{ \"next_stream_position\": 456, \"entries\": [ { \"type\": \"event\", " - + "\"event_id\": \"1\" } ] }"))); - - stubFor(get(urlMatching("/2.0/events\\?.*stream_position=456.*")) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody("{ \"next_stream_position\": 789, \"entries\": [ { \"type\": \"event\", " - + "\"event_id\": \"1\" } ] }"))); - - final EventStream stream = new EventStream(api, -1, delay); - final EventListener eventListener = mock(EventListener.class); - stream.addListener(eventListener); - - final CountDownLatch latch = new CountDownLatch(3); - this.wireMockRule.addMockServiceRequestListener((request, response) -> { - if (request.getUrl().contains("stream_position=123")) { - times[0] = System.currentTimeMillis(); - latch.countDown(); - } - if (request.getUrl().contains("stream_position=456")) { - times[1] = System.currentTimeMillis(); - latch.countDown(); - } - if (request.getUrl().contains("stream_position=789")) { - latch.countDown(); - } - }); - - stream.start(); - assertTrue("EventStream was interuppted", latch.await(5, TimeUnit.SECONDS)); - stream.stop(); - - assertTrue("Calls should be be 1s apart", times[1] - times[0] >= delay); - } -} diff --git a/src/test/java/com/box/sdk/IntegrationTestJWT.java b/src/test/java/com/box/sdk/IntegrationTestJWT.java deleted file mode 100644 index 4713c7a9f..000000000 --- a/src/test/java/com/box/sdk/IntegrationTestJWT.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.box.sdk; - -/** - * Created by dmaynard on 2/9/17. - */ -public interface IntegrationTestJWT { -} diff --git a/src/test/java/com/box/sdk/JSONRequestInterceptor.java b/src/test/java/com/box/sdk/JSONRequestInterceptor.java deleted file mode 100644 index 543e4aea5..000000000 --- a/src/test/java/com/box/sdk/JSONRequestInterceptor.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.box.sdk; - -import static org.junit.Assert.fail; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonObject; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public abstract class JSONRequestInterceptor implements RequestInterceptor { - public static RequestInterceptor respondWith(final JsonObject json) { - return new RequestInterceptor() { - @Override - public BoxAPIResponse onRequest(BoxAPIRequest request) { - return new BoxJSONResponse() { - @Override - public String getJSON() { - return json.toString(); - } - }; - } - }; - } - - @Override - public BoxAPIResponse onRequest(BoxAPIRequest request) { - BufferedReader bodyReader = new BufferedReader(new InputStreamReader(request.getBody(), - StandardCharsets.UTF_8)); - - JsonObject json = null; - try { - json = Json.parse(bodyReader).asObject(); - bodyReader.close(); - } catch (IOException e) { - fail(e.getMessage()); - } - - return this.onJSONRequest((BoxJSONRequest) request, json); - } - - protected abstract BoxAPIResponse onJSONRequest(BoxJSONRequest request, JsonObject json); -} diff --git a/src/test/java/com/box/sdk/LRUCacheTest.java b/src/test/java/com/box/sdk/LRUCacheTest.java deleted file mode 100644 index 122786762..000000000 --- a/src/test/java/com/box/sdk/LRUCacheTest.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.box.sdk; - -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.is; - -import org.junit.Test; - -public class LRUCacheTest { - @Test - public void addReturnsTrueForNewItem() { - LRUCache lru = new LRUCache<>(); - boolean added = lru.add(1); - - assertThat(added, is(true)); - } - - @Test - public void addReturnsFalseForExistingItem() { - LRUCache lru = new LRUCache<>(); - lru.add(1); - boolean added = lru.add(1); - - assertThat(added, is(false)); - } - - @Test - public void addRemovesOldestItemWhenMaxSizeIsReached() { - LRUCache lru = new LRUCache<>(); - - for (int i = 0; i < LRUCache.MAX_SIZE + 1; i++) { - lru.add(i); - } - - boolean added = lru.add(0); - assertThat(added, is(true)); - } - - @Test - public void addMakesExistingItemNewer() { - LRUCache lru = new LRUCache<>(); - - for (int i = 0; i < LRUCache.MAX_SIZE; i++) { - lru.add(i); - } - - lru.add(0); - lru.add(LRUCache.MAX_SIZE + 1); - boolean added = lru.add(1); - assertThat(added, is(true)); - } - - @Test - public void addReturnsFalseForExistingItemMultipleTimes() { - LRUCache lru = new LRUCache<>(); - lru.add(1); - lru.add(1); - boolean added = lru.add(1); - - assertThat(added, is(false)); - } -} diff --git a/src/test/java/com/box/sdk/MetadataQueryTest.java b/src/test/java/com/box/sdk/MetadataQueryTest.java deleted file mode 100644 index cceb0e05e..000000000 --- a/src/test/java/com/box/sdk/MetadataQueryTest.java +++ /dev/null @@ -1,104 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.MetadataQuery.ANCESTOR_FOLDER_ID; -import static com.box.sdk.MetadataQuery.FIELDS; -import static com.box.sdk.MetadataQuery.FROM; -import static com.box.sdk.MetadataQuery.LIMIT; -import static com.box.sdk.MetadataQuery.MARKER; -import static com.box.sdk.MetadataQuery.ORDER_BY; -import static com.box.sdk.MetadataQuery.OrderBy.ascending; -import static com.box.sdk.MetadataQuery.OrderBy.descending; -import static com.box.sdk.MetadataQuery.QUERY; -import static com.box.sdk.MetadataQuery.QUERY_PARAMS; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.nullValue; -import static org.hamcrest.MatcherAssert.assertThat; - -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import org.junit.Test; - -public class MetadataQueryTest { - - @Test - public void createsMetadataQueryWithRequiredParameters() { - MetadataQuery query = new MetadataQuery("from somewhere", 100); - - JsonObject json = query.toJsonObject(); - assertThat(json.getString(FROM, ""), is("from somewhere")); - assertThat(json.getInt(LIMIT, 0), is(100)); - assertThat(json.get(QUERY), nullValue()); - assertThat(json.getString(ANCESTOR_FOLDER_ID, ""), is("0")); - assertThat(json.get(MARKER), nullValue()); - assertThat(json.get(ORDER_BY), nullValue()); - assertThat(json.get(FIELDS), nullValue()); - assertThat(json.get(QUERY_PARAMS), nullValue()); - } - - @Test - public void createsMetadataQuery() { - MetadataQuery query = new MetadataQuery("from somewhere", 100) - .setQuery("some query") - .setAncestorFolderId("23456789") - .setMarker("some marker") - .setOrderBy(ascending("field1"), descending("field2")) - .setFields("field3", "field4"); - - JsonObject json = query.toJsonObject(); - assertThat(json.getString(FROM, ""), is("from somewhere")); - assertThat(json.getInt(LIMIT, 0), is(100)); - assertThat(json.getString(QUERY, ""), is("some query")); - assertThat(json.getString(ANCESTOR_FOLDER_ID, ""), is("23456789")); - assertThat(json.getString(MARKER, ""), is("some marker")); - assertThat(json.get(ORDER_BY).asArray(), - is(new JsonArray() - .add(new JsonObject().add("field_key", "field1").add("direction", "asc")) - .add(new JsonObject().add("field_key", "field2").add("direction", "desc"))) - ); - assertThat(json.get(FIELDS).asArray(), is(new JsonArray().add("field3").add("field4"))); - } - - @Test - public void canAddParametersToQuery() { - MetadataQuery query = new MetadataQuery("from somewhere", 100) - .addParameter("stringParam", "some string") - .addParameter("intParam", 10) - .addParameter("boolParam", true) - .addParameter("floatParam", 100F) - .addParameter("longParam", 200L) - .addParameter("doubleParam", 300d) - .addParameter("doubleParam", 300d) - .addParameter("jsonParam", new JsonObject().add("json", "value")); - - JsonObject params = query.toJsonObject().get(QUERY_PARAMS).asObject(); - assertThat(params.getString("stringParam", ""), is("some string")); - assertThat(params.getInt("intParam", 0), is(10)); - assertThat(params.getBoolean("boolParam", false), is(true)); - assertThat(params.getFloat("floatParam", 0), is(100F)); - assertThat(params.getLong("longParam", 0), is(200L)); - assertThat(params.getDouble("doubleParam", 0), is(300d)); - assertThat(params.get("jsonParam"), is(new JsonObject().add("json", "value"))); - } - - @Test - public void canSetParametersOnQuery() { - MetadataQuery query = new MetadataQuery("from somewhere", 100) - .setQueryParams( - new JsonObject().add("stringParam", "some value") - ); - - JsonObject params = query.toJsonObject().get(QUERY_PARAMS).asObject(); - assertThat(params.getString("stringParam", ""), is("some value")); - } - - @Test - public void canSetOrderByAsJsonArray() { - MetadataQuery query = new MetadataQuery("from somewhere", 100) - .setOrderBy(new JsonArray().add( - new JsonObject().add("field_key", "field").add("direction", "desc") - )); - - String params = query.toJsonObject().get(ORDER_BY).toString(); - assertThat(params, is("[{\"field_key\":\"field\",\"direction\":\"desc\"}]")); - } -} diff --git a/src/test/java/com/box/sdk/MetadataTemplateTest.java b/src/test/java/com/box/sdk/MetadataTemplateTest.java deleted file mode 100644 index 3cba5b67c..000000000 --- a/src/test/java/com/box/sdk/MetadataTemplateTest.java +++ /dev/null @@ -1,331 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.http.ContentType.APPLICATION_JSON; -import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; -import static com.github.tomakehurst.wiremock.client.WireMock.post; -import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static java.lang.String.format; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.nullValue; -import static org.junit.Assert.assertEquals; - -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -/** - * {@link MetadataTemplate} related unit tests. - */ -public class MetadataTemplateTest { - - @Rule - public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicHttpsPort().httpDisabled(true)); - private final BoxAPIConnection api = TestUtils.getAPIConnection(); - - @Before - public void setUpBaseUrl() { - api.setMaxRetryAttempts(1); - api.setBaseURL(format("https://localhost:%d", wireMockRule.httpsPort())); - } - - @Test - public void testGetAllEnterpriseMetadataTemplatesSucceeds() { - final String firstEntryID = "12345"; - final String firstTemplateKey = "Test Template"; - final String secondEntryID = "23131"; - final String secondTemplateKey = "Test Template 2"; - final String metadataTemplateURL = "/2.0/metadata_templates/enterprise"; - - String result = TestUtils.getFixture("BoxMetadataTemplate/GetAllEnterpriseTemplates200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(metadataTemplateURL)) - .withQueryParam("limit", WireMock.containing("100")) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - Iterator templates = MetadataTemplate.getEnterpriseMetadataTemplates(this.api).iterator(); - MetadataTemplate template = templates.next(); - - assertEquals(firstEntryID, template.getID()); - assertEquals(firstTemplateKey, template.getTemplateKey()); - - MetadataTemplate secondTemplate = templates.next(); - - assertEquals(secondEntryID, secondTemplate.getID()); - assertEquals(secondTemplateKey, secondTemplate.getTemplateKey()); - } - - @Test - public void testGetOptionsReturnsListOfStrings() { - final String templateID = "f7a9891f"; - final String metadataTemplateURL = "/2.0/metadata_templates/" + templateID; - final ArrayList list = new ArrayList<>(); - list.add("Beauty"); - list.add("Shoes"); - String result = TestUtils.getFixture("BoxMetadataTemplate/GetMetadataTemplateOptionInfo200"); - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(metadataTemplateURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - MetadataTemplate template = MetadataTemplate.getMetadataTemplateByID(this.api, templateID); - List fields = template.getFields(); - for (MetadataTemplate.Field field : fields) { - if (field.getKey().equals("department")) { - assertEquals(list, field.getOptions()); - } - } - } - - @Test - public void testGetOptionsReturnsListOfOptionsObject() { - final String templateID = "f7a9891f"; - final String metadataTemplateURL = "/2.0/metadata_templates/" + templateID; - String result = TestUtils.getFixture("BoxMetadataTemplate/GetMetadataTemplateOptionInfo200"); - - wireMockRule.stubFor(WireMock.get(WireMock.urlPathEqualTo(metadataTemplateURL)) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - MetadataTemplate template = MetadataTemplate.getMetadataTemplateByID(this.api, templateID); - List fields = template.getFields(); - - for (MetadataTemplate.Field field : fields) { - if (field.getKey().equals("department")) { - List options = field.getOptionsObjects(); - MetadataTemplate.Option firstOption = options.get(0); - MetadataTemplate.Option secondOption = options.get(1); - assertEquals("Beauty", firstOption.getKey()); - assertEquals("f7a9895f", firstOption.getID()); - assertEquals("Shoes", secondOption.getKey()); - assertEquals("f7a9896f", secondOption.getID()); - } - } - } - - @Test - public void testSetOptionReturnsCorrectly() { - final String metadataTemplateURL = "/2.0/metadata_templates/schema"; - String result = TestUtils.getFixture("BoxMetadataTemplate/CreateMetadataTemplate200"); - - JsonObject keyObject = new JsonObject(); - keyObject.add("key", "FY16"); - - JsonObject secondKeyObject = new JsonObject(); - secondKeyObject.add("key", "FY17"); - - JsonArray optionsArray = new JsonArray(); - optionsArray.add(keyObject); - optionsArray.add(secondKeyObject); - - JsonObject enumObject = new JsonObject(); - enumObject.add("type", "enum") - .add("key", "fy") - .add("displayName", "FY") - .add("options", optionsArray); - - JsonArray fieldsArray = new JsonArray(); - fieldsArray.add(enumObject); - - JsonObject templateBody = new JsonObject(); - templateBody.add("scope", "enterprise") - .add("displayName", "Document Flow 03") - .add("hidden", false) - .add("templateKey", "documentFlow03") - .add("fields", fieldsArray); - - wireMockRule.stubFor(WireMock.post(WireMock.urlPathEqualTo(metadataTemplateURL)) - .withRequestBody(WireMock.equalToJson(templateBody.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - MetadataTemplate.Field fyField = new MetadataTemplate.Field(); - fyField.setType("enum"); - fyField.setKey("fy"); - fyField.setDisplayName("FY"); - - List options = new ArrayList<>(); - options.add("FY16"); - options.add("FY17"); - fyField.setOptions(options); - - List fields = new ArrayList<>(); - fields.add(fyField); - - MetadataTemplate template = MetadataTemplate.createMetadataTemplate(this.api, "enterprise", - "documentFlow03", "Document Flow 03", false, fields); - - assertEquals("FY16", template.getFields().get(0).getOptions().get(0)); - assertEquals("FY17", template.getFields().get(0).getOptions().get(1)); - } - - @Test - public void testUpdateMetadataReturnsCorrectly() { - final String metadataTemplateURL = "/2.0/metadata_templates/enterprise/documentFlow03/schema"; - String result = TestUtils.getFixture("BoxMetadataTemplate/UpdateMetadataTemplate200"); - - JsonObject editCopyDataObject = new JsonObject(); - editCopyDataObject.add("copyInstanceOnItemCopy", true); - - JsonObject editCopyOperation = new JsonObject(); - editCopyOperation.add("op", "editTemplate"); - editCopyOperation.add("data", editCopyDataObject); - - JsonArray body = new JsonArray(); - body.add(editCopyOperation); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(metadataTemplateURL)) - .withRequestBody(WireMock.equalToJson(body.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - List fieldOperations = new ArrayList<>(); - - MetadataTemplate.FieldOperation editTemplate = new MetadataTemplate.FieldOperation(); - editTemplate.setOp(MetadataTemplate.Operation.editTemplate); - MetadataTemplate.Field copyInstanceField = new MetadataTemplate.Field(); - copyInstanceField.setCopyInstanceOnItemCopy(Boolean.TRUE); - editTemplate.setData(copyInstanceField); - - fieldOperations.add(editTemplate); - - MetadataTemplate template = MetadataTemplate.updateMetadataTemplate(this.api, "enterprise", - "documentFlow03", fieldOperations); - assertEquals("Copy instance on item copy not set", true, template.getCopyInstanceOnItemCopy()); - } - - @Test - public void testUpdateMetadataTemplateWithStaticConfigReturnsCorrectly() { - final String metadataTemplateURL = "/2.0/metadata_templates/enterprise/documentFlow03/schema"; - String result = TestUtils.getFixture("BoxMetadataTemplate/UpdateMetadataTemplateWithStaticConfig200"); - - JsonObject classificationObject = new JsonObject(); - classificationObject.add("classificationDefinition", "Sensitive information"); - classificationObject.add("colorID", 4); - - JsonObject staticConfigObject = new JsonObject(); - staticConfigObject.add("classification", classificationObject); - - JsonObject dataObject = new JsonObject(); - dataObject.add("key", "Classified"); - dataObject.add("staticConfig", staticConfigObject); - - JsonObject editOperation = new JsonObject(); - editOperation.add("op", "editTemplate"); - editOperation.add("data", dataObject); - - JsonArray body = new JsonArray(); - body.add(editOperation); - - wireMockRule.stubFor(WireMock.put(WireMock.urlPathEqualTo(metadataTemplateURL)) - .withRequestBody(WireMock.equalToJson(body.toString())) - .willReturn(WireMock.aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - List fieldOperations = new ArrayList<>(); - - MetadataTemplate.FieldOperation editTemplate = new MetadataTemplate.FieldOperation(); - editTemplate.setOp(MetadataTemplate.Operation.editTemplate); - - MetadataTemplate.Field staticConfigField = new MetadataTemplate.Field(); - MetadataTemplate.StaticConfig staticConfig = new MetadataTemplate.StaticConfig(); - staticConfig.setClassification(classificationObject); - staticConfigField.setKey("Classified"); - staticConfigField.setStaticConfig(staticConfig); - editTemplate.setData(staticConfigField); - - fieldOperations.add(editTemplate); - MetadataTemplate template = MetadataTemplate.updateMetadataTemplate(this.api, "enterprise", - "documentFlow03", fieldOperations); - MetadataTemplate.Option option = template.getFields().get(0).getOptionsObjects().get(0); - assertEquals("Top Seret", option - .getStaticConfig().getClassification().getString("classificationDefinition", "null")); - assertEquals(4, option.getStaticConfig().getClassification().getInt("colorID", 0)); - } - - @Test - public void testExecuteMetadataQueryWithFields() { - final String metadataQueryURL = "/2.0/metadata_queries/execute_read"; - - final String from = "enterprise_67890.catalogImages"; - final String query = "photographer = :arg"; - final String ancestorFolderId = "0"; - final String field1 = "sha1"; - final String field2 = "name"; - final String field3 = "id"; - final String field4 = "metadata.enterprise_240748.catalogImages.photographer"; - final int limit = 2; - - JsonArray fields = new JsonArray(); - fields.add(field1); - fields.add(field2); - fields.add(field3); - fields.add(field4); - JsonObject body = new JsonObject(); - body.add("from", from); - body.add("query", query); - body.add("query_params", new JsonObject().add("arg", "Bob Dylan")); - body.add("ancestor_folder_id", ancestorFolderId); - body.add("limit", limit); - body.add("fields", fields); - - // First request will return a page of results with two items - String result = TestUtils.getFixture("BoxMetadataTemplate/MetadataQueryResponseForFields200"); - wireMockRule.stubFor(post(urlPathEqualTo(metadataQueryURL)) - .withRequestBody(equalToJson(body.toString())) - .willReturn(aResponse() - .withHeader("Content-Type", APPLICATION_JSON) - .withBody(result))); - - // Make the first request and get the result - MetadataQuery queryBody = new MetadataQuery(from, limit) - .setQuery(query) - .addParameter("arg", "Bob Dylan") - .setAncestorFolderId(ancestorFolderId) - .setFields(field1, field2, field3, field4); - BoxResourceIterable results = MetadataTemplate.executeMetadataQuery(this.api, queryBody); - - // First item on the first page of results - BoxFile.Info fileBoxItem = (BoxFile.Info) results.iterator().next(); - assertEquals("file", fileBoxItem.getType()); - assertEquals("1244738582", fileBoxItem.getID()); - assertEquals("Very Important.docx", fileBoxItem.getName()); - Metadata fileMetadata = fileBoxItem.getMetadata("catalogImages", "enterprise_67890"); - assertEquals("catalogImages", fileMetadata.getTemplateName()); - assertEquals("enterprise_67890", fileMetadata.getScope()); - assertEquals("Bob Dylan", fileMetadata.getString("/photographer")); - - // Second item on the first page of results - BoxFolder.Info folderBoxItem = (BoxFolder.Info) results.iterator().next(); - assertEquals("folder", folderBoxItem.getType()); - assertEquals("124242482", folderBoxItem.getID()); - assertEquals("Also Important.docx", folderBoxItem.getName()); - Metadata folderMetadata = folderBoxItem.getMetadata("catalogImages", "enterprise_67890"); - assertEquals("catalogImages", folderMetadata.getTemplateName()); - assertEquals("enterprise_67890", folderMetadata.getScope()); - assertEquals("Bob Dylan", folderMetadata.getString("/photographer")); - } - - @Test - public void canSetOptionsAsNullOnAField() { - MetadataTemplate.Field field = new MetadataTemplate.Field(); - - field.setOptions(null); - - assertThat(field.getOptions(), nullValue()); - } -} diff --git a/src/test/java/com/box/sdk/MetadataTest.java b/src/test/java/com/box/sdk/MetadataTest.java deleted file mode 100644 index a0cc54978..000000000 --- a/src/test/java/com/box/sdk/MetadataTest.java +++ /dev/null @@ -1,220 +0,0 @@ -package com.box.sdk; - -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.contains; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.fail; - -import com.eclipsesource.json.Json; -import com.eclipsesource.json.JsonArray; -import com.eclipsesource.json.JsonObject; -import com.eclipsesource.json.JsonValue; -import java.text.ParseException; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import org.junit.Test; - -public class MetadataTest { - - @Test - public void testConstructor() { - Metadata m = new Metadata(); - assertEquals("{}", m.toString()); - } - - @Test - public void testCopyConstructor() { - Metadata m1 = new Metadata().add("/foo", "bar"); - Metadata m2 = new Metadata(m1); - assertEquals("{\"foo\":\"bar\"}", m2.toString()); - } - - @Test - public void testAdd() { - Metadata m = new Metadata().add("/foo", "bar"); - JsonArray operations = Json.parse(m.getPatch()).asArray(); - assertEquals(1, operations.size()); - JsonObject op = operations.get(0).asObject(); - assertEquals("add", op.get("op").asString()); - assertEquals("/foo", op.get("path").asString()); - assertEquals("bar", op.get("value").asString()); - } - - @Test - public void testReplace() { - Metadata m = new Metadata().replace("/foo", "bar"); - JsonArray operations = Json.parse(m.getPatch()).asArray(); - assertEquals(1, operations.size()); - JsonObject op = operations.get(0).asObject(); - assertEquals("replace", op.get("op").asString()); - assertEquals("/foo", op.get("path").asString()); - assertEquals("bar", op.get("value").asString()); - } - - @Test - public void testReplaceWithMultiSelect() { - List valueList = new ArrayList<>(); - valueList.add("bar"); - valueList.add("qux"); - Metadata m = new Metadata().replace("/foo", valueList); - JsonArray operations = Json.parse(m.getPatch()).asArray(); - assertEquals(1, operations.size()); - JsonObject op = operations.get(0).asObject(); - assertEquals("replace", op.get("op").asString()); - assertEquals("/foo", op.get("path").asString()); - assertEquals("[\"bar\",\"qux\"]", op.get("value").toString()); - } - - @Test - public void testTest() { - Metadata m = new Metadata().test("/foo", "bar"); - JsonArray operations = Json.parse(m.getPatch()).asArray(); - assertEquals(1, operations.size()); - JsonObject op = operations.get(0).asObject(); - assertEquals("test", op.get("op").asString()); - assertEquals("/foo", op.get("path").asString()); - assertEquals("bar", op.get("value").asString()); - } - - @Test - public void testMultiSelect() { - String expectedList = "[\"public test 1\",\"public test 2\",\"public test 3\"]"; - List list = new ArrayList<>(); - list.add("public test 1"); - list.add("public test 2"); - list.add("public test 3"); - Metadata m = new Metadata().test("/foo", list); - JsonArray operations = Json.parse(m.getPatch()).asArray(); - JsonObject op = operations.get(0).asObject(); - assertEquals("test", op.get("op").asString()); - assertEquals("/foo", op.get("path").asString()); - assertEquals(expectedList, op.get("value").toString()); - } - - @Test - public void testRemove() { - Metadata m = new Metadata().remove("/foo"); - JsonArray operations = Json.parse(m.getPatch()).asArray(); - assertEquals(1, operations.size()); - JsonObject op = operations.get(0).asObject(); - assertEquals("remove", op.get("op").asString()); - assertEquals("/foo", op.get("path").asString()); - } - - @Test - public void testInvalidGet() { - Metadata m = new Metadata(); - assertNull(m.getValue("/foo")); - } - - @Test(expected = IllegalArgumentException.class) - public void testNullPath() { - new Metadata().add(null, "value"); - } - - @Test(expected = IllegalArgumentException.class) - public void testInvalidPath() { - new Metadata().add("key", "value"); - } - - @Test - public void testMetaProperties() { - String json = "{\"$id\":\"123\",\"$type\":\"my type\",\"$parent\":\"456\"}"; - Metadata m = new Metadata(Json.parse(json).asObject()); - assertEquals("123", m.getID()); - assertEquals("my type", m.getTypeName()); - assertEquals("456", m.getParentID()); - } - - @Test - public void testMissingMetaProperties() { - Metadata m = new Metadata(); - assertNull(m.getID()); - assertNull(m.getTypeName()); - assertNull(m.getParentID()); - } - - @Test - public void testGetValues() { - // Run test with various Date formats. - this.getValues("\"2017-10-10T22:10:00-08:00\"", 1507702200000L); - this.getValues("\"2017-10-10T22:10:00.000-08:00\"", 1507702200000L); - this.getValues("\"2017-10-10T22:10:00.123-08:00\"", 1507702200123L); - this.getValues("\"2017-10-10T22:10:00.100-08:00\"", 1507702200100L); - } - - public void getValues(String dateString, Long dateLong) { - - final String stringValue = "Q1 plans"; - final int intValue = 123456; - final String[] arrayValue = new String[2]; - arrayValue[0] = "internal"; - arrayValue[1] = "internalEng"; - Date dateValue = new Date(); - dateValue.setTime(dateLong); - - String json = "{\n" - + " \"audiences\": [\"internal\", \"internalEng\"],\n" - + " \"documentType\": \"" + stringValue + "\",\n" - + " \"competitiveDocument\": \"no\",\n" - + " \"status\": \"active\",\n" - + " \"deadline\": " + dateString + ",\n" - + " \"capacity\": " + intValue + ",\n" - + " \"currentState\": \"proposal\",\n" - + " \"$type\": \"marketingCollateral-d086c908-2498-4d3e-8a1f-01e82bfc2abe\",\n" - + " \"$parent\": \"file_5010739061\",\n" - + " \"$id\": \"2094c584-68e1-475c-a581-534a4609594e\",\n" - + " \"$version\": 0,\n" - + " \"$typeVersion\": 0,\n" - + " \"$template\": \"marketingCollateral\",\n" - + " \"$scope\": \"enterprise_12345\"\n" - + "}"; - Metadata md = new Metadata(Json.parse(json).asObject()); - - assertEquals(stringValue, md.getValue("/documentType").asString()); - assertEquals(stringValue, md.getString("/documentType")); - - assertEquals(intValue, md.getValue("/capacity").asInt()); - assertEquals(intValue, md.getDouble("/capacity"), 0); - - try { - assertEquals(dateValue, md.getDate("/deadline")); - } catch (ParseException ex) { - fail("Could not parse date in metadata"); - } - - for (int i = 0; i < arrayValue.length; i++) { - assertEquals(arrayValue[i], md.getValue("/audiences").asArray().get(i).asString()); - } - } - - @Test - public void getHandlesArrayValue() { - - String json = "{\n" - + " \"audiences\": [\"internal\", \"internalEng\"],\n" - + " \"$type\": \"marketingCollateral-d086c908-2498-4d3e-8a1f-01e82bfc2abe\",\n" - + " \"$parent\": \"file_5010739061\",\n" - + " \"$id\": \"2094c584-68e1-475c-a581-534a4609594e\",\n" - + " \"$version\": 0,\n" - + " \"$typeVersion\": 0,\n" - + " \"$template\": \"marketingCollateral\",\n" - + " \"$scope\": \"enterprise_12345\"\n" - + "}"; - Metadata md = new Metadata(Json.parse(json).asObject()); - - List audiences = this.audiencesAsList(md.getValue("/audiences")); - assertThat(audiences, contains("internal", "internalEng")); - } - - private List audiencesAsList(JsonValue value) { - JsonArray jsonValues = value.asArray(); - List audiences = new ArrayList<>(); - for (JsonValue jsonValue : jsonValues) { - audiences.add(jsonValue.asString()); - } - return audiences; - } -} diff --git a/src/test/java/com/box/sdk/PagingParametersTest.java b/src/test/java/com/box/sdk/PagingParametersTest.java deleted file mode 100644 index c67b78077..000000000 --- a/src/test/java/com/box/sdk/PagingParametersTest.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.box.sdk; - -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThrows; - -import org.junit.Test; - -public class PagingParametersTest { - @Test - public void returnsAsQueryStringBuilderForOffsetPagination() { - PagingParameters pagingParameters = PagingParameters.offset(130, 20); - - QueryStringBuilder queryStringBuilder = pagingParameters.asQueryStringBuilder(); - assertThat(queryStringBuilder.toString(), is("?limit=20&offset=130")); - } - - @Test - public void returnsAsQueryStringBuilderWhenStartingMarkerPagination() { - PagingParameters pagingParameters = PagingParameters.marker(20); - - QueryStringBuilder queryStringBuilder = pagingParameters.asQueryStringBuilder(); - assertThat(queryStringBuilder.toString(), is("?limit=20&usemarker=true")); - } - - @Test - public void returnsAsQueryStringBuilderWhenUsingNextMarker() { - PagingParameters pagingParameters = PagingParameters.marker(20).nextMarker("34332423"); - - QueryStringBuilder queryStringBuilder = pagingParameters.asQueryStringBuilder(); - assertThat(queryStringBuilder.toString(), is("?limit=20&usemarker=true&marker=34332423")); - } - - @Test - public void cannotSetOffsetLargerThan300000() { - assertThrows( - "The maximum offset for offset-based pagination is 300000." - + " Marker-based pagination is recommended when a higher offset is needed.", - IllegalArgumentException.class, - () -> PagingParameters.offset(300001, 10) - ); - } - - @Test - public void cannotContinueWithOffsetLargerThan300000() { - assertThrows( - "The maximum offset for offset-based pagination is 300000." - + " Marker-based pagination is recommended when a higher offset is needed.", - IllegalArgumentException.class, - () -> PagingParameters.offset(100, 10).nextOffset(300001) - ); - } - - @Test - public void cannotSwitchToOffsetPaginationWhenMarkerIsUsed() { - assertThrows( - "Cannot change marker paging to offset based paging. Use PagingParameters#nextMarker(String).", - IllegalArgumentException.class, - () -> PagingParameters.marker(20).nextOffset(100) - ); - } - - @Test - public void cannotSwitchToMarkerPaginationWhenOffsetIsUsed() { - assertThrows( - "Cannot change offset paging to marker based paging. Use PagingParameters#nextOffset(long).", - IllegalArgumentException.class, - () -> PagingParameters.offset(20, 10).nextMarker("nextMarker") - ); - } -} diff --git a/src/test/java/com/box/sdk/QueryStringBuilderTest.java b/src/test/java/com/box/sdk/QueryStringBuilderTest.java deleted file mode 100644 index 0887671b9..000000000 --- a/src/test/java/com/box/sdk/QueryStringBuilderTest.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.box.sdk; - -import static org.hamcrest.Matchers.is; - -import java.net.MalformedURLException; -import java.net.URL; -import org.hamcrest.MatcherAssert; -import org.junit.Test; - -public class QueryStringBuilderTest { - @Test - public void addToUrlWithQuery() throws MalformedURLException { - URL url = new URL("http://localhost:53621/folders/123456/items?sort=name&direction=DESC"); - - QueryStringBuilder queryStringBuilder = new QueryStringBuilder().appendParam("limit", 20); - - URL urlWithNewParam = queryStringBuilder.addToURL(url); - MatcherAssert.assertThat(urlWithNewParam.toString(), - is("http://localhost:53621/folders/123456/items?sort=name&direction=DESC&limit=20")); - } - - @Test - public void addToUrlWithEmptyQuery() throws MalformedURLException { - URL url = new URL("http://localhost:53621/folders/123456/items?"); - - QueryStringBuilder queryStringBuilder = new QueryStringBuilder().appendParam("limit", 20); - - URL urlWithNewParam = queryStringBuilder.addToURL(url); - MatcherAssert.assertThat(urlWithNewParam.toString(), - is("http://localhost:53621/folders/123456/items?limit=20")); - } - - @Test - public void addToUrlWithoutQuery() throws MalformedURLException { - URL url = new URL("http://localhost:53621/folders/123456/items"); - - QueryStringBuilder queryStringBuilder = new QueryStringBuilder().appendParam("limit", 20); - - URL urlWithNewParam = queryStringBuilder.addToURL(url); - MatcherAssert.assertThat(urlWithNewParam.toString(), - is("http://localhost:53621/folders/123456/items?limit=20")); - } - - @Test - public void replacesAddsQueryWhenQueryIsEmpty() throws MalformedURLException { - URL url = new URL("http://localhost:53621/folders/123456/items"); - - QueryStringBuilder queryStringBuilder = new QueryStringBuilder().appendParam("limit", 20); - - URL urlWithNewParam = queryStringBuilder.replaceQuery(url); - MatcherAssert.assertThat(urlWithNewParam.toString(), - is("http://localhost:53621/folders/123456/items?limit=20")); - } - - @Test - public void replacesQuery() throws MalformedURLException { - URL url = new URL("http://localhost:53621/folders/123456/items?limit=40"); - - QueryStringBuilder queryStringBuilder = new QueryStringBuilder().appendParam("limit", 20); - - URL urlWithNewParam = queryStringBuilder.replaceQuery(url); - MatcherAssert.assertThat(urlWithNewParam.toString(), - is("http://localhost:53621/folders/123456/items?limit=20")); - } - - @Test - public void replacesQueryWhenBuildFromExistingQuery() throws MalformedURLException { - URL url = new URL("http://localhost:53621/folders/123456/items?limit=40"); - - QueryStringBuilder queryStringBuilder = new QueryStringBuilder("limit=20"); - - URL urlWithNewParam = queryStringBuilder.replaceQuery(url); - MatcherAssert.assertThat(urlWithNewParam.toString(), - is("http://localhost:53621/folders/123456/items?limit=20")); - } -} diff --git a/src/test/java/com/box/sdk/RequestBodyFromStreamTest.java b/src/test/java/com/box/sdk/RequestBodyFromStreamTest.java deleted file mode 100644 index d442c6d1a..000000000 --- a/src/test/java/com/box/sdk/RequestBodyFromStreamTest.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.box.sdk; - -import static com.box.sdk.AbstractBoxMultipartRequest.BUFFER_SIZE; - -import java.io.ByteArrayInputStream; -import java.util.Random; -import java.util.concurrent.atomic.AtomicInteger; -import okhttp3.MediaType; -import okio.Buffer; -import org.hamcrest.MatcherAssert; -import org.hamcrest.Matchers; -import org.junit.Test; - -public class RequestBodyFromStreamTest { - - @Test - public void reportCorrectProgressWhenFileIsEmpty() { - ByteArrayInputStream inputStream = new ByteArrayInputStream(new byte[]{}); - ProgressListener progressListener = (numBytes, totalBytes) -> { - MatcherAssert.assertThat(numBytes, Matchers.is((long) 0)); - MatcherAssert.assertThat(totalBytes, Matchers.is((long) 0)); - }; - - RequestBodyFromStream request = new RequestBodyFromStream( - inputStream, - MediaType.parse("application/json"), - progressListener, - 0 - ); - - request.writeTo(new Buffer()); - } - - @Test - public void reportCorrectProgressWhenFileSizeIfLessThanBuffer() { - int howManyBytes = 1000; - ByteArrayInputStream inputStream = new ByteArrayInputStream(generateBytes(howManyBytes)); - ProgressListener progressListener = (numBytes, totalBytes) -> { - MatcherAssert.assertThat(numBytes, Matchers.is((long) howManyBytes)); - MatcherAssert.assertThat(totalBytes, Matchers.is((long) howManyBytes)); - }; - - RequestBodyFromStream request = new RequestBodyFromStream( - inputStream, - MediaType.parse("application/json"), - progressListener, - howManyBytes - ); - - request.writeTo(new Buffer()); - } - - @Test - public void reportCorrectProgressWhenFileSizeIfEqualToBuffer() { - int howManyBytes = BUFFER_SIZE; - ByteArrayInputStream inputStream = new ByteArrayInputStream(generateBytes(howManyBytes)); - ProgressListener progressListener = (numBytes, totalBytes) -> { - MatcherAssert.assertThat(numBytes, Matchers.is((long) howManyBytes)); - MatcherAssert.assertThat(totalBytes, Matchers.is((long) howManyBytes)); - }; - - RequestBodyFromStream request = new RequestBodyFromStream( - inputStream, - MediaType.parse("application/json"), - progressListener, - howManyBytes - ); - - request.writeTo(new Buffer()); - } - - @Test - public void reportCorrectProgressWhenFileSizeIfGreaterThanBuffer() { - int howManyBytes = BUFFER_SIZE + 1000; - ByteArrayInputStream inputStream = new ByteArrayInputStream(generateBytes(howManyBytes)); - AtomicInteger counter = new AtomicInteger(0); - ProgressListener progressListener = (numBytes, totalBytes) -> { - if (counter.getAndIncrement() == 0) { - MatcherAssert.assertThat(numBytes, Matchers.is((long) BUFFER_SIZE)); - MatcherAssert.assertThat(totalBytes, Matchers.is((long) howManyBytes)); - } else { - MatcherAssert.assertThat(numBytes, Matchers.is((long) howManyBytes)); - MatcherAssert.assertThat(totalBytes, Matchers.is((long) howManyBytes)); - } - }; - - RequestBodyFromStream request = new RequestBodyFromStream( - inputStream, - MediaType.parse("application/json"), - progressListener, - howManyBytes - ); - - request.writeTo(new Buffer()); - } - - private byte[] generateBytes(int howManyBytes) { - byte[] bytes = new byte[howManyBytes]; - new Random().nextBytes(bytes); - return bytes; - } -} diff --git a/src/test/java/com/box/sdk/SortParametersTest.java b/src/test/java/com/box/sdk/SortParametersTest.java deleted file mode 100644 index 9abd48aad..000000000 --- a/src/test/java/com/box/sdk/SortParametersTest.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.box.sdk; - - -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.is; - -import org.junit.Test; - -public class SortParametersTest { - @Test - public void returnsAsQueryStringBuilderForAscendingSorting() { - SortParameters sortParameters = SortParameters.ascending("field_123"); - - QueryStringBuilder queryStringBuilder = sortParameters.asQueryStringBuilder(); - assertThat(queryStringBuilder.toString(), is("?sort=field_123&direction=ASC")); - } - - @Test - public void returnsAsQueryStringBuilderForDescendingSorting() { - SortParameters sortParameters = SortParameters.descending("field_123"); - - QueryStringBuilder queryStringBuilder = sortParameters.asQueryStringBuilder(); - assertThat(queryStringBuilder.toString(), is("?sort=field_123&direction=DESC")); - } - - @Test - public void returnEmptySortParameters() { - SortParameters sortParameters = SortParameters.none(); - - QueryStringBuilder queryStringBuilder = sortParameters.asQueryStringBuilder(); - assertThat(queryStringBuilder.toString(), is("")); - } -} diff --git a/src/test/java/com/box/sdk/TestUtils.java b/src/test/java/com/box/sdk/TestUtils.java deleted file mode 100644 index 217dfdbf1..000000000 --- a/src/test/java/com/box/sdk/TestUtils.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.box.sdk; - -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.IOException; - - -final class TestUtils { - - private TestUtils() { - } - - public static BoxAPIConnection getAPIConnection() { - return new BoxAPIConnectionForTests(""); - } - - /** - * Util function to help get JSON fixtures for tests. - */ - public static String getFixture(String fixtureName) { - String fixtureFullPath = "./src/test/Fixtures/" + fixtureName + ".json"; - try (BufferedReader reader = new BufferedReader(new FileReader(fixtureFullPath))) { - StringBuilder builder = new StringBuilder(); - String line = reader.readLine(); - - while (line != null) { - builder.append(line); - builder.append("\n"); - line = reader.readLine(); - } - return builder.toString(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - /** - * Util function to help get JSON fixtures for tests. - */ - public static String getFixture(String fixtureName, int portNumber) { - String fixture = getFixture(fixtureName); - return fixture.replaceAll(":53621", ":" + portNumber); - } - - public static BoxAPIConnection createConnectionWith(String baseUrl) { - BoxAPIConnection connection = TestUtils.getAPIConnection(); - connection.setBaseURL(baseUrl); - return connection; - } -} diff --git a/src/test/java/com/box/sdk/TrustAllTrustManager.java b/src/test/java/com/box/sdk/TrustAllTrustManager.java deleted file mode 100644 index d2d2dbb84..000000000 --- a/src/test/java/com/box/sdk/TrustAllTrustManager.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.box.sdk; - -import javax.net.ssl.X509TrustManager; - -class TrustAllTrustManager implements X509TrustManager { - @Override - public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) { - } - - @Override - public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) { - } - - @Override - public java.security.cert.X509Certificate[] getAcceptedIssuers() { - return new java.security.cert.X509Certificate[]{}; - } -} diff --git a/src/test/java/com/box/sdk/internal/utils/CollectionUtilsTest.java b/src/test/java/com/box/sdk/internal/utils/CollectionUtilsTest.java deleted file mode 100644 index fe146f25b..000000000 --- a/src/test/java/com/box/sdk/internal/utils/CollectionUtilsTest.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.box.sdk.internal.utils; - -import java.util.Arrays; -import org.junit.Assert; -import org.junit.Test; - - -/** - * Unit tests for {@link CollectionUtils}. - */ -public class CollectionUtilsTest { - - /** - * Unit tests for {@link CollectionUtils#map(java.util.Collection, com.box.sdk.utils.CollectionUtils.Mapper)}. - */ - @Test - public void testMap() { - Integer[] expected = new Integer[]{1, 2}; - Integer[] actual = CollectionUtils.map(Arrays.asList(expected), new CollectionUtils.Mapper() { - - @Override - public Integer map(Integer input) { - return input + 1; - } - - }).toArray(new Integer[2]); - - Assert.assertEquals(2, actual.length); - Assert.assertEquals((Integer) (expected[0] + 1), actual[0]); - Assert.assertEquals((Integer) (expected[1] + 1), actual[1]); - } - -} diff --git a/src/test/java/com/box/sdkgen/test/ai/AiITest.java b/src/test/java/com/box/sdkgen/test/ai/AiITest.java new file mode 100644 index 000000000..740c2c96c --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/ai/AiITest.java @@ -0,0 +1,436 @@ +package com.box.sdkgen.test.ai; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.dateTimeFromString; +import static com.box.sdkgen.internal.utils.UtilsManager.delayInSeconds; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.internal.utils.UtilsManager.getValueFromObjectRawData; +import static com.box.sdkgen.internal.utils.UtilsManager.stringToByteStream; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.ai.GetAiAgentDefaultConfigQueryParams; +import com.box.sdkgen.managers.ai.GetAiAgentDefaultConfigQueryParamsModeField; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBody; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsField; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsOptionsField; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsTypeField; +import com.box.sdkgen.managers.metadatatemplates.DeleteMetadataTemplateScope; +import com.box.sdkgen.managers.uploads.UploadFileRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesParentField; +import com.box.sdkgen.schemas.aiagentask.AiAgentAsk; +import com.box.sdkgen.schemas.aiagentaskoraiagentextractoraiagentextractstructuredoraiagenttextgen.AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen; +import com.box.sdkgen.schemas.aiagentextract.AiAgentExtract; +import com.box.sdkgen.schemas.aiagentextractstructured.AiAgentExtractStructured; +import com.box.sdkgen.schemas.aiagentlongtexttool.AiAgentLongTextTool; +import com.box.sdkgen.schemas.aiagenttextgen.AiAgentTextGen; +import com.box.sdkgen.schemas.aiask.AiAsk; +import com.box.sdkgen.schemas.aiask.AiAskModeField; +import com.box.sdkgen.schemas.aidialoguehistory.AiDialogueHistory; +import com.box.sdkgen.schemas.aiextract.AiExtract; +import com.box.sdkgen.schemas.aiextractstructured.AiExtractStructured; +import com.box.sdkgen.schemas.aiextractstructured.AiExtractStructuredFieldsField; +import com.box.sdkgen.schemas.aiextractstructured.AiExtractStructuredFieldsOptionsField; +import com.box.sdkgen.schemas.aiextractstructured.AiExtractStructuredMetadataTemplateField; +import com.box.sdkgen.schemas.aiextractstructuredresponse.AiExtractStructuredResponse; +import com.box.sdkgen.schemas.aiitemask.AiItemAsk; +import com.box.sdkgen.schemas.aiitemask.AiItemAskTypeField; +import com.box.sdkgen.schemas.aiitembase.AiItemBase; +import com.box.sdkgen.schemas.airesponse.AiResponse; +import com.box.sdkgen.schemas.airesponsefull.AiResponseFull; +import com.box.sdkgen.schemas.aitextgen.AiTextGen; +import com.box.sdkgen.schemas.aitextgen.AiTextGenItemsField; +import com.box.sdkgen.schemas.aitextgen.AiTextGenItemsTypeField; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.files.Files; +import com.box.sdkgen.schemas.metadatatemplate.MetadataTemplate; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class AiITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testAskAiSingleItem() { + AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen aiAgentConfig = + client + .getAi() + .getAiAgentDefaultConfig( + new GetAiAgentDefaultConfigQueryParams.Builder( + GetAiAgentDefaultConfigQueryParamsModeField.ASK) + .language("en-US") + .build()); + AiAgentAsk aiAskAgentConfig = aiAgentConfig.getAiAgentAsk(); + FileFull fileToAsk = uploadNewFile(); + AiResponseFull response = + client + .getAi() + .createAiAsk( + new AiAsk.Builder( + AiAskModeField.SINGLE_ITEM_QA, + "which direction sun rises", + Arrays.asList( + new AiItemAsk.Builder(fileToAsk.getId(), AiItemAskTypeField.FILE) + .content("Sun rises in the East") + .build())) + .aiAgent(aiAskAgentConfig) + .build()); + assert response.getAnswer().contains("East"); + assert response.getCompletionReason().equals("done"); + client.getFiles().deleteFileById(fileToAsk.getId()); + } + + @Test + public void testAskAiMultipleItems() { + FileFull fileToAsk1 = uploadNewFile(); + FileFull fileToAsk2 = uploadNewFile(); + AiResponseFull response = + client + .getAi() + .createAiAsk( + new AiAsk( + AiAskModeField.MULTIPLE_ITEM_QA, + "Which direction sun rises?", + Arrays.asList( + new AiItemAsk.Builder(fileToAsk1.getId(), AiItemAskTypeField.FILE) + .content("Earth goes around the sun") + .build(), + new AiItemAsk.Builder(fileToAsk2.getId(), AiItemAskTypeField.FILE) + .content("Sun rises in the East in the morning") + .build()))); + assert response.getAnswer().contains("East"); + assert response.getCompletionReason().equals("done"); + client.getFiles().deleteFileById(fileToAsk1.getId()); + client.getFiles().deleteFileById(fileToAsk2.getId()); + } + + @Test + public void testAiTextGenWithDialogueHistory() { + FileFull fileToAsk = uploadNewFile(); + AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen aiAgentConfig = + client + .getAi() + .getAiAgentDefaultConfig( + new GetAiAgentDefaultConfigQueryParams.Builder( + GetAiAgentDefaultConfigQueryParamsModeField.TEXT_GEN) + .language("en-US") + .build()); + AiAgentTextGen aiTextGenAgentConfig = aiAgentConfig.getAiAgentTextGen(); + AiResponse response = + client + .getAi() + .createAiTextGen( + new AiTextGen.Builder( + "Parapharse the document.s", + Arrays.asList( + new AiTextGenItemsField.Builder(fileToAsk.getId()) + .type(AiTextGenItemsTypeField.FILE) + .content( + "The Earth goes around the sun. Sun rises in the East in the morning.") + .build())) + .dialogueHistory( + Arrays.asList( + new AiDialogueHistory.Builder() + .prompt("What does the earth go around?") + .answer("The sun") + .createdAt(dateTimeFromString("2021-01-01T00:00:00Z")) + .build(), + new AiDialogueHistory.Builder() + .prompt("On Earth, where does the sun rise?") + .answer("East") + .createdAt(dateTimeFromString("2021-01-01T00:00:00Z")) + .build())) + .aiAgent(aiTextGenAgentConfig) + .build()); + assert response.getAnswer().contains("sun"); + assert response.getCompletionReason().equals("done"); + client.getFiles().deleteFileById(fileToAsk.getId()); + } + + @Test + public void testGettingAiAskAgentConfig() { + AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen aiAgentConfig = + client + .getAi() + .getAiAgentDefaultConfig( + new GetAiAgentDefaultConfigQueryParams.Builder( + GetAiAgentDefaultConfigQueryParamsModeField.ASK) + .language("en-US") + .build()); + assert aiAgentConfig.getType().equals("ai_agent_ask"); + AiAgentAsk aiAgentAskConfig = aiAgentConfig.getAiAgentAsk(); + assert !(aiAgentAskConfig.getBasicText().getModel().equals("")); + assert !(aiAgentAskConfig.getBasicText().getPromptTemplate().equals("")); + assert aiAgentAskConfig.getBasicText().getNumTokensForCompletion() > -1; + assert !(aiAgentAskConfig.getBasicText().getLlmEndpointParams() == null); + assert !(aiAgentAskConfig.getBasicTextMulti().getModel().equals("")); + assert !(aiAgentAskConfig.getBasicTextMulti().getPromptTemplate().equals("")); + assert aiAgentAskConfig.getBasicTextMulti().getNumTokensForCompletion() > -1; + assert !(aiAgentAskConfig.getBasicTextMulti().getLlmEndpointParams() == null); + assert !(aiAgentAskConfig.getLongText().getModel().equals("")); + assert !(aiAgentAskConfig.getLongText().getPromptTemplate().equals("")); + assert aiAgentAskConfig.getLongText().getNumTokensForCompletion() > -1; + assert !(aiAgentAskConfig.getLongText().getEmbeddings().getModel().equals("")); + assert !(aiAgentAskConfig.getLongText().getEmbeddings().getStrategy().getId().equals("")); + assert !(aiAgentAskConfig.getLongText().getLlmEndpointParams() == null); + assert !(aiAgentAskConfig.getLongTextMulti().getModel().equals("")); + assert !(aiAgentAskConfig.getLongTextMulti().getPromptTemplate().equals("")); + assert aiAgentAskConfig.getLongTextMulti().getNumTokensForCompletion() > -1; + assert !(aiAgentAskConfig.getLongTextMulti().getEmbeddings().getModel().equals("")); + assert !(aiAgentAskConfig.getLongTextMulti().getEmbeddings().getStrategy().getId().equals("")); + assert !(aiAgentAskConfig.getLongTextMulti().getLlmEndpointParams() == null); + } + + @Test + public void testGettingAiTextGenAgentConfig() { + AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen aiAgentConfig = + client + .getAi() + .getAiAgentDefaultConfig( + new GetAiAgentDefaultConfigQueryParams.Builder( + GetAiAgentDefaultConfigQueryParamsModeField.TEXT_GEN) + .language("en-US") + .build()); + assert aiAgentConfig.getType().equals("ai_agent_text_gen"); + AiAgentTextGen aiAgentTextGenConfig = aiAgentConfig.getAiAgentTextGen(); + assert !(aiAgentTextGenConfig.getBasicGen().getLlmEndpointParams() == null); + assert !(aiAgentTextGenConfig.getBasicGen().getModel().equals("")); + assert !(aiAgentTextGenConfig.getBasicGen().getPromptTemplate().equals("")); + assert aiAgentTextGenConfig.getBasicGen().getNumTokensForCompletion() > -1; + assert !(aiAgentTextGenConfig.getBasicGen().getContentTemplate().equals("")); + assert !(aiAgentTextGenConfig.getBasicGen().getEmbeddings().getModel().equals("")); + assert !(aiAgentTextGenConfig.getBasicGen().getEmbeddings().getStrategy().getId().equals("")); + } + + @Test + public void testAiExtract() { + AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen aiAgentConfig = + client + .getAi() + .getAiAgentDefaultConfig( + new GetAiAgentDefaultConfigQueryParams.Builder( + GetAiAgentDefaultConfigQueryParamsModeField.EXTRACT) + .language("en-US") + .build()); + AiAgentExtract aiExtractAgentConfig = aiAgentConfig.getAiAgentExtract(); + AiAgentLongTextTool longTextConfigWithNoEmbeddings = + new AiAgentLongTextTool.Builder() + .systemMessage(aiExtractAgentConfig.getLongText().getSystemMessage()) + .promptTemplate(aiExtractAgentConfig.getLongText().getPromptTemplate()) + .model(aiExtractAgentConfig.getLongText().getModel()) + .numTokensForCompletion(aiExtractAgentConfig.getLongText().getNumTokensForCompletion()) + .llmEndpointParams(aiExtractAgentConfig.getLongText().getLlmEndpointParams()) + .build(); + AiAgentExtract agentIgnoringOverridingEmbeddingsModel = + new AiAgentExtract.Builder() + .longText(longTextConfigWithNoEmbeddings) + .basicText(aiExtractAgentConfig.getBasicText()) + .build(); + Files uploadedFiles = + client + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + String.join("", getUuid(), ".txt"), + new UploadFileRequestBodyAttributesParentField("0")), + stringToByteStream( + "My name is John Doe. I live in San Francisco. I was born in 1990. I work at Box."))); + FileFull file = uploadedFiles.getEntries().get(0); + delayInSeconds(5); + AiResponse response = + client + .getAi() + .createAiExtract( + new AiExtract.Builder( + "firstName, lastName, location, yearOfBirth, company", + Arrays.asList(new AiItemBase(file.getId()))) + .aiAgent(agentIgnoringOverridingEmbeddingsModel) + .build()); + String expectedResponse = + "{\"firstName\": \"John\", \"lastName\": \"Doe\", \"location\": \"San Francisco\", \"yearOfBirth\": \"1990\", \"company\": \"Box\"}"; + assert response.getAnswer().equals(expectedResponse); + assert response.getCompletionReason().equals("done"); + client.getFiles().deleteFileById(file.getId()); + } + + @Test + public void testAiExtractStructuredWithFields() { + AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen aiAgentConfig = + client + .getAi() + .getAiAgentDefaultConfig( + new GetAiAgentDefaultConfigQueryParams.Builder( + GetAiAgentDefaultConfigQueryParamsModeField.EXTRACT_STRUCTURED) + .language("en-US") + .build()); + AiAgentExtractStructured aiExtractStructuredAgentConfig = + aiAgentConfig.getAiAgentExtractStructured(); + AiAgentLongTextTool longTextConfigWithNoEmbeddings = + new AiAgentLongTextTool.Builder() + .systemMessage(aiExtractStructuredAgentConfig.getLongText().getSystemMessage()) + .promptTemplate(aiExtractStructuredAgentConfig.getLongText().getPromptTemplate()) + .model(aiExtractStructuredAgentConfig.getLongText().getModel()) + .numTokensForCompletion( + aiExtractStructuredAgentConfig.getLongText().getNumTokensForCompletion()) + .llmEndpointParams(aiExtractStructuredAgentConfig.getLongText().getLlmEndpointParams()) + .build(); + AiAgentExtractStructured agentIgnoringOverridingEmbeddingsModel = + new AiAgentExtractStructured.Builder() + .longText(longTextConfigWithNoEmbeddings) + .basicText(aiExtractStructuredAgentConfig.getBasicText()) + .build(); + Files uploadedFiles = + client + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + String.join("", getUuid(), ".txt"), + new UploadFileRequestBodyAttributesParentField("0")), + stringToByteStream( + "My name is John Doe. I was born in 4th July 1990. I am 34 years old. My hobby is guitar."))); + FileFull file = uploadedFiles.getEntries().get(0); + delayInSeconds(5); + AiExtractStructuredResponse response = + client + .getAi() + .createAiExtractStructured( + new AiExtractStructured.Builder(Arrays.asList(new AiItemBase(file.getId()))) + .fields( + Arrays.asList( + new AiExtractStructuredFieldsField.Builder("firstName") + .description("Person first name") + .displayName("First name") + .prompt("What is the your first name?") + .type("string") + .build(), + new AiExtractStructuredFieldsField.Builder("lastName") + .description("Person last name") + .displayName("Last name") + .prompt("What is the your last name?") + .type("string") + .build(), + new AiExtractStructuredFieldsField.Builder("dateOfBirth") + .description("Person date of birth") + .displayName("Birth date") + .prompt("What is the date of your birth?") + .type("date") + .build(), + new AiExtractStructuredFieldsField.Builder("age") + .description("Person age") + .displayName("Age") + .prompt("How old are you?") + .type("float") + .build(), + new AiExtractStructuredFieldsField.Builder("hobby") + .description("Person hobby") + .displayName("Hobby") + .prompt("What is your hobby?") + .type("multiSelect") + .options( + Arrays.asList( + new AiExtractStructuredFieldsOptionsField("guitar"), + new AiExtractStructuredFieldsOptionsField("books"))) + .build())) + .aiAgent(agentIgnoringOverridingEmbeddingsModel) + .build()); + assert convertToString(getValueFromObjectRawData(response, "answer.hobby")) + .equals(convertToString(Arrays.asList("guitar"))); + assert convertToString(getValueFromObjectRawData(response, "answer.firstName")).equals("John"); + assert convertToString(getValueFromObjectRawData(response, "answer.lastName")).equals("Doe"); + assert convertToString(getValueFromObjectRawData(response, "answer.dateOfBirth")) + .equals("1990-07-04"); + assert convertToString(getValueFromObjectRawData(response, "answer.age")).equals("34"); + assert response.getCompletionReason().equals("done"); + client.getFiles().deleteFileById(file.getId()); + } + + @Test + public void testAiExtractStructuredWithMetadataTemplate() { + Files uploadedFiles = + client + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + String.join("", getUuid(), ".txt"), + new UploadFileRequestBodyAttributesParentField("0")), + stringToByteStream( + "My name is John Doe. I was born in 4th July 1990. I am 34 years old. My hobby is guitar."))); + FileFull file = uploadedFiles.getEntries().get(0); + delayInSeconds(5); + String templateKey = String.join("", "key", getUuid()); + MetadataTemplate template = + client + .getMetadataTemplates() + .createMetadataTemplate( + new CreateMetadataTemplateRequestBody.Builder("enterprise", templateKey) + .templateKey(templateKey) + .fields( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsField.Builder( + CreateMetadataTemplateRequestBodyFieldsTypeField.STRING, + "firstName", + "First name") + .description("Person first name") + .build(), + new CreateMetadataTemplateRequestBodyFieldsField.Builder( + CreateMetadataTemplateRequestBodyFieldsTypeField.STRING, + "lastName", + "Last name") + .description("Person last name") + .build(), + new CreateMetadataTemplateRequestBodyFieldsField.Builder( + CreateMetadataTemplateRequestBodyFieldsTypeField.DATE, + "dateOfBirth", + "Birth date") + .description("Person date of birth") + .build(), + new CreateMetadataTemplateRequestBodyFieldsField.Builder( + CreateMetadataTemplateRequestBodyFieldsTypeField.FLOAT, + "age", + "Age") + .description("Person age") + .build(), + new CreateMetadataTemplateRequestBodyFieldsField.Builder( + CreateMetadataTemplateRequestBodyFieldsTypeField.MULTISELECT, + "hobby", + "Hobby") + .description("Person hobby") + .options( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "guitar"), + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "books"))) + .build())) + .build()); + AiExtractStructuredResponse response = + client + .getAi() + .createAiExtractStructured( + new AiExtractStructured.Builder(Arrays.asList(new AiItemBase(file.getId()))) + .metadataTemplate( + new AiExtractStructuredMetadataTemplateField.Builder() + .templateKey(templateKey) + .scope("enterprise") + .build()) + .build()); + assert convertToString(getValueFromObjectRawData(response, "answer.firstName")).equals("John"); + assert convertToString(getValueFromObjectRawData(response, "answer.lastName")).equals("Doe"); + assert convertToString(getValueFromObjectRawData(response, "answer.dateOfBirth")) + .equals("1990-07-04T00:00:00Z"); + assert convertToString(getValueFromObjectRawData(response, "answer.age")).equals("34"); + assert convertToString(getValueFromObjectRawData(response, "answer.hobby")) + .equals(convertToString(Arrays.asList("guitar"))); + assert response.getCompletionReason().equals("done"); + client + .getMetadataTemplates() + .deleteMetadataTemplate(DeleteMetadataTemplateScope.ENTERPRISE, template.getTemplateKey()); + client.getFiles().deleteFileById(file.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/aistudio/AiStudioITest.java b/src/test/java/com/box/sdkgen/test/aistudio/AiStudioITest.java new file mode 100644 index 000000000..8299c093b --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/aistudio/AiStudioITest.java @@ -0,0 +1,98 @@ +package com.box.sdkgen.test.aistudio; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.aistudio.GetAiAgentByIdQueryParams; +import com.box.sdkgen.schemas.aiagentreference.AiAgentReference; +import com.box.sdkgen.schemas.aiask.AiAsk; +import com.box.sdkgen.schemas.aiask.AiAskModeField; +import com.box.sdkgen.schemas.aiitemask.AiItemAsk; +import com.box.sdkgen.schemas.aiitemask.AiItemAskTypeField; +import com.box.sdkgen.schemas.aimultipleagentresponse.AiMultipleAgentResponse; +import com.box.sdkgen.schemas.airesponsefull.AiResponseFull; +import com.box.sdkgen.schemas.aisingleagentresponsefull.AiSingleAgentResponseFull; +import com.box.sdkgen.schemas.aistudioagentask.AiStudioAgentAsk; +import com.box.sdkgen.schemas.createaiagent.CreateAiAgent; +import com.box.sdkgen.schemas.filefull.FileFull; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class AiStudioITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testAiStudioCrud() { + String agentName = getUuid(); + AiSingleAgentResponseFull createdAgent = + client + .getAiStudio() + .createAiAgent( + new CreateAiAgent.Builder(agentName, "enabled") + .ask(new AiStudioAgentAsk("enabled", "desc1")) + .build()); + assert createdAgent.getName().equals(agentName); + AiMultipleAgentResponse agents = client.getAiStudio().getAiAgents(); + int numAgents = agents.getEntries().size(); + assert convertToString(agents.getEntries().get(0).getType()).equals("ai_agent"); + AiSingleAgentResponseFull retrievedAgent = + client + .getAiStudio() + .getAiAgentById( + createdAgent.getId(), + new GetAiAgentByIdQueryParams.Builder().fields(Arrays.asList("ask")).build()); + assert retrievedAgent.getName().equals(agentName); + assert convertToString(retrievedAgent.getAccessState()).equals("enabled"); + assert convertToString(retrievedAgent.getAsk().getAccessState()).equals("enabled"); + assert retrievedAgent.getAsk().getDescription().equals("desc1"); + AiSingleAgentResponseFull updatedAgent = + client + .getAiStudio() + .updateAiAgentById( + createdAgent.getId(), + new CreateAiAgent.Builder(agentName, "enabled") + .ask(new AiStudioAgentAsk("disabled", "desc2")) + .build()); + assert convertToString(updatedAgent.getAccessState()).equals("enabled"); + assert convertToString(updatedAgent.getAsk().getAccessState()).equals("disabled"); + assert updatedAgent.getAsk().getDescription().equals("desc2"); + client.getAiStudio().deleteAiAgentById(createdAgent.getId()); + AiMultipleAgentResponse agentsAfterDelete = client.getAiStudio().getAiAgents(); + assert agentsAfterDelete.getEntries().size() == numAgents - 1; + } + + @Test + public void testUseAiAgentReferenceInAiAsk() { + String agentName = getUuid(); + AiSingleAgentResponseFull createdAgent = + client + .getAiStudio() + .createAiAgent( + new CreateAiAgent.Builder(agentName, "enabled") + .ask(new AiStudioAgentAsk("enabled", "desc1")) + .build()); + FileFull fileToAsk = uploadNewFile(); + AiResponseFull response = + client + .getAi() + .createAiAsk( + new AiAsk.Builder( + AiAskModeField.SINGLE_ITEM_QA, + "which direction sun rises", + Arrays.asList( + new AiItemAsk.Builder(fileToAsk.getId(), AiItemAskTypeField.FILE) + .content("Sun rises in the East") + .build())) + .aiAgent(new AiAgentReference.Builder().id(createdAgent.getId()).build()) + .build()); + assert response.getAnswer().contains("East"); + assert response.getCompletionReason().equals("done"); + assert response.getAiAgentInfo().getModels().size() > 0; + client.getFiles().deleteFileById(fileToAsk.getId()); + client.getAiStudio().deleteAiAgentById(createdAgent.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/appitemassociations/AppItemAssociationsITest.java b/src/test/java/com/box/sdkgen/test/appitemassociations/AppItemAssociationsITest.java new file mode 100644 index 000000000..28b9739c1 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/appitemassociations/AppItemAssociationsITest.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.test.appitemassociations; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.files.GetFileByIdQueryParams; +import com.box.sdkgen.managers.folders.GetFolderByIdQueryParams; +import com.box.sdkgen.schemas.appitemassociation.AppItemAssociation; +import com.box.sdkgen.schemas.appitemassociations.AppItemAssociations; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class AppItemAssociationsITest { + + @Test + public void testListFileAppItemAssocations() { + BoxClient client = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); + String fileId = getEnvVar("APP_ITEM_ASSOCIATION_FILE_ID"); + AppItemAssociations fileAppItemAssociations = + client.getAppItemAssociations().getFileAppItemAssociations(fileId); + assert fileAppItemAssociations.getEntries().size() == 1; + AppItemAssociation association = fileAppItemAssociations.getEntries().get(0); + assert !(association.getId().equals("")); + assert convertToString(association.getAppItem().getApplicationType()).equals("hubs"); + assert convertToString(association.getAppItem().getType()).equals("app_item"); + assert convertToString(association.getItem().getType()).equals("file"); + assert association.getItem().getId().equals(fileId); + FileFull file = + client + .getFiles() + .getFileById( + fileId, + new GetFileByIdQueryParams.Builder() + .fields(Arrays.asList("is_associated_with_app_item")) + .build()); + assert file.getIsAssociatedWithAppItem() == true; + } + + @Test + public void testListFolderAppItemAssocations() { + BoxClient client = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); + String folderId = getEnvVar("APP_ITEM_ASSOCIATION_FOLDER_ID"); + AppItemAssociations folderAppItemAssociations = + client.getAppItemAssociations().getFolderAppItemAssociations(folderId); + assert folderAppItemAssociations.getEntries().size() == 1; + AppItemAssociation association = folderAppItemAssociations.getEntries().get(0); + assert !(association.getId().equals("")); + assert convertToString(association.getAppItem().getApplicationType()).equals("hubs"); + assert convertToString(association.getAppItem().getType()).equals("app_item"); + assert convertToString(association.getItem().getType()).equals("folder"); + assert association.getItem().getId().equals(folderId); + FolderFull folder = + client + .getFolders() + .getFolderById( + folderId, + new GetFolderByIdQueryParams.Builder() + .fields(Arrays.asList("is_associated_with_app_item")) + .build()); + assert folder.getIsAssociatedWithAppItem() == true; + } +} diff --git a/src/test/java/com/box/sdkgen/test/archives/ArchivesITest.java b/src/test/java/com/box/sdkgen/test/archives/ArchivesITest.java new file mode 100644 index 000000000..24d9105ab --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/archives/ArchivesITest.java @@ -0,0 +1,39 @@ +package com.box.sdkgen.test.archives; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.archives.CreateArchiveV2025R0RequestBody; +import com.box.sdkgen.managers.archives.GetArchivesV2025R0QueryParams; +import com.box.sdkgen.schemas.v2025r0.archivesv2025r0.ArchivesV2025R0; +import com.box.sdkgen.schemas.v2025r0.archivev2025r0.ArchiveV2025R0; +import org.junit.jupiter.api.Test; + +public class ArchivesITest { + + private static final String userId = getEnvVar("USER_ID"); + + private static final BoxClient client = getDefaultClientWithUserSubject(userId); + + @Test + public void testArchivesCreateListDelete() { + String archiveName = getUuid(); + ArchiveV2025R0 archive = + client.getArchives().createArchiveV2025R0(new CreateArchiveV2025R0RequestBody(archiveName)); + assert convertToString(archive.getType()).equals("archive"); + assert archive.getName().equals(archiveName); + ArchivesV2025R0 archives = + client + .getArchives() + .getArchivesV2025R0(new GetArchivesV2025R0QueryParams.Builder().limit(100L).build()); + assert archives.getEntries().size() > 0; + client.getArchives().deleteArchiveByIdV2025R0(archive.getId()); + assertThrows( + RuntimeException.class, + () -> client.getArchives().deleteArchiveByIdV2025R0(archive.getId())); + } +} diff --git a/src/test/java/com/box/sdkgen/test/auth/AuthITest.java b/src/test/java/com/box/sdkgen/test/auth/AuthITest.java new file mode 100644 index 000000000..864b862ec --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/auth/AuthITest.java @@ -0,0 +1,386 @@ +package com.box.sdkgen.test.auth; + +import static com.box.sdkgen.internal.utils.UtilsManager.decodeBase64; +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.box.ccgauth.BoxCCGAuth; +import com.box.sdkgen.box.ccgauth.CCGConfig; +import com.box.sdkgen.box.developertokenauth.BoxDeveloperTokenAuth; +import com.box.sdkgen.box.developertokenauth.DeveloperTokenConfig; +import com.box.sdkgen.box.jwtauth.BoxJWTAuth; +import com.box.sdkgen.box.jwtauth.JWTConfig; +import com.box.sdkgen.box.oauth.BoxOAuth; +import com.box.sdkgen.box.oauth.OAuthConfig; +import com.box.sdkgen.box.tokenstorage.InMemoryTokenStorage; +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.files.UpdateFileByIdRequestBody; +import com.box.sdkgen.managers.folders.CreateFolderRequestBody; +import com.box.sdkgen.managers.folders.CreateFolderRequestBodyParentField; +import com.box.sdkgen.managers.folders.UpdateFolderByIdRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesParentField; +import com.box.sdkgen.managers.users.GetUserMeQueryParams; +import com.box.sdkgen.schemas.accesstoken.AccessToken; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.files.Files; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.userfull.UserFull; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class AuthITest { + + public static AccessToken getAccessToken() { + String userId = getEnvVar("USER_ID"); + String enterpriseId = getEnvVar("ENTERPRISE_ID"); + CCGConfig ccgConfig = + new CCGConfig.Builder(getEnvVar("CLIENT_ID"), getEnvVar("CLIENT_SECRET")) + .enterpriseId(enterpriseId) + .userId(userId) + .build(); + BoxCCGAuth auth = new BoxCCGAuth(ccgConfig); + BoxCCGAuth authUser = auth.withUserSubject(userId); + return authUser.retrieveToken(); + } + + @Test + public void testJwtAuth() { + String userId = getEnvVar("USER_ID"); + String enterpriseId = getEnvVar("ENTERPRISE_ID"); + JWTConfig jwtConfig = + JWTConfig.fromConfigJsonString(decodeBase64(getEnvVar("JWT_CONFIG_BASE_64"))); + BoxJWTAuth auth = new BoxJWTAuth(jwtConfig); + BoxJWTAuth userAuth = auth.withUserSubject(userId); + BoxClient userClient = new BoxClient(userAuth); + UserFull currentUser = userClient.getUsers().getUserMe(); + assert currentUser.getId().equals(userId); + BoxJWTAuth enterpriseAuth = auth.withEnterpriseSubject(enterpriseId); + BoxClient enterpriseClient = new BoxClient(enterpriseAuth); + UserFull newUser = + enterpriseClient + .getUsers() + .getUserMe( + new GetUserMeQueryParams.Builder().fields(Arrays.asList("enterprise")).build()); + assert !(newUser.getEnterprise() == null); + assert newUser.getEnterprise().getId().equals(enterpriseId); + assert !(newUser.getId().equals(userId)); + } + + @Test + public void testJwtAuthDownscope() { + JWTConfig jwtConfig = + JWTConfig.fromConfigJsonString(decodeBase64(getEnvVar("JWT_CONFIG_BASE_64"))); + BoxJWTAuth auth = new BoxJWTAuth(jwtConfig); + BoxClient parentClient = new BoxClient(auth); + Files uploadedFiles = + parentClient + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + getUuid(), new UploadFileRequestBodyAttributesParentField("0")), + generateByteStream(1024 * 1024))); + FileFull file = uploadedFiles.getEntries().get(0); + String resourcePath = String.join("", "https://api.box.com/2.0/files/", file.getId()); + AccessToken downscopedToken = + auth.downscopeToken(Arrays.asList("item_rename", "item_preview"), resourcePath, null, null); + assert !(downscopedToken.getAccessToken() == null); + BoxClient downscopedClient = + new BoxClient(new BoxDeveloperTokenAuth(downscopedToken.getAccessToken())); + downscopedClient + .getFiles() + .updateFileById( + file.getId(), new UpdateFileByIdRequestBody.Builder().name(getUuid()).build()); + assertThrows( + RuntimeException.class, () -> downscopedClient.getFiles().deleteFileById(file.getId())); + parentClient.getFiles().deleteFileById(file.getId()); + } + + @Test + public void testJwtDownscopeTokenSucceedsIfNoTokenAvailable() { + JWTConfig jwtConfig = + JWTConfig.fromConfigJsonString(decodeBase64(getEnvVar("JWT_CONFIG_BASE_64"))); + BoxJWTAuth auth = new BoxJWTAuth(jwtConfig); + AccessToken downscopedToken = + auth.downscopeToken(Arrays.asList("root_readonly"), null, null, null); + assert !(downscopedToken.getAccessToken() == null); + BoxClient downscopedClient = + new BoxClient(new BoxDeveloperTokenAuth(downscopedToken.getAccessToken())); + assertThrows( + RuntimeException.class, + () -> + downscopedClient + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + getUuid(), new UploadFileRequestBodyAttributesParentField("0")), + generateByteStream(1024 * 1024)))); + } + + @Test + public void testJwtAuthRevoke() { + JWTConfig jwtConfig = + JWTConfig.fromConfigJsonString(decodeBase64(getEnvVar("JWT_CONFIG_BASE_64"))); + BoxJWTAuth auth = new BoxJWTAuth(jwtConfig); + AccessToken tokenFromStorageBeforeRevoke = auth.retrieveToken(); + assert !(tokenFromStorageBeforeRevoke == null); + auth.revokeToken(); + AccessToken tokenFromStorageAfterRevoke = auth.retrieveToken(); + assert !(tokenFromStorageBeforeRevoke + .getAccessToken() + .equals(tokenFromStorageAfterRevoke.getAccessToken())); + } + + @Test + public void testOauthAuthAuthorizeUrl() { + OAuthConfig config = new OAuthConfig("OAUTH_CLIENT_ID", "OAUTH_CLIENT_SECRET"); + BoxOAuth auth = new BoxOAuth(config); + String authUrl = auth.getAuthorizeUrl(); + assert authUrl.equals( + "https://account.box.com/api/oauth2/authorize?client_id=OAUTH_CLIENT_ID&response_type=code") + || authUrl.equals( + "https://account.box.com/api/oauth2/authorize?response_type=code&client_id=OAUTH_CLIENT_ID"); + } + + @Test + public void testOauthDownscopeTokenSucceedsIfNoTokenAvailable() { + OAuthConfig config = new OAuthConfig(getEnvVar("CLIENT_ID"), getEnvVar("CLIENT_SECRET")); + BoxOAuth auth = new BoxOAuth(config); + String resourcePath = String.join("", "https://api.box.com/2.0/files/12345"); + assertThrows( + RuntimeException.class, + () -> + auth.downscopeToken( + Arrays.asList("item_rename", "item_preview"), resourcePath, null, null)); + } + + @Test + public void testCcgAuth() { + String userId = getEnvVar("USER_ID"); + String enterpriseId = getEnvVar("ENTERPRISE_ID"); + CCGConfig ccgConfig = + new CCGConfig.Builder(getEnvVar("CLIENT_ID"), getEnvVar("CLIENT_SECRET")) + .enterpriseId(enterpriseId) + .userId(userId) + .build(); + BoxCCGAuth auth = new BoxCCGAuth(ccgConfig); + BoxCCGAuth userAuth = auth.withUserSubject(userId); + BoxClient userClient = new BoxClient(userAuth); + UserFull currentUser = userClient.getUsers().getUserMe(); + assert currentUser.getId().equals(userId); + BoxCCGAuth enterpriseAuth = auth.withEnterpriseSubject(enterpriseId); + BoxClient enterpriseClient = new BoxClient(enterpriseAuth); + UserFull newUser = + enterpriseClient + .getUsers() + .getUserMe( + new GetUserMeQueryParams.Builder().fields(Arrays.asList("enterprise")).build()); + assert !(newUser.getEnterprise() == null); + assert newUser.getEnterprise().getId().equals(enterpriseId); + assert !(newUser.getId().equals(userId)); + } + + @Test + public void testCcgAuthDownscope() { + CCGConfig ccgConfig = + new CCGConfig.Builder(getEnvVar("CLIENT_ID"), getEnvVar("CLIENT_SECRET")) + .userId(getEnvVar("USER_ID")) + .build(); + BoxCCGAuth auth = new BoxCCGAuth(ccgConfig); + BoxClient parentClient = new BoxClient(auth); + FolderFull folder = + parentClient + .getFolders() + .createFolder( + new CreateFolderRequestBody( + getUuid(), new CreateFolderRequestBodyParentField("0"))); + String resourcePath = String.join("", "https://api.box.com/2.0/folders/", folder.getId()); + AccessToken downscopedToken = + auth.downscopeToken(Arrays.asList("item_rename", "item_preview"), resourcePath, null, null); + assert !(downscopedToken.getAccessToken() == null); + BoxClient downscopedClient = + new BoxClient(new BoxDeveloperTokenAuth(downscopedToken.getAccessToken())); + downscopedClient + .getFolders() + .updateFolderById( + folder.getId(), new UpdateFolderByIdRequestBody.Builder().name(getUuid()).build()); + assertThrows( + RuntimeException.class, + () -> downscopedClient.getFolders().deleteFolderById(folder.getId())); + parentClient.getFolders().deleteFolderById(folder.getId()); + } + + @Test + public void testCcgDownscopeTokenSucceedsIfNoTokenAvailable() { + CCGConfig ccgConfig = + new CCGConfig.Builder(getEnvVar("CLIENT_ID"), getEnvVar("CLIENT_SECRET")) + .userId(getEnvVar("USER_ID")) + .build(); + BoxCCGAuth auth = new BoxCCGAuth(ccgConfig); + AccessToken downscopedToken = + auth.downscopeToken(Arrays.asList("root_readonly"), null, null, null); + assert !(downscopedToken.getAccessToken() == null); + BoxClient downscopedClient = + new BoxClient(new BoxDeveloperTokenAuth(downscopedToken.getAccessToken())); + assertThrows( + RuntimeException.class, + () -> + downscopedClient + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + getUuid(), new UploadFileRequestBodyAttributesParentField("0")), + generateByteStream(1024 * 1024)))); + } + + @Test + public void testCcgAuthRevoke() { + CCGConfig ccgConfig = + new CCGConfig.Builder(getEnvVar("CLIENT_ID"), getEnvVar("CLIENT_SECRET")) + .userId(getEnvVar("USER_ID")) + .build(); + BoxCCGAuth auth = new BoxCCGAuth(ccgConfig); + AccessToken tokenFromStorageBeforeRevoke = auth.retrieveToken(); + assert !(tokenFromStorageBeforeRevoke == null); + auth.revokeToken(); + AccessToken tokenFromStorageAfterRevoke = auth.retrieveToken(); + assert !(tokenFromStorageBeforeRevoke + .getAccessToken() + .equals(tokenFromStorageAfterRevoke.getAccessToken())); + } + + @Test + public void testDeveloperDownscopeTokenSucceedsIfNoTokenAvailable() { + DeveloperTokenConfig developerTokenConfig = + new DeveloperTokenConfig.Builder() + .clientId(getEnvVar("CLIENT_ID")) + .clientSecret(getEnvVar("CLIENT_SECRET")) + .build(); + BoxDeveloperTokenAuth auth = + new BoxDeveloperTokenAuth.Builder("").config(developerTokenConfig).build(); + String resourcePath = String.join("", "https://api.box.com/2.0/folders/12345"); + assertThrows( + RuntimeException.class, + () -> + auth.downscopeToken( + Arrays.asList("item_rename", "item_preview"), resourcePath, null, null)); + } + + @Test + public void testDeveloperTokenAuthRevoke() { + DeveloperTokenConfig developerTokenConfig = + new DeveloperTokenConfig.Builder() + .clientId(getEnvVar("CLIENT_ID")) + .clientSecret(getEnvVar("CLIENT_SECRET")) + .build(); + AccessToken token = getAccessToken(); + BoxDeveloperTokenAuth auth = + new BoxDeveloperTokenAuth.Builder(token.getAccessToken()) + .config(developerTokenConfig) + .build(); + AccessToken tokenFromStorageBeforeRevoke = auth.retrieveToken(); + assert !(tokenFromStorageBeforeRevoke == null); + auth.revokeToken(); + assertThrows(RuntimeException.class, () -> auth.retrieveToken()); + } + + @Test + public void testDeveloperTokenAuthDownscope() { + DeveloperTokenConfig developerTokenConfig = + new DeveloperTokenConfig.Builder() + .clientId(getEnvVar("CLIENT_ID")) + .clientSecret(getEnvVar("CLIENT_SECRET")) + .build(); + AccessToken token = getAccessToken(); + BoxDeveloperTokenAuth auth = + new BoxDeveloperTokenAuth.Builder(token.getAccessToken()) + .config(developerTokenConfig) + .build(); + BoxClient parentClient = new BoxClient(auth); + FolderFull folder = + parentClient + .getFolders() + .createFolder( + new CreateFolderRequestBody( + getUuid(), new CreateFolderRequestBodyParentField("0"))); + String resourcePath = String.join("", "https://api.box.com/2.0/folders/", folder.getId()); + AccessToken downscopedToken = + auth.downscopeToken(Arrays.asList("item_rename", "item_preview"), resourcePath, null, null); + assert !(downscopedToken.getAccessToken() == null); + BoxClient downscopedClient = + new BoxClient(new BoxDeveloperTokenAuth(downscopedToken.getAccessToken())); + downscopedClient + .getFolders() + .updateFolderById( + folder.getId(), new UpdateFolderByIdRequestBody.Builder().name(getUuid()).build()); + assertThrows( + RuntimeException.class, + () -> downscopedClient.getFolders().deleteFolderById(folder.getId())); + parentClient.getFolders().deleteFolderById(folder.getId()); + } + + @Test + public void testDeveloperTokenAuth() { + String userId = getEnvVar("USER_ID"); + AccessToken token = getAccessToken(); + BoxDeveloperTokenAuth devAuth = new BoxDeveloperTokenAuth(token.getAccessToken()); + BoxClient client = new BoxClient(devAuth); + UserFull currentUser = client.getUsers().getUserMe(); + assert currentUser.getId().equals(userId); + } + + @Test + public void testOauthAuthRevoke() { + AccessToken token = getAccessToken(); + InMemoryTokenStorage tokenStorage = new InMemoryTokenStorage.Builder().token(token).build(); + OAuthConfig config = + new OAuthConfig.Builder(getEnvVar("CLIENT_ID"), getEnvVar("CLIENT_SECRET")) + .tokenStorage(tokenStorage) + .build(); + BoxOAuth auth = new BoxOAuth(config); + BoxClient client = new BoxClient(auth); + client.getUsers().getUserMe(); + auth.revokeToken(); + assertThrows(RuntimeException.class, () -> client.getUsers().getUserMe()); + } + + @Test + public void testOauthAuthDownscope() { + AccessToken token = getAccessToken(); + InMemoryTokenStorage tokenStorage = new InMemoryTokenStorage.Builder().token(token).build(); + OAuthConfig config = + new OAuthConfig.Builder(getEnvVar("CLIENT_ID"), getEnvVar("CLIENT_SECRET")) + .tokenStorage(tokenStorage) + .build(); + BoxOAuth auth = new BoxOAuth(config); + BoxClient parentClient = new BoxClient(auth); + Files uploadedFiles = + parentClient + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + getUuid(), new UploadFileRequestBodyAttributesParentField("0")), + generateByteStream(1024 * 1024))); + FileFull file = uploadedFiles.getEntries().get(0); + String resourcePath = String.join("", "https://api.box.com/2.0/files/", file.getId()); + AccessToken downscopedToken = + auth.downscopeToken(Arrays.asList("item_rename", "item_preview"), resourcePath, null, null); + assert !(downscopedToken.getAccessToken() == null); + BoxClient downscopedClient = + new BoxClient(new BoxDeveloperTokenAuth(downscopedToken.getAccessToken())); + downscopedClient + .getFiles() + .updateFileById( + file.getId(), new UpdateFileByIdRequestBody.Builder().name(getUuid()).build()); + assertThrows( + RuntimeException.class, () -> downscopedClient.getFiles().deleteFileById(file.getId())); + parentClient.getFiles().deleteFileById(file.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/avatars/AvatarsITest.java b/src/test/java/com/box/sdkgen/test/avatars/AvatarsITest.java new file mode 100644 index 000000000..419ecaea4 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/avatars/AvatarsITest.java @@ -0,0 +1,43 @@ +package com.box.sdkgen.test.avatars; + +import static com.box.sdkgen.internal.utils.UtilsManager.bufferEquals; +import static com.box.sdkgen.internal.utils.UtilsManager.decodeBase64ByteStream; +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteBuffer; +import static com.box.sdkgen.internal.utils.UtilsManager.readByteStream; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.avatars.CreateUserAvatarRequestBody; +import com.box.sdkgen.schemas.useravatar.UserAvatar; +import com.box.sdkgen.schemas.userfull.UserFull; +import java.io.InputStream; +import org.junit.jupiter.api.Test; + +public class AvatarsITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testAvatars() { + UserFull user = client.getUsers().getUserMe(); + UserAvatar createdAvatar = + client + .getAvatars() + .createUserAvatar( + user.getId(), + new CreateUserAvatarRequestBody.Builder( + decodeBase64ByteStream( + "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAQMAAABmvDolAAAAA1BMVEW10NBjBBbqAAAAH0lEQVRoge3BAQ0AAADCoPdPbQ43oAAAAAAAAAAAvg0hAAABmmDh1QAAAABJRU5ErkJggg==")) + .picFileName("avatar.png") + .picContentType("image/png") + .build()); + assert !(createdAvatar.getPicUrls().getSmall() == null); + assert !(createdAvatar.getPicUrls().getLarge() == null); + assert !(createdAvatar.getPicUrls().getPreview() == null); + InputStream response = client.getAvatars().getUserAvatar(user.getId()); + assert bufferEquals(readByteStream(response), generateByteBuffer(0)) == false; + client.getAvatars().deleteUserAvatar(user.getId()); + assertThrows(RuntimeException.class, () -> client.getAvatars().getUserAvatar(user.getId())); + } +} diff --git a/src/test/java/com/box/sdkgen/test/chunkeduploads/ChunkedUploadsITest.java b/src/test/java/com/box/sdkgen/test/chunkeduploads/ChunkedUploadsITest.java new file mode 100644 index 000000000..e8413e4fa --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/chunkeduploads/ChunkedUploadsITest.java @@ -0,0 +1,239 @@ +package com.box.sdkgen.test.chunkeduploads; + +import static com.box.sdkgen.internal.utils.UtilsManager.bufferLength; +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStreamFromBuffer; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.internal.utils.UtilsManager.hexToBase64; +import static com.box.sdkgen.internal.utils.UtilsManager.iterateChunks; +import static com.box.sdkgen.internal.utils.UtilsManager.readByteStream; +import static com.box.sdkgen.internal.utils.UtilsManager.reduceIterator; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.internal.utils.Hash; +import com.box.sdkgen.internal.utils.HashName; +import com.box.sdkgen.managers.chunkeduploads.CreateFileUploadSessionCommitByUrlHeaders; +import com.box.sdkgen.managers.chunkeduploads.CreateFileUploadSessionCommitByUrlRequestBody; +import com.box.sdkgen.managers.chunkeduploads.CreateFileUploadSessionCommitHeaders; +import com.box.sdkgen.managers.chunkeduploads.CreateFileUploadSessionCommitRequestBody; +import com.box.sdkgen.managers.chunkeduploads.CreateFileUploadSessionRequestBody; +import com.box.sdkgen.managers.chunkeduploads.UploadFilePartByUrlHeaders; +import com.box.sdkgen.managers.chunkeduploads.UploadFilePartHeaders; +import com.box.sdkgen.schemas.file.File; +import com.box.sdkgen.schemas.files.Files; +import com.box.sdkgen.schemas.uploadedpart.UploadedPart; +import com.box.sdkgen.schemas.uploadpart.UploadPart; +import com.box.sdkgen.schemas.uploadparts.UploadParts; +import com.box.sdkgen.schemas.uploadsession.UploadSession; +import java.io.InputStream; +import java.util.Arrays; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.jupiter.api.Test; + +public class ChunkedUploadsITest { + + private static final BoxClient client = getDefaultClient(); + + public static TestPartAccumulator reducerById(TestPartAccumulator acc, InputStream chunk) { + int lastIndex = acc.getLastIndex(); + List parts = acc.getParts(); + byte[] chunkBuffer = readByteStream(chunk); + Hash hash = new Hash(HashName.SHA1); + hash.updateHash(chunkBuffer); + String sha1 = hash.digestHash("base64"); + String digest = String.join("", "sha=", sha1); + int chunkSize = bufferLength(chunkBuffer); + int bytesStart = lastIndex + 1; + int bytesEnd = lastIndex + chunkSize; + String contentRange = + String.join( + "", + "bytes ", + convertToString(bytesStart), + "-", + convertToString(bytesEnd), + "/", + convertToString(acc.getFileSize())); + UploadedPart uploadedPart = + client + .getChunkedUploads() + .uploadFilePart( + acc.getUploadSessionId(), + generateByteStreamFromBuffer(chunkBuffer), + new UploadFilePartHeaders(digest, contentRange)); + UploadPart part = uploadedPart.getPart(); + String partSha1 = hexToBase64(part.getSha1()); + assert partSha1.equals(sha1); + assert part.getSize() == chunkSize; + assert part.getOffset() == bytesStart; + acc.getFileHash().updateHash(chunkBuffer); + return new TestPartAccumulator.Builder( + bytesEnd, + Stream.concat(parts.stream(), Arrays.asList(part).stream()) + .collect(Collectors.toList()), + acc.getFileSize(), + acc.getFileHash()) + .uploadSessionId(acc.getUploadSessionId()) + .build(); + } + + public static TestPartAccumulator reducerByUrl(TestPartAccumulator acc, InputStream chunk) { + int lastIndex = acc.getLastIndex(); + List parts = acc.getParts(); + byte[] chunkBuffer = readByteStream(chunk); + Hash hash = new Hash(HashName.SHA1); + hash.updateHash(chunkBuffer); + String sha1 = hash.digestHash("base64"); + String digest = String.join("", "sha=", sha1); + int chunkSize = bufferLength(chunkBuffer); + int bytesStart = lastIndex + 1; + int bytesEnd = lastIndex + chunkSize; + String contentRange = + String.join( + "", + "bytes ", + convertToString(bytesStart), + "-", + convertToString(bytesEnd), + "/", + convertToString(acc.getFileSize())); + UploadedPart uploadedPart = + client + .getChunkedUploads() + .uploadFilePartByUrl( + acc.getUploadPartUrl(), + generateByteStreamFromBuffer(chunkBuffer), + new UploadFilePartByUrlHeaders(digest, contentRange)); + UploadPart part = uploadedPart.getPart(); + String partSha1 = hexToBase64(part.getSha1()); + assert partSha1.equals(sha1); + assert part.getSize() == chunkSize; + assert part.getOffset() == bytesStart; + acc.getFileHash().updateHash(chunkBuffer); + return new TestPartAccumulator.Builder( + bytesEnd, + Stream.concat(parts.stream(), Arrays.asList(part).stream()) + .collect(Collectors.toList()), + acc.getFileSize(), + acc.getFileHash()) + .uploadPartUrl(acc.getUploadPartUrl()) + .build(); + } + + @Test + public void testChunkedManualProcessById() { + int fileSize = 20 * 1024 * 1024; + InputStream fileByteStream = generateByteStream(fileSize); + String fileName = getUuid(); + String parentFolderId = "0"; + UploadSession uploadSession = + client + .getChunkedUploads() + .createFileUploadSession( + new CreateFileUploadSessionRequestBody(parentFolderId, fileSize, fileName)); + String uploadSessionId = uploadSession.getId(); + long partSize = uploadSession.getPartSize(); + int totalParts = uploadSession.getTotalParts(); + assert partSize * totalParts >= fileSize; + assert uploadSession.getNumPartsProcessed() == 0; + Hash fileHash = new Hash(HashName.SHA1); + Iterator chunksIterator = iterateChunks(fileByteStream, partSize, fileSize); + TestPartAccumulator results = + reduceIterator( + chunksIterator, + (TestPartAccumulator acc, InputStream chunk) -> reducerById(acc, chunk), + new TestPartAccumulator.Builder(-1, Collections.emptyList(), fileSize, fileHash) + .uploadSessionId(uploadSessionId) + .build()); + List parts = results.getParts(); + UploadParts processedSessionParts = + client.getChunkedUploads().getFileUploadSessionParts(uploadSessionId); + assert processedSessionParts.getTotalCount() == totalParts; + UploadSession processedSession = + client.getChunkedUploads().getFileUploadSessionById(uploadSessionId); + assert processedSession.getId().equals(uploadSessionId); + String sha1 = fileHash.digestHash("base64"); + String digest = String.join("", "sha=", sha1); + Files committedSession = + client + .getChunkedUploads() + .createFileUploadSessionCommit( + uploadSessionId, + new CreateFileUploadSessionCommitRequestBody(parts), + new CreateFileUploadSessionCommitHeaders(digest)); + assert committedSession.getEntries().get(0).getName().equals(fileName); + client.getChunkedUploads().deleteFileUploadSessionById(uploadSessionId); + } + + @Test + public void testChunkedManualProcessByUrl() { + int fileSize = 20 * 1024 * 1024; + InputStream fileByteStream = generateByteStream(fileSize); + String fileName = getUuid(); + String parentFolderId = "0"; + UploadSession uploadSession = + client + .getChunkedUploads() + .createFileUploadSession( + new CreateFileUploadSessionRequestBody(parentFolderId, fileSize, fileName)); + String uploadPartUrl = uploadSession.getSessionEndpoints().getUploadPart(); + String commitUrl = uploadSession.getSessionEndpoints().getCommit(); + String listPartsUrl = uploadSession.getSessionEndpoints().getListParts(); + String statusUrl = uploadSession.getSessionEndpoints().getStatus(); + String abortUrl = uploadSession.getSessionEndpoints().getAbort(); + String uploadSessionId = uploadSession.getId(); + long partSize = uploadSession.getPartSize(); + int totalParts = uploadSession.getTotalParts(); + assert partSize * totalParts >= fileSize; + assert uploadSession.getNumPartsProcessed() == 0; + Hash fileHash = new Hash(HashName.SHA1); + Iterator chunksIterator = iterateChunks(fileByteStream, partSize, fileSize); + TestPartAccumulator results = + reduceIterator( + chunksIterator, + (TestPartAccumulator acc, InputStream chunk) -> reducerByUrl(acc, chunk), + new TestPartAccumulator.Builder(-1, Collections.emptyList(), fileSize, fileHash) + .uploadPartUrl(uploadPartUrl) + .build()); + List parts = results.getParts(); + UploadParts processedSessionParts = + client.getChunkedUploads().getFileUploadSessionPartsByUrl(listPartsUrl); + assert processedSessionParts.getTotalCount() == totalParts; + UploadSession processedSession = + client.getChunkedUploads().getFileUploadSessionByUrl(statusUrl); + assert processedSession.getId().equals(uploadSessionId); + String sha1 = fileHash.digestHash("base64"); + String digest = String.join("", "sha=", sha1); + Files committedSession = + client + .getChunkedUploads() + .createFileUploadSessionCommitByUrl( + commitUrl, + new CreateFileUploadSessionCommitByUrlRequestBody(parts), + new CreateFileUploadSessionCommitByUrlHeaders(digest)); + assert committedSession.getEntries().get(0).getName().equals(fileName); + client.getChunkedUploads().deleteFileUploadSessionByUrl(abortUrl); + } + + @Test + public void testChunkedUploadConvenienceMethod() { + int fileSize = 20 * 1024 * 1024; + InputStream fileByteStream = generateByteStream(fileSize); + String fileName = getUuid(); + String parentFolderId = "0"; + File uploadedFile = + client + .getChunkedUploads() + .uploadBigFile(fileByteStream, fileName, fileSize, parentFolderId); + assert uploadedFile.getName().equals(fileName); + assert uploadedFile.getSize() == fileSize; + assert uploadedFile.getParent().getId().equals(parentFolderId); + client.getFiles().deleteFileById(uploadedFile.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/chunkeduploads/TestPartAccumulator.java b/src/test/java/com/box/sdkgen/test/chunkeduploads/TestPartAccumulator.java new file mode 100644 index 000000000..eac6de24e --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/chunkeduploads/TestPartAccumulator.java @@ -0,0 +1,100 @@ +package com.box.sdkgen.test.chunkeduploads; + +import com.box.sdkgen.internal.utils.Hash; +import com.box.sdkgen.schemas.uploadpart.UploadPart; +import java.util.List; + +public class TestPartAccumulator { + + public final int lastIndex; + + public final List parts; + + public final long fileSize; + + public String uploadPartUrl; + + public String uploadSessionId; + + public final Hash fileHash; + + public TestPartAccumulator(int lastIndex, List parts, long fileSize, Hash fileHash) { + this.lastIndex = lastIndex; + this.parts = parts; + this.fileSize = fileSize; + this.fileHash = fileHash; + this.uploadPartUrl = ""; + this.uploadSessionId = ""; + } + + protected TestPartAccumulator(Builder builder) { + this.lastIndex = builder.lastIndex; + this.parts = builder.parts; + this.fileSize = builder.fileSize; + this.uploadPartUrl = builder.uploadPartUrl; + this.uploadSessionId = builder.uploadSessionId; + this.fileHash = builder.fileHash; + } + + public int getLastIndex() { + return lastIndex; + } + + public List getParts() { + return parts; + } + + public long getFileSize() { + return fileSize; + } + + public String getUploadPartUrl() { + return uploadPartUrl; + } + + public String getUploadSessionId() { + return uploadSessionId; + } + + public Hash getFileHash() { + return fileHash; + } + + public static class Builder { + + protected final int lastIndex; + + protected final List parts; + + protected final long fileSize; + + protected String uploadPartUrl; + + protected String uploadSessionId; + + protected final Hash fileHash; + + public Builder(int lastIndex, List parts, long fileSize, Hash fileHash) { + this.lastIndex = lastIndex; + this.parts = parts; + this.fileSize = fileSize; + this.fileHash = fileHash; + this.uploadPartUrl = ""; + this.uploadSessionId = ""; + } + + public Builder uploadPartUrl(String uploadPartUrl) { + this.uploadPartUrl = uploadPartUrl; + return this; + } + + public Builder uploadSessionId(String uploadSessionId) { + this.uploadSessionId = uploadSessionId; + return this; + } + + public TestPartAccumulator build() { + return new TestPartAccumulator(this); + } + } +} diff --git a/src/test/java/com/box/sdkgen/test/classifications/ClassificationsITest.java b/src/test/java/com/box/sdkgen/test/classifications/ClassificationsITest.java new file mode 100644 index 000000000..3337c4d71 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/classifications/ClassificationsITest.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.test.classifications; + +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateClassification; +import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateClassificationTemplate; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.classifications.UpdateClassificationRequestBody; +import com.box.sdkgen.managers.classifications.UpdateClassificationRequestBodyDataField; +import com.box.sdkgen.managers.classifications.UpdateClassificationRequestBodyDataStaticConfigClassificationField; +import com.box.sdkgen.managers.classifications.UpdateClassificationRequestBodyDataStaticConfigField; +import com.box.sdkgen.schemas.classificationtemplate.ClassificationTemplate; +import com.box.sdkgen.schemas.classificationtemplate.ClassificationTemplateFieldsOptionsField; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Test; + +public class ClassificationsITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testClassifications() { + ClassificationTemplate classificationTemplate = getOrCreateClassificationTemplate(); + ClassificationTemplateFieldsOptionsField classification = + getOrCreateClassification(classificationTemplate); + assert !(classification.getKey().equals("")); + assert !(classification.getStaticConfig().getClassification().getColorId() == 100); + assert !(classification + .getStaticConfig() + .getClassification() + .getClassificationDefinition() + .equals("")); + String updatedClassificationName = getUuid(); + String updatedClassificationDescription = getUuid(); + ClassificationTemplate classificationTemplateWithUpdatedClassification = + client + .getClassifications() + .updateClassification( + Arrays.asList( + new UpdateClassificationRequestBody( + classification.getKey(), + new UpdateClassificationRequestBodyDataField.Builder( + updatedClassificationName) + .staticConfig( + new UpdateClassificationRequestBodyDataStaticConfigField.Builder() + .classification( + new UpdateClassificationRequestBodyDataStaticConfigClassificationField + .Builder() + .classificationDefinition( + updatedClassificationDescription) + .colorId(2L) + .build()) + .build()) + .build()))); + List updatedClassifications = + classificationTemplateWithUpdatedClassification.getFields().get(0).getOptions(); + ClassificationTemplateFieldsOptionsField updatedClassification = updatedClassifications.get(0); + assert updatedClassification.getKey().equals(updatedClassificationName); + assert updatedClassification.getStaticConfig().getClassification().getColorId() == 2; + assert updatedClassification + .getStaticConfig() + .getClassification() + .getClassificationDefinition() + .equals(updatedClassificationDescription); + } +} diff --git a/src/test/java/com/box/sdkgen/test/client/ClientITest.java b/src/test/java/com/box/sdkgen/test/client/ClientITest.java new file mode 100644 index 000000000..6c2211b4f --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/client/ClientITest.java @@ -0,0 +1,225 @@ +package com.box.sdkgen.test.client; + +import static com.box.sdkgen.internal.utils.UtilsManager.bufferEquals; +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteBuffer; +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStreamFromBuffer; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.readByteStream; +import static com.box.sdkgen.serialization.json.JsonManager.getSdValueByKey; +import static com.box.sdkgen.serialization.json.JsonManager.jsonToSerializedData; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.folders.CreateFolderRequestBody; +import com.box.sdkgen.managers.folders.CreateFolderRequestBodyParentField; +import com.box.sdkgen.managers.folders.DeleteFolderByIdQueryParams; +import com.box.sdkgen.managers.uploads.UploadFileRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesParentField; +import com.box.sdkgen.managers.users.CreateUserRequestBody; +import com.box.sdkgen.networking.baseurls.BaseUrls; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.MultipartItem; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.files.Files; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.userfull.UserFull; +import com.fasterxml.jackson.databind.JsonNode; +import java.io.InputStream; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class ClientITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testMakeRequestJsonCrud() { + String newFolderName = getUuid(); + String requestBodyPost = + String.join("", "{\"name\": \"", newFolderName, "\", \"parent\": { \"id\": \"0\"}}"); + FetchResponse createFolderResponse = + client.makeRequest( + new FetchOptions.Builder("https://api.box.com/2.0/folders", "post") + .data(jsonToSerializedData(requestBodyPost)) + .build()); + assert createFolderResponse.getStatus() == 201; + JsonNode createdFolder = createFolderResponse.getData(); + assert getSdValueByKey(createdFolder, "name").equals(newFolderName); + String updatedName = getUuid(); + String requestBodyPut = String.join("", "{\"name\": \"", updatedName, "\"}"); + FetchResponse updateFolderResponse = + client.makeRequest( + new FetchOptions.Builder( + String.join( + "", + "https://api.box.com/2.0/folders/", + getSdValueByKey(createdFolder, "id")), + "put") + .data(jsonToSerializedData(requestBodyPut)) + .build()); + assert updateFolderResponse.getStatus() == 200; + JsonNode updatedFolder = updateFolderResponse.getData(); + assert getSdValueByKey(updatedFolder, "name").equals(updatedName); + assert getSdValueByKey(updatedFolder, "id").equals(getSdValueByKey(createdFolder, "id")); + FetchResponse getFolderResponse = + client.makeRequest( + new FetchOptions( + String.join( + "", "https://api.box.com/2.0/folders/", getSdValueByKey(createdFolder, "id")), + "GET")); + assert getFolderResponse.getStatus() == 200; + JsonNode receivedFolder = getFolderResponse.getData(); + assert getSdValueByKey(receivedFolder, "name").equals(updatedName); + assert getSdValueByKey(receivedFolder, "id").equals(getSdValueByKey(updatedFolder, "id")); + FetchResponse deleteFolderResponse = + client.makeRequest( + new FetchOptions( + String.join( + "", "https://api.box.com/2.0/folders/", getSdValueByKey(receivedFolder, "id")), + "DELETE")); + assert deleteFolderResponse.getStatus() == 204; + } + + @Test + public void testMakeRequestMultipart() { + String newFolderName = getUuid(); + FolderFull newFolder = + client + .getFolders() + .createFolder( + new CreateFolderRequestBody( + newFolderName, new CreateFolderRequestBodyParentField("0"))); + String newFolderId = newFolder.getId(); + String newFileName = String.join("", getUuid(), ".pdf"); + InputStream fileContentStream = generateByteStream(1024 * 1024); + String multipartAttributes = + String.join( + "", "{\"name\": \"", newFileName, "\", \"parent\": { \"id\":", newFolderId, "}}"); + FetchResponse uploadFileResponse = + client.makeRequest( + new FetchOptions.Builder("https://upload.box.com/api/2.0/files/content", "POST") + .multipartData( + Arrays.asList( + new MultipartItem.Builder("attributes") + .data(jsonToSerializedData(multipartAttributes)) + .build(), + new MultipartItem.Builder("file").fileStream(fileContentStream).build())) + .contentType("multipart/form-data") + .build()); + assert uploadFileResponse.getStatus() == 201; + client + .getFolders() + .deleteFolderById( + newFolderId, new DeleteFolderByIdQueryParams.Builder().recursive(true).build()); + } + + @Test + public void testMakeRequestBinaryFormat() { + String newFileName = getUuid(); + byte[] fileBuffer = generateByteBuffer(1024 * 1024); + InputStream fileContentStream = generateByteStreamFromBuffer(fileBuffer); + Files uploadedFiles = + client + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + newFileName, new UploadFileRequestBodyAttributesParentField("0")), + fileContentStream)); + FileFull uploadedFile = uploadedFiles.getEntries().get(0); + FetchResponse downloadFileResponse = + client.makeRequest( + new FetchOptions.Builder( + String.join( + "", "https://api.box.com/2.0/files/", uploadedFile.getId(), "/content"), + "GET") + .responseFormat(ResponseFormat.BINARY) + .build()); + assert downloadFileResponse.getStatus() == 200; + assert bufferEquals(readByteStream(downloadFileResponse.getContent()), fileBuffer); + client.getFiles().deleteFileById(uploadedFile.getId()); + } + + @Test + public void testWithAsUserHeader() { + String userName = getUuid(); + UserFull createdUser = + client + .getUsers() + .createUser( + new CreateUserRequestBody.Builder(userName).isPlatformAccessOnly(true).build()); + BoxClient asUserClient = client.withAsUserHeader(createdUser.getId()); + UserFull adminUser = client.getUsers().getUserMe(); + assert !(convertToString(adminUser.getName()).equals(userName)); + UserFull appUser = asUserClient.getUsers().getUserMe(); + assert convertToString(appUser.getName()).equals(userName); + client.getUsers().deleteUserById(createdUser.getId()); + } + + @Test + public void testWithSuppressedNotifications() { + BoxClient newClient = client.withSuppressedNotifications(); + UserFull user = newClient.getUsers().getUserMe(); + assert !(user.getId().equals("")); + } + + @Test + public void testWithExtraHeaders() { + String userName = getUuid(); + UserFull createdUser = + client + .getUsers() + .createUser( + new CreateUserRequestBody.Builder(userName).isPlatformAccessOnly(true).build()); + BoxClient asUserClient = + client.withExtraHeaders(mapOf(entryOf("As-User", createdUser.getId()))); + UserFull adminUser = client.getUsers().getUserMe(); + assert !(convertToString(adminUser.getName()).equals(userName)); + UserFull appUser = asUserClient.getUsers().getUserMe(); + assert convertToString(appUser.getName()).equals(userName); + client.getUsers().deleteUserById(createdUser.getId()); + } + + @Test + public void testWithCustomBaseUrls() { + BaseUrls newBaseUrls = + new BaseUrls.Builder() + .baseUrl("https://box.com/") + .uploadUrl("https://box.com/") + .oauth2Url("https://box.com/") + .build(); + BoxClient customBaseClient = client.withCustomBaseUrls(newBaseUrls); + assertThrows(RuntimeException.class, () -> customBaseClient.getUsers().getUserMe()); + } + + @Test + public void testWithInterceptors() { + UserFull user = client.getUsers().getUserMe(); + assert user.getRole() == null; + BoxClient clientWithInterceptor = + client.withInterceptors(Arrays.asList(new InterceptorAddingRoleToFields())); + UserFull newUser = clientWithInterceptor.getUsers().getUserMe(); + assert !(newUser.getRole() == null); + BoxClient clientWithTwoInterceptors = + clientWithInterceptor.withInterceptors(Arrays.asList(new InterceptorChangingResponse())); + UserFull superNewUser = clientWithTwoInterceptors.getUsers().getUserMe(); + assert superNewUser.getId().equals("123"); + } + + @Test + public void testWithFailingInterceptors() { + UserFull user = client.getUsers().getUserMe(); + assert !(user.getId() == null); + BoxClient clientWithInterceptor = + client.withInterceptors(Arrays.asList(new InterceptorThrowingError())); + assertThrows(RuntimeException.class, () -> clientWithInterceptor.getUsers().getUserMe()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/client/InterceptorAddingRoleToFields.java b/src/test/java/com/box/sdkgen/test/client/InterceptorAddingRoleToFields.java new file mode 100644 index 000000000..e206eeacc --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/client/InterceptorAddingRoleToFields.java @@ -0,0 +1,32 @@ +package com.box.sdkgen.test.client; + +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; + +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.interceptors.Interceptor; + +public class InterceptorAddingRoleToFields implements Interceptor { + + @Override + public FetchOptions beforeRequest(FetchOptions options) { + return new FetchOptions.Builder(options.getUrl(), options.getMethod()) + .params(mergeMaps(options.getParams(), mapOf(entryOf("fields", "role")))) + .headers(options.getHeaders()) + .data(options.getData()) + .fileStream(options.getFileStream()) + .multipartData(options.getMultipartData()) + .contentType(options.getContentType()) + .responseFormat(options.getResponseFormat()) + .auth(options.getAuth()) + .networkSession(options.getNetworkSession()) + .build(); + } + + @Override + public FetchResponse afterRequest(FetchResponse response) { + return response; + } +} diff --git a/src/test/java/com/box/sdkgen/test/client/InterceptorChangingResponse.java b/src/test/java/com/box/sdkgen/test/client/InterceptorChangingResponse.java new file mode 100644 index 000000000..bd2108fcb --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/client/InterceptorChangingResponse.java @@ -0,0 +1,24 @@ +package com.box.sdkgen.test.client; + +import static com.box.sdkgen.serialization.json.JsonManager.jsonToSerializedData; + +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.interceptors.Interceptor; + +public class InterceptorChangingResponse implements Interceptor { + + @Override + public FetchOptions beforeRequest(FetchOptions options) { + return options; + } + + @Override + public FetchResponse afterRequest(FetchResponse response) { + return new FetchResponse.Builder(response.getStatus(), response.getHeaders()) + .url(response.getUrl()) + .data(jsonToSerializedData("{\"id\": \"123\", \"type\": \"user\"}")) + .content(response.getContent()) + .build(); + } +} diff --git a/src/test/java/com/box/sdkgen/test/client/InterceptorThrowingError.java b/src/test/java/com/box/sdkgen/test/client/InterceptorThrowingError.java new file mode 100644 index 000000000..ab1bc0175 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/client/InterceptorThrowingError.java @@ -0,0 +1,22 @@ +package com.box.sdkgen.test.client; + +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.interceptors.Interceptor; + +public class InterceptorThrowingError implements Interceptor { + + @Override + public FetchOptions beforeRequest(FetchOptions options) { + return options; + } + + @Override + public FetchResponse afterRequest(FetchResponse response) { + return new FetchResponse.Builder(400, response.getHeaders()) + .url(response.getUrl()) + .data(response.getData()) + .content(response.getContent()) + .build(); + } +} diff --git a/src/test/java/com/box/sdkgen/test/collaborationallowlistentries/CollaborationAllowlistEntriesITest.java b/src/test/java/com/box/sdkgen/test/collaborationallowlistentries/CollaborationAllowlistEntriesITest.java new file mode 100644 index 000000000..4f3da8b7e --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/collaborationallowlistentries/CollaborationAllowlistEntriesITest.java @@ -0,0 +1,49 @@ +package com.box.sdkgen.test.collaborationallowlistentries; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.collaborationallowlistentries.CreateCollaborationWhitelistEntryRequestBody; +import com.box.sdkgen.managers.collaborationallowlistentries.CreateCollaborationWhitelistEntryRequestBodyDirectionField; +import com.box.sdkgen.schemas.collaborationallowlistentries.CollaborationAllowlistEntries; +import com.box.sdkgen.schemas.collaborationallowlistentry.CollaborationAllowlistEntry; +import org.junit.jupiter.api.Test; + +public class CollaborationAllowlistEntriesITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testCollaborationAllowlistEntries() { + CollaborationAllowlistEntries allowlist = + client.getCollaborationAllowlistEntries().getCollaborationWhitelistEntries(); + assert allowlist.getEntries().size() >= 0; + String domain = String.join("", getUuid(), "example.com"); + CollaborationAllowlistEntry newEntry = + client + .getCollaborationAllowlistEntries() + .createCollaborationWhitelistEntry( + new CreateCollaborationWhitelistEntryRequestBody( + domain, CreateCollaborationWhitelistEntryRequestBodyDirectionField.INBOUND)); + assert convertToString(newEntry.getType()).equals("collaboration_whitelist_entry"); + assert convertToString(newEntry.getDirection()).equals("inbound"); + assert newEntry.getDomain().equals(domain); + CollaborationAllowlistEntry entry = + client + .getCollaborationAllowlistEntries() + .getCollaborationWhitelistEntryById(newEntry.getId()); + assert entry.getId().equals(newEntry.getId()); + assert convertToString(entry.getDirection()).equals(convertToString(newEntry.getDirection())); + assert entry.getDomain().equals(domain); + client.getCollaborationAllowlistEntries().deleteCollaborationWhitelistEntryById(entry.getId()); + assertThrows( + RuntimeException.class, + () -> + client + .getCollaborationAllowlistEntries() + .getCollaborationWhitelistEntryById(entry.getId())); + } +} diff --git a/src/test/java/com/box/sdkgen/test/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargetsITest.java b/src/test/java/com/box/sdkgen/test/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargetsITest.java new file mode 100644 index 000000000..fdebf6f36 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargetsITest.java @@ -0,0 +1,61 @@ +package com.box.sdkgen.test.collaborationallowlistexempttargets; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.collaborationallowlistexempttargets.CreateCollaborationWhitelistExemptTargetRequestBody; +import com.box.sdkgen.managers.collaborationallowlistexempttargets.CreateCollaborationWhitelistExemptTargetRequestBodyUserField; +import com.box.sdkgen.managers.users.CreateUserRequestBody; +import com.box.sdkgen.schemas.collaborationallowlistexempttarget.CollaborationAllowlistExemptTarget; +import com.box.sdkgen.schemas.collaborationallowlistexempttargets.CollaborationAllowlistExemptTargets; +import com.box.sdkgen.schemas.userfull.UserFull; +import org.junit.jupiter.api.Test; + +public class CollaborationAllowlistExemptTargetsITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testCollaborationAllowlistExemptTargets() { + CollaborationAllowlistExemptTargets exemptTargets = + client.getCollaborationAllowlistExemptTargets().getCollaborationWhitelistExemptTargets(); + assert exemptTargets.getEntries().size() >= 0; + UserFull user = + client + .getUsers() + .createUser( + new CreateUserRequestBody.Builder(getUuid()) + .login(String.join("", getUuid(), "@boxdemo.com")) + .isPlatformAccessOnly(true) + .build()); + CollaborationAllowlistExemptTarget newExemptTarget = + client + .getCollaborationAllowlistExemptTargets() + .createCollaborationWhitelistExemptTarget( + new CreateCollaborationWhitelistExemptTargetRequestBody( + new CreateCollaborationWhitelistExemptTargetRequestBodyUserField( + user.getId()))); + assert convertToString(newExemptTarget.getType()) + .equals("collaboration_whitelist_exempt_target"); + assert newExemptTarget.getUser().getId().equals(user.getId()); + CollaborationAllowlistExemptTarget exemptTarget = + client + .getCollaborationAllowlistExemptTargets() + .getCollaborationWhitelistExemptTargetById(newExemptTarget.getId()); + assert exemptTarget.getId().equals(newExemptTarget.getId()); + assert exemptTarget.getUser().getId().equals(user.getId()); + client + .getCollaborationAllowlistExemptTargets() + .deleteCollaborationWhitelistExemptTargetById(exemptTarget.getId()); + assertThrows( + RuntimeException.class, + () -> + client + .getCollaborationAllowlistExemptTargets() + .getCollaborationWhitelistExemptTargetById(exemptTarget.getId())); + client.getUsers().deleteUserById(user.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/comments/CommentsITest.java b/src/test/java/com/box/sdkgen/test/comments/CommentsITest.java new file mode 100644 index 000000000..d03f8ac31 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/comments/CommentsITest.java @@ -0,0 +1,81 @@ +package com.box.sdkgen.test.comments; + +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.comments.CreateCommentRequestBody; +import com.box.sdkgen.managers.comments.CreateCommentRequestBodyItemField; +import com.box.sdkgen.managers.comments.CreateCommentRequestBodyItemTypeField; +import com.box.sdkgen.managers.comments.UpdateCommentByIdRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesParentField; +import com.box.sdkgen.schemas.commentfull.CommentFull; +import com.box.sdkgen.schemas.comments.Comments; +import com.box.sdkgen.schemas.files.Files; +import java.io.InputStream; +import org.junit.jupiter.api.Test; + +public class CommentsITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testComments() { + int fileSize = 256; + String fileName = getUuid(); + InputStream fileByteStream = generateByteStream(fileSize); + String parentId = "0"; + Files uploadedFiles = + client + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + fileName, new UploadFileRequestBodyAttributesParentField(parentId)), + fileByteStream)); + String fileId = uploadedFiles.getEntries().get(0).getId(); + Comments comments = client.getComments().getFileComments(fileId); + assert comments.getTotalCount() == 0; + String message = "Hello there!"; + CommentFull newComment = + client + .getComments() + .createComment( + new CreateCommentRequestBody( + message, + new CreateCommentRequestBodyItemField( + fileId, CreateCommentRequestBodyItemTypeField.FILE))); + assert newComment.getMessage().equals(message); + assert newComment.getIsReplyComment() == false; + assert newComment.getItem().getId().equals(fileId); + CommentFull newReplyComment = + client + .getComments() + .createComment( + new CreateCommentRequestBody( + message, + new CreateCommentRequestBodyItemField( + newComment.getId(), CreateCommentRequestBodyItemTypeField.COMMENT))); + assert newReplyComment.getMessage().equals(message); + assert newReplyComment.getIsReplyComment() == true; + String newMessage = "Hi!"; + client + .getComments() + .updateCommentById( + newReplyComment.getId(), + new UpdateCommentByIdRequestBody.Builder().message(newMessage).build()); + Comments newComments = client.getComments().getFileComments(fileId); + assert newComments.getTotalCount() == 2; + assert newComments.getEntries().get(1).getMessage().equals(newMessage); + CommentFull receivedComment = client.getComments().getCommentById(newComment.getId()); + assert receivedComment.getMessage().equals(newComment.getMessage()); + client.getComments().deleteCommentById(newComment.getId()); + assertThrows( + RuntimeException.class, () -> client.getComments().getCommentById(newComment.getId())); + client.getFiles().deleteFileById(fileId); + } +} diff --git a/src/test/java/com/box/sdkgen/test/commons/CommonsManager.java b/src/test/java/com/box/sdkgen/test/commons/CommonsManager.java new file mode 100644 index 000000000..455786007 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/commons/CommonsManager.java @@ -0,0 +1,187 @@ +package com.box.sdkgen.test.commons; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.decodeBase64; +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.internal.utils.UtilsManager.isBrowser; + +import com.box.sdkgen.box.ccgauth.BoxCCGAuth; +import com.box.sdkgen.box.ccgauth.CCGConfig; +import com.box.sdkgen.box.jwtauth.BoxJWTAuth; +import com.box.sdkgen.box.jwtauth.JWTConfig; +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.classifications.AddClassificationRequestBody; +import com.box.sdkgen.managers.classifications.AddClassificationRequestBodyDataField; +import com.box.sdkgen.managers.classifications.AddClassificationRequestBodyDataStaticConfigClassificationField; +import com.box.sdkgen.managers.classifications.AddClassificationRequestBodyDataStaticConfigField; +import com.box.sdkgen.managers.classifications.CreateClassificationTemplateRequestBody; +import com.box.sdkgen.managers.classifications.CreateClassificationTemplateRequestBodyFieldsField; +import com.box.sdkgen.managers.folders.CreateFolderRequestBody; +import com.box.sdkgen.managers.folders.CreateFolderRequestBodyParentField; +import com.box.sdkgen.managers.shieldinformationbarriers.CreateShieldInformationBarrierRequestBody; +import com.box.sdkgen.managers.termsofservices.CreateTermsOfServiceRequestBody; +import com.box.sdkgen.managers.termsofservices.CreateTermsOfServiceRequestBodyStatusField; +import com.box.sdkgen.managers.termsofservices.CreateTermsOfServiceRequestBodyTosTypeField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesParentField; +import com.box.sdkgen.schemas.classificationtemplate.ClassificationTemplate; +import com.box.sdkgen.schemas.classificationtemplate.ClassificationTemplateFieldsOptionsField; +import com.box.sdkgen.schemas.enterprisebase.EnterpriseBase; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.files.Files; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.shieldinformationbarrier.ShieldInformationBarrier; +import com.box.sdkgen.schemas.shieldinformationbarriers.ShieldInformationBarriers; +import com.box.sdkgen.schemas.termsofservice.TermsOfService; +import com.box.sdkgen.schemas.termsofservices.TermsOfServices; +import java.io.InputStream; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +public class CommonsManager { + + public static BoxCCGAuth getCcgAuth() { + CCGConfig ccgConfig = + new CCGConfig.Builder(getEnvVar("CLIENT_ID"), getEnvVar("CLIENT_SECRET")) + .enterpriseId(getEnvVar("ENTERPRISE_ID")) + .build(); + BoxCCGAuth auth = new BoxCCGAuth(ccgConfig); + return auth; + } + + public static BoxJWTAuth getJwtAuth() { + JWTConfig jwtConfig = + JWTConfig.fromConfigJsonString(decodeBase64(getEnvVar("JWT_CONFIG_BASE_64"))); + BoxJWTAuth auth = new BoxJWTAuth(jwtConfig); + return auth; + } + + public static BoxClient getDefaultClientWithUserSubject(String userId) { + if (isBrowser()) { + BoxCCGAuth ccgAuth = getCcgAuth(); + BoxCCGAuth ccgAuthUser = ccgAuth.withUserSubject(userId); + return new BoxClient(ccgAuthUser); + } + BoxJWTAuth auth = getJwtAuth(); + BoxJWTAuth authUser = auth.withUserSubject(userId); + return new BoxClient(authUser); + } + + public static BoxClient getDefaultClient() { + BoxClient client = new BoxClient((isBrowser() ? getCcgAuth() : getJwtAuth())); + return client; + } + + public static FolderFull createNewFolder() { + BoxClient client = getDefaultClient(); + String newFolderName = getUuid(); + return client + .getFolders() + .createFolder( + new CreateFolderRequestBody( + newFolderName, new CreateFolderRequestBodyParentField("0"))); + } + + public static FileFull uploadNewFile() { + BoxClient client = getDefaultClient(); + String newFileName = String.join("", getUuid(), ".pdf"); + InputStream fileContentStream = generateByteStream(1024 * 1024); + Files uploadedFiles = + client + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + newFileName, new UploadFileRequestBodyAttributesParentField("0")), + fileContentStream)); + return uploadedFiles.getEntries().get(0); + } + + public static TermsOfService getOrCreateTermsOfServices() { + BoxClient client = getDefaultClient(); + TermsOfServices tos = client.getTermsOfServices().getTermsOfService(); + int numberOfTos = tos.getEntries().size(); + if (numberOfTos >= 1) { + TermsOfService firstTos = tos.getEntries().get(0); + if (convertToString(firstTos.getTosType()).equals("managed")) { + return firstTos; + } + } + if (numberOfTos >= 2) { + TermsOfService secondTos = tos.getEntries().get(1); + if (convertToString(secondTos.getTosType()).equals("managed")) { + return secondTos; + } + } + return client + .getTermsOfServices() + .createTermsOfService( + new CreateTermsOfServiceRequestBody.Builder( + CreateTermsOfServiceRequestBodyStatusField.DISABLED, "Test TOS") + .tosType(CreateTermsOfServiceRequestBodyTosTypeField.MANAGED) + .build()); + } + + public static ClassificationTemplateFieldsOptionsField getOrCreateClassification( + ClassificationTemplate classificationTemplate) { + BoxClient client = getDefaultClient(); + List classifications = + classificationTemplate.getFields().get(0).getOptions(); + int currentNumberOfClassifications = classifications.size(); + if (currentNumberOfClassifications == 0) { + ClassificationTemplate classificationTemplateWithNewClassification = + client + .getClassifications() + .addClassification( + Arrays.asList( + new AddClassificationRequestBody( + new AddClassificationRequestBodyDataField.Builder(getUuid()) + .staticConfig( + new AddClassificationRequestBodyDataStaticConfigField.Builder() + .classification( + new AddClassificationRequestBodyDataStaticConfigClassificationField + .Builder() + .classificationDefinition("Some description") + .colorId(3L) + .build()) + .build()) + .build()))); + return classificationTemplateWithNewClassification.getFields().get(0).getOptions().get(0); + } + return classifications.get(0); + } + + public static ClassificationTemplate getOrCreateClassificationTemplate() { + BoxClient client = getDefaultClient(); + try { + return client.getClassifications().getClassificationTemplate(); + } catch (Exception exception) { + return client + .getClassifications() + .createClassificationTemplate( + new CreateClassificationTemplateRequestBody( + Arrays.asList( + new CreateClassificationTemplateRequestBodyFieldsField( + Collections.emptyList())))); + } + } + + public static ShieldInformationBarrier getOrCreateShieldInformationBarrier( + BoxClient client, String enterpriseId) { + ShieldInformationBarriers barriers = + client.getShieldInformationBarriers().getShieldInformationBarriers(); + int numberOfBarriers = barriers.getEntries().size(); + if (numberOfBarriers == 0) { + return client + .getShieldInformationBarriers() + .createShieldInformationBarrier( + new CreateShieldInformationBarrierRequestBody( + new EnterpriseBase.Builder().id(enterpriseId).build())); + } + return barriers.getEntries().get(numberOfBarriers - 1); + } +} diff --git a/src/test/java/com/box/sdkgen/test/devicepinners/DevicePinnersITest.java b/src/test/java/com/box/sdkgen/test/devicepinners/DevicePinnersITest.java new file mode 100644 index 000000000..45ae5051f --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/devicepinners/DevicePinnersITest.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.test.devicepinners; + +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.devicepinners.GetEnterpriseDevicePinnersQueryParams; +import com.box.sdkgen.managers.devicepinners.GetEnterpriseDevicePinnersQueryParamsDirectionField; +import com.box.sdkgen.schemas.devicepinners.DevicePinners; +import org.junit.jupiter.api.Test; + +public class DevicePinnersITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testDevicePinners() { + String enterpriseId = getEnvVar("ENTERPRISE_ID"); + DevicePinners devicePinners = + client.getDevicePinners().getEnterpriseDevicePinners(enterpriseId); + assert devicePinners.getEntries().size() >= 0; + DevicePinners devicePinnersInDescDirection = + client + .getDevicePinners() + .getEnterpriseDevicePinners( + enterpriseId, + new GetEnterpriseDevicePinnersQueryParams.Builder() + .direction(GetEnterpriseDevicePinnersQueryParamsDirectionField.DESC) + .build()); + assert devicePinnersInDescDirection.getEntries().size() >= 0; + String devicePinnerId = "123456"; + assertThrows( + RuntimeException.class, + () -> client.getDevicePinners().getDevicePinnerById(devicePinnerId)); + assertThrows( + RuntimeException.class, + () -> client.getDevicePinners().deleteDevicePinnerById(devicePinnerId)); + } +} diff --git a/src/test/java/com/box/sdkgen/test/docgen/DocgenITest.java b/src/test/java/com/box/sdkgen/test/docgen/DocgenITest.java new file mode 100644 index 000000000..bc0b96787 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/docgen/DocgenITest.java @@ -0,0 +1,106 @@ +package com.box.sdkgen.test.docgen; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.test.commons.CommonsManager.createNewFolder; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.docgen.GetDocgenJobsV2025R0QueryParams; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.v2025r0.docgenbatchbasev2025r0.DocGenBatchBaseV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgenbatchcreaterequestv2025r0.DocGenBatchCreateRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgenbatchcreaterequestv2025r0.DocGenBatchCreateRequestV2025R0DestinationFolderField; +import com.box.sdkgen.schemas.v2025r0.docgendocumentgenerationdatav2025r0.DocGenDocumentGenerationDataV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgenjobfullv2025r0.DocGenJobFullV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgenjobsfullv2025r0.DocGenJobsFullV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgenjobsv2025r0.DocGenJobsV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgenjobv2025r0.DocGenJobV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgentemplatebasev2025r0.DocGenTemplateBaseV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgentemplatecreaterequestv2025r0.DocGenTemplateCreateRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.filereferencev2025r0.FileReferenceV2025R0; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class DocgenITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testDocgenBatchAndJobs() { + FileFull uploadedFile = uploadNewFile(); + FolderFull folder = createNewFolder(); + DocGenTemplateBaseV2025R0 createdDocgenTemplate = + client + .getDocgenTemplate() + .createDocgenTemplateV2025R0( + new DocGenTemplateCreateRequestV2025R0( + new FileReferenceV2025R0(uploadedFile.getId()))); + DocGenBatchBaseV2025R0 docgenBatch = + client + .getDocgen() + .createDocgenBatchV2025R0( + new DocGenBatchCreateRequestV2025R0( + new FileReferenceV2025R0(uploadedFile.getId()), + "api", + new DocGenBatchCreateRequestV2025R0DestinationFolderField(folder.getId()), + "pdf", + Arrays.asList( + new DocGenDocumentGenerationDataV2025R0( + "test", mapOf(entryOf("abc", "xyz")))))); + assert !(docgenBatch.getId().equals("")); + assert convertToString(docgenBatch.getType()).equals("docgen_batch"); + DocGenJobsV2025R0 docgenBatchJobs = + client.getDocgen().getDocgenBatchJobByIdV2025R0(docgenBatch.getId()); + assert docgenBatchJobs.getEntries().size() >= 1; + assert !(docgenBatchJobs.getEntries().get(0).getId().equals("")); + assert convertToString(docgenBatchJobs.getEntries().get(0).getType()).equals("docgen_job"); + assert docgenBatchJobs.getEntries().get(0).getOutputType().equals("pdf"); + assert !(convertToString(docgenBatchJobs.getEntries().get(0).getStatus()).equals("")); + assert docgenBatchJobs + .getEntries() + .get(0) + .getTemplateFile() + .getId() + .equals(uploadedFile.getId()); + assert docgenBatchJobs.getEntries().get(0).getBatch().getId().equals(docgenBatch.getId()); + DocGenJobsFullV2025R0 docgenJobs = + client + .getDocgen() + .getDocgenJobsV2025R0( + new GetDocgenJobsV2025R0QueryParams.Builder().limit(500L).build()); + assert docgenJobs.getEntries().size() >= 1; + assert !(docgenJobs.getEntries().get(0).getBatch().getId().equals("")); + assert !(docgenJobs.getEntries().get(0).getCreatedBy().getId().equals("")); + assert !(docgenJobs.getEntries().get(0).getEnterprise().getId().equals("")); + assert !(docgenJobs.getEntries().get(0).getId().equals("")); + assert !(docgenJobs.getEntries().get(0).getOutputType().equals("")); + assert !(docgenJobs.getEntries().get(0).getSource().equals("")); + assert !(convertToString(docgenJobs.getEntries().get(0).getStatus()).equals("")); + assert convertToString(docgenJobs.getEntries().get(0).getTemplateFile().getType()) + .equals("file"); + assert !(docgenJobs.getEntries().get(0).getTemplateFile().getId().equals("")); + assert convertToString(docgenJobs.getEntries().get(0).getTemplateFileVersion().getType()) + .equals("file_version"); + assert !(docgenJobs.getEntries().get(0).getTemplateFileVersion().getId().equals("")); + assert convertToString(docgenJobs.getEntries().get(0).getType()).equals("docgen_job"); + int indexOfItem = 0; + DocGenJobFullV2025R0 docgenJobItemFromList = docgenJobs.getEntries().get(indexOfItem); + DocGenJobV2025R0 docgenJob = + client.getDocgen().getDocgenJobByIdV2025R0(docgenJobItemFromList.getId()); + assert !(docgenJob.getBatch().getId().equals("")); + assert !(docgenJob.getId().equals("")); + assert !(docgenJob.getOutputType().equals("")); + assert !(convertToString(docgenJob.getStatus()).equals("")); + assert convertToString(docgenJob.getTemplateFile().getType()).equals("file"); + assert !(docgenJob.getTemplateFile().getId().equals("")); + assert convertToString(docgenJob.getTemplateFileVersion().getType()).equals("file_version"); + assert !(docgenJob.getTemplateFileVersion().getId().equals("")); + assert convertToString(docgenJob.getType()).equals("docgen_job"); + client.getFolders().deleteFolderById(folder.getId()); + client.getFiles().deleteFileById(uploadedFile.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/docgentemplate/DocgenTemplateITest.java b/src/test/java/com/box/sdkgen/test/docgentemplate/DocgenTemplateITest.java new file mode 100644 index 000000000..a2ed8fc78 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/docgentemplate/DocgenTemplateITest.java @@ -0,0 +1,50 @@ +package com.box.sdkgen.test.docgentemplate; + +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.v2025r0.docgenjobsv2025r0.DocGenJobsV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgentagsv2025r0.DocGenTagsV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgentemplatebasev2025r0.DocGenTemplateBaseV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgentemplatecreaterequestv2025r0.DocGenTemplateCreateRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgentemplatesv2025r0.DocGenTemplatesV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgentemplatev2025r0.DocGenTemplateV2025R0; +import com.box.sdkgen.schemas.v2025r0.filereferencev2025r0.FileReferenceV2025R0; +import org.junit.jupiter.api.Test; + +public class DocgenTemplateITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testDocgenTemplateCrud() { + FileFull file = uploadNewFile(); + DocGenTemplateBaseV2025R0 createdDocgenTemplate = + client + .getDocgenTemplate() + .createDocgenTemplateV2025R0( + new DocGenTemplateCreateRequestV2025R0(new FileReferenceV2025R0(file.getId()))); + DocGenTemplatesV2025R0 docgenTemplates = client.getDocgenTemplate().getDocgenTemplatesV2025R0(); + assert docgenTemplates.getEntries().size() > 0; + DocGenTemplateV2025R0 fetchedDocgenTemplate = + client + .getDocgenTemplate() + .getDocgenTemplateByIdV2025R0(createdDocgenTemplate.getFile().getId()); + assert fetchedDocgenTemplate.getFile().getId().equals(createdDocgenTemplate.getFile().getId()); + DocGenTagsV2025R0 docgenTemplateTags = + client + .getDocgenTemplate() + .getDocgenTemplateTagsV2025R0(fetchedDocgenTemplate.getFile().getId()); + DocGenJobsV2025R0 docgenTemplateJobs = + client + .getDocgenTemplate() + .getDocgenTemplateJobByIdV2025R0(fetchedDocgenTemplate.getFile().getId()); + assert docgenTemplateJobs.getEntries().size() == 0; + client + .getDocgenTemplate() + .deleteDocgenTemplateByIdV2025R0(createdDocgenTemplate.getFile().getId()); + client.getFiles().deleteFileById(file.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/downloads/DownloadsITest.java b/src/test/java/com/box/sdkgen/test/downloads/DownloadsITest.java new file mode 100644 index 000000000..36b0d350b --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/downloads/DownloadsITest.java @@ -0,0 +1,77 @@ +package com.box.sdkgen.test.downloads; + +import static com.box.sdkgen.internal.utils.UtilsManager.bufferEquals; +import static com.box.sdkgen.internal.utils.UtilsManager.closeFileOutputStream; +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteBuffer; +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStreamFromBuffer; +import static com.box.sdkgen.internal.utils.UtilsManager.getFileOutputStream; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.internal.utils.UtilsManager.readBufferFromFile; +import static com.box.sdkgen.internal.utils.UtilsManager.readByteStream; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.uploads.UploadFileRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesParentField; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.files.Files; +import java.io.InputStream; +import java.io.OutputStream; +import org.junit.jupiter.api.Test; + +public class DownloadsITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testDownloadFile() { + String newFileName = getUuid(); + byte[] fileBuffer = generateByteBuffer(1024 * 1024); + InputStream fileContentStream = generateByteStreamFromBuffer(fileBuffer); + Files uploadedFiles = + client + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + newFileName, new UploadFileRequestBodyAttributesParentField("0")), + fileContentStream)); + FileFull uploadedFile = uploadedFiles.getEntries().get(0); + InputStream downloadedFileContent = client.getDownloads().downloadFile(uploadedFile.getId()); + assert bufferEquals(readByteStream(downloadedFileContent), fileBuffer); + client.getFiles().deleteFileById(uploadedFile.getId()); + } + + @Test + public void testGetDownloadUrl() { + FileFull uploadedFile = uploadNewFile(); + String downloadUrl = client.getDownloads().getDownloadFileUrl(uploadedFile.getId()); + assert !(downloadUrl == null); + assert downloadUrl.contains("https://"); + client.getFiles().deleteFileById(uploadedFile.getId()); + } + + @Test + public void testDownloadFileToOutputStream() { + String newFileName = getUuid(); + byte[] fileBuffer = generateByteBuffer(1024 * 1024); + InputStream fileContentStream = generateByteStreamFromBuffer(fileBuffer); + Files uploadedFiles = + client + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + newFileName, new UploadFileRequestBodyAttributesParentField("0")), + fileContentStream)); + FileFull uploadedFile = uploadedFiles.getEntries().get(0); + OutputStream fileOutputStream = getFileOutputStream(newFileName); + client.getDownloads().downloadFileToOutputStream(uploadedFile.getId(), fileOutputStream); + closeFileOutputStream(fileOutputStream); + byte[] downloadedFileContent = readBufferFromFile(newFileName); + assert bufferEquals(downloadedFileContent, fileBuffer); + client.getFiles().deleteFileById(uploadedFile.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/emailaliases/EmailAliasesITest.java b/src/test/java/com/box/sdkgen/test/emailaliases/EmailAliasesITest.java new file mode 100644 index 000000000..0f5ac210b --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/emailaliases/EmailAliasesITest.java @@ -0,0 +1,42 @@ +package com.box.sdkgen.test.emailaliases; + +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.emailaliases.CreateUserEmailAliasRequestBody; +import com.box.sdkgen.managers.users.CreateUserRequestBody; +import com.box.sdkgen.schemas.emailalias.EmailAlias; +import com.box.sdkgen.schemas.emailaliases.EmailAliases; +import com.box.sdkgen.schemas.userfull.UserFull; +import org.junit.jupiter.api.Test; + +public class EmailAliasesITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testEmailAliases() { + String newUserName = getUuid(); + String newUserLogin = String.join("", getUuid(), "@boxdemo.com"); + UserFull newUser = + client + .getUsers() + .createUser(new CreateUserRequestBody.Builder(newUserName).login(newUserLogin).build()); + EmailAliases aliases = client.getEmailAliases().getUserEmailAliases(newUser.getId()); + assert aliases.getTotalCount() == 0; + String newAliasEmail = String.join("", newUser.getId(), "@boxdemo.com"); + EmailAlias newAlias = + client + .getEmailAliases() + .createUserEmailAlias( + newUser.getId(), new CreateUserEmailAliasRequestBody(newAliasEmail)); + EmailAliases updatedAliases = client.getEmailAliases().getUserEmailAliases(newUser.getId()); + assert updatedAliases.getTotalCount() == 1; + assert updatedAliases.getEntries().get(0).getEmail().equals(newAliasEmail); + client.getEmailAliases().deleteUserEmailAliasById(newUser.getId(), newAlias.getId()); + EmailAliases finalAliases = client.getEmailAliases().getUserEmailAliases(newUser.getId()); + assert finalAliases.getTotalCount() == 0; + client.getUsers().deleteUserById(newUser.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/events/EventsITest.java b/src/test/java/com/box/sdkgen/test/events/EventsITest.java new file mode 100644 index 000000000..6d1044b0f --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/events/EventsITest.java @@ -0,0 +1,112 @@ +package com.box.sdkgen.test.events; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.epochSecondsToDateTime; +import static com.box.sdkgen.internal.utils.UtilsManager.getEpochTimeInSeconds; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.events.GetEventsQueryParams; +import com.box.sdkgen.managers.events.GetEventsQueryParamsEventTypeField; +import com.box.sdkgen.managers.events.GetEventsQueryParamsStreamTypeField; +import com.box.sdkgen.schemas.event.Event; +import com.box.sdkgen.schemas.events.Events; +import com.box.sdkgen.schemas.eventsource.EventSource; +import com.box.sdkgen.schemas.realtimeserver.RealtimeServer; +import com.box.sdkgen.schemas.realtimeservers.RealtimeServers; +import com.box.sdkgen.schemas.user.User; +import java.util.Arrays; +import java.util.Date; +import org.junit.jupiter.api.Test; + +public class EventsITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testEvents() { + Events events = client.getEvents().getEvents(); + assert events.getEntries().size() > 0; + Event firstEvent = events.getEntries().get(0); + assert convertToString(firstEvent.getCreatedBy().getType()).equals("user"); + assert !(convertToString(firstEvent.getEventType()).equals("")); + } + + @Test + public void testEventUpload() { + Events events = + client + .getEvents() + .getEvents( + new GetEventsQueryParams.Builder() + .streamType(GetEventsQueryParamsStreamTypeField.ADMIN_LOGS) + .eventType(Arrays.asList(GetEventsQueryParamsEventTypeField.UPLOAD)) + .build()); + assert events.getEntries().size() > 0; + Event firstEvent = events.getEntries().get(0); + assert convertToString(firstEvent.getEventType()).equals("UPLOAD"); + EventSource source = firstEvent.getSource().getEventSource(); + assert convertToString(source.getItemType()).equals("file") + || convertToString(source.getItemType()).equals("folder"); + assert !(source.getItemId().equals("")); + assert !(source.getItemName().equals("")); + } + + @Test + public void testEventDeleteUser() { + Events events = + client + .getEvents() + .getEvents( + new GetEventsQueryParams.Builder() + .streamType(GetEventsQueryParamsStreamTypeField.ADMIN_LOGS) + .eventType(Arrays.asList(GetEventsQueryParamsEventTypeField.DELETE_USER)) + .build()); + assert events.getEntries().size() > 0; + Event firstEvent = events.getEntries().get(0); + assert convertToString(firstEvent.getEventType()).equals("DELETE_USER"); + User source = firstEvent.getSource().getUser(); + assert convertToString(source.getType()).equals("user"); + assert !(source.getId().equals("")); + } + + @Test + public void testEventSourceFileOrFolder() { + Events events = + client + .getEvents() + .getEvents( + new GetEventsQueryParams.Builder() + .streamType(GetEventsQueryParamsStreamTypeField.CHANGES) + .build()); + assert events.getEntries().size() > 0; + } + + @Test + public void testGetEventsWithLongPolling() { + RealtimeServers servers = client.getEvents().getEventsWithLongPolling(); + assert servers.getEntries().size() > 0; + RealtimeServer server = servers.getEntries().get(0); + assert convertToString(server.getType()).equals("realtime_server"); + assert !(server.getUrl().equals("")); + } + + @Test + public void testGetEventsWithDateFilters() { + long currentEpochTimeInSeconds = getEpochTimeInSeconds(); + long epochTimeInSecondsAWeekAgo = currentEpochTimeInSeconds - 7 * 24 * 60 * 60; + Date createdAfterDate = epochSecondsToDateTime(epochTimeInSecondsAWeekAgo); + Date createdBeforeDate = epochSecondsToDateTime(currentEpochTimeInSeconds); + Events servers = + client + .getEvents() + .getEvents( + new GetEventsQueryParams.Builder() + .streamType(GetEventsQueryParamsStreamTypeField.ADMIN_LOGS) + .limit(1L) + .createdAfter(createdAfterDate) + .createdBefore(createdBeforeDate) + .build()); + assert servers.getEntries().size() == 1; + } +} diff --git a/src/test/java/com/box/sdkgen/test/fileclassifications/FileClassificationsITest.java b/src/test/java/com/box/sdkgen/test/fileclassifications/FileClassificationsITest.java new file mode 100644 index 000000000..cd3163d66 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/fileclassifications/FileClassificationsITest.java @@ -0,0 +1,98 @@ +package com.box.sdkgen.test.fileclassifications; + +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateClassification; +import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateClassificationTemplate; +import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.classifications.AddClassificationRequestBody; +import com.box.sdkgen.managers.classifications.AddClassificationRequestBodyDataField; +import com.box.sdkgen.managers.classifications.AddClassificationRequestBodyDataStaticConfigClassificationField; +import com.box.sdkgen.managers.classifications.AddClassificationRequestBodyDataStaticConfigField; +import com.box.sdkgen.managers.fileclassifications.AddClassificationToFileRequestBody; +import com.box.sdkgen.managers.fileclassifications.UpdateClassificationOnFileRequestBody; +import com.box.sdkgen.schemas.classification.Classification; +import com.box.sdkgen.schemas.classificationtemplate.ClassificationTemplate; +import com.box.sdkgen.schemas.classificationtemplate.ClassificationTemplateFieldsOptionsField; +import com.box.sdkgen.schemas.filefull.FileFull; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Test; + +public class FileClassificationsITest { + + private static final BoxClient client = getDefaultClient(); + + public static ClassificationTemplateFieldsOptionsField getOrCreateSecondClassification( + ClassificationTemplate classificationTemplate) { + List classifications = + classificationTemplate.getFields().get(0).getOptions(); + int currentNumberOfClassifications = classifications.size(); + if (currentNumberOfClassifications == 1) { + ClassificationTemplate classificationTemplateWithNewClassification = + client + .getClassifications() + .addClassification( + Arrays.asList( + new AddClassificationRequestBody( + new AddClassificationRequestBodyDataField.Builder(getUuid()) + .staticConfig( + new AddClassificationRequestBodyDataStaticConfigField.Builder() + .classification( + new AddClassificationRequestBodyDataStaticConfigClassificationField + .Builder() + .classificationDefinition("Other description") + .colorId(4L) + .build()) + .build()) + .build()))); + return classificationTemplateWithNewClassification.getFields().get(0).getOptions().get(1); + } + return classifications.get(1); + } + + @Test + public void testFileClassifications() { + ClassificationTemplate classificationTemplate = getOrCreateClassificationTemplate(); + ClassificationTemplateFieldsOptionsField classification = + getOrCreateClassification(classificationTemplate); + FileFull file = uploadNewFile(); + assertThrows( + RuntimeException.class, + () -> client.getFileClassifications().getClassificationOnFile(file.getId())); + Classification createdFileClassification = + client + .getFileClassifications() + .addClassificationToFile( + file.getId(), + new AddClassificationToFileRequestBody.Builder() + .boxSecurityClassificationKey(classification.getKey()) + .build()); + assert createdFileClassification + .getBoxSecurityClassificationKey() + .equals(classification.getKey()); + Classification fileClassification = + client.getFileClassifications().getClassificationOnFile(file.getId()); + assert fileClassification.getBoxSecurityClassificationKey().equals(classification.getKey()); + ClassificationTemplateFieldsOptionsField secondClassification = + getOrCreateSecondClassification(classificationTemplate); + Classification updatedFileClassification = + client + .getFileClassifications() + .updateClassificationOnFile( + file.getId(), + Arrays.asList( + new UpdateClassificationOnFileRequestBody(secondClassification.getKey()))); + assert updatedFileClassification + .getBoxSecurityClassificationKey() + .equals(secondClassification.getKey()); + client.getFileClassifications().deleteClassificationFromFile(file.getId()); + assertThrows( + RuntimeException.class, + () -> client.getFileClassifications().getClassificationOnFile(file.getId())); + client.getFiles().deleteFileById(file.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/filemetadata/FileMetadataITest.java b/src/test/java/com/box/sdkgen/test/filemetadata/FileMetadataITest.java new file mode 100644 index 000000000..f5fe116f1 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/filemetadata/FileMetadataITest.java @@ -0,0 +1,266 @@ +package com.box.sdkgen.test.filemetadata; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.filemetadata.CreateFileMetadataByIdScope; +import com.box.sdkgen.managers.filemetadata.DeleteFileMetadataByIdScope; +import com.box.sdkgen.managers.filemetadata.GetFileMetadataByIdScope; +import com.box.sdkgen.managers.filemetadata.UpdateFileMetadataByIdRequestBody; +import com.box.sdkgen.managers.filemetadata.UpdateFileMetadataByIdRequestBodyOpField; +import com.box.sdkgen.managers.filemetadata.UpdateFileMetadataByIdScope; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBody; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsField; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsOptionsField; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsTypeField; +import com.box.sdkgen.managers.metadatatemplates.DeleteMetadataTemplateScope; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.metadatafull.MetadataFull; +import com.box.sdkgen.schemas.metadatas.Metadatas; +import com.box.sdkgen.schemas.metadatatemplate.MetadataTemplate; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class FileMetadataITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testUpdatingFileMetadata() { + FileFull file = uploadNewFile(); + String templateKey = String.join("", "key", getUuid()); + MetadataTemplate template = + client + .getMetadataTemplates() + .createMetadataTemplate( + new CreateMetadataTemplateRequestBody.Builder("enterprise", templateKey) + .templateKey(templateKey) + .fields( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.STRING, + "name", + "name"), + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.FLOAT, + "age", + "age"), + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.DATE, + "birthDate", + "birthDate"), + new CreateMetadataTemplateRequestBodyFieldsField.Builder( + CreateMetadataTemplateRequestBodyFieldsTypeField.ENUM, + "countryCode", + "countryCode") + .options( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "US"), + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "CA"))) + .build(), + new CreateMetadataTemplateRequestBodyFieldsField.Builder( + CreateMetadataTemplateRequestBodyFieldsTypeField.MULTISELECT, + "sports", + "sports") + .options( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "basketball"), + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "football"), + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "tennis"))) + .build())) + .build()); + MetadataFull createdMetadata = + client + .getFileMetadata() + .createFileMetadataById( + file.getId(), + CreateFileMetadataByIdScope.ENTERPRISE, + templateKey, + mapOf( + entryOf("name", "John"), + entryOf("age", 23), + entryOf("birthDate", "2001-01-03T02:20:50.520Z"), + entryOf("countryCode", "US"), + entryOf("sports", Arrays.asList("basketball", "tennis")))); + MetadataFull updatedMetadata = + client + .getFileMetadata() + .updateFileMetadataById( + file.getId(), + UpdateFileMetadataByIdScope.ENTERPRISE, + templateKey, + Arrays.asList( + new UpdateFileMetadataByIdRequestBody.Builder() + .op(UpdateFileMetadataByIdRequestBodyOpField.REPLACE) + .path("/name") + .value("Jack") + .build(), + new UpdateFileMetadataByIdRequestBody.Builder() + .op(UpdateFileMetadataByIdRequestBodyOpField.REPLACE) + .path("/age") + .value(24L) + .build(), + new UpdateFileMetadataByIdRequestBody.Builder() + .op(UpdateFileMetadataByIdRequestBodyOpField.REPLACE) + .path("/birthDate") + .value("2000-01-03T02:20:50.520Z") + .build(), + new UpdateFileMetadataByIdRequestBody.Builder() + .op(UpdateFileMetadataByIdRequestBodyOpField.REPLACE) + .path("/countryCode") + .value("CA") + .build(), + new UpdateFileMetadataByIdRequestBody.Builder() + .op(UpdateFileMetadataByIdRequestBodyOpField.REPLACE) + .path("/sports") + .value(Arrays.asList("football")) + .build())); + assert convertToString(updatedMetadata.getTemplate()).equals(templateKey); + assert convertToString(updatedMetadata.getExtraData().get("name")).equals("Jack"); + assert convertToString(updatedMetadata.getExtraData().get("age")).equals("24"); + assert convertToString(updatedMetadata.getExtraData().get("birthDate")) + .equals("2000-01-03T02:20:50.520Z"); + assert convertToString(updatedMetadata.getExtraData().get("countryCode")).equals("CA"); + client + .getFileMetadata() + .deleteFileMetadataById(file.getId(), DeleteFileMetadataByIdScope.ENTERPRISE, templateKey); + client + .getMetadataTemplates() + .deleteMetadataTemplate(DeleteMetadataTemplateScope.ENTERPRISE, templateKey); + client.getFiles().deleteFileById(file.getId()); + } + + @Test + public void testGlobalFileMetadata() { + FileFull file = uploadNewFile(); + Metadatas fileMetadata = client.getFileMetadata().getFileMetadata(file.getId()); + assert fileMetadata.getEntries().size() == 0; + MetadataFull createdMetadata = + client + .getFileMetadata() + .createFileMetadataById( + file.getId(), + CreateFileMetadataByIdScope.GLOBAL, + "properties", + mapOf(entryOf("abc", "xyz"))); + assert convertToString(createdMetadata.getTemplate()).equals("properties"); + assert convertToString(createdMetadata.getScope()).equals("global"); + assert createdMetadata.getVersion() == 0; + MetadataFull receivedMetadata = + client + .getFileMetadata() + .getFileMetadataById(file.getId(), GetFileMetadataByIdScope.GLOBAL, "properties"); + assert convertToString(receivedMetadata.getExtraData().get("abc")).equals("xyz"); + String newValue = "bar"; + client + .getFileMetadata() + .updateFileMetadataById( + file.getId(), + UpdateFileMetadataByIdScope.GLOBAL, + "properties", + Arrays.asList( + new UpdateFileMetadataByIdRequestBody.Builder() + .op(UpdateFileMetadataByIdRequestBodyOpField.REPLACE) + .path("/abc") + .value(newValue) + .build())); + MetadataFull receivedUpdatedMetadata = + client + .getFileMetadata() + .getFileMetadataById(file.getId(), GetFileMetadataByIdScope.GLOBAL, "properties"); + assert convertToString(receivedUpdatedMetadata.getExtraData().get("abc")).equals(newValue); + client + .getFileMetadata() + .deleteFileMetadataById(file.getId(), DeleteFileMetadataByIdScope.GLOBAL, "properties"); + assertThrows( + RuntimeException.class, + () -> + client + .getFileMetadata() + .getFileMetadataById(file.getId(), GetFileMetadataByIdScope.GLOBAL, "properties")); + client.getFiles().deleteFileById(file.getId()); + } + + @Test + public void testEnterpriseFileMetadata() { + FileFull file = uploadNewFile(); + String templateKey = String.join("", "key", getUuid()); + client + .getMetadataTemplates() + .createMetadataTemplate( + new CreateMetadataTemplateRequestBody.Builder("enterprise", templateKey) + .templateKey(templateKey) + .fields( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.STRING, + "name", + "name"), + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.FLOAT, "age", "age"), + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.DATE, + "birthDate", + "birthDate"), + new CreateMetadataTemplateRequestBodyFieldsField.Builder( + CreateMetadataTemplateRequestBodyFieldsTypeField.ENUM, + "countryCode", + "countryCode") + .options( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsOptionsField("US"), + new CreateMetadataTemplateRequestBodyFieldsOptionsField("CA"))) + .build(), + new CreateMetadataTemplateRequestBodyFieldsField.Builder( + CreateMetadataTemplateRequestBodyFieldsTypeField.MULTISELECT, + "sports", + "sports") + .options( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "basketball"), + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "football"), + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "tennis"))) + .build())) + .build()); + MetadataFull createdMetadata = + client + .getFileMetadata() + .createFileMetadataById( + file.getId(), + CreateFileMetadataByIdScope.ENTERPRISE, + templateKey, + mapOf( + entryOf("name", "John"), + entryOf("age", 23), + entryOf("birthDate", "2001-01-03T02:20:50.520Z"), + entryOf("countryCode", "US"), + entryOf("sports", Arrays.asList("basketball", "tennis")))); + assert convertToString(createdMetadata.getTemplate()).equals(templateKey); + assert convertToString(createdMetadata.getExtraData().get("name")).equals("John"); + assert convertToString(createdMetadata.getExtraData().get("age")).equals("23"); + assert convertToString(createdMetadata.getExtraData().get("birthDate")) + .equals("2001-01-03T02:20:50.520Z"); + assert convertToString(createdMetadata.getExtraData().get("countryCode")).equals("US"); + client + .getFileMetadata() + .deleteFileMetadataById(file.getId(), DeleteFileMetadataByIdScope.ENTERPRISE, templateKey); + client + .getMetadataTemplates() + .deleteMetadataTemplate(DeleteMetadataTemplateScope.ENTERPRISE, templateKey); + client.getFiles().deleteFileById(file.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/filerequests/FileRequestsITest.java b/src/test/java/com/box/sdkgen/test/filerequests/FileRequestsITest.java new file mode 100644 index 000000000..4bbf07cd2 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/filerequests/FileRequestsITest.java @@ -0,0 +1,55 @@ +package com.box.sdkgen.test.filerequests; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.schemas.filerequest.FileRequest; +import com.box.sdkgen.schemas.filerequestcopyrequest.FileRequestCopyRequest; +import com.box.sdkgen.schemas.filerequestcopyrequest.FileRequestCopyRequestFolderField; +import com.box.sdkgen.schemas.filerequestcopyrequest.FileRequestCopyRequestFolderTypeField; +import com.box.sdkgen.schemas.filerequestupdaterequest.FileRequestUpdateRequest; +import org.junit.jupiter.api.Test; + +public class FileRequestsITest { + + @Test + public void testGetCopyUpdateDeleteFileRequest() { + String fileRequestId = getEnvVar("BOX_FILE_REQUEST_ID"); + String userId = getEnvVar("USER_ID"); + BoxClient client = getDefaultClientWithUserSubject(userId); + FileRequest fileRequest = client.getFileRequests().getFileRequestById(fileRequestId); + assert fileRequest.getId().equals(fileRequestId); + assert convertToString(fileRequest.getType()).equals("file_request"); + FileRequest copiedFileRequest = + client + .getFileRequests() + .createFileRequestCopy( + fileRequestId, + new FileRequestCopyRequest( + new FileRequestCopyRequestFolderField.Builder(fileRequest.getFolder().getId()) + .type(FileRequestCopyRequestFolderTypeField.FOLDER) + .build())); + assert !(copiedFileRequest.getId().equals(fileRequestId)); + assert copiedFileRequest.getTitle().equals(fileRequest.getTitle()); + assert copiedFileRequest.getDescription().equals(fileRequest.getDescription()); + FileRequest updatedFileRequest = + client + .getFileRequests() + .updateFileRequestById( + copiedFileRequest.getId(), + new FileRequestUpdateRequest.Builder() + .title("updated title") + .description("updated description") + .build()); + assert updatedFileRequest.getId().equals(copiedFileRequest.getId()); + assert updatedFileRequest.getTitle().equals("updated title"); + assert updatedFileRequest.getDescription().equals("updated description"); + client.getFileRequests().deleteFileRequestById(updatedFileRequest.getId()); + assertThrows( + RuntimeException.class, + () -> client.getFileRequests().getFileRequestById(updatedFileRequest.getId())); + } +} diff --git a/src/test/java/com/box/sdkgen/test/files/FilesITest.java b/src/test/java/com/box/sdkgen/test/files/FilesITest.java new file mode 100644 index 000000000..4b605aea0 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/files/FilesITest.java @@ -0,0 +1,183 @@ +package com.box.sdkgen.test.files; + +import static com.box.sdkgen.internal.utils.UtilsManager.bufferEquals; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteBuffer; +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStreamFromBuffer; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.readByteStream; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.files.CopyFileRequestBody; +import com.box.sdkgen.managers.files.CopyFileRequestBodyParentField; +import com.box.sdkgen.managers.files.GetFileByIdHeaders; +import com.box.sdkgen.managers.files.GetFileByIdQueryParams; +import com.box.sdkgen.managers.files.GetFileThumbnailByIdExtension; +import com.box.sdkgen.managers.files.GetFileThumbnailUrlExtension; +import com.box.sdkgen.managers.files.UpdateFileByIdQueryParams; +import com.box.sdkgen.managers.files.UpdateFileByIdRequestBody; +import com.box.sdkgen.managers.files.UpdateFileByIdRequestBodyLockAccessField; +import com.box.sdkgen.managers.files.UpdateFileByIdRequestBodyLockField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesParentField; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.files.Files; +import com.box.sdkgen.schemas.trashfile.TrashFile; +import java.io.InputStream; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class FilesITest { + + private static final BoxClient client = getDefaultClient(); + + public static FileFull uploadFile(String fileName, InputStream fileStream) { + Files uploadedFiles = + client + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + fileName, new UploadFileRequestBodyAttributesParentField("0")), + fileStream)); + return uploadedFiles.getEntries().get(0); + } + + @Test + public void testGetFileThumbnailUrl() { + String thumbnailFileName = getUuid(); + InputStream thumbnailContentStream = generateByteStream(1024 * 1024); + FileFull thumbnailFile = uploadFile(thumbnailFileName, thumbnailContentStream); + String downloadUrl = + client + .getFiles() + .getFileThumbnailUrl(thumbnailFile.getId(), GetFileThumbnailUrlExtension.PNG); + assert !(downloadUrl == null); + assert downloadUrl.contains("https://"); + client.getFiles().deleteFileById(thumbnailFile.getId()); + } + + @Test + public void testGetFileThumbnail() { + String thumbnailFileName = getUuid(); + byte[] thumbnailBuffer = generateByteBuffer(1024 * 1024); + InputStream thumbnailContentStream = generateByteStreamFromBuffer(thumbnailBuffer); + FileFull thumbnailFile = uploadFile(thumbnailFileName, thumbnailContentStream); + InputStream thumbnail = + client + .getFiles() + .getFileThumbnailById(thumbnailFile.getId(), GetFileThumbnailByIdExtension.PNG); + assert !(bufferEquals(readByteStream(thumbnail), thumbnailBuffer) == true); + client.getFiles().deleteFileById(thumbnailFile.getId()); + } + + @Test + public void testGetFileFullExtraFields() { + String newFileName = getUuid(); + InputStream fileStream = generateByteStream(1024 * 1024); + FileFull uploadedFile = uploadFile(newFileName, fileStream); + FileFull file = + client + .getFiles() + .getFileById( + uploadedFile.getId(), + new GetFileByIdQueryParams.Builder() + .fields(Arrays.asList("is_externally_owned", "has_collaborations")) + .build()); + assert file.getIsExternallyOwned() == false; + assert file.getHasCollaborations() == false; + client.getFiles().deleteFileById(file.getId()); + } + + @Test + public void testCreateGetAndDeleteFile() { + String newFileName = getUuid(); + InputStream updatedContentStream = generateByteStream(1024 * 1024); + FileFull uploadedFile = uploadFile(newFileName, updatedContentStream); + FileFull file = client.getFiles().getFileById(uploadedFile.getId()); + assertThrows( + RuntimeException.class, + () -> + client + .getFiles() + .getFileById( + uploadedFile.getId(), + new GetFileByIdQueryParams.Builder().fields(Arrays.asList("name")).build(), + new GetFileByIdHeaders.Builder() + .extraHeaders(mapOf(entryOf("if-none-match", file.getEtag()))) + .build())); + assert file.getName().equals(newFileName); + client.getFiles().deleteFileById(uploadedFile.getId()); + TrashFile trashedFile = client.getTrashedFiles().getTrashedFileById(uploadedFile.getId()); + assert file.getId().equals(trashedFile.getId()); + } + + @Test + public void testUpdateFile() { + FileFull fileToUpdate = uploadNewFile(); + String updatedName = getUuid(); + FileFull updatedFile = + client + .getFiles() + .updateFileById( + fileToUpdate.getId(), + new UpdateFileByIdRequestBody.Builder() + .name(updatedName) + .description("Updated description") + .build()); + assert updatedFile.getName().equals(updatedName); + assert updatedFile.getDescription().equals("Updated description"); + client.getFiles().deleteFileById(updatedFile.getId()); + } + + @Test + public void testFileLock() { + FileFull file = uploadNewFile(); + FileFull fileWithLock = + client + .getFiles() + .updateFileById( + file.getId(), + new UpdateFileByIdRequestBody.Builder() + .lock( + new UpdateFileByIdRequestBodyLockField.Builder() + .access(UpdateFileByIdRequestBodyLockAccessField.LOCK) + .build()) + .build(), + new UpdateFileByIdQueryParams.Builder().fields(Arrays.asList("lock")).build()); + assert !(fileWithLock.getLock() == null); + FileFull fileWithoutLock = + client + .getFiles() + .updateFileById( + file.getId(), + new UpdateFileByIdRequestBody.Builder().lock(null).build(), + new UpdateFileByIdQueryParams.Builder().fields(Arrays.asList("lock")).build()); + assert fileWithoutLock.getLock() == null; + client.getFiles().deleteFileById(file.getId()); + } + + @Test + public void testCopyFile() { + FileFull fileOrigin = uploadNewFile(); + String copiedFileName = getUuid(); + FileFull copiedFile = + client + .getFiles() + .copyFile( + fileOrigin.getId(), + new CopyFileRequestBody.Builder(new CopyFileRequestBodyParentField("0")) + .name(copiedFileName) + .build()); + assert copiedFile.getParent().getId().equals("0"); + assert copiedFile.getName().equals(copiedFileName); + client.getFiles().deleteFileById(fileOrigin.getId()); + client.getFiles().deleteFileById(copiedFile.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/fileversionlegalholds/FileVersionLegalHoldsITest.java b/src/test/java/com/box/sdkgen/test/fileversionlegalholds/FileVersionLegalHoldsITest.java new file mode 100644 index 000000000..c82451af8 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/fileversionlegalholds/FileVersionLegalHoldsITest.java @@ -0,0 +1,34 @@ +package com.box.sdkgen.test.fileversionlegalholds; + +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.fileversionlegalholds.GetFileVersionLegalHoldsQueryParams; +import com.box.sdkgen.schemas.fileversionlegalholds.FileVersionLegalHolds; +import org.junit.jupiter.api.Test; + +public class FileVersionLegalHoldsITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testGetFileVersionLegalHolds() { + String policyId = "1234567890"; + FileVersionLegalHolds fileVersionLegalHolds = + client + .getFileVersionLegalHolds() + .getFileVersionLegalHolds(new GetFileVersionLegalHoldsQueryParams(policyId)); + int fileVersionLegalHoldsCount = fileVersionLegalHolds.getEntries().size(); + assert fileVersionLegalHoldsCount >= 0; + } + + @Test + public void testGetFileVersionLegalHoldById() { + String fileVersionLegalHoldId = "987654321"; + assertThrows( + RuntimeException.class, + () -> + client.getFileVersionLegalHolds().getFileVersionLegalHoldById(fileVersionLegalHoldId)); + } +} diff --git a/src/test/java/com/box/sdkgen/test/fileversionretentions/FileVersionRetentionsITest.java b/src/test/java/com/box/sdkgen/test/fileversionretentions/FileVersionRetentionsITest.java new file mode 100644 index 000000000..1f1f6ca27 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/fileversionretentions/FileVersionRetentionsITest.java @@ -0,0 +1,111 @@ +package com.box.sdkgen.test.fileversionretentions; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.createNewFolder; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.folders.DeleteFolderByIdQueryParams; +import com.box.sdkgen.managers.retentionpolicies.CreateRetentionPolicyRequestBody; +import com.box.sdkgen.managers.retentionpolicies.CreateRetentionPolicyRequestBodyDispositionActionField; +import com.box.sdkgen.managers.retentionpolicies.CreateRetentionPolicyRequestBodyPolicyTypeField; +import com.box.sdkgen.managers.retentionpolicies.CreateRetentionPolicyRequestBodyRetentionTypeField; +import com.box.sdkgen.managers.retentionpolicyassignments.CreateRetentionPolicyAssignmentRequestBody; +import com.box.sdkgen.managers.retentionpolicyassignments.CreateRetentionPolicyAssignmentRequestBodyAssignToField; +import com.box.sdkgen.managers.retentionpolicyassignments.CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesParentField; +import com.box.sdkgen.managers.uploads.UploadFileVersionRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileVersionRequestBodyAttributesField; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.files.Files; +import com.box.sdkgen.schemas.fileversionretention.FileVersionRetention; +import com.box.sdkgen.schemas.fileversionretentions.FileVersionRetentions; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.retentionpolicy.RetentionPolicy; +import com.box.sdkgen.schemas.retentionpolicyassignment.RetentionPolicyAssignment; +import org.junit.jupiter.api.Test; + +public class FileVersionRetentionsITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testCreateUpdateGetDeleteRetentionPolicy() { + String description = getUuid(); + RetentionPolicy retentionPolicy = + client + .getRetentionPolicies() + .createRetentionPolicy( + new CreateRetentionPolicyRequestBody.Builder( + getUuid(), + CreateRetentionPolicyRequestBodyPolicyTypeField.FINITE, + CreateRetentionPolicyRequestBodyDispositionActionField.REMOVE_RETENTION) + .description(description) + .retentionLength("1") + .retentionType(CreateRetentionPolicyRequestBodyRetentionTypeField.MODIFIABLE) + .canOwnerExtendRetention(false) + .build()); + assert retentionPolicy.getDescription().equals(description); + assert retentionPolicy.getCanOwnerExtendRetention() == false; + assert convertToString(retentionPolicy.getRetentionType()).equals("modifiable"); + FolderFull folder = createNewFolder(); + RetentionPolicyAssignment retentionPolicyAssignment = + client + .getRetentionPolicyAssignments() + .createRetentionPolicyAssignment( + new CreateRetentionPolicyAssignmentRequestBody( + retentionPolicy.getId(), + new CreateRetentionPolicyAssignmentRequestBodyAssignToField.Builder( + CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField.FOLDER) + .id(folder.getId()) + .build())); + assert retentionPolicyAssignment.getRetentionPolicy().getId().equals(retentionPolicy.getId()); + assert retentionPolicyAssignment.getAssignedTo().getId().equals(folder.getId()); + assert convertToString(retentionPolicyAssignment.getAssignedTo().getType()) + .equals(convertToString(folder.getType())); + Files files = + client + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + getUuid(), new UploadFileRequestBodyAttributesParentField(folder.getId())), + generateByteStream(10))); + FileFull file = files.getEntries().get(0); + Files newFiles = + client + .getUploads() + .uploadFileVersion( + file.getId(), + new UploadFileVersionRequestBody( + new UploadFileVersionRequestBodyAttributesField(file.getName()), + generateByteStream(20))); + FileFull newFile = newFiles.getEntries().get(0); + assert newFile.getId().equals(file.getId()); + FileVersionRetentions fileVersionRetentions = + client.getFileVersionRetentions().getFileVersionRetentions(); + int fileVersionRetentionsCount = fileVersionRetentions.getEntries().size(); + assert fileVersionRetentionsCount >= 0; + if (fileVersionRetentionsCount == 0) { + client.getRetentionPolicies().deleteRetentionPolicyById(retentionPolicy.getId()); + client + .getFolders() + .deleteFolderById( + folder.getId(), new DeleteFolderByIdQueryParams.Builder().recursive(true).build()); + return; + } + FileVersionRetention fileVersionRetention = fileVersionRetentions.getEntries().get(0); + FileVersionRetention fileVersionRetentionById = + client.getFileVersionRetentions().getFileVersionRetentionById(fileVersionRetention.getId()); + assert fileVersionRetentionById.getId().equals(fileVersionRetention.getId()); + client.getRetentionPolicies().deleteRetentionPolicyById(retentionPolicy.getId()); + client + .getFolders() + .deleteFolderById( + folder.getId(), new DeleteFolderByIdQueryParams.Builder().recursive(true).build()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/fileversions/FileVersionsITest.java b/src/test/java/com/box/sdkgen/test/fileversions/FileVersionsITest.java new file mode 100644 index 000000000..408261560 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/fileversions/FileVersionsITest.java @@ -0,0 +1,146 @@ +package com.box.sdkgen.test.fileversions; + +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.fileversions.GetFileVersionByIdQueryParams; +import com.box.sdkgen.managers.fileversions.PromoteFileVersionRequestBody; +import com.box.sdkgen.managers.fileversions.PromoteFileVersionRequestBodyTypeField; +import com.box.sdkgen.managers.fileversions.UpdateFileVersionByIdRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesParentField; +import com.box.sdkgen.managers.uploads.UploadFileVersionRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileVersionRequestBodyAttributesField; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.files.Files; +import com.box.sdkgen.schemas.fileversionfull.FileVersionFull; +import com.box.sdkgen.schemas.fileversions.FileVersions; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class FileVersionsITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testCreateListGetPromoteFileVersion() { + String oldName = getUuid(); + String newName = getUuid(); + Files files = + client + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + oldName, new UploadFileRequestBodyAttributesParentField("0")), + generateByteStream(10))); + FileFull file = files.getEntries().get(0); + assert file.getName().equals(oldName); + assert file.getSize() == 10; + Files newFiles = + client + .getUploads() + .uploadFileVersion( + file.getId(), + new UploadFileVersionRequestBody( + new UploadFileVersionRequestBodyAttributesField(newName), + generateByteStream(20))); + FileFull newFile = newFiles.getEntries().get(0); + assert newFile.getName().equals(newName); + assert newFile.getSize() == 20; + FileVersions fileVersions = client.getFileVersions().getFileVersions(file.getId()); + assert fileVersions.getTotalCount() == 1; + FileVersionFull fileVersion = + client + .getFileVersions() + .getFileVersionById(file.getId(), fileVersions.getEntries().get(0).getId()); + assert fileVersion.getId().equals(fileVersions.getEntries().get(0).getId()); + client + .getFileVersions() + .promoteFileVersion( + file.getId(), + new PromoteFileVersionRequestBody.Builder() + .id(fileVersions.getEntries().get(0).getId()) + .type(PromoteFileVersionRequestBodyTypeField.FILE_VERSION) + .build()); + FileFull fileWithPromotedVersion = client.getFiles().getFileById(file.getId()); + assert fileWithPromotedVersion.getName().equals(oldName); + assert fileWithPromotedVersion.getSize() == 10; + client.getFileVersions().deleteFileVersionById(file.getId(), fileVersion.getId()); + client.getFiles().deleteFileById(file.getId()); + } + + @Test + public void testRemoveAndRestoreFileVersion() { + String oldName = getUuid(); + String newName = getUuid(); + Files files = + client + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + oldName, new UploadFileRequestBodyAttributesParentField("0")), + generateByteStream(10))); + FileFull file = files.getEntries().get(0); + client + .getUploads() + .uploadFileVersion( + file.getId(), + new UploadFileVersionRequestBody( + new UploadFileVersionRequestBodyAttributesField(newName), generateByteStream(20))); + FileVersions fileVersions = client.getFileVersions().getFileVersions(file.getId()); + assert fileVersions.getTotalCount() == 1; + FileVersionFull fileVersion = + client + .getFileVersions() + .getFileVersionById( + file.getId(), + fileVersions.getEntries().get(0).getId(), + new GetFileVersionByIdQueryParams.Builder() + .fields(Arrays.asList("trashed_at", "trashed_by", "restored_at", "restored_by")) + .build()); + assert fileVersion.getTrashedAt() == null; + assert fileVersion.getTrashedBy() == null; + assert fileVersion.getRestoredAt() == null; + assert fileVersion.getRestoredBy() == null; + client.getFileVersions().deleteFileVersionById(file.getId(), fileVersion.getId()); + FileVersionFull deletedFileVersion = + client + .getFileVersions() + .getFileVersionById( + file.getId(), + fileVersions.getEntries().get(0).getId(), + new GetFileVersionByIdQueryParams.Builder() + .fields(Arrays.asList("trashed_at", "trashed_by", "restored_at", "restored_by")) + .build()); + assert !(deletedFileVersion.getTrashedAt() == null); + assert !(deletedFileVersion.getTrashedBy() == null); + assert deletedFileVersion.getRestoredAt() == null; + assert deletedFileVersion.getRestoredBy() == null; + client + .getFileVersions() + .updateFileVersionById( + file.getId(), + fileVersion.getId(), + new UpdateFileVersionByIdRequestBody.Builder().trashedAt(null).build()); + FileVersionFull restoredFileVersion = + client + .getFileVersions() + .getFileVersionById( + file.getId(), + fileVersions.getEntries().get(0).getId(), + new GetFileVersionByIdQueryParams.Builder() + .fields(Arrays.asList("trashed_at", "trashed_by", "restored_at", "restored_by")) + .build()); + assert restoredFileVersion.getTrashedAt() == null; + assert restoredFileVersion.getTrashedBy() == null; + assert !(restoredFileVersion.getRestoredAt() == null); + assert !(restoredFileVersion.getRestoredBy() == null); + client.getFileVersions().deleteFileVersionById(file.getId(), fileVersion.getId()); + client.getFiles().deleteFileById(file.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/filewatermarks/FileWatermarksITest.java b/src/test/java/com/box/sdkgen/test/filewatermarks/FileWatermarksITest.java new file mode 100644 index 000000000..55f48f991 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/filewatermarks/FileWatermarksITest.java @@ -0,0 +1,51 @@ +package com.box.sdkgen.test.filewatermarks; + +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.filewatermarks.UpdateFileWatermarkRequestBody; +import com.box.sdkgen.managers.filewatermarks.UpdateFileWatermarkRequestBodyWatermarkField; +import com.box.sdkgen.managers.filewatermarks.UpdateFileWatermarkRequestBodyWatermarkImprintField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesParentField; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.files.Files; +import com.box.sdkgen.schemas.watermark.Watermark; +import org.junit.jupiter.api.Test; + +public class FileWatermarksITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testCreateGetDeleteFileWatermark() { + String fileName = String.join("", getUuid(), ".txt"); + Files uploadedFiles = + client + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + fileName, new UploadFileRequestBodyAttributesParentField("0")), + generateByteStream(10))); + FileFull file = uploadedFiles.getEntries().get(0); + Watermark createdWatermark = + client + .getFileWatermarks() + .updateFileWatermark( + file.getId(), + new UpdateFileWatermarkRequestBody( + new UpdateFileWatermarkRequestBodyWatermarkField.Builder() + .imprint(UpdateFileWatermarkRequestBodyWatermarkImprintField.DEFAULT) + .build())); + Watermark watermark = client.getFileWatermarks().getFileWatermark(file.getId()); + client.getFileWatermarks().deleteFileWatermark(file.getId()); + assertThrows( + RuntimeException.class, () -> client.getFileWatermarks().getFileWatermark(file.getId())); + client.getFiles().deleteFileById(file.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/folderclassifications/FolderClassificationsITest.java b/src/test/java/com/box/sdkgen/test/folderclassifications/FolderClassificationsITest.java new file mode 100644 index 000000000..e9b76dd8e --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/folderclassifications/FolderClassificationsITest.java @@ -0,0 +1,98 @@ +package com.box.sdkgen.test.folderclassifications; + +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.createNewFolder; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateClassification; +import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateClassificationTemplate; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.classifications.AddClassificationRequestBody; +import com.box.sdkgen.managers.classifications.AddClassificationRequestBodyDataField; +import com.box.sdkgen.managers.classifications.AddClassificationRequestBodyDataStaticConfigClassificationField; +import com.box.sdkgen.managers.classifications.AddClassificationRequestBodyDataStaticConfigField; +import com.box.sdkgen.managers.folderclassifications.AddClassificationToFolderRequestBody; +import com.box.sdkgen.managers.folderclassifications.UpdateClassificationOnFolderRequestBody; +import com.box.sdkgen.schemas.classification.Classification; +import com.box.sdkgen.schemas.classificationtemplate.ClassificationTemplate; +import com.box.sdkgen.schemas.classificationtemplate.ClassificationTemplateFieldsOptionsField; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Test; + +public class FolderClassificationsITest { + + private static final BoxClient client = getDefaultClient(); + + public static ClassificationTemplateFieldsOptionsField getOrCreateSecondClassification( + ClassificationTemplate classificationTemplate) { + List classifications = + classificationTemplate.getFields().get(0).getOptions(); + int currentNumberOfClassifications = classifications.size(); + if (currentNumberOfClassifications == 1) { + ClassificationTemplate classificationTemplateWithNewClassification = + client + .getClassifications() + .addClassification( + Arrays.asList( + new AddClassificationRequestBody( + new AddClassificationRequestBodyDataField.Builder(getUuid()) + .staticConfig( + new AddClassificationRequestBodyDataStaticConfigField.Builder() + .classification( + new AddClassificationRequestBodyDataStaticConfigClassificationField + .Builder() + .classificationDefinition("Other description") + .colorId(4L) + .build()) + .build()) + .build()))); + return classificationTemplateWithNewClassification.getFields().get(0).getOptions().get(1); + } + return classifications.get(1); + } + + @Test + public void testFolderClassifications() { + ClassificationTemplate classificationTemplate = getOrCreateClassificationTemplate(); + ClassificationTemplateFieldsOptionsField classification = + getOrCreateClassification(classificationTemplate); + FolderFull folder = createNewFolder(); + assertThrows( + RuntimeException.class, + () -> client.getFolderClassifications().getClassificationOnFolder(folder.getId())); + Classification createdFolderClassification = + client + .getFolderClassifications() + .addClassificationToFolder( + folder.getId(), + new AddClassificationToFolderRequestBody.Builder() + .boxSecurityClassificationKey(classification.getKey()) + .build()); + assert createdFolderClassification + .getBoxSecurityClassificationKey() + .equals(classification.getKey()); + Classification folderClassification = + client.getFolderClassifications().getClassificationOnFolder(folder.getId()); + assert folderClassification.getBoxSecurityClassificationKey().equals(classification.getKey()); + ClassificationTemplateFieldsOptionsField secondClassification = + getOrCreateSecondClassification(classificationTemplate); + Classification updatedFolderClassification = + client + .getFolderClassifications() + .updateClassificationOnFolder( + folder.getId(), + Arrays.asList( + new UpdateClassificationOnFolderRequestBody(secondClassification.getKey()))); + assert updatedFolderClassification + .getBoxSecurityClassificationKey() + .equals(secondClassification.getKey()); + client.getFolderClassifications().deleteClassificationFromFolder(folder.getId()); + assertThrows( + RuntimeException.class, + () -> client.getFolderClassifications().getClassificationOnFolder(folder.getId())); + client.getFolders().deleteFolderById(folder.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/folderlocks/FolderLocksITest.java b/src/test/java/com/box/sdkgen/test/folderlocks/FolderLocksITest.java new file mode 100644 index 000000000..ff2cfbcc1 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/folderlocks/FolderLocksITest.java @@ -0,0 +1,48 @@ +package com.box.sdkgen.test.folderlocks; + +import static com.box.sdkgen.test.commons.CommonsManager.createNewFolder; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.folderlocks.CreateFolderLockRequestBody; +import com.box.sdkgen.managers.folderlocks.CreateFolderLockRequestBodyFolderField; +import com.box.sdkgen.managers.folderlocks.CreateFolderLockRequestBodyLockedOperationsField; +import com.box.sdkgen.managers.folderlocks.GetFolderLocksQueryParams; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.folderlock.FolderLock; +import com.box.sdkgen.schemas.folderlocks.FolderLocks; +import org.junit.jupiter.api.Test; + +public class FolderLocksITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testFolderLocks() { + FolderFull folder = createNewFolder(); + FolderLocks folderLocks = + client.getFolderLocks().getFolderLocks(new GetFolderLocksQueryParams(folder.getId())); + assert folderLocks.getEntries().size() == 0; + FolderLock folderLock = + client + .getFolderLocks() + .createFolderLock( + new CreateFolderLockRequestBody.Builder( + new CreateFolderLockRequestBodyFolderField("folder", folder.getId())) + .lockedOperations( + new CreateFolderLockRequestBodyLockedOperationsField(true, true)) + .build()); + assert folderLock.getFolder().getId().equals(folder.getId()); + assert folderLock.getLockedOperations().getMove() == true; + assert folderLock.getLockedOperations().getDelete() == true; + client.getFolderLocks().deleteFolderLockById(folderLock.getId()); + assertThrows( + RuntimeException.class, + () -> client.getFolderLocks().deleteFolderLockById(folderLock.getId())); + FolderLocks newFolderLocks = + client.getFolderLocks().getFolderLocks(new GetFolderLocksQueryParams(folder.getId())); + assert newFolderLocks.getEntries().size() == 0; + client.getFolders().deleteFolderById(folder.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/foldermetadata/FolderMetadataITest.java b/src/test/java/com/box/sdkgen/test/foldermetadata/FolderMetadataITest.java new file mode 100644 index 000000000..4ba73c728 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/foldermetadata/FolderMetadataITest.java @@ -0,0 +1,275 @@ +package com.box.sdkgen.test.foldermetadata; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.test.commons.CommonsManager.createNewFolder; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.foldermetadata.CreateFolderMetadataByIdScope; +import com.box.sdkgen.managers.foldermetadata.DeleteFolderMetadataByIdScope; +import com.box.sdkgen.managers.foldermetadata.GetFolderMetadataByIdScope; +import com.box.sdkgen.managers.foldermetadata.UpdateFolderMetadataByIdRequestBody; +import com.box.sdkgen.managers.foldermetadata.UpdateFolderMetadataByIdRequestBodyOpField; +import com.box.sdkgen.managers.foldermetadata.UpdateFolderMetadataByIdScope; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBody; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsField; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsOptionsField; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsTypeField; +import com.box.sdkgen.managers.metadatatemplates.DeleteMetadataTemplateScope; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.metadatafull.MetadataFull; +import com.box.sdkgen.schemas.metadatas.Metadatas; +import com.box.sdkgen.schemas.metadatatemplate.MetadataTemplate; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class FolderMetadataITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testUpdatingFolderMetadata() { + FolderFull folder = createNewFolder(); + String templateKey = String.join("", "key", getUuid()); + MetadataTemplate template = + client + .getMetadataTemplates() + .createMetadataTemplate( + new CreateMetadataTemplateRequestBody.Builder("enterprise", templateKey) + .templateKey(templateKey) + .fields( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.STRING, + "name", + "name"), + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.FLOAT, + "age", + "age"), + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.DATE, + "birthDate", + "birthDate"), + new CreateMetadataTemplateRequestBodyFieldsField.Builder( + CreateMetadataTemplateRequestBodyFieldsTypeField.ENUM, + "countryCode", + "countryCode") + .options( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "US"), + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "CA"))) + .build(), + new CreateMetadataTemplateRequestBodyFieldsField.Builder( + CreateMetadataTemplateRequestBodyFieldsTypeField.MULTISELECT, + "sports", + "sports") + .options( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "basketball"), + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "football"), + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "tennis"))) + .build())) + .build()); + MetadataFull createdMetadata = + client + .getFolderMetadata() + .createFolderMetadataById( + folder.getId(), + CreateFolderMetadataByIdScope.ENTERPRISE, + templateKey, + mapOf( + entryOf("name", "John"), + entryOf("age", 23), + entryOf("birthDate", "2001-01-03T02:20:50.520Z"), + entryOf("countryCode", "US"), + entryOf("sports", Arrays.asList("basketball", "tennis")))); + MetadataFull updatedMetadata = + client + .getFolderMetadata() + .updateFolderMetadataById( + folder.getId(), + UpdateFolderMetadataByIdScope.ENTERPRISE, + templateKey, + Arrays.asList( + new UpdateFolderMetadataByIdRequestBody.Builder() + .op(UpdateFolderMetadataByIdRequestBodyOpField.REPLACE) + .path("/name") + .value("Jack") + .build(), + new UpdateFolderMetadataByIdRequestBody.Builder() + .op(UpdateFolderMetadataByIdRequestBodyOpField.REPLACE) + .path("/age") + .value(24L) + .build(), + new UpdateFolderMetadataByIdRequestBody.Builder() + .op(UpdateFolderMetadataByIdRequestBodyOpField.REPLACE) + .path("/birthDate") + .value("2000-01-03T02:20:50.520Z") + .build(), + new UpdateFolderMetadataByIdRequestBody.Builder() + .op(UpdateFolderMetadataByIdRequestBodyOpField.REPLACE) + .path("/countryCode") + .value("CA") + .build(), + new UpdateFolderMetadataByIdRequestBody.Builder() + .op(UpdateFolderMetadataByIdRequestBodyOpField.REPLACE) + .path("/sports") + .value(Arrays.asList("football")) + .build())); + assert convertToString(updatedMetadata.getTemplate()).equals(templateKey); + assert convertToString(updatedMetadata.getExtraData().get("name")).equals("Jack"); + assert convertToString(updatedMetadata.getExtraData().get("age")).equals("24"); + assert convertToString(updatedMetadata.getExtraData().get("birthDate")) + .equals("2000-01-03T02:20:50.520Z"); + assert convertToString(updatedMetadata.getExtraData().get("countryCode")).equals("CA"); + client + .getFolderMetadata() + .deleteFolderMetadataById( + folder.getId(), DeleteFolderMetadataByIdScope.ENTERPRISE, templateKey); + client + .getMetadataTemplates() + .deleteMetadataTemplate(DeleteMetadataTemplateScope.ENTERPRISE, templateKey); + client.getFolders().deleteFolderById(folder.getId()); + } + + @Test + public void testGlobalFolderMetadata() { + FolderFull folder = createNewFolder(); + Metadatas folderMetadata = client.getFolderMetadata().getFolderMetadata(folder.getId()); + assert folderMetadata.getEntries().size() == 0; + MetadataFull createdMetadata = + client + .getFolderMetadata() + .createFolderMetadataById( + folder.getId(), + CreateFolderMetadataByIdScope.GLOBAL, + "properties", + mapOf(entryOf("abc", "xyz"))); + assert convertToString(createdMetadata.getTemplate()).equals("properties"); + assert convertToString(createdMetadata.getScope()).equals("global"); + assert createdMetadata.getVersion() == 0; + MetadataFull receivedMetadata = + client + .getFolderMetadata() + .getFolderMetadataById(folder.getId(), GetFolderMetadataByIdScope.GLOBAL, "properties"); + assert convertToString(receivedMetadata.getExtraData().get("abc")).equals("xyz"); + String newValue = "bar"; + client + .getFolderMetadata() + .updateFolderMetadataById( + folder.getId(), + UpdateFolderMetadataByIdScope.GLOBAL, + "properties", + Arrays.asList( + new UpdateFolderMetadataByIdRequestBody.Builder() + .op(UpdateFolderMetadataByIdRequestBodyOpField.REPLACE) + .path("/abc") + .value(newValue) + .build())); + MetadataFull receivedUpdatedMetadata = + client + .getFolderMetadata() + .getFolderMetadataById(folder.getId(), GetFolderMetadataByIdScope.GLOBAL, "properties"); + assert convertToString(receivedUpdatedMetadata.getExtraData().get("abc")).equals(newValue); + client + .getFolderMetadata() + .deleteFolderMetadataById( + folder.getId(), DeleteFolderMetadataByIdScope.GLOBAL, "properties"); + assertThrows( + RuntimeException.class, + () -> + client + .getFolderMetadata() + .getFolderMetadataById( + folder.getId(), GetFolderMetadataByIdScope.GLOBAL, "properties")); + client.getFolders().deleteFolderById(folder.getId()); + } + + @Test + public void testEnterpriseFolderMetadata() { + FolderFull folder = createNewFolder(); + String templateKey = String.join("", "key", getUuid()); + MetadataTemplate template = + client + .getMetadataTemplates() + .createMetadataTemplate( + new CreateMetadataTemplateRequestBody.Builder("enterprise", templateKey) + .templateKey(templateKey) + .fields( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.STRING, + "name", + "name"), + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.FLOAT, + "age", + "age"), + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.DATE, + "birthDate", + "birthDate"), + new CreateMetadataTemplateRequestBodyFieldsField.Builder( + CreateMetadataTemplateRequestBodyFieldsTypeField.ENUM, + "countryCode", + "countryCode") + .options( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "US"), + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "CA"))) + .build(), + new CreateMetadataTemplateRequestBodyFieldsField.Builder( + CreateMetadataTemplateRequestBodyFieldsTypeField.MULTISELECT, + "sports", + "sports") + .options( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "basketball"), + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "football"), + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "tennis"))) + .build())) + .build()); + MetadataFull createdMetadata = + client + .getFolderMetadata() + .createFolderMetadataById( + folder.getId(), + CreateFolderMetadataByIdScope.ENTERPRISE, + templateKey, + mapOf( + entryOf("name", "John"), + entryOf("age", 23), + entryOf("birthDate", "2001-01-03T02:20:50.520Z"), + entryOf("countryCode", "US"), + entryOf("sports", Arrays.asList("basketball", "tennis")))); + assert convertToString(createdMetadata.getTemplate()).equals(templateKey); + assert convertToString(createdMetadata.getExtraData().get("name")).equals("John"); + assert convertToString(createdMetadata.getExtraData().get("age")).equals("23"); + assert convertToString(createdMetadata.getExtraData().get("birthDate")) + .equals("2001-01-03T02:20:50.520Z"); + assert convertToString(createdMetadata.getExtraData().get("countryCode")).equals("US"); + client + .getFolderMetadata() + .deleteFolderMetadataById( + folder.getId(), DeleteFolderMetadataByIdScope.ENTERPRISE, templateKey); + client + .getMetadataTemplates() + .deleteMetadataTemplate(DeleteMetadataTemplateScope.ENTERPRISE, templateKey); + client.getFolders().deleteFolderById(folder.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/folders/FoldersITest.java b/src/test/java/com/box/sdkgen/test/folders/FoldersITest.java new file mode 100644 index 000000000..2032c1e27 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/folders/FoldersITest.java @@ -0,0 +1,128 @@ +package com.box.sdkgen.test.folders; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.folders.CopyFolderRequestBody; +import com.box.sdkgen.managers.folders.CopyFolderRequestBodyParentField; +import com.box.sdkgen.managers.folders.CreateFolderRequestBody; +import com.box.sdkgen.managers.folders.CreateFolderRequestBodyParentField; +import com.box.sdkgen.managers.folders.GetFolderByIdQueryParams; +import com.box.sdkgen.managers.folders.UpdateFolderByIdRequestBody; +import com.box.sdkgen.managers.folders.UpdateFolderByIdRequestBodyParentField; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.items.Items; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class FoldersITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testGetFolderInfo() { + FolderFull rootFolder = client.getFolders().getFolderById("0"); + assert rootFolder.getId().equals("0"); + assert rootFolder.getName().equals("All Files"); + assert convertToString(rootFolder.getType()).equals("folder"); + } + + @Test + public void testGetFolderFullInfoWithExtraFields() { + FolderFull rootFolder = + client + .getFolders() + .getFolderById( + "0", + new GetFolderByIdQueryParams.Builder() + .fields(Arrays.asList("has_collaborations", "tags")) + .build()); + assert rootFolder.getId().equals("0"); + assert rootFolder.getHasCollaborations() == false; + int tagsLength = rootFolder.getTags().size(); + assert tagsLength == 0; + } + + @Test + public void testCreateAndDeleteFolder() { + String newFolderName = getUuid(); + FolderFull newFolder = + client + .getFolders() + .createFolder( + new CreateFolderRequestBody( + newFolderName, new CreateFolderRequestBodyParentField("0"))); + FolderFull createdFolder = client.getFolders().getFolderById(newFolder.getId()); + assert createdFolder.getName().equals(newFolderName); + client.getFolders().deleteFolderById(newFolder.getId()); + assertThrows( + RuntimeException.class, () -> client.getFolders().getFolderById(newFolder.getId())); + } + + @Test + public void testUpdateFolder() { + String folderToUpdateName = getUuid(); + FolderFull folderToUpdate = + client + .getFolders() + .createFolder( + new CreateFolderRequestBody( + folderToUpdateName, new CreateFolderRequestBodyParentField("0"))); + String updatedName = getUuid(); + FolderFull updatedFolder = + client + .getFolders() + .updateFolderById( + folderToUpdate.getId(), + new UpdateFolderByIdRequestBody.Builder() + .name(updatedName) + .description("Updated description") + .build()); + assert updatedFolder.getName().equals(updatedName); + assert updatedFolder.getDescription().equals("Updated description"); + client.getFolders().deleteFolderById(updatedFolder.getId()); + } + + @Test + public void testCopyMoveFolderAndListFolderItems() { + String folderOriginName = getUuid(); + FolderFull folderOrigin = + client + .getFolders() + .createFolder( + new CreateFolderRequestBody( + folderOriginName, new CreateFolderRequestBodyParentField("0"))); + String copiedFolderName = getUuid(); + FolderFull copiedFolder = + client + .getFolders() + .copyFolder( + folderOrigin.getId(), + new CopyFolderRequestBody.Builder(new CopyFolderRequestBodyParentField("0")) + .name(copiedFolderName) + .build()); + assert copiedFolder.getParent().getId().equals("0"); + String movedFolderName = getUuid(); + FolderFull movedFolder = + client + .getFolders() + .updateFolderById( + copiedFolder.getId(), + new UpdateFolderByIdRequestBody.Builder() + .name(movedFolderName) + .parent( + new UpdateFolderByIdRequestBodyParentField.Builder() + .id(folderOrigin.getId()) + .build()) + .build()); + assert movedFolder.getParent().getId().equals(folderOrigin.getId()); + Items folderItems = client.getFolders().getFolderItems(folderOrigin.getId()); + assert folderItems.getEntries().get(0).getId().equals(movedFolder.getId()); + assert folderItems.getEntries().get(0).getName().equals(movedFolderName); + client.getFolders().deleteFolderById(movedFolder.getId()); + client.getFolders().deleteFolderById(folderOrigin.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/folderwatermarks/FolderWatermarksITest.java b/src/test/java/com/box/sdkgen/test/folderwatermarks/FolderWatermarksITest.java new file mode 100644 index 000000000..b1b4e5e9e --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/folderwatermarks/FolderWatermarksITest.java @@ -0,0 +1,46 @@ +package com.box.sdkgen.test.folderwatermarks; + +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.folders.CreateFolderRequestBody; +import com.box.sdkgen.managers.folders.CreateFolderRequestBodyParentField; +import com.box.sdkgen.managers.folderwatermarks.UpdateFolderWatermarkRequestBody; +import com.box.sdkgen.managers.folderwatermarks.UpdateFolderWatermarkRequestBodyWatermarkField; +import com.box.sdkgen.managers.folderwatermarks.UpdateFolderWatermarkRequestBodyWatermarkImprintField; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.watermark.Watermark; +import org.junit.jupiter.api.Test; + +public class FolderWatermarksITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testCreateGetDeleteFolderWatermark() { + String folderName = getUuid(); + FolderFull folder = + client + .getFolders() + .createFolder( + new CreateFolderRequestBody( + folderName, new CreateFolderRequestBodyParentField("0"))); + Watermark createdWatermark = + client + .getFolderWatermarks() + .updateFolderWatermark( + folder.getId(), + new UpdateFolderWatermarkRequestBody( + new UpdateFolderWatermarkRequestBodyWatermarkField.Builder() + .imprint(UpdateFolderWatermarkRequestBodyWatermarkImprintField.DEFAULT) + .build())); + Watermark watermark = client.getFolderWatermarks().getFolderWatermark(folder.getId()); + client.getFolderWatermarks().deleteFolderWatermark(folder.getId()); + assertThrows( + RuntimeException.class, + () -> client.getFolderWatermarks().getFolderWatermark(folder.getId())); + client.getFolders().deleteFolderById(folder.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/groups/GroupsITest.java b/src/test/java/com/box/sdkgen/test/groups/GroupsITest.java new file mode 100644 index 000000000..9e5147d03 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/groups/GroupsITest.java @@ -0,0 +1,59 @@ +package com.box.sdkgen.test.groups; + +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.groups.CreateGroupRequestBody; +import com.box.sdkgen.managers.groups.GetGroupByIdQueryParams; +import com.box.sdkgen.managers.groups.UpdateGroupByIdRequestBody; +import com.box.sdkgen.schemas.groupfull.GroupFull; +import com.box.sdkgen.schemas.groups.Groups; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class GroupsITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testGetGroups() { + Groups groups = client.getGroups().getGroups(); + assert groups.getTotalCount() >= 0; + } + + @Test + public void testCreateGetDeleteGroup() { + String groupName = getUuid(); + String groupDescription = "Group description"; + GroupFull group = + client + .getGroups() + .createGroup( + new CreateGroupRequestBody.Builder(groupName) + .description(groupDescription) + .build()); + assert group.getName().equals(groupName); + GroupFull groupById = + client + .getGroups() + .getGroupById( + group.getId(), + new GetGroupByIdQueryParams.Builder() + .fields(Arrays.asList("id", "name", "description", "group_type")) + .build()); + assert groupById.getId().equals(group.getId()); + assert groupById.getDescription().equals(groupDescription); + String updatedGroupName = getUuid(); + GroupFull updatedGroup = + client + .getGroups() + .updateGroupById( + group.getId(), + new UpdateGroupByIdRequestBody.Builder().name(updatedGroupName).build()); + assert updatedGroup.getName().equals(updatedGroupName); + client.getGroups().deleteGroupById(group.getId()); + assertThrows(RuntimeException.class, () -> client.getGroups().getGroupById(group.getId())); + } +} diff --git a/src/test/java/com/box/sdkgen/test/hubcollaborations/HubCollaborationsITest.java b/src/test/java/com/box/sdkgen/test/hubcollaborations/HubCollaborationsITest.java new file mode 100644 index 000000000..62d27e6b5 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/hubcollaborations/HubCollaborationsITest.java @@ -0,0 +1,94 @@ +package com.box.sdkgen.test.hubcollaborations; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.hubcollaborations.GetHubCollaborationsV2025R0QueryParams; +import com.box.sdkgen.managers.hubs.GetHubsV2025R0QueryParams; +import com.box.sdkgen.managers.hubs.GetHubsV2025R0QueryParamsDirectionField; +import com.box.sdkgen.managers.users.CreateUserRequestBody; +import com.box.sdkgen.schemas.userfull.UserFull; +import com.box.sdkgen.schemas.v2025r0.hubcollaborationcreaterequestv2025r0.HubCollaborationCreateRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubcollaborationcreaterequestv2025r0.HubCollaborationCreateRequestV2025R0AccessibleByField; +import com.box.sdkgen.schemas.v2025r0.hubcollaborationcreaterequestv2025r0.HubCollaborationCreateRequestV2025R0HubField; +import com.box.sdkgen.schemas.v2025r0.hubcollaborationsv2025r0.HubCollaborationsV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubcollaborationupdaterequestv2025r0.HubCollaborationUpdateRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubcollaborationv2025r0.HubCollaborationV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubsv2025r0.HubsV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubv2025r0.HubV2025R0; +import org.junit.jupiter.api.Test; + +public class HubCollaborationsITest { + + private static final BoxClient client = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); + + @Test + public void testCrudHubCollaboration() { + HubsV2025R0 hubs = + client + .getHubs() + .getHubsV2025R0( + new GetHubsV2025R0QueryParams.Builder() + .scope("all") + .sort("name") + .direction(GetHubsV2025R0QueryParamsDirectionField.ASC) + .build()); + HubV2025R0 hub = hubs.getEntries().get(0); + String userName = getUuid(); + String userLogin = String.join("", getUuid(), "@gmail.com"); + UserFull user = + client + .getUsers() + .createUser( + new CreateUserRequestBody.Builder(userName) + .login(userLogin) + .isPlatformAccessOnly(true) + .build()); + HubCollaborationV2025R0 createdCollaboration = + client + .getHubCollaborations() + .createHubCollaborationV2025R0( + new HubCollaborationCreateRequestV2025R0( + new HubCollaborationCreateRequestV2025R0HubField(hub.getId()), + new HubCollaborationCreateRequestV2025R0AccessibleByField.Builder("user") + .id(user.getId()) + .build(), + "viewer")); + assert !(createdCollaboration.getId().equals("")); + assert convertToString(createdCollaboration.getType()).equals("hub_collaboration"); + assert createdCollaboration.getHub().getId().equals(hub.getId()); + assert convertToString(createdCollaboration.getAccessibleBy().getType()).equals("user"); + assert createdCollaboration.getAccessibleBy().getId().equals(user.getId()); + assert createdCollaboration.getRole().equals("viewer"); + HubCollaborationV2025R0 updatedCollaboration = + client + .getHubCollaborations() + .updateHubCollaborationByIdV2025R0( + createdCollaboration.getId(), + new HubCollaborationUpdateRequestV2025R0.Builder().role("editor").build()); + assert !(updatedCollaboration.getId().equals("")); + assert convertToString(updatedCollaboration.getType()).equals("hub_collaboration"); + assert updatedCollaboration.getHub().getId().equals(hub.getId()); + assert convertToString(updatedCollaboration.getAccessibleBy().getType()).equals("user"); + assert updatedCollaboration.getAccessibleBy().getId().equals(user.getId()); + assert updatedCollaboration.getRole().equals("editor"); + HubCollaborationsV2025R0 collaborations = + client + .getHubCollaborations() + .getHubCollaborationsV2025R0(new GetHubCollaborationsV2025R0QueryParams(hub.getId())); + assert collaborations.getEntries().size() >= 1; + HubCollaborationV2025R0 retrievedCollaboration = + client.getHubCollaborations().getHubCollaborationByIdV2025R0(createdCollaboration.getId()); + assert retrievedCollaboration.getId().equals(createdCollaboration.getId()); + assert convertToString(retrievedCollaboration.getType()).equals("hub_collaboration"); + assert retrievedCollaboration.getHub().getId().equals(hub.getId()); + assert convertToString(retrievedCollaboration.getAccessibleBy().getType()).equals("user"); + assert retrievedCollaboration.getAccessibleBy().getId().equals(user.getId()); + assert retrievedCollaboration.getRole().equals("editor"); + client.getHubCollaborations().deleteHubCollaborationByIdV2025R0(createdCollaboration.getId()); + client.getUsers().deleteUserById(user.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/hubitems/HubItemsITest.java b/src/test/java/com/box/sdkgen/test/hubitems/HubItemsITest.java new file mode 100644 index 000000000..b31325d68 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/hubitems/HubItemsITest.java @@ -0,0 +1,92 @@ +package com.box.sdkgen.test.hubitems; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.folders.CreateFolderRequestBody; +import com.box.sdkgen.managers.folders.CreateFolderRequestBodyParentField; +import com.box.sdkgen.managers.hubitems.GetHubItemsV2025R0QueryParams; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.v2025r0.folderreferencev2025r0.FolderReferenceV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubcreaterequestv2025r0.HubCreateRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubitemoperationresultv2025r0.HubItemOperationResultV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubitemoperationv2025r0.HubItemOperationV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubitemoperationv2025r0.HubItemOperationV2025R0ActionField; +import com.box.sdkgen.schemas.v2025r0.hubitemsmanagerequestv2025r0.HubItemsManageRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubitemsmanageresponsev2025r0.HubItemsManageResponseV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubitemsv2025r0.HubItemsV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubv2025r0.HubV2025R0; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class HubItemsITest { + + private static final BoxClient client = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); + + @Test + public void testCreateDeleteGetHubItems() { + String hubTitle = getUuid(); + FolderFull folder = + client + .getFolders() + .createFolder( + new CreateFolderRequestBody( + getUuid(), new CreateFolderRequestBodyParentField("0"))); + HubV2025R0 createdHub = + client.getHubs().createHubV2025R0(new HubCreateRequestV2025R0(hubTitle)); + HubItemsV2025R0 hubItemsBeforeAdd = + client + .getHubItems() + .getHubItemsV2025R0(new GetHubItemsV2025R0QueryParams(createdHub.getId())); + assert hubItemsBeforeAdd.getEntries().size() == 0; + HubItemsManageResponseV2025R0 addedHubItems = + client + .getHubItems() + .manageHubItemsV2025R0( + createdHub.getId(), + new HubItemsManageRequestV2025R0.Builder() + .operations( + Arrays.asList( + new HubItemOperationV2025R0( + HubItemOperationV2025R0ActionField.ADD, + new FolderReferenceV2025R0(folder.getId())))) + .build()); + HubItemOperationResultV2025R0 addedHubItem = addedHubItems.getOperations().get(0); + assert convertToString(addedHubItem.getAction()).equals("add"); + assert addedHubItem.getStatus() == 200; + assert addedHubItem.getItem().getId().equals(folder.getId()); + assert addedHubItem.getItem().getType().equals("folder"); + HubItemsV2025R0 hubItemsAfterAdd = + client + .getHubItems() + .getHubItemsV2025R0(new GetHubItemsV2025R0QueryParams(createdHub.getId())); + assert hubItemsAfterAdd.getEntries().size() == 1; + HubItemsManageResponseV2025R0 removedHubItems = + client + .getHubItems() + .manageHubItemsV2025R0( + createdHub.getId(), + new HubItemsManageRequestV2025R0.Builder() + .operations( + Arrays.asList( + new HubItemOperationV2025R0( + HubItemOperationV2025R0ActionField.REMOVE, + new FolderReferenceV2025R0(folder.getId())))) + .build()); + HubItemOperationResultV2025R0 removedHubItem = removedHubItems.getOperations().get(0); + assert convertToString(removedHubItem.getAction()).equals("remove"); + assert removedHubItem.getStatus() == 200; + assert removedHubItem.getItem().getId().equals(folder.getId()); + assert removedHubItem.getItem().getType().equals("folder"); + HubItemsV2025R0 hubItemsAfterRemove = + client + .getHubItems() + .getHubItemsV2025R0(new GetHubItemsV2025R0QueryParams(createdHub.getId())); + assert hubItemsAfterRemove.getEntries().size() == 0; + client.getHubs().deleteHubByIdV2025R0(createdHub.getId()); + client.getFolders().deleteFolderById(folder.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/hubs/HubsITest.java b/src/test/java/com/box/sdkgen/test/hubs/HubsITest.java new file mode 100644 index 000000000..64cd02d4e --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/hubs/HubsITest.java @@ -0,0 +1,105 @@ +package com.box.sdkgen.test.hubs; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.hubs.GetEnterpriseHubsV2025R0QueryParams; +import com.box.sdkgen.managers.hubs.GetEnterpriseHubsV2025R0QueryParamsDirectionField; +import com.box.sdkgen.managers.hubs.GetHubsV2025R0QueryParams; +import com.box.sdkgen.managers.hubs.GetHubsV2025R0QueryParamsDirectionField; +import com.box.sdkgen.schemas.v2025r0.hubcopyrequestv2025r0.HubCopyRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubcreaterequestv2025r0.HubCreateRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubsv2025r0.HubsV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubupdaterequestv2025r0.HubUpdateRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubv2025r0.HubV2025R0; +import org.junit.jupiter.api.Test; + +public class HubsITest { + + private static final BoxClient client = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); + + @Test + public void testCreateUpdateGetAndDeleteHubs() { + String hubTitle = getUuid(); + String hubDescription = "new Hub description"; + HubV2025R0 createdHub = + client + .getHubs() + .createHubV2025R0( + new HubCreateRequestV2025R0.Builder(hubTitle).description(hubDescription).build()); + assert createdHub.getTitle().equals(hubTitle); + assert createdHub.getDescription().equals(hubDescription); + assert convertToString(createdHub.getType()).equals("hubs"); + String hubId = createdHub.getId(); + HubsV2025R0 usersHubs = + client + .getHubs() + .getHubsV2025R0( + new GetHubsV2025R0QueryParams.Builder() + .scope("all") + .sort("name") + .direction(GetHubsV2025R0QueryParamsDirectionField.ASC) + .build()); + assert usersHubs.getEntries().size() > 0; + HubsV2025R0 enterpriseHubs = + client + .getHubs() + .getEnterpriseHubsV2025R0( + new GetEnterpriseHubsV2025R0QueryParams.Builder() + .sort("name") + .direction(GetEnterpriseHubsV2025R0QueryParamsDirectionField.ASC) + .build()); + assert enterpriseHubs.getEntries().size() > 0; + HubV2025R0 hubById = client.getHubs().getHubByIdV2025R0(hubId); + assert hubById.getId().equals(hubId); + assert hubById.getTitle().equals(hubTitle); + assert hubById.getDescription().equals(hubDescription); + assert convertToString(hubById.getType()).equals("hubs"); + String newHubTitle = getUuid(); + String newHubDescription = "updated Hub description"; + HubV2025R0 updatedHub = + client + .getHubs() + .updateHubByIdV2025R0( + hubId, + new HubUpdateRequestV2025R0.Builder() + .title(newHubTitle) + .description(newHubDescription) + .build()); + assert updatedHub.getTitle().equals(newHubTitle); + assert updatedHub.getDescription().equals(newHubDescription); + client.getHubs().deleteHubByIdV2025R0(hubId); + assertThrows(RuntimeException.class, () -> client.getHubs().deleteHubByIdV2025R0(hubId)); + } + + @Test + public void copyHub() { + String hubTitle = getUuid(); + String hubDescription = "new Hub description"; + HubV2025R0 createdHub = + client + .getHubs() + .createHubV2025R0( + new HubCreateRequestV2025R0.Builder(hubTitle).description(hubDescription).build()); + String copiedHubTitle = getUuid(); + String copiedHubDescription = "copied Hub description"; + HubV2025R0 copiedHub = + client + .getHubs() + .copyHubV2025R0( + createdHub.getId(), + new HubCopyRequestV2025R0.Builder() + .title(copiedHubTitle) + .description(copiedHubDescription) + .build()); + assert !(copiedHub.getId().equals(createdHub.getId())); + assert copiedHub.getTitle().equals(copiedHubTitle); + assert copiedHub.getDescription().equals(copiedHubDescription); + client.getHubs().deleteHubByIdV2025R0(createdHub.getId()); + client.getHubs().deleteHubByIdV2025R0(copiedHub.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/integrationmappings/IntegrationMappingsITest.java b/src/test/java/com/box/sdkgen/test/integrationmappings/IntegrationMappingsITest.java new file mode 100644 index 000000000..3616c2fd1 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/integrationmappings/IntegrationMappingsITest.java @@ -0,0 +1,151 @@ +package com.box.sdkgen.test.integrationmappings; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.folders.CreateFolderRequestBody; +import com.box.sdkgen.managers.folders.CreateFolderRequestBodyParentField; +import com.box.sdkgen.managers.integrationmappings.UpdateSlackIntegrationMappingByIdRequestBody; +import com.box.sdkgen.managers.integrationmappings.UpdateTeamsIntegrationMappingByIdRequestBody; +import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBody; +import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBodyAccessibleByField; +import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBodyAccessibleByTypeField; +import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBodyItemField; +import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBodyItemTypeField; +import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBodyRoleField; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.folderreference.FolderReference; +import com.box.sdkgen.schemas.integrationmapping.IntegrationMapping; +import com.box.sdkgen.schemas.integrationmappingboxitemslack.IntegrationMappingBoxItemSlack; +import com.box.sdkgen.schemas.integrationmappingpartneritemslack.IntegrationMappingPartnerItemSlack; +import com.box.sdkgen.schemas.integrationmappingpartneritemteamscreaterequest.IntegrationMappingPartnerItemTeamsCreateRequest; +import com.box.sdkgen.schemas.integrationmappingpartneritemteamscreaterequest.IntegrationMappingPartnerItemTeamsCreateRequestTypeField; +import com.box.sdkgen.schemas.integrationmappings.IntegrationMappings; +import com.box.sdkgen.schemas.integrationmappingslackcreaterequest.IntegrationMappingSlackCreateRequest; +import com.box.sdkgen.schemas.integrationmappingteamscreaterequest.IntegrationMappingTeamsCreateRequest; +import org.junit.jupiter.api.Test; + +public class IntegrationMappingsITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testSlackIntegrationMappings() { + String userId = getEnvVar("USER_ID"); + String slackAutomationUserId = getEnvVar("SLACK_AUTOMATION_USER_ID"); + String slackOrgId = getEnvVar("SLACK_ORG_ID"); + String slackPartnerItemId = getEnvVar("SLACK_PARTNER_ITEM_ID"); + BoxClient userClient = getDefaultClientWithUserSubject(userId); + FolderFull folder = + userClient + .getFolders() + .createFolder( + new CreateFolderRequestBody( + getUuid(), new CreateFolderRequestBodyParentField("0"))); + userClient + .getUserCollaborations() + .createCollaboration( + new CreateCollaborationRequestBody( + new CreateCollaborationRequestBodyItemField.Builder() + .type(CreateCollaborationRequestBodyItemTypeField.FOLDER) + .id(folder.getId()) + .build(), + new CreateCollaborationRequestBodyAccessibleByField.Builder( + CreateCollaborationRequestBodyAccessibleByTypeField.USER) + .id(slackAutomationUserId) + .build(), + CreateCollaborationRequestBodyRoleField.CO_OWNER)); + IntegrationMappings slackIntegrations = + userClient.getIntegrationMappings().getSlackIntegrationMapping(); + if (slackIntegrations.getEntries().size() == 0) { + userClient + .getIntegrationMappings() + .createSlackIntegrationMapping( + new IntegrationMappingSlackCreateRequest( + new IntegrationMappingPartnerItemSlack.Builder(slackPartnerItemId) + .slackOrgId(slackOrgId) + .build(), + new IntegrationMappingBoxItemSlack(folder.getId()))); + } + IntegrationMappings slackMappings = + userClient.getIntegrationMappings().getSlackIntegrationMapping(); + assert slackMappings.getEntries().size() >= 1; + IntegrationMapping slackIntegrationMapping = slackMappings.getEntries().get(0); + assert convertToString(slackIntegrationMapping.getIntegrationType()).equals("slack"); + assert convertToString(slackIntegrationMapping.getType()).equals("integration_mapping"); + assert convertToString(slackIntegrationMapping.getBoxItem().getType()).equals("folder"); + assert slackIntegrationMapping.getPartnerItem().getId().equals(slackPartnerItemId); + assert slackIntegrationMapping.getPartnerItem().getSlackWorkspaceId().equals(slackOrgId); + assert convertToString(slackIntegrationMapping.getPartnerItem().getType()).equals("channel"); + IntegrationMapping updatedSlackMapping = + userClient + .getIntegrationMappings() + .updateSlackIntegrationMappingById( + slackIntegrationMapping.getId(), + new UpdateSlackIntegrationMappingByIdRequestBody.Builder() + .boxItem(new IntegrationMappingBoxItemSlack(folder.getId())) + .build()); + assert convertToString(updatedSlackMapping.getBoxItem().getType()).equals("folder"); + assert updatedSlackMapping.getBoxItem().getId().equals(folder.getId()); + if (slackMappings.getEntries().size() > 2) { + userClient + .getIntegrationMappings() + .deleteSlackIntegrationMappingById(slackIntegrationMapping.getId()); + } + userClient.getFolders().deleteFolderById(folder.getId()); + } + + @Test + public void testTeamsIntegrationMappings() { + FolderFull folder = + client + .getFolders() + .createFolder( + new CreateFolderRequestBody( + getUuid(), new CreateFolderRequestBodyParentField("0"))); + String tenantId = "1"; + String teamId = "2"; + String partnerItemId = "3"; + String userId = getEnvVar("USER_ID"); + BoxClient userClient = getDefaultClientWithUserSubject(userId); + assertThrows( + RuntimeException.class, + () -> + userClient + .getIntegrationMappings() + .createTeamsIntegrationMapping( + new IntegrationMappingTeamsCreateRequest( + new IntegrationMappingPartnerItemTeamsCreateRequest( + IntegrationMappingPartnerItemTeamsCreateRequestTypeField.CHANNEL, + partnerItemId, + tenantId, + teamId), + new FolderReference(folder.getId())))); + assertThrows( + RuntimeException.class, + () -> userClient.getIntegrationMappings().getTeamsIntegrationMapping()); + String integrationMappingId = "123456"; + assertThrows( + RuntimeException.class, + () -> + userClient + .getIntegrationMappings() + .updateTeamsIntegrationMappingById( + integrationMappingId, + new UpdateTeamsIntegrationMappingByIdRequestBody.Builder() + .boxItem(new FolderReference("1234567")) + .build())); + assertThrows( + RuntimeException.class, + () -> + userClient + .getIntegrationMappings() + .deleteTeamsIntegrationMappingById(integrationMappingId)); + client.getFolders().deleteFolderById(folder.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/invites/InvitesITest.java b/src/test/java/com/box/sdkgen/test/invites/InvitesITest.java new file mode 100644 index 000000000..3859fe641 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/invites/InvitesITest.java @@ -0,0 +1,42 @@ +package com.box.sdkgen.test.invites; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.invites.CreateInviteRequestBody; +import com.box.sdkgen.managers.invites.CreateInviteRequestBodyActionableByField; +import com.box.sdkgen.managers.invites.CreateInviteRequestBodyEnterpriseField; +import com.box.sdkgen.managers.users.GetUserMeQueryParams; +import com.box.sdkgen.schemas.invite.Invite; +import com.box.sdkgen.schemas.userfull.UserFull; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class InvitesITest { + + @Test + public void testInvites() { + String userId = getEnvVar("USER_ID"); + BoxClient client = getDefaultClientWithUserSubject(userId); + UserFull currentUser = + client + .getUsers() + .getUserMe( + new GetUserMeQueryParams.Builder().fields(Arrays.asList("enterprise")).build()); + String email = getEnvVar("BOX_EXTERNAL_USER_EMAIL"); + Invite invitation = + client + .getInvites() + .createInvite( + new CreateInviteRequestBody( + new CreateInviteRequestBodyEnterpriseField(currentUser.getEnterprise().getId()), + new CreateInviteRequestBodyActionableByField.Builder().login(email).build())); + assert convertToString(invitation.getType()).equals("invite"); + assert invitation.getInvitedTo().getId().equals(currentUser.getEnterprise().getId()); + assert invitation.getActionableBy().getLogin().equals(email); + Invite getInvitation = client.getInvites().getInviteById(invitation.getId()); + assert getInvitation.getId().equals(invitation.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/legalholdpolicies/LegalHoldPoliciesITest.java b/src/test/java/com/box/sdkgen/test/legalholdpolicies/LegalHoldPoliciesITest.java new file mode 100644 index 000000000..917f45de8 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/legalholdpolicies/LegalHoldPoliciesITest.java @@ -0,0 +1,77 @@ +package com.box.sdkgen.test.legalholdpolicies; + +import static com.box.sdkgen.internal.utils.UtilsManager.dateTimeFromString; +import static com.box.sdkgen.internal.utils.UtilsManager.dateTimeToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.legalholdpolicies.CreateLegalHoldPolicyRequestBody; +import com.box.sdkgen.managers.legalholdpolicies.UpdateLegalHoldPolicyByIdRequestBody; +import com.box.sdkgen.schemas.legalholdpolicies.LegalHoldPolicies; +import com.box.sdkgen.schemas.legalholdpolicy.LegalHoldPolicy; +import java.util.Date; +import org.junit.jupiter.api.Test; + +public class LegalHoldPoliciesITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testCreateNotOngoingLegalHoldPolicy() { + String legalHoldPolicyName = getUuid(); + String legalHoldDescription = "test description"; + Date filterStartedAt = dateTimeFromString("2021-01-01T00:00:00-08:00"); + Date filterEndedAt = dateTimeFromString("2022-01-01T00:00:00-08:00"); + LegalHoldPolicy legalHoldPolicy = + client + .getLegalHoldPolicies() + .createLegalHoldPolicy( + new CreateLegalHoldPolicyRequestBody.Builder(legalHoldPolicyName) + .description(legalHoldDescription) + .filterStartedAt(filterStartedAt) + .filterEndedAt(filterEndedAt) + .isOngoing(false) + .build()); + assert legalHoldPolicy.getPolicyName().equals(legalHoldPolicyName); + assert legalHoldPolicy.getDescription().equals(legalHoldDescription); + assert dateTimeToString(legalHoldPolicy.getFilterStartedAt()) + .equals(dateTimeToString(filterStartedAt)); + assert dateTimeToString(legalHoldPolicy.getFilterEndedAt()) + .equals(dateTimeToString(filterEndedAt)); + client.getLegalHoldPolicies().deleteLegalHoldPolicyById(legalHoldPolicy.getId()); + } + + @Test + public void testCreateUpdateGetDeleteLegalHoldPolicy() { + String legalHoldPolicyName = getUuid(); + String legalHoldDescription = "test description"; + LegalHoldPolicy legalHoldPolicy = + client + .getLegalHoldPolicies() + .createLegalHoldPolicy( + new CreateLegalHoldPolicyRequestBody.Builder(legalHoldPolicyName) + .description(legalHoldDescription) + .isOngoing(true) + .build()); + assert legalHoldPolicy.getPolicyName().equals(legalHoldPolicyName); + assert legalHoldPolicy.getDescription().equals(legalHoldDescription); + String legalHoldPolicyId = legalHoldPolicy.getId(); + LegalHoldPolicy legalHoldPolicyById = + client.getLegalHoldPolicies().getLegalHoldPolicyById(legalHoldPolicyId); + assert legalHoldPolicyById.getId().equals(legalHoldPolicyId); + LegalHoldPolicies legalHoldPolicies = client.getLegalHoldPolicies().getLegalHoldPolicies(); + assert legalHoldPolicies.getEntries().size() > 0; + String updatedLegalHoldPolicyName = getUuid(); + LegalHoldPolicy updatedLegalHoldPolicy = + client + .getLegalHoldPolicies() + .updateLegalHoldPolicyById( + legalHoldPolicyId, + new UpdateLegalHoldPolicyByIdRequestBody.Builder() + .policyName(updatedLegalHoldPolicyName) + .build()); + assert updatedLegalHoldPolicy.getPolicyName().equals(updatedLegalHoldPolicyName); + client.getLegalHoldPolicies().deleteLegalHoldPolicyById(legalHoldPolicyId); + } +} diff --git a/src/test/java/com/box/sdkgen/test/legalholdpolicyassignments/LegalHoldPolicyAssignmentsITest.java b/src/test/java/com/box/sdkgen/test/legalholdpolicyassignments/LegalHoldPolicyAssignmentsITest.java new file mode 100644 index 000000000..cfe84439e --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/legalholdpolicyassignments/LegalHoldPolicyAssignmentsITest.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.test.legalholdpolicyassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.legalholdpolicies.CreateLegalHoldPolicyRequestBody; +import com.box.sdkgen.managers.legalholdpolicyassignments.CreateLegalHoldPolicyAssignmentRequestBody; +import com.box.sdkgen.managers.legalholdpolicyassignments.CreateLegalHoldPolicyAssignmentRequestBodyAssignToField; +import com.box.sdkgen.managers.legalholdpolicyassignments.CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeField; +import com.box.sdkgen.managers.legalholdpolicyassignments.GetLegalHoldPolicyAssignmentsQueryParams; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.filesonhold.FilesOnHold; +import com.box.sdkgen.schemas.legalholdpolicy.LegalHoldPolicy; +import com.box.sdkgen.schemas.legalholdpolicyassignment.LegalHoldPolicyAssignment; +import com.box.sdkgen.schemas.legalholdpolicyassignments.LegalHoldPolicyAssignments; +import org.junit.jupiter.api.Test; + +public class LegalHoldPolicyAssignmentsITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testLegalHoldPolicyAssignments() { + String legalHoldPolicyName = getUuid(); + String legalHoldDescription = "test description"; + LegalHoldPolicy legalHoldPolicy = + client + .getLegalHoldPolicies() + .createLegalHoldPolicy( + new CreateLegalHoldPolicyRequestBody.Builder(legalHoldPolicyName) + .description(legalHoldDescription) + .isOngoing(true) + .build()); + String legalHoldPolicyId = legalHoldPolicy.getId(); + FileFull file = uploadNewFile(); + String fileId = file.getId(); + LegalHoldPolicyAssignment legalHoldPolicyAssignment = + client + .getLegalHoldPolicyAssignments() + .createLegalHoldPolicyAssignment( + new CreateLegalHoldPolicyAssignmentRequestBody( + legalHoldPolicyId, + new CreateLegalHoldPolicyAssignmentRequestBodyAssignToField( + CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeField.FILE, fileId))); + assert convertToString(legalHoldPolicyAssignment.getLegalHoldPolicy().getType()) + .equals("legal_hold_policy"); + String legalHoldPolicyAssignmentId = legalHoldPolicyAssignment.getId(); + LegalHoldPolicyAssignment legalHoldPolicyAssignmentFromApi = + client + .getLegalHoldPolicyAssignments() + .getLegalHoldPolicyAssignmentById(legalHoldPolicyAssignmentId); + assert legalHoldPolicyAssignmentFromApi.getId().equals(legalHoldPolicyAssignmentId); + LegalHoldPolicyAssignments legalPolicyAssignments = + client + .getLegalHoldPolicyAssignments() + .getLegalHoldPolicyAssignments( + new GetLegalHoldPolicyAssignmentsQueryParams(legalHoldPolicyId)); + assert legalPolicyAssignments.getEntries().size() == 1; + FilesOnHold filesOnHold = + client + .getLegalHoldPolicyAssignments() + .getLegalHoldPolicyAssignmentFileOnHold(legalHoldPolicyAssignmentId); + assert filesOnHold.getEntries().size() == 1; + assert filesOnHold.getEntries().get(0).getId().equals(fileId); + client + .getLegalHoldPolicyAssignments() + .deleteLegalHoldPolicyAssignmentById(legalHoldPolicyAssignmentId); + assertThrows( + RuntimeException.class, + () -> + client + .getLegalHoldPolicyAssignments() + .deleteLegalHoldPolicyAssignmentById(legalHoldPolicyAssignmentId)); + client.getFiles().deleteFileById(fileId); + try { + client.getLegalHoldPolicies().deleteLegalHoldPolicyById(legalHoldPolicyId); + } catch (Exception exception) { + System.out.print( + String.join("", "Could not delete Legal Policy with id: ", legalHoldPolicyId)); + } + } +} diff --git a/src/test/java/com/box/sdkgen/test/listcollaborations/ListCollaborationsITest.java b/src/test/java/com/box/sdkgen/test/listcollaborations/ListCollaborationsITest.java new file mode 100644 index 000000000..b18898f8e --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/listcollaborations/ListCollaborationsITest.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.test.listcollaborations; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.createNewFolder; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.groups.CreateGroupRequestBody; +import com.box.sdkgen.managers.listcollaborations.GetCollaborationsQueryParams; +import com.box.sdkgen.managers.listcollaborations.GetCollaborationsQueryParamsStatusField; +import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBody; +import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBodyAccessibleByField; +import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBodyAccessibleByTypeField; +import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBodyItemField; +import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBodyItemTypeField; +import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBodyRoleField; +import com.box.sdkgen.schemas.collaboration.Collaboration; +import com.box.sdkgen.schemas.collaborations.Collaborations; +import com.box.sdkgen.schemas.collaborationsoffsetpaginated.CollaborationsOffsetPaginated; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.groupfull.GroupFull; +import org.junit.jupiter.api.Test; + +public class ListCollaborationsITest { + + @Test + public void testListCollaborations() { + BoxClient client = getDefaultClient(); + FolderFull folder = createNewFolder(); + FileFull file = uploadNewFile(); + GroupFull group = client.getGroups().createGroup(new CreateGroupRequestBody(getUuid())); + Collaboration groupCollaboration = + client + .getUserCollaborations() + .createCollaboration( + new CreateCollaborationRequestBody( + new CreateCollaborationRequestBodyItemField.Builder() + .type(CreateCollaborationRequestBodyItemTypeField.FOLDER) + .id(folder.getId()) + .build(), + new CreateCollaborationRequestBodyAccessibleByField.Builder( + CreateCollaborationRequestBodyAccessibleByTypeField.GROUP) + .id(group.getId()) + .build(), + CreateCollaborationRequestBodyRoleField.EDITOR)); + Collaboration fileCollaboration = + client + .getUserCollaborations() + .createCollaboration( + new CreateCollaborationRequestBody( + new CreateCollaborationRequestBodyItemField.Builder() + .type(CreateCollaborationRequestBodyItemTypeField.FILE) + .id(file.getId()) + .build(), + new CreateCollaborationRequestBodyAccessibleByField.Builder( + CreateCollaborationRequestBodyAccessibleByTypeField.USER) + .id(getEnvVar("USER_ID")) + .build(), + CreateCollaborationRequestBodyRoleField.EDITOR)); + assert convertToString(groupCollaboration.getRole()).equals("editor"); + assert convertToString(groupCollaboration.getType()).equals("collaboration"); + Collaborations fileCollaborations = + client.getListCollaborations().getFileCollaborations(file.getId()); + assert fileCollaborations.getEntries().size() > 0; + Collaborations folderCollaborations = + client.getListCollaborations().getFolderCollaborations(folder.getId()); + assert folderCollaborations.getEntries().size() > 0; + CollaborationsOffsetPaginated pendingCollaborations = + client + .getListCollaborations() + .getCollaborations( + new GetCollaborationsQueryParams(GetCollaborationsQueryParamsStatusField.PENDING)); + assert pendingCollaborations.getEntries().size() >= 0; + CollaborationsOffsetPaginated groupCollaborations = + client.getListCollaborations().getGroupCollaborations(group.getId()); + assert groupCollaborations.getEntries().size() > 0; + client.getUserCollaborations().deleteCollaborationById(groupCollaboration.getId()); + client.getFiles().deleteFileById(file.getId()); + client.getFolders().deleteFolderById(folder.getId()); + client.getGroups().deleteGroupById(group.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/memberships/MembershipsITest.java b/src/test/java/com/box/sdkgen/test/memberships/MembershipsITest.java new file mode 100644 index 000000000..bd9889729 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/memberships/MembershipsITest.java @@ -0,0 +1,70 @@ +package com.box.sdkgen.test.memberships; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.groups.CreateGroupRequestBody; +import com.box.sdkgen.managers.memberships.CreateGroupMembershipRequestBody; +import com.box.sdkgen.managers.memberships.CreateGroupMembershipRequestBodyGroupField; +import com.box.sdkgen.managers.memberships.CreateGroupMembershipRequestBodyUserField; +import com.box.sdkgen.managers.memberships.UpdateGroupMembershipByIdRequestBody; +import com.box.sdkgen.managers.memberships.UpdateGroupMembershipByIdRequestBodyRoleField; +import com.box.sdkgen.managers.users.CreateUserRequestBody; +import com.box.sdkgen.schemas.groupfull.GroupFull; +import com.box.sdkgen.schemas.groupmembership.GroupMembership; +import com.box.sdkgen.schemas.groupmemberships.GroupMemberships; +import com.box.sdkgen.schemas.userfull.UserFull; +import org.junit.jupiter.api.Test; + +public class MembershipsITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testMemberships() { + UserFull user = + client + .getUsers() + .createUser( + new CreateUserRequestBody.Builder(getUuid()) + .login(String.join("", getUuid(), "@boxdemo.com")) + .build()); + GroupMemberships userMemberships = client.getMemberships().getUserMemberships(user.getId()); + assert userMemberships.getTotalCount() == 0; + GroupFull group = client.getGroups().createGroup(new CreateGroupRequestBody(getUuid())); + GroupMemberships groupMemberships = client.getMemberships().getGroupMemberships(group.getId()); + assert groupMemberships.getTotalCount() == 0; + GroupMembership groupMembership = + client + .getMemberships() + .createGroupMembership( + new CreateGroupMembershipRequestBody( + new CreateGroupMembershipRequestBodyUserField(user.getId()), + new CreateGroupMembershipRequestBodyGroupField(group.getId()))); + assert groupMembership.getUser().getId().equals(user.getId()); + assert groupMembership.getGroup().getId().equals(group.getId()); + assert convertToString(groupMembership.getRole()).equals("member"); + GroupMembership getGroupMembership = + client.getMemberships().getGroupMembershipById(groupMembership.getId()); + assert getGroupMembership.getId().equals(groupMembership.getId()); + GroupMembership updatedGroupMembership = + client + .getMemberships() + .updateGroupMembershipById( + groupMembership.getId(), + new UpdateGroupMembershipByIdRequestBody.Builder() + .role(UpdateGroupMembershipByIdRequestBodyRoleField.ADMIN) + .build()); + assert updatedGroupMembership.getId().equals(groupMembership.getId()); + assert convertToString(updatedGroupMembership.getRole()).equals("admin"); + client.getMemberships().deleteGroupMembershipById(groupMembership.getId()); + assertThrows( + RuntimeException.class, + () -> client.getMemberships().getGroupMembershipById(groupMembership.getId())); + client.getGroups().deleteGroupById(group.getId()); + client.getUsers().deleteUserById(user.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/metadatacascadepolicies/MetadataCascadePoliciesITest.java b/src/test/java/com/box/sdkgen/test/metadatacascadepolicies/MetadataCascadePoliciesITest.java new file mode 100644 index 000000000..47cc22b14 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/metadatacascadepolicies/MetadataCascadePoliciesITest.java @@ -0,0 +1,106 @@ +package com.box.sdkgen.test.metadatacascadepolicies; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.test.commons.CommonsManager.createNewFolder; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.foldermetadata.CreateFolderMetadataByIdScope; +import com.box.sdkgen.managers.metadatacascadepolicies.ApplyMetadataCascadePolicyRequestBody; +import com.box.sdkgen.managers.metadatacascadepolicies.ApplyMetadataCascadePolicyRequestBodyConflictResolutionField; +import com.box.sdkgen.managers.metadatacascadepolicies.CreateMetadataCascadePolicyRequestBody; +import com.box.sdkgen.managers.metadatacascadepolicies.CreateMetadataCascadePolicyRequestBodyScopeField; +import com.box.sdkgen.managers.metadatacascadepolicies.GetMetadataCascadePoliciesQueryParams; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBody; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsField; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsTypeField; +import com.box.sdkgen.managers.metadatatemplates.DeleteMetadataTemplateScope; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.metadatacascadepolicies.MetadataCascadePolicies; +import com.box.sdkgen.schemas.metadatacascadepolicy.MetadataCascadePolicy; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class MetadataCascadePoliciesITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testMetadataCascadePolicies() { + String templateKey = String.join("", "key", getUuid()); + client + .getMetadataTemplates() + .createMetadataTemplate( + new CreateMetadataTemplateRequestBody.Builder("enterprise", templateKey) + .templateKey(templateKey) + .fields( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.STRING, + "testName", + "testName"))) + .build()); + FolderFull folder = createNewFolder(); + String enterpriseId = getEnvVar("ENTERPRISE_ID"); + MetadataCascadePolicy cascadePolicy = + client + .getMetadataCascadePolicies() + .createMetadataCascadePolicy( + new CreateMetadataCascadePolicyRequestBody( + folder.getId(), + CreateMetadataCascadePolicyRequestBodyScopeField.ENTERPRISE, + templateKey)); + assert convertToString(cascadePolicy.getType()).equals("metadata_cascade_policy"); + assert convertToString(cascadePolicy.getOwnerEnterprise().getType()).equals("enterprise"); + assert convertToString(cascadePolicy.getOwnerEnterprise().getId()).equals(enterpriseId); + assert convertToString(cascadePolicy.getParent().getType()).equals("folder"); + assert cascadePolicy.getParent().getId().equals(folder.getId()); + assert convertToString(cascadePolicy.getScope()) + .equals(String.join("", "enterprise_", enterpriseId)); + assert cascadePolicy.getTemplateKey().equals(templateKey); + String cascadePolicyId = cascadePolicy.getId(); + MetadataCascadePolicy policyFromTheApi = + client.getMetadataCascadePolicies().getMetadataCascadePolicyById(cascadePolicyId); + assert cascadePolicyId.equals(policyFromTheApi.getId()); + MetadataCascadePolicies policies = + client + .getMetadataCascadePolicies() + .getMetadataCascadePolicies(new GetMetadataCascadePoliciesQueryParams(folder.getId())); + assert policies.getEntries().size() == 1; + assertThrows( + RuntimeException.class, + () -> + client + .getMetadataCascadePolicies() + .applyMetadataCascadePolicy( + cascadePolicyId, + new ApplyMetadataCascadePolicyRequestBody( + ApplyMetadataCascadePolicyRequestBodyConflictResolutionField.OVERWRITE))); + client + .getFolderMetadata() + .createFolderMetadataById( + folder.getId(), + CreateFolderMetadataByIdScope.ENTERPRISE, + templateKey, + mapOf(entryOf("testName", "xyz"))); + client + .getMetadataCascadePolicies() + .applyMetadataCascadePolicy( + cascadePolicyId, + new ApplyMetadataCascadePolicyRequestBody( + ApplyMetadataCascadePolicyRequestBodyConflictResolutionField.OVERWRITE)); + client.getMetadataCascadePolicies().deleteMetadataCascadePolicyById(cascadePolicyId); + assertThrows( + RuntimeException.class, + () -> client.getMetadataCascadePolicies().getMetadataCascadePolicyById(cascadePolicyId)); + client + .getMetadataTemplates() + .deleteMetadataTemplate(DeleteMetadataTemplateScope.ENTERPRISE, templateKey); + client.getFolders().deleteFolderById(folder.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/metadatatemplates/MetadataTemplatesITest.java b/src/test/java/com/box/sdkgen/test/metadatatemplates/MetadataTemplatesITest.java new file mode 100644 index 000000000..06a6837b8 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/metadatatemplates/MetadataTemplatesITest.java @@ -0,0 +1,185 @@ +package com.box.sdkgen.test.metadatatemplates; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.filemetadata.CreateFileMetadataByIdScope; +import com.box.sdkgen.managers.filemetadata.DeleteFileMetadataByIdScope; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBody; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsField; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsOptionsField; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsTypeField; +import com.box.sdkgen.managers.metadatatemplates.DeleteMetadataTemplateScope; +import com.box.sdkgen.managers.metadatatemplates.GetMetadataTemplateScope; +import com.box.sdkgen.managers.metadatatemplates.GetMetadataTemplatesByInstanceIdQueryParams; +import com.box.sdkgen.managers.metadatatemplates.UpdateMetadataTemplateRequestBody; +import com.box.sdkgen.managers.metadatatemplates.UpdateMetadataTemplateRequestBodyOpField; +import com.box.sdkgen.managers.metadatatemplates.UpdateMetadataTemplateScope; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.metadatafull.MetadataFull; +import com.box.sdkgen.schemas.metadatatemplate.MetadataTemplate; +import com.box.sdkgen.schemas.metadatatemplates.MetadataTemplates; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class MetadataTemplatesITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testMetadataTemplates() { + String templateKey = String.join("", "key", getUuid()); + MetadataTemplate template = + client + .getMetadataTemplates() + .createMetadataTemplate( + new CreateMetadataTemplateRequestBody.Builder("enterprise", templateKey) + .templateKey(templateKey) + .fields( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.STRING, + "testName", + "testName"), + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.FLOAT, + "age", + "age"), + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.DATE, + "birthDate", + "birthDate"), + new CreateMetadataTemplateRequestBodyFieldsField.Builder( + CreateMetadataTemplateRequestBodyFieldsTypeField.ENUM, + "countryCode", + "countryCode") + .options( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "US"), + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "CA"))) + .build(), + new CreateMetadataTemplateRequestBodyFieldsField.Builder( + CreateMetadataTemplateRequestBodyFieldsTypeField.MULTISELECT, + "sports", + "sports") + .options( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "basketball"), + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "football"), + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "tennis"))) + .build())) + .build()); + assert template.getTemplateKey().equals(templateKey); + assert template.getDisplayName().equals(templateKey); + assert template.getFields().size() == 5; + assert template.getFields().get(0).getKey().equals("testName"); + assert template.getFields().get(0).getDisplayName().equals("testName"); + assert convertToString(template.getFields().get(0).getType()).equals("string"); + assert template.getFields().get(1).getKey().equals("age"); + assert template.getFields().get(1).getDisplayName().equals("age"); + assert convertToString(template.getFields().get(1).getType()).equals("float"); + assert template.getFields().get(2).getKey().equals("birthDate"); + assert template.getFields().get(2).getDisplayName().equals("birthDate"); + assert convertToString(template.getFields().get(2).getType()).equals("date"); + assert template.getFields().get(3).getKey().equals("countryCode"); + assert template.getFields().get(3).getDisplayName().equals("countryCode"); + assert convertToString(template.getFields().get(3).getType()).equals("enum"); + assert template.getFields().get(4).getKey().equals("sports"); + assert template.getFields().get(4).getDisplayName().equals("sports"); + assert convertToString(template.getFields().get(4).getType()).equals("multiSelect"); + MetadataTemplate updatedTemplate = + client + .getMetadataTemplates() + .updateMetadataTemplate( + UpdateMetadataTemplateScope.ENTERPRISE, + templateKey, + Arrays.asList( + new UpdateMetadataTemplateRequestBody.Builder( + UpdateMetadataTemplateRequestBodyOpField.ADDFIELD) + .data( + mapOf( + entryOf("type", "string"), entryOf("displayName", "newFieldName"))) + .fieldKey("newfieldname") + .build())); + assert updatedTemplate.getFields().size() == 6; + assert updatedTemplate.getFields().get(5).getKey().equals("newfieldname"); + assert updatedTemplate.getFields().get(5).getDisplayName().equals("newFieldName"); + MetadataTemplate getMetadataTemplate = + client.getMetadataTemplates().getMetadataTemplateById(template.getId()); + assert getMetadataTemplate.getId().equals(template.getId()); + MetadataTemplate getMetadataTemplateSchema = + client + .getMetadataTemplates() + .getMetadataTemplate(GetMetadataTemplateScope.ENTERPRISE, template.getTemplateKey()); + assert getMetadataTemplateSchema.getId().equals(template.getId()); + MetadataTemplates enterpriseMetadataTemplates = + client.getMetadataTemplates().getEnterpriseMetadataTemplates(); + assert enterpriseMetadataTemplates.getEntries().size() > 0; + MetadataTemplates globalMetadataTemplates = + client.getMetadataTemplates().getGlobalMetadataTemplates(); + assert globalMetadataTemplates.getEntries().size() > 0; + client + .getMetadataTemplates() + .deleteMetadataTemplate(DeleteMetadataTemplateScope.ENTERPRISE, template.getTemplateKey()); + assertThrows( + RuntimeException.class, + () -> + client + .getMetadataTemplates() + .deleteMetadataTemplate( + DeleteMetadataTemplateScope.ENTERPRISE, template.getTemplateKey())); + } + + @Test + public void testGetMetadataTemplateByInstance() { + FileFull file = uploadNewFile(); + String templateKey = String.join("", "key", getUuid()); + MetadataTemplate template = + client + .getMetadataTemplates() + .createMetadataTemplate( + new CreateMetadataTemplateRequestBody.Builder("enterprise", templateKey) + .templateKey(templateKey) + .fields( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.STRING, + "testName", + "testName"))) + .build()); + MetadataFull createdMetadataInstance = + client + .getFileMetadata() + .createFileMetadataById( + file.getId(), + CreateFileMetadataByIdScope.ENTERPRISE, + templateKey, + mapOf(entryOf("testName", "xyz"))); + MetadataTemplates metadataTemplates = + client + .getMetadataTemplates() + .getMetadataTemplatesByInstanceId( + new GetMetadataTemplatesByInstanceIdQueryParams(createdMetadataInstance.getId())); + assert metadataTemplates.getEntries().size() == 1; + assert metadataTemplates.getEntries().get(0).getDisplayName().equals(templateKey); + assert metadataTemplates.getEntries().get(0).getTemplateKey().equals(templateKey); + client + .getFileMetadata() + .deleteFileMetadataById(file.getId(), DeleteFileMetadataByIdScope.ENTERPRISE, templateKey); + client + .getMetadataTemplates() + .deleteMetadataTemplate(DeleteMetadataTemplateScope.ENTERPRISE, template.getTemplateKey()); + client.getFiles().deleteFileById(file.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/recentitems/RecentItemsITest.java b/src/test/java/com/box/sdkgen/test/recentitems/RecentItemsITest.java new file mode 100644 index 000000000..3c72620ae --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/recentitems/RecentItemsITest.java @@ -0,0 +1,18 @@ +package com.box.sdkgen.test.recentitems; + +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.schemas.recentitems.RecentItems; +import org.junit.jupiter.api.Test; + +public class RecentItemsITest { + + @Test + public void testRecentItems() { + BoxClient client = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); + RecentItems recentItems = client.getRecentItems().getRecentItems(); + assert recentItems.getEntries().size() >= 0; + } +} diff --git a/src/test/java/com/box/sdkgen/test/retentionpolicies/RetentionPoliciesITest.java b/src/test/java/com/box/sdkgen/test/retentionpolicies/RetentionPoliciesITest.java new file mode 100644 index 000000000..0925a0e5d --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/retentionpolicies/RetentionPoliciesITest.java @@ -0,0 +1,57 @@ +package com.box.sdkgen.test.retentionpolicies; + +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.retentionpolicies.CreateRetentionPolicyRequestBody; +import com.box.sdkgen.managers.retentionpolicies.CreateRetentionPolicyRequestBodyDispositionActionField; +import com.box.sdkgen.managers.retentionpolicies.CreateRetentionPolicyRequestBodyPolicyTypeField; +import com.box.sdkgen.managers.retentionpolicies.CreateRetentionPolicyRequestBodyRetentionTypeField; +import com.box.sdkgen.managers.retentionpolicies.UpdateRetentionPolicyByIdRequestBody; +import com.box.sdkgen.schemas.retentionpolicies.RetentionPolicies; +import com.box.sdkgen.schemas.retentionpolicy.RetentionPolicy; +import org.junit.jupiter.api.Test; + +public class RetentionPoliciesITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testCreateUpdateGetDeleteRetentionPolicy() { + String retentionPolicyName = getUuid(); + String retentionDescription = "test description"; + RetentionPolicy retentionPolicy = + client + .getRetentionPolicies() + .createRetentionPolicy( + new CreateRetentionPolicyRequestBody.Builder( + retentionPolicyName, + CreateRetentionPolicyRequestBodyPolicyTypeField.FINITE, + CreateRetentionPolicyRequestBodyDispositionActionField.REMOVE_RETENTION) + .description(retentionDescription) + .retentionLength("1") + .retentionType(CreateRetentionPolicyRequestBodyRetentionTypeField.MODIFIABLE) + .canOwnerExtendRetention(true) + .areOwnersNotified(true) + .build()); + assert retentionPolicy.getPolicyName().equals(retentionPolicyName); + assert retentionPolicy.getDescription().equals(retentionDescription); + RetentionPolicy retentionPolicyById = + client.getRetentionPolicies().getRetentionPolicyById(retentionPolicy.getId()); + assert retentionPolicyById.getId().equals(retentionPolicy.getId()); + RetentionPolicies retentionPolicies = client.getRetentionPolicies().getRetentionPolicies(); + assert retentionPolicies.getEntries().size() > 0; + String updatedRetentionPolicyName = getUuid(); + RetentionPolicy updatedRetentionPolicy = + client + .getRetentionPolicies() + .updateRetentionPolicyById( + retentionPolicy.getId(), + new UpdateRetentionPolicyByIdRequestBody.Builder() + .policyName(updatedRetentionPolicyName) + .build()); + assert updatedRetentionPolicy.getPolicyName().equals(updatedRetentionPolicyName); + client.getRetentionPolicies().deleteRetentionPolicyById(retentionPolicy.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/retentionpolicyassignments/RetentionPolicyAssignmentsITest.java b/src/test/java/com/box/sdkgen/test/retentionpolicyassignments/RetentionPolicyAssignmentsITest.java new file mode 100644 index 000000000..c67df3bc7 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/retentionpolicyassignments/RetentionPolicyAssignmentsITest.java @@ -0,0 +1,115 @@ +package com.box.sdkgen.test.retentionpolicyassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.folders.CreateFolderRequestBody; +import com.box.sdkgen.managers.folders.CreateFolderRequestBodyParentField; +import com.box.sdkgen.managers.retentionpolicies.CreateRetentionPolicyRequestBody; +import com.box.sdkgen.managers.retentionpolicies.CreateRetentionPolicyRequestBodyDispositionActionField; +import com.box.sdkgen.managers.retentionpolicies.CreateRetentionPolicyRequestBodyPolicyTypeField; +import com.box.sdkgen.managers.retentionpolicies.CreateRetentionPolicyRequestBodyRetentionTypeField; +import com.box.sdkgen.managers.retentionpolicyassignments.CreateRetentionPolicyAssignmentRequestBody; +import com.box.sdkgen.managers.retentionpolicyassignments.CreateRetentionPolicyAssignmentRequestBodyAssignToField; +import com.box.sdkgen.managers.retentionpolicyassignments.CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesParentField; +import com.box.sdkgen.managers.uploads.UploadFileVersionRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileVersionRequestBodyAttributesField; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.files.Files; +import com.box.sdkgen.schemas.filesunderretention.FilesUnderRetention; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.retentionpolicy.RetentionPolicy; +import com.box.sdkgen.schemas.retentionpolicyassignment.RetentionPolicyAssignment; +import com.box.sdkgen.schemas.retentionpolicyassignments.RetentionPolicyAssignments; +import org.junit.jupiter.api.Test; + +public class RetentionPolicyAssignmentsITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testCreateUpdateGetDeleteRetentionPolicyAssignment() { + String retentionPolicyName = getUuid(); + String retentionDescription = "test description"; + RetentionPolicy retentionPolicy = + client + .getRetentionPolicies() + .createRetentionPolicy( + new CreateRetentionPolicyRequestBody.Builder( + retentionPolicyName, + CreateRetentionPolicyRequestBodyPolicyTypeField.FINITE, + CreateRetentionPolicyRequestBodyDispositionActionField.REMOVE_RETENTION) + .description(retentionDescription) + .retentionLength("1") + .retentionType(CreateRetentionPolicyRequestBodyRetentionTypeField.MODIFIABLE) + .canOwnerExtendRetention(true) + .areOwnersNotified(true) + .build()); + FolderFull folder = + client + .getFolders() + .createFolder( + new CreateFolderRequestBody( + getUuid(), new CreateFolderRequestBodyParentField("0"))); + Files files = + client + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + getUuid(), new UploadFileRequestBodyAttributesParentField(folder.getId())), + generateByteStream(10))); + FileFull file = files.getEntries().get(0); + Files newVersions = + client + .getUploads() + .uploadFileVersion( + file.getId(), + new UploadFileVersionRequestBody( + new UploadFileVersionRequestBodyAttributesField(getUuid()), + generateByteStream(20))); + FileFull newVersion = newVersions.getEntries().get(0); + RetentionPolicyAssignment retentionPolicyAssignment = + client + .getRetentionPolicyAssignments() + .createRetentionPolicyAssignment( + new CreateRetentionPolicyAssignmentRequestBody( + retentionPolicy.getId(), + new CreateRetentionPolicyAssignmentRequestBodyAssignToField.Builder( + CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField.FOLDER) + .id(folder.getId()) + .build())); + assert retentionPolicyAssignment.getRetentionPolicy().getId().equals(retentionPolicy.getId()); + assert retentionPolicyAssignment.getAssignedTo().getId().equals(folder.getId()); + RetentionPolicyAssignment retentionPolicyAssignmentById = + client + .getRetentionPolicyAssignments() + .getRetentionPolicyAssignmentById(retentionPolicyAssignment.getId()); + assert retentionPolicyAssignmentById.getId().equals(retentionPolicyAssignment.getId()); + RetentionPolicyAssignments retentionPolicyAssignments = + client + .getRetentionPolicyAssignments() + .getRetentionPolicyAssignments(retentionPolicy.getId()); + assert retentionPolicyAssignments.getEntries().size() == 1; + FilesUnderRetention filesUnderRetention = + client + .getRetentionPolicyAssignments() + .getFilesUnderRetentionPolicyAssignment(retentionPolicyAssignment.getId()); + assert filesUnderRetention.getEntries().size() == 1; + client + .getRetentionPolicyAssignments() + .deleteRetentionPolicyAssignmentById(retentionPolicyAssignment.getId()); + RetentionPolicyAssignments retentionPolicyAssignmentsAfterDelete = + client + .getRetentionPolicyAssignments() + .getRetentionPolicyAssignments(retentionPolicy.getId()); + assert retentionPolicyAssignmentsAfterDelete.getEntries().size() == 0; + client.getRetentionPolicies().deleteRetentionPolicyById(retentionPolicy.getId()); + client.getFiles().deleteFileById(file.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/search/SearchITest.java b/src/test/java/com/box/sdkgen/test/search/SearchITest.java new file mode 100644 index 000000000..dd482a237 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/search/SearchITest.java @@ -0,0 +1,294 @@ +package com.box.sdkgen.test.search; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.dateTimeFromString; +import static com.box.sdkgen.internal.utils.UtilsManager.delayInSeconds; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.filemetadata.CreateFileMetadataByIdScope; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBody; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsField; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsOptionsField; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsTypeField; +import com.box.sdkgen.managers.metadatatemplates.DeleteMetadataTemplateScope; +import com.box.sdkgen.managers.search.SearchForContentQueryParams; +import com.box.sdkgen.managers.search.SearchForContentQueryParamsTrashContentField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesParentField; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.files.Files; +import com.box.sdkgen.schemas.metadatafieldfilterdaterange.MetadataFieldFilterDateRange; +import com.box.sdkgen.schemas.metadatafieldfilterdaterangeormetadatafieldfilterfloatrangeorarrayofstringornumberorstring.MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString; +import com.box.sdkgen.schemas.metadatafieldfilterfloatrange.MetadataFieldFilterFloatRange; +import com.box.sdkgen.schemas.metadatafilter.MetadataFilter; +import com.box.sdkgen.schemas.metadatafilter.MetadataFilterScopeField; +import com.box.sdkgen.schemas.metadatafull.MetadataFull; +import com.box.sdkgen.schemas.metadataquery.MetadataQuery; +import com.box.sdkgen.schemas.metadataqueryresults.MetadataQueryResults; +import com.box.sdkgen.schemas.metadatatemplate.MetadataTemplate; +import com.box.sdkgen.schemas.searchresults.SearchResults; +import com.box.sdkgen.schemas.searchresultsorsearchresultswithsharedlinks.SearchResultsOrSearchResultsWithSharedLinks; +import com.box.sdkgen.schemas.searchresultswithsharedlinks.SearchResultsWithSharedLinks; +import java.util.Arrays; +import java.util.Map; +import org.junit.jupiter.api.Test; + +public class SearchITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testCreateMetaDataQueryExecuteRead() { + String templateKey = String.join("", "key", getUuid()); + MetadataTemplate template = + client + .getMetadataTemplates() + .createMetadataTemplate( + new CreateMetadataTemplateRequestBody.Builder("enterprise", templateKey) + .templateKey(templateKey) + .fields( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.STRING, + "name", + "name"), + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.FLOAT, + "age", + "age"), + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.DATE, + "birthDate", + "birthDate"), + new CreateMetadataTemplateRequestBodyFieldsField.Builder( + CreateMetadataTemplateRequestBodyFieldsTypeField.ENUM, + "countryCode", + "countryCode") + .options( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "US"), + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "CA"))) + .build(), + new CreateMetadataTemplateRequestBodyFieldsField.Builder( + CreateMetadataTemplateRequestBodyFieldsTypeField.MULTISELECT, + "sports", + "sports") + .options( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "basketball"), + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "football"), + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "tennis"))) + .build())) + .build()); + assert template.getTemplateKey().equals(templateKey); + Files files = + client + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + getUuid(), new UploadFileRequestBodyAttributesParentField("0")), + generateByteStream(10))); + FileFull file = files.getEntries().get(0); + MetadataFull metadata = + client + .getFileMetadata() + .createFileMetadataById( + file.getId(), + CreateFileMetadataByIdScope.ENTERPRISE, + templateKey, + mapOf( + entryOf("name", "John"), + entryOf("age", 23), + entryOf("birthDate", "2001-01-03T02:20:50.520Z"), + entryOf("countryCode", "US"), + entryOf("sports", Arrays.asList("basketball", "tennis")))); + assert metadata.getTemplate().equals(templateKey); + assert metadata.getScope().equals(template.getScope()); + delayInSeconds(5); + String searchFrom = String.join("", template.getScope(), ".", template.getTemplateKey()); + MetadataQueryResults query = + client + .getSearch() + .searchByMetadataQuery( + new MetadataQuery.Builder(searchFrom, "0") + .query( + "name = :name AND age < :age AND birthDate >= :birthDate AND countryCode = :countryCode AND sports = :sports") + .queryParams( + mapOf( + entryOf("name", "John"), + entryOf("age", 50), + entryOf("birthDate", "2001-01-01T02:20:10.120Z"), + entryOf("countryCode", "US"), + entryOf("sports", Arrays.asList("basketball", "tennis")))) + .build()); + assert query.getEntries().size() >= 0; + client + .getMetadataTemplates() + .deleteMetadataTemplate(DeleteMetadataTemplateScope.ENTERPRISE, template.getTemplateKey()); + client.getFiles().deleteFileById(file.getId()); + } + + @Test + public void testMetadataFilters() { + String templateKey = String.join("", "key", getUuid()); + MetadataTemplate template = + client + .getMetadataTemplates() + .createMetadataTemplate( + new CreateMetadataTemplateRequestBody.Builder("enterprise", templateKey) + .templateKey(templateKey) + .fields( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.FLOAT, + "floatField", + "floatField"), + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.STRING, + "stringField", + "stringField"), + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.DATE, + "dateField", + "dateField"), + new CreateMetadataTemplateRequestBodyFieldsField.Builder( + CreateMetadataTemplateRequestBodyFieldsTypeField.ENUM, + "enumField", + "enumField") + .options( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "enumValue1"), + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "enumValue2"))) + .build(), + new CreateMetadataTemplateRequestBodyFieldsField.Builder( + CreateMetadataTemplateRequestBodyFieldsTypeField.MULTISELECT, + "multiSelectField", + "multiSelectField") + .options( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "multiSelectValue1"), + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "multiSelectValue2"))) + .build())) + .build()); + Files files = + client + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + getUuid(), new UploadFileRequestBodyAttributesParentField("0")), + generateByteStream(10))); + FileFull file = files.getEntries().get(0); + MetadataFull metadata = + client + .getFileMetadata() + .createFileMetadataById( + file.getId(), + CreateFileMetadataByIdScope.ENTERPRISE, + templateKey, + mapOf( + entryOf("floatField", 10), + entryOf("stringField", "stringValue"), + entryOf("dateField", "2035-01-02T00:00:00Z"), + entryOf("enumField", "enumValue2"), + entryOf( + "multiSelectField", + Arrays.asList("multiSelectValue1", "multiSelectValue2")))); + Map< + String, + MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString> + searchFilters = + mapOf( + entryOf( + "stringField", + new MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( + "stringValue")), + entryOf( + "dateField", + new MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( + new MetadataFieldFilterDateRange.Builder() + .lt(dateTimeFromString("2035-01-01T00:00:00Z")) + .gt(dateTimeFromString("2035-01-03T00:00:00Z")) + .build())), + entryOf( + "floatField", + new MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( + new MetadataFieldFilterFloatRange.Builder().lt(9.5).gt(10.5).build())), + entryOf( + "enumField", + new MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( + "enumValue2")), + entryOf( + "multiSelectField", + new MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( + Arrays.asList("multiSelectValue1", "multiSelectValue2")))); + SearchResultsOrSearchResultsWithSharedLinks query = + client + .getSearch() + .searchForContent( + new SearchForContentQueryParams.Builder() + .ancestorFolderIds(Arrays.asList("0")) + .mdfilters( + Arrays.asList( + new MetadataFilter.Builder() + .scope(MetadataFilterScopeField.ENTERPRISE) + .templateKey(templateKey) + .filters(searchFilters) + .build())) + .build()); + SearchResults queryResults = query.getSearchResults(); + assert queryResults.getEntries().size() >= 0; + client + .getMetadataTemplates() + .deleteMetadataTemplate(DeleteMetadataTemplateScope.ENTERPRISE, template.getTemplateKey()); + client.getFiles().deleteFileById(file.getId()); + } + + @Test + public void testGetSearch() { + String keyword = "test"; + SearchResultsOrSearchResultsWithSharedLinks search = + client + .getSearch() + .searchForContent( + new SearchForContentQueryParams.Builder() + .query(keyword) + .ancestorFolderIds(Arrays.asList("0")) + .trashContent(SearchForContentQueryParamsTrashContentField.NON_TRASHED_ONLY) + .build()); + assert convertToString(search.getType()).equals("search_results_items"); + SearchResults searchResults = search.getSearchResults(); + assert searchResults.getEntries().size() >= 0; + SearchResultsOrSearchResultsWithSharedLinks searchWithSharedLink = + client + .getSearch() + .searchForContent( + new SearchForContentQueryParams.Builder() + .query(keyword) + .ancestorFolderIds(Arrays.asList("0")) + .trashContent(SearchForContentQueryParamsTrashContentField.NON_TRASHED_ONLY) + .includeRecentSharedLinks(true) + .build()); + assert convertToString(searchWithSharedLink.getType()) + .equals("search_results_with_shared_links"); + SearchResultsWithSharedLinks searchResultsWithSharedLink = + searchWithSharedLink.getSearchResultsWithSharedLinks(); + assert searchResultsWithSharedLink.getEntries().size() >= 0; + } +} diff --git a/src/test/java/com/box/sdkgen/test/sessiontermination/SessionTerminationITest.java b/src/test/java/com/box/sdkgen/test/sessiontermination/SessionTerminationITest.java new file mode 100644 index 000000000..ec4d2b268 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/sessiontermination/SessionTerminationITest.java @@ -0,0 +1,51 @@ +package com.box.sdkgen.test.sessiontermination; + +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.groups.CreateGroupRequestBody; +import com.box.sdkgen.managers.sessiontermination.TerminateGroupsSessionsRequestBody; +import com.box.sdkgen.managers.sessiontermination.TerminateUsersSessionsRequestBody; +import com.box.sdkgen.schemas.groupfull.GroupFull; +import com.box.sdkgen.schemas.sessionterminationmessage.SessionTerminationMessage; +import com.box.sdkgen.schemas.userfull.UserFull; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class SessionTerminationITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testSessionTerminationUser() { + BoxClient adminClient = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); + UserFull user = adminClient.getUsers().getUserMe(); + SessionTerminationMessage result = + client + .getSessionTermination() + .terminateUsersSessions( + new TerminateUsersSessionsRequestBody( + Arrays.asList(getEnvVar("USER_ID")), Arrays.asList(user.getLogin()))); + assert result + .getMessage() + .equals("Request is successful, please check the admin events for the status of the job"); + } + + @Test + public void testSessionTerminationGroup() { + String groupName = getUuid(); + GroupFull group = client.getGroups().createGroup(new CreateGroupRequestBody(groupName)); + SessionTerminationMessage result = + client + .getSessionTermination() + .terminateGroupsSessions( + new TerminateGroupsSessionsRequestBody(Arrays.asList(group.getId()))); + assert result + .getMessage() + .equals("Request is successful, please check the admin events for the status of the job"); + client.getGroups().deleteGroupById(group.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/sharedlinksappitems/SharedLinksAppItemsITest.java b/src/test/java/com/box/sdkgen/test/sharedlinksappitems/SharedLinksAppItemsITest.java new file mode 100644 index 000000000..cbf8f5f70 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/sharedlinksappitems/SharedLinksAppItemsITest.java @@ -0,0 +1,28 @@ +package com.box.sdkgen.test.sharedlinksappitems; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.sharedlinksappitems.FindAppItemForSharedLinkHeaders; +import com.box.sdkgen.schemas.appitem.AppItem; +import org.junit.jupiter.api.Test; + +public class SharedLinksAppItemsITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testSharedLinksAppItems() { + String appItemSharedLink = getEnvVar("APP_ITEM_SHARED_LINK"); + AppItem appItem = + client + .getSharedLinksAppItems() + .findAppItemForSharedLink( + new FindAppItemForSharedLinkHeaders( + String.join("", "shared_link=", appItemSharedLink))); + assert convertToString(appItem.getType()).equals("app_item"); + assert appItem.getApplicationType().equals("hubs"); + } +} diff --git a/src/test/java/com/box/sdkgen/test/sharedlinksfiles/SharedLinksFilesITest.java b/src/test/java/com/box/sdkgen/test/sharedlinksfiles/SharedLinksFilesITest.java new file mode 100644 index 000000000..419311efb --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/sharedlinksfiles/SharedLinksFilesITest.java @@ -0,0 +1,119 @@ +package com.box.sdkgen.test.sharedlinksfiles; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.sharedlinksfiles.AddShareLinkToFileQueryParams; +import com.box.sdkgen.managers.sharedlinksfiles.AddShareLinkToFileRequestBody; +import com.box.sdkgen.managers.sharedlinksfiles.AddShareLinkToFileRequestBodySharedLinkAccessField; +import com.box.sdkgen.managers.sharedlinksfiles.AddShareLinkToFileRequestBodySharedLinkField; +import com.box.sdkgen.managers.sharedlinksfiles.FindFileForSharedLinkHeaders; +import com.box.sdkgen.managers.sharedlinksfiles.FindFileForSharedLinkQueryParams; +import com.box.sdkgen.managers.sharedlinksfiles.GetSharedLinkForFileQueryParams; +import com.box.sdkgen.managers.sharedlinksfiles.RemoveSharedLinkFromFileQueryParams; +import com.box.sdkgen.managers.sharedlinksfiles.RemoveSharedLinkFromFileRequestBody; +import com.box.sdkgen.managers.sharedlinksfiles.UpdateSharedLinkOnFileQueryParams; +import com.box.sdkgen.managers.sharedlinksfiles.UpdateSharedLinkOnFileRequestBody; +import com.box.sdkgen.managers.sharedlinksfiles.UpdateSharedLinkOnFileRequestBodySharedLinkAccessField; +import com.box.sdkgen.managers.sharedlinksfiles.UpdateSharedLinkOnFileRequestBodySharedLinkField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesParentField; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.files.Files; +import org.junit.jupiter.api.Test; + +public class SharedLinksFilesITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testSharedLinksFiles() { + Files uploadedFiles = + client + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + getUuid(), new UploadFileRequestBodyAttributesParentField("0")), + generateByteStream(10))); + String fileId = uploadedFiles.getEntries().get(0).getId(); + client + .getSharedLinksFiles() + .addShareLinkToFile( + fileId, + new AddShareLinkToFileRequestBody.Builder() + .sharedLink( + new AddShareLinkToFileRequestBodySharedLinkField.Builder() + .access(AddShareLinkToFileRequestBodySharedLinkAccessField.OPEN) + .password("Secret123@") + .build()) + .build(), + new AddShareLinkToFileQueryParams("shared_link")); + FileFull fileFromApi = + client + .getSharedLinksFiles() + .getSharedLinkForFile(fileId, new GetSharedLinkForFileQueryParams("shared_link")); + assert convertToString(fileFromApi.getSharedLink().getAccess()).equals("open"); + String userId = getEnvVar("USER_ID"); + BoxClient userClient = getDefaultClientWithUserSubject(userId); + FileFull fileFromSharedLinkPassword = + userClient + .getSharedLinksFiles() + .findFileForSharedLink( + new FindFileForSharedLinkQueryParams(), + new FindFileForSharedLinkHeaders( + String.join( + "", + "shared_link=", + fileFromApi.getSharedLink().getUrl(), + "&shared_link_password=Secret123@"))); + assert fileId.equals(fileFromSharedLinkPassword.getId()); + assertThrows( + RuntimeException.class, + () -> + userClient + .getSharedLinksFiles() + .findFileForSharedLink( + new FindFileForSharedLinkQueryParams(), + new FindFileForSharedLinkHeaders( + String.join( + "", + "shared_link=", + fileFromApi.getSharedLink().getUrl(), + "&shared_link_password=incorrectPassword")))); + FileFull updatedFile = + client + .getSharedLinksFiles() + .updateSharedLinkOnFile( + fileId, + new UpdateSharedLinkOnFileRequestBody.Builder() + .sharedLink( + new UpdateSharedLinkOnFileRequestBodySharedLinkField.Builder() + .access( + UpdateSharedLinkOnFileRequestBodySharedLinkAccessField + .COLLABORATORS) + .build()) + .build(), + new UpdateSharedLinkOnFileQueryParams("shared_link")); + assert convertToString(updatedFile.getSharedLink().getAccess()).equals("collaborators"); + client + .getSharedLinksFiles() + .removeSharedLinkFromFile( + fileId, + new RemoveSharedLinkFromFileRequestBody.Builder().sharedLink(null).build(), + new RemoveSharedLinkFromFileQueryParams("shared_link")); + FileFull fileFromApiAfterRemove = + client + .getSharedLinksFiles() + .getSharedLinkForFile(fileId, new GetSharedLinkForFileQueryParams("shared_link")); + assert fileFromApiAfterRemove.getSharedLink() == null; + client.getFiles().deleteFileById(fileId); + } +} diff --git a/src/test/java/com/box/sdkgen/test/sharedlinksfolders/SharedLinksFoldersITest.java b/src/test/java/com/box/sdkgen/test/sharedlinksfolders/SharedLinksFoldersITest.java new file mode 100644 index 000000000..f97908468 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/sharedlinksfolders/SharedLinksFoldersITest.java @@ -0,0 +1,115 @@ +package com.box.sdkgen.test.sharedlinksfolders; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.folders.CreateFolderRequestBody; +import com.box.sdkgen.managers.folders.CreateFolderRequestBodyParentField; +import com.box.sdkgen.managers.sharedlinksfolders.AddShareLinkToFolderQueryParams; +import com.box.sdkgen.managers.sharedlinksfolders.AddShareLinkToFolderRequestBody; +import com.box.sdkgen.managers.sharedlinksfolders.AddShareLinkToFolderRequestBodySharedLinkAccessField; +import com.box.sdkgen.managers.sharedlinksfolders.AddShareLinkToFolderRequestBodySharedLinkField; +import com.box.sdkgen.managers.sharedlinksfolders.FindFolderForSharedLinkHeaders; +import com.box.sdkgen.managers.sharedlinksfolders.FindFolderForSharedLinkQueryParams; +import com.box.sdkgen.managers.sharedlinksfolders.GetSharedLinkForFolderQueryParams; +import com.box.sdkgen.managers.sharedlinksfolders.RemoveSharedLinkFromFolderQueryParams; +import com.box.sdkgen.managers.sharedlinksfolders.RemoveSharedLinkFromFolderRequestBody; +import com.box.sdkgen.managers.sharedlinksfolders.UpdateSharedLinkOnFolderQueryParams; +import com.box.sdkgen.managers.sharedlinksfolders.UpdateSharedLinkOnFolderRequestBody; +import com.box.sdkgen.managers.sharedlinksfolders.UpdateSharedLinkOnFolderRequestBodySharedLinkAccessField; +import com.box.sdkgen.managers.sharedlinksfolders.UpdateSharedLinkOnFolderRequestBodySharedLinkField; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import org.junit.jupiter.api.Test; + +public class SharedLinksFoldersITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testSharedLinksFolders() { + FolderFull folder = + client + .getFolders() + .createFolder( + new CreateFolderRequestBody( + getUuid(), new CreateFolderRequestBodyParentField("0"))); + client + .getSharedLinksFolders() + .addShareLinkToFolder( + folder.getId(), + new AddShareLinkToFolderRequestBody.Builder() + .sharedLink( + new AddShareLinkToFolderRequestBodySharedLinkField.Builder() + .access(AddShareLinkToFolderRequestBodySharedLinkAccessField.OPEN) + .password("Secret123@") + .build()) + .build(), + new AddShareLinkToFolderQueryParams("shared_link")); + FolderFull folderFromApi = + client + .getSharedLinksFolders() + .getSharedLinkForFolder( + folder.getId(), new GetSharedLinkForFolderQueryParams("shared_link")); + assert convertToString(folderFromApi.getSharedLink().getAccess()).equals("open"); + String userId = getEnvVar("USER_ID"); + BoxClient userClient = getDefaultClientWithUserSubject(userId); + FolderFull folderFromSharedLinkPassword = + userClient + .getSharedLinksFolders() + .findFolderForSharedLink( + new FindFolderForSharedLinkQueryParams(), + new FindFolderForSharedLinkHeaders( + String.join( + "", + "shared_link=", + folderFromApi.getSharedLink().getUrl(), + "&shared_link_password=Secret123@"))); + assert folder.getId().equals(folderFromSharedLinkPassword.getId()); + assertThrows( + RuntimeException.class, + () -> + userClient + .getSharedLinksFolders() + .findFolderForSharedLink( + new FindFolderForSharedLinkQueryParams(), + new FindFolderForSharedLinkHeaders( + String.join( + "", + "shared_link=", + folderFromApi.getSharedLink().getUrl(), + "&shared_link_password=incorrectPassword")))); + FolderFull updatedFolder = + client + .getSharedLinksFolders() + .updateSharedLinkOnFolder( + folder.getId(), + new UpdateSharedLinkOnFolderRequestBody.Builder() + .sharedLink( + new UpdateSharedLinkOnFolderRequestBodySharedLinkField.Builder() + .access( + UpdateSharedLinkOnFolderRequestBodySharedLinkAccessField + .COLLABORATORS) + .build()) + .build(), + new UpdateSharedLinkOnFolderQueryParams("shared_link")); + assert convertToString(updatedFolder.getSharedLink().getAccess()).equals("collaborators"); + client + .getSharedLinksFolders() + .removeSharedLinkFromFolder( + folder.getId(), + new RemoveSharedLinkFromFolderRequestBody.Builder().sharedLink(null).build(), + new RemoveSharedLinkFromFolderQueryParams("shared_link")); + FolderFull folderFromApiAfterRemove = + client + .getSharedLinksFolders() + .getSharedLinkForFolder( + folder.getId(), new GetSharedLinkForFolderQueryParams("shared_link")); + assert folderFromApiAfterRemove.getSharedLink() == null; + client.getFolders().deleteFolderById(folder.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/sharedlinksweblinks/SharedLinksWebLinksITest.java b/src/test/java/com/box/sdkgen/test/sharedlinksweblinks/SharedLinksWebLinksITest.java new file mode 100644 index 000000000..f77d6f379 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/sharedlinksweblinks/SharedLinksWebLinksITest.java @@ -0,0 +1,122 @@ +package com.box.sdkgen.test.sharedlinksweblinks; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.sharedlinksweblinks.AddShareLinkToWebLinkQueryParams; +import com.box.sdkgen.managers.sharedlinksweblinks.AddShareLinkToWebLinkRequestBody; +import com.box.sdkgen.managers.sharedlinksweblinks.AddShareLinkToWebLinkRequestBodySharedLinkAccessField; +import com.box.sdkgen.managers.sharedlinksweblinks.AddShareLinkToWebLinkRequestBodySharedLinkField; +import com.box.sdkgen.managers.sharedlinksweblinks.FindWebLinkForSharedLinkHeaders; +import com.box.sdkgen.managers.sharedlinksweblinks.FindWebLinkForSharedLinkQueryParams; +import com.box.sdkgen.managers.sharedlinksweblinks.GetSharedLinkForWebLinkQueryParams; +import com.box.sdkgen.managers.sharedlinksweblinks.RemoveSharedLinkFromWebLinkQueryParams; +import com.box.sdkgen.managers.sharedlinksweblinks.RemoveSharedLinkFromWebLinkRequestBody; +import com.box.sdkgen.managers.sharedlinksweblinks.UpdateSharedLinkOnWebLinkQueryParams; +import com.box.sdkgen.managers.sharedlinksweblinks.UpdateSharedLinkOnWebLinkRequestBody; +import com.box.sdkgen.managers.sharedlinksweblinks.UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessField; +import com.box.sdkgen.managers.sharedlinksweblinks.UpdateSharedLinkOnWebLinkRequestBodySharedLinkField; +import com.box.sdkgen.managers.weblinks.CreateWebLinkRequestBody; +import com.box.sdkgen.managers.weblinks.CreateWebLinkRequestBodyParentField; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.weblink.WebLink; +import org.junit.jupiter.api.Test; + +public class SharedLinksWebLinksITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testSharedLinksWebLinks() { + FolderFull parent = client.getFolders().getFolderById("0"); + WebLink webLink = + client + .getWebLinks() + .createWebLink( + new CreateWebLinkRequestBody.Builder( + "https://www.box.com", + new CreateWebLinkRequestBodyParentField(parent.getId())) + .name(getUuid()) + .description("Weblink description") + .build()); + String webLinkId = webLink.getId(); + client + .getSharedLinksWebLinks() + .addShareLinkToWebLink( + webLinkId, + new AddShareLinkToWebLinkRequestBody.Builder() + .sharedLink( + new AddShareLinkToWebLinkRequestBodySharedLinkField.Builder() + .access(AddShareLinkToWebLinkRequestBodySharedLinkAccessField.OPEN) + .password("Secret123@") + .build()) + .build(), + new AddShareLinkToWebLinkQueryParams("shared_link")); + WebLink webLinkFromApi = + client + .getSharedLinksWebLinks() + .getSharedLinkForWebLink( + webLinkId, new GetSharedLinkForWebLinkQueryParams("shared_link")); + assert convertToString(webLinkFromApi.getSharedLink().getAccess()).equals("open"); + String userId = getEnvVar("USER_ID"); + BoxClient userClient = getDefaultClientWithUserSubject(userId); + WebLink webLinkFromSharedLinkPassword = + userClient + .getSharedLinksWebLinks() + .findWebLinkForSharedLink( + new FindWebLinkForSharedLinkQueryParams(), + new FindWebLinkForSharedLinkHeaders( + String.join( + "", + "shared_link=", + webLinkFromApi.getSharedLink().getUrl(), + "&shared_link_password=Secret123@"))); + assert webLinkId.equals(webLinkFromSharedLinkPassword.getId()); + assertThrows( + RuntimeException.class, + () -> + userClient + .getSharedLinksWebLinks() + .findWebLinkForSharedLink( + new FindWebLinkForSharedLinkQueryParams(), + new FindWebLinkForSharedLinkHeaders( + String.join( + "", + "shared_link=", + webLinkFromApi.getSharedLink().getUrl(), + "&shared_link_password=incorrectPassword")))); + WebLink updatedWebLink = + client + .getSharedLinksWebLinks() + .updateSharedLinkOnWebLink( + webLinkId, + new UpdateSharedLinkOnWebLinkRequestBody.Builder() + .sharedLink( + new UpdateSharedLinkOnWebLinkRequestBodySharedLinkField.Builder() + .access( + UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessField + .COLLABORATORS) + .build()) + .build(), + new UpdateSharedLinkOnWebLinkQueryParams("shared_link")); + assert convertToString(updatedWebLink.getSharedLink().getAccess()).equals("collaborators"); + client + .getSharedLinksWebLinks() + .removeSharedLinkFromWebLink( + webLinkId, + new RemoveSharedLinkFromWebLinkRequestBody.Builder().sharedLink(null).build(), + new RemoveSharedLinkFromWebLinkQueryParams("shared_link")); + WebLink webLinkFromApiAfterRemove = + client + .getSharedLinksWebLinks() + .getSharedLinkForWebLink( + webLinkId, new GetSharedLinkForWebLinkQueryParams("shared_link")); + assert webLinkFromApiAfterRemove.getSharedLink() == null; + client.getWebLinks().deleteWebLinkById(webLinkId); + } +} diff --git a/src/test/java/com/box/sdkgen/test/shieldinformationbarrierreports/ShieldInformationBarrierReportsITest.java b/src/test/java/com/box/sdkgen/test/shieldinformationbarrierreports/ShieldInformationBarrierReportsITest.java new file mode 100644 index 000000000..87cb0235f --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/shieldinformationbarrierreports/ShieldInformationBarrierReportsITest.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.test.shieldinformationbarrierreports; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; +import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateShieldInformationBarrier; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.shieldinformationbarrierreports.GetShieldInformationBarrierReportsQueryParams; +import com.box.sdkgen.schemas.shieldinformationbarrier.ShieldInformationBarrier; +import com.box.sdkgen.schemas.shieldinformationbarrierbase.ShieldInformationBarrierBase; +import com.box.sdkgen.schemas.shieldinformationbarrierbase.ShieldInformationBarrierBaseTypeField; +import com.box.sdkgen.schemas.shieldinformationbarrierreference.ShieldInformationBarrierReference; +import com.box.sdkgen.schemas.shieldinformationbarrierreport.ShieldInformationBarrierReport; +import com.box.sdkgen.schemas.shieldinformationbarrierreports.ShieldInformationBarrierReports; +import org.junit.jupiter.api.Test; + +public class ShieldInformationBarrierReportsITest { + + @Test + public void testShieldInformationBarrierReports() { + BoxClient client = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); + String enterpriseId = getEnvVar("ENTERPRISE_ID"); + ShieldInformationBarrier barrier = getOrCreateShieldInformationBarrier(client, enterpriseId); + assert convertToString(barrier.getStatus()).equals("draft"); + assert convertToString(barrier.getType()).equals("shield_information_barrier"); + assert barrier.getEnterprise().getId().equals(enterpriseId); + assert convertToString(barrier.getEnterprise().getType()).equals("enterprise"); + String barrierId = barrier.getId(); + ShieldInformationBarrierReports existingReports = + client + .getShieldInformationBarrierReports() + .getShieldInformationBarrierReports( + new GetShieldInformationBarrierReportsQueryParams(barrierId)); + if (existingReports.getEntries().size() > 0) { + return; + } + ShieldInformationBarrierReport createdReport = + client + .getShieldInformationBarrierReports() + .createShieldInformationBarrierReport( + new ShieldInformationBarrierReference.Builder() + .shieldInformationBarrier( + new ShieldInformationBarrierBase.Builder() + .id(barrierId) + .type(ShieldInformationBarrierBaseTypeField.SHIELD_INFORMATION_BARRIER) + .build()) + .build()); + assert createdReport + .getShieldInformationBarrier() + .getShieldInformationBarrier() + .getId() + .equals(barrierId); + ShieldInformationBarrierReport retrievedReport = + client + .getShieldInformationBarrierReports() + .getShieldInformationBarrierReportById(createdReport.getId()); + assert retrievedReport.getId().equals(createdReport.getId()); + ShieldInformationBarrierReports retrievedReports = + client + .getShieldInformationBarrierReports() + .getShieldInformationBarrierReports( + new GetShieldInformationBarrierReportsQueryParams(barrierId)); + assert retrievedReports.getEntries().size() > 0; + } +} diff --git a/src/test/java/com/box/sdkgen/test/shieldinformationbarriers/ShieldInformationBarriersITest.java b/src/test/java/com/box/sdkgen/test/shieldinformationbarriers/ShieldInformationBarriersITest.java new file mode 100644 index 000000000..ae4fe0766 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/shieldinformationbarriers/ShieldInformationBarriersITest.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.test.shieldinformationbarriers; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; +import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateShieldInformationBarrier; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.shieldinformationbarriers.UpdateShieldInformationBarrierStatusRequestBody; +import com.box.sdkgen.managers.shieldinformationbarriers.UpdateShieldInformationBarrierStatusRequestBodyStatusField; +import com.box.sdkgen.schemas.shieldinformationbarrier.ShieldInformationBarrier; +import com.box.sdkgen.schemas.shieldinformationbarriers.ShieldInformationBarriers; +import org.junit.jupiter.api.Test; + +public class ShieldInformationBarriersITest { + + @Test + public void testShieldInformationBarriers() { + BoxClient client = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); + String enterpriseId = getEnvVar("ENTERPRISE_ID"); + ShieldInformationBarrier barrier = getOrCreateShieldInformationBarrier(client, enterpriseId); + assert convertToString(barrier.getStatus()).equals("draft"); + assert convertToString(barrier.getType()).equals("shield_information_barrier"); + assert barrier.getEnterprise().getId().equals(enterpriseId); + assert convertToString(barrier.getEnterprise().getType()).equals("enterprise"); + String barrierId = barrier.getId(); + ShieldInformationBarrier barrierFromApi = + client.getShieldInformationBarriers().getShieldInformationBarrierById(barrierId); + assert barrierFromApi.getId().equals(barrierId); + ShieldInformationBarriers barriers = + client.getShieldInformationBarriers().getShieldInformationBarriers(); + assert barriers.getEntries().size() == 1; + assertThrows( + RuntimeException.class, + () -> + client + .getShieldInformationBarriers() + .updateShieldInformationBarrierStatus( + new UpdateShieldInformationBarrierStatusRequestBody( + barrierId, + UpdateShieldInformationBarrierStatusRequestBodyStatusField.DISABLED))); + } +} diff --git a/src/test/java/com/box/sdkgen/test/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembersITest.java b/src/test/java/com/box/sdkgen/test/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembersITest.java new file mode 100644 index 000000000..078509805 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembersITest.java @@ -0,0 +1,83 @@ +package com.box.sdkgen.test.shieldinformationbarriersegmentmembers; + +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; +import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateShieldInformationBarrier; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.shieldinformationbarriersegmentmembers.CreateShieldInformationBarrierSegmentMemberRequestBody; +import com.box.sdkgen.managers.shieldinformationbarriersegmentmembers.CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField; +import com.box.sdkgen.managers.shieldinformationbarriersegmentmembers.CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField; +import com.box.sdkgen.managers.shieldinformationbarriersegmentmembers.GetShieldInformationBarrierSegmentMembersQueryParams; +import com.box.sdkgen.managers.shieldinformationbarriersegments.CreateShieldInformationBarrierSegmentRequestBody; +import com.box.sdkgen.schemas.shieldinformationbarrier.ShieldInformationBarrier; +import com.box.sdkgen.schemas.shieldinformationbarrierbase.ShieldInformationBarrierBase; +import com.box.sdkgen.schemas.shieldinformationbarrierbase.ShieldInformationBarrierBaseTypeField; +import com.box.sdkgen.schemas.shieldinformationbarriersegment.ShieldInformationBarrierSegment; +import com.box.sdkgen.schemas.shieldinformationbarriersegmentmember.ShieldInformationBarrierSegmentMember; +import com.box.sdkgen.schemas.shieldinformationbarriersegmentmembers.ShieldInformationBarrierSegmentMembers; +import com.box.sdkgen.schemas.userbase.UserBase; +import org.junit.jupiter.api.Test; + +public class ShieldInformationBarrierSegmentMembersITest { + + @Test + public void testShieldInformationBarrierSegmentMembers() { + BoxClient client = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); + String enterpriseId = getEnvVar("ENTERPRISE_ID"); + ShieldInformationBarrier barrier = getOrCreateShieldInformationBarrier(client, enterpriseId); + String barrierId = barrier.getId(); + String segmentName = getUuid(); + ShieldInformationBarrierSegment segment = + client + .getShieldInformationBarrierSegments() + .createShieldInformationBarrierSegment( + new CreateShieldInformationBarrierSegmentRequestBody( + new ShieldInformationBarrierBase.Builder() + .id(barrierId) + .type(ShieldInformationBarrierBaseTypeField.SHIELD_INFORMATION_BARRIER) + .build(), + segmentName)); + assert segment.getName().equals(segmentName); + ShieldInformationBarrierSegmentMember segmentMember = + client + .getShieldInformationBarrierSegmentMembers() + .createShieldInformationBarrierSegmentMember( + new CreateShieldInformationBarrierSegmentMemberRequestBody( + new CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField + .Builder() + .id(segment.getId()) + .type( + CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField + .SHIELD_INFORMATION_BARRIER_SEGMENT) + .build(), + new UserBase(getEnvVar("USER_ID")))); + assert segmentMember.getUser().getId().equals(getEnvVar("USER_ID")); + assert segmentMember.getShieldInformationBarrierSegment().getId().equals(segment.getId()); + ShieldInformationBarrierSegmentMembers segmentMembers = + client + .getShieldInformationBarrierSegmentMembers() + .getShieldInformationBarrierSegmentMembers( + new GetShieldInformationBarrierSegmentMembersQueryParams(segment.getId())); + assert segmentMembers.getEntries().size() > 0; + ShieldInformationBarrierSegmentMember segmentMemberGet = + client + .getShieldInformationBarrierSegmentMembers() + .getShieldInformationBarrierSegmentMemberById(segmentMember.getId()); + assert segmentMemberGet.getId().equals(segmentMember.getId()); + client + .getShieldInformationBarrierSegmentMembers() + .deleteShieldInformationBarrierSegmentMemberById(segmentMember.getId()); + assertThrows( + RuntimeException.class, + () -> + client + .getShieldInformationBarrierSegmentMembers() + .getShieldInformationBarrierSegmentMemberById(segmentMember.getId())); + client + .getShieldInformationBarrierSegments() + .deleteShieldInformationBarrierSegmentById(segment.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictionsITest.java b/src/test/java/com/box/sdkgen/test/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictionsITest.java new file mode 100644 index 000000000..c0fe6e8f4 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictionsITest.java @@ -0,0 +1,115 @@ +package com.box.sdkgen.test.shieldinformationbarriersegmentrestrictions; + +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; +import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateShieldInformationBarrier; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.shieldinformationbarriersegmentrestrictions.CreateShieldInformationBarrierSegmentRestrictionRequestBody; +import com.box.sdkgen.managers.shieldinformationbarriersegmentrestrictions.CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField; +import com.box.sdkgen.managers.shieldinformationbarriersegmentrestrictions.CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField; +import com.box.sdkgen.managers.shieldinformationbarriersegmentrestrictions.CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField; +import com.box.sdkgen.managers.shieldinformationbarriersegmentrestrictions.CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField; +import com.box.sdkgen.managers.shieldinformationbarriersegmentrestrictions.CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeField; +import com.box.sdkgen.managers.shieldinformationbarriersegmentrestrictions.GetShieldInformationBarrierSegmentRestrictionsQueryParams; +import com.box.sdkgen.managers.shieldinformationbarriersegments.CreateShieldInformationBarrierSegmentRequestBody; +import com.box.sdkgen.schemas.shieldinformationbarrier.ShieldInformationBarrier; +import com.box.sdkgen.schemas.shieldinformationbarrierbase.ShieldInformationBarrierBase; +import com.box.sdkgen.schemas.shieldinformationbarrierbase.ShieldInformationBarrierBaseTypeField; +import com.box.sdkgen.schemas.shieldinformationbarriersegment.ShieldInformationBarrierSegment; +import com.box.sdkgen.schemas.shieldinformationbarriersegmentrestriction.ShieldInformationBarrierSegmentRestriction; +import com.box.sdkgen.schemas.shieldinformationbarriersegmentrestrictions.ShieldInformationBarrierSegmentRestrictions; +import org.junit.jupiter.api.Test; + +public class ShieldInformationBarrierSegmentRestrictionsITest { + + @Test + public void testShieldInformationBarrierSegmentRestrictions() { + BoxClient client = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); + String enterpriseId = getEnvVar("ENTERPRISE_ID"); + ShieldInformationBarrier barrier = getOrCreateShieldInformationBarrier(client, enterpriseId); + String barrierId = barrier.getId(); + ShieldInformationBarrierSegment segment = + client + .getShieldInformationBarrierSegments() + .createShieldInformationBarrierSegment( + new CreateShieldInformationBarrierSegmentRequestBody.Builder( + new ShieldInformationBarrierBase.Builder() + .id(barrierId) + .type(ShieldInformationBarrierBaseTypeField.SHIELD_INFORMATION_BARRIER) + .build(), + getUuid()) + .description("barrier segment description") + .build()); + String segmentId = segment.getId(); + ShieldInformationBarrierSegment segmentToRestrict = + client + .getShieldInformationBarrierSegments() + .createShieldInformationBarrierSegment( + new CreateShieldInformationBarrierSegmentRequestBody.Builder( + new ShieldInformationBarrierBase.Builder() + .id(barrierId) + .type(ShieldInformationBarrierBaseTypeField.SHIELD_INFORMATION_BARRIER) + .build(), + getUuid()) + .description("barrier segment description") + .build()); + String segmentToRestrictId = segmentToRestrict.getId(); + ShieldInformationBarrierSegmentRestriction segmentRestriction = + client + .getShieldInformationBarrierSegmentRestrictions() + .createShieldInformationBarrierSegmentRestriction( + new CreateShieldInformationBarrierSegmentRestrictionRequestBody.Builder( + new CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField + .Builder() + .id(segmentId) + .type( + CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField + .SHIELD_INFORMATION_BARRIER_SEGMENT) + .build(), + new CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField + .Builder() + .id(segmentToRestrictId) + .type( + CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField + .SHIELD_INFORMATION_BARRIER_SEGMENT) + .build()) + .type( + CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeField + .SHIELD_INFORMATION_BARRIER_SEGMENT_RESTRICTION) + .build()); + String segmentRestrictionId = segmentRestriction.getId(); + assert segmentRestriction.getShieldInformationBarrierSegment().getId().equals(segmentId); + ShieldInformationBarrierSegmentRestrictions segmentRestrictions = + client + .getShieldInformationBarrierSegmentRestrictions() + .getShieldInformationBarrierSegmentRestrictions( + new GetShieldInformationBarrierSegmentRestrictionsQueryParams(segmentId)); + assert segmentRestrictions.getEntries().size() > 0; + ShieldInformationBarrierSegmentRestriction segmentRestrictionFromApi = + client + .getShieldInformationBarrierSegmentRestrictions() + .getShieldInformationBarrierSegmentRestrictionById(segmentRestrictionId); + assert segmentRestrictionFromApi.getId().equals(segmentRestrictionId); + assert segmentRestrictionFromApi.getShieldInformationBarrierSegment().getId().equals(segmentId); + assert segmentRestrictionFromApi.getRestrictedSegment().getId().equals(segmentToRestrictId); + assert segmentRestrictionFromApi.getShieldInformationBarrier().getId().equals(barrierId); + client + .getShieldInformationBarrierSegmentRestrictions() + .deleteShieldInformationBarrierSegmentRestrictionById(segmentRestrictionId); + assertThrows( + RuntimeException.class, + () -> + client + .getShieldInformationBarrierSegmentRestrictions() + .getShieldInformationBarrierSegmentRestrictionById(segmentRestrictionId)); + client + .getShieldInformationBarrierSegments() + .deleteShieldInformationBarrierSegmentById(segmentId); + client + .getShieldInformationBarrierSegments() + .deleteShieldInformationBarrierSegmentById(segmentToRestrictId); + } +} diff --git a/src/test/java/com/box/sdkgen/test/shieldinformationbarriersegments/ShieldInformationBarrierSegmentsITest.java b/src/test/java/com/box/sdkgen/test/shieldinformationbarriersegments/ShieldInformationBarrierSegmentsITest.java new file mode 100644 index 000000000..07a3c328d --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/shieldinformationbarriersegments/ShieldInformationBarrierSegmentsITest.java @@ -0,0 +1,80 @@ +package com.box.sdkgen.test.shieldinformationbarriersegments; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; +import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateShieldInformationBarrier; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.shieldinformationbarriersegments.CreateShieldInformationBarrierSegmentRequestBody; +import com.box.sdkgen.managers.shieldinformationbarriersegments.GetShieldInformationBarrierSegmentsQueryParams; +import com.box.sdkgen.managers.shieldinformationbarriersegments.UpdateShieldInformationBarrierSegmentByIdRequestBody; +import com.box.sdkgen.schemas.shieldinformationbarrier.ShieldInformationBarrier; +import com.box.sdkgen.schemas.shieldinformationbarrierbase.ShieldInformationBarrierBase; +import com.box.sdkgen.schemas.shieldinformationbarrierbase.ShieldInformationBarrierBaseTypeField; +import com.box.sdkgen.schemas.shieldinformationbarriersegment.ShieldInformationBarrierSegment; +import com.box.sdkgen.schemas.shieldinformationbarriersegments.ShieldInformationBarrierSegments; +import org.junit.jupiter.api.Test; + +public class ShieldInformationBarrierSegmentsITest { + + @Test + public void testShieldInformationBarrierSegments() { + BoxClient client = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); + String enterpriseId = getEnvVar("ENTERPRISE_ID"); + ShieldInformationBarrier barrier = getOrCreateShieldInformationBarrier(client, enterpriseId); + String barrierId = barrier.getId(); + String segmentName = getUuid(); + String segmentDescription = "barrier segment description"; + ShieldInformationBarrierSegment segment = + client + .getShieldInformationBarrierSegments() + .createShieldInformationBarrierSegment( + new CreateShieldInformationBarrierSegmentRequestBody.Builder( + new ShieldInformationBarrierBase.Builder() + .id(barrierId) + .type(ShieldInformationBarrierBaseTypeField.SHIELD_INFORMATION_BARRIER) + .build(), + segmentName) + .description(segmentDescription) + .build()); + assert segment.getName().equals(segmentName); + ShieldInformationBarrierSegments segments = + client + .getShieldInformationBarrierSegments() + .getShieldInformationBarrierSegments( + new GetShieldInformationBarrierSegmentsQueryParams(barrierId)); + assert segments.getEntries().size() > 0; + String segmentId = segment.getId(); + ShieldInformationBarrierSegment segmentFromApi = + client + .getShieldInformationBarrierSegments() + .getShieldInformationBarrierSegmentById(segmentId); + assert convertToString(segmentFromApi.getType()).equals("shield_information_barrier_segment"); + assert segmentFromApi.getId().equals(segmentId); + assert segmentFromApi.getName().equals(segmentName); + assert segmentFromApi.getDescription().equals(segmentDescription); + assert segmentFromApi.getShieldInformationBarrier().getId().equals(barrierId); + String updatedSegmentDescription = "updated barrier segment description"; + ShieldInformationBarrierSegment updatedSegment = + client + .getShieldInformationBarrierSegments() + .updateShieldInformationBarrierSegmentById( + segmentId, + new UpdateShieldInformationBarrierSegmentByIdRequestBody.Builder() + .description(updatedSegmentDescription) + .build()); + assert updatedSegment.getDescription().equals(updatedSegmentDescription); + client + .getShieldInformationBarrierSegments() + .deleteShieldInformationBarrierSegmentById(segmentId); + assertThrows( + RuntimeException.class, + () -> + client + .getShieldInformationBarrierSegments() + .getShieldInformationBarrierSegmentById(segmentId)); + } +} diff --git a/src/test/java/com/box/sdkgen/test/shieldlists/ShieldListsITest.java b/src/test/java/com/box/sdkgen/test/shieldlists/ShieldListsITest.java new file mode 100644 index 000000000..af932c74f --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/shieldlists/ShieldListsITest.java @@ -0,0 +1,107 @@ +package com.box.sdkgen.test.shieldlists; + +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentcountryv2025r0.ShieldListContentCountryV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentcountryv2025r0.ShieldListContentCountryV2025R0TypeField; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentdomainv2025r0.ShieldListContentDomainV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentdomainv2025r0.ShieldListContentDomainV2025R0TypeField; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentemailv2025r0.ShieldListContentEmailV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentemailv2025r0.ShieldListContentEmailV2025R0TypeField; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentipv2025r0.ShieldListContentIpV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistcontentipv2025r0.ShieldListContentIpV2025R0TypeField; +import com.box.sdkgen.schemas.v2025r0.shieldlistscreatev2025r0.ShieldListsCreateV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistsupdatev2025r0.ShieldListsUpdateV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistsv2025r0.ShieldListsV2025R0; +import com.box.sdkgen.schemas.v2025r0.shieldlistv2025r0.ShieldListV2025R0; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class ShieldListsITest { + + private static final String userId = getEnvVar("USER_ID"); + + private static final BoxClient client = getDefaultClientWithUserSubject(userId); + + @Test + public void testCreateGetUpdateDeleteShieldList() { + String shieldListCountryName = String.join("", getUuid(), "shieldListCountry"); + ShieldListV2025R0 shieldListCountry = + client + .getShieldLists() + .createShieldListV2025R0( + new ShieldListsCreateV2025R0.Builder( + shieldListCountryName, + new ShieldListContentCountryV2025R0.Builder(Arrays.asList("US", "PL")) + .type(ShieldListContentCountryV2025R0TypeField.COUNTRY) + .build()) + .description("A list of things that are shielded") + .build()); + String shieldListContentDomainName = String.join("", getUuid(), "shieldListContentDomain"); + ShieldListV2025R0 shieldListContentDomain = + client + .getShieldLists() + .createShieldListV2025R0( + new ShieldListsCreateV2025R0.Builder( + shieldListContentDomainName, + new ShieldListContentDomainV2025R0.Builder( + Arrays.asList("box.com", "example.com")) + .type(ShieldListContentDomainV2025R0TypeField.DOMAIN) + .build()) + .description("A list of things that are shielded") + .build()); + String shieldListContentEmailName = String.join("", getUuid(), "shieldListContentEmail"); + ShieldListV2025R0 shieldListContentEmail = + client + .getShieldLists() + .createShieldListV2025R0( + new ShieldListsCreateV2025R0.Builder( + shieldListContentEmailName, + new ShieldListContentEmailV2025R0.Builder( + Arrays.asList("test@box.com", "test@example.com")) + .type(ShieldListContentEmailV2025R0TypeField.EMAIL) + .build()) + .description("A list of things that are shielded") + .build()); + String shieldListContentIpName = String.join("", getUuid(), "shieldListContentIp"); + ShieldListV2025R0 shieldListContentIp = + client + .getShieldLists() + .createShieldListV2025R0( + new ShieldListsCreateV2025R0.Builder( + shieldListContentIpName, + new ShieldListContentIpV2025R0.Builder( + Arrays.asList("127.0.0.1", "80.12.12.12/24")) + .type(ShieldListContentIpV2025R0TypeField.IP) + .build()) + .description("A list of things that are shielded") + .build()); + ShieldListsV2025R0 shieldLists = client.getShieldLists().getShieldListsV2025R0(); + assert shieldLists.getEntries().size() > 0; + ShieldListV2025R0 getShieldListCountry = + client.getShieldLists().getShieldListByIdV2025R0(shieldListCountry.getId()); + assert getShieldListCountry.getName().equals(shieldListCountryName); + assert getShieldListCountry.getDescription().equals("A list of things that are shielded"); + client + .getShieldLists() + .updateShieldListByIdV2025R0( + shieldListCountry.getId(), + new ShieldListsUpdateV2025R0.Builder( + shieldListCountryName, + new ShieldListContentCountryV2025R0.Builder(Arrays.asList("US")) + .type(ShieldListContentCountryV2025R0TypeField.COUNTRY) + .build()) + .description("Updated description") + .build()); + ShieldListV2025R0 getShieldListCountryUpdated = + client.getShieldLists().getShieldListByIdV2025R0(shieldListCountry.getId()); + assert getShieldListCountryUpdated.getDescription().equals("Updated description"); + client.getShieldLists().deleteShieldListByIdV2025R0(shieldListCountry.getId()); + client.getShieldLists().deleteShieldListByIdV2025R0(shieldListContentDomain.getId()); + client.getShieldLists().deleteShieldListByIdV2025R0(shieldListContentEmail.getId()); + client.getShieldLists().deleteShieldListByIdV2025R0(shieldListContentIp.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/signrequests/SignRequestsITest.java b/src/test/java/com/box/sdkgen/test/signrequests/SignRequestsITest.java new file mode 100644 index 000000000..1003a3cff --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/signrequests/SignRequestsITest.java @@ -0,0 +1,162 @@ +package com.box.sdkgen.test.signrequests; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.dateFromString; +import static com.box.sdkgen.internal.utils.UtilsManager.dateToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.createNewFolder; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.folders.DeleteFolderByIdQueryParams; +import com.box.sdkgen.schemas.filebase.FileBase; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.signrequest.SignRequest; +import com.box.sdkgen.schemas.signrequestcreaterequest.SignRequestCreateRequest; +import com.box.sdkgen.schemas.signrequestcreatesigner.SignRequestCreateSigner; +import com.box.sdkgen.schemas.signrequestcreatesigner.SignRequestCreateSignerRoleField; +import com.box.sdkgen.schemas.signrequestprefilltag.SignRequestPrefillTag; +import com.box.sdkgen.schemas.signrequests.SignRequests; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class SignRequestsITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testCreateGetCancelAndListSignRequest() { + String signerEmail = String.join("", getUuid(), "@box.com"); + FileFull fileToSign = uploadNewFile(); + FolderFull destinationFolder = createNewFolder(); + SignRequest createdSignRequest = + client + .getSignRequests() + .createSignRequest( + new SignRequestCreateRequest.Builder( + Arrays.asList( + new SignRequestCreateSigner.Builder() + .email(signerEmail) + .role(SignRequestCreateSignerRoleField.SIGNER) + .isInPerson(false) + .embedUrlExternalUserId("123") + .declinedRedirectUrl("https://www.box.com") + .loginRequired(false) + .password("password") + .suppressNotifications(true) + .build())) + .sourceFiles(Arrays.asList(new FileBase(fileToSign.getId()))) + .parentFolder(new FolderMini(destinationFolder.getId())) + .isDocumentPreparationNeeded(false) + .redirectUrl("https://www.box.com") + .declinedRedirectUrl("https://www.box.com") + .areTextSignaturesEnabled(true) + .emailSubject("Sign this document") + .emailMessage("Please sign this document") + .areRemindersEnabled(true) + .name("Sign Request") + .prefillTags( + Arrays.asList( + new SignRequestPrefillTag.Builder() + .documentTagId("0") + .dateValue(dateFromString("2035-01-01")) + .build())) + .daysValid(30L) + .externalId("123") + .externalSystemName("BoxSignIntegration") + .build()); + assert createdSignRequest.getAreRemindersEnabled() == true; + assert createdSignRequest.getAreTextSignaturesEnabled() == true; + assert createdSignRequest.getDaysValid() == 30; + assert createdSignRequest.getDeclinedRedirectUrl().equals("https://www.box.com"); + assert createdSignRequest.getEmailMessage().equals("Please sign this document"); + assert createdSignRequest.getEmailSubject().equals("Sign this document"); + assert createdSignRequest.getExternalId().equals("123"); + assert createdSignRequest.getExternalSystemName().equals("BoxSignIntegration"); + assert createdSignRequest.getIsDocumentPreparationNeeded() == false; + assert createdSignRequest.getName().equals("Sign Request.pdf"); + assert createdSignRequest.getRedirectUrl().equals("https://www.box.com"); + assert createdSignRequest + .getSignFiles() + .getFiles() + .get(0) + .getName() + .equals(createdSignRequest.getName()); + assert createdSignRequest.getSigners().get(1).getEmail().equals(signerEmail); + assert createdSignRequest.getSigners().get(1).getSuppressNotifications() == true; + assert createdSignRequest + .getSigners() + .get(1) + .getDeclinedRedirectUrl() + .equals("https://www.box.com"); + assert createdSignRequest.getSigners().get(1).getEmbedUrlExternalUserId().equals("123"); + assert createdSignRequest.getSigners().get(1).getIsInPerson() == false; + assert createdSignRequest.getSigners().get(1).getLoginRequired() == false; + assert convertToString(createdSignRequest.getSigners().get(1).getRole()).equals("signer"); + assert createdSignRequest.getParentFolder().getId().equals(destinationFolder.getId()); + assert dateToString(createdSignRequest.getPrefillTags().get(0).getDateValue()) + .equals("2035-01-01"); + SignRequest newSignRequest = + client.getSignRequests().getSignRequestById(createdSignRequest.getId()); + assert newSignRequest + .getSignFiles() + .getFiles() + .get(0) + .getName() + .equals(createdSignRequest.getName()); + assert newSignRequest.getSigners().get(1).getEmail().equals(signerEmail); + assert newSignRequest.getParentFolder().getId().equals(destinationFolder.getId()); + SignRequest cancelledSignRequest = + client.getSignRequests().cancelSignRequest(createdSignRequest.getId()); + assert convertToString(cancelledSignRequest.getStatus()).equals("cancelled"); + SignRequests signRequests = client.getSignRequests().getSignRequests(); + assert convertToString(signRequests.getEntries().get(0).getType()).equals("sign-request"); + client + .getFolders() + .deleteFolderById( + destinationFolder.getId(), + new DeleteFolderByIdQueryParams.Builder().recursive(true).build()); + client.getFiles().deleteFileById(fileToSign.getId()); + } + + @Test + public void testCreateSignRequestWithSignerGroupId() { + String signer1Email = String.join("", getUuid(), "@box.com"); + String signer2Email = String.join("", getUuid(), "@box.com"); + FileFull fileToSign = uploadNewFile(); + FolderFull destinationFolder = createNewFolder(); + SignRequest createdSignRequest = + client + .getSignRequests() + .createSignRequest( + new SignRequestCreateRequest.Builder( + Arrays.asList( + new SignRequestCreateSigner.Builder() + .email(signer1Email) + .signerGroupId("user") + .build(), + new SignRequestCreateSigner.Builder() + .email(signer2Email) + .signerGroupId("user") + .build())) + .sourceFiles(Arrays.asList(new FileBase(fileToSign.getId()))) + .parentFolder(new FolderMini(destinationFolder.getId())) + .build()); + assert createdSignRequest.getSigners().size() == 3; + assert !(createdSignRequest.getSigners().get(1).getSignerGroupId() == null); + assert createdSignRequest + .getSigners() + .get(1) + .getSignerGroupId() + .equals(createdSignRequest.getSigners().get(2).getSignerGroupId()); + client + .getFolders() + .deleteFolderById( + destinationFolder.getId(), + new DeleteFolderByIdQueryParams.Builder().recursive(true).build()); + client.getFiles().deleteFileById(fileToSign.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/signtemplates/SignTemplatesITest.java b/src/test/java/com/box/sdkgen/test/signtemplates/SignTemplatesITest.java new file mode 100644 index 000000000..981530aa8 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/signtemplates/SignTemplatesITest.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.test.signtemplates; + +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.signtemplates.GetSignTemplatesQueryParams; +import com.box.sdkgen.schemas.signtemplate.SignTemplate; +import com.box.sdkgen.schemas.signtemplates.SignTemplates; +import org.junit.jupiter.api.Test; + +public class SignTemplatesITest { + + @Test + public void testGetSignTemplates() { + BoxClient client = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); + SignTemplates signTemplates = + client + .getSignTemplates() + .getSignTemplates(new GetSignTemplatesQueryParams.Builder().limit(2L).build()); + assert signTemplates.getEntries().size() >= 0; + } + + @Test + public void testGetSignTemplate() { + BoxClient client = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); + SignTemplates signTemplates = + client + .getSignTemplates() + .getSignTemplates(new GetSignTemplatesQueryParams.Builder().limit(2L).build()); + assert signTemplates.getEntries().size() >= 0; + if (signTemplates.getEntries().size() > 0) { + SignTemplate signTemplate = + client.getSignTemplates().getSignTemplateById(signTemplates.getEntries().get(0).getId()); + assert signTemplate.getId().equals(signTemplates.getEntries().get(0).getId()); + assert signTemplate.getSourceFiles().size() > 0; + assert !(signTemplate.getName().equals("")); + assert !(signTemplate.getParentFolder().getId().equals("")); + } + } +} diff --git a/src/test/java/com/box/sdkgen/test/skills/SkillsITest.java b/src/test/java/com/box/sdkgen/test/skills/SkillsITest.java new file mode 100644 index 000000000..decb27e3d --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/skills/SkillsITest.java @@ -0,0 +1,106 @@ +package com.box.sdkgen.test.skills; + +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.skills.CreateBoxSkillCardsOnFileRequestBody; +import com.box.sdkgen.managers.skills.UpdateBoxSkillCardsOnFileRequestBody; +import com.box.sdkgen.managers.skills.UpdateBoxSkillCardsOnFileRequestBodyOpField; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.keywordskillcard.KeywordSkillCard; +import com.box.sdkgen.schemas.keywordskillcard.KeywordSkillCardEntriesField; +import com.box.sdkgen.schemas.keywordskillcard.KeywordSkillCardInvocationField; +import com.box.sdkgen.schemas.keywordskillcard.KeywordSkillCardInvocationTypeField; +import com.box.sdkgen.schemas.keywordskillcard.KeywordSkillCardSkillCardTitleField; +import com.box.sdkgen.schemas.keywordskillcard.KeywordSkillCardSkillCardTypeField; +import com.box.sdkgen.schemas.keywordskillcard.KeywordSkillCardSkillField; +import com.box.sdkgen.schemas.keywordskillcard.KeywordSkillCardSkillTypeField; +import com.box.sdkgen.schemas.keywordskillcard.KeywordSkillCardTypeField; +import com.box.sdkgen.schemas.keywordskillcardorstatusskillcardortimelineskillcardortranscriptskillcard.KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard; +import com.box.sdkgen.schemas.skillcardsmetadata.SkillCardsMetadata; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Test; + +public class SkillsITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testSkillsCardsCrud() { + FileFull file = uploadNewFile(); + String skillId = getUuid(); + String invocationId = getUuid(); + String titleMessage = "License Plates"; + KeywordSkillCard cardToCreate = + new KeywordSkillCard.Builder( + new KeywordSkillCardSkillField.Builder(skillId) + .type(KeywordSkillCardSkillTypeField.SERVICE) + .build(), + new KeywordSkillCardInvocationField.Builder(invocationId) + .type(KeywordSkillCardInvocationTypeField.SKILL_INVOCATION) + .build(), + Arrays.asList(new KeywordSkillCardEntriesField.Builder().text("DN86 BOX").build())) + .type(KeywordSkillCardTypeField.SKILL_CARD) + .skillCardType(KeywordSkillCardSkillCardTypeField.KEYWORD) + .skillCardTitle( + new KeywordSkillCardSkillCardTitleField.Builder(titleMessage) + .code("license-plates") + .build()) + .build(); + List cardsToCreate = + Arrays.asList( + new KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard( + cardToCreate)); + SkillCardsMetadata skillCardsMetadata = + client + .getSkills() + .createBoxSkillCardsOnFile( + file.getId(), new CreateBoxSkillCardsOnFileRequestBody(cardsToCreate)); + assert skillCardsMetadata.getCards().size() == 1; + KeywordSkillCard keywordSkillCard = skillCardsMetadata.getCards().get(0).getKeywordSkillCard(); + assert keywordSkillCard.getSkill().getId().equals(skillId); + assert keywordSkillCard.getSkillCardTitle().getMessage().equals(titleMessage); + String updatedTitleMessage = "Updated License Plates"; + KeywordSkillCard cardToUpdate = + new KeywordSkillCard.Builder( + new KeywordSkillCardSkillField.Builder(skillId) + .type(KeywordSkillCardSkillTypeField.SERVICE) + .build(), + new KeywordSkillCardInvocationField.Builder(invocationId) + .type(KeywordSkillCardInvocationTypeField.SKILL_INVOCATION) + .build(), + Arrays.asList(new KeywordSkillCardEntriesField.Builder().text("DN86 BOX").build())) + .type(KeywordSkillCardTypeField.SKILL_CARD) + .skillCardType(KeywordSkillCardSkillCardTypeField.KEYWORD) + .skillCardTitle( + new KeywordSkillCardSkillCardTitleField.Builder(updatedTitleMessage) + .code("license-plates") + .build()) + .build(); + SkillCardsMetadata updatedSkillCardsMetadata = + client + .getSkills() + .updateBoxSkillCardsOnFile( + file.getId(), + Arrays.asList( + new UpdateBoxSkillCardsOnFileRequestBody.Builder() + .op(UpdateBoxSkillCardsOnFileRequestBodyOpField.REPLACE) + .path("/cards/0") + .value(cardToUpdate) + .build())); + KeywordSkillCard updatedKeywordSkillCard = + updatedSkillCardsMetadata.getCards().get(0).getKeywordSkillCard(); + assert updatedKeywordSkillCard.getSkill().getId().equals(skillId); + assert updatedKeywordSkillCard.getSkillCardTitle().getMessage().equals(updatedTitleMessage); + SkillCardsMetadata receivedSkillCardsMetadata = + client.getSkills().getBoxSkillCardsOnFile(file.getId()); + KeywordSkillCard receivedKeywordSkillCard = + receivedSkillCardsMetadata.getCards().get(0).getKeywordSkillCard(); + assert receivedKeywordSkillCard.getSkill().getId().equals(skillId); + client.getSkills().deleteBoxSkillCardsFromFile(file.getId()); + client.getFiles().deleteFileById(file.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/storagepolicicyassignments/StoragePolicicyAssignmentsITest.java b/src/test/java/com/box/sdkgen/test/storagepolicicyassignments/StoragePolicicyAssignmentsITest.java new file mode 100644 index 000000000..ee2e1c5eb --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/storagepolicicyassignments/StoragePolicicyAssignmentsITest.java @@ -0,0 +1,90 @@ +package com.box.sdkgen.test.storagepolicicyassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.storagepolicyassignments.CreateStoragePolicyAssignmentRequestBody; +import com.box.sdkgen.managers.storagepolicyassignments.CreateStoragePolicyAssignmentRequestBodyAssignedToField; +import com.box.sdkgen.managers.storagepolicyassignments.CreateStoragePolicyAssignmentRequestBodyAssignedToTypeField; +import com.box.sdkgen.managers.storagepolicyassignments.CreateStoragePolicyAssignmentRequestBodyStoragePolicyField; +import com.box.sdkgen.managers.storagepolicyassignments.GetStoragePolicyAssignmentsQueryParams; +import com.box.sdkgen.managers.storagepolicyassignments.GetStoragePolicyAssignmentsQueryParamsResolvedForTypeField; +import com.box.sdkgen.managers.storagepolicyassignments.UpdateStoragePolicyAssignmentByIdRequestBody; +import com.box.sdkgen.managers.storagepolicyassignments.UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField; +import com.box.sdkgen.managers.users.CreateUserRequestBody; +import com.box.sdkgen.schemas.storagepolicies.StoragePolicies; +import com.box.sdkgen.schemas.storagepolicy.StoragePolicy; +import com.box.sdkgen.schemas.storagepolicyassignment.StoragePolicyAssignment; +import com.box.sdkgen.schemas.storagepolicyassignments.StoragePolicyAssignments; +import com.box.sdkgen.schemas.userfull.UserFull; +import org.junit.jupiter.api.Test; + +public class StoragePolicicyAssignmentsITest { + + private static final String adminUserId = getEnvVar("USER_ID"); + + public static StoragePolicyAssignment getOrCreateStoragePolicyAssignment( + BoxClient client, String policyId, String userId) { + StoragePolicyAssignments storagePolicyAssignments = + client + .getStoragePolicyAssignments() + .getStoragePolicyAssignments( + new GetStoragePolicyAssignmentsQueryParams( + GetStoragePolicyAssignmentsQueryParamsResolvedForTypeField.USER, userId)); + if (storagePolicyAssignments.getEntries().size() > 0) { + if (convertToString(storagePolicyAssignments.getEntries().get(0).getAssignedTo().getType()) + .equals("user")) { + return storagePolicyAssignments.getEntries().get(0); + } + } + StoragePolicyAssignment storagePolicyAssignment = + client + .getStoragePolicyAssignments() + .createStoragePolicyAssignment( + new CreateStoragePolicyAssignmentRequestBody( + new CreateStoragePolicyAssignmentRequestBodyStoragePolicyField(policyId), + new CreateStoragePolicyAssignmentRequestBodyAssignedToField( + CreateStoragePolicyAssignmentRequestBodyAssignedToTypeField.USER, userId))); + return storagePolicyAssignment; + } + + @Test + public void testGetStoragePolicyAssignments() { + BoxClient client = getDefaultClientWithUserSubject(adminUserId); + String userName = getUuid(); + UserFull newUser = + client + .getUsers() + .createUser( + new CreateUserRequestBody.Builder(userName).isPlatformAccessOnly(true).build()); + StoragePolicies storagePolicies = client.getStoragePolicies().getStoragePolicies(); + StoragePolicy storagePolicy1 = storagePolicies.getEntries().get(0); + StoragePolicy storagePolicy2 = storagePolicies.getEntries().get(1); + StoragePolicyAssignment storagePolicyAssignment = + getOrCreateStoragePolicyAssignment(client, storagePolicy1.getId(), newUser.getId()); + assert convertToString(storagePolicyAssignment.getType()).equals("storage_policy_assignment"); + assert convertToString(storagePolicyAssignment.getAssignedTo().getType()).equals("user"); + assert storagePolicyAssignment.getAssignedTo().getId().equals(newUser.getId()); + StoragePolicyAssignment getStoragePolicyAssignment = + client + .getStoragePolicyAssignments() + .getStoragePolicyAssignmentById(storagePolicyAssignment.getId()); + assert getStoragePolicyAssignment.getId().equals(storagePolicyAssignment.getId()); + StoragePolicyAssignment updatedStoragePolicyAssignment = + client + .getStoragePolicyAssignments() + .updateStoragePolicyAssignmentById( + storagePolicyAssignment.getId(), + new UpdateStoragePolicyAssignmentByIdRequestBody( + new UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField( + storagePolicy2.getId()))); + assert updatedStoragePolicyAssignment.getStoragePolicy().getId().equals(storagePolicy2.getId()); + client + .getStoragePolicyAssignments() + .deleteStoragePolicyAssignmentById(storagePolicyAssignment.getId()); + client.getUsers().deleteUserById(newUser.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/storagepolicies/StoragePoliciesITest.java b/src/test/java/com/box/sdkgen/test/storagepolicies/StoragePoliciesITest.java new file mode 100644 index 000000000..d74a9bec8 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/storagepolicies/StoragePoliciesITest.java @@ -0,0 +1,26 @@ +package com.box.sdkgen.test.storagepolicies; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.schemas.storagepolicies.StoragePolicies; +import com.box.sdkgen.schemas.storagepolicy.StoragePolicy; +import org.junit.jupiter.api.Test; + +public class StoragePoliciesITest { + + private static final String userId = getEnvVar("USER_ID"); + + @Test + public void testGetStoragePolicies() { + BoxClient client = getDefaultClientWithUserSubject(userId); + StoragePolicies storagePolicies = client.getStoragePolicies().getStoragePolicies(); + StoragePolicy storagePolicy = storagePolicies.getEntries().get(0); + assert convertToString(storagePolicy.getType()).equals("storage_policy"); + StoragePolicy getStoragePolicy = + client.getStoragePolicies().getStoragePolicyById(storagePolicy.getId()); + assert getStoragePolicy.getId().equals(storagePolicy.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/taskassignments/TaskAssignmentsITest.java b/src/test/java/com/box/sdkgen/test/taskassignments/TaskAssignmentsITest.java new file mode 100644 index 000000000..e5d097cac --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/taskassignments/TaskAssignmentsITest.java @@ -0,0 +1,90 @@ +package com.box.sdkgen.test.taskassignments; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.dateTimeFromString; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.taskassignments.CreateTaskAssignmentRequestBody; +import com.box.sdkgen.managers.taskassignments.CreateTaskAssignmentRequestBodyAssignToField; +import com.box.sdkgen.managers.taskassignments.CreateTaskAssignmentRequestBodyTaskField; +import com.box.sdkgen.managers.taskassignments.CreateTaskAssignmentRequestBodyTaskTypeField; +import com.box.sdkgen.managers.taskassignments.UpdateTaskAssignmentByIdRequestBody; +import com.box.sdkgen.managers.taskassignments.UpdateTaskAssignmentByIdRequestBodyResolutionStateField; +import com.box.sdkgen.managers.tasks.CreateTaskRequestBody; +import com.box.sdkgen.managers.tasks.CreateTaskRequestBodyActionField; +import com.box.sdkgen.managers.tasks.CreateTaskRequestBodyCompletionRuleField; +import com.box.sdkgen.managers.tasks.CreateTaskRequestBodyItemField; +import com.box.sdkgen.managers.tasks.CreateTaskRequestBodyItemTypeField; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.task.Task; +import com.box.sdkgen.schemas.taskassignment.TaskAssignment; +import com.box.sdkgen.schemas.taskassignments.TaskAssignments; +import com.box.sdkgen.schemas.userfull.UserFull; +import java.util.Date; +import org.junit.jupiter.api.Test; + +public class TaskAssignmentsITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testCreateUpdateGetDeleteTaskAssignment() { + FileFull file = uploadNewFile(); + Date date = dateTimeFromString("2035-01-01T00:00:00Z"); + Task task = + client + .getTasks() + .createTask( + new CreateTaskRequestBody.Builder( + new CreateTaskRequestBodyItemField.Builder() + .id(file.getId()) + .type(CreateTaskRequestBodyItemTypeField.FILE) + .build()) + .action(CreateTaskRequestBodyActionField.REVIEW) + .message("test message") + .dueAt(date) + .completionRule(CreateTaskRequestBodyCompletionRuleField.ALL_ASSIGNEES) + .build()); + assert task.getMessage().equals("test message"); + assert task.getItem().getId().equals(file.getId()); + UserFull currentUser = client.getUsers().getUserMe(); + TaskAssignment taskAssignment = + client + .getTaskAssignments() + .createTaskAssignment( + new CreateTaskAssignmentRequestBody( + new CreateTaskAssignmentRequestBodyTaskField.Builder(task.getId()) + .type(CreateTaskAssignmentRequestBodyTaskTypeField.TASK) + .build(), + new CreateTaskAssignmentRequestBodyAssignToField.Builder() + .id(currentUser.getId()) + .build())); + assert taskAssignment.getItem().getId().equals(file.getId()); + assert taskAssignment.getAssignedTo().getId().equals(currentUser.getId()); + TaskAssignment taskAssignmentById = + client.getTaskAssignments().getTaskAssignmentById(taskAssignment.getId()); + assert taskAssignmentById.getId().equals(taskAssignment.getId()); + TaskAssignments taskAssignmentsOnTask = + client.getTaskAssignments().getTaskAssignments(task.getId()); + assert taskAssignmentsOnTask.getTotalCount() == 1; + TaskAssignment updatedTaskAssignment = + client + .getTaskAssignments() + .updateTaskAssignmentById( + taskAssignment.getId(), + new UpdateTaskAssignmentByIdRequestBody.Builder() + .message("updated message") + .resolutionState( + UpdateTaskAssignmentByIdRequestBodyResolutionStateField.APPROVED) + .build()); + assert updatedTaskAssignment.getMessage().equals("updated message"); + assert convertToString(updatedTaskAssignment.getResolutionState()).equals("approved"); + assertThrows( + RuntimeException.class, + () -> client.getTaskAssignments().deleteTaskAssignmentById(taskAssignment.getId())); + client.getFiles().deleteFileById(file.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/tasks/TasksITest.java b/src/test/java/com/box/sdkgen/test/tasks/TasksITest.java new file mode 100644 index 000000000..a43846d5f --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/tasks/TasksITest.java @@ -0,0 +1,73 @@ +package com.box.sdkgen.test.tasks; + +import static com.box.sdkgen.internal.utils.UtilsManager.dateTimeFromString; +import static com.box.sdkgen.internal.utils.UtilsManager.dateTimeToString; +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.tasks.CreateTaskRequestBody; +import com.box.sdkgen.managers.tasks.CreateTaskRequestBodyActionField; +import com.box.sdkgen.managers.tasks.CreateTaskRequestBodyCompletionRuleField; +import com.box.sdkgen.managers.tasks.CreateTaskRequestBodyItemField; +import com.box.sdkgen.managers.tasks.CreateTaskRequestBodyItemTypeField; +import com.box.sdkgen.managers.tasks.UpdateTaskByIdRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesParentField; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.files.Files; +import com.box.sdkgen.schemas.task.Task; +import com.box.sdkgen.schemas.tasks.Tasks; +import java.util.Date; +import org.junit.jupiter.api.Test; + +public class TasksITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testCreateUpdateGetDeleteTask() { + Files files = + client + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + getUuid(), new UploadFileRequestBodyAttributesParentField("0")), + generateByteStream(10))); + FileFull file = files.getEntries().get(0); + Date dateTime = dateTimeFromString("2035-01-01T00:00:00Z"); + Task task = + client + .getTasks() + .createTask( + new CreateTaskRequestBody.Builder( + new CreateTaskRequestBodyItemField.Builder() + .id(file.getId()) + .type(CreateTaskRequestBodyItemTypeField.FILE) + .build()) + .action(CreateTaskRequestBodyActionField.REVIEW) + .message("test message") + .dueAt(dateTime) + .completionRule(CreateTaskRequestBodyCompletionRuleField.ALL_ASSIGNEES) + .build()); + assert task.getMessage().equals("test message"); + assert task.getItem().getId().equals(file.getId()); + assert dateTimeToString(task.getDueAt()).equals(dateTimeToString(dateTime)); + Task taskById = client.getTasks().getTaskById(task.getId()); + assert taskById.getId().equals(task.getId()); + Tasks taskOnFile = client.getTasks().getFileTasks(file.getId()); + assert taskOnFile.getTotalCount() == 1; + Task updatedTask = + client + .getTasks() + .updateTaskById( + task.getId(), + new UpdateTaskByIdRequestBody.Builder().message("updated message").build()); + assert updatedTask.getMessage().equals("updated message"); + client.getTasks().deleteTaskById(task.getId()); + client.getFiles().deleteFileById(file.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/termsofservices/TermsOfServicesITest.java b/src/test/java/com/box/sdkgen/test/termsofservices/TermsOfServicesITest.java new file mode 100644 index 000000000..f3f55cae0 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/termsofservices/TermsOfServicesITest.java @@ -0,0 +1,42 @@ +package com.box.sdkgen.test.termsofservices; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateTermsOfServices; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.termsofservices.UpdateTermsOfServiceByIdRequestBody; +import com.box.sdkgen.managers.termsofservices.UpdateTermsOfServiceByIdRequestBodyStatusField; +import com.box.sdkgen.schemas.termsofservice.TermsOfService; +import com.box.sdkgen.schemas.termsofservices.TermsOfServices; +import org.junit.jupiter.api.Test; + +public class TermsOfServicesITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testGetTermsOfServices() { + TermsOfService tos = getOrCreateTermsOfServices(); + TermsOfService updatedTos1 = + client + .getTermsOfServices() + .updateTermsOfServiceById( + tos.getId(), + new UpdateTermsOfServiceByIdRequestBody( + UpdateTermsOfServiceByIdRequestBodyStatusField.DISABLED, "TOS")); + assert convertToString(updatedTos1.getStatus()).equals("disabled"); + assert updatedTos1.getText().equals("TOS"); + TermsOfService updatedTos2 = + client + .getTermsOfServices() + .updateTermsOfServiceById( + tos.getId(), + new UpdateTermsOfServiceByIdRequestBody( + UpdateTermsOfServiceByIdRequestBodyStatusField.DISABLED, "Updated TOS")); + assert convertToString(updatedTos2.getStatus()).equals("disabled"); + assert updatedTos2.getText().equals("Updated TOS"); + TermsOfServices listTos = client.getTermsOfServices().getTermsOfService(); + assert listTos.getTotalCount() > 0; + } +} diff --git a/src/test/java/com/box/sdkgen/test/termsofserviceuserstatuses/TermsOfServiceUserStatusesITest.java b/src/test/java/com/box/sdkgen/test/termsofserviceuserstatuses/TermsOfServiceUserStatusesITest.java new file mode 100644 index 000000000..807d2d1ca --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/termsofserviceuserstatuses/TermsOfServiceUserStatusesITest.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.test.termsofserviceuserstatuses; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; +import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateTermsOfServices; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.termsofserviceuserstatuses.CreateTermsOfServiceStatusForUserRequestBody; +import com.box.sdkgen.managers.termsofserviceuserstatuses.CreateTermsOfServiceStatusForUserRequestBodyTosField; +import com.box.sdkgen.managers.termsofserviceuserstatuses.CreateTermsOfServiceStatusForUserRequestBodyUserField; +import com.box.sdkgen.managers.termsofserviceuserstatuses.GetTermsOfServiceUserStatusesQueryParams; +import com.box.sdkgen.managers.termsofserviceuserstatuses.UpdateTermsOfServiceStatusForUserByIdRequestBody; +import com.box.sdkgen.managers.users.CreateUserRequestBody; +import com.box.sdkgen.schemas.termsofservice.TermsOfService; +import com.box.sdkgen.schemas.termsofserviceuserstatus.TermsOfServiceUserStatus; +import com.box.sdkgen.schemas.termsofserviceuserstatuses.TermsOfServiceUserStatuses; +import com.box.sdkgen.schemas.userfull.UserFull; +import org.junit.jupiter.api.Test; + +public class TermsOfServiceUserStatusesITest { + + @Test + public void testGetTermsOfServiceUserStatuses() { + String adminUserId = getEnvVar("USER_ID"); + BoxClient client = getDefaultClientWithUserSubject(adminUserId); + TermsOfService tos = getOrCreateTermsOfServices(); + UserFull user = + client + .getUsers() + .createUser( + new CreateUserRequestBody.Builder(getUuid()) + .login(String.join("", getUuid(), "@boxdemo.com")) + .isPlatformAccessOnly(true) + .build()); + TermsOfServiceUserStatus createdTosUserStatus = + client + .getTermsOfServiceUserStatuses() + .createTermsOfServiceStatusForUser( + new CreateTermsOfServiceStatusForUserRequestBody( + new CreateTermsOfServiceStatusForUserRequestBodyTosField(tos.getId()), + new CreateTermsOfServiceStatusForUserRequestBodyUserField(user.getId()), + false)); + assert createdTosUserStatus.getIsAccepted() == false; + assert convertToString(createdTosUserStatus.getType()).equals("terms_of_service_user_status"); + assert convertToString(createdTosUserStatus.getTos().getType()).equals("terms_of_service"); + assert convertToString(createdTosUserStatus.getUser().getType()).equals("user"); + assert createdTosUserStatus.getTos().getId().equals(tos.getId()); + assert createdTosUserStatus.getUser().getId().equals(user.getId()); + TermsOfServiceUserStatus updatedTosUserStatus = + client + .getTermsOfServiceUserStatuses() + .updateTermsOfServiceStatusForUserById( + createdTosUserStatus.getId(), + new UpdateTermsOfServiceStatusForUserByIdRequestBody(true)); + assert updatedTosUserStatus.getIsAccepted() == true; + TermsOfServiceUserStatuses listTosUserStatuses = + client + .getTermsOfServiceUserStatuses() + .getTermsOfServiceUserStatuses( + new GetTermsOfServiceUserStatusesQueryParams.Builder(tos.getId()) + .userId(user.getId()) + .build()); + assert listTosUserStatuses.getTotalCount() > 0; + client.getUsers().deleteUserById(user.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/transfer/TransferITest.java b/src/test/java/com/box/sdkgen/test/transfer/TransferITest.java new file mode 100644 index 000000000..d55de73e6 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/transfer/TransferITest.java @@ -0,0 +1,52 @@ +package com.box.sdkgen.test.transfer; + +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.folders.DeleteFolderByIdQueryParams; +import com.box.sdkgen.managers.transfer.TransferOwnedFolderQueryParams; +import com.box.sdkgen.managers.transfer.TransferOwnedFolderRequestBody; +import com.box.sdkgen.managers.transfer.TransferOwnedFolderRequestBodyOwnedByField; +import com.box.sdkgen.managers.users.CreateUserRequestBody; +import com.box.sdkgen.managers.users.DeleteUserByIdQueryParams; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.userfull.UserFull; +import org.junit.jupiter.api.Test; + +public class TransferITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testTransferUserContent() { + String sourceUserName = getUuid(); + UserFull sourceUser = + client + .getUsers() + .createUser( + new CreateUserRequestBody.Builder(sourceUserName) + .isPlatformAccessOnly(true) + .build()); + UserFull targetUser = client.getUsers().getUserMe(); + FolderFull transferredFolder = + client + .getTransfer() + .transferOwnedFolder( + sourceUser.getId(), + new TransferOwnedFolderRequestBody( + new TransferOwnedFolderRequestBodyOwnedByField(targetUser.getId())), + new TransferOwnedFolderQueryParams.Builder().notify(false).build()); + assert transferredFolder.getOwnedBy().getId().equals(targetUser.getId()); + client + .getFolders() + .deleteFolderById( + transferredFolder.getId(), + new DeleteFolderByIdQueryParams.Builder().recursive(true).build()); + client + .getUsers() + .deleteUserById( + sourceUser.getId(), + new DeleteUserByIdQueryParams.Builder().notify(false).force(true).build()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/trashedfiles/TrashedFilesITest.java b/src/test/java/com/box/sdkgen/test/trashedfiles/TrashedFilesITest.java new file mode 100644 index 000000000..3c4f1523a --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/trashedfiles/TrashedFilesITest.java @@ -0,0 +1,54 @@ +package com.box.sdkgen.test.trashedfiles; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.uploads.UploadFileRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesParentField; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.files.Files; +import com.box.sdkgen.schemas.trashfile.TrashFile; +import com.box.sdkgen.schemas.trashfilerestored.TrashFileRestored; +import java.io.InputStream; +import org.junit.jupiter.api.Test; + +public class TrashedFilesITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testTrashedFiles() { + int fileSize = 1024 * 1024; + String fileName = getUuid(); + InputStream fileByteStream = generateByteStream(fileSize); + Files files = + client + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + fileName, new UploadFileRequestBodyAttributesParentField("0")), + fileByteStream)); + FileFull file = files.getEntries().get(0); + client.getFiles().deleteFileById(file.getId()); + TrashFile fromTrash = client.getTrashedFiles().getTrashedFileById(file.getId()); + assert fromTrash.getId().equals(file.getId()); + assert fromTrash.getName().equals(file.getName()); + FileFull fromApiAfterTrashed = client.getFiles().getFileById(file.getId()); + assert convertToString(fromApiAfterTrashed.getItemStatus()).equals("trashed"); + TrashFileRestored restoredFile = client.getTrashedFiles().restoreFileFromTrash(file.getId()); + FileFull fromApiAfterRestore = client.getFiles().getFileById(file.getId()); + assert restoredFile.getId().equals(fromApiAfterRestore.getId()); + assert restoredFile.getName().equals(fromApiAfterRestore.getName()); + assert convertToString(fromApiAfterRestore.getItemStatus()).equals("active"); + client.getFiles().deleteFileById(file.getId()); + client.getTrashedFiles().deleteTrashedFileById(file.getId()); + assertThrows( + RuntimeException.class, () -> client.getTrashedFiles().getTrashedFileById(file.getId())); + } +} diff --git a/src/test/java/com/box/sdkgen/test/trashedfolders/TrashedFoldersITest.java b/src/test/java/com/box/sdkgen/test/trashedfolders/TrashedFoldersITest.java new file mode 100644 index 000000000..8514e0904 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/trashedfolders/TrashedFoldersITest.java @@ -0,0 +1,43 @@ +package com.box.sdkgen.test.trashedfolders; + +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.folders.CreateFolderRequestBody; +import com.box.sdkgen.managers.folders.CreateFolderRequestBodyParentField; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.trashfolder.TrashFolder; +import com.box.sdkgen.schemas.trashfolderrestored.TrashFolderRestored; +import org.junit.jupiter.api.Test; + +public class TrashedFoldersITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testTrashedFolders() { + FolderFull folder = + client + .getFolders() + .createFolder( + new CreateFolderRequestBody( + getUuid(), new CreateFolderRequestBodyParentField("0"))); + client.getFolders().deleteFolderById(folder.getId()); + TrashFolder fromTrash = client.getTrashedFolders().getTrashedFolderById(folder.getId()); + assert fromTrash.getId().equals(folder.getId()); + assert fromTrash.getName().equals(folder.getName()); + assertThrows(RuntimeException.class, () -> client.getFolders().getFolderById(folder.getId())); + TrashFolderRestored restoredFolder = + client.getTrashedFolders().restoreFolderFromTrash(folder.getId()); + FolderFull fromApi = client.getFolders().getFolderById(folder.getId()); + assert restoredFolder.getId().equals(fromApi.getId()); + assert restoredFolder.getName().equals(fromApi.getName()); + client.getFolders().deleteFolderById(folder.getId()); + client.getTrashedFolders().deleteTrashedFolderById(folder.getId()); + assertThrows( + RuntimeException.class, + () -> client.getTrashedFolders().getTrashedFolderById(folder.getId())); + } +} diff --git a/src/test/java/com/box/sdkgen/test/trasheditems/TrashedItemsITest.java b/src/test/java/com/box/sdkgen/test/trasheditems/TrashedItemsITest.java new file mode 100644 index 000000000..ce7f4ba4e --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/trasheditems/TrashedItemsITest.java @@ -0,0 +1,22 @@ +package com.box.sdkgen.test.trasheditems; + +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.items.Items; +import org.junit.jupiter.api.Test; + +public class TrashedItemsITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testListTrashedItems() { + FileFull file = uploadNewFile(); + client.getFiles().deleteFileById(file.getId()); + Items trashedItems = client.getTrashedItems().getTrashedItems(); + assert trashedItems.getEntries().size() > 0; + } +} diff --git a/src/test/java/com/box/sdkgen/test/trashedweblinks/TrashedWebLinksITest.java b/src/test/java/com/box/sdkgen/test/trashedweblinks/TrashedWebLinksITest.java new file mode 100644 index 000000000..3c92652cb --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/trashedweblinks/TrashedWebLinksITest.java @@ -0,0 +1,53 @@ +package com.box.sdkgen.test.trashedweblinks; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.weblinks.CreateWebLinkRequestBody; +import com.box.sdkgen.managers.weblinks.CreateWebLinkRequestBodyParentField; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.trashweblink.TrashWebLink; +import com.box.sdkgen.schemas.trashweblinkrestored.TrashWebLinkRestored; +import com.box.sdkgen.schemas.weblink.WebLink; +import org.junit.jupiter.api.Test; + +public class TrashedWebLinksITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testTrashedWebLinks() { + String url = "https://www.box.com"; + FolderFull parent = client.getFolders().getFolderById("0"); + String name = getUuid(); + String description = "Weblink description"; + WebLink weblink = + client + .getWebLinks() + .createWebLink( + new CreateWebLinkRequestBody.Builder( + url, new CreateWebLinkRequestBodyParentField(parent.getId())) + .name(name) + .description(description) + .build()); + client.getWebLinks().deleteWebLinkById(weblink.getId()); + TrashWebLink fromTrash = client.getTrashedWebLinks().getTrashedWebLinkById(weblink.getId()); + assert fromTrash.getId().equals(weblink.getId()); + assert fromTrash.getName().equals(weblink.getName()); + WebLink fromApiAfterTrashed = client.getWebLinks().getWebLinkById(weblink.getId()); + assert convertToString(fromApiAfterTrashed.getItemStatus()).equals("trashed"); + TrashWebLinkRestored restoredWeblink = + client.getTrashedWebLinks().restoreWeblinkFromTrash(weblink.getId()); + WebLink fromApi = client.getWebLinks().getWebLinkById(weblink.getId()); + assert restoredWeblink.getId().equals(fromApi.getId()); + assert restoredWeblink.getName().equals(fromApi.getName()); + client.getWebLinks().deleteWebLinkById(weblink.getId()); + client.getTrashedWebLinks().deleteTrashedWebLinkById(weblink.getId()); + assertThrows( + RuntimeException.class, + () -> client.getTrashedWebLinks().getTrashedWebLinkById(weblink.getId())); + } +} diff --git a/src/test/java/com/box/sdkgen/test/uploads/UploadsITest.java b/src/test/java/com/box/sdkgen/test/uploads/UploadsITest.java new file mode 100644 index 000000000..e94bcc4a9 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/uploads/UploadsITest.java @@ -0,0 +1,119 @@ +package com.box.sdkgen.test.uploads; + +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.uploads.PreflightFileUploadCheckRequestBody; +import com.box.sdkgen.managers.uploads.PreflightFileUploadCheckRequestBodyParentField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesParentField; +import com.box.sdkgen.managers.uploads.UploadFileVersionRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileVersionRequestBodyAttributesField; +import com.box.sdkgen.managers.uploads.UploadWithPreflightCheckRequestBody; +import com.box.sdkgen.managers.uploads.UploadWithPreflightCheckRequestBodyAttributesField; +import com.box.sdkgen.managers.uploads.UploadWithPreflightCheckRequestBodyAttributesParentField; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.files.Files; +import com.box.sdkgen.schemas.uploadurl.UploadUrl; +import java.io.InputStream; +import org.junit.jupiter.api.Test; + +public class UploadsITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testUploadFileAndFileVersion() { + String newFileName = getUuid(); + InputStream fileContentStream = generateByteStream(1024 * 1024); + Files uploadedFiles = + client + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + newFileName, new UploadFileRequestBodyAttributesParentField("0")), + fileContentStream)); + FileFull uploadedFile = uploadedFiles.getEntries().get(0); + assert uploadedFile.getName().equals(newFileName); + String newFileVersionName = getUuid(); + InputStream newFileContentStream = generateByteStream(1024 * 1024); + Files uploadedFilesVersion = + client + .getUploads() + .uploadFileVersion( + uploadedFile.getId(), + new UploadFileVersionRequestBody( + new UploadFileVersionRequestBodyAttributesField(newFileVersionName), + newFileContentStream)); + FileFull newFileVersion = uploadedFilesVersion.getEntries().get(0); + assert newFileVersion.getName().equals(newFileVersionName); + client.getFiles().deleteFileById(newFileVersion.getId()); + } + + @Test + public void testUploadFileWithPreflightCheck() { + String newFileName = getUuid(); + InputStream fileContentStream = generateByteStream(1024 * 1024); + assertThrows( + RuntimeException.class, + () -> + client + .getUploads() + .uploadWithPreflightCheck( + new UploadWithPreflightCheckRequestBody( + new UploadWithPreflightCheckRequestBodyAttributesField( + newFileName, + new UploadWithPreflightCheckRequestBodyAttributesParentField("0"), + -1), + fileContentStream))); + Files uploadFilesWithPreflight = + client + .getUploads() + .uploadWithPreflightCheck( + new UploadWithPreflightCheckRequestBody( + new UploadWithPreflightCheckRequestBodyAttributesField( + newFileName, + new UploadWithPreflightCheckRequestBodyAttributesParentField("0"), + 1024 * 1024), + fileContentStream)); + FileFull file = uploadFilesWithPreflight.getEntries().get(0); + assert file.getName().equals(newFileName); + assert file.getSize() == 1024 * 1024; + assertThrows( + RuntimeException.class, + () -> + client + .getUploads() + .uploadWithPreflightCheck( + new UploadWithPreflightCheckRequestBody( + new UploadWithPreflightCheckRequestBodyAttributesField( + newFileName, + new UploadWithPreflightCheckRequestBodyAttributesParentField("0"), + 1024 * 1024), + fileContentStream))); + client.getFiles().deleteFileById(file.getId()); + } + + @Test + public void testPreflightCheck() { + String newFileName = getUuid(); + UploadUrl preflightCheckResult = + client + .getUploads() + .preflightFileUploadCheck( + new PreflightFileUploadCheckRequestBody.Builder() + .name(newFileName) + .size(1024 * 1024) + .parent( + new PreflightFileUploadCheckRequestBodyParentField.Builder() + .id("0") + .build()) + .build()); + assert !(preflightCheckResult.getUploadUrl().equals("")); + } +} diff --git a/src/test/java/com/box/sdkgen/test/usercollaborations/UserCollaborationsITest.java b/src/test/java/com/box/sdkgen/test/usercollaborations/UserCollaborationsITest.java new file mode 100644 index 000000000..3fc285296 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/usercollaborations/UserCollaborationsITest.java @@ -0,0 +1,167 @@ +package com.box.sdkgen.test.usercollaborations; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.createNewFolder; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBody; +import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBodyAccessibleByField; +import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBodyAccessibleByTypeField; +import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBodyItemField; +import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBodyItemTypeField; +import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBodyRoleField; +import com.box.sdkgen.managers.usercollaborations.UpdateCollaborationByIdRequestBody; +import com.box.sdkgen.managers.usercollaborations.UpdateCollaborationByIdRequestBodyRoleField; +import com.box.sdkgen.managers.users.CreateUserRequestBody; +import com.box.sdkgen.schemas.collaboration.Collaboration; +import com.box.sdkgen.schemas.collaborations.Collaborations; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.userfull.UserFull; +import org.junit.jupiter.api.Test; + +public class UserCollaborationsITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testUserCollaborations() { + String userName = getUuid(); + String userLogin = String.join("", getUuid(), "@gmail.com"); + UserFull user = + client + .getUsers() + .createUser( + new CreateUserRequestBody.Builder(userName) + .login(userLogin) + .isPlatformAccessOnly(true) + .build()); + FolderFull folder = createNewFolder(); + Collaboration collaboration = + client + .getUserCollaborations() + .createCollaboration( + new CreateCollaborationRequestBody( + new CreateCollaborationRequestBodyItemField.Builder() + .type(CreateCollaborationRequestBodyItemTypeField.FOLDER) + .id(folder.getId()) + .build(), + new CreateCollaborationRequestBodyAccessibleByField.Builder( + CreateCollaborationRequestBodyAccessibleByTypeField.USER) + .id(user.getId()) + .build(), + CreateCollaborationRequestBodyRoleField.EDITOR)); + assert convertToString(collaboration.getRole()).equals("editor"); + String collaborationId = collaboration.getId(); + Collaboration collaborationFromApi = + client.getUserCollaborations().getCollaborationById(collaborationId); + assert collaborationId.equals(collaborationFromApi.getId()); + assert convertToString(collaborationFromApi.getStatus()).equals("accepted"); + assert convertToString(collaborationFromApi.getType()).equals("collaboration"); + assert collaborationFromApi.getInviteEmail() == null; + Collaboration updatedCollaboration = + client + .getUserCollaborations() + .updateCollaborationById( + collaborationId, + new UpdateCollaborationByIdRequestBody( + UpdateCollaborationByIdRequestBodyRoleField.VIEWER)); + assert convertToString(updatedCollaboration.getRole()).equals("viewer"); + client.getUserCollaborations().deleteCollaborationById(collaborationId); + assertThrows( + RuntimeException.class, + () -> client.getUserCollaborations().getCollaborationById(collaborationId)); + client.getFolders().deleteFolderById(folder.getId()); + client.getUsers().deleteUserById(user.getId()); + } + + @Test + public void testConvertingUserCollaborationToOwnership() { + String userName = getUuid(); + String userLogin = String.join("", getUuid(), "@gmail.com"); + UserFull user = + client + .getUsers() + .createUser( + new CreateUserRequestBody.Builder(userName) + .login(userLogin) + .isPlatformAccessOnly(true) + .build()); + FolderFull folder = createNewFolder(); + Collaboration collaboration = + client + .getUserCollaborations() + .createCollaboration( + new CreateCollaborationRequestBody( + new CreateCollaborationRequestBodyItemField.Builder() + .type(CreateCollaborationRequestBodyItemTypeField.FOLDER) + .id(folder.getId()) + .build(), + new CreateCollaborationRequestBodyAccessibleByField.Builder( + CreateCollaborationRequestBodyAccessibleByTypeField.USER) + .id(user.getId()) + .build(), + CreateCollaborationRequestBodyRoleField.EDITOR)); + assert convertToString(collaboration.getRole()).equals("editor"); + Collaboration ownerCollaboration = + client + .getUserCollaborations() + .updateCollaborationById( + collaboration.getId(), + new UpdateCollaborationByIdRequestBody( + UpdateCollaborationByIdRequestBodyRoleField.OWNER)); + assert ownerCollaboration == null; + Collaborations folderCollaborations = + client.getListCollaborations().getFolderCollaborations(folder.getId()); + Collaboration folderCollaboration = folderCollaborations.getEntries().get(0); + client.getUserCollaborations().deleteCollaborationById(folderCollaboration.getId()); + BoxClient userClient = client.withAsUserHeader(user.getId()); + userClient.getFolders().deleteFolderById(folder.getId()); + userClient.getTrashedFolders().deleteTrashedFolderById(folder.getId()); + client.getUsers().deleteUserById(user.getId()); + } + + @Test + public void testExternalUserCollaborations() { + String userName = getUuid(); + String userLogin = String.join("", getUuid(), "@boxdemo.com"); + FolderFull folder = createNewFolder(); + Collaboration collaboration = + client + .getUserCollaborations() + .createCollaboration( + new CreateCollaborationRequestBody( + new CreateCollaborationRequestBodyItemField.Builder() + .type(CreateCollaborationRequestBodyItemTypeField.FOLDER) + .id(folder.getId()) + .build(), + new CreateCollaborationRequestBodyAccessibleByField.Builder( + CreateCollaborationRequestBodyAccessibleByTypeField.USER) + .login(userLogin) + .build(), + CreateCollaborationRequestBodyRoleField.EDITOR)); + assert convertToString(collaboration.getRole()).equals("editor"); + String collaborationId = collaboration.getId(); + Collaboration collaborationFromApi = + client.getUserCollaborations().getCollaborationById(collaborationId); + assert collaborationId.equals(collaborationFromApi.getId()); + assert convertToString(collaborationFromApi.getStatus()).equals("pending"); + assert convertToString(collaborationFromApi.getType()).equals("collaboration"); + assert collaborationFromApi.getInviteEmail().equals(userLogin); + Collaboration updatedCollaboration = + client + .getUserCollaborations() + .updateCollaborationById( + collaborationId, + new UpdateCollaborationByIdRequestBody( + UpdateCollaborationByIdRequestBodyRoleField.VIEWER)); + assert convertToString(updatedCollaboration.getRole()).equals("viewer"); + client.getUserCollaborations().deleteCollaborationById(collaborationId); + assertThrows( + RuntimeException.class, + () -> client.getUserCollaborations().getCollaborationById(collaborationId)); + client.getFolders().deleteFolderById(folder.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/users/UsersITest.java b/src/test/java/com/box/sdkgen/test/users/UsersITest.java new file mode 100644 index 000000000..62feabe4d --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/users/UsersITest.java @@ -0,0 +1,55 @@ +package com.box.sdkgen.test.users; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.users.CreateUserRequestBody; +import com.box.sdkgen.managers.users.UpdateUserByIdRequestBody; +import com.box.sdkgen.schemas.userfull.UserFull; +import com.box.sdkgen.schemas.users.Users; +import org.junit.jupiter.api.Test; + +public class UsersITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testGetUsers() { + Users users = client.getUsers().getUsers(); + assert users.getTotalCount() >= 0; + } + + @Test + public void testGetUserMe() { + UserFull currentUser = client.getUsers().getUserMe(); + assert convertToString(currentUser.getType()).equals("user"); + } + + @Test + public void testCreateUpdateGetDeleteUser() { + String userName = getUuid(); + String userLogin = String.join("", getUuid(), "@gmail.com"); + UserFull user = + client + .getUsers() + .createUser( + new CreateUserRequestBody.Builder(userName) + .login(userLogin) + .isPlatformAccessOnly(true) + .build()); + assert user.getName().equals(userName); + UserFull userById = client.getUsers().getUserById(user.getId()); + assert userById.getId().equals(user.getId()); + String updatedUserName = getUuid(); + UserFull updatedUser = + client + .getUsers() + .updateUserById( + user.getId(), + new UpdateUserByIdRequestBody.Builder().name(updatedUserName).build()); + assert updatedUser.getName().equals(updatedUserName); + client.getUsers().deleteUserById(user.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/webhooks/WebhooksITest.java b/src/test/java/com/box/sdkgen/test/webhooks/WebhooksITest.java new file mode 100644 index 000000000..c21a71c8a --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/webhooks/WebhooksITest.java @@ -0,0 +1,273 @@ +package com.box.sdkgen.test.webhooks; + +import static com.box.sdkgen.internal.utils.UtilsManager.compareSignatures; +import static com.box.sdkgen.internal.utils.UtilsManager.computeWebhookSignature; +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.dateTimeToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.epochSecondsToDateTime; +import static com.box.sdkgen.internal.utils.UtilsManager.getEpochTimeInSeconds; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.folders.CreateFolderRequestBody; +import com.box.sdkgen.managers.folders.CreateFolderRequestBodyParentField; +import com.box.sdkgen.managers.webhooks.CreateWebhookRequestBody; +import com.box.sdkgen.managers.webhooks.CreateWebhookRequestBodyTargetField; +import com.box.sdkgen.managers.webhooks.CreateWebhookRequestBodyTargetTypeField; +import com.box.sdkgen.managers.webhooks.CreateWebhookRequestBodyTriggersField; +import com.box.sdkgen.managers.webhooks.UpdateWebhookByIdRequestBody; +import com.box.sdkgen.managers.webhooks.WebhooksManager; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.webhook.Webhook; +import com.box.sdkgen.schemas.webhooks.Webhooks; +import java.util.Arrays; +import java.util.Map; +import org.junit.jupiter.api.Test; + +public class WebhooksITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testWebhooksCrud() { + FolderFull folder = + client + .getFolders() + .createFolder( + new CreateFolderRequestBody( + getUuid(), new CreateFolderRequestBodyParentField("0"))); + Webhook webhook = + client + .getWebhooks() + .createWebhook( + new CreateWebhookRequestBody( + new CreateWebhookRequestBodyTargetField.Builder() + .id(folder.getId()) + .type(CreateWebhookRequestBodyTargetTypeField.FOLDER) + .build(), + "https://example.com/new-webhook", + Arrays.asList(CreateWebhookRequestBodyTriggersField.FILE_UPLOADED))); + assert webhook.getTarget().getId().equals(folder.getId()); + assert convertToString(webhook.getTarget().getType()).equals("folder"); + assert webhook.getTriggers().size() == Arrays.asList("FILE.UPLOADED").size(); + assert webhook.getAddress().equals("https://example.com/new-webhook"); + Webhooks webhooks = client.getWebhooks().getWebhooks(); + assert webhooks.getEntries().size() > 0; + Webhook webhookFromApi = client.getWebhooks().getWebhookById(webhook.getId()); + assert webhook.getId().equals(webhookFromApi.getId()); + assert webhook.getTarget().getId().equals(webhookFromApi.getTarget().getId()); + assert webhook.getAddress().equals(webhookFromApi.getAddress()); + Webhook updatedWebhook = + client + .getWebhooks() + .updateWebhookById( + webhook.getId(), + new UpdateWebhookByIdRequestBody.Builder() + .address("https://example.com/updated-webhook") + .build()); + assert updatedWebhook.getId().equals(webhook.getId()); + assert updatedWebhook.getAddress().equals("https://example.com/updated-webhook"); + client.getWebhooks().deleteWebhookById(webhook.getId()); + assertThrows( + RuntimeException.class, () -> client.getWebhooks().deleteWebhookById(webhook.getId())); + client.getFolders().deleteFolderById(folder.getId()); + } + + @Test + public void testWebhookValidation() { + String primaryKey = "SamplePrimaryKey"; + String secondaryKey = "SampleSecondaryKey"; + String incorrectKey = "IncorrectKey"; + String body = + "{\"type\":\"webhook_event\",\"webhook\":{\"id\":\"1234567890\"},\"trigger\":\"FILE.UPLOADED\",\"source\":{\"id\":\"1234567890\",\"type\":\"file\",\"name\":\"Test.txt\"}}"; + String bodyWithJapanese = + "{\"webhook\":{\"id\":\"1234567890\"},\"trigger\":\"FILE.UPLOADED\",\"source\":{\"id\":\"1234567890\",\"type\":\"file\",\"name\":\"スクリーンショット 2020-08-05.txt\"}}"; + String bodyWithEmoji = + "{\"webhook\":{\"id\":\"1234567890\"},\"trigger\":\"FILE.UPLOADED\",\"source\":{\"id\":\"1234567890\",\"type\":\"file\",\"name\":\"😀 2020-08-05.txt\"}}"; + String bodyWithCarriageReturn = + "{\"webhook\":{\"id\":\"1234567890\"},\"trigger\":\"FILE.UPLOADED\",\"source\":{\"id\":\"1234567890\",\"type\":\"file\",\"name\":\"test \r\"}}"; + String bodyWithForwardSlash = + "{\"webhook\":{\"id\":\"1234567890\"},\"trigger\":\"FILE.UPLOADED\",\"source\":{\"id\":\"1234567890\",\"type\":\"file\",\"name\":\"/\"}}"; + String bodyWithBackSlash = + "{\"webhook\":{\"id\":\"1234567890\"},\"trigger\":\"FILE.UPLOADED\",\"source\":{\"id\":\"1234567890\",\"type\":\"file\",\"name\":\"\\\"}}"; + Map headers = + mapOf( + entryOf("box-delivery-id", "f96bb54b-ee16-4fc5-aa65-8c2d9e5b546f"), + entryOf("box-delivery-timestamp", "2020-01-01T00:00:00-07:00"), + entryOf("box-signature-algorithm", "HmacSHA256"), + entryOf("box-signature-primary", "6TfeAW3A1PASkgboxxA5yqHNKOwFyMWuEXny/FPD5hI="), + entryOf("box-signature-secondary", "v+1CD1Jdo3muIcbpv5lxxgPglOqMfsNHPV899xWYydo="), + entryOf("box-signature-version", "1")); + Map headersWithJapanese = + mergeMaps( + headers, + mapOf( + entryOf("box-signature-primary", "LV2uCu+5NJtIHrCXDYgZ0v/PP5THGRuegw3RtdnEyuE="))); + Map headersWithEmoji = + mergeMaps( + headers, + mapOf( + entryOf("box-signature-primary", "xF/SDZosX4le+v4A0Qn59sZhuD1RqY5KRUKzVMSbh0E="))); + Map headersWithCarriageReturn = + mergeMaps( + headers, + mapOf( + entryOf("box-signature-primary", "SVkbKgy3dEEf2PbbzpNu2lDZS7zZ/aboU7HOZgBGrJk="))); + Map headersWithForwardSlash = + mergeMaps( + headers, + mapOf( + entryOf("box-signature-primary", "t41PWT5ZB6OcysnD6SDy9Ud+p9hdXxIdXqcdweyZv/Q="))); + Map headersWithBackSlash = + mergeMaps( + headers, + mapOf( + entryOf("box-signature-primary", "ERpMZwUQsGDTfj82ehdX6VvDZfvOhK5ULNfVmwVAGe0="))); + String currentDatetime = dateTimeToString(epochSecondsToDateTime(getEpochTimeInSeconds())); + String futureDatetime = + dateTimeToString(epochSecondsToDateTime(getEpochTimeInSeconds() + 1200)); + String pastDatetime = dateTimeToString(epochSecondsToDateTime(getEpochTimeInSeconds() - 1200)); + Map headersWithCorrectDatetime = + mergeMaps( + headers, + mapOf( + entryOf("box-delivery-timestamp", currentDatetime), + entryOf( + "box-signature-primary", + computeWebhookSignature( + body, + mergeMaps( + headers, mapOf(entryOf("box-delivery-timestamp", currentDatetime))), + primaryKey, + true)), + entryOf( + "box-signature-secondary", + computeWebhookSignature( + body, + mergeMaps( + headers, mapOf(entryOf("box-delivery-timestamp", currentDatetime))), + secondaryKey, + true)))); + Map headersWithJapaneseWithCorrectDatetime = + mergeMaps( + headersWithJapanese, + mapOf( + entryOf("box-delivery-timestamp", currentDatetime), + entryOf( + "box-signature-primary", + computeWebhookSignature( + bodyWithJapanese, + mergeMaps( + headersWithJapanese, + mapOf(entryOf("box-delivery-timestamp", currentDatetime))), + primaryKey, + true)), + entryOf( + "box-signature-secondary", + computeWebhookSignature( + bodyWithJapanese, + mergeMaps( + headersWithJapanese, + mapOf(entryOf("box-delivery-timestamp", currentDatetime))), + secondaryKey, + true)))); + Map headersWithFutureDatetime = + mergeMaps( + headers, + mapOf( + entryOf("box-delivery-timestamp", futureDatetime), + entryOf( + "box-signature-primary", + computeWebhookSignature( + body, + mergeMaps( + headers, mapOf(entryOf("box-delivery-timestamp", futureDatetime))), + primaryKey, + true)), + entryOf( + "box-signature-secondary", + computeWebhookSignature( + body, + mergeMaps( + headers, mapOf(entryOf("box-delivery-timestamp", futureDatetime))), + secondaryKey, + true)))); + Map headersWithPastDatetime = + mergeMaps( + headers, + mapOf( + entryOf("box-delivery-timestamp", pastDatetime), + entryOf( + "box-signature-primary", + computeWebhookSignature( + body, + mergeMaps(headers, mapOf(entryOf("box-delivery-timestamp", pastDatetime))), + primaryKey, + true)), + entryOf( + "box-signature-secondary", + computeWebhookSignature( + body, + mergeMaps(headers, mapOf(entryOf("box-delivery-timestamp", pastDatetime))), + secondaryKey, + true)))); + Map headersWithWrongSignatureVersion = + mergeMaps(headers, mapOf(entryOf("box-signature-version", "2"))); + Map headersWithWrongSignatureAlgorithm = + mergeMaps(headers, mapOf(entryOf("box-signature-algorithm", "HmacSHA1"))); + assert compareSignatures( + computeWebhookSignature(body, headers, primaryKey, true), + headers.get("box-signature-primary")); + assert compareSignatures( + computeWebhookSignature(body, headers, secondaryKey, true), + headers.get("box-signature-secondary")); + assert !(compareSignatures( + computeWebhookSignature(body, headers, incorrectKey, true), + headers.get("box-signature-primary"))); + assert compareSignatures( + computeWebhookSignature(bodyWithJapanese, headersWithJapanese, primaryKey, true), + headersWithJapanese.get("box-signature-primary")); + assert compareSignatures( + computeWebhookSignature(bodyWithEmoji, headersWithEmoji, primaryKey, true), + headersWithEmoji.get("box-signature-primary")); + assert compareSignatures( + computeWebhookSignature( + bodyWithCarriageReturn, headersWithCarriageReturn, primaryKey, true), + headersWithCarriageReturn.get("box-signature-primary")); + assert compareSignatures( + computeWebhookSignature(bodyWithForwardSlash, headersWithForwardSlash, primaryKey, true), + headersWithForwardSlash.get("box-signature-primary")); + assert compareSignatures( + computeWebhookSignature(bodyWithBackSlash, headersWithBackSlash, primaryKey, true), + headersWithBackSlash.get("box-signature-primary")); + assert WebhooksManager.validateMessage( + body, headersWithCorrectDatetime, primaryKey, secondaryKey); + assert WebhooksManager.validateMessage( + body, headersWithCorrectDatetime, primaryKey, incorrectKey); + assert WebhooksManager.validateMessage( + body, headersWithCorrectDatetime, incorrectKey, secondaryKey); + assert !(WebhooksManager.validateMessage( + body, headersWithCorrectDatetime, incorrectKey, incorrectKey)); + assert !(WebhooksManager.validateMessage( + body, headersWithFutureDatetime, primaryKey, secondaryKey)); + assert !(WebhooksManager.validateMessage( + body, headersWithPastDatetime, primaryKey, secondaryKey)); + assert !(WebhooksManager.validateMessage( + body, headersWithWrongSignatureVersion, primaryKey, secondaryKey)); + assert !(WebhooksManager.validateMessage( + body, headersWithWrongSignatureAlgorithm, primaryKey, secondaryKey)); + assert WebhooksManager.validateMessage( + bodyWithJapanese, headersWithJapaneseWithCorrectDatetime, primaryKey, secondaryKey); + assert WebhooksManager.validateMessage( + bodyWithJapanese, headersWithJapaneseWithCorrectDatetime, primaryKey, incorrectKey); + assert WebhooksManager.validateMessage( + bodyWithJapanese, headersWithJapaneseWithCorrectDatetime, incorrectKey, secondaryKey); + assert !(WebhooksManager.validateMessage( + bodyWithJapanese, headersWithJapanese, primaryKey, secondaryKey)); + } +} diff --git a/src/test/java/com/box/sdkgen/test/weblinks/WeblinksITest.java b/src/test/java/com/box/sdkgen/test/weblinks/WeblinksITest.java new file mode 100644 index 000000000..344fbd9da --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/weblinks/WeblinksITest.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.test.weblinks; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.weblinks.CreateWebLinkRequestBody; +import com.box.sdkgen.managers.weblinks.CreateWebLinkRequestBodyParentField; +import com.box.sdkgen.managers.weblinks.UpdateWebLinkByIdRequestBody; +import com.box.sdkgen.managers.weblinks.UpdateWebLinkByIdRequestBodySharedLinkAccessField; +import com.box.sdkgen.managers.weblinks.UpdateWebLinkByIdRequestBodySharedLinkField; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.weblink.WebLink; +import org.junit.jupiter.api.Test; + +public class WeblinksITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testCreateGetDeleteWeblink() { + String url = "https://www.box.com"; + FolderFull parent = client.getFolders().getFolderById("0"); + String name = getUuid(); + String description = "Weblink description"; + String password = "super-secret-password"; + WebLink weblink = + client + .getWebLinks() + .createWebLink( + new CreateWebLinkRequestBody.Builder( + url, new CreateWebLinkRequestBodyParentField(parent.getId())) + .name(name) + .description(description) + .build()); + assert weblink.getUrl().equals(url); + assert weblink.getParent().getId().equals(parent.getId()); + assert weblink.getName().equals(name); + assert weblink.getDescription().equals(description); + WebLink weblinkById = client.getWebLinks().getWebLinkById(weblink.getId()); + assert weblinkById.getId().equals(weblink.getId()); + assert weblinkById.getUrl().equals(url); + String updatedName = getUuid(); + WebLink updatedWeblink = + client + .getWebLinks() + .updateWebLinkById( + weblink.getId(), + new UpdateWebLinkByIdRequestBody.Builder() + .name(updatedName) + .sharedLink( + new UpdateWebLinkByIdRequestBodySharedLinkField.Builder() + .access(UpdateWebLinkByIdRequestBodySharedLinkAccessField.OPEN) + .password(password) + .build()) + .build()); + assert updatedWeblink.getName().equals(updatedName); + assert convertToString(updatedWeblink.getSharedLink().getAccess()).equals("open"); + client.getWebLinks().deleteWebLinkById(weblink.getId()); + WebLink deletedWeblink = client.getWebLinks().getWebLinkById(weblink.getId()); + assert convertToString(deletedWeblink.getItemStatus()).equals("trashed"); + } +} diff --git a/src/test/java/com/box/sdkgen/test/workflows/WorkflowsITest.java b/src/test/java/com/box/sdkgen/test/workflows/WorkflowsITest.java new file mode 100644 index 000000000..5a0d2580b --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/workflows/WorkflowsITest.java @@ -0,0 +1,84 @@ +package com.box.sdkgen.test.workflows; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.uploads.UploadFileRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesParentField; +import com.box.sdkgen.managers.workflows.GetWorkflowsQueryParams; +import com.box.sdkgen.managers.workflows.StartWorkflowRequestBody; +import com.box.sdkgen.managers.workflows.StartWorkflowRequestBodyFilesField; +import com.box.sdkgen.managers.workflows.StartWorkflowRequestBodyFilesTypeField; +import com.box.sdkgen.managers.workflows.StartWorkflowRequestBodyFlowField; +import com.box.sdkgen.managers.workflows.StartWorkflowRequestBodyFolderField; +import com.box.sdkgen.managers.workflows.StartWorkflowRequestBodyFolderTypeField; +import com.box.sdkgen.managers.workflows.StartWorkflowRequestBodyTypeField; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.files.Files; +import com.box.sdkgen.schemas.workflow.Workflow; +import com.box.sdkgen.schemas.workflows.Workflows; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class WorkflowsITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testWorkflows() { + BoxClient adminClient = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); + String workflowFolderId = getEnvVar("WORKFLOW_FOLDER_ID"); + Files uploadedFiles = + adminClient + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + getUuid(), + new UploadFileRequestBodyAttributesParentField(workflowFolderId)), + generateByteStream(1024 * 1024))); + FileFull file = uploadedFiles.getEntries().get(0); + String workflowFileId = file.getId(); + Workflows workflows = + adminClient.getWorkflows().getWorkflows(new GetWorkflowsQueryParams(workflowFolderId)); + assert workflows.getEntries().size() == 1; + Workflow workflowToRun = workflows.getEntries().get(0); + assert convertToString(workflowToRun.getType()).equals("workflow"); + assert workflowToRun.getIsEnabled() == true; + assert convertToString(workflowToRun.getFlows().get(0).getType()).equals("flow"); + assert convertToString(workflowToRun.getFlows().get(0).getTrigger().getType()) + .equals("trigger"); + assert convertToString(workflowToRun.getFlows().get(0).getTrigger().getTriggerType()) + .equals("WORKFLOW_MANUAL_START"); + assert convertToString(workflowToRun.getFlows().get(0).getOutcomes().get(0).getActionType()) + .equals("delete_file"); + assert convertToString(workflowToRun.getFlows().get(0).getOutcomes().get(0).getType()) + .equals("outcome"); + adminClient + .getWorkflows() + .startWorkflow( + workflowToRun.getId(), + new StartWorkflowRequestBody.Builder( + new StartWorkflowRequestBodyFlowField.Builder() + .type("flow") + .id(workflowToRun.getFlows().get(0).getId()) + .build(), + Arrays.asList( + new StartWorkflowRequestBodyFilesField.Builder() + .type(StartWorkflowRequestBodyFilesTypeField.FILE) + .id(workflowFileId) + .build()), + new StartWorkflowRequestBodyFolderField.Builder() + .type(StartWorkflowRequestBodyFolderTypeField.FOLDER) + .id(workflowFolderId) + .build()) + .type(StartWorkflowRequestBodyTypeField.WORKFLOW_PARAMETERS) + .build()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/zipdownloads/ZipDownloadsITest.java b/src/test/java/com/box/sdkgen/test/zipdownloads/ZipDownloadsITest.java new file mode 100644 index 000000000..3e339b926 --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/zipdownloads/ZipDownloadsITest.java @@ -0,0 +1,89 @@ +package com.box.sdkgen.test.zipdownloads; + +import static com.box.sdkgen.internal.utils.UtilsManager.bufferEquals; +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.dateTimeToString; +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteBuffer; +import static com.box.sdkgen.internal.utils.UtilsManager.readByteStream; +import static com.box.sdkgen.test.commons.CommonsManager.createNewFolder; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.zipdownload.ZipDownload; +import com.box.sdkgen.schemas.zipdownloadrequest.ZipDownloadRequest; +import com.box.sdkgen.schemas.zipdownloadrequest.ZipDownloadRequestItemsField; +import com.box.sdkgen.schemas.zipdownloadrequest.ZipDownloadRequestItemsTypeField; +import com.box.sdkgen.schemas.zipdownloadstatus.ZipDownloadStatus; +import java.io.InputStream; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class ZipDownloadsITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testZipDownload() { + FileFull file1 = uploadNewFile(); + FileFull file2 = uploadNewFile(); + FolderFull folder1 = createNewFolder(); + InputStream zipStream = + client + .getZipDownloads() + .downloadZip( + new ZipDownloadRequest.Builder( + Arrays.asList( + new ZipDownloadRequestItemsField( + ZipDownloadRequestItemsTypeField.FILE, file1.getId()), + new ZipDownloadRequestItemsField( + ZipDownloadRequestItemsTypeField.FILE, file2.getId()), + new ZipDownloadRequestItemsField( + ZipDownloadRequestItemsTypeField.FOLDER, folder1.getId()))) + .downloadFileName("zip") + .build()); + assert bufferEquals(readByteStream(zipStream), generateByteBuffer(10)) == false; + client.getFiles().deleteFileById(file1.getId()); + client.getFiles().deleteFileById(file2.getId()); + client.getFolders().deleteFolderById(folder1.getId()); + } + + @Test + public void testManualZipDownloadAndCheckStatus() { + FileFull file1 = uploadNewFile(); + FileFull file2 = uploadNewFile(); + FolderFull folder1 = createNewFolder(); + ZipDownload zipDownload = + client + .getZipDownloads() + .createZipDownload( + new ZipDownloadRequest.Builder( + Arrays.asList( + new ZipDownloadRequestItemsField( + ZipDownloadRequestItemsTypeField.FILE, file1.getId()), + new ZipDownloadRequestItemsField( + ZipDownloadRequestItemsTypeField.FILE, file2.getId()), + new ZipDownloadRequestItemsField( + ZipDownloadRequestItemsTypeField.FOLDER, folder1.getId()))) + .downloadFileName("zip") + .build()); + assert !(zipDownload.getDownloadUrl().equals("")); + assert !(zipDownload.getStatusUrl().equals("")); + assert !(dateTimeToString(zipDownload.getExpiresAt()).equals("")); + InputStream zipStream = + client.getZipDownloads().getZipDownloadContent(zipDownload.getDownloadUrl()); + assert bufferEquals(readByteStream(zipStream), generateByteBuffer(10)) == false; + ZipDownloadStatus zipDownloadStatus = + client.getZipDownloads().getZipDownloadStatus(zipDownload.getStatusUrl()); + assert zipDownloadStatus.getTotalFileCount() == 2; + assert zipDownloadStatus.getDownloadedFileCount() == 2; + assert zipDownloadStatus.getSkippedFileCount() == 0; + assert zipDownloadStatus.getSkippedFolderCount() == 0; + assert !(convertToString(zipDownloadStatus.getState()).equals("failed")); + client.getFiles().deleteFileById(file1.getId()); + client.getFiles().deleteFileById(file2.getId()); + client.getFolders().deleteFolderById(folder1.getId()); + } +} diff --git a/src/test/resources/junit-platform.properties b/src/test/resources/junit-platform.properties new file mode 100644 index 000000000..317c292e3 --- /dev/null +++ b/src/test/resources/junit-platform.properties @@ -0,0 +1,2 @@ +junit.jupiter.execution.parallel.enabled = true +junit.jupiter.execution.parallel.mode.default = concurrent diff --git a/src/test/resources/sample-files/empty_file b/src/test/resources/sample-files/empty_file deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/test/resources/sample-files/file_to_sign.pdf b/src/test/resources/sample-files/file_to_sign.pdf deleted file mode 100644 index 033fcdc01071cdf79d39f5350c96378a865cf08e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7227 zcmbVR2{@Ep`$q~xma=P^WJ#9U2MO7i$i63yF&Nv(*vpz^P4=abeao(teV3G7sE{>l z6d_B#XH@UoyL{jOy8h3&%$)n2bKm#*-RHTk-|rk=O?gFOm`bu3bhw^unS^zs;nJ;#3;x~@191Z z!$)KS9myIx|fdoftY#D`Nj;`)PsxW5xZRd0$*JA zo|L$hbIgWrdq~AhD;P1I&#&mAxE7$=&Qxjaj%1Wz*R(1KjNEUA9XSR$GG?CA z0BI&%wvWp}?nZC07hZWyzbUxgKOu|FM8tL6kFz~=lWf#P$^wLQu=u$c;1>x2*l$Sa zdN=}0*Th&I{CC1RID_Fpw>B7}jUy6VoUk||82Q5>M{sZk`iWo?lE46UoCO{uOK=C9 zKmh|v93=u51B)SHB4XmEAOOLi(MYp@;jZaK!0OelL1*oSUxB2X4>2S=0h}J7&Y4(wd56MM#F4rRtiyTV@Z4MM&lzN zD~Cp`R=kF)$TWBTDVv-P$$gP&hRmN98?PQa-r2HA!OlodZ%E!SVQERJv?Wh5uv;sc zn3${FR=)8`#Mh$wolw0dAMwq;Pb9af9M2IlkisDPqBkGg3`LAic`FBepYr8;tN=U^ z24_v9Nq@{e)lzJ?kuxh;-H{N_H=V|5)WuPQObM&j982Pz$OxlMyPClJ!7Aex6|PoS zC5dci^IU)b)XB90AGtI$@mOO8 zO!nn4S;g4HwNrt1*P>b`>G)|wmzL~^iJhNz^d+*{r2WpS zupn>>Gub)Wm*ro*qN9)Rw%FTb+@ER?$G`4q7J8W4!1nphoSxQP3{60=b@iQ#euno& zEIcB-#>1jro9^CFrg;Htuwnp7h&PVn=ZtWF&<#oNO9~wmGdJI(oY0RA$0xd315Wc zp)oL7fUh#+p}0dL$`trZlw~qf!(<>C*f6>4Z5v0j0YA?k$}9e8$0JuM4H}L*($e`V zT>=F*UWSs7`QfSkR~cE-W%BQ{W-=tozG37truLAN(G+7o)G8NzpE2svw;sM+_Vc&% z)8sTI*Uvh0R#BVY-hM>Y14bU%BlikmN}%Y+933Wm>N`>*ae`W@sq=%pJIg~VwuW~T zs?S)Z=qsDpCb(9~gzlI%MN?mTL4BxK(U6+!v%KtmLmqObGq#c3nG|^nN%!e9xt@nB zN8Xq|bmVRtCV`!`jbrMrQP_mJKIVXZe}*%0U>-XjT}DpokJNhsOif5Fzg!Jx z?m$M5maFChrT2zqYE(|}U5RE^3FKkZ<`GD&@Y7YX;Wp)yZ_IFGG~HX3RN0W)0O73bG?t#8sbP^0?$7m!*9)*I~dgKcOnwSff_nOVtaa6pe^q zi=XN!j4p_@ja`ht$*U1F6z>*qCX&i;cE(5bd-m=#3a!RVjXHiACHiTK6BSL8cT^OT z(qqko%#+N6&2LYlTD5p!Pt!0>q3yQOp|n<4k7 zckeEgR0VrJ+qU`Iydb#{&6&hm$H~E|#~F`oLvbWIBy}XsBz;7-S6CaC2EWx`hyoU9V165gS%GdwV+d%dc=qMOck)|wAlfU0g!FL`fd^jPuDBk|^oFK%Uc zJoqL^D;a7Sn#?-NY9_QSq$9j2blOP3=&+%E#X`w;^V^mrTT`r8d!Wq}w!ABQboNPM zp76M9{j!%tl4;2(YxR}t?hX14?j61z7?tE*_q(<9o5Rko=c)s|2ALM;CZ2VD4x6Il zzsXAyO%{JtimmBWE}5wV?Q7gGhto%BW5A6`PeDsS8rUQsGj^ z>s;#!ydYbcJ&HZo?a{TN)sNdlI~tT?l#glVK$(<^l=@Usv~ZeZhg~R}8_651{ZB*s z%y_O2uu{nG%DLXTNQ0s?W!WaOiwGef^DTKi({uNBccT-1zMud}=8zFDKujq|6tPM;iS+z&q9lsBVRv~Kp?ZH96vy87-;)W9OY|Kgt zm-jva55CCbgks?PO$;BF)8lP!JWoi{~S-#x$LX4+Ua@wIL- z!X9j|JhIxU*cp!F8g~d88_;^BRZ@4|x_o7}P4>C0)WD;k4t3Xf_lox0IZ*!%ER?&k4=c}+yd^DRoTGvc2o+qX`yq|jX)@d)wCpXc98 z-FVt#9AcdI=KY)CrT-8v7t6y3;;C-l zUu4_vd=3p}yL-XFS*ogHx-Yq?q-dWpD!f;B*z4oA=?-LUqsnXM-hMLIq0l4SpG4|z?q7Q^ zIqx;L*GrYha83G^r`VqL9(HLeogbueJ|$neaBpyH$TF{Xed*EA_3rW@tBAm7a*+Ml zZ^atThr9E-1r;k47nBN>y2HMOje3@@x2|@E#rIF$sTcVEbThWMAl2J#r`F26qh-~$ zcQH{~bu70|eEZFY{YQ(r>3%o-N_I}jSV5iihTmS=4tBjga(+o;OCvTlT-xmx&F&X> zK6}gA@y&p>oqy775`!fXUx4hY$jQlKh&T%{iK}XZO@C2W7>POmBF8_dxQ?@v3)WfJ z35U}r5S+n~%V6Q~BVZ_CfBspR15o~n_n)x+fbj~(9su;ez-))H0yHa0^Z`Or77(l; z6Jc=_3@nTkg8^z^OcZ!YL`4A=ssijQJXXfR$_@vl2$3OTNiUH&3Yba?NNNbffs7z> z7)NCs-pbk;Bnm^4b{EcG9~ei{n3#jo0YVsJ_+tnd1rz--L>Vkb^6F}JP$@7H3E0&! z?mt=pFeuPLhQQeb4h{zVlHS$dkoa9k|2V3Efe~VGApXyT3pfk~`2V+~4ZzDE#~FnN z1UnN07U@l?ef;-}78rO{ip7bRTny1UA!c)Ct^8%+s0JbIm!JuHZi&&2Bt^x4qr z@i#Klz=Eyc@+Vlg-^D9qeUTo=&KL1k*hIIT11nG`_y$3!Y0`o20~0Nt&WDe{fkR8yh70#>iV(P4z9DIt;hL*S1j}-);K% zWo3|18j&qU+Vg;LD zK2A;!F084%cxk`}DN5MB#{dl!G4pgNJYOGhW9dt|pq`h$?{4eqDfniATVQEqTQFCd z#|mFi-2GDS4L^q3f7zk>-j$(+2(A>mEjh7fOYiOJO|{!{RkQd9tj#9%pgps-L(% zzT@xIWgyQ9dN?^wCmEhsBO!bAy=wR_x?}iWS4^J6(^WJU!q#cGX)>d-P(?$?>d!fK zJ1;kVx=SN&7{TbyOp9Sb2;{59W;P6z`s?eWW5Rb6kK$B~OfTw`QHC*b339bQ(@uZh z7itpqdfIGd!oEYLCP*wHKi(RC6m$I8ir(c)G`fZ> zsKu~%0G_cx!Oe0(8*E@XGU7k{(k9C(-boVfg$#{o(Z`00Dy2q5s2Bt)Wr{4?`v2uN)Sk|j? zMi9B5Cv|t`EpB5dX)E#gJOXtp`+8$GO9_Xn>w5Dq zEBdSRpE;f70da1p)laxl zSy7d*>bVIKTFBpacc77d$n(Ve!SJs#8_mfK9wr1;J#CrI&r?UAH#+hSG!2VBx1F;P z(R;W`G@G@^E@?YbrE{iILTpPP-pg@%CAgTiFKs@nw-?c$=Fg<@a2cG!7~b10$lTmb zF`@d(k(Tgmf%UFQa}buj#mLdl&_U()<;PWM{+b|OMf*z-D76|nzi)X1%Lj!IEFX@3 zII=3`=!j`jt#6+ukeTJ)53y>et3D4`AA!?!*!hV=glG+F96RsrG7}|cy?D6Rq-rXC zA3v{Pe?g(t_d^E=_w7ToBL{Oj2jBvzoH`(_2nAX z4EV}mSuQY(>95~B>ME+LO7>vh9~xSG?5j2hDb+Z#Y-VpbT$>g-6&|X^S{bogG#XRA zsdndtHEq*bs+#*@ZXuf>r5;w5CN9`{MV=dnrTggF^9u)6VZ(OB#%A)!R9E5HWWusK z)z=9R@r#MKL|UJ_>|key6f>5a_autTrzWnZuMNN&LvwisDwead5Ws(0=4x^`VLq(0^f6r{xb+kVW zUwmq`BSE*&wDa0X(QD%VaHR6;+*D)H*0VmzH!H;Rjrs;=8eFOIo_%*SB%hxVhUp}z zR8XZ~i8y7qFSDOk7nePzcJaPuvg=Ocni#24u%uM<{G5+Emh}x_Cr? zh2CH3R=*LO&ruh@d)_`SA;rnLG!lxvEAOdiz_aP*$v4NNvTfcmCtlC9^gj%uR1j1g z%GT--c^w-QNtYqS`-PjAUq^J7_OOz{)nw`m5+~je-)}DzAS9&Ml-?~`W^Tvvp<%ZT z!i`}?qboX14@cby0YYhP8xsZI33Zp0<^?VUa(;_SYtKE53GU?kUX46c#LwL?$X4|D zakAO9i)H@%^L;*K%za0C{;7okTK5}o#ybNH>zpM(bj+LyW<(IT7&$2SBxmputzq$-3a}EWmK65)6&HDgf4U!8kd4f`MCvgKG(QX8{mI z4!E%am^Ap@f%X7g9vA>0@}#?fbMhD9P&f=K4oASyNHG-D7z*VF{(y1n1dIPY!2ivL{6{Vbgy=tQD1b`;%^wo_&$S^DP(U>P zH5W7r;Jkm>oSiVh4sbfSkki3?;s8v6TPKp}JrI3>Xg$z#2U~~KkO#EQMRODsZD9#R yBC#j{JRA~^5H-i*EU<8tISK}}q(J}okRJ+z=nU+jgKDBhk>Vg;UIh(B(0>5$6C{=Z diff --git a/src/test/resources/sample-files/file_to_sign2.pdf b/src/test/resources/sample-files/file_to_sign2.pdf deleted file mode 100644 index 033fcdc01071cdf79d39f5350c96378a865cf08e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7227 zcmbVR2{@Ep`$q~xma=P^WJ#9U2MO7i$i63yF&Nv(*vpz^P4=abeao(teV3G7sE{>l z6d_B#XH@UoyL{jOy8h3&%$)n2bKm#*-RHTk-|rk=O?gFOm`bu3bhw^unS^zs;nJ;#3;x~@191Z z!$)KS9myIx|fdoftY#D`Nj;`)PsxW5xZRd0$*JA zo|L$hbIgWrdq~AhD;P1I&#&mAxE7$=&Qxjaj%1Wz*R(1KjNEUA9XSR$GG?CA z0BI&%wvWp}?nZC07hZWyzbUxgKOu|FM8tL6kFz~=lWf#P$^wLQu=u$c;1>x2*l$Sa zdN=}0*Th&I{CC1RID_Fpw>B7}jUy6VoUk||82Q5>M{sZk`iWo?lE46UoCO{uOK=C9 zKmh|v93=u51B)SHB4XmEAOOLi(MYp@;jZaK!0OelL1*oSUxB2X4>2S=0h}J7&Y4(wd56MM#F4rRtiyTV@Z4MM&lzN zD~Cp`R=kF)$TWBTDVv-P$$gP&hRmN98?PQa-r2HA!OlodZ%E!SVQERJv?Wh5uv;sc zn3${FR=)8`#Mh$wolw0dAMwq;Pb9af9M2IlkisDPqBkGg3`LAic`FBepYr8;tN=U^ z24_v9Nq@{e)lzJ?kuxh;-H{N_H=V|5)WuPQObM&j982Pz$OxlMyPClJ!7Aex6|PoS zC5dci^IU)b)XB90AGtI$@mOO8 zO!nn4S;g4HwNrt1*P>b`>G)|wmzL~^iJhNz^d+*{r2WpS zupn>>Gub)Wm*ro*qN9)Rw%FTb+@ER?$G`4q7J8W4!1nphoSxQP3{60=b@iQ#euno& zEIcB-#>1jro9^CFrg;Htuwnp7h&PVn=ZtWF&<#oNO9~wmGdJI(oY0RA$0xd315Wc zp)oL7fUh#+p}0dL$`trZlw~qf!(<>C*f6>4Z5v0j0YA?k$}9e8$0JuM4H}L*($e`V zT>=F*UWSs7`QfSkR~cE-W%BQ{W-=tozG37truLAN(G+7o)G8NzpE2svw;sM+_Vc&% z)8sTI*Uvh0R#BVY-hM>Y14bU%BlikmN}%Y+933Wm>N`>*ae`W@sq=%pJIg~VwuW~T zs?S)Z=qsDpCb(9~gzlI%MN?mTL4BxK(U6+!v%KtmLmqObGq#c3nG|^nN%!e9xt@nB zN8Xq|bmVRtCV`!`jbrMrQP_mJKIVXZe}*%0U>-XjT}DpokJNhsOif5Fzg!Jx z?m$M5maFChrT2zqYE(|}U5RE^3FKkZ<`GD&@Y7YX;Wp)yZ_IFGG~HX3RN0W)0O73bG?t#8sbP^0?$7m!*9)*I~dgKcOnwSff_nOVtaa6pe^q zi=XN!j4p_@ja`ht$*U1F6z>*qCX&i;cE(5bd-m=#3a!RVjXHiACHiTK6BSL8cT^OT z(qqko%#+N6&2LYlTD5p!Pt!0>q3yQOp|n<4k7 zckeEgR0VrJ+qU`Iydb#{&6&hm$H~E|#~F`oLvbWIBy}XsBz;7-S6CaC2EWx`hyoU9V165gS%GdwV+d%dc=qMOck)|wAlfU0g!FL`fd^jPuDBk|^oFK%Uc zJoqL^D;a7Sn#?-NY9_QSq$9j2blOP3=&+%E#X`w;^V^mrTT`r8d!Wq}w!ABQboNPM zp76M9{j!%tl4;2(YxR}t?hX14?j61z7?tE*_q(<9o5Rko=c)s|2ALM;CZ2VD4x6Il zzsXAyO%{JtimmBWE}5wV?Q7gGhto%BW5A6`PeDsS8rUQsGj^ z>s;#!ydYbcJ&HZo?a{TN)sNdlI~tT?l#glVK$(<^l=@Usv~ZeZhg~R}8_651{ZB*s z%y_O2uu{nG%DLXTNQ0s?W!WaOiwGef^DTKi({uNBccT-1zMud}=8zFDKujq|6tPM;iS+z&q9lsBVRv~Kp?ZH96vy87-;)W9OY|Kgt zm-jva55CCbgks?PO$;BF)8lP!JWoi{~S-#x$LX4+Ua@wIL- z!X9j|JhIxU*cp!F8g~d88_;^BRZ@4|x_o7}P4>C0)WD;k4t3Xf_lox0IZ*!%ER?&k4=c}+yd^DRoTGvc2o+qX`yq|jX)@d)wCpXc98 z-FVt#9AcdI=KY)CrT-8v7t6y3;;C-l zUu4_vd=3p}yL-XFS*ogHx-Yq?q-dWpD!f;B*z4oA=?-LUqsnXM-hMLIq0l4SpG4|z?q7Q^ zIqx;L*GrYha83G^r`VqL9(HLeogbueJ|$neaBpyH$TF{Xed*EA_3rW@tBAm7a*+Ml zZ^atThr9E-1r;k47nBN>y2HMOje3@@x2|@E#rIF$sTcVEbThWMAl2J#r`F26qh-~$ zcQH{~bu70|eEZFY{YQ(r>3%o-N_I}jSV5iihTmS=4tBjga(+o;OCvTlT-xmx&F&X> zK6}gA@y&p>oqy775`!fXUx4hY$jQlKh&T%{iK}XZO@C2W7>POmBF8_dxQ?@v3)WfJ z35U}r5S+n~%V6Q~BVZ_CfBspR15o~n_n)x+fbj~(9su;ez-))H0yHa0^Z`Or77(l; z6Jc=_3@nTkg8^z^OcZ!YL`4A=ssijQJXXfR$_@vl2$3OTNiUH&3Yba?NNNbffs7z> z7)NCs-pbk;Bnm^4b{EcG9~ei{n3#jo0YVsJ_+tnd1rz--L>Vkb^6F}JP$@7H3E0&! z?mt=pFeuPLhQQeb4h{zVlHS$dkoa9k|2V3Efe~VGApXyT3pfk~`2V+~4ZzDE#~FnN z1UnN07U@l?ef;-}78rO{ip7bRTny1UA!c)Ct^8%+s0JbIm!JuHZi&&2Bt^x4qr z@i#Klz=Eyc@+Vlg-^D9qeUTo=&KL1k*hIIT11nG`_y$3!Y0`o20~0Nt&WDe{fkR8yh70#>iV(P4z9DIt;hL*S1j}-);K% zWo3|18j&qU+Vg;LD zK2A;!F084%cxk`}DN5MB#{dl!G4pgNJYOGhW9dt|pq`h$?{4eqDfniATVQEqTQFCd z#|mFi-2GDS4L^q3f7zk>-j$(+2(A>mEjh7fOYiOJO|{!{RkQd9tj#9%pgps-L(% zzT@xIWgyQ9dN?^wCmEhsBO!bAy=wR_x?}iWS4^J6(^WJU!q#cGX)>d-P(?$?>d!fK zJ1;kVx=SN&7{TbyOp9Sb2;{59W;P6z`s?eWW5Rb6kK$B~OfTw`QHC*b339bQ(@uZh z7itpqdfIGd!oEYLCP*wHKi(RC6m$I8ir(c)G`fZ> zsKu~%0G_cx!Oe0(8*E@XGU7k{(k9C(-boVfg$#{o(Z`00Dy2q5s2Bt)Wr{4?`v2uN)Sk|j? zMi9B5Cv|t`EpB5dX)E#gJOXtp`+8$GO9_Xn>w5Dq zEBdSRpE;f70da1p)laxl zSy7d*>bVIKTFBpacc77d$n(Ve!SJs#8_mfK9wr1;J#CrI&r?UAH#+hSG!2VBx1F;P z(R;W`G@G@^E@?YbrE{iILTpPP-pg@%CAgTiFKs@nw-?c$=Fg<@a2cG!7~b10$lTmb zF`@d(k(Tgmf%UFQa}buj#mLdl&_U()<;PWM{+b|OMf*z-D76|nzi)X1%Lj!IEFX@3 zII=3`=!j`jt#6+ukeTJ)53y>et3D4`AA!?!*!hV=glG+F96RsrG7}|cy?D6Rq-rXC zA3v{Pe?g(t_d^E=_w7ToBL{Oj2jBvzoH`(_2nAX z4EV}mSuQY(>95~B>ME+LO7>vh9~xSG?5j2hDb+Z#Y-VpbT$>g-6&|X^S{bogG#XRA zsdndtHEq*bs+#*@ZXuf>r5;w5CN9`{MV=dnrTggF^9u)6VZ(OB#%A)!R9E5HWWusK z)z=9R@r#MKL|UJ_>|key6f>5a_autTrzWnZuMNN&LvwisDwead5Ws(0=4x^`VLq(0^f6r{xb+kVW zUwmq`BSE*&wDa0X(QD%VaHR6;+*D)H*0VmzH!H;Rjrs;=8eFOIo_%*SB%hxVhUp}z zR8XZ~i8y7qFSDOk7nePzcJaPuvg=Ocni#24u%uM<{G5+Emh}x_Cr? zh2CH3R=*LO&ruh@d)_`SA;rnLG!lxvEAOdiz_aP*$v4NNvTfcmCtlC9^gj%uR1j1g z%GT--c^w-QNtYqS`-PjAUq^J7_OOz{)nw`m5+~je-)}DzAS9&Ml-?~`W^Tvvp<%ZT z!i`}?qboX14@cby0YYhP8xsZI33Zp0<^?VUa(;_SYtKE53GU?kUX46c#LwL?$X4|D zakAO9i)H@%^L;*K%za0C{;7okTK5}o#ybNH>zpM(bj+LyW<(IT7&$2SBxmputzq$-3a}EWmK65)6&HDgf4U!8kd4f`MCvgKG(QX8{mI z4!E%am^Ap@f%X7g9vA>0@}#?fbMhD9P&f=K4oASyNHG-D7z*VF{(y1n1dIPY!2ivL{6{Vbgy=tQD1b`;%^wo_&$S^DP(U>P zH5W7r;Jkm>oSiVh4sbfSkki3?;s8v6TPKp}JrI3>Xg$z#2U~~KkO#EQMRODsZD9#R yBC#j{JRA~^5H-i*EU<8tISK}}q(J}okRJ+z=nU+jgKDBhk>Vg;UIh(B(0>5$6C{=Z diff --git a/src/test/resources/sample-files/red_100x100.png b/src/test/resources/sample-files/red_100x100.png deleted file mode 100644 index ae6dbad7bd3629fa7610ce28764eaced3959c4e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1359 zcmds1&ui0g6n|;g(REJd#9tFJMo@7sX)6j1Nm z&b06kBju+wBySqWP6dSH4y4Y~HY(jhdbuUrqQR7)1pm#r66g*u%4B+}E zO=gTta*Qu16*gZ~rV(paRKfzmu16~nx+M^kzq)p=4IDuNTpULS$EpP4RR#H1z10~6AhWt zE;JIcX;xo$I)RAsQKh14NY`;$;ecQz_{Y~O&&H>bu9T~!i|evvgo6&H!`;ccs!0ex z7D8)gY4>&FQ?rVp;8&zcg@kM%4VUP!w-fG;XwxEn^C`(hTf|`s9GQc*xv+=M^5Urr`vk5z!C~K#;~R7M>j@=d zkx7%<{1n&+G`IsJd;T1A4g3_J-TP2o5jQ4scjw-ohM_NT@Fm@!{!JXjl?hb>yOK^Ah;4%;h8rM+I`)6>OS4) z);;ym-PLvLbL;ab08>d$Q4Rq0&sd>Y0f5gPfHVLV5eXRy0Tme;84V2;9h)2n8xs?o zmY4*OoQ0l^m6@K2iGxo@h=W^#hlxoTC?X-JsG_REE~ss&rDPzZtfKfo5GXV>G;B<4 z8XO!NMJ^^T#s6>n90p(^LOnq}!9Y<1ps}D}u%JH20VDtbG&Bqp;Qtyl3;+ri4j$p( zq7)_o8VVW?8Wsi)0Tv1d1`YrP4S>Odg~O)ek_5uzP=mPL!fQ6Z$MVS1g z=DHl1S3UOLgF8l)gTfwD?&d^gtjKdF0a0S>ODbAPwR2Jd8VMrXkJdQ|nPw#LRB6_f zP*4#SOe(nNv8|{yRLaaVpb%A1rmgj-CB|FuQ8`xtebS|p^&3i#b0opdt^%fbB`l}Y z>WCbS-!slf=6?FhdnlZp`MM(a04sp1QU$*k5eT9K#i-7OZlYH=wVl7D5ShcV8d?Co zgHjgV`dvCTXO9H7tJ(QFH_Ovk39E>J@T&thz;IAE9& z%eiS*x4DNwMw+JTerLWSWUORZYUzy73@pQ|!v~sKd>zq`ocAKxeFm(LmA_TDT571L zIKTBnaWwqOCf!WpUN(b!$#c9^{hJYnvw80s706TWTBFW1|8)u_xnAKLM*C9{h1i*h z>vE2W-!7wq3>Ko=GFS_-3WqT^Mqhy*Gp$w|Seq7lqpN}C6m?5i3dJfV)yTY@eGMCj zsH9$2<1*=!i%%;``>Y1ra26<-xFXBFt3v!?bPsv58)42OJ8bt70PFjQS8|aOug)on zCAC{$V9T~2xgbJBGP|eT~ zKDi|*c<%emP^n2nFuZOf_w+Qqf;lXHy?x^P6+N4=OaN7uX8UNZ=DkfVr|X^+?vgc_ z8#X;GhtY#ljwuF!IDrX7#$1tTUI$5_7np~_vK>&ln`)r;=6Iu4R*yaoD5h@1UyrHcL%8qAAC6N|BpDvTQ&7kdAdTqx**fQ}rk(7fYpB zqi~mCDgRF5^rf*f_F<&&54}mL`bSq?u;R7J*x&7?^bAguB$0$>SQ;WxKX}6KiwNfC zHET=?LYVdz%_g7tK=x}N)o+U_2{T>y-A&fGVwo^lL)okO&-Qt1J86TSp2M+(46*x zpu??Mc->`q7FUk>J@%JF^crlcjHY{+$tAq5Y=vxUBzFr!d2KG#Yju)p2zlhDDEqJhOiGJ+?b{E~9l+ z3*xb@h6dSKf5d&^C!I%fu6zqV46NgofYwQ7sP}sEGidA8`#e|*LF8-wu_2OnPWOZLwN zF#(+?+fEZM?xWrAtCd$AXpG!=uNMl%9i-~JMS`nbRbCcL=TnGQ)66puKmV8Oc*&cc^Z+Qav4Pwe)&sCe2TIGVv^FwwWPS8g4kf#(hF z7A!d7IH@@ry$xUf$kSfrddNH&>=o(Rbxll6oMAT^!mQCI{Q;uo*(v{uzi&+8bV9CiFOJJ{wPOgzq{S*CV z(*5US6k1ziS*5e=ed4Eq5q2_TRXLm`nYF&}o(HQyVm87kW@%^*YQpwVN~|z*cxWx{ zRN9&i9IT65_71g`yB=?03Ii>S81MB>)tF0sO`sk-t0YCh3Ak(b6M5l zO^t{9iQ7yp22%5_(XR_AOwOYB^y}$lm3c13 zz1@SHa9(VzK&#JyV#T(m9$sQBLPQ^557tTYuhv>W4;VFAPc^}RO@Bem3~oc`&&29n z42~-*V003ePIwWj0u8#j(irS2u<~o$4QK2?jySV(%N<9041KpQdawG`;Qb!kuf~I#qsspA2WY!D^AhMp-lR; zEI%0XPW)_yc>-3H>HhMJ|2QNC5vi&5GB4&=L}3xdj99qQui34IWL`epqJr!I>wn*? zhj9Gll9-t)v9tqJi9Y&iCiyI;)II?<$K1DQhtCKN@olAJC)8kqRsK-rf#RU%PRb>CZMxMU-k2jZRu%=+qc3sFp zw69~P9TO`EdI^?0OQcvp+HRoZss933BQKn)-1tB6jU@n{lTX>M4Gxxbd3u!?(~^jq zsH`%QLdfERy9q><$2^8-gJ_8X42?EuqzD~3Y!gu^jjUKFsXY^&iJxh`*zUAeM^Se+ z>bWY<5Y=OuMzFpsVYO&i``kxL;*!IaTSy7u_99l2bllrH5a4WA4s73Mh^Y zj6Bo9Mav#5$+;)-#KsXBbe2FMK_WBQuxI_ak|d2G`mS_g{ziU3P)3zdBW-klxF ziY!~l&{_(df5ETn;5^O0No18@WI&54jVNP0IHzNFT&DlSk)DmJhUdC$e9t5-h)NMA zcE!&_QrTNcH!xWJTV>W1dE{V1sa|(L5Bh1O8IbZzD2hOAW%r$q`@t|yOkbDrn;ee$ z`5?yCRTnXv$k=#~v~~9{WU=cmoQ*mZfKAN!o5d-S$99lo_q%d`aO2_3e`190(t&Ei z!`&$i{Je94(r@Z&@P6JyM=WjZl>!z*$_8NvRL z!V{k$4UZ;c*uEfO6v0TS*PoEA;CCDM!Ka00a8Ibcu5u%haOYzFH8*Tbdz)g&O_Z=s zTa}%iK|J5rBFR4jC;E49oeSbiVS&)=@#NjP zAfaTiy3Wt;^`zxSYUyYR$tN6beo&=`a$ToZak&dtKc!%*Qjv*KTUMJ4cE&Yw9LD$F zr6$%q5t9If=!zE>DG&|7j?5Vxr9>GxW>Dxakf?QMrIo-m&hUeg^E3CLl4Nbibfq02 zt5~ukY^=z!qzw}ZWp!AMW}2+~?&~&;TZ-&<(L6dWO`xcUDhU4xsCX`5lQct6s{SPr z0u<>lDf|RPJHEZ)k)NN7D~>(--V*1GeFAI>c}~jhgo$)lyO`FLK^@~|zt#DZY=x8W zs?eJ(z6+X2xU)8%DpL2O1L>RUlK>dxp^)B)jLJJLTldF~+Huencp{00dkEp+C z$F2DWOzTjC_{95H+Fw|8iIW9TpIFK|`0**f^W5Vr8Zk`hzc*h6Uw;Bh-_-s~c|hUb z7XR^gew)krlpZ`xO|b|pRAz);8O}jO9A;iIB*ZqvhQ>E3g&>8-`1~#SIeNhLWzyuw z6V(gp;!H}_Si{DvE!+zR#(`by_LGBa?w*s}>EncB>mTEXoa3{jBw6Yg=#~5gpLF%9 zhg^8X34sZ_Ros1|bSl|B;BFYKG6fdr5=uzuI3^*U2qC1gDx(V&vO-5F6isG1;RcdN zIBZC}+lol2;81yV$tb(a7QPm=pmH_53eNC+Vmh?X)4~6_;H`78|FUbM)P9d&ae4?g z6&rdM(p;ZnFSe1NJ!_P9x(?v)R~8;yD#K6iN1AJ$!(xBnzA~x+Si)Lg_j7Jy31l}~ z+7Z*iX`st!a5cD4Q^ihOAG=V(u>Y2pERoEngz0ZVgXPVc3IEbBWa&#-QRlh3x?cIg z3=7Stv*t^xu;5|On8~HKGLkU36p04NQZM^)xT17@(H_e|#4OnaU(;`%S!P_@LWDX9 zzfzG3+h1mt5r?QK?_rM=&X1YuEJmd-Tfe1vipUfl(VUI|rcDQ{v;50{b(q%5-kE7w zUc6e;WM7NkgilE0*=$@0FdBZmMnsLa<+skiXDb=%N)h_@e*yY?c>GMXt~=yZ+YoP; z{5UNK{v0U>-sxZHLqt{uXu3sG8s-{Co||XM=eU%e8lHU1XEHEitK&v1{hdACzFOf- zba(gK%3?my<;thgMl!m~Ow8Zmwy~nA@L6|*TCM{A&;w76eN{(l*{6L^ZNnO~kLo~< zZ1IIDZu^&94As7UbVNml4y$Hwyl|VlUO4lO1JzB-4!Y&!w~lT2`p$uPh)U^B%!pF) z>xjIxL~i`Sq{AWIzrg-*E@96Ce`!LF_=Ku`{uWuEFmBG91dI1pKakG%?(WOOR^BeX zmiH=>rCrgcdiXKK3*=BgbI0Wjr$)ww#7>S6O@d;993ZwY;r^^#M3E!kTPSR%TfAae z6n1_Qr24Ht%<8bvu$Ler6yMEXnGzSVr&ek^RM&8kp>^dVO+@xx(8X97Z&d)G+M`0> zrWcl!fX?4}xKLo~6(;|tZAh7?EKniW-x*pGzQ@>=v&JsN1GxzW5=GJUAj{4z5p|Pt z0+^N4cFiEuf5%~3NmkGSV&5$)p&<>boS8zGezU~xtlXM%afKlqswD_NKYzC72QB<4 z@y|@M|6&4ACK~D*JJV*u2e3ma{4^ig@W*_688HJUO_78TP#EsWjx%ZL^`vsfbNVR? z`lh7teo8Q#Pi)`Blq`bW%_G<@}y6Bag2J3q!C<~C~@0|oNI2- z>p-LZZ~x^L=t_L^km@Y9{RDiw7Jd~OWU4F1_#m>aPXE(iunh!!ljQe$2y`a5cOY90 zd3*v_^5&Bzo*&Jj#vfjlPE55s_cJ9fF`GN^@8gMIFvxu=$kv8FXBq&hkJrefx0OSrHu=%uulXHjyq!T}hrB4s`RJ z$n~$p61s(dwX)dedOaS%48F+y2>!L@86jq89+5eNC@3Vy5c7}gg6C%ACx8Mugv9+5 z@S1Wd%77A688Ny#rlHDvolP0Uw$xsRL#+M0GhpN$irOI`zSRWJ3k`zr4qYlurB}XY1XE6x z0e#YnMw#{|EiGDD)HW|HC(&AJ=GF)1-E+UyLBh9tQVi>*;%uEmqsGE{g(_85OM_d6 z&y`hB2R_#Mz8?y!OgcAEtMR_XYdrHE0eV6c+PR0Fs9QNJ8TSp|Wn(s8ND=2I972~C zOiE$!`BSkc*`T8@`oj?+su~)lrphDzLw1a~X2QxD$#e=*DwcXC(smcU?U?=GI$q?d zBs!>7fGt)xLT^Xt?dcG z(AcZS$s^TmL*gPIzY|&86a}eO@;x2?C;o<(aw+_m0jPSIqn-(@nR0aJ+asM-bIh$2 z_!IA6R}5Oc6jeu0Py@@DFv5kB0rEIdPAW>V9JvKN;kF-ron zG%U+4h@j4Zze?SYF;hm&GW(nex@Zphj?2J3rsg*y?Gq_D5JdtShe}A2yR3!nY(;1^ zs~1`KY{If8V*}Aq!8_b14;X~-&EDZ4a*E!b2X(Q^#JKGyeb?7i9(aXq&tmgl9tm4S zpHESI@HPI$iv!}=63kd?#{QMxos|I(xF9v&F;ghYknG--5nhm+skbw;S{+|!@?3f2 zowutS5Lc_eJs<$F{}0%1QZfbBlr0ToO-CtX|D(phE5MTI1SDmnDa)zuEgYc8rA>O8Pft179toSne z{CrdQXE8AsAM_;51+xCaw!=&(VwOe!=sC{j24+o7!{ek=FT8#Gg-l#D=EORdQZ_>V z1nj>w_Jt2Ds3wWRTM`=tAQo*y7|A{TP%0EKVFOn`7pyb;y?*7aO>@?b4OyUEUAFF) zTq0ZOET6U{-}vapR9wJwb`Y-;x2iAPOlTRGOlGR0C9QQu0;r8`z;vpggix~*pHZMa zdY%ds6?&i?)5sbAK4y<@fB_;zgrM?1{*{N2Y$O)}f<(lLdtXWZMhdoHv@Uk*_C3+pZZsFl{(T3rxImj|~Vj7p%()JeM! zANiDr!pde%=EN?QzLd%3=TwU6bi)f#Or%4$Jh6W)U zq7}WVvauvFreWPEc3(G8sT#kHM->%Wi;AR`nv`|&_o>M2RyqgA1FMaIAiCZ#PRT2< z)qh@vUhQIYTz5^FcE=(8)PQtF*#Uo~TB?xCN)}tYDw%c8FSu6EbpdiXHjBtm z(kjv)<+9RJ2`2daM9S1pO3JaoSNR-T)vl`$p~dd|DdEYbjeB1?wtlM^34Rdw6>6eY z-dg*@Hy%wzQX#5`{UtmC-dH1muW!;6K6c3mVktH+<8>-Vx&3{XkX;dPM&g<=Kb6uU zM`f>i)<|08!HJe0?#7y=Fh)O9iA34m=qZUFIf;oaNFG9imk8XWA<&AX;30j66SD48 z^|QE9JRU>b=~R&W5#5rR1MG)0nh&$as+i1R+fmwbx00+d1Uz?sTOoT#%sP`Z8+W4m zjikiNhA3;1ifFE6a?jz^Y4Jz#~Pp? z8m1t00FW1^SIetRDAX;L=rI**2+oWZX`9lJov8QjsFV)!Q*My7M#q@zkn6dK>-f_d zeL!rrq%k!a?SPhc3;F5lHghlNOw=%`6?!o!^6tY~Z{o=DkR&gQXh=&GAwumJhpeCw zS3IWqj;~YW2J5vbGEZ|Dnf2bT1ZE62H@$@aMZR$kCfLTNZUdoVt=P^|rxDvtD~Wqr zaRMUBz%qGoFTuuK=e(qPji-YXdsjs0@LTF#w$bIWRjIIxXWo&kW}&97lt@r+JG;D} zb6BRV<&;lbEr13?&)(uxgRIm)h6@%E$sCcY@*+W^u##W5Wr-C1>ivv9Ork+nlVtzkQHb=A{YI<#LYeRT5GCu*n^|XC| zsY59L$f#9JBbn083ad$0P-&1Qwhol3JvdnZhpjilDEwb)!ZaC$C2V-V3vFo)P8X+Q zObxFQTNhR;5D7wCNY8yoXly7%22;227*jV%Rf^Cn?}j2xdS@xw4L)gVJ{Mh*bqwVj zzMLlwreb{GPpJ8$GUFc~tA7R9b1$Nvk5VExY|62Pg&ut&bDqvQ|0v^u|tZpd&`5cY$eMX`JMzXCqT;Ng!#Wnea2WO zs~ymMOQqlL1iZLD2_mh@aW;?@F>eIZxLf zKRl~6oaWUS68cVRlNf=~^zqD)U!nz3P~H-O``b>Ee-x_v>w>E|hEEYNsv~S?FQR^2mqO8 z(quKSL~Mkrc(9-A_8ow6S!*M^k4ow?@!sZs<5gV#%F5?PlPp z_VV(ZCNaR;+huCM%UxM@(9V2!>N%@cpB+!J%toW;jcno!CM9AcfNZ5c?NU(b~nL6 zRUPG--BO+Doi2~Y?$pTsR~+7NY9yi)LDi%z(Hizw2y~5`mt2>p9rub(vL=#)9M$R# zn^E0E1cgcTDQ6GAxlZOQI>&bpJm#%Q2P=h~poS`c!z{_42u2g2s9tsmJZeCHU*CFQ z5bxbzM=Z3%^3r#8_28X@C3ZZnBC;m_AWu>j8`UV$-;j_X{x(f-aUi1p(x66#%e*Rm z9^52mHv9D@XnQ|kHv`HbYr5jM4~eOzsW5>!-FMCFum0>9xLkN9dv!VD5qf}t5WyB> zS z@>NJ%D)hC-2Td(wSBT%@&lWamrZU}c`BmT_TelyJf9Q9Rl9V=N^)zL#F67TAt_2Og ze)&NhL_(79@57b3=~!g0#au>SKhKS8DA?X4RHpdWB`Y=`YOM{+zapCW zrq@JOrSJD^7E`AxPh!~IE}B7}wzIDaKw(2zZnk-(eK~JqX3LpfXvR^0V6OjCs*J$Gt&@P@85M)dJ_0V6OAZ(K4&A_L3+?jYf~lCO^U}mzXlMh)Cgz9>6MJqhxiBSR3w&OvJ@XWS)a? zl(Hr?;^45H@kS<|L6rKaT0$_m*pi}{6FXq#bm`}CY=NAl{$DzCr9@HtQBCx0XD?sk z#*uFGGfOMhnoIR5-PX^1LN8+zan|=v9pZyg`U(6tNyUX&8*9Y3 zqn^EkE#CiY*RI}r-Oa_Xu#r8PnZqrI-C5pdv6?v&&+FgVWz9RHxkt!sS(Ixe6hyDd}z9`yk(p z-f9o+b`O2VUiUQJO}S(*_&C(JLb9B_)Z$>fB zcKLze>eoB>p&I{~c2Ch_=-u257h^DY7fkY7S}9K;-M|DzvXstV+`Mflq^(kiIv6M%s;f6?NUQC?00 z$<3~*CnR}@tz>!4yBllS#s}GDlBKY(_{H}t;T8_k5VmIqlZ<QUt`#2*Ams}q(1?_?Jrzce=pLA-#2kkD4v-wH*a}w6`FQZh~?zB z{}t!=S?5UaQI&7wm@1^ z17O6%_K0cTE7~J)m;d`7>j3Uf|DdFsS@)HO9`u21gFT^rcykpB7Ug3+C4#mSY08OUtartBh4q^oa7U5m3M#Ec5GBmj(n2N zbP^Cp7;5XNyKm-AP8R4$YnESl?76PI_Vk#VVyUT| zGso(XU9S6Q5#LN6Pjq})f=XXqqD`*=+3?5F%carMio&=q&{D7l+lvhC6=6g);o{gE z5+k8gm8Mha2utu@kGD?MWHoWOWMxWFPnug2E(=$#cITd!J%e9MzNth!aqqem(~K`$ zco=HuO0Kaxg?#s`ob=6($pIqk>F(+$kdU_t@K#5TY1OP_DIRC^h&LR!=_x&DowcUw zd2G5oF4=Qh7PH~m%pMM|;w-eKCRvI8m!q}rvmTICqNTBuQWNb7x74t^=Vca1h~wHi zcY`Lz)*Xo?yHRg0?i1&E;SWHq2Mv4z7Mn$uD~ELj&c1}lZe!Qrsdhp(qfH!0_Ks0- z{(47vJ7RW4;%+ae|Js2Nvp8WIFl~DlzVsJa+C7Xm^G5;+8FIR`{st&kidqfqlAw59 zzt70DMv%lyZ2fy-&eajPC%KC^7;FHjg1iU*0teIca+}odc=4!{_zBIY*7S#EGx1&^EN~f0n`621#(CAZ*?+fHD<$L}E=n>>!m(t0&RzojqRM)Ok9xQ-}>-G-U z3lhoE12b%;YHCjdbjAOAFK^_r6W_`a`>eZLlvIHb^SjFzPnMSUIpshGO9VtV1;k&~ ze#f>ffra#=1en8m@k&ua9Pd-1=!ZH~M7*s5v1^XQuqnQ}T36Oia=hesESiRyMfqPx zcLM$;K0cTuLsab{`&|2Fgv9k)lY4Zm~ z9p~krU#XUNI?aT$U}Gu!T9vJo$05bbe(zSn1NHxC{uMpEqfn(0l@n{w#$>Pc>?V1n^EZS%;bn}IX$}8Czz{D`}(r&cNiQA2|fb#VY#Q0JdDl;AV~n@^~+eAsQ!}&#rg&e=}N@BPi5| zP(nT=JE5Sy%Nk_+fd+q>U8W_0q2TmaItw>qn%{Fy zO2sLZz1}`5EbE#YO6tX<<%i_&tQ5nHx) zI-Q^3nD@{MVIRq!O2f;R{f(og=m^)tkOqhnxq#fu&mGaW?t!FU*kgnRZb zw+XL#YnDYb_o!QRs?)a&H5t0z4xOx1oHZd{Z;eo z&Tx%IqsD%tQZoZRxq{-zt~mAI#jab(Jf^B`7|~WEzW8Vqf43-~h_EonxhV?t{3lmi zsJ0*vAo+9u?dTIQU3u_o8>dv1l^;_5#a2s;b$o!}T&=4%& zt!h_mXu3sh)zuruieHqAQ>@)5H*H|8nO%Vc(5LVjejBgK^#1F*6RndNf>p)&)aJ`zSJ6l=cTdFYFlx`o(z9TEwzm_GqhB0b&(= zwE=6_`O-eREtSF(_BvY^8r)swF1xNXd_!%tdFL`uX%i`$55zHSeNTRF_*?d636tMf zwgN}S34i8bUV4!}0SxFIUF-w$s}*OrOS41H<9+bNQRpj@{pmmq*C$Epg4R?e zb;RUeD(z6s0va`p9HI~!O61i{-Q17mJOl%I2nkxegPpHpSc0~OS{9A~POK7=f6^1_ zqQJOcl~672-6z09wo^QJsCdJ9#XQ?U6D5mdWWD1hwlyXl0CgnRRr<<;t_|+4Y$kl! zmVv0=PryAj4DRs7lF+RmZy|9IZCr3Wpl}8Pd=e}EwIak~`7b=lg!TjfQEcG2i=uri zAqxglPb-9I{Fe%&Hc$Msun`fyo&{mGW>1A-^s5ho*B6EuHV8sG*ePCdv-o z?bKHaeN1m7e+ngF9PsxqiT@g{ZWFk)=-(rDZ4cS%C_|2mgEP=#Yu=-$o^vz5s_Ll9 zt(Kq^tJ~!z#>0s+i;iPCE@~sSo!u_uL6By z*~OV`@C&}^gZDP|&*twsjBW7zk9-5y5YJa@O>xv^D?e}IY+OI80gK}y+M>sj(wG&7 z?2Scsm)v!wGON0mM8No)ZQ0*+l-&f*_Fp>TiJ?`5T3iD`#7kpCr}2jfSTB)Kad^y9 z7@9N*c%_~HCa9l)JWShVhmZyK+qaT3jX9+y$_tkVN0&QyWDfaT#nN8h zB2dOWx4RVdQ5HBi8U`s3l!R(RS5wF_Ejn_}{V{_kBQi%ND0!1&F7gZK=VRC+Oza09vF*}6_SY6FvM(PN>Pd0rhL9lY{dFQZiT`WS$=z-EJ za&_f9s8D@5vrdn%$$2@C^{TR$xgYj=zH8?b` z^f0cgr2A9%UQ4k@Ce~Jc^sEjqQ>@;?ee?rorjeO1wLHtZ1%8~uj#gdARs@L-qTm$M zZPec91J<<{4axI$F3$LOt5Zs_mfx#5^5!AM*d99&uWP&YPt^iwn;Gv4|m`pZ&BA0v9yt%z>nqIHl0MXBzIj|_2W*7J#7 zGp_sU;Nc4^4=zRi`DnonW2yp-C(r zkgwhJy%gLihmUTKtonD0(k7h`shk1)-u81N32U zCGSJ5MKy>#Qh)7v8GQNedC4D;@$=jbLRj;}{Z&h-e9Y$P_p{k9%K}f?3~x1z!iXfB zYdU#wj4ArmYomt{!MYGzhGCi+&7a=s#+bw6?THD&lJTKn4MJB!x-V&*2GX&0?IY6U z&CG1)#hF}zX+oTt+&7KHTzG7+wkXP9CQrb1@hQK6=s_5(!5JlUAM!azP7Qxm)xHb) zwG&Zx>6BXLabNxLd&Xd+oB8G2?&;=bO#|UXUq#W@H+>jWhR6S5u|+~ZFOcE&ANI5a zyEl${!7o1-5){pxokpF^sD~gKoXrpJd421w>v)!bZ72%@iGkv(%a5$o?~~7|UKIJ~ z8*co$zKK&Lam0=mm)%#!^N#9zRZ}ARFN?b71(}5vXcaN`^kEq0>j)kw>b{cdiifOM zTTmgqEZ6N+>H&oZ_F=911f0r7;A_#JTtI58HsZ>iis4BXKbtv^t%VHj!8xva&|b;2 z8^;uLVDbz15J~eUp8ot*Hd$SHo!4iK|U>ZYJZhgH@aV zaQ`Nq+IAlLI+a&=wyutm7p6&v0f9%*x0R*Zw7#r2QyuB1*4Cz%b7UA@EqG1z`iQ4c zjGEA)gT$H!Y|CvP%ABNZOLf}ScZkt7nhrR%w0=2>AGK5Dm8C)z<4M0!rT~rtG6CZ z_4w59VeoLkOSX@Jqe+gf)|_FsmfQXx$Gj|JH1kzqc6aJVag`bdP4FdU#{p{pjXgDQ z^~2GRzI&oz-SS*=2Z;pXpO?G0x#g_ZFeUJAui8>z&-)`)zMjN-vz<^Peek;ivc3;Miq;Zz4pvVuV6)U|LSV4~x+h?-KJzMz-Kw~e1 zLGd6}W@<4|0Y+MFY3C;U=6a%?BgHRo>2B3Vo1n2LM!-!j{rvY}1sYnjrrb>zNV$fN zT~V%{D&p=*H`tWh|M#`Amh?2{ zzzy6lycbPfDW0KviZi}l$O$tbRQ%Skv|P=dsV_4VLHY^s)S{kYd|Hh49l|VMkE;Fz zbk94fCwLHtuRUp!&v|^~ z4j@nmS9d2U6JORuj!V09l|7kanJ}6^jCTIFV7e031(i?YDl0pfb)$&*>SCLfGA~q8 zsNfnAXg1L=5`dTiEO__HX3V(1<>n2$W-8Q{?)&NZ3L{kmelFH46^vddubOGTMPiC1 zzt16UZW88u=A2W@bus=fe9uPw?BQR5mL`Fa|6OUmRv0v6n52NN01P<_IT6Il;aPLf zA3VJs_^!M-lswnc!%s98Xm=2QPNx7`iXcCp=Mywh$^CQY5>Kk9tK}^6 zLXT5wd;HzN%Js?m72H{dYM44zD zndq^x))`Gw&s&HesS*8CjNUvm@yP6MG9ozZ(l1&6(HBF@pc|rF|47cITtSl&)EdWa z{2U$sj9674aL>)TMZ8sFn9jrP9@j&mu&C%h0dy_rVJrpKM?EO&8rAv3opWVX|x)v6%jfok?^5t z81!V!Ssl5t0lpGhLY=L~Zw6+IYj3zm68Ljl)NKlSZ28* z0l9{iywK)UYB}NUH_jxbvyLQj8Bvw>;3h^!VnX|3rGHgl`!noYn4fg^*oysWPBEoq zs^j5Ve;I!Q4v}c;)iL^ho^MM^97;)$j5vh4;d$3SL{X(P{Qz%U`_bO~o`gebj)dZB z>LvaQK!zVB2TK^D>EW)mx#3?C*bMR3z;SR4iT~;!D~;|DkMSV0jBPUMKIcBK*zB|N z&he}{_)yIhW5GFFsdRP^P=%*qs&j-LEq`;KIe&apm-!ZLY|36@-Rl*h$Ep;?-q`}# zabnQJNcBA|o2`t-J}GhrpJZ{G_jOEMVfaOM9pricrJ26pYS2VRtj4I$c*O__v0prN zXI{HxE_curm3iv=?_8*xkE;O3{dgt=MKeGTzO`t|U~lC@`%#>LRApDrL^IV#rh~WI zUELt`bRYST^?iB{V;#`#Ak6_5pUf}f-WAR-dhG|?Ea%%4PI?62F)UV<5ewAa$KSLg zjtS&o+w=**;1Yk16EoXWqN6K_B4%`LT<77u@xt)s@DY?{b(^ela#fw+j#vnfLiu?A z)WT$>7S7K5=z4O?bFwZ?R?jh2?QWFYG|S!l1j)0&lI3=(uCZM4-2T^hSQ^Kd9cwtx zR`WHu=+UVs2)PDt^Q$DR57ta1?__bD@H0+CvGIe65WgH&d<7n{@`%2A)KD$))Sd~o z##u;dE~T1P#VU#?XvIUey%%D=#hH0VsNZ;)l^53LQutfp?+uWGra|k3m1IzW%_q zKagkZc~_gPZB6%AXT2vExb7Ly)9qzi5zA;iyt|$2d5V8jcM{L2_ynl8$>aT#qKd9S zvi~pyG9>%@;C}7dBYP)U32xiCd+uOF02f)p&-dlD_Ol;+pu0$>Dm#y3+ETW6TnY|7 z!w|i=qKk6w^-ITx{QGK$eKdQ<;UX;9D?%eak2d)PJcvU)18pd3Ys^s6`_pUMz++ua zE?=`m@p(F~VVmAR%}LfAC^?IuOdBGk>wi`D6u zJYv3QG!CYzJRUs)yNrm0DlQ0JzVBq46Q!Sxk;QVchX9Y#v zYt}F9Nf6b(Yy9ZqOfO2iWlz-hV~cMxV5&;9JF==$2Qle2WWkr<^rP+2c+Us&k?}V9 zIe!B557gI0%cX7~BFi&qs{_+og7wX1PVamEg+))ZX7HD~;yNQ(|DE~R#D(NtnbYQL z8V$SM$v)k`bj`F8s8*H=IRA6K>Q}uG$bK%Bl4{VtZSeiEa7+_wb(NHnrBv4_q9y;} z+YEf3c>xXGtjKqibPKT+I43?cxj7foWU-8Z=;;JTrKjtdro&m&Xz!pHA(gSsAm$->mh@Uc*~+_ z`YJ4qx7Yz!=A5+5S5SPSuN=Z}Lq^@Qx=KHZ&QmLm(Msg#x+{wR6W<&l zFbE7K=mZ|enTlED_+i{oOYs=7bgr+Vxe@lfqC&75nz*r83#yUO`;LY<8Ds_)BWO2z zV6b_B>n_HbvD`x<@N`QtMydyIhxts3bydBL2403FdK*K146>Ah`7=lj1fdZtQIp(9 zB~@*uZ8RfI67mBKs60U`dck0_imCRMp@$pGv6Au-8{3_w>W6=<5~zO-q_Pz*=1m=% zR+jzK2@4en<`61=7PMWT^1&g$ER+f^uKxfyxopkE8^=f})p(Z~_AH*gP8^F5nVwR{ z?Q_iPymy-U__e`PYo#sP-HQ^MTOGkm;C(c?Xz3_d)#+|yFJm>wxQ$xxux;m? zc>SYOkHEa+G)%K9sfvByietMTKkj)Qb5{|FdevJ~IV{JyGt)dtL}Id9fra#Xgy5=C zMKjR&h{ibE_hv0ac9DZlobG%jNmnZ@IVX9^1yRK5yeo+TDp2~5tkdK!SX~oL>U^C5 z09_k!W`{QL#X7{-!FpWoQ=yylW)i8?)3KZ^S*MBIS5^kep0BE<9oB>1F!I{jP=}{5;1? zX$@g!ypw76YAwE{k{#%Wty&d?$2g=0+OB<|HZ8vb+uY9wv9qhSnQ>Jy2~TcMVKCaI zM)-`Nv6erPlzvOATBU7{!?2VR+X;5<9ZfAAx?B%*3ZWLR2G1f0Ah+9(JjF=J%;%z+b%8!yfnK1jPUm~Ou~&8)+mEq7{{3!o~pf9Vdu(k(XHakunQqiFLS- zQ+A_JCZNv++wjN7@=7n%@xS zX_aMFE0*=z$UBoZH?qzPK5CvJ&DxDRsxa7dq`BR`$7dx{rAqZ( z-_-1GeeW|cc{V#4x>8^}nb>97CJzRH=+ynp+M`oJWm^f^%jCB4jTJ*pe94@y3&L29 zjasTcQ>)1^11?9Vuc$Wv0HkVEQ?$vYO#DY_%+IXLk}fiQ7snJM%0Zb{?Fh&w0l>sk z^YC?P{$wNdoK`0%#UdM}?b>&1%)_V|Y7x?G(rTxM(&?4Y6ldAy^=Z_kwrarMkm!2`zdTM{0F?--*-GpowQ-rlqW2H7o>2 z|F!VlynQcG0UBx%4wgM8yLz=~SN`-}Z% zAyPVilSEQ+88p$GvwY=V#?3KSu~TN5H0mpj_kqQtP*#;`EJo|NmKYtPfD*EW$1voy zmI9?WcviQ{RD>3ODGxH6XSAkppu07I+@F+mf@9`}p}^FqNwm~)V0&J28AeNqz~bGV z^&?HU{{T^7adq7muLi^EGS%tT7pCfGM;pn44h>a-Mlxzb>{dYEyB(mx3IVxUU6vu3 zYk7ifl})BK6;cB%c-A=HX2|V|!!-W@dMtvT;uo0RRtr@>mLjqw0jXj-i67K&6;YV* zuxZvjJhN}KKHq_aOltc~f^Wn{P)vAsG)-KKNvVDBB?@E7QQO_iho zpOhtDtt_5`aV)r-0R))|nq14oI9wwdRKEJCW!P}fE2t}CxhSh<>1}wntkqx3 zr?Be(0NQFYJi@kSYqeb=7S=)UH+0Yla^iSq<1WJqsVhO#K#5@pb0x$SmFjLXJIhGxh>vg;u}pPZo5on8%Kv$G76tDh6N$CWRmPGxC^;|oM4Hj zcYmCSD0C6EPn;pd7UUSH0W`5EB2q{IDvlaXklbAe{{S|Cyh6GP=rkgwJIVsbOid@z zS&;ny09la2;^IcBf$&&`07DTN86Z^e4pVLN0`vG+3V#VKDg6iWsL-ohGBiIP7}j>R~JW-h*onqrcW@T6!HX zjf;-yyT5}zO+!wR>KHtIEKMO&i>*XGM9R9n^1L256M?PfVd}D;y^qXJr!4Vp3V>6_ zr;`5woi|hcM9r!3bBEmySNR_vc+0*S)(uPVEHE=04T`6TrXGbGZ58VQ`BQ}XLmuMagxcCqdr`!w#3A_y~Nt(xcpumf|Xj`jK-su<0`NV zMds5Dk>joVD^A8tn5v}FLX7*0H&{OqaFy5VHuN!+Ym1|-<_1TN{F5UOlw;|eucmV| zVAD&ON{txuWn4*F)zPV-_Y*N#FuKhi1u>LB6@61arw82F*xvPQC}v3$PlRD*|f8ktL+4HJuTFF>>XY0iD3UkkSTy8ns zzD;-?z$4H?0Nz(E@(_gNvf|s}kw(&w#R>utLX;(wU`z}KHYKl6FK9o82s+%c>j<5~ z_cGe90yPDMDMN{I83}!l$^wg8Sv@<*dPqRhMi&x+-W8xB7j%=Xq}t+H=0GyyS7JnQ zh~lw^AwsJQRaX-xi(EukZ73U{JN;#;(r!46)u6snkVLR#QXER)%ES+mE2Ni@z(W`t zR3qLqoyRd%#+tY94x4nAHS8?X_^T%W0CT|k)EE9u5x4J-qx(-dU_l`4MD{bWzfQB1 z@pp$(wK|!O5p7g&RR`k(@egs6`Q7?9$tL1OEWw{{V3~pAzFS7;i4C zT$8yQZ8Y#3iBi$wT&SV`to}}`E6eiSRUuHSl6%e79J2*XdMPaPdU(qCV|q@@HyKuU znpUb2Mxowe)adfNl9vXYS!2~5!r|$!!ipmTEJh9LwIFJ9GJz9`H6-~pZU;z`(UuZe zO6)c&!U+O6h$IM83KB$H0USl*%J+_#=t~KYRD~Y%BBO!C#wuLPq4^y%RgJ?M>Oq{w zV}PlLI)d#x&nR_?#9%4cO)j%`4PVoLg1ng2(dXfHCCpJ<8QNm9NQ}}qmnY|nWc@#umegaO${&0Ywoe^S_bfa z<3%SYWri@dTZDnhAgH&}G53;Y{{XjF{IW&*k@*|xOW@8f^&GuNW^>6qnPLjY0UnI( zk{JxC2tO|l*!(!B@%f8y)_R(Wz<5Io_KfW+AA*2256^);1BIS%%;ZlZiu8?|by2c` zP6pq&AHM*Ybj*!W#83 zwnob`jF26y34tJh9{7-*h5rCp_Tpe+8_cTpd+a87+(*c%g_aB`wc;3+u~`Ps2=M^& zA@U$#B*%Z-NA#HWO{$3T3I`Rw8mG(oMBrThnTm01zR3PV z9iamRi*M3P^_74c)XUS`k;KJT{bqN(z{Mj{tE_wnf0VNuz5^eFBAaR!GRDV2`b=c0 zeZ+nBrN<%`sEr-#7 z4w;Rj{L2Y4G)bb+?-?-~Ah3>aXtE(pWXyLFK3=2n%!0Qv^yxxnszWAfv2;DArVY!;rnrHsfcVK4g5Dw89MeVRtes0y02%51Wg@1kxB%JT0I>L=}iV~@e67z%3N z1bD(F#g=8YKfI1wTSF|*JvHGd%0UnS)^SM5OKabpF?8FzBUl#!VpiyAqmc7mfTAR zX-A0{i3Kc7Tu#g;P?*@gfQ=5qh1560x%M;4m7rAYd5rNY8qM*7TP1+a~iH3Tdec#8W>7?K&`zpdr9vqq5HSC`xqj*0fftMT|PR9 zbgPa;&|!R0mcG?0y%!r0>)Yjdky|y&u{0fN<}|5PVQpcoMf&|GL-e_Br5FDIK>CsS zIt#6c=+nt@iYeo3(_R*%0rWGWqvA|nT~+Yd!nlHj6sU|h{{W&VJ&dVNt~$L+Y{r|p zVSSGCv*UEL!6|O(nR87^DitJ>r&!EMT5lvE(2$`<^Ct`%i-tzAflaR-AZo~NFnQfd zRuwn*n~E9c8OH5t$X;aS^cKD#E4I@HeHIp+nxg!9XLOFvhA}Jr97k_4@U*GXqykKf z&pVfH@3*6R>ylbkq%5K$rYf2Z+A52E1abD37V$WGqPF9SlXxVWbjGl46vi7E21FFa znM6if2@%r`iz^pbWU!93Rbg|qXud~GO(cZldq-1Eppoj2yOFF`o#APQt9OQ02O@4U zysNe2yuG85Ar#sxnH-FL5=ZHh4Zz%SA!K2+WuUzE%;ThEv{OekOTaPRcq*@%k~Kc5 zP>dL@@dBIC?hJD1i^E)hgiiH0Ct!? z3>e~LyX&jvkF1!iO41qwUZEQZydn^V+j3(@G`BFN>~#UAn1=$1K3d-aL~o&Bh_VvZeoQ*rd3r-8097%DY~<4}KD@3l(Gp!m8L%s z{U*8zolKbHk}eYInPVoMqt@v?I@FS-HdaO#1a-W!3huMa^1SmKmA$CGs$FTmarWB`*BO0_IPd6X*C zs5_%xbN(g8W=&`z1a8;Zd&db4aN7Tp~Cscvw zvx=ohIlD4JkVLD-sk~uBl_V0<5QbWzGA`z1QvyJjO)VQ~NeVy}V-Af+r23JpU`coy zz8MjkT3Br-RWO9h-kv<48hKxUrFoa7<)nC%|%4c-(+WMz29 zz-BbDEBH?S;PX8(Dy3AXRT}8qgY0LN6FNT*=f@32FjZRr0C>Jx>seawM$1Tiw!iB+7G|kX)Tq~T zZb|%CnDl-(beyvEtB>+FT(rK^car9HUpww441<;l>Y!`BqqWQGw8Rxfco#zX9~GA2HOClYqPA@ zmRE$<-nxylC+0u();k@Kp@73aBD+|09a#1g&$CR%wq=Yp>bBe<=m+`C>F6{sJhw~s zukuxwCe_DgHX^-DMQ5#5wN!I*esLyQFiiCcB&isIGr8~{Bvs35;mTy&m1-WZedN(Mv7i$n{o z#l^MQ36nMTs(F=M^akIgd~vs7MuWvzk1s70hczGg3CK<7ifj3p^rRbVN&HOGPhFtL zvjY6`Vb3d@DhY=KiMXT_0i!JehSC5~uTqKCN$OKQ!&+p}&hr`}&|+SqII&8eph5ZG zVbl>ZUO2whjHK5^-b={@#{faBW9hubhOHqCrhTIILAf#kAqLXsW+0f@b(yLpWMK&< zZ!Q25Riu&<0%VZO0s<0cWwpf&Vmom$Oc;}n!W3u=JhL*wA#XInBQ|KnM8@w#fmuA*rJKe$=d;>5{xQa z)C1l-0or8AqXM5Pu&2z#zyO#r@|Qyvjfgb$Pb--@&P^Ryw30?^d@)wqH1Pn9rgSo7 zq5DahX@N-Etk@0283@3%4OTXdF)Te%5G-Vo4_qTyw2`(l93HtvqHhZG+0lU!j8j7< z0g(}lGP=SrBMQeMKdfX*MqU!B7afGgSHWThY7eEy@%EU+$|fwLq^W^A=uk(y^Xe6D~G_m$XOQy zU;JJ@%j5l;KTzm?W0+zy3_+`1@7N9i_LzoQfM-rHQCniE8QX2!A%bPe2>~#YQG}yt zKzCjh&W0|C!eSrq&}>iRQT<0*(1SdpokyckRHp2%rr?g2o!5uFK~FKJC|6}%NFPV} ze_7`|j)BFzxYr*400zuCZ|!FBb|rgDW4QUjZ%v!DwmXlU;~EQg(uB=bMigkhM{6Lt zC*?6bO`R@ZR}VooJL(lG0N;dk`p$PS&#GfG(TCHe+0U5WEzo~?)6(d2O(|ClNo9;} z8r)tXu{f%g+n0O)0G}wCQcqD7lB9Fnw`{paT#%5c40g0+T|prXYJ@~Xsmusb3xmwL zBq3Ierm#eHI7nEh3q*A>w7oYn3>6iyj}R1CMhFTRTg_H0FrkO0Sh~(-yirjx_eH%s?+!gC zOv%zDvPM0f<3zg!xjiNx2ROsxu;KNu6HA-;f}Jw->9x$S7MCQYwt(i6w#;1DI8?{f zU0g{yO0`A7>@b3p-)u5xj-r?Scz?J|+3IAjjqMmKAtXzXX7u%<oVe(q!lvJ>wRx(qa zPv3y_d%nq9y}lvjfeUQ%6Agz5z!~FAa&9b;udWpObvY+32+jx#T(Ars9U($fwHEmg zf}H4&zFDvf7VN1Yx)qGqutCS1rHh2rutDp#G5Q`00tUTcsRne28eQR_*mgojY(YiK z*;DyH<*88yH_%t&;K!ysU4m6{%5ya^6@-d9RH%Ze5EmrP@hQ948E+)&LU<6upzqfy z#+b`R4Ifk2D^jrqPwI;62DFU3yCW-hUs+Ylca?s*aI0}*l5Bmy27Y_@B6n)M zRsQz37SlZP%(w@Bpc#h;O7eCqjkh2F-Mi?#qp*(M+_yzv@%C#5;q$!XzK$KcgGYIH zv0IhT^p2w!@D75P@NStrRqu}Xwu-G|GgI%ttGg35m0b5!&nvw=s4Ex6k9WRf;t%RC z`>EKS_qNRI*i`erM3+d7)n+HQ16J)&wRxjB8knhj&&d?I5F^(ZL}3_&Fog#52c8`8 z%7Av56uO4VQpFpX@5{6g*9LuG&XEV0=lY=>ku8Pe h3<1;$q|xjAcX!OhYIaoubD?F*EO97L#1CK2&>wsk-?#t( diff --git a/src/test/resources/sample-files/text.pdf b/src/test/resources/sample-files/text.pdf deleted file mode 100644 index fec4053950fe6a2d575bc5e80adacbc85b4bb85f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11323 zcma)i1z20#)@=)gQna{3u;LOza4GH%E$#t=LvW{9akt{uqQ#246l*E&4uxXHrT7ay z=lu8Fd+z_<+sT*gHP+m7+06H4j5+C4B&1k@Y#>y+o{i&;-47=@BR##SAOHuz-oy%3 zP!PZ_1+{U8IKjVdjGZA85L0_I2!LGyVrSuO3E<)e1B8W9Va`qvV_Q`B$4LqDF%ulm zgAPuZclza+D-s4a9g)s^Arj9mOfS%*Oa#{Zto(#CGm&~87chh}DCwTLxSZkB>j6J) zNteIR6~CA<%1E^H@{yqSmh9*bUFa~kG-ICBU3H(xPe%0c^}}c-`LJ2lJz_n{ed}CF zabQtAqQjHQ`fl@VaNhddJ@p6j@ouDBwh1+s0qo4dG3;3yTI2^OEK>0oxSZqJlmON)IAoEO%^#W8py6*U7v2jP9N8qJi7S{n45xbH11PC9P+LmxS zjp@^~CaQMNtLSuaeLk!($Uc%h=3{fg|02VZ)Dz(JLdzi8P&TRRb;fS6qUemmqV%kC z>(0C{<%U&!|75}8sR@*owlq$=ny4IX7ThzHl!VD>IfrVto_>kmNO-p(1`4+A^|7TiD) zVg@x9vv&vRa=-yF9~i*P#i@@952ZiHd3f%x090|ZH&ur?19ahoNk{?MH6ZTJ0DSlaQ}mEUHkrI0a0vD*If-_j*s10++MrA%3u*u z&$z~Vl@M_!(%z!S2j#h}@qcd+n?QtQ|GKhWtOJdzihV`g+rX0A$iCxNaxIalLli~T zrXW}y=aDo5K|d^>&p-1qkNIF%{NtyO+L+^|W8HDY8dQrJ81XBgt!!o7FgTUtuP6*; zq-u5KpxwVQe4c?h^VlI>rk@UGj`%B#MI<0&{q6HkJQQ)U$ARQQ^$oGscy%Pp!N2>_0sa8B4Bsz#(%4NVcVu90^RZd(Dj+mK(Me}<&Z~E zLTC|AG2Gkg!!P#3|s_Kzi$FL_(&U6o;s=^P84M{2NF+R7w$EsHEje?5le6$;1VXeuw#^w z8Ix>hqg1o2Yw#^qw%>2lSVyLqA>qXcTcjdqm=(T&U=WY;;k=d%>C+f78=;jt>A)oJ zNh-s{DH19J!usbFU$Ghqa_h%+`>ikxrI;(D70!0+Kx$1!#VoNuarERh#yQPB(V;b> zbRsZTYQWYj@~nC*>41VoZAp}n6S8 zdg6h?$sq`z)4OsdRO1;yjM|BfiE4645F`jqVRUu&m;|3i*7Gb**JiwPNAFNaqi=sKG{m8MpP%#{{)r))>WF96L={g*(~QJL0T}r-Rn%>BqEgjEuV0Vc{_dUdYgWGdQ0eZ8XX*h)SZdl zD`O!;v=K?tYtZ|w7u;*w8ylV+ULIZ{R~G)VPy$jo$d>df=?jw(lX%Ho$$80LiEPPi ziM$3+33o}BdTYg%n4;p4+>kV@fnr&mmTmr=XzhvBqLuxG%LMsk;G{*-m&w;f2d_j5 zeWh=MLqb9_rDCO;q;h*vqmZLOBv@brkW1P}1vd2#y`C}%H?RVj4K1;pvvT6HfF@f_ zSyD{3l+9KY=0QH-mwg`BDbg&R%yW^qR?&SuuPE?JK-sJD+~6nLTr0mbxj?20d4N*z zH>FGve~h!EzV)J!e%ro9Q?v8%_W9Q6>E2m`=d9Un@rs->ov|J4%U4iRClpBT8jT*+*&j=JxXS zmPW;ph;UFTkSVSyZl>9Q_$dG8uZ97B5-!G)>(?_Q*S<5`5x8S`73+Y#8k z0MDDb_LeO#bO`nf&Uxu=FIi)tvB^hi4wIViVtY0wp z7;x$zTwt`*~no zcJI^Vb_r;5woiLa?}zsn$;IGxweQu#h4Ygg;JMm`v!dOaXWY1B^krEi!mC2_fthH_ z^WC?n_9Ct`BZ2#@`oAh9G0bMtQ@Dv z$GM?dX@B@;MV-oB#$86UzfdJ}?G0S9RBUFh-D9&@h$=zG&3ja4mAj2bt zfYd7)+B`VKtiJl3J*k0%?L^**^-yD3$phZcUa{&=u( z2779zT7893W@Ii3%cZzcpQCb%^A{iXJfMLE7X zegrdx55?VOo1A%J+3}QGd*OULpzXPzBXqV0lAhdJfunJ&HT3agv2T4w`%NGFV%x&6 zjZpkFX14NEy+&Jn+a$Bep~-;Ki?UGz^`_0yxnk?|sj4Z>@@v@b-Wj3Qi%Fa1oF>t> zTx-+Q-c3dB^jEf?_1d2rYh2}i2C%-@O}6!@)vP?5tIM&CnjflrZSQxT^s97Upv#SG za&~fZuiz)k+~w}aME#$JUVe)z_G*Uu_tSO*`yYj#d41z{2XpO#7n_|ZA=%!B%Xh@r z72deVim-h7^=L%orzKcY zKLj0mtxK&tr*o?l<9%>-yKkD@XBD$cY3Lz#Ch<88i(XzCGb=u8M@=}9EPByjd^>5DbPL^Q z4TxGt~)^Za4c=oAak}&yB#f{>1J?k)8md}OP$N@RxII?Hfmn^?urk7~zgw6LErxx=@ z3oG3z9_*n8nyuWvtv{kJ($DLQ?J2Q_yrli=k1CG*YTIHw{qDt=Lb2|VpJDwn`6tbM z;BgQ14^H`H#l^*pVGuLG17lMI=>J9F9;oJD4Dnw~6!yPy%LlsX0;hyWw`!5ptz$^cK4!>z9ySj^s^KWvj;p77OV{#8` z_@h(w;Syt3gxJ~Gv#LQXTx^UV)D<{im4LuZouCfR_D-mLzbD5oX$O~Epmy*HC>oop z+1nc1{R@$TI>DU9E#VJ?IN?0i_|FEAlLNs18fxZj`LIZC4o=huiv7EnNV{n`HQ_pkd0>%Z>*Kfd8Be6afaQ9kV7KTqag8~n$H zD;e9u>Hhz6AU4JpaJ>Tbhou-?tU%Re1%r73tRNmRfCtD60CI2v;WC6QJVcS@41gCtuBfZU?{oaUICucK|E={9E^uKE!U>-ReAEYV?t z2JJRIeTF@@$=>{dNsp(+|Lm6+K}8nj$Mgu4s(7R%7*m(aSm0$P(#-RZ~b1j&G|dXIfYiI3%M??o1D2inBeT;@9RnN7w# zR`ZqPDI3~~Q{>2-1gc2(zmxyURQtS!f~{<@>`bG!v%*?0xc__<1Bz=^v|dO*SOB~& z3gp7>aKpeZ&g5W`wz4PXe4;Tq`0A%Em9j~MHnVig>9pe*kw_F^a>kt6*PB$9qz!{a zsFhnz`s+-dB}AK)1`1KNep)U$qGMT^_}Fwr7efgBBd8%6`Q9e?h=T$Z@|B3k%jHv z#1P$tb%y>R8w*AM#wVZJe&yeJogOuIjmfKyaR3n|eAQIF!WF1~KvJNNz69=& zMLyu*RsA4Gf7R(H**TBCWc6nK%y*kN&=h^CEQE*XCa#l`h|GsmjK6DzBTyXOz+xoq zl>g`9yJ!3cwkiBXEuNJMp0(r#<=9wt*M)%)2M&h1>(xhrbuUoB(QyXGm6SEN(<>J; z)|7!M%qxYczcPt+Y!7vj*{hA%Z$diJ(6j104UmU_0_BGbJ1Ibd&ALfh zIDbLG8qKTp=u@eyRLG@7f*nR1s0p9O5SYaipA3gHD^%vG>)8cvh#vVOUjVgwjke=W zpio?vViE>c#*mVL%GAzQXyx0^E-ozxjD2Y6B{~za21hE-H0zKlM~YTqqg`ruPDbY< zy7@4dT+NWmtH(7<{>_z6DdgrPkHJknm>?nr3x^NPQcWO?_do`7j-<{+D+UvXQ1Ta` zhRheT^`O)VOx&kkL1G`cjCt{*Yh{C#h_Vk7dqG5@wT}2I{VYNolvZ(Ksc$4aQ?B|yWF^p)78Utvc zX#r+WU#_l@pv(Zw9!nxy;yh;_d0t+$s1SN{@6mtns5;^j((lOnvoOZ=8(b@$1(Zn| z-rllHV6GF1k`m_iZNKn*^rabC$E!3IXJ7RAPA1f}7_prdyLDzx#?{J@r|X9q9U1M1 z{`Bu;$-*Df{Flend*nrWJ-8P$#QibL$a^nHw)}BOluP?Tr;-H?AwgSe)vr4AQo|FM z36xEC=gkoB>S8VW)mUK9rl{`ysIO&&8Wrl$2nQ5cC;`%Olp*`C6M|jiN@buG9CE2K z>(SJ;^aBabbf6O)d>8AeJ^o+Pn23h>iaIC_W znV;{ULQ6Q(GP(|?W1$>q`+=}euTH~CSE!+QD2WM@--9OT=4JEOXrhk2n{-&FeXV2X zNQ{%TlrG{UWMFLGp)TxBb?OPJu|8cI&}uGXNLGxkK&_kUFIL@wc?S$fKRqMo7Oh8o z48tUjII~KwREtj}LShSJ18UgmtP6%#DQ6?vX`vu4syq@BE`1_NSJV@zkdqhws2-|^ z8Sgi2dVT6zXUb#6M5}7O9qK0$fzLc7>iT@Z^jLf!%S zW_^fPU$`!q6jhf_ncE&E4| ze3=F>Zr5F0p{$!=kMd7s%pnpsM0=m(furjFHUtW+M@gPLf-b@ME?Ee}Z}{;0>yu5T zA^K2MITgL?=gZ@AE#;kR(?cc@C}Z|w&-MyEZ_7tKMwXp?|Hi4rv4}uw9C}Y3NuM9Ap~oail$sgXh21{j_6T1RI4YLGm*v3h;2Q&Gk6oNMF9 zn)sD!8hU=%mKT@8CUePr&Yo}Is3Ovd*rA+*gHS#M$b8QiVGuJ(y=-AyS~9>GV zd@DaL9FSIOEtDmSNO9jlXL<^-24Y!r>ED zjEY+UBOzbSVC!l@8|PPOsX!Q~op76TL*T$pBkO4jO}vW%J?6H?5{Y_gcxAz6^H|T$=|W7P9r2y8!xI+cx^}Kb%M-T zkuwgZ5a>UzPH3(eKXP6>+bu1?JAYDY98+1oP))@y?f7j#i`yx#AySVoQrzLGmbiq+ z)7G%M=y!)12Z(P&%8n?vT>!4D&Uh4CnJ)zAyxI?ShM9`3*>$Vy>wVZi_#tn@n3=FG zMrdtlNF{edG&nV+L>;Kq*j6|TV4N1wX!Kr81s|>T=iJVCgz@Qf4rBo$Xwl&u&&>0e z$q%Nskv^})#JK$+iQIRO<2R@i*+sZ!O%ku|}Rp*FOp=v%+d7>jVSVWU{ zb@c_)OGD5_Jyienj50QM_5C)qn==GcCU=0#bjx-ds_NkJYJRVGQB#+&b$+02SKIw+ zX~Uk~a;f?F=<@+t0XC)bL9A=55NGpwn+KZrw+T1Dz|%;vu9}Q+)kXb(BQ9 zTY4PbAPFDDDFmQOv*WX?c7LUueUvk8!k?@i+w3;l)oOZD6Qo+%+NYsO0OAzzGW%Ng z*`d~=)1u->HQebOUvz5uH-XqmS}_Aq)qdX(V@4-aUIr1?4dvZa zdyzRxz+RhJMGp#9*GLMR*009O^5XiRA;M0pPFT{5p0Yz4AltMCk^mz;fbhyQcf?y= z88lmL9dy=SeO1;`)^EwF$yzXN$`zEO!^qVVc5&PnrdyS9T;jUubf#Qu!w>>~soUe% zSgcET)V9{7mrg?`_WJjI_0G4+vzcx~_Uy$X{8s+bGVS)-8`bJhkrj7*+}%DeRvcJ~ z;MMz{Rp#af1r@80*9Ad*$RVtv!}bypcqqO6z+?N$EmE?fWX$PkB9odZ*gG@6Ishg_ zUVe9VXFh7K2Qr90l8e}d`sPOMTdHC$Dw$8HvSR4_sM_7#ovCTNy<0BFz8h0RJwb!f z3^LSbj0c%Q(=J!tHC=(~@-yjs_Ink3Tajx+f;TzeIgZz*_e^EvIHoixN1=3Qz)V#P zBij+TmoS?G3|3#!va{njF1vAF=DlOO-6Z+PA|{1ti0o@Hbr-()JijjX_tg}x(O1R1 z8v_Hux`V#3oZH~zpQfCl=(#jSX~KjRcjz45^G9iTc~cCj702@TNQ$#WBwM*G!Ss%NJyzcPfn}2=QvB*rJ_}9OuP2* zP=AkKKwikO{ld0%`zWfGeJdy=?byOTvfmr2YOo+~LLzW4-O0w8qWMsGr_@tI&RI%}YZ%l!Bog{i~g3k*&26_jmd^J{fyL%(*+JyLpQ=gkU zHRGHbmBvJl@igRk8i-!W+adY3IP~lk_ETADVX~w&ODMuzHF(Ez>NG6|#;3B3Es_#qXfjgFgSf;z zh+!294Glo$OnaW25{2a2cJZk^CCZ$Pm2xe_A()4fU`%s};qAvd$qOMpO4P!A?YkRT z*WJ>yt~=Y9wqx%DfbMuCi~_`UF+Ou@;eX3p-&-p1~=7JL(HwTY}c2Sl*N}UIh$_EeG=ODkh2A zExQ!@(t6z&7qBIY^n)6MtQo6!+*O*HuCHZD!&*oA@;=e)M)27zL|a%GHe@VDNs(&? zHD|6g_!GqdChW%M;{FzlP-X3zJY%?78djh>AL>l~@FIIHg@g;KBcD}WP3 zr1>QIq?u8`sH&)sy}nV7QFfH9tsb^9L{(vJ zKq2i75?=1SNUh9St?DD;7CE2Uj950fJzkqEJv^GdX!@49>v^!Jbk24S5*St*rETGN z7&rSkPHxl0i}7Qlj$dfz;C=Z%2hVu70|VyIQ{Ewy`;Lg!yY}tg8*ePA)A?nE?#*0D z9k<;_k^8lo8}qBPkV@tG%Ek-D*%2+lz}ol@e1U;%jLjf~s+Pqqv_8u%B~u zw(LWUGfX<9Bf~eM)C;gxkHcJBLa~-h0e*?VwMe28NGsE)6KI9am?t?!J^3o63V`** zZjA_^^&{z}$|~A5cJuVqh7bq(D|#&7`|>4qlgma;>+9uSU|s>*nWU62PXC~hN`zbf zb=RV0q!(;`L5X$ECDwC}ac-A9^Bc0J&7qr7KPe%m$AQDZrkG^i#V{oi_s{yEmRGL9 z(#Um|tfyC^Go?uFg|~iWD}y5F4(d-RmND0le$Kmn!h2njb~YHKnBKh1y41dv6*x|z z<0qMNe>yx&k>05Lbs;4~u+V+&Nj9IW#o4}Vb_ETMsR2~6#3*{X`aGrm%&PjM_@2v{ zdIO<)pi)giO^0vZn0V7Ia;9pG1=p+|Zwdm@) z@}2#cbmOo7-ML;VLTb}f$yWr11G0iEERY7Z=#ov*)riT0 zfbq1bqZ+a9$h;{E`A1ssm>==c4&WFt%bHLPydHTW0Rwqal^70A~NWZ+_{hOLuV0SDXCipAf2U2H- z7=y!Y#=BgtHJiG`kS49SwJxL2b*~7>C2)I=m)JeUPhFB}A_+7044RVGzuEH~HXfa+OG+q4MwM-Ijp0~#*1|{6J(^t?U#_)#Z;4cA6s0IszBowzio!h z*h!ky%w>Xi4!ID!_j$-h(>B z^=bxVMtE++$==Mx6kg)VU~6outPXeuae_hZ?EpY98wWs-LCgheV+P>l5(R<4dW-;7 z7h@-9PXN3U?{`t3yE7vyyEwf36P~pIFg%pzNt!{O;a-1Za5oYUC3OrE{G1$|TtFZv zHxLBm1p;+AIOySTxSgWC+5g?-Z_>8A6T}=Y_5acgct~2oD=KB}%lXo=QeXZK&P#1q`gP1hSt8TQE$Xbt z%e0> Date: Fri, 1 Aug 2025 17:32:02 +0200 Subject: [PATCH 002/148] chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec (#1328) --- .codegen.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index c01c9ff2d..4130666af 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "c34d8bf", "specHash": "c27c421", "version": "0.1.0" } +{ "engineHash": "12f2054", "specHash": "5bf3652", "version": "0.1.0" } From 9c28190aefe084a458ea77967623620ff50d14c6 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 6 Aug 2025 14:44:39 +0200 Subject: [PATCH 003/148] chore: Adjust `github` workflows for legacy repos (box/box-codegen#772) (#1331) --- .codegen.json | 2 +- .github/ISSUE_TEMPLATE/config.yml | 6 +++--- .github/workflows/autoupdate-pr.yml | 2 +- .github/workflows/build.yml | 5 +++-- .github/workflows/notify-changelog.yml | 2 +- .github/workflows/semantic-pr.yml | 2 ++ .github/workflows/spell-check-lint.yml | 2 +- 7 files changed, 12 insertions(+), 9 deletions(-) diff --git a/.codegen.json b/.codegen.json index 4130666af..0d0685676 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "12f2054", "specHash": "5bf3652", "version": "0.1.0" } +{ "engineHash": "205c0e9", "specHash": "5bf3652", "version": "0.1.0" } diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 8117147a7..673dfbff9 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,14 +1,14 @@ blank_issues_enabled: false contact_links: - name: SDK documentation - url: https://github.com/box/box-java-sdk-gen/tree/main/docs + url: https://github.com/box/box-java-sdk/tree/sdk-gen/docs about: Before creating an issue, I have checked that the SDK documentation doesn't solve my issue. - name: API documentation url: https://developer.box.com/docs about: Before creating an issue, I have checked that the API documentation doesn't solve my issue. - name: Box Developer Forums - url: https://community.box.com/t5/Platform-and-Development-Forum/bd-p/DeveloperForum + url: https://community.box.com/box-platform-5 about: Before creating an issue, I have searched the Box Developer Forums and my issue isn't already reported there. - name: Issues in this repo - url: https://github.com/box/box-java-sdk-gen/search?type=Issues + url: https://github.com/box/box-java-sdk/search?type=Issues about: Before creating an issue, I have searched Issues in this repo and my issue isn't already reported. diff --git a/.github/workflows/autoupdate-pr.yml b/.github/workflows/autoupdate-pr.yml index 185ab949d..080c51c32 100644 --- a/.github/workflows/autoupdate-pr.yml +++ b/.github/workflows/autoupdate-pr.yml @@ -2,7 +2,7 @@ name: Autoupdate PR on: push: branches: - - main + - sdk-gen jobs: update_pull_requests: diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 61e1b7806..2cfcb2ba9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,10 +1,11 @@ name: build on: pull_request: - types: [opened, synchronize] + branches: + - sdk-gen push: branches: - - main + - sdk-gen jobs: build-and-test: runs-on: ubuntu-latest diff --git a/.github/workflows/notify-changelog.yml b/.github/workflows/notify-changelog.yml index b54a043bf..fec9ec4ff 100644 --- a/.github/workflows/notify-changelog.yml +++ b/.github/workflows/notify-changelog.yml @@ -24,4 +24,4 @@ jobs: token: ${{ secrets.DISPATCH_ACCESS_TOKEN }} repository: box/box-developer-changelog event-type: new-release-note - client-payload: '{"ref": "${{ github.ref }}", "repository": "${{github.repository}}", "labels": "sdks,java", "repo_display_name": "Box Java SDK Generated"}' + client-payload: '{"ref": "${{ github.ref }}", "repository": "${{github.repository}}", "labels": "sdks,java", "repo_display_name": "Box Java SDK"}' diff --git a/.github/workflows/semantic-pr.yml b/.github/workflows/semantic-pr.yml index cbff636c5..de1b2c83c 100644 --- a/.github/workflows/semantic-pr.yml +++ b/.github/workflows/semantic-pr.yml @@ -6,6 +6,8 @@ on: - opened - edited - synchronize + branches: + - sdk-gen jobs: main: diff --git a/.github/workflows/spell-check-lint.yml b/.github/workflows/spell-check-lint.yml index 659bbd3fa..6bcfc58e4 100644 --- a/.github/workflows/spell-check-lint.yml +++ b/.github/workflows/spell-check-lint.yml @@ -3,7 +3,7 @@ on: pull_request_target: types: [opened, synchronize, edited] branches: - - main + - sdk-gen jobs: spellcheck-request: runs-on: ubuntu-latest From e031308f102137351238bf3823372150d3927442 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 13 Aug 2025 15:29:25 +0200 Subject: [PATCH 004/148] feat!: remove unused models from schemas (box/box-openapi#547) (#1354) * chore: Update .codegen.json with commit hash of codegen and openapi spec * chore: Update .codegen.json with commit hash of codegen and openapi spec * docs: External User Deletion API (box/box-openapi#542) * chore: Update .codegen.json with commit hash of codegen and openapi spec * chore: Update .codegen.json with commit hash of codegen and openapi spec * docs: revert External User Deletion API updates (box/box-openapi#544) * test: Improve docgen test (box/box-codegen#781) * chore: Update .codegen.json with commit hash of codegen and openapi spec * docs: Link Archive Developer guide from the endpoint specification (box/box-openapi#545) * docs: Adjust Java `README` and migration guide for v10 (box/box-codegen#782) * fix: remove unused UserReference schema definition (box/box-openapi#547) --- .codegen.json | 2 +- README.md | 37 +-- docs/archives.md | 6 + docs/docgen.md | 2 +- migration-guide.md | 249 +++++++++++----- .../schemas/fileorfolder/FileOrFolder.java | 213 -------------- .../MetadataQueryIndex.java | 144 ---------- .../MetadataQueryIndexFieldsField.java | 104 ------- ...ataQueryIndexFieldsSortDirectionField.java | 63 ---- .../MetadataQueryIndexStatusField.java | 64 ----- .../RetentionPolicyAssignmentBase.java | 108 ------- ...etentionPolicyAssignmentBaseTypeField.java | 62 ---- .../skillinvocation/SkillInvocation.java | 268 ------------------ .../SkillInvocationEnterpriseField.java | 117 -------- .../SkillInvocationEnterpriseTypeField.java | 62 ---- .../SkillInvocationSkillField.java | 137 --------- .../SkillInvocationSkillTypeField.java | 62 ---- .../SkillInvocationStatusField.java | 138 --------- .../SkillInvocationStatusStateField.java | 66 ----- .../SkillInvocationTokenField.java | 84 ------ .../SkillInvocationTokenReadField.java | 144 ---------- ...killInvocationTokenReadTokenTypeField.java | 62 ---- .../SkillInvocationTokenWriteField.java | 144 ---------- ...illInvocationTokenWriteTokenTypeField.java | 62 ---- .../SkillInvocationTypeField.java | 62 ---- .../hubactionv2025r0/HubActionV2025R0.java | 61 ---- .../webhookinvocation/WebhookInvocation.java | 221 --------------- .../WebhookInvocationTriggerField.java | 101 ------- .../WebhookInvocationTypeField.java | 62 ---- .../schemas/workflowfull/WorkflowFull.java | 222 --------------- .../box/sdkgen/test/docgen/DocgenITest.java | 4 +- 31 files changed, 197 insertions(+), 2936 deletions(-) delete mode 100644 src/main/java/com/box/sdkgen/schemas/fileorfolder/FileOrFolder.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndex.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndexFieldsField.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndexFieldsSortDirectionField.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndexStatusField.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/retentionpolicyassignmentbase/RetentionPolicyAssignmentBase.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/retentionpolicyassignmentbase/RetentionPolicyAssignmentBaseTypeField.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocation.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationEnterpriseField.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationEnterpriseTypeField.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationSkillField.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationSkillTypeField.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationStatusField.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationStatusStateField.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenField.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenReadField.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenReadTokenTypeField.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenWriteField.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenWriteTokenTypeField.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTypeField.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubactionv2025r0/HubActionV2025R0.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/webhookinvocation/WebhookInvocation.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/webhookinvocation/WebhookInvocationTriggerField.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/webhookinvocation/WebhookInvocationTypeField.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/workflowfull/WorkflowFull.java diff --git a/.codegen.json b/.codegen.json index 0d0685676..20b0a328d 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "205c0e9", "specHash": "5bf3652", "version": "0.1.0" } +{ "engineHash": "be39be6", "specHash": "24fbeb9", "version": "0.1.0" } diff --git a/README.md b/README.md index 5cbe15237..1413a3a07 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,15 @@ “box-dev-logo”

    -# Box Java SDK Gen +# Box Java SDK [![Project Status](http://opensource.box.com/badges/active.svg)](http://opensource.box.com/badges) -![build](https://github.com/box/box-java-sdk-gen/actions/workflows/build.yml/badge.svg) -![Maven Central Version](https://img.shields.io/maven-central/v/com.box/box-java-sdk-gen) +![build](https://github.com/box/box-java-sdk/actions/workflows/build.yml/badge.svg) +![Maven Central Version](https://img.shields.io/maven-central/v/com.box/box-java-sdk) ![Platform](https://img.shields.io/badge/java-%3E%3D8-blue) -[![Coverage](https://coveralls.io/repos/github/box/box-java-sdk-gen/badge.svg?branch=main)](https://coveralls.io/github/box/box-java-sdk-gen?branch=main) +[![Coverage](https://coveralls.io/repos/github/box/box-java-sdk/badge.svg?branch=sdk-gen)](https://coveralls.io/github/box/box-java-sdk-gen?branch=sdk-gen) -We are excited to introduce the Beta Release of the latest generation of Box Java SDK Gen, designed to elevate the developer experience and streamline your integration with the Box Content Cloud. +We are excited to introduce the stable Release of the latest generation of Box Java SDK, designed to elevate the developer experience and streamline your integration with the Box Content Cloud. With this SDK, you’ll have access to: @@ -27,7 +27,7 @@ Embrace the new generation of Box SDKs and unlock the full potential of the Box -- [Box Java SDK Gen](#box-java-sdk-gen) +- [Box Java SDK](#box-java-sdk) - [Table of contents](#table-of-contents) - [Installing](#installing) - [Getting Started](#getting-started) @@ -46,20 +46,12 @@ Embrace the new generation of Box SDKs and unlock the full potential of the Box # Installing -To generate a .jar file download the source code and run the following command: - -```console -./gradlew build -``` - -.jar file will be generated in the build/libs directory. - -The SDK is also available on [Maven Central Repository](https://mvnrepository.com/artifact/com.box/box-java-sdk-gen). To include the SDK in your project, add the following dependency to your `pom.xml` file: +The SDK is available on [Maven Central Repository](https://mvnrepository.com/artifact/com.box/box-java-sdk). To include the SDK in your project, add the following dependency to your `pom.xml` file: ```xml com.box - box-java-sdk-gen + box-java-sdk VERSION ``` @@ -67,10 +59,11 @@ The SDK is also available on [Maven Central Repository](https://mvnrepository.co To include the SDK in your project using Gradle, add the following dependency to your `build.gradle` file: ```gradle -implementation 'com.box:box-java-sdk-gen:VERSION' +implementation 'com.box:box-java-sdk:VERSION' ``` -Where `VERSION` is the version of the SDK you want to use. You can find the latest version in the [Maven Central Repository](https://mvnrepository.com/artifact/com.box/box-java-sdk-gen). +Where `VERSION` is the version of the SDK you want to use. The next generation of the SDK starts with version `10.0.0`. +You can find the latest version in the [Maven Central Repository](https://mvnrepository.com/artifact/com.box/box-java-sdk). # Getting Started @@ -97,7 +90,7 @@ Browse the [docs](docs/README.md) or see [API Reference](https://developer.box.c # Upgrades -The SDK is updated regularly to include new features, enhancements, and bug fixes. If you are upgrading from our legacy SDKs to this new generation SDKs is a straightforward process. Checkout the [migration guide](MIGRATION_GUIDE.md) and [changelog](CHANGELOG.md) for more information. +The SDK is updated regularly to include new features, enhancements, and bug fixes. If you are upgrading from manual SDK to this new generated SDKm checkout the [migration guide](MIGRATION_GUIDE.md) and [changelog](CHANGELOG.md) for more information. # Integration Tests @@ -136,7 +129,7 @@ To run integration tests locally, you can use the following command: # 3rd Party Libraries & Licenses -The Java SDK Gen uses third-party libraries that are required for usage. Their licenses are listed below: +The Java SDK uses third-party libraries that are required for usage. Their licenses are listed below: 1. [jackson-annotations v2.17.2](https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations/2.17.2) Maven: `com.fasterxml.jackson.core:jackson-annotations:2.17.2` @@ -175,9 +168,9 @@ The following libraries are required for running tests: # Questions, Bugs, and Feature Requests? Need to contact us directly? [Browse the issues -tickets](https://github.com/box/box-java-sdk-gen/issues)! Or, if that +tickets](https://github.com/box/box-java-sdk/issues)! Or, if that doesn't work, [file a new -one](https://github.com/box/box-java-sdk-gen/issues/new) and we will get +one](https://github.com/box/box-java-sdk/issues/new) and we will get back to you. If you have general questions about the Box API, you can post to the [Box Developer Forum](https://forum.box.com/). diff --git a/docs/archives.md b/docs/archives.md index d0a2f7b9c..173edd0c6 100644 --- a/docs/archives.md +++ b/docs/archives.md @@ -9,6 +9,8 @@ Retrieves archives for an enterprise. +To learn more about the archive APIs, see the [Archive API Guide](g://archives). + This operation is performed by calling function `getArchivesV2025R0`. See the endpoint docs at @@ -38,6 +40,8 @@ Returns a list of archives in the enterprise. Creates an archive. +To learn more about the archive APIs, see the [Archive API Guide](g://archives). + This operation is performed by calling function `createArchiveV2025R0`. See the endpoint docs at @@ -67,6 +71,8 @@ Returns a new archive object. Permanently deletes an archive. +To learn more about the archive APIs, see the [Archive API Guide](g://archives). + This operation is performed by calling function `deleteArchiveByIdV2025R0`. See the endpoint docs at diff --git a/docs/docgen.md b/docs/docgen.md index d7246e4df..ad7ad936f 100644 --- a/docs/docgen.md +++ b/docs/docgen.md @@ -46,7 +46,7 @@ See the endpoint docs at ``` -client.getDocgen().getDocgenJobsV2025R0(new GetDocgenJobsV2025R0QueryParams.Builder().limit(500L).build()) +client.getDocgen().getDocgenJobsV2025R0(new GetDocgenJobsV2025R0QueryParams.Builder().limit(10000L).build()) ``` ### Arguments diff --git a/migration-guide.md b/migration-guide.md index 9c5f5fc47..a38d4f5de 100644 --- a/migration-guide.md +++ b/migration-guide.md @@ -1,4 +1,4 @@ -# Migration guide from `box-java-sdk` to `box-java-sdk-gen` +# Migration guide from v4 to v10 version of `box-java-sdk` @@ -31,58 +31,64 @@ - [As-User header](#as-user-header) - [Custom Base URLs](#custom-base-urls) - [Convenience methods](#convenience-methods) + - [Webhook validation](#webhook-validation) - [Chunked upload of big files](#chunked-upload-of-big-files) ## Introduction -The new `box-java-sdk-gen` SDK library, which helps Java developers to conveniently integrate with Box API. -In the contrary to the previous library (`box-java-sdk`), it is not manually maintained, but auto-generated +The v10 release of `box-java-sdk` library helps Java developers to conveniently integrate with Box API. +In the contrary to the previous versions (v4 or lower), it is not manually maintained, but auto-generated based on Open API Specification. This means you can leverage the most up-to-date Box API features in your -applications without delay. More information and benefits of using the new can be found in the -[README](https://github.com/box/box-java-sdk-gen/blob/main/README.md) file. +applications without delay. We introduced this major version bump to reflect the significant codebase changes +and to align with other Box SDKs, which will also adopt generated code starting from their v10 releases. +More information and benefits of using the new can be found in the +[README](https://github.com/box/box-java-sdk/blob/sdk-gen/README.md) file. ## Installation -To install a new Box Java SDK GENERATED library, you can use Maven or Gradle. The library is available in the -[Maven Central Repository](https://search.maven.org/artifact/com.box/box-java-sdk-gen). +To install v10 version of Box Java SDK, you can use Maven or Gradle. The library is available in the +[Maven Central Repository](https://search.maven.org/artifact/com.box/box-java-sdk). -The new Box Java SDK GENERATED library could be used in the same project along with the legacy one. -If you want to use a feature available only in the new SDK, you don't need to necessarily migrate all your code -to use Box Java SDK GENERATED at once. You can use a new feature from the new library, +Soon we are going to introduce v5 version of Box Java SDK that will combine package `com.box.sdk` from +v4 and `com.box.sdkgen` from v10 of the SDK so that code from both versions could be used in the same project. +If you would like to use a feature available only in the new SDK, you won't need to necessarily migrate all your code +to use generated SDK at once. You will be able to use a new feature from the `com.box.sdkgen` package, while keeping the rest of your code unchanged. Note that it may be required to use fully qualified class names -from the new SDK to avoid conflicts with the old one. However, we recommend to fully migrate to the new SDK eventually. +to avoid conflicts between two packages. However, we recommend to fully migrate to the v10 of the SDK eventually. ### Maven -To add a dependency to your Maven project, add the following to your `pom.xml` file: +To start using generated version of the SDK in you Maven project just bump the version of the Box Java SDK library +in `pom.xml`to 10.0.0 or higher: ```xml com.box - box-java-sdk-gen - VERSION + box-java-sdk + 10.0.0 ``` ### Gradle -To add a dependency to your Gradle project, add the following to your `build.gradle` file: +To bump a dependency in your Gradle project, bump the version useed in your `build.gradle` file: ```groovy -implementation 'com.box:box-java-sdk-gen:VERSION' +implementation 'com.box:box-java-sdk:10.0.0' ``` ## Key differences ### Manager approach -The main difference between the old SDK and the new one is the way how API methods are aggregated into objects. +The main difference between the manual v4 version of the SDK and the nextgen generated one, +is the way how API methods are aggregated into objects. -**Old (`box-java-sdk`)** +**Old (`v4`)** -Firstly, in the old SDK to be able to perform any action on an API object, e.g. `User`, you first had to create its class. +Firstly, in the v4 version of the SDK to be able to perform any action on an API object, e.g. `User`, you first had to create its class. To do it is required to call: ```java @@ -104,9 +110,9 @@ info.setName(name); user.updateInfo(info); ``` -**New (`box-java-sdk-gen`)** +**New (`v10`)** -In the new SDK the API methods are grouped into dedicated manager classes, e.g. `User` object +In the v10 version of the SDK the API methods are grouped into dedicated manager classes, e.g. `User` object has dedicated `UserManager` class. Each manager class instance is available in `BoxClient` object. The fields storing references to the managers are named in the plural form of the resource that the manager handles - `client.users` for `UsersManager`. If you want to perform any operation @@ -138,12 +144,12 @@ UserFull updatedUser = client.users.updateUserById(user.getId(), requestBody); ### Immutable design -The new SDK is designed to be mostly immutable. This means that methods, -which used to modify the existing object in old SDK now return a new instance of the class with the modified state. +The v10 is designed to be mostly immutable. This means that methods, +which used to modify the existing object in v4 release now return a new instance of the class with the modified state. This design pattern is used to avoid side effects and make the code more predictable and easier to reason about. Methods, which returns a new modified instance of an object, will always have a prefix `with` in their names, e.g. -**New (`box-java-sdk-gen`)** +**New (`v10`)** ```java BoxClient client = new BoxClient(auth); @@ -154,9 +160,9 @@ BoxClient asUserClient = client.withAsUserHeader("USER_ID"); To facilitate easier work with the new SDK, we have changed the API method signatures to be consistent and unified. -**Old (`box-java-sdk`)** +**Old (`v4`)** -In the old SDK, API methods had numerous parameters, which were not grouped into any objects and were passed as separate arguments, e.g. the method for creating a sign request looked like this: +In the manual version, API methods had numerous parameters, which were not grouped into any objects and were passed as separate arguments, e.g. the method for creating a sign request looked like this: ```java public static BoxSignRequest.Info createSignRequest(BoxAPIConnection api, List sourceFiles, @@ -164,9 +170,9 @@ public static BoxSignRequest.Info createSignRequest(BoxAPIConnection api, List() {{ ### Custom Base URLs -**Old (`box-java-sdk`)** +**Old (`v4`)** -In old SDK you could specify the custom base URLs, which will be used for API calls made by setting +In v4 you could specify the custom base URLs, which will be used for API calls made by setting the new values of static variables of the `API` class. ```java @@ -545,9 +552,9 @@ api.setUploadURL("https://upload.example.com"); api.setTokenURL("https://example.com/token"); ``` -**New (`box-java-sdk-gen`)** +**New (`v10`)** -In the new SDK this functionality has been implemented as part of the `BoxClient` class. +Inv10 this functionality has been implemented as part of the `BoxClient` class. By calling the `client.withCustomBaseUrls()` method, you can specify the custom base URLs that will be used for API calls made by client. Following the immutability pattern, this call creates a new client, leaving the original client unmodified. @@ -562,14 +569,102 @@ BoxClient clientWithCustomBaseUrl = client.withCustomBaseUrls(baseUrls); ## Convenience methods +### Webhook validation + +Webhook validation is used to validate a webhook message by verifying the signature and the delivery timestamp. + +**Old (`v4`)** + +In v4, when you receive a webhook message from Box, to validate that it actually came from Box +you need to call `BoxWebHookSignatureVerifier#verify(String sigVersion, String sigAlgorithm, String primarySignature, String secondarySignature, String payload, String deliveryTimestamp)` method. +It would return a `boolean` value indicating whether the message was valid. + +```java +// Webhook message contents are shown for demonstration purposes +// Normally these would come from your HTTP handler + +// Webhook message HTTP body +String messagePayload = "{" ++ "\"type\":\"webhook_event"," ++ "\"webhook\":{" ++ "\"id\":\"1234567890\"" ++ "}," ++ "\"trigger\":\"FILE.UPLOADED\"," ++ "\"source\":{" ++ "\"id\":\"1234567890\"," ++ "\"type\":\"file\"," ++ "\"name\":\"Test.txt\"" ++ "}}"; + +// Webhook message HTTP headers +Map messageHeaders = new HashMap(); +headers.put("BOX-DELIVERY-ID", "f96bb54b-ee16-4fc5-aa65-8c2d9e5b546f"); +headers.put("BOX-DELIVERY-TIMESTAMP", "2020-01-01T00:00:00-07:00"); +headers.put("BOX-SIGNATURE-ALGORITHM", "HmacSHA256"); +headers.put("BOX-SIGNATURE-PRIMARY", "6TfeAW3A1PASkgboxxA5yqHNKOwFyMWuEXny/FPD5hI="); +headers.put("BOX-SIGNATURE-SECONDARY", "v+1CD1Jdo3muIcbpv5lxxgPglOqMfsNHPV899xWYydo="); +headers.put("BOX-SIGNATURE-VERSION", "1"); + +// Your application's webhook keys, obtained from the Box Developer Console +String primaryKey = "4py2I9eSFb0ezXH5iPeQRcFK1LRLCdip"; +String secondaryKey = "Aq5EEEjAu4ssbz8n9UMu7EerI0LKj2TL"; + +BoxWebHookSignatureVerifier verifier = new BoxWebHookSignatureVerifier(primaryKey, secondaryKey); +boolean isValidMessage = verifier.verify( + headers.get("BOX-SIGNATURE-VERSION"), + headers.get("BOX-SIGNATURE-ALGORITHM"), + headers.get("BOX-SIGNATURE-PRIMARY"), + headers.get("BOX-SIGNATURE-SECONDARY"), + messagePayload, + headers.get("BOX-DELIVERY-TIMESTAMP") +); +``` + +**New (`v10`)** + +In the v10 version of ths SDK, the `WebhooksManager.validateMessage()` method requires the `messagePayload` to be of type `string`, +map of headers to be of type `Map`, and the primary and secondary keys to be of type `String`. + +```java +// Webhook message HTTP body +String messagePayload = "{" + + "\"type\":\"webhook_event"," + + "\"webhook\":{" + + "\"id\":\"1234567890\"" + + "}," + + "\"trigger\":\"FILE.UPLOADED\"," + + "\"source\":{" + + "\"id\":\"1234567890\"," + + "\"type\":\"file\"," + + "\"name\":\"Test.txt\"" + + "}}"; + +// Webhook message HTTP headers +Map messageHeaders = new HashMap(); +headers.put("BOX-DELIVERY-ID", "f96bb54b-ee16-4fc5-aa65-8c2d9e5b546f"); +headers.put("BOX-DELIVERY-TIMESTAMP", "2020-01-01T00:00:00-07:00"); +headers.put("BOX-SIGNATURE-ALGORITHM", "HmacSHA256"); +headers.put("BOX-SIGNATURE-PRIMARY", "6TfeAW3A1PASkgboxxA5yqHNKOwFyMWuEXny/FPD5hI="); +headers.put("BOX-SIGNATURE-SECONDARY", "v+1CD1Jdo3muIcbpv5lxxgPglOqMfsNHPV899xWYydo="); +headers.put("BOX-SIGNATURE-VERSION", "1"); + +// Your application's webhook keys, obtained from the Box Developer Console +String primaryKey = "4py2I9eSFb0ezXH5iPeQRcFK1LRLCdip"; +String secondaryKey = "Aq5EEEjAu4ssbz8n9UMu7EerI0LKj2TL"; + +boolean isValidMessage = WebhooksManager.validateMessage( + messagePayload, messageHeaders, primaryKey, secondaryKey); +) +``` + ### Chunked upload of big files For large files or in cases where the network connection is less reliable, you may want to upload the file in parts. This allows a single part to fail without aborting the entire upload, and failed parts are being retried automatically. -**Old (`box-java-sdk`)** +**Old (`v4`)** -In the old SDK, you could use the `uploadLargeFile` method of the `BoxFolder` class to upload a large file. +In the v4, you could use the `uploadLargeFile` method of the `BoxFolder` class to upload a large file. This method accepted a `FileInputStream` as the input stream and the file size as a parameter. The method also required ```java @@ -580,9 +675,9 @@ BoxFolder rootFolder = BoxFolder.getRootFolder(api); BoxFile.Info fileInfo = rootFolder.uploadLargeFile(inputStream, "My_Large_File.txt", myFile.length()); ``` -**New (`box-java-sdk-gen`)** +**New (`v10`)** -In the new SDK, the equivalent method is `chunked_uploads.uploadBigFile()`. It accepts a file-like object +In the v10, the equivalent method is `chunked_uploads.uploadBigFile()`. It accepts a file-like object as the `file` parameter, and the `fileName` and `fileSize` parameters are now passed as arguments. The `parentFolderId` parameter is also required to specify the folder where the file will be uploaded. diff --git a/src/main/java/com/box/sdkgen/schemas/fileorfolder/FileOrFolder.java b/src/main/java/com/box/sdkgen/schemas/fileorfolder/FileOrFolder.java deleted file mode 100644 index 0eef1deab..000000000 --- a/src/main/java/com/box/sdkgen/schemas/fileorfolder/FileOrFolder.java +++ /dev/null @@ -1,213 +0,0 @@ -package com.box.sdkgen.schemas.fileorfolder; - -import com.box.sdkgen.internal.OneOfTwo; -import com.box.sdkgen.schemas.file.File; -import com.box.sdkgen.schemas.folder.Folder; -import com.box.sdkgen.schemas.foldermini.FolderMini; -import com.box.sdkgen.schemas.usermini.UserMini; -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.box.sdkgen.serialization.json.JsonManager; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.io.IOException; -import java.util.Date; - -@JsonDeserialize(using = FileOrFolder.FileOrFolderDeserializer.class) -@JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) -public class FileOrFolder extends OneOfTwo { - - protected final String description; - - protected final Long size; - - protected final Date createdAt; - - protected final Date modifiedAt; - - protected final Date trashedAt; - - protected final Date purgedAt; - - protected final Date contentCreatedAt; - - protected final Date contentModifiedAt; - - protected final UserMini createdBy; - - protected final UserMini modifiedBy; - - protected final UserMini ownedBy; - - protected final FolderMini parent; - - protected final String itemStatus; - - protected final String sequenceId; - - protected final String name; - - protected final String id; - - protected final String etag; - - protected final String type; - - public FileOrFolder(File file) { - super(file, null); - this.description = file.getDescription(); - this.size = file.getSize(); - this.createdAt = file.getCreatedAt(); - this.modifiedAt = file.getModifiedAt(); - this.trashedAt = file.getTrashedAt(); - this.purgedAt = file.getPurgedAt(); - this.contentCreatedAt = file.getContentCreatedAt(); - this.contentModifiedAt = file.getContentModifiedAt(); - this.createdBy = file.getCreatedBy(); - this.modifiedBy = file.getModifiedBy(); - this.ownedBy = file.getOwnedBy(); - this.parent = file.getParent(); - this.itemStatus = EnumWrapper.convertToString(file.getItemStatus()); - this.sequenceId = file.getSequenceId(); - this.name = file.getName(); - this.id = file.getId(); - this.etag = file.getEtag(); - this.type = EnumWrapper.convertToString(file.getType()); - } - - public FileOrFolder(Folder folder) { - super(null, folder); - this.description = folder.getDescription(); - this.size = folder.getSize(); - this.createdAt = folder.getCreatedAt(); - this.modifiedAt = folder.getModifiedAt(); - this.trashedAt = folder.getTrashedAt(); - this.purgedAt = folder.getPurgedAt(); - this.contentCreatedAt = folder.getContentCreatedAt(); - this.contentModifiedAt = folder.getContentModifiedAt(); - this.createdBy = folder.getCreatedBy(); - this.modifiedBy = folder.getModifiedBy(); - this.ownedBy = folder.getOwnedBy(); - this.parent = folder.getParent(); - this.itemStatus = EnumWrapper.convertToString(folder.getItemStatus()); - this.sequenceId = folder.getSequenceId(); - this.name = folder.getName(); - this.id = folder.getId(); - this.etag = folder.getEtag(); - this.type = EnumWrapper.convertToString(folder.getType()); - } - - public boolean isFile() { - return value0 != null; - } - - public File getFile() { - return value0; - } - - public boolean isFolder() { - return value1 != null; - } - - public Folder getFolder() { - return value1; - } - - public String getDescription() { - return description; - } - - public long getSize() { - return size; - } - - public Date getCreatedAt() { - return createdAt; - } - - public Date getModifiedAt() { - return modifiedAt; - } - - public Date getTrashedAt() { - return trashedAt; - } - - public Date getPurgedAt() { - return purgedAt; - } - - public Date getContentCreatedAt() { - return contentCreatedAt; - } - - public Date getContentModifiedAt() { - return contentModifiedAt; - } - - public UserMini getCreatedBy() { - return createdBy; - } - - public UserMini getModifiedBy() { - return modifiedBy; - } - - public UserMini getOwnedBy() { - return ownedBy; - } - - public FolderMini getParent() { - return parent; - } - - public String getItemStatus() { - return itemStatus; - } - - public String getSequenceId() { - return sequenceId; - } - - public String getName() { - return name; - } - - public String getId() { - return id; - } - - public String getEtag() { - return etag; - } - - public String getType() { - return type; - } - - static class FileOrFolderDeserializer extends JsonDeserializer { - - public FileOrFolderDeserializer() { - super(); - } - - @Override - public FileOrFolder deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { - JsonNode node = JsonManager.jsonToSerializedData(jp); - JsonNode discriminant0 = node.get("type"); - if (!(discriminant0 == null)) { - switch (discriminant0.asText()) { - case "file": - return new FileOrFolder(JsonManager.deserialize(node, File.class)); - case "folder": - return new FileOrFolder(JsonManager.deserialize(node, Folder.class)); - } - } - throw new JsonMappingException(jp, "Unable to deserialize FileOrFolder"); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndex.java b/src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndex.java deleted file mode 100644 index f1461e06f..000000000 --- a/src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndex.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.box.sdkgen.schemas.metadataqueryindex; - -import com.box.sdkgen.internal.NullableFieldTracker; -import com.box.sdkgen.internal.SerializableObject; -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.fasterxml.jackson.annotation.JsonFilter; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.List; -import java.util.Objects; - -@JsonFilter("nullablePropertyFilter") -public class MetadataQueryIndex extends SerializableObject { - - protected String id; - - protected final String type; - - @JsonDeserialize( - using = MetadataQueryIndexStatusField.MetadataQueryIndexStatusFieldDeserializer.class) - @JsonSerialize( - using = MetadataQueryIndexStatusField.MetadataQueryIndexStatusFieldSerializer.class) - protected final EnumWrapper status; - - protected List fields; - - public MetadataQueryIndex(String type, MetadataQueryIndexStatusField status) { - super(); - this.type = type; - this.status = new EnumWrapper(status); - } - - public MetadataQueryIndex( - @JsonProperty("type") String type, - @JsonProperty("status") EnumWrapper status) { - super(); - this.type = type; - this.status = status; - } - - protected MetadataQueryIndex(Builder builder) { - super(); - this.id = builder.id; - this.type = builder.type; - this.status = builder.status; - this.fields = builder.fields; - markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); - } - - public String getId() { - return id; - } - - public String getType() { - return type; - } - - public EnumWrapper getStatus() { - return status; - } - - public List getFields() { - return fields; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - MetadataQueryIndex casted = (MetadataQueryIndex) o; - return Objects.equals(id, casted.id) - && Objects.equals(type, casted.type) - && Objects.equals(status, casted.status) - && Objects.equals(fields, casted.fields); - } - - @Override - public int hashCode() { - return Objects.hash(id, type, status, fields); - } - - @Override - public String toString() { - return "MetadataQueryIndex{" - + "id='" - + id - + '\'' - + ", " - + "type='" - + type - + '\'' - + ", " - + "status='" - + status - + '\'' - + ", " - + "fields='" - + fields - + '\'' - + "}"; - } - - public static class Builder extends NullableFieldTracker { - - protected String id; - - protected final String type; - - protected final EnumWrapper status; - - protected List fields; - - public Builder(String type, MetadataQueryIndexStatusField status) { - super(); - this.type = type; - this.status = new EnumWrapper(status); - } - - public Builder(String type, EnumWrapper status) { - super(); - this.type = type; - this.status = status; - } - - public Builder id(String id) { - this.id = id; - return this; - } - - public Builder fields(List fields) { - this.fields = fields; - return this; - } - - public MetadataQueryIndex build() { - return new MetadataQueryIndex(this); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndexFieldsField.java b/src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndexFieldsField.java deleted file mode 100644 index aabe1f4e1..000000000 --- a/src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndexFieldsField.java +++ /dev/null @@ -1,104 +0,0 @@ -package com.box.sdkgen.schemas.metadataqueryindex; - -import com.box.sdkgen.internal.NullableFieldTracker; -import com.box.sdkgen.internal.SerializableObject; -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.fasterxml.jackson.annotation.JsonFilter; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Objects; - -@JsonFilter("nullablePropertyFilter") -public class MetadataQueryIndexFieldsField extends SerializableObject { - - protected String key; - - @JsonDeserialize( - using = - MetadataQueryIndexFieldsSortDirectionField - .MetadataQueryIndexFieldsSortDirectionFieldDeserializer.class) - @JsonSerialize( - using = - MetadataQueryIndexFieldsSortDirectionField - .MetadataQueryIndexFieldsSortDirectionFieldSerializer.class) - @JsonProperty("sort_direction") - protected EnumWrapper sortDirection; - - public MetadataQueryIndexFieldsField() { - super(); - } - - protected MetadataQueryIndexFieldsField(Builder builder) { - super(); - this.key = builder.key; - this.sortDirection = builder.sortDirection; - markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); - } - - public String getKey() { - return key; - } - - public EnumWrapper getSortDirection() { - return sortDirection; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - MetadataQueryIndexFieldsField casted = (MetadataQueryIndexFieldsField) o; - return Objects.equals(key, casted.key) && Objects.equals(sortDirection, casted.sortDirection); - } - - @Override - public int hashCode() { - return Objects.hash(key, sortDirection); - } - - @Override - public String toString() { - return "MetadataQueryIndexFieldsField{" - + "key='" - + key - + '\'' - + ", " - + "sortDirection='" - + sortDirection - + '\'' - + "}"; - } - - public static class Builder extends NullableFieldTracker { - - protected String key; - - protected EnumWrapper sortDirection; - - public Builder key(String key) { - this.key = key; - return this; - } - - public Builder sortDirection(MetadataQueryIndexFieldsSortDirectionField sortDirection) { - this.sortDirection = - new EnumWrapper(sortDirection); - return this; - } - - public Builder sortDirection( - EnumWrapper sortDirection) { - this.sortDirection = sortDirection; - return this; - } - - public MetadataQueryIndexFieldsField build() { - return new MetadataQueryIndexFieldsField(this); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndexFieldsSortDirectionField.java b/src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndexFieldsSortDirectionField.java deleted file mode 100644 index 75c387f89..000000000 --- a/src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndexFieldsSortDirectionField.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.box.sdkgen.schemas.metadataqueryindex; - -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.box.sdkgen.serialization.json.Valuable; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; -import java.io.IOException; -import java.util.Arrays; - -public enum MetadataQueryIndexFieldsSortDirectionField implements Valuable { - ASC("asc"), - DESC("desc"); - - private final String value; - - MetadataQueryIndexFieldsSortDirectionField(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - public static class MetadataQueryIndexFieldsSortDirectionFieldDeserializer - extends JsonDeserializer> { - - public MetadataQueryIndexFieldsSortDirectionFieldDeserializer() { - super(); - } - - @Override - public EnumWrapper deserialize( - JsonParser p, DeserializationContext ctxt) throws IOException { - String value = p.getValueAsString(); - return Arrays.stream(MetadataQueryIndexFieldsSortDirectionField.values()) - .filter((v) -> v.getValue().equalsIgnoreCase(value)) - .findFirst() - .map(EnumWrapper::new) - .orElse(new EnumWrapper(value)); - } - } - - public static class MetadataQueryIndexFieldsSortDirectionFieldSerializer - extends JsonSerializer> { - - public MetadataQueryIndexFieldsSortDirectionFieldSerializer() { - super(); - } - - @Override - public void serialize( - EnumWrapper value, - JsonGenerator gen, - SerializerProvider serializers) - throws IOException { - gen.writeString(value.getStringValue()); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndexStatusField.java b/src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndexStatusField.java deleted file mode 100644 index 22f4529ba..000000000 --- a/src/main/java/com/box/sdkgen/schemas/metadataqueryindex/MetadataQueryIndexStatusField.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.box.sdkgen.schemas.metadataqueryindex; - -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.box.sdkgen.serialization.json.Valuable; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; -import java.io.IOException; -import java.util.Arrays; - -public enum MetadataQueryIndexStatusField implements Valuable { - BUILDING("building"), - ACTIVE("active"), - DISABLED("disabled"); - - private final String value; - - MetadataQueryIndexStatusField(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - public static class MetadataQueryIndexStatusFieldDeserializer - extends JsonDeserializer> { - - public MetadataQueryIndexStatusFieldDeserializer() { - super(); - } - - @Override - public EnumWrapper deserialize( - JsonParser p, DeserializationContext ctxt) throws IOException { - String value = p.getValueAsString(); - return Arrays.stream(MetadataQueryIndexStatusField.values()) - .filter((v) -> v.getValue().equalsIgnoreCase(value)) - .findFirst() - .map(EnumWrapper::new) - .orElse(new EnumWrapper(value)); - } - } - - public static class MetadataQueryIndexStatusFieldSerializer - extends JsonSerializer> { - - public MetadataQueryIndexStatusFieldSerializer() { - super(); - } - - @Override - public void serialize( - EnumWrapper value, - JsonGenerator gen, - SerializerProvider serializers) - throws IOException { - gen.writeString(value.getStringValue()); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignmentbase/RetentionPolicyAssignmentBase.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignmentbase/RetentionPolicyAssignmentBase.java deleted file mode 100644 index 41c9beb1f..000000000 --- a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignmentbase/RetentionPolicyAssignmentBase.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.box.sdkgen.schemas.retentionpolicyassignmentbase; - -import com.box.sdkgen.internal.NullableFieldTracker; -import com.box.sdkgen.internal.SerializableObject; -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.fasterxml.jackson.annotation.JsonFilter; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Objects; - -@JsonFilter("nullablePropertyFilter") -public class RetentionPolicyAssignmentBase extends SerializableObject { - - protected final String id; - - @JsonDeserialize( - using = - RetentionPolicyAssignmentBaseTypeField.RetentionPolicyAssignmentBaseTypeFieldDeserializer - .class) - @JsonSerialize( - using = - RetentionPolicyAssignmentBaseTypeField.RetentionPolicyAssignmentBaseTypeFieldSerializer - .class) - protected EnumWrapper type; - - public RetentionPolicyAssignmentBase(@JsonProperty("id") String id) { - super(); - this.id = id; - this.type = - new EnumWrapper( - RetentionPolicyAssignmentBaseTypeField.RETENTION_POLICY_ASSIGNMENT); - } - - protected RetentionPolicyAssignmentBase(Builder builder) { - super(); - this.id = builder.id; - this.type = builder.type; - markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); - } - - public String getId() { - return id; - } - - public EnumWrapper getType() { - return type; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - RetentionPolicyAssignmentBase casted = (RetentionPolicyAssignmentBase) o; - return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); - } - - @Override - public int hashCode() { - return Objects.hash(id, type); - } - - @Override - public String toString() { - return "RetentionPolicyAssignmentBase{" - + "id='" - + id - + '\'' - + ", " - + "type='" - + type - + '\'' - + "}"; - } - - public static class Builder extends NullableFieldTracker { - - protected final String id; - - protected EnumWrapper type; - - public Builder(String id) { - super(); - this.id = id; - this.type = - new EnumWrapper( - RetentionPolicyAssignmentBaseTypeField.RETENTION_POLICY_ASSIGNMENT); - } - - public Builder type(RetentionPolicyAssignmentBaseTypeField type) { - this.type = new EnumWrapper(type); - return this; - } - - public Builder type(EnumWrapper type) { - this.type = type; - return this; - } - - public RetentionPolicyAssignmentBase build() { - return new RetentionPolicyAssignmentBase(this); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignmentbase/RetentionPolicyAssignmentBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignmentbase/RetentionPolicyAssignmentBaseTypeField.java deleted file mode 100644 index 5a119cc1c..000000000 --- a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignmentbase/RetentionPolicyAssignmentBaseTypeField.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.box.sdkgen.schemas.retentionpolicyassignmentbase; - -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.box.sdkgen.serialization.json.Valuable; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; -import java.io.IOException; -import java.util.Arrays; - -public enum RetentionPolicyAssignmentBaseTypeField implements Valuable { - RETENTION_POLICY_ASSIGNMENT("retention_policy_assignment"); - - private final String value; - - RetentionPolicyAssignmentBaseTypeField(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - public static class RetentionPolicyAssignmentBaseTypeFieldDeserializer - extends JsonDeserializer> { - - public RetentionPolicyAssignmentBaseTypeFieldDeserializer() { - super(); - } - - @Override - public EnumWrapper deserialize( - JsonParser p, DeserializationContext ctxt) throws IOException { - String value = p.getValueAsString(); - return Arrays.stream(RetentionPolicyAssignmentBaseTypeField.values()) - .filter((v) -> v.getValue().equalsIgnoreCase(value)) - .findFirst() - .map(EnumWrapper::new) - .orElse(new EnumWrapper(value)); - } - } - - public static class RetentionPolicyAssignmentBaseTypeFieldSerializer - extends JsonSerializer> { - - public RetentionPolicyAssignmentBaseTypeFieldSerializer() { - super(); - } - - @Override - public void serialize( - EnumWrapper value, - JsonGenerator gen, - SerializerProvider serializers) - throws IOException { - gen.writeString(value.getStringValue()); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocation.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocation.java deleted file mode 100644 index 7742a06c6..000000000 --- a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocation.java +++ /dev/null @@ -1,268 +0,0 @@ -package com.box.sdkgen.schemas.skillinvocation; - -import com.box.sdkgen.internal.NullableFieldTracker; -import com.box.sdkgen.internal.SerializableObject; -import com.box.sdkgen.internal.utils.DateTimeUtils; -import com.box.sdkgen.schemas.event.Event; -import com.box.sdkgen.schemas.file.File; -import com.box.sdkgen.schemas.fileorfolder.FileOrFolder; -import com.box.sdkgen.schemas.folder.Folder; -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.fasterxml.jackson.annotation.JsonFilter; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; -import java.util.Objects; - -@JsonFilter("nullablePropertyFilter") -public class SkillInvocation extends SerializableObject { - - @JsonDeserialize(using = SkillInvocationTypeField.SkillInvocationTypeFieldDeserializer.class) - @JsonSerialize(using = SkillInvocationTypeField.SkillInvocationTypeFieldSerializer.class) - protected EnumWrapper type; - - protected String id; - - protected SkillInvocationSkillField skill; - - protected SkillInvocationTokenField token; - - protected SkillInvocationStatusField status; - - @JsonProperty("created_at") - @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) - @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; - - protected String trigger; - - protected SkillInvocationEnterpriseField enterprise; - - protected FileOrFolder source; - - protected Event event; - - public SkillInvocation() { - super(); - } - - protected SkillInvocation(Builder builder) { - super(); - this.type = builder.type; - this.id = builder.id; - this.skill = builder.skill; - this.token = builder.token; - this.status = builder.status; - this.createdAt = builder.createdAt; - this.trigger = builder.trigger; - this.enterprise = builder.enterprise; - this.source = builder.source; - this.event = builder.event; - markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); - } - - public EnumWrapper getType() { - return type; - } - - public String getId() { - return id; - } - - public SkillInvocationSkillField getSkill() { - return skill; - } - - public SkillInvocationTokenField getToken() { - return token; - } - - public SkillInvocationStatusField getStatus() { - return status; - } - - public Date getCreatedAt() { - return createdAt; - } - - public String getTrigger() { - return trigger; - } - - public SkillInvocationEnterpriseField getEnterprise() { - return enterprise; - } - - public FileOrFolder getSource() { - return source; - } - - public Event getEvent() { - return event; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - SkillInvocation casted = (SkillInvocation) o; - return Objects.equals(type, casted.type) - && Objects.equals(id, casted.id) - && Objects.equals(skill, casted.skill) - && Objects.equals(token, casted.token) - && Objects.equals(status, casted.status) - && Objects.equals(createdAt, casted.createdAt) - && Objects.equals(trigger, casted.trigger) - && Objects.equals(enterprise, casted.enterprise) - && Objects.equals(source, casted.source) - && Objects.equals(event, casted.event); - } - - @Override - public int hashCode() { - return Objects.hash( - type, id, skill, token, status, createdAt, trigger, enterprise, source, event); - } - - @Override - public String toString() { - return "SkillInvocation{" - + "type='" - + type - + '\'' - + ", " - + "id='" - + id - + '\'' - + ", " - + "skill='" - + skill - + '\'' - + ", " - + "token='" - + token - + '\'' - + ", " - + "status='" - + status - + '\'' - + ", " - + "createdAt='" - + createdAt - + '\'' - + ", " - + "trigger='" - + trigger - + '\'' - + ", " - + "enterprise='" - + enterprise - + '\'' - + ", " - + "source='" - + source - + '\'' - + ", " - + "event='" - + event - + '\'' - + "}"; - } - - public static class Builder extends NullableFieldTracker { - - protected EnumWrapper type; - - protected String id; - - protected SkillInvocationSkillField skill; - - protected SkillInvocationTokenField token; - - protected SkillInvocationStatusField status; - - protected Date createdAt; - - protected String trigger; - - protected SkillInvocationEnterpriseField enterprise; - - protected FileOrFolder source; - - protected Event event; - - public Builder type(SkillInvocationTypeField type) { - this.type = new EnumWrapper(type); - return this; - } - - public Builder type(EnumWrapper type) { - this.type = type; - return this; - } - - public Builder id(String id) { - this.id = id; - return this; - } - - public Builder skill(SkillInvocationSkillField skill) { - this.skill = skill; - return this; - } - - public Builder token(SkillInvocationTokenField token) { - this.token = token; - return this; - } - - public Builder status(SkillInvocationStatusField status) { - this.status = status; - return this; - } - - public Builder createdAt(Date createdAt) { - this.createdAt = createdAt; - return this; - } - - public Builder trigger(String trigger) { - this.trigger = trigger; - return this; - } - - public Builder enterprise(SkillInvocationEnterpriseField enterprise) { - this.enterprise = enterprise; - return this; - } - - public Builder source(File source) { - this.source = new FileOrFolder(source); - return this; - } - - public Builder source(Folder source) { - this.source = new FileOrFolder(source); - return this; - } - - public Builder source(FileOrFolder source) { - this.source = source; - return this; - } - - public Builder event(Event event) { - this.event = event; - return this; - } - - public SkillInvocation build() { - return new SkillInvocation(this); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationEnterpriseField.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationEnterpriseField.java deleted file mode 100644 index 053cb5541..000000000 --- a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationEnterpriseField.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.box.sdkgen.schemas.skillinvocation; - -import com.box.sdkgen.internal.NullableFieldTracker; -import com.box.sdkgen.internal.SerializableObject; -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.fasterxml.jackson.annotation.JsonFilter; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Objects; - -@JsonFilter("nullablePropertyFilter") -public class SkillInvocationEnterpriseField extends SerializableObject { - - protected String id; - - @JsonDeserialize( - using = - SkillInvocationEnterpriseTypeField.SkillInvocationEnterpriseTypeFieldDeserializer.class) - @JsonSerialize( - using = SkillInvocationEnterpriseTypeField.SkillInvocationEnterpriseTypeFieldSerializer.class) - protected EnumWrapper type; - - protected String name; - - public SkillInvocationEnterpriseField() { - super(); - } - - protected SkillInvocationEnterpriseField(Builder builder) { - super(); - this.id = builder.id; - this.type = builder.type; - this.name = builder.name; - markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); - } - - public String getId() { - return id; - } - - public EnumWrapper getType() { - return type; - } - - public String getName() { - return name; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - SkillInvocationEnterpriseField casted = (SkillInvocationEnterpriseField) o; - return Objects.equals(id, casted.id) - && Objects.equals(type, casted.type) - && Objects.equals(name, casted.name); - } - - @Override - public int hashCode() { - return Objects.hash(id, type, name); - } - - @Override - public String toString() { - return "SkillInvocationEnterpriseField{" - + "id='" - + id - + '\'' - + ", " - + "type='" - + type - + '\'' - + ", " - + "name='" - + name - + '\'' - + "}"; - } - - public static class Builder extends NullableFieldTracker { - - protected String id; - - protected EnumWrapper type; - - protected String name; - - public Builder id(String id) { - this.id = id; - return this; - } - - public Builder type(SkillInvocationEnterpriseTypeField type) { - this.type = new EnumWrapper(type); - return this; - } - - public Builder type(EnumWrapper type) { - this.type = type; - return this; - } - - public Builder name(String name) { - this.name = name; - return this; - } - - public SkillInvocationEnterpriseField build() { - return new SkillInvocationEnterpriseField(this); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationEnterpriseTypeField.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationEnterpriseTypeField.java deleted file mode 100644 index a45d617d1..000000000 --- a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationEnterpriseTypeField.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.box.sdkgen.schemas.skillinvocation; - -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.box.sdkgen.serialization.json.Valuable; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; -import java.io.IOException; -import java.util.Arrays; - -public enum SkillInvocationEnterpriseTypeField implements Valuable { - ENTERPRISE("enterprise"); - - private final String value; - - SkillInvocationEnterpriseTypeField(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - public static class SkillInvocationEnterpriseTypeFieldDeserializer - extends JsonDeserializer> { - - public SkillInvocationEnterpriseTypeFieldDeserializer() { - super(); - } - - @Override - public EnumWrapper deserialize( - JsonParser p, DeserializationContext ctxt) throws IOException { - String value = p.getValueAsString(); - return Arrays.stream(SkillInvocationEnterpriseTypeField.values()) - .filter((v) -> v.getValue().equalsIgnoreCase(value)) - .findFirst() - .map(EnumWrapper::new) - .orElse(new EnumWrapper(value)); - } - } - - public static class SkillInvocationEnterpriseTypeFieldSerializer - extends JsonSerializer> { - - public SkillInvocationEnterpriseTypeFieldSerializer() { - super(); - } - - @Override - public void serialize( - EnumWrapper value, - JsonGenerator gen, - SerializerProvider serializers) - throws IOException { - gen.writeString(value.getStringValue()); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationSkillField.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationSkillField.java deleted file mode 100644 index d0524f67e..000000000 --- a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationSkillField.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.box.sdkgen.schemas.skillinvocation; - -import com.box.sdkgen.internal.NullableFieldTracker; -import com.box.sdkgen.internal.SerializableObject; -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.fasterxml.jackson.annotation.JsonFilter; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Objects; - -@JsonFilter("nullablePropertyFilter") -public class SkillInvocationSkillField extends SerializableObject { - - protected String id; - - @JsonDeserialize( - using = SkillInvocationSkillTypeField.SkillInvocationSkillTypeFieldDeserializer.class) - @JsonSerialize( - using = SkillInvocationSkillTypeField.SkillInvocationSkillTypeFieldSerializer.class) - protected EnumWrapper type; - - protected String name; - - @JsonProperty("api_key") - protected String apiKey; - - public SkillInvocationSkillField() { - super(); - } - - protected SkillInvocationSkillField(Builder builder) { - super(); - this.id = builder.id; - this.type = builder.type; - this.name = builder.name; - this.apiKey = builder.apiKey; - markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); - } - - public String getId() { - return id; - } - - public EnumWrapper getType() { - return type; - } - - public String getName() { - return name; - } - - public String getApiKey() { - return apiKey; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - SkillInvocationSkillField casted = (SkillInvocationSkillField) o; - return Objects.equals(id, casted.id) - && Objects.equals(type, casted.type) - && Objects.equals(name, casted.name) - && Objects.equals(apiKey, casted.apiKey); - } - - @Override - public int hashCode() { - return Objects.hash(id, type, name, apiKey); - } - - @Override - public String toString() { - return "SkillInvocationSkillField{" - + "id='" - + id - + '\'' - + ", " - + "type='" - + type - + '\'' - + ", " - + "name='" - + name - + '\'' - + ", " - + "apiKey='" - + apiKey - + '\'' - + "}"; - } - - public static class Builder extends NullableFieldTracker { - - protected String id; - - protected EnumWrapper type; - - protected String name; - - protected String apiKey; - - public Builder id(String id) { - this.id = id; - return this; - } - - public Builder type(SkillInvocationSkillTypeField type) { - this.type = new EnumWrapper(type); - return this; - } - - public Builder type(EnumWrapper type) { - this.type = type; - return this; - } - - public Builder name(String name) { - this.name = name; - return this; - } - - public Builder apiKey(String apiKey) { - this.apiKey = apiKey; - return this; - } - - public SkillInvocationSkillField build() { - return new SkillInvocationSkillField(this); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationSkillTypeField.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationSkillTypeField.java deleted file mode 100644 index 6e2295c0e..000000000 --- a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationSkillTypeField.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.box.sdkgen.schemas.skillinvocation; - -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.box.sdkgen.serialization.json.Valuable; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; -import java.io.IOException; -import java.util.Arrays; - -public enum SkillInvocationSkillTypeField implements Valuable { - SKILL("skill"); - - private final String value; - - SkillInvocationSkillTypeField(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - public static class SkillInvocationSkillTypeFieldDeserializer - extends JsonDeserializer> { - - public SkillInvocationSkillTypeFieldDeserializer() { - super(); - } - - @Override - public EnumWrapper deserialize( - JsonParser p, DeserializationContext ctxt) throws IOException { - String value = p.getValueAsString(); - return Arrays.stream(SkillInvocationSkillTypeField.values()) - .filter((v) -> v.getValue().equalsIgnoreCase(value)) - .findFirst() - .map(EnumWrapper::new) - .orElse(new EnumWrapper(value)); - } - } - - public static class SkillInvocationSkillTypeFieldSerializer - extends JsonSerializer> { - - public SkillInvocationSkillTypeFieldSerializer() { - super(); - } - - @Override - public void serialize( - EnumWrapper value, - JsonGenerator gen, - SerializerProvider serializers) - throws IOException { - gen.writeString(value.getStringValue()); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationStatusField.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationStatusField.java deleted file mode 100644 index f7786cdab..000000000 --- a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationStatusField.java +++ /dev/null @@ -1,138 +0,0 @@ -package com.box.sdkgen.schemas.skillinvocation; - -import com.box.sdkgen.internal.NullableFieldTracker; -import com.box.sdkgen.internal.SerializableObject; -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.fasterxml.jackson.annotation.JsonFilter; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Objects; - -@JsonFilter("nullablePropertyFilter") -public class SkillInvocationStatusField extends SerializableObject { - - @JsonDeserialize( - using = SkillInvocationStatusStateField.SkillInvocationStatusStateFieldDeserializer.class) - @JsonSerialize( - using = SkillInvocationStatusStateField.SkillInvocationStatusStateFieldSerializer.class) - protected EnumWrapper state; - - protected String message; - - @JsonProperty("error_code") - protected String errorCode; - - @JsonProperty("additional_info") - protected String additionalInfo; - - public SkillInvocationStatusField() { - super(); - } - - protected SkillInvocationStatusField(Builder builder) { - super(); - this.state = builder.state; - this.message = builder.message; - this.errorCode = builder.errorCode; - this.additionalInfo = builder.additionalInfo; - markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); - } - - public EnumWrapper getState() { - return state; - } - - public String getMessage() { - return message; - } - - public String getErrorCode() { - return errorCode; - } - - public String getAdditionalInfo() { - return additionalInfo; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - SkillInvocationStatusField casted = (SkillInvocationStatusField) o; - return Objects.equals(state, casted.state) - && Objects.equals(message, casted.message) - && Objects.equals(errorCode, casted.errorCode) - && Objects.equals(additionalInfo, casted.additionalInfo); - } - - @Override - public int hashCode() { - return Objects.hash(state, message, errorCode, additionalInfo); - } - - @Override - public String toString() { - return "SkillInvocationStatusField{" - + "state='" - + state - + '\'' - + ", " - + "message='" - + message - + '\'' - + ", " - + "errorCode='" - + errorCode - + '\'' - + ", " - + "additionalInfo='" - + additionalInfo - + '\'' - + "}"; - } - - public static class Builder extends NullableFieldTracker { - - protected EnumWrapper state; - - protected String message; - - protected String errorCode; - - protected String additionalInfo; - - public Builder state(SkillInvocationStatusStateField state) { - this.state = new EnumWrapper(state); - return this; - } - - public Builder state(EnumWrapper state) { - this.state = state; - return this; - } - - public Builder message(String message) { - this.message = message; - return this; - } - - public Builder errorCode(String errorCode) { - this.errorCode = errorCode; - return this; - } - - public Builder additionalInfo(String additionalInfo) { - this.additionalInfo = additionalInfo; - return this; - } - - public SkillInvocationStatusField build() { - return new SkillInvocationStatusField(this); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationStatusStateField.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationStatusStateField.java deleted file mode 100644 index 548c35a45..000000000 --- a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationStatusStateField.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.box.sdkgen.schemas.skillinvocation; - -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.box.sdkgen.serialization.json.Valuable; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; -import java.io.IOException; -import java.util.Arrays; - -public enum SkillInvocationStatusStateField implements Valuable { - INVOKED("invoked"), - PROCESSING("processing"), - SUCCESS("success"), - TRANSIENT_FAILURE("transient_failure"), - PERMANENT_FAILURE("permanent_failure"); - - private final String value; - - SkillInvocationStatusStateField(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - public static class SkillInvocationStatusStateFieldDeserializer - extends JsonDeserializer> { - - public SkillInvocationStatusStateFieldDeserializer() { - super(); - } - - @Override - public EnumWrapper deserialize( - JsonParser p, DeserializationContext ctxt) throws IOException { - String value = p.getValueAsString(); - return Arrays.stream(SkillInvocationStatusStateField.values()) - .filter((v) -> v.getValue().equalsIgnoreCase(value)) - .findFirst() - .map(EnumWrapper::new) - .orElse(new EnumWrapper(value)); - } - } - - public static class SkillInvocationStatusStateFieldSerializer - extends JsonSerializer> { - - public SkillInvocationStatusStateFieldSerializer() { - super(); - } - - @Override - public void serialize( - EnumWrapper value, - JsonGenerator gen, - SerializerProvider serializers) - throws IOException { - gen.writeString(value.getStringValue()); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenField.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenField.java deleted file mode 100644 index 237be0148..000000000 --- a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenField.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.box.sdkgen.schemas.skillinvocation; - -import com.box.sdkgen.internal.NullableFieldTracker; -import com.box.sdkgen.internal.SerializableObject; -import com.fasterxml.jackson.annotation.JsonFilter; -import java.util.Objects; - -@JsonFilter("nullablePropertyFilter") -public class SkillInvocationTokenField extends SerializableObject { - - protected SkillInvocationTokenReadField read; - - protected SkillInvocationTokenWriteField write; - - public SkillInvocationTokenField() { - super(); - } - - protected SkillInvocationTokenField(Builder builder) { - super(); - this.read = builder.read; - this.write = builder.write; - markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); - } - - public SkillInvocationTokenReadField getRead() { - return read; - } - - public SkillInvocationTokenWriteField getWrite() { - return write; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - SkillInvocationTokenField casted = (SkillInvocationTokenField) o; - return Objects.equals(read, casted.read) && Objects.equals(write, casted.write); - } - - @Override - public int hashCode() { - return Objects.hash(read, write); - } - - @Override - public String toString() { - return "SkillInvocationTokenField{" - + "read='" - + read - + '\'' - + ", " - + "write='" - + write - + '\'' - + "}"; - } - - public static class Builder extends NullableFieldTracker { - - protected SkillInvocationTokenReadField read; - - protected SkillInvocationTokenWriteField write; - - public Builder read(SkillInvocationTokenReadField read) { - this.read = read; - return this; - } - - public Builder write(SkillInvocationTokenWriteField write) { - this.write = write; - return this; - } - - public SkillInvocationTokenField build() { - return new SkillInvocationTokenField(this); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenReadField.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenReadField.java deleted file mode 100644 index c41b763a2..000000000 --- a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenReadField.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.box.sdkgen.schemas.skillinvocation; - -import com.box.sdkgen.internal.NullableFieldTracker; -import com.box.sdkgen.internal.SerializableObject; -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.fasterxml.jackson.annotation.JsonFilter; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Objects; - -@JsonFilter("nullablePropertyFilter") -public class SkillInvocationTokenReadField extends SerializableObject { - - @JsonProperty("access_token") - protected String accessToken; - - @JsonProperty("expires_in") - protected Long expiresIn; - - @JsonDeserialize( - using = - SkillInvocationTokenReadTokenTypeField.SkillInvocationTokenReadTokenTypeFieldDeserializer - .class) - @JsonSerialize( - using = - SkillInvocationTokenReadTokenTypeField.SkillInvocationTokenReadTokenTypeFieldSerializer - .class) - @JsonProperty("token_type") - protected EnumWrapper tokenType; - - @JsonProperty("restricted_to") - protected String restrictedTo; - - public SkillInvocationTokenReadField() { - super(); - } - - protected SkillInvocationTokenReadField(Builder builder) { - super(); - this.accessToken = builder.accessToken; - this.expiresIn = builder.expiresIn; - this.tokenType = builder.tokenType; - this.restrictedTo = builder.restrictedTo; - markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); - } - - public String getAccessToken() { - return accessToken; - } - - public Long getExpiresIn() { - return expiresIn; - } - - public EnumWrapper getTokenType() { - return tokenType; - } - - public String getRestrictedTo() { - return restrictedTo; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - SkillInvocationTokenReadField casted = (SkillInvocationTokenReadField) o; - return Objects.equals(accessToken, casted.accessToken) - && Objects.equals(expiresIn, casted.expiresIn) - && Objects.equals(tokenType, casted.tokenType) - && Objects.equals(restrictedTo, casted.restrictedTo); - } - - @Override - public int hashCode() { - return Objects.hash(accessToken, expiresIn, tokenType, restrictedTo); - } - - @Override - public String toString() { - return "SkillInvocationTokenReadField{" - + "accessToken='" - + accessToken - + '\'' - + ", " - + "expiresIn='" - + expiresIn - + '\'' - + ", " - + "tokenType='" - + tokenType - + '\'' - + ", " - + "restrictedTo='" - + restrictedTo - + '\'' - + "}"; - } - - public static class Builder extends NullableFieldTracker { - - protected String accessToken; - - protected Long expiresIn; - - protected EnumWrapper tokenType; - - protected String restrictedTo; - - public Builder accessToken(String accessToken) { - this.accessToken = accessToken; - return this; - } - - public Builder expiresIn(Long expiresIn) { - this.expiresIn = expiresIn; - return this; - } - - public Builder tokenType(SkillInvocationTokenReadTokenTypeField tokenType) { - this.tokenType = new EnumWrapper(tokenType); - return this; - } - - public Builder tokenType(EnumWrapper tokenType) { - this.tokenType = tokenType; - return this; - } - - public Builder restrictedTo(String restrictedTo) { - this.restrictedTo = restrictedTo; - return this; - } - - public SkillInvocationTokenReadField build() { - return new SkillInvocationTokenReadField(this); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenReadTokenTypeField.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenReadTokenTypeField.java deleted file mode 100644 index 2a96c401d..000000000 --- a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenReadTokenTypeField.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.box.sdkgen.schemas.skillinvocation; - -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.box.sdkgen.serialization.json.Valuable; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; -import java.io.IOException; -import java.util.Arrays; - -public enum SkillInvocationTokenReadTokenTypeField implements Valuable { - BEARER("bearer"); - - private final String value; - - SkillInvocationTokenReadTokenTypeField(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - public static class SkillInvocationTokenReadTokenTypeFieldDeserializer - extends JsonDeserializer> { - - public SkillInvocationTokenReadTokenTypeFieldDeserializer() { - super(); - } - - @Override - public EnumWrapper deserialize( - JsonParser p, DeserializationContext ctxt) throws IOException { - String value = p.getValueAsString(); - return Arrays.stream(SkillInvocationTokenReadTokenTypeField.values()) - .filter((v) -> v.getValue().equalsIgnoreCase(value)) - .findFirst() - .map(EnumWrapper::new) - .orElse(new EnumWrapper(value)); - } - } - - public static class SkillInvocationTokenReadTokenTypeFieldSerializer - extends JsonSerializer> { - - public SkillInvocationTokenReadTokenTypeFieldSerializer() { - super(); - } - - @Override - public void serialize( - EnumWrapper value, - JsonGenerator gen, - SerializerProvider serializers) - throws IOException { - gen.writeString(value.getStringValue()); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenWriteField.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenWriteField.java deleted file mode 100644 index a8c02725f..000000000 --- a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenWriteField.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.box.sdkgen.schemas.skillinvocation; - -import com.box.sdkgen.internal.NullableFieldTracker; -import com.box.sdkgen.internal.SerializableObject; -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.fasterxml.jackson.annotation.JsonFilter; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Objects; - -@JsonFilter("nullablePropertyFilter") -public class SkillInvocationTokenWriteField extends SerializableObject { - - @JsonProperty("access_token") - protected String accessToken; - - @JsonProperty("expires_in") - protected Long expiresIn; - - @JsonDeserialize( - using = - SkillInvocationTokenWriteTokenTypeField - .SkillInvocationTokenWriteTokenTypeFieldDeserializer.class) - @JsonSerialize( - using = - SkillInvocationTokenWriteTokenTypeField.SkillInvocationTokenWriteTokenTypeFieldSerializer - .class) - @JsonProperty("token_type") - protected EnumWrapper tokenType; - - @JsonProperty("restricted_to") - protected String restrictedTo; - - public SkillInvocationTokenWriteField() { - super(); - } - - protected SkillInvocationTokenWriteField(Builder builder) { - super(); - this.accessToken = builder.accessToken; - this.expiresIn = builder.expiresIn; - this.tokenType = builder.tokenType; - this.restrictedTo = builder.restrictedTo; - markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); - } - - public String getAccessToken() { - return accessToken; - } - - public Long getExpiresIn() { - return expiresIn; - } - - public EnumWrapper getTokenType() { - return tokenType; - } - - public String getRestrictedTo() { - return restrictedTo; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - SkillInvocationTokenWriteField casted = (SkillInvocationTokenWriteField) o; - return Objects.equals(accessToken, casted.accessToken) - && Objects.equals(expiresIn, casted.expiresIn) - && Objects.equals(tokenType, casted.tokenType) - && Objects.equals(restrictedTo, casted.restrictedTo); - } - - @Override - public int hashCode() { - return Objects.hash(accessToken, expiresIn, tokenType, restrictedTo); - } - - @Override - public String toString() { - return "SkillInvocationTokenWriteField{" - + "accessToken='" - + accessToken - + '\'' - + ", " - + "expiresIn='" - + expiresIn - + '\'' - + ", " - + "tokenType='" - + tokenType - + '\'' - + ", " - + "restrictedTo='" - + restrictedTo - + '\'' - + "}"; - } - - public static class Builder extends NullableFieldTracker { - - protected String accessToken; - - protected Long expiresIn; - - protected EnumWrapper tokenType; - - protected String restrictedTo; - - public Builder accessToken(String accessToken) { - this.accessToken = accessToken; - return this; - } - - public Builder expiresIn(Long expiresIn) { - this.expiresIn = expiresIn; - return this; - } - - public Builder tokenType(SkillInvocationTokenWriteTokenTypeField tokenType) { - this.tokenType = new EnumWrapper(tokenType); - return this; - } - - public Builder tokenType(EnumWrapper tokenType) { - this.tokenType = tokenType; - return this; - } - - public Builder restrictedTo(String restrictedTo) { - this.restrictedTo = restrictedTo; - return this; - } - - public SkillInvocationTokenWriteField build() { - return new SkillInvocationTokenWriteField(this); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenWriteTokenTypeField.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenWriteTokenTypeField.java deleted file mode 100644 index f6aa0d0dc..000000000 --- a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTokenWriteTokenTypeField.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.box.sdkgen.schemas.skillinvocation; - -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.box.sdkgen.serialization.json.Valuable; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; -import java.io.IOException; -import java.util.Arrays; - -public enum SkillInvocationTokenWriteTokenTypeField implements Valuable { - BEARER("bearer"); - - private final String value; - - SkillInvocationTokenWriteTokenTypeField(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - public static class SkillInvocationTokenWriteTokenTypeFieldDeserializer - extends JsonDeserializer> { - - public SkillInvocationTokenWriteTokenTypeFieldDeserializer() { - super(); - } - - @Override - public EnumWrapper deserialize( - JsonParser p, DeserializationContext ctxt) throws IOException { - String value = p.getValueAsString(); - return Arrays.stream(SkillInvocationTokenWriteTokenTypeField.values()) - .filter((v) -> v.getValue().equalsIgnoreCase(value)) - .findFirst() - .map(EnumWrapper::new) - .orElse(new EnumWrapper(value)); - } - } - - public static class SkillInvocationTokenWriteTokenTypeFieldSerializer - extends JsonSerializer> { - - public SkillInvocationTokenWriteTokenTypeFieldSerializer() { - super(); - } - - @Override - public void serialize( - EnumWrapper value, - JsonGenerator gen, - SerializerProvider serializers) - throws IOException { - gen.writeString(value.getStringValue()); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTypeField.java b/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTypeField.java deleted file mode 100644 index cd038b446..000000000 --- a/src/main/java/com/box/sdkgen/schemas/skillinvocation/SkillInvocationTypeField.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.box.sdkgen.schemas.skillinvocation; - -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.box.sdkgen.serialization.json.Valuable; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; -import java.io.IOException; -import java.util.Arrays; - -public enum SkillInvocationTypeField implements Valuable { - SKILL_INVOCATION("skill_invocation"); - - private final String value; - - SkillInvocationTypeField(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - public static class SkillInvocationTypeFieldDeserializer - extends JsonDeserializer> { - - public SkillInvocationTypeFieldDeserializer() { - super(); - } - - @Override - public EnumWrapper deserialize( - JsonParser p, DeserializationContext ctxt) throws IOException { - String value = p.getValueAsString(); - return Arrays.stream(SkillInvocationTypeField.values()) - .filter((v) -> v.getValue().equalsIgnoreCase(value)) - .findFirst() - .map(EnumWrapper::new) - .orElse(new EnumWrapper(value)); - } - } - - public static class SkillInvocationTypeFieldSerializer - extends JsonSerializer> { - - public SkillInvocationTypeFieldSerializer() { - super(); - } - - @Override - public void serialize( - EnumWrapper value, - JsonGenerator gen, - SerializerProvider serializers) - throws IOException { - gen.writeString(value.getStringValue()); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubactionv2025r0/HubActionV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubactionv2025r0/HubActionV2025R0.java deleted file mode 100644 index ec5657659..000000000 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubactionv2025r0/HubActionV2025R0.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.box.sdkgen.schemas.v2025r0.hubactionv2025r0; - -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.box.sdkgen.serialization.json.Valuable; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; -import java.io.IOException; -import java.util.Arrays; - -public enum HubActionV2025R0 implements Valuable { - ADD("add"), - REMOVE("remove"); - - private final String value; - - HubActionV2025R0(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - public static class HubActionV2025R0Deserializer - extends JsonDeserializer> { - - public HubActionV2025R0Deserializer() { - super(); - } - - @Override - public EnumWrapper deserialize(JsonParser p, DeserializationContext ctxt) - throws IOException { - String value = p.getValueAsString(); - return Arrays.stream(HubActionV2025R0.values()) - .filter((v) -> v.getValue().equalsIgnoreCase(value)) - .findFirst() - .map(EnumWrapper::new) - .orElse(new EnumWrapper(value)); - } - } - - public static class HubActionV2025R0Serializer - extends JsonSerializer> { - - public HubActionV2025R0Serializer() { - super(); - } - - @Override - public void serialize( - EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) - throws IOException { - gen.writeString(value.getStringValue()); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/webhookinvocation/WebhookInvocation.java b/src/main/java/com/box/sdkgen/schemas/webhookinvocation/WebhookInvocation.java deleted file mode 100644 index 4ebb105fb..000000000 --- a/src/main/java/com/box/sdkgen/schemas/webhookinvocation/WebhookInvocation.java +++ /dev/null @@ -1,221 +0,0 @@ -package com.box.sdkgen.schemas.webhookinvocation; - -import com.box.sdkgen.internal.NullableFieldTracker; -import com.box.sdkgen.internal.SerializableObject; -import com.box.sdkgen.internal.utils.DateTimeUtils; -import com.box.sdkgen.schemas.file.File; -import com.box.sdkgen.schemas.fileorfolder.FileOrFolder; -import com.box.sdkgen.schemas.folder.Folder; -import com.box.sdkgen.schemas.usermini.UserMini; -import com.box.sdkgen.schemas.webhook.Webhook; -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.fasterxml.jackson.annotation.JsonFilter; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; -import java.util.Objects; - -@JsonFilter("nullablePropertyFilter") -public class WebhookInvocation extends SerializableObject { - - protected String id; - - @JsonDeserialize(using = WebhookInvocationTypeField.WebhookInvocationTypeFieldDeserializer.class) - @JsonSerialize(using = WebhookInvocationTypeField.WebhookInvocationTypeFieldSerializer.class) - protected EnumWrapper type; - - protected Webhook webhook; - - @JsonProperty("created_by") - protected UserMini createdBy; - - @JsonProperty("created_at") - @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) - @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; - - @JsonDeserialize( - using = WebhookInvocationTriggerField.WebhookInvocationTriggerFieldDeserializer.class) - @JsonSerialize( - using = WebhookInvocationTriggerField.WebhookInvocationTriggerFieldSerializer.class) - protected EnumWrapper trigger; - - protected FileOrFolder source; - - public WebhookInvocation() { - super(); - } - - protected WebhookInvocation(Builder builder) { - super(); - this.id = builder.id; - this.type = builder.type; - this.webhook = builder.webhook; - this.createdBy = builder.createdBy; - this.createdAt = builder.createdAt; - this.trigger = builder.trigger; - this.source = builder.source; - markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); - } - - public String getId() { - return id; - } - - public EnumWrapper getType() { - return type; - } - - public Webhook getWebhook() { - return webhook; - } - - public UserMini getCreatedBy() { - return createdBy; - } - - public Date getCreatedAt() { - return createdAt; - } - - public EnumWrapper getTrigger() { - return trigger; - } - - public FileOrFolder getSource() { - return source; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WebhookInvocation casted = (WebhookInvocation) o; - return Objects.equals(id, casted.id) - && Objects.equals(type, casted.type) - && Objects.equals(webhook, casted.webhook) - && Objects.equals(createdBy, casted.createdBy) - && Objects.equals(createdAt, casted.createdAt) - && Objects.equals(trigger, casted.trigger) - && Objects.equals(source, casted.source); - } - - @Override - public int hashCode() { - return Objects.hash(id, type, webhook, createdBy, createdAt, trigger, source); - } - - @Override - public String toString() { - return "WebhookInvocation{" - + "id='" - + id - + '\'' - + ", " - + "type='" - + type - + '\'' - + ", " - + "webhook='" - + webhook - + '\'' - + ", " - + "createdBy='" - + createdBy - + '\'' - + ", " - + "createdAt='" - + createdAt - + '\'' - + ", " - + "trigger='" - + trigger - + '\'' - + ", " - + "source='" - + source - + '\'' - + "}"; - } - - public static class Builder extends NullableFieldTracker { - - protected String id; - - protected EnumWrapper type; - - protected Webhook webhook; - - protected UserMini createdBy; - - protected Date createdAt; - - protected EnumWrapper trigger; - - protected FileOrFolder source; - - public Builder id(String id) { - this.id = id; - return this; - } - - public Builder type(WebhookInvocationTypeField type) { - this.type = new EnumWrapper(type); - return this; - } - - public Builder type(EnumWrapper type) { - this.type = type; - return this; - } - - public Builder webhook(Webhook webhook) { - this.webhook = webhook; - return this; - } - - public Builder createdBy(UserMini createdBy) { - this.createdBy = createdBy; - return this; - } - - public Builder createdAt(Date createdAt) { - this.createdAt = createdAt; - return this; - } - - public Builder trigger(WebhookInvocationTriggerField trigger) { - this.trigger = new EnumWrapper(trigger); - return this; - } - - public Builder trigger(EnumWrapper trigger) { - this.trigger = trigger; - return this; - } - - public Builder source(File source) { - this.source = new FileOrFolder(source); - return this; - } - - public Builder source(Folder source) { - this.source = new FileOrFolder(source); - return this; - } - - public Builder source(FileOrFolder source) { - this.source = source; - return this; - } - - public WebhookInvocation build() { - return new WebhookInvocation(this); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/webhookinvocation/WebhookInvocationTriggerField.java b/src/main/java/com/box/sdkgen/schemas/webhookinvocation/WebhookInvocationTriggerField.java deleted file mode 100644 index dd299d6c2..000000000 --- a/src/main/java/com/box/sdkgen/schemas/webhookinvocation/WebhookInvocationTriggerField.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.box.sdkgen.schemas.webhookinvocation; - -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.box.sdkgen.serialization.json.Valuable; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; -import java.io.IOException; -import java.util.Arrays; - -public enum WebhookInvocationTriggerField implements Valuable { - FILE_UPLOADED("FILE.UPLOADED"), - FILE_PREVIEWED("FILE.PREVIEWED"), - FILE_DOWNLOADED("FILE.DOWNLOADED"), - FILE_TRASHED("FILE.TRASHED"), - FILE_DELETED("FILE.DELETED"), - FILE_RESTORED("FILE.RESTORED"), - FILE_COPIED("FILE.COPIED"), - FILE_MOVED("FILE.MOVED"), - FILE_LOCKED("FILE.LOCKED"), - FILE_UNLOCKED("FILE.UNLOCKED"), - FILE_RENAMED("FILE.RENAMED"), - COMMENT_CREATED("COMMENT.CREATED"), - COMMENT_UPDATED("COMMENT.UPDATED"), - COMMENT_DELETED("COMMENT.DELETED"), - TASK_ASSIGNMENT_CREATED("TASK_ASSIGNMENT.CREATED"), - TASK_ASSIGNMENT_UPDATED("TASK_ASSIGNMENT.UPDATED"), - METADATA_INSTANCE_CREATED("METADATA_INSTANCE.CREATED"), - METADATA_INSTANCE_UPDATED("METADATA_INSTANCE.UPDATED"), - METADATA_INSTANCE_DELETED("METADATA_INSTANCE.DELETED"), - FOLDER_CREATED("FOLDER.CREATED"), - FOLDER_RENAMED("FOLDER.RENAMED"), - FOLDER_DOWNLOADED("FOLDER.DOWNLOADED"), - FOLDER_RESTORED("FOLDER.RESTORED"), - FOLDER_DELETED("FOLDER.DELETED"), - FOLDER_COPIED("FOLDER.COPIED"), - FOLDER_MOVED("FOLDER.MOVED"), - FOLDER_TRASHED("FOLDER.TRASHED"), - WEBHOOK_DELETED("WEBHOOK.DELETED"), - COLLABORATION_CREATED("COLLABORATION.CREATED"), - COLLABORATION_ACCEPTED("COLLABORATION.ACCEPTED"), - COLLABORATION_REJECTED("COLLABORATION.REJECTED"), - COLLABORATION_REMOVED("COLLABORATION.REMOVED"), - COLLABORATION_UPDATED("COLLABORATION.UPDATED"), - SHARED_LINK_DELETED("SHARED_LINK.DELETED"), - SHARED_LINK_CREATED("SHARED_LINK.CREATED"), - SHARED_LINK_UPDATED("SHARED_LINK.UPDATED"), - SIGN_REQUEST_COMPLETED("SIGN_REQUEST.COMPLETED"), - SIGN_REQUEST_DECLINED("SIGN_REQUEST.DECLINED"), - SIGN_REQUEST_EXPIRED("SIGN_REQUEST.EXPIRED"), - SIGN_REQUEST_SIGNER_EMAIL_BOUNCED("SIGN_REQUEST.SIGNER_EMAIL_BOUNCED"); - - private final String value; - - WebhookInvocationTriggerField(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - public static class WebhookInvocationTriggerFieldDeserializer - extends JsonDeserializer> { - - public WebhookInvocationTriggerFieldDeserializer() { - super(); - } - - @Override - public EnumWrapper deserialize( - JsonParser p, DeserializationContext ctxt) throws IOException { - String value = p.getValueAsString(); - return Arrays.stream(WebhookInvocationTriggerField.values()) - .filter((v) -> v.getValue().equalsIgnoreCase(value)) - .findFirst() - .map(EnumWrapper::new) - .orElse(new EnumWrapper(value)); - } - } - - public static class WebhookInvocationTriggerFieldSerializer - extends JsonSerializer> { - - public WebhookInvocationTriggerFieldSerializer() { - super(); - } - - @Override - public void serialize( - EnumWrapper value, - JsonGenerator gen, - SerializerProvider serializers) - throws IOException { - gen.writeString(value.getStringValue()); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/webhookinvocation/WebhookInvocationTypeField.java b/src/main/java/com/box/sdkgen/schemas/webhookinvocation/WebhookInvocationTypeField.java deleted file mode 100644 index 29b06376b..000000000 --- a/src/main/java/com/box/sdkgen/schemas/webhookinvocation/WebhookInvocationTypeField.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.box.sdkgen.schemas.webhookinvocation; - -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.box.sdkgen.serialization.json.Valuable; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; -import java.io.IOException; -import java.util.Arrays; - -public enum WebhookInvocationTypeField implements Valuable { - WEBHOOK_EVENT("webhook_event"); - - private final String value; - - WebhookInvocationTypeField(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - public static class WebhookInvocationTypeFieldDeserializer - extends JsonDeserializer> { - - public WebhookInvocationTypeFieldDeserializer() { - super(); - } - - @Override - public EnumWrapper deserialize( - JsonParser p, DeserializationContext ctxt) throws IOException { - String value = p.getValueAsString(); - return Arrays.stream(WebhookInvocationTypeField.values()) - .filter((v) -> v.getValue().equalsIgnoreCase(value)) - .findFirst() - .map(EnumWrapper::new) - .orElse(new EnumWrapper(value)); - } - } - - public static class WebhookInvocationTypeFieldSerializer - extends JsonSerializer> { - - public WebhookInvocationTypeFieldSerializer() { - super(); - } - - @Override - public void serialize( - EnumWrapper value, - JsonGenerator gen, - SerializerProvider serializers) - throws IOException { - gen.writeString(value.getStringValue()); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/workflowfull/WorkflowFull.java b/src/main/java/com/box/sdkgen/schemas/workflowfull/WorkflowFull.java deleted file mode 100644 index c3b845ac4..000000000 --- a/src/main/java/com/box/sdkgen/schemas/workflowfull/WorkflowFull.java +++ /dev/null @@ -1,222 +0,0 @@ -package com.box.sdkgen.schemas.workflowfull; - -import com.box.sdkgen.internal.utils.DateTimeUtils; -import com.box.sdkgen.schemas.userbase.UserBase; -import com.box.sdkgen.schemas.workflow.Workflow; -import com.box.sdkgen.schemas.workflow.WorkflowFlowsField; -import com.box.sdkgen.schemas.workflowmini.WorkflowMiniTypeField; -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.fasterxml.jackson.annotation.JsonFilter; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; -import java.util.List; -import java.util.Objects; - -@JsonFilter("nullablePropertyFilter") -public class WorkflowFull extends Workflow { - - @JsonProperty("created_at") - @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) - @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; - - @JsonProperty("modified_at") - @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) - @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date modifiedAt; - - @JsonProperty("created_by") - protected UserBase createdBy; - - @JsonProperty("modified_by") - protected UserBase modifiedBy; - - public WorkflowFull() { - super(); - } - - protected WorkflowFull(Builder builder) { - super(builder); - this.createdAt = builder.createdAt; - this.modifiedAt = builder.modifiedAt; - this.createdBy = builder.createdBy; - this.modifiedBy = builder.modifiedBy; - markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); - } - - public Date getCreatedAt() { - return createdAt; - } - - public Date getModifiedAt() { - return modifiedAt; - } - - public UserBase getCreatedBy() { - return createdBy; - } - - public UserBase getModifiedBy() { - return modifiedBy; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - WorkflowFull casted = (WorkflowFull) o; - return Objects.equals(id, casted.id) - && Objects.equals(type, casted.type) - && Objects.equals(name, casted.name) - && Objects.equals(description, casted.description) - && Objects.equals(isEnabled, casted.isEnabled) - && Objects.equals(flows, casted.flows) - && Objects.equals(createdAt, casted.createdAt) - && Objects.equals(modifiedAt, casted.modifiedAt) - && Objects.equals(createdBy, casted.createdBy) - && Objects.equals(modifiedBy, casted.modifiedBy); - } - - @Override - public int hashCode() { - return Objects.hash( - id, - type, - name, - description, - isEnabled, - flows, - createdAt, - modifiedAt, - createdBy, - modifiedBy); - } - - @Override - public String toString() { - return "WorkflowFull{" - + "id='" - + id - + '\'' - + ", " - + "type='" - + type - + '\'' - + ", " - + "name='" - + name - + '\'' - + ", " - + "description='" - + description - + '\'' - + ", " - + "isEnabled='" - + isEnabled - + '\'' - + ", " - + "flows='" - + flows - + '\'' - + ", " - + "createdAt='" - + createdAt - + '\'' - + ", " - + "modifiedAt='" - + modifiedAt - + '\'' - + ", " - + "createdBy='" - + createdBy - + '\'' - + ", " - + "modifiedBy='" - + modifiedBy - + '\'' - + "}"; - } - - public static class Builder extends Workflow.Builder { - - protected Date createdAt; - - protected Date modifiedAt; - - protected UserBase createdBy; - - protected UserBase modifiedBy; - - public Builder createdAt(Date createdAt) { - this.createdAt = createdAt; - return this; - } - - public Builder modifiedAt(Date modifiedAt) { - this.modifiedAt = modifiedAt; - return this; - } - - public Builder createdBy(UserBase createdBy) { - this.createdBy = createdBy; - return this; - } - - public Builder modifiedBy(UserBase modifiedBy) { - this.modifiedBy = modifiedBy; - return this; - } - - @Override - public Builder id(String id) { - this.id = id; - return this; - } - - @Override - public Builder type(WorkflowMiniTypeField type) { - this.type = new EnumWrapper(type); - return this; - } - - @Override - public Builder type(EnumWrapper type) { - this.type = type; - return this; - } - - @Override - public Builder name(String name) { - this.name = name; - return this; - } - - @Override - public Builder description(String description) { - this.description = description; - return this; - } - - @Override - public Builder isEnabled(Boolean isEnabled) { - this.isEnabled = isEnabled; - return this; - } - - @Override - public Builder flows(List flows) { - this.flows = flows; - return this; - } - - public WorkflowFull build() { - return new WorkflowFull(this); - } - } -} diff --git a/src/test/java/com/box/sdkgen/test/docgen/DocgenITest.java b/src/test/java/com/box/sdkgen/test/docgen/DocgenITest.java index bc0b96787..dd05c2df5 100644 --- a/src/test/java/com/box/sdkgen/test/docgen/DocgenITest.java +++ b/src/test/java/com/box/sdkgen/test/docgen/DocgenITest.java @@ -71,7 +71,7 @@ public void testDocgenBatchAndJobs() { client .getDocgen() .getDocgenJobsV2025R0( - new GetDocgenJobsV2025R0QueryParams.Builder().limit(500L).build()); + new GetDocgenJobsV2025R0QueryParams.Builder().limit(10000L).build()); assert docgenJobs.getEntries().size() >= 1; assert !(docgenJobs.getEntries().get(0).getBatch().getId().equals("")); assert !(docgenJobs.getEntries().get(0).getCreatedBy().getId().equals("")); @@ -87,7 +87,7 @@ assert convertToString(docgenJobs.getEntries().get(0).getTemplateFileVersion().g .equals("file_version"); assert !(docgenJobs.getEntries().get(0).getTemplateFileVersion().getId().equals("")); assert convertToString(docgenJobs.getEntries().get(0).getType()).equals("docgen_job"); - int indexOfItem = 0; + int indexOfItem = docgenJobs.getEntries().size() - 1; DocGenJobFullV2025R0 docgenJobItemFromList = docgenJobs.getEntries().get(indexOfItem); DocGenJobV2025R0 docgenJob = client.getDocgen().getDocgenJobByIdV2025R0(docgenJobItemFromList.getId()); From 4bc9bfe340c911ce29ded9e78b59a3241fcb9ad0 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Thu, 14 Aug 2025 11:37:12 +0200 Subject: [PATCH 005/148] docs: fix `readme`(box/box-codegen#782) (box/box-codegen#785) (#1357) --- .codegen.json | 2 +- README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index 20b0a328d..f4ba7d87a 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "be39be6", "specHash": "24fbeb9", "version": "0.1.0" } +{ "engineHash": "1d94996", "specHash": "24fbeb9", "version": "0.1.0" } diff --git a/README.md b/README.md index 1413a3a07..11a8f1524 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ # Box Java SDK [![Project Status](http://opensource.box.com/badges/active.svg)](http://opensource.box.com/badges) -![build](https://github.com/box/box-java-sdk/actions/workflows/build.yml/badge.svg) +![build](https://github.com/box/box-java-sdk/actions/workflows/build.yml/badge.svg?branch=sdk-gen) ![Maven Central Version](https://img.shields.io/maven-central/v/com.box/box-java-sdk) ![Platform](https://img.shields.io/badge/java-%3E%3D8-blue) [![Coverage](https://coveralls.io/repos/github/box/box-java-sdk/badge.svg?branch=sdk-gen)](https://coveralls.io/github/box/box-java-sdk-gen?branch=sdk-gen) @@ -90,7 +90,7 @@ Browse the [docs](docs/README.md) or see [API Reference](https://developer.box.c # Upgrades -The SDK is updated regularly to include new features, enhancements, and bug fixes. If you are upgrading from manual SDK to this new generated SDKm checkout the [migration guide](MIGRATION_GUIDE.md) and [changelog](CHANGELOG.md) for more information. +The SDK is updated regularly to include new features, enhancements, and bug fixes. If you are upgrading from manual SDK to this new generated SDK checkout the [migration guide](MIGRATION_GUIDE.md) and [changelog](CHANGELOG.md) for more information. # Integration Tests From b08fbcac77d3eec6224e45789f0a3029048309ef Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Thu, 14 Aug 2025 13:11:25 +0200 Subject: [PATCH 006/148] chore: Update .codegen.json with commit hash of codegen and openapi spec (#1358) --- .codegen.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index f4ba7d87a..6a7ff390b 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "1d94996", "specHash": "24fbeb9", "version": "0.1.0" } +{ "engineHash": "1c54d3c", "specHash": "24fbeb9", "version": "0.1.0" } From 114e7785031e19fb58933f231e656a991b5effb7 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Thu, 14 Aug 2025 15:24:16 +0200 Subject: [PATCH 007/148] feat!: Change names of unions (box/box-codegen#787) (#1359) --- .codegen.json | 2 +- docs/ai.md | 2 +- docs/files.md | 2 +- docs/fileversions.md | 2 +- docs/search.md | 2 +- .../com/box/sdkgen/managers/ai/AiManager.java | 14 +- .../sdkgen/managers/search/SearchManager.java | 15 +- .../CreateBoxSkillCardsOnFileRequestBody.java | 12 +- ...llCardsOnFileRequestBodyMetadataField.java | 12 +- .../UpdateBoxSkillCardsOnFileRequestBody.java | 29 +-- .../schemas/accesstoken/AccessToken.java | 10 +- .../box/sdkgen/schemas/aiagent/AiAgent.java | 107 +++++++++ ...gentExtractStructuredOrAiAgentTextGen.java | 123 ---------- .../com/box/sdkgen/schemas/aiask/AiAsk.java | 18 +- .../AiAskAgent.java} | 45 ++-- .../sdkgen/schemas/aiextract/AiExtract.java | 18 +- .../AiExtractAgent.java} | 44 ++-- .../AiExtractStructured.java | 18 +- .../AiExtractStructuredAgent.java} | 52 ++--- .../sdkgen/schemas/aitextgen/AiTextGen.java | 14 +- .../AiTextGenAgent.java} | 26 +-- .../AppItemAssociatedItem.java} | 32 ++- .../AppItemAssociation.java | 24 +- ...ceOrFileOrFolderOrGenericSourceOrUser.java | 152 ------------ .../schemas/collaboration/Collaboration.java | 34 +-- .../CollaborationAccessGrantee.java} | 50 ++-- .../CollaborationItem.java} | 26 +-- .../com/box/sdkgen/schemas/event/Event.java | 27 ++- .../EventSourceResource.java | 136 +++++++++++ .../FileFullExpiringEmbedLinkField.java | 10 +- .../IntegrationMapping.java | 23 +- ...tegrationMappingPartnerItemSlackUnion.java | 88 ------- ...tegrationMappingPartnerItemTeamsUnion.java | 84 ------- .../IntegrationMappingTeams.java | 23 +- .../Item.java} | 30 ++- .../com/box/sdkgen/schemas/items/Items.java | 10 +- .../ItemsOffsetPaginated.java | 10 +- .../LegalHoldPolicyAssignedItem.java | 221 ++++++++++++++++++ .../LegalHoldPolicyAssignment.java | 16 +- ...tRangeOrArrayOfStringOrNumberOrString.java | 138 ----------- .../metadatafilter/MetadataFilter.java | 23 +- .../MetadataFilterValue.java | 118 ++++++++++ .../MetadataQueryResultItem.java} | 23 +- .../MetadataQueryResults.java | 10 +- .../sdkgen/schemas/recentitem/RecentItem.java | 16 +- .../RecentItemResource.java | 220 +++++++++++++++++ .../Resource.java} | 51 ++-- .../ResourceScope.java} | 59 ++--- .../ResourceScopeScopeField.java} | 26 +-- .../searchresultitem/SearchResultItem.java | 220 +++++++++++++++++ .../schemas/searchresults/SearchResults.java | 10 +- .../SearchResultsResponse.java} | 32 +-- .../SearchResultWithSharedLink.java | 16 +- .../SearchResultWithSharedLinkItem.java} | 29 +-- .../SkillCard.java} | 79 +++---- .../SkillCardsMetadata.java | 12 +- ...derReferenceOrWeblinkReferenceV2025R0.java | 112 --------- .../HubItemOperationV2025R0.java | 23 +- .../java/com/box/sdkgen/test/ai/AiITest.java | 14 +- .../box/sdkgen/test/search/SearchITest.java | 56 ++--- .../box/sdkgen/test/skills/SkillsITest.java | 7 +- 61 files changed, 1520 insertions(+), 1337 deletions(-) create mode 100644 src/main/java/com/box/sdkgen/schemas/aiagent/AiAgent.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/aiagentaskoraiagentextractoraiagentextractstructuredoraiagenttextgen/AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen.java rename src/main/java/com/box/sdkgen/schemas/{aiagentaskoraiagentreference/AiAgentAskOrAiAgentReference.java => aiaskagent/AiAskAgent.java} (61%) rename src/main/java/com/box/sdkgen/schemas/{aiagentextractoraiagentreference/AiAgentExtractOrAiAgentReference.java => aiextractagent/AiExtractAgent.java} (61%) rename src/main/java/com/box/sdkgen/schemas/{aiagentextractstructuredoraiagentreference/AiAgentExtractStructuredOrAiAgentReference.java => aiextractstructuredagent/AiExtractStructuredAgent.java} (59%) rename src/main/java/com/box/sdkgen/schemas/{aiagentreferenceoraiagenttextgen/AiAgentReferenceOrAiAgentTextGen.java => aitextgenagent/AiTextGenAgent.java} (63%) rename src/main/java/com/box/sdkgen/schemas/{filebaseorfolderbaseorweblinkbase/FileBaseOrFolderBaseOrWebLinkBase.java => appitemassociateditem/AppItemAssociatedItem.java} (66%) delete mode 100644 src/main/java/com/box/sdkgen/schemas/appitemeventsourceoreventsourceorfileorfolderorgenericsourceoruser/AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser.java rename src/main/java/com/box/sdkgen/schemas/{groupminiorusercollaborations/GroupMiniOrUserCollaborations.java => collaborationaccessgrantee/CollaborationAccessGrantee.java} (68%) rename src/main/java/com/box/sdkgen/schemas/{fileorfolderorweblink/FileOrFolderOrWebLink.java => collaborationitem/CollaborationItem.java} (85%) create mode 100644 src/main/java/com/box/sdkgen/schemas/eventsourceresource/EventSourceResource.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslackunion/IntegrationMappingPartnerItemSlackUnion.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteamsunion/IntegrationMappingPartnerItemTeamsUnion.java rename src/main/java/com/box/sdkgen/schemas/{filefullorfolderminiorweblink/FileFullOrFolderMiniOrWebLink.java => item/Item.java} (71%) create mode 100644 src/main/java/com/box/sdkgen/schemas/legalholdpolicyassigneditem/LegalHoldPolicyAssignedItem.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/metadatafieldfilterdaterangeormetadatafieldfilterfloatrangeorarrayofstringornumberorstring/MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatafiltervalue/MetadataFilterValue.java rename src/main/java/com/box/sdkgen/schemas/{filefullorfolderfull/FileFullOrFolderFull.java => metadataqueryresultitem/MetadataQueryResultItem.java} (89%) create mode 100644 src/main/java/com/box/sdkgen/schemas/recentitemresource/RecentItemResource.java rename src/main/java/com/box/sdkgen/schemas/{fileminiorfoldermini/FileMiniOrFolderMini.java => resource/Resource.java} (72%) rename src/main/java/com/box/sdkgen/schemas/{fileorfolderscope/FileOrFolderScope.java => resourcescope/ResourceScope.java} (50%) rename src/main/java/com/box/sdkgen/schemas/{fileorfolderscope/FileOrFolderScopeScopeField.java => resourcescope/ResourceScopeScopeField.java} (66%) create mode 100644 src/main/java/com/box/sdkgen/schemas/searchresultitem/SearchResultItem.java rename src/main/java/com/box/sdkgen/schemas/{searchresultsorsearchresultswithsharedlinks/SearchResultsOrSearchResultsWithSharedLinks.java => searchresultsresponse/SearchResultsResponse.java} (66%) rename src/main/java/com/box/sdkgen/schemas/{filefullorfolderfullorweblink/FileFullOrFolderFullOrWebLink.java => searchresultwithsharedlinkitem/SearchResultWithSharedLinkItem.java} (84%) rename src/main/java/com/box/sdkgen/schemas/{keywordskillcardorstatusskillcardortimelineskillcardortranscriptskillcard/KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard.java => skillcard/SkillCard.java} (55%) delete mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/filereferenceorfolderreferenceorweblinkreferencev2025r0/FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0.java diff --git a/.codegen.json b/.codegen.json index 6a7ff390b..981a1f4b5 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "1c54d3c", "specHash": "24fbeb9", "version": "0.1.0" } +{ "engineHash": "51be103", "specHash": "99e14a6", "version": "0.1.0" } diff --git a/docs/ai.md b/docs/ai.md index a94a25020..d5914a56f 100644 --- a/docs/ai.md +++ b/docs/ai.md @@ -89,7 +89,7 @@ client.getAi().getAiAgentDefaultConfig(new GetAiAgentDefaultConfigQueryParams.Bu ### Returns -This function returns a value of type `AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen`. +This function returns a value of type `AiAgent`. A successful response including the default agent configuration. This response can be one of the following four objects: diff --git a/docs/files.md b/docs/files.md index 6dcc88133..bcb48a240 100644 --- a/docs/files.md +++ b/docs/files.md @@ -86,7 +86,7 @@ any specific fields. Deletes a file, either permanently or by moving it to the trash. -The the enterprise settings determine whether the item will +The enterprise settings determine whether the item will be permanently deleted from Box or moved to the trash. This operation is performed by calling function `deleteFileById`. diff --git a/docs/fileversions.md b/docs/fileversions.md index 1dfd99324..3f9153904 100644 --- a/docs/fileversions.md +++ b/docs/fileversions.md @@ -159,7 +159,7 @@ promote one of the older versions to the top of the version history. This creates a new copy of the old version and puts it at the top of the versions history. The file will have the exact same contents -as the older version, with the the same hash digest, `etag`, and +as the older version, with the same hash digest, `etag`, and name as the original. Other properties such as comments do not get updated to their diff --git a/docs/search.md b/docs/search.md index 59d51b4ea..be7116fff 100644 --- a/docs/search.md +++ b/docs/search.md @@ -63,7 +63,7 @@ client.getSearch().searchForContent(new SearchForContentQueryParams.Builder().an ### Returns -This function returns a value of type `SearchResultsOrSearchResultsWithSharedLinks`. +This function returns a value of type `SearchResultsResponse`. Returns a collection of search results. If there are no matching search results, the `entries` array will be empty. diff --git a/src/main/java/com/box/sdkgen/managers/ai/AiManager.java b/src/main/java/com/box/sdkgen/managers/ai/AiManager.java index c2e0a1015..7cf2e7066 100644 --- a/src/main/java/com/box/sdkgen/managers/ai/AiManager.java +++ b/src/main/java/com/box/sdkgen/managers/ai/AiManager.java @@ -11,7 +11,7 @@ import com.box.sdkgen.networking.fetchoptions.ResponseFormat; import com.box.sdkgen.networking.fetchresponse.FetchResponse; import com.box.sdkgen.networking.network.NetworkSession; -import com.box.sdkgen.schemas.aiagentaskoraiagentextractoraiagentextractstructuredoraiagenttextgen.AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen; +import com.box.sdkgen.schemas.aiagent.AiAgent; import com.box.sdkgen.schemas.aiask.AiAsk; import com.box.sdkgen.schemas.aiextract.AiExtract; import com.box.sdkgen.schemas.aiextractstructured.AiExtractStructured; @@ -88,14 +88,12 @@ public AiResponse createAiTextGen(AiTextGen requestBody, CreateAiTextGenHeaders return JsonManager.deserialize(response.getData(), AiResponse.class); } - public AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen - getAiAgentDefaultConfig(GetAiAgentDefaultConfigQueryParams queryParams) { + public AiAgent getAiAgentDefaultConfig(GetAiAgentDefaultConfigQueryParams queryParams) { return getAiAgentDefaultConfig(queryParams, new GetAiAgentDefaultConfigHeaders()); } - public AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen - getAiAgentDefaultConfig( - GetAiAgentDefaultConfigQueryParams queryParams, GetAiAgentDefaultConfigHeaders headers) { + public AiAgent getAiAgentDefaultConfig( + GetAiAgentDefaultConfigQueryParams queryParams, GetAiAgentDefaultConfigHeaders headers) { Map queryParamsMap = prepareParams( mapOf( @@ -119,9 +117,7 @@ public AiResponse createAiTextGen(AiTextGen requestBody, CreateAiTextGenHeaders .auth(this.auth) .networkSession(this.networkSession) .build()); - return JsonManager.deserialize( - response.getData(), - AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen.class); + return JsonManager.deserialize(response.getData(), AiAgent.class); } public AiResponse createAiExtract(AiExtract requestBody) { diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchManager.java b/src/main/java/com/box/sdkgen/managers/search/SearchManager.java index e2ed10e44..08187f23a 100644 --- a/src/main/java/com/box/sdkgen/managers/search/SearchManager.java +++ b/src/main/java/com/box/sdkgen/managers/search/SearchManager.java @@ -13,7 +13,7 @@ import com.box.sdkgen.networking.network.NetworkSession; import com.box.sdkgen.schemas.metadataquery.MetadataQuery; import com.box.sdkgen.schemas.metadataqueryresults.MetadataQueryResults; -import com.box.sdkgen.schemas.searchresultsorsearchresultswithsharedlinks.SearchResultsOrSearchResultsWithSharedLinks; +import com.box.sdkgen.schemas.searchresultsresponse.SearchResultsResponse; import com.box.sdkgen.serialization.json.JsonManager; import java.util.Map; @@ -59,21 +59,19 @@ public MetadataQueryResults searchByMetadataQuery( return JsonManager.deserialize(response.getData(), MetadataQueryResults.class); } - public SearchResultsOrSearchResultsWithSharedLinks searchForContent() { + public SearchResultsResponse searchForContent() { return searchForContent(new SearchForContentQueryParams(), new SearchForContentHeaders()); } - public SearchResultsOrSearchResultsWithSharedLinks searchForContent( - SearchForContentQueryParams queryParams) { + public SearchResultsResponse searchForContent(SearchForContentQueryParams queryParams) { return searchForContent(queryParams, new SearchForContentHeaders()); } - public SearchResultsOrSearchResultsWithSharedLinks searchForContent( - SearchForContentHeaders headers) { + public SearchResultsResponse searchForContent(SearchForContentHeaders headers) { return searchForContent(new SearchForContentQueryParams(), headers); } - public SearchResultsOrSearchResultsWithSharedLinks searchForContent( + public SearchResultsResponse searchForContent( SearchForContentQueryParams queryParams, SearchForContentHeaders headers) { Map queryParamsMap = prepareParams( @@ -118,8 +116,7 @@ public SearchResultsOrSearchResultsWithSharedLinks searchForContent( .auth(this.auth) .networkSession(this.networkSession) .build()); - return JsonManager.deserialize( - response.getData(), SearchResultsOrSearchResultsWithSharedLinks.class); + return JsonManager.deserialize(response.getData(), SearchResultsResponse.class); } public Authentication getAuth() { diff --git a/src/main/java/com/box/sdkgen/managers/skills/CreateBoxSkillCardsOnFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/skills/CreateBoxSkillCardsOnFileRequestBody.java index 04bd28563..5e2152fb1 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/CreateBoxSkillCardsOnFileRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/skills/CreateBoxSkillCardsOnFileRequestBody.java @@ -1,7 +1,7 @@ package com.box.sdkgen.managers.skills; import com.box.sdkgen.internal.SerializableObject; -import com.box.sdkgen.schemas.keywordskillcardorstatusskillcardortimelineskillcardortranscriptskillcard.KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard; +import com.box.sdkgen.schemas.skillcard.SkillCard; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; import java.util.List; @@ -10,18 +10,14 @@ @JsonFilter("nullablePropertyFilter") public class CreateBoxSkillCardsOnFileRequestBody extends SerializableObject { - protected final List - cards; + protected final List cards; - public CreateBoxSkillCardsOnFileRequestBody( - @JsonProperty("cards") - List cards) { + public CreateBoxSkillCardsOnFileRequestBody(@JsonProperty("cards") List cards) { super(); this.cards = cards; } - public List - getCards() { + public List getCards() { return cards; } diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyMetadataField.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyMetadataField.java index f38843f7b..7f6d906b2 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyMetadataField.java +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyMetadataField.java @@ -2,7 +2,7 @@ import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; -import com.box.sdkgen.schemas.keywordskillcardorstatusskillcardortimelineskillcardortranscriptskillcard.KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard; +import com.box.sdkgen.schemas.skillcard.SkillCard; import com.fasterxml.jackson.annotation.JsonFilter; import java.util.List; import java.util.Objects; @@ -10,7 +10,7 @@ @JsonFilter("nullablePropertyFilter") public class UpdateAllSkillCardsOnFileRequestBodyMetadataField extends SerializableObject { - protected List cards; + protected List cards; public UpdateAllSkillCardsOnFileRequestBodyMetadataField() { super(); @@ -22,8 +22,7 @@ protected UpdateAllSkillCardsOnFileRequestBodyMetadataField(Builder builder) { markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } - public List - getCards() { + public List getCards() { return cards; } @@ -52,10 +51,9 @@ public String toString() { public static class Builder extends NullableFieldTracker { - protected List cards; + protected List cards; - public Builder cards( - List cards) { + public Builder cards(List cards) { this.cards = cards; return this; } diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileRequestBody.java index 7c26ac7dd..9d6a1c3ba 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileRequestBody.java @@ -3,7 +3,7 @@ import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; import com.box.sdkgen.schemas.keywordskillcard.KeywordSkillCard; -import com.box.sdkgen.schemas.keywordskillcardorstatusskillcardortimelineskillcardortranscriptskillcard.KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard; +import com.box.sdkgen.schemas.skillcard.SkillCard; import com.box.sdkgen.schemas.statusskillcard.StatusSkillCard; import com.box.sdkgen.schemas.timelineskillcard.TimelineSkillCard; import com.box.sdkgen.schemas.transcriptskillcard.TranscriptSkillCard; @@ -28,7 +28,7 @@ public class UpdateBoxSkillCardsOnFileRequestBody extends SerializableObject { protected String path; - protected KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard value; + protected SkillCard value; public UpdateBoxSkillCardsOnFileRequestBody() { super(); @@ -50,7 +50,7 @@ public String getPath() { return path; } - public KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard getValue() { + public SkillCard getValue() { return value; } @@ -96,7 +96,7 @@ public static class Builder extends NullableFieldTracker { protected String path; - protected KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard value; + protected SkillCard value; public Builder op(UpdateBoxSkillCardsOnFileRequestBodyOpField op) { this.op = new EnumWrapper(op); @@ -114,31 +114,26 @@ public Builder path(String path) { } public Builder value(KeywordSkillCard value) { - this.value = - new KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard(value); + this.value = new SkillCard(value); return this; } - public Builder value(StatusSkillCard value) { - this.value = - new KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard(value); + public Builder value(TimelineSkillCard value) { + this.value = new SkillCard(value); return this; } - public Builder value(TimelineSkillCard value) { - this.value = - new KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard(value); + public Builder value(TranscriptSkillCard value) { + this.value = new SkillCard(value); return this; } - public Builder value(TranscriptSkillCard value) { - this.value = - new KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard(value); + public Builder value(StatusSkillCard value) { + this.value = new SkillCard(value); return this; } - public Builder value( - KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard value) { + public Builder value(SkillCard value) { this.value = value; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/accesstoken/AccessToken.java b/src/main/java/com/box/sdkgen/schemas/accesstoken/AccessToken.java index 2de8e26ff..1c402ccce 100644 --- a/src/main/java/com/box/sdkgen/schemas/accesstoken/AccessToken.java +++ b/src/main/java/com/box/sdkgen/schemas/accesstoken/AccessToken.java @@ -2,7 +2,7 @@ import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; -import com.box.sdkgen.schemas.fileorfolderscope.FileOrFolderScope; +import com.box.sdkgen.schemas.resourcescope.ResourceScope; import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; @@ -26,7 +26,7 @@ public class AccessToken extends SerializableObject { protected EnumWrapper tokenType; @JsonProperty("restricted_to") - protected List restrictedTo; + protected List restrictedTo; @JsonProperty("refresh_token") protected String refreshToken; @@ -65,7 +65,7 @@ public EnumWrapper getTokenType() { return tokenType; } - public List getRestrictedTo() { + public List getRestrictedTo() { return restrictedTo; } @@ -137,7 +137,7 @@ public static class Builder extends NullableFieldTracker { protected EnumWrapper tokenType; - protected List restrictedTo; + protected List restrictedTo; protected String refreshToken; @@ -163,7 +163,7 @@ public Builder tokenType(EnumWrapper tokenType) { return this; } - public Builder restrictedTo(List restrictedTo) { + public Builder restrictedTo(List restrictedTo) { this.restrictedTo = restrictedTo; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/aiagent/AiAgent.java b/src/main/java/com/box/sdkgen/schemas/aiagent/AiAgent.java new file mode 100644 index 000000000..c6afb9813 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiagent/AiAgent.java @@ -0,0 +1,107 @@ +package com.box.sdkgen.schemas.aiagent; + +import com.box.sdkgen.internal.OneOfFour; +import com.box.sdkgen.schemas.aiagentask.AiAgentAsk; +import com.box.sdkgen.schemas.aiagentextract.AiAgentExtract; +import com.box.sdkgen.schemas.aiagentextractstructured.AiAgentExtractStructured; +import com.box.sdkgen.schemas.aiagenttextgen.AiAgentTextGen; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize(using = AiAgent.AiAgentDeserializer.class) +@JsonSerialize(using = OneOfFour.OneOfFourSerializer.class) +public class AiAgent + extends OneOfFour { + + protected final String type; + + public AiAgent(AiAgentAsk aiAgentAsk) { + super(aiAgentAsk, null, null, null); + this.type = EnumWrapper.convertToString(aiAgentAsk.getType()); + } + + public AiAgent(AiAgentTextGen aiAgentTextGen) { + super(null, aiAgentTextGen, null, null); + this.type = EnumWrapper.convertToString(aiAgentTextGen.getType()); + } + + public AiAgent(AiAgentExtract aiAgentExtract) { + super(null, null, aiAgentExtract, null); + this.type = EnumWrapper.convertToString(aiAgentExtract.getType()); + } + + public AiAgent(AiAgentExtractStructured aiAgentExtractStructured) { + super(null, null, null, aiAgentExtractStructured); + this.type = EnumWrapper.convertToString(aiAgentExtractStructured.getType()); + } + + public boolean isAiAgentAsk() { + return value0 != null; + } + + public AiAgentAsk getAiAgentAsk() { + return value0; + } + + public boolean isAiAgentTextGen() { + return value1 != null; + } + + public AiAgentTextGen getAiAgentTextGen() { + return value1; + } + + public boolean isAiAgentExtract() { + return value2 != null; + } + + public AiAgentExtract getAiAgentExtract() { + return value2; + } + + public boolean isAiAgentExtractStructured() { + return value3 != null; + } + + public AiAgentExtractStructured getAiAgentExtractStructured() { + return value3; + } + + public String getType() { + return type; + } + + static class AiAgentDeserializer extends JsonDeserializer { + + public AiAgentDeserializer() { + super(); + } + + @Override + public AiAgent deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "ai_agent_ask": + return new AiAgent(JsonManager.deserialize(node, AiAgentAsk.class)); + case "ai_agent_text_gen": + return new AiAgent(JsonManager.deserialize(node, AiAgentTextGen.class)); + case "ai_agent_extract": + return new AiAgent(JsonManager.deserialize(node, AiAgentExtract.class)); + case "ai_agent_extract_structured": + return new AiAgent(JsonManager.deserialize(node, AiAgentExtractStructured.class)); + } + } + throw new JsonMappingException(jp, "Unable to deserialize AiAgent"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentaskoraiagentextractoraiagentextractstructuredoraiagenttextgen/AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen.java b/src/main/java/com/box/sdkgen/schemas/aiagentaskoraiagentextractoraiagentextractstructuredoraiagenttextgen/AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen.java deleted file mode 100644 index 97ddaf059..000000000 --- a/src/main/java/com/box/sdkgen/schemas/aiagentaskoraiagentextractoraiagentextractstructuredoraiagenttextgen/AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen.java +++ /dev/null @@ -1,123 +0,0 @@ -package com.box.sdkgen.schemas.aiagentaskoraiagentextractoraiagentextractstructuredoraiagenttextgen; - -import com.box.sdkgen.internal.OneOfFour; -import com.box.sdkgen.schemas.aiagentask.AiAgentAsk; -import com.box.sdkgen.schemas.aiagentextract.AiAgentExtract; -import com.box.sdkgen.schemas.aiagentextractstructured.AiAgentExtractStructured; -import com.box.sdkgen.schemas.aiagenttextgen.AiAgentTextGen; -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.box.sdkgen.serialization.json.JsonManager; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.io.IOException; - -@JsonDeserialize( - using = - AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen - .AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGenDeserializer.class) -@JsonSerialize(using = OneOfFour.OneOfFourSerializer.class) -public class AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen - extends OneOfFour { - - protected final String type; - - public AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen( - AiAgentAsk aiAgentAsk) { - super(aiAgentAsk, null, null, null); - this.type = EnumWrapper.convertToString(aiAgentAsk.getType()); - } - - public AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen( - AiAgentExtract aiAgentExtract) { - super(null, aiAgentExtract, null, null); - this.type = EnumWrapper.convertToString(aiAgentExtract.getType()); - } - - public AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen( - AiAgentExtractStructured aiAgentExtractStructured) { - super(null, null, aiAgentExtractStructured, null); - this.type = EnumWrapper.convertToString(aiAgentExtractStructured.getType()); - } - - public AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen( - AiAgentTextGen aiAgentTextGen) { - super(null, null, null, aiAgentTextGen); - this.type = EnumWrapper.convertToString(aiAgentTextGen.getType()); - } - - public boolean isAiAgentAsk() { - return value0 != null; - } - - public AiAgentAsk getAiAgentAsk() { - return value0; - } - - public boolean isAiAgentExtract() { - return value1 != null; - } - - public AiAgentExtract getAiAgentExtract() { - return value1; - } - - public boolean isAiAgentExtractStructured() { - return value2 != null; - } - - public AiAgentExtractStructured getAiAgentExtractStructured() { - return value2; - } - - public boolean isAiAgentTextGen() { - return value3 != null; - } - - public AiAgentTextGen getAiAgentTextGen() { - return value3; - } - - public String getType() { - return type; - } - - static class AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGenDeserializer - extends JsonDeserializer< - AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen> { - - public AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGenDeserializer() { - super(); - } - - @Override - public AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen deserialize( - JsonParser jp, DeserializationContext ctxt) throws IOException { - JsonNode node = JsonManager.jsonToSerializedData(jp); - JsonNode discriminant0 = node.get("type"); - if (!(discriminant0 == null)) { - switch (discriminant0.asText()) { - case "ai_agent_ask": - return new AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen( - JsonManager.deserialize(node, AiAgentAsk.class)); - case "ai_agent_extract": - return new AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen( - JsonManager.deserialize(node, AiAgentExtract.class)); - case "ai_agent_extract_structured": - return new AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen( - JsonManager.deserialize(node, AiAgentExtractStructured.class)); - case "ai_agent_text_gen": - return new AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen( - JsonManager.deserialize(node, AiAgentTextGen.class)); - } - } - throw new JsonMappingException( - jp, - "Unable to deserialize AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen"); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/aiask/AiAsk.java b/src/main/java/com/box/sdkgen/schemas/aiask/AiAsk.java index 79a756d18..b7869b780 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiask/AiAsk.java +++ b/src/main/java/com/box/sdkgen/schemas/aiask/AiAsk.java @@ -3,8 +3,8 @@ import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; import com.box.sdkgen.schemas.aiagentask.AiAgentAsk; -import com.box.sdkgen.schemas.aiagentaskoraiagentreference.AiAgentAskOrAiAgentReference; import com.box.sdkgen.schemas.aiagentreference.AiAgentReference; +import com.box.sdkgen.schemas.aiaskagent.AiAskAgent; import com.box.sdkgen.schemas.aidialoguehistory.AiDialogueHistory; import com.box.sdkgen.schemas.aiitemask.AiItemAsk; import com.box.sdkgen.serialization.json.EnumWrapper; @@ -33,7 +33,7 @@ public class AiAsk extends SerializableObject { protected Boolean includeCitations; @JsonProperty("ai_agent") - protected AiAgentAskOrAiAgentReference aiAgent; + protected AiAskAgent aiAgent; public AiAsk(AiAskModeField mode, String prompt, List items) { super(); @@ -83,7 +83,7 @@ public Boolean getIncludeCitations() { return includeCitations; } - public AiAgentAskOrAiAgentReference getAiAgent() { + public AiAskAgent getAiAgent() { return aiAgent; } @@ -150,7 +150,7 @@ public static class Builder extends NullableFieldTracker { protected Boolean includeCitations; - protected AiAgentAskOrAiAgentReference aiAgent; + protected AiAskAgent aiAgent; public Builder(AiAskModeField mode, String prompt, List items) { super(); @@ -176,17 +176,17 @@ public Builder includeCitations(Boolean includeCitations) { return this; } - public Builder aiAgent(AiAgentAsk aiAgent) { - this.aiAgent = new AiAgentAskOrAiAgentReference(aiAgent); + public Builder aiAgent(AiAgentReference aiAgent) { + this.aiAgent = new AiAskAgent(aiAgent); return this; } - public Builder aiAgent(AiAgentReference aiAgent) { - this.aiAgent = new AiAgentAskOrAiAgentReference(aiAgent); + public Builder aiAgent(AiAgentAsk aiAgent) { + this.aiAgent = new AiAskAgent(aiAgent); return this; } - public Builder aiAgent(AiAgentAskOrAiAgentReference aiAgent) { + public Builder aiAgent(AiAskAgent aiAgent) { this.aiAgent = aiAgent; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentaskoraiagentreference/AiAgentAskOrAiAgentReference.java b/src/main/java/com/box/sdkgen/schemas/aiaskagent/AiAskAgent.java similarity index 61% rename from src/main/java/com/box/sdkgen/schemas/aiagentaskoraiagentreference/AiAgentAskOrAiAgentReference.java rename to src/main/java/com/box/sdkgen/schemas/aiaskagent/AiAskAgent.java index 8588c3cf6..250059ee3 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentaskoraiagentreference/AiAgentAskOrAiAgentReference.java +++ b/src/main/java/com/box/sdkgen/schemas/aiaskagent/AiAskAgent.java @@ -1,4 +1,4 @@ -package com.box.sdkgen.schemas.aiagentaskoraiagentreference; +package com.box.sdkgen.schemas.aiaskagent; import com.box.sdkgen.internal.OneOfTwo; import com.box.sdkgen.schemas.aiagentask.AiAgentAsk; @@ -14,36 +14,35 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.IOException; -@JsonDeserialize( - using = AiAgentAskOrAiAgentReference.AiAgentAskOrAiAgentReferenceDeserializer.class) +@JsonDeserialize(using = AiAskAgent.AiAskAgentDeserializer.class) @JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) -public class AiAgentAskOrAiAgentReference extends OneOfTwo { +public class AiAskAgent extends OneOfTwo { protected final String type; - public AiAgentAskOrAiAgentReference(AiAgentAsk aiAgentAsk) { - super(aiAgentAsk, null); - this.type = EnumWrapper.convertToString(aiAgentAsk.getType()); + public AiAskAgent(AiAgentReference aiAgentReference) { + super(aiAgentReference, null); + this.type = EnumWrapper.convertToString(aiAgentReference.getType()); } - public AiAgentAskOrAiAgentReference(AiAgentReference aiAgentReference) { - super(null, aiAgentReference); - this.type = EnumWrapper.convertToString(aiAgentReference.getType()); + public AiAskAgent(AiAgentAsk aiAgentAsk) { + super(null, aiAgentAsk); + this.type = EnumWrapper.convertToString(aiAgentAsk.getType()); } - public boolean isAiAgentAsk() { + public boolean isAiAgentReference() { return value0 != null; } - public AiAgentAsk getAiAgentAsk() { + public AiAgentReference getAiAgentReference() { return value0; } - public boolean isAiAgentReference() { + public boolean isAiAgentAsk() { return value1 != null; } - public AiAgentReference getAiAgentReference() { + public AiAgentAsk getAiAgentAsk() { return value1; } @@ -51,29 +50,25 @@ public String getType() { return type; } - static class AiAgentAskOrAiAgentReferenceDeserializer - extends JsonDeserializer { + static class AiAskAgentDeserializer extends JsonDeserializer { - public AiAgentAskOrAiAgentReferenceDeserializer() { + public AiAskAgentDeserializer() { super(); } @Override - public AiAgentAskOrAiAgentReference deserialize(JsonParser jp, DeserializationContext ctxt) - throws IOException { + public AiAskAgent deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { JsonNode node = JsonManager.jsonToSerializedData(jp); JsonNode discriminant0 = node.get("type"); if (!(discriminant0 == null)) { switch (discriminant0.asText()) { - case "ai_agent_ask": - return new AiAgentAskOrAiAgentReference( - JsonManager.deserialize(node, AiAgentAsk.class)); case "ai_agent_id": - return new AiAgentAskOrAiAgentReference( - JsonManager.deserialize(node, AiAgentReference.class)); + return new AiAskAgent(JsonManager.deserialize(node, AiAgentReference.class)); + case "ai_agent_ask": + return new AiAskAgent(JsonManager.deserialize(node, AiAgentAsk.class)); } } - throw new JsonMappingException(jp, "Unable to deserialize AiAgentAskOrAiAgentReference"); + throw new JsonMappingException(jp, "Unable to deserialize AiAskAgent"); } } } diff --git a/src/main/java/com/box/sdkgen/schemas/aiextract/AiExtract.java b/src/main/java/com/box/sdkgen/schemas/aiextract/AiExtract.java index 94e77dd50..1a0a7e1a4 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextract/AiExtract.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextract/AiExtract.java @@ -3,8 +3,8 @@ import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; import com.box.sdkgen.schemas.aiagentextract.AiAgentExtract; -import com.box.sdkgen.schemas.aiagentextractoraiagentreference.AiAgentExtractOrAiAgentReference; import com.box.sdkgen.schemas.aiagentreference.AiAgentReference; +import com.box.sdkgen.schemas.aiextractagent.AiExtractAgent; import com.box.sdkgen.schemas.aiitembase.AiItemBase; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; @@ -19,7 +19,7 @@ public class AiExtract extends SerializableObject { protected final List items; @JsonProperty("ai_agent") - protected AiAgentExtractOrAiAgentReference aiAgent; + protected AiExtractAgent aiAgent; public AiExtract( @JsonProperty("prompt") String prompt, @JsonProperty("items") List items) { @@ -44,7 +44,7 @@ public List getItems() { return items; } - public AiAgentExtractOrAiAgentReference getAiAgent() { + public AiExtractAgent getAiAgent() { return aiAgent; } @@ -90,7 +90,7 @@ public static class Builder extends NullableFieldTracker { protected final List items; - protected AiAgentExtractOrAiAgentReference aiAgent; + protected AiExtractAgent aiAgent; public Builder(String prompt, List items) { super(); @@ -98,17 +98,17 @@ public Builder(String prompt, List items) { this.items = items; } - public Builder aiAgent(AiAgentExtract aiAgent) { - this.aiAgent = new AiAgentExtractOrAiAgentReference(aiAgent); + public Builder aiAgent(AiAgentReference aiAgent) { + this.aiAgent = new AiExtractAgent(aiAgent); return this; } - public Builder aiAgent(AiAgentReference aiAgent) { - this.aiAgent = new AiAgentExtractOrAiAgentReference(aiAgent); + public Builder aiAgent(AiAgentExtract aiAgent) { + this.aiAgent = new AiExtractAgent(aiAgent); return this; } - public Builder aiAgent(AiAgentExtractOrAiAgentReference aiAgent) { + public Builder aiAgent(AiExtractAgent aiAgent) { this.aiAgent = aiAgent; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentextractoraiagentreference/AiAgentExtractOrAiAgentReference.java b/src/main/java/com/box/sdkgen/schemas/aiextractagent/AiExtractAgent.java similarity index 61% rename from src/main/java/com/box/sdkgen/schemas/aiagentextractoraiagentreference/AiAgentExtractOrAiAgentReference.java rename to src/main/java/com/box/sdkgen/schemas/aiextractagent/AiExtractAgent.java index 0b1ba2115..d0e8fea1f 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentextractoraiagentreference/AiAgentExtractOrAiAgentReference.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractagent/AiExtractAgent.java @@ -1,4 +1,4 @@ -package com.box.sdkgen.schemas.aiagentextractoraiagentreference; +package com.box.sdkgen.schemas.aiextractagent; import com.box.sdkgen.internal.OneOfTwo; import com.box.sdkgen.schemas.aiagentextract.AiAgentExtract; @@ -14,36 +14,35 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.IOException; -@JsonDeserialize( - using = AiAgentExtractOrAiAgentReference.AiAgentExtractOrAiAgentReferenceDeserializer.class) +@JsonDeserialize(using = AiExtractAgent.AiExtractAgentDeserializer.class) @JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) -public class AiAgentExtractOrAiAgentReference extends OneOfTwo { +public class AiExtractAgent extends OneOfTwo { protected final String type; - public AiAgentExtractOrAiAgentReference(AiAgentExtract aiAgentExtract) { - super(aiAgentExtract, null); - this.type = EnumWrapper.convertToString(aiAgentExtract.getType()); + public AiExtractAgent(AiAgentReference aiAgentReference) { + super(aiAgentReference, null); + this.type = EnumWrapper.convertToString(aiAgentReference.getType()); } - public AiAgentExtractOrAiAgentReference(AiAgentReference aiAgentReference) { - super(null, aiAgentReference); - this.type = EnumWrapper.convertToString(aiAgentReference.getType()); + public AiExtractAgent(AiAgentExtract aiAgentExtract) { + super(null, aiAgentExtract); + this.type = EnumWrapper.convertToString(aiAgentExtract.getType()); } - public boolean isAiAgentExtract() { + public boolean isAiAgentReference() { return value0 != null; } - public AiAgentExtract getAiAgentExtract() { + public AiAgentReference getAiAgentReference() { return value0; } - public boolean isAiAgentReference() { + public boolean isAiAgentExtract() { return value1 != null; } - public AiAgentReference getAiAgentReference() { + public AiAgentExtract getAiAgentExtract() { return value1; } @@ -51,29 +50,26 @@ public String getType() { return type; } - static class AiAgentExtractOrAiAgentReferenceDeserializer - extends JsonDeserializer { + static class AiExtractAgentDeserializer extends JsonDeserializer { - public AiAgentExtractOrAiAgentReferenceDeserializer() { + public AiExtractAgentDeserializer() { super(); } @Override - public AiAgentExtractOrAiAgentReference deserialize(JsonParser jp, DeserializationContext ctxt) + public AiExtractAgent deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { JsonNode node = JsonManager.jsonToSerializedData(jp); JsonNode discriminant0 = node.get("type"); if (!(discriminant0 == null)) { switch (discriminant0.asText()) { - case "ai_agent_extract": - return new AiAgentExtractOrAiAgentReference( - JsonManager.deserialize(node, AiAgentExtract.class)); case "ai_agent_id": - return new AiAgentExtractOrAiAgentReference( - JsonManager.deserialize(node, AiAgentReference.class)); + return new AiExtractAgent(JsonManager.deserialize(node, AiAgentReference.class)); + case "ai_agent_extract": + return new AiExtractAgent(JsonManager.deserialize(node, AiAgentExtract.class)); } } - throw new JsonMappingException(jp, "Unable to deserialize AiAgentExtractOrAiAgentReference"); + throw new JsonMappingException(jp, "Unable to deserialize AiExtractAgent"); } } } diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java index 02d718127..bdd898076 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java @@ -3,8 +3,8 @@ import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; import com.box.sdkgen.schemas.aiagentextractstructured.AiAgentExtractStructured; -import com.box.sdkgen.schemas.aiagentextractstructuredoraiagentreference.AiAgentExtractStructuredOrAiAgentReference; import com.box.sdkgen.schemas.aiagentreference.AiAgentReference; +import com.box.sdkgen.schemas.aiextractstructuredagent.AiExtractStructuredAgent; import com.box.sdkgen.schemas.aiitembase.AiItemBase; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; @@ -22,7 +22,7 @@ public class AiExtractStructured extends SerializableObject { protected List fields; @JsonProperty("ai_agent") - protected AiAgentExtractStructuredOrAiAgentReference aiAgent; + protected AiExtractStructuredAgent aiAgent; public AiExtractStructured(@JsonProperty("items") List items) { super(); @@ -50,7 +50,7 @@ public List getFields() { return fields; } - public AiAgentExtractStructuredOrAiAgentReference getAiAgent() { + public AiExtractStructuredAgent getAiAgent() { return aiAgent; } @@ -103,7 +103,7 @@ public static class Builder extends NullableFieldTracker { protected List fields; - protected AiAgentExtractStructuredOrAiAgentReference aiAgent; + protected AiExtractStructuredAgent aiAgent; public Builder(List items) { super(); @@ -120,17 +120,17 @@ public Builder fields(List fields) { return this; } - public Builder aiAgent(AiAgentExtractStructured aiAgent) { - this.aiAgent = new AiAgentExtractStructuredOrAiAgentReference(aiAgent); + public Builder aiAgent(AiAgentReference aiAgent) { + this.aiAgent = new AiExtractStructuredAgent(aiAgent); return this; } - public Builder aiAgent(AiAgentReference aiAgent) { - this.aiAgent = new AiAgentExtractStructuredOrAiAgentReference(aiAgent); + public Builder aiAgent(AiAgentExtractStructured aiAgent) { + this.aiAgent = new AiExtractStructuredAgent(aiAgent); return this; } - public Builder aiAgent(AiAgentExtractStructuredOrAiAgentReference aiAgent) { + public Builder aiAgent(AiExtractStructuredAgent aiAgent) { this.aiAgent = aiAgent; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentextractstructuredoraiagentreference/AiAgentExtractStructuredOrAiAgentReference.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructuredagent/AiExtractStructuredAgent.java similarity index 59% rename from src/main/java/com/box/sdkgen/schemas/aiagentextractstructuredoraiagentreference/AiAgentExtractStructuredOrAiAgentReference.java rename to src/main/java/com/box/sdkgen/schemas/aiextractstructuredagent/AiExtractStructuredAgent.java index b91b081f8..983967bee 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentextractstructuredoraiagentreference/AiAgentExtractStructuredOrAiAgentReference.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructuredagent/AiExtractStructuredAgent.java @@ -1,4 +1,4 @@ -package com.box.sdkgen.schemas.aiagentextractstructuredoraiagentreference; +package com.box.sdkgen.schemas.aiextractstructuredagent; import com.box.sdkgen.internal.OneOfTwo; import com.box.sdkgen.schemas.aiagentextractstructured.AiAgentExtractStructured; @@ -14,40 +14,35 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.IOException; -@JsonDeserialize( - using = - AiAgentExtractStructuredOrAiAgentReference - .AiAgentExtractStructuredOrAiAgentReferenceDeserializer.class) +@JsonDeserialize(using = AiExtractStructuredAgent.AiExtractStructuredAgentDeserializer.class) @JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) -public class AiAgentExtractStructuredOrAiAgentReference - extends OneOfTwo { +public class AiExtractStructuredAgent extends OneOfTwo { protected final String type; - public AiAgentExtractStructuredOrAiAgentReference( - AiAgentExtractStructured aiAgentExtractStructured) { - super(aiAgentExtractStructured, null); - this.type = EnumWrapper.convertToString(aiAgentExtractStructured.getType()); + public AiExtractStructuredAgent(AiAgentReference aiAgentReference) { + super(aiAgentReference, null); + this.type = EnumWrapper.convertToString(aiAgentReference.getType()); } - public AiAgentExtractStructuredOrAiAgentReference(AiAgentReference aiAgentReference) { - super(null, aiAgentReference); - this.type = EnumWrapper.convertToString(aiAgentReference.getType()); + public AiExtractStructuredAgent(AiAgentExtractStructured aiAgentExtractStructured) { + super(null, aiAgentExtractStructured); + this.type = EnumWrapper.convertToString(aiAgentExtractStructured.getType()); } - public boolean isAiAgentExtractStructured() { + public boolean isAiAgentReference() { return value0 != null; } - public AiAgentExtractStructured getAiAgentExtractStructured() { + public AiAgentReference getAiAgentReference() { return value0; } - public boolean isAiAgentReference() { + public boolean isAiAgentExtractStructured() { return value1 != null; } - public AiAgentReference getAiAgentReference() { + public AiAgentExtractStructured getAiAgentExtractStructured() { return value1; } @@ -55,30 +50,29 @@ public String getType() { return type; } - static class AiAgentExtractStructuredOrAiAgentReferenceDeserializer - extends JsonDeserializer { + static class AiExtractStructuredAgentDeserializer + extends JsonDeserializer { - public AiAgentExtractStructuredOrAiAgentReferenceDeserializer() { + public AiExtractStructuredAgentDeserializer() { super(); } @Override - public AiAgentExtractStructuredOrAiAgentReference deserialize( - JsonParser jp, DeserializationContext ctxt) throws IOException { + public AiExtractStructuredAgent deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { JsonNode node = JsonManager.jsonToSerializedData(jp); JsonNode discriminant0 = node.get("type"); if (!(discriminant0 == null)) { switch (discriminant0.asText()) { - case "ai_agent_extract_structured": - return new AiAgentExtractStructuredOrAiAgentReference( - JsonManager.deserialize(node, AiAgentExtractStructured.class)); case "ai_agent_id": - return new AiAgentExtractStructuredOrAiAgentReference( + return new AiExtractStructuredAgent( JsonManager.deserialize(node, AiAgentReference.class)); + case "ai_agent_extract_structured": + return new AiExtractStructuredAgent( + JsonManager.deserialize(node, AiAgentExtractStructured.class)); } } - throw new JsonMappingException( - jp, "Unable to deserialize AiAgentExtractStructuredOrAiAgentReference"); + throw new JsonMappingException(jp, "Unable to deserialize AiExtractStructuredAgent"); } } } diff --git a/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGen.java b/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGen.java index 0e54e202e..b919252d0 100644 --- a/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGen.java +++ b/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGen.java @@ -3,9 +3,9 @@ import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; import com.box.sdkgen.schemas.aiagentreference.AiAgentReference; -import com.box.sdkgen.schemas.aiagentreferenceoraiagenttextgen.AiAgentReferenceOrAiAgentTextGen; import com.box.sdkgen.schemas.aiagenttextgen.AiAgentTextGen; import com.box.sdkgen.schemas.aidialoguehistory.AiDialogueHistory; +import com.box.sdkgen.schemas.aitextgenagent.AiTextGenAgent; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; import java.util.List; @@ -22,7 +22,7 @@ public class AiTextGen extends SerializableObject { protected List dialogueHistory; @JsonProperty("ai_agent") - protected AiAgentReferenceOrAiAgentTextGen aiAgent; + protected AiTextGenAgent aiAgent; public AiTextGen( @JsonProperty("prompt") String prompt, @@ -53,7 +53,7 @@ public List getDialogueHistory() { return dialogueHistory; } - public AiAgentReferenceOrAiAgentTextGen getAiAgent() { + public AiTextGenAgent getAiAgent() { return aiAgent; } @@ -106,7 +106,7 @@ public static class Builder extends NullableFieldTracker { protected List dialogueHistory; - protected AiAgentReferenceOrAiAgentTextGen aiAgent; + protected AiTextGenAgent aiAgent; public Builder(String prompt, List items) { super(); @@ -120,16 +120,16 @@ public Builder dialogueHistory(List dialogueHistory) { } public Builder aiAgent(AiAgentReference aiAgent) { - this.aiAgent = new AiAgentReferenceOrAiAgentTextGen(aiAgent); + this.aiAgent = new AiTextGenAgent(aiAgent); return this; } public Builder aiAgent(AiAgentTextGen aiAgent) { - this.aiAgent = new AiAgentReferenceOrAiAgentTextGen(aiAgent); + this.aiAgent = new AiTextGenAgent(aiAgent); return this; } - public Builder aiAgent(AiAgentReferenceOrAiAgentTextGen aiAgent) { + public Builder aiAgent(AiTextGenAgent aiAgent) { this.aiAgent = aiAgent; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentreferenceoraiagenttextgen/AiAgentReferenceOrAiAgentTextGen.java b/src/main/java/com/box/sdkgen/schemas/aitextgenagent/AiTextGenAgent.java similarity index 63% rename from src/main/java/com/box/sdkgen/schemas/aiagentreferenceoraiagenttextgen/AiAgentReferenceOrAiAgentTextGen.java rename to src/main/java/com/box/sdkgen/schemas/aitextgenagent/AiTextGenAgent.java index 21178af35..3cc8a5818 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentreferenceoraiagenttextgen/AiAgentReferenceOrAiAgentTextGen.java +++ b/src/main/java/com/box/sdkgen/schemas/aitextgenagent/AiTextGenAgent.java @@ -1,4 +1,4 @@ -package com.box.sdkgen.schemas.aiagentreferenceoraiagenttextgen; +package com.box.sdkgen.schemas.aitextgenagent; import com.box.sdkgen.internal.OneOfTwo; import com.box.sdkgen.schemas.aiagentreference.AiAgentReference; @@ -14,19 +14,18 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.IOException; -@JsonDeserialize( - using = AiAgentReferenceOrAiAgentTextGen.AiAgentReferenceOrAiAgentTextGenDeserializer.class) +@JsonDeserialize(using = AiTextGenAgent.AiTextGenAgentDeserializer.class) @JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) -public class AiAgentReferenceOrAiAgentTextGen extends OneOfTwo { +public class AiTextGenAgent extends OneOfTwo { protected final String type; - public AiAgentReferenceOrAiAgentTextGen(AiAgentReference aiAgentReference) { + public AiTextGenAgent(AiAgentReference aiAgentReference) { super(aiAgentReference, null); this.type = EnumWrapper.convertToString(aiAgentReference.getType()); } - public AiAgentReferenceOrAiAgentTextGen(AiAgentTextGen aiAgentTextGen) { + public AiTextGenAgent(AiAgentTextGen aiAgentTextGen) { super(null, aiAgentTextGen); this.type = EnumWrapper.convertToString(aiAgentTextGen.getType()); } @@ -51,29 +50,26 @@ public String getType() { return type; } - static class AiAgentReferenceOrAiAgentTextGenDeserializer - extends JsonDeserializer { + static class AiTextGenAgentDeserializer extends JsonDeserializer { - public AiAgentReferenceOrAiAgentTextGenDeserializer() { + public AiTextGenAgentDeserializer() { super(); } @Override - public AiAgentReferenceOrAiAgentTextGen deserialize(JsonParser jp, DeserializationContext ctxt) + public AiTextGenAgent deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { JsonNode node = JsonManager.jsonToSerializedData(jp); JsonNode discriminant0 = node.get("type"); if (!(discriminant0 == null)) { switch (discriminant0.asText()) { case "ai_agent_id": - return new AiAgentReferenceOrAiAgentTextGen( - JsonManager.deserialize(node, AiAgentReference.class)); + return new AiTextGenAgent(JsonManager.deserialize(node, AiAgentReference.class)); case "ai_agent_text_gen": - return new AiAgentReferenceOrAiAgentTextGen( - JsonManager.deserialize(node, AiAgentTextGen.class)); + return new AiTextGenAgent(JsonManager.deserialize(node, AiAgentTextGen.class)); } } - throw new JsonMappingException(jp, "Unable to deserialize AiAgentReferenceOrAiAgentTextGen"); + throw new JsonMappingException(jp, "Unable to deserialize AiTextGenAgent"); } } } diff --git a/src/main/java/com/box/sdkgen/schemas/filebaseorfolderbaseorweblinkbase/FileBaseOrFolderBaseOrWebLinkBase.java b/src/main/java/com/box/sdkgen/schemas/appitemassociateditem/AppItemAssociatedItem.java similarity index 66% rename from src/main/java/com/box/sdkgen/schemas/filebaseorfolderbaseorweblinkbase/FileBaseOrFolderBaseOrWebLinkBase.java rename to src/main/java/com/box/sdkgen/schemas/appitemassociateditem/AppItemAssociatedItem.java index 0f35889e9..517ce889b 100644 --- a/src/main/java/com/box/sdkgen/schemas/filebaseorfolderbaseorweblinkbase/FileBaseOrFolderBaseOrWebLinkBase.java +++ b/src/main/java/com/box/sdkgen/schemas/appitemassociateditem/AppItemAssociatedItem.java @@ -1,4 +1,4 @@ -package com.box.sdkgen.schemas.filebaseorfolderbaseorweblinkbase; +package com.box.sdkgen.schemas.appitemassociateditem; import com.box.sdkgen.internal.OneOfThree; import com.box.sdkgen.schemas.filebase.FileBase; @@ -15,11 +15,9 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.IOException; -@JsonDeserialize( - using = FileBaseOrFolderBaseOrWebLinkBase.FileBaseOrFolderBaseOrWebLinkBaseDeserializer.class) +@JsonDeserialize(using = AppItemAssociatedItem.AppItemAssociatedItemDeserializer.class) @JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) -public class FileBaseOrFolderBaseOrWebLinkBase - extends OneOfThree { +public class AppItemAssociatedItem extends OneOfThree { protected final String id; @@ -27,21 +25,21 @@ public class FileBaseOrFolderBaseOrWebLinkBase protected final String type; - public FileBaseOrFolderBaseOrWebLinkBase(FileBase fileBase) { + public AppItemAssociatedItem(FileBase fileBase) { super(fileBase, null, null); this.id = fileBase.getId(); this.etag = fileBase.getEtag(); this.type = EnumWrapper.convertToString(fileBase.getType()); } - public FileBaseOrFolderBaseOrWebLinkBase(FolderBase folderBase) { + public AppItemAssociatedItem(FolderBase folderBase) { super(null, folderBase, null); this.id = folderBase.getId(); this.etag = folderBase.getEtag(); this.type = EnumWrapper.convertToString(folderBase.getType()); } - public FileBaseOrFolderBaseOrWebLinkBase(WebLinkBase webLinkBase) { + public AppItemAssociatedItem(WebLinkBase webLinkBase) { super(null, null, webLinkBase); this.id = webLinkBase.getId(); this.etag = webLinkBase.getEtag(); @@ -84,32 +82,28 @@ public String getType() { return type; } - static class FileBaseOrFolderBaseOrWebLinkBaseDeserializer - extends JsonDeserializer { + static class AppItemAssociatedItemDeserializer extends JsonDeserializer { - public FileBaseOrFolderBaseOrWebLinkBaseDeserializer() { + public AppItemAssociatedItemDeserializer() { super(); } @Override - public FileBaseOrFolderBaseOrWebLinkBase deserialize(JsonParser jp, DeserializationContext ctxt) + public AppItemAssociatedItem deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { JsonNode node = JsonManager.jsonToSerializedData(jp); JsonNode discriminant0 = node.get("type"); if (!(discriminant0 == null)) { switch (discriminant0.asText()) { case "file": - return new FileBaseOrFolderBaseOrWebLinkBase( - JsonManager.deserialize(node, FileBase.class)); + return new AppItemAssociatedItem(JsonManager.deserialize(node, FileBase.class)); case "folder": - return new FileBaseOrFolderBaseOrWebLinkBase( - JsonManager.deserialize(node, FolderBase.class)); + return new AppItemAssociatedItem(JsonManager.deserialize(node, FolderBase.class)); case "web_link": - return new FileBaseOrFolderBaseOrWebLinkBase( - JsonManager.deserialize(node, WebLinkBase.class)); + return new AppItemAssociatedItem(JsonManager.deserialize(node, WebLinkBase.class)); } } - throw new JsonMappingException(jp, "Unable to deserialize FileBaseOrFolderBaseOrWebLinkBase"); + throw new JsonMappingException(jp, "Unable to deserialize AppItemAssociatedItem"); } } } diff --git a/src/main/java/com/box/sdkgen/schemas/appitemassociation/AppItemAssociation.java b/src/main/java/com/box/sdkgen/schemas/appitemassociation/AppItemAssociation.java index 641e7671f..daa6fd49a 100644 --- a/src/main/java/com/box/sdkgen/schemas/appitemassociation/AppItemAssociation.java +++ b/src/main/java/com/box/sdkgen/schemas/appitemassociation/AppItemAssociation.java @@ -3,8 +3,8 @@ import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; import com.box.sdkgen.schemas.appitem.AppItem; +import com.box.sdkgen.schemas.appitemassociateditem.AppItemAssociatedItem; import com.box.sdkgen.schemas.filebase.FileBase; -import com.box.sdkgen.schemas.filebaseorfolderbaseorweblinkbase.FileBaseOrFolderBaseOrWebLinkBase; import com.box.sdkgen.schemas.folderbase.FolderBase; import com.box.sdkgen.schemas.weblinkbase.WebLinkBase; import com.box.sdkgen.serialization.json.EnumWrapper; @@ -27,13 +27,13 @@ public class AppItemAssociation extends SerializableObject { @JsonProperty("app_item") protected final AppItem appItem; - protected final FileBaseOrFolderBaseOrWebLinkBase item; + protected final AppItemAssociatedItem item; public AppItemAssociation(String id, AppItem appItem, FileBase item) { super(); this.id = id; this.appItem = appItem; - this.item = new FileBaseOrFolderBaseOrWebLinkBase(item); + this.item = new AppItemAssociatedItem(item); this.type = new EnumWrapper( AppItemAssociationTypeField.APP_ITEM_ASSOCIATION); @@ -43,7 +43,7 @@ public AppItemAssociation(String id, AppItem appItem, FolderBase item) { super(); this.id = id; this.appItem = appItem; - this.item = new FileBaseOrFolderBaseOrWebLinkBase(item); + this.item = new AppItemAssociatedItem(item); this.type = new EnumWrapper( AppItemAssociationTypeField.APP_ITEM_ASSOCIATION); @@ -53,7 +53,7 @@ public AppItemAssociation(String id, AppItem appItem, WebLinkBase item) { super(); this.id = id; this.appItem = appItem; - this.item = new FileBaseOrFolderBaseOrWebLinkBase(item); + this.item = new AppItemAssociatedItem(item); this.type = new EnumWrapper( AppItemAssociationTypeField.APP_ITEM_ASSOCIATION); @@ -62,7 +62,7 @@ public AppItemAssociation(String id, AppItem appItem, WebLinkBase item) { public AppItemAssociation( @JsonProperty("id") String id, @JsonProperty("app_item") AppItem appItem, - @JsonProperty("item") FileBaseOrFolderBaseOrWebLinkBase item) { + @JsonProperty("item") AppItemAssociatedItem item) { super(); this.id = id; this.appItem = appItem; @@ -93,7 +93,7 @@ public AppItem getAppItem() { return appItem; } - public FileBaseOrFolderBaseOrWebLinkBase getItem() { + public AppItemAssociatedItem getItem() { return item; } @@ -146,13 +146,13 @@ public static class Builder extends NullableFieldTracker { protected final AppItem appItem; - protected final FileBaseOrFolderBaseOrWebLinkBase item; + protected final AppItemAssociatedItem item; public Builder(String id, AppItem appItem, FileBase item) { super(); this.id = id; this.appItem = appItem; - this.item = new FileBaseOrFolderBaseOrWebLinkBase(item); + this.item = new AppItemAssociatedItem(item); this.type = new EnumWrapper( AppItemAssociationTypeField.APP_ITEM_ASSOCIATION); @@ -162,7 +162,7 @@ public Builder(String id, AppItem appItem, FolderBase item) { super(); this.id = id; this.appItem = appItem; - this.item = new FileBaseOrFolderBaseOrWebLinkBase(item); + this.item = new AppItemAssociatedItem(item); this.type = new EnumWrapper( AppItemAssociationTypeField.APP_ITEM_ASSOCIATION); @@ -172,13 +172,13 @@ public Builder(String id, AppItem appItem, WebLinkBase item) { super(); this.id = id; this.appItem = appItem; - this.item = new FileBaseOrFolderBaseOrWebLinkBase(item); + this.item = new AppItemAssociatedItem(item); this.type = new EnumWrapper( AppItemAssociationTypeField.APP_ITEM_ASSOCIATION); } - public Builder(String id, AppItem appItem, FileBaseOrFolderBaseOrWebLinkBase item) { + public Builder(String id, AppItem appItem, AppItemAssociatedItem item) { super(); this.id = id; this.appItem = appItem; diff --git a/src/main/java/com/box/sdkgen/schemas/appitemeventsourceoreventsourceorfileorfolderorgenericsourceoruser/AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser.java b/src/main/java/com/box/sdkgen/schemas/appitemeventsourceoreventsourceorfileorfolderorgenericsourceoruser/AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser.java deleted file mode 100644 index e8ed55c14..000000000 --- a/src/main/java/com/box/sdkgen/schemas/appitemeventsourceoreventsourceorfileorfolderorgenericsourceoruser/AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser.java +++ /dev/null @@ -1,152 +0,0 @@ -package com.box.sdkgen.schemas.appitemeventsourceoreventsourceorfileorfolderorgenericsourceoruser; - -import com.box.sdkgen.internal.OneOfSix; -import com.box.sdkgen.schemas.appitemeventsource.AppItemEventSource; -import com.box.sdkgen.schemas.eventsource.EventSource; -import com.box.sdkgen.schemas.file.File; -import com.box.sdkgen.schemas.folder.Folder; -import com.box.sdkgen.schemas.user.User; -import com.box.sdkgen.serialization.json.JsonManager; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.io.IOException; -import java.util.Map; - -@JsonDeserialize( - using = - AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser - .AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUserDeserializer.class) -@JsonSerialize(using = OneOfSix.OneOfSixSerializer.class) -public class AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser - extends OneOfSix, User> { - - public AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser( - AppItemEventSource appItemEventSource) { - super(appItemEventSource, null, null, null, null, null); - } - - public AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser( - EventSource eventSource) { - super(null, eventSource, null, null, null, null); - } - - public AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser(File file) { - super(null, null, file, null, null, null); - } - - public AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser(Folder folder) { - super(null, null, null, folder, null, null); - } - - public AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser( - Map map) { - super(null, null, null, null, map, null); - } - - public AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser(User user) { - super(null, null, null, null, null, user); - } - - public boolean isAppItemEventSource() { - return value0 != null; - } - - public AppItemEventSource getAppItemEventSource() { - return value0; - } - - public boolean isEventSource() { - return value1 != null; - } - - public EventSource getEventSource() { - return value1; - } - - public boolean isFile() { - return value2 != null; - } - - public File getFile() { - return value2; - } - - public boolean isFolder() { - return value3 != null; - } - - public Folder getFolder() { - return value3; - } - - public boolean isMap() { - return value4 != null; - } - - public Map getMap() { - return value4; - } - - public boolean isUser() { - return value5 != null; - } - - public User getUser() { - return value5; - } - - static class AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUserDeserializer - extends JsonDeserializer { - - public AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUserDeserializer() { - super(); - } - - @Override - public AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser deserialize( - JsonParser jp, DeserializationContext ctxt) throws IOException { - JsonNode node = JsonManager.jsonToSerializedData(jp); - JsonNode discriminant0 = node.get("type"); - if (!(discriminant0 == null)) { - switch (discriminant0.asText()) { - case "app_item": - return new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser( - JsonManager.deserialize(node, AppItemEventSource.class)); - case "file": - return new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser( - JsonManager.deserialize(node, File.class)); - case "folder": - return new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser( - JsonManager.deserialize(node, Folder.class)); - case "user": - return new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser( - JsonManager.deserialize(node, User.class)); - } - } - JsonNode discriminant1 = node.get("item_type"); - if (!(discriminant1 == null)) { - switch (discriminant1.asText()) { - case "file": - return new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser( - JsonManager.deserialize(node, EventSource.class)); - case "folder": - return new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser( - JsonManager.deserialize(node, EventSource.class)); - } - } - try { - return new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser( - OneOfSix.OBJECT_MAPPER.convertValue(node, Map.class)); - } catch (Exception ignored) { - } - throw new JsonMappingException( - jp, - "Unable to deserialize AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser"); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/collaboration/Collaboration.java b/src/main/java/com/box/sdkgen/schemas/collaboration/Collaboration.java index fcd71e366..45ad0b1af 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaboration/Collaboration.java +++ b/src/main/java/com/box/sdkgen/schemas/collaboration/Collaboration.java @@ -5,11 +5,11 @@ import com.box.sdkgen.internal.SerializableObject; import com.box.sdkgen.internal.utils.DateTimeUtils; import com.box.sdkgen.schemas.appitem.AppItem; +import com.box.sdkgen.schemas.collaborationaccessgrantee.CollaborationAccessGrantee; +import com.box.sdkgen.schemas.collaborationitem.CollaborationItem; import com.box.sdkgen.schemas.file.File; -import com.box.sdkgen.schemas.fileorfolderorweblink.FileOrFolderOrWebLink; import com.box.sdkgen.schemas.folder.Folder; import com.box.sdkgen.schemas.groupmini.GroupMini; -import com.box.sdkgen.schemas.groupminiorusercollaborations.GroupMiniOrUserCollaborations; import com.box.sdkgen.schemas.usercollaborations.UserCollaborations; import com.box.sdkgen.schemas.weblink.WebLink; import com.box.sdkgen.serialization.json.EnumWrapper; @@ -29,14 +29,14 @@ public class Collaboration extends SerializableObject { @JsonSerialize(using = CollaborationTypeField.CollaborationTypeFieldSerializer.class) protected EnumWrapper type; - @Nullable protected FileOrFolderOrWebLink item; + @Nullable protected CollaborationItem item; @JsonProperty("app_item") @Nullable protected AppItem appItem; @JsonProperty("accessible_by") - protected GroupMiniOrUserCollaborations accessibleBy; + protected CollaborationAccessGrantee accessibleBy; @JsonProperty("invite_email") @Nullable @@ -114,7 +114,7 @@ public EnumWrapper getType() { return type; } - public FileOrFolderOrWebLink getItem() { + public CollaborationItem getItem() { return item; } @@ -122,7 +122,7 @@ public AppItem getAppItem() { return appItem; } - public GroupMiniOrUserCollaborations getAccessibleBy() { + public CollaborationAccessGrantee getAccessibleBy() { return accessibleBy; } @@ -283,11 +283,11 @@ public static class Builder extends NullableFieldTracker { protected EnumWrapper type; - protected FileOrFolderOrWebLink item; + protected CollaborationItem item; protected AppItem appItem; - protected GroupMiniOrUserCollaborations accessibleBy; + protected CollaborationAccessGrantee accessibleBy; protected String inviteEmail; @@ -326,24 +326,24 @@ public Builder type(EnumWrapper type) { } public Builder item(File item) { - this.item = new FileOrFolderOrWebLink(item); + this.item = new CollaborationItem(item); this.markNullableFieldAsSet("item"); return this; } public Builder item(Folder item) { - this.item = new FileOrFolderOrWebLink(item); + this.item = new CollaborationItem(item); this.markNullableFieldAsSet("item"); return this; } public Builder item(WebLink item) { - this.item = new FileOrFolderOrWebLink(item); + this.item = new CollaborationItem(item); this.markNullableFieldAsSet("item"); return this; } - public Builder item(FileOrFolderOrWebLink item) { + public Builder item(CollaborationItem item) { this.item = item; this.markNullableFieldAsSet("item"); return this; @@ -355,17 +355,17 @@ public Builder appItem(AppItem appItem) { return this; } - public Builder accessibleBy(GroupMini accessibleBy) { - this.accessibleBy = new GroupMiniOrUserCollaborations(accessibleBy); + public Builder accessibleBy(UserCollaborations accessibleBy) { + this.accessibleBy = new CollaborationAccessGrantee(accessibleBy); return this; } - public Builder accessibleBy(UserCollaborations accessibleBy) { - this.accessibleBy = new GroupMiniOrUserCollaborations(accessibleBy); + public Builder accessibleBy(GroupMini accessibleBy) { + this.accessibleBy = new CollaborationAccessGrantee(accessibleBy); return this; } - public Builder accessibleBy(GroupMiniOrUserCollaborations accessibleBy) { + public Builder accessibleBy(CollaborationAccessGrantee accessibleBy) { this.accessibleBy = accessibleBy; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/groupminiorusercollaborations/GroupMiniOrUserCollaborations.java b/src/main/java/com/box/sdkgen/schemas/collaborationaccessgrantee/CollaborationAccessGrantee.java similarity index 68% rename from src/main/java/com/box/sdkgen/schemas/groupminiorusercollaborations/GroupMiniOrUserCollaborations.java rename to src/main/java/com/box/sdkgen/schemas/collaborationaccessgrantee/CollaborationAccessGrantee.java index f2d87d7be..c72c932bc 100644 --- a/src/main/java/com/box/sdkgen/schemas/groupminiorusercollaborations/GroupMiniOrUserCollaborations.java +++ b/src/main/java/com/box/sdkgen/schemas/collaborationaccessgrantee/CollaborationAccessGrantee.java @@ -1,4 +1,4 @@ -package com.box.sdkgen.schemas.groupminiorusercollaborations; +package com.box.sdkgen.schemas.collaborationaccessgrantee; import com.box.sdkgen.internal.OneOfTwo; import com.box.sdkgen.schemas.groupmini.GroupMini; @@ -14,10 +14,9 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.IOException; -@JsonDeserialize( - using = GroupMiniOrUserCollaborations.GroupMiniOrUserCollaborationsDeserializer.class) +@JsonDeserialize(using = CollaborationAccessGrantee.CollaborationAccessGranteeDeserializer.class) @JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) -public class GroupMiniOrUserCollaborations extends OneOfTwo { +public class CollaborationAccessGrantee extends OneOfTwo { protected final String name; @@ -25,33 +24,33 @@ public class GroupMiniOrUserCollaborations extends OneOfTwo { + static class CollaborationAccessGranteeDeserializer + extends JsonDeserializer { - public GroupMiniOrUserCollaborationsDeserializer() { + public CollaborationAccessGranteeDeserializer() { super(); } @Override - public GroupMiniOrUserCollaborations deserialize(JsonParser jp, DeserializationContext ctxt) + public CollaborationAccessGrantee deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { JsonNode node = JsonManager.jsonToSerializedData(jp); JsonNode discriminant0 = node.get("type"); if (!(discriminant0 == null)) { switch (discriminant0.asText()) { - case "group": - return new GroupMiniOrUserCollaborations( - JsonManager.deserialize(node, GroupMini.class)); case "user": - return new GroupMiniOrUserCollaborations( + return new CollaborationAccessGrantee( JsonManager.deserialize(node, UserCollaborations.class)); + case "group": + return new CollaborationAccessGrantee(JsonManager.deserialize(node, GroupMini.class)); } } - throw new JsonMappingException(jp, "Unable to deserialize GroupMiniOrUserCollaborations"); + throw new JsonMappingException(jp, "Unable to deserialize CollaborationAccessGrantee"); } } } diff --git a/src/main/java/com/box/sdkgen/schemas/fileorfolderorweblink/FileOrFolderOrWebLink.java b/src/main/java/com/box/sdkgen/schemas/collaborationitem/CollaborationItem.java similarity index 85% rename from src/main/java/com/box/sdkgen/schemas/fileorfolderorweblink/FileOrFolderOrWebLink.java rename to src/main/java/com/box/sdkgen/schemas/collaborationitem/CollaborationItem.java index 7b3e6050f..1ec5a9c53 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileorfolderorweblink/FileOrFolderOrWebLink.java +++ b/src/main/java/com/box/sdkgen/schemas/collaborationitem/CollaborationItem.java @@ -1,4 +1,4 @@ -package com.box.sdkgen.schemas.fileorfolderorweblink; +package com.box.sdkgen.schemas.collaborationitem; import com.box.sdkgen.internal.OneOfThree; import com.box.sdkgen.schemas.file.File; @@ -18,9 +18,9 @@ import java.io.IOException; import java.util.Date; -@JsonDeserialize(using = FileOrFolderOrWebLink.FileOrFolderOrWebLinkDeserializer.class) +@JsonDeserialize(using = CollaborationItem.CollaborationItemDeserializer.class) @JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) -public class FileOrFolderOrWebLink extends OneOfThree { +public class CollaborationItem extends OneOfThree { protected final String description; @@ -52,7 +52,7 @@ public class FileOrFolderOrWebLink extends OneOfThree { protected final String type; - public FileOrFolderOrWebLink(File file) { + public CollaborationItem(File file) { super(file, null, null); this.description = file.getDescription(); this.createdAt = file.getCreatedAt(); @@ -71,7 +71,7 @@ public FileOrFolderOrWebLink(File file) { this.type = EnumWrapper.convertToString(file.getType()); } - public FileOrFolderOrWebLink(Folder folder) { + public CollaborationItem(Folder folder) { super(null, folder, null); this.description = folder.getDescription(); this.createdAt = folder.getCreatedAt(); @@ -90,7 +90,7 @@ public FileOrFolderOrWebLink(Folder folder) { this.type = EnumWrapper.convertToString(folder.getType()); } - public FileOrFolderOrWebLink(WebLink webLink) { + public CollaborationItem(WebLink webLink) { super(null, null, webLink); this.description = webLink.getDescription(); this.createdAt = webLink.getCreatedAt(); @@ -193,28 +193,28 @@ public String getType() { return type; } - static class FileOrFolderOrWebLinkDeserializer extends JsonDeserializer { + static class CollaborationItemDeserializer extends JsonDeserializer { - public FileOrFolderOrWebLinkDeserializer() { + public CollaborationItemDeserializer() { super(); } @Override - public FileOrFolderOrWebLink deserialize(JsonParser jp, DeserializationContext ctxt) + public CollaborationItem deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { JsonNode node = JsonManager.jsonToSerializedData(jp); JsonNode discriminant0 = node.get("type"); if (!(discriminant0 == null)) { switch (discriminant0.asText()) { case "file": - return new FileOrFolderOrWebLink(JsonManager.deserialize(node, File.class)); + return new CollaborationItem(JsonManager.deserialize(node, File.class)); case "folder": - return new FileOrFolderOrWebLink(JsonManager.deserialize(node, Folder.class)); + return new CollaborationItem(JsonManager.deserialize(node, Folder.class)); case "web_link": - return new FileOrFolderOrWebLink(JsonManager.deserialize(node, WebLink.class)); + return new CollaborationItem(JsonManager.deserialize(node, WebLink.class)); } } - throw new JsonMappingException(jp, "Unable to deserialize FileOrFolderOrWebLink"); + throw new JsonMappingException(jp, "Unable to deserialize CollaborationItem"); } } } diff --git a/src/main/java/com/box/sdkgen/schemas/event/Event.java b/src/main/java/com/box/sdkgen/schemas/event/Event.java index f0cdf4dfc..3558071d6 100644 --- a/src/main/java/com/box/sdkgen/schemas/event/Event.java +++ b/src/main/java/com/box/sdkgen/schemas/event/Event.java @@ -4,8 +4,8 @@ import com.box.sdkgen.internal.SerializableObject; import com.box.sdkgen.internal.utils.DateTimeUtils; import com.box.sdkgen.schemas.appitemeventsource.AppItemEventSource; -import com.box.sdkgen.schemas.appitemeventsourceoreventsourceorfileorfolderorgenericsourceoruser.AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser; import com.box.sdkgen.schemas.eventsource.EventSource; +import com.box.sdkgen.schemas.eventsourceresource.EventSourceResource; import com.box.sdkgen.schemas.file.File; import com.box.sdkgen.schemas.folder.Folder; import com.box.sdkgen.schemas.user.User; @@ -48,7 +48,7 @@ public class Event extends SerializableObject { @JsonProperty("session_id") protected String sessionId; - protected AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser source; + protected EventSourceResource source; @JsonProperty("additional_details") protected EventAdditionalDetailsField additionalDetails; @@ -99,7 +99,7 @@ public String getSessionId() { return sessionId; } - public AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser getSource() { + public EventSourceResource getSource() { return source; } @@ -198,7 +198,7 @@ public static class Builder extends NullableFieldTracker { protected String sessionId; - protected AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser source; + protected EventSourceResource source; protected EventAdditionalDetailsField additionalDetails; @@ -242,38 +242,37 @@ public Builder sessionId(String sessionId) { return this; } - public Builder source(AppItemEventSource source) { - this.source = new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser(source); + public Builder source(User source) { + this.source = new EventSourceResource(source); return this; } public Builder source(EventSource source) { - this.source = new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser(source); + this.source = new EventSourceResource(source); return this; } public Builder source(File source) { - this.source = new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser(source); + this.source = new EventSourceResource(source); return this; } public Builder source(Folder source) { - this.source = new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser(source); + this.source = new EventSourceResource(source); return this; } public Builder source(Map source) { - this.source = new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser(source); + this.source = new EventSourceResource(source); return this; } - public Builder source(User source) { - this.source = new AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser(source); + public Builder source(AppItemEventSource source) { + this.source = new EventSourceResource(source); return this; } - public Builder source( - AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser source) { + public Builder source(EventSourceResource source) { this.source = source; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/eventsourceresource/EventSourceResource.java b/src/main/java/com/box/sdkgen/schemas/eventsourceresource/EventSourceResource.java new file mode 100644 index 000000000..09d68c393 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/eventsourceresource/EventSourceResource.java @@ -0,0 +1,136 @@ +package com.box.sdkgen.schemas.eventsourceresource; + +import com.box.sdkgen.internal.OneOfSix; +import com.box.sdkgen.schemas.appitemeventsource.AppItemEventSource; +import com.box.sdkgen.schemas.eventsource.EventSource; +import com.box.sdkgen.schemas.file.File; +import com.box.sdkgen.schemas.folder.Folder; +import com.box.sdkgen.schemas.user.User; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; +import java.util.Map; + +@JsonDeserialize(using = EventSourceResource.EventSourceResourceDeserializer.class) +@JsonSerialize(using = OneOfSix.OneOfSixSerializer.class) +public class EventSourceResource + extends OneOfSix, AppItemEventSource> { + + public EventSourceResource(User user) { + super(user, null, null, null, null, null); + } + + public EventSourceResource(EventSource eventSource) { + super(null, eventSource, null, null, null, null); + } + + public EventSourceResource(File file) { + super(null, null, file, null, null, null); + } + + public EventSourceResource(Folder folder) { + super(null, null, null, folder, null, null); + } + + public EventSourceResource(Map map) { + super(null, null, null, null, map, null); + } + + public EventSourceResource(AppItemEventSource appItemEventSource) { + super(null, null, null, null, null, appItemEventSource); + } + + public boolean isUser() { + return value0 != null; + } + + public User getUser() { + return value0; + } + + public boolean isEventSource() { + return value1 != null; + } + + public EventSource getEventSource() { + return value1; + } + + public boolean isFile() { + return value2 != null; + } + + public File getFile() { + return value2; + } + + public boolean isFolder() { + return value3 != null; + } + + public Folder getFolder() { + return value3; + } + + public boolean isMap() { + return value4 != null; + } + + public Map getMap() { + return value4; + } + + public boolean isAppItemEventSource() { + return value5 != null; + } + + public AppItemEventSource getAppItemEventSource() { + return value5; + } + + static class EventSourceResourceDeserializer extends JsonDeserializer { + + public EventSourceResourceDeserializer() { + super(); + } + + @Override + public EventSourceResource deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "user": + return new EventSourceResource(JsonManager.deserialize(node, User.class)); + case "file": + return new EventSourceResource(JsonManager.deserialize(node, File.class)); + case "folder": + return new EventSourceResource(JsonManager.deserialize(node, Folder.class)); + case "app_item": + return new EventSourceResource(JsonManager.deserialize(node, AppItemEventSource.class)); + } + } + JsonNode discriminant1 = node.get("item_type"); + if (!(discriminant1 == null)) { + switch (discriminant1.asText()) { + case "file": + return new EventSourceResource(JsonManager.deserialize(node, EventSource.class)); + case "folder": + return new EventSourceResource(JsonManager.deserialize(node, EventSource.class)); + } + } + try { + return new EventSourceResource(OneOfSix.OBJECT_MAPPER.convertValue(node, Map.class)); + } catch (Exception ignored) { + } + throw new JsonMappingException(jp, "Unable to deserialize EventSourceResource"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullExpiringEmbedLinkField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullExpiringEmbedLinkField.java index 36c7867c1..aad36515f 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullExpiringEmbedLinkField.java +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullExpiringEmbedLinkField.java @@ -2,7 +2,7 @@ import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; -import com.box.sdkgen.schemas.fileorfolderscope.FileOrFolderScope; +import com.box.sdkgen.schemas.resourcescope.ResourceScope; import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; @@ -32,7 +32,7 @@ public class FileFullExpiringEmbedLinkField extends SerializableObject { protected EnumWrapper tokenType; @JsonProperty("restricted_to") - protected List restrictedTo; + protected List restrictedTo; protected String url; @@ -62,7 +62,7 @@ public EnumWrapper getTokenType() { return tokenType; } - public List getRestrictedTo() { + public List getRestrictedTo() { return restrictedTo; } @@ -124,7 +124,7 @@ public static class Builder extends NullableFieldTracker { protected EnumWrapper tokenType; - protected List restrictedTo; + protected List restrictedTo; protected String url; @@ -148,7 +148,7 @@ public Builder tokenType(EnumWrapper to return this; } - public Builder restrictedTo(List restrictedTo) { + public Builder restrictedTo(List restrictedTo) { this.restrictedTo = restrictedTo; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMapping.java b/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMapping.java index 0deef7253..b98f7e365 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMapping.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMapping.java @@ -5,7 +5,6 @@ import com.box.sdkgen.schemas.integrationmappingbase.IntegrationMappingBase; import com.box.sdkgen.schemas.integrationmappingbase.IntegrationMappingBaseTypeField; import com.box.sdkgen.schemas.integrationmappingpartneritemslack.IntegrationMappingPartnerItemSlack; -import com.box.sdkgen.schemas.integrationmappingpartneritemslackunion.IntegrationMappingPartnerItemSlackUnion; import com.box.sdkgen.schemas.integrationmappingslackoptions.IntegrationMappingSlackOptions; import com.box.sdkgen.schemas.userintegrationmappings.UserIntegrationMappings; import com.box.sdkgen.serialization.json.EnumWrapper; @@ -42,7 +41,7 @@ public class IntegrationMapping extends IntegrationMappingBase { protected UserIntegrationMappings modifiedBy; @JsonProperty("partner_item") - protected final IntegrationMappingPartnerItemSlackUnion partnerItem; + protected final IntegrationMappingPartnerItemSlack partnerItem; @JsonProperty("box_item") protected final FolderMini boxItem; @@ -57,16 +56,9 @@ public class IntegrationMapping extends IntegrationMappingBase { @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected Date modifiedAt; - public IntegrationMapping( - String id, IntegrationMappingPartnerItemSlack partnerItem, FolderMini boxItem) { - super(id); - this.partnerItem = new IntegrationMappingPartnerItemSlackUnion(partnerItem); - this.boxItem = boxItem; - } - public IntegrationMapping( @JsonProperty("id") String id, - @JsonProperty("partner_item") IntegrationMappingPartnerItemSlackUnion partnerItem, + @JsonProperty("partner_item") IntegrationMappingPartnerItemSlack partnerItem, @JsonProperty("box_item") FolderMini boxItem) { super(id); this.partnerItem = partnerItem; @@ -107,7 +99,7 @@ public UserIntegrationMappings getModifiedBy() { return modifiedBy; } - public IntegrationMappingPartnerItemSlackUnion getPartnerItem() { + public IntegrationMappingPartnerItemSlack getPartnerItem() { return partnerItem; } @@ -222,7 +214,7 @@ public static class Builder extends IntegrationMappingBase.Builder { protected UserIntegrationMappings modifiedBy; - protected final IntegrationMappingPartnerItemSlackUnion partnerItem; + protected final IntegrationMappingPartnerItemSlack partnerItem; protected final FolderMini boxItem; @@ -232,13 +224,6 @@ public static class Builder extends IntegrationMappingBase.Builder { public Builder(String id, IntegrationMappingPartnerItemSlack partnerItem, FolderMini boxItem) { super(id); - this.partnerItem = new IntegrationMappingPartnerItemSlackUnion(partnerItem); - this.boxItem = boxItem; - } - - public Builder( - String id, IntegrationMappingPartnerItemSlackUnion partnerItem, FolderMini boxItem) { - super(id); this.partnerItem = partnerItem; this.boxItem = boxItem; } diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslackunion/IntegrationMappingPartnerItemSlackUnion.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslackunion/IntegrationMappingPartnerItemSlackUnion.java deleted file mode 100644 index f8f3329dc..000000000 --- a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslackunion/IntegrationMappingPartnerItemSlackUnion.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.box.sdkgen.schemas.integrationmappingpartneritemslackunion; - -import com.box.sdkgen.internal.OneOfOne; -import com.box.sdkgen.schemas.integrationmappingpartneritemslack.IntegrationMappingPartnerItemSlack; -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.box.sdkgen.serialization.json.JsonManager; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.io.IOException; - -@JsonDeserialize( - using = - IntegrationMappingPartnerItemSlackUnion.IntegrationMappingPartnerItemSlackUnionDeserializer - .class) -@JsonSerialize(using = OneOfOne.OneOfOneSerializer.class) -public class IntegrationMappingPartnerItemSlackUnion - extends OneOfOne { - - protected final String type; - - protected final String id; - - protected final String slackWorkspaceId; - - protected final String slackOrgId; - - public IntegrationMappingPartnerItemSlackUnion( - IntegrationMappingPartnerItemSlack integrationMappingPartnerItemSlack) { - super(integrationMappingPartnerItemSlack); - this.type = EnumWrapper.convertToString(integrationMappingPartnerItemSlack.getType()); - this.id = integrationMappingPartnerItemSlack.getId(); - this.slackWorkspaceId = integrationMappingPartnerItemSlack.getSlackWorkspaceId(); - this.slackOrgId = integrationMappingPartnerItemSlack.getSlackOrgId(); - } - - public boolean isIntegrationMappingPartnerItemSlack() { - return value0 != null; - } - - public IntegrationMappingPartnerItemSlack getIntegrationMappingPartnerItemSlack() { - return value0; - } - - public String getType() { - return type; - } - - public String getId() { - return id; - } - - public String getSlackWorkspaceId() { - return slackWorkspaceId; - } - - public String getSlackOrgId() { - return slackOrgId; - } - - static class IntegrationMappingPartnerItemSlackUnionDeserializer - extends JsonDeserializer { - - public IntegrationMappingPartnerItemSlackUnionDeserializer() { - super(); - } - - @Override - public IntegrationMappingPartnerItemSlackUnion deserialize( - JsonParser jp, DeserializationContext ctxt) throws IOException { - JsonNode node = JsonManager.jsonToSerializedData(jp); - JsonNode discriminant0 = node.get("type"); - if (!(discriminant0 == null)) { - switch (discriminant0.asText()) { - case "channel": - return new IntegrationMappingPartnerItemSlackUnion( - JsonManager.deserialize(node, IntegrationMappingPartnerItemSlack.class)); - } - } - throw new JsonMappingException( - jp, "Unable to deserialize IntegrationMappingPartnerItemSlackUnion"); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteamsunion/IntegrationMappingPartnerItemTeamsUnion.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteamsunion/IntegrationMappingPartnerItemTeamsUnion.java deleted file mode 100644 index ce3a8399f..000000000 --- a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteamsunion/IntegrationMappingPartnerItemTeamsUnion.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.box.sdkgen.schemas.integrationmappingpartneritemteamsunion; - -import com.box.sdkgen.internal.OneOfOne; -import com.box.sdkgen.schemas.integrationmappingpartneritemteams.IntegrationMappingPartnerItemTeams; -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.box.sdkgen.serialization.json.JsonManager; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.io.IOException; - -@JsonDeserialize( - using = - IntegrationMappingPartnerItemTeamsUnion.IntegrationMappingPartnerItemTeamsUnionDeserializer - .class) -@JsonSerialize(using = OneOfOne.OneOfOneSerializer.class) -public class IntegrationMappingPartnerItemTeamsUnion - extends OneOfOne { - - protected final String type; - - protected final String id; - - protected final String tenantId; - - public IntegrationMappingPartnerItemTeamsUnion( - IntegrationMappingPartnerItemTeams integrationMappingPartnerItemTeams) { - super(integrationMappingPartnerItemTeams); - this.type = EnumWrapper.convertToString(integrationMappingPartnerItemTeams.getType()); - this.id = integrationMappingPartnerItemTeams.getId(); - this.tenantId = integrationMappingPartnerItemTeams.getTenantId(); - } - - public boolean isIntegrationMappingPartnerItemTeams() { - return value0 != null; - } - - public IntegrationMappingPartnerItemTeams getIntegrationMappingPartnerItemTeams() { - return value0; - } - - public String getType() { - return type; - } - - public String getId() { - return id; - } - - public String getTenantId() { - return tenantId; - } - - static class IntegrationMappingPartnerItemTeamsUnionDeserializer - extends JsonDeserializer { - - public IntegrationMappingPartnerItemTeamsUnionDeserializer() { - super(); - } - - @Override - public IntegrationMappingPartnerItemTeamsUnion deserialize( - JsonParser jp, DeserializationContext ctxt) throws IOException { - JsonNode node = JsonManager.jsonToSerializedData(jp); - JsonNode discriminant0 = node.get("type"); - if (!(discriminant0 == null)) { - switch (discriminant0.asText()) { - case "channel": - return new IntegrationMappingPartnerItemTeamsUnion( - JsonManager.deserialize(node, IntegrationMappingPartnerItemTeams.class)); - case "team": - return new IntegrationMappingPartnerItemTeamsUnion( - JsonManager.deserialize(node, IntegrationMappingPartnerItemTeams.class)); - } - } - throw new JsonMappingException( - jp, "Unable to deserialize IntegrationMappingPartnerItemTeamsUnion"); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeams.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeams.java index 69bf701e0..987002ff9 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeams.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeams.java @@ -5,7 +5,6 @@ import com.box.sdkgen.schemas.integrationmappingbase.IntegrationMappingBase; import com.box.sdkgen.schemas.integrationmappingbase.IntegrationMappingBaseTypeField; import com.box.sdkgen.schemas.integrationmappingpartneritemteams.IntegrationMappingPartnerItemTeams; -import com.box.sdkgen.schemas.integrationmappingpartneritemteamsunion.IntegrationMappingPartnerItemTeamsUnion; import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; @@ -32,7 +31,7 @@ public class IntegrationMappingTeams extends IntegrationMappingBase { protected Boolean isOverriddenByManualMapping; @JsonProperty("partner_item") - protected final IntegrationMappingPartnerItemTeamsUnion partnerItem; + protected final IntegrationMappingPartnerItemTeams partnerItem; @JsonProperty("box_item") protected final FolderReference boxItem; @@ -47,16 +46,9 @@ public class IntegrationMappingTeams extends IntegrationMappingBase { @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected Date modifiedAt; - public IntegrationMappingTeams( - String id, IntegrationMappingPartnerItemTeams partnerItem, FolderReference boxItem) { - super(id); - this.partnerItem = new IntegrationMappingPartnerItemTeamsUnion(partnerItem); - this.boxItem = boxItem; - } - public IntegrationMappingTeams( @JsonProperty("id") String id, - @JsonProperty("partner_item") IntegrationMappingPartnerItemTeamsUnion partnerItem, + @JsonProperty("partner_item") IntegrationMappingPartnerItemTeams partnerItem, @JsonProperty("box_item") FolderReference boxItem) { super(id); this.partnerItem = partnerItem; @@ -82,7 +74,7 @@ public Boolean getIsOverriddenByManualMapping() { return isOverriddenByManualMapping; } - public IntegrationMappingPartnerItemTeamsUnion getPartnerItem() { + public IntegrationMappingPartnerItemTeams getPartnerItem() { return partnerItem; } @@ -173,7 +165,7 @@ public static class Builder extends IntegrationMappingBase.Builder { protected Boolean isOverriddenByManualMapping; - protected final IntegrationMappingPartnerItemTeamsUnion partnerItem; + protected final IntegrationMappingPartnerItemTeams partnerItem; protected final FolderReference boxItem; @@ -184,13 +176,6 @@ public static class Builder extends IntegrationMappingBase.Builder { public Builder( String id, IntegrationMappingPartnerItemTeams partnerItem, FolderReference boxItem) { super(id); - this.partnerItem = new IntegrationMappingPartnerItemTeamsUnion(partnerItem); - this.boxItem = boxItem; - } - - public Builder( - String id, IntegrationMappingPartnerItemTeamsUnion partnerItem, FolderReference boxItem) { - super(id); this.partnerItem = partnerItem; this.boxItem = boxItem; } diff --git a/src/main/java/com/box/sdkgen/schemas/filefullorfolderminiorweblink/FileFullOrFolderMiniOrWebLink.java b/src/main/java/com/box/sdkgen/schemas/item/Item.java similarity index 71% rename from src/main/java/com/box/sdkgen/schemas/filefullorfolderminiorweblink/FileFullOrFolderMiniOrWebLink.java rename to src/main/java/com/box/sdkgen/schemas/item/Item.java index 72122e0b7..fe3f20a82 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefullorfolderminiorweblink/FileFullOrFolderMiniOrWebLink.java +++ b/src/main/java/com/box/sdkgen/schemas/item/Item.java @@ -1,4 +1,4 @@ -package com.box.sdkgen.schemas.filefullorfolderminiorweblink; +package com.box.sdkgen.schemas.item; import com.box.sdkgen.internal.OneOfThree; import com.box.sdkgen.schemas.filefull.FileFull; @@ -15,10 +15,9 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.IOException; -@JsonDeserialize( - using = FileFullOrFolderMiniOrWebLink.FileFullOrFolderMiniOrWebLinkDeserializer.class) +@JsonDeserialize(using = Item.ItemDeserializer.class) @JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) -public class FileFullOrFolderMiniOrWebLink extends OneOfThree { +public class Item extends OneOfThree { protected final String sequenceId; @@ -30,7 +29,7 @@ public class FileFullOrFolderMiniOrWebLink extends OneOfThree { + static class ItemDeserializer extends JsonDeserializer { - public FileFullOrFolderMiniOrWebLinkDeserializer() { + public ItemDeserializer() { super(); } @Override - public FileFullOrFolderMiniOrWebLink deserialize(JsonParser jp, DeserializationContext ctxt) - throws IOException { + public Item deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { JsonNode node = JsonManager.jsonToSerializedData(jp); JsonNode discriminant0 = node.get("type"); if (!(discriminant0 == null)) { switch (discriminant0.asText()) { case "file": - return new FileFullOrFolderMiniOrWebLink(JsonManager.deserialize(node, FileFull.class)); + return new Item(JsonManager.deserialize(node, FileFull.class)); case "folder": - return new FileFullOrFolderMiniOrWebLink( - JsonManager.deserialize(node, FolderMini.class)); + return new Item(JsonManager.deserialize(node, FolderMini.class)); case "web_link": - return new FileFullOrFolderMiniOrWebLink(JsonManager.deserialize(node, WebLink.class)); + return new Item(JsonManager.deserialize(node, WebLink.class)); } } - throw new JsonMappingException(jp, "Unable to deserialize FileFullOrFolderMiniOrWebLink"); + throw new JsonMappingException(jp, "Unable to deserialize Item"); } } } diff --git a/src/main/java/com/box/sdkgen/schemas/items/Items.java b/src/main/java/com/box/sdkgen/schemas/items/Items.java index 588cb2d9c..a57046705 100644 --- a/src/main/java/com/box/sdkgen/schemas/items/Items.java +++ b/src/main/java/com/box/sdkgen/schemas/items/Items.java @@ -3,7 +3,7 @@ import com.box.sdkgen.internal.Nullable; import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; -import com.box.sdkgen.schemas.filefullorfolderfullorweblink.FileFullOrFolderFullOrWebLink; +import com.box.sdkgen.schemas.item.Item; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; import java.util.List; @@ -29,7 +29,7 @@ public class Items extends SerializableObject { protected List order; - protected List entries; + protected List entries; public Items() { super(); @@ -71,7 +71,7 @@ public List getOrder() { return order; } - public List getEntries() { + public List getEntries() { return entries; } @@ -145,7 +145,7 @@ public static class Builder extends NullableFieldTracker { protected List order; - protected List entries; + protected List entries; public Builder limit(Long limit) { this.limit = limit; @@ -179,7 +179,7 @@ public Builder order(List order) { return this; } - public Builder entries(List entries) { + public Builder entries(List entries) { this.entries = entries; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginated.java b/src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginated.java index 9a8324eb7..af4006fa7 100644 --- a/src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginated.java +++ b/src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginated.java @@ -2,7 +2,7 @@ import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; -import com.box.sdkgen.schemas.filefullorfolderfullorweblink.FileFullOrFolderFullOrWebLink; +import com.box.sdkgen.schemas.item.Item; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; import java.util.List; @@ -20,7 +20,7 @@ public class ItemsOffsetPaginated extends SerializableObject { protected List order; - protected List entries; + protected List entries; public ItemsOffsetPaginated() { super(); @@ -52,7 +52,7 @@ public List getOrder() { return order; } - public List getEntries() { + public List getEntries() { return entries; } @@ -112,7 +112,7 @@ public static class Builder extends NullableFieldTracker { protected List order; - protected List entries; + protected List entries; public Builder totalCount(Long totalCount) { this.totalCount = totalCount; @@ -134,7 +134,7 @@ public Builder order(List order) { return this; } - public Builder entries(List entries) { + public Builder entries(List entries) { this.entries = entries; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassigneditem/LegalHoldPolicyAssignedItem.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassigneditem/LegalHoldPolicyAssignedItem.java new file mode 100644 index 000000000..ad0536ef0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassigneditem/LegalHoldPolicyAssignedItem.java @@ -0,0 +1,221 @@ +package com.box.sdkgen.schemas.legalholdpolicyassigneditem; + +import com.box.sdkgen.internal.OneOfThree; +import com.box.sdkgen.schemas.file.File; +import com.box.sdkgen.schemas.folder.Folder; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.schemas.weblink.WebLink; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; +import java.util.Date; + +@JsonDeserialize(using = LegalHoldPolicyAssignedItem.LegalHoldPolicyAssignedItemDeserializer.class) +@JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) +public class LegalHoldPolicyAssignedItem extends OneOfThree { + + protected final String description; + + protected final Date createdAt; + + protected final Date modifiedAt; + + protected final Date trashedAt; + + protected final Date purgedAt; + + protected final UserMini createdBy; + + protected final UserMini modifiedBy; + + protected final UserMini ownedBy; + + protected final FolderMini parent; + + protected final String itemStatus; + + protected final String sequenceId; + + protected final String name; + + protected final String id; + + protected final String etag; + + protected final String type; + + public LegalHoldPolicyAssignedItem(File file) { + super(file, null, null); + this.description = file.getDescription(); + this.createdAt = file.getCreatedAt(); + this.modifiedAt = file.getModifiedAt(); + this.trashedAt = file.getTrashedAt(); + this.purgedAt = file.getPurgedAt(); + this.createdBy = file.getCreatedBy(); + this.modifiedBy = file.getModifiedBy(); + this.ownedBy = file.getOwnedBy(); + this.parent = file.getParent(); + this.itemStatus = EnumWrapper.convertToString(file.getItemStatus()); + this.sequenceId = file.getSequenceId(); + this.name = file.getName(); + this.id = file.getId(); + this.etag = file.getEtag(); + this.type = EnumWrapper.convertToString(file.getType()); + } + + public LegalHoldPolicyAssignedItem(Folder folder) { + super(null, folder, null); + this.description = folder.getDescription(); + this.createdAt = folder.getCreatedAt(); + this.modifiedAt = folder.getModifiedAt(); + this.trashedAt = folder.getTrashedAt(); + this.purgedAt = folder.getPurgedAt(); + this.createdBy = folder.getCreatedBy(); + this.modifiedBy = folder.getModifiedBy(); + this.ownedBy = folder.getOwnedBy(); + this.parent = folder.getParent(); + this.itemStatus = EnumWrapper.convertToString(folder.getItemStatus()); + this.sequenceId = folder.getSequenceId(); + this.name = folder.getName(); + this.id = folder.getId(); + this.etag = folder.getEtag(); + this.type = EnumWrapper.convertToString(folder.getType()); + } + + public LegalHoldPolicyAssignedItem(WebLink webLink) { + super(null, null, webLink); + this.description = webLink.getDescription(); + this.createdAt = webLink.getCreatedAt(); + this.modifiedAt = webLink.getModifiedAt(); + this.trashedAt = webLink.getTrashedAt(); + this.purgedAt = webLink.getPurgedAt(); + this.createdBy = webLink.getCreatedBy(); + this.modifiedBy = webLink.getModifiedBy(); + this.ownedBy = webLink.getOwnedBy(); + this.parent = webLink.getParent(); + this.itemStatus = EnumWrapper.convertToString(webLink.getItemStatus()); + this.sequenceId = webLink.getSequenceId(); + this.name = webLink.getName(); + this.id = webLink.getId(); + this.etag = webLink.getEtag(); + this.type = EnumWrapper.convertToString(webLink.getType()); + } + + public boolean isFile() { + return value0 != null; + } + + public File getFile() { + return value0; + } + + public boolean isFolder() { + return value1 != null; + } + + public Folder getFolder() { + return value1; + } + + public boolean isWebLink() { + return value2 != null; + } + + public WebLink getWebLink() { + return value2; + } + + public String getDescription() { + return description; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + public Date getTrashedAt() { + return trashedAt; + } + + public Date getPurgedAt() { + return purgedAt; + } + + public UserMini getCreatedBy() { + return createdBy; + } + + public UserMini getModifiedBy() { + return modifiedBy; + } + + public UserMini getOwnedBy() { + return ownedBy; + } + + public FolderMini getParent() { + return parent; + } + + public String getItemStatus() { + return itemStatus; + } + + public String getSequenceId() { + return sequenceId; + } + + public String getName() { + return name; + } + + public String getId() { + return id; + } + + public String getEtag() { + return etag; + } + + public String getType() { + return type; + } + + static class LegalHoldPolicyAssignedItemDeserializer + extends JsonDeserializer { + + public LegalHoldPolicyAssignedItemDeserializer() { + super(); + } + + @Override + public LegalHoldPolicyAssignedItem deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "file": + return new LegalHoldPolicyAssignedItem(JsonManager.deserialize(node, File.class)); + case "folder": + return new LegalHoldPolicyAssignedItem(JsonManager.deserialize(node, Folder.class)); + case "web_link": + return new LegalHoldPolicyAssignedItem(JsonManager.deserialize(node, WebLink.class)); + } + } + throw new JsonMappingException(jp, "Unable to deserialize LegalHoldPolicyAssignedItem"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignment/LegalHoldPolicyAssignment.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignment/LegalHoldPolicyAssignment.java index fd0f535b0..1d3be6745 100644 --- a/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignment/LegalHoldPolicyAssignment.java +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignment/LegalHoldPolicyAssignment.java @@ -2,8 +2,8 @@ import com.box.sdkgen.internal.utils.DateTimeUtils; import com.box.sdkgen.schemas.file.File; -import com.box.sdkgen.schemas.fileorfolderorweblink.FileOrFolderOrWebLink; import com.box.sdkgen.schemas.folder.Folder; +import com.box.sdkgen.schemas.legalholdpolicyassigneditem.LegalHoldPolicyAssignedItem; import com.box.sdkgen.schemas.legalholdpolicyassignmentbase.LegalHoldPolicyAssignmentBase; import com.box.sdkgen.schemas.legalholdpolicyassignmentbase.LegalHoldPolicyAssignmentBaseTypeField; import com.box.sdkgen.schemas.legalholdpolicymini.LegalHoldPolicyMini; @@ -24,7 +24,7 @@ public class LegalHoldPolicyAssignment extends LegalHoldPolicyAssignmentBase { protected LegalHoldPolicyMini legalHoldPolicy; @JsonProperty("assigned_to") - protected FileOrFolderOrWebLink assignedTo; + protected LegalHoldPolicyAssignedItem assignedTo; @JsonProperty("assigned_by") protected UserMini assignedBy; @@ -57,7 +57,7 @@ public LegalHoldPolicyMini getLegalHoldPolicy() { return legalHoldPolicy; } - public FileOrFolderOrWebLink getAssignedTo() { + public LegalHoldPolicyAssignedItem getAssignedTo() { return assignedTo; } @@ -133,7 +133,7 @@ public static class Builder extends LegalHoldPolicyAssignmentBase.Builder { protected LegalHoldPolicyMini legalHoldPolicy; - protected FileOrFolderOrWebLink assignedTo; + protected LegalHoldPolicyAssignedItem assignedTo; protected UserMini assignedBy; @@ -147,21 +147,21 @@ public Builder legalHoldPolicy(LegalHoldPolicyMini legalHoldPolicy) { } public Builder assignedTo(File assignedTo) { - this.assignedTo = new FileOrFolderOrWebLink(assignedTo); + this.assignedTo = new LegalHoldPolicyAssignedItem(assignedTo); return this; } public Builder assignedTo(Folder assignedTo) { - this.assignedTo = new FileOrFolderOrWebLink(assignedTo); + this.assignedTo = new LegalHoldPolicyAssignedItem(assignedTo); return this; } public Builder assignedTo(WebLink assignedTo) { - this.assignedTo = new FileOrFolderOrWebLink(assignedTo); + this.assignedTo = new LegalHoldPolicyAssignedItem(assignedTo); return this; } - public Builder assignedTo(FileOrFolderOrWebLink assignedTo) { + public Builder assignedTo(LegalHoldPolicyAssignedItem assignedTo) { this.assignedTo = assignedTo; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/metadatafieldfilterdaterangeormetadatafieldfilterfloatrangeorarrayofstringornumberorstring/MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString.java b/src/main/java/com/box/sdkgen/schemas/metadatafieldfilterdaterangeormetadatafieldfilterfloatrangeorarrayofstringornumberorstring/MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString.java deleted file mode 100644 index ce7019906..000000000 --- a/src/main/java/com/box/sdkgen/schemas/metadatafieldfilterdaterangeormetadatafieldfilterfloatrangeorarrayofstringornumberorstring/MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString.java +++ /dev/null @@ -1,138 +0,0 @@ -package com.box.sdkgen.schemas.metadatafieldfilterdaterangeormetadatafieldfilterfloatrangeorarrayofstringornumberorstring; - -import com.box.sdkgen.internal.OneOfFive; -import com.box.sdkgen.schemas.metadatafieldfilterdaterange.MetadataFieldFilterDateRange; -import com.box.sdkgen.schemas.metadatafieldfilterfloatrange.MetadataFieldFilterFloatRange; -import com.box.sdkgen.serialization.json.JsonManager; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.io.IOException; -import java.util.List; - -@JsonDeserialize( - using = - MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString - .MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrStringDeserializer - .class) -@JsonSerialize(using = OneOfFive.OneOfFiveSerializer.class) -public -class MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString - extends OneOfFive< - MetadataFieldFilterDateRange, MetadataFieldFilterFloatRange, List, Double, String> { - - public MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( - MetadataFieldFilterDateRange metadataFieldFilterDateRange) { - super(metadataFieldFilterDateRange, null, null, null, null); - } - - public MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( - MetadataFieldFilterFloatRange metadataFieldFilterFloatRange) { - super(null, metadataFieldFilterFloatRange, null, null, null); - } - - public MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( - List listOfString) { - super(null, null, listOfString, null, null); - } - - public MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( - Double doubleNumber) { - super(null, null, null, doubleNumber, null); - } - - public MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( - String string) { - super(null, null, null, null, string); - } - - public boolean isMetadataFieldFilterDateRange() { - return value0 != null; - } - - public MetadataFieldFilterDateRange getMetadataFieldFilterDateRange() { - return value0; - } - - public boolean isMetadataFieldFilterFloatRange() { - return value1 != null; - } - - public MetadataFieldFilterFloatRange getMetadataFieldFilterFloatRange() { - return value1; - } - - public boolean isListOfString() { - return value2 != null; - } - - public List getListOfString() { - return value2; - } - - public boolean isDoubleNumber() { - return value3 != null; - } - - public Double getDoubleNumber() { - return value3; - } - - public boolean isString() { - return value4 != null; - } - - public String getString() { - return value4; - } - - static - class MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrStringDeserializer - extends JsonDeserializer< - MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString> { - - public - MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrStringDeserializer() { - super(); - } - - @Override - public - MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString - deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { - JsonNode node = JsonManager.jsonToSerializedData(jp); - try { - return new MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( - OneOfFive.OBJECT_MAPPER.convertValue(node, MetadataFieldFilterDateRange.class)); - } catch (Exception ignored) { - } - try { - return new MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( - OneOfFive.OBJECT_MAPPER.convertValue(node, MetadataFieldFilterFloatRange.class)); - } catch (Exception ignored) { - } - try { - return new MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( - OneOfFive.OBJECT_MAPPER.convertValue(node, List.class)); - } catch (Exception ignored) { - } - try { - return new MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( - OneOfFive.OBJECT_MAPPER.convertValue(node, Double.class)); - } catch (Exception ignored) { - } - try { - return new MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( - OneOfFive.OBJECT_MAPPER.convertValue(node, String.class)); - } catch (Exception ignored) { - } - throw new JsonMappingException( - jp, - "Unable to deserialize MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString"); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatafilter/MetadataFilter.java b/src/main/java/com/box/sdkgen/schemas/metadatafilter/MetadataFilter.java index 5a71050f1..39e9ef8f4 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatafilter/MetadataFilter.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatafilter/MetadataFilter.java @@ -2,7 +2,7 @@ import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; -import com.box.sdkgen.schemas.metadatafieldfilterdaterangeormetadatafieldfilterfloatrangeorarrayofstringornumberorstring.MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString; +import com.box.sdkgen.schemas.metadatafiltervalue.MetadataFilterValue; import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; @@ -19,10 +19,7 @@ public class MetadataFilter extends SerializableObject { protected String templateKey; - protected Map< - String, - MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString> - filters; + protected Map filters; public MetadataFilter() { super(); @@ -44,10 +41,7 @@ public String getTemplateKey() { return templateKey; } - public Map< - String, - MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString> - getFilters() { + public Map getFilters() { return filters; } @@ -93,10 +87,7 @@ public static class Builder extends NullableFieldTracker { protected String templateKey; - protected Map< - String, - MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString> - filters; + protected Map filters; public Builder scope(MetadataFilterScopeField scope) { this.scope = new EnumWrapper(scope); @@ -113,11 +104,7 @@ public Builder templateKey(String templateKey) { return this; } - public Builder filters( - Map< - String, - MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString> - filters) { + public Builder filters(Map filters) { this.filters = filters; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/metadatafiltervalue/MetadataFilterValue.java b/src/main/java/com/box/sdkgen/schemas/metadatafiltervalue/MetadataFilterValue.java new file mode 100644 index 000000000..23659fa44 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatafiltervalue/MetadataFilterValue.java @@ -0,0 +1,118 @@ +package com.box.sdkgen.schemas.metadatafiltervalue; + +import com.box.sdkgen.internal.OneOfFive; +import com.box.sdkgen.schemas.metadatafieldfilterdaterange.MetadataFieldFilterDateRange; +import com.box.sdkgen.schemas.metadatafieldfilterfloatrange.MetadataFieldFilterFloatRange; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; +import java.util.List; + +@JsonDeserialize(using = MetadataFilterValue.MetadataFilterValueDeserializer.class) +@JsonSerialize(using = OneOfFive.OneOfFiveSerializer.class) +public class MetadataFilterValue + extends OneOfFive< + String, Double, List, MetadataFieldFilterFloatRange, MetadataFieldFilterDateRange> { + + public MetadataFilterValue(String string) { + super(string, null, null, null, null); + } + + public MetadataFilterValue(Double doubleNumber) { + super(null, doubleNumber, null, null, null); + } + + public MetadataFilterValue(List listOfString) { + super(null, null, listOfString, null, null); + } + + public MetadataFilterValue(MetadataFieldFilterFloatRange metadataFieldFilterFloatRange) { + super(null, null, null, metadataFieldFilterFloatRange, null); + } + + public MetadataFilterValue(MetadataFieldFilterDateRange metadataFieldFilterDateRange) { + super(null, null, null, null, metadataFieldFilterDateRange); + } + + public boolean isString() { + return value0 != null; + } + + public String getString() { + return value0; + } + + public boolean isDoubleNumber() { + return value1 != null; + } + + public Double getDoubleNumber() { + return value1; + } + + public boolean isListOfString() { + return value2 != null; + } + + public List getListOfString() { + return value2; + } + + public boolean isMetadataFieldFilterFloatRange() { + return value3 != null; + } + + public MetadataFieldFilterFloatRange getMetadataFieldFilterFloatRange() { + return value3; + } + + public boolean isMetadataFieldFilterDateRange() { + return value4 != null; + } + + public MetadataFieldFilterDateRange getMetadataFieldFilterDateRange() { + return value4; + } + + static class MetadataFilterValueDeserializer extends JsonDeserializer { + + public MetadataFilterValueDeserializer() { + super(); + } + + @Override + public MetadataFilterValue deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + try { + return new MetadataFilterValue( + OneOfFive.OBJECT_MAPPER.convertValue(node, MetadataFieldFilterFloatRange.class)); + } catch (Exception ignored) { + } + try { + return new MetadataFilterValue( + OneOfFive.OBJECT_MAPPER.convertValue(node, MetadataFieldFilterDateRange.class)); + } catch (Exception ignored) { + } + try { + return new MetadataFilterValue(OneOfFive.OBJECT_MAPPER.convertValue(node, Double.class)); + } catch (Exception ignored) { + } + try { + return new MetadataFilterValue(OneOfFive.OBJECT_MAPPER.convertValue(node, List.class)); + } catch (Exception ignored) { + } + try { + return new MetadataFilterValue(OneOfFive.OBJECT_MAPPER.convertValue(node, String.class)); + } catch (Exception ignored) { + } + throw new JsonMappingException(jp, "Unable to deserialize MetadataFilterValue"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filefullorfolderfull/FileFullOrFolderFull.java b/src/main/java/com/box/sdkgen/schemas/metadataqueryresultitem/MetadataQueryResultItem.java similarity index 89% rename from src/main/java/com/box/sdkgen/schemas/filefullorfolderfull/FileFullOrFolderFull.java rename to src/main/java/com/box/sdkgen/schemas/metadataqueryresultitem/MetadataQueryResultItem.java index a8143ff6c..c4567c7c7 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefullorfolderfull/FileFullOrFolderFull.java +++ b/src/main/java/com/box/sdkgen/schemas/metadataqueryresultitem/MetadataQueryResultItem.java @@ -1,4 +1,4 @@ -package com.box.sdkgen.schemas.filefullorfolderfull; +package com.box.sdkgen.schemas.metadataqueryresultitem; import com.box.sdkgen.internal.OneOfTwo; import com.box.sdkgen.schemas.filefull.FileFull; @@ -18,9 +18,9 @@ import java.util.Date; import java.util.List; -@JsonDeserialize(using = FileFullOrFolderFull.FileFullOrFolderFullDeserializer.class) +@JsonDeserialize(using = MetadataQueryResultItem.MetadataQueryResultItemDeserializer.class) @JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) -public class FileFullOrFolderFull extends OneOfTwo { +public class MetadataQueryResultItem extends OneOfTwo { protected final List tags; @@ -70,7 +70,7 @@ public class FileFullOrFolderFull extends OneOfTwo { protected final String type; - public FileFullOrFolderFull(FileFull fileFull) { + public MetadataQueryResultItem(FileFull fileFull) { super(fileFull, null); this.tags = fileFull.getTags(); this.isAccessibleViaSharedLink = fileFull.getIsAccessibleViaSharedLink(); @@ -98,7 +98,7 @@ public FileFullOrFolderFull(FileFull fileFull) { this.type = EnumWrapper.convertToString(fileFull.getType()); } - public FileFullOrFolderFull(FolderFull folderFull) { + public MetadataQueryResultItem(FolderFull folderFull) { super(null, folderFull); this.tags = folderFull.getTags(); this.isAccessibleViaSharedLink = folderFull.getIsAccessibleViaSharedLink(); @@ -238,26 +238,27 @@ public String getType() { return type; } - static class FileFullOrFolderFullDeserializer extends JsonDeserializer { + static class MetadataQueryResultItemDeserializer + extends JsonDeserializer { - public FileFullOrFolderFullDeserializer() { + public MetadataQueryResultItemDeserializer() { super(); } @Override - public FileFullOrFolderFull deserialize(JsonParser jp, DeserializationContext ctxt) + public MetadataQueryResultItem deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { JsonNode node = JsonManager.jsonToSerializedData(jp); JsonNode discriminant0 = node.get("type"); if (!(discriminant0 == null)) { switch (discriminant0.asText()) { case "file": - return new FileFullOrFolderFull(JsonManager.deserialize(node, FileFull.class)); + return new MetadataQueryResultItem(JsonManager.deserialize(node, FileFull.class)); case "folder": - return new FileFullOrFolderFull(JsonManager.deserialize(node, FolderFull.class)); + return new MetadataQueryResultItem(JsonManager.deserialize(node, FolderFull.class)); } } - throw new JsonMappingException(jp, "Unable to deserialize FileFullOrFolderFull"); + throw new JsonMappingException(jp, "Unable to deserialize MetadataQueryResultItem"); } } } diff --git a/src/main/java/com/box/sdkgen/schemas/metadataqueryresults/MetadataQueryResults.java b/src/main/java/com/box/sdkgen/schemas/metadataqueryresults/MetadataQueryResults.java index 91b0da0e7..560bf7af1 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadataqueryresults/MetadataQueryResults.java +++ b/src/main/java/com/box/sdkgen/schemas/metadataqueryresults/MetadataQueryResults.java @@ -2,7 +2,7 @@ import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; -import com.box.sdkgen.schemas.filefullorfolderfull.FileFullOrFolderFull; +import com.box.sdkgen.schemas.metadataqueryresultitem.MetadataQueryResultItem; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; import java.util.List; @@ -11,7 +11,7 @@ @JsonFilter("nullablePropertyFilter") public class MetadataQueryResults extends SerializableObject { - protected List entries; + protected List entries; protected Long limit; @@ -30,7 +30,7 @@ protected MetadataQueryResults(Builder builder) { markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } - public List getEntries() { + public List getEntries() { return entries; } @@ -80,13 +80,13 @@ public String toString() { public static class Builder extends NullableFieldTracker { - protected List entries; + protected List entries; protected Long limit; protected String nextMarker; - public Builder entries(List entries) { + public Builder entries(List entries) { this.entries = entries; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/recentitem/RecentItem.java b/src/main/java/com/box/sdkgen/schemas/recentitem/RecentItem.java index c5bba5115..362316825 100644 --- a/src/main/java/com/box/sdkgen/schemas/recentitem/RecentItem.java +++ b/src/main/java/com/box/sdkgen/schemas/recentitem/RecentItem.java @@ -4,8 +4,8 @@ import com.box.sdkgen.internal.SerializableObject; import com.box.sdkgen.internal.utils.DateTimeUtils; import com.box.sdkgen.schemas.filefull.FileFull; -import com.box.sdkgen.schemas.filefullorfolderfullorweblink.FileFullOrFolderFullOrWebLink; import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.recentitemresource.RecentItemResource; import com.box.sdkgen.schemas.weblink.WebLink; import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; @@ -20,7 +20,7 @@ public class RecentItem extends SerializableObject { protected String type; - protected FileFullOrFolderFullOrWebLink item; + protected RecentItemResource item; @JsonDeserialize( using = RecentItemInteractionTypeField.RecentItemInteractionTypeFieldDeserializer.class) @@ -55,7 +55,7 @@ public String getType() { return type; } - public FileFullOrFolderFullOrWebLink getItem() { + public RecentItemResource getItem() { return item; } @@ -121,7 +121,7 @@ public static class Builder extends NullableFieldTracker { protected String type; - protected FileFullOrFolderFullOrWebLink item; + protected RecentItemResource item; protected EnumWrapper interactionType; @@ -135,21 +135,21 @@ public Builder type(String type) { } public Builder item(FileFull item) { - this.item = new FileFullOrFolderFullOrWebLink(item); + this.item = new RecentItemResource(item); return this; } public Builder item(FolderFull item) { - this.item = new FileFullOrFolderFullOrWebLink(item); + this.item = new RecentItemResource(item); return this; } public Builder item(WebLink item) { - this.item = new FileFullOrFolderFullOrWebLink(item); + this.item = new RecentItemResource(item); return this; } - public Builder item(FileFullOrFolderFullOrWebLink item) { + public Builder item(RecentItemResource item) { this.item = item; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/recentitemresource/RecentItemResource.java b/src/main/java/com/box/sdkgen/schemas/recentitemresource/RecentItemResource.java new file mode 100644 index 000000000..b2a5b72a7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/recentitemresource/RecentItemResource.java @@ -0,0 +1,220 @@ +package com.box.sdkgen.schemas.recentitemresource; + +import com.box.sdkgen.internal.OneOfThree; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.schemas.weblink.WebLink; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; +import java.util.Date; + +@JsonDeserialize(using = RecentItemResource.RecentItemResourceDeserializer.class) +@JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) +public class RecentItemResource extends OneOfThree { + + protected final String description; + + protected final Date createdAt; + + protected final Date modifiedAt; + + protected final Date trashedAt; + + protected final Date purgedAt; + + protected final UserMini createdBy; + + protected final UserMini modifiedBy; + + protected final UserMini ownedBy; + + protected final FolderMini parent; + + protected final String itemStatus; + + protected final String sequenceId; + + protected final String name; + + protected final String id; + + protected final String etag; + + protected final String type; + + public RecentItemResource(FileFull fileFull) { + super(fileFull, null, null); + this.description = fileFull.getDescription(); + this.createdAt = fileFull.getCreatedAt(); + this.modifiedAt = fileFull.getModifiedAt(); + this.trashedAt = fileFull.getTrashedAt(); + this.purgedAt = fileFull.getPurgedAt(); + this.createdBy = fileFull.getCreatedBy(); + this.modifiedBy = fileFull.getModifiedBy(); + this.ownedBy = fileFull.getOwnedBy(); + this.parent = fileFull.getParent(); + this.itemStatus = EnumWrapper.convertToString(fileFull.getItemStatus()); + this.sequenceId = fileFull.getSequenceId(); + this.name = fileFull.getName(); + this.id = fileFull.getId(); + this.etag = fileFull.getEtag(); + this.type = EnumWrapper.convertToString(fileFull.getType()); + } + + public RecentItemResource(FolderFull folderFull) { + super(null, folderFull, null); + this.description = folderFull.getDescription(); + this.createdAt = folderFull.getCreatedAt(); + this.modifiedAt = folderFull.getModifiedAt(); + this.trashedAt = folderFull.getTrashedAt(); + this.purgedAt = folderFull.getPurgedAt(); + this.createdBy = folderFull.getCreatedBy(); + this.modifiedBy = folderFull.getModifiedBy(); + this.ownedBy = folderFull.getOwnedBy(); + this.parent = folderFull.getParent(); + this.itemStatus = EnumWrapper.convertToString(folderFull.getItemStatus()); + this.sequenceId = folderFull.getSequenceId(); + this.name = folderFull.getName(); + this.id = folderFull.getId(); + this.etag = folderFull.getEtag(); + this.type = EnumWrapper.convertToString(folderFull.getType()); + } + + public RecentItemResource(WebLink webLink) { + super(null, null, webLink); + this.description = webLink.getDescription(); + this.createdAt = webLink.getCreatedAt(); + this.modifiedAt = webLink.getModifiedAt(); + this.trashedAt = webLink.getTrashedAt(); + this.purgedAt = webLink.getPurgedAt(); + this.createdBy = webLink.getCreatedBy(); + this.modifiedBy = webLink.getModifiedBy(); + this.ownedBy = webLink.getOwnedBy(); + this.parent = webLink.getParent(); + this.itemStatus = EnumWrapper.convertToString(webLink.getItemStatus()); + this.sequenceId = webLink.getSequenceId(); + this.name = webLink.getName(); + this.id = webLink.getId(); + this.etag = webLink.getEtag(); + this.type = EnumWrapper.convertToString(webLink.getType()); + } + + public boolean isFileFull() { + return value0 != null; + } + + public FileFull getFileFull() { + return value0; + } + + public boolean isFolderFull() { + return value1 != null; + } + + public FolderFull getFolderFull() { + return value1; + } + + public boolean isWebLink() { + return value2 != null; + } + + public WebLink getWebLink() { + return value2; + } + + public String getDescription() { + return description; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + public Date getTrashedAt() { + return trashedAt; + } + + public Date getPurgedAt() { + return purgedAt; + } + + public UserMini getCreatedBy() { + return createdBy; + } + + public UserMini getModifiedBy() { + return modifiedBy; + } + + public UserMini getOwnedBy() { + return ownedBy; + } + + public FolderMini getParent() { + return parent; + } + + public String getItemStatus() { + return itemStatus; + } + + public String getSequenceId() { + return sequenceId; + } + + public String getName() { + return name; + } + + public String getId() { + return id; + } + + public String getEtag() { + return etag; + } + + public String getType() { + return type; + } + + static class RecentItemResourceDeserializer extends JsonDeserializer { + + public RecentItemResourceDeserializer() { + super(); + } + + @Override + public RecentItemResource deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "file": + return new RecentItemResource(JsonManager.deserialize(node, FileFull.class)); + case "folder": + return new RecentItemResource(JsonManager.deserialize(node, FolderFull.class)); + case "web_link": + return new RecentItemResource(JsonManager.deserialize(node, WebLink.class)); + } + } + throw new JsonMappingException(jp, "Unable to deserialize RecentItemResource"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/fileminiorfoldermini/FileMiniOrFolderMini.java b/src/main/java/com/box/sdkgen/schemas/resource/Resource.java similarity index 72% rename from src/main/java/com/box/sdkgen/schemas/fileminiorfoldermini/FileMiniOrFolderMini.java rename to src/main/java/com/box/sdkgen/schemas/resource/Resource.java index c080ed759..0b1338824 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileminiorfoldermini/FileMiniOrFolderMini.java +++ b/src/main/java/com/box/sdkgen/schemas/resource/Resource.java @@ -1,4 +1,4 @@ -package com.box.sdkgen.schemas.fileminiorfoldermini; +package com.box.sdkgen.schemas.resource; import com.box.sdkgen.internal.OneOfTwo; import com.box.sdkgen.schemas.filemini.FileMini; @@ -14,9 +14,9 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.IOException; -@JsonDeserialize(using = FileMiniOrFolderMini.FileMiniOrFolderMiniDeserializer.class) +@JsonDeserialize(using = Resource.ResourceDeserializer.class) @JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) -public class FileMiniOrFolderMini extends OneOfTwo { +public class Resource extends OneOfTwo { protected final String sequenceId; @@ -28,17 +28,8 @@ public class FileMiniOrFolderMini extends OneOfTwo { protected final String type; - public FileMiniOrFolderMini(FileMini fileMini) { - super(fileMini, null); - this.sequenceId = fileMini.getSequenceId(); - this.name = fileMini.getName(); - this.id = fileMini.getId(); - this.etag = fileMini.getEtag(); - this.type = EnumWrapper.convertToString(fileMini.getType()); - } - - public FileMiniOrFolderMini(FolderMini folderMini) { - super(null, folderMini); + public Resource(FolderMini folderMini) { + super(folderMini, null); this.sequenceId = folderMini.getSequenceId(); this.name = folderMini.getName(); this.id = folderMini.getId(); @@ -46,19 +37,28 @@ public FileMiniOrFolderMini(FolderMini folderMini) { this.type = EnumWrapper.convertToString(folderMini.getType()); } - public boolean isFileMini() { + public Resource(FileMini fileMini) { + super(null, fileMini); + this.sequenceId = fileMini.getSequenceId(); + this.name = fileMini.getName(); + this.id = fileMini.getId(); + this.etag = fileMini.getEtag(); + this.type = EnumWrapper.convertToString(fileMini.getType()); + } + + public boolean isFolderMini() { return value0 != null; } - public FileMini getFileMini() { + public FolderMini getFolderMini() { return value0; } - public boolean isFolderMini() { + public boolean isFileMini() { return value1 != null; } - public FolderMini getFolderMini() { + public FileMini getFileMini() { return value1; } @@ -82,26 +82,25 @@ public String getType() { return type; } - static class FileMiniOrFolderMiniDeserializer extends JsonDeserializer { + static class ResourceDeserializer extends JsonDeserializer { - public FileMiniOrFolderMiniDeserializer() { + public ResourceDeserializer() { super(); } @Override - public FileMiniOrFolderMini deserialize(JsonParser jp, DeserializationContext ctxt) - throws IOException { + public Resource deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { JsonNode node = JsonManager.jsonToSerializedData(jp); JsonNode discriminant0 = node.get("type"); if (!(discriminant0 == null)) { switch (discriminant0.asText()) { - case "file": - return new FileMiniOrFolderMini(JsonManager.deserialize(node, FileMini.class)); case "folder": - return new FileMiniOrFolderMini(JsonManager.deserialize(node, FolderMini.class)); + return new Resource(JsonManager.deserialize(node, FolderMini.class)); + case "file": + return new Resource(JsonManager.deserialize(node, FileMini.class)); } } - throw new JsonMappingException(jp, "Unable to deserialize FileMiniOrFolderMini"); + throw new JsonMappingException(jp, "Unable to deserialize Resource"); } } } diff --git a/src/main/java/com/box/sdkgen/schemas/fileorfolderscope/FileOrFolderScope.java b/src/main/java/com/box/sdkgen/schemas/resourcescope/ResourceScope.java similarity index 50% rename from src/main/java/com/box/sdkgen/schemas/fileorfolderscope/FileOrFolderScope.java rename to src/main/java/com/box/sdkgen/schemas/resourcescope/ResourceScope.java index ed6b0ff8d..6de67fee5 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileorfolderscope/FileOrFolderScope.java +++ b/src/main/java/com/box/sdkgen/schemas/resourcescope/ResourceScope.java @@ -1,10 +1,10 @@ -package com.box.sdkgen.schemas.fileorfolderscope; +package com.box.sdkgen.schemas.resourcescope; import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; import com.box.sdkgen.schemas.filemini.FileMini; -import com.box.sdkgen.schemas.fileminiorfoldermini.FileMiniOrFolderMini; import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.resource.Resource; import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; @@ -12,31 +12,30 @@ import java.util.Objects; @JsonFilter("nullablePropertyFilter") -public class FileOrFolderScope extends SerializableObject { +public class ResourceScope extends SerializableObject { - @JsonDeserialize( - using = FileOrFolderScopeScopeField.FileOrFolderScopeScopeFieldDeserializer.class) - @JsonSerialize(using = FileOrFolderScopeScopeField.FileOrFolderScopeScopeFieldSerializer.class) - protected EnumWrapper scope; + @JsonDeserialize(using = ResourceScopeScopeField.ResourceScopeScopeFieldDeserializer.class) + @JsonSerialize(using = ResourceScopeScopeField.ResourceScopeScopeFieldSerializer.class) + protected EnumWrapper scope; - protected FileMiniOrFolderMini object; + protected Resource object; - public FileOrFolderScope() { + public ResourceScope() { super(); } - protected FileOrFolderScope(Builder builder) { + protected ResourceScope(Builder builder) { super(); this.scope = builder.scope; this.object = builder.object; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } - public EnumWrapper getScope() { + public EnumWrapper getScope() { return scope; } - public FileMiniOrFolderMini getObject() { + public Resource getObject() { return object; } @@ -48,7 +47,7 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - FileOrFolderScope casted = (FileOrFolderScope) o; + ResourceScope casted = (ResourceScope) o; return Objects.equals(scope, casted.scope) && Objects.equals(object, casted.object); } @@ -59,50 +58,42 @@ public int hashCode() { @Override public String toString() { - return "FileOrFolderScope{" - + "scope='" - + scope - + '\'' - + ", " - + "object='" - + object - + '\'' - + "}"; + return "ResourceScope{" + "scope='" + scope + '\'' + ", " + "object='" + object + '\'' + "}"; } public static class Builder extends NullableFieldTracker { - protected EnumWrapper scope; + protected EnumWrapper scope; - protected FileMiniOrFolderMini object; + protected Resource object; - public Builder scope(FileOrFolderScopeScopeField scope) { - this.scope = new EnumWrapper(scope); + public Builder scope(ResourceScopeScopeField scope) { + this.scope = new EnumWrapper(scope); return this; } - public Builder scope(EnumWrapper scope) { + public Builder scope(EnumWrapper scope) { this.scope = scope; return this; } - public Builder object(FileMini object) { - this.object = new FileMiniOrFolderMini(object); + public Builder object(FolderMini object) { + this.object = new Resource(object); return this; } - public Builder object(FolderMini object) { - this.object = new FileMiniOrFolderMini(object); + public Builder object(FileMini object) { + this.object = new Resource(object); return this; } - public Builder object(FileMiniOrFolderMini object) { + public Builder object(Resource object) { this.object = object; return this; } - public FileOrFolderScope build() { - return new FileOrFolderScope(this); + public ResourceScope build() { + return new ResourceScope(this); } } } diff --git a/src/main/java/com/box/sdkgen/schemas/fileorfolderscope/FileOrFolderScopeScopeField.java b/src/main/java/com/box/sdkgen/schemas/resourcescope/ResourceScopeScopeField.java similarity index 66% rename from src/main/java/com/box/sdkgen/schemas/fileorfolderscope/FileOrFolderScopeScopeField.java rename to src/main/java/com/box/sdkgen/schemas/resourcescope/ResourceScopeScopeField.java index 807bf22e4..408d195b8 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileorfolderscope/FileOrFolderScopeScopeField.java +++ b/src/main/java/com/box/sdkgen/schemas/resourcescope/ResourceScopeScopeField.java @@ -1,4 +1,4 @@ -package com.box.sdkgen.schemas.fileorfolderscope; +package com.box.sdkgen.schemas.resourcescope; import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; @@ -11,7 +11,7 @@ import java.io.IOException; import java.util.Arrays; -public enum FileOrFolderScopeScopeField implements Valuable { +public enum ResourceScopeScopeField implements Valuable { ANNOTATION_EDIT("annotation_edit"), ANNOTATION_VIEW_ALL("annotation_view_all"), ANNOTATION_VIEW_SELF("annotation_view_self"), @@ -29,7 +29,7 @@ public enum FileOrFolderScopeScopeField implements Valuable { private final String value; - FileOrFolderScopeScopeField(String value) { + ResourceScopeScopeField(String value) { this.value = value; } @@ -37,35 +37,35 @@ public String getValue() { return value; } - public static class FileOrFolderScopeScopeFieldDeserializer - extends JsonDeserializer> { + public static class ResourceScopeScopeFieldDeserializer + extends JsonDeserializer> { - public FileOrFolderScopeScopeFieldDeserializer() { + public ResourceScopeScopeFieldDeserializer() { super(); } @Override - public EnumWrapper deserialize( + public EnumWrapper deserialize( JsonParser p, DeserializationContext ctxt) throws IOException { String value = p.getValueAsString(); - return Arrays.stream(FileOrFolderScopeScopeField.values()) + return Arrays.stream(ResourceScopeScopeField.values()) .filter((v) -> v.getValue().equalsIgnoreCase(value)) .findFirst() .map(EnumWrapper::new) - .orElse(new EnumWrapper(value)); + .orElse(new EnumWrapper(value)); } } - public static class FileOrFolderScopeScopeFieldSerializer - extends JsonSerializer> { + public static class ResourceScopeScopeFieldSerializer + extends JsonSerializer> { - public FileOrFolderScopeScopeFieldSerializer() { + public ResourceScopeScopeFieldSerializer() { super(); } @Override public void serialize( - EnumWrapper value, + EnumWrapper value, JsonGenerator gen, SerializerProvider serializers) throws IOException { diff --git a/src/main/java/com/box/sdkgen/schemas/searchresultitem/SearchResultItem.java b/src/main/java/com/box/sdkgen/schemas/searchresultitem/SearchResultItem.java new file mode 100644 index 000000000..7b24f8061 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/searchresultitem/SearchResultItem.java @@ -0,0 +1,220 @@ +package com.box.sdkgen.schemas.searchresultitem; + +import com.box.sdkgen.internal.OneOfThree; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.usermini.UserMini; +import com.box.sdkgen.schemas.weblink.WebLink; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; +import java.util.Date; + +@JsonDeserialize(using = SearchResultItem.SearchResultItemDeserializer.class) +@JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) +public class SearchResultItem extends OneOfThree { + + protected final String description; + + protected final Date createdAt; + + protected final Date modifiedAt; + + protected final Date trashedAt; + + protected final Date purgedAt; + + protected final UserMini createdBy; + + protected final UserMini modifiedBy; + + protected final UserMini ownedBy; + + protected final FolderMini parent; + + protected final String itemStatus; + + protected final String sequenceId; + + protected final String name; + + protected final String id; + + protected final String etag; + + protected final String type; + + public SearchResultItem(FileFull fileFull) { + super(fileFull, null, null); + this.description = fileFull.getDescription(); + this.createdAt = fileFull.getCreatedAt(); + this.modifiedAt = fileFull.getModifiedAt(); + this.trashedAt = fileFull.getTrashedAt(); + this.purgedAt = fileFull.getPurgedAt(); + this.createdBy = fileFull.getCreatedBy(); + this.modifiedBy = fileFull.getModifiedBy(); + this.ownedBy = fileFull.getOwnedBy(); + this.parent = fileFull.getParent(); + this.itemStatus = EnumWrapper.convertToString(fileFull.getItemStatus()); + this.sequenceId = fileFull.getSequenceId(); + this.name = fileFull.getName(); + this.id = fileFull.getId(); + this.etag = fileFull.getEtag(); + this.type = EnumWrapper.convertToString(fileFull.getType()); + } + + public SearchResultItem(FolderFull folderFull) { + super(null, folderFull, null); + this.description = folderFull.getDescription(); + this.createdAt = folderFull.getCreatedAt(); + this.modifiedAt = folderFull.getModifiedAt(); + this.trashedAt = folderFull.getTrashedAt(); + this.purgedAt = folderFull.getPurgedAt(); + this.createdBy = folderFull.getCreatedBy(); + this.modifiedBy = folderFull.getModifiedBy(); + this.ownedBy = folderFull.getOwnedBy(); + this.parent = folderFull.getParent(); + this.itemStatus = EnumWrapper.convertToString(folderFull.getItemStatus()); + this.sequenceId = folderFull.getSequenceId(); + this.name = folderFull.getName(); + this.id = folderFull.getId(); + this.etag = folderFull.getEtag(); + this.type = EnumWrapper.convertToString(folderFull.getType()); + } + + public SearchResultItem(WebLink webLink) { + super(null, null, webLink); + this.description = webLink.getDescription(); + this.createdAt = webLink.getCreatedAt(); + this.modifiedAt = webLink.getModifiedAt(); + this.trashedAt = webLink.getTrashedAt(); + this.purgedAt = webLink.getPurgedAt(); + this.createdBy = webLink.getCreatedBy(); + this.modifiedBy = webLink.getModifiedBy(); + this.ownedBy = webLink.getOwnedBy(); + this.parent = webLink.getParent(); + this.itemStatus = EnumWrapper.convertToString(webLink.getItemStatus()); + this.sequenceId = webLink.getSequenceId(); + this.name = webLink.getName(); + this.id = webLink.getId(); + this.etag = webLink.getEtag(); + this.type = EnumWrapper.convertToString(webLink.getType()); + } + + public boolean isFileFull() { + return value0 != null; + } + + public FileFull getFileFull() { + return value0; + } + + public boolean isFolderFull() { + return value1 != null; + } + + public FolderFull getFolderFull() { + return value1; + } + + public boolean isWebLink() { + return value2 != null; + } + + public WebLink getWebLink() { + return value2; + } + + public String getDescription() { + return description; + } + + public Date getCreatedAt() { + return createdAt; + } + + public Date getModifiedAt() { + return modifiedAt; + } + + public Date getTrashedAt() { + return trashedAt; + } + + public Date getPurgedAt() { + return purgedAt; + } + + public UserMini getCreatedBy() { + return createdBy; + } + + public UserMini getModifiedBy() { + return modifiedBy; + } + + public UserMini getOwnedBy() { + return ownedBy; + } + + public FolderMini getParent() { + return parent; + } + + public String getItemStatus() { + return itemStatus; + } + + public String getSequenceId() { + return sequenceId; + } + + public String getName() { + return name; + } + + public String getId() { + return id; + } + + public String getEtag() { + return etag; + } + + public String getType() { + return type; + } + + static class SearchResultItemDeserializer extends JsonDeserializer { + + public SearchResultItemDeserializer() { + super(); + } + + @Override + public SearchResultItem deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "file": + return new SearchResultItem(JsonManager.deserialize(node, FileFull.class)); + case "folder": + return new SearchResultItem(JsonManager.deserialize(node, FolderFull.class)); + case "web_link": + return new SearchResultItem(JsonManager.deserialize(node, WebLink.class)); + } + } + throw new JsonMappingException(jp, "Unable to deserialize SearchResultItem"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/searchresults/SearchResults.java b/src/main/java/com/box/sdkgen/schemas/searchresults/SearchResults.java index 71693ba16..9999c348c 100644 --- a/src/main/java/com/box/sdkgen/schemas/searchresults/SearchResults.java +++ b/src/main/java/com/box/sdkgen/schemas/searchresults/SearchResults.java @@ -2,7 +2,7 @@ import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; -import com.box.sdkgen.schemas.filefullorfolderfullorweblink.FileFullOrFolderFullOrWebLink; +import com.box.sdkgen.schemas.searchresultitem.SearchResultItem; import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; @@ -25,7 +25,7 @@ public class SearchResults extends SerializableObject { @JsonSerialize(using = SearchResultsTypeField.SearchResultsTypeFieldSerializer.class) protected EnumWrapper type; - protected List entries; + protected List entries; public SearchResults() { super(); @@ -59,7 +59,7 @@ public EnumWrapper getType() { return type; } - public List getEntries() { + public List getEntries() { return entries; } @@ -119,7 +119,7 @@ public static class Builder extends NullableFieldTracker { protected EnumWrapper type; - protected List entries; + protected List entries; public Builder() { super(); @@ -152,7 +152,7 @@ public Builder type(EnumWrapper type) { return this; } - public Builder entries(List entries) { + public Builder entries(List entries) { this.entries = entries; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/searchresultsorsearchresultswithsharedlinks/SearchResultsOrSearchResultsWithSharedLinks.java b/src/main/java/com/box/sdkgen/schemas/searchresultsresponse/SearchResultsResponse.java similarity index 66% rename from src/main/java/com/box/sdkgen/schemas/searchresultsorsearchresultswithsharedlinks/SearchResultsOrSearchResultsWithSharedLinks.java rename to src/main/java/com/box/sdkgen/schemas/searchresultsresponse/SearchResultsResponse.java index b3b9ace3c..c613bb85b 100644 --- a/src/main/java/com/box/sdkgen/schemas/searchresultsorsearchresultswithsharedlinks/SearchResultsOrSearchResultsWithSharedLinks.java +++ b/src/main/java/com/box/sdkgen/schemas/searchresultsresponse/SearchResultsResponse.java @@ -1,4 +1,4 @@ -package com.box.sdkgen.schemas.searchresultsorsearchresultswithsharedlinks; +package com.box.sdkgen.schemas.searchresultsresponse; import com.box.sdkgen.internal.OneOfTwo; import com.box.sdkgen.schemas.searchresults.SearchResults; @@ -14,13 +14,9 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.IOException; -@JsonDeserialize( - using = - SearchResultsOrSearchResultsWithSharedLinks - .SearchResultsOrSearchResultsWithSharedLinksDeserializer.class) +@JsonDeserialize(using = SearchResultsResponse.SearchResultsResponseDeserializer.class) @JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) -public class SearchResultsOrSearchResultsWithSharedLinks - extends OneOfTwo { +public class SearchResultsResponse extends OneOfTwo { protected final Long totalCount; @@ -30,7 +26,7 @@ public class SearchResultsOrSearchResultsWithSharedLinks protected final String type; - public SearchResultsOrSearchResultsWithSharedLinks(SearchResults searchResults) { + public SearchResultsResponse(SearchResults searchResults) { super(searchResults, null); this.totalCount = searchResults.getTotalCount(); this.limit = searchResults.getLimit(); @@ -38,8 +34,7 @@ public SearchResultsOrSearchResultsWithSharedLinks(SearchResults searchResults) this.type = EnumWrapper.convertToString(searchResults.getType()); } - public SearchResultsOrSearchResultsWithSharedLinks( - SearchResultsWithSharedLinks searchResultsWithSharedLinks) { + public SearchResultsResponse(SearchResultsWithSharedLinks searchResultsWithSharedLinks) { super(null, searchResultsWithSharedLinks); this.totalCount = searchResultsWithSharedLinks.getTotalCount(); this.limit = searchResultsWithSharedLinks.getLimit(); @@ -79,30 +74,27 @@ public String getType() { return type; } - static class SearchResultsOrSearchResultsWithSharedLinksDeserializer - extends JsonDeserializer { + static class SearchResultsResponseDeserializer extends JsonDeserializer { - public SearchResultsOrSearchResultsWithSharedLinksDeserializer() { + public SearchResultsResponseDeserializer() { super(); } @Override - public SearchResultsOrSearchResultsWithSharedLinks deserialize( - JsonParser jp, DeserializationContext ctxt) throws IOException { + public SearchResultsResponse deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { JsonNode node = JsonManager.jsonToSerializedData(jp); JsonNode discriminant0 = node.get("type"); if (!(discriminant0 == null)) { switch (discriminant0.asText()) { case "search_results_items": - return new SearchResultsOrSearchResultsWithSharedLinks( - JsonManager.deserialize(node, SearchResults.class)); + return new SearchResultsResponse(JsonManager.deserialize(node, SearchResults.class)); case "search_results_with_shared_links": - return new SearchResultsOrSearchResultsWithSharedLinks( + return new SearchResultsResponse( JsonManager.deserialize(node, SearchResultsWithSharedLinks.class)); } } - throw new JsonMappingException( - jp, "Unable to deserialize SearchResultsOrSearchResultsWithSharedLinks"); + throw new JsonMappingException(jp, "Unable to deserialize SearchResultsResponse"); } } } diff --git a/src/main/java/com/box/sdkgen/schemas/searchresultwithsharedlink/SearchResultWithSharedLink.java b/src/main/java/com/box/sdkgen/schemas/searchresultwithsharedlink/SearchResultWithSharedLink.java index b496e61b9..c7ed36f39 100644 --- a/src/main/java/com/box/sdkgen/schemas/searchresultwithsharedlink/SearchResultWithSharedLink.java +++ b/src/main/java/com/box/sdkgen/schemas/searchresultwithsharedlink/SearchResultWithSharedLink.java @@ -3,8 +3,8 @@ import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; import com.box.sdkgen.schemas.filefull.FileFull; -import com.box.sdkgen.schemas.filefullorfolderfullorweblink.FileFullOrFolderFullOrWebLink; import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.searchresultwithsharedlinkitem.SearchResultWithSharedLinkItem; import com.box.sdkgen.schemas.weblink.WebLink; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; @@ -16,7 +16,7 @@ public class SearchResultWithSharedLink extends SerializableObject { @JsonProperty("accessible_via_shared_link") protected String accessibleViaSharedLink; - protected FileFullOrFolderFullOrWebLink item; + protected SearchResultWithSharedLinkItem item; protected String type; @@ -36,7 +36,7 @@ public String getAccessibleViaSharedLink() { return accessibleViaSharedLink; } - public FileFullOrFolderFullOrWebLink getItem() { + public SearchResultWithSharedLinkItem getItem() { return item; } @@ -84,7 +84,7 @@ public static class Builder extends NullableFieldTracker { protected String accessibleViaSharedLink; - protected FileFullOrFolderFullOrWebLink item; + protected SearchResultWithSharedLinkItem item; protected String type; @@ -94,21 +94,21 @@ public Builder accessibleViaSharedLink(String accessibleViaSharedLink) { } public Builder item(FileFull item) { - this.item = new FileFullOrFolderFullOrWebLink(item); + this.item = new SearchResultWithSharedLinkItem(item); return this; } public Builder item(FolderFull item) { - this.item = new FileFullOrFolderFullOrWebLink(item); + this.item = new SearchResultWithSharedLinkItem(item); return this; } public Builder item(WebLink item) { - this.item = new FileFullOrFolderFullOrWebLink(item); + this.item = new SearchResultWithSharedLinkItem(item); return this; } - public Builder item(FileFullOrFolderFullOrWebLink item) { + public Builder item(SearchResultWithSharedLinkItem item) { this.item = item; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/filefullorfolderfullorweblink/FileFullOrFolderFullOrWebLink.java b/src/main/java/com/box/sdkgen/schemas/searchresultwithsharedlinkitem/SearchResultWithSharedLinkItem.java similarity index 84% rename from src/main/java/com/box/sdkgen/schemas/filefullorfolderfullorweblink/FileFullOrFolderFullOrWebLink.java rename to src/main/java/com/box/sdkgen/schemas/searchresultwithsharedlinkitem/SearchResultWithSharedLinkItem.java index 941ba7d78..e06077da2 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefullorfolderfullorweblink/FileFullOrFolderFullOrWebLink.java +++ b/src/main/java/com/box/sdkgen/schemas/searchresultwithsharedlinkitem/SearchResultWithSharedLinkItem.java @@ -1,4 +1,4 @@ -package com.box.sdkgen.schemas.filefullorfolderfullorweblink; +package com.box.sdkgen.schemas.searchresultwithsharedlinkitem; import com.box.sdkgen.internal.OneOfThree; import com.box.sdkgen.schemas.filefull.FileFull; @@ -19,9 +19,9 @@ import java.util.Date; @JsonDeserialize( - using = FileFullOrFolderFullOrWebLink.FileFullOrFolderFullOrWebLinkDeserializer.class) + using = SearchResultWithSharedLinkItem.SearchResultWithSharedLinkItemDeserializer.class) @JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) -public class FileFullOrFolderFullOrWebLink extends OneOfThree { +public class SearchResultWithSharedLinkItem extends OneOfThree { protected final String description; @@ -53,7 +53,7 @@ public class FileFullOrFolderFullOrWebLink extends OneOfThree { + static class SearchResultWithSharedLinkItemDeserializer + extends JsonDeserializer { - public FileFullOrFolderFullOrWebLinkDeserializer() { + public SearchResultWithSharedLinkItemDeserializer() { super(); } @Override - public FileFullOrFolderFullOrWebLink deserialize(JsonParser jp, DeserializationContext ctxt) + public SearchResultWithSharedLinkItem deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { JsonNode node = JsonManager.jsonToSerializedData(jp); JsonNode discriminant0 = node.get("type"); if (!(discriminant0 == null)) { switch (discriminant0.asText()) { case "file": - return new FileFullOrFolderFullOrWebLink(JsonManager.deserialize(node, FileFull.class)); + return new SearchResultWithSharedLinkItem( + JsonManager.deserialize(node, FileFull.class)); case "folder": - return new FileFullOrFolderFullOrWebLink( + return new SearchResultWithSharedLinkItem( JsonManager.deserialize(node, FolderFull.class)); case "web_link": - return new FileFullOrFolderFullOrWebLink(JsonManager.deserialize(node, WebLink.class)); + return new SearchResultWithSharedLinkItem(JsonManager.deserialize(node, WebLink.class)); } } - throw new JsonMappingException(jp, "Unable to deserialize FileFullOrFolderFullOrWebLink"); + throw new JsonMappingException(jp, "Unable to deserialize SearchResultWithSharedLinkItem"); } } } diff --git a/src/main/java/com/box/sdkgen/schemas/keywordskillcardorstatusskillcardortimelineskillcardortranscriptskillcard/KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard.java b/src/main/java/com/box/sdkgen/schemas/skillcard/SkillCard.java similarity index 55% rename from src/main/java/com/box/sdkgen/schemas/keywordskillcardorstatusskillcardortimelineskillcardortranscriptskillcard/KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard.java rename to src/main/java/com/box/sdkgen/schemas/skillcard/SkillCard.java index eac0e96bb..b405f2855 100644 --- a/src/main/java/com/box/sdkgen/schemas/keywordskillcardorstatusskillcardortimelineskillcardortranscriptskillcard/KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard.java +++ b/src/main/java/com/box/sdkgen/schemas/skillcard/SkillCard.java @@ -1,4 +1,4 @@ -package com.box.sdkgen.schemas.keywordskillcardorstatusskillcardortimelineskillcardortranscriptskillcard; +package com.box.sdkgen.schemas.skillcard; import com.box.sdkgen.internal.OneOfFour; import com.box.sdkgen.schemas.keywordskillcard.KeywordSkillCard; @@ -17,14 +17,10 @@ import java.io.IOException; import java.util.Date; -@JsonDeserialize( - using = - KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard - .KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCardDeserializer - .class) +@JsonDeserialize(using = SkillCard.SkillCardDeserializer.class) @JsonSerialize(using = OneOfFour.OneOfFourSerializer.class) -public class KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard - extends OneOfFour { +public class SkillCard + extends OneOfFour { protected final Date createdAt; @@ -32,38 +28,34 @@ public class KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSki protected final String skillCardType; - public KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard( - KeywordSkillCard keywordSkillCard) { + public SkillCard(KeywordSkillCard keywordSkillCard) { super(keywordSkillCard, null, null, null); this.createdAt = keywordSkillCard.getCreatedAt(); this.type = EnumWrapper.convertToString(keywordSkillCard.getType()); this.skillCardType = EnumWrapper.convertToString(keywordSkillCard.getSkillCardType()); } - public KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard( - StatusSkillCard statusSkillCard) { - super(null, statusSkillCard, null, null); - this.createdAt = statusSkillCard.getCreatedAt(); - this.type = EnumWrapper.convertToString(statusSkillCard.getType()); - this.skillCardType = EnumWrapper.convertToString(statusSkillCard.getSkillCardType()); - } - - public KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard( - TimelineSkillCard timelineSkillCard) { - super(null, null, timelineSkillCard, null); + public SkillCard(TimelineSkillCard timelineSkillCard) { + super(null, timelineSkillCard, null, null); this.createdAt = timelineSkillCard.getCreatedAt(); this.type = EnumWrapper.convertToString(timelineSkillCard.getType()); this.skillCardType = EnumWrapper.convertToString(timelineSkillCard.getSkillCardType()); } - public KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard( - TranscriptSkillCard transcriptSkillCard) { - super(null, null, null, transcriptSkillCard); + public SkillCard(TranscriptSkillCard transcriptSkillCard) { + super(null, null, transcriptSkillCard, null); this.createdAt = transcriptSkillCard.getCreatedAt(); this.type = EnumWrapper.convertToString(transcriptSkillCard.getType()); this.skillCardType = EnumWrapper.convertToString(transcriptSkillCard.getSkillCardType()); } + public SkillCard(StatusSkillCard statusSkillCard) { + super(null, null, null, statusSkillCard); + this.createdAt = statusSkillCard.getCreatedAt(); + this.type = EnumWrapper.convertToString(statusSkillCard.getType()); + this.skillCardType = EnumWrapper.convertToString(statusSkillCard.getSkillCardType()); + } + public boolean isKeywordSkillCard() { return value0 != null; } @@ -72,27 +64,27 @@ public KeywordSkillCard getKeywordSkillCard() { return value0; } - public boolean isStatusSkillCard() { + public boolean isTimelineSkillCard() { return value1 != null; } - public StatusSkillCard getStatusSkillCard() { + public TimelineSkillCard getTimelineSkillCard() { return value1; } - public boolean isTimelineSkillCard() { + public boolean isTranscriptSkillCard() { return value2 != null; } - public TimelineSkillCard getTimelineSkillCard() { + public TranscriptSkillCard getTranscriptSkillCard() { return value2; } - public boolean isTranscriptSkillCard() { + public boolean isStatusSkillCard() { return value3 != null; } - public TranscriptSkillCard getTranscriptSkillCard() { + public StatusSkillCard getStatusSkillCard() { return value3; } @@ -108,38 +100,29 @@ public String getSkillCardType() { return skillCardType; } - static class KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCardDeserializer - extends JsonDeserializer< - KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard> { + static class SkillCardDeserializer extends JsonDeserializer { - public KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCardDeserializer() { + public SkillCardDeserializer() { super(); } @Override - public KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard deserialize( - JsonParser jp, DeserializationContext ctxt) throws IOException { + public SkillCard deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { JsonNode node = JsonManager.jsonToSerializedData(jp); JsonNode discriminant0 = node.get("skill_card_type"); if (!(discriminant0 == null)) { switch (discriminant0.asText()) { case "keyword": - return new KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard( - JsonManager.deserialize(node, KeywordSkillCard.class)); - case "status": - return new KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard( - JsonManager.deserialize(node, StatusSkillCard.class)); + return new SkillCard(JsonManager.deserialize(node, KeywordSkillCard.class)); case "timeline": - return new KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard( - JsonManager.deserialize(node, TimelineSkillCard.class)); + return new SkillCard(JsonManager.deserialize(node, TimelineSkillCard.class)); case "transcript": - return new KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard( - JsonManager.deserialize(node, TranscriptSkillCard.class)); + return new SkillCard(JsonManager.deserialize(node, TranscriptSkillCard.class)); + case "status": + return new SkillCard(JsonManager.deserialize(node, StatusSkillCard.class)); } } - throw new JsonMappingException( - jp, - "Unable to deserialize KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard"); + throw new JsonMappingException(jp, "Unable to deserialize SkillCard"); } } } diff --git a/src/main/java/com/box/sdkgen/schemas/skillcardsmetadata/SkillCardsMetadata.java b/src/main/java/com/box/sdkgen/schemas/skillcardsmetadata/SkillCardsMetadata.java index ebccfb30d..d599e8cbd 100644 --- a/src/main/java/com/box/sdkgen/schemas/skillcardsmetadata/SkillCardsMetadata.java +++ b/src/main/java/com/box/sdkgen/schemas/skillcardsmetadata/SkillCardsMetadata.java @@ -2,7 +2,7 @@ import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; -import com.box.sdkgen.schemas.keywordskillcardorstatusskillcardortimelineskillcardortranscriptskillcard.KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard; +import com.box.sdkgen.schemas.skillcard.SkillCard; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; import java.util.List; @@ -35,7 +35,7 @@ public class SkillCardsMetadata extends SerializableObject { @JsonProperty("$version") protected Long version; - protected List cards; + protected List cards; public SkillCardsMetadata() { super(); @@ -87,8 +87,7 @@ public Long getVersion() { return version; } - public List - getCards() { + public List getCards() { return cards; } @@ -176,7 +175,7 @@ public static class Builder extends NullableFieldTracker { protected Long version; - protected List cards; + protected List cards; public Builder canEdit(Boolean canEdit) { this.canEdit = canEdit; @@ -218,8 +217,7 @@ public Builder version(Long version) { return this; } - public Builder cards( - List cards) { + public Builder cards(List cards) { this.cards = cards; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/filereferenceorfolderreferenceorweblinkreferencev2025r0/FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/filereferenceorfolderreferenceorweblinkreferencev2025r0/FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0.java deleted file mode 100644 index bd3a74912..000000000 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/filereferenceorfolderreferenceorweblinkreferencev2025r0/FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.box.sdkgen.schemas.v2025r0.filereferenceorfolderreferenceorweblinkreferencev2025r0; - -import com.box.sdkgen.internal.OneOfThree; -import com.box.sdkgen.schemas.v2025r0.filereferencev2025r0.FileReferenceV2025R0; -import com.box.sdkgen.schemas.v2025r0.folderreferencev2025r0.FolderReferenceV2025R0; -import com.box.sdkgen.schemas.v2025r0.weblinkreferencev2025r0.WeblinkReferenceV2025R0; -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.box.sdkgen.serialization.json.JsonManager; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.io.IOException; - -@JsonDeserialize( - using = - FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0 - .FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0Deserializer.class) -@JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) -public class FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0 - extends OneOfThree { - - protected final String type; - - protected final String id; - - public FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0( - FileReferenceV2025R0 fileReferenceV2025R0) { - super(fileReferenceV2025R0, null, null); - this.type = EnumWrapper.convertToString(fileReferenceV2025R0.getType()); - this.id = fileReferenceV2025R0.getId(); - } - - public FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0( - FolderReferenceV2025R0 folderReferenceV2025R0) { - super(null, folderReferenceV2025R0, null); - this.type = EnumWrapper.convertToString(folderReferenceV2025R0.getType()); - this.id = folderReferenceV2025R0.getId(); - } - - public FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0( - WeblinkReferenceV2025R0 weblinkReferenceV2025R0) { - super(null, null, weblinkReferenceV2025R0); - this.type = EnumWrapper.convertToString(weblinkReferenceV2025R0.getType()); - this.id = weblinkReferenceV2025R0.getId(); - } - - public boolean isFileReferenceV2025R0() { - return value0 != null; - } - - public FileReferenceV2025R0 getFileReferenceV2025R0() { - return value0; - } - - public boolean isFolderReferenceV2025R0() { - return value1 != null; - } - - public FolderReferenceV2025R0 getFolderReferenceV2025R0() { - return value1; - } - - public boolean isWeblinkReferenceV2025R0() { - return value2 != null; - } - - public WeblinkReferenceV2025R0 getWeblinkReferenceV2025R0() { - return value2; - } - - public String getType() { - return type; - } - - public String getId() { - return id; - } - - static class FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0Deserializer - extends JsonDeserializer { - - public FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0Deserializer() { - super(); - } - - @Override - public FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0 deserialize( - JsonParser jp, DeserializationContext ctxt) throws IOException { - JsonNode node = JsonManager.jsonToSerializedData(jp); - JsonNode discriminant0 = node.get("type"); - if (!(discriminant0 == null)) { - switch (discriminant0.asText()) { - case "file": - return new FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0( - JsonManager.deserialize(node, FileReferenceV2025R0.class)); - case "folder": - return new FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0( - JsonManager.deserialize(node, FolderReferenceV2025R0.class)); - case "weblink": - return new FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0( - JsonManager.deserialize(node, WeblinkReferenceV2025R0.class)); - } - } - throw new JsonMappingException( - jp, "Unable to deserialize FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0"); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationv2025r0/HubItemOperationV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationv2025r0/HubItemOperationV2025R0.java index 9c6c63b3f..c18ab0122 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationv2025r0/HubItemOperationV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationv2025r0/HubItemOperationV2025R0.java @@ -1,9 +1,9 @@ package com.box.sdkgen.schemas.v2025r0.hubitemoperationv2025r0; import com.box.sdkgen.internal.SerializableObject; -import com.box.sdkgen.schemas.v2025r0.filereferenceorfolderreferenceorweblinkreferencev2025r0.FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0; import com.box.sdkgen.schemas.v2025r0.filereferencev2025r0.FileReferenceV2025R0; import com.box.sdkgen.schemas.v2025r0.folderreferencev2025r0.FolderReferenceV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubitemreferencev2025r0.HubItemReferenceV2025R0; import com.box.sdkgen.schemas.v2025r0.weblinkreferencev2025r0.WeblinkReferenceV2025R0; import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; @@ -22,32 +22,31 @@ public class HubItemOperationV2025R0 extends SerializableObject { using = HubItemOperationV2025R0ActionField.HubItemOperationV2025R0ActionFieldSerializer.class) protected final EnumWrapper action; - protected final FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0 item; + protected final HubItemReferenceV2025R0 item; public HubItemOperationV2025R0( HubItemOperationV2025R0ActionField action, FileReferenceV2025R0 item) { super(); this.action = new EnumWrapper(action); - this.item = new FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0(item); + this.item = new HubItemReferenceV2025R0(item); } public HubItemOperationV2025R0( HubItemOperationV2025R0ActionField action, FolderReferenceV2025R0 item) { super(); this.action = new EnumWrapper(action); - this.item = new FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0(item); + this.item = new HubItemReferenceV2025R0(item); } public HubItemOperationV2025R0( HubItemOperationV2025R0ActionField action, WeblinkReferenceV2025R0 item) { super(); this.action = new EnumWrapper(action); - this.item = new FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0(item); + this.item = new HubItemReferenceV2025R0(item); } public HubItemOperationV2025R0( - HubItemOperationV2025R0ActionField action, - FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0 item) { + HubItemOperationV2025R0ActionField action, HubItemReferenceV2025R0 item) { super(); this.action = new EnumWrapper(action); this.item = item; @@ -57,26 +56,26 @@ public HubItemOperationV2025R0( EnumWrapper action, FileReferenceV2025R0 item) { super(); this.action = action; - this.item = new FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0(item); + this.item = new HubItemReferenceV2025R0(item); } public HubItemOperationV2025R0( EnumWrapper action, FolderReferenceV2025R0 item) { super(); this.action = action; - this.item = new FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0(item); + this.item = new HubItemReferenceV2025R0(item); } public HubItemOperationV2025R0( EnumWrapper action, WeblinkReferenceV2025R0 item) { super(); this.action = action; - this.item = new FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0(item); + this.item = new HubItemReferenceV2025R0(item); } public HubItemOperationV2025R0( @JsonProperty("action") EnumWrapper action, - @JsonProperty("item") FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0 item) { + @JsonProperty("item") HubItemReferenceV2025R0 item) { super(); this.action = action; this.item = item; @@ -86,7 +85,7 @@ public EnumWrapper getAction() { return action; } - public FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0 getItem() { + public HubItemReferenceV2025R0 getItem() { return item; } diff --git a/src/test/java/com/box/sdkgen/test/ai/AiITest.java b/src/test/java/com/box/sdkgen/test/ai/AiITest.java index 740c2c96c..9e89793b7 100644 --- a/src/test/java/com/box/sdkgen/test/ai/AiITest.java +++ b/src/test/java/com/box/sdkgen/test/ai/AiITest.java @@ -20,8 +20,8 @@ import com.box.sdkgen.managers.uploads.UploadFileRequestBody; import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesField; import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesParentField; +import com.box.sdkgen.schemas.aiagent.AiAgent; import com.box.sdkgen.schemas.aiagentask.AiAgentAsk; -import com.box.sdkgen.schemas.aiagentaskoraiagentextractoraiagentextractstructuredoraiagenttextgen.AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen; import com.box.sdkgen.schemas.aiagentextract.AiAgentExtract; import com.box.sdkgen.schemas.aiagentextractstructured.AiAgentExtractStructured; import com.box.sdkgen.schemas.aiagentlongtexttool.AiAgentLongTextTool; @@ -55,7 +55,7 @@ public class AiITest { @Test public void testAskAiSingleItem() { - AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen aiAgentConfig = + AiAgent aiAgentConfig = client .getAi() .getAiAgentDefaultConfig( @@ -110,7 +110,7 @@ public void testAskAiMultipleItems() { @Test public void testAiTextGenWithDialogueHistory() { FileFull fileToAsk = uploadNewFile(); - AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen aiAgentConfig = + AiAgent aiAgentConfig = client .getAi() .getAiAgentDefaultConfig( @@ -152,7 +152,7 @@ public void testAiTextGenWithDialogueHistory() { @Test public void testGettingAiAskAgentConfig() { - AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen aiAgentConfig = + AiAgent aiAgentConfig = client .getAi() .getAiAgentDefaultConfig( @@ -186,7 +186,7 @@ public void testGettingAiAskAgentConfig() { @Test public void testGettingAiTextGenAgentConfig() { - AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen aiAgentConfig = + AiAgent aiAgentConfig = client .getAi() .getAiAgentDefaultConfig( @@ -207,7 +207,7 @@ public void testGettingAiTextGenAgentConfig() { @Test public void testAiExtract() { - AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen aiAgentConfig = + AiAgent aiAgentConfig = client .getAi() .getAiAgentDefaultConfig( @@ -259,7 +259,7 @@ public void testAiExtract() { @Test public void testAiExtractStructuredWithFields() { - AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen aiAgentConfig = + AiAgent aiAgentConfig = client .getAi() .getAiAgentDefaultConfig( diff --git a/src/test/java/com/box/sdkgen/test/search/SearchITest.java b/src/test/java/com/box/sdkgen/test/search/SearchITest.java index dd482a237..19f15ef56 100644 --- a/src/test/java/com/box/sdkgen/test/search/SearchITest.java +++ b/src/test/java/com/box/sdkgen/test/search/SearchITest.java @@ -24,16 +24,16 @@ import com.box.sdkgen.schemas.filefull.FileFull; import com.box.sdkgen.schemas.files.Files; import com.box.sdkgen.schemas.metadatafieldfilterdaterange.MetadataFieldFilterDateRange; -import com.box.sdkgen.schemas.metadatafieldfilterdaterangeormetadatafieldfilterfloatrangeorarrayofstringornumberorstring.MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString; import com.box.sdkgen.schemas.metadatafieldfilterfloatrange.MetadataFieldFilterFloatRange; import com.box.sdkgen.schemas.metadatafilter.MetadataFilter; import com.box.sdkgen.schemas.metadatafilter.MetadataFilterScopeField; +import com.box.sdkgen.schemas.metadatafiltervalue.MetadataFilterValue; import com.box.sdkgen.schemas.metadatafull.MetadataFull; import com.box.sdkgen.schemas.metadataquery.MetadataQuery; import com.box.sdkgen.schemas.metadataqueryresults.MetadataQueryResults; import com.box.sdkgen.schemas.metadatatemplate.MetadataTemplate; import com.box.sdkgen.schemas.searchresults.SearchResults; -import com.box.sdkgen.schemas.searchresultsorsearchresultswithsharedlinks.SearchResultsOrSearchResultsWithSharedLinks; +import com.box.sdkgen.schemas.searchresultsresponse.SearchResultsResponse; import com.box.sdkgen.schemas.searchresultswithsharedlinks.SearchResultsWithSharedLinks; import java.util.Arrays; import java.util.Map; @@ -210,35 +210,25 @@ public void testMetadataFilters() { entryOf( "multiSelectField", Arrays.asList("multiSelectValue1", "multiSelectValue2")))); - Map< - String, - MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString> - searchFilters = - mapOf( - entryOf( - "stringField", - new MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( - "stringValue")), - entryOf( - "dateField", - new MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( - new MetadataFieldFilterDateRange.Builder() - .lt(dateTimeFromString("2035-01-01T00:00:00Z")) - .gt(dateTimeFromString("2035-01-03T00:00:00Z")) - .build())), - entryOf( - "floatField", - new MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( - new MetadataFieldFilterFloatRange.Builder().lt(9.5).gt(10.5).build())), - entryOf( - "enumField", - new MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( - "enumValue2")), - entryOf( - "multiSelectField", - new MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString( - Arrays.asList("multiSelectValue1", "multiSelectValue2")))); - SearchResultsOrSearchResultsWithSharedLinks query = + Map searchFilters = + mapOf( + entryOf("stringField", new MetadataFilterValue("stringValue")), + entryOf( + "dateField", + new MetadataFilterValue( + new MetadataFieldFilterDateRange.Builder() + .lt(dateTimeFromString("2035-01-01T00:00:00Z")) + .gt(dateTimeFromString("2035-01-03T00:00:00Z")) + .build())), + entryOf( + "floatField", + new MetadataFilterValue( + new MetadataFieldFilterFloatRange.Builder().lt(9.5).gt(10.5).build())), + entryOf("enumField", new MetadataFilterValue("enumValue2")), + entryOf( + "multiSelectField", + new MetadataFilterValue(Arrays.asList("multiSelectValue1", "multiSelectValue2")))); + SearchResultsResponse query = client .getSearch() .searchForContent( @@ -263,7 +253,7 @@ public void testMetadataFilters() { @Test public void testGetSearch() { String keyword = "test"; - SearchResultsOrSearchResultsWithSharedLinks search = + SearchResultsResponse search = client .getSearch() .searchForContent( @@ -275,7 +265,7 @@ public void testGetSearch() { assert convertToString(search.getType()).equals("search_results_items"); SearchResults searchResults = search.getSearchResults(); assert searchResults.getEntries().size() >= 0; - SearchResultsOrSearchResultsWithSharedLinks searchWithSharedLink = + SearchResultsResponse searchWithSharedLink = client .getSearch() .searchForContent( diff --git a/src/test/java/com/box/sdkgen/test/skills/SkillsITest.java b/src/test/java/com/box/sdkgen/test/skills/SkillsITest.java index decb27e3d..8725599ae 100644 --- a/src/test/java/com/box/sdkgen/test/skills/SkillsITest.java +++ b/src/test/java/com/box/sdkgen/test/skills/SkillsITest.java @@ -18,7 +18,7 @@ import com.box.sdkgen.schemas.keywordskillcard.KeywordSkillCardSkillField; import com.box.sdkgen.schemas.keywordskillcard.KeywordSkillCardSkillTypeField; import com.box.sdkgen.schemas.keywordskillcard.KeywordSkillCardTypeField; -import com.box.sdkgen.schemas.keywordskillcardorstatusskillcardortimelineskillcardortranscriptskillcard.KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard; +import com.box.sdkgen.schemas.skillcard.SkillCard; import com.box.sdkgen.schemas.skillcardsmetadata.SkillCardsMetadata; import java.util.Arrays; import java.util.List; @@ -50,10 +50,7 @@ public void testSkillsCardsCrud() { .code("license-plates") .build()) .build(); - List cardsToCreate = - Arrays.asList( - new KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard( - cardToCreate)); + List cardsToCreate = Arrays.asList(new SkillCard(cardToCreate)); SkillCardsMetadata skillCardsMetadata = client .getSkills() From 4188e3fcf9cfe186beb850415910210aa89cb7bf Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 19 Aug 2025 12:21:53 +0200 Subject: [PATCH 008/148] feat: Support external user deletion API --- .codegen.json | 2 +- docs/README.md | 1 + docs/externalusers.md | 32 ++++++ .../java/com/box/sdkgen/client/BoxClient.java | 17 +++ ...rnalUserSubmitDeleteJobV2025R0Headers.java | 63 +++++++++++ .../externalusers/ExternalUsersManager.java | 101 +++++++++++++++++ .../ExternalUserDeletionResultV2025R0.java | 105 ++++++++++++++++++ ...nalUsersSubmitDeleteJobRequestV2025R0.java | 52 +++++++++ ...alUsersSubmitDeleteJobResponseV2025R0.java | 47 ++++++++ .../UserReferenceV2025R0.java | 93 ++++++++++++++++ .../UserReferenceV2025R0TypeField.java | 62 +++++++++++ 11 files changed, 574 insertions(+), 1 deletion(-) create mode 100644 docs/externalusers.md create mode 100644 src/main/java/com/box/sdkgen/managers/externalusers/CreateExternalUserSubmitDeleteJobV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/externalusers/ExternalUsersManager.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/externaluserdeletionresultv2025r0/ExternalUserDeletionResultV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/externaluserssubmitdeletejobrequestv2025r0/ExternalUsersSubmitDeleteJobRequestV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/externaluserssubmitdeletejobresponsev2025r0/ExternalUsersSubmitDeleteJobResponseV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/userreferencev2025r0/UserReferenceV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/userreferencev2025r0/UserReferenceV2025R0TypeField.java diff --git a/.codegen.json b/.codegen.json index 981a1f4b5..8082af814 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "51be103", "specHash": "99e14a6", "version": "0.1.0" } +{ "engineHash": "54ce521", "specHash": "623b811", "version": "0.1.0" } diff --git a/docs/README.md b/docs/README.md index 6dce8ccfc..f33f1ff46 100644 --- a/docs/README.md +++ b/docs/README.md @@ -23,6 +23,7 @@ the SDK are available by topic: * [Downloads](downloads.md) * [Emailaliases](emailaliases.md) * [Events](events.md) +* [Externalusers](externalusers.md) * [Fileclassifications](fileclassifications.md) * [Filemetadata](filemetadata.md) * [Filerequests](filerequests.md) diff --git a/docs/externalusers.md b/docs/externalusers.md new file mode 100644 index 000000000..a8d154148 --- /dev/null +++ b/docs/externalusers.md @@ -0,0 +1,32 @@ +# ExternalUsersManager + + +- [Submit job to delete external users](#submit-job-to-delete-external-users) + +## Submit job to delete external users + +Delete external users from current user enterprise. This will remove each +external user from all invited collaborations within the current enterprise. + +This operation is performed by calling function `createExternalUserSubmitDeleteJobV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/post-external-users-submit-delete-job/). + +*Currently we don't have an example for calling `createExternalUserSubmitDeleteJobV2025R0` in integration tests* + +### Arguments + +- requestBody `ExternalUsersSubmitDeleteJobRequestV2025R0` + - Request body of createExternalUserSubmitDeleteJobV2025R0 method +- headers `CreateExternalUserSubmitDeleteJobV2025R0Headers` + - Headers of createExternalUserSubmitDeleteJobV2025R0 method + + +### Returns + +This function returns a value of type `ExternalUsersSubmitDeleteJobResponseV2025R0`. + + + + diff --git a/src/main/java/com/box/sdkgen/client/BoxClient.java b/src/main/java/com/box/sdkgen/client/BoxClient.java index 61e525fa4..491f7e319 100644 --- a/src/main/java/com/box/sdkgen/client/BoxClient.java +++ b/src/main/java/com/box/sdkgen/client/BoxClient.java @@ -21,6 +21,7 @@ import com.box.sdkgen.managers.downloads.DownloadsManager; import com.box.sdkgen.managers.emailaliases.EmailAliasesManager; import com.box.sdkgen.managers.events.EventsManager; +import com.box.sdkgen.managers.externalusers.ExternalUsersManager; import com.box.sdkgen.managers.fileclassifications.FileClassificationsManager; import com.box.sdkgen.managers.filemetadata.FileMetadataManager; import com.box.sdkgen.managers.filerequests.FileRequestsManager; @@ -256,6 +257,8 @@ public class BoxClient { public final ArchivesManager archives; + public final ExternalUsersManager externalUsers; + public BoxClient(Authentication auth) { this.auth = auth; this.networkSession = new NetworkSession.Builder().baseUrls(new BaseUrls()).build(); @@ -584,6 +587,11 @@ public BoxClient(Authentication auth) { .build(); this.archives = new ArchivesManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.externalUsers = + new ExternalUsersManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); } protected BoxClient(Builder builder) { @@ -914,6 +922,11 @@ protected BoxClient(Builder builder) { .build(); this.archives = new ArchivesManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.externalUsers = + new ExternalUsersManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); } public FetchResponse makeRequest(FetchOptions fetchOptions) { @@ -1299,6 +1312,10 @@ public ArchivesManager getArchives() { return archives; } + public ExternalUsersManager getExternalUsers() { + return externalUsers; + } + public static class Builder { protected final Authentication auth; diff --git a/src/main/java/com/box/sdkgen/managers/externalusers/CreateExternalUserSubmitDeleteJobV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/externalusers/CreateExternalUserSubmitDeleteJobV2025R0Headers.java new file mode 100644 index 000000000..ebf269cf4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/externalusers/CreateExternalUserSubmitDeleteJobV2025R0Headers.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.externalusers; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class CreateExternalUserSubmitDeleteJobV2025R0Headers { + + public EnumWrapper boxVersion; + + public Map extraHeaders; + + public CreateExternalUserSubmitDeleteJobV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected CreateExternalUserSubmitDeleteJobV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateExternalUserSubmitDeleteJobV2025R0Headers build() { + return new CreateExternalUserSubmitDeleteJobV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/externalusers/ExternalUsersManager.java b/src/main/java/com/box/sdkgen/managers/externalusers/ExternalUsersManager.java new file mode 100644 index 000000000..9889880c5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/externalusers/ExternalUsersManager.java @@ -0,0 +1,101 @@ +package com.box.sdkgen.managers.externalusers; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.v2025r0.externaluserssubmitdeletejobrequestv2025r0.ExternalUsersSubmitDeleteJobRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.externaluserssubmitdeletejobresponsev2025r0.ExternalUsersSubmitDeleteJobResponseV2025R0; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class ExternalUsersManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public ExternalUsersManager() { + this.networkSession = new NetworkSession(); + } + + protected ExternalUsersManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + public ExternalUsersSubmitDeleteJobResponseV2025R0 createExternalUserSubmitDeleteJobV2025R0( + ExternalUsersSubmitDeleteJobRequestV2025R0 requestBody) { + return createExternalUserSubmitDeleteJobV2025R0( + requestBody, new CreateExternalUserSubmitDeleteJobV2025R0Headers()); + } + + public ExternalUsersSubmitDeleteJobResponseV2025R0 createExternalUserSubmitDeleteJobV2025R0( + ExternalUsersSubmitDeleteJobRequestV2025R0 requestBody, + CreateExternalUserSubmitDeleteJobV2025R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/external_users/submit_delete_job"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize( + response.getData(), ExternalUsersSubmitDeleteJobResponseV2025R0.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public ExternalUsersManager build() { + return new ExternalUsersManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/externaluserdeletionresultv2025r0/ExternalUserDeletionResultV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/externaluserdeletionresultv2025r0/ExternalUserDeletionResultV2025R0.java new file mode 100644 index 000000000..4d3d37651 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/externaluserdeletionresultv2025r0/ExternalUserDeletionResultV2025R0.java @@ -0,0 +1,105 @@ +package com.box.sdkgen.schemas.v2025r0.externaluserdeletionresultv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ExternalUserDeletionResultV2025R0 extends SerializableObject { + + @JsonProperty("user_id") + protected final String userId; + + protected final long status; + + protected String detail; + + public ExternalUserDeletionResultV2025R0( + @JsonProperty("user_id") String userId, @JsonProperty("status") long status) { + super(); + this.userId = userId; + this.status = status; + } + + protected ExternalUserDeletionResultV2025R0(Builder builder) { + super(); + this.userId = builder.userId; + this.status = builder.status; + this.detail = builder.detail; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getUserId() { + return userId; + } + + public long getStatus() { + return status; + } + + public String getDetail() { + return detail; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ExternalUserDeletionResultV2025R0 casted = (ExternalUserDeletionResultV2025R0) o; + return Objects.equals(userId, casted.userId) + && Objects.equals(status, casted.status) + && Objects.equals(detail, casted.detail); + } + + @Override + public int hashCode() { + return Objects.hash(userId, status, detail); + } + + @Override + public String toString() { + return "ExternalUserDeletionResultV2025R0{" + + "userId='" + + userId + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "detail='" + + detail + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String userId; + + protected final long status; + + protected String detail; + + public Builder(String userId, long status) { + super(); + this.userId = userId; + this.status = status; + } + + public Builder detail(String detail) { + this.detail = detail; + return this; + } + + public ExternalUserDeletionResultV2025R0 build() { + return new ExternalUserDeletionResultV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/externaluserssubmitdeletejobrequestv2025r0/ExternalUsersSubmitDeleteJobRequestV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/externaluserssubmitdeletejobrequestv2025r0/ExternalUsersSubmitDeleteJobRequestV2025R0.java new file mode 100644 index 000000000..e491e4a81 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/externaluserssubmitdeletejobrequestv2025r0/ExternalUsersSubmitDeleteJobRequestV2025R0.java @@ -0,0 +1,52 @@ +package com.box.sdkgen.schemas.v2025r0.externaluserssubmitdeletejobrequestv2025r0; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.userreferencev2025r0.UserReferenceV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ExternalUsersSubmitDeleteJobRequestV2025R0 extends SerializableObject { + + @JsonProperty("external_users") + protected final List externalUsers; + + public ExternalUsersSubmitDeleteJobRequestV2025R0( + @JsonProperty("external_users") List externalUsers) { + super(); + this.externalUsers = externalUsers; + } + + public List getExternalUsers() { + return externalUsers; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ExternalUsersSubmitDeleteJobRequestV2025R0 casted = + (ExternalUsersSubmitDeleteJobRequestV2025R0) o; + return Objects.equals(externalUsers, casted.externalUsers); + } + + @Override + public int hashCode() { + return Objects.hash(externalUsers); + } + + @Override + public String toString() { + return "ExternalUsersSubmitDeleteJobRequestV2025R0{" + + "externalUsers='" + + externalUsers + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/externaluserssubmitdeletejobresponsev2025r0/ExternalUsersSubmitDeleteJobResponseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/externaluserssubmitdeletejobresponsev2025r0/ExternalUsersSubmitDeleteJobResponseV2025R0.java new file mode 100644 index 000000000..2f60dc80a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/externaluserssubmitdeletejobresponsev2025r0/ExternalUsersSubmitDeleteJobResponseV2025R0.java @@ -0,0 +1,47 @@ +package com.box.sdkgen.schemas.v2025r0.externaluserssubmitdeletejobresponsev2025r0; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.externaluserdeletionresultv2025r0.ExternalUserDeletionResultV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ExternalUsersSubmitDeleteJobResponseV2025R0 extends SerializableObject { + + protected final List entries; + + public ExternalUsersSubmitDeleteJobResponseV2025R0( + @JsonProperty("entries") List entries) { + super(); + this.entries = entries; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ExternalUsersSubmitDeleteJobResponseV2025R0 casted = + (ExternalUsersSubmitDeleteJobResponseV2025R0) o; + return Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(entries); + } + + @Override + public String toString() { + return "ExternalUsersSubmitDeleteJobResponseV2025R0{" + "entries='" + entries + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/userreferencev2025r0/UserReferenceV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/userreferencev2025r0/UserReferenceV2025R0.java new file mode 100644 index 000000000..f47964532 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/userreferencev2025r0/UserReferenceV2025R0.java @@ -0,0 +1,93 @@ +package com.box.sdkgen.schemas.v2025r0.userreferencev2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UserReferenceV2025R0 extends SerializableObject { + + @JsonDeserialize( + using = UserReferenceV2025R0TypeField.UserReferenceV2025R0TypeFieldDeserializer.class) + @JsonSerialize( + using = UserReferenceV2025R0TypeField.UserReferenceV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + protected final String id; + + public UserReferenceV2025R0(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = new EnumWrapper(UserReferenceV2025R0TypeField.USER); + } + + protected UserReferenceV2025R0(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserReferenceV2025R0 casted = (UserReferenceV2025R0) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "UserReferenceV2025R0{" + "type='" + type + '\'' + ", " + "id='" + id + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + this.type = + new EnumWrapper(UserReferenceV2025R0TypeField.USER); + } + + public Builder type(UserReferenceV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public UserReferenceV2025R0 build() { + return new UserReferenceV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/userreferencev2025r0/UserReferenceV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/userreferencev2025r0/UserReferenceV2025R0TypeField.java new file mode 100644 index 000000000..e930f325a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/userreferencev2025r0/UserReferenceV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.userreferencev2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UserReferenceV2025R0TypeField implements Valuable { + USER("user"); + + private final String value; + + UserReferenceV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UserReferenceV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public UserReferenceV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UserReferenceV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UserReferenceV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public UserReferenceV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} From 7fd434d6854f5805af305a00dd18827233b40465 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 19 Aug 2025 14:54:09 +0200 Subject: [PATCH 009/148] fix: Adjust Item union (box/box-codegen#790) (#1371) --- .codegen.json | 2 +- .../com/box/sdkgen/schemas/item/Item.java | 24 +++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.codegen.json b/.codegen.json index 8082af814..dc0cfebad 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "54ce521", "specHash": "623b811", "version": "0.1.0" } +{ "engineHash": "1a81072", "specHash": "623b811", "version": "0.1.0" } diff --git a/src/main/java/com/box/sdkgen/schemas/item/Item.java b/src/main/java/com/box/sdkgen/schemas/item/Item.java index fe3f20a82..7cc3a7e55 100644 --- a/src/main/java/com/box/sdkgen/schemas/item/Item.java +++ b/src/main/java/com/box/sdkgen/schemas/item/Item.java @@ -2,7 +2,7 @@ import com.box.sdkgen.internal.OneOfThree; import com.box.sdkgen.schemas.filefull.FileFull; -import com.box.sdkgen.schemas.foldermini.FolderMini; +import com.box.sdkgen.schemas.folderfull.FolderFull; import com.box.sdkgen.schemas.weblink.WebLink; import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.JsonManager; @@ -17,7 +17,7 @@ @JsonDeserialize(using = Item.ItemDeserializer.class) @JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) -public class Item extends OneOfThree { +public class Item extends OneOfThree { protected final String sequenceId; @@ -38,13 +38,13 @@ public Item(FileFull fileFull) { this.type = EnumWrapper.convertToString(fileFull.getType()); } - public Item(FolderMini folderMini) { - super(null, folderMini, null); - this.sequenceId = folderMini.getSequenceId(); - this.name = folderMini.getName(); - this.id = folderMini.getId(); - this.etag = folderMini.getEtag(); - this.type = EnumWrapper.convertToString(folderMini.getType()); + public Item(FolderFull folderFull) { + super(null, folderFull, null); + this.sequenceId = folderFull.getSequenceId(); + this.name = folderFull.getName(); + this.id = folderFull.getId(); + this.etag = folderFull.getEtag(); + this.type = EnumWrapper.convertToString(folderFull.getType()); } public Item(WebLink webLink) { @@ -64,11 +64,11 @@ public FileFull getFileFull() { return value0; } - public boolean isFolderMini() { + public boolean isFolderFull() { return value1 != null; } - public FolderMini getFolderMini() { + public FolderFull getFolderFull() { return value1; } @@ -115,7 +115,7 @@ public Item deserialize(JsonParser jp, DeserializationContext ctxt) throws IOExc case "file": return new Item(JsonManager.deserialize(node, FileFull.class)); case "folder": - return new Item(JsonManager.deserialize(node, FolderMini.class)); + return new Item(JsonManager.deserialize(node, FolderFull.class)); case "web_link": return new Item(JsonManager.deserialize(node, WebLink.class)); } From 4c718e298a98788cae156fe192725d427f149ba2 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 19 Aug 2025 15:35:20 +0200 Subject: [PATCH 010/148] fix: Rename external user deletion method (box/box-codegen#796) (#1374) --- .codegen.json | 2 +- docs/externalusers.md | 10 +++++----- .../managers/externalusers/ExternalUsersManager.java | 10 +++++----- ... SubmitJobToDeleteExternalUsersV2025R0Headers.java} | 10 +++++----- 4 files changed, 16 insertions(+), 16 deletions(-) rename src/main/java/com/box/sdkgen/managers/externalusers/{CreateExternalUserSubmitDeleteJobV2025R0Headers.java => SubmitJobToDeleteExternalUsersV2025R0Headers.java} (81%) diff --git a/.codegen.json b/.codegen.json index dc0cfebad..600dbf1fe 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "1a81072", "specHash": "623b811", "version": "0.1.0" } +{ "engineHash": "02b749b", "specHash": "623b811", "version": "0.1.0" } diff --git a/docs/externalusers.md b/docs/externalusers.md index a8d154148..5223d80d0 100644 --- a/docs/externalusers.md +++ b/docs/externalusers.md @@ -8,19 +8,19 @@ Delete external users from current user enterprise. This will remove each external user from all invited collaborations within the current enterprise. -This operation is performed by calling function `createExternalUserSubmitDeleteJobV2025R0`. +This operation is performed by calling function `submitJobToDeleteExternalUsersV2025R0`. See the endpoint docs at [API Reference](https://developer.box.com/reference/v2025.0/post-external-users-submit-delete-job/). -*Currently we don't have an example for calling `createExternalUserSubmitDeleteJobV2025R0` in integration tests* +*Currently we don't have an example for calling `submitJobToDeleteExternalUsersV2025R0` in integration tests* ### Arguments - requestBody `ExternalUsersSubmitDeleteJobRequestV2025R0` - - Request body of createExternalUserSubmitDeleteJobV2025R0 method -- headers `CreateExternalUserSubmitDeleteJobV2025R0Headers` - - Headers of createExternalUserSubmitDeleteJobV2025R0 method + - Request body of submitJobToDeleteExternalUsersV2025R0 method +- headers `SubmitJobToDeleteExternalUsersV2025R0Headers` + - Headers of submitJobToDeleteExternalUsersV2025R0 method ### Returns diff --git a/src/main/java/com/box/sdkgen/managers/externalusers/ExternalUsersManager.java b/src/main/java/com/box/sdkgen/managers/externalusers/ExternalUsersManager.java index 9889880c5..d56dc3422 100644 --- a/src/main/java/com/box/sdkgen/managers/externalusers/ExternalUsersManager.java +++ b/src/main/java/com/box/sdkgen/managers/externalusers/ExternalUsersManager.java @@ -31,15 +31,15 @@ protected ExternalUsersManager(Builder builder) { this.networkSession = builder.networkSession; } - public ExternalUsersSubmitDeleteJobResponseV2025R0 createExternalUserSubmitDeleteJobV2025R0( + public ExternalUsersSubmitDeleteJobResponseV2025R0 submitJobToDeleteExternalUsersV2025R0( ExternalUsersSubmitDeleteJobRequestV2025R0 requestBody) { - return createExternalUserSubmitDeleteJobV2025R0( - requestBody, new CreateExternalUserSubmitDeleteJobV2025R0Headers()); + return submitJobToDeleteExternalUsersV2025R0( + requestBody, new SubmitJobToDeleteExternalUsersV2025R0Headers()); } - public ExternalUsersSubmitDeleteJobResponseV2025R0 createExternalUserSubmitDeleteJobV2025R0( + public ExternalUsersSubmitDeleteJobResponseV2025R0 submitJobToDeleteExternalUsersV2025R0( ExternalUsersSubmitDeleteJobRequestV2025R0 requestBody, - CreateExternalUserSubmitDeleteJobV2025R0Headers headers) { + SubmitJobToDeleteExternalUsersV2025R0Headers headers) { Map headersMap = prepareParams( mergeMaps( diff --git a/src/main/java/com/box/sdkgen/managers/externalusers/CreateExternalUserSubmitDeleteJobV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/externalusers/SubmitJobToDeleteExternalUsersV2025R0Headers.java similarity index 81% rename from src/main/java/com/box/sdkgen/managers/externalusers/CreateExternalUserSubmitDeleteJobV2025R0Headers.java rename to src/main/java/com/box/sdkgen/managers/externalusers/SubmitJobToDeleteExternalUsersV2025R0Headers.java index ebf269cf4..c475dac4e 100644 --- a/src/main/java/com/box/sdkgen/managers/externalusers/CreateExternalUserSubmitDeleteJobV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/externalusers/SubmitJobToDeleteExternalUsersV2025R0Headers.java @@ -6,18 +6,18 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import java.util.Map; -public class CreateExternalUserSubmitDeleteJobV2025R0Headers { +public class SubmitJobToDeleteExternalUsersV2025R0Headers { public EnumWrapper boxVersion; public Map extraHeaders; - public CreateExternalUserSubmitDeleteJobV2025R0Headers() { + public SubmitJobToDeleteExternalUsersV2025R0Headers() { this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); this.extraHeaders = mapOf(); } - protected CreateExternalUserSubmitDeleteJobV2025R0Headers(Builder builder) { + protected SubmitJobToDeleteExternalUsersV2025R0Headers(Builder builder) { this.boxVersion = builder.boxVersion; this.extraHeaders = builder.extraHeaders; } @@ -56,8 +56,8 @@ public Builder extraHeaders(Map extraHeaders) { return this; } - public CreateExternalUserSubmitDeleteJobV2025R0Headers build() { - return new CreateExternalUserSubmitDeleteJobV2025R0Headers(this); + public SubmitJobToDeleteExternalUsersV2025R0Headers build() { + return new SubmitJobToDeleteExternalUsersV2025R0Headers(this); } } } From 427136d090772a402c30c7b04631424cf1a45d41 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 19 Aug 2025 16:08:40 +0200 Subject: [PATCH 011/148] fix: Fix managing network errors (box/box-codegen#798) (#1377) --- .codegen.json | 2 +- .../com/box/sdkgen/box/errors/BoxSDKError.java | 3 +++ .../boxnetworkclient/BoxNetworkClient.java | 14 ++++---------- .../box/sdkgen/serialization/json/JsonManager.java | 2 +- 4 files changed, 9 insertions(+), 12 deletions(-) diff --git a/.codegen.json b/.codegen.json index 600dbf1fe..8bcb20e9b 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "02b749b", "specHash": "623b811", "version": "0.1.0" } +{ "engineHash": "d090a8d", "specHash": "623b811", "version": "0.1.0" } diff --git a/src/main/java/com/box/sdkgen/box/errors/BoxSDKError.java b/src/main/java/com/box/sdkgen/box/errors/BoxSDKError.java index 9e05191d1..2144e2458 100644 --- a/src/main/java/com/box/sdkgen/box/errors/BoxSDKError.java +++ b/src/main/java/com/box/sdkgen/box/errors/BoxSDKError.java @@ -11,17 +11,20 @@ public class BoxSDKError extends RuntimeException { public String name; public BoxSDKError(String message) { + super(message); this.message = message; this.name = "BoxSDKError"; } public BoxSDKError(String message, Exception error) { + super(message, error); this.message = message; this.error = error; this.name = "BoxSDKError"; } protected BoxSDKError(Builder builder) { + super(builder.message, builder.error); this.message = builder.message; this.timestamp = builder.timestamp; this.error = builder.error; diff --git a/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java b/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java index 07cc4d359..2fd150064 100644 --- a/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java +++ b/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java @@ -77,7 +77,7 @@ public FetchResponse fetch(FetchOptions options) { boolean authenticationNeeded = false; Request request; - FetchResponse fetchResponse = null; + FetchResponse fetchResponse = new FetchResponse.Builder(0, new TreeMap<>()).build(); Exception exceptionThrown = null; int attemptNumber = 1; @@ -140,9 +140,6 @@ public FetchResponse fetch(FetchOptions options) { if (response != null) { response.close(); } - - fetchResponse = - new FetchResponse.Builder(0, new TreeMap<>(String.CASE_INSENSITIVE_ORDER)).build(); } shouldRetry = @@ -167,8 +164,7 @@ public FetchResponse fetch(FetchOptions options) { continue; } - if (fetchResponse != null - && fetchResponse.getStatus() >= 300 + if (fetchResponse.getStatus() >= 300 && fetchResponse.getStatus() < 400 && fetchOptions.followRedirects) { if (!fetchResponse.getHeaders().containsKey("Location")) { @@ -189,9 +185,7 @@ public FetchResponse fetch(FetchOptions options) { .build()); } - if (fetchResponse != null - && fetchResponse.getStatus() >= 200 - && fetchResponse.getStatus() < 400) { + if (fetchResponse.getStatus() >= 200 && fetchResponse.getStatus() < 400) { return fetchResponse; } @@ -313,7 +307,7 @@ private static void throwOnUnsuccessfulResponse( String rawResponseBody, Exception exceptionThrown, DataSanitizer dataSanitizer) { - if (fetchResponse == null) { + if (fetchResponse.getStatus() == 0 && exceptionThrown != null) { throw new BoxSDKError(exceptionThrown.getMessage(), exceptionThrown); } try { diff --git a/src/main/java/com/box/sdkgen/serialization/json/JsonManager.java b/src/main/java/com/box/sdkgen/serialization/json/JsonManager.java index cc682ab53..3c9c32655 100644 --- a/src/main/java/com/box/sdkgen/serialization/json/JsonManager.java +++ b/src/main/java/com/box/sdkgen/serialization/json/JsonManager.java @@ -93,7 +93,7 @@ public static String sanitizedValue() { } public static JsonNode sanitizeSerializedData(JsonNode sd, Map keysToSanitize) { - if (!sd.isObject()) { + if (sd == null || !sd.isObject()) { return sd; } Map sanitizedDictionary = new HashMap<>(); From 5cc57bcca92d8bab0b6d883e2b98efa916bf8f35 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 20 Aug 2025 15:23:38 +0200 Subject: [PATCH 012/148] chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec (#1379) --- .codegen.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index 8bcb20e9b..dac9cdebc 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "d090a8d", "specHash": "623b811", "version": "0.1.0" } +{ "engineHash": "f036f69", "specHash": "623b811", "version": "0.1.0" } From 038b15e265932860e8898639c06c4c048b0fc262 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Fri, 22 Aug 2025 11:26:16 +0200 Subject: [PATCH 013/148] chore: Use `JavaVersion.toVersion` for compatibility settings (box/box-codegen#803) (#1380) --- .codegen.json | 2 +- build.gradle | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index dac9cdebc..3d750e40e 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "f036f69", "specHash": "623b811", "version": "0.1.0" } +{ "engineHash": "46ac366", "specHash": "623b811", "version": "0.1.0" } diff --git a/build.gradle b/build.gradle index d0b273dd8..68327cd3b 100644 --- a/build.gradle +++ b/build.gradle @@ -12,8 +12,8 @@ group = "com.box" archivesBaseName = "box-java-sdk-gen" version = "0.1.0" java { - sourceCompatibility = "${libraryJavaVersion}" - targetCompatibility = "${libraryJavaVersion}" + sourceCompatibility = JavaVersion.toVersion(libraryJavaVersion) + targetCompatibility = JavaVersion.toVersion(libraryJavaVersion) withSourcesJar() withJavadocJar() } From cbb4b4ba8a545d4221be14f462fab159b146b410 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Fri, 22 Aug 2025 12:32:03 +0200 Subject: [PATCH 014/148] chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] (#1382) --- .codegen.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index 3d750e40e..9778b69e4 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "46ac366", "specHash": "623b811", "version": "0.1.0" } +{ "engineHash": "1d7a929", "specHash": "623b811", "version": "0.1.0" } From e5c2675028a4ad3a824f484334c35846a6e503e3 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Fri, 22 Aug 2025 16:43:12 +0200 Subject: [PATCH 015/148] chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] (#1385) --- .codegen.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index 9778b69e4..e116f021f 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "1d7a929", "specHash": "623b811", "version": "0.1.0" } +{ "engineHash": "3fbcb0c", "specHash": "ec8720b", "version": "0.1.0" } From f675d3eb67c537f02e106ed8e4e0652d833a683f Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Fri, 22 Aug 2025 17:26:32 +0200 Subject: [PATCH 016/148] chore: Adjust `*.gradle` files for `box-java-sdk`(box/box-codegen#804) (#1386) --- .codegen.json | 2 +- build.gradle | 18 +++++++++--------- settings.gradle | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.codegen.json b/.codegen.json index e116f021f..4ba6aa255 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "3fbcb0c", "specHash": "ec8720b", "version": "0.1.0" } +{ "engineHash": "3ba449c", "specHash": "ec8720b", "version": "0.1.0" } diff --git a/build.gradle b/build.gradle index 68327cd3b..f388dfea3 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ plugins { id "org.gradle.test-retry" version "${testRetryVersion}" } group = "com.box" -archivesBaseName = "box-java-sdk-gen" +archivesBaseName = "box-java-sdk" version = "0.1.0" java { sourceCompatibility = JavaVersion.toVersion(libraryJavaVersion) @@ -63,13 +63,13 @@ test { } publishing { publications { - boxJavaSdkGen(MavenPublication) { + boxJavaSdk(MavenPublication) { from components.java pom { artifactId = project.getArchivesBaseName() - name = "Box Java SDK Gen" - description = "Official Box Java Generated SDK." - url = "https://opensource.box.com/box-java-sdk-gen/" + name = "Box Java SDK" + description = "Official Box Java SDK." + url = "https://opensource.box.com/box-java-sdk/" packaging = "jar" licenses { license { @@ -89,9 +89,9 @@ publishing { } scm { - connection = "scm:git:https://github.com/box/box-java-sdk-gen.git" - developerConnection = "scm:git:https://github.com/box/box-java-sdk-gen.git" - url = "https://github.com/box/box-java-sdk-gen" + connection = "scm:git:https://github.com/box/box-java-sdk.git" + developerConnection = "scm:git:https://github.com/box/box-java-sdk.git" + url = "https://github.com/box/box-java-sdk" } } @@ -114,7 +114,7 @@ signing { // org.bouncycastle:bc-fips:1.0.2.1 libray preset in our Docker machines which is // not compatible with Gradle implementation useGpgCmd() - sign publishing.publications.boxJavaSdkGen + sign publishing.publications.boxJavaSdk } def centralUsername = project.findProperty("centralUsername") def centralPassword = project.findProperty("centralPassword") diff --git a/settings.gradle b/settings.gradle index 993d21680..264c73a60 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1 @@ -rootProject.name = "box-java-sdk-gen" +rootProject.name = "box-java-sdk" From c089494eb3c7505fb79ae1359d6a9add67848e95 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 27 Aug 2025 16:41:00 +0200 Subject: [PATCH 017/148] test: remove hub tests temporarily (box/box-codegen#812) (#1391) * test: ExternalUsers API integration tests (box/box-codegen#799) * chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] * chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] * chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] * test: remove hub tests temporarily (box/box-codegen#812) --- .codegen.json | 2 +- .github/workflows/build.yml | 1 + README.md | 2 +- docs/externalusers.md | 5 +- .../externalusers/ExternalUsersITest.java | 53 +++++++++ .../HubCollaborationsITest.java | 94 ---------------- .../sdkgen/test/hubitems/HubItemsITest.java | 92 --------------- .../com/box/sdkgen/test/hubs/HubsITest.java | 105 ------------------ 8 files changed, 60 insertions(+), 294 deletions(-) create mode 100644 src/test/java/com/box/sdkgen/test/externalusers/ExternalUsersITest.java delete mode 100644 src/test/java/com/box/sdkgen/test/hubcollaborations/HubCollaborationsITest.java delete mode 100644 src/test/java/com/box/sdkgen/test/hubitems/HubItemsITest.java delete mode 100644 src/test/java/com/box/sdkgen/test/hubs/HubsITest.java diff --git a/.codegen.json b/.codegen.json index 4ba6aa255..1d50897d2 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "3ba449c", "specHash": "ec8720b", "version": "0.1.0" } +{ "engineHash": "dd00f3f", "specHash": "ec8720b", "version": "0.1.0" } diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2cfcb2ba9..478ff07d4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -34,6 +34,7 @@ jobs: ENTERPRISE_ID: ${{ secrets.ENTERPRISE_ID }} BOX_FILE_REQUEST_ID: ${{ secrets.BOX_FILE_REQUEST_ID }} BOX_EXTERNAL_USER_EMAIL: ${{ secrets.BOX_EXTERNAL_USER_EMAIL }} + BOX_EXTERNAL_USER_ID: ${{ secrets.BOX_EXTERNAL_USER_ID }} APP_ITEM_ASSOCIATION_FILE_ID: ${{ secrets.APP_ITEM_ASSOCIATION_FILE_ID }} APP_ITEM_ASSOCIATION_FOLDER_ID: ${{ secrets.APP_ITEM_ASSOCIATION_FOLDER_ID }} WORKFLOW_FOLDER_ID: ${{ secrets.WORKFLOW_FOLDER_ID }} diff --git a/README.md b/README.md index 11a8f1524..af8e807a2 100644 --- a/README.md +++ b/README.md @@ -113,7 +113,7 @@ Now select `Authorization` and submit application to be reviewed by account admi download your app configuration settings as JSON. 2. Encode configuration file to Base64, e.g. using command: `base64 -i path_to_json_file` 3. Set environment variable: `JWT_CONFIG_BASE_64` with base64 encoded jwt configuration file -4. Set environment variable: `BOX_FILE_REQUEST_ID` with ID of file request already created in the user account, `BOX_EXTERNAL_USER_EMAIL` with email of free external user which not belongs to any enterprise. +4. Set environment variable: `BOX_FILE_REQUEST_ID` with ID of file request already created in the user account, `BOX_EXTERNAL_USER_EMAIL` with email of free external user which not belongs to any enterprise and `BOX_EXTERNAL_USER_ID` with its ID. 5. Set environment variable: `WORKFLOW_FOLDER_ID` with the ID of the Relay workflow that deletes the file that triggered the workflow. The workflow should have a manual start to be able to start it from the API. 6. Set environment variable: `APP_ITEM_ASSOCIATION_FILE_ID` to the ID of the file with associated app item and `APP_ITEM_ASSOCIATION_FOLDER_ID` to the ID of the folder with associated app item. 7. Set environment variable: `APP_ITEM_SHARED_LINK` to the shared link associated with app item. diff --git a/docs/externalusers.md b/docs/externalusers.md index 5223d80d0..295e94197 100644 --- a/docs/externalusers.md +++ b/docs/externalusers.md @@ -13,7 +13,10 @@ This operation is performed by calling function `submitJobToDeleteExternalUsersV See the endpoint docs at [API Reference](https://developer.box.com/reference/v2025.0/post-external-users-submit-delete-job/). -*Currently we don't have an example for calling `submitJobToDeleteExternalUsersV2025R0` in integration tests* + +``` +client.getExternalUsers().submitJobToDeleteExternalUsersV2025R0(new ExternalUsersSubmitDeleteJobRequestV2025R0(Arrays.asList(new UserReferenceV2025R0(getEnvVar("BOX_EXTERNAL_USER_ID"))))) +``` ### Arguments diff --git a/src/test/java/com/box/sdkgen/test/externalusers/ExternalUsersITest.java b/src/test/java/com/box/sdkgen/test/externalusers/ExternalUsersITest.java new file mode 100644 index 000000000..52f46cb8b --- /dev/null +++ b/src/test/java/com/box/sdkgen/test/externalusers/ExternalUsersITest.java @@ -0,0 +1,53 @@ +package com.box.sdkgen.test.externalusers; + +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; +import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBody; +import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBodyAccessibleByField; +import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBodyAccessibleByTypeField; +import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBodyItemField; +import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBodyItemTypeField; +import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBodyRoleField; +import com.box.sdkgen.schemas.collaboration.Collaboration; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.v2025r0.externaluserssubmitdeletejobrequestv2025r0.ExternalUsersSubmitDeleteJobRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.externaluserssubmitdeletejobresponsev2025r0.ExternalUsersSubmitDeleteJobResponseV2025R0; +import com.box.sdkgen.schemas.v2025r0.userreferencev2025r0.UserReferenceV2025R0; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class ExternalUsersITest { + + private static final BoxClient client = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); + + @Test + public void testSubmitJobToDeleteExternalUsers() { + FileFull file = uploadNewFile(); + Collaboration fileCollaboration = + client + .getUserCollaborations() + .createCollaboration( + new CreateCollaborationRequestBody( + new CreateCollaborationRequestBodyItemField.Builder() + .type(CreateCollaborationRequestBodyItemTypeField.FILE) + .id(file.getId()) + .build(), + new CreateCollaborationRequestBodyAccessibleByField.Builder( + CreateCollaborationRequestBodyAccessibleByTypeField.USER) + .id(getEnvVar("BOX_EXTERNAL_USER_ID")) + .build(), + CreateCollaborationRequestBodyRoleField.EDITOR)); + ExternalUsersSubmitDeleteJobResponseV2025R0 externalUsersJobDeleteResponse = + client + .getExternalUsers() + .submitJobToDeleteExternalUsersV2025R0( + new ExternalUsersSubmitDeleteJobRequestV2025R0( + Arrays.asList(new UserReferenceV2025R0(getEnvVar("BOX_EXTERNAL_USER_ID"))))); + assert externalUsersJobDeleteResponse.getEntries().size() == 1; + assert externalUsersJobDeleteResponse.getEntries().get(0).getStatus() == 202; + client.getFiles().deleteFileById(file.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/hubcollaborations/HubCollaborationsITest.java b/src/test/java/com/box/sdkgen/test/hubcollaborations/HubCollaborationsITest.java deleted file mode 100644 index 62d27e6b5..000000000 --- a/src/test/java/com/box/sdkgen/test/hubcollaborations/HubCollaborationsITest.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.box.sdkgen.test.hubcollaborations; - -import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; -import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; -import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; - -import com.box.sdkgen.client.BoxClient; -import com.box.sdkgen.managers.hubcollaborations.GetHubCollaborationsV2025R0QueryParams; -import com.box.sdkgen.managers.hubs.GetHubsV2025R0QueryParams; -import com.box.sdkgen.managers.hubs.GetHubsV2025R0QueryParamsDirectionField; -import com.box.sdkgen.managers.users.CreateUserRequestBody; -import com.box.sdkgen.schemas.userfull.UserFull; -import com.box.sdkgen.schemas.v2025r0.hubcollaborationcreaterequestv2025r0.HubCollaborationCreateRequestV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubcollaborationcreaterequestv2025r0.HubCollaborationCreateRequestV2025R0AccessibleByField; -import com.box.sdkgen.schemas.v2025r0.hubcollaborationcreaterequestv2025r0.HubCollaborationCreateRequestV2025R0HubField; -import com.box.sdkgen.schemas.v2025r0.hubcollaborationsv2025r0.HubCollaborationsV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubcollaborationupdaterequestv2025r0.HubCollaborationUpdateRequestV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubcollaborationv2025r0.HubCollaborationV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubsv2025r0.HubsV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubv2025r0.HubV2025R0; -import org.junit.jupiter.api.Test; - -public class HubCollaborationsITest { - - private static final BoxClient client = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); - - @Test - public void testCrudHubCollaboration() { - HubsV2025R0 hubs = - client - .getHubs() - .getHubsV2025R0( - new GetHubsV2025R0QueryParams.Builder() - .scope("all") - .sort("name") - .direction(GetHubsV2025R0QueryParamsDirectionField.ASC) - .build()); - HubV2025R0 hub = hubs.getEntries().get(0); - String userName = getUuid(); - String userLogin = String.join("", getUuid(), "@gmail.com"); - UserFull user = - client - .getUsers() - .createUser( - new CreateUserRequestBody.Builder(userName) - .login(userLogin) - .isPlatformAccessOnly(true) - .build()); - HubCollaborationV2025R0 createdCollaboration = - client - .getHubCollaborations() - .createHubCollaborationV2025R0( - new HubCollaborationCreateRequestV2025R0( - new HubCollaborationCreateRequestV2025R0HubField(hub.getId()), - new HubCollaborationCreateRequestV2025R0AccessibleByField.Builder("user") - .id(user.getId()) - .build(), - "viewer")); - assert !(createdCollaboration.getId().equals("")); - assert convertToString(createdCollaboration.getType()).equals("hub_collaboration"); - assert createdCollaboration.getHub().getId().equals(hub.getId()); - assert convertToString(createdCollaboration.getAccessibleBy().getType()).equals("user"); - assert createdCollaboration.getAccessibleBy().getId().equals(user.getId()); - assert createdCollaboration.getRole().equals("viewer"); - HubCollaborationV2025R0 updatedCollaboration = - client - .getHubCollaborations() - .updateHubCollaborationByIdV2025R0( - createdCollaboration.getId(), - new HubCollaborationUpdateRequestV2025R0.Builder().role("editor").build()); - assert !(updatedCollaboration.getId().equals("")); - assert convertToString(updatedCollaboration.getType()).equals("hub_collaboration"); - assert updatedCollaboration.getHub().getId().equals(hub.getId()); - assert convertToString(updatedCollaboration.getAccessibleBy().getType()).equals("user"); - assert updatedCollaboration.getAccessibleBy().getId().equals(user.getId()); - assert updatedCollaboration.getRole().equals("editor"); - HubCollaborationsV2025R0 collaborations = - client - .getHubCollaborations() - .getHubCollaborationsV2025R0(new GetHubCollaborationsV2025R0QueryParams(hub.getId())); - assert collaborations.getEntries().size() >= 1; - HubCollaborationV2025R0 retrievedCollaboration = - client.getHubCollaborations().getHubCollaborationByIdV2025R0(createdCollaboration.getId()); - assert retrievedCollaboration.getId().equals(createdCollaboration.getId()); - assert convertToString(retrievedCollaboration.getType()).equals("hub_collaboration"); - assert retrievedCollaboration.getHub().getId().equals(hub.getId()); - assert convertToString(retrievedCollaboration.getAccessibleBy().getType()).equals("user"); - assert retrievedCollaboration.getAccessibleBy().getId().equals(user.getId()); - assert retrievedCollaboration.getRole().equals("editor"); - client.getHubCollaborations().deleteHubCollaborationByIdV2025R0(createdCollaboration.getId()); - client.getUsers().deleteUserById(user.getId()); - } -} diff --git a/src/test/java/com/box/sdkgen/test/hubitems/HubItemsITest.java b/src/test/java/com/box/sdkgen/test/hubitems/HubItemsITest.java deleted file mode 100644 index b31325d68..000000000 --- a/src/test/java/com/box/sdkgen/test/hubitems/HubItemsITest.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.box.sdkgen.test.hubitems; - -import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; -import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; -import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; - -import com.box.sdkgen.client.BoxClient; -import com.box.sdkgen.managers.folders.CreateFolderRequestBody; -import com.box.sdkgen.managers.folders.CreateFolderRequestBodyParentField; -import com.box.sdkgen.managers.hubitems.GetHubItemsV2025R0QueryParams; -import com.box.sdkgen.schemas.folderfull.FolderFull; -import com.box.sdkgen.schemas.v2025r0.folderreferencev2025r0.FolderReferenceV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubcreaterequestv2025r0.HubCreateRequestV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubitemoperationresultv2025r0.HubItemOperationResultV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubitemoperationv2025r0.HubItemOperationV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubitemoperationv2025r0.HubItemOperationV2025R0ActionField; -import com.box.sdkgen.schemas.v2025r0.hubitemsmanagerequestv2025r0.HubItemsManageRequestV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubitemsmanageresponsev2025r0.HubItemsManageResponseV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubitemsv2025r0.HubItemsV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubv2025r0.HubV2025R0; -import java.util.Arrays; -import org.junit.jupiter.api.Test; - -public class HubItemsITest { - - private static final BoxClient client = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); - - @Test - public void testCreateDeleteGetHubItems() { - String hubTitle = getUuid(); - FolderFull folder = - client - .getFolders() - .createFolder( - new CreateFolderRequestBody( - getUuid(), new CreateFolderRequestBodyParentField("0"))); - HubV2025R0 createdHub = - client.getHubs().createHubV2025R0(new HubCreateRequestV2025R0(hubTitle)); - HubItemsV2025R0 hubItemsBeforeAdd = - client - .getHubItems() - .getHubItemsV2025R0(new GetHubItemsV2025R0QueryParams(createdHub.getId())); - assert hubItemsBeforeAdd.getEntries().size() == 0; - HubItemsManageResponseV2025R0 addedHubItems = - client - .getHubItems() - .manageHubItemsV2025R0( - createdHub.getId(), - new HubItemsManageRequestV2025R0.Builder() - .operations( - Arrays.asList( - new HubItemOperationV2025R0( - HubItemOperationV2025R0ActionField.ADD, - new FolderReferenceV2025R0(folder.getId())))) - .build()); - HubItemOperationResultV2025R0 addedHubItem = addedHubItems.getOperations().get(0); - assert convertToString(addedHubItem.getAction()).equals("add"); - assert addedHubItem.getStatus() == 200; - assert addedHubItem.getItem().getId().equals(folder.getId()); - assert addedHubItem.getItem().getType().equals("folder"); - HubItemsV2025R0 hubItemsAfterAdd = - client - .getHubItems() - .getHubItemsV2025R0(new GetHubItemsV2025R0QueryParams(createdHub.getId())); - assert hubItemsAfterAdd.getEntries().size() == 1; - HubItemsManageResponseV2025R0 removedHubItems = - client - .getHubItems() - .manageHubItemsV2025R0( - createdHub.getId(), - new HubItemsManageRequestV2025R0.Builder() - .operations( - Arrays.asList( - new HubItemOperationV2025R0( - HubItemOperationV2025R0ActionField.REMOVE, - new FolderReferenceV2025R0(folder.getId())))) - .build()); - HubItemOperationResultV2025R0 removedHubItem = removedHubItems.getOperations().get(0); - assert convertToString(removedHubItem.getAction()).equals("remove"); - assert removedHubItem.getStatus() == 200; - assert removedHubItem.getItem().getId().equals(folder.getId()); - assert removedHubItem.getItem().getType().equals("folder"); - HubItemsV2025R0 hubItemsAfterRemove = - client - .getHubItems() - .getHubItemsV2025R0(new GetHubItemsV2025R0QueryParams(createdHub.getId())); - assert hubItemsAfterRemove.getEntries().size() == 0; - client.getHubs().deleteHubByIdV2025R0(createdHub.getId()); - client.getFolders().deleteFolderById(folder.getId()); - } -} diff --git a/src/test/java/com/box/sdkgen/test/hubs/HubsITest.java b/src/test/java/com/box/sdkgen/test/hubs/HubsITest.java deleted file mode 100644 index 64cd02d4e..000000000 --- a/src/test/java/com/box/sdkgen/test/hubs/HubsITest.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.box.sdkgen.test.hubs; - -import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; -import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; -import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; -import static org.junit.jupiter.api.Assertions.assertThrows; - -import com.box.sdkgen.client.BoxClient; -import com.box.sdkgen.managers.hubs.GetEnterpriseHubsV2025R0QueryParams; -import com.box.sdkgen.managers.hubs.GetEnterpriseHubsV2025R0QueryParamsDirectionField; -import com.box.sdkgen.managers.hubs.GetHubsV2025R0QueryParams; -import com.box.sdkgen.managers.hubs.GetHubsV2025R0QueryParamsDirectionField; -import com.box.sdkgen.schemas.v2025r0.hubcopyrequestv2025r0.HubCopyRequestV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubcreaterequestv2025r0.HubCreateRequestV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubsv2025r0.HubsV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubupdaterequestv2025r0.HubUpdateRequestV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubv2025r0.HubV2025R0; -import org.junit.jupiter.api.Test; - -public class HubsITest { - - private static final BoxClient client = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); - - @Test - public void testCreateUpdateGetAndDeleteHubs() { - String hubTitle = getUuid(); - String hubDescription = "new Hub description"; - HubV2025R0 createdHub = - client - .getHubs() - .createHubV2025R0( - new HubCreateRequestV2025R0.Builder(hubTitle).description(hubDescription).build()); - assert createdHub.getTitle().equals(hubTitle); - assert createdHub.getDescription().equals(hubDescription); - assert convertToString(createdHub.getType()).equals("hubs"); - String hubId = createdHub.getId(); - HubsV2025R0 usersHubs = - client - .getHubs() - .getHubsV2025R0( - new GetHubsV2025R0QueryParams.Builder() - .scope("all") - .sort("name") - .direction(GetHubsV2025R0QueryParamsDirectionField.ASC) - .build()); - assert usersHubs.getEntries().size() > 0; - HubsV2025R0 enterpriseHubs = - client - .getHubs() - .getEnterpriseHubsV2025R0( - new GetEnterpriseHubsV2025R0QueryParams.Builder() - .sort("name") - .direction(GetEnterpriseHubsV2025R0QueryParamsDirectionField.ASC) - .build()); - assert enterpriseHubs.getEntries().size() > 0; - HubV2025R0 hubById = client.getHubs().getHubByIdV2025R0(hubId); - assert hubById.getId().equals(hubId); - assert hubById.getTitle().equals(hubTitle); - assert hubById.getDescription().equals(hubDescription); - assert convertToString(hubById.getType()).equals("hubs"); - String newHubTitle = getUuid(); - String newHubDescription = "updated Hub description"; - HubV2025R0 updatedHub = - client - .getHubs() - .updateHubByIdV2025R0( - hubId, - new HubUpdateRequestV2025R0.Builder() - .title(newHubTitle) - .description(newHubDescription) - .build()); - assert updatedHub.getTitle().equals(newHubTitle); - assert updatedHub.getDescription().equals(newHubDescription); - client.getHubs().deleteHubByIdV2025R0(hubId); - assertThrows(RuntimeException.class, () -> client.getHubs().deleteHubByIdV2025R0(hubId)); - } - - @Test - public void copyHub() { - String hubTitle = getUuid(); - String hubDescription = "new Hub description"; - HubV2025R0 createdHub = - client - .getHubs() - .createHubV2025R0( - new HubCreateRequestV2025R0.Builder(hubTitle).description(hubDescription).build()); - String copiedHubTitle = getUuid(); - String copiedHubDescription = "copied Hub description"; - HubV2025R0 copiedHub = - client - .getHubs() - .copyHubV2025R0( - createdHub.getId(), - new HubCopyRequestV2025R0.Builder() - .title(copiedHubTitle) - .description(copiedHubDescription) - .build()); - assert !(copiedHub.getId().equals(createdHub.getId())); - assert copiedHub.getTitle().equals(copiedHubTitle); - assert copiedHub.getDescription().equals(copiedHubDescription); - client.getHubs().deleteHubByIdV2025R0(createdHub.getId()); - client.getHubs().deleteHubByIdV2025R0(copiedHub.getId()); - } -} From d5269c9cf4f1a964e323f4ebd1be395dd8cb5e00 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Fri, 29 Aug 2025 13:56:09 +0200 Subject: [PATCH 018/148] chore: Fix `autoupdate` PR workflow (box/box-codegen#810) (#1393) * chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] * fix: Fix autoupdate PR workflow (box/box-codegen#810) --- .codegen.json | 2 +- .github/workflows/autoupdate-pr.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.codegen.json b/.codegen.json index 1d50897d2..c1132aff1 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "dd00f3f", "specHash": "ec8720b", "version": "0.1.0" } +{ "engineHash": "91b0f90", "specHash": "ec8720b", "version": "0.1.0" } diff --git a/.github/workflows/autoupdate-pr.yml b/.github/workflows/autoupdate-pr.yml index 080c51c32..bbf7ad303 100644 --- a/.github/workflows/autoupdate-pr.yml +++ b/.github/workflows/autoupdate-pr.yml @@ -27,7 +27,7 @@ jobs: PR_LIST=$(curl -s -H "Authorization: Bearer ${{ secrets.DISPATCH_ACCESS_TOKEN }}" "https://api.github.com/repos/$GITHUB_REPOSITORY/pulls?state=open" | jq -r '.[] | .head.ref') for pr_branch in $PR_LIST; do git checkout "$pr_branch" - if git merge origin/main; then + if git merge origin/sdk-gen; then git push else # Conflict occurred, resolve by keeping our changes From 2f2a3754d2ea6a54ea0ec60c0d7d3bcfe8b1cbeb Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Fri, 29 Aug 2025 14:51:03 +0200 Subject: [PATCH 019/148] docs: Add Migration Guide (box/box-codegen#816) (#1400) * chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] * chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] * chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] * docs: Migration guide for Python and Java (box/box-codegen#816) --- .codegen.json | 2 +- README.md | 2 +- ...box-java-sdk-gen-v0-to-box-java-sdk-v10.md | 148 ++++++++++++++++++ .../from-v4-to-v10.md | 0 4 files changed, 150 insertions(+), 2 deletions(-) create mode 100644 migration-guides/from-box-java-sdk-gen-v0-to-box-java-sdk-v10.md rename migration-guide.md => migration-guides/from-v4-to-v10.md (100%) diff --git a/.codegen.json b/.codegen.json index c1132aff1..23770fac0 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "91b0f90", "specHash": "ec8720b", "version": "0.1.0" } +{ "engineHash": "aa448e3", "specHash": "ec8720b", "version": "0.1.0" } diff --git a/README.md b/README.md index af8e807a2..3541ca3df 100644 --- a/README.md +++ b/README.md @@ -90,7 +90,7 @@ Browse the [docs](docs/README.md) or see [API Reference](https://developer.box.c # Upgrades -The SDK is updated regularly to include new features, enhancements, and bug fixes. If you are upgrading from manual SDK to this new generated SDK checkout the [migration guide](MIGRATION_GUIDE.md) and [changelog](CHANGELOG.md) for more information. +The SDK is updated regularly to include new features, enhancements, and bug fixes. If you are upgrading from manual SDK to this new generated SDK checkout the [migration guide](migration-guides/from-v4-to-v10.md) and [changelog](CHANGELOG.md) for more information. # Integration Tests diff --git a/migration-guides/from-box-java-sdk-gen-v0-to-box-java-sdk-v10.md b/migration-guides/from-box-java-sdk-gen-v0-to-box-java-sdk-v10.md new file mode 100644 index 000000000..465f55047 --- /dev/null +++ b/migration-guides/from-box-java-sdk-gen-v0-to-box-java-sdk-v10.md @@ -0,0 +1,148 @@ +# Migration guide from beta release (v0.8.0) of the `box-java-sdk-gen` to the v10 version of the `box-java-sdk` + + + + +- [Installation](#installation) + - [How to migrate](#how-to-migrate) + - [Maven](#maven) + - [Gradle](#gradle) +- [Union classes name changes](#union-classes-name-changes) + - [How to migrate](#how-to-migrate-1) +- [Removed unused models from schemas namespace](#removed-unused-models-from-schemas-namespace) + - [How to migrate](#how-to-migrate-2) + + + +## Installation + +In order to start using v10 version of the Box Java SDK, you need to change the dependency in your project. +The artifact name has changed from `com.box:box-java-sdk-gen` to `com.box:box-java-sdk`. +You also need to set the version to `10.0.0` or higher. You can find the latest version on [Maven Central](https://search.maven.org/artifact/com.box/box-java-sdk). + +### How to migrate + +#### Maven + +To start using v10 version of Box Java SDK in your Maven project replace the dependency in your `pom.xml` file. + +**Old (`box-java-sdk-gen-v0`)** + +```xml + + com.box + box-java-sdk-gen + 0.8.0 + +``` + +**New (`box-java-sdk-v10`)** + +```xml + + com.box + box-java-sdk + 10.0.0 + +``` + +#### Gradle + +To start using v10 version of Box Java SDK in your Gradle project replace the dependency in your `build.gradle` file. + +**Old (`box-java-sdk-gen-v0`)** + +```groovy +implementation 'com.box:box-java-sdk-gen:0.8.0' +``` + +**New (`box-java-sdk-v10`)** + +```groovy +implementation 'com.box:box-java-sdk:10.0.0' +``` + +## Union classes name changes + +In the beta version of the `box-java-sdk-gen` our `OneOf` class names (representing unions from the OpenAPI specification) +were fully auto-generated based on the included variants. This often resulted in overly long names that were difficult +to work with in tools like Git. For example: `MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString`. +Additionally, every time the new variant was added to the `OneOf`, the class name itself changed. +Starting in v10, the names of `OneOf` classes are defined directly in the specification. This ensures that they are meaningful, short, and stable over time. + +### How to migrate + +If your code references any of the renamed classes, replace the old name with the new one. +If you were not explicitly using the type names, no changes are needed, since only the class names changed and their behavior remains the same. + +List of changed `OneOf` classes and types associated with them: + +| Old name | New name | +| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------ | +| AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen | AiAgent | +| AiAgentAskOrAiAgentReference | AiAskAgent | +| AiAgentExtractOrAiAgentReference | AiExtractAgent | +| AiAgentExtractStructuredOrAiAgentReference | AiExtractStructuredAgent | +| AiAgentReferenceOrAiAgentTextGen | AiTextGenAgent | +| AppItemEventSourceOrEventSourceOrFileOrFolderOrGenericSourceOrUser | EventSourceResource | +| FileBaseOrFolderBaseOrWebLinkBase | AppItemAssociatedItem | +| FileFullOrFolderFull | MetadataQueryResultItem | +| FileFullOrFolderFullOrWebLink | SearchResultWithSharedLinkItem/RecentItemResource/SearchResultItem | +| FileFullOrFolderMiniOrWebLink | Item | +| FileMiniOrFolderMini | Resource | +| FileOrFolderOrWebLink | LegalHoldPolicyAssignedItem/CollaborationItem | +| FileOrFolderScope | ResourceScope | +| FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0 | HubItemReferenceV2025R0 | +| GroupMiniOrUserCollaborations | CollaborationAccessGrantee | +| IntegrationMappingPartnerItemSlackUnion | IntegrationMappingPartnerItemSlack | +| IntegrationMappingPartnerItemTeamsUnion | IntegrationMappingPartnerItemTeams | +| KeywordSkillCardOrStatusSkillCardOrTimelineSkillCardOrTranscriptSkillCard | SkillCard | +| MetadataFieldFilterDateRangeOrMetadataFieldFilterFloatRangeOrArrayOfStringOrNumberOrString | MetadataFilterValue | +| SearchResultsOrSearchResultsWithSharedLinks | SearchResultsResponse | + +Some classes were split into multiple ones depending on context. + +Manager functions affected by these changes: + +| Function | Old return type | New return type | +| -------------------------------------- | -------------------------------------------------------------------- | --------------------- | +| AiManager.getAiAgentDefaultConfig(...) | AiAgentAskOrAiAgentExtractOrAiAgentExtractStructuredOrAiAgentTextGen | AiAgent | +| SearchManager.searchForContent(...) | SearchResultsOrSearchResultsWithSharedLinks | SearchResultsResponse | + +## Removed unused models from schemas namespace + +Several unused types (classes and enums) have been removed from the schemas because they were not used by any SDK functions or by the Box API. + +### How to migrate + +Here is the full list of removed types: + +| Removed classes/enums | +| ------------------------------------------ | +| FileOrFolder | +| HubActionV2025R0 | +| MetadataQueryIndex | +| MetadataQueryIndexFieldsField | +| MetadataQueryIndexFieldsSortDirectionField | +| MetadataQueryIndexStatusField | +| RetentionPolicyAssignmentBase | +| RetentionPolicyAssignmentBaseTypeField | +| SkillInvocation | +| SkillInvocationEnterpriseField | +| SkillInvocationEnterpriseTypeField | +| SkillInvocationSkillField | +| SkillInvocationSkillTypeField | +| SkillInvocationStatusField | +| SkillInvocationStatusStateField | +| SkillInvocationTokenField | +| SkillInvocationTokenReadField | +| SkillInvocationTokenReadTokenTypeField | +| SkillInvocationTokenWriteField | +| SkillInvocationTokenWriteTokenTypeField | +| SkillInvocationTypeField | +| WebhookInvocation | +| WebhookInvocationTriggerField | +| WebhookInvocationTypeField | +| WorkflowFull | + +If your code references any of these types, remove those references. diff --git a/migration-guide.md b/migration-guides/from-v4-to-v10.md similarity index 100% rename from migration-guide.md rename to migration-guides/from-v4-to-v10.md From 5326c06b224cf0bd37fb806e0378a843a14c9794 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Thu, 4 Sep 2025 16:54:50 +0200 Subject: [PATCH 020/148] feat: Support event with long polling (box/box-codegen#807) (#1409) --- .codegen.json | 2 +- docs/EventStream.md | 29 ++ docs/events.md | 28 ++ ...box-java-sdk-gen-v0-to-box-java-sdk-v10.md | 3 +- .../sdkgen/box/eventstream/EventStream.java | 47 +++ .../box/eventstream/EventStreamIterator.java | 345 ++++++++++++++++++ .../sdkgen/managers/events/EventsManager.java | 18 + .../events/GetEventStreamHeaders.java | 40 ++ .../events/GetEventStreamQueryParams.java | 175 +++++++++ ...tEventStreamQueryParamsEventTypeField.java | 176 +++++++++ ...EventStreamQueryParamsStreamTypeField.java | 66 ++++ .../box/sdkgen/test/events/EventsITest.java | 7 + 12 files changed, 934 insertions(+), 2 deletions(-) create mode 100644 docs/EventStream.md create mode 100644 src/main/java/com/box/sdkgen/box/eventstream/EventStream.java create mode 100644 src/main/java/com/box/sdkgen/box/eventstream/EventStreamIterator.java create mode 100644 src/main/java/com/box/sdkgen/managers/events/GetEventStreamHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParamsEventTypeField.java create mode 100644 src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParamsStreamTypeField.java diff --git a/.codegen.json b/.codegen.json index 23770fac0..712fbf496 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "aa448e3", "specHash": "ec8720b", "version": "0.1.0" } +{ "engineHash": "fa469c0", "specHash": "ec8720b", "version": "0.1.0" } diff --git a/docs/EventStream.md b/docs/EventStream.md new file mode 100644 index 000000000..a91eef21f --- /dev/null +++ b/docs/EventStream.md @@ -0,0 +1,29 @@ +# Event Stream + +The Event Stream class utilizes long-polling to receive real-time events from Box. The SDK provides an easy way to set up and manage the event stream which returns an iterable object and yields events as they are received. + + + + +- [Event Stream](#event-stream) + - [Listening to the Event Stream](#listening-to-the-event-stream) + - [Deduplication](#deduplication) + + + +## Listening to the Event Stream + +When the `EventStream` is started, it will begin long-polling asynchronously. Events received from the API are then yielded to the caller. + +```java +EventStream stream = client.getEvents().getEventStream(); +for (Event event : stream) { + System.out.printf( + "Received event: ID=%s, Type=%s, CreatedAt=%s%n\n",event.getEventId(),event.getEventType(),event.getCreatedAt()); +} + +``` + +## Deduplication + +The `EventStream` class automatically deduplicates events based on their `eventId`. This means that if the same event is received multiple times, it will only be emitted once to the listeners. diff --git a/docs/events.md b/docs/events.md index 2290e88eb..94013cc64 100644 --- a/docs/events.md +++ b/docs/events.md @@ -3,6 +3,7 @@ - [Get events long poll endpoint](#get-events-long-poll-endpoint) - [List user and enterprise events](#list-user-and-enterprise-events) +- [Get event stream](#get-event-stream) ## Get events long poll endpoint @@ -107,3 +108,30 @@ chunk, as well as the next `stream_position` that can be queried. +## Get event stream + +Get an event stream for the Box API + +This operation is performed by calling function `getEventStream`. + + + +``` +client.getEvents().getEventStream() +``` + +### Arguments + +- queryParams `GetEventStreamQueryParams` + - Query parameters of getEvents method +- headers `GetEventStreamHeaders` + - Headers of getEvents method + + +### Returns + +This function returns a value of type `EventStream`. + + + + diff --git a/migration-guides/from-box-java-sdk-gen-v0-to-box-java-sdk-v10.md b/migration-guides/from-box-java-sdk-gen-v0-to-box-java-sdk-v10.md index 465f55047..be55c1b75 100644 --- a/migration-guides/from-box-java-sdk-gen-v0-to-box-java-sdk-v10.md +++ b/migration-guides/from-box-java-sdk-gen-v0-to-box-java-sdk-v10.md @@ -1,4 +1,4 @@ -# Migration guide from beta release (v0.8.0) of the `box-java-sdk-gen` to the v10 version of the `box-java-sdk` +# Migration guide from beta release (v0.X.Y) of the `box-java-sdk-gen` to the v10 version of the `box-java-sdk` @@ -92,6 +92,7 @@ List of changed `OneOf` classes and types associated with them: | FileMiniOrFolderMini | Resource | | FileOrFolderOrWebLink | LegalHoldPolicyAssignedItem/CollaborationItem | | FileOrFolderScope | ResourceScope | +| FileOrFolderScopeScopeField | ResourceScopeScopeField | | FileReferenceOrFolderReferenceOrWeblinkReferenceV2025R0 | HubItemReferenceV2025R0 | | GroupMiniOrUserCollaborations | CollaborationAccessGrantee | | IntegrationMappingPartnerItemSlackUnion | IntegrationMappingPartnerItemSlack | diff --git a/src/main/java/com/box/sdkgen/box/eventstream/EventStream.java b/src/main/java/com/box/sdkgen/box/eventstream/EventStream.java new file mode 100644 index 000000000..a9b8b6e02 --- /dev/null +++ b/src/main/java/com/box/sdkgen/box/eventstream/EventStream.java @@ -0,0 +1,47 @@ +package com.box.sdkgen.box.eventstream; + +import com.box.sdkgen.managers.events.EventsManager; +import com.box.sdkgen.managers.events.GetEventStreamHeaders; +import com.box.sdkgen.managers.events.GetEventStreamQueryParams; +import com.box.sdkgen.schemas.event.Event; +import java.util.Iterator; + +public class EventStream implements Iterable { + + EventStreamIterator iterator; + + private EventStream(Builder builder) { + this.iterator = + new EventStreamIterator(builder.eventsManager, builder.queryParams, builder.headersInput); + } + + @Override + public Iterator iterator() { + return this.iterator; + } + + public void stop() { + this.iterator.stop(); + } + + public static class Builder { + final EventsManager eventsManager; + final GetEventStreamQueryParams queryParams; + GetEventStreamHeaders headersInput; + + public Builder(EventsManager eventsManager, GetEventStreamQueryParams queryParams) { + this.eventsManager = eventsManager; + this.queryParams = queryParams; + this.headersInput = new GetEventStreamHeaders(); + } + + public Builder headersInput(GetEventStreamHeaders headersInput) { + this.headersInput = headersInput != null ? headersInput : new GetEventStreamHeaders(); + return this; + } + + public EventStream build() { + return new EventStream(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/box/eventstream/EventStreamIterator.java b/src/main/java/com/box/sdkgen/box/eventstream/EventStreamIterator.java new file mode 100644 index 000000000..49eb59ad7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/box/eventstream/EventStreamIterator.java @@ -0,0 +1,345 @@ +package com.box.sdkgen.box.eventstream; + +import com.box.sdkgen.box.errors.BoxSDKError; +import com.box.sdkgen.managers.events.EventsManager; +import com.box.sdkgen.managers.events.GetEventStreamHeaders; +import com.box.sdkgen.managers.events.GetEventStreamQueryParams; +import com.box.sdkgen.managers.events.GetEventsHeaders; +import com.box.sdkgen.managers.events.GetEventsQueryParams; +import com.box.sdkgen.managers.events.GetEventsQueryParamsEventTypeField; +import com.box.sdkgen.managers.events.GetEventsQueryParamsStreamTypeField; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.schemas.event.Event; +import com.box.sdkgen.schemas.events.Events; +import com.box.sdkgen.schemas.realtimeserver.RealtimeServer; +import com.box.sdkgen.schemas.realtimeservers.RealtimeServers; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.databind.JsonNode; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.NoSuchElementException; +import java.util.concurrent.CountDownLatch; +import java.util.stream.Collectors; + +enum RealtimeServerEvent { + NEW_CHANGE("new_change"), + RECONNECT("reconnect"); + + private final String value; + + RealtimeServerEvent(String value) { + this.value = value; + } + + public String getValue() { + return value; + } +} + +enum EventStreamAction { + FETCH_EVENTS, + RECONNECT, + RETRY, + STOP +} + +class EventStreamIterator implements Iterator { + private static final int DEDUPLICATION_SIZE = 1000; + private final EventsManager eventsManager; + private final GetEventStreamQueryParams queryParams; + private final GetEventStreamHeaders headersInput; + private String streamPosition; + private RealtimeServer longPollInfo; + private volatile boolean stopped; + private final CountDownLatch stopLatch; + private final Map dedupHash; + private final List eventQueue; + private boolean started; + private int longPollingRetries; + private static final int DEFAULT_MAX_RETRIES = 10; + + EventStreamIterator( + EventsManager eventsManager, + GetEventStreamQueryParams queryParams, + GetEventStreamHeaders headersInput) { + this.eventsManager = eventsManager; + this.queryParams = queryParams; + this.headersInput = headersInput; + this.streamPosition = + queryParams.getStreamPosition() != null ? queryParams.getStreamPosition() : "now"; + this.longPollInfo = null; + this.started = false; + this.stopped = false; + this.stopLatch = new CountDownLatch(1); + this.dedupHash = new HashMap<>(); + this.eventQueue = new ArrayList<>(); + this.longPollingRetries = 0; + } + + @Override + public boolean hasNext() { + return !eventQueue.isEmpty() || (!stopped && stopLatch.getCount() > 0); + } + + @Override + public Event next() { + if (!hasNext()) { + stop(); + throw new NoSuchElementException("No more events available or stream stopped"); + } + if (!eventQueue.isEmpty()) { + return eventQueue.remove(0); + } + if (!started) { + started = true; + fetchEvents(); + if (!eventQueue.isEmpty()) { + return eventQueue.remove(0); + } + } + + getLongPollInfo(); + while (!stopped && stopLatch.getCount() > 0) { + try { + EventStreamAction action = doLongPoll(); + switch (action) { + case FETCH_EVENTS: + fetchEvents(); + if (!eventQueue.isEmpty()) { + return eventQueue.remove(0); + } + break; + case RETRY: + try { + Thread.sleep(5000); + } catch (InterruptedException ie) { + Thread.currentThread().interrupt(); + } + continue; + case RECONNECT: + getLongPollInfo(); + continue; + case STOP: + stop(); + break; + } + } catch (Exception e) { + boolean isBoxError = e instanceof BoxSDKError; + if (!isBoxError) { + throw e; + } + } + } + throw new NoSuchElementException("Stream stopped"); + } + + public void stop() { + if (!stopped) { + this.stopped = true; + this.stopLatch.countDown(); + } + } + + private void getLongPollInfo() throws BoxSDKError { + if (stopped || stopLatch.getCount() == 0) { + return; + } + + try { + RealtimeServers info = eventsManager.getEventsWithLongPolling(); + RealtimeServer server = null; + if (info.getEntries() != null) { + for (RealtimeServer entry : info.getEntries()) { + if (entry.getType().equals("realtime_server")) { + server = entry; + break; + } + } + } + + if (server == null) { + throw new BoxSDKError("No realtime server found in the response."); + } + + this.longPollInfo = server; + this.longPollingRetries = 0; + + } catch (Exception e) { + if (!stopped && stopLatch.getCount() > 0) { + throw new BoxSDKError( + "Failed to fetch long polling info: " + (e.getMessage() != null ? e.getMessage() : ""), + e); + } + } + } + + private EventStreamAction doLongPoll() throws BoxSDKError { + if (stopped || stopLatch.getCount() == 0) { + return EventStreamAction.STOP; + } + + try { + int maxRetries = + (longPollInfo != null && longPollInfo.getMaxRetries() != null) + ? Integer.parseInt(longPollInfo.getMaxRetries()) + : DEFAULT_MAX_RETRIES; + + if (longPollInfo == null || longPollingRetries > maxRetries) { + getLongPollInfo(); + } + + longPollingRetries++; + + String longPollUrl = longPollInfo.getUrl(); + String separator = longPollUrl.contains("?") ? "&" : "?"; + String longPollWithStreamPosition = + longPollUrl + separator + "stream_position=" + streamPosition; + Map headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + + FetchResponse response = + eventsManager + .getNetworkSession() + .getNetworkClient() + .fetch( + new FetchOptions.Builder(longPollWithStreamPosition, "GET") + .responseFormat(ResponseFormat.JSON) + .auth(eventsManager.getAuth()) + .networkSession(eventsManager.getNetworkSession()) + .headers(headers) + .build()); + + if (stopped || stopLatch.getCount() == 0) { + return EventStreamAction.STOP; + } + + if (response.getStatus() == 200 && response.getData() != null) { + JsonNode message = response.getData(); + String messageText = message.has("message") ? message.get("message").asText() : null; + + if (RealtimeServerEvent.NEW_CHANGE.getValue().equals(messageText)) { + return EventStreamAction.FETCH_EVENTS; + } else if (RealtimeServerEvent.RECONNECT.getValue().equals(messageText)) { + return EventStreamAction.RECONNECT; + } + } + return EventStreamAction.RETRY; + } catch (Exception e) { + if (!stopped && stopLatch.getCount() > 0) { + return EventStreamAction.RETRY; + } + return EventStreamAction.STOP; + } + } + + private void fetchEvents() throws BoxSDKError { + if (stopped || stopLatch.getCount() == 0) { + return; + } + + try { + GetEventsQueryParams.Builder fetchParamsBuilder = + new GetEventsQueryParams.Builder().streamPosition(streamPosition); + + if (queryParams.getLimit() != null) { + fetchParamsBuilder.limit(queryParams.getLimit()); + } + if (queryParams.getCreatedAfter() != null) { + fetchParamsBuilder.createdAfter(queryParams.getCreatedAfter()); + } + if (queryParams.getCreatedBefore() != null) { + fetchParamsBuilder.createdBefore(queryParams.getCreatedBefore()); + } + + if (queryParams.getStreamType() != null) { + String streamTypeValue = queryParams.getStreamType().getValue(); + GetEventsQueryParamsStreamTypeField streamType = convertStreamType(streamTypeValue); + fetchParamsBuilder.streamType(streamType); + } + + List eventTypes = + queryParams.getEventType() != null + ? queryParams.getEventType().stream() + .map(enumWrapper -> convertEventType(enumWrapper.getValue())) + .collect(Collectors.toList()) + : null; + if (eventTypes != null) { + fetchParamsBuilder.eventType(eventTypes); + } + + GetEventsQueryParams fetchParams = fetchParamsBuilder.build(); + GetEventsHeaders fetchHeaders = + new GetEventsHeaders.Builder() + .extraHeaders( + headersInput.getExtraHeaders() != null + ? headersInput.getExtraHeaders() + : new HashMap<>()) + .build(); + + Events events = eventsManager.getEvents(fetchParams, fetchHeaders); + if (events.getEntries() != null && !events.getEntries().isEmpty()) { + for (Event event : events.getEntries()) { + String eventId = event.getEventId(); + if (eventId != null && !dedupHash.containsKey(eventId)) { + dedupHash.put(eventId, true); + if (stopped || stopLatch.getCount() == 0) { + return; + } + eventQueue.add(event); + } + } + } + + streamPosition = + events.getNextStreamPosition() != null + ? (events.getNextStreamPosition().isString() + ? events.getNextStreamPosition().getString() + : String.valueOf(events.getNextStreamPosition().getLongNumber())) + : "now"; + + if (dedupHash.size() >= DEDUPLICATION_SIZE) { + dedupHash.clear(); + for (Event event : events.getEntries()) { + String eventId = event.getEventId(); + if (eventId != null) { + dedupHash.put(eventId, true); + } + } + } + } catch (Exception e) { + if (!stopped && stopLatch.getCount() > 0) { + if (e instanceof BoxSDKError) { + throw (BoxSDKError) e; + } else { + throw new BoxSDKError( + "Failed to fetch events: " + (e.getMessage() != null ? e.getMessage() : ""), e); + } + } + } + } + + private GetEventsQueryParamsStreamTypeField convertStreamType(String streamTypeValue) { + if (streamTypeValue == null) return null; + try { + return GetEventsQueryParamsStreamTypeField.valueOf( + streamTypeValue.toUpperCase().replace(" ", "_")); + } catch (IllegalArgumentException e) { + throw new BoxSDKError("Invalid stream type: " + streamTypeValue); + } + } + + private Valuable convertEventType(String eventTypeValue) { + if (eventTypeValue == null) return null; + try { + return GetEventsQueryParamsEventTypeField.valueOf( + eventTypeValue.toUpperCase().replace(" ", "_")); + } catch (IllegalArgumentException e) { + throw new BoxSDKError("Invalid event type: " + eventTypeValue); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/events/EventsManager.java b/src/main/java/com/box/sdkgen/managers/events/EventsManager.java index 6c608b7c8..fe891c60c 100644 --- a/src/main/java/com/box/sdkgen/managers/events/EventsManager.java +++ b/src/main/java/com/box/sdkgen/managers/events/EventsManager.java @@ -6,6 +6,7 @@ import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; +import com.box.sdkgen.box.eventstream.EventStream; import com.box.sdkgen.networking.auth.Authentication; import com.box.sdkgen.networking.fetchoptions.FetchOptions; import com.box.sdkgen.networking.fetchoptions.ResponseFormat; @@ -93,6 +94,23 @@ public Events getEvents(GetEventsQueryParams queryParams, GetEventsHeaders heade return JsonManager.deserialize(response.getData(), Events.class); } + public EventStream getEventStream() { + return getEventStream(new GetEventStreamQueryParams(), new GetEventStreamHeaders()); + } + + public EventStream getEventStream(GetEventStreamQueryParams queryParams) { + return getEventStream(queryParams, new GetEventStreamHeaders()); + } + + public EventStream getEventStream(GetEventStreamHeaders headers) { + return getEventStream(new GetEventStreamQueryParams(), headers); + } + + public EventStream getEventStream( + GetEventStreamQueryParams queryParams, GetEventStreamHeaders headers) { + return new EventStream.Builder(this, queryParams).headersInput(headers).build(); + } + public Authentication getAuth() { return auth; } diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventStreamHeaders.java b/src/main/java/com/box/sdkgen/managers/events/GetEventStreamHeaders.java new file mode 100644 index 000000000..527cbfced --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventStreamHeaders.java @@ -0,0 +1,40 @@ +package com.box.sdkgen.managers.events; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetEventStreamHeaders { + + public Map extraHeaders; + + public GetEventStreamHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetEventStreamHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetEventStreamHeaders build() { + return new GetEventStreamHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParams.java b/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParams.java new file mode 100644 index 000000000..afb1b1821 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParams.java @@ -0,0 +1,175 @@ +package com.box.sdkgen.managers.events; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class GetEventStreamQueryParams { + + public EnumWrapper streamType; + + public String streamPosition; + + public Long limit; + + public List> eventType; + + public Date createdAfter; + + public Date createdBefore; + + public GetEventStreamQueryParams() {} + + protected GetEventStreamQueryParams(Builder builder) { + this.streamType = builder.streamType; + this.streamPosition = builder.streamPosition; + this.limit = builder.limit; + this.eventType = builder.eventType; + this.createdAfter = builder.createdAfter; + this.createdBefore = builder.createdBefore; + } + + public EnumWrapper getStreamType() { + return streamType; + } + + public String getStreamPosition() { + return streamPosition; + } + + public Long getLimit() { + return limit; + } + + public List> getEventType() { + return eventType; + } + + public Date getCreatedAfter() { + return createdAfter; + } + + public Date getCreatedBefore() { + return createdBefore; + } + + public static class Builder { + + protected EnumWrapper streamType; + + protected String streamPosition; + + protected Long limit; + + protected List> eventType; + + protected Date createdAfter; + + protected Date createdBefore; + + public Builder streamType(GetEventStreamQueryParamsStreamTypeField streamType) { + this.streamType = new EnumWrapper(streamType); + return this; + } + + public Builder streamType(EnumWrapper streamType) { + this.streamType = streamType; + return this; + } + + public Builder streamPosition(String streamPosition) { + this.streamPosition = streamPosition; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder eventType(List eventType) { + this.eventType = + EnumWrapper.wrapValuableEnumList( + eventType, GetEventStreamQueryParamsEventTypeField.class); + return this; + } + + public Builder createdAfter(Date createdAfter) { + this.createdAfter = createdAfter; + return this; + } + + public Builder createdBefore(Date createdBefore) { + this.createdBefore = createdBefore; + return this; + } + + public GetEventStreamQueryParams build() { + return new GetEventStreamQueryParams(this); + } + } + + public static class EventTypeDeserializer + extends JsonDeserializer>> { + + public final JsonDeserializer> + elementDeserializer; + + public EventTypeDeserializer() { + super(); + this.elementDeserializer = + new GetEventStreamQueryParamsEventTypeField + .GetEventStreamQueryParamsEventTypeFieldDeserializer(); + } + + @Override + public List> deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + JsonNode node = p.getCodec().readTree(p); + List> elements = new ArrayList<>(); + for (JsonNode item : node) { + JsonParser pa = item.traverse(p.getCodec()); + pa.nextToken(); + elements.add(elementDeserializer.deserialize(pa, ctxt)); + } + return elements; + } + } + + public static class EventTypeSerializer + extends JsonSerializer>> { + + public final JsonSerializer> + elementSerializer; + + public EventTypeSerializer() { + super(); + this.elementSerializer = + new GetEventStreamQueryParamsEventTypeField + .GetEventStreamQueryParamsEventTypeFieldSerializer(); + } + + @Override + public void serialize( + List> value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeStartArray(); + for (EnumWrapper item : value) { + elementSerializer.serialize(item, gen, serializers); + } + gen.writeEndArray(); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParamsEventTypeField.java b/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParamsEventTypeField.java new file mode 100644 index 000000000..9658150d4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParamsEventTypeField.java @@ -0,0 +1,176 @@ +package com.box.sdkgen.managers.events; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetEventStreamQueryParamsEventTypeField implements Valuable { + ACCESS_GRANTED("ACCESS_GRANTED"), + ACCESS_REVOKED("ACCESS_REVOKED"), + ADD_DEVICE_ASSOCIATION("ADD_DEVICE_ASSOCIATION"), + ADD_LOGIN_ACTIVITY_DEVICE("ADD_LOGIN_ACTIVITY_DEVICE"), + ADMIN_LOGIN("ADMIN_LOGIN"), + APPLICATION_CREATED("APPLICATION_CREATED"), + APPLICATION_PUBLIC_KEY_ADDED("APPLICATION_PUBLIC_KEY_ADDED"), + APPLICATION_PUBLIC_KEY_DELETED("APPLICATION_PUBLIC_KEY_DELETED"), + CHANGE_ADMIN_ROLE("CHANGE_ADMIN_ROLE"), + CHANGE_FOLDER_PERMISSION("CHANGE_FOLDER_PERMISSION"), + COLLABORATION_ACCEPT("COLLABORATION_ACCEPT"), + COLLABORATION_EXPIRATION("COLLABORATION_EXPIRATION"), + COLLABORATION_INVITE("COLLABORATION_INVITE"), + COLLABORATION_REMOVE("COLLABORATION_REMOVE"), + COLLABORATION_ROLE_CHANGE("COLLABORATION_ROLE_CHANGE"), + COMMENT_CREATE("COMMENT_CREATE"), + COMMENT_DELETE("COMMENT_DELETE"), + CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY("CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY"), + CONTENT_WORKFLOW_AUTOMATION_ADD("CONTENT_WORKFLOW_AUTOMATION_ADD"), + CONTENT_WORKFLOW_AUTOMATION_DELETE("CONTENT_WORKFLOW_AUTOMATION_DELETE"), + CONTENT_WORKFLOW_POLICY_ADD("CONTENT_WORKFLOW_POLICY_ADD"), + CONTENT_WORKFLOW_SHARING_POLICY_VIOLATION("CONTENT_WORKFLOW_SHARING_POLICY_VIOLATION"), + CONTENT_WORKFLOW_UPLOAD_POLICY_VIOLATION("CONTENT_WORKFLOW_UPLOAD_POLICY_VIOLATION"), + COPY("COPY"), + DATA_RETENTION_CREATE_RETENTION("DATA_RETENTION_CREATE_RETENTION"), + DATA_RETENTION_REMOVE_RETENTION("DATA_RETENTION_REMOVE_RETENTION"), + DELETE("DELETE"), + DELETE_USER("DELETE_USER"), + DEVICE_TRUST_CHECK_FAILED("DEVICE_TRUST_CHECK_FAILED"), + DOWNLOAD("DOWNLOAD"), + EDIT("EDIT"), + EDIT_USER("EDIT_USER"), + EMAIL_ALIAS_CONFIRM("EMAIL_ALIAS_CONFIRM"), + EMAIL_ALIAS_REMOVE("EMAIL_ALIAS_REMOVE"), + ENTERPRISE_APP_AUTHORIZATION_UPDATE("ENTERPRISE_APP_AUTHORIZATION_UPDATE"), + EXTERNAL_COLLAB_SECURITY_SETTINGS("EXTERNAL_COLLAB_SECURITY_SETTINGS"), + FAILED_LOGIN("FAILED_LOGIN"), + FILE_MARKED_MALICIOUS("FILE_MARKED_MALICIOUS"), + FILE_WATERMARKED_DOWNLOAD("FILE_WATERMARKED_DOWNLOAD"), + GROUP_ADD_ITEM("GROUP_ADD_ITEM"), + GROUP_ADD_USER("GROUP_ADD_USER"), + GROUP_CREATION("GROUP_CREATION"), + GROUP_DELETION("GROUP_DELETION"), + GROUP_EDITED("GROUP_EDITED"), + GROUP_REMOVE_ITEM("GROUP_REMOVE_ITEM"), + GROUP_REMOVE_USER("GROUP_REMOVE_USER"), + ITEM_EMAIL_SEND("ITEM_EMAIL_SEND"), + ITEM_MODIFY("ITEM_MODIFY"), + ITEM_OPEN("ITEM_OPEN"), + ITEM_SHARED_UPDATE("ITEM_SHARED_UPDATE"), + ITEM_SYNC("ITEM_SYNC"), + ITEM_UNSYNC("ITEM_UNSYNC"), + LEGAL_HOLD_ASSIGNMENT_CREATE("LEGAL_HOLD_ASSIGNMENT_CREATE"), + LEGAL_HOLD_ASSIGNMENT_DELETE("LEGAL_HOLD_ASSIGNMENT_DELETE"), + LEGAL_HOLD_POLICY_CREATE("LEGAL_HOLD_POLICY_CREATE"), + LEGAL_HOLD_POLICY_DELETE("LEGAL_HOLD_POLICY_DELETE"), + LEGAL_HOLD_POLICY_UPDATE("LEGAL_HOLD_POLICY_UPDATE"), + LOCK("LOCK"), + LOGIN("LOGIN"), + METADATA_INSTANCE_CREATE("METADATA_INSTANCE_CREATE"), + METADATA_INSTANCE_DELETE("METADATA_INSTANCE_DELETE"), + METADATA_INSTANCE_UPDATE("METADATA_INSTANCE_UPDATE"), + METADATA_TEMPLATE_CREATE("METADATA_TEMPLATE_CREATE"), + METADATA_TEMPLATE_DELETE("METADATA_TEMPLATE_DELETE"), + METADATA_TEMPLATE_UPDATE("METADATA_TEMPLATE_UPDATE"), + MOVE("MOVE"), + NEW_USER("NEW_USER"), + OAUTH2_ACCESS_TOKEN_REVOKE("OAUTH2_ACCESS_TOKEN_REVOKE"), + PREVIEW("PREVIEW"), + REMOVE_DEVICE_ASSOCIATION("REMOVE_DEVICE_ASSOCIATION"), + REMOVE_LOGIN_ACTIVITY_DEVICE("REMOVE_LOGIN_ACTIVITY_DEVICE"), + RENAME("RENAME"), + RETENTION_POLICY_ASSIGNMENT_ADD("RETENTION_POLICY_ASSIGNMENT_ADD"), + SHARE("SHARE"), + SHARED_LINK_SEND("SHARED_LINK_SEND"), + SHARE_EXPIRATION("SHARE_EXPIRATION"), + SHIELD_ALERT("SHIELD_ALERT"), + SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED("SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED"), + SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED_MISSING_JUSTIFICATION( + "SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED_MISSING_JUSTIFICATION"), + SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED("SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED"), + SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED_MISSING_JUSTIFICATION( + "SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED_MISSING_JUSTIFICATION"), + SHIELD_JUSTIFICATION_APPROVAL("SHIELD_JUSTIFICATION_APPROVAL"), + SHIELD_SHARED_LINK_ACCESS_BLOCKED("SHIELD_SHARED_LINK_ACCESS_BLOCKED"), + SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_CREATE("SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_CREATE"), + SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_UPDATE("SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_UPDATE"), + SIGN_DOCUMENT_ASSIGNED("SIGN_DOCUMENT_ASSIGNED"), + SIGN_DOCUMENT_CANCELLED("SIGN_DOCUMENT_CANCELLED"), + SIGN_DOCUMENT_COMPLETED("SIGN_DOCUMENT_COMPLETED"), + SIGN_DOCUMENT_CONVERTED("SIGN_DOCUMENT_CONVERTED"), + SIGN_DOCUMENT_CREATED("SIGN_DOCUMENT_CREATED"), + SIGN_DOCUMENT_DECLINED("SIGN_DOCUMENT_DECLINED"), + SIGN_DOCUMENT_EXPIRED("SIGN_DOCUMENT_EXPIRED"), + SIGN_DOCUMENT_SIGNED("SIGN_DOCUMENT_SIGNED"), + SIGN_DOCUMENT_VIEWED_BY_SIGNED("SIGN_DOCUMENT_VIEWED_BY_SIGNED"), + SIGNER_DOWNLOADED("SIGNER_DOWNLOADED"), + SIGNER_FORWARDED("SIGNER_FORWARDED"), + STORAGE_EXPIRATION("STORAGE_EXPIRATION"), + TASK_ASSIGNMENT_CREATE("TASK_ASSIGNMENT_CREATE"), + TASK_ASSIGNMENT_DELETE("TASK_ASSIGNMENT_DELETE"), + TASK_ASSIGNMENT_UPDATE("TASK_ASSIGNMENT_UPDATE"), + TASK_CREATE("TASK_CREATE"), + TASK_UPDATE("TASK_UPDATE"), + TERMS_OF_SERVICE_ACCEPT("TERMS_OF_SERVICE_ACCEPT"), + TERMS_OF_SERVICE_REJECT("TERMS_OF_SERVICE_REJECT"), + UNDELETE("UNDELETE"), + UNLOCK("UNLOCK"), + UNSHARE("UNSHARE"), + UPDATE_COLLABORATION_EXPIRATION("UPDATE_COLLABORATION_EXPIRATION"), + UPDATE_SHARE_EXPIRATION("UPDATE_SHARE_EXPIRATION"), + UPLOAD("UPLOAD"), + USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE("USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE"), + WATERMARK_LABEL_CREATE("WATERMARK_LABEL_CREATE"), + WATERMARK_LABEL_DELETE("WATERMARK_LABEL_DELETE"); + + private final String value; + + GetEventStreamQueryParamsEventTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetEventStreamQueryParamsEventTypeFieldDeserializer + extends JsonDeserializer> { + + public GetEventStreamQueryParamsEventTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetEventStreamQueryParamsEventTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetEventStreamQueryParamsEventTypeFieldSerializer + extends JsonSerializer> { + + public GetEventStreamQueryParamsEventTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParamsStreamTypeField.java b/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParamsStreamTypeField.java new file mode 100644 index 000000000..6521cd10e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParamsStreamTypeField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.managers.events; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetEventStreamQueryParamsStreamTypeField implements Valuable { + ALL("all"), + CHANGES("changes"), + SYNC("sync"), + ADMIN_LOGS("admin_logs"), + ADMIN_LOGS_STREAMING("admin_logs_streaming"); + + private final String value; + + GetEventStreamQueryParamsStreamTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetEventStreamQueryParamsStreamTypeFieldDeserializer + extends JsonDeserializer> { + + public GetEventStreamQueryParamsStreamTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetEventStreamQueryParamsStreamTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetEventStreamQueryParamsStreamTypeFieldSerializer + extends JsonSerializer> { + + public GetEventStreamQueryParamsStreamTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/test/java/com/box/sdkgen/test/events/EventsITest.java b/src/test/java/com/box/sdkgen/test/events/EventsITest.java index 6d1044b0f..2dcb534fa 100644 --- a/src/test/java/com/box/sdkgen/test/events/EventsITest.java +++ b/src/test/java/com/box/sdkgen/test/events/EventsITest.java @@ -5,6 +5,7 @@ import static com.box.sdkgen.internal.utils.UtilsManager.getEpochTimeInSeconds; import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import com.box.sdkgen.box.eventstream.EventStream; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.events.GetEventsQueryParams; import com.box.sdkgen.managers.events.GetEventsQueryParamsEventTypeField; @@ -109,4 +110,10 @@ public void testGetEventsWithDateFilters() { .build()); assert servers.getEntries().size() == 1; } + + @Test + public void testGetEventStream() { + EventStream eventStream = client.getEvents().getEventStream(); + assert !(eventStream == null); + } } From 4b90d47f09ba51a851c8e89a59580d11831158a5 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Thu, 4 Sep 2025 17:30:32 +0200 Subject: [PATCH 021/148] fix: Brand Hubs as Box Hubs (box/box-openapi#553) (#1410) --- .codegen.json | 2 +- docs/hubcollaborations.md | 42 +++++++++++++++++----------------- docs/hubitems.md | 14 ++++++------ docs/hubs.md | 48 +++++++++++++++++++-------------------- 4 files changed, 53 insertions(+), 53 deletions(-) diff --git a/.codegen.json b/.codegen.json index 712fbf496..a75d41fbe 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "fa469c0", "specHash": "ec8720b", "version": "0.1.0" } +{ "engineHash": "fa469c0", "specHash": "60778fb", "version": "0.1.0" } diff --git a/docs/hubcollaborations.md b/docs/hubcollaborations.md index e36f79e12..609b5e572 100644 --- a/docs/hubcollaborations.md +++ b/docs/hubcollaborations.md @@ -1,15 +1,15 @@ # HubCollaborationsManager -- [Get hub collaborations](#get-hub-collaborations) -- [Create hub collaboration](#create-hub-collaboration) -- [Get hub collaboration by collaboration ID](#get-hub-collaboration-by-collaboration-id) -- [Update hub collaboration](#update-hub-collaboration) -- [Remove hub collaboration](#remove-hub-collaboration) +- [Get Box Hub collaborations](#get-box-hub-collaborations) +- [Create Box Hub collaboration](#create-box-hub-collaboration) +- [Get Box Hub collaboration by collaboration ID](#get-box-hub-collaboration-by-collaboration-id) +- [Update Box Hub collaboration](#update-box-hub-collaboration) +- [Remove Box Hub collaboration](#remove-box-hub-collaboration) -## Get hub collaborations +## Get Box Hub collaborations -Retrieves all collaborations for a hub. +Retrieves all collaborations for a Box Hub. This operation is performed by calling function `getHubCollaborationsV2025R0`. @@ -33,12 +33,12 @@ client.getHubCollaborations().getHubCollaborationsV2025R0(new GetHubCollaboratio This function returns a value of type `HubCollaborationsV2025R0`. -Retrieves the collaborations associated with the specified hub. +Retrieves the collaborations associated with the specified Box Hub. -## Create hub collaboration +## Create Box Hub collaboration -Adds a collaboration for a single user or a single group to a hub. +Adds a collaboration for a single user or a single group to a Box Hub. Collaborations can be created using email address, user IDs, or group IDs. @@ -64,12 +64,12 @@ client.getHubCollaborations().createHubCollaborationV2025R0(new HubCollaboration This function returns a value of type `HubCollaborationV2025R0`. -Returns a new hub collaboration object. +Returns a new Box Hub collaboration object. -## Get hub collaboration by collaboration ID +## Get Box Hub collaboration by collaboration ID -Retrieves details for a hub collaboration by collaboration ID. +Retrieves details for a Box Hub collaboration by collaboration ID. This operation is performed by calling function `getHubCollaborationByIdV2025R0`. @@ -93,13 +93,13 @@ client.getHubCollaborations().getHubCollaborationByIdV2025R0(createdCollaboratio This function returns a value of type `HubCollaborationV2025R0`. -Returns a hub collaboration object. +Returns a Box Hub collaboration object. -## Update hub collaboration +## Update Box Hub collaboration -Updates a hub collaboration. -Can be used to change the hub role. +Updates a Box Hub collaboration. +Can be used to change the Box Hub role. This operation is performed by calling function `updateHubCollaborationByIdV2025R0`. @@ -125,12 +125,12 @@ client.getHubCollaborations().updateHubCollaborationByIdV2025R0(createdCollabora This function returns a value of type `HubCollaborationV2025R0`. -Returns an updated hub collaboration object. +Returns an updated Box Hub collaboration object. -## Remove hub collaboration +## Remove Box Hub collaboration -Deletes a single hub collaboration. +Deletes a single Box Hub collaboration. This operation is performed by calling function `deleteHubCollaborationByIdV2025R0`. @@ -154,7 +154,7 @@ client.getHubCollaborations().deleteHubCollaborationByIdV2025R0(createdCollabora This function returns a value of type `void`. -A blank response is returned if the hub collaboration was +A blank response is returned if the Box Hub collaboration was successfully deleted. diff --git a/docs/hubitems.md b/docs/hubitems.md index 11a77727d..b826422e4 100644 --- a/docs/hubitems.md +++ b/docs/hubitems.md @@ -1,12 +1,12 @@ # HubItemsManager -- [Get hub items](#get-hub-items) -- [Manage hub items](#manage-hub-items) +- [Get Box Hub items](#get-box-hub-items) +- [Manage Box Hub items](#manage-box-hub-items) -## Get hub items +## Get Box Hub items -Retrieves all items associated with a Hub. +Retrieves all items associated with a Box Hub. This operation is performed by calling function `getHubItemsV2025R0`. @@ -30,12 +30,12 @@ client.getHubItems().getHubItemsV2025R0(new GetHubItemsV2025R0QueryParams(create This function returns a value of type `HubItemsV2025R0`. -Retrieves the items associated with the specified Hub. +Retrieves the items associated with the specified Box Hub. -## Manage hub items +## Manage Box Hub items -Adds and/or removes Hub items from a Hub. +Adds and/or removes Box Hub items from a Box Hub. This operation is performed by calling function `manageHubItemsV2025R0`. diff --git a/docs/hubs.md b/docs/hubs.md index ae08762db..45f7182e6 100644 --- a/docs/hubs.md +++ b/docs/hubs.md @@ -1,17 +1,17 @@ # HubsManager -- [List all hubs](#list-all-hubs) -- [Create hub](#create-hub) -- [List all hubs for requesting enterprise](#list-all-hubs-for-requesting-enterprise) -- [Get hub information by ID](#get-hub-information-by-id) -- [Update hub information by ID](#update-hub-information-by-id) -- [Delete hub](#delete-hub) -- [Copy hub](#copy-hub) +- [List all Box Hubs](#list-all-box-hubs) +- [Create Box Hub](#create-box-hub) +- [List all Box Hubs for requesting enterprise](#list-all-box-hubs-for-requesting-enterprise) +- [Get Box Hub information by ID](#get-box-hub-information-by-id) +- [Update Box Hub information by ID](#update-box-hub-information-by-id) +- [Delete Box Hub](#delete-box-hub) +- [Copy Box Hub](#copy-box-hub) -## List all hubs +## List all Box Hubs -Retrieves all hubs for requesting user. +Retrieves all Box Hubs for requesting user. This operation is performed by calling function `getHubsV2025R0`. @@ -35,12 +35,12 @@ client.getHubs().getHubsV2025R0(new GetHubsV2025R0QueryParams.Builder().scope("a This function returns a value of type `HubsV2025R0`. -Returns all hubs for the given user or enterprise. +Returns all Box Hubs for the given user or enterprise. -## Create hub +## Create Box Hub -Creates a new Hub. +Creates a new Box Hub. This operation is performed by calling function `createHubV2025R0`. @@ -67,9 +67,9 @@ This function returns a value of type `HubV2025R0`. Returns a new Hub object. -## List all hubs for requesting enterprise +## List all Box Hubs for requesting enterprise -Retrieves all hubs for a given enterprise. +Retrieves all Box Hubs for a given enterprise. Admins or Hub Co-admins of an enterprise with GCM scope can make this call. @@ -96,12 +96,12 @@ client.getHubs().getEnterpriseHubsV2025R0(new GetEnterpriseHubsV2025R0QueryParam This function returns a value of type `HubsV2025R0`. -Returns all hubs for the given user or enterprise. +Returns all Box Hubs for the given user or enterprise. -## Get hub information by ID +## Get Box Hub information by ID -Retrieves details for a hub by its ID. +Retrieves details for a Box Hub by its ID. This operation is performed by calling function `getHubByIdV2025R0`. @@ -128,9 +128,9 @@ This function returns a value of type `HubV2025R0`. Returns a hub object. -## Update hub information by ID +## Update Box Hub information by ID -Updates a Hub. Can be used to change title, description, or Hub settings. +Updates a Box Hub. Can be used to change title, description, or Box Hub settings. This operation is performed by calling function `updateHubByIdV2025R0`. @@ -159,9 +159,9 @@ This function returns a value of type `HubV2025R0`. Returns a Hub object. -## Delete hub +## Delete Box Hub -Deletes a single hub. +Deletes a single Box Hub. This operation is performed by calling function `deleteHubByIdV2025R0`. @@ -189,11 +189,11 @@ A blank response is returned if the hub was successfully deleted. -## Copy hub +## Copy Box Hub -Creates a copy of a Hub. +Creates a copy of a Box Hub. -The original Hub will not be modified. +The original Box Hub will not be modified. This operation is performed by calling function `copyHubV2025R0`. From a4c499101d354543cd65283aa9f25483bb2cbbbb Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Mon, 15 Sep 2025 11:55:18 +0200 Subject: [PATCH 022/148] feat: Add missing webhook events (box/box-openapi#554) (#1412) --- .codegen.json | 2 +- .../webhooks/CreateWebhookRequestBodyTriggersField.java | 5 ++++- .../webhooks/UpdateWebhookByIdRequestBodyTriggersField.java | 5 ++++- .../com/box/sdkgen/schemas/webhook/WebhookTriggersField.java | 5 ++++- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/.codegen.json b/.codegen.json index a75d41fbe..b5b489e1e 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "fa469c0", "specHash": "60778fb", "version": "0.1.0" } +{ "engineHash": "fa469c0", "specHash": "a05e5d7", "version": "0.1.0" } diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTriggersField.java b/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTriggersField.java index dff89a4dd..24981f876 100644 --- a/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTriggersField.java +++ b/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTriggersField.java @@ -51,7 +51,10 @@ public enum CreateWebhookRequestBodyTriggersField implements Valuable { SIGN_REQUEST_COMPLETED("SIGN_REQUEST.COMPLETED"), SIGN_REQUEST_DECLINED("SIGN_REQUEST.DECLINED"), SIGN_REQUEST_EXPIRED("SIGN_REQUEST.EXPIRED"), - SIGN_REQUEST_SIGNER_EMAIL_BOUNCED("SIGN_REQUEST.SIGNER_EMAIL_BOUNCED"); + SIGN_REQUEST_SIGNER_EMAIL_BOUNCED("SIGN_REQUEST.SIGNER_EMAIL_BOUNCED"), + SIGN_REQUEST_SIGN_SIGNER_SIGNED("SIGN_REQUEST.SIGN_SIGNER_SIGNED"), + SIGN_REQUEST_SIGN_DOCUMENT_CREATED("SIGN_REQUEST.SIGN_DOCUMENT_CREATED"), + SIGN_REQUEST_SIGN_ERROR_FINALIZING("SIGN_REQUEST.SIGN_ERROR_FINALIZING"); private final String value; diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTriggersField.java b/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTriggersField.java index 7f8e6854d..6452f31c1 100644 --- a/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTriggersField.java +++ b/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTriggersField.java @@ -51,7 +51,10 @@ public enum UpdateWebhookByIdRequestBodyTriggersField implements Valuable { SIGN_REQUEST_COMPLETED("SIGN_REQUEST.COMPLETED"), SIGN_REQUEST_DECLINED("SIGN_REQUEST.DECLINED"), SIGN_REQUEST_EXPIRED("SIGN_REQUEST.EXPIRED"), - SIGN_REQUEST_SIGNER_EMAIL_BOUNCED("SIGN_REQUEST.SIGNER_EMAIL_BOUNCED"); + SIGN_REQUEST_SIGNER_EMAIL_BOUNCED("SIGN_REQUEST.SIGNER_EMAIL_BOUNCED"), + SIGN_REQUEST_SIGN_SIGNER_SIGNED("SIGN_REQUEST.SIGN_SIGNER_SIGNED"), + SIGN_REQUEST_SIGN_DOCUMENT_CREATED("SIGN_REQUEST.SIGN_DOCUMENT_CREATED"), + SIGN_REQUEST_SIGN_ERROR_FINALIZING("SIGN_REQUEST.SIGN_ERROR_FINALIZING"); private final String value; diff --git a/src/main/java/com/box/sdkgen/schemas/webhook/WebhookTriggersField.java b/src/main/java/com/box/sdkgen/schemas/webhook/WebhookTriggersField.java index 1a9754348..77b16ffeb 100644 --- a/src/main/java/com/box/sdkgen/schemas/webhook/WebhookTriggersField.java +++ b/src/main/java/com/box/sdkgen/schemas/webhook/WebhookTriggersField.java @@ -51,7 +51,10 @@ public enum WebhookTriggersField implements Valuable { SIGN_REQUEST_COMPLETED("SIGN_REQUEST.COMPLETED"), SIGN_REQUEST_DECLINED("SIGN_REQUEST.DECLINED"), SIGN_REQUEST_EXPIRED("SIGN_REQUEST.EXPIRED"), - SIGN_REQUEST_SIGNER_EMAIL_BOUNCED("SIGN_REQUEST.SIGNER_EMAIL_BOUNCED"); + SIGN_REQUEST_SIGNER_EMAIL_BOUNCED("SIGN_REQUEST.SIGNER_EMAIL_BOUNCED"), + SIGN_REQUEST_SIGN_SIGNER_SIGNED("SIGN_REQUEST.SIGN_SIGNER_SIGNED"), + SIGN_REQUEST_SIGN_DOCUMENT_CREATED("SIGN_REQUEST.SIGN_DOCUMENT_CREATED"), + SIGN_REQUEST_SIGN_ERROR_FINALIZING("SIGN_REQUEST.SIGN_ERROR_FINALIZING"); private final String value; From b7c699339c65c459c29b0e209899b9b6535bf552 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Mon, 15 Sep 2025 12:19:28 +0200 Subject: [PATCH 023/148] chore: Run only smoke tests on PR and all tests on release (box/box-codegen#825) (#1417) --- .codegen.json | 2 +- .github/workflows/build.yml | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/.codegen.json b/.codegen.json index b5b489e1e..8ea9f2c74 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "fa469c0", "specHash": "a05e5d7", "version": "0.1.0" } +{ "engineHash": "86773db", "specHash": "a05e5d7", "version": "0.1.0" } diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 478ff07d4..17f6dc0cf 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,9 +3,6 @@ on: pull_request: branches: - sdk-gen - push: - branches: - - sdk-gen jobs: build-and-test: runs-on: ubuntu-latest @@ -24,7 +21,8 @@ jobs: distribution: ${{ matrix.distribution }} java-version: ${{ matrix.java }} cache: 'gradle' - - name: Build and test + - name: All Tests + if: startsWith(github.head_ref, 'codegen-release') env: JWT_CONFIG_BASE_64: ${{ secrets.JWT_CONFIG_BASE_64 }} ADMIN_USER_ID: ${{ secrets.ADMIN_USER_ID }} @@ -43,8 +41,12 @@ jobs: SLACK_ORG_ID: ${{ secrets.SLACK_ORG_ID }} SLACK_PARTNER_ITEM_ID: ${{ secrets.SLACK_PARTNER_ITEM_ID }} run: ./gradlew check --stacktrace - - - name: Coverage + - name: Smoke Tests + if: "!startsWith(github.head_ref, 'codegen-release')" env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: ./gradlew jacocoTestReport coverallsJacoco + JWT_CONFIG_BASE_64: ${{ secrets.JWT_CONFIG_BASE_64 }} + CLIENT_ID: ${{ secrets.CLIENT_ID }} + CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }} + USER_ID: ${{ secrets.USER_ID }} + ENTERPRISE_ID: ${{ secrets.ENTERPRISE_ID }} + run: ./gradlew test --tests com.box.sdkgen.test.auth.AuthITest --tests com.box.sdkgen.test.files.FilesITest --tests com.box.sdkgen.test.downloads.DownloadsITest --tests com.box.sdkgen.test.uploads.UploadsITest --stacktrace From ed04407e8effa8811bc85023783097f8a95e5223 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Mon, 15 Sep 2025 12:26:16 +0200 Subject: [PATCH 024/148] feat: Replace `Date` with `OffsetDateTime` (box/box-codegen#826) (#1419) --- .codegen.json | 2 +- .../sdkgen/internal/utils/DateTimeUtils.java | 12 +-- .../box/sdkgen/internal/utils/DateUtils.java | 12 +-- .../sdkgen/internal/utils/UtilsManager.java | 79 ++++++++++++------- .../events/GetEventStreamQueryParams.java | 18 ++--- .../managers/events/GetEventsQueryParams.java | 18 ++--- .../files/UpdateFileByIdRequestBody.java | 10 +-- .../UpdateFileByIdRequestBodyLockField.java | 10 +-- ...ateFileByIdRequestBodySharedLinkField.java | 10 +-- ...eFolderByIdRequestBodySharedLinkField.java | 10 +-- .../CreateLegalHoldPolicyRequestBody.java | 18 ++--- ...eLinkToFileRequestBodySharedLinkField.java | 10 +-- ...dLinkOnFileRequestBodySharedLinkField.java | 10 +-- ...inkToFolderRequestBodySharedLinkField.java | 10 +-- ...inkOnFolderRequestBodySharedLinkField.java | 10 +-- ...nkToWebLinkRequestBodySharedLinkField.java | 10 +-- ...nkOnWebLinkRequestBodySharedLinkField.java | 10 +-- .../managers/tasks/CreateTaskRequestBody.java | 10 +-- .../tasks/UpdateTaskByIdRequestBody.java | 10 +-- .../UploadFileRequestBodyAttributesField.java | 18 ++--- ...FileVersionRequestBodyAttributesField.java | 10 +-- ...flightCheckRequestBodyAttributesField.java | 18 ++--- .../CreateCollaborationRequestBody.java | 10 +-- .../UpdateCollaborationByIdRequestBody.java | 10 +-- .../managers/webhooks/WebhooksManager.java | 4 +- ...WebLinkByIdRequestBodySharedLinkField.java | 10 +-- .../aidialoguehistory/AiDialogueHistory.java | 10 +-- .../AiExtractStructuredResponse.java | 12 +-- .../sdkgen/schemas/airesponse/AiResponse.java | 12 +-- .../airesponsefull/AiResponseFull.java | 6 +- .../AiSingleAgentResponse.java | 18 ++--- .../AiSingleAgentResponseFull.java | 6 +- .../schemas/collaboration/Collaboration.java | 34 ++++---- .../CollaborationAllowlistEntry.java | 10 +-- .../CollaborationAllowlistExemptTarget.java | 18 ++--- .../collaborationitem/CollaborationItem.java | 18 ++--- .../box/sdkgen/schemas/comment/Comment.java | 18 ++--- .../schemas/commentfull/CommentFull.java | 6 +- .../com/box/sdkgen/schemas/event/Event.java | 18 ++--- .../com/box/sdkgen/schemas/file/File.java | 50 ++++++------ .../schemas/file/FileSharedLinkField.java | 10 +-- .../box/sdkgen/schemas/filefull/FileFull.java | 30 +++---- .../schemas/filefull/FileFullLockField.java | 18 ++--- .../schemas/filerequest/FileRequest.java | 29 +++---- .../FileRequestCopyRequest.java | 4 +- .../FileRequestUpdateRequest.java | 10 +-- .../schemas/fileversion/FileVersion.java | 42 +++++----- .../fileversionfull/FileVersionFull.java | 12 +-- .../FileVersionLegalHold.java | 10 +-- .../FileVersionRetention.java | 18 ++--- .../com/box/sdkgen/schemas/folder/Folder.java | 50 ++++++------ .../schemas/folder/FolderSharedLinkField.java | 10 +-- .../sdkgen/schemas/folderfull/FolderFull.java | 14 ++-- .../sdkgen/schemas/folderlock/FolderLock.java | 10 +-- .../com/box/sdkgen/schemas/group/Group.java | 18 ++--- .../sdkgen/schemas/groupfull/GroupFull.java | 6 +- .../groupmembership/GroupMembership.java | 18 ++--- .../IntegrationMapping.java | 18 ++--- .../IntegrationMappingTeams.java | 18 ++--- .../com/box/sdkgen/schemas/invite/Invite.java | 18 ++--- .../keywordskillcard/KeywordSkillCard.java | 10 +-- .../legalholdpolicy/LegalHoldPolicy.java | 42 +++++----- .../LegalHoldPolicyAssignedItem.java | 18 ++--- .../LegalHoldPolicyAssignment.java | 18 ++--- .../MetadataFieldFilterDateRange.java | 18 ++--- .../MetadataQueryResultItem.java | 26 +++--- .../sdkgen/schemas/recentitem/RecentItem.java | 10 +-- .../RecentItemResource.java | 18 ++--- .../retentionpolicy/RetentionPolicy.java | 18 ++--- .../RetentionPolicyAssignment.java | 10 +-- .../searchresultitem/SearchResultItem.java | 18 ++--- .../SearchResultWithSharedLinkItem.java | 18 ++--- .../ShieldInformationBarrier.java | 26 +++--- .../ShieldInformationBarrierReport.java | 18 ++--- .../ShieldInformationBarrierSegment.java | 18 ++--- ...ShieldInformationBarrierSegmentMember.java | 18 ++--- ...dInformationBarrierSegmentRestriction.java | 18 ++--- .../schemas/signrequest/SignRequest.java | 10 +-- .../SignRequestPrefillTag.java | 10 +-- .../SignRequestSignerSignerDecisionField.java | 10 +-- .../SignRequestSignerInput.java | 4 +- .../sdkgen/schemas/skillcard/SkillCard.java | 6 +- .../statusskillcard/StatusSkillCard.java | 10 +-- .../com/box/sdkgen/schemas/task/Task.java | 18 ++--- .../taskassignment/TaskAssignment.java | 26 +++--- .../TemplateSignerInput.java | 4 +- .../termsofservice/TermsOfService.java | 18 ++--- .../TermsOfServiceUserStatus.java | 18 ++--- .../timelineskillcard/TimelineSkillCard.java | 10 +-- .../TranscriptSkillCard.java | 10 +-- .../sdkgen/schemas/trashfile/TrashFile.java | 62 +++++++-------- .../trashfilerestored/TrashFileRestored.java | 46 +++++------ .../schemas/trashfolder/TrashFolder.java | 50 ++++++------ .../TrashFolderRestored.java | 34 ++++---- .../schemas/trashweblink/TrashWebLink.java | 34 ++++---- .../TrashWebLinkRestored.java | 18 ++--- .../schemas/uploadsession/UploadSession.java | 10 +-- .../com/box/sdkgen/schemas/user/User.java | 18 ++--- .../box/sdkgen/schemas/userfull/UserFull.java | 6 +- .../v2025r0/hubv2025r0/HubV2025R0.java | 18 ++--- .../shieldlistv2025r0/ShieldListV2025R0.java | 62 +++++++-------- .../watermark/WatermarkWatermarkField.java | 18 ++--- .../box/sdkgen/schemas/webhook/Webhook.java | 10 +-- .../box/sdkgen/schemas/weblink/WebLink.java | 34 ++++---- .../weblink/WebLinkSharedLinkField.java | 10 +-- .../schemas/workflow/WorkflowFlowsField.java | 10 +-- .../schemas/zipdownload/ZipDownload.java | 10 +-- .../box/sdkgen/test/events/EventsITest.java | 6 +- .../LegalHoldPoliciesITest.java | 6 +- .../taskassignments/TaskAssignmentsITest.java | 4 +- .../com/box/sdkgen/test/tasks/TasksITest.java | 4 +- 111 files changed, 962 insertions(+), 942 deletions(-) diff --git a/.codegen.json b/.codegen.json index 8ea9f2c74..bff58a927 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "86773db", "specHash": "a05e5d7", "version": "0.1.0" } +{ "engineHash": "dcdff3f", "specHash": "a05e5d7", "version": "0.1.0" } diff --git a/src/main/java/com/box/sdkgen/internal/utils/DateTimeUtils.java b/src/main/java/com/box/sdkgen/internal/utils/DateTimeUtils.java index 17b9da775..21d384897 100644 --- a/src/main/java/com/box/sdkgen/internal/utils/DateTimeUtils.java +++ b/src/main/java/com/box/sdkgen/internal/utils/DateTimeUtils.java @@ -10,24 +10,24 @@ import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; -import java.util.Date; +import java.time.OffsetDateTime; public class DateTimeUtils { - public static class DateTimeSerializer extends JsonSerializer { + public static class DateTimeSerializer extends JsonSerializer { @Override - public void serialize(Date value, JsonGenerator gen, SerializerProvider serializers) + public void serialize(OffsetDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException { String formattedDate = dateTimeToString(value); gen.writeString(formattedDate); } } - public static class DateTimeDeserializer extends JsonDeserializer { + public static class DateTimeDeserializer extends JsonDeserializer { @Override - public Date deserialize(JsonParser p, DeserializationContext ctx) throws IOException { + public OffsetDateTime deserialize(JsonParser p, DeserializationContext ctx) throws IOException { String dateString = p.getValueAsString(); - Date d = dateTimeFromString(dateString); + OffsetDateTime d = dateTimeFromString(dateString); if (d == null) { throw new IOException("Invalid date time format: " + dateString); } diff --git a/src/main/java/com/box/sdkgen/internal/utils/DateUtils.java b/src/main/java/com/box/sdkgen/internal/utils/DateUtils.java index 52abd38a1..bf9b4e18e 100644 --- a/src/main/java/com/box/sdkgen/internal/utils/DateUtils.java +++ b/src/main/java/com/box/sdkgen/internal/utils/DateUtils.java @@ -10,23 +10,23 @@ import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; -import java.util.Date; +import java.time.OffsetDateTime; public class DateUtils { - public static class DateSerializer extends JsonSerializer { + public static class DateSerializer extends JsonSerializer { @Override - public void serialize(Date value, JsonGenerator gen, SerializerProvider serializers) + public void serialize(OffsetDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException { String formattedDate = dateToString(value); gen.writeString(formattedDate); } } - public static class DateDeserializer extends JsonDeserializer { + public static class DateDeserializer extends JsonDeserializer { @Override - public Date deserialize(JsonParser p, DeserializationContext ctx) throws IOException { + public OffsetDateTime deserialize(JsonParser p, DeserializationContext ctx) throws IOException { String dateString = p.getValueAsString(); - Date d = dateFromString(dateString); + OffsetDateTime d = dateFromString(dateString); if (d == null) { throw new IOException("Invalid date format: " + dateString); } diff --git a/src/main/java/com/box/sdkgen/internal/utils/UtilsManager.java b/src/main/java/com/box/sdkgen/internal/utils/UtilsManager.java index d7a8c70a0..9e562a775 100644 --- a/src/main/java/com/box/sdkgen/internal/utils/UtilsManager.java +++ b/src/main/java/com/box/sdkgen/internal/utils/UtilsManager.java @@ -20,10 +20,12 @@ import java.nio.file.Files; import java.nio.file.Paths; import java.security.MessageDigest; -import java.text.SimpleDateFormat; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; import java.util.Arrays; import java.util.Base64; -import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -31,7 +33,6 @@ import java.util.Map; import java.util.Objects; import java.util.Set; -import java.util.TimeZone; import java.util.UUID; import java.util.function.BiFunction; import java.util.stream.Collectors; @@ -44,13 +45,15 @@ public class UtilsManager { private static final int BUFFER_SIZE = 8192; - private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd"); - private static final SimpleDateFormat DATE_TIME_FORMAT = - new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX"); - private static final SimpleDateFormat DATE_TIME_FORMAT_WITH_MILLIS = - new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); - private static final SimpleDateFormat DATE_TIME_FORMAT_WITH_MICROS = - new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSX"); + + private static final DateTimeFormatter OFFSET_DATE_TIME_FORMAT = + DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssXXX"); + private static final DateTimeFormatter OFFSET_DATE_TIME_FORMAT_WITH_MILLIS = + DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); + private static final DateTimeFormatter OFFSET_DATE_TIME_FORMAT_WITH_MICROS = + DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSSX"); + private static final DateTimeFormatter OFFSET_DATE_FORMAT = + DateTimeFormatter.ofPattern("yyyy-MM-dd"); public static Map mapOf(Entry... entries) { return Arrays.stream(entries) @@ -377,37 +380,54 @@ public static Map sanitizeMap( : entry.getValue())); } - public static Date dateTimeFromString(String dateString) { - SimpleDateFormat[] formats = { - DATE_TIME_FORMAT, DATE_TIME_FORMAT_WITH_MILLIS, DATE_TIME_FORMAT_WITH_MICROS + public static OffsetDateTime dateTimeFromString(String dateString) { + DateTimeFormatter[] formatters = { + OFFSET_DATE_TIME_FORMAT, + OFFSET_DATE_TIME_FORMAT_WITH_MILLIS, + OFFSET_DATE_TIME_FORMAT_WITH_MICROS }; - for (SimpleDateFormat format : formats) { + for (DateTimeFormatter formatter : formatters) { try { - return format.parse(dateString); - } catch (java.text.ParseException e) { + return OffsetDateTime.parse(dateString, formatter); + } catch (DateTimeParseException e) { // Ignore and try the next format } } return null; } - public static String dateTimeToString(Date dateTime) { - DATE_TIME_FORMAT_WITH_MILLIS.setTimeZone(TimeZone.getTimeZone("UTC")); - return DATE_TIME_FORMAT_WITH_MILLIS.format(dateTime); + public static String dateTimeToString(OffsetDateTime dateTime) { + return dateTime.format(OFFSET_DATE_TIME_FORMAT_WITH_MILLIS); } - public static Date dateFromString(String dateString) { + public static OffsetDateTime dateFromString(String dateString) { try { - return DATE_FORMAT.parse(dateString); - } catch (java.text.ParseException e) { + // For date-only strings, parse as date and convert to OffsetDateTime at start of day UTC + if (dateString.matches("\\d{4}-\\d{2}-\\d{2}")) { + return OffsetDateTime.parse(dateString + "T00:00:00Z"); + } + // Otherwise try to parse as full OffsetDateTime + DateTimeFormatter[] formatters = { + OFFSET_DATE_TIME_FORMAT, + OFFSET_DATE_TIME_FORMAT_WITH_MILLIS, + OFFSET_DATE_TIME_FORMAT_WITH_MICROS + }; + for (DateTimeFormatter formatter : formatters) { + try { + return OffsetDateTime.parse(dateString, formatter); + } catch (DateTimeParseException e) { + // Ignore and try the next format + } + } + return null; + } catch (DateTimeParseException e) { return null; } } - public static String dateToString(Date date) { - DATE_FORMAT.setTimeZone(TimeZone.getTimeZone("UTC")); - return DATE_FORMAT.format(date); + public static String dateToString(OffsetDateTime date) { + return date.format(OFFSET_DATE_FORMAT); } public static String escapeUnicode(String value) { @@ -441,12 +461,12 @@ public static String escapeUnicode(String value) { return result.toString(); } - public static Date epochSecondsToDateTime(long seconds) { - return new Date(seconds * 1000); + public static OffsetDateTime epochSecondsToDateTime(long seconds) { + return OffsetDateTime.ofInstant(java.time.Instant.ofEpochSecond(seconds), ZoneOffset.UTC); } - public static long dateTimeToEpochSeconds(Date dateTime) { - return dateTime.getTime() / 1000; + public static long dateTimeToEpochSeconds(OffsetDateTime dateTime) { + return dateTime.toEpochSecond(); } public static boolean compareSignatures(String expectedSignature, String receivedSignature) { @@ -486,7 +506,6 @@ public static String computeWebhookSignature( byte[] hmacDigest = mac.doFinal(); return Base64.getEncoder().encodeToString(hmacDigest); } catch (Exception e) { - System.err.println("Error computing webhook signature: " + e.getMessage()); return null; } } diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParams.java b/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParams.java index afb1b1821..351d648da 100644 --- a/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParams.java @@ -10,8 +10,8 @@ import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; +import java.time.OffsetDateTime; import java.util.ArrayList; -import java.util.Date; import java.util.List; public class GetEventStreamQueryParams { @@ -24,9 +24,9 @@ public class GetEventStreamQueryParams { public List> eventType; - public Date createdAfter; + public OffsetDateTime createdAfter; - public Date createdBefore; + public OffsetDateTime createdBefore; public GetEventStreamQueryParams() {} @@ -55,11 +55,11 @@ public List> getEventType() return eventType; } - public Date getCreatedAfter() { + public OffsetDateTime getCreatedAfter() { return createdAfter; } - public Date getCreatedBefore() { + public OffsetDateTime getCreatedBefore() { return createdBefore; } @@ -73,9 +73,9 @@ public static class Builder { protected List> eventType; - protected Date createdAfter; + protected OffsetDateTime createdAfter; - protected Date createdBefore; + protected OffsetDateTime createdBefore; public Builder streamType(GetEventStreamQueryParamsStreamTypeField streamType) { this.streamType = new EnumWrapper(streamType); @@ -104,12 +104,12 @@ public Builder eventType(List eventType) { return this; } - public Builder createdAfter(Date createdAfter) { + public Builder createdAfter(OffsetDateTime createdAfter) { this.createdAfter = createdAfter; return this; } - public Builder createdBefore(Date createdBefore) { + public Builder createdBefore(OffsetDateTime createdBefore) { this.createdBefore = createdBefore; return this; } diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParams.java b/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParams.java index 5470f5e47..f63cee421 100644 --- a/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParams.java @@ -10,8 +10,8 @@ import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; +import java.time.OffsetDateTime; import java.util.ArrayList; -import java.util.Date; import java.util.List; public class GetEventsQueryParams { @@ -24,9 +24,9 @@ public class GetEventsQueryParams { public List> eventType; - public Date createdAfter; + public OffsetDateTime createdAfter; - public Date createdBefore; + public OffsetDateTime createdBefore; public GetEventsQueryParams() {} @@ -55,11 +55,11 @@ public List> getEventType() { return eventType; } - public Date getCreatedAfter() { + public OffsetDateTime getCreatedAfter() { return createdAfter; } - public Date getCreatedBefore() { + public OffsetDateTime getCreatedBefore() { return createdBefore; } @@ -73,9 +73,9 @@ public static class Builder { protected List> eventType; - protected Date createdAfter; + protected OffsetDateTime createdAfter; - protected Date createdBefore; + protected OffsetDateTime createdBefore; public Builder streamType(GetEventsQueryParamsStreamTypeField streamType) { this.streamType = new EnumWrapper(streamType); @@ -103,12 +103,12 @@ public Builder eventType(List eventType) { return this; } - public Builder createdAfter(Date createdAfter) { + public Builder createdAfter(OffsetDateTime createdAfter) { this.createdAfter = createdAfter; return this; } - public Builder createdBefore(Date createdBefore) { + public Builder createdBefore(OffsetDateTime createdBefore) { this.createdBefore = createdBefore; return this; } diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBody.java index 450be353e..d47188f95 100644 --- a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBody.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.List; import java.util.Objects; @@ -30,7 +30,7 @@ public class UpdateFileByIdRequestBody extends SerializableObject { @JsonProperty("disposition_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date dispositionAt; + protected OffsetDateTime dispositionAt; protected UpdateFileByIdRequestBodyPermissionsField permissions; @@ -76,7 +76,7 @@ public UpdateFileByIdRequestBodyLockField getLock() { return lock; } - public Date getDispositionAt() { + public OffsetDateTime getDispositionAt() { return dispositionAt; } @@ -171,7 +171,7 @@ public static class Builder extends NullableFieldTracker { protected UpdateFileByIdRequestBodyLockField lock; - protected Date dispositionAt; + protected OffsetDateTime dispositionAt; protected UpdateFileByIdRequestBodyPermissionsField permissions; @@ -206,7 +206,7 @@ public Builder lock(UpdateFileByIdRequestBodyLockField lock) { return this; } - public Builder dispositionAt(Date dispositionAt) { + public Builder dispositionAt(OffsetDateTime dispositionAt) { this.dispositionAt = dispositionAt; return this; } diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyLockField.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyLockField.java index 6d401aa61..c38cd950b 100644 --- a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyLockField.java +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyLockField.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -27,7 +27,7 @@ public class UpdateFileByIdRequestBodyLockField extends SerializableObject { @JsonProperty("expires_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date expiresAt; + protected OffsetDateTime expiresAt; @JsonProperty("is_download_prevented") protected Boolean isDownloadPrevented; @@ -48,7 +48,7 @@ public EnumWrapper getAccess() { return access; } - public Date getExpiresAt() { + public OffsetDateTime getExpiresAt() { return expiresAt; } @@ -96,7 +96,7 @@ public static class Builder extends NullableFieldTracker { protected EnumWrapper access; - protected Date expiresAt; + protected OffsetDateTime expiresAt; protected Boolean isDownloadPrevented; @@ -110,7 +110,7 @@ public Builder access(EnumWrapper acce return this; } - public Builder expiresAt(Date expiresAt) { + public Builder expiresAt(OffsetDateTime expiresAt) { this.expiresAt = expiresAt; return this; } diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkField.java index 842176d43..32133376b 100644 --- a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkField.java +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkField.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -33,7 +33,7 @@ public class UpdateFileByIdRequestBodySharedLinkField extends SerializableObject @JsonProperty("unshared_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date unsharedAt; + protected OffsetDateTime unsharedAt; protected UpdateFileByIdRequestBodySharedLinkPermissionsField permissions; @@ -63,7 +63,7 @@ public String getVanityName() { return vanityName; } - public Date getUnsharedAt() { + public OffsetDateTime getUnsharedAt() { return unsharedAt; } @@ -125,7 +125,7 @@ public static class Builder extends NullableFieldTracker { protected String vanityName; - protected Date unsharedAt; + protected OffsetDateTime unsharedAt; protected UpdateFileByIdRequestBodySharedLinkPermissionsField permissions; @@ -150,7 +150,7 @@ public Builder vanityName(String vanityName) { return this; } - public Builder unsharedAt(Date unsharedAt) { + public Builder unsharedAt(OffsetDateTime unsharedAt) { this.unsharedAt = unsharedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkField.java index 242730ee4..5157a780e 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkField.java +++ b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkField.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -33,7 +33,7 @@ public class UpdateFolderByIdRequestBodySharedLinkField extends SerializableObje @JsonProperty("unshared_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date unsharedAt; + protected OffsetDateTime unsharedAt; protected UpdateFolderByIdRequestBodySharedLinkPermissionsField permissions; @@ -63,7 +63,7 @@ public String getVanityName() { return vanityName; } - public Date getUnsharedAt() { + public OffsetDateTime getUnsharedAt() { return unsharedAt; } @@ -126,7 +126,7 @@ public static class Builder extends NullableFieldTracker { protected String vanityName; - protected Date unsharedAt; + protected OffsetDateTime unsharedAt; protected UpdateFolderByIdRequestBodySharedLinkPermissionsField permissions; @@ -151,7 +151,7 @@ public Builder vanityName(String vanityName) { return this; } - public Builder unsharedAt(Date unsharedAt) { + public Builder unsharedAt(OffsetDateTime unsharedAt) { this.unsharedAt = unsharedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/CreateLegalHoldPolicyRequestBody.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/CreateLegalHoldPolicyRequestBody.java index 8cb861d78..8937a2f54 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/CreateLegalHoldPolicyRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/CreateLegalHoldPolicyRequestBody.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -21,12 +21,12 @@ public class CreateLegalHoldPolicyRequestBody extends SerializableObject { @JsonProperty("filter_started_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date filterStartedAt; + protected OffsetDateTime filterStartedAt; @JsonProperty("filter_ended_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date filterEndedAt; + protected OffsetDateTime filterEndedAt; @JsonProperty("is_ongoing") protected Boolean isOngoing; @@ -54,11 +54,11 @@ public String getDescription() { return description; } - public Date getFilterStartedAt() { + public OffsetDateTime getFilterStartedAt() { return filterStartedAt; } - public Date getFilterEndedAt() { + public OffsetDateTime getFilterEndedAt() { return filterEndedAt; } @@ -118,9 +118,9 @@ public static class Builder extends NullableFieldTracker { protected String description; - protected Date filterStartedAt; + protected OffsetDateTime filterStartedAt; - protected Date filterEndedAt; + protected OffsetDateTime filterEndedAt; protected Boolean isOngoing; @@ -134,12 +134,12 @@ public Builder description(String description) { return this; } - public Builder filterStartedAt(Date filterStartedAt) { + public Builder filterStartedAt(OffsetDateTime filterStartedAt) { this.filterStartedAt = filterStartedAt; return this; } - public Builder filterEndedAt(Date filterEndedAt) { + public Builder filterEndedAt(OffsetDateTime filterEndedAt) { this.filterEndedAt = filterEndedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkField.java index 25ae2cc86..b2d91906f 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkField.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkField.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -33,7 +33,7 @@ public class AddShareLinkToFileRequestBodySharedLinkField extends SerializableOb @JsonProperty("unshared_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date unsharedAt; + protected OffsetDateTime unsharedAt; protected AddShareLinkToFileRequestBodySharedLinkPermissionsField permissions; @@ -63,7 +63,7 @@ public String getVanityName() { return vanityName; } - public Date getUnsharedAt() { + public OffsetDateTime getUnsharedAt() { return unsharedAt; } @@ -126,7 +126,7 @@ public static class Builder extends NullableFieldTracker { protected String vanityName; - protected Date unsharedAt; + protected OffsetDateTime unsharedAt; protected AddShareLinkToFileRequestBodySharedLinkPermissionsField permissions; @@ -151,7 +151,7 @@ public Builder vanityName(String vanityName) { return this; } - public Builder unsharedAt(Date unsharedAt) { + public Builder unsharedAt(OffsetDateTime unsharedAt) { this.unsharedAt = unsharedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkField.java index 77b4a8ba3..01298aa7f 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkField.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkField.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -33,7 +33,7 @@ public class UpdateSharedLinkOnFileRequestBodySharedLinkField extends Serializab @JsonProperty("unshared_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date unsharedAt; + protected OffsetDateTime unsharedAt; protected UpdateSharedLinkOnFileRequestBodySharedLinkPermissionsField permissions; @@ -63,7 +63,7 @@ public String getVanityName() { return vanityName; } - public Date getUnsharedAt() { + public OffsetDateTime getUnsharedAt() { return unsharedAt; } @@ -126,7 +126,7 @@ public static class Builder extends NullableFieldTracker { protected String vanityName; - protected Date unsharedAt; + protected OffsetDateTime unsharedAt; protected UpdateSharedLinkOnFileRequestBodySharedLinkPermissionsField permissions; @@ -152,7 +152,7 @@ public Builder vanityName(String vanityName) { return this; } - public Builder unsharedAt(Date unsharedAt) { + public Builder unsharedAt(OffsetDateTime unsharedAt) { this.unsharedAt = unsharedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkField.java index 7095f44c9..5119cf0f5 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkField.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkField.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -33,7 +33,7 @@ public class AddShareLinkToFolderRequestBodySharedLinkField extends Serializable @JsonProperty("unshared_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date unsharedAt; + protected OffsetDateTime unsharedAt; protected AddShareLinkToFolderRequestBodySharedLinkPermissionsField permissions; @@ -63,7 +63,7 @@ public String getVanityName() { return vanityName; } - public Date getUnsharedAt() { + public OffsetDateTime getUnsharedAt() { return unsharedAt; } @@ -126,7 +126,7 @@ public static class Builder extends NullableFieldTracker { protected String vanityName; - protected Date unsharedAt; + protected OffsetDateTime unsharedAt; protected AddShareLinkToFolderRequestBodySharedLinkPermissionsField permissions; @@ -152,7 +152,7 @@ public Builder vanityName(String vanityName) { return this; } - public Builder unsharedAt(Date unsharedAt) { + public Builder unsharedAt(OffsetDateTime unsharedAt) { this.unsharedAt = unsharedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkField.java index 320d90291..62b0f9976 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkField.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkField.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -32,7 +32,7 @@ public class UpdateSharedLinkOnFolderRequestBodySharedLinkField extends Serializ @JsonProperty("unshared_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date unsharedAt; + protected OffsetDateTime unsharedAt; protected UpdateSharedLinkOnFolderRequestBodySharedLinkPermissionsField permissions; @@ -62,7 +62,7 @@ public String getVanityName() { return vanityName; } - public Date getUnsharedAt() { + public OffsetDateTime getUnsharedAt() { return unsharedAt; } @@ -125,7 +125,7 @@ public static class Builder extends NullableFieldTracker { protected String vanityName; - protected Date unsharedAt; + protected OffsetDateTime unsharedAt; protected UpdateSharedLinkOnFolderRequestBodySharedLinkPermissionsField permissions; @@ -151,7 +151,7 @@ public Builder vanityName(String vanityName) { return this; } - public Builder unsharedAt(Date unsharedAt) { + public Builder unsharedAt(OffsetDateTime unsharedAt) { this.unsharedAt = unsharedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkField.java index 7b187511f..b4ccbd3fc 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkField.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkField.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -33,7 +33,7 @@ public class AddShareLinkToWebLinkRequestBodySharedLinkField extends Serializabl @JsonProperty("unshared_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date unsharedAt; + protected OffsetDateTime unsharedAt; protected AddShareLinkToWebLinkRequestBodySharedLinkPermissionsField permissions; @@ -63,7 +63,7 @@ public String getVanityName() { return vanityName; } - public Date getUnsharedAt() { + public OffsetDateTime getUnsharedAt() { return unsharedAt; } @@ -126,7 +126,7 @@ public static class Builder extends NullableFieldTracker { protected String vanityName; - protected Date unsharedAt; + protected OffsetDateTime unsharedAt; protected AddShareLinkToWebLinkRequestBodySharedLinkPermissionsField permissions; @@ -152,7 +152,7 @@ public Builder vanityName(String vanityName) { return this; } - public Builder unsharedAt(Date unsharedAt) { + public Builder unsharedAt(OffsetDateTime unsharedAt) { this.unsharedAt = unsharedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkField.java index 626ba9c14..f771296b3 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkField.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkField.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -33,7 +33,7 @@ public class UpdateSharedLinkOnWebLinkRequestBodySharedLinkField extends Seriali @JsonProperty("unshared_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date unsharedAt; + protected OffsetDateTime unsharedAt; protected UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField permissions; @@ -63,7 +63,7 @@ public String getVanityName() { return vanityName; } - public Date getUnsharedAt() { + public OffsetDateTime getUnsharedAt() { return unsharedAt; } @@ -126,7 +126,7 @@ public static class Builder extends NullableFieldTracker { protected String vanityName; - protected Date unsharedAt; + protected OffsetDateTime unsharedAt; protected UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField permissions; @@ -153,7 +153,7 @@ public Builder vanityName(String vanityName) { return this; } - public Builder unsharedAt(Date unsharedAt) { + public Builder unsharedAt(OffsetDateTime unsharedAt) { this.unsharedAt = unsharedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBody.java b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBody.java index 58fee0bbf..d420edf31 100644 --- a/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBody.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -27,7 +27,7 @@ public class CreateTaskRequestBody extends SerializableObject { @JsonProperty("due_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date dueAt; + protected OffsetDateTime dueAt; @JsonDeserialize( using = @@ -67,7 +67,7 @@ public String getMessage() { return message; } - public Date getDueAt() { + public OffsetDateTime getDueAt() { return dueAt; } @@ -129,7 +129,7 @@ public static class Builder extends NullableFieldTracker { protected String message; - protected Date dueAt; + protected OffsetDateTime dueAt; protected EnumWrapper completionRule; @@ -153,7 +153,7 @@ public Builder message(String message) { return this; } - public Builder dueAt(Date dueAt) { + public Builder dueAt(OffsetDateTime dueAt) { this.dueAt = dueAt; return this; } diff --git a/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBody.java index e745e03b6..c3efd5712 100644 --- a/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBody.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -28,7 +28,7 @@ public class UpdateTaskByIdRequestBody extends SerializableObject { @JsonProperty("due_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date dueAt; + protected OffsetDateTime dueAt; @JsonDeserialize( using = @@ -62,7 +62,7 @@ public String getMessage() { return message; } - public Date getDueAt() { + public OffsetDateTime getDueAt() { return dueAt; } @@ -117,7 +117,7 @@ public static class Builder extends NullableFieldTracker { protected String message; - protected Date dueAt; + protected OffsetDateTime dueAt; protected EnumWrapper completionRule; @@ -136,7 +136,7 @@ public Builder message(String message) { return this; } - public Builder dueAt(Date dueAt) { + public Builder dueAt(OffsetDateTime dueAt) { this.dueAt = dueAt; return this; } diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBodyAttributesField.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBodyAttributesField.java index 212239aac..00dde2d1c 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBodyAttributesField.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBodyAttributesField.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -20,12 +20,12 @@ public class UploadFileRequestBodyAttributesField extends SerializableObject { @JsonProperty("content_created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date contentCreatedAt; + protected OffsetDateTime contentCreatedAt; @JsonProperty("content_modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date contentModifiedAt; + protected OffsetDateTime contentModifiedAt; public UploadFileRequestBodyAttributesField( @JsonProperty("name") String name, @@ -52,11 +52,11 @@ public UploadFileRequestBodyAttributesParentField getParent() { return parent; } - public Date getContentCreatedAt() { + public OffsetDateTime getContentCreatedAt() { return contentCreatedAt; } - public Date getContentModifiedAt() { + public OffsetDateTime getContentModifiedAt() { return contentModifiedAt; } @@ -107,9 +107,9 @@ public static class Builder extends NullableFieldTracker { protected final UploadFileRequestBodyAttributesParentField parent; - protected Date contentCreatedAt; + protected OffsetDateTime contentCreatedAt; - protected Date contentModifiedAt; + protected OffsetDateTime contentModifiedAt; public Builder(String name, UploadFileRequestBodyAttributesParentField parent) { super(); @@ -117,12 +117,12 @@ public Builder(String name, UploadFileRequestBodyAttributesParentField parent) { this.parent = parent; } - public Builder contentCreatedAt(Date contentCreatedAt) { + public Builder contentCreatedAt(OffsetDateTime contentCreatedAt) { this.contentCreatedAt = contentCreatedAt; return this; } - public Builder contentModifiedAt(Date contentModifiedAt) { + public Builder contentModifiedAt(OffsetDateTime contentModifiedAt) { this.contentModifiedAt = contentModifiedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionRequestBodyAttributesField.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionRequestBodyAttributesField.java index 03800febd..0b50aeafd 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionRequestBodyAttributesField.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionRequestBodyAttributesField.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -18,7 +18,7 @@ public class UploadFileVersionRequestBodyAttributesField extends SerializableObj @JsonProperty("content_modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date contentModifiedAt; + protected OffsetDateTime contentModifiedAt; public UploadFileVersionRequestBodyAttributesField(@JsonProperty("name") String name) { super(); @@ -36,7 +36,7 @@ public String getName() { return name; } - public Date getContentModifiedAt() { + public OffsetDateTime getContentModifiedAt() { return contentModifiedAt; } @@ -76,14 +76,14 @@ public static class Builder extends NullableFieldTracker { protected final String name; - protected Date contentModifiedAt; + protected OffsetDateTime contentModifiedAt; public Builder(String name) { super(); this.name = name; } - public Builder contentModifiedAt(Date contentModifiedAt) { + public Builder contentModifiedAt(OffsetDateTime contentModifiedAt) { this.contentModifiedAt = contentModifiedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBodyAttributesField.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBodyAttributesField.java index c60cacb6e..564d16d35 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBodyAttributesField.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBodyAttributesField.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -20,12 +20,12 @@ public class UploadWithPreflightCheckRequestBodyAttributesField extends Serializ @JsonProperty("content_created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date contentCreatedAt; + protected OffsetDateTime contentCreatedAt; @JsonProperty("content_modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date contentModifiedAt; + protected OffsetDateTime contentModifiedAt; protected final int size; @@ -57,11 +57,11 @@ public UploadWithPreflightCheckRequestBodyAttributesParentField getParent() { return parent; } - public Date getContentCreatedAt() { + public OffsetDateTime getContentCreatedAt() { return contentCreatedAt; } - public Date getContentModifiedAt() { + public OffsetDateTime getContentModifiedAt() { return contentModifiedAt; } @@ -122,9 +122,9 @@ public static class Builder extends NullableFieldTracker { protected final UploadWithPreflightCheckRequestBodyAttributesParentField parent; - protected Date contentCreatedAt; + protected OffsetDateTime contentCreatedAt; - protected Date contentModifiedAt; + protected OffsetDateTime contentModifiedAt; protected final int size; @@ -136,12 +136,12 @@ public Builder( this.size = size; } - public Builder contentCreatedAt(Date contentCreatedAt) { + public Builder contentCreatedAt(OffsetDateTime contentCreatedAt) { this.contentCreatedAt = contentCreatedAt; return this; } - public Builder contentModifiedAt(Date contentModifiedAt) { + public Builder contentModifiedAt(OffsetDateTime contentModifiedAt) { this.contentModifiedAt = contentModifiedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBody.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBody.java index a86d275e5..a684adf70 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBody.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -38,7 +38,7 @@ public class CreateCollaborationRequestBody extends SerializableObject { @JsonProperty("expires_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date expiresAt; + protected OffsetDateTime expiresAt; public CreateCollaborationRequestBody( CreateCollaborationRequestBodyItemField item, @@ -91,7 +91,7 @@ public Boolean getCanViewPath() { return canViewPath; } - public Date getExpiresAt() { + public OffsetDateTime getExpiresAt() { return expiresAt; } @@ -158,7 +158,7 @@ public static class Builder extends NullableFieldTracker { protected Boolean canViewPath; - protected Date expiresAt; + protected OffsetDateTime expiresAt; public Builder( CreateCollaborationRequestBodyItemField item, @@ -190,7 +190,7 @@ public Builder canViewPath(Boolean canViewPath) { return this; } - public Builder expiresAt(Date expiresAt) { + public Builder expiresAt(OffsetDateTime expiresAt) { this.expiresAt = expiresAt; return this; } diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBody.java index e1b0de905..bcdfe2b4d 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBody.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -37,7 +37,7 @@ public class UpdateCollaborationByIdRequestBody extends SerializableObject { @JsonProperty("expires_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date expiresAt; + protected OffsetDateTime expiresAt; @JsonProperty("can_view_path") protected Boolean canViewPath; @@ -70,7 +70,7 @@ public EnumWrapper getStatus() { return status; } - public Date getExpiresAt() { + public OffsetDateTime getExpiresAt() { return expiresAt; } @@ -125,7 +125,7 @@ public static class Builder extends NullableFieldTracker { protected EnumWrapper status; - protected Date expiresAt; + protected OffsetDateTime expiresAt; protected Boolean canViewPath; @@ -149,7 +149,7 @@ public Builder status(EnumWrapper return this; } - public Builder expiresAt(Date expiresAt) { + public Builder expiresAt(OffsetDateTime expiresAt) { this.expiresAt = expiresAt; return this; } diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/WebhooksManager.java b/src/main/java/com/box/sdkgen/managers/webhooks/WebhooksManager.java index 09bd96b73..b03488449 100644 --- a/src/main/java/com/box/sdkgen/managers/webhooks/WebhooksManager.java +++ b/src/main/java/com/box/sdkgen/managers/webhooks/WebhooksManager.java @@ -19,7 +19,7 @@ import com.box.sdkgen.schemas.webhook.Webhook; import com.box.sdkgen.schemas.webhooks.Webhooks; import com.box.sdkgen.serialization.json.JsonManager; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Map; public class WebhooksManager { @@ -206,7 +206,7 @@ public static boolean validateMessage( String primaryKey, String secondaryKey, Integer maxAge) { - Date deliveryTimestamp = dateTimeFromString(headers.get("box-delivery-timestamp")); + OffsetDateTime deliveryTimestamp = dateTimeFromString(headers.get("box-delivery-timestamp")); long currentEpoch = getEpochTimeInSeconds(); if (currentEpoch - maxAge > dateTimeToEpochSeconds(deliveryTimestamp) || dateTimeToEpochSeconds(deliveryTimestamp) > currentEpoch) { diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodySharedLinkField.java index 7bc6df5e3..60e3e6773 100644 --- a/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodySharedLinkField.java +++ b/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodySharedLinkField.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -33,7 +33,7 @@ public class UpdateWebLinkByIdRequestBodySharedLinkField extends SerializableObj @JsonProperty("unshared_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date unsharedAt; + protected OffsetDateTime unsharedAt; public UpdateWebLinkByIdRequestBodySharedLinkField() { super(); @@ -60,7 +60,7 @@ public String getVanityName() { return vanityName; } - public Date getUnsharedAt() { + public OffsetDateTime getUnsharedAt() { return unsharedAt; } @@ -114,7 +114,7 @@ public static class Builder extends NullableFieldTracker { protected String vanityName; - protected Date unsharedAt; + protected OffsetDateTime unsharedAt; public Builder access(UpdateWebLinkByIdRequestBodySharedLinkAccessField access) { this.access = new EnumWrapper(access); @@ -137,7 +137,7 @@ public Builder vanityName(String vanityName) { return this; } - public Builder unsharedAt(Date unsharedAt) { + public Builder unsharedAt(OffsetDateTime unsharedAt) { this.unsharedAt = unsharedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/aidialoguehistory/AiDialogueHistory.java b/src/main/java/com/box/sdkgen/schemas/aidialoguehistory/AiDialogueHistory.java index 24a0f724e..2f6ae3449 100644 --- a/src/main/java/com/box/sdkgen/schemas/aidialoguehistory/AiDialogueHistory.java +++ b/src/main/java/com/box/sdkgen/schemas/aidialoguehistory/AiDialogueHistory.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -20,7 +20,7 @@ public class AiDialogueHistory extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; public AiDialogueHistory() { super(); @@ -42,7 +42,7 @@ public String getAnswer() { return answer; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } @@ -88,7 +88,7 @@ public static class Builder extends NullableFieldTracker { protected String answer; - protected Date createdAt; + protected OffsetDateTime createdAt; public Builder prompt(String prompt) { this.prompt = prompt; @@ -100,7 +100,7 @@ public Builder answer(String answer) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java index 468796cf9..a728e4ff0 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -20,7 +20,7 @@ public class AiExtractStructuredResponse extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected final Date createdAt; + protected final OffsetDateTime createdAt; @JsonProperty("completion_reason") protected String completionReason; @@ -30,7 +30,7 @@ public class AiExtractStructuredResponse extends SerializableObject { public AiExtractStructuredResponse( @JsonProperty("answer") AiExtractResponse answer, - @JsonProperty("created_at") Date createdAt) { + @JsonProperty("created_at") OffsetDateTime createdAt) { super(); this.answer = answer; this.createdAt = createdAt; @@ -49,7 +49,7 @@ public AiExtractResponse getAnswer() { return answer; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } @@ -106,13 +106,13 @@ public static class Builder extends NullableFieldTracker { protected final AiExtractResponse answer; - protected final Date createdAt; + protected final OffsetDateTime createdAt; protected String completionReason; protected AiAgentInfo aiAgentInfo; - public Builder(AiExtractResponse answer, Date createdAt) { + public Builder(AiExtractResponse answer, OffsetDateTime createdAt) { super(); this.answer = answer; this.createdAt = createdAt; diff --git a/src/main/java/com/box/sdkgen/schemas/airesponse/AiResponse.java b/src/main/java/com/box/sdkgen/schemas/airesponse/AiResponse.java index f71069b8f..5e0adc0a7 100644 --- a/src/main/java/com/box/sdkgen/schemas/airesponse/AiResponse.java +++ b/src/main/java/com/box/sdkgen/schemas/airesponse/AiResponse.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -19,7 +19,7 @@ public class AiResponse extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected final Date createdAt; + protected final OffsetDateTime createdAt; @JsonProperty("completion_reason") protected String completionReason; @@ -28,7 +28,7 @@ public class AiResponse extends SerializableObject { protected AiAgentInfo aiAgentInfo; public AiResponse( - @JsonProperty("answer") String answer, @JsonProperty("created_at") Date createdAt) { + @JsonProperty("answer") String answer, @JsonProperty("created_at") OffsetDateTime createdAt) { super(); this.answer = answer; this.createdAt = createdAt; @@ -47,7 +47,7 @@ public String getAnswer() { return answer; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } @@ -104,13 +104,13 @@ public static class Builder extends NullableFieldTracker { protected final String answer; - protected final Date createdAt; + protected final OffsetDateTime createdAt; protected String completionReason; protected AiAgentInfo aiAgentInfo; - public Builder(String answer, Date createdAt) { + public Builder(String answer, OffsetDateTime createdAt) { super(); this.answer = answer; this.createdAt = createdAt; diff --git a/src/main/java/com/box/sdkgen/schemas/airesponsefull/AiResponseFull.java b/src/main/java/com/box/sdkgen/schemas/airesponsefull/AiResponseFull.java index 3acf3d8a6..be8a5f80f 100644 --- a/src/main/java/com/box/sdkgen/schemas/airesponsefull/AiResponseFull.java +++ b/src/main/java/com/box/sdkgen/schemas/airesponsefull/AiResponseFull.java @@ -5,7 +5,7 @@ import com.box.sdkgen.schemas.airesponse.AiResponse; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.List; import java.util.Objects; @@ -15,7 +15,7 @@ public class AiResponseFull extends AiResponse { protected List citations; public AiResponseFull( - @JsonProperty("answer") String answer, @JsonProperty("created_at") Date createdAt) { + @JsonProperty("answer") String answer, @JsonProperty("created_at") OffsetDateTime createdAt) { super(answer, createdAt); } @@ -79,7 +79,7 @@ public static class Builder extends AiResponse.Builder { protected List citations; - public Builder(String answer, Date createdAt) { + public Builder(String answer, OffsetDateTime createdAt) { super(answer, createdAt); } diff --git a/src/main/java/com/box/sdkgen/schemas/aisingleagentresponse/AiSingleAgentResponse.java b/src/main/java/com/box/sdkgen/schemas/aisingleagentresponse/AiSingleAgentResponse.java index e3fe896b2..e9274ffc7 100644 --- a/src/main/java/com/box/sdkgen/schemas/aisingleagentresponse/AiSingleAgentResponse.java +++ b/src/main/java/com/box/sdkgen/schemas/aisingleagentresponse/AiSingleAgentResponse.java @@ -10,7 +10,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.List; import java.util.Objects; @@ -38,7 +38,7 @@ public class AiSingleAgentResponse extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("modified_by") protected UserBase modifiedBy; @@ -46,7 +46,7 @@ public class AiSingleAgentResponse extends SerializableObject { @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; @JsonProperty("icon_reference") protected String iconReference; @@ -106,7 +106,7 @@ public UserBase getCreatedBy() { return createdBy; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } @@ -114,7 +114,7 @@ public UserBase getModifiedBy() { return modifiedBy; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } @@ -227,11 +227,11 @@ public static class Builder extends NullableFieldTracker { protected UserBase createdBy; - protected Date createdAt; + protected OffsetDateTime createdAt; protected UserBase modifiedBy; - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; protected String iconReference; @@ -260,7 +260,7 @@ public Builder createdBy(UserBase createdBy) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } @@ -270,7 +270,7 @@ public Builder modifiedBy(UserBase modifiedBy) { return this; } - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/aisingleagentresponsefull/AiSingleAgentResponseFull.java b/src/main/java/com/box/sdkgen/schemas/aisingleagentresponsefull/AiSingleAgentResponseFull.java index b8276520e..92e28569d 100644 --- a/src/main/java/com/box/sdkgen/schemas/aisingleagentresponsefull/AiSingleAgentResponseFull.java +++ b/src/main/java/com/box/sdkgen/schemas/aisingleagentresponsefull/AiSingleAgentResponseFull.java @@ -10,7 +10,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.List; import java.util.Objects; @@ -203,7 +203,7 @@ public Builder createdBy(UserBase createdBy) { } @Override - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } @@ -215,7 +215,7 @@ public Builder modifiedBy(UserBase modifiedBy) { } @Override - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/collaboration/Collaboration.java b/src/main/java/com/box/sdkgen/schemas/collaboration/Collaboration.java index 45ad0b1af..6e6ff09e0 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaboration/Collaboration.java +++ b/src/main/java/com/box/sdkgen/schemas/collaboration/Collaboration.java @@ -17,7 +17,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -50,7 +50,7 @@ public class Collaboration extends SerializableObject { @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date expiresAt; + protected OffsetDateTime expiresAt; @JsonProperty("is_access_only") protected Boolean isAccessOnly; @@ -62,7 +62,7 @@ public class Collaboration extends SerializableObject { @JsonProperty("acknowledged_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date acknowledgedAt; + protected OffsetDateTime acknowledgedAt; @JsonProperty("created_by") protected UserCollaborations createdBy; @@ -70,12 +70,12 @@ public class Collaboration extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; @JsonProperty("acceptance_requirements_status") protected CollaborationAcceptanceRequirementsStatusField acceptanceRequirementsStatus; @@ -134,7 +134,7 @@ public EnumWrapper getRole() { return role; } - public Date getExpiresAt() { + public OffsetDateTime getExpiresAt() { return expiresAt; } @@ -146,7 +146,7 @@ public EnumWrapper getStatus() { return status; } - public Date getAcknowledgedAt() { + public OffsetDateTime getAcknowledgedAt() { return acknowledgedAt; } @@ -154,11 +154,11 @@ public UserCollaborations getCreatedBy() { return createdBy; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } @@ -293,19 +293,19 @@ public static class Builder extends NullableFieldTracker { protected EnumWrapper role; - protected Date expiresAt; + protected OffsetDateTime expiresAt; protected Boolean isAccessOnly; protected EnumWrapper status; - protected Date acknowledgedAt; + protected OffsetDateTime acknowledgedAt; protected UserCollaborations createdBy; - protected Date createdAt; + protected OffsetDateTime createdAt; - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; protected CollaborationAcceptanceRequirementsStatusField acceptanceRequirementsStatus; @@ -386,7 +386,7 @@ public Builder role(EnumWrapper role) { return this; } - public Builder expiresAt(Date expiresAt) { + public Builder expiresAt(OffsetDateTime expiresAt) { this.expiresAt = expiresAt; this.markNullableFieldAsSet("expires_at"); return this; @@ -407,7 +407,7 @@ public Builder status(EnumWrapper status) { return this; } - public Builder acknowledgedAt(Date acknowledgedAt) { + public Builder acknowledgedAt(OffsetDateTime acknowledgedAt) { this.acknowledgedAt = acknowledgedAt; return this; } @@ -417,12 +417,12 @@ public Builder createdBy(UserCollaborations createdBy) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntry.java b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntry.java index 53a581efc..8cb8f86e6 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntry.java +++ b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntry.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -42,7 +42,7 @@ public class CollaborationAllowlistEntry extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; public CollaborationAllowlistEntry() { super(); @@ -79,7 +79,7 @@ public CollaborationAllowlistEntryEnterpriseField getEnterprise() { return enterprise; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } @@ -146,7 +146,7 @@ public static class Builder extends NullableFieldTracker { protected CollaborationAllowlistEntryEnterpriseField enterprise; - protected Date createdAt; + protected OffsetDateTime createdAt; public Builder id(String id) { this.id = id; @@ -183,7 +183,7 @@ public Builder enterprise(CollaborationAllowlistEntryEnterpriseField enterprise) return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTarget.java b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTarget.java index ec5377520..926454554 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTarget.java +++ b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTarget.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -34,12 +34,12 @@ public class CollaborationAllowlistExemptTarget extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; public CollaborationAllowlistExemptTarget() { super(); @@ -72,11 +72,11 @@ public UserMini getUser() { return user; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } @@ -141,9 +141,9 @@ public static class Builder extends NullableFieldTracker { protected UserMini user; - protected Date createdAt; + protected OffsetDateTime createdAt; - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; public Builder id(String id) { this.id = id; @@ -170,12 +170,12 @@ public Builder user(UserMini user) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationitem/CollaborationItem.java b/src/main/java/com/box/sdkgen/schemas/collaborationitem/CollaborationItem.java index 1ec5a9c53..982a3d250 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaborationitem/CollaborationItem.java +++ b/src/main/java/com/box/sdkgen/schemas/collaborationitem/CollaborationItem.java @@ -16,7 +16,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.IOException; -import java.util.Date; +import java.time.OffsetDateTime; @JsonDeserialize(using = CollaborationItem.CollaborationItemDeserializer.class) @JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) @@ -24,13 +24,13 @@ public class CollaborationItem extends OneOfThree { protected final String description; - protected final Date createdAt; + protected final OffsetDateTime createdAt; - protected final Date modifiedAt; + protected final OffsetDateTime modifiedAt; - protected final Date trashedAt; + protected final OffsetDateTime trashedAt; - protected final Date purgedAt; + protected final OffsetDateTime purgedAt; protected final UserMini createdBy; @@ -137,19 +137,19 @@ public String getDescription() { return description; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } - public Date getTrashedAt() { + public OffsetDateTime getTrashedAt() { return trashedAt; } - public Date getPurgedAt() { + public OffsetDateTime getPurgedAt() { return purgedAt; } diff --git a/src/main/java/com/box/sdkgen/schemas/comment/Comment.java b/src/main/java/com/box/sdkgen/schemas/comment/Comment.java index 4939eb86f..c9ab994b5 100644 --- a/src/main/java/com/box/sdkgen/schemas/comment/Comment.java +++ b/src/main/java/com/box/sdkgen/schemas/comment/Comment.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -26,12 +26,12 @@ public class Comment extends CommentBase { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; protected CommentItemField item; @@ -62,11 +62,11 @@ public UserMini getCreatedBy() { return createdBy; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } @@ -143,9 +143,9 @@ public static class Builder extends CommentBase.Builder { protected UserMini createdBy; - protected Date createdAt; + protected OffsetDateTime createdAt; - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; protected CommentItemField item; @@ -164,12 +164,12 @@ public Builder createdBy(UserMini createdBy) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/commentfull/CommentFull.java b/src/main/java/com/box/sdkgen/schemas/commentfull/CommentFull.java index d57ff6d56..fb1578afe 100644 --- a/src/main/java/com/box/sdkgen/schemas/commentfull/CommentFull.java +++ b/src/main/java/com/box/sdkgen/schemas/commentfull/CommentFull.java @@ -7,7 +7,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -143,13 +143,13 @@ public Builder createdBy(UserMini createdBy) { } @Override - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } @Override - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/event/Event.java b/src/main/java/com/box/sdkgen/schemas/event/Event.java index 3558071d6..f48ac6fb3 100644 --- a/src/main/java/com/box/sdkgen/schemas/event/Event.java +++ b/src/main/java/com/box/sdkgen/schemas/event/Event.java @@ -15,7 +15,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Map; import java.util.Objects; @@ -27,12 +27,12 @@ public class Event extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("recorded_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date recordedAt; + protected OffsetDateTime recordedAt; @JsonProperty("event_id") protected String eventId; @@ -75,11 +75,11 @@ public String getType() { return type; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getRecordedAt() { + public OffsetDateTime getRecordedAt() { return recordedAt; } @@ -186,9 +186,9 @@ public static class Builder extends NullableFieldTracker { protected String type; - protected Date createdAt; + protected OffsetDateTime createdAt; - protected Date recordedAt; + protected OffsetDateTime recordedAt; protected String eventId; @@ -207,12 +207,12 @@ public Builder type(String type) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } - public Builder recordedAt(Date recordedAt) { + public Builder recordedAt(OffsetDateTime recordedAt) { this.recordedAt = recordedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/file/File.java b/src/main/java/com/box/sdkgen/schemas/file/File.java index 5c8100b38..61cce4e6f 100644 --- a/src/main/java/com/box/sdkgen/schemas/file/File.java +++ b/src/main/java/com/box/sdkgen/schemas/file/File.java @@ -12,7 +12,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -28,36 +28,36 @@ public class File extends FileMini { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; @JsonProperty("trashed_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date trashedAt; + protected OffsetDateTime trashedAt; @JsonProperty("purged_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date purgedAt; + protected OffsetDateTime purgedAt; @JsonProperty("content_created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date contentCreatedAt; + protected OffsetDateTime contentCreatedAt; @JsonProperty("content_modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date contentModifiedAt; + protected OffsetDateTime contentModifiedAt; @JsonProperty("created_by") protected UserMini createdBy; @@ -114,27 +114,27 @@ public FilePathCollectionField getPathCollection() { return pathCollection; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } - public Date getTrashedAt() { + public OffsetDateTime getTrashedAt() { return trashedAt; } - public Date getPurgedAt() { + public OffsetDateTime getPurgedAt() { return purgedAt; } - public Date getContentCreatedAt() { + public OffsetDateTime getContentCreatedAt() { return contentCreatedAt; } - public Date getContentModifiedAt() { + public OffsetDateTime getContentModifiedAt() { return contentModifiedAt; } @@ -323,17 +323,17 @@ public static class Builder extends FileMini.Builder { protected FilePathCollectionField pathCollection; - protected Date createdAt; + protected OffsetDateTime createdAt; - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; - protected Date trashedAt; + protected OffsetDateTime trashedAt; - protected Date purgedAt; + protected OffsetDateTime purgedAt; - protected Date contentCreatedAt; + protected OffsetDateTime contentCreatedAt; - protected Date contentModifiedAt; + protected OffsetDateTime contentModifiedAt; protected UserMini createdBy; @@ -366,35 +366,35 @@ public Builder pathCollection(FilePathCollectionField pathCollection) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; return this; } - public Builder trashedAt(Date trashedAt) { + public Builder trashedAt(OffsetDateTime trashedAt) { this.trashedAt = trashedAt; this.markNullableFieldAsSet("trashed_at"); return this; } - public Builder purgedAt(Date purgedAt) { + public Builder purgedAt(OffsetDateTime purgedAt) { this.purgedAt = purgedAt; this.markNullableFieldAsSet("purged_at"); return this; } - public Builder contentCreatedAt(Date contentCreatedAt) { + public Builder contentCreatedAt(OffsetDateTime contentCreatedAt) { this.contentCreatedAt = contentCreatedAt; this.markNullableFieldAsSet("content_created_at"); return this; } - public Builder contentModifiedAt(Date contentModifiedAt) { + public Builder contentModifiedAt(OffsetDateTime contentModifiedAt) { this.contentModifiedAt = contentModifiedAt; this.markNullableFieldAsSet("content_modified_at"); return this; diff --git a/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkField.java b/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkField.java index 94e13a8c0..650c1a30e 100644 --- a/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkField.java +++ b/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkField.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -56,7 +56,7 @@ public class FileSharedLinkField extends SerializableObject { @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date unsharedAt; + protected OffsetDateTime unsharedAt; @JsonProperty("is_password_enabled") protected final boolean isPasswordEnabled; @@ -182,7 +182,7 @@ public EnumWrapper getEffectivePermissio return effectivePermission; } - public Date getUnsharedAt() { + public OffsetDateTime getUnsharedAt() { return unsharedAt; } @@ -311,7 +311,7 @@ public static class Builder extends NullableFieldTracker { protected final EnumWrapper effectivePermission; - protected Date unsharedAt; + protected OffsetDateTime unsharedAt; protected final boolean isPasswordEnabled; @@ -415,7 +415,7 @@ public Builder access(EnumWrapper access) { return this; } - public Builder unsharedAt(Date unsharedAt) { + public Builder unsharedAt(OffsetDateTime unsharedAt) { this.unsharedAt = unsharedAt; this.markNullableFieldAsSet("unshared_at"); return this; diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFull.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFull.java index e4f41be32..737823de9 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefull/FileFull.java +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFull.java @@ -24,8 +24,8 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.IOException; +import java.time.OffsetDateTime; import java.util.ArrayList; -import java.util.Date; import java.util.List; import java.util.Objects; @@ -75,7 +75,7 @@ public class FileFull extends File { @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date expiresAt; + protected OffsetDateTime expiresAt; protected FileFullRepresentationsField representations; @@ -88,7 +88,7 @@ public class FileFull extends File { @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date dispositionAt; + protected OffsetDateTime dispositionAt; @JsonDeserialize(using = SharedLinkPermissionOptionsDeserializer.class) @JsonSerialize(using = SharedLinkPermissionOptionsSerializer.class) @@ -185,7 +185,7 @@ public FileFullMetadataField getMetadata() { return metadata; } - public Date getExpiresAt() { + public OffsetDateTime getExpiresAt() { return expiresAt; } @@ -201,7 +201,7 @@ public String getUploaderDisplayName() { return uploaderDisplayName; } - public Date getDispositionAt() { + public OffsetDateTime getDispositionAt() { return dispositionAt; } @@ -523,7 +523,7 @@ public static class Builder extends File.Builder { protected FileFullMetadataField metadata; - protected Date expiresAt; + protected OffsetDateTime expiresAt; protected FileFullRepresentationsField representations; @@ -531,7 +531,7 @@ public static class Builder extends File.Builder { protected String uploaderDisplayName; - protected Date dispositionAt; + protected OffsetDateTime dispositionAt; protected List> sharedLinkPermissionOptions; @@ -615,7 +615,7 @@ public Builder metadata(FileFullMetadataField metadata) { return this; } - public Builder expiresAt(Date expiresAt) { + public Builder expiresAt(OffsetDateTime expiresAt) { this.expiresAt = expiresAt; this.markNullableFieldAsSet("expires_at"); return this; @@ -636,7 +636,7 @@ public Builder uploaderDisplayName(String uploaderDisplayName) { return this; } - public Builder dispositionAt(Date dispositionAt) { + public Builder dispositionAt(OffsetDateTime dispositionAt) { this.dispositionAt = dispositionAt; this.markNullableFieldAsSet("disposition_at"); return this; @@ -718,40 +718,40 @@ public Builder pathCollection(FilePathCollectionField pathCollection) { } @Override - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } @Override - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; return this; } @Override - public Builder trashedAt(Date trashedAt) { + public Builder trashedAt(OffsetDateTime trashedAt) { this.trashedAt = trashedAt; this.markNullableFieldAsSet("trashed_at"); return this; } @Override - public Builder purgedAt(Date purgedAt) { + public Builder purgedAt(OffsetDateTime purgedAt) { this.purgedAt = purgedAt; this.markNullableFieldAsSet("purged_at"); return this; } @Override - public Builder contentCreatedAt(Date contentCreatedAt) { + public Builder contentCreatedAt(OffsetDateTime contentCreatedAt) { this.contentCreatedAt = contentCreatedAt; this.markNullableFieldAsSet("content_created_at"); return this; } @Override - public Builder contentModifiedAt(Date contentModifiedAt) { + public Builder contentModifiedAt(OffsetDateTime contentModifiedAt) { this.contentModifiedAt = contentModifiedAt; this.markNullableFieldAsSet("content_modified_at"); return this; diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockField.java index 6796a5a4d..d27579c37 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockField.java +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockField.java @@ -10,7 +10,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -28,12 +28,12 @@ public class FileFullLockField extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("expired_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date expiredAt; + protected OffsetDateTime expiredAt; @JsonProperty("is_download_prevented") protected Boolean isDownloadPrevented; @@ -72,11 +72,11 @@ public UserMini getCreatedBy() { return createdBy; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getExpiredAt() { + public OffsetDateTime getExpiredAt() { return expiredAt; } @@ -152,9 +152,9 @@ public static class Builder extends NullableFieldTracker { protected UserMini createdBy; - protected Date createdAt; + protected OffsetDateTime createdAt; - protected Date expiredAt; + protected OffsetDateTime expiredAt; protected Boolean isDownloadPrevented; @@ -180,12 +180,12 @@ public Builder createdBy(UserMini createdBy) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } - public Builder expiredAt(Date expiredAt) { + public Builder expiredAt(OffsetDateTime expiredAt) { this.expiredAt = expiredAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequest.java b/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequest.java index c75b3c88e..ae5d63887 100644 --- a/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequest.java +++ b/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequest.java @@ -11,7 +11,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -40,7 +40,7 @@ public class FileRequest extends SerializableObject { @JsonProperty("expires_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date expiresAt; + protected OffsetDateTime expiresAt; protected final FolderMini folder; @@ -54,7 +54,7 @@ public class FileRequest extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected final Date createdAt; + protected final OffsetDateTime createdAt; @JsonProperty("updated_by") protected UserMini updatedBy; @@ -62,13 +62,13 @@ public class FileRequest extends SerializableObject { @JsonProperty("updated_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected final Date updatedAt; + protected final OffsetDateTime updatedAt; public FileRequest( @JsonProperty("id") String id, @JsonProperty("folder") FolderMini folder, - @JsonProperty("created_at") Date createdAt, - @JsonProperty("updated_at") Date updatedAt) { + @JsonProperty("created_at") OffsetDateTime createdAt, + @JsonProperty("updated_at") OffsetDateTime updatedAt) { super(); this.id = id; this.folder = folder; @@ -125,7 +125,7 @@ public Boolean getIsDescriptionRequired() { return isDescriptionRequired; } - public Date getExpiresAt() { + public OffsetDateTime getExpiresAt() { return expiresAt; } @@ -145,7 +145,7 @@ public UserMini getCreatedBy() { return createdBy; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } @@ -153,7 +153,7 @@ public UserMini getUpdatedBy() { return updatedBy; } - public Date getUpdatedAt() { + public OffsetDateTime getUpdatedAt() { return updatedAt; } @@ -284,7 +284,7 @@ public static class Builder extends NullableFieldTracker { protected Boolean isDescriptionRequired; - protected Date expiresAt; + protected OffsetDateTime expiresAt; protected final FolderMini folder; @@ -294,13 +294,14 @@ public static class Builder extends NullableFieldTracker { protected UserMini createdBy; - protected final Date createdAt; + protected final OffsetDateTime createdAt; protected UserMini updatedBy; - protected final Date updatedAt; + protected final OffsetDateTime updatedAt; - public Builder(String id, FolderMini folder, Date createdAt, Date updatedAt) { + public Builder( + String id, FolderMini folder, OffsetDateTime createdAt, OffsetDateTime updatedAt) { super(); this.id = id; this.folder = folder; @@ -350,7 +351,7 @@ public Builder isDescriptionRequired(Boolean isDescriptionRequired) { return this; } - public Builder expiresAt(Date expiresAt) { + public Builder expiresAt(OffsetDateTime expiresAt) { this.expiresAt = expiresAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequest.java b/src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequest.java index aeb5343ca..d2316fe9f 100644 --- a/src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequest.java +++ b/src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequest.java @@ -5,7 +5,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -131,7 +131,7 @@ public Builder isDescriptionRequired(Boolean isDescriptionRequired) { } @Override - public Builder expiresAt(Date expiresAt) { + public Builder expiresAt(OffsetDateTime expiresAt) { this.expiresAt = expiresAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/filerequestupdaterequest/FileRequestUpdateRequest.java b/src/main/java/com/box/sdkgen/schemas/filerequestupdaterequest/FileRequestUpdateRequest.java index 6c3e3f3d5..a868b89ed 100644 --- a/src/main/java/com/box/sdkgen/schemas/filerequestupdaterequest/FileRequestUpdateRequest.java +++ b/src/main/java/com/box/sdkgen/schemas/filerequestupdaterequest/FileRequestUpdateRequest.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -35,7 +35,7 @@ public class FileRequestUpdateRequest extends SerializableObject { @JsonProperty("expires_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date expiresAt; + protected OffsetDateTime expiresAt; public FileRequestUpdateRequest() { super(); @@ -72,7 +72,7 @@ public Boolean getIsDescriptionRequired() { return isDescriptionRequired; } - public Date getExpiresAt() { + public OffsetDateTime getExpiresAt() { return expiresAt; } @@ -140,7 +140,7 @@ public static class Builder extends NullableFieldTracker { protected Boolean isDescriptionRequired; - protected Date expiresAt; + protected OffsetDateTime expiresAt; public Builder title(String title) { this.title = title; @@ -172,7 +172,7 @@ public Builder isDescriptionRequired(Boolean isDescriptionRequired) { return this; } - public Builder expiresAt(Date expiresAt) { + public Builder expiresAt(OffsetDateTime expiresAt) { this.expiresAt = expiresAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/fileversion/FileVersion.java b/src/main/java/com/box/sdkgen/schemas/fileversion/FileVersion.java index 4b85b2f25..e32577ac0 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileversion/FileVersion.java +++ b/src/main/java/com/box/sdkgen/schemas/fileversion/FileVersion.java @@ -10,7 +10,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -23,12 +23,12 @@ public class FileVersion extends FileVersionMini { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; @JsonProperty("modified_by") protected UserMini modifiedBy; @@ -37,7 +37,7 @@ public class FileVersion extends FileVersionMini { @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date trashedAt; + protected OffsetDateTime trashedAt; @JsonProperty("trashed_by") protected UserMini trashedBy; @@ -46,7 +46,7 @@ public class FileVersion extends FileVersionMini { @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date restoredAt; + protected OffsetDateTime restoredAt; @JsonProperty("restored_by") protected UserMini restoredBy; @@ -55,7 +55,7 @@ public class FileVersion extends FileVersionMini { @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date purgedAt; + protected OffsetDateTime purgedAt; @JsonProperty("uploader_display_name") protected String uploaderDisplayName; @@ -88,11 +88,11 @@ public Long getSize() { return size; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } @@ -100,7 +100,7 @@ public UserMini getModifiedBy() { return modifiedBy; } - public Date getTrashedAt() { + public OffsetDateTime getTrashedAt() { return trashedAt; } @@ -108,7 +108,7 @@ public UserMini getTrashedBy() { return trashedBy; } - public Date getRestoredAt() { + public OffsetDateTime getRestoredAt() { return restoredAt; } @@ -116,7 +116,7 @@ public UserMini getRestoredBy() { return restoredBy; } - public Date getPurgedAt() { + public OffsetDateTime getPurgedAt() { return purgedAt; } @@ -235,21 +235,21 @@ public static class Builder extends FileVersionMini.Builder { protected Long size; - protected Date createdAt; + protected OffsetDateTime createdAt; - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; protected UserMini modifiedBy; - protected Date trashedAt; + protected OffsetDateTime trashedAt; protected UserMini trashedBy; - protected Date restoredAt; + protected OffsetDateTime restoredAt; protected UserMini restoredBy; - protected Date purgedAt; + protected OffsetDateTime purgedAt; protected String uploaderDisplayName; @@ -267,12 +267,12 @@ public Builder size(Long size) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; return this; } @@ -282,7 +282,7 @@ public Builder modifiedBy(UserMini modifiedBy) { return this; } - public Builder trashedAt(Date trashedAt) { + public Builder trashedAt(OffsetDateTime trashedAt) { this.trashedAt = trashedAt; this.markNullableFieldAsSet("trashed_at"); return this; @@ -293,7 +293,7 @@ public Builder trashedBy(UserMini trashedBy) { return this; } - public Builder restoredAt(Date restoredAt) { + public Builder restoredAt(OffsetDateTime restoredAt) { this.restoredAt = restoredAt; this.markNullableFieldAsSet("restored_at"); return this; @@ -304,7 +304,7 @@ public Builder restoredBy(UserMini restoredBy) { return this; } - public Builder purgedAt(Date purgedAt) { + public Builder purgedAt(OffsetDateTime purgedAt) { this.purgedAt = purgedAt; this.markNullableFieldAsSet("purged_at"); return this; diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionfull/FileVersionFull.java b/src/main/java/com/box/sdkgen/schemas/fileversionfull/FileVersionFull.java index 6381563b8..7ce267263 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileversionfull/FileVersionFull.java +++ b/src/main/java/com/box/sdkgen/schemas/fileversionfull/FileVersionFull.java @@ -6,7 +6,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -184,13 +184,13 @@ public Builder size(Long size) { } @Override - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } @Override - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; return this; } @@ -202,7 +202,7 @@ public Builder modifiedBy(UserMini modifiedBy) { } @Override - public Builder trashedAt(Date trashedAt) { + public Builder trashedAt(OffsetDateTime trashedAt) { this.trashedAt = trashedAt; this.markNullableFieldAsSet("trashed_at"); return this; @@ -215,7 +215,7 @@ public Builder trashedBy(UserMini trashedBy) { } @Override - public Builder restoredAt(Date restoredAt) { + public Builder restoredAt(OffsetDateTime restoredAt) { this.restoredAt = restoredAt; this.markNullableFieldAsSet("restored_at"); return this; @@ -228,7 +228,7 @@ public Builder restoredBy(UserMini restoredBy) { } @Override - public Builder purgedAt(Date purgedAt) { + public Builder purgedAt(OffsetDateTime purgedAt) { this.purgedAt = purgedAt; this.markNullableFieldAsSet("purged_at"); return this; diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionlegalhold/FileVersionLegalHold.java b/src/main/java/com/box/sdkgen/schemas/fileversionlegalhold/FileVersionLegalHold.java index ac5175762..8cd74f76a 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileversionlegalhold/FileVersionLegalHold.java +++ b/src/main/java/com/box/sdkgen/schemas/fileversionlegalhold/FileVersionLegalHold.java @@ -11,7 +11,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.List; import java.util.Objects; @@ -37,7 +37,7 @@ public class FileVersionLegalHold extends SerializableObject { @JsonProperty("deleted_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date deletedAt; + protected OffsetDateTime deletedAt; public FileVersionLegalHold() { super(); @@ -74,7 +74,7 @@ public List getLegalHoldPolicyAssignments() { return legalHoldPolicyAssignments; } - public Date getDeletedAt() { + public OffsetDateTime getDeletedAt() { return deletedAt; } @@ -141,7 +141,7 @@ public static class Builder extends NullableFieldTracker { protected List legalHoldPolicyAssignments; - protected Date deletedAt; + protected OffsetDateTime deletedAt; public Builder id(String id) { this.id = id; @@ -174,7 +174,7 @@ public Builder legalHoldPolicyAssignments( return this; } - public Builder deletedAt(Date deletedAt) { + public Builder deletedAt(OffsetDateTime deletedAt) { this.deletedAt = deletedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionretention/FileVersionRetention.java b/src/main/java/com/box/sdkgen/schemas/fileversionretention/FileVersionRetention.java index f9fb3b811..d5124da98 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileversionretention/FileVersionRetention.java +++ b/src/main/java/com/box/sdkgen/schemas/fileversionretention/FileVersionRetention.java @@ -11,7 +11,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -33,12 +33,12 @@ public class FileVersionRetention extends SerializableObject { @JsonProperty("applied_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date appliedAt; + protected OffsetDateTime appliedAt; @JsonProperty("disposition_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date dispositionAt; + protected OffsetDateTime dispositionAt; @JsonProperty("winning_retention_policy") protected RetentionPolicyMini winningRetentionPolicy; @@ -75,11 +75,11 @@ public FileMini getFile() { return file; } - public Date getAppliedAt() { + public OffsetDateTime getAppliedAt() { return appliedAt; } - public Date getDispositionAt() { + public OffsetDateTime getDispositionAt() { return dispositionAt; } @@ -154,9 +154,9 @@ public static class Builder extends NullableFieldTracker { protected FileMini file; - protected Date appliedAt; + protected OffsetDateTime appliedAt; - protected Date dispositionAt; + protected OffsetDateTime dispositionAt; protected RetentionPolicyMini winningRetentionPolicy; @@ -185,12 +185,12 @@ public Builder file(FileMini file) { return this; } - public Builder appliedAt(Date appliedAt) { + public Builder appliedAt(OffsetDateTime appliedAt) { this.appliedAt = appliedAt; return this; } - public Builder dispositionAt(Date dispositionAt) { + public Builder dispositionAt(OffsetDateTime dispositionAt) { this.dispositionAt = dispositionAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/folder/Folder.java b/src/main/java/com/box/sdkgen/schemas/folder/Folder.java index a2ae049ad..7c0e9131b 100644 --- a/src/main/java/com/box/sdkgen/schemas/folder/Folder.java +++ b/src/main/java/com/box/sdkgen/schemas/folder/Folder.java @@ -11,7 +11,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -21,13 +21,13 @@ public class Folder extends FolderMini { @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; protected String description; @@ -46,25 +46,25 @@ public class Folder extends FolderMini { @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date trashedAt; + protected OffsetDateTime trashedAt; @JsonProperty("purged_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date purgedAt; + protected OffsetDateTime purgedAt; @JsonProperty("content_created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date contentCreatedAt; + protected OffsetDateTime contentCreatedAt; @JsonProperty("content_modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date contentModifiedAt; + protected OffsetDateTime contentModifiedAt; @JsonProperty("owned_by") protected UserMini ownedBy; @@ -113,11 +113,11 @@ protected Folder(Builder builder) { markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } @@ -141,19 +141,19 @@ public UserMini getModifiedBy() { return modifiedBy; } - public Date getTrashedAt() { + public OffsetDateTime getTrashedAt() { return trashedAt; } - public Date getPurgedAt() { + public OffsetDateTime getPurgedAt() { return purgedAt; } - public Date getContentCreatedAt() { + public OffsetDateTime getContentCreatedAt() { return contentCreatedAt; } - public Date getContentModifiedAt() { + public OffsetDateTime getContentModifiedAt() { return contentModifiedAt; } @@ -336,9 +336,9 @@ public String toString() { public static class Builder extends FolderMini.Builder { - protected Date createdAt; + protected OffsetDateTime createdAt; - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; protected String description; @@ -350,13 +350,13 @@ public static class Builder extends FolderMini.Builder { protected UserMini modifiedBy; - protected Date trashedAt; + protected OffsetDateTime trashedAt; - protected Date purgedAt; + protected OffsetDateTime purgedAt; - protected Date contentCreatedAt; + protected OffsetDateTime contentCreatedAt; - protected Date contentModifiedAt; + protected OffsetDateTime contentModifiedAt; protected UserMini ownedBy; @@ -374,13 +374,13 @@ public Builder(String id) { super(id); } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; this.markNullableFieldAsSet("created_at"); return this; } - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; this.markNullableFieldAsSet("modified_at"); return this; @@ -411,25 +411,25 @@ public Builder modifiedBy(UserMini modifiedBy) { return this; } - public Builder trashedAt(Date trashedAt) { + public Builder trashedAt(OffsetDateTime trashedAt) { this.trashedAt = trashedAt; this.markNullableFieldAsSet("trashed_at"); return this; } - public Builder purgedAt(Date purgedAt) { + public Builder purgedAt(OffsetDateTime purgedAt) { this.purgedAt = purgedAt; this.markNullableFieldAsSet("purged_at"); return this; } - public Builder contentCreatedAt(Date contentCreatedAt) { + public Builder contentCreatedAt(OffsetDateTime contentCreatedAt) { this.contentCreatedAt = contentCreatedAt; this.markNullableFieldAsSet("content_created_at"); return this; } - public Builder contentModifiedAt(Date contentModifiedAt) { + public Builder contentModifiedAt(OffsetDateTime contentModifiedAt) { this.contentModifiedAt = contentModifiedAt; this.markNullableFieldAsSet("content_modified_at"); return this; diff --git a/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkField.java b/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkField.java index 6f25a0344..76567561c 100644 --- a/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkField.java +++ b/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkField.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -59,7 +59,7 @@ public class FolderSharedLinkField extends SerializableObject { @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date unsharedAt; + protected OffsetDateTime unsharedAt; @JsonProperty("is_password_enabled") protected final boolean isPasswordEnabled; @@ -185,7 +185,7 @@ public EnumWrapper getEffectivePermiss return effectivePermission; } - public Date getUnsharedAt() { + public OffsetDateTime getUnsharedAt() { return unsharedAt; } @@ -314,7 +314,7 @@ public static class Builder extends NullableFieldTracker { protected final EnumWrapper effectivePermission; - protected Date unsharedAt; + protected OffsetDateTime unsharedAt; protected final boolean isPasswordEnabled; @@ -418,7 +418,7 @@ public Builder access(EnumWrapper access) { return this; } - public Builder unsharedAt(Date unsharedAt) { + public Builder unsharedAt(OffsetDateTime unsharedAt) { this.unsharedAt = unsharedAt; this.markNullableFieldAsSet("unshared_at"); return this; diff --git a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFull.java b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFull.java index 765c8a22d..e4853ef00 100644 --- a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFull.java +++ b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFull.java @@ -23,8 +23,8 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.IOException; +import java.time.OffsetDateTime; import java.util.ArrayList; -import java.util.Date; import java.util.List; import java.util.Objects; @@ -563,14 +563,14 @@ public Builder name(String name) { } @Override - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; this.markNullableFieldAsSet("created_at"); return this; } @Override - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; this.markNullableFieldAsSet("modified_at"); return this; @@ -607,28 +607,28 @@ public Builder modifiedBy(UserMini modifiedBy) { } @Override - public Builder trashedAt(Date trashedAt) { + public Builder trashedAt(OffsetDateTime trashedAt) { this.trashedAt = trashedAt; this.markNullableFieldAsSet("trashed_at"); return this; } @Override - public Builder purgedAt(Date purgedAt) { + public Builder purgedAt(OffsetDateTime purgedAt) { this.purgedAt = purgedAt; this.markNullableFieldAsSet("purged_at"); return this; } @Override - public Builder contentCreatedAt(Date contentCreatedAt) { + public Builder contentCreatedAt(OffsetDateTime contentCreatedAt) { this.contentCreatedAt = contentCreatedAt; this.markNullableFieldAsSet("content_created_at"); return this; } @Override - public Builder contentModifiedAt(Date contentModifiedAt) { + public Builder contentModifiedAt(OffsetDateTime contentModifiedAt) { this.contentModifiedAt = contentModifiedAt; this.markNullableFieldAsSet("content_modified_at"); return this; diff --git a/src/main/java/com/box/sdkgen/schemas/folderlock/FolderLock.java b/src/main/java/com/box/sdkgen/schemas/folderlock/FolderLock.java index 8bb4e4363..df2b09d92 100644 --- a/src/main/java/com/box/sdkgen/schemas/folderlock/FolderLock.java +++ b/src/main/java/com/box/sdkgen/schemas/folderlock/FolderLock.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -27,7 +27,7 @@ public class FolderLock extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("locked_operations") protected FolderLockLockedOperationsField lockedOperations; @@ -67,7 +67,7 @@ public UserBase getCreatedBy() { return createdBy; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } @@ -145,7 +145,7 @@ public static class Builder extends NullableFieldTracker { protected UserBase createdBy; - protected Date createdAt; + protected OffsetDateTime createdAt; protected FolderLockLockedOperationsField lockedOperations; @@ -171,7 +171,7 @@ public Builder createdBy(UserBase createdBy) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/group/Group.java b/src/main/java/com/box/sdkgen/schemas/group/Group.java index 01b150ff2..e6ff5625d 100644 --- a/src/main/java/com/box/sdkgen/schemas/group/Group.java +++ b/src/main/java/com/box/sdkgen/schemas/group/Group.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -18,12 +18,12 @@ public class Group extends GroupMini { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; public Group(@JsonProperty("id") String id) { super(id); @@ -36,11 +36,11 @@ protected Group(Builder builder) { markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } @@ -97,20 +97,20 @@ public String toString() { public static class Builder extends GroupMini.Builder { - protected Date createdAt; + protected OffsetDateTime createdAt; - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; public Builder(String id) { super(id); } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFull.java b/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFull.java index a8feb3161..65ab39e07 100644 --- a/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFull.java +++ b/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFull.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -265,13 +265,13 @@ public Builder groupType(EnumWrapper groupType) { } @Override - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } @Override - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembership.java b/src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembership.java index 74af30bb1..74f68db5d 100644 --- a/src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembership.java +++ b/src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembership.java @@ -10,7 +10,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -33,12 +33,12 @@ public class GroupMembership extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; public GroupMembership() { super(); @@ -76,11 +76,11 @@ public EnumWrapper getRole() { return role; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } @@ -152,9 +152,9 @@ public static class Builder extends NullableFieldTracker { protected EnumWrapper role; - protected Date createdAt; + protected OffsetDateTime createdAt; - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; public Builder id(String id) { this.id = id; @@ -191,12 +191,12 @@ public Builder role(EnumWrapper role) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMapping.java b/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMapping.java index b98f7e365..690bde72c 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMapping.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMapping.java @@ -12,7 +12,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -49,12 +49,12 @@ public class IntegrationMapping extends IntegrationMappingBase { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; public IntegrationMapping( @JsonProperty("id") String id, @@ -107,11 +107,11 @@ public FolderMini getBoxItem() { return boxItem; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } @@ -218,9 +218,9 @@ public static class Builder extends IntegrationMappingBase.Builder { protected final FolderMini boxItem; - protected Date createdAt; + protected OffsetDateTime createdAt; - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; public Builder(String id, IntegrationMappingPartnerItemSlack partnerItem, FolderMini boxItem) { super(id); @@ -260,12 +260,12 @@ public Builder modifiedBy(UserIntegrationMappings modifiedBy) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeams.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeams.java index 987002ff9..aeb9f1cba 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeams.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeams.java @@ -10,7 +10,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -39,12 +39,12 @@ public class IntegrationMappingTeams extends IntegrationMappingBase { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; public IntegrationMappingTeams( @JsonProperty("id") String id, @@ -82,11 +82,11 @@ public FolderReference getBoxItem() { return boxItem; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } @@ -169,9 +169,9 @@ public static class Builder extends IntegrationMappingBase.Builder { protected final FolderReference boxItem; - protected Date createdAt; + protected OffsetDateTime createdAt; - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; public Builder( String id, IntegrationMappingPartnerItemTeams partnerItem, FolderReference boxItem) { @@ -197,12 +197,12 @@ public Builder isOverriddenByManualMapping(Boolean isOverriddenByManualMapping) return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/invite/Invite.java b/src/main/java/com/box/sdkgen/schemas/invite/Invite.java index 2f56a051c..104079490 100644 --- a/src/main/java/com/box/sdkgen/schemas/invite/Invite.java +++ b/src/main/java/com/box/sdkgen/schemas/invite/Invite.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -35,12 +35,12 @@ public class Invite extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; public Invite(@JsonProperty("id") String id) { super(); @@ -85,11 +85,11 @@ public String getStatus() { return status; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } @@ -169,9 +169,9 @@ public static class Builder extends NullableFieldTracker { protected String status; - protected Date createdAt; + protected OffsetDateTime createdAt; - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; public Builder(String id) { super(); @@ -209,12 +209,12 @@ public Builder status(String status) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCard.java b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCard.java index 65ee6b600..cf77499c2 100644 --- a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCard.java +++ b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCard.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.List; import java.util.Objects; @@ -18,7 +18,7 @@ public class KeywordSkillCard extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonDeserialize(using = KeywordSkillCardTypeField.KeywordSkillCardTypeFieldDeserializer.class) @JsonSerialize(using = KeywordSkillCardTypeField.KeywordSkillCardTypeFieldSerializer.class) @@ -67,7 +67,7 @@ protected KeywordSkillCard(Builder builder) { markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } @@ -153,7 +153,7 @@ public String toString() { public static class Builder extends NullableFieldTracker { - protected Date createdAt; + protected OffsetDateTime createdAt; protected EnumWrapper type; @@ -181,7 +181,7 @@ public Builder( KeywordSkillCardSkillCardTypeField.KEYWORD); } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicy.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicy.java index 7e5a9da48..71ca3b891 100644 --- a/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicy.java +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicy.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -33,27 +33,27 @@ public class LegalHoldPolicy extends LegalHoldPolicyMini { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; @JsonProperty("deleted_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date deletedAt; + protected OffsetDateTime deletedAt; @JsonProperty("filter_started_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date filterStartedAt; + protected OffsetDateTime filterStartedAt; @JsonProperty("filter_ended_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date filterEndedAt; + protected OffsetDateTime filterEndedAt; @JsonProperty("release_notes") protected String releaseNotes; @@ -98,23 +98,23 @@ public UserMini getCreatedBy() { return createdBy; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } - public Date getDeletedAt() { + public OffsetDateTime getDeletedAt() { return deletedAt; } - public Date getFilterStartedAt() { + public OffsetDateTime getFilterStartedAt() { return filterStartedAt; } - public Date getFilterEndedAt() { + public OffsetDateTime getFilterEndedAt() { return filterEndedAt; } @@ -233,15 +233,15 @@ public static class Builder extends LegalHoldPolicyMini.Builder { protected UserMini createdBy; - protected Date createdAt; + protected OffsetDateTime createdAt; - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; - protected Date deletedAt; + protected OffsetDateTime deletedAt; - protected Date filterStartedAt; + protected OffsetDateTime filterStartedAt; - protected Date filterEndedAt; + protected OffsetDateTime filterEndedAt; protected String releaseNotes; @@ -279,27 +279,27 @@ public Builder createdBy(UserMini createdBy) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; return this; } - public Builder deletedAt(Date deletedAt) { + public Builder deletedAt(OffsetDateTime deletedAt) { this.deletedAt = deletedAt; return this; } - public Builder filterStartedAt(Date filterStartedAt) { + public Builder filterStartedAt(OffsetDateTime filterStartedAt) { this.filterStartedAt = filterStartedAt; return this; } - public Builder filterEndedAt(Date filterEndedAt) { + public Builder filterEndedAt(OffsetDateTime filterEndedAt) { this.filterEndedAt = filterEndedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassigneditem/LegalHoldPolicyAssignedItem.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassigneditem/LegalHoldPolicyAssignedItem.java index ad0536ef0..57735e084 100644 --- a/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassigneditem/LegalHoldPolicyAssignedItem.java +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassigneditem/LegalHoldPolicyAssignedItem.java @@ -16,7 +16,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.IOException; -import java.util.Date; +import java.time.OffsetDateTime; @JsonDeserialize(using = LegalHoldPolicyAssignedItem.LegalHoldPolicyAssignedItemDeserializer.class) @JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) @@ -24,13 +24,13 @@ public class LegalHoldPolicyAssignedItem extends OneOfThree { protected final Long size; - protected final Date createdAt; + protected final OffsetDateTime createdAt; - protected final Date modifiedAt; + protected final OffsetDateTime modifiedAt; - protected final Date trashedAt; + protected final OffsetDateTime trashedAt; - protected final Date purgedAt; + protected final OffsetDateTime purgedAt; - protected final Date contentCreatedAt; + protected final OffsetDateTime contentCreatedAt; - protected final Date contentModifiedAt; + protected final OffsetDateTime contentModifiedAt; protected final UserMini createdBy; @@ -174,27 +174,27 @@ public long getSize() { return size; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } - public Date getTrashedAt() { + public OffsetDateTime getTrashedAt() { return trashedAt; } - public Date getPurgedAt() { + public OffsetDateTime getPurgedAt() { return purgedAt; } - public Date getContentCreatedAt() { + public OffsetDateTime getContentCreatedAt() { return contentCreatedAt; } - public Date getContentModifiedAt() { + public OffsetDateTime getContentModifiedAt() { return contentModifiedAt; } diff --git a/src/main/java/com/box/sdkgen/schemas/recentitem/RecentItem.java b/src/main/java/com/box/sdkgen/schemas/recentitem/RecentItem.java index 362316825..72fd2ba37 100644 --- a/src/main/java/com/box/sdkgen/schemas/recentitem/RecentItem.java +++ b/src/main/java/com/box/sdkgen/schemas/recentitem/RecentItem.java @@ -12,7 +12,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -32,7 +32,7 @@ public class RecentItem extends SerializableObject { @JsonProperty("interacted_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date interactedAt; + protected OffsetDateTime interactedAt; @JsonProperty("interaction_shared_link") protected String interactionSharedLink; @@ -63,7 +63,7 @@ public EnumWrapper getInteractionType() { return interactionType; } - public Date getInteractedAt() { + public OffsetDateTime getInteractedAt() { return interactedAt; } @@ -125,7 +125,7 @@ public static class Builder extends NullableFieldTracker { protected EnumWrapper interactionType; - protected Date interactedAt; + protected OffsetDateTime interactedAt; protected String interactionSharedLink; @@ -164,7 +164,7 @@ public Builder interactionType(EnumWrapper inter return this; } - public Builder interactedAt(Date interactedAt) { + public Builder interactedAt(OffsetDateTime interactedAt) { this.interactedAt = interactedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/recentitemresource/RecentItemResource.java b/src/main/java/com/box/sdkgen/schemas/recentitemresource/RecentItemResource.java index b2a5b72a7..2bc62d002 100644 --- a/src/main/java/com/box/sdkgen/schemas/recentitemresource/RecentItemResource.java +++ b/src/main/java/com/box/sdkgen/schemas/recentitemresource/RecentItemResource.java @@ -16,7 +16,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.IOException; -import java.util.Date; +import java.time.OffsetDateTime; @JsonDeserialize(using = RecentItemResource.RecentItemResourceDeserializer.class) @JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) @@ -24,13 +24,13 @@ public class RecentItemResource extends OneOfThree protected final String description; - protected final Date createdAt; + protected final OffsetDateTime createdAt; - protected final Date modifiedAt; + protected final OffsetDateTime modifiedAt; - protected final Date trashedAt; + protected final OffsetDateTime trashedAt; - protected final Date purgedAt; + protected final OffsetDateTime purgedAt; protected final UserMini createdBy; @@ -137,19 +137,19 @@ public String getDescription() { return description; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } - public Date getTrashedAt() { + public OffsetDateTime getTrashedAt() { return trashedAt; } - public Date getPurgedAt() { + public OffsetDateTime getPurgedAt() { return purgedAt; } diff --git a/src/main/java/com/box/sdkgen/schemas/searchresultwithsharedlinkitem/SearchResultWithSharedLinkItem.java b/src/main/java/com/box/sdkgen/schemas/searchresultwithsharedlinkitem/SearchResultWithSharedLinkItem.java index e06077da2..15769f9cb 100644 --- a/src/main/java/com/box/sdkgen/schemas/searchresultwithsharedlinkitem/SearchResultWithSharedLinkItem.java +++ b/src/main/java/com/box/sdkgen/schemas/searchresultwithsharedlinkitem/SearchResultWithSharedLinkItem.java @@ -16,7 +16,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.IOException; -import java.util.Date; +import java.time.OffsetDateTime; @JsonDeserialize( using = SearchResultWithSharedLinkItem.SearchResultWithSharedLinkItemDeserializer.class) @@ -25,13 +25,13 @@ public class SearchResultWithSharedLinkItem extends OneOfThree getStatus() { return status; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } @@ -101,7 +101,7 @@ public UserBase getCreatedBy() { return createdBy; } - public Date getUpdatedAt() { + public OffsetDateTime getUpdatedAt() { return updatedAt; } @@ -109,7 +109,7 @@ public UserBase getUpdatedBy() { return updatedBy; } - public Date getEnabledAt() { + public OffsetDateTime getEnabledAt() { return enabledAt; } @@ -208,15 +208,15 @@ public static class Builder extends NullableFieldTracker { protected EnumWrapper status; - protected Date createdAt; + protected OffsetDateTime createdAt; protected UserBase createdBy; - protected Date updatedAt; + protected OffsetDateTime updatedAt; protected UserBase updatedBy; - protected Date enabledAt; + protected OffsetDateTime enabledAt; protected UserBase enabledBy; @@ -250,7 +250,7 @@ public Builder status(EnumWrapper status) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } @@ -260,7 +260,7 @@ public Builder createdBy(UserBase createdBy) { return this; } - public Builder updatedAt(Date updatedAt) { + public Builder updatedAt(OffsetDateTime updatedAt) { this.updatedAt = updatedAt; return this; } @@ -270,7 +270,7 @@ public Builder updatedBy(UserBase updatedBy) { return this; } - public Builder enabledAt(Date enabledAt) { + public Builder enabledAt(OffsetDateTime enabledAt) { this.enabledAt = enabledAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreport/ShieldInformationBarrierReport.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreport/ShieldInformationBarrierReport.java index 6fcaa06bc..14a007b29 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreport/ShieldInformationBarrierReport.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreport/ShieldInformationBarrierReport.java @@ -11,7 +11,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -35,7 +35,7 @@ public class ShieldInformationBarrierReport extends ShieldInformationBarrierRepo @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("created_by") protected UserBase createdBy; @@ -43,7 +43,7 @@ public class ShieldInformationBarrierReport extends ShieldInformationBarrierRepo @JsonProperty("updated_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date updatedAt; + protected OffsetDateTime updatedAt; public ShieldInformationBarrierReport() { super(); @@ -72,7 +72,7 @@ public ShieldInformationBarrierReportDetails getDetails() { return details; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } @@ -80,7 +80,7 @@ public UserBase getCreatedBy() { return createdBy; } - public Date getUpdatedAt() { + public OffsetDateTime getUpdatedAt() { return updatedAt; } @@ -154,11 +154,11 @@ public static class Builder extends ShieldInformationBarrierReportBase.Builder { protected ShieldInformationBarrierReportDetails details; - protected Date createdAt; + protected OffsetDateTime createdAt; protected UserBase createdBy; - protected Date updatedAt; + protected OffsetDateTime updatedAt; public Builder shieldInformationBarrier( ShieldInformationBarrierReference shieldInformationBarrier) { @@ -181,7 +181,7 @@ public Builder details(ShieldInformationBarrierReportDetails details) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } @@ -191,7 +191,7 @@ public Builder createdBy(UserBase createdBy) { return this; } - public Builder updatedAt(Date updatedAt) { + public Builder updatedAt(OffsetDateTime updatedAt) { this.updatedAt = updatedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegment/ShieldInformationBarrierSegment.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegment/ShieldInformationBarrierSegment.java index bc5b9a481..71e6b9240 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegment/ShieldInformationBarrierSegment.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegment/ShieldInformationBarrierSegment.java @@ -10,7 +10,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -38,7 +38,7 @@ public class ShieldInformationBarrierSegment extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("created_by") protected UserBase createdBy; @@ -46,7 +46,7 @@ public class ShieldInformationBarrierSegment extends SerializableObject { @JsonProperty("updated_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date updatedAt; + protected OffsetDateTime updatedAt; @JsonProperty("updated_by") protected UserBase updatedBy; @@ -89,7 +89,7 @@ public String getDescription() { return description; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } @@ -97,7 +97,7 @@ public UserBase getCreatedBy() { return createdBy; } - public Date getUpdatedAt() { + public OffsetDateTime getUpdatedAt() { return updatedAt; } @@ -192,11 +192,11 @@ public static class Builder extends NullableFieldTracker { protected String description; - protected Date createdAt; + protected OffsetDateTime createdAt; protected UserBase createdBy; - protected Date updatedAt; + protected OffsetDateTime updatedAt; protected UserBase updatedBy; @@ -230,7 +230,7 @@ public Builder description(String description) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } @@ -240,7 +240,7 @@ public Builder createdBy(UserBase createdBy) { return this; } - public Builder updatedAt(Date updatedAt) { + public Builder updatedAt(OffsetDateTime updatedAt) { this.updatedAt = updatedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMember.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMember.java index d75cd5844..76eab7438 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMember.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMember.java @@ -10,7 +10,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -27,7 +27,7 @@ public class ShieldInformationBarrierSegmentMember @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("created_by") protected UserBase createdBy; @@ -35,7 +35,7 @@ public class ShieldInformationBarrierSegmentMember @JsonProperty("updated_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date updatedAt; + protected OffsetDateTime updatedAt; @JsonProperty("updated_by") protected UserBase updatedBy; @@ -64,7 +64,7 @@ public ShieldInformationBarrierBase getShieldInformationBarrier() { return shieldInformationBarrierSegment; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } @@ -72,7 +72,7 @@ public UserBase getCreatedBy() { return createdBy; } - public Date getUpdatedAt() { + public OffsetDateTime getUpdatedAt() { return updatedAt; } @@ -162,11 +162,11 @@ public static class Builder extends ShieldInformationBarrierSegmentMemberMini.Bu protected ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField shieldInformationBarrierSegment; - protected Date createdAt; + protected OffsetDateTime createdAt; protected UserBase createdBy; - protected Date updatedAt; + protected OffsetDateTime updatedAt; protected UserBase updatedBy; @@ -182,7 +182,7 @@ public Builder shieldInformationBarrierSegment( return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } @@ -192,7 +192,7 @@ public Builder createdBy(UserBase createdBy) { return this; } - public Builder updatedAt(Date updatedAt) { + public Builder updatedAt(OffsetDateTime updatedAt) { this.updatedAt = updatedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestriction/ShieldInformationBarrierSegmentRestriction.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestriction/ShieldInformationBarrierSegmentRestriction.java index ecf72b85d..d7e1b382c 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestriction/ShieldInformationBarrierSegmentRestriction.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestriction/ShieldInformationBarrierSegmentRestriction.java @@ -12,7 +12,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -25,7 +25,7 @@ public class ShieldInformationBarrierSegmentRestriction @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("created_by") protected UserBase createdBy; @@ -33,7 +33,7 @@ public class ShieldInformationBarrierSegmentRestriction @JsonProperty("updated_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date updatedAt; + protected OffsetDateTime updatedAt; @JsonProperty("updated_by") protected UserBase updatedBy; @@ -61,7 +61,7 @@ public ShieldInformationBarrierBase getShieldInformationBarrier() { return shieldInformationBarrier; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } @@ -69,7 +69,7 @@ public UserBase getCreatedBy() { return createdBy; } - public Date getUpdatedAt() { + public OffsetDateTime getUpdatedAt() { return updatedAt; } @@ -157,11 +157,11 @@ public static class Builder extends ShieldInformationBarrierSegmentRestrictionMi protected ShieldInformationBarrierBase shieldInformationBarrier; - protected Date createdAt; + protected OffsetDateTime createdAt; protected UserBase createdBy; - protected Date updatedAt; + protected OffsetDateTime updatedAt; protected UserBase updatedBy; @@ -177,7 +177,7 @@ public Builder shieldInformationBarrier(ShieldInformationBarrierBase shieldInfor return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } @@ -187,7 +187,7 @@ public Builder createdBy(UserBase createdBy) { return this; } - public Builder updatedAt(Date updatedAt) { + public Builder updatedAt(OffsetDateTime updatedAt) { this.updatedAt = updatedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequest.java b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequest.java index 47eeeab3b..7dd3e4175 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequest.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequest.java @@ -13,7 +13,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.List; import java.util.Objects; @@ -53,7 +53,7 @@ public class SignRequest extends SignRequestBase { @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date autoExpireAt; + protected OffsetDateTime autoExpireAt; @JsonProperty("parent_folder") protected FolderMini parentFolder; @@ -129,7 +129,7 @@ public SignRequestSignFilesField getSignFiles() { return signFiles; } - public Date getAutoExpireAt() { + public OffsetDateTime getAutoExpireAt() { return autoExpireAt; } @@ -352,7 +352,7 @@ public static class Builder extends SignRequestBase.Builder { protected SignRequestSignFilesField signFiles; - protected Date autoExpireAt; + protected OffsetDateTime autoExpireAt; protected FolderMini parentFolder; @@ -419,7 +419,7 @@ public Builder signFiles(SignRequestSignFilesField signFiles) { return this; } - public Builder autoExpireAt(Date autoExpireAt) { + public Builder autoExpireAt(OffsetDateTime autoExpireAt) { this.autoExpireAt = autoExpireAt; this.markNullableFieldAsSet("auto_expire_at"); return this; diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestprefilltag/SignRequestPrefillTag.java b/src/main/java/com/box/sdkgen/schemas/signrequestprefilltag/SignRequestPrefillTag.java index 3a9793a77..7869a37af 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestprefilltag/SignRequestPrefillTag.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestprefilltag/SignRequestPrefillTag.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -30,7 +30,7 @@ public class SignRequestPrefillTag extends SerializableObject { @JsonSerialize(using = DateUtils.DateSerializer.class) @JsonDeserialize(using = DateUtils.DateDeserializer.class) @Nullable - protected Date dateValue; + protected OffsetDateTime dateValue; public SignRequestPrefillTag() { super(); @@ -57,7 +57,7 @@ public Boolean getCheckboxValue() { return checkboxValue; } - public Date getDateValue() { + public OffsetDateTime getDateValue() { return dateValue; } @@ -110,7 +110,7 @@ public static class Builder extends NullableFieldTracker { protected Boolean checkboxValue; - protected Date dateValue; + protected OffsetDateTime dateValue; public Builder documentTagId(String documentTagId) { this.documentTagId = documentTagId; @@ -130,7 +130,7 @@ public Builder checkboxValue(Boolean checkboxValue) { return this; } - public Builder dateValue(Date dateValue) { + public Builder dateValue(OffsetDateTime dateValue) { this.dateValue = dateValue; this.markNullableFieldAsSet("date_value"); return this; diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSignerSignerDecisionField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSignerSignerDecisionField.java index c69b3a0a4..6aa9fd1ba 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSignerSignerDecisionField.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSignerSignerDecisionField.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -28,7 +28,7 @@ public class SignRequestSignerSignerDecisionField extends SerializableObject { @JsonProperty("finalized_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date finalizedAt; + protected OffsetDateTime finalizedAt; @JsonProperty("additional_info") @Nullable @@ -50,7 +50,7 @@ public EnumWrapper getType() { return type; } - public Date getFinalizedAt() { + public OffsetDateTime getFinalizedAt() { return finalizedAt; } @@ -98,7 +98,7 @@ public static class Builder extends NullableFieldTracker { protected EnumWrapper type; - protected Date finalizedAt; + protected OffsetDateTime finalizedAt; protected String additionalInfo; @@ -112,7 +112,7 @@ public Builder type(EnumWrapper type) return this; } - public Builder finalizedAt(Date finalizedAt) { + public Builder finalizedAt(OffsetDateTime finalizedAt) { this.finalizedAt = finalizedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInput.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInput.java index 71d3fa265..6e3c979bf 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInput.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInput.java @@ -6,7 +6,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -189,7 +189,7 @@ public Builder checkboxValue(Boolean checkboxValue) { } @Override - public Builder dateValue(Date dateValue) { + public Builder dateValue(OffsetDateTime dateValue) { this.dateValue = dateValue; this.markNullableFieldAsSet("date_value"); return this; diff --git a/src/main/java/com/box/sdkgen/schemas/skillcard/SkillCard.java b/src/main/java/com/box/sdkgen/schemas/skillcard/SkillCard.java index b405f2855..1843fb556 100644 --- a/src/main/java/com/box/sdkgen/schemas/skillcard/SkillCard.java +++ b/src/main/java/com/box/sdkgen/schemas/skillcard/SkillCard.java @@ -15,14 +15,14 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.IOException; -import java.util.Date; +import java.time.OffsetDateTime; @JsonDeserialize(using = SkillCard.SkillCardDeserializer.class) @JsonSerialize(using = OneOfFour.OneOfFourSerializer.class) public class SkillCard extends OneOfFour { - protected final Date createdAt; + protected final OffsetDateTime createdAt; protected final String type; @@ -88,7 +88,7 @@ public StatusSkillCard getStatusSkillCard() { return value3; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } diff --git a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCard.java b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCard.java index b4bd81312..92aa6972b 100644 --- a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCard.java +++ b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCard.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -17,7 +17,7 @@ public class StatusSkillCard extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonDeserialize(using = StatusSkillCardTypeField.StatusSkillCardTypeFieldDeserializer.class) @JsonSerialize(using = StatusSkillCardTypeField.StatusSkillCardTypeFieldSerializer.class) @@ -65,7 +65,7 @@ protected StatusSkillCard(Builder builder) { markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } @@ -151,7 +151,7 @@ public String toString() { public static class Builder extends NullableFieldTracker { - protected Date createdAt; + protected OffsetDateTime createdAt; protected EnumWrapper type; @@ -179,7 +179,7 @@ public Builder( StatusSkillCardSkillCardTypeField.STATUS); } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/task/Task.java b/src/main/java/com/box/sdkgen/schemas/task/Task.java index 5669349cf..10de76dbf 100644 --- a/src/main/java/com/box/sdkgen/schemas/task/Task.java +++ b/src/main/java/com/box/sdkgen/schemas/task/Task.java @@ -11,7 +11,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -28,7 +28,7 @@ public class Task extends SerializableObject { @JsonProperty("due_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date dueAt; + protected OffsetDateTime dueAt; @JsonDeserialize(using = TaskActionField.TaskActionFieldDeserializer.class) @JsonSerialize(using = TaskActionField.TaskActionFieldSerializer.class) @@ -48,7 +48,7 @@ public class Task extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonDeserialize(using = TaskCompletionRuleField.TaskCompletionRuleFieldDeserializer.class) @JsonSerialize(using = TaskCompletionRuleField.TaskCompletionRuleFieldSerializer.class) @@ -87,7 +87,7 @@ public FileMini getItem() { return item; } - public Date getDueAt() { + public OffsetDateTime getDueAt() { return dueAt; } @@ -111,7 +111,7 @@ public UserMini getCreatedBy() { return createdBy; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } @@ -214,7 +214,7 @@ public static class Builder extends NullableFieldTracker { protected FileMini item; - protected Date dueAt; + protected OffsetDateTime dueAt; protected EnumWrapper action; @@ -226,7 +226,7 @@ public static class Builder extends NullableFieldTracker { protected UserMini createdBy; - protected Date createdAt; + protected OffsetDateTime createdAt; protected EnumWrapper completionRule; @@ -250,7 +250,7 @@ public Builder item(FileMini item) { return this; } - public Builder dueAt(Date dueAt) { + public Builder dueAt(OffsetDateTime dueAt) { this.dueAt = dueAt; return this; } @@ -285,7 +285,7 @@ public Builder createdBy(UserMini createdBy) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignment.java b/src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignment.java index b7822c56f..c5fb8cdcb 100644 --- a/src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignment.java +++ b/src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignment.java @@ -10,7 +10,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -32,17 +32,17 @@ public class TaskAssignment extends SerializableObject { @JsonProperty("completed_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date completedAt; + protected OffsetDateTime completedAt; @JsonProperty("assigned_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date assignedAt; + protected OffsetDateTime assignedAt; @JsonProperty("reminded_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date remindedAt; + protected OffsetDateTime remindedAt; @JsonDeserialize( using = @@ -94,15 +94,15 @@ public String getMessage() { return message; } - public Date getCompletedAt() { + public OffsetDateTime getCompletedAt() { return completedAt; } - public Date getAssignedAt() { + public OffsetDateTime getAssignedAt() { return assignedAt; } - public Date getRemindedAt() { + public OffsetDateTime getRemindedAt() { return remindedAt; } @@ -207,11 +207,11 @@ public static class Builder extends NullableFieldTracker { protected String message; - protected Date completedAt; + protected OffsetDateTime completedAt; - protected Date assignedAt; + protected OffsetDateTime assignedAt; - protected Date remindedAt; + protected OffsetDateTime remindedAt; protected EnumWrapper resolutionState; @@ -247,17 +247,17 @@ public Builder message(String message) { return this; } - public Builder completedAt(Date completedAt) { + public Builder completedAt(OffsetDateTime completedAt) { this.completedAt = completedAt; return this; } - public Builder assignedAt(Date assignedAt) { + public Builder assignedAt(OffsetDateTime assignedAt) { this.assignedAt = assignedAt; return this; } - public Builder remindedAt(Date remindedAt) { + public Builder remindedAt(OffsetDateTime remindedAt) { this.remindedAt = remindedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInput.java b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInput.java index cc6443dc0..b7b2936fb 100644 --- a/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInput.java +++ b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInput.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.List; import java.util.Objects; @@ -346,7 +346,7 @@ public Builder checkboxValue(Boolean checkboxValue) { } @Override - public Builder dateValue(Date dateValue) { + public Builder dateValue(OffsetDateTime dateValue) { this.dateValue = dateValue; this.markNullableFieldAsSet("date_value"); return this; diff --git a/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfService.java b/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfService.java index 2298bc166..f380abcb4 100644 --- a/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfService.java +++ b/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfService.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -30,12 +30,12 @@ public class TermsOfService extends TermsOfServiceBase { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; public TermsOfService(@JsonProperty("id") String id) { super(id); @@ -68,11 +68,11 @@ public String getText() { return text; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } @@ -147,9 +147,9 @@ public static class Builder extends TermsOfServiceBase.Builder { protected String text; - protected Date createdAt; + protected OffsetDateTime createdAt; - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; public Builder(String id) { super(id); @@ -185,12 +185,12 @@ public Builder text(String text) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatus/TermsOfServiceUserStatus.java b/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatus/TermsOfServiceUserStatus.java index c2f44bf5e..f6a6142d0 100644 --- a/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatus/TermsOfServiceUserStatus.java +++ b/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatus/TermsOfServiceUserStatus.java @@ -10,7 +10,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -34,12 +34,12 @@ public class TermsOfServiceUserStatus extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; public TermsOfServiceUserStatus(@JsonProperty("id") String id) { super(); @@ -81,11 +81,11 @@ public Boolean getIsAccepted() { return isAccepted; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } @@ -157,9 +157,9 @@ public static class Builder extends NullableFieldTracker { protected Boolean isAccepted; - protected Date createdAt; + protected OffsetDateTime createdAt; - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; public Builder(String id) { super(); @@ -194,12 +194,12 @@ public Builder isAccepted(Boolean isAccepted) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCard.java b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCard.java index 5e92d5cb8..48fa6d786 100644 --- a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCard.java +++ b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCard.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.List; import java.util.Objects; @@ -18,7 +18,7 @@ public class TimelineSkillCard extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonDeserialize(using = TimelineSkillCardTypeField.TimelineSkillCardTypeFieldDeserializer.class) @JsonSerialize(using = TimelineSkillCardTypeField.TimelineSkillCardTypeFieldSerializer.class) @@ -71,7 +71,7 @@ protected TimelineSkillCard(Builder builder) { markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } @@ -167,7 +167,7 @@ public String toString() { public static class Builder extends NullableFieldTracker { - protected Date createdAt; + protected OffsetDateTime createdAt; protected EnumWrapper type; @@ -198,7 +198,7 @@ public Builder( TimelineSkillCardSkillCardTypeField.TIMELINE); } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCard.java b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCard.java index 4b47df5e6..819ac7327 100644 --- a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCard.java +++ b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCard.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.List; import java.util.Objects; @@ -18,7 +18,7 @@ public class TranscriptSkillCard extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonDeserialize( using = TranscriptSkillCardTypeField.TranscriptSkillCardTypeFieldDeserializer.class) @@ -75,7 +75,7 @@ protected TranscriptSkillCard(Builder builder) { markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } @@ -171,7 +171,7 @@ public String toString() { public static class Builder extends NullableFieldTracker { - protected Date createdAt; + protected OffsetDateTime createdAt; protected EnumWrapper type; @@ -202,7 +202,7 @@ public Builder( TranscriptSkillCardSkillCardTypeField.TRANSCRIPT); } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFile.java b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFile.java index d5fc9d111..0ef3786cb 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFile.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFile.java @@ -12,7 +12,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -46,36 +46,36 @@ public class TrashFile extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected final Date createdAt; + protected final OffsetDateTime createdAt; @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected final Date modifiedAt; + protected final OffsetDateTime modifiedAt; @JsonProperty("trashed_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date trashedAt; + protected OffsetDateTime trashedAt; @JsonProperty("purged_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date purgedAt; + protected OffsetDateTime purgedAt; @JsonProperty("content_created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date contentCreatedAt; + protected OffsetDateTime contentCreatedAt; @JsonProperty("content_modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date contentModifiedAt; + protected OffsetDateTime contentModifiedAt; @JsonProperty("created_by") protected UserMini createdBy; @@ -104,8 +104,8 @@ public TrashFile( String description, long size, TrashFilePathCollectionField pathCollection, - Date createdAt, - Date modifiedAt, + OffsetDateTime createdAt, + OffsetDateTime modifiedAt, UserMini modifiedBy, UserMini ownedBy, TrashFileItemStatusField itemStatus) { @@ -131,8 +131,8 @@ public TrashFile( @JsonProperty("description") String description, @JsonProperty("size") long size, @JsonProperty("path_collection") TrashFilePathCollectionField pathCollection, - @JsonProperty("created_at") Date createdAt, - @JsonProperty("modified_at") Date modifiedAt, + @JsonProperty("created_at") OffsetDateTime createdAt, + @JsonProperty("modified_at") OffsetDateTime modifiedAt, @JsonProperty("modified_by") UserMini modifiedBy, @JsonProperty("owned_by") UserMini ownedBy, @JsonProperty("item_status") EnumWrapper itemStatus) { @@ -218,27 +218,27 @@ public TrashFilePathCollectionField getPathCollection() { return pathCollection; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } - public Date getTrashedAt() { + public OffsetDateTime getTrashedAt() { return trashedAt; } - public Date getPurgedAt() { + public OffsetDateTime getPurgedAt() { return purgedAt; } - public Date getContentCreatedAt() { + public OffsetDateTime getContentCreatedAt() { return contentCreatedAt; } - public Date getContentModifiedAt() { + public OffsetDateTime getContentModifiedAt() { return contentModifiedAt; } @@ -441,17 +441,17 @@ public static class Builder extends NullableFieldTracker { protected final TrashFilePathCollectionField pathCollection; - protected final Date createdAt; + protected final OffsetDateTime createdAt; - protected final Date modifiedAt; + protected final OffsetDateTime modifiedAt; - protected Date trashedAt; + protected OffsetDateTime trashedAt; - protected Date purgedAt; + protected OffsetDateTime purgedAt; - protected Date contentCreatedAt; + protected OffsetDateTime contentCreatedAt; - protected Date contentModifiedAt; + protected OffsetDateTime contentModifiedAt; protected UserMini createdBy; @@ -472,8 +472,8 @@ public Builder( String description, long size, TrashFilePathCollectionField pathCollection, - Date createdAt, - Date modifiedAt, + OffsetDateTime createdAt, + OffsetDateTime modifiedAt, UserMini modifiedBy, UserMini ownedBy, TrashFileItemStatusField itemStatus) { @@ -499,8 +499,8 @@ public Builder( String description, long size, TrashFilePathCollectionField pathCollection, - Date createdAt, - Date modifiedAt, + OffsetDateTime createdAt, + OffsetDateTime modifiedAt, UserMini modifiedBy, UserMini ownedBy, EnumWrapper itemStatus) { @@ -545,25 +545,25 @@ public Builder fileVersion(FileVersionMini fileVersion) { return this; } - public Builder trashedAt(Date trashedAt) { + public Builder trashedAt(OffsetDateTime trashedAt) { this.trashedAt = trashedAt; this.markNullableFieldAsSet("trashed_at"); return this; } - public Builder purgedAt(Date purgedAt) { + public Builder purgedAt(OffsetDateTime purgedAt) { this.purgedAt = purgedAt; this.markNullableFieldAsSet("purged_at"); return this; } - public Builder contentCreatedAt(Date contentCreatedAt) { + public Builder contentCreatedAt(OffsetDateTime contentCreatedAt) { this.contentCreatedAt = contentCreatedAt; this.markNullableFieldAsSet("content_created_at"); return this; } - public Builder contentModifiedAt(Date contentModifiedAt) { + public Builder contentModifiedAt(OffsetDateTime contentModifiedAt) { this.contentModifiedAt = contentModifiedAt; this.markNullableFieldAsSet("content_modified_at"); return this; diff --git a/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestored.java b/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestored.java index f5243b07c..8b4d38139 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestored.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestored.java @@ -12,7 +12,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -46,12 +46,12 @@ public class TrashFileRestored extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected final Date createdAt; + protected final OffsetDateTime createdAt; @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected final Date modifiedAt; + protected final OffsetDateTime modifiedAt; @JsonProperty("trashed_at") @Nullable @@ -65,13 +65,13 @@ public class TrashFileRestored extends SerializableObject { @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date contentCreatedAt; + protected OffsetDateTime contentCreatedAt; @JsonProperty("content_modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date contentModifiedAt; + protected OffsetDateTime contentModifiedAt; @JsonProperty("created_by") protected UserMini createdBy; @@ -102,8 +102,8 @@ public TrashFileRestored( String description, long size, TrashFileRestoredPathCollectionField pathCollection, - Date createdAt, - Date modifiedAt, + OffsetDateTime createdAt, + OffsetDateTime modifiedAt, UserMini modifiedBy, UserMini ownedBy, TrashFileRestoredItemStatusField itemStatus) { @@ -129,8 +129,8 @@ public TrashFileRestored( @JsonProperty("description") String description, @JsonProperty("size") long size, @JsonProperty("path_collection") TrashFileRestoredPathCollectionField pathCollection, - @JsonProperty("created_at") Date createdAt, - @JsonProperty("modified_at") Date modifiedAt, + @JsonProperty("created_at") OffsetDateTime createdAt, + @JsonProperty("modified_at") OffsetDateTime modifiedAt, @JsonProperty("modified_by") UserMini modifiedBy, @JsonProperty("owned_by") UserMini ownedBy, @JsonProperty("item_status") EnumWrapper itemStatus) { @@ -216,11 +216,11 @@ public TrashFileRestoredPathCollectionField getPathCollection() { return pathCollection; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } @@ -232,11 +232,11 @@ public String getPurgedAt() { return purgedAt; } - public Date getContentCreatedAt() { + public OffsetDateTime getContentCreatedAt() { return contentCreatedAt; } - public Date getContentModifiedAt() { + public OffsetDateTime getContentModifiedAt() { return contentModifiedAt; } @@ -439,17 +439,17 @@ public static class Builder extends NullableFieldTracker { protected final TrashFileRestoredPathCollectionField pathCollection; - protected final Date createdAt; + protected final OffsetDateTime createdAt; - protected final Date modifiedAt; + protected final OffsetDateTime modifiedAt; protected String trashedAt; protected String purgedAt; - protected Date contentCreatedAt; + protected OffsetDateTime contentCreatedAt; - protected Date contentModifiedAt; + protected OffsetDateTime contentModifiedAt; protected UserMini createdBy; @@ -470,8 +470,8 @@ public Builder( String description, long size, TrashFileRestoredPathCollectionField pathCollection, - Date createdAt, - Date modifiedAt, + OffsetDateTime createdAt, + OffsetDateTime modifiedAt, UserMini modifiedBy, UserMini ownedBy, TrashFileRestoredItemStatusField itemStatus) { @@ -497,8 +497,8 @@ public Builder( String description, long size, TrashFileRestoredPathCollectionField pathCollection, - Date createdAt, - Date modifiedAt, + OffsetDateTime createdAt, + OffsetDateTime modifiedAt, UserMini modifiedBy, UserMini ownedBy, EnumWrapper itemStatus) { @@ -555,13 +555,13 @@ public Builder purgedAt(String purgedAt) { return this; } - public Builder contentCreatedAt(Date contentCreatedAt) { + public Builder contentCreatedAt(OffsetDateTime contentCreatedAt) { this.contentCreatedAt = contentCreatedAt; this.markNullableFieldAsSet("content_created_at"); return this; } - public Builder contentModifiedAt(Date contentModifiedAt) { + public Builder contentModifiedAt(OffsetDateTime contentModifiedAt) { this.contentModifiedAt = contentModifiedAt; this.markNullableFieldAsSet("content_modified_at"); return this; diff --git a/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolder.java b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolder.java index ab969b53f..4d4fb35f5 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolder.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolder.java @@ -11,7 +11,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -34,13 +34,13 @@ public class TrashFolder extends SerializableObject { @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; protected final String description; @@ -59,25 +59,25 @@ public class TrashFolder extends SerializableObject { @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date trashedAt; + protected OffsetDateTime trashedAt; @JsonProperty("purged_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date purgedAt; + protected OffsetDateTime purgedAt; @JsonProperty("content_created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date contentCreatedAt; + protected OffsetDateTime contentCreatedAt; @JsonProperty("content_modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date contentModifiedAt; + protected OffsetDateTime contentModifiedAt; @JsonProperty("owned_by") protected final UserMini ownedBy; @@ -189,11 +189,11 @@ public String getName() { return name; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } @@ -217,19 +217,19 @@ public UserMini getModifiedBy() { return modifiedBy; } - public Date getTrashedAt() { + public OffsetDateTime getTrashedAt() { return trashedAt; } - public Date getPurgedAt() { + public OffsetDateTime getPurgedAt() { return purgedAt; } - public Date getContentCreatedAt() { + public OffsetDateTime getContentCreatedAt() { return contentCreatedAt; } - public Date getContentModifiedAt() { + public OffsetDateTime getContentModifiedAt() { return contentModifiedAt; } @@ -412,9 +412,9 @@ public static class Builder extends NullableFieldTracker { protected final String name; - protected Date createdAt; + protected OffsetDateTime createdAt; - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; protected final String description; @@ -426,13 +426,13 @@ public static class Builder extends NullableFieldTracker { protected final UserMini modifiedBy; - protected Date trashedAt; + protected OffsetDateTime trashedAt; - protected Date purgedAt; + protected OffsetDateTime purgedAt; - protected Date contentCreatedAt; + protected OffsetDateTime contentCreatedAt; - protected Date contentModifiedAt; + protected OffsetDateTime contentModifiedAt; protected final UserMini ownedBy; @@ -511,37 +511,37 @@ public Builder sequenceId(String sequenceId) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; this.markNullableFieldAsSet("created_at"); return this; } - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; this.markNullableFieldAsSet("modified_at"); return this; } - public Builder trashedAt(Date trashedAt) { + public Builder trashedAt(OffsetDateTime trashedAt) { this.trashedAt = trashedAt; this.markNullableFieldAsSet("trashed_at"); return this; } - public Builder purgedAt(Date purgedAt) { + public Builder purgedAt(OffsetDateTime purgedAt) { this.purgedAt = purgedAt; this.markNullableFieldAsSet("purged_at"); return this; } - public Builder contentCreatedAt(Date contentCreatedAt) { + public Builder contentCreatedAt(OffsetDateTime contentCreatedAt) { this.contentCreatedAt = contentCreatedAt; this.markNullableFieldAsSet("content_created_at"); return this; } - public Builder contentModifiedAt(Date contentModifiedAt) { + public Builder contentModifiedAt(OffsetDateTime contentModifiedAt) { this.contentModifiedAt = contentModifiedAt; this.markNullableFieldAsSet("content_modified_at"); return this; diff --git a/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestored.java b/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestored.java index 5f855f1c8..1e1ff8809 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestored.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestored.java @@ -11,7 +11,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -35,13 +35,13 @@ public class TrashFolderRestored extends SerializableObject { @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; protected String description; @@ -68,13 +68,13 @@ public class TrashFolderRestored extends SerializableObject { @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date contentCreatedAt; + protected OffsetDateTime contentCreatedAt; @JsonProperty("content_modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date contentModifiedAt; + protected OffsetDateTime contentModifiedAt; @JsonProperty("owned_by") protected UserMini ownedBy; @@ -147,11 +147,11 @@ public String getName() { return name; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } @@ -183,11 +183,11 @@ public String getPurgedAt() { return purgedAt; } - public Date getContentCreatedAt() { + public OffsetDateTime getContentCreatedAt() { return contentCreatedAt; } - public Date getContentModifiedAt() { + public OffsetDateTime getContentModifiedAt() { return contentModifiedAt; } @@ -370,9 +370,9 @@ public static class Builder extends NullableFieldTracker { protected String name; - protected Date createdAt; + protected OffsetDateTime createdAt; - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; protected String description; @@ -388,9 +388,9 @@ public static class Builder extends NullableFieldTracker { protected String purgedAt; - protected Date contentCreatedAt; + protected OffsetDateTime contentCreatedAt; - protected Date contentModifiedAt; + protected OffsetDateTime contentModifiedAt; protected UserMini ownedBy; @@ -433,13 +433,13 @@ public Builder name(String name) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; this.markNullableFieldAsSet("created_at"); return this; } - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; this.markNullableFieldAsSet("modified_at"); return this; @@ -482,13 +482,13 @@ public Builder purgedAt(String purgedAt) { return this; } - public Builder contentCreatedAt(Date contentCreatedAt) { + public Builder contentCreatedAt(OffsetDateTime contentCreatedAt) { this.contentCreatedAt = contentCreatedAt; this.markNullableFieldAsSet("content_created_at"); return this; } - public Builder contentModifiedAt(Date contentModifiedAt) { + public Builder contentModifiedAt(OffsetDateTime contentModifiedAt) { this.contentModifiedAt = contentModifiedAt; this.markNullableFieldAsSet("content_modified_at"); return this; diff --git a/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLink.java b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLink.java index 0f60acbc6..251fbca8b 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLink.java +++ b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLink.java @@ -11,7 +11,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -42,24 +42,24 @@ public class TrashWebLink extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; @JsonProperty("trashed_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date trashedAt; + protected OffsetDateTime trashedAt; @JsonProperty("purged_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date purgedAt; + protected OffsetDateTime purgedAt; @JsonProperty("created_by") protected UserMini createdBy; @@ -143,19 +143,19 @@ public TrashWebLinkPathCollectionField getPathCollection() { return pathCollection; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } - public Date getTrashedAt() { + public OffsetDateTime getTrashedAt() { return trashedAt; } - public Date getPurgedAt() { + public OffsetDateTime getPurgedAt() { return purgedAt; } @@ -328,13 +328,13 @@ public static class Builder extends NullableFieldTracker { protected TrashWebLinkPathCollectionField pathCollection; - protected Date createdAt; + protected OffsetDateTime createdAt; - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; - protected Date trashedAt; + protected OffsetDateTime trashedAt; - protected Date purgedAt; + protected OffsetDateTime purgedAt; protected UserMini createdBy; @@ -396,23 +396,23 @@ public Builder pathCollection(TrashWebLinkPathCollectionField pathCollection) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; return this; } - public Builder trashedAt(Date trashedAt) { + public Builder trashedAt(OffsetDateTime trashedAt) { this.trashedAt = trashedAt; this.markNullableFieldAsSet("trashed_at"); return this; } - public Builder purgedAt(Date purgedAt) { + public Builder purgedAt(OffsetDateTime purgedAt) { this.purgedAt = purgedAt; this.markNullableFieldAsSet("purged_at"); return this; diff --git a/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestored.java b/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestored.java index 3b7520a4a..edf6eb340 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestored.java +++ b/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestored.java @@ -11,7 +11,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -44,12 +44,12 @@ public class TrashWebLinkRestored extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; @JsonProperty("trashed_at") @Nullable @@ -148,11 +148,11 @@ public TrashWebLinkRestoredPathCollectionField getPathCollection() { return pathCollection; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } @@ -333,9 +333,9 @@ public static class Builder extends NullableFieldTracker { protected final TrashWebLinkRestoredPathCollectionField pathCollection; - protected Date createdAt; + protected OffsetDateTime createdAt; - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; protected String trashedAt; @@ -397,12 +397,12 @@ public Builder description(String description) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSession.java b/src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSession.java index 588f1643e..053e1d132 100644 --- a/src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSession.java +++ b/src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSession.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -23,7 +23,7 @@ public class UploadSession extends SerializableObject { @JsonProperty("session_expires_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date sessionExpiresAt; + protected OffsetDateTime sessionExpiresAt; @JsonProperty("part_size") protected Long partSize; @@ -61,7 +61,7 @@ public EnumWrapper getType() { return type; } - public Date getSessionExpiresAt() { + public OffsetDateTime getSessionExpiresAt() { return sessionExpiresAt; } @@ -144,7 +144,7 @@ public static class Builder extends NullableFieldTracker { protected EnumWrapper type; - protected Date sessionExpiresAt; + protected OffsetDateTime sessionExpiresAt; protected Long partSize; @@ -169,7 +169,7 @@ public Builder type(EnumWrapper type) { return this; } - public Builder sessionExpiresAt(Date sessionExpiresAt) { + public Builder sessionExpiresAt(OffsetDateTime sessionExpiresAt) { this.sessionExpiresAt = sessionExpiresAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/user/User.java b/src/main/java/com/box/sdkgen/schemas/user/User.java index b8ba875cf..c0af7fc51 100644 --- a/src/main/java/com/box/sdkgen/schemas/user/User.java +++ b/src/main/java/com/box/sdkgen/schemas/user/User.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -18,12 +18,12 @@ public class User extends UserMini { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; protected String language; @@ -78,11 +78,11 @@ protected User(Builder builder) { markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } @@ -255,9 +255,9 @@ public String toString() { public static class Builder extends UserMini.Builder { - protected Date createdAt; + protected OffsetDateTime createdAt; - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; protected String language; @@ -285,12 +285,12 @@ public Builder(String id) { super(id); } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/userfull/UserFull.java b/src/main/java/com/box/sdkgen/schemas/userfull/UserFull.java index c9f8c23e6..00e61186d 100644 --- a/src/main/java/com/box/sdkgen/schemas/userfull/UserFull.java +++ b/src/main/java/com/box/sdkgen/schemas/userfull/UserFull.java @@ -10,7 +10,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.List; import java.util.Objects; @@ -436,13 +436,13 @@ public Builder login(String login) { } @Override - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } @Override - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0.java index 395611e5d..506235624 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -22,12 +22,12 @@ public class HubV2025R0 extends HubBaseV2025R0 { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("updated_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date updatedAt; + protected OffsetDateTime updatedAt; @JsonProperty("created_by") protected UserMiniV2025R0 createdBy; @@ -78,11 +78,11 @@ public String getDescription() { return description; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getUpdatedAt() { + public OffsetDateTime getUpdatedAt() { return updatedAt; } @@ -220,9 +220,9 @@ public static class Builder extends HubBaseV2025R0.Builder { protected String description; - protected Date createdAt; + protected OffsetDateTime createdAt; - protected Date updatedAt; + protected OffsetDateTime updatedAt; protected UserMiniV2025R0 createdBy; @@ -252,12 +252,12 @@ public Builder description(String description) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } - public Builder updatedAt(Date updatedAt) { + public Builder updatedAt(OffsetDateTime updatedAt) { this.updatedAt = updatedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistv2025r0/ShieldListV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistv2025r0/ShieldListV2025R0.java index db6740ba5..b172f12ad 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistv2025r0/ShieldListV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistv2025r0/ShieldListV2025R0.java @@ -14,7 +14,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -33,12 +33,12 @@ public class ShieldListV2025R0 extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected final Date createdAt; + protected final OffsetDateTime createdAt; @JsonProperty("updated_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected final Date updatedAt; + protected final OffsetDateTime updatedAt; protected final ShieldListContentV2025R0 content; @@ -47,8 +47,8 @@ public ShieldListV2025R0( String type, String name, EnterpriseReferenceV2025R0 enterprise, - Date createdAt, - Date updatedAt, + OffsetDateTime createdAt, + OffsetDateTime updatedAt, ShieldListContentCountryV2025R0 content) { super(); this.id = id; @@ -65,8 +65,8 @@ public ShieldListV2025R0( String type, String name, EnterpriseReferenceV2025R0 enterprise, - Date createdAt, - Date updatedAt, + OffsetDateTime createdAt, + OffsetDateTime updatedAt, ShieldListContentDomainV2025R0 content) { super(); this.id = id; @@ -83,8 +83,8 @@ public ShieldListV2025R0( String type, String name, EnterpriseReferenceV2025R0 enterprise, - Date createdAt, - Date updatedAt, + OffsetDateTime createdAt, + OffsetDateTime updatedAt, ShieldListContentEmailV2025R0 content) { super(); this.id = id; @@ -101,8 +101,8 @@ public ShieldListV2025R0( String type, String name, EnterpriseReferenceV2025R0 enterprise, - Date createdAt, - Date updatedAt, + OffsetDateTime createdAt, + OffsetDateTime updatedAt, ShieldListContentIpV2025R0 content) { super(); this.id = id; @@ -119,8 +119,8 @@ public ShieldListV2025R0( String type, String name, EnterpriseReferenceV2025R0 enterprise, - Date createdAt, - Date updatedAt, + OffsetDateTime createdAt, + OffsetDateTime updatedAt, ShieldListContentIntegrationV2025R0 content) { super(); this.id = id; @@ -137,8 +137,8 @@ public ShieldListV2025R0( @JsonProperty("type") String type, @JsonProperty("name") String name, @JsonProperty("enterprise") EnterpriseReferenceV2025R0 enterprise, - @JsonProperty("created_at") Date createdAt, - @JsonProperty("updated_at") Date updatedAt, + @JsonProperty("created_at") OffsetDateTime createdAt, + @JsonProperty("updated_at") OffsetDateTime updatedAt, @JsonProperty("content") ShieldListContentV2025R0 content) { super(); this.id = id; @@ -183,11 +183,11 @@ public String getDescription() { return description; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getUpdatedAt() { + public OffsetDateTime getUpdatedAt() { return updatedAt; } @@ -268,9 +268,9 @@ public static class Builder extends NullableFieldTracker { protected String description; - protected final Date createdAt; + protected final OffsetDateTime createdAt; - protected final Date updatedAt; + protected final OffsetDateTime updatedAt; protected final ShieldListContentV2025R0 content; @@ -279,8 +279,8 @@ public Builder( String type, String name, EnterpriseReferenceV2025R0 enterprise, - Date createdAt, - Date updatedAt, + OffsetDateTime createdAt, + OffsetDateTime updatedAt, ShieldListContentCountryV2025R0 content) { super(); this.id = id; @@ -297,8 +297,8 @@ public Builder( String type, String name, EnterpriseReferenceV2025R0 enterprise, - Date createdAt, - Date updatedAt, + OffsetDateTime createdAt, + OffsetDateTime updatedAt, ShieldListContentDomainV2025R0 content) { super(); this.id = id; @@ -315,8 +315,8 @@ public Builder( String type, String name, EnterpriseReferenceV2025R0 enterprise, - Date createdAt, - Date updatedAt, + OffsetDateTime createdAt, + OffsetDateTime updatedAt, ShieldListContentEmailV2025R0 content) { super(); this.id = id; @@ -333,8 +333,8 @@ public Builder( String type, String name, EnterpriseReferenceV2025R0 enterprise, - Date createdAt, - Date updatedAt, + OffsetDateTime createdAt, + OffsetDateTime updatedAt, ShieldListContentIpV2025R0 content) { super(); this.id = id; @@ -351,8 +351,8 @@ public Builder( String type, String name, EnterpriseReferenceV2025R0 enterprise, - Date createdAt, - Date updatedAt, + OffsetDateTime createdAt, + OffsetDateTime updatedAt, ShieldListContentIntegrationV2025R0 content) { super(); this.id = id; @@ -369,8 +369,8 @@ public Builder( String type, String name, EnterpriseReferenceV2025R0 enterprise, - Date createdAt, - Date updatedAt, + OffsetDateTime createdAt, + OffsetDateTime updatedAt, ShieldListContentV2025R0 content) { super(); this.id = id; diff --git a/src/main/java/com/box/sdkgen/schemas/watermark/WatermarkWatermarkField.java b/src/main/java/com/box/sdkgen/schemas/watermark/WatermarkWatermarkField.java index 636743fd4..252e8c2b4 100644 --- a/src/main/java/com/box/sdkgen/schemas/watermark/WatermarkWatermarkField.java +++ b/src/main/java/com/box/sdkgen/schemas/watermark/WatermarkWatermarkField.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -16,12 +16,12 @@ public class WatermarkWatermarkField extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; public WatermarkWatermarkField() { super(); @@ -34,11 +34,11 @@ protected WatermarkWatermarkField(Builder builder) { markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } @@ -75,16 +75,16 @@ public String toString() { public static class Builder extends NullableFieldTracker { - protected Date createdAt; + protected OffsetDateTime createdAt; - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/webhook/Webhook.java b/src/main/java/com/box/sdkgen/schemas/webhook/Webhook.java index 533032640..d64bffbf8 100644 --- a/src/main/java/com/box/sdkgen/schemas/webhook/Webhook.java +++ b/src/main/java/com/box/sdkgen/schemas/webhook/Webhook.java @@ -19,8 +19,8 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.IOException; +import java.time.OffsetDateTime; import java.util.ArrayList; -import java.util.Date; import java.util.List; import java.util.Objects; @@ -33,7 +33,7 @@ public class Webhook extends WebhookMini { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; protected String address; @@ -58,7 +58,7 @@ public UserMini getCreatedBy() { return createdBy; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } @@ -130,7 +130,7 @@ public static class Builder extends WebhookMini.Builder { protected UserMini createdBy; - protected Date createdAt; + protected OffsetDateTime createdAt; protected String address; @@ -141,7 +141,7 @@ public Builder createdBy(UserMini createdBy) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/weblink/WebLink.java b/src/main/java/com/box/sdkgen/schemas/weblink/WebLink.java index fb6a7e087..56508d220 100644 --- a/src/main/java/com/box/sdkgen/schemas/weblink/WebLink.java +++ b/src/main/java/com/box/sdkgen/schemas/weblink/WebLink.java @@ -11,7 +11,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -27,24 +27,24 @@ public class WebLink extends WebLinkMini { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; @JsonProperty("trashed_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date trashedAt; + protected OffsetDateTime trashedAt; @JsonProperty("purged_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date purgedAt; + protected OffsetDateTime purgedAt; @JsonProperty("created_by") protected UserMini createdBy; @@ -96,19 +96,19 @@ public WebLinkPathCollectionField getPathCollection() { return pathCollection; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } - public Date getModifiedAt() { + public OffsetDateTime getModifiedAt() { return modifiedAt; } - public Date getTrashedAt() { + public OffsetDateTime getTrashedAt() { return trashedAt; } - public Date getPurgedAt() { + public OffsetDateTime getPurgedAt() { return purgedAt; } @@ -269,13 +269,13 @@ public static class Builder extends WebLinkMini.Builder { protected WebLinkPathCollectionField pathCollection; - protected Date createdAt; + protected OffsetDateTime createdAt; - protected Date modifiedAt; + protected OffsetDateTime modifiedAt; - protected Date trashedAt; + protected OffsetDateTime trashedAt; - protected Date purgedAt; + protected OffsetDateTime purgedAt; protected UserMini createdBy; @@ -306,23 +306,23 @@ public Builder pathCollection(WebLinkPathCollectionField pathCollection) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } - public Builder modifiedAt(Date modifiedAt) { + public Builder modifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; return this; } - public Builder trashedAt(Date trashedAt) { + public Builder trashedAt(OffsetDateTime trashedAt) { this.trashedAt = trashedAt; this.markNullableFieldAsSet("trashed_at"); return this; } - public Builder purgedAt(Date purgedAt) { + public Builder purgedAt(OffsetDateTime purgedAt) { this.purgedAt = purgedAt; this.markNullableFieldAsSet("purged_at"); return this; diff --git a/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkField.java b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkField.java index 39879ade0..2eef7cb3f 100644 --- a/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkField.java +++ b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkField.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -60,7 +60,7 @@ public class WebLinkSharedLinkField extends SerializableObject { @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable - protected Date unsharedAt; + protected OffsetDateTime unsharedAt; @JsonProperty("is_password_enabled") protected final boolean isPasswordEnabled; @@ -186,7 +186,7 @@ public EnumWrapper getEffectivePermis return effectivePermission; } - public Date getUnsharedAt() { + public OffsetDateTime getUnsharedAt() { return unsharedAt; } @@ -315,7 +315,7 @@ public static class Builder extends NullableFieldTracker { protected final EnumWrapper effectivePermission; - protected Date unsharedAt; + protected OffsetDateTime unsharedAt; protected final boolean isPasswordEnabled; @@ -421,7 +421,7 @@ public Builder access(EnumWrapper access) { return this; } - public Builder unsharedAt(Date unsharedAt) { + public Builder unsharedAt(OffsetDateTime unsharedAt) { this.unsharedAt = unsharedAt; this.markNullableFieldAsSet("unshared_at"); return this; diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsField.java index 81d4c9396..1e6f90cfc 100644 --- a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsField.java +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsField.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.List; import java.util.Objects; @@ -29,7 +29,7 @@ public class WorkflowFlowsField extends SerializableObject { @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date createdAt; + protected OffsetDateTime createdAt; @JsonProperty("created_by") protected UserBase createdBy; @@ -65,7 +65,7 @@ public List getOutcomes() { return outcomes; } - public Date getCreatedAt() { + public OffsetDateTime getCreatedAt() { return createdAt; } @@ -134,7 +134,7 @@ public static class Builder extends NullableFieldTracker { protected List outcomes; - protected Date createdAt; + protected OffsetDateTime createdAt; protected UserBase createdBy; @@ -163,7 +163,7 @@ public Builder outcomes(List outcomes) { return this; } - public Builder createdAt(Date createdAt) { + public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownload.java b/src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownload.java index c22c95e82..00acda84b 100644 --- a/src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownload.java +++ b/src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownload.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.util.Date; +import java.time.OffsetDateTime; import java.util.List; import java.util.Objects; @@ -23,7 +23,7 @@ public class ZipDownload extends SerializableObject { @JsonProperty("expires_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) - protected Date expiresAt; + protected OffsetDateTime expiresAt; @JsonProperty("name_conflicts") protected List> nameConflicts; @@ -49,7 +49,7 @@ public String getStatusUrl() { return statusUrl; } - public Date getExpiresAt() { + public OffsetDateTime getExpiresAt() { return expiresAt; } @@ -104,7 +104,7 @@ public static class Builder extends NullableFieldTracker { protected String statusUrl; - protected Date expiresAt; + protected OffsetDateTime expiresAt; protected List> nameConflicts; @@ -118,7 +118,7 @@ public Builder statusUrl(String statusUrl) { return this; } - public Builder expiresAt(Date expiresAt) { + public Builder expiresAt(OffsetDateTime expiresAt) { this.expiresAt = expiresAt; return this; } diff --git a/src/test/java/com/box/sdkgen/test/events/EventsITest.java b/src/test/java/com/box/sdkgen/test/events/EventsITest.java index 2dcb534fa..a85cecd07 100644 --- a/src/test/java/com/box/sdkgen/test/events/EventsITest.java +++ b/src/test/java/com/box/sdkgen/test/events/EventsITest.java @@ -16,8 +16,8 @@ import com.box.sdkgen.schemas.realtimeserver.RealtimeServer; import com.box.sdkgen.schemas.realtimeservers.RealtimeServers; import com.box.sdkgen.schemas.user.User; +import java.time.OffsetDateTime; import java.util.Arrays; -import java.util.Date; import org.junit.jupiter.api.Test; public class EventsITest { @@ -96,8 +96,8 @@ public void testGetEventsWithLongPolling() { public void testGetEventsWithDateFilters() { long currentEpochTimeInSeconds = getEpochTimeInSeconds(); long epochTimeInSecondsAWeekAgo = currentEpochTimeInSeconds - 7 * 24 * 60 * 60; - Date createdAfterDate = epochSecondsToDateTime(epochTimeInSecondsAWeekAgo); - Date createdBeforeDate = epochSecondsToDateTime(currentEpochTimeInSeconds); + OffsetDateTime createdAfterDate = epochSecondsToDateTime(epochTimeInSecondsAWeekAgo); + OffsetDateTime createdBeforeDate = epochSecondsToDateTime(currentEpochTimeInSeconds); Events servers = client .getEvents() diff --git a/src/test/java/com/box/sdkgen/test/legalholdpolicies/LegalHoldPoliciesITest.java b/src/test/java/com/box/sdkgen/test/legalholdpolicies/LegalHoldPoliciesITest.java index 917f45de8..a1da753c6 100644 --- a/src/test/java/com/box/sdkgen/test/legalholdpolicies/LegalHoldPoliciesITest.java +++ b/src/test/java/com/box/sdkgen/test/legalholdpolicies/LegalHoldPoliciesITest.java @@ -10,7 +10,7 @@ import com.box.sdkgen.managers.legalholdpolicies.UpdateLegalHoldPolicyByIdRequestBody; import com.box.sdkgen.schemas.legalholdpolicies.LegalHoldPolicies; import com.box.sdkgen.schemas.legalholdpolicy.LegalHoldPolicy; -import java.util.Date; +import java.time.OffsetDateTime; import org.junit.jupiter.api.Test; public class LegalHoldPoliciesITest { @@ -21,8 +21,8 @@ public class LegalHoldPoliciesITest { public void testCreateNotOngoingLegalHoldPolicy() { String legalHoldPolicyName = getUuid(); String legalHoldDescription = "test description"; - Date filterStartedAt = dateTimeFromString("2021-01-01T00:00:00-08:00"); - Date filterEndedAt = dateTimeFromString("2022-01-01T00:00:00-08:00"); + OffsetDateTime filterStartedAt = dateTimeFromString("2021-01-01T00:00:00-08:00"); + OffsetDateTime filterEndedAt = dateTimeFromString("2022-01-01T00:00:00-08:00"); LegalHoldPolicy legalHoldPolicy = client .getLegalHoldPolicies() diff --git a/src/test/java/com/box/sdkgen/test/taskassignments/TaskAssignmentsITest.java b/src/test/java/com/box/sdkgen/test/taskassignments/TaskAssignmentsITest.java index e5d097cac..1b912b47f 100644 --- a/src/test/java/com/box/sdkgen/test/taskassignments/TaskAssignmentsITest.java +++ b/src/test/java/com/box/sdkgen/test/taskassignments/TaskAssignmentsITest.java @@ -23,7 +23,7 @@ import com.box.sdkgen.schemas.taskassignment.TaskAssignment; import com.box.sdkgen.schemas.taskassignments.TaskAssignments; import com.box.sdkgen.schemas.userfull.UserFull; -import java.util.Date; +import java.time.OffsetDateTime; import org.junit.jupiter.api.Test; public class TaskAssignmentsITest { @@ -33,7 +33,7 @@ public class TaskAssignmentsITest { @Test public void testCreateUpdateGetDeleteTaskAssignment() { FileFull file = uploadNewFile(); - Date date = dateTimeFromString("2035-01-01T00:00:00Z"); + OffsetDateTime date = dateTimeFromString("2035-01-01T00:00:00Z"); Task task = client .getTasks() diff --git a/src/test/java/com/box/sdkgen/test/tasks/TasksITest.java b/src/test/java/com/box/sdkgen/test/tasks/TasksITest.java index a43846d5f..7cb71c21e 100644 --- a/src/test/java/com/box/sdkgen/test/tasks/TasksITest.java +++ b/src/test/java/com/box/sdkgen/test/tasks/TasksITest.java @@ -20,7 +20,7 @@ import com.box.sdkgen.schemas.files.Files; import com.box.sdkgen.schemas.task.Task; import com.box.sdkgen.schemas.tasks.Tasks; -import java.util.Date; +import java.time.OffsetDateTime; import org.junit.jupiter.api.Test; public class TasksITest { @@ -38,7 +38,7 @@ public void testCreateUpdateGetDeleteTask() { getUuid(), new UploadFileRequestBodyAttributesParentField("0")), generateByteStream(10))); FileFull file = files.getEntries().get(0); - Date dateTime = dateTimeFromString("2035-01-01T00:00:00Z"); + OffsetDateTime dateTime = dateTimeFromString("2035-01-01T00:00:00Z"); Task task = client .getTasks() From cc532475cdaf5ec3fd710149b41a6e7b04dcd32f Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Mon, 15 Sep 2025 14:39:16 +0200 Subject: [PATCH 025/148] feat: Add proxy support (box/box-codegen#830) (#1424) --- .codegen.json | 2 +- docs/Client.md | 16 +++++ .../boxnetworkclient/BoxNetworkClient.java | 38 ++++++++++++ .../networking/network/NetworkSession.java | 51 ++++++++++++++-- .../networking/proxyconfig/ProxyConfig.java | 59 +++++++++++++++++++ 5 files changed, 160 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/box/sdkgen/networking/proxyconfig/ProxyConfig.java diff --git a/.codegen.json b/.codegen.json index bff58a927..31f95bead 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "dcdff3f", "specHash": "a05e5d7", "version": "0.1.0" } +{ "engineHash": "ee965c4", "specHash": "a05e5d7", "version": "0.1.0" } diff --git a/docs/Client.md b/docs/Client.md index f1cd01706..9a871d55e 100644 --- a/docs/Client.md +++ b/docs/Client.md @@ -17,6 +17,7 @@ divided across resource managers. - [Custom headers](#custom-headers) - [Custom Base URLs](#custom-base-urls) - [Interceptors](#interceptors) +- [Use Proxy for API calls](#use-proxy-for-api-calls) @@ -176,3 +177,18 @@ List interceptors = new ArrayList<>() { }; BoxClient clientWithInterceptor = client.withInterceptors(interceptors); ``` + +# Use Proxy for API calls + +In order to use a proxy for API calls, calling the `client.withProxy(proxyConfig)` method creates a new client, leaving the original client unmodified, with the username and password being optional. We only support adding proxy for BoxNetworkClient. If you are using your own implementation of NetworkClient, you would need to configure proxy on your own. + +**Note:** We are only supporting http/s proxies with basic authentication. NTLM and other authentication methods are not supported. + +```java +ProxyConfig proxyConfig = new ProxyConfig("http://127.0.0.1:3128"); +newClient = client.withProxy(proxyConfig); + +//Using Basic Auth with username and password +ProxyConfig proxyConfig = new ProxyConfig.Builder("http://127.0.0.1:3128").username("username").password("password").build(); +newClient = client.withProxy(proxyConfig); +``` diff --git a/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java b/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java index 2fd150064..261b24b4d 100644 --- a/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java +++ b/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java @@ -18,16 +18,22 @@ import com.box.sdkgen.networking.fetchresponse.FetchResponse; import com.box.sdkgen.networking.network.NetworkSession; import com.box.sdkgen.networking.networkclient.NetworkClient; +import com.box.sdkgen.networking.proxyconfig.ProxyConfig; import com.fasterxml.jackson.databind.JsonNode; import java.io.IOException; +import java.net.InetSocketAddress; +import java.net.Proxy; import java.net.URI; +import java.nio.charset.StandardCharsets; import java.util.Locale; import java.util.Map; import java.util.Objects; +import java.util.Optional; import java.util.TreeMap; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import okhttp3.Call; +import okhttp3.Credentials; import okhttp3.Headers; import okhttp3.HttpUrl; import okhttp3.MediaType; @@ -44,6 +50,8 @@ public class BoxNetworkClient implements NetworkClient { private static final int BASE_TIMEOUT = 1; private static final double RANDOM_FACTOR = 0.5; + private static final int DEFAULT_HTTP_PORT = 80; + private static final int DEFAULT_HTTPS_PORT = 443; protected OkHttpClient httpClient; @@ -64,6 +72,36 @@ public OkHttpClient getHttpClient() { return httpClient; } + public BoxNetworkClient withProxy(ProxyConfig config) { + URI uri = URI.create(config.getUrl()); + String host = Objects.requireNonNull(uri.getHost(), "Invalid Proxy URL"); + + String scheme = + Optional.ofNullable(uri.getScheme()) + .filter(schema -> schema.startsWith("http")) + .orElseThrow(() -> new IllegalArgumentException("Invalid Proxy URL: " + uri)); + + int port = + (uri.getPort() != -1) + ? uri.getPort() + : ("https".equalsIgnoreCase(scheme) ? DEFAULT_HTTPS_PORT : DEFAULT_HTTP_PORT); + + OkHttpClient.Builder clientBuilder = + httpClient + .newBuilder() + .proxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress(host, port))); + + String username = config.getUsername(); + String password = config.getPassword(); + if (username != null && !username.trim().isEmpty() && password != null) { + String basic = Credentials.basic(username, password, StandardCharsets.UTF_8); + clientBuilder.proxyAuthenticator( + (route, resp) -> + resp.request().newBuilder().header("Proxy-Authorization", basic).build()); + } + return new BoxNetworkClient(clientBuilder.build()); + } + public FetchResponse fetch(FetchOptions options) { NetworkSession networkSession = options.getNetworkSession() == null ? new NetworkSession() : options.getNetworkSession(); diff --git a/src/main/java/com/box/sdkgen/networking/network/NetworkSession.java b/src/main/java/com/box/sdkgen/networking/network/NetworkSession.java index 4206ff5a6..3c453ec9d 100644 --- a/src/main/java/com/box/sdkgen/networking/network/NetworkSession.java +++ b/src/main/java/com/box/sdkgen/networking/network/NetworkSession.java @@ -1,10 +1,12 @@ package com.box.sdkgen.networking.network; +import com.box.sdkgen.box.errors.BoxSDKError; import com.box.sdkgen.internal.logging.DataSanitizer; import com.box.sdkgen.networking.baseurls.BaseUrls; import com.box.sdkgen.networking.boxnetworkclient.BoxNetworkClient; import com.box.sdkgen.networking.interceptors.Interceptor; import com.box.sdkgen.networking.networkclient.NetworkClient; +import com.box.sdkgen.networking.proxyconfig.ProxyConfig; import com.box.sdkgen.networking.retries.BoxRetryStrategy; import com.box.sdkgen.networking.retries.RetryStrategy; import java.util.ArrayList; @@ -27,6 +29,8 @@ public class NetworkSession { protected DataSanitizer dataSanitizer; + protected ProxyConfig proxyConfig; + public NetworkSession() { networkClient = new BoxNetworkClient(); retryStrategy = new BoxRetryStrategy(); @@ -40,6 +44,7 @@ protected NetworkSession(Builder builder) { this.interceptors = builder.interceptors; this.retryStrategy = builder.retryStrategy; this.dataSanitizer = builder.dataSanitizer; + this.proxyConfig = builder.proxyConfig; } public NetworkSession withAdditionalHeaders() { @@ -56,7 +61,8 @@ public NetworkSession withAdditionalHeaders(Map additionalHeader .interceptors(this.interceptors) .networkClient(this.networkClient) .retryStrategy(this.retryStrategy) - .dataSanitizer(dataSanitizer) + .dataSanitizer(this.dataSanitizer) + .proxyConfig(this.proxyConfig) .build(); } @@ -67,7 +73,8 @@ public NetworkSession withCustomBaseUrls(BaseUrls baseUrls) { .interceptors(this.interceptors) .networkClient(this.networkClient) .retryStrategy(this.retryStrategy) - .dataSanitizer(dataSanitizer) + .dataSanitizer(this.dataSanitizer) + .proxyConfig(this.proxyConfig) .build(); } @@ -81,7 +88,8 @@ public NetworkSession withInterceptors(List interceptors) { .interceptors(newInterceptors) .networkClient(this.networkClient) .retryStrategy(this.retryStrategy) - .dataSanitizer(dataSanitizer) + .dataSanitizer(this.dataSanitizer) + .proxyConfig(this.proxyConfig) .build(); } @@ -92,7 +100,8 @@ public NetworkSession withNetworkClient(NetworkClient networkClient) { .interceptors(this.interceptors) .networkClient(networkClient) .retryStrategy(this.retryStrategy) - .dataSanitizer(dataSanitizer) + .dataSanitizer(this.dataSanitizer) + .proxyConfig(this.proxyConfig) .build(); } @@ -103,7 +112,8 @@ public NetworkSession withRetryStrategy(RetryStrategy retryStrategy) { .interceptors(this.interceptors) .networkClient(this.networkClient) .retryStrategy(retryStrategy) - .dataSanitizer(dataSanitizer) + .dataSanitizer(this.dataSanitizer) + .proxyConfig(this.proxyConfig) .build(); } @@ -115,6 +125,26 @@ public NetworkSession withDataSanitizer(DataSanitizer dataSanitizer) { .networkClient(this.networkClient) .retryStrategy(this.retryStrategy) .dataSanitizer(dataSanitizer) + .proxyConfig(this.proxyConfig) + .build(); + } + + public NetworkSession withProxy(ProxyConfig config) { + if (config == null) { + throw new IllegalArgumentException("ProxyConfig cannot be null"); + } + if (!(this.networkClient instanceof BoxNetworkClient)) { + throw new BoxSDKError("Proxies are only supported for BoxNetworkClient"); + } + BoxNetworkClient newClient = ((BoxNetworkClient) this.networkClient).withProxy(config); + return new Builder() + .additionalHeaders(this.additionalHeaders) + .baseUrls(this.baseUrls) + .interceptors(this.interceptors) + .networkClient(newClient) + .retryStrategy(this.retryStrategy) + .dataSanitizer(this.dataSanitizer) + .proxyConfig(config) .build(); } @@ -142,6 +172,10 @@ public DataSanitizer getDataSanitizer() { return dataSanitizer; } + public ProxyConfig getProxyConfig() { + return proxyConfig; + } + public static class Builder { protected Map additionalHeaders = new HashMap<>(); @@ -156,6 +190,8 @@ public static class Builder { protected DataSanitizer dataSanitizer; + protected ProxyConfig proxyConfig; + public Builder() { networkClient = new BoxNetworkClient(); retryStrategy = new BoxRetryStrategy(); @@ -192,6 +228,11 @@ public Builder dataSanitizer(DataSanitizer dataSanitizer) { return this; } + public Builder proxyConfig(ProxyConfig proxyConfig) { + this.proxyConfig = proxyConfig; + return this; + } + public NetworkSession build() { return new NetworkSession(this); } diff --git a/src/main/java/com/box/sdkgen/networking/proxyconfig/ProxyConfig.java b/src/main/java/com/box/sdkgen/networking/proxyconfig/ProxyConfig.java new file mode 100644 index 000000000..83ff1b7fb --- /dev/null +++ b/src/main/java/com/box/sdkgen/networking/proxyconfig/ProxyConfig.java @@ -0,0 +1,59 @@ +package com.box.sdkgen.networking.proxyconfig; + +public class ProxyConfig { + + public final String url; + + public String username; + + public String password; + + public ProxyConfig(String url) { + this.url = url; + } + + protected ProxyConfig(Builder builder) { + this.url = builder.url; + this.username = builder.username; + this.password = builder.password; + } + + public String getUrl() { + return url; + } + + public String getUsername() { + return username; + } + + public String getPassword() { + return password; + } + + public static class Builder { + + protected final String url; + + protected String username; + + protected String password; + + public Builder(String url) { + this.url = url; + } + + public Builder username(String username) { + this.username = username; + return this; + } + + public Builder password(String password) { + this.password = password; + return this; + } + + public ProxyConfig build() { + return new ProxyConfig(this); + } + } +} From e497fbe965245140a3f84c7fcd8af2c44c84518c Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 16 Sep 2025 15:01:39 +0200 Subject: [PATCH 026/148] feat: Add `withProxy` method to `BoxClient` (box/box-codegen#831) (#1425) --- .codegen.json | 2 +- src/main/java/com/box/sdkgen/client/BoxClient.java | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index 31f95bead..1c52cac61 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "ee965c4", "specHash": "a05e5d7", "version": "0.1.0" } +{ "engineHash": "8123fde", "specHash": "a05e5d7", "version": "0.1.0" } diff --git a/src/main/java/com/box/sdkgen/client/BoxClient.java b/src/main/java/com/box/sdkgen/client/BoxClient.java index 491f7e319..7a3993350 100644 --- a/src/main/java/com/box/sdkgen/client/BoxClient.java +++ b/src/main/java/com/box/sdkgen/client/BoxClient.java @@ -89,6 +89,7 @@ import com.box.sdkgen.networking.fetchresponse.FetchResponse; import com.box.sdkgen.networking.interceptors.Interceptor; import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.networking.proxyconfig.ProxyConfig; import java.util.List; import java.util.Map; @@ -981,6 +982,12 @@ public BoxClient withCustomBaseUrls(BaseUrls baseUrls) { .build(); } + public BoxClient withProxy(ProxyConfig config) { + return new BoxClient.Builder(this.auth) + .networkSession(this.networkSession.withProxy(config)) + .build(); + } + public BoxClient withInterceptors(List interceptors) { return new BoxClient.Builder(this.auth) .networkSession(this.networkSession.withInterceptors(interceptors)) From 6c317822aefd7a3f9f67ec8da0774d5194ce7ef7 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 17 Sep 2025 11:18:15 +0200 Subject: [PATCH 027/148] chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] (#1429) --- .codegen.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index 1c52cac61..8eb0e13b7 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "8123fde", "specHash": "a05e5d7", "version": "0.1.0" } +{ "engineHash": "87747c8", "specHash": "a05e5d7", "version": "0.1.0" } From 4a298fc24be6e22a53de178a8390351dfbc2f3f9 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 17 Sep 2025 17:03:10 +0200 Subject: [PATCH 028/148] chore: release version 10.0.0 (#1430) --- .codegen.json | 2 +- CHANGELOG.md | 38 +++++++++++++++++++ build.gradle | 2 +- .../sdkgen/networking/version/Version.java | 2 +- 4 files changed, 41 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index 8eb0e13b7..4b70ff577 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "87747c8", "specHash": "a05e5d7", "version": "0.1.0" } +{ "engineHash": "87747c8", "specHash": "a05e5d7", "version": "10.0.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 8017bf864..d0ccc0fa5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,44 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [10.0.0](https://github.com/box/box-java-sdk/compare/v4.16.3...v10.0.0) (2025-09-17) + +Introducing **`Box SDK v10`**, a major release designed to elevate your developer experience and streamline integration with Box Content Cloud. Currently available as a separate [`sdk-gen`](https://github.com/box/box-java-sdk/tree/sdk-gen) branch, `v10` will ultimately become the main branch. + +### Breaking Changes + +- This SDK version is auto-generated and introduces a new interface for all methods. Extensive documentation is available [here](https://github.com/box/box-java-sdk/tree/sdk-gen/docs). + +### What's New in `v10` + +- **Full API Support** — Complete coverage of the Box API ecosystem, giving you access to all the latest features and functionalities to build feature-rich applications. + +- **Rapid API Updates** — Our new auto-generation approach enables Box API additions within days, ensuring you can leverage the most up-to-date features without delay. + +- **Embedded Documentation** — All objects and parameters are documented directly in the SDK source code, keeping essential information in one place. + +- **Enhanced Convenience Methods** — New methods for authentication, chunk uploads, automatic retries, retry strategy, and more. + +### Important Notes + +This version includes the Box Next Generation SDK artifact, previously developed in parallel to core Box SDKs. To facilitate migration and provide access to the newest features, we'll soon release an additional major version combining both artifacts. Migration to `v10` includes breaking changes, please review the [migration guide](https://github.com/box/box-java-sdk/blob/sdk-gen/migration-guides/from-v4-to-v10.md) for details. For more information, see the [SDK versioning strategy document](https://developer.box.com/tooling/sdks/sdk-versioning). Follow developer changelog for future updates. + +--- + +### What’s New Compared to [Java SDK Gen](https://github.com/box/box-java-sdk-gen) `v0.8.1` + +#### ⚠ BREAKING CHANGES + +* Change names of unions (box/box-codegen[#787](https://github.com/box/box-java-sdk/issues/787)) ([#1359](https://github.com/box/box-java-sdk/issues/1359)) ([114e778](https://github.com/box/box-java-sdk/commit/114e7785031e19fb58933f231e656a991b5effb7)) +* Remove unused models from schemas (box/box-openapi[#547](https://github.com/box/box-java-sdk/issues/547)) ([#1354](https://github.com/box/box-java-sdk/issues/1354)) ([e031308](https://github.com/box/box-java-sdk/commit/e031308f102137351238bf3823372150d3927442)), closes [box/box-openapi#542](https://github.com/box/box-openapi/issues/542) [box/box-openapi#544](https://github.com/box/box-openapi/issues/544) [box/box-codegen#781](https://github.com/box/box-codegen/issues/781) [box/box-openapi#545](https://github.com/box/box-openapi/issues/545) [box/box-codegen#782](https://github.com/box/box-codegen/issues/782) +* Replace `Date` with `OffsetDateTime` (box/box-codegen[#826](https://github.com/box/box-java-sdk/issues/826)) ([#1419](https://github.com/box/box-java-sdk/issues/1419)) ([ed04407](https://github.com/box/box-java-sdk/commit/ed04407e8effa8811bc85023783097f8a95e5223)) + +#### New Features and Enhancements + +* Add proxy support (box/box-codegen[#830](https://github.com/box/box-java-sdk/issues/830)) ([#1424](https://github.com/box/box-java-sdk/issues/1424)) ([cc53247](https://github.com/box/box-java-sdk/commit/cc532475cdaf5ec3fd710149b41a6e7b04dcd32f)) + +For more details check [migration guide](https://github.com/box/box-java-sdk/blob/sdk-gen/migration-guides/from-box-java-sdk-gen-v0-to-box-java-sdk-v10.md) from `box-java-sdk-gen` `v0` to `box-java-sdk` `v10`. + ### [4.16.3](https://github.com/box/box-java-sdk/compare/v4.16.2...v4.16.3) (2025-07-23) diff --git a/build.gradle b/build.gradle index f388dfea3..e06353a2d 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ plugins { } group = "com.box" archivesBaseName = "box-java-sdk" -version = "0.1.0" +version = "10.0.0" java { sourceCompatibility = JavaVersion.toVersion(libraryJavaVersion) targetCompatibility = JavaVersion.toVersion(libraryJavaVersion) diff --git a/src/main/java/com/box/sdkgen/networking/version/Version.java b/src/main/java/com/box/sdkgen/networking/version/Version.java index f31faab37..9506c4e88 100644 --- a/src/main/java/com/box/sdkgen/networking/version/Version.java +++ b/src/main/java/com/box/sdkgen/networking/version/Version.java @@ -3,6 +3,6 @@ public class Version { public static String getVersion() { - return "0.1.0"; + return "10.0.0"; } } From 5cb0f1bc6c038f3ecbaa114815df905c5d176534 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 23 Sep 2025 12:47:54 +0200 Subject: [PATCH 029/148] docs: Add info on Enhanced Extract Agent (box/box-openapi#555) (#1433) --- .codegen.json | 2 +- docs/ai.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.codegen.json b/.codegen.json index 4b70ff577..53cda30cb 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "87747c8", "specHash": "a05e5d7", "version": "10.0.0" } +{ "engineHash": "0271743", "specHash": "1ed059a", "version": "10.0.0" } diff --git a/docs/ai.md b/docs/ai.md index d5914a56f..a8b3cef23 100644 --- a/docs/ai.md +++ b/docs/ai.md @@ -137,7 +137,7 @@ Sends an AI request to supported Large Language Models (LLMs) and returns extrac For this request, you either need a metadata template or a list of fields you want to extract. Input is **either** a metadata template or a list of fields to ensure the structure. To learn more about creating templates, see [Creating metadata templates in the Admin Console](https://support.box.com/hc/en-us/articles/360044194033-Customizing-Metadata-Templates) -or use the [metadata template API](g://metadata/templates/create). +or use the [metadata template API](g://metadata/templates/create). This endpoint also supports [Enhanced Extract Agent](g://box-ai/ai-tutorials/extract-metadata-structured/#enhanced-extract-agent). This operation is performed by calling function `createAiExtractStructured`. From 413afb47eea71e755d1916074616f97258f7f46f Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 23 Sep 2025 12:51:18 +0200 Subject: [PATCH 030/148] chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] (#1436) --- .codegen.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index 53cda30cb..51e7551bf 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "0271743", "specHash": "1ed059a", "version": "10.0.0" } +{ "engineHash": "eed6b7a", "specHash": "1ed059a", "version": "10.0.0" } From 672f17d9af0eb157415c8dae266ea247ced9bc74 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 30 Sep 2025 14:17:13 +0200 Subject: [PATCH 031/148] test: Move integration tests to new directory (box/box-codegen#838) (#1439) --- .codegen.json | 2 +- .github/workflows/build.yml | 2 +- build.gradle | 2 +- .../com/box/sdkgen/{test => }/ai/AiITest.java | 6 +- .../{test => }/aistudio/AiStudioITest.java | 6 +- .../AppItemAssociationsITest.java | 4 +- .../{test => }/archives/ArchivesITest.java | 4 +- .../box/sdkgen/{test => }/auth/AuthITest.java | 2 +- .../{test => }/avatars/AvatarsITest.java | 4 +- .../chunkeduploads/ChunkedUploadsITest.java | 4 +- .../chunkeduploads/TestPartAccumulator.java | 2 +- .../classifications/ClassificationsITest.java | 8 +- .../sdkgen/{test => }/client/ClientITest.java | 5 +- .../client/InterceptorAddingRoleToFields.java | 2 +- .../client/InterceptorChangingResponse.java | 2 +- .../client/InterceptorThrowingError.java | 2 +- .../CollaborationAllowlistEntriesITest.java | 4 +- ...laborationAllowlistExemptTargetsITest.java | 4 +- .../{test => }/comments/CommentsITest.java | 4 +- .../{test => }/commons/CommonsManager.java | 2 +- .../devicepinners/DevicePinnersITest.java | 4 +- .../sdkgen/{test => }/docgen/DocgenITest.java | 8 +- .../docgentemplate/DocgenTemplateITest.java | 6 +- .../{test => }/downloads/DownloadsITest.java | 6 +- .../emailaliases/EmailAliasesITest.java | 4 +- .../sdkgen/{test => }/events/EventsITest.java | 4 +- .../externalusers/ExternalUsersITest.java | 6 +- .../FileClassificationsITest.java | 10 +- .../filemetadata/FileMetadataITest.java | 6 +- .../filerequests/FileRequestsITest.java | 4 +- .../sdkgen/{test => }/files/FilesITest.java | 6 +- .../FileVersionLegalHoldsITest.java | 4 +- .../FileVersionRetentionsITest.java | 6 +- .../fileversions/FileVersionsITest.java | 4 +- .../filewatermarks/FileWatermarksITest.java | 4 +- .../FolderClassificationsITest.java | 10 +- .../folderlocks/FolderLocksITest.java | 6 +- .../foldermetadata/FolderMetadataITest.java | 6 +- .../{test => }/folders/FoldersITest.java | 4 +- .../FolderWatermarksITest.java | 4 +- .../sdkgen/{test => }/groups/GroupsITest.java | 4 +- .../HubCollaborationsITest.java | 94 ++++++++++++++++ .../box/sdkgen/hubitems/HubItemsITest.java | 92 +++++++++++++++ .../java/com/box/sdkgen/hubs/HubsITest.java | 105 ++++++++++++++++++ .../IntegrationMappingsITest.java | 6 +- .../{test => }/invites/InvitesITest.java | 4 +- .../LegalHoldPoliciesITest.java | 4 +- .../LegalHoldPolicyAssignmentsITest.java | 6 +- .../ListCollaborationsITest.java | 8 +- .../memberships/MembershipsITest.java | 4 +- .../MetadataCascadePoliciesITest.java | 6 +- .../MetadataTemplatesITest.java | 6 +- .../recentitems/RecentItemsITest.java | 4 +- .../RetentionPoliciesITest.java | 4 +- .../RetentionPolicyAssignmentsITest.java | 4 +- .../sdkgen/{test => }/search/SearchITest.java | 4 +- .../SessionTerminationITest.java | 6 +- .../SharedLinksAppItemsITest.java | 4 +- .../SharedLinksFilesITest.java | 6 +- .../SharedLinksFoldersITest.java | 6 +- .../SharedLinksWebLinksITest.java | 6 +- .../ShieldInformationBarrierReportsITest.java | 6 +- .../ShieldInformationBarriersITest.java | 6 +- ...InformationBarrierSegmentMembersITest.java | 6 +- ...mationBarrierSegmentRestrictionsITest.java | 6 +- ...ShieldInformationBarrierSegmentsITest.java | 6 +- .../shieldlists/ShieldListsITest.java | 4 +- .../signrequests/SignRequestsITest.java | 8 +- .../signtemplates/SignTemplatesITest.java | 4 +- .../sdkgen/{test => }/skills/SkillsITest.java | 6 +- .../StoragePolicicyAssignmentsITest.java | 4 +- .../storagepolicies/StoragePoliciesITest.java | 4 +- .../taskassignments/TaskAssignmentsITest.java | 6 +- .../sdkgen/{test => }/tasks/TasksITest.java | 4 +- .../termsofservices/TermsOfServicesITest.java | 6 +- .../TermsOfServiceUserStatusesITest.java | 6 +- .../{test => }/transfer/TransferITest.java | 4 +- .../trashedfiles/TrashedFilesITest.java | 4 +- .../trashedfolders/TrashedFoldersITest.java | 4 +- .../trasheditems/TrashedItemsITest.java | 6 +- .../trashedweblinks/TrashedWebLinksITest.java | 4 +- .../{test => }/uploads/UploadsITest.java | 4 +- .../UserCollaborationsITest.java | 6 +- .../sdkgen/{test => }/users/UsersITest.java | 4 +- .../{test => }/webhooks/WebhooksITest.java | 4 +- .../{test => }/weblinks/WeblinksITest.java | 4 +- .../{test => }/workflows/WorkflowsITest.java | 6 +- .../zipdownloads/ZipDownloadsITest.java | 8 +- 88 files changed, 498 insertions(+), 208 deletions(-) rename src/test/java/com/box/sdkgen/{test => }/ai/AiITest.java (99%) rename src/test/java/com/box/sdkgen/{test => }/aistudio/AiStudioITest.java (95%) rename src/test/java/com/box/sdkgen/{test => }/appitemassociations/AppItemAssociationsITest.java (95%) rename src/test/java/com/box/sdkgen/{test => }/archives/ArchivesITest.java (92%) rename src/test/java/com/box/sdkgen/{test => }/auth/AuthITest.java (99%) rename src/test/java/com/box/sdkgen/{test => }/avatars/AvatarsITest.java (94%) rename src/test/java/com/box/sdkgen/{test => }/chunkeduploads/ChunkedUploadsITest.java (98%) rename src/test/java/com/box/sdkgen/{test => }/chunkeduploads/TestPartAccumulator.java (98%) rename src/test/java/com/box/sdkgen/{test => }/classifications/ClassificationsITest.java (91%) rename src/test/java/com/box/sdkgen/{test => }/client/ClientITest.java (98%) rename src/test/java/com/box/sdkgen/{test => }/client/InterceptorAddingRoleToFields.java (96%) rename src/test/java/com/box/sdkgen/{test => }/client/InterceptorChangingResponse.java (95%) rename src/test/java/com/box/sdkgen/{test => }/client/InterceptorThrowingError.java (94%) rename src/test/java/com/box/sdkgen/{test => }/collaborationallowlistentries/CollaborationAllowlistEntriesITest.java (94%) rename src/test/java/com/box/sdkgen/{test => }/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargetsITest.java (95%) rename src/test/java/com/box/sdkgen/{test => }/comments/CommentsITest.java (96%) rename src/test/java/com/box/sdkgen/{test => }/commons/CommonsManager.java (99%) rename src/test/java/com/box/sdkgen/{test => }/devicepinners/DevicePinnersITest.java (92%) rename src/test/java/com/box/sdkgen/{test => }/docgen/DocgenITest.java (95%) rename src/test/java/com/box/sdkgen/{test => }/docgentemplate/DocgenTemplateITest.java (91%) rename src/test/java/com/box/sdkgen/{test => }/downloads/DownloadsITest.java (94%) rename src/test/java/com/box/sdkgen/{test => }/emailaliases/EmailAliasesITest.java (93%) rename src/test/java/com/box/sdkgen/{test => }/events/EventsITest.java (97%) rename src/test/java/com/box/sdkgen/{test => }/externalusers/ExternalUsersITest.java (92%) rename src/test/java/com/box/sdkgen/{test => }/fileclassifications/FileClassificationsITest.java (92%) rename src/test/java/com/box/sdkgen/{test => }/filemetadata/FileMetadataITest.java (98%) rename src/test/java/com/box/sdkgen/{test => }/filerequests/FileRequestsITest.java (95%) rename src/test/java/com/box/sdkgen/{test => }/files/FilesITest.java (97%) rename src/test/java/com/box/sdkgen/{test => }/fileversionlegalholds/FileVersionLegalHoldsITest.java (89%) rename src/test/java/com/box/sdkgen/{test => }/fileversionretentions/FileVersionRetentionsITest.java (96%) rename src/test/java/com/box/sdkgen/{test => }/fileversions/FileVersionsITest.java (98%) rename src/test/java/com/box/sdkgen/{test => }/filewatermarks/FileWatermarksITest.java (94%) rename src/test/java/com/box/sdkgen/{test => }/folderclassifications/FolderClassificationsITest.java (92%) rename src/test/java/com/box/sdkgen/{test => }/folderlocks/FolderLocksITest.java (91%) rename src/test/java/com/box/sdkgen/{test => }/foldermetadata/FolderMetadataITest.java (98%) rename src/test/java/com/box/sdkgen/{test => }/folders/FoldersITest.java (97%) rename src/test/java/com/box/sdkgen/{test => }/folderwatermarks/FolderWatermarksITest.java (94%) rename src/test/java/com/box/sdkgen/{test => }/groups/GroupsITest.java (94%) create mode 100644 src/test/java/com/box/sdkgen/hubcollaborations/HubCollaborationsITest.java create mode 100644 src/test/java/com/box/sdkgen/hubitems/HubItemsITest.java create mode 100644 src/test/java/com/box/sdkgen/hubs/HubsITest.java rename src/test/java/com/box/sdkgen/{test => }/integrationmappings/IntegrationMappingsITest.java (97%) rename src/test/java/com/box/sdkgen/{test => }/invites/InvitesITest.java (93%) rename src/test/java/com/box/sdkgen/{test => }/legalholdpolicies/LegalHoldPoliciesITest.java (96%) rename src/test/java/com/box/sdkgen/{test => }/legalholdpolicyassignments/LegalHoldPolicyAssignmentsITest.java (95%) rename src/test/java/com/box/sdkgen/{test => }/listcollaborations/ListCollaborationsITest.java (94%) rename src/test/java/com/box/sdkgen/{test => }/memberships/MembershipsITest.java (96%) rename src/test/java/com/box/sdkgen/{test => }/metadatacascadepolicies/MetadataCascadePoliciesITest.java (96%) rename src/test/java/com/box/sdkgen/{test => }/metadatatemplates/MetadataTemplatesITest.java (98%) rename src/test/java/com/box/sdkgen/{test => }/recentitems/RecentItemsITest.java (78%) rename src/test/java/com/box/sdkgen/{test => }/retentionpolicies/RetentionPoliciesITest.java (95%) rename src/test/java/com/box/sdkgen/{test => }/retentionpolicyassignments/RetentionPolicyAssignmentsITest.java (97%) rename src/test/java/com/box/sdkgen/{test => }/search/SearchITest.java (99%) rename src/test/java/com/box/sdkgen/{test => }/sessiontermination/SessionTerminationITest.java (90%) rename src/test/java/com/box/sdkgen/{test => }/sharedlinksappitems/SharedLinksAppItemsITest.java (88%) rename src/test/java/com/box/sdkgen/{test => }/sharedlinksfiles/SharedLinksFilesITest.java (96%) rename src/test/java/com/box/sdkgen/{test => }/sharedlinksfolders/SharedLinksFoldersITest.java (96%) rename src/test/java/com/box/sdkgen/{test => }/sharedlinksweblinks/SharedLinksWebLinksITest.java (96%) rename src/test/java/com/box/sdkgen/{test => }/shieldinformationbarrierreports/ShieldInformationBarrierReportsITest.java (92%) rename src/test/java/com/box/sdkgen/{test => }/shieldinformationbarriers/ShieldInformationBarriersITest.java (89%) rename src/test/java/com/box/sdkgen/{test => }/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembersITest.java (94%) rename src/test/java/com/box/sdkgen/{test => }/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictionsITest.java (96%) rename src/test/java/com/box/sdkgen/{test => }/shieldinformationbarriersegments/ShieldInformationBarrierSegmentsITest.java (94%) rename src/test/java/com/box/sdkgen/{test => }/shieldlists/ShieldListsITest.java (97%) rename src/test/java/com/box/sdkgen/{test => }/signrequests/SignRequestsITest.java (96%) rename src/test/java/com/box/sdkgen/{test => }/signtemplates/SignTemplatesITest.java (91%) rename src/test/java/com/box/sdkgen/{test => }/skills/SkillsITest.java (96%) rename src/test/java/com/box/sdkgen/{test => }/storagepolicicyassignments/StoragePolicicyAssignmentsITest.java (97%) rename src/test/java/com/box/sdkgen/{test => }/storagepolicies/StoragePoliciesITest.java (87%) rename src/test/java/com/box/sdkgen/{test => }/taskassignments/TaskAssignmentsITest.java (95%) rename src/test/java/com/box/sdkgen/{test => }/tasks/TasksITest.java (96%) rename src/test/java/com/box/sdkgen/{test => }/termsofservices/TermsOfServicesITest.java (88%) rename src/test/java/com/box/sdkgen/{test => }/termsofserviceuserstatuses/TermsOfServiceUserStatusesITest.java (93%) rename src/test/java/com/box/sdkgen/{test => }/transfer/TransferITest.java (94%) rename src/test/java/com/box/sdkgen/{test => }/trashedfiles/TrashedFilesITest.java (95%) rename src/test/java/com/box/sdkgen/{test => }/trashedfolders/TrashedFoldersITest.java (93%) rename src/test/java/com/box/sdkgen/{test => }/trasheditems/TrashedItemsITest.java (73%) rename src/test/java/com/box/sdkgen/{test => }/trashedweblinks/TrashedWebLinksITest.java (95%) rename src/test/java/com/box/sdkgen/{test => }/uploads/UploadsITest.java (97%) rename src/test/java/com/box/sdkgen/{test => }/usercollaborations/UserCollaborationsITest.java (97%) rename src/test/java/com/box/sdkgen/{test => }/users/UsersITest.java (94%) rename src/test/java/com/box/sdkgen/{test => }/webhooks/WebhooksITest.java (99%) rename src/test/java/com/box/sdkgen/{test => }/weblinks/WeblinksITest.java (96%) rename src/test/java/com/box/sdkgen/{test => }/workflows/WorkflowsITest.java (95%) rename src/test/java/com/box/sdkgen/{test => }/zipdownloads/ZipDownloadsITest.java (93%) diff --git a/.codegen.json b/.codegen.json index 51e7551bf..f351a08fa 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "eed6b7a", "specHash": "1ed059a", "version": "10.0.0" } +{ "engineHash": "6674fe3", "specHash": "1ed059a", "version": "10.0.0" } diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 17f6dc0cf..97f872bb4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -49,4 +49,4 @@ jobs: CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }} USER_ID: ${{ secrets.USER_ID }} ENTERPRISE_ID: ${{ secrets.ENTERPRISE_ID }} - run: ./gradlew test --tests com.box.sdkgen.test.auth.AuthITest --tests com.box.sdkgen.test.files.FilesITest --tests com.box.sdkgen.test.downloads.DownloadsITest --tests com.box.sdkgen.test.uploads.UploadsITest --stacktrace + run: ./gradlew test --tests com.box.sdkgen.auth.AuthITest --tests com.box.sdkgen.files.FilesITest --tests com.box.sdkgen.downloads.DownloadsITest --tests com.box.sdkgen.uploads.UploadsITest --stacktrace diff --git a/build.gradle b/build.gradle index e06353a2d..ec03f999a 100644 --- a/build.gradle +++ b/build.gradle @@ -57,7 +57,7 @@ test { filter { // Socket timeout - excludeTestsMatching 'com.box.sdkgen.test.transfer.TransferITest.testTransferUserContent' + excludeTestsMatching 'com.box.sdkgen.transfer.TransferITest.testTransferUserContent' } } diff --git a/src/test/java/com/box/sdkgen/test/ai/AiITest.java b/src/test/java/com/box/sdkgen/ai/AiITest.java similarity index 99% rename from src/test/java/com/box/sdkgen/test/ai/AiITest.java rename to src/test/java/com/box/sdkgen/ai/AiITest.java index 9e89793b7..4a5ac43e8 100644 --- a/src/test/java/com/box/sdkgen/test/ai/AiITest.java +++ b/src/test/java/com/box/sdkgen/ai/AiITest.java @@ -1,13 +1,13 @@ -package com.box.sdkgen.test.ai; +package com.box.sdkgen.ai; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.uploadNewFile; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.dateTimeFromString; import static com.box.sdkgen.internal.utils.UtilsManager.delayInSeconds; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; import static com.box.sdkgen.internal.utils.UtilsManager.getValueFromObjectRawData; import static com.box.sdkgen.internal.utils.UtilsManager.stringToByteStream; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.ai.GetAiAgentDefaultConfigQueryParams; diff --git a/src/test/java/com/box/sdkgen/test/aistudio/AiStudioITest.java b/src/test/java/com/box/sdkgen/aistudio/AiStudioITest.java similarity index 95% rename from src/test/java/com/box/sdkgen/test/aistudio/AiStudioITest.java rename to src/test/java/com/box/sdkgen/aistudio/AiStudioITest.java index 8299c093b..9ded2ffb1 100644 --- a/src/test/java/com/box/sdkgen/test/aistudio/AiStudioITest.java +++ b/src/test/java/com/box/sdkgen/aistudio/AiStudioITest.java @@ -1,9 +1,9 @@ -package com.box.sdkgen.test.aistudio; +package com.box.sdkgen.aistudio; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.uploadNewFile; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.aistudio.GetAiAgentByIdQueryParams; diff --git a/src/test/java/com/box/sdkgen/test/appitemassociations/AppItemAssociationsITest.java b/src/test/java/com/box/sdkgen/appitemassociations/AppItemAssociationsITest.java similarity index 95% rename from src/test/java/com/box/sdkgen/test/appitemassociations/AppItemAssociationsITest.java rename to src/test/java/com/box/sdkgen/appitemassociations/AppItemAssociationsITest.java index 28b9739c1..c776e8f86 100644 --- a/src/test/java/com/box/sdkgen/test/appitemassociations/AppItemAssociationsITest.java +++ b/src/test/java/com/box/sdkgen/appitemassociations/AppItemAssociationsITest.java @@ -1,8 +1,8 @@ -package com.box.sdkgen.test.appitemassociations; +package com.box.sdkgen.appitemassociations; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.files.GetFileByIdQueryParams; diff --git a/src/test/java/com/box/sdkgen/test/archives/ArchivesITest.java b/src/test/java/com/box/sdkgen/archives/ArchivesITest.java similarity index 92% rename from src/test/java/com/box/sdkgen/test/archives/ArchivesITest.java rename to src/test/java/com/box/sdkgen/archives/ArchivesITest.java index 24d9105ab..77187839b 100644 --- a/src/test/java/com/box/sdkgen/test/archives/ArchivesITest.java +++ b/src/test/java/com/box/sdkgen/archives/ArchivesITest.java @@ -1,9 +1,9 @@ -package com.box.sdkgen.test.archives; +package com.box.sdkgen.archives; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/auth/AuthITest.java b/src/test/java/com/box/sdkgen/auth/AuthITest.java similarity index 99% rename from src/test/java/com/box/sdkgen/test/auth/AuthITest.java rename to src/test/java/com/box/sdkgen/auth/AuthITest.java index 864b862ec..0698adfc0 100644 --- a/src/test/java/com/box/sdkgen/test/auth/AuthITest.java +++ b/src/test/java/com/box/sdkgen/auth/AuthITest.java @@ -1,4 +1,4 @@ -package com.box.sdkgen.test.auth; +package com.box.sdkgen.auth; import static com.box.sdkgen.internal.utils.UtilsManager.decodeBase64; import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; diff --git a/src/test/java/com/box/sdkgen/test/avatars/AvatarsITest.java b/src/test/java/com/box/sdkgen/avatars/AvatarsITest.java similarity index 94% rename from src/test/java/com/box/sdkgen/test/avatars/AvatarsITest.java rename to src/test/java/com/box/sdkgen/avatars/AvatarsITest.java index 419ecaea4..e8e5ebf73 100644 --- a/src/test/java/com/box/sdkgen/test/avatars/AvatarsITest.java +++ b/src/test/java/com/box/sdkgen/avatars/AvatarsITest.java @@ -1,10 +1,10 @@ -package com.box.sdkgen.test.avatars; +package com.box.sdkgen.avatars; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.bufferEquals; import static com.box.sdkgen.internal.utils.UtilsManager.decodeBase64ByteStream; import static com.box.sdkgen.internal.utils.UtilsManager.generateByteBuffer; import static com.box.sdkgen.internal.utils.UtilsManager.readByteStream; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/chunkeduploads/ChunkedUploadsITest.java b/src/test/java/com/box/sdkgen/chunkeduploads/ChunkedUploadsITest.java similarity index 98% rename from src/test/java/com/box/sdkgen/test/chunkeduploads/ChunkedUploadsITest.java rename to src/test/java/com/box/sdkgen/chunkeduploads/ChunkedUploadsITest.java index e8413e4fa..1536763ee 100644 --- a/src/test/java/com/box/sdkgen/test/chunkeduploads/ChunkedUploadsITest.java +++ b/src/test/java/com/box/sdkgen/chunkeduploads/ChunkedUploadsITest.java @@ -1,5 +1,6 @@ -package com.box.sdkgen.test.chunkeduploads; +package com.box.sdkgen.chunkeduploads; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.bufferLength; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; @@ -9,7 +10,6 @@ import static com.box.sdkgen.internal.utils.UtilsManager.iterateChunks; import static com.box.sdkgen.internal.utils.UtilsManager.readByteStream; import static com.box.sdkgen.internal.utils.UtilsManager.reduceIterator; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.internal.utils.Hash; diff --git a/src/test/java/com/box/sdkgen/test/chunkeduploads/TestPartAccumulator.java b/src/test/java/com/box/sdkgen/chunkeduploads/TestPartAccumulator.java similarity index 98% rename from src/test/java/com/box/sdkgen/test/chunkeduploads/TestPartAccumulator.java rename to src/test/java/com/box/sdkgen/chunkeduploads/TestPartAccumulator.java index eac6de24e..dc09ee76d 100644 --- a/src/test/java/com/box/sdkgen/test/chunkeduploads/TestPartAccumulator.java +++ b/src/test/java/com/box/sdkgen/chunkeduploads/TestPartAccumulator.java @@ -1,4 +1,4 @@ -package com.box.sdkgen.test.chunkeduploads; +package com.box.sdkgen.chunkeduploads; import com.box.sdkgen.internal.utils.Hash; import com.box.sdkgen.schemas.uploadpart.UploadPart; diff --git a/src/test/java/com/box/sdkgen/test/classifications/ClassificationsITest.java b/src/test/java/com/box/sdkgen/classifications/ClassificationsITest.java similarity index 91% rename from src/test/java/com/box/sdkgen/test/classifications/ClassificationsITest.java rename to src/test/java/com/box/sdkgen/classifications/ClassificationsITest.java index 3337c4d71..de90b52c4 100644 --- a/src/test/java/com/box/sdkgen/test/classifications/ClassificationsITest.java +++ b/src/test/java/com/box/sdkgen/classifications/ClassificationsITest.java @@ -1,9 +1,9 @@ -package com.box.sdkgen.test.classifications; +package com.box.sdkgen.classifications; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.getOrCreateClassification; +import static com.box.sdkgen.commons.CommonsManager.getOrCreateClassificationTemplate; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateClassification; -import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateClassificationTemplate; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.classifications.UpdateClassificationRequestBody; diff --git a/src/test/java/com/box/sdkgen/test/client/ClientITest.java b/src/test/java/com/box/sdkgen/client/ClientITest.java similarity index 98% rename from src/test/java/com/box/sdkgen/test/client/ClientITest.java rename to src/test/java/com/box/sdkgen/client/ClientITest.java index 6c2211b4f..dcae23882 100644 --- a/src/test/java/com/box/sdkgen/test/client/ClientITest.java +++ b/src/test/java/com/box/sdkgen/client/ClientITest.java @@ -1,5 +1,6 @@ -package com.box.sdkgen.test.client; +package com.box.sdkgen.client; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.bufferEquals; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; @@ -11,10 +12,8 @@ import static com.box.sdkgen.internal.utils.UtilsManager.readByteStream; import static com.box.sdkgen.serialization.json.JsonManager.getSdValueByKey; import static com.box.sdkgen.serialization.json.JsonManager.jsonToSerializedData; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import static org.junit.jupiter.api.Assertions.assertThrows; -import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.folders.CreateFolderRequestBody; import com.box.sdkgen.managers.folders.CreateFolderRequestBodyParentField; import com.box.sdkgen.managers.folders.DeleteFolderByIdQueryParams; diff --git a/src/test/java/com/box/sdkgen/test/client/InterceptorAddingRoleToFields.java b/src/test/java/com/box/sdkgen/client/InterceptorAddingRoleToFields.java similarity index 96% rename from src/test/java/com/box/sdkgen/test/client/InterceptorAddingRoleToFields.java rename to src/test/java/com/box/sdkgen/client/InterceptorAddingRoleToFields.java index e206eeacc..70444ac5b 100644 --- a/src/test/java/com/box/sdkgen/test/client/InterceptorAddingRoleToFields.java +++ b/src/test/java/com/box/sdkgen/client/InterceptorAddingRoleToFields.java @@ -1,4 +1,4 @@ -package com.box.sdkgen.test.client; +package com.box.sdkgen.client; import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; diff --git a/src/test/java/com/box/sdkgen/test/client/InterceptorChangingResponse.java b/src/test/java/com/box/sdkgen/client/InterceptorChangingResponse.java similarity index 95% rename from src/test/java/com/box/sdkgen/test/client/InterceptorChangingResponse.java rename to src/test/java/com/box/sdkgen/client/InterceptorChangingResponse.java index bd2108fcb..a20bca9c7 100644 --- a/src/test/java/com/box/sdkgen/test/client/InterceptorChangingResponse.java +++ b/src/test/java/com/box/sdkgen/client/InterceptorChangingResponse.java @@ -1,4 +1,4 @@ -package com.box.sdkgen.test.client; +package com.box.sdkgen.client; import static com.box.sdkgen.serialization.json.JsonManager.jsonToSerializedData; diff --git a/src/test/java/com/box/sdkgen/test/client/InterceptorThrowingError.java b/src/test/java/com/box/sdkgen/client/InterceptorThrowingError.java similarity index 94% rename from src/test/java/com/box/sdkgen/test/client/InterceptorThrowingError.java rename to src/test/java/com/box/sdkgen/client/InterceptorThrowingError.java index ab1bc0175..3521405ff 100644 --- a/src/test/java/com/box/sdkgen/test/client/InterceptorThrowingError.java +++ b/src/test/java/com/box/sdkgen/client/InterceptorThrowingError.java @@ -1,4 +1,4 @@ -package com.box.sdkgen.test.client; +package com.box.sdkgen.client; import com.box.sdkgen.networking.fetchoptions.FetchOptions; import com.box.sdkgen.networking.fetchresponse.FetchResponse; diff --git a/src/test/java/com/box/sdkgen/test/collaborationallowlistentries/CollaborationAllowlistEntriesITest.java b/src/test/java/com/box/sdkgen/collaborationallowlistentries/CollaborationAllowlistEntriesITest.java similarity index 94% rename from src/test/java/com/box/sdkgen/test/collaborationallowlistentries/CollaborationAllowlistEntriesITest.java rename to src/test/java/com/box/sdkgen/collaborationallowlistentries/CollaborationAllowlistEntriesITest.java index 4f3da8b7e..087180736 100644 --- a/src/test/java/com/box/sdkgen/test/collaborationallowlistentries/CollaborationAllowlistEntriesITest.java +++ b/src/test/java/com/box/sdkgen/collaborationallowlistentries/CollaborationAllowlistEntriesITest.java @@ -1,8 +1,8 @@ -package com.box.sdkgen.test.collaborationallowlistentries; +package com.box.sdkgen.collaborationallowlistentries; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargetsITest.java b/src/test/java/com/box/sdkgen/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargetsITest.java similarity index 95% rename from src/test/java/com/box/sdkgen/test/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargetsITest.java rename to src/test/java/com/box/sdkgen/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargetsITest.java index fdebf6f36..983aaff9b 100644 --- a/src/test/java/com/box/sdkgen/test/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargetsITest.java +++ b/src/test/java/com/box/sdkgen/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargetsITest.java @@ -1,8 +1,8 @@ -package com.box.sdkgen.test.collaborationallowlistexempttargets; +package com.box.sdkgen.collaborationallowlistexempttargets; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/comments/CommentsITest.java b/src/test/java/com/box/sdkgen/comments/CommentsITest.java similarity index 96% rename from src/test/java/com/box/sdkgen/test/comments/CommentsITest.java rename to src/test/java/com/box/sdkgen/comments/CommentsITest.java index d03f8ac31..582ac4d6d 100644 --- a/src/test/java/com/box/sdkgen/test/comments/CommentsITest.java +++ b/src/test/java/com/box/sdkgen/comments/CommentsITest.java @@ -1,8 +1,8 @@ -package com.box.sdkgen.test.comments; +package com.box.sdkgen.comments; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/commons/CommonsManager.java b/src/test/java/com/box/sdkgen/commons/CommonsManager.java similarity index 99% rename from src/test/java/com/box/sdkgen/test/commons/CommonsManager.java rename to src/test/java/com/box/sdkgen/commons/CommonsManager.java index 455786007..223cd43dc 100644 --- a/src/test/java/com/box/sdkgen/test/commons/CommonsManager.java +++ b/src/test/java/com/box/sdkgen/commons/CommonsManager.java @@ -1,4 +1,4 @@ -package com.box.sdkgen.test.commons; +package com.box.sdkgen.commons; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.decodeBase64; diff --git a/src/test/java/com/box/sdkgen/test/devicepinners/DevicePinnersITest.java b/src/test/java/com/box/sdkgen/devicepinners/DevicePinnersITest.java similarity index 92% rename from src/test/java/com/box/sdkgen/test/devicepinners/DevicePinnersITest.java rename to src/test/java/com/box/sdkgen/devicepinners/DevicePinnersITest.java index 45ae5051f..56af05e61 100644 --- a/src/test/java/com/box/sdkgen/test/devicepinners/DevicePinnersITest.java +++ b/src/test/java/com/box/sdkgen/devicepinners/DevicePinnersITest.java @@ -1,7 +1,7 @@ -package com.box.sdkgen.test.devicepinners; +package com.box.sdkgen.devicepinners; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/docgen/DocgenITest.java b/src/test/java/com/box/sdkgen/docgen/DocgenITest.java similarity index 95% rename from src/test/java/com/box/sdkgen/test/docgen/DocgenITest.java rename to src/test/java/com/box/sdkgen/docgen/DocgenITest.java index dd05c2df5..264b139c1 100644 --- a/src/test/java/com/box/sdkgen/test/docgen/DocgenITest.java +++ b/src/test/java/com/box/sdkgen/docgen/DocgenITest.java @@ -1,11 +1,11 @@ -package com.box.sdkgen.test.docgen; +package com.box.sdkgen.docgen; +import static com.box.sdkgen.commons.CommonsManager.createNewFolder; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.uploadNewFile; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; -import static com.box.sdkgen.test.commons.CommonsManager.createNewFolder; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.docgen.GetDocgenJobsV2025R0QueryParams; diff --git a/src/test/java/com/box/sdkgen/test/docgentemplate/DocgenTemplateITest.java b/src/test/java/com/box/sdkgen/docgentemplate/DocgenTemplateITest.java similarity index 91% rename from src/test/java/com/box/sdkgen/test/docgentemplate/DocgenTemplateITest.java rename to src/test/java/com/box/sdkgen/docgentemplate/DocgenTemplateITest.java index a2ed8fc78..9863f54c5 100644 --- a/src/test/java/com/box/sdkgen/test/docgentemplate/DocgenTemplateITest.java +++ b/src/test/java/com/box/sdkgen/docgentemplate/DocgenTemplateITest.java @@ -1,7 +1,7 @@ -package com.box.sdkgen.test.docgentemplate; +package com.box.sdkgen.docgentemplate; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.uploadNewFile; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.schemas.filefull.FileFull; diff --git a/src/test/java/com/box/sdkgen/test/downloads/DownloadsITest.java b/src/test/java/com/box/sdkgen/downloads/DownloadsITest.java similarity index 94% rename from src/test/java/com/box/sdkgen/test/downloads/DownloadsITest.java rename to src/test/java/com/box/sdkgen/downloads/DownloadsITest.java index 36b0d350b..6cf58861a 100644 --- a/src/test/java/com/box/sdkgen/test/downloads/DownloadsITest.java +++ b/src/test/java/com/box/sdkgen/downloads/DownloadsITest.java @@ -1,5 +1,7 @@ -package com.box.sdkgen.test.downloads; +package com.box.sdkgen.downloads; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.uploadNewFile; import static com.box.sdkgen.internal.utils.UtilsManager.bufferEquals; import static com.box.sdkgen.internal.utils.UtilsManager.closeFileOutputStream; import static com.box.sdkgen.internal.utils.UtilsManager.generateByteBuffer; @@ -8,8 +10,6 @@ import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; import static com.box.sdkgen.internal.utils.UtilsManager.readBufferFromFile; import static com.box.sdkgen.internal.utils.UtilsManager.readByteStream; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.uploads.UploadFileRequestBody; diff --git a/src/test/java/com/box/sdkgen/test/emailaliases/EmailAliasesITest.java b/src/test/java/com/box/sdkgen/emailaliases/EmailAliasesITest.java similarity index 93% rename from src/test/java/com/box/sdkgen/test/emailaliases/EmailAliasesITest.java rename to src/test/java/com/box/sdkgen/emailaliases/EmailAliasesITest.java index 0f5ac210b..c537c9a50 100644 --- a/src/test/java/com/box/sdkgen/test/emailaliases/EmailAliasesITest.java +++ b/src/test/java/com/box/sdkgen/emailaliases/EmailAliasesITest.java @@ -1,7 +1,7 @@ -package com.box.sdkgen.test.emailaliases; +package com.box.sdkgen.emailaliases; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.emailaliases.CreateUserEmailAliasRequestBody; diff --git a/src/test/java/com/box/sdkgen/test/events/EventsITest.java b/src/test/java/com/box/sdkgen/events/EventsITest.java similarity index 97% rename from src/test/java/com/box/sdkgen/test/events/EventsITest.java rename to src/test/java/com/box/sdkgen/events/EventsITest.java index a85cecd07..f647163b7 100644 --- a/src/test/java/com/box/sdkgen/test/events/EventsITest.java +++ b/src/test/java/com/box/sdkgen/events/EventsITest.java @@ -1,9 +1,9 @@ -package com.box.sdkgen.test.events; +package com.box.sdkgen.events; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.epochSecondsToDateTime; import static com.box.sdkgen.internal.utils.UtilsManager.getEpochTimeInSeconds; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import com.box.sdkgen.box.eventstream.EventStream; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/externalusers/ExternalUsersITest.java b/src/test/java/com/box/sdkgen/externalusers/ExternalUsersITest.java similarity index 92% rename from src/test/java/com/box/sdkgen/test/externalusers/ExternalUsersITest.java rename to src/test/java/com/box/sdkgen/externalusers/ExternalUsersITest.java index 52f46cb8b..be5260daa 100644 --- a/src/test/java/com/box/sdkgen/test/externalusers/ExternalUsersITest.java +++ b/src/test/java/com/box/sdkgen/externalusers/ExternalUsersITest.java @@ -1,8 +1,8 @@ -package com.box.sdkgen.test.externalusers; +package com.box.sdkgen.externalusers; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; +import static com.box.sdkgen.commons.CommonsManager.uploadNewFile; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; -import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBody; diff --git a/src/test/java/com/box/sdkgen/test/fileclassifications/FileClassificationsITest.java b/src/test/java/com/box/sdkgen/fileclassifications/FileClassificationsITest.java similarity index 92% rename from src/test/java/com/box/sdkgen/test/fileclassifications/FileClassificationsITest.java rename to src/test/java/com/box/sdkgen/fileclassifications/FileClassificationsITest.java index cd3163d66..23b34cd4e 100644 --- a/src/test/java/com/box/sdkgen/test/fileclassifications/FileClassificationsITest.java +++ b/src/test/java/com/box/sdkgen/fileclassifications/FileClassificationsITest.java @@ -1,10 +1,10 @@ -package com.box.sdkgen.test.fileclassifications; +package com.box.sdkgen.fileclassifications; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.getOrCreateClassification; +import static com.box.sdkgen.commons.CommonsManager.getOrCreateClassificationTemplate; +import static com.box.sdkgen.commons.CommonsManager.uploadNewFile; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateClassification; -import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateClassificationTemplate; -import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/filemetadata/FileMetadataITest.java b/src/test/java/com/box/sdkgen/filemetadata/FileMetadataITest.java similarity index 98% rename from src/test/java/com/box/sdkgen/test/filemetadata/FileMetadataITest.java rename to src/test/java/com/box/sdkgen/filemetadata/FileMetadataITest.java index f5fe116f1..d2104d3a8 100644 --- a/src/test/java/com/box/sdkgen/test/filemetadata/FileMetadataITest.java +++ b/src/test/java/com/box/sdkgen/filemetadata/FileMetadataITest.java @@ -1,11 +1,11 @@ -package com.box.sdkgen.test.filemetadata; +package com.box.sdkgen.filemetadata; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.uploadNewFile; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/filerequests/FileRequestsITest.java b/src/test/java/com/box/sdkgen/filerequests/FileRequestsITest.java similarity index 95% rename from src/test/java/com/box/sdkgen/test/filerequests/FileRequestsITest.java rename to src/test/java/com/box/sdkgen/filerequests/FileRequestsITest.java index 4bbf07cd2..c481fc95c 100644 --- a/src/test/java/com/box/sdkgen/test/filerequests/FileRequestsITest.java +++ b/src/test/java/com/box/sdkgen/filerequests/FileRequestsITest.java @@ -1,8 +1,8 @@ -package com.box.sdkgen.test.filerequests; +package com.box.sdkgen.filerequests; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/files/FilesITest.java b/src/test/java/com/box/sdkgen/files/FilesITest.java similarity index 97% rename from src/test/java/com/box/sdkgen/test/files/FilesITest.java rename to src/test/java/com/box/sdkgen/files/FilesITest.java index 4b605aea0..54e7e9bd6 100644 --- a/src/test/java/com/box/sdkgen/test/files/FilesITest.java +++ b/src/test/java/com/box/sdkgen/files/FilesITest.java @@ -1,5 +1,7 @@ -package com.box.sdkgen.test.files; +package com.box.sdkgen.files; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.uploadNewFile; import static com.box.sdkgen.internal.utils.UtilsManager.bufferEquals; import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; import static com.box.sdkgen.internal.utils.UtilsManager.generateByteBuffer; @@ -8,8 +10,6 @@ import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; import static com.box.sdkgen.internal.utils.UtilsManager.readByteStream; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/fileversionlegalholds/FileVersionLegalHoldsITest.java b/src/test/java/com/box/sdkgen/fileversionlegalholds/FileVersionLegalHoldsITest.java similarity index 89% rename from src/test/java/com/box/sdkgen/test/fileversionlegalholds/FileVersionLegalHoldsITest.java rename to src/test/java/com/box/sdkgen/fileversionlegalholds/FileVersionLegalHoldsITest.java index c82451af8..0d58b06a3 100644 --- a/src/test/java/com/box/sdkgen/test/fileversionlegalholds/FileVersionLegalHoldsITest.java +++ b/src/test/java/com/box/sdkgen/fileversionlegalholds/FileVersionLegalHoldsITest.java @@ -1,6 +1,6 @@ -package com.box.sdkgen.test.fileversionlegalholds; +package com.box.sdkgen.fileversionlegalholds; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/fileversionretentions/FileVersionRetentionsITest.java b/src/test/java/com/box/sdkgen/fileversionretentions/FileVersionRetentionsITest.java similarity index 96% rename from src/test/java/com/box/sdkgen/test/fileversionretentions/FileVersionRetentionsITest.java rename to src/test/java/com/box/sdkgen/fileversionretentions/FileVersionRetentionsITest.java index 1f1f6ca27..26ab8f6e2 100644 --- a/src/test/java/com/box/sdkgen/test/fileversionretentions/FileVersionRetentionsITest.java +++ b/src/test/java/com/box/sdkgen/fileversionretentions/FileVersionRetentionsITest.java @@ -1,10 +1,10 @@ -package com.box.sdkgen.test.fileversionretentions; +package com.box.sdkgen.fileversionretentions; +import static com.box.sdkgen.commons.CommonsManager.createNewFolder; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.createNewFolder; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.folders.DeleteFolderByIdQueryParams; diff --git a/src/test/java/com/box/sdkgen/test/fileversions/FileVersionsITest.java b/src/test/java/com/box/sdkgen/fileversions/FileVersionsITest.java similarity index 98% rename from src/test/java/com/box/sdkgen/test/fileversions/FileVersionsITest.java rename to src/test/java/com/box/sdkgen/fileversions/FileVersionsITest.java index 408261560..fda1e9a74 100644 --- a/src/test/java/com/box/sdkgen/test/fileversions/FileVersionsITest.java +++ b/src/test/java/com/box/sdkgen/fileversions/FileVersionsITest.java @@ -1,8 +1,8 @@ -package com.box.sdkgen.test.fileversions; +package com.box.sdkgen.fileversions; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.fileversions.GetFileVersionByIdQueryParams; diff --git a/src/test/java/com/box/sdkgen/test/filewatermarks/FileWatermarksITest.java b/src/test/java/com/box/sdkgen/filewatermarks/FileWatermarksITest.java similarity index 94% rename from src/test/java/com/box/sdkgen/test/filewatermarks/FileWatermarksITest.java rename to src/test/java/com/box/sdkgen/filewatermarks/FileWatermarksITest.java index 55f48f991..a3e16b18f 100644 --- a/src/test/java/com/box/sdkgen/test/filewatermarks/FileWatermarksITest.java +++ b/src/test/java/com/box/sdkgen/filewatermarks/FileWatermarksITest.java @@ -1,8 +1,8 @@ -package com.box.sdkgen.test.filewatermarks; +package com.box.sdkgen.filewatermarks; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/folderclassifications/FolderClassificationsITest.java b/src/test/java/com/box/sdkgen/folderclassifications/FolderClassificationsITest.java similarity index 92% rename from src/test/java/com/box/sdkgen/test/folderclassifications/FolderClassificationsITest.java rename to src/test/java/com/box/sdkgen/folderclassifications/FolderClassificationsITest.java index e9b76dd8e..d26001dcc 100644 --- a/src/test/java/com/box/sdkgen/test/folderclassifications/FolderClassificationsITest.java +++ b/src/test/java/com/box/sdkgen/folderclassifications/FolderClassificationsITest.java @@ -1,10 +1,10 @@ -package com.box.sdkgen.test.folderclassifications; +package com.box.sdkgen.folderclassifications; +import static com.box.sdkgen.commons.CommonsManager.createNewFolder; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.getOrCreateClassification; +import static com.box.sdkgen.commons.CommonsManager.getOrCreateClassificationTemplate; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.createNewFolder; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateClassification; -import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateClassificationTemplate; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/folderlocks/FolderLocksITest.java b/src/test/java/com/box/sdkgen/folderlocks/FolderLocksITest.java similarity index 91% rename from src/test/java/com/box/sdkgen/test/folderlocks/FolderLocksITest.java rename to src/test/java/com/box/sdkgen/folderlocks/FolderLocksITest.java index ff2cfbcc1..90c02e608 100644 --- a/src/test/java/com/box/sdkgen/test/folderlocks/FolderLocksITest.java +++ b/src/test/java/com/box/sdkgen/folderlocks/FolderLocksITest.java @@ -1,7 +1,7 @@ -package com.box.sdkgen.test.folderlocks; +package com.box.sdkgen.folderlocks; -import static com.box.sdkgen.test.commons.CommonsManager.createNewFolder; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.createNewFolder; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/foldermetadata/FolderMetadataITest.java b/src/test/java/com/box/sdkgen/foldermetadata/FolderMetadataITest.java similarity index 98% rename from src/test/java/com/box/sdkgen/test/foldermetadata/FolderMetadataITest.java rename to src/test/java/com/box/sdkgen/foldermetadata/FolderMetadataITest.java index 4ba73c728..aab180096 100644 --- a/src/test/java/com/box/sdkgen/test/foldermetadata/FolderMetadataITest.java +++ b/src/test/java/com/box/sdkgen/foldermetadata/FolderMetadataITest.java @@ -1,11 +1,11 @@ -package com.box.sdkgen.test.foldermetadata; +package com.box.sdkgen.foldermetadata; +import static com.box.sdkgen.commons.CommonsManager.createNewFolder; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; -import static com.box.sdkgen.test.commons.CommonsManager.createNewFolder; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/folders/FoldersITest.java b/src/test/java/com/box/sdkgen/folders/FoldersITest.java similarity index 97% rename from src/test/java/com/box/sdkgen/test/folders/FoldersITest.java rename to src/test/java/com/box/sdkgen/folders/FoldersITest.java index 2032c1e27..24bb41757 100644 --- a/src/test/java/com/box/sdkgen/test/folders/FoldersITest.java +++ b/src/test/java/com/box/sdkgen/folders/FoldersITest.java @@ -1,8 +1,8 @@ -package com.box.sdkgen.test.folders; +package com.box.sdkgen.folders; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/folderwatermarks/FolderWatermarksITest.java b/src/test/java/com/box/sdkgen/folderwatermarks/FolderWatermarksITest.java similarity index 94% rename from src/test/java/com/box/sdkgen/test/folderwatermarks/FolderWatermarksITest.java rename to src/test/java/com/box/sdkgen/folderwatermarks/FolderWatermarksITest.java index b1b4e5e9e..6690c5ba2 100644 --- a/src/test/java/com/box/sdkgen/test/folderwatermarks/FolderWatermarksITest.java +++ b/src/test/java/com/box/sdkgen/folderwatermarks/FolderWatermarksITest.java @@ -1,7 +1,7 @@ -package com.box.sdkgen.test.folderwatermarks; +package com.box.sdkgen.folderwatermarks; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/groups/GroupsITest.java b/src/test/java/com/box/sdkgen/groups/GroupsITest.java similarity index 94% rename from src/test/java/com/box/sdkgen/test/groups/GroupsITest.java rename to src/test/java/com/box/sdkgen/groups/GroupsITest.java index 9e5147d03..2d98c9772 100644 --- a/src/test/java/com/box/sdkgen/test/groups/GroupsITest.java +++ b/src/test/java/com/box/sdkgen/groups/GroupsITest.java @@ -1,7 +1,7 @@ -package com.box.sdkgen.test.groups; +package com.box.sdkgen.groups; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/hubcollaborations/HubCollaborationsITest.java b/src/test/java/com/box/sdkgen/hubcollaborations/HubCollaborationsITest.java new file mode 100644 index 000000000..54f5d6e01 --- /dev/null +++ b/src/test/java/com/box/sdkgen/hubcollaborations/HubCollaborationsITest.java @@ -0,0 +1,94 @@ +package com.box.sdkgen.hubcollaborations; + +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.hubcollaborations.GetHubCollaborationsV2025R0QueryParams; +import com.box.sdkgen.managers.hubs.GetHubsV2025R0QueryParams; +import com.box.sdkgen.managers.hubs.GetHubsV2025R0QueryParamsDirectionField; +import com.box.sdkgen.managers.users.CreateUserRequestBody; +import com.box.sdkgen.schemas.userfull.UserFull; +import com.box.sdkgen.schemas.v2025r0.hubcollaborationcreaterequestv2025r0.HubCollaborationCreateRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubcollaborationcreaterequestv2025r0.HubCollaborationCreateRequestV2025R0AccessibleByField; +import com.box.sdkgen.schemas.v2025r0.hubcollaborationcreaterequestv2025r0.HubCollaborationCreateRequestV2025R0HubField; +import com.box.sdkgen.schemas.v2025r0.hubcollaborationsv2025r0.HubCollaborationsV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubcollaborationupdaterequestv2025r0.HubCollaborationUpdateRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubcollaborationv2025r0.HubCollaborationV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubsv2025r0.HubsV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubv2025r0.HubV2025R0; +import org.junit.jupiter.api.Test; + +public class HubCollaborationsITest { + + private static final BoxClient client = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); + + @Test + public void testCrudHubCollaboration() { + HubsV2025R0 hubs = + client + .getHubs() + .getHubsV2025R0( + new GetHubsV2025R0QueryParams.Builder() + .scope("all") + .sort("name") + .direction(GetHubsV2025R0QueryParamsDirectionField.ASC) + .build()); + HubV2025R0 hub = hubs.getEntries().get(0); + String userName = getUuid(); + String userLogin = String.join("", getUuid(), "@gmail.com"); + UserFull user = + client + .getUsers() + .createUser( + new CreateUserRequestBody.Builder(userName) + .login(userLogin) + .isPlatformAccessOnly(true) + .build()); + HubCollaborationV2025R0 createdCollaboration = + client + .getHubCollaborations() + .createHubCollaborationV2025R0( + new HubCollaborationCreateRequestV2025R0( + new HubCollaborationCreateRequestV2025R0HubField(hub.getId()), + new HubCollaborationCreateRequestV2025R0AccessibleByField.Builder("user") + .id(user.getId()) + .build(), + "viewer")); + assert !(createdCollaboration.getId().equals("")); + assert convertToString(createdCollaboration.getType()).equals("hub_collaboration"); + assert createdCollaboration.getHub().getId().equals(hub.getId()); + assert convertToString(createdCollaboration.getAccessibleBy().getType()).equals("user"); + assert createdCollaboration.getAccessibleBy().getId().equals(user.getId()); + assert createdCollaboration.getRole().equals("viewer"); + HubCollaborationV2025R0 updatedCollaboration = + client + .getHubCollaborations() + .updateHubCollaborationByIdV2025R0( + createdCollaboration.getId(), + new HubCollaborationUpdateRequestV2025R0.Builder().role("editor").build()); + assert !(updatedCollaboration.getId().equals("")); + assert convertToString(updatedCollaboration.getType()).equals("hub_collaboration"); + assert updatedCollaboration.getHub().getId().equals(hub.getId()); + assert convertToString(updatedCollaboration.getAccessibleBy().getType()).equals("user"); + assert updatedCollaboration.getAccessibleBy().getId().equals(user.getId()); + assert updatedCollaboration.getRole().equals("editor"); + HubCollaborationsV2025R0 collaborations = + client + .getHubCollaborations() + .getHubCollaborationsV2025R0(new GetHubCollaborationsV2025R0QueryParams(hub.getId())); + assert collaborations.getEntries().size() >= 1; + HubCollaborationV2025R0 retrievedCollaboration = + client.getHubCollaborations().getHubCollaborationByIdV2025R0(createdCollaboration.getId()); + assert retrievedCollaboration.getId().equals(createdCollaboration.getId()); + assert convertToString(retrievedCollaboration.getType()).equals("hub_collaboration"); + assert retrievedCollaboration.getHub().getId().equals(hub.getId()); + assert convertToString(retrievedCollaboration.getAccessibleBy().getType()).equals("user"); + assert retrievedCollaboration.getAccessibleBy().getId().equals(user.getId()); + assert retrievedCollaboration.getRole().equals("editor"); + client.getHubCollaborations().deleteHubCollaborationByIdV2025R0(createdCollaboration.getId()); + client.getUsers().deleteUserById(user.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/hubitems/HubItemsITest.java b/src/test/java/com/box/sdkgen/hubitems/HubItemsITest.java new file mode 100644 index 000000000..9b09ef64c --- /dev/null +++ b/src/test/java/com/box/sdkgen/hubitems/HubItemsITest.java @@ -0,0 +1,92 @@ +package com.box.sdkgen.hubitems; + +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.folders.CreateFolderRequestBody; +import com.box.sdkgen.managers.folders.CreateFolderRequestBodyParentField; +import com.box.sdkgen.managers.hubitems.GetHubItemsV2025R0QueryParams; +import com.box.sdkgen.schemas.folderfull.FolderFull; +import com.box.sdkgen.schemas.v2025r0.folderreferencev2025r0.FolderReferenceV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubcreaterequestv2025r0.HubCreateRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubitemoperationresultv2025r0.HubItemOperationResultV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubitemoperationv2025r0.HubItemOperationV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubitemoperationv2025r0.HubItemOperationV2025R0ActionField; +import com.box.sdkgen.schemas.v2025r0.hubitemsmanagerequestv2025r0.HubItemsManageRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubitemsmanageresponsev2025r0.HubItemsManageResponseV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubitemsv2025r0.HubItemsV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubv2025r0.HubV2025R0; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class HubItemsITest { + + private static final BoxClient client = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); + + @Test + public void testCreateDeleteGetHubItems() { + String hubTitle = getUuid(); + FolderFull folder = + client + .getFolders() + .createFolder( + new CreateFolderRequestBody( + getUuid(), new CreateFolderRequestBodyParentField("0"))); + HubV2025R0 createdHub = + client.getHubs().createHubV2025R0(new HubCreateRequestV2025R0(hubTitle)); + HubItemsV2025R0 hubItemsBeforeAdd = + client + .getHubItems() + .getHubItemsV2025R0(new GetHubItemsV2025R0QueryParams(createdHub.getId())); + assert hubItemsBeforeAdd.getEntries().size() == 0; + HubItemsManageResponseV2025R0 addedHubItems = + client + .getHubItems() + .manageHubItemsV2025R0( + createdHub.getId(), + new HubItemsManageRequestV2025R0.Builder() + .operations( + Arrays.asList( + new HubItemOperationV2025R0( + HubItemOperationV2025R0ActionField.ADD, + new FolderReferenceV2025R0(folder.getId())))) + .build()); + HubItemOperationResultV2025R0 addedHubItem = addedHubItems.getOperations().get(0); + assert convertToString(addedHubItem.getAction()).equals("add"); + assert addedHubItem.getStatus() == 200; + assert addedHubItem.getItem().getId().equals(folder.getId()); + assert addedHubItem.getItem().getType().equals("folder"); + HubItemsV2025R0 hubItemsAfterAdd = + client + .getHubItems() + .getHubItemsV2025R0(new GetHubItemsV2025R0QueryParams(createdHub.getId())); + assert hubItemsAfterAdd.getEntries().size() == 1; + HubItemsManageResponseV2025R0 removedHubItems = + client + .getHubItems() + .manageHubItemsV2025R0( + createdHub.getId(), + new HubItemsManageRequestV2025R0.Builder() + .operations( + Arrays.asList( + new HubItemOperationV2025R0( + HubItemOperationV2025R0ActionField.REMOVE, + new FolderReferenceV2025R0(folder.getId())))) + .build()); + HubItemOperationResultV2025R0 removedHubItem = removedHubItems.getOperations().get(0); + assert convertToString(removedHubItem.getAction()).equals("remove"); + assert removedHubItem.getStatus() == 200; + assert removedHubItem.getItem().getId().equals(folder.getId()); + assert removedHubItem.getItem().getType().equals("folder"); + HubItemsV2025R0 hubItemsAfterRemove = + client + .getHubItems() + .getHubItemsV2025R0(new GetHubItemsV2025R0QueryParams(createdHub.getId())); + assert hubItemsAfterRemove.getEntries().size() == 0; + client.getHubs().deleteHubByIdV2025R0(createdHub.getId()); + client.getFolders().deleteFolderById(folder.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/hubs/HubsITest.java b/src/test/java/com/box/sdkgen/hubs/HubsITest.java new file mode 100644 index 000000000..913d02863 --- /dev/null +++ b/src/test/java/com/box/sdkgen/hubs/HubsITest.java @@ -0,0 +1,105 @@ +package com.box.sdkgen.hubs; + +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.hubs.GetEnterpriseHubsV2025R0QueryParams; +import com.box.sdkgen.managers.hubs.GetEnterpriseHubsV2025R0QueryParamsDirectionField; +import com.box.sdkgen.managers.hubs.GetHubsV2025R0QueryParams; +import com.box.sdkgen.managers.hubs.GetHubsV2025R0QueryParamsDirectionField; +import com.box.sdkgen.schemas.v2025r0.hubcopyrequestv2025r0.HubCopyRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubcreaterequestv2025r0.HubCreateRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubsv2025r0.HubsV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubupdaterequestv2025r0.HubUpdateRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubv2025r0.HubV2025R0; +import org.junit.jupiter.api.Test; + +public class HubsITest { + + private static final BoxClient client = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); + + @Test + public void testCreateUpdateGetAndDeleteHubs() { + String hubTitle = getUuid(); + String hubDescription = "new Hub description"; + HubV2025R0 createdHub = + client + .getHubs() + .createHubV2025R0( + new HubCreateRequestV2025R0.Builder(hubTitle).description(hubDescription).build()); + assert createdHub.getTitle().equals(hubTitle); + assert createdHub.getDescription().equals(hubDescription); + assert convertToString(createdHub.getType()).equals("hubs"); + String hubId = createdHub.getId(); + HubsV2025R0 usersHubs = + client + .getHubs() + .getHubsV2025R0( + new GetHubsV2025R0QueryParams.Builder() + .scope("all") + .sort("name") + .direction(GetHubsV2025R0QueryParamsDirectionField.ASC) + .build()); + assert usersHubs.getEntries().size() > 0; + HubsV2025R0 enterpriseHubs = + client + .getHubs() + .getEnterpriseHubsV2025R0( + new GetEnterpriseHubsV2025R0QueryParams.Builder() + .sort("name") + .direction(GetEnterpriseHubsV2025R0QueryParamsDirectionField.ASC) + .build()); + assert enterpriseHubs.getEntries().size() > 0; + HubV2025R0 hubById = client.getHubs().getHubByIdV2025R0(hubId); + assert hubById.getId().equals(hubId); + assert hubById.getTitle().equals(hubTitle); + assert hubById.getDescription().equals(hubDescription); + assert convertToString(hubById.getType()).equals("hubs"); + String newHubTitle = getUuid(); + String newHubDescription = "updated Hub description"; + HubV2025R0 updatedHub = + client + .getHubs() + .updateHubByIdV2025R0( + hubId, + new HubUpdateRequestV2025R0.Builder() + .title(newHubTitle) + .description(newHubDescription) + .build()); + assert updatedHub.getTitle().equals(newHubTitle); + assert updatedHub.getDescription().equals(newHubDescription); + client.getHubs().deleteHubByIdV2025R0(hubId); + assertThrows(RuntimeException.class, () -> client.getHubs().deleteHubByIdV2025R0(hubId)); + } + + @Test + public void copyHub() { + String hubTitle = getUuid(); + String hubDescription = "new Hub description"; + HubV2025R0 createdHub = + client + .getHubs() + .createHubV2025R0( + new HubCreateRequestV2025R0.Builder(hubTitle).description(hubDescription).build()); + String copiedHubTitle = getUuid(); + String copiedHubDescription = "copied Hub description"; + HubV2025R0 copiedHub = + client + .getHubs() + .copyHubV2025R0( + createdHub.getId(), + new HubCopyRequestV2025R0.Builder() + .title(copiedHubTitle) + .description(copiedHubDescription) + .build()); + assert !(copiedHub.getId().equals(createdHub.getId())); + assert copiedHub.getTitle().equals(copiedHubTitle); + assert copiedHub.getDescription().equals(copiedHubDescription); + client.getHubs().deleteHubByIdV2025R0(createdHub.getId()); + client.getHubs().deleteHubByIdV2025R0(copiedHub.getId()); + } +} diff --git a/src/test/java/com/box/sdkgen/test/integrationmappings/IntegrationMappingsITest.java b/src/test/java/com/box/sdkgen/integrationmappings/IntegrationMappingsITest.java similarity index 97% rename from src/test/java/com/box/sdkgen/test/integrationmappings/IntegrationMappingsITest.java rename to src/test/java/com/box/sdkgen/integrationmappings/IntegrationMappingsITest.java index 3616c2fd1..78edeb454 100644 --- a/src/test/java/com/box/sdkgen/test/integrationmappings/IntegrationMappingsITest.java +++ b/src/test/java/com/box/sdkgen/integrationmappings/IntegrationMappingsITest.java @@ -1,10 +1,10 @@ -package com.box.sdkgen.test.integrationmappings; +package com.box.sdkgen.integrationmappings; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/invites/InvitesITest.java b/src/test/java/com/box/sdkgen/invites/InvitesITest.java similarity index 93% rename from src/test/java/com/box/sdkgen/test/invites/InvitesITest.java rename to src/test/java/com/box/sdkgen/invites/InvitesITest.java index 3859fe641..b2e144fae 100644 --- a/src/test/java/com/box/sdkgen/test/invites/InvitesITest.java +++ b/src/test/java/com/box/sdkgen/invites/InvitesITest.java @@ -1,8 +1,8 @@ -package com.box.sdkgen.test.invites; +package com.box.sdkgen.invites; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.invites.CreateInviteRequestBody; diff --git a/src/test/java/com/box/sdkgen/test/legalholdpolicies/LegalHoldPoliciesITest.java b/src/test/java/com/box/sdkgen/legalholdpolicies/LegalHoldPoliciesITest.java similarity index 96% rename from src/test/java/com/box/sdkgen/test/legalholdpolicies/LegalHoldPoliciesITest.java rename to src/test/java/com/box/sdkgen/legalholdpolicies/LegalHoldPoliciesITest.java index a1da753c6..3634ba4ff 100644 --- a/src/test/java/com/box/sdkgen/test/legalholdpolicies/LegalHoldPoliciesITest.java +++ b/src/test/java/com/box/sdkgen/legalholdpolicies/LegalHoldPoliciesITest.java @@ -1,9 +1,9 @@ -package com.box.sdkgen.test.legalholdpolicies; +package com.box.sdkgen.legalholdpolicies; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.dateTimeFromString; import static com.box.sdkgen.internal.utils.UtilsManager.dateTimeToString; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.legalholdpolicies.CreateLegalHoldPolicyRequestBody; diff --git a/src/test/java/com/box/sdkgen/test/legalholdpolicyassignments/LegalHoldPolicyAssignmentsITest.java b/src/test/java/com/box/sdkgen/legalholdpolicyassignments/LegalHoldPolicyAssignmentsITest.java similarity index 95% rename from src/test/java/com/box/sdkgen/test/legalholdpolicyassignments/LegalHoldPolicyAssignmentsITest.java rename to src/test/java/com/box/sdkgen/legalholdpolicyassignments/LegalHoldPolicyAssignmentsITest.java index cfe84439e..658b5a25b 100644 --- a/src/test/java/com/box/sdkgen/test/legalholdpolicyassignments/LegalHoldPolicyAssignmentsITest.java +++ b/src/test/java/com/box/sdkgen/legalholdpolicyassignments/LegalHoldPolicyAssignmentsITest.java @@ -1,9 +1,9 @@ -package com.box.sdkgen.test.legalholdpolicyassignments; +package com.box.sdkgen.legalholdpolicyassignments; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.uploadNewFile; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/listcollaborations/ListCollaborationsITest.java b/src/test/java/com/box/sdkgen/listcollaborations/ListCollaborationsITest.java similarity index 94% rename from src/test/java/com/box/sdkgen/test/listcollaborations/ListCollaborationsITest.java rename to src/test/java/com/box/sdkgen/listcollaborations/ListCollaborationsITest.java index b18898f8e..fca83bdb8 100644 --- a/src/test/java/com/box/sdkgen/test/listcollaborations/ListCollaborationsITest.java +++ b/src/test/java/com/box/sdkgen/listcollaborations/ListCollaborationsITest.java @@ -1,11 +1,11 @@ -package com.box.sdkgen.test.listcollaborations; +package com.box.sdkgen.listcollaborations; +import static com.box.sdkgen.commons.CommonsManager.createNewFolder; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.uploadNewFile; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.createNewFolder; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.groups.CreateGroupRequestBody; diff --git a/src/test/java/com/box/sdkgen/test/memberships/MembershipsITest.java b/src/test/java/com/box/sdkgen/memberships/MembershipsITest.java similarity index 96% rename from src/test/java/com/box/sdkgen/test/memberships/MembershipsITest.java rename to src/test/java/com/box/sdkgen/memberships/MembershipsITest.java index bd9889729..d49317cfb 100644 --- a/src/test/java/com/box/sdkgen/test/memberships/MembershipsITest.java +++ b/src/test/java/com/box/sdkgen/memberships/MembershipsITest.java @@ -1,8 +1,8 @@ -package com.box.sdkgen.test.memberships; +package com.box.sdkgen.memberships; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/metadatacascadepolicies/MetadataCascadePoliciesITest.java b/src/test/java/com/box/sdkgen/metadatacascadepolicies/MetadataCascadePoliciesITest.java similarity index 96% rename from src/test/java/com/box/sdkgen/test/metadatacascadepolicies/MetadataCascadePoliciesITest.java rename to src/test/java/com/box/sdkgen/metadatacascadepolicies/MetadataCascadePoliciesITest.java index 47cc22b14..9bcfe10a3 100644 --- a/src/test/java/com/box/sdkgen/test/metadatacascadepolicies/MetadataCascadePoliciesITest.java +++ b/src/test/java/com/box/sdkgen/metadatacascadepolicies/MetadataCascadePoliciesITest.java @@ -1,12 +1,12 @@ -package com.box.sdkgen.test.metadatacascadepolicies; +package com.box.sdkgen.metadatacascadepolicies; +import static com.box.sdkgen.commons.CommonsManager.createNewFolder; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; -import static com.box.sdkgen.test.commons.CommonsManager.createNewFolder; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/metadatatemplates/MetadataTemplatesITest.java b/src/test/java/com/box/sdkgen/metadatatemplates/MetadataTemplatesITest.java similarity index 98% rename from src/test/java/com/box/sdkgen/test/metadatatemplates/MetadataTemplatesITest.java rename to src/test/java/com/box/sdkgen/metadatatemplates/MetadataTemplatesITest.java index 06a6837b8..9fa9b29f5 100644 --- a/src/test/java/com/box/sdkgen/test/metadatatemplates/MetadataTemplatesITest.java +++ b/src/test/java/com/box/sdkgen/metadatatemplates/MetadataTemplatesITest.java @@ -1,11 +1,11 @@ -package com.box.sdkgen.test.metadatatemplates; +package com.box.sdkgen.metadatatemplates; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.uploadNewFile; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/recentitems/RecentItemsITest.java b/src/test/java/com/box/sdkgen/recentitems/RecentItemsITest.java similarity index 78% rename from src/test/java/com/box/sdkgen/test/recentitems/RecentItemsITest.java rename to src/test/java/com/box/sdkgen/recentitems/RecentItemsITest.java index 3c72620ae..c41ad66f8 100644 --- a/src/test/java/com/box/sdkgen/test/recentitems/RecentItemsITest.java +++ b/src/test/java/com/box/sdkgen/recentitems/RecentItemsITest.java @@ -1,7 +1,7 @@ -package com.box.sdkgen.test.recentitems; +package com.box.sdkgen.recentitems; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.schemas.recentitems.RecentItems; diff --git a/src/test/java/com/box/sdkgen/test/retentionpolicies/RetentionPoliciesITest.java b/src/test/java/com/box/sdkgen/retentionpolicies/RetentionPoliciesITest.java similarity index 95% rename from src/test/java/com/box/sdkgen/test/retentionpolicies/RetentionPoliciesITest.java rename to src/test/java/com/box/sdkgen/retentionpolicies/RetentionPoliciesITest.java index 0925a0e5d..19304c31f 100644 --- a/src/test/java/com/box/sdkgen/test/retentionpolicies/RetentionPoliciesITest.java +++ b/src/test/java/com/box/sdkgen/retentionpolicies/RetentionPoliciesITest.java @@ -1,7 +1,7 @@ -package com.box.sdkgen.test.retentionpolicies; +package com.box.sdkgen.retentionpolicies; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.retentionpolicies.CreateRetentionPolicyRequestBody; diff --git a/src/test/java/com/box/sdkgen/test/retentionpolicyassignments/RetentionPolicyAssignmentsITest.java b/src/test/java/com/box/sdkgen/retentionpolicyassignments/RetentionPolicyAssignmentsITest.java similarity index 97% rename from src/test/java/com/box/sdkgen/test/retentionpolicyassignments/RetentionPolicyAssignmentsITest.java rename to src/test/java/com/box/sdkgen/retentionpolicyassignments/RetentionPolicyAssignmentsITest.java index c67df3bc7..540a482af 100644 --- a/src/test/java/com/box/sdkgen/test/retentionpolicyassignments/RetentionPolicyAssignmentsITest.java +++ b/src/test/java/com/box/sdkgen/retentionpolicyassignments/RetentionPolicyAssignmentsITest.java @@ -1,8 +1,8 @@ -package com.box.sdkgen.test.retentionpolicyassignments; +package com.box.sdkgen.retentionpolicyassignments; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.folders.CreateFolderRequestBody; diff --git a/src/test/java/com/box/sdkgen/test/search/SearchITest.java b/src/test/java/com/box/sdkgen/search/SearchITest.java similarity index 99% rename from src/test/java/com/box/sdkgen/test/search/SearchITest.java rename to src/test/java/com/box/sdkgen/search/SearchITest.java index 19f15ef56..77d279f89 100644 --- a/src/test/java/com/box/sdkgen/test/search/SearchITest.java +++ b/src/test/java/com/box/sdkgen/search/SearchITest.java @@ -1,5 +1,6 @@ -package com.box.sdkgen.test.search; +package com.box.sdkgen.search; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.dateTimeFromString; import static com.box.sdkgen.internal.utils.UtilsManager.delayInSeconds; @@ -7,7 +8,6 @@ import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.filemetadata.CreateFileMetadataByIdScope; diff --git a/src/test/java/com/box/sdkgen/test/sessiontermination/SessionTerminationITest.java b/src/test/java/com/box/sdkgen/sessiontermination/SessionTerminationITest.java similarity index 90% rename from src/test/java/com/box/sdkgen/test/sessiontermination/SessionTerminationITest.java rename to src/test/java/com/box/sdkgen/sessiontermination/SessionTerminationITest.java index ec4d2b268..82c26c812 100644 --- a/src/test/java/com/box/sdkgen/test/sessiontermination/SessionTerminationITest.java +++ b/src/test/java/com/box/sdkgen/sessiontermination/SessionTerminationITest.java @@ -1,9 +1,9 @@ -package com.box.sdkgen.test.sessiontermination; +package com.box.sdkgen.sessiontermination; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.groups.CreateGroupRequestBody; diff --git a/src/test/java/com/box/sdkgen/test/sharedlinksappitems/SharedLinksAppItemsITest.java b/src/test/java/com/box/sdkgen/sharedlinksappitems/SharedLinksAppItemsITest.java similarity index 88% rename from src/test/java/com/box/sdkgen/test/sharedlinksappitems/SharedLinksAppItemsITest.java rename to src/test/java/com/box/sdkgen/sharedlinksappitems/SharedLinksAppItemsITest.java index cbf8f5f70..ea0b330d8 100644 --- a/src/test/java/com/box/sdkgen/test/sharedlinksappitems/SharedLinksAppItemsITest.java +++ b/src/test/java/com/box/sdkgen/sharedlinksappitems/SharedLinksAppItemsITest.java @@ -1,8 +1,8 @@ -package com.box.sdkgen.test.sharedlinksappitems; +package com.box.sdkgen.sharedlinksappitems; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.sharedlinksappitems.FindAppItemForSharedLinkHeaders; diff --git a/src/test/java/com/box/sdkgen/test/sharedlinksfiles/SharedLinksFilesITest.java b/src/test/java/com/box/sdkgen/sharedlinksfiles/SharedLinksFilesITest.java similarity index 96% rename from src/test/java/com/box/sdkgen/test/sharedlinksfiles/SharedLinksFilesITest.java rename to src/test/java/com/box/sdkgen/sharedlinksfiles/SharedLinksFilesITest.java index 419311efb..015969ec6 100644 --- a/src/test/java/com/box/sdkgen/test/sharedlinksfiles/SharedLinksFilesITest.java +++ b/src/test/java/com/box/sdkgen/sharedlinksfiles/SharedLinksFilesITest.java @@ -1,11 +1,11 @@ -package com.box.sdkgen.test.sharedlinksfiles; +package com.box.sdkgen.sharedlinksfiles; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/sharedlinksfolders/SharedLinksFoldersITest.java b/src/test/java/com/box/sdkgen/sharedlinksfolders/SharedLinksFoldersITest.java similarity index 96% rename from src/test/java/com/box/sdkgen/test/sharedlinksfolders/SharedLinksFoldersITest.java rename to src/test/java/com/box/sdkgen/sharedlinksfolders/SharedLinksFoldersITest.java index f97908468..06eb3581c 100644 --- a/src/test/java/com/box/sdkgen/test/sharedlinksfolders/SharedLinksFoldersITest.java +++ b/src/test/java/com/box/sdkgen/sharedlinksfolders/SharedLinksFoldersITest.java @@ -1,10 +1,10 @@ -package com.box.sdkgen.test.sharedlinksfolders; +package com.box.sdkgen.sharedlinksfolders; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/sharedlinksweblinks/SharedLinksWebLinksITest.java b/src/test/java/com/box/sdkgen/sharedlinksweblinks/SharedLinksWebLinksITest.java similarity index 96% rename from src/test/java/com/box/sdkgen/test/sharedlinksweblinks/SharedLinksWebLinksITest.java rename to src/test/java/com/box/sdkgen/sharedlinksweblinks/SharedLinksWebLinksITest.java index f77d6f379..50f4048f3 100644 --- a/src/test/java/com/box/sdkgen/test/sharedlinksweblinks/SharedLinksWebLinksITest.java +++ b/src/test/java/com/box/sdkgen/sharedlinksweblinks/SharedLinksWebLinksITest.java @@ -1,10 +1,10 @@ -package com.box.sdkgen.test.sharedlinksweblinks; +package com.box.sdkgen.sharedlinksweblinks; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/shieldinformationbarrierreports/ShieldInformationBarrierReportsITest.java b/src/test/java/com/box/sdkgen/shieldinformationbarrierreports/ShieldInformationBarrierReportsITest.java similarity index 92% rename from src/test/java/com/box/sdkgen/test/shieldinformationbarrierreports/ShieldInformationBarrierReportsITest.java rename to src/test/java/com/box/sdkgen/shieldinformationbarrierreports/ShieldInformationBarrierReportsITest.java index 87cb0235f..e2991fe9f 100644 --- a/src/test/java/com/box/sdkgen/test/shieldinformationbarrierreports/ShieldInformationBarrierReportsITest.java +++ b/src/test/java/com/box/sdkgen/shieldinformationbarrierreports/ShieldInformationBarrierReportsITest.java @@ -1,9 +1,9 @@ -package com.box.sdkgen.test.shieldinformationbarrierreports; +package com.box.sdkgen.shieldinformationbarrierreports; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; +import static com.box.sdkgen.commons.CommonsManager.getOrCreateShieldInformationBarrier; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; -import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateShieldInformationBarrier; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.shieldinformationbarrierreports.GetShieldInformationBarrierReportsQueryParams; diff --git a/src/test/java/com/box/sdkgen/test/shieldinformationbarriers/ShieldInformationBarriersITest.java b/src/test/java/com/box/sdkgen/shieldinformationbarriers/ShieldInformationBarriersITest.java similarity index 89% rename from src/test/java/com/box/sdkgen/test/shieldinformationbarriers/ShieldInformationBarriersITest.java rename to src/test/java/com/box/sdkgen/shieldinformationbarriers/ShieldInformationBarriersITest.java index ae4fe0766..b35126a26 100644 --- a/src/test/java/com/box/sdkgen/test/shieldinformationbarriers/ShieldInformationBarriersITest.java +++ b/src/test/java/com/box/sdkgen/shieldinformationbarriers/ShieldInformationBarriersITest.java @@ -1,9 +1,9 @@ -package com.box.sdkgen.test.shieldinformationbarriers; +package com.box.sdkgen.shieldinformationbarriers; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; +import static com.box.sdkgen.commons.CommonsManager.getOrCreateShieldInformationBarrier; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; -import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateShieldInformationBarrier; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembersITest.java b/src/test/java/com/box/sdkgen/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembersITest.java similarity index 94% rename from src/test/java/com/box/sdkgen/test/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembersITest.java rename to src/test/java/com/box/sdkgen/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembersITest.java index 078509805..6d5c59e3e 100644 --- a/src/test/java/com/box/sdkgen/test/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembersITest.java +++ b/src/test/java/com/box/sdkgen/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembersITest.java @@ -1,9 +1,9 @@ -package com.box.sdkgen.test.shieldinformationbarriersegmentmembers; +package com.box.sdkgen.shieldinformationbarriersegmentmembers; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; +import static com.box.sdkgen.commons.CommonsManager.getOrCreateShieldInformationBarrier; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; -import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateShieldInformationBarrier; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictionsITest.java b/src/test/java/com/box/sdkgen/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictionsITest.java similarity index 96% rename from src/test/java/com/box/sdkgen/test/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictionsITest.java rename to src/test/java/com/box/sdkgen/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictionsITest.java index c0fe6e8f4..2b5f36c04 100644 --- a/src/test/java/com/box/sdkgen/test/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictionsITest.java +++ b/src/test/java/com/box/sdkgen/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictionsITest.java @@ -1,9 +1,9 @@ -package com.box.sdkgen.test.shieldinformationbarriersegmentrestrictions; +package com.box.sdkgen.shieldinformationbarriersegmentrestrictions; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; +import static com.box.sdkgen.commons.CommonsManager.getOrCreateShieldInformationBarrier; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; -import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateShieldInformationBarrier; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/shieldinformationbarriersegments/ShieldInformationBarrierSegmentsITest.java b/src/test/java/com/box/sdkgen/shieldinformationbarriersegments/ShieldInformationBarrierSegmentsITest.java similarity index 94% rename from src/test/java/com/box/sdkgen/test/shieldinformationbarriersegments/ShieldInformationBarrierSegmentsITest.java rename to src/test/java/com/box/sdkgen/shieldinformationbarriersegments/ShieldInformationBarrierSegmentsITest.java index 07a3c328d..6a94707b5 100644 --- a/src/test/java/com/box/sdkgen/test/shieldinformationbarriersegments/ShieldInformationBarrierSegmentsITest.java +++ b/src/test/java/com/box/sdkgen/shieldinformationbarriersegments/ShieldInformationBarrierSegmentsITest.java @@ -1,10 +1,10 @@ -package com.box.sdkgen.test.shieldinformationbarriersegments; +package com.box.sdkgen.shieldinformationbarriersegments; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; +import static com.box.sdkgen.commons.CommonsManager.getOrCreateShieldInformationBarrier; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; -import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateShieldInformationBarrier; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/shieldlists/ShieldListsITest.java b/src/test/java/com/box/sdkgen/shieldlists/ShieldListsITest.java similarity index 97% rename from src/test/java/com/box/sdkgen/test/shieldlists/ShieldListsITest.java rename to src/test/java/com/box/sdkgen/shieldlists/ShieldListsITest.java index af932c74f..ee7984dce 100644 --- a/src/test/java/com/box/sdkgen/test/shieldlists/ShieldListsITest.java +++ b/src/test/java/com/box/sdkgen/shieldlists/ShieldListsITest.java @@ -1,8 +1,8 @@ -package com.box.sdkgen.test.shieldlists; +package com.box.sdkgen.shieldlists; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.schemas.v2025r0.shieldlistcontentcountryv2025r0.ShieldListContentCountryV2025R0; diff --git a/src/test/java/com/box/sdkgen/test/signrequests/SignRequestsITest.java b/src/test/java/com/box/sdkgen/signrequests/SignRequestsITest.java similarity index 96% rename from src/test/java/com/box/sdkgen/test/signrequests/SignRequestsITest.java rename to src/test/java/com/box/sdkgen/signrequests/SignRequestsITest.java index 1003a3cff..a0ab3d6c9 100644 --- a/src/test/java/com/box/sdkgen/test/signrequests/SignRequestsITest.java +++ b/src/test/java/com/box/sdkgen/signrequests/SignRequestsITest.java @@ -1,12 +1,12 @@ -package com.box.sdkgen.test.signrequests; +package com.box.sdkgen.signrequests; +import static com.box.sdkgen.commons.CommonsManager.createNewFolder; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.uploadNewFile; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.dateFromString; import static com.box.sdkgen.internal.utils.UtilsManager.dateToString; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.createNewFolder; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.folders.DeleteFolderByIdQueryParams; diff --git a/src/test/java/com/box/sdkgen/test/signtemplates/SignTemplatesITest.java b/src/test/java/com/box/sdkgen/signtemplates/SignTemplatesITest.java similarity index 91% rename from src/test/java/com/box/sdkgen/test/signtemplates/SignTemplatesITest.java rename to src/test/java/com/box/sdkgen/signtemplates/SignTemplatesITest.java index 981530aa8..ad1049767 100644 --- a/src/test/java/com/box/sdkgen/test/signtemplates/SignTemplatesITest.java +++ b/src/test/java/com/box/sdkgen/signtemplates/SignTemplatesITest.java @@ -1,7 +1,7 @@ -package com.box.sdkgen.test.signtemplates; +package com.box.sdkgen.signtemplates; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.signtemplates.GetSignTemplatesQueryParams; diff --git a/src/test/java/com/box/sdkgen/test/skills/SkillsITest.java b/src/test/java/com/box/sdkgen/skills/SkillsITest.java similarity index 96% rename from src/test/java/com/box/sdkgen/test/skills/SkillsITest.java rename to src/test/java/com/box/sdkgen/skills/SkillsITest.java index 8725599ae..e2d56ff50 100644 --- a/src/test/java/com/box/sdkgen/test/skills/SkillsITest.java +++ b/src/test/java/com/box/sdkgen/skills/SkillsITest.java @@ -1,8 +1,8 @@ -package com.box.sdkgen.test.skills; +package com.box.sdkgen.skills; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.uploadNewFile; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.skills.CreateBoxSkillCardsOnFileRequestBody; diff --git a/src/test/java/com/box/sdkgen/test/storagepolicicyassignments/StoragePolicicyAssignmentsITest.java b/src/test/java/com/box/sdkgen/storagepolicicyassignments/StoragePolicicyAssignmentsITest.java similarity index 97% rename from src/test/java/com/box/sdkgen/test/storagepolicicyassignments/StoragePolicicyAssignmentsITest.java rename to src/test/java/com/box/sdkgen/storagepolicicyassignments/StoragePolicicyAssignmentsITest.java index ee2e1c5eb..83df9db7e 100644 --- a/src/test/java/com/box/sdkgen/test/storagepolicicyassignments/StoragePolicicyAssignmentsITest.java +++ b/src/test/java/com/box/sdkgen/storagepolicicyassignments/StoragePolicicyAssignmentsITest.java @@ -1,9 +1,9 @@ -package com.box.sdkgen.test.storagepolicicyassignments; +package com.box.sdkgen.storagepolicicyassignments; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.storagepolicyassignments.CreateStoragePolicyAssignmentRequestBody; diff --git a/src/test/java/com/box/sdkgen/test/storagepolicies/StoragePoliciesITest.java b/src/test/java/com/box/sdkgen/storagepolicies/StoragePoliciesITest.java similarity index 87% rename from src/test/java/com/box/sdkgen/test/storagepolicies/StoragePoliciesITest.java rename to src/test/java/com/box/sdkgen/storagepolicies/StoragePoliciesITest.java index d74a9bec8..0e0042ace 100644 --- a/src/test/java/com/box/sdkgen/test/storagepolicies/StoragePoliciesITest.java +++ b/src/test/java/com/box/sdkgen/storagepolicies/StoragePoliciesITest.java @@ -1,8 +1,8 @@ -package com.box.sdkgen.test.storagepolicies; +package com.box.sdkgen.storagepolicies; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.schemas.storagepolicies.StoragePolicies; diff --git a/src/test/java/com/box/sdkgen/test/taskassignments/TaskAssignmentsITest.java b/src/test/java/com/box/sdkgen/taskassignments/TaskAssignmentsITest.java similarity index 95% rename from src/test/java/com/box/sdkgen/test/taskassignments/TaskAssignmentsITest.java rename to src/test/java/com/box/sdkgen/taskassignments/TaskAssignmentsITest.java index 1b912b47f..fe0ba9b83 100644 --- a/src/test/java/com/box/sdkgen/test/taskassignments/TaskAssignmentsITest.java +++ b/src/test/java/com/box/sdkgen/taskassignments/TaskAssignmentsITest.java @@ -1,9 +1,9 @@ -package com.box.sdkgen.test.taskassignments; +package com.box.sdkgen.taskassignments; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.uploadNewFile; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.dateTimeFromString; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/tasks/TasksITest.java b/src/test/java/com/box/sdkgen/tasks/TasksITest.java similarity index 96% rename from src/test/java/com/box/sdkgen/test/tasks/TasksITest.java rename to src/test/java/com/box/sdkgen/tasks/TasksITest.java index 7cb71c21e..37f8d2b61 100644 --- a/src/test/java/com/box/sdkgen/test/tasks/TasksITest.java +++ b/src/test/java/com/box/sdkgen/tasks/TasksITest.java @@ -1,10 +1,10 @@ -package com.box.sdkgen.test.tasks; +package com.box.sdkgen.tasks; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.dateTimeFromString; import static com.box.sdkgen.internal.utils.UtilsManager.dateTimeToString; import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.tasks.CreateTaskRequestBody; diff --git a/src/test/java/com/box/sdkgen/test/termsofservices/TermsOfServicesITest.java b/src/test/java/com/box/sdkgen/termsofservices/TermsOfServicesITest.java similarity index 88% rename from src/test/java/com/box/sdkgen/test/termsofservices/TermsOfServicesITest.java rename to src/test/java/com/box/sdkgen/termsofservices/TermsOfServicesITest.java index f3f55cae0..c363eca9a 100644 --- a/src/test/java/com/box/sdkgen/test/termsofservices/TermsOfServicesITest.java +++ b/src/test/java/com/box/sdkgen/termsofservices/TermsOfServicesITest.java @@ -1,8 +1,8 @@ -package com.box.sdkgen.test.termsofservices; +package com.box.sdkgen.termsofservices; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.getOrCreateTermsOfServices; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateTermsOfServices; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.termsofservices.UpdateTermsOfServiceByIdRequestBody; diff --git a/src/test/java/com/box/sdkgen/test/termsofserviceuserstatuses/TermsOfServiceUserStatusesITest.java b/src/test/java/com/box/sdkgen/termsofserviceuserstatuses/TermsOfServiceUserStatusesITest.java similarity index 93% rename from src/test/java/com/box/sdkgen/test/termsofserviceuserstatuses/TermsOfServiceUserStatusesITest.java rename to src/test/java/com/box/sdkgen/termsofserviceuserstatuses/TermsOfServiceUserStatusesITest.java index 807d2d1ca..893e06081 100644 --- a/src/test/java/com/box/sdkgen/test/termsofserviceuserstatuses/TermsOfServiceUserStatusesITest.java +++ b/src/test/java/com/box/sdkgen/termsofserviceuserstatuses/TermsOfServiceUserStatusesITest.java @@ -1,10 +1,10 @@ -package com.box.sdkgen.test.termsofserviceuserstatuses; +package com.box.sdkgen.termsofserviceuserstatuses; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; +import static com.box.sdkgen.commons.CommonsManager.getOrCreateTermsOfServices; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; -import static com.box.sdkgen.test.commons.CommonsManager.getOrCreateTermsOfServices; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.termsofserviceuserstatuses.CreateTermsOfServiceStatusForUserRequestBody; diff --git a/src/test/java/com/box/sdkgen/test/transfer/TransferITest.java b/src/test/java/com/box/sdkgen/transfer/TransferITest.java similarity index 94% rename from src/test/java/com/box/sdkgen/test/transfer/TransferITest.java rename to src/test/java/com/box/sdkgen/transfer/TransferITest.java index d55de73e6..c9981af86 100644 --- a/src/test/java/com/box/sdkgen/test/transfer/TransferITest.java +++ b/src/test/java/com/box/sdkgen/transfer/TransferITest.java @@ -1,7 +1,7 @@ -package com.box.sdkgen.test.transfer; +package com.box.sdkgen.transfer; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.folders.DeleteFolderByIdQueryParams; diff --git a/src/test/java/com/box/sdkgen/test/trashedfiles/TrashedFilesITest.java b/src/test/java/com/box/sdkgen/trashedfiles/TrashedFilesITest.java similarity index 95% rename from src/test/java/com/box/sdkgen/test/trashedfiles/TrashedFilesITest.java rename to src/test/java/com/box/sdkgen/trashedfiles/TrashedFilesITest.java index 3c4f1523a..eed2e343c 100644 --- a/src/test/java/com/box/sdkgen/test/trashedfiles/TrashedFilesITest.java +++ b/src/test/java/com/box/sdkgen/trashedfiles/TrashedFilesITest.java @@ -1,9 +1,9 @@ -package com.box.sdkgen.test.trashedfiles; +package com.box.sdkgen.trashedfiles; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/trashedfolders/TrashedFoldersITest.java b/src/test/java/com/box/sdkgen/trashedfolders/TrashedFoldersITest.java similarity index 93% rename from src/test/java/com/box/sdkgen/test/trashedfolders/TrashedFoldersITest.java rename to src/test/java/com/box/sdkgen/trashedfolders/TrashedFoldersITest.java index 8514e0904..fd6c5de2c 100644 --- a/src/test/java/com/box/sdkgen/test/trashedfolders/TrashedFoldersITest.java +++ b/src/test/java/com/box/sdkgen/trashedfolders/TrashedFoldersITest.java @@ -1,7 +1,7 @@ -package com.box.sdkgen.test.trashedfolders; +package com.box.sdkgen.trashedfolders; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/trasheditems/TrashedItemsITest.java b/src/test/java/com/box/sdkgen/trasheditems/TrashedItemsITest.java similarity index 73% rename from src/test/java/com/box/sdkgen/test/trasheditems/TrashedItemsITest.java rename to src/test/java/com/box/sdkgen/trasheditems/TrashedItemsITest.java index ce7f4ba4e..210f80ef7 100644 --- a/src/test/java/com/box/sdkgen/test/trasheditems/TrashedItemsITest.java +++ b/src/test/java/com/box/sdkgen/trasheditems/TrashedItemsITest.java @@ -1,7 +1,7 @@ -package com.box.sdkgen.test.trasheditems; +package com.box.sdkgen.trasheditems; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.uploadNewFile; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.schemas.filefull.FileFull; diff --git a/src/test/java/com/box/sdkgen/test/trashedweblinks/TrashedWebLinksITest.java b/src/test/java/com/box/sdkgen/trashedweblinks/TrashedWebLinksITest.java similarity index 95% rename from src/test/java/com/box/sdkgen/test/trashedweblinks/TrashedWebLinksITest.java rename to src/test/java/com/box/sdkgen/trashedweblinks/TrashedWebLinksITest.java index 3c92652cb..23790e53a 100644 --- a/src/test/java/com/box/sdkgen/test/trashedweblinks/TrashedWebLinksITest.java +++ b/src/test/java/com/box/sdkgen/trashedweblinks/TrashedWebLinksITest.java @@ -1,8 +1,8 @@ -package com.box.sdkgen.test.trashedweblinks; +package com.box.sdkgen.trashedweblinks; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/uploads/UploadsITest.java b/src/test/java/com/box/sdkgen/uploads/UploadsITest.java similarity index 97% rename from src/test/java/com/box/sdkgen/test/uploads/UploadsITest.java rename to src/test/java/com/box/sdkgen/uploads/UploadsITest.java index e94bcc4a9..cb010c05a 100644 --- a/src/test/java/com/box/sdkgen/test/uploads/UploadsITest.java +++ b/src/test/java/com/box/sdkgen/uploads/UploadsITest.java @@ -1,8 +1,8 @@ -package com.box.sdkgen.test.uploads; +package com.box.sdkgen.uploads; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/usercollaborations/UserCollaborationsITest.java b/src/test/java/com/box/sdkgen/usercollaborations/UserCollaborationsITest.java similarity index 97% rename from src/test/java/com/box/sdkgen/test/usercollaborations/UserCollaborationsITest.java rename to src/test/java/com/box/sdkgen/usercollaborations/UserCollaborationsITest.java index 3fc285296..c9fc1381f 100644 --- a/src/test/java/com/box/sdkgen/test/usercollaborations/UserCollaborationsITest.java +++ b/src/test/java/com/box/sdkgen/usercollaborations/UserCollaborationsITest.java @@ -1,9 +1,9 @@ -package com.box.sdkgen.test.usercollaborations; +package com.box.sdkgen.usercollaborations; +import static com.box.sdkgen.commons.CommonsManager.createNewFolder; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.createNewFolder; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/users/UsersITest.java b/src/test/java/com/box/sdkgen/users/UsersITest.java similarity index 94% rename from src/test/java/com/box/sdkgen/test/users/UsersITest.java rename to src/test/java/com/box/sdkgen/users/UsersITest.java index 62feabe4d..2757f423b 100644 --- a/src/test/java/com/box/sdkgen/test/users/UsersITest.java +++ b/src/test/java/com/box/sdkgen/users/UsersITest.java @@ -1,8 +1,8 @@ -package com.box.sdkgen.test.users; +package com.box.sdkgen.users; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.users.CreateUserRequestBody; diff --git a/src/test/java/com/box/sdkgen/test/webhooks/WebhooksITest.java b/src/test/java/com/box/sdkgen/webhooks/WebhooksITest.java similarity index 99% rename from src/test/java/com/box/sdkgen/test/webhooks/WebhooksITest.java rename to src/test/java/com/box/sdkgen/webhooks/WebhooksITest.java index c21a71c8a..6afa1a972 100644 --- a/src/test/java/com/box/sdkgen/test/webhooks/WebhooksITest.java +++ b/src/test/java/com/box/sdkgen/webhooks/WebhooksITest.java @@ -1,5 +1,6 @@ -package com.box.sdkgen.test.webhooks; +package com.box.sdkgen.webhooks; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.compareSignatures; import static com.box.sdkgen.internal.utils.UtilsManager.computeWebhookSignature; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; @@ -10,7 +11,6 @@ import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import static org.junit.jupiter.api.Assertions.assertThrows; import com.box.sdkgen.client.BoxClient; diff --git a/src/test/java/com/box/sdkgen/test/weblinks/WeblinksITest.java b/src/test/java/com/box/sdkgen/weblinks/WeblinksITest.java similarity index 96% rename from src/test/java/com/box/sdkgen/test/weblinks/WeblinksITest.java rename to src/test/java/com/box/sdkgen/weblinks/WeblinksITest.java index 344fbd9da..0df411a61 100644 --- a/src/test/java/com/box/sdkgen/test/weblinks/WeblinksITest.java +++ b/src/test/java/com/box/sdkgen/weblinks/WeblinksITest.java @@ -1,8 +1,8 @@ -package com.box.sdkgen.test.weblinks; +package com.box.sdkgen.weblinks; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.weblinks.CreateWebLinkRequestBody; diff --git a/src/test/java/com/box/sdkgen/test/workflows/WorkflowsITest.java b/src/test/java/com/box/sdkgen/workflows/WorkflowsITest.java similarity index 95% rename from src/test/java/com/box/sdkgen/test/workflows/WorkflowsITest.java rename to src/test/java/com/box/sdkgen/workflows/WorkflowsITest.java index 5a0d2580b..31c4912a3 100644 --- a/src/test/java/com/box/sdkgen/test/workflows/WorkflowsITest.java +++ b/src/test/java/com/box/sdkgen/workflows/WorkflowsITest.java @@ -1,11 +1,11 @@ -package com.box.sdkgen.test.workflows; +package com.box.sdkgen.workflows; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClientWithUserSubject; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.uploads.UploadFileRequestBody; diff --git a/src/test/java/com/box/sdkgen/test/zipdownloads/ZipDownloadsITest.java b/src/test/java/com/box/sdkgen/zipdownloads/ZipDownloadsITest.java similarity index 93% rename from src/test/java/com/box/sdkgen/test/zipdownloads/ZipDownloadsITest.java rename to src/test/java/com/box/sdkgen/zipdownloads/ZipDownloadsITest.java index 3e339b926..e24a4b0d7 100644 --- a/src/test/java/com/box/sdkgen/test/zipdownloads/ZipDownloadsITest.java +++ b/src/test/java/com/box/sdkgen/zipdownloads/ZipDownloadsITest.java @@ -1,13 +1,13 @@ -package com.box.sdkgen.test.zipdownloads; +package com.box.sdkgen.zipdownloads; +import static com.box.sdkgen.commons.CommonsManager.createNewFolder; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.uploadNewFile; import static com.box.sdkgen.internal.utils.UtilsManager.bufferEquals; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.dateTimeToString; import static com.box.sdkgen.internal.utils.UtilsManager.generateByteBuffer; import static com.box.sdkgen.internal.utils.UtilsManager.readByteStream; -import static com.box.sdkgen.test.commons.CommonsManager.createNewFolder; -import static com.box.sdkgen.test.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.test.commons.CommonsManager.uploadNewFile; import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.schemas.filefull.FileFull; From 061e7a386b07535350e447f85b9e8ba9bebfeec9 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 30 Sep 2025 17:07:43 +0200 Subject: [PATCH 032/148] chore: Bump Bouncy Castle to fix `CVE-2025-8916` (box/box-codegen#846) (#1455) --- .codegen.json | 2 +- gradle.properties | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index f351a08fa..1baacf898 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "6674fe3", "specHash": "1ed059a", "version": "10.0.0" } +{ "engineHash": "2d4f7db", "specHash": "1ed059a", "version": "10.0.0" } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 183e33d1d..98e33de7e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,8 +6,8 @@ jacksonDatabindVersion=2.17.2 okhttpVersion=4.12.0 okioVersion=3.5.0 jose4jVersion=0.9.6 -bouncyCastleBcprovJdk18onVersion=1.78.1 -bouncyCastleBcpkixJdk18onVersion=1.78.1 +bouncyCastleBcprovJdk18onVersion=1.82 +bouncyCastleBcpkixJdk18onVersion=1.82 junitApiVersion=5.10.0 junitEngineVersion=5.10.0 googleJavaFormatVersion=1.7 From a7ef009eae9d95a422f4b0502c35bf52d8eab172 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 30 Sep 2025 17:22:39 +0200 Subject: [PATCH 033/148] docs: Update developer guide link in Changelog (#1457) --- .codegen.json | 2 +- CHANGELOG.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.codegen.json b/.codegen.json index 1baacf898..ab2d2c669 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "2d4f7db", "specHash": "1ed059a", "version": "10.0.0" } \ No newline at end of file +{ "engineHash": "d16c766", "specHash": "1ed059a", "version": "10.0.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index d0ccc0fa5..07f956c07 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,7 +22,7 @@ Introducing **`Box SDK v10`**, a major release designed to elevate your develope ### Important Notes -This version includes the Box Next Generation SDK artifact, previously developed in parallel to core Box SDKs. To facilitate migration and provide access to the newest features, we'll soon release an additional major version combining both artifacts. Migration to `v10` includes breaking changes, please review the [migration guide](https://github.com/box/box-java-sdk/blob/sdk-gen/migration-guides/from-v4-to-v10.md) for details. For more information, see the [SDK versioning strategy document](https://developer.box.com/tooling/sdks/sdk-versioning). Follow developer changelog for future updates. +This version includes the Box Next Generation SDK artifact, previously developed in parallel to core Box SDKs. To facilitate migration and provide access to the newest features, we'll soon release an additional major version combining both artifacts. Migration to `v10` includes breaking changes, please review the [migration guide](https://github.com/box/box-java-sdk/blob/sdk-gen/migration-guides/from-v4-to-v10.md) for details. For more information, see the [SDK versioning strategy document](https://developer.box.com/guides/tooling/sdks/sdk-versioning). Follow developer changelog for future updates. --- From 7f69fd19b6ea055ffebd43197bd46648352bd1d5 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Thu, 2 Oct 2025 11:22:24 +0200 Subject: [PATCH 034/148] test: Stop running hubs tests (box/box-codegen#851) (#1462) --- .codegen.json | 2 +- .../HubCollaborationsITest.java | 94 ---------------- .../box/sdkgen/hubitems/HubItemsITest.java | 92 --------------- .../java/com/box/sdkgen/hubs/HubsITest.java | 105 ------------------ 4 files changed, 1 insertion(+), 292 deletions(-) delete mode 100644 src/test/java/com/box/sdkgen/hubcollaborations/HubCollaborationsITest.java delete mode 100644 src/test/java/com/box/sdkgen/hubitems/HubItemsITest.java delete mode 100644 src/test/java/com/box/sdkgen/hubs/HubsITest.java diff --git a/.codegen.json b/.codegen.json index ab2d2c669..7c28eee71 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "d16c766", "specHash": "1ed059a", "version": "10.0.0" } +{ "engineHash": "0540f75", "specHash": "1ed059a", "version": "10.0.0" } diff --git a/src/test/java/com/box/sdkgen/hubcollaborations/HubCollaborationsITest.java b/src/test/java/com/box/sdkgen/hubcollaborations/HubCollaborationsITest.java deleted file mode 100644 index 54f5d6e01..000000000 --- a/src/test/java/com/box/sdkgen/hubcollaborations/HubCollaborationsITest.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.box.sdkgen.hubcollaborations; - -import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; -import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; -import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; -import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; - -import com.box.sdkgen.client.BoxClient; -import com.box.sdkgen.managers.hubcollaborations.GetHubCollaborationsV2025R0QueryParams; -import com.box.sdkgen.managers.hubs.GetHubsV2025R0QueryParams; -import com.box.sdkgen.managers.hubs.GetHubsV2025R0QueryParamsDirectionField; -import com.box.sdkgen.managers.users.CreateUserRequestBody; -import com.box.sdkgen.schemas.userfull.UserFull; -import com.box.sdkgen.schemas.v2025r0.hubcollaborationcreaterequestv2025r0.HubCollaborationCreateRequestV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubcollaborationcreaterequestv2025r0.HubCollaborationCreateRequestV2025R0AccessibleByField; -import com.box.sdkgen.schemas.v2025r0.hubcollaborationcreaterequestv2025r0.HubCollaborationCreateRequestV2025R0HubField; -import com.box.sdkgen.schemas.v2025r0.hubcollaborationsv2025r0.HubCollaborationsV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubcollaborationupdaterequestv2025r0.HubCollaborationUpdateRequestV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubcollaborationv2025r0.HubCollaborationV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubsv2025r0.HubsV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubv2025r0.HubV2025R0; -import org.junit.jupiter.api.Test; - -public class HubCollaborationsITest { - - private static final BoxClient client = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); - - @Test - public void testCrudHubCollaboration() { - HubsV2025R0 hubs = - client - .getHubs() - .getHubsV2025R0( - new GetHubsV2025R0QueryParams.Builder() - .scope("all") - .sort("name") - .direction(GetHubsV2025R0QueryParamsDirectionField.ASC) - .build()); - HubV2025R0 hub = hubs.getEntries().get(0); - String userName = getUuid(); - String userLogin = String.join("", getUuid(), "@gmail.com"); - UserFull user = - client - .getUsers() - .createUser( - new CreateUserRequestBody.Builder(userName) - .login(userLogin) - .isPlatformAccessOnly(true) - .build()); - HubCollaborationV2025R0 createdCollaboration = - client - .getHubCollaborations() - .createHubCollaborationV2025R0( - new HubCollaborationCreateRequestV2025R0( - new HubCollaborationCreateRequestV2025R0HubField(hub.getId()), - new HubCollaborationCreateRequestV2025R0AccessibleByField.Builder("user") - .id(user.getId()) - .build(), - "viewer")); - assert !(createdCollaboration.getId().equals("")); - assert convertToString(createdCollaboration.getType()).equals("hub_collaboration"); - assert createdCollaboration.getHub().getId().equals(hub.getId()); - assert convertToString(createdCollaboration.getAccessibleBy().getType()).equals("user"); - assert createdCollaboration.getAccessibleBy().getId().equals(user.getId()); - assert createdCollaboration.getRole().equals("viewer"); - HubCollaborationV2025R0 updatedCollaboration = - client - .getHubCollaborations() - .updateHubCollaborationByIdV2025R0( - createdCollaboration.getId(), - new HubCollaborationUpdateRequestV2025R0.Builder().role("editor").build()); - assert !(updatedCollaboration.getId().equals("")); - assert convertToString(updatedCollaboration.getType()).equals("hub_collaboration"); - assert updatedCollaboration.getHub().getId().equals(hub.getId()); - assert convertToString(updatedCollaboration.getAccessibleBy().getType()).equals("user"); - assert updatedCollaboration.getAccessibleBy().getId().equals(user.getId()); - assert updatedCollaboration.getRole().equals("editor"); - HubCollaborationsV2025R0 collaborations = - client - .getHubCollaborations() - .getHubCollaborationsV2025R0(new GetHubCollaborationsV2025R0QueryParams(hub.getId())); - assert collaborations.getEntries().size() >= 1; - HubCollaborationV2025R0 retrievedCollaboration = - client.getHubCollaborations().getHubCollaborationByIdV2025R0(createdCollaboration.getId()); - assert retrievedCollaboration.getId().equals(createdCollaboration.getId()); - assert convertToString(retrievedCollaboration.getType()).equals("hub_collaboration"); - assert retrievedCollaboration.getHub().getId().equals(hub.getId()); - assert convertToString(retrievedCollaboration.getAccessibleBy().getType()).equals("user"); - assert retrievedCollaboration.getAccessibleBy().getId().equals(user.getId()); - assert retrievedCollaboration.getRole().equals("editor"); - client.getHubCollaborations().deleteHubCollaborationByIdV2025R0(createdCollaboration.getId()); - client.getUsers().deleteUserById(user.getId()); - } -} diff --git a/src/test/java/com/box/sdkgen/hubitems/HubItemsITest.java b/src/test/java/com/box/sdkgen/hubitems/HubItemsITest.java deleted file mode 100644 index 9b09ef64c..000000000 --- a/src/test/java/com/box/sdkgen/hubitems/HubItemsITest.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.box.sdkgen.hubitems; - -import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; -import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; -import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; -import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; - -import com.box.sdkgen.client.BoxClient; -import com.box.sdkgen.managers.folders.CreateFolderRequestBody; -import com.box.sdkgen.managers.folders.CreateFolderRequestBodyParentField; -import com.box.sdkgen.managers.hubitems.GetHubItemsV2025R0QueryParams; -import com.box.sdkgen.schemas.folderfull.FolderFull; -import com.box.sdkgen.schemas.v2025r0.folderreferencev2025r0.FolderReferenceV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubcreaterequestv2025r0.HubCreateRequestV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubitemoperationresultv2025r0.HubItemOperationResultV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubitemoperationv2025r0.HubItemOperationV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubitemoperationv2025r0.HubItemOperationV2025R0ActionField; -import com.box.sdkgen.schemas.v2025r0.hubitemsmanagerequestv2025r0.HubItemsManageRequestV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubitemsmanageresponsev2025r0.HubItemsManageResponseV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubitemsv2025r0.HubItemsV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubv2025r0.HubV2025R0; -import java.util.Arrays; -import org.junit.jupiter.api.Test; - -public class HubItemsITest { - - private static final BoxClient client = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); - - @Test - public void testCreateDeleteGetHubItems() { - String hubTitle = getUuid(); - FolderFull folder = - client - .getFolders() - .createFolder( - new CreateFolderRequestBody( - getUuid(), new CreateFolderRequestBodyParentField("0"))); - HubV2025R0 createdHub = - client.getHubs().createHubV2025R0(new HubCreateRequestV2025R0(hubTitle)); - HubItemsV2025R0 hubItemsBeforeAdd = - client - .getHubItems() - .getHubItemsV2025R0(new GetHubItemsV2025R0QueryParams(createdHub.getId())); - assert hubItemsBeforeAdd.getEntries().size() == 0; - HubItemsManageResponseV2025R0 addedHubItems = - client - .getHubItems() - .manageHubItemsV2025R0( - createdHub.getId(), - new HubItemsManageRequestV2025R0.Builder() - .operations( - Arrays.asList( - new HubItemOperationV2025R0( - HubItemOperationV2025R0ActionField.ADD, - new FolderReferenceV2025R0(folder.getId())))) - .build()); - HubItemOperationResultV2025R0 addedHubItem = addedHubItems.getOperations().get(0); - assert convertToString(addedHubItem.getAction()).equals("add"); - assert addedHubItem.getStatus() == 200; - assert addedHubItem.getItem().getId().equals(folder.getId()); - assert addedHubItem.getItem().getType().equals("folder"); - HubItemsV2025R0 hubItemsAfterAdd = - client - .getHubItems() - .getHubItemsV2025R0(new GetHubItemsV2025R0QueryParams(createdHub.getId())); - assert hubItemsAfterAdd.getEntries().size() == 1; - HubItemsManageResponseV2025R0 removedHubItems = - client - .getHubItems() - .manageHubItemsV2025R0( - createdHub.getId(), - new HubItemsManageRequestV2025R0.Builder() - .operations( - Arrays.asList( - new HubItemOperationV2025R0( - HubItemOperationV2025R0ActionField.REMOVE, - new FolderReferenceV2025R0(folder.getId())))) - .build()); - HubItemOperationResultV2025R0 removedHubItem = removedHubItems.getOperations().get(0); - assert convertToString(removedHubItem.getAction()).equals("remove"); - assert removedHubItem.getStatus() == 200; - assert removedHubItem.getItem().getId().equals(folder.getId()); - assert removedHubItem.getItem().getType().equals("folder"); - HubItemsV2025R0 hubItemsAfterRemove = - client - .getHubItems() - .getHubItemsV2025R0(new GetHubItemsV2025R0QueryParams(createdHub.getId())); - assert hubItemsAfterRemove.getEntries().size() == 0; - client.getHubs().deleteHubByIdV2025R0(createdHub.getId()); - client.getFolders().deleteFolderById(folder.getId()); - } -} diff --git a/src/test/java/com/box/sdkgen/hubs/HubsITest.java b/src/test/java/com/box/sdkgen/hubs/HubsITest.java deleted file mode 100644 index 913d02863..000000000 --- a/src/test/java/com/box/sdkgen/hubs/HubsITest.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.box.sdkgen.hubs; - -import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; -import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; -import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; -import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static org.junit.jupiter.api.Assertions.assertThrows; - -import com.box.sdkgen.client.BoxClient; -import com.box.sdkgen.managers.hubs.GetEnterpriseHubsV2025R0QueryParams; -import com.box.sdkgen.managers.hubs.GetEnterpriseHubsV2025R0QueryParamsDirectionField; -import com.box.sdkgen.managers.hubs.GetHubsV2025R0QueryParams; -import com.box.sdkgen.managers.hubs.GetHubsV2025R0QueryParamsDirectionField; -import com.box.sdkgen.schemas.v2025r0.hubcopyrequestv2025r0.HubCopyRequestV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubcreaterequestv2025r0.HubCreateRequestV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubsv2025r0.HubsV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubupdaterequestv2025r0.HubUpdateRequestV2025R0; -import com.box.sdkgen.schemas.v2025r0.hubv2025r0.HubV2025R0; -import org.junit.jupiter.api.Test; - -public class HubsITest { - - private static final BoxClient client = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); - - @Test - public void testCreateUpdateGetAndDeleteHubs() { - String hubTitle = getUuid(); - String hubDescription = "new Hub description"; - HubV2025R0 createdHub = - client - .getHubs() - .createHubV2025R0( - new HubCreateRequestV2025R0.Builder(hubTitle).description(hubDescription).build()); - assert createdHub.getTitle().equals(hubTitle); - assert createdHub.getDescription().equals(hubDescription); - assert convertToString(createdHub.getType()).equals("hubs"); - String hubId = createdHub.getId(); - HubsV2025R0 usersHubs = - client - .getHubs() - .getHubsV2025R0( - new GetHubsV2025R0QueryParams.Builder() - .scope("all") - .sort("name") - .direction(GetHubsV2025R0QueryParamsDirectionField.ASC) - .build()); - assert usersHubs.getEntries().size() > 0; - HubsV2025R0 enterpriseHubs = - client - .getHubs() - .getEnterpriseHubsV2025R0( - new GetEnterpriseHubsV2025R0QueryParams.Builder() - .sort("name") - .direction(GetEnterpriseHubsV2025R0QueryParamsDirectionField.ASC) - .build()); - assert enterpriseHubs.getEntries().size() > 0; - HubV2025R0 hubById = client.getHubs().getHubByIdV2025R0(hubId); - assert hubById.getId().equals(hubId); - assert hubById.getTitle().equals(hubTitle); - assert hubById.getDescription().equals(hubDescription); - assert convertToString(hubById.getType()).equals("hubs"); - String newHubTitle = getUuid(); - String newHubDescription = "updated Hub description"; - HubV2025R0 updatedHub = - client - .getHubs() - .updateHubByIdV2025R0( - hubId, - new HubUpdateRequestV2025R0.Builder() - .title(newHubTitle) - .description(newHubDescription) - .build()); - assert updatedHub.getTitle().equals(newHubTitle); - assert updatedHub.getDescription().equals(newHubDescription); - client.getHubs().deleteHubByIdV2025R0(hubId); - assertThrows(RuntimeException.class, () -> client.getHubs().deleteHubByIdV2025R0(hubId)); - } - - @Test - public void copyHub() { - String hubTitle = getUuid(); - String hubDescription = "new Hub description"; - HubV2025R0 createdHub = - client - .getHubs() - .createHubV2025R0( - new HubCreateRequestV2025R0.Builder(hubTitle).description(hubDescription).build()); - String copiedHubTitle = getUuid(); - String copiedHubDescription = "copied Hub description"; - HubV2025R0 copiedHub = - client - .getHubs() - .copyHubV2025R0( - createdHub.getId(), - new HubCopyRequestV2025R0.Builder() - .title(copiedHubTitle) - .description(copiedHubDescription) - .build()); - assert !(copiedHub.getId().equals(createdHub.getId())); - assert copiedHub.getTitle().equals(copiedHubTitle); - assert copiedHub.getDescription().equals(copiedHubDescription); - client.getHubs().deleteHubByIdV2025R0(createdHub.getId()); - client.getHubs().deleteHubByIdV2025R0(copiedHub.getId()); - } -} From c72407dc77cc67f3a178d607a2b1bd4e90e832a8 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Thu, 2 Oct 2025 12:09:44 +0200 Subject: [PATCH 035/148] feat: Add `Javadoc` comments (box/box-codegen#839) (#1465) --- .codegen.json | 2 +- .../box/sdkgen/box/ccgauth/BoxCCGAuth.java | 72 ++++ .../com/box/sdkgen/box/ccgauth/CCGConfig.java | 11 + .../BoxDeveloperTokenAuth.java | 39 ++ .../box/sdkgen/box/jwtauth/BoxJWTAuth.java | 78 ++++ .../com/box/sdkgen/box/jwtauth/JWTConfig.java | 75 ++++ .../box/jwtauth/JwtConfigAppSettings.java | 3 + .../jwtauth/JwtConfigAppSettingsAppAuth.java | 3 + .../box/sdkgen/box/jwtauth/JwtConfigFile.java | 3 + .../com/box/sdkgen/box/oauth/BoxOAuth.java | 60 ++++ .../box/oauth/GetAuthorizeUrlOptions.java | 16 + .../java/com/box/sdkgen/client/BoxClient.java | 37 ++ .../com/box/sdkgen/managers/ai/AiManager.java | 79 +++++ .../managers/ai/CreateAiAskHeaders.java | 1 + .../managers/ai/CreateAiExtractHeaders.java | 1 + .../ai/CreateAiExtractStructuredHeaders.java | 1 + .../managers/ai/CreateAiTextGenHeaders.java | 1 + .../ai/GetAiAgentDefaultConfigHeaders.java | 1 + .../GetAiAgentDefaultConfigQueryParams.java | 6 + .../managers/aistudio/AiStudioManager.java | 78 ++++ .../aistudio/CreateAiAgentHeaders.java | 1 + .../aistudio/DeleteAiAgentByIdHeaders.java | 1 + .../aistudio/GetAiAgentByIdHeaders.java | 1 + .../aistudio/GetAiAgentByIdQueryParams.java | 1 + .../managers/aistudio/GetAiAgentsHeaders.java | 1 + .../aistudio/GetAiAgentsQueryParams.java | 12 + .../aistudio/UpdateAiAgentByIdHeaders.java | 1 + .../AppItemAssociationsManager.java | 100 ++++++ .../GetFileAppItemAssociationsHeaders.java | 1 + ...GetFileAppItemAssociationsQueryParams.java | 8 + .../GetFolderAppItemAssociationsHeaders.java | 1 + ...tFolderAppItemAssociationsQueryParams.java | 8 + .../managers/archives/ArchivesManager.java | 57 +++ .../archives/CreateArchiveV2025R0Headers.java | 2 + .../CreateArchiveV2025R0RequestBody.java | 1 + .../DeleteArchiveByIdV2025R0Headers.java | 2 + .../archives/GetArchivesV2025R0Headers.java | 2 + .../GetArchivesV2025R0QueryParams.java | 5 + .../authorization/AuthorizationManager.java | 74 ++++ .../authorization/AuthorizeUserHeaders.java | 1 + .../AuthorizeUserQueryParams.java | 26 ++ .../RefreshAccessTokenHeaders.java | 1 + .../RequestAccessTokenHeaders.java | 1 + .../RevokeAccessTokenHeaders.java | 1 + .../managers/avatars/AvatarsManager.java | 35 ++ .../avatars/CreateUserAvatarHeaders.java | 1 + .../avatars/CreateUserAvatarRequestBody.java | 4 + .../avatars/DeleteUserAvatarHeaders.java | 1 + .../avatars/GetUserAvatarHeaders.java | 1 + .../chunkeduploads/ChunkedUploadsManager.java | 273 ++++++++++++++ ...teFileUploadSessionCommitByUrlHeaders.java | 21 ++ ...leUploadSessionCommitByUrlRequestBody.java | 1 + .../CreateFileUploadSessionCommitHeaders.java | 21 ++ ...ateFileUploadSessionCommitRequestBody.java | 1 + ...leUploadSessionForExistingFileHeaders.java | 1 + ...loadSessionForExistingFileRequestBody.java | 2 + .../CreateFileUploadSessionHeaders.java | 1 + .../CreateFileUploadSessionRequestBody.java | 3 + .../DeleteFileUploadSessionByIdHeaders.java | 1 + .../DeleteFileUploadSessionByUrlHeaders.java | 1 + .../GetFileUploadSessionByIdHeaders.java | 1 + .../GetFileUploadSessionByUrlHeaders.java | 1 + ...GetFileUploadSessionPartsByUrlHeaders.java | 1 + ...ileUploadSessionPartsByUrlQueryParams.java | 6 + .../GetFileUploadSessionPartsHeaders.java | 1 + .../GetFileUploadSessionPartsQueryParams.java | 6 + .../UploadFilePartByUrlHeaders.java | 24 ++ .../chunkeduploads/UploadFilePartHeaders.java | 24 ++ .../AddClassificationHeaders.java | 1 + .../AddClassificationRequestBody.java | 3 + ...AddClassificationRequestBodyDataField.java | 5 + ...dyDataStaticConfigClassificationField.java | 10 + ...ationRequestBodyDataStaticConfigField.java | 1 + .../ClassificationsManager.java | 71 ++++ .../CreateClassificationTemplateHeaders.java | 1 + ...eateClassificationTemplateRequestBody.java | 12 + ...icationTemplateRequestBodyFieldsField.java | 5 + ...TemplateRequestBodyFieldsOptionsField.java | 2 + ...ptionsStaticConfigClassificationField.java | 10 + ...estBodyFieldsOptionsStaticConfigField.java | 1 + .../GetClassificationTemplateHeaders.java | 1 + .../UpdateClassificationHeaders.java | 1 + .../UpdateClassificationRequestBody.java | 4 + ...ateClassificationRequestBodyDataField.java | 2 + ...dyDataStaticConfigClassificationField.java | 10 + ...ationRequestBodyDataStaticConfigField.java | 1 + .../CollaborationAllowlistEntriesManager.java | 60 ++++ ...ateCollaborationWhitelistEntryHeaders.java | 1 + ...ollaborationWhitelistEntryRequestBody.java | 2 + ...ollaborationWhitelistEntryByIdHeaders.java | 1 + ...tCollaborationWhitelistEntriesHeaders.java | 1 + ...laborationWhitelistEntriesQueryParams.java | 7 + ...ollaborationWhitelistEntryByIdHeaders.java | 1 + ...borationAllowlistExemptTargetsManager.java | 56 +++ ...aborationWhitelistExemptTargetHeaders.java | 1 + ...ationWhitelistExemptTargetRequestBody.java | 1 + ...elistExemptTargetRequestBodyUserField.java | 1 + ...ationWhitelistExemptTargetByIdHeaders.java | 1 + ...ationWhitelistExemptTargetByIdHeaders.java | 1 + ...borationWhitelistExemptTargetsHeaders.java | 1 + ...tionWhitelistExemptTargetsQueryParams.java | 7 + .../collections/CollectionsManager.java | 62 ++++ .../collections/GetCollectionByIdHeaders.java | 1 + .../GetCollectionItemsHeaders.java | 1 + .../GetCollectionItemsQueryParams.java | 14 + .../collections/GetCollectionsHeaders.java | 1 + .../GetCollectionsQueryParams.java | 14 + .../managers/comments/CommentsManager.java | 151 ++++++++ .../comments/CreateCommentHeaders.java | 1 + .../comments/CreateCommentQueryParams.java | 8 + .../comments/CreateCommentRequestBody.java | 16 + .../CreateCommentRequestBodyItemField.java | 2 + .../comments/DeleteCommentByIdHeaders.java | 1 + .../comments/GetCommentByIdHeaders.java | 1 + .../comments/GetCommentByIdQueryParams.java | 8 + .../comments/GetFileCommentsHeaders.java | 1 + .../comments/GetFileCommentsQueryParams.java | 14 + .../comments/UpdateCommentByIdHeaders.java | 1 + .../UpdateCommentByIdQueryParams.java | 8 + .../UpdateCommentByIdRequestBody.java | 1 + .../DeleteDevicePinnerByIdHeaders.java | 1 + .../devicepinners/DevicePinnersManager.java | 58 +++ .../GetDevicePinnerByIdHeaders.java | 1 + .../GetEnterpriseDevicePinnersHeaders.java | 1 + ...GetEnterpriseDevicePinnersQueryParams.java | 11 + .../CreateDocgenBatchV2025R0Headers.java | 2 + .../sdkgen/managers/docgen/DocgenManager.java | 63 ++++ .../GetDocgenBatchJobByIdV2025R0Headers.java | 2 + ...tDocgenBatchJobByIdV2025R0QueryParams.java | 7 + .../GetDocgenJobByIdV2025R0Headers.java | 2 + .../docgen/GetDocgenJobsV2025R0Headers.java | 2 + .../GetDocgenJobsV2025R0QueryParams.java | 7 + .../CreateDocgenTemplateV2025R0Headers.java | 2 + ...eleteDocgenTemplateByIdV2025R0Headers.java | 2 + .../docgentemplate/DocgenTemplateManager.java | 100 ++++++ .../GetDocgenTemplateByIdV2025R0Headers.java | 2 + ...etDocgenTemplateJobByIdV2025R0Headers.java | 2 + ...cgenTemplateJobByIdV2025R0QueryParams.java | 7 + .../GetDocgenTemplateTagsV2025R0Headers.java | 2 + ...tDocgenTemplateTagsV2025R0QueryParams.java | 8 + .../GetDocgenTemplatesV2025R0Headers.java | 2 + .../GetDocgenTemplatesV2025R0QueryParams.java | 7 + .../downloads/DownloadFileHeaders.java | 18 + .../downloads/DownloadFileQueryParams.java | 8 + .../DownloadFileToOutputStreamHeaders.java | 18 + ...DownloadFileToOutputStreamQueryParams.java | 8 + .../managers/downloads/DownloadsManager.java | 72 ++++ .../downloads/GetDownloadFileUrlHeaders.java | 18 + .../GetDownloadFileUrlQueryParams.java | 8 + .../CreateUserEmailAliasHeaders.java | 1 + .../CreateUserEmailAliasRequestBody.java | 8 + .../DeleteUserEmailAliasByIdHeaders.java | 1 + .../emailaliases/EmailAliasesManager.java | 39 ++ .../GetUserEmailAliasesHeaders.java | 1 + .../sdkgen/managers/events/EventsManager.java | 124 +++++++ .../events/GetEventStreamHeaders.java | 1 + .../events/GetEventStreamQueryParams.java | 45 +++ .../managers/events/GetEventsHeaders.java | 1 + .../managers/events/GetEventsQueryParams.java | 45 +++ .../GetEventsWithLongPollingHeaders.java | 1 + .../externalusers/ExternalUsersManager.java | 13 + ...obToDeleteExternalUsersV2025R0Headers.java | 2 + .../AddClassificationToFileHeaders.java | 1 + .../AddClassificationToFileRequestBody.java | 8 + .../DeleteClassificationFromFileHeaders.java | 1 + .../FileClassificationsManager.java | 121 +++++++ .../GetClassificationOnFileHeaders.java | 1 + .../UpdateClassificationOnFileHeaders.java | 1 + ...UpdateClassificationOnFileRequestBody.java | 10 + .../CreateFileMetadataByIdHeaders.java | 1 + .../DeleteFileMetadataByIdHeaders.java | 1 + .../filemetadata/FileMetadataManager.java | 125 +++++++ .../GetFileMetadataByIdHeaders.java | 1 + .../filemetadata/GetFileMetadataHeaders.java | 1 + .../UpdateFileMetadataByIdHeaders.java | 1 + .../UpdateFileMetadataByIdRequestBody.java | 16 + .../CreateFileRequestCopyHeaders.java | 1 + .../DeleteFileRequestByIdHeaders.java | 1 + .../filerequests/FileRequestsManager.java | 74 ++++ .../GetFileRequestByIdHeaders.java | 1 + .../UpdateFileRequestByIdHeaders.java | 7 + .../managers/files/CopyFileHeaders.java | 1 + .../managers/files/CopyFileQueryParams.java | 8 + .../managers/files/CopyFileRequestBody.java | 9 + .../files/CopyFileRequestBodyParentField.java | 1 + .../managers/files/DeleteFileByIdHeaders.java | 7 + .../sdkgen/managers/files/FilesManager.java | 335 ++++++++++++++++++ .../managers/files/GetFileByIdHeaders.java | 35 ++ .../files/GetFileByIdQueryParams.java | 12 + .../files/GetFileThumbnailByIdHeaders.java | 1 + .../GetFileThumbnailByIdQueryParams.java | 4 + .../files/GetFileThumbnailUrlHeaders.java | 1 + .../files/GetFileThumbnailUrlQueryParams.java | 4 + .../managers/files/UpdateFileByIdHeaders.java | 7 + .../files/UpdateFileByIdQueryParams.java | 8 + .../files/UpdateFileByIdRequestBody.java | 42 +++ ...teFileByIdRequestBodyCollectionsField.java | 2 + .../UpdateFileByIdRequestBodyLockField.java | 3 + .../UpdateFileByIdRequestBodyParentField.java | 5 + ...teFileByIdRequestBodyPermissionsField.java | 8 + ...ateFileByIdRequestBodySharedLinkField.java | 28 ++ ...RequestBodySharedLinkPermissionsField.java | 4 + .../FileVersionLegalHoldsManager.java | 56 +++ .../GetFileVersionLegalHoldByIdHeaders.java | 1 + .../GetFileVersionLegalHoldsHeaders.java | 1 + .../GetFileVersionLegalHoldsQueryParams.java | 8 + .../FileVersionRetentionsManager.java | 66 ++++ .../GetFileVersionRetentionByIdHeaders.java | 1 + .../GetFileVersionRetentionsHeaders.java | 1 + .../GetFileVersionRetentionsQueryParams.java | 15 + .../DeleteFileVersionByIdHeaders.java | 7 + .../fileversions/FileVersionsManager.java | 335 ++++++++++++++++++ .../GetFileVersionByIdHeaders.java | 1 + .../GetFileVersionByIdQueryParams.java | 8 + .../fileversions/GetFileVersionsHeaders.java | 1 + .../GetFileVersionsQueryParams.java | 14 + .../PromoteFileVersionHeaders.java | 1 + .../PromoteFileVersionQueryParams.java | 8 + .../PromoteFileVersionRequestBody.java | 2 + .../UpdateFileVersionByIdHeaders.java | 1 + .../UpdateFileVersionByIdRequestBody.java | 1 + .../DeleteFileWatermarkHeaders.java | 1 + .../filewatermarks/FileWatermarksManager.java | 53 +++ .../GetFileWatermarkHeaders.java | 1 + .../UpdateFileWatermarkHeaders.java | 1 + .../UpdateFileWatermarkRequestBody.java | 1 + ...ileWatermarkRequestBodyWatermarkField.java | 5 + .../AddClassificationToFolderHeaders.java | 1 + .../AddClassificationToFolderRequestBody.java | 8 + ...DeleteClassificationFromFolderHeaders.java | 1 + .../FolderClassificationsManager.java | 131 +++++++ .../GetClassificationOnFolderHeaders.java | 1 + .../UpdateClassificationOnFolderHeaders.java | 1 + ...dateClassificationOnFolderRequestBody.java | 10 + .../folderlocks/CreateFolderLockHeaders.java | 1 + .../CreateFolderLockRequestBody.java | 5 + ...reateFolderLockRequestBodyFolderField.java | 2 + ...rLockRequestBodyLockedOperationsField.java | 2 + .../DeleteFolderLockByIdHeaders.java | 1 + .../folderlocks/FolderLocksManager.java | 45 +++ .../folderlocks/GetFolderLocksHeaders.java | 1 + .../GetFolderLocksQueryParams.java | 9 + .../CreateFolderMetadataByIdHeaders.java | 1 + .../DeleteFolderMetadataByIdHeaders.java | 1 + .../foldermetadata/FolderMetadataManager.java | 143 ++++++++ .../GetFolderMetadataByIdHeaders.java | 1 + .../GetFolderMetadataHeaders.java | 1 + .../UpdateFolderMetadataByIdHeaders.java | 1 + .../UpdateFolderMetadataByIdRequestBody.java | 16 + .../managers/folders/CopyFolderHeaders.java | 1 + .../folders/CopyFolderQueryParams.java | 8 + .../folders/CopyFolderRequestBody.java | 10 + .../CopyFolderRequestBodyParentField.java | 1 + .../managers/folders/CreateFolderHeaders.java | 1 + .../folders/CreateFolderQueryParams.java | 8 + .../folders/CreateFolderRequestBody.java | 16 + ...lderRequestBodyFolderUploadEmailField.java | 11 + .../CreateFolderRequestBodyParentField.java | 1 + .../folders/DeleteFolderByIdHeaders.java | 7 + .../folders/DeleteFolderByIdQueryParams.java | 3 + .../managers/folders/FoldersManager.java | 324 +++++++++++++++++ .../folders/GetFolderByIdHeaders.java | 18 + .../folders/GetFolderByIdQueryParams.java | 39 ++ .../folders/GetFolderItemsHeaders.java | 12 + .../folders/GetFolderItemsQueryParams.java | 52 +++ .../folders/UpdateFolderByIdHeaders.java | 7 + .../folders/UpdateFolderByIdQueryParams.java | 8 + .../folders/UpdateFolderByIdRequestBody.java | 52 +++ ...FolderByIdRequestBodyCollectionsField.java | 2 + ...ByIdRequestBodyFolderUploadEmailField.java | 11 + ...pdateFolderByIdRequestBodyParentField.java | 5 + ...eFolderByIdRequestBodySharedLinkField.java | 28 ++ ...RequestBodySharedLinkPermissionsField.java | 4 + .../DeleteFolderWatermarkHeaders.java | 1 + .../FolderWatermarksManager.java | 59 +++ .../GetFolderWatermarkHeaders.java | 1 + .../UpdateFolderWatermarkHeaders.java | 1 + .../UpdateFolderWatermarkRequestBody.java | 1 + ...derWatermarkRequestBodyWatermarkField.java | 5 + .../managers/groups/CreateGroupHeaders.java | 1 + .../groups/CreateGroupQueryParams.java | 8 + .../groups/CreateGroupRequestBody.java | 39 ++ .../groups/DeleteGroupByIdHeaders.java | 1 + .../managers/groups/GetGroupByIdHeaders.java | 1 + .../groups/GetGroupByIdQueryParams.java | 8 + .../managers/groups/GetGroupsHeaders.java | 1 + .../managers/groups/GetGroupsQueryParams.java | 15 + .../sdkgen/managers/groups/GroupsManager.java | 152 ++++++++ .../groups/UpdateGroupByIdHeaders.java | 1 + .../groups/UpdateGroupByIdQueryParams.java | 8 + .../groups/UpdateGroupByIdRequestBody.java | 39 ++ .../CreateHubCollaborationV2025R0Headers.java | 2 + ...eteHubCollaborationByIdV2025R0Headers.java | 2 + ...GetHubCollaborationByIdV2025R0Headers.java | 2 + .../GetHubCollaborationsV2025R0Headers.java | 2 + ...etHubCollaborationsV2025R0QueryParams.java | 14 + .../HubCollaborationsManager.java | 61 ++++ ...ateHubCollaborationByIdV2025R0Headers.java | 2 + .../hubitems/GetHubItemsV2025R0Headers.java | 2 + .../GetHubItemsV2025R0QueryParams.java | 14 + .../managers/hubitems/HubItemsManager.java | 30 ++ .../ManageHubItemsV2025R0Headers.java | 2 + .../managers/hubs/CopyHubV2025R0Headers.java | 2 + .../hubs/CreateHubV2025R0Headers.java | 2 + .../hubs/DeleteHubByIdV2025R0Headers.java | 2 + .../hubs/GetEnterpriseHubsV2025R0Headers.java | 2 + .../GetEnterpriseHubsV2025R0QueryParams.java | 14 + .../hubs/GetHubByIdV2025R0Headers.java | 2 + .../managers/hubs/GetHubsV2025R0Headers.java | 2 + .../hubs/GetHubsV2025R0QueryParams.java | 18 + .../box/sdkgen/managers/hubs/HubsManager.java | 131 +++++++ .../hubs/UpdateHubByIdV2025R0Headers.java | 2 + .../CreateSlackIntegrationMappingHeaders.java | 1 + .../CreateTeamsIntegrationMappingHeaders.java | 1 + ...eteSlackIntegrationMappingByIdHeaders.java | 1 + ...eteTeamsIntegrationMappingByIdHeaders.java | 1 + .../GetSlackIntegrationMappingHeaders.java | 1 + ...GetSlackIntegrationMappingQueryParams.java | 12 + .../GetTeamsIntegrationMappingHeaders.java | 1 + ...GetTeamsIntegrationMappingQueryParams.java | 4 + .../IntegrationMappingsManager.java | 200 +++++++++++ ...ateSlackIntegrationMappingByIdHeaders.java | 1 + ...ateTeamsIntegrationMappingByIdHeaders.java | 1 + .../managers/invites/CreateInviteHeaders.java | 1 + .../invites/CreateInviteQueryParams.java | 8 + .../invites/CreateInviteRequestBody.java | 2 + ...ateInviteRequestBodyActionableByField.java | 1 + ...reateInviteRequestBodyEnterpriseField.java | 1 + .../invites/GetInviteByIdHeaders.java | 1 + .../invites/GetInviteByIdQueryParams.java | 8 + .../managers/invites/InvitesManager.java | 76 ++++ .../CreateLegalHoldPolicyHeaders.java | 1 + .../CreateLegalHoldPolicyRequestBody.java | 32 ++ .../DeleteLegalHoldPolicyByIdHeaders.java | 1 + .../GetLegalHoldPoliciesHeaders.java | 1 + .../GetLegalHoldPoliciesQueryParams.java | 19 + .../GetLegalHoldPolicyByIdHeaders.java | 1 + .../LegalHoldPoliciesManager.java | 80 +++++ .../UpdateLegalHoldPolicyByIdHeaders.java | 1 + .../UpdateLegalHoldPolicyByIdRequestBody.java | 3 + ...reateLegalHoldPolicyAssignmentHeaders.java | 1 + ...eLegalHoldPolicyAssignmentRequestBody.java | 2 + ...icyAssignmentRequestBodyAssignToField.java | 2 + ...eLegalHoldPolicyAssignmentByIdHeaders.java | 1 + ...tLegalHoldPolicyAssignmentByIdHeaders.java | 1 + ...HoldPolicyAssignmentFileOnHoldHeaders.java | 1 + ...PolicyAssignmentFileOnHoldQueryParams.java | 15 + .../GetLegalHoldPolicyAssignmentsHeaders.java | 1 + ...LegalHoldPolicyAssignmentsQueryParams.java | 18 + .../LegalHoldPolicyAssignmentsManager.java | 142 ++++++++ .../GetCollaborationsHeaders.java | 1 + .../GetCollaborationsQueryParams.java | 15 + .../GetFileCollaborationsHeaders.java | 1 + .../GetFileCollaborationsQueryParams.java | 15 + .../GetFolderCollaborationsHeaders.java | 1 + .../GetFolderCollaborationsQueryParams.java | 15 + .../GetGroupCollaborationsHeaders.java | 1 + .../GetGroupCollaborationsQueryParams.java | 6 + .../ListCollaborationsManager.java | 131 +++++++ .../CreateGroupMembershipHeaders.java | 1 + .../CreateGroupMembershipQueryParams.java | 8 + .../CreateGroupMembershipRequestBody.java | 13 + ...eGroupMembershipRequestBodyGroupField.java | 1 + ...teGroupMembershipRequestBodyUserField.java | 1 + .../DeleteGroupMembershipByIdHeaders.java | 1 + .../GetGroupMembershipByIdHeaders.java | 1 + .../GetGroupMembershipByIdQueryParams.java | 8 + .../GetGroupMembershipsHeaders.java | 1 + .../GetGroupMembershipsQueryParams.java | 6 + .../GetUserMembershipsHeaders.java | 1 + .../GetUserMembershipsQueryParams.java | 6 + .../memberships/MembershipsManager.java | 185 ++++++++++ .../UpdateGroupMembershipByIdHeaders.java | 1 + .../UpdateGroupMembershipByIdQueryParams.java | 8 + .../UpdateGroupMembershipByIdRequestBody.java | 11 + .../ApplyMetadataCascadePolicyHeaders.java | 1 + ...ApplyMetadataCascadePolicyRequestBody.java | 7 + .../CreateMetadataCascadePolicyHeaders.java | 1 + ...reateMetadataCascadePolicyRequestBody.java | 22 ++ ...eleteMetadataCascadePolicyByIdHeaders.java | 1 + .../GetMetadataCascadePoliciesHeaders.java | 1 + ...GetMetadataCascadePoliciesQueryParams.java | 19 + .../GetMetadataCascadePolicyByIdHeaders.java | 1 + .../MetadataCascadePoliciesManager.java | 77 ++++ .../CreateMetadataTemplateHeaders.java | 1 + .../CreateMetadataTemplateRequestBody.java | 27 ++ ...etadataTemplateRequestBodyFieldsField.java | 21 ++ ...TemplateRequestBodyFieldsOptionsField.java | 4 + .../DeleteMetadataTemplateHeaders.java | 1 + ...GetEnterpriseMetadataTemplatesHeaders.java | 1 + ...nterpriseMetadataTemplatesQueryParams.java | 7 + .../GetGlobalMetadataTemplatesHeaders.java | 1 + ...GetGlobalMetadataTemplatesQueryParams.java | 7 + .../GetMetadataTemplateByIdHeaders.java | 1 + .../GetMetadataTemplateHeaders.java | 1 + ...tMetadataTemplatesByInstanceIdHeaders.java | 1 + ...adataTemplatesByInstanceIdQueryParams.java | 8 + .../MetadataTemplatesManager.java | 134 +++++++ .../UpdateMetadataTemplateHeaders.java | 1 + .../UpdateMetadataTemplateRequestBody.java | 28 ++ .../recentitems/GetRecentItemsHeaders.java | 1 + .../GetRecentItemsQueryParams.java | 15 + .../recentitems/RecentItemsManager.java | 23 ++ .../CreateRetentionPolicyHeaders.java | 1 + .../CreateRetentionPolicyRequestBody.java | 32 ++ .../DeleteRetentionPolicyByIdHeaders.java | 1 + .../GetRetentionPoliciesHeaders.java | 1 + .../GetRetentionPoliciesQueryParams.java | 16 + .../GetRetentionPolicyByIdHeaders.java | 1 + .../GetRetentionPolicyByIdQueryParams.java | 8 + .../RetentionPoliciesManager.java | 87 +++++ .../UpdateRetentionPolicyByIdHeaders.java | 1 + .../UpdateRetentionPolicyByIdRequestBody.java | 42 +++ ...reateRetentionPolicyAssignmentHeaders.java | 1 + ...eRetentionPolicyAssignmentRequestBody.java | 13 + ...icyAssignmentRequestBodyAssignToField.java | 5 + ...ssignmentRequestBodyFilterFieldsField.java | 2 + ...eRetentionPolicyAssignmentByIdHeaders.java | 1 + ...UnderRetentionPolicyAssignmentHeaders.java | 1 + ...rRetentionPolicyAssignmentQueryParams.java | 7 + ...tRetentionPolicyAssignmentByIdHeaders.java | 1 + ...entionPolicyAssignmentByIdQueryParams.java | 8 + .../GetRetentionPolicyAssignmentsHeaders.java | 1 + ...RetentionPolicyAssignmentsQueryParams.java | 14 + .../RetentionPolicyAssignmentsManager.java | 108 ++++++ .../search/SearchByMetadataQueryHeaders.java | 1 + .../search/SearchForContentHeaders.java | 1 + .../search/SearchForContentQueryParams.java | 209 +++++++++++ .../sdkgen/managers/search/SearchManager.java | 42 +++ .../SessionTerminationManager.java | 26 ++ .../TerminateGroupsSessionsHeaders.java | 1 + .../TerminateGroupsSessionsRequestBody.java | 1 + .../TerminateUsersSessionsHeaders.java | 1 + .../TerminateUsersSessionsRequestBody.java | 2 + .../FindAppItemForSharedLinkHeaders.java | 6 + .../SharedLinksAppItemsManager.java | 7 + .../AddShareLinkToFileHeaders.java | 1 + .../AddShareLinkToFileQueryParams.java | 1 + .../AddShareLinkToFileRequestBody.java | 4 + ...eLinkToFileRequestBodySharedLinkField.java | 28 ++ ...RequestBodySharedLinkPermissionsField.java | 12 + .../FindFileForSharedLinkHeaders.java | 14 + .../FindFileForSharedLinkQueryParams.java | 8 + .../GetSharedLinkForFileHeaders.java | 1 + .../GetSharedLinkForFileQueryParams.java | 1 + .../RemoveSharedLinkFromFileHeaders.java | 1 + .../RemoveSharedLinkFromFileQueryParams.java | 1 + .../RemoveSharedLinkFromFileRequestBody.java | 1 + .../SharedLinksFilesManager.java | 168 +++++++++ .../UpdateSharedLinkOnFileHeaders.java | 1 + .../UpdateSharedLinkOnFileQueryParams.java | 1 + .../UpdateSharedLinkOnFileRequestBody.java | 1 + ...dLinkOnFileRequestBodySharedLinkField.java | 28 ++ ...RequestBodySharedLinkPermissionsField.java | 12 + .../AddShareLinkToFolderHeaders.java | 1 + .../AddShareLinkToFolderQueryParams.java | 1 + .../AddShareLinkToFolderRequestBody.java | 5 + ...inkToFolderRequestBodySharedLinkField.java | 28 ++ ...RequestBodySharedLinkPermissionsField.java | 9 + .../FindFolderForSharedLinkHeaders.java | 14 + .../FindFolderForSharedLinkQueryParams.java | 8 + .../GetSharedLinkForFolderHeaders.java | 1 + .../GetSharedLinkForFolderQueryParams.java | 1 + .../RemoveSharedLinkFromFolderHeaders.java | 1 + ...RemoveSharedLinkFromFolderQueryParams.java | 1 + ...RemoveSharedLinkFromFolderRequestBody.java | 1 + .../SharedLinksFoldersManager.java | 176 +++++++++ .../UpdateSharedLinkOnFolderHeaders.java | 1 + .../UpdateSharedLinkOnFolderQueryParams.java | 1 + .../UpdateSharedLinkOnFolderRequestBody.java | 1 + ...inkOnFolderRequestBodySharedLinkField.java | 28 ++ ...RequestBodySharedLinkPermissionsField.java | 9 + .../AddShareLinkToWebLinkHeaders.java | 1 + .../AddShareLinkToWebLinkQueryParams.java | 1 + .../AddShareLinkToWebLinkRequestBody.java | 5 + ...nkToWebLinkRequestBodySharedLinkField.java | 28 ++ ...RequestBodySharedLinkPermissionsField.java | 9 + .../FindWebLinkForSharedLinkHeaders.java | 14 + .../FindWebLinkForSharedLinkQueryParams.java | 8 + .../GetSharedLinkForWebLinkHeaders.java | 1 + .../GetSharedLinkForWebLinkQueryParams.java | 1 + .../RemoveSharedLinkFromWebLinkHeaders.java | 1 + ...emoveSharedLinkFromWebLinkQueryParams.java | 1 + ...emoveSharedLinkFromWebLinkRequestBody.java | 1 + .../SharedLinksWebLinksManager.java | 120 +++++++ .../UpdateSharedLinkOnWebLinkHeaders.java | 1 + .../UpdateSharedLinkOnWebLinkQueryParams.java | 1 + .../UpdateSharedLinkOnWebLinkRequestBody.java | 1 + ...nkOnWebLinkRequestBodySharedLinkField.java | 28 ++ ...RequestBodySharedLinkPermissionsField.java | 9 + ...ShieldInformationBarrierReportHeaders.java | 1 + ...ldInformationBarrierReportByIdHeaders.java | 1 + ...hieldInformationBarrierReportsHeaders.java | 1 + ...dInformationBarrierReportsQueryParams.java | 8 + ...hieldInformationBarrierReportsManager.java | 35 ++ ...CreateShieldInformationBarrierHeaders.java | 1 + ...teShieldInformationBarrierRequestBody.java | 1 + ...etShieldInformationBarrierByIdHeaders.java | 1 + .../GetShieldInformationBarriersHeaders.java | 1 + ...tShieldInformationBarriersQueryParams.java | 5 + .../ShieldInformationBarriersManager.java | 52 +++ ...ShieldInformationBarrierStatusHeaders.java | 1 + ...ldInformationBarrierStatusRequestBody.java | 2 + ...nformationBarrierSegmentMemberHeaders.java | 1 + ...mationBarrierSegmentMemberRequestBody.java | 3 + ...yShieldInformationBarrierSegmentField.java | 2 + ...mationBarrierSegmentMemberByIdHeaders.java | 1 + ...mationBarrierSegmentMemberByIdHeaders.java | 1 + ...formationBarrierSegmentMembersHeaders.java | 1 + ...ationBarrierSegmentMembersQueryParams.java | 8 + ...formationBarrierSegmentMembersManager.java | 48 +++ ...ationBarrierSegmentRestrictionHeaders.java | 1 + ...nBarrierSegmentRestrictionRequestBody.java | 3 + ...tionRequestBodyRestrictedSegmentField.java | 2 + ...yShieldInformationBarrierSegmentField.java | 2 + ...nBarrierSegmentRestrictionByIdHeaders.java | 1 + ...nBarrierSegmentRestrictionByIdHeaders.java | 1 + ...tionBarrierSegmentRestrictionsHeaders.java | 1 + ...BarrierSegmentRestrictionsQueryParams.java | 8 + ...tionBarrierSegmentRestrictionsManager.java | 48 +++ ...hieldInformationBarrierSegmentHeaders.java | 1 + ...dInformationBarrierSegmentRequestBody.java | 2 + ...dInformationBarrierSegmentByIdHeaders.java | 1 + ...dInformationBarrierSegmentByIdHeaders.java | 1 + ...ieldInformationBarrierSegmentsHeaders.java | 1 + ...InformationBarrierSegmentsQueryParams.java | 8 + ...ieldInformationBarrierSegmentsManager.java | 78 ++++ ...dInformationBarrierSegmentByIdHeaders.java | 1 + ...ormationBarrierSegmentByIdRequestBody.java | 2 + .../CreateShieldListV2025R0Headers.java | 2 + .../DeleteShieldListByIdV2025R0Headers.java | 2 + .../GetShieldListByIdV2025R0Headers.java | 2 + .../GetShieldListsV2025R0Headers.java | 2 + .../shieldlists/ShieldListsManager.java | 64 ++++ .../UpdateShieldListByIdV2025R0Headers.java | 2 + .../CancelSignRequestHeaders.java | 1 + .../CreateSignRequestHeaders.java | 1 + .../GetSignRequestByIdHeaders.java | 1 + .../signrequests/GetSignRequestsHeaders.java | 1 + .../GetSignRequestsQueryParams.java | 16 + .../ResendSignRequestHeaders.java | 1 + .../signrequests/SignRequestsManager.java | 69 ++++ .../GetSignTemplateByIdHeaders.java | 1 + .../GetSignTemplatesHeaders.java | 1 + .../GetSignTemplatesQueryParams.java | 7 + .../signtemplates/SignTemplatesManager.java | 30 ++ .../CreateBoxSkillCardsOnFileHeaders.java | 1 + .../CreateBoxSkillCardsOnFileRequestBody.java | 1 + .../DeleteBoxSkillCardsFromFileHeaders.java | 1 + .../skills/GetBoxSkillCardsOnFileHeaders.java | 1 + .../sdkgen/managers/skills/SkillsManager.java | 87 +++++ .../UpdateAllSkillCardsOnFileHeaders.java | 1 + .../UpdateAllSkillCardsOnFileRequestBody.java | 13 + ...lSkillCardsOnFileRequestBodyFileField.java | 2 + ...ardsOnFileRequestBodyFileVersionField.java | 2 + ...llCardsOnFileRequestBodyMetadataField.java | 1 + ...SkillCardsOnFileRequestBodyUsageField.java | 2 + .../UpdateBoxSkillCardsOnFileHeaders.java | 1 + .../UpdateBoxSkillCardsOnFileRequestBody.java | 5 + .../GetStoragePoliciesHeaders.java | 1 + .../GetStoragePoliciesQueryParams.java | 15 + .../GetStoragePolicyByIdHeaders.java | 1 + .../StoragePoliciesManager.java | 28 ++ .../CreateStoragePolicyAssignmentHeaders.java | 1 + ...ateStoragePolicyAssignmentRequestBody.java | 2 + ...yAssignmentRequestBodyAssignedToField.java | 2 + ...signmentRequestBodyStoragePolicyField.java | 2 + ...eteStoragePolicyAssignmentByIdHeaders.java | 1 + ...GetStoragePolicyAssignmentByIdHeaders.java | 1 + .../GetStoragePolicyAssignmentsHeaders.java | 1 + ...etStoragePolicyAssignmentsQueryParams.java | 8 + .../StoragePolicyAssignmentsManager.java | 69 ++++ ...ateStoragePolicyAssignmentByIdHeaders.java | 1 + ...toragePolicyAssignmentByIdRequestBody.java | 1 + ...mentByIdRequestBodyStoragePolicyField.java | 2 + .../CreateTaskAssignmentHeaders.java | 1 + .../CreateTaskAssignmentRequestBody.java | 2 + ...askAssignmentRequestBodyAssignToField.java | 9 + ...ateTaskAssignmentRequestBodyTaskField.java | 2 + .../DeleteTaskAssignmentByIdHeaders.java | 1 + .../GetTaskAssignmentByIdHeaders.java | 1 + .../GetTaskAssignmentsHeaders.java | 1 + .../TaskAssignmentsManager.java | 76 ++++ .../UpdateTaskAssignmentByIdHeaders.java | 1 + .../UpdateTaskAssignmentByIdRequestBody.java | 7 + .../managers/tasks/CreateTaskHeaders.java | 1 + .../managers/tasks/CreateTaskRequestBody.java | 16 + .../tasks/CreateTaskRequestBodyItemField.java | 2 + .../managers/tasks/DeleteTaskByIdHeaders.java | 1 + .../managers/tasks/GetFileTasksHeaders.java | 1 + .../managers/tasks/GetTaskByIdHeaders.java | 1 + .../sdkgen/managers/tasks/TasksManager.java | 80 +++++ .../managers/tasks/UpdateTaskByIdHeaders.java | 1 + .../tasks/UpdateTaskByIdRequestBody.java | 15 + .../CreateTermsOfServiceHeaders.java | 1 + .../CreateTermsOfServiceRequestBody.java | 7 + .../GetTermsOfServiceByIdHeaders.java | 1 + .../GetTermsOfServiceHeaders.java | 1 + .../GetTermsOfServiceQueryParams.java | 1 + .../TermsOfServicesManager.java | 52 +++ .../UpdateTermsOfServiceByIdHeaders.java | 1 + .../UpdateTermsOfServiceByIdRequestBody.java | 6 + ...ateTermsOfServiceStatusForUserHeaders.java | 1 + ...ermsOfServiceStatusForUserRequestBody.java | 3 + ...rviceStatusForUserRequestBodyTosField.java | 2 + ...viceStatusForUserRequestBodyUserField.java | 2 + .../GetTermsOfServiceUserStatusesHeaders.java | 1 + ...TermsOfServiceUserStatusesQueryParams.java | 2 + .../TermsOfServiceUserStatusesManager.java | 37 ++ ...ermsOfServiceStatusForUserByIdHeaders.java | 1 + ...OfServiceStatusForUserByIdRequestBody.java | 1 + .../managers/transfer/TransferManager.java | 144 ++++++++ .../transfer/TransferOwnedFolderHeaders.java | 1 + .../TransferOwnedFolderQueryParams.java | 9 + .../TransferOwnedFolderRequestBody.java | 1 + ...ferOwnedFolderRequestBodyOwnedByField.java | 1 + .../DeleteTrashedFileByIdHeaders.java | 1 + .../GetTrashedFileByIdHeaders.java | 1 + .../GetTrashedFileByIdQueryParams.java | 8 + .../RestoreFileFromTrashHeaders.java | 1 + .../RestoreFileFromTrashQueryParams.java | 8 + .../RestoreFileFromTrashRequestBody.java | 1 + ...reFileFromTrashRequestBodyParentField.java | 1 + .../trashedfiles/TrashedFilesManager.java | 181 ++++++++++ .../DeleteTrashedFolderByIdHeaders.java | 1 + .../GetTrashedFolderByIdHeaders.java | 1 + .../GetTrashedFolderByIdQueryParams.java | 8 + .../RestoreFolderFromTrashHeaders.java | 1 + .../RestoreFolderFromTrashQueryParams.java | 8 + .../RestoreFolderFromTrashRequestBody.java | 1 + ...FolderFromTrashRequestBodyParentField.java | 1 + .../trashedfolders/TrashedFoldersManager.java | 243 +++++++++++++ .../trasheditems/GetTrashedItemsHeaders.java | 1 + .../GetTrashedItemsQueryParams.java | 39 ++ .../trasheditems/TrashedItemsManager.java | 43 +++ .../DeleteTrashedWebLinkByIdHeaders.java | 1 + .../GetTrashedWebLinkByIdHeaders.java | 1 + .../GetTrashedWebLinkByIdQueryParams.java | 8 + .../RestoreWeblinkFromTrashHeaders.java | 1 + .../RestoreWeblinkFromTrashQueryParams.java | 8 + .../RestoreWeblinkFromTrashRequestBody.java | 1 + ...eblinkFromTrashRequestBodyParentField.java | 1 + .../TrashedWebLinksManager.java | 111 ++++++ .../PreflightFileUploadCheckHeaders.java | 1 + .../PreflightFileUploadCheckRequestBody.java | 2 + ...FileUploadCheckRequestBodyParentField.java | 1 + .../managers/uploads/UploadFileHeaders.java | 5 + .../uploads/UploadFileQueryParams.java | 8 + .../uploads/UploadFileRequestBody.java | 23 ++ .../UploadFileRequestBodyAttributesField.java | 18 + ...dFileRequestBodyAttributesParentField.java | 1 + .../uploads/UploadFileVersionHeaders.java | 11 + .../uploads/UploadFileVersionQueryParams.java | 8 + .../uploads/UploadFileVersionRequestBody.java | 23 ++ ...FileVersionRequestBodyAttributesField.java | 9 + .../UploadWithPreflightCheckHeaders.java | 5 + .../UploadWithPreflightCheckQueryParams.java | 8 + .../UploadWithPreflightCheckRequestBody.java | 11 + ...flightCheckRequestBodyAttributesField.java | 19 + ...CheckRequestBodyAttributesParentField.java | 1 + .../managers/uploads/UploadsManager.java | 143 ++++++++ .../CreateCollaborationHeaders.java | 1 + .../CreateCollaborationQueryParams.java | 9 + .../CreateCollaborationRequestBody.java | 30 ++ ...aborationRequestBodyAccessibleByField.java | 11 + ...eateCollaborationRequestBodyItemField.java | 2 + .../DeleteCollaborationByIdHeaders.java | 1 + .../GetCollaborationByIdHeaders.java | 1 + .../GetCollaborationByIdQueryParams.java | 8 + .../UpdateCollaborationByIdHeaders.java | 1 + .../UpdateCollaborationByIdRequestBody.java | 30 ++ .../UserCollaborationsManager.java | 110 ++++++ .../managers/users/CreateUserHeaders.java | 1 + .../managers/users/CreateUserQueryParams.java | 8 + .../managers/users/CreateUserRequestBody.java | 32 ++ .../managers/users/DeleteUserByIdHeaders.java | 1 + .../users/DeleteUserByIdQueryParams.java | 2 + .../managers/users/GetUserByIdHeaders.java | 1 + .../users/GetUserByIdQueryParams.java | 8 + .../managers/users/GetUserMeHeaders.java | 1 + .../managers/users/GetUserMeQueryParams.java | 8 + .../managers/users/GetUsersHeaders.java | 1 + .../managers/users/GetUsersQueryParams.java | 48 +++ .../managers/users/UpdateUserByIdHeaders.java | 1 + .../users/UpdateUserByIdQueryParams.java | 8 + .../users/UpdateUserByIdRequestBody.java | 45 +++ ...ByIdRequestBodyNotificationEmailField.java | 1 + .../sdkgen/managers/users/UsersManager.java | 254 +++++++++++++ .../webhooks/CreateWebhookHeaders.java | 1 + .../webhooks/CreateWebhookRequestBody.java | 3 + .../CreateWebhookRequestBodyTargetField.java | 2 + .../webhooks/DeleteWebhookByIdHeaders.java | 1 + .../webhooks/GetWebhookByIdHeaders.java | 1 + .../managers/webhooks/GetWebhooksHeaders.java | 1 + .../webhooks/GetWebhooksQueryParams.java | 7 + .../webhooks/UpdateWebhookByIdHeaders.java | 1 + .../UpdateWebhookByIdRequestBody.java | 3 + ...dateWebhookByIdRequestBodyTargetField.java | 2 + .../managers/webhooks/WebhooksManager.java | 124 +++++++ .../weblinks/CreateWebLinkHeaders.java | 1 + .../weblinks/CreateWebLinkRequestBody.java | 4 + .../CreateWebLinkRequestBodyParentField.java | 1 + .../weblinks/DeleteWebLinkByIdHeaders.java | 1 + .../weblinks/GetWebLinkByIdHeaders.java | 12 + .../weblinks/UpdateWebLinkByIdHeaders.java | 1 + .../UpdateWebLinkByIdRequestBody.java | 4 + ...dateWebLinkByIdRequestBodyParentField.java | 5 + ...WebLinkByIdRequestBodySharedLinkField.java | 28 ++ .../managers/weblinks/WebLinksManager.java | 57 +++ .../workflows/GetWorkflowsHeaders.java | 1 + .../workflows/GetWorkflowsQueryParams.java | 17 + .../workflows/StartWorkflowHeaders.java | 1 + .../workflows/StartWorkflowRequestBody.java | 8 + .../StartWorkflowRequestBodyFilesField.java | 2 + .../StartWorkflowRequestBodyFlowField.java | 2 + .../StartWorkflowRequestBodyFolderField.java | 2 + .../managers/workflows/WorkflowsManager.java | 38 ++ .../CreateZipDownloadHeaders.java | 1 + .../zipdownloads/DownloadZipHeaders.java | 1 + .../GetZipDownloadContentHeaders.java | 1 + .../GetZipDownloadStatusHeaders.java | 1 + .../zipdownloads/ZipDownloadsManager.java | 108 ++++++ .../networking/fetchoptions/FetchOptions.java | 15 + .../fetchoptions/MultipartItem.java | 6 + .../fetchresponse/FetchResponse.java | 6 + .../schemas/accesstoken/AccessToken.java | 16 + .../sdkgen/schemas/aiagentask/AiAgentAsk.java | 2 + .../AiAgentBasicGenTool.java | 5 + .../AiAgentBasicTextTool.java | 7 + .../AiAgentBasicTextToolBase.java | 6 + .../AiAgentBasicTextToolTextGen.java | 12 + .../aiagentextract/AiAgentExtract.java | 2 + .../AiAgentExtractStructured.java | 2 + .../schemas/aiagentinfo/AiAgentInfo.java | 3 + .../aiagentinfo/AiAgentInfoModelsField.java | 3 + .../AiAgentLongTextTool.java | 1 + .../AiAgentLongTextToolEmbeddingsField.java | 1 + ...ntLongTextToolEmbeddingsStrategyField.java | 2 + .../AiAgentLongTextToolTextGen.java | 1 + ...entLongTextToolTextGenEmbeddingsField.java | 1 + ...extToolTextGenEmbeddingsStrategyField.java | 2 + .../aiagentreference/AiAgentReference.java | 7 + .../AiAgentSpreadsheetTool.java | 6 + .../aiagenttextgen/AiAgentTextGen.java | 2 + .../com/box/sdkgen/schemas/aiask/AiAsk.java | 21 ++ .../sdkgen/schemas/aicitation/AiCitation.java | 5 + .../aidialoguehistory/AiDialogueHistory.java | 4 + .../sdkgen/schemas/aiextract/AiExtract.java | 6 + .../aiextractresponse/AiExtractResponse.java | 4 + .../AiExtractStructured.java | 10 + .../AiExtractStructuredFieldsField.java | 12 + ...AiExtractStructuredFieldsOptionsField.java | 1 + ...xtractStructuredMetadataTemplateField.java | 8 + .../AiExtractStructuredResponse.java | 3 + .../sdkgen/schemas/aiitemask/AiItemAsk.java | 4 + .../sdkgen/schemas/aiitembase/AiItemBase.java | 4 + .../AiLlmEndpointParamsAws.java | 13 + .../AiLlmEndpointParamsGoogle.java | 16 + .../AiLlmEndpointParamsIbm.java | 19 + .../AiLlmEndpointParamsOpenAi.java | 23 ++ .../AiMultipleAgentResponse.java | 8 + .../sdkgen/schemas/airesponse/AiResponse.java | 4 + .../airesponsefull/AiResponseFull.java | 2 + .../AiSingleAgentResponse.java | 15 + .../AiSingleAgentResponseFull.java | 1 + .../aistudioagentask/AiStudioAgentAsk.java | 9 + .../AiStudioAgentAskResponse.java | 9 + .../AiStudioAgentBasicGenTool.java | 2 + .../AiStudioAgentBasicGenToolResponse.java | 2 + .../AiStudioAgentBasicTextTool.java | 2 + .../AiStudioAgentBasicTextToolResponse.java | 2 + .../AiStudioAgentExtract.java | 5 + .../AiStudioAgentExtractResponse.java | 5 + .../AiStudioAgentLongTextTool.java | 2 + .../AiStudioAgentLongTextToolResponse.java | 2 + .../AiStudioAgentSpreadsheetTool.java | 1 + .../AiStudioAgentSpreadsheetToolResponse.java | 2 + .../AiStudioAgentTextGen.java | 9 + .../AiStudioAgentTextGenResponse.java | 9 + .../sdkgen/schemas/aitextgen/AiTextGen.java | 16 + .../aitextgen/AiTextGenItemsField.java | 3 + .../box/sdkgen/schemas/appitem/AppItem.java | 7 + .../AppItemAssociation.java | 6 + .../AppItemAssociations.java | 7 + .../AppItemEventSource.java | 4 + .../classification/Classification.java | 31 ++ .../ClassificationTemplate.java | 16 + .../ClassificationTemplateFieldsField.java | 6 + ...ssificationTemplateFieldsOptionsField.java | 3 + ...ptionsStaticConfigClassificationField.java | 10 + ...emplateFieldsOptionsStaticConfigField.java | 7 + .../schemas/clienterror/ClientError.java | 11 + .../schemas/collaboration/Collaboration.java | 25 ++ ...sStatusStrongPasswordRequirementField.java | 8 + ...sStatusTermsOfServiceRequirementField.java | 4 + ...oFactorAuthenticationRequirementField.java | 8 + .../CollaborationAllowlistEntries.java | 8 + .../CollaborationAllowlistEntry.java | 9 + ...borationAllowlistEntryEnterpriseField.java | 3 + .../CollaborationAllowlistExemptTarget.java | 8 + ...nAllowlistExemptTargetEnterpriseField.java | 3 + .../CollaborationAllowlistExemptTargets.java | 14 + .../collaborations/Collaborations.java | 8 + .../CollaborationsOffsetPaginated.java | 20 ++ .../CollaboratorVariable.java | 7 + ...ollaboratorVariableVariableValueField.java | 2 + .../sdkgen/schemas/collection/Collection.java | 15 + .../schemas/collections/Collections.java | 26 ++ .../collections/CollectionsOrderField.java | 2 + .../box/sdkgen/schemas/comment/Comment.java | 5 + .../schemas/comment/CommentItemField.java | 2 + .../schemas/commentbase/CommentBase.java | 3 + .../schemas/commentfull/CommentFull.java | 8 + .../box/sdkgen/schemas/comments/Comments.java | 26 ++ .../schemas/comments/CommentsOrderField.java | 2 + .../CompletionRuleVariable.java | 6 + .../schemas/conflicterror/ConflictError.java | 1 + .../ConflictErrorContextInfoField.java | 1 + .../schemas/createaiagent/CreateAiAgent.java | 14 + .../schemas/devicepinner/DevicePinner.java | 4 + .../schemas/devicepinners/DevicePinners.java | 8 + .../DevicePinnersOrderField.java | 2 + .../sdkgen/schemas/emailalias/EmailAlias.java | 5 + .../schemas/emailaliases/EmailAliases.java | 3 + .../enterprisebase/EnterpriseBase.java | 3 + .../com/box/sdkgen/schemas/event/Event.java | 15 + .../com/box/sdkgen/schemas/events/Events.java | 4 + .../schemas/eventsource/EventSource.java | 8 + .../EventSourceClassificationField.java | 1 + .../com/box/sdkgen/schemas/file/File.java | 27 ++ .../schemas/file/FilePathCollectionField.java | 2 + .../schemas/file/FileSharedLinkField.java | 52 +++ .../file/FileSharedLinkPermissionsField.java | 19 + .../box/sdkgen/schemas/filebase/FileBase.java | 16 + .../schemas/fileconflict/FileConflict.java | 1 + .../box/sdkgen/schemas/filefull/FileFull.java | 26 ++ .../filefull/FileFullClassificationField.java | 6 + .../FileFullExpiringEmbedLinkField.java | 11 + .../schemas/filefull/FileFullLockField.java | 10 + .../filefull/FileFullPermissionsField.java | 15 + ...ullRepresentationsEntriesContentField.java | 20 ++ .../FileFullRepresentationsEntriesField.java | 5 + ...leFullRepresentationsEntriesInfoField.java | 4 + ...RepresentationsEntriesPropertiesField.java | 3 + ...FullRepresentationsEntriesStatusField.java | 8 + .../FileFullRepresentationsField.java | 1 + .../filefull/FileFullWatermarkInfoField.java | 1 + .../box/sdkgen/schemas/filemini/FileMini.java | 6 + .../schemas/filerequest/FileRequest.java | 60 ++++ .../FileRequestCopyRequest.java | 2 + .../FileRequestCopyRequestFolderField.java | 2 + .../FileRequestUpdateRequest.java | 45 +++ .../com/box/sdkgen/schemas/files/Files.java | 3 + .../schemas/filesonhold/FilesOnHold.java | 8 + .../FilesUnderRetention.java | 8 + .../schemas/fileversion/FileVersion.java | 8 + .../fileversionbase/FileVersionBase.java | 6 + .../fileversionfull/FileVersionFull.java | 5 + .../FileVersionLegalHold.java | 5 + .../FileVersionLegalHolds.java | 8 + .../fileversionmini/FileVersionMini.java | 2 + .../FileVersionRetention.java | 15 + .../FileVersionRetentions.java | 15 + .../schemas/fileversions/FileVersions.java | 26 ++ .../fileversions/FileVersionsOrderField.java | 2 + .../com/box/sdkgen/schemas/folder/Folder.java | 39 ++ .../folder/FolderFolderUploadEmailField.java | 12 + .../folder/FolderPathCollectionField.java | 2 + .../schemas/folder/FolderSharedLinkField.java | 52 +++ .../FolderSharedLinkPermissionsField.java | 19 + .../sdkgen/schemas/folderbase/FolderBase.java | 17 + .../sdkgen/schemas/folderfull/FolderFull.java | 27 ++ .../FolderFullClassificationField.java | 6 + .../FolderFullPermissionsField.java | 10 + .../FolderFullWatermarkInfoField.java | 1 + .../sdkgen/schemas/folderlock/FolderLock.java | 12 + .../FolderLockLockedOperationsField.java | 2 + .../schemas/folderlocks/FolderLocks.java | 7 + .../sdkgen/schemas/foldermini/FolderMini.java | 2 + .../folderreference/FolderReference.java | 3 + .../com/box/sdkgen/schemas/group/Group.java | 3 + .../sdkgen/schemas/groupbase/GroupBase.java | 3 + .../sdkgen/schemas/groupfull/GroupFull.java | 35 ++ .../groupfull/GroupFullPermissionsField.java | 1 + .../groupmembership/GroupMembership.java | 6 + .../groupmemberships/GroupMemberships.java | 26 ++ .../GroupMembershipsOrderField.java | 2 + .../sdkgen/schemas/groupmini/GroupMini.java | 3 + .../com/box/sdkgen/schemas/groups/Groups.java | 26 ++ .../schemas/groups/GroupsOrderField.java | 2 + .../IntegrationMapping.java | 18 + .../IntegrationMappingBase.java | 6 + .../IntegrationMappingBoxItemSlack.java | 3 + .../IntegrationMappingPartnerItemSlack.java | 16 + .../IntegrationMappingPartnerItemTeams.java | 4 + ...nMappingPartnerItemTeamsCreateRequest.java | 5 + .../IntegrationMappings.java | 7 + .../IntegrationMappingSlackCreateRequest.java | 1 + .../IntegrationMappingSlackOptions.java | 6 + .../IntegrationMappingsTeams.java | 2 + .../IntegrationMappingTeams.java | 12 + .../IntegrationMappingTeamsCreateRequest.java | 1 + .../com/box/sdkgen/schemas/invite/Invite.java | 7 + .../schemas/invite/InviteInvitedToField.java | 3 + .../com/box/sdkgen/schemas/items/Items.java | 28 ++ .../sdkgen/schemas/items/ItemsOrderField.java | 2 + .../ItemsOffsetPaginated.java | 26 ++ .../ItemsOffsetPaginatedOrderField.java | 2 + .../keywordskillcard/KeywordSkillCard.java | 10 + .../KeywordSkillCardEntriesField.java | 1 + .../KeywordSkillCardInvocationField.java | 6 + .../KeywordSkillCardSkillCardTitleField.java | 2 + .../KeywordSkillCardSkillField.java | 2 + .../legalholdpolicies/LegalHoldPolicies.java | 8 + .../legalholdpolicy/LegalHoldPolicy.java | 26 ++ .../LegalHoldPolicyAssignmentCountsField.java | 4 + .../LegalHoldPolicyAssignment.java | 13 + .../LegalHoldPolicyAssignmentBase.java | 9 + .../LegalHoldPolicyAssignments.java | 8 + .../LegalHoldPolicyMini.java | 3 + .../box/sdkgen/schemas/metadata/Metadata.java | 1 + .../schemas/metadatabase/MetadataBase.java | 15 + .../MetadataCascadePolicies.java | 8 + .../MetadataCascadePolicy.java | 27 ++ ...dataCascadePolicyOwnerEnterpriseField.java | 2 + .../MetadataCascadePolicyParentField.java | 2 + .../schemas/metadataerror/MetadataError.java | 4 + .../MetadataFieldFilterDateRange.java | 12 + .../MetadataFieldFilterFloatRange.java | 12 + .../metadatafilter/MetadataFilter.java | 25 ++ .../schemas/metadatafull/MetadataFull.java | 11 + .../schemas/metadataquery/MetadataQuery.java | 54 +++ .../MetadataQueryOrderByField.java | 11 + .../MetadataQueryResults.java | 13 + .../sdkgen/schemas/metadatas/Metadatas.java | 3 + .../metadatatemplate/MetadataTemplate.java | 24 ++ .../MetadataTemplateFieldsField.java | 25 ++ .../MetadataTemplateFieldsOptionsField.java | 5 + .../metadatatemplates/MetadataTemplates.java | 8 + .../schemas/oauth2error/OAuth2Error.java | 3 + .../box/sdkgen/schemas/outcome/Outcome.java | 2 + .../postoauth2revoke/PostOAuth2Revoke.java | 4 + .../postoauth2token/PostOAuth2Token.java | 73 ++++ .../PostOAuth2TokenRefreshAccessToken.java | 8 + .../realtimeserver/RealtimeServer.java | 15 + .../realtimeservers/RealtimeServers.java | 3 + .../sdkgen/schemas/recentitem/RecentItem.java | 8 + .../schemas/recentitems/RecentItems.java | 8 + .../schemas/resourcescope/ResourceScope.java | 5 + .../retentionpolicies/RetentionPolicies.java | 7 + .../retentionpolicy/RetentionPolicy.java | 41 +++ .../RetentionPolicyAssignmentCountsField.java | 3 + .../RetentionPolicyAssignment.java | 20 ++ ...entionPolicyAssignmentAssignedToField.java | 5 + ...tionPolicyAssignmentFilterFieldsField.java | 2 + .../RetentionPolicyAssignments.java | 7 + .../RetentionPolicyBase.java | 3 + .../RetentionPolicyMini.java | 13 + .../schemas/rolevariable/RoleVariable.java | 3 + .../schemas/searchresults/SearchResults.java | 15 + .../SearchResultsWithSharedLinks.java | 24 ++ .../SearchResultWithSharedLink.java | 13 + .../SessionTerminationMessage.java | 2 + .../ShieldInformationBarrier.java | 10 + .../ShieldInformationBarrierBase.java | 3 + .../ShieldInformationBarrierReference.java | 1 + .../ShieldInformationBarrierReport.java | 4 + .../ShieldInformationBarrierReportBase.java | 3 + ...ShieldInformationBarrierReportDetails.java | 1 + ...ationBarrierReportDetailsDetailsField.java | 1 + .../ShieldInformationBarrierReports.java | 7 + .../ShieldInformationBarriers.java | 7 + .../ShieldInformationBarrierSegment.java | 7 + ...ShieldInformationBarrierSegmentMember.java | 4 + ...rShieldInformationBarrierSegmentField.java | 2 + ...ldInformationBarrierSegmentMemberBase.java | 3 + ...ldInformationBarrierSegmentMemberMini.java | 1 + ...hieldInformationBarrierSegmentMembers.java | 7 + ...dInformationBarrierSegmentRestriction.java | 6 + ...ormationBarrierSegmentRestrictionBase.java | 3 + ...ormationBarrierSegmentRestrictionMini.java | 3 + ...RestrictionMiniRestrictedSegmentField.java | 2 + ...iShieldInformationBarrierSegmentField.java | 2 + ...InformationBarrierSegmentRestrictions.java | 7 + .../ShieldInformationBarrierSegments.java | 7 + .../schemas/signrequest/SignRequest.java | 30 ++ .../SignRequestSignFilesField.java | 5 + .../signrequestbase/SignRequestBase.java | 49 +++ .../SignRequestCreateRequest.java | 18 + .../SignRequestCreateSigner.java | 52 +++ .../SignRequestPrefillTag.java | 8 + .../schemas/signrequests/SignRequests.java | 10 + .../signrequestsigner/SignRequestSigner.java | 9 + .../SignRequestSignerSignerDecisionField.java | 3 + .../SignRequestSignerInput.java | 5 + .../schemas/signtemplate/SignTemplate.java | 58 +++ .../SignTemplateAdditionalInfoField.java | 2 + ...gnTemplateAdditionalInfoRequiredField.java | 1 + .../SignTemplateCustomBrandingField.java | 4 + .../SignTemplateReadySignLinkField.java | 9 + .../schemas/signtemplates/SignTemplates.java | 8 + .../SkillCardsMetadata.java | 19 + .../statusskillcard/StatusSkillCard.java | 13 + .../StatusSkillCardInvocationField.java | 6 + .../StatusSkillCardSkillCardTitleField.java | 2 + .../StatusSkillCardSkillField.java | 2 + .../StatusSkillCardStatusField.java | 8 + .../storagepolicies/StoragePolicies.java | 8 + .../schemas/storagepolicy/StoragePolicy.java | 2 + .../StoragePolicyAssignment.java | 3 + ...toragePolicyAssignmentAssignedToField.java | 2 + .../StoragePolicyAssignments.java | 8 + .../storagepolicymini/StoragePolicyMini.java | 3 + .../com/box/sdkgen/schemas/task/Task.java | 18 + .../taskassignment/TaskAssignment.java | 17 + .../taskassignments/TaskAssignments.java | 3 + .../com/box/sdkgen/schemas/tasks/Tasks.java | 6 + .../templatesigner/TemplateSigner.java | 33 ++ .../TemplateSignerInput.java | 15 + .../TemplateSignerInputCoordinatesField.java | 2 + .../TemplateSignerInputDimensionsField.java | 2 + .../termsofservice/TermsOfService.java | 9 + .../TermsOfServiceEnterpriseField.java | 3 + .../TermsOfServiceBase.java | 3 + .../termsofservices/TermsOfServices.java | 3 + .../TermsOfServiceUserStatus.java | 6 + .../TermsOfServiceUserStatuses.java | 3 + .../timelineskillcard/TimelineSkillCard.java | 11 + .../TimelineSkillCardEntriesAppearsField.java | 2 + .../TimelineSkillCardEntriesField.java | 12 + .../TimelineSkillCardInvocationField.java | 6 + .../TimelineSkillCardSkillCardTitleField.java | 2 + .../TimelineSkillCardSkillField.java | 2 + .../schemas/trackingcode/TrackingCode.java | 8 + .../TranscriptSkillCard.java | 17 + ...ranscriptSkillCardEntriesAppearsField.java | 1 + .../TranscriptSkillCardEntriesField.java | 8 + .../TranscriptSkillCardInvocationField.java | 6 + ...ranscriptSkillCardSkillCardTitleField.java | 2 + .../TranscriptSkillCardSkillField.java | 2 + .../sdkgen/schemas/trashfile/TrashFile.java | 45 +++ .../TrashFilePathCollectionEntriesField.java | 5 + .../TrashFilePathCollectionField.java | 2 + .../trashfilerestored/TrashFileRestored.java | 48 +++ .../TrashFileRestoredPathCollectionField.java | 2 + .../schemas/trashfolder/TrashFolder.java | 46 +++ ...TrashFolderPathCollectionEntriesField.java | 5 + .../TrashFolderPathCollectionField.java | 2 + .../TrashFolderRestored.java | 49 +++ ...rashFolderRestoredPathCollectionField.java | 2 + .../schemas/trashweblink/TrashWebLink.java | 19 + ...rashWebLinkPathCollectionEntriesField.java | 5 + .../TrashWebLinkPathCollectionField.java | 2 + .../TrashWebLinkRestored.java | 19 + ...ashWebLinkRestoredPathCollectionField.java | 2 + .../schemas/uploadedpart/UploadedPart.java | 1 + .../sdkgen/schemas/uploadpart/UploadPart.java | 2 + .../uploadpartmini/UploadPartMini.java | 7 + .../schemas/uploadparts/UploadParts.java | 26 ++ .../uploadparts/UploadPartsOrderField.java | 2 + .../schemas/uploadsession/UploadSession.java | 19 + .../UploadSessionSessionEndpointsField.java | 6 + .../sdkgen/schemas/uploadurl/UploadUrl.java | 3 + .../com/box/sdkgen/schemas/user/User.java | 21 ++ .../user/UserNotificationEmailField.java | 2 + .../sdkgen/schemas/useravatar/UserAvatar.java | 2 + .../useravatar/UserAvatarPicUrlsField.java | 3 + .../box/sdkgen/schemas/userbase/UserBase.java | 3 + .../UserCollaborations.java | 10 + .../box/sdkgen/schemas/userfull/UserFull.java | 22 ++ .../userfull/UserFullEnterpriseField.java | 3 + .../UserIntegrationMappings.java | 6 + .../box/sdkgen/schemas/usermini/UserMini.java | 3 + .../com/box/sdkgen/schemas/users/Users.java | 28 ++ .../sdkgen/schemas/users/UsersOrderField.java | 2 + .../archivesv2025r0/ArchivesV2025R0.java | 7 + .../archivev2025r0/ArchiveV2025R0.java | 15 + .../ClientErrorV2025R0.java | 11 + .../DocGenBatchBaseV2025R0.java | 6 + .../DocGenBatchCreateRequestV2025R0.java | 5 + ...eRequestV2025R0DestinationFolderField.java | 2 + .../DocGenDocumentGenerationDataV2025R0.java | 2 + .../DocGenJobBaseV2025R0.java | 3 + .../DocGenJobFullV2025R0.java | 3 + .../DocGenJobsFullV2025R0.java | 8 + .../docgenjobsv2025r0/DocGenJobsV2025R0.java | 8 + .../docgenjobv2025r0/DocGenJobV2025R0.java | 3 + .../DocGenTagsProcessingMessageV2025R0.java | 2 + .../docgentagsv2025r0/DocGenTagsV2025R0.java | 8 + .../docgentagv2025r0/DocGenTagV2025R0.java | 4 + .../DocGenTemplateBaseV2025R0.java | 1 + .../DocGenTemplateCreateRequestV2025R0.java | 1 + .../DocGenTemplatesV2025R0.java | 8 + .../DocGenTemplateV2025R0.java | 2 + .../EnterpriseReferenceV2025R0.java | 3 + .../ExternalUserDeletionResultV2025R0.java | 7 + ...nalUsersSubmitDeleteJobRequestV2025R0.java | 2 + ...alUsersSubmitDeleteJobResponseV2025R0.java | 2 + .../FileReferenceV2025R0.java | 3 + .../FileVersionBaseV2025R0.java | 6 + .../FolderReferenceV2025R0.java | 3 + .../groupbasev2025r0/GroupBaseV2025R0.java | 3 + .../groupminiv2025r0/GroupMiniV2025R0.java | 3 + .../hubbasev2025r0/HubBaseV2025R0.java | 9 + .../HubCollaborationCreateRequestV2025R0.java | 7 + ...CreateRequestV2025R0AccessibleByField.java | 11 + ...aborationCreateRequestV2025R0HubField.java | 2 + .../HubCollaborationsV2025R0.java | 7 + .../HubCollaborationUpdateRequestV2025R0.java | 5 + .../HubCollaborationUserV2025R0.java | 9 + .../HubCollaborationV2025R0.java | 14 + ...sStatusStrongPasswordRequirementField.java | 8 + ...sStatusTermsOfServiceRequirementField.java | 4 + ...oFactorAuthenticationRequirementField.java | 8 + .../HubCopyRequestV2025R0.java | 3 + .../HubCreateRequestV2025R0.java | 3 + .../HubItemOperationResultV2025R0.java | 4 + .../HubItemOperationV2025R0.java | 2 + .../HubItemsManageRequestV2025R0.java | 2 + .../HubItemsManageResponseV2025R0.java | 2 + .../hubitemsv2025r0/HubItemsV2025R0.java | 7 + .../hubitemv2025r0/HubItemV2025R0.java | 4 + .../v2025r0/hubsv2025r0/HubsV2025R0.java | 7 + .../HubUpdateRequestV2025R0.java | 7 + .../v2025r0/hubv2025r0/HubV2025R0.java | 15 + .../ShieldListContentCountryV2025R0.java | 3 + .../ShieldListContentDomainV2025R0.java | 3 + .../ShieldListContentEmailV2025R0.java | 3 + .../ShieldListContentIntegrationV2025R0.java | 3 + ...ntIntegrationV2025R0IntegrationsField.java | 1 + .../ShieldListContentIpV2025R0.java | 3 + .../ShieldListMiniV2025R0.java | 4 + .../ShieldListMiniV2025R0ContentField.java | 1 + .../ShieldListsCreateV2025R0.java | 3 + .../ShieldListsUpdateV2025R0.java | 3 + .../ShieldListsV2025R0.java | 2 + .../shieldlistv2025r0/ShieldListV2025R0.java | 7 + .../TermsOfServiceBaseV2025R0.java | 3 + .../userbasev2025r0/UserBaseV2025R0.java | 3 + .../userminiv2025r0/UserMiniV2025R0.java | 3 + .../UserReferenceV2025R0.java | 3 + .../WeblinkReferenceV2025R0.java | 3 + .../sdkgen/schemas/watermark/Watermark.java | 4 + .../watermark/WatermarkWatermarkField.java | 2 + .../box/sdkgen/schemas/webhook/Webhook.java | 4 + .../schemas/webhookmini/WebhookMini.java | 4 + .../webhookmini/WebhookMiniTargetField.java | 2 + .../box/sdkgen/schemas/webhooks/Webhooks.java | 8 + .../box/sdkgen/schemas/weblink/WebLink.java | 16 + .../weblink/WebLinkPathCollectionField.java | 2 + .../weblink/WebLinkSharedLinkField.java | 52 +++ .../WebLinkSharedLinkPermissionsField.java | 19 + .../schemas/weblinkbase/WebLinkBase.java | 10 + .../schemas/weblinkmini/WebLinkMini.java | 9 + .../box/sdkgen/schemas/workflow/Workflow.java | 7 + .../schemas/workflow/WorkflowFlowsField.java | 3 + .../workflow/WorkflowFlowsOutcomesField.java | 7 + .../WorkflowFlowsOutcomesIfRejectedField.java | 3 + .../workflow/WorkflowFlowsTriggerField.java | 3 + .../WorkflowFlowsTriggerScopeField.java | 3 + .../WorkflowFlowsTriggerScopeObjectField.java | 2 + .../schemas/workflowmini/WorkflowMini.java | 11 + .../sdkgen/schemas/workflows/Workflows.java | 13 + .../schemas/zipdownload/ZipDownload.java | 38 ++ .../ZipDownloadNameConflictsField.java | 4 + .../ZipDownloadRequest.java | 6 + .../ZipDownloadRequestItemsField.java | 5 + .../zipdownloadstatus/ZipDownloadStatus.java | 14 + 1168 files changed, 16021 insertions(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index 7c28eee71..2400f1fc8 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "0540f75", "specHash": "1ed059a", "version": "10.0.0" } +{ "engineHash": "47a3d7f", "specHash": "1ed059a", "version": "10.0.0" } \ No newline at end of file diff --git a/src/main/java/com/box/sdkgen/box/ccgauth/BoxCCGAuth.java b/src/main/java/com/box/sdkgen/box/ccgauth/BoxCCGAuth.java index 76aa22bc3..71f6ca442 100644 --- a/src/main/java/com/box/sdkgen/box/ccgauth/BoxCCGAuth.java +++ b/src/main/java/com/box/sdkgen/box/ccgauth/BoxCCGAuth.java @@ -17,12 +17,22 @@ public class BoxCCGAuth implements Authentication { + /** Configuration object of Client Credentials Grant auth. */ public final CCGConfig config; + /** + * An object responsible for storing token. If no custom implementation provided, the token will + * be stored in memory. + */ public final TokenStorage tokenStorage; + /** + * The ID of the user or enterprise to authenticate as. If not provided, defaults to the + * enterprise ID if set, otherwise defaults to the user ID. + */ public String subjectId; + /** The type of the subject ID provided. Must be either 'user' or 'enterprise'. */ public EnumWrapper subjectType; public BoxCCGAuth(CCGConfig config) { @@ -39,10 +49,16 @@ public BoxCCGAuth(CCGConfig config) { : PostOAuth2TokenBoxSubjectTypeField.ENTERPRISE)); } + /** Get a new access token using CCG auth */ public AccessToken refreshToken() { return refreshToken(null); } + /** + * Get a new access token using CCG auth + * + * @param networkSession An object to keep network session state + */ @Override public AccessToken refreshToken(NetworkSession networkSession) { AuthorizationManager authManager = @@ -61,10 +77,16 @@ public AccessToken refreshToken(NetworkSession networkSession) { return token; } + /** Return a current token or get a new one when not available. */ public AccessToken retrieveToken() { return retrieveToken(null); } + /** + * Return a current token or get a new one when not available. + * + * @param networkSession An object to keep network session state + */ @Override public AccessToken retrieveToken(NetworkSession networkSession) { AccessToken oldToken = this.tokenStorage.get(); @@ -85,10 +107,30 @@ public String retrieveAuthorizationHeader(NetworkSession networkSession) { return String.join("", "Bearer ", token.getAccessToken()); } + /** + * Create a new BoxCCGAuth instance that uses the provided user ID as the subject ID. May be one + * of this application's created App User. Depending on the configured User Access Level, may also + * be any other App User or Managed User in the enterprise. + * <https://developer.box.com/en/guides/applications/> + * <https://developer.box.com/en/guides/authentication/select/> + * + * @param userId The id of the user to authenticate + */ public BoxCCGAuth withUserSubject(String userId) { return withUserSubject(userId, new InMemoryTokenStorage()); } + /** + * Create a new BoxCCGAuth instance that uses the provided user ID as the subject ID. May be one + * of this application's created App User. Depending on the configured User Access Level, may also + * be any other App User or Managed User in the enterprise. + * <https://developer.box.com/en/guides/applications/> + * <https://developer.box.com/en/guides/authentication/select/> + * + * @param userId The id of the user to authenticate + * @param tokenStorage Object responsible for storing token in newly created BoxCCGAuth. If no + * custom implementation provided, the token will be stored in memory. + */ public BoxCCGAuth withUserSubject(String userId, TokenStorage tokenStorage) { CCGConfig newConfig = new CCGConfig.Builder(this.config.getClientId(), this.config.getClientSecret()) @@ -99,10 +141,22 @@ public BoxCCGAuth withUserSubject(String userId, TokenStorage tokenStorage) { return new BoxCCGAuth(newConfig); } + /** + * Create a new BoxCCGAuth instance that uses the provided enterprise ID as the subject ID. + * + * @param enterpriseId The id of the enterprise to authenticate + */ public BoxCCGAuth withEnterpriseSubject(String enterpriseId) { return withEnterpriseSubject(enterpriseId, new InMemoryTokenStorage()); } + /** + * Create a new BoxCCGAuth instance that uses the provided enterprise ID as the subject ID. + * + * @param enterpriseId The id of the enterprise to authenticate + * @param tokenStorage Object responsible for storing token in newly created BoxCCGAuth. If no + * custom implementation provided, the token will be stored in memory. + */ public BoxCCGAuth withEnterpriseSubject(String enterpriseId, TokenStorage tokenStorage) { CCGConfig newConfig = new CCGConfig.Builder(this.config.getClientId(), this.config.getClientSecret()) @@ -113,6 +167,18 @@ public BoxCCGAuth withEnterpriseSubject(String enterpriseId, TokenStorage tokenS return new BoxCCGAuth(newConfig); } + /** + * Downscope access token to the provided scopes. Returning a new access token with the provided + * scopes, with the original access token unchanged. + * + * @param scopes The scope(s) to apply to the resulting token. + * @param resource The file or folder to get a downscoped token for. If None and shared_link None, + * the resulting token will not be scoped down to just a single item. The resource should be a + * full URL to an item, e.g. https://api.box.com/2.0/files/123456. + * @param sharedLink The shared link to get a downscoped token for. If None and item None, the + * resulting token will not be scoped down to just a single item. + * @param networkSession An object to keep network session state + */ @Override public AccessToken downscopeToken( List scopes, String resource, String sharedLink, NetworkSession networkSession) { @@ -140,10 +206,16 @@ public AccessToken downscopeToken( return downscopedToken; } + /** Revoke the current access token and remove it from token storage. */ public void revokeToken() { revokeToken(null); } + /** + * Revoke the current access token and remove it from token storage. + * + * @param networkSession An object to keep network session state + */ @Override public void revokeToken(NetworkSession networkSession) { AccessToken oldToken = this.tokenStorage.get(); diff --git a/src/main/java/com/box/sdkgen/box/ccgauth/CCGConfig.java b/src/main/java/com/box/sdkgen/box/ccgauth/CCGConfig.java index dcf26b388..f80fbd5de 100644 --- a/src/main/java/com/box/sdkgen/box/ccgauth/CCGConfig.java +++ b/src/main/java/com/box/sdkgen/box/ccgauth/CCGConfig.java @@ -5,14 +5,25 @@ public class CCGConfig { + /** Box API key used for identifying the application the user is authenticating with */ public final String clientId; + /** Box API secret used for making auth requests. */ public final String clientSecret; + /** The ID of the Box Developer Edition enterprise. */ public String enterpriseId; + /** + * The user id to authenticate. This value is not required. But if it is provided, then the user + * will be auto-authenticated at the time of the first API call. + */ public String userId; + /** + * Object responsible for storing token. If no custom implementation provided,the token will be + * stored in memory. + */ public TokenStorage tokenStorage; public CCGConfig(String clientId, String clientSecret) { diff --git a/src/main/java/com/box/sdkgen/box/developertokenauth/BoxDeveloperTokenAuth.java b/src/main/java/com/box/sdkgen/box/developertokenauth/BoxDeveloperTokenAuth.java index 0d8184e1f..9dda77468 100644 --- a/src/main/java/com/box/sdkgen/box/developertokenauth/BoxDeveloperTokenAuth.java +++ b/src/main/java/com/box/sdkgen/box/developertokenauth/BoxDeveloperTokenAuth.java @@ -17,8 +17,13 @@ public class BoxDeveloperTokenAuth implements Authentication { public final String token; + /** Configuration object of DeveloperTokenAuth. */ public DeveloperTokenConfig config; + /** + * An object responsible for storing token. If no custom implementation provided, the token will + * be stored in memory. + */ public final TokenStorage tokenStorage; public BoxDeveloperTokenAuth(String token) { @@ -39,10 +44,16 @@ protected BoxDeveloperTokenAuth(Builder builder) { .build(); } + /** Retrieves stored developer token */ public AccessToken retrieveToken() { return retrieveToken(null); } + /** + * Retrieves stored developer token + * + * @param networkSession An object to keep network session state + */ @Override public AccessToken retrieveToken(NetworkSession networkSession) { AccessToken token = this.tokenStorage.get(); @@ -52,10 +63,16 @@ public AccessToken retrieveToken(NetworkSession networkSession) { return token; } + /** Developer token cannot be refreshed */ public AccessToken refreshToken() { return refreshToken(null); } + /** + * Developer token cannot be refreshed + * + * @param networkSession An object to keep network session state + */ @Override public AccessToken refreshToken(NetworkSession networkSession) { throw new BoxSDKError("Developer token has expired. Please provide a new one."); @@ -71,10 +88,20 @@ public String retrieveAuthorizationHeader(NetworkSession networkSession) { return String.join("", "Bearer ", token.getAccessToken()); } + /** + * Revoke an active Access Token, effectively logging a user out that has been previously + * authenticated. + */ public void revokeToken() { revokeToken(null); } + /** + * Revoke an active Access Token, effectively logging a user out that has been previously + * authenticated. + * + * @param networkSession An object to keep network session state + */ @Override public void revokeToken(NetworkSession networkSession) { AccessToken token = this.tokenStorage.get(); @@ -94,6 +121,18 @@ public void revokeToken(NetworkSession networkSession) { this.tokenStorage.clear(); } + /** + * Downscope access token to the provided scopes. Returning a new access token with the provided + * scopes, with the original access token unchanged. + * + * @param scopes The scope(s) to apply to the resulting token. + * @param resource The file or folder to get a downscoped token for. If None and shared_link None, + * the resulting token will not be scoped down to just a single item. The resource should be a + * full URL to an item, e.g. https://api.box.com/2.0/files/123456. + * @param sharedLink The shared link to get a downscoped token for. If None and item None, the + * resulting token will not be scoped down to just a single item. + * @param networkSession An object to keep network session state + */ @Override public AccessToken downscopeToken( List scopes, String resource, String sharedLink, NetworkSession networkSession) { diff --git a/src/main/java/com/box/sdkgen/box/jwtauth/BoxJWTAuth.java b/src/main/java/com/box/sdkgen/box/jwtauth/BoxJWTAuth.java index 0d951c6db..edb1637a5 100644 --- a/src/main/java/com/box/sdkgen/box/jwtauth/BoxJWTAuth.java +++ b/src/main/java/com/box/sdkgen/box/jwtauth/BoxJWTAuth.java @@ -25,12 +25,22 @@ public class BoxJWTAuth implements Authentication { + /** An object containing all JWT configuration to use for authentication */ public final JWTConfig config; + /** + * An object responsible for storing token. If no custom implementation provided, the token will + * be stored in memory. + */ public final TokenStorage tokenStorage; + /** + * The ID of the user or enterprise to authenticate as. If not provided, defaults to the + * enterprise ID if set, otherwise defaults to the user ID. + */ public String subjectId; + /** The type of the subject ID provided. Must be either 'user' or 'enterprise'. */ public String subjectType; public BoxJWTAuth(JWTConfig config) { @@ -43,10 +53,16 @@ public BoxJWTAuth(JWTConfig config) { this.subjectType = (!(this.config.getEnterpriseId() == null) ? "enterprise" : "user"); } + /** Get new access token using JWT auth. */ public AccessToken refreshToken() { return refreshToken(null); } + /** + * Get new access token using JWT auth. + * + * @param networkSession An object to keep network session state + */ @Override public AccessToken refreshToken(NetworkSession networkSession) { if (isBrowser()) { @@ -83,10 +99,20 @@ public AccessToken refreshToken(NetworkSession networkSession) { return token; } + /** + * Get the current access token. If the current access token is expired or not found, this method + * will attempt to refresh the token. + */ public AccessToken retrieveToken() { return retrieveToken(null); } + /** + * Get the current access token. If the current access token is expired or not found, this method + * will attempt to refresh the token. + * + * @param networkSession An object to keep network session state + */ @Override public AccessToken retrieveToken(NetworkSession networkSession) { AccessToken oldToken = this.tokenStorage.get(); @@ -107,10 +133,30 @@ public String retrieveAuthorizationHeader(NetworkSession networkSession) { return String.join("", "Bearer ", token.getAccessToken()); } + /** + * Create a new BoxJWTAuth instance that uses the provided user ID as the subject of the JWT + * assertion. May be one of this application's created App User. Depending on the configured User + * Access Level, may also be any other App User or Managed User in the enterprise. + * <https://developer.box.com/en/guides/applications/> + * <https://developer.box.com/en/guides/authentication/select/> + * + * @param userId The id of the user to authenticate + */ public BoxJWTAuth withUserSubject(String userId) { return withUserSubject(userId, new InMemoryTokenStorage()); } + /** + * Create a new BoxJWTAuth instance that uses the provided user ID as the subject of the JWT + * assertion. May be one of this application's created App User. Depending on the configured User + * Access Level, may also be any other App User or Managed User in the enterprise. + * <https://developer.box.com/en/guides/applications/> + * <https://developer.box.com/en/guides/authentication/select/> + * + * @param userId The id of the user to authenticate + * @param tokenStorage Object responsible for storing token in newly created BoxJWTAuth. If no + * custom implementation provided, the token will be stored in memory. + */ public BoxJWTAuth withUserSubject(String userId, TokenStorage tokenStorage) { JWTConfig newConfig = new JWTConfig.Builder( @@ -127,10 +173,24 @@ public BoxJWTAuth withUserSubject(String userId, TokenStorage tokenStorage) { return newAuth; } + /** + * Create a new BoxJWTAuth instance that uses the provided enterprise ID as the subject of the JWT + * assertion. + * + * @param enterpriseId The id of the enterprise to authenticate + */ public BoxJWTAuth withEnterpriseSubject(String enterpriseId) { return withEnterpriseSubject(enterpriseId, new InMemoryTokenStorage()); } + /** + * Create a new BoxJWTAuth instance that uses the provided enterprise ID as the subject of the JWT + * assertion. + * + * @param enterpriseId The id of the enterprise to authenticate + * @param tokenStorage Object responsible for storing token in newly created BoxJWTAuth. If no + * custom implementation provided, the token will be stored in memory. + */ public BoxJWTAuth withEnterpriseSubject(String enterpriseId, TokenStorage tokenStorage) { JWTConfig newConfig = new JWTConfig.Builder( @@ -147,6 +207,18 @@ public BoxJWTAuth withEnterpriseSubject(String enterpriseId, TokenStorage tokenS return newAuth; } + /** + * Downscope access token to the provided scopes. Returning a new access token with the provided + * scopes, with the original access token unchanged. + * + * @param scopes The scope(s) to apply to the resulting token. + * @param resource The file or folder to get a downscoped token for. If None and shared_link None, + * the resulting token will not be scoped down to just a single item. The resource should be a + * full URL to an item, e.g. https://api.box.com/2.0/files/123456. + * @param sharedLink The shared link to get a downscoped token for. If None and item None, the + * resulting token will not be scoped down to just a single item. + * @param networkSession An object to keep network session state + */ @Override public AccessToken downscopeToken( List scopes, String resource, String sharedLink, NetworkSession networkSession) { @@ -174,10 +246,16 @@ public AccessToken downscopeToken( return downscopedToken; } + /** Revoke the current access token and remove it from token storage. */ public void revokeToken() { revokeToken(null); } + /** + * Revoke the current access token and remove it from token storage. + * + * @param networkSession An object to keep network session state + */ @Override public void revokeToken(NetworkSession networkSession) { AccessToken oldToken = this.tokenStorage.get(); diff --git a/src/main/java/com/box/sdkgen/box/jwtauth/JWTConfig.java b/src/main/java/com/box/sdkgen/box/jwtauth/JWTConfig.java index 57b2ba6dd..622010952 100644 --- a/src/main/java/com/box/sdkgen/box/jwtauth/JWTConfig.java +++ b/src/main/java/com/box/sdkgen/box/jwtauth/JWTConfig.java @@ -13,18 +13,25 @@ public class JWTConfig { + /** App client ID */ public final String clientId; + /** App client secret */ public final String clientSecret; + /** Public key ID */ public final String jwtKeyId; + /** Private key */ public final String privateKey; + /** Passphrase */ public final String privateKeyPassphrase; + /** Enterprise ID */ public String enterpriseId; + /** User ID */ public String userId; public EnumWrapper algorithm; @@ -62,19 +69,55 @@ protected JWTConfig(Builder builder) { this.privateKeyDecryptor = builder.privateKeyDecryptor; } + /** + * Create an auth instance as defined by a string content of JSON file downloaded from the Box + * Developer Console. See https://developer.box.com/en/guides/authentication/jwt/ for more + * information. + * + * @param configJsonString String content of JSON file containing the configuration. + */ public static JWTConfig fromConfigJsonString(String configJsonString) { return fromConfigJsonString(configJsonString, null, null); } + /** + * Create an auth instance as defined by a string content of JSON file downloaded from the Box + * Developer Console. See https://developer.box.com/en/guides/authentication/jwt/ for more + * information. + * + * @param configJsonString String content of JSON file containing the configuration. + * @param tokenStorage Object responsible for storing token. If no custom implementation provided, + * the token will be stored in memory + */ public static JWTConfig fromConfigJsonString(String configJsonString, TokenStorage tokenStorage) { return fromConfigJsonString(configJsonString, tokenStorage, null); } + /** + * Create an auth instance as defined by a string content of JSON file downloaded from the Box + * Developer Console. See https://developer.box.com/en/guides/authentication/jwt/ for more + * information. + * + * @param configJsonString String content of JSON file containing the configuration. + * @param privateKeyDecryptor Object responsible for decrypting private key for jwt auth. If no + * custom implementation provided, the DefaultPrivateKeyDecryptor will be used. + */ public static JWTConfig fromConfigJsonString( String configJsonString, PrivateKeyDecryptor privateKeyDecryptor) { return fromConfigJsonString(configJsonString, null, privateKeyDecryptor); } + /** + * Create an auth instance as defined by a string content of JSON file downloaded from the Box + * Developer Console. See https://developer.box.com/en/guides/authentication/jwt/ for more + * information. + * + * @param configJsonString String content of JSON file containing the configuration. + * @param tokenStorage Object responsible for storing token. If no custom implementation provided, + * the token will be stored in memory + * @param privateKeyDecryptor Object responsible for decrypting private key for jwt auth. If no + * custom implementation provided, the DefaultPrivateKeyDecryptor will be used. + */ public static JWTConfig fromConfigJsonString( String configJsonString, TokenStorage tokenStorage, PrivateKeyDecryptor privateKeyDecryptor) { JwtConfigFile configJson = @@ -98,19 +141,51 @@ public static JWTConfig fromConfigJsonString( return newConfig; } + /** + * Create an auth instance as defined by a JSON file downloaded from the Box Developer Console. + * See https://developer.box.com/en/guides/authentication/jwt/ for more information. + * + * @param configFilePath Path to the JSON file containing the configuration. + */ public static JWTConfig fromConfigFile(String configFilePath) { return fromConfigFile(configFilePath, null, null); } + /** + * Create an auth instance as defined by a JSON file downloaded from the Box Developer Console. + * See https://developer.box.com/en/guides/authentication/jwt/ for more information. + * + * @param configFilePath Path to the JSON file containing the configuration. + * @param tokenStorage Object responsible for storing token. If no custom implementation provided, + * the token will be stored in memory. + */ public static JWTConfig fromConfigFile(String configFilePath, TokenStorage tokenStorage) { return fromConfigFile(configFilePath, tokenStorage, null); } + /** + * Create an auth instance as defined by a JSON file downloaded from the Box Developer Console. + * See https://developer.box.com/en/guides/authentication/jwt/ for more information. + * + * @param configFilePath Path to the JSON file containing the configuration. + * @param privateKeyDecryptor Object responsible for decrypting private key for jwt auth. If no + * custom implementation provided, the DefaultPrivateKeyDecryptor will be used. + */ public static JWTConfig fromConfigFile( String configFilePath, PrivateKeyDecryptor privateKeyDecryptor) { return fromConfigFile(configFilePath, null, privateKeyDecryptor); } + /** + * Create an auth instance as defined by a JSON file downloaded from the Box Developer Console. + * See https://developer.box.com/en/guides/authentication/jwt/ for more information. + * + * @param configFilePath Path to the JSON file containing the configuration. + * @param tokenStorage Object responsible for storing token. If no custom implementation provided, + * the token will be stored in memory. + * @param privateKeyDecryptor Object responsible for decrypting private key for jwt auth. If no + * custom implementation provided, the DefaultPrivateKeyDecryptor will be used. + */ public static JWTConfig fromConfigFile( String configFilePath, TokenStorage tokenStorage, PrivateKeyDecryptor privateKeyDecryptor) { String configJsonString = readTextFromFile(configFilePath); diff --git a/src/main/java/com/box/sdkgen/box/jwtauth/JwtConfigAppSettings.java b/src/main/java/com/box/sdkgen/box/jwtauth/JwtConfigAppSettings.java index d6bbbd345..1ee100b08 100644 --- a/src/main/java/com/box/sdkgen/box/jwtauth/JwtConfigAppSettings.java +++ b/src/main/java/com/box/sdkgen/box/jwtauth/JwtConfigAppSettings.java @@ -8,11 +8,14 @@ @JsonFilter("nullablePropertyFilter") public class JwtConfigAppSettings extends SerializableObject { + /** App client ID */ @JsonProperty("clientID") protected final String clientId; + /** App client secret */ protected final String clientSecret; + /** App auth settings */ protected final JwtConfigAppSettingsAppAuth appAuth; public JwtConfigAppSettings( diff --git a/src/main/java/com/box/sdkgen/box/jwtauth/JwtConfigAppSettingsAppAuth.java b/src/main/java/com/box/sdkgen/box/jwtauth/JwtConfigAppSettingsAppAuth.java index 91772a41e..ef48ea85f 100644 --- a/src/main/java/com/box/sdkgen/box/jwtauth/JwtConfigAppSettingsAppAuth.java +++ b/src/main/java/com/box/sdkgen/box/jwtauth/JwtConfigAppSettingsAppAuth.java @@ -8,11 +8,14 @@ @JsonFilter("nullablePropertyFilter") public class JwtConfigAppSettingsAppAuth extends SerializableObject { + /** Public key ID */ @JsonProperty("publicKeyID") protected final String publicKeyId; + /** Private key */ protected final String privateKey; + /** Passphrase */ protected final String passphrase; public JwtConfigAppSettingsAppAuth( diff --git a/src/main/java/com/box/sdkgen/box/jwtauth/JwtConfigFile.java b/src/main/java/com/box/sdkgen/box/jwtauth/JwtConfigFile.java index a57cd5f00..ec9a22751 100644 --- a/src/main/java/com/box/sdkgen/box/jwtauth/JwtConfigFile.java +++ b/src/main/java/com/box/sdkgen/box/jwtauth/JwtConfigFile.java @@ -9,12 +9,15 @@ @JsonFilter("nullablePropertyFilter") public class JwtConfigFile extends SerializableObject { + /** Enterprise ID */ @JsonProperty("enterpriseID") protected String enterpriseId; + /** User ID */ @JsonProperty("userID") protected String userId; + /** App settings */ protected final JwtConfigAppSettings boxAppSettings; public JwtConfigFile(@JsonProperty("boxAppSettings") JwtConfigAppSettings boxAppSettings) { diff --git a/src/main/java/com/box/sdkgen/box/oauth/BoxOAuth.java b/src/main/java/com/box/sdkgen/box/oauth/BoxOAuth.java index 4efb7d976..a39fe6cd4 100644 --- a/src/main/java/com/box/sdkgen/box/oauth/BoxOAuth.java +++ b/src/main/java/com/box/sdkgen/box/oauth/BoxOAuth.java @@ -21,8 +21,13 @@ public class BoxOAuth implements Authentication { + /** Configuration object of OAuth. */ public final OAuthConfig config; + /** + * An object responsible for storing token. If no custom implementation provided, the token will + * be stored in memory. + */ public final TokenStorage tokenStorage; public BoxOAuth(OAuthConfig config) { @@ -30,10 +35,16 @@ public BoxOAuth(OAuthConfig config) { this.tokenStorage = this.config.getTokenStorage(); } + /** Get the authorization URL for the app user. */ public String getAuthorizeUrl() { return getAuthorizeUrl(new GetAuthorizeUrlOptions()); } + /** + * Get the authorization URL for the app user. + * + * @param options The options parameter + */ public String getAuthorizeUrl(GetAuthorizeUrlOptions options) { Map paramsMap = prepareParams( @@ -55,10 +66,21 @@ public String getAuthorizeUrl(GetAuthorizeUrlOptions options) { sdToUrlParams(JsonManager.serialize(paramsMap))); } + /** + * Acquires token info using an authorization code. + * + * @param authorizationCode The authorization code to use to get tokens. + */ public AccessToken getTokensAuthorizationCodeGrant(String authorizationCode) { return getTokensAuthorizationCodeGrant(authorizationCode, null); } + /** + * Acquires token info using an authorization code. + * + * @param authorizationCode The authorization code to use to get tokens. + * @param networkSession An object to keep network session state + */ public AccessToken getTokensAuthorizationCodeGrant( String authorizationCode, NetworkSession networkSession) { AuthorizationManager authManager = @@ -76,10 +98,20 @@ public AccessToken getTokensAuthorizationCodeGrant( return token; } + /** + * Get the current access token. If the current access token is expired or not found, this method + * will attempt to refresh the token. + */ public AccessToken retrieveToken() { return retrieveToken(null); } + /** + * Get the current access token. If the current access token is expired or not found, this method + * will attempt to refresh the token. + * + * @param networkSession An object to keep network session state + */ @Override public AccessToken retrieveToken(NetworkSession networkSession) { AccessToken token = this.tokenStorage.get(); @@ -90,10 +122,16 @@ public AccessToken retrieveToken(NetworkSession networkSession) { return token; } + /** Get a new access token for the platform app user. */ public AccessToken refreshToken() { return refreshToken(null); } + /** + * Get a new access token for the platform app user. + * + * @param networkSession An object to keep network session state + */ @Override public AccessToken refreshToken(NetworkSession networkSession) { AccessToken oldToken = this.tokenStorage.get(); @@ -123,10 +161,20 @@ public String retrieveAuthorizationHeader(NetworkSession networkSession) { return String.join("", "Bearer ", token.getAccessToken()); } + /** + * Revoke an active Access Token, effectively logging a user out that has been previously + * authenticated. + */ public void revokeToken() { revokeToken(null); } + /** + * Revoke an active Access Token, effectively logging a user out that has been previously + * authenticated. + * + * @param networkSession An object to keep network session state + */ @Override public void revokeToken(NetworkSession networkSession) { AccessToken token = this.tokenStorage.get(); @@ -145,6 +193,18 @@ public void revokeToken(NetworkSession networkSession) { .build()); } + /** + * Downscope access token to the provided scopes. Returning a new access token with the provided + * scopes, with the original access token unchanged. + * + * @param scopes The scope(s) to apply to the resulting token. + * @param resource The file or folder to get a downscoped token for. If None and shared_link None, + * the resulting token will not be scoped down to just a single item. The resource should be a + * full URL to an item, e.g. https://api.box.com/2.0/files/123456. + * @param sharedLink The shared link to get a downscoped token for. If None and item None, the + * resulting token will not be scoped down to just a single item. + * @param networkSession An object to keep network session state + */ @Override public AccessToken downscopeToken( List scopes, String resource, String sharedLink, NetworkSession networkSession) { diff --git a/src/main/java/com/box/sdkgen/box/oauth/GetAuthorizeUrlOptions.java b/src/main/java/com/box/sdkgen/box/oauth/GetAuthorizeUrlOptions.java index 0a57edd59..59ff9cb2a 100644 --- a/src/main/java/com/box/sdkgen/box/oauth/GetAuthorizeUrlOptions.java +++ b/src/main/java/com/box/sdkgen/box/oauth/GetAuthorizeUrlOptions.java @@ -1,15 +1,31 @@ package com.box.sdkgen.box.oauth; +/** Options of getAuthorizeUrl method */ public class GetAuthorizeUrlOptions { + /** Box API key used for identifying the application the user is authenticating with */ public String clientId; + /** + * The URI to which Box redirects the browser after the user has granted or denied the application + * permission. This URI match one of the redirect URIs in the configuration of your application. + */ public String redirectUri; + /** The type of response we would like to receive. */ public String responseType; + /** + * A custom string of your choice. Box will pass the same string to the redirect URL when + * authentication is complete. This parameter can be used to identify a user on redirect, as well + * as protect against hijacked sessions and other exploits. + */ public String state; + /** + * A space-separated list of application scopes you'd like to authenticate the user for. This + * defaults to all the scopes configured for the application in its configuration page. + */ public String scope; public GetAuthorizeUrlOptions() {} diff --git a/src/main/java/com/box/sdkgen/client/BoxClient.java b/src/main/java/com/box/sdkgen/client/BoxClient.java index 7a3993350..f22dcccbc 100644 --- a/src/main/java/com/box/sdkgen/client/BoxClient.java +++ b/src/main/java/com/box/sdkgen/client/BoxClient.java @@ -930,6 +930,11 @@ protected BoxClient(Builder builder) { .build(); } + /** + * Make a custom http request using the client authentication and network session. + * + * @param fetchOptions Options to be passed to the fetch call + */ public FetchResponse makeRequest(FetchOptions fetchOptions) { Authentication auth = (fetchOptions.getAuth() == null ? this.auth : fetchOptions.getAuth()); NetworkSession networkSession = @@ -952,6 +957,13 @@ public FetchResponse makeRequest(FetchOptions fetchOptions) { return networkSession.getNetworkClient().fetch(enrichedFetchOptions); } + /** + * Create a new client to impersonate user with the provided ID. All calls made with the new + * client will be made in context of the impersonated user, leaving the original client + * unmodified. + * + * @param userId ID of an user to impersonate + */ public BoxClient withAsUserHeader(String userId) { return new BoxClient.Builder(this.auth) .networkSession( @@ -959,6 +971,10 @@ public BoxClient withAsUserHeader(String userId) { .build(); } + /** + * Create a new client with suppressed notifications. Calls made with the new client will not + * trigger email or webhook notifications + */ public BoxClient withSuppressedNotifications() { return new BoxClient.Builder(this.auth) .networkSession( @@ -966,28 +982,49 @@ public BoxClient withSuppressedNotifications() { .build(); } + /** Create a new client with a custom set of headers that will be included in every API call */ public BoxClient withExtraHeaders() { return withExtraHeaders(mapOf()); } + /** + * Create a new client with a custom set of headers that will be included in every API call + * + * @param extraHeaders Custom set of headers that will be included in every API call + */ public BoxClient withExtraHeaders(Map extraHeaders) { return new BoxClient.Builder(this.auth) .networkSession(this.networkSession.withAdditionalHeaders(extraHeaders)) .build(); } + /** + * Create a new client with a custom set of base urls that will be used for every API call + * + * @param baseUrls Custom set of base urls that will be used for every API call + */ public BoxClient withCustomBaseUrls(BaseUrls baseUrls) { return new BoxClient.Builder(this.auth) .networkSession(this.networkSession.withCustomBaseUrls(baseUrls)) .build(); } + /** + * Create a new client with a custom proxy that will be used for every API call + * + * @param config The config parameter + */ public BoxClient withProxy(ProxyConfig config) { return new BoxClient.Builder(this.auth) .networkSession(this.networkSession.withProxy(config)) .build(); } + /** + * Create a new client with a custom set of interceptors that will be used for every API call + * + * @param interceptors Custom set of interceptors that will be used for every API call + */ public BoxClient withInterceptors(List interceptors) { return new BoxClient.Builder(this.auth) .networkSession(this.networkSession.withInterceptors(interceptors)) diff --git a/src/main/java/com/box/sdkgen/managers/ai/AiManager.java b/src/main/java/com/box/sdkgen/managers/ai/AiManager.java index 7cf2e7066..e14eacee0 100644 --- a/src/main/java/com/box/sdkgen/managers/ai/AiManager.java +++ b/src/main/java/com/box/sdkgen/managers/ai/AiManager.java @@ -37,10 +37,23 @@ protected AiManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Sends an AI request to supported LLMs and returns an answer specifically focused on the user's + * question given the provided context. + * + * @param requestBody Request body of createAiAsk method + */ public AiResponseFull createAiAsk(AiAsk requestBody) { return createAiAsk(requestBody, new CreateAiAskHeaders()); } + /** + * Sends an AI request to supported LLMs and returns an answer specifically focused on the user's + * question given the provided context. + * + * @param requestBody Request body of createAiAsk method + * @param headers Headers of createAiAsk method + */ public AiResponseFull createAiAsk(AiAsk requestBody, CreateAiAskHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = @@ -64,10 +77,23 @@ public AiResponseFull createAiAsk(AiAsk requestBody, CreateAiAskHeaders headers) return JsonManager.deserialize(response.getData(), AiResponseFull.class); } + /** + * Sends an AI request to supported Large Language Models (LLMs) and returns generated text based + * on the provided prompt. + * + * @param requestBody Request body of createAiTextGen method + */ public AiResponse createAiTextGen(AiTextGen requestBody) { return createAiTextGen(requestBody, new CreateAiTextGenHeaders()); } + /** + * Sends an AI request to supported Large Language Models (LLMs) and returns generated text based + * on the provided prompt. + * + * @param requestBody Request body of createAiTextGen method + * @param headers Headers of createAiTextGen method + */ public AiResponse createAiTextGen(AiTextGen requestBody, CreateAiTextGenHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = @@ -88,10 +114,21 @@ public AiResponse createAiTextGen(AiTextGen requestBody, CreateAiTextGenHeaders return JsonManager.deserialize(response.getData(), AiResponse.class); } + /** + * Get the AI agent default config. + * + * @param queryParams Query parameters of getAiAgentDefaultConfig method + */ public AiAgent getAiAgentDefaultConfig(GetAiAgentDefaultConfigQueryParams queryParams) { return getAiAgentDefaultConfig(queryParams, new GetAiAgentDefaultConfigHeaders()); } + /** + * Get the AI agent default config. + * + * @param queryParams Query parameters of getAiAgentDefaultConfig method + * @param headers Headers of getAiAgentDefaultConfig method + */ public AiAgent getAiAgentDefaultConfig( GetAiAgentDefaultConfigQueryParams queryParams, GetAiAgentDefaultConfigHeaders headers) { Map queryParamsMap = @@ -120,10 +157,25 @@ public AiAgent getAiAgentDefaultConfig( return JsonManager.deserialize(response.getData(), AiAgent.class); } + /** + * Sends an AI request to supported Large Language Models (LLMs) and extracts metadata in form of + * key-value pairs. In this request, both the prompt and the output can be freeform. Metadata + * template setup before sending the request is not required. + * + * @param requestBody Request body of createAiExtract method + */ public AiResponse createAiExtract(AiExtract requestBody) { return createAiExtract(requestBody, new CreateAiExtractHeaders()); } + /** + * Sends an AI request to supported Large Language Models (LLMs) and extracts metadata in form of + * key-value pairs. In this request, both the prompt and the output can be freeform. Metadata + * template setup before sending the request is not required. + * + * @param requestBody Request body of createAiExtract method + * @param headers Headers of createAiExtract method + */ public AiResponse createAiExtract(AiExtract requestBody, CreateAiExtractHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = @@ -144,10 +196,37 @@ public AiResponse createAiExtract(AiExtract requestBody, CreateAiExtractHeaders return JsonManager.deserialize(response.getData(), AiResponse.class); } + /** + * Sends an AI request to supported Large Language Models (LLMs) and returns extracted metadata as + * a set of key-value pairs. For this request, you either need a metadata template or a list of + * fields you want to extract. Input is **either** a metadata template or a list of fields to + * ensure the structure. To learn more about creating templates, see [Creating metadata templates + * in the Admin + * Console](https://support.box.com/hc/en-us/articles/360044194033-Customizing-Metadata-Templates) + * or use the [metadata template API](g://metadata/templates/create). This endpoint also supports + * [Enhanced Extract + * Agent](g://box-ai/ai-tutorials/extract-metadata-structured/#enhanced-extract-agent). + * + * @param requestBody Request body of createAiExtractStructured method + */ public AiExtractStructuredResponse createAiExtractStructured(AiExtractStructured requestBody) { return createAiExtractStructured(requestBody, new CreateAiExtractStructuredHeaders()); } + /** + * Sends an AI request to supported Large Language Models (LLMs) and returns extracted metadata as + * a set of key-value pairs. For this request, you either need a metadata template or a list of + * fields you want to extract. Input is **either** a metadata template or a list of fields to + * ensure the structure. To learn more about creating templates, see [Creating metadata templates + * in the Admin + * Console](https://support.box.com/hc/en-us/articles/360044194033-Customizing-Metadata-Templates) + * or use the [metadata template API](g://metadata/templates/create). This endpoint also supports + * [Enhanced Extract + * Agent](g://box-ai/ai-tutorials/extract-metadata-structured/#enhanced-extract-agent). + * + * @param requestBody Request body of createAiExtractStructured method + * @param headers Headers of createAiExtractStructured method + */ public AiExtractStructuredResponse createAiExtractStructured( AiExtractStructured requestBody, CreateAiExtractStructuredHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); diff --git a/src/main/java/com/box/sdkgen/managers/ai/CreateAiAskHeaders.java b/src/main/java/com/box/sdkgen/managers/ai/CreateAiAskHeaders.java index 87eb692f0..065b30fad 100644 --- a/src/main/java/com/box/sdkgen/managers/ai/CreateAiAskHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/ai/CreateAiAskHeaders.java @@ -6,6 +6,7 @@ public class CreateAiAskHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateAiAskHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/ai/CreateAiExtractHeaders.java b/src/main/java/com/box/sdkgen/managers/ai/CreateAiExtractHeaders.java index 369ccbf8f..042130301 100644 --- a/src/main/java/com/box/sdkgen/managers/ai/CreateAiExtractHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/ai/CreateAiExtractHeaders.java @@ -6,6 +6,7 @@ public class CreateAiExtractHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateAiExtractHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/ai/CreateAiExtractStructuredHeaders.java b/src/main/java/com/box/sdkgen/managers/ai/CreateAiExtractStructuredHeaders.java index 376e3a5f7..a182f4365 100644 --- a/src/main/java/com/box/sdkgen/managers/ai/CreateAiExtractStructuredHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/ai/CreateAiExtractStructuredHeaders.java @@ -6,6 +6,7 @@ public class CreateAiExtractStructuredHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateAiExtractStructuredHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/ai/CreateAiTextGenHeaders.java b/src/main/java/com/box/sdkgen/managers/ai/CreateAiTextGenHeaders.java index 81bad3e77..2c47e5bd1 100644 --- a/src/main/java/com/box/sdkgen/managers/ai/CreateAiTextGenHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/ai/CreateAiTextGenHeaders.java @@ -6,6 +6,7 @@ public class CreateAiTextGenHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateAiTextGenHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigHeaders.java b/src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigHeaders.java index 994a181ea..7e3039a0e 100644 --- a/src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigHeaders.java @@ -6,6 +6,7 @@ public class GetAiAgentDefaultConfigHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetAiAgentDefaultConfigHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigQueryParams.java b/src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigQueryParams.java index 6bddb5313..4119d7937 100644 --- a/src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigQueryParams.java @@ -4,10 +4,16 @@ public class GetAiAgentDefaultConfigQueryParams { + /** The mode to filter the agent config to return. */ public final EnumWrapper mode; + /** + * The ISO language code to return the agent config for. If the language is not supported the + * default agent config is returned. + */ public String language; + /** The model to return the default agent config for. */ public String model; public GetAiAgentDefaultConfigQueryParams(GetAiAgentDefaultConfigQueryParamsModeField mode) { diff --git a/src/main/java/com/box/sdkgen/managers/aistudio/AiStudioManager.java b/src/main/java/com/box/sdkgen/managers/aistudio/AiStudioManager.java index 4280298d1..9e9444ebf 100644 --- a/src/main/java/com/box/sdkgen/managers/aistudio/AiStudioManager.java +++ b/src/main/java/com/box/sdkgen/managers/aistudio/AiStudioManager.java @@ -32,18 +32,35 @@ protected AiStudioManager(Builder builder) { this.networkSession = builder.networkSession; } + /** Lists AI agents based on the provided parameters. */ public AiMultipleAgentResponse getAiAgents() { return getAiAgents(new GetAiAgentsQueryParams(), new GetAiAgentsHeaders()); } + /** + * Lists AI agents based on the provided parameters. + * + * @param queryParams Query parameters of getAiAgents method + */ public AiMultipleAgentResponse getAiAgents(GetAiAgentsQueryParams queryParams) { return getAiAgents(queryParams, new GetAiAgentsHeaders()); } + /** + * Lists AI agents based on the provided parameters. + * + * @param headers Headers of getAiAgents method + */ public AiMultipleAgentResponse getAiAgents(GetAiAgentsHeaders headers) { return getAiAgents(new GetAiAgentsQueryParams(), headers); } + /** + * Lists AI agents based on the provided parameters. + * + * @param queryParams Query parameters of getAiAgents method + * @param headers Headers of getAiAgents method + */ public AiMultipleAgentResponse getAiAgents( GetAiAgentsQueryParams queryParams, GetAiAgentsHeaders headers) { Map queryParamsMap = @@ -73,10 +90,23 @@ public AiMultipleAgentResponse getAiAgents( return JsonManager.deserialize(response.getData(), AiMultipleAgentResponse.class); } + /** + * Creates an AI agent. At least one of the following capabilities must be provided: `ask`, + * `text_gen`, `extract`. + * + * @param requestBody Request body of createAiAgent method + */ public AiSingleAgentResponseFull createAiAgent(CreateAiAgent requestBody) { return createAiAgent(requestBody, new CreateAiAgentHeaders()); } + /** + * Creates an AI agent. At least one of the following capabilities must be provided: `ask`, + * `text_gen`, `extract`. + * + * @param requestBody Request body of createAiAgent method + * @param headers Headers of createAiAgent method + */ public AiSingleAgentResponseFull createAiAgent( CreateAiAgent requestBody, CreateAiAgentHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -98,10 +128,23 @@ public AiSingleAgentResponseFull createAiAgent( return JsonManager.deserialize(response.getData(), AiSingleAgentResponseFull.class); } + /** + * Updates an AI agent. + * + * @param agentId The ID of the agent to update. Example: "1234" + * @param requestBody Request body of updateAiAgentById method + */ public AiSingleAgentResponseFull updateAiAgentById(String agentId, CreateAiAgent requestBody) { return updateAiAgentById(agentId, requestBody, new UpdateAiAgentByIdHeaders()); } + /** + * Updates an AI agent. + * + * @param agentId The ID of the agent to update. Example: "1234" + * @param requestBody Request body of updateAiAgentById method + * @param headers Headers of updateAiAgentById method + */ public AiSingleAgentResponseFull updateAiAgentById( String agentId, CreateAiAgent requestBody, UpdateAiAgentByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -126,19 +169,43 @@ public AiSingleAgentResponseFull updateAiAgentById( return JsonManager.deserialize(response.getData(), AiSingleAgentResponseFull.class); } + /** + * Gets an AI Agent using the `agent_id` parameter. + * + * @param agentId The agent id to get. Example: "1234" + */ public AiSingleAgentResponseFull getAiAgentById(String agentId) { return getAiAgentById(agentId, new GetAiAgentByIdQueryParams(), new GetAiAgentByIdHeaders()); } + /** + * Gets an AI Agent using the `agent_id` parameter. + * + * @param agentId The agent id to get. Example: "1234" + * @param queryParams Query parameters of getAiAgentById method + */ public AiSingleAgentResponseFull getAiAgentById( String agentId, GetAiAgentByIdQueryParams queryParams) { return getAiAgentById(agentId, queryParams, new GetAiAgentByIdHeaders()); } + /** + * Gets an AI Agent using the `agent_id` parameter. + * + * @param agentId The agent id to get. Example: "1234" + * @param headers Headers of getAiAgentById method + */ public AiSingleAgentResponseFull getAiAgentById(String agentId, GetAiAgentByIdHeaders headers) { return getAiAgentById(agentId, new GetAiAgentByIdQueryParams(), headers); } + /** + * Gets an AI Agent using the `agent_id` parameter. + * + * @param agentId The agent id to get. Example: "1234" + * @param queryParams Query parameters of getAiAgentById method + * @param headers Headers of getAiAgentById method + */ public AiSingleAgentResponseFull getAiAgentById( String agentId, GetAiAgentByIdQueryParams queryParams, GetAiAgentByIdHeaders headers) { Map queryParamsMap = @@ -164,10 +231,21 @@ public AiSingleAgentResponseFull getAiAgentById( return JsonManager.deserialize(response.getData(), AiSingleAgentResponseFull.class); } + /** + * Deletes an AI agent using the provided parameters. + * + * @param agentId The ID of the agent to delete. Example: "1234" + */ public void deleteAiAgentById(String agentId) { deleteAiAgentById(agentId, new DeleteAiAgentByIdHeaders()); } + /** + * Deletes an AI agent using the provided parameters. + * + * @param agentId The ID of the agent to delete. Example: "1234" + * @param headers Headers of deleteAiAgentById method + */ public void deleteAiAgentById(String agentId, DeleteAiAgentByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = diff --git a/src/main/java/com/box/sdkgen/managers/aistudio/CreateAiAgentHeaders.java b/src/main/java/com/box/sdkgen/managers/aistudio/CreateAiAgentHeaders.java index de1c12034..e9e03da30 100644 --- a/src/main/java/com/box/sdkgen/managers/aistudio/CreateAiAgentHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/aistudio/CreateAiAgentHeaders.java @@ -6,6 +6,7 @@ public class CreateAiAgentHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateAiAgentHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/aistudio/DeleteAiAgentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/aistudio/DeleteAiAgentByIdHeaders.java index dfc475c1b..5d2cff11e 100644 --- a/src/main/java/com/box/sdkgen/managers/aistudio/DeleteAiAgentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/aistudio/DeleteAiAgentByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteAiAgentByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteAiAgentByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentByIdHeaders.java index e25955c39..df1bcdee0 100644 --- a/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentByIdHeaders.java @@ -6,6 +6,7 @@ public class GetAiAgentByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetAiAgentByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentByIdQueryParams.java index 8c07a954f..f04504080 100644 --- a/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentByIdQueryParams.java @@ -4,6 +4,7 @@ public class GetAiAgentByIdQueryParams { + /** The fields to return in the response. */ public List fields; public GetAiAgentByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentsHeaders.java b/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentsHeaders.java index be7f38635..d2a21601f 100644 --- a/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentsHeaders.java @@ -6,6 +6,7 @@ public class GetAiAgentsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetAiAgentsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentsQueryParams.java b/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentsQueryParams.java index 03802e4ea..1aef2c131 100644 --- a/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentsQueryParams.java @@ -4,16 +4,28 @@ public class GetAiAgentsQueryParams { + /** + * The mode to filter the agent config to return. Possible values are: `ask`, `text_gen`, and + * `extract`. + */ public List mode; + /** The fields to return in the response. */ public List fields; + /** + * The state of the agents to return. Possible values are: `enabled`, `disabled` and + * `enabled_for_selected_users`. + */ public List agentState; + /** Whether to include the Box default agents in the response. */ public Boolean includeBoxDefault; + /** Defines the position marker at which to begin returning results. */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetAiAgentsQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/aistudio/UpdateAiAgentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/aistudio/UpdateAiAgentByIdHeaders.java index 65d7c126c..e27da8c08 100644 --- a/src/main/java/com/box/sdkgen/managers/aistudio/UpdateAiAgentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/aistudio/UpdateAiAgentByIdHeaders.java @@ -6,6 +6,7 @@ public class UpdateAiAgentByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateAiAgentByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/appitemassociations/AppItemAssociationsManager.java b/src/main/java/com/box/sdkgen/managers/appitemassociations/AppItemAssociationsManager.java index d767edcc0..3d24c321b 100644 --- a/src/main/java/com/box/sdkgen/managers/appitemassociations/AppItemAssociationsManager.java +++ b/src/main/java/com/box/sdkgen/managers/appitemassociations/AppItemAssociationsManager.java @@ -30,6 +30,17 @@ protected AppItemAssociationsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * **This is a beta feature, which means that its availability might be limited.** Returns all app + * items the file is associated with. This includes app items associated with ancestors of the + * file. Assuming the context user has access to the file, the type/ids are revealed even if the + * context user does not have **View** permission on the app item. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + */ public AppItemAssociations getFileAppItemAssociations(String fileId) { return getFileAppItemAssociations( fileId, @@ -37,16 +48,53 @@ public AppItemAssociations getFileAppItemAssociations(String fileId) { new GetFileAppItemAssociationsHeaders()); } + /** + * **This is a beta feature, which means that its availability might be limited.** Returns all app + * items the file is associated with. This includes app items associated with ancestors of the + * file. Assuming the context user has access to the file, the type/ids are revealed even if the + * context user does not have **View** permission on the app item. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of getFileAppItemAssociations method + */ public AppItemAssociations getFileAppItemAssociations( String fileId, GetFileAppItemAssociationsQueryParams queryParams) { return getFileAppItemAssociations(fileId, queryParams, new GetFileAppItemAssociationsHeaders()); } + /** + * **This is a beta feature, which means that its availability might be limited.** Returns all app + * items the file is associated with. This includes app items associated with ancestors of the + * file. Assuming the context user has access to the file, the type/ids are revealed even if the + * context user does not have **View** permission on the app item. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param headers Headers of getFileAppItemAssociations method + */ public AppItemAssociations getFileAppItemAssociations( String fileId, GetFileAppItemAssociationsHeaders headers) { return getFileAppItemAssociations(fileId, new GetFileAppItemAssociationsQueryParams(), headers); } + /** + * **This is a beta feature, which means that its availability might be limited.** Returns all app + * items the file is associated with. This includes app items associated with ancestors of the + * file. Assuming the context user has access to the file, the type/ids are revealed even if the + * context user does not have **View** permission on the app item. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of getFileAppItemAssociations method + * @param headers Headers of getFileAppItemAssociations method + */ public AppItemAssociations getFileAppItemAssociations( String fileId, GetFileAppItemAssociationsQueryParams queryParams, @@ -79,6 +127,18 @@ public AppItemAssociations getFileAppItemAssociations( return JsonManager.deserialize(response.getData(), AppItemAssociations.class); } + /** + * **This is a beta feature, which means that its availability might be limited.** Returns all app + * items the folder is associated with. This includes app items associated with ancestors of the + * folder. Assuming the context user has access to the folder, the type/ids are revealed even if + * the context user does not have **View** permission on the app item. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + */ public AppItemAssociations getFolderAppItemAssociations(String folderId) { return getFolderAppItemAssociations( folderId, @@ -86,18 +146,58 @@ public AppItemAssociations getFolderAppItemAssociations(String folderId) { new GetFolderAppItemAssociationsHeaders()); } + /** + * **This is a beta feature, which means that its availability might be limited.** Returns all app + * items the folder is associated with. This includes app items associated with ancestors of the + * folder. Assuming the context user has access to the folder, the type/ids are revealed even if + * the context user does not have **View** permission on the app item. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of getFolderAppItemAssociations method + */ public AppItemAssociations getFolderAppItemAssociations( String folderId, GetFolderAppItemAssociationsQueryParams queryParams) { return getFolderAppItemAssociations( folderId, queryParams, new GetFolderAppItemAssociationsHeaders()); } + /** + * **This is a beta feature, which means that its availability might be limited.** Returns all app + * items the folder is associated with. This includes app items associated with ancestors of the + * folder. Assuming the context user has access to the folder, the type/ids are revealed even if + * the context user does not have **View** permission on the app item. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param headers Headers of getFolderAppItemAssociations method + */ public AppItemAssociations getFolderAppItemAssociations( String folderId, GetFolderAppItemAssociationsHeaders headers) { return getFolderAppItemAssociations( folderId, new GetFolderAppItemAssociationsQueryParams(), headers); } + /** + * **This is a beta feature, which means that its availability might be limited.** Returns all app + * items the folder is associated with. This includes app items associated with ancestors of the + * folder. Assuming the context user has access to the folder, the type/ids are revealed even if + * the context user does not have **View** permission on the app item. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of getFolderAppItemAssociations method + * @param headers Headers of getFolderAppItemAssociations method + */ public AppItemAssociations getFolderAppItemAssociations( String folderId, GetFolderAppItemAssociationsQueryParams queryParams, diff --git a/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFileAppItemAssociationsHeaders.java b/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFileAppItemAssociationsHeaders.java index 9d9b9654f..808dbefc8 100644 --- a/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFileAppItemAssociationsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFileAppItemAssociationsHeaders.java @@ -6,6 +6,7 @@ public class GetFileAppItemAssociationsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFileAppItemAssociationsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFileAppItemAssociationsQueryParams.java b/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFileAppItemAssociationsQueryParams.java index 7ad285d6d..9b483e097 100644 --- a/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFileAppItemAssociationsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFileAppItemAssociationsQueryParams.java @@ -2,10 +2,18 @@ public class GetFileAppItemAssociationsQueryParams { + /** The maximum number of items to return per page. */ public Long limit; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** If given, only return app items for this application type. */ public String applicationType; public GetFileAppItemAssociationsQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFolderAppItemAssociationsHeaders.java b/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFolderAppItemAssociationsHeaders.java index de2e7926a..6b9e90915 100644 --- a/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFolderAppItemAssociationsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFolderAppItemAssociationsHeaders.java @@ -6,6 +6,7 @@ public class GetFolderAppItemAssociationsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFolderAppItemAssociationsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFolderAppItemAssociationsQueryParams.java b/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFolderAppItemAssociationsQueryParams.java index 9a77b115d..35c445fa2 100644 --- a/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFolderAppItemAssociationsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFolderAppItemAssociationsQueryParams.java @@ -2,10 +2,18 @@ public class GetFolderAppItemAssociationsQueryParams { + /** The maximum number of items to return per page. */ public Long limit; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** If given, returns only app items for this application type. */ public String applicationType; public GetFolderAppItemAssociationsQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/archives/ArchivesManager.java b/src/main/java/com/box/sdkgen/managers/archives/ArchivesManager.java index 7f65bfa2f..79d871eb1 100644 --- a/src/main/java/com/box/sdkgen/managers/archives/ArchivesManager.java +++ b/src/main/java/com/box/sdkgen/managers/archives/ArchivesManager.java @@ -31,18 +31,45 @@ protected ArchivesManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves archives for an enterprise. + * + *

    To learn more about the archive APIs, see the [Archive API Guide](g://archives). + */ public ArchivesV2025R0 getArchivesV2025R0() { return getArchivesV2025R0(new GetArchivesV2025R0QueryParams(), new GetArchivesV2025R0Headers()); } + /** + * Retrieves archives for an enterprise. + * + *

    To learn more about the archive APIs, see the [Archive API Guide](g://archives). + * + * @param queryParams Query parameters of getArchivesV2025R0 method + */ public ArchivesV2025R0 getArchivesV2025R0(GetArchivesV2025R0QueryParams queryParams) { return getArchivesV2025R0(queryParams, new GetArchivesV2025R0Headers()); } + /** + * Retrieves archives for an enterprise. + * + *

    To learn more about the archive APIs, see the [Archive API Guide](g://archives). + * + * @param headers Headers of getArchivesV2025R0 method + */ public ArchivesV2025R0 getArchivesV2025R0(GetArchivesV2025R0Headers headers) { return getArchivesV2025R0(new GetArchivesV2025R0QueryParams(), headers); } + /** + * Retrieves archives for an enterprise. + * + *

    To learn more about the archive APIs, see the [Archive API Guide](g://archives). + * + * @param queryParams Query parameters of getArchivesV2025R0 method + * @param headers Headers of getArchivesV2025R0 method + */ public ArchivesV2025R0 getArchivesV2025R0( GetArchivesV2025R0QueryParams queryParams, GetArchivesV2025R0Headers headers) { Map queryParamsMap = @@ -72,10 +99,25 @@ public ArchivesV2025R0 getArchivesV2025R0( return JsonManager.deserialize(response.getData(), ArchivesV2025R0.class); } + /** + * Creates an archive. + * + *

    To learn more about the archive APIs, see the [Archive API Guide](g://archives). + * + * @param requestBody Request body of createArchiveV2025R0 method + */ public ArchiveV2025R0 createArchiveV2025R0(CreateArchiveV2025R0RequestBody requestBody) { return createArchiveV2025R0(requestBody, new CreateArchiveV2025R0Headers()); } + /** + * Creates an archive. + * + *

    To learn more about the archive APIs, see the [Archive API Guide](g://archives). + * + * @param requestBody Request body of createArchiveV2025R0 method + * @param headers Headers of createArchiveV2025R0 method + */ public ArchiveV2025R0 createArchiveV2025R0( CreateArchiveV2025R0RequestBody requestBody, CreateArchiveV2025R0Headers headers) { Map headersMap = @@ -101,10 +143,25 @@ public ArchiveV2025R0 createArchiveV2025R0( return JsonManager.deserialize(response.getData(), ArchiveV2025R0.class); } + /** + * Permanently deletes an archive. + * + *

    To learn more about the archive APIs, see the [Archive API Guide](g://archives). + * + * @param archiveId The ID of the archive. Example: "982312" + */ public void deleteArchiveByIdV2025R0(String archiveId) { deleteArchiveByIdV2025R0(archiveId, new DeleteArchiveByIdV2025R0Headers()); } + /** + * Permanently deletes an archive. + * + *

    To learn more about the archive APIs, see the [Archive API Guide](g://archives). + * + * @param archiveId The ID of the archive. Example: "982312" + * @param headers Headers of deleteArchiveByIdV2025R0 method + */ public void deleteArchiveByIdV2025R0(String archiveId, DeleteArchiveByIdV2025R0Headers headers) { Map headersMap = prepareParams( diff --git a/src/main/java/com/box/sdkgen/managers/archives/CreateArchiveV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/archives/CreateArchiveV2025R0Headers.java index 788ac1c2c..919aa8f50 100644 --- a/src/main/java/com/box/sdkgen/managers/archives/CreateArchiveV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/archives/CreateArchiveV2025R0Headers.java @@ -8,8 +8,10 @@ public class CreateArchiveV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateArchiveV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/archives/CreateArchiveV2025R0RequestBody.java b/src/main/java/com/box/sdkgen/managers/archives/CreateArchiveV2025R0RequestBody.java index 9bf577b2c..dd0a536ad 100644 --- a/src/main/java/com/box/sdkgen/managers/archives/CreateArchiveV2025R0RequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/archives/CreateArchiveV2025R0RequestBody.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class CreateArchiveV2025R0RequestBody extends SerializableObject { + /** The name of the archive. */ protected final String name; public CreateArchiveV2025R0RequestBody(@JsonProperty("name") String name) { diff --git a/src/main/java/com/box/sdkgen/managers/archives/DeleteArchiveByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/archives/DeleteArchiveByIdV2025R0Headers.java index bd562488e..97f3cac98 100644 --- a/src/main/java/com/box/sdkgen/managers/archives/DeleteArchiveByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/archives/DeleteArchiveByIdV2025R0Headers.java @@ -8,8 +8,10 @@ public class DeleteArchiveByIdV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteArchiveByIdV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/archives/GetArchivesV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/archives/GetArchivesV2025R0Headers.java index 546a89183..65009ff61 100644 --- a/src/main/java/com/box/sdkgen/managers/archives/GetArchivesV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/archives/GetArchivesV2025R0Headers.java @@ -8,8 +8,10 @@ public class GetArchivesV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetArchivesV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/archives/GetArchivesV2025R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/archives/GetArchivesV2025R0QueryParams.java index 9136aba0b..e445ab4ad 100644 --- a/src/main/java/com/box/sdkgen/managers/archives/GetArchivesV2025R0QueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/archives/GetArchivesV2025R0QueryParams.java @@ -2,8 +2,13 @@ public class GetArchivesV2025R0QueryParams { + /** The maximum number of items to return per page. */ public Long limit; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + */ public String marker; public GetArchivesV2025R0QueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/authorization/AuthorizationManager.java b/src/main/java/com/box/sdkgen/managers/authorization/AuthorizationManager.java index 1b9c8e00e..4c7d9bcac 100644 --- a/src/main/java/com/box/sdkgen/managers/authorization/AuthorizationManager.java +++ b/src/main/java/com/box/sdkgen/managers/authorization/AuthorizationManager.java @@ -33,10 +33,31 @@ protected AuthorizationManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Authorize a user by sending them through the [Box](https://box.com) website and request their + * permission to act on their behalf. + * + *

    This is the first step when authenticating a user using OAuth 2.0. To request a user's + * authorization to use the Box APIs on their behalf you will need to send a user to the URL with + * this format. + * + * @param queryParams Query parameters of authorizeUser method + */ public void authorizeUser(AuthorizeUserQueryParams queryParams) { authorizeUser(queryParams, new AuthorizeUserHeaders()); } + /** + * Authorize a user by sending them through the [Box](https://box.com) website and request their + * permission to act on their behalf. + * + *

    This is the first step when authenticating a user using OAuth 2.0. To request a user's + * authorization to use the Box APIs on their behalf you will need to send a user to the URL with + * this format. + * + * @param queryParams Query parameters of authorizeUser method + * @param headers Headers of authorizeUser method + */ public void authorizeUser(AuthorizeUserQueryParams queryParams, AuthorizeUserHeaders headers) { Map queryParamsMap = prepareParams( @@ -63,10 +84,39 @@ public void authorizeUser(AuthorizeUserQueryParams queryParams, AuthorizeUserHea .build()); } + /** + * Request an Access Token using either a client-side obtained OAuth 2.0 authorization code or a + * server-side JWT assertion. + * + *

    An Access Token is a string that enables Box to verify that a request belongs to an + * authorized session. In the normal order of operations you will begin by requesting + * authentication from the [authorize](#get-authorize) endpoint and Box will send you an + * authorization code. + * + *

    You will then send this code to this endpoint to exchange it for an Access Token. The + * returned Access Token can then be used to to make Box API calls. + * + * @param requestBody Request body of requestAccessToken method + */ public AccessToken requestAccessToken(PostOAuth2Token requestBody) { return requestAccessToken(requestBody, new RequestAccessTokenHeaders()); } + /** + * Request an Access Token using either a client-side obtained OAuth 2.0 authorization code or a + * server-side JWT assertion. + * + *

    An Access Token is a string that enables Box to verify that a request belongs to an + * authorized session. In the normal order of operations you will begin by requesting + * authentication from the [authorize](#get-authorize) endpoint and Box will send you an + * authorization code. + * + *

    You will then send this code to this endpoint to exchange it for an Access Token. The + * returned Access Token can then be used to to make Box API calls. + * + * @param requestBody Request body of requestAccessToken method + * @param headers Headers of requestAccessToken method + */ public AccessToken requestAccessToken( PostOAuth2Token requestBody, RequestAccessTokenHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -88,10 +138,21 @@ public AccessToken requestAccessToken( return JsonManager.deserialize(response.getData(), AccessToken.class); } + /** + * Refresh an Access Token using its client ID, secret, and refresh token. + * + * @param requestBody Request body of refreshAccessToken method + */ public AccessToken refreshAccessToken(PostOAuth2TokenRefreshAccessToken requestBody) { return refreshAccessToken(requestBody, new RefreshAccessTokenHeaders()); } + /** + * Refresh an Access Token using its client ID, secret, and refresh token. + * + * @param requestBody Request body of refreshAccessToken method + * @param headers Headers of refreshAccessToken method + */ public AccessToken refreshAccessToken( PostOAuth2TokenRefreshAccessToken requestBody, RefreshAccessTokenHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -115,10 +176,23 @@ public AccessToken refreshAccessToken( return JsonManager.deserialize(response.getData(), AccessToken.class); } + /** + * Revoke an active Access Token, effectively logging a user out that has been previously + * authenticated. + * + * @param requestBody Request body of revokeAccessToken method + */ public void revokeAccessToken(PostOAuth2Revoke requestBody) { revokeAccessToken(requestBody, new RevokeAccessTokenHeaders()); } + /** + * Revoke an active Access Token, effectively logging a user out that has been previously + * authenticated. + * + * @param requestBody Request body of revokeAccessToken method + * @param headers Headers of revokeAccessToken method + */ public void revokeAccessToken(PostOAuth2Revoke requestBody, RevokeAccessTokenHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = diff --git a/src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserHeaders.java b/src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserHeaders.java index 2ae8f9b8f..254338f46 100644 --- a/src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserHeaders.java @@ -6,6 +6,7 @@ public class AuthorizeUserHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public AuthorizeUserHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserQueryParams.java b/src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserQueryParams.java index f345e7eaf..3c55334cd 100644 --- a/src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserQueryParams.java @@ -4,14 +4,40 @@ public class AuthorizeUserQueryParams { + /** The type of response we'd like to receive. */ public final EnumWrapper responseType; + /** + * The Client ID of the application that is requesting to authenticate the user. To get the Client + * ID for your application, log in to your Box developer console and click the **Edit + * Application** link for the application you're working with. In the OAuth 2.0 Parameters section + * of the configuration page, find the item labelled `client_id`. The text of that item is your + * application's Client ID. + */ public final String clientId; + /** + * The URI to which Box redirects the browser after the user has granted or denied the application + * permission. This URI match one of the redirect URIs in the configuration of your application. + * It must be a valid HTTPS URI and it needs to be able to handle the redirection to complete the + * next step in the OAuth 2.0 flow. Although this parameter is optional, it must be a part of the + * authorization URL if you configured multiple redirect URIs for the application in the developer + * console. A missing parameter causes a `redirect_uri_missing` error after the user grants + * application access. + */ public String redirectUri; + /** + * A custom string of your choice. Box will pass the same string to the redirect URL when + * authentication is complete. This parameter can be used to identify a user on redirect, as well + * as protect against hijacked sessions and other exploits. + */ public String state; + /** + * A space-separated list of application scopes you'd like to authenticate the user for. This + * defaults to all the scopes configured for the application in its configuration page. + */ public String scope; public AuthorizeUserQueryParams( diff --git a/src/main/java/com/box/sdkgen/managers/authorization/RefreshAccessTokenHeaders.java b/src/main/java/com/box/sdkgen/managers/authorization/RefreshAccessTokenHeaders.java index 6de2adada..785ce65af 100644 --- a/src/main/java/com/box/sdkgen/managers/authorization/RefreshAccessTokenHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/authorization/RefreshAccessTokenHeaders.java @@ -6,6 +6,7 @@ public class RefreshAccessTokenHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public RefreshAccessTokenHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/authorization/RequestAccessTokenHeaders.java b/src/main/java/com/box/sdkgen/managers/authorization/RequestAccessTokenHeaders.java index 4ff9b8f26..a38befa3a 100644 --- a/src/main/java/com/box/sdkgen/managers/authorization/RequestAccessTokenHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/authorization/RequestAccessTokenHeaders.java @@ -6,6 +6,7 @@ public class RequestAccessTokenHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public RequestAccessTokenHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/authorization/RevokeAccessTokenHeaders.java b/src/main/java/com/box/sdkgen/managers/authorization/RevokeAccessTokenHeaders.java index 74610a808..87f91a86a 100644 --- a/src/main/java/com/box/sdkgen/managers/authorization/RevokeAccessTokenHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/authorization/RevokeAccessTokenHeaders.java @@ -6,6 +6,7 @@ public class RevokeAccessTokenHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public RevokeAccessTokenHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/avatars/AvatarsManager.java b/src/main/java/com/box/sdkgen/managers/avatars/AvatarsManager.java index dcf00a0d6..9376c390b 100644 --- a/src/main/java/com/box/sdkgen/managers/avatars/AvatarsManager.java +++ b/src/main/java/com/box/sdkgen/managers/avatars/AvatarsManager.java @@ -32,10 +32,21 @@ protected AvatarsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves an image of a the user's avatar. + * + * @param userId The ID of the user. Example: "12345" + */ public InputStream getUserAvatar(String userId) { return getUserAvatar(userId, new GetUserAvatarHeaders()); } + /** + * Retrieves an image of a the user's avatar. + * + * @param userId The ID of the user. Example: "12345" + * @param headers Headers of getUserAvatar method + */ public InputStream getUserAvatar(String userId, GetUserAvatarHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = @@ -58,10 +69,23 @@ public InputStream getUserAvatar(String userId, GetUserAvatarHeaders headers) { return response.getContent(); } + /** + * Adds or updates a user avatar. + * + * @param userId The ID of the user. Example: "12345" + * @param requestBody Request body of createUserAvatar method + */ public UserAvatar createUserAvatar(String userId, CreateUserAvatarRequestBody requestBody) { return createUserAvatar(userId, requestBody, new CreateUserAvatarHeaders()); } + /** + * Adds or updates a user avatar. + * + * @param userId The ID of the user. Example: "12345" + * @param requestBody Request body of createUserAvatar method + * @param headers Headers of createUserAvatar method + */ public UserAvatar createUserAvatar( String userId, CreateUserAvatarRequestBody requestBody, CreateUserAvatarHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -93,10 +117,21 @@ public UserAvatar createUserAvatar( return JsonManager.deserialize(response.getData(), UserAvatar.class); } + /** + * Removes an existing user avatar. You cannot reverse this operation. + * + * @param userId The ID of the user. Example: "12345" + */ public void deleteUserAvatar(String userId) { deleteUserAvatar(userId, new DeleteUserAvatarHeaders()); } + /** + * Removes an existing user avatar. You cannot reverse this operation. + * + * @param userId The ID of the user. Example: "12345" + * @param headers Headers of deleteUserAvatar method + */ public void deleteUserAvatar(String userId, DeleteUserAvatarHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = diff --git a/src/main/java/com/box/sdkgen/managers/avatars/CreateUserAvatarHeaders.java b/src/main/java/com/box/sdkgen/managers/avatars/CreateUserAvatarHeaders.java index efcd31aa5..9dcc4e5ff 100644 --- a/src/main/java/com/box/sdkgen/managers/avatars/CreateUserAvatarHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/avatars/CreateUserAvatarHeaders.java @@ -6,6 +6,7 @@ public class CreateUserAvatarHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateUserAvatarHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/avatars/CreateUserAvatarRequestBody.java b/src/main/java/com/box/sdkgen/managers/avatars/CreateUserAvatarRequestBody.java index 5205cfe32..207d2e5a6 100644 --- a/src/main/java/com/box/sdkgen/managers/avatars/CreateUserAvatarRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/avatars/CreateUserAvatarRequestBody.java @@ -4,6 +4,10 @@ public class CreateUserAvatarRequestBody { + /** + * The image file to be uploaded to Box. Accepted file extensions are `.jpg` or `.png`. The + * maximum file size is 1MB. + */ public final InputStream pic; public String picFileName; diff --git a/src/main/java/com/box/sdkgen/managers/avatars/DeleteUserAvatarHeaders.java b/src/main/java/com/box/sdkgen/managers/avatars/DeleteUserAvatarHeaders.java index 27f48a05a..710c59c3f 100644 --- a/src/main/java/com/box/sdkgen/managers/avatars/DeleteUserAvatarHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/avatars/DeleteUserAvatarHeaders.java @@ -6,6 +6,7 @@ public class DeleteUserAvatarHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteUserAvatarHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/avatars/GetUserAvatarHeaders.java b/src/main/java/com/box/sdkgen/managers/avatars/GetUserAvatarHeaders.java index e2d96e02c..0f09b0de7 100644 --- a/src/main/java/com/box/sdkgen/managers/avatars/GetUserAvatarHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/avatars/GetUserAvatarHeaders.java @@ -6,6 +6,7 @@ public class GetUserAvatarHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetUserAvatarHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/ChunkedUploadsManager.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/ChunkedUploadsManager.java index 21ac8e6d0..2563a60fb 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/ChunkedUploadsManager.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/ChunkedUploadsManager.java @@ -50,10 +50,21 @@ protected ChunkedUploadsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Creates an upload session for a new file. + * + * @param requestBody Request body of createFileUploadSession method + */ public UploadSession createFileUploadSession(CreateFileUploadSessionRequestBody requestBody) { return createFileUploadSession(requestBody, new CreateFileUploadSessionHeaders()); } + /** + * Creates an upload session for a new file. + * + * @param requestBody Request body of createFileUploadSession method + * @param headers Headers of createFileUploadSession method + */ public UploadSession createFileUploadSession( CreateFileUploadSessionRequestBody requestBody, CreateFileUploadSessionHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -77,12 +88,31 @@ public UploadSession createFileUploadSession( return JsonManager.deserialize(response.getData(), UploadSession.class); } + /** + * Creates an upload session for an existing file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of createFileUploadSessionForExistingFile method + */ public UploadSession createFileUploadSessionForExistingFile( String fileId, CreateFileUploadSessionForExistingFileRequestBody requestBody) { return createFileUploadSessionForExistingFile( fileId, requestBody, new CreateFileUploadSessionForExistingFileHeaders()); } + /** + * Creates an upload session for an existing file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of createFileUploadSessionForExistingFile method + * @param headers Headers of createFileUploadSessionForExistingFile method + */ public UploadSession createFileUploadSessionForExistingFile( String fileId, CreateFileUploadSessionForExistingFileRequestBody requestBody, @@ -110,10 +140,33 @@ public UploadSession createFileUploadSessionForExistingFile( return JsonManager.deserialize(response.getData(), UploadSession.class); } + /** + * Using this method with urls provided in response when creating a new upload session is + * preferred to use over GetFileUploadSessionById method. This allows to always upload your + * content to the closest Box data center and can significantly improve upload speed. Return + * information about an upload session. + * + *

    The actual endpoint URL is returned by the [`Create upload + * session`](e://post-files-upload-sessions) endpoint. + * + * @param url URL of getFileUploadSessionById method + */ public UploadSession getFileUploadSessionByUrl(String url) { return getFileUploadSessionByUrl(url, new GetFileUploadSessionByUrlHeaders()); } + /** + * Using this method with urls provided in response when creating a new upload session is + * preferred to use over GetFileUploadSessionById method. This allows to always upload your + * content to the closest Box data center and can significantly improve upload speed. Return + * information about an upload session. + * + *

    The actual endpoint URL is returned by the [`Create upload + * session`](e://post-files-upload-sessions) endpoint. + * + * @param url URL of getFileUploadSessionById method + * @param headers Headers of getFileUploadSessionById method + */ public UploadSession getFileUploadSessionByUrl( String url, GetFileUploadSessionByUrlHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -130,10 +183,27 @@ public UploadSession getFileUploadSessionByUrl( return JsonManager.deserialize(response.getData(), UploadSession.class); } + /** + * Return information about an upload session. + * + *

    The actual endpoint URL is returned by the [`Create upload + * session`](e://post-files-upload-sessions) endpoint. + * + * @param uploadSessionId The ID of the upload session. Example: "D5E3F7A" + */ public UploadSession getFileUploadSessionById(String uploadSessionId) { return getFileUploadSessionById(uploadSessionId, new GetFileUploadSessionByIdHeaders()); } + /** + * Return information about an upload session. + * + *

    The actual endpoint URL is returned by the [`Create upload + * session`](e://post-files-upload-sessions) endpoint. + * + * @param uploadSessionId The ID of the upload session. Example: "D5E3F7A" + * @param headers Headers of getFileUploadSessionById method + */ public UploadSession getFileUploadSessionById( String uploadSessionId, GetFileUploadSessionByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -156,6 +226,20 @@ public UploadSession getFileUploadSessionById( return JsonManager.deserialize(response.getData(), UploadSession.class); } + /** + * Using this method with urls provided in response when creating a new upload session is + * preferred to use over UploadFilePart method. This allows to always upload your content to the + * closest Box data center and can significantly improve upload speed. Uploads a chunk of a file + * for an upload session. + * + *

    The actual endpoint URL is returned by the [`Create upload + * session`](e://post-files-upload-sessions) and [`Get upload + * session`](e://get-files-upload-sessions-id) endpoints. + * + * @param url URL of uploadFilePart method + * @param requestBody Request body of uploadFilePart method + * @param headers Headers of uploadFilePart method + */ public UploadedPart uploadFilePartByUrl( String url, InputStream requestBody, UploadFilePartByUrlHeaders headers) { Map headersMap = @@ -180,6 +264,17 @@ public UploadedPart uploadFilePartByUrl( return JsonManager.deserialize(response.getData(), UploadedPart.class); } + /** + * Uploads a chunk of a file for an upload session. + * + *

    The actual endpoint URL is returned by the [`Create upload + * session`](e://post-files-upload-sessions) and [`Get upload + * session`](e://get-files-upload-sessions-id) endpoints. + * + * @param uploadSessionId The ID of the upload session. Example: "D5E3F7A" + * @param requestBody Request body of uploadFilePart method + * @param headers Headers of uploadFilePart method + */ public UploadedPart uploadFilePart( String uploadSessionId, InputStream requestBody, UploadFilePartHeaders headers) { Map headersMap = @@ -210,10 +305,39 @@ public UploadedPart uploadFilePart( return JsonManager.deserialize(response.getData(), UploadedPart.class); } + /** + * Using this method with urls provided in response when creating a new upload session is + * preferred to use over DeleteFileUploadSessionById method. This allows to always upload your + * content to the closest Box data center and can significantly improve upload speed. Abort an + * upload session and discard all data uploaded. + * + *

    This cannot be reversed. + * + *

    The actual endpoint URL is returned by the [`Create upload + * session`](e://post-files-upload-sessions) and [`Get upload + * session`](e://get-files-upload-sessions-id) endpoints. + * + * @param url URL of deleteFileUploadSessionById method + */ public void deleteFileUploadSessionByUrl(String url) { deleteFileUploadSessionByUrl(url, new DeleteFileUploadSessionByUrlHeaders()); } + /** + * Using this method with urls provided in response when creating a new upload session is + * preferred to use over DeleteFileUploadSessionById method. This allows to always upload your + * content to the closest Box data center and can significantly improve upload speed. Abort an + * upload session and discard all data uploaded. + * + *

    This cannot be reversed. + * + *

    The actual endpoint URL is returned by the [`Create upload + * session`](e://post-files-upload-sessions) and [`Get upload + * session`](e://get-files-upload-sessions-id) endpoints. + * + * @param url URL of deleteFileUploadSessionById method + * @param headers Headers of deleteFileUploadSessionById method + */ public void deleteFileUploadSessionByUrl( String url, DeleteFileUploadSessionByUrlHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -229,10 +353,33 @@ public void deleteFileUploadSessionByUrl( .build()); } + /** + * Abort an upload session and discard all data uploaded. + * + *

    This cannot be reversed. + * + *

    The actual endpoint URL is returned by the [`Create upload + * session`](e://post-files-upload-sessions) and [`Get upload + * session`](e://get-files-upload-sessions-id) endpoints. + * + * @param uploadSessionId The ID of the upload session. Example: "D5E3F7A" + */ public void deleteFileUploadSessionById(String uploadSessionId) { deleteFileUploadSessionById(uploadSessionId, new DeleteFileUploadSessionByIdHeaders()); } + /** + * Abort an upload session and discard all data uploaded. + * + *

    This cannot be reversed. + * + *

    The actual endpoint URL is returned by the [`Create upload + * session`](e://post-files-upload-sessions) and [`Get upload + * session`](e://get-files-upload-sessions-id) endpoints. + * + * @param uploadSessionId The ID of the upload session. Example: "D5E3F7A" + * @param headers Headers of deleteFileUploadSessionById method + */ public void deleteFileUploadSessionById( String uploadSessionId, DeleteFileUploadSessionByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -254,6 +401,18 @@ public void deleteFileUploadSessionById( .build()); } + /** + * Using this method with urls provided in response when creating a new upload session is + * preferred to use over GetFileUploadSessionParts method. This allows to always upload your + * content to the closest Box data center and can significantly improve upload speed. Return a + * list of the chunks uploaded to the upload session so far. + * + *

    The actual endpoint URL is returned by the [`Create upload + * session`](e://post-files-upload-sessions) and [`Get upload + * session`](e://get-files-upload-sessions-id) endpoints. + * + * @param url URL of getFileUploadSessionParts method + */ public UploadParts getFileUploadSessionPartsByUrl(String url) { return getFileUploadSessionPartsByUrl( url, @@ -261,18 +420,58 @@ public UploadParts getFileUploadSessionPartsByUrl(String url) { new GetFileUploadSessionPartsByUrlHeaders()); } + /** + * Using this method with urls provided in response when creating a new upload session is + * preferred to use over GetFileUploadSessionParts method. This allows to always upload your + * content to the closest Box data center and can significantly improve upload speed. Return a + * list of the chunks uploaded to the upload session so far. + * + *

    The actual endpoint URL is returned by the [`Create upload + * session`](e://post-files-upload-sessions) and [`Get upload + * session`](e://get-files-upload-sessions-id) endpoints. + * + * @param url URL of getFileUploadSessionParts method + * @param queryParams Query parameters of getFileUploadSessionParts method + */ public UploadParts getFileUploadSessionPartsByUrl( String url, GetFileUploadSessionPartsByUrlQueryParams queryParams) { return getFileUploadSessionPartsByUrl( url, queryParams, new GetFileUploadSessionPartsByUrlHeaders()); } + /** + * Using this method with urls provided in response when creating a new upload session is + * preferred to use over GetFileUploadSessionParts method. This allows to always upload your + * content to the closest Box data center and can significantly improve upload speed. Return a + * list of the chunks uploaded to the upload session so far. + * + *

    The actual endpoint URL is returned by the [`Create upload + * session`](e://post-files-upload-sessions) and [`Get upload + * session`](e://get-files-upload-sessions-id) endpoints. + * + * @param url URL of getFileUploadSessionParts method + * @param headers Headers of getFileUploadSessionParts method + */ public UploadParts getFileUploadSessionPartsByUrl( String url, GetFileUploadSessionPartsByUrlHeaders headers) { return getFileUploadSessionPartsByUrl( url, new GetFileUploadSessionPartsByUrlQueryParams(), headers); } + /** + * Using this method with urls provided in response when creating a new upload session is + * preferred to use over GetFileUploadSessionParts method. This allows to always upload your + * content to the closest Box data center and can significantly improve upload speed. Return a + * list of the chunks uploaded to the upload session so far. + * + *

    The actual endpoint URL is returned by the [`Create upload + * session`](e://post-files-upload-sessions) and [`Get upload + * session`](e://get-files-upload-sessions-id) endpoints. + * + * @param url URL of getFileUploadSessionParts method + * @param queryParams Query parameters of getFileUploadSessionParts method + * @param headers Headers of getFileUploadSessionParts method + */ public UploadParts getFileUploadSessionPartsByUrl( String url, GetFileUploadSessionPartsByUrlQueryParams queryParams, @@ -297,6 +496,15 @@ public UploadParts getFileUploadSessionPartsByUrl( return JsonManager.deserialize(response.getData(), UploadParts.class); } + /** + * Return a list of the chunks uploaded to the upload session so far. + * + *

    The actual endpoint URL is returned by the [`Create upload + * session`](e://post-files-upload-sessions) and [`Get upload + * session`](e://get-files-upload-sessions-id) endpoints. + * + * @param uploadSessionId The ID of the upload session. Example: "D5E3F7A" + */ public UploadParts getFileUploadSessionParts(String uploadSessionId) { return getFileUploadSessionParts( uploadSessionId, @@ -304,18 +512,49 @@ public UploadParts getFileUploadSessionParts(String uploadSessionId) { new GetFileUploadSessionPartsHeaders()); } + /** + * Return a list of the chunks uploaded to the upload session so far. + * + *

    The actual endpoint URL is returned by the [`Create upload + * session`](e://post-files-upload-sessions) and [`Get upload + * session`](e://get-files-upload-sessions-id) endpoints. + * + * @param uploadSessionId The ID of the upload session. Example: "D5E3F7A" + * @param queryParams Query parameters of getFileUploadSessionParts method + */ public UploadParts getFileUploadSessionParts( String uploadSessionId, GetFileUploadSessionPartsQueryParams queryParams) { return getFileUploadSessionParts( uploadSessionId, queryParams, new GetFileUploadSessionPartsHeaders()); } + /** + * Return a list of the chunks uploaded to the upload session so far. + * + *

    The actual endpoint URL is returned by the [`Create upload + * session`](e://post-files-upload-sessions) and [`Get upload + * session`](e://get-files-upload-sessions-id) endpoints. + * + * @param uploadSessionId The ID of the upload session. Example: "D5E3F7A" + * @param headers Headers of getFileUploadSessionParts method + */ public UploadParts getFileUploadSessionParts( String uploadSessionId, GetFileUploadSessionPartsHeaders headers) { return getFileUploadSessionParts( uploadSessionId, new GetFileUploadSessionPartsQueryParams(), headers); } + /** + * Return a list of the chunks uploaded to the upload session so far. + * + *

    The actual endpoint URL is returned by the [`Create upload + * session`](e://post-files-upload-sessions) and [`Get upload + * session`](e://get-files-upload-sessions-id) endpoints. + * + * @param uploadSessionId The ID of the upload session. Example: "D5E3F7A" + * @param queryParams Query parameters of getFileUploadSessionParts method + * @param headers Headers of getFileUploadSessionParts method + */ public UploadParts getFileUploadSessionParts( String uploadSessionId, GetFileUploadSessionPartsQueryParams queryParams, @@ -347,6 +586,20 @@ public UploadParts getFileUploadSessionParts( return JsonManager.deserialize(response.getData(), UploadParts.class); } + /** + * Using this method with urls provided in response when creating a new upload session is + * preferred to use over CreateFileUploadSessionCommit method. This allows to always upload your + * content to the closest Box data center and can significantly improve upload speed. Close an + * upload session and create a file from the uploaded chunks. + * + *

    The actual endpoint URL is returned by the [`Create upload + * session`](e://post-files-upload-sessions) and [`Get upload + * session`](e://get-files-upload-sessions-id) endpoints. + * + * @param url URL of createFileUploadSessionCommit method + * @param requestBody Request body of createFileUploadSessionCommit method + * @param headers Headers of createFileUploadSessionCommit method + */ public Files createFileUploadSessionCommitByUrl( String url, CreateFileUploadSessionCommitByUrlRequestBody requestBody, @@ -377,6 +630,17 @@ public Files createFileUploadSessionCommitByUrl( return JsonManager.deserialize(response.getData(), Files.class); } + /** + * Close an upload session and create a file from the uploaded chunks. + * + *

    The actual endpoint URL is returned by the [`Create upload + * session`](e://post-files-upload-sessions) and [`Get upload + * session`](e://get-files-upload-sessions-id) endpoints. + * + * @param uploadSessionId The ID of the upload session. Example: "D5E3F7A" + * @param requestBody Request body of createFileUploadSessionCommit method + * @param headers Headers of createFileUploadSessionCommit method + */ public Files createFileUploadSessionCommit( String uploadSessionId, CreateFileUploadSessionCommitRequestBody requestBody, @@ -453,6 +717,15 @@ public PartAccumulator reducer(PartAccumulator acc, InputStream chunk) { acc.getFileHash()); } + /** + * Starts the process of chunk uploading a big file. Should return a File object representing + * uploaded file. + * + * @param file The stream of the file to upload. + * @param fileName The name of the file, which will be used for storage in Box. + * @param fileSize The total size of the file for the chunked upload in bytes. + * @param parentFolderId The ID of the folder where the file should be uploaded. + */ public FileFull uploadBigFile( InputStream file, String fileName, long fileSize, String parentFolderId) { UploadSession uploadSession = diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitByUrlHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitByUrlHeaders.java index 4ac12022f..d18ebcf86 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitByUrlHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitByUrlHeaders.java @@ -6,12 +6,33 @@ public class CreateFileUploadSessionCommitByUrlHeaders { + /** + * The [RFC3230][1] message digest of the whole file. + * + *

    Only SHA1 is supported. The SHA1 digest must be Base64 encoded. The format of this header is + * as `sha=BASE64_ENCODED_DIGEST`. + * + *

    [1]: https://tools.ietf.org/html/rfc3230 + */ public final String digest; + /** + * Ensures this item hasn't recently changed before making changes. + * + *

    Pass in the item's last observed `etag` value into this header and the endpoint will fail + * with a `412 Precondition Failed` if it has changed since. + */ public String ifMatch; + /** + * Ensures an item is only returned if it has changed. + * + *

    Pass in the item's last observed `etag` value into this header and the endpoint will fail + * with a `304 Not Modified` if the item has not changed since. + */ public String ifNoneMatch; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateFileUploadSessionCommitByUrlHeaders(String digest) { diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitByUrlRequestBody.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitByUrlRequestBody.java index 5c7612cb2..7a9733e7c 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitByUrlRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitByUrlRequestBody.java @@ -10,6 +10,7 @@ @JsonFilter("nullablePropertyFilter") public class CreateFileUploadSessionCommitByUrlRequestBody extends SerializableObject { + /** The list details for the uploaded parts. */ protected final List parts; public CreateFileUploadSessionCommitByUrlRequestBody( diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitHeaders.java index 0d5f028dd..6eec767d6 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitHeaders.java @@ -6,12 +6,33 @@ public class CreateFileUploadSessionCommitHeaders { + /** + * The [RFC3230][1] message digest of the whole file. + * + *

    Only SHA1 is supported. The SHA1 digest must be Base64 encoded. The format of this header is + * as `sha=BASE64_ENCODED_DIGEST`. + * + *

    [1]: https://tools.ietf.org/html/rfc3230 + */ public final String digest; + /** + * Ensures this item hasn't recently changed before making changes. + * + *

    Pass in the item's last observed `etag` value into this header and the endpoint will fail + * with a `412 Precondition Failed` if it has changed since. + */ public String ifMatch; + /** + * Ensures an item is only returned if it has changed. + * + *

    Pass in the item's last observed `etag` value into this header and the endpoint will fail + * with a `304 Not Modified` if the item has not changed since. + */ public String ifNoneMatch; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateFileUploadSessionCommitHeaders(String digest) { diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitRequestBody.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitRequestBody.java index 203a15de2..f6e2b8765 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitRequestBody.java @@ -10,6 +10,7 @@ @JsonFilter("nullablePropertyFilter") public class CreateFileUploadSessionCommitRequestBody extends SerializableObject { + /** The list details for the uploaded parts. */ protected final List parts; public CreateFileUploadSessionCommitRequestBody(@JsonProperty("parts") List parts) { diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionForExistingFileHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionForExistingFileHeaders.java index 845a1c990..5cb017a2e 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionForExistingFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionForExistingFileHeaders.java @@ -6,6 +6,7 @@ public class CreateFileUploadSessionForExistingFileHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateFileUploadSessionForExistingFileHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionForExistingFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionForExistingFileRequestBody.java index ced6e7d2e..1b3e41739 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionForExistingFileRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionForExistingFileRequestBody.java @@ -9,9 +9,11 @@ @JsonFilter("nullablePropertyFilter") public class CreateFileUploadSessionForExistingFileRequestBody extends SerializableObject { + /** The total number of bytes of the file to be uploaded. */ @JsonProperty("file_size") protected final long fileSize; + /** The optional new name of new file. */ @JsonProperty("file_name") protected String fileName; diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionHeaders.java index 36ccb441d..0a604c127 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionHeaders.java @@ -6,6 +6,7 @@ public class CreateFileUploadSessionHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateFileUploadSessionHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionRequestBody.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionRequestBody.java index 85cd3c909..9409daebc 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionRequestBody.java @@ -8,12 +8,15 @@ @JsonFilter("nullablePropertyFilter") public class CreateFileUploadSessionRequestBody extends SerializableObject { + /** The ID of the folder to upload the new file to. */ @JsonProperty("folder_id") protected final String folderId; + /** The total number of bytes of the file to be uploaded. */ @JsonProperty("file_size") protected final long fileSize; + /** The name of new file. */ @JsonProperty("file_name") protected final String fileName; diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/DeleteFileUploadSessionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/DeleteFileUploadSessionByIdHeaders.java index f44d02f34..8869c4713 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/DeleteFileUploadSessionByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/DeleteFileUploadSessionByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteFileUploadSessionByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteFileUploadSessionByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/DeleteFileUploadSessionByUrlHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/DeleteFileUploadSessionByUrlHeaders.java index 10261c5d4..ecd33634a 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/DeleteFileUploadSessionByUrlHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/DeleteFileUploadSessionByUrlHeaders.java @@ -6,6 +6,7 @@ public class DeleteFileUploadSessionByUrlHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteFileUploadSessionByUrlHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionByIdHeaders.java index f5e626456..d4b600174 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionByIdHeaders.java @@ -6,6 +6,7 @@ public class GetFileUploadSessionByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFileUploadSessionByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionByUrlHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionByUrlHeaders.java index fbab677fe..17c11a31d 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionByUrlHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionByUrlHeaders.java @@ -6,6 +6,7 @@ public class GetFileUploadSessionByUrlHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFileUploadSessionByUrlHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsByUrlHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsByUrlHeaders.java index 3cccaece0..08715f195 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsByUrlHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsByUrlHeaders.java @@ -6,6 +6,7 @@ public class GetFileUploadSessionPartsByUrlHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFileUploadSessionPartsByUrlHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsByUrlQueryParams.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsByUrlQueryParams.java index b326e86f0..b10336426 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsByUrlQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsByUrlQueryParams.java @@ -2,8 +2,14 @@ public class GetFileUploadSessionPartsByUrlQueryParams { + /** + * The offset of the item at which to begin the response. + * + *

    Queries with offset parameter value exceeding 10000 will be rejected with a 400 response. + */ public Long offset; + /** The maximum number of items to return per page. */ public Long limit; public GetFileUploadSessionPartsByUrlQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsHeaders.java index 606e98bc2..7fe58c00d 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsHeaders.java @@ -6,6 +6,7 @@ public class GetFileUploadSessionPartsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFileUploadSessionPartsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsQueryParams.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsQueryParams.java index bc26a53de..eeea92e37 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsQueryParams.java @@ -2,8 +2,14 @@ public class GetFileUploadSessionPartsQueryParams { + /** + * The offset of the item at which to begin the response. + * + *

    Queries with offset parameter value exceeding 10000 will be rejected with a 400 response. + */ public Long offset; + /** The maximum number of items to return per page. */ public Long limit; public GetFileUploadSessionPartsQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/UploadFilePartByUrlHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/UploadFilePartByUrlHeaders.java index 801181ab6..fda959762 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/UploadFilePartByUrlHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/UploadFilePartByUrlHeaders.java @@ -6,10 +6,34 @@ public class UploadFilePartByUrlHeaders { + /** + * The [RFC3230][1] message digest of the chunk uploaded. + * + *

    Only SHA1 is supported. The SHA1 digest must be base64 encoded. The format of this header is + * as `sha=BASE64_ENCODED_DIGEST`. + * + *

    To get the value for the `SHA` digest, use the openSSL command to encode the file part: + * `openssl sha1 -binary <FILE_PART_NAME> | base64`. + * + *

    [1]: https://tools.ietf.org/html/rfc3230 + */ public final String digest; + /** + * The byte range of the chunk. + * + *

    Must not overlap with the range of a part already uploaded this session. Each part’s size + * must be exactly equal in size to the part size specified in the upload session that you + * created. One exception is the last part of the file, as this can be smaller. + * + *

    When providing the value for `content-range`, remember that: + * + *

    * The lower bound of each part's byte range must be a multiple of the part size. * The + * higher bound must be a multiple of the part size - 1. + */ public final String contentRange; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UploadFilePartByUrlHeaders(String digest, String contentRange) { diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/UploadFilePartHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/UploadFilePartHeaders.java index c317212cf..6edd9c819 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/UploadFilePartHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/UploadFilePartHeaders.java @@ -6,10 +6,34 @@ public class UploadFilePartHeaders { + /** + * The [RFC3230][1] message digest of the chunk uploaded. + * + *

    Only SHA1 is supported. The SHA1 digest must be base64 encoded. The format of this header is + * as `sha=BASE64_ENCODED_DIGEST`. + * + *

    To get the value for the `SHA` digest, use the openSSL command to encode the file part: + * `openssl sha1 -binary <FILE_PART_NAME> | base64`. + * + *

    [1]: https://tools.ietf.org/html/rfc3230 + */ public final String digest; + /** + * The byte range of the chunk. + * + *

    Must not overlap with the range of a part already uploaded this session. Each part’s size + * must be exactly equal in size to the part size specified in the upload session that you + * created. One exception is the last part of the file, as this can be smaller. + * + *

    When providing the value for `content-range`, remember that: + * + *

    * The lower bound of each part's byte range must be a multiple of the part size. * The + * higher bound must be a multiple of the part size - 1. + */ public final String contentRange; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UploadFilePartHeaders(String digest, String contentRange) { diff --git a/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationHeaders.java b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationHeaders.java index 1eaa58512..f3ca3e9fa 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationHeaders.java @@ -6,6 +6,7 @@ public class AddClassificationHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public AddClassificationHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBody.java b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBody.java index f6b718c3e..d5a663c2b 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBody.java @@ -12,6 +12,7 @@ @JsonFilter("nullablePropertyFilter") public class AddClassificationRequestBody extends SerializableObject { + /** The type of change to perform on the classification object. */ @JsonDeserialize( using = AddClassificationRequestBodyOpField.AddClassificationRequestBodyOpFieldDeserializer.class) @@ -20,6 +21,7 @@ public class AddClassificationRequestBody extends SerializableObject { AddClassificationRequestBodyOpField.AddClassificationRequestBodyOpFieldSerializer.class) protected EnumWrapper op; + /** Defines classifications available in the enterprise. */ @JsonDeserialize( using = AddClassificationRequestBodyFieldKeyField @@ -30,6 +32,7 @@ public class AddClassificationRequestBody extends SerializableObject { .AddClassificationRequestBodyFieldKeyFieldSerializer.class) protected EnumWrapper fieldKey; + /** The details of the classification to add. */ protected final AddClassificationRequestBodyDataField data; public AddClassificationRequestBody( diff --git a/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyDataField.java b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyDataField.java index f2e1960ec..76daa689e 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyDataField.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyDataField.java @@ -9,8 +9,13 @@ @JsonFilter("nullablePropertyFilter") public class AddClassificationRequestBodyDataField extends SerializableObject { + /** + * The label of the classification as shown in the web and mobile interfaces. This is the only + * field required to add a classification. + */ protected final String key; + /** A static configuration for the classification. */ protected AddClassificationRequestBodyDataStaticConfigField staticConfig; public AddClassificationRequestBodyDataField(@JsonProperty("key") String key) { diff --git a/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyDataStaticConfigClassificationField.java b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyDataStaticConfigClassificationField.java index e6b059334..9e392a5a2 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyDataStaticConfigClassificationField.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyDataStaticConfigClassificationField.java @@ -10,8 +10,18 @@ public class AddClassificationRequestBodyDataStaticConfigClassificationField extends SerializableObject { + /** A longer description of the classification. */ protected String classificationDefinition; + /** + * An internal Box identifier used to assign a color to a classification label. + * + *

    Mapping between a `colorID` and a color may change without notice. Currently, the color + * mappings are as follows. + * + *

    * `0`: Yellow. * `1`: Orange. * `2`: Watermelon red. * `3`: Purple rain. * `4`: Light blue. + * * `5`: Dark blue. * `6`: Light green. * `7`: Gray. + */ @JsonProperty("colorID") protected Long colorId; diff --git a/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyDataStaticConfigField.java b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyDataStaticConfigField.java index ff8c0737c..eb4eba69f 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyDataStaticConfigField.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyDataStaticConfigField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class AddClassificationRequestBodyDataStaticConfigField extends SerializableObject { + /** Additional details for the classification. */ protected AddClassificationRequestBodyDataStaticConfigClassificationField classification; public AddClassificationRequestBodyDataStaticConfigField() { diff --git a/src/main/java/com/box/sdkgen/managers/classifications/ClassificationsManager.java b/src/main/java/com/box/sdkgen/managers/classifications/ClassificationsManager.java index 378368346..623133566 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/ClassificationsManager.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/ClassificationsManager.java @@ -29,10 +29,26 @@ protected ClassificationsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves the classification metadata template and lists all the classifications available to + * this enterprise. + * + *

    This API can also be called by including the enterprise ID in the URL explicitly, for + * example `/metadata_templates/enterprise_12345/securityClassification-6VMVochwUWo/schema`. + */ public ClassificationTemplate getClassificationTemplate() { return getClassificationTemplate(new GetClassificationTemplateHeaders()); } + /** + * Retrieves the classification metadata template and lists all the classifications available to + * this enterprise. + * + *

    This API can also be called by including the enterprise ID in the URL explicitly, for + * example `/metadata_templates/enterprise_12345/securityClassification-6VMVochwUWo/schema`. + * + * @param headers Headers of getClassificationTemplate method + */ public ClassificationTemplate getClassificationTemplate( GetClassificationTemplateHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -54,10 +70,29 @@ public ClassificationTemplate getClassificationTemplate( return JsonManager.deserialize(response.getData(), ClassificationTemplate.class); } + /** + * Adds one or more new classifications to the list of classifications available to the + * enterprise. + * + *

    This API can also be called by including the enterprise ID in the URL explicitly, for + * example `/metadata_templates/enterprise_12345/securityClassification-6VMVochwUWo/schema`. + * + * @param requestBody Request body of addClassification method + */ public ClassificationTemplate addClassification(List requestBody) { return addClassification(requestBody, new AddClassificationHeaders()); } + /** + * Adds one or more new classifications to the list of classifications available to the + * enterprise. + * + *

    This API can also be called by including the enterprise ID in the URL explicitly, for + * example `/metadata_templates/enterprise_12345/securityClassification-6VMVochwUWo/schema`. + * + * @param requestBody Request body of addClassification method + * @param headers Headers of addClassification method + */ public ClassificationTemplate addClassification( List requestBody, AddClassificationHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -81,11 +116,28 @@ public ClassificationTemplate addClassification( return JsonManager.deserialize(response.getData(), ClassificationTemplate.class); } + /** + * Updates the labels and descriptions of one or more classifications available to the enterprise. + * + *

    This API can also be called by including the enterprise ID in the URL explicitly, for + * example `/metadata_templates/enterprise_12345/securityClassification-6VMVochwUWo/schema`. + * + * @param requestBody Request body of updateClassification method + */ public ClassificationTemplate updateClassification( List requestBody) { return updateClassification(requestBody, new UpdateClassificationHeaders()); } + /** + * Updates the labels and descriptions of one or more classifications available to the enterprise. + * + *

    This API can also be called by including the enterprise ID in the URL explicitly, for + * example `/metadata_templates/enterprise_12345/securityClassification-6VMVochwUWo/schema`. + * + * @param requestBody Request body of updateClassification method + * @param headers Headers of updateClassification method + */ public ClassificationTemplate updateClassification( List requestBody, UpdateClassificationHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -109,11 +161,30 @@ public ClassificationTemplate updateClassification( return JsonManager.deserialize(response.getData(), ClassificationTemplate.class); } + /** + * When an enterprise does not yet have any classifications, this API call initializes the + * classification template with an initial set of classifications. + * + *

    If an enterprise already has a classification, the template will already exist and instead + * an API call should be made to add additional classifications. + * + * @param requestBody Request body of createClassificationTemplate method + */ public ClassificationTemplate createClassificationTemplate( CreateClassificationTemplateRequestBody requestBody) { return createClassificationTemplate(requestBody, new CreateClassificationTemplateHeaders()); } + /** + * When an enterprise does not yet have any classifications, this API call initializes the + * classification template with an initial set of classifications. + * + *

    If an enterprise already has a classification, the template will already exist and instead + * an API call should be made to add additional classifications. + * + * @param requestBody Request body of createClassificationTemplate method + * @param headers Headers of createClassificationTemplate method + */ public ClassificationTemplate createClassificationTemplate( CreateClassificationTemplateRequestBody requestBody, CreateClassificationTemplateHeaders headers) { diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateHeaders.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateHeaders.java index fb5b142de..0dcadab5c 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateHeaders.java @@ -6,6 +6,7 @@ public class CreateClassificationTemplateHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateClassificationTemplateHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBody.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBody.java index 7c94f1b54..1d2c6e7ad 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBody.java @@ -13,6 +13,10 @@ @JsonFilter("nullablePropertyFilter") public class CreateClassificationTemplateRequestBody extends SerializableObject { + /** + * The scope in which to create the classifications. This should be `enterprise` or + * `enterprise_{id}` where `id` is the unique ID of the enterprise. + */ @JsonDeserialize( using = CreateClassificationTemplateRequestBodyScopeField @@ -23,6 +27,7 @@ public class CreateClassificationTemplateRequestBody extends SerializableObject .CreateClassificationTemplateRequestBodyScopeFieldSerializer.class) protected EnumWrapper scope; + /** Defines the list of metadata templates. */ @JsonDeserialize( using = CreateClassificationTemplateRequestBodyTemplateKeyField @@ -33,6 +38,7 @@ public class CreateClassificationTemplateRequestBody extends SerializableObject .CreateClassificationTemplateRequestBodyTemplateKeyFieldSerializer.class) protected EnumWrapper templateKey; + /** The name of the template as shown in web and mobile interfaces. */ @JsonDeserialize( using = CreateClassificationTemplateRequestBodyDisplayNameField @@ -43,10 +49,16 @@ public class CreateClassificationTemplateRequestBody extends SerializableObject .CreateClassificationTemplateRequestBodyDisplayNameFieldSerializer.class) protected EnumWrapper displayName; + /** Determines if the classification template is hidden or available on web and mobile devices. */ protected Boolean hidden; + /** Determines if classifications are copied along when the file or folder is copied. */ protected Boolean copyInstanceOnItemCopy; + /** + * The classification template requires exactly one field, which holds all the valid + * classification values. + */ protected final List fields; public CreateClassificationTemplateRequestBody( diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsField.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsField.java index c2d82d46c..a7e77fba3 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsField.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsField.java @@ -13,6 +13,7 @@ @JsonFilter("nullablePropertyFilter") public class CreateClassificationTemplateRequestBodyFieldsField extends SerializableObject { + /** The type of the field that is always enum. */ @JsonDeserialize( using = CreateClassificationTemplateRequestBodyFieldsTypeField @@ -23,6 +24,7 @@ public class CreateClassificationTemplateRequestBodyFieldsField extends Serializ .CreateClassificationTemplateRequestBodyFieldsTypeFieldSerializer.class) protected EnumWrapper type; + /** Defines classifications available in the enterprise. */ @JsonDeserialize( using = CreateClassificationTemplateRequestBodyFieldsKeyField @@ -33,6 +35,7 @@ public class CreateClassificationTemplateRequestBodyFieldsField extends Serializ .CreateClassificationTemplateRequestBodyFieldsKeyFieldSerializer.class) protected EnumWrapper key; + /** A display name for the classification. */ @JsonDeserialize( using = CreateClassificationTemplateRequestBodyFieldsDisplayNameField @@ -43,8 +46,10 @@ public class CreateClassificationTemplateRequestBodyFieldsField extends Serializ .CreateClassificationTemplateRequestBodyFieldsDisplayNameFieldSerializer.class) protected EnumWrapper displayName; + /** Determines if the classification template is hidden or available on web and mobile devices. */ protected Boolean hidden; + /** The actual list of classifications that are present on this template. */ protected final List options; public CreateClassificationTemplateRequestBodyFieldsField( diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsOptionsField.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsOptionsField.java index 6d37a0634..bedc4b695 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsOptionsField.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsOptionsField.java @@ -9,8 +9,10 @@ @JsonFilter("nullablePropertyFilter") public class CreateClassificationTemplateRequestBodyFieldsOptionsField extends SerializableObject { + /** The display name and key this classification. This will be show in the Box UI. */ protected final String key; + /** Additional information about the classification. */ protected CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField staticConfig; public CreateClassificationTemplateRequestBodyFieldsOptionsField( diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField.java index 4a9f90012..412fd078a 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField.java @@ -10,8 +10,18 @@ public class CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField extends SerializableObject { + /** A longer description of the classification. */ protected String classificationDefinition; + /** + * An identifier used to assign a color to a classification label. + * + *

    Mapping between a `colorID` and a color may change without notice. Currently, the color + * mappings are as follows. + * + *

    * `0`: Yellow. * `1`: Orange. * `2`: Watermelon red. * `3`: Purple rain. * `4`: Light blue. + * * `5`: Dark blue. * `6`: Light green. * `7`: Gray. + */ @JsonProperty("colorID") protected Long colorId; diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField.java index e49a8dcc1..c7673ecb6 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField.java @@ -9,6 +9,7 @@ public class CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField extends SerializableObject { + /** Additional information about the classification. */ protected CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField classification; diff --git a/src/main/java/com/box/sdkgen/managers/classifications/GetClassificationTemplateHeaders.java b/src/main/java/com/box/sdkgen/managers/classifications/GetClassificationTemplateHeaders.java index 63c100ece..5ef752a24 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/GetClassificationTemplateHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/GetClassificationTemplateHeaders.java @@ -6,6 +6,7 @@ public class GetClassificationTemplateHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetClassificationTemplateHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationHeaders.java b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationHeaders.java index 094fa717f..dac6c1019 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationHeaders.java @@ -6,6 +6,7 @@ public class UpdateClassificationHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateClassificationHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBody.java b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBody.java index 9772ed820..5bd73039b 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBody.java @@ -12,6 +12,7 @@ @JsonFilter("nullablePropertyFilter") public class UpdateClassificationRequestBody extends SerializableObject { + /** The type of change to perform on the classification object. */ @JsonDeserialize( using = UpdateClassificationRequestBodyOpField.UpdateClassificationRequestBodyOpFieldDeserializer @@ -22,6 +23,7 @@ public class UpdateClassificationRequestBody extends SerializableObject { .class) protected EnumWrapper op; + /** Defines classifications available in the enterprise. */ @JsonDeserialize( using = UpdateClassificationRequestBodyFieldKeyField @@ -32,8 +34,10 @@ public class UpdateClassificationRequestBody extends SerializableObject { .UpdateClassificationRequestBodyFieldKeyFieldSerializer.class) protected EnumWrapper fieldKey; + /** The original label of the classification to change. */ protected final String enumOptionKey; + /** The details of the updated classification. */ protected final UpdateClassificationRequestBodyDataField data; public UpdateClassificationRequestBody( diff --git a/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyDataField.java b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyDataField.java index 4064239fb..e9e62f295 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyDataField.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyDataField.java @@ -9,8 +9,10 @@ @JsonFilter("nullablePropertyFilter") public class UpdateClassificationRequestBodyDataField extends SerializableObject { + /** A new label for the classification, as it will be shown in the web and mobile interfaces. */ protected final String key; + /** A static configuration for the classification. */ protected UpdateClassificationRequestBodyDataStaticConfigField staticConfig; public UpdateClassificationRequestBodyDataField(@JsonProperty("key") String key) { diff --git a/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyDataStaticConfigClassificationField.java b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyDataStaticConfigClassificationField.java index 998d5d568..7a3336854 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyDataStaticConfigClassificationField.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyDataStaticConfigClassificationField.java @@ -10,8 +10,18 @@ public class UpdateClassificationRequestBodyDataStaticConfigClassificationField extends SerializableObject { + /** A longer description of the classification. */ protected String classificationDefinition; + /** + * An internal Box identifier used to assign a color to a classification label. + * + *

    Mapping between a `colorID` and a color may change without notice. Currently, the color + * mappings are as follows. + * + *

    * `0`: Yellow. * `1`: Orange. * `2`: Watermelon red. * `3`: Purple rain. * `4`: Light blue. + * * `5`: Dark blue. * `6`: Light green. * `7`: Gray. + */ @JsonProperty("colorID") protected Long colorId; diff --git a/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyDataStaticConfigField.java b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyDataStaticConfigField.java index b773dd037..b6d275865 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyDataStaticConfigField.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyDataStaticConfigField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class UpdateClassificationRequestBodyDataStaticConfigField extends SerializableObject { + /** Additional details for the classification. */ protected UpdateClassificationRequestBodyDataStaticConfigClassificationField classification; public UpdateClassificationRequestBodyDataStaticConfigField() { diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CollaborationAllowlistEntriesManager.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CollaborationAllowlistEntriesManager.java index 5213b640a..b24566628 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CollaborationAllowlistEntriesManager.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CollaborationAllowlistEntriesManager.java @@ -31,24 +31,47 @@ protected CollaborationAllowlistEntriesManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Returns the list domains that have been deemed safe to create collaborations for within the + * current enterprise. + */ public CollaborationAllowlistEntries getCollaborationWhitelistEntries() { return getCollaborationWhitelistEntries( new GetCollaborationWhitelistEntriesQueryParams(), new GetCollaborationWhitelistEntriesHeaders()); } + /** + * Returns the list domains that have been deemed safe to create collaborations for within the + * current enterprise. + * + * @param queryParams Query parameters of getCollaborationWhitelistEntries method + */ public CollaborationAllowlistEntries getCollaborationWhitelistEntries( GetCollaborationWhitelistEntriesQueryParams queryParams) { return getCollaborationWhitelistEntries( queryParams, new GetCollaborationWhitelistEntriesHeaders()); } + /** + * Returns the list domains that have been deemed safe to create collaborations for within the + * current enterprise. + * + * @param headers Headers of getCollaborationWhitelistEntries method + */ public CollaborationAllowlistEntries getCollaborationWhitelistEntries( GetCollaborationWhitelistEntriesHeaders headers) { return getCollaborationWhitelistEntries( new GetCollaborationWhitelistEntriesQueryParams(), headers); } + /** + * Returns the list domains that have been deemed safe to create collaborations for within the + * current enterprise. + * + * @param queryParams Query parameters of getCollaborationWhitelistEntries method + * @param headers Headers of getCollaborationWhitelistEntries method + */ public CollaborationAllowlistEntries getCollaborationWhitelistEntries( GetCollaborationWhitelistEntriesQueryParams queryParams, GetCollaborationWhitelistEntriesHeaders headers) { @@ -77,12 +100,23 @@ public CollaborationAllowlistEntries getCollaborationWhitelistEntries( return JsonManager.deserialize(response.getData(), CollaborationAllowlistEntries.class); } + /** + * Creates a new entry in the list of allowed domains to allow collaboration for. + * + * @param requestBody Request body of createCollaborationWhitelistEntry method + */ public CollaborationAllowlistEntry createCollaborationWhitelistEntry( CreateCollaborationWhitelistEntryRequestBody requestBody) { return createCollaborationWhitelistEntry( requestBody, new CreateCollaborationWhitelistEntryHeaders()); } + /** + * Creates a new entry in the list of allowed domains to allow collaboration for. + * + * @param requestBody Request body of createCollaborationWhitelistEntry method + * @param headers Headers of createCollaborationWhitelistEntry method + */ public CollaborationAllowlistEntry createCollaborationWhitelistEntry( CreateCollaborationWhitelistEntryRequestBody requestBody, CreateCollaborationWhitelistEntryHeaders headers) { @@ -107,12 +141,25 @@ public CollaborationAllowlistEntry createCollaborationWhitelistEntry( return JsonManager.deserialize(response.getData(), CollaborationAllowlistEntry.class); } + /** + * Returns a domain that has been deemed safe to create collaborations for within the current + * enterprise. + * + * @param collaborationWhitelistEntryId The ID of the entry in the list. Example: "213123" + */ public CollaborationAllowlistEntry getCollaborationWhitelistEntryById( String collaborationWhitelistEntryId) { return getCollaborationWhitelistEntryById( collaborationWhitelistEntryId, new GetCollaborationWhitelistEntryByIdHeaders()); } + /** + * Returns a domain that has been deemed safe to create collaborations for within the current + * enterprise. + * + * @param collaborationWhitelistEntryId The ID of the entry in the list. Example: "213123" + * @param headers Headers of getCollaborationWhitelistEntryById method + */ public CollaborationAllowlistEntry getCollaborationWhitelistEntryById( String collaborationWhitelistEntryId, GetCollaborationWhitelistEntryByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -135,11 +182,24 @@ public CollaborationAllowlistEntry getCollaborationWhitelistEntryById( return JsonManager.deserialize(response.getData(), CollaborationAllowlistEntry.class); } + /** + * Removes a domain from the list of domains that have been deemed safe to create collaborations + * for within the current enterprise. + * + * @param collaborationWhitelistEntryId The ID of the entry in the list. Example: "213123" + */ public void deleteCollaborationWhitelistEntryById(String collaborationWhitelistEntryId) { deleteCollaborationWhitelistEntryById( collaborationWhitelistEntryId, new DeleteCollaborationWhitelistEntryByIdHeaders()); } + /** + * Removes a domain from the list of domains that have been deemed safe to create collaborations + * for within the current enterprise. + * + * @param collaborationWhitelistEntryId The ID of the entry in the list. Example: "213123" + * @param headers Headers of deleteCollaborationWhitelistEntryById method + */ public void deleteCollaborationWhitelistEntryById( String collaborationWhitelistEntryId, DeleteCollaborationWhitelistEntryByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryHeaders.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryHeaders.java index 12fa5bbbd..3b9a1e12e 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryHeaders.java @@ -6,6 +6,7 @@ public class CreateCollaborationWhitelistEntryHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateCollaborationWhitelistEntryHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryRequestBody.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryRequestBody.java index c59d267eb..f10e0c8b1 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryRequestBody.java @@ -11,8 +11,10 @@ @JsonFilter("nullablePropertyFilter") public class CreateCollaborationWhitelistEntryRequestBody extends SerializableObject { + /** The domain to add to the list of allowed domains. */ protected final String domain; + /** The direction in which to allow collaborations. */ @JsonDeserialize( using = CreateCollaborationWhitelistEntryRequestBodyDirectionField diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/DeleteCollaborationWhitelistEntryByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/DeleteCollaborationWhitelistEntryByIdHeaders.java index caf0c0796..62c7669a2 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/DeleteCollaborationWhitelistEntryByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/DeleteCollaborationWhitelistEntryByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteCollaborationWhitelistEntryByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteCollaborationWhitelistEntryByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntriesHeaders.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntriesHeaders.java index 71bf9db08..42dc23b68 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntriesHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntriesHeaders.java @@ -6,6 +6,7 @@ public class GetCollaborationWhitelistEntriesHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetCollaborationWhitelistEntriesHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntriesQueryParams.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntriesQueryParams.java index 3ac560dad..8d560fe19 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntriesQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntriesQueryParams.java @@ -2,8 +2,15 @@ public class GetCollaborationWhitelistEntriesQueryParams { + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetCollaborationWhitelistEntriesQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntryByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntryByIdHeaders.java index c73e01d50..c4840f31e 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntryByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntryByIdHeaders.java @@ -6,6 +6,7 @@ public class GetCollaborationWhitelistEntryByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetCollaborationWhitelistEntryByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargetsManager.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargetsManager.java index 718a6d7f5..0cadfecd2 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargetsManager.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargetsManager.java @@ -31,24 +31,41 @@ protected CollaborationAllowlistExemptTargetsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** Returns a list of users who have been exempt from the collaboration domain restrictions. */ public CollaborationAllowlistExemptTargets getCollaborationWhitelistExemptTargets() { return getCollaborationWhitelistExemptTargets( new GetCollaborationWhitelistExemptTargetsQueryParams(), new GetCollaborationWhitelistExemptTargetsHeaders()); } + /** + * Returns a list of users who have been exempt from the collaboration domain restrictions. + * + * @param queryParams Query parameters of getCollaborationWhitelistExemptTargets method + */ public CollaborationAllowlistExemptTargets getCollaborationWhitelistExemptTargets( GetCollaborationWhitelistExemptTargetsQueryParams queryParams) { return getCollaborationWhitelistExemptTargets( queryParams, new GetCollaborationWhitelistExemptTargetsHeaders()); } + /** + * Returns a list of users who have been exempt from the collaboration domain restrictions. + * + * @param headers Headers of getCollaborationWhitelistExemptTargets method + */ public CollaborationAllowlistExemptTargets getCollaborationWhitelistExemptTargets( GetCollaborationWhitelistExemptTargetsHeaders headers) { return getCollaborationWhitelistExemptTargets( new GetCollaborationWhitelistExemptTargetsQueryParams(), headers); } + /** + * Returns a list of users who have been exempt from the collaboration domain restrictions. + * + * @param queryParams Query parameters of getCollaborationWhitelistExemptTargets method + * @param headers Headers of getCollaborationWhitelistExemptTargets method + */ public CollaborationAllowlistExemptTargets getCollaborationWhitelistExemptTargets( GetCollaborationWhitelistExemptTargetsQueryParams queryParams, GetCollaborationWhitelistExemptTargetsHeaders headers) { @@ -77,12 +94,23 @@ public CollaborationAllowlistExemptTargets getCollaborationWhitelistExemptTarget return JsonManager.deserialize(response.getData(), CollaborationAllowlistExemptTargets.class); } + /** + * Exempts a user from the restrictions set out by the allowed list of domains for collaborations. + * + * @param requestBody Request body of createCollaborationWhitelistExemptTarget method + */ public CollaborationAllowlistExemptTarget createCollaborationWhitelistExemptTarget( CreateCollaborationWhitelistExemptTargetRequestBody requestBody) { return createCollaborationWhitelistExemptTarget( requestBody, new CreateCollaborationWhitelistExemptTargetHeaders()); } + /** + * Exempts a user from the restrictions set out by the allowed list of domains for collaborations. + * + * @param requestBody Request body of createCollaborationWhitelistExemptTarget method + * @param headers Headers of createCollaborationWhitelistExemptTarget method + */ public CollaborationAllowlistExemptTarget createCollaborationWhitelistExemptTarget( CreateCollaborationWhitelistExemptTargetRequestBody requestBody, CreateCollaborationWhitelistExemptTargetHeaders headers) { @@ -107,6 +135,12 @@ public CollaborationAllowlistExemptTarget createCollaborationWhitelistExemptTarg return JsonManager.deserialize(response.getData(), CollaborationAllowlistExemptTarget.class); } + /** + * Returns a users who has been exempt from the collaboration domain restrictions. + * + * @param collaborationWhitelistExemptTargetId The ID of the exemption to the list. Example: + * "984923" + */ public CollaborationAllowlistExemptTarget getCollaborationWhitelistExemptTargetById( String collaborationWhitelistExemptTargetId) { return getCollaborationWhitelistExemptTargetById( @@ -114,6 +148,13 @@ public CollaborationAllowlistExemptTarget getCollaborationWhitelistExemptTargetB new GetCollaborationWhitelistExemptTargetByIdHeaders()); } + /** + * Returns a users who has been exempt from the collaboration domain restrictions. + * + * @param collaborationWhitelistExemptTargetId The ID of the exemption to the list. Example: + * "984923" + * @param headers Headers of getCollaborationWhitelistExemptTargetById method + */ public CollaborationAllowlistExemptTarget getCollaborationWhitelistExemptTargetById( String collaborationWhitelistExemptTargetId, GetCollaborationWhitelistExemptTargetByIdHeaders headers) { @@ -137,6 +178,13 @@ public CollaborationAllowlistExemptTarget getCollaborationWhitelistExemptTargetB return JsonManager.deserialize(response.getData(), CollaborationAllowlistExemptTarget.class); } + /** + * Removes a user's exemption from the restrictions set out by the allowed list of domains for + * collaborations. + * + * @param collaborationWhitelistExemptTargetId The ID of the exemption to the list. Example: + * "984923" + */ public void deleteCollaborationWhitelistExemptTargetById( String collaborationWhitelistExemptTargetId) { deleteCollaborationWhitelistExemptTargetById( @@ -144,6 +192,14 @@ public void deleteCollaborationWhitelistExemptTargetById( new DeleteCollaborationWhitelistExemptTargetByIdHeaders()); } + /** + * Removes a user's exemption from the restrictions set out by the allowed list of domains for + * collaborations. + * + * @param collaborationWhitelistExemptTargetId The ID of the exemption to the list. Example: + * "984923" + * @param headers Headers of deleteCollaborationWhitelistExemptTargetById method + */ public void deleteCollaborationWhitelistExemptTargetById( String collaborationWhitelistExemptTargetId, DeleteCollaborationWhitelistExemptTargetByIdHeaders headers) { diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetHeaders.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetHeaders.java index e8510f749..96e7d12b5 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetHeaders.java @@ -6,6 +6,7 @@ public class CreateCollaborationWhitelistExemptTargetHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateCollaborationWhitelistExemptTargetHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetRequestBody.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetRequestBody.java index 16ca1eb34..4e4151e6f 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetRequestBody.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class CreateCollaborationWhitelistExemptTargetRequestBody extends SerializableObject { + /** The user to exempt. */ protected final CreateCollaborationWhitelistExemptTargetRequestBodyUserField user; public CreateCollaborationWhitelistExemptTargetRequestBody( diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetRequestBodyUserField.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetRequestBodyUserField.java index a469546ba..96741254a 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetRequestBodyUserField.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetRequestBodyUserField.java @@ -9,6 +9,7 @@ public class CreateCollaborationWhitelistExemptTargetRequestBodyUserField extends SerializableObject { + /** The ID of the user to exempt. */ protected final String id; public CreateCollaborationWhitelistExemptTargetRequestBodyUserField( diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/DeleteCollaborationWhitelistExemptTargetByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/DeleteCollaborationWhitelistExemptTargetByIdHeaders.java index 66b2bc96d..63a9b7a41 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/DeleteCollaborationWhitelistExemptTargetByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/DeleteCollaborationWhitelistExemptTargetByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteCollaborationWhitelistExemptTargetByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteCollaborationWhitelistExemptTargetByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetByIdHeaders.java index bc647c990..007abf104 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetByIdHeaders.java @@ -6,6 +6,7 @@ public class GetCollaborationWhitelistExemptTargetByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetCollaborationWhitelistExemptTargetByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetsHeaders.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetsHeaders.java index bc393c014..4f78dd96a 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetsHeaders.java @@ -6,6 +6,7 @@ public class GetCollaborationWhitelistExemptTargetsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetCollaborationWhitelistExemptTargetsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetsQueryParams.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetsQueryParams.java index ab7aeeaa2..ff62d6ec1 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetsQueryParams.java @@ -2,8 +2,15 @@ public class GetCollaborationWhitelistExemptTargetsQueryParams { + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetCollaborationWhitelistExemptTargetsQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/collections/CollectionsManager.java b/src/main/java/com/box/sdkgen/managers/collections/CollectionsManager.java index 1fb4c631a..5df9fdd66 100644 --- a/src/main/java/com/box/sdkgen/managers/collections/CollectionsManager.java +++ b/src/main/java/com/box/sdkgen/managers/collections/CollectionsManager.java @@ -32,18 +32,45 @@ protected CollectionsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves all collections for a given user. + * + *

    Currently, only the `favorites` collection is supported. + */ public Collections getCollections() { return getCollections(new GetCollectionsQueryParams(), new GetCollectionsHeaders()); } + /** + * Retrieves all collections for a given user. + * + *

    Currently, only the `favorites` collection is supported. + * + * @param queryParams Query parameters of getCollections method + */ public Collections getCollections(GetCollectionsQueryParams queryParams) { return getCollections(queryParams, new GetCollectionsHeaders()); } + /** + * Retrieves all collections for a given user. + * + *

    Currently, only the `favorites` collection is supported. + * + * @param headers Headers of getCollections method + */ public Collections getCollections(GetCollectionsHeaders headers) { return getCollections(new GetCollectionsQueryParams(), headers); } + /** + * Retrieves all collections for a given user. + * + *

    Currently, only the `favorites` collection is supported. + * + * @param queryParams Query parameters of getCollections method + * @param headers Headers of getCollections method + */ public Collections getCollections( GetCollectionsQueryParams queryParams, GetCollectionsHeaders headers) { Map queryParamsMap = @@ -70,21 +97,45 @@ public Collections getCollections( return JsonManager.deserialize(response.getData(), Collections.class); } + /** + * Retrieves the files and/or folders contained within this collection. + * + * @param collectionId The ID of the collection. Example: "926489" + */ public ItemsOffsetPaginated getCollectionItems(String collectionId) { return getCollectionItems( collectionId, new GetCollectionItemsQueryParams(), new GetCollectionItemsHeaders()); } + /** + * Retrieves the files and/or folders contained within this collection. + * + * @param collectionId The ID of the collection. Example: "926489" + * @param queryParams Query parameters of getCollectionItems method + */ public ItemsOffsetPaginated getCollectionItems( String collectionId, GetCollectionItemsQueryParams queryParams) { return getCollectionItems(collectionId, queryParams, new GetCollectionItemsHeaders()); } + /** + * Retrieves the files and/or folders contained within this collection. + * + * @param collectionId The ID of the collection. Example: "926489" + * @param headers Headers of getCollectionItems method + */ public ItemsOffsetPaginated getCollectionItems( String collectionId, GetCollectionItemsHeaders headers) { return getCollectionItems(collectionId, new GetCollectionItemsQueryParams(), headers); } + /** + * Retrieves the files and/or folders contained within this collection. + * + * @param collectionId The ID of the collection. Example: "926489" + * @param queryParams Query parameters of getCollectionItems method + * @param headers Headers of getCollectionItems method + */ public ItemsOffsetPaginated getCollectionItems( String collectionId, GetCollectionItemsQueryParams queryParams, @@ -117,10 +168,21 @@ public ItemsOffsetPaginated getCollectionItems( return JsonManager.deserialize(response.getData(), ItemsOffsetPaginated.class); } + /** + * Retrieves a collection by its ID. + * + * @param collectionId The ID of the collection. Example: "926489" + */ public Collection getCollectionById(String collectionId) { return getCollectionById(collectionId, new GetCollectionByIdHeaders()); } + /** + * Retrieves a collection by its ID. + * + * @param collectionId The ID of the collection. Example: "926489" + * @param headers Headers of getCollectionById method + */ public Collection getCollectionById(String collectionId, GetCollectionByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = diff --git a/src/main/java/com/box/sdkgen/managers/collections/GetCollectionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionByIdHeaders.java index 43a652f6e..33b8daafd 100644 --- a/src/main/java/com/box/sdkgen/managers/collections/GetCollectionByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionByIdHeaders.java @@ -6,6 +6,7 @@ public class GetCollectionByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetCollectionByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/collections/GetCollectionItemsHeaders.java b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionItemsHeaders.java index d8f38be4d..cde549503 100644 --- a/src/main/java/com/box/sdkgen/managers/collections/GetCollectionItemsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionItemsHeaders.java @@ -6,6 +6,7 @@ public class GetCollectionItemsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetCollectionItemsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/collections/GetCollectionItemsQueryParams.java b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionItemsQueryParams.java index 293075fee..11ec17385 100644 --- a/src/main/java/com/box/sdkgen/managers/collections/GetCollectionItemsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionItemsQueryParams.java @@ -4,10 +4,24 @@ public class GetCollectionItemsQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; + /** + * The offset of the item at which to begin the response. + * + *

    Queries with offset parameter value exceeding 10000 will be rejected with a 400 response. + */ public Long offset; + /** The maximum number of items to return per page. */ public Long limit; public GetCollectionItemsQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/collections/GetCollectionsHeaders.java b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionsHeaders.java index 2a8de5381..6c0eeac72 100644 --- a/src/main/java/com/box/sdkgen/managers/collections/GetCollectionsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionsHeaders.java @@ -6,6 +6,7 @@ public class GetCollectionsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetCollectionsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/collections/GetCollectionsQueryParams.java b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionsQueryParams.java index 5f6e524ea..78d78b5d9 100644 --- a/src/main/java/com/box/sdkgen/managers/collections/GetCollectionsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionsQueryParams.java @@ -4,10 +4,24 @@ public class GetCollectionsQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; + /** + * The offset of the item at which to begin the response. + * + *

    Queries with offset parameter value exceeding 10000 will be rejected with a 400 response. + */ public Long offset; + /** The maximum number of items to return per page. */ public Long limit; public GetCollectionsQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/comments/CommentsManager.java b/src/main/java/com/box/sdkgen/managers/comments/CommentsManager.java index 36e4ce36e..f7de8c8db 100644 --- a/src/main/java/com/box/sdkgen/managers/comments/CommentsManager.java +++ b/src/main/java/com/box/sdkgen/managers/comments/CommentsManager.java @@ -31,18 +31,54 @@ protected CommentsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves a list of comments for a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + */ public Comments getFileComments(String fileId) { return getFileComments(fileId, new GetFileCommentsQueryParams(), new GetFileCommentsHeaders()); } + /** + * Retrieves a list of comments for a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of getFileComments method + */ public Comments getFileComments(String fileId, GetFileCommentsQueryParams queryParams) { return getFileComments(fileId, queryParams, new GetFileCommentsHeaders()); } + /** + * Retrieves a list of comments for a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param headers Headers of getFileComments method + */ public Comments getFileComments(String fileId, GetFileCommentsHeaders headers) { return getFileComments(fileId, new GetFileCommentsQueryParams(), headers); } + /** + * Retrieves a list of comments for a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of getFileComments method + * @param headers Headers of getFileComments method + */ public Comments getFileComments( String fileId, GetFileCommentsQueryParams queryParams, GetFileCommentsHeaders headers) { Map queryParamsMap = @@ -73,18 +109,46 @@ public Comments getFileComments( return JsonManager.deserialize(response.getData(), Comments.class); } + /** + * Retrieves the message and metadata for a specific comment, as well as information on the user + * who created the comment. + * + * @param commentId The ID of the comment. Example: "12345" + */ public CommentFull getCommentById(String commentId) { return getCommentById(commentId, new GetCommentByIdQueryParams(), new GetCommentByIdHeaders()); } + /** + * Retrieves the message and metadata for a specific comment, as well as information on the user + * who created the comment. + * + * @param commentId The ID of the comment. Example: "12345" + * @param queryParams Query parameters of getCommentById method + */ public CommentFull getCommentById(String commentId, GetCommentByIdQueryParams queryParams) { return getCommentById(commentId, queryParams, new GetCommentByIdHeaders()); } + /** + * Retrieves the message and metadata for a specific comment, as well as information on the user + * who created the comment. + * + * @param commentId The ID of the comment. Example: "12345" + * @param headers Headers of getCommentById method + */ public CommentFull getCommentById(String commentId, GetCommentByIdHeaders headers) { return getCommentById(commentId, new GetCommentByIdQueryParams(), headers); } + /** + * Retrieves the message and metadata for a specific comment, as well as information on the user + * who created the comment. + * + * @param commentId The ID of the comment. Example: "12345" + * @param queryParams Query parameters of getCommentById method + * @param headers Headers of getCommentById method + */ public CommentFull getCommentById( String commentId, GetCommentByIdQueryParams queryParams, GetCommentByIdHeaders headers) { Map queryParamsMap = @@ -110,6 +174,11 @@ public CommentFull getCommentById( return JsonManager.deserialize(response.getData(), CommentFull.class); } + /** + * Update the message of a comment. + * + * @param commentId The ID of the comment. Example: "12345" + */ public CommentFull updateCommentById(String commentId) { return updateCommentById( commentId, @@ -118,16 +187,35 @@ public CommentFull updateCommentById(String commentId) { new UpdateCommentByIdHeaders()); } + /** + * Update the message of a comment. + * + * @param commentId The ID of the comment. Example: "12345" + * @param requestBody Request body of updateCommentById method + */ public CommentFull updateCommentById(String commentId, UpdateCommentByIdRequestBody requestBody) { return updateCommentById( commentId, requestBody, new UpdateCommentByIdQueryParams(), new UpdateCommentByIdHeaders()); } + /** + * Update the message of a comment. + * + * @param commentId The ID of the comment. Example: "12345" + * @param queryParams Query parameters of updateCommentById method + */ public CommentFull updateCommentById(String commentId, UpdateCommentByIdQueryParams queryParams) { return updateCommentById( commentId, new UpdateCommentByIdRequestBody(), queryParams, new UpdateCommentByIdHeaders()); } + /** + * Update the message of a comment. + * + * @param commentId The ID of the comment. Example: "12345" + * @param requestBody Request body of updateCommentById method + * @param queryParams Query parameters of updateCommentById method + */ public CommentFull updateCommentById( String commentId, UpdateCommentByIdRequestBody requestBody, @@ -135,11 +223,24 @@ public CommentFull updateCommentById( return updateCommentById(commentId, requestBody, queryParams, new UpdateCommentByIdHeaders()); } + /** + * Update the message of a comment. + * + * @param commentId The ID of the comment. Example: "12345" + * @param headers Headers of updateCommentById method + */ public CommentFull updateCommentById(String commentId, UpdateCommentByIdHeaders headers) { return updateCommentById( commentId, new UpdateCommentByIdRequestBody(), new UpdateCommentByIdQueryParams(), headers); } + /** + * Update the message of a comment. + * + * @param commentId The ID of the comment. Example: "12345" + * @param requestBody Request body of updateCommentById method + * @param headers Headers of updateCommentById method + */ public CommentFull updateCommentById( String commentId, UpdateCommentByIdRequestBody requestBody, @@ -147,6 +248,13 @@ public CommentFull updateCommentById( return updateCommentById(commentId, requestBody, new UpdateCommentByIdQueryParams(), headers); } + /** + * Update the message of a comment. + * + * @param commentId The ID of the comment. Example: "12345" + * @param queryParams Query parameters of updateCommentById method + * @param headers Headers of updateCommentById method + */ public CommentFull updateCommentById( String commentId, UpdateCommentByIdQueryParams queryParams, @@ -154,6 +262,14 @@ public CommentFull updateCommentById( return updateCommentById(commentId, new UpdateCommentByIdRequestBody(), queryParams, headers); } + /** + * Update the message of a comment. + * + * @param commentId The ID of the comment. Example: "12345" + * @param requestBody Request body of updateCommentById method + * @param queryParams Query parameters of updateCommentById method + * @param headers Headers of updateCommentById method + */ public CommentFull updateCommentById( String commentId, UpdateCommentByIdRequestBody requestBody, @@ -184,10 +300,21 @@ public CommentFull updateCommentById( return JsonManager.deserialize(response.getData(), CommentFull.class); } + /** + * Permanently deletes a comment. + * + * @param commentId The ID of the comment. Example: "12345" + */ public void deleteCommentById(String commentId) { deleteCommentById(commentId, new DeleteCommentByIdHeaders()); } + /** + * Permanently deletes a comment. + * + * @param commentId The ID of the comment. Example: "12345" + * @param headers Headers of deleteCommentById method + */ public void deleteCommentById(String commentId, DeleteCommentByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = @@ -208,20 +335,44 @@ public void deleteCommentById(String commentId, DeleteCommentByIdHeaders headers .build()); } + /** + * Adds a comment by the user to a specific file, or as a reply to an other comment. + * + * @param requestBody Request body of createComment method + */ public CommentFull createComment(CreateCommentRequestBody requestBody) { return createComment(requestBody, new CreateCommentQueryParams(), new CreateCommentHeaders()); } + /** + * Adds a comment by the user to a specific file, or as a reply to an other comment. + * + * @param requestBody Request body of createComment method + * @param queryParams Query parameters of createComment method + */ public CommentFull createComment( CreateCommentRequestBody requestBody, CreateCommentQueryParams queryParams) { return createComment(requestBody, queryParams, new CreateCommentHeaders()); } + /** + * Adds a comment by the user to a specific file, or as a reply to an other comment. + * + * @param requestBody Request body of createComment method + * @param headers Headers of createComment method + */ public CommentFull createComment( CreateCommentRequestBody requestBody, CreateCommentHeaders headers) { return createComment(requestBody, new CreateCommentQueryParams(), headers); } + /** + * Adds a comment by the user to a specific file, or as a reply to an other comment. + * + * @param requestBody Request body of createComment method + * @param queryParams Query parameters of createComment method + * @param headers Headers of createComment method + */ public CommentFull createComment( CreateCommentRequestBody requestBody, CreateCommentQueryParams queryParams, diff --git a/src/main/java/com/box/sdkgen/managers/comments/CreateCommentHeaders.java b/src/main/java/com/box/sdkgen/managers/comments/CreateCommentHeaders.java index eb1594897..c86a264c1 100644 --- a/src/main/java/com/box/sdkgen/managers/comments/CreateCommentHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/comments/CreateCommentHeaders.java @@ -6,6 +6,7 @@ public class CreateCommentHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateCommentHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/comments/CreateCommentQueryParams.java b/src/main/java/com/box/sdkgen/managers/comments/CreateCommentQueryParams.java index 9bf00ce18..48c404882 100644 --- a/src/main/java/com/box/sdkgen/managers/comments/CreateCommentQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/comments/CreateCommentQueryParams.java @@ -4,6 +4,14 @@ public class CreateCommentQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public CreateCommentQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/comments/CreateCommentRequestBody.java b/src/main/java/com/box/sdkgen/managers/comments/CreateCommentRequestBody.java index 0821fefa8..852479204 100644 --- a/src/main/java/com/box/sdkgen/managers/comments/CreateCommentRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/comments/CreateCommentRequestBody.java @@ -9,11 +9,27 @@ @JsonFilter("nullablePropertyFilter") public class CreateCommentRequestBody extends SerializableObject { + /** + * The text of the comment. + * + *

    To mention a user, use the `tagged_message` parameter instead. + */ protected final String message; + /** + * The text of the comment, including `@[user_id:name]` somewhere in the message to mention + * another user, which will send them an email notification, letting them know they have been + * mentioned. + * + *

    The `user_id` is the target user's ID, where the `name` can be any custom phrase. In the Box + * UI this name will link to the user's profile. + * + *

    If you are not mentioning another user, use `message` instead. + */ @JsonProperty("tagged_message") protected String taggedMessage; + /** The item to attach the comment to. */ protected final CreateCommentRequestBodyItemField item; public CreateCommentRequestBody( diff --git a/src/main/java/com/box/sdkgen/managers/comments/CreateCommentRequestBodyItemField.java b/src/main/java/com/box/sdkgen/managers/comments/CreateCommentRequestBodyItemField.java index 69d0ff727..2c179718e 100644 --- a/src/main/java/com/box/sdkgen/managers/comments/CreateCommentRequestBodyItemField.java +++ b/src/main/java/com/box/sdkgen/managers/comments/CreateCommentRequestBodyItemField.java @@ -11,8 +11,10 @@ @JsonFilter("nullablePropertyFilter") public class CreateCommentRequestBodyItemField extends SerializableObject { + /** The ID of the item. */ protected final String id; + /** The type of the item that this comment will be placed on. */ @JsonDeserialize( using = CreateCommentRequestBodyItemTypeField.CreateCommentRequestBodyItemTypeFieldDeserializer diff --git a/src/main/java/com/box/sdkgen/managers/comments/DeleteCommentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/comments/DeleteCommentByIdHeaders.java index 67df38ea6..6763bc788 100644 --- a/src/main/java/com/box/sdkgen/managers/comments/DeleteCommentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/comments/DeleteCommentByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteCommentByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteCommentByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/comments/GetCommentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/comments/GetCommentByIdHeaders.java index fd81e7571..8fff207d8 100644 --- a/src/main/java/com/box/sdkgen/managers/comments/GetCommentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/comments/GetCommentByIdHeaders.java @@ -6,6 +6,7 @@ public class GetCommentByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetCommentByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/comments/GetCommentByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/comments/GetCommentByIdQueryParams.java index dec7e8de9..5fe607c7a 100644 --- a/src/main/java/com/box/sdkgen/managers/comments/GetCommentByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/comments/GetCommentByIdQueryParams.java @@ -4,6 +4,14 @@ public class GetCommentByIdQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public GetCommentByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/comments/GetFileCommentsHeaders.java b/src/main/java/com/box/sdkgen/managers/comments/GetFileCommentsHeaders.java index a783fe8df..054a242fd 100644 --- a/src/main/java/com/box/sdkgen/managers/comments/GetFileCommentsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/comments/GetFileCommentsHeaders.java @@ -6,6 +6,7 @@ public class GetFileCommentsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFileCommentsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/comments/GetFileCommentsQueryParams.java b/src/main/java/com/box/sdkgen/managers/comments/GetFileCommentsQueryParams.java index 78a6c6802..b4892443a 100644 --- a/src/main/java/com/box/sdkgen/managers/comments/GetFileCommentsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/comments/GetFileCommentsQueryParams.java @@ -4,10 +4,24 @@ public class GetFileCommentsQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; + /** The maximum number of items to return per page. */ public Long limit; + /** + * The offset of the item at which to begin the response. + * + *

    Queries with offset parameter value exceeding 10000 will be rejected with a 400 response. + */ public Long offset; public GetFileCommentsQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdHeaders.java index 360077982..e83ee1d73 100644 --- a/src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdHeaders.java @@ -6,6 +6,7 @@ public class UpdateCommentByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateCommentByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdQueryParams.java index 6e0062745..1933f1836 100644 --- a/src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdQueryParams.java @@ -4,6 +4,14 @@ public class UpdateCommentByIdQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public UpdateCommentByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdRequestBody.java index 2c2c5726a..a06241c21 100644 --- a/src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdRequestBody.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class UpdateCommentByIdRequestBody extends SerializableObject { + /** The text of the comment to update. */ protected String message; public UpdateCommentByIdRequestBody() { diff --git a/src/main/java/com/box/sdkgen/managers/devicepinners/DeleteDevicePinnerByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/devicepinners/DeleteDevicePinnerByIdHeaders.java index d8a870ac6..e210fd737 100644 --- a/src/main/java/com/box/sdkgen/managers/devicepinners/DeleteDevicePinnerByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/devicepinners/DeleteDevicePinnerByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteDevicePinnerByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteDevicePinnerByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/devicepinners/DevicePinnersManager.java b/src/main/java/com/box/sdkgen/managers/devicepinners/DevicePinnersManager.java index 4ee309cac..a7cab0d68 100644 --- a/src/main/java/com/box/sdkgen/managers/devicepinners/DevicePinnersManager.java +++ b/src/main/java/com/box/sdkgen/managers/devicepinners/DevicePinnersManager.java @@ -31,10 +31,21 @@ protected DevicePinnersManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves information about an individual device pin. + * + * @param devicePinnerId The ID of the device pin. Example: "2324234" + */ public DevicePinner getDevicePinnerById(String devicePinnerId) { return getDevicePinnerById(devicePinnerId, new GetDevicePinnerByIdHeaders()); } + /** + * Retrieves information about an individual device pin. + * + * @param devicePinnerId The ID of the device pin. Example: "2324234" + * @param headers Headers of getDevicePinnerById method + */ public DevicePinner getDevicePinnerById( String devicePinnerId, GetDevicePinnerByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -57,10 +68,21 @@ public DevicePinner getDevicePinnerById( return JsonManager.deserialize(response.getData(), DevicePinner.class); } + /** + * Deletes an individual device pin. + * + * @param devicePinnerId The ID of the device pin. Example: "2324234" + */ public void deleteDevicePinnerById(String devicePinnerId) { deleteDevicePinnerById(devicePinnerId, new DeleteDevicePinnerByIdHeaders()); } + /** + * Deletes an individual device pin. + * + * @param devicePinnerId The ID of the device pin. Example: "2324234" + * @param headers Headers of deleteDevicePinnerById method + */ public void deleteDevicePinnerById(String devicePinnerId, DeleteDevicePinnerByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = @@ -81,6 +103,14 @@ public void deleteDevicePinnerById(String devicePinnerId, DeleteDevicePinnerById .build()); } + /** + * Retrieves all the device pins within an enterprise. + * + *

    The user must have admin privileges, and the application needs the "manage enterprise" scope + * to make this call. + * + * @param enterpriseId The ID of the enterprise. Example: "3442311" + */ public DevicePinners getEnterpriseDevicePinners(String enterpriseId) { return getEnterpriseDevicePinners( enterpriseId, @@ -88,18 +118,46 @@ public DevicePinners getEnterpriseDevicePinners(String enterpriseId) { new GetEnterpriseDevicePinnersHeaders()); } + /** + * Retrieves all the device pins within an enterprise. + * + *

    The user must have admin privileges, and the application needs the "manage enterprise" scope + * to make this call. + * + * @param enterpriseId The ID of the enterprise. Example: "3442311" + * @param queryParams Query parameters of getEnterpriseDevicePinners method + */ public DevicePinners getEnterpriseDevicePinners( String enterpriseId, GetEnterpriseDevicePinnersQueryParams queryParams) { return getEnterpriseDevicePinners( enterpriseId, queryParams, new GetEnterpriseDevicePinnersHeaders()); } + /** + * Retrieves all the device pins within an enterprise. + * + *

    The user must have admin privileges, and the application needs the "manage enterprise" scope + * to make this call. + * + * @param enterpriseId The ID of the enterprise. Example: "3442311" + * @param headers Headers of getEnterpriseDevicePinners method + */ public DevicePinners getEnterpriseDevicePinners( String enterpriseId, GetEnterpriseDevicePinnersHeaders headers) { return getEnterpriseDevicePinners( enterpriseId, new GetEnterpriseDevicePinnersQueryParams(), headers); } + /** + * Retrieves all the device pins within an enterprise. + * + *

    The user must have admin privileges, and the application needs the "manage enterprise" scope + * to make this call. + * + * @param enterpriseId The ID of the enterprise. Example: "3442311" + * @param queryParams Query parameters of getEnterpriseDevicePinners method + * @param headers Headers of getEnterpriseDevicePinners method + */ public DevicePinners getEnterpriseDevicePinners( String enterpriseId, GetEnterpriseDevicePinnersQueryParams queryParams, diff --git a/src/main/java/com/box/sdkgen/managers/devicepinners/GetDevicePinnerByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/devicepinners/GetDevicePinnerByIdHeaders.java index a7e8cea8f..a1027cb1a 100644 --- a/src/main/java/com/box/sdkgen/managers/devicepinners/GetDevicePinnerByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/devicepinners/GetDevicePinnerByIdHeaders.java @@ -6,6 +6,7 @@ public class GetDevicePinnerByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetDevicePinnerByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersHeaders.java b/src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersHeaders.java index bdb537f6b..44b1b3940 100644 --- a/src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersHeaders.java @@ -6,6 +6,7 @@ public class GetEnterpriseDevicePinnersHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetEnterpriseDevicePinnersHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersQueryParams.java b/src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersQueryParams.java index 3c1510981..7f7a3554b 100644 --- a/src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersQueryParams.java @@ -4,10 +4,21 @@ public class GetEnterpriseDevicePinnersQueryParams { + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; + /** + * The direction to sort results in. This can be either in alphabetical ascending (`ASC`) or + * descending (`DESC`) order. + */ public EnumWrapper direction; public GetEnterpriseDevicePinnersQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/docgen/CreateDocgenBatchV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgen/CreateDocgenBatchV2025R0Headers.java index 2cf368c15..8a3ef96b0 100644 --- a/src/main/java/com/box/sdkgen/managers/docgen/CreateDocgenBatchV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/docgen/CreateDocgenBatchV2025R0Headers.java @@ -8,8 +8,10 @@ public class CreateDocgenBatchV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateDocgenBatchV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/docgen/DocgenManager.java b/src/main/java/com/box/sdkgen/managers/docgen/DocgenManager.java index 2bb738f97..d33ff1505 100644 --- a/src/main/java/com/box/sdkgen/managers/docgen/DocgenManager.java +++ b/src/main/java/com/box/sdkgen/managers/docgen/DocgenManager.java @@ -34,10 +34,21 @@ protected DocgenManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Get details of the Box Doc Gen job. + * + * @param jobId Box Doc Gen job ID. Example: 123 + */ public DocGenJobV2025R0 getDocgenJobByIdV2025R0(String jobId) { return getDocgenJobByIdV2025R0(jobId, new GetDocgenJobByIdV2025R0Headers()); } + /** + * Get details of the Box Doc Gen job. + * + * @param jobId Box Doc Gen job ID. Example: 123 + * @param headers Headers of getDocgenJobByIdV2025R0 method + */ public DocGenJobV2025R0 getDocgenJobByIdV2025R0( String jobId, GetDocgenJobByIdV2025R0Headers headers) { Map headersMap = @@ -64,19 +75,36 @@ public DocGenJobV2025R0 getDocgenJobByIdV2025R0( return JsonManager.deserialize(response.getData(), DocGenJobV2025R0.class); } + /** Lists all Box Doc Gen jobs for a user. */ public DocGenJobsFullV2025R0 getDocgenJobsV2025R0() { return getDocgenJobsV2025R0( new GetDocgenJobsV2025R0QueryParams(), new GetDocgenJobsV2025R0Headers()); } + /** + * Lists all Box Doc Gen jobs for a user. + * + * @param queryParams Query parameters of getDocgenJobsV2025R0 method + */ public DocGenJobsFullV2025R0 getDocgenJobsV2025R0(GetDocgenJobsV2025R0QueryParams queryParams) { return getDocgenJobsV2025R0(queryParams, new GetDocgenJobsV2025R0Headers()); } + /** + * Lists all Box Doc Gen jobs for a user. + * + * @param headers Headers of getDocgenJobsV2025R0 method + */ public DocGenJobsFullV2025R0 getDocgenJobsV2025R0(GetDocgenJobsV2025R0Headers headers) { return getDocgenJobsV2025R0(new GetDocgenJobsV2025R0QueryParams(), headers); } + /** + * Lists all Box Doc Gen jobs for a user. + * + * @param queryParams Query parameters of getDocgenJobsV2025R0 method + * @param headers Headers of getDocgenJobsV2025R0 method + */ public DocGenJobsFullV2025R0 getDocgenJobsV2025R0( GetDocgenJobsV2025R0QueryParams queryParams, GetDocgenJobsV2025R0Headers headers) { Map queryParamsMap = @@ -106,6 +134,11 @@ public DocGenJobsFullV2025R0 getDocgenJobsV2025R0( return JsonManager.deserialize(response.getData(), DocGenJobsFullV2025R0.class); } + /** + * Lists Box Doc Gen jobs in a batch. + * + * @param batchId Box Doc Gen batch ID. Example: 123 + */ public DocGenJobsV2025R0 getDocgenBatchJobByIdV2025R0(String batchId) { return getDocgenBatchJobByIdV2025R0( batchId, @@ -113,18 +146,37 @@ public DocGenJobsV2025R0 getDocgenBatchJobByIdV2025R0(String batchId) { new GetDocgenBatchJobByIdV2025R0Headers()); } + /** + * Lists Box Doc Gen jobs in a batch. + * + * @param batchId Box Doc Gen batch ID. Example: 123 + * @param queryParams Query parameters of getDocgenBatchJobByIdV2025R0 method + */ public DocGenJobsV2025R0 getDocgenBatchJobByIdV2025R0( String batchId, GetDocgenBatchJobByIdV2025R0QueryParams queryParams) { return getDocgenBatchJobByIdV2025R0( batchId, queryParams, new GetDocgenBatchJobByIdV2025R0Headers()); } + /** + * Lists Box Doc Gen jobs in a batch. + * + * @param batchId Box Doc Gen batch ID. Example: 123 + * @param headers Headers of getDocgenBatchJobByIdV2025R0 method + */ public DocGenJobsV2025R0 getDocgenBatchJobByIdV2025R0( String batchId, GetDocgenBatchJobByIdV2025R0Headers headers) { return getDocgenBatchJobByIdV2025R0( batchId, new GetDocgenBatchJobByIdV2025R0QueryParams(), headers); } + /** + * Lists Box Doc Gen jobs in a batch. + * + * @param batchId Box Doc Gen batch ID. Example: 123 + * @param queryParams Query parameters of getDocgenBatchJobByIdV2025R0 method + * @param headers Headers of getDocgenBatchJobByIdV2025R0 method + */ public DocGenJobsV2025R0 getDocgenBatchJobByIdV2025R0( String batchId, GetDocgenBatchJobByIdV2025R0QueryParams queryParams, @@ -159,11 +211,22 @@ public DocGenJobsV2025R0 getDocgenBatchJobByIdV2025R0( return JsonManager.deserialize(response.getData(), DocGenJobsV2025R0.class); } + /** + * Generates a document using a Box Doc Gen template. + * + * @param requestBody Request body of createDocgenBatchV2025R0 method + */ public DocGenBatchBaseV2025R0 createDocgenBatchV2025R0( DocGenBatchCreateRequestV2025R0 requestBody) { return createDocgenBatchV2025R0(requestBody, new CreateDocgenBatchV2025R0Headers()); } + /** + * Generates a document using a Box Doc Gen template. + * + * @param requestBody Request body of createDocgenBatchV2025R0 method + * @param headers Headers of createDocgenBatchV2025R0 method + */ public DocGenBatchBaseV2025R0 createDocgenBatchV2025R0( DocGenBatchCreateRequestV2025R0 requestBody, CreateDocgenBatchV2025R0Headers headers) { Map headersMap = diff --git a/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenBatchJobByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenBatchJobByIdV2025R0Headers.java index b48da52af..ebdc5683f 100644 --- a/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenBatchJobByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenBatchJobByIdV2025R0Headers.java @@ -8,8 +8,10 @@ public class GetDocgenBatchJobByIdV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetDocgenBatchJobByIdV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenBatchJobByIdV2025R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenBatchJobByIdV2025R0QueryParams.java index 65d0693d6..2e39d9db5 100644 --- a/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenBatchJobByIdV2025R0QueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenBatchJobByIdV2025R0QueryParams.java @@ -2,8 +2,15 @@ public class GetDocgenBatchJobByIdV2025R0QueryParams { + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetDocgenBatchJobByIdV2025R0QueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobByIdV2025R0Headers.java index 99b27f928..8bf89d849 100644 --- a/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobByIdV2025R0Headers.java @@ -8,8 +8,10 @@ public class GetDocgenJobByIdV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetDocgenJobByIdV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobsV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobsV2025R0Headers.java index 53cd19138..60a146cd8 100644 --- a/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobsV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobsV2025R0Headers.java @@ -8,8 +8,10 @@ public class GetDocgenJobsV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetDocgenJobsV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobsV2025R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobsV2025R0QueryParams.java index a2ede732f..e89f20daf 100644 --- a/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobsV2025R0QueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobsV2025R0QueryParams.java @@ -2,8 +2,15 @@ public class GetDocgenJobsV2025R0QueryParams { + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetDocgenJobsV2025R0QueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/CreateDocgenTemplateV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/CreateDocgenTemplateV2025R0Headers.java index 729def149..67c30b870 100644 --- a/src/main/java/com/box/sdkgen/managers/docgentemplate/CreateDocgenTemplateV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/CreateDocgenTemplateV2025R0Headers.java @@ -8,8 +8,10 @@ public class CreateDocgenTemplateV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateDocgenTemplateV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/DeleteDocgenTemplateByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/DeleteDocgenTemplateByIdV2025R0Headers.java index 18a7f47da..30f3d9929 100644 --- a/src/main/java/com/box/sdkgen/managers/docgentemplate/DeleteDocgenTemplateByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/DeleteDocgenTemplateByIdV2025R0Headers.java @@ -8,8 +8,10 @@ public class DeleteDocgenTemplateByIdV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteDocgenTemplateByIdV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/DocgenTemplateManager.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/DocgenTemplateManager.java index e9e36ae0d..586918633 100644 --- a/src/main/java/com/box/sdkgen/managers/docgentemplate/DocgenTemplateManager.java +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/DocgenTemplateManager.java @@ -35,11 +35,22 @@ protected DocgenTemplateManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Marks a file as a Box Doc Gen template. + * + * @param requestBody Request body of createDocgenTemplateV2025R0 method + */ public DocGenTemplateBaseV2025R0 createDocgenTemplateV2025R0( DocGenTemplateCreateRequestV2025R0 requestBody) { return createDocgenTemplateV2025R0(requestBody, new CreateDocgenTemplateV2025R0Headers()); } + /** + * Marks a file as a Box Doc Gen template. + * + * @param requestBody Request body of createDocgenTemplateV2025R0 method + * @param headers Headers of createDocgenTemplateV2025R0 method + */ public DocGenTemplateBaseV2025R0 createDocgenTemplateV2025R0( DocGenTemplateCreateRequestV2025R0 requestBody, CreateDocgenTemplateV2025R0Headers headers) { Map headersMap = @@ -67,21 +78,38 @@ public DocGenTemplateBaseV2025R0 createDocgenTemplateV2025R0( return JsonManager.deserialize(response.getData(), DocGenTemplateBaseV2025R0.class); } + /** Lists Box Doc Gen templates on which the user is a collaborator. */ public DocGenTemplatesV2025R0 getDocgenTemplatesV2025R0() { return getDocgenTemplatesV2025R0( new GetDocgenTemplatesV2025R0QueryParams(), new GetDocgenTemplatesV2025R0Headers()); } + /** + * Lists Box Doc Gen templates on which the user is a collaborator. + * + * @param queryParams Query parameters of getDocgenTemplatesV2025R0 method + */ public DocGenTemplatesV2025R0 getDocgenTemplatesV2025R0( GetDocgenTemplatesV2025R0QueryParams queryParams) { return getDocgenTemplatesV2025R0(queryParams, new GetDocgenTemplatesV2025R0Headers()); } + /** + * Lists Box Doc Gen templates on which the user is a collaborator. + * + * @param headers Headers of getDocgenTemplatesV2025R0 method + */ public DocGenTemplatesV2025R0 getDocgenTemplatesV2025R0( GetDocgenTemplatesV2025R0Headers headers) { return getDocgenTemplatesV2025R0(new GetDocgenTemplatesV2025R0QueryParams(), headers); } + /** + * Lists Box Doc Gen templates on which the user is a collaborator. + * + * @param queryParams Query parameters of getDocgenTemplatesV2025R0 method + * @param headers Headers of getDocgenTemplatesV2025R0 method + */ public DocGenTemplatesV2025R0 getDocgenTemplatesV2025R0( GetDocgenTemplatesV2025R0QueryParams queryParams, GetDocgenTemplatesV2025R0Headers headers) { Map queryParamsMap = @@ -113,10 +141,23 @@ public DocGenTemplatesV2025R0 getDocgenTemplatesV2025R0( return JsonManager.deserialize(response.getData(), DocGenTemplatesV2025R0.class); } + /** + * Unmarks file as Box Doc Gen template. + * + * @param templateId ID of the file which will no longer be marked as a Box Doc Gen template. + * Example: "123" + */ public void deleteDocgenTemplateByIdV2025R0(String templateId) { deleteDocgenTemplateByIdV2025R0(templateId, new DeleteDocgenTemplateByIdV2025R0Headers()); } + /** + * Unmarks file as Box Doc Gen template. + * + * @param templateId ID of the file which will no longer be marked as a Box Doc Gen template. + * Example: "123" + * @param headers Headers of deleteDocgenTemplateByIdV2025R0 method + */ public void deleteDocgenTemplateByIdV2025R0( String templateId, DeleteDocgenTemplateByIdV2025R0Headers headers) { Map headersMap = @@ -142,10 +183,21 @@ public void deleteDocgenTemplateByIdV2025R0( .build()); } + /** + * Lists details of a specific Box Doc Gen template. + * + * @param templateId The ID of a Box Doc Gen template. Example: 123 + */ public DocGenTemplateV2025R0 getDocgenTemplateByIdV2025R0(String templateId) { return getDocgenTemplateByIdV2025R0(templateId, new GetDocgenTemplateByIdV2025R0Headers()); } + /** + * Lists details of a specific Box Doc Gen template. + * + * @param templateId The ID of a Box Doc Gen template. Example: 123 + * @param headers Headers of getDocgenTemplateByIdV2025R0 method + */ public DocGenTemplateV2025R0 getDocgenTemplateByIdV2025R0( String templateId, GetDocgenTemplateByIdV2025R0Headers headers) { Map headersMap = @@ -172,6 +224,11 @@ public DocGenTemplateV2025R0 getDocgenTemplateByIdV2025R0( return JsonManager.deserialize(response.getData(), DocGenTemplateV2025R0.class); } + /** + * Lists all tags in a Box Doc Gen template. + * + * @param templateId ID of template. Example: 123 + */ public DocGenTagsV2025R0 getDocgenTemplateTagsV2025R0(String templateId) { return getDocgenTemplateTagsV2025R0( templateId, @@ -179,18 +236,37 @@ public DocGenTagsV2025R0 getDocgenTemplateTagsV2025R0(String templateId) { new GetDocgenTemplateTagsV2025R0Headers()); } + /** + * Lists all tags in a Box Doc Gen template. + * + * @param templateId ID of template. Example: 123 + * @param queryParams Query parameters of getDocgenTemplateTagsV2025R0 method + */ public DocGenTagsV2025R0 getDocgenTemplateTagsV2025R0( String templateId, GetDocgenTemplateTagsV2025R0QueryParams queryParams) { return getDocgenTemplateTagsV2025R0( templateId, queryParams, new GetDocgenTemplateTagsV2025R0Headers()); } + /** + * Lists all tags in a Box Doc Gen template. + * + * @param templateId ID of template. Example: 123 + * @param headers Headers of getDocgenTemplateTagsV2025R0 method + */ public DocGenTagsV2025R0 getDocgenTemplateTagsV2025R0( String templateId, GetDocgenTemplateTagsV2025R0Headers headers) { return getDocgenTemplateTagsV2025R0( templateId, new GetDocgenTemplateTagsV2025R0QueryParams(), headers); } + /** + * Lists all tags in a Box Doc Gen template. + * + * @param templateId ID of template. Example: 123 + * @param queryParams Query parameters of getDocgenTemplateTagsV2025R0 method + * @param headers Headers of getDocgenTemplateTagsV2025R0 method + */ public DocGenTagsV2025R0 getDocgenTemplateTagsV2025R0( String templateId, GetDocgenTemplateTagsV2025R0QueryParams queryParams, @@ -227,6 +303,11 @@ public DocGenTagsV2025R0 getDocgenTemplateTagsV2025R0( return JsonManager.deserialize(response.getData(), DocGenTagsV2025R0.class); } + /** + * Lists the users jobs which use this template. + * + * @param templateId Id of template to fetch jobs for. Example: 123 + */ public DocGenJobsV2025R0 getDocgenTemplateJobByIdV2025R0(String templateId) { return getDocgenTemplateJobByIdV2025R0( templateId, @@ -234,18 +315,37 @@ public DocGenJobsV2025R0 getDocgenTemplateJobByIdV2025R0(String templateId) { new GetDocgenTemplateJobByIdV2025R0Headers()); } + /** + * Lists the users jobs which use this template. + * + * @param templateId Id of template to fetch jobs for. Example: 123 + * @param queryParams Query parameters of getDocgenTemplateJobByIdV2025R0 method + */ public DocGenJobsV2025R0 getDocgenTemplateJobByIdV2025R0( String templateId, GetDocgenTemplateJobByIdV2025R0QueryParams queryParams) { return getDocgenTemplateJobByIdV2025R0( templateId, queryParams, new GetDocgenTemplateJobByIdV2025R0Headers()); } + /** + * Lists the users jobs which use this template. + * + * @param templateId Id of template to fetch jobs for. Example: 123 + * @param headers Headers of getDocgenTemplateJobByIdV2025R0 method + */ public DocGenJobsV2025R0 getDocgenTemplateJobByIdV2025R0( String templateId, GetDocgenTemplateJobByIdV2025R0Headers headers) { return getDocgenTemplateJobByIdV2025R0( templateId, new GetDocgenTemplateJobByIdV2025R0QueryParams(), headers); } + /** + * Lists the users jobs which use this template. + * + * @param templateId Id of template to fetch jobs for. Example: 123 + * @param queryParams Query parameters of getDocgenTemplateJobByIdV2025R0 method + * @param headers Headers of getDocgenTemplateJobByIdV2025R0 method + */ public DocGenJobsV2025R0 getDocgenTemplateJobByIdV2025R0( String templateId, GetDocgenTemplateJobByIdV2025R0QueryParams queryParams, diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateByIdV2025R0Headers.java index d94d8ce3a..db8ca11e5 100644 --- a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateByIdV2025R0Headers.java @@ -8,8 +8,10 @@ public class GetDocgenTemplateByIdV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetDocgenTemplateByIdV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateJobByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateJobByIdV2025R0Headers.java index b37248857..37465a73f 100644 --- a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateJobByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateJobByIdV2025R0Headers.java @@ -8,8 +8,10 @@ public class GetDocgenTemplateJobByIdV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetDocgenTemplateJobByIdV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateJobByIdV2025R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateJobByIdV2025R0QueryParams.java index bcd4c9b43..3e2053d55 100644 --- a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateJobByIdV2025R0QueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateJobByIdV2025R0QueryParams.java @@ -2,8 +2,15 @@ public class GetDocgenTemplateJobByIdV2025R0QueryParams { + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetDocgenTemplateJobByIdV2025R0QueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateTagsV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateTagsV2025R0Headers.java index 6a5e382aa..f1ffc6101 100644 --- a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateTagsV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateTagsV2025R0Headers.java @@ -8,8 +8,10 @@ public class GetDocgenTemplateTagsV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetDocgenTemplateTagsV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateTagsV2025R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateTagsV2025R0QueryParams.java index 131c8d6b1..5222ab415 100644 --- a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateTagsV2025R0QueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateTagsV2025R0QueryParams.java @@ -2,10 +2,18 @@ public class GetDocgenTemplateTagsV2025R0QueryParams { + /** Id of template version. */ public String templateVersionId; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetDocgenTemplateTagsV2025R0QueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplatesV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplatesV2025R0Headers.java index ee7186928..9b8b8376d 100644 --- a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplatesV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplatesV2025R0Headers.java @@ -8,8 +8,10 @@ public class GetDocgenTemplatesV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetDocgenTemplatesV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplatesV2025R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplatesV2025R0QueryParams.java index 188b0ab5b..0b3690950 100644 --- a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplatesV2025R0QueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplatesV2025R0QueryParams.java @@ -2,8 +2,15 @@ public class GetDocgenTemplatesV2025R0QueryParams { + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetDocgenTemplatesV2025R0QueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileHeaders.java b/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileHeaders.java index bbf225f88..344da2db9 100644 --- a/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileHeaders.java @@ -6,10 +6,28 @@ public class DownloadFileHeaders { + /** + * The byte range of the content to download. + * + *

    The format `bytes={start_byte}-{end_byte}` can be used to specify what section of the file + * to download. + */ public String range; + /** + * The URL, and optional password, for the shared link of this item. + * + *

    This header can be used to access items that have not been explicitly shared with a user. + * + *

    Use the format `shared_link=[link]` or if a password is required then use + * `shared_link=[link]&shared_link_password=[password]`. + * + *

    This header can be used on the file or folder shared, as well as on any files or folders + * nested within the item. + */ public String boxapi; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DownloadFileHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileQueryParams.java b/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileQueryParams.java index 6fba9975c..4279e58da 100644 --- a/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileQueryParams.java @@ -2,8 +2,16 @@ public class DownloadFileQueryParams { + /** The file version to download. */ public String version; + /** + * An optional access token that can be used to pre-authenticate this request, which means that a + * download link can be shared with a browser or a third party service without them needing to + * know how to handle the authentication. When using this parameter, please make sure that the + * access token is sufficiently scoped down to only allow read access to that file and no other + * files or folders. + */ public String accessToken; public DownloadFileQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileToOutputStreamHeaders.java b/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileToOutputStreamHeaders.java index 6519b1e0a..b02cf5286 100644 --- a/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileToOutputStreamHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileToOutputStreamHeaders.java @@ -6,10 +6,28 @@ public class DownloadFileToOutputStreamHeaders { + /** + * The byte range of the content to download. + * + *

    The format `bytes={start_byte}-{end_byte}` can be used to specify what section of the file + * to download. + */ public String range; + /** + * The URL, and optional password, for the shared link of this item. + * + *

    This header can be used to access items that have not been explicitly shared with a user. + * + *

    Use the format `shared_link=[link]` or if a password is required then use + * `shared_link=[link]&shared_link_password=[password]`. + * + *

    This header can be used on the file or folder shared, as well as on any files or folders + * nested within the item. + */ public String boxapi; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DownloadFileToOutputStreamHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileToOutputStreamQueryParams.java b/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileToOutputStreamQueryParams.java index 7f6fdff98..caa799653 100644 --- a/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileToOutputStreamQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileToOutputStreamQueryParams.java @@ -2,8 +2,16 @@ public class DownloadFileToOutputStreamQueryParams { + /** The file version to download. */ public String version; + /** + * An optional access token that can be used to pre-authenticate this request, which means that a + * download link can be shared with a browser or a third party service without them needing to + * know how to handle the authentication. When using this parameter, please make sure that the + * access token is sufficiently scoped down to only allow read access to that file and no other + * files or folders. + */ public String accessToken; public DownloadFileToOutputStreamQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/downloads/DownloadsManager.java b/src/main/java/com/box/sdkgen/managers/downloads/DownloadsManager.java index 899cd9ee9..3eab3f8c8 100644 --- a/src/main/java/com/box/sdkgen/managers/downloads/DownloadsManager.java +++ b/src/main/java/com/box/sdkgen/managers/downloads/DownloadsManager.java @@ -32,19 +32,55 @@ protected DownloadsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Returns the contents of a file in binary format. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + */ public String getDownloadFileUrl(String fileId) { return getDownloadFileUrl( fileId, new GetDownloadFileUrlQueryParams(), new GetDownloadFileUrlHeaders()); } + /** + * Returns the contents of a file in binary format. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of downloadFile method + */ public String getDownloadFileUrl(String fileId, GetDownloadFileUrlQueryParams queryParams) { return getDownloadFileUrl(fileId, queryParams, new GetDownloadFileUrlHeaders()); } + /** + * Returns the contents of a file in binary format. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param headers Headers of downloadFile method + */ public String getDownloadFileUrl(String fileId, GetDownloadFileUrlHeaders headers) { return getDownloadFileUrl(fileId, new GetDownloadFileUrlQueryParams(), headers); } + /** + * Returns the contents of a file in binary format. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of downloadFile method + * @param headers Headers of downloadFile method + */ public String getDownloadFileUrl( String fileId, GetDownloadFileUrlQueryParams queryParams, GetDownloadFileUrlHeaders headers) { Map queryParamsMap = @@ -87,18 +123,54 @@ public String getDownloadFileUrl( throw new BoxSDKError("No location header in response"); } + /** + * Returns the contents of a file in binary format. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + */ public InputStream downloadFile(String fileId) { return downloadFile(fileId, new DownloadFileQueryParams(), new DownloadFileHeaders()); } + /** + * Returns the contents of a file in binary format. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of downloadFile method + */ public InputStream downloadFile(String fileId, DownloadFileQueryParams queryParams) { return downloadFile(fileId, queryParams, new DownloadFileHeaders()); } + /** + * Returns the contents of a file in binary format. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param headers Headers of downloadFile method + */ public InputStream downloadFile(String fileId, DownloadFileHeaders headers) { return downloadFile(fileId, new DownloadFileQueryParams(), headers); } + /** + * Returns the contents of a file in binary format. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of downloadFile method + * @param headers Headers of downloadFile method + */ public InputStream downloadFile( String fileId, DownloadFileQueryParams queryParams, DownloadFileHeaders headers) { Map queryParamsMap = diff --git a/src/main/java/com/box/sdkgen/managers/downloads/GetDownloadFileUrlHeaders.java b/src/main/java/com/box/sdkgen/managers/downloads/GetDownloadFileUrlHeaders.java index d1d706f70..653f935f5 100644 --- a/src/main/java/com/box/sdkgen/managers/downloads/GetDownloadFileUrlHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/downloads/GetDownloadFileUrlHeaders.java @@ -6,10 +6,28 @@ public class GetDownloadFileUrlHeaders { + /** + * The byte range of the content to download. + * + *

    The format `bytes={start_byte}-{end_byte}` can be used to specify what section of the file + * to download. + */ public String range; + /** + * The URL, and optional password, for the shared link of this item. + * + *

    This header can be used to access items that have not been explicitly shared with a user. + * + *

    Use the format `shared_link=[link]` or if a password is required then use + * `shared_link=[link]&shared_link_password=[password]`. + * + *

    This header can be used on the file or folder shared, as well as on any files or folders + * nested within the item. + */ public String boxapi; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetDownloadFileUrlHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/downloads/GetDownloadFileUrlQueryParams.java b/src/main/java/com/box/sdkgen/managers/downloads/GetDownloadFileUrlQueryParams.java index 7122d5c7a..cd8ba17c3 100644 --- a/src/main/java/com/box/sdkgen/managers/downloads/GetDownloadFileUrlQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/downloads/GetDownloadFileUrlQueryParams.java @@ -2,8 +2,16 @@ public class GetDownloadFileUrlQueryParams { + /** The file version to download. */ public String version; + /** + * An optional access token that can be used to pre-authenticate this request, which means that a + * download link can be shared with a browser or a third party service without them needing to + * know how to handle the authentication. When using this parameter, please make sure that the + * access token is sufficiently scoped down to only allow read access to that file and no other + * files or folders. + */ public String accessToken; public GetDownloadFileUrlQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/emailaliases/CreateUserEmailAliasHeaders.java b/src/main/java/com/box/sdkgen/managers/emailaliases/CreateUserEmailAliasHeaders.java index 17eb4af4c..8e2de1b2f 100644 --- a/src/main/java/com/box/sdkgen/managers/emailaliases/CreateUserEmailAliasHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/emailaliases/CreateUserEmailAliasHeaders.java @@ -6,6 +6,7 @@ public class CreateUserEmailAliasHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateUserEmailAliasHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/emailaliases/CreateUserEmailAliasRequestBody.java b/src/main/java/com/box/sdkgen/managers/emailaliases/CreateUserEmailAliasRequestBody.java index 588be0de5..fe17f6082 100644 --- a/src/main/java/com/box/sdkgen/managers/emailaliases/CreateUserEmailAliasRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/emailaliases/CreateUserEmailAliasRequestBody.java @@ -8,6 +8,14 @@ @JsonFilter("nullablePropertyFilter") public class CreateUserEmailAliasRequestBody extends SerializableObject { + /** + * The email address to add to the account as an alias. + * + *

    Note: The domain of the email alias needs to be registered to your enterprise. See the + * [domain verification guide]( + * https://support.box.com/hc/en-us/articles/4408619650579-Domain-Verification ) for steps to add + * a new domain. + */ protected final String email; public CreateUserEmailAliasRequestBody(@JsonProperty("email") String email) { diff --git a/src/main/java/com/box/sdkgen/managers/emailaliases/DeleteUserEmailAliasByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/emailaliases/DeleteUserEmailAliasByIdHeaders.java index bd9d674a6..c13695f5f 100644 --- a/src/main/java/com/box/sdkgen/managers/emailaliases/DeleteUserEmailAliasByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/emailaliases/DeleteUserEmailAliasByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteUserEmailAliasByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteUserEmailAliasByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/emailaliases/EmailAliasesManager.java b/src/main/java/com/box/sdkgen/managers/emailaliases/EmailAliasesManager.java index d1a0c5065..8df8a3747 100644 --- a/src/main/java/com/box/sdkgen/managers/emailaliases/EmailAliasesManager.java +++ b/src/main/java/com/box/sdkgen/managers/emailaliases/EmailAliasesManager.java @@ -30,10 +30,23 @@ protected EmailAliasesManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves all email aliases for a user. The collection does not include the primary login for + * the user. + * + * @param userId The ID of the user. Example: "12345" + */ public EmailAliases getUserEmailAliases(String userId) { return getUserEmailAliases(userId, new GetUserEmailAliasesHeaders()); } + /** + * Retrieves all email aliases for a user. The collection does not include the primary login for + * the user. + * + * @param userId The ID of the user. Example: "12345" + * @param headers Headers of getUserEmailAliases method + */ public EmailAliases getUserEmailAliases(String userId, GetUserEmailAliasesHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = @@ -56,11 +69,24 @@ public EmailAliases getUserEmailAliases(String userId, GetUserEmailAliasesHeader return JsonManager.deserialize(response.getData(), EmailAliases.class); } + /** + * Adds a new email alias to a user account.. + * + * @param userId The ID of the user. Example: "12345" + * @param requestBody Request body of createUserEmailAlias method + */ public EmailAlias createUserEmailAlias( String userId, CreateUserEmailAliasRequestBody requestBody) { return createUserEmailAlias(userId, requestBody, new CreateUserEmailAliasHeaders()); } + /** + * Adds a new email alias to a user account.. + * + * @param userId The ID of the user. Example: "12345" + * @param requestBody Request body of createUserEmailAlias method + * @param headers Headers of createUserEmailAlias method + */ public EmailAlias createUserEmailAlias( String userId, CreateUserEmailAliasRequestBody requestBody, @@ -88,10 +114,23 @@ public EmailAlias createUserEmailAlias( return JsonManager.deserialize(response.getData(), EmailAlias.class); } + /** + * Removes an email alias from a user. + * + * @param userId The ID of the user. Example: "12345" + * @param emailAliasId The ID of the email alias. Example: "23432" + */ public void deleteUserEmailAliasById(String userId, String emailAliasId) { deleteUserEmailAliasById(userId, emailAliasId, new DeleteUserEmailAliasByIdHeaders()); } + /** + * Removes an email alias from a user. + * + * @param userId The ID of the user. Example: "12345" + * @param emailAliasId The ID of the email alias. Example: "23432" + * @param headers Headers of deleteUserEmailAliasById method + */ public void deleteUserEmailAliasById( String userId, String emailAliasId, DeleteUserEmailAliasByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); diff --git a/src/main/java/com/box/sdkgen/managers/emailaliases/GetUserEmailAliasesHeaders.java b/src/main/java/com/box/sdkgen/managers/emailaliases/GetUserEmailAliasesHeaders.java index a1bdd4bec..c7e1cd24f 100644 --- a/src/main/java/com/box/sdkgen/managers/emailaliases/GetUserEmailAliasesHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/emailaliases/GetUserEmailAliasesHeaders.java @@ -6,6 +6,7 @@ public class GetUserEmailAliasesHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetUserEmailAliasesHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/events/EventsManager.java b/src/main/java/com/box/sdkgen/managers/events/EventsManager.java index fe891c60c..979af703f 100644 --- a/src/main/java/com/box/sdkgen/managers/events/EventsManager.java +++ b/src/main/java/com/box/sdkgen/managers/events/EventsManager.java @@ -32,10 +32,74 @@ protected EventsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Returns a list of real-time servers that can be used for long-polling updates to the [event + * stream](#get-events). + * + *

    Long polling is the concept where a HTTP request is kept open until the server sends a + * response, then repeating the process over and over to receive updated responses. + * + *

    Long polling the event stream can only be used for user events, not for enterprise events. + * + *

    To use long polling, first use this endpoint to retrieve a list of long poll URLs. Next, + * make a long poll request to any of the provided URLs. + * + *

    When an event occurs in monitored account a response with the value `new_change` will be + * sent. The response contains no other details as it only serves as a prompt to take further + * action such as sending a request to the [events endpoint](#get-events) with the last known + * `stream_position`. + * + *

    After the server sends this response it closes the connection. You must now repeat the long + * poll process to begin listening for events again. + * + *

    If no events occur for a while and the connection times out you will receive a response with + * the value `reconnect`. When you receive this response you’ll make another call to this endpoint + * to restart the process. + * + *

    If you receive no events in `retry_timeout` seconds then you will need to make another + * request to the real-time server (one of the URLs in the response for this endpoint). This might + * be necessary due to network errors. + * + *

    Finally, if you receive a `max_retries` error when making a request to the real-time server, + * you should start over by making a call to this endpoint first. + */ public RealtimeServers getEventsWithLongPolling() { return getEventsWithLongPolling(new GetEventsWithLongPollingHeaders()); } + /** + * Returns a list of real-time servers that can be used for long-polling updates to the [event + * stream](#get-events). + * + *

    Long polling is the concept where a HTTP request is kept open until the server sends a + * response, then repeating the process over and over to receive updated responses. + * + *

    Long polling the event stream can only be used for user events, not for enterprise events. + * + *

    To use long polling, first use this endpoint to retrieve a list of long poll URLs. Next, + * make a long poll request to any of the provided URLs. + * + *

    When an event occurs in monitored account a response with the value `new_change` will be + * sent. The response contains no other details as it only serves as a prompt to take further + * action such as sending a request to the [events endpoint](#get-events) with the last known + * `stream_position`. + * + *

    After the server sends this response it closes the connection. You must now repeat the long + * poll process to begin listening for events again. + * + *

    If no events occur for a while and the connection times out you will receive a response with + * the value `reconnect`. When you receive this response you’ll make another call to this endpoint + * to restart the process. + * + *

    If you receive no events in `retry_timeout` seconds then you will need to make another + * request to the real-time server (one of the URLs in the response for this endpoint). This might + * be necessary due to network errors. + * + *

    Finally, if you receive a `max_retries` error when making a request to the real-time server, + * you should start over by making a call to this endpoint first. + * + * @param headers Headers of getEventsWithLongPolling method + */ public RealtimeServers getEventsWithLongPolling(GetEventsWithLongPollingHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = @@ -54,18 +118,61 @@ public RealtimeServers getEventsWithLongPolling(GetEventsWithLongPollingHeaders return JsonManager.deserialize(response.getData(), RealtimeServers.class); } + /** + * Returns up to a year of past events for a given user or for the entire enterprise. + * + *

    By default this returns events for the authenticated user. To retrieve events for the entire + * enterprise, set the `stream_type` to `admin_logs_streaming` for live monitoring of new events, + * or `admin_logs` for querying across historical events. The user making the API call will need + * to have admin privileges, and the application will need to have the scope `manage enterprise + * properties` checked. + */ public Events getEvents() { return getEvents(new GetEventsQueryParams(), new GetEventsHeaders()); } + /** + * Returns up to a year of past events for a given user or for the entire enterprise. + * + *

    By default this returns events for the authenticated user. To retrieve events for the entire + * enterprise, set the `stream_type` to `admin_logs_streaming` for live monitoring of new events, + * or `admin_logs` for querying across historical events. The user making the API call will need + * to have admin privileges, and the application will need to have the scope `manage enterprise + * properties` checked. + * + * @param queryParams Query parameters of getEvents method + */ public Events getEvents(GetEventsQueryParams queryParams) { return getEvents(queryParams, new GetEventsHeaders()); } + /** + * Returns up to a year of past events for a given user or for the entire enterprise. + * + *

    By default this returns events for the authenticated user. To retrieve events for the entire + * enterprise, set the `stream_type` to `admin_logs_streaming` for live monitoring of new events, + * or `admin_logs` for querying across historical events. The user making the API call will need + * to have admin privileges, and the application will need to have the scope `manage enterprise + * properties` checked. + * + * @param headers Headers of getEvents method + */ public Events getEvents(GetEventsHeaders headers) { return getEvents(new GetEventsQueryParams(), headers); } + /** + * Returns up to a year of past events for a given user or for the entire enterprise. + * + *

    By default this returns events for the authenticated user. To retrieve events for the entire + * enterprise, set the `stream_type` to `admin_logs_streaming` for live monitoring of new events, + * or `admin_logs` for querying across historical events. The user making the API call will need + * to have admin privileges, and the application will need to have the scope `manage enterprise + * properties` checked. + * + * @param queryParams Query parameters of getEvents method + * @param headers Headers of getEvents method + */ public Events getEvents(GetEventsQueryParams queryParams, GetEventsHeaders headers) { Map queryParamsMap = prepareParams( @@ -94,18 +201,35 @@ public Events getEvents(GetEventsQueryParams queryParams, GetEventsHeaders heade return JsonManager.deserialize(response.getData(), Events.class); } + /** Get an event stream for the Box API */ public EventStream getEventStream() { return getEventStream(new GetEventStreamQueryParams(), new GetEventStreamHeaders()); } + /** + * Get an event stream for the Box API + * + * @param queryParams Query parameters of getEvents method + */ public EventStream getEventStream(GetEventStreamQueryParams queryParams) { return getEventStream(queryParams, new GetEventStreamHeaders()); } + /** + * Get an event stream for the Box API + * + * @param headers Headers of getEvents method + */ public EventStream getEventStream(GetEventStreamHeaders headers) { return getEventStream(new GetEventStreamQueryParams(), headers); } + /** + * Get an event stream for the Box API + * + * @param queryParams Query parameters of getEvents method + * @param headers Headers of getEvents method + */ public EventStream getEventStream( GetEventStreamQueryParams queryParams, GetEventStreamHeaders headers) { return new EventStream.Builder(this, queryParams).headersInput(headers).build(); diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventStreamHeaders.java b/src/main/java/com/box/sdkgen/managers/events/GetEventStreamHeaders.java index 527cbfced..58e915330 100644 --- a/src/main/java/com/box/sdkgen/managers/events/GetEventStreamHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventStreamHeaders.java @@ -6,6 +6,7 @@ public class GetEventStreamHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetEventStreamHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParams.java b/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParams.java index 351d648da..f62fab8d9 100644 --- a/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParams.java @@ -16,16 +16,61 @@ public class GetEventStreamQueryParams { + /** + * Defines the type of events that are returned + * + *

    * `all` returns everything for a user and is the default * `changes` returns events that may + * cause file tree changes such as file updates or collaborations. * `sync` is similar to + * `changes` but only applies to synced folders * `admin_logs` returns all events for an entire + * enterprise and requires the user making the API call to have admin permissions. This stream + * type is for programmatically pulling from a 1 year history of events across all users within + * the enterprise and within a `created_after` and `created_before` time frame. The complete + * history of events will be returned in chronological order based on the event time, but latency + * will be much higher than `admin_logs_streaming`. * `admin_logs_streaming` returns all events + * for an entire enterprise and requires the user making the API call to have admin permissions. + * This stream type is for polling for recent events across all users within the enterprise. + * Latency will be much lower than `admin_logs`, but events will not be returned in chronological + * order and may contain duplicates. + */ public EnumWrapper streamType; + /** + * The location in the event stream to start receiving events from. + * + *

    * `now` will return an empty list events and the latest stream position for initialization. + * * `0` or `null` will return all events. + */ public String streamPosition; + /** + * Limits the number of events returned. + * + *

    Note: Sometimes, the events less than the limit requested can be returned even when there + * may be more events remaining. This is primarily done in the case where a number of events have + * already been retrieved and these retrieved events are returned rather than delaying for an + * unknown amount of time to see if there are any more results. + */ public Long limit; + /** + * A comma-separated list of events to filter by. This can only be used when requesting the events + * with a `stream_type` of `admin_logs` or `adming_logs_streaming`. For any other `stream_type` + * this value will be ignored. + */ public List> eventType; + /** + * The lower bound date and time to return events for. This can only be used when requesting the + * events with a `stream_type` of `admin_logs`. For any other `stream_type` this value will be + * ignored. + */ public OffsetDateTime createdAfter; + /** + * The upper bound date and time to return events for. This can only be used when requesting the + * events with a `stream_type` of `admin_logs`. For any other `stream_type` this value will be + * ignored. + */ public OffsetDateTime createdBefore; public GetEventStreamQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventsHeaders.java b/src/main/java/com/box/sdkgen/managers/events/GetEventsHeaders.java index 60984a069..7f46b47b1 100644 --- a/src/main/java/com/box/sdkgen/managers/events/GetEventsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventsHeaders.java @@ -6,6 +6,7 @@ public class GetEventsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetEventsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParams.java b/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParams.java index f63cee421..5c4daf2d6 100644 --- a/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParams.java @@ -16,16 +16,61 @@ public class GetEventsQueryParams { + /** + * Defines the type of events that are returned + * + *

    * `all` returns everything for a user and is the default * `changes` returns events that may + * cause file tree changes such as file updates or collaborations. * `sync` is similar to + * `changes` but only applies to synced folders * `admin_logs` returns all events for an entire + * enterprise and requires the user making the API call to have admin permissions. This stream + * type is for programmatically pulling from a 1 year history of events across all users within + * the enterprise and within a `created_after` and `created_before` time frame. The complete + * history of events will be returned in chronological order based on the event time, but latency + * will be much higher than `admin_logs_streaming`. * `admin_logs_streaming` returns all events + * for an entire enterprise and requires the user making the API call to have admin permissions. + * This stream type is for polling for recent events across all users within the enterprise. + * Latency will be much lower than `admin_logs`, but events will not be returned in chronological + * order and may contain duplicates. + */ public EnumWrapper streamType; + /** + * The location in the event stream to start receiving events from. + * + *

    * `now` will return an empty list events and the latest stream position for initialization. + * * `0` or `null` will return all events. + */ public String streamPosition; + /** + * Limits the number of events returned. + * + *

    Note: Sometimes, the events less than the limit requested can be returned even when there + * may be more events remaining. This is primarily done in the case where a number of events have + * already been retrieved and these retrieved events are returned rather than delaying for an + * unknown amount of time to see if there are any more results. + */ public Long limit; + /** + * A comma-separated list of events to filter by. This can only be used when requesting the events + * with a `stream_type` of `admin_logs` or `adming_logs_streaming`. For any other `stream_type` + * this value will be ignored. + */ public List> eventType; + /** + * The lower bound date and time to return events for. This can only be used when requesting the + * events with a `stream_type` of `admin_logs`. For any other `stream_type` this value will be + * ignored. + */ public OffsetDateTime createdAfter; + /** + * The upper bound date and time to return events for. This can only be used when requesting the + * events with a `stream_type` of `admin_logs`. For any other `stream_type` this value will be + * ignored. + */ public OffsetDateTime createdBefore; public GetEventsQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventsWithLongPollingHeaders.java b/src/main/java/com/box/sdkgen/managers/events/GetEventsWithLongPollingHeaders.java index 283f0e7f0..268b30d1d 100644 --- a/src/main/java/com/box/sdkgen/managers/events/GetEventsWithLongPollingHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventsWithLongPollingHeaders.java @@ -6,6 +6,7 @@ public class GetEventsWithLongPollingHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetEventsWithLongPollingHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/externalusers/ExternalUsersManager.java b/src/main/java/com/box/sdkgen/managers/externalusers/ExternalUsersManager.java index d56dc3422..f412462e8 100644 --- a/src/main/java/com/box/sdkgen/managers/externalusers/ExternalUsersManager.java +++ b/src/main/java/com/box/sdkgen/managers/externalusers/ExternalUsersManager.java @@ -31,12 +31,25 @@ protected ExternalUsersManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Delete external users from current user enterprise. This will remove each external user from + * all invited collaborations within the current enterprise. + * + * @param requestBody Request body of submitJobToDeleteExternalUsersV2025R0 method + */ public ExternalUsersSubmitDeleteJobResponseV2025R0 submitJobToDeleteExternalUsersV2025R0( ExternalUsersSubmitDeleteJobRequestV2025R0 requestBody) { return submitJobToDeleteExternalUsersV2025R0( requestBody, new SubmitJobToDeleteExternalUsersV2025R0Headers()); } + /** + * Delete external users from current user enterprise. This will remove each external user from + * all invited collaborations within the current enterprise. + * + * @param requestBody Request body of submitJobToDeleteExternalUsersV2025R0 method + * @param headers Headers of submitJobToDeleteExternalUsersV2025R0 method + */ public ExternalUsersSubmitDeleteJobResponseV2025R0 submitJobToDeleteExternalUsersV2025R0( ExternalUsersSubmitDeleteJobRequestV2025R0 requestBody, SubmitJobToDeleteExternalUsersV2025R0Headers headers) { diff --git a/src/main/java/com/box/sdkgen/managers/externalusers/SubmitJobToDeleteExternalUsersV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/externalusers/SubmitJobToDeleteExternalUsersV2025R0Headers.java index c475dac4e..b311b9cf2 100644 --- a/src/main/java/com/box/sdkgen/managers/externalusers/SubmitJobToDeleteExternalUsersV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/externalusers/SubmitJobToDeleteExternalUsersV2025R0Headers.java @@ -8,8 +8,10 @@ public class SubmitJobToDeleteExternalUsersV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public SubmitJobToDeleteExternalUsersV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/AddClassificationToFileHeaders.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/AddClassificationToFileHeaders.java index 8f30db593..2249ceb77 100644 --- a/src/main/java/com/box/sdkgen/managers/fileclassifications/AddClassificationToFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/AddClassificationToFileHeaders.java @@ -6,6 +6,7 @@ public class AddClassificationToFileHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public AddClassificationToFileHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/AddClassificationToFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/AddClassificationToFileRequestBody.java index 585d30c81..d3bd97715 100644 --- a/src/main/java/com/box/sdkgen/managers/fileclassifications/AddClassificationToFileRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/AddClassificationToFileRequestBody.java @@ -9,6 +9,14 @@ @JsonFilter("nullablePropertyFilter") public class AddClassificationToFileRequestBody extends SerializableObject { + /** + * The name of the classification to apply to this file. + * + *

    To list the available classifications in an enterprise, use the classification API to + * retrieve the [classification + * template](e://get_metadata_templates_enterprise_securityClassification-6VMVochwUWo_schema) + * which lists all available classification keys. + */ @JsonProperty("Box__Security__Classification__Key") protected String boxSecurityClassificationKey; diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/DeleteClassificationFromFileHeaders.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/DeleteClassificationFromFileHeaders.java index b9b264cc2..0caf33d98 100644 --- a/src/main/java/com/box/sdkgen/managers/fileclassifications/DeleteClassificationFromFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/DeleteClassificationFromFileHeaders.java @@ -6,6 +6,7 @@ public class DeleteClassificationFromFileHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteClassificationFromFileHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/FileClassificationsManager.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/FileClassificationsManager.java index 6e6d0eb00..4b45f0686 100644 --- a/src/main/java/com/box/sdkgen/managers/fileclassifications/FileClassificationsManager.java +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/FileClassificationsManager.java @@ -30,10 +30,33 @@ protected FileClassificationsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves the classification metadata instance that has been applied to a file. + * + *

    This API can also be called by including the enterprise ID in the URL explicitly, for + * example `/files/:id//enterprise_12345/securityClassification-6VMVochwUWo`. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + */ public Classification getClassificationOnFile(String fileId) { return getClassificationOnFile(fileId, new GetClassificationOnFileHeaders()); } + /** + * Retrieves the classification metadata instance that has been applied to a file. + * + *

    This API can also be called by including the enterprise ID in the URL explicitly, for + * example `/files/:id//enterprise_12345/securityClassification-6VMVochwUWo`. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param headers Headers of getClassificationOnFile method + */ public Classification getClassificationOnFile( String fileId, GetClassificationOnFileHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -57,21 +80,69 @@ public Classification getClassificationOnFile( return JsonManager.deserialize(response.getData(), Classification.class); } + /** + * Adds a classification to a file by specifying the label of the classification to add. + * + *

    This API can also be called by including the enterprise ID in the URL explicitly, for + * example `/files/:id//enterprise_12345/securityClassification-6VMVochwUWo`. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + */ public Classification addClassificationToFile(String fileId) { return addClassificationToFile( fileId, new AddClassificationToFileRequestBody(), new AddClassificationToFileHeaders()); } + /** + * Adds a classification to a file by specifying the label of the classification to add. + * + *

    This API can also be called by including the enterprise ID in the URL explicitly, for + * example `/files/:id//enterprise_12345/securityClassification-6VMVochwUWo`. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of addClassificationToFile method + */ public Classification addClassificationToFile( String fileId, AddClassificationToFileRequestBody requestBody) { return addClassificationToFile(fileId, requestBody, new AddClassificationToFileHeaders()); } + /** + * Adds a classification to a file by specifying the label of the classification to add. + * + *

    This API can also be called by including the enterprise ID in the URL explicitly, for + * example `/files/:id//enterprise_12345/securityClassification-6VMVochwUWo`. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param headers Headers of addClassificationToFile method + */ public Classification addClassificationToFile( String fileId, AddClassificationToFileHeaders headers) { return addClassificationToFile(fileId, new AddClassificationToFileRequestBody(), headers); } + /** + * Adds a classification to a file by specifying the label of the classification to add. + * + *

    This API can also be called by including the enterprise ID in the URL explicitly, for + * example `/files/:id//enterprise_12345/securityClassification-6VMVochwUWo`. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of addClassificationToFile method + * @param headers Headers of addClassificationToFile method + */ public Classification addClassificationToFile( String fileId, AddClassificationToFileRequestBody requestBody, @@ -99,11 +170,38 @@ public Classification addClassificationToFile( return JsonManager.deserialize(response.getData(), Classification.class); } + /** + * Updates a classification on a file. + * + *

    The classification can only be updated if a classification has already been applied to the + * file before. When editing classifications, only values are defined for the enterprise will be + * accepted. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of updateClassificationOnFile method + */ public Classification updateClassificationOnFile( String fileId, List requestBody) { return updateClassificationOnFile(fileId, requestBody, new UpdateClassificationOnFileHeaders()); } + /** + * Updates a classification on a file. + * + *

    The classification can only be updated if a classification has already been applied to the + * file before. When editing classifications, only values are defined for the enterprise will be + * accepted. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of updateClassificationOnFile method + * @param headers Headers of updateClassificationOnFile method + */ public Classification updateClassificationOnFile( String fileId, List requestBody, @@ -131,10 +229,33 @@ public Classification updateClassificationOnFile( return JsonManager.deserialize(response.getData(), Classification.class); } + /** + * Removes any classifications from a file. + * + *

    This API can also be called by including the enterprise ID in the URL explicitly, for + * example `/files/:id//enterprise_12345/securityClassification-6VMVochwUWo`. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + */ public void deleteClassificationFromFile(String fileId) { deleteClassificationFromFile(fileId, new DeleteClassificationFromFileHeaders()); } + /** + * Removes any classifications from a file. + * + *

    This API can also be called by including the enterprise ID in the URL explicitly, for + * example `/files/:id//enterprise_12345/securityClassification-6VMVochwUWo`. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param headers Headers of deleteClassificationFromFile method + */ public void deleteClassificationFromFile( String fileId, DeleteClassificationFromFileHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/GetClassificationOnFileHeaders.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/GetClassificationOnFileHeaders.java index 8d0b096c1..0b659cab9 100644 --- a/src/main/java/com/box/sdkgen/managers/fileclassifications/GetClassificationOnFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/GetClassificationOnFileHeaders.java @@ -6,6 +6,7 @@ public class GetClassificationOnFileHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetClassificationOnFileHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileHeaders.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileHeaders.java index dd7bb02b5..12660b97a 100644 --- a/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileHeaders.java @@ -6,6 +6,7 @@ public class UpdateClassificationOnFileHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateClassificationOnFileHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBody.java index 59b95cc2b..1036c12f7 100644 --- a/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBody.java @@ -12,6 +12,7 @@ @JsonFilter("nullablePropertyFilter") public class UpdateClassificationOnFileRequestBody extends SerializableObject { + /** The value will always be `replace`. */ @JsonDeserialize( using = UpdateClassificationOnFileRequestBodyOpField @@ -22,6 +23,7 @@ public class UpdateClassificationOnFileRequestBody extends SerializableObject { .UpdateClassificationOnFileRequestBodyOpFieldSerializer.class) protected EnumWrapper op; + /** Defines classifications available in the enterprise. */ @JsonDeserialize( using = UpdateClassificationOnFileRequestBodyPathField @@ -32,6 +34,14 @@ public class UpdateClassificationOnFileRequestBody extends SerializableObject { .UpdateClassificationOnFileRequestBodyPathFieldSerializer.class) protected EnumWrapper path; + /** + * The name of the classification to apply to this file. + * + *

    To list the available classifications in an enterprise, use the classification API to + * retrieve the [classification + * template](e://get_metadata_templates_enterprise_securityClassification-6VMVochwUWo_schema) + * which lists all available classification keys. + */ protected final String value; public UpdateClassificationOnFileRequestBody(@JsonProperty("value") String value) { diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/CreateFileMetadataByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/filemetadata/CreateFileMetadataByIdHeaders.java index 4da67afc3..aba607e2c 100644 --- a/src/main/java/com/box/sdkgen/managers/filemetadata/CreateFileMetadataByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/CreateFileMetadataByIdHeaders.java @@ -6,6 +6,7 @@ public class CreateFileMetadataByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateFileMetadataByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/DeleteFileMetadataByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/filemetadata/DeleteFileMetadataByIdHeaders.java index 735166273..97823b4ba 100644 --- a/src/main/java/com/box/sdkgen/managers/filemetadata/DeleteFileMetadataByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/DeleteFileMetadataByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteFileMetadataByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteFileMetadataByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/FileMetadataManager.java b/src/main/java/com/box/sdkgen/managers/filemetadata/FileMetadataManager.java index f775a5196..190f8bf37 100644 --- a/src/main/java/com/box/sdkgen/managers/filemetadata/FileMetadataManager.java +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/FileMetadataManager.java @@ -31,10 +31,27 @@ protected FileMetadataManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves all metadata for a given file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + */ public Metadatas getFileMetadata(String fileId) { return getFileMetadata(fileId, new GetFileMetadataHeaders()); } + /** + * Retrieves all metadata for a given file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param headers Headers of getFileMetadata method + */ public Metadatas getFileMetadata(String fileId, GetFileMetadataHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = @@ -57,11 +74,32 @@ public Metadatas getFileMetadata(String fileId, GetFileMetadataHeaders headers) return JsonManager.deserialize(response.getData(), Metadatas.class); } + /** + * Retrieves the instance of a metadata template that has been applied to a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + */ public MetadataFull getFileMetadataById( String fileId, GetFileMetadataByIdScope scope, String templateKey) { return getFileMetadataById(fileId, scope, templateKey, new GetFileMetadataByIdHeaders()); } + /** + * Retrieves the instance of a metadata template that has been applied to a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param headers Headers of getFileMetadataById method + */ public MetadataFull getFileMetadataById( String fileId, GetFileMetadataByIdScope scope, @@ -91,6 +129,20 @@ public MetadataFull getFileMetadataById( return JsonManager.deserialize(response.getData(), MetadataFull.class); } + /** + * Applies an instance of a metadata template to a file. + * + *

    In most cases only values that are present in the metadata template will be accepted, except + * for the `global.properties` template which accepts any key-value pair. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param requestBody Request body of createFileMetadataById method + */ public MetadataFull createFileMetadataById( String fileId, CreateFileMetadataByIdScope scope, @@ -100,6 +152,21 @@ public MetadataFull createFileMetadataById( fileId, scope, templateKey, requestBody, new CreateFileMetadataByIdHeaders()); } + /** + * Applies an instance of a metadata template to a file. + * + *

    In most cases only values that are present in the metadata template will be accepted, except + * for the `global.properties` template which accepts any key-value pair. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param requestBody Request body of createFileMetadataById method + * @param headers Headers of createFileMetadataById method + */ public MetadataFull createFileMetadataById( String fileId, CreateFileMetadataByIdScope scope, @@ -132,6 +199,24 @@ public MetadataFull createFileMetadataById( return JsonManager.deserialize(response.getData(), MetadataFull.class); } + /** + * Updates a piece of metadata on a file. + * + *

    The metadata instance can only be updated if the template has already been applied to the + * file before. When editing metadata, only values that match the metadata template schema will be + * accepted. + * + *

    The update is applied atomically. If any errors occur during the application of the + * operations, the metadata instance will not be changed. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param requestBody Request body of updateFileMetadataById method + */ public MetadataFull updateFileMetadataById( String fileId, UpdateFileMetadataByIdScope scope, @@ -141,6 +226,25 @@ public MetadataFull updateFileMetadataById( fileId, scope, templateKey, requestBody, new UpdateFileMetadataByIdHeaders()); } + /** + * Updates a piece of metadata on a file. + * + *

    The metadata instance can only be updated if the template has already been applied to the + * file before. When editing metadata, only values that match the metadata template schema will be + * accepted. + * + *

    The update is applied atomically. If any errors occur during the application of the + * operations, the metadata instance will not be changed. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param requestBody Request body of updateFileMetadataById method + * @param headers Headers of updateFileMetadataById method + */ public MetadataFull updateFileMetadataById( String fileId, UpdateFileMetadataByIdScope scope, @@ -173,11 +277,32 @@ public MetadataFull updateFileMetadataById( return JsonManager.deserialize(response.getData(), MetadataFull.class); } + /** + * Deletes a piece of file metadata. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + */ public void deleteFileMetadataById( String fileId, DeleteFileMetadataByIdScope scope, String templateKey) { deleteFileMetadataById(fileId, scope, templateKey, new DeleteFileMetadataByIdHeaders()); } + /** + * Deletes a piece of file metadata. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param headers Headers of deleteFileMetadataById method + */ public void deleteFileMetadataById( String fileId, DeleteFileMetadataByIdScope scope, diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdHeaders.java index 5d8d496ff..4c9978f13 100644 --- a/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdHeaders.java @@ -6,6 +6,7 @@ public class GetFileMetadataByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFileMetadataByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataHeaders.java b/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataHeaders.java index b0abe7069..863ea7390 100644 --- a/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataHeaders.java @@ -6,6 +6,7 @@ public class GetFileMetadataHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFileMetadataHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdHeaders.java index c7ba70f2c..53aa039ad 100644 --- a/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdHeaders.java @@ -6,6 +6,7 @@ public class UpdateFileMetadataByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateFileMetadataByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdRequestBody.java index e6a299ba4..46b204e47 100644 --- a/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdRequestBody.java @@ -13,6 +13,10 @@ @JsonFilter("nullablePropertyFilter") public class UpdateFileMetadataByIdRequestBody extends SerializableObject { + /** + * The type of change to perform on the template. Some of these are hazardous as they will change + * existing templates. + */ @JsonDeserialize( using = UpdateFileMetadataByIdRequestBodyOpField @@ -23,10 +27,22 @@ public class UpdateFileMetadataByIdRequestBody extends SerializableObject { .UpdateFileMetadataByIdRequestBodyOpFieldSerializer.class) protected EnumWrapper op; + /** + * The location in the metadata JSON object to apply the changes to, in the format of a + * [JSON-Pointer](https://tools.ietf.org/html/rfc6901). + * + *

    The path must always be prefixed with a `/` to represent the root of the template. The + * characters `~` and `/` are reserved characters and must be escaped in the key. + */ protected String path; protected MetadataInstanceValue value; + /** + * The location in the metadata JSON object to move or copy a value from. Required for `move` or + * `copy` operations and must be in the format of a + * [JSON-Pointer](https://tools.ietf.org/html/rfc6901). + */ protected String from; public UpdateFileMetadataByIdRequestBody() { diff --git a/src/main/java/com/box/sdkgen/managers/filerequests/CreateFileRequestCopyHeaders.java b/src/main/java/com/box/sdkgen/managers/filerequests/CreateFileRequestCopyHeaders.java index 0054decc7..43f2caee6 100644 --- a/src/main/java/com/box/sdkgen/managers/filerequests/CreateFileRequestCopyHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/filerequests/CreateFileRequestCopyHeaders.java @@ -6,6 +6,7 @@ public class CreateFileRequestCopyHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateFileRequestCopyHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/filerequests/DeleteFileRequestByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/filerequests/DeleteFileRequestByIdHeaders.java index d72138ecb..04d0b90c7 100644 --- a/src/main/java/com/box/sdkgen/managers/filerequests/DeleteFileRequestByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/filerequests/DeleteFileRequestByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteFileRequestByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteFileRequestByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/filerequests/FileRequestsManager.java b/src/main/java/com/box/sdkgen/managers/filerequests/FileRequestsManager.java index 102ccc2b0..949ada3e8 100644 --- a/src/main/java/com/box/sdkgen/managers/filerequests/FileRequestsManager.java +++ b/src/main/java/com/box/sdkgen/managers/filerequests/FileRequestsManager.java @@ -32,10 +32,27 @@ protected FileRequestsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves the information about a file request. + * + * @param fileRequestId The unique identifier that represent a file request. + *

    The ID for any file request can be determined by visiting a file request builder in the + * web application and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/filerequest/123` the `file_request_id` is `123`. Example: "123" + */ public FileRequest getFileRequestById(String fileRequestId) { return getFileRequestById(fileRequestId, new GetFileRequestByIdHeaders()); } + /** + * Retrieves the information about a file request. + * + * @param fileRequestId The unique identifier that represent a file request. + *

    The ID for any file request can be determined by visiting a file request builder in the + * web application and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/filerequest/123` the `file_request_id` is `123`. Example: "123" + * @param headers Headers of getFileRequestById method + */ public FileRequest getFileRequestById(String fileRequestId, GetFileRequestByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = @@ -57,11 +74,30 @@ public FileRequest getFileRequestById(String fileRequestId, GetFileRequestByIdHe return JsonManager.deserialize(response.getData(), FileRequest.class); } + /** + * Updates a file request. This can be used to activate or deactivate a file request. + * + * @param fileRequestId The unique identifier that represent a file request. + *

    The ID for any file request can be determined by visiting a file request builder in the + * web application and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/filerequest/123` the `file_request_id` is `123`. Example: "123" + * @param requestBody Request body of updateFileRequestById method + */ public FileRequest updateFileRequestById( String fileRequestId, FileRequestUpdateRequest requestBody) { return updateFileRequestById(fileRequestId, requestBody, new UpdateFileRequestByIdHeaders()); } + /** + * Updates a file request. This can be used to activate or deactivate a file request. + * + * @param fileRequestId The unique identifier that represent a file request. + *

    The ID for any file request can be determined by visiting a file request builder in the + * web application and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/filerequest/123` the `file_request_id` is `123`. Example: "123" + * @param requestBody Request body of updateFileRequestById method + * @param headers Headers of updateFileRequestById method + */ public FileRequest updateFileRequestById( String fileRequestId, FileRequestUpdateRequest requestBody, @@ -92,10 +128,27 @@ public FileRequest updateFileRequestById( return JsonManager.deserialize(response.getData(), FileRequest.class); } + /** + * Deletes a file request permanently. + * + * @param fileRequestId The unique identifier that represent a file request. + *

    The ID for any file request can be determined by visiting a file request builder in the + * web application and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/filerequest/123` the `file_request_id` is `123`. Example: "123" + */ public void deleteFileRequestById(String fileRequestId) { deleteFileRequestById(fileRequestId, new DeleteFileRequestByIdHeaders()); } + /** + * Deletes a file request permanently. + * + * @param fileRequestId The unique identifier that represent a file request. + *

    The ID for any file request can be determined by visiting a file request builder in the + * web application and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/filerequest/123` the `file_request_id` is `123`. Example: "123" + * @param headers Headers of deleteFileRequestById method + */ public void deleteFileRequestById(String fileRequestId, DeleteFileRequestByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = @@ -116,11 +169,32 @@ public void deleteFileRequestById(String fileRequestId, DeleteFileRequestByIdHea .build()); } + /** + * Copies an existing file request that is already present on one folder, and applies it to + * another folder. + * + * @param fileRequestId The unique identifier that represent a file request. + *

    The ID for any file request can be determined by visiting a file request builder in the + * web application and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/filerequest/123` the `file_request_id` is `123`. Example: "123" + * @param requestBody Request body of createFileRequestCopy method + */ public FileRequest createFileRequestCopy( String fileRequestId, FileRequestCopyRequest requestBody) { return createFileRequestCopy(fileRequestId, requestBody, new CreateFileRequestCopyHeaders()); } + /** + * Copies an existing file request that is already present on one folder, and applies it to + * another folder. + * + * @param fileRequestId The unique identifier that represent a file request. + *

    The ID for any file request can be determined by visiting a file request builder in the + * web application and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/filerequest/123` the `file_request_id` is `123`. Example: "123" + * @param requestBody Request body of createFileRequestCopy method + * @param headers Headers of createFileRequestCopy method + */ public FileRequest createFileRequestCopy( String fileRequestId, FileRequestCopyRequest requestBody, diff --git a/src/main/java/com/box/sdkgen/managers/filerequests/GetFileRequestByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/filerequests/GetFileRequestByIdHeaders.java index 1033d3f1e..ec8a71979 100644 --- a/src/main/java/com/box/sdkgen/managers/filerequests/GetFileRequestByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/filerequests/GetFileRequestByIdHeaders.java @@ -6,6 +6,7 @@ public class GetFileRequestByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFileRequestByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/filerequests/UpdateFileRequestByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/filerequests/UpdateFileRequestByIdHeaders.java index f31d19fe3..2129dd1d4 100644 --- a/src/main/java/com/box/sdkgen/managers/filerequests/UpdateFileRequestByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/filerequests/UpdateFileRequestByIdHeaders.java @@ -6,8 +6,15 @@ public class UpdateFileRequestByIdHeaders { + /** + * Ensures this item hasn't recently changed before making changes. + * + *

    Pass in the item's last observed `etag` value into this header and the endpoint will fail + * with a `412 Precondition Failed` if it has changed since. + */ public String ifMatch; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateFileRequestByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/files/CopyFileHeaders.java b/src/main/java/com/box/sdkgen/managers/files/CopyFileHeaders.java index 3da7bd29c..1cf4ac887 100644 --- a/src/main/java/com/box/sdkgen/managers/files/CopyFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/files/CopyFileHeaders.java @@ -6,6 +6,7 @@ public class CopyFileHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CopyFileHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/files/CopyFileQueryParams.java b/src/main/java/com/box/sdkgen/managers/files/CopyFileQueryParams.java index d71ef5e1f..ad52c3cb7 100644 --- a/src/main/java/com/box/sdkgen/managers/files/CopyFileQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/files/CopyFileQueryParams.java @@ -4,6 +4,14 @@ public class CopyFileQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public CopyFileQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/files/CopyFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/files/CopyFileRequestBody.java index d8f871371..615b85de2 100644 --- a/src/main/java/com/box/sdkgen/managers/files/CopyFileRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/files/CopyFileRequestBody.java @@ -9,10 +9,19 @@ @JsonFilter("nullablePropertyFilter") public class CopyFileRequestBody extends SerializableObject { + /** + * An optional new name for the copied file. + * + *

    There are some restrictions to the file name. Names containing non-printable ASCII + * characters, forward and backward slashes (`/`, `\`), and protected names like `.` and `..` are + * automatically sanitized by removing the non-allowed characters. + */ protected String name; + /** An optional ID of the specific file version to copy. */ protected String version; + /** The destination folder to copy the file to. */ protected final CopyFileRequestBodyParentField parent; public CopyFileRequestBody(@JsonProperty("parent") CopyFileRequestBodyParentField parent) { diff --git a/src/main/java/com/box/sdkgen/managers/files/CopyFileRequestBodyParentField.java b/src/main/java/com/box/sdkgen/managers/files/CopyFileRequestBodyParentField.java index 4ec6c56b8..4629c2d96 100644 --- a/src/main/java/com/box/sdkgen/managers/files/CopyFileRequestBodyParentField.java +++ b/src/main/java/com/box/sdkgen/managers/files/CopyFileRequestBodyParentField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class CopyFileRequestBodyParentField extends SerializableObject { + /** The ID of folder to copy the file to. */ protected final String id; public CopyFileRequestBodyParentField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/managers/files/DeleteFileByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/files/DeleteFileByIdHeaders.java index 93de2ac8b..3768ee25b 100644 --- a/src/main/java/com/box/sdkgen/managers/files/DeleteFileByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/files/DeleteFileByIdHeaders.java @@ -6,8 +6,15 @@ public class DeleteFileByIdHeaders { + /** + * Ensures this item hasn't recently changed before making changes. + * + *

    Pass in the item's last observed `etag` value into this header and the endpoint will fail + * with a `412 Precondition Failed` if it has changed since. + */ public String ifMatch; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteFileByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/files/FilesManager.java b/src/main/java/com/box/sdkgen/managers/files/FilesManager.java index a834fee60..3a20aca8b 100644 --- a/src/main/java/com/box/sdkgen/managers/files/FilesManager.java +++ b/src/main/java/com/box/sdkgen/managers/files/FilesManager.java @@ -32,18 +32,54 @@ protected FilesManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves the details about a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + */ public FileFull getFileById(String fileId) { return getFileById(fileId, new GetFileByIdQueryParams(), new GetFileByIdHeaders()); } + /** + * Retrieves the details about a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of getFileById method + */ public FileFull getFileById(String fileId, GetFileByIdQueryParams queryParams) { return getFileById(fileId, queryParams, new GetFileByIdHeaders()); } + /** + * Retrieves the details about a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param headers Headers of getFileById method + */ public FileFull getFileById(String fileId, GetFileByIdHeaders headers) { return getFileById(fileId, new GetFileByIdQueryParams(), headers); } + /** + * Retrieves the details about a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of getFileById method + * @param headers Headers of getFileById method + */ public FileFull getFileById( String fileId, GetFileByIdQueryParams queryParams, GetFileByIdHeaders headers) { Map queryParamsMap = @@ -76,6 +112,15 @@ public FileFull getFileById( return JsonManager.deserialize(response.getData(), FileFull.class); } + /** + * Updates a file. This can be used to rename or move a file, create a shared link, or lock a + * file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + */ public FileFull updateFileById(String fileId) { return updateFileById( fileId, @@ -84,36 +129,111 @@ public FileFull updateFileById(String fileId) { new UpdateFileByIdHeaders()); } + /** + * Updates a file. This can be used to rename or move a file, create a shared link, or lock a + * file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of updateFileById method + */ public FileFull updateFileById(String fileId, UpdateFileByIdRequestBody requestBody) { return updateFileById( fileId, requestBody, new UpdateFileByIdQueryParams(), new UpdateFileByIdHeaders()); } + /** + * Updates a file. This can be used to rename or move a file, create a shared link, or lock a + * file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of updateFileById method + */ public FileFull updateFileById(String fileId, UpdateFileByIdQueryParams queryParams) { return updateFileById( fileId, new UpdateFileByIdRequestBody(), queryParams, new UpdateFileByIdHeaders()); } + /** + * Updates a file. This can be used to rename or move a file, create a shared link, or lock a + * file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of updateFileById method + * @param queryParams Query parameters of updateFileById method + */ public FileFull updateFileById( String fileId, UpdateFileByIdRequestBody requestBody, UpdateFileByIdQueryParams queryParams) { return updateFileById(fileId, requestBody, queryParams, new UpdateFileByIdHeaders()); } + /** + * Updates a file. This can be used to rename or move a file, create a shared link, or lock a + * file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param headers Headers of updateFileById method + */ public FileFull updateFileById(String fileId, UpdateFileByIdHeaders headers) { return updateFileById( fileId, new UpdateFileByIdRequestBody(), new UpdateFileByIdQueryParams(), headers); } + /** + * Updates a file. This can be used to rename or move a file, create a shared link, or lock a + * file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of updateFileById method + * @param headers Headers of updateFileById method + */ public FileFull updateFileById( String fileId, UpdateFileByIdRequestBody requestBody, UpdateFileByIdHeaders headers) { return updateFileById(fileId, requestBody, new UpdateFileByIdQueryParams(), headers); } + /** + * Updates a file. This can be used to rename or move a file, create a shared link, or lock a + * file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of updateFileById method + * @param headers Headers of updateFileById method + */ public FileFull updateFileById( String fileId, UpdateFileByIdQueryParams queryParams, UpdateFileByIdHeaders headers) { return updateFileById(fileId, new UpdateFileByIdRequestBody(), queryParams, headers); } + /** + * Updates a file. This can be used to rename or move a file, create a shared link, or lock a + * file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of updateFileById method + * @param queryParams Query parameters of updateFileById method + * @param headers Headers of updateFileById method + */ public FileFull updateFileById( String fileId, UpdateFileByIdRequestBody requestBody, @@ -148,10 +268,33 @@ public FileFull updateFileById( return JsonManager.deserialize(response.getData(), FileFull.class); } + /** + * Deletes a file, either permanently or by moving it to the trash. + * + *

    The enterprise settings determine whether the item will be permanently deleted from Box or + * moved to the trash. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + */ public void deleteFileById(String fileId) { deleteFileById(fileId, new DeleteFileByIdHeaders()); } + /** + * Deletes a file, either permanently or by moving it to the trash. + * + *

    The enterprise settings determine whether the item will be permanently deleted from Box or + * moved to the trash. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param headers Headers of deleteFileById method + */ public void deleteFileById(String fileId, DeleteFileByIdHeaders headers) { Map headersMap = prepareParams( @@ -176,20 +319,60 @@ public void deleteFileById(String fileId, DeleteFileByIdHeaders headers) { .build()); } + /** + * Creates a copy of a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of copyFile method + */ public FileFull copyFile(String fileId, CopyFileRequestBody requestBody) { return copyFile(fileId, requestBody, new CopyFileQueryParams(), new CopyFileHeaders()); } + /** + * Creates a copy of a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of copyFile method + * @param queryParams Query parameters of copyFile method + */ public FileFull copyFile( String fileId, CopyFileRequestBody requestBody, CopyFileQueryParams queryParams) { return copyFile(fileId, requestBody, queryParams, new CopyFileHeaders()); } + /** + * Creates a copy of a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of copyFile method + * @param headers Headers of copyFile method + */ public FileFull copyFile( String fileId, CopyFileRequestBody requestBody, CopyFileHeaders headers) { return copyFile(fileId, requestBody, new CopyFileQueryParams(), headers); } + /** + * Creates a copy of a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of copyFile method + * @param queryParams Query parameters of copyFile method + * @param headers Headers of copyFile method + */ public FileFull copyFile( String fileId, CopyFileRequestBody requestBody, @@ -221,11 +404,48 @@ public FileFull copyFile( return JsonManager.deserialize(response.getData(), FileFull.class); } + /** + * Retrieves a thumbnail, or smaller image representation, of a file. + * + *

    Sizes of `32x32`,`64x64`, `128x128`, and `256x256` can be returned in the `.png` format and + * sizes of `32x32`, `160x160`, and `320x320` can be returned in the `.jpg` format. + * + *

    Thumbnails can be generated for the image and video file formats listed [found on our + * community site][1]. + * + *

    [1]: + * https://community.box.com/t5/Migrating-and-Previewing-Content/File-Types-and-Fonts-Supported-in-Box-Content-Preview/ta-p/327 + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param extension The file format for the thumbnail. Example: "png" + */ public String getFileThumbnailUrl(String fileId, GetFileThumbnailUrlExtension extension) { return getFileThumbnailUrl( fileId, extension, new GetFileThumbnailUrlQueryParams(), new GetFileThumbnailUrlHeaders()); } + /** + * Retrieves a thumbnail, or smaller image representation, of a file. + * + *

    Sizes of `32x32`,`64x64`, `128x128`, and `256x256` can be returned in the `.png` format and + * sizes of `32x32`, `160x160`, and `320x320` can be returned in the `.jpg` format. + * + *

    Thumbnails can be generated for the image and video file formats listed [found on our + * community site][1]. + * + *

    [1]: + * https://community.box.com/t5/Migrating-and-Previewing-Content/File-Types-and-Fonts-Supported-in-Box-Content-Preview/ta-p/327 + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param extension The file format for the thumbnail. Example: "png" + * @param queryParams Query parameters of getFileThumbnailById method + */ public String getFileThumbnailUrl( String fileId, GetFileThumbnailUrlExtension extension, @@ -233,11 +453,50 @@ public String getFileThumbnailUrl( return getFileThumbnailUrl(fileId, extension, queryParams, new GetFileThumbnailUrlHeaders()); } + /** + * Retrieves a thumbnail, or smaller image representation, of a file. + * + *

    Sizes of `32x32`,`64x64`, `128x128`, and `256x256` can be returned in the `.png` format and + * sizes of `32x32`, `160x160`, and `320x320` can be returned in the `.jpg` format. + * + *

    Thumbnails can be generated for the image and video file formats listed [found on our + * community site][1]. + * + *

    [1]: + * https://community.box.com/t5/Migrating-and-Previewing-Content/File-Types-and-Fonts-Supported-in-Box-Content-Preview/ta-p/327 + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param extension The file format for the thumbnail. Example: "png" + * @param headers Headers of getFileThumbnailById method + */ public String getFileThumbnailUrl( String fileId, GetFileThumbnailUrlExtension extension, GetFileThumbnailUrlHeaders headers) { return getFileThumbnailUrl(fileId, extension, new GetFileThumbnailUrlQueryParams(), headers); } + /** + * Retrieves a thumbnail, or smaller image representation, of a file. + * + *

    Sizes of `32x32`,`64x64`, `128x128`, and `256x256` can be returned in the `.png` format and + * sizes of `32x32`, `160x160`, and `320x320` can be returned in the `.jpg` format. + * + *

    Thumbnails can be generated for the image and video file formats listed [found on our + * community site][1]. + * + *

    [1]: + * https://community.box.com/t5/Migrating-and-Previewing-Content/File-Types-and-Fonts-Supported-in-Box-Content-Preview/ta-p/327 + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param extension The file format for the thumbnail. Example: "png" + * @param queryParams Query parameters of getFileThumbnailById method + * @param headers Headers of getFileThumbnailById method + */ public String getFileThumbnailUrl( String fileId, GetFileThumbnailUrlExtension extension, @@ -280,6 +539,24 @@ public String getFileThumbnailUrl( throw new BoxSDKError("No location header in response"); } + /** + * Retrieves a thumbnail, or smaller image representation, of a file. + * + *

    Sizes of `32x32`,`64x64`, `128x128`, and `256x256` can be returned in the `.png` format and + * sizes of `32x32`, `160x160`, and `320x320` can be returned in the `.jpg` format. + * + *

    Thumbnails can be generated for the image and video file formats listed [found on our + * community site][1]. + * + *

    [1]: + * https://community.box.com/t5/Migrating-and-Previewing-Content/File-Types-and-Fonts-Supported-in-Box-Content-Preview/ta-p/327 + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param extension The file format for the thumbnail. Example: "png" + */ public InputStream getFileThumbnailById(String fileId, GetFileThumbnailByIdExtension extension) { return getFileThumbnailById( fileId, @@ -288,6 +565,25 @@ public InputStream getFileThumbnailById(String fileId, GetFileThumbnailByIdExten new GetFileThumbnailByIdHeaders()); } + /** + * Retrieves a thumbnail, or smaller image representation, of a file. + * + *

    Sizes of `32x32`,`64x64`, `128x128`, and `256x256` can be returned in the `.png` format and + * sizes of `32x32`, `160x160`, and `320x320` can be returned in the `.jpg` format. + * + *

    Thumbnails can be generated for the image and video file formats listed [found on our + * community site][1]. + * + *

    [1]: + * https://community.box.com/t5/Migrating-and-Previewing-Content/File-Types-and-Fonts-Supported-in-Box-Content-Preview/ta-p/327 + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param extension The file format for the thumbnail. Example: "png" + * @param queryParams Query parameters of getFileThumbnailById method + */ public InputStream getFileThumbnailById( String fileId, GetFileThumbnailByIdExtension extension, @@ -295,11 +591,50 @@ public InputStream getFileThumbnailById( return getFileThumbnailById(fileId, extension, queryParams, new GetFileThumbnailByIdHeaders()); } + /** + * Retrieves a thumbnail, or smaller image representation, of a file. + * + *

    Sizes of `32x32`,`64x64`, `128x128`, and `256x256` can be returned in the `.png` format and + * sizes of `32x32`, `160x160`, and `320x320` can be returned in the `.jpg` format. + * + *

    Thumbnails can be generated for the image and video file formats listed [found on our + * community site][1]. + * + *

    [1]: + * https://community.box.com/t5/Migrating-and-Previewing-Content/File-Types-and-Fonts-Supported-in-Box-Content-Preview/ta-p/327 + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param extension The file format for the thumbnail. Example: "png" + * @param headers Headers of getFileThumbnailById method + */ public InputStream getFileThumbnailById( String fileId, GetFileThumbnailByIdExtension extension, GetFileThumbnailByIdHeaders headers) { return getFileThumbnailById(fileId, extension, new GetFileThumbnailByIdQueryParams(), headers); } + /** + * Retrieves a thumbnail, or smaller image representation, of a file. + * + *

    Sizes of `32x32`,`64x64`, `128x128`, and `256x256` can be returned in the `.png` format and + * sizes of `32x32`, `160x160`, and `320x320` can be returned in the `.jpg` format. + * + *

    Thumbnails can be generated for the image and video file formats listed [found on our + * community site][1]. + * + *

    [1]: + * https://community.box.com/t5/Migrating-and-Previewing-Content/File-Types-and-Fonts-Supported-in-Box-Content-Preview/ta-p/327 + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param extension The file format for the thumbnail. Example: "png" + * @param queryParams Query parameters of getFileThumbnailById method + * @param headers Headers of getFileThumbnailById method + */ public InputStream getFileThumbnailById( String fileId, GetFileThumbnailByIdExtension extension, diff --git a/src/main/java/com/box/sdkgen/managers/files/GetFileByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/files/GetFileByIdHeaders.java index 9f3640de1..b7a9d72a7 100644 --- a/src/main/java/com/box/sdkgen/managers/files/GetFileByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/files/GetFileByIdHeaders.java @@ -6,12 +6,47 @@ public class GetFileByIdHeaders { + /** + * Ensures an item is only returned if it has changed. + * + *

    Pass in the item's last observed `etag` value into this header and the endpoint will fail + * with a `304 Not Modified` if the item has not changed since. + */ public String ifNoneMatch; + /** + * The URL, and optional password, for the shared link of this item. + * + *

    This header can be used to access items that have not been explicitly shared with a user. + * + *

    Use the format `shared_link=[link]` or if a password is required then use + * `shared_link=[link]&shared_link_password=[password]`. + * + *

    This header can be used on the file or folder shared, as well as on any files or folders + * nested within the item. + */ public String boxapi; + /** + * A header required to request specific `representations` of a file. Use this in combination with + * the `fields` query parameter to request a specific file representation. + * + *

    The general format for these representations is `X-Rep-Hints: [...]` where `[...]` is one or + * many hints in the format `[fileType?query]`. + * + *

    For example, to request a `png` representation in `32x32` as well as `64x64` pixel + * dimensions provide the following hints. + * + *

    `x-rep-hints: [jpg?dimensions=32x32][jpg?dimensions=64x64]` + * + *

    Additionally, a `text` representation is available for all document file types in Box using + * the `[extracted_text]` representation. + * + *

    `x-rep-hints: [extracted_text]`. + */ public String xRepHints; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFileByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/files/GetFileByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/files/GetFileByIdQueryParams.java index 56b728bb1..31b1f0303 100644 --- a/src/main/java/com/box/sdkgen/managers/files/GetFileByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/files/GetFileByIdQueryParams.java @@ -4,6 +4,18 @@ public class GetFileByIdQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + * + *

    Additionally this field can be used to query any metadata applied to the file by specifying + * the `metadata` field as well as the scope and key of the template to retrieve, for example + * `?fields=metadata.enterprise_12345.contractTemplate`. + */ public List fields; public GetFileByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdHeaders.java index 6562d6c1e..25f4c51ec 100644 --- a/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdHeaders.java @@ -6,6 +6,7 @@ public class GetFileThumbnailByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFileThumbnailByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdQueryParams.java index 796274fab..f62ae7dfa 100644 --- a/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdQueryParams.java @@ -2,12 +2,16 @@ public class GetFileThumbnailByIdQueryParams { + /** The minimum height of the thumbnail. */ public Long minHeight; + /** The minimum width of the thumbnail. */ public Long minWidth; + /** The maximum height of the thumbnail. */ public Long maxHeight; + /** The maximum width of the thumbnail. */ public Long maxWidth; public GetFileThumbnailByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlHeaders.java b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlHeaders.java index b2c837505..83097e57d 100644 --- a/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlHeaders.java @@ -6,6 +6,7 @@ public class GetFileThumbnailUrlHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFileThumbnailUrlHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlQueryParams.java b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlQueryParams.java index da7241618..2bd17b26a 100644 --- a/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlQueryParams.java @@ -2,12 +2,16 @@ public class GetFileThumbnailUrlQueryParams { + /** The minimum height of the thumbnail. */ public Long minHeight; + /** The minimum width of the thumbnail. */ public Long minWidth; + /** The maximum height of the thumbnail. */ public Long maxHeight; + /** The maximum width of the thumbnail. */ public Long maxWidth; public GetFileThumbnailUrlQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdHeaders.java index f443371f6..74dd12a29 100644 --- a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdHeaders.java @@ -6,8 +6,15 @@ public class UpdateFileByIdHeaders { + /** + * Ensures this item hasn't recently changed before making changes. + * + *

    Pass in the item's last observed `etag` value into this header and the endpoint will fail + * with a `412 Precondition Failed` if it has changed since. + */ public String ifMatch; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateFileByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdQueryParams.java index de54edab8..5d27a72d2 100644 --- a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdQueryParams.java @@ -4,6 +4,14 @@ public class UpdateFileByIdQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public UpdateFileByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBody.java index d47188f95..14c0b0469 100644 --- a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBody.java @@ -15,8 +15,20 @@ @JsonFilter("nullablePropertyFilter") public class UpdateFileByIdRequestBody extends SerializableObject { + /** + * An optional different name for the file. This can be used to rename the file. + * + *

    File names must be unique within their parent folder. The name check is case-insensitive, so + * a file named `New File` cannot be created in a parent folder that already contains a folder + * named `new file`. + */ protected String name; + /** + * The description for a file. This can be seen in the right-hand sidebar panel when viewing a + * file in the Box web app. Additionally, this index is used in the search index of the file, + * allowing users to find the file by the content in the description. + */ protected String description; protected UpdateFileByIdRequestBodyParentField parent; @@ -25,17 +37,47 @@ public class UpdateFileByIdRequestBody extends SerializableObject { @Nullable protected UpdateFileByIdRequestBodySharedLinkField sharedLink; + /** + * Defines a lock on an item. This prevents the item from being moved, renamed, or otherwise + * changed by anyone other than the user who created the lock. + * + *

    Set this to `null` to remove the lock. + */ @Nullable protected UpdateFileByIdRequestBodyLockField lock; + /** + * The retention expiration timestamp for the given file. This date cannot be shortened once set + * on a file. + */ @JsonProperty("disposition_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime dispositionAt; + /** Defines who can download a file. */ protected UpdateFileByIdRequestBodyPermissionsField permissions; + /** + * An array of collections to make this file a member of. Currently we only support the + * `favorites` collection. + * + *

    To get the ID for a collection, use the [List all collections][1] endpoint. + * + *

    Passing an empty array `[]` or `null` will remove the file from all collections. + * + *

    [1]: e://get-collections + */ @Nullable protected List collections; + /** + * The tags for this item. These tags are shown in the Box web app and mobile apps next to an + * item. + * + *

    To add or remove a tag, retrieve the item's current tags, modify them, and then update this + * field. + * + *

    There is a limit of 100 tags per item, and 10,000 unique tags per enterprise. + */ protected List tags; public UpdateFileByIdRequestBody() { diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyCollectionsField.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyCollectionsField.java index 8ca786dea..92b23dca7 100644 --- a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyCollectionsField.java +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyCollectionsField.java @@ -8,8 +8,10 @@ @JsonFilter("nullablePropertyFilter") public class UpdateFileByIdRequestBodyCollectionsField extends SerializableObject { + /** The unique identifier for this object. */ protected String id; + /** The type for this object. */ protected String type; public UpdateFileByIdRequestBodyCollectionsField() { diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyLockField.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyLockField.java index c38cd950b..91da19fe2 100644 --- a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyLockField.java +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyLockField.java @@ -14,6 +14,7 @@ @JsonFilter("nullablePropertyFilter") public class UpdateFileByIdRequestBodyLockField extends SerializableObject { + /** The type of this object. */ @JsonDeserialize( using = UpdateFileByIdRequestBodyLockAccessField @@ -24,11 +25,13 @@ public class UpdateFileByIdRequestBodyLockField extends SerializableObject { .UpdateFileByIdRequestBodyLockAccessFieldSerializer.class) protected EnumWrapper access; + /** Defines the time at which the lock expires. */ @JsonProperty("expires_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime expiresAt; + /** Defines if the file can be downloaded while it is locked. */ @JsonProperty("is_download_prevented") protected Boolean isDownloadPrevented; diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyParentField.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyParentField.java index 99d296f33..ca4bd58af 100644 --- a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyParentField.java +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyParentField.java @@ -9,8 +9,13 @@ @JsonFilter("nullablePropertyFilter") public class UpdateFileByIdRequestBodyParentField extends SerializableObject { + /** The ID of parent item. */ protected String id; + /** + * The input for `user_id` is optional. Moving to non-root folder is not allowed when `user_id` is + * present. Parent folder id should be zero when `user_id` is provided. + */ @JsonProperty("user_id") protected String userId; diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyPermissionsField.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyPermissionsField.java index f38c860fa..12a474458 100644 --- a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyPermissionsField.java +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyPermissionsField.java @@ -12,6 +12,14 @@ @JsonFilter("nullablePropertyFilter") public class UpdateFileByIdRequestBodyPermissionsField extends SerializableObject { + /** + * Defines who is allowed to download this file. The possible values are either `open` for + * everyone or `company` for the other members of the user's enterprise. + * + *

    This setting overrides the download permissions that are normally part of the `role` of a + * collaboration. When set to `company`, this essentially removes the download option for external + * users with `viewer` or `editor` a roles. + */ @JsonDeserialize( using = UpdateFileByIdRequestBodyPermissionsCanDownloadField diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkField.java index 32133376b..5036d60f8 100644 --- a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkField.java +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkField.java @@ -15,6 +15,17 @@ @JsonFilter("nullablePropertyFilter") public class UpdateFileByIdRequestBodySharedLinkField extends SerializableObject { + /** + * The level of access for the shared link. This can be restricted to anyone with the link + * (`open`), only people within the company (`company`) and only those who have been invited to + * the folder (`collaborators`). + * + *

    If not set, this field defaults to the access level specified by the enterprise admin. To + * create a shared link with this default setting pass the `shared_link` object with no `access` + * field, for example `{ "shared_link": {} }`. + * + *

    The `company` access level is only available to paid accounts. + */ @JsonDeserialize( using = UpdateFileByIdRequestBodySharedLinkAccessField @@ -25,11 +36,28 @@ public class UpdateFileByIdRequestBodySharedLinkField extends SerializableObject .UpdateFileByIdRequestBodySharedLinkAccessFieldSerializer.class) protected EnumWrapper access; + /** + * The password required to access the shared link. Set the password to `null` to remove it. + * Passwords must now be at least eight characters long and include a number, upper case letter, + * or a non-numeric or non-alphabetic character. A password can only be set when `access` is set + * to `open`. + */ @Nullable protected String password; + /** + * Defines a custom vanity name to use in the shared link URL, for example + * `https://app.box.com/v/my-shared-link`. + * + *

    Custom URLs should not be used when sharing sensitive content as vanity URLs are a lot + * easier to guess than regular shared links. + */ @JsonProperty("vanity_name") protected String vanityName; + /** + * The timestamp at which this shared link will expire. This field can only be set by users with + * paid accounts. + */ @JsonProperty("unshared_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkPermissionsField.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkPermissionsField.java index 18ee3fc3a..b31392843 100644 --- a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkPermissionsField.java +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkPermissionsField.java @@ -9,6 +9,10 @@ @JsonFilter("nullablePropertyFilter") public class UpdateFileByIdRequestBodySharedLinkPermissionsField extends SerializableObject { + /** + * If the shared link allows for downloading of files. This can only be set when `access` is set + * to `open` or `company`. + */ @JsonProperty("can_download") protected Boolean canDownload; diff --git a/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/FileVersionLegalHoldsManager.java b/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/FileVersionLegalHoldsManager.java index d462a2851..45eed0469 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/FileVersionLegalHoldsManager.java +++ b/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/FileVersionLegalHoldsManager.java @@ -31,11 +31,22 @@ protected FileVersionLegalHoldsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves information about the legal hold policies assigned to a file version. + * + * @param fileVersionLegalHoldId The ID of the file version legal hold. Example: "2348213" + */ public FileVersionLegalHold getFileVersionLegalHoldById(String fileVersionLegalHoldId) { return getFileVersionLegalHoldById( fileVersionLegalHoldId, new GetFileVersionLegalHoldByIdHeaders()); } + /** + * Retrieves information about the legal hold policies assigned to a file version. + * + * @param fileVersionLegalHoldId The ID of the file version legal hold. Example: "2348213" + * @param headers Headers of getFileVersionLegalHoldById method + */ public FileVersionLegalHold getFileVersionLegalHoldById( String fileVersionLegalHoldId, GetFileVersionLegalHoldByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -58,11 +69,56 @@ public FileVersionLegalHold getFileVersionLegalHoldById( return JsonManager.deserialize(response.getData(), FileVersionLegalHold.class); } + /** + * Get a list of file versions on legal hold for a legal hold assignment. + * + *

    Due to ongoing re-architecture efforts this API might not return all file versions for this + * policy ID. + * + *

    Instead, this API will only return file versions held in the legacy architecture. Two new + * endpoints will available to request any file versions held in the new architecture. + * + *

    For file versions held in the new architecture, the `GET + * /legal_hold_policy_assignments/:id/file_versions_on_hold` API can be used to return all past + * file versions available for this policy assignment, and the `GET + * /legal_hold_policy_assignments/:id/files_on_hold` API can be used to return any current + * (latest) versions of a file under legal hold. + * + *

    The `GET /legal_hold_policy_assignments?policy_id={id}` API can be used to find a list of + * policy assignments for a given policy ID. + * + *

    Once the re-architecture is completed this API will be deprecated. + * + * @param queryParams Query parameters of getFileVersionLegalHolds method + */ public FileVersionLegalHolds getFileVersionLegalHolds( GetFileVersionLegalHoldsQueryParams queryParams) { return getFileVersionLegalHolds(queryParams, new GetFileVersionLegalHoldsHeaders()); } + /** + * Get a list of file versions on legal hold for a legal hold assignment. + * + *

    Due to ongoing re-architecture efforts this API might not return all file versions for this + * policy ID. + * + *

    Instead, this API will only return file versions held in the legacy architecture. Two new + * endpoints will available to request any file versions held in the new architecture. + * + *

    For file versions held in the new architecture, the `GET + * /legal_hold_policy_assignments/:id/file_versions_on_hold` API can be used to return all past + * file versions available for this policy assignment, and the `GET + * /legal_hold_policy_assignments/:id/files_on_hold` API can be used to return any current + * (latest) versions of a file under legal hold. + * + *

    The `GET /legal_hold_policy_assignments?policy_id={id}` API can be used to find a list of + * policy assignments for a given policy ID. + * + *

    Once the re-architecture is completed this API will be deprecated. + * + * @param queryParams Query parameters of getFileVersionLegalHolds method + * @param headers Headers of getFileVersionLegalHolds method + */ public FileVersionLegalHolds getFileVersionLegalHolds( GetFileVersionLegalHoldsQueryParams queryParams, GetFileVersionLegalHoldsHeaders headers) { Map queryParamsMap = diff --git a/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldByIdHeaders.java index c20d333ae..d94616942 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldByIdHeaders.java @@ -6,6 +6,7 @@ public class GetFileVersionLegalHoldByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFileVersionLegalHoldByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldsHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldsHeaders.java index 1f0bd0c20..87a270b6a 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldsHeaders.java @@ -6,6 +6,7 @@ public class GetFileVersionLegalHoldsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFileVersionLegalHoldsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldsQueryParams.java b/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldsQueryParams.java index 4cb79ed9d..bd45e86c8 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldsQueryParams.java @@ -2,10 +2,18 @@ public class GetFileVersionLegalHoldsQueryParams { + /** The ID of the legal hold policy to get the file version legal holds for. */ public final String policyId; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetFileVersionLegalHoldsQueryParams(String policyId) { diff --git a/src/main/java/com/box/sdkgen/managers/fileversionretentions/FileVersionRetentionsManager.java b/src/main/java/com/box/sdkgen/managers/fileversionretentions/FileVersionRetentionsManager.java index 7592f6d02..3fcea546c 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversionretentions/FileVersionRetentionsManager.java +++ b/src/main/java/com/box/sdkgen/managers/fileversionretentions/FileVersionRetentionsManager.java @@ -31,20 +31,63 @@ protected FileVersionRetentionsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves all file version retentions for the given enterprise. + * + *

    **Note**: File retention API is now **deprecated**. To get information about files and file + * versions under retention, see [files under + * retention](e://get-retention-policy-assignments-id-files-under-retention) or [file versions + * under retention](e://get-retention-policy-assignments-id-file-versions-under-retention) + * endpoints. + */ public FileVersionRetentions getFileVersionRetentions() { return getFileVersionRetentions( new GetFileVersionRetentionsQueryParams(), new GetFileVersionRetentionsHeaders()); } + /** + * Retrieves all file version retentions for the given enterprise. + * + *

    **Note**: File retention API is now **deprecated**. To get information about files and file + * versions under retention, see [files under + * retention](e://get-retention-policy-assignments-id-files-under-retention) or [file versions + * under retention](e://get-retention-policy-assignments-id-file-versions-under-retention) + * endpoints. + * + * @param queryParams Query parameters of getFileVersionRetentions method + */ public FileVersionRetentions getFileVersionRetentions( GetFileVersionRetentionsQueryParams queryParams) { return getFileVersionRetentions(queryParams, new GetFileVersionRetentionsHeaders()); } + /** + * Retrieves all file version retentions for the given enterprise. + * + *

    **Note**: File retention API is now **deprecated**. To get information about files and file + * versions under retention, see [files under + * retention](e://get-retention-policy-assignments-id-files-under-retention) or [file versions + * under retention](e://get-retention-policy-assignments-id-file-versions-under-retention) + * endpoints. + * + * @param headers Headers of getFileVersionRetentions method + */ public FileVersionRetentions getFileVersionRetentions(GetFileVersionRetentionsHeaders headers) { return getFileVersionRetentions(new GetFileVersionRetentionsQueryParams(), headers); } + /** + * Retrieves all file version retentions for the given enterprise. + * + *

    **Note**: File retention API is now **deprecated**. To get information about files and file + * versions under retention, see [files under + * retention](e://get-retention-policy-assignments-id-files-under-retention) or [file versions + * under retention](e://get-retention-policy-assignments-id-file-versions-under-retention) + * endpoints. + * + * @param queryParams Query parameters of getFileVersionRetentions method + * @param headers Headers of getFileVersionRetentions method + */ public FileVersionRetentions getFileVersionRetentions( GetFileVersionRetentionsQueryParams queryParams, GetFileVersionRetentionsHeaders headers) { Map queryParamsMap = @@ -78,11 +121,34 @@ public FileVersionRetentions getFileVersionRetentions( return JsonManager.deserialize(response.getData(), FileVersionRetentions.class); } + /** + * Returns information about a file version retention. + * + *

    **Note**: File retention API is now **deprecated**. To get information about files and file + * versions under retention, see [files under + * retention](e://get-retention-policy-assignments-id-files-under-retention) or [file versions + * under retention](e://get-retention-policy-assignments-id-file-versions-under-retention) + * endpoints. + * + * @param fileVersionRetentionId The ID of the file version retention. Example: "3424234" + */ public FileVersionRetention getFileVersionRetentionById(String fileVersionRetentionId) { return getFileVersionRetentionById( fileVersionRetentionId, new GetFileVersionRetentionByIdHeaders()); } + /** + * Returns information about a file version retention. + * + *

    **Note**: File retention API is now **deprecated**. To get information about files and file + * versions under retention, see [files under + * retention](e://get-retention-policy-assignments-id-files-under-retention) or [file versions + * under retention](e://get-retention-policy-assignments-id-file-versions-under-retention) + * endpoints. + * + * @param fileVersionRetentionId The ID of the file version retention. Example: "3424234" + * @param headers Headers of getFileVersionRetentionById method + */ public FileVersionRetention getFileVersionRetentionById( String fileVersionRetentionId, GetFileVersionRetentionByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); diff --git a/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionByIdHeaders.java index 1eb506eca..9eb0870d9 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionByIdHeaders.java @@ -6,6 +6,7 @@ public class GetFileVersionRetentionByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFileVersionRetentionByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsHeaders.java index 7c4fd6959..df5b78e74 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsHeaders.java @@ -6,6 +6,7 @@ public class GetFileVersionRetentionsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFileVersionRetentionsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsQueryParams.java b/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsQueryParams.java index 1eb716861..cdb9d225f 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsQueryParams.java @@ -4,20 +4,35 @@ public class GetFileVersionRetentionsQueryParams { + /** Filters results by files with this ID. */ public String fileId; + /** Filters results by file versions with this ID. */ public String fileVersionId; + /** Filters results by the retention policy with this ID. */ public String policyId; + /** Filters results by the retention policy with this disposition action. */ public EnumWrapper dispositionAction; + /** + * Filters results by files that will have their disposition come into effect before this date. + */ public String dispositionBefore; + /** Filters results by files that will have their disposition come into effect after this date. */ public String dispositionAfter; + /** The maximum number of items to return per page. */ public Long limit; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; public GetFileVersionRetentionsQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/DeleteFileVersionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversions/DeleteFileVersionByIdHeaders.java index fcdf143b7..ec610f437 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversions/DeleteFileVersionByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileversions/DeleteFileVersionByIdHeaders.java @@ -6,8 +6,15 @@ public class DeleteFileVersionByIdHeaders { + /** + * Ensures this item hasn't recently changed before making changes. + * + *

    Pass in the item's last observed `etag` value into this header and the endpoint will fail + * with a `412 Precondition Failed` if it has changed since. + */ public String ifMatch; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteFileVersionByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/FileVersionsManager.java b/src/main/java/com/box/sdkgen/managers/fileversions/FileVersionsManager.java index 17e81ee9c..59676a8a9 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversions/FileVersionsManager.java +++ b/src/main/java/com/box/sdkgen/managers/fileversions/FileVersionsManager.java @@ -31,18 +31,66 @@ protected FileVersionsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieve a list of the past versions for a file. + * + *

    Versions are only tracked by Box users with premium accounts. To fetch the ID of the current + * version of a file, use the `GET /file/:id` API. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + */ public FileVersions getFileVersions(String fileId) { return getFileVersions(fileId, new GetFileVersionsQueryParams(), new GetFileVersionsHeaders()); } + /** + * Retrieve a list of the past versions for a file. + * + *

    Versions are only tracked by Box users with premium accounts. To fetch the ID of the current + * version of a file, use the `GET /file/:id` API. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of getFileVersions method + */ public FileVersions getFileVersions(String fileId, GetFileVersionsQueryParams queryParams) { return getFileVersions(fileId, queryParams, new GetFileVersionsHeaders()); } + /** + * Retrieve a list of the past versions for a file. + * + *

    Versions are only tracked by Box users with premium accounts. To fetch the ID of the current + * version of a file, use the `GET /file/:id` API. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param headers Headers of getFileVersions method + */ public FileVersions getFileVersions(String fileId, GetFileVersionsHeaders headers) { return getFileVersions(fileId, new GetFileVersionsQueryParams(), headers); } + /** + * Retrieve a list of the past versions for a file. + * + *

    Versions are only tracked by Box users with premium accounts. To fetch the ID of the current + * version of a file, use the `GET /file/:id` API. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of getFileVersions method + * @param headers Headers of getFileVersions method + */ public FileVersions getFileVersions( String fileId, GetFileVersionsQueryParams queryParams, GetFileVersionsHeaders headers) { Map queryParamsMap = @@ -73,6 +121,17 @@ public FileVersions getFileVersions( return JsonManager.deserialize(response.getData(), FileVersions.class); } + /** + * Retrieve a specific version of a file. + * + *

    Versions are only tracked for Box users with premium accounts. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param fileVersionId The ID of the file version. Example: "1234" + */ public FileVersionFull getFileVersionById(String fileId, String fileVersionId) { return getFileVersionById( fileId, @@ -81,16 +140,53 @@ public FileVersionFull getFileVersionById(String fileId, String fileVersionId) { new GetFileVersionByIdHeaders()); } + /** + * Retrieve a specific version of a file. + * + *

    Versions are only tracked for Box users with premium accounts. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param fileVersionId The ID of the file version. Example: "1234" + * @param queryParams Query parameters of getFileVersionById method + */ public FileVersionFull getFileVersionById( String fileId, String fileVersionId, GetFileVersionByIdQueryParams queryParams) { return getFileVersionById(fileId, fileVersionId, queryParams, new GetFileVersionByIdHeaders()); } + /** + * Retrieve a specific version of a file. + * + *

    Versions are only tracked for Box users with premium accounts. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param fileVersionId The ID of the file version. Example: "1234" + * @param headers Headers of getFileVersionById method + */ public FileVersionFull getFileVersionById( String fileId, String fileVersionId, GetFileVersionByIdHeaders headers) { return getFileVersionById(fileId, fileVersionId, new GetFileVersionByIdQueryParams(), headers); } + /** + * Retrieve a specific version of a file. + * + *

    Versions are only tracked for Box users with premium accounts. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param fileVersionId The ID of the file version. Example: "1234" + * @param queryParams Query parameters of getFileVersionById method + * @param headers Headers of getFileVersionById method + */ public FileVersionFull getFileVersionById( String fileId, String fileVersionId, @@ -121,10 +217,33 @@ public FileVersionFull getFileVersionById( return JsonManager.deserialize(response.getData(), FileVersionFull.class); } + /** + * Move a file version to the trash. + * + *

    Versions are only tracked for Box users with premium accounts. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param fileVersionId The ID of the file version. Example: "1234" + */ public void deleteFileVersionById(String fileId, String fileVersionId) { deleteFileVersionById(fileId, fileVersionId, new DeleteFileVersionByIdHeaders()); } + /** + * Move a file version to the trash. + * + *

    Versions are only tracked for Box users with premium accounts. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param fileVersionId The ID of the file version. Example: "1234" + * @param headers Headers of deleteFileVersionById method + */ public void deleteFileVersionById( String fileId, String fileVersionId, DeleteFileVersionByIdHeaders headers) { Map headersMap = @@ -152,6 +271,16 @@ public void deleteFileVersionById( .build()); } + /** + * Restores a specific version of a file after it was deleted. Don't use this endpoint to restore + * Box Notes, as it works with file formats such as PDF, DOC, PPTX or similar. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param fileVersionId The ID of the file version. Example: "1234" + */ public FileVersionFull updateFileVersionById(String fileId, String fileVersionId) { return updateFileVersionById( fileId, @@ -160,18 +289,52 @@ public FileVersionFull updateFileVersionById(String fileId, String fileVersionId new UpdateFileVersionByIdHeaders()); } + /** + * Restores a specific version of a file after it was deleted. Don't use this endpoint to restore + * Box Notes, as it works with file formats such as PDF, DOC, PPTX or similar. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param fileVersionId The ID of the file version. Example: "1234" + * @param requestBody Request body of updateFileVersionById method + */ public FileVersionFull updateFileVersionById( String fileId, String fileVersionId, UpdateFileVersionByIdRequestBody requestBody) { return updateFileVersionById( fileId, fileVersionId, requestBody, new UpdateFileVersionByIdHeaders()); } + /** + * Restores a specific version of a file after it was deleted. Don't use this endpoint to restore + * Box Notes, as it works with file formats such as PDF, DOC, PPTX or similar. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param fileVersionId The ID of the file version. Example: "1234" + * @param headers Headers of updateFileVersionById method + */ public FileVersionFull updateFileVersionById( String fileId, String fileVersionId, UpdateFileVersionByIdHeaders headers) { return updateFileVersionById( fileId, fileVersionId, new UpdateFileVersionByIdRequestBody(), headers); } + /** + * Restores a specific version of a file after it was deleted. Don't use this endpoint to restore + * Box Notes, as it works with file formats such as PDF, DOC, PPTX or similar. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param fileVersionId The ID of the file version. Example: "1234" + * @param requestBody Request body of updateFileVersionById method + * @param headers Headers of updateFileVersionById method + */ public FileVersionFull updateFileVersionById( String fileId, String fileVersionId, @@ -201,6 +364,26 @@ public FileVersionFull updateFileVersionById( return JsonManager.deserialize(response.getData(), FileVersionFull.class); } + /** + * Promote a specific version of a file. + * + *

    If previous versions exist, this method can be used to promote one of the older versions to + * the top of the version history. + * + *

    This creates a new copy of the old version and puts it at the top of the versions history. + * The file will have the exact same contents as the older version, with the same hash digest, + * `etag`, and name as the original. + * + *

    Other properties such as comments do not get updated to their former values. + * + *

    Don't use this endpoint to restore Box Notes, as it works with file formats such as PDF, + * DOC, PPTX or similar. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + */ public FileVersionFull promoteFileVersion(String fileId) { return promoteFileVersion( fileId, @@ -209,18 +392,82 @@ public FileVersionFull promoteFileVersion(String fileId) { new PromoteFileVersionHeaders()); } + /** + * Promote a specific version of a file. + * + *

    If previous versions exist, this method can be used to promote one of the older versions to + * the top of the version history. + * + *

    This creates a new copy of the old version and puts it at the top of the versions history. + * The file will have the exact same contents as the older version, with the same hash digest, + * `etag`, and name as the original. + * + *

    Other properties such as comments do not get updated to their former values. + * + *

    Don't use this endpoint to restore Box Notes, as it works with file formats such as PDF, + * DOC, PPTX or similar. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of promoteFileVersion method + */ public FileVersionFull promoteFileVersion( String fileId, PromoteFileVersionRequestBody requestBody) { return promoteFileVersion( fileId, requestBody, new PromoteFileVersionQueryParams(), new PromoteFileVersionHeaders()); } + /** + * Promote a specific version of a file. + * + *

    If previous versions exist, this method can be used to promote one of the older versions to + * the top of the version history. + * + *

    This creates a new copy of the old version and puts it at the top of the versions history. + * The file will have the exact same contents as the older version, with the same hash digest, + * `etag`, and name as the original. + * + *

    Other properties such as comments do not get updated to their former values. + * + *

    Don't use this endpoint to restore Box Notes, as it works with file formats such as PDF, + * DOC, PPTX or similar. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of promoteFileVersion method + */ public FileVersionFull promoteFileVersion( String fileId, PromoteFileVersionQueryParams queryParams) { return promoteFileVersion( fileId, new PromoteFileVersionRequestBody(), queryParams, new PromoteFileVersionHeaders()); } + /** + * Promote a specific version of a file. + * + *

    If previous versions exist, this method can be used to promote one of the older versions to + * the top of the version history. + * + *

    This creates a new copy of the old version and puts it at the top of the versions history. + * The file will have the exact same contents as the older version, with the same hash digest, + * `etag`, and name as the original. + * + *

    Other properties such as comments do not get updated to their former values. + * + *

    Don't use this endpoint to restore Box Notes, as it works with file formats such as PDF, + * DOC, PPTX or similar. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of promoteFileVersion method + * @param queryParams Query parameters of promoteFileVersion method + */ public FileVersionFull promoteFileVersion( String fileId, PromoteFileVersionRequestBody requestBody, @@ -228,21 +475,109 @@ public FileVersionFull promoteFileVersion( return promoteFileVersion(fileId, requestBody, queryParams, new PromoteFileVersionHeaders()); } + /** + * Promote a specific version of a file. + * + *

    If previous versions exist, this method can be used to promote one of the older versions to + * the top of the version history. + * + *

    This creates a new copy of the old version and puts it at the top of the versions history. + * The file will have the exact same contents as the older version, with the same hash digest, + * `etag`, and name as the original. + * + *

    Other properties such as comments do not get updated to their former values. + * + *

    Don't use this endpoint to restore Box Notes, as it works with file formats such as PDF, + * DOC, PPTX or similar. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param headers Headers of promoteFileVersion method + */ public FileVersionFull promoteFileVersion(String fileId, PromoteFileVersionHeaders headers) { return promoteFileVersion( fileId, new PromoteFileVersionRequestBody(), new PromoteFileVersionQueryParams(), headers); } + /** + * Promote a specific version of a file. + * + *

    If previous versions exist, this method can be used to promote one of the older versions to + * the top of the version history. + * + *

    This creates a new copy of the old version and puts it at the top of the versions history. + * The file will have the exact same contents as the older version, with the same hash digest, + * `etag`, and name as the original. + * + *

    Other properties such as comments do not get updated to their former values. + * + *

    Don't use this endpoint to restore Box Notes, as it works with file formats such as PDF, + * DOC, PPTX or similar. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of promoteFileVersion method + * @param headers Headers of promoteFileVersion method + */ public FileVersionFull promoteFileVersion( String fileId, PromoteFileVersionRequestBody requestBody, PromoteFileVersionHeaders headers) { return promoteFileVersion(fileId, requestBody, new PromoteFileVersionQueryParams(), headers); } + /** + * Promote a specific version of a file. + * + *

    If previous versions exist, this method can be used to promote one of the older versions to + * the top of the version history. + * + *

    This creates a new copy of the old version and puts it at the top of the versions history. + * The file will have the exact same contents as the older version, with the same hash digest, + * `etag`, and name as the original. + * + *

    Other properties such as comments do not get updated to their former values. + * + *

    Don't use this endpoint to restore Box Notes, as it works with file formats such as PDF, + * DOC, PPTX or similar. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of promoteFileVersion method + * @param headers Headers of promoteFileVersion method + */ public FileVersionFull promoteFileVersion( String fileId, PromoteFileVersionQueryParams queryParams, PromoteFileVersionHeaders headers) { return promoteFileVersion(fileId, new PromoteFileVersionRequestBody(), queryParams, headers); } + /** + * Promote a specific version of a file. + * + *

    If previous versions exist, this method can be used to promote one of the older versions to + * the top of the version history. + * + *

    This creates a new copy of the old version and puts it at the top of the versions history. + * The file will have the exact same contents as the older version, with the same hash digest, + * `etag`, and name as the original. + * + *

    Other properties such as comments do not get updated to their former values. + * + *

    Don't use this endpoint to restore Box Notes, as it works with file formats such as PDF, + * DOC, PPTX or similar. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of promoteFileVersion method + * @param queryParams Query parameters of promoteFileVersion method + * @param headers Headers of promoteFileVersion method + */ public FileVersionFull promoteFileVersion( String fileId, PromoteFileVersionRequestBody requestBody, diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionByIdHeaders.java index e92135573..7c01b9346 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionByIdHeaders.java @@ -6,6 +6,7 @@ public class GetFileVersionByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFileVersionByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionByIdQueryParams.java index 3b7e100b9..4f9fa5403 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionByIdQueryParams.java @@ -4,6 +4,14 @@ public class GetFileVersionByIdQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public GetFileVersionByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionsHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionsHeaders.java index 1310bc9bb..d5071efe4 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionsHeaders.java @@ -6,6 +6,7 @@ public class GetFileVersionsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFileVersionsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionsQueryParams.java b/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionsQueryParams.java index 1d808c5f6..0bdaa1050 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionsQueryParams.java @@ -4,10 +4,24 @@ public class GetFileVersionsQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; + /** The maximum number of items to return per page. */ public Long limit; + /** + * The offset of the item at which to begin the response. + * + *

    Queries with offset parameter value exceeding 10000 will be rejected with a 400 response. + */ public Long offset; public GetFileVersionsQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionHeaders.java index f97a560c8..a8715af20 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionHeaders.java @@ -6,6 +6,7 @@ public class PromoteFileVersionHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public PromoteFileVersionHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionQueryParams.java b/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionQueryParams.java index 7d186b7bf..673c7cdd2 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionQueryParams.java @@ -4,6 +4,14 @@ public class PromoteFileVersionQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public PromoteFileVersionQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionRequestBody.java b/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionRequestBody.java index a3e0d9f47..da5031bcd 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionRequestBody.java @@ -11,8 +11,10 @@ @JsonFilter("nullablePropertyFilter") public class PromoteFileVersionRequestBody extends SerializableObject { + /** The file version ID. */ protected String id; + /** The type to promote. */ @JsonDeserialize( using = PromoteFileVersionRequestBodyTypeField.PromoteFileVersionRequestBodyTypeFieldDeserializer diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/UpdateFileVersionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversions/UpdateFileVersionByIdHeaders.java index 7346c7f99..9d2e24cf4 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversions/UpdateFileVersionByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileversions/UpdateFileVersionByIdHeaders.java @@ -6,6 +6,7 @@ public class UpdateFileVersionByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateFileVersionByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/UpdateFileVersionByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/fileversions/UpdateFileVersionByIdRequestBody.java index 662755a5d..f7e1606a2 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversions/UpdateFileVersionByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/fileversions/UpdateFileVersionByIdRequestBody.java @@ -10,6 +10,7 @@ @JsonFilter("nullablePropertyFilter") public class UpdateFileVersionByIdRequestBody extends SerializableObject { + /** Set this to `null` to clear the date and restore the file. */ @JsonProperty("trashed_at") @Nullable protected String trashedAt; diff --git a/src/main/java/com/box/sdkgen/managers/filewatermarks/DeleteFileWatermarkHeaders.java b/src/main/java/com/box/sdkgen/managers/filewatermarks/DeleteFileWatermarkHeaders.java index 5246f4f6a..e8b92e0d7 100644 --- a/src/main/java/com/box/sdkgen/managers/filewatermarks/DeleteFileWatermarkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/filewatermarks/DeleteFileWatermarkHeaders.java @@ -6,6 +6,7 @@ public class DeleteFileWatermarkHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteFileWatermarkHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/filewatermarks/FileWatermarksManager.java b/src/main/java/com/box/sdkgen/managers/filewatermarks/FileWatermarksManager.java index 8b317512b..d42c94735 100644 --- a/src/main/java/com/box/sdkgen/managers/filewatermarks/FileWatermarksManager.java +++ b/src/main/java/com/box/sdkgen/managers/filewatermarks/FileWatermarksManager.java @@ -29,10 +29,27 @@ protected FileWatermarksManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieve the watermark for a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + */ public Watermark getFileWatermark(String fileId) { return getFileWatermark(fileId, new GetFileWatermarkHeaders()); } + /** + * Retrieve the watermark for a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param headers Headers of getFileWatermark method + */ public Watermark getFileWatermark(String fileId, GetFileWatermarkHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = @@ -55,10 +72,29 @@ public Watermark getFileWatermark(String fileId, GetFileWatermarkHeaders headers return JsonManager.deserialize(response.getData(), Watermark.class); } + /** + * Applies or update a watermark on a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of updateFileWatermark method + */ public Watermark updateFileWatermark(String fileId, UpdateFileWatermarkRequestBody requestBody) { return updateFileWatermark(fileId, requestBody, new UpdateFileWatermarkHeaders()); } + /** + * Applies or update a watermark on a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of updateFileWatermark method + * @param headers Headers of updateFileWatermark method + */ public Watermark updateFileWatermark( String fileId, UpdateFileWatermarkRequestBody requestBody, @@ -86,10 +122,27 @@ public Watermark updateFileWatermark( return JsonManager.deserialize(response.getData(), Watermark.class); } + /** + * Removes the watermark from a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + */ public void deleteFileWatermark(String fileId) { deleteFileWatermark(fileId, new DeleteFileWatermarkHeaders()); } + /** + * Removes the watermark from a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param headers Headers of deleteFileWatermark method + */ public void deleteFileWatermark(String fileId, DeleteFileWatermarkHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = diff --git a/src/main/java/com/box/sdkgen/managers/filewatermarks/GetFileWatermarkHeaders.java b/src/main/java/com/box/sdkgen/managers/filewatermarks/GetFileWatermarkHeaders.java index 716589721..4557dd54f 100644 --- a/src/main/java/com/box/sdkgen/managers/filewatermarks/GetFileWatermarkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/filewatermarks/GetFileWatermarkHeaders.java @@ -6,6 +6,7 @@ public class GetFileWatermarkHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFileWatermarkHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkHeaders.java b/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkHeaders.java index f5716549f..363658b0c 100644 --- a/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkHeaders.java @@ -6,6 +6,7 @@ public class UpdateFileWatermarkHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateFileWatermarkHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBody.java b/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBody.java index 986017d06..546e91e6c 100644 --- a/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBody.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class UpdateFileWatermarkRequestBody extends SerializableObject { + /** The watermark to imprint on the file. */ protected final UpdateFileWatermarkRequestBodyWatermarkField watermark; public UpdateFileWatermarkRequestBody( diff --git a/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBodyWatermarkField.java b/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBodyWatermarkField.java index 559ffdcdb..82edef9c4 100644 --- a/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBodyWatermarkField.java +++ b/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBodyWatermarkField.java @@ -11,6 +11,11 @@ @JsonFilter("nullablePropertyFilter") public class UpdateFileWatermarkRequestBodyWatermarkField extends SerializableObject { + /** + * The type of watermark to apply. + * + *

    Currently only supports one option. + */ @JsonDeserialize( using = UpdateFileWatermarkRequestBodyWatermarkImprintField diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/AddClassificationToFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/AddClassificationToFolderHeaders.java index f8138fe58..754ff9343 100644 --- a/src/main/java/com/box/sdkgen/managers/folderclassifications/AddClassificationToFolderHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/AddClassificationToFolderHeaders.java @@ -6,6 +6,7 @@ public class AddClassificationToFolderHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public AddClassificationToFolderHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/AddClassificationToFolderRequestBody.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/AddClassificationToFolderRequestBody.java index dcad4350d..c4b1843e7 100644 --- a/src/main/java/com/box/sdkgen/managers/folderclassifications/AddClassificationToFolderRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/AddClassificationToFolderRequestBody.java @@ -9,6 +9,14 @@ @JsonFilter("nullablePropertyFilter") public class AddClassificationToFolderRequestBody extends SerializableObject { + /** + * The name of the classification to apply to this folder. + * + *

    To list the available classifications in an enterprise, use the classification API to + * retrieve the [classification + * template](e://get_metadata_templates_enterprise_securityClassification-6VMVochwUWo_schema) + * which lists all available classification keys. + */ @JsonProperty("Box__Security__Classification__Key") protected String boxSecurityClassificationKey; diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/DeleteClassificationFromFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/DeleteClassificationFromFolderHeaders.java index 40907677b..1d9a79183 100644 --- a/src/main/java/com/box/sdkgen/managers/folderclassifications/DeleteClassificationFromFolderHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/DeleteClassificationFromFolderHeaders.java @@ -6,6 +6,7 @@ public class DeleteClassificationFromFolderHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteClassificationFromFolderHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/FolderClassificationsManager.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/FolderClassificationsManager.java index 9bb35d9b4..0bd8c1262 100644 --- a/src/main/java/com/box/sdkgen/managers/folderclassifications/FolderClassificationsManager.java +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/FolderClassificationsManager.java @@ -30,10 +30,35 @@ protected FolderClassificationsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves the classification metadata instance that has been applied to a folder. + * + *

    This API can also be called by including the enterprise ID in the URL explicitly, for + * example `/folders/:id/enterprise_12345/securityClassification-6VMVochwUWo`. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + */ public Classification getClassificationOnFolder(String folderId) { return getClassificationOnFolder(folderId, new GetClassificationOnFolderHeaders()); } + /** + * Retrieves the classification metadata instance that has been applied to a folder. + * + *

    This API can also be called by including the enterprise ID in the URL explicitly, for + * example `/folders/:id/enterprise_12345/securityClassification-6VMVochwUWo`. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param headers Headers of getClassificationOnFolder method + */ public Classification getClassificationOnFolder( String folderId, GetClassificationOnFolderHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -57,6 +82,18 @@ public Classification getClassificationOnFolder( return JsonManager.deserialize(response.getData(), Classification.class); } + /** + * Adds a classification to a folder by specifying the label of the classification to add. + * + *

    This API can also be called by including the enterprise ID in the URL explicitly, for + * example `/folders/:id/enterprise_12345/securityClassification-6VMVochwUWo`. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + */ public Classification addClassificationToFolder(String folderId) { return addClassificationToFolder( folderId, @@ -64,16 +101,56 @@ public Classification addClassificationToFolder(String folderId) { new AddClassificationToFolderHeaders()); } + /** + * Adds a classification to a folder by specifying the label of the classification to add. + * + *

    This API can also be called by including the enterprise ID in the URL explicitly, for + * example `/folders/:id/enterprise_12345/securityClassification-6VMVochwUWo`. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param requestBody Request body of addClassificationToFolder method + */ public Classification addClassificationToFolder( String folderId, AddClassificationToFolderRequestBody requestBody) { return addClassificationToFolder(folderId, requestBody, new AddClassificationToFolderHeaders()); } + /** + * Adds a classification to a folder by specifying the label of the classification to add. + * + *

    This API can also be called by including the enterprise ID in the URL explicitly, for + * example `/folders/:id/enterprise_12345/securityClassification-6VMVochwUWo`. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param headers Headers of addClassificationToFolder method + */ public Classification addClassificationToFolder( String folderId, AddClassificationToFolderHeaders headers) { return addClassificationToFolder(folderId, new AddClassificationToFolderRequestBody(), headers); } + /** + * Adds a classification to a folder by specifying the label of the classification to add. + * + *

    This API can also be called by including the enterprise ID in the URL explicitly, for + * example `/folders/:id/enterprise_12345/securityClassification-6VMVochwUWo`. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param requestBody Request body of addClassificationToFolder method + * @param headers Headers of addClassificationToFolder method + */ public Classification addClassificationToFolder( String folderId, AddClassificationToFolderRequestBody requestBody, @@ -101,12 +178,41 @@ public Classification addClassificationToFolder( return JsonManager.deserialize(response.getData(), Classification.class); } + /** + * Updates a classification on a folder. + * + *

    The classification can only be updated if a classification has already been applied to the + * folder before. When editing classifications, only values are defined for the enterprise will be + * accepted. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param requestBody Request body of updateClassificationOnFolder method + */ public Classification updateClassificationOnFolder( String folderId, List requestBody) { return updateClassificationOnFolder( folderId, requestBody, new UpdateClassificationOnFolderHeaders()); } + /** + * Updates a classification on a folder. + * + *

    The classification can only be updated if a classification has already been applied to the + * folder before. When editing classifications, only values are defined for the enterprise will be + * accepted. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param requestBody Request body of updateClassificationOnFolder method + * @param headers Headers of updateClassificationOnFolder method + */ public Classification updateClassificationOnFolder( String folderId, List requestBody, @@ -134,10 +240,35 @@ public Classification updateClassificationOnFolder( return JsonManager.deserialize(response.getData(), Classification.class); } + /** + * Removes any classifications from a folder. + * + *

    This API can also be called by including the enterprise ID in the URL explicitly, for + * example `/folders/:id/enterprise_12345/securityClassification-6VMVochwUWo`. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + */ public void deleteClassificationFromFolder(String folderId) { deleteClassificationFromFolder(folderId, new DeleteClassificationFromFolderHeaders()); } + /** + * Removes any classifications from a folder. + * + *

    This API can also be called by including the enterprise ID in the URL explicitly, for + * example `/folders/:id/enterprise_12345/securityClassification-6VMVochwUWo`. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param headers Headers of deleteClassificationFromFolder method + */ public void deleteClassificationFromFolder( String folderId, DeleteClassificationFromFolderHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/GetClassificationOnFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/GetClassificationOnFolderHeaders.java index 48a9737d5..5392f8c1d 100644 --- a/src/main/java/com/box/sdkgen/managers/folderclassifications/GetClassificationOnFolderHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/GetClassificationOnFolderHeaders.java @@ -6,6 +6,7 @@ public class GetClassificationOnFolderHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetClassificationOnFolderHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderHeaders.java index 8e3f352b2..fe835ac3d 100644 --- a/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderHeaders.java @@ -6,6 +6,7 @@ public class UpdateClassificationOnFolderHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateClassificationOnFolderHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBody.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBody.java index 8bb575421..c60055b3a 100644 --- a/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBody.java @@ -12,6 +12,7 @@ @JsonFilter("nullablePropertyFilter") public class UpdateClassificationOnFolderRequestBody extends SerializableObject { + /** The value will always be `replace`. */ @JsonDeserialize( using = UpdateClassificationOnFolderRequestBodyOpField @@ -22,6 +23,7 @@ public class UpdateClassificationOnFolderRequestBody extends SerializableObject .UpdateClassificationOnFolderRequestBodyOpFieldSerializer.class) protected EnumWrapper op; + /** Defines classifications available in the enterprise. */ @JsonDeserialize( using = UpdateClassificationOnFolderRequestBodyPathField @@ -32,6 +34,14 @@ public class UpdateClassificationOnFolderRequestBody extends SerializableObject .UpdateClassificationOnFolderRequestBodyPathFieldSerializer.class) protected EnumWrapper path; + /** + * The name of the classification to apply to this folder. + * + *

    To list the available classifications in an enterprise, use the classification API to + * retrieve the [classification + * template](e://get_metadata_templates_enterprise_securityClassification-6VMVochwUWo_schema) + * which lists all available classification keys. + */ protected final String value; public UpdateClassificationOnFolderRequestBody(@JsonProperty("value") String value) { diff --git a/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockHeaders.java b/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockHeaders.java index 6157e7e9a..1104ae4b9 100644 --- a/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockHeaders.java @@ -6,6 +6,7 @@ public class CreateFolderLockHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateFolderLockHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockRequestBody.java b/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockRequestBody.java index 4d2fb90cf..c629e7740 100644 --- a/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockRequestBody.java @@ -9,9 +9,14 @@ @JsonFilter("nullablePropertyFilter") public class CreateFolderLockRequestBody extends SerializableObject { + /** + * The operations to lock for the folder. If `locked_operations` is included in the request, both + * `move` and `delete` must also be included and both set to `true`. + */ @JsonProperty("locked_operations") protected CreateFolderLockRequestBodyLockedOperationsField lockedOperations; + /** The folder to apply the lock to. */ protected final CreateFolderLockRequestBodyFolderField folder; public CreateFolderLockRequestBody( diff --git a/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockRequestBodyFolderField.java b/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockRequestBodyFolderField.java index 1d29ca2c5..dce5cb770 100644 --- a/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockRequestBodyFolderField.java +++ b/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockRequestBodyFolderField.java @@ -8,8 +8,10 @@ @JsonFilter("nullablePropertyFilter") public class CreateFolderLockRequestBodyFolderField extends SerializableObject { + /** The content type the lock is being applied to. Only `folder` is supported. */ protected final String type; + /** The ID of the folder. */ protected final String id; public CreateFolderLockRequestBodyFolderField( diff --git a/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockRequestBodyLockedOperationsField.java b/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockRequestBodyLockedOperationsField.java index a3dc99832..01d7784d3 100644 --- a/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockRequestBodyLockedOperationsField.java +++ b/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockRequestBodyLockedOperationsField.java @@ -8,8 +8,10 @@ @JsonFilter("nullablePropertyFilter") public class CreateFolderLockRequestBodyLockedOperationsField extends SerializableObject { + /** Whether moving the folder should be locked. */ protected final boolean move; + /** Whether deleting the folder should be locked. */ protected final boolean delete; public CreateFolderLockRequestBodyLockedOperationsField( diff --git a/src/main/java/com/box/sdkgen/managers/folderlocks/DeleteFolderLockByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/folderlocks/DeleteFolderLockByIdHeaders.java index f2bf54b25..fb61db746 100644 --- a/src/main/java/com/box/sdkgen/managers/folderlocks/DeleteFolderLockByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folderlocks/DeleteFolderLockByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteFolderLockByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteFolderLockByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/folderlocks/FolderLocksManager.java b/src/main/java/com/box/sdkgen/managers/folderlocks/FolderLocksManager.java index 5c9c0dc3c..ca389d412 100644 --- a/src/main/java/com/box/sdkgen/managers/folderlocks/FolderLocksManager.java +++ b/src/main/java/com/box/sdkgen/managers/folderlocks/FolderLocksManager.java @@ -31,10 +31,25 @@ protected FolderLocksManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves folder lock details for a given folder. + * + *

    You must be authenticated as the owner or co-owner of the folder to use this endpoint. + * + * @param queryParams Query parameters of getFolderLocks method + */ public FolderLocks getFolderLocks(GetFolderLocksQueryParams queryParams) { return getFolderLocks(queryParams, new GetFolderLocksHeaders()); } + /** + * Retrieves folder lock details for a given folder. + * + *

    You must be authenticated as the owner or co-owner of the folder to use this endpoint. + * + * @param queryParams Query parameters of getFolderLocks method + * @param headers Headers of getFolderLocks method + */ public FolderLocks getFolderLocks( GetFolderLocksQueryParams queryParams, GetFolderLocksHeaders headers) { Map queryParamsMap = @@ -59,10 +74,25 @@ public FolderLocks getFolderLocks( return JsonManager.deserialize(response.getData(), FolderLocks.class); } + /** + * Creates a folder lock on a folder, preventing it from being moved and/or deleted. + * + *

    You must be authenticated as the owner or co-owner of the folder to use this endpoint. + * + * @param requestBody Request body of createFolderLock method + */ public FolderLock createFolderLock(CreateFolderLockRequestBody requestBody) { return createFolderLock(requestBody, new CreateFolderLockHeaders()); } + /** + * Creates a folder lock on a folder, preventing it from being moved and/or deleted. + * + *

    You must be authenticated as the owner or co-owner of the folder to use this endpoint. + * + * @param requestBody Request body of createFolderLock method + * @param headers Headers of createFolderLock method + */ public FolderLock createFolderLock( CreateFolderLockRequestBody requestBody, CreateFolderLockHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -86,10 +116,25 @@ public FolderLock createFolderLock( return JsonManager.deserialize(response.getData(), FolderLock.class); } + /** + * Deletes a folder lock on a given folder. + * + *

    You must be authenticated as the owner or co-owner of the folder to use this endpoint. + * + * @param folderLockId The ID of the folder lock. Example: "12345" + */ public void deleteFolderLockById(String folderLockId) { deleteFolderLockById(folderLockId, new DeleteFolderLockByIdHeaders()); } + /** + * Deletes a folder lock on a given folder. + * + *

    You must be authenticated as the owner or co-owner of the folder to use this endpoint. + * + * @param folderLockId The ID of the folder lock. Example: "12345" + * @param headers Headers of deleteFolderLockById method + */ public void deleteFolderLockById(String folderLockId, DeleteFolderLockByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = diff --git a/src/main/java/com/box/sdkgen/managers/folderlocks/GetFolderLocksHeaders.java b/src/main/java/com/box/sdkgen/managers/folderlocks/GetFolderLocksHeaders.java index 60804df4b..1c7166138 100644 --- a/src/main/java/com/box/sdkgen/managers/folderlocks/GetFolderLocksHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folderlocks/GetFolderLocksHeaders.java @@ -6,6 +6,7 @@ public class GetFolderLocksHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFolderLocksHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/folderlocks/GetFolderLocksQueryParams.java b/src/main/java/com/box/sdkgen/managers/folderlocks/GetFolderLocksQueryParams.java index 927e62e66..0d7f8e465 100644 --- a/src/main/java/com/box/sdkgen/managers/folderlocks/GetFolderLocksQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/folderlocks/GetFolderLocksQueryParams.java @@ -2,6 +2,15 @@ public class GetFolderLocksQueryParams { + /** + * The unique identifier that represent a folder. + * + *

    The ID for any folder can be determined by visiting this folder in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the + * `folder_id` is `123`. + * + *

    The root folder of a Box account is always represented by the ID `0`. + */ public final String folderId; public GetFolderLocksQueryParams(String folderId) { diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/CreateFolderMetadataByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/CreateFolderMetadataByIdHeaders.java index 45794cb6f..ce7493872 100644 --- a/src/main/java/com/box/sdkgen/managers/foldermetadata/CreateFolderMetadataByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/CreateFolderMetadataByIdHeaders.java @@ -6,6 +6,7 @@ public class CreateFolderMetadataByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateFolderMetadataByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/DeleteFolderMetadataByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/DeleteFolderMetadataByIdHeaders.java index 709f03d05..13b3ec3f3 100644 --- a/src/main/java/com/box/sdkgen/managers/foldermetadata/DeleteFolderMetadataByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/DeleteFolderMetadataByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteFolderMetadataByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteFolderMetadataByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/FolderMetadataManager.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/FolderMetadataManager.java index 9427fb2bc..061351ca0 100644 --- a/src/main/java/com/box/sdkgen/managers/foldermetadata/FolderMetadataManager.java +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/FolderMetadataManager.java @@ -31,10 +31,29 @@ protected FolderMetadataManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves all metadata for a given folder. This can not be used on the root folder with ID `0`. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + */ public Metadatas getFolderMetadata(String folderId) { return getFolderMetadata(folderId, new GetFolderMetadataHeaders()); } + /** + * Retrieves all metadata for a given folder. This can not be used on the root folder with ID `0`. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param headers Headers of getFolderMetadata method + */ public Metadatas getFolderMetadata(String folderId, GetFolderMetadataHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = @@ -57,11 +76,36 @@ public Metadatas getFolderMetadata(String folderId, GetFolderMetadataHeaders hea return JsonManager.deserialize(response.getData(), Metadatas.class); } + /** + * Retrieves the instance of a metadata template that has been applied to a folder. This can not + * be used on the root folder with ID `0`. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + */ public MetadataFull getFolderMetadataById( String folderId, GetFolderMetadataByIdScope scope, String templateKey) { return getFolderMetadataById(folderId, scope, templateKey, new GetFolderMetadataByIdHeaders()); } + /** + * Retrieves the instance of a metadata template that has been applied to a folder. This can not + * be used on the root folder with ID `0`. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param headers Headers of getFolderMetadataById method + */ public MetadataFull getFolderMetadataById( String folderId, GetFolderMetadataByIdScope scope, @@ -91,6 +135,24 @@ public MetadataFull getFolderMetadataById( return JsonManager.deserialize(response.getData(), MetadataFull.class); } + /** + * Applies an instance of a metadata template to a folder. + * + *

    In most cases only values that are present in the metadata template will be accepted, except + * for the `global.properties` template which accepts any key-value pair. + * + *

    To display the metadata template in the Box web app the enterprise needs to be configured to + * enable **Cascading Folder Level Metadata** for the user in the admin console. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param requestBody Request body of createFolderMetadataById method + */ public MetadataFull createFolderMetadataById( String folderId, CreateFolderMetadataByIdScope scope, @@ -100,6 +162,25 @@ public MetadataFull createFolderMetadataById( folderId, scope, templateKey, requestBody, new CreateFolderMetadataByIdHeaders()); } + /** + * Applies an instance of a metadata template to a folder. + * + *

    In most cases only values that are present in the metadata template will be accepted, except + * for the `global.properties` template which accepts any key-value pair. + * + *

    To display the metadata template in the Box web app the enterprise needs to be configured to + * enable **Cascading Folder Level Metadata** for the user in the admin console. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param requestBody Request body of createFolderMetadataById method + * @param headers Headers of createFolderMetadataById method + */ public MetadataFull createFolderMetadataById( String folderId, CreateFolderMetadataByIdScope scope, @@ -132,6 +213,25 @@ public MetadataFull createFolderMetadataById( return JsonManager.deserialize(response.getData(), MetadataFull.class); } + /** + * Updates a piece of metadata on a folder. + * + *

    The metadata instance can only be updated if the template has already been applied to the + * folder before. When editing metadata, only values that match the metadata template schema will + * be accepted. + * + *

    The update is applied atomically. If any errors occur during the application of the + * operations, the metadata instance will not be changed. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param requestBody Request body of updateFolderMetadataById method + */ public MetadataFull updateFolderMetadataById( String folderId, UpdateFolderMetadataByIdScope scope, @@ -141,6 +241,26 @@ public MetadataFull updateFolderMetadataById( folderId, scope, templateKey, requestBody, new UpdateFolderMetadataByIdHeaders()); } + /** + * Updates a piece of metadata on a folder. + * + *

    The metadata instance can only be updated if the template has already been applied to the + * folder before. When editing metadata, only values that match the metadata template schema will + * be accepted. + * + *

    The update is applied atomically. If any errors occur during the application of the + * operations, the metadata instance will not be changed. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param requestBody Request body of updateFolderMetadataById method + * @param headers Headers of updateFolderMetadataById method + */ public MetadataFull updateFolderMetadataById( String folderId, UpdateFolderMetadataByIdScope scope, @@ -173,11 +293,34 @@ public MetadataFull updateFolderMetadataById( return JsonManager.deserialize(response.getData(), MetadataFull.class); } + /** + * Deletes a piece of folder metadata. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + */ public void deleteFolderMetadataById( String folderId, DeleteFolderMetadataByIdScope scope, String templateKey) { deleteFolderMetadataById(folderId, scope, templateKey, new DeleteFolderMetadataByIdHeaders()); } + /** + * Deletes a piece of folder metadata. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param headers Headers of deleteFolderMetadataById method + */ public void deleteFolderMetadataById( String folderId, DeleteFolderMetadataByIdScope scope, diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataByIdHeaders.java index 7f7dd15a9..1d4f16a0e 100644 --- a/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataByIdHeaders.java @@ -6,6 +6,7 @@ public class GetFolderMetadataByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFolderMetadataByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataHeaders.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataHeaders.java index 4044b3cbe..2705b471b 100644 --- a/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataHeaders.java @@ -6,6 +6,7 @@ public class GetFolderMetadataHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFolderMetadataHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdHeaders.java index 47047a407..44b5e1a45 100644 --- a/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdHeaders.java @@ -6,6 +6,7 @@ public class UpdateFolderMetadataByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateFolderMetadataByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdRequestBody.java index 28595f0bf..9816499e3 100644 --- a/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdRequestBody.java @@ -13,6 +13,10 @@ @JsonFilter("nullablePropertyFilter") public class UpdateFolderMetadataByIdRequestBody extends SerializableObject { + /** + * The type of change to perform on the template. Some of these are hazardous as they will change + * existing templates. + */ @JsonDeserialize( using = UpdateFolderMetadataByIdRequestBodyOpField @@ -23,10 +27,22 @@ public class UpdateFolderMetadataByIdRequestBody extends SerializableObject { .UpdateFolderMetadataByIdRequestBodyOpFieldSerializer.class) protected EnumWrapper op; + /** + * The location in the metadata JSON object to apply the changes to, in the format of a + * [JSON-Pointer](https://tools.ietf.org/html/rfc6901). + * + *

    The path must always be prefixed with a `/` to represent the root of the template. The + * characters `~` and `/` are reserved characters and must be escaped in the key. + */ protected String path; protected MetadataInstanceValue value; + /** + * The location in the metadata JSON object to move or copy a value from. Required for `move` or + * `copy` operations and must be in the format of a + * [JSON-Pointer](https://tools.ietf.org/html/rfc6901). + */ protected String from; public UpdateFolderMetadataByIdRequestBody() { diff --git a/src/main/java/com/box/sdkgen/managers/folders/CopyFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/folders/CopyFolderHeaders.java index f15bdd4e6..d5d1bb8ba 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/CopyFolderHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folders/CopyFolderHeaders.java @@ -6,6 +6,7 @@ public class CopyFolderHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CopyFolderHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/folders/CopyFolderQueryParams.java b/src/main/java/com/box/sdkgen/managers/folders/CopyFolderQueryParams.java index 81270374f..457972a18 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/CopyFolderQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/folders/CopyFolderQueryParams.java @@ -4,6 +4,14 @@ public class CopyFolderQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public CopyFolderQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/folders/CopyFolderRequestBody.java b/src/main/java/com/box/sdkgen/managers/folders/CopyFolderRequestBody.java index 3b0bd9ad2..8a8cb3f82 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/CopyFolderRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/folders/CopyFolderRequestBody.java @@ -9,8 +9,18 @@ @JsonFilter("nullablePropertyFilter") public class CopyFolderRequestBody extends SerializableObject { + /** + * An optional new name for the copied folder. + * + *

    There are some restrictions to the file name. Names containing non-printable ASCII + * characters, forward and backward slashes (`/`, `\`), as well as names with trailing spaces are + * prohibited. + * + *

    Additionally, the names `.` and `..` are not allowed either. + */ protected String name; + /** The destination folder to copy the folder to. */ protected final CopyFolderRequestBodyParentField parent; public CopyFolderRequestBody(@JsonProperty("parent") CopyFolderRequestBodyParentField parent) { diff --git a/src/main/java/com/box/sdkgen/managers/folders/CopyFolderRequestBodyParentField.java b/src/main/java/com/box/sdkgen/managers/folders/CopyFolderRequestBodyParentField.java index dbe872876..7981eac1c 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/CopyFolderRequestBodyParentField.java +++ b/src/main/java/com/box/sdkgen/managers/folders/CopyFolderRequestBodyParentField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class CopyFolderRequestBodyParentField extends SerializableObject { + /** The ID of parent folder. */ protected final String id; public CopyFolderRequestBodyParentField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/managers/folders/CreateFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderHeaders.java index e49a94833..afb73367a 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/CreateFolderHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderHeaders.java @@ -6,6 +6,7 @@ public class CreateFolderHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateFolderHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/folders/CreateFolderQueryParams.java b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderQueryParams.java index 430ebbb21..80f620b9e 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/CreateFolderQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderQueryParams.java @@ -4,6 +4,14 @@ public class CreateFolderQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public CreateFolderQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBody.java b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBody.java index 479eb6388..4a154e059 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBody.java @@ -12,13 +12,29 @@ @JsonFilter("nullablePropertyFilter") public class CreateFolderRequestBody extends SerializableObject { + /** + * The name for the new folder. + * + *

    The following restrictions to folder names apply: names containing non-printable ASCII + * characters, forward and backward slashes (`/`, `\`), names with trailing spaces, and names `.` + * and `..` are not allowed. + * + *

    Folder names must be unique within their parent folder. The name check is case-insensitive, + * so a folder named `New Folder` cannot be created in a parent folder that already contains a + * folder named `new folder`. + */ protected final String name; + /** The parent folder to create the new folder within. */ protected final CreateFolderRequestBodyParentField parent; @JsonProperty("folder_upload_email") protected CreateFolderRequestBodyFolderUploadEmailField folderUploadEmail; + /** + * Specifies whether a folder should be synced to a user's device or not. This is used by Box Sync + * (discontinued) and is not used by Box Drive. + */ @JsonDeserialize( using = CreateFolderRequestBodySyncStateField.CreateFolderRequestBodySyncStateFieldDeserializer diff --git a/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodyFolderUploadEmailField.java b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodyFolderUploadEmailField.java index 4f73af140..34e8b536c 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodyFolderUploadEmailField.java +++ b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodyFolderUploadEmailField.java @@ -11,6 +11,17 @@ @JsonFilter("nullablePropertyFilter") public class CreateFolderRequestBodyFolderUploadEmailField extends SerializableObject { + /** + * When this parameter has been set, users can email files to the email address that has been + * automatically created for this folder. + * + *

    To create an email address, set this property either when creating or updating the folder. + * + *

    When set to `collaborators`, only emails from registered email addresses for collaborators + * will be accepted. This includes any email aliases a user might have registered. + * + *

    When set to `open` it will accept emails from any email address. + */ @JsonDeserialize( using = CreateFolderRequestBodyFolderUploadEmailAccessField diff --git a/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodyParentField.java b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodyParentField.java index 7c687d0a7..e087d257c 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodyParentField.java +++ b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodyParentField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class CreateFolderRequestBodyParentField extends SerializableObject { + /** The ID of parent folder. */ protected final String id; public CreateFolderRequestBodyParentField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/managers/folders/DeleteFolderByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/folders/DeleteFolderByIdHeaders.java index db7fe0a3d..dc7284294 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/DeleteFolderByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folders/DeleteFolderByIdHeaders.java @@ -6,8 +6,15 @@ public class DeleteFolderByIdHeaders { + /** + * Ensures this item hasn't recently changed before making changes. + * + *

    Pass in the item's last observed `etag` value into this header and the endpoint will fail + * with a `412 Precondition Failed` if it has changed since. + */ public String ifMatch; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteFolderByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/folders/DeleteFolderByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/folders/DeleteFolderByIdQueryParams.java index 2bd159cfa..fa8e5fb16 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/DeleteFolderByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/folders/DeleteFolderByIdQueryParams.java @@ -2,6 +2,9 @@ public class DeleteFolderByIdQueryParams { + /** + * Delete a folder that is not empty by recursively deleting the folder and all of its content. + */ public Boolean recursive; public DeleteFolderByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/folders/FoldersManager.java b/src/main/java/com/box/sdkgen/managers/folders/FoldersManager.java index 7694316de..d0592004d 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/FoldersManager.java +++ b/src/main/java/com/box/sdkgen/managers/folders/FoldersManager.java @@ -31,18 +31,82 @@ protected FoldersManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves details for a folder, including the first 100 entries in the folder. + * + *

    Passing `sort`, `direction`, `offset`, and `limit` parameters in query allows you to manage + * the list of returned [folder items](r://folder--full#param-item-collection). + * + *

    To fetch more items within the folder, use the [Get items in a + * folder](e://get-folders-id-items) endpoint. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + */ public FolderFull getFolderById(String folderId) { return getFolderById(folderId, new GetFolderByIdQueryParams(), new GetFolderByIdHeaders()); } + /** + * Retrieves details for a folder, including the first 100 entries in the folder. + * + *

    Passing `sort`, `direction`, `offset`, and `limit` parameters in query allows you to manage + * the list of returned [folder items](r://folder--full#param-item-collection). + * + *

    To fetch more items within the folder, use the [Get items in a + * folder](e://get-folders-id-items) endpoint. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of getFolderById method + */ public FolderFull getFolderById(String folderId, GetFolderByIdQueryParams queryParams) { return getFolderById(folderId, queryParams, new GetFolderByIdHeaders()); } + /** + * Retrieves details for a folder, including the first 100 entries in the folder. + * + *

    Passing `sort`, `direction`, `offset`, and `limit` parameters in query allows you to manage + * the list of returned [folder items](r://folder--full#param-item-collection). + * + *

    To fetch more items within the folder, use the [Get items in a + * folder](e://get-folders-id-items) endpoint. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param headers Headers of getFolderById method + */ public FolderFull getFolderById(String folderId, GetFolderByIdHeaders headers) { return getFolderById(folderId, new GetFolderByIdQueryParams(), headers); } + /** + * Retrieves details for a folder, including the first 100 entries in the folder. + * + *

    Passing `sort`, `direction`, `offset`, and `limit` parameters in query allows you to manage + * the list of returned [folder items](r://folder--full#param-item-collection). + * + *

    To fetch more items within the folder, use the [Get items in a + * folder](e://get-folders-id-items) endpoint. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of getFolderById method + * @param headers Headers of getFolderById method + */ public FolderFull getFolderById( String folderId, GetFolderByIdQueryParams queryParams, GetFolderByIdHeaders headers) { Map queryParamsMap = @@ -80,6 +144,16 @@ public FolderFull getFolderById( return JsonManager.deserialize(response.getData(), FolderFull.class); } + /** + * Updates a folder. This can be also be used to move the folder, create shared links, update + * collaborations, and more. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + */ public FolderFull updateFolderById(String folderId) { return updateFolderById( folderId, @@ -88,16 +162,50 @@ public FolderFull updateFolderById(String folderId) { new UpdateFolderByIdHeaders()); } + /** + * Updates a folder. This can be also be used to move the folder, create shared links, update + * collaborations, and more. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param requestBody Request body of updateFolderById method + */ public FolderFull updateFolderById(String folderId, UpdateFolderByIdRequestBody requestBody) { return updateFolderById( folderId, requestBody, new UpdateFolderByIdQueryParams(), new UpdateFolderByIdHeaders()); } + /** + * Updates a folder. This can be also be used to move the folder, create shared links, update + * collaborations, and more. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of updateFolderById method + */ public FolderFull updateFolderById(String folderId, UpdateFolderByIdQueryParams queryParams) { return updateFolderById( folderId, new UpdateFolderByIdRequestBody(), queryParams, new UpdateFolderByIdHeaders()); } + /** + * Updates a folder. This can be also be used to move the folder, create shared links, update + * collaborations, and more. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param requestBody Request body of updateFolderById method + * @param queryParams Query parameters of updateFolderById method + */ public FolderFull updateFolderById( String folderId, UpdateFolderByIdRequestBody requestBody, @@ -105,21 +213,69 @@ public FolderFull updateFolderById( return updateFolderById(folderId, requestBody, queryParams, new UpdateFolderByIdHeaders()); } + /** + * Updates a folder. This can be also be used to move the folder, create shared links, update + * collaborations, and more. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param headers Headers of updateFolderById method + */ public FolderFull updateFolderById(String folderId, UpdateFolderByIdHeaders headers) { return updateFolderById( folderId, new UpdateFolderByIdRequestBody(), new UpdateFolderByIdQueryParams(), headers); } + /** + * Updates a folder. This can be also be used to move the folder, create shared links, update + * collaborations, and more. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param requestBody Request body of updateFolderById method + * @param headers Headers of updateFolderById method + */ public FolderFull updateFolderById( String folderId, UpdateFolderByIdRequestBody requestBody, UpdateFolderByIdHeaders headers) { return updateFolderById(folderId, requestBody, new UpdateFolderByIdQueryParams(), headers); } + /** + * Updates a folder. This can be also be used to move the folder, create shared links, update + * collaborations, and more. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of updateFolderById method + * @param headers Headers of updateFolderById method + */ public FolderFull updateFolderById( String folderId, UpdateFolderByIdQueryParams queryParams, UpdateFolderByIdHeaders headers) { return updateFolderById(folderId, new UpdateFolderByIdRequestBody(), queryParams, headers); } + /** + * Updates a folder. This can be also be used to move the folder, create shared links, update + * collaborations, and more. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param requestBody Request body of updateFolderById method + * @param queryParams Query parameters of updateFolderById method + * @param headers Headers of updateFolderById method + */ public FolderFull updateFolderById( String folderId, UpdateFolderByIdRequestBody requestBody, @@ -154,18 +310,58 @@ public FolderFull updateFolderById( return JsonManager.deserialize(response.getData(), FolderFull.class); } + /** + * Deletes a folder, either permanently or by moving it to the trash. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + */ public void deleteFolderById(String folderId) { deleteFolderById(folderId, new DeleteFolderByIdQueryParams(), new DeleteFolderByIdHeaders()); } + /** + * Deletes a folder, either permanently or by moving it to the trash. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of deleteFolderById method + */ public void deleteFolderById(String folderId, DeleteFolderByIdQueryParams queryParams) { deleteFolderById(folderId, queryParams, new DeleteFolderByIdHeaders()); } + /** + * Deletes a folder, either permanently or by moving it to the trash. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param headers Headers of deleteFolderById method + */ public void deleteFolderById(String folderId, DeleteFolderByIdHeaders headers) { deleteFolderById(folderId, new DeleteFolderByIdQueryParams(), headers); } + /** + * Deletes a folder, either permanently or by moving it to the trash. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of deleteFolderById method + * @param headers Headers of deleteFolderById method + */ public void deleteFolderById( String folderId, DeleteFolderByIdQueryParams queryParams, DeleteFolderByIdHeaders headers) { Map queryParamsMap = @@ -194,18 +390,70 @@ public void deleteFolderById( .build()); } + /** + * Retrieves a page of items in a folder. These items can be files, folders, and web links. + * + *

    To request more information about the folder itself, like its size, use the [Get a + * folder](#get-folders-id) endpoint instead. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + */ public Items getFolderItems(String folderId) { return getFolderItems(folderId, new GetFolderItemsQueryParams(), new GetFolderItemsHeaders()); } + /** + * Retrieves a page of items in a folder. These items can be files, folders, and web links. + * + *

    To request more information about the folder itself, like its size, use the [Get a + * folder](#get-folders-id) endpoint instead. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of getFolderItems method + */ public Items getFolderItems(String folderId, GetFolderItemsQueryParams queryParams) { return getFolderItems(folderId, queryParams, new GetFolderItemsHeaders()); } + /** + * Retrieves a page of items in a folder. These items can be files, folders, and web links. + * + *

    To request more information about the folder itself, like its size, use the [Get a + * folder](#get-folders-id) endpoint instead. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param headers Headers of getFolderItems method + */ public Items getFolderItems(String folderId, GetFolderItemsHeaders headers) { return getFolderItems(folderId, new GetFolderItemsQueryParams(), headers); } + /** + * Retrieves a page of items in a folder. These items can be files, folders, and web links. + * + *

    To request more information about the folder itself, like its size, use the [Get a + * folder](#get-folders-id) endpoint instead. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of getFolderItems method + * @param headers Headers of getFolderItems method + */ public Items getFolderItems( String folderId, GetFolderItemsQueryParams queryParams, GetFolderItemsHeaders headers) { Map queryParamsMap = @@ -244,19 +492,43 @@ public Items getFolderItems( return JsonManager.deserialize(response.getData(), Items.class); } + /** + * Creates a new empty folder within the specified parent folder. + * + * @param requestBody Request body of createFolder method + */ public FolderFull createFolder(CreateFolderRequestBody requestBody) { return createFolder(requestBody, new CreateFolderQueryParams(), new CreateFolderHeaders()); } + /** + * Creates a new empty folder within the specified parent folder. + * + * @param requestBody Request body of createFolder method + * @param queryParams Query parameters of createFolder method + */ public FolderFull createFolder( CreateFolderRequestBody requestBody, CreateFolderQueryParams queryParams) { return createFolder(requestBody, queryParams, new CreateFolderHeaders()); } + /** + * Creates a new empty folder within the specified parent folder. + * + * @param requestBody Request body of createFolder method + * @param headers Headers of createFolder method + */ public FolderFull createFolder(CreateFolderRequestBody requestBody, CreateFolderHeaders headers) { return createFolder(requestBody, new CreateFolderQueryParams(), headers); } + /** + * Creates a new empty folder within the specified parent folder. + * + * @param requestBody Request body of createFolder method + * @param queryParams Query parameters of createFolder method + * @param headers Headers of createFolder method + */ public FolderFull createFolder( CreateFolderRequestBody requestBody, CreateFolderQueryParams queryParams, @@ -283,20 +555,72 @@ public FolderFull createFolder( return JsonManager.deserialize(response.getData(), FolderFull.class); } + /** + * Creates a copy of a folder within a destination folder. + * + *

    The original folder will not be changed. + * + * @param folderId The unique identifier of the folder to copy. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder with the ID `0` can not be copied. Example: "0" + * @param requestBody Request body of copyFolder method + */ public FolderFull copyFolder(String folderId, CopyFolderRequestBody requestBody) { return copyFolder(folderId, requestBody, new CopyFolderQueryParams(), new CopyFolderHeaders()); } + /** + * Creates a copy of a folder within a destination folder. + * + *

    The original folder will not be changed. + * + * @param folderId The unique identifier of the folder to copy. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder with the ID `0` can not be copied. Example: "0" + * @param requestBody Request body of copyFolder method + * @param queryParams Query parameters of copyFolder method + */ public FolderFull copyFolder( String folderId, CopyFolderRequestBody requestBody, CopyFolderQueryParams queryParams) { return copyFolder(folderId, requestBody, queryParams, new CopyFolderHeaders()); } + /** + * Creates a copy of a folder within a destination folder. + * + *

    The original folder will not be changed. + * + * @param folderId The unique identifier of the folder to copy. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder with the ID `0` can not be copied. Example: "0" + * @param requestBody Request body of copyFolder method + * @param headers Headers of copyFolder method + */ public FolderFull copyFolder( String folderId, CopyFolderRequestBody requestBody, CopyFolderHeaders headers) { return copyFolder(folderId, requestBody, new CopyFolderQueryParams(), headers); } + /** + * Creates a copy of a folder within a destination folder. + * + *

    The original folder will not be changed. + * + * @param folderId The unique identifier of the folder to copy. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder with the ID `0` can not be copied. Example: "0" + * @param requestBody Request body of copyFolder method + * @param queryParams Query parameters of copyFolder method + * @param headers Headers of copyFolder method + */ public FolderFull copyFolder( String folderId, CopyFolderRequestBody requestBody, diff --git a/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdHeaders.java index f2711b33d..3783955af 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdHeaders.java @@ -6,10 +6,28 @@ public class GetFolderByIdHeaders { + /** + * Ensures an item is only returned if it has changed. + * + *

    Pass in the item's last observed `etag` value into this header and the endpoint will fail + * with a `304 Not Modified` if the item has not changed since. + */ public String ifNoneMatch; + /** + * The URL, and optional password, for the shared link of this item. + * + *

    This header can be used to access items that have not been explicitly shared with a user. + * + *

    Use the format `shared_link=[link]` or if a password is required then use + * `shared_link=[link]&shared_link_password=[password]`. + * + *

    This header can be used on the file or folder shared, as well as on any files or folders + * nested within the item. + */ public String boxapi; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFolderByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParams.java index bb4ccf851..d2fec7a2f 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParams.java @@ -5,14 +5,53 @@ public class GetFolderByIdQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + * + *

    Additionally this field can be used to query any metadata applied to the file by specifying + * the `metadata` field as well as the scope and key of the template to retrieve, for example + * `?fields=metadata.enterprise_12345.contractTemplate`. + */ public List fields; + /** + * Defines the **second** attribute by which items are sorted. + * + *

    The folder type affects the way the items are sorted: + * + *

    * **Standard folder**: Items are always sorted by their `type` first, with folders listed + * before files, and files listed before web links. + * + *

    * **Root folder**: This parameter is not supported for marker-based pagination on the root + * folder + * + *

    (the folder with an `id` of `0`). + * + *

    * **Shared folder with parent path to the associated folder visible to the collaborator**: + * Items are always sorted by their `type` first, with folders listed before files, and files + * listed before web links. + */ public EnumWrapper sort; + /** + * The direction to sort results in. This can be either in alphabetical ascending (`ASC`) or + * descending (`DESC`) order. + */ public EnumWrapper direction; + /** + * The offset of the item at which to begin the response. + * + *

    Queries with offset parameter value exceeding 10000 will be rejected with a 400 response. + */ public Long offset; + /** The maximum number of items to return per page. */ public Long limit; public GetFolderByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsHeaders.java b/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsHeaders.java index ef8c9fc1d..04a4328dd 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsHeaders.java @@ -6,8 +6,20 @@ public class GetFolderItemsHeaders { + /** + * The URL, and optional password, for the shared link of this item. + * + *

    This header can be used to access items that have not been explicitly shared with a user. + * + *

    Use the format `shared_link=[link]` or if a password is required then use + * `shared_link=[link]&shared_link_password=[password]`. + * + *

    This header can be used on the file or folder shared, as well as on any files or folders + * nested within the item. + */ public String boxapi; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFolderItemsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParams.java b/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParams.java index b94b8d371..609f4a164 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParams.java @@ -5,18 +5,70 @@ public class GetFolderItemsQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + * + *

    Additionally this field can be used to query any metadata applied to the file by specifying + * the `metadata` field as well as the scope and key of the template to retrieve, for example + * `?fields=metadata.enterprise_12345.contractTemplate`. + */ public List fields; + /** + * Specifies whether to use marker-based pagination instead of offset-based pagination. Only one + * pagination method can be used at a time. + * + *

    By setting this value to true, the API will return a `marker` field that can be passed as a + * parameter to this endpoint to get the next page of the response. + */ public Boolean usemarker; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** + * The offset of the item at which to begin the response. + * + *

    Queries with offset parameter value exceeding 10000 will be rejected with a 400 response. + */ public Long offset; + /** The maximum number of items to return per page. */ public Long limit; + /** + * Defines the **second** attribute by which items are sorted. + * + *

    The folder type affects the way the items are sorted: + * + *

    * **Standard folder**: Items are always sorted by their `type` first, with folders listed + * before files, and files listed before web links. + * + *

    * **Root folder**: This parameter is not supported for marker-based pagination on the root + * folder + * + *

    (the folder with an `id` of `0`). + * + *

    * **Shared folder with parent path to the associated folder visible to the collaborator**: + * Items are always sorted by their `type` first, with folders listed before files, and files + * listed before web links. + */ public EnumWrapper sort; + /** + * The direction to sort results in. This can be either in alphabetical ascending (`ASC`) or + * descending (`DESC`) order. + */ public EnumWrapper direction; public GetFolderItemsQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdHeaders.java index ee00999a8..0d04c9e3f 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdHeaders.java @@ -6,8 +6,15 @@ public class UpdateFolderByIdHeaders { + /** + * Ensures this item hasn't recently changed before making changes. + * + *

    Pass in the item's last observed `etag` value into this header and the endpoint will fail + * with a `412 Precondition Failed` if it has changed since. + */ public String ifMatch; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateFolderByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdQueryParams.java index 39be25606..d456eef6a 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdQueryParams.java @@ -4,6 +4,14 @@ public class UpdateFolderByIdQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public UpdateFolderByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBody.java index c04ae87e0..3f4884024 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBody.java @@ -14,10 +14,26 @@ @JsonFilter("nullablePropertyFilter") public class UpdateFolderByIdRequestBody extends SerializableObject { + /** + * The optional new name for this folder. + * + *

    The following restrictions to folder names apply: names containing non-printable ASCII + * characters, forward and backward slashes (`/`, `\`), names with trailing spaces, and names `.` + * and `..` are not allowed. + * + *

    Folder names must be unique within their parent folder. The name check is case-insensitive, + * so a folder named `New Folder` cannot be created in a parent folder that already contains a + * folder named `new folder`. + */ protected String name; + /** The optional description of this folder. */ protected String description; + /** + * Specifies whether a folder should be synced to a user's device or not. This is used by Box Sync + * (discontinued) and is not used by Box Drive. + */ @JsonDeserialize( using = UpdateFolderByIdRequestBodySyncStateField @@ -29,6 +45,10 @@ public class UpdateFolderByIdRequestBody extends SerializableObject { @JsonProperty("sync_state") protected EnumWrapper syncState; + /** + * Specifies if users who are not the owner of the folder can invite new collaborators to the + * folder. + */ @JsonProperty("can_non_owners_invite") protected Boolean canNonOwnersInvite; @@ -41,13 +61,45 @@ public class UpdateFolderByIdRequestBody extends SerializableObject { @Nullable protected UpdateFolderByIdRequestBodyFolderUploadEmailField folderUploadEmail; + /** + * The tags for this item. These tags are shown in the Box web app and mobile apps next to an + * item. + * + *

    To add or remove a tag, retrieve the item's current tags, modify them, and then update this + * field. + * + *

    There is a limit of 100 tags per item, and 10,000 unique tags per enterprise. + */ protected List tags; + /** + * Specifies if new invites to this folder are restricted to users within the enterprise. This + * does not affect existing collaborations. + */ @JsonProperty("is_collaboration_restricted_to_enterprise") protected Boolean isCollaborationRestrictedToEnterprise; + /** + * An array of collections to make this folder a member of. Currently we only support the + * `favorites` collection. + * + *

    To get the ID for a collection, use the [List all collections][1] endpoint. + * + *

    Passing an empty array `[]` or `null` will remove the folder from all collections. + * + *

    [1]: e://get-collections + */ @Nullable protected List collections; + /** + * Restricts collaborators who are not the owner of this folder from viewing other collaborations + * on this folder. + * + *

    It also restricts non-owners from inviting new collaborators. + * + *

    When setting this field to `false`, it is required to also set + * `can_non_owners_invite_collaborators` to `false` if it has not already been set. + */ @JsonProperty("can_non_owners_view_collaborators") protected Boolean canNonOwnersViewCollaborators; diff --git a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyCollectionsField.java b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyCollectionsField.java index e7d3d2ccb..afc88e1ad 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyCollectionsField.java +++ b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyCollectionsField.java @@ -8,8 +8,10 @@ @JsonFilter("nullablePropertyFilter") public class UpdateFolderByIdRequestBodyCollectionsField extends SerializableObject { + /** The unique identifier for this object. */ protected String id; + /** The type for this object. */ protected String type; public UpdateFolderByIdRequestBodyCollectionsField() { diff --git a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyFolderUploadEmailField.java b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyFolderUploadEmailField.java index 5d89b6a23..e2e85a3fb 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyFolderUploadEmailField.java +++ b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyFolderUploadEmailField.java @@ -11,6 +11,17 @@ @JsonFilter("nullablePropertyFilter") public class UpdateFolderByIdRequestBodyFolderUploadEmailField extends SerializableObject { + /** + * When this parameter has been set, users can email files to the email address that has been + * automatically created for this folder. + * + *

    To create an email address, set this property either when creating or updating the folder. + * + *

    When set to `collaborators`, only emails from registered email addresses for collaborators + * will be accepted. This includes any email aliases a user might have registered. + * + *

    When set to `open` it will accept emails from any email address. + */ @JsonDeserialize( using = UpdateFolderByIdRequestBodyFolderUploadEmailAccessField diff --git a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyParentField.java b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyParentField.java index 2fa88e335..851395bf5 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyParentField.java +++ b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyParentField.java @@ -9,8 +9,13 @@ @JsonFilter("nullablePropertyFilter") public class UpdateFolderByIdRequestBodyParentField extends SerializableObject { + /** The ID of parent item. */ protected String id; + /** + * The input for `user_id` is optional. Moving to non-root folder is not allowed when `user_id` is + * present. Parent folder id should be zero when `user_id` is provided. + */ @JsonProperty("user_id") protected String userId; diff --git a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkField.java index 5157a780e..432dd689d 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkField.java +++ b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkField.java @@ -15,6 +15,17 @@ @JsonFilter("nullablePropertyFilter") public class UpdateFolderByIdRequestBodySharedLinkField extends SerializableObject { + /** + * The level of access for the shared link. This can be restricted to anyone with the link + * (`open`), only people within the company (`company`) and only those who have been invited to + * the folder (`collaborators`). + * + *

    If not set, this field defaults to the access level specified by the enterprise admin. To + * create a shared link with this default setting pass the `shared_link` object with no `access` + * field, for example `{ "shared_link": {} }`. + * + *

    The `company` access level is only available to paid accounts. + */ @JsonDeserialize( using = UpdateFolderByIdRequestBodySharedLinkAccessField @@ -25,11 +36,28 @@ public class UpdateFolderByIdRequestBodySharedLinkField extends SerializableObje .UpdateFolderByIdRequestBodySharedLinkAccessFieldSerializer.class) protected EnumWrapper access; + /** + * The password required to access the shared link. Set the password to `null` to remove it. + * Passwords must now be at least eight characters long and include a number, upper case letter, + * or a non-numeric or non-alphabetic character. A password can only be set when `access` is set + * to `open`. + */ @Nullable protected String password; + /** + * Defines a custom vanity name to use in the shared link URL, for example + * `https://app.box.com/v/my-shared-link`. + * + *

    Custom URLs should not be used when sharing sensitive content as vanity URLs are a lot + * easier to guess than regular shared links. + */ @JsonProperty("vanity_name") protected String vanityName; + /** + * The timestamp at which this shared link will expire. This field can only be set by users with + * paid accounts. + */ @JsonProperty("unshared_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkPermissionsField.java b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkPermissionsField.java index 9a187bc40..05cae6558 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkPermissionsField.java +++ b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkPermissionsField.java @@ -9,6 +9,10 @@ @JsonFilter("nullablePropertyFilter") public class UpdateFolderByIdRequestBodySharedLinkPermissionsField extends SerializableObject { + /** + * If the shared link allows for downloading of files. This can only be set when `access` is set + * to `open` or `company`. + */ @JsonProperty("can_download") protected Boolean canDownload; diff --git a/src/main/java/com/box/sdkgen/managers/folderwatermarks/DeleteFolderWatermarkHeaders.java b/src/main/java/com/box/sdkgen/managers/folderwatermarks/DeleteFolderWatermarkHeaders.java index de32b3787..a66d68fbc 100644 --- a/src/main/java/com/box/sdkgen/managers/folderwatermarks/DeleteFolderWatermarkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folderwatermarks/DeleteFolderWatermarkHeaders.java @@ -6,6 +6,7 @@ public class DeleteFolderWatermarkHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteFolderWatermarkHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/folderwatermarks/FolderWatermarksManager.java b/src/main/java/com/box/sdkgen/managers/folderwatermarks/FolderWatermarksManager.java index cdb0f9494..56c62914e 100644 --- a/src/main/java/com/box/sdkgen/managers/folderwatermarks/FolderWatermarksManager.java +++ b/src/main/java/com/box/sdkgen/managers/folderwatermarks/FolderWatermarksManager.java @@ -29,10 +29,29 @@ protected FolderWatermarksManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieve the watermark for a folder. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + */ public Watermark getFolderWatermark(String folderId) { return getFolderWatermark(folderId, new GetFolderWatermarkHeaders()); } + /** + * Retrieve the watermark for a folder. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param headers Headers of getFolderWatermark method + */ public Watermark getFolderWatermark(String folderId, GetFolderWatermarkHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = @@ -55,11 +74,32 @@ public Watermark getFolderWatermark(String folderId, GetFolderWatermarkHeaders h return JsonManager.deserialize(response.getData(), Watermark.class); } + /** + * Applies or update a watermark on a folder. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param requestBody Request body of updateFolderWatermark method + */ public Watermark updateFolderWatermark( String folderId, UpdateFolderWatermarkRequestBody requestBody) { return updateFolderWatermark(folderId, requestBody, new UpdateFolderWatermarkHeaders()); } + /** + * Applies or update a watermark on a folder. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param requestBody Request body of updateFolderWatermark method + * @param headers Headers of updateFolderWatermark method + */ public Watermark updateFolderWatermark( String folderId, UpdateFolderWatermarkRequestBody requestBody, @@ -87,10 +127,29 @@ public Watermark updateFolderWatermark( return JsonManager.deserialize(response.getData(), Watermark.class); } + /** + * Removes the watermark from a folder. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + */ public void deleteFolderWatermark(String folderId) { deleteFolderWatermark(folderId, new DeleteFolderWatermarkHeaders()); } + /** + * Removes the watermark from a folder. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param headers Headers of deleteFolderWatermark method + */ public void deleteFolderWatermark(String folderId, DeleteFolderWatermarkHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = diff --git a/src/main/java/com/box/sdkgen/managers/folderwatermarks/GetFolderWatermarkHeaders.java b/src/main/java/com/box/sdkgen/managers/folderwatermarks/GetFolderWatermarkHeaders.java index bc18a0550..5cf310dd4 100644 --- a/src/main/java/com/box/sdkgen/managers/folderwatermarks/GetFolderWatermarkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folderwatermarks/GetFolderWatermarkHeaders.java @@ -6,6 +6,7 @@ public class GetFolderWatermarkHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFolderWatermarkHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkHeaders.java b/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkHeaders.java index 12d36f26d..5310a6133 100644 --- a/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkHeaders.java @@ -6,6 +6,7 @@ public class UpdateFolderWatermarkHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateFolderWatermarkHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBody.java b/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBody.java index f9890f0ce..bd06e9ab5 100644 --- a/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBody.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class UpdateFolderWatermarkRequestBody extends SerializableObject { + /** The watermark to imprint on the folder. */ protected final UpdateFolderWatermarkRequestBodyWatermarkField watermark; public UpdateFolderWatermarkRequestBody( diff --git a/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBodyWatermarkField.java b/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBodyWatermarkField.java index 9916204ba..49ad369f4 100644 --- a/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBodyWatermarkField.java +++ b/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBodyWatermarkField.java @@ -11,6 +11,11 @@ @JsonFilter("nullablePropertyFilter") public class UpdateFolderWatermarkRequestBodyWatermarkField extends SerializableObject { + /** + * The type of watermark to apply. + * + *

    Currently only supports one option. + */ @JsonDeserialize( using = UpdateFolderWatermarkRequestBodyWatermarkImprintField diff --git a/src/main/java/com/box/sdkgen/managers/groups/CreateGroupHeaders.java b/src/main/java/com/box/sdkgen/managers/groups/CreateGroupHeaders.java index 275faf179..17f5607f7 100644 --- a/src/main/java/com/box/sdkgen/managers/groups/CreateGroupHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/groups/CreateGroupHeaders.java @@ -6,6 +6,7 @@ public class CreateGroupHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateGroupHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/groups/CreateGroupQueryParams.java b/src/main/java/com/box/sdkgen/managers/groups/CreateGroupQueryParams.java index 7c69afc78..e75f63194 100644 --- a/src/main/java/com/box/sdkgen/managers/groups/CreateGroupQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/groups/CreateGroupQueryParams.java @@ -4,6 +4,14 @@ public class CreateGroupQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public CreateGroupQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/groups/CreateGroupRequestBody.java b/src/main/java/com/box/sdkgen/managers/groups/CreateGroupRequestBody.java index 584fa156b..7b0ce3095 100644 --- a/src/main/java/com/box/sdkgen/managers/groups/CreateGroupRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/groups/CreateGroupRequestBody.java @@ -12,15 +12,47 @@ @JsonFilter("nullablePropertyFilter") public class CreateGroupRequestBody extends SerializableObject { + /** The name of the new group to be created. This name must be unique within the enterprise. */ protected final String name; + /** + * Keeps track of which external source this group is coming, for example `Active Directory`, or + * `Okta`. + * + *

    Setting this will also prevent Box admins from editing the group name and its members + * directly via the Box web application. + * + *

    This is desirable for one-way syncing of groups. + */ protected String provenance; + /** + * An arbitrary identifier that can be used by external group sync tools to link this Box Group to + * an external group. + * + *

    Example values of this field could be an **Active Directory Object ID** or a **Google Group + * ID**. + * + *

    We recommend you use of this field in order to avoid issues when group names are updated in + * either Box or external systems. + */ @JsonProperty("external_sync_identifier") protected String externalSyncIdentifier; + /** A human readable description of the group. */ protected String description; + /** + * Specifies who can invite the group to collaborate on folders. + * + *

    When set to `admins_only` the enterprise admin, co-admins, and the group's admin can invite + * the group. + * + *

    When set to `admins_and_members` all the admins listed above and group members can invite + * the group. + * + *

    When set to `all_managed_users` all managed users in the enterprise can invite the group. + */ @JsonDeserialize( using = CreateGroupRequestBodyInvitabilityLevelField @@ -32,6 +64,13 @@ public class CreateGroupRequestBody extends SerializableObject { @JsonProperty("invitability_level") protected EnumWrapper invitabilityLevel; + /** + * Specifies who can see the members of the group. + * + *

    * `admins_only` - the enterprise admin, co-admins, group's group admin. * + * `admins_and_members` - all admins and group members. * `all_managed_users` - all managed users + * in the enterprise. + */ @JsonDeserialize( using = CreateGroupRequestBodyMemberViewabilityLevelField diff --git a/src/main/java/com/box/sdkgen/managers/groups/DeleteGroupByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/groups/DeleteGroupByIdHeaders.java index 5c57b646e..f21d34bed 100644 --- a/src/main/java/com/box/sdkgen/managers/groups/DeleteGroupByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/groups/DeleteGroupByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteGroupByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteGroupByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/groups/GetGroupByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/groups/GetGroupByIdHeaders.java index 0667d184c..8c979f0e2 100644 --- a/src/main/java/com/box/sdkgen/managers/groups/GetGroupByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/groups/GetGroupByIdHeaders.java @@ -6,6 +6,7 @@ public class GetGroupByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetGroupByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/groups/GetGroupByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/groups/GetGroupByIdQueryParams.java index 95dea8278..5de22ae7e 100644 --- a/src/main/java/com/box/sdkgen/managers/groups/GetGroupByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/groups/GetGroupByIdQueryParams.java @@ -4,6 +4,14 @@ public class GetGroupByIdQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public GetGroupByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/groups/GetGroupsHeaders.java b/src/main/java/com/box/sdkgen/managers/groups/GetGroupsHeaders.java index e54508fab..685b1b3f6 100644 --- a/src/main/java/com/box/sdkgen/managers/groups/GetGroupsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/groups/GetGroupsHeaders.java @@ -6,6 +6,7 @@ public class GetGroupsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetGroupsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/groups/GetGroupsQueryParams.java b/src/main/java/com/box/sdkgen/managers/groups/GetGroupsQueryParams.java index bb1145903..73ef7370f 100644 --- a/src/main/java/com/box/sdkgen/managers/groups/GetGroupsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/groups/GetGroupsQueryParams.java @@ -4,12 +4,27 @@ public class GetGroupsQueryParams { + /** Limits the results to only groups whose `name` starts with the search term. */ public String filterTerm; + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; + /** The maximum number of items to return per page. */ public Long limit; + /** + * The offset of the item at which to begin the response. + * + *

    Queries with offset parameter value exceeding 10000 will be rejected with a 400 response. + */ public Long offset; public GetGroupsQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/groups/GroupsManager.java b/src/main/java/com/box/sdkgen/managers/groups/GroupsManager.java index f6f139792..5ebc29942 100644 --- a/src/main/java/com/box/sdkgen/managers/groups/GroupsManager.java +++ b/src/main/java/com/box/sdkgen/managers/groups/GroupsManager.java @@ -31,18 +31,41 @@ protected GroupsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves all of the groups for a given enterprise. The user must have admin permissions to + * inspect enterprise's groups. + */ public Groups getGroups() { return getGroups(new GetGroupsQueryParams(), new GetGroupsHeaders()); } + /** + * Retrieves all of the groups for a given enterprise. The user must have admin permissions to + * inspect enterprise's groups. + * + * @param queryParams Query parameters of getGroups method + */ public Groups getGroups(GetGroupsQueryParams queryParams) { return getGroups(queryParams, new GetGroupsHeaders()); } + /** + * Retrieves all of the groups for a given enterprise. The user must have admin permissions to + * inspect enterprise's groups. + * + * @param headers Headers of getGroups method + */ public Groups getGroups(GetGroupsHeaders headers) { return getGroups(new GetGroupsQueryParams(), headers); } + /** + * Retrieves all of the groups for a given enterprise. The user must have admin permissions to + * inspect enterprise's groups. + * + * @param queryParams Query parameters of getGroups method + * @param headers Headers of getGroups method + */ public Groups getGroups(GetGroupsQueryParams queryParams, GetGroupsHeaders headers) { Map queryParamsMap = prepareParams( @@ -69,19 +92,47 @@ public Groups getGroups(GetGroupsQueryParams queryParams, GetGroupsHeaders heade return JsonManager.deserialize(response.getData(), Groups.class); } + /** + * Creates a new group of users in an enterprise. Only users with admin permissions can create new + * groups. + * + * @param requestBody Request body of createGroup method + */ public GroupFull createGroup(CreateGroupRequestBody requestBody) { return createGroup(requestBody, new CreateGroupQueryParams(), new CreateGroupHeaders()); } + /** + * Creates a new group of users in an enterprise. Only users with admin permissions can create new + * groups. + * + * @param requestBody Request body of createGroup method + * @param queryParams Query parameters of createGroup method + */ public GroupFull createGroup( CreateGroupRequestBody requestBody, CreateGroupQueryParams queryParams) { return createGroup(requestBody, queryParams, new CreateGroupHeaders()); } + /** + * Creates a new group of users in an enterprise. Only users with admin permissions can create new + * groups. + * + * @param requestBody Request body of createGroup method + * @param headers Headers of createGroup method + */ public GroupFull createGroup(CreateGroupRequestBody requestBody, CreateGroupHeaders headers) { return createGroup(requestBody, new CreateGroupQueryParams(), headers); } + /** + * Creates a new group of users in an enterprise. Only users with admin permissions can create new + * groups. + * + * @param requestBody Request body of createGroup method + * @param queryParams Query parameters of createGroup method + * @param headers Headers of createGroup method + */ public GroupFull createGroup( CreateGroupRequestBody requestBody, CreateGroupQueryParams queryParams, @@ -108,18 +159,46 @@ public GroupFull createGroup( return JsonManager.deserialize(response.getData(), GroupFull.class); } + /** + * Retrieves information about a group. Only members of this group or users with admin-level + * permissions will be able to use this API. + * + * @param groupId The ID of the group. Example: "57645" + */ public GroupFull getGroupById(String groupId) { return getGroupById(groupId, new GetGroupByIdQueryParams(), new GetGroupByIdHeaders()); } + /** + * Retrieves information about a group. Only members of this group or users with admin-level + * permissions will be able to use this API. + * + * @param groupId The ID of the group. Example: "57645" + * @param queryParams Query parameters of getGroupById method + */ public GroupFull getGroupById(String groupId, GetGroupByIdQueryParams queryParams) { return getGroupById(groupId, queryParams, new GetGroupByIdHeaders()); } + /** + * Retrieves information about a group. Only members of this group or users with admin-level + * permissions will be able to use this API. + * + * @param groupId The ID of the group. Example: "57645" + * @param headers Headers of getGroupById method + */ public GroupFull getGroupById(String groupId, GetGroupByIdHeaders headers) { return getGroupById(groupId, new GetGroupByIdQueryParams(), headers); } + /** + * Retrieves information about a group. Only members of this group or users with admin-level + * permissions will be able to use this API. + * + * @param groupId The ID of the group. Example: "57645" + * @param queryParams Query parameters of getGroupById method + * @param headers Headers of getGroupById method + */ public GroupFull getGroupById( String groupId, GetGroupByIdQueryParams queryParams, GetGroupByIdHeaders headers) { Map queryParamsMap = @@ -145,6 +224,12 @@ public GroupFull getGroupById( return JsonManager.deserialize(response.getData(), GroupFull.class); } + /** + * Updates a specific group. Only admins of this group or users with admin-level permissions will + * be able to use this API. + * + * @param groupId The ID of the group. Example: "57645" + */ public GroupFull updateGroupById(String groupId) { return updateGroupById( groupId, @@ -153,16 +238,38 @@ public GroupFull updateGroupById(String groupId) { new UpdateGroupByIdHeaders()); } + /** + * Updates a specific group. Only admins of this group or users with admin-level permissions will + * be able to use this API. + * + * @param groupId The ID of the group. Example: "57645" + * @param requestBody Request body of updateGroupById method + */ public GroupFull updateGroupById(String groupId, UpdateGroupByIdRequestBody requestBody) { return updateGroupById( groupId, requestBody, new UpdateGroupByIdQueryParams(), new UpdateGroupByIdHeaders()); } + /** + * Updates a specific group. Only admins of this group or users with admin-level permissions will + * be able to use this API. + * + * @param groupId The ID of the group. Example: "57645" + * @param queryParams Query parameters of updateGroupById method + */ public GroupFull updateGroupById(String groupId, UpdateGroupByIdQueryParams queryParams) { return updateGroupById( groupId, new UpdateGroupByIdRequestBody(), queryParams, new UpdateGroupByIdHeaders()); } + /** + * Updates a specific group. Only admins of this group or users with admin-level permissions will + * be able to use this API. + * + * @param groupId The ID of the group. Example: "57645" + * @param requestBody Request body of updateGroupById method + * @param queryParams Query parameters of updateGroupById method + */ public GroupFull updateGroupById( String groupId, UpdateGroupByIdRequestBody requestBody, @@ -170,21 +277,53 @@ public GroupFull updateGroupById( return updateGroupById(groupId, requestBody, queryParams, new UpdateGroupByIdHeaders()); } + /** + * Updates a specific group. Only admins of this group or users with admin-level permissions will + * be able to use this API. + * + * @param groupId The ID of the group. Example: "57645" + * @param headers Headers of updateGroupById method + */ public GroupFull updateGroupById(String groupId, UpdateGroupByIdHeaders headers) { return updateGroupById( groupId, new UpdateGroupByIdRequestBody(), new UpdateGroupByIdQueryParams(), headers); } + /** + * Updates a specific group. Only admins of this group or users with admin-level permissions will + * be able to use this API. + * + * @param groupId The ID of the group. Example: "57645" + * @param requestBody Request body of updateGroupById method + * @param headers Headers of updateGroupById method + */ public GroupFull updateGroupById( String groupId, UpdateGroupByIdRequestBody requestBody, UpdateGroupByIdHeaders headers) { return updateGroupById(groupId, requestBody, new UpdateGroupByIdQueryParams(), headers); } + /** + * Updates a specific group. Only admins of this group or users with admin-level permissions will + * be able to use this API. + * + * @param groupId The ID of the group. Example: "57645" + * @param queryParams Query parameters of updateGroupById method + * @param headers Headers of updateGroupById method + */ public GroupFull updateGroupById( String groupId, UpdateGroupByIdQueryParams queryParams, UpdateGroupByIdHeaders headers) { return updateGroupById(groupId, new UpdateGroupByIdRequestBody(), queryParams, headers); } + /** + * Updates a specific group. Only admins of this group or users with admin-level permissions will + * be able to use this API. + * + * @param groupId The ID of the group. Example: "57645" + * @param requestBody Request body of updateGroupById method + * @param queryParams Query parameters of updateGroupById method + * @param headers Headers of updateGroupById method + */ public GroupFull updateGroupById( String groupId, UpdateGroupByIdRequestBody requestBody, @@ -215,10 +354,23 @@ public GroupFull updateGroupById( return JsonManager.deserialize(response.getData(), GroupFull.class); } + /** + * Permanently deletes a group. Only users with admin-level permissions will be able to use this + * API. + * + * @param groupId The ID of the group. Example: "57645" + */ public void deleteGroupById(String groupId) { deleteGroupById(groupId, new DeleteGroupByIdHeaders()); } + /** + * Permanently deletes a group. Only users with admin-level permissions will be able to use this + * API. + * + * @param groupId The ID of the group. Example: "57645" + * @param headers Headers of deleteGroupById method + */ public void deleteGroupById(String groupId, DeleteGroupByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = diff --git a/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdHeaders.java index 435b9c4c8..461f58de7 100644 --- a/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdHeaders.java @@ -6,6 +6,7 @@ public class UpdateGroupByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateGroupByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdQueryParams.java index fdde47a50..931a348b4 100644 --- a/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdQueryParams.java @@ -4,6 +4,14 @@ public class UpdateGroupByIdQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public UpdateGroupByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdRequestBody.java index c1cc5e67a..e6ea3678b 100644 --- a/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdRequestBody.java @@ -12,15 +12,47 @@ @JsonFilter("nullablePropertyFilter") public class UpdateGroupByIdRequestBody extends SerializableObject { + /** The name of the new group to be created. Must be unique within the enterprise. */ protected String name; + /** + * Keeps track of which external source this group is coming, for example `Active Directory`, or + * `Okta`. + * + *

    Setting this will also prevent Box admins from editing the group name and its members + * directly via the Box web application. + * + *

    This is desirable for one-way syncing of groups. + */ protected String provenance; + /** + * An arbitrary identifier that can be used by external group sync tools to link this Box Group to + * an external group. + * + *

    Example values of this field could be an **Active Directory Object ID** or a **Google Group + * ID**. + * + *

    We recommend you use of this field in order to avoid issues when group names are updated in + * either Box or external systems. + */ @JsonProperty("external_sync_identifier") protected String externalSyncIdentifier; + /** A human readable description of the group. */ protected String description; + /** + * Specifies who can invite the group to collaborate on folders. + * + *

    When set to `admins_only` the enterprise admin, co-admins, and the group's admin can invite + * the group. + * + *

    When set to `admins_and_members` all the admins listed above and group members can invite + * the group. + * + *

    When set to `all_managed_users` all managed users in the enterprise can invite the group. + */ @JsonDeserialize( using = UpdateGroupByIdRequestBodyInvitabilityLevelField @@ -32,6 +64,13 @@ public class UpdateGroupByIdRequestBody extends SerializableObject { @JsonProperty("invitability_level") protected EnumWrapper invitabilityLevel; + /** + * Specifies who can see the members of the group. + * + *

    * `admins_only` - the enterprise admin, co-admins, group's group admin. * + * `admins_and_members` - all admins and group members. * `all_managed_users` - all managed users + * in the enterprise. + */ @JsonDeserialize( using = UpdateGroupByIdRequestBodyMemberViewabilityLevelField diff --git a/src/main/java/com/box/sdkgen/managers/hubcollaborations/CreateHubCollaborationV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubcollaborations/CreateHubCollaborationV2025R0Headers.java index e73752654..c50d35f9a 100644 --- a/src/main/java/com/box/sdkgen/managers/hubcollaborations/CreateHubCollaborationV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubcollaborations/CreateHubCollaborationV2025R0Headers.java @@ -8,8 +8,10 @@ public class CreateHubCollaborationV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateHubCollaborationV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/hubcollaborations/DeleteHubCollaborationByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubcollaborations/DeleteHubCollaborationByIdV2025R0Headers.java index 0c9242f46..e7ed4b894 100644 --- a/src/main/java/com/box/sdkgen/managers/hubcollaborations/DeleteHubCollaborationByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubcollaborations/DeleteHubCollaborationByIdV2025R0Headers.java @@ -8,8 +8,10 @@ public class DeleteHubCollaborationByIdV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteHubCollaborationByIdV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationByIdV2025R0Headers.java index 3823535cb..31f7b98c7 100644 --- a/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationByIdV2025R0Headers.java @@ -8,8 +8,10 @@ public class GetHubCollaborationByIdV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetHubCollaborationByIdV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationsV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationsV2025R0Headers.java index e6d20d8ea..0045dfb68 100644 --- a/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationsV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationsV2025R0Headers.java @@ -8,8 +8,10 @@ public class GetHubCollaborationsV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetHubCollaborationsV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationsV2025R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationsV2025R0QueryParams.java index ab682e2f8..ac16caf08 100644 --- a/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationsV2025R0QueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationsV2025R0QueryParams.java @@ -2,10 +2,24 @@ public class GetHubCollaborationsV2025R0QueryParams { + /** + * The unique identifier that represent a hub. + * + *

    The ID for any hub can be determined by visiting this hub in the web application and copying + * the ID from the URL. For example, for the URL `https://*.app.box.com/hubs/123` the `hub_id` is + * `123`. + */ public final String hubId; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetHubCollaborationsV2025R0QueryParams(String hubId) { diff --git a/src/main/java/com/box/sdkgen/managers/hubcollaborations/HubCollaborationsManager.java b/src/main/java/com/box/sdkgen/managers/hubcollaborations/HubCollaborationsManager.java index 0af3744fe..345e496b0 100644 --- a/src/main/java/com/box/sdkgen/managers/hubcollaborations/HubCollaborationsManager.java +++ b/src/main/java/com/box/sdkgen/managers/hubcollaborations/HubCollaborationsManager.java @@ -33,11 +33,22 @@ protected HubCollaborationsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves all collaborations for a Box Hub. + * + * @param queryParams Query parameters of getHubCollaborationsV2025R0 method + */ public HubCollaborationsV2025R0 getHubCollaborationsV2025R0( GetHubCollaborationsV2025R0QueryParams queryParams) { return getHubCollaborationsV2025R0(queryParams, new GetHubCollaborationsV2025R0Headers()); } + /** + * Retrieves all collaborations for a Box Hub. + * + * @param queryParams Query parameters of getHubCollaborationsV2025R0 method + * @param headers Headers of getHubCollaborationsV2025R0 method + */ public HubCollaborationsV2025R0 getHubCollaborationsV2025R0( GetHubCollaborationsV2025R0QueryParams queryParams, GetHubCollaborationsV2025R0Headers headers) { @@ -71,11 +82,26 @@ public HubCollaborationsV2025R0 getHubCollaborationsV2025R0( return JsonManager.deserialize(response.getData(), HubCollaborationsV2025R0.class); } + /** + * Adds a collaboration for a single user or a single group to a Box Hub. + * + *

    Collaborations can be created using email address, user IDs, or group IDs. + * + * @param requestBody Request body of createHubCollaborationV2025R0 method + */ public HubCollaborationV2025R0 createHubCollaborationV2025R0( HubCollaborationCreateRequestV2025R0 requestBody) { return createHubCollaborationV2025R0(requestBody, new CreateHubCollaborationV2025R0Headers()); } + /** + * Adds a collaboration for a single user or a single group to a Box Hub. + * + *

    Collaborations can be created using email address, user IDs, or group IDs. + * + * @param requestBody Request body of createHubCollaborationV2025R0 method + * @param headers Headers of createHubCollaborationV2025R0 method + */ public HubCollaborationV2025R0 createHubCollaborationV2025R0( HubCollaborationCreateRequestV2025R0 requestBody, CreateHubCollaborationV2025R0Headers headers) { @@ -104,11 +130,22 @@ public HubCollaborationV2025R0 createHubCollaborationV2025R0( return JsonManager.deserialize(response.getData(), HubCollaborationV2025R0.class); } + /** + * Retrieves details for a Box Hub collaboration by collaboration ID. + * + * @param hubCollaborationId The ID of the hub collaboration. Example: "1234" + */ public HubCollaborationV2025R0 getHubCollaborationByIdV2025R0(String hubCollaborationId) { return getHubCollaborationByIdV2025R0( hubCollaborationId, new GetHubCollaborationByIdV2025R0Headers()); } + /** + * Retrieves details for a Box Hub collaboration by collaboration ID. + * + * @param hubCollaborationId The ID of the hub collaboration. Example: "1234" + * @param headers Headers of getHubCollaborationByIdV2025R0 method + */ public HubCollaborationV2025R0 getHubCollaborationByIdV2025R0( String hubCollaborationId, GetHubCollaborationByIdV2025R0Headers headers) { Map headersMap = @@ -135,12 +172,25 @@ public HubCollaborationV2025R0 getHubCollaborationByIdV2025R0( return JsonManager.deserialize(response.getData(), HubCollaborationV2025R0.class); } + /** + * Updates a Box Hub collaboration. Can be used to change the Box Hub role. + * + * @param hubCollaborationId The ID of the hub collaboration. Example: "1234" + * @param requestBody Request body of updateHubCollaborationByIdV2025R0 method + */ public HubCollaborationV2025R0 updateHubCollaborationByIdV2025R0( String hubCollaborationId, HubCollaborationUpdateRequestV2025R0 requestBody) { return updateHubCollaborationByIdV2025R0( hubCollaborationId, requestBody, new UpdateHubCollaborationByIdV2025R0Headers()); } + /** + * Updates a Box Hub collaboration. Can be used to change the Box Hub role. + * + * @param hubCollaborationId The ID of the hub collaboration. Example: "1234" + * @param requestBody Request body of updateHubCollaborationByIdV2025R0 method + * @param headers Headers of updateHubCollaborationByIdV2025R0 method + */ public HubCollaborationV2025R0 updateHubCollaborationByIdV2025R0( String hubCollaborationId, HubCollaborationUpdateRequestV2025R0 requestBody, @@ -171,11 +221,22 @@ public HubCollaborationV2025R0 updateHubCollaborationByIdV2025R0( return JsonManager.deserialize(response.getData(), HubCollaborationV2025R0.class); } + /** + * Deletes a single Box Hub collaboration. + * + * @param hubCollaborationId The ID of the hub collaboration. Example: "1234" + */ public void deleteHubCollaborationByIdV2025R0(String hubCollaborationId) { deleteHubCollaborationByIdV2025R0( hubCollaborationId, new DeleteHubCollaborationByIdV2025R0Headers()); } + /** + * Deletes a single Box Hub collaboration. + * + * @param hubCollaborationId The ID of the hub collaboration. Example: "1234" + * @param headers Headers of deleteHubCollaborationByIdV2025R0 method + */ public void deleteHubCollaborationByIdV2025R0( String hubCollaborationId, DeleteHubCollaborationByIdV2025R0Headers headers) { Map headersMap = diff --git a/src/main/java/com/box/sdkgen/managers/hubcollaborations/UpdateHubCollaborationByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubcollaborations/UpdateHubCollaborationByIdV2025R0Headers.java index 356b2f282..ce6b38bdf 100644 --- a/src/main/java/com/box/sdkgen/managers/hubcollaborations/UpdateHubCollaborationByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubcollaborations/UpdateHubCollaborationByIdV2025R0Headers.java @@ -8,8 +8,10 @@ public class UpdateHubCollaborationByIdV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateHubCollaborationByIdV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/hubitems/GetHubItemsV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubitems/GetHubItemsV2025R0Headers.java index 908dac894..35fc94477 100644 --- a/src/main/java/com/box/sdkgen/managers/hubitems/GetHubItemsV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubitems/GetHubItemsV2025R0Headers.java @@ -8,8 +8,10 @@ public class GetHubItemsV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetHubItemsV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/hubitems/GetHubItemsV2025R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/hubitems/GetHubItemsV2025R0QueryParams.java index 0dafb4fed..f7c75273a 100644 --- a/src/main/java/com/box/sdkgen/managers/hubitems/GetHubItemsV2025R0QueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/hubitems/GetHubItemsV2025R0QueryParams.java @@ -2,10 +2,24 @@ public class GetHubItemsV2025R0QueryParams { + /** + * The unique identifier that represent a hub. + * + *

    The ID for any hub can be determined by visiting this hub in the web application and copying + * the ID from the URL. For example, for the URL `https://*.app.box.com/hubs/123` the `hub_id` is + * `123`. + */ public final String hubId; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetHubItemsV2025R0QueryParams(String hubId) { diff --git a/src/main/java/com/box/sdkgen/managers/hubitems/HubItemsManager.java b/src/main/java/com/box/sdkgen/managers/hubitems/HubItemsManager.java index e6467bfd8..73522771d 100644 --- a/src/main/java/com/box/sdkgen/managers/hubitems/HubItemsManager.java +++ b/src/main/java/com/box/sdkgen/managers/hubitems/HubItemsManager.java @@ -32,10 +32,21 @@ protected HubItemsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves all items associated with a Box Hub. + * + * @param queryParams Query parameters of getHubItemsV2025R0 method + */ public HubItemsV2025R0 getHubItemsV2025R0(GetHubItemsV2025R0QueryParams queryParams) { return getHubItemsV2025R0(queryParams, new GetHubItemsV2025R0Headers()); } + /** + * Retrieves all items associated with a Box Hub. + * + * @param queryParams Query parameters of getHubItemsV2025R0 method + * @param headers Headers of getHubItemsV2025R0 method + */ public HubItemsV2025R0 getHubItemsV2025R0( GetHubItemsV2025R0QueryParams queryParams, GetHubItemsV2025R0Headers headers) { Map queryParamsMap = @@ -66,11 +77,30 @@ public HubItemsV2025R0 getHubItemsV2025R0( return JsonManager.deserialize(response.getData(), HubItemsV2025R0.class); } + /** + * Adds and/or removes Box Hub items from a Box Hub. + * + * @param hubId The unique identifier that represent a hub. + *

    The ID for any hub can be determined by visiting this hub in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/hubs/123` the + * `hub_id` is `123`. Example: "12345" + * @param requestBody Request body of manageHubItemsV2025R0 method + */ public HubItemsManageResponseV2025R0 manageHubItemsV2025R0( String hubId, HubItemsManageRequestV2025R0 requestBody) { return manageHubItemsV2025R0(hubId, requestBody, new ManageHubItemsV2025R0Headers()); } + /** + * Adds and/or removes Box Hub items from a Box Hub. + * + * @param hubId The unique identifier that represent a hub. + *

    The ID for any hub can be determined by visiting this hub in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/hubs/123` the + * `hub_id` is `123`. Example: "12345" + * @param requestBody Request body of manageHubItemsV2025R0 method + * @param headers Headers of manageHubItemsV2025R0 method + */ public HubItemsManageResponseV2025R0 manageHubItemsV2025R0( String hubId, HubItemsManageRequestV2025R0 requestBody, diff --git a/src/main/java/com/box/sdkgen/managers/hubitems/ManageHubItemsV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubitems/ManageHubItemsV2025R0Headers.java index f5545575f..636bd9095 100644 --- a/src/main/java/com/box/sdkgen/managers/hubitems/ManageHubItemsV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubitems/ManageHubItemsV2025R0Headers.java @@ -8,8 +8,10 @@ public class ManageHubItemsV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public ManageHubItemsV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/hubs/CopyHubV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubs/CopyHubV2025R0Headers.java index 616b02a15..22a2639aa 100644 --- a/src/main/java/com/box/sdkgen/managers/hubs/CopyHubV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubs/CopyHubV2025R0Headers.java @@ -8,8 +8,10 @@ public class CopyHubV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CopyHubV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/hubs/CreateHubV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubs/CreateHubV2025R0Headers.java index 2b9d90fc7..b23e903c5 100644 --- a/src/main/java/com/box/sdkgen/managers/hubs/CreateHubV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubs/CreateHubV2025R0Headers.java @@ -8,8 +8,10 @@ public class CreateHubV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateHubV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/hubs/DeleteHubByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubs/DeleteHubByIdV2025R0Headers.java index d769fb116..fc9322c57 100644 --- a/src/main/java/com/box/sdkgen/managers/hubs/DeleteHubByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubs/DeleteHubByIdV2025R0Headers.java @@ -8,8 +8,10 @@ public class DeleteHubByIdV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteHubByIdV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0Headers.java index c0f4609eb..c85ccac34 100644 --- a/src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0Headers.java @@ -8,8 +8,10 @@ public class GetEnterpriseHubsV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetEnterpriseHubsV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0QueryParams.java index b28fbaef0..a18002afa 100644 --- a/src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0QueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0QueryParams.java @@ -4,14 +4,28 @@ public class GetEnterpriseHubsV2025R0QueryParams { + /** The query string to search for Box Hubs. */ public String query; + /** + * The field to sort results by. Possible values include `name`, `updated_at`, `last_accessed_at`, + * `view_count`, and `relevance`. Default is `relevance`. + */ public String sort; + /** + * The direction to sort results in. This can be either in alphabetical ascending (`ASC`) or + * descending (`DESC`) order. + */ public EnumWrapper direction; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetEnterpriseHubsV2025R0QueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/hubs/GetHubByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubs/GetHubByIdV2025R0Headers.java index bde445513..831c8dbd3 100644 --- a/src/main/java/com/box/sdkgen/managers/hubs/GetHubByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubs/GetHubByIdV2025R0Headers.java @@ -8,8 +8,10 @@ public class GetHubByIdV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetHubByIdV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0Headers.java index 60f0185df..a8ebd6e57 100644 --- a/src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0Headers.java @@ -8,8 +8,10 @@ public class GetHubsV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetHubsV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0QueryParams.java index fb2c445d5..a5065ff5b 100644 --- a/src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0QueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0QueryParams.java @@ -4,16 +4,34 @@ public class GetHubsV2025R0QueryParams { + /** The query string to search for Box Hubs. */ public String query; + /** + * The scope of the Box Hubs to retrieve. Possible values include `editable`, `view_only`, and + * `all`. Default is `all`. + */ public String scope; + /** + * The field to sort results by. Possible values include `name`, `updated_at`, `last_accessed_at`, + * `view_count`, and `relevance`. Default is `relevance`. + */ public String sort; + /** + * The direction to sort results in. This can be either in alphabetical ascending (`ASC`) or + * descending (`DESC`) order. + */ public EnumWrapper direction; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetHubsV2025R0QueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/hubs/HubsManager.java b/src/main/java/com/box/sdkgen/managers/hubs/HubsManager.java index dd90ae29b..af6e5a118 100644 --- a/src/main/java/com/box/sdkgen/managers/hubs/HubsManager.java +++ b/src/main/java/com/box/sdkgen/managers/hubs/HubsManager.java @@ -34,18 +34,35 @@ protected HubsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** Retrieves all Box Hubs for requesting user. */ public HubsV2025R0 getHubsV2025R0() { return getHubsV2025R0(new GetHubsV2025R0QueryParams(), new GetHubsV2025R0Headers()); } + /** + * Retrieves all Box Hubs for requesting user. + * + * @param queryParams Query parameters of getHubsV2025R0 method + */ public HubsV2025R0 getHubsV2025R0(GetHubsV2025R0QueryParams queryParams) { return getHubsV2025R0(queryParams, new GetHubsV2025R0Headers()); } + /** + * Retrieves all Box Hubs for requesting user. + * + * @param headers Headers of getHubsV2025R0 method + */ public HubsV2025R0 getHubsV2025R0(GetHubsV2025R0Headers headers) { return getHubsV2025R0(new GetHubsV2025R0QueryParams(), headers); } + /** + * Retrieves all Box Hubs for requesting user. + * + * @param queryParams Query parameters of getHubsV2025R0 method + * @param headers Headers of getHubsV2025R0 method + */ public HubsV2025R0 getHubsV2025R0( GetHubsV2025R0QueryParams queryParams, GetHubsV2025R0Headers headers) { Map queryParamsMap = @@ -79,10 +96,21 @@ public HubsV2025R0 getHubsV2025R0( return JsonManager.deserialize(response.getData(), HubsV2025R0.class); } + /** + * Creates a new Box Hub. + * + * @param requestBody Request body of createHubV2025R0 method + */ public HubV2025R0 createHubV2025R0(HubCreateRequestV2025R0 requestBody) { return createHubV2025R0(requestBody, new CreateHubV2025R0Headers()); } + /** + * Creates a new Box Hub. + * + * @param requestBody Request body of createHubV2025R0 method + * @param headers Headers of createHubV2025R0 method + */ public HubV2025R0 createHubV2025R0( HubCreateRequestV2025R0 requestBody, CreateHubV2025R0Headers headers) { Map headersMap = @@ -108,19 +136,46 @@ public HubV2025R0 createHubV2025R0( return JsonManager.deserialize(response.getData(), HubV2025R0.class); } + /** + * Retrieves all Box Hubs for a given enterprise. + * + *

    Admins or Hub Co-admins of an enterprise with GCM scope can make this call. + */ public HubsV2025R0 getEnterpriseHubsV2025R0() { return getEnterpriseHubsV2025R0( new GetEnterpriseHubsV2025R0QueryParams(), new GetEnterpriseHubsV2025R0Headers()); } + /** + * Retrieves all Box Hubs for a given enterprise. + * + *

    Admins or Hub Co-admins of an enterprise with GCM scope can make this call. + * + * @param queryParams Query parameters of getEnterpriseHubsV2025R0 method + */ public HubsV2025R0 getEnterpriseHubsV2025R0(GetEnterpriseHubsV2025R0QueryParams queryParams) { return getEnterpriseHubsV2025R0(queryParams, new GetEnterpriseHubsV2025R0Headers()); } + /** + * Retrieves all Box Hubs for a given enterprise. + * + *

    Admins or Hub Co-admins of an enterprise with GCM scope can make this call. + * + * @param headers Headers of getEnterpriseHubsV2025R0 method + */ public HubsV2025R0 getEnterpriseHubsV2025R0(GetEnterpriseHubsV2025R0Headers headers) { return getEnterpriseHubsV2025R0(new GetEnterpriseHubsV2025R0QueryParams(), headers); } + /** + * Retrieves all Box Hubs for a given enterprise. + * + *

    Admins or Hub Co-admins of an enterprise with GCM scope can make this call. + * + * @param queryParams Query parameters of getEnterpriseHubsV2025R0 method + * @param headers Headers of getEnterpriseHubsV2025R0 method + */ public HubsV2025R0 getEnterpriseHubsV2025R0( GetEnterpriseHubsV2025R0QueryParams queryParams, GetEnterpriseHubsV2025R0Headers headers) { Map queryParamsMap = @@ -155,10 +210,27 @@ public HubsV2025R0 getEnterpriseHubsV2025R0( return JsonManager.deserialize(response.getData(), HubsV2025R0.class); } + /** + * Retrieves details for a Box Hub by its ID. + * + * @param hubId The unique identifier that represent a hub. + *

    The ID for any hub can be determined by visiting this hub in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/hubs/123` the + * `hub_id` is `123`. Example: "12345" + */ public HubV2025R0 getHubByIdV2025R0(String hubId) { return getHubByIdV2025R0(hubId, new GetHubByIdV2025R0Headers()); } + /** + * Retrieves details for a Box Hub by its ID. + * + * @param hubId The unique identifier that represent a hub. + *

    The ID for any hub can be determined by visiting this hub in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/hubs/123` the + * `hub_id` is `123`. Example: "12345" + * @param headers Headers of getHubByIdV2025R0 method + */ public HubV2025R0 getHubByIdV2025R0(String hubId, GetHubByIdV2025R0Headers headers) { Map headersMap = prepareParams( @@ -184,10 +256,29 @@ public HubV2025R0 getHubByIdV2025R0(String hubId, GetHubByIdV2025R0Headers heade return JsonManager.deserialize(response.getData(), HubV2025R0.class); } + /** + * Updates a Box Hub. Can be used to change title, description, or Box Hub settings. + * + * @param hubId The unique identifier that represent a hub. + *

    The ID for any hub can be determined by visiting this hub in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/hubs/123` the + * `hub_id` is `123`. Example: "12345" + * @param requestBody Request body of updateHubByIdV2025R0 method + */ public HubV2025R0 updateHubByIdV2025R0(String hubId, HubUpdateRequestV2025R0 requestBody) { return updateHubByIdV2025R0(hubId, requestBody, new UpdateHubByIdV2025R0Headers()); } + /** + * Updates a Box Hub. Can be used to change title, description, or Box Hub settings. + * + * @param hubId The unique identifier that represent a hub. + *

    The ID for any hub can be determined by visiting this hub in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/hubs/123` the + * `hub_id` is `123`. Example: "12345" + * @param requestBody Request body of updateHubByIdV2025R0 method + * @param headers Headers of updateHubByIdV2025R0 method + */ public HubV2025R0 updateHubByIdV2025R0( String hubId, HubUpdateRequestV2025R0 requestBody, UpdateHubByIdV2025R0Headers headers) { Map headersMap = @@ -216,10 +307,27 @@ public HubV2025R0 updateHubByIdV2025R0( return JsonManager.deserialize(response.getData(), HubV2025R0.class); } + /** + * Deletes a single Box Hub. + * + * @param hubId The unique identifier that represent a hub. + *

    The ID for any hub can be determined by visiting this hub in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/hubs/123` the + * `hub_id` is `123`. Example: "12345" + */ public void deleteHubByIdV2025R0(String hubId) { deleteHubByIdV2025R0(hubId, new DeleteHubByIdV2025R0Headers()); } + /** + * Deletes a single Box Hub. + * + * @param hubId The unique identifier that represent a hub. + *

    The ID for any hub can be determined by visiting this hub in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/hubs/123` the + * `hub_id` is `123`. Example: "12345" + * @param headers Headers of deleteHubByIdV2025R0 method + */ public void deleteHubByIdV2025R0(String hubId, DeleteHubByIdV2025R0Headers headers) { Map headersMap = prepareParams( @@ -244,10 +352,33 @@ public void deleteHubByIdV2025R0(String hubId, DeleteHubByIdV2025R0Headers heade .build()); } + /** + * Creates a copy of a Box Hub. + * + *

    The original Box Hub will not be modified. + * + * @param hubId The unique identifier that represent a hub. + *

    The ID for any hub can be determined by visiting this hub in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/hubs/123` the + * `hub_id` is `123`. Example: "12345" + * @param requestBody Request body of copyHubV2025R0 method + */ public HubV2025R0 copyHubV2025R0(String hubId, HubCopyRequestV2025R0 requestBody) { return copyHubV2025R0(hubId, requestBody, new CopyHubV2025R0Headers()); } + /** + * Creates a copy of a Box Hub. + * + *

    The original Box Hub will not be modified. + * + * @param hubId The unique identifier that represent a hub. + *

    The ID for any hub can be determined by visiting this hub in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/hubs/123` the + * `hub_id` is `123`. Example: "12345" + * @param requestBody Request body of copyHubV2025R0 method + * @param headers Headers of copyHubV2025R0 method + */ public HubV2025R0 copyHubV2025R0( String hubId, HubCopyRequestV2025R0 requestBody, CopyHubV2025R0Headers headers) { Map headersMap = diff --git a/src/main/java/com/box/sdkgen/managers/hubs/UpdateHubByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubs/UpdateHubByIdV2025R0Headers.java index 0bb036af7..270f28172 100644 --- a/src/main/java/com/box/sdkgen/managers/hubs/UpdateHubByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubs/UpdateHubByIdV2025R0Headers.java @@ -8,8 +8,10 @@ public class UpdateHubByIdV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateHubByIdV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/CreateSlackIntegrationMappingHeaders.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/CreateSlackIntegrationMappingHeaders.java index 2232fd860..e7c2786fb 100644 --- a/src/main/java/com/box/sdkgen/managers/integrationmappings/CreateSlackIntegrationMappingHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/CreateSlackIntegrationMappingHeaders.java @@ -6,6 +6,7 @@ public class CreateSlackIntegrationMappingHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateSlackIntegrationMappingHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/CreateTeamsIntegrationMappingHeaders.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/CreateTeamsIntegrationMappingHeaders.java index 82a1410c7..bc48b2ff5 100644 --- a/src/main/java/com/box/sdkgen/managers/integrationmappings/CreateTeamsIntegrationMappingHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/CreateTeamsIntegrationMappingHeaders.java @@ -6,6 +6,7 @@ public class CreateTeamsIntegrationMappingHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateTeamsIntegrationMappingHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/DeleteSlackIntegrationMappingByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/DeleteSlackIntegrationMappingByIdHeaders.java index 74e1ab524..9acf3c0eb 100644 --- a/src/main/java/com/box/sdkgen/managers/integrationmappings/DeleteSlackIntegrationMappingByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/DeleteSlackIntegrationMappingByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteSlackIntegrationMappingByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteSlackIntegrationMappingByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/DeleteTeamsIntegrationMappingByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/DeleteTeamsIntegrationMappingByIdHeaders.java index 6b9485bd1..826740ac5 100644 --- a/src/main/java/com/box/sdkgen/managers/integrationmappings/DeleteTeamsIntegrationMappingByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/DeleteTeamsIntegrationMappingByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteTeamsIntegrationMappingByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteTeamsIntegrationMappingByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingHeaders.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingHeaders.java index d959e6be6..af10071ef 100644 --- a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingHeaders.java @@ -6,6 +6,7 @@ public class GetSlackIntegrationMappingHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetSlackIntegrationMappingHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingQueryParams.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingQueryParams.java index 89eaed09c..1a552ad64 100644 --- a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingQueryParams.java @@ -4,18 +4,30 @@ public class GetSlackIntegrationMappingQueryParams { + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; + /** Mapped item type, for which the mapping should be returned. */ public EnumWrapper partnerItemType; + /** ID of the mapped item, for which the mapping should be returned. */ public String partnerItemId; + /** Box item ID, for which the mappings should be returned. */ public String boxItemId; + /** Box item type, for which the mappings should be returned. */ public EnumWrapper boxItemType; + /** Whether the mapping has been manually created. */ public Boolean isManuallyCreated; public GetSlackIntegrationMappingQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingHeaders.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingHeaders.java index 98dc78121..fac24357a 100644 --- a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingHeaders.java @@ -6,6 +6,7 @@ public class GetTeamsIntegrationMappingHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetTeamsIntegrationMappingHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingQueryParams.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingQueryParams.java index 65d601ecd..0ae6cda7b 100644 --- a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingQueryParams.java @@ -4,12 +4,16 @@ public class GetTeamsIntegrationMappingQueryParams { + /** Mapped item type, for which the mapping should be returned. */ public EnumWrapper partnerItemType; + /** ID of the mapped item, for which the mapping should be returned. */ public String partnerItemId; + /** Box item ID, for which the mappings should be returned. */ public String boxItemId; + /** Box item type, for which the mappings should be returned. */ public EnumWrapper boxItemType; public GetTeamsIntegrationMappingQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/IntegrationMappingsManager.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/IntegrationMappingsManager.java index 73b6f1a20..43b3e1b8d 100644 --- a/src/main/java/com/box/sdkgen/managers/integrationmappings/IntegrationMappingsManager.java +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/IntegrationMappingsManager.java @@ -35,20 +35,55 @@ protected IntegrationMappingsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Lists [Slack integration + * mappings](https://support.box.com/hc/en-us/articles/4415585987859-Box-as-the-Content-Layer-for-Slack) + * in a users' enterprise. + * + *

    You need Admin or Co-Admin role to use this endpoint. + */ public IntegrationMappings getSlackIntegrationMapping() { return getSlackIntegrationMapping( new GetSlackIntegrationMappingQueryParams(), new GetSlackIntegrationMappingHeaders()); } + /** + * Lists [Slack integration + * mappings](https://support.box.com/hc/en-us/articles/4415585987859-Box-as-the-Content-Layer-for-Slack) + * in a users' enterprise. + * + *

    You need Admin or Co-Admin role to use this endpoint. + * + * @param queryParams Query parameters of getSlackIntegrationMapping method + */ public IntegrationMappings getSlackIntegrationMapping( GetSlackIntegrationMappingQueryParams queryParams) { return getSlackIntegrationMapping(queryParams, new GetSlackIntegrationMappingHeaders()); } + /** + * Lists [Slack integration + * mappings](https://support.box.com/hc/en-us/articles/4415585987859-Box-as-the-Content-Layer-for-Slack) + * in a users' enterprise. + * + *

    You need Admin or Co-Admin role to use this endpoint. + * + * @param headers Headers of getSlackIntegrationMapping method + */ public IntegrationMappings getSlackIntegrationMapping(GetSlackIntegrationMappingHeaders headers) { return getSlackIntegrationMapping(new GetSlackIntegrationMappingQueryParams(), headers); } + /** + * Lists [Slack integration + * mappings](https://support.box.com/hc/en-us/articles/4415585987859-Box-as-the-Content-Layer-for-Slack) + * in a users' enterprise. + * + *

    You need Admin or Co-Admin role to use this endpoint. + * + * @param queryParams Query parameters of getSlackIntegrationMapping method + * @param headers Headers of getSlackIntegrationMapping method + */ public IntegrationMappings getSlackIntegrationMapping( GetSlackIntegrationMappingQueryParams queryParams, GetSlackIntegrationMappingHeaders headers) { @@ -83,11 +118,30 @@ public IntegrationMappings getSlackIntegrationMapping( return JsonManager.deserialize(response.getData(), IntegrationMappings.class); } + /** + * Creates a [Slack integration + * mapping](https://support.box.com/hc/en-us/articles/4415585987859-Box-as-the-Content-Layer-for-Slack) + * by mapping a Slack channel to a Box item. + * + *

    You need Admin or Co-Admin role to use this endpoint. + * + * @param requestBody Request body of createSlackIntegrationMapping method + */ public IntegrationMapping createSlackIntegrationMapping( IntegrationMappingSlackCreateRequest requestBody) { return createSlackIntegrationMapping(requestBody, new CreateSlackIntegrationMappingHeaders()); } + /** + * Creates a [Slack integration + * mapping](https://support.box.com/hc/en-us/articles/4415585987859-Box-as-the-Content-Layer-for-Slack) + * by mapping a Slack channel to a Box item. + * + *

    You need Admin or Co-Admin role to use this endpoint. + * + * @param requestBody Request body of createSlackIntegrationMapping method + * @param headers Headers of createSlackIntegrationMapping method + */ public IntegrationMapping createSlackIntegrationMapping( IntegrationMappingSlackCreateRequest requestBody, CreateSlackIntegrationMappingHeaders headers) { @@ -112,6 +166,15 @@ public IntegrationMapping createSlackIntegrationMapping( return JsonManager.deserialize(response.getData(), IntegrationMapping.class); } + /** + * Updates a [Slack integration + * mapping](https://support.box.com/hc/en-us/articles/4415585987859-Box-as-the-Content-Layer-for-Slack). + * Supports updating the Box folder ID and options. + * + *

    You need Admin or Co-Admin role to use this endpoint. + * + * @param integrationMappingId An ID of an integration mapping. Example: "11235432" + */ public IntegrationMapping updateSlackIntegrationMappingById(String integrationMappingId) { return updateSlackIntegrationMappingById( integrationMappingId, @@ -119,18 +182,49 @@ public IntegrationMapping updateSlackIntegrationMappingById(String integrationMa new UpdateSlackIntegrationMappingByIdHeaders()); } + /** + * Updates a [Slack integration + * mapping](https://support.box.com/hc/en-us/articles/4415585987859-Box-as-the-Content-Layer-for-Slack). + * Supports updating the Box folder ID and options. + * + *

    You need Admin or Co-Admin role to use this endpoint. + * + * @param integrationMappingId An ID of an integration mapping. Example: "11235432" + * @param requestBody Request body of updateSlackIntegrationMappingById method + */ public IntegrationMapping updateSlackIntegrationMappingById( String integrationMappingId, UpdateSlackIntegrationMappingByIdRequestBody requestBody) { return updateSlackIntegrationMappingById( integrationMappingId, requestBody, new UpdateSlackIntegrationMappingByIdHeaders()); } + /** + * Updates a [Slack integration + * mapping](https://support.box.com/hc/en-us/articles/4415585987859-Box-as-the-Content-Layer-for-Slack). + * Supports updating the Box folder ID and options. + * + *

    You need Admin or Co-Admin role to use this endpoint. + * + * @param integrationMappingId An ID of an integration mapping. Example: "11235432" + * @param headers Headers of updateSlackIntegrationMappingById method + */ public IntegrationMapping updateSlackIntegrationMappingById( String integrationMappingId, UpdateSlackIntegrationMappingByIdHeaders headers) { return updateSlackIntegrationMappingById( integrationMappingId, new UpdateSlackIntegrationMappingByIdRequestBody(), headers); } + /** + * Updates a [Slack integration + * mapping](https://support.box.com/hc/en-us/articles/4415585987859-Box-as-the-Content-Layer-for-Slack). + * Supports updating the Box folder ID and options. + * + *

    You need Admin or Co-Admin role to use this endpoint. + * + * @param integrationMappingId An ID of an integration mapping. Example: "11235432" + * @param requestBody Request body of updateSlackIntegrationMappingById method + * @param headers Headers of updateSlackIntegrationMappingById method + */ public IntegrationMapping updateSlackIntegrationMappingById( String integrationMappingId, UpdateSlackIntegrationMappingByIdRequestBody requestBody, @@ -157,11 +251,28 @@ public IntegrationMapping updateSlackIntegrationMappingById( return JsonManager.deserialize(response.getData(), IntegrationMapping.class); } + /** + * Deletes a [Slack integration + * mapping](https://support.box.com/hc/en-us/articles/4415585987859-Box-as-the-Content-Layer-for-Slack). + * + *

    You need Admin or Co-Admin role to use this endpoint. + * + * @param integrationMappingId An ID of an integration mapping. Example: "11235432" + */ public void deleteSlackIntegrationMappingById(String integrationMappingId) { deleteSlackIntegrationMappingById( integrationMappingId, new DeleteSlackIntegrationMappingByIdHeaders()); } + /** + * Deletes a [Slack integration + * mapping](https://support.box.com/hc/en-us/articles/4415585987859-Box-as-the-Content-Layer-for-Slack). + * + *

    You need Admin or Co-Admin role to use this endpoint. + * + * @param integrationMappingId An ID of an integration mapping. Example: "11235432" + * @param headers Headers of deleteSlackIntegrationMappingById method + */ public void deleteSlackIntegrationMappingById( String integrationMappingId, DeleteSlackIntegrationMappingByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -183,21 +294,48 @@ public void deleteSlackIntegrationMappingById( .build()); } + /** + * Lists [Teams integration + * mappings](https://support.box.com/hc/en-us/articles/360044681474-Using-Box-for-Teams) in a + * users' enterprise. You need Admin or Co-Admin role to use this endpoint. + */ public IntegrationMappingsTeams getTeamsIntegrationMapping() { return getTeamsIntegrationMapping( new GetTeamsIntegrationMappingQueryParams(), new GetTeamsIntegrationMappingHeaders()); } + /** + * Lists [Teams integration + * mappings](https://support.box.com/hc/en-us/articles/360044681474-Using-Box-for-Teams) in a + * users' enterprise. You need Admin or Co-Admin role to use this endpoint. + * + * @param queryParams Query parameters of getTeamsIntegrationMapping method + */ public IntegrationMappingsTeams getTeamsIntegrationMapping( GetTeamsIntegrationMappingQueryParams queryParams) { return getTeamsIntegrationMapping(queryParams, new GetTeamsIntegrationMappingHeaders()); } + /** + * Lists [Teams integration + * mappings](https://support.box.com/hc/en-us/articles/360044681474-Using-Box-for-Teams) in a + * users' enterprise. You need Admin or Co-Admin role to use this endpoint. + * + * @param headers Headers of getTeamsIntegrationMapping method + */ public IntegrationMappingsTeams getTeamsIntegrationMapping( GetTeamsIntegrationMappingHeaders headers) { return getTeamsIntegrationMapping(new GetTeamsIntegrationMappingQueryParams(), headers); } + /** + * Lists [Teams integration + * mappings](https://support.box.com/hc/en-us/articles/360044681474-Using-Box-for-Teams) in a + * users' enterprise. You need Admin or Co-Admin role to use this endpoint. + * + * @param queryParams Query parameters of getTeamsIntegrationMapping method + * @param headers Headers of getTeamsIntegrationMapping method + */ public IntegrationMappingsTeams getTeamsIntegrationMapping( GetTeamsIntegrationMappingQueryParams queryParams, GetTeamsIntegrationMappingHeaders headers) { @@ -228,11 +366,26 @@ public IntegrationMappingsTeams getTeamsIntegrationMapping( return JsonManager.deserialize(response.getData(), IntegrationMappingsTeams.class); } + /** + * Creates a [Teams integration + * mapping](https://support.box.com/hc/en-us/articles/360044681474-Using-Box-for-Teams) by mapping + * a Teams channel to a Box item. You need Admin or Co-Admin role to use this endpoint. + * + * @param requestBody Request body of createTeamsIntegrationMapping method + */ public IntegrationMappingTeams createTeamsIntegrationMapping( IntegrationMappingTeamsCreateRequest requestBody) { return createTeamsIntegrationMapping(requestBody, new CreateTeamsIntegrationMappingHeaders()); } + /** + * Creates a [Teams integration + * mapping](https://support.box.com/hc/en-us/articles/360044681474-Using-Box-for-Teams) by mapping + * a Teams channel to a Box item. You need Admin or Co-Admin role to use this endpoint. + * + * @param requestBody Request body of createTeamsIntegrationMapping method + * @param headers Headers of createTeamsIntegrationMapping method + */ public IntegrationMappingTeams createTeamsIntegrationMapping( IntegrationMappingTeamsCreateRequest requestBody, CreateTeamsIntegrationMappingHeaders headers) { @@ -257,6 +410,13 @@ public IntegrationMappingTeams createTeamsIntegrationMapping( return JsonManager.deserialize(response.getData(), IntegrationMappingTeams.class); } + /** + * Updates a [Teams integration + * mapping](https://support.box.com/hc/en-us/articles/360044681474-Using-Box-for-Teams). Supports + * updating the Box folder ID and options. You need Admin or Co-Admin role to use this endpoint. + * + * @param integrationMappingId An ID of an integration mapping. Example: "11235432" + */ public IntegrationMappingTeams updateTeamsIntegrationMappingById(String integrationMappingId) { return updateTeamsIntegrationMappingById( integrationMappingId, @@ -264,18 +424,43 @@ public IntegrationMappingTeams updateTeamsIntegrationMappingById(String integrat new UpdateTeamsIntegrationMappingByIdHeaders()); } + /** + * Updates a [Teams integration + * mapping](https://support.box.com/hc/en-us/articles/360044681474-Using-Box-for-Teams). Supports + * updating the Box folder ID and options. You need Admin or Co-Admin role to use this endpoint. + * + * @param integrationMappingId An ID of an integration mapping. Example: "11235432" + * @param requestBody Request body of updateTeamsIntegrationMappingById method + */ public IntegrationMappingTeams updateTeamsIntegrationMappingById( String integrationMappingId, UpdateTeamsIntegrationMappingByIdRequestBody requestBody) { return updateTeamsIntegrationMappingById( integrationMappingId, requestBody, new UpdateTeamsIntegrationMappingByIdHeaders()); } + /** + * Updates a [Teams integration + * mapping](https://support.box.com/hc/en-us/articles/360044681474-Using-Box-for-Teams). Supports + * updating the Box folder ID and options. You need Admin or Co-Admin role to use this endpoint. + * + * @param integrationMappingId An ID of an integration mapping. Example: "11235432" + * @param headers Headers of updateTeamsIntegrationMappingById method + */ public IntegrationMappingTeams updateTeamsIntegrationMappingById( String integrationMappingId, UpdateTeamsIntegrationMappingByIdHeaders headers) { return updateTeamsIntegrationMappingById( integrationMappingId, new UpdateTeamsIntegrationMappingByIdRequestBody(), headers); } + /** + * Updates a [Teams integration + * mapping](https://support.box.com/hc/en-us/articles/360044681474-Using-Box-for-Teams). Supports + * updating the Box folder ID and options. You need Admin or Co-Admin role to use this endpoint. + * + * @param integrationMappingId An ID of an integration mapping. Example: "11235432" + * @param requestBody Request body of updateTeamsIntegrationMappingById method + * @param headers Headers of updateTeamsIntegrationMappingById method + */ public IntegrationMappingTeams updateTeamsIntegrationMappingById( String integrationMappingId, UpdateTeamsIntegrationMappingByIdRequestBody requestBody, @@ -302,11 +487,26 @@ public IntegrationMappingTeams updateTeamsIntegrationMappingById( return JsonManager.deserialize(response.getData(), IntegrationMappingTeams.class); } + /** + * Deletes a [Teams integration + * mapping](https://support.box.com/hc/en-us/articles/360044681474-Using-Box-for-Teams). You need + * Admin or Co-Admin role to use this endpoint. + * + * @param integrationMappingId An ID of an integration mapping. Example: "11235432" + */ public void deleteTeamsIntegrationMappingById(String integrationMappingId) { deleteTeamsIntegrationMappingById( integrationMappingId, new DeleteTeamsIntegrationMappingByIdHeaders()); } + /** + * Deletes a [Teams integration + * mapping](https://support.box.com/hc/en-us/articles/360044681474-Using-Box-for-Teams). You need + * Admin or Co-Admin role to use this endpoint. + * + * @param integrationMappingId An ID of an integration mapping. Example: "11235432" + * @param headers Headers of deleteTeamsIntegrationMappingById method + */ public void deleteTeamsIntegrationMappingById( String integrationMappingId, DeleteTeamsIntegrationMappingByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateSlackIntegrationMappingByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateSlackIntegrationMappingByIdHeaders.java index c7af60a4d..870bf9185 100644 --- a/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateSlackIntegrationMappingByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateSlackIntegrationMappingByIdHeaders.java @@ -6,6 +6,7 @@ public class UpdateSlackIntegrationMappingByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateSlackIntegrationMappingByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateTeamsIntegrationMappingByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateTeamsIntegrationMappingByIdHeaders.java index 6da39d4c2..f565ae91d 100644 --- a/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateTeamsIntegrationMappingByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateTeamsIntegrationMappingByIdHeaders.java @@ -6,6 +6,7 @@ public class UpdateTeamsIntegrationMappingByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateTeamsIntegrationMappingByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/invites/CreateInviteHeaders.java b/src/main/java/com/box/sdkgen/managers/invites/CreateInviteHeaders.java index 41ca6ff40..e0030d520 100644 --- a/src/main/java/com/box/sdkgen/managers/invites/CreateInviteHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/invites/CreateInviteHeaders.java @@ -6,6 +6,7 @@ public class CreateInviteHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateInviteHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/invites/CreateInviteQueryParams.java b/src/main/java/com/box/sdkgen/managers/invites/CreateInviteQueryParams.java index 9065c9b6b..e39a221de 100644 --- a/src/main/java/com/box/sdkgen/managers/invites/CreateInviteQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/invites/CreateInviteQueryParams.java @@ -4,6 +4,14 @@ public class CreateInviteQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public CreateInviteQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/invites/CreateInviteRequestBody.java b/src/main/java/com/box/sdkgen/managers/invites/CreateInviteRequestBody.java index cc9fb573f..1cdda2a70 100644 --- a/src/main/java/com/box/sdkgen/managers/invites/CreateInviteRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/invites/CreateInviteRequestBody.java @@ -8,8 +8,10 @@ @JsonFilter("nullablePropertyFilter") public class CreateInviteRequestBody extends SerializableObject { + /** The enterprise to invite the user to. */ protected final CreateInviteRequestBodyEnterpriseField enterprise; + /** The user to invite. */ @JsonProperty("actionable_by") protected final CreateInviteRequestBodyActionableByField actionableBy; diff --git a/src/main/java/com/box/sdkgen/managers/invites/CreateInviteRequestBodyActionableByField.java b/src/main/java/com/box/sdkgen/managers/invites/CreateInviteRequestBodyActionableByField.java index 5d9b1a2ad..aa1040c15 100644 --- a/src/main/java/com/box/sdkgen/managers/invites/CreateInviteRequestBodyActionableByField.java +++ b/src/main/java/com/box/sdkgen/managers/invites/CreateInviteRequestBodyActionableByField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class CreateInviteRequestBodyActionableByField extends SerializableObject { + /** The login of the invited user. */ protected String login; public CreateInviteRequestBodyActionableByField() { diff --git a/src/main/java/com/box/sdkgen/managers/invites/CreateInviteRequestBodyEnterpriseField.java b/src/main/java/com/box/sdkgen/managers/invites/CreateInviteRequestBodyEnterpriseField.java index 30e10879c..d23981b1f 100644 --- a/src/main/java/com/box/sdkgen/managers/invites/CreateInviteRequestBodyEnterpriseField.java +++ b/src/main/java/com/box/sdkgen/managers/invites/CreateInviteRequestBodyEnterpriseField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class CreateInviteRequestBodyEnterpriseField extends SerializableObject { + /** The ID of the enterprise. */ protected final String id; public CreateInviteRequestBodyEnterpriseField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/managers/invites/GetInviteByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/invites/GetInviteByIdHeaders.java index cb033302d..a92d3234a 100644 --- a/src/main/java/com/box/sdkgen/managers/invites/GetInviteByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/invites/GetInviteByIdHeaders.java @@ -6,6 +6,7 @@ public class GetInviteByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetInviteByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/invites/GetInviteByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/invites/GetInviteByIdQueryParams.java index f331a7b1d..c24da704e 100644 --- a/src/main/java/com/box/sdkgen/managers/invites/GetInviteByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/invites/GetInviteByIdQueryParams.java @@ -4,6 +4,14 @@ public class GetInviteByIdQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public GetInviteByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/invites/InvitesManager.java b/src/main/java/com/box/sdkgen/managers/invites/InvitesManager.java index 6d02b77cd..c9c2ed485 100644 --- a/src/main/java/com/box/sdkgen/managers/invites/InvitesManager.java +++ b/src/main/java/com/box/sdkgen/managers/invites/InvitesManager.java @@ -30,19 +30,71 @@ protected InvitesManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Invites an existing external user to join an enterprise. + * + *

    The existing user can not be part of another enterprise and must already have a Box account. + * Once invited, the user will receive an email and are prompted to accept the invitation within + * the Box web application. + * + *

    This method requires the "Manage An Enterprise" scope enabled for the application, which can + * be enabled within the developer console. + * + * @param requestBody Request body of createInvite method + */ public Invite createInvite(CreateInviteRequestBody requestBody) { return createInvite(requestBody, new CreateInviteQueryParams(), new CreateInviteHeaders()); } + /** + * Invites an existing external user to join an enterprise. + * + *

    The existing user can not be part of another enterprise and must already have a Box account. + * Once invited, the user will receive an email and are prompted to accept the invitation within + * the Box web application. + * + *

    This method requires the "Manage An Enterprise" scope enabled for the application, which can + * be enabled within the developer console. + * + * @param requestBody Request body of createInvite method + * @param queryParams Query parameters of createInvite method + */ public Invite createInvite( CreateInviteRequestBody requestBody, CreateInviteQueryParams queryParams) { return createInvite(requestBody, queryParams, new CreateInviteHeaders()); } + /** + * Invites an existing external user to join an enterprise. + * + *

    The existing user can not be part of another enterprise and must already have a Box account. + * Once invited, the user will receive an email and are prompted to accept the invitation within + * the Box web application. + * + *

    This method requires the "Manage An Enterprise" scope enabled for the application, which can + * be enabled within the developer console. + * + * @param requestBody Request body of createInvite method + * @param headers Headers of createInvite method + */ public Invite createInvite(CreateInviteRequestBody requestBody, CreateInviteHeaders headers) { return createInvite(requestBody, new CreateInviteQueryParams(), headers); } + /** + * Invites an existing external user to join an enterprise. + * + *

    The existing user can not be part of another enterprise and must already have a Box account. + * Once invited, the user will receive an email and are prompted to accept the invitation within + * the Box web application. + * + *

    This method requires the "Manage An Enterprise" scope enabled for the application, which can + * be enabled within the developer console. + * + * @param requestBody Request body of createInvite method + * @param queryParams Query parameters of createInvite method + * @param headers Headers of createInvite method + */ public Invite createInvite( CreateInviteRequestBody requestBody, CreateInviteQueryParams queryParams, @@ -69,18 +121,42 @@ public Invite createInvite( return JsonManager.deserialize(response.getData(), Invite.class); } + /** + * Returns the status of a user invite. + * + * @param inviteId The ID of an invite. Example: "213723" + */ public Invite getInviteById(String inviteId) { return getInviteById(inviteId, new GetInviteByIdQueryParams(), new GetInviteByIdHeaders()); } + /** + * Returns the status of a user invite. + * + * @param inviteId The ID of an invite. Example: "213723" + * @param queryParams Query parameters of getInviteById method + */ public Invite getInviteById(String inviteId, GetInviteByIdQueryParams queryParams) { return getInviteById(inviteId, queryParams, new GetInviteByIdHeaders()); } + /** + * Returns the status of a user invite. + * + * @param inviteId The ID of an invite. Example: "213723" + * @param headers Headers of getInviteById method + */ public Invite getInviteById(String inviteId, GetInviteByIdHeaders headers) { return getInviteById(inviteId, new GetInviteByIdQueryParams(), headers); } + /** + * Returns the status of a user invite. + * + * @param inviteId The ID of an invite. Example: "213723" + * @param queryParams Query parameters of getInviteById method + * @param headers Headers of getInviteById method + */ public Invite getInviteById( String inviteId, GetInviteByIdQueryParams queryParams, GetInviteByIdHeaders headers) { Map queryParamsMap = diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/CreateLegalHoldPolicyHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/CreateLegalHoldPolicyHeaders.java index bac833a6f..fcf5293e3 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/CreateLegalHoldPolicyHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/CreateLegalHoldPolicyHeaders.java @@ -6,6 +6,7 @@ public class CreateLegalHoldPolicyHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateLegalHoldPolicyHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/CreateLegalHoldPolicyRequestBody.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/CreateLegalHoldPolicyRequestBody.java index 8937a2f54..df0f0dfa5 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/CreateLegalHoldPolicyRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/CreateLegalHoldPolicyRequestBody.java @@ -13,21 +13,53 @@ @JsonFilter("nullablePropertyFilter") public class CreateLegalHoldPolicyRequestBody extends SerializableObject { + /** The name of the policy. */ @JsonProperty("policy_name") protected final String policyName; + /** A description for the policy. */ protected String description; + /** + * The filter start date. + * + *

    When this policy is applied using a `custodian` legal hold assignments, it will only apply + * to file versions created or uploaded inside of the date range. Other assignment types, such as + * folders and files, will ignore the date filter. + * + *

    Required if `is_ongoing` is set to `false`. + */ @JsonProperty("filter_started_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime filterStartedAt; + /** + * The filter end date. + * + *

    When this policy is applied using a `custodian` legal hold assignments, it will only apply + * to file versions created or uploaded inside of the date range. Other assignment types, such as + * folders and files, will ignore the date filter. + * + *

    Required if `is_ongoing` is set to `false`. + */ @JsonProperty("filter_ended_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime filterEndedAt; + /** + * Whether new assignments under this policy should continue applying to files even after + * initialization. + * + *

    When this policy is applied using a legal hold assignment, it will continue applying the + * policy to any new file versions even after it has been applied. + * + *

    For example, if a legal hold assignment is placed on a user today, and that user uploads a + * file tomorrow, that file will get held. This will continue until the policy is retired. + * + *

    Required if no filter dates are set. + */ @JsonProperty("is_ongoing") protected Boolean isOngoing; diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/DeleteLegalHoldPolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/DeleteLegalHoldPolicyByIdHeaders.java index dec2b6029..911089e1c 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/DeleteLegalHoldPolicyByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/DeleteLegalHoldPolicyByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteLegalHoldPolicyByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteLegalHoldPolicyByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPoliciesHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPoliciesHeaders.java index 871faa5a6..6b9b86091 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPoliciesHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPoliciesHeaders.java @@ -6,6 +6,7 @@ public class GetLegalHoldPoliciesHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetLegalHoldPoliciesHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPoliciesQueryParams.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPoliciesQueryParams.java index b42a7068f..2f48cf792 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPoliciesQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPoliciesQueryParams.java @@ -4,12 +4,31 @@ public class GetLegalHoldPoliciesQueryParams { + /** + * Limits results to policies for which the names start with this search term. This is a + * case-insensitive prefix. + */ public String policyName; + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetLegalHoldPoliciesQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPolicyByIdHeaders.java index 8ba860378..365f84e49 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPolicyByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPolicyByIdHeaders.java @@ -6,6 +6,7 @@ public class GetLegalHoldPolicyByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetLegalHoldPolicyByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/LegalHoldPoliciesManager.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/LegalHoldPoliciesManager.java index cfa266596..4bc199b3e 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/LegalHoldPoliciesManager.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/LegalHoldPoliciesManager.java @@ -31,19 +31,36 @@ protected LegalHoldPoliciesManager(Builder builder) { this.networkSession = builder.networkSession; } + /** Retrieves a list of legal hold policies that belong to an enterprise. */ public LegalHoldPolicies getLegalHoldPolicies() { return getLegalHoldPolicies( new GetLegalHoldPoliciesQueryParams(), new GetLegalHoldPoliciesHeaders()); } + /** + * Retrieves a list of legal hold policies that belong to an enterprise. + * + * @param queryParams Query parameters of getLegalHoldPolicies method + */ public LegalHoldPolicies getLegalHoldPolicies(GetLegalHoldPoliciesQueryParams queryParams) { return getLegalHoldPolicies(queryParams, new GetLegalHoldPoliciesHeaders()); } + /** + * Retrieves a list of legal hold policies that belong to an enterprise. + * + * @param headers Headers of getLegalHoldPolicies method + */ public LegalHoldPolicies getLegalHoldPolicies(GetLegalHoldPoliciesHeaders headers) { return getLegalHoldPolicies(new GetLegalHoldPoliciesQueryParams(), headers); } + /** + * Retrieves a list of legal hold policies that belong to an enterprise. + * + * @param queryParams Query parameters of getLegalHoldPolicies method + * @param headers Headers of getLegalHoldPolicies method + */ public LegalHoldPolicies getLegalHoldPolicies( GetLegalHoldPoliciesQueryParams queryParams, GetLegalHoldPoliciesHeaders headers) { Map queryParamsMap = @@ -73,10 +90,21 @@ public LegalHoldPolicies getLegalHoldPolicies( return JsonManager.deserialize(response.getData(), LegalHoldPolicies.class); } + /** + * Create a new legal hold policy. + * + * @param requestBody Request body of createLegalHoldPolicy method + */ public LegalHoldPolicy createLegalHoldPolicy(CreateLegalHoldPolicyRequestBody requestBody) { return createLegalHoldPolicy(requestBody, new CreateLegalHoldPolicyHeaders()); } + /** + * Create a new legal hold policy. + * + * @param requestBody Request body of createLegalHoldPolicy method + * @param headers Headers of createLegalHoldPolicy method + */ public LegalHoldPolicy createLegalHoldPolicy( CreateLegalHoldPolicyRequestBody requestBody, CreateLegalHoldPolicyHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -100,10 +128,21 @@ public LegalHoldPolicy createLegalHoldPolicy( return JsonManager.deserialize(response.getData(), LegalHoldPolicy.class); } + /** + * Retrieve a legal hold policy. + * + * @param legalHoldPolicyId The ID of the legal hold policy. Example: "324432" + */ public LegalHoldPolicy getLegalHoldPolicyById(String legalHoldPolicyId) { return getLegalHoldPolicyById(legalHoldPolicyId, new GetLegalHoldPolicyByIdHeaders()); } + /** + * Retrieve a legal hold policy. + * + * @param legalHoldPolicyId The ID of the legal hold policy. Example: "324432" + * @param headers Headers of getLegalHoldPolicyById method + */ public LegalHoldPolicy getLegalHoldPolicyById( String legalHoldPolicyId, GetLegalHoldPolicyByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -126,6 +165,11 @@ public LegalHoldPolicy getLegalHoldPolicyById( return JsonManager.deserialize(response.getData(), LegalHoldPolicy.class); } + /** + * Update legal hold policy. + * + * @param legalHoldPolicyId The ID of the legal hold policy. Example: "324432" + */ public LegalHoldPolicy updateLegalHoldPolicyById(String legalHoldPolicyId) { return updateLegalHoldPolicyById( legalHoldPolicyId, @@ -133,18 +177,37 @@ public LegalHoldPolicy updateLegalHoldPolicyById(String legalHoldPolicyId) { new UpdateLegalHoldPolicyByIdHeaders()); } + /** + * Update legal hold policy. + * + * @param legalHoldPolicyId The ID of the legal hold policy. Example: "324432" + * @param requestBody Request body of updateLegalHoldPolicyById method + */ public LegalHoldPolicy updateLegalHoldPolicyById( String legalHoldPolicyId, UpdateLegalHoldPolicyByIdRequestBody requestBody) { return updateLegalHoldPolicyById( legalHoldPolicyId, requestBody, new UpdateLegalHoldPolicyByIdHeaders()); } + /** + * Update legal hold policy. + * + * @param legalHoldPolicyId The ID of the legal hold policy. Example: "324432" + * @param headers Headers of updateLegalHoldPolicyById method + */ public LegalHoldPolicy updateLegalHoldPolicyById( String legalHoldPolicyId, UpdateLegalHoldPolicyByIdHeaders headers) { return updateLegalHoldPolicyById( legalHoldPolicyId, new UpdateLegalHoldPolicyByIdRequestBody(), headers); } + /** + * Update legal hold policy. + * + * @param legalHoldPolicyId The ID of the legal hold policy. Example: "324432" + * @param requestBody Request body of updateLegalHoldPolicyById method + * @param headers Headers of updateLegalHoldPolicyById method + */ public LegalHoldPolicy updateLegalHoldPolicyById( String legalHoldPolicyId, UpdateLegalHoldPolicyByIdRequestBody requestBody, @@ -171,10 +234,27 @@ public LegalHoldPolicy updateLegalHoldPolicyById( return JsonManager.deserialize(response.getData(), LegalHoldPolicy.class); } + /** + * Delete an existing legal hold policy. + * + *

    This is an asynchronous process. The policy will not be fully deleted yet when the response + * returns. + * + * @param legalHoldPolicyId The ID of the legal hold policy. Example: "324432" + */ public void deleteLegalHoldPolicyById(String legalHoldPolicyId) { deleteLegalHoldPolicyById(legalHoldPolicyId, new DeleteLegalHoldPolicyByIdHeaders()); } + /** + * Delete an existing legal hold policy. + * + *

    This is an asynchronous process. The policy will not be fully deleted yet when the response + * returns. + * + * @param legalHoldPolicyId The ID of the legal hold policy. Example: "324432" + * @param headers Headers of deleteLegalHoldPolicyById method + */ public void deleteLegalHoldPolicyById( String legalHoldPolicyId, DeleteLegalHoldPolicyByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/UpdateLegalHoldPolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/UpdateLegalHoldPolicyByIdHeaders.java index 3afaed56f..c052cfe80 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/UpdateLegalHoldPolicyByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/UpdateLegalHoldPolicyByIdHeaders.java @@ -6,6 +6,7 @@ public class UpdateLegalHoldPolicyByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateLegalHoldPolicyByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/UpdateLegalHoldPolicyByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/UpdateLegalHoldPolicyByIdRequestBody.java index 2b5cf8093..6c24152b7 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/UpdateLegalHoldPolicyByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/UpdateLegalHoldPolicyByIdRequestBody.java @@ -9,11 +9,14 @@ @JsonFilter("nullablePropertyFilter") public class UpdateLegalHoldPolicyByIdRequestBody extends SerializableObject { + /** The name of the policy. */ @JsonProperty("policy_name") protected String policyName; + /** A description for the policy. */ protected String description; + /** Notes around why the policy was released. */ @JsonProperty("release_notes") protected String releaseNotes; diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentHeaders.java index bcc1dadc4..0283d7e62 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentHeaders.java @@ -6,6 +6,7 @@ public class CreateLegalHoldPolicyAssignmentHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateLegalHoldPolicyAssignmentHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBody.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBody.java index 3fa2843cf..e68601bb6 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBody.java @@ -8,9 +8,11 @@ @JsonFilter("nullablePropertyFilter") public class CreateLegalHoldPolicyAssignmentRequestBody extends SerializableObject { + /** The ID of the policy to assign. */ @JsonProperty("policy_id") protected final String policyId; + /** The item to assign the policy to. */ @JsonProperty("assign_to") protected final CreateLegalHoldPolicyAssignmentRequestBodyAssignToField assignTo; diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBodyAssignToField.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBodyAssignToField.java index e51ee3bcd..a315759fe 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBodyAssignToField.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBodyAssignToField.java @@ -11,6 +11,7 @@ @JsonFilter("nullablePropertyFilter") public class CreateLegalHoldPolicyAssignmentRequestBodyAssignToField extends SerializableObject { + /** The type of item to assign the policy to. */ @JsonDeserialize( using = CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeField @@ -21,6 +22,7 @@ public class CreateLegalHoldPolicyAssignmentRequestBodyAssignToField extends Ser .CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeFieldSerializer.class) protected final EnumWrapper type; + /** The ID of item to assign the policy to. */ protected final String id; public CreateLegalHoldPolicyAssignmentRequestBodyAssignToField( diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/DeleteLegalHoldPolicyAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/DeleteLegalHoldPolicyAssignmentByIdHeaders.java index 3fce1637e..2498eab0c 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/DeleteLegalHoldPolicyAssignmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/DeleteLegalHoldPolicyAssignmentByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteLegalHoldPolicyAssignmentByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteLegalHoldPolicyAssignmentByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentByIdHeaders.java index 634d3ff39..582b2da98 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentByIdHeaders.java @@ -6,6 +6,7 @@ public class GetLegalHoldPolicyAssignmentByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetLegalHoldPolicyAssignmentByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentFileOnHoldHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentFileOnHoldHeaders.java index 3a4f6ab67..eb938718f 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentFileOnHoldHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentFileOnHoldHeaders.java @@ -6,6 +6,7 @@ public class GetLegalHoldPolicyAssignmentFileOnHoldHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetLegalHoldPolicyAssignmentFileOnHoldHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentFileOnHoldQueryParams.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentFileOnHoldQueryParams.java index db06da2aa..6bcf0b98f 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentFileOnHoldQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentFileOnHoldQueryParams.java @@ -4,10 +4,25 @@ public class GetLegalHoldPolicyAssignmentFileOnHoldQueryParams { + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public GetLegalHoldPolicyAssignmentFileOnHoldQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsHeaders.java index 40a640fcf..852dd391e 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsHeaders.java @@ -6,6 +6,7 @@ public class GetLegalHoldPolicyAssignmentsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetLegalHoldPolicyAssignmentsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsQueryParams.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsQueryParams.java index c050c0938..09a92bb29 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsQueryParams.java @@ -5,16 +5,34 @@ public class GetLegalHoldPolicyAssignmentsQueryParams { + /** The ID of the legal hold policy. */ public final String policyId; + /** Filters the results by the type of item the policy was applied to. */ public EnumWrapper assignToType; + /** Filters the results by the ID of item the policy was applied to. */ public String assignToId; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public GetLegalHoldPolicyAssignmentsQueryParams(String policyId) { diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/LegalHoldPolicyAssignmentsManager.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/LegalHoldPolicyAssignmentsManager.java index 07b5df3a6..23f6368f3 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/LegalHoldPolicyAssignmentsManager.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/LegalHoldPolicyAssignmentsManager.java @@ -32,11 +32,22 @@ protected LegalHoldPolicyAssignmentsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves a list of items a legal hold policy has been assigned to. + * + * @param queryParams Query parameters of getLegalHoldPolicyAssignments method + */ public LegalHoldPolicyAssignments getLegalHoldPolicyAssignments( GetLegalHoldPolicyAssignmentsQueryParams queryParams) { return getLegalHoldPolicyAssignments(queryParams, new GetLegalHoldPolicyAssignmentsHeaders()); } + /** + * Retrieves a list of items a legal hold policy has been assigned to. + * + * @param queryParams Query parameters of getLegalHoldPolicyAssignments method + * @param headers Headers of getLegalHoldPolicyAssignments method + */ public LegalHoldPolicyAssignments getLegalHoldPolicyAssignments( GetLegalHoldPolicyAssignmentsQueryParams queryParams, GetLegalHoldPolicyAssignmentsHeaders headers) { @@ -69,12 +80,23 @@ public LegalHoldPolicyAssignments getLegalHoldPolicyAssignments( return JsonManager.deserialize(response.getData(), LegalHoldPolicyAssignments.class); } + /** + * Assign a legal hold to a file, file version, folder, or user. + * + * @param requestBody Request body of createLegalHoldPolicyAssignment method + */ public LegalHoldPolicyAssignment createLegalHoldPolicyAssignment( CreateLegalHoldPolicyAssignmentRequestBody requestBody) { return createLegalHoldPolicyAssignment( requestBody, new CreateLegalHoldPolicyAssignmentHeaders()); } + /** + * Assign a legal hold to a file, file version, folder, or user. + * + * @param requestBody Request body of createLegalHoldPolicyAssignment method + * @param headers Headers of createLegalHoldPolicyAssignment method + */ public LegalHoldPolicyAssignment createLegalHoldPolicyAssignment( CreateLegalHoldPolicyAssignmentRequestBody requestBody, CreateLegalHoldPolicyAssignmentHeaders headers) { @@ -99,12 +121,25 @@ public LegalHoldPolicyAssignment createLegalHoldPolicyAssignment( return JsonManager.deserialize(response.getData(), LegalHoldPolicyAssignment.class); } + /** + * Retrieve a legal hold policy assignment. + * + * @param legalHoldPolicyAssignmentId The ID of the legal hold policy assignment. Example: + * "753465" + */ public LegalHoldPolicyAssignment getLegalHoldPolicyAssignmentById( String legalHoldPolicyAssignmentId) { return getLegalHoldPolicyAssignmentById( legalHoldPolicyAssignmentId, new GetLegalHoldPolicyAssignmentByIdHeaders()); } + /** + * Retrieve a legal hold policy assignment. + * + * @param legalHoldPolicyAssignmentId The ID of the legal hold policy assignment. Example: + * "753465" + * @param headers Headers of getLegalHoldPolicyAssignmentById method + */ public LegalHoldPolicyAssignment getLegalHoldPolicyAssignmentById( String legalHoldPolicyAssignmentId, GetLegalHoldPolicyAssignmentByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -127,11 +162,30 @@ public LegalHoldPolicyAssignment getLegalHoldPolicyAssignmentById( return JsonManager.deserialize(response.getData(), LegalHoldPolicyAssignment.class); } + /** + * Remove a legal hold from an item. + * + *

    This is an asynchronous process. The policy will not be fully removed yet when the response + * returns. + * + * @param legalHoldPolicyAssignmentId The ID of the legal hold policy assignment. Example: + * "753465" + */ public void deleteLegalHoldPolicyAssignmentById(String legalHoldPolicyAssignmentId) { deleteLegalHoldPolicyAssignmentById( legalHoldPolicyAssignmentId, new DeleteLegalHoldPolicyAssignmentByIdHeaders()); } + /** + * Remove a legal hold from an item. + * + *

    This is an asynchronous process. The policy will not be fully removed yet when the response + * returns. + * + * @param legalHoldPolicyAssignmentId The ID of the legal hold policy assignment. Example: + * "753465" + * @param headers Headers of deleteLegalHoldPolicyAssignmentById method + */ public void deleteLegalHoldPolicyAssignmentById( String legalHoldPolicyAssignmentId, DeleteLegalHoldPolicyAssignmentByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -153,6 +207,27 @@ public void deleteLegalHoldPolicyAssignmentById( .build()); } + /** + * Get a list of files with current file versions for a legal hold assignment. + * + *

    In some cases you may want to get previous file versions instead. In these cases, use the + * `GET /legal_hold_policy_assignments/:id/file_versions_on_hold` API instead to return any + * previous versions of a file for this legal hold policy assignment. + * + *

    Due to ongoing re-architecture efforts this API might not return all file versions held for + * this policy ID. Instead, this API will only return the latest file version held in the newly + * developed architecture. The `GET /file_version_legal_holds` API can be used to fetch current + * and past versions of files held within the legacy architecture. + * + *

    This endpoint does not support returning any content that is on hold due to a Custodian + * collaborating on a Hub. + * + *

    The `GET /legal_hold_policy_assignments?policy_id={id}` API can be used to find a list of + * policy assignments for a given policy ID. + * + * @param legalHoldPolicyAssignmentId The ID of the legal hold policy assignment. Example: + * "753465" + */ public FilesOnHold getLegalHoldPolicyAssignmentFileOnHold(String legalHoldPolicyAssignmentId) { return getLegalHoldPolicyAssignmentFileOnHold( legalHoldPolicyAssignmentId, @@ -160,6 +235,28 @@ public FilesOnHold getLegalHoldPolicyAssignmentFileOnHold(String legalHoldPolicy new GetLegalHoldPolicyAssignmentFileOnHoldHeaders()); } + /** + * Get a list of files with current file versions for a legal hold assignment. + * + *

    In some cases you may want to get previous file versions instead. In these cases, use the + * `GET /legal_hold_policy_assignments/:id/file_versions_on_hold` API instead to return any + * previous versions of a file for this legal hold policy assignment. + * + *

    Due to ongoing re-architecture efforts this API might not return all file versions held for + * this policy ID. Instead, this API will only return the latest file version held in the newly + * developed architecture. The `GET /file_version_legal_holds` API can be used to fetch current + * and past versions of files held within the legacy architecture. + * + *

    This endpoint does not support returning any content that is on hold due to a Custodian + * collaborating on a Hub. + * + *

    The `GET /legal_hold_policy_assignments?policy_id={id}` API can be used to find a list of + * policy assignments for a given policy ID. + * + * @param legalHoldPolicyAssignmentId The ID of the legal hold policy assignment. Example: + * "753465" + * @param queryParams Query parameters of getLegalHoldPolicyAssignmentFileOnHold method + */ public FilesOnHold getLegalHoldPolicyAssignmentFileOnHold( String legalHoldPolicyAssignmentId, GetLegalHoldPolicyAssignmentFileOnHoldQueryParams queryParams) { @@ -169,6 +266,28 @@ public FilesOnHold getLegalHoldPolicyAssignmentFileOnHold( new GetLegalHoldPolicyAssignmentFileOnHoldHeaders()); } + /** + * Get a list of files with current file versions for a legal hold assignment. + * + *

    In some cases you may want to get previous file versions instead. In these cases, use the + * `GET /legal_hold_policy_assignments/:id/file_versions_on_hold` API instead to return any + * previous versions of a file for this legal hold policy assignment. + * + *

    Due to ongoing re-architecture efforts this API might not return all file versions held for + * this policy ID. Instead, this API will only return the latest file version held in the newly + * developed architecture. The `GET /file_version_legal_holds` API can be used to fetch current + * and past versions of files held within the legacy architecture. + * + *

    This endpoint does not support returning any content that is on hold due to a Custodian + * collaborating on a Hub. + * + *

    The `GET /legal_hold_policy_assignments?policy_id={id}` API can be used to find a list of + * policy assignments for a given policy ID. + * + * @param legalHoldPolicyAssignmentId The ID of the legal hold policy assignment. Example: + * "753465" + * @param headers Headers of getLegalHoldPolicyAssignmentFileOnHold method + */ public FilesOnHold getLegalHoldPolicyAssignmentFileOnHold( String legalHoldPolicyAssignmentId, GetLegalHoldPolicyAssignmentFileOnHoldHeaders headers) { return getLegalHoldPolicyAssignmentFileOnHold( @@ -177,6 +296,29 @@ public FilesOnHold getLegalHoldPolicyAssignmentFileOnHold( headers); } + /** + * Get a list of files with current file versions for a legal hold assignment. + * + *

    In some cases you may want to get previous file versions instead. In these cases, use the + * `GET /legal_hold_policy_assignments/:id/file_versions_on_hold` API instead to return any + * previous versions of a file for this legal hold policy assignment. + * + *

    Due to ongoing re-architecture efforts this API might not return all file versions held for + * this policy ID. Instead, this API will only return the latest file version held in the newly + * developed architecture. The `GET /file_version_legal_holds` API can be used to fetch current + * and past versions of files held within the legacy architecture. + * + *

    This endpoint does not support returning any content that is on hold due to a Custodian + * collaborating on a Hub. + * + *

    The `GET /legal_hold_policy_assignments?policy_id={id}` API can be used to find a list of + * policy assignments for a given policy ID. + * + * @param legalHoldPolicyAssignmentId The ID of the legal hold policy assignment. Example: + * "753465" + * @param queryParams Query parameters of getLegalHoldPolicyAssignmentFileOnHold method + * @param headers Headers of getLegalHoldPolicyAssignmentFileOnHold method + */ public FilesOnHold getLegalHoldPolicyAssignmentFileOnHold( String legalHoldPolicyAssignmentId, GetLegalHoldPolicyAssignmentFileOnHoldQueryParams queryParams, diff --git a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsHeaders.java b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsHeaders.java index fb0fd9110..6f17c115e 100644 --- a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsHeaders.java @@ -6,6 +6,7 @@ public class GetCollaborationsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetCollaborationsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsQueryParams.java b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsQueryParams.java index 5d2d42894..f000f0d43 100644 --- a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsQueryParams.java @@ -5,12 +5,27 @@ public class GetCollaborationsQueryParams { + /** The status of the collaborations to retrieve. */ public final EnumWrapper status; + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; + /** + * The offset of the item at which to begin the response. + * + *

    Queries with offset parameter value exceeding 10000 will be rejected with a 400 response. + */ public Long offset; + /** The maximum number of items to return per page. */ public Long limit; public GetCollaborationsQueryParams(GetCollaborationsQueryParamsStatusField status) { diff --git a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFileCollaborationsHeaders.java b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFileCollaborationsHeaders.java index a4fc2a3a3..2e30821a9 100644 --- a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFileCollaborationsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFileCollaborationsHeaders.java @@ -6,6 +6,7 @@ public class GetFileCollaborationsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFileCollaborationsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFileCollaborationsQueryParams.java b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFileCollaborationsQueryParams.java index 2526d72bc..8fb946124 100644 --- a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFileCollaborationsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFileCollaborationsQueryParams.java @@ -4,10 +4,25 @@ public class GetFileCollaborationsQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; + /** The maximum number of items to return per page. */ public Long limit; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; public GetFileCollaborationsQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFolderCollaborationsHeaders.java b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFolderCollaborationsHeaders.java index db61ee413..02973acc5 100644 --- a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFolderCollaborationsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFolderCollaborationsHeaders.java @@ -6,6 +6,7 @@ public class GetFolderCollaborationsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFolderCollaborationsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFolderCollaborationsQueryParams.java b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFolderCollaborationsQueryParams.java index 55aa0facf..8e874de9e 100644 --- a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFolderCollaborationsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFolderCollaborationsQueryParams.java @@ -4,10 +4,25 @@ public class GetFolderCollaborationsQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; + /** The maximum number of items to return per page. */ public Long limit; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; public GetFolderCollaborationsQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetGroupCollaborationsHeaders.java b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetGroupCollaborationsHeaders.java index a3ef838ea..fa4a470e9 100644 --- a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetGroupCollaborationsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetGroupCollaborationsHeaders.java @@ -6,6 +6,7 @@ public class GetGroupCollaborationsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetGroupCollaborationsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetGroupCollaborationsQueryParams.java b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetGroupCollaborationsQueryParams.java index d7bc333de..58e99c606 100644 --- a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetGroupCollaborationsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetGroupCollaborationsQueryParams.java @@ -2,8 +2,14 @@ public class GetGroupCollaborationsQueryParams { + /** The maximum number of items to return per page. */ public Long limit; + /** + * The offset of the item at which to begin the response. + * + *

    Queries with offset parameter value exceeding 10000 will be rejected with a 400 response. + */ public Long offset; public GetGroupCollaborationsQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/listcollaborations/ListCollaborationsManager.java b/src/main/java/com/box/sdkgen/managers/listcollaborations/ListCollaborationsManager.java index 457ccf67a..71d683da3 100644 --- a/src/main/java/com/box/sdkgen/managers/listcollaborations/ListCollaborationsManager.java +++ b/src/main/java/com/box/sdkgen/managers/listcollaborations/ListCollaborationsManager.java @@ -31,20 +31,60 @@ protected ListCollaborationsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves a list of pending and active collaborations for a file. This returns all the users + * that have access to the file or have been invited to the file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + */ public Collaborations getFileCollaborations(String fileId) { return getFileCollaborations( fileId, new GetFileCollaborationsQueryParams(), new GetFileCollaborationsHeaders()); } + /** + * Retrieves a list of pending and active collaborations for a file. This returns all the users + * that have access to the file or have been invited to the file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of getFileCollaborations method + */ public Collaborations getFileCollaborations( String fileId, GetFileCollaborationsQueryParams queryParams) { return getFileCollaborations(fileId, queryParams, new GetFileCollaborationsHeaders()); } + /** + * Retrieves a list of pending and active collaborations for a file. This returns all the users + * that have access to the file or have been invited to the file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param headers Headers of getFileCollaborations method + */ public Collaborations getFileCollaborations(String fileId, GetFileCollaborationsHeaders headers) { return getFileCollaborations(fileId, new GetFileCollaborationsQueryParams(), headers); } + /** + * Retrieves a list of pending and active collaborations for a file. This returns all the users + * that have access to the file or have been invited to the file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of getFileCollaborations method + * @param headers Headers of getFileCollaborations method + */ public Collaborations getFileCollaborations( String fileId, GetFileCollaborationsQueryParams queryParams, @@ -77,21 +117,61 @@ public Collaborations getFileCollaborations( return JsonManager.deserialize(response.getData(), Collaborations.class); } + /** + * Retrieves a list of pending and active collaborations for a folder. This returns all the users + * that have access to the folder or have been invited to the folder. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. Example: "12345" + */ public Collaborations getFolderCollaborations(String folderId) { return getFolderCollaborations( folderId, new GetFolderCollaborationsQueryParams(), new GetFolderCollaborationsHeaders()); } + /** + * Retrieves a list of pending and active collaborations for a folder. This returns all the users + * that have access to the folder or have been invited to the folder. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. Example: "12345" + * @param queryParams Query parameters of getFolderCollaborations method + */ public Collaborations getFolderCollaborations( String folderId, GetFolderCollaborationsQueryParams queryParams) { return getFolderCollaborations(folderId, queryParams, new GetFolderCollaborationsHeaders()); } + /** + * Retrieves a list of pending and active collaborations for a folder. This returns all the users + * that have access to the folder or have been invited to the folder. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. Example: "12345" + * @param headers Headers of getFolderCollaborations method + */ public Collaborations getFolderCollaborations( String folderId, GetFolderCollaborationsHeaders headers) { return getFolderCollaborations(folderId, new GetFolderCollaborationsQueryParams(), headers); } + /** + * Retrieves a list of pending and active collaborations for a folder. This returns all the users + * that have access to the folder or have been invited to the folder. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. Example: "12345" + * @param queryParams Query parameters of getFolderCollaborations method + * @param headers Headers of getFolderCollaborations method + */ public Collaborations getFolderCollaborations( String folderId, GetFolderCollaborationsQueryParams queryParams, @@ -124,10 +204,21 @@ public Collaborations getFolderCollaborations( return JsonManager.deserialize(response.getData(), Collaborations.class); } + /** + * Retrieves all pending collaboration invites for this user. + * + * @param queryParams Query parameters of getCollaborations method + */ public CollaborationsOffsetPaginated getCollaborations(GetCollaborationsQueryParams queryParams) { return getCollaborations(queryParams, new GetCollaborationsHeaders()); } + /** + * Retrieves all pending collaboration invites for this user. + * + * @param queryParams Query parameters of getCollaborations method + * @param headers Headers of getCollaborations method + */ public CollaborationsOffsetPaginated getCollaborations( GetCollaborationsQueryParams queryParams, GetCollaborationsHeaders headers) { Map queryParamsMap = @@ -157,21 +248,61 @@ public CollaborationsOffsetPaginated getCollaborations( return JsonManager.deserialize(response.getData(), CollaborationsOffsetPaginated.class); } + /** + * Retrieves all the collaborations for a group. The user must have admin permissions to inspect + * enterprise's groups. + * + *

    Each collaboration object has details on which files or folders the group has access to and + * with what role. + * + * @param groupId The ID of the group. Example: "57645" + */ public CollaborationsOffsetPaginated getGroupCollaborations(String groupId) { return getGroupCollaborations( groupId, new GetGroupCollaborationsQueryParams(), new GetGroupCollaborationsHeaders()); } + /** + * Retrieves all the collaborations for a group. The user must have admin permissions to inspect + * enterprise's groups. + * + *

    Each collaboration object has details on which files or folders the group has access to and + * with what role. + * + * @param groupId The ID of the group. Example: "57645" + * @param queryParams Query parameters of getGroupCollaborations method + */ public CollaborationsOffsetPaginated getGroupCollaborations( String groupId, GetGroupCollaborationsQueryParams queryParams) { return getGroupCollaborations(groupId, queryParams, new GetGroupCollaborationsHeaders()); } + /** + * Retrieves all the collaborations for a group. The user must have admin permissions to inspect + * enterprise's groups. + * + *

    Each collaboration object has details on which files or folders the group has access to and + * with what role. + * + * @param groupId The ID of the group. Example: "57645" + * @param headers Headers of getGroupCollaborations method + */ public CollaborationsOffsetPaginated getGroupCollaborations( String groupId, GetGroupCollaborationsHeaders headers) { return getGroupCollaborations(groupId, new GetGroupCollaborationsQueryParams(), headers); } + /** + * Retrieves all the collaborations for a group. The user must have admin permissions to inspect + * enterprise's groups. + * + *

    Each collaboration object has details on which files or folders the group has access to and + * with what role. + * + * @param groupId The ID of the group. Example: "57645" + * @param queryParams Query parameters of getGroupCollaborations method + * @param headers Headers of getGroupCollaborations method + */ public CollaborationsOffsetPaginated getGroupCollaborations( String groupId, GetGroupCollaborationsQueryParams queryParams, diff --git a/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipHeaders.java b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipHeaders.java index 60bbae609..f9a402f99 100644 --- a/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipHeaders.java @@ -6,6 +6,7 @@ public class CreateGroupMembershipHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateGroupMembershipHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipQueryParams.java b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipQueryParams.java index a2a824bec..e18da9ac3 100644 --- a/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipQueryParams.java @@ -4,6 +4,14 @@ public class CreateGroupMembershipQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public CreateGroupMembershipQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBody.java b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBody.java index 9e6bc4610..5093a4998 100644 --- a/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBody.java @@ -14,10 +14,13 @@ @JsonFilter("nullablePropertyFilter") public class CreateGroupMembershipRequestBody extends SerializableObject { + /** The user to add to the group. */ protected final CreateGroupMembershipRequestBodyUserField user; + /** The group to add the user to. */ protected final CreateGroupMembershipRequestBodyGroupField group; + /** The role of the user in the group. */ @JsonDeserialize( using = CreateGroupMembershipRequestBodyRoleField @@ -28,6 +31,16 @@ public class CreateGroupMembershipRequestBody extends SerializableObject { .CreateGroupMembershipRequestBodyRoleFieldSerializer.class) protected EnumWrapper role; + /** + * Custom configuration for the permissions an admin if a group will receive. This option has no + * effect on members with a role of `member`. + * + *

    Setting these permissions overwrites the default access levels of an admin. + * + *

    Specifying a value of `null` for this object will disable all configurable permissions. + * Specifying permissions will set them accordingly, omitted permissions will be enabled by + * default. + */ @JsonProperty("configurable_permissions") @Nullable protected Map configurablePermissions; diff --git a/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBodyGroupField.java b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBodyGroupField.java index b5b88129d..58eefce98 100644 --- a/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBodyGroupField.java +++ b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBodyGroupField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class CreateGroupMembershipRequestBodyGroupField extends SerializableObject { + /** The ID of the group to add the user to. */ protected final String id; public CreateGroupMembershipRequestBodyGroupField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBodyUserField.java b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBodyUserField.java index 6a7a39cfe..f891f5f71 100644 --- a/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBodyUserField.java +++ b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBodyUserField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class CreateGroupMembershipRequestBodyUserField extends SerializableObject { + /** The ID of the user to add to the group. */ protected final String id; public CreateGroupMembershipRequestBodyUserField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/managers/memberships/DeleteGroupMembershipByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/memberships/DeleteGroupMembershipByIdHeaders.java index 475f93edb..d73e29e91 100644 --- a/src/main/java/com/box/sdkgen/managers/memberships/DeleteGroupMembershipByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/memberships/DeleteGroupMembershipByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteGroupMembershipByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteGroupMembershipByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipByIdHeaders.java index bdffa8638..57581da1f 100644 --- a/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipByIdHeaders.java @@ -6,6 +6,7 @@ public class GetGroupMembershipByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetGroupMembershipByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipByIdQueryParams.java index 6b8260de5..303ae47f7 100644 --- a/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipByIdQueryParams.java @@ -4,6 +4,14 @@ public class GetGroupMembershipByIdQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public GetGroupMembershipByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipsHeaders.java b/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipsHeaders.java index b2a98f5c3..5f27423eb 100644 --- a/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipsHeaders.java @@ -6,6 +6,7 @@ public class GetGroupMembershipsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetGroupMembershipsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipsQueryParams.java b/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipsQueryParams.java index ce513988b..fe79eb19d 100644 --- a/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipsQueryParams.java @@ -2,8 +2,14 @@ public class GetGroupMembershipsQueryParams { + /** The maximum number of items to return per page. */ public Long limit; + /** + * The offset of the item at which to begin the response. + * + *

    Queries with offset parameter value exceeding 10000 will be rejected with a 400 response. + */ public Long offset; public GetGroupMembershipsQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/memberships/GetUserMembershipsHeaders.java b/src/main/java/com/box/sdkgen/managers/memberships/GetUserMembershipsHeaders.java index 26f14e0e5..8bc8c3f1b 100644 --- a/src/main/java/com/box/sdkgen/managers/memberships/GetUserMembershipsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/memberships/GetUserMembershipsHeaders.java @@ -6,6 +6,7 @@ public class GetUserMembershipsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetUserMembershipsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/memberships/GetUserMembershipsQueryParams.java b/src/main/java/com/box/sdkgen/managers/memberships/GetUserMembershipsQueryParams.java index 4a9e5e54e..3e0cf41f3 100644 --- a/src/main/java/com/box/sdkgen/managers/memberships/GetUserMembershipsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/memberships/GetUserMembershipsQueryParams.java @@ -2,8 +2,14 @@ public class GetUserMembershipsQueryParams { + /** The maximum number of items to return per page. */ public Long limit; + /** + * The offset of the item at which to begin the response. + * + *

    Queries with offset parameter value exceeding 10000 will be rejected with a 400 response. + */ public Long offset; public GetUserMembershipsQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/memberships/MembershipsManager.java b/src/main/java/com/box/sdkgen/managers/memberships/MembershipsManager.java index 3a0e0283f..d990cf265 100644 --- a/src/main/java/com/box/sdkgen/managers/memberships/MembershipsManager.java +++ b/src/main/java/com/box/sdkgen/managers/memberships/MembershipsManager.java @@ -31,20 +31,48 @@ protected MembershipsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves all the groups for a user. Only members of this group or users with admin-level + * permissions will be able to use this API. + * + * @param userId The ID of the user. Example: "12345" + */ public GroupMemberships getUserMemberships(String userId) { return getUserMemberships( userId, new GetUserMembershipsQueryParams(), new GetUserMembershipsHeaders()); } + /** + * Retrieves all the groups for a user. Only members of this group or users with admin-level + * permissions will be able to use this API. + * + * @param userId The ID of the user. Example: "12345" + * @param queryParams Query parameters of getUserMemberships method + */ public GroupMemberships getUserMemberships( String userId, GetUserMembershipsQueryParams queryParams) { return getUserMemberships(userId, queryParams, new GetUserMembershipsHeaders()); } + /** + * Retrieves all the groups for a user. Only members of this group or users with admin-level + * permissions will be able to use this API. + * + * @param userId The ID of the user. Example: "12345" + * @param headers Headers of getUserMemberships method + */ public GroupMemberships getUserMemberships(String userId, GetUserMembershipsHeaders headers) { return getUserMemberships(userId, new GetUserMembershipsQueryParams(), headers); } + /** + * Retrieves all the groups for a user. Only members of this group or users with admin-level + * permissions will be able to use this API. + * + * @param userId The ID of the user. Example: "12345" + * @param queryParams Query parameters of getUserMemberships method + * @param headers Headers of getUserMemberships method + */ public GroupMemberships getUserMemberships( String userId, GetUserMembershipsQueryParams queryParams, GetUserMembershipsHeaders headers) { Map queryParamsMap = @@ -74,20 +102,48 @@ public GroupMemberships getUserMemberships( return JsonManager.deserialize(response.getData(), GroupMemberships.class); } + /** + * Retrieves all the members for a group. Only members of this group or users with admin-level + * permissions will be able to use this API. + * + * @param groupId The ID of the group. Example: "57645" + */ public GroupMemberships getGroupMemberships(String groupId) { return getGroupMemberships( groupId, new GetGroupMembershipsQueryParams(), new GetGroupMembershipsHeaders()); } + /** + * Retrieves all the members for a group. Only members of this group or users with admin-level + * permissions will be able to use this API. + * + * @param groupId The ID of the group. Example: "57645" + * @param queryParams Query parameters of getGroupMemberships method + */ public GroupMemberships getGroupMemberships( String groupId, GetGroupMembershipsQueryParams queryParams) { return getGroupMemberships(groupId, queryParams, new GetGroupMembershipsHeaders()); } + /** + * Retrieves all the members for a group. Only members of this group or users with admin-level + * permissions will be able to use this API. + * + * @param groupId The ID of the group. Example: "57645" + * @param headers Headers of getGroupMemberships method + */ public GroupMemberships getGroupMemberships(String groupId, GetGroupMembershipsHeaders headers) { return getGroupMemberships(groupId, new GetGroupMembershipsQueryParams(), headers); } + /** + * Retrieves all the members for a group. Only members of this group or users with admin-level + * permissions will be able to use this API. + * + * @param groupId The ID of the group. Example: "57645" + * @param queryParams Query parameters of getGroupMemberships method + * @param headers Headers of getGroupMemberships method + */ public GroupMemberships getGroupMemberships( String groupId, GetGroupMembershipsQueryParams queryParams, @@ -119,21 +175,49 @@ public GroupMemberships getGroupMemberships( return JsonManager.deserialize(response.getData(), GroupMemberships.class); } + /** + * Creates a group membership. Only users with admin-level permissions will be able to use this + * API. + * + * @param requestBody Request body of createGroupMembership method + */ public GroupMembership createGroupMembership(CreateGroupMembershipRequestBody requestBody) { return createGroupMembership( requestBody, new CreateGroupMembershipQueryParams(), new CreateGroupMembershipHeaders()); } + /** + * Creates a group membership. Only users with admin-level permissions will be able to use this + * API. + * + * @param requestBody Request body of createGroupMembership method + * @param queryParams Query parameters of createGroupMembership method + */ public GroupMembership createGroupMembership( CreateGroupMembershipRequestBody requestBody, CreateGroupMembershipQueryParams queryParams) { return createGroupMembership(requestBody, queryParams, new CreateGroupMembershipHeaders()); } + /** + * Creates a group membership. Only users with admin-level permissions will be able to use this + * API. + * + * @param requestBody Request body of createGroupMembership method + * @param headers Headers of createGroupMembership method + */ public GroupMembership createGroupMembership( CreateGroupMembershipRequestBody requestBody, CreateGroupMembershipHeaders headers) { return createGroupMembership(requestBody, new CreateGroupMembershipQueryParams(), headers); } + /** + * Creates a group membership. Only users with admin-level permissions will be able to use this + * API. + * + * @param requestBody Request body of createGroupMembership method + * @param queryParams Query parameters of createGroupMembership method + * @param headers Headers of createGroupMembership method + */ public GroupMembership createGroupMembership( CreateGroupMembershipRequestBody requestBody, CreateGroupMembershipQueryParams queryParams, @@ -162,6 +246,12 @@ public GroupMembership createGroupMembership( return JsonManager.deserialize(response.getData(), GroupMembership.class); } + /** + * Retrieves a specific group membership. Only admins of this group or users with admin-level + * permissions will be able to use this API. + * + * @param groupMembershipId The ID of the group membership. Example: "434534" + */ public GroupMembership getGroupMembershipById(String groupMembershipId) { return getGroupMembershipById( groupMembershipId, @@ -169,18 +259,40 @@ public GroupMembership getGroupMembershipById(String groupMembershipId) { new GetGroupMembershipByIdHeaders()); } + /** + * Retrieves a specific group membership. Only admins of this group or users with admin-level + * permissions will be able to use this API. + * + * @param groupMembershipId The ID of the group membership. Example: "434534" + * @param queryParams Query parameters of getGroupMembershipById method + */ public GroupMembership getGroupMembershipById( String groupMembershipId, GetGroupMembershipByIdQueryParams queryParams) { return getGroupMembershipById( groupMembershipId, queryParams, new GetGroupMembershipByIdHeaders()); } + /** + * Retrieves a specific group membership. Only admins of this group or users with admin-level + * permissions will be able to use this API. + * + * @param groupMembershipId The ID of the group membership. Example: "434534" + * @param headers Headers of getGroupMembershipById method + */ public GroupMembership getGroupMembershipById( String groupMembershipId, GetGroupMembershipByIdHeaders headers) { return getGroupMembershipById( groupMembershipId, new GetGroupMembershipByIdQueryParams(), headers); } + /** + * Retrieves a specific group membership. Only admins of this group or users with admin-level + * permissions will be able to use this API. + * + * @param groupMembershipId The ID of the group membership. Example: "434534" + * @param queryParams Query parameters of getGroupMembershipById method + * @param headers Headers of getGroupMembershipById method + */ public GroupMembership getGroupMembershipById( String groupMembershipId, GetGroupMembershipByIdQueryParams queryParams, @@ -208,6 +320,12 @@ public GroupMembership getGroupMembershipById( return JsonManager.deserialize(response.getData(), GroupMembership.class); } + /** + * Updates a user's group membership. Only admins of this group or users with admin-level + * permissions will be able to use this API. + * + * @param groupMembershipId The ID of the group membership. Example: "434534" + */ public GroupMembership updateGroupMembershipById(String groupMembershipId) { return updateGroupMembershipById( groupMembershipId, @@ -216,6 +334,13 @@ public GroupMembership updateGroupMembershipById(String groupMembershipId) { new UpdateGroupMembershipByIdHeaders()); } + /** + * Updates a user's group membership. Only admins of this group or users with admin-level + * permissions will be able to use this API. + * + * @param groupMembershipId The ID of the group membership. Example: "434534" + * @param requestBody Request body of updateGroupMembershipById method + */ public GroupMembership updateGroupMembershipById( String groupMembershipId, UpdateGroupMembershipByIdRequestBody requestBody) { return updateGroupMembershipById( @@ -225,6 +350,13 @@ public GroupMembership updateGroupMembershipById( new UpdateGroupMembershipByIdHeaders()); } + /** + * Updates a user's group membership. Only admins of this group or users with admin-level + * permissions will be able to use this API. + * + * @param groupMembershipId The ID of the group membership. Example: "434534" + * @param queryParams Query parameters of updateGroupMembershipById method + */ public GroupMembership updateGroupMembershipById( String groupMembershipId, UpdateGroupMembershipByIdQueryParams queryParams) { return updateGroupMembershipById( @@ -234,6 +366,14 @@ public GroupMembership updateGroupMembershipById( new UpdateGroupMembershipByIdHeaders()); } + /** + * Updates a user's group membership. Only admins of this group or users with admin-level + * permissions will be able to use this API. + * + * @param groupMembershipId The ID of the group membership. Example: "434534" + * @param requestBody Request body of updateGroupMembershipById method + * @param queryParams Query parameters of updateGroupMembershipById method + */ public GroupMembership updateGroupMembershipById( String groupMembershipId, UpdateGroupMembershipByIdRequestBody requestBody, @@ -242,6 +382,13 @@ public GroupMembership updateGroupMembershipById( groupMembershipId, requestBody, queryParams, new UpdateGroupMembershipByIdHeaders()); } + /** + * Updates a user's group membership. Only admins of this group or users with admin-level + * permissions will be able to use this API. + * + * @param groupMembershipId The ID of the group membership. Example: "434534" + * @param headers Headers of updateGroupMembershipById method + */ public GroupMembership updateGroupMembershipById( String groupMembershipId, UpdateGroupMembershipByIdHeaders headers) { return updateGroupMembershipById( @@ -251,6 +398,14 @@ public GroupMembership updateGroupMembershipById( headers); } + /** + * Updates a user's group membership. Only admins of this group or users with admin-level + * permissions will be able to use this API. + * + * @param groupMembershipId The ID of the group membership. Example: "434534" + * @param requestBody Request body of updateGroupMembershipById method + * @param headers Headers of updateGroupMembershipById method + */ public GroupMembership updateGroupMembershipById( String groupMembershipId, UpdateGroupMembershipByIdRequestBody requestBody, @@ -259,6 +414,14 @@ public GroupMembership updateGroupMembershipById( groupMembershipId, requestBody, new UpdateGroupMembershipByIdQueryParams(), headers); } + /** + * Updates a user's group membership. Only admins of this group or users with admin-level + * permissions will be able to use this API. + * + * @param groupMembershipId The ID of the group membership. Example: "434534" + * @param queryParams Query parameters of updateGroupMembershipById method + * @param headers Headers of updateGroupMembershipById method + */ public GroupMembership updateGroupMembershipById( String groupMembershipId, UpdateGroupMembershipByIdQueryParams queryParams, @@ -267,6 +430,15 @@ public GroupMembership updateGroupMembershipById( groupMembershipId, new UpdateGroupMembershipByIdRequestBody(), queryParams, headers); } + /** + * Updates a user's group membership. Only admins of this group or users with admin-level + * permissions will be able to use this API. + * + * @param groupMembershipId The ID of the group membership. Example: "434534" + * @param requestBody Request body of updateGroupMembershipById method + * @param queryParams Query parameters of updateGroupMembershipById method + * @param headers Headers of updateGroupMembershipById method + */ public GroupMembership updateGroupMembershipById( String groupMembershipId, UpdateGroupMembershipByIdRequestBody requestBody, @@ -297,10 +469,23 @@ public GroupMembership updateGroupMembershipById( return JsonManager.deserialize(response.getData(), GroupMembership.class); } + /** + * Deletes a specific group membership. Only admins of this group or users with admin-level + * permissions will be able to use this API. + * + * @param groupMembershipId The ID of the group membership. Example: "434534" + */ public void deleteGroupMembershipById(String groupMembershipId) { deleteGroupMembershipById(groupMembershipId, new DeleteGroupMembershipByIdHeaders()); } + /** + * Deletes a specific group membership. Only admins of this group or users with admin-level + * permissions will be able to use this API. + * + * @param groupMembershipId The ID of the group membership. Example: "434534" + * @param headers Headers of deleteGroupMembershipById method + */ public void deleteGroupMembershipById( String groupMembershipId, DeleteGroupMembershipByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); diff --git a/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdHeaders.java index 5b1783cdd..68e84d4b4 100644 --- a/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdHeaders.java @@ -6,6 +6,7 @@ public class UpdateGroupMembershipByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateGroupMembershipByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdQueryParams.java index 879db73a9..e90f12deb 100644 --- a/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdQueryParams.java @@ -4,6 +4,14 @@ public class UpdateGroupMembershipByIdQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public UpdateGroupMembershipByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdRequestBody.java index cc362b175..dbc205a45 100644 --- a/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdRequestBody.java @@ -14,6 +14,7 @@ @JsonFilter("nullablePropertyFilter") public class UpdateGroupMembershipByIdRequestBody extends SerializableObject { + /** The role of the user in the group. */ @JsonDeserialize( using = UpdateGroupMembershipByIdRequestBodyRoleField @@ -24,6 +25,16 @@ public class UpdateGroupMembershipByIdRequestBody extends SerializableObject { .UpdateGroupMembershipByIdRequestBodyRoleFieldSerializer.class) protected EnumWrapper role; + /** + * Custom configuration for the permissions an admin if a group will receive. This option has no + * effect on members with a role of `member`. + * + *

    Setting these permissions overwrites the default access levels of an admin. + * + *

    Specifying a value of `null` for this object will disable all configurable permissions. + * Specifying permissions will set them accordingly, omitted permissions will be enabled by + * default. + */ @JsonProperty("configurable_permissions") @Nullable protected Map configurablePermissions; diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyHeaders.java index fe13f37d7..1a44d8c35 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyHeaders.java @@ -6,6 +6,7 @@ public class ApplyMetadataCascadePolicyHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public ApplyMetadataCascadePolicyHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyRequestBody.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyRequestBody.java index 1f6602e4c..e4e73744c 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyRequestBody.java @@ -11,6 +11,13 @@ @JsonFilter("nullablePropertyFilter") public class ApplyMetadataCascadePolicyRequestBody extends SerializableObject { + /** + * Describes the desired behavior when dealing with the conflict where a metadata template already + * has an instance applied to a child. + * + *

    * `none` will preserve the existing value on the file * `overwrite` will force-apply the + * templates values over any existing values. + */ @JsonDeserialize( using = ApplyMetadataCascadePolicyRequestBodyConflictResolutionField diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyHeaders.java index c9c8815fb..2a85d79b3 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyHeaders.java @@ -6,6 +6,7 @@ public class CreateMetadataCascadePolicyHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateMetadataCascadePolicyHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyRequestBody.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyRequestBody.java index b05c4ccd7..eddad8acc 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyRequestBody.java @@ -11,9 +11,17 @@ @JsonFilter("nullablePropertyFilter") public class CreateMetadataCascadePolicyRequestBody extends SerializableObject { + /** + * The ID of the folder to apply the policy to. This folder will need to already have an instance + * of the targeted metadata template applied to it. + */ @JsonProperty("folder_id") protected final String folderId; + /** + * The scope of the targeted metadata template. This template will need to already have an + * instance applied to the targeted folder. + */ @JsonDeserialize( using = CreateMetadataCascadePolicyRequestBodyScopeField @@ -24,6 +32,20 @@ public class CreateMetadataCascadePolicyRequestBody extends SerializableObject { .CreateMetadataCascadePolicyRequestBodyScopeFieldSerializer.class) protected final EnumWrapper scope; + /** + * The key of the targeted metadata template. This template will need to already have an instance + * applied to the targeted folder. + * + *

    In many cases the template key is automatically derived of its display name, for example + * `Contract Template` would become `contractTemplate`. In some cases the creator of the template + * will have provided its own template key. + * + *

    Please [list the templates for an enterprise][list], or get all instances on a [file][file] + * or [folder][folder] to inspect a template's key. + * + *

    [list]: e://get-metadata-templates-enterprise [file]: e://get-files-id-metadata [folder]: + * e://get-folders-id-metadata + */ protected final String templateKey; public CreateMetadataCascadePolicyRequestBody( diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/DeleteMetadataCascadePolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/DeleteMetadataCascadePolicyByIdHeaders.java index 540a5e753..bfa9220de 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/DeleteMetadataCascadePolicyByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/DeleteMetadataCascadePolicyByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteMetadataCascadePolicyByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteMetadataCascadePolicyByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePoliciesHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePoliciesHeaders.java index ac3248165..f5b97a21a 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePoliciesHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePoliciesHeaders.java @@ -6,6 +6,7 @@ public class GetMetadataCascadePoliciesHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetMetadataCascadePoliciesHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePoliciesQueryParams.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePoliciesQueryParams.java index 3f01b83f1..2a487425b 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePoliciesQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePoliciesQueryParams.java @@ -2,12 +2,31 @@ public class GetMetadataCascadePoliciesQueryParams { + /** + * Specifies which folder to return policies for. This can not be used on the root folder with ID + * `0`. + */ public final String folderId; + /** + * The ID of the enterprise ID for which to find metadata cascade policies. If not specified, it + * defaults to the current enterprise. + */ public String ownerEnterpriseId; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** + * The offset of the item at which to begin the response. + * + *

    Queries with offset parameter value exceeding 10000 will be rejected with a 400 response. + */ public Long offset; public GetMetadataCascadePoliciesQueryParams(String folderId) { diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePolicyByIdHeaders.java index 7d99dd986..77b76b806 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePolicyByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePolicyByIdHeaders.java @@ -6,6 +6,7 @@ public class GetMetadataCascadePolicyByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetMetadataCascadePolicyByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/MetadataCascadePoliciesManager.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/MetadataCascadePoliciesManager.java index a64b28a33..5e92fa833 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/MetadataCascadePoliciesManager.java +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/MetadataCascadePoliciesManager.java @@ -31,11 +31,24 @@ protected MetadataCascadePoliciesManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves a list of all the metadata cascade policies that are applied to a given folder. This + * can not be used on the root folder with ID `0`. + * + * @param queryParams Query parameters of getMetadataCascadePolicies method + */ public MetadataCascadePolicies getMetadataCascadePolicies( GetMetadataCascadePoliciesQueryParams queryParams) { return getMetadataCascadePolicies(queryParams, new GetMetadataCascadePoliciesHeaders()); } + /** + * Retrieves a list of all the metadata cascade policies that are applied to a given folder. This + * can not be used on the root folder with ID `0`. + * + * @param queryParams Query parameters of getMetadataCascadePolicies method + * @param headers Headers of getMetadataCascadePolicies method + */ public MetadataCascadePolicies getMetadataCascadePolicies( GetMetadataCascadePoliciesQueryParams queryParams, GetMetadataCascadePoliciesHeaders headers) { @@ -66,11 +79,30 @@ public MetadataCascadePolicies getMetadataCascadePolicies( return JsonManager.deserialize(response.getData(), MetadataCascadePolicies.class); } + /** + * Creates a new metadata cascade policy that applies a given metadata template to a given folder + * and automatically cascades it down to any files within that folder. + * + *

    In order for the policy to be applied a metadata instance must first be applied to the + * folder the policy is to be applied to. + * + * @param requestBody Request body of createMetadataCascadePolicy method + */ public MetadataCascadePolicy createMetadataCascadePolicy( CreateMetadataCascadePolicyRequestBody requestBody) { return createMetadataCascadePolicy(requestBody, new CreateMetadataCascadePolicyHeaders()); } + /** + * Creates a new metadata cascade policy that applies a given metadata template to a given folder + * and automatically cascades it down to any files within that folder. + * + *

    In order for the policy to be applied a metadata instance must first be applied to the + * folder the policy is to be applied to. + * + * @param requestBody Request body of createMetadataCascadePolicy method + * @param headers Headers of createMetadataCascadePolicy method + */ public MetadataCascadePolicy createMetadataCascadePolicy( CreateMetadataCascadePolicyRequestBody requestBody, CreateMetadataCascadePolicyHeaders headers) { @@ -95,11 +127,24 @@ public MetadataCascadePolicy createMetadataCascadePolicy( return JsonManager.deserialize(response.getData(), MetadataCascadePolicy.class); } + /** + * Retrieve a specific metadata cascade policy assigned to a folder. + * + * @param metadataCascadePolicyId The ID of the metadata cascade policy. Example: + * "6fd4ff89-8fc1-42cf-8b29-1890dedd26d7" + */ public MetadataCascadePolicy getMetadataCascadePolicyById(String metadataCascadePolicyId) { return getMetadataCascadePolicyById( metadataCascadePolicyId, new GetMetadataCascadePolicyByIdHeaders()); } + /** + * Retrieve a specific metadata cascade policy assigned to a folder. + * + * @param metadataCascadePolicyId The ID of the metadata cascade policy. Example: + * "6fd4ff89-8fc1-42cf-8b29-1890dedd26d7" + * @param headers Headers of getMetadataCascadePolicyById method + */ public MetadataCascadePolicy getMetadataCascadePolicyById( String metadataCascadePolicyId, GetMetadataCascadePolicyByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -122,11 +167,24 @@ public MetadataCascadePolicy getMetadataCascadePolicyById( return JsonManager.deserialize(response.getData(), MetadataCascadePolicy.class); } + /** + * Deletes a metadata cascade policy. + * + * @param metadataCascadePolicyId The ID of the metadata cascade policy. Example: + * "6fd4ff89-8fc1-42cf-8b29-1890dedd26d7" + */ public void deleteMetadataCascadePolicyById(String metadataCascadePolicyId) { deleteMetadataCascadePolicyById( metadataCascadePolicyId, new DeleteMetadataCascadePolicyByIdHeaders()); } + /** + * Deletes a metadata cascade policy. + * + * @param metadataCascadePolicyId The ID of the metadata cascade policy. Example: + * "6fd4ff89-8fc1-42cf-8b29-1890dedd26d7" + * @param headers Headers of deleteMetadataCascadePolicyById method + */ public void deleteMetadataCascadePolicyById( String metadataCascadePolicyId, DeleteMetadataCascadePolicyByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -148,12 +206,31 @@ public void deleteMetadataCascadePolicyById( .build()); } + /** + * Force the metadata on a folder with a metadata cascade policy to be applied to all of its + * children. This can be used after creating a new cascade policy to enforce the metadata to be + * cascaded down to all existing files within that folder. + * + * @param metadataCascadePolicyId The ID of the cascade policy to force-apply. Example: + * "6fd4ff89-8fc1-42cf-8b29-1890dedd26d7" + * @param requestBody Request body of applyMetadataCascadePolicy method + */ public void applyMetadataCascadePolicy( String metadataCascadePolicyId, ApplyMetadataCascadePolicyRequestBody requestBody) { applyMetadataCascadePolicy( metadataCascadePolicyId, requestBody, new ApplyMetadataCascadePolicyHeaders()); } + /** + * Force the metadata on a folder with a metadata cascade policy to be applied to all of its + * children. This can be used after creating a new cascade policy to enforce the metadata to be + * cascaded down to all existing files within that folder. + * + * @param metadataCascadePolicyId The ID of the cascade policy to force-apply. Example: + * "6fd4ff89-8fc1-42cf-8b29-1890dedd26d7" + * @param requestBody Request body of applyMetadataCascadePolicy method + * @param headers Headers of applyMetadataCascadePolicy method + */ public void applyMetadataCascadePolicy( String metadataCascadePolicyId, ApplyMetadataCascadePolicyRequestBody requestBody, diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateHeaders.java index 617f0e9c3..8ed1b84dd 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateHeaders.java @@ -6,6 +6,7 @@ public class CreateMetadataTemplateHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateMetadataTemplateHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBody.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBody.java index 727fe9c51..bb0f4f7a2 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBody.java @@ -10,16 +10,43 @@ @JsonFilter("nullablePropertyFilter") public class CreateMetadataTemplateRequestBody extends SerializableObject { + /** + * The scope of the metadata template to create. Applications can only create templates for use + * within the authenticated user's enterprise. + * + *

    This value needs to be set to `enterprise`, as `global` scopes can not be created by + * applications. + */ protected final String scope; + /** + * A unique identifier for the template. This identifier needs to be unique across the enterprise + * for which the metadata template is being created. + * + *

    When not provided, the API will create a unique `templateKey` based on the value of the + * `displayName`. + */ protected String templateKey; + /** The display name of the template. */ protected final String displayName; + /** + * Defines if this template is visible in the Box web app UI, or if it is purely intended for + * usage through the API. + */ protected Boolean hidden; + /** + * An ordered list of template fields which are part of the template. Each field can be a regular + * text field, date field, number field, as well as a single or multi-select list. + */ protected List fields; + /** + * Whether or not to copy any metadata attached to a file or folder when it is copied. By default, + * metadata is not copied along with a file or folder when it is copied. + */ protected Boolean copyInstanceOnItemCopy; public CreateMetadataTemplateRequestBody( diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsField.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsField.java index 670052637..985f90911 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsField.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsField.java @@ -13,6 +13,13 @@ @JsonFilter("nullablePropertyFilter") public class CreateMetadataTemplateRequestBodyFieldsField extends SerializableObject { + /** + * The type of field. The basic fields are a `string` field for text, a `float` field for numbers, + * and a `date` fields to present the user with a date-time picker. + * + *

    Additionally, metadata templates support an `enum` field for a basic list of items, and ` + * multiSelect` field for a similar list of items where the user can select more than one value. + */ @JsonDeserialize( using = CreateMetadataTemplateRequestBodyFieldsTypeField @@ -23,14 +30,28 @@ public class CreateMetadataTemplateRequestBodyFieldsField extends SerializableOb .CreateMetadataTemplateRequestBodyFieldsTypeFieldSerializer.class) protected final EnumWrapper type; + /** + * A unique identifier for the field. The identifier must be unique within the template to which + * it belongs. + */ protected final String key; + /** The display name of the field as it is shown to the user in the web and mobile apps. */ protected final String displayName; + /** A description of the field. This is not shown to the user. */ protected String description; + /** + * Whether this field is hidden in the UI for the user and can only be set through the API + * instead. + */ protected Boolean hidden; + /** + * A list of options for this field. This is used in combination with the `enum` and `multiSelect` + * field types. + */ protected List options; public CreateMetadataTemplateRequestBodyFieldsField( diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsOptionsField.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsOptionsField.java index cd2f06768..3a683b0c9 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsOptionsField.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsOptionsField.java @@ -8,6 +8,10 @@ @JsonFilter("nullablePropertyFilter") public class CreateMetadataTemplateRequestBodyFieldsOptionsField extends SerializableObject { + /** + * The text value of the option. This represents both the display name of the option and the + * internal key used when updating templates. + */ protected final String key; public CreateMetadataTemplateRequestBodyFieldsOptionsField(@JsonProperty("key") String key) { diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/DeleteMetadataTemplateHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/DeleteMetadataTemplateHeaders.java index 04308afba..a7f8ebca4 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/DeleteMetadataTemplateHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/DeleteMetadataTemplateHeaders.java @@ -6,6 +6,7 @@ public class DeleteMetadataTemplateHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteMetadataTemplateHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetEnterpriseMetadataTemplatesHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetEnterpriseMetadataTemplatesHeaders.java index aa67b35e8..301561576 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetEnterpriseMetadataTemplatesHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetEnterpriseMetadataTemplatesHeaders.java @@ -6,6 +6,7 @@ public class GetEnterpriseMetadataTemplatesHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetEnterpriseMetadataTemplatesHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetEnterpriseMetadataTemplatesQueryParams.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetEnterpriseMetadataTemplatesQueryParams.java index ec8c23721..ca45173bf 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetEnterpriseMetadataTemplatesQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetEnterpriseMetadataTemplatesQueryParams.java @@ -2,8 +2,15 @@ public class GetEnterpriseMetadataTemplatesQueryParams { + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetEnterpriseMetadataTemplatesQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetGlobalMetadataTemplatesHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetGlobalMetadataTemplatesHeaders.java index e662672a6..c8634b057 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetGlobalMetadataTemplatesHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetGlobalMetadataTemplatesHeaders.java @@ -6,6 +6,7 @@ public class GetGlobalMetadataTemplatesHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetGlobalMetadataTemplatesHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetGlobalMetadataTemplatesQueryParams.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetGlobalMetadataTemplatesQueryParams.java index 477484c66..ea4797d44 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetGlobalMetadataTemplatesQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetGlobalMetadataTemplatesQueryParams.java @@ -2,8 +2,15 @@ public class GetGlobalMetadataTemplatesQueryParams { + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetGlobalMetadataTemplatesQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateByIdHeaders.java index d22223d88..929a9ddcd 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateByIdHeaders.java @@ -6,6 +6,7 @@ public class GetMetadataTemplateByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetMetadataTemplateByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateHeaders.java index b3705f97f..d00a6b26b 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateHeaders.java @@ -6,6 +6,7 @@ public class GetMetadataTemplateHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetMetadataTemplateHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplatesByInstanceIdHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplatesByInstanceIdHeaders.java index 0710a0811..71d4ae62c 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplatesByInstanceIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplatesByInstanceIdHeaders.java @@ -6,6 +6,7 @@ public class GetMetadataTemplatesByInstanceIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetMetadataTemplatesByInstanceIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplatesByInstanceIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplatesByInstanceIdQueryParams.java index 7afd7258a..69a0c9fc3 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplatesByInstanceIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplatesByInstanceIdQueryParams.java @@ -2,10 +2,18 @@ public class GetMetadataTemplatesByInstanceIdQueryParams { + /** The ID of an instance of the metadata template to find. */ public final String metadataInstanceId; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetMetadataTemplatesByInstanceIdQueryParams(String metadataInstanceId) { diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/MetadataTemplatesManager.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/MetadataTemplatesManager.java index 0c6cb5113..553b202bd 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/MetadataTemplatesManager.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/MetadataTemplatesManager.java @@ -32,12 +32,23 @@ protected MetadataTemplatesManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Finds a metadata template by searching for the ID of an instance of the template. + * + * @param queryParams Query parameters of getMetadataTemplatesByInstanceId method + */ public MetadataTemplates getMetadataTemplatesByInstanceId( GetMetadataTemplatesByInstanceIdQueryParams queryParams) { return getMetadataTemplatesByInstanceId( queryParams, new GetMetadataTemplatesByInstanceIdHeaders()); } + /** + * Finds a metadata template by searching for the ID of an instance of the template. + * + * @param queryParams Query parameters of getMetadataTemplatesByInstanceId method + * @param headers Headers of getMetadataTemplatesByInstanceId method + */ public MetadataTemplates getMetadataTemplatesByInstanceId( GetMetadataTemplatesByInstanceIdQueryParams queryParams, GetMetadataTemplatesByInstanceIdHeaders headers) { @@ -68,10 +79,29 @@ public MetadataTemplates getMetadataTemplatesByInstanceId( return JsonManager.deserialize(response.getData(), MetadataTemplates.class); } + /** + * Retrieves a metadata template by its `scope` and `templateKey` values. + * + *

    To find the `scope` and `templateKey` for a template, list all templates for an enterprise + * or globally, or list all templates applied to a file or folder. + * + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + */ public MetadataTemplate getMetadataTemplate(GetMetadataTemplateScope scope, String templateKey) { return getMetadataTemplate(scope, templateKey, new GetMetadataTemplateHeaders()); } + /** + * Retrieves a metadata template by its `scope` and `templateKey` values. + * + *

    To find the `scope` and `templateKey` for a template, list all templates for an enterprise + * or globally, or list all templates applied to a file or folder. + * + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param headers Headers of getMetadataTemplate method + */ public MetadataTemplate getMetadataTemplate( GetMetadataTemplateScope scope, String templateKey, GetMetadataTemplateHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -97,6 +127,18 @@ public MetadataTemplate getMetadataTemplate( return JsonManager.deserialize(response.getData(), MetadataTemplate.class); } + /** + * Updates a metadata template. + * + *

    The metadata template can only be updated if the template already exists. + * + *

    The update is applied atomically. If any errors occur during the application of the + * operations, the metadata template will not be changed. + * + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param requestBody Request body of updateMetadataTemplate method + */ public MetadataTemplate updateMetadataTemplate( UpdateMetadataTemplateScope scope, String templateKey, @@ -105,6 +147,19 @@ public MetadataTemplate updateMetadataTemplate( scope, templateKey, requestBody, new UpdateMetadataTemplateHeaders()); } + /** + * Updates a metadata template. + * + *

    The metadata template can only be updated if the template already exists. + * + *

    The update is applied atomically. If any errors occur during the application of the + * operations, the metadata template will not be changed. + * + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param requestBody Request body of updateMetadataTemplate method + * @param headers Headers of updateMetadataTemplate method + */ public MetadataTemplate updateMetadataTemplate( UpdateMetadataTemplateScope scope, String templateKey, @@ -135,10 +190,25 @@ public MetadataTemplate updateMetadataTemplate( return JsonManager.deserialize(response.getData(), MetadataTemplate.class); } + /** + * Delete a metadata template and its instances. This deletion is permanent and can not be + * reversed. + * + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + */ public void deleteMetadataTemplate(DeleteMetadataTemplateScope scope, String templateKey) { deleteMetadataTemplate(scope, templateKey, new DeleteMetadataTemplateHeaders()); } + /** + * Delete a metadata template and its instances. This deletion is permanent and can not be + * reversed. + * + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param headers Headers of deleteMetadataTemplate method + */ public void deleteMetadataTemplate( DeleteMetadataTemplateScope scope, String templateKey, @@ -165,10 +235,21 @@ public void deleteMetadataTemplate( .build()); } + /** + * Retrieves a metadata template by its ID. + * + * @param templateId The ID of the template. Example: "f7a9891f" + */ public MetadataTemplate getMetadataTemplateById(String templateId) { return getMetadataTemplateById(templateId, new GetMetadataTemplateByIdHeaders()); } + /** + * Retrieves a metadata template by its ID. + * + * @param templateId The ID of the template. Example: "f7a9891f" + * @param headers Headers of getMetadataTemplateById method + */ public MetadataTemplate getMetadataTemplateById( String templateId, GetMetadataTemplateByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -191,20 +272,39 @@ public MetadataTemplate getMetadataTemplateById( return JsonManager.deserialize(response.getData(), MetadataTemplate.class); } + /** + * Used to retrieve all generic, global metadata templates available to all enterprises using Box. + */ public MetadataTemplates getGlobalMetadataTemplates() { return getGlobalMetadataTemplates( new GetGlobalMetadataTemplatesQueryParams(), new GetGlobalMetadataTemplatesHeaders()); } + /** + * Used to retrieve all generic, global metadata templates available to all enterprises using Box. + * + * @param queryParams Query parameters of getGlobalMetadataTemplates method + */ public MetadataTemplates getGlobalMetadataTemplates( GetGlobalMetadataTemplatesQueryParams queryParams) { return getGlobalMetadataTemplates(queryParams, new GetGlobalMetadataTemplatesHeaders()); } + /** + * Used to retrieve all generic, global metadata templates available to all enterprises using Box. + * + * @param headers Headers of getGlobalMetadataTemplates method + */ public MetadataTemplates getGlobalMetadataTemplates(GetGlobalMetadataTemplatesHeaders headers) { return getGlobalMetadataTemplates(new GetGlobalMetadataTemplatesQueryParams(), headers); } + /** + * Used to retrieve all generic, global metadata templates available to all enterprises using Box. + * + * @param queryParams Query parameters of getGlobalMetadataTemplates method + * @param headers Headers of getGlobalMetadataTemplates method + */ public MetadataTemplates getGlobalMetadataTemplates( GetGlobalMetadataTemplatesQueryParams queryParams, GetGlobalMetadataTemplatesHeaders headers) { @@ -233,22 +333,45 @@ public MetadataTemplates getGlobalMetadataTemplates( return JsonManager.deserialize(response.getData(), MetadataTemplates.class); } + /** + * Used to retrieve all metadata templates created to be used specifically within the user's + * enterprise. + */ public MetadataTemplates getEnterpriseMetadataTemplates() { return getEnterpriseMetadataTemplates( new GetEnterpriseMetadataTemplatesQueryParams(), new GetEnterpriseMetadataTemplatesHeaders()); } + /** + * Used to retrieve all metadata templates created to be used specifically within the user's + * enterprise. + * + * @param queryParams Query parameters of getEnterpriseMetadataTemplates method + */ public MetadataTemplates getEnterpriseMetadataTemplates( GetEnterpriseMetadataTemplatesQueryParams queryParams) { return getEnterpriseMetadataTemplates(queryParams, new GetEnterpriseMetadataTemplatesHeaders()); } + /** + * Used to retrieve all metadata templates created to be used specifically within the user's + * enterprise. + * + * @param headers Headers of getEnterpriseMetadataTemplates method + */ public MetadataTemplates getEnterpriseMetadataTemplates( GetEnterpriseMetadataTemplatesHeaders headers) { return getEnterpriseMetadataTemplates(new GetEnterpriseMetadataTemplatesQueryParams(), headers); } + /** + * Used to retrieve all metadata templates created to be used specifically within the user's + * enterprise. + * + * @param queryParams Query parameters of getEnterpriseMetadataTemplates method + * @param headers Headers of getEnterpriseMetadataTemplates method + */ public MetadataTemplates getEnterpriseMetadataTemplates( GetEnterpriseMetadataTemplatesQueryParams queryParams, GetEnterpriseMetadataTemplatesHeaders headers) { @@ -277,10 +400,21 @@ public MetadataTemplates getEnterpriseMetadataTemplates( return JsonManager.deserialize(response.getData(), MetadataTemplates.class); } + /** + * Creates a new metadata template that can be applied to files and folders. + * + * @param requestBody Request body of createMetadataTemplate method + */ public MetadataTemplate createMetadataTemplate(CreateMetadataTemplateRequestBody requestBody) { return createMetadataTemplate(requestBody, new CreateMetadataTemplateHeaders()); } + /** + * Creates a new metadata template that can be applied to files and folders. + * + * @param requestBody Request body of createMetadataTemplate method + * @param headers Headers of createMetadataTemplate method + */ public MetadataTemplate createMetadataTemplate( CreateMetadataTemplateRequestBody requestBody, CreateMetadataTemplateHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateHeaders.java index c0c752885..83aa21de9 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateHeaders.java @@ -6,6 +6,7 @@ public class UpdateMetadataTemplateHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateMetadataTemplateHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateRequestBody.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateRequestBody.java index 09c4d9955..66ee5b874 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateRequestBody.java @@ -14,6 +14,10 @@ @JsonFilter("nullablePropertyFilter") public class UpdateMetadataTemplateRequestBody extends SerializableObject { + /** + * The type of change to perform on the template. Some of these are hazardous as they will change + * existing templates. + */ @JsonDeserialize( using = UpdateMetadataTemplateRequestBodyOpField @@ -24,18 +28,42 @@ public class UpdateMetadataTemplateRequestBody extends SerializableObject { .UpdateMetadataTemplateRequestBodyOpFieldSerializer.class) protected final EnumWrapper op; + /** The data for the operation. This will vary depending on the operation being performed. */ protected Map data; + /** + * For operations that affect a single field this defines the key of the field that is affected. + */ protected String fieldKey; + /** + * For operations that affect multiple fields this defines the keys of the fields that are + * affected. + */ protected List fieldKeys; + /** + * For operations that affect a single `enum` option this defines the key of the option that is + * affected. + */ protected String enumOptionKey; + /** + * For operations that affect multiple `enum` options this defines the keys of the options that + * are affected. + */ protected List enumOptionKeys; + /** + * For operations that affect a single multi select option this defines the key of the option that + * is affected. + */ protected String multiSelectOptionKey; + /** + * For operations that affect multiple multi select options this defines the keys of the options + * that are affected. + */ protected List multiSelectOptionKeys; public UpdateMetadataTemplateRequestBody(UpdateMetadataTemplateRequestBodyOpField op) { diff --git a/src/main/java/com/box/sdkgen/managers/recentitems/GetRecentItemsHeaders.java b/src/main/java/com/box/sdkgen/managers/recentitems/GetRecentItemsHeaders.java index 6eefa6ca0..28c611cc0 100644 --- a/src/main/java/com/box/sdkgen/managers/recentitems/GetRecentItemsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/recentitems/GetRecentItemsHeaders.java @@ -6,6 +6,7 @@ public class GetRecentItemsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetRecentItemsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/recentitems/GetRecentItemsQueryParams.java b/src/main/java/com/box/sdkgen/managers/recentitems/GetRecentItemsQueryParams.java index 437e8604e..654d9b471 100644 --- a/src/main/java/com/box/sdkgen/managers/recentitems/GetRecentItemsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/recentitems/GetRecentItemsQueryParams.java @@ -4,10 +4,25 @@ public class GetRecentItemsQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; + /** The maximum number of items to return per page. */ public Long limit; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; public GetRecentItemsQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/recentitems/RecentItemsManager.java b/src/main/java/com/box/sdkgen/managers/recentitems/RecentItemsManager.java index 206e509c7..f7a2c873b 100644 --- a/src/main/java/com/box/sdkgen/managers/recentitems/RecentItemsManager.java +++ b/src/main/java/com/box/sdkgen/managers/recentitems/RecentItemsManager.java @@ -30,18 +30,41 @@ protected RecentItemsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Returns information about the recent items accessed by a user, either in the last 90 days or up + * to the last 1000 items accessed. + */ public RecentItems getRecentItems() { return getRecentItems(new GetRecentItemsQueryParams(), new GetRecentItemsHeaders()); } + /** + * Returns information about the recent items accessed by a user, either in the last 90 days or up + * to the last 1000 items accessed. + * + * @param queryParams Query parameters of getRecentItems method + */ public RecentItems getRecentItems(GetRecentItemsQueryParams queryParams) { return getRecentItems(queryParams, new GetRecentItemsHeaders()); } + /** + * Returns information about the recent items accessed by a user, either in the last 90 days or up + * to the last 1000 items accessed. + * + * @param headers Headers of getRecentItems method + */ public RecentItems getRecentItems(GetRecentItemsHeaders headers) { return getRecentItems(new GetRecentItemsQueryParams(), headers); } + /** + * Returns information about the recent items accessed by a user, either in the last 90 days or up + * to the last 1000 items accessed. + * + * @param queryParams Query parameters of getRecentItems method + * @param headers Headers of getRecentItems method + */ public RecentItems getRecentItems( GetRecentItemsQueryParams queryParams, GetRecentItemsHeaders headers) { Map queryParamsMap = diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyHeaders.java index 2f9c7c068..c7a3b8d1f 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyHeaders.java @@ -6,6 +6,7 @@ public class CreateRetentionPolicyHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateRetentionPolicyHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBody.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBody.java index 99e78f29a..1c35d135a 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBody.java @@ -14,11 +14,18 @@ @JsonFilter("nullablePropertyFilter") public class CreateRetentionPolicyRequestBody extends SerializableObject { + /** The name for the retention policy. */ @JsonProperty("policy_name") protected final String policyName; + /** The additional text description of the retention policy. */ protected String description; + /** + * The type of the retention policy. A retention policy type can either be `finite`, where a + * specific amount of time to retain the content is known upfront, or `indefinite`, where the + * amount of time to retain the content is still unknown. + */ @JsonDeserialize( using = CreateRetentionPolicyRequestBodyPolicyTypeField @@ -30,6 +37,11 @@ public class CreateRetentionPolicyRequestBody extends SerializableObject { @JsonProperty("policy_type") protected final EnumWrapper policyType; + /** + * The disposition action of the retention policy. `permanently_delete` deletes the content + * retained by the policy permanently. `remove_retention` lifts retention policy from the content, + * allowing it to be deleted by users once the retention policy has expired. + */ @JsonDeserialize( using = CreateRetentionPolicyRequestBodyDispositionActionField @@ -42,9 +54,26 @@ public class CreateRetentionPolicyRequestBody extends SerializableObject { protected final EnumWrapper dispositionAction; + /** + * The length of the retention policy. This value specifies the duration in days that the + * retention policy will be active for after being assigned to content. If the policy has a + * `policy_type` of `indefinite`, the `retention_length` will also be `indefinite`. + */ @JsonProperty("retention_length") protected String retentionLength; + /** + * Specifies the retention type: + * + *

    * `modifiable`: You can modify the retention policy. For example, you can add or remove + * folders, shorten or lengthen the policy duration, or delete the assignment. Use this type if + * your retention policy is not related to any regulatory purposes. + * + *

    * `non_modifiable`: You can modify the retention policy only in a limited way: add a folder, + * lengthen the duration, retire the policy, change the disposition action or notification + * settings. You cannot perform other actions, such as deleting the assignment or shortening the + * policy duration. Use this type to ensure compliance with regulatory retention policies. + */ @JsonDeserialize( using = CreateRetentionPolicyRequestBodyRetentionTypeField @@ -56,12 +85,15 @@ public class CreateRetentionPolicyRequestBody extends SerializableObject { @JsonProperty("retention_type") protected EnumWrapper retentionType; + /** Whether the owner of a file will be allowed to extend the retention. */ @JsonProperty("can_owner_extend_retention") protected Boolean canOwnerExtendRetention; + /** Whether owner and co-owners of a file are notified when the policy nears expiration. */ @JsonProperty("are_owners_notified") protected Boolean areOwnersNotified; + /** A list of users notified when the retention policy duration is about to end. */ @JsonProperty("custom_notification_recipients") protected List customNotificationRecipients; diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/DeleteRetentionPolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/DeleteRetentionPolicyByIdHeaders.java index 542a5dbcd..2b885193d 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicies/DeleteRetentionPolicyByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/DeleteRetentionPolicyByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteRetentionPolicyByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteRetentionPolicyByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesHeaders.java index 04feb1537..b56f06fe0 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesHeaders.java @@ -6,6 +6,7 @@ public class GetRetentionPoliciesHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetRetentionPoliciesHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesQueryParams.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesQueryParams.java index 33ef29c7a..00a57868c 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesQueryParams.java @@ -5,16 +5,32 @@ public class GetRetentionPoliciesQueryParams { + /** Filters results by a case sensitive prefix of the name of retention policies. */ public String policyName; + /** Filters results by the type of retention policy. */ public EnumWrapper policyType; + /** Filters results by the ID of the user who created policy. */ public String createdByUserId; + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; + /** The maximum number of items to return per page. */ public Long limit; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + */ public String marker; public GetRetentionPoliciesQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPolicyByIdHeaders.java index a06a575b6..60cdf5b08 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPolicyByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPolicyByIdHeaders.java @@ -6,6 +6,7 @@ public class GetRetentionPolicyByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetRetentionPolicyByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPolicyByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPolicyByIdQueryParams.java index d1da411bf..c54160ae4 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPolicyByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPolicyByIdQueryParams.java @@ -4,6 +4,14 @@ public class GetRetentionPolicyByIdQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public GetRetentionPolicyByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/RetentionPoliciesManager.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/RetentionPoliciesManager.java index 1bc4120e8..24cf8d19f 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicies/RetentionPoliciesManager.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/RetentionPoliciesManager.java @@ -31,19 +31,36 @@ protected RetentionPoliciesManager(Builder builder) { this.networkSession = builder.networkSession; } + /** Retrieves all of the retention policies for an enterprise. */ public RetentionPolicies getRetentionPolicies() { return getRetentionPolicies( new GetRetentionPoliciesQueryParams(), new GetRetentionPoliciesHeaders()); } + /** + * Retrieves all of the retention policies for an enterprise. + * + * @param queryParams Query parameters of getRetentionPolicies method + */ public RetentionPolicies getRetentionPolicies(GetRetentionPoliciesQueryParams queryParams) { return getRetentionPolicies(queryParams, new GetRetentionPoliciesHeaders()); } + /** + * Retrieves all of the retention policies for an enterprise. + * + * @param headers Headers of getRetentionPolicies method + */ public RetentionPolicies getRetentionPolicies(GetRetentionPoliciesHeaders headers) { return getRetentionPolicies(new GetRetentionPoliciesQueryParams(), headers); } + /** + * Retrieves all of the retention policies for an enterprise. + * + * @param queryParams Query parameters of getRetentionPolicies method + * @param headers Headers of getRetentionPolicies method + */ public RetentionPolicies getRetentionPolicies( GetRetentionPoliciesQueryParams queryParams, GetRetentionPoliciesHeaders headers) { Map queryParamsMap = @@ -75,10 +92,21 @@ public RetentionPolicies getRetentionPolicies( return JsonManager.deserialize(response.getData(), RetentionPolicies.class); } + /** + * Creates a retention policy. + * + * @param requestBody Request body of createRetentionPolicy method + */ public RetentionPolicy createRetentionPolicy(CreateRetentionPolicyRequestBody requestBody) { return createRetentionPolicy(requestBody, new CreateRetentionPolicyHeaders()); } + /** + * Creates a retention policy. + * + * @param requestBody Request body of createRetentionPolicy method + * @param headers Headers of createRetentionPolicy method + */ public RetentionPolicy createRetentionPolicy( CreateRetentionPolicyRequestBody requestBody, CreateRetentionPolicyHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -102,6 +130,11 @@ public RetentionPolicy createRetentionPolicy( return JsonManager.deserialize(response.getData(), RetentionPolicy.class); } + /** + * Retrieves a retention policy. + * + * @param retentionPolicyId The ID of the retention policy. Example: "982312" + */ public RetentionPolicy getRetentionPolicyById(String retentionPolicyId) { return getRetentionPolicyById( retentionPolicyId, @@ -109,18 +142,37 @@ public RetentionPolicy getRetentionPolicyById(String retentionPolicyId) { new GetRetentionPolicyByIdHeaders()); } + /** + * Retrieves a retention policy. + * + * @param retentionPolicyId The ID of the retention policy. Example: "982312" + * @param queryParams Query parameters of getRetentionPolicyById method + */ public RetentionPolicy getRetentionPolicyById( String retentionPolicyId, GetRetentionPolicyByIdQueryParams queryParams) { return getRetentionPolicyById( retentionPolicyId, queryParams, new GetRetentionPolicyByIdHeaders()); } + /** + * Retrieves a retention policy. + * + * @param retentionPolicyId The ID of the retention policy. Example: "982312" + * @param headers Headers of getRetentionPolicyById method + */ public RetentionPolicy getRetentionPolicyById( String retentionPolicyId, GetRetentionPolicyByIdHeaders headers) { return getRetentionPolicyById( retentionPolicyId, new GetRetentionPolicyByIdQueryParams(), headers); } + /** + * Retrieves a retention policy. + * + * @param retentionPolicyId The ID of the retention policy. Example: "982312" + * @param queryParams Query parameters of getRetentionPolicyById method + * @param headers Headers of getRetentionPolicyById method + */ public RetentionPolicy getRetentionPolicyById( String retentionPolicyId, GetRetentionPolicyByIdQueryParams queryParams, @@ -148,6 +200,11 @@ public RetentionPolicy getRetentionPolicyById( return JsonManager.deserialize(response.getData(), RetentionPolicy.class); } + /** + * Updates a retention policy. + * + * @param retentionPolicyId The ID of the retention policy. Example: "982312" + */ public RetentionPolicy updateRetentionPolicyById(String retentionPolicyId) { return updateRetentionPolicyById( retentionPolicyId, @@ -155,18 +212,37 @@ public RetentionPolicy updateRetentionPolicyById(String retentionPolicyId) { new UpdateRetentionPolicyByIdHeaders()); } + /** + * Updates a retention policy. + * + * @param retentionPolicyId The ID of the retention policy. Example: "982312" + * @param requestBody Request body of updateRetentionPolicyById method + */ public RetentionPolicy updateRetentionPolicyById( String retentionPolicyId, UpdateRetentionPolicyByIdRequestBody requestBody) { return updateRetentionPolicyById( retentionPolicyId, requestBody, new UpdateRetentionPolicyByIdHeaders()); } + /** + * Updates a retention policy. + * + * @param retentionPolicyId The ID of the retention policy. Example: "982312" + * @param headers Headers of updateRetentionPolicyById method + */ public RetentionPolicy updateRetentionPolicyById( String retentionPolicyId, UpdateRetentionPolicyByIdHeaders headers) { return updateRetentionPolicyById( retentionPolicyId, new UpdateRetentionPolicyByIdRequestBody(), headers); } + /** + * Updates a retention policy. + * + * @param retentionPolicyId The ID of the retention policy. Example: "982312" + * @param requestBody Request body of updateRetentionPolicyById method + * @param headers Headers of updateRetentionPolicyById method + */ public RetentionPolicy updateRetentionPolicyById( String retentionPolicyId, UpdateRetentionPolicyByIdRequestBody requestBody, @@ -193,10 +269,21 @@ public RetentionPolicy updateRetentionPolicyById( return JsonManager.deserialize(response.getData(), RetentionPolicy.class); } + /** + * Permanently deletes a retention policy. + * + * @param retentionPolicyId The ID of the retention policy. Example: "982312" + */ public void deleteRetentionPolicyById(String retentionPolicyId) { deleteRetentionPolicyById(retentionPolicyId, new DeleteRetentionPolicyByIdHeaders()); } + /** + * Permanently deletes a retention policy. + * + * @param retentionPolicyId The ID of the retention policy. Example: "982312" + * @param headers Headers of deleteRetentionPolicyById method + */ public void deleteRetentionPolicyById( String retentionPolicyId, DeleteRetentionPolicyByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdHeaders.java index 41b992487..cd6350d66 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdHeaders.java @@ -6,6 +6,7 @@ public class UpdateRetentionPolicyByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateRetentionPolicyByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdRequestBody.java index 8e8b34d02..8f2032ae6 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdRequestBody.java @@ -12,32 +12,74 @@ @JsonFilter("nullablePropertyFilter") public class UpdateRetentionPolicyByIdRequestBody extends SerializableObject { + /** The name for the retention policy. */ @JsonProperty("policy_name") @Nullable protected String policyName; + /** The additional text description of the retention policy. */ @Nullable protected String description; + /** + * The disposition action of the retention policy. This action can be `permanently_delete`, which + * will cause the content retained by the policy to be permanently deleted, or `remove_retention`, + * which will lift the retention policy from the content, allowing it to be deleted by users, once + * the retention policy has expired. You can use `null` if you don't want to change + * `disposition_action`. + */ @JsonProperty("disposition_action") protected String dispositionAction; + /** + * Specifies the retention type: + * + *

    * `modifiable`: You can modify the retention policy. For example, you can add or remove + * folders, shorten or lengthen the policy duration, or delete the assignment. Use this type if + * your retention policy is not related to any regulatory purposes. * `non-modifiable`: You can + * modify the retention policy only in a limited way: add a folder, lengthen the duration, retire + * the policy, change the disposition action or notification settings. You cannot perform other + * actions, such as deleting the assignment or shortening the policy duration. Use this type to + * ensure compliance with regulatory retention policies. + * + *

    When updating a retention policy, you can use `non-modifiable` type only. You can convert a + * `modifiable` policy to `non-modifiable`, but not the other way around. + */ @JsonProperty("retention_type") @Nullable protected String retentionType; + /** + * The length of the retention policy. This value specifies the duration in days that the + * retention policy will be active for after being assigned to content. If the policy has a + * `policy_type` of `indefinite`, the `retention_length` will also be `indefinite`. + */ @JsonProperty("retention_length") protected String retentionLength; + /** + * Used to retire a retention policy. + * + *

    If not retiring a policy, do not include this parameter or set it to `null`. + */ @Nullable protected String status; + /** + * Determines if the owner of items under the policy can extend the retention when the original + * retention duration is about to end. + */ @JsonProperty("can_owner_extend_retention") @Nullable protected Boolean canOwnerExtendRetention; + /** + * Determines if owners and co-owners of items under the policy are notified when the retention + * duration is about to end. + */ @JsonProperty("are_owners_notified") @Nullable protected Boolean areOwnersNotified; + /** A list of users notified when the retention duration is about to end. */ @JsonProperty("custom_notification_recipients") @Nullable protected List customNotificationRecipients; diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentHeaders.java index 45f2b96e6..308892d32 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentHeaders.java @@ -6,6 +6,7 @@ public class CreateRetentionPolicyAssignmentHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateRetentionPolicyAssignmentHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBody.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBody.java index dae5c645e..89930496e 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBody.java @@ -10,15 +10,28 @@ @JsonFilter("nullablePropertyFilter") public class CreateRetentionPolicyAssignmentRequestBody extends SerializableObject { + /** The ID of the retention policy to assign. */ @JsonProperty("policy_id") protected final String policyId; + /** The item to assign the policy to. */ @JsonProperty("assign_to") protected final CreateRetentionPolicyAssignmentRequestBodyAssignToField assignTo; + /** + * If the `assign_to` type is `metadata_template`, then optionally add the `filter_fields` + * parameter which will require an array of objects with a field entry and a value entry. + * Currently only one object of `field` and `value` is supported. + */ @JsonProperty("filter_fields") protected List filterFields; + /** + * The date the retention policy assignment begins. + * + *

    If the `assigned_to` type is `metadata_template`, this field can be a date field's metadata + * attribute key id. + */ @JsonProperty("start_date_field") protected String startDateField; diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBodyAssignToField.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBodyAssignToField.java index 2566e6573..974ad22f6 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBodyAssignToField.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBodyAssignToField.java @@ -13,6 +13,7 @@ @JsonFilter("nullablePropertyFilter") public class CreateRetentionPolicyAssignmentRequestBodyAssignToField extends SerializableObject { + /** The type of item to assign the policy to. */ @JsonDeserialize( using = CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField @@ -23,6 +24,10 @@ public class CreateRetentionPolicyAssignmentRequestBodyAssignToField extends Ser .CreateRetentionPolicyAssignmentRequestBodyAssignToTypeFieldSerializer.class) protected final EnumWrapper type; + /** + * The ID of item to assign the policy to. Set to `null` or omit when `type` is set to + * `enterprise`. + */ @Nullable protected String id; public CreateRetentionPolicyAssignmentRequestBodyAssignToField( diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField.java index 07371b4e9..2cab6bf11 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField.java @@ -9,8 +9,10 @@ public class CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField extends SerializableObject { + /** The metadata attribute key id. */ protected String field; + /** The metadata attribute field id. For value, only enum and multiselect types are supported. */ protected String value; public CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField() { diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/DeleteRetentionPolicyAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/DeleteRetentionPolicyAssignmentByIdHeaders.java index b227a22b3..b9312489c 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/DeleteRetentionPolicyAssignmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/DeleteRetentionPolicyAssignmentByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteRetentionPolicyAssignmentByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteRetentionPolicyAssignmentByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetFilesUnderRetentionPolicyAssignmentHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetFilesUnderRetentionPolicyAssignmentHeaders.java index 2e20d07cd..8185e2a8c 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetFilesUnderRetentionPolicyAssignmentHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetFilesUnderRetentionPolicyAssignmentHeaders.java @@ -6,6 +6,7 @@ public class GetFilesUnderRetentionPolicyAssignmentHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFilesUnderRetentionPolicyAssignmentHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetFilesUnderRetentionPolicyAssignmentQueryParams.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetFilesUnderRetentionPolicyAssignmentQueryParams.java index 8a74621a1..2138a5c3b 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetFilesUnderRetentionPolicyAssignmentQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetFilesUnderRetentionPolicyAssignmentQueryParams.java @@ -2,8 +2,15 @@ public class GetFilesUnderRetentionPolicyAssignmentQueryParams { + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetFilesUnderRetentionPolicyAssignmentQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentByIdHeaders.java index 09f3b0084..5b15d0c10 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentByIdHeaders.java @@ -6,6 +6,7 @@ public class GetRetentionPolicyAssignmentByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetRetentionPolicyAssignmentByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentByIdQueryParams.java index 9e1731bef..847f643e0 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentByIdQueryParams.java @@ -4,6 +4,14 @@ public class GetRetentionPolicyAssignmentByIdQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public GetRetentionPolicyAssignmentByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsHeaders.java index c637eabc6..6b6c8fe08 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsHeaders.java @@ -6,6 +6,7 @@ public class GetRetentionPolicyAssignmentsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetRetentionPolicyAssignmentsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsQueryParams.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsQueryParams.java index 276456a3c..2cdbf0e43 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsQueryParams.java @@ -5,12 +5,26 @@ public class GetRetentionPolicyAssignmentsQueryParams { + /** The type of the retention policy assignment to retrieve. */ public EnumWrapper type; + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetRetentionPolicyAssignmentsQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/RetentionPolicyAssignmentsManager.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/RetentionPolicyAssignmentsManager.java index 6ab42abcf..5bdf87640 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/RetentionPolicyAssignmentsManager.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/RetentionPolicyAssignmentsManager.java @@ -32,6 +32,12 @@ protected RetentionPolicyAssignmentsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Returns a list of all retention policy assignments associated with a specified retention + * policy. + * + * @param retentionPolicyId The ID of the retention policy. Example: "982312" + */ public RetentionPolicyAssignments getRetentionPolicyAssignments(String retentionPolicyId) { return getRetentionPolicyAssignments( retentionPolicyId, @@ -39,18 +45,40 @@ public RetentionPolicyAssignments getRetentionPolicyAssignments(String retention new GetRetentionPolicyAssignmentsHeaders()); } + /** + * Returns a list of all retention policy assignments associated with a specified retention + * policy. + * + * @param retentionPolicyId The ID of the retention policy. Example: "982312" + * @param queryParams Query parameters of getRetentionPolicyAssignments method + */ public RetentionPolicyAssignments getRetentionPolicyAssignments( String retentionPolicyId, GetRetentionPolicyAssignmentsQueryParams queryParams) { return getRetentionPolicyAssignments( retentionPolicyId, queryParams, new GetRetentionPolicyAssignmentsHeaders()); } + /** + * Returns a list of all retention policy assignments associated with a specified retention + * policy. + * + * @param retentionPolicyId The ID of the retention policy. Example: "982312" + * @param headers Headers of getRetentionPolicyAssignments method + */ public RetentionPolicyAssignments getRetentionPolicyAssignments( String retentionPolicyId, GetRetentionPolicyAssignmentsHeaders headers) { return getRetentionPolicyAssignments( retentionPolicyId, new GetRetentionPolicyAssignmentsQueryParams(), headers); } + /** + * Returns a list of all retention policy assignments associated with a specified retention + * policy. + * + * @param retentionPolicyId The ID of the retention policy. Example: "982312" + * @param queryParams Query parameters of getRetentionPolicyAssignments method + * @param headers Headers of getRetentionPolicyAssignments method + */ public RetentionPolicyAssignments getRetentionPolicyAssignments( String retentionPolicyId, GetRetentionPolicyAssignmentsQueryParams queryParams, @@ -84,12 +112,23 @@ public RetentionPolicyAssignments getRetentionPolicyAssignments( return JsonManager.deserialize(response.getData(), RetentionPolicyAssignments.class); } + /** + * Assigns a retention policy to an item. + * + * @param requestBody Request body of createRetentionPolicyAssignment method + */ public RetentionPolicyAssignment createRetentionPolicyAssignment( CreateRetentionPolicyAssignmentRequestBody requestBody) { return createRetentionPolicyAssignment( requestBody, new CreateRetentionPolicyAssignmentHeaders()); } + /** + * Assigns a retention policy to an item. + * + * @param requestBody Request body of createRetentionPolicyAssignment method + * @param headers Headers of createRetentionPolicyAssignment method + */ public RetentionPolicyAssignment createRetentionPolicyAssignment( CreateRetentionPolicyAssignmentRequestBody requestBody, CreateRetentionPolicyAssignmentHeaders headers) { @@ -114,6 +153,12 @@ public RetentionPolicyAssignment createRetentionPolicyAssignment( return JsonManager.deserialize(response.getData(), RetentionPolicyAssignment.class); } + /** + * Retrieves a retention policy assignment. + * + * @param retentionPolicyAssignmentId The ID of the retention policy assignment. Example: + * "1233123" + */ public RetentionPolicyAssignment getRetentionPolicyAssignmentById( String retentionPolicyAssignmentId) { return getRetentionPolicyAssignmentById( @@ -122,18 +167,40 @@ public RetentionPolicyAssignment getRetentionPolicyAssignmentById( new GetRetentionPolicyAssignmentByIdHeaders()); } + /** + * Retrieves a retention policy assignment. + * + * @param retentionPolicyAssignmentId The ID of the retention policy assignment. Example: + * "1233123" + * @param queryParams Query parameters of getRetentionPolicyAssignmentById method + */ public RetentionPolicyAssignment getRetentionPolicyAssignmentById( String retentionPolicyAssignmentId, GetRetentionPolicyAssignmentByIdQueryParams queryParams) { return getRetentionPolicyAssignmentById( retentionPolicyAssignmentId, queryParams, new GetRetentionPolicyAssignmentByIdHeaders()); } + /** + * Retrieves a retention policy assignment. + * + * @param retentionPolicyAssignmentId The ID of the retention policy assignment. Example: + * "1233123" + * @param headers Headers of getRetentionPolicyAssignmentById method + */ public RetentionPolicyAssignment getRetentionPolicyAssignmentById( String retentionPolicyAssignmentId, GetRetentionPolicyAssignmentByIdHeaders headers) { return getRetentionPolicyAssignmentById( retentionPolicyAssignmentId, new GetRetentionPolicyAssignmentByIdQueryParams(), headers); } + /** + * Retrieves a retention policy assignment. + * + * @param retentionPolicyAssignmentId The ID of the retention policy assignment. Example: + * "1233123" + * @param queryParams Query parameters of getRetentionPolicyAssignmentById method + * @param headers Headers of getRetentionPolicyAssignmentById method + */ public RetentionPolicyAssignment getRetentionPolicyAssignmentById( String retentionPolicyAssignmentId, GetRetentionPolicyAssignmentByIdQueryParams queryParams, @@ -161,11 +228,24 @@ public RetentionPolicyAssignment getRetentionPolicyAssignmentById( return JsonManager.deserialize(response.getData(), RetentionPolicyAssignment.class); } + /** + * Removes a retention policy assignment applied to content. + * + * @param retentionPolicyAssignmentId The ID of the retention policy assignment. Example: + * "1233123" + */ public void deleteRetentionPolicyAssignmentById(String retentionPolicyAssignmentId) { deleteRetentionPolicyAssignmentById( retentionPolicyAssignmentId, new DeleteRetentionPolicyAssignmentByIdHeaders()); } + /** + * Removes a retention policy assignment applied to content. + * + * @param retentionPolicyAssignmentId The ID of the retention policy assignment. Example: + * "1233123" + * @param headers Headers of deleteRetentionPolicyAssignmentById method + */ public void deleteRetentionPolicyAssignmentById( String retentionPolicyAssignmentId, DeleteRetentionPolicyAssignmentByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -187,6 +267,12 @@ public void deleteRetentionPolicyAssignmentById( .build()); } + /** + * Returns a list of files under retention for a retention policy assignment. + * + * @param retentionPolicyAssignmentId The ID of the retention policy assignment. Example: + * "1233123" + */ public FilesUnderRetention getFilesUnderRetentionPolicyAssignment( String retentionPolicyAssignmentId) { return getFilesUnderRetentionPolicyAssignment( @@ -195,6 +281,13 @@ public FilesUnderRetention getFilesUnderRetentionPolicyAssignment( new GetFilesUnderRetentionPolicyAssignmentHeaders()); } + /** + * Returns a list of files under retention for a retention policy assignment. + * + * @param retentionPolicyAssignmentId The ID of the retention policy assignment. Example: + * "1233123" + * @param queryParams Query parameters of getFilesUnderRetentionPolicyAssignment method + */ public FilesUnderRetention getFilesUnderRetentionPolicyAssignment( String retentionPolicyAssignmentId, GetFilesUnderRetentionPolicyAssignmentQueryParams queryParams) { @@ -204,6 +297,13 @@ public FilesUnderRetention getFilesUnderRetentionPolicyAssignment( new GetFilesUnderRetentionPolicyAssignmentHeaders()); } + /** + * Returns a list of files under retention for a retention policy assignment. + * + * @param retentionPolicyAssignmentId The ID of the retention policy assignment. Example: + * "1233123" + * @param headers Headers of getFilesUnderRetentionPolicyAssignment method + */ public FilesUnderRetention getFilesUnderRetentionPolicyAssignment( String retentionPolicyAssignmentId, GetFilesUnderRetentionPolicyAssignmentHeaders headers) { return getFilesUnderRetentionPolicyAssignment( @@ -212,6 +312,14 @@ public FilesUnderRetention getFilesUnderRetentionPolicyAssignment( headers); } + /** + * Returns a list of files under retention for a retention policy assignment. + * + * @param retentionPolicyAssignmentId The ID of the retention policy assignment. Example: + * "1233123" + * @param queryParams Query parameters of getFilesUnderRetentionPolicyAssignment method + * @param headers Headers of getFilesUnderRetentionPolicyAssignment method + */ public FilesUnderRetention getFilesUnderRetentionPolicyAssignment( String retentionPolicyAssignmentId, GetFilesUnderRetentionPolicyAssignmentQueryParams queryParams, diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchByMetadataQueryHeaders.java b/src/main/java/com/box/sdkgen/managers/search/SearchByMetadataQueryHeaders.java index 218bcc2b1..8d28f8b14 100644 --- a/src/main/java/com/box/sdkgen/managers/search/SearchByMetadataQueryHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/search/SearchByMetadataQueryHeaders.java @@ -6,6 +6,7 @@ public class SearchByMetadataQueryHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public SearchByMetadataQueryHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchForContentHeaders.java b/src/main/java/com/box/sdkgen/managers/search/SearchForContentHeaders.java index 6894eb19c..63544ae9b 100644 --- a/src/main/java/com/box/sdkgen/managers/search/SearchForContentHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/search/SearchForContentHeaders.java @@ -6,6 +6,7 @@ public class SearchForContentHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public SearchForContentHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParams.java b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParams.java index 386f862d1..ea37b6247 100644 --- a/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParams.java @@ -16,46 +16,255 @@ public class SearchForContentQueryParams { + /** + * The string to search for. This query is matched against item names, descriptions, text content + * of files, and various other fields of the different item types. + * + *

    This parameter supports a variety of operators to further refine the results returns. + * + *

    * `""` - by wrapping a query in double quotes only exact matches are returned by the API. + * Exact searches do not return search matches based on specific character sequences. Instead, + * they return matches based on phrases, that is, word sequences. For example: A search for + * `"Blue-Box"` may return search results including the sequence `"blue.box"`, `"Blue Box"`, and + * `"Blue-Box"`; any item containing the words `Blue` and `Box` consecutively, in the order + * specified. * `AND` - returns items that contain both the search terms. For example, a search + * for `marketing AND BoxWorks` returns items that have both `marketing` and `BoxWorks` within its + * text in any order. It does not return a result that only has `BoxWorks` in its text. * `OR` - + * returns items that contain either of the search terms. For example, a search for `marketing OR + * BoxWorks` returns a result that has either `marketing` or `BoxWorks` within its text. Using + * this operator is not necessary as we implicitly interpret multi-word queries as `OR` unless + * another supported boolean term is used. * `NOT` - returns items that do not contain the search + * term provided. For example, a search for `marketing AND NOT BoxWorks` returns a result that has + * only `marketing` within its text. Results containing `BoxWorks` are omitted. + * + *

    We do not support lower case (that is, `and`, `or`, and `not`) or mixed case (that is, + * `And`, `Or`, and `Not`) operators. + * + *

    This field is required unless the `mdfilters` parameter is defined. + */ public String query; + /** + * Limits the search results to either the files that the user has access to, or to files + * available to the entire enterprise. + * + *

    The scope defaults to `user_content`, which limits the search results to content that is + * available to the currently authenticated user. + * + *

    The `enterprise_content` can be requested by an admin through our support channels. Once + * this scope has been enabled for a user, it will allow that use to query for content across the + * entire enterprise and not only the content that they have access to. + */ public EnumWrapper scope; + /** + * Limits the search results to any files that match any of the provided file extensions. This + * list is a comma-separated list of file extensions without the dots. + */ public List fileExtensions; + /** + * Limits the search results to any items created within a given date range. + * + *

    Date ranges are defined as comma separated RFC3339 timestamps. + * + *

    If the start date is omitted (`,2014-05-17T13:35:01-07:00`) anything created before the end + * date will be returned. + * + *

    If the end date is omitted (`2014-05-15T13:35:01-07:00,`) the current date will be used as + * the end date instead. + */ public List createdAtRange; + /** + * Limits the search results to any items updated within a given date range. + * + *

    Date ranges are defined as comma separated RFC3339 timestamps. + * + *

    If the start date is omitted (`,2014-05-17T13:35:01-07:00`) anything updated before the end + * date will be returned. + * + *

    If the end date is omitted (`2014-05-15T13:35:01-07:00,`) the current date will be used as + * the end date instead. + */ public List updatedAtRange; + /** + * Limits the search results to any items with a size within a given file size range. This applied + * to files and folders. + * + *

    Size ranges are defined as comma separated list of a lower and upper byte size limit + * (inclusive). + * + *

    The upper and lower bound can be omitted to create open ranges. + */ public List sizeRange; + /** + * Limits the search results to any items that are owned by the given list of owners, defined as a + * list of comma separated user IDs. + * + *

    The items still need to be owned or shared with the currently authenticated user for them to + * show up in the search results. If the user does not have access to any files owned by any of + * the users an empty result set will be returned. + * + *

    To search across an entire enterprise, we recommend using the `enterprise_content` scope + * parameter which can be requested with our support team. + */ public List ownerUserIds; + /** + * Limits the search results to any items that have been updated by the given list of users, + * defined as a list of comma separated user IDs. + * + *

    The items still need to be owned or shared with the currently authenticated user for them to + * show up in the search results. If the user does not have access to any files owned by any of + * the users an empty result set will be returned. + * + *

    This feature only searches back to the last 10 versions of an item. + */ public List recentUpdaterUserIds; + /** + * Limits the search results to items within the given list of folders, defined as a comma + * separated lists of folder IDs. + * + *

    Search results will also include items within any subfolders of those ancestor folders. + * + *

    The folders still need to be owned or shared with the currently authenticated user. If the + * folder is not accessible by this user, or it does not exist, a `HTTP 404` error code will be + * returned instead. + * + *

    To search across an entire enterprise, we recommend using the `enterprise_content` scope + * parameter which can be requested with our support team. + */ public List ancestorFolderIds; + /** + * Limits the search results to any items that match the search query for a specific part of the + * file, for example the file description. + * + *

    Content types are defined as a comma separated lists of Box recognized content types. The + * allowed content types are as follows. + * + *

    * `name` - The name of the item, as defined by its `name` field. * `description` - The + * description of the item, as defined by its `description` field. * `file_content` - The actual + * content of the file. * `comments` - The content of any of the comments on a file or folder. * + * `tags` - Any tags that are applied to an item, as defined by its `tags` field. + */ public List> contentTypes; + /** + * Limits the search results to any items of this type. This parameter only takes one value. By + * default the API returns items that match any of these types. + * + *

    * `file` - Limits the search results to files, * `folder` - Limits the search results to + * folders, * `web_link` - Limits the search results to web links, also known as bookmarks. + */ public EnumWrapper type; + /** + * Determines if the search should look in the trash for items. + * + *

    By default, this API only returns search results for items not currently in the trash + * (`non_trashed_only`). + * + *

    * `trashed_only` - Only searches for items currently in the trash * `non_trashed_only` - + * Only searches for items currently not in the trash * `all_items` - Searches for both trashed + * and non-trashed items. + */ public EnumWrapper trashContent; + /** + * Limits the search results to any items for which the metadata matches the provided filter. This + * parameter is a list that specifies exactly **one** metadata template used to filter the search + * results. The parameter is required unless the `query` parameter is provided. + */ public List mdfilters; + /** + * Defines the order in which search results are returned. This API defaults to returning items by + * relevance unless this parameter is explicitly specified. + * + *

    * `relevance` (default) returns the results sorted by relevance to the query search term. + * The relevance is based on the occurrence of the search term in the items name, description, + * content, and additional properties. * `modified_at` returns the results ordered in descending + * order by date at which the item was last modified. + */ public EnumWrapper sort; + /** + * Defines the direction in which search results are ordered. This API defaults to returning items + * in descending (`DESC`) order unless this parameter is explicitly specified. + * + *

    When results are sorted by `relevance` the ordering is locked to returning items in + * descending order of relevance, and this parameter is ignored. + */ public EnumWrapper direction; + /** Defines the maximum number of items to return as part of a page of results. */ public Long limit; + /** + * Defines whether the search results should include any items that the user recently accessed + * through a shared link. + * + *

    When this parameter has been set to true, the format of the response of this API changes to + * return a list of [Search Results with Shared Links](r://search_results_with_shared_links). + */ public Boolean includeRecentSharedLinks; + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; + /** + * The offset of the item at which to begin the response. + * + *

    Queries with offset parameter value exceeding 10000 will be rejected with a 400 response. + */ public Long offset; + /** + * Limits the search results to items that were deleted by the given list of users, defined as a + * list of comma separated user IDs. + * + *

    The `trash_content` parameter needs to be set to `trashed_only`. + * + *

    If searching in trash is not performed, an empty result set is returned. The items need to + * be owned or shared with the currently authenticated user for them to show up in the search + * results. + * + *

    If the user does not have access to any files owned by any of the users, an empty result set + * is returned. + * + *

    Data available from 2023-02-01 onwards. + */ public List deletedUserIds; + /** + * Limits the search results to any items deleted within a given date range. + * + *

    Date ranges are defined as comma separated RFC3339 timestamps. + * + *

    If the start date is omitted (`2014-05-17T13:35:01-07:00`), anything deleted before the end + * date will be returned. + * + *

    If the end date is omitted (`2014-05-15T13:35:01-07:00`), the current date will be used as + * the end date instead. + * + *

    The `trash_content` parameter needs to be set to `trashed_only`. + * + *

    If searching in trash is not performed, then an empty result is returned. + * + *

    Data available from 2023-02-01 onwards. + */ public List deletedAtRange; public SearchForContentQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchManager.java b/src/main/java/com/box/sdkgen/managers/search/SearchManager.java index 08187f23a..13799ff53 100644 --- a/src/main/java/com/box/sdkgen/managers/search/SearchManager.java +++ b/src/main/java/com/box/sdkgen/managers/search/SearchManager.java @@ -32,10 +32,29 @@ protected SearchManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Create a search using SQL-like syntax to return items that match specific metadata. + * + *

    By default, this endpoint returns only the most basic info about the items for which the + * query matches. To get additional fields for each item, including any of the metadata, use the + * `fields` attribute in the query. + * + * @param requestBody Request body of searchByMetadataQuery method + */ public MetadataQueryResults searchByMetadataQuery(MetadataQuery requestBody) { return searchByMetadataQuery(requestBody, new SearchByMetadataQueryHeaders()); } + /** + * Create a search using SQL-like syntax to return items that match specific metadata. + * + *

    By default, this endpoint returns only the most basic info about the items for which the + * query matches. To get additional fields for each item, including any of the metadata, use the + * `fields` attribute in the query. + * + * @param requestBody Request body of searchByMetadataQuery method + * @param headers Headers of searchByMetadataQuery method + */ public MetadataQueryResults searchByMetadataQuery( MetadataQuery requestBody, SearchByMetadataQueryHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -59,18 +78,41 @@ public MetadataQueryResults searchByMetadataQuery( return JsonManager.deserialize(response.getData(), MetadataQueryResults.class); } + /** + * Searches for files, folders, web links, and shared files across the users content or across the + * entire enterprise. + */ public SearchResultsResponse searchForContent() { return searchForContent(new SearchForContentQueryParams(), new SearchForContentHeaders()); } + /** + * Searches for files, folders, web links, and shared files across the users content or across the + * entire enterprise. + * + * @param queryParams Query parameters of searchForContent method + */ public SearchResultsResponse searchForContent(SearchForContentQueryParams queryParams) { return searchForContent(queryParams, new SearchForContentHeaders()); } + /** + * Searches for files, folders, web links, and shared files across the users content or across the + * entire enterprise. + * + * @param headers Headers of searchForContent method + */ public SearchResultsResponse searchForContent(SearchForContentHeaders headers) { return searchForContent(new SearchForContentQueryParams(), headers); } + /** + * Searches for files, folders, web links, and shared files across the users content or across the + * entire enterprise. + * + * @param queryParams Query parameters of searchForContent method + * @param headers Headers of searchForContent method + */ public SearchResultsResponse searchForContent( SearchForContentQueryParams queryParams, SearchForContentHeaders headers) { Map queryParamsMap = diff --git a/src/main/java/com/box/sdkgen/managers/sessiontermination/SessionTerminationManager.java b/src/main/java/com/box/sdkgen/managers/sessiontermination/SessionTerminationManager.java index 9fb5b72bb..03e6c3422 100644 --- a/src/main/java/com/box/sdkgen/managers/sessiontermination/SessionTerminationManager.java +++ b/src/main/java/com/box/sdkgen/managers/sessiontermination/SessionTerminationManager.java @@ -28,11 +28,24 @@ protected SessionTerminationManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Validates the roles and permissions of the user, and creates asynchronous jobs to terminate the + * user's sessions. Returns the status for the POST request. + * + * @param requestBody Request body of terminateUsersSessions method + */ public SessionTerminationMessage terminateUsersSessions( TerminateUsersSessionsRequestBody requestBody) { return terminateUsersSessions(requestBody, new TerminateUsersSessionsHeaders()); } + /** + * Validates the roles and permissions of the user, and creates asynchronous jobs to terminate the + * user's sessions. Returns the status for the POST request. + * + * @param requestBody Request body of terminateUsersSessions method + * @param headers Headers of terminateUsersSessions method + */ public SessionTerminationMessage terminateUsersSessions( TerminateUsersSessionsRequestBody requestBody, TerminateUsersSessionsHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -56,11 +69,24 @@ public SessionTerminationMessage terminateUsersSessions( return JsonManager.deserialize(response.getData(), SessionTerminationMessage.class); } + /** + * Validates the roles and permissions of the group, and creates asynchronous jobs to terminate + * the group's sessions. Returns the status for the POST request. + * + * @param requestBody Request body of terminateGroupsSessions method + */ public SessionTerminationMessage terminateGroupsSessions( TerminateGroupsSessionsRequestBody requestBody) { return terminateGroupsSessions(requestBody, new TerminateGroupsSessionsHeaders()); } + /** + * Validates the roles and permissions of the group, and creates asynchronous jobs to terminate + * the group's sessions. Returns the status for the POST request. + * + * @param requestBody Request body of terminateGroupsSessions method + * @param headers Headers of terminateGroupsSessions method + */ public SessionTerminationMessage terminateGroupsSessions( TerminateGroupsSessionsRequestBody requestBody, TerminateGroupsSessionsHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); diff --git a/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateGroupsSessionsHeaders.java b/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateGroupsSessionsHeaders.java index 32df8b27b..30b4eeb0b 100644 --- a/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateGroupsSessionsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateGroupsSessionsHeaders.java @@ -6,6 +6,7 @@ public class TerminateGroupsSessionsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public TerminateGroupsSessionsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateGroupsSessionsRequestBody.java b/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateGroupsSessionsRequestBody.java index 5374e8584..65427fa5f 100644 --- a/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateGroupsSessionsRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateGroupsSessionsRequestBody.java @@ -9,6 +9,7 @@ @JsonFilter("nullablePropertyFilter") public class TerminateGroupsSessionsRequestBody extends SerializableObject { + /** A list of group IDs. */ @JsonProperty("group_ids") protected final List groupIds; diff --git a/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateUsersSessionsHeaders.java b/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateUsersSessionsHeaders.java index 652d5d926..7c8bf4476 100644 --- a/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateUsersSessionsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateUsersSessionsHeaders.java @@ -6,6 +6,7 @@ public class TerminateUsersSessionsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public TerminateUsersSessionsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateUsersSessionsRequestBody.java b/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateUsersSessionsRequestBody.java index eab49e34f..81609b3f6 100644 --- a/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateUsersSessionsRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateUsersSessionsRequestBody.java @@ -9,9 +9,11 @@ @JsonFilter("nullablePropertyFilter") public class TerminateUsersSessionsRequestBody extends SerializableObject { + /** A list of user IDs. */ @JsonProperty("user_ids") protected final List userIds; + /** A list of user logins. */ @JsonProperty("user_logins") protected final List userLogins; diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksappitems/FindAppItemForSharedLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksappitems/FindAppItemForSharedLinkHeaders.java index d7ec52e83..86f919d7c 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksappitems/FindAppItemForSharedLinkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksappitems/FindAppItemForSharedLinkHeaders.java @@ -6,8 +6,14 @@ public class FindAppItemForSharedLinkHeaders { + /** + * A header containing the shared link and optional password for the shared link. + * + *

    The format for this header is `shared_link=[link]&shared_link_password=[password]`. + */ public final String boxapi; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public FindAppItemForSharedLinkHeaders(String boxapi) { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksappitems/SharedLinksAppItemsManager.java b/src/main/java/com/box/sdkgen/managers/sharedlinksappitems/SharedLinksAppItemsManager.java index a9c39b60c..f857cf195 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksappitems/SharedLinksAppItemsManager.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksappitems/SharedLinksAppItemsManager.java @@ -30,6 +30,13 @@ protected SharedLinksAppItemsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Returns the app item represented by a shared link. + * + *

    The link can originate from the current enterprise or another. + * + * @param headers Headers of findAppItemForSharedLink method + */ public AppItem findAppItemForSharedLink(FindAppItemForSharedLinkHeaders headers) { Map headersMap = prepareParams( diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileHeaders.java index eb2cb8311..61d058307 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileHeaders.java @@ -6,6 +6,7 @@ public class AddShareLinkToFileHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public AddShareLinkToFileHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileQueryParams.java index 18da5322a..3355caa9d 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileQueryParams.java @@ -2,6 +2,7 @@ public class AddShareLinkToFileQueryParams { + /** Explicitly request the `shared_link` fields to be returned for this item. */ public final String fields; public AddShareLinkToFileQueryParams(String fields) { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBody.java index 00b62507f..e39e1a531 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBody.java @@ -9,6 +9,10 @@ @JsonFilter("nullablePropertyFilter") public class AddShareLinkToFileRequestBody extends SerializableObject { + /** + * The settings for the shared link to create on the file. Use an empty object (`{}`) to use the + * default settings for shared links. + */ @JsonProperty("shared_link") protected AddShareLinkToFileRequestBodySharedLinkField sharedLink; diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkField.java index b2d91906f..e777ed4a4 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkField.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkField.java @@ -15,6 +15,17 @@ @JsonFilter("nullablePropertyFilter") public class AddShareLinkToFileRequestBodySharedLinkField extends SerializableObject { + /** + * The level of access for the shared link. This can be restricted to anyone with the link + * (`open`), only people within the company (`company`) and only those who have been invited to + * the file (`collaborators`). + * + *

    If not set, this field defaults to the access level specified by the enterprise admin. To + * create a shared link with this default setting pass the `shared_link` object with no `access` + * field, for example `{ "shared_link": {} }`. + * + *

    The `company` access level is only available to paid accounts. + */ @JsonDeserialize( using = AddShareLinkToFileRequestBodySharedLinkAccessField @@ -25,11 +36,28 @@ public class AddShareLinkToFileRequestBodySharedLinkField extends SerializableOb .AddShareLinkToFileRequestBodySharedLinkAccessFieldSerializer.class) protected EnumWrapper access; + /** + * The password required to access the shared link. Set the password to `null` to remove it. + * Passwords must now be at least eight characters long and include a number, upper case letter, + * or a non-numeric or non-alphabetic character. A password can only be set when `access` is set + * to `open`. + */ @Nullable protected String password; + /** + * Defines a custom vanity name to use in the shared link URL, for example + * `https://app.box.com/v/my-shared-link`. + * + *

    Custom URLs should not be used when sharing sensitive content as vanity URLs are a lot + * easier to guess than regular shared links. + */ @JsonProperty("vanity_name") protected String vanityName; + /** + * The timestamp at which this shared link will expire. This field can only be set by users with + * paid accounts. The value must be greater than the current date and time. + */ @JsonProperty("unshared_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkPermissionsField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkPermissionsField.java index bd597948c..148e15505 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkPermissionsField.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkPermissionsField.java @@ -9,12 +9,24 @@ @JsonFilter("nullablePropertyFilter") public class AddShareLinkToFileRequestBodySharedLinkPermissionsField extends SerializableObject { + /** + * If the shared link allows for downloading of files. This can only be set when `access` is set + * to `open` or `company`. + */ @JsonProperty("can_download") protected Boolean canDownload; + /** + * If the shared link allows for previewing of files. This value is always `true`. For shared + * links on folders this also applies to any items in the folder. + */ @JsonProperty("can_preview") protected Boolean canPreview; + /** + * If the shared link allows for editing of files. This can only be set when `access` is set to + * `open` or `company`. This value can only be `true` is `can_download` is also `true`. + */ @JsonProperty("can_edit") protected Boolean canEdit; diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/FindFileForSharedLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/FindFileForSharedLinkHeaders.java index 24b2f99b8..fe9e72be6 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/FindFileForSharedLinkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/FindFileForSharedLinkHeaders.java @@ -6,10 +6,24 @@ public class FindFileForSharedLinkHeaders { + /** + * Ensures an item is only returned if it has changed. + * + *

    Pass in the item's last observed `etag` value into this header and the endpoint will fail + * with a `304 Not Modified` if the item has not changed since. + */ public String ifNoneMatch; + /** + * A header containing the shared link and optional password for the shared link. + * + *

    The format for this header is as follows: + * + *

    `shared_link=[link]&shared_link_password=[password]`. + */ public final String boxapi; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public FindFileForSharedLinkHeaders(String boxapi) { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/FindFileForSharedLinkQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/FindFileForSharedLinkQueryParams.java index b7d983870..5c18e05ff 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/FindFileForSharedLinkQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/FindFileForSharedLinkQueryParams.java @@ -4,6 +4,14 @@ public class FindFileForSharedLinkQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public FindFileForSharedLinkQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/GetSharedLinkForFileHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/GetSharedLinkForFileHeaders.java index da37692c8..bbd8a861c 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/GetSharedLinkForFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/GetSharedLinkForFileHeaders.java @@ -6,6 +6,7 @@ public class GetSharedLinkForFileHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetSharedLinkForFileHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/GetSharedLinkForFileQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/GetSharedLinkForFileQueryParams.java index 5d5f4cc74..d66e37619 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/GetSharedLinkForFileQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/GetSharedLinkForFileQueryParams.java @@ -2,6 +2,7 @@ public class GetSharedLinkForFileQueryParams { + /** Explicitly request the `shared_link` fields to be returned for this item. */ public final String fields; public GetSharedLinkForFileQueryParams(String fields) { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileHeaders.java index ff7937c3d..0d139d03b 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileHeaders.java @@ -6,6 +6,7 @@ public class RemoveSharedLinkFromFileHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public RemoveSharedLinkFromFileHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileQueryParams.java index e0bf0f280..1f55e9d2e 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileQueryParams.java @@ -2,6 +2,7 @@ public class RemoveSharedLinkFromFileQueryParams { + /** Explicitly request the `shared_link` fields to be returned for this item. */ public final String fields; public RemoveSharedLinkFromFileQueryParams(String fields) { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileRequestBody.java index feefe7b81..9bc326ac1 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileRequestBody.java @@ -10,6 +10,7 @@ @JsonFilter("nullablePropertyFilter") public class RemoveSharedLinkFromFileRequestBody extends SerializableObject { + /** By setting this value to `null`, the shared link is removed from the file. */ @JsonProperty("shared_link") @Nullable protected RemoveSharedLinkFromFileRequestBodySharedLinkField sharedLink; diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/SharedLinksFilesManager.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/SharedLinksFilesManager.java index aa1fcd233..b0f548f48 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/SharedLinksFilesManager.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/SharedLinksFilesManager.java @@ -30,10 +30,39 @@ protected SharedLinksFilesManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Returns the file represented by a shared link. + * + *

    A shared file can be represented by a shared link, which can originate within the current + * enterprise or within another. + * + *

    This endpoint allows an application to retrieve information about a shared file when only + * given a shared link. + * + *

    The `shared_link_permission_options` array field can be returned by requesting it in the + * `fields` query parameter. + * + * @param headers Headers of findFileForSharedLink method + */ public FileFull findFileForSharedLink(FindFileForSharedLinkHeaders headers) { return findFileForSharedLink(new FindFileForSharedLinkQueryParams(), headers); } + /** + * Returns the file represented by a shared link. + * + *

    A shared file can be represented by a shared link, which can originate within the current + * enterprise or within another. + * + *

    This endpoint allows an application to retrieve information about a shared file when only + * given a shared link. + * + *

    The `shared_link_permission_options` array field can be returned by requesting it in the + * `fields` query parameter. + * + * @param queryParams Query parameters of findFileForSharedLink method + * @param headers Headers of findFileForSharedLink method + */ public FileFull findFileForSharedLink( FindFileForSharedLinkQueryParams queryParams, FindFileForSharedLinkHeaders headers) { Map queryParamsMap = @@ -64,10 +93,29 @@ public FileFull findFileForSharedLink( return JsonManager.deserialize(response.getData(), FileFull.class); } + /** + * Gets the information for a shared link on a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of getSharedLinkForFile method + */ public FileFull getSharedLinkForFile(String fileId, GetSharedLinkForFileQueryParams queryParams) { return getSharedLinkForFile(fileId, queryParams, new GetSharedLinkForFileHeaders()); } + /** + * Gets the information for a shared link on a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of getSharedLinkForFile method + * @param headers Headers of getSharedLinkForFile method + */ public FileFull getSharedLinkForFile( String fileId, GetSharedLinkForFileQueryParams queryParams, @@ -96,11 +144,30 @@ public FileFull getSharedLinkForFile( return JsonManager.deserialize(response.getData(), FileFull.class); } + /** + * Adds a shared link to a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of addShareLinkToFile method + */ public FileFull addShareLinkToFile(String fileId, AddShareLinkToFileQueryParams queryParams) { return addShareLinkToFile( fileId, new AddShareLinkToFileRequestBody(), queryParams, new AddShareLinkToFileHeaders()); } + /** + * Adds a shared link to a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of addShareLinkToFile method + * @param queryParams Query parameters of addShareLinkToFile method + */ public FileFull addShareLinkToFile( String fileId, AddShareLinkToFileRequestBody requestBody, @@ -108,11 +175,32 @@ public FileFull addShareLinkToFile( return addShareLinkToFile(fileId, requestBody, queryParams, new AddShareLinkToFileHeaders()); } + /** + * Adds a shared link to a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of addShareLinkToFile method + * @param headers Headers of addShareLinkToFile method + */ public FileFull addShareLinkToFile( String fileId, AddShareLinkToFileQueryParams queryParams, AddShareLinkToFileHeaders headers) { return addShareLinkToFile(fileId, new AddShareLinkToFileRequestBody(), queryParams, headers); } + /** + * Adds a shared link to a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of addShareLinkToFile method + * @param queryParams Query parameters of addShareLinkToFile method + * @param headers Headers of addShareLinkToFile method + */ public FileFull addShareLinkToFile( String fileId, AddShareLinkToFileRequestBody requestBody, @@ -144,6 +232,15 @@ public FileFull addShareLinkToFile( return JsonManager.deserialize(response.getData(), FileFull.class); } + /** + * Updates a shared link on a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of updateSharedLinkOnFile method + */ public FileFull updateSharedLinkOnFile( String fileId, UpdateSharedLinkOnFileQueryParams queryParams) { return updateSharedLinkOnFile( @@ -153,6 +250,16 @@ public FileFull updateSharedLinkOnFile( new UpdateSharedLinkOnFileHeaders()); } + /** + * Updates a shared link on a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of updateSharedLinkOnFile method + * @param queryParams Query parameters of updateSharedLinkOnFile method + */ public FileFull updateSharedLinkOnFile( String fileId, UpdateSharedLinkOnFileRequestBody requestBody, @@ -161,6 +268,16 @@ public FileFull updateSharedLinkOnFile( fileId, requestBody, queryParams, new UpdateSharedLinkOnFileHeaders()); } + /** + * Updates a shared link on a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of updateSharedLinkOnFile method + * @param headers Headers of updateSharedLinkOnFile method + */ public FileFull updateSharedLinkOnFile( String fileId, UpdateSharedLinkOnFileQueryParams queryParams, @@ -169,6 +286,17 @@ public FileFull updateSharedLinkOnFile( fileId, new UpdateSharedLinkOnFileRequestBody(), queryParams, headers); } + /** + * Updates a shared link on a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of updateSharedLinkOnFile method + * @param queryParams Query parameters of updateSharedLinkOnFile method + * @param headers Headers of updateSharedLinkOnFile method + */ public FileFull updateSharedLinkOnFile( String fileId, UpdateSharedLinkOnFileRequestBody requestBody, @@ -200,6 +328,15 @@ public FileFull updateSharedLinkOnFile( return JsonManager.deserialize(response.getData(), FileFull.class); } + /** + * Removes a shared link from a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of removeSharedLinkFromFile method + */ public FileFull removeSharedLinkFromFile( String fileId, RemoveSharedLinkFromFileQueryParams queryParams) { return removeSharedLinkFromFile( @@ -209,6 +346,16 @@ public FileFull removeSharedLinkFromFile( new RemoveSharedLinkFromFileHeaders()); } + /** + * Removes a shared link from a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of removeSharedLinkFromFile method + * @param queryParams Query parameters of removeSharedLinkFromFile method + */ public FileFull removeSharedLinkFromFile( String fileId, RemoveSharedLinkFromFileRequestBody requestBody, @@ -217,6 +364,16 @@ public FileFull removeSharedLinkFromFile( fileId, requestBody, queryParams, new RemoveSharedLinkFromFileHeaders()); } + /** + * Removes a shared link from a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of removeSharedLinkFromFile method + * @param headers Headers of removeSharedLinkFromFile method + */ public FileFull removeSharedLinkFromFile( String fileId, RemoveSharedLinkFromFileQueryParams queryParams, @@ -225,6 +382,17 @@ public FileFull removeSharedLinkFromFile( fileId, new RemoveSharedLinkFromFileRequestBody(), queryParams, headers); } + /** + * Removes a shared link from a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of removeSharedLinkFromFile method + * @param queryParams Query parameters of removeSharedLinkFromFile method + * @param headers Headers of removeSharedLinkFromFile method + */ public FileFull removeSharedLinkFromFile( String fileId, RemoveSharedLinkFromFileRequestBody requestBody, diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileHeaders.java index d5226884c..4fc10bd57 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileHeaders.java @@ -6,6 +6,7 @@ public class UpdateSharedLinkOnFileHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateSharedLinkOnFileHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileQueryParams.java index c3a9bd4f5..03256143b 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileQueryParams.java @@ -2,6 +2,7 @@ public class UpdateSharedLinkOnFileQueryParams { + /** Explicitly request the `shared_link` fields to be returned for this item. */ public final String fields; public UpdateSharedLinkOnFileQueryParams(String fields) { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBody.java index 608419ae0..f319e24b6 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBody.java @@ -9,6 +9,7 @@ @JsonFilter("nullablePropertyFilter") public class UpdateSharedLinkOnFileRequestBody extends SerializableObject { + /** The settings for the shared link to update. */ @JsonProperty("shared_link") protected UpdateSharedLinkOnFileRequestBodySharedLinkField sharedLink; diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkField.java index 01298aa7f..574f38374 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkField.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkField.java @@ -15,6 +15,17 @@ @JsonFilter("nullablePropertyFilter") public class UpdateSharedLinkOnFileRequestBodySharedLinkField extends SerializableObject { + /** + * The level of access for the shared link. This can be restricted to anyone with the link + * (`open`), only people within the company (`company`) and only those who have been invited to + * the folder (`collaborators`). + * + *

    If not set, this field defaults to the access level specified by the enterprise admin. To + * create a shared link with this default setting pass the `shared_link` object with no `access` + * field, for example `{ "shared_link": {} }`. + * + *

    The `company` access level is only available to paid accounts. + */ @JsonDeserialize( using = UpdateSharedLinkOnFileRequestBodySharedLinkAccessField @@ -25,11 +36,28 @@ public class UpdateSharedLinkOnFileRequestBodySharedLinkField extends Serializab .UpdateSharedLinkOnFileRequestBodySharedLinkAccessFieldSerializer.class) protected EnumWrapper access; + /** + * The password required to access the shared link. Set the password to `null` to remove it. + * Passwords must now be at least eight characters long and include a number, upper case letter, + * or a non-numeric or non-alphabetic character. A password can only be set when `access` is set + * to `open`. + */ @Nullable protected String password; + /** + * Defines a custom vanity name to use in the shared link URL, for example + * `https://app.box.com/v/my-shared-link`. + * + *

    Custom URLs should not be used when sharing sensitive content as vanity URLs are a lot + * easier to guess than regular shared links. + */ @JsonProperty("vanity_name") protected String vanityName; + /** + * The timestamp at which this shared link will expire. This field can only be set by users with + * paid accounts. The value must be greater than the current date and time. + */ @JsonProperty("unshared_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkPermissionsField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkPermissionsField.java index fd589f86d..969d782e8 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkPermissionsField.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkPermissionsField.java @@ -10,12 +10,24 @@ public class UpdateSharedLinkOnFileRequestBodySharedLinkPermissionsField extends SerializableObject { + /** + * If the shared link allows for downloading of files. This can only be set when `access` is set + * to `open` or `company`. + */ @JsonProperty("can_download") protected Boolean canDownload; + /** + * If the shared link allows for previewing of files. This value is always `true`. For shared + * links on folders this also applies to any items in the folder. + */ @JsonProperty("can_preview") protected Boolean canPreview; + /** + * If the shared link allows for editing of files. This can only be set when `access` is set to + * `open` or `company`. This value can only be `true` is `can_download` is also `true`. + */ @JsonProperty("can_edit") protected Boolean canEdit; diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderHeaders.java index 12cf289d2..1fc057b2d 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderHeaders.java @@ -6,6 +6,7 @@ public class AddShareLinkToFolderHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public AddShareLinkToFolderHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderQueryParams.java index 429ab8505..b94f3ac42 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderQueryParams.java @@ -2,6 +2,7 @@ public class AddShareLinkToFolderQueryParams { + /** Explicitly request the `shared_link` fields to be returned for this item. */ public final String fields; public AddShareLinkToFolderQueryParams(String fields) { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBody.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBody.java index eddb11fb1..9ca6a8900 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBody.java @@ -9,6 +9,11 @@ @JsonFilter("nullablePropertyFilter") public class AddShareLinkToFolderRequestBody extends SerializableObject { + /** + * The settings for the shared link to create on the folder. + * + *

    Use an empty object (`{}`) to use the default settings for shared links. + */ @JsonProperty("shared_link") protected AddShareLinkToFolderRequestBodySharedLinkField sharedLink; diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkField.java index 5119cf0f5..e27d854da 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkField.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkField.java @@ -15,6 +15,17 @@ @JsonFilter("nullablePropertyFilter") public class AddShareLinkToFolderRequestBodySharedLinkField extends SerializableObject { + /** + * The level of access for the shared link. This can be restricted to anyone with the link + * (`open`), only people within the company (`company`) and only those who have been invited to + * the folder (`collaborators`). + * + *

    If not set, this field defaults to the access level specified by the enterprise admin. To + * create a shared link with this default setting pass the `shared_link` object with no `access` + * field, for example `{ "shared_link": {} }`. + * + *

    The `company` access level is only available to paid accounts. + */ @JsonDeserialize( using = AddShareLinkToFolderRequestBodySharedLinkAccessField @@ -25,11 +36,28 @@ public class AddShareLinkToFolderRequestBodySharedLinkField extends Serializable .AddShareLinkToFolderRequestBodySharedLinkAccessFieldSerializer.class) protected EnumWrapper access; + /** + * The password required to access the shared link. Set the password to `null` to remove it. + * Passwords must now be at least eight characters long and include a number, upper case letter, + * or a non-numeric or non-alphabetic character. A password can only be set when `access` is set + * to `open`. + */ @Nullable protected String password; + /** + * Defines a custom vanity name to use in the shared link URL, for example + * `https://app.box.com/v/my-shared-link`. + * + *

    Custom URLs should not be used when sharing sensitive content as vanity URLs are a lot + * easier to guess than regular shared links. + */ @JsonProperty("vanity_name") protected String vanityName; + /** + * The timestamp at which this shared link will expire. This field can only be set by users with + * paid accounts. The value must be greater than the current date and time. + */ @JsonProperty("unshared_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkPermissionsField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkPermissionsField.java index 4e9ae79ed..76c6a788a 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkPermissionsField.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkPermissionsField.java @@ -9,12 +9,21 @@ @JsonFilter("nullablePropertyFilter") public class AddShareLinkToFolderRequestBodySharedLinkPermissionsField extends SerializableObject { + /** + * If the shared link allows for downloading of files. This can only be set when `access` is set + * to `open` or `company`. + */ @JsonProperty("can_download") protected Boolean canDownload; + /** + * If the shared link allows for previewing of files. This value is always `true`. For shared + * links on folders this also applies to any items in the folder. + */ @JsonProperty("can_preview") protected Boolean canPreview; + /** This value can only be `false` for items with a `type` of `folder`. */ @JsonProperty("can_edit") protected Boolean canEdit; diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/FindFolderForSharedLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/FindFolderForSharedLinkHeaders.java index 6b46eeafd..1e7ab173d 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/FindFolderForSharedLinkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/FindFolderForSharedLinkHeaders.java @@ -6,10 +6,24 @@ public class FindFolderForSharedLinkHeaders { + /** + * Ensures an item is only returned if it has changed. + * + *

    Pass in the item's last observed `etag` value into this header and the endpoint will fail + * with a `304 Not Modified` if the item has not changed since. + */ public String ifNoneMatch; + /** + * A header containing the shared link and optional password for the shared link. + * + *

    The format for this header is as follows: + * + *

    `shared_link=[link]&shared_link_password=[password]`. + */ public final String boxapi; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public FindFolderForSharedLinkHeaders(String boxapi) { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/FindFolderForSharedLinkQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/FindFolderForSharedLinkQueryParams.java index f4290bb4c..ab72f79f3 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/FindFolderForSharedLinkQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/FindFolderForSharedLinkQueryParams.java @@ -4,6 +4,14 @@ public class FindFolderForSharedLinkQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public FindFolderForSharedLinkQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/GetSharedLinkForFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/GetSharedLinkForFolderHeaders.java index 6d48eed6f..8957c3482 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/GetSharedLinkForFolderHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/GetSharedLinkForFolderHeaders.java @@ -6,6 +6,7 @@ public class GetSharedLinkForFolderHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetSharedLinkForFolderHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/GetSharedLinkForFolderQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/GetSharedLinkForFolderQueryParams.java index 4310e2e9a..2ae10add2 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/GetSharedLinkForFolderQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/GetSharedLinkForFolderQueryParams.java @@ -2,6 +2,7 @@ public class GetSharedLinkForFolderQueryParams { + /** Explicitly request the `shared_link` fields to be returned for this item. */ public final String fields; public GetSharedLinkForFolderQueryParams(String fields) { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderHeaders.java index e180a2abf..b533d75e1 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderHeaders.java @@ -6,6 +6,7 @@ public class RemoveSharedLinkFromFolderHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public RemoveSharedLinkFromFolderHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderQueryParams.java index d1e839fda..ac84c0be1 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderQueryParams.java @@ -2,6 +2,7 @@ public class RemoveSharedLinkFromFolderQueryParams { + /** Explicitly request the `shared_link` fields to be returned for this item. */ public final String fields; public RemoveSharedLinkFromFolderQueryParams(String fields) { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderRequestBody.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderRequestBody.java index 32447c598..3d51bbf6d 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderRequestBody.java @@ -10,6 +10,7 @@ @JsonFilter("nullablePropertyFilter") public class RemoveSharedLinkFromFolderRequestBody extends SerializableObject { + /** By setting this value to `null`, the shared link is removed from the folder. */ @JsonProperty("shared_link") @Nullable protected RemoveSharedLinkFromFolderRequestBodySharedLinkField sharedLink; diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/SharedLinksFoldersManager.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/SharedLinksFoldersManager.java index d6a75297a..8dc9fbf5f 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/SharedLinksFoldersManager.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/SharedLinksFoldersManager.java @@ -30,10 +30,33 @@ protected SharedLinksFoldersManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Return the folder represented by a shared link. + * + *

    A shared folder can be represented by a shared link, which can originate within the current + * enterprise or within another. + * + *

    This endpoint allows an application to retrieve information about a shared folder when only + * given a shared link. + * + * @param headers Headers of findFolderForSharedLink method + */ public FolderFull findFolderForSharedLink(FindFolderForSharedLinkHeaders headers) { return findFolderForSharedLink(new FindFolderForSharedLinkQueryParams(), headers); } + /** + * Return the folder represented by a shared link. + * + *

    A shared folder can be represented by a shared link, which can originate within the current + * enterprise or within another. + * + *

    This endpoint allows an application to retrieve information about a shared folder when only + * given a shared link. + * + * @param queryParams Query parameters of findFolderForSharedLink method + * @param headers Headers of findFolderForSharedLink method + */ public FolderFull findFolderForSharedLink( FindFolderForSharedLinkQueryParams queryParams, FindFolderForSharedLinkHeaders headers) { Map queryParamsMap = @@ -64,11 +87,32 @@ public FolderFull findFolderForSharedLink( return JsonManager.deserialize(response.getData(), FolderFull.class); } + /** + * Gets the information for a shared link on a folder. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of getSharedLinkForFolder method + */ public FolderFull getSharedLinkForFolder( String folderId, GetSharedLinkForFolderQueryParams queryParams) { return getSharedLinkForFolder(folderId, queryParams, new GetSharedLinkForFolderHeaders()); } + /** + * Gets the information for a shared link on a folder. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of getSharedLinkForFolder method + * @param headers Headers of getSharedLinkForFolder method + */ public FolderFull getSharedLinkForFolder( String folderId, GetSharedLinkForFolderQueryParams queryParams, @@ -97,6 +141,16 @@ public FolderFull getSharedLinkForFolder( return JsonManager.deserialize(response.getData(), FolderFull.class); } + /** + * Adds a shared link to a folder. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of addShareLinkToFolder method + */ public FolderFull addShareLinkToFolder( String folderId, AddShareLinkToFolderQueryParams queryParams) { return addShareLinkToFolder( @@ -106,6 +160,17 @@ public FolderFull addShareLinkToFolder( new AddShareLinkToFolderHeaders()); } + /** + * Adds a shared link to a folder. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param requestBody Request body of addShareLinkToFolder method + * @param queryParams Query parameters of addShareLinkToFolder method + */ public FolderFull addShareLinkToFolder( String folderId, AddShareLinkToFolderRequestBody requestBody, @@ -114,6 +179,17 @@ public FolderFull addShareLinkToFolder( folderId, requestBody, queryParams, new AddShareLinkToFolderHeaders()); } + /** + * Adds a shared link to a folder. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of addShareLinkToFolder method + * @param headers Headers of addShareLinkToFolder method + */ public FolderFull addShareLinkToFolder( String folderId, AddShareLinkToFolderQueryParams queryParams, @@ -122,6 +198,18 @@ public FolderFull addShareLinkToFolder( folderId, new AddShareLinkToFolderRequestBody(), queryParams, headers); } + /** + * Adds a shared link to a folder. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param requestBody Request body of addShareLinkToFolder method + * @param queryParams Query parameters of addShareLinkToFolder method + * @param headers Headers of addShareLinkToFolder method + */ public FolderFull addShareLinkToFolder( String folderId, AddShareLinkToFolderRequestBody requestBody, @@ -153,6 +241,16 @@ public FolderFull addShareLinkToFolder( return JsonManager.deserialize(response.getData(), FolderFull.class); } + /** + * Updates a shared link on a folder. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of updateSharedLinkOnFolder method + */ public FolderFull updateSharedLinkOnFolder( String folderId, UpdateSharedLinkOnFolderQueryParams queryParams) { return updateSharedLinkOnFolder( @@ -162,6 +260,17 @@ public FolderFull updateSharedLinkOnFolder( new UpdateSharedLinkOnFolderHeaders()); } + /** + * Updates a shared link on a folder. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param requestBody Request body of updateSharedLinkOnFolder method + * @param queryParams Query parameters of updateSharedLinkOnFolder method + */ public FolderFull updateSharedLinkOnFolder( String folderId, UpdateSharedLinkOnFolderRequestBody requestBody, @@ -170,6 +279,17 @@ public FolderFull updateSharedLinkOnFolder( folderId, requestBody, queryParams, new UpdateSharedLinkOnFolderHeaders()); } + /** + * Updates a shared link on a folder. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of updateSharedLinkOnFolder method + * @param headers Headers of updateSharedLinkOnFolder method + */ public FolderFull updateSharedLinkOnFolder( String folderId, UpdateSharedLinkOnFolderQueryParams queryParams, @@ -178,6 +298,18 @@ public FolderFull updateSharedLinkOnFolder( folderId, new UpdateSharedLinkOnFolderRequestBody(), queryParams, headers); } + /** + * Updates a shared link on a folder. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param requestBody Request body of updateSharedLinkOnFolder method + * @param queryParams Query parameters of updateSharedLinkOnFolder method + * @param headers Headers of updateSharedLinkOnFolder method + */ public FolderFull updateSharedLinkOnFolder( String folderId, UpdateSharedLinkOnFolderRequestBody requestBody, @@ -209,6 +341,16 @@ public FolderFull updateSharedLinkOnFolder( return JsonManager.deserialize(response.getData(), FolderFull.class); } + /** + * Removes a shared link from a folder. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of removeSharedLinkFromFolder method + */ public FolderFull removeSharedLinkFromFolder( String folderId, RemoveSharedLinkFromFolderQueryParams queryParams) { return removeSharedLinkFromFolder( @@ -218,6 +360,17 @@ public FolderFull removeSharedLinkFromFolder( new RemoveSharedLinkFromFolderHeaders()); } + /** + * Removes a shared link from a folder. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param requestBody Request body of removeSharedLinkFromFolder method + * @param queryParams Query parameters of removeSharedLinkFromFolder method + */ public FolderFull removeSharedLinkFromFolder( String folderId, RemoveSharedLinkFromFolderRequestBody requestBody, @@ -226,6 +379,17 @@ public FolderFull removeSharedLinkFromFolder( folderId, requestBody, queryParams, new RemoveSharedLinkFromFolderHeaders()); } + /** + * Removes a shared link from a folder. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of removeSharedLinkFromFolder method + * @param headers Headers of removeSharedLinkFromFolder method + */ public FolderFull removeSharedLinkFromFolder( String folderId, RemoveSharedLinkFromFolderQueryParams queryParams, @@ -234,6 +398,18 @@ public FolderFull removeSharedLinkFromFolder( folderId, new RemoveSharedLinkFromFolderRequestBody(), queryParams, headers); } + /** + * Removes a shared link from a folder. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param requestBody Request body of removeSharedLinkFromFolder method + * @param queryParams Query parameters of removeSharedLinkFromFolder method + * @param headers Headers of removeSharedLinkFromFolder method + */ public FolderFull removeSharedLinkFromFolder( String folderId, RemoveSharedLinkFromFolderRequestBody requestBody, diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderHeaders.java index 74a21c6b3..55070e455 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderHeaders.java @@ -6,6 +6,7 @@ public class UpdateSharedLinkOnFolderHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateSharedLinkOnFolderHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderQueryParams.java index 5bbd38493..7b7025f78 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderQueryParams.java @@ -2,6 +2,7 @@ public class UpdateSharedLinkOnFolderQueryParams { + /** Explicitly request the `shared_link` fields to be returned for this item. */ public final String fields; public UpdateSharedLinkOnFolderQueryParams(String fields) { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBody.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBody.java index 1672c72ab..2c3e0b733 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBody.java @@ -9,6 +9,7 @@ @JsonFilter("nullablePropertyFilter") public class UpdateSharedLinkOnFolderRequestBody extends SerializableObject { + /** The settings for the shared link to update. */ @JsonProperty("shared_link") protected UpdateSharedLinkOnFolderRequestBodySharedLinkField sharedLink; diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkField.java index 62b0f9976..3eb56e05f 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkField.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkField.java @@ -14,6 +14,17 @@ @JsonFilter("nullablePropertyFilter") public class UpdateSharedLinkOnFolderRequestBodySharedLinkField extends SerializableObject { + /** + * The level of access for the shared link. This can be restricted to anyone with the link + * (`open`), only people within the company (`company`) and only those who have been invited to + * the folder (`collaborators`). + * + *

    If not set, this field defaults to the access level specified by the enterprise admin. To + * create a shared link with this default setting pass the `shared_link` object with no `access` + * field, for example `{ "shared_link": {} }`. + * + *

    The `company` access level is only available to paid accounts. + */ @JsonDeserialize( using = UpdateSharedLinkOnFolderRequestBodySharedLinkAccessField @@ -24,11 +35,28 @@ public class UpdateSharedLinkOnFolderRequestBodySharedLinkField extends Serializ .UpdateSharedLinkOnFolderRequestBodySharedLinkAccessFieldSerializer.class) protected EnumWrapper access; + /** + * The password required to access the shared link. Set the password to `null` to remove it. + * Passwords must now be at least eight characters long and include a number, upper case letter, + * or a non-numeric or non-alphabetic character. A password can only be set when `access` is set + * to `open`. + */ protected String password; + /** + * Defines a custom vanity name to use in the shared link URL, for example + * `https://app.box.com/v/my-shared-link`. + * + *

    Custom URLs should not be used when sharing sensitive content as vanity URLs are a lot + * easier to guess than regular shared links. + */ @JsonProperty("vanity_name") protected String vanityName; + /** + * The timestamp at which this shared link will expire. This field can only be set by users with + * paid accounts. The value must be greater than the current date and time. + */ @JsonProperty("unshared_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkPermissionsField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkPermissionsField.java index 7d21be938..e3277e340 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkPermissionsField.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkPermissionsField.java @@ -10,12 +10,21 @@ public class UpdateSharedLinkOnFolderRequestBodySharedLinkPermissionsField extends SerializableObject { + /** + * If the shared link allows for downloading of files. This can only be set when `access` is set + * to `open` or `company`. + */ @JsonProperty("can_download") protected Boolean canDownload; + /** + * If the shared link allows for previewing of files. This value is always `true`. For shared + * links on folders this also applies to any items in the folder. + */ @JsonProperty("can_preview") protected Boolean canPreview; + /** This value can only be `false` for items with a `type` of `folder`. */ @JsonProperty("can_edit") protected Boolean canEdit; diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkHeaders.java index 385e180d0..bd1bdbb36 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkHeaders.java @@ -6,6 +6,7 @@ public class AddShareLinkToWebLinkHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public AddShareLinkToWebLinkHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkQueryParams.java index 17cac6b91..fb4e68e94 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkQueryParams.java @@ -2,6 +2,7 @@ public class AddShareLinkToWebLinkQueryParams { + /** Explicitly request the `shared_link` fields to be returned for this item. */ public final String fields; public AddShareLinkToWebLinkQueryParams(String fields) { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBody.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBody.java index b4cca3e4c..fc6eaa440 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBody.java @@ -9,6 +9,11 @@ @JsonFilter("nullablePropertyFilter") public class AddShareLinkToWebLinkRequestBody extends SerializableObject { + /** + * The settings for the shared link to create on the web link. + * + *

    Use an empty object (`{}`) to use the default settings for shared links. + */ @JsonProperty("shared_link") protected AddShareLinkToWebLinkRequestBodySharedLinkField sharedLink; diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkField.java index b4ccbd3fc..381060bb8 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkField.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkField.java @@ -15,6 +15,17 @@ @JsonFilter("nullablePropertyFilter") public class AddShareLinkToWebLinkRequestBodySharedLinkField extends SerializableObject { + /** + * The level of access for the shared link. This can be restricted to anyone with the link + * (`open`), only people within the company (`company`) and only those who have been invited to + * the file (`collaborators`). + * + *

    If not set, this field defaults to the access level specified by the enterprise admin. To + * create a shared link with this default setting pass the `shared_link` object with no `access` + * field, for example `{ "shared_link": {} }`. + * + *

    The `company` access level is only available to paid accounts. + */ @JsonDeserialize( using = AddShareLinkToWebLinkRequestBodySharedLinkAccessField @@ -25,11 +36,28 @@ public class AddShareLinkToWebLinkRequestBodySharedLinkField extends Serializabl .AddShareLinkToWebLinkRequestBodySharedLinkAccessFieldSerializer.class) protected EnumWrapper access; + /** + * The password required to access the shared link. Set the password to `null` to remove it. + * Passwords must now be at least eight characters long and include a number, upper case letter, + * or a non-numeric or non-alphabetic character. A password can only be set when `access` is set + * to `open`. + */ @Nullable protected String password; + /** + * Defines a custom vanity name to use in the shared link URL, for example + * `https://app.box.com/v/my-shared-link`. + * + *

    Custom URLs should not be used when sharing sensitive content as vanity URLs are a lot + * easier to guess than regular shared links. + */ @JsonProperty("vanity_name") protected String vanityName; + /** + * The timestamp at which this shared link will expire. This field can only be set by users with + * paid accounts. The value must be greater than the current date and time. + */ @JsonProperty("unshared_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkPermissionsField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkPermissionsField.java index 5b60ba3df..2749d3167 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkPermissionsField.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkPermissionsField.java @@ -9,12 +9,21 @@ @JsonFilter("nullablePropertyFilter") public class AddShareLinkToWebLinkRequestBodySharedLinkPermissionsField extends SerializableObject { + /** + * If the shared link allows for downloading of files. This can only be set when `access` is set + * to `open` or `company`. + */ @JsonProperty("can_download") protected Boolean canDownload; + /** + * If the shared link allows for previewing of files. This value is always `true`. For shared + * links on folders this also applies to any items in the folder. + */ @JsonProperty("can_preview") protected Boolean canPreview; + /** This value can only be `true` is `type` is `file`. */ @JsonProperty("can_edit") protected Boolean canEdit; diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/FindWebLinkForSharedLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/FindWebLinkForSharedLinkHeaders.java index 33210d45c..0f1c90835 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/FindWebLinkForSharedLinkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/FindWebLinkForSharedLinkHeaders.java @@ -6,10 +6,24 @@ public class FindWebLinkForSharedLinkHeaders { + /** + * Ensures an item is only returned if it has changed. + * + *

    Pass in the item's last observed `etag` value into this header and the endpoint will fail + * with a `304 Not Modified` if the item has not changed since. + */ public String ifNoneMatch; + /** + * A header containing the shared link and optional password for the shared link. + * + *

    The format for this header is as follows: + * + *

    `shared_link=[link]&shared_link_password=[password]`. + */ public final String boxapi; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public FindWebLinkForSharedLinkHeaders(String boxapi) { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/FindWebLinkForSharedLinkQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/FindWebLinkForSharedLinkQueryParams.java index 26de0d3b1..c4f531de6 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/FindWebLinkForSharedLinkQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/FindWebLinkForSharedLinkQueryParams.java @@ -4,6 +4,14 @@ public class FindWebLinkForSharedLinkQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public FindWebLinkForSharedLinkQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/GetSharedLinkForWebLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/GetSharedLinkForWebLinkHeaders.java index 090c05a3d..c36269763 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/GetSharedLinkForWebLinkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/GetSharedLinkForWebLinkHeaders.java @@ -6,6 +6,7 @@ public class GetSharedLinkForWebLinkHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetSharedLinkForWebLinkHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/GetSharedLinkForWebLinkQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/GetSharedLinkForWebLinkQueryParams.java index 874f64cdd..a131bac88 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/GetSharedLinkForWebLinkQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/GetSharedLinkForWebLinkQueryParams.java @@ -2,6 +2,7 @@ public class GetSharedLinkForWebLinkQueryParams { + /** Explicitly request the `shared_link` fields to be returned for this item. */ public final String fields; public GetSharedLinkForWebLinkQueryParams(String fields) { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkHeaders.java index 0817f6bff..4d7df09fb 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkHeaders.java @@ -6,6 +6,7 @@ public class RemoveSharedLinkFromWebLinkHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public RemoveSharedLinkFromWebLinkHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkQueryParams.java index 68b8dadd3..7a27c593f 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkQueryParams.java @@ -2,6 +2,7 @@ public class RemoveSharedLinkFromWebLinkQueryParams { + /** Explicitly request the `shared_link` fields to be returned for this item. */ public final String fields; public RemoveSharedLinkFromWebLinkQueryParams(String fields) { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkRequestBody.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkRequestBody.java index 24b1fc11a..0615815cd 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkRequestBody.java @@ -10,6 +10,7 @@ @JsonFilter("nullablePropertyFilter") public class RemoveSharedLinkFromWebLinkRequestBody extends SerializableObject { + /** By setting this value to `null`, the shared link is removed from the web link. */ @JsonProperty("shared_link") @Nullable protected RemoveSharedLinkFromWebLinkRequestBodySharedLinkField sharedLink; diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/SharedLinksWebLinksManager.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/SharedLinksWebLinksManager.java index 3c6a50a11..cd69aadf3 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/SharedLinksWebLinksManager.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/SharedLinksWebLinksManager.java @@ -30,10 +30,33 @@ protected SharedLinksWebLinksManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Returns the web link represented by a shared link. + * + *

    A shared web link can be represented by a shared link, which can originate within the + * current enterprise or within another. + * + *

    This endpoint allows an application to retrieve information about a shared web link when + * only given a shared link. + * + * @param headers Headers of findWebLinkForSharedLink method + */ public WebLink findWebLinkForSharedLink(FindWebLinkForSharedLinkHeaders headers) { return findWebLinkForSharedLink(new FindWebLinkForSharedLinkQueryParams(), headers); } + /** + * Returns the web link represented by a shared link. + * + *

    A shared web link can be represented by a shared link, which can originate within the + * current enterprise or within another. + * + *

    This endpoint allows an application to retrieve information about a shared web link when + * only given a shared link. + * + * @param queryParams Query parameters of findWebLinkForSharedLink method + * @param headers Headers of findWebLinkForSharedLink method + */ public WebLink findWebLinkForSharedLink( FindWebLinkForSharedLinkQueryParams queryParams, FindWebLinkForSharedLinkHeaders headers) { Map queryParamsMap = @@ -64,11 +87,24 @@ public WebLink findWebLinkForSharedLink( return JsonManager.deserialize(response.getData(), WebLink.class); } + /** + * Gets the information for a shared link on a web link. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param queryParams Query parameters of getSharedLinkForWebLink method + */ public WebLink getSharedLinkForWebLink( String webLinkId, GetSharedLinkForWebLinkQueryParams queryParams) { return getSharedLinkForWebLink(webLinkId, queryParams, new GetSharedLinkForWebLinkHeaders()); } + /** + * Gets the information for a shared link on a web link. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param queryParams Query parameters of getSharedLinkForWebLink method + * @param headers Headers of getSharedLinkForWebLink method + */ public WebLink getSharedLinkForWebLink( String webLinkId, GetSharedLinkForWebLinkQueryParams queryParams, @@ -97,6 +133,12 @@ public WebLink getSharedLinkForWebLink( return JsonManager.deserialize(response.getData(), WebLink.class); } + /** + * Adds a shared link to a web link. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param queryParams Query parameters of addShareLinkToWebLink method + */ public WebLink addShareLinkToWebLink( String webLinkId, AddShareLinkToWebLinkQueryParams queryParams) { return addShareLinkToWebLink( @@ -106,6 +148,13 @@ public WebLink addShareLinkToWebLink( new AddShareLinkToWebLinkHeaders()); } + /** + * Adds a shared link to a web link. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param requestBody Request body of addShareLinkToWebLink method + * @param queryParams Query parameters of addShareLinkToWebLink method + */ public WebLink addShareLinkToWebLink( String webLinkId, AddShareLinkToWebLinkRequestBody requestBody, @@ -114,6 +163,13 @@ public WebLink addShareLinkToWebLink( webLinkId, requestBody, queryParams, new AddShareLinkToWebLinkHeaders()); } + /** + * Adds a shared link to a web link. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param queryParams Query parameters of addShareLinkToWebLink method + * @param headers Headers of addShareLinkToWebLink method + */ public WebLink addShareLinkToWebLink( String webLinkId, AddShareLinkToWebLinkQueryParams queryParams, @@ -122,6 +178,14 @@ public WebLink addShareLinkToWebLink( webLinkId, new AddShareLinkToWebLinkRequestBody(), queryParams, headers); } + /** + * Adds a shared link to a web link. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param requestBody Request body of addShareLinkToWebLink method + * @param queryParams Query parameters of addShareLinkToWebLink method + * @param headers Headers of addShareLinkToWebLink method + */ public WebLink addShareLinkToWebLink( String webLinkId, AddShareLinkToWebLinkRequestBody requestBody, @@ -153,6 +217,12 @@ public WebLink addShareLinkToWebLink( return JsonManager.deserialize(response.getData(), WebLink.class); } + /** + * Updates a shared link on a web link. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param queryParams Query parameters of updateSharedLinkOnWebLink method + */ public WebLink updateSharedLinkOnWebLink( String webLinkId, UpdateSharedLinkOnWebLinkQueryParams queryParams) { return updateSharedLinkOnWebLink( @@ -162,6 +232,13 @@ public WebLink updateSharedLinkOnWebLink( new UpdateSharedLinkOnWebLinkHeaders()); } + /** + * Updates a shared link on a web link. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param requestBody Request body of updateSharedLinkOnWebLink method + * @param queryParams Query parameters of updateSharedLinkOnWebLink method + */ public WebLink updateSharedLinkOnWebLink( String webLinkId, UpdateSharedLinkOnWebLinkRequestBody requestBody, @@ -170,6 +247,13 @@ public WebLink updateSharedLinkOnWebLink( webLinkId, requestBody, queryParams, new UpdateSharedLinkOnWebLinkHeaders()); } + /** + * Updates a shared link on a web link. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param queryParams Query parameters of updateSharedLinkOnWebLink method + * @param headers Headers of updateSharedLinkOnWebLink method + */ public WebLink updateSharedLinkOnWebLink( String webLinkId, UpdateSharedLinkOnWebLinkQueryParams queryParams, @@ -178,6 +262,14 @@ public WebLink updateSharedLinkOnWebLink( webLinkId, new UpdateSharedLinkOnWebLinkRequestBody(), queryParams, headers); } + /** + * Updates a shared link on a web link. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param requestBody Request body of updateSharedLinkOnWebLink method + * @param queryParams Query parameters of updateSharedLinkOnWebLink method + * @param headers Headers of updateSharedLinkOnWebLink method + */ public WebLink updateSharedLinkOnWebLink( String webLinkId, UpdateSharedLinkOnWebLinkRequestBody requestBody, @@ -209,6 +301,12 @@ public WebLink updateSharedLinkOnWebLink( return JsonManager.deserialize(response.getData(), WebLink.class); } + /** + * Removes a shared link from a web link. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param queryParams Query parameters of removeSharedLinkFromWebLink method + */ public WebLink removeSharedLinkFromWebLink( String webLinkId, RemoveSharedLinkFromWebLinkQueryParams queryParams) { return removeSharedLinkFromWebLink( @@ -218,6 +316,13 @@ public WebLink removeSharedLinkFromWebLink( new RemoveSharedLinkFromWebLinkHeaders()); } + /** + * Removes a shared link from a web link. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param requestBody Request body of removeSharedLinkFromWebLink method + * @param queryParams Query parameters of removeSharedLinkFromWebLink method + */ public WebLink removeSharedLinkFromWebLink( String webLinkId, RemoveSharedLinkFromWebLinkRequestBody requestBody, @@ -226,6 +331,13 @@ public WebLink removeSharedLinkFromWebLink( webLinkId, requestBody, queryParams, new RemoveSharedLinkFromWebLinkHeaders()); } + /** + * Removes a shared link from a web link. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param queryParams Query parameters of removeSharedLinkFromWebLink method + * @param headers Headers of removeSharedLinkFromWebLink method + */ public WebLink removeSharedLinkFromWebLink( String webLinkId, RemoveSharedLinkFromWebLinkQueryParams queryParams, @@ -234,6 +346,14 @@ public WebLink removeSharedLinkFromWebLink( webLinkId, new RemoveSharedLinkFromWebLinkRequestBody(), queryParams, headers); } + /** + * Removes a shared link from a web link. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param requestBody Request body of removeSharedLinkFromWebLink method + * @param queryParams Query parameters of removeSharedLinkFromWebLink method + * @param headers Headers of removeSharedLinkFromWebLink method + */ public WebLink removeSharedLinkFromWebLink( String webLinkId, RemoveSharedLinkFromWebLinkRequestBody requestBody, diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkHeaders.java index 0473021b5..efbfdde29 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkHeaders.java @@ -6,6 +6,7 @@ public class UpdateSharedLinkOnWebLinkHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateSharedLinkOnWebLinkHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkQueryParams.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkQueryParams.java index 472976594..1d1a6b872 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkQueryParams.java @@ -2,6 +2,7 @@ public class UpdateSharedLinkOnWebLinkQueryParams { + /** Explicitly request the `shared_link` fields to be returned for this item. */ public final String fields; public UpdateSharedLinkOnWebLinkQueryParams(String fields) { diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBody.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBody.java index c59c47a1b..e5536bb82 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBody.java @@ -9,6 +9,7 @@ @JsonFilter("nullablePropertyFilter") public class UpdateSharedLinkOnWebLinkRequestBody extends SerializableObject { + /** The settings for the shared link to update. */ @JsonProperty("shared_link") protected UpdateSharedLinkOnWebLinkRequestBodySharedLinkField sharedLink; diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkField.java index f771296b3..619ad3772 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkField.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkField.java @@ -15,6 +15,17 @@ @JsonFilter("nullablePropertyFilter") public class UpdateSharedLinkOnWebLinkRequestBodySharedLinkField extends SerializableObject { + /** + * The level of access for the shared link. This can be restricted to anyone with the link + * (`open`), only people within the company (`company`) and only those who have been invited to + * the folder (`collaborators`). + * + *

    If not set, this field defaults to the access level specified by the enterprise admin. To + * create a shared link with this default setting pass the `shared_link` object with no `access` + * field, for example `{ "shared_link": {} }`. + * + *

    The `company` access level is only available to paid accounts. + */ @JsonDeserialize( using = UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessField @@ -25,11 +36,28 @@ public class UpdateSharedLinkOnWebLinkRequestBodySharedLinkField extends Seriali .UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessFieldSerializer.class) protected EnumWrapper access; + /** + * The password required to access the shared link. Set the password to `null` to remove it. + * Passwords must now be at least eight characters long and include a number, upper case letter, + * or a non-numeric or non-alphabetic character. A password can only be set when `access` is set + * to `open`. + */ @Nullable protected String password; + /** + * Defines a custom vanity name to use in the shared link URL, for example + * `https://app.box.com/v/my-shared-link`. + * + *

    Custom URLs should not be used when sharing sensitive content as vanity URLs are a lot + * easier to guess than regular shared links. + */ @JsonProperty("vanity_name") protected String vanityName; + /** + * The timestamp at which this shared link will expire. This field can only be set by users with + * paid accounts. The value must be greater than the current date and time. + */ @JsonProperty("unshared_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField.java index 778f225b9..ee3dc9803 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField.java @@ -10,12 +10,21 @@ public class UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField extends SerializableObject { + /** + * If the shared link allows for downloading of files. This can only be set when `access` is set + * to `open` or `company`. + */ @JsonProperty("can_download") protected Boolean canDownload; + /** + * If the shared link allows for previewing of files. This value is always `true`. For shared + * links on folders this also applies to any items in the folder. + */ @JsonProperty("can_preview") protected Boolean canPreview; + /** This value can only be `true` is `type` is `file`. */ @JsonProperty("can_edit") protected Boolean canEdit; diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/CreateShieldInformationBarrierReportHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/CreateShieldInformationBarrierReportHeaders.java index edea1eec3..3e157ff6d 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/CreateShieldInformationBarrierReportHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/CreateShieldInformationBarrierReportHeaders.java @@ -6,6 +6,7 @@ public class CreateShieldInformationBarrierReportHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateShieldInformationBarrierReportHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportByIdHeaders.java index 8c94826cd..c815f520d 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportByIdHeaders.java @@ -6,6 +6,7 @@ public class GetShieldInformationBarrierReportByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetShieldInformationBarrierReportByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportsHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportsHeaders.java index fc6084b2b..41f5d7486 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportsHeaders.java @@ -6,6 +6,7 @@ public class GetShieldInformationBarrierReportsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetShieldInformationBarrierReportsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportsQueryParams.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportsQueryParams.java index ffcd4f637..7e8e9e471 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportsQueryParams.java @@ -2,10 +2,18 @@ public class GetShieldInformationBarrierReportsQueryParams { + /** The ID of the shield information barrier. */ public final String shieldInformationBarrierId; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetShieldInformationBarrierReportsQueryParams(String shieldInformationBarrierId) { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/ShieldInformationBarrierReportsManager.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/ShieldInformationBarrierReportsManager.java index cec771eb0..a9422c969 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/ShieldInformationBarrierReportsManager.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/ShieldInformationBarrierReportsManager.java @@ -32,12 +32,23 @@ protected ShieldInformationBarrierReportsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Lists shield information barrier reports. + * + * @param queryParams Query parameters of getShieldInformationBarrierReports method + */ public ShieldInformationBarrierReports getShieldInformationBarrierReports( GetShieldInformationBarrierReportsQueryParams queryParams) { return getShieldInformationBarrierReports( queryParams, new GetShieldInformationBarrierReportsHeaders()); } + /** + * Lists shield information barrier reports. + * + * @param queryParams Query parameters of getShieldInformationBarrierReports method + * @param headers Headers of getShieldInformationBarrierReports method + */ public ShieldInformationBarrierReports getShieldInformationBarrierReports( GetShieldInformationBarrierReportsQueryParams queryParams, GetShieldInformationBarrierReportsHeaders headers) { @@ -69,12 +80,23 @@ public ShieldInformationBarrierReports getShieldInformationBarrierReports( return JsonManager.deserialize(response.getData(), ShieldInformationBarrierReports.class); } + /** + * Creates a shield information barrier report for a given barrier. + * + * @param requestBody Request body of createShieldInformationBarrierReport method + */ public ShieldInformationBarrierReport createShieldInformationBarrierReport( ShieldInformationBarrierReference requestBody) { return createShieldInformationBarrierReport( requestBody, new CreateShieldInformationBarrierReportHeaders()); } + /** + * Creates a shield information barrier report for a given barrier. + * + * @param requestBody Request body of createShieldInformationBarrierReport method + * @param headers Headers of createShieldInformationBarrierReport method + */ public ShieldInformationBarrierReport createShieldInformationBarrierReport( ShieldInformationBarrierReference requestBody, CreateShieldInformationBarrierReportHeaders headers) { @@ -99,12 +121,25 @@ public ShieldInformationBarrierReport createShieldInformationBarrierReport( return JsonManager.deserialize(response.getData(), ShieldInformationBarrierReport.class); } + /** + * Retrieves a shield information barrier report by its ID. + * + * @param shieldInformationBarrierReportId The ID of the shield information barrier Report. + * Example: "3423" + */ public ShieldInformationBarrierReport getShieldInformationBarrierReportById( String shieldInformationBarrierReportId) { return getShieldInformationBarrierReportById( shieldInformationBarrierReportId, new GetShieldInformationBarrierReportByIdHeaders()); } + /** + * Retrieves a shield information barrier report by its ID. + * + * @param shieldInformationBarrierReportId The ID of the shield information barrier Report. + * Example: "3423" + * @param headers Headers of getShieldInformationBarrierReportById method + */ public ShieldInformationBarrierReport getShieldInformationBarrierReportById( String shieldInformationBarrierReportId, GetShieldInformationBarrierReportByIdHeaders headers) { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/CreateShieldInformationBarrierHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/CreateShieldInformationBarrierHeaders.java index 21ab7b22f..6253afbfd 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/CreateShieldInformationBarrierHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/CreateShieldInformationBarrierHeaders.java @@ -6,6 +6,7 @@ public class CreateShieldInformationBarrierHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateShieldInformationBarrierHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/CreateShieldInformationBarrierRequestBody.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/CreateShieldInformationBarrierRequestBody.java index 578db8add..94fa8e61b 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/CreateShieldInformationBarrierRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/CreateShieldInformationBarrierRequestBody.java @@ -9,6 +9,7 @@ @JsonFilter("nullablePropertyFilter") public class CreateShieldInformationBarrierRequestBody extends SerializableObject { + /** The `type` and `id` of enterprise this barrier is under. */ protected final EnterpriseBase enterprise; public CreateShieldInformationBarrierRequestBody( diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarrierByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarrierByIdHeaders.java index dd4413ea6..a3b20d940 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarrierByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarrierByIdHeaders.java @@ -6,6 +6,7 @@ public class GetShieldInformationBarrierByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetShieldInformationBarrierByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarriersHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarriersHeaders.java index 866e75b81..125e77ab7 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarriersHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarriersHeaders.java @@ -6,6 +6,7 @@ public class GetShieldInformationBarriersHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetShieldInformationBarriersHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarriersQueryParams.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarriersQueryParams.java index 3c0ce59a4..21b34f931 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarriersQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarriersQueryParams.java @@ -2,8 +2,13 @@ public class GetShieldInformationBarriersQueryParams { + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetShieldInformationBarriersQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/ShieldInformationBarriersManager.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/ShieldInformationBarriersManager.java index c8abf5726..a6c342aa1 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/ShieldInformationBarriersManager.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/ShieldInformationBarriersManager.java @@ -31,12 +31,23 @@ protected ShieldInformationBarriersManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Get shield information barrier based on provided ID. + * + * @param shieldInformationBarrierId The ID of the shield information barrier. Example: "1910967" + */ public ShieldInformationBarrier getShieldInformationBarrierById( String shieldInformationBarrierId) { return getShieldInformationBarrierById( shieldInformationBarrierId, new GetShieldInformationBarrierByIdHeaders()); } + /** + * Get shield information barrier based on provided ID. + * + * @param shieldInformationBarrierId The ID of the shield information barrier. Example: "1910967" + * @param headers Headers of getShieldInformationBarrierById method + */ public ShieldInformationBarrier getShieldInformationBarrierById( String shieldInformationBarrierId, GetShieldInformationBarrierByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -59,12 +70,23 @@ public ShieldInformationBarrier getShieldInformationBarrierById( return JsonManager.deserialize(response.getData(), ShieldInformationBarrier.class); } + /** + * Change status of shield information barrier with the specified ID. + * + * @param requestBody Request body of updateShieldInformationBarrierStatus method + */ public ShieldInformationBarrier updateShieldInformationBarrierStatus( UpdateShieldInformationBarrierStatusRequestBody requestBody) { return updateShieldInformationBarrierStatus( requestBody, new UpdateShieldInformationBarrierStatusHeaders()); } + /** + * Change status of shield information barrier with the specified ID. + * + * @param requestBody Request body of updateShieldInformationBarrierStatus method + * @param headers Headers of updateShieldInformationBarrierStatus method + */ public ShieldInformationBarrier updateShieldInformationBarrierStatus( UpdateShieldInformationBarrierStatusRequestBody requestBody, UpdateShieldInformationBarrierStatusHeaders headers) { @@ -89,21 +111,38 @@ public ShieldInformationBarrier updateShieldInformationBarrierStatus( return JsonManager.deserialize(response.getData(), ShieldInformationBarrier.class); } + /** Retrieves a list of shield information barrier objects for the enterprise of JWT. */ public ShieldInformationBarriers getShieldInformationBarriers() { return getShieldInformationBarriers( new GetShieldInformationBarriersQueryParams(), new GetShieldInformationBarriersHeaders()); } + /** + * Retrieves a list of shield information barrier objects for the enterprise of JWT. + * + * @param queryParams Query parameters of getShieldInformationBarriers method + */ public ShieldInformationBarriers getShieldInformationBarriers( GetShieldInformationBarriersQueryParams queryParams) { return getShieldInformationBarriers(queryParams, new GetShieldInformationBarriersHeaders()); } + /** + * Retrieves a list of shield information barrier objects for the enterprise of JWT. + * + * @param headers Headers of getShieldInformationBarriers method + */ public ShieldInformationBarriers getShieldInformationBarriers( GetShieldInformationBarriersHeaders headers) { return getShieldInformationBarriers(new GetShieldInformationBarriersQueryParams(), headers); } + /** + * Retrieves a list of shield information barrier objects for the enterprise of JWT. + * + * @param queryParams Query parameters of getShieldInformationBarriers method + * @param headers Headers of getShieldInformationBarriers method + */ public ShieldInformationBarriers getShieldInformationBarriers( GetShieldInformationBarriersQueryParams queryParams, GetShieldInformationBarriersHeaders headers) { @@ -132,11 +171,24 @@ public ShieldInformationBarriers getShieldInformationBarriers( return JsonManager.deserialize(response.getData(), ShieldInformationBarriers.class); } + /** + * Creates a shield information barrier to separate individuals/groups within the same firm and + * prevents confidential information passing between them. + * + * @param requestBody Request body of createShieldInformationBarrier method + */ public ShieldInformationBarrier createShieldInformationBarrier( CreateShieldInformationBarrierRequestBody requestBody) { return createShieldInformationBarrier(requestBody, new CreateShieldInformationBarrierHeaders()); } + /** + * Creates a shield information barrier to separate individuals/groups within the same firm and + * prevents confidential information passing between them. + * + * @param requestBody Request body of createShieldInformationBarrier method + * @param headers Headers of createShieldInformationBarrier method + */ public ShieldInformationBarrier createShieldInformationBarrier( CreateShieldInformationBarrierRequestBody requestBody, CreateShieldInformationBarrierHeaders headers) { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusHeaders.java index a82fea5e6..e73f54b1a 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusHeaders.java @@ -6,6 +6,7 @@ public class UpdateShieldInformationBarrierStatusHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateShieldInformationBarrierStatusHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusRequestBody.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusRequestBody.java index d2d92b6ec..6d69611ef 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusRequestBody.java @@ -11,8 +11,10 @@ @JsonFilter("nullablePropertyFilter") public class UpdateShieldInformationBarrierStatusRequestBody extends SerializableObject { + /** The ID of the shield information barrier. */ protected final String id; + /** The desired status for the shield information barrier. */ @JsonDeserialize( using = UpdateShieldInformationBarrierStatusRequestBodyStatusField diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberHeaders.java index 7283b1a84..8b73711ad 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberHeaders.java @@ -6,6 +6,7 @@ public class CreateShieldInformationBarrierSegmentMemberHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateShieldInformationBarrierSegmentMemberHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBody.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBody.java index e2d6e2467..219b1f021 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBody.java @@ -14,6 +14,7 @@ @JsonFilter("nullablePropertyFilter") public class CreateShieldInformationBarrierSegmentMemberRequestBody extends SerializableObject { + /** A type of the shield barrier segment member. */ @JsonDeserialize( using = CreateShieldInformationBarrierSegmentMemberRequestBodyTypeField @@ -27,11 +28,13 @@ public class CreateShieldInformationBarrierSegmentMemberRequestBody extends Seri @JsonProperty("shield_information_barrier") protected ShieldInformationBarrierBase shieldInformationBarrier; + /** The `type` and `id` of the requested shield information barrier segment. */ @JsonProperty("shield_information_barrier_segment") protected final CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField shieldInformationBarrierSegment; + /** User to which restriction will be applied. */ protected final UserBase user; public CreateShieldInformationBarrierSegmentMemberRequestBody( diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField.java index ff5431952..8ae880589 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField.java @@ -13,8 +13,10 @@ class CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentField extends SerializableObject { + /** The ID reference of the requesting shield information barrier segment. */ protected String id; + /** The type of the shield barrier segment for this member. */ @JsonDeserialize( using = CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/DeleteShieldInformationBarrierSegmentMemberByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/DeleteShieldInformationBarrierSegmentMemberByIdHeaders.java index b4928959c..76c88e956 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/DeleteShieldInformationBarrierSegmentMemberByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/DeleteShieldInformationBarrierSegmentMemberByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteShieldInformationBarrierSegmentMemberByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteShieldInformationBarrierSegmentMemberByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMemberByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMemberByIdHeaders.java index 5f154d50d..aecc121a9 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMemberByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMemberByIdHeaders.java @@ -6,6 +6,7 @@ public class GetShieldInformationBarrierSegmentMemberByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetShieldInformationBarrierSegmentMemberByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMembersHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMembersHeaders.java index b03c7a299..fc880be6a 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMembersHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMembersHeaders.java @@ -6,6 +6,7 @@ public class GetShieldInformationBarrierSegmentMembersHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetShieldInformationBarrierSegmentMembersHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMembersQueryParams.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMembersQueryParams.java index 5a3130394..8112174f7 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMembersQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMembersQueryParams.java @@ -2,10 +2,18 @@ public class GetShieldInformationBarrierSegmentMembersQueryParams { + /** The ID of the shield information barrier segment. */ public final String shieldInformationBarrierSegmentId; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetShieldInformationBarrierSegmentMembersQueryParams( diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembersManager.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembersManager.java index 52229db83..2deea127c 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembersManager.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembersManager.java @@ -31,6 +31,12 @@ protected ShieldInformationBarrierSegmentMembersManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves a shield information barrier segment member by its ID. + * + * @param shieldInformationBarrierSegmentMemberId The ID of the shield information barrier segment + * Member. Example: "7815" + */ public ShieldInformationBarrierSegmentMember getShieldInformationBarrierSegmentMemberById( String shieldInformationBarrierSegmentMemberId) { return getShieldInformationBarrierSegmentMemberById( @@ -38,6 +44,13 @@ public ShieldInformationBarrierSegmentMember getShieldInformationBarrierSegmentM new GetShieldInformationBarrierSegmentMemberByIdHeaders()); } + /** + * Retrieves a shield information barrier segment member by its ID. + * + * @param shieldInformationBarrierSegmentMemberId The ID of the shield information barrier segment + * Member. Example: "7815" + * @param headers Headers of getShieldInformationBarrierSegmentMemberById method + */ public ShieldInformationBarrierSegmentMember getShieldInformationBarrierSegmentMemberById( String shieldInformationBarrierSegmentMemberId, GetShieldInformationBarrierSegmentMemberByIdHeaders headers) { @@ -61,6 +74,12 @@ public ShieldInformationBarrierSegmentMember getShieldInformationBarrierSegmentM return JsonManager.deserialize(response.getData(), ShieldInformationBarrierSegmentMember.class); } + /** + * Deletes a shield information barrier segment member based on provided ID. + * + * @param shieldInformationBarrierSegmentMemberId The ID of the shield information barrier segment + * Member. Example: "7815" + */ public void deleteShieldInformationBarrierSegmentMemberById( String shieldInformationBarrierSegmentMemberId) { deleteShieldInformationBarrierSegmentMemberById( @@ -68,6 +87,13 @@ public void deleteShieldInformationBarrierSegmentMemberById( new DeleteShieldInformationBarrierSegmentMemberByIdHeaders()); } + /** + * Deletes a shield information barrier segment member based on provided ID. + * + * @param shieldInformationBarrierSegmentMemberId The ID of the shield information barrier segment + * Member. Example: "7815" + * @param headers Headers of deleteShieldInformationBarrierSegmentMemberById method + */ public void deleteShieldInformationBarrierSegmentMemberById( String shieldInformationBarrierSegmentMemberId, DeleteShieldInformationBarrierSegmentMemberByIdHeaders headers) { @@ -90,12 +116,23 @@ public void deleteShieldInformationBarrierSegmentMemberById( .build()); } + /** + * Lists shield information barrier segment members based on provided segment IDs. + * + * @param queryParams Query parameters of getShieldInformationBarrierSegmentMembers method + */ public ShieldInformationBarrierSegmentMembers getShieldInformationBarrierSegmentMembers( GetShieldInformationBarrierSegmentMembersQueryParams queryParams) { return getShieldInformationBarrierSegmentMembers( queryParams, new GetShieldInformationBarrierSegmentMembersHeaders()); } + /** + * Lists shield information barrier segment members based on provided segment IDs. + * + * @param queryParams Query parameters of getShieldInformationBarrierSegmentMembers method + * @param headers Headers of getShieldInformationBarrierSegmentMembers method + */ public ShieldInformationBarrierSegmentMembers getShieldInformationBarrierSegmentMembers( GetShieldInformationBarrierSegmentMembersQueryParams queryParams, GetShieldInformationBarrierSegmentMembersHeaders headers) { @@ -128,12 +165,23 @@ public ShieldInformationBarrierSegmentMembers getShieldInformationBarrierSegment response.getData(), ShieldInformationBarrierSegmentMembers.class); } + /** + * Creates a new shield information barrier segment member. + * + * @param requestBody Request body of createShieldInformationBarrierSegmentMember method + */ public ShieldInformationBarrierSegmentMember createShieldInformationBarrierSegmentMember( CreateShieldInformationBarrierSegmentMemberRequestBody requestBody) { return createShieldInformationBarrierSegmentMember( requestBody, new CreateShieldInformationBarrierSegmentMemberHeaders()); } + /** + * Creates a new shield information barrier segment member. + * + * @param requestBody Request body of createShieldInformationBarrierSegmentMember method + * @param headers Headers of createShieldInformationBarrierSegmentMember method + */ public ShieldInformationBarrierSegmentMember createShieldInformationBarrierSegmentMember( CreateShieldInformationBarrierSegmentMemberRequestBody requestBody, CreateShieldInformationBarrierSegmentMemberHeaders headers) { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionHeaders.java index 28d9265b5..cc4fb7a63 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionHeaders.java @@ -6,6 +6,7 @@ public class CreateShieldInformationBarrierSegmentRestrictionHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateShieldInformationBarrierSegmentRestrictionHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBody.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBody.java index b879ab3d0..2f670f733 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBody.java @@ -14,6 +14,7 @@ public class CreateShieldInformationBarrierSegmentRestrictionRequestBody extends SerializableObject { + /** The type of the shield barrier segment restriction for this member. */ @JsonDeserialize( using = CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeField @@ -28,11 +29,13 @@ public class CreateShieldInformationBarrierSegmentRestrictionRequestBody @JsonProperty("shield_information_barrier") protected ShieldInformationBarrierBase shieldInformationBarrier; + /** The `type` and `id` of the requested shield information barrier segment. */ @JsonProperty("shield_information_barrier_segment") protected final CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField shieldInformationBarrierSegment; + /** The `type` and `id` of the restricted shield information barrier segment. */ @JsonProperty("restricted_segment") protected final CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField restrictedSegment; diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField.java index ab28f0f3c..f750ee3d4 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField.java @@ -12,8 +12,10 @@ public class CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentField extends SerializableObject { + /** The ID reference of the restricted shield information barrier segment. */ protected String id; + /** The type of the restricted shield information barrier segment. */ @JsonDeserialize( using = CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField.java index 34cfa424a..e6d5c887e 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField.java @@ -13,8 +13,10 @@ class CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentField extends SerializableObject { + /** The ID reference of the requesting shield information barrier segment. */ protected String id; + /** The type of the shield barrier segment for this member. */ @JsonDeserialize( using = CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders.java index c6c385c0c..4b7d8729e 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionByIdHeaders.java index 093d919bd..56464ec03 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionByIdHeaders.java @@ -6,6 +6,7 @@ public class GetShieldInformationBarrierSegmentRestrictionByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetShieldInformationBarrierSegmentRestrictionByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionsHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionsHeaders.java index 591a48a25..4408a301a 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionsHeaders.java @@ -6,6 +6,7 @@ public class GetShieldInformationBarrierSegmentRestrictionsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetShieldInformationBarrierSegmentRestrictionsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionsQueryParams.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionsQueryParams.java index 94b94c7ea..e0e807870 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionsQueryParams.java @@ -2,10 +2,18 @@ public class GetShieldInformationBarrierSegmentRestrictionsQueryParams { + /** The ID of the shield information barrier segment. */ public final String shieldInformationBarrierSegmentId; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetShieldInformationBarrierSegmentRestrictionsQueryParams( diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictionsManager.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictionsManager.java index 6e4ca07f1..3b1b45cba 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictionsManager.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictionsManager.java @@ -31,6 +31,12 @@ protected ShieldInformationBarrierSegmentRestrictionsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves a shield information barrier segment restriction based on provided ID. + * + * @param shieldInformationBarrierSegmentRestrictionId The ID of the shield information barrier + * segment Restriction. Example: "4563" + */ public ShieldInformationBarrierSegmentRestriction getShieldInformationBarrierSegmentRestrictionById( String shieldInformationBarrierSegmentRestrictionId) { @@ -39,6 +45,13 @@ protected ShieldInformationBarrierSegmentRestrictionsManager(Builder builder) { new GetShieldInformationBarrierSegmentRestrictionByIdHeaders()); } + /** + * Retrieves a shield information barrier segment restriction based on provided ID. + * + * @param shieldInformationBarrierSegmentRestrictionId The ID of the shield information barrier + * segment Restriction. Example: "4563" + * @param headers Headers of getShieldInformationBarrierSegmentRestrictionById method + */ public ShieldInformationBarrierSegmentRestriction getShieldInformationBarrierSegmentRestrictionById( String shieldInformationBarrierSegmentRestrictionId, @@ -64,6 +77,12 @@ protected ShieldInformationBarrierSegmentRestrictionsManager(Builder builder) { response.getData(), ShieldInformationBarrierSegmentRestriction.class); } + /** + * Delete shield information barrier segment restriction based on provided ID. + * + * @param shieldInformationBarrierSegmentRestrictionId The ID of the shield information barrier + * segment Restriction. Example: "4563" + */ public void deleteShieldInformationBarrierSegmentRestrictionById( String shieldInformationBarrierSegmentRestrictionId) { deleteShieldInformationBarrierSegmentRestrictionById( @@ -71,6 +90,13 @@ public void deleteShieldInformationBarrierSegmentRestrictionById( new DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders()); } + /** + * Delete shield information barrier segment restriction based on provided ID. + * + * @param shieldInformationBarrierSegmentRestrictionId The ID of the shield information barrier + * segment Restriction. Example: "4563" + * @param headers Headers of deleteShieldInformationBarrierSegmentRestrictionById method + */ public void deleteShieldInformationBarrierSegmentRestrictionById( String shieldInformationBarrierSegmentRestrictionId, DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders headers) { @@ -93,12 +119,23 @@ public void deleteShieldInformationBarrierSegmentRestrictionById( .build()); } + /** + * Lists shield information barrier segment restrictions based on provided segment ID. + * + * @param queryParams Query parameters of getShieldInformationBarrierSegmentRestrictions method + */ public ShieldInformationBarrierSegmentRestrictions getShieldInformationBarrierSegmentRestrictions( GetShieldInformationBarrierSegmentRestrictionsQueryParams queryParams) { return getShieldInformationBarrierSegmentRestrictions( queryParams, new GetShieldInformationBarrierSegmentRestrictionsHeaders()); } + /** + * Lists shield information barrier segment restrictions based on provided segment ID. + * + * @param queryParams Query parameters of getShieldInformationBarrierSegmentRestrictions method + * @param headers Headers of getShieldInformationBarrierSegmentRestrictions method + */ public ShieldInformationBarrierSegmentRestrictions getShieldInformationBarrierSegmentRestrictions( GetShieldInformationBarrierSegmentRestrictionsQueryParams queryParams, GetShieldInformationBarrierSegmentRestrictionsHeaders headers) { @@ -131,6 +168,11 @@ public ShieldInformationBarrierSegmentRestrictions getShieldInformationBarrierSe response.getData(), ShieldInformationBarrierSegmentRestrictions.class); } + /** + * Creates a shield information barrier segment restriction object. + * + * @param requestBody Request body of createShieldInformationBarrierSegmentRestriction method + */ public ShieldInformationBarrierSegmentRestriction createShieldInformationBarrierSegmentRestriction( CreateShieldInformationBarrierSegmentRestrictionRequestBody requestBody) { @@ -138,6 +180,12 @@ public ShieldInformationBarrierSegmentRestrictions getShieldInformationBarrierSe requestBody, new CreateShieldInformationBarrierSegmentRestrictionHeaders()); } + /** + * Creates a shield information barrier segment restriction object. + * + * @param requestBody Request body of createShieldInformationBarrierSegmentRestriction method + * @param headers Headers of createShieldInformationBarrierSegmentRestriction method + */ public ShieldInformationBarrierSegmentRestriction createShieldInformationBarrierSegmentRestriction( CreateShieldInformationBarrierSegmentRestrictionRequestBody requestBody, diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/CreateShieldInformationBarrierSegmentHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/CreateShieldInformationBarrierSegmentHeaders.java index 94acaca6e..99f94f9db 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/CreateShieldInformationBarrierSegmentHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/CreateShieldInformationBarrierSegmentHeaders.java @@ -6,6 +6,7 @@ public class CreateShieldInformationBarrierSegmentHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateShieldInformationBarrierSegmentHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/CreateShieldInformationBarrierSegmentRequestBody.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/CreateShieldInformationBarrierSegmentRequestBody.java index bbd71f9e1..dc953d5b7 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/CreateShieldInformationBarrierSegmentRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/CreateShieldInformationBarrierSegmentRequestBody.java @@ -13,8 +13,10 @@ public class CreateShieldInformationBarrierSegmentRequestBody extends Serializab @JsonProperty("shield_information_barrier") protected final ShieldInformationBarrierBase shieldInformationBarrier; + /** Name of the shield information barrier segment. */ protected final String name; + /** Description of the shield information barrier segment. */ protected String description; public CreateShieldInformationBarrierSegmentRequestBody( diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/DeleteShieldInformationBarrierSegmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/DeleteShieldInformationBarrierSegmentByIdHeaders.java index 0959d04d7..c194215b5 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/DeleteShieldInformationBarrierSegmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/DeleteShieldInformationBarrierSegmentByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteShieldInformationBarrierSegmentByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteShieldInformationBarrierSegmentByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentByIdHeaders.java index f764c4a1d..4627d494e 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentByIdHeaders.java @@ -6,6 +6,7 @@ public class GetShieldInformationBarrierSegmentByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetShieldInformationBarrierSegmentByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentsHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentsHeaders.java index 5d7d2b785..7aa4c6d29 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentsHeaders.java @@ -6,6 +6,7 @@ public class GetShieldInformationBarrierSegmentsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetShieldInformationBarrierSegmentsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentsQueryParams.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentsQueryParams.java index 3c0eea970..ac44c676b 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentsQueryParams.java @@ -2,10 +2,18 @@ public class GetShieldInformationBarrierSegmentsQueryParams { + /** The ID of the shield information barrier. */ public final String shieldInformationBarrierId; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetShieldInformationBarrierSegmentsQueryParams(String shieldInformationBarrierId) { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/ShieldInformationBarrierSegmentsManager.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/ShieldInformationBarrierSegmentsManager.java index 4f673a153..164a15607 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/ShieldInformationBarrierSegmentsManager.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/ShieldInformationBarrierSegmentsManager.java @@ -31,12 +31,25 @@ protected ShieldInformationBarrierSegmentsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves shield information barrier segment based on provided ID.. + * + * @param shieldInformationBarrierSegmentId The ID of the shield information barrier segment. + * Example: "3423" + */ public ShieldInformationBarrierSegment getShieldInformationBarrierSegmentById( String shieldInformationBarrierSegmentId) { return getShieldInformationBarrierSegmentById( shieldInformationBarrierSegmentId, new GetShieldInformationBarrierSegmentByIdHeaders()); } + /** + * Retrieves shield information barrier segment based on provided ID.. + * + * @param shieldInformationBarrierSegmentId The ID of the shield information barrier segment. + * Example: "3423" + * @param headers Headers of getShieldInformationBarrierSegmentById method + */ public ShieldInformationBarrierSegment getShieldInformationBarrierSegmentById( String shieldInformationBarrierSegmentId, GetShieldInformationBarrierSegmentByIdHeaders headers) { @@ -60,11 +73,24 @@ public ShieldInformationBarrierSegment getShieldInformationBarrierSegmentById( return JsonManager.deserialize(response.getData(), ShieldInformationBarrierSegment.class); } + /** + * Deletes the shield information barrier segment based on provided ID. + * + * @param shieldInformationBarrierSegmentId The ID of the shield information barrier segment. + * Example: "3423" + */ public void deleteShieldInformationBarrierSegmentById(String shieldInformationBarrierSegmentId) { deleteShieldInformationBarrierSegmentById( shieldInformationBarrierSegmentId, new DeleteShieldInformationBarrierSegmentByIdHeaders()); } + /** + * Deletes the shield information barrier segment based on provided ID. + * + * @param shieldInformationBarrierSegmentId The ID of the shield information barrier segment. + * Example: "3423" + * @param headers Headers of deleteShieldInformationBarrierSegmentById method + */ public void deleteShieldInformationBarrierSegmentById( String shieldInformationBarrierSegmentId, DeleteShieldInformationBarrierSegmentByIdHeaders headers) { @@ -87,6 +113,12 @@ public void deleteShieldInformationBarrierSegmentById( .build()); } + /** + * Updates the shield information barrier segment based on provided ID.. + * + * @param shieldInformationBarrierSegmentId The ID of the shield information barrier segment. + * Example: "3423" + */ public ShieldInformationBarrierSegment updateShieldInformationBarrierSegmentById( String shieldInformationBarrierSegmentId) { return updateShieldInformationBarrierSegmentById( @@ -95,6 +127,13 @@ public ShieldInformationBarrierSegment updateShieldInformationBarrierSegmentById new UpdateShieldInformationBarrierSegmentByIdHeaders()); } + /** + * Updates the shield information barrier segment based on provided ID.. + * + * @param shieldInformationBarrierSegmentId The ID of the shield information barrier segment. + * Example: "3423" + * @param requestBody Request body of updateShieldInformationBarrierSegmentById method + */ public ShieldInformationBarrierSegment updateShieldInformationBarrierSegmentById( String shieldInformationBarrierSegmentId, UpdateShieldInformationBarrierSegmentByIdRequestBody requestBody) { @@ -104,6 +143,13 @@ public ShieldInformationBarrierSegment updateShieldInformationBarrierSegmentById new UpdateShieldInformationBarrierSegmentByIdHeaders()); } + /** + * Updates the shield information barrier segment based on provided ID.. + * + * @param shieldInformationBarrierSegmentId The ID of the shield information barrier segment. + * Example: "3423" + * @param headers Headers of updateShieldInformationBarrierSegmentById method + */ public ShieldInformationBarrierSegment updateShieldInformationBarrierSegmentById( String shieldInformationBarrierSegmentId, UpdateShieldInformationBarrierSegmentByIdHeaders headers) { @@ -113,6 +159,14 @@ public ShieldInformationBarrierSegment updateShieldInformationBarrierSegmentById headers); } + /** + * Updates the shield information barrier segment based on provided ID.. + * + * @param shieldInformationBarrierSegmentId The ID of the shield information barrier segment. + * Example: "3423" + * @param requestBody Request body of updateShieldInformationBarrierSegmentById method + * @param headers Headers of updateShieldInformationBarrierSegmentById method + */ public ShieldInformationBarrierSegment updateShieldInformationBarrierSegmentById( String shieldInformationBarrierSegmentId, UpdateShieldInformationBarrierSegmentByIdRequestBody requestBody, @@ -139,12 +193,25 @@ public ShieldInformationBarrierSegment updateShieldInformationBarrierSegmentById return JsonManager.deserialize(response.getData(), ShieldInformationBarrierSegment.class); } + /** + * Retrieves a list of shield information barrier segment objects for the specified Information + * Barrier ID. + * + * @param queryParams Query parameters of getShieldInformationBarrierSegments method + */ public ShieldInformationBarrierSegments getShieldInformationBarrierSegments( GetShieldInformationBarrierSegmentsQueryParams queryParams) { return getShieldInformationBarrierSegments( queryParams, new GetShieldInformationBarrierSegmentsHeaders()); } + /** + * Retrieves a list of shield information barrier segment objects for the specified Information + * Barrier ID. + * + * @param queryParams Query parameters of getShieldInformationBarrierSegments method + * @param headers Headers of getShieldInformationBarrierSegments method + */ public ShieldInformationBarrierSegments getShieldInformationBarrierSegments( GetShieldInformationBarrierSegmentsQueryParams queryParams, GetShieldInformationBarrierSegmentsHeaders headers) { @@ -176,12 +243,23 @@ public ShieldInformationBarrierSegments getShieldInformationBarrierSegments( return JsonManager.deserialize(response.getData(), ShieldInformationBarrierSegments.class); } + /** + * Creates a shield information barrier segment. + * + * @param requestBody Request body of createShieldInformationBarrierSegment method + */ public ShieldInformationBarrierSegment createShieldInformationBarrierSegment( CreateShieldInformationBarrierSegmentRequestBody requestBody) { return createShieldInformationBarrierSegment( requestBody, new CreateShieldInformationBarrierSegmentHeaders()); } + /** + * Creates a shield information barrier segment. + * + * @param requestBody Request body of createShieldInformationBarrierSegment method + * @param headers Headers of createShieldInformationBarrierSegment method + */ public ShieldInformationBarrierSegment createShieldInformationBarrierSegment( CreateShieldInformationBarrierSegmentRequestBody requestBody, CreateShieldInformationBarrierSegmentHeaders headers) { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/UpdateShieldInformationBarrierSegmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/UpdateShieldInformationBarrierSegmentByIdHeaders.java index 1a7221c29..432f0ca38 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/UpdateShieldInformationBarrierSegmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/UpdateShieldInformationBarrierSegmentByIdHeaders.java @@ -6,6 +6,7 @@ public class UpdateShieldInformationBarrierSegmentByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateShieldInformationBarrierSegmentByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/UpdateShieldInformationBarrierSegmentByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/UpdateShieldInformationBarrierSegmentByIdRequestBody.java index ed1b3747c..1e943d747 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/UpdateShieldInformationBarrierSegmentByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/UpdateShieldInformationBarrierSegmentByIdRequestBody.java @@ -9,8 +9,10 @@ @JsonFilter("nullablePropertyFilter") public class UpdateShieldInformationBarrierSegmentByIdRequestBody extends SerializableObject { + /** The updated name for the shield information barrier segment. */ protected String name; + /** The updated description for the shield information barrier segment. */ @Nullable protected String description; public UpdateShieldInformationBarrierSegmentByIdRequestBody() { diff --git a/src/main/java/com/box/sdkgen/managers/shieldlists/CreateShieldListV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/shieldlists/CreateShieldListV2025R0Headers.java index c309ce186..c8c2fb25e 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldlists/CreateShieldListV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/shieldlists/CreateShieldListV2025R0Headers.java @@ -8,8 +8,10 @@ public class CreateShieldListV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateShieldListV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/shieldlists/DeleteShieldListByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/shieldlists/DeleteShieldListByIdV2025R0Headers.java index a9b681cc1..a03d36dee 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldlists/DeleteShieldListByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/shieldlists/DeleteShieldListByIdV2025R0Headers.java @@ -8,8 +8,10 @@ public class DeleteShieldListByIdV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteShieldListByIdV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/shieldlists/GetShieldListByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/shieldlists/GetShieldListByIdV2025R0Headers.java index 39012893f..170e566fa 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldlists/GetShieldListByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/shieldlists/GetShieldListByIdV2025R0Headers.java @@ -8,8 +8,10 @@ public class GetShieldListByIdV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetShieldListByIdV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/shieldlists/GetShieldListsV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/shieldlists/GetShieldListsV2025R0Headers.java index fb22f3648..d76ae559d 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldlists/GetShieldListsV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/shieldlists/GetShieldListsV2025R0Headers.java @@ -8,8 +8,10 @@ public class GetShieldListsV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetShieldListsV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/shieldlists/ShieldListsManager.java b/src/main/java/com/box/sdkgen/managers/shieldlists/ShieldListsManager.java index 12e5d2839..5f3b6946b 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldlists/ShieldListsManager.java +++ b/src/main/java/com/box/sdkgen/managers/shieldlists/ShieldListsManager.java @@ -33,10 +33,16 @@ protected ShieldListsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** Retrieves all shield lists in the enterprise. */ public ShieldListsV2025R0 getShieldListsV2025R0() { return getShieldListsV2025R0(new GetShieldListsV2025R0Headers()); } + /** + * Retrieves all shield lists in the enterprise. + * + * @param headers Headers of getShieldListsV2025R0 method + */ public ShieldListsV2025R0 getShieldListsV2025R0(GetShieldListsV2025R0Headers headers) { Map headersMap = prepareParams( @@ -61,10 +67,21 @@ public ShieldListsV2025R0 getShieldListsV2025R0(GetShieldListsV2025R0Headers hea return JsonManager.deserialize(response.getData(), ShieldListsV2025R0.class); } + /** + * Creates a shield list. + * + * @param requestBody Request body of createShieldListV2025R0 method + */ public ShieldListV2025R0 createShieldListV2025R0(ShieldListsCreateV2025R0 requestBody) { return createShieldListV2025R0(requestBody, new CreateShieldListV2025R0Headers()); } + /** + * Creates a shield list. + * + * @param requestBody Request body of createShieldListV2025R0 method + * @param headers Headers of createShieldListV2025R0 method + */ public ShieldListV2025R0 createShieldListV2025R0( ShieldListsCreateV2025R0 requestBody, CreateShieldListV2025R0Headers headers) { Map headersMap = @@ -92,10 +109,25 @@ public ShieldListV2025R0 createShieldListV2025R0( return JsonManager.deserialize(response.getData(), ShieldListV2025R0.class); } + /** + * Retrieves a single shield list by its ID. + * + * @param shieldListId The unique identifier that represents a shield list. The ID for any Shield + * List can be determined by the response from the endpoint fetching all shield lists for the + * enterprise. Example: "90fb0e17-c332-40ed-b4f9-fa8908fbbb24 " + */ public ShieldListV2025R0 getShieldListByIdV2025R0(String shieldListId) { return getShieldListByIdV2025R0(shieldListId, new GetShieldListByIdV2025R0Headers()); } + /** + * Retrieves a single shield list by its ID. + * + * @param shieldListId The unique identifier that represents a shield list. The ID for any Shield + * List can be determined by the response from the endpoint fetching all shield lists for the + * enterprise. Example: "90fb0e17-c332-40ed-b4f9-fa8908fbbb24 " + * @param headers Headers of getShieldListByIdV2025R0 method + */ public ShieldListV2025R0 getShieldListByIdV2025R0( String shieldListId, GetShieldListByIdV2025R0Headers headers) { Map headersMap = @@ -122,10 +154,25 @@ public ShieldListV2025R0 getShieldListByIdV2025R0( return JsonManager.deserialize(response.getData(), ShieldListV2025R0.class); } + /** + * Delete a single shield list by its ID. + * + * @param shieldListId The unique identifier that represents a shield list. The ID for any Shield + * List can be determined by the response from the endpoint fetching all shield lists for the + * enterprise. Example: "90fb0e17-c332-40ed-b4f9-fa8908fbbb24 " + */ public void deleteShieldListByIdV2025R0(String shieldListId) { deleteShieldListByIdV2025R0(shieldListId, new DeleteShieldListByIdV2025R0Headers()); } + /** + * Delete a single shield list by its ID. + * + * @param shieldListId The unique identifier that represents a shield list. The ID for any Shield + * List can be determined by the response from the endpoint fetching all shield lists for the + * enterprise. Example: "90fb0e17-c332-40ed-b4f9-fa8908fbbb24 " + * @param headers Headers of deleteShieldListByIdV2025R0 method + */ public void deleteShieldListByIdV2025R0( String shieldListId, DeleteShieldListByIdV2025R0Headers headers) { Map headersMap = @@ -151,12 +198,29 @@ public void deleteShieldListByIdV2025R0( .build()); } + /** + * Updates a shield list. + * + * @param shieldListId The unique identifier that represents a shield list. The ID for any Shield + * List can be determined by the response from the endpoint fetching all shield lists for the + * enterprise. Example: "90fb0e17-c332-40ed-b4f9-fa8908fbbb24 " + * @param requestBody Request body of updateShieldListByIdV2025R0 method + */ public ShieldListV2025R0 updateShieldListByIdV2025R0( String shieldListId, ShieldListsUpdateV2025R0 requestBody) { return updateShieldListByIdV2025R0( shieldListId, requestBody, new UpdateShieldListByIdV2025R0Headers()); } + /** + * Updates a shield list. + * + * @param shieldListId The unique identifier that represents a shield list. The ID for any Shield + * List can be determined by the response from the endpoint fetching all shield lists for the + * enterprise. Example: "90fb0e17-c332-40ed-b4f9-fa8908fbbb24 " + * @param requestBody Request body of updateShieldListByIdV2025R0 method + * @param headers Headers of updateShieldListByIdV2025R0 method + */ public ShieldListV2025R0 updateShieldListByIdV2025R0( String shieldListId, ShieldListsUpdateV2025R0 requestBody, diff --git a/src/main/java/com/box/sdkgen/managers/shieldlists/UpdateShieldListByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/shieldlists/UpdateShieldListByIdV2025R0Headers.java index 9a3f78687..642910557 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldlists/UpdateShieldListByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/shieldlists/UpdateShieldListByIdV2025R0Headers.java @@ -8,8 +8,10 @@ public class UpdateShieldListByIdV2025R0Headers { + /** Version header. */ public EnumWrapper boxVersion; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateShieldListByIdV2025R0Headers() { diff --git a/src/main/java/com/box/sdkgen/managers/signrequests/CancelSignRequestHeaders.java b/src/main/java/com/box/sdkgen/managers/signrequests/CancelSignRequestHeaders.java index b40341c56..63faca687 100644 --- a/src/main/java/com/box/sdkgen/managers/signrequests/CancelSignRequestHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/signrequests/CancelSignRequestHeaders.java @@ -6,6 +6,7 @@ public class CancelSignRequestHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CancelSignRequestHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/signrequests/CreateSignRequestHeaders.java b/src/main/java/com/box/sdkgen/managers/signrequests/CreateSignRequestHeaders.java index f4a836257..64159c92f 100644 --- a/src/main/java/com/box/sdkgen/managers/signrequests/CreateSignRequestHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/signrequests/CreateSignRequestHeaders.java @@ -6,6 +6,7 @@ public class CreateSignRequestHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateSignRequestHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestByIdHeaders.java index a40d9e902..2f48a6c24 100644 --- a/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestByIdHeaders.java @@ -6,6 +6,7 @@ public class GetSignRequestByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetSignRequestByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestsHeaders.java b/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestsHeaders.java index 1d2da7b24..1e73d4a24 100644 --- a/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestsHeaders.java @@ -6,6 +6,7 @@ public class GetSignRequestsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetSignRequestsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestsQueryParams.java b/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestsQueryParams.java index bb365feb1..2d1cdb70b 100644 --- a/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestsQueryParams.java @@ -4,12 +4,28 @@ public class GetSignRequestsQueryParams { + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; + /** + * A list of sender emails to filter the signature requests by sender. If provided, + * `shared_requests` must be set to `true`. + */ public List senders; + /** + * If set to `true`, only includes requests that user is not an owner, but user is a collaborator. + * Collaborator access is determined by the user access level of the sign files of the request. + * Default is `false`. Must be set to `true` if `senders` are provided. + */ public Boolean sharedRequests; public GetSignRequestsQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/signrequests/ResendSignRequestHeaders.java b/src/main/java/com/box/sdkgen/managers/signrequests/ResendSignRequestHeaders.java index 97004a76e..c91a35653 100644 --- a/src/main/java/com/box/sdkgen/managers/signrequests/ResendSignRequestHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/signrequests/ResendSignRequestHeaders.java @@ -6,6 +6,7 @@ public class ResendSignRequestHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public ResendSignRequestHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/signrequests/SignRequestsManager.java b/src/main/java/com/box/sdkgen/managers/signrequests/SignRequestsManager.java index 6ce9a638f..47ed51803 100644 --- a/src/main/java/com/box/sdkgen/managers/signrequests/SignRequestsManager.java +++ b/src/main/java/com/box/sdkgen/managers/signrequests/SignRequestsManager.java @@ -32,10 +32,21 @@ protected SignRequestsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Cancels a sign request. + * + * @param signRequestId The ID of the signature request. Example: "33243242" + */ public SignRequest cancelSignRequest(String signRequestId) { return cancelSignRequest(signRequestId, new CancelSignRequestHeaders()); } + /** + * Cancels a sign request. + * + * @param signRequestId The ID of the signature request. Example: "33243242" + * @param headers Headers of cancelSignRequest method + */ public SignRequest cancelSignRequest(String signRequestId, CancelSignRequestHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = @@ -58,10 +69,21 @@ public SignRequest cancelSignRequest(String signRequestId, CancelSignRequestHead return JsonManager.deserialize(response.getData(), SignRequest.class); } + /** + * Resends a signature request email to all outstanding signers. + * + * @param signRequestId The ID of the signature request. Example: "33243242" + */ public void resendSignRequest(String signRequestId) { resendSignRequest(signRequestId, new ResendSignRequestHeaders()); } + /** + * Resends a signature request email to all outstanding signers. + * + * @param signRequestId The ID of the signature request. Example: "33243242" + * @param headers Headers of resendSignRequest method + */ public void resendSignRequest(String signRequestId, ResendSignRequestHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = @@ -83,10 +105,21 @@ public void resendSignRequest(String signRequestId, ResendSignRequestHeaders hea .build()); } + /** + * Gets a sign request by ID. + * + * @param signRequestId The ID of the signature request. Example: "33243242" + */ public SignRequest getSignRequestById(String signRequestId) { return getSignRequestById(signRequestId, new GetSignRequestByIdHeaders()); } + /** + * Gets a sign request by ID. + * + * @param signRequestId The ID of the signature request. Example: "33243242" + * @param headers Headers of getSignRequestById method + */ public SignRequest getSignRequestById(String signRequestId, GetSignRequestByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = @@ -108,18 +141,41 @@ public SignRequest getSignRequestById(String signRequestId, GetSignRequestByIdHe return JsonManager.deserialize(response.getData(), SignRequest.class); } + /** + * Gets signature requests created by a user. If the `sign_files` and/or `parent_folder` are + * deleted, the signature request will not return in the list. + */ public SignRequests getSignRequests() { return getSignRequests(new GetSignRequestsQueryParams(), new GetSignRequestsHeaders()); } + /** + * Gets signature requests created by a user. If the `sign_files` and/or `parent_folder` are + * deleted, the signature request will not return in the list. + * + * @param queryParams Query parameters of getSignRequests method + */ public SignRequests getSignRequests(GetSignRequestsQueryParams queryParams) { return getSignRequests(queryParams, new GetSignRequestsHeaders()); } + /** + * Gets signature requests created by a user. If the `sign_files` and/or `parent_folder` are + * deleted, the signature request will not return in the list. + * + * @param headers Headers of getSignRequests method + */ public SignRequests getSignRequests(GetSignRequestsHeaders headers) { return getSignRequests(new GetSignRequestsQueryParams(), headers); } + /** + * Gets signature requests created by a user. If the `sign_files` and/or `parent_folder` are + * deleted, the signature request will not return in the list. + * + * @param queryParams Query parameters of getSignRequests method + * @param headers Headers of getSignRequests method + */ public SignRequests getSignRequests( GetSignRequestsQueryParams queryParams, GetSignRequestsHeaders headers) { Map queryParamsMap = @@ -149,10 +205,23 @@ public SignRequests getSignRequests( return JsonManager.deserialize(response.getData(), SignRequests.class); } + /** + * Creates a signature request. This involves preparing a document for signing and sending the + * signature request to signers. + * + * @param requestBody Request body of createSignRequest method + */ public SignRequest createSignRequest(SignRequestCreateRequest requestBody) { return createSignRequest(requestBody, new CreateSignRequestHeaders()); } + /** + * Creates a signature request. This involves preparing a document for signing and sending the + * signature request to signers. + * + * @param requestBody Request body of createSignRequest method + * @param headers Headers of createSignRequest method + */ public SignRequest createSignRequest( SignRequestCreateRequest requestBody, CreateSignRequestHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); diff --git a/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplateByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplateByIdHeaders.java index 22b3e1d89..84d58af3b 100644 --- a/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplateByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplateByIdHeaders.java @@ -6,6 +6,7 @@ public class GetSignTemplateByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetSignTemplateByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplatesHeaders.java b/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplatesHeaders.java index 1dc2f5485..d18dda799 100644 --- a/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplatesHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplatesHeaders.java @@ -6,6 +6,7 @@ public class GetSignTemplatesHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetSignTemplatesHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplatesQueryParams.java b/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplatesQueryParams.java index ea6476340..6b3324ae1 100644 --- a/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplatesQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplatesQueryParams.java @@ -2,8 +2,15 @@ public class GetSignTemplatesQueryParams { + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetSignTemplatesQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/signtemplates/SignTemplatesManager.java b/src/main/java/com/box/sdkgen/managers/signtemplates/SignTemplatesManager.java index 4bafb358e..1fc374407 100644 --- a/src/main/java/com/box/sdkgen/managers/signtemplates/SignTemplatesManager.java +++ b/src/main/java/com/box/sdkgen/managers/signtemplates/SignTemplatesManager.java @@ -31,18 +31,35 @@ protected SignTemplatesManager(Builder builder) { this.networkSession = builder.networkSession; } + /** Gets Box Sign templates created by a user. */ public SignTemplates getSignTemplates() { return getSignTemplates(new GetSignTemplatesQueryParams(), new GetSignTemplatesHeaders()); } + /** + * Gets Box Sign templates created by a user. + * + * @param queryParams Query parameters of getSignTemplates method + */ public SignTemplates getSignTemplates(GetSignTemplatesQueryParams queryParams) { return getSignTemplates(queryParams, new GetSignTemplatesHeaders()); } + /** + * Gets Box Sign templates created by a user. + * + * @param headers Headers of getSignTemplates method + */ public SignTemplates getSignTemplates(GetSignTemplatesHeaders headers) { return getSignTemplates(new GetSignTemplatesQueryParams(), headers); } + /** + * Gets Box Sign templates created by a user. + * + * @param queryParams Query parameters of getSignTemplates method + * @param headers Headers of getSignTemplates method + */ public SignTemplates getSignTemplates( GetSignTemplatesQueryParams queryParams, GetSignTemplatesHeaders headers) { Map queryParamsMap = @@ -70,10 +87,23 @@ public SignTemplates getSignTemplates( return JsonManager.deserialize(response.getData(), SignTemplates.class); } + /** + * Fetches details of a specific Box Sign template. + * + * @param templateId The ID of a Box Sign template. Example: + * "123075213-7d117509-8f05-42e4-a5ef-5190a319d41d" + */ public SignTemplate getSignTemplateById(String templateId) { return getSignTemplateById(templateId, new GetSignTemplateByIdHeaders()); } + /** + * Fetches details of a specific Box Sign template. + * + * @param templateId The ID of a Box Sign template. Example: + * "123075213-7d117509-8f05-42e4-a5ef-5190a319d41d" + * @param headers Headers of getSignTemplateById method + */ public SignTemplate getSignTemplateById(String templateId, GetSignTemplateByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = diff --git a/src/main/java/com/box/sdkgen/managers/skills/CreateBoxSkillCardsOnFileHeaders.java b/src/main/java/com/box/sdkgen/managers/skills/CreateBoxSkillCardsOnFileHeaders.java index 73e6aec4b..d0f53aa6c 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/CreateBoxSkillCardsOnFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/skills/CreateBoxSkillCardsOnFileHeaders.java @@ -6,6 +6,7 @@ public class CreateBoxSkillCardsOnFileHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateBoxSkillCardsOnFileHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/skills/CreateBoxSkillCardsOnFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/skills/CreateBoxSkillCardsOnFileRequestBody.java index 5e2152fb1..8d92e4164 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/CreateBoxSkillCardsOnFileRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/skills/CreateBoxSkillCardsOnFileRequestBody.java @@ -10,6 +10,7 @@ @JsonFilter("nullablePropertyFilter") public class CreateBoxSkillCardsOnFileRequestBody extends SerializableObject { + /** A list of Box Skill cards to apply to this file. */ protected final List cards; public CreateBoxSkillCardsOnFileRequestBody(@JsonProperty("cards") List cards) { diff --git a/src/main/java/com/box/sdkgen/managers/skills/DeleteBoxSkillCardsFromFileHeaders.java b/src/main/java/com/box/sdkgen/managers/skills/DeleteBoxSkillCardsFromFileHeaders.java index eb2eb810e..7d07faa0f 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/DeleteBoxSkillCardsFromFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/skills/DeleteBoxSkillCardsFromFileHeaders.java @@ -6,6 +6,7 @@ public class DeleteBoxSkillCardsFromFileHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteBoxSkillCardsFromFileHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/skills/GetBoxSkillCardsOnFileHeaders.java b/src/main/java/com/box/sdkgen/managers/skills/GetBoxSkillCardsOnFileHeaders.java index abb918b46..55488f1de 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/GetBoxSkillCardsOnFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/skills/GetBoxSkillCardsOnFileHeaders.java @@ -6,6 +6,7 @@ public class GetBoxSkillCardsOnFileHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetBoxSkillCardsOnFileHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/skills/SkillsManager.java b/src/main/java/com/box/sdkgen/managers/skills/SkillsManager.java index a70628e61..c5e603338 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/SkillsManager.java +++ b/src/main/java/com/box/sdkgen/managers/skills/SkillsManager.java @@ -30,10 +30,27 @@ protected SkillsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * List the Box Skills metadata cards that are attached to a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + */ public SkillCardsMetadata getBoxSkillCardsOnFile(String fileId) { return getBoxSkillCardsOnFile(fileId, new GetBoxSkillCardsOnFileHeaders()); } + /** + * List the Box Skills metadata cards that are attached to a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param headers Headers of getBoxSkillCardsOnFile method + */ public SkillCardsMetadata getBoxSkillCardsOnFile( String fileId, GetBoxSkillCardsOnFileHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -57,11 +74,30 @@ public SkillCardsMetadata getBoxSkillCardsOnFile( return JsonManager.deserialize(response.getData(), SkillCardsMetadata.class); } + /** + * Applies one or more Box Skills metadata cards to a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of createBoxSkillCardsOnFile method + */ public SkillCardsMetadata createBoxSkillCardsOnFile( String fileId, CreateBoxSkillCardsOnFileRequestBody requestBody) { return createBoxSkillCardsOnFile(fileId, requestBody, new CreateBoxSkillCardsOnFileHeaders()); } + /** + * Applies one or more Box Skills metadata cards to a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of createBoxSkillCardsOnFile method + * @param headers Headers of createBoxSkillCardsOnFile method + */ public SkillCardsMetadata createBoxSkillCardsOnFile( String fileId, CreateBoxSkillCardsOnFileRequestBody requestBody, @@ -89,11 +125,30 @@ public SkillCardsMetadata createBoxSkillCardsOnFile( return JsonManager.deserialize(response.getData(), SkillCardsMetadata.class); } + /** + * Updates one or more Box Skills metadata cards to a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of updateBoxSkillCardsOnFile method + */ public SkillCardsMetadata updateBoxSkillCardsOnFile( String fileId, List requestBody) { return updateBoxSkillCardsOnFile(fileId, requestBody, new UpdateBoxSkillCardsOnFileHeaders()); } + /** + * Updates one or more Box Skills metadata cards to a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of updateBoxSkillCardsOnFile method + * @param headers Headers of updateBoxSkillCardsOnFile method + */ public SkillCardsMetadata updateBoxSkillCardsOnFile( String fileId, List requestBody, @@ -121,10 +176,27 @@ public SkillCardsMetadata updateBoxSkillCardsOnFile( return JsonManager.deserialize(response.getData(), SkillCardsMetadata.class); } + /** + * Removes any Box Skills cards metadata from a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + */ public void deleteBoxSkillCardsFromFile(String fileId) { deleteBoxSkillCardsFromFile(fileId, new DeleteBoxSkillCardsFromFileHeaders()); } + /** + * Removes any Box Skills cards metadata from a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param headers Headers of deleteBoxSkillCardsFromFile method + */ public void deleteBoxSkillCardsFromFile( String fileId, DeleteBoxSkillCardsFromFileHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -147,11 +219,26 @@ public void deleteBoxSkillCardsFromFile( .build()); } + /** + * An alternative method that can be used to overwrite and update all Box Skill metadata cards on + * a file. + * + * @param skillId The ID of the skill to apply this metadata for. Example: "33243242" + * @param requestBody Request body of updateAllSkillCardsOnFile method + */ public void updateAllSkillCardsOnFile( String skillId, UpdateAllSkillCardsOnFileRequestBody requestBody) { updateAllSkillCardsOnFile(skillId, requestBody, new UpdateAllSkillCardsOnFileHeaders()); } + /** + * An alternative method that can be used to overwrite and update all Box Skill metadata cards on + * a file. + * + * @param skillId The ID of the skill to apply this metadata for. Example: "33243242" + * @param requestBody Request body of updateAllSkillCardsOnFile method + * @param headers Headers of updateAllSkillCardsOnFile method + */ public void updateAllSkillCardsOnFile( String skillId, UpdateAllSkillCardsOnFileRequestBody requestBody, diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileHeaders.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileHeaders.java index 8066bdaae..6c6e0bd65 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileHeaders.java @@ -6,6 +6,7 @@ public class UpdateAllSkillCardsOnFileHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateAllSkillCardsOnFileHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBody.java index 9e258b9fc..4508db050 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBody.java @@ -12,6 +12,7 @@ @JsonFilter("nullablePropertyFilter") public class UpdateAllSkillCardsOnFileRequestBody extends SerializableObject { + /** Defines the status of this invocation. Set this to `success` when setting Skill cards. */ @JsonDeserialize( using = UpdateAllSkillCardsOnFileRequestBodyStatusField @@ -22,13 +23,25 @@ public class UpdateAllSkillCardsOnFileRequestBody extends SerializableObject { .UpdateAllSkillCardsOnFileRequestBodyStatusFieldSerializer.class) protected final EnumWrapper status; + /** + * The metadata to set for this skill. This is a list of Box Skills cards. These cards will + * overwrite any existing Box skill cards on the file. + */ protected final UpdateAllSkillCardsOnFileRequestBodyMetadataField metadata; + /** The file to assign the cards to. */ protected final UpdateAllSkillCardsOnFileRequestBodyFileField file; + /** The optional file version to assign the cards to. */ @JsonProperty("file_version") protected UpdateAllSkillCardsOnFileRequestBodyFileVersionField fileVersion; + /** + * A descriptor that defines what items are affected by this call. + * + *

    Set this to the default values when setting a card to a `success` state, and leave it out in + * most other situations. + */ protected UpdateAllSkillCardsOnFileRequestBodyUsageField usage; public UpdateAllSkillCardsOnFileRequestBody( diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileField.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileField.java index 6ae3d293e..c4c785748 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileField.java +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileField.java @@ -11,6 +11,7 @@ @JsonFilter("nullablePropertyFilter") public class UpdateAllSkillCardsOnFileRequestBodyFileField extends SerializableObject { + /** The value will always be `file`. */ @JsonDeserialize( using = UpdateAllSkillCardsOnFileRequestBodyFileTypeField @@ -21,6 +22,7 @@ public class UpdateAllSkillCardsOnFileRequestBodyFileField extends SerializableO .UpdateAllSkillCardsOnFileRequestBodyFileTypeFieldSerializer.class) protected EnumWrapper type; + /** The ID of the file. */ protected String id; public UpdateAllSkillCardsOnFileRequestBodyFileField() { diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileVersionField.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileVersionField.java index dec8d8e97..671e53450 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileVersionField.java +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileVersionField.java @@ -11,6 +11,7 @@ @JsonFilter("nullablePropertyFilter") public class UpdateAllSkillCardsOnFileRequestBodyFileVersionField extends SerializableObject { + /** The value will always be `file_version`. */ @JsonDeserialize( using = UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField @@ -21,6 +22,7 @@ public class UpdateAllSkillCardsOnFileRequestBodyFileVersionField extends Serial .UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeFieldSerializer.class) protected EnumWrapper type; + /** The ID of the file version. */ protected String id; public UpdateAllSkillCardsOnFileRequestBodyFileVersionField() { diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyMetadataField.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyMetadataField.java index 7f6d906b2..842e5c317 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyMetadataField.java +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyMetadataField.java @@ -10,6 +10,7 @@ @JsonFilter("nullablePropertyFilter") public class UpdateAllSkillCardsOnFileRequestBodyMetadataField extends SerializableObject { + /** A list of Box Skill cards to apply to this file. */ protected List cards; public UpdateAllSkillCardsOnFileRequestBodyMetadataField() { diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyUsageField.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyUsageField.java index f71be3850..f67e69d2a 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyUsageField.java +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyUsageField.java @@ -8,8 +8,10 @@ @JsonFilter("nullablePropertyFilter") public class UpdateAllSkillCardsOnFileRequestBodyUsageField extends SerializableObject { + /** The value will always be `file`. */ protected String unit; + /** Number of resources affected. */ protected Double value; public UpdateAllSkillCardsOnFileRequestBodyUsageField() { diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileHeaders.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileHeaders.java index 5b7934366..2a958df8a 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileHeaders.java @@ -6,6 +6,7 @@ public class UpdateBoxSkillCardsOnFileHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateBoxSkillCardsOnFileHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileRequestBody.java index 9d6a1c3ba..77e374b45 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileRequestBody.java @@ -16,6 +16,7 @@ @JsonFilter("nullablePropertyFilter") public class UpdateBoxSkillCardsOnFileRequestBody extends SerializableObject { + /** The value will always be `replace`. */ @JsonDeserialize( using = UpdateBoxSkillCardsOnFileRequestBodyOpField @@ -26,6 +27,10 @@ public class UpdateBoxSkillCardsOnFileRequestBody extends SerializableObject { .UpdateBoxSkillCardsOnFileRequestBodyOpFieldSerializer.class) protected EnumWrapper op; + /** + * The JSON Path that represents the card to replace. In most cases this will be in the format + * `/cards/{index}` where `index` is the zero-indexed position of the card in the list of cards. + */ protected String path; protected SkillCard value; diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePoliciesHeaders.java b/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePoliciesHeaders.java index 6cae444ec..53f1447fa 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePoliciesHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePoliciesHeaders.java @@ -6,6 +6,7 @@ public class GetStoragePoliciesHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetStoragePoliciesHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePoliciesQueryParams.java b/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePoliciesQueryParams.java index 4587ca345..055e275d1 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePoliciesQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePoliciesQueryParams.java @@ -4,10 +4,25 @@ public class GetStoragePoliciesQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetStoragePoliciesQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePolicyByIdHeaders.java index 392195cd6..91fefd2a5 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePolicyByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePolicyByIdHeaders.java @@ -6,6 +6,7 @@ public class GetStoragePolicyByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetStoragePolicyByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicies/StoragePoliciesManager.java b/src/main/java/com/box/sdkgen/managers/storagepolicies/StoragePoliciesManager.java index bcd15945c..ab79d9a31 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicies/StoragePoliciesManager.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicies/StoragePoliciesManager.java @@ -31,18 +31,35 @@ protected StoragePoliciesManager(Builder builder) { this.networkSession = builder.networkSession; } + /** Fetches all the storage policies in the enterprise. */ public StoragePolicies getStoragePolicies() { return getStoragePolicies(new GetStoragePoliciesQueryParams(), new GetStoragePoliciesHeaders()); } + /** + * Fetches all the storage policies in the enterprise. + * + * @param queryParams Query parameters of getStoragePolicies method + */ public StoragePolicies getStoragePolicies(GetStoragePoliciesQueryParams queryParams) { return getStoragePolicies(queryParams, new GetStoragePoliciesHeaders()); } + /** + * Fetches all the storage policies in the enterprise. + * + * @param headers Headers of getStoragePolicies method + */ public StoragePolicies getStoragePolicies(GetStoragePoliciesHeaders headers) { return getStoragePolicies(new GetStoragePoliciesQueryParams(), headers); } + /** + * Fetches all the storage policies in the enterprise. + * + * @param queryParams Query parameters of getStoragePolicies method + * @param headers Headers of getStoragePolicies method + */ public StoragePolicies getStoragePolicies( GetStoragePoliciesQueryParams queryParams, GetStoragePoliciesHeaders headers) { Map queryParamsMap = @@ -71,10 +88,21 @@ public StoragePolicies getStoragePolicies( return JsonManager.deserialize(response.getData(), StoragePolicies.class); } + /** + * Fetches a specific storage policy. + * + * @param storagePolicyId The ID of the storage policy. Example: "34342" + */ public StoragePolicy getStoragePolicyById(String storagePolicyId) { return getStoragePolicyById(storagePolicyId, new GetStoragePolicyByIdHeaders()); } + /** + * Fetches a specific storage policy. + * + * @param storagePolicyId The ID of the storage policy. Example: "34342" + * @param headers Headers of getStoragePolicyById method + */ public StoragePolicy getStoragePolicyById( String storagePolicyId, GetStoragePolicyByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentHeaders.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentHeaders.java index 0c61f3bc8..fd95fa3d1 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentHeaders.java @@ -6,6 +6,7 @@ public class CreateStoragePolicyAssignmentHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateStoragePolicyAssignmentHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBody.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBody.java index c1593c3fd..27aa72588 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBody.java @@ -8,9 +8,11 @@ @JsonFilter("nullablePropertyFilter") public class CreateStoragePolicyAssignmentRequestBody extends SerializableObject { + /** The storage policy to assign to the user or enterprise. */ @JsonProperty("storage_policy") protected final CreateStoragePolicyAssignmentRequestBodyStoragePolicyField storagePolicy; + /** The user or enterprise to assign the storage policy to. */ @JsonProperty("assigned_to") protected final CreateStoragePolicyAssignmentRequestBodyAssignedToField assignedTo; diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyAssignedToField.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyAssignedToField.java index 7e45c5a1b..ac8625308 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyAssignedToField.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyAssignedToField.java @@ -11,6 +11,7 @@ @JsonFilter("nullablePropertyFilter") public class CreateStoragePolicyAssignmentRequestBodyAssignedToField extends SerializableObject { + /** The type to assign the policy to. */ @JsonDeserialize( using = CreateStoragePolicyAssignmentRequestBodyAssignedToTypeField @@ -21,6 +22,7 @@ public class CreateStoragePolicyAssignmentRequestBodyAssignedToField extends Ser .CreateStoragePolicyAssignmentRequestBodyAssignedToTypeFieldSerializer.class) protected final EnumWrapper type; + /** The ID of the user or enterprise. */ protected final String id; public CreateStoragePolicyAssignmentRequestBodyAssignedToField( diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyStoragePolicyField.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyStoragePolicyField.java index 71c207f15..2301bdc9a 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyStoragePolicyField.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyStoragePolicyField.java @@ -12,6 +12,7 @@ @JsonFilter("nullablePropertyFilter") public class CreateStoragePolicyAssignmentRequestBodyStoragePolicyField extends SerializableObject { + /** The type to assign. */ @JsonDeserialize( using = CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField @@ -22,6 +23,7 @@ public class CreateStoragePolicyAssignmentRequestBodyStoragePolicyField extends .CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeFieldSerializer.class) protected EnumWrapper type; + /** The ID of the storage policy to assign. */ protected final String id; public CreateStoragePolicyAssignmentRequestBodyStoragePolicyField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/DeleteStoragePolicyAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/DeleteStoragePolicyAssignmentByIdHeaders.java index af29170b4..b4df815af 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/DeleteStoragePolicyAssignmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/DeleteStoragePolicyAssignmentByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteStoragePolicyAssignmentByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteStoragePolicyAssignmentByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentByIdHeaders.java index 439f79473..3db29af35 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentByIdHeaders.java @@ -6,6 +6,7 @@ public class GetStoragePolicyAssignmentByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetStoragePolicyAssignmentByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsHeaders.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsHeaders.java index c4b5c6d08..3b3376554 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsHeaders.java @@ -6,6 +6,7 @@ public class GetStoragePolicyAssignmentsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetStoragePolicyAssignmentsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsQueryParams.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsQueryParams.java index 4ac7e6c50..b0e882350 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsQueryParams.java @@ -4,11 +4,19 @@ public class GetStoragePolicyAssignmentsQueryParams { + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The target type to return assignments for. */ public final EnumWrapper resolvedForType; + /** The ID of the user or enterprise to return assignments for. */ public final String resolvedForId; public GetStoragePolicyAssignmentsQueryParams( diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/StoragePolicyAssignmentsManager.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/StoragePolicyAssignmentsManager.java index 7d6159959..0dbfab898 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/StoragePolicyAssignmentsManager.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/StoragePolicyAssignmentsManager.java @@ -31,11 +31,22 @@ protected StoragePolicyAssignmentsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Fetches all the storage policy assignment for an enterprise or user. + * + * @param queryParams Query parameters of getStoragePolicyAssignments method + */ public StoragePolicyAssignments getStoragePolicyAssignments( GetStoragePolicyAssignmentsQueryParams queryParams) { return getStoragePolicyAssignments(queryParams, new GetStoragePolicyAssignmentsHeaders()); } + /** + * Fetches all the storage policy assignment for an enterprise or user. + * + * @param queryParams Query parameters of getStoragePolicyAssignments method + * @param headers Headers of getStoragePolicyAssignments method + */ public StoragePolicyAssignments getStoragePolicyAssignments( GetStoragePolicyAssignmentsQueryParams queryParams, GetStoragePolicyAssignmentsHeaders headers) { @@ -65,11 +76,22 @@ public StoragePolicyAssignments getStoragePolicyAssignments( return JsonManager.deserialize(response.getData(), StoragePolicyAssignments.class); } + /** + * Creates a storage policy assignment for an enterprise or user. + * + * @param requestBody Request body of createStoragePolicyAssignment method + */ public StoragePolicyAssignment createStoragePolicyAssignment( CreateStoragePolicyAssignmentRequestBody requestBody) { return createStoragePolicyAssignment(requestBody, new CreateStoragePolicyAssignmentHeaders()); } + /** + * Creates a storage policy assignment for an enterprise or user. + * + * @param requestBody Request body of createStoragePolicyAssignment method + * @param headers Headers of createStoragePolicyAssignment method + */ public StoragePolicyAssignment createStoragePolicyAssignment( CreateStoragePolicyAssignmentRequestBody requestBody, CreateStoragePolicyAssignmentHeaders headers) { @@ -94,11 +116,22 @@ public StoragePolicyAssignment createStoragePolicyAssignment( return JsonManager.deserialize(response.getData(), StoragePolicyAssignment.class); } + /** + * Fetches a specific storage policy assignment. + * + * @param storagePolicyAssignmentId The ID of the storage policy assignment. Example: "932483" + */ public StoragePolicyAssignment getStoragePolicyAssignmentById(String storagePolicyAssignmentId) { return getStoragePolicyAssignmentById( storagePolicyAssignmentId, new GetStoragePolicyAssignmentByIdHeaders()); } + /** + * Fetches a specific storage policy assignment. + * + * @param storagePolicyAssignmentId The ID of the storage policy assignment. Example: "932483" + * @param headers Headers of getStoragePolicyAssignmentById method + */ public StoragePolicyAssignment getStoragePolicyAssignmentById( String storagePolicyAssignmentId, GetStoragePolicyAssignmentByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -121,12 +154,25 @@ public StoragePolicyAssignment getStoragePolicyAssignmentById( return JsonManager.deserialize(response.getData(), StoragePolicyAssignment.class); } + /** + * Updates a specific storage policy assignment. + * + * @param storagePolicyAssignmentId The ID of the storage policy assignment. Example: "932483" + * @param requestBody Request body of updateStoragePolicyAssignmentById method + */ public StoragePolicyAssignment updateStoragePolicyAssignmentById( String storagePolicyAssignmentId, UpdateStoragePolicyAssignmentByIdRequestBody requestBody) { return updateStoragePolicyAssignmentById( storagePolicyAssignmentId, requestBody, new UpdateStoragePolicyAssignmentByIdHeaders()); } + /** + * Updates a specific storage policy assignment. + * + * @param storagePolicyAssignmentId The ID of the storage policy assignment. Example: "932483" + * @param requestBody Request body of updateStoragePolicyAssignmentById method + * @param headers Headers of updateStoragePolicyAssignmentById method + */ public StoragePolicyAssignment updateStoragePolicyAssignmentById( String storagePolicyAssignmentId, UpdateStoragePolicyAssignmentByIdRequestBody requestBody, @@ -153,11 +199,34 @@ public StoragePolicyAssignment updateStoragePolicyAssignmentById( return JsonManager.deserialize(response.getData(), StoragePolicyAssignment.class); } + /** + * Delete a storage policy assignment. + * + *

    Deleting a storage policy assignment on a user will have the user inherit the enterprise's + * default storage policy. + * + *

    There is a rate limit for calling this endpoint of only twice per user in a 24 hour time + * frame. + * + * @param storagePolicyAssignmentId The ID of the storage policy assignment. Example: "932483" + */ public void deleteStoragePolicyAssignmentById(String storagePolicyAssignmentId) { deleteStoragePolicyAssignmentById( storagePolicyAssignmentId, new DeleteStoragePolicyAssignmentByIdHeaders()); } + /** + * Delete a storage policy assignment. + * + *

    Deleting a storage policy assignment on a user will have the user inherit the enterprise's + * default storage policy. + * + *

    There is a rate limit for calling this endpoint of only twice per user in a 24 hour time + * frame. + * + * @param storagePolicyAssignmentId The ID of the storage policy assignment. Example: "932483" + * @param headers Headers of deleteStoragePolicyAssignmentById method + */ public void deleteStoragePolicyAssignmentById( String storagePolicyAssignmentId, DeleteStoragePolicyAssignmentByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdHeaders.java index 1dbd09e1c..9187bf0ae 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdHeaders.java @@ -6,6 +6,7 @@ public class UpdateStoragePolicyAssignmentByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateStoragePolicyAssignmentByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBody.java index 99c3eec64..e1e817ed8 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBody.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class UpdateStoragePolicyAssignmentByIdRequestBody extends SerializableObject { + /** The storage policy to assign to the user or enterprise. */ @JsonProperty("storage_policy") protected final UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField storagePolicy; diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField.java index faf456e72..b995cc8ca 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField.java @@ -13,6 +13,7 @@ public class UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField extends SerializableObject { + /** The type to assign. */ @JsonDeserialize( using = UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField @@ -23,6 +24,7 @@ public class UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField .UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeFieldSerializer.class) protected EnumWrapper type; + /** The ID of the storage policy to assign. */ protected final String id; public UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField( diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentHeaders.java b/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentHeaders.java index f2d37127a..553cef9c0 100644 --- a/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentHeaders.java @@ -6,6 +6,7 @@ public class CreateTaskAssignmentHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateTaskAssignmentHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBody.java b/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBody.java index 86383530b..78d529b92 100644 --- a/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBody.java @@ -8,8 +8,10 @@ @JsonFilter("nullablePropertyFilter") public class CreateTaskAssignmentRequestBody extends SerializableObject { + /** The task to assign to a user. */ protected final CreateTaskAssignmentRequestBodyTaskField task; + /** The user to assign the task to. */ @JsonProperty("assign_to") protected final CreateTaskAssignmentRequestBodyAssignToField assignTo; diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyAssignToField.java b/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyAssignToField.java index e015dd07b..127be5268 100644 --- a/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyAssignToField.java +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyAssignToField.java @@ -8,8 +8,17 @@ @JsonFilter("nullablePropertyFilter") public class CreateTaskAssignmentRequestBodyAssignToField extends SerializableObject { + /** + * The ID of the user to assign to the task. + * + *

    To specify a user by their email address use the `login` parameter. + */ protected String id; + /** + * The email address of the user to assign to the task. To specify a user by their user ID please + * use the `id` parameter. + */ protected String login; public CreateTaskAssignmentRequestBodyAssignToField() { diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyTaskField.java b/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyTaskField.java index 0dc003cd6..aa7a39d2b 100644 --- a/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyTaskField.java +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyTaskField.java @@ -12,8 +12,10 @@ @JsonFilter("nullablePropertyFilter") public class CreateTaskAssignmentRequestBodyTaskField extends SerializableObject { + /** The ID of the task. */ protected final String id; + /** The type of the item to assign. */ @JsonDeserialize( using = CreateTaskAssignmentRequestBodyTaskTypeField diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/DeleteTaskAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/taskassignments/DeleteTaskAssignmentByIdHeaders.java index 6ac277bfa..472bd4e04 100644 --- a/src/main/java/com/box/sdkgen/managers/taskassignments/DeleteTaskAssignmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/DeleteTaskAssignmentByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteTaskAssignmentByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteTaskAssignmentByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/GetTaskAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/taskassignments/GetTaskAssignmentByIdHeaders.java index fc375f064..285c72347 100644 --- a/src/main/java/com/box/sdkgen/managers/taskassignments/GetTaskAssignmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/GetTaskAssignmentByIdHeaders.java @@ -6,6 +6,7 @@ public class GetTaskAssignmentByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetTaskAssignmentByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/GetTaskAssignmentsHeaders.java b/src/main/java/com/box/sdkgen/managers/taskassignments/GetTaskAssignmentsHeaders.java index 308f1a09b..0beea9241 100644 --- a/src/main/java/com/box/sdkgen/managers/taskassignments/GetTaskAssignmentsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/GetTaskAssignmentsHeaders.java @@ -6,6 +6,7 @@ public class GetTaskAssignmentsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetTaskAssignmentsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/TaskAssignmentsManager.java b/src/main/java/com/box/sdkgen/managers/taskassignments/TaskAssignmentsManager.java index ab18ad155..793939722 100644 --- a/src/main/java/com/box/sdkgen/managers/taskassignments/TaskAssignmentsManager.java +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/TaskAssignmentsManager.java @@ -30,10 +30,21 @@ protected TaskAssignmentsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Lists all of the assignments for a given task. + * + * @param taskId The ID of the task. Example: "12345" + */ public TaskAssignments getTaskAssignments(String taskId) { return getTaskAssignments(taskId, new GetTaskAssignmentsHeaders()); } + /** + * Lists all of the assignments for a given task. + * + * @param taskId The ID of the task. Example: "12345" + * @param headers Headers of getTaskAssignments method + */ public TaskAssignments getTaskAssignments(String taskId, GetTaskAssignmentsHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = @@ -56,10 +67,25 @@ public TaskAssignments getTaskAssignments(String taskId, GetTaskAssignmentsHeade return JsonManager.deserialize(response.getData(), TaskAssignments.class); } + /** + * Assigns a task to a user. + * + *

    A task can be assigned to more than one user by creating multiple assignments. + * + * @param requestBody Request body of createTaskAssignment method + */ public TaskAssignment createTaskAssignment(CreateTaskAssignmentRequestBody requestBody) { return createTaskAssignment(requestBody, new CreateTaskAssignmentHeaders()); } + /** + * Assigns a task to a user. + * + *

    A task can be assigned to more than one user by creating multiple assignments. + * + * @param requestBody Request body of createTaskAssignment method + * @param headers Headers of createTaskAssignment method + */ public TaskAssignment createTaskAssignment( CreateTaskAssignmentRequestBody requestBody, CreateTaskAssignmentHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -83,10 +109,21 @@ public TaskAssignment createTaskAssignment( return JsonManager.deserialize(response.getData(), TaskAssignment.class); } + /** + * Retrieves information about a task assignment. + * + * @param taskAssignmentId The ID of the task assignment. Example: "12345" + */ public TaskAssignment getTaskAssignmentById(String taskAssignmentId) { return getTaskAssignmentById(taskAssignmentId, new GetTaskAssignmentByIdHeaders()); } + /** + * Retrieves information about a task assignment. + * + * @param taskAssignmentId The ID of the task assignment. Example: "12345" + * @param headers Headers of getTaskAssignmentById method + */ public TaskAssignment getTaskAssignmentById( String taskAssignmentId, GetTaskAssignmentByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -109,6 +146,12 @@ public TaskAssignment getTaskAssignmentById( return JsonManager.deserialize(response.getData(), TaskAssignment.class); } + /** + * Updates a task assignment. This endpoint can be used to update the state of a task assigned to + * a user. + * + * @param taskAssignmentId The ID of the task assignment. Example: "12345" + */ public TaskAssignment updateTaskAssignmentById(String taskAssignmentId) { return updateTaskAssignmentById( taskAssignmentId, @@ -116,18 +159,40 @@ public TaskAssignment updateTaskAssignmentById(String taskAssignmentId) { new UpdateTaskAssignmentByIdHeaders()); } + /** + * Updates a task assignment. This endpoint can be used to update the state of a task assigned to + * a user. + * + * @param taskAssignmentId The ID of the task assignment. Example: "12345" + * @param requestBody Request body of updateTaskAssignmentById method + */ public TaskAssignment updateTaskAssignmentById( String taskAssignmentId, UpdateTaskAssignmentByIdRequestBody requestBody) { return updateTaskAssignmentById( taskAssignmentId, requestBody, new UpdateTaskAssignmentByIdHeaders()); } + /** + * Updates a task assignment. This endpoint can be used to update the state of a task assigned to + * a user. + * + * @param taskAssignmentId The ID of the task assignment. Example: "12345" + * @param headers Headers of updateTaskAssignmentById method + */ public TaskAssignment updateTaskAssignmentById( String taskAssignmentId, UpdateTaskAssignmentByIdHeaders headers) { return updateTaskAssignmentById( taskAssignmentId, new UpdateTaskAssignmentByIdRequestBody(), headers); } + /** + * Updates a task assignment. This endpoint can be used to update the state of a task assigned to + * a user. + * + * @param taskAssignmentId The ID of the task assignment. Example: "12345" + * @param requestBody Request body of updateTaskAssignmentById method + * @param headers Headers of updateTaskAssignmentById method + */ public TaskAssignment updateTaskAssignmentById( String taskAssignmentId, UpdateTaskAssignmentByIdRequestBody requestBody, @@ -154,10 +219,21 @@ public TaskAssignment updateTaskAssignmentById( return JsonManager.deserialize(response.getData(), TaskAssignment.class); } + /** + * Deletes a specific task assignment. + * + * @param taskAssignmentId The ID of the task assignment. Example: "12345" + */ public void deleteTaskAssignmentById(String taskAssignmentId) { deleteTaskAssignmentById(taskAssignmentId, new DeleteTaskAssignmentByIdHeaders()); } + /** + * Deletes a specific task assignment. + * + * @param taskAssignmentId The ID of the task assignment. Example: "12345" + * @param headers Headers of deleteTaskAssignmentById method + */ public void deleteTaskAssignmentById( String taskAssignmentId, DeleteTaskAssignmentByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdHeaders.java index 81d528f05..e57cfd804 100644 --- a/src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdHeaders.java @@ -6,6 +6,7 @@ public class UpdateTaskAssignmentByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateTaskAssignmentByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdRequestBody.java index 4a5473da4..e7d5417d3 100644 --- a/src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdRequestBody.java @@ -12,8 +12,15 @@ @JsonFilter("nullablePropertyFilter") public class UpdateTaskAssignmentByIdRequestBody extends SerializableObject { + /** An optional message by the assignee that can be added to the task. */ protected String message; + /** + * The state of the task assigned to the user. + * + *

    * For a task with an `action` value of `complete` this can be `incomplete` or `completed`. * + * For a task with an `action` of `review` this can be `incomplete`, `approved`, or `rejected`. + */ @JsonDeserialize( using = UpdateTaskAssignmentByIdRequestBodyResolutionStateField diff --git a/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskHeaders.java b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskHeaders.java index 7fff2de3f..f50f7620b 100644 --- a/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskHeaders.java @@ -6,6 +6,7 @@ public class CreateTaskHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateTaskHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBody.java b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBody.java index d420edf31..8028f34f3 100644 --- a/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBody.java @@ -14,21 +14,37 @@ @JsonFilter("nullablePropertyFilter") public class CreateTaskRequestBody extends SerializableObject { + /** The file to attach the task to. */ protected final CreateTaskRequestBodyItemField item; + /** + * The action the task assignee will be prompted to do. Must be + * + *

    * `review` defines an approval task that can be approved or, rejected * `complete` defines a + * general task which can be completed. + */ @JsonDeserialize( using = CreateTaskRequestBodyActionField.CreateTaskRequestBodyActionFieldDeserializer.class) @JsonSerialize( using = CreateTaskRequestBodyActionField.CreateTaskRequestBodyActionFieldSerializer.class) protected EnumWrapper action; + /** An optional message to include with the task. */ protected String message; + /** Defines when the task is due. Defaults to `null` if not provided. */ @JsonProperty("due_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime dueAt; + /** + * Defines which assignees need to complete this task before the task is considered completed. + * + *

    * `all_assignees` (default) requires all assignees to review or approve the task in order + * for it to be considered completed. * `any_assignee` accepts any one assignee to review or + * approve the task in order for it to be considered completed. + */ @JsonDeserialize( using = CreateTaskRequestBodyCompletionRuleField diff --git a/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyItemField.java b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyItemField.java index 62a6f0e73..5459b36d7 100644 --- a/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyItemField.java +++ b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyItemField.java @@ -11,8 +11,10 @@ @JsonFilter("nullablePropertyFilter") public class CreateTaskRequestBodyItemField extends SerializableObject { + /** The ID of the file. */ protected String id; + /** The value will always be `file`. */ @JsonDeserialize( using = CreateTaskRequestBodyItemTypeField.CreateTaskRequestBodyItemTypeFieldDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/managers/tasks/DeleteTaskByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/tasks/DeleteTaskByIdHeaders.java index 400ffcec4..6beac580f 100644 --- a/src/main/java/com/box/sdkgen/managers/tasks/DeleteTaskByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/tasks/DeleteTaskByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteTaskByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteTaskByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/tasks/GetFileTasksHeaders.java b/src/main/java/com/box/sdkgen/managers/tasks/GetFileTasksHeaders.java index d37da2488..2d1f6c633 100644 --- a/src/main/java/com/box/sdkgen/managers/tasks/GetFileTasksHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/tasks/GetFileTasksHeaders.java @@ -6,6 +6,7 @@ public class GetFileTasksHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetFileTasksHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/tasks/GetTaskByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/tasks/GetTaskByIdHeaders.java index 1c8c3a47e..ff2494a14 100644 --- a/src/main/java/com/box/sdkgen/managers/tasks/GetTaskByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/tasks/GetTaskByIdHeaders.java @@ -6,6 +6,7 @@ public class GetTaskByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetTaskByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/tasks/TasksManager.java b/src/main/java/com/box/sdkgen/managers/tasks/TasksManager.java index a434c18c1..561c4c31a 100644 --- a/src/main/java/com/box/sdkgen/managers/tasks/TasksManager.java +++ b/src/main/java/com/box/sdkgen/managers/tasks/TasksManager.java @@ -30,10 +30,27 @@ protected TasksManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves a list of all the tasks for a file. This endpoint does not support pagination. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + */ public Tasks getFileTasks(String fileId) { return getFileTasks(fileId, new GetFileTasksHeaders()); } + /** + * Retrieves a list of all the tasks for a file. This endpoint does not support pagination. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param headers Headers of getFileTasks method + */ public Tasks getFileTasks(String fileId, GetFileTasksHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = @@ -56,10 +73,23 @@ public Tasks getFileTasks(String fileId, GetFileTasksHeaders headers) { return JsonManager.deserialize(response.getData(), Tasks.class); } + /** + * Creates a single task on a file. This task is not assigned to any user and will need to be + * assigned separately. + * + * @param requestBody Request body of createTask method + */ public Task createTask(CreateTaskRequestBody requestBody) { return createTask(requestBody, new CreateTaskHeaders()); } + /** + * Creates a single task on a file. This task is not assigned to any user and will need to be + * assigned separately. + * + * @param requestBody Request body of createTask method + * @param headers Headers of createTask method + */ public Task createTask(CreateTaskRequestBody requestBody, CreateTaskHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = @@ -80,10 +110,21 @@ public Task createTask(CreateTaskRequestBody requestBody, CreateTaskHeaders head return JsonManager.deserialize(response.getData(), Task.class); } + /** + * Retrieves information about a specific task. + * + * @param taskId The ID of the task. Example: "12345" + */ public Task getTaskById(String taskId) { return getTaskById(taskId, new GetTaskByIdHeaders()); } + /** + * Retrieves information about a specific task. + * + * @param taskId The ID of the task. Example: "12345" + * @param headers Headers of getTaskById method + */ public Task getTaskById(String taskId, GetTaskByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = @@ -105,18 +146,46 @@ public Task getTaskById(String taskId, GetTaskByIdHeaders headers) { return JsonManager.deserialize(response.getData(), Task.class); } + /** + * Updates a task. This can be used to update a task's configuration, or to update its completion + * state. + * + * @param taskId The ID of the task. Example: "12345" + */ public Task updateTaskById(String taskId) { return updateTaskById(taskId, new UpdateTaskByIdRequestBody(), new UpdateTaskByIdHeaders()); } + /** + * Updates a task. This can be used to update a task's configuration, or to update its completion + * state. + * + * @param taskId The ID of the task. Example: "12345" + * @param requestBody Request body of updateTaskById method + */ public Task updateTaskById(String taskId, UpdateTaskByIdRequestBody requestBody) { return updateTaskById(taskId, requestBody, new UpdateTaskByIdHeaders()); } + /** + * Updates a task. This can be used to update a task's configuration, or to update its completion + * state. + * + * @param taskId The ID of the task. Example: "12345" + * @param headers Headers of updateTaskById method + */ public Task updateTaskById(String taskId, UpdateTaskByIdHeaders headers) { return updateTaskById(taskId, new UpdateTaskByIdRequestBody(), headers); } + /** + * Updates a task. This can be used to update a task's configuration, or to update its completion + * state. + * + * @param taskId The ID of the task. Example: "12345" + * @param requestBody Request body of updateTaskById method + * @param headers Headers of updateTaskById method + */ public Task updateTaskById( String taskId, UpdateTaskByIdRequestBody requestBody, UpdateTaskByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -141,10 +210,21 @@ public Task updateTaskById( return JsonManager.deserialize(response.getData(), Task.class); } + /** + * Removes a task from a file. + * + * @param taskId The ID of the task. Example: "12345" + */ public void deleteTaskById(String taskId) { deleteTaskById(taskId, new DeleteTaskByIdHeaders()); } + /** + * Removes a task from a file. + * + * @param taskId The ID of the task. Example: "12345" + * @param headers Headers of deleteTaskById method + */ public void deleteTaskById(String taskId, DeleteTaskByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = diff --git a/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdHeaders.java index a1093033c..93141a7b5 100644 --- a/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdHeaders.java @@ -6,6 +6,7 @@ public class UpdateTaskByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateTaskByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBody.java index c3efd5712..bed87a5e8 100644 --- a/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBody.java @@ -14,6 +14,12 @@ @JsonFilter("nullablePropertyFilter") public class UpdateTaskByIdRequestBody extends SerializableObject { + /** + * The action the task assignee will be prompted to do. Must be + * + *

    * `review` defines an approval task that can be approved or rejected, * `complete` defines a + * general task which can be completed. + */ @JsonDeserialize( using = UpdateTaskByIdRequestBodyActionField.UpdateTaskByIdRequestBodyActionFieldDeserializer @@ -23,13 +29,22 @@ public class UpdateTaskByIdRequestBody extends SerializableObject { UpdateTaskByIdRequestBodyActionField.UpdateTaskByIdRequestBodyActionFieldSerializer.class) protected EnumWrapper action; + /** The message included with the task. */ protected String message; + /** When the task is due at. */ @JsonProperty("due_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime dueAt; + /** + * Defines which assignees need to complete this task before the task is considered completed. + * + *

    * `all_assignees` (default) requires all assignees to review or approve the task in order + * for it to be considered completed. * `any_assignee` accepts any one assignee to review or + * approve the task in order for it to be considered completed. + */ @JsonDeserialize( using = UpdateTaskByIdRequestBodyCompletionRuleField diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceHeaders.java b/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceHeaders.java index ac5f503e2..98855e687 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceHeaders.java @@ -6,6 +6,7 @@ public class CreateTermsOfServiceHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateTermsOfServiceHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceRequestBody.java b/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceRequestBody.java index 9026dfd66..10c165ff5 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceRequestBody.java @@ -12,6 +12,7 @@ @JsonFilter("nullablePropertyFilter") public class CreateTermsOfServiceRequestBody extends SerializableObject { + /** Whether this terms of service is active. */ @JsonDeserialize( using = CreateTermsOfServiceRequestBodyStatusField @@ -22,6 +23,7 @@ public class CreateTermsOfServiceRequestBody extends SerializableObject { .CreateTermsOfServiceRequestBodyStatusFieldSerializer.class) protected final EnumWrapper status; + /** The type of user to set the terms of service for. */ @JsonDeserialize( using = CreateTermsOfServiceRequestBodyTosTypeField @@ -33,6 +35,11 @@ public class CreateTermsOfServiceRequestBody extends SerializableObject { @JsonProperty("tos_type") protected EnumWrapper tosType; + /** + * The terms of service text to display to users. + * + *

    The text can be set to empty if the `status` is set to `disabled`. + */ protected final String text; public CreateTermsOfServiceRequestBody( diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceByIdHeaders.java index 31834d745..9948ce97b 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceByIdHeaders.java @@ -6,6 +6,7 @@ public class GetTermsOfServiceByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetTermsOfServiceByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceHeaders.java b/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceHeaders.java index 8675735fa..626201768 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceHeaders.java @@ -6,6 +6,7 @@ public class GetTermsOfServiceHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetTermsOfServiceHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceQueryParams.java b/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceQueryParams.java index cac739c98..272afcf74 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceQueryParams.java @@ -4,6 +4,7 @@ public class GetTermsOfServiceQueryParams { + /** Limits the results to the terms of service of the given type. */ public EnumWrapper tosType; public GetTermsOfServiceQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/TermsOfServicesManager.java b/src/main/java/com/box/sdkgen/managers/termsofservices/TermsOfServicesManager.java index 834f80931..631b312b4 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofservices/TermsOfServicesManager.java +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/TermsOfServicesManager.java @@ -31,18 +31,35 @@ protected TermsOfServicesManager(Builder builder) { this.networkSession = builder.networkSession; } + /** Returns the current terms of service text and settings for the enterprise. */ public TermsOfServices getTermsOfService() { return getTermsOfService(new GetTermsOfServiceQueryParams(), new GetTermsOfServiceHeaders()); } + /** + * Returns the current terms of service text and settings for the enterprise. + * + * @param queryParams Query parameters of getTermsOfService method + */ public TermsOfServices getTermsOfService(GetTermsOfServiceQueryParams queryParams) { return getTermsOfService(queryParams, new GetTermsOfServiceHeaders()); } + /** + * Returns the current terms of service text and settings for the enterprise. + * + * @param headers Headers of getTermsOfService method + */ public TermsOfServices getTermsOfService(GetTermsOfServiceHeaders headers) { return getTermsOfService(new GetTermsOfServiceQueryParams(), headers); } + /** + * Returns the current terms of service text and settings for the enterprise. + * + * @param queryParams Query parameters of getTermsOfService method + * @param headers Headers of getTermsOfService method + */ public TermsOfServices getTermsOfService( GetTermsOfServiceQueryParams queryParams, GetTermsOfServiceHeaders headers) { Map queryParamsMap = @@ -67,10 +84,21 @@ public TermsOfServices getTermsOfService( return JsonManager.deserialize(response.getData(), TermsOfServices.class); } + /** + * Creates a terms of service for a given enterprise and type of user. + * + * @param requestBody Request body of createTermsOfService method + */ public TermsOfService createTermsOfService(CreateTermsOfServiceRequestBody requestBody) { return createTermsOfService(requestBody, new CreateTermsOfServiceHeaders()); } + /** + * Creates a terms of service for a given enterprise and type of user. + * + * @param requestBody Request body of createTermsOfService method + * @param headers Headers of createTermsOfService method + */ public TermsOfService createTermsOfService( CreateTermsOfServiceRequestBody requestBody, CreateTermsOfServiceHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -94,10 +122,21 @@ public TermsOfService createTermsOfService( return JsonManager.deserialize(response.getData(), TermsOfService.class); } + /** + * Fetches a specific terms of service. + * + * @param termsOfServiceId The ID of the terms of service. Example: "324234" + */ public TermsOfService getTermsOfServiceById(String termsOfServiceId) { return getTermsOfServiceById(termsOfServiceId, new GetTermsOfServiceByIdHeaders()); } + /** + * Fetches a specific terms of service. + * + * @param termsOfServiceId The ID of the terms of service. Example: "324234" + * @param headers Headers of getTermsOfServiceById method + */ public TermsOfService getTermsOfServiceById( String termsOfServiceId, GetTermsOfServiceByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -120,12 +159,25 @@ public TermsOfService getTermsOfServiceById( return JsonManager.deserialize(response.getData(), TermsOfService.class); } + /** + * Updates a specific terms of service. + * + * @param termsOfServiceId The ID of the terms of service. Example: "324234" + * @param requestBody Request body of updateTermsOfServiceById method + */ public TermsOfService updateTermsOfServiceById( String termsOfServiceId, UpdateTermsOfServiceByIdRequestBody requestBody) { return updateTermsOfServiceById( termsOfServiceId, requestBody, new UpdateTermsOfServiceByIdHeaders()); } + /** + * Updates a specific terms of service. + * + * @param termsOfServiceId The ID of the terms of service. Example: "324234" + * @param requestBody Request body of updateTermsOfServiceById method + * @param headers Headers of updateTermsOfServiceById method + */ public TermsOfService updateTermsOfServiceById( String termsOfServiceId, UpdateTermsOfServiceByIdRequestBody requestBody, diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdHeaders.java index 503f95390..e05f9e891 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdHeaders.java @@ -6,6 +6,7 @@ public class UpdateTermsOfServiceByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateTermsOfServiceByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdRequestBody.java index 17509054b..1074ee358 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdRequestBody.java @@ -11,6 +11,7 @@ @JsonFilter("nullablePropertyFilter") public class UpdateTermsOfServiceByIdRequestBody extends SerializableObject { + /** Whether this terms of service is active. */ @JsonDeserialize( using = UpdateTermsOfServiceByIdRequestBodyStatusField @@ -21,6 +22,11 @@ public class UpdateTermsOfServiceByIdRequestBody extends SerializableObject { .UpdateTermsOfServiceByIdRequestBodyStatusFieldSerializer.class) protected final EnumWrapper status; + /** + * The terms of service text to display to users. + * + *

    The text can be set to empty if the `status` is set to `disabled`. + */ protected final String text; public UpdateTermsOfServiceByIdRequestBody( diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserHeaders.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserHeaders.java index d9b99b846..5b46f7203 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserHeaders.java @@ -6,6 +6,7 @@ public class CreateTermsOfServiceStatusForUserHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateTermsOfServiceStatusForUserHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBody.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBody.java index 044330399..cb3124373 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBody.java @@ -8,10 +8,13 @@ @JsonFilter("nullablePropertyFilter") public class CreateTermsOfServiceStatusForUserRequestBody extends SerializableObject { + /** The terms of service to set the status for. */ protected final CreateTermsOfServiceStatusForUserRequestBodyTosField tos; + /** The user to set the status for. */ protected final CreateTermsOfServiceStatusForUserRequestBodyUserField user; + /** Whether the user has accepted the terms. */ @JsonProperty("is_accepted") protected final boolean isAccepted; diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyTosField.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyTosField.java index e80a2f78c..eb8b515cd 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyTosField.java +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyTosField.java @@ -12,6 +12,7 @@ @JsonFilter("nullablePropertyFilter") public class CreateTermsOfServiceStatusForUserRequestBodyTosField extends SerializableObject { + /** The type of object. */ @JsonDeserialize( using = CreateTermsOfServiceStatusForUserRequestBodyTosTypeField @@ -22,6 +23,7 @@ public class CreateTermsOfServiceStatusForUserRequestBodyTosField extends Serial .CreateTermsOfServiceStatusForUserRequestBodyTosTypeFieldSerializer.class) protected EnumWrapper type; + /** The ID of terms of service. */ protected final String id; public CreateTermsOfServiceStatusForUserRequestBodyTosField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyUserField.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyUserField.java index fe5286e0a..36597c248 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyUserField.java +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyUserField.java @@ -12,6 +12,7 @@ @JsonFilter("nullablePropertyFilter") public class CreateTermsOfServiceStatusForUserRequestBodyUserField extends SerializableObject { + /** The type of object. */ @JsonDeserialize( using = CreateTermsOfServiceStatusForUserRequestBodyUserTypeField @@ -22,6 +23,7 @@ public class CreateTermsOfServiceStatusForUserRequestBodyUserField extends Seria .CreateTermsOfServiceStatusForUserRequestBodyUserTypeFieldSerializer.class) protected EnumWrapper type; + /** The ID of user. */ protected final String id; public CreateTermsOfServiceStatusForUserRequestBodyUserField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/GetTermsOfServiceUserStatusesHeaders.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/GetTermsOfServiceUserStatusesHeaders.java index bf305be00..6e4867f47 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/GetTermsOfServiceUserStatusesHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/GetTermsOfServiceUserStatusesHeaders.java @@ -6,6 +6,7 @@ public class GetTermsOfServiceUserStatusesHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetTermsOfServiceUserStatusesHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/GetTermsOfServiceUserStatusesQueryParams.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/GetTermsOfServiceUserStatusesQueryParams.java index 2d6cd9c6f..0d2fafef8 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/GetTermsOfServiceUserStatusesQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/GetTermsOfServiceUserStatusesQueryParams.java @@ -2,8 +2,10 @@ public class GetTermsOfServiceUserStatusesQueryParams { + /** The ID of the terms of service. */ public final String tosId; + /** Limits results to the given user ID. */ public String userId; public GetTermsOfServiceUserStatusesQueryParams(String tosId) { diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/TermsOfServiceUserStatusesManager.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/TermsOfServiceUserStatusesManager.java index de4620f07..76457733c 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/TermsOfServiceUserStatusesManager.java +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/TermsOfServiceUserStatusesManager.java @@ -31,11 +31,24 @@ protected TermsOfServiceUserStatusesManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves an overview of users and their status for a terms of service, including Whether they + * have accepted the terms and when. + * + * @param queryParams Query parameters of getTermsOfServiceUserStatuses method + */ public TermsOfServiceUserStatuses getTermsOfServiceUserStatuses( GetTermsOfServiceUserStatusesQueryParams queryParams) { return getTermsOfServiceUserStatuses(queryParams, new GetTermsOfServiceUserStatusesHeaders()); } + /** + * Retrieves an overview of users and their status for a terms of service, including Whether they + * have accepted the terms and when. + * + * @param queryParams Query parameters of getTermsOfServiceUserStatuses method + * @param headers Headers of getTermsOfServiceUserStatuses method + */ public TermsOfServiceUserStatuses getTermsOfServiceUserStatuses( GetTermsOfServiceUserStatusesQueryParams queryParams, GetTermsOfServiceUserStatusesHeaders headers) { @@ -64,12 +77,23 @@ public TermsOfServiceUserStatuses getTermsOfServiceUserStatuses( return JsonManager.deserialize(response.getData(), TermsOfServiceUserStatuses.class); } + /** + * Sets the status for a terms of service for a user. + * + * @param requestBody Request body of createTermsOfServiceStatusForUser method + */ public TermsOfServiceUserStatus createTermsOfServiceStatusForUser( CreateTermsOfServiceStatusForUserRequestBody requestBody) { return createTermsOfServiceStatusForUser( requestBody, new CreateTermsOfServiceStatusForUserHeaders()); } + /** + * Sets the status for a terms of service for a user. + * + * @param requestBody Request body of createTermsOfServiceStatusForUser method + * @param headers Headers of createTermsOfServiceStatusForUser method + */ public TermsOfServiceUserStatus createTermsOfServiceStatusForUser( CreateTermsOfServiceStatusForUserRequestBody requestBody, CreateTermsOfServiceStatusForUserHeaders headers) { @@ -94,6 +118,12 @@ public TermsOfServiceUserStatus createTermsOfServiceStatusForUser( return JsonManager.deserialize(response.getData(), TermsOfServiceUserStatus.class); } + /** + * Updates the status for a terms of service for a user. + * + * @param termsOfServiceUserStatusId The ID of the terms of service status. Example: "324234" + * @param requestBody Request body of updateTermsOfServiceStatusForUserById method + */ public TermsOfServiceUserStatus updateTermsOfServiceStatusForUserById( String termsOfServiceUserStatusId, UpdateTermsOfServiceStatusForUserByIdRequestBody requestBody) { @@ -103,6 +133,13 @@ public TermsOfServiceUserStatus updateTermsOfServiceStatusForUserById( new UpdateTermsOfServiceStatusForUserByIdHeaders()); } + /** + * Updates the status for a terms of service for a user. + * + * @param termsOfServiceUserStatusId The ID of the terms of service status. Example: "324234" + * @param requestBody Request body of updateTermsOfServiceStatusForUserById method + * @param headers Headers of updateTermsOfServiceStatusForUserById method + */ public TermsOfServiceUserStatus updateTermsOfServiceStatusForUserById( String termsOfServiceUserStatusId, UpdateTermsOfServiceStatusForUserByIdRequestBody requestBody, diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/UpdateTermsOfServiceStatusForUserByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/UpdateTermsOfServiceStatusForUserByIdHeaders.java index ae235313a..0fc2a6dd0 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/UpdateTermsOfServiceStatusForUserByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/UpdateTermsOfServiceStatusForUserByIdHeaders.java @@ -6,6 +6,7 @@ public class UpdateTermsOfServiceStatusForUserByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateTermsOfServiceStatusForUserByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/UpdateTermsOfServiceStatusForUserByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/UpdateTermsOfServiceStatusForUserByIdRequestBody.java index a1ba191ab..96b13b215 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/UpdateTermsOfServiceStatusForUserByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/UpdateTermsOfServiceStatusForUserByIdRequestBody.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class UpdateTermsOfServiceStatusForUserByIdRequestBody extends SerializableObject { + /** Whether the user has accepted the terms. */ @JsonProperty("is_accepted") protected final boolean isAccepted; diff --git a/src/main/java/com/box/sdkgen/managers/transfer/TransferManager.java b/src/main/java/com/box/sdkgen/managers/transfer/TransferManager.java index a851f12c2..a4aa82499 100644 --- a/src/main/java/com/box/sdkgen/managers/transfer/TransferManager.java +++ b/src/main/java/com/box/sdkgen/managers/transfer/TransferManager.java @@ -30,6 +30,41 @@ protected TransferManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Move all of the items (files, folders and workflows) owned by a user into another user's + * account + * + *

    Only the root folder (`0`) can be transferred. + * + *

    Folders can only be moved across users by users with administrative permissions. + * + *

    All existing shared links and folder-level collaborations are transferred during the + * operation. Please note that while collaborations at the individual file-level are transferred + * during the operation, the collaborations are deleted when the original user is deleted. + * + *

    If the user has a large number of items across all folders, the call will be run + * asynchronously. If the operation is not completed within 10 minutes, the user will receive a + * 200 OK response, and the operation will continue running. + * + *

    If the destination path has a metadata cascade policy attached to any of the parent folders, + * a metadata cascade operation will be kicked off asynchronously. + * + *

    There is currently no way to check for when this operation is finished. + * + *

    The destination folder's name will be in the format `{User}'s Files and Folders`, where + * `{User}` is the display name of the user. + * + *

    To make this API call your application will need to have the "Read and write all files and + * folders stored in Box" scope enabled. + * + *

    Please make sure the destination user has access to `Relay` or `Relay Lite`, and has access + * to the files and folders involved in the workflows being transferred. + * + *

    Admins will receive an email when the operation is completed. + * + * @param userId The ID of the user. Example: "12345" + * @param requestBody Request body of transferOwnedFolder method + */ public FolderFull transferOwnedFolder(String userId, TransferOwnedFolderRequestBody requestBody) { return transferOwnedFolder( userId, @@ -38,6 +73,42 @@ public FolderFull transferOwnedFolder(String userId, TransferOwnedFolderRequestB new TransferOwnedFolderHeaders()); } + /** + * Move all of the items (files, folders and workflows) owned by a user into another user's + * account + * + *

    Only the root folder (`0`) can be transferred. + * + *

    Folders can only be moved across users by users with administrative permissions. + * + *

    All existing shared links and folder-level collaborations are transferred during the + * operation. Please note that while collaborations at the individual file-level are transferred + * during the operation, the collaborations are deleted when the original user is deleted. + * + *

    If the user has a large number of items across all folders, the call will be run + * asynchronously. If the operation is not completed within 10 minutes, the user will receive a + * 200 OK response, and the operation will continue running. + * + *

    If the destination path has a metadata cascade policy attached to any of the parent folders, + * a metadata cascade operation will be kicked off asynchronously. + * + *

    There is currently no way to check for when this operation is finished. + * + *

    The destination folder's name will be in the format `{User}'s Files and Folders`, where + * `{User}` is the display name of the user. + * + *

    To make this API call your application will need to have the "Read and write all files and + * folders stored in Box" scope enabled. + * + *

    Please make sure the destination user has access to `Relay` or `Relay Lite`, and has access + * to the files and folders involved in the workflows being transferred. + * + *

    Admins will receive an email when the operation is completed. + * + * @param userId The ID of the user. Example: "12345" + * @param requestBody Request body of transferOwnedFolder method + * @param queryParams Query parameters of transferOwnedFolder method + */ public FolderFull transferOwnedFolder( String userId, TransferOwnedFolderRequestBody requestBody, @@ -45,6 +116,42 @@ public FolderFull transferOwnedFolder( return transferOwnedFolder(userId, requestBody, queryParams, new TransferOwnedFolderHeaders()); } + /** + * Move all of the items (files, folders and workflows) owned by a user into another user's + * account + * + *

    Only the root folder (`0`) can be transferred. + * + *

    Folders can only be moved across users by users with administrative permissions. + * + *

    All existing shared links and folder-level collaborations are transferred during the + * operation. Please note that while collaborations at the individual file-level are transferred + * during the operation, the collaborations are deleted when the original user is deleted. + * + *

    If the user has a large number of items across all folders, the call will be run + * asynchronously. If the operation is not completed within 10 minutes, the user will receive a + * 200 OK response, and the operation will continue running. + * + *

    If the destination path has a metadata cascade policy attached to any of the parent folders, + * a metadata cascade operation will be kicked off asynchronously. + * + *

    There is currently no way to check for when this operation is finished. + * + *

    The destination folder's name will be in the format `{User}'s Files and Folders`, where + * `{User}` is the display name of the user. + * + *

    To make this API call your application will need to have the "Read and write all files and + * folders stored in Box" scope enabled. + * + *

    Please make sure the destination user has access to `Relay` or `Relay Lite`, and has access + * to the files and folders involved in the workflows being transferred. + * + *

    Admins will receive an email when the operation is completed. + * + * @param userId The ID of the user. Example: "12345" + * @param requestBody Request body of transferOwnedFolder method + * @param headers Headers of transferOwnedFolder method + */ public FolderFull transferOwnedFolder( String userId, TransferOwnedFolderRequestBody requestBody, @@ -52,6 +159,43 @@ public FolderFull transferOwnedFolder( return transferOwnedFolder(userId, requestBody, new TransferOwnedFolderQueryParams(), headers); } + /** + * Move all of the items (files, folders and workflows) owned by a user into another user's + * account + * + *

    Only the root folder (`0`) can be transferred. + * + *

    Folders can only be moved across users by users with administrative permissions. + * + *

    All existing shared links and folder-level collaborations are transferred during the + * operation. Please note that while collaborations at the individual file-level are transferred + * during the operation, the collaborations are deleted when the original user is deleted. + * + *

    If the user has a large number of items across all folders, the call will be run + * asynchronously. If the operation is not completed within 10 minutes, the user will receive a + * 200 OK response, and the operation will continue running. + * + *

    If the destination path has a metadata cascade policy attached to any of the parent folders, + * a metadata cascade operation will be kicked off asynchronously. + * + *

    There is currently no way to check for when this operation is finished. + * + *

    The destination folder's name will be in the format `{User}'s Files and Folders`, where + * `{User}` is the display name of the user. + * + *

    To make this API call your application will need to have the "Read and write all files and + * folders stored in Box" scope enabled. + * + *

    Please make sure the destination user has access to `Relay` or `Relay Lite`, and has access + * to the files and folders involved in the workflows being transferred. + * + *

    Admins will receive an email when the operation is completed. + * + * @param userId The ID of the user. Example: "12345" + * @param requestBody Request body of transferOwnedFolder method + * @param queryParams Query parameters of transferOwnedFolder method + * @param headers Headers of transferOwnedFolder method + */ public FolderFull transferOwnedFolder( String userId, TransferOwnedFolderRequestBody requestBody, diff --git a/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderHeaders.java index 07aa234bf..22d5099b4 100644 --- a/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderHeaders.java @@ -6,6 +6,7 @@ public class TransferOwnedFolderHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public TransferOwnedFolderHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderQueryParams.java b/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderQueryParams.java index cec0a9006..d89c9f21c 100644 --- a/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderQueryParams.java @@ -4,8 +4,17 @@ public class TransferOwnedFolderQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; + /** Determines if users should receive email notification for the action performed. */ public Boolean notify; public TransferOwnedFolderQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderRequestBody.java b/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderRequestBody.java index 336b1c8ba..c2a9caef5 100644 --- a/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderRequestBody.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class TransferOwnedFolderRequestBody extends SerializableObject { + /** The user who the folder will be transferred to. */ @JsonProperty("owned_by") protected final TransferOwnedFolderRequestBodyOwnedByField ownedBy; diff --git a/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderRequestBodyOwnedByField.java b/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderRequestBodyOwnedByField.java index 806f1800f..78c60361d 100644 --- a/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderRequestBodyOwnedByField.java +++ b/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderRequestBodyOwnedByField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class TransferOwnedFolderRequestBodyOwnedByField extends SerializableObject { + /** The ID of the user who the folder will be transferred to. */ protected final String id; public TransferOwnedFolderRequestBodyOwnedByField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/managers/trashedfiles/DeleteTrashedFileByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedfiles/DeleteTrashedFileByIdHeaders.java index 2f4206dd8..66eebdf85 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfiles/DeleteTrashedFileByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfiles/DeleteTrashedFileByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteTrashedFileByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteTrashedFileByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/trashedfiles/GetTrashedFileByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedfiles/GetTrashedFileByIdHeaders.java index 88f2bff4b..06be2b91f 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfiles/GetTrashedFileByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfiles/GetTrashedFileByIdHeaders.java @@ -6,6 +6,7 @@ public class GetTrashedFileByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetTrashedFileByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/trashedfiles/GetTrashedFileByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/trashedfiles/GetTrashedFileByIdQueryParams.java index 847eb97d8..70abd3497 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfiles/GetTrashedFileByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfiles/GetTrashedFileByIdQueryParams.java @@ -4,6 +4,14 @@ public class GetTrashedFileByIdQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public GetTrashedFileByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashHeaders.java index 4f543401b..70c63d8fc 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashHeaders.java @@ -6,6 +6,7 @@ public class RestoreFileFromTrashHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public RestoreFileFromTrashHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashQueryParams.java b/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashQueryParams.java index 0ef892c37..573a8d4f1 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashQueryParams.java @@ -4,6 +4,14 @@ public class RestoreFileFromTrashQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public RestoreFileFromTrashQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashRequestBody.java b/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashRequestBody.java index 1825ce1d9..c689ceb5a 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashRequestBody.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class RestoreFileFromTrashRequestBody extends SerializableObject { + /** An optional new name for the file. */ protected String name; protected RestoreFileFromTrashRequestBodyParentField parent; diff --git a/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashRequestBodyParentField.java b/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashRequestBodyParentField.java index 779007a11..cfe0a7806 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashRequestBodyParentField.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashRequestBodyParentField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class RestoreFileFromTrashRequestBodyParentField extends SerializableObject { + /** The ID of parent item. */ protected String id; public RestoreFileFromTrashRequestBodyParentField() { diff --git a/src/main/java/com/box/sdkgen/managers/trashedfiles/TrashedFilesManager.java b/src/main/java/com/box/sdkgen/managers/trashedfiles/TrashedFilesManager.java index 9f5529e97..0fed55b4c 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfiles/TrashedFilesManager.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfiles/TrashedFilesManager.java @@ -31,6 +31,17 @@ protected TrashedFilesManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Restores a file that has been moved to the trash. + * + *

    An optional new parent ID can be provided to restore the file to in case the original folder + * has been deleted. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + */ public TrashFileRestored restoreFileFromTrash(String fileId) { return restoreFileFromTrash( fileId, @@ -39,6 +50,18 @@ public TrashFileRestored restoreFileFromTrash(String fileId) { new RestoreFileFromTrashHeaders()); } + /** + * Restores a file that has been moved to the trash. + * + *

    An optional new parent ID can be provided to restore the file to in case the original folder + * has been deleted. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of restoreFileFromTrash method + */ public TrashFileRestored restoreFileFromTrash( String fileId, RestoreFileFromTrashRequestBody requestBody) { return restoreFileFromTrash( @@ -48,6 +71,18 @@ public TrashFileRestored restoreFileFromTrash( new RestoreFileFromTrashHeaders()); } + /** + * Restores a file that has been moved to the trash. + * + *

    An optional new parent ID can be provided to restore the file to in case the original folder + * has been deleted. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of restoreFileFromTrash method + */ public TrashFileRestored restoreFileFromTrash( String fileId, RestoreFileFromTrashQueryParams queryParams) { return restoreFileFromTrash( @@ -57,6 +92,19 @@ public TrashFileRestored restoreFileFromTrash( new RestoreFileFromTrashHeaders()); } + /** + * Restores a file that has been moved to the trash. + * + *

    An optional new parent ID can be provided to restore the file to in case the original folder + * has been deleted. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of restoreFileFromTrash method + * @param queryParams Query parameters of restoreFileFromTrash method + */ public TrashFileRestored restoreFileFromTrash( String fileId, RestoreFileFromTrashRequestBody requestBody, @@ -65,6 +113,18 @@ public TrashFileRestored restoreFileFromTrash( fileId, requestBody, queryParams, new RestoreFileFromTrashHeaders()); } + /** + * Restores a file that has been moved to the trash. + * + *

    An optional new parent ID can be provided to restore the file to in case the original folder + * has been deleted. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param headers Headers of restoreFileFromTrash method + */ public TrashFileRestored restoreFileFromTrash( String fileId, RestoreFileFromTrashHeaders headers) { return restoreFileFromTrash( @@ -74,6 +134,19 @@ public TrashFileRestored restoreFileFromTrash( headers); } + /** + * Restores a file that has been moved to the trash. + * + *

    An optional new parent ID can be provided to restore the file to in case the original folder + * has been deleted. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of restoreFileFromTrash method + * @param headers Headers of restoreFileFromTrash method + */ public TrashFileRestored restoreFileFromTrash( String fileId, RestoreFileFromTrashRequestBody requestBody, @@ -82,6 +155,19 @@ public TrashFileRestored restoreFileFromTrash( fileId, requestBody, new RestoreFileFromTrashQueryParams(), headers); } + /** + * Restores a file that has been moved to the trash. + * + *

    An optional new parent ID can be provided to restore the file to in case the original folder + * has been deleted. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of restoreFileFromTrash method + * @param headers Headers of restoreFileFromTrash method + */ public TrashFileRestored restoreFileFromTrash( String fileId, RestoreFileFromTrashQueryParams queryParams, @@ -90,6 +176,20 @@ public TrashFileRestored restoreFileFromTrash( fileId, new RestoreFileFromTrashRequestBody(), queryParams, headers); } + /** + * Restores a file that has been moved to the trash. + * + *

    An optional new parent ID can be provided to restore the file to in case the original folder + * has been deleted. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of restoreFileFromTrash method + * @param queryParams Query parameters of restoreFileFromTrash method + * @param headers Headers of restoreFileFromTrash method + */ public TrashFileRestored restoreFileFromTrash( String fileId, RestoreFileFromTrashRequestBody requestBody, @@ -120,19 +220,83 @@ public TrashFileRestored restoreFileFromTrash( return JsonManager.deserialize(response.getData(), TrashFileRestored.class); } + /** + * Retrieves a file that has been moved to the trash. + * + *

    Please note that only if the file itself has been moved to the trash can it be retrieved + * with this API call. If instead one of its parent folders was moved to the trash, only that + * folder can be inspected using the [`GET /folders/:id/trash`](e://get_folders_id_trash) API. + * + *

    To list all items that have been moved to the trash, please use the [`GET + * /folders/trash/items`](e://get-folders-trash-items/) API. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + */ public TrashFile getTrashedFileById(String fileId) { return getTrashedFileById( fileId, new GetTrashedFileByIdQueryParams(), new GetTrashedFileByIdHeaders()); } + /** + * Retrieves a file that has been moved to the trash. + * + *

    Please note that only if the file itself has been moved to the trash can it be retrieved + * with this API call. If instead one of its parent folders was moved to the trash, only that + * folder can be inspected using the [`GET /folders/:id/trash`](e://get_folders_id_trash) API. + * + *

    To list all items that have been moved to the trash, please use the [`GET + * /folders/trash/items`](e://get-folders-trash-items/) API. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of getTrashedFileById method + */ public TrashFile getTrashedFileById(String fileId, GetTrashedFileByIdQueryParams queryParams) { return getTrashedFileById(fileId, queryParams, new GetTrashedFileByIdHeaders()); } + /** + * Retrieves a file that has been moved to the trash. + * + *

    Please note that only if the file itself has been moved to the trash can it be retrieved + * with this API call. If instead one of its parent folders was moved to the trash, only that + * folder can be inspected using the [`GET /folders/:id/trash`](e://get_folders_id_trash) API. + * + *

    To list all items that have been moved to the trash, please use the [`GET + * /folders/trash/items`](e://get-folders-trash-items/) API. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param headers Headers of getTrashedFileById method + */ public TrashFile getTrashedFileById(String fileId, GetTrashedFileByIdHeaders headers) { return getTrashedFileById(fileId, new GetTrashedFileByIdQueryParams(), headers); } + /** + * Retrieves a file that has been moved to the trash. + * + *

    Please note that only if the file itself has been moved to the trash can it be retrieved + * with this API call. If instead one of its parent folders was moved to the trash, only that + * folder can be inspected using the [`GET /folders/:id/trash`](e://get_folders_id_trash) API. + * + *

    To list all items that have been moved to the trash, please use the [`GET + * /folders/trash/items`](e://get-folders-trash-items/) API. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of getTrashedFileById method + * @param headers Headers of getTrashedFileById method + */ public TrashFile getTrashedFileById( String fileId, GetTrashedFileByIdQueryParams queryParams, GetTrashedFileByIdHeaders headers) { Map queryParamsMap = @@ -159,10 +323,27 @@ public TrashFile getTrashedFileById( return JsonManager.deserialize(response.getData(), TrashFile.class); } + /** + * Permanently deletes a file that is in the trash. This action cannot be undone. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + */ public void deleteTrashedFileById(String fileId) { deleteTrashedFileById(fileId, new DeleteTrashedFileByIdHeaders()); } + /** + * Permanently deletes a file that is in the trash. This action cannot be undone. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param headers Headers of deleteTrashedFileById method + */ public void deleteTrashedFileById(String fileId, DeleteTrashedFileByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = diff --git a/src/main/java/com/box/sdkgen/managers/trashedfolders/DeleteTrashedFolderByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedfolders/DeleteTrashedFolderByIdHeaders.java index 2a89e19e3..90cf99864 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfolders/DeleteTrashedFolderByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfolders/DeleteTrashedFolderByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteTrashedFolderByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteTrashedFolderByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/trashedfolders/GetTrashedFolderByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedfolders/GetTrashedFolderByIdHeaders.java index 7f08c9477..b8cf1e1a0 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfolders/GetTrashedFolderByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfolders/GetTrashedFolderByIdHeaders.java @@ -6,6 +6,7 @@ public class GetTrashedFolderByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetTrashedFolderByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/trashedfolders/GetTrashedFolderByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/trashedfolders/GetTrashedFolderByIdQueryParams.java index 9ee4ecd73..7fd9f3192 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfolders/GetTrashedFolderByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfolders/GetTrashedFolderByIdQueryParams.java @@ -4,6 +4,14 @@ public class GetTrashedFolderByIdQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public GetTrashedFolderByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashHeaders.java index 3b46b514b..e6ec848a6 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashHeaders.java @@ -6,6 +6,7 @@ public class RestoreFolderFromTrashHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public RestoreFolderFromTrashHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashQueryParams.java b/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashQueryParams.java index 74029969b..83c28fc89 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashQueryParams.java @@ -4,6 +4,14 @@ public class RestoreFolderFromTrashQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public RestoreFolderFromTrashQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashRequestBody.java b/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashRequestBody.java index 3b0db7b97..5e773d01f 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashRequestBody.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class RestoreFolderFromTrashRequestBody extends SerializableObject { + /** An optional new name for the folder. */ protected String name; protected RestoreFolderFromTrashRequestBodyParentField parent; diff --git a/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashRequestBodyParentField.java b/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashRequestBodyParentField.java index 079b5c639..86dd830d7 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashRequestBodyParentField.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashRequestBodyParentField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class RestoreFolderFromTrashRequestBodyParentField extends SerializableObject { + /** The ID of parent item. */ protected String id; public RestoreFolderFromTrashRequestBodyParentField() { diff --git a/src/main/java/com/box/sdkgen/managers/trashedfolders/TrashedFoldersManager.java b/src/main/java/com/box/sdkgen/managers/trashedfolders/TrashedFoldersManager.java index 3640a69e8..474e6810c 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfolders/TrashedFoldersManager.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfolders/TrashedFoldersManager.java @@ -31,6 +31,24 @@ protected TrashedFoldersManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Restores a folder that has been moved to the trash. + * + *

    An optional new parent ID can be provided to restore the folder to in case the original + * folder has been deleted. + * + *

    During this operation, part of the file tree will be locked, mainly the source folder and + * all of its descendants, as well as the destination folder. + * + *

    For the duration of the operation, no other move, copy, delete, or restore operation can + * performed on any of the locked folders. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + */ public TrashFolderRestored restoreFolderFromTrash(String folderId) { return restoreFolderFromTrash( folderId, @@ -39,6 +57,25 @@ public TrashFolderRestored restoreFolderFromTrash(String folderId) { new RestoreFolderFromTrashHeaders()); } + /** + * Restores a folder that has been moved to the trash. + * + *

    An optional new parent ID can be provided to restore the folder to in case the original + * folder has been deleted. + * + *

    During this operation, part of the file tree will be locked, mainly the source folder and + * all of its descendants, as well as the destination folder. + * + *

    For the duration of the operation, no other move, copy, delete, or restore operation can + * performed on any of the locked folders. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param requestBody Request body of restoreFolderFromTrash method + */ public TrashFolderRestored restoreFolderFromTrash( String folderId, RestoreFolderFromTrashRequestBody requestBody) { return restoreFolderFromTrash( @@ -48,6 +85,25 @@ public TrashFolderRestored restoreFolderFromTrash( new RestoreFolderFromTrashHeaders()); } + /** + * Restores a folder that has been moved to the trash. + * + *

    An optional new parent ID can be provided to restore the folder to in case the original + * folder has been deleted. + * + *

    During this operation, part of the file tree will be locked, mainly the source folder and + * all of its descendants, as well as the destination folder. + * + *

    For the duration of the operation, no other move, copy, delete, or restore operation can + * performed on any of the locked folders. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of restoreFolderFromTrash method + */ public TrashFolderRestored restoreFolderFromTrash( String folderId, RestoreFolderFromTrashQueryParams queryParams) { return restoreFolderFromTrash( @@ -57,6 +113,26 @@ public TrashFolderRestored restoreFolderFromTrash( new RestoreFolderFromTrashHeaders()); } + /** + * Restores a folder that has been moved to the trash. + * + *

    An optional new parent ID can be provided to restore the folder to in case the original + * folder has been deleted. + * + *

    During this operation, part of the file tree will be locked, mainly the source folder and + * all of its descendants, as well as the destination folder. + * + *

    For the duration of the operation, no other move, copy, delete, or restore operation can + * performed on any of the locked folders. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param requestBody Request body of restoreFolderFromTrash method + * @param queryParams Query parameters of restoreFolderFromTrash method + */ public TrashFolderRestored restoreFolderFromTrash( String folderId, RestoreFolderFromTrashRequestBody requestBody, @@ -65,6 +141,25 @@ public TrashFolderRestored restoreFolderFromTrash( folderId, requestBody, queryParams, new RestoreFolderFromTrashHeaders()); } + /** + * Restores a folder that has been moved to the trash. + * + *

    An optional new parent ID can be provided to restore the folder to in case the original + * folder has been deleted. + * + *

    During this operation, part of the file tree will be locked, mainly the source folder and + * all of its descendants, as well as the destination folder. + * + *

    For the duration of the operation, no other move, copy, delete, or restore operation can + * performed on any of the locked folders. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param headers Headers of restoreFolderFromTrash method + */ public TrashFolderRestored restoreFolderFromTrash( String folderId, RestoreFolderFromTrashHeaders headers) { return restoreFolderFromTrash( @@ -74,6 +169,26 @@ public TrashFolderRestored restoreFolderFromTrash( headers); } + /** + * Restores a folder that has been moved to the trash. + * + *

    An optional new parent ID can be provided to restore the folder to in case the original + * folder has been deleted. + * + *

    During this operation, part of the file tree will be locked, mainly the source folder and + * all of its descendants, as well as the destination folder. + * + *

    For the duration of the operation, no other move, copy, delete, or restore operation can + * performed on any of the locked folders. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param requestBody Request body of restoreFolderFromTrash method + * @param headers Headers of restoreFolderFromTrash method + */ public TrashFolderRestored restoreFolderFromTrash( String folderId, RestoreFolderFromTrashRequestBody requestBody, @@ -82,6 +197,26 @@ public TrashFolderRestored restoreFolderFromTrash( folderId, requestBody, new RestoreFolderFromTrashQueryParams(), headers); } + /** + * Restores a folder that has been moved to the trash. + * + *

    An optional new parent ID can be provided to restore the folder to in case the original + * folder has been deleted. + * + *

    During this operation, part of the file tree will be locked, mainly the source folder and + * all of its descendants, as well as the destination folder. + * + *

    For the duration of the operation, no other move, copy, delete, or restore operation can + * performed on any of the locked folders. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of restoreFolderFromTrash method + * @param headers Headers of restoreFolderFromTrash method + */ public TrashFolderRestored restoreFolderFromTrash( String folderId, RestoreFolderFromTrashQueryParams queryParams, @@ -90,6 +225,27 @@ public TrashFolderRestored restoreFolderFromTrash( folderId, new RestoreFolderFromTrashRequestBody(), queryParams, headers); } + /** + * Restores a folder that has been moved to the trash. + * + *

    An optional new parent ID can be provided to restore the folder to in case the original + * folder has been deleted. + * + *

    During this operation, part of the file tree will be locked, mainly the source folder and + * all of its descendants, as well as the destination folder. + * + *

    For the duration of the operation, no other move, copy, delete, or restore operation can + * performed on any of the locked folders. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param requestBody Request body of restoreFolderFromTrash method + * @param queryParams Query parameters of restoreFolderFromTrash method + * @param headers Headers of restoreFolderFromTrash method + */ public TrashFolderRestored restoreFolderFromTrash( String folderId, RestoreFolderFromTrashRequestBody requestBody, @@ -120,20 +276,88 @@ public TrashFolderRestored restoreFolderFromTrash( return JsonManager.deserialize(response.getData(), TrashFolderRestored.class); } + /** + * Retrieves a folder that has been moved to the trash. + * + *

    Please note that only if the folder itself has been moved to the trash can it be retrieved + * with this API call. If instead one of its parent folders was moved to the trash, only that + * folder can be inspected using the [`GET /folders/:id/trash`](e://get_folders_id_trash) API. + * + *

    To list all items that have been moved to the trash, please use the [`GET + * /folders/trash/items`](e://get-folders-trash-items/) API. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + */ public TrashFolder getTrashedFolderById(String folderId) { return getTrashedFolderById( folderId, new GetTrashedFolderByIdQueryParams(), new GetTrashedFolderByIdHeaders()); } + /** + * Retrieves a folder that has been moved to the trash. + * + *

    Please note that only if the folder itself has been moved to the trash can it be retrieved + * with this API call. If instead one of its parent folders was moved to the trash, only that + * folder can be inspected using the [`GET /folders/:id/trash`](e://get_folders_id_trash) API. + * + *

    To list all items that have been moved to the trash, please use the [`GET + * /folders/trash/items`](e://get-folders-trash-items/) API. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of getTrashedFolderById method + */ public TrashFolder getTrashedFolderById( String folderId, GetTrashedFolderByIdQueryParams queryParams) { return getTrashedFolderById(folderId, queryParams, new GetTrashedFolderByIdHeaders()); } + /** + * Retrieves a folder that has been moved to the trash. + * + *

    Please note that only if the folder itself has been moved to the trash can it be retrieved + * with this API call. If instead one of its parent folders was moved to the trash, only that + * folder can be inspected using the [`GET /folders/:id/trash`](e://get_folders_id_trash) API. + * + *

    To list all items that have been moved to the trash, please use the [`GET + * /folders/trash/items`](e://get-folders-trash-items/) API. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param headers Headers of getTrashedFolderById method + */ public TrashFolder getTrashedFolderById(String folderId, GetTrashedFolderByIdHeaders headers) { return getTrashedFolderById(folderId, new GetTrashedFolderByIdQueryParams(), headers); } + /** + * Retrieves a folder that has been moved to the trash. + * + *

    Please note that only if the folder itself has been moved to the trash can it be retrieved + * with this API call. If instead one of its parent folders was moved to the trash, only that + * folder can be inspected using the [`GET /folders/:id/trash`](e://get_folders_id_trash) API. + * + *

    To list all items that have been moved to the trash, please use the [`GET + * /folders/trash/items`](e://get-folders-trash-items/) API. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of getTrashedFolderById method + * @param headers Headers of getTrashedFolderById method + */ public TrashFolder getTrashedFolderById( String folderId, GetTrashedFolderByIdQueryParams queryParams, @@ -162,10 +386,29 @@ public TrashFolder getTrashedFolderById( return JsonManager.deserialize(response.getData(), TrashFolder.class); } + /** + * Permanently deletes a folder that is in the trash. This action cannot be undone. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + */ public void deleteTrashedFolderById(String folderId) { deleteTrashedFolderById(folderId, new DeleteTrashedFolderByIdHeaders()); } + /** + * Permanently deletes a folder that is in the trash. This action cannot be undone. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param headers Headers of deleteTrashedFolderById method + */ public void deleteTrashedFolderById(String folderId, DeleteTrashedFolderByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = diff --git a/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsHeaders.java b/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsHeaders.java index 896c2b9da..cfc855633 100644 --- a/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsHeaders.java @@ -6,6 +6,7 @@ public class GetTrashedItemsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetTrashedItemsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsQueryParams.java b/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsQueryParams.java index b36110b65..8ea983e35 100644 --- a/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsQueryParams.java @@ -5,18 +5,57 @@ public class GetTrashedItemsQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; + /** The maximum number of items to return per page. */ public Long limit; + /** + * The offset of the item at which to begin the response. + * + *

    Queries with offset parameter value exceeding 10000 will be rejected with a 400 response. + */ public Long offset; + /** + * Specifies whether to use marker-based pagination instead of offset-based pagination. Only one + * pagination method can be used at a time. + * + *

    By setting this value to true, the API will return a `marker` field that can be passed as a + * parameter to this endpoint to get the next page of the response. + */ public Boolean usemarker; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** + * The direction to sort results in. This can be either in alphabetical ascending (`ASC`) or + * descending (`DESC`) order. + */ public EnumWrapper direction; + /** + * Defines the **second** attribute by which items are sorted. + * + *

    Items are always sorted by their `type` first, with folders listed before files, and files + * listed before web links. + * + *

    This parameter is not supported when using marker-based pagination. + */ public EnumWrapper sort; public GetTrashedItemsQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/trasheditems/TrashedItemsManager.java b/src/main/java/com/box/sdkgen/managers/trasheditems/TrashedItemsManager.java index 423236787..c466ff2ea 100644 --- a/src/main/java/com/box/sdkgen/managers/trasheditems/TrashedItemsManager.java +++ b/src/main/java/com/box/sdkgen/managers/trasheditems/TrashedItemsManager.java @@ -30,18 +30,61 @@ protected TrashedItemsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves the files and folders that have been moved to the trash. + * + *

    Any attribute in the full files or folders objects can be passed in with the `fields` + * parameter to retrieve those specific attributes that are not returned by default. + * + *

    This endpoint defaults to use offset-based pagination, yet also supports marker-based + * pagination using the `marker` parameter. + */ public Items getTrashedItems() { return getTrashedItems(new GetTrashedItemsQueryParams(), new GetTrashedItemsHeaders()); } + /** + * Retrieves the files and folders that have been moved to the trash. + * + *

    Any attribute in the full files or folders objects can be passed in with the `fields` + * parameter to retrieve those specific attributes that are not returned by default. + * + *

    This endpoint defaults to use offset-based pagination, yet also supports marker-based + * pagination using the `marker` parameter. + * + * @param queryParams Query parameters of getTrashedItems method + */ public Items getTrashedItems(GetTrashedItemsQueryParams queryParams) { return getTrashedItems(queryParams, new GetTrashedItemsHeaders()); } + /** + * Retrieves the files and folders that have been moved to the trash. + * + *

    Any attribute in the full files or folders objects can be passed in with the `fields` + * parameter to retrieve those specific attributes that are not returned by default. + * + *

    This endpoint defaults to use offset-based pagination, yet also supports marker-based + * pagination using the `marker` parameter. + * + * @param headers Headers of getTrashedItems method + */ public Items getTrashedItems(GetTrashedItemsHeaders headers) { return getTrashedItems(new GetTrashedItemsQueryParams(), headers); } + /** + * Retrieves the files and folders that have been moved to the trash. + * + *

    Any attribute in the full files or folders objects can be passed in with the `fields` + * parameter to retrieve those specific attributes that are not returned by default. + * + *

    This endpoint defaults to use offset-based pagination, yet also supports marker-based + * pagination using the `marker` parameter. + * + * @param queryParams Query parameters of getTrashedItems method + * @param headers Headers of getTrashedItems method + */ public Items getTrashedItems( GetTrashedItemsQueryParams queryParams, GetTrashedItemsHeaders headers) { Map queryParamsMap = diff --git a/src/main/java/com/box/sdkgen/managers/trashedweblinks/DeleteTrashedWebLinkByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedweblinks/DeleteTrashedWebLinkByIdHeaders.java index 323922904..acbb1cbf9 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedweblinks/DeleteTrashedWebLinkByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/trashedweblinks/DeleteTrashedWebLinkByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteTrashedWebLinkByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteTrashedWebLinkByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/trashedweblinks/GetTrashedWebLinkByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedweblinks/GetTrashedWebLinkByIdHeaders.java index 8b55fa2a4..520deec5f 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedweblinks/GetTrashedWebLinkByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/trashedweblinks/GetTrashedWebLinkByIdHeaders.java @@ -6,6 +6,7 @@ public class GetTrashedWebLinkByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetTrashedWebLinkByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/trashedweblinks/GetTrashedWebLinkByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/trashedweblinks/GetTrashedWebLinkByIdQueryParams.java index 8e419bcd4..e9bdcb4c7 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedweblinks/GetTrashedWebLinkByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/trashedweblinks/GetTrashedWebLinkByIdQueryParams.java @@ -4,6 +4,14 @@ public class GetTrashedWebLinkByIdQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public GetTrashedWebLinkByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashHeaders.java index 89606f258..4ef5a1352 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashHeaders.java @@ -6,6 +6,7 @@ public class RestoreWeblinkFromTrashHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public RestoreWeblinkFromTrashHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashQueryParams.java b/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashQueryParams.java index 301bc58a8..349beb3ef 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashQueryParams.java @@ -4,6 +4,14 @@ public class RestoreWeblinkFromTrashQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public RestoreWeblinkFromTrashQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashRequestBody.java b/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashRequestBody.java index 8d89c60dc..c0a5379e9 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashRequestBody.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class RestoreWeblinkFromTrashRequestBody extends SerializableObject { + /** An optional new name for the web link. */ protected String name; protected RestoreWeblinkFromTrashRequestBodyParentField parent; diff --git a/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashRequestBodyParentField.java b/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashRequestBodyParentField.java index 7a9979451..708c45c62 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashRequestBodyParentField.java +++ b/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashRequestBodyParentField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class RestoreWeblinkFromTrashRequestBodyParentField extends SerializableObject { + /** The ID of parent item. */ protected String id; public RestoreWeblinkFromTrashRequestBodyParentField() { diff --git a/src/main/java/com/box/sdkgen/managers/trashedweblinks/TrashedWebLinksManager.java b/src/main/java/com/box/sdkgen/managers/trashedweblinks/TrashedWebLinksManager.java index 689e85196..f8cf71227 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedweblinks/TrashedWebLinksManager.java +++ b/src/main/java/com/box/sdkgen/managers/trashedweblinks/TrashedWebLinksManager.java @@ -31,6 +31,14 @@ protected TrashedWebLinksManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Restores a web link that has been moved to the trash. + * + *

    An optional new parent ID can be provided to restore the web link to in case the original + * folder has been deleted. + * + * @param webLinkId The ID of the web link. Example: "12345" + */ public TrashWebLinkRestored restoreWeblinkFromTrash(String webLinkId) { return restoreWeblinkFromTrash( webLinkId, @@ -39,6 +47,15 @@ public TrashWebLinkRestored restoreWeblinkFromTrash(String webLinkId) { new RestoreWeblinkFromTrashHeaders()); } + /** + * Restores a web link that has been moved to the trash. + * + *

    An optional new parent ID can be provided to restore the web link to in case the original + * folder has been deleted. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param requestBody Request body of restoreWeblinkFromTrash method + */ public TrashWebLinkRestored restoreWeblinkFromTrash( String webLinkId, RestoreWeblinkFromTrashRequestBody requestBody) { return restoreWeblinkFromTrash( @@ -48,6 +65,15 @@ public TrashWebLinkRestored restoreWeblinkFromTrash( new RestoreWeblinkFromTrashHeaders()); } + /** + * Restores a web link that has been moved to the trash. + * + *

    An optional new parent ID can be provided to restore the web link to in case the original + * folder has been deleted. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param queryParams Query parameters of restoreWeblinkFromTrash method + */ public TrashWebLinkRestored restoreWeblinkFromTrash( String webLinkId, RestoreWeblinkFromTrashQueryParams queryParams) { return restoreWeblinkFromTrash( @@ -57,6 +83,16 @@ public TrashWebLinkRestored restoreWeblinkFromTrash( new RestoreWeblinkFromTrashHeaders()); } + /** + * Restores a web link that has been moved to the trash. + * + *

    An optional new parent ID can be provided to restore the web link to in case the original + * folder has been deleted. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param requestBody Request body of restoreWeblinkFromTrash method + * @param queryParams Query parameters of restoreWeblinkFromTrash method + */ public TrashWebLinkRestored restoreWeblinkFromTrash( String webLinkId, RestoreWeblinkFromTrashRequestBody requestBody, @@ -65,6 +101,15 @@ public TrashWebLinkRestored restoreWeblinkFromTrash( webLinkId, requestBody, queryParams, new RestoreWeblinkFromTrashHeaders()); } + /** + * Restores a web link that has been moved to the trash. + * + *

    An optional new parent ID can be provided to restore the web link to in case the original + * folder has been deleted. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param headers Headers of restoreWeblinkFromTrash method + */ public TrashWebLinkRestored restoreWeblinkFromTrash( String webLinkId, RestoreWeblinkFromTrashHeaders headers) { return restoreWeblinkFromTrash( @@ -74,6 +119,16 @@ public TrashWebLinkRestored restoreWeblinkFromTrash( headers); } + /** + * Restores a web link that has been moved to the trash. + * + *

    An optional new parent ID can be provided to restore the web link to in case the original + * folder has been deleted. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param requestBody Request body of restoreWeblinkFromTrash method + * @param headers Headers of restoreWeblinkFromTrash method + */ public TrashWebLinkRestored restoreWeblinkFromTrash( String webLinkId, RestoreWeblinkFromTrashRequestBody requestBody, @@ -82,6 +137,16 @@ public TrashWebLinkRestored restoreWeblinkFromTrash( webLinkId, requestBody, new RestoreWeblinkFromTrashQueryParams(), headers); } + /** + * Restores a web link that has been moved to the trash. + * + *

    An optional new parent ID can be provided to restore the web link to in case the original + * folder has been deleted. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param queryParams Query parameters of restoreWeblinkFromTrash method + * @param headers Headers of restoreWeblinkFromTrash method + */ public TrashWebLinkRestored restoreWeblinkFromTrash( String webLinkId, RestoreWeblinkFromTrashQueryParams queryParams, @@ -90,6 +155,17 @@ public TrashWebLinkRestored restoreWeblinkFromTrash( webLinkId, new RestoreWeblinkFromTrashRequestBody(), queryParams, headers); } + /** + * Restores a web link that has been moved to the trash. + * + *

    An optional new parent ID can be provided to restore the web link to in case the original + * folder has been deleted. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param requestBody Request body of restoreWeblinkFromTrash method + * @param queryParams Query parameters of restoreWeblinkFromTrash method + * @param headers Headers of restoreWeblinkFromTrash method + */ public TrashWebLinkRestored restoreWeblinkFromTrash( String webLinkId, RestoreWeblinkFromTrashRequestBody requestBody, @@ -120,21 +196,45 @@ public TrashWebLinkRestored restoreWeblinkFromTrash( return JsonManager.deserialize(response.getData(), TrashWebLinkRestored.class); } + /** + * Retrieves a web link that has been moved to the trash. + * + * @param webLinkId The ID of the web link. Example: "12345" + */ public TrashWebLink getTrashedWebLinkById(String webLinkId) { return getTrashedWebLinkById( webLinkId, new GetTrashedWebLinkByIdQueryParams(), new GetTrashedWebLinkByIdHeaders()); } + /** + * Retrieves a web link that has been moved to the trash. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param queryParams Query parameters of getTrashedWebLinkById method + */ public TrashWebLink getTrashedWebLinkById( String webLinkId, GetTrashedWebLinkByIdQueryParams queryParams) { return getTrashedWebLinkById(webLinkId, queryParams, new GetTrashedWebLinkByIdHeaders()); } + /** + * Retrieves a web link that has been moved to the trash. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param headers Headers of getTrashedWebLinkById method + */ public TrashWebLink getTrashedWebLinkById( String webLinkId, GetTrashedWebLinkByIdHeaders headers) { return getTrashedWebLinkById(webLinkId, new GetTrashedWebLinkByIdQueryParams(), headers); } + /** + * Retrieves a web link that has been moved to the trash. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param queryParams Query parameters of getTrashedWebLinkById method + * @param headers Headers of getTrashedWebLinkById method + */ public TrashWebLink getTrashedWebLinkById( String webLinkId, GetTrashedWebLinkByIdQueryParams queryParams, @@ -163,10 +263,21 @@ public TrashWebLink getTrashedWebLinkById( return JsonManager.deserialize(response.getData(), TrashWebLink.class); } + /** + * Permanently deletes a web link that is in the trash. This action cannot be undone. + * + * @param webLinkId The ID of the web link. Example: "12345" + */ public void deleteTrashedWebLinkById(String webLinkId) { deleteTrashedWebLinkById(webLinkId, new DeleteTrashedWebLinkByIdHeaders()); } + /** + * Permanently deletes a web link that is in the trash. This action cannot be undone. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param headers Headers of deleteTrashedWebLinkById method + */ public void deleteTrashedWebLinkById(String webLinkId, DeleteTrashedWebLinkByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = diff --git a/src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckHeaders.java b/src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckHeaders.java index 94952d541..b4c826446 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckHeaders.java @@ -6,6 +6,7 @@ public class PreflightFileUploadCheckHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public PreflightFileUploadCheckHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckRequestBody.java b/src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckRequestBody.java index 3c2e5ed5f..b0c969e29 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckRequestBody.java @@ -8,8 +8,10 @@ @JsonFilter("nullablePropertyFilter") public class PreflightFileUploadCheckRequestBody extends SerializableObject { + /** The name for the file. */ protected String name; + /** The size of the file in bytes. */ protected Integer size; protected PreflightFileUploadCheckRequestBodyParentField parent; diff --git a/src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckRequestBodyParentField.java b/src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckRequestBodyParentField.java index 04a4b0769..6cbb5b9e1 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckRequestBodyParentField.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckRequestBodyParentField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class PreflightFileUploadCheckRequestBodyParentField extends SerializableObject { + /** The ID of parent item. */ protected String id; public PreflightFileUploadCheckRequestBodyParentField() { diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileHeaders.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileHeaders.java index d16b7e9e5..4c111f1e3 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileHeaders.java @@ -6,8 +6,13 @@ public class UploadFileHeaders { + /** + * An optional header containing the SHA1 hash of the file to ensure that the file was not + * corrupted in transit. + */ public String contentMd5; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UploadFileHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileQueryParams.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileQueryParams.java index 4ddc1090f..9ec3aaf71 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileQueryParams.java @@ -4,6 +4,14 @@ public class UploadFileQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public UploadFileQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBody.java index b9408c8f9..63ad4e53e 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBody.java @@ -4,8 +4,31 @@ public class UploadFileRequestBody { + /** + * The additional attributes of the file being uploaded. Mainly the name and the parent folder. + * These attributes are part of the multi part request body and are in JSON format. + * + *

    <Message warning> + * + *

    The `attributes` part of the body must come **before** the `file` part. Requests that do not + * follow this format when uploading the file will receive a HTTP `400` error with a + * `metadata_after_file_contents` error code. + * + *

    </Message> + */ public final UploadFileRequestBodyAttributesField attributes; + /** + * The content of the file to upload to Box. + * + *

    <Message warning> + * + *

    The `attributes` part of the body must come **before** the `file` part. Requests that do not + * follow this format when uploading the file will receive a HTTP `400` error with a + * `metadata_after_file_contents` error code. + * + *

    </Message> + */ public final InputStream file; public String fileFileName; diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBodyAttributesField.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBodyAttributesField.java index 00dde2d1c..ee6f048f6 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBodyAttributesField.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBodyAttributesField.java @@ -13,15 +13,33 @@ @JsonFilter("nullablePropertyFilter") public class UploadFileRequestBodyAttributesField extends SerializableObject { + /** + * The name of the file. + * + *

    File names must be unique within their parent folder. The name check is case-insensitive, so + * a file named `New File` cannot be created in a parent folder that already contains a folder + * named `new file`. + */ protected final String name; + /** The parent folder to upload the file to. */ protected final UploadFileRequestBodyAttributesParentField parent; + /** + * Defines the time the file was originally created at. + * + *

    If not set, the upload time will be used. + */ @JsonProperty("content_created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime contentCreatedAt; + /** + * Defines the time the file was last modified at. + * + *

    If not set, the upload time will be used. + */ @JsonProperty("content_modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBodyAttributesParentField.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBodyAttributesParentField.java index 64c94c3fd..c041683ec 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBodyAttributesParentField.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileRequestBodyAttributesParentField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class UploadFileRequestBodyAttributesParentField extends SerializableObject { + /** The id of the parent folder. Use `0` for the user's root folder. */ protected final String id; public UploadFileRequestBodyAttributesParentField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionHeaders.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionHeaders.java index b3369b79c..15aece270 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionHeaders.java @@ -6,10 +6,21 @@ public class UploadFileVersionHeaders { + /** + * Ensures this item hasn't recently changed before making changes. + * + *

    Pass in the item's last observed `etag` value into this header and the endpoint will fail + * with a `412 Precondition Failed` if it has changed since. + */ public String ifMatch; + /** + * An optional header containing the SHA1 hash of the file to ensure that the file was not + * corrupted in transit. + */ public String contentMd5; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UploadFileVersionHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionQueryParams.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionQueryParams.java index c02215e24..6dd9e1f00 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionQueryParams.java @@ -4,6 +4,14 @@ public class UploadFileVersionQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public UploadFileVersionQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionRequestBody.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionRequestBody.java index 61018c6e8..b903474b3 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionRequestBody.java @@ -4,8 +4,31 @@ public class UploadFileVersionRequestBody { + /** + * The additional attributes of the file being uploaded. Mainly the name and the parent folder. + * These attributes are part of the multi part request body and are in JSON format. + * + *

    <Message warning> + * + *

    The `attributes` part of the body must come **before** the `file` part. Requests that do not + * follow this format when uploading the file will receive a HTTP `400` error with a + * `metadata_after_file_contents` error code. + * + *

    </Message> + */ public final UploadFileVersionRequestBodyAttributesField attributes; + /** + * The content of the file to upload to Box. + * + *

    <Message warning> + * + *

    The `attributes` part of the body must come **before** the `file` part. Requests that do not + * follow this format when uploading the file will receive a HTTP `400` error with a + * `metadata_after_file_contents` error code. + * + *

    </Message> + */ public final InputStream file; public String fileFileName; diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionRequestBodyAttributesField.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionRequestBodyAttributesField.java index 0b50aeafd..a42119314 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionRequestBodyAttributesField.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionRequestBodyAttributesField.java @@ -13,8 +13,17 @@ @JsonFilter("nullablePropertyFilter") public class UploadFileVersionRequestBodyAttributesField extends SerializableObject { + /** + * An optional new name for the file. If specified, the file will be renamed when the new version + * is uploaded. + */ protected final String name; + /** + * Defines the time the file was last modified at. + * + *

    If not set, the upload time will be used. + */ @JsonProperty("content_modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckHeaders.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckHeaders.java index d6312507d..cb3442577 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckHeaders.java @@ -6,8 +6,13 @@ public class UploadWithPreflightCheckHeaders { + /** + * An optional header containing the SHA1 hash of the file to ensure that the file was not + * corrupted in transit. + */ public String contentMd5; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UploadWithPreflightCheckHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckQueryParams.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckQueryParams.java index 522d12067..84ca4751f 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckQueryParams.java @@ -4,6 +4,14 @@ public class UploadWithPreflightCheckQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public UploadWithPreflightCheckQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBody.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBody.java index 5d249be6a..216987a57 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBody.java @@ -6,6 +6,17 @@ public class UploadWithPreflightCheckRequestBody { public final UploadWithPreflightCheckRequestBodyAttributesField attributes; + /** + * The content of the file to upload to Box. + * + *

    <Message warning> + * + *

    The `attributes` part of the body must come **before** the `file` part. Requests that do not + * follow this format when uploading the file will receive a HTTP `400` error with a + * `metadata_after_file_contents` error code. + * + *

    </Message> + */ public final InputStream file; public String fileFileName; diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBodyAttributesField.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBodyAttributesField.java index 564d16d35..776aa2477 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBodyAttributesField.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBodyAttributesField.java @@ -13,20 +13,39 @@ @JsonFilter("nullablePropertyFilter") public class UploadWithPreflightCheckRequestBodyAttributesField extends SerializableObject { + /** + * The name of the file. + * + *

    File names must be unique within their parent folder. The name check is case-insensitive, so + * a file named `New File` cannot be created in a parent folder that already contains a folder + * named `new file`. + */ protected final String name; + /** The parent folder to upload the file to. */ protected final UploadWithPreflightCheckRequestBodyAttributesParentField parent; + /** + * Defines the time the file was originally created at. + * + *

    If not set, the upload time will be used. + */ @JsonProperty("content_created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime contentCreatedAt; + /** + * Defines the time the file was last modified at. + * + *

    If not set, the upload time will be used. + */ @JsonProperty("content_modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime contentModifiedAt; + /** The size of the file in bytes */ protected final int size; public UploadWithPreflightCheckRequestBodyAttributesField( diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBodyAttributesParentField.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBodyAttributesParentField.java index 3d8cb592f..01cb59241 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBodyAttributesParentField.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckRequestBodyAttributesParentField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class UploadWithPreflightCheckRequestBodyAttributesParentField extends SerializableObject { + /** The id of the parent folder. Use `0` for the user's root folder. */ protected final String id; public UploadWithPreflightCheckRequestBodyAttributesParentField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadsManager.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadsManager.java index 2c2fbeec9..128b611a9 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/UploadsManager.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadsManager.java @@ -34,11 +34,38 @@ protected UploadsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Update a file's content. For file sizes over 50MB we recommend using the Chunk Upload APIs. + * + *

    The `attributes` part of the body must come **before** the `file` part. Requests that do not + * follow this format when uploading the file will receive a HTTP `400` error with a + * `metadata_after_file_contents` error code. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of uploadFileVersion method + */ public Files uploadFileVersion(String fileId, UploadFileVersionRequestBody requestBody) { return uploadFileVersion( fileId, requestBody, new UploadFileVersionQueryParams(), new UploadFileVersionHeaders()); } + /** + * Update a file's content. For file sizes over 50MB we recommend using the Chunk Upload APIs. + * + *

    The `attributes` part of the body must come **before** the `file` part. Requests that do not + * follow this format when uploading the file will receive a HTTP `400` error with a + * `metadata_after_file_contents` error code. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of uploadFileVersion method + * @param queryParams Query parameters of uploadFileVersion method + */ public Files uploadFileVersion( String fileId, UploadFileVersionRequestBody requestBody, @@ -46,11 +73,40 @@ public Files uploadFileVersion( return uploadFileVersion(fileId, requestBody, queryParams, new UploadFileVersionHeaders()); } + /** + * Update a file's content. For file sizes over 50MB we recommend using the Chunk Upload APIs. + * + *

    The `attributes` part of the body must come **before** the `file` part. Requests that do not + * follow this format when uploading the file will receive a HTTP `400` error with a + * `metadata_after_file_contents` error code. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of uploadFileVersion method + * @param headers Headers of uploadFileVersion method + */ public Files uploadFileVersion( String fileId, UploadFileVersionRequestBody requestBody, UploadFileVersionHeaders headers) { return uploadFileVersion(fileId, requestBody, new UploadFileVersionQueryParams(), headers); } + /** + * Update a file's content. For file sizes over 50MB we recommend using the Chunk Upload APIs. + * + *

    The `attributes` part of the body must come **before** the `file` part. Requests that do not + * follow this format when uploading the file will receive a HTTP `400` error with a + * `metadata_after_file_contents` error code. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param requestBody Request body of uploadFileVersion method + * @param queryParams Query parameters of uploadFileVersion method + * @param headers Headers of uploadFileVersion method + */ public Files uploadFileVersion( String fileId, UploadFileVersionRequestBody requestBody, @@ -97,19 +153,42 @@ public Files uploadFileVersion( return JsonManager.deserialize(response.getData(), Files.class); } + /** + * Performs a check to verify that a file will be accepted by Box before you upload the entire + * file. + */ public UploadUrl preflightFileUploadCheck() { return preflightFileUploadCheck( new PreflightFileUploadCheckRequestBody(), new PreflightFileUploadCheckHeaders()); } + /** + * Performs a check to verify that a file will be accepted by Box before you upload the entire + * file. + * + * @param requestBody Request body of preflightFileUploadCheck method + */ public UploadUrl preflightFileUploadCheck(PreflightFileUploadCheckRequestBody requestBody) { return preflightFileUploadCheck(requestBody, new PreflightFileUploadCheckHeaders()); } + /** + * Performs a check to verify that a file will be accepted by Box before you upload the entire + * file. + * + * @param headers Headers of preflightFileUploadCheck method + */ public UploadUrl preflightFileUploadCheck(PreflightFileUploadCheckHeaders headers) { return preflightFileUploadCheck(new PreflightFileUploadCheckRequestBody(), headers); } + /** + * Performs a check to verify that a file will be accepted by Box before you upload the entire + * file. + * + * @param requestBody Request body of preflightFileUploadCheck method + * @param headers Headers of preflightFileUploadCheck method + */ public UploadUrl preflightFileUploadCheck( PreflightFileUploadCheckRequestBody requestBody, PreflightFileUploadCheckHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -133,18 +212,58 @@ public UploadUrl preflightFileUploadCheck( return JsonManager.deserialize(response.getData(), UploadUrl.class); } + /** + * Uploads a small file to Box. For file sizes over 50MB we recommend using the Chunk Upload APIs. + * + *

    The `attributes` part of the body must come **before** the `file` part. Requests that do not + * follow this format when uploading the file will receive a HTTP `400` error with a + * `metadata_after_file_contents` error code. + * + * @param requestBody Request body of uploadFile method + */ public Files uploadFile(UploadFileRequestBody requestBody) { return uploadFile(requestBody, new UploadFileQueryParams(), new UploadFileHeaders()); } + /** + * Uploads a small file to Box. For file sizes over 50MB we recommend using the Chunk Upload APIs. + * + *

    The `attributes` part of the body must come **before** the `file` part. Requests that do not + * follow this format when uploading the file will receive a HTTP `400` error with a + * `metadata_after_file_contents` error code. + * + * @param requestBody Request body of uploadFile method + * @param queryParams Query parameters of uploadFile method + */ public Files uploadFile(UploadFileRequestBody requestBody, UploadFileQueryParams queryParams) { return uploadFile(requestBody, queryParams, new UploadFileHeaders()); } + /** + * Uploads a small file to Box. For file sizes over 50MB we recommend using the Chunk Upload APIs. + * + *

    The `attributes` part of the body must come **before** the `file` part. Requests that do not + * follow this format when uploading the file will receive a HTTP `400` error with a + * `metadata_after_file_contents` error code. + * + * @param requestBody Request body of uploadFile method + * @param headers Headers of uploadFile method + */ public Files uploadFile(UploadFileRequestBody requestBody, UploadFileHeaders headers) { return uploadFile(requestBody, new UploadFileQueryParams(), headers); } + /** + * Uploads a small file to Box. For file sizes over 50MB we recommend using the Chunk Upload APIs. + * + *

    The `attributes` part of the body must come **before** the `file` part. Requests that do not + * follow this format when uploading the file will receive a HTTP `400` error with a + * `metadata_after_file_contents` error code. + * + * @param requestBody Request body of uploadFile method + * @param queryParams Query parameters of uploadFile method + * @param headers Headers of uploadFile method + */ public Files uploadFile( UploadFileRequestBody requestBody, UploadFileQueryParams queryParams, @@ -186,6 +305,11 @@ public Files uploadFile( return JsonManager.deserialize(response.getData(), Files.class); } + /** + * Upload a file with a preflight check + * + * @param requestBody The requestBody parameter + */ public Files uploadWithPreflightCheck(UploadWithPreflightCheckRequestBody requestBody) { return uploadWithPreflightCheck( requestBody, @@ -193,6 +317,12 @@ public Files uploadWithPreflightCheck(UploadWithPreflightCheckRequestBody reques new UploadWithPreflightCheckHeaders()); } + /** + * Upload a file with a preflight check + * + * @param requestBody The requestBody parameter + * @param queryParams Query parameters of uploadFile method + */ public Files uploadWithPreflightCheck( UploadWithPreflightCheckRequestBody requestBody, UploadWithPreflightCheckQueryParams queryParams) { @@ -200,12 +330,25 @@ public Files uploadWithPreflightCheck( requestBody, queryParams, new UploadWithPreflightCheckHeaders()); } + /** + * Upload a file with a preflight check + * + * @param requestBody The requestBody parameter + * @param headers Headers of uploadFile method + */ public Files uploadWithPreflightCheck( UploadWithPreflightCheckRequestBody requestBody, UploadWithPreflightCheckHeaders headers) { return uploadWithPreflightCheck( requestBody, new UploadWithPreflightCheckQueryParams(), headers); } + /** + * Upload a file with a preflight check + * + * @param requestBody The requestBody parameter + * @param queryParams Query parameters of uploadFile method + * @param headers Headers of uploadFile method + */ public Files uploadWithPreflightCheck( UploadWithPreflightCheckRequestBody requestBody, UploadWithPreflightCheckQueryParams queryParams, diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationHeaders.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationHeaders.java index f3c4770f8..73affcb59 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationHeaders.java @@ -6,6 +6,7 @@ public class CreateCollaborationHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateCollaborationHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationQueryParams.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationQueryParams.java index ea29c7a88..2f77ea649 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationQueryParams.java @@ -4,8 +4,17 @@ public class CreateCollaborationQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; + /** Determines if users should receive email notification for the action performed. */ public Boolean notify; public CreateCollaborationQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBody.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBody.java index a684adf70..2f245c282 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBody.java @@ -14,11 +14,14 @@ @JsonFilter("nullablePropertyFilter") public class CreateCollaborationRequestBody extends SerializableObject { + /** The item to attach the comment to. */ protected final CreateCollaborationRequestBodyItemField item; + /** The user or group to give access to the item. */ @JsonProperty("accessible_by") protected final CreateCollaborationRequestBodyAccessibleByField accessibleBy; + /** The level of access granted. */ @JsonDeserialize( using = CreateCollaborationRequestBodyRoleField @@ -29,12 +32,39 @@ public class CreateCollaborationRequestBody extends SerializableObject { .class) protected final EnumWrapper role; + /** + * If set to `true`, collaborators have access to shared items, but such items won't be visible in + * the All Files list. Additionally, collaborators won't see the path to the root folder for the + * shared item. + */ @JsonProperty("is_access_only") protected Boolean isAccessOnly; + /** + * Determines if the invited users can see the entire parent path to the associated folder. The + * user will not gain privileges in any parent folder and therefore can not see content the user + * is not collaborated on. + * + *

    Be aware that this meaningfully increases the time required to load the invitee's **All + * Files** page. We recommend you limit the number of collaborations with `can_view_path` enabled + * to 1,000 per user. + * + *

    Only owner or co-owners can invite collaborators with a `can_view_path` of `true`. + * + *

    `can_view_path` can only be used for folder collaborations. + */ @JsonProperty("can_view_path") protected Boolean canViewPath; + /** + * Set the expiration date for the collaboration. At this date, the collaboration will be + * automatically removed from the item. + * + *

    This feature will only work if the **Automatically remove invited collaborators: Allow + * folder owners to extend the expiry date** setting has been enabled in the **Enterprise + * Settings** of the **Admin Console**. When the setting is not enabled, collaborations can not + * have an expiry date and a value for this field will be result in an error. + */ @JsonProperty("expires_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyAccessibleByField.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyAccessibleByField.java index 91ffe4539..499fe7472 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyAccessibleByField.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyAccessibleByField.java @@ -12,6 +12,7 @@ @JsonFilter("nullablePropertyFilter") public class CreateCollaborationRequestBodyAccessibleByField extends SerializableObject { + /** The type of collaborator to invite. */ @JsonDeserialize( using = CreateCollaborationRequestBodyAccessibleByTypeField @@ -22,8 +23,18 @@ public class CreateCollaborationRequestBodyAccessibleByField extends Serializabl .CreateCollaborationRequestBodyAccessibleByTypeFieldSerializer.class) protected final EnumWrapper type; + /** + * The ID of the user or group. + * + *

    Alternatively, use `login` to specify a user by email address. + */ protected String id; + /** + * The email address of the user to grant access to the item. + * + *

    Alternatively, use `id` to specify a user by user ID. + */ protected String login; public CreateCollaborationRequestBodyAccessibleByField( diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyItemField.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyItemField.java index d7be57d8d..eba904d11 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyItemField.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyItemField.java @@ -11,6 +11,7 @@ @JsonFilter("nullablePropertyFilter") public class CreateCollaborationRequestBodyItemField extends SerializableObject { + /** The type of the item that this collaboration will be granted access to. */ @JsonDeserialize( using = CreateCollaborationRequestBodyItemTypeField @@ -21,6 +22,7 @@ public class CreateCollaborationRequestBodyItemField extends SerializableObject .CreateCollaborationRequestBodyItemTypeFieldSerializer.class) protected EnumWrapper type; + /** The ID of the item that will be granted access to. */ protected String id; public CreateCollaborationRequestBodyItemField() { diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/DeleteCollaborationByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/DeleteCollaborationByIdHeaders.java index e85c71c7d..9a488daa5 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/DeleteCollaborationByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/DeleteCollaborationByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteCollaborationByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteCollaborationByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/GetCollaborationByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/GetCollaborationByIdHeaders.java index 4cbf98ebb..38295e6f4 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/GetCollaborationByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/GetCollaborationByIdHeaders.java @@ -6,6 +6,7 @@ public class GetCollaborationByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetCollaborationByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/GetCollaborationByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/GetCollaborationByIdQueryParams.java index 9080f1174..9e8be13ea 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/GetCollaborationByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/GetCollaborationByIdQueryParams.java @@ -4,6 +4,14 @@ public class GetCollaborationByIdQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public GetCollaborationByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdHeaders.java index 993e0e40f..1ace2d6c2 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdHeaders.java @@ -6,6 +6,7 @@ public class UpdateCollaborationByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateCollaborationByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBody.java index bcdfe2b4d..ebf4849e0 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBody.java @@ -14,6 +14,7 @@ @JsonFilter("nullablePropertyFilter") public class UpdateCollaborationByIdRequestBody extends SerializableObject { + /** The level of access granted. */ @JsonDeserialize( using = UpdateCollaborationByIdRequestBodyRoleField @@ -24,6 +25,10 @@ public class UpdateCollaborationByIdRequestBody extends SerializableObject { .UpdateCollaborationByIdRequestBodyRoleFieldSerializer.class) protected final EnumWrapper role; + /** + * Set the status of a `pending` collaboration invitation, effectively accepting, or rejecting the + * invite. + */ @JsonDeserialize( using = UpdateCollaborationByIdRequestBodyStatusField @@ -34,11 +39,36 @@ public class UpdateCollaborationByIdRequestBody extends SerializableObject { .UpdateCollaborationByIdRequestBodyStatusFieldSerializer.class) protected EnumWrapper status; + /** + * Update the expiration date for the collaboration. At this date, the collaboration will be + * automatically removed from the item. + * + *

    This feature will only work if the **Automatically remove invited collaborators: Allow + * folder owners to extend the expiry date** setting has been enabled in the **Enterprise + * Settings** of the **Admin Console**. When the setting is not enabled, collaborations can not + * have an expiry date and a value for this field will be result in an error. + * + *

    Additionally, a collaboration can only be given an expiration if it was created after the + * **Automatically remove invited collaborator** setting was enabled. + */ @JsonProperty("expires_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime expiresAt; + /** + * Determines if the invited users can see the entire parent path to the associated folder. The + * user will not gain privileges in any parent folder and therefore can not see content the user + * is not collaborated on. + * + *

    Be aware that this meaningfully increases the time required to load the invitee's **All + * Files** page. We recommend you limit the number of collaborations with `can_view_path` enabled + * to 1,000 per user. + * + *

    Only owner or co-owners can invite collaborators with a `can_view_path` of `true`. + * + *

    `can_view_path` can only be used for folder collaborations. + */ @JsonProperty("can_view_path") protected Boolean canViewPath; diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/UserCollaborationsManager.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/UserCollaborationsManager.java index 03bf6de88..38a7c24f9 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/UserCollaborationsManager.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/UserCollaborationsManager.java @@ -30,21 +30,45 @@ protected UserCollaborationsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Retrieves a single collaboration. + * + * @param collaborationId The ID of the collaboration. Example: "1234" + */ public Collaboration getCollaborationById(String collaborationId) { return getCollaborationById( collaborationId, new GetCollaborationByIdQueryParams(), new GetCollaborationByIdHeaders()); } + /** + * Retrieves a single collaboration. + * + * @param collaborationId The ID of the collaboration. Example: "1234" + * @param queryParams Query parameters of getCollaborationById method + */ public Collaboration getCollaborationById( String collaborationId, GetCollaborationByIdQueryParams queryParams) { return getCollaborationById(collaborationId, queryParams, new GetCollaborationByIdHeaders()); } + /** + * Retrieves a single collaboration. + * + * @param collaborationId The ID of the collaboration. Example: "1234" + * @param headers Headers of getCollaborationById method + */ public Collaboration getCollaborationById( String collaborationId, GetCollaborationByIdHeaders headers) { return getCollaborationById(collaborationId, new GetCollaborationByIdQueryParams(), headers); } + /** + * Retrieves a single collaboration. + * + * @param collaborationId The ID of the collaboration. Example: "1234" + * @param queryParams Query parameters of getCollaborationById method + * @param headers Headers of getCollaborationById method + */ public Collaboration getCollaborationById( String collaborationId, GetCollaborationByIdQueryParams queryParams, @@ -72,12 +96,27 @@ public Collaboration getCollaborationById( return JsonManager.deserialize(response.getData(), Collaboration.class); } + /** + * Updates a collaboration. Can be used to change the owner of an item, or to accept collaboration + * invites. + * + * @param collaborationId The ID of the collaboration. Example: "1234" + * @param requestBody Request body of updateCollaborationById method + */ public Collaboration updateCollaborationById( String collaborationId, UpdateCollaborationByIdRequestBody requestBody) { return updateCollaborationById( collaborationId, requestBody, new UpdateCollaborationByIdHeaders()); } + /** + * Updates a collaboration. Can be used to change the owner of an item, or to accept collaboration + * invites. + * + * @param collaborationId The ID of the collaboration. Example: "1234" + * @param requestBody Request body of updateCollaborationById method + * @param headers Headers of updateCollaborationById method + */ public Collaboration updateCollaborationById( String collaborationId, UpdateCollaborationByIdRequestBody requestBody, @@ -107,10 +146,21 @@ public Collaboration updateCollaborationById( return JsonManager.deserialize(response.getData(), Collaboration.class); } + /** + * Deletes a single collaboration. + * + * @param collaborationId The ID of the collaboration. Example: "1234" + */ public void deleteCollaborationById(String collaborationId) { deleteCollaborationById(collaborationId, new DeleteCollaborationByIdHeaders()); } + /** + * Deletes a single collaboration. + * + * @param collaborationId The ID of the collaboration. Example: "1234" + * @param headers Headers of deleteCollaborationById method + */ public void deleteCollaborationById( String collaborationId, DeleteCollaborationByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -132,21 +182,81 @@ public void deleteCollaborationById( .build()); } + /** + * Adds a collaboration for a single user or a single group to a file or folder. + * + *

    Collaborations can be created using email address, user IDs, or a group IDs. + * + *

    If a collaboration is being created with a group, access to this endpoint is dependent on + * the group's ability to be invited. + * + *

    If collaboration is in `pending` status, the following fields are redacted: - `login` and + * `name` are hidden if a collaboration was created using `user_id`, - `name` is hidden if a + * collaboration was created using `login`. + * + * @param requestBody Request body of createCollaboration method + */ public Collaboration createCollaboration(CreateCollaborationRequestBody requestBody) { return createCollaboration( requestBody, new CreateCollaborationQueryParams(), new CreateCollaborationHeaders()); } + /** + * Adds a collaboration for a single user or a single group to a file or folder. + * + *

    Collaborations can be created using email address, user IDs, or a group IDs. + * + *

    If a collaboration is being created with a group, access to this endpoint is dependent on + * the group's ability to be invited. + * + *

    If collaboration is in `pending` status, the following fields are redacted: - `login` and + * `name` are hidden if a collaboration was created using `user_id`, - `name` is hidden if a + * collaboration was created using `login`. + * + * @param requestBody Request body of createCollaboration method + * @param queryParams Query parameters of createCollaboration method + */ public Collaboration createCollaboration( CreateCollaborationRequestBody requestBody, CreateCollaborationQueryParams queryParams) { return createCollaboration(requestBody, queryParams, new CreateCollaborationHeaders()); } + /** + * Adds a collaboration for a single user or a single group to a file or folder. + * + *

    Collaborations can be created using email address, user IDs, or a group IDs. + * + *

    If a collaboration is being created with a group, access to this endpoint is dependent on + * the group's ability to be invited. + * + *

    If collaboration is in `pending` status, the following fields are redacted: - `login` and + * `name` are hidden if a collaboration was created using `user_id`, - `name` is hidden if a + * collaboration was created using `login`. + * + * @param requestBody Request body of createCollaboration method + * @param headers Headers of createCollaboration method + */ public Collaboration createCollaboration( CreateCollaborationRequestBody requestBody, CreateCollaborationHeaders headers) { return createCollaboration(requestBody, new CreateCollaborationQueryParams(), headers); } + /** + * Adds a collaboration for a single user or a single group to a file or folder. + * + *

    Collaborations can be created using email address, user IDs, or a group IDs. + * + *

    If a collaboration is being created with a group, access to this endpoint is dependent on + * the group's ability to be invited. + * + *

    If collaboration is in `pending` status, the following fields are redacted: - `login` and + * `name` are hidden if a collaboration was created using `user_id`, - `name` is hidden if a + * collaboration was created using `login`. + * + * @param requestBody Request body of createCollaboration method + * @param queryParams Query parameters of createCollaboration method + * @param headers Headers of createCollaboration method + */ public Collaboration createCollaboration( CreateCollaborationRequestBody requestBody, CreateCollaborationQueryParams queryParams, diff --git a/src/main/java/com/box/sdkgen/managers/users/CreateUserHeaders.java b/src/main/java/com/box/sdkgen/managers/users/CreateUserHeaders.java index a6945af94..e9227fa61 100644 --- a/src/main/java/com/box/sdkgen/managers/users/CreateUserHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/users/CreateUserHeaders.java @@ -6,6 +6,7 @@ public class CreateUserHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateUserHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/users/CreateUserQueryParams.java b/src/main/java/com/box/sdkgen/managers/users/CreateUserQueryParams.java index 4a79a0fdf..b51638e4d 100644 --- a/src/main/java/com/box/sdkgen/managers/users/CreateUserQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/users/CreateUserQueryParams.java @@ -4,6 +4,14 @@ public class CreateUserQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public CreateUserQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBody.java b/src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBody.java index 7db569122..206ccf199 100644 --- a/src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBody.java @@ -14,57 +14,89 @@ @JsonFilter("nullablePropertyFilter") public class CreateUserRequestBody extends SerializableObject { + /** The name of the user. */ protected final String name; + /** + * The email address the user uses to log in + * + *

    Required, unless `is_platform_access_only` is set to `true`. + */ protected String login; + /** Specifies that the user is an app user. */ @JsonProperty("is_platform_access_only") protected Boolean isPlatformAccessOnly; + /** The user’s enterprise role. */ @JsonDeserialize( using = CreateUserRequestBodyRoleField.CreateUserRequestBodyRoleFieldDeserializer.class) @JsonSerialize( using = CreateUserRequestBodyRoleField.CreateUserRequestBodyRoleFieldSerializer.class) protected EnumWrapper role; + /** + * The language of the user, formatted in modified version of the [ISO + * 639-1](/guides/api-calls/language-codes) format. + */ protected String language; + /** Whether the user can use Box Sync. */ @JsonProperty("is_sync_enabled") protected Boolean isSyncEnabled; + /** The user’s job title. */ @JsonProperty("job_title") protected String jobTitle; + /** The user’s phone number. */ protected String phone; + /** The user’s address. */ protected String address; + /** The user’s total available space in bytes. Set this to `-1` to indicate unlimited storage. */ @JsonProperty("space_amount") protected Long spaceAmount; + /** + * Tracking codes allow an admin to generate reports from the admin console and assign an + * attribute to a specific group of users. This setting must be enabled for an enterprise before + * it can be used. + */ @JsonProperty("tracking_codes") protected List trackingCodes; + /** Whether the user can see other enterprise users in their contact list. */ @JsonProperty("can_see_managed_users") protected Boolean canSeeManagedUsers; + /** The user's timezone. */ protected String timezone; + /** Whether the user is allowed to collaborate with users outside their enterprise. */ @JsonProperty("is_external_collab_restricted") protected Boolean isExternalCollabRestricted; + /** Whether to exempt the user from enterprise device limits. */ @JsonProperty("is_exempt_from_device_limits") protected Boolean isExemptFromDeviceLimits; + /** Whether the user must use two-factor authentication. */ @JsonProperty("is_exempt_from_login_verification") protected Boolean isExemptFromLoginVerification; + /** The user's account status. */ @JsonDeserialize( using = CreateUserRequestBodyStatusField.CreateUserRequestBodyStatusFieldDeserializer.class) @JsonSerialize( using = CreateUserRequestBodyStatusField.CreateUserRequestBodyStatusFieldSerializer.class) protected EnumWrapper status; + /** + * An external identifier for an app user, which can be used to look up the user. This can be used + * to tie user IDs from external identity providers to Box users. + */ @JsonProperty("external_app_user_id") protected String externalAppUserId; diff --git a/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdHeaders.java index 480498aa5..9f7ed6e78 100644 --- a/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteUserByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteUserByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdQueryParams.java index 6e5d7e702..dd230c082 100644 --- a/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdQueryParams.java @@ -2,8 +2,10 @@ public class DeleteUserByIdQueryParams { + /** Whether the user will receive email notification of the deletion. */ public Boolean notify; + /** Whether the user should be deleted even if this user still own files. */ public Boolean force; public DeleteUserByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/users/GetUserByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/users/GetUserByIdHeaders.java index e4fc80ba8..4c7ee3d25 100644 --- a/src/main/java/com/box/sdkgen/managers/users/GetUserByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/users/GetUserByIdHeaders.java @@ -6,6 +6,7 @@ public class GetUserByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetUserByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/users/GetUserByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/users/GetUserByIdQueryParams.java index 95d010eef..e43672ad1 100644 --- a/src/main/java/com/box/sdkgen/managers/users/GetUserByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/users/GetUserByIdQueryParams.java @@ -4,6 +4,14 @@ public class GetUserByIdQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public GetUserByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/users/GetUserMeHeaders.java b/src/main/java/com/box/sdkgen/managers/users/GetUserMeHeaders.java index 08e0aa925..02a37900a 100644 --- a/src/main/java/com/box/sdkgen/managers/users/GetUserMeHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/users/GetUserMeHeaders.java @@ -6,6 +6,7 @@ public class GetUserMeHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetUserMeHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/users/GetUserMeQueryParams.java b/src/main/java/com/box/sdkgen/managers/users/GetUserMeQueryParams.java index dc9266af6..61de9e081 100644 --- a/src/main/java/com/box/sdkgen/managers/users/GetUserMeQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/users/GetUserMeQueryParams.java @@ -4,6 +4,14 @@ public class GetUserMeQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public GetUserMeQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/users/GetUsersHeaders.java b/src/main/java/com/box/sdkgen/managers/users/GetUsersHeaders.java index 944b40975..259cf0b6e 100644 --- a/src/main/java/com/box/sdkgen/managers/users/GetUsersHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/users/GetUsersHeaders.java @@ -6,6 +6,7 @@ public class GetUsersHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetUsersHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/users/GetUsersQueryParams.java b/src/main/java/com/box/sdkgen/managers/users/GetUsersQueryParams.java index 8684398db..08a60f660 100644 --- a/src/main/java/com/box/sdkgen/managers/users/GetUsersQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/users/GetUsersQueryParams.java @@ -5,20 +5,68 @@ public class GetUsersQueryParams { + /** + * Limits the results to only users who's `name` or `login` start with the search term. + * + *

    For externally managed users, the search term needs to completely match the in order to find + * the user, and it will only return one user at a time. + */ public String filterTerm; + /** + * Limits the results to the kind of user specified. + * + *

    * `all` returns every kind of user for whom the `login` or `name` partially matches the + * `filter_term`. It will only return an external user if the login matches the `filter_term` + * completely, and in that case it will only return that user. * `managed` returns all managed and + * app users for whom the `login` or `name` partially matches the `filter_term`. * `external` + * returns all external users for whom the `login` matches the `filter_term` exactly. + */ public EnumWrapper userType; + /** + * Limits the results to app users with the given `external_app_user_id` value. + * + *

    When creating an app user, an `external_app_user_id` value can be set. This value can then + * be used in this endpoint to find any users that match that `external_app_user_id` value. + */ public String externalAppUserId; + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; + /** + * The offset of the item at which to begin the response. + * + *

    Queries with offset parameter value exceeding 10000 will be rejected with a 400 response. + */ public Long offset; + /** The maximum number of items to return per page. */ public Long limit; + /** + * Specifies whether to use marker-based pagination instead of offset-based pagination. Only one + * pagination method can be used at a time. + * + *

    By setting this value to true, the API will return a `marker` field that can be passed as a + * parameter to this endpoint to get the next page of the response. + */ public Boolean usemarker; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; public GetUsersQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdHeaders.java index 09660fdee..72445f93c 100644 --- a/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdHeaders.java @@ -6,6 +6,7 @@ public class UpdateUserByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateUserByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdQueryParams.java index af6df41a6..9e20d59fb 100644 --- a/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdQueryParams.java @@ -4,6 +4,14 @@ public class UpdateUserByIdQueryParams { + /** + * A comma-separated list of attributes to include in the response. This can be used to request + * fields that are not normally returned in a standard response. + * + *

    Be aware that specifying this parameter will have the effect that none of the standard + * fields are returned in the response unless explicitly specified, instead only fields for the + * mini representation are returned, additional to the fields requested. + */ public List fields; public UpdateUserByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBody.java index e7f0f606c..cf2d13c0f 100644 --- a/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBody.java @@ -15,14 +15,24 @@ @JsonFilter("nullablePropertyFilter") public class UpdateUserByIdRequestBody extends SerializableObject { + /** Set this to `null` to roll the user out of the enterprise and make them a free user. */ @Nullable protected String enterprise; + /** Whether the user should receive an email when they are rolled out of an enterprise. */ protected Boolean notify; + /** The name of the user. */ protected String name; + /** + * The email address the user uses to log in + * + *

    Note: If the target user's email is not confirmed, then the primary login address cannot be + * changed. + */ protected String login; + /** The user’s enterprise role. */ @JsonDeserialize( using = UpdateUserByIdRequestBodyRoleField.UpdateUserByIdRequestBodyRoleFieldDeserializer.class) @@ -30,38 +40,58 @@ public class UpdateUserByIdRequestBody extends SerializableObject { using = UpdateUserByIdRequestBodyRoleField.UpdateUserByIdRequestBodyRoleFieldSerializer.class) protected EnumWrapper role; + /** + * The language of the user, formatted in modified version of the [ISO + * 639-1](/guides/api-calls/language-codes) format. + */ protected String language; + /** Whether the user can use Box Sync. */ @JsonProperty("is_sync_enabled") protected Boolean isSyncEnabled; + /** The user’s job title. */ @JsonProperty("job_title") protected String jobTitle; + /** The user’s phone number. */ protected String phone; + /** The user’s address. */ protected String address; + /** + * Tracking codes allow an admin to generate reports from the admin console and assign an + * attribute to a specific group of users. This setting must be enabled for an enterprise before + * it can be used. + */ @JsonProperty("tracking_codes") protected List trackingCodes; + /** Whether the user can see other enterprise users in their contact list. */ @JsonProperty("can_see_managed_users") protected Boolean canSeeManagedUsers; + /** The user's timezone. */ protected String timezone; + /** Whether the user is allowed to collaborate with users outside their enterprise. */ @JsonProperty("is_external_collab_restricted") protected Boolean isExternalCollabRestricted; + /** Whether to exempt the user from enterprise device limits. */ @JsonProperty("is_exempt_from_device_limits") protected Boolean isExemptFromDeviceLimits; + /** Whether the user must use two-factor authentication. */ @JsonProperty("is_exempt_from_login_verification") protected Boolean isExemptFromLoginVerification; + /** Whether the user is required to reset their password. */ @JsonProperty("is_password_reset_required") protected Boolean isPasswordResetRequired; + /** The user's account status. */ @JsonDeserialize( using = UpdateUserByIdRequestBodyStatusField.UpdateUserByIdRequestBodyStatusFieldDeserializer @@ -71,13 +101,28 @@ public class UpdateUserByIdRequestBody extends SerializableObject { UpdateUserByIdRequestBodyStatusField.UpdateUserByIdRequestBodyStatusFieldSerializer.class) protected EnumWrapper status; + /** The user’s total available space in bytes. Set this to `-1` to indicate unlimited storage. */ @JsonProperty("space_amount") protected Long spaceAmount; + /** + * An alternate notification email address to which email notifications are sent. When it's + * confirmed, this will be the email address to which notifications are sent instead of to the + * primary email address. + * + *

    Set this value to `null` to remove the notification email. + */ @JsonProperty("notification_email") @Nullable protected UpdateUserByIdRequestBodyNotificationEmailField notificationEmail; + /** + * An external identifier for an app user, which can be used to look up the user. This can be used + * to tie user IDs from external identity providers to Box users. + * + *

    Note: In order to update this field, you need to request a token using the application that + * created the app user. + */ @JsonProperty("external_app_user_id") protected String externalAppUserId; diff --git a/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBodyNotificationEmailField.java b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBodyNotificationEmailField.java index 733c32514..95f49c551 100644 --- a/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBodyNotificationEmailField.java +++ b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBodyNotificationEmailField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class UpdateUserByIdRequestBodyNotificationEmailField extends SerializableObject { + /** The email address to send the notifications to. */ protected String email; public UpdateUserByIdRequestBodyNotificationEmailField() { diff --git a/src/main/java/com/box/sdkgen/managers/users/UsersManager.java b/src/main/java/com/box/sdkgen/managers/users/UsersManager.java index ffb53782c..83e9c5892 100644 --- a/src/main/java/com/box/sdkgen/managers/users/UsersManager.java +++ b/src/main/java/com/box/sdkgen/managers/users/UsersManager.java @@ -31,18 +31,53 @@ protected UsersManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Returns a list of all users for the Enterprise along with their `user_id`, `public_name`, and + * `login`. + * + *

    The application and the authenticated user need to have the permission to look up users in + * the entire enterprise. + */ public Users getUsers() { return getUsers(new GetUsersQueryParams(), new GetUsersHeaders()); } + /** + * Returns a list of all users for the Enterprise along with their `user_id`, `public_name`, and + * `login`. + * + *

    The application and the authenticated user need to have the permission to look up users in + * the entire enterprise. + * + * @param queryParams Query parameters of getUsers method + */ public Users getUsers(GetUsersQueryParams queryParams) { return getUsers(queryParams, new GetUsersHeaders()); } + /** + * Returns a list of all users for the Enterprise along with their `user_id`, `public_name`, and + * `login`. + * + *

    The application and the authenticated user need to have the permission to look up users in + * the entire enterprise. + * + * @param headers Headers of getUsers method + */ public Users getUsers(GetUsersHeaders headers) { return getUsers(new GetUsersQueryParams(), headers); } + /** + * Returns a list of all users for the Enterprise along with their `user_id`, `public_name`, and + * `login`. + * + *

    The application and the authenticated user need to have the permission to look up users in + * the entire enterprise. + * + * @param queryParams Query parameters of getUsers method + * @param headers Headers of getUsers method + */ public Users getUsers(GetUsersQueryParams queryParams, GetUsersHeaders headers) { Map queryParamsMap = prepareParams( @@ -74,18 +109,46 @@ public Users getUsers(GetUsersQueryParams queryParams, GetUsersHeaders headers) return JsonManager.deserialize(response.getData(), Users.class); } + /** + * Creates a new managed user in an enterprise. This endpoint is only available to users and + * applications with the right admin permissions. + * + * @param requestBody Request body of createUser method + */ public UserFull createUser(CreateUserRequestBody requestBody) { return createUser(requestBody, new CreateUserQueryParams(), new CreateUserHeaders()); } + /** + * Creates a new managed user in an enterprise. This endpoint is only available to users and + * applications with the right admin permissions. + * + * @param requestBody Request body of createUser method + * @param queryParams Query parameters of createUser method + */ public UserFull createUser(CreateUserRequestBody requestBody, CreateUserQueryParams queryParams) { return createUser(requestBody, queryParams, new CreateUserHeaders()); } + /** + * Creates a new managed user in an enterprise. This endpoint is only available to users and + * applications with the right admin permissions. + * + * @param requestBody Request body of createUser method + * @param headers Headers of createUser method + */ public UserFull createUser(CreateUserRequestBody requestBody, CreateUserHeaders headers) { return createUser(requestBody, new CreateUserQueryParams(), headers); } + /** + * Creates a new managed user in an enterprise. This endpoint is only available to users and + * applications with the right admin permissions. + * + * @param requestBody Request body of createUser method + * @param queryParams Query parameters of createUser method + * @param headers Headers of createUser method + */ public UserFull createUser( CreateUserRequestBody requestBody, CreateUserQueryParams queryParams, @@ -112,18 +175,69 @@ public UserFull createUser( return JsonManager.deserialize(response.getData(), UserFull.class); } + /** + * Retrieves information about the user who is currently authenticated. + * + *

    In the case of a client-side authenticated OAuth 2.0 application this will be the user who + * authorized the app. + * + *

    In the case of a JWT, server-side authenticated application this will be the service account + * that belongs to the application by default. + * + *

    Use the `As-User` header to change who this API call is made on behalf of. + */ public UserFull getUserMe() { return getUserMe(new GetUserMeQueryParams(), new GetUserMeHeaders()); } + /** + * Retrieves information about the user who is currently authenticated. + * + *

    In the case of a client-side authenticated OAuth 2.0 application this will be the user who + * authorized the app. + * + *

    In the case of a JWT, server-side authenticated application this will be the service account + * that belongs to the application by default. + * + *

    Use the `As-User` header to change who this API call is made on behalf of. + * + * @param queryParams Query parameters of getUserMe method + */ public UserFull getUserMe(GetUserMeQueryParams queryParams) { return getUserMe(queryParams, new GetUserMeHeaders()); } + /** + * Retrieves information about the user who is currently authenticated. + * + *

    In the case of a client-side authenticated OAuth 2.0 application this will be the user who + * authorized the app. + * + *

    In the case of a JWT, server-side authenticated application this will be the service account + * that belongs to the application by default. + * + *

    Use the `As-User` header to change who this API call is made on behalf of. + * + * @param headers Headers of getUserMe method + */ public UserFull getUserMe(GetUserMeHeaders headers) { return getUserMe(new GetUserMeQueryParams(), headers); } + /** + * Retrieves information about the user who is currently authenticated. + * + *

    In the case of a client-side authenticated OAuth 2.0 application this will be the user who + * authorized the app. + * + *

    In the case of a JWT, server-side authenticated application this will be the service account + * that belongs to the application by default. + * + *

    Use the `As-User` header to change who this API call is made on behalf of. + * + * @param queryParams Query parameters of getUserMe method + * @param headers Headers of getUserMe method + */ public UserFull getUserMe(GetUserMeQueryParams queryParams, GetUserMeHeaders headers) { Map queryParamsMap = prepareParams(mapOf(entryOf("fields", convertToString(queryParams.getFields())))); @@ -145,18 +259,70 @@ public UserFull getUserMe(GetUserMeQueryParams queryParams, GetUserMeHeaders hea return JsonManager.deserialize(response.getData(), UserFull.class); } + /** + * Retrieves information about a user in the enterprise. + * + *

    The application and the authenticated user need to have the permission to look up users in + * the entire enterprise. + * + *

    This endpoint also returns a limited set of information for external users who are + * collaborated on content owned by the enterprise for authenticated users with the right scopes. + * In this case, disallowed fields will return null instead. + * + * @param userId The ID of the user. Example: "12345" + */ public UserFull getUserById(String userId) { return getUserById(userId, new GetUserByIdQueryParams(), new GetUserByIdHeaders()); } + /** + * Retrieves information about a user in the enterprise. + * + *

    The application and the authenticated user need to have the permission to look up users in + * the entire enterprise. + * + *

    This endpoint also returns a limited set of information for external users who are + * collaborated on content owned by the enterprise for authenticated users with the right scopes. + * In this case, disallowed fields will return null instead. + * + * @param userId The ID of the user. Example: "12345" + * @param queryParams Query parameters of getUserById method + */ public UserFull getUserById(String userId, GetUserByIdQueryParams queryParams) { return getUserById(userId, queryParams, new GetUserByIdHeaders()); } + /** + * Retrieves information about a user in the enterprise. + * + *

    The application and the authenticated user need to have the permission to look up users in + * the entire enterprise. + * + *

    This endpoint also returns a limited set of information for external users who are + * collaborated on content owned by the enterprise for authenticated users with the right scopes. + * In this case, disallowed fields will return null instead. + * + * @param userId The ID of the user. Example: "12345" + * @param headers Headers of getUserById method + */ public UserFull getUserById(String userId, GetUserByIdHeaders headers) { return getUserById(userId, new GetUserByIdQueryParams(), headers); } + /** + * Retrieves information about a user in the enterprise. + * + *

    The application and the authenticated user need to have the permission to look up users in + * the entire enterprise. + * + *

    This endpoint also returns a limited set of information for external users who are + * collaborated on content owned by the enterprise for authenticated users with the right scopes. + * In this case, disallowed fields will return null instead. + * + * @param userId The ID of the user. Example: "12345" + * @param queryParams Query parameters of getUserById method + * @param headers Headers of getUserById method + */ public UserFull getUserById( String userId, GetUserByIdQueryParams queryParams, GetUserByIdHeaders headers) { Map queryParamsMap = @@ -182,6 +348,12 @@ public UserFull getUserById( return JsonManager.deserialize(response.getData(), UserFull.class); } + /** + * Updates a managed or app user in an enterprise. This endpoint is only available to users and + * applications with the right admin permissions. + * + * @param userId The ID of the user. Example: "12345" + */ public UserFull updateUserById(String userId) { return updateUserById( userId, @@ -190,36 +362,90 @@ public UserFull updateUserById(String userId) { new UpdateUserByIdHeaders()); } + /** + * Updates a managed or app user in an enterprise. This endpoint is only available to users and + * applications with the right admin permissions. + * + * @param userId The ID of the user. Example: "12345" + * @param requestBody Request body of updateUserById method + */ public UserFull updateUserById(String userId, UpdateUserByIdRequestBody requestBody) { return updateUserById( userId, requestBody, new UpdateUserByIdQueryParams(), new UpdateUserByIdHeaders()); } + /** + * Updates a managed or app user in an enterprise. This endpoint is only available to users and + * applications with the right admin permissions. + * + * @param userId The ID of the user. Example: "12345" + * @param queryParams Query parameters of updateUserById method + */ public UserFull updateUserById(String userId, UpdateUserByIdQueryParams queryParams) { return updateUserById( userId, new UpdateUserByIdRequestBody(), queryParams, new UpdateUserByIdHeaders()); } + /** + * Updates a managed or app user in an enterprise. This endpoint is only available to users and + * applications with the right admin permissions. + * + * @param userId The ID of the user. Example: "12345" + * @param requestBody Request body of updateUserById method + * @param queryParams Query parameters of updateUserById method + */ public UserFull updateUserById( String userId, UpdateUserByIdRequestBody requestBody, UpdateUserByIdQueryParams queryParams) { return updateUserById(userId, requestBody, queryParams, new UpdateUserByIdHeaders()); } + /** + * Updates a managed or app user in an enterprise. This endpoint is only available to users and + * applications with the right admin permissions. + * + * @param userId The ID of the user. Example: "12345" + * @param headers Headers of updateUserById method + */ public UserFull updateUserById(String userId, UpdateUserByIdHeaders headers) { return updateUserById( userId, new UpdateUserByIdRequestBody(), new UpdateUserByIdQueryParams(), headers); } + /** + * Updates a managed or app user in an enterprise. This endpoint is only available to users and + * applications with the right admin permissions. + * + * @param userId The ID of the user. Example: "12345" + * @param requestBody Request body of updateUserById method + * @param headers Headers of updateUserById method + */ public UserFull updateUserById( String userId, UpdateUserByIdRequestBody requestBody, UpdateUserByIdHeaders headers) { return updateUserById(userId, requestBody, new UpdateUserByIdQueryParams(), headers); } + /** + * Updates a managed or app user in an enterprise. This endpoint is only available to users and + * applications with the right admin permissions. + * + * @param userId The ID of the user. Example: "12345" + * @param queryParams Query parameters of updateUserById method + * @param headers Headers of updateUserById method + */ public UserFull updateUserById( String userId, UpdateUserByIdQueryParams queryParams, UpdateUserByIdHeaders headers) { return updateUserById(userId, new UpdateUserByIdRequestBody(), queryParams, headers); } + /** + * Updates a managed or app user in an enterprise. This endpoint is only available to users and + * applications with the right admin permissions. + * + * @param userId The ID of the user. Example: "12345" + * @param requestBody Request body of updateUserById method + * @param queryParams Query parameters of updateUserById method + * @param headers Headers of updateUserById method + */ public UserFull updateUserById( String userId, UpdateUserByIdRequestBody requestBody, @@ -250,18 +476,46 @@ public UserFull updateUserById( return JsonManager.deserialize(response.getData(), UserFull.class); } + /** + * Deletes a user. By default this will fail if the user still owns any content. Move their owned + * content first before proceeding, or use the `force` field to delete the user and their files. + * + * @param userId The ID of the user. Example: "12345" + */ public void deleteUserById(String userId) { deleteUserById(userId, new DeleteUserByIdQueryParams(), new DeleteUserByIdHeaders()); } + /** + * Deletes a user. By default this will fail if the user still owns any content. Move their owned + * content first before proceeding, or use the `force` field to delete the user and their files. + * + * @param userId The ID of the user. Example: "12345" + * @param queryParams Query parameters of deleteUserById method + */ public void deleteUserById(String userId, DeleteUserByIdQueryParams queryParams) { deleteUserById(userId, queryParams, new DeleteUserByIdHeaders()); } + /** + * Deletes a user. By default this will fail if the user still owns any content. Move their owned + * content first before proceeding, or use the `force` field to delete the user and their files. + * + * @param userId The ID of the user. Example: "12345" + * @param headers Headers of deleteUserById method + */ public void deleteUserById(String userId, DeleteUserByIdHeaders headers) { deleteUserById(userId, new DeleteUserByIdQueryParams(), headers); } + /** + * Deletes a user. By default this will fail if the user still owns any content. Move their owned + * content first before proceeding, or use the `force` field to delete the user and their files. + * + * @param userId The ID of the user. Example: "12345" + * @param queryParams Query parameters of deleteUserById method + * @param headers Headers of deleteUserById method + */ public void deleteUserById( String userId, DeleteUserByIdQueryParams queryParams, DeleteUserByIdHeaders headers) { Map queryParamsMap = diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookHeaders.java b/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookHeaders.java index 5ad926cc3..8fb782e16 100644 --- a/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookHeaders.java @@ -6,6 +6,7 @@ public class CreateWebhookHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateWebhookHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBody.java b/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBody.java index ecb6193ef..075a252d2 100644 --- a/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBody.java @@ -22,10 +22,13 @@ @JsonFilter("nullablePropertyFilter") public class CreateWebhookRequestBody extends SerializableObject { + /** The item that will trigger the webhook. */ protected final CreateWebhookRequestBodyTargetField target; + /** The URL that is notified by this webhook. */ protected final String address; + /** An array of event names that this webhook is to be triggered for. */ @JsonDeserialize(using = TriggersDeserializer.class) @JsonSerialize(using = TriggersSerializer.class) protected final List> triggers; diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTargetField.java b/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTargetField.java index 2579f29ae..ff63c1540 100644 --- a/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTargetField.java +++ b/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTargetField.java @@ -11,8 +11,10 @@ @JsonFilter("nullablePropertyFilter") public class CreateWebhookRequestBodyTargetField extends SerializableObject { + /** The ID of the item to trigger a webhook. */ protected String id; + /** The type of item to trigger a webhook. */ @JsonDeserialize( using = CreateWebhookRequestBodyTargetTypeField diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/DeleteWebhookByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/webhooks/DeleteWebhookByIdHeaders.java index 697f1d572..fb2f926bb 100644 --- a/src/main/java/com/box/sdkgen/managers/webhooks/DeleteWebhookByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/webhooks/DeleteWebhookByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteWebhookByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteWebhookByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhookByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhookByIdHeaders.java index 4d9f05362..861dec777 100644 --- a/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhookByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhookByIdHeaders.java @@ -6,6 +6,7 @@ public class GetWebhookByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetWebhookByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhooksHeaders.java b/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhooksHeaders.java index f7e3a11ef..6152e7cb3 100644 --- a/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhooksHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhooksHeaders.java @@ -6,6 +6,7 @@ public class GetWebhooksHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetWebhooksHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhooksQueryParams.java b/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhooksQueryParams.java index 95b38dc5a..9198affdb 100644 --- a/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhooksQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhooksQueryParams.java @@ -2,8 +2,15 @@ public class GetWebhooksQueryParams { + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; + /** The maximum number of items to return per page. */ public Long limit; public GetWebhooksQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdHeaders.java index 2a2883371..adec28643 100644 --- a/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdHeaders.java @@ -6,6 +6,7 @@ public class UpdateWebhookByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateWebhookByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBody.java index f823c820c..9f1088592 100644 --- a/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBody.java @@ -22,10 +22,13 @@ @JsonFilter("nullablePropertyFilter") public class UpdateWebhookByIdRequestBody extends SerializableObject { + /** The item that will trigger the webhook. */ protected UpdateWebhookByIdRequestBodyTargetField target; + /** The URL that is notified by this webhook. */ protected String address; + /** An array of event names that this webhook is to be triggered for. */ @JsonDeserialize(using = TriggersDeserializer.class) @JsonSerialize(using = TriggersSerializer.class) protected List> triggers; diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTargetField.java b/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTargetField.java index 5f8d97f43..17f5bed68 100644 --- a/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTargetField.java +++ b/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTargetField.java @@ -11,8 +11,10 @@ @JsonFilter("nullablePropertyFilter") public class UpdateWebhookByIdRequestBodyTargetField extends SerializableObject { + /** The ID of the item to trigger a webhook. */ protected String id; + /** The type of item to trigger a webhook. */ @JsonDeserialize( using = UpdateWebhookByIdRequestBodyTargetTypeField diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/WebhooksManager.java b/src/main/java/com/box/sdkgen/managers/webhooks/WebhooksManager.java index b03488449..339ee6beb 100644 --- a/src/main/java/com/box/sdkgen/managers/webhooks/WebhooksManager.java +++ b/src/main/java/com/box/sdkgen/managers/webhooks/WebhooksManager.java @@ -37,18 +37,53 @@ protected WebhooksManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Returns all defined webhooks for the requesting application. + * + *

    This API only returns webhooks that are applied to files or folders that are owned by the + * authenticated user. This means that an admin can not see webhooks created by a service account + * unless the admin has access to those folders, and vice versa. + */ public Webhooks getWebhooks() { return getWebhooks(new GetWebhooksQueryParams(), new GetWebhooksHeaders()); } + /** + * Returns all defined webhooks for the requesting application. + * + *

    This API only returns webhooks that are applied to files or folders that are owned by the + * authenticated user. This means that an admin can not see webhooks created by a service account + * unless the admin has access to those folders, and vice versa. + * + * @param queryParams Query parameters of getWebhooks method + */ public Webhooks getWebhooks(GetWebhooksQueryParams queryParams) { return getWebhooks(queryParams, new GetWebhooksHeaders()); } + /** + * Returns all defined webhooks for the requesting application. + * + *

    This API only returns webhooks that are applied to files or folders that are owned by the + * authenticated user. This means that an admin can not see webhooks created by a service account + * unless the admin has access to those folders, and vice versa. + * + * @param headers Headers of getWebhooks method + */ public Webhooks getWebhooks(GetWebhooksHeaders headers) { return getWebhooks(new GetWebhooksQueryParams(), headers); } + /** + * Returns all defined webhooks for the requesting application. + * + *

    This API only returns webhooks that are applied to files or folders that are owned by the + * authenticated user. This means that an admin can not see webhooks created by a service account + * unless the admin has access to those folders, and vice versa. + * + * @param queryParams Query parameters of getWebhooks method + * @param headers Headers of getWebhooks method + */ public Webhooks getWebhooks(GetWebhooksQueryParams queryParams, GetWebhooksHeaders headers) { Map queryParamsMap = prepareParams( @@ -73,10 +108,21 @@ public Webhooks getWebhooks(GetWebhooksQueryParams queryParams, GetWebhooksHeade return JsonManager.deserialize(response.getData(), Webhooks.class); } + /** + * Creates a webhook. + * + * @param requestBody Request body of createWebhook method + */ public Webhook createWebhook(CreateWebhookRequestBody requestBody) { return createWebhook(requestBody, new CreateWebhookHeaders()); } + /** + * Creates a webhook. + * + * @param requestBody Request body of createWebhook method + * @param headers Headers of createWebhook method + */ public Webhook createWebhook(CreateWebhookRequestBody requestBody, CreateWebhookHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = @@ -97,10 +143,21 @@ public Webhook createWebhook(CreateWebhookRequestBody requestBody, CreateWebhook return JsonManager.deserialize(response.getData(), Webhook.class); } + /** + * Retrieves a specific webhook. + * + * @param webhookId The ID of the webhook. Example: "3321123" + */ public Webhook getWebhookById(String webhookId) { return getWebhookById(webhookId, new GetWebhookByIdHeaders()); } + /** + * Retrieves a specific webhook. + * + * @param webhookId The ID of the webhook. Example: "3321123" + * @param headers Headers of getWebhookById method + */ public Webhook getWebhookById(String webhookId, GetWebhookByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = @@ -122,19 +179,43 @@ public Webhook getWebhookById(String webhookId, GetWebhookByIdHeaders headers) { return JsonManager.deserialize(response.getData(), Webhook.class); } + /** + * Updates a webhook. + * + * @param webhookId The ID of the webhook. Example: "3321123" + */ public Webhook updateWebhookById(String webhookId) { return updateWebhookById( webhookId, new UpdateWebhookByIdRequestBody(), new UpdateWebhookByIdHeaders()); } + /** + * Updates a webhook. + * + * @param webhookId The ID of the webhook. Example: "3321123" + * @param requestBody Request body of updateWebhookById method + */ public Webhook updateWebhookById(String webhookId, UpdateWebhookByIdRequestBody requestBody) { return updateWebhookById(webhookId, requestBody, new UpdateWebhookByIdHeaders()); } + /** + * Updates a webhook. + * + * @param webhookId The ID of the webhook. Example: "3321123" + * @param headers Headers of updateWebhookById method + */ public Webhook updateWebhookById(String webhookId, UpdateWebhookByIdHeaders headers) { return updateWebhookById(webhookId, new UpdateWebhookByIdRequestBody(), headers); } + /** + * Updates a webhook. + * + * @param webhookId The ID of the webhook. Example: "3321123" + * @param requestBody Request body of updateWebhookById method + * @param headers Headers of updateWebhookById method + */ public Webhook updateWebhookById( String webhookId, UpdateWebhookByIdRequestBody requestBody, @@ -161,10 +242,21 @@ public Webhook updateWebhookById( return JsonManager.deserialize(response.getData(), Webhook.class); } + /** + * Deletes a webhook. + * + * @param webhookId The ID of the webhook. Example: "3321123" + */ public void deleteWebhookById(String webhookId) { deleteWebhookById(webhookId, new DeleteWebhookByIdHeaders()); } + /** + * Deletes a webhook. + * + * @param webhookId The ID of the webhook. Example: "3321123" + * @param headers Headers of deleteWebhookById method + */ public void deleteWebhookById(String webhookId, DeleteWebhookByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = @@ -185,21 +277,53 @@ public void deleteWebhookById(String webhookId, DeleteWebhookByIdHeaders headers .build()); } + /** + * Validate a webhook message by verifying the signature and the delivery timestamp + * + * @param body The request body of the webhook message + * @param headers The headers of the webhook message + * @param primaryKey The primary signature to verify the message with + */ public static boolean validateMessage( String body, Map headers, String primaryKey) { return validateMessage(body, headers, primaryKey, null, 600); } + /** + * Validate a webhook message by verifying the signature and the delivery timestamp + * + * @param body The request body of the webhook message + * @param headers The headers of the webhook message + * @param primaryKey The primary signature to verify the message with + * @param secondaryKey The secondary signature to verify the message with + */ public static boolean validateMessage( String body, Map headers, String primaryKey, String secondaryKey) { return validateMessage(body, headers, primaryKey, secondaryKey, 600); } + /** + * Validate a webhook message by verifying the signature and the delivery timestamp + * + * @param body The request body of the webhook message + * @param headers The headers of the webhook message + * @param primaryKey The primary signature to verify the message with + * @param maxAge The maximum age of the message in seconds, defaults to 10 minutes + */ public static boolean validateMessage( String body, Map headers, String primaryKey, Integer maxAge) { return validateMessage(body, headers, primaryKey, null, maxAge); } + /** + * Validate a webhook message by verifying the signature and the delivery timestamp + * + * @param body The request body of the webhook message + * @param headers The headers of the webhook message + * @param primaryKey The primary signature to verify the message with + * @param secondaryKey The secondary signature to verify the message with + * @param maxAge The maximum age of the message in seconds, defaults to 10 minutes + */ public static boolean validateMessage( String body, Map headers, diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkHeaders.java index 9a4a008b6..1713e4978 100644 --- a/src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkHeaders.java @@ -6,6 +6,7 @@ public class CreateWebLinkHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateWebLinkHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkRequestBody.java b/src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkRequestBody.java index ab5520667..93abf04a2 100644 --- a/src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkRequestBody.java @@ -9,12 +9,16 @@ @JsonFilter("nullablePropertyFilter") public class CreateWebLinkRequestBody extends SerializableObject { + /** The URL that this web link links to. Must start with `"http://"` or `"https://"`. */ protected final String url; + /** The parent folder to create the web link within. */ protected final CreateWebLinkRequestBodyParentField parent; + /** Name of the web link. Defaults to the URL if not set. */ protected String name; + /** Description of the web link. */ protected String description; public CreateWebLinkRequestBody( diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkRequestBodyParentField.java b/src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkRequestBodyParentField.java index c05a1a2d7..54d7d7581 100644 --- a/src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkRequestBodyParentField.java +++ b/src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkRequestBodyParentField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class CreateWebLinkRequestBodyParentField extends SerializableObject { + /** The ID of parent folder. */ protected final String id; public CreateWebLinkRequestBodyParentField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/DeleteWebLinkByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/weblinks/DeleteWebLinkByIdHeaders.java index 47e824501..8d3b26e66 100644 --- a/src/main/java/com/box/sdkgen/managers/weblinks/DeleteWebLinkByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/weblinks/DeleteWebLinkByIdHeaders.java @@ -6,6 +6,7 @@ public class DeleteWebLinkByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DeleteWebLinkByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/GetWebLinkByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/weblinks/GetWebLinkByIdHeaders.java index 86c963d97..71d0868fe 100644 --- a/src/main/java/com/box/sdkgen/managers/weblinks/GetWebLinkByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/weblinks/GetWebLinkByIdHeaders.java @@ -6,8 +6,20 @@ public class GetWebLinkByIdHeaders { + /** + * The URL, and optional password, for the shared link of this item. + * + *

    This header can be used to access items that have not been explicitly shared with a user. + * + *

    Use the format `shared_link=[link]` or if a password is required then use + * `shared_link=[link]&shared_link_password=[password]`. + * + *

    This header can be used on the file or folder shared, as well as on any files or folders + * nested within the item. + */ public String boxapi; + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetWebLinkByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdHeaders.java index 8627d2cda..a42e671f4 100644 --- a/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdHeaders.java @@ -6,6 +6,7 @@ public class UpdateWebLinkByIdHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public UpdateWebLinkByIdHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBody.java index 82ffbc883..354e5146f 100644 --- a/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBody.java @@ -9,14 +9,18 @@ @JsonFilter("nullablePropertyFilter") public class UpdateWebLinkByIdRequestBody extends SerializableObject { + /** The new URL that the web link links to. Must start with `"http://"` or `"https://"`. */ protected String url; protected UpdateWebLinkByIdRequestBodyParentField parent; + /** A new name for the web link. Defaults to the URL if not set. */ protected String name; + /** A new description of the web link. */ protected String description; + /** The settings for the shared link to update. */ @JsonProperty("shared_link") protected UpdateWebLinkByIdRequestBodySharedLinkField sharedLink; diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodyParentField.java b/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodyParentField.java index 8e000f373..a4c1401b7 100644 --- a/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodyParentField.java +++ b/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodyParentField.java @@ -9,8 +9,13 @@ @JsonFilter("nullablePropertyFilter") public class UpdateWebLinkByIdRequestBodyParentField extends SerializableObject { + /** The ID of parent item. */ protected String id; + /** + * The input for `user_id` is optional. Moving to non-root folder is not allowed when `user_id` is + * present. Parent folder id should be zero when `user_id` is provided. + */ @JsonProperty("user_id") protected String userId; diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodySharedLinkField.java b/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodySharedLinkField.java index 60e3e6773..0dabfd364 100644 --- a/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodySharedLinkField.java +++ b/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodySharedLinkField.java @@ -15,6 +15,17 @@ @JsonFilter("nullablePropertyFilter") public class UpdateWebLinkByIdRequestBodySharedLinkField extends SerializableObject { + /** + * The level of access for the shared link. This can be restricted to anyone with the link + * (`open`), only people within the company (`company`) and only those who have been invited to + * the folder (`collaborators`). + * + *

    If not set, this field defaults to the access level specified by the enterprise admin. To + * create a shared link with this default setting pass the `shared_link` object with no `access` + * field, for example `{ "shared_link": {} }`. + * + *

    The `company` access level is only available to paid accounts. + */ @JsonDeserialize( using = UpdateWebLinkByIdRequestBodySharedLinkAccessField @@ -25,11 +36,28 @@ public class UpdateWebLinkByIdRequestBodySharedLinkField extends SerializableObj .UpdateWebLinkByIdRequestBodySharedLinkAccessFieldSerializer.class) protected EnumWrapper access; + /** + * The password required to access the shared link. Set the password to `null` to remove it. + * Passwords must now be at least eight characters long and include a number, upper case letter, + * or a non-numeric or non-alphabetic character. A password can only be set when `access` is set + * to `open`. + */ @Nullable protected String password; + /** + * Defines a custom vanity name to use in the shared link URL, for example + * `https://app.box.com/v/my-shared-link`. + * + *

    Custom URLs should not be used when sharing sensitive content as vanity URLs are a lot + * easier to guess than regular shared links. + */ @JsonProperty("vanity_name") protected String vanityName; + /** + * The timestamp at which this shared link will expire. This field can only be set by users with + * paid accounts. The value must be greater than the current date and time. + */ @JsonProperty("unshared_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/WebLinksManager.java b/src/main/java/com/box/sdkgen/managers/weblinks/WebLinksManager.java index cdf79b6c6..a922e6a21 100644 --- a/src/main/java/com/box/sdkgen/managers/weblinks/WebLinksManager.java +++ b/src/main/java/com/box/sdkgen/managers/weblinks/WebLinksManager.java @@ -30,10 +30,21 @@ protected WebLinksManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Creates a web link object within a folder. + * + * @param requestBody Request body of createWebLink method + */ public WebLink createWebLink(CreateWebLinkRequestBody requestBody) { return createWebLink(requestBody, new CreateWebLinkHeaders()); } + /** + * Creates a web link object within a folder. + * + * @param requestBody Request body of createWebLink method + * @param headers Headers of createWebLink method + */ public WebLink createWebLink(CreateWebLinkRequestBody requestBody, CreateWebLinkHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = @@ -54,10 +65,21 @@ public WebLink createWebLink(CreateWebLinkRequestBody requestBody, CreateWebLink return JsonManager.deserialize(response.getData(), WebLink.class); } + /** + * Retrieve information about a web link. + * + * @param webLinkId The ID of the web link. Example: "12345" + */ public WebLink getWebLinkById(String webLinkId) { return getWebLinkById(webLinkId, new GetWebLinkByIdHeaders()); } + /** + * Retrieve information about a web link. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param headers Headers of getWebLinkById method + */ public WebLink getWebLinkById(String webLinkId, GetWebLinkByIdHeaders headers) { Map headersMap = prepareParams( @@ -83,19 +105,43 @@ public WebLink getWebLinkById(String webLinkId, GetWebLinkByIdHeaders headers) { return JsonManager.deserialize(response.getData(), WebLink.class); } + /** + * Updates a web link object. + * + * @param webLinkId The ID of the web link. Example: "12345" + */ public WebLink updateWebLinkById(String webLinkId) { return updateWebLinkById( webLinkId, new UpdateWebLinkByIdRequestBody(), new UpdateWebLinkByIdHeaders()); } + /** + * Updates a web link object. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param requestBody Request body of updateWebLinkById method + */ public WebLink updateWebLinkById(String webLinkId, UpdateWebLinkByIdRequestBody requestBody) { return updateWebLinkById(webLinkId, requestBody, new UpdateWebLinkByIdHeaders()); } + /** + * Updates a web link object. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param headers Headers of updateWebLinkById method + */ public WebLink updateWebLinkById(String webLinkId, UpdateWebLinkByIdHeaders headers) { return updateWebLinkById(webLinkId, new UpdateWebLinkByIdRequestBody(), headers); } + /** + * Updates a web link object. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param requestBody Request body of updateWebLinkById method + * @param headers Headers of updateWebLinkById method + */ public WebLink updateWebLinkById( String webLinkId, UpdateWebLinkByIdRequestBody requestBody, @@ -122,10 +168,21 @@ public WebLink updateWebLinkById( return JsonManager.deserialize(response.getData(), WebLink.class); } + /** + * Deletes a web link. + * + * @param webLinkId The ID of the web link. Example: "12345" + */ public void deleteWebLinkById(String webLinkId) { deleteWebLinkById(webLinkId, new DeleteWebLinkByIdHeaders()); } + /** + * Deletes a web link. + * + * @param webLinkId The ID of the web link. Example: "12345" + * @param headers Headers of deleteWebLinkById method + */ public void deleteWebLinkById(String webLinkId, DeleteWebLinkByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = diff --git a/src/main/java/com/box/sdkgen/managers/workflows/GetWorkflowsHeaders.java b/src/main/java/com/box/sdkgen/managers/workflows/GetWorkflowsHeaders.java index ca81c7d74..50140ab7e 100644 --- a/src/main/java/com/box/sdkgen/managers/workflows/GetWorkflowsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/workflows/GetWorkflowsHeaders.java @@ -6,6 +6,7 @@ public class GetWorkflowsHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetWorkflowsHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/workflows/GetWorkflowsQueryParams.java b/src/main/java/com/box/sdkgen/managers/workflows/GetWorkflowsQueryParams.java index 9da961abf..189761910 100644 --- a/src/main/java/com/box/sdkgen/managers/workflows/GetWorkflowsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/workflows/GetWorkflowsQueryParams.java @@ -2,12 +2,29 @@ public class GetWorkflowsQueryParams { + /** + * The unique identifier that represent a folder. + * + *

    The ID for any folder can be determined by visiting this folder in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the + * `folder_id` is `123`. + * + *

    The root folder of a Box account is always represented by the ID `0`. + */ public final String folderId; + /** Type of trigger to search for. */ public String triggerType; + /** The maximum number of items to return per page. */ public Long limit; + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ public String marker; public GetWorkflowsQueryParams(String folderId) { diff --git a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowHeaders.java b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowHeaders.java index 0550781ab..4b05afb75 100644 --- a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowHeaders.java @@ -6,6 +6,7 @@ public class StartWorkflowHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public StartWorkflowHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBody.java b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBody.java index 78600e152..e0a6981f0 100644 --- a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBody.java @@ -14,18 +14,26 @@ @JsonFilter("nullablePropertyFilter") public class StartWorkflowRequestBody extends SerializableObject { + /** The type of the parameters object. */ @JsonDeserialize( using = StartWorkflowRequestBodyTypeField.StartWorkflowRequestBodyTypeFieldDeserializer.class) @JsonSerialize( using = StartWorkflowRequestBodyTypeField.StartWorkflowRequestBodyTypeFieldSerializer.class) protected EnumWrapper type; + /** The flow that will be triggered. */ protected final StartWorkflowRequestBodyFlowField flow; + /** + * The array of files for which the workflow should start. All files must be in the workflow's + * configured folder. + */ protected final List files; + /** The folder object for which the workflow is configured. */ protected final StartWorkflowRequestBodyFolderField folder; + /** A configurable outcome the workflow should complete. */ protected List outcomes; public StartWorkflowRequestBody( diff --git a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFilesField.java b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFilesField.java index 4e9076374..9fa9a843e 100644 --- a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFilesField.java +++ b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFilesField.java @@ -11,6 +11,7 @@ @JsonFilter("nullablePropertyFilter") public class StartWorkflowRequestBodyFilesField extends SerializableObject { + /** The type of the file object. */ @JsonDeserialize( using = StartWorkflowRequestBodyFilesTypeField.StartWorkflowRequestBodyFilesTypeFieldDeserializer @@ -21,6 +22,7 @@ public class StartWorkflowRequestBodyFilesField extends SerializableObject { .class) protected EnumWrapper type; + /** The id of the file. */ protected String id; public StartWorkflowRequestBodyFilesField() { diff --git a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFlowField.java b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFlowField.java index cfcbb79d3..48a7384c8 100644 --- a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFlowField.java +++ b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFlowField.java @@ -8,8 +8,10 @@ @JsonFilter("nullablePropertyFilter") public class StartWorkflowRequestBodyFlowField extends SerializableObject { + /** The type of the flow object. */ protected String type; + /** The id of the flow. */ protected String id; public StartWorkflowRequestBodyFlowField() { diff --git a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFolderField.java b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFolderField.java index fa3bbdd50..01ff4a3e1 100644 --- a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFolderField.java +++ b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFolderField.java @@ -11,6 +11,7 @@ @JsonFilter("nullablePropertyFilter") public class StartWorkflowRequestBodyFolderField extends SerializableObject { + /** The type of the folder object. */ @JsonDeserialize( using = StartWorkflowRequestBodyFolderTypeField @@ -21,6 +22,7 @@ public class StartWorkflowRequestBodyFolderField extends SerializableObject { .class) protected EnumWrapper type; + /** The id of the folder. */ protected String id; public StartWorkflowRequestBodyFolderField() { diff --git a/src/main/java/com/box/sdkgen/managers/workflows/WorkflowsManager.java b/src/main/java/com/box/sdkgen/managers/workflows/WorkflowsManager.java index ee62d08a0..d80ff14c0 100644 --- a/src/main/java/com/box/sdkgen/managers/workflows/WorkflowsManager.java +++ b/src/main/java/com/box/sdkgen/managers/workflows/WorkflowsManager.java @@ -30,10 +30,29 @@ protected WorkflowsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Returns list of workflows that act on a given `folder ID`, and have a flow with a trigger type + * of `WORKFLOW_MANUAL_START`. + * + *

    You application must be authorized to use the `Manage Box Relay` application scope within + * the developer console in to use this endpoint. + * + * @param queryParams Query parameters of getWorkflows method + */ public Workflows getWorkflows(GetWorkflowsQueryParams queryParams) { return getWorkflows(queryParams, new GetWorkflowsHeaders()); } + /** + * Returns list of workflows that act on a given `folder ID`, and have a flow with a trigger type + * of `WORKFLOW_MANUAL_START`. + * + *

    You application must be authorized to use the `Manage Box Relay` application scope within + * the developer console in to use this endpoint. + * + * @param queryParams Query parameters of getWorkflows method + * @param headers Headers of getWorkflows method + */ public Workflows getWorkflows(GetWorkflowsQueryParams queryParams, GetWorkflowsHeaders headers) { Map queryParamsMap = prepareParams( @@ -60,10 +79,29 @@ public Workflows getWorkflows(GetWorkflowsQueryParams queryParams, GetWorkflowsH return JsonManager.deserialize(response.getData(), Workflows.class); } + /** + * Initiates a flow with a trigger type of `WORKFLOW_MANUAL_START`. + * + *

    You application must be authorized to use the `Manage Box Relay` application scope within + * the developer console. + * + * @param workflowId The ID of the workflow. Example: "12345" + * @param requestBody Request body of startWorkflow method + */ public void startWorkflow(String workflowId, StartWorkflowRequestBody requestBody) { startWorkflow(workflowId, requestBody, new StartWorkflowHeaders()); } + /** + * Initiates a flow with a trigger type of `WORKFLOW_MANUAL_START`. + * + *

    You application must be authorized to use the `Manage Box Relay` application scope within + * the developer console. + * + * @param workflowId The ID of the workflow. Example: "12345" + * @param requestBody Request body of startWorkflow method + * @param headers Headers of startWorkflow method + */ public void startWorkflow( String workflowId, StartWorkflowRequestBody requestBody, StartWorkflowHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); diff --git a/src/main/java/com/box/sdkgen/managers/zipdownloads/CreateZipDownloadHeaders.java b/src/main/java/com/box/sdkgen/managers/zipdownloads/CreateZipDownloadHeaders.java index 12c28973d..a8bf9586f 100644 --- a/src/main/java/com/box/sdkgen/managers/zipdownloads/CreateZipDownloadHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/zipdownloads/CreateZipDownloadHeaders.java @@ -6,6 +6,7 @@ public class CreateZipDownloadHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public CreateZipDownloadHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/zipdownloads/DownloadZipHeaders.java b/src/main/java/com/box/sdkgen/managers/zipdownloads/DownloadZipHeaders.java index 963b8074a..4a553dc31 100644 --- a/src/main/java/com/box/sdkgen/managers/zipdownloads/DownloadZipHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/zipdownloads/DownloadZipHeaders.java @@ -6,6 +6,7 @@ public class DownloadZipHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public DownloadZipHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/zipdownloads/GetZipDownloadContentHeaders.java b/src/main/java/com/box/sdkgen/managers/zipdownloads/GetZipDownloadContentHeaders.java index 9a447d0a2..06d507ed7 100644 --- a/src/main/java/com/box/sdkgen/managers/zipdownloads/GetZipDownloadContentHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/zipdownloads/GetZipDownloadContentHeaders.java @@ -6,6 +6,7 @@ public class GetZipDownloadContentHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetZipDownloadContentHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/zipdownloads/GetZipDownloadStatusHeaders.java b/src/main/java/com/box/sdkgen/managers/zipdownloads/GetZipDownloadStatusHeaders.java index dc03a2e10..e48f5b4f7 100644 --- a/src/main/java/com/box/sdkgen/managers/zipdownloads/GetZipDownloadStatusHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/zipdownloads/GetZipDownloadStatusHeaders.java @@ -6,6 +6,7 @@ public class GetZipDownloadStatusHeaders { + /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; public GetZipDownloadStatusHeaders() { diff --git a/src/main/java/com/box/sdkgen/managers/zipdownloads/ZipDownloadsManager.java b/src/main/java/com/box/sdkgen/managers/zipdownloads/ZipDownloadsManager.java index 40d2ad2ef..ea3ec64cf 100644 --- a/src/main/java/com/box/sdkgen/managers/zipdownloads/ZipDownloadsManager.java +++ b/src/main/java/com/box/sdkgen/managers/zipdownloads/ZipDownloadsManager.java @@ -31,10 +31,43 @@ protected ZipDownloadsManager(Builder builder) { this.networkSession = builder.networkSession; } + /** + * Creates a request to download multiple files and folders as a single `zip` archive file. This + * API does not return the archive but instead performs all the checks to ensure that the user has + * access to all the items, and then returns a `download_url` and a `status_url` that can be used + * to download the archive. + * + *

    The limit for an archive is either the Account's upload limit or 10,000 files, whichever is + * met first. + * + *

    **Note**: Downloading a large file can be affected by various factors such as distance, + * network latency, bandwidth, and congestion, as well as packet loss ratio and current server + * load. For these reasons we recommend that a maximum ZIP archive total size does not exceed + * 25GB. + * + * @param requestBody Request body of createZipDownload method + */ public ZipDownload createZipDownload(ZipDownloadRequest requestBody) { return createZipDownload(requestBody, new CreateZipDownloadHeaders()); } + /** + * Creates a request to download multiple files and folders as a single `zip` archive file. This + * API does not return the archive but instead performs all the checks to ensure that the user has + * access to all the items, and then returns a `download_url` and a `status_url` that can be used + * to download the archive. + * + *

    The limit for an archive is either the Account's upload limit or 10,000 files, whichever is + * met first. + * + *

    **Note**: Downloading a large file can be affected by various factors such as distance, + * network latency, bandwidth, and congestion, as well as packet loss ratio and current server + * load. For these reasons we recommend that a maximum ZIP archive total size does not exceed + * 25GB. + * + * @param requestBody Request body of createZipDownload method + * @param headers Headers of createZipDownload method + */ public ZipDownload createZipDownload( ZipDownloadRequest requestBody, CreateZipDownloadHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -58,10 +91,43 @@ public ZipDownload createZipDownload( return JsonManager.deserialize(response.getData(), ZipDownload.class); } + /** + * Returns the contents of a `zip` archive in binary format. This URL does not require any form of + * authentication and could be used in a user's browser to download the archive to a user's + * device. + * + *

    By default, this URL is only valid for a few seconds from the creation of the request for + * this archive. Once a download has started it can not be stopped and resumed, instead a new + * request for a zip archive would need to be created. + * + *

    The URL of this endpoint should not be considered as fixed. Instead, use the [Create zip + * download](e://post_zip_downloads) API to request to create a `zip` archive, and then follow the + * `download_url` field in the response to this endpoint. + * + * @param downloadUrl The URL that can be used to download created `zip` archive. Example: + * `https://dl.boxcloud.com/2.0/zip_downloads/29l00nfxDyHOt7RphI9zT_w==nDnZEDjY2S8iEWWCHEEiptFxwoWojjlibZjJ6geuE5xnXENDTPxzgbks_yY=/content` + */ public InputStream getZipDownloadContent(String downloadUrl) { return getZipDownloadContent(downloadUrl, new GetZipDownloadContentHeaders()); } + /** + * Returns the contents of a `zip` archive in binary format. This URL does not require any form of + * authentication and could be used in a user's browser to download the archive to a user's + * device. + * + *

    By default, this URL is only valid for a few seconds from the creation of the request for + * this archive. Once a download has started it can not be stopped and resumed, instead a new + * request for a zip archive would need to be created. + * + *

    The URL of this endpoint should not be considered as fixed. Instead, use the [Create zip + * download](e://post_zip_downloads) API to request to create a `zip` archive, and then follow the + * `download_url` field in the response to this endpoint. + * + * @param downloadUrl The URL that can be used to download created `zip` archive. Example: + * `https://dl.boxcloud.com/2.0/zip_downloads/29l00nfxDyHOt7RphI9zT_w==nDnZEDjY2S8iEWWCHEEiptFxwoWojjlibZjJ6geuE5xnXENDTPxzgbks_yY=/content` + * @param headers Headers of getZipDownloadContent method + */ public InputStream getZipDownloadContent( String downloadUrl, GetZipDownloadContentHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -78,10 +144,41 @@ public InputStream getZipDownloadContent( return response.getContent(); } + /** + * Returns the download status of a `zip` archive, allowing an application to inspect the progress + * of the download as well as the number of items that might have been skipped. + * + *

    This endpoint can only be accessed once the download has started. Subsequently this endpoint + * is valid for 12 hours from the start of the download. + * + *

    The URL of this endpoint should not be considered as fixed. Instead, use the [Create zip + * download](e://post_zip_downloads) API to request to create a `zip` archive, and then follow the + * `status_url` field in the response to this endpoint. + * + * @param statusUrl The URL that can be used to get the status of the `zip` archive being + * downloaded. Example: + * `https://dl.boxcloud.com/2.0/zip_downloads/29l00nfxDyHOt7RphI9zT_w==nDnZEDjY2S8iEWWCHEEiptFxwoWojjlibZjJ6geuE5xnXENDTPxzgbks_yY=/status` + */ public ZipDownloadStatus getZipDownloadStatus(String statusUrl) { return getZipDownloadStatus(statusUrl, new GetZipDownloadStatusHeaders()); } + /** + * Returns the download status of a `zip` archive, allowing an application to inspect the progress + * of the download as well as the number of items that might have been skipped. + * + *

    This endpoint can only be accessed once the download has started. Subsequently this endpoint + * is valid for 12 hours from the start of the download. + * + *

    The URL of this endpoint should not be considered as fixed. Instead, use the [Create zip + * download](e://post_zip_downloads) API to request to create a `zip` archive, and then follow the + * `status_url` field in the response to this endpoint. + * + * @param statusUrl The URL that can be used to get the status of the `zip` archive being + * downloaded. Example: + * `https://dl.boxcloud.com/2.0/zip_downloads/29l00nfxDyHOt7RphI9zT_w==nDnZEDjY2S8iEWWCHEEiptFxwoWojjlibZjJ6geuE5xnXENDTPxzgbks_yY=/status` + * @param headers Headers of getZipDownloadStatus method + */ public ZipDownloadStatus getZipDownloadStatus( String statusUrl, GetZipDownloadStatusHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); @@ -98,10 +195,21 @@ public ZipDownloadStatus getZipDownloadStatus( return JsonManager.deserialize(response.getData(), ZipDownloadStatus.class); } + /** + * Creates a zip and downloads its content + * + * @param requestBody Zip download request body + */ public InputStream downloadZip(ZipDownloadRequest requestBody) { return downloadZip(requestBody, new DownloadZipHeaders()); } + /** + * Creates a zip and downloads its content + * + * @param requestBody Zip download request body + * @param headers Headers of zip download method + */ public InputStream downloadZip(ZipDownloadRequest requestBody, DownloadZipHeaders headers) { ZipDownload zipDownloadSession = this.createZipDownload( diff --git a/src/main/java/com/box/sdkgen/networking/fetchoptions/FetchOptions.java b/src/main/java/com/box/sdkgen/networking/fetchoptions/FetchOptions.java index f0c6290a4..7cab341fa 100644 --- a/src/main/java/com/box/sdkgen/networking/fetchoptions/FetchOptions.java +++ b/src/main/java/com/box/sdkgen/networking/fetchoptions/FetchOptions.java @@ -10,28 +10,43 @@ public class FetchOptions { + /** URL of the request */ public final String url; + /** HTTP verb of the request */ public final String method; + /** HTTP query parameters */ public Map params; + /** HTTP headers */ public Map headers; + /** Request body of the request */ public JsonNode data; + /** Stream data of the request */ public InputStream fileStream; + /** Multipart data of the request */ public List multipartData; + /** Content type of the request body */ public String contentType; + /** Expected response format */ public EnumWrapper responseFormat; + /** Authentication object */ public Authentication auth; + /** Network session object */ public NetworkSession networkSession; + /** + * A boolean value indicate if the request should follow redirects. Defaults to True. Not + * supported in Browser environment. + */ public Boolean followRedirects; public FetchOptions(String url, String method) { diff --git a/src/main/java/com/box/sdkgen/networking/fetchoptions/MultipartItem.java b/src/main/java/com/box/sdkgen/networking/fetchoptions/MultipartItem.java index fa39eed37..c4288eccc 100644 --- a/src/main/java/com/box/sdkgen/networking/fetchoptions/MultipartItem.java +++ b/src/main/java/com/box/sdkgen/networking/fetchoptions/MultipartItem.java @@ -3,16 +3,22 @@ import com.fasterxml.jackson.databind.JsonNode; import java.io.InputStream; +/** Multipart item for multipart data */ public class MultipartItem { + /** Name of the part */ public final String partName; + /** Data of the part */ public JsonNode data; + /** File stream of the part */ public InputStream fileStream; + /** File name of the part */ public String fileName; + /** Content type of the part */ public String contentType; public MultipartItem(String partName) { diff --git a/src/main/java/com/box/sdkgen/networking/fetchresponse/FetchResponse.java b/src/main/java/com/box/sdkgen/networking/fetchresponse/FetchResponse.java index a15c5b1a5..92729aecb 100644 --- a/src/main/java/com/box/sdkgen/networking/fetchresponse/FetchResponse.java +++ b/src/main/java/com/box/sdkgen/networking/fetchresponse/FetchResponse.java @@ -4,16 +4,22 @@ import java.io.InputStream; import java.util.Map; +/** Response of the fetch call */ public class FetchResponse { + /** URL of the response */ public String url; + /** HTTP status code of the response */ public final int status; + /** Response body of the response */ public JsonNode data; + /** Streamed content of the response */ public InputStream content; + /** HTTP headers of the response */ public final Map headers; public FetchResponse(int status, Map headers) { diff --git a/src/main/java/com/box/sdkgen/schemas/accesstoken/AccessToken.java b/src/main/java/com/box/sdkgen/schemas/accesstoken/AccessToken.java index 1c402ccce..29b114316 100644 --- a/src/main/java/com/box/sdkgen/schemas/accesstoken/AccessToken.java +++ b/src/main/java/com/box/sdkgen/schemas/accesstoken/AccessToken.java @@ -11,26 +11,42 @@ import java.util.List; import java.util.Objects; +/** A token that can be used to make authenticated API calls. */ @JsonFilter("nullablePropertyFilter") public class AccessToken extends SerializableObject { + /** The requested access token. */ @JsonProperty("access_token") protected String accessToken; + /** The time in seconds by which this token will expire. */ @JsonProperty("expires_in") protected Long expiresIn; + /** The type of access token returned. */ @JsonDeserialize(using = AccessTokenTokenTypeField.AccessTokenTokenTypeFieldDeserializer.class) @JsonSerialize(using = AccessTokenTokenTypeField.AccessTokenTokenTypeFieldSerializer.class) @JsonProperty("token_type") protected EnumWrapper tokenType; + /** + * The permissions that this access token permits, providing a list of resources (files, folders, + * etc) and the scopes permitted for each of those resources. + */ @JsonProperty("restricted_to") protected List restrictedTo; + /** + * The refresh token for this access token, which can be used to request a new access token when + * the current one expires. + */ @JsonProperty("refresh_token") protected String refreshToken; + /** + * The type of downscoped access token returned. This is only returned if an access token has been + * downscoped. + */ @JsonDeserialize( using = AccessTokenIssuedTokenTypeField.AccessTokenIssuedTokenTypeFieldDeserializer.class) @JsonSerialize( diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentask/AiAgentAsk.java b/src/main/java/com/box/sdkgen/schemas/aiagentask/AiAgentAsk.java index 9e34bd12d..040bdbabd 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentask/AiAgentAsk.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentask/AiAgentAsk.java @@ -12,9 +12,11 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** The AI agent used to handle queries. */ @JsonFilter("nullablePropertyFilter") public class AiAgentAsk extends SerializableObject { + /** The type of AI agent used to handle queries. */ @JsonDeserialize(using = AiAgentAskTypeField.AiAgentAskTypeFieldDeserializer.class) @JsonSerialize(using = AiAgentAskTypeField.AiAgentAskTypeFieldSerializer.class) protected EnumWrapper type; diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentbasicgentool/AiAgentBasicGenTool.java b/src/main/java/com/box/sdkgen/schemas/aiagentbasicgentool/AiAgentBasicGenTool.java index a0e5e88d6..12d5ce7cd 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentbasicgentool/AiAgentBasicGenTool.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentbasicgentool/AiAgentBasicGenTool.java @@ -11,9 +11,14 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** AI agent basic tool used to generate text. */ @JsonFilter("nullablePropertyFilter") public class AiAgentBasicGenTool extends AiAgentLongTextToolTextGen { + /** + * How the content should be included in a request to the LLM. Input for `{content}` is optional, + * depending on the use. + */ @JsonProperty("content_template") protected String contentTemplate; diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttool/AiAgentBasicTextTool.java b/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttool/AiAgentBasicTextTool.java index 313b9808c..e4b085368 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttool/AiAgentBasicTextTool.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttool/AiAgentBasicTextTool.java @@ -10,12 +10,19 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** AI agent processor used to handle basic text. */ @JsonFilter("nullablePropertyFilter") public class AiAgentBasicTextTool extends AiAgentBasicTextToolBase { + /** System messages try to help the LLM "understand" its role and what it is supposed to do. */ @JsonProperty("system_message") protected String systemMessage; + /** + * The prompt template contains contextual information of the request and the user prompt. When + * passing `prompt_template` parameters, you **must include** inputs for `{user_question}` and + * `{content}`. `{current_date}` is optional, depending on the use. + */ @JsonProperty("prompt_template") protected String promptTemplate; diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttoolbase/AiAgentBasicTextToolBase.java b/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttoolbase/AiAgentBasicTextToolBase.java index c13f6e674..b6e6225a1 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttoolbase/AiAgentBasicTextToolBase.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttoolbase/AiAgentBasicTextToolBase.java @@ -11,11 +11,17 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** AI agent processor used to handle basic text. */ @JsonFilter("nullablePropertyFilter") public class AiAgentBasicTextToolBase extends SerializableObject { + /** + * The model used for the AI agent for basic text. For specific model values, see the [available + * models list](g://box-ai/supported-models). + */ protected String model; + /** The number of tokens for completion. */ @JsonProperty("num_tokens_for_completion") protected Long numTokensForCompletion; diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttooltextgen/AiAgentBasicTextToolTextGen.java b/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttooltextgen/AiAgentBasicTextToolTextGen.java index 9e732c590..efd131e7b 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttooltextgen/AiAgentBasicTextToolTextGen.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttooltextgen/AiAgentBasicTextToolTextGen.java @@ -10,12 +10,24 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** AI agent processor used to handle basic text. */ @JsonFilter("nullablePropertyFilter") public class AiAgentBasicTextToolTextGen extends AiAgentBasicTextToolBase { + /** + * System messages aim at helping the LLM understand its role and what it is supposed to do. The + * input for `{current_date}` is optional, depending on the use. + */ @JsonProperty("system_message") protected String systemMessage; + /** + * The prompt template contains contextual information of the request and the user prompt. + * + *

    When using the `prompt_template` parameter, you **must include** input for + * `{user_question}`. Inputs for `{current_date}` and `{content}` are optional, depending on the + * use. + */ @JsonProperty("prompt_template") protected String promptTemplate; diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentextract/AiAgentExtract.java b/src/main/java/com/box/sdkgen/schemas/aiagentextract/AiAgentExtract.java index 60b73387f..078955651 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentextract/AiAgentExtract.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentextract/AiAgentExtract.java @@ -11,9 +11,11 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** The AI agent to be used for extraction. */ @JsonFilter("nullablePropertyFilter") public class AiAgentExtract extends SerializableObject { + /** The type of AI agent to be used for extraction. */ @JsonDeserialize(using = AiAgentExtractTypeField.AiAgentExtractTypeFieldDeserializer.class) @JsonSerialize(using = AiAgentExtractTypeField.AiAgentExtractTypeFieldSerializer.class) protected EnumWrapper type; diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentextractstructured/AiAgentExtractStructured.java b/src/main/java/com/box/sdkgen/schemas/aiagentextractstructured/AiAgentExtractStructured.java index 129db5a75..29574d118 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentextractstructured/AiAgentExtractStructured.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentextractstructured/AiAgentExtractStructured.java @@ -11,9 +11,11 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** The AI agent to be used for structured extraction. */ @JsonFilter("nullablePropertyFilter") public class AiAgentExtractStructured extends SerializableObject { + /** The type of AI agent to be used for extraction. */ @JsonDeserialize( using = AiAgentExtractStructuredTypeField.AiAgentExtractStructuredTypeFieldDeserializer.class) @JsonSerialize( diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentinfo/AiAgentInfo.java b/src/main/java/com/box/sdkgen/schemas/aiagentinfo/AiAgentInfo.java index ececa19c8..786a0130d 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentinfo/AiAgentInfo.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentinfo/AiAgentInfo.java @@ -6,11 +6,14 @@ import java.util.List; import java.util.Objects; +/** The information on the models and processors used in the request. */ @JsonFilter("nullablePropertyFilter") public class AiAgentInfo extends SerializableObject { + /** The models used for the request. */ protected List models; + /** The processor used for the request. */ protected String processor; public AiAgentInfo() { diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentinfo/AiAgentInfoModelsField.java b/src/main/java/com/box/sdkgen/schemas/aiagentinfo/AiAgentInfoModelsField.java index eb4883d49..4164bdaac 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentinfo/AiAgentInfoModelsField.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentinfo/AiAgentInfoModelsField.java @@ -9,10 +9,13 @@ @JsonFilter("nullablePropertyFilter") public class AiAgentInfoModelsField extends SerializableObject { + /** The name of the model used for the request. */ protected String name; + /** The provider that owns the model used for the request. */ protected String provider; + /** The supported purpose utilized by the model used for the request. */ @JsonProperty("supported_purpose") protected String supportedPurpose; diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttool/AiAgentLongTextTool.java b/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttool/AiAgentLongTextTool.java index 03c6a83f0..20bdaa9c8 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttool/AiAgentLongTextTool.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttool/AiAgentLongTextTool.java @@ -9,6 +9,7 @@ import com.fasterxml.jackson.annotation.JsonFilter; import java.util.Objects; +/** AI agent processor used to to handle longer text. */ @JsonFilter("nullablePropertyFilter") public class AiAgentLongTextTool extends AiAgentBasicTextTool { diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttool/AiAgentLongTextToolEmbeddingsField.java b/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttool/AiAgentLongTextToolEmbeddingsField.java index 0cea1a952..43bb5a0c8 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttool/AiAgentLongTextToolEmbeddingsField.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttool/AiAgentLongTextToolEmbeddingsField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class AiAgentLongTextToolEmbeddingsField extends SerializableObject { + /** The model used for the AI agent for calculating embeddings. */ protected String model; protected AiAgentLongTextToolEmbeddingsStrategyField strategy; diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttool/AiAgentLongTextToolEmbeddingsStrategyField.java b/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttool/AiAgentLongTextToolEmbeddingsStrategyField.java index dfb1153ea..be1f59af4 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttool/AiAgentLongTextToolEmbeddingsStrategyField.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttool/AiAgentLongTextToolEmbeddingsStrategyField.java @@ -9,8 +9,10 @@ @JsonFilter("nullablePropertyFilter") public class AiAgentLongTextToolEmbeddingsStrategyField extends SerializableObject { + /** The strategy used for the AI agent for calculating embeddings. */ protected String id; + /** The number of tokens per chunk. */ @JsonProperty("num_tokens_per_chunk") protected Long numTokensPerChunk; diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttooltextgen/AiAgentLongTextToolTextGen.java b/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttooltextgen/AiAgentLongTextToolTextGen.java index bcbe827c7..8c67f5d46 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttooltextgen/AiAgentLongTextToolTextGen.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttooltextgen/AiAgentLongTextToolTextGen.java @@ -9,6 +9,7 @@ import com.fasterxml.jackson.annotation.JsonFilter; import java.util.Objects; +/** AI agent processor used to to handle longer text. */ @JsonFilter("nullablePropertyFilter") public class AiAgentLongTextToolTextGen extends AiAgentBasicTextToolTextGen { diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttooltextgen/AiAgentLongTextToolTextGenEmbeddingsField.java b/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttooltextgen/AiAgentLongTextToolTextGenEmbeddingsField.java index 54c1b2df5..c52764fb9 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttooltextgen/AiAgentLongTextToolTextGenEmbeddingsField.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttooltextgen/AiAgentLongTextToolTextGenEmbeddingsField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class AiAgentLongTextToolTextGenEmbeddingsField extends SerializableObject { + /** The model used for the AI agent for calculating embeddings. */ protected String model; protected AiAgentLongTextToolTextGenEmbeddingsStrategyField strategy; diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttooltextgen/AiAgentLongTextToolTextGenEmbeddingsStrategyField.java b/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttooltextgen/AiAgentLongTextToolTextGenEmbeddingsStrategyField.java index 3d6ddda22..2ec257c51 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttooltextgen/AiAgentLongTextToolTextGenEmbeddingsStrategyField.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentlongtexttooltextgen/AiAgentLongTextToolTextGenEmbeddingsStrategyField.java @@ -9,8 +9,10 @@ @JsonFilter("nullablePropertyFilter") public class AiAgentLongTextToolTextGenEmbeddingsStrategyField extends SerializableObject { + /** The strategy used for the AI agent for calculating embeddings. */ protected String id; + /** The number of tokens per chunk. */ @JsonProperty("num_tokens_per_chunk") protected Long numTokensPerChunk; diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReference.java b/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReference.java index d8f107cdb..da01e1354 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReference.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReference.java @@ -8,13 +8,20 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** The AI agent used to handle queries. */ @JsonFilter("nullablePropertyFilter") public class AiAgentReference extends SerializableObject { + /** The type of AI agent used to handle queries. */ @JsonDeserialize(using = AiAgentReferenceTypeField.AiAgentReferenceTypeFieldDeserializer.class) @JsonSerialize(using = AiAgentReferenceTypeField.AiAgentReferenceTypeFieldSerializer.class) protected EnumWrapper type; + /** + * The ID of an Agent. This can be a numeric ID for custom agents (for example, `14031`) or a + * unique identifier for pre-built agents (for example, `enhanced_extract_agent` for the [Enhanced + * Extract Agent](g://box-ai/ai-tutorials/extract-metadata-structured/#enhanced-extract-agent)). + */ protected String id; public AiAgentReference() { diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentspreadsheettool/AiAgentSpreadsheetTool.java b/src/main/java/com/box/sdkgen/schemas/aiagentspreadsheettool/AiAgentSpreadsheetTool.java index 7ea190081..2dc67e0f6 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentspreadsheettool/AiAgentSpreadsheetTool.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentspreadsheettool/AiAgentSpreadsheetTool.java @@ -11,11 +11,17 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** The AI agent tool used to handle spreadsheets and tabular data. */ @JsonFilter("nullablePropertyFilter") public class AiAgentSpreadsheetTool extends SerializableObject { + /** + * The model used for the AI agent for spreadsheets. For specific model values, see the [available + * models list](g://box-ai/supported-models). + */ protected String model; + /** The number of tokens for completion. */ @JsonProperty("num_tokens_for_completion") protected Long numTokensForCompletion; diff --git a/src/main/java/com/box/sdkgen/schemas/aiagenttextgen/AiAgentTextGen.java b/src/main/java/com/box/sdkgen/schemas/aiagenttextgen/AiAgentTextGen.java index 23444f0a2..e98ca5a3a 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagenttextgen/AiAgentTextGen.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagenttextgen/AiAgentTextGen.java @@ -10,9 +10,11 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** The AI agent used for generating text. */ @JsonFilter("nullablePropertyFilter") public class AiAgentTextGen extends SerializableObject { + /** The type of AI agent used for generating text. */ @JsonDeserialize(using = AiAgentTextGenTypeField.AiAgentTextGenTypeFieldDeserializer.class) @JsonSerialize(using = AiAgentTextGenTypeField.AiAgentTextGenTypeFieldSerializer.class) protected EnumWrapper type; diff --git a/src/main/java/com/box/sdkgen/schemas/aiask/AiAsk.java b/src/main/java/com/box/sdkgen/schemas/aiask/AiAsk.java index b7869b780..8424cd9ed 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiask/AiAsk.java +++ b/src/main/java/com/box/sdkgen/schemas/aiask/AiAsk.java @@ -15,20 +15,41 @@ import java.util.List; import java.util.Objects; +/** AI ask request object. */ @JsonFilter("nullablePropertyFilter") public class AiAsk extends SerializableObject { + /** + * Box AI handles text documents with text representations up to 1MB in size, or a maximum of 25 + * files, whichever comes first. If the text file size exceeds 1MB, the first 1MB of text + * representation will be processed. Box AI handles image documents with a resolution of 1024 x + * 1024 pixels, with a maximum of 5 images or 5 pages for multi-page images. If the number of + * image or image pages exceeds 5, the first 5 images or pages will be processed. If you set mode + * parameter to `single_item_qa`, the items array can have one element only. Currently Box AI does + * not support multi-modal requests. If both images and text are sent Box AI will only process the + * text. + */ @JsonDeserialize(using = AiAskModeField.AiAskModeFieldDeserializer.class) @JsonSerialize(using = AiAskModeField.AiAskModeFieldSerializer.class) protected final EnumWrapper mode; + /** + * The prompt provided by the client to be answered by the LLM. The prompt's length is limited to + * 10000 characters. + */ protected final String prompt; + /** The items to be processed by the LLM, often files. */ protected final List items; + /** + * The history of prompts and answers previously passed to the LLM. This provides additional + * context to the LLM in generating the response. + */ @JsonProperty("dialogue_history") protected List dialogueHistory; + /** A flag to indicate whether citations should be returned. */ @JsonProperty("include_citations") protected Boolean includeCitations; diff --git a/src/main/java/com/box/sdkgen/schemas/aicitation/AiCitation.java b/src/main/java/com/box/sdkgen/schemas/aicitation/AiCitation.java index 2960a7e36..24019f8ae 100644 --- a/src/main/java/com/box/sdkgen/schemas/aicitation/AiCitation.java +++ b/src/main/java/com/box/sdkgen/schemas/aicitation/AiCitation.java @@ -8,17 +8,22 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** The citation of the LLM's answer reference. */ @JsonFilter("nullablePropertyFilter") public class AiCitation extends SerializableObject { + /** The specific content from where the answer was referenced. */ protected String content; + /** The id of the item. */ protected String id; + /** The type of the item. */ @JsonDeserialize(using = AiCitationTypeField.AiCitationTypeFieldDeserializer.class) @JsonSerialize(using = AiCitationTypeField.AiCitationTypeFieldSerializer.class) protected EnumWrapper type; + /** The name of the item. */ protected String name; public AiCitation() { diff --git a/src/main/java/com/box/sdkgen/schemas/aidialoguehistory/AiDialogueHistory.java b/src/main/java/com/box/sdkgen/schemas/aidialoguehistory/AiDialogueHistory.java index 2f6ae3449..5f008f89c 100644 --- a/src/main/java/com/box/sdkgen/schemas/aidialoguehistory/AiDialogueHistory.java +++ b/src/main/java/com/box/sdkgen/schemas/aidialoguehistory/AiDialogueHistory.java @@ -10,13 +10,17 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** A context object that can hold prior prompts and answers. */ @JsonFilter("nullablePropertyFilter") public class AiDialogueHistory extends SerializableObject { + /** The prompt previously provided by the client and answered by the LLM. */ protected String prompt; + /** The answer previously provided by the LLM. */ protected String answer; + /** The ISO date formatted timestamp of when the previous answer to the prompt was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/aiextract/AiExtract.java b/src/main/java/com/box/sdkgen/schemas/aiextract/AiExtract.java index 1a0a7e1a4..082447b43 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextract/AiExtract.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextract/AiExtract.java @@ -11,11 +11,17 @@ import java.util.List; import java.util.Objects; +/** AI metadata freeform extraction request object. */ @JsonFilter("nullablePropertyFilter") public class AiExtract extends SerializableObject { + /** + * The prompt provided to a Large Language Model (LLM) in the request. The prompt can be up to + * 10000 characters long and it can be an XML or a JSON schema. + */ protected final String prompt; + /** The items that LLM will process. Currently, you can use files only. */ protected final List items; @JsonProperty("ai_agent") diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractresponse/AiExtractResponse.java b/src/main/java/com/box/sdkgen/schemas/aiextractresponse/AiExtractResponse.java index 06d254b0c..5092bbf22 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextractresponse/AiExtractResponse.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractresponse/AiExtractResponse.java @@ -3,6 +3,10 @@ import com.box.sdkgen.internal.SerializableObject; import com.fasterxml.jackson.annotation.JsonFilter; +/** + * AI extract response. The content of this response may vary depending on the requested + * configuration. + */ @JsonFilter("nullablePropertyFilter") public class AiExtractResponse extends SerializableObject { diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java index bdd898076..4e23ae994 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java @@ -11,14 +11,24 @@ import java.util.List; import java.util.Objects; +/** AI Extract Structured Request object. */ @JsonFilter("nullablePropertyFilter") public class AiExtractStructured extends SerializableObject { + /** The items to be processed by the LLM. Currently you can use files only. */ protected final List items; + /** + * The metadata template containing the fields to extract. For your request to work, you must + * provide either `metadata_template` or `fields`, but not both. + */ @JsonProperty("metadata_template") protected AiExtractStructuredMetadataTemplateField metadataTemplate; + /** + * The fields to be extracted from the provided items. For your request to work, you must provide + * either `metadata_template` or `fields`, but not both. + */ protected List fields; @JsonProperty("ai_agent") diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsField.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsField.java index fea660bb5..a86c8a89f 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsField.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsField.java @@ -10,16 +10,28 @@ @JsonFilter("nullablePropertyFilter") public class AiExtractStructuredFieldsField extends SerializableObject { + /** A unique identifier for the field. */ protected final String key; + /** A description of the field. */ protected String description; + /** The display name of the field. */ protected String displayName; + /** The context about the key that may include how to find and format it. */ protected String prompt; + /** + * The type of the field. It include but is not limited to string, float, date, enum, and + * multiSelect. + */ protected String type; + /** + * A list of options for this field. This is most often used in combination with the enum and + * multiSelect field types. + */ protected List options; public AiExtractStructuredFieldsField(@JsonProperty("key") String key) { diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsOptionsField.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsOptionsField.java index 44c27050d..fd905a451 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsOptionsField.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsOptionsField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class AiExtractStructuredFieldsOptionsField extends SerializableObject { + /** A unique identifier for the field. */ protected final String key; public AiExtractStructuredFieldsOptionsField(@JsonProperty("key") String key) { diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredMetadataTemplateField.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredMetadataTemplateField.java index 4637e7b67..568b54ce2 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredMetadataTemplateField.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredMetadataTemplateField.java @@ -12,9 +12,11 @@ @JsonFilter("nullablePropertyFilter") public class AiExtractStructuredMetadataTemplateField extends SerializableObject { + /** The name of the metadata template. */ @JsonProperty("template_key") protected String templateKey; + /** Value is always `metadata_template`. */ @JsonDeserialize( using = AiExtractStructuredMetadataTemplateTypeField @@ -25,6 +27,12 @@ public class AiExtractStructuredMetadataTemplateField extends SerializableObject .AiExtractStructuredMetadataTemplateTypeFieldSerializer.class) protected EnumWrapper type; + /** + * The scope of the metadata template that can either be global or enterprise. * The **global** + * scope is used for templates that are available to any Box enterprise. * The **enterprise** + * scope represents templates created within a specific enterprise, containing the ID of that + * enterprise. + */ protected String scope; public AiExtractStructuredMetadataTemplateField() { diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java index a728e4ff0..b49716623 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java @@ -12,16 +12,19 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** AI extract structured response. */ @JsonFilter("nullablePropertyFilter") public class AiExtractStructuredResponse extends SerializableObject { protected final AiExtractResponse answer; + /** The ISO date formatted timestamp of when the answer to the prompt was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected final OffsetDateTime createdAt; + /** The reason the response finishes. */ @JsonProperty("completion_reason") protected String completionReason; diff --git a/src/main/java/com/box/sdkgen/schemas/aiitemask/AiItemAsk.java b/src/main/java/com/box/sdkgen/schemas/aiitemask/AiItemAsk.java index 2f7ada452..69f9c367b 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiitemask/AiItemAsk.java +++ b/src/main/java/com/box/sdkgen/schemas/aiitemask/AiItemAsk.java @@ -9,15 +9,19 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** The item to be processed by the LLM for ask requests. */ @JsonFilter("nullablePropertyFilter") public class AiItemAsk extends SerializableObject { + /** The ID of the file. */ protected final String id; + /** The type of the item. A `hubs` item must be used as a single item. */ @JsonDeserialize(using = AiItemAskTypeField.AiItemAskTypeFieldDeserializer.class) @JsonSerialize(using = AiItemAskTypeField.AiItemAskTypeFieldSerializer.class) protected final EnumWrapper type; + /** The content of the item, often the text representation. */ protected String content; public AiItemAsk(String id, AiItemAskTypeField type) { diff --git a/src/main/java/com/box/sdkgen/schemas/aiitembase/AiItemBase.java b/src/main/java/com/box/sdkgen/schemas/aiitembase/AiItemBase.java index e82e9adba..bd5e90582 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiitembase/AiItemBase.java +++ b/src/main/java/com/box/sdkgen/schemas/aiitembase/AiItemBase.java @@ -9,15 +9,19 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** The item to be processed by the LLM. */ @JsonFilter("nullablePropertyFilter") public class AiItemBase extends SerializableObject { + /** The ID of the file. */ protected final String id; + /** The type of the item. Currently the value can be `file` only. */ @JsonDeserialize(using = AiItemBaseTypeField.AiItemBaseTypeFieldDeserializer.class) @JsonSerialize(using = AiItemBaseTypeField.AiItemBaseTypeFieldSerializer.class) protected EnumWrapper type; + /** The content of the item, often the text representation. */ protected String content; public AiItemBase(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsaws/AiLlmEndpointParamsAws.java b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsaws/AiLlmEndpointParamsAws.java index ded28f764..2901ea313 100644 --- a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsaws/AiLlmEndpointParamsAws.java +++ b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsaws/AiLlmEndpointParamsAws.java @@ -10,17 +10,30 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** AI LLM endpoint params AWS object. */ @JsonFilter("nullablePropertyFilter") public class AiLlmEndpointParamsAws extends SerializableObject { + /** The type of the AI LLM endpoint params object for AWS. This parameter is **required**. */ @JsonDeserialize( using = AiLlmEndpointParamsAwsTypeField.AiLlmEndpointParamsAwsTypeFieldDeserializer.class) @JsonSerialize( using = AiLlmEndpointParamsAwsTypeField.AiLlmEndpointParamsAwsTypeFieldSerializer.class) protected EnumWrapper type; + /** + * What sampling temperature to use, between 0 and 1. Higher values like 0.8 will make the output + * more random, while lower values like 0.2 will make it more focused and deterministic. We + * generally recommend altering this or `top_p` but not both. + */ @Nullable protected Double temperature; + /** + * An alternative to sampling with temperature, called nucleus sampling, where the model considers + * the results of the tokens with `top_p` probability mass. So 0.1 means only the tokens + * comprising the top 10% probability mass are considered. We generally recommend altering this or + * temperature but not both. + */ @JsonProperty("top_p") @Nullable protected Double topP; diff --git a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsgoogle/AiLlmEndpointParamsGoogle.java b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsgoogle/AiLlmEndpointParamsGoogle.java index ced58633a..65995c850 100644 --- a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsgoogle/AiLlmEndpointParamsGoogle.java +++ b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsgoogle/AiLlmEndpointParamsGoogle.java @@ -10,9 +10,11 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** AI LLM endpoint params Google object. */ @JsonFilter("nullablePropertyFilter") public class AiLlmEndpointParamsGoogle extends SerializableObject { + /** The type of the AI LLM endpoint params object for Google. This parameter is **required**. */ @JsonDeserialize( using = AiLlmEndpointParamsGoogleTypeField.AiLlmEndpointParamsGoogleTypeFieldDeserializer.class) @@ -20,12 +22,26 @@ public class AiLlmEndpointParamsGoogle extends SerializableObject { using = AiLlmEndpointParamsGoogleTypeField.AiLlmEndpointParamsGoogleTypeFieldSerializer.class) protected EnumWrapper type; + /** + * The temperature is used for sampling during response generation, which occurs when `top-P` and + * `top-K` are applied. Temperature controls the degree of randomness in the token selection. + */ @Nullable protected Double temperature; + /** + * `Top-P` changes how the model selects tokens for output. Tokens are selected from the most (see + * `top-K`) to least probable until the sum of their probabilities equals the `top-P` value. + */ @JsonProperty("top_p") @Nullable protected Double topP; + /** + * `Top-K` changes how the model selects tokens for output. A low `top-K` means the next selected + * token is the most probable among all tokens in the model's vocabulary (also called greedy + * decoding), while a high `top-K` means that the next token is selected from among the three most + * probable tokens by using temperature. + */ @JsonProperty("top_k") @Nullable protected Double topK; diff --git a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsibm/AiLlmEndpointParamsIbm.java b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsibm/AiLlmEndpointParamsIbm.java index 9887fbbed..d9a0f7262 100644 --- a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsibm/AiLlmEndpointParamsIbm.java +++ b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsibm/AiLlmEndpointParamsIbm.java @@ -10,21 +10,40 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** AI LLM endpoint params IBM object. */ @JsonFilter("nullablePropertyFilter") public class AiLlmEndpointParamsIbm extends SerializableObject { + /** The type of the AI LLM endpoint params object for IBM. This parameter is **required**. */ @JsonDeserialize( using = AiLlmEndpointParamsIbmTypeField.AiLlmEndpointParamsIbmTypeFieldDeserializer.class) @JsonSerialize( using = AiLlmEndpointParamsIbmTypeField.AiLlmEndpointParamsIbmTypeFieldSerializer.class) protected EnumWrapper type; + /** + * What sampling temperature to use, between 0 and 1. Higher values like 0.8 will make the output + * more random, while lower values like 0.2 will make it more focused and deterministic. We + * generally recommend altering this or `top_p` but not both. + */ @Nullable protected Double temperature; + /** + * An alternative to sampling with temperature, called nucleus sampling, where the model considers + * the results of the tokens with `top_p` probability mass. So 0.1 means only the tokens + * comprising the top 10% probability mass are considered. We generally recommend altering this or + * temperature but not both. + */ @JsonProperty("top_p") @Nullable protected Double topP; + /** + * `Top-K` changes how the model selects tokens for output. A low `top-K` means the next selected + * token is the most probable among all tokens in the model's vocabulary (also called greedy + * decoding), while a high `top-K` means that the next token is selected from among the three most + * probable tokens by using temperature. + */ @JsonProperty("top_k") @Nullable protected Double topK; diff --git a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsopenai/AiLlmEndpointParamsOpenAi.java b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsopenai/AiLlmEndpointParamsOpenAi.java index 7950b97ba..f869fdaec 100644 --- a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsopenai/AiLlmEndpointParamsOpenAi.java +++ b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsopenai/AiLlmEndpointParamsOpenAi.java @@ -10,9 +10,11 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** AI LLM endpoint params OpenAI object. */ @JsonFilter("nullablePropertyFilter") public class AiLlmEndpointParamsOpenAi extends SerializableObject { + /** The type of the AI LLM endpoint params object for OpenAI. This parameter is **required**. */ @JsonDeserialize( using = AiLlmEndpointParamsOpenAiTypeField.AiLlmEndpointParamsOpenAiTypeFieldDeserializer.class) @@ -20,20 +22,41 @@ public class AiLlmEndpointParamsOpenAi extends SerializableObject { using = AiLlmEndpointParamsOpenAiTypeField.AiLlmEndpointParamsOpenAiTypeFieldSerializer.class) protected EnumWrapper type; + /** + * What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output + * more random, while lower values like 0.2 will make it more focused and deterministic. We + * generally recommend altering this or `top_p` but not both. + */ @Nullable protected Double temperature; + /** + * An alternative to sampling with temperature, called nucleus sampling, where the model considers + * the results of the tokens with `top_p` probability mass. So 0.1 means only the tokens + * comprising the top 10% probability mass are considered. We generally recommend altering this or + * temperature but not both. + */ @JsonProperty("top_p") @Nullable protected Double topP; + /** + * A number between -2.0 and 2.0. Positive values penalize new tokens based on their existing + * frequency in the text so far, decreasing the model's likelihood to repeat the same line + * verbatim. + */ @JsonProperty("frequency_penalty") @Nullable protected Double frequencyPenalty; + /** + * A number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear + * in the text so far, increasing the model's likelihood to talk about new topics. + */ @JsonProperty("presence_penalty") @Nullable protected Double presencePenalty; + /** Up to 4 sequences where the API will stop generating further tokens. */ @Nullable protected String stop; public AiLlmEndpointParamsOpenAi() { diff --git a/src/main/java/com/box/sdkgen/schemas/aimultipleagentresponse/AiMultipleAgentResponse.java b/src/main/java/com/box/sdkgen/schemas/aimultipleagentresponse/AiMultipleAgentResponse.java index d34259780..5c7743816 100644 --- a/src/main/java/com/box/sdkgen/schemas/aimultipleagentresponse/AiMultipleAgentResponse.java +++ b/src/main/java/com/box/sdkgen/schemas/aimultipleagentresponse/AiMultipleAgentResponse.java @@ -9,19 +9,27 @@ import java.util.List; import java.util.Objects; +/** List of AI Agents with pagination. */ @JsonFilter("nullablePropertyFilter") public class AiMultipleAgentResponse extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** The marker for the start of the previous page of results. */ @JsonProperty("prev_marker") @Nullable protected String prevMarker; + /** The list of AI Agents. */ protected final List entries; public AiMultipleAgentResponse(@JsonProperty("entries") List entries) { diff --git a/src/main/java/com/box/sdkgen/schemas/airesponse/AiResponse.java b/src/main/java/com/box/sdkgen/schemas/airesponse/AiResponse.java index 5e0adc0a7..14e71e2d0 100644 --- a/src/main/java/com/box/sdkgen/schemas/airesponse/AiResponse.java +++ b/src/main/java/com/box/sdkgen/schemas/airesponse/AiResponse.java @@ -11,16 +11,20 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** AI response. */ @JsonFilter("nullablePropertyFilter") public class AiResponse extends SerializableObject { + /** The answer provided by the LLM. */ protected final String answer; + /** The ISO date formatted timestamp of when the answer to the prompt was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected final OffsetDateTime createdAt; + /** The reason the response finishes. */ @JsonProperty("completion_reason") protected String completionReason; diff --git a/src/main/java/com/box/sdkgen/schemas/airesponsefull/AiResponseFull.java b/src/main/java/com/box/sdkgen/schemas/airesponsefull/AiResponseFull.java index be8a5f80f..503bbfca6 100644 --- a/src/main/java/com/box/sdkgen/schemas/airesponsefull/AiResponseFull.java +++ b/src/main/java/com/box/sdkgen/schemas/airesponsefull/AiResponseFull.java @@ -9,9 +9,11 @@ import java.util.List; import java.util.Objects; +/** AI ask response. */ @JsonFilter("nullablePropertyFilter") public class AiResponseFull extends AiResponse { + /** The citations of the LLM's answer reference. */ protected List citations; public AiResponseFull( diff --git a/src/main/java/com/box/sdkgen/schemas/aisingleagentresponse/AiSingleAgentResponse.java b/src/main/java/com/box/sdkgen/schemas/aisingleagentresponse/AiSingleAgentResponse.java index e9274ffc7..4460edf5e 100644 --- a/src/main/java/com/box/sdkgen/schemas/aisingleagentresponse/AiSingleAgentResponse.java +++ b/src/main/java/com/box/sdkgen/schemas/aisingleagentresponse/AiSingleAgentResponse.java @@ -14,43 +14,58 @@ import java.util.List; import java.util.Objects; +/** Standard representation of an AI Agent instance. */ @JsonFilter("nullablePropertyFilter") public class AiSingleAgentResponse extends SerializableObject { + /** The unique identifier of the AI Agent. */ protected final String id; + /** The type of agent used to handle queries. */ @JsonDeserialize( using = AiSingleAgentResponseTypeField.AiSingleAgentResponseTypeFieldDeserializer.class) @JsonSerialize( using = AiSingleAgentResponseTypeField.AiSingleAgentResponseTypeFieldSerializer.class) protected EnumWrapper type; + /** The provider of the AI Agent. */ protected final String origin; + /** The name of the AI Agent. */ protected final String name; + /** + * The state of the AI Agent. Possible values are: `enabled`, `disabled`, and + * `enabled_for_selected_users`. + */ @JsonProperty("access_state") protected final String accessState; + /** The user who created this agent. */ @JsonProperty("created_by") protected UserBase createdBy; + /** The ISO date-time formatted timestamp of when this AI agent was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** The user who most recently modified this agent. */ @JsonProperty("modified_by") protected UserBase modifiedBy; + /** The ISO date-time formatted timestamp of when this AI agent was recently modified. */ @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime modifiedAt; + /** The icon reference of the AI Agent. */ @JsonProperty("icon_reference") protected String iconReference; + /** List of allowed users or groups. */ @JsonProperty("allowed_entities") protected List allowedEntities; diff --git a/src/main/java/com/box/sdkgen/schemas/aisingleagentresponsefull/AiSingleAgentResponseFull.java b/src/main/java/com/box/sdkgen/schemas/aisingleagentresponsefull/AiSingleAgentResponseFull.java index 92e28569d..6b8294c44 100644 --- a/src/main/java/com/box/sdkgen/schemas/aisingleagentresponsefull/AiSingleAgentResponseFull.java +++ b/src/main/java/com/box/sdkgen/schemas/aisingleagentresponsefull/AiSingleAgentResponseFull.java @@ -14,6 +14,7 @@ import java.util.List; import java.util.Objects; +/** Full representation of an AI Agent instance. */ @JsonFilter("nullablePropertyFilter") public class AiSingleAgentResponseFull extends AiSingleAgentResponse { diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentask/AiStudioAgentAsk.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentask/AiStudioAgentAsk.java index cff15ddf9..7602e2849 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagentask/AiStudioAgentAsk.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentask/AiStudioAgentAsk.java @@ -14,22 +14,31 @@ import java.util.List; import java.util.Objects; +/** The AI agent to be used to handle queries. */ @JsonFilter("nullablePropertyFilter") public class AiStudioAgentAsk extends SerializableObject { + /** The type of AI agent used to handle queries. */ @JsonDeserialize(using = AiStudioAgentAskTypeField.AiStudioAgentAskTypeFieldDeserializer.class) @JsonSerialize(using = AiStudioAgentAskTypeField.AiStudioAgentAskTypeFieldSerializer.class) protected EnumWrapper type; + /** The state of the AI Agent capability. Possible values are: `enabled` and `disabled`. */ @JsonProperty("access_state") protected final String accessState; + /** The description of the AI agent. */ protected final String description; + /** Custom instructions for the AI agent. */ @JsonProperty("custom_instructions") @Nullable protected String customInstructions; + /** + * Suggested questions for the AI agent. If null, suggested question will be generated. If empty, + * no suggested questions will be displayed. + */ @JsonProperty("suggested_questions") protected List suggestedQuestions; diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentaskresponse/AiStudioAgentAskResponse.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentaskresponse/AiStudioAgentAskResponse.java index 51a5c388d..b0993c925 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagentaskresponse/AiStudioAgentAskResponse.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentaskresponse/AiStudioAgentAskResponse.java @@ -14,24 +14,33 @@ import java.util.List; import java.util.Objects; +/** The AI agent to be used to ask questions. */ @JsonFilter("nullablePropertyFilter") public class AiStudioAgentAskResponse extends SerializableObject { + /** The type of AI agent used to ask questions. */ @JsonDeserialize( using = AiStudioAgentAskResponseTypeField.AiStudioAgentAskResponseTypeFieldDeserializer.class) @JsonSerialize( using = AiStudioAgentAskResponseTypeField.AiStudioAgentAskResponseTypeFieldSerializer.class) protected EnumWrapper type; + /** The state of the AI Agent capability. Possible values are: `enabled` and `disabled`. */ @JsonProperty("access_state") protected final String accessState; + /** The description of the AI agent. */ protected final String description; + /** Custom instructions for the AI agent. */ @JsonProperty("custom_instructions") @Nullable protected String customInstructions; + /** + * Suggested questions for the AI agent. If null, suggested question will be generated. If empty, + * no suggested questions will be displayed. + */ @JsonProperty("suggested_questions") protected List suggestedQuestions; diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentbasicgentool/AiStudioAgentBasicGenTool.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentbasicgentool/AiStudioAgentBasicGenTool.java index 9fdc7c9dc..a5e8085cd 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagentbasicgentool/AiStudioAgentBasicGenTool.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentbasicgentool/AiStudioAgentBasicGenTool.java @@ -11,9 +11,11 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** AI agent basic tool used to generate text. */ @JsonFilter("nullablePropertyFilter") public class AiStudioAgentBasicGenTool extends AiAgentBasicGenTool { + /** True if system message contains custom instructions placeholder, false otherwise. */ @JsonProperty("is_custom_instructions_included") protected Boolean isCustomInstructionsIncluded; diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentbasicgentoolresponse/AiStudioAgentBasicGenToolResponse.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentbasicgentoolresponse/AiStudioAgentBasicGenToolResponse.java index e55714d10..45194f05e 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagentbasicgentoolresponse/AiStudioAgentBasicGenToolResponse.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentbasicgentoolresponse/AiStudioAgentBasicGenToolResponse.java @@ -11,9 +11,11 @@ import java.util.List; import java.util.Objects; +/** AI agent basic tool used to generate text. */ @JsonFilter("nullablePropertyFilter") public class AiStudioAgentBasicGenToolResponse extends AiStudioAgentBasicGenTool { + /** Warnings concerning tool. */ protected List warnings; public AiStudioAgentBasicGenToolResponse() { diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentbasictexttool/AiStudioAgentBasicTextTool.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentbasictexttool/AiStudioAgentBasicTextTool.java index d6cddc6d8..c5d5489f9 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagentbasictexttool/AiStudioAgentBasicTextTool.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentbasictexttool/AiStudioAgentBasicTextTool.java @@ -10,9 +10,11 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** AI agent processor used to handle basic text. */ @JsonFilter("nullablePropertyFilter") public class AiStudioAgentBasicTextTool extends AiAgentBasicTextTool { + /** True if system message contains custom instructions placeholder, false otherwise. */ @JsonProperty("is_custom_instructions_included") protected Boolean isCustomInstructionsIncluded; diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentbasictexttoolresponse/AiStudioAgentBasicTextToolResponse.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentbasictexttoolresponse/AiStudioAgentBasicTextToolResponse.java index b7d7644db..5f624254d 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagentbasictexttoolresponse/AiStudioAgentBasicTextToolResponse.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentbasictexttoolresponse/AiStudioAgentBasicTextToolResponse.java @@ -10,9 +10,11 @@ import java.util.List; import java.util.Objects; +/** AI agent processor used to handle basic text. */ @JsonFilter("nullablePropertyFilter") public class AiStudioAgentBasicTextToolResponse extends AiStudioAgentBasicTextTool { + /** Warnings concerning tool. */ protected List warnings; public AiStudioAgentBasicTextToolResponse() { diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentextract/AiStudioAgentExtract.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentextract/AiStudioAgentExtract.java index 6c0203abf..74faeb7fa 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagentextract/AiStudioAgentExtract.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentextract/AiStudioAgentExtract.java @@ -12,20 +12,25 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** The AI agent to be used for metadata extraction. */ @JsonFilter("nullablePropertyFilter") public class AiStudioAgentExtract extends SerializableObject { + /** The type of AI agent to be used for metadata extraction. */ @JsonDeserialize( using = AiStudioAgentExtractTypeField.AiStudioAgentExtractTypeFieldDeserializer.class) @JsonSerialize( using = AiStudioAgentExtractTypeField.AiStudioAgentExtractTypeFieldSerializer.class) protected EnumWrapper type; + /** The state of the AI Agent capability. Possible values are: `enabled` and `disabled`. */ @JsonProperty("access_state") protected final String accessState; + /** The description of the AI agent. */ protected final String description; + /** Custom instructions for the AI agent. */ @JsonProperty("custom_instructions") @Nullable protected String customInstructions; diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentextractresponse/AiStudioAgentExtractResponse.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentextractresponse/AiStudioAgentExtractResponse.java index 0067dd666..0ccbb0c8c 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagentextractresponse/AiStudioAgentExtractResponse.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentextractresponse/AiStudioAgentExtractResponse.java @@ -12,9 +12,11 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** The AI agent to be used for metadata extraction. */ @JsonFilter("nullablePropertyFilter") public class AiStudioAgentExtractResponse extends SerializableObject { + /** The type of AI agent to be used for metadata extraction. */ @JsonDeserialize( using = AiStudioAgentExtractResponseTypeField.AiStudioAgentExtractResponseTypeFieldDeserializer @@ -25,11 +27,14 @@ public class AiStudioAgentExtractResponse extends SerializableObject { .class) protected EnumWrapper type; + /** The state of the AI Agent capability. Possible values are: `enabled` and `disabled`. */ @JsonProperty("access_state") protected final String accessState; + /** The description of the AI agent. */ protected final String description; + /** Custom instructions for the AI agent. */ @JsonProperty("custom_instructions") @Nullable protected String customInstructions; diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentlongtexttool/AiStudioAgentLongTextTool.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentlongtexttool/AiStudioAgentLongTextTool.java index c9d2b5e79..f060f68df 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagentlongtexttool/AiStudioAgentLongTextTool.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentlongtexttool/AiStudioAgentLongTextTool.java @@ -11,9 +11,11 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** AI agent processor used to to handle longer text. */ @JsonFilter("nullablePropertyFilter") public class AiStudioAgentLongTextTool extends AiAgentLongTextTool { + /** True if system message contains custom instructions placeholder, false otherwise. */ @JsonProperty("is_custom_instructions_included") protected Boolean isCustomInstructionsIncluded; diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentlongtexttoolresponse/AiStudioAgentLongTextToolResponse.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentlongtexttoolresponse/AiStudioAgentLongTextToolResponse.java index fedd0fb8d..1465e5e7a 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagentlongtexttoolresponse/AiStudioAgentLongTextToolResponse.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentlongtexttoolresponse/AiStudioAgentLongTextToolResponse.java @@ -11,9 +11,11 @@ import java.util.List; import java.util.Objects; +/** AI agent processor used to to handle longer text. */ @JsonFilter("nullablePropertyFilter") public class AiStudioAgentLongTextToolResponse extends AiStudioAgentLongTextTool { + /** Warnings concerning tool. */ protected List warnings; public AiStudioAgentLongTextToolResponse() { diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentspreadsheettool/AiStudioAgentSpreadsheetTool.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentspreadsheettool/AiStudioAgentSpreadsheetTool.java index 0192c6790..f8c7dd341 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagentspreadsheettool/AiStudioAgentSpreadsheetTool.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentspreadsheettool/AiStudioAgentSpreadsheetTool.java @@ -9,6 +9,7 @@ import com.fasterxml.jackson.annotation.JsonFilter; import java.util.Objects; +/** The AI agent tool used to handle spreadsheets and tabular data. */ @JsonFilter("nullablePropertyFilter") public class AiStudioAgentSpreadsheetTool extends AiAgentSpreadsheetTool { diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentspreadsheettoolresponse/AiStudioAgentSpreadsheetToolResponse.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentspreadsheettoolresponse/AiStudioAgentSpreadsheetToolResponse.java index 0a40ea916..b46c01c9e 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagentspreadsheettoolresponse/AiStudioAgentSpreadsheetToolResponse.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentspreadsheettoolresponse/AiStudioAgentSpreadsheetToolResponse.java @@ -10,9 +10,11 @@ import java.util.List; import java.util.Objects; +/** The AI agent tool used to handle spreadsheets and tabular data. */ @JsonFilter("nullablePropertyFilter") public class AiStudioAgentSpreadsheetToolResponse extends AiStudioAgentSpreadsheetTool { + /** Warnings concerning tool. */ protected List warnings; public AiStudioAgentSpreadsheetToolResponse() { diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgen/AiStudioAgentTextGen.java b/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgen/AiStudioAgentTextGen.java index 7f2088563..8f78acce5 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgen/AiStudioAgentTextGen.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgen/AiStudioAgentTextGen.java @@ -12,24 +12,33 @@ import java.util.List; import java.util.Objects; +/** The AI agent to be used to generate text. */ @JsonFilter("nullablePropertyFilter") public class AiStudioAgentTextGen extends SerializableObject { + /** The type of AI agent used for generating text. */ @JsonDeserialize( using = AiStudioAgentTextGenTypeField.AiStudioAgentTextGenTypeFieldDeserializer.class) @JsonSerialize( using = AiStudioAgentTextGenTypeField.AiStudioAgentTextGenTypeFieldSerializer.class) protected EnumWrapper type; + /** The state of the AI Agent capability. Possible values are: `enabled` and `disabled`. */ @JsonProperty("access_state") protected final String accessState; + /** The description of the AI agent. */ protected final String description; + /** Custom instructions for the AI agent. */ @JsonProperty("custom_instructions") @Nullable protected String customInstructions; + /** + * Suggested questions for the AI agent. If null, suggested question will be generated. If empty, + * no suggested questions will be displayed. + */ @JsonProperty("suggested_questions") protected List suggestedQuestions; diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgenresponse/AiStudioAgentTextGenResponse.java b/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgenresponse/AiStudioAgentTextGenResponse.java index 44360e076..566067d83 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgenresponse/AiStudioAgentTextGenResponse.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgenresponse/AiStudioAgentTextGenResponse.java @@ -12,9 +12,11 @@ import java.util.List; import java.util.Objects; +/** The AI agent to be used to generate text. */ @JsonFilter("nullablePropertyFilter") public class AiStudioAgentTextGenResponse extends SerializableObject { + /** The type of AI agent used for generating text. */ @JsonDeserialize( using = AiStudioAgentTextGenResponseTypeField.AiStudioAgentTextGenResponseTypeFieldDeserializer @@ -25,15 +27,22 @@ public class AiStudioAgentTextGenResponse extends SerializableObject { .class) protected EnumWrapper type; + /** The state of the AI Agent capability. Possible values are: `enabled` and `disabled`. */ @JsonProperty("access_state") protected final String accessState; + /** The description of the AI agent. */ protected final String description; + /** Custom instructions for the AI agent. */ @JsonProperty("custom_instructions") @Nullable protected String customInstructions; + /** + * Suggested questions for the AI agent. If null, suggested question will be generated. If empty, + * no suggested questions will be displayed. + */ @JsonProperty("suggested_questions") protected List suggestedQuestions; diff --git a/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGen.java b/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGen.java index b919252d0..4646e4ccf 100644 --- a/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGen.java +++ b/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGen.java @@ -11,13 +11,29 @@ import java.util.List; import java.util.Objects; +/** AI text gen request object. */ @JsonFilter("nullablePropertyFilter") public class AiTextGen extends SerializableObject { + /** + * The prompt provided by the client to be answered by the LLM. The prompt's length is limited to + * 10000 characters. + */ protected final String prompt; + /** + * The items to be processed by the LLM, often files. The array can include **exactly one** + * element. + * + *

    **Note**: Box AI handles documents with text representations up to 1MB in size. If the file + * size exceeds 1MB, the first 1MB of text representation will be processed. + */ protected final List items; + /** + * The history of prompts and answers previously passed to the LLM. This parameter provides the + * additional context to the LLM when generating the response. + */ @JsonProperty("dialogue_history") protected List dialogueHistory; diff --git a/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGenItemsField.java b/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGenItemsField.java index 75f620eba..e227a3477 100644 --- a/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGenItemsField.java +++ b/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGenItemsField.java @@ -12,12 +12,15 @@ @JsonFilter("nullablePropertyFilter") public class AiTextGenItemsField extends SerializableObject { + /** The ID of the item. */ protected final String id; + /** The type of the item. */ @JsonDeserialize(using = AiTextGenItemsTypeField.AiTextGenItemsTypeFieldDeserializer.class) @JsonSerialize(using = AiTextGenItemsTypeField.AiTextGenItemsTypeFieldSerializer.class) protected EnumWrapper type; + /** The content to use as context for generating new text or editing existing text. */ protected String content; public AiTextGenItemsField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/appitem/AppItem.java b/src/main/java/com/box/sdkgen/schemas/appitem/AppItem.java index 7055ae0ae..7d97970cc 100644 --- a/src/main/java/com/box/sdkgen/schemas/appitem/AppItem.java +++ b/src/main/java/com/box/sdkgen/schemas/appitem/AppItem.java @@ -9,15 +9,22 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** + * An app item represents an content object owned by an application. It can group files and folders + * together from different paths. That set can be shared via a collaboration. + */ @JsonFilter("nullablePropertyFilter") public class AppItem extends SerializableObject { + /** The unique identifier for this app item. */ protected final String id; + /** The value will always be `app_item`. */ @JsonDeserialize(using = AppItemTypeField.AppItemTypeFieldDeserializer.class) @JsonSerialize(using = AppItemTypeField.AppItemTypeFieldSerializer.class) protected EnumWrapper type; + /** The type of the app that owns this app item. */ @JsonProperty("application_type") protected final String applicationType; diff --git a/src/main/java/com/box/sdkgen/schemas/appitemassociation/AppItemAssociation.java b/src/main/java/com/box/sdkgen/schemas/appitemassociation/AppItemAssociation.java index daa6fd49a..10b94c840 100644 --- a/src/main/java/com/box/sdkgen/schemas/appitemassociation/AppItemAssociation.java +++ b/src/main/java/com/box/sdkgen/schemas/appitemassociation/AppItemAssociation.java @@ -14,11 +14,17 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** + * An app item association represents an association between a file or folder and an app item. + * Associations between a folder and an app item cascade down to all descendants of the folder. + */ @JsonFilter("nullablePropertyFilter") public class AppItemAssociation extends SerializableObject { + /** The unique identifier for this app item association. */ protected final String id; + /** The value will always be `app_item_association`. */ @JsonDeserialize( using = AppItemAssociationTypeField.AppItemAssociationTypeFieldDeserializer.class) @JsonSerialize(using = AppItemAssociationTypeField.AppItemAssociationTypeFieldSerializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/appitemassociations/AppItemAssociations.java b/src/main/java/com/box/sdkgen/schemas/appitemassociations/AppItemAssociations.java index 13475996a..9baecea70 100644 --- a/src/main/java/com/box/sdkgen/schemas/appitemassociations/AppItemAssociations.java +++ b/src/main/java/com/box/sdkgen/schemas/appitemassociations/AppItemAssociations.java @@ -9,15 +9,22 @@ import java.util.List; import java.util.Objects; +/** A list of app item associations. */ @JsonFilter("nullablePropertyFilter") public class AppItemAssociations extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** The marker for the start of the previous page of results. */ @JsonProperty("prev_marker") @Nullable protected String prevMarker; diff --git a/src/main/java/com/box/sdkgen/schemas/appitemeventsource/AppItemEventSource.java b/src/main/java/com/box/sdkgen/schemas/appitemeventsource/AppItemEventSource.java index f42716d83..d0ec79c51 100644 --- a/src/main/java/com/box/sdkgen/schemas/appitemeventsource/AppItemEventSource.java +++ b/src/main/java/com/box/sdkgen/schemas/appitemeventsource/AppItemEventSource.java @@ -11,16 +11,20 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** The AppItem that triggered an event in the event stream. */ @JsonFilter("nullablePropertyFilter") public class AppItemEventSource extends SerializableObject { + /** The id of the `AppItem`. */ protected final String id; + /** The type of the source that this event represents. Can only be `app_item`. */ @JsonDeserialize( using = AppItemEventSourceTypeField.AppItemEventSourceTypeFieldDeserializer.class) @JsonSerialize(using = AppItemEventSourceTypeField.AppItemEventSourceTypeFieldSerializer.class) protected EnumWrapper type; + /** The type of the `AppItem`. */ @JsonProperty("app_item_type") protected final String appItemType; diff --git a/src/main/java/com/box/sdkgen/schemas/classification/Classification.java b/src/main/java/com/box/sdkgen/schemas/classification/Classification.java index e3eaee5a1..c7866b9d4 100644 --- a/src/main/java/com/box/sdkgen/schemas/classification/Classification.java +++ b/src/main/java/com/box/sdkgen/schemas/classification/Classification.java @@ -9,33 +9,64 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** + * An instance of the classification metadata template, containing the classification applied to the + * file or folder. + * + *

    To get more details about the classification applied to an item, request the classification + * metadata template. + */ @JsonFilter("nullablePropertyFilter") public class Classification extends SerializableObject { + /** The name of the classification applied to the item. */ @JsonProperty("Box__Security__Classification__Key") protected String boxSecurityClassificationKey; + /** + * The identifier of the item that this metadata instance has been attached to. This combines the + * `type` and the `id` of the parent in the form `{type}_{id}`. + */ @JsonProperty("$parent") protected String parent; + /** The value will always be `securityClassification-6VMVochwUWo`. */ @JsonDeserialize( using = ClassificationTemplateField.ClassificationTemplateFieldDeserializer.class) @JsonSerialize(using = ClassificationTemplateField.ClassificationTemplateFieldSerializer.class) @JsonProperty("$template") protected EnumWrapper template; + /** + * The scope of the enterprise that this classification has been applied for. + * + *

    This will be in the format `enterprise_{enterprise_id}`. + */ @JsonProperty("$scope") protected String scope; + /** + * The version of the metadata instance. This version starts at 0 and increases every time a + * classification is updated. + */ @JsonProperty("$version") protected Long version; + /** + * The unique ID of this classification instance. This will be include the name of the + * classification template and a unique ID. + */ @JsonProperty("$type") protected String type; + /** + * The version of the metadata template. This version starts at 0 and increases every time the + * template is updated. This is mostly for internal use. + */ @JsonProperty("$typeVersion") protected Double typeVersion; + /** Whether an end user can change the classification. */ @JsonProperty("$canEdit") protected Boolean canEdit; diff --git a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplate.java b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplate.java index 5e1e4e78a..14054025a 100644 --- a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplate.java +++ b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplate.java @@ -10,19 +10,27 @@ import java.util.List; import java.util.Objects; +/** A metadata template that holds the security classifications defined by an enterprise. */ @JsonFilter("nullablePropertyFilter") public class ClassificationTemplate extends SerializableObject { + /** The ID of the classification template. */ protected final String id; + /** The value will always be `metadata_template`. */ @JsonDeserialize( using = ClassificationTemplateTypeField.ClassificationTemplateTypeFieldDeserializer.class) @JsonSerialize( using = ClassificationTemplateTypeField.ClassificationTemplateTypeFieldSerializer.class) protected EnumWrapper type; + /** + * The scope of the classification template. This is in the format `enterprise_{id}` where the + * `id` is the enterprise ID. + */ protected final String scope; + /** The value will always be `securityClassification-6VMVochwUWo`. */ @JsonDeserialize( using = ClassificationTemplateTemplateKeyField.ClassificationTemplateTemplateKeyFieldDeserializer @@ -33,6 +41,7 @@ public class ClassificationTemplate extends SerializableObject { .class) protected EnumWrapper templateKey; + /** The name of this template as shown in web and mobile interfaces. */ @JsonDeserialize( using = ClassificationTemplateDisplayNameField.ClassificationTemplateDisplayNameFieldDeserializer @@ -43,10 +52,17 @@ public class ClassificationTemplate extends SerializableObject { .class) protected EnumWrapper displayName; + /** Determines if the template is always available in web and mobile interfaces. */ protected Boolean hidden; + /** Determines if classifications are copied along when the file or folder is copied. */ protected Boolean copyInstanceOnItemCopy; + /** + * A list of fields for this classification template. This includes only one field, the + * `Box__Security__Classification__Key`, which defines the different classifications available in + * this enterprise. + */ protected final List fields; public ClassificationTemplate( diff --git a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsField.java b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsField.java index 80c2338ac..6fed48381 100644 --- a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsField.java +++ b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsField.java @@ -13,8 +13,10 @@ @JsonFilter("nullablePropertyFilter") public class ClassificationTemplateFieldsField extends SerializableObject { + /** The unique ID of the field. */ protected final String id; + /** The array item type. */ @JsonDeserialize( using = ClassificationTemplateFieldsTypeField.ClassificationTemplateFieldsTypeFieldDeserializer @@ -25,6 +27,7 @@ public class ClassificationTemplateFieldsField extends SerializableObject { .class) protected EnumWrapper type; + /** Defines classifications available in the enterprise. */ @JsonDeserialize( using = ClassificationTemplateFieldsKeyField.ClassificationTemplateFieldsKeyFieldDeserializer @@ -34,6 +37,7 @@ public class ClassificationTemplateFieldsField extends SerializableObject { ClassificationTemplateFieldsKeyField.ClassificationTemplateFieldsKeyFieldSerializer.class) protected EnumWrapper key; + /** The value will always be `Classification`. */ @JsonDeserialize( using = ClassificationTemplateFieldsDisplayNameField @@ -44,8 +48,10 @@ public class ClassificationTemplateFieldsField extends SerializableObject { .ClassificationTemplateFieldsDisplayNameFieldSerializer.class) protected EnumWrapper displayName; + /** Classifications are always visible to web and mobile users. */ protected Boolean hidden; + /** A list of classifications available in this enterprise. */ protected final List options; public ClassificationTemplateFieldsField( diff --git a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsOptionsField.java b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsOptionsField.java index c1dbd70f9..608f478db 100644 --- a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsOptionsField.java +++ b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsOptionsField.java @@ -9,10 +9,13 @@ @JsonFilter("nullablePropertyFilter") public class ClassificationTemplateFieldsOptionsField extends SerializableObject { + /** The unique ID of this classification. */ protected final String id; + /** The display name and key for this classification. */ protected final String key; + /** Additional information about the classification. */ protected ClassificationTemplateFieldsOptionsStaticConfigField staticConfig; public ClassificationTemplateFieldsOptionsField( diff --git a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsOptionsStaticConfigClassificationField.java b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsOptionsStaticConfigClassificationField.java index 7bbd6bd5c..76ab7ea08 100644 --- a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsOptionsStaticConfigClassificationField.java +++ b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsOptionsStaticConfigClassificationField.java @@ -10,8 +10,18 @@ public class ClassificationTemplateFieldsOptionsStaticConfigClassificationField extends SerializableObject { + /** A longer description of the classification. */ protected String classificationDefinition; + /** + * An internal Box identifier used to assign a color to a classification label. + * + *

    Mapping between a `colorID` and a color may change without notice. Currently, the color + * mappings are as follows. + * + *

    * `0`: Yellow. * `1`: Orange. * `2`: Watermelon red. * `3`: Purple rain. * `4`: Light blue. + * * `5`: Dark blue. * `6`: Light green. * `7`: Gray. + */ @JsonProperty("colorID") protected Long colorId; diff --git a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsOptionsStaticConfigField.java b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsOptionsStaticConfigField.java index de5eb7062..781b21301 100644 --- a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsOptionsStaticConfigField.java +++ b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsOptionsStaticConfigField.java @@ -8,6 +8,13 @@ @JsonFilter("nullablePropertyFilter") public class ClassificationTemplateFieldsOptionsStaticConfigField extends SerializableObject { + /** + * Additional information about the classification. + * + *

    This is not an exclusive list of properties, and more object fields might be returned. These + * fields are used for internal Box Shield and Box Governance purposes and no additional value + * must be derived from these fields. + */ protected ClassificationTemplateFieldsOptionsStaticConfigClassificationField classification; public ClassificationTemplateFieldsOptionsStaticConfigField() { diff --git a/src/main/java/com/box/sdkgen/schemas/clienterror/ClientError.java b/src/main/java/com/box/sdkgen/schemas/clienterror/ClientError.java index 896ec2f8a..f82265893 100644 --- a/src/main/java/com/box/sdkgen/schemas/clienterror/ClientError.java +++ b/src/main/java/com/box/sdkgen/schemas/clienterror/ClientError.java @@ -11,28 +11,39 @@ import java.util.Map; import java.util.Objects; +/** A generic error. */ @JsonFilter("nullablePropertyFilter") public class ClientError extends SerializableObject { + /** The value will always be `error`. */ @JsonDeserialize(using = ClientErrorTypeField.ClientErrorTypeFieldDeserializer.class) @JsonSerialize(using = ClientErrorTypeField.ClientErrorTypeFieldSerializer.class) protected EnumWrapper type; + /** The HTTP status of the response. */ protected Integer status; + /** A Box-specific error code. */ @JsonDeserialize(using = ClientErrorCodeField.ClientErrorCodeFieldDeserializer.class) @JsonSerialize(using = ClientErrorCodeField.ClientErrorCodeFieldSerializer.class) protected EnumWrapper code; + /** A short message describing the error. */ protected String message; + /** + * A free-form object that contains additional context about the error. The possible fields are + * defined on a per-endpoint basis. `message` is only one example. + */ @JsonProperty("context_info") @Nullable protected Map contextInfo; + /** A URL that links to more information about why this error occurred. */ @JsonProperty("help_url") protected String helpUrl; + /** A unique identifier for this response, which can be used when contacting Box support. */ @JsonProperty("request_id") protected String requestId; diff --git a/src/main/java/com/box/sdkgen/schemas/collaboration/Collaboration.java b/src/main/java/com/box/sdkgen/schemas/collaboration/Collaboration.java index 6e6ff09e0..b0956e20a 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaboration/Collaboration.java +++ b/src/main/java/com/box/sdkgen/schemas/collaboration/Collaboration.java @@ -20,11 +20,18 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** + * Collaborations define access permissions for users and groups to files and folders, similar to + * access control lists. A collaboration object grants a user or group access to a file or folder + * with permissions defined by a specific role. + */ @JsonFilter("nullablePropertyFilter") public class Collaboration extends SerializableObject { + /** The unique identifier for this collaboration. */ protected final String id; + /** The value will always be `collaboration`. */ @JsonDeserialize(using = CollaborationTypeField.CollaborationTypeFieldDeserializer.class) @JsonSerialize(using = CollaborationTypeField.CollaborationTypeFieldSerializer.class) protected EnumWrapper type; @@ -38,27 +45,43 @@ public class Collaboration extends SerializableObject { @JsonProperty("accessible_by") protected CollaborationAccessGrantee accessibleBy; + /** + * The email address used to invite an unregistered collaborator, if they are not a registered + * user. + */ @JsonProperty("invite_email") @Nullable protected String inviteEmail; + /** The level of access granted. */ @JsonDeserialize(using = CollaborationRoleField.CollaborationRoleFieldDeserializer.class) @JsonSerialize(using = CollaborationRoleField.CollaborationRoleFieldSerializer.class) protected EnumWrapper role; + /** When the collaboration will expire, or `null` if no expiration date is set. */ @JsonProperty("expires_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable protected OffsetDateTime expiresAt; + /** + * If set to `true`, collaborators have access to shared items, but such items won't be visible in + * the All Files list. Additionally, collaborators won't see the path to the root folder for the + * shared item. + */ @JsonProperty("is_access_only") protected Boolean isAccessOnly; + /** + * The status of the collaboration invitation. If the status is `pending`, `login` and `name` + * return an empty string. + */ @JsonDeserialize(using = CollaborationStatusField.CollaborationStatusFieldDeserializer.class) @JsonSerialize(using = CollaborationStatusField.CollaborationStatusFieldSerializer.class) protected EnumWrapper status; + /** When the `status` of the collaboration object changed to `accepted` or `rejected`. */ @JsonProperty("acknowledged_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @@ -67,11 +90,13 @@ public class Collaboration extends SerializableObject { @JsonProperty("created_by") protected UserCollaborations createdBy; + /** When the collaboration object was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** When the collaboration object was last modified. */ @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField.java b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField.java index 5d54adc38..98db57f51 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField.java +++ b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField.java @@ -11,9 +11,17 @@ public class CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField extends SerializableObject { + /** + * Whether or not the enterprise that owns the content requires a strong password to collaborate + * on the content, or enforces an exposed password detection for the external collaborators. + */ @JsonProperty("enterprise_has_strong_password_required_for_external_users") protected Boolean enterpriseHasStrongPasswordRequiredForExternalUsers; + /** + * Whether or not the user has a strong and not exposed password set for their account. The field + * is `null` when a strong password is not required. + */ @JsonProperty("user_has_strong_password") @Nullable protected Boolean userHasStrongPassword; diff --git a/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField.java b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField.java index a3bf2e9b4..07557e1aa 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField.java +++ b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField.java @@ -12,6 +12,10 @@ public class CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField extends SerializableObject { + /** + * Whether or not the terms of service have been accepted. The field is `null` when there is no + * terms of service required. + */ @JsonProperty("is_accepted") @Nullable protected Boolean isAccepted; diff --git a/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField.java b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField.java index fd4277838..a85479605 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField.java +++ b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField.java @@ -11,9 +11,17 @@ public class CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField extends SerializableObject { + /** + * Whether or not the enterprise that owns the content requires two-factor authentication to be + * enabled in order to collaborate on the content. + */ @JsonProperty("enterprise_has_two_factor_auth_enabled") protected Boolean enterpriseHasTwoFactorAuthEnabled; + /** + * Whether or not the user has two-factor authentication enabled. The field is `null` when + * two-factor authentication is not required. + */ @JsonProperty("user_has_two_factor_authentication_enabled") @Nullable protected Boolean userHasTwoFactorAuthenticationEnabled; diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentries/CollaborationAllowlistEntries.java b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentries/CollaborationAllowlistEntries.java index e936457ac..6fae6ad72 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentries/CollaborationAllowlistEntries.java +++ b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentries/CollaborationAllowlistEntries.java @@ -9,19 +9,27 @@ import java.util.List; import java.util.Objects; +/** A list of allowed domains for collaboration. */ @JsonFilter("nullablePropertyFilter") public class CollaborationAllowlistEntries extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** The marker for the start of the previous page of results. */ @JsonProperty("prev_marker") @Nullable protected String prevMarker; + /** A list of allowed collaboration domains. */ protected List entries; public CollaborationAllowlistEntries() { diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntry.java b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntry.java index 8cb8f86e6..6c18c5861 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntry.java +++ b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntry.java @@ -11,11 +11,17 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** + * An entry that describes an approved domain for which users can collaborate with files and folders + * in your enterprise or vice versa. + */ @JsonFilter("nullablePropertyFilter") public class CollaborationAllowlistEntry extends SerializableObject { + /** The unique identifier for this entry. */ protected String id; + /** The value will always be `collaboration_whitelist_entry`. */ @JsonDeserialize( using = CollaborationAllowlistEntryTypeField.CollaborationAllowlistEntryTypeFieldDeserializer @@ -25,8 +31,10 @@ public class CollaborationAllowlistEntry extends SerializableObject { CollaborationAllowlistEntryTypeField.CollaborationAllowlistEntryTypeFieldSerializer.class) protected EnumWrapper type; + /** The whitelisted domain. */ protected String domain; + /** The direction of the collaborations to allow. */ @JsonDeserialize( using = CollaborationAllowlistEntryDirectionField @@ -39,6 +47,7 @@ public class CollaborationAllowlistEntry extends SerializableObject { protected CollaborationAllowlistEntryEnterpriseField enterprise; + /** The time the entry was created at. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryEnterpriseField.java b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryEnterpriseField.java index de71e6c1d..67bebda8e 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryEnterpriseField.java +++ b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryEnterpriseField.java @@ -11,8 +11,10 @@ @JsonFilter("nullablePropertyFilter") public class CollaborationAllowlistEntryEnterpriseField extends SerializableObject { + /** The unique identifier for this enterprise. */ protected String id; + /** The value will always be `enterprise`. */ @JsonDeserialize( using = CollaborationAllowlistEntryEnterpriseTypeField @@ -23,6 +25,7 @@ public class CollaborationAllowlistEntryEnterpriseField extends SerializableObje .CollaborationAllowlistEntryEnterpriseTypeFieldSerializer.class) protected EnumWrapper type; + /** The name of the enterprise. */ protected String name; public CollaborationAllowlistEntryEnterpriseField() { diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTarget.java b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTarget.java index 926454554..35f5300b9 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTarget.java +++ b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTarget.java @@ -12,11 +12,17 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** + * The user that is exempt from any of the restrictions imposed by the list of allowed collaboration + * domains for this enterprise. + */ @JsonFilter("nullablePropertyFilter") public class CollaborationAllowlistExemptTarget extends SerializableObject { + /** The unique identifier for this exemption. */ protected String id; + /** The value will always be `collaboration_whitelist_exempt_target`. */ @JsonDeserialize( using = CollaborationAllowlistExemptTargetTypeField @@ -31,11 +37,13 @@ public class CollaborationAllowlistExemptTarget extends SerializableObject { protected UserMini user; + /** The time the entry was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** The time the entry was modified. */ @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTargetEnterpriseField.java b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTargetEnterpriseField.java index 099dcc04b..f9f571d9b 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTargetEnterpriseField.java +++ b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTargetEnterpriseField.java @@ -11,8 +11,10 @@ @JsonFilter("nullablePropertyFilter") public class CollaborationAllowlistExemptTargetEnterpriseField extends SerializableObject { + /** The unique identifier for this enterprise. */ protected String id; + /** The value will always be `enterprise`. */ @JsonDeserialize( using = CollaborationAllowlistExemptTargetEnterpriseTypeField @@ -23,6 +25,7 @@ public class CollaborationAllowlistExemptTargetEnterpriseField extends Serializa .CollaborationAllowlistExemptTargetEnterpriseTypeFieldSerializer.class) protected EnumWrapper type; + /** The name of the enterprise. */ protected String name; public CollaborationAllowlistExemptTargetEnterpriseField() { diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargets.java b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargets.java index 23ef65bab..77d13034b 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargets.java +++ b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargets.java @@ -9,19 +9,33 @@ import java.util.List; import java.util.Objects; +/** + * A list of users exempt from any of the restrictions imposed by the list of allowed collaboration + * domains for this enterprise. + */ @JsonFilter("nullablePropertyFilter") public class CollaborationAllowlistExemptTargets extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** The marker for the start of the previous page of results. */ @JsonProperty("prev_marker") @Nullable protected String prevMarker; + /** + * A list of users exempt from any of the restrictions imposed by the list of allowed + * collaboration domains for this enterprise. + */ protected List entries; public CollaborationAllowlistExemptTargets() { diff --git a/src/main/java/com/box/sdkgen/schemas/collaborations/Collaborations.java b/src/main/java/com/box/sdkgen/schemas/collaborations/Collaborations.java index e810cc4b8..bbcd0723c 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaborations/Collaborations.java +++ b/src/main/java/com/box/sdkgen/schemas/collaborations/Collaborations.java @@ -9,19 +9,27 @@ import java.util.List; import java.util.Objects; +/** A list of collaborations. */ @JsonFilter("nullablePropertyFilter") public class Collaborations extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** The marker for the start of the previous page of results. */ @JsonProperty("prev_marker") @Nullable protected String prevMarker; + /** A list of collaborations. */ protected List entries; public Collaborations() { diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationsoffsetpaginated/CollaborationsOffsetPaginated.java b/src/main/java/com/box/sdkgen/schemas/collaborationsoffsetpaginated/CollaborationsOffsetPaginated.java index a55b7b0de..8db083b5d 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaborationsoffsetpaginated/CollaborationsOffsetPaginated.java +++ b/src/main/java/com/box/sdkgen/schemas/collaborationsoffsetpaginated/CollaborationsOffsetPaginated.java @@ -8,16 +8,36 @@ import java.util.List; import java.util.Objects; +/** A list of collaborations. */ @JsonFilter("nullablePropertyFilter") public class CollaborationsOffsetPaginated extends SerializableObject { + /** + * One greater than the offset of the last entry in the entire collection. The total number of + * entries in the collection may be less than `total_count`. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ @JsonProperty("total_count") protected Long totalCount; + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** + * The 0-based offset of the first entry in this set. This will be the same as the `offset` query + * parameter. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ protected Long offset; + /** A list of collaborations. */ protected List entries; public CollaborationsOffsetPaginated() { diff --git a/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariable.java b/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariable.java index 76fe54006..39a5876c9 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariable.java +++ b/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariable.java @@ -10,15 +10,21 @@ import java.util.List; import java.util.Objects; +/** + * A collaborator object. Allows to specify a list of user ID's that are affected by the workflow + * result. + */ @JsonFilter("nullablePropertyFilter") public class CollaboratorVariable extends SerializableObject { + /** Collaborator object type. */ @JsonDeserialize( using = CollaboratorVariableTypeField.CollaboratorVariableTypeFieldDeserializer.class) @JsonSerialize( using = CollaboratorVariableTypeField.CollaboratorVariableTypeFieldSerializer.class) protected EnumWrapper type; + /** Variable type for the Collaborator object. */ @JsonDeserialize( using = CollaboratorVariableVariableTypeField.CollaboratorVariableVariableTypeFieldDeserializer @@ -30,6 +36,7 @@ public class CollaboratorVariable extends SerializableObject { @JsonProperty("variable_type") protected EnumWrapper variableType; + /** A list of user IDs. */ @JsonProperty("variable_value") protected final List variableValue; diff --git a/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableValueField.java b/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableValueField.java index 4d1d1ac66..8bbb2bac2 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableValueField.java +++ b/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableValueField.java @@ -12,6 +12,7 @@ @JsonFilter("nullablePropertyFilter") public class CollaboratorVariableVariableValueField extends SerializableObject { + /** The object type. */ @JsonDeserialize( using = CollaboratorVariableVariableValueTypeField @@ -22,6 +23,7 @@ public class CollaboratorVariableVariableValueField extends SerializableObject { .CollaboratorVariableVariableValueTypeFieldSerializer.class) protected EnumWrapper type; + /** User's ID. */ protected final String id; public CollaboratorVariableVariableValueField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/collection/Collection.java b/src/main/java/com/box/sdkgen/schemas/collection/Collection.java index 292e689fb..726f6ec84 100644 --- a/src/main/java/com/box/sdkgen/schemas/collection/Collection.java +++ b/src/main/java/com/box/sdkgen/schemas/collection/Collection.java @@ -9,19 +9,34 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** + * A collection of items, including files and folders. + * + *

    Currently, the only collection available is the `favorites` collection. + * + *

    The contents of a collection can be explored in a similar way to which the contents of a + * folder is explored. + */ @JsonFilter("nullablePropertyFilter") public class Collection extends SerializableObject { + /** The unique identifier for this collection. */ protected String id; + /** The value will always be `collection`. */ @JsonDeserialize(using = CollectionTypeField.CollectionTypeFieldDeserializer.class) @JsonSerialize(using = CollectionTypeField.CollectionTypeFieldSerializer.class) protected EnumWrapper type; + /** The name of the collection. */ @JsonDeserialize(using = CollectionNameField.CollectionNameFieldDeserializer.class) @JsonSerialize(using = CollectionNameField.CollectionNameFieldSerializer.class) protected EnumWrapper name; + /** + * The type of the collection. This is used to determine the proper visual treatment for + * collections. + */ @JsonDeserialize( using = CollectionCollectionTypeField.CollectionCollectionTypeFieldDeserializer.class) @JsonSerialize( diff --git a/src/main/java/com/box/sdkgen/schemas/collections/Collections.java b/src/main/java/com/box/sdkgen/schemas/collections/Collections.java index 8fe7d34c2..1dae9e8b4 100644 --- a/src/main/java/com/box/sdkgen/schemas/collections/Collections.java +++ b/src/main/java/com/box/sdkgen/schemas/collections/Collections.java @@ -8,18 +8,44 @@ import java.util.List; import java.util.Objects; +/** A list of collections. */ @JsonFilter("nullablePropertyFilter") public class Collections extends SerializableObject { + /** + * One greater than the offset of the last entry in the entire collection. The total number of + * entries in the collection may be less than `total_count`. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ @JsonProperty("total_count") protected Long totalCount; + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** + * The 0-based offset of the first entry in this set. This will be the same as the `offset` query + * parameter. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ protected Long offset; + /** + * The order by which items are returned. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ protected List order; + /** A list of collections. */ protected List entries; public Collections() { diff --git a/src/main/java/com/box/sdkgen/schemas/collections/CollectionsOrderField.java b/src/main/java/com/box/sdkgen/schemas/collections/CollectionsOrderField.java index eec2fc632..423acc391 100644 --- a/src/main/java/com/box/sdkgen/schemas/collections/CollectionsOrderField.java +++ b/src/main/java/com/box/sdkgen/schemas/collections/CollectionsOrderField.java @@ -11,8 +11,10 @@ @JsonFilter("nullablePropertyFilter") public class CollectionsOrderField extends SerializableObject { + /** The field to order by. */ protected String by; + /** The direction to order by, either ascending or descending. */ @JsonDeserialize( using = CollectionsOrderDirectionField.CollectionsOrderDirectionFieldDeserializer.class) @JsonSerialize( diff --git a/src/main/java/com/box/sdkgen/schemas/comment/Comment.java b/src/main/java/com/box/sdkgen/schemas/comment/Comment.java index c9ab994b5..2dcecf2ad 100644 --- a/src/main/java/com/box/sdkgen/schemas/comment/Comment.java +++ b/src/main/java/com/box/sdkgen/schemas/comment/Comment.java @@ -12,22 +12,27 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** Standard representation of a comment. */ @JsonFilter("nullablePropertyFilter") public class Comment extends CommentBase { + /** Whether or not this comment is a reply to another comment. */ @JsonProperty("is_reply_comment") protected Boolean isReplyComment; + /** The text of the comment, as provided by the user. */ protected String message; @JsonProperty("created_by") protected UserMini createdBy; + /** The time this comment was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** The time this comment was last modified. */ @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/comment/CommentItemField.java b/src/main/java/com/box/sdkgen/schemas/comment/CommentItemField.java index df27a53ef..f33e5e14d 100644 --- a/src/main/java/com/box/sdkgen/schemas/comment/CommentItemField.java +++ b/src/main/java/com/box/sdkgen/schemas/comment/CommentItemField.java @@ -8,8 +8,10 @@ @JsonFilter("nullablePropertyFilter") public class CommentItemField extends SerializableObject { + /** The unique identifier for this object. */ protected String id; + /** The type for this object. */ protected String type; public CommentItemField() { diff --git a/src/main/java/com/box/sdkgen/schemas/commentbase/CommentBase.java b/src/main/java/com/box/sdkgen/schemas/commentbase/CommentBase.java index 9016f73d8..fe94a27a8 100644 --- a/src/main/java/com/box/sdkgen/schemas/commentbase/CommentBase.java +++ b/src/main/java/com/box/sdkgen/schemas/commentbase/CommentBase.java @@ -8,11 +8,14 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** Base representation of a comment. */ @JsonFilter("nullablePropertyFilter") public class CommentBase extends SerializableObject { + /** The unique identifier for this comment. */ protected String id; + /** The value will always be `comment`. */ @JsonDeserialize(using = CommentBaseTypeField.CommentBaseTypeFieldDeserializer.class) @JsonSerialize(using = CommentBaseTypeField.CommentBaseTypeFieldSerializer.class) protected EnumWrapper type; diff --git a/src/main/java/com/box/sdkgen/schemas/commentfull/CommentFull.java b/src/main/java/com/box/sdkgen/schemas/commentfull/CommentFull.java index fb1578afe..3a449ea7b 100644 --- a/src/main/java/com/box/sdkgen/schemas/commentfull/CommentFull.java +++ b/src/main/java/com/box/sdkgen/schemas/commentfull/CommentFull.java @@ -10,9 +10,17 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** + * Comments are messages created on files. Comments can be made independently or created as + * responses to other comments. + */ @JsonFilter("nullablePropertyFilter") public class CommentFull extends Comment { + /** + * The string representing the comment text with @mentions included. @mention format is + * @[id:username] where `id` is user's Box ID and `username` is their display name. + */ @JsonProperty("tagged_message") protected String taggedMessage; diff --git a/src/main/java/com/box/sdkgen/schemas/comments/Comments.java b/src/main/java/com/box/sdkgen/schemas/comments/Comments.java index de0059d8c..23894445e 100644 --- a/src/main/java/com/box/sdkgen/schemas/comments/Comments.java +++ b/src/main/java/com/box/sdkgen/schemas/comments/Comments.java @@ -8,18 +8,44 @@ import java.util.List; import java.util.Objects; +/** A list of comments. */ @JsonFilter("nullablePropertyFilter") public class Comments extends SerializableObject { + /** + * One greater than the offset of the last entry in the entire collection. The total number of + * entries in the collection may be less than `total_count`. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ @JsonProperty("total_count") protected Long totalCount; + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** + * The 0-based offset of the first entry in this set. This will be the same as the `offset` query + * parameter. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ protected Long offset; + /** + * The order by which items are returned. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ protected List order; + /** A list of comments. */ protected List entries; public Comments() { diff --git a/src/main/java/com/box/sdkgen/schemas/comments/CommentsOrderField.java b/src/main/java/com/box/sdkgen/schemas/comments/CommentsOrderField.java index af4bf8c37..365e49930 100644 --- a/src/main/java/com/box/sdkgen/schemas/comments/CommentsOrderField.java +++ b/src/main/java/com/box/sdkgen/schemas/comments/CommentsOrderField.java @@ -11,8 +11,10 @@ @JsonFilter("nullablePropertyFilter") public class CommentsOrderField extends SerializableObject { + /** The field to order by. */ protected String by; + /** The direction to order by, either ascending or descending. */ @JsonDeserialize( using = CommentsOrderDirectionField.CommentsOrderDirectionFieldDeserializer.class) @JsonSerialize(using = CommentsOrderDirectionField.CommentsOrderDirectionFieldSerializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariable.java b/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariable.java index cc3835224..262b3d3a1 100644 --- a/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariable.java +++ b/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariable.java @@ -9,15 +9,20 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** + * A completion rule object. Determines if an action should be completed by all or any assignees. + */ @JsonFilter("nullablePropertyFilter") public class CompletionRuleVariable extends SerializableObject { + /** Completion Rule object type. */ @JsonDeserialize( using = CompletionRuleVariableTypeField.CompletionRuleVariableTypeFieldDeserializer.class) @JsonSerialize( using = CompletionRuleVariableTypeField.CompletionRuleVariableTypeFieldSerializer.class) protected EnumWrapper type; + /** Variable type for the Completion Rule object. */ @JsonDeserialize( using = CompletionRuleVariableVariableTypeField @@ -29,6 +34,7 @@ public class CompletionRuleVariable extends SerializableObject { @JsonProperty("variable_type") protected EnumWrapper variableType; + /** Variable values for a completion rule. */ @JsonDeserialize( using = CompletionRuleVariableVariableValueField diff --git a/src/main/java/com/box/sdkgen/schemas/conflicterror/ConflictError.java b/src/main/java/com/box/sdkgen/schemas/conflicterror/ConflictError.java index 50d5f2f1d..1dab03f6a 100644 --- a/src/main/java/com/box/sdkgen/schemas/conflicterror/ConflictError.java +++ b/src/main/java/com/box/sdkgen/schemas/conflicterror/ConflictError.java @@ -8,6 +8,7 @@ import java.util.Map; import java.util.Objects; +/** The error that occurs when a file can not be created due to a conflict. */ @JsonFilter("nullablePropertyFilter") public class ConflictError extends ClientError { diff --git a/src/main/java/com/box/sdkgen/schemas/conflicterror/ConflictErrorContextInfoField.java b/src/main/java/com/box/sdkgen/schemas/conflicterror/ConflictErrorContextInfoField.java index 7fd5d68e3..c2257a365 100644 --- a/src/main/java/com/box/sdkgen/schemas/conflicterror/ConflictErrorContextInfoField.java +++ b/src/main/java/com/box/sdkgen/schemas/conflicterror/ConflictErrorContextInfoField.java @@ -10,6 +10,7 @@ @JsonFilter("nullablePropertyFilter") public class ConflictErrorContextInfoField extends SerializableObject { + /** A list of the file conflicts that caused this error. */ protected List conflicts; public ConflictErrorContextInfoField() { diff --git a/src/main/java/com/box/sdkgen/schemas/createaiagent/CreateAiAgent.java b/src/main/java/com/box/sdkgen/schemas/createaiagent/CreateAiAgent.java index b006f468a..ac19a73fd 100644 --- a/src/main/java/com/box/sdkgen/schemas/createaiagent/CreateAiAgent.java +++ b/src/main/java/com/box/sdkgen/schemas/createaiagent/CreateAiAgent.java @@ -14,21 +14,35 @@ import java.util.List; import java.util.Objects; +/** The schema for AI agent create request. */ @JsonFilter("nullablePropertyFilter") public class CreateAiAgent extends SerializableObject { + /** The type of agent used to handle queries. */ @JsonDeserialize(using = CreateAiAgentTypeField.CreateAiAgentTypeFieldDeserializer.class) @JsonSerialize(using = CreateAiAgentTypeField.CreateAiAgentTypeFieldSerializer.class) protected EnumWrapper type; + /** The name of the AI Agent. */ protected final String name; + /** + * The state of the AI Agent. Possible values are: `enabled`, `disabled`, and + * `enabled_for_selected_users`. + */ @JsonProperty("access_state") protected final String accessState; + /** + * The icon reference of the AI Agent. It should have format of the URL + * `https://cdn01.boxcdn.net/app-assets/aistudio/avatars/<file_name>` where possible values + * of `file_name` are: + * `logo_boxAi.png`,`logo_stamp.png`,`logo_legal.png`,`logo_finance.png`,`logo_config.png`,`logo_handshake.png`,`logo_analytics.png`,`logo_classification.png`. + */ @JsonProperty("icon_reference") protected String iconReference; + /** List of allowed users or groups. */ @JsonProperty("allowed_entities") protected List allowedEntities; diff --git a/src/main/java/com/box/sdkgen/schemas/devicepinner/DevicePinner.java b/src/main/java/com/box/sdkgen/schemas/devicepinner/DevicePinner.java index 2defde2d6..44e3f2cf4 100644 --- a/src/main/java/com/box/sdkgen/schemas/devicepinner/DevicePinner.java +++ b/src/main/java/com/box/sdkgen/schemas/devicepinner/DevicePinner.java @@ -10,11 +10,14 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** Device pins allow enterprises to control what devices can use native Box applications. */ @JsonFilter("nullablePropertyFilter") public class DevicePinner extends SerializableObject { + /** The unique identifier for this device pin. */ protected String id; + /** The value will always be `device_pinner`. */ @JsonDeserialize(using = DevicePinnerTypeField.DevicePinnerTypeFieldDeserializer.class) @JsonSerialize(using = DevicePinnerTypeField.DevicePinnerTypeFieldSerializer.class) protected EnumWrapper type; @@ -22,6 +25,7 @@ public class DevicePinner extends SerializableObject { @JsonProperty("owned_by") protected UserMini ownedBy; + /** The type of device being pinned. */ @JsonProperty("product_name") protected String productName; diff --git a/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinners.java b/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinners.java index 2a80ccb0f..bc5fe9ff4 100644 --- a/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinners.java +++ b/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinners.java @@ -8,16 +8,24 @@ import java.util.List; import java.util.Objects; +/** A list of device pins. */ @JsonFilter("nullablePropertyFilter") public class DevicePinners extends SerializableObject { + /** A list of device pins. */ protected List entries; + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") protected Long nextMarker; + /** The order by which items are returned. */ protected List order; public DevicePinners() { diff --git a/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinnersOrderField.java b/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinnersOrderField.java index 4467c7a2b..4116b59cf 100644 --- a/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinnersOrderField.java +++ b/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinnersOrderField.java @@ -11,10 +11,12 @@ @JsonFilter("nullablePropertyFilter") public class DevicePinnersOrderField extends SerializableObject { + /** The field that is ordered by. */ @JsonDeserialize(using = DevicePinnersOrderByField.DevicePinnersOrderByFieldDeserializer.class) @JsonSerialize(using = DevicePinnersOrderByField.DevicePinnersOrderByFieldSerializer.class) protected EnumWrapper by; + /** The direction to order by, either ascending or descending. */ @JsonDeserialize( using = DevicePinnersOrderDirectionField.DevicePinnersOrderDirectionFieldDeserializer.class) @JsonSerialize( diff --git a/src/main/java/com/box/sdkgen/schemas/emailalias/EmailAlias.java b/src/main/java/com/box/sdkgen/schemas/emailalias/EmailAlias.java index 0a382cff1..778ba1dad 100644 --- a/src/main/java/com/box/sdkgen/schemas/emailalias/EmailAlias.java +++ b/src/main/java/com/box/sdkgen/schemas/emailalias/EmailAlias.java @@ -9,17 +9,22 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** An email alias for a user. */ @JsonFilter("nullablePropertyFilter") public class EmailAlias extends SerializableObject { + /** The unique identifier for this object. */ protected String id; + /** The value will always be `email_alias`. */ @JsonDeserialize(using = EmailAliasTypeField.EmailAliasTypeFieldDeserializer.class) @JsonSerialize(using = EmailAliasTypeField.EmailAliasTypeFieldSerializer.class) protected EnumWrapper type; + /** The email address. */ protected String email; + /** Whether the email address has been confirmed. */ @JsonProperty("is_confirmed") protected Boolean isConfirmed; diff --git a/src/main/java/com/box/sdkgen/schemas/emailaliases/EmailAliases.java b/src/main/java/com/box/sdkgen/schemas/emailaliases/EmailAliases.java index 42f2aad83..4b297a582 100644 --- a/src/main/java/com/box/sdkgen/schemas/emailaliases/EmailAliases.java +++ b/src/main/java/com/box/sdkgen/schemas/emailaliases/EmailAliases.java @@ -8,12 +8,15 @@ import java.util.List; import java.util.Objects; +/** A list of email aliases. */ @JsonFilter("nullablePropertyFilter") public class EmailAliases extends SerializableObject { + /** The number of email aliases. */ @JsonProperty("total_count") protected Long totalCount; + /** A list of email aliases. */ protected List entries; public EmailAliases() { diff --git a/src/main/java/com/box/sdkgen/schemas/enterprisebase/EnterpriseBase.java b/src/main/java/com/box/sdkgen/schemas/enterprisebase/EnterpriseBase.java index b9fb043d4..306fcb499 100644 --- a/src/main/java/com/box/sdkgen/schemas/enterprisebase/EnterpriseBase.java +++ b/src/main/java/com/box/sdkgen/schemas/enterprisebase/EnterpriseBase.java @@ -8,11 +8,14 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** A mini representation of a enterprise, used when nested within another resource. */ @JsonFilter("nullablePropertyFilter") public class EnterpriseBase extends SerializableObject { + /** The unique identifier for this enterprise. */ protected String id; + /** The value will always be `enterprise`. */ @JsonDeserialize(using = EnterpriseBaseTypeField.EnterpriseBaseTypeFieldDeserializer.class) @JsonSerialize(using = EnterpriseBaseTypeField.EnterpriseBaseTypeFieldSerializer.class) protected EnumWrapper type; diff --git a/src/main/java/com/box/sdkgen/schemas/event/Event.java b/src/main/java/com/box/sdkgen/schemas/event/Event.java index f48ac6fb3..5f00369f9 100644 --- a/src/main/java/com/box/sdkgen/schemas/event/Event.java +++ b/src/main/java/com/box/sdkgen/schemas/event/Event.java @@ -19,21 +19,26 @@ import java.util.Map; import java.util.Objects; +/** The description of an event that happened within Box. */ @JsonFilter("nullablePropertyFilter") public class Event extends SerializableObject { + /** The value will always be `event`. */ protected String type; + /** When the event object was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** When the event object was recorded in database. */ @JsonProperty("recorded_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime recordedAt; + /** The ID of the event object. You can use this to detect duplicate events. */ @JsonProperty("event_id") protected String eventId; @@ -45,11 +50,21 @@ public class Event extends SerializableObject { @JsonProperty("event_type") protected EnumWrapper eventType; + /** + * The session of the user that performed the action. Not all events will populate this attribute. + */ @JsonProperty("session_id") protected String sessionId; protected EventSourceResource source; + /** + * This object provides additional information about the event if available. + * + *

    This can include how a user performed an event as well as additional information to + * correlate an event to external KeySafe logs. Not all events have an `additional_details` + * object. This object is only available in the Enterprise Events. + */ @JsonProperty("additional_details") protected EventAdditionalDetailsField additionalDetails; diff --git a/src/main/java/com/box/sdkgen/schemas/events/Events.java b/src/main/java/com/box/sdkgen/schemas/events/Events.java index 81cc10d4c..e851b8204 100644 --- a/src/main/java/com/box/sdkgen/schemas/events/Events.java +++ b/src/main/java/com/box/sdkgen/schemas/events/Events.java @@ -8,15 +8,19 @@ import java.util.List; import java.util.Objects; +/** A list of event objects. */ @JsonFilter("nullablePropertyFilter") public class Events extends SerializableObject { + /** The number of events returned in this response. */ @JsonProperty("chunk_size") protected Long chunkSize; + /** The stream position of the start of the next page (chunk) of events. */ @JsonProperty("next_stream_position") protected EventsNextStreamPositionField nextStreamPosition; + /** A list of events. */ protected List entries; public Events() { diff --git a/src/main/java/com/box/sdkgen/schemas/eventsource/EventSource.java b/src/main/java/com/box/sdkgen/schemas/eventsource/EventSource.java index 60afd1bcf..2e77eaa29 100644 --- a/src/main/java/com/box/sdkgen/schemas/eventsource/EventSource.java +++ b/src/main/java/com/box/sdkgen/schemas/eventsource/EventSource.java @@ -12,20 +12,28 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** The source file or folder that triggered an event in the event stream. */ @JsonFilter("nullablePropertyFilter") public class EventSource extends SerializableObject { + /** The type of the item that the event represents. Can be `file` or `folder`. */ @JsonDeserialize(using = EventSourceItemTypeField.EventSourceItemTypeFieldDeserializer.class) @JsonSerialize(using = EventSourceItemTypeField.EventSourceItemTypeFieldSerializer.class) @JsonProperty("item_type") protected final EnumWrapper itemType; + /** The unique identifier that represents the item. */ @JsonProperty("item_id") protected final String itemId; + /** The name of the item. */ @JsonProperty("item_name") protected final String itemName; + /** + * The object containing classification information for the item that triggered the event. This + * field will not appear if the item does not have a classification set. + */ protected EventSourceClassificationField classification; @Nullable protected FolderMini parent; diff --git a/src/main/java/com/box/sdkgen/schemas/eventsource/EventSourceClassificationField.java b/src/main/java/com/box/sdkgen/schemas/eventsource/EventSourceClassificationField.java index 093fa1538..b5831e3e5 100644 --- a/src/main/java/com/box/sdkgen/schemas/eventsource/EventSourceClassificationField.java +++ b/src/main/java/com/box/sdkgen/schemas/eventsource/EventSourceClassificationField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class EventSourceClassificationField extends SerializableObject { + /** The classification's name. */ protected String name; public EventSourceClassificationField() { diff --git a/src/main/java/com/box/sdkgen/schemas/file/File.java b/src/main/java/com/box/sdkgen/schemas/file/File.java index 61cce4e6f..3963f7de4 100644 --- a/src/main/java/com/box/sdkgen/schemas/file/File.java +++ b/src/main/java/com/box/sdkgen/schemas/file/File.java @@ -15,44 +15,65 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** A standard representation of a file, as returned from any file API endpoints by default. */ @JsonFilter("nullablePropertyFilter") public class File extends FileMini { + /** + * The optional description of this file. If the description exceeds 255 characters, the first 255 + * characters are set as a file description and the rest of it is ignored. + */ protected String description; + /** + * The file size in bytes. Be careful parsing this integer as it can get very large and cause an + * integer overflow. + */ protected Long size; @JsonProperty("path_collection") protected FilePathCollectionField pathCollection; + /** The date and time when the file was created on Box. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** The date and time when the file was last updated on Box. */ @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime modifiedAt; + /** The time at which this file was put in the trash. */ @JsonProperty("trashed_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable protected OffsetDateTime trashedAt; + /** The time at which this file is expected to be purged from the trash. */ @JsonProperty("purged_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable protected OffsetDateTime purgedAt; + /** + * The date and time at which this file was originally created, which might be before it was + * uploaded to Box. + */ @JsonProperty("content_created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable protected OffsetDateTime contentCreatedAt; + /** + * The date and time at which this file was last updated, which might be before it was uploaded to + * Box. + */ @JsonProperty("content_modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @@ -73,6 +94,12 @@ public class File extends FileMini { @Nullable protected FolderMini parent; + /** + * Defines if this item has been deleted or not. + * + *

    * `active` when the item has is not in the trash * `trashed` when the item has been moved to + * the trash but not deleted * `deleted` when the item has been permanently deleted. + */ @JsonDeserialize(using = FileItemStatusField.FileItemStatusFieldDeserializer.class) @JsonSerialize(using = FileItemStatusField.FileItemStatusFieldSerializer.class) @JsonProperty("item_status") diff --git a/src/main/java/com/box/sdkgen/schemas/file/FilePathCollectionField.java b/src/main/java/com/box/sdkgen/schemas/file/FilePathCollectionField.java index 46fcae8b8..630a05232 100644 --- a/src/main/java/com/box/sdkgen/schemas/file/FilePathCollectionField.java +++ b/src/main/java/com/box/sdkgen/schemas/file/FilePathCollectionField.java @@ -10,9 +10,11 @@ @JsonFilter("nullablePropertyFilter") public class FilePathCollectionField extends SerializableObject { + /** The number of folders in this list. */ @JsonProperty("total_count") protected final long totalCount; + /** The parent folders for this item. */ protected final List entries; public FilePathCollectionField( diff --git a/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkField.java b/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkField.java index 650c1a30e..2ec833a4a 100644 --- a/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkField.java +++ b/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkField.java @@ -15,24 +15,60 @@ @JsonFilter("nullablePropertyFilter") public class FileSharedLinkField extends SerializableObject { + /** + * The URL that can be used to access the item on Box. + * + *

    This URL will display the item in Box's preview UI where the file can be downloaded if + * allowed. + * + *

    This URL will continue to work even when a custom `vanity_url` has been set for this shared + * link. + */ protected final String url; + /** + * A URL that can be used to download the file. This URL can be used in a browser to download the + * file. This URL includes the file extension so that the file will be saved with the right file + * type. + * + *

    This property will be `null` for folders. + */ @JsonProperty("download_url") @Nullable protected String downloadUrl; + /** + * The "Custom URL" that can also be used to preview the item on Box. Custom URLs can only be + * created or modified in the Box Web application. + */ @JsonProperty("vanity_url") @Nullable protected String vanityUrl; + /** The custom name of a shared link, as used in the `vanity_url` field. */ @JsonProperty("vanity_name") @Nullable protected String vanityName; + /** + * The access level for this shared link. + * + *

    * `open` - provides access to this item to anyone with this link * `company` - only provides + * access to this item to people the same company * `collaborators` - only provides access to this + * item to people who are collaborators on this item + * + *

    If this field is omitted when creating the shared link, the access level will be set to the + * default access level specified by the enterprise admin. + */ @JsonDeserialize(using = FileSharedLinkAccessField.FileSharedLinkAccessFieldDeserializer.class) @JsonSerialize(using = FileSharedLinkAccessField.FileSharedLinkAccessFieldSerializer.class) protected EnumWrapper access; + /** + * The effective access level for the shared link. This can be a more restrictive access level + * than the value in the `access` field when the enterprise settings restrict the allowed access + * levels. + */ @JsonDeserialize( using = FileSharedLinkEffectiveAccessField.FileSharedLinkEffectiveAccessFieldDeserializer.class) @@ -41,6 +77,11 @@ public class FileSharedLinkField extends SerializableObject { @JsonProperty("effective_access") protected final EnumWrapper effectiveAccess; + /** + * The effective permissions for this shared link. These result in the more restrictive + * combination of the share link permissions and the item permissions set by the administrator, + * the owner, and any ancestor item such as a folder. + */ @JsonDeserialize( using = FileSharedLinkEffectivePermissionField.FileSharedLinkEffectivePermissionFieldDeserializer @@ -52,20 +93,31 @@ public class FileSharedLinkField extends SerializableObject { @JsonProperty("effective_permission") protected final EnumWrapper effectivePermission; + /** + * The date and time when this link will be unshared. This field can only be set by users with + * paid accounts. + */ @JsonProperty("unshared_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable protected OffsetDateTime unsharedAt; + /** Defines if the shared link requires a password to access the item. */ @JsonProperty("is_password_enabled") protected final boolean isPasswordEnabled; + /** + * Defines if this link allows a user to preview, edit, and download an item. These permissions + * refer to the shared link only and do not supersede permissions applied to the item itself. + */ protected FileSharedLinkPermissionsField permissions; + /** The number of times this item has been downloaded. */ @JsonProperty("download_count") protected final long downloadCount; + /** The number of times this item has been previewed. */ @JsonProperty("preview_count") protected final long previewCount; diff --git a/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkPermissionsField.java b/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkPermissionsField.java index 762c7e7be..70d832ae4 100644 --- a/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkPermissionsField.java +++ b/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkPermissionsField.java @@ -8,12 +8,31 @@ @JsonFilter("nullablePropertyFilter") public class FileSharedLinkPermissionsField extends SerializableObject { + /** + * Defines if the shared link allows for the item to be downloaded. For shared links on folders, + * this also applies to any items in the folder. + * + *

    This value can be set to `true` when the effective access level is set to `open` or + * `company`, not `collaborators`. + */ @JsonProperty("can_download") protected final boolean canDownload; + /** + * Defines if the shared link allows for the item to be previewed. + * + *

    This value is always `true`. For shared links on folders this also applies to any items in + * the folder. + */ @JsonProperty("can_preview") protected final boolean canPreview; + /** + * Defines if the shared link allows for the item to be edited. + * + *

    This value can only be `true` if `can_download` is also `true` and if the item has a type of + * `file`. + */ @JsonProperty("can_edit") protected final boolean canEdit; diff --git a/src/main/java/com/box/sdkgen/schemas/filebase/FileBase.java b/src/main/java/com/box/sdkgen/schemas/filebase/FileBase.java index 31765f53b..9a7cd7212 100644 --- a/src/main/java/com/box/sdkgen/schemas/filebase/FileBase.java +++ b/src/main/java/com/box/sdkgen/schemas/filebase/FileBase.java @@ -10,13 +10,29 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** + * The bare basic representation of a file, the minimal amount of fields returned when using the + * `fields` query parameter. + */ @JsonFilter("nullablePropertyFilter") public class FileBase extends SerializableObject { + /** + * The unique identifier that represent a file. + * + *

    The ID for any file can be determined by visiting a file in the web application and copying + * the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` + * is `123`. + */ protected final String id; + /** + * The HTTP `etag` of this file. This can be used within some API endpoints in the `If-Match` and + * `If-None-Match` headers to only perform changes on the file if (no) changes have happened. + */ @Nullable protected String etag; + /** The value will always be `file`. */ @JsonDeserialize(using = FileBaseTypeField.FileBaseTypeFieldDeserializer.class) @JsonSerialize(using = FileBaseTypeField.FileBaseTypeFieldSerializer.class) protected EnumWrapper type; diff --git a/src/main/java/com/box/sdkgen/schemas/fileconflict/FileConflict.java b/src/main/java/com/box/sdkgen/schemas/fileconflict/FileConflict.java index 6497c1f27..3005f4476 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileconflict/FileConflict.java +++ b/src/main/java/com/box/sdkgen/schemas/fileconflict/FileConflict.java @@ -8,6 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** A representation of a file that is used to show. */ @JsonFilter("nullablePropertyFilter") public class FileConflict extends FileMini { diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFull.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFull.java index 737823de9..b833c7b8e 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefull/FileFull.java +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFull.java @@ -29,12 +29,15 @@ import java.util.List; import java.util.Objects; +/** A full representation of a file, as can be returned from any file API endpoints by default. */ @JsonFilter("nullablePropertyFilter") public class FileFull extends File { + /** The version number of this file. */ @JsonProperty("version_number") protected String versionNumber; + /** The number of comments on this file. */ @JsonProperty("comment_count") protected Long commentCount; @@ -44,8 +47,16 @@ public class FileFull extends File { @Nullable protected FileFullLockField lock; + /** + * Indicates the (optional) file extension for this file. By default, this is set to an empty + * string. + */ protected String extension; + /** + * Indicates if the file is a package. Packages are commonly used by Mac Applications and can + * include iWork files. + */ @JsonProperty("is_package") protected Boolean isPackage; @@ -55,22 +66,30 @@ public class FileFull extends File { @JsonProperty("watermark_info") protected FileFullWatermarkInfoField watermarkInfo; + /** + * Specifies if the file can be accessed via the direct shared link or a shared link to a parent + * folder. + */ @JsonProperty("is_accessible_via_shared_link") protected Boolean isAccessibleViaSharedLink; + /** A list of the types of roles that user can be invited at when sharing this file. */ @JsonDeserialize(using = AllowedInviteeRolesDeserializer.class) @JsonSerialize(using = AllowedInviteeRolesSerializer.class) @JsonProperty("allowed_invitee_roles") protected List> allowedInviteeRoles; + /** Specifies if this file is owned by a user outside of the authenticated enterprise. */ @JsonProperty("is_externally_owned") protected Boolean isExternallyOwned; + /** Specifies if this file has any other collaborators. */ @JsonProperty("has_collaborations") protected Boolean hasCollaborations; protected FileFullMetadataField metadata; + /** When the file will automatically be deleted. */ @JsonProperty("expires_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @@ -84,18 +103,25 @@ public class FileFull extends File { @JsonProperty("uploader_display_name") protected String uploaderDisplayName; + /** The retention expiration timestamp for the given file. */ @JsonProperty("disposition_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable protected OffsetDateTime dispositionAt; + /** A list of the types of roles that user can be invited at when sharing this file. */ @JsonDeserialize(using = SharedLinkPermissionOptionsDeserializer.class) @JsonSerialize(using = SharedLinkPermissionOptionsSerializer.class) @JsonProperty("shared_link_permission_options") @Nullable protected List> sharedLinkPermissionOptions; + /** + * This field will return true if the file or any ancestor of the file is associated with at least + * one app item. Note that this will return true even if the context user does not have access to + * the app item(s) associated with the file. + */ @JsonProperty("is_associated_with_app_item") protected Boolean isAssociatedWithAppItem; diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullClassificationField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullClassificationField.java index e08cc1bbb..588d16e6b 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullClassificationField.java +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullClassificationField.java @@ -8,10 +8,16 @@ @JsonFilter("nullablePropertyFilter") public class FileFullClassificationField extends SerializableObject { + /** The name of the classification. */ protected String name; + /** An explanation of the meaning of this classification. */ protected String definition; + /** + * The color that is used to display the classification label in a user-interface. Colors are + * defined by the admin or co-admin who created the classification in the Box web app. + */ protected String color; public FileFullClassificationField() { diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullExpiringEmbedLinkField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullExpiringEmbedLinkField.java index aad36515f..8aa07a188 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullExpiringEmbedLinkField.java +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullExpiringEmbedLinkField.java @@ -14,12 +14,15 @@ @JsonFilter("nullablePropertyFilter") public class FileFullExpiringEmbedLinkField extends SerializableObject { + /** The requested access token. */ @JsonProperty("access_token") protected String accessToken; + /** The time in seconds by which this token will expire. */ @JsonProperty("expires_in") protected Long expiresIn; + /** The type of access token returned. */ @JsonDeserialize( using = FileFullExpiringEmbedLinkTokenTypeField @@ -31,9 +34,17 @@ public class FileFullExpiringEmbedLinkField extends SerializableObject { @JsonProperty("token_type") protected EnumWrapper tokenType; + /** + * The permissions that this access token permits, providing a list of resources (files, folders, + * etc) and the scopes permitted for each of those resources. + */ @JsonProperty("restricted_to") protected List restrictedTo; + /** + * The actual expiring embed URL for this file, constructed from the file ID and access tokens + * specified in this object. + */ protected String url; public FileFullExpiringEmbedLinkField() { diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockField.java index d27579c37..09be491aa 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockField.java +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockField.java @@ -16,8 +16,10 @@ @JsonFilter("nullablePropertyFilter") public class FileFullLockField extends SerializableObject { + /** The unique identifier for this lock. */ protected String id; + /** The value will always be `lock`. */ @JsonDeserialize(using = FileFullLockTypeField.FileFullLockTypeFieldDeserializer.class) @JsonSerialize(using = FileFullLockTypeField.FileFullLockTypeFieldSerializer.class) protected EnumWrapper type; @@ -25,19 +27,27 @@ public class FileFullLockField extends SerializableObject { @JsonProperty("created_by") protected UserMini createdBy; + /** The time this lock was created at. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** The time this lock is to expire at, which might be in the past. */ @JsonProperty("expired_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime expiredAt; + /** Whether or not the file can be downloaded while locked. */ @JsonProperty("is_download_prevented") protected Boolean isDownloadPrevented; + /** + * If the lock is managed by an application rather than a user, this field identifies the type of + * the application that holds the lock. This is an open enum and may be extended with additional + * values in the future. + */ @JsonDeserialize(using = FileFullLockAppTypeField.FileFullLockAppTypeFieldDeserializer.class) @JsonSerialize(using = FileFullLockAppTypeField.FileFullLockAppTypeFieldSerializer.class) @JsonProperty("app_type") diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullPermissionsField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullPermissionsField.java index 59591243d..d8611a030 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullPermissionsField.java +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullPermissionsField.java @@ -8,39 +8,54 @@ @JsonFilter("nullablePropertyFilter") public class FileFullPermissionsField extends SerializableObject { + /** Specifies if the current user can delete this item. */ @JsonProperty("can_delete") protected final boolean canDelete; + /** Specifies if the current user can download this item. */ @JsonProperty("can_download") protected final boolean canDownload; + /** + * Specifies if the current user can invite new users to collaborate on this item, and if the user + * can update the role of a user already collaborated on this item. + */ @JsonProperty("can_invite_collaborator") protected final boolean canInviteCollaborator; + /** Specifies if the user can rename this item. */ @JsonProperty("can_rename") protected final boolean canRename; + /** Specifies if the user can change the access level of an existing shared link on this item. */ @JsonProperty("can_set_share_access") protected final boolean canSetShareAccess; + /** Specifies if the user can create a shared link for this item. */ @JsonProperty("can_share") protected final boolean canShare; + /** Specifies if the user can place annotations on this file. */ @JsonProperty("can_annotate") protected final boolean canAnnotate; + /** Specifies if the user can place comments on this file. */ @JsonProperty("can_comment") protected final boolean canComment; + /** Specifies if the user can preview this file. */ @JsonProperty("can_preview") protected final boolean canPreview; + /** Specifies if the user can upload a new version of this file. */ @JsonProperty("can_upload") protected final boolean canUpload; + /** Specifies if the user view all annotations placed on this file. */ @JsonProperty("can_view_annotations_all") protected final boolean canViewAnnotationsAll; + /** Specifies if the user view annotations placed by themselves on this file. */ @JsonProperty("can_view_annotations_self") protected final boolean canViewAnnotationsSelf; diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesContentField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesContentField.java index 51af58efd..0c551ad0c 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesContentField.java +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesContentField.java @@ -9,6 +9,26 @@ @JsonFilter("nullablePropertyFilter") public class FileFullRepresentationsEntriesContentField extends SerializableObject { + /** + * The download URL that can be used to fetch the representation. Make sure to make an + * authenticated API call to this endpoint. + * + *

    This URL is a template and will require the `{+asset_path}` to be replaced by a path. In + * general, for unpaged representations it can be replaced by an empty string. + * + *

    For paged representations, replace the `{+asset_path}` with the page to request plus the + * extension for the file, for example `1.pdf`. + * + *

    When requesting the download URL the following additional query params can be passed along. + * + *

    * `set_content_disposition_type` - Sets the `Content-Disposition` header in the API response + * with the specified disposition type of either `inline` or `attachment`. If not supplied, the + * `Content-Disposition` header is not included in the response. + * + *

    * `set_content_disposition_filename` - Allows the application to define the representation's + * file name used in the `Content-Disposition` header. If not defined, the filename is derived + * from the source file name in Box combined with the extension of the representation. + */ @JsonProperty("url_template") protected String urlTemplate; diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesField.java index 8ab7d5d44..db883f10e 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesField.java +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesField.java @@ -8,14 +8,19 @@ @JsonFilter("nullablePropertyFilter") public class FileFullRepresentationsEntriesField extends SerializableObject { + /** An object containing the URL that can be used to actually fetch the representation. */ protected FileFullRepresentationsEntriesContentField content; + /** An object containing the URL that can be used to fetch more info on this representation. */ protected FileFullRepresentationsEntriesInfoField info; + /** An object containing the size and type of this presentation. */ protected FileFullRepresentationsEntriesPropertiesField properties; + /** Indicates the file type of the returned representation. */ protected String representation; + /** An object containing the status of this representation. */ protected FileFullRepresentationsEntriesStatusField status; public FileFullRepresentationsEntriesField() { diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesInfoField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesInfoField.java index db4ea96ff..74b6a5a26 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesInfoField.java +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesInfoField.java @@ -8,6 +8,10 @@ @JsonFilter("nullablePropertyFilter") public class FileFullRepresentationsEntriesInfoField extends SerializableObject { + /** + * The API URL that can be used to get more info on this file representation. Make sure to make an + * authenticated API call to this endpoint. + */ protected String url; public FileFullRepresentationsEntriesInfoField() { diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesPropertiesField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesPropertiesField.java index 6d5005da2..952e47b6d 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesPropertiesField.java +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesPropertiesField.java @@ -8,10 +8,13 @@ @JsonFilter("nullablePropertyFilter") public class FileFullRepresentationsEntriesPropertiesField extends SerializableObject { + /** The width by height size of this representation in pixels. */ protected String dimensions; + /** Indicates if the representation is build up out of multiple pages. */ protected String paged; + /** Indicates if the representation can be used as a thumbnail of the file. */ protected String thumb; public FileFullRepresentationsEntriesPropertiesField() { diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesStatusField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesStatusField.java index 425706879..fe869f09f 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesStatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesStatusField.java @@ -11,6 +11,14 @@ @JsonFilter("nullablePropertyFilter") public class FileFullRepresentationsEntriesStatusField extends SerializableObject { + /** + * The status of the representation. + * + *

    * `success` defines the representation as ready to be viewed. * `viewable` defines a video + * to be ready for viewing. * `pending` defines the representation as to be generated. Retry this + * endpoint to re-check the status. * `none` defines that the representation will be created when + * requested. Request the URL defined in the `info` object to trigger this generation. + */ @JsonDeserialize( using = FileFullRepresentationsEntriesStatusStateField diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsField.java index 26dc54d54..546fe6099 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsField.java +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsField.java @@ -9,6 +9,7 @@ @JsonFilter("nullablePropertyFilter") public class FileFullRepresentationsField extends SerializableObject { + /** A list of files. */ protected List entries; public FileFullRepresentationsField() { diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullWatermarkInfoField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullWatermarkInfoField.java index 0ece9aff2..13402d238 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullWatermarkInfoField.java +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullWatermarkInfoField.java @@ -9,6 +9,7 @@ @JsonFilter("nullablePropertyFilter") public class FileFullWatermarkInfoField extends SerializableObject { + /** Specifies if this item has a watermark applied. */ @JsonProperty("is_watermarked") protected Boolean isWatermarked; diff --git a/src/main/java/com/box/sdkgen/schemas/filemini/FileMini.java b/src/main/java/com/box/sdkgen/schemas/filemini/FileMini.java index 15282db6c..cb3d6ddea 100644 --- a/src/main/java/com/box/sdkgen/schemas/filemini/FileMini.java +++ b/src/main/java/com/box/sdkgen/schemas/filemini/FileMini.java @@ -8,14 +8,20 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** A mini representation of a file, used when nested under another resource. */ @JsonFilter("nullablePropertyFilter") public class FileMini extends FileBase { @JsonProperty("sequence_id") protected String sequenceId; + /** The name of the file. */ protected String name; + /** + * The SHA1 hash of the file. This can be used to compare the contents of a file on Box with a + * local file. + */ protected String sha1; @JsonProperty("file_version") diff --git a/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequest.java b/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequest.java index ae5d63887..93a3503e6 100644 --- a/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequest.java +++ b/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequest.java @@ -14,29 +14,77 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** + * A standard representation of a file request, as returned from any file request API endpoints by + * default. + */ @JsonFilter("nullablePropertyFilter") public class FileRequest extends SerializableObject { + /** The unique identifier for this file request. */ protected final String id; + /** The value will always be `file_request`. */ @JsonDeserialize(using = FileRequestTypeField.FileRequestTypeFieldDeserializer.class) @JsonSerialize(using = FileRequestTypeField.FileRequestTypeFieldSerializer.class) protected EnumWrapper type; + /** + * The title of file request. This is shown in the Box UI to users uploading files. + * + *

    This defaults to title of the file request that was copied to create this file request. + */ protected String title; + /** + * The optional description of this file request. This is shown in the Box UI to users uploading + * files. + * + *

    This defaults to description of the file request that was copied to create this file + * request. + */ @Nullable protected String description; + /** + * The status of the file request. This defaults to `active`. + * + *

    When the status is set to `inactive`, the file request will no longer accept new + * submissions, and any visitor to the file request URL will receive a `HTTP 404` status code. + * + *

    This defaults to status of file request that was copied to create this file request. + */ @JsonDeserialize(using = FileRequestStatusField.FileRequestStatusFieldDeserializer.class) @JsonSerialize(using = FileRequestStatusField.FileRequestStatusFieldSerializer.class) protected EnumWrapper status; + /** + * Whether a file request submitter is required to provide their email address. + * + *

    When this setting is set to true, the Box UI will show an email field on the file request + * form. + * + *

    This defaults to setting of file request that was copied to create this file request. + */ @JsonProperty("is_email_required") protected Boolean isEmailRequired; + /** + * Whether a file request submitter is required to provide a description of the files they are + * submitting. + * + *

    When this setting is set to true, the Box UI will show a description field on the file + * request form. + * + *

    This defaults to setting of file request that was copied to create this file request. + */ @JsonProperty("is_description_required") protected Boolean isDescriptionRequired; + /** + * The date after which a file request will no longer accept new submissions. + * + *

    After this date, the `status` will automatically be set to `inactive`. + */ @JsonProperty("expires_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @@ -44,13 +92,24 @@ public class FileRequest extends SerializableObject { protected final FolderMini folder; + /** + * The generated URL for this file request. This URL can be shared with users to let them upload + * files to the associated folder. + */ protected String url; + /** + * The HTTP `etag` of this file. This can be used in combination with the `If-Match` header when + * updating a file request. By providing that header, a change will only be performed on the file + * request if the `etag` on the file request still matches the `etag` provided in the `If-Match` + * header. + */ @Nullable protected String etag; @JsonProperty("created_by") protected UserMini createdBy; + /** The date and time when the file request was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @@ -59,6 +118,7 @@ public class FileRequest extends SerializableObject { @JsonProperty("updated_by") protected UserMini updatedBy; + /** The date and time when the file request was last updated. */ @JsonProperty("updated_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequest.java b/src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequest.java index d2316fe9f..3888ab467 100644 --- a/src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequest.java +++ b/src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequest.java @@ -8,9 +8,11 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** The request body to copy a file request. */ @JsonFilter("nullablePropertyFilter") public class FileRequestCopyRequest extends FileRequestUpdateRequest { + /** The folder to associate the new file request to. */ protected final FileRequestCopyRequestFolderField folder; public FileRequestCopyRequest(@JsonProperty("folder") FileRequestCopyRequestFolderField folder) { diff --git a/src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequestFolderField.java b/src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequestFolderField.java index 2ea20c5fe..24ed0bc9d 100644 --- a/src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequestFolderField.java +++ b/src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequestFolderField.java @@ -12,6 +12,7 @@ @JsonFilter("nullablePropertyFilter") public class FileRequestCopyRequestFolderField extends SerializableObject { + /** The value will always be `folder`. */ @JsonDeserialize( using = FileRequestCopyRequestFolderTypeField.FileRequestCopyRequestFolderTypeFieldDeserializer @@ -22,6 +23,7 @@ public class FileRequestCopyRequestFolderField extends SerializableObject { .class) protected EnumWrapper type; + /** The ID of the folder to associate the new file request to. */ protected final String id; public FileRequestCopyRequestFolderField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/filerequestupdaterequest/FileRequestUpdateRequest.java b/src/main/java/com/box/sdkgen/schemas/filerequestupdaterequest/FileRequestUpdateRequest.java index a868b89ed..a783a5807 100644 --- a/src/main/java/com/box/sdkgen/schemas/filerequestupdaterequest/FileRequestUpdateRequest.java +++ b/src/main/java/com/box/sdkgen/schemas/filerequestupdaterequest/FileRequestUpdateRequest.java @@ -11,13 +11,34 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** The request body to update a file request. */ @JsonFilter("nullablePropertyFilter") public class FileRequestUpdateRequest extends SerializableObject { + /** + * An optional new title for the file request. This can be used to change the title of the file + * request. + * + *

    This will default to the value on the existing file request. + */ protected String title; + /** + * An optional new description for the file request. This can be used to change the description of + * the file request. + * + *

    This will default to the value on the existing file request. + */ protected String description; + /** + * An optional new status of the file request. + * + *

    When the status is set to `inactive`, the file request will no longer accept new + * submissions, and any visitor to the file request URL will receive a `HTTP 404` status code. + * + *

    This will default to the value on the existing file request. + */ @JsonDeserialize( using = FileRequestUpdateRequestStatusField.FileRequestUpdateRequestStatusFieldDeserializer.class) @@ -26,12 +47,36 @@ public class FileRequestUpdateRequest extends SerializableObject { FileRequestUpdateRequestStatusField.FileRequestUpdateRequestStatusFieldSerializer.class) protected EnumWrapper status; + /** + * Whether a file request submitter is required to provide their email address. + * + *

    When this setting is set to true, the Box UI will show an email field on the file request + * form. + * + *

    This will default to the value on the existing file request. + */ @JsonProperty("is_email_required") protected Boolean isEmailRequired; + /** + * Whether a file request submitter is required to provide a description of the files they are + * submitting. + * + *

    When this setting is set to true, the Box UI will show a description field on the file + * request form. + * + *

    This will default to the value on the existing file request. + */ @JsonProperty("is_description_required") protected Boolean isDescriptionRequired; + /** + * The date after which a file request will no longer accept new submissions. + * + *

    After this date, the `status` will automatically be set to `inactive`. + * + *

    This will default to the value on the existing file request. + */ @JsonProperty("expires_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/files/Files.java b/src/main/java/com/box/sdkgen/schemas/files/Files.java index 3868c282a..8e7cce700 100644 --- a/src/main/java/com/box/sdkgen/schemas/files/Files.java +++ b/src/main/java/com/box/sdkgen/schemas/files/Files.java @@ -8,12 +8,15 @@ import java.util.List; import java.util.Objects; +/** A list of files. */ @JsonFilter("nullablePropertyFilter") public class Files extends SerializableObject { + /** The number of files. */ @JsonProperty("total_count") protected Long totalCount; + /** A list of files. */ protected List entries; public Files() { diff --git a/src/main/java/com/box/sdkgen/schemas/filesonhold/FilesOnHold.java b/src/main/java/com/box/sdkgen/schemas/filesonhold/FilesOnHold.java index 2f8d00334..17aef6caf 100644 --- a/src/main/java/com/box/sdkgen/schemas/filesonhold/FilesOnHold.java +++ b/src/main/java/com/box/sdkgen/schemas/filesonhold/FilesOnHold.java @@ -9,19 +9,27 @@ import java.util.List; import java.util.Objects; +/** A list of files on hold for legal policy assignment. */ @JsonFilter("nullablePropertyFilter") public class FilesOnHold extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** The marker for the start of the previous page of results. */ @JsonProperty("prev_marker") @Nullable protected String prevMarker; + /** A list of files. */ protected List entries; public FilesOnHold() { diff --git a/src/main/java/com/box/sdkgen/schemas/filesunderretention/FilesUnderRetention.java b/src/main/java/com/box/sdkgen/schemas/filesunderretention/FilesUnderRetention.java index 1d9238b0c..9cfe29f0b 100644 --- a/src/main/java/com/box/sdkgen/schemas/filesunderretention/FilesUnderRetention.java +++ b/src/main/java/com/box/sdkgen/schemas/filesunderretention/FilesUnderRetention.java @@ -9,19 +9,27 @@ import java.util.List; import java.util.Objects; +/** A list of files under retention. */ @JsonFilter("nullablePropertyFilter") public class FilesUnderRetention extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** The marker for the start of the previous page of results. */ @JsonProperty("prev_marker") @Nullable protected String prevMarker; + /** A list of files. */ protected List entries; public FilesUnderRetention() { diff --git a/src/main/java/com/box/sdkgen/schemas/fileversion/FileVersion.java b/src/main/java/com/box/sdkgen/schemas/fileversion/FileVersion.java index e32577ac0..5f29c34c7 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileversion/FileVersion.java +++ b/src/main/java/com/box/sdkgen/schemas/fileversion/FileVersion.java @@ -13,18 +13,23 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** A standard representation of a file version. */ @JsonFilter("nullablePropertyFilter") public class FileVersion extends FileVersionMini { + /** The name of the file version. */ protected String name; + /** Size of the file version in bytes. */ protected Long size; + /** When the file version object was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** When the file version object was last updated. */ @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @@ -33,6 +38,7 @@ public class FileVersion extends FileVersionMini { @JsonProperty("modified_by") protected UserMini modifiedBy; + /** When the file version object was trashed. */ @JsonProperty("trashed_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @@ -42,6 +48,7 @@ public class FileVersion extends FileVersionMini { @JsonProperty("trashed_by") protected UserMini trashedBy; + /** When the file version was restored from the trash. */ @JsonProperty("restored_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @@ -51,6 +58,7 @@ public class FileVersion extends FileVersionMini { @JsonProperty("restored_by") protected UserMini restoredBy; + /** When the file version object will be permanently deleted. */ @JsonProperty("purged_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionbase/FileVersionBase.java b/src/main/java/com/box/sdkgen/schemas/fileversionbase/FileVersionBase.java index 49480a366..8d9da2dde 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileversionbase/FileVersionBase.java +++ b/src/main/java/com/box/sdkgen/schemas/fileversionbase/FileVersionBase.java @@ -9,11 +9,17 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** + * The bare basic representation of a file version, the minimal amount of fields returned when using + * the `fields` query parameter. + */ @JsonFilter("nullablePropertyFilter") public class FileVersionBase extends SerializableObject { + /** The unique identifier that represent a file version. */ protected final String id; + /** The value will always be `file_version`. */ @JsonDeserialize(using = FileVersionBaseTypeField.FileVersionBaseTypeFieldDeserializer.class) @JsonSerialize(using = FileVersionBaseTypeField.FileVersionBaseTypeFieldSerializer.class) protected EnumWrapper type; diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionfull/FileVersionFull.java b/src/main/java/com/box/sdkgen/schemas/fileversionfull/FileVersionFull.java index 7ce267263..472b076fc 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileversionfull/FileVersionFull.java +++ b/src/main/java/com/box/sdkgen/schemas/fileversionfull/FileVersionFull.java @@ -9,9 +9,14 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** + * A full representation of a file version, as can be returned from any file version API endpoints + * by default. + */ @JsonFilter("nullablePropertyFilter") public class FileVersionFull extends FileVersion { + /** The version number of this file version. */ @JsonProperty("version_number") protected String versionNumber; diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionlegalhold/FileVersionLegalHold.java b/src/main/java/com/box/sdkgen/schemas/fileversionlegalhold/FileVersionLegalHold.java index 8cd74f76a..e5dedd2c7 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileversionlegalhold/FileVersionLegalHold.java +++ b/src/main/java/com/box/sdkgen/schemas/fileversionlegalhold/FileVersionLegalHold.java @@ -15,11 +15,14 @@ import java.util.List; import java.util.Objects; +/** File version legal hold is an entity representing all holds on a File Version. */ @JsonFilter("nullablePropertyFilter") public class FileVersionLegalHold extends SerializableObject { + /** The unique identifier for this file version legal hold. */ protected String id; + /** The value will always be `file_version_legal_hold`. */ @JsonDeserialize( using = FileVersionLegalHoldTypeField.FileVersionLegalHoldTypeFieldDeserializer.class) @JsonSerialize( @@ -31,9 +34,11 @@ public class FileVersionLegalHold extends SerializableObject { protected FileMini file; + /** List of assignments contributing to this Hold. */ @JsonProperty("legal_hold_policy_assignments") protected List legalHoldPolicyAssignments; + /** Time that this File-Version-Legal-Hold was deleted. */ @JsonProperty("deleted_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionlegalholds/FileVersionLegalHolds.java b/src/main/java/com/box/sdkgen/schemas/fileversionlegalholds/FileVersionLegalHolds.java index 4c5a072fe..cf241fa02 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileversionlegalholds/FileVersionLegalHolds.java +++ b/src/main/java/com/box/sdkgen/schemas/fileversionlegalholds/FileVersionLegalHolds.java @@ -9,19 +9,27 @@ import java.util.List; import java.util.Objects; +/** A list of file versions with legal holds. */ @JsonFilter("nullablePropertyFilter") public class FileVersionLegalHolds extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** The marker for the start of the previous page of results. */ @JsonProperty("prev_marker") @Nullable protected String prevMarker; + /** A list of file version legal holds. */ protected List entries; public FileVersionLegalHolds() { diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionmini/FileVersionMini.java b/src/main/java/com/box/sdkgen/schemas/fileversionmini/FileVersionMini.java index b56f36aa4..569c89b49 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileversionmini/FileVersionMini.java +++ b/src/main/java/com/box/sdkgen/schemas/fileversionmini/FileVersionMini.java @@ -7,9 +7,11 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** A mini representation of a file version, used when nested within another resource. */ @JsonFilter("nullablePropertyFilter") public class FileVersionMini extends FileVersionBase { + /** The SHA1 hash of this version of the file. */ protected String sha1; public FileVersionMini(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionretention/FileVersionRetention.java b/src/main/java/com/box/sdkgen/schemas/fileversionretention/FileVersionRetention.java index d5124da98..dcbe5f94f 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileversionretention/FileVersionRetention.java +++ b/src/main/java/com/box/sdkgen/schemas/fileversionretention/FileVersionRetention.java @@ -14,11 +14,24 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** + * A retention policy blocks permanent deletion of content for a specified amount of time. Admins + * can apply policies to specified folders, or an entire enterprise. A file version retention is a + * record for a retained file version. To use this feature, you must have the manage retention + * policies scope enabled for your API key in your application management console. + * + *

    **Note**: File retention API is now **deprecated**. To get information about files and file + * versions under retention, see [files under + * retention](e://get-retention-policy-assignments-id-files-under-retention) or [file versions under + * retention](e://get-retention-policy-assignments-id-file-versions-under-retention) endpoints. + */ @JsonFilter("nullablePropertyFilter") public class FileVersionRetention extends SerializableObject { + /** The unique identifier for this file version retention. */ protected String id; + /** The value will always be `file_version_retention`. */ @JsonDeserialize( using = FileVersionRetentionTypeField.FileVersionRetentionTypeFieldDeserializer.class) @JsonSerialize( @@ -30,11 +43,13 @@ public class FileVersionRetention extends SerializableObject { protected FileMini file; + /** When this file version retention object was created. */ @JsonProperty("applied_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime appliedAt; + /** When the retention expires on this file version retention. */ @JsonProperty("disposition_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionretentions/FileVersionRetentions.java b/src/main/java/com/box/sdkgen/schemas/fileversionretentions/FileVersionRetentions.java index 1d1474d67..19a0d8823 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileversionretentions/FileVersionRetentions.java +++ b/src/main/java/com/box/sdkgen/schemas/fileversionretentions/FileVersionRetentions.java @@ -9,19 +9,34 @@ import java.util.List; import java.util.Objects; +/** + * A list of file version retentions. + * + *

    **Note**: File retention API is now **deprecated**. To get information about files and file + * versions under retention, see [files under + * retention](e://get-retention-policy-assignments-id-files-under-retention) or [file versions under + * retention](e://get-retention-policy-assignments-id-file-versions-under-retention) endpoints. + */ @JsonFilter("nullablePropertyFilter") public class FileVersionRetentions extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** The marker for the start of the previous page of results. */ @JsonProperty("prev_marker") @Nullable protected String prevMarker; + /** A list of file version retentions. */ protected List entries; public FileVersionRetentions() { diff --git a/src/main/java/com/box/sdkgen/schemas/fileversions/FileVersions.java b/src/main/java/com/box/sdkgen/schemas/fileversions/FileVersions.java index 240cec318..d5ec5fde8 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileversions/FileVersions.java +++ b/src/main/java/com/box/sdkgen/schemas/fileversions/FileVersions.java @@ -8,18 +8,44 @@ import java.util.List; import java.util.Objects; +/** A list of file versions. */ @JsonFilter("nullablePropertyFilter") public class FileVersions extends SerializableObject { + /** + * One greater than the offset of the last entry in the entire collection. The total number of + * entries in the collection may be less than `total_count`. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ @JsonProperty("total_count") protected Long totalCount; + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** + * The 0-based offset of the first entry in this set. This will be the same as the `offset` query + * parameter. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ protected Long offset; + /** + * The order by which items are returned. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ protected List order; + /** A list of file versions. */ protected List entries; public FileVersions() { diff --git a/src/main/java/com/box/sdkgen/schemas/fileversions/FileVersionsOrderField.java b/src/main/java/com/box/sdkgen/schemas/fileversions/FileVersionsOrderField.java index 1935e03a8..294ddcf30 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileversions/FileVersionsOrderField.java +++ b/src/main/java/com/box/sdkgen/schemas/fileversions/FileVersionsOrderField.java @@ -11,8 +11,10 @@ @JsonFilter("nullablePropertyFilter") public class FileVersionsOrderField extends SerializableObject { + /** The field to order by. */ protected String by; + /** The direction to order by, either ascending or descending. */ @JsonDeserialize( using = FileVersionsOrderDirectionField.FileVersionsOrderDirectionFieldDeserializer.class) @JsonSerialize( diff --git a/src/main/java/com/box/sdkgen/schemas/folder/Folder.java b/src/main/java/com/box/sdkgen/schemas/folder/Folder.java index 7c0e9131b..081ec901d 100644 --- a/src/main/java/com/box/sdkgen/schemas/folder/Folder.java +++ b/src/main/java/com/box/sdkgen/schemas/folder/Folder.java @@ -14,15 +14,24 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** A standard representation of a folder, as returned from any folder API endpoints by default. */ @JsonFilter("nullablePropertyFilter") public class Folder extends FolderMini { + /** + * The date and time when the folder was created. This value may be `null` for some folders such + * as the root folder or the trash folder. + */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable protected OffsetDateTime createdAt; + /** + * The date and time when the folder was last updated. This value may be `null` for some folders + * such as the root folder or the trash folder. + */ @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @@ -31,6 +40,11 @@ public class Folder extends FolderMini { protected String description; + /** + * The folder size in bytes. + * + *

    Be careful parsing this integer as its value can get very large. + */ protected Long size; @JsonProperty("path_collection") @@ -42,24 +56,28 @@ public class Folder extends FolderMini { @JsonProperty("modified_by") protected UserMini modifiedBy; + /** The time at which this folder was put in the trash. */ @JsonProperty("trashed_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable protected OffsetDateTime trashedAt; + /** The time at which this folder is expected to be purged from the trash. */ @JsonProperty("purged_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable protected OffsetDateTime purgedAt; + /** The date and time at which this folder was originally created. */ @JsonProperty("content_created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable protected OffsetDateTime contentCreatedAt; + /** The date and time at which this folder was last updated. */ @JsonProperty("content_modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @@ -73,12 +91,33 @@ public class Folder extends FolderMini { @Nullable protected FolderSharedLinkField sharedLink; + /** + * The `folder_upload_email` parameter is not `null` if one of the following options is **true**: + * + *

    * The **Allow uploads to this folder via email** and the **Only allow email uploads from + * collaborators in this folder** are [enabled for a folder in the Admin + * Console](https://support.box.com/hc/en-us/articles/360043697534-Upload-to-Box-Through-Email), + * and the user has at least **Upload** permissions granted. + * + *

    * The **Allow uploads to this folder via email** setting is enabled for a folder in the + * Admin Console, and the **Only allow email uploads from collaborators in this folder** setting + * is deactivated (unchecked). + * + *

    If the conditions are not met, the parameter will have the following value: + * `folder_upload_email: null`. + */ @JsonProperty("folder_upload_email") @Nullable protected FolderFolderUploadEmailField folderUploadEmail; @Nullable protected FolderMini parent; + /** + * Defines if this item has been deleted or not. + * + *

    * `active` when the item has is not in the trash * `trashed` when the item has been moved to + * the trash but not deleted * `deleted` when the item has been permanently deleted. + */ @JsonDeserialize(using = FolderItemStatusField.FolderItemStatusFieldDeserializer.class) @JsonSerialize(using = FolderItemStatusField.FolderItemStatusFieldSerializer.class) @JsonProperty("item_status") diff --git a/src/main/java/com/box/sdkgen/schemas/folder/FolderFolderUploadEmailField.java b/src/main/java/com/box/sdkgen/schemas/folder/FolderFolderUploadEmailField.java index 2d035e1e4..178a4660b 100644 --- a/src/main/java/com/box/sdkgen/schemas/folder/FolderFolderUploadEmailField.java +++ b/src/main/java/com/box/sdkgen/schemas/folder/FolderFolderUploadEmailField.java @@ -11,6 +11,17 @@ @JsonFilter("nullablePropertyFilter") public class FolderFolderUploadEmailField extends SerializableObject { + /** + * When this parameter has been set, users can email files to the email address that has been + * automatically created for this folder. + * + *

    To create an email address, set this property either when creating or updating the folder. + * + *

    When set to `collaborators`, only emails from registered email addresses for collaborators + * will be accepted. This includes any email aliases a user might have registered. + * + *

    When set to `open` it will accept emails from any email address. + */ @JsonDeserialize( using = FolderFolderUploadEmailAccessField.FolderFolderUploadEmailAccessFieldDeserializer.class) @@ -18,6 +29,7 @@ public class FolderFolderUploadEmailField extends SerializableObject { using = FolderFolderUploadEmailAccessField.FolderFolderUploadEmailAccessFieldSerializer.class) protected EnumWrapper access; + /** The optional upload email address for this folder. */ protected String email; public FolderFolderUploadEmailField() { diff --git a/src/main/java/com/box/sdkgen/schemas/folder/FolderPathCollectionField.java b/src/main/java/com/box/sdkgen/schemas/folder/FolderPathCollectionField.java index 55cba6e9e..76ec2e9e4 100644 --- a/src/main/java/com/box/sdkgen/schemas/folder/FolderPathCollectionField.java +++ b/src/main/java/com/box/sdkgen/schemas/folder/FolderPathCollectionField.java @@ -10,9 +10,11 @@ @JsonFilter("nullablePropertyFilter") public class FolderPathCollectionField extends SerializableObject { + /** The number of folders in this list. */ @JsonProperty("total_count") protected final long totalCount; + /** The parent folders for this item. */ protected final List entries; public FolderPathCollectionField( diff --git a/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkField.java b/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkField.java index 76567561c..a75c27421 100644 --- a/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkField.java +++ b/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkField.java @@ -15,25 +15,61 @@ @JsonFilter("nullablePropertyFilter") public class FolderSharedLinkField extends SerializableObject { + /** + * The URL that can be used to access the item on Box. + * + *

    This URL will display the item in Box's preview UI where the file can be downloaded if + * allowed. + * + *

    This URL will continue to work even when a custom `vanity_url` has been set for this shared + * link. + */ protected final String url; + /** + * A URL that can be used to download the file. This URL can be used in a browser to download the + * file. This URL includes the file extension so that the file will be saved with the right file + * type. + * + *

    This property will be `null` for folders. + */ @JsonProperty("download_url") @Nullable protected String downloadUrl; + /** + * The "Custom URL" that can also be used to preview the item on Box. Custom URLs can only be + * created or modified in the Box Web application. + */ @JsonProperty("vanity_url") @Nullable protected String vanityUrl; + /** The custom name of a shared link, as used in the `vanity_url` field. */ @JsonProperty("vanity_name") @Nullable protected String vanityName; + /** + * The access level for this shared link. + * + *

    * `open` - provides access to this item to anyone with this link * `company` - only provides + * access to this item to people the same company * `collaborators` - only provides access to this + * item to people who are collaborators on this item + * + *

    If this field is omitted when creating the shared link, the access level will be set to the + * default access level specified by the enterprise admin. + */ @JsonDeserialize( using = FolderSharedLinkAccessField.FolderSharedLinkAccessFieldDeserializer.class) @JsonSerialize(using = FolderSharedLinkAccessField.FolderSharedLinkAccessFieldSerializer.class) protected EnumWrapper access; + /** + * The effective access level for the shared link. This can be a more restrictive access level + * than the value in the `access` field when the enterprise settings restrict the allowed access + * levels. + */ @JsonDeserialize( using = FolderSharedLinkEffectiveAccessField.FolderSharedLinkEffectiveAccessFieldDeserializer @@ -44,6 +80,11 @@ public class FolderSharedLinkField extends SerializableObject { @JsonProperty("effective_access") protected final EnumWrapper effectiveAccess; + /** + * The effective permissions for this shared link. These result in the more restrictive + * combination of the share link permissions and the item permissions set by the administrator, + * the owner, and any ancestor item such as a folder. + */ @JsonDeserialize( using = FolderSharedLinkEffectivePermissionField @@ -55,20 +96,31 @@ public class FolderSharedLinkField extends SerializableObject { @JsonProperty("effective_permission") protected final EnumWrapper effectivePermission; + /** + * The date and time when this link will be unshared. This field can only be set by users with + * paid accounts. + */ @JsonProperty("unshared_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable protected OffsetDateTime unsharedAt; + /** Defines if the shared link requires a password to access the item. */ @JsonProperty("is_password_enabled") protected final boolean isPasswordEnabled; + /** + * Defines if this link allows a user to preview, edit, and download an item. These permissions + * refer to the shared link only and do not supersede permissions applied to the item itself. + */ protected FolderSharedLinkPermissionsField permissions; + /** The number of times this item has been downloaded. */ @JsonProperty("download_count") protected final long downloadCount; + /** The number of times this item has been previewed. */ @JsonProperty("preview_count") protected final long previewCount; diff --git a/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkPermissionsField.java b/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkPermissionsField.java index 749e7db9d..c70fb18b0 100644 --- a/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkPermissionsField.java +++ b/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkPermissionsField.java @@ -8,12 +8,31 @@ @JsonFilter("nullablePropertyFilter") public class FolderSharedLinkPermissionsField extends SerializableObject { + /** + * Defines if the shared link allows for the item to be downloaded. For shared links on folders, + * this also applies to any items in the folder. + * + *

    This value can be set to `true` when the effective access level is set to `open` or + * `company`, not `collaborators`. + */ @JsonProperty("can_download") protected final boolean canDownload; + /** + * Defines if the shared link allows for the item to be previewed. + * + *

    This value is always `true`. For shared links on folders this also applies to any items in + * the folder. + */ @JsonProperty("can_preview") protected final boolean canPreview; + /** + * Defines if the shared link allows for the item to be edited. + * + *

    This value can only be `true` if `can_download` is also `true` and if the item has a type of + * `file`. + */ @JsonProperty("can_edit") protected final boolean canEdit; diff --git a/src/main/java/com/box/sdkgen/schemas/folderbase/FolderBase.java b/src/main/java/com/box/sdkgen/schemas/folderbase/FolderBase.java index 7dffc7221..9a1562989 100644 --- a/src/main/java/com/box/sdkgen/schemas/folderbase/FolderBase.java +++ b/src/main/java/com/box/sdkgen/schemas/folderbase/FolderBase.java @@ -10,13 +10,30 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** + * The bare basic representation of a folder, the minimal amount of fields returned when using the + * `fields` query parameter. + */ @JsonFilter("nullablePropertyFilter") public class FolderBase extends SerializableObject { + /** + * The unique identifier that represent a folder. + * + *

    The ID for any folder can be determined by visiting a folder in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/folders/123` the + * `folder_id` is `123`. + */ protected final String id; + /** + * The HTTP `etag` of this folder. This can be used within some API endpoints in the `If-Match` + * and `If-None-Match` headers to only perform changes on the folder if (no) changes have + * happened. + */ @Nullable protected String etag; + /** The value will always be `folder`. */ @JsonDeserialize(using = FolderBaseTypeField.FolderBaseTypeFieldDeserializer.class) @JsonSerialize(using = FolderBaseTypeField.FolderBaseTypeFieldSerializer.class) protected EnumWrapper type; diff --git a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFull.java b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFull.java index e4853ef00..484fea6c2 100644 --- a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFull.java +++ b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFull.java @@ -28,6 +28,9 @@ import java.util.List; import java.util.Objects; +/** + * A full representation of a folder, as can be returned from any folder API endpoints by default. + */ @JsonFilter("nullablePropertyFilter") public class FolderFull extends Folder { @@ -36,6 +39,7 @@ public class FolderFull extends Folder { @JsonProperty("sync_state") protected EnumWrapper syncState; + /** Specifies if this folder has any other collaborators. */ @JsonProperty("has_collaborations") protected Boolean hasCollaborations; @@ -46,6 +50,7 @@ public class FolderFull extends Folder { @JsonProperty("can_non_owners_invite") protected Boolean canNonOwnersInvite; + /** Specifies if this folder is owned by a user outside of the authenticated enterprise. */ @JsonProperty("is_externally_owned") protected Boolean isExternallyOwned; @@ -54,12 +59,19 @@ public class FolderFull extends Folder { @JsonProperty("is_collaboration_restricted_to_enterprise") protected Boolean isCollaborationRestrictedToEnterprise; + /** + * A list of access levels that are available for this folder. + * + *

    For some folders, like the root folder, this will always be an empty list as sharing is not + * allowed at that level. + */ @JsonDeserialize(using = AllowedSharedLinkAccessLevelsDeserializer.class) @JsonSerialize(using = AllowedSharedLinkAccessLevelsSerializer.class) @JsonProperty("allowed_shared_link_access_levels") protected List> allowedSharedLinkAccessLevels; + /** A list of the types of roles that user can be invited at when sharing this folder. */ @JsonDeserialize(using = AllowedInviteeRolesDeserializer.class) @JsonSerialize(using = AllowedInviteeRolesSerializer.class) @JsonProperty("allowed_invitee_roles") @@ -68,14 +80,29 @@ public class FolderFull extends Folder { @JsonProperty("watermark_info") protected FolderFullWatermarkInfoField watermarkInfo; + /** + * Specifies if the folder can be accessed with the direct shared link or a shared link to a + * parent folder. + */ @JsonProperty("is_accessible_via_shared_link") protected Boolean isAccessibleViaSharedLink; + /** + * Specifies if collaborators who are not owners of this folder are restricted from viewing other + * collaborations on this folder. + * + *

    It also restricts non-owners from inviting new collaborators. + */ @JsonProperty("can_non_owners_view_collaborators") protected Boolean canNonOwnersViewCollaborators; protected FolderFullClassificationField classification; + /** + * This field will return true if the folder or any ancestor of the folder is associated with at + * least one app item. Note that this will return true even if the context user does not have + * access to the app item(s) associated with the folder. + */ @JsonProperty("is_associated_with_app_item") protected Boolean isAssociatedWithAppItem; diff --git a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullClassificationField.java b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullClassificationField.java index 587b0801c..b6db71a85 100644 --- a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullClassificationField.java +++ b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullClassificationField.java @@ -8,10 +8,16 @@ @JsonFilter("nullablePropertyFilter") public class FolderFullClassificationField extends SerializableObject { + /** The name of the classification. */ protected String name; + /** An explanation of the meaning of this classification. */ protected String definition; + /** + * The color that is used to display the classification label in a user-interface. Colors are + * defined by the admin or co-admin who created the classification in the Box web app. + */ protected String color; public FolderFullClassificationField() { diff --git a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullPermissionsField.java b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullPermissionsField.java index 55e0eb841..622c729f9 100644 --- a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullPermissionsField.java +++ b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullPermissionsField.java @@ -8,24 +8,34 @@ @JsonFilter("nullablePropertyFilter") public class FolderFullPermissionsField extends SerializableObject { + /** Specifies if the current user can delete this item. */ @JsonProperty("can_delete") protected final boolean canDelete; + /** Specifies if the current user can download this item. */ @JsonProperty("can_download") protected final boolean canDownload; + /** + * Specifies if the current user can invite new users to collaborate on this item, and if the user + * can update the role of a user already collaborated on this item. + */ @JsonProperty("can_invite_collaborator") protected final boolean canInviteCollaborator; + /** Specifies if the user can rename this item. */ @JsonProperty("can_rename") protected final boolean canRename; + /** Specifies if the user can change the access level of an existing shared link on this item. */ @JsonProperty("can_set_share_access") protected final boolean canSetShareAccess; + /** Specifies if the user can create a shared link for this item. */ @JsonProperty("can_share") protected final boolean canShare; + /** Specifies if the user can upload into this folder. */ @JsonProperty("can_upload") protected final boolean canUpload; diff --git a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullWatermarkInfoField.java b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullWatermarkInfoField.java index aa94aad8f..b884b9654 100644 --- a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullWatermarkInfoField.java +++ b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullWatermarkInfoField.java @@ -9,6 +9,7 @@ @JsonFilter("nullablePropertyFilter") public class FolderFullWatermarkInfoField extends SerializableObject { + /** Specifies if this item has a watermark applied. */ @JsonProperty("is_watermarked") protected Boolean isWatermarked; diff --git a/src/main/java/com/box/sdkgen/schemas/folderlock/FolderLock.java b/src/main/java/com/box/sdkgen/schemas/folderlock/FolderLock.java index df2b09d92..22a8f0c45 100644 --- a/src/main/java/com/box/sdkgen/schemas/folderlock/FolderLock.java +++ b/src/main/java/com/box/sdkgen/schemas/folderlock/FolderLock.java @@ -12,26 +12,38 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** + * Folder locks define access restrictions placed by folder owners to prevent specific folders from + * being moved or deleted. + */ @JsonFilter("nullablePropertyFilter") public class FolderLock extends SerializableObject { protected FolderMini folder; + /** The unique identifier for this folder lock. */ protected String id; + /** The object type, always `folder_lock`. */ protected String type; @JsonProperty("created_by") protected UserBase createdBy; + /** When the folder lock object was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** + * The operations that have been locked. Currently the `move` and `delete` operations cannot be + * locked separately, and both need to be set to `true`. + */ @JsonProperty("locked_operations") protected FolderLockLockedOperationsField lockedOperations; + /** The lock type, always `freeze`. */ @JsonProperty("lock_type") protected String lockType; diff --git a/src/main/java/com/box/sdkgen/schemas/folderlock/FolderLockLockedOperationsField.java b/src/main/java/com/box/sdkgen/schemas/folderlock/FolderLockLockedOperationsField.java index facf8c90f..00fc7f283 100644 --- a/src/main/java/com/box/sdkgen/schemas/folderlock/FolderLockLockedOperationsField.java +++ b/src/main/java/com/box/sdkgen/schemas/folderlock/FolderLockLockedOperationsField.java @@ -8,8 +8,10 @@ @JsonFilter("nullablePropertyFilter") public class FolderLockLockedOperationsField extends SerializableObject { + /** Whether moving the folder is restricted. */ protected final boolean move; + /** Whether deleting the folder is restricted. */ protected final boolean delete; public FolderLockLockedOperationsField( diff --git a/src/main/java/com/box/sdkgen/schemas/folderlocks/FolderLocks.java b/src/main/java/com/box/sdkgen/schemas/folderlocks/FolderLocks.java index f8cac5ba1..88ce4ba91 100644 --- a/src/main/java/com/box/sdkgen/schemas/folderlocks/FolderLocks.java +++ b/src/main/java/com/box/sdkgen/schemas/folderlocks/FolderLocks.java @@ -9,13 +9,20 @@ import java.util.List; import java.util.Objects; +/** A list of folder locks. */ @JsonFilter("nullablePropertyFilter") public class FolderLocks extends SerializableObject { + /** A list of folder locks. */ protected List entries; + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected String limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; diff --git a/src/main/java/com/box/sdkgen/schemas/foldermini/FolderMini.java b/src/main/java/com/box/sdkgen/schemas/foldermini/FolderMini.java index 4266834b9..8d8763e93 100644 --- a/src/main/java/com/box/sdkgen/schemas/foldermini/FolderMini.java +++ b/src/main/java/com/box/sdkgen/schemas/foldermini/FolderMini.java @@ -7,12 +7,14 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** A mini representation of a file version, used when nested under another resource. */ @JsonFilter("nullablePropertyFilter") public class FolderMini extends FolderBase { @JsonProperty("sequence_id") protected String sequenceId; + /** The name of the folder. */ protected String name; public FolderMini(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/folderreference/FolderReference.java b/src/main/java/com/box/sdkgen/schemas/folderreference/FolderReference.java index 915af3fb9..a1b3bccc4 100644 --- a/src/main/java/com/box/sdkgen/schemas/folderreference/FolderReference.java +++ b/src/main/java/com/box/sdkgen/schemas/folderreference/FolderReference.java @@ -9,13 +9,16 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** Folder reference. */ @JsonFilter("nullablePropertyFilter") public class FolderReference extends SerializableObject { + /** The value will always be `folder`. */ @JsonDeserialize(using = FolderReferenceTypeField.FolderReferenceTypeFieldDeserializer.class) @JsonSerialize(using = FolderReferenceTypeField.FolderReferenceTypeFieldSerializer.class) protected EnumWrapper type; + /** ID of the folder. */ protected final String id; public FolderReference(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/group/Group.java b/src/main/java/com/box/sdkgen/schemas/group/Group.java index e6ff5625d..eecd6fc17 100644 --- a/src/main/java/com/box/sdkgen/schemas/group/Group.java +++ b/src/main/java/com/box/sdkgen/schemas/group/Group.java @@ -12,14 +12,17 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** A standard representation of a group, as returned from any group API endpoints by default. */ @JsonFilter("nullablePropertyFilter") public class Group extends GroupMini { + /** When the group object was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** When the group object was last modified. */ @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/groupbase/GroupBase.java b/src/main/java/com/box/sdkgen/schemas/groupbase/GroupBase.java index 3b93619f8..551dad2e3 100644 --- a/src/main/java/com/box/sdkgen/schemas/groupbase/GroupBase.java +++ b/src/main/java/com/box/sdkgen/schemas/groupbase/GroupBase.java @@ -9,11 +9,14 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** A base representation of a group. */ @JsonFilter("nullablePropertyFilter") public class GroupBase extends SerializableObject { + /** The unique identifier for this object. */ protected final String id; + /** The value will always be `group`. */ @JsonDeserialize(using = GroupBaseTypeField.GroupBaseTypeFieldDeserializer.class) @JsonSerialize(using = GroupBaseTypeField.GroupBaseTypeFieldSerializer.class) protected EnumWrapper type; diff --git a/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFull.java b/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFull.java index 65ab39e07..215f82a87 100644 --- a/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFull.java +++ b/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFull.java @@ -11,16 +11,44 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** + * Groups contain a set of users, and can be used in place of users in some operations, such as + * collaborations. + */ @JsonFilter("nullablePropertyFilter") public class GroupFull extends Group { + /** + * Keeps track of which external source this group is coming from (e.g. "Active Directory", + * "Google Groups", "Facebook Groups"). Setting this will also prevent Box users from editing the + * group name and its members directly via the Box web application. This is desirable for one-way + * syncing of groups. + */ protected String provenance; + /** + * An arbitrary identifier that can be used by external group sync tools to link this Box Group to + * an external group. Example values of this field could be an Active Directory Object ID or a + * Google Group ID. We recommend you use of this field in order to avoid issues when group names + * are updated in either Box or external systems. + */ @JsonProperty("external_sync_identifier") protected String externalSyncIdentifier; + /** Human readable description of the group. */ protected String description; + /** + * Specifies who can invite the group to collaborate on items. + * + *

    When set to `admins_only` the enterprise admin, co-admins, and the group's admin can invite + * the group. + * + *

    When set to `admins_and_members` all the admins listed above and group members can invite + * the group. + * + *

    When set to `all_managed_users` all managed users in the enterprise can invite the group. + */ @JsonDeserialize( using = GroupFullInvitabilityLevelField.GroupFullInvitabilityLevelFieldDeserializer.class) @JsonSerialize( @@ -28,6 +56,13 @@ public class GroupFull extends Group { @JsonProperty("invitability_level") protected EnumWrapper invitabilityLevel; + /** + * Specifies who can view the members of the group (Get Memberships for Group). + * + *

    * `admins_only` - the enterprise admin, co-admins, group's group admin. * + * `admins_and_members` - all admins and group members. * `all_managed_users` - all managed users + * in the enterprise. + */ @JsonDeserialize( using = GroupFullMemberViewabilityLevelField.GroupFullMemberViewabilityLevelFieldDeserializer diff --git a/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFullPermissionsField.java b/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFullPermissionsField.java index fb3d5d91f..8ffad1ff7 100644 --- a/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFullPermissionsField.java +++ b/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFullPermissionsField.java @@ -9,6 +9,7 @@ @JsonFilter("nullablePropertyFilter") public class GroupFullPermissionsField extends SerializableObject { + /** Specifies if the user can invite the group to collaborate on any items. */ @JsonProperty("can_invite_as_collaborator") protected Boolean canInviteAsCollaborator; diff --git a/src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembership.java b/src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembership.java index 74f68db5d..7f74fd47d 100644 --- a/src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembership.java +++ b/src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembership.java @@ -13,11 +13,14 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** Membership is used to signify that a user is part of a group. */ @JsonFilter("nullablePropertyFilter") public class GroupMembership extends SerializableObject { + /** The unique identifier for this group membership. */ protected String id; + /** The value will always be `group_membership`. */ @JsonDeserialize(using = GroupMembershipTypeField.GroupMembershipTypeFieldDeserializer.class) @JsonSerialize(using = GroupMembershipTypeField.GroupMembershipTypeFieldSerializer.class) protected EnumWrapper type; @@ -26,15 +29,18 @@ public class GroupMembership extends SerializableObject { protected GroupMini group; + /** The role of the user in the group. */ @JsonDeserialize(using = GroupMembershipRoleField.GroupMembershipRoleFieldDeserializer.class) @JsonSerialize(using = GroupMembershipRoleField.GroupMembershipRoleFieldSerializer.class) protected EnumWrapper role; + /** The time this membership was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** The time this membership was last modified. */ @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/groupmemberships/GroupMemberships.java b/src/main/java/com/box/sdkgen/schemas/groupmemberships/GroupMemberships.java index 4341be8fd..a5f46d456 100644 --- a/src/main/java/com/box/sdkgen/schemas/groupmemberships/GroupMemberships.java +++ b/src/main/java/com/box/sdkgen/schemas/groupmemberships/GroupMemberships.java @@ -8,18 +8,44 @@ import java.util.List; import java.util.Objects; +/** A list of group memberships. */ @JsonFilter("nullablePropertyFilter") public class GroupMemberships extends SerializableObject { + /** + * One greater than the offset of the last entry in the entire collection. The total number of + * entries in the collection may be less than `total_count`. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ @JsonProperty("total_count") protected Long totalCount; + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** + * The 0-based offset of the first entry in this set. This will be the same as the `offset` query + * parameter. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ protected Long offset; + /** + * The order by which items are returned. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ protected List order; + /** A list of group memberships. */ protected List entries; public GroupMemberships() { diff --git a/src/main/java/com/box/sdkgen/schemas/groupmemberships/GroupMembershipsOrderField.java b/src/main/java/com/box/sdkgen/schemas/groupmemberships/GroupMembershipsOrderField.java index 5bc23c3e2..c56d78562 100644 --- a/src/main/java/com/box/sdkgen/schemas/groupmemberships/GroupMembershipsOrderField.java +++ b/src/main/java/com/box/sdkgen/schemas/groupmemberships/GroupMembershipsOrderField.java @@ -11,8 +11,10 @@ @JsonFilter("nullablePropertyFilter") public class GroupMembershipsOrderField extends SerializableObject { + /** The field to order by. */ protected String by; + /** The direction to order by, either ascending or descending. */ @JsonDeserialize( using = GroupMembershipsOrderDirectionField.GroupMembershipsOrderDirectionFieldDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/groupmini/GroupMini.java b/src/main/java/com/box/sdkgen/schemas/groupmini/GroupMini.java index cffbf61a3..c5adf3569 100644 --- a/src/main/java/com/box/sdkgen/schemas/groupmini/GroupMini.java +++ b/src/main/java/com/box/sdkgen/schemas/groupmini/GroupMini.java @@ -9,11 +9,14 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** Mini representation of a group, including id and name of group. */ @JsonFilter("nullablePropertyFilter") public class GroupMini extends GroupBase { + /** The name of the group. */ protected String name; + /** The type of the group. */ @JsonDeserialize(using = GroupMiniGroupTypeField.GroupMiniGroupTypeFieldDeserializer.class) @JsonSerialize(using = GroupMiniGroupTypeField.GroupMiniGroupTypeFieldSerializer.class) @JsonProperty("group_type") diff --git a/src/main/java/com/box/sdkgen/schemas/groups/Groups.java b/src/main/java/com/box/sdkgen/schemas/groups/Groups.java index 2a440d016..bffb14dcc 100644 --- a/src/main/java/com/box/sdkgen/schemas/groups/Groups.java +++ b/src/main/java/com/box/sdkgen/schemas/groups/Groups.java @@ -8,18 +8,44 @@ import java.util.List; import java.util.Objects; +/** A list of groups. */ @JsonFilter("nullablePropertyFilter") public class Groups extends SerializableObject { + /** + * One greater than the offset of the last entry in the entire collection. The total number of + * entries in the collection may be less than `total_count`. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ @JsonProperty("total_count") protected Long totalCount; + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** + * The 0-based offset of the first entry in this set. This will be the same as the `offset` query + * parameter. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ protected Long offset; + /** + * The order by which items are returned. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ protected List order; + /** A list of groups. */ protected List entries; public Groups() { diff --git a/src/main/java/com/box/sdkgen/schemas/groups/GroupsOrderField.java b/src/main/java/com/box/sdkgen/schemas/groups/GroupsOrderField.java index ab064920f..f988ed35b 100644 --- a/src/main/java/com/box/sdkgen/schemas/groups/GroupsOrderField.java +++ b/src/main/java/com/box/sdkgen/schemas/groups/GroupsOrderField.java @@ -11,8 +11,10 @@ @JsonFilter("nullablePropertyFilter") public class GroupsOrderField extends SerializableObject { + /** The field to order by. */ protected String by; + /** The direction to order by, either ascending or descending. */ @JsonDeserialize(using = GroupsOrderDirectionField.GroupsOrderDirectionFieldDeserializer.class) @JsonSerialize(using = GroupsOrderDirectionField.GroupsOrderDirectionFieldSerializer.class) protected EnumWrapper direction; diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMapping.java b/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMapping.java index 690bde72c..0b6e9911a 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMapping.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMapping.java @@ -15,9 +15,14 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** A Slack specific representation of an integration mapping object. */ @JsonFilter("nullablePropertyFilter") public class IntegrationMapping extends IntegrationMappingBase { + /** + * Identifies the Box partner app, with which the mapping is associated. Currently only supports + * Slack. (part of the composite key together with `id`). + */ @JsonDeserialize( using = IntegrationMappingIntegrationTypeField.IntegrationMappingIntegrationTypeFieldDeserializer @@ -29,28 +34,41 @@ public class IntegrationMapping extends IntegrationMappingBase { @JsonProperty("integration_type") protected EnumWrapper integrationType; + /** + * Identifies whether the mapping has been manually set (as opposed to being automatically + * created). + */ @JsonProperty("is_manually_created") protected Boolean isManuallyCreated; protected IntegrationMappingSlackOptions options; + /** An object representing the user who created the integration mapping. */ @JsonProperty("created_by") protected UserIntegrationMappings createdBy; + /** The user who last modified the integration mapping. */ @JsonProperty("modified_by") protected UserIntegrationMappings modifiedBy; + /** Mapped item object for Slack. */ @JsonProperty("partner_item") protected final IntegrationMappingPartnerItemSlack partnerItem; + /** + * The Box folder, to which the object from the partner app domain (referenced in + * `partner_item_id`) is mapped. + */ @JsonProperty("box_item") protected final FolderMini boxItem; + /** When the integration mapping object was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** When the integration mapping object was last modified. */ @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingbase/IntegrationMappingBase.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingbase/IntegrationMappingBase.java index cdb9be98f..2910db609 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmappingbase/IntegrationMappingBase.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingbase/IntegrationMappingBase.java @@ -9,11 +9,17 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** A base representation of an integration mapping object. */ @JsonFilter("nullablePropertyFilter") public class IntegrationMappingBase extends SerializableObject { + /** + * A unique identifier of a folder mapping (part of a composite key together with + * `integration_type`). + */ protected final String id; + /** Mapping type. */ @JsonDeserialize( using = IntegrationMappingBaseTypeField.IntegrationMappingBaseTypeFieldDeserializer.class) @JsonSerialize( diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingboxitemslack/IntegrationMappingBoxItemSlack.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingboxitemslack/IntegrationMappingBoxItemSlack.java index bc827931c..ab1b4eb78 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmappingboxitemslack/IntegrationMappingBoxItemSlack.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingboxitemslack/IntegrationMappingBoxItemSlack.java @@ -9,9 +9,11 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** The schema for an integration mapping Box item object for type Slack. */ @JsonFilter("nullablePropertyFilter") public class IntegrationMappingBoxItemSlack extends SerializableObject { + /** Type of the mapped item referenced in `id`. */ @JsonDeserialize( using = IntegrationMappingBoxItemSlackTypeField @@ -22,6 +24,7 @@ public class IntegrationMappingBoxItemSlack extends SerializableObject { .class) protected EnumWrapper type; + /** ID of the mapped item (of type referenced in `type`). */ protected final String id; public IntegrationMappingBoxItemSlack(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslack/IntegrationMappingPartnerItemSlack.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslack/IntegrationMappingPartnerItemSlack.java index f69dc5d25..5c5c26599 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslack/IntegrationMappingPartnerItemSlack.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslack/IntegrationMappingPartnerItemSlack.java @@ -10,9 +10,16 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** + * The schema for an integration mapping mapped item object for type Slack. + * + *

    Depending if Box for Slack is installed at the org or workspace level, provide **either** + * `slack_org_id` **or** `slack_workspace_id`. Do not use both parameters at the same time. + */ @JsonFilter("nullablePropertyFilter") public class IntegrationMappingPartnerItemSlack extends SerializableObject { + /** Type of the mapped item referenced in `id`. */ @JsonDeserialize( using = IntegrationMappingPartnerItemSlackTypeField @@ -23,12 +30,21 @@ public class IntegrationMappingPartnerItemSlack extends SerializableObject { .IntegrationMappingPartnerItemSlackTypeFieldSerializer.class) protected EnumWrapper type; + /** ID of the mapped item (of type referenced in `type`). */ protected final String id; + /** + * ID of the Slack workspace with which the item is associated. Use this parameter if Box for + * Slack is installed at a workspace level. Do not use `slack_org_id` at the same time. + */ @JsonProperty("slack_workspace_id") @Nullable protected String slackWorkspaceId; + /** + * ID of the Slack org with which the item is associated. Use this parameter if Box for Slack is + * installed at the org level. Do not use `slack_workspace_id` at the same time. + */ @JsonProperty("slack_org_id") @Nullable protected String slackOrgId; diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteams/IntegrationMappingPartnerItemTeams.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteams/IntegrationMappingPartnerItemTeams.java index 7885213ef..78911ff9a 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteams/IntegrationMappingPartnerItemTeams.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteams/IntegrationMappingPartnerItemTeams.java @@ -8,9 +8,11 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** The schema for an integration mapping mapped item object for type Teams. */ @JsonFilter("nullablePropertyFilter") public class IntegrationMappingPartnerItemTeams extends SerializableObject { + /** Type of the mapped item referenced in `id`. */ @JsonDeserialize( using = IntegrationMappingPartnerItemTeamsTypeField @@ -21,8 +23,10 @@ public class IntegrationMappingPartnerItemTeams extends SerializableObject { .IntegrationMappingPartnerItemTeamsTypeFieldSerializer.class) protected final EnumWrapper type; + /** ID of the mapped item (of type referenced in `type`). */ protected final String id; + /** ID of the tenant that is registered with Microsoft Teams. */ @JsonProperty("tenant_id") protected final String tenantId; diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteamscreaterequest/IntegrationMappingPartnerItemTeamsCreateRequest.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteamscreaterequest/IntegrationMappingPartnerItemTeamsCreateRequest.java index c5383e3a7..f6661fb9b 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteamscreaterequest/IntegrationMappingPartnerItemTeamsCreateRequest.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteamscreaterequest/IntegrationMappingPartnerItemTeamsCreateRequest.java @@ -8,9 +8,11 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** The schema for an integration mapping mapped item object for type Teams. */ @JsonFilter("nullablePropertyFilter") public class IntegrationMappingPartnerItemTeamsCreateRequest extends SerializableObject { + /** Type of the mapped item referenced in `id`. */ @JsonDeserialize( using = IntegrationMappingPartnerItemTeamsCreateRequestTypeField @@ -21,11 +23,14 @@ public class IntegrationMappingPartnerItemTeamsCreateRequest extends Serializabl .IntegrationMappingPartnerItemTeamsCreateRequestTypeFieldSerializer.class) protected final EnumWrapper type; + /** ID of the mapped item (of type referenced in `type`). */ protected final String id; + /** ID of the tenant that is registered with Microsoft Teams. */ @JsonProperty("tenant_id") protected final String tenantId; + /** ID of the team that is registered with Microsoft Teams. */ @JsonProperty("team_id") protected final String teamId; diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappings/IntegrationMappings.java b/src/main/java/com/box/sdkgen/schemas/integrationmappings/IntegrationMappings.java index cd1d386f5..bef8f5220 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmappings/IntegrationMappings.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappings/IntegrationMappings.java @@ -9,15 +9,22 @@ import java.util.List; import java.util.Objects; +/** A list of integration mapping objects. */ @JsonFilter("nullablePropertyFilter") public class IntegrationMappings extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** A list of integration mappings. */ protected List entries; public IntegrationMappings() { diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingslackcreaterequest/IntegrationMappingSlackCreateRequest.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingslackcreaterequest/IntegrationMappingSlackCreateRequest.java index a24c840b0..14233ea23 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmappingslackcreaterequest/IntegrationMappingSlackCreateRequest.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingslackcreaterequest/IntegrationMappingSlackCreateRequest.java @@ -9,6 +9,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** A request to create a Slack Integration Mapping object. */ @JsonFilter("nullablePropertyFilter") public class IntegrationMappingSlackCreateRequest extends SerializableObject { diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingslackoptions/IntegrationMappingSlackOptions.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingslackoptions/IntegrationMappingSlackOptions.java index a29fa556e..c8a4e7b68 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmappingslackoptions/IntegrationMappingSlackOptions.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingslackoptions/IntegrationMappingSlackOptions.java @@ -6,9 +6,15 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** The schema for an integration mapping options object for Slack type. */ @JsonFilter("nullablePropertyFilter") public class IntegrationMappingSlackOptions extends SerializableObject { + /** + * Indicates whether or not channel member access to the underlying box item should be + * automatically managed. Depending on type of channel, access is managed through creating + * collaborations or shared links. + */ @JsonProperty("is_access_management_disabled") protected Boolean isAccessManagementDisabled; diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingsteams/IntegrationMappingsTeams.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingsteams/IntegrationMappingsTeams.java index 5cdabfc2a..ddb640296 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmappingsteams/IntegrationMappingsTeams.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingsteams/IntegrationMappingsTeams.java @@ -7,9 +7,11 @@ import java.util.List; import java.util.Objects; +/** A list of integration mapping objects. */ @JsonFilter("nullablePropertyFilter") public class IntegrationMappingsTeams extends SerializableObject { + /** A list of integration mappings. */ protected List entries; public IntegrationMappingsTeams() { diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeams.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeams.java index aeb9f1cba..6af10ed4e 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeams.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeams.java @@ -13,9 +13,14 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** A Microsoft Teams specific representation of an integration mapping object. */ @JsonFilter("nullablePropertyFilter") public class IntegrationMappingTeams extends IntegrationMappingBase { + /** + * Identifies the Box partner app, with which the mapping is associated. Supports Slack and Teams. + * (part of the composite key together with `id`). + */ @JsonDeserialize( using = IntegrationMappingTeamsIntegrationTypeField @@ -27,20 +32,27 @@ public class IntegrationMappingTeams extends IntegrationMappingBase { @JsonProperty("integration_type") protected EnumWrapper integrationType; + /** + * Identifies whether the mapping has been manually set by the team owner from UI for channels (as + * opposed to being automatically created). + */ @JsonProperty("is_overridden_by_manual_mapping") protected Boolean isOverriddenByManualMapping; + /** Mapped item object for Teams. */ @JsonProperty("partner_item") protected final IntegrationMappingPartnerItemTeams partnerItem; @JsonProperty("box_item") protected final FolderReference boxItem; + /** When the integration mapping object was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** When the integration mapping object was last modified. */ @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingteamscreaterequest/IntegrationMappingTeamsCreateRequest.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingteamscreaterequest/IntegrationMappingTeamsCreateRequest.java index 1dedb8d84..8076816d5 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmappingteamscreaterequest/IntegrationMappingTeamsCreateRequest.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingteamscreaterequest/IntegrationMappingTeamsCreateRequest.java @@ -7,6 +7,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** A request to create a Teams Integration Mapping object. */ @JsonFilter("nullablePropertyFilter") public class IntegrationMappingTeamsCreateRequest extends SerializableObject { diff --git a/src/main/java/com/box/sdkgen/schemas/invite/Invite.java b/src/main/java/com/box/sdkgen/schemas/invite/Invite.java index 104079490..03f82c049 100644 --- a/src/main/java/com/box/sdkgen/schemas/invite/Invite.java +++ b/src/main/java/com/box/sdkgen/schemas/invite/Invite.java @@ -12,15 +12,19 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** An invite for a user to an enterprise. */ @JsonFilter("nullablePropertyFilter") public class Invite extends SerializableObject { + /** The unique identifier for this invite. */ protected final String id; + /** The value will always be `invite`. */ @JsonDeserialize(using = InviteTypeField.InviteTypeFieldDeserializer.class) @JsonSerialize(using = InviteTypeField.InviteTypeFieldSerializer.class) protected EnumWrapper type; + /** A representation of a Box enterprise. */ @JsonProperty("invited_to") protected InviteInvitedToField invitedTo; @@ -30,13 +34,16 @@ public class Invite extends SerializableObject { @JsonProperty("invited_by") protected UserMini invitedBy; + /** The status of the invite. */ protected String status; + /** When the invite was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** When the invite was modified. */ @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/invite/InviteInvitedToField.java b/src/main/java/com/box/sdkgen/schemas/invite/InviteInvitedToField.java index b269f209d..d6bd97887 100644 --- a/src/main/java/com/box/sdkgen/schemas/invite/InviteInvitedToField.java +++ b/src/main/java/com/box/sdkgen/schemas/invite/InviteInvitedToField.java @@ -11,12 +11,15 @@ @JsonFilter("nullablePropertyFilter") public class InviteInvitedToField extends SerializableObject { + /** The unique identifier for this enterprise. */ protected String id; + /** The value will always be `enterprise`. */ @JsonDeserialize(using = InviteInvitedToTypeField.InviteInvitedToTypeFieldDeserializer.class) @JsonSerialize(using = InviteInvitedToTypeField.InviteInvitedToTypeFieldSerializer.class) protected EnumWrapper type; + /** The name of the enterprise. */ protected String name; public InviteInvitedToField() { diff --git a/src/main/java/com/box/sdkgen/schemas/items/Items.java b/src/main/java/com/box/sdkgen/schemas/items/Items.java index a57046705..6e61c732c 100644 --- a/src/main/java/com/box/sdkgen/schemas/items/Items.java +++ b/src/main/java/com/box/sdkgen/schemas/items/Items.java @@ -9,26 +9,54 @@ import java.util.List; import java.util.Objects; +/** A list of files, folders, and web links in their mini representation. */ @JsonFilter("nullablePropertyFilter") public class Items extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** The marker for the start of the previous page of results. */ @JsonProperty("prev_marker") @Nullable protected String prevMarker; + /** + * One greater than the offset of the last entry in the entire collection. The total number of + * entries in the collection may be less than `total_count`. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ @JsonProperty("total_count") protected Long totalCount; + /** + * The 0-based offset of the first entry in this set. This will be the same as the `offset` query + * parameter. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ protected Long offset; + /** + * The order by which items are returned. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ protected List order; + /** The items in this collection. */ protected List entries; public Items() { diff --git a/src/main/java/com/box/sdkgen/schemas/items/ItemsOrderField.java b/src/main/java/com/box/sdkgen/schemas/items/ItemsOrderField.java index 8c70eabf4..73a8ec686 100644 --- a/src/main/java/com/box/sdkgen/schemas/items/ItemsOrderField.java +++ b/src/main/java/com/box/sdkgen/schemas/items/ItemsOrderField.java @@ -11,8 +11,10 @@ @JsonFilter("nullablePropertyFilter") public class ItemsOrderField extends SerializableObject { + /** The field to order by. */ protected String by; + /** The direction to order by, either ascending or descending. */ @JsonDeserialize(using = ItemsOrderDirectionField.ItemsOrderDirectionFieldDeserializer.class) @JsonSerialize(using = ItemsOrderDirectionField.ItemsOrderDirectionFieldSerializer.class) protected EnumWrapper direction; diff --git a/src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginated.java b/src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginated.java index af4006fa7..b011715f9 100644 --- a/src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginated.java +++ b/src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginated.java @@ -8,18 +8,44 @@ import java.util.List; import java.util.Objects; +/** A list of files, folders, and web links in their mini representation. */ @JsonFilter("nullablePropertyFilter") public class ItemsOffsetPaginated extends SerializableObject { + /** + * One greater than the offset of the last entry in the entire collection. The total number of + * entries in the collection may be less than `total_count`. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ @JsonProperty("total_count") protected Long totalCount; + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** + * The 0-based offset of the first entry in this set. This will be the same as the `offset` query + * parameter. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ protected Long offset; + /** + * The order by which items are returned. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ protected List order; + /** The items in this collection. */ protected List entries; public ItemsOffsetPaginated() { diff --git a/src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginatedOrderField.java b/src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginatedOrderField.java index 3c2df1b43..05edfc078 100644 --- a/src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginatedOrderField.java +++ b/src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginatedOrderField.java @@ -11,8 +11,10 @@ @JsonFilter("nullablePropertyFilter") public class ItemsOffsetPaginatedOrderField extends SerializableObject { + /** The field to order by. */ protected String by; + /** The direction to order by, either ascending or descending. */ @JsonDeserialize( using = ItemsOffsetPaginatedOrderDirectionField diff --git a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCard.java b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCard.java index cf77499c2..ee0bb9fec 100644 --- a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCard.java +++ b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCard.java @@ -12,18 +12,22 @@ import java.util.List; import java.util.Objects; +/** A skill card that contains a set of keywords. */ @JsonFilter("nullablePropertyFilter") public class KeywordSkillCard extends SerializableObject { + /** The optional date and time this card was created at. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** The value will always be `skill_card`. */ @JsonDeserialize(using = KeywordSkillCardTypeField.KeywordSkillCardTypeFieldDeserializer.class) @JsonSerialize(using = KeywordSkillCardTypeField.KeywordSkillCardTypeFieldSerializer.class) protected EnumWrapper type; + /** The value will always be `keyword`. */ @JsonDeserialize( using = KeywordSkillCardSkillCardTypeField.KeywordSkillCardSkillCardTypeFieldDeserializer.class) @@ -32,13 +36,19 @@ public class KeywordSkillCard extends SerializableObject { @JsonProperty("skill_card_type") protected EnumWrapper skillCardType; + /** The title of the card. */ @JsonProperty("skill_card_title") protected KeywordSkillCardSkillCardTitleField skillCardTitle; + /** The service that applied this metadata. */ protected final KeywordSkillCardSkillField skill; + /** + * The invocation of this service, used to track which instance of a service applied the metadata. + */ protected final KeywordSkillCardInvocationField invocation; + /** An list of entries in the metadata card. */ protected final List entries; public KeywordSkillCard( diff --git a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardEntriesField.java b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardEntriesField.java index 81155e1e8..b218d2bd0 100644 --- a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardEntriesField.java +++ b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardEntriesField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class KeywordSkillCardEntriesField extends SerializableObject { + /** The text of the keyword. */ protected String text; public KeywordSkillCardEntriesField() { diff --git a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardInvocationField.java b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardInvocationField.java index c988b1655..08af467ea 100644 --- a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardInvocationField.java +++ b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardInvocationField.java @@ -12,6 +12,7 @@ @JsonFilter("nullablePropertyFilter") public class KeywordSkillCardInvocationField extends SerializableObject { + /** The value will always be `skill_invocation`. */ @JsonDeserialize( using = KeywordSkillCardInvocationTypeField.KeywordSkillCardInvocationTypeFieldDeserializer.class) @@ -20,6 +21,11 @@ public class KeywordSkillCardInvocationField extends SerializableObject { KeywordSkillCardInvocationTypeField.KeywordSkillCardInvocationTypeFieldSerializer.class) protected EnumWrapper type; + /** + * A custom identifier that represent the instance of the service that applied this metadata. For + * example, if your `image-recognition-service` runs on multiple nodes, this field can be used to + * identify the ID of the node that was used to apply the metadata. + */ protected final String id; public KeywordSkillCardInvocationField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillCardTitleField.java b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillCardTitleField.java index a9d2ea33d..d59fe1943 100644 --- a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillCardTitleField.java +++ b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillCardTitleField.java @@ -9,8 +9,10 @@ @JsonFilter("nullablePropertyFilter") public class KeywordSkillCardSkillCardTitleField extends SerializableObject { + /** An optional identifier for the title. */ protected String code; + /** The actual title to show in the UI. */ protected final String message; public KeywordSkillCardSkillCardTitleField(@JsonProperty("message") String message) { diff --git a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillField.java b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillField.java index 1e9528a84..511c97479 100644 --- a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillField.java +++ b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillField.java @@ -12,12 +12,14 @@ @JsonFilter("nullablePropertyFilter") public class KeywordSkillCardSkillField extends SerializableObject { + /** The value will always be `service`. */ @JsonDeserialize( using = KeywordSkillCardSkillTypeField.KeywordSkillCardSkillTypeFieldDeserializer.class) @JsonSerialize( using = KeywordSkillCardSkillTypeField.KeywordSkillCardSkillTypeFieldSerializer.class) protected EnumWrapper type; + /** A custom identifier that represent the service that applied this metadata. */ protected final String id; public KeywordSkillCardSkillField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicies/LegalHoldPolicies.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicies/LegalHoldPolicies.java index 939c1903f..f364146c2 100644 --- a/src/main/java/com/box/sdkgen/schemas/legalholdpolicies/LegalHoldPolicies.java +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicies/LegalHoldPolicies.java @@ -9,19 +9,27 @@ import java.util.List; import java.util.Objects; +/** A list of legal hold policies. */ @JsonFilter("nullablePropertyFilter") public class LegalHoldPolicies extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** The marker for the start of the previous page of results. */ @JsonProperty("prev_marker") @Nullable protected String prevMarker; + /** A list of legal hold policies. */ protected List entries; public LegalHoldPolicies() { diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicy.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicy.java index 71ca3b891..1e4762d63 100644 --- a/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicy.java +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicy.java @@ -12,49 +12,75 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** + * Legal Hold Policy information describes the basic characteristics of the Policy, such as name, + * description, and filter dates. + */ @JsonFilter("nullablePropertyFilter") public class LegalHoldPolicy extends LegalHoldPolicyMini { + /** Name of the legal hold policy. */ @JsonProperty("policy_name") protected String policyName; + /** Description of the legal hold policy. Optional property with a 500 character limit. */ protected String description; + /** + * Possible values: * 'active' - the policy is not in a transition state. * 'applying' - that the + * policy is in the process of being applied. * 'releasing' - that the process is in the process + * of being released. * 'released' - the policy is no longer active. + */ @JsonDeserialize(using = LegalHoldPolicyStatusField.LegalHoldPolicyStatusFieldDeserializer.class) @JsonSerialize(using = LegalHoldPolicyStatusField.LegalHoldPolicyStatusFieldSerializer.class) protected EnumWrapper status; + /** Counts of assignments within this a legal hold policy by item type. */ @JsonProperty("assignment_counts") protected LegalHoldPolicyAssignmentCountsField assignmentCounts; @JsonProperty("created_by") protected UserMini createdBy; + /** When the legal hold policy object was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** + * When the legal hold policy object was modified. Does not update when assignments are added or + * removed. + */ @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime modifiedAt; + /** + * When the policy release request was sent. (Because it can take time for a policy to fully + * delete, this isn't quite the same time that the policy is fully deleted). + * + *

    If `null`, the policy was not deleted. + */ @JsonProperty("deleted_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime deletedAt; + /** User-specified, optional date filter applies to Custodian assignments only. */ @JsonProperty("filter_started_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime filterStartedAt; + /** User-specified, optional date filter applies to Custodian assignments only. */ @JsonProperty("filter_ended_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime filterEndedAt; + /** Optional notes about why the policy was created. */ @JsonProperty("release_notes") protected String releaseNotes; diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicyAssignmentCountsField.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicyAssignmentCountsField.java index 59a01c5c5..5e58d641f 100644 --- a/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicyAssignmentCountsField.java +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicyAssignmentCountsField.java @@ -9,12 +9,16 @@ @JsonFilter("nullablePropertyFilter") public class LegalHoldPolicyAssignmentCountsField extends SerializableObject { + /** The number of users this policy is applied to. */ protected Long user; + /** The number of folders this policy is applied to. */ protected Long folder; + /** The number of files this policy is applied to. */ protected Long file; + /** The number of file versions this policy is applied to. */ @JsonProperty("file_version") protected Long fileVersion; diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignment/LegalHoldPolicyAssignment.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignment/LegalHoldPolicyAssignment.java index c30876012..092811ec2 100644 --- a/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignment/LegalHoldPolicyAssignment.java +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignment/LegalHoldPolicyAssignment.java @@ -17,6 +17,13 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** + * Legal Hold Assignments are used to assign Legal Hold Policies to Users, Folders, Files, or File + * Versions. + * + *

    Creating a Legal Hold Assignment puts a hold on the File-Versions that belong to the + * Assignment's 'apply-to' entity. + */ @JsonFilter("nullablePropertyFilter") public class LegalHoldPolicyAssignment extends LegalHoldPolicyAssignmentBase { @@ -29,11 +36,17 @@ public class LegalHoldPolicyAssignment extends LegalHoldPolicyAssignmentBase { @JsonProperty("assigned_by") protected UserMini assignedBy; + /** When the legal hold policy assignment object was created. */ @JsonProperty("assigned_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime assignedAt; + /** + * When the assignment release request was sent. (Because it can take time for an assignment to + * fully delete, this isn't quite the same time that the assignment is fully deleted). If null, + * Assignment was not deleted. + */ @JsonProperty("deleted_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignmentbase/LegalHoldPolicyAssignmentBase.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignmentbase/LegalHoldPolicyAssignmentBase.java index 082e8c4be..9b1b00a06 100644 --- a/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignmentbase/LegalHoldPolicyAssignmentBase.java +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignmentbase/LegalHoldPolicyAssignmentBase.java @@ -8,11 +8,20 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** + * Legal Hold Assignments are used to assign Legal Hold Policies to Users, Folders, Files, or File + * Versions. + * + *

    Creating a Legal Hold Assignment puts a hold on the File-Versions that belong to the + * Assignment's 'apply-to' entity. + */ @JsonFilter("nullablePropertyFilter") public class LegalHoldPolicyAssignmentBase extends SerializableObject { + /** The unique identifier for this legal hold assignment. */ protected String id; + /** The value will always be `legal_hold_policy_assignment`. */ @JsonDeserialize( using = LegalHoldPolicyAssignmentBaseTypeField.LegalHoldPolicyAssignmentBaseTypeFieldDeserializer diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignments/LegalHoldPolicyAssignments.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignments/LegalHoldPolicyAssignments.java index 5ae76ad11..ef46a2191 100644 --- a/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignments/LegalHoldPolicyAssignments.java +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignments/LegalHoldPolicyAssignments.java @@ -9,19 +9,27 @@ import java.util.List; import java.util.Objects; +/** A list of legal hold policies assignments. */ @JsonFilter("nullablePropertyFilter") public class LegalHoldPolicyAssignments extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** The marker for the start of the previous page of results. */ @JsonProperty("prev_marker") @Nullable protected String prevMarker; + /** A list of legal hold policy assignments. */ protected List entries; public LegalHoldPolicyAssignments() { diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicymini/LegalHoldPolicyMini.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicymini/LegalHoldPolicyMini.java index 2cf38c61a..dfa2d34d7 100644 --- a/src/main/java/com/box/sdkgen/schemas/legalholdpolicymini/LegalHoldPolicyMini.java +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicymini/LegalHoldPolicyMini.java @@ -9,11 +9,14 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** A mini legal hold policy. */ @JsonFilter("nullablePropertyFilter") public class LegalHoldPolicyMini extends SerializableObject { + /** The unique identifier for this legal hold policy. */ protected final String id; + /** The value will always be `legal_hold_policy`. */ @JsonDeserialize( using = LegalHoldPolicyMiniTypeField.LegalHoldPolicyMiniTypeFieldDeserializer.class) @JsonSerialize(using = LegalHoldPolicyMiniTypeField.LegalHoldPolicyMiniTypeFieldSerializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/metadata/Metadata.java b/src/main/java/com/box/sdkgen/schemas/metadata/Metadata.java index bf21ad499..857ba7c9a 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadata/Metadata.java +++ b/src/main/java/com/box/sdkgen/schemas/metadata/Metadata.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFilter; import java.util.Objects; +/** An instance of a metadata template, which has been applied to a file or folder. */ @JsonFilter("nullablePropertyFilter") public class Metadata extends MetadataBase { diff --git a/src/main/java/com/box/sdkgen/schemas/metadatabase/MetadataBase.java b/src/main/java/com/box/sdkgen/schemas/metadatabase/MetadataBase.java index ed166df18..b3d23fc83 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatabase/MetadataBase.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatabase/MetadataBase.java @@ -6,18 +6,33 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** The base representation of a metadata instance. */ @JsonFilter("nullablePropertyFilter") public class MetadataBase extends SerializableObject { + /** + * The identifier of the item that this metadata instance has been attached to. This combines the + * `type` and the `id` of the parent in the form `{type}_{id}`. + */ @JsonProperty("$parent") protected String parent; + /** The name of the template. */ @JsonProperty("$template") protected String template; + /** + * An ID for the scope in which this template has been applied. This will be + * `enterprise_{enterprise_id}` for templates defined for use in this enterprise, and `global` for + * general templates that are available to all enterprises using Box. + */ @JsonProperty("$scope") protected String scope; + /** + * The version of the metadata instance. This version starts at 0 and increases every time a + * user-defined property is modified. + */ @JsonProperty("$version") protected Long version; diff --git a/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicies/MetadataCascadePolicies.java b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicies/MetadataCascadePolicies.java index 7a66d51e9..6775feed6 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicies/MetadataCascadePolicies.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicies/MetadataCascadePolicies.java @@ -9,19 +9,27 @@ import java.util.List; import java.util.Objects; +/** A list of metadata cascade policies. */ @JsonFilter("nullablePropertyFilter") public class MetadataCascadePolicies extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** The marker for the start of the previous page of results. */ @JsonProperty("prev_marker") @Nullable protected String prevMarker; + /** A list of metadata cascade policies. */ protected List entries; public MetadataCascadePolicies() { diff --git a/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicy.java b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicy.java index c60ee223d..6286b6819 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicy.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicy.java @@ -9,24 +9,51 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** + * A metadata cascade policy automatically applies a metadata template instance to all the files and + * folders within the targeted folder. + */ @JsonFilter("nullablePropertyFilter") public class MetadataCascadePolicy extends SerializableObject { + /** The ID of the metadata cascade policy object. */ protected final String id; + /** The value will always be `metadata_cascade_policy`. */ @JsonDeserialize( using = MetadataCascadePolicyTypeField.MetadataCascadePolicyTypeFieldDeserializer.class) @JsonSerialize( using = MetadataCascadePolicyTypeField.MetadataCascadePolicyTypeFieldSerializer.class) protected EnumWrapper type; + /** The enterprise that owns this policy. */ @JsonProperty("owner_enterprise") protected MetadataCascadePolicyOwnerEnterpriseField ownerEnterprise; + /** Represent the folder the policy is applied to. */ protected MetadataCascadePolicyParentField parent; + /** + * The scope of the metadata cascade policy can either be `global` or `enterprise_*`. The `global` + * scope is used for policies that are available to any Box enterprise. The `enterprise_*` scope + * represents policies that have been created within a specific enterprise, where `*` will be the + * ID of that enterprise. + */ protected String scope; + /** + * The key of the template that is cascaded down to the folder's children. + * + *

    In many cases the template key is automatically derived of its display name, for example + * `Contract Template` would become `contractTemplate`. In some cases the creator of the template + * will have provided its own template key. + * + *

    Please [list the templates for an enterprise][list], or get all instances on a [file][file] + * or [folder][folder] to inspect a template's key. + * + *

    [list]: e://get-metadata-templates-enterprise [file]: e://get-files-id-metadata [folder]: + * e://get-folders-id-metadata + */ protected String templateKey; public MetadataCascadePolicy(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyOwnerEnterpriseField.java b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyOwnerEnterpriseField.java index 274e95386..c47d7f07e 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyOwnerEnterpriseField.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyOwnerEnterpriseField.java @@ -11,6 +11,7 @@ @JsonFilter("nullablePropertyFilter") public class MetadataCascadePolicyOwnerEnterpriseField extends SerializableObject { + /** The value will always be `enterprise`. */ @JsonDeserialize( using = MetadataCascadePolicyOwnerEnterpriseTypeField @@ -21,6 +22,7 @@ public class MetadataCascadePolicyOwnerEnterpriseField extends SerializableObjec .MetadataCascadePolicyOwnerEnterpriseTypeFieldSerializer.class) protected EnumWrapper type; + /** The ID of the enterprise that owns the policy. */ protected String id; public MetadataCascadePolicyOwnerEnterpriseField() { diff --git a/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyParentField.java b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyParentField.java index 87a008bae..36e9eab32 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyParentField.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyParentField.java @@ -11,6 +11,7 @@ @JsonFilter("nullablePropertyFilter") public class MetadataCascadePolicyParentField extends SerializableObject { + /** The value will always be `folder`. */ @JsonDeserialize( using = MetadataCascadePolicyParentTypeField.MetadataCascadePolicyParentTypeFieldDeserializer @@ -20,6 +21,7 @@ public class MetadataCascadePolicyParentField extends SerializableObject { MetadataCascadePolicyParentTypeField.MetadataCascadePolicyParentTypeFieldSerializer.class) protected EnumWrapper type; + /** The ID of the folder the policy is applied to. */ protected String id; public MetadataCascadePolicyParentField() { diff --git a/src/main/java/com/box/sdkgen/schemas/metadataerror/MetadataError.java b/src/main/java/com/box/sdkgen/schemas/metadataerror/MetadataError.java index d482b3fad..ad6cebc7e 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadataerror/MetadataError.java +++ b/src/main/java/com/box/sdkgen/schemas/metadataerror/MetadataError.java @@ -6,13 +6,17 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** A generic metadata operation error. */ @JsonFilter("nullablePropertyFilter") public class MetadataError extends SerializableObject { + /** A Box-specific error code. */ protected String code; + /** A short message describing the error. */ protected String message; + /** A unique identifier for this response, which can be used when contacting Box support. */ @JsonProperty("request_id") protected String requestId; diff --git a/src/main/java/com/box/sdkgen/schemas/metadatafieldfilterdaterange/MetadataFieldFilterDateRange.java b/src/main/java/com/box/sdkgen/schemas/metadatafieldfilterdaterange/MetadataFieldFilterDateRange.java index b5251bf91..2b8ce5c03 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatafieldfilterdaterange/MetadataFieldFilterDateRange.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatafieldfilterdaterange/MetadataFieldFilterDateRange.java @@ -9,13 +9,25 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** + * Specifies which `date` field on the template to filter the search results by, specifying a range + * of dates that can match. + */ @JsonFilter("nullablePropertyFilter") public class MetadataFieldFilterDateRange extends SerializableObject { + /** + * Specifies the (inclusive) upper bound for the metadata field value. The value of a field must + * be lower than (`lt`) or equal to this value for the search query to match this template. + */ @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime lt; + /** + * Specifies the (inclusive) lower bound for the metadata field value. The value of a field must + * be greater than (`gt`) or equal to this value for the search query to match this template. + */ @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime gt; diff --git a/src/main/java/com/box/sdkgen/schemas/metadatafieldfilterfloatrange/MetadataFieldFilterFloatRange.java b/src/main/java/com/box/sdkgen/schemas/metadatafieldfilterfloatrange/MetadataFieldFilterFloatRange.java index 2f352ea1f..d12b7c47f 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatafieldfilterfloatrange/MetadataFieldFilterFloatRange.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatafieldfilterfloatrange/MetadataFieldFilterFloatRange.java @@ -5,11 +5,23 @@ import com.fasterxml.jackson.annotation.JsonFilter; import java.util.Objects; +/** + * Specifies which `float` field on the template to filter the search results by, specifying a range + * of values that can match. + */ @JsonFilter("nullablePropertyFilter") public class MetadataFieldFilterFloatRange extends SerializableObject { + /** + * Specifies the (inclusive) upper bound for the metadata field value. The value of a field must + * be lower than (`lt`) or equal to this value for the search query to match this template. + */ protected Double lt; + /** + * Specifies the (inclusive) lower bound for the metadata field value. The value of a field must + * be greater than (`gt`) or equal to this value for the search query to match this template. + */ protected Double gt; public MetadataFieldFilterFloatRange() { diff --git a/src/main/java/com/box/sdkgen/schemas/metadatafilter/MetadataFilter.java b/src/main/java/com/box/sdkgen/schemas/metadatafilter/MetadataFilter.java index 39e9ef8f4..940a099c0 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatafilter/MetadataFilter.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatafilter/MetadataFilter.java @@ -10,15 +10,40 @@ import java.util.Map; import java.util.Objects; +/** A metadata template used to filter the search results. */ @JsonFilter("nullablePropertyFilter") public class MetadataFilter extends SerializableObject { + /** + * Specifies the scope of the template to filter search results by. + * + *

    This will be `enterprise_{enterprise_id}` for templates defined for use in this enterprise, + * and `global` for general templates that are available to all enterprises using Box. + */ @JsonDeserialize(using = MetadataFilterScopeField.MetadataFilterScopeFieldDeserializer.class) @JsonSerialize(using = MetadataFilterScopeField.MetadataFilterScopeFieldSerializer.class) protected EnumWrapper scope; + /** + * The key of the template used to filter search results. + * + *

    In many cases the template key is automatically derived of its display name, for example + * `Contract Template` would become `contractTemplate`. In some cases the creator of the template + * will have provided its own template key. + * + *

    Please [list the templates for an enterprise][list], or get all instances on a [file][file] + * or [folder][folder] to inspect a template's key. + * + *

    [list]: e://get-metadata-templates-enterprise [file]: e://get-files-id-metadata [folder]: + * e://get-folders-id-metadata + */ protected String templateKey; + /** + * Specifies which fields on the template to filter the search results by. When more than one + * field is specified, the query performs a logical `AND` to ensure that the instance of the + * template matches each of the fields specified. + */ protected Map filters; public MetadataFilter() { diff --git a/src/main/java/com/box/sdkgen/schemas/metadatafull/MetadataFull.java b/src/main/java/com/box/sdkgen/schemas/metadatafull/MetadataFull.java index f60901704..8eb03a21e 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatafull/MetadataFull.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatafull/MetadataFull.java @@ -8,18 +8,29 @@ import java.util.Map; import java.util.Objects; +/** An instance of a metadata template, which has been applied to a file or folder. */ @JsonFilter("nullablePropertyFilter") public class MetadataFull extends Metadata { + /** Whether the user can edit this metadata instance. */ @JsonProperty("$canEdit") protected Boolean canEdit; + /** A UUID to identify the metadata instance. */ @JsonProperty("$id") protected String id; + /** + * A unique identifier for the "type" of this instance. This is an internal system property and + * should not be used by a client application. + */ @JsonProperty("$type") protected String type; + /** + * The last-known version of the template of the object. This is an internal system property and + * should not be used by a client application. + */ @JsonProperty("$typeVersion") protected Long typeVersion; diff --git a/src/main/java/com/box/sdkgen/schemas/metadataquery/MetadataQuery.java b/src/main/java/com/box/sdkgen/schemas/metadataquery/MetadataQuery.java index eb64ed5f7..d621962b3 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadataquery/MetadataQuery.java +++ b/src/main/java/com/box/sdkgen/schemas/metadataquery/MetadataQuery.java @@ -8,26 +8,80 @@ import java.util.Map; import java.util.Objects; +/** Create a search using SQL-like syntax to return items that match specific metadata. */ @JsonFilter("nullablePropertyFilter") public class MetadataQuery extends SerializableObject { + /** + * Specifies the template used in the query. Must be in the form `scope.templateKey`. Not all + * templates can be used in this field, most notably the built-in, Box-provided classification + * templates can not be used in a query. + */ protected final String from; + /** + * The query to perform. A query is a logical expression that is very similar to a SQL `SELECT` + * statement. Values in the search query can be turned into parameters specified in the + * `query_param` arguments list to prevent having to manually insert search values into the query + * string. + * + *

    For example, a value of `:amount` would represent the `amount` value in `query_params` + * object. + */ protected String query; + /** + * Set of arguments corresponding to the parameters specified in the `query`. The type of each + * parameter used in the `query_params` must match the type of the corresponding metadata template + * field. + */ @JsonProperty("query_params") protected Map queryParams; + /** + * The ID of the folder that you are restricting the query to. A value of zero will return results + * from all folders you have access to. A non-zero value will only return results found in the + * folder corresponding to the ID or in any of its subfolders. + */ @JsonProperty("ancestor_folder_id") protected final String ancestorFolderId; + /** + * A list of template fields and directions to sort the metadata query results by. + * + *

    The ordering `direction` must be the same for each item in the array. + */ @JsonProperty("order_by") protected List orderBy; + /** + * A value between 0 and 100 that indicates the maximum number of results to return for a single + * request. This only specifies a maximum boundary and will not guarantee the minimum number of + * results returned. + */ protected Long limit; + /** Marker to use for requesting the next page. */ protected String marker; + /** + * By default, this endpoint returns only the most basic info about the items for which the query + * matches. This attribute can be used to specify a list of additional attributes to return for + * any item, including its metadata. + * + *

    This attribute takes a list of item fields, metadata template identifiers, or metadata + * template field identifiers. + * + *

    For example: + * + *

    * `created_by` will add the details of the user who created the item to the response. * + * `metadata.<scope>.<templateKey>` will return the mini-representation of the + * metadata instance identified by the `scope` and `templateKey`. * + * `metadata.<scope>.<templateKey>.<field>` will return all the + * mini-representation of the metadata instance identified by the `scope` and `templateKey` plus + * the field specified by the `field` name. Multiple fields for the same `scope` and `templateKey` + * can be defined. + */ protected List fields; public MetadataQuery( diff --git a/src/main/java/com/box/sdkgen/schemas/metadataquery/MetadataQueryOrderByField.java b/src/main/java/com/box/sdkgen/schemas/metadataquery/MetadataQueryOrderByField.java index e3a381047..e094f5801 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadataquery/MetadataQueryOrderByField.java +++ b/src/main/java/com/box/sdkgen/schemas/metadataquery/MetadataQueryOrderByField.java @@ -12,9 +12,20 @@ @JsonFilter("nullablePropertyFilter") public class MetadataQueryOrderByField extends SerializableObject { + /** + * The metadata template field to order by. + * + *

    The `field_key` represents the `key` value of a field from the metadata template being + * searched for. + */ @JsonProperty("field_key") protected String fieldKey; + /** + * The direction to order by, either ascending or descending. + * + *

    The `ordering` direction must be the same for each item in the array. + */ @JsonDeserialize( using = MetadataQueryOrderByDirectionField.MetadataQueryOrderByDirectionFieldDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/metadataqueryresults/MetadataQueryResults.java b/src/main/java/com/box/sdkgen/schemas/metadataqueryresults/MetadataQueryResults.java index 560bf7af1..c728526d5 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadataqueryresults/MetadataQueryResults.java +++ b/src/main/java/com/box/sdkgen/schemas/metadataqueryresults/MetadataQueryResults.java @@ -8,13 +8,26 @@ import java.util.List; import java.util.Objects; +/** A page of files and folders that matched the metadata query. */ @JsonFilter("nullablePropertyFilter") public class MetadataQueryResults extends SerializableObject { + /** + * The mini representation of the files and folders that match the search terms. + * + *

    By default, this endpoint returns only the most basic info about the items. To get + * additional fields for each item, including any of the metadata, use the `fields` attribute in + * the query. + */ protected List entries; + /** + * The limit that was used for this search. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") protected String nextMarker; diff --git a/src/main/java/com/box/sdkgen/schemas/metadatas/Metadatas.java b/src/main/java/com/box/sdkgen/schemas/metadatas/Metadatas.java index 67360324f..861ec46c8 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatas/Metadatas.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatas/Metadatas.java @@ -7,11 +7,14 @@ import java.util.List; import java.util.Objects; +/** A list of metadata instances that have been applied to a file or folder. */ @JsonFilter("nullablePropertyFilter") public class Metadatas extends SerializableObject { + /** A list of metadata instances, as applied to this file or folder. */ protected List entries; + /** The limit that was used for this page of results. */ protected Long limit; public Metadatas() { diff --git a/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplate.java b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplate.java index f7d2df08b..4bd478909 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplate.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplate.java @@ -10,25 +10,49 @@ import java.util.List; import java.util.Objects; +/** A template for metadata that can be applied to files and folders. */ @JsonFilter("nullablePropertyFilter") public class MetadataTemplate extends SerializableObject { + /** The ID of the metadata template. */ protected final String id; + /** The value will always be `metadata_template`. */ @JsonDeserialize(using = MetadataTemplateTypeField.MetadataTemplateTypeFieldDeserializer.class) @JsonSerialize(using = MetadataTemplateTypeField.MetadataTemplateTypeFieldSerializer.class) protected EnumWrapper type; + /** + * The scope of the metadata template can either be `global` or `enterprise_*`. The `global` scope + * is used for templates that are available to any Box enterprise. The `enterprise_*` scope + * represents templates that have been created within a specific enterprise, where `*` will be the + * ID of that enterprise. + */ protected String scope; + /** + * A unique identifier for the template. This identifier is unique across the `scope` of the + * enterprise to which the metadata template is being applied, yet is not necessarily unique + * across different enterprises. + */ protected String templateKey; + /** The display name of the template. This can be seen in the Box web app and mobile apps. */ protected String displayName; + /** + * Defines if this template is visible in the Box web app UI, or if it is purely intended for + * usage through the API. + */ protected Boolean hidden; + /** + * An ordered list of template fields which are part of the template. Each field can be a regular + * text field, date field, number field, as well as a single or multi-select list. + */ protected List fields; + /** Whether or not to include the metadata when a file or folder is copied. */ protected Boolean copyInstanceOnItemCopy; public MetadataTemplate(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsField.java b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsField.java index 7be30f533..a06ce4645 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsField.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsField.java @@ -13,22 +13,47 @@ @JsonFilter("nullablePropertyFilter") public class MetadataTemplateFieldsField extends SerializableObject { + /** + * The type of field. The basic fields are a `string` field for text, a `float` field for numbers, + * and a `date` fields to present the user with a date-time picker. + * + *

    Additionally, metadata templates support an `enum` field for a basic list of items, and ` + * multiSelect` field for a similar list of items where the user can select more than one value. + * + *

    **Note**: The `integer` value is deprecated. It is still present in the response, but cannot + * be used in the POST request. + */ @JsonDeserialize( using = MetadataTemplateFieldsTypeField.MetadataTemplateFieldsTypeFieldDeserializer.class) @JsonSerialize( using = MetadataTemplateFieldsTypeField.MetadataTemplateFieldsTypeFieldSerializer.class) protected final EnumWrapper type; + /** + * A unique identifier for the field. The identifier must be unique within the template to which + * it belongs. + */ protected final String key; + /** The display name of the field as it is shown to the user in the web and mobile apps. */ protected final String displayName; + /** A description of the field. This is not shown to the user. */ protected String description; + /** + * Whether this field is hidden in the UI for the user and can only be set through the API + * instead. + */ protected Boolean hidden; + /** + * A list of options for this field. This is used in combination with the `enum` and `multiSelect` + * field types. + */ protected List options; + /** The unique ID of the metadata template field. */ protected String id; public MetadataTemplateFieldsField( diff --git a/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsOptionsField.java b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsOptionsField.java index c33b14ab1..4de0f98e2 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsOptionsField.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsOptionsField.java @@ -9,8 +9,13 @@ @JsonFilter("nullablePropertyFilter") public class MetadataTemplateFieldsOptionsField extends SerializableObject { + /** + * The text value of the option. This represents both the display name of the option and the + * internal key used when updating templates. + */ protected final String key; + /** The internal unique identifier of the option. */ protected String id; public MetadataTemplateFieldsOptionsField(@JsonProperty("key") String key) { diff --git a/src/main/java/com/box/sdkgen/schemas/metadatatemplates/MetadataTemplates.java b/src/main/java/com/box/sdkgen/schemas/metadatatemplates/MetadataTemplates.java index 62b08ca56..f6b026856 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatatemplates/MetadataTemplates.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatatemplates/MetadataTemplates.java @@ -9,19 +9,27 @@ import java.util.List; import java.util.Objects; +/** A list of metadata templates. */ @JsonFilter("nullablePropertyFilter") public class MetadataTemplates extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** The marker for the start of the previous page of results. */ @JsonProperty("prev_marker") @Nullable protected String prevMarker; + /** A list of metadata templates. */ protected List entries; public MetadataTemplates() { diff --git a/src/main/java/com/box/sdkgen/schemas/oauth2error/OAuth2Error.java b/src/main/java/com/box/sdkgen/schemas/oauth2error/OAuth2Error.java index 744e3c90d..5b5cb6c31 100644 --- a/src/main/java/com/box/sdkgen/schemas/oauth2error/OAuth2Error.java +++ b/src/main/java/com/box/sdkgen/schemas/oauth2error/OAuth2Error.java @@ -6,11 +6,14 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** An OAuth 2.0 error. */ @JsonFilter("nullablePropertyFilter") public class OAuth2Error extends SerializableObject { + /** The type of the error returned. */ protected String error; + /** The type of the error returned. */ @JsonProperty("error_description") protected String errorDescription; diff --git a/src/main/java/com/box/sdkgen/schemas/outcome/Outcome.java b/src/main/java/com/box/sdkgen/schemas/outcome/Outcome.java index 8506d0ffd..7def47178 100644 --- a/src/main/java/com/box/sdkgen/schemas/outcome/Outcome.java +++ b/src/main/java/com/box/sdkgen/schemas/outcome/Outcome.java @@ -9,9 +9,11 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** An instance of an outcome. */ @JsonFilter("nullablePropertyFilter") public class Outcome extends SerializableObject { + /** ID of a specific outcome. */ protected final String id; protected CollaboratorVariable collaborators; diff --git a/src/main/java/com/box/sdkgen/schemas/postoauth2revoke/PostOAuth2Revoke.java b/src/main/java/com/box/sdkgen/schemas/postoauth2revoke/PostOAuth2Revoke.java index 6573da9f2..286d12376 100644 --- a/src/main/java/com/box/sdkgen/schemas/postoauth2revoke/PostOAuth2Revoke.java +++ b/src/main/java/com/box/sdkgen/schemas/postoauth2revoke/PostOAuth2Revoke.java @@ -6,15 +6,19 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** A request to revoke an OAuth 2.0 token. */ @JsonFilter("nullablePropertyFilter") public class PostOAuth2Revoke extends SerializableObject { + /** The Client ID of the application requesting to revoke the access token. */ @JsonProperty("client_id") protected String clientId; + /** The client secret of the application requesting to revoke an access token. */ @JsonProperty("client_secret") protected String clientSecret; + /** The access token to revoke. */ protected String token; public PostOAuth2Revoke() { diff --git a/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2Token.java b/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2Token.java index 92efb9937..7767feb82 100644 --- a/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2Token.java +++ b/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2Token.java @@ -9,9 +9,15 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** A request for a new OAuth 2.0 token. */ @JsonFilter("nullablePropertyFilter") public class PostOAuth2Token extends SerializableObject { + /** + * The type of request being made, either using a client-side obtained authorization code, a + * refresh token, a JWT assertion, client credentials grant or another access token for the + * purpose of downscoping a token. + */ @JsonDeserialize( using = PostOAuth2TokenGrantTypeField.PostOAuth2TokenGrantTypeFieldDeserializer.class) @JsonSerialize( @@ -19,22 +25,64 @@ public class PostOAuth2Token extends SerializableObject { @JsonProperty("grant_type") protected final EnumWrapper grantType; + /** + * The Client ID of the application requesting an access token. + * + *

    Used in combination with `authorization_code`, `client_credentials`, or + * `urn:ietf:params:oauth:grant-type:jwt-bearer` as the `grant_type`. + */ @JsonProperty("client_id") protected String clientId; + /** + * The client secret of the application requesting an access token. + * + *

    Used in combination with `authorization_code`, `client_credentials`, or + * `urn:ietf:params:oauth:grant-type:jwt-bearer` as the `grant_type`. + */ @JsonProperty("client_secret") protected String clientSecret; + /** + * The client-side authorization code passed to your application by Box in the browser redirect + * after the user has successfully granted your application permission to make API calls on their + * behalf. + * + *

    Used in combination with `authorization_code` as the `grant_type`. + */ protected String code; + /** + * A refresh token used to get a new access token with. + * + *

    Used in combination with `refresh_token` as the `grant_type`. + */ @JsonProperty("refresh_token") protected String refreshToken; + /** + * A JWT assertion for which to request a new access token. + * + *

    Used in combination with `urn:ietf:params:oauth:grant-type:jwt-bearer` as the `grant_type`. + */ protected String assertion; + /** + * The token to exchange for a downscoped token. This can be a regular access token, a JWT + * assertion, or an app token. + * + *

    Used in combination with `urn:ietf:params:oauth:grant-type:token-exchange` as the + * `grant_type`. + */ @JsonProperty("subject_token") protected String subjectToken; + /** + * The type of `subject_token` passed in. + * + *

    Used in combination with `urn:ietf:params:oauth:grant-type:token-exchange` as the + * `grant_type`. + */ @JsonDeserialize( using = PostOAuth2TokenSubjectTokenTypeField.PostOAuth2TokenSubjectTokenTypeFieldDeserializer @@ -45,9 +93,21 @@ public class PostOAuth2Token extends SerializableObject { @JsonProperty("subject_token_type") protected EnumWrapper subjectTokenType; + /** + * The token used to create an annotator token. This is a JWT assertion. + * + *

    Used in combination with `urn:ietf:params:oauth:grant-type:token-exchange` as the + * `grant_type`. + */ @JsonProperty("actor_token") protected String actorToken; + /** + * The type of `actor_token` passed in. + * + *

    Used in combination with `urn:ietf:params:oauth:grant-type:token-exchange` as the + * `grant_type`. + */ @JsonDeserialize( using = PostOAuth2TokenActorTokenTypeField.PostOAuth2TokenActorTokenTypeFieldDeserializer.class) @@ -56,10 +116,18 @@ public class PostOAuth2Token extends SerializableObject { @JsonProperty("actor_token_type") protected EnumWrapper actorTokenType; + /** + * The space-delimited list of scopes that you want apply to the new access token. + * + *

    The `subject_token` will need to have all of these scopes or the call will error with **401 + * Unauthorized**.. + */ protected String scope; + /** Full URL for the file that the token should be generated for. */ protected String resource; + /** Used in combination with `client_credentials` as the `grant_type`. */ @JsonDeserialize( using = PostOAuth2TokenBoxSubjectTypeField.PostOAuth2TokenBoxSubjectTypeFieldDeserializer.class) @@ -68,9 +136,14 @@ public class PostOAuth2Token extends SerializableObject { @JsonProperty("box_subject_type") protected EnumWrapper boxSubjectType; + /** + * Used in combination with `client_credentials` as the `grant_type`. Value is determined by + * `box_subject_type`. If `user` use user ID and if `enterprise` use enterprise ID. + */ @JsonProperty("box_subject_id") protected String boxSubjectId; + /** Full URL of the shared link on the file or folder that the token should be generated for. */ @JsonProperty("box_shared_link") protected String boxSharedLink; diff --git a/src/main/java/com/box/sdkgen/schemas/postoauth2tokenrefreshaccesstoken/PostOAuth2TokenRefreshAccessToken.java b/src/main/java/com/box/sdkgen/schemas/postoauth2tokenrefreshaccesstoken/PostOAuth2TokenRefreshAccessToken.java index c871df9c1..59e307cfe 100644 --- a/src/main/java/com/box/sdkgen/schemas/postoauth2tokenrefreshaccesstoken/PostOAuth2TokenRefreshAccessToken.java +++ b/src/main/java/com/box/sdkgen/schemas/postoauth2tokenrefreshaccesstoken/PostOAuth2TokenRefreshAccessToken.java @@ -9,9 +9,14 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** + * A request to refresh an Access Token. Use this API to refresh an expired Access Token using a + * valid Refresh Token. + */ @JsonFilter("nullablePropertyFilter") public class PostOAuth2TokenRefreshAccessToken extends SerializableObject { + /** The type of request being made, in this case a refresh request. */ @JsonDeserialize( using = PostOAuth2TokenRefreshAccessTokenGrantTypeField @@ -23,12 +28,15 @@ public class PostOAuth2TokenRefreshAccessToken extends SerializableObject { @JsonProperty("grant_type") protected EnumWrapper grantType; + /** The client ID of the application requesting to refresh the token. */ @JsonProperty("client_id") protected final String clientId; + /** The client secret of the application requesting to refresh the token. */ @JsonProperty("client_secret") protected final String clientSecret; + /** The refresh token to refresh. */ @JsonProperty("refresh_token") protected final String refreshToken; diff --git a/src/main/java/com/box/sdkgen/schemas/realtimeserver/RealtimeServer.java b/src/main/java/com/box/sdkgen/schemas/realtimeserver/RealtimeServer.java index 8aa87dbf1..f06cc762c 100644 --- a/src/main/java/com/box/sdkgen/schemas/realtimeserver/RealtimeServer.java +++ b/src/main/java/com/box/sdkgen/schemas/realtimeserver/RealtimeServer.java @@ -6,18 +6,33 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** A real-time server that can be used for long polling user events. */ @JsonFilter("nullablePropertyFilter") public class RealtimeServer extends SerializableObject { + /** The value will always be `realtime_server`. */ protected String type; + /** The URL for the server. */ protected String url; + /** The time in minutes for which this server is available. */ protected String ttl; + /** + * The maximum number of retries this server will allow before a new long poll should be started + * by getting a [new list of server](#options-events). + */ @JsonProperty("max_retries") protected String maxRetries; + /** + * The maximum number of seconds without a response after which you should retry the long poll + * connection. + * + *

    This helps to overcome network issues where the long poll looks to be working but no + * packages are coming through. + */ @JsonProperty("retry_timeout") protected Long retryTimeout; diff --git a/src/main/java/com/box/sdkgen/schemas/realtimeservers/RealtimeServers.java b/src/main/java/com/box/sdkgen/schemas/realtimeservers/RealtimeServers.java index db63d4db6..513ace856 100644 --- a/src/main/java/com/box/sdkgen/schemas/realtimeservers/RealtimeServers.java +++ b/src/main/java/com/box/sdkgen/schemas/realtimeservers/RealtimeServers.java @@ -8,12 +8,15 @@ import java.util.List; import java.util.Objects; +/** A list of real-time servers that can be used for long-polling. */ @JsonFilter("nullablePropertyFilter") public class RealtimeServers extends SerializableObject { + /** The number of items in this response. */ @JsonProperty("chunk_size") protected Long chunkSize; + /** A list of real-time servers. */ protected List entries; public RealtimeServers() { diff --git a/src/main/java/com/box/sdkgen/schemas/recentitem/RecentItem.java b/src/main/java/com/box/sdkgen/schemas/recentitem/RecentItem.java index 72fd2ba37..c6a8d560e 100644 --- a/src/main/java/com/box/sdkgen/schemas/recentitem/RecentItem.java +++ b/src/main/java/com/box/sdkgen/schemas/recentitem/RecentItem.java @@ -15,13 +15,16 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** A recent item accessed by a user. */ @JsonFilter("nullablePropertyFilter") public class RecentItem extends SerializableObject { + /** The value will always be `recent_item`. */ protected String type; protected RecentItemResource item; + /** The most recent type of access the user performed on the item. */ @JsonDeserialize( using = RecentItemInteractionTypeField.RecentItemInteractionTypeFieldDeserializer.class) @JsonSerialize( @@ -29,11 +32,16 @@ public class RecentItem extends SerializableObject { @JsonProperty("interaction_type") protected EnumWrapper interactionType; + /** The time of the most recent interaction. */ @JsonProperty("interacted_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime interactedAt; + /** + * If the item was accessed through a shared link it will appear here, otherwise this will be + * null. + */ @JsonProperty("interaction_shared_link") protected String interactionSharedLink; diff --git a/src/main/java/com/box/sdkgen/schemas/recentitems/RecentItems.java b/src/main/java/com/box/sdkgen/schemas/recentitems/RecentItems.java index 88770a49c..54ff7239b 100644 --- a/src/main/java/com/box/sdkgen/schemas/recentitems/RecentItems.java +++ b/src/main/java/com/box/sdkgen/schemas/recentitems/RecentItems.java @@ -9,19 +9,27 @@ import java.util.List; import java.util.Objects; +/** A list of recent items. */ @JsonFilter("nullablePropertyFilter") public class RecentItems extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** The marker for the start of the previous page of results. */ @JsonProperty("prev_marker") @Nullable protected String prevMarker; + /** A list of recent items. */ protected List entries; public RecentItems() { diff --git a/src/main/java/com/box/sdkgen/schemas/resourcescope/ResourceScope.java b/src/main/java/com/box/sdkgen/schemas/resourcescope/ResourceScope.java index 6de67fee5..48b7c8d29 100644 --- a/src/main/java/com/box/sdkgen/schemas/resourcescope/ResourceScope.java +++ b/src/main/java/com/box/sdkgen/schemas/resourcescope/ResourceScope.java @@ -11,9 +11,14 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** + * A relation between a resource (file or folder) and the scopes for which the resource can be + * accessed. + */ @JsonFilter("nullablePropertyFilter") public class ResourceScope extends SerializableObject { + /** The scopes for the resource access. */ @JsonDeserialize(using = ResourceScopeScopeField.ResourceScopeScopeFieldDeserializer.class) @JsonSerialize(using = ResourceScopeScopeField.ResourceScopeScopeFieldSerializer.class) protected EnumWrapper scope; diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicies/RetentionPolicies.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicies/RetentionPolicies.java index 92317b265..6c1777c03 100644 --- a/src/main/java/com/box/sdkgen/schemas/retentionpolicies/RetentionPolicies.java +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicies/RetentionPolicies.java @@ -9,13 +9,20 @@ import java.util.List; import java.util.Objects; +/** A list of retention policies. */ @JsonFilter("nullablePropertyFilter") public class RetentionPolicies extends SerializableObject { + /** A list in which each entry represents a retention policy object. */ protected List entries; + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicy.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicy.java index 35e6d0d16..eec56030c 100644 --- a/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicy.java +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicy.java @@ -14,11 +14,23 @@ import java.util.List; import java.util.Objects; +/** + * A retention policy blocks permanent deletion of content for a specified amount of time. Admins + * can create retention policies and then later assign them to specific folders, metadata templates, + * or their entire enterprise. To use this feature, you must have the manage retention policies + * scope enabled for your API key via your application management console. + */ @JsonFilter("nullablePropertyFilter") public class RetentionPolicy extends RetentionPolicyMini { + /** The additional text description of the retention policy. */ protected String description; + /** + * The type of the retention policy. A retention policy type can either be `finite`, where a + * specific amount of time to retain the content is known upfront, or `indefinite`, where the + * amount of time to retain the content is still unknown. + */ @JsonDeserialize( using = RetentionPolicyPolicyTypeField.RetentionPolicyPolicyTypeFieldDeserializer.class) @JsonSerialize( @@ -26,6 +38,18 @@ public class RetentionPolicy extends RetentionPolicyMini { @JsonProperty("policy_type") protected EnumWrapper policyType; + /** + * Specifies the retention type: + * + *

    * `modifiable`: You can modify the retention policy. For example, you can add or remove + * folders, shorten or lengthen the policy duration, or delete the assignment. Use this type if + * your retention policy is not related to any regulatory purposes. + * + *

    * `non-modifiable`: You can modify the retention policy only in a limited way: add a folder, + * lengthen the duration, retire the policy, change the disposition action or notification + * settings. You cannot perform other actions, such as deleting the assignment or shortening the + * policy duration. Use this type to ensure compliance with regulatory retention policies. + */ @JsonDeserialize( using = RetentionPolicyRetentionTypeField.RetentionPolicyRetentionTypeFieldDeserializer.class) @JsonSerialize( @@ -33,6 +57,11 @@ public class RetentionPolicy extends RetentionPolicyMini { @JsonProperty("retention_type") protected EnumWrapper retentionType; + /** + * The status of the retention policy. The status of a policy will be `active`, unless explicitly + * retired by an administrator, in which case the status will be `retired`. Once a policy has been + * retired, it cannot become active again. + */ @JsonDeserialize(using = RetentionPolicyStatusField.RetentionPolicyStatusFieldDeserializer.class) @JsonSerialize(using = RetentionPolicyStatusField.RetentionPolicyStatusFieldSerializer.class) protected EnumWrapper status; @@ -40,25 +69,37 @@ public class RetentionPolicy extends RetentionPolicyMini { @JsonProperty("created_by") protected UserMini createdBy; + /** When the retention policy object was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** When the retention policy object was last modified. */ @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime modifiedAt; + /** + * Determines if the owner of items under the policy can extend the retention when the original + * retention duration is about to end. + */ @JsonProperty("can_owner_extend_retention") protected Boolean canOwnerExtendRetention; + /** + * Determines if owners and co-owners of items under the policy are notified when the retention + * duration is about to end. + */ @JsonProperty("are_owners_notified") protected Boolean areOwnersNotified; + /** A list of users notified when the retention policy duration is about to end. */ @JsonProperty("custom_notification_recipients") protected List customNotificationRecipients; + /** Counts the retention policy assignments for each item type. */ @JsonProperty("assignment_counts") protected RetentionPolicyAssignmentCountsField assignmentCounts; diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyAssignmentCountsField.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyAssignmentCountsField.java index 5dba56a1e..1d9395fac 100644 --- a/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyAssignmentCountsField.java +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyAssignmentCountsField.java @@ -9,10 +9,13 @@ @JsonFilter("nullablePropertyFilter") public class RetentionPolicyAssignmentCountsField extends SerializableObject { + /** The number of enterprise assignments this policy has. The maximum value is 1. */ protected Long enterprise; + /** The number of folder assignments this policy has. */ protected Long folder; + /** The number of metadata template assignments this policy has. */ @JsonProperty("metadata_template") protected Long metadataTemplate; diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignment.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignment.java index 050d43c2d..afa3e1673 100644 --- a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignment.java +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignment.java @@ -15,11 +15,18 @@ import java.util.List; import java.util.Objects; +/** + * A retention assignment represents a rule specifying the files a retention policy retains. + * Assignments can retain files based on their folder or metadata, or hold all files in the + * enterprise. + */ @JsonFilter("nullablePropertyFilter") public class RetentionPolicyAssignment extends SerializableObject { + /** The unique identifier for a retention policy assignment. */ protected final String id; + /** The value will always be `retention_policy_assignment`. */ @JsonDeserialize( using = RetentionPolicyAssignmentTypeField.RetentionPolicyAssignmentTypeFieldDeserializer.class) @@ -30,9 +37,17 @@ public class RetentionPolicyAssignment extends SerializableObject { @JsonProperty("retention_policy") protected RetentionPolicyMini retentionPolicy; + /** + * The `type` and `id` of the content that is under retention. The `type` can either be `folder` + * `enterprise`, or `metadata_template`. + */ @JsonProperty("assigned_to") protected RetentionPolicyAssignmentAssignedToField assignedTo; + /** + * An array of field objects. Values are only returned if the `assigned_to` type is + * `metadata_template`. Otherwise, the array is blank. + */ @JsonProperty("filter_fields") @Nullable protected List filterFields; @@ -40,11 +55,16 @@ public class RetentionPolicyAssignment extends SerializableObject { @JsonProperty("assigned_by") protected UserMini assignedBy; + /** When the retention policy assignment object was created. */ @JsonProperty("assigned_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime assignedAt; + /** + * The date the retention policy assignment begins. If the `assigned_to` type is + * `metadata_template`, this field can be a date field's metadata attribute key id. + */ @JsonProperty("start_date_field") protected String startDateField; diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentAssignedToField.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentAssignedToField.java index 207f3bbe7..4901b2230 100644 --- a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentAssignedToField.java +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentAssignedToField.java @@ -12,8 +12,13 @@ @JsonFilter("nullablePropertyFilter") public class RetentionPolicyAssignmentAssignedToField extends SerializableObject { + /** + * The ID of the folder, enterprise, or metadata template the policy is assigned to. Set to null + * or omit when type is set to enterprise. + */ @Nullable protected String id; + /** The type of resource the policy is assigned to. */ @JsonDeserialize( using = RetentionPolicyAssignmentAssignedToTypeField diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentFilterFieldsField.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentFilterFieldsField.java index 37bf6e80a..7787aa471 100644 --- a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentFilterFieldsField.java +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentFilterFieldsField.java @@ -9,8 +9,10 @@ @JsonFilter("nullablePropertyFilter") public class RetentionPolicyAssignmentFilterFieldsField extends SerializableObject { + /** The metadata attribute key id. */ @Nullable protected String field; + /** The metadata attribute field id. For value, only enum and multiselect types are supported. */ @Nullable protected String value; public RetentionPolicyAssignmentFilterFieldsField() { diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignments/RetentionPolicyAssignments.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignments/RetentionPolicyAssignments.java index 3f53a2ee9..ff5af88a6 100644 --- a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignments/RetentionPolicyAssignments.java +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignments/RetentionPolicyAssignments.java @@ -9,13 +9,20 @@ import java.util.List; import java.util.Objects; +/** A list of retention policy assignments. */ @JsonFilter("nullablePropertyFilter") public class RetentionPolicyAssignments extends SerializableObject { + /** A list of retention policy assignments. */ protected List entries; + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicybase/RetentionPolicyBase.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicybase/RetentionPolicyBase.java index dddc962d8..ea0fc18fd 100644 --- a/src/main/java/com/box/sdkgen/schemas/retentionpolicybase/RetentionPolicyBase.java +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicybase/RetentionPolicyBase.java @@ -9,11 +9,14 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** A base representation of a retention policy. */ @JsonFilter("nullablePropertyFilter") public class RetentionPolicyBase extends SerializableObject { + /** The unique identifier that represents a retention policy. */ protected final String id; + /** The value will always be `retention_policy`. */ @JsonDeserialize( using = RetentionPolicyBaseTypeField.RetentionPolicyBaseTypeFieldDeserializer.class) @JsonSerialize(using = RetentionPolicyBaseTypeField.RetentionPolicyBaseTypeFieldSerializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicymini/RetentionPolicyMini.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicymini/RetentionPolicyMini.java index debfa8d81..908322333 100644 --- a/src/main/java/com/box/sdkgen/schemas/retentionpolicymini/RetentionPolicyMini.java +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicymini/RetentionPolicyMini.java @@ -9,15 +9,28 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** A mini representation of a retention policy, used when nested within another resource. */ @JsonFilter("nullablePropertyFilter") public class RetentionPolicyMini extends RetentionPolicyBase { + /** The name given to the retention policy. */ @JsonProperty("policy_name") protected String policyName; + /** + * The length of the retention policy. This value specifies the duration in days that the + * retention policy will be active for after being assigned to content. If the policy has a + * `policy_type` of `indefinite`, the `retention_length` will also be `indefinite`. + */ @JsonProperty("retention_length") protected String retentionLength; + /** + * The disposition action of the retention policy. This action can be `permanently_delete`, which + * will cause the content retained by the policy to be permanently deleted, or `remove_retention`, + * which will lift the retention policy from the content, allowing it to be deleted by users, once + * the retention policy has expired. + */ @JsonDeserialize( using = RetentionPolicyMiniDispositionActionField diff --git a/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariable.java b/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariable.java index ad3d451a8..816537bf3 100644 --- a/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariable.java +++ b/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariable.java @@ -9,13 +9,16 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** Determines if the workflow outcome affects a specific collaborator role. */ @JsonFilter("nullablePropertyFilter") public class RoleVariable extends SerializableObject { + /** Role object type. */ @JsonDeserialize(using = RoleVariableTypeField.RoleVariableTypeFieldDeserializer.class) @JsonSerialize(using = RoleVariableTypeField.RoleVariableTypeFieldSerializer.class) protected EnumWrapper type; + /** The variable type used by the object. */ @JsonDeserialize( using = RoleVariableVariableTypeField.RoleVariableVariableTypeFieldDeserializer.class) @JsonSerialize( diff --git a/src/main/java/com/box/sdkgen/schemas/searchresults/SearchResults.java b/src/main/java/com/box/sdkgen/schemas/searchresults/SearchResults.java index 9999c348c..e3372bc27 100644 --- a/src/main/java/com/box/sdkgen/schemas/searchresults/SearchResults.java +++ b/src/main/java/com/box/sdkgen/schemas/searchresults/SearchResults.java @@ -11,20 +11,35 @@ import java.util.List; import java.util.Objects; +/** A list of files, folders and web links that matched the search query. */ @JsonFilter("nullablePropertyFilter") public class SearchResults extends SerializableObject { + /** + * One greater than the offset of the last entry in the search results. The total number of + * entries in the collection may be less than `total_count`. + */ @JsonProperty("total_count") protected Long totalCount; + /** + * The limit that was used for this search. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. + */ protected Long limit; + /** + * The 0-based offset of the first entry in this set. This will be the same as the `offset` query + * parameter used. + */ protected Long offset; + /** Specifies the response as search result items without shared links. */ @JsonDeserialize(using = SearchResultsTypeField.SearchResultsTypeFieldDeserializer.class) @JsonSerialize(using = SearchResultsTypeField.SearchResultsTypeFieldSerializer.class) protected EnumWrapper type; + /** The search results for the query provided. */ protected List entries; public SearchResults() { diff --git a/src/main/java/com/box/sdkgen/schemas/searchresultswithsharedlinks/SearchResultsWithSharedLinks.java b/src/main/java/com/box/sdkgen/schemas/searchresultswithsharedlinks/SearchResultsWithSharedLinks.java index 8151798eb..f626226db 100644 --- a/src/main/java/com/box/sdkgen/schemas/searchresultswithsharedlinks/SearchResultsWithSharedLinks.java +++ b/src/main/java/com/box/sdkgen/schemas/searchresultswithsharedlinks/SearchResultsWithSharedLinks.java @@ -11,16 +11,36 @@ import java.util.List; import java.util.Objects; +/** + * A list of files, folders and web links that matched the search query, including the additional + * information about any shared links through which the item has been shared with the user. + * + *

    This response format is only returned when the `include_recent_shared_links` query parameter + * has been set to `true`. + */ @JsonFilter("nullablePropertyFilter") public class SearchResultsWithSharedLinks extends SerializableObject { + /** + * One greater than the offset of the last entry in the search results. The total number of + * entries in the collection may be less than `total_count`. + */ @JsonProperty("total_count") protected Long totalCount; + /** + * The limit that was used for this search. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. + */ protected Long limit; + /** + * The 0-based offset of the first entry in this set. This will be the same as the `offset` query + * parameter used. + */ protected Long offset; + /** Specifies the response as search result items with shared links. */ @JsonDeserialize( using = SearchResultsWithSharedLinksTypeField.SearchResultsWithSharedLinksTypeFieldDeserializer @@ -31,6 +51,10 @@ public class SearchResultsWithSharedLinks extends SerializableObject { .class) protected EnumWrapper type; + /** + * The search results for the query provided, including the additional information about any + * shared links through which the item has been shared with the user. + */ protected List entries; public SearchResultsWithSharedLinks() { diff --git a/src/main/java/com/box/sdkgen/schemas/searchresultwithsharedlink/SearchResultWithSharedLink.java b/src/main/java/com/box/sdkgen/schemas/searchresultwithsharedlink/SearchResultWithSharedLink.java index c7ed36f39..f39b910ec 100644 --- a/src/main/java/com/box/sdkgen/schemas/searchresultwithsharedlink/SearchResultWithSharedLink.java +++ b/src/main/java/com/box/sdkgen/schemas/searchresultwithsharedlink/SearchResultWithSharedLink.java @@ -10,14 +10,27 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** + * A single of files, folder or web link that matched the search query, including the additional + * information about the shared link through which the item has been shared with the user. + * + *

    This response format is only returned when the `include_recent_shared_links` query parameter + * has been set to `true`. + */ @JsonFilter("nullablePropertyFilter") public class SearchResultWithSharedLink extends SerializableObject { + /** + * The optional shared link through which the user has access to this item. This value is only + * returned for items for which the user has recently accessed the file through a shared link. For + * all other items this value will return `null`. + */ @JsonProperty("accessible_via_shared_link") protected String accessibleViaSharedLink; protected SearchResultWithSharedLinkItem item; + /** The result type. The value is always `search_result`. */ protected String type; public SearchResultWithSharedLink() { diff --git a/src/main/java/com/box/sdkgen/schemas/sessionterminationmessage/SessionTerminationMessage.java b/src/main/java/com/box/sdkgen/schemas/sessionterminationmessage/SessionTerminationMessage.java index 9d069b236..62cf90d3a 100644 --- a/src/main/java/com/box/sdkgen/schemas/sessionterminationmessage/SessionTerminationMessage.java +++ b/src/main/java/com/box/sdkgen/schemas/sessionterminationmessage/SessionTerminationMessage.java @@ -5,9 +5,11 @@ import com.fasterxml.jackson.annotation.JsonFilter; import java.util.Objects; +/** A message informing about the termination job status. */ @JsonFilter("nullablePropertyFilter") public class SessionTerminationMessage extends SerializableObject { + /** The unique identifier for the termination job status. */ protected String message; public SessionTerminationMessage() { diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrier/ShieldInformationBarrier.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrier/ShieldInformationBarrier.java index 4f3ae991e..32fa6ea1c 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrier/ShieldInformationBarrier.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrier/ShieldInformationBarrier.java @@ -13,19 +13,24 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** A standard representation of a shield information barrier object. */ @JsonFilter("nullablePropertyFilter") public class ShieldInformationBarrier extends SerializableObject { + /** The unique identifier for the shield information barrier. */ protected String id; + /** The type of the shield information barrier. */ @JsonDeserialize( using = ShieldInformationBarrierTypeField.ShieldInformationBarrierTypeFieldDeserializer.class) @JsonSerialize( using = ShieldInformationBarrierTypeField.ShieldInformationBarrierTypeFieldSerializer.class) protected EnumWrapper type; + /** The `type` and `id` of enterprise this barrier is under. */ protected EnterpriseBase enterprise; + /** Status of the shield information barrier. */ @JsonDeserialize( using = ShieldInformationBarrierStatusField.ShieldInformationBarrierStatusFieldDeserializer.class) @@ -34,22 +39,27 @@ public class ShieldInformationBarrier extends SerializableObject { ShieldInformationBarrierStatusField.ShieldInformationBarrierStatusFieldSerializer.class) protected EnumWrapper status; + /** ISO date time string when this shield information barrier object was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** The user who created this shield information barrier. */ @JsonProperty("created_by") protected UserBase createdBy; + /** ISO date time string when this shield information barrier was updated. */ @JsonProperty("updated_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime updatedAt; + /** The user that updated this shield information barrier. */ @JsonProperty("updated_by") protected UserBase updatedBy; + /** ISO date time string when this shield information barrier was enabled. */ @JsonProperty("enabled_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierbase/ShieldInformationBarrierBase.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierbase/ShieldInformationBarrierBase.java index 2b1d4630c..c1226d9a5 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierbase/ShieldInformationBarrierBase.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierbase/ShieldInformationBarrierBase.java @@ -8,11 +8,14 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** A base representation of a shield information barrier object. */ @JsonFilter("nullablePropertyFilter") public class ShieldInformationBarrierBase extends SerializableObject { + /** The unique identifier for the shield information barrier. */ protected String id; + /** The type of the shield information barrier. */ @JsonDeserialize( using = ShieldInformationBarrierBaseTypeField.ShieldInformationBarrierBaseTypeFieldDeserializer diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreference/ShieldInformationBarrierReference.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreference/ShieldInformationBarrierReference.java index 4e1e4cfcd..eeb4b0beb 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreference/ShieldInformationBarrierReference.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreference/ShieldInformationBarrierReference.java @@ -7,6 +7,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** A shield information barrier reference for requests and responses. */ @JsonFilter("nullablePropertyFilter") public class ShieldInformationBarrierReference extends SerializableObject { diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreport/ShieldInformationBarrierReport.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreport/ShieldInformationBarrierReport.java index 14a007b29..343cd7191 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreport/ShieldInformationBarrierReport.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreport/ShieldInformationBarrierReport.java @@ -14,12 +14,14 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** A standard representation of a shield information barrier report object. */ @JsonFilter("nullablePropertyFilter") public class ShieldInformationBarrierReport extends ShieldInformationBarrierReportBase { @JsonProperty("shield_information_barrier") protected ShieldInformationBarrierReference shieldInformationBarrier; + /** Status of the shield information report. */ @JsonDeserialize( using = ShieldInformationBarrierReportStatusField @@ -32,6 +34,7 @@ public class ShieldInformationBarrierReport extends ShieldInformationBarrierRepo protected ShieldInformationBarrierReportDetails details; + /** ISO date time string when this shield information barrier report object was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @@ -40,6 +43,7 @@ public class ShieldInformationBarrierReport extends ShieldInformationBarrierRepo @JsonProperty("created_by") protected UserBase createdBy; + /** ISO date time string when this shield information barrier report was updated. */ @JsonProperty("updated_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportbase/ShieldInformationBarrierReportBase.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportbase/ShieldInformationBarrierReportBase.java index e1711bc76..cea0c3130 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportbase/ShieldInformationBarrierReportBase.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportbase/ShieldInformationBarrierReportBase.java @@ -8,11 +8,14 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** A base representation of a shield information barrier report object. */ @JsonFilter("nullablePropertyFilter") public class ShieldInformationBarrierReportBase extends SerializableObject { + /** The unique identifier for the shield information barrier report. */ protected String id; + /** The type of the shield information barrier report. */ @JsonDeserialize( using = ShieldInformationBarrierReportBaseTypeField diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportdetails/ShieldInformationBarrierReportDetails.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportdetails/ShieldInformationBarrierReportDetails.java index 7c9ae5b09..85935f8c4 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportdetails/ShieldInformationBarrierReportDetails.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportdetails/ShieldInformationBarrierReportDetails.java @@ -5,6 +5,7 @@ import com.fasterxml.jackson.annotation.JsonFilter; import java.util.Objects; +/** Indicates which folder the report file is located and any errors when generating the report. */ @JsonFilter("nullablePropertyFilter") public class ShieldInformationBarrierReportDetails extends SerializableObject { diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportdetails/ShieldInformationBarrierReportDetailsDetailsField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportdetails/ShieldInformationBarrierReportDetailsDetailsField.java index fcf3ce69f..5a320c915 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportdetails/ShieldInformationBarrierReportDetailsDetailsField.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportdetails/ShieldInformationBarrierReportDetailsDetailsField.java @@ -9,6 +9,7 @@ @JsonFilter("nullablePropertyFilter") public class ShieldInformationBarrierReportDetailsDetailsField extends SerializableObject { + /** Folder ID for locating this report. */ @JsonProperty("folder_id") protected String folderId; diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreports/ShieldInformationBarrierReports.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreports/ShieldInformationBarrierReports.java index 23f2f5d53..3174ac89a 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreports/ShieldInformationBarrierReports.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreports/ShieldInformationBarrierReports.java @@ -9,15 +9,22 @@ import java.util.List; import java.util.Objects; +/** A list of shield barrier reports. */ @JsonFilter("nullablePropertyFilter") public class ShieldInformationBarrierReports extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** A list of shield information barrier reports. */ protected List entries; public ShieldInformationBarrierReports() { diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriers/ShieldInformationBarriers.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriers/ShieldInformationBarriers.java index 6dd351013..2708429de 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriers/ShieldInformationBarriers.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriers/ShieldInformationBarriers.java @@ -9,15 +9,22 @@ import java.util.List; import java.util.Objects; +/** List of Shield Information Barrier objects. */ @JsonFilter("nullablePropertyFilter") public class ShieldInformationBarriers extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** A list of shield information barrier objects. */ protected List entries; public ShieldInformationBarriers() { diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegment/ShieldInformationBarrierSegment.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegment/ShieldInformationBarrierSegment.java index 71e6b9240..8fd9d9800 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegment/ShieldInformationBarrierSegment.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegment/ShieldInformationBarrierSegment.java @@ -13,11 +13,14 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** A shield information barrier segment object. */ @JsonFilter("nullablePropertyFilter") public class ShieldInformationBarrierSegment extends SerializableObject { + /** The unique identifier for the shield information barrier segment. */ protected String id; + /** The type of the shield information barrier segment. */ @JsonDeserialize( using = ShieldInformationBarrierSegmentTypeField @@ -31,10 +34,13 @@ public class ShieldInformationBarrierSegment extends SerializableObject { @JsonProperty("shield_information_barrier") protected ShieldInformationBarrierBase shieldInformationBarrier; + /** Name of the shield information barrier segment. */ protected String name; + /** Description of the shield information barrier segment. */ protected String description; + /** ISO date time string when this shield information barrier object was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @@ -43,6 +49,7 @@ public class ShieldInformationBarrierSegment extends SerializableObject { @JsonProperty("created_by") protected UserBase createdBy; + /** ISO date time string when this shield information barrier segment was updated. */ @JsonProperty("updated_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMember.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMember.java index 76eab7438..0713bf57b 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMember.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMember.java @@ -13,6 +13,7 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** A standard representation of a shield information barrier segment member object. */ @JsonFilter("nullablePropertyFilter") public class ShieldInformationBarrierSegmentMember extends ShieldInformationBarrierSegmentMemberMini { @@ -20,10 +21,12 @@ public class ShieldInformationBarrierSegmentMember @JsonProperty("shield_information_barrier") protected ShieldInformationBarrierBase shieldInformationBarrier; + /** The `type` and `id` of the requested shield information barrier segment. */ @JsonProperty("shield_information_barrier_segment") protected ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField shieldInformationBarrierSegment; + /** ISO date time string when this shield information barrier object was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @@ -32,6 +35,7 @@ public class ShieldInformationBarrierSegmentMember @JsonProperty("created_by") protected UserBase createdBy; + /** ISO date time string when this shield information barrier segment Member was updated. */ @JsonProperty("updated_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField.java index 711f2fbe7..e80fbbe30 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField.java @@ -12,8 +12,10 @@ public class ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField extends SerializableObject { + /** The ID reference of the requesting shield information barrier segment. */ protected String id; + /** The type of the shield information barrier segment. */ @JsonDeserialize( using = ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmemberbase/ShieldInformationBarrierSegmentMemberBase.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmemberbase/ShieldInformationBarrierSegmentMemberBase.java index c717be6a6..6c4e47804 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmemberbase/ShieldInformationBarrierSegmentMemberBase.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmemberbase/ShieldInformationBarrierSegmentMemberBase.java @@ -8,11 +8,14 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** A base representation of a shield information barrier segment member object. */ @JsonFilter("nullablePropertyFilter") public class ShieldInformationBarrierSegmentMemberBase extends SerializableObject { + /** The unique identifier for the shield information barrier segment member. */ protected String id; + /** The type of the shield information barrier segment member. */ @JsonDeserialize( using = ShieldInformationBarrierSegmentMemberBaseTypeField diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmembermini/ShieldInformationBarrierSegmentMemberMini.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmembermini/ShieldInformationBarrierSegmentMemberMini.java index 133717e19..36beb2c96 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmembermini/ShieldInformationBarrierSegmentMemberMini.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmembermini/ShieldInformationBarrierSegmentMemberMini.java @@ -7,6 +7,7 @@ import com.fasterxml.jackson.annotation.JsonFilter; import java.util.Objects; +/** A mini representation of a shield information barrier segment member object. */ @JsonFilter("nullablePropertyFilter") public class ShieldInformationBarrierSegmentMemberMini extends ShieldInformationBarrierSegmentMemberBase { diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembers.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembers.java index 198b74197..cb0a596db 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembers.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembers.java @@ -9,15 +9,22 @@ import java.util.List; import java.util.Objects; +/** List of Shield Information Barrier Member objects. */ @JsonFilter("nullablePropertyFilter") public class ShieldInformationBarrierSegmentMembers extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** A list of shield information barrier segment members. */ protected List entries; public ShieldInformationBarrierSegmentMembers() { diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestriction/ShieldInformationBarrierSegmentRestriction.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestriction/ShieldInformationBarrierSegmentRestriction.java index d7e1b382c..97c73dcf2 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestriction/ShieldInformationBarrierSegmentRestriction.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestriction/ShieldInformationBarrierSegmentRestriction.java @@ -15,6 +15,7 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** A standard representation of a segment restriction of a shield information barrier object. */ @JsonFilter("nullablePropertyFilter") public class ShieldInformationBarrierSegmentRestriction extends ShieldInformationBarrierSegmentRestrictionMini { @@ -22,6 +23,10 @@ public class ShieldInformationBarrierSegmentRestriction @JsonProperty("shield_information_barrier") protected ShieldInformationBarrierBase shieldInformationBarrier; + /** + * ISO date time string when this shield information barrier Segment Restriction object was + * created. + */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @@ -30,6 +35,7 @@ public class ShieldInformationBarrierSegmentRestriction @JsonProperty("created_by") protected UserBase createdBy; + /** ISO date time string when this shield information barrier segment Restriction was updated. */ @JsonProperty("updated_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionbase/ShieldInformationBarrierSegmentRestrictionBase.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionbase/ShieldInformationBarrierSegmentRestrictionBase.java index 1e7de31b0..f44a847e4 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionbase/ShieldInformationBarrierSegmentRestrictionBase.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionbase/ShieldInformationBarrierSegmentRestrictionBase.java @@ -8,9 +8,11 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** A base representation of a segment restriction object for the shield information barrier. */ @JsonFilter("nullablePropertyFilter") public class ShieldInformationBarrierSegmentRestrictionBase extends SerializableObject { + /** Shield information barrier segment restriction. */ @JsonDeserialize( using = ShieldInformationBarrierSegmentRestrictionBaseTypeField @@ -21,6 +23,7 @@ public class ShieldInformationBarrierSegmentRestrictionBase extends Serializable .ShieldInformationBarrierSegmentRestrictionBaseTypeFieldSerializer.class) protected EnumWrapper type; + /** The unique identifier for the shield information barrier segment restriction. */ protected String id; public ShieldInformationBarrierSegmentRestrictionBase() { diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMini.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMini.java index 6da765944..58249ab9a 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMini.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMini.java @@ -7,14 +7,17 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** A mini representation of a segment restriction object for the shield information barrier. */ @JsonFilter("nullablePropertyFilter") public class ShieldInformationBarrierSegmentRestrictionMini extends ShieldInformationBarrierSegmentRestrictionBase { + /** The `type` and `id` of the requested shield information barrier segment. */ @JsonProperty("shield_information_barrier_segment") protected final ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField shieldInformationBarrierSegment; + /** The `type` and `id` of the restricted shield information barrier segment. */ @JsonProperty("restricted_segment") protected final ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField restrictedSegment; diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField.java index 53bd94487..a95f66bb6 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField.java @@ -12,8 +12,10 @@ public class ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentField extends SerializableObject { + /** The ID reference of the restricted shield information barrier segment. */ protected String id; + /** The type of the shield information segment. */ @JsonDeserialize( using = ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentTypeField diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField.java index cb9a29a62..57581ea01 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField.java @@ -12,8 +12,10 @@ public class ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField extends SerializableObject { + /** The ID reference of the requesting shield information barrier segment. */ protected String id; + /** The type of the shield information barrier segment. */ @JsonDeserialize( using = ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictions.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictions.java index 154b87034..a58b1aa4a 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictions.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictions.java @@ -9,15 +9,22 @@ import java.util.List; import java.util.Objects; +/** List of shield information barrier segment restriction objects. */ @JsonFilter("nullablePropertyFilter") public class ShieldInformationBarrierSegmentRestrictions extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** A list of shield information barrier segment restriction objects. */ protected List entries; public ShieldInformationBarrierSegmentRestrictions() { diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegments/ShieldInformationBarrierSegments.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegments/ShieldInformationBarrierSegments.java index a71ed4e41..c366985ec 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegments/ShieldInformationBarrierSegments.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegments/ShieldInformationBarrierSegments.java @@ -9,15 +9,22 @@ import java.util.List; import java.util.Objects; +/** List of Shield Information Barrier Segment objects. */ @JsonFilter("nullablePropertyFilter") public class ShieldInformationBarrierSegments extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** A list of shield information barrier segments. */ protected List entries; public ShieldInformationBarrierSegments() { diff --git a/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequest.java b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequest.java index 7dd3e4175..adfa2bd34 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequest.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequest.java @@ -17,24 +17,38 @@ import java.util.List; import java.util.Objects; +/** A Box Sign request object. */ @JsonFilter("nullablePropertyFilter") public class SignRequest extends SignRequestBase { + /** The value will always be `sign-request`. */ @JsonDeserialize(using = SignRequestTypeField.SignRequestTypeFieldDeserializer.class) @JsonSerialize(using = SignRequestTypeField.SignRequestTypeFieldSerializer.class) protected EnumWrapper type; + /** + * List of files to create a signing document from. This is currently limited to ten files. Only + * the ID and type fields are required for each file. + */ @JsonProperty("source_files") protected List sourceFiles; + /** Array of signers for the signature request. */ protected List signers; + /** Force a specific color for the signature (blue, black, or red). */ @JsonProperty("signature_color") @Nullable protected String signatureColor; + /** Box Sign request ID. */ protected String id; + /** + * This URL is returned if `is_document_preparation_needed` is set to `true` in the request. The + * parameter is used to prepare the signature request using the UI. The signature request is not + * sent until the preparation phase is complete. + */ @JsonProperty("prepare_url") @Nullable protected String prepareUrl; @@ -42,13 +56,23 @@ public class SignRequest extends SignRequestBase { @JsonProperty("signing_log") protected FileMini signingLog; + /** Describes the status of the signature request. */ @JsonDeserialize(using = SignRequestStatusField.SignRequestStatusFieldDeserializer.class) @JsonSerialize(using = SignRequestStatusField.SignRequestStatusFieldSerializer.class) protected EnumWrapper status; + /** + * List of files that will be signed, which are copies of the original source files. A new version + * of these files are created as signers sign and can be downloaded at any point in the signing + * process. + */ @JsonProperty("sign_files") protected SignRequestSignFilesField signFiles; + /** + * Uses `days_valid` to calculate the date and time, in GMT, the sign request will expire if + * unsigned. + */ @JsonProperty("auto_expire_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @@ -58,14 +82,20 @@ public class SignRequest extends SignRequestBase { @JsonProperty("parent_folder") protected FolderMini parentFolder; + /** + * The collaborator level of the user to the sign request. Values can include "owner", "editor", + * and "viewer". + */ @JsonProperty("collaborator_level") @Nullable protected String collaboratorLevel; + /** The email address of the sender of the sign request. */ @JsonProperty("sender_email") @Nullable protected String senderEmail; + /** The user ID of the sender of the sign request. */ @JsonProperty("sender_id") @Nullable protected Long senderId; diff --git a/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestSignFilesField.java b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestSignFilesField.java index 9b8012173..1199d9865 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestSignFilesField.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestSignFilesField.java @@ -13,6 +13,11 @@ public class SignRequestSignFilesField extends SerializableObject { protected List files; + /** + * Indicates whether the `sign_files` documents are processing and the PDFs may be out of date. A + * change to any document requires processing on all `sign_files`. We recommended waiting until + * processing is finished (and this value is true) before downloading the PDFs. + */ @JsonProperty("is_ready_for_download") protected Boolean isReadyForDownload; diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestbase/SignRequestBase.java b/src/main/java/com/box/sdkgen/schemas/signrequestbase/SignRequestBase.java index d5803f8f1..6c20c6c8b 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestbase/SignRequestBase.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestbase/SignRequestBase.java @@ -9,51 +9,100 @@ import java.util.List; import java.util.Objects; +/** A standard representation of a signature request object. */ @JsonFilter("nullablePropertyFilter") public class SignRequestBase extends SerializableObject { + /** + * Indicates if the sender should receive a `prepare_url` in the response to complete document + * preparation using the UI. + */ @JsonProperty("is_document_preparation_needed") protected Boolean isDocumentPreparationNeeded; + /** + * When specified, the signature request will be redirected to this url when a document is signed. + */ @JsonProperty("redirect_url") @Nullable protected String redirectUrl; + /** The uri that a signer will be redirected to after declining to sign a document. */ @JsonProperty("declined_redirect_url") @Nullable protected String declinedRedirectUrl; + /** Disables the usage of signatures generated by typing (text). */ @JsonProperty("are_text_signatures_enabled") protected Boolean areTextSignaturesEnabled; + /** + * Subject of sign request email. This is cleaned by sign request. If this field is not passed, a + * default subject will be used. + */ @JsonProperty("email_subject") @Nullable protected String emailSubject; + /** + * Message to include in sign request email. The field is cleaned through sanitization of specific + * characters. However, some html tags are allowed. Links included in the message are also + * converted to hyperlinks in the email. The message may contain the following html tags including + * `a`, `abbr`, `acronym`, `b`, `blockquote`, `code`, `em`, `i`, `ul`, `li`, `ol`, and `strong`. + * Be aware that when the text to html ratio is too high, the email may end up in spam filters. + * Custom styles on these tags are not allowed. If this field is not passed, a default message + * will be used. + */ @JsonProperty("email_message") @Nullable protected String emailMessage; + /** + * Reminds signers to sign a document on day 3, 8, 13 and 18. Reminders are only sent to + * outstanding signers. + */ @JsonProperty("are_reminders_enabled") protected Boolean areRemindersEnabled; + /** Name of the signature request. */ protected String name; + /** + * When a document contains sign-related tags in the content, you can prefill them using this + * `prefill_tags` by referencing the 'id' of the tag as the `external_id` field of the prefill + * tag. + */ @JsonProperty("prefill_tags") protected List prefillTags; + /** + * Set the number of days after which the created signature request will automatically expire if + * not completed. By default, we do not apply any expiration date on signature requests, and the + * signature request does not expire. + */ @JsonProperty("days_valid") @Nullable protected Long daysValid; + /** + * This can be used to reference an ID in an external system that the sign request is related to. + */ @JsonProperty("external_id") @Nullable protected String externalId; + /** + * When a signature request is created from a template this field will indicate the id of that + * template. + */ @JsonProperty("template_id") @Nullable protected String templateId; + /** + * Used as an optional system name to appear in the signature log next to the signers who have + * been assigned the `embed_url_external_id`. + */ @JsonProperty("external_system_name") @Nullable protected String externalSystemName; diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestcreaterequest/SignRequestCreateRequest.java b/src/main/java/com/box/sdkgen/schemas/signrequestcreaterequest/SignRequestCreateRequest.java index 16ae0b23a..76d4e758e 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestcreaterequest/SignRequestCreateRequest.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestcreaterequest/SignRequestCreateRequest.java @@ -14,13 +14,19 @@ import java.util.List; import java.util.Objects; +/** Creates a Box Sign request object. */ @JsonFilter("nullablePropertyFilter") public class SignRequestCreateRequest extends SignRequestBase { + /** + * List of files to create a signing document from. This is currently limited to ten files. Only + * the ID and type fields are required for each file. + */ @JsonProperty("source_files") @Nullable protected List sourceFiles; + /** Force a specific color for the signature (blue, black, or red). */ @JsonDeserialize( using = SignRequestCreateRequestSignatureColorField @@ -33,6 +39,18 @@ public class SignRequestCreateRequest extends SignRequestBase { @Nullable protected EnumWrapper signatureColor; + /** + * Array of signers for the signature request. 35 is the max number of signers permitted. + * + *

    **Note**: It may happen that some signers belong to conflicting + * [segments](r://shield-information-barrier-segment-member) (user groups). This means that due to + * the security policies, users are assigned to segments to prevent exchanges or communication + * that could lead to ethical conflicts. In such a case, an attempt to send the sign request will + * result in an error. + * + *

    Read more about [segments and ethical + * walls](https://support.box.com/hc/en-us/articles/9920431507603-Understanding-Information-Barriers#h_01GFVJEHQA06N7XEZ4GCZ9GFAQ). + */ protected final List signers; @JsonProperty("parent_folder") diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestcreatesigner/SignRequestCreateSigner.java b/src/main/java/com/box/sdkgen/schemas/signrequestcreatesigner/SignRequestCreateSigner.java index 6dccc19d9..5c1a26f85 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestcreatesigner/SignRequestCreateSigner.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestcreatesigner/SignRequestCreateSigner.java @@ -10,48 +10,100 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** The schema for a Signer object used in for creating a Box Sign request object. */ @JsonFilter("nullablePropertyFilter") public class SignRequestCreateSigner extends SerializableObject { + /** + * Email address of the signer. The email address of the signer is required when making signature + * requests, except when using templates that are configured to include emails. + */ @Nullable protected String email; + /** + * Defines the role of the signer in the signature request. A `signer` must sign the document and + * an `approver` must approve the document. A `final_copy_reader` only receives the final signed + * document and signing log. + */ @JsonDeserialize( using = SignRequestCreateSignerRoleField.SignRequestCreateSignerRoleFieldDeserializer.class) @JsonSerialize( using = SignRequestCreateSignerRoleField.SignRequestCreateSignerRoleFieldSerializer.class) protected EnumWrapper role; + /** + * Used in combination with an embed URL for a sender. After the sender signs, they are redirected + * to the next `in_person` signer. + */ @JsonProperty("is_in_person") protected Boolean isInPerson; + /** Order of the signer. */ protected Long order; + /** + * User ID for the signer in an external application responsible for authentication when accessing + * the embed URL. + */ @JsonProperty("embed_url_external_user_id") @Nullable protected String embedUrlExternalUserId; + /** + * The URL that a signer will be redirected to after signing a document. Defining this URL + * overrides default or global redirect URL settings for a specific signer. If no declined + * redirect URL is specified, this URL will be used for decline actions as well. + */ @JsonProperty("redirect_url") @Nullable protected String redirectUrl; + /** + * The URL that a signer will be redirect to after declining to sign a document. Defining this URL + * overrides default or global declined redirect URL settings for a specific signer. + */ @JsonProperty("declined_redirect_url") @Nullable protected String declinedRedirectUrl; + /** + * If set to true, the signer will need to log in to a Box account before signing the request. If + * the signer does not have an existing account, they will have the option to create a free Box + * account. + */ @JsonProperty("login_required") @Nullable protected Boolean loginRequired; + /** + * If set, this phone number will be used to verify the signer via two-factor authentication + * before they are able to sign the document. Cannot be selected in combination with + * `login_required`. + */ @JsonProperty("verification_phone_number") @Nullable protected String verificationPhoneNumber; + /** + * If set, the signer is required to enter the password before they are able to sign a document. + * This field is write only. + */ @Nullable protected String password; + /** + * If set, signers who have the same value will be assigned to the same input and to the same + * signer group. A signer group is not a Box Group. It is an entity that belongs to a Sign Request + * and can only be used/accessed within this Sign Request. A signer group is expected to have more + * than one signer. If the provided value is only used for one signer, this value will be ignored + * and request will be handled as it was intended for an individual signer. The value provided can + * be any string and only used to determine which signers belongs to same group. A successful + * response will provide a generated UUID value instead for signers in the same signer group. + */ @JsonProperty("signer_group_id") @Nullable protected String signerGroupId; + /** If true, no emails about the sign request will be sent. */ @JsonProperty("suppress_notifications") @Nullable protected Boolean suppressNotifications; diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestprefilltag/SignRequestPrefillTag.java b/src/main/java/com/box/sdkgen/schemas/signrequestprefilltag/SignRequestPrefillTag.java index 7869a37af..98b0f21bb 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestprefilltag/SignRequestPrefillTag.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestprefilltag/SignRequestPrefillTag.java @@ -11,21 +11,29 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** + * Prefill tags are used to prefill placeholders with signer input data. Only one value field can be + * included. + */ @JsonFilter("nullablePropertyFilter") public class SignRequestPrefillTag extends SerializableObject { + /** This references the ID of a specific tag contained in a file of the signature request. */ @JsonProperty("document_tag_id") @Nullable protected String documentTagId; + /** Text prefill value. */ @JsonProperty("text_value") @Nullable protected String textValue; + /** Checkbox prefill value. */ @JsonProperty("checkbox_value") @Nullable protected Boolean checkboxValue; + /** Date prefill value. */ @JsonProperty("date_value") @JsonSerialize(using = DateUtils.DateSerializer.class) @JsonDeserialize(using = DateUtils.DateDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/signrequests/SignRequests.java b/src/main/java/com/box/sdkgen/schemas/signrequests/SignRequests.java index 5172097a1..43bd06758 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequests/SignRequests.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequests/SignRequests.java @@ -9,15 +9,25 @@ import java.util.List; import java.util.Objects; +/** + * A standard representation of a signature request, as returned from any Box Sign API endpoints by + * default. + */ @JsonFilter("nullablePropertyFilter") public class SignRequests extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** A list of Box Sign requests. */ protected List entries; public SignRequests() { diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSigner.java b/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSigner.java index 368ce7a43..368ba86bf 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSigner.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSigner.java @@ -10,22 +10,31 @@ import java.util.List; import java.util.Objects; +/** The schema for a Signer object used on the body of a Box Sign request object. */ @JsonFilter("nullablePropertyFilter") public class SignRequestSigner extends SignRequestCreateSigner { + /** Set to `true` if the signer views the document. */ @JsonProperty("has_viewed_document") protected Boolean hasViewedDocument; + /** Final decision made by the signer. */ @JsonProperty("signer_decision") @Nullable protected SignRequestSignerSignerDecisionField signerDecision; protected List inputs; + /** URL to direct a signer to for signing. */ @JsonProperty("embed_url") @Nullable protected String embedUrl; + /** + * This URL is specifically designed for signing documents within an HTML `iframe` tag. It will be + * returned in the response only if the `embed_url_external_user_id` parameter was passed in the + * `create Box Sign request` call. + */ @JsonProperty("iframeable_embed_url") @Nullable protected String iframeableEmbedUrl; diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSignerSignerDecisionField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSignerSignerDecisionField.java index 6aa9fd1ba..2df1fc6b3 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSignerSignerDecisionField.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSignerSignerDecisionField.java @@ -15,6 +15,7 @@ @JsonFilter("nullablePropertyFilter") public class SignRequestSignerSignerDecisionField extends SerializableObject { + /** Type of decision made by the signer. */ @JsonDeserialize( using = SignRequestSignerSignerDecisionTypeField @@ -25,11 +26,13 @@ public class SignRequestSignerSignerDecisionField extends SerializableObject { .SignRequestSignerSignerDecisionTypeFieldSerializer.class) protected EnumWrapper type; + /** Date and Time that the decision was made. */ @JsonProperty("finalized_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime finalizedAt; + /** Additional info about the decision, such as the decline reason from the signer. */ @JsonProperty("additional_info") @Nullable protected String additionalInfo; diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInput.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInput.java index 6e3c979bf..88910bc27 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInput.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInput.java @@ -9,15 +9,18 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** Input created by a Signer on a Sign Request. */ @JsonFilter("nullablePropertyFilter") public class SignRequestSignerInput extends SignRequestPrefillTag { + /** Type of input. */ @JsonDeserialize( using = SignRequestSignerInputTypeField.SignRequestSignerInputTypeFieldDeserializer.class) @JsonSerialize( using = SignRequestSignerInputTypeField.SignRequestSignerInputTypeFieldSerializer.class) protected EnumWrapper type; + /** Content type of input. */ @JsonDeserialize( using = SignRequestSignerInputContentTypeField.SignRequestSignerInputContentTypeFieldDeserializer @@ -29,9 +32,11 @@ public class SignRequestSignerInput extends SignRequestPrefillTag { @JsonProperty("content_type") protected EnumWrapper contentType; + /** Index of page that the input is on. */ @JsonProperty("page_index") protected final long pageIndex; + /** Whether this input was defined as read-only(immutable by signers) or not. */ @JsonProperty("read_only") protected Boolean readOnly; diff --git a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplate.java b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplate.java index 84c792082..436fad92f 100644 --- a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplate.java +++ b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplate.java @@ -14,25 +14,47 @@ import java.util.List; import java.util.Objects; +/** A Box Sign template object. */ @JsonFilter("nullablePropertyFilter") public class SignTemplate extends SerializableObject { + /** The value will always be `sign-template`. */ @JsonDeserialize(using = SignTemplateTypeField.SignTemplateTypeFieldDeserializer.class) @JsonSerialize(using = SignTemplateTypeField.SignTemplateTypeFieldSerializer.class) protected EnumWrapper type; + /** Template identifier. */ protected String id; + /** The name of the template. */ @Nullable protected String name; + /** + * Subject of signature request email. This is cleaned by sign request. If this field is not + * passed, a default subject will be used. + */ @JsonProperty("email_subject") @Nullable protected String emailSubject; + /** + * Message to include in signature request email. The field is cleaned through sanitization of + * specific characters. However, some html tags are allowed. Links included in the message are + * also converted to hyperlinks in the email. The message may contain the following html tags + * including `a`, `abbr`, `acronym`, `b`, `blockquote`, `code`, `em`, `i`, `ul`, `li`, `ol`, and + * `strong`. Be aware that when the text to html ratio is too high, the email may end up in spam + * filters. Custom styles on these tags are not allowed. If this field is not passed, a default + * message will be used. + */ @JsonProperty("email_message") @Nullable protected String emailMessage; + /** + * Set the number of days after which the created signature request will automatically expire if + * not completed. By default, we do not apply any expiration date on signature requests, and the + * signature request does not expire. + */ @JsonProperty("days_valid") @Nullable protected Long daysValid; @@ -40,33 +62,69 @@ public class SignTemplate extends SerializableObject { @JsonProperty("parent_folder") protected FolderMini parentFolder; + /** + * List of files to create a signing document from. Only the ID and type fields are required for + * each file. + */ @JsonProperty("source_files") protected List sourceFiles; + /** Indicates if the template input fields are editable or not. */ @JsonProperty("are_fields_locked") protected Boolean areFieldsLocked; + /** + * Indicates if the template document options are editable or not, for example renaming the + * document. + */ @JsonProperty("are_options_locked") protected Boolean areOptionsLocked; + /** Indicates if the template signers are editable or not. */ @JsonProperty("are_recipients_locked") protected Boolean areRecipientsLocked; + /** Indicates if the template email settings are editable or not. */ @JsonProperty("are_email_settings_locked") protected Boolean areEmailSettingsLocked; + /** + * Indicates if the template files are editable or not. This includes deleting or renaming + * template files. + */ @JsonProperty("are_files_locked") protected Boolean areFilesLocked; + /** + * Array of signers for the template. + * + *

    **Note**: It may happen that some signers specified in the template belong to conflicting + * [segments](r://shield-information-barrier-segment-member) (user groups). This means that due to + * the security policies, users are assigned to segments to prevent exchanges or communication + * that could lead to ethical conflicts. In such a case, an attempt to send a sign request based + * on a template that lists signers in conflicting segments will result in an error. + * + *

    Read more about [segments and ethical + * walls](https://support.box.com/hc/en-us/articles/9920431507603-Understanding-Information-Barriers#h_01GFVJEHQA06N7XEZ4GCZ9GFAQ). + */ protected List signers; + /** Additional information on which fields are required and which fields are not editable. */ @JsonProperty("additional_info") protected SignTemplateAdditionalInfoField additionalInfo; + /** + * Box's ready-sign link feature enables you to create a link to a signature request that you've + * created from a template. Use this link when you want to post a signature request on a public + * form — such as an email, social media post, or web page — without knowing who the signers will + * be. Note: The ready-sign link feature is limited to Enterprise Plus customers and not available + * to Box Verified Enterprises. + */ @JsonProperty("ready_sign_link") @Nullable protected SignTemplateReadySignLinkField readySignLink; + /** Custom branding applied to notifications and signature requests. */ @JsonProperty("custom_branding") @Nullable protected SignTemplateCustomBrandingField customBranding; diff --git a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoField.java b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoField.java index 0fd472972..c4cd19307 100644 --- a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoField.java +++ b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoField.java @@ -23,11 +23,13 @@ @JsonFilter("nullablePropertyFilter") public class SignTemplateAdditionalInfoField extends SerializableObject { + /** Non editable fields. */ @JsonDeserialize(using = NonEditableDeserializer.class) @JsonSerialize(using = NonEditableSerializer.class) @JsonProperty("non_editable") protected List> nonEditable; + /** Required fields. */ protected SignTemplateAdditionalInfoRequiredField required; public SignTemplateAdditionalInfoField() { diff --git a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoRequiredField.java b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoRequiredField.java index 20ca7912e..fda53609b 100644 --- a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoRequiredField.java +++ b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoRequiredField.java @@ -22,6 +22,7 @@ @JsonFilter("nullablePropertyFilter") public class SignTemplateAdditionalInfoRequiredField extends SerializableObject { + /** Required signer fields. */ @JsonDeserialize(using = SignersDeserializer.class) @JsonSerialize(using = SignersSerializer.class) protected List>> signers; diff --git a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateCustomBrandingField.java b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateCustomBrandingField.java index 86f0e25a0..38fe70bb8 100644 --- a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateCustomBrandingField.java +++ b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateCustomBrandingField.java @@ -10,18 +10,22 @@ @JsonFilter("nullablePropertyFilter") public class SignTemplateCustomBrandingField extends SerializableObject { + /** Name of the company. */ @JsonProperty("company_name") @Nullable protected String companyName; + /** Custom branding logo URI in the form of a base64 image. */ @JsonProperty("logo_uri") @Nullable protected String logoUri; + /** Custom branding color in hex. */ @JsonProperty("branding_color") @Nullable protected String brandingColor; + /** Content of the email footer. */ @JsonProperty("email_footer_text") @Nullable protected String emailFooterText; diff --git a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateReadySignLinkField.java b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateReadySignLinkField.java index aa9910036..5027de5e4 100644 --- a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateReadySignLinkField.java +++ b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateReadySignLinkField.java @@ -10,19 +10,28 @@ @JsonFilter("nullablePropertyFilter") public class SignTemplateReadySignLinkField extends SerializableObject { + /** The URL that can be sent to signers. */ protected String url; + /** Request name. */ @Nullable protected String name; + /** Extra instructions for all signers. */ @Nullable protected String instructions; + /** + * The destination folder to place final, signed document and signing log. Only `ID` and `type` + * fields are required. The root folder, folder ID `0`, cannot be used. + */ @JsonProperty("folder_id") @Nullable protected String folderId; + /** Whether to disable notifications when a signer has signed. */ @JsonProperty("is_notification_disabled") protected Boolean isNotificationDisabled; + /** Whether the ready sign link is enabled or not. */ @JsonProperty("is_active") protected Boolean isActive; diff --git a/src/main/java/com/box/sdkgen/schemas/signtemplates/SignTemplates.java b/src/main/java/com/box/sdkgen/schemas/signtemplates/SignTemplates.java index 3fcf217c6..ae52ceb23 100644 --- a/src/main/java/com/box/sdkgen/schemas/signtemplates/SignTemplates.java +++ b/src/main/java/com/box/sdkgen/schemas/signtemplates/SignTemplates.java @@ -9,19 +9,27 @@ import java.util.List; import java.util.Objects; +/** A list of templates, as returned from any Box Sign API endpoints by default. */ @JsonFilter("nullablePropertyFilter") public class SignTemplates extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** The marker for the start of the previous page of results. */ @JsonProperty("prev_marker") @Nullable protected String prevMarker; + /** A list of templates. */ protected List entries; public SignTemplates() { diff --git a/src/main/java/com/box/sdkgen/schemas/skillcardsmetadata/SkillCardsMetadata.java b/src/main/java/com/box/sdkgen/schemas/skillcardsmetadata/SkillCardsMetadata.java index d599e8cbd..dd979047a 100644 --- a/src/main/java/com/box/sdkgen/schemas/skillcardsmetadata/SkillCardsMetadata.java +++ b/src/main/java/com/box/sdkgen/schemas/skillcardsmetadata/SkillCardsMetadata.java @@ -8,33 +8,52 @@ import java.util.List; import java.util.Objects; +/** The metadata assigned to a using for Box skills. */ @JsonFilter("nullablePropertyFilter") public class SkillCardsMetadata extends SerializableObject { + /** Whether the user can edit this metadata. */ @JsonProperty("$canEdit") protected Boolean canEdit; + /** A UUID to identify the metadata object. */ @JsonProperty("$id") protected String id; + /** An ID for the parent folder. */ @JsonProperty("$parent") protected String parent; + /** An ID for the scope in which this template has been applied. */ @JsonProperty("$scope") protected String scope; + /** The name of the template. */ @JsonProperty("$template") protected String template; + /** + * A unique identifier for the "type" of this instance. This is an internal system property and + * should not be used by a client application. + */ @JsonProperty("$type") protected String type; + /** + * The last-known version of the template of the object. This is an internal system property and + * should not be used by a client application. + */ @JsonProperty("$typeVersion") protected Long typeVersion; + /** + * The version of the metadata object. Starts at 0 and increases every time a user-defined + * property is modified. + */ @JsonProperty("$version") protected Long version; + /** A list of Box Skill cards that have been applied to this file. */ protected List cards; public SkillCardsMetadata() { diff --git a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCard.java b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCard.java index 92aa6972b..4c6fcfcd2 100644 --- a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCard.java +++ b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCard.java @@ -11,18 +11,22 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** A Box Skill metadata card that puts a status message in the metadata sidebar. */ @JsonFilter("nullablePropertyFilter") public class StatusSkillCard extends SerializableObject { + /** The optional date and time this card was created at. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** The value will always be `skill_card`. */ @JsonDeserialize(using = StatusSkillCardTypeField.StatusSkillCardTypeFieldDeserializer.class) @JsonSerialize(using = StatusSkillCardTypeField.StatusSkillCardTypeFieldSerializer.class) protected EnumWrapper type; + /** The value will always be `status`. */ @JsonDeserialize( using = StatusSkillCardSkillCardTypeField.StatusSkillCardSkillCardTypeFieldDeserializer.class) @JsonSerialize( @@ -30,13 +34,22 @@ public class StatusSkillCard extends SerializableObject { @JsonProperty("skill_card_type") protected EnumWrapper skillCardType; + /** The title of the card. */ @JsonProperty("skill_card_title") protected StatusSkillCardSkillCardTitleField skillCardTitle; + /** + * Sets the status of the skill. This can be used to show a message to the user while the Skill is + * processing the data, or if it was not able to process the file. + */ protected final StatusSkillCardStatusField status; + /** The service that applied this metadata. */ protected final StatusSkillCardSkillField skill; + /** + * The invocation of this service, used to track which instance of a service applied the metadata. + */ protected final StatusSkillCardInvocationField invocation; public StatusSkillCard( diff --git a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardInvocationField.java b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardInvocationField.java index dd12ecc1b..dc44480f8 100644 --- a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardInvocationField.java +++ b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardInvocationField.java @@ -12,6 +12,7 @@ @JsonFilter("nullablePropertyFilter") public class StatusSkillCardInvocationField extends SerializableObject { + /** The value will always be `skill_invocation`. */ @JsonDeserialize( using = StatusSkillCardInvocationTypeField.StatusSkillCardInvocationTypeFieldDeserializer.class) @@ -19,6 +20,11 @@ public class StatusSkillCardInvocationField extends SerializableObject { using = StatusSkillCardInvocationTypeField.StatusSkillCardInvocationTypeFieldSerializer.class) protected EnumWrapper type; + /** + * A custom identifier that represent the instance of the service that applied this metadata. For + * example, if your `image-recognition-service` runs on multiple nodes, this field can be used to + * identify the ID of the node that was used to apply the metadata. + */ protected final String id; public StatusSkillCardInvocationField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillCardTitleField.java b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillCardTitleField.java index 8189636a0..50e4c047a 100644 --- a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillCardTitleField.java +++ b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillCardTitleField.java @@ -9,8 +9,10 @@ @JsonFilter("nullablePropertyFilter") public class StatusSkillCardSkillCardTitleField extends SerializableObject { + /** An optional identifier for the title. */ protected String code; + /** The actual title to show in the UI. */ protected final String message; public StatusSkillCardSkillCardTitleField(@JsonProperty("message") String message) { diff --git a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillField.java b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillField.java index 4e92ed873..925b9757a 100644 --- a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillField.java +++ b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillField.java @@ -12,12 +12,14 @@ @JsonFilter("nullablePropertyFilter") public class StatusSkillCardSkillField extends SerializableObject { + /** The value will always be `service`. */ @JsonDeserialize( using = StatusSkillCardSkillTypeField.StatusSkillCardSkillTypeFieldDeserializer.class) @JsonSerialize( using = StatusSkillCardSkillTypeField.StatusSkillCardSkillTypeFieldSerializer.class) protected EnumWrapper type; + /** A custom identifier that represent the service that applied this metadata. */ protected final String id; public StatusSkillCardSkillField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardStatusField.java b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardStatusField.java index 792fa248f..f556f222f 100644 --- a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardStatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardStatusField.java @@ -12,12 +12,20 @@ @JsonFilter("nullablePropertyFilter") public class StatusSkillCardStatusField extends SerializableObject { + /** + * A code for the status of this Skill invocation. By default each of these will have their own + * accompanied messages. These can be adjusted by setting the `message` value on this object. + */ @JsonDeserialize( using = StatusSkillCardStatusCodeField.StatusSkillCardStatusCodeFieldDeserializer.class) @JsonSerialize( using = StatusSkillCardStatusCodeField.StatusSkillCardStatusCodeFieldSerializer.class) protected final EnumWrapper code; + /** + * A custom message that can be provided with this status. This will be shown in the web app to + * the end user. + */ protected String message; public StatusSkillCardStatusField(StatusSkillCardStatusCodeField code) { diff --git a/src/main/java/com/box/sdkgen/schemas/storagepolicies/StoragePolicies.java b/src/main/java/com/box/sdkgen/schemas/storagepolicies/StoragePolicies.java index 02ad6cc44..d2b39f018 100644 --- a/src/main/java/com/box/sdkgen/schemas/storagepolicies/StoragePolicies.java +++ b/src/main/java/com/box/sdkgen/schemas/storagepolicies/StoragePolicies.java @@ -9,19 +9,27 @@ import java.util.List; import java.util.Objects; +/** A list of storage policies. */ @JsonFilter("nullablePropertyFilter") public class StoragePolicies extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** The marker for the start of the previous page of results. */ @JsonProperty("prev_marker") @Nullable protected String prevMarker; + /** A list of storage policies. */ protected List entries; public StoragePolicies() { diff --git a/src/main/java/com/box/sdkgen/schemas/storagepolicy/StoragePolicy.java b/src/main/java/com/box/sdkgen/schemas/storagepolicy/StoragePolicy.java index 0be682fb9..e4cb6c547 100644 --- a/src/main/java/com/box/sdkgen/schemas/storagepolicy/StoragePolicy.java +++ b/src/main/java/com/box/sdkgen/schemas/storagepolicy/StoragePolicy.java @@ -7,9 +7,11 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** The Storage Policy object describes the storage zone. */ @JsonFilter("nullablePropertyFilter") public class StoragePolicy extends StoragePolicyMini { + /** A descriptive name of the region. */ protected String name; public StoragePolicy(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignment.java b/src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignment.java index 75f24c87a..9990892f6 100644 --- a/src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignment.java +++ b/src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignment.java @@ -10,11 +10,14 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** The assignment of a storage policy to a user or enterprise. */ @JsonFilter("nullablePropertyFilter") public class StoragePolicyAssignment extends SerializableObject { + /** The unique identifier for a storage policy assignment. */ protected final String id; + /** The value will always be `storage_policy_assignment`. */ @JsonDeserialize( using = StoragePolicyAssignmentTypeField.StoragePolicyAssignmentTypeFieldDeserializer.class) @JsonSerialize( diff --git a/src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignmentAssignedToField.java b/src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignmentAssignedToField.java index b838861c5..fb5f1255c 100644 --- a/src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignmentAssignedToField.java +++ b/src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignmentAssignedToField.java @@ -8,8 +8,10 @@ @JsonFilter("nullablePropertyFilter") public class StoragePolicyAssignmentAssignedToField extends SerializableObject { + /** The unique identifier for this object. */ protected String id; + /** The type for this object. */ protected String type; public StoragePolicyAssignmentAssignedToField() { diff --git a/src/main/java/com/box/sdkgen/schemas/storagepolicyassignments/StoragePolicyAssignments.java b/src/main/java/com/box/sdkgen/schemas/storagepolicyassignments/StoragePolicyAssignments.java index 9b7118a1d..623124109 100644 --- a/src/main/java/com/box/sdkgen/schemas/storagepolicyassignments/StoragePolicyAssignments.java +++ b/src/main/java/com/box/sdkgen/schemas/storagepolicyassignments/StoragePolicyAssignments.java @@ -9,19 +9,27 @@ import java.util.List; import java.util.Objects; +/** A list of storage policy assignments. */ @JsonFilter("nullablePropertyFilter") public class StoragePolicyAssignments extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** The marker for the start of the previous page of results. */ @JsonProperty("prev_marker") @Nullable protected String prevMarker; + /** A list of storage policy assignments. */ protected List entries; public StoragePolicyAssignments() { diff --git a/src/main/java/com/box/sdkgen/schemas/storagepolicymini/StoragePolicyMini.java b/src/main/java/com/box/sdkgen/schemas/storagepolicymini/StoragePolicyMini.java index 85f314570..e27aac82a 100644 --- a/src/main/java/com/box/sdkgen/schemas/storagepolicymini/StoragePolicyMini.java +++ b/src/main/java/com/box/sdkgen/schemas/storagepolicymini/StoragePolicyMini.java @@ -9,11 +9,14 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** A mini description of a Storage Policy object. */ @JsonFilter("nullablePropertyFilter") public class StoragePolicyMini extends SerializableObject { + /** The unique identifier for this storage policy. */ protected final String id; + /** The value will always be `storage_policy`. */ @JsonDeserialize(using = StoragePolicyMiniTypeField.StoragePolicyMiniTypeFieldDeserializer.class) @JsonSerialize(using = StoragePolicyMiniTypeField.StoragePolicyMiniTypeFieldSerializer.class) protected EnumWrapper type; diff --git a/src/main/java/com/box/sdkgen/schemas/task/Task.java b/src/main/java/com/box/sdkgen/schemas/task/Task.java index 10de76dbf..49fb591f9 100644 --- a/src/main/java/com/box/sdkgen/schemas/task/Task.java +++ b/src/main/java/com/box/sdkgen/schemas/task/Task.java @@ -14,42 +14,60 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** + * A task allows for file-centric workflows within Box. Users can create tasks on files and assign + * them to other users for them to complete the tasks. + */ @JsonFilter("nullablePropertyFilter") public class Task extends SerializableObject { + /** The unique identifier for this task. */ protected String id; + /** The value will always be `task`. */ @JsonDeserialize(using = TaskTypeField.TaskTypeFieldDeserializer.class) @JsonSerialize(using = TaskTypeField.TaskTypeFieldSerializer.class) protected EnumWrapper type; protected FileMini item; + /** When the task is due. */ @JsonProperty("due_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime dueAt; + /** The type of task the task assignee will be prompted to perform. */ @JsonDeserialize(using = TaskActionField.TaskActionFieldDeserializer.class) @JsonSerialize(using = TaskActionField.TaskActionFieldSerializer.class) protected EnumWrapper action; + /** A message that will be included with the task. */ protected String message; @JsonProperty("task_assignment_collection") protected TaskAssignments taskAssignmentCollection; + /** Whether the task has been completed. */ @JsonProperty("is_completed") protected Boolean isCompleted; @JsonProperty("created_by") protected UserMini createdBy; + /** When the task object was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** + * Defines which assignees need to complete this task before the task is considered completed. + * + *

    * `all_assignees` requires all assignees to review or approve the task in order for it to be + * considered completed. * `any_assignee` accepts any one assignee to review or approve the task + * in order for it to be considered completed. + */ @JsonDeserialize(using = TaskCompletionRuleField.TaskCompletionRuleFieldDeserializer.class) @JsonSerialize(using = TaskCompletionRuleField.TaskCompletionRuleFieldSerializer.class) @JsonProperty("completion_rule") diff --git a/src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignment.java b/src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignment.java index c5fb8cdcb..c94852456 100644 --- a/src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignment.java +++ b/src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignment.java @@ -13,11 +13,14 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** A task assignment defines which task is assigned to which user to complete. */ @JsonFilter("nullablePropertyFilter") public class TaskAssignment extends SerializableObject { + /** The unique identifier for this task assignment. */ protected String id; + /** The value will always be `task_assignment`. */ @JsonDeserialize(using = TaskAssignmentTypeField.TaskAssignmentTypeFieldDeserializer.class) @JsonSerialize(using = TaskAssignmentTypeField.TaskAssignmentTypeFieldSerializer.class) protected EnumWrapper type; @@ -27,23 +30,37 @@ public class TaskAssignment extends SerializableObject { @JsonProperty("assigned_to") protected UserMini assignedTo; + /** + * A message that will is included with the task assignment. This is visible to the assigned user + * in the web and mobile UI. + */ protected String message; + /** + * The date at which this task assignment was completed. This will be `null` if the task is not + * completed yet. + */ @JsonProperty("completed_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime completedAt; + /** The date at which this task was assigned to the user. */ @JsonProperty("assigned_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime assignedAt; + /** The date at which the assigned user was reminded of this task assignment. */ @JsonProperty("reminded_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime remindedAt; + /** + * The current state of the assignment. The available states depend on the `action` value of the + * task object. + */ @JsonDeserialize( using = TaskAssignmentResolutionStateField.TaskAssignmentResolutionStateFieldDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/taskassignments/TaskAssignments.java b/src/main/java/com/box/sdkgen/schemas/taskassignments/TaskAssignments.java index 48d338939..0dc5519d5 100644 --- a/src/main/java/com/box/sdkgen/schemas/taskassignments/TaskAssignments.java +++ b/src/main/java/com/box/sdkgen/schemas/taskassignments/TaskAssignments.java @@ -8,12 +8,15 @@ import java.util.List; import java.util.Objects; +/** A list of task assignments. */ @JsonFilter("nullablePropertyFilter") public class TaskAssignments extends SerializableObject { + /** The total number of items in this collection. */ @JsonProperty("total_count") protected Long totalCount; + /** A list of task assignments. */ protected List entries; public TaskAssignments() { diff --git a/src/main/java/com/box/sdkgen/schemas/tasks/Tasks.java b/src/main/java/com/box/sdkgen/schemas/tasks/Tasks.java index 27d244a07..2554824de 100644 --- a/src/main/java/com/box/sdkgen/schemas/tasks/Tasks.java +++ b/src/main/java/com/box/sdkgen/schemas/tasks/Tasks.java @@ -8,12 +8,18 @@ import java.util.List; import java.util.Objects; +/** A list of tasks. */ @JsonFilter("nullablePropertyFilter") public class Tasks extends SerializableObject { + /** + * One greater than the offset of the last entry in the entire collection. The total number of + * entries in the collection may be less than `total_count`. + */ @JsonProperty("total_count") protected Long totalCount; + /** A list of tasks. */ protected List entries; public Tasks() { diff --git a/src/main/java/com/box/sdkgen/schemas/templatesigner/TemplateSigner.java b/src/main/java/com/box/sdkgen/schemas/templatesigner/TemplateSigner.java index 47f6bba28..d887e8281 100644 --- a/src/main/java/com/box/sdkgen/schemas/templatesigner/TemplateSigner.java +++ b/src/main/java/com/box/sdkgen/schemas/templatesigner/TemplateSigner.java @@ -12,39 +12,72 @@ import java.util.List; import java.util.Objects; +/** The schema for a Signer for Templates. */ @JsonFilter("nullablePropertyFilter") public class TemplateSigner extends SerializableObject { protected List inputs; + /** Email address of the signer. */ @Nullable protected String email; + /** + * Defines the role of the signer in the signature request. A role of `signer` needs to sign the + * document, a role `approver` approves the document and a `final_copy_reader` role only receives + * the final signed document and signing log. + */ @JsonDeserialize(using = TemplateSignerRoleField.TemplateSignerRoleFieldDeserializer.class) @JsonSerialize(using = TemplateSignerRoleField.TemplateSignerRoleFieldSerializer.class) protected EnumWrapper role; + /** + * Used in combination with an embed URL for a sender. After the sender signs, they will be + * redirected to the next `in_person` signer. + */ @JsonProperty("is_in_person") protected Boolean isInPerson; + /** Order of the signer. */ protected Long order; + /** + * If provided, this value points signers that are assigned the same inputs and belongs to same + * signer group. A signer group is not a Box Group. It is an entity that belongs to the template + * itself and can only be used within Box Sign requests created from it. + */ @JsonProperty("signer_group_id") @Nullable protected String signerGroupId; + /** + * A placeholder label for the signer set by the template creator to differentiate between + * signers. + */ @Nullable protected String label; + /** An identifier for the signer. This can be used to identify a signer within the template. */ @JsonProperty("public_id") protected String publicId; + /** + * If true for signers with a defined email, the password provided when the template was created + * is used by default. If true for signers without a specified / defined email, the creator needs + * to provide a password when using the template. + */ @JsonProperty("is_password_required") @Nullable protected Boolean isPasswordRequired; + /** + * If true for signers with a defined email, the phone number provided when the template was + * created is used by default. If true for signers without a specified / defined email, the + * template creator needs to provide a phone number when creating a request. + */ @JsonProperty("is_phone_number_required") @Nullable protected Boolean isPhoneNumberRequired; + /** If true, the signer is required to login to access the document. */ @JsonProperty("login_required") @Nullable protected Boolean loginRequired; diff --git a/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInput.java b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInput.java index b7b2936fb..62278af09 100644 --- a/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInput.java +++ b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInput.java @@ -11,14 +11,17 @@ import java.util.List; import java.util.Objects; +/** Input created by a Signer on a Template. */ @JsonFilter("nullablePropertyFilter") public class TemplateSignerInput extends SignRequestPrefillTag { + /** Type of input. */ @JsonDeserialize( using = TemplateSignerInputTypeField.TemplateSignerInputTypeFieldDeserializer.class) @JsonSerialize(using = TemplateSignerInputTypeField.TemplateSignerInputTypeFieldSerializer.class) protected EnumWrapper type; + /** Content type of input. */ @JsonDeserialize( using = TemplateSignerInputContentTypeField.TemplateSignerInputContentTypeFieldDeserializer.class) @@ -28,30 +31,42 @@ public class TemplateSignerInput extends SignRequestPrefillTag { @JsonProperty("content_type") protected EnumWrapper contentType; + /** Whether or not the input is required. */ @JsonProperty("is_required") protected Boolean isRequired; + /** Index of page that the input is on. */ @JsonProperty("page_index") protected final long pageIndex; + /** Document identifier. */ @JsonProperty("document_id") @Nullable protected String documentId; + /** + * When the input is of the type `dropdown` this values will be filled with all the dropdown + * options. + */ @JsonProperty("dropdown_choices") @Nullable protected List dropdownChoices; + /** When the input is of type `radio` they can be grouped to gather with this identifier. */ @JsonProperty("group_id") @Nullable protected String groupId; + /** Where the input is located on a page. */ protected TemplateSignerInputCoordinatesField coordinates; + /** The size of the input. */ protected TemplateSignerInputDimensionsField dimensions; + /** The label field is used especially for text, attachment, radio, and checkbox type inputs. */ @Nullable protected String label; + /** Whether this input was defined as read-only(immutable by signers) or not. */ @JsonProperty("read_only") protected Boolean readOnly; diff --git a/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputCoordinatesField.java b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputCoordinatesField.java index f3e3149b1..e7a041f96 100644 --- a/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputCoordinatesField.java +++ b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputCoordinatesField.java @@ -8,8 +8,10 @@ @JsonFilter("nullablePropertyFilter") public class TemplateSignerInputCoordinatesField extends SerializableObject { + /** Relative x coordinate to the page the input is on, ranging from 0 to 1. */ protected Double x; + /** Relative y coordinate to the page the input is on, ranging from 0 to 1. */ protected Double y; public TemplateSignerInputCoordinatesField() { diff --git a/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputDimensionsField.java b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputDimensionsField.java index 10f9f5684..383c19f52 100644 --- a/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputDimensionsField.java +++ b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputDimensionsField.java @@ -8,8 +8,10 @@ @JsonFilter("nullablePropertyFilter") public class TemplateSignerInputDimensionsField extends SerializableObject { + /** Relative width to the page the input is on, ranging from 0 to 1. */ protected Double width; + /** Relative height to the page the input is on, ranging from 0 to 1. */ protected Double height; public TemplateSignerInputDimensionsField() { diff --git a/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfService.java b/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfService.java index f380abcb4..0a0d38e77 100644 --- a/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfService.java +++ b/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfService.java @@ -11,27 +11,36 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** The root-level record that is supposed to represent a single Terms of Service. */ @JsonFilter("nullablePropertyFilter") public class TermsOfService extends TermsOfServiceBase { + /** Whether these terms are enabled or not. */ @JsonDeserialize(using = TermsOfServiceStatusField.TermsOfServiceStatusFieldDeserializer.class) @JsonSerialize(using = TermsOfServiceStatusField.TermsOfServiceStatusFieldSerializer.class) protected EnumWrapper status; protected TermsOfServiceEnterpriseField enterprise; + /** Whether to apply these terms to managed users or external users. */ @JsonDeserialize(using = TermsOfServiceTosTypeField.TermsOfServiceTosTypeFieldDeserializer.class) @JsonSerialize(using = TermsOfServiceTosTypeField.TermsOfServiceTosTypeFieldSerializer.class) @JsonProperty("tos_type") protected EnumWrapper tosType; + /** + * The text for your terms and conditions. This text could be empty if the `status` is set to + * `disabled`. + */ protected String text; + /** When the legal item was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** When the legal item was modified. */ @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceEnterpriseField.java b/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceEnterpriseField.java index b140da4da..9b1b2ffad 100644 --- a/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceEnterpriseField.java +++ b/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceEnterpriseField.java @@ -11,14 +11,17 @@ @JsonFilter("nullablePropertyFilter") public class TermsOfServiceEnterpriseField extends SerializableObject { + /** The unique identifier for this enterprise. */ protected String id; + /** The value will always be `enterprise`. */ @JsonDeserialize( using = TermsOfServiceEnterpriseTypeField.TermsOfServiceEnterpriseTypeFieldDeserializer.class) @JsonSerialize( using = TermsOfServiceEnterpriseTypeField.TermsOfServiceEnterpriseTypeFieldSerializer.class) protected EnumWrapper type; + /** The name of the enterprise. */ protected String name; public TermsOfServiceEnterpriseField() { diff --git a/src/main/java/com/box/sdkgen/schemas/termsofservicebase/TermsOfServiceBase.java b/src/main/java/com/box/sdkgen/schemas/termsofservicebase/TermsOfServiceBase.java index b5ee488a8..0e3cc3cf7 100644 --- a/src/main/java/com/box/sdkgen/schemas/termsofservicebase/TermsOfServiceBase.java +++ b/src/main/java/com/box/sdkgen/schemas/termsofservicebase/TermsOfServiceBase.java @@ -9,11 +9,14 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** The root-level record that is supposed to represent a single Terms of Service. */ @JsonFilter("nullablePropertyFilter") public class TermsOfServiceBase extends SerializableObject { + /** The unique identifier for this terms of service. */ protected final String id; + /** The value will always be `terms_of_service`. */ @JsonDeserialize( using = TermsOfServiceBaseTypeField.TermsOfServiceBaseTypeFieldDeserializer.class) @JsonSerialize(using = TermsOfServiceBaseTypeField.TermsOfServiceBaseTypeFieldSerializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/termsofservices/TermsOfServices.java b/src/main/java/com/box/sdkgen/schemas/termsofservices/TermsOfServices.java index e1cd3accf..bc285d13c 100644 --- a/src/main/java/com/box/sdkgen/schemas/termsofservices/TermsOfServices.java +++ b/src/main/java/com/box/sdkgen/schemas/termsofservices/TermsOfServices.java @@ -8,12 +8,15 @@ import java.util.List; import java.util.Objects; +/** A list of terms of services. */ @JsonFilter("nullablePropertyFilter") public class TermsOfServices extends SerializableObject { + /** The total number of objects. */ @JsonProperty("total_count") protected Long totalCount; + /** A list of terms of service objects. */ protected List entries; public TermsOfServices() { diff --git a/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatus/TermsOfServiceUserStatus.java b/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatus/TermsOfServiceUserStatus.java index f6a6142d0..c13aa6270 100644 --- a/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatus/TermsOfServiceUserStatus.java +++ b/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatus/TermsOfServiceUserStatus.java @@ -13,11 +13,14 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** The association between a Terms of Service and a user. */ @JsonFilter("nullablePropertyFilter") public class TermsOfServiceUserStatus extends SerializableObject { + /** The unique identifier for this terms of service user status. */ protected final String id; + /** The value will always be `terms_of_service_user_status`. */ @JsonDeserialize( using = TermsOfServiceUserStatusTypeField.TermsOfServiceUserStatusTypeFieldDeserializer.class) @JsonSerialize( @@ -28,14 +31,17 @@ public class TermsOfServiceUserStatus extends SerializableObject { protected UserMini user; + /** If the user has accepted the terms of services. */ @JsonProperty("is_accepted") protected Boolean isAccepted; + /** When the legal item was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** When the legal item was modified. */ @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatuses/TermsOfServiceUserStatuses.java b/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatuses/TermsOfServiceUserStatuses.java index bf3a0d919..b9c59a76d 100644 --- a/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatuses/TermsOfServiceUserStatuses.java +++ b/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatuses/TermsOfServiceUserStatuses.java @@ -8,12 +8,15 @@ import java.util.List; import java.util.Objects; +/** A list of terms of service user statuses. */ @JsonFilter("nullablePropertyFilter") public class TermsOfServiceUserStatuses extends SerializableObject { + /** The total number of objects. */ @JsonProperty("total_count") protected Long totalCount; + /** A list of terms of service user statuses. */ protected List entries; public TermsOfServiceUserStatuses() { diff --git a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCard.java b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCard.java index 48fa6d786..9aa47a110 100644 --- a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCard.java +++ b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCard.java @@ -12,18 +12,22 @@ import java.util.List; import java.util.Objects; +/** A Box Skill metadata card that places a list of images on a timeline. */ @JsonFilter("nullablePropertyFilter") public class TimelineSkillCard extends SerializableObject { + /** The optional date and time this card was created at. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** The value will always be `skill_card`. */ @JsonDeserialize(using = TimelineSkillCardTypeField.TimelineSkillCardTypeFieldDeserializer.class) @JsonSerialize(using = TimelineSkillCardTypeField.TimelineSkillCardTypeFieldSerializer.class) protected EnumWrapper type; + /** The value will always be `timeline`. */ @JsonDeserialize( using = TimelineSkillCardSkillCardTypeField.TimelineSkillCardSkillCardTypeFieldDeserializer.class) @@ -33,15 +37,22 @@ public class TimelineSkillCard extends SerializableObject { @JsonProperty("skill_card_type") protected EnumWrapper skillCardType; + /** The title of the card. */ @JsonProperty("skill_card_title") protected TimelineSkillCardSkillCardTitleField skillCardTitle; + /** The service that applied this metadata. */ protected final TimelineSkillCardSkillField skill; + /** + * The invocation of this service, used to track which instance of a service applied the metadata. + */ protected final TimelineSkillCardInvocationField invocation; + /** An total duration in seconds of the timeline. */ protected Long duration; + /** A list of entries on the timeline. */ protected final List entries; public TimelineSkillCard( diff --git a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardEntriesAppearsField.java b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardEntriesAppearsField.java index 1e8ab432a..348f43c27 100644 --- a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardEntriesAppearsField.java +++ b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardEntriesAppearsField.java @@ -8,8 +8,10 @@ @JsonFilter("nullablePropertyFilter") public class TimelineSkillCardEntriesAppearsField extends SerializableObject { + /** The time in seconds when an entry should start appearing on a timeline. */ protected Long start; + /** The time in seconds when an entry should stop appearing on a timeline. */ protected Long end; public TimelineSkillCardEntriesAppearsField() { diff --git a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardEntriesField.java b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardEntriesField.java index 41b6048d7..43ac5d101 100644 --- a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardEntriesField.java +++ b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardEntriesField.java @@ -10,10 +10,22 @@ @JsonFilter("nullablePropertyFilter") public class TimelineSkillCardEntriesField extends SerializableObject { + /** + * The text of the entry. This would be the display name for an item being placed on the timeline, + * for example the name of the person who was detected in a video. + */ protected String text; + /** Defines a list of timestamps for when this item should appear on the timeline. */ protected List appears; + /** + * The image to show on a for an entry that appears on a timeline. This image URL is required for + * every entry. + * + *

    The image will be shown in a list of items (for example faces), and clicking the image will + * show the user where that entry appears during the duration of this entry. + */ @JsonProperty("image_url") protected String imageUrl; diff --git a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardInvocationField.java b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardInvocationField.java index cc4729fd4..888f8b2f5 100644 --- a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardInvocationField.java +++ b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardInvocationField.java @@ -12,6 +12,7 @@ @JsonFilter("nullablePropertyFilter") public class TimelineSkillCardInvocationField extends SerializableObject { + /** The value will always be `skill_invocation`. */ @JsonDeserialize( using = TimelineSkillCardInvocationTypeField.TimelineSkillCardInvocationTypeFieldDeserializer @@ -21,6 +22,11 @@ public class TimelineSkillCardInvocationField extends SerializableObject { TimelineSkillCardInvocationTypeField.TimelineSkillCardInvocationTypeFieldSerializer.class) protected EnumWrapper type; + /** + * A custom identifier that represent the instance of the service that applied this metadata. For + * example, if your `image-recognition-service` runs on multiple nodes, this field can be used to + * identify the ID of the node that was used to apply the metadata. + */ protected final String id; public TimelineSkillCardInvocationField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillCardTitleField.java b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillCardTitleField.java index 85bdc7133..58adba9c6 100644 --- a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillCardTitleField.java +++ b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillCardTitleField.java @@ -9,8 +9,10 @@ @JsonFilter("nullablePropertyFilter") public class TimelineSkillCardSkillCardTitleField extends SerializableObject { + /** An optional identifier for the title. */ protected String code; + /** The actual title to show in the UI. */ protected final String message; public TimelineSkillCardSkillCardTitleField(@JsonProperty("message") String message) { diff --git a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillField.java b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillField.java index bf7169b54..fbfa9cd70 100644 --- a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillField.java +++ b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillField.java @@ -12,12 +12,14 @@ @JsonFilter("nullablePropertyFilter") public class TimelineSkillCardSkillField extends SerializableObject { + /** The value will always be `service`. */ @JsonDeserialize( using = TimelineSkillCardSkillTypeField.TimelineSkillCardSkillTypeFieldDeserializer.class) @JsonSerialize( using = TimelineSkillCardSkillTypeField.TimelineSkillCardSkillTypeFieldSerializer.class) protected EnumWrapper type; + /** A custom identifier that represent the service that applied this metadata. */ protected final String id; public TimelineSkillCardSkillField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/trackingcode/TrackingCode.java b/src/main/java/com/box/sdkgen/schemas/trackingcode/TrackingCode.java index 3da7d2df5..d859f2eb6 100644 --- a/src/main/java/com/box/sdkgen/schemas/trackingcode/TrackingCode.java +++ b/src/main/java/com/box/sdkgen/schemas/trackingcode/TrackingCode.java @@ -8,15 +8,23 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** + * Tracking codes allow an admin to generate reports from the admin console and assign an attribute + * to a specific group of users. This setting must be enabled for an enterprise before it can be + * used. + */ @JsonFilter("nullablePropertyFilter") public class TrackingCode extends SerializableObject { + /** The value will always be `tracking_code`. */ @JsonDeserialize(using = TrackingCodeTypeField.TrackingCodeTypeFieldDeserializer.class) @JsonSerialize(using = TrackingCodeTypeField.TrackingCodeTypeFieldSerializer.class) protected EnumWrapper type; + /** The name of the tracking code, which must be preconfigured in the Admin Console. */ protected String name; + /** The value of the tracking code. */ protected String value; public TrackingCode() { diff --git a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCard.java b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCard.java index 819ac7327..91bf1cbf8 100644 --- a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCard.java +++ b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCard.java @@ -12,19 +12,23 @@ import java.util.List; import java.util.Objects; +/** A Box Skill metadata card that adds a transcript to a file. */ @JsonFilter("nullablePropertyFilter") public class TranscriptSkillCard extends SerializableObject { + /** The optional date and time this card was created at. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** The value will always be `skill_card`. */ @JsonDeserialize( using = TranscriptSkillCardTypeField.TranscriptSkillCardTypeFieldDeserializer.class) @JsonSerialize(using = TranscriptSkillCardTypeField.TranscriptSkillCardTypeFieldSerializer.class) protected EnumWrapper type; + /** The value will always be `transcript`. */ @JsonDeserialize( using = TranscriptSkillCardSkillCardTypeField.TranscriptSkillCardSkillCardTypeFieldDeserializer @@ -36,15 +40,28 @@ public class TranscriptSkillCard extends SerializableObject { @JsonProperty("skill_card_type") protected EnumWrapper skillCardType; + /** The title of the card. */ @JsonProperty("skill_card_title") protected TranscriptSkillCardSkillCardTitleField skillCardTitle; + /** The service that applied this metadata. */ protected final TranscriptSkillCardSkillField skill; + /** + * The invocation of this service, used to track which instance of a service applied the metadata. + */ protected final TranscriptSkillCardInvocationField invocation; + /** + * An optional total duration in seconds. + * + *

    Used with a `skill_card_type` of `transcript` or `timeline`. + */ protected Long duration; + /** + * An list of entries for the card. This represents the individual entries of the transcription. + */ protected final List entries; public TranscriptSkillCard( diff --git a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardEntriesAppearsField.java b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardEntriesAppearsField.java index 6222defd8..094016945 100644 --- a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardEntriesAppearsField.java +++ b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardEntriesAppearsField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class TranscriptSkillCardEntriesAppearsField extends SerializableObject { + /** The time in seconds when an entry should start appearing on a timeline. */ protected Long start; public TranscriptSkillCardEntriesAppearsField() { diff --git a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardEntriesField.java b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardEntriesField.java index eb7b129c0..9f2bd062c 100644 --- a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardEntriesField.java +++ b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardEntriesField.java @@ -9,8 +9,16 @@ @JsonFilter("nullablePropertyFilter") public class TranscriptSkillCardEntriesField extends SerializableObject { + /** + * The text of the entry. This would be the transcribed text assigned to the entry on the + * timeline. + */ protected String text; + /** + * Defines when a transcribed bit of text appears. This only includes a start time and no end + * time. + */ protected List appears; public TranscriptSkillCardEntriesField() { diff --git a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardInvocationField.java b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardInvocationField.java index 1ee5d1056..2c4ba229b 100644 --- a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardInvocationField.java +++ b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardInvocationField.java @@ -12,6 +12,7 @@ @JsonFilter("nullablePropertyFilter") public class TranscriptSkillCardInvocationField extends SerializableObject { + /** The value will always be `skill_invocation`. */ @JsonDeserialize( using = TranscriptSkillCardInvocationTypeField.TranscriptSkillCardInvocationTypeFieldDeserializer @@ -22,6 +23,11 @@ public class TranscriptSkillCardInvocationField extends SerializableObject { .class) protected EnumWrapper type; + /** + * A custom identifier that represent the instance of the service that applied this metadata. For + * example, if your `image-recognition-service` runs on multiple nodes, this field can be used to + * identify the ID of the node that was used to apply the metadata. + */ protected final String id; public TranscriptSkillCardInvocationField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillCardTitleField.java b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillCardTitleField.java index d797ae47c..79a25cebb 100644 --- a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillCardTitleField.java +++ b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillCardTitleField.java @@ -9,8 +9,10 @@ @JsonFilter("nullablePropertyFilter") public class TranscriptSkillCardSkillCardTitleField extends SerializableObject { + /** An optional identifier for the title. */ protected String code; + /** The actual title to show in the UI. */ protected final String message; public TranscriptSkillCardSkillCardTitleField(@JsonProperty("message") String message) { diff --git a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillField.java b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillField.java index 85df0d94e..cbaedf269 100644 --- a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillField.java +++ b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillField.java @@ -12,12 +12,14 @@ @JsonFilter("nullablePropertyFilter") public class TranscriptSkillCardSkillField extends SerializableObject { + /** The value will always be `service`. */ @JsonDeserialize( using = TranscriptSkillCardSkillTypeField.TranscriptSkillCardSkillTypeFieldDeserializer.class) @JsonSerialize( using = TranscriptSkillCardSkillTypeField.TranscriptSkillCardSkillTypeFieldSerializer.class) protected EnumWrapper type; + /** A custom identifier that represent the service that applied this metadata. */ protected final String id; public TranscriptSkillCardSkillField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFile.java b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFile.java index 0ef3786cb..2b84b769d 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFile.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFile.java @@ -15,13 +15,26 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** Represents a trashed file. */ @JsonFilter("nullablePropertyFilter") public class TrashFile extends SerializableObject { + /** + * The unique identifier that represent a file. + * + *

    The ID for any file can be determined by visiting a file in the web application and copying + * the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` + * is `123`. + */ protected final String id; + /** + * The HTTP `etag` of this file. This can be used within some API endpoints in the `If-Match` and + * `If-None-Match` headers to only perform changes on the file if (no) changes have happened. + */ @Nullable protected String etag; + /** The value will always be `file`. */ @JsonDeserialize(using = TrashFileTypeField.TrashFileTypeFieldDeserializer.class) @JsonSerialize(using = TrashFileTypeField.TrashFileTypeFieldSerializer.class) protected EnumWrapper type; @@ -29,48 +42,70 @@ public class TrashFile extends SerializableObject { @JsonProperty("sequence_id") protected final String sequenceId; + /** The name of the file. */ protected String name; + /** + * The SHA1 hash of the file. This can be used to compare the contents of a file on Box with a + * local file. + */ protected final String sha1; @JsonProperty("file_version") protected FileVersionMini fileVersion; + /** The optional description of this file. */ protected final String description; + /** + * The file size in bytes. Be careful parsing this integer as it can get very large and cause an + * integer overflow. + */ protected final long size; @JsonProperty("path_collection") protected final TrashFilePathCollectionField pathCollection; + /** The date and time when the file was created on Box. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected final OffsetDateTime createdAt; + /** The date and time when the file was last updated on Box. */ @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected final OffsetDateTime modifiedAt; + /** The time at which this file was put in the trash. */ @JsonProperty("trashed_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable protected OffsetDateTime trashedAt; + /** The time at which this file is expected to be purged from the trash. */ @JsonProperty("purged_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable protected OffsetDateTime purgedAt; + /** + * The date and time at which this file was originally created, which might be before it was + * uploaded to Box. + */ @JsonProperty("content_created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable protected OffsetDateTime contentCreatedAt; + /** + * The date and time at which this file was last updated, which might be before it was uploaded to + * Box. + */ @JsonProperty("content_modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @@ -86,12 +121,22 @@ public class TrashFile extends SerializableObject { @JsonProperty("owned_by") protected final UserMini ownedBy; + /** + * The shared link for this file. This will be `null` if a file has been trashed, since the link + * will no longer be active. + */ @JsonProperty("shared_link") @Nullable protected String sharedLink; protected FolderMini parent; + /** + * Defines if this item has been deleted or not. + * + *

    * `active` when the item has is not in the trash * `trashed` when the item has been moved to + * the trash but not deleted * `deleted` when the item has been permanently deleted. + */ @JsonDeserialize(using = TrashFileItemStatusField.TrashFileItemStatusFieldDeserializer.class) @JsonSerialize(using = TrashFileItemStatusField.TrashFileItemStatusFieldSerializer.class) @JsonProperty("item_status") diff --git a/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFilePathCollectionEntriesField.java b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFilePathCollectionEntriesField.java index c0e7ab21f..5cb5c8b58 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFilePathCollectionEntriesField.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFilePathCollectionEntriesField.java @@ -13,6 +13,7 @@ @JsonFilter("nullablePropertyFilter") public class TrashFilePathCollectionEntriesField extends SerializableObject { + /** The value will always be `folder`. */ @JsonDeserialize( using = TrashFilePathCollectionEntriesTypeField @@ -23,14 +24,18 @@ public class TrashFilePathCollectionEntriesField extends SerializableObject { .class) protected EnumWrapper type; + /** The unique identifier that represent a folder. */ protected String id; + /** This field is null for the Trash folder. */ @JsonProperty("sequence_id") @Nullable protected String sequenceId; + /** This field is null for the Trash folder. */ @Nullable protected String etag; + /** The name of the Trash folder. */ protected String name; public TrashFilePathCollectionEntriesField() { diff --git a/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFilePathCollectionField.java b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFilePathCollectionField.java index f44446045..77e2efb5e 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFilePathCollectionField.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFilePathCollectionField.java @@ -9,9 +9,11 @@ @JsonFilter("nullablePropertyFilter") public class TrashFilePathCollectionField extends SerializableObject { + /** The number of folders in this list. */ @JsonProperty("total_count") protected final long totalCount; + /** Array of folders for this item's path collection. */ protected final List entries; public TrashFilePathCollectionField( diff --git a/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestored.java b/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestored.java index 8b4d38139..270cc6621 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestored.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestored.java @@ -15,13 +15,26 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** Represents a file restored from the trash. */ @JsonFilter("nullablePropertyFilter") public class TrashFileRestored extends SerializableObject { + /** + * The unique identifier that represent a file. + * + *

    The ID for any file can be determined by visiting a file in the web application and copying + * the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` + * is `123`. + */ protected final String id; + /** + * The HTTP `etag` of this file. This can be used within some API endpoints in the `If-Match` and + * `If-None-Match` headers to only perform changes on the file if (no) changes have happened. + */ @Nullable protected String etag; + /** The value will always be `file`. */ @JsonDeserialize(using = TrashFileRestoredTypeField.TrashFileRestoredTypeFieldDeserializer.class) @JsonSerialize(using = TrashFileRestoredTypeField.TrashFileRestoredTypeFieldSerializer.class) protected EnumWrapper type; @@ -29,44 +42,69 @@ public class TrashFileRestored extends SerializableObject { @JsonProperty("sequence_id") protected final String sequenceId; + /** The name of the file. */ protected String name; + /** + * The SHA1 hash of the file. This can be used to compare the contents of a file on Box with a + * local file. + */ protected final String sha1; @JsonProperty("file_version") protected FileVersionMini fileVersion; + /** The optional description of this file. */ protected final String description; + /** + * The file size in bytes. Be careful parsing this integer as it can get very large and cause an + * integer overflow. + */ protected final long size; @JsonProperty("path_collection") protected final TrashFileRestoredPathCollectionField pathCollection; + /** The date and time when the file was created on Box. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected final OffsetDateTime createdAt; + /** The date and time when the file was last updated on Box. */ @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected final OffsetDateTime modifiedAt; + /** The time at which this file was put in the trash - becomes `null` after restore. */ @JsonProperty("trashed_at") @Nullable protected String trashedAt; + /** + * The time at which this file is expected to be purged from the trash - becomes `null` after + * restore. + */ @JsonProperty("purged_at") @Nullable protected String purgedAt; + /** + * The date and time at which this file was originally created, which might be before it was + * uploaded to Box. + */ @JsonProperty("content_created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable protected OffsetDateTime contentCreatedAt; + /** + * The date and time at which this file was last updated, which might be before it was uploaded to + * Box. + */ @JsonProperty("content_modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @@ -82,12 +120,22 @@ public class TrashFileRestored extends SerializableObject { @JsonProperty("owned_by") protected final UserMini ownedBy; + /** + * The shared link for this file. This will be `null` if a file had been trashed, even though the + * original shared link does become active again. + */ @JsonProperty("shared_link") @Nullable protected String sharedLink; protected FolderMini parent; + /** + * Defines if this item has been deleted or not. + * + *

    * `active` when the item has is not in the trash * `trashed` when the item has been moved to + * the trash but not deleted * `deleted` when the item has been permanently deleted. + */ @JsonDeserialize( using = TrashFileRestoredItemStatusField.TrashFileRestoredItemStatusFieldDeserializer.class) @JsonSerialize( diff --git a/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestoredPathCollectionField.java b/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestoredPathCollectionField.java index 37c862fc3..9cae7dd76 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestoredPathCollectionField.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestoredPathCollectionField.java @@ -10,9 +10,11 @@ @JsonFilter("nullablePropertyFilter") public class TrashFileRestoredPathCollectionField extends SerializableObject { + /** The number of folders in this list. */ @JsonProperty("total_count") protected final long totalCount; + /** The parent folders for this item. */ protected final List entries; public TrashFileRestoredPathCollectionField( diff --git a/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolder.java b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolder.java index 4d4fb35f5..181cc14ce 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolder.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolder.java @@ -14,13 +14,27 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** Represents a trashed folder. */ @JsonFilter("nullablePropertyFilter") public class TrashFolder extends SerializableObject { + /** + * The unique identifier that represent a folder. + * + *

    The ID for any folder can be determined by visiting a folder in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/folders/123` the + * `folder_id` is `123`. + */ protected final String id; + /** + * The HTTP `etag` of this folder. This can be used within some API endpoints in the `If-Match` + * and `If-None-Match` headers to only perform changes on the folder if (no) changes have + * happened. + */ @Nullable protected String etag; + /** The value will always be `folder`. */ @JsonDeserialize(using = TrashFolderTypeField.TrashFolderTypeFieldDeserializer.class) @JsonSerialize(using = TrashFolderTypeField.TrashFolderTypeFieldSerializer.class) protected EnumWrapper type; @@ -28,14 +42,23 @@ public class TrashFolder extends SerializableObject { @JsonProperty("sequence_id") protected String sequenceId; + /** The name of the folder. */ protected final String name; + /** + * The date and time when the folder was created. This value may be `null` for some folders such + * as the root folder or the trash folder. + */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable protected OffsetDateTime createdAt; + /** + * The date and time when the folder was last updated. This value may be `null` for some folders + * such as the root folder or the trash folder. + */ @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @@ -44,6 +67,11 @@ public class TrashFolder extends SerializableObject { protected final String description; + /** + * The folder size in bytes. + * + *

    Be careful parsing this integer as its value can get very large. + */ protected final long size; @JsonProperty("path_collection") @@ -55,24 +83,28 @@ public class TrashFolder extends SerializableObject { @JsonProperty("modified_by") protected final UserMini modifiedBy; + /** The time at which this folder was put in the trash. */ @JsonProperty("trashed_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable protected OffsetDateTime trashedAt; + /** The time at which this folder is expected to be purged from the trash. */ @JsonProperty("purged_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable protected OffsetDateTime purgedAt; + /** The date and time at which this folder was originally created. */ @JsonProperty("content_created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable protected OffsetDateTime contentCreatedAt; + /** The date and time at which this folder was last updated. */ @JsonProperty("content_modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @@ -82,16 +114,30 @@ public class TrashFolder extends SerializableObject { @JsonProperty("owned_by") protected final UserMini ownedBy; + /** + * The shared link for this folder. This will be `null` if a folder has been trashed, since the + * link will no longer be active. + */ @JsonProperty("shared_link") @Nullable protected String sharedLink; + /** + * The folder upload email for this folder. This will be `null` if a folder has been trashed, + * since the upload will no longer work. + */ @JsonProperty("folder_upload_email") @Nullable protected String folderUploadEmail; protected FolderMini parent; + /** + * Defines if this item has been deleted or not. + * + *

    * `active` when the item has is not in the trash * `trashed` when the item has been moved to + * the trash but not deleted * `deleted` when the item has been permanently deleted. + */ @JsonDeserialize(using = TrashFolderItemStatusField.TrashFolderItemStatusFieldDeserializer.class) @JsonSerialize(using = TrashFolderItemStatusField.TrashFolderItemStatusFieldSerializer.class) @JsonProperty("item_status") diff --git a/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderPathCollectionEntriesField.java b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderPathCollectionEntriesField.java index bda17627d..6aea5d232 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderPathCollectionEntriesField.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderPathCollectionEntriesField.java @@ -13,6 +13,7 @@ @JsonFilter("nullablePropertyFilter") public class TrashFolderPathCollectionEntriesField extends SerializableObject { + /** The value will always be `folder`. */ @JsonDeserialize( using = TrashFolderPathCollectionEntriesTypeField @@ -23,14 +24,18 @@ public class TrashFolderPathCollectionEntriesField extends SerializableObject { .TrashFolderPathCollectionEntriesTypeFieldSerializer.class) protected EnumWrapper type; + /** The unique identifier that represent a folder. */ protected String id; + /** This field is null for the Trash folder. */ @JsonProperty("sequence_id") @Nullable protected String sequenceId; + /** This field is null for the Trash folder. */ @Nullable protected String etag; + /** The name of the Trash folder. */ protected String name; public TrashFolderPathCollectionEntriesField() { diff --git a/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderPathCollectionField.java b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderPathCollectionField.java index 38d5ec30c..63c50671e 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderPathCollectionField.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderPathCollectionField.java @@ -9,9 +9,11 @@ @JsonFilter("nullablePropertyFilter") public class TrashFolderPathCollectionField extends SerializableObject { + /** The number of folders in this list. */ @JsonProperty("total_count") protected final long totalCount; + /** Array of folders for this item's path collection. */ protected final List entries; public TrashFolderPathCollectionField( diff --git a/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestored.java b/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestored.java index 1e1ff8809..63280f613 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestored.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestored.java @@ -14,13 +14,27 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** Represents a folder restored from the trash. */ @JsonFilter("nullablePropertyFilter") public class TrashFolderRestored extends SerializableObject { + /** + * The unique identifier that represent a folder. + * + *

    The ID for any folder can be determined by visiting a folder in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/folders/123` the + * `folder_id` is `123`. + */ protected String id; + /** + * The HTTP `etag` of this folder. This can be used within some API endpoints in the `If-Match` + * and `If-None-Match` headers to only perform changes on the folder if (no) changes have + * happened. + */ @Nullable protected String etag; + /** The value will always be `folder`. */ @JsonDeserialize( using = TrashFolderRestoredTypeField.TrashFolderRestoredTypeFieldDeserializer.class) @JsonSerialize(using = TrashFolderRestoredTypeField.TrashFolderRestoredTypeFieldSerializer.class) @@ -29,14 +43,23 @@ public class TrashFolderRestored extends SerializableObject { @JsonProperty("sequence_id") protected String sequenceId; + /** The name of the folder. */ protected String name; + /** + * The date and time when the folder was created. This value may be `null` for some folders such + * as the root folder or the trash folder. + */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable protected OffsetDateTime createdAt; + /** + * The date and time when the folder was last updated. This value may be `null` for some folders + * such as the root folder or the trash folder. + */ @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @@ -45,6 +68,11 @@ public class TrashFolderRestored extends SerializableObject { protected String description; + /** + * The folder size in bytes. + * + *

    Be careful parsing this integer as its value can get very large. + */ protected Long size; @JsonProperty("path_collection") @@ -56,20 +84,27 @@ public class TrashFolderRestored extends SerializableObject { @JsonProperty("modified_by") protected UserMini modifiedBy; + /** The time at which this folder was put in the trash - becomes `null` after restore. */ @JsonProperty("trashed_at") @Nullable protected String trashedAt; + /** + * The time at which this folder is expected to be purged from the trash - becomes `null` after + * restore. + */ @JsonProperty("purged_at") @Nullable protected String purgedAt; + /** The date and time at which this folder was originally created. */ @JsonProperty("content_created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable protected OffsetDateTime contentCreatedAt; + /** The date and time at which this folder was last updated. */ @JsonProperty("content_modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @@ -79,16 +114,30 @@ public class TrashFolderRestored extends SerializableObject { @JsonProperty("owned_by") protected UserMini ownedBy; + /** + * The shared link for this file. This will be `null` if a folder had been trashed, even though + * the original shared link does become active again. + */ @JsonProperty("shared_link") @Nullable protected String sharedLink; + /** + * The folder upload email for this folder. This will be `null` if a folder has been trashed, even + * though the original upload email does become active again. + */ @JsonProperty("folder_upload_email") @Nullable protected String folderUploadEmail; protected FolderMini parent; + /** + * Defines if this item has been deleted or not. + * + *

    * `active` when the item has is not in the trash, * `trashed` when the item has been moved + * to the trash but not deleted, * `deleted` when the item has been permanently deleted. + */ @JsonDeserialize( using = TrashFolderRestoredItemStatusField.TrashFolderRestoredItemStatusFieldDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestoredPathCollectionField.java b/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestoredPathCollectionField.java index c2e4e57e3..2cd60b33e 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestoredPathCollectionField.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestoredPathCollectionField.java @@ -10,9 +10,11 @@ @JsonFilter("nullablePropertyFilter") public class TrashFolderRestoredPathCollectionField extends SerializableObject { + /** The number of folders in this list. */ @JsonProperty("total_count") protected final long totalCount; + /** The parent folders for this item. */ protected final List entries; public TrashFolderRestoredPathCollectionField( diff --git a/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLink.java b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLink.java index 251fbca8b..a7e12ba15 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLink.java +++ b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLink.java @@ -14,47 +14,58 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** Represents a trashed web link. */ @JsonFilter("nullablePropertyFilter") public class TrashWebLink extends SerializableObject { + /** The value will always be `web_link`. */ @JsonDeserialize(using = TrashWebLinkTypeField.TrashWebLinkTypeFieldDeserializer.class) @JsonSerialize(using = TrashWebLinkTypeField.TrashWebLinkTypeFieldSerializer.class) protected EnumWrapper type; + /** The unique identifier for this web link. */ protected String id; @JsonProperty("sequence_id") protected String sequenceId; + /** The entity tag of this web link. Used with `If-Match` headers. */ protected String etag; + /** The name of the web link. */ protected String name; + /** The URL this web link points to. */ protected String url; protected FolderMini parent; + /** The description accompanying the web link. This is visible within the Box web application. */ protected String description; @JsonProperty("path_collection") protected TrashWebLinkPathCollectionField pathCollection; + /** When this file was created on Box’s servers. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** When this file was last updated on the Box servers. */ @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime modifiedAt; + /** When this file was last moved to the trash. */ @JsonProperty("trashed_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable protected OffsetDateTime trashedAt; + /** When this file will be permanently deleted. */ @JsonProperty("purged_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @@ -70,10 +81,18 @@ public class TrashWebLink extends SerializableObject { @JsonProperty("owned_by") protected UserMini ownedBy; + /** + * The shared link for this bookmark. This will be `null` if a bookmark has been trashed, since + * the link will no longer be active. + */ @JsonProperty("shared_link") @Nullable protected String sharedLink; + /** + * Whether this item is deleted or not. Values include `active`, `trashed` if the file has been + * moved to the trash, and `deleted` if the file has been permanently deleted. + */ @JsonDeserialize( using = TrashWebLinkItemStatusField.TrashWebLinkItemStatusFieldDeserializer.class) @JsonSerialize(using = TrashWebLinkItemStatusField.TrashWebLinkItemStatusFieldSerializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkPathCollectionEntriesField.java b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkPathCollectionEntriesField.java index bc51a4eb2..38e0e6596 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkPathCollectionEntriesField.java +++ b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkPathCollectionEntriesField.java @@ -13,6 +13,7 @@ @JsonFilter("nullablePropertyFilter") public class TrashWebLinkPathCollectionEntriesField extends SerializableObject { + /** The value will always be `folder`. */ @JsonDeserialize( using = TrashWebLinkPathCollectionEntriesTypeField @@ -23,14 +24,18 @@ public class TrashWebLinkPathCollectionEntriesField extends SerializableObject { .TrashWebLinkPathCollectionEntriesTypeFieldSerializer.class) protected EnumWrapper type; + /** The unique identifier that represent a folder. */ protected String id; + /** This field is null for the Trash folder. */ @JsonProperty("sequence_id") @Nullable protected String sequenceId; + /** This field is null for the Trash folder. */ @Nullable protected String etag; + /** The name of the Trash folder. */ protected String name; public TrashWebLinkPathCollectionEntriesField() { diff --git a/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkPathCollectionField.java b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkPathCollectionField.java index 31fb1704c..f0b84a470 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkPathCollectionField.java +++ b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkPathCollectionField.java @@ -9,9 +9,11 @@ @JsonFilter("nullablePropertyFilter") public class TrashWebLinkPathCollectionField extends SerializableObject { + /** The number of folders in this list. */ @JsonProperty("total_count") protected final long totalCount; + /** Array of folders for this item's path collection. */ protected final List entries; public TrashWebLinkPathCollectionField( diff --git a/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestored.java b/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestored.java index edf6eb340..6138fba14 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestored.java +++ b/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestored.java @@ -14,47 +14,58 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** Represents a web link restored from the trash. */ @JsonFilter("nullablePropertyFilter") public class TrashWebLinkRestored extends SerializableObject { + /** The value will always be `web_link`. */ @JsonDeserialize( using = TrashWebLinkRestoredTypeField.TrashWebLinkRestoredTypeFieldDeserializer.class) @JsonSerialize( using = TrashWebLinkRestoredTypeField.TrashWebLinkRestoredTypeFieldSerializer.class) protected EnumWrapper type; + /** The unique identifier for this web link. */ protected String id; @JsonProperty("sequence_id") protected final String sequenceId; + /** The entity tag of this web link. Used with `If-Match` headers. */ protected String etag; + /** The name of the web link. */ protected String name; + /** The URL this web link points to. */ protected String url; protected FolderMini parent; + /** The description accompanying the web link. This is visible within the Box web application. */ protected String description; @JsonProperty("path_collection") protected final TrashWebLinkRestoredPathCollectionField pathCollection; + /** When this file was created on Box’s servers. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** When this file was last updated on the Box servers. */ @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime modifiedAt; + /** The time at which this bookmark was put in the trash - becomes `null` after restore. */ @JsonProperty("trashed_at") @Nullable protected String trashedAt; + /** The time at which this bookmark will be permanently deleted - becomes `null` after restore. */ @JsonProperty("purged_at") @Nullable protected String purgedAt; @@ -68,10 +79,18 @@ public class TrashWebLinkRestored extends SerializableObject { @JsonProperty("owned_by") protected UserMini ownedBy; + /** + * The shared link for this bookmark. This will be `null` if a bookmark had been trashed, even + * though the original shared link does become active again. + */ @JsonProperty("shared_link") @Nullable protected String sharedLink; + /** + * Whether this item is deleted or not. Values include `active`, `trashed` if the file has been + * moved to the trash, and `deleted` if the file has been permanently deleted. + */ @JsonDeserialize( using = TrashWebLinkRestoredItemStatusField.TrashWebLinkRestoredItemStatusFieldDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestoredPathCollectionField.java b/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestoredPathCollectionField.java index eabe2ef18..43302dfc3 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestoredPathCollectionField.java +++ b/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestoredPathCollectionField.java @@ -10,9 +10,11 @@ @JsonFilter("nullablePropertyFilter") public class TrashWebLinkRestoredPathCollectionField extends SerializableObject { + /** The number of folders in this list. */ @JsonProperty("total_count") protected final long totalCount; + /** The parent folders for this item. */ protected final List entries; public TrashWebLinkRestoredPathCollectionField( diff --git a/src/main/java/com/box/sdkgen/schemas/uploadedpart/UploadedPart.java b/src/main/java/com/box/sdkgen/schemas/uploadedpart/UploadedPart.java index 9676c3323..46c6d37b3 100644 --- a/src/main/java/com/box/sdkgen/schemas/uploadedpart/UploadedPart.java +++ b/src/main/java/com/box/sdkgen/schemas/uploadedpart/UploadedPart.java @@ -6,6 +6,7 @@ import com.fasterxml.jackson.annotation.JsonFilter; import java.util.Objects; +/** A chunk of a file uploaded as part of an upload session, as returned by some endpoints. */ @JsonFilter("nullablePropertyFilter") public class UploadedPart extends SerializableObject { diff --git a/src/main/java/com/box/sdkgen/schemas/uploadpart/UploadPart.java b/src/main/java/com/box/sdkgen/schemas/uploadpart/UploadPart.java index a733ae719..a026779e5 100644 --- a/src/main/java/com/box/sdkgen/schemas/uploadpart/UploadPart.java +++ b/src/main/java/com/box/sdkgen/schemas/uploadpart/UploadPart.java @@ -4,9 +4,11 @@ import com.fasterxml.jackson.annotation.JsonFilter; import java.util.Objects; +/** The representation of an upload session chunk. */ @JsonFilter("nullablePropertyFilter") public class UploadPart extends UploadPartMini { + /** The SHA1 hash of the chunk. */ protected String sha1; public UploadPart() { diff --git a/src/main/java/com/box/sdkgen/schemas/uploadpartmini/UploadPartMini.java b/src/main/java/com/box/sdkgen/schemas/uploadpartmini/UploadPartMini.java index 4db31edf6..810bafc0e 100644 --- a/src/main/java/com/box/sdkgen/schemas/uploadpartmini/UploadPartMini.java +++ b/src/main/java/com/box/sdkgen/schemas/uploadpartmini/UploadPartMini.java @@ -6,14 +6,21 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** The basic representation of an upload session chunk. */ @JsonFilter("nullablePropertyFilter") public class UploadPartMini extends SerializableObject { + /** The unique ID of the chunk. */ @JsonProperty("part_id") protected String partId; + /** + * The offset of the chunk within the file in bytes. The lower bound of the position of the chunk + * within the file. + */ protected Long offset; + /** The size of the chunk in bytes. */ protected Long size; public UploadPartMini() { diff --git a/src/main/java/com/box/sdkgen/schemas/uploadparts/UploadParts.java b/src/main/java/com/box/sdkgen/schemas/uploadparts/UploadParts.java index 22c317913..ef9a49c48 100644 --- a/src/main/java/com/box/sdkgen/schemas/uploadparts/UploadParts.java +++ b/src/main/java/com/box/sdkgen/schemas/uploadparts/UploadParts.java @@ -8,18 +8,44 @@ import java.util.List; import java.util.Objects; +/** A list of uploaded chunks for an upload session. */ @JsonFilter("nullablePropertyFilter") public class UploadParts extends SerializableObject { + /** + * One greater than the offset of the last entry in the entire collection. The total number of + * entries in the collection may be less than `total_count`. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ @JsonProperty("total_count") protected Long totalCount; + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** + * The 0-based offset of the first entry in this set. This will be the same as the `offset` query + * parameter. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ protected Long offset; + /** + * The order by which items are returned. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ protected List order; + /** A list of uploaded chunks for an upload session. */ protected List entries; public UploadParts() { diff --git a/src/main/java/com/box/sdkgen/schemas/uploadparts/UploadPartsOrderField.java b/src/main/java/com/box/sdkgen/schemas/uploadparts/UploadPartsOrderField.java index 473955718..370f6ade0 100644 --- a/src/main/java/com/box/sdkgen/schemas/uploadparts/UploadPartsOrderField.java +++ b/src/main/java/com/box/sdkgen/schemas/uploadparts/UploadPartsOrderField.java @@ -11,8 +11,10 @@ @JsonFilter("nullablePropertyFilter") public class UploadPartsOrderField extends SerializableObject { + /** The field to order by. */ protected String by; + /** The direction to order by, either ascending or descending. */ @JsonDeserialize( using = UploadPartsOrderDirectionField.UploadPartsOrderDirectionFieldDeserializer.class) @JsonSerialize( diff --git a/src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSession.java b/src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSession.java index 053e1d132..9276f593f 100644 --- a/src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSession.java +++ b/src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSession.java @@ -11,26 +11,45 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** An upload session for chunk uploading a file. */ @JsonFilter("nullablePropertyFilter") public class UploadSession extends SerializableObject { + /** The unique identifier for this session. */ protected String id; + /** The value will always be `upload_session`. */ @JsonDeserialize(using = UploadSessionTypeField.UploadSessionTypeFieldDeserializer.class) @JsonSerialize(using = UploadSessionTypeField.UploadSessionTypeFieldSerializer.class) protected EnumWrapper type; + /** The date and time when this session expires. */ @JsonProperty("session_expires_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime sessionExpiresAt; + /** + * The size in bytes that must be used for all parts of of the upload. + * + *

    Only the last part is allowed to be of a smaller size. + */ @JsonProperty("part_size") protected Long partSize; + /** + * The total number of parts expected in this upload session, as determined by the file size and + * part size. + */ @JsonProperty("total_parts") protected Integer totalParts; + /** + * The number of parts that have been uploaded and processed by the server. This starts at `0`. + * + *

    When committing a file files, inspecting this property can provide insight if all parts have + * been uploaded correctly. + */ @JsonProperty("num_parts_processed") protected Integer numPartsProcessed; diff --git a/src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSessionSessionEndpointsField.java b/src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSessionSessionEndpointsField.java index 2bdc99747..11c205c5f 100644 --- a/src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSessionSessionEndpointsField.java +++ b/src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSessionSessionEndpointsField.java @@ -9,18 +9,24 @@ @JsonFilter("nullablePropertyFilter") public class UploadSessionSessionEndpointsField extends SerializableObject { + /** The URL to upload parts to. */ @JsonProperty("upload_part") protected String uploadPart; + /** The URL used to commit the file. */ protected String commit; + /** The URL for used to abort the session. */ protected String abort; + /** The URL users to list all parts. */ @JsonProperty("list_parts") protected String listParts; + /** The URL used to get the status of the upload. */ protected String status; + /** The URL used to get the upload log from. */ @JsonProperty("log_event") protected String logEvent; diff --git a/src/main/java/com/box/sdkgen/schemas/uploadurl/UploadUrl.java b/src/main/java/com/box/sdkgen/schemas/uploadurl/UploadUrl.java index 1d5b411ea..8641d817b 100644 --- a/src/main/java/com/box/sdkgen/schemas/uploadurl/UploadUrl.java +++ b/src/main/java/com/box/sdkgen/schemas/uploadurl/UploadUrl.java @@ -6,12 +6,15 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** The details for the upload session for the file. */ @JsonFilter("nullablePropertyFilter") public class UploadUrl extends SerializableObject { + /** A URL for an upload session that can be used to upload the file. */ @JsonProperty("upload_url") protected String uploadUrl; + /** An optional access token to use to upload the file. */ @JsonProperty("upload_token") protected String uploadToken; diff --git a/src/main/java/com/box/sdkgen/schemas/user/User.java b/src/main/java/com/box/sdkgen/schemas/user/User.java index c0af7fc51..74c17b4e3 100644 --- a/src/main/java/com/box/sdkgen/schemas/user/User.java +++ b/src/main/java/com/box/sdkgen/schemas/user/User.java @@ -12,46 +12,67 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** A standard representation of a user, as returned from any user API endpoints by default. */ @JsonFilter("nullablePropertyFilter") public class User extends UserMini { + /** When the user object was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** When the user object was last modified. */ @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime modifiedAt; + /** + * The language of the user, formatted in modified version of the [ISO + * 639-1](/guides/api-calls/language-codes) format. + */ protected String language; + /** The user's timezone. */ protected String timezone; + /** The user’s total available space amount in bytes. */ @JsonProperty("space_amount") protected Long spaceAmount; + /** The amount of space in use by the user. */ @JsonProperty("space_used") protected Long spaceUsed; + /** The maximum individual file size in bytes the user can have. */ @JsonProperty("max_upload_size") protected Long maxUploadSize; + /** The user's account status. */ @JsonDeserialize(using = UserStatusField.UserStatusFieldDeserializer.class) @JsonSerialize(using = UserStatusField.UserStatusFieldSerializer.class) protected EnumWrapper status; + /** The user’s job title. */ @JsonProperty("job_title") protected String jobTitle; + /** The user’s phone number. */ protected String phone; + /** The user’s address. */ protected String address; + /** URL of the user’s avatar image. */ @JsonProperty("avatar_url") protected String avatarUrl; + /** + * An alternate notification email address to which email notifications are sent. When it's + * confirmed, this will be the email address to which notifications are sent instead of to the + * primary email address. + */ @JsonProperty("notification_email") @Nullable protected UserNotificationEmailField notificationEmail; diff --git a/src/main/java/com/box/sdkgen/schemas/user/UserNotificationEmailField.java b/src/main/java/com/box/sdkgen/schemas/user/UserNotificationEmailField.java index 14001d55f..485ca5096 100644 --- a/src/main/java/com/box/sdkgen/schemas/user/UserNotificationEmailField.java +++ b/src/main/java/com/box/sdkgen/schemas/user/UserNotificationEmailField.java @@ -9,8 +9,10 @@ @JsonFilter("nullablePropertyFilter") public class UserNotificationEmailField extends SerializableObject { + /** The email address to send the notifications to. */ protected String email; + /** Specifies if this email address has been confirmed. */ @JsonProperty("is_confirmed") protected Boolean isConfirmed; diff --git a/src/main/java/com/box/sdkgen/schemas/useravatar/UserAvatar.java b/src/main/java/com/box/sdkgen/schemas/useravatar/UserAvatar.java index 4512ecff5..c66bef8d0 100644 --- a/src/main/java/com/box/sdkgen/schemas/useravatar/UserAvatar.java +++ b/src/main/java/com/box/sdkgen/schemas/useravatar/UserAvatar.java @@ -6,9 +6,11 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** A resource holding URLs to the avatar uploaded to a Box application. */ @JsonFilter("nullablePropertyFilter") public class UserAvatar extends SerializableObject { + /** Represents an object with user avatar URLs. */ @JsonProperty("pic_urls") protected UserAvatarPicUrlsField picUrls; diff --git a/src/main/java/com/box/sdkgen/schemas/useravatar/UserAvatarPicUrlsField.java b/src/main/java/com/box/sdkgen/schemas/useravatar/UserAvatarPicUrlsField.java index b68bfb85e..3f35a3b52 100644 --- a/src/main/java/com/box/sdkgen/schemas/useravatar/UserAvatarPicUrlsField.java +++ b/src/main/java/com/box/sdkgen/schemas/useravatar/UserAvatarPicUrlsField.java @@ -8,10 +8,13 @@ @JsonFilter("nullablePropertyFilter") public class UserAvatarPicUrlsField extends SerializableObject { + /** The location of a small-sized avatar. */ protected String small; + /** The location of a large-sized avatar. */ protected String large; + /** The location of the avatar preview. */ protected String preview; public UserAvatarPicUrlsField() { diff --git a/src/main/java/com/box/sdkgen/schemas/userbase/UserBase.java b/src/main/java/com/box/sdkgen/schemas/userbase/UserBase.java index 94644f834..3e59cf0c8 100644 --- a/src/main/java/com/box/sdkgen/schemas/userbase/UserBase.java +++ b/src/main/java/com/box/sdkgen/schemas/userbase/UserBase.java @@ -9,11 +9,14 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** A mini representation of a user, used when nested within another resource. */ @JsonFilter("nullablePropertyFilter") public class UserBase extends SerializableObject { + /** The unique identifier for this user. */ protected final String id; + /** The value will always be `user`. */ @JsonDeserialize(using = UserBaseTypeField.UserBaseTypeFieldDeserializer.class) @JsonSerialize(using = UserBaseTypeField.UserBaseTypeFieldSerializer.class) protected EnumWrapper type; diff --git a/src/main/java/com/box/sdkgen/schemas/usercollaborations/UserCollaborations.java b/src/main/java/com/box/sdkgen/schemas/usercollaborations/UserCollaborations.java index 60438c32c..8a08e2196 100644 --- a/src/main/java/com/box/sdkgen/schemas/usercollaborations/UserCollaborations.java +++ b/src/main/java/com/box/sdkgen/schemas/usercollaborations/UserCollaborations.java @@ -7,13 +7,23 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** A mini representation of a user, can be returned only when the status is `pending`. */ @JsonFilter("nullablePropertyFilter") public class UserCollaborations extends UserBase { + /** + * The display name of this user. If the collaboration status is `pending`, an empty string is + * returned. + */ protected String name; + /** + * The primary email address of this user. If the collaboration status is `pending`, an empty + * string is returned. + */ protected String login; + /** If set to `false`, the user is either deactivated or deleted. */ @JsonProperty("is_active") protected Boolean isActive; diff --git a/src/main/java/com/box/sdkgen/schemas/userfull/UserFull.java b/src/main/java/com/box/sdkgen/schemas/userfull/UserFull.java index 00e61186d..803f2ddf1 100644 --- a/src/main/java/com/box/sdkgen/schemas/userfull/UserFull.java +++ b/src/main/java/com/box/sdkgen/schemas/userfull/UserFull.java @@ -14,41 +14,63 @@ import java.util.List; import java.util.Objects; +/** A full representation of a user, as can be returned from any user API endpoint. */ @JsonFilter("nullablePropertyFilter") public class UserFull extends User { + /** The user’s enterprise role. */ @JsonDeserialize(using = UserFullRoleField.UserFullRoleFieldDeserializer.class) @JsonSerialize(using = UserFullRoleField.UserFullRoleFieldSerializer.class) protected EnumWrapper role; + /** + * Tracking codes allow an admin to generate reports from the admin console and assign an + * attribute to a specific group of users. This setting must be enabled for an enterprise before + * it can be used. + */ @JsonProperty("tracking_codes") protected List trackingCodes; + /** Whether the user can see other enterprise users in their contact list. */ @JsonProperty("can_see_managed_users") protected Boolean canSeeManagedUsers; + /** Whether the user can use Box Sync. */ @JsonProperty("is_sync_enabled") protected Boolean isSyncEnabled; + /** Whether the user is allowed to collaborate with users outside their enterprise. */ @JsonProperty("is_external_collab_restricted") protected Boolean isExternalCollabRestricted; + /** Whether to exempt the user from Enterprise device limits. */ @JsonProperty("is_exempt_from_device_limits") protected Boolean isExemptFromDeviceLimits; + /** Whether the user must use two-factor authentication. */ @JsonProperty("is_exempt_from_login_verification") protected Boolean isExemptFromLoginVerification; protected UserFullEnterpriseField enterprise; + /** + * Tags for all files and folders owned by the user. Values returned will only contain tags that + * were set by the requester. + */ @JsonProperty("my_tags") protected List myTags; + /** The root (protocol, subdomain, domain) of any links that need to be generated for the user. */ protected String hostname; + /** Whether the user is an App User. */ @JsonProperty("is_platform_access_only") protected Boolean isPlatformAccessOnly; + /** + * An external identifier for an app user, which can be used to look up the user. This can be used + * to tie user IDs from external identity providers to Box users. + */ @JsonProperty("external_app_user_id") protected String externalAppUserId; diff --git a/src/main/java/com/box/sdkgen/schemas/userfull/UserFullEnterpriseField.java b/src/main/java/com/box/sdkgen/schemas/userfull/UserFullEnterpriseField.java index 2194df23c..543b40759 100644 --- a/src/main/java/com/box/sdkgen/schemas/userfull/UserFullEnterpriseField.java +++ b/src/main/java/com/box/sdkgen/schemas/userfull/UserFullEnterpriseField.java @@ -11,13 +11,16 @@ @JsonFilter("nullablePropertyFilter") public class UserFullEnterpriseField extends SerializableObject { + /** The unique identifier for this enterprise. */ protected String id; + /** The value will always be `enterprise`. */ @JsonDeserialize( using = UserFullEnterpriseTypeField.UserFullEnterpriseTypeFieldDeserializer.class) @JsonSerialize(using = UserFullEnterpriseTypeField.UserFullEnterpriseTypeFieldSerializer.class) protected EnumWrapper type; + /** The name of the enterprise. */ protected String name; public UserFullEnterpriseField() { diff --git a/src/main/java/com/box/sdkgen/schemas/userintegrationmappings/UserIntegrationMappings.java b/src/main/java/com/box/sdkgen/schemas/userintegrationmappings/UserIntegrationMappings.java index 24464df1d..431de8dac 100644 --- a/src/main/java/com/box/sdkgen/schemas/userintegrationmappings/UserIntegrationMappings.java +++ b/src/main/java/com/box/sdkgen/schemas/userintegrationmappings/UserIntegrationMappings.java @@ -7,11 +7,17 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** + * A user representation for integration mappings API purposes. Fields name and login are not + * required. + */ @JsonFilter("nullablePropertyFilter") public class UserIntegrationMappings extends UserBase { + /** The display name of this user. */ protected String name; + /** The primary email address of this user. */ protected String login; public UserIntegrationMappings(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/usermini/UserMini.java b/src/main/java/com/box/sdkgen/schemas/usermini/UserMini.java index 613e632e8..b72c2ad2c 100644 --- a/src/main/java/com/box/sdkgen/schemas/usermini/UserMini.java +++ b/src/main/java/com/box/sdkgen/schemas/usermini/UserMini.java @@ -7,11 +7,14 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** A mini representation of a user, as can be returned when nested within other resources. */ @JsonFilter("nullablePropertyFilter") public class UserMini extends UserBase { + /** The display name of this user. */ protected String name; + /** The primary email address of this user. */ protected String login; public UserMini(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/users/Users.java b/src/main/java/com/box/sdkgen/schemas/users/Users.java index cf1a59f23..f237a9a89 100644 --- a/src/main/java/com/box/sdkgen/schemas/users/Users.java +++ b/src/main/java/com/box/sdkgen/schemas/users/Users.java @@ -9,26 +9,54 @@ import java.util.List; import java.util.Objects; +/** A list of users. */ @JsonFilter("nullablePropertyFilter") public class Users extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** The marker for the start of the previous page of results. */ @JsonProperty("prev_marker") @Nullable protected String prevMarker; + /** + * One greater than the offset of the last entry in the entire collection. The total number of + * entries in the collection may be less than `total_count`. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ @JsonProperty("total_count") protected Long totalCount; + /** + * The 0-based offset of the first entry in this set. This will be the same as the `offset` query + * parameter. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ protected Long offset; + /** + * The order by which items are returned. + * + *

    This field is only returned for calls that use offset-based pagination. For marker-based + * paginated APIs, this field will be omitted. + */ protected List order; + /** A list of users. */ protected List entries; public Users() { diff --git a/src/main/java/com/box/sdkgen/schemas/users/UsersOrderField.java b/src/main/java/com/box/sdkgen/schemas/users/UsersOrderField.java index 225df7868..ec0f45ca6 100644 --- a/src/main/java/com/box/sdkgen/schemas/users/UsersOrderField.java +++ b/src/main/java/com/box/sdkgen/schemas/users/UsersOrderField.java @@ -11,8 +11,10 @@ @JsonFilter("nullablePropertyFilter") public class UsersOrderField extends SerializableObject { + /** The field to order by. */ protected String by; + /** The direction to order by, either ascending or descending. */ @JsonDeserialize(using = UsersOrderDirectionField.UsersOrderDirectionFieldDeserializer.class) @JsonSerialize(using = UsersOrderDirectionField.UsersOrderDirectionFieldSerializer.class) protected EnumWrapper direction; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/archivesv2025r0/ArchivesV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/archivesv2025r0/ArchivesV2025R0.java index 687f6e500..89d24d5b2 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/archivesv2025r0/ArchivesV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/archivesv2025r0/ArchivesV2025R0.java @@ -9,13 +9,20 @@ import java.util.List; import java.util.Objects; +/** A list of archives. */ @JsonFilter("nullablePropertyFilter") public class ArchivesV2025R0 extends SerializableObject { + /** A list in which each entry represents an archive object. */ protected List entries; + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0.java index da2be4bf2..95b25762b 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0.java @@ -9,17 +9,32 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** + * An archive is a folder dedicated to storing content that is redundant, outdated, or trivial. + * Content in an archive is not accessible to its owner and collaborators. To use this feature, you + * must request GCM scope for your Box application. + */ @JsonFilter("nullablePropertyFilter") public class ArchiveV2025R0 extends SerializableObject { + /** The unique identifier that represents an archive. */ protected final String id; + /** The value will always be `archive`. */ @JsonDeserialize(using = ArchiveV2025R0TypeField.ArchiveV2025R0TypeFieldDeserializer.class) @JsonSerialize(using = ArchiveV2025R0TypeField.ArchiveV2025R0TypeFieldSerializer.class) protected EnumWrapper type; + /** + * The name of the archive. + * + *

    The following restrictions to the archive name apply: names containing non-printable ASCII + * characters, forward and backward slashes (`/`, `\`), names with trailing spaces, and names `.` + * and `..` are not allowed. + */ protected final String name; + /** The size of the archive in bytes. */ protected final long size; public ArchiveV2025R0( diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/clienterrorv2025r0/ClientErrorV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/clienterrorv2025r0/ClientErrorV2025R0.java index a444b89a0..1985bbc76 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/clienterrorv2025r0/ClientErrorV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/clienterrorv2025r0/ClientErrorV2025R0.java @@ -11,30 +11,41 @@ import java.util.Map; import java.util.Objects; +/** A generic error. */ @JsonFilter("nullablePropertyFilter") public class ClientErrorV2025R0 extends SerializableObject { + /** The value will always be `error`. */ @JsonDeserialize( using = ClientErrorV2025R0TypeField.ClientErrorV2025R0TypeFieldDeserializer.class) @JsonSerialize(using = ClientErrorV2025R0TypeField.ClientErrorV2025R0TypeFieldSerializer.class) protected EnumWrapper type; + /** The HTTP status of the response. */ protected Integer status; + /** A Box-specific error code. */ @JsonDeserialize( using = ClientErrorV2025R0CodeField.ClientErrorV2025R0CodeFieldDeserializer.class) @JsonSerialize(using = ClientErrorV2025R0CodeField.ClientErrorV2025R0CodeFieldSerializer.class) protected EnumWrapper code; + /** A short message describing the error. */ protected String message; + /** + * A free-form object that contains additional context about the error. The possible fields are + * defined on a per-endpoint basis. `message` is only one example. + */ @JsonProperty("context_info") @Nullable protected Map contextInfo; + /** A URL that links to more information about why this error occurred. */ @JsonProperty("help_url") protected String helpUrl; + /** A unique identifier for this response, which can be used when contacting Box support. */ @JsonProperty("request_id") protected String requestId; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchbasev2025r0/DocGenBatchBaseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchbasev2025r0/DocGenBatchBaseV2025R0.java index 6770e3f94..58155b829 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchbasev2025r0/DocGenBatchBaseV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchbasev2025r0/DocGenBatchBaseV2025R0.java @@ -9,11 +9,17 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** + * The basic representation of a Box Doc Gen batch object. A Box Doc Gen batch contains one or more + * Box Doc Gen jobs. + */ @JsonFilter("nullablePropertyFilter") public class DocGenBatchBaseV2025R0 extends SerializableObject { + /** The unique identifier that represents a Box Doc Gen batch. */ protected final String id; + /** The value will always be `docgen_batch`. */ @JsonDeserialize( using = DocGenBatchBaseV2025R0TypeField.DocGenBatchBaseV2025R0TypeFieldDeserializer.class) @JsonSerialize( diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0.java index efcc42a46..72be43248 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0.java @@ -10,6 +10,7 @@ import java.util.List; import java.util.Objects; +/** The schema for creating a Box Doc Gen job batch request. */ @JsonFilter("nullablePropertyFilter") public class DocGenBatchCreateRequestV2025R0 extends SerializableObject { @@ -18,12 +19,16 @@ public class DocGenBatchCreateRequestV2025R0 extends SerializableObject { @JsonProperty("file_version") protected FileVersionBaseV2025R0 fileVersion; + /** + * Source of input. The value has to be `api` for all the API-based document generation requests. + */ @JsonProperty("input_source") protected final String inputSource; @JsonProperty("destination_folder") protected final DocGenBatchCreateRequestV2025R0DestinationFolderField destinationFolder; + /** Type of the output file. */ @JsonProperty("output_type") protected final String outputType; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0DestinationFolderField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0DestinationFolderField.java index c30df1c1d..489240090 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0DestinationFolderField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0DestinationFolderField.java @@ -12,6 +12,7 @@ @JsonFilter("nullablePropertyFilter") public class DocGenBatchCreateRequestV2025R0DestinationFolderField extends SerializableObject { + /** The value will always be `folder`. */ @JsonDeserialize( using = DocGenBatchCreateRequestV2025R0DestinationFolderTypeField @@ -22,6 +23,7 @@ public class DocGenBatchCreateRequestV2025R0DestinationFolderField extends Seria .DocGenBatchCreateRequestV2025R0DestinationFolderTypeFieldSerializer.class) protected EnumWrapper type; + /** ID of the folder. */ protected final String id; public DocGenBatchCreateRequestV2025R0DestinationFolderField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgendocumentgenerationdatav2025r0/DocGenDocumentGenerationDataV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgendocumentgenerationdatav2025r0/DocGenDocumentGenerationDataV2025R0.java index 70e616f9c..b6bd784aa 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgendocumentgenerationdatav2025r0/DocGenDocumentGenerationDataV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgendocumentgenerationdatav2025r0/DocGenDocumentGenerationDataV2025R0.java @@ -6,9 +6,11 @@ import java.util.Map; import java.util.Objects; +/** The schema for for creating a Box Doc Gen job request. */ @JsonFilter("nullablePropertyFilter") public class DocGenDocumentGenerationDataV2025R0 extends SerializableObject { + /** File name of the output file. */ @JsonProperty("generated_file_name") protected final String generatedFileName; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobbasev2025r0/DocGenJobBaseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobbasev2025r0/DocGenJobBaseV2025R0.java index 23f22df42..d5f2408da 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobbasev2025r0/DocGenJobBaseV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobbasev2025r0/DocGenJobBaseV2025R0.java @@ -9,11 +9,14 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** The basic representation of a Box Doc Gen job. */ @JsonFilter("nullablePropertyFilter") public class DocGenJobBaseV2025R0 extends SerializableObject { + /** The unique identifier that represent a Box Doc Gen job. */ protected final String id; + /** The value will always be `docgen_job`. */ @JsonDeserialize( using = DocGenJobBaseV2025R0TypeField.DocGenJobBaseV2025R0TypeFieldDeserializer.class) @JsonSerialize( diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobfullv2025r0/DocGenJobFullV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobfullv2025r0/DocGenJobFullV2025R0.java index 528147353..521a13701 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobfullv2025r0/DocGenJobFullV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobfullv2025r0/DocGenJobFullV2025R0.java @@ -13,9 +13,11 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** A full representation of a Box Doc Gen job. */ @JsonFilter("nullablePropertyFilter") public class DocGenJobFullV2025R0 extends DocGenJobV2025R0 { + /** Time of job creation. */ @JsonProperty("created_at") protected String createdAt; @@ -24,6 +26,7 @@ public class DocGenJobFullV2025R0 extends DocGenJobV2025R0 { protected final EnterpriseReferenceV2025R0 enterprise; + /** Source of the request. */ protected final String source; public DocGenJobFullV2025R0( diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobsfullv2025r0/DocGenJobsFullV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobsfullv2025r0/DocGenJobsFullV2025R0.java index a5ff1254f..77fccf5d8 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobsfullv2025r0/DocGenJobsFullV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobsfullv2025r0/DocGenJobsFullV2025R0.java @@ -9,19 +9,27 @@ import java.util.List; import java.util.Objects; +/** A list of Box Doc Gen jobs with a full set of parameters. */ @JsonFilter("nullablePropertyFilter") public class DocGenJobsFullV2025R0 extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** The marker for the start of the previous page of results. */ @JsonProperty("prev_marker") @Nullable protected String prevMarker; + /** List of jobs. */ protected List entries; public DocGenJobsFullV2025R0() { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobsv2025r0/DocGenJobsV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobsv2025r0/DocGenJobsV2025R0.java index bcabc031d..713c2ab4f 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobsv2025r0/DocGenJobsV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobsv2025r0/DocGenJobsV2025R0.java @@ -9,19 +9,27 @@ import java.util.List; import java.util.Objects; +/** A list of Box Doc Gen jobs with a standard set of parameters. */ @JsonFilter("nullablePropertyFilter") public class DocGenJobsV2025R0 extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** The marker for the start of the previous page of results. */ @JsonProperty("prev_marker") @Nullable protected String prevMarker; + /** List of jobs. */ protected List entries; public DocGenJobsV2025R0() { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0.java index 54ccb06c1..37e50d6fc 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0.java @@ -12,6 +12,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** A standard representation of a Box Doc Gen job. */ @JsonFilter("nullablePropertyFilter") public class DocGenJobV2025R0 extends DocGenJobBaseV2025R0 { @@ -29,11 +30,13 @@ public class DocGenJobV2025R0 extends DocGenJobBaseV2025R0 { @JsonProperty("output_file_version") protected FileVersionBaseV2025R0 outputFileVersion; + /** Status of the job. */ @JsonDeserialize( using = DocGenJobV2025R0StatusField.DocGenJobV2025R0StatusFieldDeserializer.class) @JsonSerialize(using = DocGenJobV2025R0StatusField.DocGenJobV2025R0StatusFieldSerializer.class) protected final EnumWrapper status; + /** Type of the generated file. */ @JsonProperty("output_type") protected final String outputType; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagsprocessingmessagev2025r0/DocGenTagsProcessingMessageV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagsprocessingmessagev2025r0/DocGenTagsProcessingMessageV2025R0.java index 60ef7be99..1fbc61978 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagsprocessingmessagev2025r0/DocGenTagsProcessingMessageV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagsprocessingmessagev2025r0/DocGenTagsProcessingMessageV2025R0.java @@ -5,9 +5,11 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** A message informing the user that document tags are still being processed. */ @JsonFilter("nullablePropertyFilter") public class DocGenTagsProcessingMessageV2025R0 extends SerializableObject { + /** A message informing the user that document tags are still being processed. */ protected final String message; public DocGenTagsProcessingMessageV2025R0(@JsonProperty("message") String message) { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagsv2025r0/DocGenTagsV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagsv2025r0/DocGenTagsV2025R0.java index 3a9b6c564..ef1cf09e6 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagsv2025r0/DocGenTagsV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagsv2025r0/DocGenTagsV2025R0.java @@ -9,19 +9,27 @@ import java.util.List; import java.util.Objects; +/** A list of Box Doc Gen tags. */ @JsonFilter("nullablePropertyFilter") public class DocGenTagsV2025R0 extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** The marker for the start of the previous page of results. */ @JsonProperty("prev_marker") @Nullable protected String prevMarker; + /** List of tags. */ protected List entries; public DocGenTagsV2025R0() { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagv2025r0/DocGenTagV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagv2025r0/DocGenTagV2025R0.java index 75e6fb9ae..b137b7009 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagv2025r0/DocGenTagV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagv2025r0/DocGenTagV2025R0.java @@ -9,18 +9,22 @@ import java.util.List; import java.util.Objects; +/** A Box Doc Gen template tag object. */ @JsonFilter("nullablePropertyFilter") public class DocGenTagV2025R0 extends SerializableObject { + /** The content of the tag. */ @JsonProperty("tag_content") protected final String tagContent; + /** Type of the tag. */ @JsonDeserialize( using = DocGenTagV2025R0TagTypeField.DocGenTagV2025R0TagTypeFieldDeserializer.class) @JsonSerialize(using = DocGenTagV2025R0TagTypeField.DocGenTagV2025R0TagTypeFieldSerializer.class) @JsonProperty("tag_type") protected final EnumWrapper tagType; + /** List of the paths. */ @JsonProperty("json_paths") protected final List jsonPaths; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatebasev2025r0/DocGenTemplateBaseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatebasev2025r0/DocGenTemplateBaseV2025R0.java index 771b81217..12b96d826 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatebasev2025r0/DocGenTemplateBaseV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatebasev2025r0/DocGenTemplateBaseV2025R0.java @@ -6,6 +6,7 @@ import com.fasterxml.jackson.annotation.JsonFilter; import java.util.Objects; +/** A base representation of a Box Doc Gen template, used when nested within another resource. */ @JsonFilter("nullablePropertyFilter") public class DocGenTemplateBaseV2025R0 extends SerializableObject { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatecreaterequestv2025r0/DocGenTemplateCreateRequestV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatecreaterequestv2025r0/DocGenTemplateCreateRequestV2025R0.java index 9e53813c8..def20859f 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatecreaterequestv2025r0/DocGenTemplateCreateRequestV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatecreaterequestv2025r0/DocGenTemplateCreateRequestV2025R0.java @@ -6,6 +6,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** The schema for marking document as Box Doc Gen template. */ @JsonFilter("nullablePropertyFilter") public class DocGenTemplateCreateRequestV2025R0 extends SerializableObject { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatesv2025r0/DocGenTemplatesV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatesv2025r0/DocGenTemplatesV2025R0.java index c77ac9c1f..38842f639 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatesv2025r0/DocGenTemplatesV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatesv2025r0/DocGenTemplatesV2025R0.java @@ -9,19 +9,27 @@ import java.util.List; import java.util.Objects; +/** List of Box Doc Gen templates. */ @JsonFilter("nullablePropertyFilter") public class DocGenTemplatesV2025R0 extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** The marker for the start of the previous page of results. */ @JsonProperty("prev_marker") @Nullable protected String prevMarker; + /** A list of templates. */ protected List entries; public DocGenTemplatesV2025R0() { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatev2025r0/DocGenTemplateV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatev2025r0/DocGenTemplateV2025R0.java index c5146d11d..65c0e4ff7 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatev2025r0/DocGenTemplateV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentemplatev2025r0/DocGenTemplateV2025R0.java @@ -7,9 +7,11 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** A Box Doc Gen template object. */ @JsonFilter("nullablePropertyFilter") public class DocGenTemplateV2025R0 extends DocGenTemplateBaseV2025R0 { + /** The name of the template. */ @JsonProperty("file_name") @Nullable protected String fileName; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisereferencev2025r0/EnterpriseReferenceV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisereferencev2025r0/EnterpriseReferenceV2025R0.java index 79f8b5921..2172466cb 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisereferencev2025r0/EnterpriseReferenceV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisereferencev2025r0/EnterpriseReferenceV2025R0.java @@ -8,11 +8,14 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** A reference to an enterprise, used when nested within another resource. */ @JsonFilter("nullablePropertyFilter") public class EnterpriseReferenceV2025R0 extends SerializableObject { + /** The unique identifier for this enterprise. */ protected String id; + /** The value will always be `enterprise`. */ @JsonDeserialize( using = EnterpriseReferenceV2025R0TypeField.EnterpriseReferenceV2025R0TypeFieldDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/externaluserdeletionresultv2025r0/ExternalUserDeletionResultV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/externaluserdeletionresultv2025r0/ExternalUserDeletionResultV2025R0.java index 4d3d37651..86206f963 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/externaluserdeletionresultv2025r0/ExternalUserDeletionResultV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/externaluserdeletionresultv2025r0/ExternalUserDeletionResultV2025R0.java @@ -6,14 +6,21 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** Result of a single external user deletion request. */ @JsonFilter("nullablePropertyFilter") public class ExternalUserDeletionResultV2025R0 extends SerializableObject { + /** The ID of the external user. */ @JsonProperty("user_id") protected final String userId; + /** HTTP status code for a specific user's deletion request. */ protected final long status; + /** + * Deletion request status details. This property is only present when the deletion request is not + * successful. + */ protected String detail; public ExternalUserDeletionResultV2025R0( diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/externaluserssubmitdeletejobrequestv2025r0/ExternalUsersSubmitDeleteJobRequestV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/externaluserssubmitdeletejobrequestv2025r0/ExternalUsersSubmitDeleteJobRequestV2025R0.java index e491e4a81..feca8ffc1 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/externaluserssubmitdeletejobrequestv2025r0/ExternalUsersSubmitDeleteJobRequestV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/externaluserssubmitdeletejobrequestv2025r0/ExternalUsersSubmitDeleteJobRequestV2025R0.java @@ -7,9 +7,11 @@ import java.util.List; import java.util.Objects; +/** Request to submit a job to delete external users from the current enterprise. */ @JsonFilter("nullablePropertyFilter") public class ExternalUsersSubmitDeleteJobRequestV2025R0 extends SerializableObject { + /** List of external users to delete. */ @JsonProperty("external_users") protected final List externalUsers; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/externaluserssubmitdeletejobresponsev2025r0/ExternalUsersSubmitDeleteJobResponseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/externaluserssubmitdeletejobresponsev2025r0/ExternalUsersSubmitDeleteJobResponseV2025R0.java index 2f60dc80a..9a919bfe1 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/externaluserssubmitdeletejobresponsev2025r0/ExternalUsersSubmitDeleteJobResponseV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/externaluserssubmitdeletejobresponsev2025r0/ExternalUsersSubmitDeleteJobResponseV2025R0.java @@ -7,9 +7,11 @@ import java.util.List; import java.util.Objects; +/** Multi-status response containing the result for each external user deletion request. */ @JsonFilter("nullablePropertyFilter") public class ExternalUsersSubmitDeleteJobResponseV2025R0 extends SerializableObject { + /** Array of results of each external user deletion request. */ protected final List entries; public ExternalUsersSubmitDeleteJobResponseV2025R0( diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/filereferencev2025r0/FileReferenceV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/filereferencev2025r0/FileReferenceV2025R0.java index 51808da23..6f6ffd780 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/filereferencev2025r0/FileReferenceV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/filereferencev2025r0/FileReferenceV2025R0.java @@ -9,15 +9,18 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** File reference. */ @JsonFilter("nullablePropertyFilter") public class FileReferenceV2025R0 extends SerializableObject { + /** The value will always be `file`. */ @JsonDeserialize( using = FileReferenceV2025R0TypeField.FileReferenceV2025R0TypeFieldDeserializer.class) @JsonSerialize( using = FileReferenceV2025R0TypeField.FileReferenceV2025R0TypeFieldSerializer.class) protected EnumWrapper type; + /** ID of the object. */ protected final String id; public FileReferenceV2025R0(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/fileversionbasev2025r0/FileVersionBaseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/fileversionbasev2025r0/FileVersionBaseV2025R0.java index a80f6fe14..6f5abf79d 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/fileversionbasev2025r0/FileVersionBaseV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/fileversionbasev2025r0/FileVersionBaseV2025R0.java @@ -9,11 +9,17 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** + * The bare basic representation of a file version, the minimal amount of fields returned when using + * the `fields` query parameter. + */ @JsonFilter("nullablePropertyFilter") public class FileVersionBaseV2025R0 extends SerializableObject { + /** The unique identifier that represent a file version. */ protected final String id; + /** The value will always be `file_version`. */ @JsonDeserialize( using = FileVersionBaseV2025R0TypeField.FileVersionBaseV2025R0TypeFieldDeserializer.class) @JsonSerialize( diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/folderreferencev2025r0/FolderReferenceV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/folderreferencev2025r0/FolderReferenceV2025R0.java index 0065d51ca..1a058b053 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/folderreferencev2025r0/FolderReferenceV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/folderreferencev2025r0/FolderReferenceV2025R0.java @@ -9,15 +9,18 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** Folder reference. */ @JsonFilter("nullablePropertyFilter") public class FolderReferenceV2025R0 extends SerializableObject { + /** The value will always be `folder`. */ @JsonDeserialize( using = FolderReferenceV2025R0TypeField.FolderReferenceV2025R0TypeFieldDeserializer.class) @JsonSerialize( using = FolderReferenceV2025R0TypeField.FolderReferenceV2025R0TypeFieldSerializer.class) protected EnumWrapper type; + /** ID of the folder. */ protected final String id; public FolderReferenceV2025R0(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/groupbasev2025r0/GroupBaseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/groupbasev2025r0/GroupBaseV2025R0.java index 2b7e4a77c..4d18f1ff5 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/groupbasev2025r0/GroupBaseV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/groupbasev2025r0/GroupBaseV2025R0.java @@ -9,11 +9,14 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** A base representation of a group. */ @JsonFilter("nullablePropertyFilter") public class GroupBaseV2025R0 extends SerializableObject { + /** The unique identifier for this object. */ protected final String id; + /** The value will always be `group`. */ @JsonDeserialize(using = GroupBaseV2025R0TypeField.GroupBaseV2025R0TypeFieldDeserializer.class) @JsonSerialize(using = GroupBaseV2025R0TypeField.GroupBaseV2025R0TypeFieldSerializer.class) protected EnumWrapper type; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/groupminiv2025r0/GroupMiniV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/groupminiv2025r0/GroupMiniV2025R0.java index e364d6fea..8708dcc70 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/groupminiv2025r0/GroupMiniV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/groupminiv2025r0/GroupMiniV2025R0.java @@ -9,11 +9,14 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** Mini representation of a group, including id and name of group. */ @JsonFilter("nullablePropertyFilter") public class GroupMiniV2025R0 extends GroupBaseV2025R0 { + /** The name of the group. */ protected String name; + /** The type of the group. */ @JsonDeserialize( using = GroupMiniV2025R0GroupTypeField.GroupMiniV2025R0GroupTypeFieldDeserializer.class) @JsonSerialize( diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubbasev2025r0/HubBaseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubbasev2025r0/HubBaseV2025R0.java index 294eef8f9..576942578 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubbasev2025r0/HubBaseV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubbasev2025r0/HubBaseV2025R0.java @@ -9,11 +9,20 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** The bare basic representation of a Box Hub. */ @JsonFilter("nullablePropertyFilter") public class HubBaseV2025R0 extends SerializableObject { + /** + * The unique identifier that represent a Box Hub. + * + *

    The ID for any Box Hub can be determined by visiting a Box Hub in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/hubs/123` the + * `hub_id` is `123`. + */ protected final String id; + /** The value will always be `hubs`. */ @JsonDeserialize(using = HubBaseV2025R0TypeField.HubBaseV2025R0TypeFieldDeserializer.class) @JsonSerialize(using = HubBaseV2025R0TypeField.HubBaseV2025R0TypeFieldSerializer.class) protected EnumWrapper type; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0.java index 83a8ba164..07870de88 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0.java @@ -5,14 +5,21 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** Request body for creating a new Box Hub collaboration. */ @JsonFilter("nullablePropertyFilter") public class HubCollaborationCreateRequestV2025R0 extends SerializableObject { + /** Box Hubs reference. */ protected final HubCollaborationCreateRequestV2025R0HubField hub; + /** The user or group who gets access to the item. */ @JsonProperty("accessible_by") protected final HubCollaborationCreateRequestV2025R0AccessibleByField accessibleBy; + /** + * The level of access granted to a Box Hub. Possible values are `editor`, `viewer`, and + * `co-owner`. + */ protected final String role; public HubCollaborationCreateRequestV2025R0( diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0AccessibleByField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0AccessibleByField.java index dcbc90f3f..74161649f 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0AccessibleByField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0AccessibleByField.java @@ -9,10 +9,21 @@ @JsonFilter("nullablePropertyFilter") public class HubCollaborationCreateRequestV2025R0AccessibleByField extends SerializableObject { + /** The type of collaborator to invite. Possible values are `user` or `group`. */ protected final String type; + /** + * The ID of the user or group. + * + *

    Alternatively, use `login` to specify a user by email address. + */ protected String id; + /** + * The email address of the user who gets access to the item. + * + *

    Alternatively, use `id` to specify a user by user ID. + */ protected String login; public HubCollaborationCreateRequestV2025R0AccessibleByField(@JsonProperty("type") String type) { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0HubField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0HubField.java index c32a65281..3808a3335 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0HubField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0HubField.java @@ -12,6 +12,7 @@ @JsonFilter("nullablePropertyFilter") public class HubCollaborationCreateRequestV2025R0HubField extends SerializableObject { + /** The value will always be `hubs`. */ @JsonDeserialize( using = HubCollaborationCreateRequestV2025R0HubTypeField @@ -22,6 +23,7 @@ public class HubCollaborationCreateRequestV2025R0HubField extends SerializableOb .HubCollaborationCreateRequestV2025R0HubTypeFieldSerializer.class) protected EnumWrapper type; + /** ID of the object. */ protected final String id; public HubCollaborationCreateRequestV2025R0HubField(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationsv2025r0/HubCollaborationsV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationsv2025r0/HubCollaborationsV2025R0.java index 33d310a15..792e5f787 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationsv2025r0/HubCollaborationsV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationsv2025r0/HubCollaborationsV2025R0.java @@ -9,13 +9,20 @@ import java.util.List; import java.util.Objects; +/** A list of Box Hub collaborations. */ @JsonFilter("nullablePropertyFilter") public class HubCollaborationsV2025R0 extends SerializableObject { + /** A list of Box Hub collaborations. */ protected List entries; + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationupdaterequestv2025r0/HubCollaborationUpdateRequestV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationupdaterequestv2025r0/HubCollaborationUpdateRequestV2025R0.java index dc11cae8d..916709776 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationupdaterequestv2025r0/HubCollaborationUpdateRequestV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationupdaterequestv2025r0/HubCollaborationUpdateRequestV2025R0.java @@ -5,9 +5,14 @@ import com.fasterxml.jackson.annotation.JsonFilter; import java.util.Objects; +/** Request body for updating an existing Box Hub collaboration. */ @JsonFilter("nullablePropertyFilter") public class HubCollaborationUpdateRequestV2025R0 extends SerializableObject { + /** + * The level of access granted to a Box Hub. Possible values are `editor`, `viewer`, and + * `co-owner`. + */ protected String role; public HubCollaborationUpdateRequestV2025R0() { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationuserv2025r0/HubCollaborationUserV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationuserv2025r0/HubCollaborationUserV2025R0.java index 9827e1345..4f432d34e 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationuserv2025r0/HubCollaborationUserV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationuserv2025r0/HubCollaborationUserV2025R0.java @@ -7,11 +7,20 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** A mini representation of a user, can be returned only when the status is `pending`. */ @JsonFilter("nullablePropertyFilter") public class HubCollaborationUserV2025R0 extends UserBaseV2025R0 { + /** + * The display name of this user. If the collaboration status is `pending`, an empty string is + * returned. + */ protected String name; + /** + * The primary email address of this user. If the collaboration status is `pending`, an empty + * string is returned. + */ protected String login; public HubCollaborationUserV2025R0(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0.java index b1912b909..f366531a8 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0.java @@ -13,11 +13,17 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** + * A Box Hub collaboration object grants a user or group access to a Box Hub with permissions + * defined by a specific role. + */ @JsonFilter("nullablePropertyFilter") public class HubCollaborationV2025R0 extends SerializableObject { + /** The unique identifier for this collaboration. */ protected final String id; + /** The value will always be `hub_collaboration`. */ @JsonDeserialize( using = HubCollaborationV2025R0TypeField.HubCollaborationV2025R0TypeFieldDeserializer.class) @JsonSerialize( @@ -29,8 +35,16 @@ public class HubCollaborationV2025R0 extends SerializableObject { @JsonProperty("accessible_by") protected HubAccessGranteeV2025R0 accessibleBy; + /** + * The level of access granted to a Box Hub. Possible values are `editor`, `viewer`, and + * `co-owner`. + */ protected String role; + /** + * The status of the collaboration invitation. If the status is `pending`, `login` and `name` + * return an empty string. + */ @JsonDeserialize( using = HubCollaborationV2025R0StatusField.HubCollaborationV2025R0StatusFieldDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField.java index 48b81ea3a..c127e45e4 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField.java @@ -11,9 +11,17 @@ public class HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField extends SerializableObject { + /** + * Whether or not the enterprise that owns the content requires a strong password to collaborate + * on the content, or enforces an exposed password detection for the external collaborators. + */ @JsonProperty("enterprise_has_strong_password_required_for_external_users") protected Boolean enterpriseHasStrongPasswordRequiredForExternalUsers; + /** + * Whether or not the user has a strong and not exposed password set for their account. The field + * is `null` when a strong password is not required. + */ @JsonProperty("user_has_strong_password") @Nullable protected Boolean userHasStrongPassword; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusTermsOfServiceRequirementField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusTermsOfServiceRequirementField.java index 276e720e8..b15b3fa94 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusTermsOfServiceRequirementField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusTermsOfServiceRequirementField.java @@ -12,6 +12,10 @@ public class HubCollaborationV2025R0AcceptanceRequirementsStatusTermsOfServiceRequirementField extends SerializableObject { + /** + * Whether or not the terms of service have been accepted. The field is `null` when there is no + * terms of service required. + */ @JsonProperty("is_accepted") @Nullable protected Boolean isAccepted; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField.java index b46a64cb2..8a22b62f9 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0AcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField.java @@ -12,9 +12,17 @@ class HubCollaborationV2025R0AcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField extends SerializableObject { + /** + * Whether or not the enterprise that owns the content requires two-factor authentication to be + * enabled in order to collaborate on the content. + */ @JsonProperty("enterprise_has_two_factor_auth_enabled") protected Boolean enterpriseHasTwoFactorAuthEnabled; + /** + * Whether or not the user has two-factor authentication enabled. The field is `null` when + * two-factor authentication is not required. + */ @JsonProperty("user_has_two_factor_authentication_enabled") @Nullable protected Boolean userHasTwoFactorAuthenticationEnabled; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcopyrequestv2025r0/HubCopyRequestV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcopyrequestv2025r0/HubCopyRequestV2025R0.java index 837bf8ca3..3ceb1c0a9 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcopyrequestv2025r0/HubCopyRequestV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcopyrequestv2025r0/HubCopyRequestV2025R0.java @@ -5,11 +5,14 @@ import com.fasterxml.jackson.annotation.JsonFilter; import java.util.Objects; +/** Request schema for copying a Box Hub. */ @JsonFilter("nullablePropertyFilter") public class HubCopyRequestV2025R0 extends SerializableObject { + /** Title of the Box Hub. It cannot be empty and should be less than 50 characters. */ protected String title; + /** Description of the Box Hub. */ protected String description; public HubCopyRequestV2025R0() { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcreaterequestv2025r0/HubCreateRequestV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcreaterequestv2025r0/HubCreateRequestV2025R0.java index 65e0ba21c..09b09e618 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcreaterequestv2025r0/HubCreateRequestV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcreaterequestv2025r0/HubCreateRequestV2025R0.java @@ -6,11 +6,14 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** Request schema for creating a new Box Hub. */ @JsonFilter("nullablePropertyFilter") public class HubCreateRequestV2025R0 extends SerializableObject { + /** Title of the Box Hub. It cannot be empty and should be less than 50 characters. */ protected final String title; + /** Description of the Box Hub. */ protected String description; public HubCreateRequestV2025R0(@JsonProperty("title") String title) { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationresultv2025r0/HubItemOperationResultV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationresultv2025r0/HubItemOperationResultV2025R0.java index 6867dcfbe..47039d3e4 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationresultv2025r0/HubItemOperationResultV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationresultv2025r0/HubItemOperationResultV2025R0.java @@ -9,15 +9,19 @@ import com.fasterxml.jackson.annotation.JsonFilter; import java.util.Objects; +/** Result of a Box Hub item operation. */ @JsonFilter("nullablePropertyFilter") public class HubItemOperationResultV2025R0 extends SerializableObject { + /** The action performed on the item. */ protected String action; protected HubItemReferenceV2025R0 item; + /** The HTTP status code of the operation. */ protected Long status; + /** Error message if the operation failed. */ protected String error; public HubItemOperationResultV2025R0() { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationv2025r0/HubItemOperationV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationv2025r0/HubItemOperationV2025R0.java index c18ab0122..f5f1cd6bf 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationv2025r0/HubItemOperationV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationv2025r0/HubItemOperationV2025R0.java @@ -12,9 +12,11 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** An operation to perform on a Box Hub item. */ @JsonFilter("nullablePropertyFilter") public class HubItemOperationV2025R0 extends SerializableObject { + /** The action to perform on a Box Hub item. */ @JsonDeserialize( using = HubItemOperationV2025R0ActionField.HubItemOperationV2025R0ActionFieldDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemsmanagerequestv2025r0/HubItemsManageRequestV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemsmanagerequestv2025r0/HubItemsManageRequestV2025R0.java index 2cf7f4ab6..e3892aeeb 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemsmanagerequestv2025r0/HubItemsManageRequestV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemsmanagerequestv2025r0/HubItemsManageRequestV2025R0.java @@ -7,9 +7,11 @@ import java.util.List; import java.util.Objects; +/** Request schema for managing Box Hub items. */ @JsonFilter("nullablePropertyFilter") public class HubItemsManageRequestV2025R0 extends SerializableObject { + /** List of operations to perform on Box Hub items. */ protected List operations; public HubItemsManageRequestV2025R0() { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemsmanageresponsev2025r0/HubItemsManageResponseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemsmanageresponsev2025r0/HubItemsManageResponseV2025R0.java index f7a99c6c5..cc66aacfc 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemsmanageresponsev2025r0/HubItemsManageResponseV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemsmanageresponsev2025r0/HubItemsManageResponseV2025R0.java @@ -7,9 +7,11 @@ import java.util.List; import java.util.Objects; +/** Response schema for the status of Box Hub items management operations. */ @JsonFilter("nullablePropertyFilter") public class HubItemsManageResponseV2025R0 extends SerializableObject { + /** List of operations performed on Box Hub items. */ protected final List operations; public HubItemsManageResponseV2025R0( diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemsv2025r0/HubItemsV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemsv2025r0/HubItemsV2025R0.java index 5839f5f4c..f85567965 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemsv2025r0/HubItemsV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemsv2025r0/HubItemsV2025R0.java @@ -9,13 +9,20 @@ import java.util.List; import java.util.Objects; +/** A list of Box Hub items. */ @JsonFilter("nullablePropertyFilter") public class HubItemsV2025R0 extends SerializableObject { + /** A list of Box Hub items. */ protected List entries; + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemv2025r0/HubItemV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemv2025r0/HubItemV2025R0.java index 7c46fc6e7..ab907eda4 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemv2025r0/HubItemV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemv2025r0/HubItemV2025R0.java @@ -8,15 +8,19 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** A Box Hub Item is a Box Item that is referenced in a Box Hub. */ @JsonFilter("nullablePropertyFilter") public class HubItemV2025R0 extends SerializableObject { + /** The unique identifier for this item. */ protected final String id; + /** The type of the item. */ @JsonDeserialize(using = HubItemV2025R0TypeField.HubItemV2025R0TypeFieldDeserializer.class) @JsonSerialize(using = HubItemV2025R0TypeField.HubItemV2025R0TypeFieldSerializer.class) protected final EnumWrapper type; + /** The name of the item. */ protected final String name; public HubItemV2025R0(String id, HubItemV2025R0TypeField type, String name) { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubsv2025r0/HubsV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubsv2025r0/HubsV2025R0.java index 3d91afa85..9b2ef845e 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubsv2025r0/HubsV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubsv2025r0/HubsV2025R0.java @@ -9,13 +9,20 @@ import java.util.List; import java.util.Objects; +/** A paginated list of hubs. */ @JsonFilter("nullablePropertyFilter") public class HubsV2025R0 extends SerializableObject { + /** A list of hubs. */ protected List entries; + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubupdaterequestv2025r0/HubUpdateRequestV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubupdaterequestv2025r0/HubUpdateRequestV2025R0.java index a05794397..55e067fda 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubupdaterequestv2025r0/HubUpdateRequestV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubupdaterequestv2025r0/HubUpdateRequestV2025R0.java @@ -6,22 +6,29 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** Request schema for updating an existing Box Hub. */ @JsonFilter("nullablePropertyFilter") public class HubUpdateRequestV2025R0 extends SerializableObject { + /** Title of the Box Hub. It cannot be empty and should be less than 50 characters. */ protected String title; + /** Description of the Box Hub. */ protected String description; + /** Indicates if AI features are enabled for the Box Hub. */ @JsonProperty("is_ai_enabled") protected Boolean isAiEnabled; + /** Indicates if collaboration is restricted to the enterprise. */ @JsonProperty("is_collaboration_restricted_to_enterprise") protected Boolean isCollaborationRestrictedToEnterprise; + /** Indicates if non-owners can invite others to the Box Hub. */ @JsonProperty("can_non_owners_invite") protected Boolean canNonOwnersInvite; + /** Indicates if a shared link can be created for the Box Hub. */ @JsonProperty("can_shared_link_be_created") protected Boolean canSharedLinkBeCreated; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0.java index 506235624..055d807a9 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0.java @@ -12,18 +12,28 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** + * A standard representation of a Box Hub, as returned from any Box Hubs API endpoints by default. + */ @JsonFilter("nullablePropertyFilter") public class HubV2025R0 extends HubBaseV2025R0 { + /** The title given to the Box Hub. */ protected String title; + /** The description of the Box Hub. First 200 characters are returned. */ protected String description; + /** + * The date and time when the folder was created. This value may be `null` for some folders such + * as the root folder or the trash folder. + */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** The date and time when the Box Hub was last updated. */ @JsonProperty("updated_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @@ -35,18 +45,23 @@ public class HubV2025R0 extends HubBaseV2025R0 { @JsonProperty("updated_by") protected UserMiniV2025R0 updatedBy; + /** The number of views for the Box Hub. */ @JsonProperty("view_count") protected Integer viewCount; + /** Indicates if AI features are enabled for the Box Hub. */ @JsonProperty("is_ai_enabled") protected Boolean isAiEnabled; + /** Indicates if collaboration is restricted to the enterprise. */ @JsonProperty("is_collaboration_restricted_to_enterprise") protected Boolean isCollaborationRestrictedToEnterprise; + /** Indicates if non-owners can invite others to the Box Hub. */ @JsonProperty("can_non_owners_invite") protected Boolean canNonOwnersInvite; + /** Indicates if a shared link can be created for the Box Hub. */ @JsonProperty("can_shared_link_be_created") protected Boolean canSharedLinkBeCreated; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentcountryv2025r0/ShieldListContentCountryV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentcountryv2025r0/ShieldListContentCountryV2025R0.java index b23a6465d..d41adebd5 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentcountryv2025r0/ShieldListContentCountryV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentcountryv2025r0/ShieldListContentCountryV2025R0.java @@ -10,9 +10,11 @@ import java.util.List; import java.util.Objects; +/** Representation of content of a Shield List that contains countries data. */ @JsonFilter("nullablePropertyFilter") public class ShieldListContentCountryV2025R0 extends SerializableObject { + /** The type of content in the shield list. */ @JsonDeserialize( using = ShieldListContentCountryV2025R0TypeField @@ -23,6 +25,7 @@ public class ShieldListContentCountryV2025R0 extends SerializableObject { .ShieldListContentCountryV2025R0TypeFieldSerializer.class) protected EnumWrapper type; + /** List of country codes values. */ @JsonProperty("country_codes") protected final List countryCodes; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentdomainv2025r0/ShieldListContentDomainV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentdomainv2025r0/ShieldListContentDomainV2025R0.java index bcf57ae56..32a3102b8 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentdomainv2025r0/ShieldListContentDomainV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentdomainv2025r0/ShieldListContentDomainV2025R0.java @@ -10,9 +10,11 @@ import java.util.List; import java.util.Objects; +/** Representation of content of a Shield List that contains domains data. */ @JsonFilter("nullablePropertyFilter") public class ShieldListContentDomainV2025R0 extends SerializableObject { + /** The type of content in the shield list. */ @JsonDeserialize( using = ShieldListContentDomainV2025R0TypeField @@ -23,6 +25,7 @@ public class ShieldListContentDomainV2025R0 extends SerializableObject { .class) protected EnumWrapper type; + /** List of domain. */ protected final List domains; public ShieldListContentDomainV2025R0(@JsonProperty("domains") List domains) { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentemailv2025r0/ShieldListContentEmailV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentemailv2025r0/ShieldListContentEmailV2025R0.java index c8fcbf1b0..88c3225e2 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentemailv2025r0/ShieldListContentEmailV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentemailv2025r0/ShieldListContentEmailV2025R0.java @@ -10,9 +10,11 @@ import java.util.List; import java.util.Objects; +/** Representation of content of a Shield List that contains email addresses data. */ @JsonFilter("nullablePropertyFilter") public class ShieldListContentEmailV2025R0 extends SerializableObject { + /** The type of content in the shield list. */ @JsonDeserialize( using = ShieldListContentEmailV2025R0TypeField.ShieldListContentEmailV2025R0TypeFieldDeserializer @@ -23,6 +25,7 @@ public class ShieldListContentEmailV2025R0 extends SerializableObject { .class) protected EnumWrapper type; + /** List of emails. */ @JsonProperty("email_addresses") protected final List emailAddresses; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0.java index e41c4acd8..265604587 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0.java @@ -10,9 +10,11 @@ import java.util.List; import java.util.Objects; +/** Representation of content of a Shield List that contains integrations data. */ @JsonFilter("nullablePropertyFilter") public class ShieldListContentIntegrationV2025R0 extends SerializableObject { + /** The type of content in the shield list. */ @JsonDeserialize( using = ShieldListContentIntegrationV2025R0TypeField @@ -23,6 +25,7 @@ public class ShieldListContentIntegrationV2025R0 extends SerializableObject { .ShieldListContentIntegrationV2025R0TypeFieldSerializer.class) protected EnumWrapper type; + /** List of integration. */ protected final List integrations; public ShieldListContentIntegrationV2025R0( diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0IntegrationsField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0IntegrationsField.java index 85db3d3f2..2b3854ba7 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0IntegrationsField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0IntegrationsField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class ShieldListContentIntegrationV2025R0IntegrationsField extends SerializableObject { + /** The ID of the integration. */ protected String id; public ShieldListContentIntegrationV2025R0IntegrationsField() { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentipv2025r0/ShieldListContentIpV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentipv2025r0/ShieldListContentIpV2025R0.java index b4a1651e3..2d0d09ff3 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentipv2025r0/ShieldListContentIpV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentipv2025r0/ShieldListContentIpV2025R0.java @@ -10,9 +10,11 @@ import java.util.List; import java.util.Objects; +/** Representation of content of a Shield List that contains ip addresses data. */ @JsonFilter("nullablePropertyFilter") public class ShieldListContentIpV2025R0 extends SerializableObject { + /** The type of content in the shield list. */ @JsonDeserialize( using = ShieldListContentIpV2025R0TypeField.ShieldListContentIpV2025R0TypeFieldDeserializer.class) @@ -21,6 +23,7 @@ public class ShieldListContentIpV2025R0 extends SerializableObject { ShieldListContentIpV2025R0TypeField.ShieldListContentIpV2025R0TypeFieldSerializer.class) protected EnumWrapper type; + /** List of ip addresses and CIDRs. */ @JsonProperty("ip_addresses") protected final List ipAddresses; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0.java index a7b0cbeff..d0a057f69 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0.java @@ -9,17 +9,21 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** A mini representation of a Shield List. */ @JsonFilter("nullablePropertyFilter") public class ShieldListMiniV2025R0 extends SerializableObject { + /** Unique global identifier for this list. */ protected final String id; + /** The type of object. */ @JsonDeserialize( using = ShieldListMiniV2025R0TypeField.ShieldListMiniV2025R0TypeFieldDeserializer.class) @JsonSerialize( using = ShieldListMiniV2025R0TypeField.ShieldListMiniV2025R0TypeFieldSerializer.class) protected EnumWrapper type; + /** Name of Shield List. */ protected final String name; protected final ShieldListMiniV2025R0ContentField content; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0ContentField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0ContentField.java index 119d28275..6aed09009 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0ContentField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0ContentField.java @@ -8,6 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class ShieldListMiniV2025R0ContentField extends SerializableObject { + /** The type of content in the shield list. */ protected String type; public ShieldListMiniV2025R0ContentField() { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistscreatev2025r0/ShieldListsCreateV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistscreatev2025r0/ShieldListsCreateV2025R0.java index a3becfd8d..267b78c06 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistscreatev2025r0/ShieldListsCreateV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistscreatev2025r0/ShieldListsCreateV2025R0.java @@ -11,11 +11,14 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** The schema for Shield List create request. */ @JsonFilter("nullablePropertyFilter") public class ShieldListsCreateV2025R0 extends SerializableObject { + /** The name of the shield list. */ protected final String name; + /** Optional description of Shield List. */ protected String description; protected final ShieldListContentRequestV2025R0 content; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistsupdatev2025r0/ShieldListsUpdateV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistsupdatev2025r0/ShieldListsUpdateV2025R0.java index a8c3a55a8..c41690927 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistsupdatev2025r0/ShieldListsUpdateV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistsupdatev2025r0/ShieldListsUpdateV2025R0.java @@ -11,11 +11,14 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** The schema for Shield List update request. */ @JsonFilter("nullablePropertyFilter") public class ShieldListsUpdateV2025R0 extends SerializableObject { + /** The name of the shield list. */ protected final String name; + /** Optional description of Shield List. */ protected String description; protected final ShieldListContentRequestV2025R0 content; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistsv2025r0/ShieldListsV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistsv2025r0/ShieldListsV2025R0.java index fed57f7c5..ac8416aa6 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistsv2025r0/ShieldListsV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistsv2025r0/ShieldListsV2025R0.java @@ -7,9 +7,11 @@ import java.util.List; import java.util.Objects; +/** List of Shield List objects. */ @JsonFilter("nullablePropertyFilter") public class ShieldListsV2025R0 extends SerializableObject { + /** A list of shield list objects. */ protected List entries; public ShieldListsV2025R0() { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistv2025r0/ShieldListV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistv2025r0/ShieldListV2025R0.java index b172f12ad..55bf6727f 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistv2025r0/ShieldListV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistv2025r0/ShieldListV2025R0.java @@ -17,24 +17,31 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** A standard representation of a Shield List. */ @JsonFilter("nullablePropertyFilter") public class ShieldListV2025R0 extends SerializableObject { + /** Unique identifier for the shield list. */ protected final String id; + /** Type of the object. */ protected final String type; + /** Name of the shield list. */ protected final String name; protected final EnterpriseReferenceV2025R0 enterprise; + /** Description of Shield List. */ protected String description; + /** ISO date time string when this shield list object was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected final OffsetDateTime createdAt; + /** ISO date time string when this shield list object was updated. */ @JsonProperty("updated_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/termsofservicebasev2025r0/TermsOfServiceBaseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/termsofservicebasev2025r0/TermsOfServiceBaseV2025R0.java index 02595f037..202815436 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/termsofservicebasev2025r0/TermsOfServiceBaseV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/termsofservicebasev2025r0/TermsOfServiceBaseV2025R0.java @@ -9,11 +9,14 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** The root-level record that is supposed to represent a single Terms of Service. */ @JsonFilter("nullablePropertyFilter") public class TermsOfServiceBaseV2025R0 extends SerializableObject { + /** The unique identifier for this terms of service. */ protected final String id; + /** The value will always be `terms_of_service`. */ @JsonDeserialize( using = TermsOfServiceBaseV2025R0TypeField.TermsOfServiceBaseV2025R0TypeFieldDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/userbasev2025r0/UserBaseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/userbasev2025r0/UserBaseV2025R0.java index b2ad9ac50..09d08b7fe 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/userbasev2025r0/UserBaseV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/userbasev2025r0/UserBaseV2025R0.java @@ -9,11 +9,14 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** A mini representation of a user, used when nested within another resource. */ @JsonFilter("nullablePropertyFilter") public class UserBaseV2025R0 extends SerializableObject { + /** The unique identifier for this user. */ protected final String id; + /** The value will always be `user`. */ @JsonDeserialize(using = UserBaseV2025R0TypeField.UserBaseV2025R0TypeFieldDeserializer.class) @JsonSerialize(using = UserBaseV2025R0TypeField.UserBaseV2025R0TypeFieldSerializer.class) protected EnumWrapper type; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/userminiv2025r0/UserMiniV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/userminiv2025r0/UserMiniV2025R0.java index 495ca03a7..528efcec3 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/userminiv2025r0/UserMiniV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/userminiv2025r0/UserMiniV2025R0.java @@ -7,11 +7,14 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** A mini representation of a user, as can be returned when nested within other resources. */ @JsonFilter("nullablePropertyFilter") public class UserMiniV2025R0 extends UserBaseV2025R0 { + /** The display name of this user. */ protected String name; + /** The primary email address of this user. */ protected String login; public UserMiniV2025R0(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/userreferencev2025r0/UserReferenceV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/userreferencev2025r0/UserReferenceV2025R0.java index f47964532..00d39be44 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/userreferencev2025r0/UserReferenceV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/userreferencev2025r0/UserReferenceV2025R0.java @@ -9,15 +9,18 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** User reference. */ @JsonFilter("nullablePropertyFilter") public class UserReferenceV2025R0 extends SerializableObject { + /** The value is always `user`. */ @JsonDeserialize( using = UserReferenceV2025R0TypeField.UserReferenceV2025R0TypeFieldDeserializer.class) @JsonSerialize( using = UserReferenceV2025R0TypeField.UserReferenceV2025R0TypeFieldSerializer.class) protected EnumWrapper type; + /** The unique identifier for the user. */ protected final String id; public UserReferenceV2025R0(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0.java index 83d69a360..6da150ef2 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0.java @@ -9,15 +9,18 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** Web link reference. */ @JsonFilter("nullablePropertyFilter") public class WeblinkReferenceV2025R0 extends SerializableObject { + /** The value will always be `weblink`. */ @JsonDeserialize( using = WeblinkReferenceV2025R0TypeField.WeblinkReferenceV2025R0TypeFieldDeserializer.class) @JsonSerialize( using = WeblinkReferenceV2025R0TypeField.WeblinkReferenceV2025R0TypeFieldSerializer.class) protected EnumWrapper type; + /** ID of the web link. */ protected final String id; public WeblinkReferenceV2025R0(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/watermark/Watermark.java b/src/main/java/com/box/sdkgen/schemas/watermark/Watermark.java index 0788d6794..1d5f6e829 100644 --- a/src/main/java/com/box/sdkgen/schemas/watermark/Watermark.java +++ b/src/main/java/com/box/sdkgen/schemas/watermark/Watermark.java @@ -5,6 +5,10 @@ import com.fasterxml.jackson.annotation.JsonFilter; import java.util.Objects; +/** + * A watermark is a semi-transparent overlay on an embedded file preview that displays a viewer's + * email address or user ID and the time of access over a file's content. + */ @JsonFilter("nullablePropertyFilter") public class Watermark extends SerializableObject { diff --git a/src/main/java/com/box/sdkgen/schemas/watermark/WatermarkWatermarkField.java b/src/main/java/com/box/sdkgen/schemas/watermark/WatermarkWatermarkField.java index 252e8c2b4..37a3b808c 100644 --- a/src/main/java/com/box/sdkgen/schemas/watermark/WatermarkWatermarkField.java +++ b/src/main/java/com/box/sdkgen/schemas/watermark/WatermarkWatermarkField.java @@ -13,11 +13,13 @@ @JsonFilter("nullablePropertyFilter") public class WatermarkWatermarkField extends SerializableObject { + /** When this watermark was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** When this task was modified. */ @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/webhook/Webhook.java b/src/main/java/com/box/sdkgen/schemas/webhook/Webhook.java index d64bffbf8..9117506b9 100644 --- a/src/main/java/com/box/sdkgen/schemas/webhook/Webhook.java +++ b/src/main/java/com/box/sdkgen/schemas/webhook/Webhook.java @@ -24,19 +24,23 @@ import java.util.List; import java.util.Objects; +/** Represents a configured webhook. */ @JsonFilter("nullablePropertyFilter") public class Webhook extends WebhookMini { @JsonProperty("created_by") protected UserMini createdBy; + /** A timestamp identifying the time that the webhook was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** The URL that is notified by this webhook. */ protected String address; + /** An array of event names that this webhook is to be triggered for. */ @JsonDeserialize(using = TriggersDeserializer.class) @JsonSerialize(using = TriggersSerializer.class) protected List> triggers; diff --git a/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMini.java b/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMini.java index 3627fd41e..98d95b3e9 100644 --- a/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMini.java +++ b/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMini.java @@ -8,15 +8,19 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** Represents a configured webhook. */ @JsonFilter("nullablePropertyFilter") public class WebhookMini extends SerializableObject { + /** The unique identifier for this webhook. */ protected String id; + /** The value will always be `webhook`. */ @JsonDeserialize(using = WebhookMiniTypeField.WebhookMiniTypeFieldDeserializer.class) @JsonSerialize(using = WebhookMiniTypeField.WebhookMiniTypeFieldSerializer.class) protected EnumWrapper type; + /** The item that will trigger the webhook. */ protected WebhookMiniTargetField target; public WebhookMini() { diff --git a/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMiniTargetField.java b/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMiniTargetField.java index 19408d57c..e97eca08c 100644 --- a/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMiniTargetField.java +++ b/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMiniTargetField.java @@ -11,8 +11,10 @@ @JsonFilter("nullablePropertyFilter") public class WebhookMiniTargetField extends SerializableObject { + /** The ID of the item to trigger a webhook. */ protected String id; + /** The type of item to trigger a webhook. */ @JsonDeserialize(using = WebhookMiniTargetTypeField.WebhookMiniTargetTypeFieldDeserializer.class) @JsonSerialize(using = WebhookMiniTargetTypeField.WebhookMiniTargetTypeFieldSerializer.class) protected EnumWrapper type; diff --git a/src/main/java/com/box/sdkgen/schemas/webhooks/Webhooks.java b/src/main/java/com/box/sdkgen/schemas/webhooks/Webhooks.java index 026a515cc..ff013e8f7 100644 --- a/src/main/java/com/box/sdkgen/schemas/webhooks/Webhooks.java +++ b/src/main/java/com/box/sdkgen/schemas/webhooks/Webhooks.java @@ -9,19 +9,27 @@ import java.util.List; import java.util.Objects; +/** A list of webhooks. */ @JsonFilter("nullablePropertyFilter") public class Webhooks extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** The marker for the start of the previous page of results. */ @JsonProperty("prev_marker") @Nullable protected String prevMarker; + /** A list of webhooks. */ protected List entries; public Webhooks() { diff --git a/src/main/java/com/box/sdkgen/schemas/weblink/WebLink.java b/src/main/java/com/box/sdkgen/schemas/weblink/WebLink.java index 56508d220..0619a2ef2 100644 --- a/src/main/java/com/box/sdkgen/schemas/weblink/WebLink.java +++ b/src/main/java/com/box/sdkgen/schemas/weblink/WebLink.java @@ -14,32 +14,44 @@ import java.time.OffsetDateTime; import java.util.Objects; +/** + * Web links are objects that point to URLs. These objects are also known as bookmarks within the + * Box web application. + * + *

    Web link objects are treated similarly to file objects, they will also support most actions + * that apply to regular files. + */ @JsonFilter("nullablePropertyFilter") public class WebLink extends WebLinkMini { protected FolderMini parent; + /** The description accompanying the web link. This is visible within the Box web application. */ protected String description; @JsonProperty("path_collection") protected WebLinkPathCollectionField pathCollection; + /** When this file was created on Box’s servers. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime createdAt; + /** When this file was last updated on the Box servers. */ @JsonProperty("modified_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime modifiedAt; + /** When this file was moved to the trash. */ @JsonProperty("trashed_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable protected OffsetDateTime trashedAt; + /** When this file will be permanently deleted. */ @JsonProperty("purged_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @@ -58,6 +70,10 @@ public class WebLink extends WebLinkMini { @JsonProperty("shared_link") protected WebLinkSharedLinkField sharedLink; + /** + * Whether this item is deleted or not. Values include `active`, `trashed` if the file has been + * moved to the trash, and `deleted` if the file has been permanently deleted. + */ @JsonDeserialize(using = WebLinkItemStatusField.WebLinkItemStatusFieldDeserializer.class) @JsonSerialize(using = WebLinkItemStatusField.WebLinkItemStatusFieldSerializer.class) @JsonProperty("item_status") diff --git a/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkPathCollectionField.java b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkPathCollectionField.java index 822d07beb..8e5775ca9 100644 --- a/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkPathCollectionField.java +++ b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkPathCollectionField.java @@ -10,9 +10,11 @@ @JsonFilter("nullablePropertyFilter") public class WebLinkPathCollectionField extends SerializableObject { + /** The number of folders in this list. */ @JsonProperty("total_count") protected final long totalCount; + /** The parent folders for this item. */ protected final List entries; public WebLinkPathCollectionField( diff --git a/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkField.java b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkField.java index 2eef7cb3f..4c499bd4f 100644 --- a/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkField.java +++ b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkField.java @@ -15,25 +15,61 @@ @JsonFilter("nullablePropertyFilter") public class WebLinkSharedLinkField extends SerializableObject { + /** + * The URL that can be used to access the item on Box. + * + *

    This URL will display the item in Box's preview UI where the file can be downloaded if + * allowed. + * + *

    This URL will continue to work even when a custom `vanity_url` has been set for this shared + * link. + */ protected final String url; + /** + * A URL that can be used to download the file. This URL can be used in a browser to download the + * file. This URL includes the file extension so that the file will be saved with the right file + * type. + * + *

    This property will be `null` for folders. + */ @JsonProperty("download_url") @Nullable protected String downloadUrl; + /** + * The "Custom URL" that can also be used to preview the item on Box. Custom URLs can only be + * created or modified in the Box Web application. + */ @JsonProperty("vanity_url") @Nullable protected String vanityUrl; + /** The custom name of a shared link, as used in the `vanity_url` field. */ @JsonProperty("vanity_name") @Nullable protected String vanityName; + /** + * The access level for this shared link. + * + *

    * `open` - provides access to this item to anyone with this link * `company` - only provides + * access to this item to people the same company * `collaborators` - only provides access to this + * item to people who are collaborators on this item + * + *

    If this field is omitted when creating the shared link, the access level will be set to the + * default access level specified by the enterprise admin. + */ @JsonDeserialize( using = WebLinkSharedLinkAccessField.WebLinkSharedLinkAccessFieldDeserializer.class) @JsonSerialize(using = WebLinkSharedLinkAccessField.WebLinkSharedLinkAccessFieldSerializer.class) protected EnumWrapper access; + /** + * The effective access level for the shared link. This can be a more restrictive access level + * than the value in the `access` field when the enterprise settings restrict the allowed access + * levels. + */ @JsonDeserialize( using = WebLinkSharedLinkEffectiveAccessField.WebLinkSharedLinkEffectiveAccessFieldDeserializer @@ -45,6 +81,11 @@ public class WebLinkSharedLinkField extends SerializableObject { @JsonProperty("effective_access") protected final EnumWrapper effectiveAccess; + /** + * The effective permissions for this shared link. These result in the more restrictive + * combination of the share link permissions and the item permissions set by the administrator, + * the owner, and any ancestor item such as a folder. + */ @JsonDeserialize( using = WebLinkSharedLinkEffectivePermissionField @@ -56,20 +97,31 @@ public class WebLinkSharedLinkField extends SerializableObject { @JsonProperty("effective_permission") protected final EnumWrapper effectivePermission; + /** + * The date and time when this link will be unshared. This field can only be set by users with + * paid accounts. + */ @JsonProperty("unshared_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) @Nullable protected OffsetDateTime unsharedAt; + /** Defines if the shared link requires a password to access the item. */ @JsonProperty("is_password_enabled") protected final boolean isPasswordEnabled; + /** + * Defines if this link allows a user to preview, edit, and download an item. These permissions + * refer to the shared link only and do not supersede permissions applied to the item itself. + */ protected WebLinkSharedLinkPermissionsField permissions; + /** The number of times this item has been downloaded. */ @JsonProperty("download_count") protected final long downloadCount; + /** The number of times this item has been previewed. */ @JsonProperty("preview_count") protected final long previewCount; diff --git a/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkPermissionsField.java b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkPermissionsField.java index 9235cd312..a84588593 100644 --- a/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkPermissionsField.java +++ b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkPermissionsField.java @@ -8,12 +8,31 @@ @JsonFilter("nullablePropertyFilter") public class WebLinkSharedLinkPermissionsField extends SerializableObject { + /** + * Defines if the shared link allows for the item to be downloaded. For shared links on folders, + * this also applies to any items in the folder. + * + *

    This value can be set to `true` when the effective access level is set to `open` or + * `company`, not `collaborators`. + */ @JsonProperty("can_download") protected final boolean canDownload; + /** + * Defines if the shared link allows for the item to be previewed. + * + *

    This value is always `true`. For shared links on folders this also applies to any items in + * the folder. + */ @JsonProperty("can_preview") protected final boolean canPreview; + /** + * Defines if the shared link allows for the item to be edited. + * + *

    This value can only be `true` if `can_download` is also `true` and if the item has a type of + * `file`. + */ @JsonProperty("can_edit") protected final boolean canEdit; diff --git a/src/main/java/com/box/sdkgen/schemas/weblinkbase/WebLinkBase.java b/src/main/java/com/box/sdkgen/schemas/weblinkbase/WebLinkBase.java index cce496c94..427c7b2d8 100644 --- a/src/main/java/com/box/sdkgen/schemas/weblinkbase/WebLinkBase.java +++ b/src/main/java/com/box/sdkgen/schemas/weblinkbase/WebLinkBase.java @@ -9,15 +9,25 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** + * Web links are objects that point to URLs. These objects are also known as bookmarks within the + * Box web application. + * + *

    Web link objects are treated similarly to file objects, they will also support most actions + * that apply to regular files. + */ @JsonFilter("nullablePropertyFilter") public class WebLinkBase extends SerializableObject { + /** The unique identifier for this web link. */ protected final String id; + /** The value will always be `web_link`. */ @JsonDeserialize(using = WebLinkBaseTypeField.WebLinkBaseTypeFieldDeserializer.class) @JsonSerialize(using = WebLinkBaseTypeField.WebLinkBaseTypeFieldSerializer.class) protected EnumWrapper type; + /** The entity tag of this web link. Used with `If-Match` headers. */ protected String etag; public WebLinkBase(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/weblinkmini/WebLinkMini.java b/src/main/java/com/box/sdkgen/schemas/weblinkmini/WebLinkMini.java index f919d1e06..9711c280f 100644 --- a/src/main/java/com/box/sdkgen/schemas/weblinkmini/WebLinkMini.java +++ b/src/main/java/com/box/sdkgen/schemas/weblinkmini/WebLinkMini.java @@ -7,14 +7,23 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; +/** + * Web links are objects that point to URLs. These objects are also known as bookmarks within the + * Box web application. + * + *

    Web link objects are treated similarly to file objects, they will also support most actions + * that apply to regular files. + */ @JsonFilter("nullablePropertyFilter") public class WebLinkMini extends WebLinkBase { + /** The URL this web link points to. */ protected String url; @JsonProperty("sequence_id") protected String sequenceId; + /** The name of the web link. */ protected String name; public WebLinkMini(@JsonProperty("id") String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/Workflow.java b/src/main/java/com/box/sdkgen/schemas/workflow/Workflow.java index d833cec28..8fe9ba27a 100644 --- a/src/main/java/com/box/sdkgen/schemas/workflow/Workflow.java +++ b/src/main/java/com/box/sdkgen/schemas/workflow/Workflow.java @@ -7,9 +7,16 @@ import java.util.List; import java.util.Objects; +/** + * Box Relay Workflows are objects that represent a named collection of flows. + * + *

    Your application must be authorized to use the `Manage Box Relay` application scope within the + * developer console in order to use this resource. + */ @JsonFilter("nullablePropertyFilter") public class Workflow extends WorkflowMini { + /** A list of flows assigned to a workflow. */ protected List flows; public Workflow() { diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsField.java index 1e6f90cfc..e6aaae80b 100644 --- a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsField.java +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsField.java @@ -16,8 +16,10 @@ @JsonFilter("nullablePropertyFilter") public class WorkflowFlowsField extends SerializableObject { + /** The identifier of the flow. */ protected String id; + /** The flow's resource type. */ @JsonDeserialize(using = WorkflowFlowsTypeField.WorkflowFlowsTypeFieldDeserializer.class) @JsonSerialize(using = WorkflowFlowsTypeField.WorkflowFlowsTypeFieldSerializer.class) protected EnumWrapper type; @@ -26,6 +28,7 @@ public class WorkflowFlowsField extends SerializableObject { protected List outcomes; + /** When this flow was created. */ @JsonProperty("created_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesField.java index 2bb1e0169..ed8c3b248 100644 --- a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesField.java +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesField.java @@ -13,14 +13,17 @@ @JsonFilter("nullablePropertyFilter") public class WorkflowFlowsOutcomesField extends SerializableObject { + /** The identifier of the outcome. */ protected String id; + /** The outcomes resource type. */ @JsonDeserialize( using = WorkflowFlowsOutcomesTypeField.WorkflowFlowsOutcomesTypeFieldDeserializer.class) @JsonSerialize( using = WorkflowFlowsOutcomesTypeField.WorkflowFlowsOutcomesTypeFieldSerializer.class) protected EnumWrapper type; + /** The name of the outcome. */ protected String name; @JsonDeserialize( @@ -33,6 +36,10 @@ public class WorkflowFlowsOutcomesField extends SerializableObject { @JsonProperty("action_type") protected EnumWrapper actionType; + /** + * If `action_type` is `assign_task` and the task is rejected, returns a list of outcomes to + * complete. + */ @JsonProperty("if_rejected") protected List ifRejected; diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesIfRejectedField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesIfRejectedField.java index 423cb8da1..3cb88e7f2 100644 --- a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesIfRejectedField.java +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesIfRejectedField.java @@ -12,8 +12,10 @@ @JsonFilter("nullablePropertyFilter") public class WorkflowFlowsOutcomesIfRejectedField extends SerializableObject { + /** The identifier of the outcome. */ protected String id; + /** The outcomes resource type. */ @JsonDeserialize( using = WorkflowFlowsOutcomesIfRejectedTypeField @@ -24,6 +26,7 @@ public class WorkflowFlowsOutcomesIfRejectedField extends SerializableObject { .WorkflowFlowsOutcomesIfRejectedTypeFieldSerializer.class) protected EnumWrapper type; + /** The name of the outcome. */ protected String name; @JsonDeserialize( diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerField.java index f6779ffa2..9ff83e93e 100644 --- a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerField.java +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerField.java @@ -13,12 +13,14 @@ @JsonFilter("nullablePropertyFilter") public class WorkflowFlowsTriggerField extends SerializableObject { + /** The trigger's resource type. */ @JsonDeserialize( using = WorkflowFlowsTriggerTypeField.WorkflowFlowsTriggerTypeFieldDeserializer.class) @JsonSerialize( using = WorkflowFlowsTriggerTypeField.WorkflowFlowsTriggerTypeFieldSerializer.class) protected EnumWrapper type; + /** The type of trigger selected for this flow. */ @JsonDeserialize( using = WorkflowFlowsTriggerTriggerTypeField.WorkflowFlowsTriggerTriggerTypeFieldDeserializer @@ -29,6 +31,7 @@ public class WorkflowFlowsTriggerField extends SerializableObject { @JsonProperty("trigger_type") protected EnumWrapper triggerType; + /** List of trigger scopes. */ protected List scope; public WorkflowFlowsTriggerField() { diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeField.java index a15356cb7..b50cba013 100644 --- a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeField.java +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeField.java @@ -11,6 +11,7 @@ @JsonFilter("nullablePropertyFilter") public class WorkflowFlowsTriggerScopeField extends SerializableObject { + /** The trigger scope's resource type. */ @JsonDeserialize( using = WorkflowFlowsTriggerScopeTypeField.WorkflowFlowsTriggerScopeTypeFieldDeserializer.class) @@ -18,8 +19,10 @@ public class WorkflowFlowsTriggerScopeField extends SerializableObject { using = WorkflowFlowsTriggerScopeTypeField.WorkflowFlowsTriggerScopeTypeFieldSerializer.class) protected EnumWrapper type; + /** Indicates the path of the condition value to check. */ protected String ref; + /** The object the `ref` points to. */ protected WorkflowFlowsTriggerScopeObjectField object; public WorkflowFlowsTriggerScopeField() { diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeObjectField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeObjectField.java index 29f1d0a95..2cc41128e 100644 --- a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeObjectField.java +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeObjectField.java @@ -11,6 +11,7 @@ @JsonFilter("nullablePropertyFilter") public class WorkflowFlowsTriggerScopeObjectField extends SerializableObject { + /** The type of the object. */ @JsonDeserialize( using = WorkflowFlowsTriggerScopeObjectTypeField @@ -21,6 +22,7 @@ public class WorkflowFlowsTriggerScopeObjectField extends SerializableObject { .WorkflowFlowsTriggerScopeObjectTypeFieldSerializer.class) protected EnumWrapper type; + /** The id of the object. */ protected String id; public WorkflowFlowsTriggerScopeObjectField() { diff --git a/src/main/java/com/box/sdkgen/schemas/workflowmini/WorkflowMini.java b/src/main/java/com/box/sdkgen/schemas/workflowmini/WorkflowMini.java index eb6b72f83..df9795e2d 100644 --- a/src/main/java/com/box/sdkgen/schemas/workflowmini/WorkflowMini.java +++ b/src/main/java/com/box/sdkgen/schemas/workflowmini/WorkflowMini.java @@ -9,19 +9,30 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** + * Box Relay Workflows are objects that represent a named collection of flows. + * + *

    You application must be authorized to use the `Manage Box Relay` application scope within the + * developer console in order to use this resource. + */ @JsonFilter("nullablePropertyFilter") public class WorkflowMini extends SerializableObject { + /** The unique identifier for the workflow. */ protected String id; + /** The value will always be `workflow`. */ @JsonDeserialize(using = WorkflowMiniTypeField.WorkflowMiniTypeFieldDeserializer.class) @JsonSerialize(using = WorkflowMiniTypeField.WorkflowMiniTypeFieldSerializer.class) protected EnumWrapper type; + /** The name of the workflow. */ protected String name; + /** The description for a workflow. */ protected String description; + /** Specifies if this workflow is enabled. */ @JsonProperty("is_enabled") protected Boolean isEnabled; diff --git a/src/main/java/com/box/sdkgen/schemas/workflows/Workflows.java b/src/main/java/com/box/sdkgen/schemas/workflows/Workflows.java index 4f2eaac36..e96915595 100644 --- a/src/main/java/com/box/sdkgen/schemas/workflows/Workflows.java +++ b/src/main/java/com/box/sdkgen/schemas/workflows/Workflows.java @@ -9,19 +9,32 @@ import java.util.List; import java.util.Objects; +/** + * A list of workflows. + * + *

    You application must be authorized to use the `Manage Box Relay` application scope within the + * developer console in order to use this resource. + */ @JsonFilter("nullablePropertyFilter") public class Workflows extends SerializableObject { + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ protected Long limit; + /** The marker for the start of the next page of results. */ @JsonProperty("next_marker") @Nullable protected String nextMarker; + /** The marker for the start of the previous page of results. */ @JsonProperty("prev_marker") @Nullable protected String prevMarker; + /** A list of workflows. */ protected List entries; public Workflows() { diff --git a/src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownload.java b/src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownload.java index 00acda84b..a63d06c7c 100644 --- a/src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownload.java +++ b/src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownload.java @@ -11,20 +11,58 @@ import java.util.List; import java.util.Objects; +/** Represents a successful request to create a `zip` archive of a list of files and folders. */ @JsonFilter("nullablePropertyFilter") public class ZipDownload extends SerializableObject { + /** + * The URL that can be used to download the `zip` archive. A `Get` request to this URL will start + * streaming the items requested. By default, this URL is only valid for a few seconds, until the + * `expires_at` time, unless a download is started after which it is valid for the duration of the + * download. + * + *

    It is important to note that the domain and path of this URL might change between API calls, + * and therefore it's important to use this URL as-is. + */ @JsonProperty("download_url") protected String downloadUrl; + /** + * The URL that can be used to get the status of the `zip` archive being downloaded. A `Get` + * request to this URL will return the number of files in the archive as well as the number of + * items already downloaded or skipped. By default, this URL is only valid for a few seconds, + * until the `expires_at` time, unless a download is started after which the URL is valid for 12 + * hours from the start of the download. + * + *

    It is important to note that the domain and path of this URL might change between API calls, + * and therefore it's important to use this URL as-is. + */ @JsonProperty("status_url") protected String statusUrl; + /** + * The time and date when this archive will expire. After this time the `status_url` and + * `download_url` will return an error. + * + *

    By default, these URLs are only valid for a few seconds, unless a download is started after + * which the `download_url` is valid for the duration of the download, and the `status_url` is + * valid for 12 hours from the start of the download. + */ @JsonProperty("expires_at") @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) protected OffsetDateTime expiresAt; + /** + * A list of conflicts that occurred when trying to create the archive. This would occur when + * multiple items have been requested with the same name. + * + *

    To solve these conflicts, the API will automatically rename an item and return a mapping + * between the original item's name and its new name. + * + *

    For every conflict, both files will be renamed and therefore this list will always be a + * multiple of 2. + */ @JsonProperty("name_conflicts") protected List> nameConflicts; diff --git a/src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownloadNameConflictsField.java b/src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownloadNameConflictsField.java index 29314b399..cdf0c2588 100644 --- a/src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownloadNameConflictsField.java +++ b/src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownloadNameConflictsField.java @@ -12,17 +12,21 @@ @JsonFilter("nullablePropertyFilter") public class ZipDownloadNameConflictsField extends SerializableObject { + /** The identifier of the item. */ protected String id; + /** The type of this item. */ @JsonDeserialize( using = ZipDownloadNameConflictsTypeField.ZipDownloadNameConflictsTypeFieldDeserializer.class) @JsonSerialize( using = ZipDownloadNameConflictsTypeField.ZipDownloadNameConflictsTypeFieldSerializer.class) protected EnumWrapper type; + /** Box Developer Documentation. */ @JsonProperty("original_name") protected String originalName; + /** The new name of this item as it will appear in the downloaded `zip` archive. */ @JsonProperty("download_name") protected String downloadName; diff --git a/src/main/java/com/box/sdkgen/schemas/zipdownloadrequest/ZipDownloadRequest.java b/src/main/java/com/box/sdkgen/schemas/zipdownloadrequest/ZipDownloadRequest.java index a58ef8aff..d5ee8eb63 100644 --- a/src/main/java/com/box/sdkgen/schemas/zipdownloadrequest/ZipDownloadRequest.java +++ b/src/main/java/com/box/sdkgen/schemas/zipdownloadrequest/ZipDownloadRequest.java @@ -7,11 +7,17 @@ import java.util.List; import java.util.Objects; +/** A request to create a `zip` archive to download. */ @JsonFilter("nullablePropertyFilter") public class ZipDownloadRequest extends SerializableObject { + /** A list of items to add to the `zip` archive. These can be folders or files. */ protected final List items; + /** + * The optional name of the `zip` archive. This name will be appended by the `.zip` file + * extension, for example `January Financials.zip`. + */ @JsonProperty("download_file_name") protected String downloadFileName; diff --git a/src/main/java/com/box/sdkgen/schemas/zipdownloadrequest/ZipDownloadRequestItemsField.java b/src/main/java/com/box/sdkgen/schemas/zipdownloadrequest/ZipDownloadRequestItemsField.java index 2ee9a0ccc..799921655 100644 --- a/src/main/java/com/box/sdkgen/schemas/zipdownloadrequest/ZipDownloadRequestItemsField.java +++ b/src/main/java/com/box/sdkgen/schemas/zipdownloadrequest/ZipDownloadRequestItemsField.java @@ -11,12 +11,17 @@ @JsonFilter("nullablePropertyFilter") public class ZipDownloadRequestItemsField extends SerializableObject { + /** The type of the item to add to the archive. */ @JsonDeserialize( using = ZipDownloadRequestItemsTypeField.ZipDownloadRequestItemsTypeFieldDeserializer.class) @JsonSerialize( using = ZipDownloadRequestItemsTypeField.ZipDownloadRequestItemsTypeFieldSerializer.class) protected final EnumWrapper type; + /** + * The identifier of the item to add to the archive. When this item is a folder then this can not + * be the root folder with ID `0`. + */ protected final String id; public ZipDownloadRequestItemsField(ZipDownloadRequestItemsTypeField type, String id) { diff --git a/src/main/java/com/box/sdkgen/schemas/zipdownloadstatus/ZipDownloadStatus.java b/src/main/java/com/box/sdkgen/schemas/zipdownloadstatus/ZipDownloadStatus.java index 92a74dc3a..531399728 100644 --- a/src/main/java/com/box/sdkgen/schemas/zipdownloadstatus/ZipDownloadStatus.java +++ b/src/main/java/com/box/sdkgen/schemas/zipdownloadstatus/ZipDownloadStatus.java @@ -9,21 +9,35 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; +/** The status of a `zip` archive being downloaded. */ @JsonFilter("nullablePropertyFilter") public class ZipDownloadStatus extends SerializableObject { + /** The total number of files in the archive. */ @JsonProperty("total_file_count") protected Long totalFileCount; + /** The number of files that have already been downloaded. */ @JsonProperty("downloaded_file_count") protected Long downloadedFileCount; + /** + * The number of files that have been skipped as they could not be downloaded. In many cases this + * is due to permission issues that have surfaced between the creation of the request for the + * archive and the archive being downloaded. + */ @JsonProperty("skipped_file_count") protected Long skippedFileCount; + /** + * The number of folders that have been skipped as they could not be downloaded. In many cases + * this is due to permission issues that have surfaced between the creation of the request for the + * archive and the archive being downloaded. + */ @JsonProperty("skipped_folder_count") protected Long skippedFolderCount; + /** The state of the archive being downloaded. */ @JsonDeserialize( using = ZipDownloadStatusStateField.ZipDownloadStatusStateFieldDeserializer.class) @JsonSerialize(using = ZipDownloadStatusStateField.ZipDownloadStatusStateFieldSerializer.class) From 0d3f1e5c43d6618e0166f404198dd770464926c3 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Thu, 2 Oct 2025 16:38:28 +0200 Subject: [PATCH 036/148] chore: Update auto-update job (box/box-codegen#855) (#1469) --- .codegen.json | 2 +- .github/workflows/autoupdate-pr.yml | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index 2400f1fc8..f7af01094 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "47a3d7f", "specHash": "1ed059a", "version": "10.0.0" } \ No newline at end of file +{ "engineHash": "504b5a7", "specHash": "1ed059a", "version": "10.0.0" } diff --git a/.github/workflows/autoupdate-pr.yml b/.github/workflows/autoupdate-pr.yml index bbf7ad303..0540ae82a 100644 --- a/.github/workflows/autoupdate-pr.yml +++ b/.github/workflows/autoupdate-pr.yml @@ -2,7 +2,9 @@ name: Autoupdate PR on: push: branches: + - main - sdk-gen + - combined-sdk jobs: update_pull_requests: @@ -24,10 +26,10 @@ jobs: - name: Auto update pull requests run: | - PR_LIST=$(curl -s -H "Authorization: Bearer ${{ secrets.DISPATCH_ACCESS_TOKEN }}" "https://api.github.com/repos/$GITHUB_REPOSITORY/pulls?state=open" | jq -r '.[] | .head.ref') + PR_LIST=$(curl -s -H "Authorization: Bearer ${{ secrets.DISPATCH_ACCESS_TOKEN }}" "https://api.github.com/repos/$GITHUB_REPOSITORY/pulls?state=open&head=${{ github.ref_name }}" | jq -r '.[] | .head.ref') for pr_branch in $PR_LIST; do git checkout "$pr_branch" - if git merge origin/sdk-gen; then + if git merge origin/${{ github.ref_name }}; then git push else # Conflict occurred, resolve by keeping our changes From e215a5f2502e694421a05d8da550d2b305c09460 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Thu, 2 Oct 2025 17:02:05 +0200 Subject: [PATCH 037/148] fix: Allow flexible key-value data in `AiExtractResponse.answer` and `Event.additionalDetails` (box/box-openapi#556) (#1470) --- .codegen.json | 2 +- .../aiextractresponse/AiExtractResponse.java | 21 ------------------- .../AiExtractStructuredResponse.java | 12 +++++------ .../com/box/sdkgen/schemas/event/Event.java | 8 +++---- .../event/EventAdditionalDetailsField.java | 17 --------------- 5 files changed, 11 insertions(+), 49 deletions(-) delete mode 100644 src/main/java/com/box/sdkgen/schemas/aiextractresponse/AiExtractResponse.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/event/EventAdditionalDetailsField.java diff --git a/.codegen.json b/.codegen.json index f7af01094..13155d92b 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "504b5a7", "specHash": "1ed059a", "version": "10.0.0" } +{ "engineHash": "504b5a7", "specHash": "62fdfd1", "version": "10.0.0" } \ No newline at end of file diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractresponse/AiExtractResponse.java b/src/main/java/com/box/sdkgen/schemas/aiextractresponse/AiExtractResponse.java deleted file mode 100644 index 5092bbf22..000000000 --- a/src/main/java/com/box/sdkgen/schemas/aiextractresponse/AiExtractResponse.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.box.sdkgen.schemas.aiextractresponse; - -import com.box.sdkgen.internal.SerializableObject; -import com.fasterxml.jackson.annotation.JsonFilter; - -/** - * AI extract response. The content of this response may vary depending on the requested - * configuration. - */ -@JsonFilter("nullablePropertyFilter") -public class AiExtractResponse extends SerializableObject { - - public AiExtractResponse() { - super(); - } - - @Override - public String toString() { - return "AiExtractResponse{" + "}"; - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java index b49716623..42e94c96e 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java @@ -4,19 +4,19 @@ import com.box.sdkgen.internal.SerializableObject; import com.box.sdkgen.internal.utils.DateTimeUtils; import com.box.sdkgen.schemas.aiagentinfo.AiAgentInfo; -import com.box.sdkgen.schemas.aiextractresponse.AiExtractResponse; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.time.OffsetDateTime; +import java.util.Map; import java.util.Objects; /** AI extract structured response. */ @JsonFilter("nullablePropertyFilter") public class AiExtractStructuredResponse extends SerializableObject { - protected final AiExtractResponse answer; + protected final Map answer; /** The ISO date formatted timestamp of when the answer to the prompt was created. */ @JsonProperty("created_at") @@ -32,7 +32,7 @@ public class AiExtractStructuredResponse extends SerializableObject { protected AiAgentInfo aiAgentInfo; public AiExtractStructuredResponse( - @JsonProperty("answer") AiExtractResponse answer, + @JsonProperty("answer") Map answer, @JsonProperty("created_at") OffsetDateTime createdAt) { super(); this.answer = answer; @@ -48,7 +48,7 @@ protected AiExtractStructuredResponse(Builder builder) { markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } - public AiExtractResponse getAnswer() { + public Map getAnswer() { return answer; } @@ -107,7 +107,7 @@ public String toString() { public static class Builder extends NullableFieldTracker { - protected final AiExtractResponse answer; + protected final Map answer; protected final OffsetDateTime createdAt; @@ -115,7 +115,7 @@ public static class Builder extends NullableFieldTracker { protected AiAgentInfo aiAgentInfo; - public Builder(AiExtractResponse answer, OffsetDateTime createdAt) { + public Builder(Map answer, OffsetDateTime createdAt) { super(); this.answer = answer; this.createdAt = createdAt; diff --git a/src/main/java/com/box/sdkgen/schemas/event/Event.java b/src/main/java/com/box/sdkgen/schemas/event/Event.java index 5f00369f9..c4db5edaa 100644 --- a/src/main/java/com/box/sdkgen/schemas/event/Event.java +++ b/src/main/java/com/box/sdkgen/schemas/event/Event.java @@ -66,7 +66,7 @@ public class Event extends SerializableObject { * object. This object is only available in the Enterprise Events. */ @JsonProperty("additional_details") - protected EventAdditionalDetailsField additionalDetails; + protected Map additionalDetails; public Event() { super(); @@ -118,7 +118,7 @@ public EventSourceResource getSource() { return source; } - public EventAdditionalDetailsField getAdditionalDetails() { + public Map getAdditionalDetails() { return additionalDetails; } @@ -215,7 +215,7 @@ public static class Builder extends NullableFieldTracker { protected EventSourceResource source; - protected EventAdditionalDetailsField additionalDetails; + protected Map additionalDetails; public Builder type(String type) { this.type = type; @@ -292,7 +292,7 @@ public Builder source(EventSourceResource source) { return this; } - public Builder additionalDetails(EventAdditionalDetailsField additionalDetails) { + public Builder additionalDetails(Map additionalDetails) { this.additionalDetails = additionalDetails; return this; } diff --git a/src/main/java/com/box/sdkgen/schemas/event/EventAdditionalDetailsField.java b/src/main/java/com/box/sdkgen/schemas/event/EventAdditionalDetailsField.java deleted file mode 100644 index c6507c875..000000000 --- a/src/main/java/com/box/sdkgen/schemas/event/EventAdditionalDetailsField.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.box.sdkgen.schemas.event; - -import com.box.sdkgen.internal.SerializableObject; -import com.fasterxml.jackson.annotation.JsonFilter; - -@JsonFilter("nullablePropertyFilter") -public class EventAdditionalDetailsField extends SerializableObject { - - public EventAdditionalDetailsField() { - super(); - } - - @Override - public String toString() { - return "EventAdditionalDetailsField{" + "}"; - } -} From ea307150e0a89ff7544b948b910158472c6e030f Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Fri, 3 Oct 2025 10:38:49 +0200 Subject: [PATCH 038/148] test: Change ai and events tests to use fields instead of raw json (box/box-codegen#852) (#1474) --- .codegen.json | 2 +- src/test/java/com/box/sdkgen/ai/AiITest.java | 23 ++++++++----------- .../com/box/sdkgen/events/EventsITest.java | 1 + 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/.codegen.json b/.codegen.json index 13155d92b..18c0213b6 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "504b5a7", "specHash": "62fdfd1", "version": "10.0.0" } \ No newline at end of file +{ "engineHash": "10c68c7", "specHash": "62fdfd1", "version": "10.0.0" } diff --git a/src/test/java/com/box/sdkgen/ai/AiITest.java b/src/test/java/com/box/sdkgen/ai/AiITest.java index 4a5ac43e8..a42ebfa2a 100644 --- a/src/test/java/com/box/sdkgen/ai/AiITest.java +++ b/src/test/java/com/box/sdkgen/ai/AiITest.java @@ -6,7 +6,6 @@ import static com.box.sdkgen.internal.utils.UtilsManager.dateTimeFromString; import static com.box.sdkgen.internal.utils.UtilsManager.delayInSeconds; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static com.box.sdkgen.internal.utils.UtilsManager.getValueFromObjectRawData; import static com.box.sdkgen.internal.utils.UtilsManager.stringToByteStream; import com.box.sdkgen.client.BoxClient; @@ -338,13 +337,12 @@ public void testAiExtractStructuredWithFields() { .build())) .aiAgent(agentIgnoringOverridingEmbeddingsModel) .build()); - assert convertToString(getValueFromObjectRawData(response, "answer.hobby")) + assert convertToString(response.getAnswer().get("hobby")) .equals(convertToString(Arrays.asList("guitar"))); - assert convertToString(getValueFromObjectRawData(response, "answer.firstName")).equals("John"); - assert convertToString(getValueFromObjectRawData(response, "answer.lastName")).equals("Doe"); - assert convertToString(getValueFromObjectRawData(response, "answer.dateOfBirth")) - .equals("1990-07-04"); - assert convertToString(getValueFromObjectRawData(response, "answer.age")).equals("34"); + assert convertToString(response.getAnswer().get("firstName")).equals("John"); + assert convertToString(response.getAnswer().get("lastName")).equals("Doe"); + assert convertToString(response.getAnswer().get("dateOfBirth")).equals("1990-07-04"); + assert convertToString(response.getAnswer().get("age")).equals("34"); assert response.getCompletionReason().equals("done"); client.getFiles().deleteFileById(file.getId()); } @@ -420,12 +418,11 @@ public void testAiExtractStructuredWithMetadataTemplate() { .scope("enterprise") .build()) .build()); - assert convertToString(getValueFromObjectRawData(response, "answer.firstName")).equals("John"); - assert convertToString(getValueFromObjectRawData(response, "answer.lastName")).equals("Doe"); - assert convertToString(getValueFromObjectRawData(response, "answer.dateOfBirth")) - .equals("1990-07-04T00:00:00Z"); - assert convertToString(getValueFromObjectRawData(response, "answer.age")).equals("34"); - assert convertToString(getValueFromObjectRawData(response, "answer.hobby")) + assert convertToString(response.getAnswer().get("firstName")).equals("John"); + assert convertToString(response.getAnswer().get("lastName")).equals("Doe"); + assert convertToString(response.getAnswer().get("dateOfBirth")).equals("1990-07-04T00:00:00Z"); + assert convertToString(response.getAnswer().get("age")).equals("34"); + assert convertToString(response.getAnswer().get("hobby")) .equals(convertToString(Arrays.asList("guitar"))); assert response.getCompletionReason().equals("done"); client diff --git a/src/test/java/com/box/sdkgen/events/EventsITest.java b/src/test/java/com/box/sdkgen/events/EventsITest.java index f647163b7..c342ceb58 100644 --- a/src/test/java/com/box/sdkgen/events/EventsITest.java +++ b/src/test/java/com/box/sdkgen/events/EventsITest.java @@ -46,6 +46,7 @@ public void testEventUpload() { assert events.getEntries().size() > 0; Event firstEvent = events.getEntries().get(0); assert convertToString(firstEvent.getEventType()).equals("UPLOAD"); + assert convertToString(firstEvent.getAdditionalDetails().get("hash_type")).equals("sha1"); EventSource source = firstEvent.getSource().getEventSource(); assert convertToString(source.getItemType()).equals("file") || convertToString(source.getItemType()).equals("folder"); From 120066ec5ff501440f4ffe87f16fdc8e4af9d0a1 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Fri, 3 Oct 2025 11:22:57 +0200 Subject: [PATCH 039/148] chore: Fix auto-update job (box/box-codegen#856) (#1477) --- .codegen.json | 2 +- .github/workflows/autoupdate-pr.yml | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index 18c0213b6..277033299 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "10c68c7", "specHash": "62fdfd1", "version": "10.0.0" } +{ "engineHash": "9334953", "specHash": "62fdfd1", "version": "10.0.0" } diff --git a/.github/workflows/autoupdate-pr.yml b/.github/workflows/autoupdate-pr.yml index 0540ae82a..030e9154c 100644 --- a/.github/workflows/autoupdate-pr.yml +++ b/.github/workflows/autoupdate-pr.yml @@ -4,7 +4,6 @@ on: branches: - main - sdk-gen - - combined-sdk jobs: update_pull_requests: @@ -26,7 +25,7 @@ jobs: - name: Auto update pull requests run: | - PR_LIST=$(curl -s -H "Authorization: Bearer ${{ secrets.DISPATCH_ACCESS_TOKEN }}" "https://api.github.com/repos/$GITHUB_REPOSITORY/pulls?state=open&head=${{ github.ref_name }}" | jq -r '.[] | .head.ref') + PR_LIST=$(curl -s -H "Authorization: Bearer ${{ secrets.DISPATCH_ACCESS_TOKEN }}" "https://api.github.com/repos/$GITHUB_REPOSITORY/pulls?state=open&base=${{ github.ref_name }}" | jq -r '.[] | .head.ref') for pr_branch in $PR_LIST; do git checkout "$pr_branch" if git merge origin/${{ github.ref_name }}; then From 6896386c6086996399066b09b5afc998a5a95ca4 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Fri, 3 Oct 2025 11:57:16 +0200 Subject: [PATCH 040/148] fix: Make `role` parameter of update collaboration optional (box/box-openapi#557) (#1479) --- .codegen.json | 2 +- docs/usercollaborations.md | 4 +-- .../UpdateCollaborationByIdRequestBody.java | 21 +++++-------- .../UserCollaborationsManager.java | 30 +++++++++++++++++-- .../UserCollaborationsITest.java | 15 ++++++---- 5 files changed, 47 insertions(+), 25 deletions(-) diff --git a/.codegen.json b/.codegen.json index 277033299..4b5052051 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "9334953", "specHash": "62fdfd1", "version": "10.0.0" } +{ "engineHash": "9334953", "specHash": "c7acada", "version": "10.0.0" } diff --git a/docs/usercollaborations.md b/docs/usercollaborations.md index f95501c08..dbc2eca7c 100644 --- a/docs/usercollaborations.md +++ b/docs/usercollaborations.md @@ -41,7 +41,7 @@ Returns a collaboration object. Updates a collaboration. Can be used to change the owner of an item, or to -accept collaboration invites. +accept collaboration invites. In case of accepting collaboration invite, role is not required. This operation is performed by calling function `updateCollaborationById`. @@ -50,7 +50,7 @@ See the endpoint docs at ``` -client.getUserCollaborations().updateCollaborationById(collaborationId, new UpdateCollaborationByIdRequestBody(UpdateCollaborationByIdRequestBodyRoleField.VIEWER)) +client.getUserCollaborations().updateCollaborationById(collaborationId, new UpdateCollaborationByIdRequestBody.Builder().role(UpdateCollaborationByIdRequestBodyRoleField.VIEWER).build()) ``` ### Arguments diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBody.java index ebf4849e0..50e7c6ebb 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBody.java @@ -23,7 +23,7 @@ public class UpdateCollaborationByIdRequestBody extends SerializableObject { using = UpdateCollaborationByIdRequestBodyRoleField .UpdateCollaborationByIdRequestBodyRoleFieldSerializer.class) - protected final EnumWrapper role; + protected EnumWrapper role; /** * Set the status of a `pending` collaboration invitation, effectively accepting, or rejecting the @@ -72,15 +72,8 @@ public class UpdateCollaborationByIdRequestBody extends SerializableObject { @JsonProperty("can_view_path") protected Boolean canViewPath; - public UpdateCollaborationByIdRequestBody(UpdateCollaborationByIdRequestBodyRoleField role) { + public UpdateCollaborationByIdRequestBody() { super(); - this.role = new EnumWrapper(role); - } - - public UpdateCollaborationByIdRequestBody( - @JsonProperty("role") EnumWrapper role) { - super(); - this.role = role; } protected UpdateCollaborationByIdRequestBody(Builder builder) { @@ -151,7 +144,7 @@ public String toString() { public static class Builder extends NullableFieldTracker { - protected final EnumWrapper role; + protected EnumWrapper role; protected EnumWrapper status; @@ -159,14 +152,14 @@ public static class Builder extends NullableFieldTracker { protected Boolean canViewPath; - public Builder(UpdateCollaborationByIdRequestBodyRoleField role) { - super(); + public Builder role(UpdateCollaborationByIdRequestBodyRoleField role) { this.role = new EnumWrapper(role); + return this; } - public Builder(EnumWrapper role) { - super(); + public Builder role(EnumWrapper role) { this.role = role; + return this; } public Builder status(UpdateCollaborationByIdRequestBodyStatusField status) { diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/UserCollaborationsManager.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/UserCollaborationsManager.java index 38a7c24f9..24cde5ecd 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/UserCollaborationsManager.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/UserCollaborationsManager.java @@ -98,7 +98,20 @@ public Collaboration getCollaborationById( /** * Updates a collaboration. Can be used to change the owner of an item, or to accept collaboration - * invites. + * invites. In case of accepting collaboration invite, role is not required. + * + * @param collaborationId The ID of the collaboration. Example: "1234" + */ + public Collaboration updateCollaborationById(String collaborationId) { + return updateCollaborationById( + collaborationId, + new UpdateCollaborationByIdRequestBody(), + new UpdateCollaborationByIdHeaders()); + } + + /** + * Updates a collaboration. Can be used to change the owner of an item, or to accept collaboration + * invites. In case of accepting collaboration invite, role is not required. * * @param collaborationId The ID of the collaboration. Example: "1234" * @param requestBody Request body of updateCollaborationById method @@ -111,7 +124,20 @@ public Collaboration updateCollaborationById( /** * Updates a collaboration. Can be used to change the owner of an item, or to accept collaboration - * invites. + * invites. In case of accepting collaboration invite, role is not required. + * + * @param collaborationId The ID of the collaboration. Example: "1234" + * @param headers Headers of updateCollaborationById method + */ + public Collaboration updateCollaborationById( + String collaborationId, UpdateCollaborationByIdHeaders headers) { + return updateCollaborationById( + collaborationId, new UpdateCollaborationByIdRequestBody(), headers); + } + + /** + * Updates a collaboration. Can be used to change the owner of an item, or to accept collaboration + * invites. In case of accepting collaboration invite, role is not required. * * @param collaborationId The ID of the collaboration. Example: "1234" * @param requestBody Request body of updateCollaborationById method diff --git a/src/test/java/com/box/sdkgen/usercollaborations/UserCollaborationsITest.java b/src/test/java/com/box/sdkgen/usercollaborations/UserCollaborationsITest.java index c9fc1381f..21eeb78e7 100644 --- a/src/test/java/com/box/sdkgen/usercollaborations/UserCollaborationsITest.java +++ b/src/test/java/com/box/sdkgen/usercollaborations/UserCollaborationsITest.java @@ -66,8 +66,9 @@ public void testUserCollaborations() { .getUserCollaborations() .updateCollaborationById( collaborationId, - new UpdateCollaborationByIdRequestBody( - UpdateCollaborationByIdRequestBodyRoleField.VIEWER)); + new UpdateCollaborationByIdRequestBody.Builder() + .role(UpdateCollaborationByIdRequestBodyRoleField.VIEWER) + .build()); assert convertToString(updatedCollaboration.getRole()).equals("viewer"); client.getUserCollaborations().deleteCollaborationById(collaborationId); assertThrows( @@ -110,8 +111,9 @@ public void testConvertingUserCollaborationToOwnership() { .getUserCollaborations() .updateCollaborationById( collaboration.getId(), - new UpdateCollaborationByIdRequestBody( - UpdateCollaborationByIdRequestBodyRoleField.OWNER)); + new UpdateCollaborationByIdRequestBody.Builder() + .role(UpdateCollaborationByIdRequestBodyRoleField.OWNER) + .build()); assert ownerCollaboration == null; Collaborations folderCollaborations = client.getListCollaborations().getFolderCollaborations(folder.getId()); @@ -155,8 +157,9 @@ public void testExternalUserCollaborations() { .getUserCollaborations() .updateCollaborationById( collaborationId, - new UpdateCollaborationByIdRequestBody( - UpdateCollaborationByIdRequestBodyRoleField.VIEWER)); + new UpdateCollaborationByIdRequestBody.Builder() + .role(UpdateCollaborationByIdRequestBodyRoleField.VIEWER) + .build()); assert convertToString(updatedCollaboration.getRole()).equals("viewer"); client.getUserCollaborations().deleteCollaborationById(collaborationId); assertThrows( From 3d3085234566ffdfa8f18575cf99d842fd383a05 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Fri, 3 Oct 2025 17:53:03 +0200 Subject: [PATCH 041/148] docs: Update README with versioning strategy (box/box-codegen#857) (#1488) --- .codegen.json | 2 +- README.md | 30 ++++++++++++++++++++++++++---- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/.codegen.json b/.codegen.json index 4b5052051..717f836ab 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "9334953", "specHash": "c7acada", "version": "10.0.0" } +{ "engineHash": "7523fdd", "specHash": "fa34496", "version": "10.0.0" } diff --git a/README.md b/README.md index 3541ca3df..f944077ef 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,28 @@ “box-dev-logo”

    +# Versioning Strategy + +Starting with v10 of the SDK, we’ve introduced a new generated codebase designed to enhance your experience with the Box API. +It is currently available on the [sdk-gen](https://github.com/box/box-java-sdk/tree/sdk-gen) branch and uses the new `com.box.sdkgen` package instead of the old `com.box.sdk`. + +v10 is targeted at new users of Box Java SDK and users already working with the generated Box Java SDK previously available under the [Box Java SDK Gen repository](https://github.com/box/box-java-sdk-gen). + +For users of v4 of the Box Java SDK, no action is required at this time — we’ll be providing an upcoming v5 release that will include both `com.box.sdk` and `com.box.sdkgen` packages for a smooth migration path. To avoid unintentional upgrades, pin your version to `com.box:box-java-sdk:4.16.4`. + +For full guidance on SDK versioning, see the [Box SDK Versioning Guide](https://developer.box.com/guides/tooling/sdks/sdk-versioning/). + +--- + +## Which Version Should I Use? + +| Scenario | Recommended Version | Example Dependency | +| --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ | ----------------------------- | +| Creating a new application | Use [v10](https://github.com/box/box-java-sdk/tree/sdk-gen) | `com.box:box-sdkgen:10.0.0` | +| Existing app using [box-java-sdk-gen](https://mvnrepository.com/artifact/com.box/box-java-sdk-gen) artifact | Upgrade to [v10](https://github.com/box/box-java-sdk/tree/sdk-gen) | `com.box:box-sdkgen:10.0.0` | +| Existing app using [box-java-sdk](https://mvnrepository.com/artifact/com.box/box-java-sdk) and planning to use new features | Wait for v5 to start migration process | TBD | +| Existing app using [box-java-sdk](https://mvnrepository.com/artifact/com.box/box-java-sdk) and not planning changes | Stay on your current version | `com.box:box-java-sdk:4.16.4` | + # Box Java SDK [![Project Status](http://opensource.box.com/badges/active.svg)](http://opensource.box.com/badges) @@ -149,11 +171,11 @@ The Java SDK uses third-party libraries that are required for usage. Their licen 6. [jose4j v0.9.6](https://mvnrepository.com/artifact/org.bitbucket.b_c/jose4j/0.9.6) Maven: `org.bitbucket.b_c:jose4j:0.9.6` Licence: [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) -7. [bcprov-jdk18on v1.78.1](https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk18on/1.78.1) - Maven: `org.bouncycastle:bcprov-jdk18on:1.78.1` +7. [bcprov-jdk18on v1.82](https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk18on/1.82) + Maven: `org.bouncycastle:bcprov-jdk18on:1.82` Licence: [MIT](https://opensource.org/licenses/MIT) -8. [bcpkix-jdk18on v1.78.1](https://mvnrepository.com/artifact/org.bouncycastle/bcpkix-jdk18on/1.78.1) - Maven: `org.bouncycastle:bcpkix-jdk18on:1.78.1` +8. [bcpkix-jdk18on v1.82](https://mvnrepository.com/artifact/org.bouncycastle/bcpkix-jdk18on/1.82) + Maven: `org.bouncycastle:bcpkix-jdk18on:1.82` Licence: [MIT](https://opensource.org/licenses/MIT) The following libraries are required for running tests: From 2d4db87d0432acd25d05d81c19374c98092b91be Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Mon, 6 Oct 2025 13:24:59 +0200 Subject: [PATCH 042/148] chore: release version 10.1.0 (#1489) --- .codegen.json | 2 +- CHANGELOG.md | 13 +++++++++++++ build.gradle | 2 +- .../com/box/sdkgen/networking/version/Version.java | 2 +- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index 717f836ab..3eb8caa4c 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "7523fdd", "specHash": "fa34496", "version": "10.0.0" } +{ "engineHash": "7523fdd", "specHash": "fa34496", "version": "10.1.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 07f956c07..05f4c7a6d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,19 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [10.1.0](https://github.com/box/box-java-sdk/compare/v10.0.0...v10.1.0) (2025-10-06) + + +### Bug Fixes + +* Allow flexible key-value data in `AiExtractResponse.answer` and `Event.additionalDetails` (box/box-openapi[#556](https://github.com/box/box-java-sdk/issues/556)) ([#1470](https://github.com/box/box-java-sdk/issues/1470)) ([e215a5f](https://github.com/box/box-java-sdk/commit/e215a5f2502e694421a05d8da550d2b305c09460)) +* Make `role` parameter of update collaboration optional (box/box-openapi[#557](https://github.com/box/box-java-sdk/issues/557)) ([#1479](https://github.com/box/box-java-sdk/issues/1479)) ([6896386](https://github.com/box/box-java-sdk/commit/6896386c6086996399066b09b5afc998a5a95ca4)) + + +### New Features and Enhancements + +* Add `Javadoc` comments (box/box-codegen[#839](https://github.com/box/box-java-sdk/issues/839)) ([#1465](https://github.com/box/box-java-sdk/issues/1465)) ([c72407d](https://github.com/box/box-java-sdk/commit/c72407dc77cc67f3a178d607a2b1bd4e90e832a8)) + ## [10.0.0](https://github.com/box/box-java-sdk/compare/v4.16.3...v10.0.0) (2025-09-17) Introducing **`Box SDK v10`**, a major release designed to elevate your developer experience and streamline integration with Box Content Cloud. Currently available as a separate [`sdk-gen`](https://github.com/box/box-java-sdk/tree/sdk-gen) branch, `v10` will ultimately become the main branch. diff --git a/build.gradle b/build.gradle index ec03f999a..b66babc56 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ plugins { } group = "com.box" archivesBaseName = "box-java-sdk" -version = "10.0.0" +version = "10.1.0" java { sourceCompatibility = JavaVersion.toVersion(libraryJavaVersion) targetCompatibility = JavaVersion.toVersion(libraryJavaVersion) diff --git a/src/main/java/com/box/sdkgen/networking/version/Version.java b/src/main/java/com/box/sdkgen/networking/version/Version.java index 9506c4e88..4c8218e3c 100644 --- a/src/main/java/com/box/sdkgen/networking/version/Version.java +++ b/src/main/java/com/box/sdkgen/networking/version/Version.java @@ -3,6 +3,6 @@ public class Version { public static String getVersion() { - return "10.0.0"; + return "10.1.0"; } } From 25553a958ce663eddda216d5afe08f7523eacd27 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 7 Oct 2025 14:35:57 +0200 Subject: [PATCH 043/148] test: Change `Event.additionalDetails` field assertion in events test (box/box-codegen#858) (#1491) --- .codegen.json | 2 +- src/test/java/com/box/sdkgen/events/EventsITest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.codegen.json b/.codegen.json index 3eb8caa4c..69bc591f1 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "7523fdd", "specHash": "fa34496", "version": "10.1.0" } +{ "engineHash": "733e376", "specHash": "fa34496", "version": "10.1.0" } diff --git a/src/test/java/com/box/sdkgen/events/EventsITest.java b/src/test/java/com/box/sdkgen/events/EventsITest.java index c342ceb58..a84f48ae5 100644 --- a/src/test/java/com/box/sdkgen/events/EventsITest.java +++ b/src/test/java/com/box/sdkgen/events/EventsITest.java @@ -46,7 +46,7 @@ public void testEventUpload() { assert events.getEntries().size() > 0; Event firstEvent = events.getEntries().get(0); assert convertToString(firstEvent.getEventType()).equals("UPLOAD"); - assert convertToString(firstEvent.getAdditionalDetails().get("hash_type")).equals("sha1"); + assert !(convertToString(firstEvent.getAdditionalDetails().get("service_id")).equals("")); EventSource source = firstEvent.getSource().getEventSource(); assert convertToString(source.getItemType()).equals("file") || convertToString(source.getItemType()).equals("folder"); From 9451d7808a47476eed380baecf99b70bf330b9d4 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 21 Oct 2025 10:49:53 +0200 Subject: [PATCH 044/148] chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] (#1511) --- .codegen.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index 69bc591f1..34541e444 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "733e376", "specHash": "fa34496", "version": "10.1.0" } +{ "engineHash": "fa0419f", "specHash": "fa34496", "version": "10.1.0" } From 6f4bcaa5d249b5cef8106d5a0fa425896233f928 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 22 Oct 2025 15:16:02 +0200 Subject: [PATCH 045/148] docs: Add migration guides (box/box-codegen#867) (#1518) --- .codegen.json | 2 +- ...om-box-java-sdk-gen-v0-to-box-java-sdk.md} | 109 ++- .../from-com-box-sdk-to-com-box-sdkgen.md | 685 ++++++++++++++++++ migration-guides/from-v3-to-v4.md | 243 +++++++ migration-guides/from-v4-to-v10.md | 654 +---------------- migration-guides/from-v4-to-v5.md | 109 +++ migration-guides/from-v5-to-v10.md | 61 ++ 7 files changed, 1218 insertions(+), 645 deletions(-) rename migration-guides/{from-box-java-sdk-gen-v0-to-box-java-sdk-v10.md => from-box-java-sdk-gen-v0-to-box-java-sdk.md} (59%) create mode 100644 migration-guides/from-com-box-sdk-to-com-box-sdkgen.md create mode 100644 migration-guides/from-v3-to-v4.md create mode 100644 migration-guides/from-v4-to-v5.md create mode 100644 migration-guides/from-v5-to-v10.md diff --git a/.codegen.json b/.codegen.json index 34541e444..f674cde15 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "fa0419f", "specHash": "fa34496", "version": "10.1.0" } +{ "engineHash": "192deac", "specHash": "fa34496", "version": "10.1.0" } diff --git a/migration-guides/from-box-java-sdk-gen-v0-to-box-java-sdk-v10.md b/migration-guides/from-box-java-sdk-gen-v0-to-box-java-sdk.md similarity index 59% rename from migration-guides/from-box-java-sdk-gen-v0-to-box-java-sdk-v10.md rename to migration-guides/from-box-java-sdk-gen-v0-to-box-java-sdk.md index be55c1b75..33d6b8bc0 100644 --- a/migration-guides/from-box-java-sdk-gen-v0-to-box-java-sdk-v10.md +++ b/migration-guides/from-box-java-sdk-gen-v0-to-box-java-sdk.md @@ -1,8 +1,12 @@ -# Migration guide from beta release (v0.X.Y) of the `box-java-sdk-gen` to the v10 version of the `box-java-sdk` +# Migration guide from beta release (v0.X.Y) of the `box-java-sdk-gen` to the `box-java-sdk` + +Note: This guide applies only to migrations targeting Box Java SDK v5.X.Y or v10.X.Y. +It does not apply to other major versions (e.g., v6.X, v11.X). +- [Introduction](#introduction) - [Installation](#installation) - [How to migrate](#how-to-migrate) - [Maven](#maven) @@ -11,20 +15,39 @@ - [How to migrate](#how-to-migrate-1) - [Removed unused models from schemas namespace](#removed-unused-models-from-schemas-namespace) - [How to migrate](#how-to-migrate-2) +- [Usage](#usage) + - [Using the Box Java SDK v10](#using-the-box-java-sdk-v10) + - [Using the Box Java SDK v5](#using-the-box-java-sdk-v5) +## Introduction + +From the `box-java-sdk-gen` you can migrate either to v5 or v10 of the Box Java SDK. +Your choice should depend on whether you want to continue using the manually maintained SDK (Box Java SDK v4) alongside the generated one or not. + +The v5 version of the Box Java SDK consolidates both the legacy SDK package `com.box.sdk` and the generated one `com.box.sdkgen`. + +- If previously you were using both artifacts `box-java-sdk` v4 and `box-java-sdk-gen` v0, migrate to v5 version of the Box Java SDK which consolidates `com.box.sdk` and `com.box.sdkgen` packages. +- If you were only using the generated artifact `box-java-sdk-gen`, migrate to v10 version of the Box Java SDK which contains only the generated `com.box.sdkgen` package. + +| Scenario | Your current usage | Recommended target | Packages included in target | Why this choice | Notes | +| -------------------------------------------- | ---------------------------------------------------------- | ------------------ | ----------------------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| Using both manual and generated SDK together | `com.box.sdk` v4 + `com.box.sdkgen` v0 in the same project | v5.X.Y | `com.box.sdk` (manual) + `com.box.sdkgen` (generated) | Keep existing v4 code while adopting new features from the generated SDK | Run both modules side by side; use type aliases to avoid name conflicts if necessary | +| Using only the generated SDK | `com.box.sdkgen` v0 only | v10.X.Y | `com.box.sdkgen` (generated) only | Clean upgrade path with no legacy module; simpler dependency surface | Best when you don’t need the manual `com.box.sdk` package | + ## Installation -In order to start using v10 version of the Box Java SDK, you need to change the dependency in your project. +In order to start using v5 or v10 version of the Box Java SDK, you need to change the dependency in your project. The artifact name has changed from `com.box:box-java-sdk-gen` to `com.box:box-java-sdk`. -You also need to set the version to `10.0.0` or higher. You can find the latest version on [Maven Central](https://search.maven.org/artifact/com.box/box-java-sdk). +You also need to set the version to `5.X.Y` if you are migrating to v5 or `10.X.Y` if you are migrating to v10. +You can find the latest version on [Maven Central](https://search.maven.org/artifact/com.box/box-java-sdk). ### How to migrate #### Maven -To start using v10 version of Box Java SDK in your Maven project replace the dependency in your `pom.xml` file. +To start using v5 or v10 version of Box Java SDK in your Maven project replace the dependency in your `pom.xml` file. **Old (`box-java-sdk-gen-v0`)** @@ -46,9 +69,19 @@ To start using v10 version of Box Java SDK in your Maven project replace the dep ``` +**New (`box-java-sdk-v5`)** + +```xml + + com.box + box-java-sdk + 5.0.0 + +``` + #### Gradle -To start using v10 version of Box Java SDK in your Gradle project replace the dependency in your `build.gradle` file. +To start using v5 or v10 version of Box Java SDK in your Gradle project replace the dependency in your `build.gradle` file. **Old (`box-java-sdk-gen-v0`)** @@ -62,6 +95,12 @@ implementation 'com.box:box-java-sdk-gen:0.8.0' implementation 'com.box:box-java-sdk:10.0.0' ``` +**New (`box-java-sdk-v5`)** + +```groovy +implementation 'com.box:box-java-sdk:5.0.0' +``` + ## Union classes name changes In the beta version of the `box-java-sdk-gen` our `OneOf` class names (representing unions from the OpenAPI specification) @@ -147,3 +186,63 @@ Here is the full list of removed types: | WorkflowFull | If your code references any of these types, remove those references. + +## Usage + +### Using the Box Java SDK v10 + +After migration from `box-java-sdk-gen` to the `box-java-sdk` v10, you can still use the `com.box.sdkgen` package in the same way as before. +To access the client for interacting with the Box API, simply import `BoxClient` and any other necessary classes from the `com.box.sdkgen` package. + +```java +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.box.developertokenauth.BoxDeveloperTokenAuth; + +BoxDeveloperTokenAuth auth = new BoxDeveloperTokenAuth("DEVELOPER_TOKEN"); +BoxClient client = new BoxClient(auth); +client.folders.getFolderItems("0").getEntries().forEach(item -> { + System.out.println(item.toString()); + }); +``` + +### Using the Box Java SDK v5 + +After migration to Box Java SDK v5, you can use both the manual Box Java SDK package `com.box.sdk` and the generated one `com.box.sdkgen`. +You just need to import the required classes from the appropriate package depending on which SDK you intend to use. +If both packages contain classes with the same name, you can use fully qualified names to resolve any naming conflicts. + +```java +import com.box.sdk.BoxConfig; +import com.box.sdk.BoxDeveloperEditionAPIConnection; + +import com.box.sdk.BoxFolder; +import com.box.sdkgen.box.jwtauth.BoxJWTAuth; +import com.box.sdkgen.box.jwtauth.JWTConfig; +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.folders.UpdateFolderByIdRequestBody; +import com.box.sdkgen.schemas.folder.Folder; + +import java.io.FileReader; +import java.io.Reader; + +public class Main { + public static void main(String[] args) throws Exception { + + Reader reader = new FileReader("src/example/config/config.json"); + BoxConfig boxConfig = BoxConfig.readFrom(reader); + BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection.getAppEnterpriseConnection(boxConfig); + + JWTConfig config = JWTConfig.fromConfigFile("src/example/config/config.json"); + BoxJWTAuth auth = new BoxJWTAuth(config); + BoxClient client = new BoxClient(auth); + + BoxFolder rootFolder = new BoxFolder(api, "0"); + BoxFolder.Info subfolder = rootFolder.createFolder("My Subfolder"); + Folder updatedFolder = client.getFolders().updateFolderById( + subfolder.getID(), + new UpdateFolderByIdRequestBody.Builder().name("My Updated Subfolder").build() + ); + System.out.println("Created folder with ID " + subfolder.getID() + " has been updated to " + updatedFolder.getName()); + } +} +``` diff --git a/migration-guides/from-com-box-sdk-to-com-box-sdkgen.md b/migration-guides/from-com-box-sdk-to-com-box-sdkgen.md new file mode 100644 index 000000000..54e72aa20 --- /dev/null +++ b/migration-guides/from-com-box-sdk-to-com-box-sdkgen.md @@ -0,0 +1,685 @@ +# Migration guide: migrate from `com.box.sdk` to `com.box.sdkgen` package + + + + +- [Introduction](#introduction) + - [Who is this for?](#who-is-this-for) +- [Key differences](#key-differences) + - [Manager approach](#manager-approach) + - [Immutable design](#immutable-design) + - [Consistent method signature](#consistent-method-signature) +- [Authentication](#authentication) + - [Developer Token](#developer-token) + - [JWT Auth](#jwt-auth) + - [Using JWT configuration file](#using-jwt-configuration-file) + - [Providing JWT configuration manually](#providing-jwt-configuration-manually) + - [Authenticate user](#authenticate-user) + - [Client Credentials Grant](#client-credentials-grant) + - [Obtaining Service Account token](#obtaining-service-account-token) + - [Obtaining User token](#obtaining-user-token) + - [Switching between Service Account and User](#switching-between-service-account-and-user) + - [OAuth 2.0 Auth](#oauth-20-auth) + - [Get Authorization URL](#get-authorization-url) + - [Authenticate](#authenticate) + - [Store token and retrieve token callbacks](#store-token-and-retrieve-token-callbacks) + - [Downscope token](#downscope-token) + - [Revoke token](#revoke-token) +- [Configuration](#configuration) + - [As-User header](#as-user-header) + - [Custom Base URLs](#custom-base-urls) +- [Convenience methods](#convenience-methods) + - [Webhook validation](#webhook-validation) + - [Chunked upload of big files](#chunked-upload-of-big-files) + + + +## Introduction + +Version availability: + +- v4: ships only `com.box.sdk` package +- v5: ships both `com.box.sdk` and `com.box.sdkgen` packages (side-by-side) +- v10+: ships only `com.box.sdkgen` module + +This document focuses on helping you migrate code from the manually maintained `com.box.sdk` package to the generated `com.box.sdkgen` package. +Many APIs were redesigned for consistency and modern Java patterns, so this guide calls out how to adopt the new shapes safely and incrementally. + +Supported migration paths: + +- v4 → v5: adopt `com.box.sdkgen` gradually while keeping existing `com.box.sdk` usage +- v4 → v10+: migrate directly to `com.box.sdkgen` package only +- v5 (within the same version): move usage from `com.box.sdk` to `com.box.sdkgen` gradually + +For comprehensive API docs with sample code for all methods, see the repository documentation in the root `docs` directory: [`docs/`](../docs/). + +We recommend using `com.box.sdkgen` as the preferred SDK going forward. This SDK is automatically generated from the +Box OpenAPI specification, ensuring consistency, reliability, and full API coverage. + +Key Benefits: + +- Comprehensive Coverage: Supports all Box API endpoints with consistent and predictable method signatures. +- Rapid Feature Availability: Automatically includes new features as soon as they are released in the Box API. +- Explicit Data Models: Includes clear, well-defined models for all API resources to improve readability and maintainability. +- Immutable Design: Built for immutability, making code behavior more predictable and easier to reason about. +- Rich Documentation: Offers detailed usage examples for every API method to help developers get started quickly. + +### Who is this for? + +- Developers with existing code using `com.box.sdk` who want to start using `com.box.sdkgen` APIs. +- Developers using v5 of Box Java SDK that want to transition usage from `com.box.sdk` to `com.box.sdkgen` within the same app. + +## Key differences + +### Manager approach + +The main difference between the manual `com.box.sdk` package and the nextgen generated one, +is the way how API methods are aggregated into objects. + +**Old (`com.box.sdk`)** + +Firstly, in the `com.box.sdk` to be able to perform any action on an API object, e.g. `User`, you first had to create its class. +To do it is required to call: + +```java +BoxUser user = new BoxUser(api, "12345"); +``` + +to create a class representing an already existing User with id '12345', or create a new one with a call: + +```java +BoxUser.Info createdUserInfo = BoxUser.createAppUser(api, "A User"); +BoxUser user = new BoxUser(api, createdUserInfo.getID()); +``` + +Then, you could perform any action on created class, which will affect the user, e.g. + +```java +BoxUser.Info info = user.new Info(); +info.setName(name); +user.updateInfo(info); +``` + +**New (`com.box.sdkgen`)** + +In the `com.box.sdkgen` package, the API methods are grouped into dedicated manager classes, e.g. `User` object +has dedicated `UserManager` class. Each manager class instance is available in `BoxClient` object. +The fields storing references to the managers are named in the plural form of the resource that the +manager handles - `client.users` for `UsersManager`. If you want to perform any operation +connected with a `User` you need to call a respective method of `UserManager`. +For example, to get info about existing user you need to call: + +```java +UserFull user = client.users.getUsersById("12345"); +``` + +or to create a new user: + +```java +CreateUserRequestBody requestBody = + new CreateUserRequestBody.Builder("John Doe").build(); +UserFull user = client.users.createUser(requestBody); +``` + +The `UserFull` object returned by both of these methods is a data class - it does not contain any methods to call. +To perform any action on `User` object, you need to still use a `UserManager` method for that. +Usually these methods have a first argument, which accepts id of the object you want to access, +e.g. to update a user name, call method: + +```java +UpdateUserByIdRequestBody requestBody = + new UpdateUserByIdRequestBody.Builder().name("Mary").build(); +UserFull updatedUser = client.users.updateUserById(user.getId(), requestBody); +``` + +### Immutable design + +The `com.box.sdkgen` is designed to be mostly immutable. This means that methods, +which used to modify the existing object in `com.box.sdk` now return a new instance of the class with the modified state. +This design pattern is used to avoid side effects and make the code more predictable and easier to reason about. +Methods, which returns a new modified instance of an object, will always have a prefix `with` in their names, e.g. + +**New (`com.box.sdkgen`)** + +```java +BoxClient client = new BoxClient(auth); +BoxClient asUserClient = client.withAsUserHeader("USER_ID"); +``` + +### Consistent method signature + +To facilitate easier work with the new SDK, we have changed the API method signatures to be consistent and unified. + +**Old (`com.box.sdk`)** + +In the manual version, API methods had numerous parameters, which were not grouped into any objects and were passed as separate arguments, e.g. the method for creating a sign request looked like this: + +```java +public static BoxSignRequest.Info createSignRequest(BoxAPIConnection api, List sourceFiles, + List signers, String parentFolderId, + BoxSignRequestCreateParams optionalParams) +``` + +**New (`com.box.sdkgen`)** + +In `com.box.sdkgen`, we have adopted an approach of aggregating parameters into types based on their nature (path, body, query, headers). +This can be seen in the example corresponding to the above: + +```java +public SignRequest createSignRequest( + SignRequestCreateRequest requestBody, CreateSignRequestHeaders headers) +``` + +According to the convention, if an API endpoint requires a parameter placed in the URL path, +it will appear at the beginning of our method, such as `fileId` in this case. +When a request allows for a body, as in `POST` or `PUT`, the method includes a parameter named `requestBody`. +Following that, the method signature may include the `queryParams` parameter, followed by `headers`. +The types of parameters `requestBody`, `queryParams`, and `headers` are specific to each endpoint and, in their definition, +encompass all fields allowed by the API. +It's worth noting here that when all fields of a particular type are optional, the entire parameter becomes optional as well. +This allows us to pass only the parameters we actually want to provide when calling a given method, +without the risk of not providing a sufficient number of parameters. + +## Authentication + +The `com.box.sdkgen` package offers the same authentication methods as the `com.box.sdk` one. +Let's see the differences of their usage: + +### Developer Token + +**Old (`com.box.sdk`)** + +```java +BoxAPIConnection api = new BoxAPIConnection("YOUR-DEVELOPER-TOKEN"); +``` + +The `com.box.sdkgen` package provides a convenient `BoxDeveloperTokenAuth`, which allows authenticating +using developer token without necessity to provide a Client ID and Client Secret + +**New (`com.box.sdkgen`)** + +```java +BoxDeveloperTokenAuth auth = new BoxDeveloperTokenAuth("YOUR-DEVELOPER-TOKEN"); +BoxClient client = new BoxClient(auth); +``` + +### JWT Auth + +#### Using JWT configuration file + +**Old (`com.box.sdk`)** + +The static method, which reads the JWT configuration file has been changed: + +```java +Reader reader = new FileReader("src/example/config/config.json"); +BoxConfig boxConfig = BoxConfig.readFrom(reader); +IAccessTokenCache tokenCache = new InMemoryLRUAccessTokenCache(100); +BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection.getAppEnterpriseConnection(boxConfig, tokenCache); +``` + +**New (`com.box.sdkgen`)** + +```java +TokenStorage tokenStorage = new InMemoryTokenStorage(); // or any other implementation of TokenStorage +JWTConfig config = JWTConfig.fromConfigFile("src/example/config/config.json", tokenStorage); +BoxJWTAuth auth = new BoxJWTAuth(config); +BoxClient client = new BoxClient(auth); +``` + +#### Providing JWT configuration manually + +Some params in `JWTConfig` constructor have slightly different names than one in old `JWTAuth` class. + +**Old (`com.box.sdk`)** + +```java +JWTEncryptionPreferences jwtPreferences = new JWTEncryptionPreferences(); +jwtPreferences.setPublicKeyID("PUBLIC-KEY-ID"); +jwtPreferences.setPrivateKeyPassword("PRIVATE-KEY-PASSWORD"); +jwtPreferences.setPrivateKey("PRIVATE-KEY"); +jwtPreferences.setEncryptionAlgorithm(EncryptionAlgorithm.RSA_SHA_256); + +IAccessTokenCache accessTokenCache = new InMemoryLRUAccessTokenCache(100); +BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection + .getUserConnection("USER-ID", "CLIENT-ID","CLIENT-SECRET", jwtPreferences, accessTokenCache); + +BoxUser.Info userInfo = BoxUser.getCurrentUser(api).getInfo(); +``` + +**New (`com.box.sdkgen`)** + +```java +TokenStorage tokenStorage = new InMemoryTokenStorage(); +JWTConfig config = new JWTConfig.Builder("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET", "JWT_KEY_ID", "PRIVATE_KEY", "PRIVATE_KEY_PASSWORD") + .enterpriseId("123456") + .tokenStorage(tokenStorage) + .build(); +BoxJWTAuth auth = new BoxJWTAuth(config); +BoxClient client = new BoxClient(auth); +``` + +#### Authenticate user + +In `com.box.sdk` package method for user authentication was named `BoxDeveloperEditionAPIConnection getUserConnection(String userId, BoxConfig boxConfig, IAccessTokenCache accessTokenCache)` +and was accepting user id. The method was returning a new instance of `BoxDeveloperEditionAPIConnection` class, which was exchanging the existing token with the one with the user access. + +**Old (`com.box.sdk`)** + +```java +BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection.getUserConnection("USER_ID", boxConfig, tokenCache); +``` + +**New (`com.box.sdkgen`)** + +In `com.box.sdkgen`, to authenticate as user you need to call +`public BoxJWTAuth withUserSubject(String userId, TokenStorage tokenStorage)` method with id of the user +to authenticate. The method returns a new instance of `BoxJWTAuth` class, which will perform authentication call +in scope of the user on the first API call. The `tokenStorage` parameter is optional and allows to provide a custom +token storage for the new instance of `BoxJWTAuth` class. The new auth instance can be used to create a new user client +instance. + +```java +BoxJWTAuth userAuth = auth.withUserSubject("USER_ID"); +BoxClient userClient = new BoxClient(userAuth); +``` + +### Client Credentials Grant + +#### Obtaining Service Account token + +To authenticate as enterprise, the only difference between `com.box.sdk` and `com.box.sdkgen` packages is using the `CCGConfig` as a middle step. + +**Old (`com.box.sdk`)** + +```java +BoxCCGAPIConnection api = BoxCCGAPIConnection.applicationServiceAccountConnection( + "client_id", + "client_secret", + "enterprise_id" +); +``` + +**New (`com.box.sdkgen`)** + +```java +CCGConfig config = new CCGConfig.Builder("YOUR_CLIENT", "YOUR_CLIENT_SECRET") + .enterpriseId("ENTERPRISE_ID") + .build(); +BoxCCGAuth auth = new BoxCCGAuth(config); +BoxClient client = new BoxClient(auth); +``` + +#### Obtaining User token + +To authenticate as user, the only difference between the versions is using the `CCGConfig` as a middle step. + +**Old (`com.box.sdk`)** + +```java +BoxCCGAPIConnection api = BoxCCGAPIConnection.userConnection( + "client_id", + "client_secret", + "user_id" +); +``` + +**New (`com.box.sdkgen`)** + +```java +CCGConfig config = new CCGConfig.Builder("YOUR_CLIENT", "YOUR_CLIENT_SECRET") + .userId("USER_ID") + .build(); +BoxCCGAuth auth = new BoxCCGAuth(config); +BoxClient client = new BoxClient(auth); +``` + +### Switching between Service Account and User + +In `com.box.sdk` package, if you want to switch between the Service Account and User, you need to create another API connection. + +In `com.box.sdkgen`, to keep the immutability design, the methods switching authenticated subject were replaced with methods +returning a new instance of `BoxCCGAuth` class. The new instance will fetch a new token on the next API call. +The new auth instance can be used to create a new client instance. You can also specify `tokenStorage` parameter +to provide a custom token storage for the new instance. +The old instance of `BoxCCGAuth` class will remain unchanged and will still use the old token. + +**New (`com.box.sdkgen`)** + +```java +BoxCCGAuth userAuth = auth.withUserSubject("USER_ID"); +BoxClient userClient = new BoxClient(userAuth); +``` + +```java +BoxCCGAuth entAuth = auth.withEnterpriseSubject("ENTERPRISE_ID"); +BoxClient entClient = new BoxClient(entAuth); +``` + +### OAuth 2.0 Auth + +#### Get Authorization URL + +To get authorization url in the `com.box.sdkgen` package, you need to first create the `BoxOAuth` class using +`OAuthConfig` class. Then to get authorization url, call `public String getAuthorizeUrl(GetAuthorizeUrlOptions options)`. +Note that this method accepts the instance of `GetAuthorizeUrlOptions` class, which allows specifying extra options to API call. + +**Old (`com.box.sdk`)** + +In `com.box.sdk`, we did not have any method to get the authorization URL. Instead, we had to manually create the URL. + +```java +String authorizationUrl = "https://account.box.com/api/oauth2/authorize?client_id=[CLIENT_ID]&response_type=code"; +``` + +**New (`com.box.sdkgen`)** + +```java +BoxOAuth auth = new BoxOAuth(new OAuthConfig.Builder("CLIENT_ID", "CLIENT_SECRET").build()); +String authorizationUrl = auth.getAuthorizeUrl(); +``` + +#### Authenticate + +The method for authenticating using the authorization code has been changed. With the `com.box.sdk` package of the SDK, +you had to provide the authorization code to the `BoxAPIConnection` class constructor. In the `com.box.sdkgen` package, +you need to call the `public AccessToken getTokensAuthorizationCodeGrant(String authorizationCode)` method of the `BoxOAuth` class. +The method now returns an AccessToken object with `accessToken` and `refreshToken` fields, +while the old one was creating a new instance of `BoxAPIConnection` class. + +**Old (`com.box.sdk`)** + +```java +BoxAPIConnection client = new BoxAPIConnection( + "[CLIENT_ID]", + "[CLIENT_SECRET]", + "[CODE]" +); +``` + +**New (`com.box.sdkgen`)** + +```java +auth.getTokensAuthorizationCodeGrant("AUTHORIZATION_CODE"); +BoxClient client = new BoxClient(auth); +``` + +### Store token and retrieve token callbacks + +In the `com.box.sdkgen` package you can define your own class delegated for storing and retrieving a token. It has to inherit from +`TokenStorage` and implement all of its abstract methods. Next step would be to pass an instance of this class to the +AuthConfig constructor. + +**New (`com.box.sdkgen`)** + +```java +TokenStorage customTokenStorage = new TokenStorage() { + @Override + public void store(AccessToken accessToken) { + // Store the access token + } + + @Override + public AccessToken get() { + // Retrieve the access token + return null; + } + + @Override + public void clear() { + // Clear the access token + } +}; + +OAuthConfig config = new OAuthConfig.Builder("CLIENT_ID", "CLIENT_SECRET") + .tokenStorage(customTokenStorage) + .build(); +BoxOAuth auth = new BoxOAuth(config); +``` + +or reuse one of the provided implementations: `InMemoryTokenStorage`: + +```java +TokenStorage tokenStorage = new InMemoryTokenStorage(); +OAuthConfig config = new OAuthConfig.Builder("CLIENT_ID", "CLIENT_SECRET") + .tokenStorage(tokenStorage) + .build(); +BoxOAuth auth = new BoxOAuth(config); +``` + +### Downscope token + +The process of downscoping token in the new version is similar to the old one. The main difference is that in the new version +you need to call `downscopeToken` method of the `BoxOAuth` class instead of `getLowerScopedToken` method of the `BoxAPIConnection` class. + +**Old (`com.box.sdk`)** + +```java +BoxAPIConnection api = new BoxAPIConnection("YOUR-ACCESS-TOKEN"); + +String resource = "https://api.box.com/2.0/files/RESOURCE-ID"; +List scopes = new ArrayList(); +scopes.add("item_preview"); +scopes.add("item_content_upload"); + +ScopedToken token = api.getLowerScopedToken(scopes, resource); +``` + +**New (`com.box.sdkgen`)** + +```java +String resource = "https://api.box.com/2.0/files/123456789"; +List scopes = List.of("item_preview"); +AccessToken downscopedToken = auth.downscopeToken(scopes, resource, null, null); +BoxDeveloperTokenAuth downscopedAuth = new BoxDeveloperTokenAuth(downscopedToken.getAccessToken()); +BoxClient downscopedClient = new BoxClient(downscopedAuth); +``` + +### Revoke token + +To revoke current client's tokens in the `com.box.sdkgen` package, you need to call `revokeToken` method of the auth class instead of +`revoke` method. + +**Old (`com.box.sdk`)** + +```java +BoxAPIConnection api = new BoxAPIConnection("YOUR-ACCESS-TOKEN"); +api.revokeToken(); +``` + +**New (`com.box.sdkgen`)** + +```java +client.auth.revokeToken() +``` + +## Configuration + +### As-User header + +The As-User header is used by enterprise admins to make API calls on behalf of their enterprise's users. +This requires the API request to pass an `As-User: USER-ID` header. The following examples assume that the client has +been instantiated with an access token with appropriate privileges to make As-User calls. + +In `com.box.sdk` package you could call client `asUser(String userID)` method to create a new client to impersonate the provided user. + +**Old (`com.box.sdk`)** + +```java +BoxAPIConnection api = new BoxAPIConnection("YOUR-ACCESS-TOKEN"); +api.asUser("USER-ID"); +``` + +**New (`com.box.sdkgen`)** + +In the new version, the method was renamed to `withAsUserHeader` in the `BoxClient` class, +and returns a new instance of `BoxClient` class with the As-User header appended to all API calls made by the client. +The method accepts only user id as a parameter. + +```java +BoxClient userClient = client.withAsUserHeader("USER-ID"); +``` + +Additionally `BoxClient` offers a `withExtraHeaders(Map extraHeaders)` +method, which allows you to specify the custom set of headers, which will be included in every API call made by client. +Calling the `client.withExtraHeaders()` method creates a new client, leaving the original client unmodified. + +```java +BoxClient clientWithExtraHeaders = client.withExtraHeaders(new HashMap<>() {{ + put("X-My-Header", "124"); +}}); + +``` + +### Custom Base URLs + +**Old (`com.box.sdk`)** + +In `com.box.sdk` you could specify the custom base URLs, which will be used for API calls made by setting +the new values of static variables of the `API` class. + +```java +BoxAPIConnection api = new BoxAPIConnection("YOUR-DEVELOPER-TOKEN"); +api.setBaseAppUrl("https://example.app.com"); +api.setBaseURL("https://example.com"); +api.setUploadURL("https://upload.example.com"); +api.setTokenURL("https://example.com/token"); +``` + +**New (`com.box.sdkgen`)** + +In `com.box.sdkgen` this functionality has been implemented as part of the `BoxClient` class. +By calling the `client.withCustomBaseUrls()` method, you can specify the custom base URLs that will be used for API +calls made by client. Following the immutability pattern, this call creates a new client, leaving the original client unmodified. + +```java +BaseUrls baseUrls = new BaseUrls.Builder() + .baseUrl("https://new-base-url.com") + .uploadUrl("https://my-company-upload-url.com") + .oauth2Url("https://my-company.com/oauth2") + .build(); +BoxClient clientWithCustomBaseUrl = client.withCustomBaseUrls(baseUrls); +``` + +## Convenience methods + +### Webhook validation + +Webhook validation is used to validate a webhook message by verifying the signature and the delivery timestamp. + +**Old (`com.box.sdk`)** + +In `com.box.sdk`, when you receive a webhook message from Box, to validate that it actually came from Box +you need to call `BoxWebHookSignatureVerifier#verify(String sigVersion, String sigAlgorithm, String primarySignature, String secondarySignature, String payload, String deliveryTimestamp)` method. +It would return a `boolean` value indicating whether the message was valid. + +```java +// Webhook message contents are shown for demonstration purposes +// Normally these would come from your HTTP handler + +// Webhook message HTTP body +String messagePayload = "{" ++ "\"type\":\"webhook_event"," ++ "\"webhook\":{" ++ "\"id\":\"1234567890\"" ++ "}," ++ "\"trigger\":\"FILE.UPLOADED\"," ++ "\"source\":{" ++ "\"id\":\"1234567890\"," ++ "\"type\":\"file\"," ++ "\"name\":\"Test.txt\"" ++ "}}"; + +// Webhook message HTTP headers +Map messageHeaders = new HashMap(); +headers.put("BOX-DELIVERY-ID", "f96bb54b-ee16-4fc5-aa65-8c2d9e5b546f"); +headers.put("BOX-DELIVERY-TIMESTAMP", "2020-01-01T00:00:00-07:00"); +headers.put("BOX-SIGNATURE-ALGORITHM", "HmacSHA256"); +headers.put("BOX-SIGNATURE-PRIMARY", "6TfeAW3A1PASkgboxxA5yqHNKOwFyMWuEXny/FPD5hI="); +headers.put("BOX-SIGNATURE-SECONDARY", "v+1CD1Jdo3muIcbpv5lxxgPglOqMfsNHPV899xWYydo="); +headers.put("BOX-SIGNATURE-VERSION", "1"); + +// Your application's webhook keys, obtained from the Box Developer Console +String primaryKey = "4py2I9eSFb0ezXH5iPeQRcFK1LRLCdip"; +String secondaryKey = "Aq5EEEjAu4ssbz8n9UMu7EerI0LKj2TL"; + +BoxWebHookSignatureVerifier verifier = new BoxWebHookSignatureVerifier(primaryKey, secondaryKey); +boolean isValidMessage = verifier.verify( + headers.get("BOX-SIGNATURE-VERSION"), + headers.get("BOX-SIGNATURE-ALGORITHM"), + headers.get("BOX-SIGNATURE-PRIMARY"), + headers.get("BOX-SIGNATURE-SECONDARY"), + messagePayload, + headers.get("BOX-DELIVERY-TIMESTAMP") +); +``` + +**New (`com.box.sdkgen`)** + +In the `com.box.sdkgen` package of ths SDK, the `WebhooksManager.validateMessage()` method requires the `messagePayload` to be of type `string`, +map of headers to be of type `Map`, and the primary and secondary keys to be of type `String`. + +```java +// Webhook message HTTP body +String messagePayload = "{" + + "\"type\":\"webhook_event"," + + "\"webhook\":{" + + "\"id\":\"1234567890\"" + + "}," + + "\"trigger\":\"FILE.UPLOADED\"," + + "\"source\":{" + + "\"id\":\"1234567890\"," + + "\"type\":\"file\"," + + "\"name\":\"Test.txt\"" + + "}}"; + +// Webhook message HTTP headers +Map messageHeaders = new HashMap(); +headers.put("BOX-DELIVERY-ID", "f96bb54b-ee16-4fc5-aa65-8c2d9e5b546f"); +headers.put("BOX-DELIVERY-TIMESTAMP", "2020-01-01T00:00:00-07:00"); +headers.put("BOX-SIGNATURE-ALGORITHM", "HmacSHA256"); +headers.put("BOX-SIGNATURE-PRIMARY", "6TfeAW3A1PASkgboxxA5yqHNKOwFyMWuEXny/FPD5hI="); +headers.put("BOX-SIGNATURE-SECONDARY", "v+1CD1Jdo3muIcbpv5lxxgPglOqMfsNHPV899xWYydo="); +headers.put("BOX-SIGNATURE-VERSION", "1"); + +// Your application's webhook keys, obtained from the Box Developer Console +String primaryKey = "4py2I9eSFb0ezXH5iPeQRcFK1LRLCdip"; +String secondaryKey = "Aq5EEEjAu4ssbz8n9UMu7EerI0LKj2TL"; + +boolean isValidMessage = WebhooksManager.validateMessage( + messagePayload, messageHeaders, primaryKey, secondaryKey); +) +``` + +### Chunked upload of big files + +For large files or in cases where the network connection is less reliable, you may want to upload the file in parts. +This allows a single part to fail without aborting the entire upload, and failed parts are being retried automatically. + +**Old (`com.box.sdk`)** + +In `com.box.sdk`, you could use the `uploadLargeFile` method of the `BoxFolder` class to upload a large file. +This method accepted a `FileInputStream` as the input stream and the file size as a parameter. The method also required + +```java +File myFile = new File("My Large_File.txt"); +FileInputStream stream = new FileInputStream(myFile); + +BoxFolder rootFolder = BoxFolder.getRootFolder(api); +BoxFile.Info fileInfo = rootFolder.uploadLargeFile(inputStream, "My_Large_File.txt", myFile.length()); +``` + +**New (`com.box.sdkgen`)** + +In `com.box.sdkgen`, the equivalent method is `chunked_uploads.uploadBigFile()`. It accepts a file-like object +as the `file` parameter, and the `fileName` and `fileSize` parameters are now passed as arguments. +The `parentFolderId` parameter is also required to specify the folder where the file will be uploaded. + +```java +InputStream file = new FileInputStream(myFile); +String fileName = "My_Large_File.txt"; +long fileSize = 1234556L; +String parentFolderId = "123456789"; + +File uploadedFile = client.getChunkedUploads().uploadBigFile(file, fileName, fileSize, parentFolderId); +``` diff --git a/migration-guides/from-v3-to-v4.md b/migration-guides/from-v3-to-v4.md new file mode 100644 index 000000000..5bcf2f164 --- /dev/null +++ b/migration-guides/from-v3-to-v4.md @@ -0,0 +1,243 @@ +# Migration guide for versions 3.x.x -> 4.x.x + + + + +- [Configuration changes](#configuration-changes) + - [BoxDeveloperEditionAPIConnection](#boxdevelopereditionapiconnection) + - [MaxRequestAttempts](#maxrequestattempts) +- [Removed deprecated methods and classes](#removed-deprecated-methods-and-classes) +- [Replaced methods and classes](#replaced-methods-and-classes) + - [Shared links](#shared-links) + - [Retention Policies](#retention-policies) + - [Enterprise Events](#enterprise-events) + - [Search](#search) + - [BoxGroup](#boxgroup) + - [MetadataTemplate](#metadatatemplate) + - [Others](#others) + + + +The most important change this release includes is the replacement of the HTTP library from a native one to +OkHttp which allows SDK to: + +- Support the HTTP2 version of the HTTP protocol. +- Support proxies that do not use only basic authentication method. For details on creating custom proxy authenticators and an example of + NTLM proxy authentication, see [here](https://github.com/box/box-java-sdk/blob/kb/ok-http/doc/configuration.md#custom-proxy-authenticator). + +# Configuration changes + +## BoxDeveloperEditionAPIConnection + +Replaced `com.box.sdk.BoxDeveloperEditionAPIConnection#getAppUserConnection`with `com.box.sdk.BoxDeveloperEditionAPIConnection#getUserConnection`. + +### Example + +To create `com.box.sdk.BoxDeveloperEditionAPIConnection` configured for user access: + +```java +Reader reader = new FileReader("some-config.json"); +BoxConfig boxConfig = BoxConfig.readFrom(reader); + +BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection.getUserConnection(boxConfig); +``` + +### Documentation + +You can read more on BoxDeveloperEditionAPIConnection [here](../../README.md#boxdevelopereditionapiconnectionasenterpriseuser). + +## MaxRequestAttempts + +The `MaxRequestAttempts` are removed from `com.box.sdk.BoxGlobalSettings` and replaced with `MaxRetryAttempts`. +However, if you have API connection stored with the deprecated `MaxRequestAttempts` value it will be restored into `MaxRetryAttempts`. + +# Removed deprecated methods and classes + +1. `com.box.sdk.BoxAPIRequest.BoxAPIRequest(java.net.URL, java.lang.String)` - use constuctor that accepts `com.box.sdk.BoxAPIConnection`. +2. `com.box.sdk.BoxUser.moveFolderToUser` - this method is removed as this operation is not allowed by API. You can only transfer root folder to another user using `com.box.sdk.BoxUser.transferContent`. + +# Replaced methods and classes + +## Getting thumbnail + +Method `com.box.sdk.BoxFile.getThumbnail` was removed. To get any file representation use `com.box.sdk.BoxFile.getRepresentationContent(java.lang.String, java.io.OutputStream)` +or `com.box.sdk.BoxFile.getRepresentationContent(java.lang.String, java.lang.String, java.io.OutputStream)`. + +### Example + +To read the PDF representation of file with id `12345`: + +```java +ByteArrayOutputStream output = new ByteArrayOutputStream(); + +BoxFile file = new BoxFile(api, "12345"); +file.getRepresentationContent("[pdf]", output); +``` + +### Documentation + +For more details on getting representation content go [here](../files.md#get-representation-content). + +## Shared links + +Removed variant of methods that do not use `com.box.sdk.sharedlink.BoxSharedLinkRequest`: + +1. `com.box.sdk.BoxItem.createSharedLink` +2. `com.box.sdk.BoxFile.createSharedLink` +3. `com.box.sdk.BoxFolder.createSharedLink` +4. `com.box.sdk.BoxWebLink.createSharedLink` + +### Example + +If you want to create a shared link, first create `com.box.sdk.sharedlink.BoxSharedLinkRequest`: + +```java +Date unsharedDate = ... +BoxFile file = new BoxFile(api, "id"); +BoxSharedLinkRequest sharedLinkRequest = new BoxSharedLinkRequest() + .access(OPEN) + .permissions(true, true) + .unsharedDate(unsharedDate); + +BoxSharedLink sharedLink = file.createSharedLink(sharedLinkRequest); +``` + +### Documentation + +For details on shared links, see: + +1. [Create shared link for file](../files.md#create-a-shared-link) +2. [Create shared link for folder](../folders.md#create-a-shared-link) +3. [Create shared link for web link](../weblinks.md#create-shared-link) + +## Retention Policies + +Removed variant of methods that were not using `com.box.sdk.BoxRetentionPolicy.BoxRetentionPolicyAction`: + +1. `com.box.sdk.BoxRetentionPolicy.createFinitePolicy` + +### Example + +If you want to create a finite retention policy: + +```java +BoxRetentionPolicy.createFinitePolicy(api, "My 30 days retention policy", 30, BoxRetentionPolicyAction.PermanentlyDelete); +``` + +### Documentation + +You can read more on creating retention policies [here](../retention_policies.md#create-retention-policy). + +## Enterprise Events + +Removed variant of methods that were not using `com.box.sdk.EnterpriseEventsRequest`: + +1. `com.box.sdk.EventLog.getEnterpriseEvents` + +### Example + +If you want to get historical enterprise events, first create `com.box.sdk.EnterpriseEventsRequest`: + +```java +EnterpriseEventsRequest request = new EnterpriseEventsRequest().limit(20); +EventLog.getEnterpriseEvents(api, request1); +// process recieved events +``` + +### Documentation + +You can read more on getting enterprise events [here](../events.md#enterprise--admin--events). + +## Search + +Method `com.box.sdk.BoxFolder.search` is replaced with class `com.box.sdk.BoxSearch`. + +### Example + +If you would like to find the first 10 files matching "taxes": + +```java +long offsetValue = 0; +long limitValue = 10; +BoxSearchParameters searchParams = new BoxSearchParameters(); +searchParams.setQuery("taxes"); +searchParams.setType("file"); + +BoxSearch boxSearch = new BoxSearch(api); +boxSearch.searchRange(offsetValue, limitValue, searchParams); +``` + +### Documentation + +You can read more on search [here](../search.md). + +## BoxGroup + +All methods that use `com.box.sdk.BoxGroupMembership.Role` were removed. Use ones that use `com.box.sdk.BoxGroupMembership.GroupRole`. +Also `com.box.sdk.BoxGroupMembership.Role` was replaced with `com.box.sdk.BoxGroupMembership.GroupRole`. + +### Example + +To add a new member to a group with specific role: + +```java +BoxUser user = ... +BoxGroup boxGroup = new BoxGroup(api, "group_id"); +boxGroup.addMembership(user, BoxGroupMembership.GroupRole.ADMIN); +``` + +To get membership role use `com.box.sdk.BoxGroupMembership.Info.getGroupRole`: + +```java +BoxGroupMembership membership = new BoxGroupMembership(api, "membership_id"); +membership.getInfo().getGroupRole(); +``` + +To change membership role use `com.box.sdk.BoxGroupMembership.Info.setGroupRole`: + +```java +BoxGroupMembership membership = new BoxGroupMembership(api, "membership_id"); +BoxGroupMembership.Info membershipInfo = membership.getInfo(); +membershipInfo.setGroupRole(BoxGroupMembership.GroupRole.MEMBER); +membership.updateInfo(membershipInfo); +``` + +### Documentation + +You can read more on groups [here](../groups.md). + +## MetadataTemplate + +In `com.box.sdk.MetadataTemplate` methods that do not use `com.box.sdk.MetadataQuery` were removed. + +### Example + +To execute a metadata query first create `com.box.sdk.MetadataQuery` instance. + +```java +MetadataQuery mQuery = new MetadataQuery("enterprise_341532.test"); +mQuery.setQuery("testfield = :arg"); +mQuery.setAncestorFolderId("0"); +mQuery.setOrderBy( + MetadataQuery.OrderBy.ascending("primarySortKey"), + MetadataQuery.OrderBy.ascending("secondarySortKey") +); +mQuery.addParameter("arg", "test"); +mQuery.setFields("metadata.enterprise_341532.test.customField"); +MetadataTemplate.executeMetadataQuery(api, mQuery); +``` + +### Documentation + +You can read more on how to execute metadata query [here](../metadata_template.md#execute-metadata-query). + +## Others + +| Old | New | +| :---------------------------------------------------- | :-------------------------------------------------- | +| `com.box.sdk.BoxEvent.getType` | `com.box.sdk.BoxEvent.getEventType` | +| `com.box.sdk.BoxEvent.Type` | `com.box.sdk.BoxEvent.EventType` | +| `com.box.sdk.BoxFile.uploadVersion` | `com.box.sdk.BoxFile.uploadNewVersion` | +| `com.box.sdk.BoxGlobalSettings.getMaxRequestAttempts` | `com.box.sdk.BoxGlobalSettings.getMaxRetryAttempts` | +| `com.box.sdk.BoxGlobalSettings.setMaxRequestAttempts` | `com.box.sdk.BoxGlobalSettings.setMaxRetryAttempts` | +| `com.box.sdk.BoxTask.Info.getAction` | `com.box.sdk.BoxTask.Info.getTaskType` | diff --git a/migration-guides/from-v4-to-v10.md b/migration-guides/from-v4-to-v10.md index a38d4f5de..23c3773b5 100644 --- a/migration-guides/from-v4-to-v10.md +++ b/migration-guides/from-v4-to-v10.md @@ -7,32 +7,8 @@ - [Installation](#installation) - [Maven](#maven) - [Gradle](#gradle) -- [Key differences](#key-differences) - - [Manager approach](#manager-approach) - - [Immutable design](#immutable-design) - - [Consistent method signature](#consistent-method-signature) -- [Authentication](#authentication) - - [Developer Token](#developer-token) - - [JWT Auth](#jwt-auth) - - [Using JWT configuration file](#using-jwt-configuration-file) - - [Providing JWT configuration manually](#providing-jwt-configuration-manually) - - [Authenticate user](#authenticate-user) - - [Client Credentials Grant](#client-credentials-grant) - - [Obtaining Service Account token](#obtaining-service-account-token) - - [Obtaining User token](#obtaining-user-token) - - [Switching between Service Account and User](#switching-between-service-account-and-user) - - [OAuth 2.0 Auth](#oauth-20-auth) - - [Get Authorization URL](#get-authorization-url) - - [Authenticate](#authenticate) - - [Store token and retrieve token callbacks](#store-token-and-retrieve-token-callbacks) - - [Downscope token](#downscope-token) - - [Revoke token](#revoke-token) -- [Configuration](#configuration) - - [As-User header](#as-user-header) - - [Custom Base URLs](#custom-base-urls) -- [Convenience methods](#convenience-methods) - - [Webhook validation](#webhook-validation) - - [Chunked upload of big files](#chunked-upload-of-big-files) +- [Supported Environments](#supported-environments) +- [Highlighting the Key Differences](#highlighting-the-key-differences) @@ -44,19 +20,19 @@ based on Open API Specification. This means you can leverage the most up-to-date applications without delay. We introduced this major version bump to reflect the significant codebase changes and to align with other Box SDKs, which will also adopt generated code starting from their v10 releases. More information and benefits of using the new can be found in the -[README](https://github.com/box/box-java-sdk/blob/sdk-gen/README.md) file. +[README](../README.md) file. ## Installation To install v10 version of Box Java SDK, you can use Maven or Gradle. The library is available in the [Maven Central Repository](https://search.maven.org/artifact/com.box/box-java-sdk). -Soon we are going to introduce v5 version of Box Java SDK that will combine package `com.box.sdk` from -v4 and `com.box.sdkgen` from v10 of the SDK so that code from both versions could be used in the same project. +We have also introduced v5 version of Box Java SDK that consolidates both the manually maintained +`com.box.sdk` package from v4 and the new, auto-generated `com.box.sdkgen` package from v10. If you would like to use a feature available only in the new SDK, you won't need to necessarily migrate all your code to use generated SDK at once. You will be able to use a new feature from the `com.box.sdkgen` package, -while keeping the rest of your code unchanged. Note that it may be required to use fully qualified class names -to avoid conflicts between two packages. However, we recommend to fully migrate to the v10 of the SDK eventually. +while keeping the rest of your code unchanged. However, we recommend to fully migrate to the v10 of the SDK eventually. +More information about v4 version can be found in the [migration guide from v4 to v5](./from-v4-to-v5.md). ### Maven @@ -73,619 +49,19 @@ in `pom.xml`to 10.0.0 or higher: ### Gradle -To bump a dependency in your Gradle project, bump the version useed in your `build.gradle` file: +To bump a dependency in your Gradle project, bump the version used in your `build.gradle` file: ```groovy implementation 'com.box:box-java-sdk:10.0.0' ``` -## Key differences +## Supported Environments -### Manager approach +Both v4 and v10 of the Box Java SDK share the same Java version requirement: Java 8 or higher. +No changes to your environment are needed when upgrading from v4 to v10. -The main difference between the manual v4 version of the SDK and the nextgen generated one, -is the way how API methods are aggregated into objects. +## Highlighting the Key Differences -**Old (`v4`)** - -Firstly, in the v4 version of the SDK to be able to perform any action on an API object, e.g. `User`, you first had to create its class. -To do it is required to call: - -```java -BoxUser user = new BoxUser(api, "12345"); -``` - -to create a class representing an already existing User with id '12345', or create a new one with a call: - -```java -BoxUser.Info createdUserInfo = BoxUser.createAppUser(api, "A User"); -BoxUser user = new BoxUser(api, createdUserInfo.getID()); -``` - -Then, you could perform any action on created class, which will affect the user, e.g. - -```java -BoxUser.Info info = user.new Info(); -info.setName(name); -user.updateInfo(info); -``` - -**New (`v10`)** - -In the v10 version of the SDK the API methods are grouped into dedicated manager classes, e.g. `User` object -has dedicated `UserManager` class. Each manager class instance is available in `BoxClient` object. -The fields storing references to the managers are named in the plural form of the resource that the -manager handles - `client.users` for `UsersManager`. If you want to perform any operation -connected with a `User` you need to call a respective method of `UserManager`. -For example, to get info about existing user you need to call: - -```java -UserFull user = client.users.getUsersById("12345"); -``` - -or to create a new user: - -```java -CreateUserRequestBody requestBody = - new CreateUserRequestBody.Builder("John Doe").build(); -UserFull user = client.users.createUser(requestBody); -``` - -The `UserFull` object returned by both of these methods is a data class - it does not contain any methods to call. -To perform any action on `User` object, you need to still use a `UserManager` method for that. -Usually these methods have a first argument, which accepts id of the object you want to access, -e.g. to update a user name, call method: - -```java -UpdateUserByIdRequestBody requestBody = - new UpdateUserByIdRequestBody.Builder().name("Mary").build(); -UserFull updatedUser = client.users.updateUserById(user.getId(), requestBody); -``` - -### Immutable design - -The v10 is designed to be mostly immutable. This means that methods, -which used to modify the existing object in v4 release now return a new instance of the class with the modified state. -This design pattern is used to avoid side effects and make the code more predictable and easier to reason about. -Methods, which returns a new modified instance of an object, will always have a prefix `with` in their names, e.g. - -**New (`v10`)** - -```java -BoxClient client = new BoxClient(auth); -BoxClient asUserClient = client.withAsUserHeader("USER_ID"); -``` - -### Consistent method signature - -To facilitate easier work with the new SDK, we have changed the API method signatures to be consistent and unified. - -**Old (`v4`)** - -In the manual version, API methods had numerous parameters, which were not grouped into any objects and were passed as separate arguments, e.g. the method for creating a sign request looked like this: - -```java -public static BoxSignRequest.Info createSignRequest(BoxAPIConnection api, List sourceFiles, - List signers, String parentFolderId, - BoxSignRequestCreateParams optionalParams) -``` - -**New (`v10`)** - -In the v10, we have adopted an approach of aggregating parameters into types based on their nature (path, body, query, headers). -This can be seen in the example corresponding to the above: - -```java -public SignRequest createSignRequest( - SignRequestCreateRequest requestBody, CreateSignRequestHeaders headers) -``` - -According to the convention, if an API endpoint requires a parameter placed in the URL path, it will appear at the beginning of our method, such as `fileId` in this case. When a request allows for a body, as in `POST` or `PUT`, the method includes a parameter named `requestBody`. Following that, the method signature may include the `queryParams` parameter, followed by `headers`. - -The types of parameters `requestBody`, `queryParams`, and `headers` are specific to each endpoint and, in their definition, encompass all fields allowed by the API. - -It's worth noting here that when all fields of a particular type are optional, the entire parameter becomes optional as well. This allows us to pass only the parameters we actually want to provide when calling a given method, without the risk of not providing a sufficient number of parameters. - -## Authentication - -The v10 release of Box Java SDK library offers the same authentication methods as the v4 one. -Let's see the differences of their usage: - -### Developer Token - -**Old (`v4`)** - -```java -BoxAPIConnection api = new BoxAPIConnection("YOUR-DEVELOPER-TOKEN"); -``` - -The v10 release provides a convenient `BoxDeveloperTokenAuth`, which allows authenticating -using developer token without necessity to provide a Client ID and Client Secret - -**New (`v10`)** - -```java -BoxDeveloperTokenAuth auth = new BoxDeveloperTokenAuth("YOUR-DEVELOPER-TOKEN"); -BoxClient client = new BoxClient(auth); -``` - -### JWT Auth - -#### Using JWT configuration file - -**Old (`v4`)** - -The static method, which reads the JWT configuration file has been changed: - -```java -Reader reader = new FileReader("src/example/config/config.json"); -BoxConfig boxConfig = BoxConfig.readFrom(reader); -IAccessTokenCache tokenCache = new InMemoryLRUAccessTokenCache(100); -BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection.getAppEnterpriseConnection(boxConfig, tokenCache); -``` - -**New (`v10`)** - -```java -TokenStorage tokenStorage = new InMemoryTokenStorage(); // or any other implementation of TokenStorage -JWTConfig config = JWTConfig.fromConfigFile("src/example/config/config.json", tokenStorage); -BoxJWTAuth auth = new BoxJWTAuth(config); -BoxClient client = new BoxClient(auth); -``` - -#### Providing JWT configuration manually - -Some params in `JWTConfig` constructor have slightly different names than one in old `JWTAuth` class. - -**Old (`v4`)** - -```java -JWTEncryptionPreferences jwtPreferences = new JWTEncryptionPreferences(); -jwtPreferences.setPublicKeyID("PUBLIC-KEY-ID"); -jwtPreferences.setPrivateKeyPassword("PRIVATE-KEY-PASSWORD"); -jwtPreferences.setPrivateKey("PRIVATE-KEY"); -jwtPreferences.setEncryptionAlgorithm(EncryptionAlgorithm.RSA_SHA_256); - -IAccessTokenCache accessTokenCache = new InMemoryLRUAccessTokenCache(100); -BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection - .getUserConnection("USER-ID", "CLIENT-ID","CLIENT-SECRET", jwtPreferences, accessTokenCache); - -BoxUser.Info userInfo = BoxUser.getCurrentUser(api).getInfo(); -``` - -**New (`v10`)** - -```java -TokenStorage tokenStorage = new InMemoryTokenStorage(); -JWTConfig config = new JWTConfig.Builder("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET", "JWT_KEY_ID", "PRIVATE_KEY", "PRIVATE_KEY_PASSWORD") - .enterpriseId("123456") - .tokenStorage(tokenStorage) - .build(); -BoxJWTAuth auth = new BoxJWTAuth(config); -BoxClient client = new BoxClient(auth); -``` - -#### Authenticate user - -In v4 release method for user authentication was named `BoxDeveloperEditionAPIConnection getUserConnection(String userId, BoxConfig boxConfig, IAccessTokenCache accessTokenCache)` -and was accepting user id. The method was returning a new instance of `BoxDeveloperEditionAPIConnection` class, which was exchanging the existing token with the one with the user access. - -**Old (`v4`)** - -```java -BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection.getUserConnection("USER_ID", boxConfig, tokenCache); -``` - -**New (`v10`)** - -In v10, to authenticate as user you need to call -`public BoxJWTAuth withUserSubject(String userId, TokenStorage tokenStorage)` method with id of the user -to authenticate. The method returns a new instance of `BoxJWTAuth` class, which will perform authentication call -in scope of the user on the first API call. The `tokenStorage` parameter is optional and allows to provide a custom -token storage for the new instance of `BoxJWTAuth` class. The new auth instance can be used to create a new user client -instance. - -```java -BoxJWTAuth userAuth = auth.withUserSubject("USER_ID"); -BoxClient userClient = new BoxClient(userAuth); -``` - -### Client Credentials Grant - -#### Obtaining Service Account token - -To authenticate as enterprise, the only difference between the v4 and v10 is using the `CCGConfig` as a middle step. - -**Old (`v4`)** - -```java -BoxCCGAPIConnection api = BoxCCGAPIConnection.applicationServiceAccountConnection( - "client_id", - "client_secret", - "enterprise_id" -); -``` - -**New (`v10`)** - -```java -CCGConfig config = new CCGConfig.Builder("YOUR_CLIENT", "YOUR_CLIENT_SECRET") - .enterpriseId("ENTERPRISE_ID") - .build(); -BoxCCGAuth auth = new BoxCCGAuth(config); -BoxClient client = new BoxClient(auth); -``` - -#### Obtaining User token - -To authenticate as user, the only difference between the versions is using the `CCGConfig` as a middle step. - -**Old (`v4`)** - -```java -BoxCCGAPIConnection api = BoxCCGAPIConnection.userConnection( - "client_id", - "client_secret", - "user_id" -); -``` - -**New (`v10`)** - -```java -CCGConfig config = new CCGConfig.Builder("YOUR_CLIENT", "YOUR_CLIENT_SECRET") - .userId("USER_ID") - .build(); -BoxCCGAuth auth = new BoxCCGAuth(config); -BoxClient client = new BoxClient(auth); -``` - -### Switching between Service Account and User - -In v4 release, if you want to switch between the Service Account and User, you need to create another API connection. - -In the v10, to keep the immutability design, the methods switching authenticated subject were replaced with methods -returning a new instance of `BoxCCGAuth` class. The new instance will fetch a new token on the next API call. -The new auth instance can be used to create a new client instance. You can also specify `tokenStorage` parameter -to provide a custom token storage for the new instance. -The old instance of `BoxCCGAuth` class will remain unchanged and will still use the old token. - -**New (`v10`)** - -```java -BoxCCGAuth userAuth = auth.withUserSubject("USER_ID"); -BoxClient userClient = new BoxClient(userAuth); -``` - -```java -BoxCCGAuth entAuth = auth.withEnterpriseSubject("ENTERPRISE_ID"); -BoxClient entClient = new BoxClient(entAuth); -``` - -### OAuth 2.0 Auth - -#### Get Authorization URL - -To get authorization url in the v10 release, you need to first create the `BoxOAuth` class using -`OAuthConfig` class. Then to get authorization url, call -`public String getAuthorizeUrl(GetAuthorizeUrlOptions options)`. Note that this method accepts the instance of `GetAuthorizeUrlOptions` class, which allows specifying extra options to API call. - -**Old (`v4`)** - -In the v4, we did not have any method to get the authorization URL. Instead, we had to manually create the URL. - -```java -String authorizationUrl = "https://account.box.com/api/oauth2/authorize?client_id=[CLIENT_ID]&response_type=code"; -``` - -**New (`v10`)** - -```java -BoxOAuth auth = new BoxOAuth(new OAuthConfig.Builder("CLIENT_ID", "CLIENT_SECRET").build()); -String authorizationUrl = auth.getAuthorizeUrl(); -``` - -#### Authenticate - -The method for authenticating using the authorization code has been changed. With the v4 version of the SDK, -you had to provide the authorization code to the `BoxAPIConnection` class constructor. In the v10 version, -you need to call the `public AccessToken getTokensAuthorizationCodeGrant(String authorizationCode)` method of the `BoxOAuth` class. -The method now returns an AccessToken object with `accessToken` and `refreshToken` fields, -while the old one was creating a new instance of `BoxAPIConnection` class. - -**Old (`v4`)** - -```java -BoxAPIConnection client = new BoxAPIConnection( - "[CLIENT_ID]", - "[CLIENT_SECRET]", - "[CODE]" -); -``` - -**New (`v10`)** - -```java -auth.getTokensAuthorizationCodeGrant("AUTHORIZATION_CODE"); -BoxClient client = new BoxClient(auth); -``` - -### Store token and retrieve token callbacks - -In the v10 release you can define your own class delegated for storing and retrieving a token. It has to inherit from -`TokenStorage` and implement all of its abstract methods. Next step would be to pass an instance of this class to the -AuthConfig constructor. - -**New (`v10`)** - -```java -TokenStorage customTokenStorage = new TokenStorage() { - @Override - public void store(AccessToken accessToken) { - // Store the access token - } - - @Override - public AccessToken get() { - // Retrieve the access token - return null; - } - - @Override - public void clear() { - // Clear the access token - } -}; - -OAuthConfig config = new OAuthConfig.Builder("CLIENT_ID", "CLIENT_SECRET") - .tokenStorage(customTokenStorage) - .build(); -BoxOAuth auth = new BoxOAuth(config); -``` - -or reuse one of the provided implementations: `InMemoryTokenStorage`: - -```java -TokenStorage tokenStorage = new InMemoryTokenStorage(); -OAuthConfig config = new OAuthConfig.Builder("CLIENT_ID", "CLIENT_SECRET") - .tokenStorage(tokenStorage) - .build(); -BoxOAuth auth = new BoxOAuth(config); -``` - -### Downscope token - -The process of downscoping token in the new version is similar to the old one. The main difference is that in the new version -you need to call `downscopeToken` method of the `BoxOAuth` class instead of `getLowerScopedToken` method of the `BoxAPIConnection` class. - -**Old (`v4`)** - -```java -BoxAPIConnection api = new BoxAPIConnection("YOUR-ACCESS-TOKEN"); - -String resource = "https://api.box.com/2.0/files/RESOURCE-ID"; -List scopes = new ArrayList(); -scopes.add("item_preview"); -scopes.add("item_content_upload"); - -ScopedToken token = api.getLowerScopedToken(scopes, resource); -``` - -**New (`v10`)** - -```java -String resource = "https://api.box.com/2.0/files/123456789"; -List scopes = List.of("item_preview"); -AccessToken downscopedToken = auth.downscopeToken(scopes, resource, null, null); -BoxDeveloperTokenAuth downscopedAuth = new BoxDeveloperTokenAuth(downscopedToken.getAccessToken()); -BoxClient downscopedClient = new BoxClient(downscopedAuth); -``` - -### Revoke token - -To revoke current client's tokens in the v10 release, you need to call `revokeToken` method of the auth class instead of -`revoke` method. - -**Old (`v4`)** - -```java -BoxAPIConnection api = new BoxAPIConnection("YOUR-ACCESS-TOKEN"); -api.revokeToken(); -``` - -**New (`v10`)** - -```java -client.auth.revokeToken() -``` - -## Configuration - -### As-User header - -The As-User header is used by enterprise admins to make API calls on behalf of their enterprise's users. -This requires the API request to pass an `As-User: USER-ID` header. The following examples assume that the client has -been instantiated with an access token with appropriate privileges to make As-User calls. - -In v4 release you could call client `asUser(String userID)` method to create a new client to impersonate the provided user. - -**Old (`v4`)** - -```java -BoxAPIConnection api = new BoxAPIConnection("YOUR-ACCESS-TOKEN"); -api.asUser("USER-ID"); -``` - -**New (`v10`)** - -In the new version, the method was renamed to `withAsUserHeader` in the `BoxClient` class, -and returns a new instance of `BoxClient` class with the As-User header appended to all API calls made by the client. -The method accepts only user id as a parameter. - -```java -BoxClient userClient = client.withAsUserHeader("USER-ID"); -``` - -Additionally `BoxClient` offers a `withExtraHeaders(Map extraHeaders)` -method, which allows you to specify the custom set of headers, which will be included in every API call made by client. -Calling the `client.withExtraHeaders()` method creates a new client, leaving the original client unmodified. - -```java -BoxClient clientWithExtraHeaders = client.withExtraHeaders(new HashMap<>() {{ - put("X-My-Header", "124"); -}}); - -``` - -### Custom Base URLs - -**Old (`v4`)** - -In v4 you could specify the custom base URLs, which will be used for API calls made by setting -the new values of static variables of the `API` class. - -```java -BoxAPIConnection api = new BoxAPIConnection("YOUR-DEVELOPER-TOKEN"); -api.setBaseAppUrl("https://example.app.com"); -api.setBaseURL("https://example.com"); -api.setUploadURL("https://upload.example.com"); -api.setTokenURL("https://example.com/token"); -``` - -**New (`v10`)** - -Inv10 this functionality has been implemented as part of the `BoxClient` class. -By calling the `client.withCustomBaseUrls()` method, you can specify the custom base URLs that will be used for API -calls made by client. Following the immutability pattern, this call creates a new client, leaving the original client unmodified. - -```java -BaseUrls baseUrls = new BaseUrls.Builder() - .baseUrl("https://new-base-url.com") - .uploadUrl("https://my-company-upload-url.com") - .oauth2Url("https://my-company.com/oauth2") - .build(); -BoxClient clientWithCustomBaseUrl = client.withCustomBaseUrls(baseUrls); -``` - -## Convenience methods - -### Webhook validation - -Webhook validation is used to validate a webhook message by verifying the signature and the delivery timestamp. - -**Old (`v4`)** - -In v4, when you receive a webhook message from Box, to validate that it actually came from Box -you need to call `BoxWebHookSignatureVerifier#verify(String sigVersion, String sigAlgorithm, String primarySignature, String secondarySignature, String payload, String deliveryTimestamp)` method. -It would return a `boolean` value indicating whether the message was valid. - -```java -// Webhook message contents are shown for demonstration purposes -// Normally these would come from your HTTP handler - -// Webhook message HTTP body -String messagePayload = "{" -+ "\"type\":\"webhook_event"," -+ "\"webhook\":{" -+ "\"id\":\"1234567890\"" -+ "}," -+ "\"trigger\":\"FILE.UPLOADED\"," -+ "\"source\":{" -+ "\"id\":\"1234567890\"," -+ "\"type\":\"file\"," -+ "\"name\":\"Test.txt\"" -+ "}}"; - -// Webhook message HTTP headers -Map messageHeaders = new HashMap(); -headers.put("BOX-DELIVERY-ID", "f96bb54b-ee16-4fc5-aa65-8c2d9e5b546f"); -headers.put("BOX-DELIVERY-TIMESTAMP", "2020-01-01T00:00:00-07:00"); -headers.put("BOX-SIGNATURE-ALGORITHM", "HmacSHA256"); -headers.put("BOX-SIGNATURE-PRIMARY", "6TfeAW3A1PASkgboxxA5yqHNKOwFyMWuEXny/FPD5hI="); -headers.put("BOX-SIGNATURE-SECONDARY", "v+1CD1Jdo3muIcbpv5lxxgPglOqMfsNHPV899xWYydo="); -headers.put("BOX-SIGNATURE-VERSION", "1"); - -// Your application's webhook keys, obtained from the Box Developer Console -String primaryKey = "4py2I9eSFb0ezXH5iPeQRcFK1LRLCdip"; -String secondaryKey = "Aq5EEEjAu4ssbz8n9UMu7EerI0LKj2TL"; - -BoxWebHookSignatureVerifier verifier = new BoxWebHookSignatureVerifier(primaryKey, secondaryKey); -boolean isValidMessage = verifier.verify( - headers.get("BOX-SIGNATURE-VERSION"), - headers.get("BOX-SIGNATURE-ALGORITHM"), - headers.get("BOX-SIGNATURE-PRIMARY"), - headers.get("BOX-SIGNATURE-SECONDARY"), - messagePayload, - headers.get("BOX-DELIVERY-TIMESTAMP") -); -``` - -**New (`v10`)** - -In the v10 version of ths SDK, the `WebhooksManager.validateMessage()` method requires the `messagePayload` to be of type `string`, -map of headers to be of type `Map`, and the primary and secondary keys to be of type `String`. - -```java -// Webhook message HTTP body -String messagePayload = "{" - + "\"type\":\"webhook_event"," - + "\"webhook\":{" - + "\"id\":\"1234567890\"" - + "}," - + "\"trigger\":\"FILE.UPLOADED\"," - + "\"source\":{" - + "\"id\":\"1234567890\"," - + "\"type\":\"file\"," - + "\"name\":\"Test.txt\"" - + "}}"; - -// Webhook message HTTP headers -Map messageHeaders = new HashMap(); -headers.put("BOX-DELIVERY-ID", "f96bb54b-ee16-4fc5-aa65-8c2d9e5b546f"); -headers.put("BOX-DELIVERY-TIMESTAMP", "2020-01-01T00:00:00-07:00"); -headers.put("BOX-SIGNATURE-ALGORITHM", "HmacSHA256"); -headers.put("BOX-SIGNATURE-PRIMARY", "6TfeAW3A1PASkgboxxA5yqHNKOwFyMWuEXny/FPD5hI="); -headers.put("BOX-SIGNATURE-SECONDARY", "v+1CD1Jdo3muIcbpv5lxxgPglOqMfsNHPV899xWYydo="); -headers.put("BOX-SIGNATURE-VERSION", "1"); - -// Your application's webhook keys, obtained from the Box Developer Console -String primaryKey = "4py2I9eSFb0ezXH5iPeQRcFK1LRLCdip"; -String secondaryKey = "Aq5EEEjAu4ssbz8n9UMu7EerI0LKj2TL"; - -boolean isValidMessage = WebhooksManager.validateMessage( - messagePayload, messageHeaders, primaryKey, secondaryKey); -) -``` - -### Chunked upload of big files - -For large files or in cases where the network connection is less reliable, you may want to upload the file in parts. -This allows a single part to fail without aborting the entire upload, and failed parts are being retried automatically. - -**Old (`v4`)** - -In the v4, you could use the `uploadLargeFile` method of the `BoxFolder` class to upload a large file. -This method accepted a `FileInputStream` as the input stream and the file size as a parameter. The method also required - -```java -File myFile = new File("My Large_File.txt"); -FileInputStream stream = new FileInputStream(myFile); - -BoxFolder rootFolder = BoxFolder.getRootFolder(api); -BoxFile.Info fileInfo = rootFolder.uploadLargeFile(inputStream, "My_Large_File.txt", myFile.length()); -``` - -**New (`v10`)** - -In the v10, the equivalent method is `chunked_uploads.uploadBigFile()`. It accepts a file-like object -as the `file` parameter, and the `fileName` and `fileSize` parameters are now passed as arguments. -The `parentFolderId` parameter is also required to specify the folder where the file will be uploaded. - -```java -InputStream file = new FileInputStream(myFile); -String fileName = "My_Large_File.txt"; -long fileSize = 1234556L; -String parentFolderId = "123456789"; - -File uploadedFile = client.getChunkedUploads().uploadBigFile(file, fileName, fileSize, parentFolderId); -``` +There are important differences between the `com.box.sdk` (v4) and the generated `com.box.sdkgen` (v10) packages. +We have prepared a separate document that presents the main differences and provides guidance to help you migrate. +For side-by-side code examples, see: [Migration guide: migrate from `com.box.sdk` to `com.box.sdkgen` package](./from-com-box-sdk-to-com-box-sdkgen.md). diff --git a/migration-guides/from-v4-to-v5.md b/migration-guides/from-v4-to-v5.md new file mode 100644 index 000000000..ce7e0e127 --- /dev/null +++ b/migration-guides/from-v4-to-v5.md @@ -0,0 +1,109 @@ +# Migration guide from v4 to v5 version of `box-java-sdk` + + + + +- [Introduction](#introduction) +- [Installation](#installation) + - [Maven](#maven) + - [Gradle](#gradle) +- [Supported Environments](#supported-environments) +- [Highlighting the Key Differences](#highlighting-the-key-differences) + - [Using the Box Java SDK v5](#using-the-box-java-sdk-v5) + + + +## Introduction + +The v5 release of the Box Java SDK is a transitional version designed to help developers migrate from +the manually maintained v4 SDK to the modern, auto-generated v10+ SDK. + +This release combines two packages into a single artifact: + +- `com.box.sdk` - the manually maintained package from v4. +- `com.box.sdkgen` - the new, auto-generated module built from the official OpenAPI specification (and the sole component of the v10 SDK). + +This hybrid approach allows you to gradually adopt the new `com.box.sdkgen` features +while continuing to use your existing v4 integration, eliminating the need for an immediate full rewrite. + +## Installation + +To install v5 version of Box Java SDK, you can use Maven or Gradle. The library is available in the +[Maven Central Repository](https://search.maven.org/artifact/com.box/box-java-sdk). + +### Maven + +To upgrade from v4 to v5, in you Maven project just bump the version of the Box Java SDK library +in `pom.xml`to 5.0.0 or higher: + +```xml + + com.box + box-java-sdk + 5.0.0 + +``` + +### Gradle + +To upgrade from v4 to v5 of the Box Java SDK, simply update the library version in your Maven project’s `pom.xml` file +to 5.0.0 or higher: + +```groovy +implementation 'com.box:box-java-sdk:5.0.0' +``` + +## Supported Environments + +Both v4 and v5 of the Box Java SDK share the same Java version requirement: Java 8 or higher. +No changes to your environment are needed when upgrading from v4 to v5. + +## Highlighting the Key Differences + +The `com.box.sdk` package usage in v5 remains the same as in v4 and is not covered in this document. +If you are migrating code from `com.box.sdk` to `com.box.sdkgen`, which we recommend, +the key differences between the packages are documented in: + +- [Migration guide: com.box.sdk → com.box.sdkgen](./from-com-box-sdk-to-com-box-sdkgen.md) + +### Using the Box Java SDK v5 + +After migration to Box Java SDK v5, you can use both the manual Box Java SDK package `com.box.sdk` and the generated one `com.box.sdkgen`. +You just need to import the required classes from the appropriate package depending on which SDK you intend to use. +If both packages contain classes with the same name, you can use fully qualified names to resolve any naming conflicts. + +```java +import com.box.sdk.BoxConfig; +import com.box.sdk.BoxDeveloperEditionAPIConnection; + +import com.box.sdk.BoxFolder; +import com.box.sdkgen.box.jwtauth.BoxJWTAuth; +import com.box.sdkgen.box.jwtauth.JWTConfig; +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.folders.UpdateFolderByIdRequestBody; +import com.box.sdkgen.schemas.folder.Folder; + +import java.io.FileReader; +import java.io.Reader; + +public class Main { + public static void main(String[] args) throws Exception { + + Reader reader = new FileReader("src/example/config/config.json"); + BoxConfig boxConfig = BoxConfig.readFrom(reader); + BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection.getAppEnterpriseConnection(boxConfig); + + JWTConfig config = JWTConfig.fromConfigFile("src/example/config/config.json"); + BoxJWTAuth auth = new BoxJWTAuth(config); + BoxClient client = new BoxClient(auth); + + BoxFolder rootFolder = new BoxFolder(api, "0"); + BoxFolder.Info subfolder = rootFolder.createFolder("My Subfolder"); + Folder updatedFolder = client.getFolders().updateFolderById( + subfolder.getID(), + new UpdateFolderByIdRequestBody.Builder().name("My Updated Subfolder").build() + ); + System.out.println("Created folder with ID " + subfolder.getID() + " has been updated to " + updatedFolder.getName()); + } +} +``` diff --git a/migration-guides/from-v5-to-v10.md b/migration-guides/from-v5-to-v10.md new file mode 100644 index 000000000..91210c8dd --- /dev/null +++ b/migration-guides/from-v5-to-v10.md @@ -0,0 +1,61 @@ +# Migration guide from v5 to v10 version of `box-java-sdk` + + + + +- [Introduction](#introduction) +- [Installation](#installation) + - [Maven](#maven) + - [Gradle](#gradle) +- [Supported Environments](#supported-environments) +- [Migration Scope and Module Compatibility](#migration-scope-and-module-compatibility) + + + +## Introduction + +Version 10 of the Box Java SDK is a modern, fully auto-generated SDK built entirely from the `com.box.sdkgen` package. +In version 5, the SDK included two packages side by side: the manually maintained `com.box.sdk` and the generated `com.box.sdkgen`. +Starting with version 10, the `com.box.sdk` package has been removed, and only the `com.box.sdkgen` package remains. + +If you are migrating code from `com.box.sdk` to `com.box.sdkgen` package, detailed instructions are available in the dedicated +[Migration guide: migrate from `com.box.sdk` to `com.box.sdkgen` package](./from-com-box-sdk-to-com-box-sdkgen.md). + +## Installation + +To install v10 version of Box Java SDK, you can use Maven or Gradle. The library is available in the +[Maven Central Repository](https://search.maven.org/artifact/com.box/box-java-sdk). + +### Maven + +To start using generated version of the SDK in you Maven project just bump the version of the Box Java SDK library +in `pom.xml`to 10.0.0 or higher: + +```xml + + com.box + box-java-sdk + 10.0.0 + +``` + +### Gradle + +To bump a dependency in your Gradle project, bump the version used in your `build.gradle` file: + +```groovy +implementation 'com.box:box-java-sdk:10.0.0' +``` + +## Supported Environments + +Both v5 and v10 of the Box Java SDK share the same Java version requirement: Java 8 or higher. +No changes to your environment are needed when upgrading from v5 to v10. + +## Migration Scope and Module Compatibility + +If your project only uses the `com.box.sdkgen` package from v5, no code changes are required to migrate to v10. +The generated `com.box.sdkgen` package is the same in both v5 and v10. + +If your project still includes code that uses the legacy `com.box.sdk` module, follow the dedicated guide to update it: +[Migration guide: migrate from `com.box.sdk` to `com.box.sdkgen` package](./from-com-box-sdk-to-com-box-sdkgen.md). From 88dd8d2867d85ca8fc3b48d2aee61060ef328821 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Thu, 23 Oct 2025 14:45:15 +0200 Subject: [PATCH 046/148] feat: Add GET enterprise configuration endpoint (box/box-openapi#559) (#1519) --- .codegen.json | 2 +- docs/README.md | 1 + docs/enterpriseconfigurations.md | 33 + .../java/com/box/sdkgen/client/BoxClient.java | 17 + .../EnterpriseConfigurationsManager.java | 115 ++ ...rpriseConfigurationByIdV2025R0Headers.java | 65 + ...seConfigurationByIdV2025R0QueryParams.java | 18 + .../enterprisebase/EnterpriseBase.java | 2 +- .../CollaborationPermissionsV2025R0.java | 203 +++ .../CollaborationRestrictionV2025R0.java | 63 + ...CustomSessionDurationGroupItemV2025R0.java | 87 ++ ...ConfigurationContentAndSharingV2025R0.java | 1190 +++++++++++++++++ ...gV2025R0CollaborationPermissionsField.java | 79 ++ ...V2025R0CollaborationRestrictionsField.java | 146 ++ ...ernalCollaborationAllowlistUsersField.java | 82 ++ ...025R0ExternalCollaborationStatusField.java | 116 ++ ...nalCollaborationStatusFieldValueField.java | 82 ++ ...0PermanentDeletionAllowlistUsersField.java | 82 ++ ...edLinkDefaultPermissionsSelectedField.java | 86 ++ ...rpriseConfigurationItemBooleanV2025R0.java | 80 ++ ...rpriseConfigurationItemIntegerV2025R0.java | 80 ++ ...erpriseConfigurationItemStringV2025R0.java | 79 ++ .../EnterpriseConfigurationItemV2025R0.java | 66 + ...nterpriseConfigurationSecurityV2025R0.java | 729 ++++++++++ ...025R0CustomSessionDurationGroupsField.java | 80 ++ ...urityV2025R0EnforcedMfaFrequencyField.java | 78 ++ ...R0EnforcedMfaFrequencyFieldValueField.java | 92 ++ ...nalCollabMultiFactorAuthSettingsField.java | 81 ++ ...figurationSecurityV2025R0KeysafeField.java | 78 ++ ...curityV2025R0LastPasswordResetAtField.java | 87 ++ .../EnterpriseConfigurationShieldV2025R0.java | 68 + ...priseConfigurationUserSettingsV2025R0.java | 485 +++++++ ...SettingsV2025R0UserTrackingCodesField.java | 79 ++ .../EnterpriseConfigurationV2025R0.java | 188 +++ ...terpriseConfigurationV2025R0TypeField.java | 62 + .../EnterpriseFeatureSettingsItemV2025R0.java | 77 ++ .../EnterpriseFeatureSettingV2025R0.java | 202 +++ ...riseFeatureSettingV2025R0FeatureField.java | 66 + ...ExternalCollabSecuritySettingsV2025R0.java | 259 ++++ .../KeysafeSettingsV2025R0.java | 210 +++ .../listuserv2025r0/ListUserV2025R0.java | 112 ++ .../SharedLinkPermissionsV2025R0.java | 146 ++ .../ShieldRuleItemV2025R0.java | 240 ++++ .../ShieldRuleItemV2025R0PriorityField.java | 66 + .../ShieldRuleItemV2025R0TypeField.java | 62 + .../UserOrGroupReferenceV2025R0.java | 102 ++ .../UserOrGroupReferenceV2025R0TypeField.java | 63 + .../UserTrackingCodeV2025R0.java | 82 ++ 48 files changed, 6566 insertions(+), 2 deletions(-) create mode 100644 docs/enterpriseconfigurations.md create mode 100644 src/main/java/com/box/sdkgen/managers/enterpriseconfigurations/EnterpriseConfigurationsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/enterpriseconfigurations/GetEnterpriseConfigurationByIdV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/enterpriseconfigurations/GetEnterpriseConfigurationByIdV2025R0QueryParams.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/collaborationpermissionsv2025r0/CollaborationPermissionsV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/collaborationrestrictionv2025r0/CollaborationRestrictionV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/customsessiondurationgroupitemv2025r0/CustomSessionDurationGroupItemV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0CollaborationPermissionsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0CollaborationRestrictionsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationAllowlistUsersField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0PermanentDeletionAllowlistUsersField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0SharedLinkDefaultPermissionsSelectedField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationitembooleanv2025r0/EnterpriseConfigurationItemBooleanV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationitemintegerv2025r0/EnterpriseConfigurationItemIntegerV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationitemstringv2025r0/EnterpriseConfigurationItemStringV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationitemv2025r0/EnterpriseConfigurationItemV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0CustomSessionDurationGroupsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyFieldValueField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0ExternalCollabMultiFactorAuthSettingsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0KeysafeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0LastPasswordResetAtField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationshieldv2025r0/EnterpriseConfigurationShieldV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationusersettingsv2025r0/EnterpriseConfigurationUserSettingsV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationusersettingsv2025r0/EnterpriseConfigurationUserSettingsV2025R0UserTrackingCodesField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationv2025r0/EnterpriseConfigurationV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationv2025r0/EnterpriseConfigurationV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisefeaturesettingsitemv2025r0/EnterpriseFeatureSettingsItemV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisefeaturesettingv2025r0/EnterpriseFeatureSettingV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisefeaturesettingv2025r0/EnterpriseFeatureSettingV2025R0FeatureField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/externalcollabsecuritysettingsv2025r0/ExternalCollabSecuritySettingsV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/keysafesettingsv2025r0/KeysafeSettingsV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/listuserv2025r0/ListUserV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/sharedlinkpermissionsv2025r0/SharedLinkPermissionsV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/shieldruleitemv2025r0/ShieldRuleItemV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/shieldruleitemv2025r0/ShieldRuleItemV2025R0PriorityField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/shieldruleitemv2025r0/ShieldRuleItemV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/userorgroupreferencev2025r0/UserOrGroupReferenceV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/userorgroupreferencev2025r0/UserOrGroupReferenceV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/usertrackingcodev2025r0/UserTrackingCodeV2025R0.java diff --git a/.codegen.json b/.codegen.json index f674cde15..583fdccdb 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "192deac", "specHash": "fa34496", "version": "10.1.0" } +{ "engineHash": "192deac", "specHash": "cf21406", "version": "10.1.0" } diff --git a/docs/README.md b/docs/README.md index f33f1ff46..ebdc4844d 100644 --- a/docs/README.md +++ b/docs/README.md @@ -22,6 +22,7 @@ the SDK are available by topic: * [Docgentemplate](docgentemplate.md) * [Downloads](downloads.md) * [Emailaliases](emailaliases.md) +* [Enterpriseconfigurations](enterpriseconfigurations.md) * [Events](events.md) * [Externalusers](externalusers.md) * [Fileclassifications](fileclassifications.md) diff --git a/docs/enterpriseconfigurations.md b/docs/enterpriseconfigurations.md new file mode 100644 index 000000000..668633c95 --- /dev/null +++ b/docs/enterpriseconfigurations.md @@ -0,0 +1,33 @@ +# EnterpriseConfigurationsManager + + +- [Get enterprise configuration](#get-enterprise-configuration) + +## Get enterprise configuration + +Retrieves the configuration for an enterprise. + +This operation is performed by calling function `getEnterpriseConfigurationByIdV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/get-enterprise-configurations-id/). + +*Currently we don't have an example for calling `getEnterpriseConfigurationByIdV2025R0` in integration tests* + +### Arguments + +- enterpriseId `String` + - The ID of the enterprise. Example: "3442311" +- queryParams `GetEnterpriseConfigurationByIdV2025R0QueryParams` + - Query parameters of getEnterpriseConfigurationByIdV2025R0 method +- headers `GetEnterpriseConfigurationByIdV2025R0Headers` + - Headers of getEnterpriseConfigurationByIdV2025R0 method + + +### Returns + +This function returns a value of type `EnterpriseConfigurationV2025R0`. + +Returns the enterprise configuration. + + diff --git a/src/main/java/com/box/sdkgen/client/BoxClient.java b/src/main/java/com/box/sdkgen/client/BoxClient.java index f22dcccbc..ddaa620af 100644 --- a/src/main/java/com/box/sdkgen/client/BoxClient.java +++ b/src/main/java/com/box/sdkgen/client/BoxClient.java @@ -20,6 +20,7 @@ import com.box.sdkgen.managers.docgentemplate.DocgenTemplateManager; import com.box.sdkgen.managers.downloads.DownloadsManager; import com.box.sdkgen.managers.emailaliases.EmailAliasesManager; +import com.box.sdkgen.managers.enterpriseconfigurations.EnterpriseConfigurationsManager; import com.box.sdkgen.managers.events.EventsManager; import com.box.sdkgen.managers.externalusers.ExternalUsersManager; import com.box.sdkgen.managers.fileclassifications.FileClassificationsManager; @@ -248,6 +249,8 @@ public class BoxClient { public final DocgenManager docgen; + public final EnterpriseConfigurationsManager enterpriseConfigurations; + public final HubsManager hubs; public final HubCollaborationsManager hubCollaborations; @@ -572,6 +575,11 @@ public BoxClient(Authentication auth) { .build(); this.docgen = new DocgenManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.enterpriseConfigurations = + new EnterpriseConfigurationsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); this.hubs = new HubsManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); this.hubCollaborations = @@ -907,6 +915,11 @@ protected BoxClient(Builder builder) { .build(); this.docgen = new DocgenManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.enterpriseConfigurations = + new EnterpriseConfigurationsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); this.hubs = new HubsManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); this.hubCollaborations = @@ -1336,6 +1349,10 @@ public DocgenManager getDocgen() { return docgen; } + public EnterpriseConfigurationsManager getEnterpriseConfigurations() { + return enterpriseConfigurations; + } + public HubsManager getHubs() { return hubs; } diff --git a/src/main/java/com/box/sdkgen/managers/enterpriseconfigurations/EnterpriseConfigurationsManager.java b/src/main/java/com/box/sdkgen/managers/enterpriseconfigurations/EnterpriseConfigurationsManager.java new file mode 100644 index 000000000..7a30e3f5c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/enterpriseconfigurations/EnterpriseConfigurationsManager.java @@ -0,0 +1,115 @@ +package com.box.sdkgen.managers.enterpriseconfigurations; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationv2025r0.EnterpriseConfigurationV2025R0; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class EnterpriseConfigurationsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public EnterpriseConfigurationsManager() { + this.networkSession = new NetworkSession(); + } + + protected EnterpriseConfigurationsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + /** + * Retrieves the configuration for an enterprise. + * + * @param enterpriseId The ID of the enterprise. Example: "3442311" + * @param queryParams Query parameters of getEnterpriseConfigurationByIdV2025R0 method + */ + public EnterpriseConfigurationV2025R0 getEnterpriseConfigurationByIdV2025R0( + String enterpriseId, GetEnterpriseConfigurationByIdV2025R0QueryParams queryParams) { + return getEnterpriseConfigurationByIdV2025R0( + enterpriseId, queryParams, new GetEnterpriseConfigurationByIdV2025R0Headers()); + } + + /** + * Retrieves the configuration for an enterprise. + * + * @param enterpriseId The ID of the enterprise. Example: "3442311" + * @param queryParams Query parameters of getEnterpriseConfigurationByIdV2025R0 method + * @param headers Headers of getEnterpriseConfigurationByIdV2025R0 method + */ + public EnterpriseConfigurationV2025R0 getEnterpriseConfigurationByIdV2025R0( + String enterpriseId, + GetEnterpriseConfigurationByIdV2025R0QueryParams queryParams, + GetEnterpriseConfigurationByIdV2025R0Headers headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("categories", convertToString(queryParams.getCategories())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/enterprise_configurations/", + convertToString(enterpriseId)), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), EnterpriseConfigurationV2025R0.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public EnterpriseConfigurationsManager build() { + return new EnterpriseConfigurationsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/enterpriseconfigurations/GetEnterpriseConfigurationByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/enterpriseconfigurations/GetEnterpriseConfigurationByIdV2025R0Headers.java new file mode 100644 index 000000000..49e5a1e23 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/enterpriseconfigurations/GetEnterpriseConfigurationByIdV2025R0Headers.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.managers.enterpriseconfigurations; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class GetEnterpriseConfigurationByIdV2025R0Headers { + + /** Version header. */ + public EnumWrapper boxVersion; + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public GetEnterpriseConfigurationByIdV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected GetEnterpriseConfigurationByIdV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetEnterpriseConfigurationByIdV2025R0Headers build() { + return new GetEnterpriseConfigurationByIdV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/enterpriseconfigurations/GetEnterpriseConfigurationByIdV2025R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/enterpriseconfigurations/GetEnterpriseConfigurationByIdV2025R0QueryParams.java new file mode 100644 index 000000000..32ff3727b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/enterpriseconfigurations/GetEnterpriseConfigurationByIdV2025R0QueryParams.java @@ -0,0 +1,18 @@ +package com.box.sdkgen.managers.enterpriseconfigurations; + +public class GetEnterpriseConfigurationByIdV2025R0QueryParams { + + /** + * The comma-delimited list of the enterprise configuration categories. Allowed values: + * `security`, `content_and_sharing`, `user_settings`, `shield`. + */ + public final String categories; + + public GetEnterpriseConfigurationByIdV2025R0QueryParams(String categories) { + this.categories = categories; + } + + public String getCategories() { + return categories; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/enterprisebase/EnterpriseBase.java b/src/main/java/com/box/sdkgen/schemas/enterprisebase/EnterpriseBase.java index 306fcb499..5bbaa4bfb 100644 --- a/src/main/java/com/box/sdkgen/schemas/enterprisebase/EnterpriseBase.java +++ b/src/main/java/com/box/sdkgen/schemas/enterprisebase/EnterpriseBase.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; -/** A mini representation of a enterprise, used when nested within another resource. */ +/** A representation of a enterprise, used when nested within another resource. */ @JsonFilter("nullablePropertyFilter") public class EnterpriseBase extends SerializableObject { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/collaborationpermissionsv2025r0/CollaborationPermissionsV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/collaborationpermissionsv2025r0/CollaborationPermissionsV2025R0.java new file mode 100644 index 000000000..513b30e2c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/collaborationpermissionsv2025r0/CollaborationPermissionsV2025R0.java @@ -0,0 +1,203 @@ +package com.box.sdkgen.schemas.v2025r0.collaborationpermissionsv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** The collaboration permissions. */ +@JsonFilter("nullablePropertyFilter") +public class CollaborationPermissionsV2025R0 extends SerializableObject { + + /** The co-owner role is enabled for collaboration. */ + @JsonProperty("is_co_owner_role_enabled") + protected Boolean isCoOwnerRoleEnabled; + + /** The editor role is enabled for collaboration. */ + @JsonProperty("is_editor_role_enabled") + protected Boolean isEditorRoleEnabled; + + /** The previewer role is enabled for collaboration. */ + @JsonProperty("is_previewer_role_enabled") + protected Boolean isPreviewerRoleEnabled; + + /** The previewer uploader role is enabled for collaboration. */ + @JsonProperty("is_previewer_uploader_role_enabled") + protected Boolean isPreviewerUploaderRoleEnabled; + + /** The uploader role is enabled for collaboration. */ + @JsonProperty("is_uploader_role_enabled") + protected Boolean isUploaderRoleEnabled; + + /** The viewer role is enabled for collaboration. */ + @JsonProperty("is_viewer_role_enabled") + protected Boolean isViewerRoleEnabled; + + /** The viewer uploader role is enabled for collaboration. */ + @JsonProperty("is_viewer_uploader_role_enabled") + protected Boolean isViewerUploaderRoleEnabled; + + public CollaborationPermissionsV2025R0() { + super(); + } + + protected CollaborationPermissionsV2025R0(Builder builder) { + super(); + this.isCoOwnerRoleEnabled = builder.isCoOwnerRoleEnabled; + this.isEditorRoleEnabled = builder.isEditorRoleEnabled; + this.isPreviewerRoleEnabled = builder.isPreviewerRoleEnabled; + this.isPreviewerUploaderRoleEnabled = builder.isPreviewerUploaderRoleEnabled; + this.isUploaderRoleEnabled = builder.isUploaderRoleEnabled; + this.isViewerRoleEnabled = builder.isViewerRoleEnabled; + this.isViewerUploaderRoleEnabled = builder.isViewerUploaderRoleEnabled; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getIsCoOwnerRoleEnabled() { + return isCoOwnerRoleEnabled; + } + + public Boolean getIsEditorRoleEnabled() { + return isEditorRoleEnabled; + } + + public Boolean getIsPreviewerRoleEnabled() { + return isPreviewerRoleEnabled; + } + + public Boolean getIsPreviewerUploaderRoleEnabled() { + return isPreviewerUploaderRoleEnabled; + } + + public Boolean getIsUploaderRoleEnabled() { + return isUploaderRoleEnabled; + } + + public Boolean getIsViewerRoleEnabled() { + return isViewerRoleEnabled; + } + + public Boolean getIsViewerUploaderRoleEnabled() { + return isViewerUploaderRoleEnabled; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CollaborationPermissionsV2025R0 casted = (CollaborationPermissionsV2025R0) o; + return Objects.equals(isCoOwnerRoleEnabled, casted.isCoOwnerRoleEnabled) + && Objects.equals(isEditorRoleEnabled, casted.isEditorRoleEnabled) + && Objects.equals(isPreviewerRoleEnabled, casted.isPreviewerRoleEnabled) + && Objects.equals(isPreviewerUploaderRoleEnabled, casted.isPreviewerUploaderRoleEnabled) + && Objects.equals(isUploaderRoleEnabled, casted.isUploaderRoleEnabled) + && Objects.equals(isViewerRoleEnabled, casted.isViewerRoleEnabled) + && Objects.equals(isViewerUploaderRoleEnabled, casted.isViewerUploaderRoleEnabled); + } + + @Override + public int hashCode() { + return Objects.hash( + isCoOwnerRoleEnabled, + isEditorRoleEnabled, + isPreviewerRoleEnabled, + isPreviewerUploaderRoleEnabled, + isUploaderRoleEnabled, + isViewerRoleEnabled, + isViewerUploaderRoleEnabled); + } + + @Override + public String toString() { + return "CollaborationPermissionsV2025R0{" + + "isCoOwnerRoleEnabled='" + + isCoOwnerRoleEnabled + + '\'' + + ", " + + "isEditorRoleEnabled='" + + isEditorRoleEnabled + + '\'' + + ", " + + "isPreviewerRoleEnabled='" + + isPreviewerRoleEnabled + + '\'' + + ", " + + "isPreviewerUploaderRoleEnabled='" + + isPreviewerUploaderRoleEnabled + + '\'' + + ", " + + "isUploaderRoleEnabled='" + + isUploaderRoleEnabled + + '\'' + + ", " + + "isViewerRoleEnabled='" + + isViewerRoleEnabled + + '\'' + + ", " + + "isViewerUploaderRoleEnabled='" + + isViewerUploaderRoleEnabled + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean isCoOwnerRoleEnabled; + + protected Boolean isEditorRoleEnabled; + + protected Boolean isPreviewerRoleEnabled; + + protected Boolean isPreviewerUploaderRoleEnabled; + + protected Boolean isUploaderRoleEnabled; + + protected Boolean isViewerRoleEnabled; + + protected Boolean isViewerUploaderRoleEnabled; + + public Builder isCoOwnerRoleEnabled(Boolean isCoOwnerRoleEnabled) { + this.isCoOwnerRoleEnabled = isCoOwnerRoleEnabled; + return this; + } + + public Builder isEditorRoleEnabled(Boolean isEditorRoleEnabled) { + this.isEditorRoleEnabled = isEditorRoleEnabled; + return this; + } + + public Builder isPreviewerRoleEnabled(Boolean isPreviewerRoleEnabled) { + this.isPreviewerRoleEnabled = isPreviewerRoleEnabled; + return this; + } + + public Builder isPreviewerUploaderRoleEnabled(Boolean isPreviewerUploaderRoleEnabled) { + this.isPreviewerUploaderRoleEnabled = isPreviewerUploaderRoleEnabled; + return this; + } + + public Builder isUploaderRoleEnabled(Boolean isUploaderRoleEnabled) { + this.isUploaderRoleEnabled = isUploaderRoleEnabled; + return this; + } + + public Builder isViewerRoleEnabled(Boolean isViewerRoleEnabled) { + this.isViewerRoleEnabled = isViewerRoleEnabled; + return this; + } + + public Builder isViewerUploaderRoleEnabled(Boolean isViewerUploaderRoleEnabled) { + this.isViewerUploaderRoleEnabled = isViewerUploaderRoleEnabled; + return this; + } + + public CollaborationPermissionsV2025R0 build() { + return new CollaborationPermissionsV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/collaborationrestrictionv2025r0/CollaborationRestrictionV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/collaborationrestrictionv2025r0/CollaborationRestrictionV2025R0.java new file mode 100644 index 000000000..779ba985d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/collaborationrestrictionv2025r0/CollaborationRestrictionV2025R0.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.v2025r0.collaborationrestrictionv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum CollaborationRestrictionV2025R0 implements Valuable { + INTERNAL("internal"), + EXTERNAL("external"); + + private final String value; + + CollaborationRestrictionV2025R0(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class CollaborationRestrictionV2025R0Deserializer + extends JsonDeserializer> { + + public CollaborationRestrictionV2025R0Deserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(CollaborationRestrictionV2025R0.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class CollaborationRestrictionV2025R0Serializer + extends JsonSerializer> { + + public CollaborationRestrictionV2025R0Serializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/customsessiondurationgroupitemv2025r0/CustomSessionDurationGroupItemV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/customsessiondurationgroupitemv2025r0/CustomSessionDurationGroupItemV2025R0.java new file mode 100644 index 000000000..c3ad7cfca --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/customsessiondurationgroupitemv2025r0/CustomSessionDurationGroupItemV2025R0.java @@ -0,0 +1,87 @@ +package com.box.sdkgen.schemas.v2025r0.customsessiondurationgroupitemv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +/** A custom session duration group item. */ +@JsonFilter("nullablePropertyFilter") +public class CustomSessionDurationGroupItemV2025R0 extends SerializableObject { + + /** Group ID (numerical). */ + protected String id; + + /** Group Name. */ + protected String name; + + public CustomSessionDurationGroupItemV2025R0() { + super(); + } + + protected CustomSessionDurationGroupItemV2025R0(Builder builder) { + super(); + this.id = builder.id; + this.name = builder.name; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CustomSessionDurationGroupItemV2025R0 casted = (CustomSessionDurationGroupItemV2025R0) o; + return Objects.equals(id, casted.id) && Objects.equals(name, casted.name); + } + + @Override + public int hashCode() { + return Objects.hash(id, name); + } + + @Override + public String toString() { + return "CustomSessionDurationGroupItemV2025R0{" + + "id='" + + id + + '\'' + + ", " + + "name='" + + name + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected String name; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public CustomSessionDurationGroupItemV2025R0 build() { + return new CustomSessionDurationGroupItemV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0.java new file mode 100644 index 000000000..b3493fe63 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0.java @@ -0,0 +1,1190 @@ +package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationcontentandsharingv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitembooleanv2025r0.EnterpriseConfigurationItemBooleanV2025R0; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemintegerv2025r0.EnterpriseConfigurationItemIntegerV2025R0; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemstringv2025r0.EnterpriseConfigurationItemStringV2025R0; +import com.box.sdkgen.schemas.v2025r0.enterprisefeaturesettingsitemv2025r0.EnterpriseFeatureSettingsItemV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +/** The enterprise configuration for the content and sharing category. */ +@JsonFilter("nullablePropertyFilter") +public class EnterpriseConfigurationContentAndSharingV2025R0 extends SerializableObject { + + @JsonProperty("enterprise_feature_settings") + protected List enterpriseFeatureSettings; + + @JsonProperty("sharing_item_type") + protected EnterpriseConfigurationItemStringV2025R0 sharingItemType; + + @JsonProperty("shared_link_company_definition") + protected EnterpriseConfigurationItemStringV2025R0 sharedLinkCompanyDefinition; + + @JsonProperty("shared_link_access") + protected EnterpriseConfigurationItemStringV2025R0 sharedLinkAccess; + + @JsonProperty("shared_link_default_access") + protected EnterpriseConfigurationItemStringV2025R0 sharedLinkDefaultAccess; + + @JsonProperty("shared_link_default_permissions_selected") + protected EnterpriseConfigurationContentAndSharingV2025R0SharedLinkDefaultPermissionsSelectedField + sharedLinkDefaultPermissionsSelected; + + @JsonProperty("is_open_custom_urls_disabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isOpenCustomUrlsDisabled; + + @JsonProperty("is_custom_domain_hidden_in_shared_link") + protected EnterpriseConfigurationItemBooleanV2025R0 isCustomDomainHiddenInSharedLink; + + @JsonProperty("collaboration_permissions") + protected EnterpriseConfigurationContentAndSharingV2025R0CollaborationPermissionsField + collaborationPermissions; + + @JsonProperty("default_collaboration_role") + protected EnterpriseConfigurationItemStringV2025R0 defaultCollaborationRole; + + @JsonProperty("is_invite_privilege_restricted") + protected EnterpriseConfigurationItemBooleanV2025R0 isInvitePrivilegeRestricted; + + @JsonProperty("collaboration_restrictions") + protected EnterpriseConfigurationContentAndSharingV2025R0CollaborationRestrictionsField + collaborationRestrictions; + + @JsonProperty("is_collaborator_invite_links_disabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isCollaboratorInviteLinksDisabled; + + @JsonProperty("is_invite_group_collaborator_disabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isInviteGroupCollaboratorDisabled; + + @JsonProperty("is_ownership_transfer_restricted") + protected EnterpriseConfigurationItemBooleanV2025R0 isOwnershipTransferRestricted; + + @JsonProperty("external_collaboration_status") + protected EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusField + externalCollaborationStatus; + + @JsonProperty("external_collaboration_allowlist_users") + protected EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationAllowlistUsersField + externalCollaborationAllowlistUsers; + + @JsonProperty("is_watermarking_enterprise_feature_enabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isWatermarkingEnterpriseFeatureEnabled; + + @JsonProperty("is_root_content_creation_restricted") + protected EnterpriseConfigurationItemBooleanV2025R0 isRootContentCreationRestricted; + + @JsonProperty("is_tag_creation_restricted") + protected EnterpriseConfigurationItemBooleanV2025R0 isTagCreationRestricted; + + @JsonProperty("tag_creation_restriction") + protected EnterpriseConfigurationItemStringV2025R0 tagCreationRestriction; + + @JsonProperty("is_email_uploads_enabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isEmailUploadsEnabled; + + @JsonProperty("is_custom_settings_enabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isCustomSettingsEnabled; + + @JsonProperty("is_forms_login_required") + protected EnterpriseConfigurationItemBooleanV2025R0 isFormsLoginRequired; + + @JsonProperty("is_forms_branding_default_enabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isFormsBrandingDefaultEnabled; + + @JsonProperty("is_cc_free_trial_active") + protected EnterpriseConfigurationItemBooleanV2025R0 isCcFreeTrialActive; + + @JsonProperty("is_file_request_editors_allowed") + protected EnterpriseConfigurationItemBooleanV2025R0 isFileRequestEditorsAllowed; + + @JsonProperty("is_file_request_branding_default_enabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isFileRequestBrandingDefaultEnabled; + + @JsonProperty("is_file_request_login_required") + protected EnterpriseConfigurationItemBooleanV2025R0 isFileRequestLoginRequired; + + @JsonProperty("is_shared_links_expiration_enabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isSharedLinksExpirationEnabled; + + @JsonProperty("shared_links_expiration_days") + protected EnterpriseConfigurationItemIntegerV2025R0 sharedLinksExpirationDays; + + @JsonProperty("is_public_shared_links_expiration_enabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isPublicSharedLinksExpirationEnabled; + + @JsonProperty("public_shared_links_expiration_days") + protected EnterpriseConfigurationItemIntegerV2025R0 publicSharedLinksExpirationDays; + + @JsonProperty("shared_expiration_target") + protected EnterpriseConfigurationItemStringV2025R0 sharedExpirationTarget; + + @JsonProperty("is_shared_links_expiration_notification_enabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isSharedLinksExpirationNotificationEnabled; + + @JsonProperty("shared_links_expiration_notification_days") + protected EnterpriseConfigurationItemIntegerV2025R0 sharedLinksExpirationNotificationDays; + + @JsonProperty("is_shared_links_expiration_notification_prevented") + protected EnterpriseConfigurationItemBooleanV2025R0 isSharedLinksExpirationNotificationPrevented; + + @JsonProperty("is_auto_delete_enabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isAutoDeleteEnabled; + + @JsonProperty("auto_delete_days") + protected EnterpriseConfigurationItemIntegerV2025R0 autoDeleteDays; + + @JsonProperty("is_auto_delete_expiration_modification_prevented") + protected EnterpriseConfigurationItemBooleanV2025R0 isAutoDeleteExpirationModificationPrevented; + + @JsonProperty("auto_delete_target") + protected EnterpriseConfigurationItemStringV2025R0 autoDeleteTarget; + + @JsonProperty("is_collaboration_expiration_enabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isCollaborationExpirationEnabled; + + @JsonProperty("collaboration_expiration_days") + protected EnterpriseConfigurationItemIntegerV2025R0 collaborationExpirationDays; + + @JsonProperty("is_collaboration_expiration_modification_prevented") + protected EnterpriseConfigurationItemBooleanV2025R0 + isCollaborationExpirationModificationPrevented; + + @JsonProperty("is_collaboration_expiration_notification_enabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isCollaborationExpirationNotificationEnabled; + + @JsonProperty("collaboration_expiration_target") + protected EnterpriseConfigurationItemStringV2025R0 collaborationExpirationTarget; + + @JsonProperty("trash_auto_clear_time") + protected EnterpriseConfigurationItemIntegerV2025R0 trashAutoClearTime; + + @JsonProperty("permanent_deletion_access") + protected EnterpriseConfigurationItemStringV2025R0 permanentDeletionAccess; + + @JsonProperty("permanent_deletion_allowlist_users") + protected EnterpriseConfigurationContentAndSharingV2025R0PermanentDeletionAllowlistUsersField + permanentDeletionAllowlistUsers; + + public EnterpriseConfigurationContentAndSharingV2025R0() { + super(); + } + + protected EnterpriseConfigurationContentAndSharingV2025R0(Builder builder) { + super(); + this.enterpriseFeatureSettings = builder.enterpriseFeatureSettings; + this.sharingItemType = builder.sharingItemType; + this.sharedLinkCompanyDefinition = builder.sharedLinkCompanyDefinition; + this.sharedLinkAccess = builder.sharedLinkAccess; + this.sharedLinkDefaultAccess = builder.sharedLinkDefaultAccess; + this.sharedLinkDefaultPermissionsSelected = builder.sharedLinkDefaultPermissionsSelected; + this.isOpenCustomUrlsDisabled = builder.isOpenCustomUrlsDisabled; + this.isCustomDomainHiddenInSharedLink = builder.isCustomDomainHiddenInSharedLink; + this.collaborationPermissions = builder.collaborationPermissions; + this.defaultCollaborationRole = builder.defaultCollaborationRole; + this.isInvitePrivilegeRestricted = builder.isInvitePrivilegeRestricted; + this.collaborationRestrictions = builder.collaborationRestrictions; + this.isCollaboratorInviteLinksDisabled = builder.isCollaboratorInviteLinksDisabled; + this.isInviteGroupCollaboratorDisabled = builder.isInviteGroupCollaboratorDisabled; + this.isOwnershipTransferRestricted = builder.isOwnershipTransferRestricted; + this.externalCollaborationStatus = builder.externalCollaborationStatus; + this.externalCollaborationAllowlistUsers = builder.externalCollaborationAllowlistUsers; + this.isWatermarkingEnterpriseFeatureEnabled = builder.isWatermarkingEnterpriseFeatureEnabled; + this.isRootContentCreationRestricted = builder.isRootContentCreationRestricted; + this.isTagCreationRestricted = builder.isTagCreationRestricted; + this.tagCreationRestriction = builder.tagCreationRestriction; + this.isEmailUploadsEnabled = builder.isEmailUploadsEnabled; + this.isCustomSettingsEnabled = builder.isCustomSettingsEnabled; + this.isFormsLoginRequired = builder.isFormsLoginRequired; + this.isFormsBrandingDefaultEnabled = builder.isFormsBrandingDefaultEnabled; + this.isCcFreeTrialActive = builder.isCcFreeTrialActive; + this.isFileRequestEditorsAllowed = builder.isFileRequestEditorsAllowed; + this.isFileRequestBrandingDefaultEnabled = builder.isFileRequestBrandingDefaultEnabled; + this.isFileRequestLoginRequired = builder.isFileRequestLoginRequired; + this.isSharedLinksExpirationEnabled = builder.isSharedLinksExpirationEnabled; + this.sharedLinksExpirationDays = builder.sharedLinksExpirationDays; + this.isPublicSharedLinksExpirationEnabled = builder.isPublicSharedLinksExpirationEnabled; + this.publicSharedLinksExpirationDays = builder.publicSharedLinksExpirationDays; + this.sharedExpirationTarget = builder.sharedExpirationTarget; + this.isSharedLinksExpirationNotificationEnabled = + builder.isSharedLinksExpirationNotificationEnabled; + this.sharedLinksExpirationNotificationDays = builder.sharedLinksExpirationNotificationDays; + this.isSharedLinksExpirationNotificationPrevented = + builder.isSharedLinksExpirationNotificationPrevented; + this.isAutoDeleteEnabled = builder.isAutoDeleteEnabled; + this.autoDeleteDays = builder.autoDeleteDays; + this.isAutoDeleteExpirationModificationPrevented = + builder.isAutoDeleteExpirationModificationPrevented; + this.autoDeleteTarget = builder.autoDeleteTarget; + this.isCollaborationExpirationEnabled = builder.isCollaborationExpirationEnabled; + this.collaborationExpirationDays = builder.collaborationExpirationDays; + this.isCollaborationExpirationModificationPrevented = + builder.isCollaborationExpirationModificationPrevented; + this.isCollaborationExpirationNotificationEnabled = + builder.isCollaborationExpirationNotificationEnabled; + this.collaborationExpirationTarget = builder.collaborationExpirationTarget; + this.trashAutoClearTime = builder.trashAutoClearTime; + this.permanentDeletionAccess = builder.permanentDeletionAccess; + this.permanentDeletionAllowlistUsers = builder.permanentDeletionAllowlistUsers; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getEnterpriseFeatureSettings() { + return enterpriseFeatureSettings; + } + + public EnterpriseConfigurationItemStringV2025R0 getSharingItemType() { + return sharingItemType; + } + + public EnterpriseConfigurationItemStringV2025R0 getSharedLinkCompanyDefinition() { + return sharedLinkCompanyDefinition; + } + + public EnterpriseConfigurationItemStringV2025R0 getSharedLinkAccess() { + return sharedLinkAccess; + } + + public EnterpriseConfigurationItemStringV2025R0 getSharedLinkDefaultAccess() { + return sharedLinkDefaultAccess; + } + + public EnterpriseConfigurationContentAndSharingV2025R0SharedLinkDefaultPermissionsSelectedField + getSharedLinkDefaultPermissionsSelected() { + return sharedLinkDefaultPermissionsSelected; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsOpenCustomUrlsDisabled() { + return isOpenCustomUrlsDisabled; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsCustomDomainHiddenInSharedLink() { + return isCustomDomainHiddenInSharedLink; + } + + public EnterpriseConfigurationContentAndSharingV2025R0CollaborationPermissionsField + getCollaborationPermissions() { + return collaborationPermissions; + } + + public EnterpriseConfigurationItemStringV2025R0 getDefaultCollaborationRole() { + return defaultCollaborationRole; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsInvitePrivilegeRestricted() { + return isInvitePrivilegeRestricted; + } + + public EnterpriseConfigurationContentAndSharingV2025R0CollaborationRestrictionsField + getCollaborationRestrictions() { + return collaborationRestrictions; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsCollaboratorInviteLinksDisabled() { + return isCollaboratorInviteLinksDisabled; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsInviteGroupCollaboratorDisabled() { + return isInviteGroupCollaboratorDisabled; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsOwnershipTransferRestricted() { + return isOwnershipTransferRestricted; + } + + public EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusField + getExternalCollaborationStatus() { + return externalCollaborationStatus; + } + + public EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationAllowlistUsersField + getExternalCollaborationAllowlistUsers() { + return externalCollaborationAllowlistUsers; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsWatermarkingEnterpriseFeatureEnabled() { + return isWatermarkingEnterpriseFeatureEnabled; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsRootContentCreationRestricted() { + return isRootContentCreationRestricted; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsTagCreationRestricted() { + return isTagCreationRestricted; + } + + public EnterpriseConfigurationItemStringV2025R0 getTagCreationRestriction() { + return tagCreationRestriction; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsEmailUploadsEnabled() { + return isEmailUploadsEnabled; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsCustomSettingsEnabled() { + return isCustomSettingsEnabled; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsFormsLoginRequired() { + return isFormsLoginRequired; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsFormsBrandingDefaultEnabled() { + return isFormsBrandingDefaultEnabled; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsCcFreeTrialActive() { + return isCcFreeTrialActive; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsFileRequestEditorsAllowed() { + return isFileRequestEditorsAllowed; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsFileRequestBrandingDefaultEnabled() { + return isFileRequestBrandingDefaultEnabled; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsFileRequestLoginRequired() { + return isFileRequestLoginRequired; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsSharedLinksExpirationEnabled() { + return isSharedLinksExpirationEnabled; + } + + public EnterpriseConfigurationItemIntegerV2025R0 getSharedLinksExpirationDays() { + return sharedLinksExpirationDays; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsPublicSharedLinksExpirationEnabled() { + return isPublicSharedLinksExpirationEnabled; + } + + public EnterpriseConfigurationItemIntegerV2025R0 getPublicSharedLinksExpirationDays() { + return publicSharedLinksExpirationDays; + } + + public EnterpriseConfigurationItemStringV2025R0 getSharedExpirationTarget() { + return sharedExpirationTarget; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsSharedLinksExpirationNotificationEnabled() { + return isSharedLinksExpirationNotificationEnabled; + } + + public EnterpriseConfigurationItemIntegerV2025R0 getSharedLinksExpirationNotificationDays() { + return sharedLinksExpirationNotificationDays; + } + + public EnterpriseConfigurationItemBooleanV2025R0 + getIsSharedLinksExpirationNotificationPrevented() { + return isSharedLinksExpirationNotificationPrevented; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsAutoDeleteEnabled() { + return isAutoDeleteEnabled; + } + + public EnterpriseConfigurationItemIntegerV2025R0 getAutoDeleteDays() { + return autoDeleteDays; + } + + public EnterpriseConfigurationItemBooleanV2025R0 + getIsAutoDeleteExpirationModificationPrevented() { + return isAutoDeleteExpirationModificationPrevented; + } + + public EnterpriseConfigurationItemStringV2025R0 getAutoDeleteTarget() { + return autoDeleteTarget; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsCollaborationExpirationEnabled() { + return isCollaborationExpirationEnabled; + } + + public EnterpriseConfigurationItemIntegerV2025R0 getCollaborationExpirationDays() { + return collaborationExpirationDays; + } + + public EnterpriseConfigurationItemBooleanV2025R0 + getIsCollaborationExpirationModificationPrevented() { + return isCollaborationExpirationModificationPrevented; + } + + public EnterpriseConfigurationItemBooleanV2025R0 + getIsCollaborationExpirationNotificationEnabled() { + return isCollaborationExpirationNotificationEnabled; + } + + public EnterpriseConfigurationItemStringV2025R0 getCollaborationExpirationTarget() { + return collaborationExpirationTarget; + } + + public EnterpriseConfigurationItemIntegerV2025R0 getTrashAutoClearTime() { + return trashAutoClearTime; + } + + public EnterpriseConfigurationItemStringV2025R0 getPermanentDeletionAccess() { + return permanentDeletionAccess; + } + + public EnterpriseConfigurationContentAndSharingV2025R0PermanentDeletionAllowlistUsersField + getPermanentDeletionAllowlistUsers() { + return permanentDeletionAllowlistUsers; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseConfigurationContentAndSharingV2025R0 casted = + (EnterpriseConfigurationContentAndSharingV2025R0) o; + return Objects.equals(enterpriseFeatureSettings, casted.enterpriseFeatureSettings) + && Objects.equals(sharingItemType, casted.sharingItemType) + && Objects.equals(sharedLinkCompanyDefinition, casted.sharedLinkCompanyDefinition) + && Objects.equals(sharedLinkAccess, casted.sharedLinkAccess) + && Objects.equals(sharedLinkDefaultAccess, casted.sharedLinkDefaultAccess) + && Objects.equals( + sharedLinkDefaultPermissionsSelected, casted.sharedLinkDefaultPermissionsSelected) + && Objects.equals(isOpenCustomUrlsDisabled, casted.isOpenCustomUrlsDisabled) + && Objects.equals(isCustomDomainHiddenInSharedLink, casted.isCustomDomainHiddenInSharedLink) + && Objects.equals(collaborationPermissions, casted.collaborationPermissions) + && Objects.equals(defaultCollaborationRole, casted.defaultCollaborationRole) + && Objects.equals(isInvitePrivilegeRestricted, casted.isInvitePrivilegeRestricted) + && Objects.equals(collaborationRestrictions, casted.collaborationRestrictions) + && Objects.equals( + isCollaboratorInviteLinksDisabled, casted.isCollaboratorInviteLinksDisabled) + && Objects.equals( + isInviteGroupCollaboratorDisabled, casted.isInviteGroupCollaboratorDisabled) + && Objects.equals(isOwnershipTransferRestricted, casted.isOwnershipTransferRestricted) + && Objects.equals(externalCollaborationStatus, casted.externalCollaborationStatus) + && Objects.equals( + externalCollaborationAllowlistUsers, casted.externalCollaborationAllowlistUsers) + && Objects.equals( + isWatermarkingEnterpriseFeatureEnabled, casted.isWatermarkingEnterpriseFeatureEnabled) + && Objects.equals(isRootContentCreationRestricted, casted.isRootContentCreationRestricted) + && Objects.equals(isTagCreationRestricted, casted.isTagCreationRestricted) + && Objects.equals(tagCreationRestriction, casted.tagCreationRestriction) + && Objects.equals(isEmailUploadsEnabled, casted.isEmailUploadsEnabled) + && Objects.equals(isCustomSettingsEnabled, casted.isCustomSettingsEnabled) + && Objects.equals(isFormsLoginRequired, casted.isFormsLoginRequired) + && Objects.equals(isFormsBrandingDefaultEnabled, casted.isFormsBrandingDefaultEnabled) + && Objects.equals(isCcFreeTrialActive, casted.isCcFreeTrialActive) + && Objects.equals(isFileRequestEditorsAllowed, casted.isFileRequestEditorsAllowed) + && Objects.equals( + isFileRequestBrandingDefaultEnabled, casted.isFileRequestBrandingDefaultEnabled) + && Objects.equals(isFileRequestLoginRequired, casted.isFileRequestLoginRequired) + && Objects.equals(isSharedLinksExpirationEnabled, casted.isSharedLinksExpirationEnabled) + && Objects.equals(sharedLinksExpirationDays, casted.sharedLinksExpirationDays) + && Objects.equals( + isPublicSharedLinksExpirationEnabled, casted.isPublicSharedLinksExpirationEnabled) + && Objects.equals(publicSharedLinksExpirationDays, casted.publicSharedLinksExpirationDays) + && Objects.equals(sharedExpirationTarget, casted.sharedExpirationTarget) + && Objects.equals( + isSharedLinksExpirationNotificationEnabled, + casted.isSharedLinksExpirationNotificationEnabled) + && Objects.equals( + sharedLinksExpirationNotificationDays, casted.sharedLinksExpirationNotificationDays) + && Objects.equals( + isSharedLinksExpirationNotificationPrevented, + casted.isSharedLinksExpirationNotificationPrevented) + && Objects.equals(isAutoDeleteEnabled, casted.isAutoDeleteEnabled) + && Objects.equals(autoDeleteDays, casted.autoDeleteDays) + && Objects.equals( + isAutoDeleteExpirationModificationPrevented, + casted.isAutoDeleteExpirationModificationPrevented) + && Objects.equals(autoDeleteTarget, casted.autoDeleteTarget) + && Objects.equals(isCollaborationExpirationEnabled, casted.isCollaborationExpirationEnabled) + && Objects.equals(collaborationExpirationDays, casted.collaborationExpirationDays) + && Objects.equals( + isCollaborationExpirationModificationPrevented, + casted.isCollaborationExpirationModificationPrevented) + && Objects.equals( + isCollaborationExpirationNotificationEnabled, + casted.isCollaborationExpirationNotificationEnabled) + && Objects.equals(collaborationExpirationTarget, casted.collaborationExpirationTarget) + && Objects.equals(trashAutoClearTime, casted.trashAutoClearTime) + && Objects.equals(permanentDeletionAccess, casted.permanentDeletionAccess) + && Objects.equals(permanentDeletionAllowlistUsers, casted.permanentDeletionAllowlistUsers); + } + + @Override + public int hashCode() { + return Objects.hash( + enterpriseFeatureSettings, + sharingItemType, + sharedLinkCompanyDefinition, + sharedLinkAccess, + sharedLinkDefaultAccess, + sharedLinkDefaultPermissionsSelected, + isOpenCustomUrlsDisabled, + isCustomDomainHiddenInSharedLink, + collaborationPermissions, + defaultCollaborationRole, + isInvitePrivilegeRestricted, + collaborationRestrictions, + isCollaboratorInviteLinksDisabled, + isInviteGroupCollaboratorDisabled, + isOwnershipTransferRestricted, + externalCollaborationStatus, + externalCollaborationAllowlistUsers, + isWatermarkingEnterpriseFeatureEnabled, + isRootContentCreationRestricted, + isTagCreationRestricted, + tagCreationRestriction, + isEmailUploadsEnabled, + isCustomSettingsEnabled, + isFormsLoginRequired, + isFormsBrandingDefaultEnabled, + isCcFreeTrialActive, + isFileRequestEditorsAllowed, + isFileRequestBrandingDefaultEnabled, + isFileRequestLoginRequired, + isSharedLinksExpirationEnabled, + sharedLinksExpirationDays, + isPublicSharedLinksExpirationEnabled, + publicSharedLinksExpirationDays, + sharedExpirationTarget, + isSharedLinksExpirationNotificationEnabled, + sharedLinksExpirationNotificationDays, + isSharedLinksExpirationNotificationPrevented, + isAutoDeleteEnabled, + autoDeleteDays, + isAutoDeleteExpirationModificationPrevented, + autoDeleteTarget, + isCollaborationExpirationEnabled, + collaborationExpirationDays, + isCollaborationExpirationModificationPrevented, + isCollaborationExpirationNotificationEnabled, + collaborationExpirationTarget, + trashAutoClearTime, + permanentDeletionAccess, + permanentDeletionAllowlistUsers); + } + + @Override + public String toString() { + return "EnterpriseConfigurationContentAndSharingV2025R0{" + + "enterpriseFeatureSettings='" + + enterpriseFeatureSettings + + '\'' + + ", " + + "sharingItemType='" + + sharingItemType + + '\'' + + ", " + + "sharedLinkCompanyDefinition='" + + sharedLinkCompanyDefinition + + '\'' + + ", " + + "sharedLinkAccess='" + + sharedLinkAccess + + '\'' + + ", " + + "sharedLinkDefaultAccess='" + + sharedLinkDefaultAccess + + '\'' + + ", " + + "sharedLinkDefaultPermissionsSelected='" + + sharedLinkDefaultPermissionsSelected + + '\'' + + ", " + + "isOpenCustomUrlsDisabled='" + + isOpenCustomUrlsDisabled + + '\'' + + ", " + + "isCustomDomainHiddenInSharedLink='" + + isCustomDomainHiddenInSharedLink + + '\'' + + ", " + + "collaborationPermissions='" + + collaborationPermissions + + '\'' + + ", " + + "defaultCollaborationRole='" + + defaultCollaborationRole + + '\'' + + ", " + + "isInvitePrivilegeRestricted='" + + isInvitePrivilegeRestricted + + '\'' + + ", " + + "collaborationRestrictions='" + + collaborationRestrictions + + '\'' + + ", " + + "isCollaboratorInviteLinksDisabled='" + + isCollaboratorInviteLinksDisabled + + '\'' + + ", " + + "isInviteGroupCollaboratorDisabled='" + + isInviteGroupCollaboratorDisabled + + '\'' + + ", " + + "isOwnershipTransferRestricted='" + + isOwnershipTransferRestricted + + '\'' + + ", " + + "externalCollaborationStatus='" + + externalCollaborationStatus + + '\'' + + ", " + + "externalCollaborationAllowlistUsers='" + + externalCollaborationAllowlistUsers + + '\'' + + ", " + + "isWatermarkingEnterpriseFeatureEnabled='" + + isWatermarkingEnterpriseFeatureEnabled + + '\'' + + ", " + + "isRootContentCreationRestricted='" + + isRootContentCreationRestricted + + '\'' + + ", " + + "isTagCreationRestricted='" + + isTagCreationRestricted + + '\'' + + ", " + + "tagCreationRestriction='" + + tagCreationRestriction + + '\'' + + ", " + + "isEmailUploadsEnabled='" + + isEmailUploadsEnabled + + '\'' + + ", " + + "isCustomSettingsEnabled='" + + isCustomSettingsEnabled + + '\'' + + ", " + + "isFormsLoginRequired='" + + isFormsLoginRequired + + '\'' + + ", " + + "isFormsBrandingDefaultEnabled='" + + isFormsBrandingDefaultEnabled + + '\'' + + ", " + + "isCcFreeTrialActive='" + + isCcFreeTrialActive + + '\'' + + ", " + + "isFileRequestEditorsAllowed='" + + isFileRequestEditorsAllowed + + '\'' + + ", " + + "isFileRequestBrandingDefaultEnabled='" + + isFileRequestBrandingDefaultEnabled + + '\'' + + ", " + + "isFileRequestLoginRequired='" + + isFileRequestLoginRequired + + '\'' + + ", " + + "isSharedLinksExpirationEnabled='" + + isSharedLinksExpirationEnabled + + '\'' + + ", " + + "sharedLinksExpirationDays='" + + sharedLinksExpirationDays + + '\'' + + ", " + + "isPublicSharedLinksExpirationEnabled='" + + isPublicSharedLinksExpirationEnabled + + '\'' + + ", " + + "publicSharedLinksExpirationDays='" + + publicSharedLinksExpirationDays + + '\'' + + ", " + + "sharedExpirationTarget='" + + sharedExpirationTarget + + '\'' + + ", " + + "isSharedLinksExpirationNotificationEnabled='" + + isSharedLinksExpirationNotificationEnabled + + '\'' + + ", " + + "sharedLinksExpirationNotificationDays='" + + sharedLinksExpirationNotificationDays + + '\'' + + ", " + + "isSharedLinksExpirationNotificationPrevented='" + + isSharedLinksExpirationNotificationPrevented + + '\'' + + ", " + + "isAutoDeleteEnabled='" + + isAutoDeleteEnabled + + '\'' + + ", " + + "autoDeleteDays='" + + autoDeleteDays + + '\'' + + ", " + + "isAutoDeleteExpirationModificationPrevented='" + + isAutoDeleteExpirationModificationPrevented + + '\'' + + ", " + + "autoDeleteTarget='" + + autoDeleteTarget + + '\'' + + ", " + + "isCollaborationExpirationEnabled='" + + isCollaborationExpirationEnabled + + '\'' + + ", " + + "collaborationExpirationDays='" + + collaborationExpirationDays + + '\'' + + ", " + + "isCollaborationExpirationModificationPrevented='" + + isCollaborationExpirationModificationPrevented + + '\'' + + ", " + + "isCollaborationExpirationNotificationEnabled='" + + isCollaborationExpirationNotificationEnabled + + '\'' + + ", " + + "collaborationExpirationTarget='" + + collaborationExpirationTarget + + '\'' + + ", " + + "trashAutoClearTime='" + + trashAutoClearTime + + '\'' + + ", " + + "permanentDeletionAccess='" + + permanentDeletionAccess + + '\'' + + ", " + + "permanentDeletionAllowlistUsers='" + + permanentDeletionAllowlistUsers + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List enterpriseFeatureSettings; + + protected EnterpriseConfigurationItemStringV2025R0 sharingItemType; + + protected EnterpriseConfigurationItemStringV2025R0 sharedLinkCompanyDefinition; + + protected EnterpriseConfigurationItemStringV2025R0 sharedLinkAccess; + + protected EnterpriseConfigurationItemStringV2025R0 sharedLinkDefaultAccess; + + protected + EnterpriseConfigurationContentAndSharingV2025R0SharedLinkDefaultPermissionsSelectedField + sharedLinkDefaultPermissionsSelected; + + protected EnterpriseConfigurationItemBooleanV2025R0 isOpenCustomUrlsDisabled; + + protected EnterpriseConfigurationItemBooleanV2025R0 isCustomDomainHiddenInSharedLink; + + protected EnterpriseConfigurationContentAndSharingV2025R0CollaborationPermissionsField + collaborationPermissions; + + protected EnterpriseConfigurationItemStringV2025R0 defaultCollaborationRole; + + protected EnterpriseConfigurationItemBooleanV2025R0 isInvitePrivilegeRestricted; + + protected EnterpriseConfigurationContentAndSharingV2025R0CollaborationRestrictionsField + collaborationRestrictions; + + protected EnterpriseConfigurationItemBooleanV2025R0 isCollaboratorInviteLinksDisabled; + + protected EnterpriseConfigurationItemBooleanV2025R0 isInviteGroupCollaboratorDisabled; + + protected EnterpriseConfigurationItemBooleanV2025R0 isOwnershipTransferRestricted; + + protected EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusField + externalCollaborationStatus; + + protected + EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationAllowlistUsersField + externalCollaborationAllowlistUsers; + + protected EnterpriseConfigurationItemBooleanV2025R0 isWatermarkingEnterpriseFeatureEnabled; + + protected EnterpriseConfigurationItemBooleanV2025R0 isRootContentCreationRestricted; + + protected EnterpriseConfigurationItemBooleanV2025R0 isTagCreationRestricted; + + protected EnterpriseConfigurationItemStringV2025R0 tagCreationRestriction; + + protected EnterpriseConfigurationItemBooleanV2025R0 isEmailUploadsEnabled; + + protected EnterpriseConfigurationItemBooleanV2025R0 isCustomSettingsEnabled; + + protected EnterpriseConfigurationItemBooleanV2025R0 isFormsLoginRequired; + + protected EnterpriseConfigurationItemBooleanV2025R0 isFormsBrandingDefaultEnabled; + + protected EnterpriseConfigurationItemBooleanV2025R0 isCcFreeTrialActive; + + protected EnterpriseConfigurationItemBooleanV2025R0 isFileRequestEditorsAllowed; + + protected EnterpriseConfigurationItemBooleanV2025R0 isFileRequestBrandingDefaultEnabled; + + protected EnterpriseConfigurationItemBooleanV2025R0 isFileRequestLoginRequired; + + protected EnterpriseConfigurationItemBooleanV2025R0 isSharedLinksExpirationEnabled; + + protected EnterpriseConfigurationItemIntegerV2025R0 sharedLinksExpirationDays; + + protected EnterpriseConfigurationItemBooleanV2025R0 isPublicSharedLinksExpirationEnabled; + + protected EnterpriseConfigurationItemIntegerV2025R0 publicSharedLinksExpirationDays; + + protected EnterpriseConfigurationItemStringV2025R0 sharedExpirationTarget; + + protected EnterpriseConfigurationItemBooleanV2025R0 isSharedLinksExpirationNotificationEnabled; + + protected EnterpriseConfigurationItemIntegerV2025R0 sharedLinksExpirationNotificationDays; + + protected EnterpriseConfigurationItemBooleanV2025R0 + isSharedLinksExpirationNotificationPrevented; + + protected EnterpriseConfigurationItemBooleanV2025R0 isAutoDeleteEnabled; + + protected EnterpriseConfigurationItemIntegerV2025R0 autoDeleteDays; + + protected EnterpriseConfigurationItemBooleanV2025R0 isAutoDeleteExpirationModificationPrevented; + + protected EnterpriseConfigurationItemStringV2025R0 autoDeleteTarget; + + protected EnterpriseConfigurationItemBooleanV2025R0 isCollaborationExpirationEnabled; + + protected EnterpriseConfigurationItemIntegerV2025R0 collaborationExpirationDays; + + protected EnterpriseConfigurationItemBooleanV2025R0 + isCollaborationExpirationModificationPrevented; + + protected EnterpriseConfigurationItemBooleanV2025R0 + isCollaborationExpirationNotificationEnabled; + + protected EnterpriseConfigurationItemStringV2025R0 collaborationExpirationTarget; + + protected EnterpriseConfigurationItemIntegerV2025R0 trashAutoClearTime; + + protected EnterpriseConfigurationItemStringV2025R0 permanentDeletionAccess; + + protected EnterpriseConfigurationContentAndSharingV2025R0PermanentDeletionAllowlistUsersField + permanentDeletionAllowlistUsers; + + public Builder enterpriseFeatureSettings( + List enterpriseFeatureSettings) { + this.enterpriseFeatureSettings = enterpriseFeatureSettings; + return this; + } + + public Builder sharingItemType(EnterpriseConfigurationItemStringV2025R0 sharingItemType) { + this.sharingItemType = sharingItemType; + return this; + } + + public Builder sharedLinkCompanyDefinition( + EnterpriseConfigurationItemStringV2025R0 sharedLinkCompanyDefinition) { + this.sharedLinkCompanyDefinition = sharedLinkCompanyDefinition; + return this; + } + + public Builder sharedLinkAccess(EnterpriseConfigurationItemStringV2025R0 sharedLinkAccess) { + this.sharedLinkAccess = sharedLinkAccess; + return this; + } + + public Builder sharedLinkDefaultAccess( + EnterpriseConfigurationItemStringV2025R0 sharedLinkDefaultAccess) { + this.sharedLinkDefaultAccess = sharedLinkDefaultAccess; + return this; + } + + public Builder sharedLinkDefaultPermissionsSelected( + EnterpriseConfigurationContentAndSharingV2025R0SharedLinkDefaultPermissionsSelectedField + sharedLinkDefaultPermissionsSelected) { + this.sharedLinkDefaultPermissionsSelected = sharedLinkDefaultPermissionsSelected; + return this; + } + + public Builder isOpenCustomUrlsDisabled( + EnterpriseConfigurationItemBooleanV2025R0 isOpenCustomUrlsDisabled) { + this.isOpenCustomUrlsDisabled = isOpenCustomUrlsDisabled; + return this; + } + + public Builder isCustomDomainHiddenInSharedLink( + EnterpriseConfigurationItemBooleanV2025R0 isCustomDomainHiddenInSharedLink) { + this.isCustomDomainHiddenInSharedLink = isCustomDomainHiddenInSharedLink; + return this; + } + + public Builder collaborationPermissions( + EnterpriseConfigurationContentAndSharingV2025R0CollaborationPermissionsField + collaborationPermissions) { + this.collaborationPermissions = collaborationPermissions; + return this; + } + + public Builder defaultCollaborationRole( + EnterpriseConfigurationItemStringV2025R0 defaultCollaborationRole) { + this.defaultCollaborationRole = defaultCollaborationRole; + return this; + } + + public Builder isInvitePrivilegeRestricted( + EnterpriseConfigurationItemBooleanV2025R0 isInvitePrivilegeRestricted) { + this.isInvitePrivilegeRestricted = isInvitePrivilegeRestricted; + return this; + } + + public Builder collaborationRestrictions( + EnterpriseConfigurationContentAndSharingV2025R0CollaborationRestrictionsField + collaborationRestrictions) { + this.collaborationRestrictions = collaborationRestrictions; + return this; + } + + public Builder isCollaboratorInviteLinksDisabled( + EnterpriseConfigurationItemBooleanV2025R0 isCollaboratorInviteLinksDisabled) { + this.isCollaboratorInviteLinksDisabled = isCollaboratorInviteLinksDisabled; + return this; + } + + public Builder isInviteGroupCollaboratorDisabled( + EnterpriseConfigurationItemBooleanV2025R0 isInviteGroupCollaboratorDisabled) { + this.isInviteGroupCollaboratorDisabled = isInviteGroupCollaboratorDisabled; + return this; + } + + public Builder isOwnershipTransferRestricted( + EnterpriseConfigurationItemBooleanV2025R0 isOwnershipTransferRestricted) { + this.isOwnershipTransferRestricted = isOwnershipTransferRestricted; + return this; + } + + public Builder externalCollaborationStatus( + EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusField + externalCollaborationStatus) { + this.externalCollaborationStatus = externalCollaborationStatus; + return this; + } + + public Builder externalCollaborationAllowlistUsers( + EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationAllowlistUsersField + externalCollaborationAllowlistUsers) { + this.externalCollaborationAllowlistUsers = externalCollaborationAllowlistUsers; + return this; + } + + public Builder isWatermarkingEnterpriseFeatureEnabled( + EnterpriseConfigurationItemBooleanV2025R0 isWatermarkingEnterpriseFeatureEnabled) { + this.isWatermarkingEnterpriseFeatureEnabled = isWatermarkingEnterpriseFeatureEnabled; + return this; + } + + public Builder isRootContentCreationRestricted( + EnterpriseConfigurationItemBooleanV2025R0 isRootContentCreationRestricted) { + this.isRootContentCreationRestricted = isRootContentCreationRestricted; + return this; + } + + public Builder isTagCreationRestricted( + EnterpriseConfigurationItemBooleanV2025R0 isTagCreationRestricted) { + this.isTagCreationRestricted = isTagCreationRestricted; + return this; + } + + public Builder tagCreationRestriction( + EnterpriseConfigurationItemStringV2025R0 tagCreationRestriction) { + this.tagCreationRestriction = tagCreationRestriction; + return this; + } + + public Builder isEmailUploadsEnabled( + EnterpriseConfigurationItemBooleanV2025R0 isEmailUploadsEnabled) { + this.isEmailUploadsEnabled = isEmailUploadsEnabled; + return this; + } + + public Builder isCustomSettingsEnabled( + EnterpriseConfigurationItemBooleanV2025R0 isCustomSettingsEnabled) { + this.isCustomSettingsEnabled = isCustomSettingsEnabled; + return this; + } + + public Builder isFormsLoginRequired( + EnterpriseConfigurationItemBooleanV2025R0 isFormsLoginRequired) { + this.isFormsLoginRequired = isFormsLoginRequired; + return this; + } + + public Builder isFormsBrandingDefaultEnabled( + EnterpriseConfigurationItemBooleanV2025R0 isFormsBrandingDefaultEnabled) { + this.isFormsBrandingDefaultEnabled = isFormsBrandingDefaultEnabled; + return this; + } + + public Builder isCcFreeTrialActive( + EnterpriseConfigurationItemBooleanV2025R0 isCcFreeTrialActive) { + this.isCcFreeTrialActive = isCcFreeTrialActive; + return this; + } + + public Builder isFileRequestEditorsAllowed( + EnterpriseConfigurationItemBooleanV2025R0 isFileRequestEditorsAllowed) { + this.isFileRequestEditorsAllowed = isFileRequestEditorsAllowed; + return this; + } + + public Builder isFileRequestBrandingDefaultEnabled( + EnterpriseConfigurationItemBooleanV2025R0 isFileRequestBrandingDefaultEnabled) { + this.isFileRequestBrandingDefaultEnabled = isFileRequestBrandingDefaultEnabled; + return this; + } + + public Builder isFileRequestLoginRequired( + EnterpriseConfigurationItemBooleanV2025R0 isFileRequestLoginRequired) { + this.isFileRequestLoginRequired = isFileRequestLoginRequired; + return this; + } + + public Builder isSharedLinksExpirationEnabled( + EnterpriseConfigurationItemBooleanV2025R0 isSharedLinksExpirationEnabled) { + this.isSharedLinksExpirationEnabled = isSharedLinksExpirationEnabled; + return this; + } + + public Builder sharedLinksExpirationDays( + EnterpriseConfigurationItemIntegerV2025R0 sharedLinksExpirationDays) { + this.sharedLinksExpirationDays = sharedLinksExpirationDays; + return this; + } + + public Builder isPublicSharedLinksExpirationEnabled( + EnterpriseConfigurationItemBooleanV2025R0 isPublicSharedLinksExpirationEnabled) { + this.isPublicSharedLinksExpirationEnabled = isPublicSharedLinksExpirationEnabled; + return this; + } + + public Builder publicSharedLinksExpirationDays( + EnterpriseConfigurationItemIntegerV2025R0 publicSharedLinksExpirationDays) { + this.publicSharedLinksExpirationDays = publicSharedLinksExpirationDays; + return this; + } + + public Builder sharedExpirationTarget( + EnterpriseConfigurationItemStringV2025R0 sharedExpirationTarget) { + this.sharedExpirationTarget = sharedExpirationTarget; + return this; + } + + public Builder isSharedLinksExpirationNotificationEnabled( + EnterpriseConfigurationItemBooleanV2025R0 isSharedLinksExpirationNotificationEnabled) { + this.isSharedLinksExpirationNotificationEnabled = isSharedLinksExpirationNotificationEnabled; + return this; + } + + public Builder sharedLinksExpirationNotificationDays( + EnterpriseConfigurationItemIntegerV2025R0 sharedLinksExpirationNotificationDays) { + this.sharedLinksExpirationNotificationDays = sharedLinksExpirationNotificationDays; + return this; + } + + public Builder isSharedLinksExpirationNotificationPrevented( + EnterpriseConfigurationItemBooleanV2025R0 isSharedLinksExpirationNotificationPrevented) { + this.isSharedLinksExpirationNotificationPrevented = + isSharedLinksExpirationNotificationPrevented; + return this; + } + + public Builder isAutoDeleteEnabled( + EnterpriseConfigurationItemBooleanV2025R0 isAutoDeleteEnabled) { + this.isAutoDeleteEnabled = isAutoDeleteEnabled; + return this; + } + + public Builder autoDeleteDays(EnterpriseConfigurationItemIntegerV2025R0 autoDeleteDays) { + this.autoDeleteDays = autoDeleteDays; + return this; + } + + public Builder isAutoDeleteExpirationModificationPrevented( + EnterpriseConfigurationItemBooleanV2025R0 isAutoDeleteExpirationModificationPrevented) { + this.isAutoDeleteExpirationModificationPrevented = + isAutoDeleteExpirationModificationPrevented; + return this; + } + + public Builder autoDeleteTarget(EnterpriseConfigurationItemStringV2025R0 autoDeleteTarget) { + this.autoDeleteTarget = autoDeleteTarget; + return this; + } + + public Builder isCollaborationExpirationEnabled( + EnterpriseConfigurationItemBooleanV2025R0 isCollaborationExpirationEnabled) { + this.isCollaborationExpirationEnabled = isCollaborationExpirationEnabled; + return this; + } + + public Builder collaborationExpirationDays( + EnterpriseConfigurationItemIntegerV2025R0 collaborationExpirationDays) { + this.collaborationExpirationDays = collaborationExpirationDays; + return this; + } + + public Builder isCollaborationExpirationModificationPrevented( + EnterpriseConfigurationItemBooleanV2025R0 isCollaborationExpirationModificationPrevented) { + this.isCollaborationExpirationModificationPrevented = + isCollaborationExpirationModificationPrevented; + return this; + } + + public Builder isCollaborationExpirationNotificationEnabled( + EnterpriseConfigurationItemBooleanV2025R0 isCollaborationExpirationNotificationEnabled) { + this.isCollaborationExpirationNotificationEnabled = + isCollaborationExpirationNotificationEnabled; + return this; + } + + public Builder collaborationExpirationTarget( + EnterpriseConfigurationItemStringV2025R0 collaborationExpirationTarget) { + this.collaborationExpirationTarget = collaborationExpirationTarget; + return this; + } + + public Builder trashAutoClearTime( + EnterpriseConfigurationItemIntegerV2025R0 trashAutoClearTime) { + this.trashAutoClearTime = trashAutoClearTime; + return this; + } + + public Builder permanentDeletionAccess( + EnterpriseConfigurationItemStringV2025R0 permanentDeletionAccess) { + this.permanentDeletionAccess = permanentDeletionAccess; + return this; + } + + public Builder permanentDeletionAllowlistUsers( + EnterpriseConfigurationContentAndSharingV2025R0PermanentDeletionAllowlistUsersField + permanentDeletionAllowlistUsers) { + this.permanentDeletionAllowlistUsers = permanentDeletionAllowlistUsers; + return this; + } + + public EnterpriseConfigurationContentAndSharingV2025R0 build() { + return new EnterpriseConfigurationContentAndSharingV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0CollaborationPermissionsField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0CollaborationPermissionsField.java new file mode 100644 index 000000000..3184f8770 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0CollaborationPermissionsField.java @@ -0,0 +1,79 @@ +package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationcontentandsharingv2025r0; + +import com.box.sdkgen.schemas.v2025r0.collaborationpermissionsv2025r0.CollaborationPermissionsV2025R0; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemv2025r0.EnterpriseConfigurationItemV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class EnterpriseConfigurationContentAndSharingV2025R0CollaborationPermissionsField + extends EnterpriseConfigurationItemV2025R0 { + + protected CollaborationPermissionsV2025R0 value; + + public EnterpriseConfigurationContentAndSharingV2025R0CollaborationPermissionsField() { + super(); + } + + protected EnterpriseConfigurationContentAndSharingV2025R0CollaborationPermissionsField( + Builder builder) { + super(builder); + this.value = builder.value; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public CollaborationPermissionsV2025R0 getValue() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseConfigurationContentAndSharingV2025R0CollaborationPermissionsField casted = + (EnterpriseConfigurationContentAndSharingV2025R0CollaborationPermissionsField) o; + return Objects.equals(isUsed, casted.isUsed) && Objects.equals(value, casted.value); + } + + @Override + public int hashCode() { + return Objects.hash(isUsed, value); + } + + @Override + public String toString() { + return "EnterpriseConfigurationContentAndSharingV2025R0CollaborationPermissionsField{" + + "isUsed='" + + isUsed + + '\'' + + ", " + + "value='" + + value + + '\'' + + "}"; + } + + public static class Builder extends EnterpriseConfigurationItemV2025R0.Builder { + + protected CollaborationPermissionsV2025R0 value; + + public Builder value(CollaborationPermissionsV2025R0 value) { + this.value = value; + return this; + } + + @Override + public Builder isUsed(Boolean isUsed) { + this.isUsed = isUsed; + return this; + } + + public EnterpriseConfigurationContentAndSharingV2025R0CollaborationPermissionsField build() { + return new EnterpriseConfigurationContentAndSharingV2025R0CollaborationPermissionsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0CollaborationRestrictionsField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0CollaborationRestrictionsField.java new file mode 100644 index 000000000..60211ac36 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0CollaborationRestrictionsField.java @@ -0,0 +1,146 @@ +package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationcontentandsharingv2025r0; + +import com.box.sdkgen.schemas.v2025r0.collaborationrestrictionv2025r0.CollaborationRestrictionV2025R0; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemv2025r0.EnterpriseConfigurationItemV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class EnterpriseConfigurationContentAndSharingV2025R0CollaborationRestrictionsField + extends EnterpriseConfigurationItemV2025R0 { + + @JsonDeserialize(using = ValueDeserializer.class) + @JsonSerialize(using = ValueSerializer.class) + protected List> value; + + public EnterpriseConfigurationContentAndSharingV2025R0CollaborationRestrictionsField() { + super(); + } + + protected EnterpriseConfigurationContentAndSharingV2025R0CollaborationRestrictionsField( + Builder builder) { + super(builder); + this.value = builder.value; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List> getValue() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseConfigurationContentAndSharingV2025R0CollaborationRestrictionsField casted = + (EnterpriseConfigurationContentAndSharingV2025R0CollaborationRestrictionsField) o; + return Objects.equals(isUsed, casted.isUsed) && Objects.equals(value, casted.value); + } + + @Override + public int hashCode() { + return Objects.hash(isUsed, value); + } + + @Override + public String toString() { + return "EnterpriseConfigurationContentAndSharingV2025R0CollaborationRestrictionsField{" + + "isUsed='" + + isUsed + + '\'' + + ", " + + "value='" + + value + + '\'' + + "}"; + } + + public static class Builder extends EnterpriseConfigurationItemV2025R0.Builder { + + protected List> value; + + public Builder value(List value) { + this.value = EnumWrapper.wrapValuableEnumList(value, CollaborationRestrictionV2025R0.class); + return this; + } + + @Override + public Builder isUsed(Boolean isUsed) { + this.isUsed = isUsed; + return this; + } + + public EnterpriseConfigurationContentAndSharingV2025R0CollaborationRestrictionsField build() { + return new EnterpriseConfigurationContentAndSharingV2025R0CollaborationRestrictionsField( + this); + } + } + + public static class ValueDeserializer + extends JsonDeserializer>> { + + public final JsonDeserializer> elementDeserializer; + + public ValueDeserializer() { + super(); + this.elementDeserializer = + new CollaborationRestrictionV2025R0.CollaborationRestrictionV2025R0Deserializer(); + } + + @Override + public List> deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + JsonNode node = p.getCodec().readTree(p); + List> elements = new ArrayList<>(); + for (JsonNode item : node) { + JsonParser pa = item.traverse(p.getCodec()); + pa.nextToken(); + elements.add(elementDeserializer.deserialize(pa, ctxt)); + } + return elements; + } + } + + public static class ValueSerializer + extends JsonSerializer>> { + + public final JsonSerializer> elementSerializer; + + public ValueSerializer() { + super(); + this.elementSerializer = + new CollaborationRestrictionV2025R0.CollaborationRestrictionV2025R0Serializer(); + } + + @Override + public void serialize( + List> value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeStartArray(); + for (EnumWrapper item : value) { + elementSerializer.serialize(item, gen, serializers); + } + gen.writeEndArray(); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationAllowlistUsersField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationAllowlistUsersField.java new file mode 100644 index 000000000..d56cc1361 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationAllowlistUsersField.java @@ -0,0 +1,82 @@ +package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationcontentandsharingv2025r0; + +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemv2025r0.EnterpriseConfigurationItemV2025R0; +import com.box.sdkgen.schemas.v2025r0.listuserv2025r0.ListUserV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationAllowlistUsersField + extends EnterpriseConfigurationItemV2025R0 { + + protected List value; + + public EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationAllowlistUsersField() { + super(); + } + + protected EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationAllowlistUsersField( + Builder builder) { + super(builder); + this.value = builder.value; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getValue() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationAllowlistUsersField casted = + (EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationAllowlistUsersField) o; + return Objects.equals(isUsed, casted.isUsed) && Objects.equals(value, casted.value); + } + + @Override + public int hashCode() { + return Objects.hash(isUsed, value); + } + + @Override + public String toString() { + return "EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationAllowlistUsersField{" + + "isUsed='" + + isUsed + + '\'' + + ", " + + "value='" + + value + + '\'' + + "}"; + } + + public static class Builder extends EnterpriseConfigurationItemV2025R0.Builder { + + protected List value; + + public Builder value(List value) { + this.value = value; + return this; + } + + @Override + public Builder isUsed(Boolean isUsed) { + this.isUsed = isUsed; + return this; + } + + public EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationAllowlistUsersField + build() { + return new EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationAllowlistUsersField( + this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusField.java new file mode 100644 index 000000000..57b84288a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusField.java @@ -0,0 +1,116 @@ +package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationcontentandsharingv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemv2025r0.EnterpriseConfigurationItemV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusField + extends EnterpriseConfigurationItemV2025R0 { + + /** The external collaboration status. */ + @JsonDeserialize( + using = + EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField + .EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueFieldDeserializer + .class) + @JsonSerialize( + using = + EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField + .EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueFieldSerializer + .class) + @Nullable + protected EnumWrapper< + EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField> + value; + + public EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusField() { + super(); + } + + protected EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusField( + Builder builder) { + super(builder); + this.value = builder.value; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper< + EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField> + getValue() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusField casted = + (EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusField) o; + return Objects.equals(isUsed, casted.isUsed) && Objects.equals(value, casted.value); + } + + @Override + public int hashCode() { + return Objects.hash(isUsed, value); + } + + @Override + public String toString() { + return "EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusField{" + + "isUsed='" + + isUsed + + '\'' + + ", " + + "value='" + + value + + '\'' + + "}"; + } + + public static class Builder extends EnterpriseConfigurationItemV2025R0.Builder { + + protected EnumWrapper< + EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField> + value; + + public Builder value( + EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField + value) { + this.value = + new EnumWrapper< + EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField>( + value); + this.markNullableFieldAsSet("value"); + return this; + } + + public Builder value( + EnumWrapper< + EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField> + value) { + this.value = value; + this.markNullableFieldAsSet("value"); + return this; + } + + @Override + public Builder isUsed(Boolean isUsed) { + this.isUsed = isUsed; + return this; + } + + public EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusField build() { + return new EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusField( + this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField.java new file mode 100644 index 000000000..ca9ed781f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField.java @@ -0,0 +1,82 @@ +package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationcontentandsharingv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum + EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField + implements Valuable { + ENABLE_EXTERNAL_COLLABORATION("enable_external_collaboration"), + LIMIT_COLLABORATION_TO_ALLOWLISTED_DOMAINS("limit_collaboration_to_allowlisted_domains"); + + private final String value; + + EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField( + String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static + class EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueFieldDeserializer + extends JsonDeserializer< + EnumWrapper< + EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField>> { + + public + EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper< + EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField> + deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream( + EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField + .values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper< + EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField>( + value)); + } + } + + public static + class EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueFieldSerializer + extends JsonSerializer< + EnumWrapper< + EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField>> { + + public + EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper< + EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField> + value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0PermanentDeletionAllowlistUsersField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0PermanentDeletionAllowlistUsersField.java new file mode 100644 index 000000000..a0d059d8a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0PermanentDeletionAllowlistUsersField.java @@ -0,0 +1,82 @@ +package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationcontentandsharingv2025r0; + +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemv2025r0.EnterpriseConfigurationItemV2025R0; +import com.box.sdkgen.schemas.v2025r0.listuserv2025r0.ListUserV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class EnterpriseConfigurationContentAndSharingV2025R0PermanentDeletionAllowlistUsersField + extends EnterpriseConfigurationItemV2025R0 { + + protected List value; + + public EnterpriseConfigurationContentAndSharingV2025R0PermanentDeletionAllowlistUsersField() { + super(); + } + + protected EnterpriseConfigurationContentAndSharingV2025R0PermanentDeletionAllowlistUsersField( + Builder builder) { + super(builder); + this.value = builder.value; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getValue() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseConfigurationContentAndSharingV2025R0PermanentDeletionAllowlistUsersField casted = + (EnterpriseConfigurationContentAndSharingV2025R0PermanentDeletionAllowlistUsersField) o; + return Objects.equals(isUsed, casted.isUsed) && Objects.equals(value, casted.value); + } + + @Override + public int hashCode() { + return Objects.hash(isUsed, value); + } + + @Override + public String toString() { + return "EnterpriseConfigurationContentAndSharingV2025R0PermanentDeletionAllowlistUsersField{" + + "isUsed='" + + isUsed + + '\'' + + ", " + + "value='" + + value + + '\'' + + "}"; + } + + public static class Builder extends EnterpriseConfigurationItemV2025R0.Builder { + + protected List value; + + public Builder value(List value) { + this.value = value; + return this; + } + + @Override + public Builder isUsed(Boolean isUsed) { + this.isUsed = isUsed; + return this; + } + + public EnterpriseConfigurationContentAndSharingV2025R0PermanentDeletionAllowlistUsersField + build() { + return new EnterpriseConfigurationContentAndSharingV2025R0PermanentDeletionAllowlistUsersField( + this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0SharedLinkDefaultPermissionsSelectedField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0SharedLinkDefaultPermissionsSelectedField.java new file mode 100644 index 000000000..4616842a4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0SharedLinkDefaultPermissionsSelectedField.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationcontentandsharingv2025r0; + +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemv2025r0.EnterpriseConfigurationItemV2025R0; +import com.box.sdkgen.schemas.v2025r0.sharedlinkpermissionsv2025r0.SharedLinkPermissionsV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public +class EnterpriseConfigurationContentAndSharingV2025R0SharedLinkDefaultPermissionsSelectedField + extends EnterpriseConfigurationItemV2025R0 { + + protected SharedLinkPermissionsV2025R0 value; + + public + EnterpriseConfigurationContentAndSharingV2025R0SharedLinkDefaultPermissionsSelectedField() { + super(); + } + + protected + EnterpriseConfigurationContentAndSharingV2025R0SharedLinkDefaultPermissionsSelectedField( + Builder builder) { + super(builder); + this.value = builder.value; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public SharedLinkPermissionsV2025R0 getValue() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseConfigurationContentAndSharingV2025R0SharedLinkDefaultPermissionsSelectedField + casted = + (EnterpriseConfigurationContentAndSharingV2025R0SharedLinkDefaultPermissionsSelectedField) + o; + return Objects.equals(isUsed, casted.isUsed) && Objects.equals(value, casted.value); + } + + @Override + public int hashCode() { + return Objects.hash(isUsed, value); + } + + @Override + public String toString() { + return "EnterpriseConfigurationContentAndSharingV2025R0SharedLinkDefaultPermissionsSelectedField{" + + "isUsed='" + + isUsed + + '\'' + + ", " + + "value='" + + value + + '\'' + + "}"; + } + + public static class Builder extends EnterpriseConfigurationItemV2025R0.Builder { + + protected SharedLinkPermissionsV2025R0 value; + + public Builder value(SharedLinkPermissionsV2025R0 value) { + this.value = value; + return this; + } + + @Override + public Builder isUsed(Boolean isUsed) { + this.isUsed = isUsed; + return this; + } + + public EnterpriseConfigurationContentAndSharingV2025R0SharedLinkDefaultPermissionsSelectedField + build() { + return new EnterpriseConfigurationContentAndSharingV2025R0SharedLinkDefaultPermissionsSelectedField( + this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationitembooleanv2025r0/EnterpriseConfigurationItemBooleanV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationitembooleanv2025r0/EnterpriseConfigurationItemBooleanV2025R0.java new file mode 100644 index 000000000..05179e46e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationitembooleanv2025r0/EnterpriseConfigurationItemBooleanV2025R0.java @@ -0,0 +1,80 @@ +package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitembooleanv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemv2025r0.EnterpriseConfigurationItemV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +/** An enterprise configuration item with a boolean type value. */ +@JsonFilter("nullablePropertyFilter") +public class EnterpriseConfigurationItemBooleanV2025R0 extends EnterpriseConfigurationItemV2025R0 { + + /** The value of the enterprise configuration as a boolean. */ + @Nullable protected Boolean value; + + public EnterpriseConfigurationItemBooleanV2025R0() { + super(); + } + + protected EnterpriseConfigurationItemBooleanV2025R0(Builder builder) { + super(builder); + this.value = builder.value; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getValue() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseConfigurationItemBooleanV2025R0 casted = + (EnterpriseConfigurationItemBooleanV2025R0) o; + return Objects.equals(isUsed, casted.isUsed) && Objects.equals(value, casted.value); + } + + @Override + public int hashCode() { + return Objects.hash(isUsed, value); + } + + @Override + public String toString() { + return "EnterpriseConfigurationItemBooleanV2025R0{" + + "isUsed='" + + isUsed + + '\'' + + ", " + + "value='" + + value + + '\'' + + "}"; + } + + public static class Builder extends EnterpriseConfigurationItemV2025R0.Builder { + + protected Boolean value; + + public Builder value(Boolean value) { + this.value = value; + this.markNullableFieldAsSet("value"); + return this; + } + + @Override + public Builder isUsed(Boolean isUsed) { + this.isUsed = isUsed; + return this; + } + + public EnterpriseConfigurationItemBooleanV2025R0 build() { + return new EnterpriseConfigurationItemBooleanV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationitemintegerv2025r0/EnterpriseConfigurationItemIntegerV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationitemintegerv2025r0/EnterpriseConfigurationItemIntegerV2025R0.java new file mode 100644 index 000000000..17d727359 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationitemintegerv2025r0/EnterpriseConfigurationItemIntegerV2025R0.java @@ -0,0 +1,80 @@ +package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemintegerv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemv2025r0.EnterpriseConfigurationItemV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +/** An enterprise configuration item with a integer type value. */ +@JsonFilter("nullablePropertyFilter") +public class EnterpriseConfigurationItemIntegerV2025R0 extends EnterpriseConfigurationItemV2025R0 { + + /** The value of the enterprise configuration as an integer. */ + @Nullable protected Long value; + + public EnterpriseConfigurationItemIntegerV2025R0() { + super(); + } + + protected EnterpriseConfigurationItemIntegerV2025R0(Builder builder) { + super(builder); + this.value = builder.value; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getValue() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseConfigurationItemIntegerV2025R0 casted = + (EnterpriseConfigurationItemIntegerV2025R0) o; + return Objects.equals(isUsed, casted.isUsed) && Objects.equals(value, casted.value); + } + + @Override + public int hashCode() { + return Objects.hash(isUsed, value); + } + + @Override + public String toString() { + return "EnterpriseConfigurationItemIntegerV2025R0{" + + "isUsed='" + + isUsed + + '\'' + + ", " + + "value='" + + value + + '\'' + + "}"; + } + + public static class Builder extends EnterpriseConfigurationItemV2025R0.Builder { + + protected Long value; + + public Builder value(Long value) { + this.value = value; + this.markNullableFieldAsSet("value"); + return this; + } + + @Override + public Builder isUsed(Boolean isUsed) { + this.isUsed = isUsed; + return this; + } + + public EnterpriseConfigurationItemIntegerV2025R0 build() { + return new EnterpriseConfigurationItemIntegerV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationitemstringv2025r0/EnterpriseConfigurationItemStringV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationitemstringv2025r0/EnterpriseConfigurationItemStringV2025R0.java new file mode 100644 index 000000000..3251738af --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationitemstringv2025r0/EnterpriseConfigurationItemStringV2025R0.java @@ -0,0 +1,79 @@ +package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemstringv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemv2025r0.EnterpriseConfigurationItemV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +/** An enterprise configuration item with a string type value. */ +@JsonFilter("nullablePropertyFilter") +public class EnterpriseConfigurationItemStringV2025R0 extends EnterpriseConfigurationItemV2025R0 { + + /** The value of the enterprise configuration as a string. */ + @Nullable protected String value; + + public EnterpriseConfigurationItemStringV2025R0() { + super(); + } + + protected EnterpriseConfigurationItemStringV2025R0(Builder builder) { + super(builder); + this.value = builder.value; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getValue() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseConfigurationItemStringV2025R0 casted = (EnterpriseConfigurationItemStringV2025R0) o; + return Objects.equals(isUsed, casted.isUsed) && Objects.equals(value, casted.value); + } + + @Override + public int hashCode() { + return Objects.hash(isUsed, value); + } + + @Override + public String toString() { + return "EnterpriseConfigurationItemStringV2025R0{" + + "isUsed='" + + isUsed + + '\'' + + ", " + + "value='" + + value + + '\'' + + "}"; + } + + public static class Builder extends EnterpriseConfigurationItemV2025R0.Builder { + + protected String value; + + public Builder value(String value) { + this.value = value; + this.markNullableFieldAsSet("value"); + return this; + } + + @Override + public Builder isUsed(Boolean isUsed) { + this.isUsed = isUsed; + return this; + } + + public EnterpriseConfigurationItemStringV2025R0 build() { + return new EnterpriseConfigurationItemStringV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationitemv2025r0/EnterpriseConfigurationItemV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationitemv2025r0/EnterpriseConfigurationItemV2025R0.java new file mode 100644 index 000000000..37b55f08e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationitemv2025r0/EnterpriseConfigurationItemV2025R0.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** The basic data included in each enterprise configuration response object. */ +@JsonFilter("nullablePropertyFilter") +public class EnterpriseConfigurationItemV2025R0 extends SerializableObject { + + /** Indicates whether a configuration is used for a given enterprise. */ + @JsonProperty("is_used") + protected Boolean isUsed; + + public EnterpriseConfigurationItemV2025R0() { + super(); + } + + protected EnterpriseConfigurationItemV2025R0(Builder builder) { + super(); + this.isUsed = builder.isUsed; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getIsUsed() { + return isUsed; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseConfigurationItemV2025R0 casted = (EnterpriseConfigurationItemV2025R0) o; + return Objects.equals(isUsed, casted.isUsed); + } + + @Override + public int hashCode() { + return Objects.hash(isUsed); + } + + @Override + public String toString() { + return "EnterpriseConfigurationItemV2025R0{" + "isUsed='" + isUsed + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean isUsed; + + public Builder isUsed(Boolean isUsed) { + this.isUsed = isUsed; + return this; + } + + public EnterpriseConfigurationItemV2025R0 build() { + return new EnterpriseConfigurationItemV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0.java new file mode 100644 index 000000000..cd5d56bb1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0.java @@ -0,0 +1,729 @@ +package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationsecurityv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitembooleanv2025r0.EnterpriseConfigurationItemBooleanV2025R0; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemintegerv2025r0.EnterpriseConfigurationItemIntegerV2025R0; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemstringv2025r0.EnterpriseConfigurationItemStringV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** The enterprise configuration for the security category. */ +@JsonFilter("nullablePropertyFilter") +public class EnterpriseConfigurationSecurityV2025R0 extends SerializableObject { + + @JsonProperty("is_managed_user_signup_enabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isManagedUserSignupEnabled; + + @JsonProperty("is_managed_user_signup_notification_enabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isManagedUserSignupNotificationEnabled; + + @JsonProperty("is_managed_user_signup_corporate_email_enabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isManagedUserSignupCorporateEmailEnabled; + + @JsonProperty("is_new_user_notification_daily_digest_enabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isNewUserNotificationDailyDigestEnabled; + + @JsonProperty("is_managed_user_email_change_disabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isManagedUserEmailChangeDisabled; + + @JsonProperty("is_multi_factor_auth_required") + protected EnterpriseConfigurationItemBooleanV2025R0 isMultiFactorAuthRequired; + + @JsonProperty("is_weak_password_prevention_enabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isWeakPasswordPreventionEnabled; + + @JsonProperty("is_password_leak_detection_enabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isPasswordLeakDetectionEnabled; + + @JsonProperty("last_password_reset_at") + protected EnterpriseConfigurationSecurityV2025R0LastPasswordResetAtField lastPasswordResetAt; + + @JsonProperty("is_password_request_notification_enabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isPasswordRequestNotificationEnabled; + + @JsonProperty("is_password_change_notification_enabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isPasswordChangeNotificationEnabled; + + @JsonProperty("is_strong_password_for_ext_collab_enabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isStrongPasswordForExtCollabEnabled; + + @JsonProperty("is_managed_user_migration_disabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isManagedUserMigrationDisabled; + + @JsonProperty("join_link") + protected EnterpriseConfigurationItemStringV2025R0 joinLink; + + @JsonProperty("join_url") + protected EnterpriseConfigurationItemStringV2025R0 joinUrl; + + @JsonProperty("failed_login_attempts_to_trigger_admin_notification") + protected EnterpriseConfigurationItemIntegerV2025R0 failedLoginAttemptsToTriggerAdminNotification; + + @JsonProperty("password_min_length") + protected EnterpriseConfigurationItemIntegerV2025R0 passwordMinLength; + + @JsonProperty("password_min_uppercase_characters") + protected EnterpriseConfigurationItemIntegerV2025R0 passwordMinUppercaseCharacters; + + @JsonProperty("password_min_numeric_characters") + protected EnterpriseConfigurationItemIntegerV2025R0 passwordMinNumericCharacters; + + @JsonProperty("password_min_special_characters") + protected EnterpriseConfigurationItemIntegerV2025R0 passwordMinSpecialCharacters; + + @JsonProperty("password_reset_frequency") + protected EnterpriseConfigurationItemStringV2025R0 passwordResetFrequency; + + @JsonProperty("previous_password_reuse_limit") + protected EnterpriseConfigurationItemStringV2025R0 previousPasswordReuseLimit; + + @JsonProperty("session_duration") + protected EnterpriseConfigurationItemStringV2025R0 sessionDuration; + + @JsonProperty("external_collab_multi_factor_auth_settings") + protected EnterpriseConfigurationSecurityV2025R0ExternalCollabMultiFactorAuthSettingsField + externalCollabMultiFactorAuthSettings; + + protected EnterpriseConfigurationSecurityV2025R0KeysafeField keysafe; + + @JsonProperty("is_custom_session_duration_enabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isCustomSessionDurationEnabled; + + @JsonProperty("custom_session_duration_value") + protected EnterpriseConfigurationItemStringV2025R0 customSessionDurationValue; + + @JsonProperty("custom_session_duration_groups") + protected EnterpriseConfigurationSecurityV2025R0CustomSessionDurationGroupsField + customSessionDurationGroups; + + @JsonProperty("multi_factor_auth_type") + protected EnterpriseConfigurationItemStringV2025R0 multiFactorAuthType; + + @JsonProperty("enforced_mfa_frequency") + protected EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyField enforcedMfaFrequency; + + public EnterpriseConfigurationSecurityV2025R0() { + super(); + } + + protected EnterpriseConfigurationSecurityV2025R0(Builder builder) { + super(); + this.isManagedUserSignupEnabled = builder.isManagedUserSignupEnabled; + this.isManagedUserSignupNotificationEnabled = builder.isManagedUserSignupNotificationEnabled; + this.isManagedUserSignupCorporateEmailEnabled = + builder.isManagedUserSignupCorporateEmailEnabled; + this.isNewUserNotificationDailyDigestEnabled = builder.isNewUserNotificationDailyDigestEnabled; + this.isManagedUserEmailChangeDisabled = builder.isManagedUserEmailChangeDisabled; + this.isMultiFactorAuthRequired = builder.isMultiFactorAuthRequired; + this.isWeakPasswordPreventionEnabled = builder.isWeakPasswordPreventionEnabled; + this.isPasswordLeakDetectionEnabled = builder.isPasswordLeakDetectionEnabled; + this.lastPasswordResetAt = builder.lastPasswordResetAt; + this.isPasswordRequestNotificationEnabled = builder.isPasswordRequestNotificationEnabled; + this.isPasswordChangeNotificationEnabled = builder.isPasswordChangeNotificationEnabled; + this.isStrongPasswordForExtCollabEnabled = builder.isStrongPasswordForExtCollabEnabled; + this.isManagedUserMigrationDisabled = builder.isManagedUserMigrationDisabled; + this.joinLink = builder.joinLink; + this.joinUrl = builder.joinUrl; + this.failedLoginAttemptsToTriggerAdminNotification = + builder.failedLoginAttemptsToTriggerAdminNotification; + this.passwordMinLength = builder.passwordMinLength; + this.passwordMinUppercaseCharacters = builder.passwordMinUppercaseCharacters; + this.passwordMinNumericCharacters = builder.passwordMinNumericCharacters; + this.passwordMinSpecialCharacters = builder.passwordMinSpecialCharacters; + this.passwordResetFrequency = builder.passwordResetFrequency; + this.previousPasswordReuseLimit = builder.previousPasswordReuseLimit; + this.sessionDuration = builder.sessionDuration; + this.externalCollabMultiFactorAuthSettings = builder.externalCollabMultiFactorAuthSettings; + this.keysafe = builder.keysafe; + this.isCustomSessionDurationEnabled = builder.isCustomSessionDurationEnabled; + this.customSessionDurationValue = builder.customSessionDurationValue; + this.customSessionDurationGroups = builder.customSessionDurationGroups; + this.multiFactorAuthType = builder.multiFactorAuthType; + this.enforcedMfaFrequency = builder.enforcedMfaFrequency; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsManagedUserSignupEnabled() { + return isManagedUserSignupEnabled; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsManagedUserSignupNotificationEnabled() { + return isManagedUserSignupNotificationEnabled; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsManagedUserSignupCorporateEmailEnabled() { + return isManagedUserSignupCorporateEmailEnabled; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsNewUserNotificationDailyDigestEnabled() { + return isNewUserNotificationDailyDigestEnabled; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsManagedUserEmailChangeDisabled() { + return isManagedUserEmailChangeDisabled; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsMultiFactorAuthRequired() { + return isMultiFactorAuthRequired; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsWeakPasswordPreventionEnabled() { + return isWeakPasswordPreventionEnabled; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsPasswordLeakDetectionEnabled() { + return isPasswordLeakDetectionEnabled; + } + + public EnterpriseConfigurationSecurityV2025R0LastPasswordResetAtField getLastPasswordResetAt() { + return lastPasswordResetAt; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsPasswordRequestNotificationEnabled() { + return isPasswordRequestNotificationEnabled; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsPasswordChangeNotificationEnabled() { + return isPasswordChangeNotificationEnabled; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsStrongPasswordForExtCollabEnabled() { + return isStrongPasswordForExtCollabEnabled; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsManagedUserMigrationDisabled() { + return isManagedUserMigrationDisabled; + } + + public EnterpriseConfigurationItemStringV2025R0 getJoinLink() { + return joinLink; + } + + public EnterpriseConfigurationItemStringV2025R0 getJoinUrl() { + return joinUrl; + } + + public EnterpriseConfigurationItemIntegerV2025R0 + getFailedLoginAttemptsToTriggerAdminNotification() { + return failedLoginAttemptsToTriggerAdminNotification; + } + + public EnterpriseConfigurationItemIntegerV2025R0 getPasswordMinLength() { + return passwordMinLength; + } + + public EnterpriseConfigurationItemIntegerV2025R0 getPasswordMinUppercaseCharacters() { + return passwordMinUppercaseCharacters; + } + + public EnterpriseConfigurationItemIntegerV2025R0 getPasswordMinNumericCharacters() { + return passwordMinNumericCharacters; + } + + public EnterpriseConfigurationItemIntegerV2025R0 getPasswordMinSpecialCharacters() { + return passwordMinSpecialCharacters; + } + + public EnterpriseConfigurationItemStringV2025R0 getPasswordResetFrequency() { + return passwordResetFrequency; + } + + public EnterpriseConfigurationItemStringV2025R0 getPreviousPasswordReuseLimit() { + return previousPasswordReuseLimit; + } + + public EnterpriseConfigurationItemStringV2025R0 getSessionDuration() { + return sessionDuration; + } + + public EnterpriseConfigurationSecurityV2025R0ExternalCollabMultiFactorAuthSettingsField + getExternalCollabMultiFactorAuthSettings() { + return externalCollabMultiFactorAuthSettings; + } + + public EnterpriseConfigurationSecurityV2025R0KeysafeField getKeysafe() { + return keysafe; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsCustomSessionDurationEnabled() { + return isCustomSessionDurationEnabled; + } + + public EnterpriseConfigurationItemStringV2025R0 getCustomSessionDurationValue() { + return customSessionDurationValue; + } + + public EnterpriseConfigurationSecurityV2025R0CustomSessionDurationGroupsField + getCustomSessionDurationGroups() { + return customSessionDurationGroups; + } + + public EnterpriseConfigurationItemStringV2025R0 getMultiFactorAuthType() { + return multiFactorAuthType; + } + + public EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyField getEnforcedMfaFrequency() { + return enforcedMfaFrequency; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseConfigurationSecurityV2025R0 casted = (EnterpriseConfigurationSecurityV2025R0) o; + return Objects.equals(isManagedUserSignupEnabled, casted.isManagedUserSignupEnabled) + && Objects.equals( + isManagedUserSignupNotificationEnabled, casted.isManagedUserSignupNotificationEnabled) + && Objects.equals( + isManagedUserSignupCorporateEmailEnabled, + casted.isManagedUserSignupCorporateEmailEnabled) + && Objects.equals( + isNewUserNotificationDailyDigestEnabled, casted.isNewUserNotificationDailyDigestEnabled) + && Objects.equals(isManagedUserEmailChangeDisabled, casted.isManagedUserEmailChangeDisabled) + && Objects.equals(isMultiFactorAuthRequired, casted.isMultiFactorAuthRequired) + && Objects.equals(isWeakPasswordPreventionEnabled, casted.isWeakPasswordPreventionEnabled) + && Objects.equals(isPasswordLeakDetectionEnabled, casted.isPasswordLeakDetectionEnabled) + && Objects.equals(lastPasswordResetAt, casted.lastPasswordResetAt) + && Objects.equals( + isPasswordRequestNotificationEnabled, casted.isPasswordRequestNotificationEnabled) + && Objects.equals( + isPasswordChangeNotificationEnabled, casted.isPasswordChangeNotificationEnabled) + && Objects.equals( + isStrongPasswordForExtCollabEnabled, casted.isStrongPasswordForExtCollabEnabled) + && Objects.equals(isManagedUserMigrationDisabled, casted.isManagedUserMigrationDisabled) + && Objects.equals(joinLink, casted.joinLink) + && Objects.equals(joinUrl, casted.joinUrl) + && Objects.equals( + failedLoginAttemptsToTriggerAdminNotification, + casted.failedLoginAttemptsToTriggerAdminNotification) + && Objects.equals(passwordMinLength, casted.passwordMinLength) + && Objects.equals(passwordMinUppercaseCharacters, casted.passwordMinUppercaseCharacters) + && Objects.equals(passwordMinNumericCharacters, casted.passwordMinNumericCharacters) + && Objects.equals(passwordMinSpecialCharacters, casted.passwordMinSpecialCharacters) + && Objects.equals(passwordResetFrequency, casted.passwordResetFrequency) + && Objects.equals(previousPasswordReuseLimit, casted.previousPasswordReuseLimit) + && Objects.equals(sessionDuration, casted.sessionDuration) + && Objects.equals( + externalCollabMultiFactorAuthSettings, casted.externalCollabMultiFactorAuthSettings) + && Objects.equals(keysafe, casted.keysafe) + && Objects.equals(isCustomSessionDurationEnabled, casted.isCustomSessionDurationEnabled) + && Objects.equals(customSessionDurationValue, casted.customSessionDurationValue) + && Objects.equals(customSessionDurationGroups, casted.customSessionDurationGroups) + && Objects.equals(multiFactorAuthType, casted.multiFactorAuthType) + && Objects.equals(enforcedMfaFrequency, casted.enforcedMfaFrequency); + } + + @Override + public int hashCode() { + return Objects.hash( + isManagedUserSignupEnabled, + isManagedUserSignupNotificationEnabled, + isManagedUserSignupCorporateEmailEnabled, + isNewUserNotificationDailyDigestEnabled, + isManagedUserEmailChangeDisabled, + isMultiFactorAuthRequired, + isWeakPasswordPreventionEnabled, + isPasswordLeakDetectionEnabled, + lastPasswordResetAt, + isPasswordRequestNotificationEnabled, + isPasswordChangeNotificationEnabled, + isStrongPasswordForExtCollabEnabled, + isManagedUserMigrationDisabled, + joinLink, + joinUrl, + failedLoginAttemptsToTriggerAdminNotification, + passwordMinLength, + passwordMinUppercaseCharacters, + passwordMinNumericCharacters, + passwordMinSpecialCharacters, + passwordResetFrequency, + previousPasswordReuseLimit, + sessionDuration, + externalCollabMultiFactorAuthSettings, + keysafe, + isCustomSessionDurationEnabled, + customSessionDurationValue, + customSessionDurationGroups, + multiFactorAuthType, + enforcedMfaFrequency); + } + + @Override + public String toString() { + return "EnterpriseConfigurationSecurityV2025R0{" + + "isManagedUserSignupEnabled='" + + isManagedUserSignupEnabled + + '\'' + + ", " + + "isManagedUserSignupNotificationEnabled='" + + isManagedUserSignupNotificationEnabled + + '\'' + + ", " + + "isManagedUserSignupCorporateEmailEnabled='" + + isManagedUserSignupCorporateEmailEnabled + + '\'' + + ", " + + "isNewUserNotificationDailyDigestEnabled='" + + isNewUserNotificationDailyDigestEnabled + + '\'' + + ", " + + "isManagedUserEmailChangeDisabled='" + + isManagedUserEmailChangeDisabled + + '\'' + + ", " + + "isMultiFactorAuthRequired='" + + isMultiFactorAuthRequired + + '\'' + + ", " + + "isWeakPasswordPreventionEnabled='" + + isWeakPasswordPreventionEnabled + + '\'' + + ", " + + "isPasswordLeakDetectionEnabled='" + + isPasswordLeakDetectionEnabled + + '\'' + + ", " + + "lastPasswordResetAt='" + + lastPasswordResetAt + + '\'' + + ", " + + "isPasswordRequestNotificationEnabled='" + + isPasswordRequestNotificationEnabled + + '\'' + + ", " + + "isPasswordChangeNotificationEnabled='" + + isPasswordChangeNotificationEnabled + + '\'' + + ", " + + "isStrongPasswordForExtCollabEnabled='" + + isStrongPasswordForExtCollabEnabled + + '\'' + + ", " + + "isManagedUserMigrationDisabled='" + + isManagedUserMigrationDisabled + + '\'' + + ", " + + "joinLink='" + + joinLink + + '\'' + + ", " + + "joinUrl='" + + joinUrl + + '\'' + + ", " + + "failedLoginAttemptsToTriggerAdminNotification='" + + failedLoginAttemptsToTriggerAdminNotification + + '\'' + + ", " + + "passwordMinLength='" + + passwordMinLength + + '\'' + + ", " + + "passwordMinUppercaseCharacters='" + + passwordMinUppercaseCharacters + + '\'' + + ", " + + "passwordMinNumericCharacters='" + + passwordMinNumericCharacters + + '\'' + + ", " + + "passwordMinSpecialCharacters='" + + passwordMinSpecialCharacters + + '\'' + + ", " + + "passwordResetFrequency='" + + passwordResetFrequency + + '\'' + + ", " + + "previousPasswordReuseLimit='" + + previousPasswordReuseLimit + + '\'' + + ", " + + "sessionDuration='" + + sessionDuration + + '\'' + + ", " + + "externalCollabMultiFactorAuthSettings='" + + externalCollabMultiFactorAuthSettings + + '\'' + + ", " + + "keysafe='" + + keysafe + + '\'' + + ", " + + "isCustomSessionDurationEnabled='" + + isCustomSessionDurationEnabled + + '\'' + + ", " + + "customSessionDurationValue='" + + customSessionDurationValue + + '\'' + + ", " + + "customSessionDurationGroups='" + + customSessionDurationGroups + + '\'' + + ", " + + "multiFactorAuthType='" + + multiFactorAuthType + + '\'' + + ", " + + "enforcedMfaFrequency='" + + enforcedMfaFrequency + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnterpriseConfigurationItemBooleanV2025R0 isManagedUserSignupEnabled; + + protected EnterpriseConfigurationItemBooleanV2025R0 isManagedUserSignupNotificationEnabled; + + protected EnterpriseConfigurationItemBooleanV2025R0 isManagedUserSignupCorporateEmailEnabled; + + protected EnterpriseConfigurationItemBooleanV2025R0 isNewUserNotificationDailyDigestEnabled; + + protected EnterpriseConfigurationItemBooleanV2025R0 isManagedUserEmailChangeDisabled; + + protected EnterpriseConfigurationItemBooleanV2025R0 isMultiFactorAuthRequired; + + protected EnterpriseConfigurationItemBooleanV2025R0 isWeakPasswordPreventionEnabled; + + protected EnterpriseConfigurationItemBooleanV2025R0 isPasswordLeakDetectionEnabled; + + protected EnterpriseConfigurationSecurityV2025R0LastPasswordResetAtField lastPasswordResetAt; + + protected EnterpriseConfigurationItemBooleanV2025R0 isPasswordRequestNotificationEnabled; + + protected EnterpriseConfigurationItemBooleanV2025R0 isPasswordChangeNotificationEnabled; + + protected EnterpriseConfigurationItemBooleanV2025R0 isStrongPasswordForExtCollabEnabled; + + protected EnterpriseConfigurationItemBooleanV2025R0 isManagedUserMigrationDisabled; + + protected EnterpriseConfigurationItemStringV2025R0 joinLink; + + protected EnterpriseConfigurationItemStringV2025R0 joinUrl; + + protected EnterpriseConfigurationItemIntegerV2025R0 + failedLoginAttemptsToTriggerAdminNotification; + + protected EnterpriseConfigurationItemIntegerV2025R0 passwordMinLength; + + protected EnterpriseConfigurationItemIntegerV2025R0 passwordMinUppercaseCharacters; + + protected EnterpriseConfigurationItemIntegerV2025R0 passwordMinNumericCharacters; + + protected EnterpriseConfigurationItemIntegerV2025R0 passwordMinSpecialCharacters; + + protected EnterpriseConfigurationItemStringV2025R0 passwordResetFrequency; + + protected EnterpriseConfigurationItemStringV2025R0 previousPasswordReuseLimit; + + protected EnterpriseConfigurationItemStringV2025R0 sessionDuration; + + protected EnterpriseConfigurationSecurityV2025R0ExternalCollabMultiFactorAuthSettingsField + externalCollabMultiFactorAuthSettings; + + protected EnterpriseConfigurationSecurityV2025R0KeysafeField keysafe; + + protected EnterpriseConfigurationItemBooleanV2025R0 isCustomSessionDurationEnabled; + + protected EnterpriseConfigurationItemStringV2025R0 customSessionDurationValue; + + protected EnterpriseConfigurationSecurityV2025R0CustomSessionDurationGroupsField + customSessionDurationGroups; + + protected EnterpriseConfigurationItemStringV2025R0 multiFactorAuthType; + + protected EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyField enforcedMfaFrequency; + + public Builder isManagedUserSignupEnabled( + EnterpriseConfigurationItemBooleanV2025R0 isManagedUserSignupEnabled) { + this.isManagedUserSignupEnabled = isManagedUserSignupEnabled; + return this; + } + + public Builder isManagedUserSignupNotificationEnabled( + EnterpriseConfigurationItemBooleanV2025R0 isManagedUserSignupNotificationEnabled) { + this.isManagedUserSignupNotificationEnabled = isManagedUserSignupNotificationEnabled; + return this; + } + + public Builder isManagedUserSignupCorporateEmailEnabled( + EnterpriseConfigurationItemBooleanV2025R0 isManagedUserSignupCorporateEmailEnabled) { + this.isManagedUserSignupCorporateEmailEnabled = isManagedUserSignupCorporateEmailEnabled; + return this; + } + + public Builder isNewUserNotificationDailyDigestEnabled( + EnterpriseConfigurationItemBooleanV2025R0 isNewUserNotificationDailyDigestEnabled) { + this.isNewUserNotificationDailyDigestEnabled = isNewUserNotificationDailyDigestEnabled; + return this; + } + + public Builder isManagedUserEmailChangeDisabled( + EnterpriseConfigurationItemBooleanV2025R0 isManagedUserEmailChangeDisabled) { + this.isManagedUserEmailChangeDisabled = isManagedUserEmailChangeDisabled; + return this; + } + + public Builder isMultiFactorAuthRequired( + EnterpriseConfigurationItemBooleanV2025R0 isMultiFactorAuthRequired) { + this.isMultiFactorAuthRequired = isMultiFactorAuthRequired; + return this; + } + + public Builder isWeakPasswordPreventionEnabled( + EnterpriseConfigurationItemBooleanV2025R0 isWeakPasswordPreventionEnabled) { + this.isWeakPasswordPreventionEnabled = isWeakPasswordPreventionEnabled; + return this; + } + + public Builder isPasswordLeakDetectionEnabled( + EnterpriseConfigurationItemBooleanV2025R0 isPasswordLeakDetectionEnabled) { + this.isPasswordLeakDetectionEnabled = isPasswordLeakDetectionEnabled; + return this; + } + + public Builder lastPasswordResetAt( + EnterpriseConfigurationSecurityV2025R0LastPasswordResetAtField lastPasswordResetAt) { + this.lastPasswordResetAt = lastPasswordResetAt; + return this; + } + + public Builder isPasswordRequestNotificationEnabled( + EnterpriseConfigurationItemBooleanV2025R0 isPasswordRequestNotificationEnabled) { + this.isPasswordRequestNotificationEnabled = isPasswordRequestNotificationEnabled; + return this; + } + + public Builder isPasswordChangeNotificationEnabled( + EnterpriseConfigurationItemBooleanV2025R0 isPasswordChangeNotificationEnabled) { + this.isPasswordChangeNotificationEnabled = isPasswordChangeNotificationEnabled; + return this; + } + + public Builder isStrongPasswordForExtCollabEnabled( + EnterpriseConfigurationItemBooleanV2025R0 isStrongPasswordForExtCollabEnabled) { + this.isStrongPasswordForExtCollabEnabled = isStrongPasswordForExtCollabEnabled; + return this; + } + + public Builder isManagedUserMigrationDisabled( + EnterpriseConfigurationItemBooleanV2025R0 isManagedUserMigrationDisabled) { + this.isManagedUserMigrationDisabled = isManagedUserMigrationDisabled; + return this; + } + + public Builder joinLink(EnterpriseConfigurationItemStringV2025R0 joinLink) { + this.joinLink = joinLink; + return this; + } + + public Builder joinUrl(EnterpriseConfigurationItemStringV2025R0 joinUrl) { + this.joinUrl = joinUrl; + return this; + } + + public Builder failedLoginAttemptsToTriggerAdminNotification( + EnterpriseConfigurationItemIntegerV2025R0 failedLoginAttemptsToTriggerAdminNotification) { + this.failedLoginAttemptsToTriggerAdminNotification = + failedLoginAttemptsToTriggerAdminNotification; + return this; + } + + public Builder passwordMinLength(EnterpriseConfigurationItemIntegerV2025R0 passwordMinLength) { + this.passwordMinLength = passwordMinLength; + return this; + } + + public Builder passwordMinUppercaseCharacters( + EnterpriseConfigurationItemIntegerV2025R0 passwordMinUppercaseCharacters) { + this.passwordMinUppercaseCharacters = passwordMinUppercaseCharacters; + return this; + } + + public Builder passwordMinNumericCharacters( + EnterpriseConfigurationItemIntegerV2025R0 passwordMinNumericCharacters) { + this.passwordMinNumericCharacters = passwordMinNumericCharacters; + return this; + } + + public Builder passwordMinSpecialCharacters( + EnterpriseConfigurationItemIntegerV2025R0 passwordMinSpecialCharacters) { + this.passwordMinSpecialCharacters = passwordMinSpecialCharacters; + return this; + } + + public Builder passwordResetFrequency( + EnterpriseConfigurationItemStringV2025R0 passwordResetFrequency) { + this.passwordResetFrequency = passwordResetFrequency; + return this; + } + + public Builder previousPasswordReuseLimit( + EnterpriseConfigurationItemStringV2025R0 previousPasswordReuseLimit) { + this.previousPasswordReuseLimit = previousPasswordReuseLimit; + return this; + } + + public Builder sessionDuration(EnterpriseConfigurationItemStringV2025R0 sessionDuration) { + this.sessionDuration = sessionDuration; + return this; + } + + public Builder externalCollabMultiFactorAuthSettings( + EnterpriseConfigurationSecurityV2025R0ExternalCollabMultiFactorAuthSettingsField + externalCollabMultiFactorAuthSettings) { + this.externalCollabMultiFactorAuthSettings = externalCollabMultiFactorAuthSettings; + return this; + } + + public Builder keysafe(EnterpriseConfigurationSecurityV2025R0KeysafeField keysafe) { + this.keysafe = keysafe; + return this; + } + + public Builder isCustomSessionDurationEnabled( + EnterpriseConfigurationItemBooleanV2025R0 isCustomSessionDurationEnabled) { + this.isCustomSessionDurationEnabled = isCustomSessionDurationEnabled; + return this; + } + + public Builder customSessionDurationValue( + EnterpriseConfigurationItemStringV2025R0 customSessionDurationValue) { + this.customSessionDurationValue = customSessionDurationValue; + return this; + } + + public Builder customSessionDurationGroups( + EnterpriseConfigurationSecurityV2025R0CustomSessionDurationGroupsField + customSessionDurationGroups) { + this.customSessionDurationGroups = customSessionDurationGroups; + return this; + } + + public Builder multiFactorAuthType( + EnterpriseConfigurationItemStringV2025R0 multiFactorAuthType) { + this.multiFactorAuthType = multiFactorAuthType; + return this; + } + + public Builder enforcedMfaFrequency( + EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyField enforcedMfaFrequency) { + this.enforcedMfaFrequency = enforcedMfaFrequency; + return this; + } + + public EnterpriseConfigurationSecurityV2025R0 build() { + return new EnterpriseConfigurationSecurityV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0CustomSessionDurationGroupsField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0CustomSessionDurationGroupsField.java new file mode 100644 index 000000000..6178a61a1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0CustomSessionDurationGroupsField.java @@ -0,0 +1,80 @@ +package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationsecurityv2025r0; + +import com.box.sdkgen.schemas.v2025r0.customsessiondurationgroupitemv2025r0.CustomSessionDurationGroupItemV2025R0; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemv2025r0.EnterpriseConfigurationItemV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class EnterpriseConfigurationSecurityV2025R0CustomSessionDurationGroupsField + extends EnterpriseConfigurationItemV2025R0 { + + protected List value; + + public EnterpriseConfigurationSecurityV2025R0CustomSessionDurationGroupsField() { + super(); + } + + protected EnterpriseConfigurationSecurityV2025R0CustomSessionDurationGroupsField( + Builder builder) { + super(builder); + this.value = builder.value; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getValue() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseConfigurationSecurityV2025R0CustomSessionDurationGroupsField casted = + (EnterpriseConfigurationSecurityV2025R0CustomSessionDurationGroupsField) o; + return Objects.equals(isUsed, casted.isUsed) && Objects.equals(value, casted.value); + } + + @Override + public int hashCode() { + return Objects.hash(isUsed, value); + } + + @Override + public String toString() { + return "EnterpriseConfigurationSecurityV2025R0CustomSessionDurationGroupsField{" + + "isUsed='" + + isUsed + + '\'' + + ", " + + "value='" + + value + + '\'' + + "}"; + } + + public static class Builder extends EnterpriseConfigurationItemV2025R0.Builder { + + protected List value; + + public Builder value(List value) { + this.value = value; + return this; + } + + @Override + public Builder isUsed(Boolean isUsed) { + this.isUsed = isUsed; + return this; + } + + public EnterpriseConfigurationSecurityV2025R0CustomSessionDurationGroupsField build() { + return new EnterpriseConfigurationSecurityV2025R0CustomSessionDurationGroupsField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyField.java new file mode 100644 index 000000000..3ac8567c5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyField.java @@ -0,0 +1,78 @@ +package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationsecurityv2025r0; + +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemv2025r0.EnterpriseConfigurationItemV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyField + extends EnterpriseConfigurationItemV2025R0 { + + protected EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyFieldValueField value; + + public EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyField() { + super(); + } + + protected EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyField(Builder builder) { + super(builder); + this.value = builder.value; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyFieldValueField getValue() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyField casted = + (EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyField) o; + return Objects.equals(isUsed, casted.isUsed) && Objects.equals(value, casted.value); + } + + @Override + public int hashCode() { + return Objects.hash(isUsed, value); + } + + @Override + public String toString() { + return "EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyField{" + + "isUsed='" + + isUsed + + '\'' + + ", " + + "value='" + + value + + '\'' + + "}"; + } + + public static class Builder extends EnterpriseConfigurationItemV2025R0.Builder { + + protected EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyFieldValueField value; + + public Builder value( + EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyFieldValueField value) { + this.value = value; + return this; + } + + @Override + public Builder isUsed(Boolean isUsed) { + this.isUsed = isUsed; + return this; + } + + public EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyField build() { + return new EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyFieldValueField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyFieldValueField.java new file mode 100644 index 000000000..6b85b0bd4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyFieldValueField.java @@ -0,0 +1,92 @@ +package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationsecurityv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyFieldValueField + extends SerializableObject { + + /** Number of days before the user is required to authenticate again. */ + @Nullable protected Long days; + + /** Number of hours before the user is required to authenticate again. */ + @Nullable protected Long hours; + + public EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyFieldValueField() { + super(); + } + + protected EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyFieldValueField( + Builder builder) { + super(); + this.days = builder.days; + this.hours = builder.hours; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getDays() { + return days; + } + + public Long getHours() { + return hours; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyFieldValueField casted = + (EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyFieldValueField) o; + return Objects.equals(days, casted.days) && Objects.equals(hours, casted.hours); + } + + @Override + public int hashCode() { + return Objects.hash(days, hours); + } + + @Override + public String toString() { + return "EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyFieldValueField{" + + "days='" + + days + + '\'' + + ", " + + "hours='" + + hours + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long days; + + protected Long hours; + + public Builder days(Long days) { + this.days = days; + this.markNullableFieldAsSet("days"); + return this; + } + + public Builder hours(Long hours) { + this.hours = hours; + this.markNullableFieldAsSet("hours"); + return this; + } + + public EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyFieldValueField build() { + return new EnterpriseConfigurationSecurityV2025R0EnforcedMfaFrequencyFieldValueField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0ExternalCollabMultiFactorAuthSettingsField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0ExternalCollabMultiFactorAuthSettingsField.java new file mode 100644 index 000000000..b42cacd50 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0ExternalCollabMultiFactorAuthSettingsField.java @@ -0,0 +1,81 @@ +package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationsecurityv2025r0; + +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemv2025r0.EnterpriseConfigurationItemV2025R0; +import com.box.sdkgen.schemas.v2025r0.externalcollabsecuritysettingsv2025r0.ExternalCollabSecuritySettingsV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class EnterpriseConfigurationSecurityV2025R0ExternalCollabMultiFactorAuthSettingsField + extends EnterpriseConfigurationItemV2025R0 { + + protected ExternalCollabSecuritySettingsV2025R0 value; + + public EnterpriseConfigurationSecurityV2025R0ExternalCollabMultiFactorAuthSettingsField() { + super(); + } + + protected EnterpriseConfigurationSecurityV2025R0ExternalCollabMultiFactorAuthSettingsField( + Builder builder) { + super(builder); + this.value = builder.value; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public ExternalCollabSecuritySettingsV2025R0 getValue() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseConfigurationSecurityV2025R0ExternalCollabMultiFactorAuthSettingsField casted = + (EnterpriseConfigurationSecurityV2025R0ExternalCollabMultiFactorAuthSettingsField) o; + return Objects.equals(isUsed, casted.isUsed) && Objects.equals(value, casted.value); + } + + @Override + public int hashCode() { + return Objects.hash(isUsed, value); + } + + @Override + public String toString() { + return "EnterpriseConfigurationSecurityV2025R0ExternalCollabMultiFactorAuthSettingsField{" + + "isUsed='" + + isUsed + + '\'' + + ", " + + "value='" + + value + + '\'' + + "}"; + } + + public static class Builder extends EnterpriseConfigurationItemV2025R0.Builder { + + protected ExternalCollabSecuritySettingsV2025R0 value; + + public Builder value(ExternalCollabSecuritySettingsV2025R0 value) { + this.value = value; + return this; + } + + @Override + public Builder isUsed(Boolean isUsed) { + this.isUsed = isUsed; + return this; + } + + public EnterpriseConfigurationSecurityV2025R0ExternalCollabMultiFactorAuthSettingsField + build() { + return new EnterpriseConfigurationSecurityV2025R0ExternalCollabMultiFactorAuthSettingsField( + this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0KeysafeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0KeysafeField.java new file mode 100644 index 000000000..836b29bc9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0KeysafeField.java @@ -0,0 +1,78 @@ +package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationsecurityv2025r0; + +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemv2025r0.EnterpriseConfigurationItemV2025R0; +import com.box.sdkgen.schemas.v2025r0.keysafesettingsv2025r0.KeysafeSettingsV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class EnterpriseConfigurationSecurityV2025R0KeysafeField + extends EnterpriseConfigurationItemV2025R0 { + + protected KeysafeSettingsV2025R0 value; + + public EnterpriseConfigurationSecurityV2025R0KeysafeField() { + super(); + } + + protected EnterpriseConfigurationSecurityV2025R0KeysafeField(Builder builder) { + super(builder); + this.value = builder.value; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public KeysafeSettingsV2025R0 getValue() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseConfigurationSecurityV2025R0KeysafeField casted = + (EnterpriseConfigurationSecurityV2025R0KeysafeField) o; + return Objects.equals(isUsed, casted.isUsed) && Objects.equals(value, casted.value); + } + + @Override + public int hashCode() { + return Objects.hash(isUsed, value); + } + + @Override + public String toString() { + return "EnterpriseConfigurationSecurityV2025R0KeysafeField{" + + "isUsed='" + + isUsed + + '\'' + + ", " + + "value='" + + value + + '\'' + + "}"; + } + + public static class Builder extends EnterpriseConfigurationItemV2025R0.Builder { + + protected KeysafeSettingsV2025R0 value; + + public Builder value(KeysafeSettingsV2025R0 value) { + this.value = value; + return this; + } + + @Override + public Builder isUsed(Boolean isUsed) { + this.isUsed = isUsed; + return this; + } + + public EnterpriseConfigurationSecurityV2025R0KeysafeField build() { + return new EnterpriseConfigurationSecurityV2025R0KeysafeField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0LastPasswordResetAtField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0LastPasswordResetAtField.java new file mode 100644 index 000000000..7978ef87a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationsecurityv2025r0/EnterpriseConfigurationSecurityV2025R0LastPasswordResetAtField.java @@ -0,0 +1,87 @@ +package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationsecurityv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemv2025r0.EnterpriseConfigurationItemV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.time.OffsetDateTime; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class EnterpriseConfigurationSecurityV2025R0LastPasswordResetAtField + extends EnterpriseConfigurationItemV2025R0 { + + /** When an enterprise password reset was last applied. */ + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected OffsetDateTime value; + + public EnterpriseConfigurationSecurityV2025R0LastPasswordResetAtField() { + super(); + } + + protected EnterpriseConfigurationSecurityV2025R0LastPasswordResetAtField(Builder builder) { + super(builder); + this.value = builder.value; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public OffsetDateTime getValue() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseConfigurationSecurityV2025R0LastPasswordResetAtField casted = + (EnterpriseConfigurationSecurityV2025R0LastPasswordResetAtField) o; + return Objects.equals(isUsed, casted.isUsed) && Objects.equals(value, casted.value); + } + + @Override + public int hashCode() { + return Objects.hash(isUsed, value); + } + + @Override + public String toString() { + return "EnterpriseConfigurationSecurityV2025R0LastPasswordResetAtField{" + + "isUsed='" + + isUsed + + '\'' + + ", " + + "value='" + + value + + '\'' + + "}"; + } + + public static class Builder extends EnterpriseConfigurationItemV2025R0.Builder { + + protected OffsetDateTime value; + + public Builder value(OffsetDateTime value) { + this.value = value; + this.markNullableFieldAsSet("value"); + return this; + } + + @Override + public Builder isUsed(Boolean isUsed) { + this.isUsed = isUsed; + return this; + } + + public EnterpriseConfigurationSecurityV2025R0LastPasswordResetAtField build() { + return new EnterpriseConfigurationSecurityV2025R0LastPasswordResetAtField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationshieldv2025r0/EnterpriseConfigurationShieldV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationshieldv2025r0/EnterpriseConfigurationShieldV2025R0.java new file mode 100644 index 000000000..39f918ebf --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationshieldv2025r0/EnterpriseConfigurationShieldV2025R0.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationshieldv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.shieldruleitemv2025r0.ShieldRuleItemV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +/** The enterprise configuration for the shield category. */ +@JsonFilter("nullablePropertyFilter") +public class EnterpriseConfigurationShieldV2025R0 extends SerializableObject { + + /** The shield rules configuration for the enterprise. */ + @JsonProperty("shield_rules") + protected List shieldRules; + + public EnterpriseConfigurationShieldV2025R0() { + super(); + } + + protected EnterpriseConfigurationShieldV2025R0(Builder builder) { + super(); + this.shieldRules = builder.shieldRules; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getShieldRules() { + return shieldRules; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseConfigurationShieldV2025R0 casted = (EnterpriseConfigurationShieldV2025R0) o; + return Objects.equals(shieldRules, casted.shieldRules); + } + + @Override + public int hashCode() { + return Objects.hash(shieldRules); + } + + @Override + public String toString() { + return "EnterpriseConfigurationShieldV2025R0{" + "shieldRules='" + shieldRules + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List shieldRules; + + public Builder shieldRules(List shieldRules) { + this.shieldRules = shieldRules; + return this; + } + + public EnterpriseConfigurationShieldV2025R0 build() { + return new EnterpriseConfigurationShieldV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationusersettingsv2025r0/EnterpriseConfigurationUserSettingsV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationusersettingsv2025r0/EnterpriseConfigurationUserSettingsV2025R0.java new file mode 100644 index 000000000..1a5f1e568 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationusersettingsv2025r0/EnterpriseConfigurationUserSettingsV2025R0.java @@ -0,0 +1,485 @@ +package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationusersettingsv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitembooleanv2025r0.EnterpriseConfigurationItemBooleanV2025R0; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemintegerv2025r0.EnterpriseConfigurationItemIntegerV2025R0; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemstringv2025r0.EnterpriseConfigurationItemStringV2025R0; +import com.box.sdkgen.schemas.v2025r0.enterprisefeaturesettingsitemv2025r0.EnterpriseFeatureSettingsItemV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +/** The enterprise configuration for the user settings category. */ +@JsonFilter("nullablePropertyFilter") +public class EnterpriseConfigurationUserSettingsV2025R0 extends SerializableObject { + + @JsonProperty("enterprise_feature_settings") + protected List enterpriseFeatureSettings; + + @JsonProperty("user_invites_expiration_time_frame") + protected EnterpriseConfigurationItemStringV2025R0 userInvitesExpirationTimeFrame; + + @JsonProperty("is_username_change_restricted") + protected EnterpriseConfigurationItemBooleanV2025R0 isUsernameChangeRestricted; + + @JsonProperty("is_box_sync_restricted_for_new_users") + protected EnterpriseConfigurationItemBooleanV2025R0 isBoxSyncRestrictedForNewUsers; + + @JsonProperty("is_view_all_users_enabled_for_new_users") + protected EnterpriseConfigurationItemBooleanV2025R0 isViewAllUsersEnabledForNewUsers; + + @JsonProperty("is_device_limit_exemption_enabled_for_new_users") + protected EnterpriseConfigurationItemBooleanV2025R0 isDeviceLimitExemptionEnabledForNewUsers; + + @JsonProperty("is_external_collaboration_restricted_for_new_users") + protected EnterpriseConfigurationItemBooleanV2025R0 isExternalCollaborationRestrictedForNewUsers; + + @JsonProperty("is_unlimited_storage_enabled_for_new_users") + protected EnterpriseConfigurationItemBooleanV2025R0 isUnlimitedStorageEnabledForNewUsers; + + @JsonProperty("new_user_default_storage_limit") + protected EnterpriseConfigurationItemIntegerV2025R0 newUserDefaultStorageLimit; + + @JsonProperty("new_user_default_timezone") + protected EnterpriseConfigurationItemStringV2025R0 newUserDefaultTimezone; + + @JsonProperty("new_user_default_language") + protected EnterpriseConfigurationItemStringV2025R0 newUserDefaultLanguage; + + @JsonProperty("is_enterprise_sso_required") + protected EnterpriseConfigurationItemBooleanV2025R0 isEnterpriseSsoRequired; + + @JsonProperty("is_enterprise_sso_in_testing") + protected EnterpriseConfigurationItemBooleanV2025R0 isEnterpriseSsoInTesting; + + @JsonProperty("is_sso_auto_add_groups_enabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isSsoAutoAddGroupsEnabled; + + @JsonProperty("is_sso_auto_add_user_to_groups_enabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isSsoAutoAddUserToGroupsEnabled; + + @JsonProperty("is_sso_auto_remove_user_from_groups_enabled") + protected EnterpriseConfigurationItemBooleanV2025R0 isSsoAutoRemoveUserFromGroupsEnabled; + + @JsonProperty("user_tracking_codes") + protected EnterpriseConfigurationUserSettingsV2025R0UserTrackingCodesField userTrackingCodes; + + @JsonProperty("number_of_user_tracking_codes_remaining") + protected EnterpriseConfigurationItemIntegerV2025R0 numberOfUserTrackingCodesRemaining; + + @JsonProperty("is_instant_login_restricted") + protected EnterpriseConfigurationItemBooleanV2025R0 isInstantLoginRestricted; + + public EnterpriseConfigurationUserSettingsV2025R0() { + super(); + } + + protected EnterpriseConfigurationUserSettingsV2025R0(Builder builder) { + super(); + this.enterpriseFeatureSettings = builder.enterpriseFeatureSettings; + this.userInvitesExpirationTimeFrame = builder.userInvitesExpirationTimeFrame; + this.isUsernameChangeRestricted = builder.isUsernameChangeRestricted; + this.isBoxSyncRestrictedForNewUsers = builder.isBoxSyncRestrictedForNewUsers; + this.isViewAllUsersEnabledForNewUsers = builder.isViewAllUsersEnabledForNewUsers; + this.isDeviceLimitExemptionEnabledForNewUsers = + builder.isDeviceLimitExemptionEnabledForNewUsers; + this.isExternalCollaborationRestrictedForNewUsers = + builder.isExternalCollaborationRestrictedForNewUsers; + this.isUnlimitedStorageEnabledForNewUsers = builder.isUnlimitedStorageEnabledForNewUsers; + this.newUserDefaultStorageLimit = builder.newUserDefaultStorageLimit; + this.newUserDefaultTimezone = builder.newUserDefaultTimezone; + this.newUserDefaultLanguage = builder.newUserDefaultLanguage; + this.isEnterpriseSsoRequired = builder.isEnterpriseSsoRequired; + this.isEnterpriseSsoInTesting = builder.isEnterpriseSsoInTesting; + this.isSsoAutoAddGroupsEnabled = builder.isSsoAutoAddGroupsEnabled; + this.isSsoAutoAddUserToGroupsEnabled = builder.isSsoAutoAddUserToGroupsEnabled; + this.isSsoAutoRemoveUserFromGroupsEnabled = builder.isSsoAutoRemoveUserFromGroupsEnabled; + this.userTrackingCodes = builder.userTrackingCodes; + this.numberOfUserTrackingCodesRemaining = builder.numberOfUserTrackingCodesRemaining; + this.isInstantLoginRestricted = builder.isInstantLoginRestricted; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getEnterpriseFeatureSettings() { + return enterpriseFeatureSettings; + } + + public EnterpriseConfigurationItemStringV2025R0 getUserInvitesExpirationTimeFrame() { + return userInvitesExpirationTimeFrame; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsUsernameChangeRestricted() { + return isUsernameChangeRestricted; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsBoxSyncRestrictedForNewUsers() { + return isBoxSyncRestrictedForNewUsers; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsViewAllUsersEnabledForNewUsers() { + return isViewAllUsersEnabledForNewUsers; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsDeviceLimitExemptionEnabledForNewUsers() { + return isDeviceLimitExemptionEnabledForNewUsers; + } + + public EnterpriseConfigurationItemBooleanV2025R0 + getIsExternalCollaborationRestrictedForNewUsers() { + return isExternalCollaborationRestrictedForNewUsers; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsUnlimitedStorageEnabledForNewUsers() { + return isUnlimitedStorageEnabledForNewUsers; + } + + public EnterpriseConfigurationItemIntegerV2025R0 getNewUserDefaultStorageLimit() { + return newUserDefaultStorageLimit; + } + + public EnterpriseConfigurationItemStringV2025R0 getNewUserDefaultTimezone() { + return newUserDefaultTimezone; + } + + public EnterpriseConfigurationItemStringV2025R0 getNewUserDefaultLanguage() { + return newUserDefaultLanguage; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsEnterpriseSsoRequired() { + return isEnterpriseSsoRequired; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsEnterpriseSsoInTesting() { + return isEnterpriseSsoInTesting; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsSsoAutoAddGroupsEnabled() { + return isSsoAutoAddGroupsEnabled; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsSsoAutoAddUserToGroupsEnabled() { + return isSsoAutoAddUserToGroupsEnabled; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsSsoAutoRemoveUserFromGroupsEnabled() { + return isSsoAutoRemoveUserFromGroupsEnabled; + } + + public EnterpriseConfigurationUserSettingsV2025R0UserTrackingCodesField getUserTrackingCodes() { + return userTrackingCodes; + } + + public EnterpriseConfigurationItemIntegerV2025R0 getNumberOfUserTrackingCodesRemaining() { + return numberOfUserTrackingCodesRemaining; + } + + public EnterpriseConfigurationItemBooleanV2025R0 getIsInstantLoginRestricted() { + return isInstantLoginRestricted; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseConfigurationUserSettingsV2025R0 casted = + (EnterpriseConfigurationUserSettingsV2025R0) o; + return Objects.equals(enterpriseFeatureSettings, casted.enterpriseFeatureSettings) + && Objects.equals(userInvitesExpirationTimeFrame, casted.userInvitesExpirationTimeFrame) + && Objects.equals(isUsernameChangeRestricted, casted.isUsernameChangeRestricted) + && Objects.equals(isBoxSyncRestrictedForNewUsers, casted.isBoxSyncRestrictedForNewUsers) + && Objects.equals(isViewAllUsersEnabledForNewUsers, casted.isViewAllUsersEnabledForNewUsers) + && Objects.equals( + isDeviceLimitExemptionEnabledForNewUsers, + casted.isDeviceLimitExemptionEnabledForNewUsers) + && Objects.equals( + isExternalCollaborationRestrictedForNewUsers, + casted.isExternalCollaborationRestrictedForNewUsers) + && Objects.equals( + isUnlimitedStorageEnabledForNewUsers, casted.isUnlimitedStorageEnabledForNewUsers) + && Objects.equals(newUserDefaultStorageLimit, casted.newUserDefaultStorageLimit) + && Objects.equals(newUserDefaultTimezone, casted.newUserDefaultTimezone) + && Objects.equals(newUserDefaultLanguage, casted.newUserDefaultLanguage) + && Objects.equals(isEnterpriseSsoRequired, casted.isEnterpriseSsoRequired) + && Objects.equals(isEnterpriseSsoInTesting, casted.isEnterpriseSsoInTesting) + && Objects.equals(isSsoAutoAddGroupsEnabled, casted.isSsoAutoAddGroupsEnabled) + && Objects.equals(isSsoAutoAddUserToGroupsEnabled, casted.isSsoAutoAddUserToGroupsEnabled) + && Objects.equals( + isSsoAutoRemoveUserFromGroupsEnabled, casted.isSsoAutoRemoveUserFromGroupsEnabled) + && Objects.equals(userTrackingCodes, casted.userTrackingCodes) + && Objects.equals( + numberOfUserTrackingCodesRemaining, casted.numberOfUserTrackingCodesRemaining) + && Objects.equals(isInstantLoginRestricted, casted.isInstantLoginRestricted); + } + + @Override + public int hashCode() { + return Objects.hash( + enterpriseFeatureSettings, + userInvitesExpirationTimeFrame, + isUsernameChangeRestricted, + isBoxSyncRestrictedForNewUsers, + isViewAllUsersEnabledForNewUsers, + isDeviceLimitExemptionEnabledForNewUsers, + isExternalCollaborationRestrictedForNewUsers, + isUnlimitedStorageEnabledForNewUsers, + newUserDefaultStorageLimit, + newUserDefaultTimezone, + newUserDefaultLanguage, + isEnterpriseSsoRequired, + isEnterpriseSsoInTesting, + isSsoAutoAddGroupsEnabled, + isSsoAutoAddUserToGroupsEnabled, + isSsoAutoRemoveUserFromGroupsEnabled, + userTrackingCodes, + numberOfUserTrackingCodesRemaining, + isInstantLoginRestricted); + } + + @Override + public String toString() { + return "EnterpriseConfigurationUserSettingsV2025R0{" + + "enterpriseFeatureSettings='" + + enterpriseFeatureSettings + + '\'' + + ", " + + "userInvitesExpirationTimeFrame='" + + userInvitesExpirationTimeFrame + + '\'' + + ", " + + "isUsernameChangeRestricted='" + + isUsernameChangeRestricted + + '\'' + + ", " + + "isBoxSyncRestrictedForNewUsers='" + + isBoxSyncRestrictedForNewUsers + + '\'' + + ", " + + "isViewAllUsersEnabledForNewUsers='" + + isViewAllUsersEnabledForNewUsers + + '\'' + + ", " + + "isDeviceLimitExemptionEnabledForNewUsers='" + + isDeviceLimitExemptionEnabledForNewUsers + + '\'' + + ", " + + "isExternalCollaborationRestrictedForNewUsers='" + + isExternalCollaborationRestrictedForNewUsers + + '\'' + + ", " + + "isUnlimitedStorageEnabledForNewUsers='" + + isUnlimitedStorageEnabledForNewUsers + + '\'' + + ", " + + "newUserDefaultStorageLimit='" + + newUserDefaultStorageLimit + + '\'' + + ", " + + "newUserDefaultTimezone='" + + newUserDefaultTimezone + + '\'' + + ", " + + "newUserDefaultLanguage='" + + newUserDefaultLanguage + + '\'' + + ", " + + "isEnterpriseSsoRequired='" + + isEnterpriseSsoRequired + + '\'' + + ", " + + "isEnterpriseSsoInTesting='" + + isEnterpriseSsoInTesting + + '\'' + + ", " + + "isSsoAutoAddGroupsEnabled='" + + isSsoAutoAddGroupsEnabled + + '\'' + + ", " + + "isSsoAutoAddUserToGroupsEnabled='" + + isSsoAutoAddUserToGroupsEnabled + + '\'' + + ", " + + "isSsoAutoRemoveUserFromGroupsEnabled='" + + isSsoAutoRemoveUserFromGroupsEnabled + + '\'' + + ", " + + "userTrackingCodes='" + + userTrackingCodes + + '\'' + + ", " + + "numberOfUserTrackingCodesRemaining='" + + numberOfUserTrackingCodesRemaining + + '\'' + + ", " + + "isInstantLoginRestricted='" + + isInstantLoginRestricted + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List enterpriseFeatureSettings; + + protected EnterpriseConfigurationItemStringV2025R0 userInvitesExpirationTimeFrame; + + protected EnterpriseConfigurationItemBooleanV2025R0 isUsernameChangeRestricted; + + protected EnterpriseConfigurationItemBooleanV2025R0 isBoxSyncRestrictedForNewUsers; + + protected EnterpriseConfigurationItemBooleanV2025R0 isViewAllUsersEnabledForNewUsers; + + protected EnterpriseConfigurationItemBooleanV2025R0 isDeviceLimitExemptionEnabledForNewUsers; + + protected EnterpriseConfigurationItemBooleanV2025R0 + isExternalCollaborationRestrictedForNewUsers; + + protected EnterpriseConfigurationItemBooleanV2025R0 isUnlimitedStorageEnabledForNewUsers; + + protected EnterpriseConfigurationItemIntegerV2025R0 newUserDefaultStorageLimit; + + protected EnterpriseConfigurationItemStringV2025R0 newUserDefaultTimezone; + + protected EnterpriseConfigurationItemStringV2025R0 newUserDefaultLanguage; + + protected EnterpriseConfigurationItemBooleanV2025R0 isEnterpriseSsoRequired; + + protected EnterpriseConfigurationItemBooleanV2025R0 isEnterpriseSsoInTesting; + + protected EnterpriseConfigurationItemBooleanV2025R0 isSsoAutoAddGroupsEnabled; + + protected EnterpriseConfigurationItemBooleanV2025R0 isSsoAutoAddUserToGroupsEnabled; + + protected EnterpriseConfigurationItemBooleanV2025R0 isSsoAutoRemoveUserFromGroupsEnabled; + + protected EnterpriseConfigurationUserSettingsV2025R0UserTrackingCodesField userTrackingCodes; + + protected EnterpriseConfigurationItemIntegerV2025R0 numberOfUserTrackingCodesRemaining; + + protected EnterpriseConfigurationItemBooleanV2025R0 isInstantLoginRestricted; + + public Builder enterpriseFeatureSettings( + List enterpriseFeatureSettings) { + this.enterpriseFeatureSettings = enterpriseFeatureSettings; + return this; + } + + public Builder userInvitesExpirationTimeFrame( + EnterpriseConfigurationItemStringV2025R0 userInvitesExpirationTimeFrame) { + this.userInvitesExpirationTimeFrame = userInvitesExpirationTimeFrame; + return this; + } + + public Builder isUsernameChangeRestricted( + EnterpriseConfigurationItemBooleanV2025R0 isUsernameChangeRestricted) { + this.isUsernameChangeRestricted = isUsernameChangeRestricted; + return this; + } + + public Builder isBoxSyncRestrictedForNewUsers( + EnterpriseConfigurationItemBooleanV2025R0 isBoxSyncRestrictedForNewUsers) { + this.isBoxSyncRestrictedForNewUsers = isBoxSyncRestrictedForNewUsers; + return this; + } + + public Builder isViewAllUsersEnabledForNewUsers( + EnterpriseConfigurationItemBooleanV2025R0 isViewAllUsersEnabledForNewUsers) { + this.isViewAllUsersEnabledForNewUsers = isViewAllUsersEnabledForNewUsers; + return this; + } + + public Builder isDeviceLimitExemptionEnabledForNewUsers( + EnterpriseConfigurationItemBooleanV2025R0 isDeviceLimitExemptionEnabledForNewUsers) { + this.isDeviceLimitExemptionEnabledForNewUsers = isDeviceLimitExemptionEnabledForNewUsers; + return this; + } + + public Builder isExternalCollaborationRestrictedForNewUsers( + EnterpriseConfigurationItemBooleanV2025R0 isExternalCollaborationRestrictedForNewUsers) { + this.isExternalCollaborationRestrictedForNewUsers = + isExternalCollaborationRestrictedForNewUsers; + return this; + } + + public Builder isUnlimitedStorageEnabledForNewUsers( + EnterpriseConfigurationItemBooleanV2025R0 isUnlimitedStorageEnabledForNewUsers) { + this.isUnlimitedStorageEnabledForNewUsers = isUnlimitedStorageEnabledForNewUsers; + return this; + } + + public Builder newUserDefaultStorageLimit( + EnterpriseConfigurationItemIntegerV2025R0 newUserDefaultStorageLimit) { + this.newUserDefaultStorageLimit = newUserDefaultStorageLimit; + return this; + } + + public Builder newUserDefaultTimezone( + EnterpriseConfigurationItemStringV2025R0 newUserDefaultTimezone) { + this.newUserDefaultTimezone = newUserDefaultTimezone; + return this; + } + + public Builder newUserDefaultLanguage( + EnterpriseConfigurationItemStringV2025R0 newUserDefaultLanguage) { + this.newUserDefaultLanguage = newUserDefaultLanguage; + return this; + } + + public Builder isEnterpriseSsoRequired( + EnterpriseConfigurationItemBooleanV2025R0 isEnterpriseSsoRequired) { + this.isEnterpriseSsoRequired = isEnterpriseSsoRequired; + return this; + } + + public Builder isEnterpriseSsoInTesting( + EnterpriseConfigurationItemBooleanV2025R0 isEnterpriseSsoInTesting) { + this.isEnterpriseSsoInTesting = isEnterpriseSsoInTesting; + return this; + } + + public Builder isSsoAutoAddGroupsEnabled( + EnterpriseConfigurationItemBooleanV2025R0 isSsoAutoAddGroupsEnabled) { + this.isSsoAutoAddGroupsEnabled = isSsoAutoAddGroupsEnabled; + return this; + } + + public Builder isSsoAutoAddUserToGroupsEnabled( + EnterpriseConfigurationItemBooleanV2025R0 isSsoAutoAddUserToGroupsEnabled) { + this.isSsoAutoAddUserToGroupsEnabled = isSsoAutoAddUserToGroupsEnabled; + return this; + } + + public Builder isSsoAutoRemoveUserFromGroupsEnabled( + EnterpriseConfigurationItemBooleanV2025R0 isSsoAutoRemoveUserFromGroupsEnabled) { + this.isSsoAutoRemoveUserFromGroupsEnabled = isSsoAutoRemoveUserFromGroupsEnabled; + return this; + } + + public Builder userTrackingCodes( + EnterpriseConfigurationUserSettingsV2025R0UserTrackingCodesField userTrackingCodes) { + this.userTrackingCodes = userTrackingCodes; + return this; + } + + public Builder numberOfUserTrackingCodesRemaining( + EnterpriseConfigurationItemIntegerV2025R0 numberOfUserTrackingCodesRemaining) { + this.numberOfUserTrackingCodesRemaining = numberOfUserTrackingCodesRemaining; + return this; + } + + public Builder isInstantLoginRestricted( + EnterpriseConfigurationItemBooleanV2025R0 isInstantLoginRestricted) { + this.isInstantLoginRestricted = isInstantLoginRestricted; + return this; + } + + public EnterpriseConfigurationUserSettingsV2025R0 build() { + return new EnterpriseConfigurationUserSettingsV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationusersettingsv2025r0/EnterpriseConfigurationUserSettingsV2025R0UserTrackingCodesField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationusersettingsv2025r0/EnterpriseConfigurationUserSettingsV2025R0UserTrackingCodesField.java new file mode 100644 index 000000000..c729a2a01 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationusersettingsv2025r0/EnterpriseConfigurationUserSettingsV2025R0UserTrackingCodesField.java @@ -0,0 +1,79 @@ +package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationusersettingsv2025r0; + +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemv2025r0.EnterpriseConfigurationItemV2025R0; +import com.box.sdkgen.schemas.v2025r0.usertrackingcodev2025r0.UserTrackingCodeV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class EnterpriseConfigurationUserSettingsV2025R0UserTrackingCodesField + extends EnterpriseConfigurationItemV2025R0 { + + protected List value; + + public EnterpriseConfigurationUserSettingsV2025R0UserTrackingCodesField() { + super(); + } + + protected EnterpriseConfigurationUserSettingsV2025R0UserTrackingCodesField(Builder builder) { + super(builder); + this.value = builder.value; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getValue() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseConfigurationUserSettingsV2025R0UserTrackingCodesField casted = + (EnterpriseConfigurationUserSettingsV2025R0UserTrackingCodesField) o; + return Objects.equals(isUsed, casted.isUsed) && Objects.equals(value, casted.value); + } + + @Override + public int hashCode() { + return Objects.hash(isUsed, value); + } + + @Override + public String toString() { + return "EnterpriseConfigurationUserSettingsV2025R0UserTrackingCodesField{" + + "isUsed='" + + isUsed + + '\'' + + ", " + + "value='" + + value + + '\'' + + "}"; + } + + public static class Builder extends EnterpriseConfigurationItemV2025R0.Builder { + + protected List value; + + public Builder value(List value) { + this.value = value; + return this; + } + + @Override + public Builder isUsed(Boolean isUsed) { + this.isUsed = isUsed; + return this; + } + + public EnterpriseConfigurationUserSettingsV2025R0UserTrackingCodesField build() { + return new EnterpriseConfigurationUserSettingsV2025R0UserTrackingCodesField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationv2025r0/EnterpriseConfigurationV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationv2025r0/EnterpriseConfigurationV2025R0.java new file mode 100644 index 000000000..3b35083e5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationv2025r0/EnterpriseConfigurationV2025R0.java @@ -0,0 +1,188 @@ +package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationcontentandsharingv2025r0.EnterpriseConfigurationContentAndSharingV2025R0; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationsecurityv2025r0.EnterpriseConfigurationSecurityV2025R0; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationshieldv2025r0.EnterpriseConfigurationShieldV2025R0; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationusersettingsv2025r0.EnterpriseConfigurationUserSettingsV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** The enterprise configuration for a given enterprise. */ +@JsonFilter("nullablePropertyFilter") +public class EnterpriseConfigurationV2025R0 extends SerializableObject { + + /** The identifier of the enterprise configuration which is the ID of the enterprise. */ + protected String id; + + /** The value will always be `enterprise_configuration`. */ + @JsonDeserialize( + using = + EnterpriseConfigurationV2025R0TypeField + .EnterpriseConfigurationV2025R0TypeFieldDeserializer.class) + @JsonSerialize( + using = + EnterpriseConfigurationV2025R0TypeField.EnterpriseConfigurationV2025R0TypeFieldSerializer + .class) + protected EnumWrapper type; + + protected EnterpriseConfigurationSecurityV2025R0 security; + + @JsonProperty("content_and_sharing") + protected EnterpriseConfigurationContentAndSharingV2025R0 contentAndSharing; + + @JsonProperty("user_settings") + protected EnterpriseConfigurationUserSettingsV2025R0 userSettings; + + protected EnterpriseConfigurationShieldV2025R0 shield; + + public EnterpriseConfigurationV2025R0() { + super(); + } + + protected EnterpriseConfigurationV2025R0(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.security = builder.security; + this.contentAndSharing = builder.contentAndSharing; + this.userSettings = builder.userSettings; + this.shield = builder.shield; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public EnterpriseConfigurationSecurityV2025R0 getSecurity() { + return security; + } + + public EnterpriseConfigurationContentAndSharingV2025R0 getContentAndSharing() { + return contentAndSharing; + } + + public EnterpriseConfigurationUserSettingsV2025R0 getUserSettings() { + return userSettings; + } + + public EnterpriseConfigurationShieldV2025R0 getShield() { + return shield; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseConfigurationV2025R0 casted = (EnterpriseConfigurationV2025R0) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(security, casted.security) + && Objects.equals(contentAndSharing, casted.contentAndSharing) + && Objects.equals(userSettings, casted.userSettings) + && Objects.equals(shield, casted.shield); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, security, contentAndSharing, userSettings, shield); + } + + @Override + public String toString() { + return "EnterpriseConfigurationV2025R0{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "security='" + + security + + '\'' + + ", " + + "contentAndSharing='" + + contentAndSharing + + '\'' + + ", " + + "userSettings='" + + userSettings + + '\'' + + ", " + + "shield='" + + shield + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected EnterpriseConfigurationSecurityV2025R0 security; + + protected EnterpriseConfigurationContentAndSharingV2025R0 contentAndSharing; + + protected EnterpriseConfigurationUserSettingsV2025R0 userSettings; + + protected EnterpriseConfigurationShieldV2025R0 shield; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(EnterpriseConfigurationV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder security(EnterpriseConfigurationSecurityV2025R0 security) { + this.security = security; + return this; + } + + public Builder contentAndSharing( + EnterpriseConfigurationContentAndSharingV2025R0 contentAndSharing) { + this.contentAndSharing = contentAndSharing; + return this; + } + + public Builder userSettings(EnterpriseConfigurationUserSettingsV2025R0 userSettings) { + this.userSettings = userSettings; + return this; + } + + public Builder shield(EnterpriseConfigurationShieldV2025R0 shield) { + this.shield = shield; + return this; + } + + public EnterpriseConfigurationV2025R0 build() { + return new EnterpriseConfigurationV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationv2025r0/EnterpriseConfigurationV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationv2025r0/EnterpriseConfigurationV2025R0TypeField.java new file mode 100644 index 000000000..3ba236c51 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationv2025r0/EnterpriseConfigurationV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum EnterpriseConfigurationV2025R0TypeField implements Valuable { + ENTERPRISE_CONFIGURATION("enterprise_configuration"); + + private final String value; + + EnterpriseConfigurationV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class EnterpriseConfigurationV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public EnterpriseConfigurationV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(EnterpriseConfigurationV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class EnterpriseConfigurationV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public EnterpriseConfigurationV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisefeaturesettingsitemv2025r0/EnterpriseFeatureSettingsItemV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisefeaturesettingsitemv2025r0/EnterpriseFeatureSettingsItemV2025R0.java new file mode 100644 index 000000000..10883869e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisefeaturesettingsitemv2025r0/EnterpriseFeatureSettingsItemV2025R0.java @@ -0,0 +1,77 @@ +package com.box.sdkgen.schemas.v2025r0.enterprisefeaturesettingsitemv2025r0; + +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemv2025r0.EnterpriseConfigurationItemV2025R0; +import com.box.sdkgen.schemas.v2025r0.enterprisefeaturesettingv2025r0.EnterpriseFeatureSettingV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +/** An enterprise feature settings item. */ +@JsonFilter("nullablePropertyFilter") +public class EnterpriseFeatureSettingsItemV2025R0 extends EnterpriseConfigurationItemV2025R0 { + + protected EnterpriseFeatureSettingV2025R0 value; + + public EnterpriseFeatureSettingsItemV2025R0() { + super(); + } + + protected EnterpriseFeatureSettingsItemV2025R0(Builder builder) { + super(builder); + this.value = builder.value; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnterpriseFeatureSettingV2025R0 getValue() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseFeatureSettingsItemV2025R0 casted = (EnterpriseFeatureSettingsItemV2025R0) o; + return Objects.equals(isUsed, casted.isUsed) && Objects.equals(value, casted.value); + } + + @Override + public int hashCode() { + return Objects.hash(isUsed, value); + } + + @Override + public String toString() { + return "EnterpriseFeatureSettingsItemV2025R0{" + + "isUsed='" + + isUsed + + '\'' + + ", " + + "value='" + + value + + '\'' + + "}"; + } + + public static class Builder extends EnterpriseConfigurationItemV2025R0.Builder { + + protected EnterpriseFeatureSettingV2025R0 value; + + public Builder value(EnterpriseFeatureSettingV2025R0 value) { + this.value = value; + return this; + } + + @Override + public Builder isUsed(Boolean isUsed) { + this.isUsed = isUsed; + return this; + } + + public EnterpriseFeatureSettingsItemV2025R0 build() { + return new EnterpriseFeatureSettingsItemV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisefeaturesettingv2025r0/EnterpriseFeatureSettingV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisefeaturesettingv2025r0/EnterpriseFeatureSettingV2025R0.java new file mode 100644 index 000000000..37f7d99cb --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisefeaturesettingv2025r0/EnterpriseFeatureSettingV2025R0.java @@ -0,0 +1,202 @@ +package com.box.sdkgen.schemas.v2025r0.enterprisefeaturesettingv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.userorgroupreferencev2025r0.UserOrGroupReferenceV2025R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +/** An enterprise feature setting. */ +@JsonFilter("nullablePropertyFilter") +public class EnterpriseFeatureSettingV2025R0 extends SerializableObject { + + /** The identifier of the enterprise feature setting. */ + @Nullable protected String id; + + /** The feature. */ + protected EnterpriseFeatureSettingV2025R0FeatureField feature; + + /** The state of the feature. */ + @Nullable protected String state; + + /** Whether the feature can be configured. */ + @JsonProperty("can_configure") + @Nullable + protected Boolean canConfigure; + + /** Whether the feature is configured. */ + @JsonProperty("is_configured") + @Nullable + protected Boolean isConfigured; + + /** Enterprise feature setting is enabled for only this set of users and groups. */ + @Nullable protected List allowlist; + + /** Enterprise feature setting is enabled for everyone except this set of users and groups. */ + @Nullable protected List denylist; + + public EnterpriseFeatureSettingV2025R0() { + super(); + } + + protected EnterpriseFeatureSettingV2025R0(Builder builder) { + super(); + this.id = builder.id; + this.feature = builder.feature; + this.state = builder.state; + this.canConfigure = builder.canConfigure; + this.isConfigured = builder.isConfigured; + this.allowlist = builder.allowlist; + this.denylist = builder.denylist; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnterpriseFeatureSettingV2025R0FeatureField getFeature() { + return feature; + } + + public String getState() { + return state; + } + + public Boolean getCanConfigure() { + return canConfigure; + } + + public Boolean getIsConfigured() { + return isConfigured; + } + + public List getAllowlist() { + return allowlist; + } + + public List getDenylist() { + return denylist; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseFeatureSettingV2025R0 casted = (EnterpriseFeatureSettingV2025R0) o; + return Objects.equals(id, casted.id) + && Objects.equals(feature, casted.feature) + && Objects.equals(state, casted.state) + && Objects.equals(canConfigure, casted.canConfigure) + && Objects.equals(isConfigured, casted.isConfigured) + && Objects.equals(allowlist, casted.allowlist) + && Objects.equals(denylist, casted.denylist); + } + + @Override + public int hashCode() { + return Objects.hash(id, feature, state, canConfigure, isConfigured, allowlist, denylist); + } + + @Override + public String toString() { + return "EnterpriseFeatureSettingV2025R0{" + + "id='" + + id + + '\'' + + ", " + + "feature='" + + feature + + '\'' + + ", " + + "state='" + + state + + '\'' + + ", " + + "canConfigure='" + + canConfigure + + '\'' + + ", " + + "isConfigured='" + + isConfigured + + '\'' + + ", " + + "allowlist='" + + allowlist + + '\'' + + ", " + + "denylist='" + + denylist + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnterpriseFeatureSettingV2025R0FeatureField feature; + + protected String state; + + protected Boolean canConfigure; + + protected Boolean isConfigured; + + protected List allowlist; + + protected List denylist; + + public Builder id(String id) { + this.id = id; + this.markNullableFieldAsSet("id"); + return this; + } + + public Builder feature(EnterpriseFeatureSettingV2025R0FeatureField feature) { + this.feature = feature; + return this; + } + + public Builder state(String state) { + this.state = state; + this.markNullableFieldAsSet("state"); + return this; + } + + public Builder canConfigure(Boolean canConfigure) { + this.canConfigure = canConfigure; + this.markNullableFieldAsSet("can_configure"); + return this; + } + + public Builder isConfigured(Boolean isConfigured) { + this.isConfigured = isConfigured; + this.markNullableFieldAsSet("is_configured"); + return this; + } + + public Builder allowlist(List allowlist) { + this.allowlist = allowlist; + this.markNullableFieldAsSet("allowlist"); + return this; + } + + public Builder denylist(List denylist) { + this.denylist = denylist; + this.markNullableFieldAsSet("denylist"); + return this; + } + + public EnterpriseFeatureSettingV2025R0 build() { + return new EnterpriseFeatureSettingV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisefeaturesettingv2025r0/EnterpriseFeatureSettingV2025R0FeatureField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisefeaturesettingv2025r0/EnterpriseFeatureSettingV2025R0FeatureField.java new file mode 100644 index 000000000..424600598 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisefeaturesettingv2025r0/EnterpriseFeatureSettingV2025R0FeatureField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.schemas.v2025r0.enterprisefeaturesettingv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class EnterpriseFeatureSettingV2025R0FeatureField extends SerializableObject { + + /** The identifier of the feature. */ + @Nullable protected String id; + + public EnterpriseFeatureSettingV2025R0FeatureField() { + super(); + } + + protected EnterpriseFeatureSettingV2025R0FeatureField(Builder builder) { + super(); + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EnterpriseFeatureSettingV2025R0FeatureField casted = + (EnterpriseFeatureSettingV2025R0FeatureField) o; + return Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + return "EnterpriseFeatureSettingV2025R0FeatureField{" + "id='" + id + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + public Builder id(String id) { + this.id = id; + this.markNullableFieldAsSet("id"); + return this; + } + + public EnterpriseFeatureSettingV2025R0FeatureField build() { + return new EnterpriseFeatureSettingV2025R0FeatureField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/externalcollabsecuritysettingsv2025r0/ExternalCollabSecuritySettingsV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/externalcollabsecuritysettingsv2025r0/ExternalCollabSecuritySettingsV2025R0.java new file mode 100644 index 000000000..ce933fbee --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/externalcollabsecuritysettingsv2025r0/ExternalCollabSecuritySettingsV2025R0.java @@ -0,0 +1,259 @@ +package com.box.sdkgen.schemas.v2025r0.externalcollabsecuritysettingsv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.time.OffsetDateTime; +import java.util.List; +import java.util.Objects; + +/** External collaboration security settings. */ +@JsonFilter("nullablePropertyFilter") +public class ExternalCollabSecuritySettingsV2025R0 extends SerializableObject { + + /** + * List of domains that are not allowed for external collaboration. Applies if state is + * `denylist`. + */ + @JsonProperty("denylist_domains") + protected List denylistDomains; + + /** + * List of email addresses that are not allowed for external collaboration. Applies if state is + * `denylist`. + */ + @JsonProperty("denylist_emails") + protected List denylistEmails; + + /** + * List of domains that are allowed for external collaboration. Applies if state is `allowlist`. + */ + @JsonProperty("allowlist_domains") + protected List allowlistDomains; + + /** + * List of email addresses that are allowed for external collaboration. Applies if state is + * `allowlist`. + */ + @JsonProperty("allowlist_emails") + protected List allowlistEmails; + + /** + * The state of the external collaboration security settings. Possible values include `enabled`, + * `disabled`, `allowlist`, and `denylist`. + */ + @Nullable protected String state; + + /** + * The status of the scheduling to apply external collaboration security settings. Possible values + * include `in_progress`, `scheduled`, `completed`, `failed`, and `scheduled_immediate`. + */ + @JsonProperty("scheduled_status") + @Nullable + protected String scheduledStatus; + + /** Scheduled at. */ + @JsonProperty("scheduled_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected OffsetDateTime scheduledAt; + + /** + * Factor type for the external collaborators authentication. Possible values include `totp`, + * `any`, or `unknown`. + */ + @JsonProperty("factor_type_settings") + @Nullable + protected String factorTypeSettings; + + public ExternalCollabSecuritySettingsV2025R0() { + super(); + } + + protected ExternalCollabSecuritySettingsV2025R0(Builder builder) { + super(); + this.denylistDomains = builder.denylistDomains; + this.denylistEmails = builder.denylistEmails; + this.allowlistDomains = builder.allowlistDomains; + this.allowlistEmails = builder.allowlistEmails; + this.state = builder.state; + this.scheduledStatus = builder.scheduledStatus; + this.scheduledAt = builder.scheduledAt; + this.factorTypeSettings = builder.factorTypeSettings; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getDenylistDomains() { + return denylistDomains; + } + + public List getDenylistEmails() { + return denylistEmails; + } + + public List getAllowlistDomains() { + return allowlistDomains; + } + + public List getAllowlistEmails() { + return allowlistEmails; + } + + public String getState() { + return state; + } + + public String getScheduledStatus() { + return scheduledStatus; + } + + public OffsetDateTime getScheduledAt() { + return scheduledAt; + } + + public String getFactorTypeSettings() { + return factorTypeSettings; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ExternalCollabSecuritySettingsV2025R0 casted = (ExternalCollabSecuritySettingsV2025R0) o; + return Objects.equals(denylistDomains, casted.denylistDomains) + && Objects.equals(denylistEmails, casted.denylistEmails) + && Objects.equals(allowlistDomains, casted.allowlistDomains) + && Objects.equals(allowlistEmails, casted.allowlistEmails) + && Objects.equals(state, casted.state) + && Objects.equals(scheduledStatus, casted.scheduledStatus) + && Objects.equals(scheduledAt, casted.scheduledAt) + && Objects.equals(factorTypeSettings, casted.factorTypeSettings); + } + + @Override + public int hashCode() { + return Objects.hash( + denylistDomains, + denylistEmails, + allowlistDomains, + allowlistEmails, + state, + scheduledStatus, + scheduledAt, + factorTypeSettings); + } + + @Override + public String toString() { + return "ExternalCollabSecuritySettingsV2025R0{" + + "denylistDomains='" + + denylistDomains + + '\'' + + ", " + + "denylistEmails='" + + denylistEmails + + '\'' + + ", " + + "allowlistDomains='" + + allowlistDomains + + '\'' + + ", " + + "allowlistEmails='" + + allowlistEmails + + '\'' + + ", " + + "state='" + + state + + '\'' + + ", " + + "scheduledStatus='" + + scheduledStatus + + '\'' + + ", " + + "scheduledAt='" + + scheduledAt + + '\'' + + ", " + + "factorTypeSettings='" + + factorTypeSettings + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List denylistDomains; + + protected List denylistEmails; + + protected List allowlistDomains; + + protected List allowlistEmails; + + protected String state; + + protected String scheduledStatus; + + protected OffsetDateTime scheduledAt; + + protected String factorTypeSettings; + + public Builder denylistDomains(List denylistDomains) { + this.denylistDomains = denylistDomains; + return this; + } + + public Builder denylistEmails(List denylistEmails) { + this.denylistEmails = denylistEmails; + return this; + } + + public Builder allowlistDomains(List allowlistDomains) { + this.allowlistDomains = allowlistDomains; + return this; + } + + public Builder allowlistEmails(List allowlistEmails) { + this.allowlistEmails = allowlistEmails; + return this; + } + + public Builder state(String state) { + this.state = state; + this.markNullableFieldAsSet("state"); + return this; + } + + public Builder scheduledStatus(String scheduledStatus) { + this.scheduledStatus = scheduledStatus; + this.markNullableFieldAsSet("scheduled_status"); + return this; + } + + public Builder scheduledAt(OffsetDateTime scheduledAt) { + this.scheduledAt = scheduledAt; + this.markNullableFieldAsSet("scheduled_at"); + return this; + } + + public Builder factorTypeSettings(String factorTypeSettings) { + this.factorTypeSettings = factorTypeSettings; + this.markNullableFieldAsSet("factor_type_settings"); + return this; + } + + public ExternalCollabSecuritySettingsV2025R0 build() { + return new ExternalCollabSecuritySettingsV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/keysafesettingsv2025r0/KeysafeSettingsV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/keysafesettingsv2025r0/KeysafeSettingsV2025R0.java new file mode 100644 index 000000000..7353cfe6f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/keysafesettingsv2025r0/KeysafeSettingsV2025R0.java @@ -0,0 +1,210 @@ +package com.box.sdkgen.schemas.v2025r0.keysafesettingsv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** The KeySafe settings. */ +@JsonFilter("nullablePropertyFilter") +public class KeysafeSettingsV2025R0 extends SerializableObject { + + /** Whether KeySafe addon is enabled for the enterprise. */ + @JsonProperty("keysafe_enabled") + protected Boolean keysafeEnabled; + + /** The cloud provider. */ + @JsonProperty("cloud_provider") + @Nullable + protected String cloudProvider; + + /** The key ID. */ + @JsonProperty("key_id") + @Nullable + protected String keyId; + + /** The account ID. */ + @JsonProperty("account_id") + @Nullable + protected String accountId; + + /** The location ID. */ + @JsonProperty("location_id") + @Nullable + protected String locationId; + + /** The project ID. */ + @JsonProperty("project_id") + @Nullable + protected String projectId; + + /** The key ring ID. */ + @JsonProperty("keyring_id") + @Nullable + protected String keyringId; + + public KeysafeSettingsV2025R0() { + super(); + } + + protected KeysafeSettingsV2025R0(Builder builder) { + super(); + this.keysafeEnabled = builder.keysafeEnabled; + this.cloudProvider = builder.cloudProvider; + this.keyId = builder.keyId; + this.accountId = builder.accountId; + this.locationId = builder.locationId; + this.projectId = builder.projectId; + this.keyringId = builder.keyringId; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getKeysafeEnabled() { + return keysafeEnabled; + } + + public String getCloudProvider() { + return cloudProvider; + } + + public String getKeyId() { + return keyId; + } + + public String getAccountId() { + return accountId; + } + + public String getLocationId() { + return locationId; + } + + public String getProjectId() { + return projectId; + } + + public String getKeyringId() { + return keyringId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + KeysafeSettingsV2025R0 casted = (KeysafeSettingsV2025R0) o; + return Objects.equals(keysafeEnabled, casted.keysafeEnabled) + && Objects.equals(cloudProvider, casted.cloudProvider) + && Objects.equals(keyId, casted.keyId) + && Objects.equals(accountId, casted.accountId) + && Objects.equals(locationId, casted.locationId) + && Objects.equals(projectId, casted.projectId) + && Objects.equals(keyringId, casted.keyringId); + } + + @Override + public int hashCode() { + return Objects.hash( + keysafeEnabled, cloudProvider, keyId, accountId, locationId, projectId, keyringId); + } + + @Override + public String toString() { + return "KeysafeSettingsV2025R0{" + + "keysafeEnabled='" + + keysafeEnabled + + '\'' + + ", " + + "cloudProvider='" + + cloudProvider + + '\'' + + ", " + + "keyId='" + + keyId + + '\'' + + ", " + + "accountId='" + + accountId + + '\'' + + ", " + + "locationId='" + + locationId + + '\'' + + ", " + + "projectId='" + + projectId + + '\'' + + ", " + + "keyringId='" + + keyringId + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean keysafeEnabled; + + protected String cloudProvider; + + protected String keyId; + + protected String accountId; + + protected String locationId; + + protected String projectId; + + protected String keyringId; + + public Builder keysafeEnabled(Boolean keysafeEnabled) { + this.keysafeEnabled = keysafeEnabled; + return this; + } + + public Builder cloudProvider(String cloudProvider) { + this.cloudProvider = cloudProvider; + this.markNullableFieldAsSet("cloud_provider"); + return this; + } + + public Builder keyId(String keyId) { + this.keyId = keyId; + this.markNullableFieldAsSet("key_id"); + return this; + } + + public Builder accountId(String accountId) { + this.accountId = accountId; + this.markNullableFieldAsSet("account_id"); + return this; + } + + public Builder locationId(String locationId) { + this.locationId = locationId; + this.markNullableFieldAsSet("location_id"); + return this; + } + + public Builder projectId(String projectId) { + this.projectId = projectId; + this.markNullableFieldAsSet("project_id"); + return this; + } + + public Builder keyringId(String keyringId) { + this.keyringId = keyringId; + this.markNullableFieldAsSet("keyring_id"); + return this; + } + + public KeysafeSettingsV2025R0 build() { + return new KeysafeSettingsV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/listuserv2025r0/ListUserV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/listuserv2025r0/ListUserV2025R0.java new file mode 100644 index 000000000..579bc26d9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/listuserv2025r0/ListUserV2025R0.java @@ -0,0 +1,112 @@ +package com.box.sdkgen.schemas.v2025r0.listuserv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +/** A user in allowlist or denylist. */ +@JsonFilter("nullablePropertyFilter") +public class ListUserV2025R0 extends SerializableObject { + + /** The ID of the user. */ + @Nullable protected Long id; + + /** The name of the user. */ + @Nullable protected String name; + + /** The email of the user. */ + @Nullable protected String email; + + public ListUserV2025R0() { + super(); + } + + protected ListUserV2025R0(Builder builder) { + super(); + this.id = builder.id; + this.name = builder.name; + this.email = builder.email; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getId() { + return id; + } + + public String getName() { + return name; + } + + public String getEmail() { + return email; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ListUserV2025R0 casted = (ListUserV2025R0) o; + return Objects.equals(id, casted.id) + && Objects.equals(name, casted.name) + && Objects.equals(email, casted.email); + } + + @Override + public int hashCode() { + return Objects.hash(id, name, email); + } + + @Override + public String toString() { + return "ListUserV2025R0{" + + "id='" + + id + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "email='" + + email + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long id; + + protected String name; + + protected String email; + + public Builder id(Long id) { + this.id = id; + this.markNullableFieldAsSet("id"); + return this; + } + + public Builder name(String name) { + this.name = name; + this.markNullableFieldAsSet("name"); + return this; + } + + public Builder email(String email) { + this.email = email; + this.markNullableFieldAsSet("email"); + return this; + } + + public ListUserV2025R0 build() { + return new ListUserV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/sharedlinkpermissionsv2025r0/SharedLinkPermissionsV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/sharedlinkpermissionsv2025r0/SharedLinkPermissionsV2025R0.java new file mode 100644 index 000000000..bfe6005dc --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/sharedlinkpermissionsv2025r0/SharedLinkPermissionsV2025R0.java @@ -0,0 +1,146 @@ +package com.box.sdkgen.schemas.v2025r0.sharedlinkpermissionsv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** The shared link permissions for the enterprise. */ +@JsonFilter("nullablePropertyFilter") +public class SharedLinkPermissionsV2025R0 extends SerializableObject { + + /** The selected option for shared links permissions. */ + @JsonProperty("shared_links_option") + @Nullable + protected String sharedLinksOption; + + /** The default shared link type. */ + @JsonProperty("default_shared_link_type") + @Nullable + protected String defaultSharedLinkType; + + /** The selected option for notes shared links permissions. */ + @JsonProperty("notes_shared_link_option") + @Nullable + protected String notesSharedLinkOption; + + /** The default notes shared link type. */ + @JsonProperty("default_notes_shared_link_type") + @Nullable + protected String defaultNotesSharedLinkType; + + public SharedLinkPermissionsV2025R0() { + super(); + } + + protected SharedLinkPermissionsV2025R0(Builder builder) { + super(); + this.sharedLinksOption = builder.sharedLinksOption; + this.defaultSharedLinkType = builder.defaultSharedLinkType; + this.notesSharedLinkOption = builder.notesSharedLinkOption; + this.defaultNotesSharedLinkType = builder.defaultNotesSharedLinkType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getSharedLinksOption() { + return sharedLinksOption; + } + + public String getDefaultSharedLinkType() { + return defaultSharedLinkType; + } + + public String getNotesSharedLinkOption() { + return notesSharedLinkOption; + } + + public String getDefaultNotesSharedLinkType() { + return defaultNotesSharedLinkType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SharedLinkPermissionsV2025R0 casted = (SharedLinkPermissionsV2025R0) o; + return Objects.equals(sharedLinksOption, casted.sharedLinksOption) + && Objects.equals(defaultSharedLinkType, casted.defaultSharedLinkType) + && Objects.equals(notesSharedLinkOption, casted.notesSharedLinkOption) + && Objects.equals(defaultNotesSharedLinkType, casted.defaultNotesSharedLinkType); + } + + @Override + public int hashCode() { + return Objects.hash( + sharedLinksOption, + defaultSharedLinkType, + notesSharedLinkOption, + defaultNotesSharedLinkType); + } + + @Override + public String toString() { + return "SharedLinkPermissionsV2025R0{" + + "sharedLinksOption='" + + sharedLinksOption + + '\'' + + ", " + + "defaultSharedLinkType='" + + defaultSharedLinkType + + '\'' + + ", " + + "notesSharedLinkOption='" + + notesSharedLinkOption + + '\'' + + ", " + + "defaultNotesSharedLinkType='" + + defaultNotesSharedLinkType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String sharedLinksOption; + + protected String defaultSharedLinkType; + + protected String notesSharedLinkOption; + + protected String defaultNotesSharedLinkType; + + public Builder sharedLinksOption(String sharedLinksOption) { + this.sharedLinksOption = sharedLinksOption; + this.markNullableFieldAsSet("shared_links_option"); + return this; + } + + public Builder defaultSharedLinkType(String defaultSharedLinkType) { + this.defaultSharedLinkType = defaultSharedLinkType; + this.markNullableFieldAsSet("default_shared_link_type"); + return this; + } + + public Builder notesSharedLinkOption(String notesSharedLinkOption) { + this.notesSharedLinkOption = notesSharedLinkOption; + this.markNullableFieldAsSet("notes_shared_link_option"); + return this; + } + + public Builder defaultNotesSharedLinkType(String defaultNotesSharedLinkType) { + this.defaultNotesSharedLinkType = defaultNotesSharedLinkType; + this.markNullableFieldAsSet("default_notes_shared_link_type"); + return this; + } + + public SharedLinkPermissionsV2025R0 build() { + return new SharedLinkPermissionsV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldruleitemv2025r0/ShieldRuleItemV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldruleitemv2025r0/ShieldRuleItemV2025R0.java new file mode 100644 index 000000000..185aa00ba --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldruleitemv2025r0/ShieldRuleItemV2025R0.java @@ -0,0 +1,240 @@ +package com.box.sdkgen.schemas.v2025r0.shieldruleitemv2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.time.OffsetDateTime; +import java.util.Objects; + +/** A Shield rule item. */ +@JsonFilter("nullablePropertyFilter") +public class ShieldRuleItemV2025R0 extends SerializableObject { + + /** The identifier of the shield rule. */ + protected String id; + + /** The value will always be `shield_rule`. */ + @JsonDeserialize( + using = ShieldRuleItemV2025R0TypeField.ShieldRuleItemV2025R0TypeFieldDeserializer.class) + @JsonSerialize( + using = ShieldRuleItemV2025R0TypeField.ShieldRuleItemV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + /** The category of the shield rule. */ + @JsonProperty("rule_category") + protected String ruleCategory; + + /** The name of the shield rule. */ + protected String name; + + /** The description of the shield rule. */ + protected String description; + + /** The priority level of the shield rule. */ + @JsonDeserialize( + using = + ShieldRuleItemV2025R0PriorityField.ShieldRuleItemV2025R0PriorityFieldDeserializer.class) + @JsonSerialize( + using = ShieldRuleItemV2025R0PriorityField.ShieldRuleItemV2025R0PriorityFieldSerializer.class) + protected EnumWrapper priority; + + /** The date and time when the shield rule was created. */ + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected OffsetDateTime createdAt; + + /** The date and time when the shield rule was last modified. */ + @JsonProperty("modified_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected OffsetDateTime modifiedAt; + + public ShieldRuleItemV2025R0() { + super(); + } + + protected ShieldRuleItemV2025R0(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.ruleCategory = builder.ruleCategory; + this.name = builder.name; + this.description = builder.description; + this.priority = builder.priority; + this.createdAt = builder.createdAt; + this.modifiedAt = builder.modifiedAt; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getRuleCategory() { + return ruleCategory; + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + public EnumWrapper getPriority() { + return priority; + } + + public OffsetDateTime getCreatedAt() { + return createdAt; + } + + public OffsetDateTime getModifiedAt() { + return modifiedAt; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShieldRuleItemV2025R0 casted = (ShieldRuleItemV2025R0) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(ruleCategory, casted.ruleCategory) + && Objects.equals(name, casted.name) + && Objects.equals(description, casted.description) + && Objects.equals(priority, casted.priority) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(modifiedAt, casted.modifiedAt); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, ruleCategory, name, description, priority, createdAt, modifiedAt); + } + + @Override + public String toString() { + return "ShieldRuleItemV2025R0{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "ruleCategory='" + + ruleCategory + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "priority='" + + priority + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "modifiedAt='" + + modifiedAt + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected EnumWrapper type; + + protected String ruleCategory; + + protected String name; + + protected String description; + + protected EnumWrapper priority; + + protected OffsetDateTime createdAt; + + protected OffsetDateTime modifiedAt; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder type(ShieldRuleItemV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder ruleCategory(String ruleCategory) { + this.ruleCategory = ruleCategory; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder priority(ShieldRuleItemV2025R0PriorityField priority) { + this.priority = new EnumWrapper(priority); + return this; + } + + public Builder priority(EnumWrapper priority) { + this.priority = priority; + return this; + } + + public Builder createdAt(OffsetDateTime createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder modifiedAt(OffsetDateTime modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + public ShieldRuleItemV2025R0 build() { + return new ShieldRuleItemV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldruleitemv2025r0/ShieldRuleItemV2025R0PriorityField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldruleitemv2025r0/ShieldRuleItemV2025R0PriorityField.java new file mode 100644 index 000000000..974613fa3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldruleitemv2025r0/ShieldRuleItemV2025R0PriorityField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.schemas.v2025r0.shieldruleitemv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ShieldRuleItemV2025R0PriorityField implements Valuable { + INFORMATIONAL("informational"), + LOW("low"), + MEDIUM("medium"), + HIGH("high"), + CRITICAL("critical"); + + private final String value; + + ShieldRuleItemV2025R0PriorityField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ShieldRuleItemV2025R0PriorityFieldDeserializer + extends JsonDeserializer> { + + public ShieldRuleItemV2025R0PriorityFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ShieldRuleItemV2025R0PriorityField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ShieldRuleItemV2025R0PriorityFieldSerializer + extends JsonSerializer> { + + public ShieldRuleItemV2025R0PriorityFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldruleitemv2025r0/ShieldRuleItemV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldruleitemv2025r0/ShieldRuleItemV2025R0TypeField.java new file mode 100644 index 000000000..5c7194a3b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldruleitemv2025r0/ShieldRuleItemV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.shieldruleitemv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ShieldRuleItemV2025R0TypeField implements Valuable { + SHIELD_RULE("shield_rule"); + + private final String value; + + ShieldRuleItemV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class ShieldRuleItemV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public ShieldRuleItemV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ShieldRuleItemV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ShieldRuleItemV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public ShieldRuleItemV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/userorgroupreferencev2025r0/UserOrGroupReferenceV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/userorgroupreferencev2025r0/UserOrGroupReferenceV2025R0.java new file mode 100644 index 000000000..3894433df --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/userorgroupreferencev2025r0/UserOrGroupReferenceV2025R0.java @@ -0,0 +1,102 @@ +package com.box.sdkgen.schemas.v2025r0.userorgroupreferencev2025r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** A reference to a user or group. */ +@JsonFilter("nullablePropertyFilter") +public class UserOrGroupReferenceV2025R0 extends SerializableObject { + + /** The type `user` or `group`. */ + @JsonDeserialize( + using = + UserOrGroupReferenceV2025R0TypeField.UserOrGroupReferenceV2025R0TypeFieldDeserializer + .class) + @JsonSerialize( + using = + UserOrGroupReferenceV2025R0TypeField.UserOrGroupReferenceV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + /** The identifier of the user or group. */ + protected String id; + + public UserOrGroupReferenceV2025R0() { + super(); + } + + protected UserOrGroupReferenceV2025R0(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserOrGroupReferenceV2025R0 casted = (UserOrGroupReferenceV2025R0) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "UserOrGroupReferenceV2025R0{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected String id; + + public Builder type(UserOrGroupReferenceV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public UserOrGroupReferenceV2025R0 build() { + return new UserOrGroupReferenceV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/userorgroupreferencev2025r0/UserOrGroupReferenceV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/userorgroupreferencev2025r0/UserOrGroupReferenceV2025R0TypeField.java new file mode 100644 index 000000000..7ca167511 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/userorgroupreferencev2025r0/UserOrGroupReferenceV2025R0TypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.v2025r0.userorgroupreferencev2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UserOrGroupReferenceV2025R0TypeField implements Valuable { + USER("user"), + GROUP("group"); + + private final String value; + + UserOrGroupReferenceV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class UserOrGroupReferenceV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public UserOrGroupReferenceV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UserOrGroupReferenceV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UserOrGroupReferenceV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public UserOrGroupReferenceV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/usertrackingcodev2025r0/UserTrackingCodeV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/usertrackingcodev2025r0/UserTrackingCodeV2025R0.java new file mode 100644 index 000000000..2169db440 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/usertrackingcodev2025r0/UserTrackingCodeV2025R0.java @@ -0,0 +1,82 @@ +package com.box.sdkgen.schemas.v2025r0.usertrackingcodev2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +/** A user tracking code. */ +@JsonFilter("nullablePropertyFilter") +public class UserTrackingCodeV2025R0 extends SerializableObject { + + /** The ID of the user tracking code. */ + @Nullable protected Long id; + + /** The name of the user tracking code. */ + @Nullable protected String name; + + public UserTrackingCodeV2025R0() { + super(); + } + + protected UserTrackingCodeV2025R0(Builder builder) { + super(); + this.id = builder.id; + this.name = builder.name; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getId() { + return id; + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserTrackingCodeV2025R0 casted = (UserTrackingCodeV2025R0) o; + return Objects.equals(id, casted.id) && Objects.equals(name, casted.name); + } + + @Override + public int hashCode() { + return Objects.hash(id, name); + } + + @Override + public String toString() { + return "UserTrackingCodeV2025R0{" + "id='" + id + '\'' + ", " + "name='" + name + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long id; + + protected String name; + + public Builder id(Long id) { + this.id = id; + this.markNullableFieldAsSet("id"); + return this; + } + + public Builder name(String name) { + this.name = name; + this.markNullableFieldAsSet("name"); + return this; + } + + public UserTrackingCodeV2025R0 build() { + return new UserTrackingCodeV2025R0(this); + } + } +} From f03da417fb609cd7ffbfd97940421750741f19de Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Thu, 23 Oct 2025 14:51:10 +0200 Subject: [PATCH 047/148] docs: Update README after `v5` release (box/box-codegen#869) (#1527) --- .codegen.json | 2 +- README.md | 253 ++++++++++++++++++++++++++++++++++---------------- 2 files changed, 176 insertions(+), 79 deletions(-) diff --git a/.codegen.json b/.codegen.json index 583fdccdb..c4cade9e8 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "192deac", "specHash": "cf21406", "version": "10.1.0" } +{ "engineHash": "b98d1dc", "specHash": "cf21406", "version": "10.1.0" } diff --git a/README.md b/README.md index f944077ef..21b710034 100644 --- a/README.md +++ b/README.md @@ -2,29 +2,7 @@ “box-dev-logo”

    -# Versioning Strategy - -Starting with v10 of the SDK, we’ve introduced a new generated codebase designed to enhance your experience with the Box API. -It is currently available on the [sdk-gen](https://github.com/box/box-java-sdk/tree/sdk-gen) branch and uses the new `com.box.sdkgen` package instead of the old `com.box.sdk`. - -v10 is targeted at new users of Box Java SDK and users already working with the generated Box Java SDK previously available under the [Box Java SDK Gen repository](https://github.com/box/box-java-sdk-gen). - -For users of v4 of the Box Java SDK, no action is required at this time — we’ll be providing an upcoming v5 release that will include both `com.box.sdk` and `com.box.sdkgen` packages for a smooth migration path. To avoid unintentional upgrades, pin your version to `com.box:box-java-sdk:4.16.4`. - -For full guidance on SDK versioning, see the [Box SDK Versioning Guide](https://developer.box.com/guides/tooling/sdks/sdk-versioning/). - ---- - -## Which Version Should I Use? - -| Scenario | Recommended Version | Example Dependency | -| --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ | ----------------------------- | -| Creating a new application | Use [v10](https://github.com/box/box-java-sdk/tree/sdk-gen) | `com.box:box-sdkgen:10.0.0` | -| Existing app using [box-java-sdk-gen](https://mvnrepository.com/artifact/com.box/box-java-sdk-gen) artifact | Upgrade to [v10](https://github.com/box/box-java-sdk/tree/sdk-gen) | `com.box:box-sdkgen:10.0.0` | -| Existing app using [box-java-sdk](https://mvnrepository.com/artifact/com.box/box-java-sdk) and planning to use new features | Wait for v5 to start migration process | TBD | -| Existing app using [box-java-sdk](https://mvnrepository.com/artifact/com.box/box-java-sdk) and not planning changes | Stay on your current version | `com.box:box-java-sdk:4.16.4` | - -# Box Java SDK +# Box Java SDK v10 [![Project Status](http://opensource.box.com/badges/active.svg)](http://opensource.box.com/badges) ![build](https://github.com/box/box-java-sdk/actions/workflows/build.yml/badge.svg?branch=sdk-gen) @@ -32,9 +10,35 @@ For full guidance on SDK versioning, see the [Box SDK Versioning Guide](https:// ![Platform](https://img.shields.io/badge/java-%3E%3D8-blue) [![Coverage](https://coveralls.io/repos/github/box/box-java-sdk/badge.svg?branch=sdk-gen)](https://coveralls.io/github/box/box-java-sdk-gen?branch=sdk-gen) -We are excited to introduce the stable Release of the latest generation of Box Java SDK, designed to elevate the developer experience and streamline your integration with the Box Content Cloud. + + -With this SDK, you’ll have access to: +- [Introduction](#introduction) +- [Supported versions](#supported-versions) + - [Version v5](#version-v5) + - [Version v10](#version-v10) + - [Which Version Should I Use?](#which-version-should-i-use) +- [Installing](#installing) +- [Getting Started](#getting-started) +- [Authentication](#authentication) +- [Documentation](#documentation) +- [Migration guides](#migration-guides) +- [Versioning](#versioning) + - [Version schedule](#version-schedule) +- [Contributing](#contributing) +- [3rd Party Libraries & Licenses](#3rd-party-libraries--licenses) +- [FIPS 140-2 Compliance](#fips-140-2-compliance) +- [Questions, Bugs, and Feature Requests?](#questions-bugs-and-feature-requests) +- [Copyright and License](#copyright-and-license) + + + +# Introduction + +We are excited to introduce the v10 major release of the Box Java SDK, +designed to elevate the developer experience and streamline your integration with the Box Content Cloud. + +With this SDK version, we provide the `com.box.sdkgen` package, which gives you access to: 1. Full API Support: The new generation of Box SDKs empowers developers with complete coverage of the Box API ecosystem. You can now access all the latest features and functionalities offered by Box, allowing you to build even more sophisticated and feature-rich applications. 2. Rapid API Updates: Say goodbye to waiting for new Box APIs to be incorporated into the SDK. With our new auto-generation development approach, we can now add new Box APIs to the SDK at a much faster pace (in a matter of days). This means you can leverage the most up-to-date features in your applications without delay. @@ -44,27 +48,44 @@ With this SDK, you’ll have access to: Embrace the new generation of Box SDKs and unlock the full potential of the Box Content Cloud. -# Table of contents +# Supported versions - - +To enhance developer experience, we have introduced the new generated codebase through the `com.box.sdkgen` package. +The `com.box.sdkgen` package is available in two major supported versions: v5 and v10. -- [Box Java SDK](#box-java-sdk) -- [Table of contents](#table-of-contents) -- [Installing](#installing) -- [Getting Started](#getting-started) -- [Documentation](#documentation) -- [Upgrades](#upgrades) -- [Integration Tests](#integration-tests) - - [Running integration tests locally](#running-integration-tests-locally) - - [Create Platform Application](#create-platform-application) - - [Export configuration](#export-configuration) - - [Start integration tests](#start-integration-tests) -- [3rd Party Libraries \& Licenses](#3rd-party-libraries--licenses) -- [Questions, Bugs, and Feature Requests?](#questions-bugs-and-feature-requests) -- [Copyright and License](#copyright-and-license) +## Version v5 - +In v5 of the Box Java SDK, we are introducing a version that consolidates both the manually written package (`com.box.sdk`) +and the new generated package (`com.box.sdkgen`). This allows developers to use both packages simultaneously within a single project. + +The codebase for v5 of the Box Java SDK is currently available on the [combined-sdk](https://github.com/box/box-java-sdk/tree/combined-sdk) branch. +Migration guide which would help with migration from `com.box.sdk` to `com.box.sdkgen` can be found [here](./migration-guides/from-com.box.sdk-to-com.box.sdkgen.md). + +Version v5 is intended for: + +- Existing developers of the Box Java SDK v4 who want to access new API features while keeping their current codebase largely unchanged. +- Existing developers who are in the process of migrating to `com.box.sdkgen`, but do not want to move all their code to the new package immediately. + +## Version v10 + +Starting with v10, the SDK is built entirely on the generated `com.box.sdkgen` package, which fully and exclusively replaces the old `com.box.sdk` package. +The codebase for v10 of the Box Java SDK is currently available on the [sdk-gen](https://github.com/box/box-java-sdk/tree/sdk-gen) branch. + +Version v10 is intended for: + +- New users of the Box Java SDK. +- Developers already working with the generated Box Java SDK previously available under the [Box Java SDK Gen repository](https://github.com/box/box-java-sdk-gen). + +## Which Version Should I Use? + +| Scenario | Recommended Version | Example gradle dependency | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------- | ----------------------------- | +| Creating a new application | Use [v10](https://github.com/box/box-java-sdk/tree/sdk-gen) | `com.box:box-java-sdk:10.0.0` | +| App using [box-java-sdk-gen](https://central.sonatype.com/artifact/com.box/box-java-sdk-gen) artifact | Migrate to [v10](https://github.com/box/box-java-sdk/tree/sdk-gen) | `com.box:box-java-sdk:10.0.0` | +| App using both [box-java-sdk-gen](https://central.sonatype.com/artifact/com.box/box-java-sdk-gen) and [box-java-sdk](https://central.sonatype.com/artifact/com.box/box-java-sdk) artifacts | Upgrade to [v5](https://github.com/box/box-java-sdk/tree/combined-sdk) | `com.box:box-java-sdk:5.0.0` | +| App using v4 of [box-java-sdk](https://central.sonatype.com/artifact/com.box/box-java-sdk) artifact | Upgrade to [v5](https://github.com/box/box-java-sdk/tree/combined-sdk) | `com.box:box-java-sdk:5.0.0` | + +For full guidance on SDK versioning, see the [Box SDK Versioning Guide](https://developer.box.com/guides/tooling/sdks/sdk-versioning/). # Installing @@ -106,48 +127,47 @@ client.folders.getFolderItems("0").getEntries().forEach(item -> { }); ``` -# Documentation +# Authentication -Browse the [docs](docs/README.md) or see [API Reference](https://developer.box.com/reference/) for more information. +Box Java SDK v10 supports multiple authentication methods including Developer Token, OAuth 2.0, +Client Credentials Grant, and JSON Web Token (JWT). -# Upgrades +You can find detailed instructions and example code for each authentication method in +[Authentication](./docs/Authentication.md) document. -The SDK is updated regularly to include new features, enhancements, and bug fixes. If you are upgrading from manual SDK to this new generated SDK checkout the [migration guide](migration-guides/from-v4-to-v10.md) and [changelog](CHANGELOG.md) for more information. +# Documentation -# Integration Tests +Browse the [docs](docs/README.md) or see [API Reference](https://developer.box.com/reference/) for more information. -## Running integration tests locally +# Migration guides -### Create Platform Application +Migration guides which help you to migrate to supported major SDK versions can be found [here](./migration-guides). -To run integration tests locally you will need a `Custom App` created in the [Box Developer -Console](https://app.box.com/developers/console) with `Server Authentication (with JWT)` selected as authentication method. -Once created you can edit properties of the application: +# Versioning -- In section `App Access Level` select `App + Enterprise Access`. You can enable all `Application Scopes`. -- In section `Advanced Features` enable `Make API calls using the as-user header` and `Generate user access tokens`. +We use a modified version of [Semantic Versioning](https://semver.org/) for all changes. See [version strategy](VERSIONS.md) for details which is effective from 30 July 2022. -Now select `Authorization` and submit application to be reviewed by account admin. +A current release is on the leading edge of our SDK development, and is intended for customers who are in active development and want the latest and greatest features. +Instead of stating a release date for a new feature, we set a fixed minor or patch release cadence of maximum 2-3 months (while we may release more often). +At the same time, there is no schedule for major or breaking release. Instead, we will communicate one quarter in advance the upcoming breaking change to allow customers to plan for the upgrade. -### Export configuration +We always recommend that all users run the latest available minor release for whatever major version is in use. +We highly recommend upgrading to the latest SDK major release at the earliest convenient time and before the EOL date. -1. Select `Configuration` tab and in the bottom in the section `App Settings` - download your app configuration settings as JSON. -2. Encode configuration file to Base64, e.g. using command: `base64 -i path_to_json_file` -3. Set environment variable: `JWT_CONFIG_BASE_64` with base64 encoded jwt configuration file -4. Set environment variable: `BOX_FILE_REQUEST_ID` with ID of file request already created in the user account, `BOX_EXTERNAL_USER_EMAIL` with email of free external user which not belongs to any enterprise and `BOX_EXTERNAL_USER_ID` with its ID. -5. Set environment variable: `WORKFLOW_FOLDER_ID` with the ID of the Relay workflow that deletes the file that triggered the workflow. The workflow should have a manual start to be able to start it from the API. -6. Set environment variable: `APP_ITEM_ASSOCIATION_FILE_ID` to the ID of the file with associated app item and `APP_ITEM_ASSOCIATION_FOLDER_ID` to the ID of the folder with associated app item. -7. Set environment variable: `APP_ITEM_SHARED_LINK` to the shared link associated with app item. -8. Set environment variable: `SLACK_AUTOMATION_USER_ID` to the ID of the user responsible for the Slack automation, `SLACK_ORG_ID` to the ID of the Slack organization and `SLACK_PARTNER_ITEM_ID` to the ID of the Slack partner item. +## Version schedule -### Start integration tests +| Version | Supported Environments | State | First Release | EOL/Terminated | +| ------- | ---------------------- | --------- | ------------- | ---------------------- | +| 10 | Java 8 and up | Supported | 17 Sep 2025 | TBD | +| 5 | Java 8 and up | Supported | 23 Oct 2025 | 2027 or v6 is released | +| 4 | Java 8 and up | EOL | 17 Jan 2023 | 23 Oct 2025 | +| 3 | Java 8 and up | EOL | 17 Jan 2022 | 17 Jan 2023 | +| 2 | | EOL | 07 Jan 2016 | 17 Jan 2022 | +| 1 | | EOL | 15 Apr 2015 | 07 Jan 2016 | -To run integration tests locally, you can use the following command: +# Contributing -```console -./gradlew test --stacktrace -``` +See [CONTRIBUTING.md](./CONTRIBUTING.md). # 3rd Party Libraries & Licenses @@ -187,18 +207,95 @@ The following libraries are required for running tests: Maven: `org.junit.jupiter:junit-jupiter-engine:5.10.0` Licence: [EPL 2.0](https://www.eclipse.org/legal/epl-2.0/) +# FIPS 140-2 Compliance + +To generate a Json Web Signature used for retrieving tokens in the JWT authentication method, the Box Java SDK decrypts an encrypted private key. +For this purpose, Box Java SDK uses libraries (`org.bouncycastle:bcpkix-jdk18on:1.82` and `org.bouncycastle:bcprov-jdk18on:1.82`) +that are NOT compatible with FIPS 140-2 validated cryptographic library (`org.bouncycastle:bc-fips`). + +There are two ways of ensuring that decryption operation is FIPS-compiant. + +1. You can provide a custom implementation of the `IPrivateKeyDecryptor` interface, + which performs the decryption operation using FIPS-certified library of your choice. + The interface requires the implementation of just one method: + +```java +PrivateKey decryptPrivateKey(String encryptedPrivateKey, String passphrase); +``` + +After implementing the custom decryptor, you need to set your custom decryptor class: + +```java +JWTConfig newConfig = JWTConfig.fromConfigFile(JWT_CONFIG_PATH, customDecryptor); +BoxJWTAuth auth = new BoxJWTAuth(jwtConfig); +BoxClient client = new BoxClient(auth); +``` + +2. Alternative method is to override the Bouncy Castle libraries to the v.1.57 version, + which are compatible with the FIPS 140-2 validated cryptographic library (`org.bouncycastle:bc-fips`). + +NOTE: This solution is not recommended as Bouncy Castle v.1.57 has some moderate vulnerabilities reported against those versions, including: + +- [CVE-2020-26939](https://github.com/advisories/GHSA-72m5-fvvv-55m6) - Observable Differences in Behavior to Error Inputs in Bouncy Castle +- [CVE-2020-15522](https://github.com/advisories/GHSA-6xx3-rg99-gc3p) - Timing based private key exposure in Bouncy Castle + +Furthermore,using Bouncy Castle v.1.57 may lead to [Bouncycastle BadPaddingException for JWT auth](#bouncycastle-badPaddingException-for-jWT-auth). + +Gradle example + +```groovy +implementation('com.box:box-java-sdk:x.y.z') { + exclude group: 'org.bouncycastle', module: 'bcprov-jdk18on' + exclude group: 'org.bouncycastle', module: 'bcpkix-jdk18on' +} +runtimeOnly('org.bouncycastle:bcprov-jdk15on:1.57') +runtimeOnly('org.bouncycastle:bcpkix-jdk15on:1.57') +``` + +Maven example: + +```xml + + + com.box + box-java-sdk + x.y.z + compile + + + org.bouncycastle + bcprov-jdk18on + + + org.bouncycastle + bcpkix-jdk18on + + + + + org.bouncycastle + bcprov-jdk15on + 1.57 + runtime + + + org.bouncycastle + bcpkix-jdk15on + 1.57 + runtime + + +``` + # Questions, Bugs, and Feature Requests? -Need to contact us directly? [Browse the issues -tickets](https://github.com/box/box-java-sdk/issues)! Or, if that -doesn't work, [file a new -one](https://github.com/box/box-java-sdk/issues/new) and we will get -back to you. If you have general questions about the Box API, you can -post to the [Box Developer Forum](https://forum.box.com/). +Need to contact us directly? [Browse the issues tickets](https://github.com/box/box-java-sdk/issues)! Or, if that +doesn't work, [file a new one](https://github.com/box/box-java-sdk/issues/new), and we will get +back to you. If you have general questions about the Box API, you can post to the [Box Developer Forum](https://community.box.com/box-platform-5). # Copyright and License -Copyright 2023 Box, Inc. All rights reserved. +Copyright 2025 Box, Inc. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. From bafe6f6c28d40d67399fee554e5900976c60fbc8 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 28 Oct 2025 13:29:08 +0100 Subject: [PATCH 048/148] fix: Remove enum types from GET enterprise configurations endpoint (box/box-openapi#560) (#1536) --- .codegen.json | 2 +- ...seConfigurationByIdV2025R0QueryParams.java | 12 +-- .../networking/retries/BoxRetryStrategy.java | 5 +- .../CollaborationRestrictionV2025R0.java | 63 -------------- ...V2025R0CollaborationRestrictionsField.java | 76 ++--------------- ...025R0ExternalCollaborationStatusField.java | 42 +--------- ...nalCollaborationStatusFieldValueField.java | 82 ------------------- 7 files changed, 21 insertions(+), 261 deletions(-) delete mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/collaborationrestrictionv2025r0/CollaborationRestrictionV2025R0.java delete mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField.java diff --git a/.codegen.json b/.codegen.json index c4cade9e8..d4255002a 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "b98d1dc", "specHash": "cf21406", "version": "10.1.0" } +{ "engineHash": "4421f42", "specHash": "1715587", "version": "10.1.0" } diff --git a/src/main/java/com/box/sdkgen/managers/enterpriseconfigurations/GetEnterpriseConfigurationByIdV2025R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/enterpriseconfigurations/GetEnterpriseConfigurationByIdV2025R0QueryParams.java index 32ff3727b..59a2f1600 100644 --- a/src/main/java/com/box/sdkgen/managers/enterpriseconfigurations/GetEnterpriseConfigurationByIdV2025R0QueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/enterpriseconfigurations/GetEnterpriseConfigurationByIdV2025R0QueryParams.java @@ -1,18 +1,20 @@ package com.box.sdkgen.managers.enterpriseconfigurations; +import java.util.List; + public class GetEnterpriseConfigurationByIdV2025R0QueryParams { /** - * The comma-delimited list of the enterprise configuration categories. Allowed values: - * `security`, `content_and_sharing`, `user_settings`, `shield`. + * A comma-separated list of the enterprise configuration categories. Allowed values: `security`, + * `content_and_sharing`, `user_settings`, `shield`. */ - public final String categories; + public final List categories; - public GetEnterpriseConfigurationByIdV2025R0QueryParams(String categories) { + public GetEnterpriseConfigurationByIdV2025R0QueryParams(List categories) { this.categories = categories; } - public String getCategories() { + public List getCategories() { return categories; } } diff --git a/src/main/java/com/box/sdkgen/networking/retries/BoxRetryStrategy.java b/src/main/java/com/box/sdkgen/networking/retries/BoxRetryStrategy.java index 6c2891681..dcba2d307 100644 --- a/src/main/java/com/box/sdkgen/networking/retries/BoxRetryStrategy.java +++ b/src/main/java/com/box/sdkgen/networking/retries/BoxRetryStrategy.java @@ -36,7 +36,10 @@ public boolean shouldRetry( return attemptNumber <= this.maxRetriesOnException; } boolean isSuccessful = fetchResponse.getStatus() >= 200 && fetchResponse.getStatus() < 400; - String retryAfterHeader = fetchResponse.getHeaders().get("Retry-After"); + String retryAfterHeader = + (fetchResponse.getHeaders().containsKey("Retry-After") + ? fetchResponse.getHeaders().get("Retry-After") + : null); boolean isAcceptedWithRetryAfter = fetchResponse.getStatus() == 202 && !(retryAfterHeader == null); if (attemptNumber >= this.maxAttempts) { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/collaborationrestrictionv2025r0/CollaborationRestrictionV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/collaborationrestrictionv2025r0/CollaborationRestrictionV2025R0.java deleted file mode 100644 index 779ba985d..000000000 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/collaborationrestrictionv2025r0/CollaborationRestrictionV2025R0.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.box.sdkgen.schemas.v2025r0.collaborationrestrictionv2025r0; - -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.box.sdkgen.serialization.json.Valuable; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; -import java.io.IOException; -import java.util.Arrays; - -public enum CollaborationRestrictionV2025R0 implements Valuable { - INTERNAL("internal"), - EXTERNAL("external"); - - private final String value; - - CollaborationRestrictionV2025R0(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - public static class CollaborationRestrictionV2025R0Deserializer - extends JsonDeserializer> { - - public CollaborationRestrictionV2025R0Deserializer() { - super(); - } - - @Override - public EnumWrapper deserialize( - JsonParser p, DeserializationContext ctxt) throws IOException { - String value = p.getValueAsString(); - return Arrays.stream(CollaborationRestrictionV2025R0.values()) - .filter((v) -> v.getValue().equalsIgnoreCase(value)) - .findFirst() - .map(EnumWrapper::new) - .orElse(new EnumWrapper(value)); - } - } - - public static class CollaborationRestrictionV2025R0Serializer - extends JsonSerializer> { - - public CollaborationRestrictionV2025R0Serializer() { - super(); - } - - @Override - public void serialize( - EnumWrapper value, - JsonGenerator gen, - SerializerProvider serializers) - throws IOException { - gen.writeString(value.getStringValue()); - } - } -} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0CollaborationRestrictionsField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0CollaborationRestrictionsField.java index 60211ac36..ddd9f9733 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0CollaborationRestrictionsField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0CollaborationRestrictionsField.java @@ -1,21 +1,7 @@ package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationcontentandsharingv2025r0; -import com.box.sdkgen.schemas.v2025r0.collaborationrestrictionv2025r0.CollaborationRestrictionV2025R0; import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemv2025r0.EnterpriseConfigurationItemV2025R0; -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.box.sdkgen.serialization.json.Valuable; import com.fasterxml.jackson.annotation.JsonFilter; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.io.IOException; -import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -23,9 +9,7 @@ public class EnterpriseConfigurationContentAndSharingV2025R0CollaborationRestrictionsField extends EnterpriseConfigurationItemV2025R0 { - @JsonDeserialize(using = ValueDeserializer.class) - @JsonSerialize(using = ValueSerializer.class) - protected List> value; + protected List value; public EnterpriseConfigurationContentAndSharingV2025R0CollaborationRestrictionsField() { super(); @@ -38,7 +22,7 @@ protected EnterpriseConfigurationContentAndSharingV2025R0CollaborationRestrictio markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } - public List> getValue() { + public List getValue() { return value; } @@ -75,10 +59,10 @@ public String toString() { public static class Builder extends EnterpriseConfigurationItemV2025R0.Builder { - protected List> value; + protected List value; - public Builder value(List value) { - this.value = EnumWrapper.wrapValuableEnumList(value, CollaborationRestrictionV2025R0.class); + public Builder value(List value) { + this.value = value; return this; } @@ -93,54 +77,4 @@ public EnterpriseConfigurationContentAndSharingV2025R0CollaborationRestrictionsF this); } } - - public static class ValueDeserializer - extends JsonDeserializer>> { - - public final JsonDeserializer> elementDeserializer; - - public ValueDeserializer() { - super(); - this.elementDeserializer = - new CollaborationRestrictionV2025R0.CollaborationRestrictionV2025R0Deserializer(); - } - - @Override - public List> deserialize( - JsonParser p, DeserializationContext ctxt) throws IOException { - JsonNode node = p.getCodec().readTree(p); - List> elements = new ArrayList<>(); - for (JsonNode item : node) { - JsonParser pa = item.traverse(p.getCodec()); - pa.nextToken(); - elements.add(elementDeserializer.deserialize(pa, ctxt)); - } - return elements; - } - } - - public static class ValueSerializer - extends JsonSerializer>> { - - public final JsonSerializer> elementSerializer; - - public ValueSerializer() { - super(); - this.elementSerializer = - new CollaborationRestrictionV2025R0.CollaborationRestrictionV2025R0Serializer(); - } - - @Override - public void serialize( - List> value, - JsonGenerator gen, - SerializerProvider serializers) - throws IOException { - gen.writeStartArray(); - for (EnumWrapper item : value) { - elementSerializer.serialize(item, gen, serializers); - } - gen.writeEndArray(); - } - } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusField.java index 57b84288a..d04cee9be 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusField.java @@ -2,10 +2,7 @@ import com.box.sdkgen.internal.Nullable; import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationitemv2025r0.EnterpriseConfigurationItemV2025R0; -import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; @JsonFilter("nullablePropertyFilter") @@ -13,20 +10,7 @@ public class EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaboratio extends EnterpriseConfigurationItemV2025R0 { /** The external collaboration status. */ - @JsonDeserialize( - using = - EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField - .EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueFieldDeserializer - .class) - @JsonSerialize( - using = - EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField - .EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueFieldSerializer - .class) - @Nullable - protected EnumWrapper< - EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField> - value; + @Nullable protected String value; public EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusField() { super(); @@ -39,9 +23,7 @@ protected EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationSt markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } - public EnumWrapper< - EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField> - getValue() { + public String getValue() { return value; } @@ -78,25 +60,9 @@ public String toString() { public static class Builder extends EnterpriseConfigurationItemV2025R0.Builder { - protected EnumWrapper< - EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField> - value; + protected String value; - public Builder value( - EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField - value) { - this.value = - new EnumWrapper< - EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField>( - value); - this.markNullableFieldAsSet("value"); - return this; - } - - public Builder value( - EnumWrapper< - EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField> - value) { + public Builder value(String value) { this.value = value; this.markNullableFieldAsSet("value"); return this; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField.java deleted file mode 100644 index ca9ed781f..000000000 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationcontentandsharingv2025r0/EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationcontentandsharingv2025r0; - -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.box.sdkgen.serialization.json.Valuable; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; -import java.io.IOException; -import java.util.Arrays; - -public enum - EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField - implements Valuable { - ENABLE_EXTERNAL_COLLABORATION("enable_external_collaboration"), - LIMIT_COLLABORATION_TO_ALLOWLISTED_DOMAINS("limit_collaboration_to_allowlisted_domains"); - - private final String value; - - EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField( - String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - public static - class EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueFieldDeserializer - extends JsonDeserializer< - EnumWrapper< - EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField>> { - - public - EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueFieldDeserializer() { - super(); - } - - @Override - public EnumWrapper< - EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField> - deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { - String value = p.getValueAsString(); - return Arrays.stream( - EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField - .values()) - .filter((v) -> v.getValue().equalsIgnoreCase(value)) - .findFirst() - .map(EnumWrapper::new) - .orElse( - new EnumWrapper< - EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField>( - value)); - } - } - - public static - class EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueFieldSerializer - extends JsonSerializer< - EnumWrapper< - EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField>> { - - public - EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueFieldSerializer() { - super(); - } - - @Override - public void serialize( - EnumWrapper< - EnterpriseConfigurationContentAndSharingV2025R0ExternalCollaborationStatusFieldValueField> - value, - JsonGenerator gen, - SerializerProvider serializers) - throws IOException { - gen.writeString(value.getStringValue()); - } - } -} From c2bd137e469b9e67a14a33bb073107ff5db44175 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 29 Oct 2025 11:57:31 +0100 Subject: [PATCH 049/148] feat: Disable OkHttp auto retries on connection failure (box/box-codegen#874) (#1541) * chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] * feat: Disable OkHttp auto retries on connection failure (box/box-codegen#874) --- .codegen.json | 2 +- .../boxnetworkclient/BoxNetworkClient.java | 15 +++++++++------ .../DefaultNetworkClient.java | 15 +++++++++------ 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/.codegen.json b/.codegen.json index d4255002a..641b48c35 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "4421f42", "specHash": "1715587", "version": "10.1.0" } +{ "engineHash": "e6b1577", "specHash": "1715587", "version": "10.1.0" } diff --git a/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java b/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java index 261b24b4d..5f8d18851 100644 --- a/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java +++ b/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java @@ -60,12 +60,7 @@ public BoxNetworkClient(OkHttpClient httpClient) { } public BoxNetworkClient() { - OkHttpClient.Builder builder = - new OkHttpClient.Builder() - .followSslRedirects(true) - .followRedirects(false) - .connectionSpecs(singletonList(MODERN_TLS)); - httpClient = builder.build(); + httpClient = getDefaultOkHttpClientBuilder().build(); } public OkHttpClient getHttpClient() { @@ -390,4 +385,12 @@ public void writeTo(BufferedSink sink) throws IOException { } }; } + + public static OkHttpClient.Builder getDefaultOkHttpClientBuilder() { + return new OkHttpClient.Builder() + .followSslRedirects(true) + .followRedirects(false) + .connectionSpecs(singletonList(MODERN_TLS)) + .retryOnConnectionFailure(false); + } } diff --git a/src/main/java/com/box/sdkgen/networking/defaultnetworkclient/DefaultNetworkClient.java b/src/main/java/com/box/sdkgen/networking/defaultnetworkclient/DefaultNetworkClient.java index e22be2d7a..28ea71f70 100644 --- a/src/main/java/com/box/sdkgen/networking/defaultnetworkclient/DefaultNetworkClient.java +++ b/src/main/java/com/box/sdkgen/networking/defaultnetworkclient/DefaultNetworkClient.java @@ -42,12 +42,7 @@ public DefaultNetworkClient(OkHttpClient httpClient) { } public DefaultNetworkClient() { - OkHttpClient.Builder builder = - new OkHttpClient.Builder() - .followSslRedirects(true) - .followRedirects(false) - .connectionSpecs(singletonList(MODERN_TLS)); - httpClient = builder.build(); + httpClient = getDefaultOkHttpClientBuilder().build(); } public FetchResponse fetch(FetchOptions options) { @@ -283,6 +278,14 @@ public void writeTo(BufferedSink sink) throws IOException { }; } + public static OkHttpClient.Builder getDefaultOkHttpClientBuilder() { + return new OkHttpClient.Builder() + .followSslRedirects(true) + .followRedirects(false) + .connectionSpecs(singletonList(MODERN_TLS)) + .retryOnConnectionFailure(false); + } + private static void throwOnUnsuccessfulResponse( Request request, FetchResponse fetchResponse, Exception exceptionThrown) { if (fetchResponse == null) { From 6af720aff58ece23eb75d1525b277718061a402c Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Fri, 31 Oct 2025 15:42:08 +0100 Subject: [PATCH 050/148] test: add tests for `enterpriseConfigurations` manager (box/box-codegen#875) (#1545) * chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] * test: add tests for `enterpriseConfigurations` manager (box/box-codegen#875) --- .codegen.json | 2 +- docs/enterpriseconfigurations.md | 5 +- .../EnterpriseConfigurationsITest.java | 47 +++++++++++++++++++ 3 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 src/test/java/com/box/sdkgen/enterpriseconfigurations/EnterpriseConfigurationsITest.java diff --git a/.codegen.json b/.codegen.json index 641b48c35..9a51e4a02 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "e6b1577", "specHash": "1715587", "version": "10.1.0" } +{ "engineHash": "8cdcb1b", "specHash": "1715587", "version": "10.1.0" } diff --git a/docs/enterpriseconfigurations.md b/docs/enterpriseconfigurations.md index 668633c95..5ee3c5740 100644 --- a/docs/enterpriseconfigurations.md +++ b/docs/enterpriseconfigurations.md @@ -12,7 +12,10 @@ This operation is performed by calling function `getEnterpriseConfigurationByIdV See the endpoint docs at [API Reference](https://developer.box.com/reference/v2025.0/get-enterprise-configurations-id/). -*Currently we don't have an example for calling `getEnterpriseConfigurationByIdV2025R0` in integration tests* + +``` +adminClient.getEnterpriseConfigurations().getEnterpriseConfigurationByIdV2025R0(enterpriseId, new GetEnterpriseConfigurationByIdV2025R0QueryParams(Arrays.asList("user_settings", "content_and_sharing", "security", "shield"))) +``` ### Arguments diff --git a/src/test/java/com/box/sdkgen/enterpriseconfigurations/EnterpriseConfigurationsITest.java b/src/test/java/com/box/sdkgen/enterpriseconfigurations/EnterpriseConfigurationsITest.java new file mode 100644 index 000000000..3352cf0f6 --- /dev/null +++ b/src/test/java/com/box/sdkgen/enterpriseconfigurations/EnterpriseConfigurationsITest.java @@ -0,0 +1,47 @@ +package com.box.sdkgen.enterpriseconfigurations; + +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.enterpriseconfigurations.GetEnterpriseConfigurationByIdV2025R0QueryParams; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationcontentandsharingv2025r0.EnterpriseConfigurationContentAndSharingV2025R0; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationsecurityv2025r0.EnterpriseConfigurationSecurityV2025R0; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationshieldv2025r0.EnterpriseConfigurationShieldV2025R0; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationusersettingsv2025r0.EnterpriseConfigurationUserSettingsV2025R0; +import com.box.sdkgen.schemas.v2025r0.enterpriseconfigurationv2025r0.EnterpriseConfigurationV2025R0; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class EnterpriseConfigurationsITest { + + private static final BoxClient adminClient = + getDefaultClientWithUserSubject(getEnvVar("USER_ID")); + + @Test + public void testGetEnterpriseConfigurationById() { + String enterpriseId = getEnvVar("ENTERPRISE_ID"); + EnterpriseConfigurationV2025R0 enterpriseConfiguration = + adminClient + .getEnterpriseConfigurations() + .getEnterpriseConfigurationByIdV2025R0( + enterpriseId, + new GetEnterpriseConfigurationByIdV2025R0QueryParams( + Arrays.asList("user_settings", "content_and_sharing", "security", "shield"))); + assert convertToString(enterpriseConfiguration.getType()).equals("enterprise_configuration"); + EnterpriseConfigurationUserSettingsV2025R0 userSettings = + enterpriseConfiguration.getUserSettings(); + assert userSettings.getIsEnterpriseSsoRequired().getValue() == false; + assert userSettings.getNewUserDefaultLanguage().getValue().equals("English (US)"); + assert userSettings.getNewUserDefaultStorageLimit().getValue() == -1; + EnterpriseConfigurationContentAndSharingV2025R0 contentAndSharing = + enterpriseConfiguration.getContentAndSharing(); + assert contentAndSharing.getCollaborationPermissions().getValue().getIsEditorRoleEnabled() + == true; + EnterpriseConfigurationSecurityV2025R0 security = enterpriseConfiguration.getSecurity(); + assert security.getIsManagedUserSignupEnabled().getValue() == false; + EnterpriseConfigurationShieldV2025R0 shield = enterpriseConfiguration.getShield(); + assert shield.getShieldRules().size() == 0; + } +} From 590ee9964a1cd109ea7f5cca4182cadc10fef21f Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Thu, 6 Nov 2025 10:54:56 +0100 Subject: [PATCH 051/148] fix: update descriptions of the user deletion endpoint (box/box-openapi#562) (#1549) --- .codegen.json | 2 +- docs/users.md | 6 +++--- .../users/DeleteUserByIdQueryParams.java | 5 ++++- .../sdkgen/managers/users/UsersManager.java | 20 +++++++++++-------- 4 files changed, 20 insertions(+), 13 deletions(-) diff --git a/.codegen.json b/.codegen.json index 9a51e4a02..096af7e47 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "8cdcb1b", "specHash": "1715587", "version": "10.1.0" } +{ "engineHash": "7c94f4f", "specHash": "a646ae6", "version": "10.1.0" } diff --git a/docs/users.md b/docs/users.md index 43d35d544..ce02fe99b 100644 --- a/docs/users.md +++ b/docs/users.md @@ -196,9 +196,9 @@ Returns the updated user object. ## Delete user -Deletes a user. By default this will fail if the user -still owns any content. Move their owned content first -before proceeding, or use the `force` field to delete +Deletes a user. By default, this operation fails if the user +still owns any content, was recently active, or recently joined the enterprise from a free account. +To proceed, move their owned content first, or use the `force` parameter to delete the user and their files. This operation is performed by calling function `deleteUserById`. diff --git a/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdQueryParams.java index dd230c082..995af75ed 100644 --- a/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdQueryParams.java @@ -5,7 +5,10 @@ public class DeleteUserByIdQueryParams { /** Whether the user will receive email notification of the deletion. */ public Boolean notify; - /** Whether the user should be deleted even if this user still own files. */ + /** + * Specifies whether to delete the user even if they still own files, were recently active, or + * recently joined the enterprise from a free account. + */ public Boolean force; public DeleteUserByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/users/UsersManager.java b/src/main/java/com/box/sdkgen/managers/users/UsersManager.java index 83e9c5892..0abd97e67 100644 --- a/src/main/java/com/box/sdkgen/managers/users/UsersManager.java +++ b/src/main/java/com/box/sdkgen/managers/users/UsersManager.java @@ -477,8 +477,9 @@ public UserFull updateUserById( } /** - * Deletes a user. By default this will fail if the user still owns any content. Move their owned - * content first before proceeding, or use the `force` field to delete the user and their files. + * Deletes a user. By default, this operation fails if the user still owns any content, was + * recently active, or recently joined the enterprise from a free account. To proceed, move their + * owned content first, or use the `force` parameter to delete the user and their files. * * @param userId The ID of the user. Example: "12345" */ @@ -487,8 +488,9 @@ public void deleteUserById(String userId) { } /** - * Deletes a user. By default this will fail if the user still owns any content. Move their owned - * content first before proceeding, or use the `force` field to delete the user and their files. + * Deletes a user. By default, this operation fails if the user still owns any content, was + * recently active, or recently joined the enterprise from a free account. To proceed, move their + * owned content first, or use the `force` parameter to delete the user and their files. * * @param userId The ID of the user. Example: "12345" * @param queryParams Query parameters of deleteUserById method @@ -498,8 +500,9 @@ public void deleteUserById(String userId, DeleteUserByIdQueryParams queryParams) } /** - * Deletes a user. By default this will fail if the user still owns any content. Move their owned - * content first before proceeding, or use the `force` field to delete the user and their files. + * Deletes a user. By default, this operation fails if the user still owns any content, was + * recently active, or recently joined the enterprise from a free account. To proceed, move their + * owned content first, or use the `force` parameter to delete the user and their files. * * @param userId The ID of the user. Example: "12345" * @param headers Headers of deleteUserById method @@ -509,8 +512,9 @@ public void deleteUserById(String userId, DeleteUserByIdHeaders headers) { } /** - * Deletes a user. By default this will fail if the user still owns any content. Move their owned - * content first before proceeding, or use the `force` field to delete the user and their files. + * Deletes a user. By default, this operation fails if the user still owns any content, was + * recently active, or recently joined the enterprise from a free account. To proceed, move their + * owned content first, or use the `force` parameter to delete the user and their files. * * @param userId The ID of the user. Example: "12345" * @param queryParams Query parameters of deleteUserById method From 609e8bb5eb7143281543dcfaada23f2649acae9d Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Thu, 6 Nov 2025 17:46:08 +0100 Subject: [PATCH 052/148] feat: support update Archive API (box/box-openapi#563) (#1553) --- .codegen.json | 2 +- docs/archives.md | 31 +++++++ .../managers/archives/ArchivesManager.java | 79 +++++++++++++++++ .../CreateArchiveV2025R0RequestBody.java | 72 +++++++++++++++- .../UpdateArchiveByIdV2025R0Headers.java | 65 ++++++++++++++ .../UpdateArchiveByIdV2025R0RequestBody.java | 86 +++++++++++++++++++ .../archivev2025r0/ArchiveV2025R0.java | 49 ++++++++++- .../ArchiveV2025R0OwnedByField.java | 53 ++++++++++++ .../HubItemReferenceV2025R0.java | 2 +- .../WeblinkReferenceV2025R0.java | 7 +- .../WeblinkReferenceV2025R0TypeField.java | 2 +- 11 files changed, 436 insertions(+), 12 deletions(-) create mode 100644 src/main/java/com/box/sdkgen/managers/archives/UpdateArchiveByIdV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/archives/UpdateArchiveByIdV2025R0RequestBody.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0OwnedByField.java diff --git a/.codegen.json b/.codegen.json index 096af7e47..9a278c689 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "7c94f4f", "specHash": "a646ae6", "version": "10.1.0" } +{ "engineHash": "7c94f4f", "specHash": "8b51a89", "version": "10.1.0" } diff --git a/docs/archives.md b/docs/archives.md index 173edd0c6..b45266dff 100644 --- a/docs/archives.md +++ b/docs/archives.md @@ -4,6 +4,7 @@ - [List archives](#list-archives) - [Create archive](#create-archive) - [Delete archive](#delete-archive) +- [Update archive](#update-archive) ## List archives @@ -98,3 +99,33 @@ This function returns a value of type `void`. Returns an empty response when the archive has been deleted. +## Update archive + +Updates an archive. + +To learn more about the archive APIs, see the [Archive API Guide](g://archives). + +This operation is performed by calling function `updateArchiveByIdV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/put-archives-id/). + +*Currently we don't have an example for calling `updateArchiveByIdV2025R0` in integration tests* + +### Arguments + +- archiveId `String` + - The ID of the archive. Example: "982312" +- requestBody `UpdateArchiveByIdV2025R0RequestBody` + - Request body of updateArchiveByIdV2025R0 method +- headers `UpdateArchiveByIdV2025R0Headers` + - Headers of updateArchiveByIdV2025R0 method + + +### Returns + +This function returns a value of type `ArchiveV2025R0`. + +Returns the updated archive object. + + diff --git a/src/main/java/com/box/sdkgen/managers/archives/ArchivesManager.java b/src/main/java/com/box/sdkgen/managers/archives/ArchivesManager.java index 79d871eb1..608fd42c2 100644 --- a/src/main/java/com/box/sdkgen/managers/archives/ArchivesManager.java +++ b/src/main/java/com/box/sdkgen/managers/archives/ArchivesManager.java @@ -186,6 +186,85 @@ public void deleteArchiveByIdV2025R0(String archiveId, DeleteArchiveByIdV2025R0H .build()); } + /** + * Updates an archive. + * + *

    To learn more about the archive APIs, see the [Archive API Guide](g://archives). + * + * @param archiveId The ID of the archive. Example: "982312" + */ + public ArchiveV2025R0 updateArchiveByIdV2025R0(String archiveId) { + return updateArchiveByIdV2025R0( + archiveId, + new UpdateArchiveByIdV2025R0RequestBody(), + new UpdateArchiveByIdV2025R0Headers()); + } + + /** + * Updates an archive. + * + *

    To learn more about the archive APIs, see the [Archive API Guide](g://archives). + * + * @param archiveId The ID of the archive. Example: "982312" + * @param requestBody Request body of updateArchiveByIdV2025R0 method + */ + public ArchiveV2025R0 updateArchiveByIdV2025R0( + String archiveId, UpdateArchiveByIdV2025R0RequestBody requestBody) { + return updateArchiveByIdV2025R0(archiveId, requestBody, new UpdateArchiveByIdV2025R0Headers()); + } + + /** + * Updates an archive. + * + *

    To learn more about the archive APIs, see the [Archive API Guide](g://archives). + * + * @param archiveId The ID of the archive. Example: "982312" + * @param headers Headers of updateArchiveByIdV2025R0 method + */ + public ArchiveV2025R0 updateArchiveByIdV2025R0( + String archiveId, UpdateArchiveByIdV2025R0Headers headers) { + return updateArchiveByIdV2025R0(archiveId, new UpdateArchiveByIdV2025R0RequestBody(), headers); + } + + /** + * Updates an archive. + * + *

    To learn more about the archive APIs, see the [Archive API Guide](g://archives). + * + * @param archiveId The ID of the archive. Example: "982312" + * @param requestBody Request body of updateArchiveByIdV2025R0 method + * @param headers Headers of updateArchiveByIdV2025R0 method + */ + public ArchiveV2025R0 updateArchiveByIdV2025R0( + String archiveId, + UpdateArchiveByIdV2025R0RequestBody requestBody, + UpdateArchiveByIdV2025R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/archives/", + convertToString(archiveId)), + "PUT") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), ArchiveV2025R0.class); + } + public Authentication getAuth() { return auth; } diff --git a/src/main/java/com/box/sdkgen/managers/archives/CreateArchiveV2025R0RequestBody.java b/src/main/java/com/box/sdkgen/managers/archives/CreateArchiveV2025R0RequestBody.java index dd0a536ad..c50b88e1c 100644 --- a/src/main/java/com/box/sdkgen/managers/archives/CreateArchiveV2025R0RequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/archives/CreateArchiveV2025R0RequestBody.java @@ -1,5 +1,6 @@ package com.box.sdkgen.managers.archives; +import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; @@ -11,15 +12,38 @@ public class CreateArchiveV2025R0RequestBody extends SerializableObject { /** The name of the archive. */ protected final String name; + /** The description of the archive. */ + protected String description; + + /** The ID of the storage policy that the archive is assigned to. */ + @JsonProperty("storage_policy_id") + protected String storagePolicyId; + public CreateArchiveV2025R0RequestBody(@JsonProperty("name") String name) { super(); this.name = name; } + protected CreateArchiveV2025R0RequestBody(Builder builder) { + super(); + this.name = builder.name; + this.description = builder.description; + this.storagePolicyId = builder.storagePolicyId; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + public String getName() { return name; } + public String getDescription() { + return description; + } + + public String getStoragePolicyId() { + return storagePolicyId; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -29,16 +53,58 @@ public boolean equals(Object o) { return false; } CreateArchiveV2025R0RequestBody casted = (CreateArchiveV2025R0RequestBody) o; - return Objects.equals(name, casted.name); + return Objects.equals(name, casted.name) + && Objects.equals(description, casted.description) + && Objects.equals(storagePolicyId, casted.storagePolicyId); } @Override public int hashCode() { - return Objects.hash(name); + return Objects.hash(name, description, storagePolicyId); } @Override public String toString() { - return "CreateArchiveV2025R0RequestBody{" + "name='" + name + '\'' + "}"; + return "CreateArchiveV2025R0RequestBody{" + + "name='" + + name + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "storagePolicyId='" + + storagePolicyId + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String name; + + protected String description; + + protected String storagePolicyId; + + public Builder(String name) { + super(); + this.name = name; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder storagePolicyId(String storagePolicyId) { + this.storagePolicyId = storagePolicyId; + return this; + } + + public CreateArchiveV2025R0RequestBody build() { + return new CreateArchiveV2025R0RequestBody(this); + } } } diff --git a/src/main/java/com/box/sdkgen/managers/archives/UpdateArchiveByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/archives/UpdateArchiveByIdV2025R0Headers.java new file mode 100644 index 000000000..ca601dda6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/archives/UpdateArchiveByIdV2025R0Headers.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.managers.archives; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class UpdateArchiveByIdV2025R0Headers { + + /** Version header. */ + public EnumWrapper boxVersion; + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public UpdateArchiveByIdV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected UpdateArchiveByIdV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateArchiveByIdV2025R0Headers build() { + return new UpdateArchiveByIdV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/archives/UpdateArchiveByIdV2025R0RequestBody.java b/src/main/java/com/box/sdkgen/managers/archives/UpdateArchiveByIdV2025R0RequestBody.java new file mode 100644 index 000000000..7000e70b8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/archives/UpdateArchiveByIdV2025R0RequestBody.java @@ -0,0 +1,86 @@ +package com.box.sdkgen.managers.archives; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateArchiveByIdV2025R0RequestBody extends SerializableObject { + + /** The name of the archive. */ + protected String name; + + /** The description of the archive. */ + protected String description; + + public UpdateArchiveByIdV2025R0RequestBody() { + super(); + } + + protected UpdateArchiveByIdV2025R0RequestBody(Builder builder) { + super(); + this.name = builder.name; + this.description = builder.description; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateArchiveByIdV2025R0RequestBody casted = (UpdateArchiveByIdV2025R0RequestBody) o; + return Objects.equals(name, casted.name) && Objects.equals(description, casted.description); + } + + @Override + public int hashCode() { + return Objects.hash(name, description); + } + + @Override + public String toString() { + return "UpdateArchiveByIdV2025R0RequestBody{" + + "name='" + + name + + '\'' + + ", " + + "description='" + + description + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String name; + + protected String description; + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public UpdateArchiveByIdV2025R0RequestBody build() { + return new UpdateArchiveByIdV2025R0RequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0.java index 95b25762b..3434d3528 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0.java @@ -1,5 +1,6 @@ package com.box.sdkgen.schemas.v2025r0.archivev2025r0; +import com.box.sdkgen.internal.Nullable; import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; import com.box.sdkgen.serialization.json.EnumWrapper; @@ -20,7 +21,7 @@ public class ArchiveV2025R0 extends SerializableObject { /** The unique identifier that represents an archive. */ protected final String id; - /** The value will always be `archive`. */ + /** The value is always `archive`. */ @JsonDeserialize(using = ArchiveV2025R0TypeField.ArchiveV2025R0TypeFieldDeserializer.class) @JsonSerialize(using = ArchiveV2025R0TypeField.ArchiveV2025R0TypeFieldSerializer.class) protected EnumWrapper type; @@ -37,6 +38,13 @@ public class ArchiveV2025R0 extends SerializableObject { /** The size of the archive in bytes. */ protected final long size; + /** The description of the archive. */ + @Nullable protected String description; + + /** The part of an archive API response that describes the user who owns the archive. */ + @JsonProperty("owned_by") + protected ArchiveV2025R0OwnedByField ownedBy; + public ArchiveV2025R0( @JsonProperty("id") String id, @JsonProperty("name") String name, @@ -54,6 +62,8 @@ protected ArchiveV2025R0(Builder builder) { this.type = builder.type; this.name = builder.name; this.size = builder.size; + this.description = builder.description; + this.ownedBy = builder.ownedBy; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -73,6 +83,14 @@ public long getSize() { return size; } + public String getDescription() { + return description; + } + + public ArchiveV2025R0OwnedByField getOwnedBy() { + return ownedBy; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -85,12 +103,14 @@ public boolean equals(Object o) { return Objects.equals(id, casted.id) && Objects.equals(type, casted.type) && Objects.equals(name, casted.name) - && Objects.equals(size, casted.size); + && Objects.equals(size, casted.size) + && Objects.equals(description, casted.description) + && Objects.equals(ownedBy, casted.ownedBy); } @Override public int hashCode() { - return Objects.hash(id, type, name, size); + return Objects.hash(id, type, name, size, description, ownedBy); } @Override @@ -111,6 +131,14 @@ public String toString() { + "size='" + size + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "ownedBy='" + + ownedBy + + '\'' + "}"; } @@ -124,6 +152,10 @@ public static class Builder extends NullableFieldTracker { protected final long size; + protected String description; + + protected ArchiveV2025R0OwnedByField ownedBy; + public Builder(String id, String name, long size) { super(); this.id = id; @@ -142,6 +174,17 @@ public Builder type(EnumWrapper type) { return this; } + public Builder description(String description) { + this.description = description; + this.markNullableFieldAsSet("description"); + return this; + } + + public Builder ownedBy(ArchiveV2025R0OwnedByField ownedBy) { + this.ownedBy = ownedBy; + return this; + } + public ArchiveV2025R0 build() { return new ArchiveV2025R0(this); } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0OwnedByField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0OwnedByField.java new file mode 100644 index 000000000..bf92fc1dc --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0OwnedByField.java @@ -0,0 +1,53 @@ +package com.box.sdkgen.schemas.v2025r0.archivev2025r0; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class ArchiveV2025R0OwnedByField extends SerializableObject { + + /** The unique identifier that represents a user who owns the archive. */ + protected final String id; + + /** The value is always `user`. */ + protected final String type; + + public ArchiveV2025R0OwnedByField( + @JsonProperty("id") String id, @JsonProperty("type") String type) { + super(); + this.id = id; + this.type = type; + } + + public String getId() { + return id; + } + + public String getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ArchiveV2025R0OwnedByField casted = (ArchiveV2025R0OwnedByField) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "ArchiveV2025R0OwnedByField{" + "id='" + id + '\'' + ", " + "type='" + type + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemreferencev2025r0/HubItemReferenceV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemreferencev2025r0/HubItemReferenceV2025R0.java index 76e08d187..dedb7c6cf 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemreferencev2025r0/HubItemReferenceV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemreferencev2025r0/HubItemReferenceV2025R0.java @@ -94,7 +94,7 @@ public HubItemReferenceV2025R0 deserialize(JsonParser jp, DeserializationContext case "folder": return new HubItemReferenceV2025R0( JsonManager.deserialize(node, FolderReferenceV2025R0.class)); - case "weblink": + case "web_link": return new HubItemReferenceV2025R0( JsonManager.deserialize(node, WeblinkReferenceV2025R0.class)); } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0.java index 6da150ef2..56913119e 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0.java @@ -13,7 +13,7 @@ @JsonFilter("nullablePropertyFilter") public class WeblinkReferenceV2025R0 extends SerializableObject { - /** The value will always be `weblink`. */ + /** The value will always be `web_link`. */ @JsonDeserialize( using = WeblinkReferenceV2025R0TypeField.WeblinkReferenceV2025R0TypeFieldDeserializer.class) @JsonSerialize( @@ -27,7 +27,8 @@ public WeblinkReferenceV2025R0(@JsonProperty("id") String id) { super(); this.id = id; this.type = - new EnumWrapper(WeblinkReferenceV2025R0TypeField.WEBLINK); + new EnumWrapper( + WeblinkReferenceV2025R0TypeField.WEB_LINK); } protected WeblinkReferenceV2025R0(Builder builder) { @@ -78,7 +79,7 @@ public Builder(String id) { this.id = id; this.type = new EnumWrapper( - WeblinkReferenceV2025R0TypeField.WEBLINK); + WeblinkReferenceV2025R0TypeField.WEB_LINK); } public Builder type(WeblinkReferenceV2025R0TypeField type) { diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0TypeField.java index d5670fce6..f2b8a56a0 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0TypeField.java @@ -12,7 +12,7 @@ import java.util.Arrays; public enum WeblinkReferenceV2025R0TypeField implements Valuable { - WEBLINK("weblink"); + WEB_LINK("web_link"); private final String value; From 7406c3254a216b6f4cea6e29497e0e941d5d9a8e Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Thu, 6 Nov 2025 17:49:54 +0100 Subject: [PATCH 053/148] chore: Rename Github spell check job (box/box-codegen#881) (#1556) Co-authored-by: Minh Nguyen Cong --- .github/workflows/spell-check-lint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check-lint.yml b/.github/workflows/spell-check-lint.yml index 6bcfc58e4..8a4ebb0ed 100644 --- a/.github/workflows/spell-check-lint.yml +++ b/.github/workflows/spell-check-lint.yml @@ -5,7 +5,7 @@ on: branches: - sdk-gen jobs: - spellcheck-request: + spellcheck-request-title: runs-on: ubuntu-latest steps: - name: Checkout current repository From 8080f9e487a9f014f663eb071af720be4b6990be Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 12 Nov 2025 17:33:54 +0100 Subject: [PATCH 054/148] test: Add tests for updating the archive (box/box-codegen#865) (#1567) --- .codegen.json | 2 +- docs/archives.md | 7 ++++-- .../box/sdkgen/archives/ArchivesITest.java | 23 ++++++++++++++++++- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/.codegen.json b/.codegen.json index 9a278c689..934f9a77b 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "7c94f4f", "specHash": "8b51a89", "version": "10.1.0" } +{ "engineHash": "87a3288", "specHash": "8b51a89", "version": "10.1.0" } diff --git a/docs/archives.md b/docs/archives.md index b45266dff..2c66ac00f 100644 --- a/docs/archives.md +++ b/docs/archives.md @@ -50,7 +50,7 @@ See the endpoint docs at ``` -client.getArchives().createArchiveV2025R0(new CreateArchiveV2025R0RequestBody(archiveName)) +client.getArchives().createArchiveV2025R0(new CreateArchiveV2025R0RequestBody.Builder(archiveName).description(archiveDescription).build()) ``` ### Arguments @@ -110,7 +110,10 @@ This operation is performed by calling function `updateArchiveByIdV2025R0`. See the endpoint docs at [API Reference](https://developer.box.com/reference/v2025.0/put-archives-id/). -*Currently we don't have an example for calling `updateArchiveByIdV2025R0` in integration tests* + +``` +client.getArchives().updateArchiveByIdV2025R0(archive.getId(), new UpdateArchiveByIdV2025R0RequestBody.Builder().name(newArchiveName).description(newArchiveDescription).build()) +``` ### Arguments diff --git a/src/test/java/com/box/sdkgen/archives/ArchivesITest.java b/src/test/java/com/box/sdkgen/archives/ArchivesITest.java index 77187839b..d02b09b34 100644 --- a/src/test/java/com/box/sdkgen/archives/ArchivesITest.java +++ b/src/test/java/com/box/sdkgen/archives/ArchivesITest.java @@ -9,6 +9,7 @@ import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.archives.CreateArchiveV2025R0RequestBody; import com.box.sdkgen.managers.archives.GetArchivesV2025R0QueryParams; +import com.box.sdkgen.managers.archives.UpdateArchiveByIdV2025R0RequestBody; import com.box.sdkgen.schemas.v2025r0.archivesv2025r0.ArchivesV2025R0; import com.box.sdkgen.schemas.v2025r0.archivev2025r0.ArchiveV2025R0; import org.junit.jupiter.api.Test; @@ -22,10 +23,30 @@ public class ArchivesITest { @Test public void testArchivesCreateListDelete() { String archiveName = getUuid(); + String archiveDescription = "Test Archive Description"; ArchiveV2025R0 archive = - client.getArchives().createArchiveV2025R0(new CreateArchiveV2025R0RequestBody(archiveName)); + client + .getArchives() + .createArchiveV2025R0( + new CreateArchiveV2025R0RequestBody.Builder(archiveName) + .description(archiveDescription) + .build()); assert convertToString(archive.getType()).equals("archive"); assert archive.getName().equals(archiveName); + assert archive.getDescription().equals(archiveDescription); + String newArchiveName = getUuid(); + String newArchiveDescription = "Updated Archive Description"; + ArchiveV2025R0 updatedArchive = + client + .getArchives() + .updateArchiveByIdV2025R0( + archive.getId(), + new UpdateArchiveByIdV2025R0RequestBody.Builder() + .name(newArchiveName) + .description(newArchiveDescription) + .build()); + assert updatedArchive.getName().equals(newArchiveName); + assert updatedArchive.getDescription().equals(newArchiveDescription); ArchivesV2025R0 archives = client .getArchives() From cfac908fb1c4c8671f93de5344a8f11e8f71d76f Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Fri, 14 Nov 2025 12:48:11 +0100 Subject: [PATCH 055/148] chore: Adjust permissions for Github token (box/box-codegen#885) (#1573) --- .codegen.json | 2 +- .github/workflows/autoupdate-pr.yml | 2 ++ .github/workflows/build.yml | 4 ++++ .github/workflows/notify-changelog.yml | 2 ++ .github/workflows/semantic-pr.yml | 3 +++ .github/workflows/spell-check-lint.yml | 4 ++++ 6 files changed, 16 insertions(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index 934f9a77b..bf3e889c1 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "87a3288", "specHash": "8b51a89", "version": "10.1.0" } +{ "engineHash": "2ac72c4", "specHash": "8b51a89", "version": "10.1.0" } diff --git a/.github/workflows/autoupdate-pr.yml b/.github/workflows/autoupdate-pr.yml index 030e9154c..085213119 100644 --- a/.github/workflows/autoupdate-pr.yml +++ b/.github/workflows/autoupdate-pr.yml @@ -5,6 +5,8 @@ on: - main - sdk-gen +permissions: {} + jobs: update_pull_requests: runs-on: ubuntu-latest diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 97f872bb4..b9368114d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,6 +3,10 @@ on: pull_request: branches: - sdk-gen + +permissions: + contents: read + jobs: build-and-test: runs-on: ubuntu-latest diff --git a/.github/workflows/notify-changelog.yml b/.github/workflows/notify-changelog.yml index fec9ec4ff..464fd56b7 100644 --- a/.github/workflows/notify-changelog.yml +++ b/.github/workflows/notify-changelog.yml @@ -10,6 +10,8 @@ on: types: - released +permissions: {} + jobs: notify: # This job can run on the latest Ubuntu diff --git a/.github/workflows/semantic-pr.yml b/.github/workflows/semantic-pr.yml index de1b2c83c..ee665e0e8 100644 --- a/.github/workflows/semantic-pr.yml +++ b/.github/workflows/semantic-pr.yml @@ -9,6 +9,9 @@ on: branches: - sdk-gen +permissions: + contents: read + jobs: main: name: Validate semantic PR title diff --git a/.github/workflows/spell-check-lint.yml b/.github/workflows/spell-check-lint.yml index 8a4ebb0ed..9aeb468e7 100644 --- a/.github/workflows/spell-check-lint.yml +++ b/.github/workflows/spell-check-lint.yml @@ -4,6 +4,10 @@ on: types: [opened, synchronize, edited] branches: - sdk-gen + +permissions: + contents: read + jobs: spellcheck-request-title: runs-on: ubuntu-latest From ff45cd0fed95de2e270f2a6a2be133bc43940e0c Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 18 Nov 2025 14:24:29 +0100 Subject: [PATCH 056/148] docs: Update AI extract structured description with OCR support info (box/box-openapi#564) (#1578) --- .codegen.json | 2 +- docs/ai.md | 11 ++++--- .../com/box/sdkgen/managers/ai/AiManager.java | 32 ++++++++++++------- 3 files changed, 28 insertions(+), 17 deletions(-) diff --git a/.codegen.json b/.codegen.json index bf3e889c1..92d8bacf5 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "2ac72c4", "specHash": "8b51a89", "version": "10.1.0" } +{ "engineHash": "2ac72c4", "specHash": "e7ce024", "version": "10.1.0" } diff --git a/docs/ai.md b/docs/ai.md index a8b3cef23..a94181327 100644 --- a/docs/ai.md +++ b/docs/ai.md @@ -134,10 +134,13 @@ A response including the answer from the LLM. ## Extract metadata (structured) Sends an AI request to supported Large Language Models (LLMs) and returns extracted metadata as a set of key-value pairs. -For this request, you either need a metadata template or a list of fields you want to extract. -Input is **either** a metadata template or a list of fields to ensure the structure. -To learn more about creating templates, see [Creating metadata templates in the Admin Console](https://support.box.com/hc/en-us/articles/360044194033-Customizing-Metadata-Templates) -or use the [metadata template API](g://metadata/templates/create). This endpoint also supports [Enhanced Extract Agent](g://box-ai/ai-tutorials/extract-metadata-structured/#enhanced-extract-agent). + +To define the extraction structure, provide either a metadata template or a list of fields. To learn more about creating templates, see [Creating metadata templates in the Admin Console](https://support.box.com/hc/en-us/articles/360044194033-Customizing-Metadata-Templates) +or use the [metadata template API](g://metadata/templates/create). + +This endpoint also supports [Enhanced Extract Agent](g://box-ai/ai-tutorials/extract-metadata-structured/#enhanced-extract-agent). + +For information about supported file formats and languages, see the [Extract metadata from file (structured)](g://box-ai/ai-tutorials/extract-metadata-structured) API guide. This operation is performed by calling function `createAiExtractStructured`. diff --git a/src/main/java/com/box/sdkgen/managers/ai/AiManager.java b/src/main/java/com/box/sdkgen/managers/ai/AiManager.java index e14eacee0..20027ca17 100644 --- a/src/main/java/com/box/sdkgen/managers/ai/AiManager.java +++ b/src/main/java/com/box/sdkgen/managers/ai/AiManager.java @@ -198,15 +198,19 @@ public AiResponse createAiExtract(AiExtract requestBody, CreateAiExtractHeaders /** * Sends an AI request to supported Large Language Models (LLMs) and returns extracted metadata as - * a set of key-value pairs. For this request, you either need a metadata template or a list of - * fields you want to extract. Input is **either** a metadata template or a list of fields to - * ensure the structure. To learn more about creating templates, see [Creating metadata templates - * in the Admin + * a set of key-value pairs. + * + *

    To define the extraction structure, provide either a metadata template or a list of fields. + * To learn more about creating templates, see [Creating metadata templates in the Admin * Console](https://support.box.com/hc/en-us/articles/360044194033-Customizing-Metadata-Templates) - * or use the [metadata template API](g://metadata/templates/create). This endpoint also supports - * [Enhanced Extract + * or use the [metadata template API](g://metadata/templates/create). + * + *

    This endpoint also supports [Enhanced Extract * Agent](g://box-ai/ai-tutorials/extract-metadata-structured/#enhanced-extract-agent). * + *

    For information about supported file formats and languages, see the [Extract metadata from + * file (structured)](g://box-ai/ai-tutorials/extract-metadata-structured) API guide. + * * @param requestBody Request body of createAiExtractStructured method */ public AiExtractStructuredResponse createAiExtractStructured(AiExtractStructured requestBody) { @@ -215,15 +219,19 @@ public AiExtractStructuredResponse createAiExtractStructured(AiExtractStructured /** * Sends an AI request to supported Large Language Models (LLMs) and returns extracted metadata as - * a set of key-value pairs. For this request, you either need a metadata template or a list of - * fields you want to extract. Input is **either** a metadata template or a list of fields to - * ensure the structure. To learn more about creating templates, see [Creating metadata templates - * in the Admin + * a set of key-value pairs. + * + *

    To define the extraction structure, provide either a metadata template or a list of fields. + * To learn more about creating templates, see [Creating metadata templates in the Admin * Console](https://support.box.com/hc/en-us/articles/360044194033-Customizing-Metadata-Templates) - * or use the [metadata template API](g://metadata/templates/create). This endpoint also supports - * [Enhanced Extract + * or use the [metadata template API](g://metadata/templates/create). + * + *

    This endpoint also supports [Enhanced Extract * Agent](g://box-ai/ai-tutorials/extract-metadata-structured/#enhanced-extract-agent). * + *

    For information about supported file formats and languages, see the [Extract metadata from + * file (structured)](g://box-ai/ai-tutorials/extract-metadata-structured) API guide. + * * @param requestBody Request body of createAiExtractStructured method * @param headers Headers of createAiExtractStructured method */ From 9c72402052c91dba7eda179b90a22b63abdf6cfe Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 18 Nov 2025 16:11:40 +0100 Subject: [PATCH 057/148] test: Fix Box AI tests (box/box-codegen#886) (#1580) --- .codegen.json | 2 +- docs/ai.md | 8 +-- src/test/java/com/box/sdkgen/ai/AiITest.java | 72 ++++++-------------- 3 files changed, 26 insertions(+), 56 deletions(-) diff --git a/.codegen.json b/.codegen.json index 92d8bacf5..917e53dc8 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "2ac72c4", "specHash": "e7ce024", "version": "10.1.0" } +{ "engineHash": "a17cbb6", "specHash": "e7ce024", "version": "10.1.0" } diff --git a/docs/ai.md b/docs/ai.md index a94181327..e2a81b27c 100644 --- a/docs/ai.md +++ b/docs/ai.md @@ -18,7 +18,7 @@ See the endpoint docs at ``` -client.getAi().createAiAsk(new AiAsk.Builder(AiAskModeField.SINGLE_ITEM_QA, "which direction sun rises", Arrays.asList(new AiItemAsk.Builder(fileToAsk.getId(), AiItemAskTypeField.FILE).content("Sun rises in the East").build())).aiAgent(aiAskAgentConfig).build()) +client.getAi().createAiAsk(new AiAsk.Builder(AiAskModeField.SINGLE_ITEM_QA, "Which direction does the Sun rise?", Arrays.asList(new AiItemAsk.Builder(fileToAsk.getId(), AiItemAskTypeField.FILE).content("The Sun rises in the east").build())).aiAgent(aiAskAgentBasicTextConfig).build()) ``` ### Arguments @@ -47,7 +47,7 @@ See the endpoint docs at ``` -client.getAi().createAiTextGen(new AiTextGen.Builder("Parapharse the document.s", Arrays.asList(new AiTextGenItemsField.Builder(fileToAsk.getId()).type(AiTextGenItemsTypeField.FILE).content("The Earth goes around the sun. Sun rises in the East in the morning.").build())).dialogueHistory(Arrays.asList(new AiDialogueHistory.Builder().prompt("What does the earth go around?").answer("The sun").createdAt(dateTimeFromString("2021-01-01T00:00:00Z")).build(), new AiDialogueHistory.Builder().prompt("On Earth, where does the sun rise?").answer("East").createdAt(dateTimeFromString("2021-01-01T00:00:00Z")).build())).aiAgent(aiTextGenAgentConfig).build()) +client.getAi().createAiTextGen(new AiTextGen.Builder("Paraphrase the documents", Arrays.asList(new AiTextGenItemsField.Builder(fileToAsk.getId()).type(AiTextGenItemsTypeField.FILE).content("The Earth goes around the Sun. The Sun rises in the east in the morning.").build())).dialogueHistory(Arrays.asList(new AiDialogueHistory.Builder().prompt("What does the earth go around?").answer("The Sun").createdAt(dateTimeFromString("2021-01-01T00:00:00Z")).build(), new AiDialogueHistory.Builder().prompt("On Earth, where does the Sun rise?").answer("east").createdAt(dateTimeFromString("2021-01-01T00:00:00Z")).build())).build()) ``` ### Arguments @@ -113,7 +113,7 @@ See the endpoint docs at ``` -client.getAi().createAiExtract(new AiExtract.Builder("firstName, lastName, location, yearOfBirth, company", Arrays.asList(new AiItemBase(file.getId()))).aiAgent(agentIgnoringOverridingEmbeddingsModel).build()) +client.getAi().createAiExtract(new AiExtract.Builder("firstName, lastName, location, yearOfBirth, company", Arrays.asList(new AiItemBase(file.getId()))).aiAgent(aiExtractAgentBasicTextConfig).build()) ``` ### Arguments @@ -149,7 +149,7 @@ See the endpoint docs at ``` -client.getAi().createAiExtractStructured(new AiExtractStructured.Builder(Arrays.asList(new AiItemBase(file.getId()))).fields(Arrays.asList(new AiExtractStructuredFieldsField.Builder("firstName").description("Person first name").displayName("First name").prompt("What is the your first name?").type("string").build(), new AiExtractStructuredFieldsField.Builder("lastName").description("Person last name").displayName("Last name").prompt("What is the your last name?").type("string").build(), new AiExtractStructuredFieldsField.Builder("dateOfBirth").description("Person date of birth").displayName("Birth date").prompt("What is the date of your birth?").type("date").build(), new AiExtractStructuredFieldsField.Builder("age").description("Person age").displayName("Age").prompt("How old are you?").type("float").build(), new AiExtractStructuredFieldsField.Builder("hobby").description("Person hobby").displayName("Hobby").prompt("What is your hobby?").type("multiSelect").options(Arrays.asList(new AiExtractStructuredFieldsOptionsField("guitar"), new AiExtractStructuredFieldsOptionsField("books"))).build())).aiAgent(agentIgnoringOverridingEmbeddingsModel).build()) +client.getAi().createAiExtractStructured(new AiExtractStructured.Builder(Arrays.asList(new AiItemBase(file.getId()))).fields(Arrays.asList(new AiExtractStructuredFieldsField.Builder("firstName").description("Person first name").displayName("First name").prompt("What is the your first name?").type("string").build(), new AiExtractStructuredFieldsField.Builder("lastName").description("Person last name").displayName("Last name").prompt("What is the your last name?").type("string").build(), new AiExtractStructuredFieldsField.Builder("dateOfBirth").description("Person date of birth").displayName("Birth date").prompt("What is the date of your birth?").type("date").build(), new AiExtractStructuredFieldsField.Builder("age").description("Person age").displayName("Age").prompt("How old are you?").type("float").build(), new AiExtractStructuredFieldsField.Builder("hobby").description("Person hobby").displayName("Hobby").prompt("What is your hobby?").type("multiSelect").options(Arrays.asList(new AiExtractStructuredFieldsOptionsField("guitar"), new AiExtractStructuredFieldsOptionsField("books"))).build())).aiAgent(aiExtractStructuredAgentBasicTextConfig).build()) ``` ### Arguments diff --git a/src/test/java/com/box/sdkgen/ai/AiITest.java b/src/test/java/com/box/sdkgen/ai/AiITest.java index a42ebfa2a..dbfbe8533 100644 --- a/src/test/java/com/box/sdkgen/ai/AiITest.java +++ b/src/test/java/com/box/sdkgen/ai/AiITest.java @@ -23,7 +23,6 @@ import com.box.sdkgen.schemas.aiagentask.AiAgentAsk; import com.box.sdkgen.schemas.aiagentextract.AiAgentExtract; import com.box.sdkgen.schemas.aiagentextractstructured.AiAgentExtractStructured; -import com.box.sdkgen.schemas.aiagentlongtexttool.AiAgentLongTextTool; import com.box.sdkgen.schemas.aiagenttextgen.AiAgentTextGen; import com.box.sdkgen.schemas.aiask.AiAsk; import com.box.sdkgen.schemas.aiask.AiAskModeField; @@ -63,6 +62,8 @@ public void testAskAiSingleItem() { .language("en-US") .build()); AiAgentAsk aiAskAgentConfig = aiAgentConfig.getAiAgentAsk(); + AiAgentAsk aiAskAgentBasicTextConfig = + new AiAgentAsk.Builder().basicText(aiAskAgentConfig.getBasicText()).build(); FileFull fileToAsk = uploadNewFile(); AiResponseFull response = client @@ -70,14 +71,14 @@ public void testAskAiSingleItem() { .createAiAsk( new AiAsk.Builder( AiAskModeField.SINGLE_ITEM_QA, - "which direction sun rises", + "Which direction does the Sun rise?", Arrays.asList( new AiItemAsk.Builder(fileToAsk.getId(), AiItemAskTypeField.FILE) - .content("Sun rises in the East") + .content("The Sun rises in the east") .build())) - .aiAgent(aiAskAgentConfig) + .aiAgent(aiAskAgentBasicTextConfig) .build()); - assert response.getAnswer().contains("East"); + assert response.getAnswer().contains("east"); assert response.getCompletionReason().equals("done"); client.getFiles().deleteFileById(fileToAsk.getId()); } @@ -92,15 +93,15 @@ public void testAskAiMultipleItems() { .createAiAsk( new AiAsk( AiAskModeField.MULTIPLE_ITEM_QA, - "Which direction sun rises?", + "Which direction does the Sun rise?", Arrays.asList( new AiItemAsk.Builder(fileToAsk1.getId(), AiItemAskTypeField.FILE) - .content("Earth goes around the sun") + .content("Earth goes around the Sun") .build(), new AiItemAsk.Builder(fileToAsk2.getId(), AiItemAskTypeField.FILE) - .content("Sun rises in the East in the morning") + .content("The Sun rises in the east in the morning") .build()))); - assert response.getAnswer().contains("East"); + assert response.getAnswer().contains("east"); assert response.getCompletionReason().equals("done"); client.getFiles().deleteFileById(fileToAsk1.getId()); client.getFiles().deleteFileById(fileToAsk2.getId()); @@ -109,42 +110,32 @@ public void testAskAiMultipleItems() { @Test public void testAiTextGenWithDialogueHistory() { FileFull fileToAsk = uploadNewFile(); - AiAgent aiAgentConfig = - client - .getAi() - .getAiAgentDefaultConfig( - new GetAiAgentDefaultConfigQueryParams.Builder( - GetAiAgentDefaultConfigQueryParamsModeField.TEXT_GEN) - .language("en-US") - .build()); - AiAgentTextGen aiTextGenAgentConfig = aiAgentConfig.getAiAgentTextGen(); AiResponse response = client .getAi() .createAiTextGen( new AiTextGen.Builder( - "Parapharse the document.s", + "Paraphrase the documents", Arrays.asList( new AiTextGenItemsField.Builder(fileToAsk.getId()) .type(AiTextGenItemsTypeField.FILE) .content( - "The Earth goes around the sun. Sun rises in the East in the morning.") + "The Earth goes around the Sun. The Sun rises in the east in the morning.") .build())) .dialogueHistory( Arrays.asList( new AiDialogueHistory.Builder() .prompt("What does the earth go around?") - .answer("The sun") + .answer("The Sun") .createdAt(dateTimeFromString("2021-01-01T00:00:00Z")) .build(), new AiDialogueHistory.Builder() - .prompt("On Earth, where does the sun rise?") - .answer("East") + .prompt("On Earth, where does the Sun rise?") + .answer("east") .createdAt(dateTimeFromString("2021-01-01T00:00:00Z")) .build())) - .aiAgent(aiTextGenAgentConfig) .build()); - assert response.getAnswer().contains("sun"); + assert response.getAnswer().contains("Sun"); assert response.getCompletionReason().equals("done"); client.getFiles().deleteFileById(fileToAsk.getId()); } @@ -215,19 +206,8 @@ public void testAiExtract() { .language("en-US") .build()); AiAgentExtract aiExtractAgentConfig = aiAgentConfig.getAiAgentExtract(); - AiAgentLongTextTool longTextConfigWithNoEmbeddings = - new AiAgentLongTextTool.Builder() - .systemMessage(aiExtractAgentConfig.getLongText().getSystemMessage()) - .promptTemplate(aiExtractAgentConfig.getLongText().getPromptTemplate()) - .model(aiExtractAgentConfig.getLongText().getModel()) - .numTokensForCompletion(aiExtractAgentConfig.getLongText().getNumTokensForCompletion()) - .llmEndpointParams(aiExtractAgentConfig.getLongText().getLlmEndpointParams()) - .build(); - AiAgentExtract agentIgnoringOverridingEmbeddingsModel = - new AiAgentExtract.Builder() - .longText(longTextConfigWithNoEmbeddings) - .basicText(aiExtractAgentConfig.getBasicText()) - .build(); + AiAgentExtract aiExtractAgentBasicTextConfig = + new AiAgentExtract.Builder().basicText(aiExtractAgentConfig.getBasicText()).build(); Files uploadedFiles = client .getUploads() @@ -247,7 +227,7 @@ public void testAiExtract() { new AiExtract.Builder( "firstName, lastName, location, yearOfBirth, company", Arrays.asList(new AiItemBase(file.getId()))) - .aiAgent(agentIgnoringOverridingEmbeddingsModel) + .aiAgent(aiExtractAgentBasicTextConfig) .build()); String expectedResponse = "{\"firstName\": \"John\", \"lastName\": \"Doe\", \"location\": \"San Francisco\", \"yearOfBirth\": \"1990\", \"company\": \"Box\"}"; @@ -268,18 +248,8 @@ public void testAiExtractStructuredWithFields() { .build()); AiAgentExtractStructured aiExtractStructuredAgentConfig = aiAgentConfig.getAiAgentExtractStructured(); - AiAgentLongTextTool longTextConfigWithNoEmbeddings = - new AiAgentLongTextTool.Builder() - .systemMessage(aiExtractStructuredAgentConfig.getLongText().getSystemMessage()) - .promptTemplate(aiExtractStructuredAgentConfig.getLongText().getPromptTemplate()) - .model(aiExtractStructuredAgentConfig.getLongText().getModel()) - .numTokensForCompletion( - aiExtractStructuredAgentConfig.getLongText().getNumTokensForCompletion()) - .llmEndpointParams(aiExtractStructuredAgentConfig.getLongText().getLlmEndpointParams()) - .build(); - AiAgentExtractStructured agentIgnoringOverridingEmbeddingsModel = + AiAgentExtractStructured aiExtractStructuredAgentBasicTextConfig = new AiAgentExtractStructured.Builder() - .longText(longTextConfigWithNoEmbeddings) .basicText(aiExtractStructuredAgentConfig.getBasicText()) .build(); Files uploadedFiles = @@ -335,7 +305,7 @@ public void testAiExtractStructuredWithFields() { new AiExtractStructuredFieldsOptionsField("guitar"), new AiExtractStructuredFieldsOptionsField("books"))) .build())) - .aiAgent(agentIgnoringOverridingEmbeddingsModel) + .aiAgent(aiExtractStructuredAgentBasicTextConfig) .build()); assert convertToString(response.getAnswer().get("hobby")) .equals(convertToString(Arrays.asList("guitar"))); From d1288c4804b032d5211d664c396e212a08a5775b Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 18 Nov 2025 19:13:13 +0100 Subject: [PATCH 058/148] fix: Fix parsing `OffsetDateTime` from String (box/box-codegen#887) (#1582) --- .codegen.json | 2 +- .../sdkgen/internal/utils/UtilsManager.java | 43 ++++++------------- .../box/sdkgen/aistudio/AiStudioITest.java | 6 +-- 3 files changed, 18 insertions(+), 33 deletions(-) diff --git a/.codegen.json b/.codegen.json index 917e53dc8..11f973337 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "a17cbb6", "specHash": "e7ce024", "version": "10.1.0" } +{ "engineHash": "35c5d34", "specHash": "e7ce024", "version": "10.1.0" } diff --git a/src/main/java/com/box/sdkgen/internal/utils/UtilsManager.java b/src/main/java/com/box/sdkgen/internal/utils/UtilsManager.java index 9e562a775..93a4f035e 100644 --- a/src/main/java/com/box/sdkgen/internal/utils/UtilsManager.java +++ b/src/main/java/com/box/sdkgen/internal/utils/UtilsManager.java @@ -23,7 +23,9 @@ import java.time.OffsetDateTime; import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeFormatterBuilder; import java.time.format.DateTimeParseException; +import java.time.temporal.ChronoField; import java.util.Arrays; import java.util.Base64; import java.util.HashMap; @@ -47,11 +49,15 @@ public class UtilsManager { private static final int BUFFER_SIZE = 8192; private static final DateTimeFormatter OFFSET_DATE_TIME_FORMAT = - DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssXXX"); + new DateTimeFormatterBuilder() + .appendPattern("yyyy-MM-dd'T'HH:mm:ss") + .optionalStart() + .appendFraction(ChronoField.NANO_OF_SECOND, 0, 9, true) + .optionalEnd() + .appendOffsetId() + .toFormatter(); private static final DateTimeFormatter OFFSET_DATE_TIME_FORMAT_WITH_MILLIS = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); - private static final DateTimeFormatter OFFSET_DATE_TIME_FORMAT_WITH_MICROS = - DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSSX"); private static final DateTimeFormatter OFFSET_DATE_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd"); @@ -381,20 +387,11 @@ public static Map sanitizeMap( } public static OffsetDateTime dateTimeFromString(String dateString) { - DateTimeFormatter[] formatters = { - OFFSET_DATE_TIME_FORMAT, - OFFSET_DATE_TIME_FORMAT_WITH_MILLIS, - OFFSET_DATE_TIME_FORMAT_WITH_MICROS - }; - - for (DateTimeFormatter formatter : formatters) { - try { - return OffsetDateTime.parse(dateString, formatter); - } catch (DateTimeParseException e) { - // Ignore and try the next format - } + try { + return OffsetDateTime.parse(dateString, OFFSET_DATE_TIME_FORMAT); + } catch (DateTimeParseException e) { + return null; } - return null; } public static String dateTimeToString(OffsetDateTime dateTime) { @@ -408,19 +405,7 @@ public static OffsetDateTime dateFromString(String dateString) { return OffsetDateTime.parse(dateString + "T00:00:00Z"); } // Otherwise try to parse as full OffsetDateTime - DateTimeFormatter[] formatters = { - OFFSET_DATE_TIME_FORMAT, - OFFSET_DATE_TIME_FORMAT_WITH_MILLIS, - OFFSET_DATE_TIME_FORMAT_WITH_MICROS - }; - for (DateTimeFormatter formatter : formatters) { - try { - return OffsetDateTime.parse(dateString, formatter); - } catch (DateTimeParseException e) { - // Ignore and try the next format - } - } - return null; + return dateTimeFromString(dateString); } catch (DateTimeParseException e) { return null; } diff --git a/src/test/java/com/box/sdkgen/aistudio/AiStudioITest.java b/src/test/java/com/box/sdkgen/aistudio/AiStudioITest.java index 9ded2ffb1..d7d7a1784 100644 --- a/src/test/java/com/box/sdkgen/aistudio/AiStudioITest.java +++ b/src/test/java/com/box/sdkgen/aistudio/AiStudioITest.java @@ -82,14 +82,14 @@ public void testUseAiAgentReferenceInAiAsk() { .createAiAsk( new AiAsk.Builder( AiAskModeField.SINGLE_ITEM_QA, - "which direction sun rises", + "Which direction does the Sun rise?", Arrays.asList( new AiItemAsk.Builder(fileToAsk.getId(), AiItemAskTypeField.FILE) - .content("Sun rises in the East") + .content("The Sun rises in the east.") .build())) .aiAgent(new AiAgentReference.Builder().id(createdAgent.getId()).build()) .build()); - assert response.getAnswer().contains("East"); + assert response.getAnswer().contains("east"); assert response.getCompletionReason().equals("done"); assert response.getAiAgentInfo().getModels().size() > 0; client.getFiles().deleteFileById(fileToAsk.getId()); From 67cde94bfd440557458eb2b647686ecc634ea037 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 19 Nov 2025 12:48:30 +0100 Subject: [PATCH 059/148] chore: release version 10.2.0 (#1584) --- .codegen.json | 2 +- CHANGELOG.md | 14 ++++++++++++++ build.gradle | 2 +- .../com/box/sdkgen/networking/version/Version.java | 2 +- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index 11f973337..dc9db5fa7 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "35c5d34", "specHash": "e7ce024", "version": "10.1.0" } +{ "engineHash": "35c5d34", "specHash": "e7ce024", "version": "10.2.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 05f4c7a6d..c55fc991a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,20 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [10.2.0](https://github.com/box/box-java-sdk/compare/v10.1.0...v10.2.0) (2025-11-19) + + +### Bug Fixes + +* Fix parsing `OffsetDateTime` from String (box/box-codegen[#887](https://github.com/box/box-java-sdk/issues/887)) ([#1582](https://github.com/box/box-java-sdk/issues/1582)) ([d1288c4](https://github.com/box/box-java-sdk/commit/d1288c4804b032d5211d664c396e212a08a5775b)) + + +### New Features and Enhancements + +* Support GET enterprise configuration API (box/box-openapi[#559](https://github.com/box/box-java-sdk/issues/559)) ([#1519](https://github.com/box/box-java-sdk/issues/1519)) ([88dd8d2](https://github.com/box/box-java-sdk/commit/88dd8d2867d85ca8fc3b48d2aee61060ef328821)) +* Disable OkHttp auto retries on connection failure (box/box-codegen[#874](https://github.com/box/box-java-sdk/issues/874)) ([#1541](https://github.com/box/box-java-sdk/issues/1541)) ([c2bd137](https://github.com/box/box-java-sdk/commit/c2bd137e469b9e67a14a33bb073107ff5db44175)) +* Support Archive API (box/box-openapi[#563](https://github.com/box/box-java-sdk/issues/563)) ([#1553](https://github.com/box/box-java-sdk/issues/1553)) ([609e8bb](https://github.com/box/box-java-sdk/commit/609e8bb5eb7143281543dcfaada23f2649acae9d)) + ## [10.1.0](https://github.com/box/box-java-sdk/compare/v10.0.0...v10.1.0) (2025-10-06) diff --git a/build.gradle b/build.gradle index b66babc56..7f9726428 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ plugins { } group = "com.box" archivesBaseName = "box-java-sdk" -version = "10.1.0" +version = "10.2.0" java { sourceCompatibility = JavaVersion.toVersion(libraryJavaVersion) targetCompatibility = JavaVersion.toVersion(libraryJavaVersion) diff --git a/src/main/java/com/box/sdkgen/networking/version/Version.java b/src/main/java/com/box/sdkgen/networking/version/Version.java index 4c8218e3c..50d40ba49 100644 --- a/src/main/java/com/box/sdkgen/networking/version/Version.java +++ b/src/main/java/com/box/sdkgen/networking/version/Version.java @@ -3,6 +3,6 @@ public class Version { public static String getVersion() { - return "10.1.0"; + return "10.2.0"; } } From bfce409d7382b64db3551f0dfd116248604aecc9 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Thu, 20 Nov 2025 16:59:35 +0100 Subject: [PATCH 060/148] docs: Update Readme for migrating `sdk-gen` to main (box/box-codegen#889) (#1585) --- .codegen.json | 2 +- .github/ISSUE_TEMPLATE/config.yml | 2 +- .github/workflows/build-and-test-daily.yml | 67 ++++++++++++++++++++++ .github/workflows/build.yml | 2 +- .github/workflows/semantic-pr.yml | 2 +- .github/workflows/spell-check-lint.yml | 2 +- README.md | 10 ++-- 7 files changed, 77 insertions(+), 10 deletions(-) create mode 100644 .github/workflows/build-and-test-daily.yml diff --git a/.codegen.json b/.codegen.json index dc9db5fa7..3bfef7760 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "35c5d34", "specHash": "e7ce024", "version": "10.2.0" } +{ "engineHash": "4147cc3", "specHash": "e7ce024", "version": "10.2.0" } diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 673dfbff9..c3b59c317 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,7 +1,7 @@ blank_issues_enabled: false contact_links: - name: SDK documentation - url: https://github.com/box/box-java-sdk/tree/sdk-gen/docs + url: https://github.com/box/box-java-sdk/tree/main/docs about: Before creating an issue, I have checked that the SDK documentation doesn't solve my issue. - name: API documentation url: https://developer.box.com/docs diff --git a/.github/workflows/build-and-test-daily.yml b/.github/workflows/build-and-test-daily.yml new file mode 100644 index 000000000..189771e63 --- /dev/null +++ b/.github/workflows/build-and-test-daily.yml @@ -0,0 +1,67 @@ +name: Build and Test daily +on: + schedule: + - cron: '20 1 * * 1-5' +jobs: + build-and-test: + runs-on: ubuntu-latest + strategy: + max-parallel: 1 + matrix: + distribution: ['zulu', 'temurin'] + java: ['8', '17'] + name: Java ${{ matrix.java }} (${{ matrix.distribution }}) + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + ref: main + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: ${{ matrix.distribution }} + java-version: ${{ matrix.java }} + cache: 'gradle' + - name: All Tests + env: + JWT_CONFIG_BASE_64: ${{ secrets.JWT_CONFIG_BASE_64 }} + ADMIN_USER_ID: ${{ secrets.ADMIN_USER_ID }} + CLIENT_ID: ${{ secrets.CLIENT_ID }} + CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }} + USER_ID: ${{ secrets.USER_ID }} + ENTERPRISE_ID: ${{ secrets.ENTERPRISE_ID }} + BOX_FILE_REQUEST_ID: ${{ secrets.BOX_FILE_REQUEST_ID }} + BOX_EXTERNAL_USER_EMAIL: ${{ secrets.BOX_EXTERNAL_USER_EMAIL }} + BOX_EXTERNAL_USER_ID: ${{ secrets.BOX_EXTERNAL_USER_ID }} + APP_ITEM_ASSOCIATION_FILE_ID: ${{ secrets.APP_ITEM_ASSOCIATION_FILE_ID }} + APP_ITEM_ASSOCIATION_FOLDER_ID: ${{ secrets.APP_ITEM_ASSOCIATION_FOLDER_ID }} + WORKFLOW_FOLDER_ID: ${{ secrets.WORKFLOW_FOLDER_ID }} + APP_ITEM_SHARED_LINK: ${{ secrets.APP_ITEM_SHARED_LINK }} + SLACK_AUTOMATION_USER_ID: ${{ secrets.SLACK_AUTOMATION_USER_ID }} + SLACK_ORG_ID: ${{ secrets.SLACK_ORG_ID }} + SLACK_PARTNER_ITEM_ID: ${{ secrets.SLACK_PARTNER_ITEM_ID }} + run: ./gradlew check --stacktrace + - name: Coverage + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: ./gradlew jacocoTestReport coverallsJacoco + notify: + name: Send Slack Notification + runs-on: ubuntu-latest + needs: [build-and-test] + if: always() + steps: + - name: Send Slack Notification + env: + SLACK_WEBHOOK_TEST_NOTIFICATION_URL: ${{ secrets.SLACK_WEBHOOK_TEST_NOTIFICATION_URL }} + BUILD_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} + run: | + if [ "${{ needs.build-and-test.result }}" != "success" ]; then + STATUS="Failure ❌" + else + STATUS="Success ✅" + fi + + curl -X POST -H "Content-Type: application/json" \ + --data "{\"text\":\"<${BUILD_URL}|Daily Tests Job> in *${GITHUB_REPOSITORY}* finished with status: ${STATUS}\"}" \ + "$SLACK_WEBHOOK_TEST_NOTIFICATION_URL" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b9368114d..3028690f6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,7 +2,7 @@ name: build on: pull_request: branches: - - sdk-gen + - main permissions: contents: read diff --git a/.github/workflows/semantic-pr.yml b/.github/workflows/semantic-pr.yml index ee665e0e8..1bf079c95 100644 --- a/.github/workflows/semantic-pr.yml +++ b/.github/workflows/semantic-pr.yml @@ -7,7 +7,7 @@ on: - edited - synchronize branches: - - sdk-gen + - main permissions: contents: read diff --git a/.github/workflows/spell-check-lint.yml b/.github/workflows/spell-check-lint.yml index 9aeb468e7..1adbdeb74 100644 --- a/.github/workflows/spell-check-lint.yml +++ b/.github/workflows/spell-check-lint.yml @@ -3,7 +3,7 @@ on: pull_request_target: types: [opened, synchronize, edited] branches: - - sdk-gen + - main permissions: contents: read diff --git a/README.md b/README.md index 21b710034..871388684 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,10 @@ # Box Java SDK v10 [![Project Status](http://opensource.box.com/badges/active.svg)](http://opensource.box.com/badges) -![build](https://github.com/box/box-java-sdk/actions/workflows/build.yml/badge.svg?branch=sdk-gen) +![build](https://github.com/box/box-java-sdk/actions/workflows/build.yml/badge.svg?branch=main) ![Maven Central Version](https://img.shields.io/maven-central/v/com.box/box-java-sdk) ![Platform](https://img.shields.io/badge/java-%3E%3D8-blue) -[![Coverage](https://coveralls.io/repos/github/box/box-java-sdk/badge.svg?branch=sdk-gen)](https://coveralls.io/github/box/box-java-sdk-gen?branch=sdk-gen) +[![Coverage](https://coveralls.io/repos/github/box/box-java-sdk/badge.svg?branch=main)](https://coveralls.io/github/box/box-java-sdk-gen?branch=main) @@ -69,7 +69,7 @@ Version v5 is intended for: ## Version v10 Starting with v10, the SDK is built entirely on the generated `com.box.sdkgen` package, which fully and exclusively replaces the old `com.box.sdk` package. -The codebase for v10 of the Box Java SDK is currently available on the [sdk-gen](https://github.com/box/box-java-sdk/tree/sdk-gen) branch. +The codebase for v10 of the Box Java SDK is currently available on the [main](https://github.com/box/box-java-sdk/tree/main) branch. Version v10 is intended for: @@ -80,8 +80,8 @@ Version v10 is intended for: | Scenario | Recommended Version | Example gradle dependency | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------- | ----------------------------- | -| Creating a new application | Use [v10](https://github.com/box/box-java-sdk/tree/sdk-gen) | `com.box:box-java-sdk:10.0.0` | -| App using [box-java-sdk-gen](https://central.sonatype.com/artifact/com.box/box-java-sdk-gen) artifact | Migrate to [v10](https://github.com/box/box-java-sdk/tree/sdk-gen) | `com.box:box-java-sdk:10.0.0` | +| Creating a new application | Use [v10](https://github.com/box/box-java-sdk/tree/main) | `com.box:box-java-sdk:10.0.0` | +| App using [box-java-sdk-gen](https://central.sonatype.com/artifact/com.box/box-java-sdk-gen) artifact | Migrate to [v10](https://github.com/box/box-java-sdk/tree/main) | `com.box:box-java-sdk:10.0.0` | | App using both [box-java-sdk-gen](https://central.sonatype.com/artifact/com.box/box-java-sdk-gen) and [box-java-sdk](https://central.sonatype.com/artifact/com.box/box-java-sdk) artifacts | Upgrade to [v5](https://github.com/box/box-java-sdk/tree/combined-sdk) | `com.box:box-java-sdk:5.0.0` | | App using v4 of [box-java-sdk](https://central.sonatype.com/artifact/com.box/box-java-sdk) artifact | Upgrade to [v5](https://github.com/box/box-java-sdk/tree/combined-sdk) | `com.box:box-java-sdk:5.0.0` | From b3c46bbf2f2f7b9b25befcd6442a4e5c9a92e790 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Mon, 1 Dec 2025 11:27:53 +0100 Subject: [PATCH 061/148] feat: Support new sign request metadata (box/box-openapi#565) (#1599) --- .codegen.json | 2 +- .../schemas/signrequest/SignRequest.java | 72 +++++++++++++++ .../signrequestsigner/SignRequestSigner.java | 27 +++++- .../SignRequestSignerAttachment.java | 90 +++++++++++++++++++ 4 files changed, 188 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerattachment/SignRequestSignerAttachment.java diff --git a/.codegen.json b/.codegen.json index 3bfef7760..9abfa0438 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "4147cc3", "specHash": "e7ce024", "version": "10.2.0" } +{ "engineHash": "49f3695", "specHash": "7e4908e", "version": "10.2.0" } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequest.java b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequest.java index adfa2bd34..1a6887024 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequest.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequest.java @@ -90,6 +90,23 @@ public class SignRequest extends SignRequestBase { @Nullable protected String collaboratorLevel; + /** Short identifier for the sign request. */ + @JsonProperty("short_id") + protected String shortId; + + /** Timestamp marking when the sign request was created. */ + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected OffsetDateTime createdAt; + + /** Timestamp indicating when all signing actions completed. */ + @JsonProperty("finished_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + @Nullable + protected OffsetDateTime finishedAt; + /** The email address of the sender of the sign request. */ @JsonProperty("sender_email") @Nullable @@ -118,6 +135,9 @@ protected SignRequest(Builder builder) { this.autoExpireAt = builder.autoExpireAt; this.parentFolder = builder.parentFolder; this.collaboratorLevel = builder.collaboratorLevel; + this.shortId = builder.shortId; + this.createdAt = builder.createdAt; + this.finishedAt = builder.finishedAt; this.senderEmail = builder.senderEmail; this.senderId = builder.senderId; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); @@ -171,6 +191,18 @@ public String getCollaboratorLevel() { return collaboratorLevel; } + public String getShortId() { + return shortId; + } + + public OffsetDateTime getCreatedAt() { + return createdAt; + } + + public OffsetDateTime getFinishedAt() { + return finishedAt; + } + public String getSenderEmail() { return senderEmail; } @@ -213,6 +245,9 @@ public boolean equals(Object o) { && Objects.equals(autoExpireAt, casted.autoExpireAt) && Objects.equals(parentFolder, casted.parentFolder) && Objects.equals(collaboratorLevel, casted.collaboratorLevel) + && Objects.equals(shortId, casted.shortId) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(finishedAt, casted.finishedAt) && Objects.equals(senderEmail, casted.senderEmail) && Objects.equals(senderId, casted.senderId); } @@ -245,6 +280,9 @@ public int hashCode() { autoExpireAt, parentFolder, collaboratorLevel, + shortId, + createdAt, + finishedAt, senderEmail, senderId); } @@ -352,6 +390,18 @@ public String toString() { + collaboratorLevel + '\'' + ", " + + "shortId='" + + shortId + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "finishedAt='" + + finishedAt + + '\'' + + ", " + "senderEmail='" + senderEmail + '\'' @@ -388,6 +438,12 @@ public static class Builder extends SignRequestBase.Builder { protected String collaboratorLevel; + protected String shortId; + + protected OffsetDateTime createdAt; + + protected OffsetDateTime finishedAt; + protected String senderEmail; protected Long senderId; @@ -466,6 +522,22 @@ public Builder collaboratorLevel(String collaboratorLevel) { return this; } + public Builder shortId(String shortId) { + this.shortId = shortId; + return this; + } + + public Builder createdAt(OffsetDateTime createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder finishedAt(OffsetDateTime finishedAt) { + this.finishedAt = finishedAt; + this.markNullableFieldAsSet("finished_at"); + return this; + } + public Builder senderEmail(String senderEmail) { this.senderEmail = senderEmail; this.markNullableFieldAsSet("sender_email"); diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSigner.java b/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSigner.java index 368ba86bf..fdf3d2d25 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSigner.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSigner.java @@ -3,6 +3,7 @@ import com.box.sdkgen.internal.Nullable; import com.box.sdkgen.schemas.signrequestcreatesigner.SignRequestCreateSigner; import com.box.sdkgen.schemas.signrequestcreatesigner.SignRequestCreateSignerRoleField; +import com.box.sdkgen.schemas.signrequestsignerattachment.SignRequestSignerAttachment; import com.box.sdkgen.schemas.signrequestsignerinput.SignRequestSignerInput; import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; @@ -39,6 +40,9 @@ public class SignRequestSigner extends SignRequestCreateSigner { @Nullable protected String iframeableEmbedUrl; + /** Attachments that the signer uploaded. */ + @Nullable protected List attachments; + public SignRequestSigner() { super(); } @@ -50,6 +54,7 @@ protected SignRequestSigner(Builder builder) { this.inputs = builder.inputs; this.embedUrl = builder.embedUrl; this.iframeableEmbedUrl = builder.iframeableEmbedUrl; + this.attachments = builder.attachments; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -73,6 +78,10 @@ public String getIframeableEmbedUrl() { return iframeableEmbedUrl; } + public List getAttachments() { + return attachments; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -98,7 +107,8 @@ public boolean equals(Object o) { && Objects.equals(signerDecision, casted.signerDecision) && Objects.equals(inputs, casted.inputs) && Objects.equals(embedUrl, casted.embedUrl) - && Objects.equals(iframeableEmbedUrl, casted.iframeableEmbedUrl); + && Objects.equals(iframeableEmbedUrl, casted.iframeableEmbedUrl) + && Objects.equals(attachments, casted.attachments); } @Override @@ -120,7 +130,8 @@ public int hashCode() { signerDecision, inputs, embedUrl, - iframeableEmbedUrl); + iframeableEmbedUrl, + attachments); } @Override @@ -193,6 +204,10 @@ public String toString() { + "iframeableEmbedUrl='" + iframeableEmbedUrl + '\'' + + ", " + + "attachments='" + + attachments + + '\'' + "}"; } @@ -208,6 +223,8 @@ public static class Builder extends SignRequestCreateSigner.Builder { protected String iframeableEmbedUrl; + protected List attachments; + public Builder hasViewedDocument(Boolean hasViewedDocument) { this.hasViewedDocument = hasViewedDocument; return this; @@ -236,6 +253,12 @@ public Builder iframeableEmbedUrl(String iframeableEmbedUrl) { return this; } + public Builder attachments(List attachments) { + this.attachments = attachments; + this.markNullableFieldAsSet("attachments"); + return this; + } + @Override public Builder email(String email) { this.email = email; diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerattachment/SignRequestSignerAttachment.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerattachment/SignRequestSignerAttachment.java new file mode 100644 index 000000000..456decd70 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerattachment/SignRequestSignerAttachment.java @@ -0,0 +1,90 @@ +package com.box.sdkgen.schemas.signrequestsignerattachment; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +/** Metadata describing a file uploaded by a signer as an attachment. */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerAttachment extends SerializableObject { + + /** Identifier of the attachment file. */ + @Nullable protected String id; + + /** Display name of the attachment file. */ + @Nullable protected String name; + + public SignRequestSignerAttachment() { + super(); + } + + protected SignRequestSignerAttachment(Builder builder) { + super(); + this.id = builder.id; + this.name = builder.name; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerAttachment casted = (SignRequestSignerAttachment) o; + return Objects.equals(id, casted.id) && Objects.equals(name, casted.name); + } + + @Override + public int hashCode() { + return Objects.hash(id, name); + } + + @Override + public String toString() { + return "SignRequestSignerAttachment{" + + "id='" + + id + + '\'' + + ", " + + "name='" + + name + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected String name; + + public Builder id(String id) { + this.id = id; + this.markNullableFieldAsSet("id"); + return this; + } + + public Builder name(String name) { + this.name = name; + this.markNullableFieldAsSet("name"); + return this; + } + + public SignRequestSignerAttachment build() { + return new SignRequestSignerAttachment(this); + } + } +} From 2f8c162cc72bf39254697144455d2405410c7e65 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 3 Dec 2025 12:45:13 +0100 Subject: [PATCH 062/148] docs: modify `can_view_path` description and add confidence scores for structured extract (box/box-openapi#566) (#1601) --- .codegen.json | 2 +- .../CreateCollaborationRequestBody.java | 3 ++- .../UpdateCollaborationByIdRequestBody.java | 3 ++- .../AiExtractStructured.java | 23 +++++++++++++++- .../AiExtractStructuredResponse.java | 26 ++++++++++++++++++- 5 files changed, 52 insertions(+), 5 deletions(-) diff --git a/.codegen.json b/.codegen.json index 9abfa0438..7f4c39213 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "49f3695", "specHash": "7e4908e", "version": "10.2.0" } +{ "engineHash": "49f3695", "specHash": "5183b65", "version": "10.2.0" } diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBody.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBody.java index 2f245c282..e39079bc4 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBody.java @@ -49,7 +49,8 @@ public class CreateCollaborationRequestBody extends SerializableObject { * Files** page. We recommend you limit the number of collaborations with `can_view_path` enabled * to 1,000 per user. * - *

    Only owner or co-owners can invite collaborators with a `can_view_path` of `true`. + *

    Only an owner or co-owners can invite collaborators with a `can_view_path` of `true`. Only + * an owner can update `can_view_path` on existing collaborations. * *

    `can_view_path` can only be used for folder collaborations. */ diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBody.java index 50e7c6ebb..8397f7b76 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBody.java @@ -65,7 +65,8 @@ public class UpdateCollaborationByIdRequestBody extends SerializableObject { * Files** page. We recommend you limit the number of collaborations with `can_view_path` enabled * to 1,000 per user. * - *

    Only owner or co-owners can invite collaborators with a `can_view_path` of `true`. + *

    Only an owner or co-owners can invite collaborators with a `can_view_path` of `true`. Only + * an owner can update `can_view_path` on existing collaborations. * *

    `can_view_path` can only be used for folder collaborations. */ diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java index 4e23ae994..582201abe 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java @@ -31,6 +31,10 @@ public class AiExtractStructured extends SerializableObject { */ protected List fields; + /** A flag to indicate whether confidence scores for every extracted field should be returned. */ + @JsonProperty("include_confidence_score") + protected Boolean includeConfidenceScore; + @JsonProperty("ai_agent") protected AiExtractStructuredAgent aiAgent; @@ -44,6 +48,7 @@ protected AiExtractStructured(Builder builder) { this.items = builder.items; this.metadataTemplate = builder.metadataTemplate; this.fields = builder.fields; + this.includeConfidenceScore = builder.includeConfidenceScore; this.aiAgent = builder.aiAgent; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -60,6 +65,10 @@ public List getFields() { return fields; } + public Boolean getIncludeConfidenceScore() { + return includeConfidenceScore; + } + public AiExtractStructuredAgent getAiAgent() { return aiAgent; } @@ -76,12 +85,13 @@ public boolean equals(Object o) { return Objects.equals(items, casted.items) && Objects.equals(metadataTemplate, casted.metadataTemplate) && Objects.equals(fields, casted.fields) + && Objects.equals(includeConfidenceScore, casted.includeConfidenceScore) && Objects.equals(aiAgent, casted.aiAgent); } @Override public int hashCode() { - return Objects.hash(items, metadataTemplate, fields, aiAgent); + return Objects.hash(items, metadataTemplate, fields, includeConfidenceScore, aiAgent); } @Override @@ -99,6 +109,10 @@ public String toString() { + fields + '\'' + ", " + + "includeConfidenceScore='" + + includeConfidenceScore + + '\'' + + ", " + "aiAgent='" + aiAgent + '\'' @@ -113,6 +127,8 @@ public static class Builder extends NullableFieldTracker { protected List fields; + protected Boolean includeConfidenceScore; + protected AiExtractStructuredAgent aiAgent; public Builder(List items) { @@ -130,6 +146,11 @@ public Builder fields(List fields) { return this; } + public Builder includeConfidenceScore(Boolean includeConfidenceScore) { + this.includeConfidenceScore = includeConfidenceScore; + return this; + } + public Builder aiAgent(AiAgentReference aiAgent) { this.aiAgent = new AiExtractStructuredAgent(aiAgent); return this; diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java index 42e94c96e..3cdc770f9 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java @@ -28,6 +28,13 @@ public class AiExtractStructuredResponse extends SerializableObject { @JsonProperty("completion_reason") protected String completionReason; + /** + * The confidence score numeric values for each extracted field as a JSON dictionary. This can be + * empty if no field could be extracted. + */ + @JsonProperty("confidence_score") + protected Map confidenceScore; + @JsonProperty("ai_agent_info") protected AiAgentInfo aiAgentInfo; @@ -44,6 +51,7 @@ protected AiExtractStructuredResponse(Builder builder) { this.answer = builder.answer; this.createdAt = builder.createdAt; this.completionReason = builder.completionReason; + this.confidenceScore = builder.confidenceScore; this.aiAgentInfo = builder.aiAgentInfo; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -60,6 +68,10 @@ public String getCompletionReason() { return completionReason; } + public Map getConfidenceScore() { + return confidenceScore; + } + public AiAgentInfo getAiAgentInfo() { return aiAgentInfo; } @@ -76,12 +88,13 @@ public boolean equals(Object o) { return Objects.equals(answer, casted.answer) && Objects.equals(createdAt, casted.createdAt) && Objects.equals(completionReason, casted.completionReason) + && Objects.equals(confidenceScore, casted.confidenceScore) && Objects.equals(aiAgentInfo, casted.aiAgentInfo); } @Override public int hashCode() { - return Objects.hash(answer, createdAt, completionReason, aiAgentInfo); + return Objects.hash(answer, createdAt, completionReason, confidenceScore, aiAgentInfo); } @Override @@ -99,6 +112,10 @@ public String toString() { + completionReason + '\'' + ", " + + "confidenceScore='" + + confidenceScore + + '\'' + + ", " + "aiAgentInfo='" + aiAgentInfo + '\'' @@ -113,6 +130,8 @@ public static class Builder extends NullableFieldTracker { protected String completionReason; + protected Map confidenceScore; + protected AiAgentInfo aiAgentInfo; public Builder(Map answer, OffsetDateTime createdAt) { @@ -126,6 +145,11 @@ public Builder completionReason(String completionReason) { return this; } + public Builder confidenceScore(Map confidenceScore) { + this.confidenceScore = confidenceScore; + return this; + } + public Builder aiAgentInfo(AiAgentInfo aiAgentInfo) { this.aiAgentInfo = aiAgentInfo; return this; From 0a069cdecc4837d8bdb6f1e91401d88c58af5a92 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 10 Dec 2025 14:18:39 +0100 Subject: [PATCH 063/148] feat: Remove `confidence_score` and `include_confidence_score` from AI extract (box/box-openapi#567) (#1615) Co-authored-by: box-sdk-build --- .codegen.json | 2 +- docs/transfer.md | 2 +- .../managers/transfer/TransferManager.java | 8 +++--- .../CreateCollaborationRequestBody.java | 5 ++++ .../UpdateCollaborationByIdRequestBody.java | 5 ++++ .../AiExtractStructured.java | 23 +--------------- .../AiExtractStructuredResponse.java | 26 +------------------ 7 files changed, 18 insertions(+), 53 deletions(-) diff --git a/.codegen.json b/.codegen.json index 7f4c39213..7b881e098 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "49f3695", "specHash": "5183b65", "version": "10.2.0" } +{ "engineHash": "3d9d391", "specHash": "31c41d5", "version": "10.2.0" } diff --git a/docs/transfer.md b/docs/transfer.md index 039d67195..38fae1a6a 100644 --- a/docs/transfer.md +++ b/docs/transfer.md @@ -6,7 +6,7 @@ ## Transfer owned folders Move all of the items (files, folders and workflows) owned by a user into -another user's account +another user's account. Only the root folder (`0`) can be transferred. diff --git a/src/main/java/com/box/sdkgen/managers/transfer/TransferManager.java b/src/main/java/com/box/sdkgen/managers/transfer/TransferManager.java index a4aa82499..d1f22bf2d 100644 --- a/src/main/java/com/box/sdkgen/managers/transfer/TransferManager.java +++ b/src/main/java/com/box/sdkgen/managers/transfer/TransferManager.java @@ -32,7 +32,7 @@ protected TransferManager(Builder builder) { /** * Move all of the items (files, folders and workflows) owned by a user into another user's - * account + * account. * *

    Only the root folder (`0`) can be transferred. * @@ -75,7 +75,7 @@ public FolderFull transferOwnedFolder(String userId, TransferOwnedFolderRequestB /** * Move all of the items (files, folders and workflows) owned by a user into another user's - * account + * account. * *

    Only the root folder (`0`) can be transferred. * @@ -118,7 +118,7 @@ public FolderFull transferOwnedFolder( /** * Move all of the items (files, folders and workflows) owned by a user into another user's - * account + * account. * *

    Only the root folder (`0`) can be transferred. * @@ -161,7 +161,7 @@ public FolderFull transferOwnedFolder( /** * Move all of the items (files, folders and workflows) owned by a user into another user's - * account + * account. * *

    Only the root folder (`0`) can be transferred. * diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBody.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBody.java index e39079bc4..6d9ea75d3 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBody.java @@ -53,6 +53,11 @@ public class CreateCollaborationRequestBody extends SerializableObject { * an owner can update `can_view_path` on existing collaborations. * *

    `can_view_path` can only be used for folder collaborations. + * + *

    When you delete a folder with `can_view_path=true`, collaborators may still see the parent + * path. For instructions on how to remove this, see [Even though a folder invited via + * can_view_path is deleted, the path remains + * displayed](https://support.box.com/hc/en-us/articles/37472814319891-Even-though-a-folder-invited-via-can-view-path-is-deleted-the-path-remains-displayed). */ @JsonProperty("can_view_path") protected Boolean canViewPath; diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBody.java index 8397f7b76..cedd87891 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBody.java @@ -69,6 +69,11 @@ public class UpdateCollaborationByIdRequestBody extends SerializableObject { * an owner can update `can_view_path` on existing collaborations. * *

    `can_view_path` can only be used for folder collaborations. + * + *

    When you delete a folder with `can_view_path=true`, collaborators may still see the parent + * path. For instructions on how to remove this, see [Even though a folder invited via + * can_view_path is deleted, the path remains + * displayed](https://support.box.com/hc/en-us/articles/37472814319891-Even-though-a-folder-invited-via-can-view-path-is-deleted-the-path-remains-displayed). */ @JsonProperty("can_view_path") protected Boolean canViewPath; diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java index 582201abe..4e23ae994 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java @@ -31,10 +31,6 @@ public class AiExtractStructured extends SerializableObject { */ protected List fields; - /** A flag to indicate whether confidence scores for every extracted field should be returned. */ - @JsonProperty("include_confidence_score") - protected Boolean includeConfidenceScore; - @JsonProperty("ai_agent") protected AiExtractStructuredAgent aiAgent; @@ -48,7 +44,6 @@ protected AiExtractStructured(Builder builder) { this.items = builder.items; this.metadataTemplate = builder.metadataTemplate; this.fields = builder.fields; - this.includeConfidenceScore = builder.includeConfidenceScore; this.aiAgent = builder.aiAgent; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -65,10 +60,6 @@ public List getFields() { return fields; } - public Boolean getIncludeConfidenceScore() { - return includeConfidenceScore; - } - public AiExtractStructuredAgent getAiAgent() { return aiAgent; } @@ -85,13 +76,12 @@ public boolean equals(Object o) { return Objects.equals(items, casted.items) && Objects.equals(metadataTemplate, casted.metadataTemplate) && Objects.equals(fields, casted.fields) - && Objects.equals(includeConfidenceScore, casted.includeConfidenceScore) && Objects.equals(aiAgent, casted.aiAgent); } @Override public int hashCode() { - return Objects.hash(items, metadataTemplate, fields, includeConfidenceScore, aiAgent); + return Objects.hash(items, metadataTemplate, fields, aiAgent); } @Override @@ -109,10 +99,6 @@ public String toString() { + fields + '\'' + ", " - + "includeConfidenceScore='" - + includeConfidenceScore - + '\'' - + ", " + "aiAgent='" + aiAgent + '\'' @@ -127,8 +113,6 @@ public static class Builder extends NullableFieldTracker { protected List fields; - protected Boolean includeConfidenceScore; - protected AiExtractStructuredAgent aiAgent; public Builder(List items) { @@ -146,11 +130,6 @@ public Builder fields(List fields) { return this; } - public Builder includeConfidenceScore(Boolean includeConfidenceScore) { - this.includeConfidenceScore = includeConfidenceScore; - return this; - } - public Builder aiAgent(AiAgentReference aiAgent) { this.aiAgent = new AiExtractStructuredAgent(aiAgent); return this; diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java index 3cdc770f9..42e94c96e 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java @@ -28,13 +28,6 @@ public class AiExtractStructuredResponse extends SerializableObject { @JsonProperty("completion_reason") protected String completionReason; - /** - * The confidence score numeric values for each extracted field as a JSON dictionary. This can be - * empty if no field could be extracted. - */ - @JsonProperty("confidence_score") - protected Map confidenceScore; - @JsonProperty("ai_agent_info") protected AiAgentInfo aiAgentInfo; @@ -51,7 +44,6 @@ protected AiExtractStructuredResponse(Builder builder) { this.answer = builder.answer; this.createdAt = builder.createdAt; this.completionReason = builder.completionReason; - this.confidenceScore = builder.confidenceScore; this.aiAgentInfo = builder.aiAgentInfo; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -68,10 +60,6 @@ public String getCompletionReason() { return completionReason; } - public Map getConfidenceScore() { - return confidenceScore; - } - public AiAgentInfo getAiAgentInfo() { return aiAgentInfo; } @@ -88,13 +76,12 @@ public boolean equals(Object o) { return Objects.equals(answer, casted.answer) && Objects.equals(createdAt, casted.createdAt) && Objects.equals(completionReason, casted.completionReason) - && Objects.equals(confidenceScore, casted.confidenceScore) && Objects.equals(aiAgentInfo, casted.aiAgentInfo); } @Override public int hashCode() { - return Objects.hash(answer, createdAt, completionReason, confidenceScore, aiAgentInfo); + return Objects.hash(answer, createdAt, completionReason, aiAgentInfo); } @Override @@ -112,10 +99,6 @@ public String toString() { + completionReason + '\'' + ", " - + "confidenceScore='" - + confidenceScore - + '\'' - + ", " + "aiAgentInfo='" + aiAgentInfo + '\'' @@ -130,8 +113,6 @@ public static class Builder extends NullableFieldTracker { protected String completionReason; - protected Map confidenceScore; - protected AiAgentInfo aiAgentInfo; public Builder(Map answer, OffsetDateTime createdAt) { @@ -145,11 +126,6 @@ public Builder completionReason(String completionReason) { return this; } - public Builder confidenceScore(Map confidenceScore) { - this.confidenceScore = confidenceScore; - return this; - } - public Builder aiAgentInfo(AiAgentInfo aiAgentInfo) { this.aiAgentInfo = aiAgentInfo; return this; From 63bb1fe2f72d1e91ce0c56f924fe885a08a55370 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 10 Dec 2025 16:17:31 +0100 Subject: [PATCH 064/148] chore: release version 10.3.0 (#1619) --- .codegen.json | 2 +- CHANGELOG.md | 8 ++++++++ build.gradle | 2 +- .../java/com/box/sdkgen/networking/version/Version.java | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index 7b881e098..1cd34fc58 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "3d9d391", "specHash": "31c41d5", "version": "10.2.0" } +{ "engineHash": "3d9d391", "specHash": "31c41d5", "version": "10.3.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index c55fc991a..c0b729967 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,14 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [10.3.0](https://github.com/box/box-java-sdk/compare/v10.2.0...v10.3.0) (2025-12-10) + + +### New Features and Enhancements + +* Remove `confidence_score` and `include_confidence_score` from AI extract (box/box-openapi[#567](https://github.com/box/box-java-sdk/issues/567)) ([#1615](https://github.com/box/box-java-sdk/issues/1615)) ([0a069cd](https://github.com/box/box-java-sdk/commit/0a069cdecc4837d8bdb6f1e91401d88c58af5a92)) +* Support new sign request metadata (box/box-openapi[#565](https://github.com/box/box-java-sdk/issues/565)) ([#1599](https://github.com/box/box-java-sdk/issues/1599)) ([b3c46bb](https://github.com/box/box-java-sdk/commit/b3c46bbf2f2f7b9b25befcd6442a4e5c9a92e790)) + ## [10.2.0](https://github.com/box/box-java-sdk/compare/v10.1.0...v10.2.0) (2025-11-19) diff --git a/build.gradle b/build.gradle index 7f9726428..5a1a96c94 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ plugins { } group = "com.box" archivesBaseName = "box-java-sdk" -version = "10.2.0" +version = "10.3.0" java { sourceCompatibility = JavaVersion.toVersion(libraryJavaVersion) targetCompatibility = JavaVersion.toVersion(libraryJavaVersion) diff --git a/src/main/java/com/box/sdkgen/networking/version/Version.java b/src/main/java/com/box/sdkgen/networking/version/Version.java index 50d40ba49..c1ad6dd56 100644 --- a/src/main/java/com/box/sdkgen/networking/version/Version.java +++ b/src/main/java/com/box/sdkgen/networking/version/Version.java @@ -3,6 +3,6 @@ public class Version { public static String getVersion() { - return "10.2.0"; + return "10.3.0"; } } From f135e2b62d4b2d2d266ab40b3b366c8c7968d2db Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 16 Dec 2025 13:07:18 +0100 Subject: [PATCH 065/148] fix: fix `RetryAfter` function when there's no `Retry-After` header (box/box-codegen#903) (#1622) Co-authored-by: Minh Nguyen Cong --- .../com/box/sdkgen/networking/retries/BoxRetryStrategy.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/box/sdkgen/networking/retries/BoxRetryStrategy.java b/src/main/java/com/box/sdkgen/networking/retries/BoxRetryStrategy.java index dcba2d307..8ee947fe2 100644 --- a/src/main/java/com/box/sdkgen/networking/retries/BoxRetryStrategy.java +++ b/src/main/java/com/box/sdkgen/networking/retries/BoxRetryStrategy.java @@ -67,7 +67,10 @@ public boolean shouldRetry( @Override public double retryAfter( FetchOptions fetchOptions, FetchResponse fetchResponse, int attemptNumber) { - String retryAfterHeader = fetchResponse.getHeaders().get("Retry-After"); + String retryAfterHeader = + (fetchResponse.getHeaders().containsKey("Retry-After") + ? fetchResponse.getHeaders().get("Retry-After") + : null); if (!(retryAfterHeader == null)) { return Double.parseDouble(retryAfterHeader); } From 8c5b5c17285c1c0d4a644eb8187dac92f1f96f28 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 16 Dec 2025 15:17:30 +0100 Subject: [PATCH 066/148] feat: text input validation for Box Sign (box/box-openapi#568) (#1624) Co-authored-by: box-sdk-build --- .codegen.json | 2 +- .../SignRequestSignerInput.java | 104 ++++- ...ignRequestSignerInputCustomValidation.java | 152 +++++++ ...utCustomValidationValidationTypeField.java | 65 +++ ...nRequestSignerInputDateAsiaValidation.java | 95 ++++ ...DateAsiaValidationValidationTypeField.java | 65 +++ ...ignRequestSignerInputDateEuValidation.java | 94 ++++ ...utDateEuValidationValidationTypeField.java | 65 +++ ...gnRequestSignerInputDateIsoValidation.java | 95 ++++ ...tDateIsoValidationValidationTypeField.java | 65 +++ ...ignRequestSignerInputDateUsValidation.java | 94 ++++ ...utDateUsValidationValidationTypeField.java | 65 +++ ...SignRequestSignerInputEmailValidation.java | 102 +++++ ...putEmailValidationValidationTypeField.java | 64 +++ ...tSignerInputNumberWithCommaValidation.java | 101 +++++ ...ithCommaValidationValidationTypeField.java | 67 +++ ...SignerInputNumberWithPeriodValidation.java | 102 +++++ ...thPeriodValidationValidationTypeField.java | 69 +++ .../SignRequestSignerInputSsnValidation.java | 102 +++++ ...InputSsnValidationValidationTypeField.java | 63 +++ .../SignRequestSignerInputValidation.java | 421 ++++++++++++++++++ .../SignRequestSignerInputZip4Validation.java | 102 +++++ ...nputZip4ValidationValidationTypeField.java | 63 +++ .../SignRequestSignerInputZipValidation.java | 102 +++++ ...InputZipValidationValidationTypeField.java | 63 +++ .../TemplateSignerInput.java | 97 +++- 26 files changed, 2472 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidationValidationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateasiavalidation/SignRequestSignerInputDateAsiaValidation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateasiavalidation/SignRequestSignerInputDateAsiaValidationValidationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateeuvalidation/SignRequestSignerInputDateEuValidation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateeuvalidation/SignRequestSignerInputDateEuValidationValidationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateisovalidation/SignRequestSignerInputDateIsoValidation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateisovalidation/SignRequestSignerInputDateIsoValidationValidationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateusvalidation/SignRequestSignerInputDateUsValidation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateusvalidation/SignRequestSignerInputDateUsValidationValidationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputemailvalidation/SignRequestSignerInputEmailValidation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputemailvalidation/SignRequestSignerInputEmailValidationValidationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithcommavalidation/SignRequestSignerInputNumberWithCommaValidation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithcommavalidation/SignRequestSignerInputNumberWithCommaValidationValidationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithperiodvalidation/SignRequestSignerInputNumberWithPeriodValidation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithperiodvalidation/SignRequestSignerInputNumberWithPeriodValidationValidationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputssnvalidation/SignRequestSignerInputSsnValidation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputssnvalidation/SignRequestSignerInputSsnValidationValidationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputvalidation/SignRequestSignerInputValidation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzip4validation/SignRequestSignerInputZip4Validation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzip4validation/SignRequestSignerInputZip4ValidationValidationTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzipvalidation/SignRequestSignerInputZipValidation.java create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzipvalidation/SignRequestSignerInputZipValidationValidationTypeField.java diff --git a/.codegen.json b/.codegen.json index 1cd34fc58..5cfe7ed0c 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "3d9d391", "specHash": "31c41d5", "version": "10.3.0" } +{ "engineHash": "f97463c", "specHash": "b7abe0d", "version": "10.3.0" } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInput.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInput.java index 88910bc27..9af6c3971 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInput.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInput.java @@ -1,6 +1,18 @@ package com.box.sdkgen.schemas.signrequestsignerinput; import com.box.sdkgen.schemas.signrequestprefilltag.SignRequestPrefillTag; +import com.box.sdkgen.schemas.signrequestsignerinputcustomvalidation.SignRequestSignerInputCustomValidation; +import com.box.sdkgen.schemas.signrequestsignerinputdateasiavalidation.SignRequestSignerInputDateAsiaValidation; +import com.box.sdkgen.schemas.signrequestsignerinputdateeuvalidation.SignRequestSignerInputDateEuValidation; +import com.box.sdkgen.schemas.signrequestsignerinputdateisovalidation.SignRequestSignerInputDateIsoValidation; +import com.box.sdkgen.schemas.signrequestsignerinputdateusvalidation.SignRequestSignerInputDateUsValidation; +import com.box.sdkgen.schemas.signrequestsignerinputemailvalidation.SignRequestSignerInputEmailValidation; +import com.box.sdkgen.schemas.signrequestsignerinputnumberwithcommavalidation.SignRequestSignerInputNumberWithCommaValidation; +import com.box.sdkgen.schemas.signrequestsignerinputnumberwithperiodvalidation.SignRequestSignerInputNumberWithPeriodValidation; +import com.box.sdkgen.schemas.signrequestsignerinputssnvalidation.SignRequestSignerInputSsnValidation; +import com.box.sdkgen.schemas.signrequestsignerinputvalidation.SignRequestSignerInputValidation; +import com.box.sdkgen.schemas.signrequestsignerinputzip4validation.SignRequestSignerInputZip4Validation; +import com.box.sdkgen.schemas.signrequestsignerinputzipvalidation.SignRequestSignerInputZipValidation; import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; @@ -36,10 +48,16 @@ public class SignRequestSignerInput extends SignRequestPrefillTag { @JsonProperty("page_index") protected final long pageIndex; - /** Whether this input was defined as read-only(immutable by signers) or not. */ + /** Indicates whether this input is read-only (cannot be modified by signers). */ @JsonProperty("read_only") protected Boolean readOnly; + /** + * Specifies the formatting rules that signers must follow for text field inputs. If set, this + * validation is mandatory. + */ + protected SignRequestSignerInputValidation validation; + public SignRequestSignerInput(@JsonProperty("page_index") long pageIndex) { super(); this.pageIndex = pageIndex; @@ -51,6 +69,7 @@ protected SignRequestSignerInput(Builder builder) { this.contentType = builder.contentType; this.pageIndex = builder.pageIndex; this.readOnly = builder.readOnly; + this.validation = builder.validation; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -70,6 +89,10 @@ public Boolean getReadOnly() { return readOnly; } + public SignRequestSignerInputValidation getValidation() { + return validation; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -86,13 +109,22 @@ public boolean equals(Object o) { && Objects.equals(type, casted.type) && Objects.equals(contentType, casted.contentType) && Objects.equals(pageIndex, casted.pageIndex) - && Objects.equals(readOnly, casted.readOnly); + && Objects.equals(readOnly, casted.readOnly) + && Objects.equals(validation, casted.validation); } @Override public int hashCode() { return Objects.hash( - documentTagId, textValue, checkboxValue, dateValue, type, contentType, pageIndex, readOnly); + documentTagId, + textValue, + checkboxValue, + dateValue, + type, + contentType, + pageIndex, + readOnly, + validation); } @Override @@ -129,6 +161,10 @@ public String toString() { + "readOnly='" + readOnly + '\'' + + ", " + + "validation='" + + validation + + '\'' + "}"; } @@ -142,6 +178,8 @@ public static class Builder extends SignRequestPrefillTag.Builder { protected Boolean readOnly; + protected SignRequestSignerInputValidation validation; + public Builder(long pageIndex) { super(); this.pageIndex = pageIndex; @@ -172,6 +210,66 @@ public Builder readOnly(Boolean readOnly) { return this; } + public Builder validation(SignRequestSignerInputEmailValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputCustomValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputZipValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputZip4Validation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputSsnValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputNumberWithPeriodValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputNumberWithCommaValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputDateIsoValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputDateUsValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputDateEuValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputDateAsiaValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputValidation validation) { + this.validation = validation; + return this; + } + @Override public Builder documentTagId(String documentTagId) { this.documentTagId = documentTagId; diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidation.java new file mode 100644 index 000000000..031e6af69 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidation.java @@ -0,0 +1,152 @@ +package com.box.sdkgen.schemas.signrequestsignerinputcustomvalidation; + +import static com.box.sdkgen.internal.utils.UtilsManager.setOf; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** + * Specifies the custom validation rules for a text field input by the signer. If set, this + * validation is mandatory. + */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerInputCustomValidation extends SerializableObject { + + /** + * Defines the validation format for the text input as custom. A custom regular expression is used + * for validation. + */ + @JsonDeserialize( + using = + SignRequestSignerInputCustomValidationValidationTypeField + .SignRequestSignerInputCustomValidationValidationTypeFieldDeserializer.class) + @JsonSerialize( + using = + SignRequestSignerInputCustomValidationValidationTypeField + .SignRequestSignerInputCustomValidationValidationTypeFieldSerializer.class) + @JsonProperty("validation_type") + protected EnumWrapper validationType; + + /** Regular expression used for validation. */ + @JsonProperty("custom_regex") + @Nullable + protected final String customRegex; + + /** Error message shown if input fails custom regular expression validation. */ + @JsonProperty("custom_error_message") + @Nullable + protected final String customErrorMessage; + + public SignRequestSignerInputCustomValidation( + @JsonProperty("custom_regex") String customRegex, + @JsonProperty("custom_error_message") String customErrorMessage) { + super(); + this.customRegex = customRegex; + this.customErrorMessage = customErrorMessage; + this.validationType = + new EnumWrapper( + SignRequestSignerInputCustomValidationValidationTypeField.CUSTOM); + markNullableFieldsAsSet(setOf("custom_regex", "custom_error_message")); + } + + protected SignRequestSignerInputCustomValidation(Builder builder) { + super(); + this.validationType = builder.validationType; + this.customRegex = builder.customRegex; + this.customErrorMessage = builder.customErrorMessage; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper + getValidationType() { + return validationType; + } + + public String getCustomRegex() { + return customRegex; + } + + public String getCustomErrorMessage() { + return customErrorMessage; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerInputCustomValidation casted = (SignRequestSignerInputCustomValidation) o; + return Objects.equals(validationType, casted.validationType) + && Objects.equals(customRegex, casted.customRegex) + && Objects.equals(customErrorMessage, casted.customErrorMessage); + } + + @Override + public int hashCode() { + return Objects.hash(validationType, customRegex, customErrorMessage); + } + + @Override + public String toString() { + return "SignRequestSignerInputCustomValidation{" + + "validationType='" + + validationType + + '\'' + + ", " + + "customRegex='" + + customRegex + + '\'' + + ", " + + "customErrorMessage='" + + customErrorMessage + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper validationType; + + protected final String customRegex; + + protected final String customErrorMessage; + + public Builder(String customRegex, String customErrorMessage) { + super(); + this.customRegex = customRegex; + this.customErrorMessage = customErrorMessage; + this.validationType = + new EnumWrapper( + SignRequestSignerInputCustomValidationValidationTypeField.CUSTOM); + markNullableFieldsAsSet(setOf("custom_regex", "custom_error_message")); + } + + public Builder validationType( + SignRequestSignerInputCustomValidationValidationTypeField validationType) { + this.validationType = + new EnumWrapper( + validationType); + return this; + } + + public Builder validationType( + EnumWrapper validationType) { + this.validationType = validationType; + return this; + } + + public SignRequestSignerInputCustomValidation build() { + return new SignRequestSignerInputCustomValidation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidationValidationTypeField.java new file mode 100644 index 000000000..81d2c290b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidationValidationTypeField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.schemas.signrequestsignerinputcustomvalidation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SignRequestSignerInputCustomValidationValidationTypeField implements Valuable { + CUSTOM("custom"); + + private final String value; + + SignRequestSignerInputCustomValidationValidationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestSignerInputCustomValidationValidationTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public SignRequestSignerInputCustomValidationValidationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestSignerInputCustomValidationValidationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper(value)); + } + } + + public static class SignRequestSignerInputCustomValidationValidationTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public SignRequestSignerInputCustomValidationValidationTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateasiavalidation/SignRequestSignerInputDateAsiaValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateasiavalidation/SignRequestSignerInputDateAsiaValidation.java new file mode 100644 index 000000000..efef8f489 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateasiavalidation/SignRequestSignerInputDateAsiaValidation.java @@ -0,0 +1,95 @@ +package com.box.sdkgen.schemas.signrequestsignerinputdateasiavalidation; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** + * Specifies the date formatting rules used in Asia for a text field input by the signer. If set, + * this validation is mandatory. The date format follows `YYYY/MM/DD` pattern. + */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerInputDateAsiaValidation extends SerializableObject { + + /** Validates that the text input uses the Asian date format `YYYY/MM/DD`. */ + @JsonDeserialize( + using = + SignRequestSignerInputDateAsiaValidationValidationTypeField + .SignRequestSignerInputDateAsiaValidationValidationTypeFieldDeserializer.class) + @JsonSerialize( + using = + SignRequestSignerInputDateAsiaValidationValidationTypeField + .SignRequestSignerInputDateAsiaValidationValidationTypeFieldSerializer.class) + @JsonProperty("validation_type") + protected EnumWrapper validationType; + + public SignRequestSignerInputDateAsiaValidation() { + super(); + } + + protected SignRequestSignerInputDateAsiaValidation(Builder builder) { + super(); + this.validationType = builder.validationType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper + getValidationType() { + return validationType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerInputDateAsiaValidation casted = (SignRequestSignerInputDateAsiaValidation) o; + return Objects.equals(validationType, casted.validationType); + } + + @Override + public int hashCode() { + return Objects.hash(validationType); + } + + @Override + public String toString() { + return "SignRequestSignerInputDateAsiaValidation{" + + "validationType='" + + validationType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper + validationType; + + public Builder validationType( + SignRequestSignerInputDateAsiaValidationValidationTypeField validationType) { + this.validationType = + new EnumWrapper( + validationType); + return this; + } + + public Builder validationType( + EnumWrapper validationType) { + this.validationType = validationType; + return this; + } + + public SignRequestSignerInputDateAsiaValidation build() { + return new SignRequestSignerInputDateAsiaValidation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateasiavalidation/SignRequestSignerInputDateAsiaValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateasiavalidation/SignRequestSignerInputDateAsiaValidationValidationTypeField.java new file mode 100644 index 000000000..a6dd68a18 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateasiavalidation/SignRequestSignerInputDateAsiaValidationValidationTypeField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.schemas.signrequestsignerinputdateasiavalidation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SignRequestSignerInputDateAsiaValidationValidationTypeField implements Valuable { + DATE_ASIA("date_asia"); + + private final String value; + + SignRequestSignerInputDateAsiaValidationValidationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestSignerInputDateAsiaValidationValidationTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public SignRequestSignerInputDateAsiaValidationValidationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestSignerInputDateAsiaValidationValidationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper(value)); + } + } + + public static class SignRequestSignerInputDateAsiaValidationValidationTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public SignRequestSignerInputDateAsiaValidationValidationTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateeuvalidation/SignRequestSignerInputDateEuValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateeuvalidation/SignRequestSignerInputDateEuValidation.java new file mode 100644 index 000000000..d0d802f89 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateeuvalidation/SignRequestSignerInputDateEuValidation.java @@ -0,0 +1,94 @@ +package com.box.sdkgen.schemas.signrequestsignerinputdateeuvalidation; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** + * Specifies the date formatting rules used in Europe for a text field input by the signer. If set, + * this validation is mandatory. The date format follows `DD/MM/YYYY` pattern. + */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerInputDateEuValidation extends SerializableObject { + + /** Validates that the text input uses the European date format `DD/MM/YYYY`. */ + @JsonDeserialize( + using = + SignRequestSignerInputDateEuValidationValidationTypeField + .SignRequestSignerInputDateEuValidationValidationTypeFieldDeserializer.class) + @JsonSerialize( + using = + SignRequestSignerInputDateEuValidationValidationTypeField + .SignRequestSignerInputDateEuValidationValidationTypeFieldSerializer.class) + @JsonProperty("validation_type") + protected EnumWrapper validationType; + + public SignRequestSignerInputDateEuValidation() { + super(); + } + + protected SignRequestSignerInputDateEuValidation(Builder builder) { + super(); + this.validationType = builder.validationType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper + getValidationType() { + return validationType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerInputDateEuValidation casted = (SignRequestSignerInputDateEuValidation) o; + return Objects.equals(validationType, casted.validationType); + } + + @Override + public int hashCode() { + return Objects.hash(validationType); + } + + @Override + public String toString() { + return "SignRequestSignerInputDateEuValidation{" + + "validationType='" + + validationType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper validationType; + + public Builder validationType( + SignRequestSignerInputDateEuValidationValidationTypeField validationType) { + this.validationType = + new EnumWrapper( + validationType); + return this; + } + + public Builder validationType( + EnumWrapper validationType) { + this.validationType = validationType; + return this; + } + + public SignRequestSignerInputDateEuValidation build() { + return new SignRequestSignerInputDateEuValidation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateeuvalidation/SignRequestSignerInputDateEuValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateeuvalidation/SignRequestSignerInputDateEuValidationValidationTypeField.java new file mode 100644 index 000000000..9c2f7cefd --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateeuvalidation/SignRequestSignerInputDateEuValidationValidationTypeField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.schemas.signrequestsignerinputdateeuvalidation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SignRequestSignerInputDateEuValidationValidationTypeField implements Valuable { + DATE_EU("date_eu"); + + private final String value; + + SignRequestSignerInputDateEuValidationValidationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestSignerInputDateEuValidationValidationTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public SignRequestSignerInputDateEuValidationValidationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestSignerInputDateEuValidationValidationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper(value)); + } + } + + public static class SignRequestSignerInputDateEuValidationValidationTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public SignRequestSignerInputDateEuValidationValidationTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateisovalidation/SignRequestSignerInputDateIsoValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateisovalidation/SignRequestSignerInputDateIsoValidation.java new file mode 100644 index 000000000..a25bc636f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateisovalidation/SignRequestSignerInputDateIsoValidation.java @@ -0,0 +1,95 @@ +package com.box.sdkgen.schemas.signrequestsignerinputdateisovalidation; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** + * Specifies the ISO date formatting rules for a text field input by the signer. If set, this + * validation is mandatory. The date format follows `YYYY-MM-DD` pattern. + */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerInputDateIsoValidation extends SerializableObject { + + /** Validates that the text input uses the ISO date format `YYYY-MM-DD`. */ + @JsonDeserialize( + using = + SignRequestSignerInputDateIsoValidationValidationTypeField + .SignRequestSignerInputDateIsoValidationValidationTypeFieldDeserializer.class) + @JsonSerialize( + using = + SignRequestSignerInputDateIsoValidationValidationTypeField + .SignRequestSignerInputDateIsoValidationValidationTypeFieldSerializer.class) + @JsonProperty("validation_type") + protected EnumWrapper validationType; + + public SignRequestSignerInputDateIsoValidation() { + super(); + } + + protected SignRequestSignerInputDateIsoValidation(Builder builder) { + super(); + this.validationType = builder.validationType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper + getValidationType() { + return validationType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerInputDateIsoValidation casted = (SignRequestSignerInputDateIsoValidation) o; + return Objects.equals(validationType, casted.validationType); + } + + @Override + public int hashCode() { + return Objects.hash(validationType); + } + + @Override + public String toString() { + return "SignRequestSignerInputDateIsoValidation{" + + "validationType='" + + validationType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper + validationType; + + public Builder validationType( + SignRequestSignerInputDateIsoValidationValidationTypeField validationType) { + this.validationType = + new EnumWrapper( + validationType); + return this; + } + + public Builder validationType( + EnumWrapper validationType) { + this.validationType = validationType; + return this; + } + + public SignRequestSignerInputDateIsoValidation build() { + return new SignRequestSignerInputDateIsoValidation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateisovalidation/SignRequestSignerInputDateIsoValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateisovalidation/SignRequestSignerInputDateIsoValidationValidationTypeField.java new file mode 100644 index 000000000..6415ff565 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateisovalidation/SignRequestSignerInputDateIsoValidationValidationTypeField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.schemas.signrequestsignerinputdateisovalidation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SignRequestSignerInputDateIsoValidationValidationTypeField implements Valuable { + DATE_ISO("date_iso"); + + private final String value; + + SignRequestSignerInputDateIsoValidationValidationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestSignerInputDateIsoValidationValidationTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public SignRequestSignerInputDateIsoValidationValidationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestSignerInputDateIsoValidationValidationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper(value)); + } + } + + public static class SignRequestSignerInputDateIsoValidationValidationTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public SignRequestSignerInputDateIsoValidationValidationTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateusvalidation/SignRequestSignerInputDateUsValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateusvalidation/SignRequestSignerInputDateUsValidation.java new file mode 100644 index 000000000..6deef0992 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateusvalidation/SignRequestSignerInputDateUsValidation.java @@ -0,0 +1,94 @@ +package com.box.sdkgen.schemas.signrequestsignerinputdateusvalidation; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** + * Specifies the US date formatting rules for a text field input by the signer. If set, this + * validation is mandatory. The date format follows `MM/DD/YYYY` pattern. + */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerInputDateUsValidation extends SerializableObject { + + /** Validates that the text input uses the US date format `MM/DD/YYYY`. */ + @JsonDeserialize( + using = + SignRequestSignerInputDateUsValidationValidationTypeField + .SignRequestSignerInputDateUsValidationValidationTypeFieldDeserializer.class) + @JsonSerialize( + using = + SignRequestSignerInputDateUsValidationValidationTypeField + .SignRequestSignerInputDateUsValidationValidationTypeFieldSerializer.class) + @JsonProperty("validation_type") + protected EnumWrapper validationType; + + public SignRequestSignerInputDateUsValidation() { + super(); + } + + protected SignRequestSignerInputDateUsValidation(Builder builder) { + super(); + this.validationType = builder.validationType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper + getValidationType() { + return validationType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerInputDateUsValidation casted = (SignRequestSignerInputDateUsValidation) o; + return Objects.equals(validationType, casted.validationType); + } + + @Override + public int hashCode() { + return Objects.hash(validationType); + } + + @Override + public String toString() { + return "SignRequestSignerInputDateUsValidation{" + + "validationType='" + + validationType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper validationType; + + public Builder validationType( + SignRequestSignerInputDateUsValidationValidationTypeField validationType) { + this.validationType = + new EnumWrapper( + validationType); + return this; + } + + public Builder validationType( + EnumWrapper validationType) { + this.validationType = validationType; + return this; + } + + public SignRequestSignerInputDateUsValidation build() { + return new SignRequestSignerInputDateUsValidation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateusvalidation/SignRequestSignerInputDateUsValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateusvalidation/SignRequestSignerInputDateUsValidationValidationTypeField.java new file mode 100644 index 000000000..528b4ca77 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateusvalidation/SignRequestSignerInputDateUsValidationValidationTypeField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.schemas.signrequestsignerinputdateusvalidation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SignRequestSignerInputDateUsValidationValidationTypeField implements Valuable { + DATE_US("date_us"); + + private final String value; + + SignRequestSignerInputDateUsValidationValidationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestSignerInputDateUsValidationValidationTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public SignRequestSignerInputDateUsValidationValidationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestSignerInputDateUsValidationValidationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper(value)); + } + } + + public static class SignRequestSignerInputDateUsValidationValidationTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public SignRequestSignerInputDateUsValidationValidationTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputemailvalidation/SignRequestSignerInputEmailValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputemailvalidation/SignRequestSignerInputEmailValidation.java new file mode 100644 index 000000000..f4f16f51e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputemailvalidation/SignRequestSignerInputEmailValidation.java @@ -0,0 +1,102 @@ +package com.box.sdkgen.schemas.signrequestsignerinputemailvalidation; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** + * Specifies the formatting rules that signers must follow for text field inputs. If set, this + * validation is mandatory. + */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerInputEmailValidation extends SerializableObject { + + /** Validates that the text input is an email address. */ + @JsonDeserialize( + using = + SignRequestSignerInputEmailValidationValidationTypeField + .SignRequestSignerInputEmailValidationValidationTypeFieldDeserializer.class) + @JsonSerialize( + using = + SignRequestSignerInputEmailValidationValidationTypeField + .SignRequestSignerInputEmailValidationValidationTypeFieldSerializer.class) + @JsonProperty("validation_type") + protected EnumWrapper validationType; + + public SignRequestSignerInputEmailValidation() { + super(); + this.validationType = + new EnumWrapper( + SignRequestSignerInputEmailValidationValidationTypeField.EMAIL); + } + + protected SignRequestSignerInputEmailValidation(Builder builder) { + super(); + this.validationType = builder.validationType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getValidationType() { + return validationType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerInputEmailValidation casted = (SignRequestSignerInputEmailValidation) o; + return Objects.equals(validationType, casted.validationType); + } + + @Override + public int hashCode() { + return Objects.hash(validationType); + } + + @Override + public String toString() { + return "SignRequestSignerInputEmailValidation{" + + "validationType='" + + validationType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper validationType; + + public Builder() { + super(); + this.validationType = + new EnumWrapper( + SignRequestSignerInputEmailValidationValidationTypeField.EMAIL); + } + + public Builder validationType( + SignRequestSignerInputEmailValidationValidationTypeField validationType) { + this.validationType = + new EnumWrapper(validationType); + return this; + } + + public Builder validationType( + EnumWrapper validationType) { + this.validationType = validationType; + return this; + } + + public SignRequestSignerInputEmailValidation build() { + return new SignRequestSignerInputEmailValidation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputemailvalidation/SignRequestSignerInputEmailValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputemailvalidation/SignRequestSignerInputEmailValidationValidationTypeField.java new file mode 100644 index 000000000..c2ca1b18e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputemailvalidation/SignRequestSignerInputEmailValidationValidationTypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.signrequestsignerinputemailvalidation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SignRequestSignerInputEmailValidationValidationTypeField implements Valuable { + EMAIL("email"); + + private final String value; + + SignRequestSignerInputEmailValidationValidationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestSignerInputEmailValidationValidationTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public SignRequestSignerInputEmailValidationValidationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestSignerInputEmailValidationValidationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SignRequestSignerInputEmailValidationValidationTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public SignRequestSignerInputEmailValidationValidationTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithcommavalidation/SignRequestSignerInputNumberWithCommaValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithcommavalidation/SignRequestSignerInputNumberWithCommaValidation.java new file mode 100644 index 000000000..5b7474b78 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithcommavalidation/SignRequestSignerInputNumberWithCommaValidation.java @@ -0,0 +1,101 @@ +package com.box.sdkgen.schemas.signrequestsignerinputnumberwithcommavalidation; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** + * Specifies the number with comma formatting rules for a text field input by the signer. If set, + * this validation is mandatory. + */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerInputNumberWithCommaValidation extends SerializableObject { + + /** + * Validates that the text input uses a number format with a comma as the decimal separator (for + * example, 1,23). + */ + @JsonDeserialize( + using = + SignRequestSignerInputNumberWithCommaValidationValidationTypeField + .SignRequestSignerInputNumberWithCommaValidationValidationTypeFieldDeserializer.class) + @JsonSerialize( + using = + SignRequestSignerInputNumberWithCommaValidationValidationTypeField + .SignRequestSignerInputNumberWithCommaValidationValidationTypeFieldSerializer.class) + @JsonProperty("validation_type") + protected EnumWrapper + validationType; + + public SignRequestSignerInputNumberWithCommaValidation() { + super(); + } + + protected SignRequestSignerInputNumberWithCommaValidation(Builder builder) { + super(); + this.validationType = builder.validationType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper + getValidationType() { + return validationType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerInputNumberWithCommaValidation casted = + (SignRequestSignerInputNumberWithCommaValidation) o; + return Objects.equals(validationType, casted.validationType); + } + + @Override + public int hashCode() { + return Objects.hash(validationType); + } + + @Override + public String toString() { + return "SignRequestSignerInputNumberWithCommaValidation{" + + "validationType='" + + validationType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper + validationType; + + public Builder validationType( + SignRequestSignerInputNumberWithCommaValidationValidationTypeField validationType) { + this.validationType = + new EnumWrapper( + validationType); + return this; + } + + public Builder validationType( + EnumWrapper + validationType) { + this.validationType = validationType; + return this; + } + + public SignRequestSignerInputNumberWithCommaValidation build() { + return new SignRequestSignerInputNumberWithCommaValidation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithcommavalidation/SignRequestSignerInputNumberWithCommaValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithcommavalidation/SignRequestSignerInputNumberWithCommaValidationValidationTypeField.java new file mode 100644 index 000000000..682d5028d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithcommavalidation/SignRequestSignerInputNumberWithCommaValidationValidationTypeField.java @@ -0,0 +1,67 @@ +package com.box.sdkgen.schemas.signrequestsignerinputnumberwithcommavalidation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SignRequestSignerInputNumberWithCommaValidationValidationTypeField implements Valuable { + NUMBER_WITH_COMMA("number_with_comma"); + + private final String value; + + SignRequestSignerInputNumberWithCommaValidationValidationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestSignerInputNumberWithCommaValidationValidationTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public SignRequestSignerInputNumberWithCommaValidationValidationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper + deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream( + SignRequestSignerInputNumberWithCommaValidationValidationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper( + value)); + } + } + + public static class SignRequestSignerInputNumberWithCommaValidationValidationTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public SignRequestSignerInputNumberWithCommaValidationValidationTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithperiodvalidation/SignRequestSignerInputNumberWithPeriodValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithperiodvalidation/SignRequestSignerInputNumberWithPeriodValidation.java new file mode 100644 index 000000000..4fd228626 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithperiodvalidation/SignRequestSignerInputNumberWithPeriodValidation.java @@ -0,0 +1,102 @@ +package com.box.sdkgen.schemas.signrequestsignerinputnumberwithperiodvalidation; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** + * Specifies the number with period formatting rules for a text field input by the signer. If set, + * this validation is mandatory. + */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerInputNumberWithPeriodValidation extends SerializableObject { + + /** + * Validates that the text input uses a number format with a period as the decimal separator (for + * example, 1.23). + */ + @JsonDeserialize( + using = + SignRequestSignerInputNumberWithPeriodValidationValidationTypeField + .SignRequestSignerInputNumberWithPeriodValidationValidationTypeFieldDeserializer + .class) + @JsonSerialize( + using = + SignRequestSignerInputNumberWithPeriodValidationValidationTypeField + .SignRequestSignerInputNumberWithPeriodValidationValidationTypeFieldSerializer.class) + @JsonProperty("validation_type") + protected EnumWrapper + validationType; + + public SignRequestSignerInputNumberWithPeriodValidation() { + super(); + } + + protected SignRequestSignerInputNumberWithPeriodValidation(Builder builder) { + super(); + this.validationType = builder.validationType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper + getValidationType() { + return validationType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerInputNumberWithPeriodValidation casted = + (SignRequestSignerInputNumberWithPeriodValidation) o; + return Objects.equals(validationType, casted.validationType); + } + + @Override + public int hashCode() { + return Objects.hash(validationType); + } + + @Override + public String toString() { + return "SignRequestSignerInputNumberWithPeriodValidation{" + + "validationType='" + + validationType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper + validationType; + + public Builder validationType( + SignRequestSignerInputNumberWithPeriodValidationValidationTypeField validationType) { + this.validationType = + new EnumWrapper( + validationType); + return this; + } + + public Builder validationType( + EnumWrapper + validationType) { + this.validationType = validationType; + return this; + } + + public SignRequestSignerInputNumberWithPeriodValidation build() { + return new SignRequestSignerInputNumberWithPeriodValidation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithperiodvalidation/SignRequestSignerInputNumberWithPeriodValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithperiodvalidation/SignRequestSignerInputNumberWithPeriodValidationValidationTypeField.java new file mode 100644 index 000000000..6e9d358e3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithperiodvalidation/SignRequestSignerInputNumberWithPeriodValidationValidationTypeField.java @@ -0,0 +1,69 @@ +package com.box.sdkgen.schemas.signrequestsignerinputnumberwithperiodvalidation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SignRequestSignerInputNumberWithPeriodValidationValidationTypeField + implements Valuable { + NUMBER_WITH_PERIOD("number_with_period"); + + private final String value; + + SignRequestSignerInputNumberWithPeriodValidationValidationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static + class SignRequestSignerInputNumberWithPeriodValidationValidationTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public SignRequestSignerInputNumberWithPeriodValidationValidationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper + deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream( + SignRequestSignerInputNumberWithPeriodValidationValidationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse( + new EnumWrapper( + value)); + } + } + + public static class SignRequestSignerInputNumberWithPeriodValidationValidationTypeFieldSerializer + extends JsonSerializer< + EnumWrapper> { + + public SignRequestSignerInputNumberWithPeriodValidationValidationTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputssnvalidation/SignRequestSignerInputSsnValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputssnvalidation/SignRequestSignerInputSsnValidation.java new file mode 100644 index 000000000..b5a94bd7e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputssnvalidation/SignRequestSignerInputSsnValidation.java @@ -0,0 +1,102 @@ +package com.box.sdkgen.schemas.signrequestsignerinputssnvalidation; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** + * Specifies the validation rules for a text field input by the signer. If set, this validation is + * mandatory. + */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerInputSsnValidation extends SerializableObject { + + /** Validates that the text input is a Social Security Number (SSN). */ + @JsonDeserialize( + using = + SignRequestSignerInputSsnValidationValidationTypeField + .SignRequestSignerInputSsnValidationValidationTypeFieldDeserializer.class) + @JsonSerialize( + using = + SignRequestSignerInputSsnValidationValidationTypeField + .SignRequestSignerInputSsnValidationValidationTypeFieldSerializer.class) + @JsonProperty("validation_type") + protected EnumWrapper validationType; + + public SignRequestSignerInputSsnValidation() { + super(); + this.validationType = + new EnumWrapper( + SignRequestSignerInputSsnValidationValidationTypeField.SSN); + } + + protected SignRequestSignerInputSsnValidation(Builder builder) { + super(); + this.validationType = builder.validationType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getValidationType() { + return validationType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerInputSsnValidation casted = (SignRequestSignerInputSsnValidation) o; + return Objects.equals(validationType, casted.validationType); + } + + @Override + public int hashCode() { + return Objects.hash(validationType); + } + + @Override + public String toString() { + return "SignRequestSignerInputSsnValidation{" + + "validationType='" + + validationType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper validationType; + + public Builder() { + super(); + this.validationType = + new EnumWrapper( + SignRequestSignerInputSsnValidationValidationTypeField.SSN); + } + + public Builder validationType( + SignRequestSignerInputSsnValidationValidationTypeField validationType) { + this.validationType = + new EnumWrapper(validationType); + return this; + } + + public Builder validationType( + EnumWrapper validationType) { + this.validationType = validationType; + return this; + } + + public SignRequestSignerInputSsnValidation build() { + return new SignRequestSignerInputSsnValidation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputssnvalidation/SignRequestSignerInputSsnValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputssnvalidation/SignRequestSignerInputSsnValidationValidationTypeField.java new file mode 100644 index 000000000..b27d71d42 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputssnvalidation/SignRequestSignerInputSsnValidationValidationTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.signrequestsignerinputssnvalidation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SignRequestSignerInputSsnValidationValidationTypeField implements Valuable { + SSN("ssn"); + + private final String value; + + SignRequestSignerInputSsnValidationValidationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestSignerInputSsnValidationValidationTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public SignRequestSignerInputSsnValidationValidationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestSignerInputSsnValidationValidationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SignRequestSignerInputSsnValidationValidationTypeFieldSerializer + extends JsonSerializer> { + + public SignRequestSignerInputSsnValidationValidationTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputvalidation/SignRequestSignerInputValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputvalidation/SignRequestSignerInputValidation.java new file mode 100644 index 000000000..5468866ab --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputvalidation/SignRequestSignerInputValidation.java @@ -0,0 +1,421 @@ +package com.box.sdkgen.schemas.signrequestsignerinputvalidation; + +import com.box.sdkgen.internal.OneOfundefined; +import com.box.sdkgen.schemas.signrequestsignerinputcustomvalidation.SignRequestSignerInputCustomValidation; +import com.box.sdkgen.schemas.signrequestsignerinputdateasiavalidation.SignRequestSignerInputDateAsiaValidation; +import com.box.sdkgen.schemas.signrequestsignerinputdateeuvalidation.SignRequestSignerInputDateEuValidation; +import com.box.sdkgen.schemas.signrequestsignerinputdateisovalidation.SignRequestSignerInputDateIsoValidation; +import com.box.sdkgen.schemas.signrequestsignerinputdateusvalidation.SignRequestSignerInputDateUsValidation; +import com.box.sdkgen.schemas.signrequestsignerinputemailvalidation.SignRequestSignerInputEmailValidation; +import com.box.sdkgen.schemas.signrequestsignerinputnumberwithcommavalidation.SignRequestSignerInputNumberWithCommaValidation; +import com.box.sdkgen.schemas.signrequestsignerinputnumberwithperiodvalidation.SignRequestSignerInputNumberWithPeriodValidation; +import com.box.sdkgen.schemas.signrequestsignerinputssnvalidation.SignRequestSignerInputSsnValidation; +import com.box.sdkgen.schemas.signrequestsignerinputzip4validation.SignRequestSignerInputZip4Validation; +import com.box.sdkgen.schemas.signrequestsignerinputzipvalidation.SignRequestSignerInputZipValidation; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize( + using = SignRequestSignerInputValidation.SignRequestSignerInputValidationDeserializer.class) +@JsonSerialize(using = OneOfundefined.OneOfundefinedSerializer.class) +public class SignRequestSignerInputValidation + extends OneOfundefined< + SignRequestSignerInputEmailValidation, + SignRequestSignerInputCustomValidation, + SignRequestSignerInputZipValidation, + SignRequestSignerInputZip4Validation, + SignRequestSignerInputSsnValidation, + SignRequestSignerInputNumberWithPeriodValidation, + SignRequestSignerInputNumberWithCommaValidation, + SignRequestSignerInputDateIsoValidation, + SignRequestSignerInputDateUsValidation, + SignRequestSignerInputDateEuValidation, + SignRequestSignerInputDateAsiaValidation> { + + protected final String validationType; + + public SignRequestSignerInputValidation( + SignRequestSignerInputEmailValidation signRequestSignerInputEmailValidation) { + super( + signRequestSignerInputEmailValidation, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null); + this.validationType = + EnumWrapper.convertToString(signRequestSignerInputEmailValidation.getValidationType()); + } + + public SignRequestSignerInputValidation( + SignRequestSignerInputCustomValidation signRequestSignerInputCustomValidation) { + super( + null, + signRequestSignerInputCustomValidation, + null, + null, + null, + null, + null, + null, + null, + null, + null); + this.validationType = + EnumWrapper.convertToString(signRequestSignerInputCustomValidation.getValidationType()); + } + + public SignRequestSignerInputValidation( + SignRequestSignerInputZipValidation signRequestSignerInputZipValidation) { + super( + null, + null, + signRequestSignerInputZipValidation, + null, + null, + null, + null, + null, + null, + null, + null); + this.validationType = + EnumWrapper.convertToString(signRequestSignerInputZipValidation.getValidationType()); + } + + public SignRequestSignerInputValidation( + SignRequestSignerInputZip4Validation signRequestSignerInputZip4Validation) { + super( + null, + null, + null, + signRequestSignerInputZip4Validation, + null, + null, + null, + null, + null, + null, + null); + this.validationType = + EnumWrapper.convertToString(signRequestSignerInputZip4Validation.getValidationType()); + } + + public SignRequestSignerInputValidation( + SignRequestSignerInputSsnValidation signRequestSignerInputSsnValidation) { + super( + null, + null, + null, + null, + signRequestSignerInputSsnValidation, + null, + null, + null, + null, + null, + null); + this.validationType = + EnumWrapper.convertToString(signRequestSignerInputSsnValidation.getValidationType()); + } + + public SignRequestSignerInputValidation( + SignRequestSignerInputNumberWithPeriodValidation + signRequestSignerInputNumberWithPeriodValidation) { + super( + null, + null, + null, + null, + null, + signRequestSignerInputNumberWithPeriodValidation, + null, + null, + null, + null, + null); + this.validationType = + EnumWrapper.convertToString( + signRequestSignerInputNumberWithPeriodValidation.getValidationType()); + } + + public SignRequestSignerInputValidation( + SignRequestSignerInputNumberWithCommaValidation + signRequestSignerInputNumberWithCommaValidation) { + super( + null, + null, + null, + null, + null, + null, + signRequestSignerInputNumberWithCommaValidation, + null, + null, + null, + null); + this.validationType = + EnumWrapper.convertToString( + signRequestSignerInputNumberWithCommaValidation.getValidationType()); + } + + public SignRequestSignerInputValidation( + SignRequestSignerInputDateIsoValidation signRequestSignerInputDateIsoValidation) { + super( + null, + null, + null, + null, + null, + null, + null, + signRequestSignerInputDateIsoValidation, + null, + null, + null); + this.validationType = + EnumWrapper.convertToString(signRequestSignerInputDateIsoValidation.getValidationType()); + } + + public SignRequestSignerInputValidation( + SignRequestSignerInputDateUsValidation signRequestSignerInputDateUsValidation) { + super( + null, + null, + null, + null, + null, + null, + null, + null, + signRequestSignerInputDateUsValidation, + null, + null); + this.validationType = + EnumWrapper.convertToString(signRequestSignerInputDateUsValidation.getValidationType()); + } + + public SignRequestSignerInputValidation( + SignRequestSignerInputDateEuValidation signRequestSignerInputDateEuValidation) { + super( + null, + null, + null, + null, + null, + null, + null, + null, + null, + signRequestSignerInputDateEuValidation, + null); + this.validationType = + EnumWrapper.convertToString(signRequestSignerInputDateEuValidation.getValidationType()); + } + + public SignRequestSignerInputValidation( + SignRequestSignerInputDateAsiaValidation signRequestSignerInputDateAsiaValidation) { + super( + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + signRequestSignerInputDateAsiaValidation); + this.validationType = + EnumWrapper.convertToString(signRequestSignerInputDateAsiaValidation.getValidationType()); + } + + public boolean isSignRequestSignerInputEmailValidation() { + return value0 != null; + } + + public SignRequestSignerInputEmailValidation getSignRequestSignerInputEmailValidation() { + return value0; + } + + public boolean isSignRequestSignerInputCustomValidation() { + return value1 != null; + } + + public SignRequestSignerInputCustomValidation getSignRequestSignerInputCustomValidation() { + return value1; + } + + public boolean isSignRequestSignerInputZipValidation() { + return value2 != null; + } + + public SignRequestSignerInputZipValidation getSignRequestSignerInputZipValidation() { + return value2; + } + + public boolean isSignRequestSignerInputZip4Validation() { + return value3 != null; + } + + public SignRequestSignerInputZip4Validation getSignRequestSignerInputZip4Validation() { + return value3; + } + + public boolean isSignRequestSignerInputSsnValidation() { + return value4 != null; + } + + public SignRequestSignerInputSsnValidation getSignRequestSignerInputSsnValidation() { + return value4; + } + + public boolean isSignRequestSignerInputNumberWithPeriodValidation() { + return value5 != null; + } + + public SignRequestSignerInputNumberWithPeriodValidation + getSignRequestSignerInputNumberWithPeriodValidation() { + return value5; + } + + public boolean isSignRequestSignerInputNumberWithCommaValidation() { + return value6 != null; + } + + public SignRequestSignerInputNumberWithCommaValidation + getSignRequestSignerInputNumberWithCommaValidation() { + return value6; + } + + public boolean isSignRequestSignerInputDateIsoValidation() { + return value7 != null; + } + + public SignRequestSignerInputDateIsoValidation getSignRequestSignerInputDateIsoValidation() { + return value7; + } + + public boolean isSignRequestSignerInputDateUsValidation() { + return value8 != null; + } + + public SignRequestSignerInputDateUsValidation getSignRequestSignerInputDateUsValidation() { + return value8; + } + + public boolean isSignRequestSignerInputDateEuValidation() { + return value9 != null; + } + + public SignRequestSignerInputDateEuValidation getSignRequestSignerInputDateEuValidation() { + return value9; + } + + public boolean isSignRequestSignerInputDateAsiaValidation() { + return value10 != null; + } + + public SignRequestSignerInputDateAsiaValidation getSignRequestSignerInputDateAsiaValidation() { + return value10; + } + + public String getValidationType() { + return validationType; + } + + static class SignRequestSignerInputValidationDeserializer + extends JsonDeserializer { + + public SignRequestSignerInputValidationDeserializer() { + super(); + } + + @Override + public SignRequestSignerInputValidation deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + try { + return new SignRequestSignerInputValidation( + OneOfundefined.OBJECT_MAPPER.convertValue( + node, SignRequestSignerInputEmailValidation.class)); + } catch (Exception ignored) { + } + try { + return new SignRequestSignerInputValidation( + OneOfundefined.OBJECT_MAPPER.convertValue( + node, SignRequestSignerInputCustomValidation.class)); + } catch (Exception ignored) { + } + try { + return new SignRequestSignerInputValidation( + OneOfundefined.OBJECT_MAPPER.convertValue( + node, SignRequestSignerInputZipValidation.class)); + } catch (Exception ignored) { + } + try { + return new SignRequestSignerInputValidation( + OneOfundefined.OBJECT_MAPPER.convertValue( + node, SignRequestSignerInputZip4Validation.class)); + } catch (Exception ignored) { + } + try { + return new SignRequestSignerInputValidation( + OneOfundefined.OBJECT_MAPPER.convertValue( + node, SignRequestSignerInputSsnValidation.class)); + } catch (Exception ignored) { + } + try { + return new SignRequestSignerInputValidation( + OneOfundefined.OBJECT_MAPPER.convertValue( + node, SignRequestSignerInputNumberWithPeriodValidation.class)); + } catch (Exception ignored) { + } + try { + return new SignRequestSignerInputValidation( + OneOfundefined.OBJECT_MAPPER.convertValue( + node, SignRequestSignerInputNumberWithCommaValidation.class)); + } catch (Exception ignored) { + } + try { + return new SignRequestSignerInputValidation( + OneOfundefined.OBJECT_MAPPER.convertValue( + node, SignRequestSignerInputDateIsoValidation.class)); + } catch (Exception ignored) { + } + try { + return new SignRequestSignerInputValidation( + OneOfundefined.OBJECT_MAPPER.convertValue( + node, SignRequestSignerInputDateUsValidation.class)); + } catch (Exception ignored) { + } + try { + return new SignRequestSignerInputValidation( + OneOfundefined.OBJECT_MAPPER.convertValue( + node, SignRequestSignerInputDateEuValidation.class)); + } catch (Exception ignored) { + } + try { + return new SignRequestSignerInputValidation( + OneOfundefined.OBJECT_MAPPER.convertValue( + node, SignRequestSignerInputDateAsiaValidation.class)); + } catch (Exception ignored) { + } + throw new JsonMappingException(jp, "Unable to deserialize SignRequestSignerInputValidation"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzip4validation/SignRequestSignerInputZip4Validation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzip4validation/SignRequestSignerInputZip4Validation.java new file mode 100644 index 000000000..2c9964bf2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzip4validation/SignRequestSignerInputZip4Validation.java @@ -0,0 +1,102 @@ +package com.box.sdkgen.schemas.signrequestsignerinputzip4validation; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** + * Specifies the validation rules for a text field input by the signer. If set, this validation is + * mandatory. + */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerInputZip4Validation extends SerializableObject { + + /** Validates that the text input is a ZIP+4 code. */ + @JsonDeserialize( + using = + SignRequestSignerInputZip4ValidationValidationTypeField + .SignRequestSignerInputZip4ValidationValidationTypeFieldDeserializer.class) + @JsonSerialize( + using = + SignRequestSignerInputZip4ValidationValidationTypeField + .SignRequestSignerInputZip4ValidationValidationTypeFieldSerializer.class) + @JsonProperty("validation_type") + protected EnumWrapper validationType; + + public SignRequestSignerInputZip4Validation() { + super(); + this.validationType = + new EnumWrapper( + SignRequestSignerInputZip4ValidationValidationTypeField.ZIP_4); + } + + protected SignRequestSignerInputZip4Validation(Builder builder) { + super(); + this.validationType = builder.validationType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getValidationType() { + return validationType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerInputZip4Validation casted = (SignRequestSignerInputZip4Validation) o; + return Objects.equals(validationType, casted.validationType); + } + + @Override + public int hashCode() { + return Objects.hash(validationType); + } + + @Override + public String toString() { + return "SignRequestSignerInputZip4Validation{" + + "validationType='" + + validationType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper validationType; + + public Builder() { + super(); + this.validationType = + new EnumWrapper( + SignRequestSignerInputZip4ValidationValidationTypeField.ZIP_4); + } + + public Builder validationType( + SignRequestSignerInputZip4ValidationValidationTypeField validationType) { + this.validationType = + new EnumWrapper(validationType); + return this; + } + + public Builder validationType( + EnumWrapper validationType) { + this.validationType = validationType; + return this; + } + + public SignRequestSignerInputZip4Validation build() { + return new SignRequestSignerInputZip4Validation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzip4validation/SignRequestSignerInputZip4ValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzip4validation/SignRequestSignerInputZip4ValidationValidationTypeField.java new file mode 100644 index 000000000..010aa0bc4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzip4validation/SignRequestSignerInputZip4ValidationValidationTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.signrequestsignerinputzip4validation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SignRequestSignerInputZip4ValidationValidationTypeField implements Valuable { + ZIP_4("zip_4"); + + private final String value; + + SignRequestSignerInputZip4ValidationValidationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestSignerInputZip4ValidationValidationTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public SignRequestSignerInputZip4ValidationValidationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestSignerInputZip4ValidationValidationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SignRequestSignerInputZip4ValidationValidationTypeFieldSerializer + extends JsonSerializer> { + + public SignRequestSignerInputZip4ValidationValidationTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzipvalidation/SignRequestSignerInputZipValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzipvalidation/SignRequestSignerInputZipValidation.java new file mode 100644 index 000000000..c805d142a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzipvalidation/SignRequestSignerInputZipValidation.java @@ -0,0 +1,102 @@ +package com.box.sdkgen.schemas.signrequestsignerinputzipvalidation; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** + * Specifies the validation rules for a text field input by the signer. If set, this validation is + * mandatory. + */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestSignerInputZipValidation extends SerializableObject { + + /** Validates that the text input is a ZIP code. */ + @JsonDeserialize( + using = + SignRequestSignerInputZipValidationValidationTypeField + .SignRequestSignerInputZipValidationValidationTypeFieldDeserializer.class) + @JsonSerialize( + using = + SignRequestSignerInputZipValidationValidationTypeField + .SignRequestSignerInputZipValidationValidationTypeFieldSerializer.class) + @JsonProperty("validation_type") + protected EnumWrapper validationType; + + public SignRequestSignerInputZipValidation() { + super(); + this.validationType = + new EnumWrapper( + SignRequestSignerInputZipValidationValidationTypeField.ZIP); + } + + protected SignRequestSignerInputZipValidation(Builder builder) { + super(); + this.validationType = builder.validationType; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getValidationType() { + return validationType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestSignerInputZipValidation casted = (SignRequestSignerInputZipValidation) o; + return Objects.equals(validationType, casted.validationType); + } + + @Override + public int hashCode() { + return Objects.hash(validationType); + } + + @Override + public String toString() { + return "SignRequestSignerInputZipValidation{" + + "validationType='" + + validationType + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper validationType; + + public Builder() { + super(); + this.validationType = + new EnumWrapper( + SignRequestSignerInputZipValidationValidationTypeField.ZIP); + } + + public Builder validationType( + SignRequestSignerInputZipValidationValidationTypeField validationType) { + this.validationType = + new EnumWrapper(validationType); + return this; + } + + public Builder validationType( + EnumWrapper validationType) { + this.validationType = validationType; + return this; + } + + public SignRequestSignerInputZipValidation build() { + return new SignRequestSignerInputZipValidation(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzipvalidation/SignRequestSignerInputZipValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzipvalidation/SignRequestSignerInputZipValidationValidationTypeField.java new file mode 100644 index 000000000..84b134ff5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzipvalidation/SignRequestSignerInputZipValidationValidationTypeField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.signrequestsignerinputzipvalidation; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum SignRequestSignerInputZipValidationValidationTypeField implements Valuable { + ZIP("zip"); + + private final String value; + + SignRequestSignerInputZipValidationValidationTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class SignRequestSignerInputZipValidationValidationTypeFieldDeserializer + extends JsonDeserializer< + EnumWrapper> { + + public SignRequestSignerInputZipValidationValidationTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(SignRequestSignerInputZipValidationValidationTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class SignRequestSignerInputZipValidationValidationTypeFieldSerializer + extends JsonSerializer> { + + public SignRequestSignerInputZipValidationValidationTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInput.java b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInput.java index 62278af09..0728765e2 100644 --- a/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInput.java +++ b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInput.java @@ -2,6 +2,18 @@ import com.box.sdkgen.internal.Nullable; import com.box.sdkgen.schemas.signrequestprefilltag.SignRequestPrefillTag; +import com.box.sdkgen.schemas.signrequestsignerinputcustomvalidation.SignRequestSignerInputCustomValidation; +import com.box.sdkgen.schemas.signrequestsignerinputdateasiavalidation.SignRequestSignerInputDateAsiaValidation; +import com.box.sdkgen.schemas.signrequestsignerinputdateeuvalidation.SignRequestSignerInputDateEuValidation; +import com.box.sdkgen.schemas.signrequestsignerinputdateisovalidation.SignRequestSignerInputDateIsoValidation; +import com.box.sdkgen.schemas.signrequestsignerinputdateusvalidation.SignRequestSignerInputDateUsValidation; +import com.box.sdkgen.schemas.signrequestsignerinputemailvalidation.SignRequestSignerInputEmailValidation; +import com.box.sdkgen.schemas.signrequestsignerinputnumberwithcommavalidation.SignRequestSignerInputNumberWithCommaValidation; +import com.box.sdkgen.schemas.signrequestsignerinputnumberwithperiodvalidation.SignRequestSignerInputNumberWithPeriodValidation; +import com.box.sdkgen.schemas.signrequestsignerinputssnvalidation.SignRequestSignerInputSsnValidation; +import com.box.sdkgen.schemas.signrequestsignerinputvalidation.SignRequestSignerInputValidation; +import com.box.sdkgen.schemas.signrequestsignerinputzip4validation.SignRequestSignerInputZip4Validation; +import com.box.sdkgen.schemas.signrequestsignerinputzipvalidation.SignRequestSignerInputZipValidation; import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; @@ -66,10 +78,16 @@ public class TemplateSignerInput extends SignRequestPrefillTag { /** The label field is used especially for text, attachment, radio, and checkbox type inputs. */ @Nullable protected String label; - /** Whether this input was defined as read-only(immutable by signers) or not. */ + /** Indicates whether this input is read-only (cannot be modified by signers). */ @JsonProperty("read_only") protected Boolean readOnly; + /** + * Specifies the formatting rules that signers must follow for text field inputs. If set, this + * validation is mandatory. + */ + protected SignRequestSignerInputValidation validation; + public TemplateSignerInput(@JsonProperty("page_index") long pageIndex) { super(); this.pageIndex = pageIndex; @@ -88,6 +106,7 @@ protected TemplateSignerInput(Builder builder) { this.dimensions = builder.dimensions; this.label = builder.label; this.readOnly = builder.readOnly; + this.validation = builder.validation; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -135,6 +154,10 @@ public Boolean getReadOnly() { return readOnly; } + public SignRequestSignerInputValidation getValidation() { + return validation; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -158,7 +181,8 @@ public boolean equals(Object o) { && Objects.equals(coordinates, casted.coordinates) && Objects.equals(dimensions, casted.dimensions) && Objects.equals(label, casted.label) - && Objects.equals(readOnly, casted.readOnly); + && Objects.equals(readOnly, casted.readOnly) + && Objects.equals(validation, casted.validation); } @Override @@ -178,7 +202,8 @@ public int hashCode() { coordinates, dimensions, label, - readOnly); + readOnly, + validation); } @Override @@ -243,6 +268,10 @@ public String toString() { + "readOnly='" + readOnly + '\'' + + ", " + + "validation='" + + validation + + '\'' + "}"; } @@ -270,6 +299,8 @@ public static class Builder extends SignRequestPrefillTag.Builder { protected Boolean readOnly; + protected SignRequestSignerInputValidation validation; + public Builder(long pageIndex) { super(); this.pageIndex = pageIndex; @@ -339,6 +370,66 @@ public Builder readOnly(Boolean readOnly) { return this; } + public Builder validation(SignRequestSignerInputEmailValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputCustomValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputZipValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputZip4Validation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputSsnValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputNumberWithPeriodValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputNumberWithCommaValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputDateIsoValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputDateUsValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputDateEuValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputDateAsiaValidation validation) { + this.validation = new SignRequestSignerInputValidation(validation); + return this; + } + + public Builder validation(SignRequestSignerInputValidation validation) { + this.validation = validation; + return this; + } + @Override public Builder documentTagId(String documentTagId) { this.documentTagId = documentTagId; From d1e8924ad123e5fcbf014be50fbbf52ea45d546b Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 16 Dec 2025 15:21:03 +0100 Subject: [PATCH 067/148] feat: add Metadata Taxonomies api (box/box-openapi#569) (#1630) Co-authored-by: box-sdk-build --- .codegen.json | 2 +- docs/README.md | 1 + docs/filemetadata.md | 4 + docs/foldermetadata.md | 2 + docs/metadatataxonomies.md | 474 +++++++++ .../java/com/box/sdkgen/client/BoxClient.java | 17 + .../filemetadata/FileMetadataManager.java | 86 +- .../GetFileMetadataByIdQueryParams.java | 36 + .../GetFileMetadataQueryParams.java | 36 + .../foldermetadata/FolderMetadataManager.java | 37 +- .../GetFolderMetadataQueryParams.java | 36 + .../AddMetadataTaxonomyLevelHeaders.java | 41 + .../AddMetadataTaxonomyLevelRequestBody.java | 89 ++ .../CreateMetadataTaxonomyHeaders.java | 41 + .../CreateMetadataTaxonomyLevelHeaders.java | 41 + .../CreateMetadataTaxonomyNodeHeaders.java | 41 + ...CreateMetadataTaxonomyNodeRequestBody.java | 107 ++ .../CreateMetadataTaxonomyRequestBody.java | 112 ++ .../DeleteMetadataTaxonomyHeaders.java | 41 + .../DeleteMetadataTaxonomyLevelHeaders.java | 41 + .../DeleteMetadataTaxonomyNodeHeaders.java | 41 + .../GetMetadataTaxonomiesHeaders.java | 41 + .../GetMetadataTaxonomiesQueryParams.java | 51 + .../GetMetadataTaxonomyByKeyHeaders.java | 41 + .../GetMetadataTaxonomyNodeByIdHeaders.java | 41 + .../GetMetadataTaxonomyNodesHeaders.java | 41 + .../GetMetadataTaxonomyNodesQueryParams.java | 140 +++ ...etMetadataTemplateFieldOptionsHeaders.java | 41 + ...tadataTemplateFieldOptionsQueryParams.java | 159 +++ .../GetMetadataTemplateFieldOptionsScope.java | 63 ++ .../MetadataTaxonomiesManager.java | 985 ++++++++++++++++++ ...MetadataTaxonomiesIdIdLevelsIdHeaders.java | 41 + ...dataTaxonomiesIdIdLevelsIdRequestBody.java | 91 ++ .../UpdateMetadataTaxonomyHeaders.java | 41 + .../UpdateMetadataTaxonomyNodeHeaders.java | 41 + ...UpdateMetadataTaxonomyNodeRequestBody.java | 63 ++ .../UpdateMetadataTaxonomyRequestBody.java | 44 + ...etadataTemplateRequestBodyFieldsField.java | 80 +- ...ateRequestBodyFieldsOptionsRulesField.java | 89 ++ ...ataTemplateRequestBodyFieldsTypeField.java | 3 +- .../MetadataTaxonomies.java | 141 +++ .../metadatataxonomy/MetadataTaxonomy.java | 152 +++ .../MetadataTaxonomyAncestor.java | 108 ++ .../MetadataTaxonomyLevel.java | 111 ++ .../MetadataTaxonomyLevels.java | 68 ++ .../MetadataTaxonomyNode.java | 169 +++ .../MetadataTaxonomyNodes.java | 141 +++ 47 files changed, 4304 insertions(+), 8 deletions(-) create mode 100644 docs/metadatataxonomies.md create mode 100644 src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/AddMetadataTaxonomyLevelHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/AddMetadataTaxonomyLevelRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyLevelHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyNodeHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyNodeRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyLevelHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyNodeHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomiesHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomiesQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyByKeyHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodeByIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodesHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodesQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsQueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsScope.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/MetadataTaxonomiesManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyNodeHeaders.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyNodeRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyRequestBody.java create mode 100644 src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsOptionsRulesField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatataxonomies/MetadataTaxonomies.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatataxonomy/MetadataTaxonomy.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatataxonomyancestor/MetadataTaxonomyAncestor.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatataxonomylevel/MetadataTaxonomyLevel.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatataxonomylevels/MetadataTaxonomyLevels.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatataxonomynode/MetadataTaxonomyNode.java create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatataxonomynodes/MetadataTaxonomyNodes.java diff --git a/.codegen.json b/.codegen.json index 5cfe7ed0c..8fb0907af 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "f97463c", "specHash": "b7abe0d", "version": "10.3.0" } +{ "engineHash": "b5860f1", "specHash": "1e0848d", "version": "10.3.0" } diff --git a/docs/README.md b/docs/README.md index ebdc4844d..308c5699b 100644 --- a/docs/README.md +++ b/docs/README.md @@ -49,6 +49,7 @@ the SDK are available by topic: * [Listcollaborations](listcollaborations.md) * [Memberships](memberships.md) * [Metadatacascadepolicies](metadatacascadepolicies.md) +* [Metadatataxonomies](metadatataxonomies.md) * [Metadatatemplates](metadatatemplates.md) * [Recentitems](recentitems.md) * [Retentionpolicies](retentionpolicies.md) diff --git a/docs/filemetadata.md b/docs/filemetadata.md index 4a55f9c32..2ccd505b5 100644 --- a/docs/filemetadata.md +++ b/docs/filemetadata.md @@ -25,6 +25,8 @@ client.getFileMetadata().getFileMetadata(file.getId()) - fileId `String` - The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" +- queryParams `GetFileMetadataQueryParams` + - Query parameters of getFileMetadata method - headers `GetFileMetadataHeaders` - Headers of getFileMetadata method @@ -62,6 +64,8 @@ client.getFileMetadata().getFileMetadataById(file.getId(), GetFileMetadataByIdSc - The scope of the metadata template. Example: "global" - templateKey `String` - The name of the metadata template. Example: "properties" +- queryParams `GetFileMetadataByIdQueryParams` + - Query parameters of getFileMetadataById method - headers `GetFileMetadataByIdHeaders` - Headers of getFileMetadataById method diff --git a/docs/foldermetadata.md b/docs/foldermetadata.md index 307d252f7..02bb0146e 100644 --- a/docs/foldermetadata.md +++ b/docs/foldermetadata.md @@ -26,6 +26,8 @@ client.getFolderMetadata().getFolderMetadata(folder.getId()) - folderId `String` - The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`. Example: "12345" +- queryParams `GetFolderMetadataQueryParams` + - Query parameters of getFolderMetadata method - headers `GetFolderMetadataHeaders` - Headers of getFolderMetadata method diff --git a/docs/metadatataxonomies.md b/docs/metadatataxonomies.md new file mode 100644 index 000000000..cf19c1178 --- /dev/null +++ b/docs/metadatataxonomies.md @@ -0,0 +1,474 @@ +# MetadataTaxonomiesManager + + +- [Create metadata taxonomy](#create-metadata-taxonomy) +- [Get metadata taxonomies for namespace](#get-metadata-taxonomies-for-namespace) +- [Get metadata taxonomy by taxonomy key](#get-metadata-taxonomy-by-taxonomy-key) +- [Update metadata taxonomy](#update-metadata-taxonomy) +- [Remove metadata taxonomy](#remove-metadata-taxonomy) +- [Create metadata taxonomy levels](#create-metadata-taxonomy-levels) +- [Update metadata taxonomy level](#update-metadata-taxonomy-level) +- [Add metadata taxonomy level](#add-metadata-taxonomy-level) +- [Delete metadata taxonomy level](#delete-metadata-taxonomy-level) +- [List metadata taxonomy nodes](#list-metadata-taxonomy-nodes) +- [Create metadata taxonomy node](#create-metadata-taxonomy-node) +- [Get metadata taxonomy node by ID](#get-metadata-taxonomy-node-by-id) +- [Update metadata taxonomy node](#update-metadata-taxonomy-node) +- [Remove metadata taxonomy node](#remove-metadata-taxonomy-node) +- [List metadata template's options for taxonomy field](#list-metadata-templates-options-for-taxonomy-field) + +## Create metadata taxonomy + +Creates a new metadata taxonomy that can be used in +metadata templates. + +This operation is performed by calling function `createMetadataTaxonomy`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-metadata-taxonomies/). + +*Currently we don't have an example for calling `createMetadataTaxonomy` in integration tests* + +### Arguments + +- requestBody `CreateMetadataTaxonomyRequestBody` + - Request body of createMetadataTaxonomy method +- headers `CreateMetadataTaxonomyHeaders` + - Headers of createMetadataTaxonomy method + + +### Returns + +This function returns a value of type `MetadataTaxonomy`. + +The schema representing the metadata taxonomy created. + + +## Get metadata taxonomies for namespace + +Used to retrieve all metadata taxonomies in a namespace. + +This operation is performed by calling function `getMetadataTaxonomies`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-metadata-taxonomies-id/). + +*Currently we don't have an example for calling `getMetadataTaxonomies` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- queryParams `GetMetadataTaxonomiesQueryParams` + - Query parameters of getMetadataTaxonomies method +- headers `GetMetadataTaxonomiesHeaders` + - Headers of getMetadataTaxonomies method + + +### Returns + +This function returns a value of type `MetadataTaxonomies`. + +Returns all of the metadata taxonomies within a namespace +and their corresponding schema. + + +## Get metadata taxonomy by taxonomy key + +Used to retrieve a metadata taxonomy by taxonomy key. + +This operation is performed by calling function `getMetadataTaxonomyByKey`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-metadata-taxonomies-id-id/). + +*Currently we don't have an example for calling `getMetadataTaxonomyByKey` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- taxonomyKey `String` + - The key of the metadata taxonomy. Example: "geography" +- headers `GetMetadataTaxonomyByKeyHeaders` + - Headers of getMetadataTaxonomyByKey method + + +### Returns + +This function returns a value of type `MetadataTaxonomy`. + +Returns the metadata taxonomy identified by the taxonomy key. + + +## Update metadata taxonomy + +Updates an existing metadata taxonomy. + +This operation is performed by calling function `updateMetadataTaxonomy`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/patch-metadata-taxonomies-id-id/). + +*Currently we don't have an example for calling `updateMetadataTaxonomy` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- taxonomyKey `String` + - The key of the metadata taxonomy. Example: "geography" +- requestBody `UpdateMetadataTaxonomyRequestBody` + - Request body of updateMetadataTaxonomy method +- headers `UpdateMetadataTaxonomyHeaders` + - Headers of updateMetadataTaxonomy method + + +### Returns + +This function returns a value of type `MetadataTaxonomy`. + +The schema representing the updated metadata taxonomy. + + +## Remove metadata taxonomy + +Delete a metadata taxonomy. +This deletion is permanent and cannot be reverted. + +This operation is performed by calling function `deleteMetadataTaxonomy`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-metadata-taxonomies-id-id/). + +*Currently we don't have an example for calling `deleteMetadataTaxonomy` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- taxonomyKey `String` + - The key of the metadata taxonomy. Example: "geography" +- headers `DeleteMetadataTaxonomyHeaders` + - Headers of deleteMetadataTaxonomy method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the metadata taxonomy is successfully deleted. + + +## Create metadata taxonomy levels + +Creates new metadata taxonomy levels. + +This operation is performed by calling function `createMetadataTaxonomyLevel`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-metadata-taxonomies-id-id-levels/). + +*Currently we don't have an example for calling `createMetadataTaxonomyLevel` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- taxonomyKey `String` + - The key of the metadata taxonomy. Example: "geography" +- requestBody `List` + - Request body of createMetadataTaxonomyLevel method +- headers `CreateMetadataTaxonomyLevelHeaders` + - Headers of createMetadataTaxonomyLevel method + + +### Returns + +This function returns a value of type `MetadataTaxonomyLevels`. + +Returns an array of all taxonomy levels. + + +## Update metadata taxonomy level + +Updates an existing metadata taxonomy level. + +This operation is performed by calling function `patchMetadataTaxonomiesIdIdLevelsId`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/patch-metadata-taxonomies-id-id-levels-id/). + +*Currently we don't have an example for calling `patchMetadataTaxonomiesIdIdLevelsId` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- taxonomyKey `String` + - The key of the metadata taxonomy. Example: "geography" +- levelIndex `long` + - The index of the metadata taxonomy level. Example: 1 +- requestBody `PatchMetadataTaxonomiesIdIdLevelsIdRequestBody` + - Request body of patchMetadataTaxonomiesIdIdLevelsId method +- headers `PatchMetadataTaxonomiesIdIdLevelsIdHeaders` + - Headers of patchMetadataTaxonomiesIdIdLevelsId method + + +### Returns + +This function returns a value of type `MetadataTaxonomyLevel`. + +The updated taxonomy level. + + +## Add metadata taxonomy level + +Creates a new metadata taxonomy level and appends it to the existing levels. +If there are no levels defined yet, this will create the first level. + +This operation is performed by calling function `addMetadataTaxonomyLevel`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-metadata-taxonomies-id-id-levels:append/). + +*Currently we don't have an example for calling `addMetadataTaxonomyLevel` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- taxonomyKey `String` + - The key of the metadata taxonomy. Example: "geography" +- requestBody `AddMetadataTaxonomyLevelRequestBody` + - Request body of addMetadataTaxonomyLevel method +- headers `AddMetadataTaxonomyLevelHeaders` + - Headers of addMetadataTaxonomyLevel method + + +### Returns + +This function returns a value of type `MetadataTaxonomyLevels`. + +Returns an array of all taxonomy levels. + + +## Delete metadata taxonomy level + +Deletes the last level of the metadata taxonomy. + +This operation is performed by calling function `deleteMetadataTaxonomyLevel`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-metadata-taxonomies-id-id-levels:trim/). + +*Currently we don't have an example for calling `deleteMetadataTaxonomyLevel` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- taxonomyKey `String` + - The key of the metadata taxonomy. Example: "geography" +- headers `DeleteMetadataTaxonomyLevelHeaders` + - Headers of deleteMetadataTaxonomyLevel method + + +### Returns + +This function returns a value of type `MetadataTaxonomyLevels`. + +Returns an array of all taxonomy levels. + + +## List metadata taxonomy nodes + +Used to retrieve metadata taxonomy nodes based on the parameters specified. +Results are sorted in lexicographic order unless a `query` parameter is passed. +With a `query` parameter specified, results are sorted in order of relevance. + +This operation is performed by calling function `getMetadataTaxonomyNodes`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-metadata-taxonomies-id-id-nodes/). + +*Currently we don't have an example for calling `getMetadataTaxonomyNodes` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- taxonomyKey `String` + - The key of the metadata taxonomy. Example: "geography" +- queryParams `GetMetadataTaxonomyNodesQueryParams` + - Query parameters of getMetadataTaxonomyNodes method +- headers `GetMetadataTaxonomyNodesHeaders` + - Headers of getMetadataTaxonomyNodes method + + +### Returns + +This function returns a value of type `MetadataTaxonomyNodes`. + +Returns a list of the taxonomy nodes that match the specified parameters. + + +## Create metadata taxonomy node + +Creates a new metadata taxonomy node. + +This operation is performed by calling function `createMetadataTaxonomyNode`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/post-metadata-taxonomies-id-id-nodes/). + +*Currently we don't have an example for calling `createMetadataTaxonomyNode` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- taxonomyKey `String` + - The key of the metadata taxonomy. Example: "geography" +- requestBody `CreateMetadataTaxonomyNodeRequestBody` + - Request body of createMetadataTaxonomyNode method +- headers `CreateMetadataTaxonomyNodeHeaders` + - Headers of createMetadataTaxonomyNode method + + +### Returns + +This function returns a value of type `MetadataTaxonomyNode`. + +The schema representing the taxonomy node created. + + +## Get metadata taxonomy node by ID + +Retrieves a metadata taxonomy node by its identifier. + +This operation is performed by calling function `getMetadataTaxonomyNodeById`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-metadata-taxonomies-id-id-nodes-id/). + +*Currently we don't have an example for calling `getMetadataTaxonomyNodeById` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- taxonomyKey `String` + - The key of the metadata taxonomy. Example: "geography" +- nodeId `String` + - The identifier of the metadata taxonomy node. Example: "14d3d433-c77f-49c5-b146-9dea370f6e32" +- headers `GetMetadataTaxonomyNodeByIdHeaders` + - Headers of getMetadataTaxonomyNodeById method + + +### Returns + +This function returns a value of type `MetadataTaxonomyNode`. + +Returns the metadata taxonomy node that matches the identifier. + + +## Update metadata taxonomy node + +Updates an existing metadata taxonomy node. + +This operation is performed by calling function `updateMetadataTaxonomyNode`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/patch-metadata-taxonomies-id-id-nodes-id/). + +*Currently we don't have an example for calling `updateMetadataTaxonomyNode` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- taxonomyKey `String` + - The key of the metadata taxonomy. Example: "geography" +- nodeId `String` + - The identifier of the metadata taxonomy node. Example: "14d3d433-c77f-49c5-b146-9dea370f6e32" +- requestBody `UpdateMetadataTaxonomyNodeRequestBody` + - Request body of updateMetadataTaxonomyNode method +- headers `UpdateMetadataTaxonomyNodeHeaders` + - Headers of updateMetadataTaxonomyNode method + + +### Returns + +This function returns a value of type `MetadataTaxonomyNode`. + +The schema representing the updated taxonomy node. + + +## Remove metadata taxonomy node + +Delete a metadata taxonomy node. +This deletion is permanent and cannot be reverted. +Only metadata taxonomy nodes without any children can be deleted. + +This operation is performed by calling function `deleteMetadataTaxonomyNode`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/delete-metadata-taxonomies-id-id-nodes-id/). + +*Currently we don't have an example for calling `deleteMetadataTaxonomyNode` in integration tests* + +### Arguments + +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" +- taxonomyKey `String` + - The key of the metadata taxonomy. Example: "geography" +- nodeId `String` + - The identifier of the metadata taxonomy node. Example: "14d3d433-c77f-49c5-b146-9dea370f6e32" +- headers `DeleteMetadataTaxonomyNodeHeaders` + - Headers of deleteMetadataTaxonomyNode method + + +### Returns + +This function returns a value of type `void`. + +Returns an empty response when the metadata taxonomy node is successfully deleted. + + +## List metadata template's options for taxonomy field + +Used to retrieve metadata taxonomy nodes which are available for the taxonomy field based +on its configuration and the parameters specified. +Results are sorted in lexicographic order unless a `query` parameter is passed. +With a `query` parameter specified, results are sorted in order of relevance. + +This operation is performed by calling function `getMetadataTemplateFieldOptions`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/get-metadata-templates-id-id-fields-id-options/). + +*Currently we don't have an example for calling `getMetadataTemplateFieldOptions` in integration tests* + +### Arguments + +- scope `GetMetadataTemplateFieldOptionsScope` + - The scope of the metadata template. Example: "global" +- templateKey `String` + - The name of the metadata template. Example: "properties" +- fieldKey `String` + - The key of the metadata taxonomy field in the template. Example: "geography" +- queryParams `GetMetadataTemplateFieldOptionsQueryParams` + - Query parameters of getMetadataTemplateFieldOptions method +- headers `GetMetadataTemplateFieldOptionsHeaders` + - Headers of getMetadataTemplateFieldOptions method + + +### Returns + +This function returns a value of type `MetadataTaxonomyNodes`. + +Returns a list of the taxonomy nodes that match the specified parameters. + + diff --git a/src/main/java/com/box/sdkgen/client/BoxClient.java b/src/main/java/com/box/sdkgen/client/BoxClient.java index ddaa620af..8c3b1f25a 100644 --- a/src/main/java/com/box/sdkgen/client/BoxClient.java +++ b/src/main/java/com/box/sdkgen/client/BoxClient.java @@ -47,6 +47,7 @@ import com.box.sdkgen.managers.listcollaborations.ListCollaborationsManager; import com.box.sdkgen.managers.memberships.MembershipsManager; import com.box.sdkgen.managers.metadatacascadepolicies.MetadataCascadePoliciesManager; +import com.box.sdkgen.managers.metadatataxonomies.MetadataTaxonomiesManager; import com.box.sdkgen.managers.metadatatemplates.MetadataTemplatesManager; import com.box.sdkgen.managers.recentitems.RecentItemsManager; import com.box.sdkgen.managers.retentionpolicies.RetentionPoliciesManager; @@ -245,6 +246,8 @@ public class BoxClient { public final AiStudioManager aiStudio; + public final MetadataTaxonomiesManager metadataTaxonomies; + public final DocgenTemplateManager docgenTemplate; public final DocgenManager docgen; @@ -568,6 +571,11 @@ public BoxClient(Authentication auth) { this.ai = new AiManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); this.aiStudio = new AiStudioManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.metadataTaxonomies = + new MetadataTaxonomiesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); this.docgenTemplate = new DocgenTemplateManager.Builder() .auth(this.auth) @@ -908,6 +916,11 @@ protected BoxClient(Builder builder) { this.ai = new AiManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); this.aiStudio = new AiStudioManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.metadataTaxonomies = + new MetadataTaxonomiesManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); this.docgenTemplate = new DocgenTemplateManager.Builder() .auth(this.auth) @@ -1341,6 +1354,10 @@ public AiStudioManager getAiStudio() { return aiStudio; } + public MetadataTaxonomiesManager getMetadataTaxonomies() { + return metadataTaxonomies; + } + public DocgenTemplateManager getDocgenTemplate() { return docgenTemplate; } diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/FileMetadataManager.java b/src/main/java/com/box/sdkgen/managers/filemetadata/FileMetadataManager.java index 190f8bf37..25ae5f748 100644 --- a/src/main/java/com/box/sdkgen/managers/filemetadata/FileMetadataManager.java +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/FileMetadataManager.java @@ -1,6 +1,7 @@ package com.box.sdkgen.managers.filemetadata; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; @@ -40,7 +41,20 @@ protected FileMetadataManager(Builder builder) { * `file_id` is `123`. Example: "12345" */ public Metadatas getFileMetadata(String fileId) { - return getFileMetadata(fileId, new GetFileMetadataHeaders()); + return getFileMetadata(fileId, new GetFileMetadataQueryParams(), new GetFileMetadataHeaders()); + } + + /** + * Retrieves all metadata for a given file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of getFileMetadata method + */ + public Metadatas getFileMetadata(String fileId, GetFileMetadataQueryParams queryParams) { + return getFileMetadata(fileId, queryParams, new GetFileMetadataHeaders()); } /** @@ -53,6 +67,23 @@ public Metadatas getFileMetadata(String fileId) { * @param headers Headers of getFileMetadata method */ public Metadatas getFileMetadata(String fileId, GetFileMetadataHeaders headers) { + return getFileMetadata(fileId, new GetFileMetadataQueryParams(), headers); + } + + /** + * Retrieves all metadata for a given file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param queryParams Query parameters of getFileMetadata method + * @param headers Headers of getFileMetadata method + */ + public Metadatas getFileMetadata( + String fileId, GetFileMetadataQueryParams queryParams, GetFileMetadataHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("view", convertToString(queryParams.getView())))); Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = this.networkSession @@ -66,6 +97,7 @@ public Metadatas getFileMetadata(String fileId, GetFileMetadataHeaders headers) convertToString(fileId), "/metadata"), "GET") + .params(queryParamsMap) .headers(headersMap) .responseFormat(ResponseFormat.JSON) .auth(this.auth) @@ -86,7 +118,52 @@ public Metadatas getFileMetadata(String fileId, GetFileMetadataHeaders headers) */ public MetadataFull getFileMetadataById( String fileId, GetFileMetadataByIdScope scope, String templateKey) { - return getFileMetadataById(fileId, scope, templateKey, new GetFileMetadataByIdHeaders()); + return getFileMetadataById( + fileId, + scope, + templateKey, + new GetFileMetadataByIdQueryParams(), + new GetFileMetadataByIdHeaders()); + } + + /** + * Retrieves the instance of a metadata template that has been applied to a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param queryParams Query parameters of getFileMetadataById method + */ + public MetadataFull getFileMetadataById( + String fileId, + GetFileMetadataByIdScope scope, + String templateKey, + GetFileMetadataByIdQueryParams queryParams) { + return getFileMetadataById( + fileId, scope, templateKey, queryParams, new GetFileMetadataByIdHeaders()); + } + + /** + * Retrieves the instance of a metadata template that has been applied to a file. + * + * @param fileId The unique identifier that represents a file. + *

    The ID for any file can be determined by visiting a file in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the + * `file_id` is `123`. Example: "12345" + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param headers Headers of getFileMetadataById method + */ + public MetadataFull getFileMetadataById( + String fileId, + GetFileMetadataByIdScope scope, + String templateKey, + GetFileMetadataByIdHeaders headers) { + return getFileMetadataById( + fileId, scope, templateKey, new GetFileMetadataByIdQueryParams(), headers); } /** @@ -98,13 +175,17 @@ public MetadataFull getFileMetadataById( * `file_id` is `123`. Example: "12345" * @param scope The scope of the metadata template. Example: "global" * @param templateKey The name of the metadata template. Example: "properties" + * @param queryParams Query parameters of getFileMetadataById method * @param headers Headers of getFileMetadataById method */ public MetadataFull getFileMetadataById( String fileId, GetFileMetadataByIdScope scope, String templateKey, + GetFileMetadataByIdQueryParams queryParams, GetFileMetadataByIdHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("view", convertToString(queryParams.getView())))); Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = this.networkSession @@ -121,6 +202,7 @@ public MetadataFull getFileMetadataById( "/", convertToString(templateKey)), "GET") + .params(queryParamsMap) .headers(headersMap) .responseFormat(ResponseFormat.JSON) .auth(this.auth) diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdQueryParams.java new file mode 100644 index 000000000..e7f810882 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdQueryParams.java @@ -0,0 +1,36 @@ +package com.box.sdkgen.managers.filemetadata; + +public class GetFileMetadataByIdQueryParams { + + /** + * Taxonomy field values are returned in `API view` by default, meaning the value is represented + * with a taxonomy node identifier. To retrieve the `Hydrated view`, where taxonomy values are + * represented with the full taxonomy node information, set this parameter to `hydrated`. This is + * the only supported value for this parameter. + */ + public String view; + + public GetFileMetadataByIdQueryParams() {} + + protected GetFileMetadataByIdQueryParams(Builder builder) { + this.view = builder.view; + } + + public String getView() { + return view; + } + + public static class Builder { + + protected String view; + + public Builder view(String view) { + this.view = view; + return this; + } + + public GetFileMetadataByIdQueryParams build() { + return new GetFileMetadataByIdQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataQueryParams.java b/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataQueryParams.java new file mode 100644 index 000000000..b4cd334a1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataQueryParams.java @@ -0,0 +1,36 @@ +package com.box.sdkgen.managers.filemetadata; + +public class GetFileMetadataQueryParams { + + /** + * Taxonomy field values are returned in `API view` by default, meaning the value is represented + * with a taxonomy node identifier. To retrieve the `Hydrated view`, where taxonomy values are + * represented with the full taxonomy node information, set this parameter to `hydrated`. This is + * the only supported value for this parameter. + */ + public String view; + + public GetFileMetadataQueryParams() {} + + protected GetFileMetadataQueryParams(Builder builder) { + this.view = builder.view; + } + + public String getView() { + return view; + } + + public static class Builder { + + protected String view; + + public Builder view(String view) { + this.view = view; + return this; + } + + public GetFileMetadataQueryParams build() { + return new GetFileMetadataQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/FolderMetadataManager.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/FolderMetadataManager.java index 061351ca0..781d380e6 100644 --- a/src/main/java/com/box/sdkgen/managers/foldermetadata/FolderMetadataManager.java +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/FolderMetadataManager.java @@ -1,6 +1,7 @@ package com.box.sdkgen.managers.foldermetadata; import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; @@ -41,7 +42,22 @@ protected FolderMetadataManager(Builder builder) { *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" */ public Metadatas getFolderMetadata(String folderId) { - return getFolderMetadata(folderId, new GetFolderMetadataHeaders()); + return getFolderMetadata( + folderId, new GetFolderMetadataQueryParams(), new GetFolderMetadataHeaders()); + } + + /** + * Retrieves all metadata for a given folder. This can not be used on the root folder with ID `0`. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of getFolderMetadata method + */ + public Metadatas getFolderMetadata(String folderId, GetFolderMetadataQueryParams queryParams) { + return getFolderMetadata(folderId, queryParams, new GetFolderMetadataHeaders()); } /** @@ -55,6 +71,24 @@ public Metadatas getFolderMetadata(String folderId) { * @param headers Headers of getFolderMetadata method */ public Metadatas getFolderMetadata(String folderId, GetFolderMetadataHeaders headers) { + return getFolderMetadata(folderId, new GetFolderMetadataQueryParams(), headers); + } + + /** + * Retrieves all metadata for a given folder. This can not be used on the root folder with ID `0`. + * + * @param folderId The unique identifier that represent a folder. + *

    The ID for any folder can be determined by visiting this folder in the web application + * and copying the ID from the URL. For example, for the URL + * `https://*.app.box.com/folder/123` the `folder_id` is `123`. + *

    The root folder of a Box account is always represented by the ID `0`. Example: "12345" + * @param queryParams Query parameters of getFolderMetadata method + * @param headers Headers of getFolderMetadata method + */ + public Metadatas getFolderMetadata( + String folderId, GetFolderMetadataQueryParams queryParams, GetFolderMetadataHeaders headers) { + Map queryParamsMap = + prepareParams(mapOf(entryOf("view", convertToString(queryParams.getView())))); Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = this.networkSession @@ -68,6 +102,7 @@ public Metadatas getFolderMetadata(String folderId, GetFolderMetadataHeaders hea convertToString(folderId), "/metadata"), "GET") + .params(queryParamsMap) .headers(headersMap) .responseFormat(ResponseFormat.JSON) .auth(this.auth) diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataQueryParams.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataQueryParams.java new file mode 100644 index 000000000..4dae87218 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataQueryParams.java @@ -0,0 +1,36 @@ +package com.box.sdkgen.managers.foldermetadata; + +public class GetFolderMetadataQueryParams { + + /** + * Taxonomy field values are returned in `API view` by default, meaning the value is represented + * with a taxonomy node identifier. To retrieve the `Hydrated view`, where taxonomy values are + * represented with the full taxonomy node information, set this parameter to `hydrated`. This is + * the only supported value for this parameter. + */ + public String view; + + public GetFolderMetadataQueryParams() {} + + protected GetFolderMetadataQueryParams(Builder builder) { + this.view = builder.view; + } + + public String getView() { + return view; + } + + public static class Builder { + + protected String view; + + public Builder view(String view) { + this.view = view; + return this; + } + + public GetFolderMetadataQueryParams build() { + return new GetFolderMetadataQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/AddMetadataTaxonomyLevelHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/AddMetadataTaxonomyLevelHeaders.java new file mode 100644 index 000000000..26a90477e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/AddMetadataTaxonomyLevelHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class AddMetadataTaxonomyLevelHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public AddMetadataTaxonomyLevelHeaders() { + this.extraHeaders = mapOf(); + } + + protected AddMetadataTaxonomyLevelHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public AddMetadataTaxonomyLevelHeaders build() { + return new AddMetadataTaxonomyLevelHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/AddMetadataTaxonomyLevelRequestBody.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/AddMetadataTaxonomyLevelRequestBody.java new file mode 100644 index 000000000..65ef7ebd5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/AddMetadataTaxonomyLevelRequestBody.java @@ -0,0 +1,89 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class AddMetadataTaxonomyLevelRequestBody extends SerializableObject { + + /** The display name of the taxonomy level. */ + protected final String displayName; + + /** The description of the taxonomy level. */ + protected String description; + + public AddMetadataTaxonomyLevelRequestBody(@JsonProperty("displayName") String displayName) { + super(); + this.displayName = displayName; + } + + protected AddMetadataTaxonomyLevelRequestBody(Builder builder) { + super(); + this.displayName = builder.displayName; + this.description = builder.description; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getDisplayName() { + return displayName; + } + + public String getDescription() { + return description; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddMetadataTaxonomyLevelRequestBody casted = (AddMetadataTaxonomyLevelRequestBody) o; + return Objects.equals(displayName, casted.displayName) + && Objects.equals(description, casted.description); + } + + @Override + public int hashCode() { + return Objects.hash(displayName, description); + } + + @Override + public String toString() { + return "AddMetadataTaxonomyLevelRequestBody{" + + "displayName='" + + displayName + + '\'' + + ", " + + "description='" + + description + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String displayName; + + protected String description; + + public Builder(String displayName) { + super(); + this.displayName = displayName; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public AddMetadataTaxonomyLevelRequestBody build() { + return new AddMetadataTaxonomyLevelRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyHeaders.java new file mode 100644 index 000000000..48539fceb --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateMetadataTaxonomyHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public CreateMetadataTaxonomyHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateMetadataTaxonomyHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateMetadataTaxonomyHeaders build() { + return new CreateMetadataTaxonomyHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyLevelHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyLevelHeaders.java new file mode 100644 index 000000000..1acebea77 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyLevelHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateMetadataTaxonomyLevelHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public CreateMetadataTaxonomyLevelHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateMetadataTaxonomyLevelHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateMetadataTaxonomyLevelHeaders build() { + return new CreateMetadataTaxonomyLevelHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyNodeHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyNodeHeaders.java new file mode 100644 index 000000000..70053593b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyNodeHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class CreateMetadataTaxonomyNodeHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public CreateMetadataTaxonomyNodeHeaders() { + this.extraHeaders = mapOf(); + } + + protected CreateMetadataTaxonomyNodeHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateMetadataTaxonomyNodeHeaders build() { + return new CreateMetadataTaxonomyNodeHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyNodeRequestBody.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyNodeRequestBody.java new file mode 100644 index 000000000..46ee9254f --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyNodeRequestBody.java @@ -0,0 +1,107 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateMetadataTaxonomyNodeRequestBody extends SerializableObject { + + /** The display name of the taxonomy node. */ + protected final String displayName; + + /** The level of the taxonomy node. */ + protected final long level; + + /** The identifier of the parent taxonomy node. Omit this field for root-level nodes. */ + protected String parentId; + + public CreateMetadataTaxonomyNodeRequestBody( + @JsonProperty("displayName") String displayName, @JsonProperty("level") long level) { + super(); + this.displayName = displayName; + this.level = level; + } + + protected CreateMetadataTaxonomyNodeRequestBody(Builder builder) { + super(); + this.displayName = builder.displayName; + this.level = builder.level; + this.parentId = builder.parentId; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getDisplayName() { + return displayName; + } + + public long getLevel() { + return level; + } + + public String getParentId() { + return parentId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateMetadataTaxonomyNodeRequestBody casted = (CreateMetadataTaxonomyNodeRequestBody) o; + return Objects.equals(displayName, casted.displayName) + && Objects.equals(level, casted.level) + && Objects.equals(parentId, casted.parentId); + } + + @Override + public int hashCode() { + return Objects.hash(displayName, level, parentId); + } + + @Override + public String toString() { + return "CreateMetadataTaxonomyNodeRequestBody{" + + "displayName='" + + displayName + + '\'' + + ", " + + "level='" + + level + + '\'' + + ", " + + "parentId='" + + parentId + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String displayName; + + protected final long level; + + protected String parentId; + + public Builder(String displayName, long level) { + super(); + this.displayName = displayName; + this.level = level; + } + + public Builder parentId(String parentId) { + this.parentId = parentId; + return this; + } + + public CreateMetadataTaxonomyNodeRequestBody build() { + return new CreateMetadataTaxonomyNodeRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyRequestBody.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyRequestBody.java new file mode 100644 index 000000000..a860ca86e --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyRequestBody.java @@ -0,0 +1,112 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateMetadataTaxonomyRequestBody extends SerializableObject { + + /** + * The taxonomy key. If it is not provided in the request body, it will be generated from the + * `displayName`. The `displayName` would be converted to lower case, and all spaces and + * non-alphanumeric characters replaced with underscores. + */ + protected String key; + + /** The display name of the taxonomy. */ + protected final String displayName; + + /** The namespace of the metadata taxonomy to create. */ + protected final String namespace; + + public CreateMetadataTaxonomyRequestBody( + @JsonProperty("displayName") String displayName, + @JsonProperty("namespace") String namespace) { + super(); + this.displayName = displayName; + this.namespace = namespace; + } + + protected CreateMetadataTaxonomyRequestBody(Builder builder) { + super(); + this.key = builder.key; + this.displayName = builder.displayName; + this.namespace = builder.namespace; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getKey() { + return key; + } + + public String getDisplayName() { + return displayName; + } + + public String getNamespace() { + return namespace; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateMetadataTaxonomyRequestBody casted = (CreateMetadataTaxonomyRequestBody) o; + return Objects.equals(key, casted.key) + && Objects.equals(displayName, casted.displayName) + && Objects.equals(namespace, casted.namespace); + } + + @Override + public int hashCode() { + return Objects.hash(key, displayName, namespace); + } + + @Override + public String toString() { + return "CreateMetadataTaxonomyRequestBody{" + + "key='" + + key + + '\'' + + ", " + + "displayName='" + + displayName + + '\'' + + ", " + + "namespace='" + + namespace + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String key; + + protected final String displayName; + + protected final String namespace; + + public Builder(String displayName, String namespace) { + super(); + this.displayName = displayName; + this.namespace = namespace; + } + + public Builder key(String key) { + this.key = key; + return this; + } + + public CreateMetadataTaxonomyRequestBody build() { + return new CreateMetadataTaxonomyRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyHeaders.java new file mode 100644 index 000000000..894858888 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteMetadataTaxonomyHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public DeleteMetadataTaxonomyHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteMetadataTaxonomyHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteMetadataTaxonomyHeaders build() { + return new DeleteMetadataTaxonomyHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyLevelHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyLevelHeaders.java new file mode 100644 index 000000000..b2e81cfa4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyLevelHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteMetadataTaxonomyLevelHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public DeleteMetadataTaxonomyLevelHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteMetadataTaxonomyLevelHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteMetadataTaxonomyLevelHeaders build() { + return new DeleteMetadataTaxonomyLevelHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyNodeHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyNodeHeaders.java new file mode 100644 index 000000000..e8e4de6c5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyNodeHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class DeleteMetadataTaxonomyNodeHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public DeleteMetadataTaxonomyNodeHeaders() { + this.extraHeaders = mapOf(); + } + + protected DeleteMetadataTaxonomyNodeHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public DeleteMetadataTaxonomyNodeHeaders build() { + return new DeleteMetadataTaxonomyNodeHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomiesHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomiesHeaders.java new file mode 100644 index 000000000..db3c7475b --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomiesHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetMetadataTaxonomiesHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public GetMetadataTaxonomiesHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetMetadataTaxonomiesHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetMetadataTaxonomiesHeaders build() { + return new GetMetadataTaxonomiesHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomiesQueryParams.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomiesQueryParams.java new file mode 100644 index 000000000..472490489 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomiesQueryParams.java @@ -0,0 +1,51 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +public class GetMetadataTaxonomiesQueryParams { + + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ + public String marker; + + /** The maximum number of items to return per page. */ + public Long limit; + + public GetMetadataTaxonomiesQueryParams() {} + + protected GetMetadataTaxonomiesQueryParams(Builder builder) { + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected String marker; + + protected Long limit; + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetMetadataTaxonomiesQueryParams build() { + return new GetMetadataTaxonomiesQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyByKeyHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyByKeyHeaders.java new file mode 100644 index 000000000..8e96b5050 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyByKeyHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetMetadataTaxonomyByKeyHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public GetMetadataTaxonomyByKeyHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetMetadataTaxonomyByKeyHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetMetadataTaxonomyByKeyHeaders build() { + return new GetMetadataTaxonomyByKeyHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodeByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodeByIdHeaders.java new file mode 100644 index 000000000..48d751672 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodeByIdHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetMetadataTaxonomyNodeByIdHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public GetMetadataTaxonomyNodeByIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetMetadataTaxonomyNodeByIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetMetadataTaxonomyNodeByIdHeaders build() { + return new GetMetadataTaxonomyNodeByIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodesHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodesHeaders.java new file mode 100644 index 000000000..6c5b5b4d9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodesHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetMetadataTaxonomyNodesHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public GetMetadataTaxonomyNodesHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetMetadataTaxonomyNodesHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetMetadataTaxonomyNodesHeaders build() { + return new GetMetadataTaxonomyNodesHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodesQueryParams.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodesQueryParams.java new file mode 100644 index 000000000..455c9a272 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodesQueryParams.java @@ -0,0 +1,140 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import java.util.List; + +public class GetMetadataTaxonomyNodesQueryParams { + + /** + * Filters results by taxonomy level. Multiple values can be provided. Results include nodes that + * match any of the specified values. + */ + public List level; + + /** + * Node identifier of a direct parent node. Multiple values can be provided. Results include nodes + * that match any of the specified values. + */ + public List parent; + + /** + * Node identifier of any ancestor node. Multiple values can be provided. Results include nodes + * that match any of the specified values. + */ + public List ancestor; + + /** Query text to search for the taxonomy nodes. */ + public String query; + + /** + * When set to `true` this provides the total number of nodes that matched the query. The response + * will compute counts of up to 10,000 elements. Defaults to `false`. + */ + public Boolean includeTotalResultCount; + + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ + public String marker; + + /** The maximum number of items to return per page. */ + public Long limit; + + public GetMetadataTaxonomyNodesQueryParams() {} + + protected GetMetadataTaxonomyNodesQueryParams(Builder builder) { + this.level = builder.level; + this.parent = builder.parent; + this.ancestor = builder.ancestor; + this.query = builder.query; + this.includeTotalResultCount = builder.includeTotalResultCount; + this.marker = builder.marker; + this.limit = builder.limit; + } + + public List getLevel() { + return level; + } + + public List getParent() { + return parent; + } + + public List getAncestor() { + return ancestor; + } + + public String getQuery() { + return query; + } + + public Boolean getIncludeTotalResultCount() { + return includeTotalResultCount; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected List level; + + protected List parent; + + protected List ancestor; + + protected String query; + + protected Boolean includeTotalResultCount; + + protected String marker; + + protected Long limit; + + public Builder level(List level) { + this.level = level; + return this; + } + + public Builder parent(List parent) { + this.parent = parent; + return this; + } + + public Builder ancestor(List ancestor) { + this.ancestor = ancestor; + return this; + } + + public Builder query(String query) { + this.query = query; + return this; + } + + public Builder includeTotalResultCount(Boolean includeTotalResultCount) { + this.includeTotalResultCount = includeTotalResultCount; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetMetadataTaxonomyNodesQueryParams build() { + return new GetMetadataTaxonomyNodesQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsHeaders.java new file mode 100644 index 000000000..93a0bdb15 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class GetMetadataTemplateFieldOptionsHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public GetMetadataTemplateFieldOptionsHeaders() { + this.extraHeaders = mapOf(); + } + + protected GetMetadataTemplateFieldOptionsHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetMetadataTemplateFieldOptionsHeaders build() { + return new GetMetadataTemplateFieldOptionsHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsQueryParams.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsQueryParams.java new file mode 100644 index 000000000..db9d4eb26 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsQueryParams.java @@ -0,0 +1,159 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import java.util.List; + +public class GetMetadataTemplateFieldOptionsQueryParams { + + /** + * Filters results by taxonomy level. Multiple values can be provided. Results include nodes that + * match any of the specified values. + */ + public List level; + + /** + * Node identifier of a direct parent node. Multiple values can be provided. Results include nodes + * that match any of the specified values. + */ + public List parent; + + /** + * Node identifier of any ancestor node. Multiple values can be provided. Results include nodes + * that match any of the specified values. + */ + public List ancestor; + + /** Query text to search for the taxonomy nodes. */ + public String query; + + /** + * When set to `true` this provides the total number of nodes that matched the query. The response + * will compute counts of up to 10,000 elements. Defaults to `false`. + */ + public Boolean includeTotalResultCount; + + /** + * When set to `true`, this only returns valid selectable options for this template taxonomy + * field. Otherwise, it returns all taxonomy nodes, whether or not they are selectable. Defaults + * to `true`. + */ + public Boolean onlySelectableOptions; + + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + * + *

    This requires `usemarker` to be set to `true`. + */ + public String marker; + + /** The maximum number of items to return per page. */ + public Long limit; + + public GetMetadataTemplateFieldOptionsQueryParams() {} + + protected GetMetadataTemplateFieldOptionsQueryParams(Builder builder) { + this.level = builder.level; + this.parent = builder.parent; + this.ancestor = builder.ancestor; + this.query = builder.query; + this.includeTotalResultCount = builder.includeTotalResultCount; + this.onlySelectableOptions = builder.onlySelectableOptions; + this.marker = builder.marker; + this.limit = builder.limit; + } + + public List getLevel() { + return level; + } + + public List getParent() { + return parent; + } + + public List getAncestor() { + return ancestor; + } + + public String getQuery() { + return query; + } + + public Boolean getIncludeTotalResultCount() { + return includeTotalResultCount; + } + + public Boolean getOnlySelectableOptions() { + return onlySelectableOptions; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected List level; + + protected List parent; + + protected List ancestor; + + protected String query; + + protected Boolean includeTotalResultCount; + + protected Boolean onlySelectableOptions; + + protected String marker; + + protected Long limit; + + public Builder level(List level) { + this.level = level; + return this; + } + + public Builder parent(List parent) { + this.parent = parent; + return this; + } + + public Builder ancestor(List ancestor) { + this.ancestor = ancestor; + return this; + } + + public Builder query(String query) { + this.query = query; + return this; + } + + public Builder includeTotalResultCount(Boolean includeTotalResultCount) { + this.includeTotalResultCount = includeTotalResultCount; + return this; + } + + public Builder onlySelectableOptions(Boolean onlySelectableOptions) { + this.onlySelectableOptions = onlySelectableOptions; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetMetadataTemplateFieldOptionsQueryParams build() { + return new GetMetadataTemplateFieldOptionsQueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsScope.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsScope.java new file mode 100644 index 000000000..1e6b3e0f8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsScope.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum GetMetadataTemplateFieldOptionsScope implements Valuable { + GLOBAL("global"), + ENTERPRISE("enterprise"); + + private final String value; + + GetMetadataTemplateFieldOptionsScope(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class GetMetadataTemplateFieldOptionsScopeDeserializer + extends JsonDeserializer> { + + public GetMetadataTemplateFieldOptionsScopeDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(GetMetadataTemplateFieldOptionsScope.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class GetMetadataTemplateFieldOptionsScopeSerializer + extends JsonSerializer> { + + public GetMetadataTemplateFieldOptionsScopeSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/MetadataTaxonomiesManager.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/MetadataTaxonomiesManager.java new file mode 100644 index 000000000..c4bb657b4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/MetadataTaxonomiesManager.java @@ -0,0 +1,985 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.metadatataxonomies.MetadataTaxonomies; +import com.box.sdkgen.schemas.metadatataxonomy.MetadataTaxonomy; +import com.box.sdkgen.schemas.metadatataxonomylevel.MetadataTaxonomyLevel; +import com.box.sdkgen.schemas.metadatataxonomylevels.MetadataTaxonomyLevels; +import com.box.sdkgen.schemas.metadatataxonomynode.MetadataTaxonomyNode; +import com.box.sdkgen.schemas.metadatataxonomynodes.MetadataTaxonomyNodes; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.List; +import java.util.Map; + +public class MetadataTaxonomiesManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public MetadataTaxonomiesManager() { + this.networkSession = new NetworkSession(); + } + + protected MetadataTaxonomiesManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + /** + * Creates a new metadata taxonomy that can be used in metadata templates. + * + * @param requestBody Request body of createMetadataTaxonomy method + */ + public MetadataTaxonomy createMetadataTaxonomy(CreateMetadataTaxonomyRequestBody requestBody) { + return createMetadataTaxonomy(requestBody, new CreateMetadataTaxonomyHeaders()); + } + + /** + * Creates a new metadata taxonomy that can be used in metadata templates. + * + * @param requestBody Request body of createMetadataTaxonomy method + * @param headers Headers of createMetadataTaxonomy method + */ + public MetadataTaxonomy createMetadataTaxonomy( + CreateMetadataTaxonomyRequestBody requestBody, CreateMetadataTaxonomyHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomy.class); + } + + /** + * Used to retrieve all metadata taxonomies in a namespace. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + */ + public MetadataTaxonomies getMetadataTaxonomies(String namespace) { + return getMetadataTaxonomies( + namespace, new GetMetadataTaxonomiesQueryParams(), new GetMetadataTaxonomiesHeaders()); + } + + /** + * Used to retrieve all metadata taxonomies in a namespace. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param queryParams Query parameters of getMetadataTaxonomies method + */ + public MetadataTaxonomies getMetadataTaxonomies( + String namespace, GetMetadataTaxonomiesQueryParams queryParams) { + return getMetadataTaxonomies(namespace, queryParams, new GetMetadataTaxonomiesHeaders()); + } + + /** + * Used to retrieve all metadata taxonomies in a namespace. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param headers Headers of getMetadataTaxonomies method + */ + public MetadataTaxonomies getMetadataTaxonomies( + String namespace, GetMetadataTaxonomiesHeaders headers) { + return getMetadataTaxonomies(namespace, new GetMetadataTaxonomiesQueryParams(), headers); + } + + /** + * Used to retrieve all metadata taxonomies in a namespace. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param queryParams Query parameters of getMetadataTaxonomies method + * @param headers Headers of getMetadataTaxonomies method + */ + public MetadataTaxonomies getMetadataTaxonomies( + String namespace, + GetMetadataTaxonomiesQueryParams queryParams, + GetMetadataTaxonomiesHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace)), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomies.class); + } + + /** + * Used to retrieve a metadata taxonomy by taxonomy key. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + */ + public MetadataTaxonomy getMetadataTaxonomyByKey(String namespace, String taxonomyKey) { + return getMetadataTaxonomyByKey(namespace, taxonomyKey, new GetMetadataTaxonomyByKeyHeaders()); + } + + /** + * Used to retrieve a metadata taxonomy by taxonomy key. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param headers Headers of getMetadataTaxonomyByKey method + */ + public MetadataTaxonomy getMetadataTaxonomyByKey( + String namespace, String taxonomyKey, GetMetadataTaxonomyByKeyHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace), + "/", + convertToString(taxonomyKey)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomy.class); + } + + /** + * Updates an existing metadata taxonomy. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param requestBody Request body of updateMetadataTaxonomy method + */ + public MetadataTaxonomy updateMetadataTaxonomy( + String namespace, String taxonomyKey, UpdateMetadataTaxonomyRequestBody requestBody) { + return updateMetadataTaxonomy( + namespace, taxonomyKey, requestBody, new UpdateMetadataTaxonomyHeaders()); + } + + /** + * Updates an existing metadata taxonomy. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param requestBody Request body of updateMetadataTaxonomy method + * @param headers Headers of updateMetadataTaxonomy method + */ + public MetadataTaxonomy updateMetadataTaxonomy( + String namespace, + String taxonomyKey, + UpdateMetadataTaxonomyRequestBody requestBody, + UpdateMetadataTaxonomyHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace), + "/", + convertToString(taxonomyKey)), + "PATCH") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomy.class); + } + + /** + * Delete a metadata taxonomy. This deletion is permanent and cannot be reverted. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + */ + public void deleteMetadataTaxonomy(String namespace, String taxonomyKey) { + deleteMetadataTaxonomy(namespace, taxonomyKey, new DeleteMetadataTaxonomyHeaders()); + } + + /** + * Delete a metadata taxonomy. This deletion is permanent and cannot be reverted. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param headers Headers of deleteMetadataTaxonomy method + */ + public void deleteMetadataTaxonomy( + String namespace, String taxonomyKey, DeleteMetadataTaxonomyHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace), + "/", + convertToString(taxonomyKey)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + /** + * Creates new metadata taxonomy levels. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param requestBody Request body of createMetadataTaxonomyLevel method + */ + public MetadataTaxonomyLevels createMetadataTaxonomyLevel( + String namespace, String taxonomyKey, List requestBody) { + return createMetadataTaxonomyLevel( + namespace, taxonomyKey, requestBody, new CreateMetadataTaxonomyLevelHeaders()); + } + + /** + * Creates new metadata taxonomy levels. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param requestBody Request body of createMetadataTaxonomyLevel method + * @param headers Headers of createMetadataTaxonomyLevel method + */ + public MetadataTaxonomyLevels createMetadataTaxonomyLevel( + String namespace, + String taxonomyKey, + List requestBody, + CreateMetadataTaxonomyLevelHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace), + "/", + convertToString(taxonomyKey), + "/levels"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomyLevels.class); + } + + /** + * Updates an existing metadata taxonomy level. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param levelIndex The index of the metadata taxonomy level. Example: 1 + * @param requestBody Request body of patchMetadataTaxonomiesIdIdLevelsId method + */ + public MetadataTaxonomyLevel patchMetadataTaxonomiesIdIdLevelsId( + String namespace, + String taxonomyKey, + long levelIndex, + PatchMetadataTaxonomiesIdIdLevelsIdRequestBody requestBody) { + return patchMetadataTaxonomiesIdIdLevelsId( + namespace, + taxonomyKey, + levelIndex, + requestBody, + new PatchMetadataTaxonomiesIdIdLevelsIdHeaders()); + } + + /** + * Updates an existing metadata taxonomy level. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param levelIndex The index of the metadata taxonomy level. Example: 1 + * @param requestBody Request body of patchMetadataTaxonomiesIdIdLevelsId method + * @param headers Headers of patchMetadataTaxonomiesIdIdLevelsId method + */ + public MetadataTaxonomyLevel patchMetadataTaxonomiesIdIdLevelsId( + String namespace, + String taxonomyKey, + long levelIndex, + PatchMetadataTaxonomiesIdIdLevelsIdRequestBody requestBody, + PatchMetadataTaxonomiesIdIdLevelsIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace), + "/", + convertToString(taxonomyKey), + "/levels/", + convertToString(levelIndex)), + "PATCH") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomyLevel.class); + } + + /** + * Creates a new metadata taxonomy level and appends it to the existing levels. If there are no + * levels defined yet, this will create the first level. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param requestBody Request body of addMetadataTaxonomyLevel method + */ + public MetadataTaxonomyLevels addMetadataTaxonomyLevel( + String namespace, String taxonomyKey, AddMetadataTaxonomyLevelRequestBody requestBody) { + return addMetadataTaxonomyLevel( + namespace, taxonomyKey, requestBody, new AddMetadataTaxonomyLevelHeaders()); + } + + /** + * Creates a new metadata taxonomy level and appends it to the existing levels. If there are no + * levels defined yet, this will create the first level. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param requestBody Request body of addMetadataTaxonomyLevel method + * @param headers Headers of addMetadataTaxonomyLevel method + */ + public MetadataTaxonomyLevels addMetadataTaxonomyLevel( + String namespace, + String taxonomyKey, + AddMetadataTaxonomyLevelRequestBody requestBody, + AddMetadataTaxonomyLevelHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace), + "/", + convertToString(taxonomyKey), + "/levels:append"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomyLevels.class); + } + + /** + * Deletes the last level of the metadata taxonomy. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + */ + public MetadataTaxonomyLevels deleteMetadataTaxonomyLevel(String namespace, String taxonomyKey) { + return deleteMetadataTaxonomyLevel( + namespace, taxonomyKey, new DeleteMetadataTaxonomyLevelHeaders()); + } + + /** + * Deletes the last level of the metadata taxonomy. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param headers Headers of deleteMetadataTaxonomyLevel method + */ + public MetadataTaxonomyLevels deleteMetadataTaxonomyLevel( + String namespace, String taxonomyKey, DeleteMetadataTaxonomyLevelHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace), + "/", + convertToString(taxonomyKey), + "/levels:trim"), + "POST") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomyLevels.class); + } + + /** + * Used to retrieve metadata taxonomy nodes based on the parameters specified. Results are sorted + * in lexicographic order unless a `query` parameter is passed. With a `query` parameter + * specified, results are sorted in order of relevance. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + */ + public MetadataTaxonomyNodes getMetadataTaxonomyNodes(String namespace, String taxonomyKey) { + return getMetadataTaxonomyNodes( + namespace, + taxonomyKey, + new GetMetadataTaxonomyNodesQueryParams(), + new GetMetadataTaxonomyNodesHeaders()); + } + + /** + * Used to retrieve metadata taxonomy nodes based on the parameters specified. Results are sorted + * in lexicographic order unless a `query` parameter is passed. With a `query` parameter + * specified, results are sorted in order of relevance. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param queryParams Query parameters of getMetadataTaxonomyNodes method + */ + public MetadataTaxonomyNodes getMetadataTaxonomyNodes( + String namespace, String taxonomyKey, GetMetadataTaxonomyNodesQueryParams queryParams) { + return getMetadataTaxonomyNodes( + namespace, taxonomyKey, queryParams, new GetMetadataTaxonomyNodesHeaders()); + } + + /** + * Used to retrieve metadata taxonomy nodes based on the parameters specified. Results are sorted + * in lexicographic order unless a `query` parameter is passed. With a `query` parameter + * specified, results are sorted in order of relevance. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param headers Headers of getMetadataTaxonomyNodes method + */ + public MetadataTaxonomyNodes getMetadataTaxonomyNodes( + String namespace, String taxonomyKey, GetMetadataTaxonomyNodesHeaders headers) { + return getMetadataTaxonomyNodes( + namespace, taxonomyKey, new GetMetadataTaxonomyNodesQueryParams(), headers); + } + + /** + * Used to retrieve metadata taxonomy nodes based on the parameters specified. Results are sorted + * in lexicographic order unless a `query` parameter is passed. With a `query` parameter + * specified, results are sorted in order of relevance. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param queryParams Query parameters of getMetadataTaxonomyNodes method + * @param headers Headers of getMetadataTaxonomyNodes method + */ + public MetadataTaxonomyNodes getMetadataTaxonomyNodes( + String namespace, + String taxonomyKey, + GetMetadataTaxonomyNodesQueryParams queryParams, + GetMetadataTaxonomyNodesHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("level", convertToString(queryParams.getLevel())), + entryOf("parent", convertToString(queryParams.getParent())), + entryOf("ancestor", convertToString(queryParams.getAncestor())), + entryOf("query", convertToString(queryParams.getQuery())), + entryOf( + "include-total-result-count", + convertToString(queryParams.getIncludeTotalResultCount())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace), + "/", + convertToString(taxonomyKey), + "/nodes"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomyNodes.class); + } + + /** + * Creates a new metadata taxonomy node. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param requestBody Request body of createMetadataTaxonomyNode method + */ + public MetadataTaxonomyNode createMetadataTaxonomyNode( + String namespace, String taxonomyKey, CreateMetadataTaxonomyNodeRequestBody requestBody) { + return createMetadataTaxonomyNode( + namespace, taxonomyKey, requestBody, new CreateMetadataTaxonomyNodeHeaders()); + } + + /** + * Creates a new metadata taxonomy node. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param requestBody Request body of createMetadataTaxonomyNode method + * @param headers Headers of createMetadataTaxonomyNode method + */ + public MetadataTaxonomyNode createMetadataTaxonomyNode( + String namespace, + String taxonomyKey, + CreateMetadataTaxonomyNodeRequestBody requestBody, + CreateMetadataTaxonomyNodeHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace), + "/", + convertToString(taxonomyKey), + "/nodes"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomyNode.class); + } + + /** + * Retrieves a metadata taxonomy node by its identifier. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param nodeId The identifier of the metadata taxonomy node. Example: + * "14d3d433-c77f-49c5-b146-9dea370f6e32" + */ + public MetadataTaxonomyNode getMetadataTaxonomyNodeById( + String namespace, String taxonomyKey, String nodeId) { + return getMetadataTaxonomyNodeById( + namespace, taxonomyKey, nodeId, new GetMetadataTaxonomyNodeByIdHeaders()); + } + + /** + * Retrieves a metadata taxonomy node by its identifier. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param nodeId The identifier of the metadata taxonomy node. Example: + * "14d3d433-c77f-49c5-b146-9dea370f6e32" + * @param headers Headers of getMetadataTaxonomyNodeById method + */ + public MetadataTaxonomyNode getMetadataTaxonomyNodeById( + String namespace, + String taxonomyKey, + String nodeId, + GetMetadataTaxonomyNodeByIdHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace), + "/", + convertToString(taxonomyKey), + "/nodes/", + convertToString(nodeId)), + "GET") + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomyNode.class); + } + + /** + * Updates an existing metadata taxonomy node. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param nodeId The identifier of the metadata taxonomy node. Example: + * "14d3d433-c77f-49c5-b146-9dea370f6e32" + */ + public MetadataTaxonomyNode updateMetadataTaxonomyNode( + String namespace, String taxonomyKey, String nodeId) { + return updateMetadataTaxonomyNode( + namespace, + taxonomyKey, + nodeId, + new UpdateMetadataTaxonomyNodeRequestBody(), + new UpdateMetadataTaxonomyNodeHeaders()); + } + + /** + * Updates an existing metadata taxonomy node. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param nodeId The identifier of the metadata taxonomy node. Example: + * "14d3d433-c77f-49c5-b146-9dea370f6e32" + * @param requestBody Request body of updateMetadataTaxonomyNode method + */ + public MetadataTaxonomyNode updateMetadataTaxonomyNode( + String namespace, + String taxonomyKey, + String nodeId, + UpdateMetadataTaxonomyNodeRequestBody requestBody) { + return updateMetadataTaxonomyNode( + namespace, taxonomyKey, nodeId, requestBody, new UpdateMetadataTaxonomyNodeHeaders()); + } + + /** + * Updates an existing metadata taxonomy node. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param nodeId The identifier of the metadata taxonomy node. Example: + * "14d3d433-c77f-49c5-b146-9dea370f6e32" + * @param headers Headers of updateMetadataTaxonomyNode method + */ + public MetadataTaxonomyNode updateMetadataTaxonomyNode( + String namespace, + String taxonomyKey, + String nodeId, + UpdateMetadataTaxonomyNodeHeaders headers) { + return updateMetadataTaxonomyNode( + namespace, taxonomyKey, nodeId, new UpdateMetadataTaxonomyNodeRequestBody(), headers); + } + + /** + * Updates an existing metadata taxonomy node. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param nodeId The identifier of the metadata taxonomy node. Example: + * "14d3d433-c77f-49c5-b146-9dea370f6e32" + * @param requestBody Request body of updateMetadataTaxonomyNode method + * @param headers Headers of updateMetadataTaxonomyNode method + */ + public MetadataTaxonomyNode updateMetadataTaxonomyNode( + String namespace, + String taxonomyKey, + String nodeId, + UpdateMetadataTaxonomyNodeRequestBody requestBody, + UpdateMetadataTaxonomyNodeHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace), + "/", + convertToString(taxonomyKey), + "/nodes/", + convertToString(nodeId)), + "PATCH") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomyNode.class); + } + + /** + * Delete a metadata taxonomy node. This deletion is permanent and cannot be reverted. Only + * metadata taxonomy nodes without any children can be deleted. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param nodeId The identifier of the metadata taxonomy node. Example: + * "14d3d433-c77f-49c5-b146-9dea370f6e32" + */ + public void deleteMetadataTaxonomyNode(String namespace, String taxonomyKey, String nodeId) { + deleteMetadataTaxonomyNode( + namespace, taxonomyKey, nodeId, new DeleteMetadataTaxonomyNodeHeaders()); + } + + /** + * Delete a metadata taxonomy node. This deletion is permanent and cannot be reverted. Only + * metadata taxonomy nodes without any children can be deleted. + * + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" + * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" + * @param nodeId The identifier of the metadata taxonomy node. Example: + * "14d3d433-c77f-49c5-b146-9dea370f6e32" + * @param headers Headers of deleteMetadataTaxonomyNode method + */ + public void deleteMetadataTaxonomyNode( + String namespace, + String taxonomyKey, + String nodeId, + DeleteMetadataTaxonomyNodeHeaders headers) { + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_taxonomies/", + convertToString(namespace), + "/", + convertToString(taxonomyKey), + "/nodes/", + convertToString(nodeId)), + "DELETE") + .headers(headersMap) + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + /** + * Used to retrieve metadata taxonomy nodes which are available for the taxonomy field based on + * its configuration and the parameters specified. Results are sorted in lexicographic order + * unless a `query` parameter is passed. With a `query` parameter specified, results are sorted in + * order of relevance. + * + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param fieldKey The key of the metadata taxonomy field in the template. Example: "geography" + */ + public MetadataTaxonomyNodes getMetadataTemplateFieldOptions( + GetMetadataTemplateFieldOptionsScope scope, String templateKey, String fieldKey) { + return getMetadataTemplateFieldOptions( + scope, + templateKey, + fieldKey, + new GetMetadataTemplateFieldOptionsQueryParams(), + new GetMetadataTemplateFieldOptionsHeaders()); + } + + /** + * Used to retrieve metadata taxonomy nodes which are available for the taxonomy field based on + * its configuration and the parameters specified. Results are sorted in lexicographic order + * unless a `query` parameter is passed. With a `query` parameter specified, results are sorted in + * order of relevance. + * + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param fieldKey The key of the metadata taxonomy field in the template. Example: "geography" + * @param queryParams Query parameters of getMetadataTemplateFieldOptions method + */ + public MetadataTaxonomyNodes getMetadataTemplateFieldOptions( + GetMetadataTemplateFieldOptionsScope scope, + String templateKey, + String fieldKey, + GetMetadataTemplateFieldOptionsQueryParams queryParams) { + return getMetadataTemplateFieldOptions( + scope, templateKey, fieldKey, queryParams, new GetMetadataTemplateFieldOptionsHeaders()); + } + + /** + * Used to retrieve metadata taxonomy nodes which are available for the taxonomy field based on + * its configuration and the parameters specified. Results are sorted in lexicographic order + * unless a `query` parameter is passed. With a `query` parameter specified, results are sorted in + * order of relevance. + * + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param fieldKey The key of the metadata taxonomy field in the template. Example: "geography" + * @param headers Headers of getMetadataTemplateFieldOptions method + */ + public MetadataTaxonomyNodes getMetadataTemplateFieldOptions( + GetMetadataTemplateFieldOptionsScope scope, + String templateKey, + String fieldKey, + GetMetadataTemplateFieldOptionsHeaders headers) { + return getMetadataTemplateFieldOptions( + scope, templateKey, fieldKey, new GetMetadataTemplateFieldOptionsQueryParams(), headers); + } + + /** + * Used to retrieve metadata taxonomy nodes which are available for the taxonomy field based on + * its configuration and the parameters specified. Results are sorted in lexicographic order + * unless a `query` parameter is passed. With a `query` parameter specified, results are sorted in + * order of relevance. + * + * @param scope The scope of the metadata template. Example: "global" + * @param templateKey The name of the metadata template. Example: "properties" + * @param fieldKey The key of the metadata taxonomy field in the template. Example: "geography" + * @param queryParams Query parameters of getMetadataTemplateFieldOptions method + * @param headers Headers of getMetadataTemplateFieldOptions method + */ + public MetadataTaxonomyNodes getMetadataTemplateFieldOptions( + GetMetadataTemplateFieldOptionsScope scope, + String templateKey, + String fieldKey, + GetMetadataTemplateFieldOptionsQueryParams queryParams, + GetMetadataTemplateFieldOptionsHeaders headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("level", convertToString(queryParams.getLevel())), + entryOf("parent", convertToString(queryParams.getParent())), + entryOf("ancestor", convertToString(queryParams.getAncestor())), + entryOf("query", convertToString(queryParams.getQuery())), + entryOf( + "include-total-result-count", + convertToString(queryParams.getIncludeTotalResultCount())), + entryOf( + "only-selectable-options", + convertToString(queryParams.getOnlySelectableOptions())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/metadata_templates/", + convertToString(scope), + "/", + convertToString(templateKey), + "/fields/", + convertToString(fieldKey), + "/options"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), MetadataTaxonomyNodes.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() { + this.networkSession = new NetworkSession(); + } + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public MetadataTaxonomiesManager build() { + return new MetadataTaxonomiesManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdHeaders.java new file mode 100644 index 000000000..ec8f7eba3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class PatchMetadataTaxonomiesIdIdLevelsIdHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public PatchMetadataTaxonomiesIdIdLevelsIdHeaders() { + this.extraHeaders = mapOf(); + } + + protected PatchMetadataTaxonomiesIdIdLevelsIdHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public PatchMetadataTaxonomiesIdIdLevelsIdHeaders build() { + return new PatchMetadataTaxonomiesIdIdLevelsIdHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdRequestBody.java new file mode 100644 index 000000000..abea43114 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdRequestBody.java @@ -0,0 +1,91 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class PatchMetadataTaxonomiesIdIdLevelsIdRequestBody extends SerializableObject { + + /** The display name of the taxonomy level. */ + protected final String displayName; + + /** The description of the taxonomy level. */ + protected String description; + + public PatchMetadataTaxonomiesIdIdLevelsIdRequestBody( + @JsonProperty("displayName") String displayName) { + super(); + this.displayName = displayName; + } + + protected PatchMetadataTaxonomiesIdIdLevelsIdRequestBody(Builder builder) { + super(); + this.displayName = builder.displayName; + this.description = builder.description; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getDisplayName() { + return displayName; + } + + public String getDescription() { + return description; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PatchMetadataTaxonomiesIdIdLevelsIdRequestBody casted = + (PatchMetadataTaxonomiesIdIdLevelsIdRequestBody) o; + return Objects.equals(displayName, casted.displayName) + && Objects.equals(description, casted.description); + } + + @Override + public int hashCode() { + return Objects.hash(displayName, description); + } + + @Override + public String toString() { + return "PatchMetadataTaxonomiesIdIdLevelsIdRequestBody{" + + "displayName='" + + displayName + + '\'' + + ", " + + "description='" + + description + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String displayName; + + protected String description; + + public Builder(String displayName) { + super(); + this.displayName = displayName; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public PatchMetadataTaxonomiesIdIdLevelsIdRequestBody build() { + return new PatchMetadataTaxonomiesIdIdLevelsIdRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyHeaders.java new file mode 100644 index 000000000..3b007ed71 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateMetadataTaxonomyHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public UpdateMetadataTaxonomyHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateMetadataTaxonomyHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateMetadataTaxonomyHeaders build() { + return new UpdateMetadataTaxonomyHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyNodeHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyNodeHeaders.java new file mode 100644 index 000000000..a5bb0313c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyNodeHeaders.java @@ -0,0 +1,41 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import java.util.Map; + +public class UpdateMetadataTaxonomyNodeHeaders { + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public UpdateMetadataTaxonomyNodeHeaders() { + this.extraHeaders = mapOf(); + } + + protected UpdateMetadataTaxonomyNodeHeaders(Builder builder) { + this.extraHeaders = builder.extraHeaders; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected Map extraHeaders; + + public Builder() { + this.extraHeaders = mapOf(); + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public UpdateMetadataTaxonomyNodeHeaders build() { + return new UpdateMetadataTaxonomyNodeHeaders(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyNodeRequestBody.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyNodeRequestBody.java new file mode 100644 index 000000000..d112544b4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyNodeRequestBody.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateMetadataTaxonomyNodeRequestBody extends SerializableObject { + + /** The display name of the taxonomy node. */ + protected String displayName; + + public UpdateMetadataTaxonomyNodeRequestBody() { + super(); + } + + protected UpdateMetadataTaxonomyNodeRequestBody(Builder builder) { + super(); + this.displayName = builder.displayName; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getDisplayName() { + return displayName; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateMetadataTaxonomyNodeRequestBody casted = (UpdateMetadataTaxonomyNodeRequestBody) o; + return Objects.equals(displayName, casted.displayName); + } + + @Override + public int hashCode() { + return Objects.hash(displayName); + } + + @Override + public String toString() { + return "UpdateMetadataTaxonomyNodeRequestBody{" + "displayName='" + displayName + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String displayName; + + public Builder displayName(String displayName) { + this.displayName = displayName; + return this; + } + + public UpdateMetadataTaxonomyNodeRequestBody build() { + return new UpdateMetadataTaxonomyNodeRequestBody(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyRequestBody.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyRequestBody.java new file mode 100644 index 000000000..b40189c1c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyRequestBody.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.managers.metadatataxonomies; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class UpdateMetadataTaxonomyRequestBody extends SerializableObject { + + /** The display name of the taxonomy. */ + protected final String displayName; + + public UpdateMetadataTaxonomyRequestBody(@JsonProperty("displayName") String displayName) { + super(); + this.displayName = displayName; + } + + public String getDisplayName() { + return displayName; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateMetadataTaxonomyRequestBody casted = (UpdateMetadataTaxonomyRequestBody) o; + return Objects.equals(displayName, casted.displayName); + } + + @Override + public int hashCode() { + return Objects.hash(displayName); + } + + @Override + public String toString() { + return "UpdateMetadataTaxonomyRequestBody{" + "displayName='" + displayName + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsField.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsField.java index 985f90911..b72968c5e 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsField.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsField.java @@ -15,10 +15,13 @@ public class CreateMetadataTemplateRequestBodyFieldsField extends SerializableOb /** * The type of field. The basic fields are a `string` field for text, a `float` field for numbers, - * and a `date` fields to present the user with a date-time picker. + * and a `date` field to present the user with a date-time picker. * *

    Additionally, metadata templates support an `enum` field for a basic list of items, and ` * multiSelect` field for a similar list of items where the user can select more than one value. + * + *

    Metadata taxonomies are also supported as a `taxonomy` field type with a specific set of + * additional properties, which describe its structure. */ @JsonDeserialize( using = @@ -54,6 +57,24 @@ public class CreateMetadataTemplateRequestBodyFieldsField extends SerializableOb */ protected List options; + /** + * The unique key of the metadata taxonomy to use for this taxonomy field. This property is + * required when the field `type` is set to `taxonomy`. + */ + protected String taxonomyKey; + + /** + * The namespace of the metadata taxonomy to use for this taxonomy field. This property is + * required when the field `type` is set to `taxonomy`. + */ + protected String namespace; + + /** + * An object defining additional rules for the options of the taxonomy field. This property is + * required when the field `type` is set to `taxonomy`. + */ + protected CreateMetadataTemplateRequestBodyFieldsOptionsRulesField optionsRules; + public CreateMetadataTemplateRequestBodyFieldsField( CreateMetadataTemplateRequestBodyFieldsTypeField type, String key, String displayName) { super(); @@ -80,6 +101,9 @@ protected CreateMetadataTemplateRequestBodyFieldsField(Builder builder) { this.description = builder.description; this.hidden = builder.hidden; this.options = builder.options; + this.taxonomyKey = builder.taxonomyKey; + this.namespace = builder.namespace; + this.optionsRules = builder.optionsRules; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -107,6 +131,18 @@ public List getOptions() { return options; } + public String getTaxonomyKey() { + return taxonomyKey; + } + + public String getNamespace() { + return namespace; + } + + public CreateMetadataTemplateRequestBodyFieldsOptionsRulesField getOptionsRules() { + return optionsRules; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -122,12 +158,16 @@ public boolean equals(Object o) { && Objects.equals(displayName, casted.displayName) && Objects.equals(description, casted.description) && Objects.equals(hidden, casted.hidden) - && Objects.equals(options, casted.options); + && Objects.equals(options, casted.options) + && Objects.equals(taxonomyKey, casted.taxonomyKey) + && Objects.equals(namespace, casted.namespace) + && Objects.equals(optionsRules, casted.optionsRules); } @Override public int hashCode() { - return Objects.hash(type, key, displayName, description, hidden, options); + return Objects.hash( + type, key, displayName, description, hidden, options, taxonomyKey, namespace, optionsRules); } @Override @@ -156,6 +196,18 @@ public String toString() { + "options='" + options + '\'' + + ", " + + "taxonomyKey='" + + taxonomyKey + + '\'' + + ", " + + "namespace='" + + namespace + + '\'' + + ", " + + "optionsRules='" + + optionsRules + + '\'' + "}"; } @@ -173,6 +225,12 @@ public static class Builder extends NullableFieldTracker { protected List options; + protected String taxonomyKey; + + protected String namespace; + + protected CreateMetadataTemplateRequestBodyFieldsOptionsRulesField optionsRules; + public Builder( CreateMetadataTemplateRequestBodyFieldsTypeField type, String key, String displayName) { super(); @@ -206,6 +264,22 @@ public Builder options(List return this; } + public Builder taxonomyKey(String taxonomyKey) { + this.taxonomyKey = taxonomyKey; + return this; + } + + public Builder namespace(String namespace) { + this.namespace = namespace; + return this; + } + + public Builder optionsRules( + CreateMetadataTemplateRequestBodyFieldsOptionsRulesField optionsRules) { + this.optionsRules = optionsRules; + return this; + } + public CreateMetadataTemplateRequestBodyFieldsField build() { return new CreateMetadataTemplateRequestBodyFieldsField(this); } diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsOptionsRulesField.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsOptionsRulesField.java new file mode 100644 index 000000000..2df9946a1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsOptionsRulesField.java @@ -0,0 +1,89 @@ +package com.box.sdkgen.managers.metadatatemplates; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class CreateMetadataTemplateRequestBodyFieldsOptionsRulesField extends SerializableObject { + + /** Whether to allow users to select multiple values. */ + protected Boolean multiSelect; + + /** An array of integers defining which levels of the taxonomy are selectable by users. */ + protected List selectableLevels; + + public CreateMetadataTemplateRequestBodyFieldsOptionsRulesField() { + super(); + } + + protected CreateMetadataTemplateRequestBodyFieldsOptionsRulesField(Builder builder) { + super(); + this.multiSelect = builder.multiSelect; + this.selectableLevels = builder.selectableLevels; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getMultiSelect() { + return multiSelect; + } + + public List getSelectableLevels() { + return selectableLevels; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateMetadataTemplateRequestBodyFieldsOptionsRulesField casted = + (CreateMetadataTemplateRequestBodyFieldsOptionsRulesField) o; + return Objects.equals(multiSelect, casted.multiSelect) + && Objects.equals(selectableLevels, casted.selectableLevels); + } + + @Override + public int hashCode() { + return Objects.hash(multiSelect, selectableLevels); + } + + @Override + public String toString() { + return "CreateMetadataTemplateRequestBodyFieldsOptionsRulesField{" + + "multiSelect='" + + multiSelect + + '\'' + + ", " + + "selectableLevels='" + + selectableLevels + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean multiSelect; + + protected List selectableLevels; + + public Builder multiSelect(Boolean multiSelect) { + this.multiSelect = multiSelect; + return this; + } + + public Builder selectableLevels(List selectableLevels) { + this.selectableLevels = selectableLevels; + return this; + } + + public CreateMetadataTemplateRequestBodyFieldsOptionsRulesField build() { + return new CreateMetadataTemplateRequestBodyFieldsOptionsRulesField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsTypeField.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsTypeField.java index b4d3bc111..851e8b110 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsTypeField.java @@ -16,7 +16,8 @@ public enum CreateMetadataTemplateRequestBodyFieldsTypeField implements Valuable FLOAT("float"), DATE("date"), ENUM("enum"), - MULTISELECT("multiSelect"); + MULTISELECT("multiSelect"), + TAXONOMY("taxonomy"); private final String value; diff --git a/src/main/java/com/box/sdkgen/schemas/metadatataxonomies/MetadataTaxonomies.java b/src/main/java/com/box/sdkgen/schemas/metadatataxonomies/MetadataTaxonomies.java new file mode 100644 index 000000000..1288dcd71 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatataxonomies/MetadataTaxonomies.java @@ -0,0 +1,141 @@ +package com.box.sdkgen.schemas.metadatataxonomies; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.metadatataxonomy.MetadataTaxonomy; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +/** A list of metadata taxonomies. */ +@JsonFilter("nullablePropertyFilter") +public class MetadataTaxonomies extends SerializableObject { + + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ + protected Long limit; + + /** The marker for the start of the next page of results. */ + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + /** The marker for the start of the previous page of results. */ + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + /** A list of metadata taxonomies. */ + protected List entries; + + public MetadataTaxonomies() { + super(); + } + + protected MetadataTaxonomies(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataTaxonomies casted = (MetadataTaxonomies) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "MetadataTaxonomies{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public MetadataTaxonomies build() { + return new MetadataTaxonomies(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatataxonomy/MetadataTaxonomy.java b/src/main/java/com/box/sdkgen/schemas/metadatataxonomy/MetadataTaxonomy.java new file mode 100644 index 000000000..58cfad5cf --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatataxonomy/MetadataTaxonomy.java @@ -0,0 +1,152 @@ +package com.box.sdkgen.schemas.metadatataxonomy; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.metadatataxonomylevel.MetadataTaxonomyLevel; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +/** A taxonomy object for metadata that can be used in metadata templates. */ +@JsonFilter("nullablePropertyFilter") +public class MetadataTaxonomy extends SerializableObject { + + /** A unique identifier of the metadata taxonomy. */ + protected final String id; + + /** + * A unique identifier of the metadata taxonomy. The identifier must be unique within the + * namespace to which it belongs. + */ + protected String key; + + /** The display name of the metadata taxonomy. This can be seen in the Box web app. */ + protected final String displayName; + + /** A namespace that the metadata taxonomy is associated with. */ + protected final String namespace; + + /** Levels of the metadata taxonomy. */ + protected List levels; + + public MetadataTaxonomy( + @JsonProperty("id") String id, + @JsonProperty("displayName") String displayName, + @JsonProperty("namespace") String namespace) { + super(); + this.id = id; + this.displayName = displayName; + this.namespace = namespace; + } + + protected MetadataTaxonomy(Builder builder) { + super(); + this.id = builder.id; + this.key = builder.key; + this.displayName = builder.displayName; + this.namespace = builder.namespace; + this.levels = builder.levels; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getKey() { + return key; + } + + public String getDisplayName() { + return displayName; + } + + public String getNamespace() { + return namespace; + } + + public List getLevels() { + return levels; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataTaxonomy casted = (MetadataTaxonomy) o; + return Objects.equals(id, casted.id) + && Objects.equals(key, casted.key) + && Objects.equals(displayName, casted.displayName) + && Objects.equals(namespace, casted.namespace) + && Objects.equals(levels, casted.levels); + } + + @Override + public int hashCode() { + return Objects.hash(id, key, displayName, namespace, levels); + } + + @Override + public String toString() { + return "MetadataTaxonomy{" + + "id='" + + id + + '\'' + + ", " + + "key='" + + key + + '\'' + + ", " + + "displayName='" + + displayName + + '\'' + + ", " + + "namespace='" + + namespace + + '\'' + + ", " + + "levels='" + + levels + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected String key; + + protected final String displayName; + + protected final String namespace; + + protected List levels; + + public Builder(String id, String displayName, String namespace) { + super(); + this.id = id; + this.displayName = displayName; + this.namespace = namespace; + } + + public Builder key(String key) { + this.key = key; + return this; + } + + public Builder levels(List levels) { + this.levels = levels; + return this; + } + + public MetadataTaxonomy build() { + return new MetadataTaxonomy(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatataxonomyancestor/MetadataTaxonomyAncestor.java b/src/main/java/com/box/sdkgen/schemas/metadatataxonomyancestor/MetadataTaxonomyAncestor.java new file mode 100644 index 000000000..429f3facb --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatataxonomyancestor/MetadataTaxonomyAncestor.java @@ -0,0 +1,108 @@ +package com.box.sdkgen.schemas.metadatataxonomyancestor; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +/** A node object in the metadata taxonomy that represents an ancestor. */ +@JsonFilter("nullablePropertyFilter") +public class MetadataTaxonomyAncestor extends SerializableObject { + + /** A unique identifier of the metadata taxonomy node. */ + protected String id; + + /** The display name of the metadata taxonomy node. */ + protected String displayName; + + /** An index of the level to which the node belongs. */ + protected Long level; + + public MetadataTaxonomyAncestor() { + super(); + } + + protected MetadataTaxonomyAncestor(Builder builder) { + super(); + this.id = builder.id; + this.displayName = builder.displayName; + this.level = builder.level; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getDisplayName() { + return displayName; + } + + public Long getLevel() { + return level; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataTaxonomyAncestor casted = (MetadataTaxonomyAncestor) o; + return Objects.equals(id, casted.id) + && Objects.equals(displayName, casted.displayName) + && Objects.equals(level, casted.level); + } + + @Override + public int hashCode() { + return Objects.hash(id, displayName, level); + } + + @Override + public String toString() { + return "MetadataTaxonomyAncestor{" + + "id='" + + id + + '\'' + + ", " + + "displayName='" + + displayName + + '\'' + + ", " + + "level='" + + level + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String id; + + protected String displayName; + + protected Long level; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder displayName(String displayName) { + this.displayName = displayName; + return this; + } + + public Builder level(Long level) { + this.level = level; + return this; + } + + public MetadataTaxonomyAncestor build() { + return new MetadataTaxonomyAncestor(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatataxonomylevel/MetadataTaxonomyLevel.java b/src/main/java/com/box/sdkgen/schemas/metadatataxonomylevel/MetadataTaxonomyLevel.java new file mode 100644 index 000000000..52fe23956 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatataxonomylevel/MetadataTaxonomyLevel.java @@ -0,0 +1,111 @@ +package com.box.sdkgen.schemas.metadatataxonomylevel; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +/** + * A level in the metadata taxonomy represents a hierarchical category within the taxonomy + * structure. + */ +@JsonFilter("nullablePropertyFilter") +public class MetadataTaxonomyLevel extends SerializableObject { + + /** The display name of the level as it is shown to the user. */ + protected String displayName; + + /** A description of the level. */ + protected String description; + + /** An index of the level within the taxonomy. Levels are indexed starting from 1. */ + protected Integer level; + + public MetadataTaxonomyLevel() { + super(); + } + + protected MetadataTaxonomyLevel(Builder builder) { + super(); + this.displayName = builder.displayName; + this.description = builder.description; + this.level = builder.level; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getDisplayName() { + return displayName; + } + + public String getDescription() { + return description; + } + + public Integer getLevel() { + return level; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataTaxonomyLevel casted = (MetadataTaxonomyLevel) o; + return Objects.equals(displayName, casted.displayName) + && Objects.equals(description, casted.description) + && Objects.equals(level, casted.level); + } + + @Override + public int hashCode() { + return Objects.hash(displayName, description, level); + } + + @Override + public String toString() { + return "MetadataTaxonomyLevel{" + + "displayName='" + + displayName + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "level='" + + level + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String displayName; + + protected String description; + + protected Integer level; + + public Builder displayName(String displayName) { + this.displayName = displayName; + return this; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder level(Integer level) { + this.level = level; + return this; + } + + public MetadataTaxonomyLevel build() { + return new MetadataTaxonomyLevel(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatataxonomylevels/MetadataTaxonomyLevels.java b/src/main/java/com/box/sdkgen/schemas/metadatataxonomylevels/MetadataTaxonomyLevels.java new file mode 100644 index 000000000..9cc982a8f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatataxonomylevels/MetadataTaxonomyLevels.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.schemas.metadatataxonomylevels; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.metadatataxonomylevel.MetadataTaxonomyLevel; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.List; +import java.util.Objects; + +/** + * Levels in the metadata taxonomy represent hierarchical categories within the taxonomy structure. + */ +@JsonFilter("nullablePropertyFilter") +public class MetadataTaxonomyLevels extends SerializableObject { + + /** An array of all taxonomy levels. */ + protected List entries; + + public MetadataTaxonomyLevels() { + super(); + } + + protected MetadataTaxonomyLevels(Builder builder) { + super(); + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataTaxonomyLevels casted = (MetadataTaxonomyLevels) o; + return Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(entries); + } + + @Override + public String toString() { + return "MetadataTaxonomyLevels{" + "entries='" + entries + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List entries; + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public MetadataTaxonomyLevels build() { + return new MetadataTaxonomyLevels(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatataxonomynode/MetadataTaxonomyNode.java b/src/main/java/com/box/sdkgen/schemas/metadatataxonomynode/MetadataTaxonomyNode.java new file mode 100644 index 000000000..dffaa3c91 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatataxonomynode/MetadataTaxonomyNode.java @@ -0,0 +1,169 @@ +package com.box.sdkgen.schemas.metadatataxonomynode; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.metadatataxonomyancestor.MetadataTaxonomyAncestor; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +/** A node object for metadata taxonomy that can be used in metadata templates. */ +@JsonFilter("nullablePropertyFilter") +public class MetadataTaxonomyNode extends SerializableObject { + + /** A unique identifier of the metadata taxonomy node. */ + protected final String id; + + /** The display name of the metadata taxonomy node. */ + protected final String displayName; + + /** An index of the level to which the node belongs. */ + protected final long level; + + /** The identifier of the parent node. */ + protected String parentId; + + /** An array of identifiers for all ancestor nodes. Not returned for root-level nodes. */ + protected List nodePath; + + /** An array of objects for all ancestor nodes. Not returned for root-level nodes. */ + protected List ancestors; + + public MetadataTaxonomyNode( + @JsonProperty("id") String id, + @JsonProperty("displayName") String displayName, + @JsonProperty("level") long level) { + super(); + this.id = id; + this.displayName = displayName; + this.level = level; + } + + protected MetadataTaxonomyNode(Builder builder) { + super(); + this.id = builder.id; + this.displayName = builder.displayName; + this.level = builder.level; + this.parentId = builder.parentId; + this.nodePath = builder.nodePath; + this.ancestors = builder.ancestors; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getDisplayName() { + return displayName; + } + + public long getLevel() { + return level; + } + + public String getParentId() { + return parentId; + } + + public List getNodePath() { + return nodePath; + } + + public List getAncestors() { + return ancestors; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataTaxonomyNode casted = (MetadataTaxonomyNode) o; + return Objects.equals(id, casted.id) + && Objects.equals(displayName, casted.displayName) + && Objects.equals(level, casted.level) + && Objects.equals(parentId, casted.parentId) + && Objects.equals(nodePath, casted.nodePath) + && Objects.equals(ancestors, casted.ancestors); + } + + @Override + public int hashCode() { + return Objects.hash(id, displayName, level, parentId, nodePath, ancestors); + } + + @Override + public String toString() { + return "MetadataTaxonomyNode{" + + "id='" + + id + + '\'' + + ", " + + "displayName='" + + displayName + + '\'' + + ", " + + "level='" + + level + + '\'' + + ", " + + "parentId='" + + parentId + + '\'' + + ", " + + "nodePath='" + + nodePath + + '\'' + + ", " + + "ancestors='" + + ancestors + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected final String displayName; + + protected final long level; + + protected String parentId; + + protected List nodePath; + + protected List ancestors; + + public Builder(String id, String displayName, long level) { + super(); + this.id = id; + this.displayName = displayName; + this.level = level; + } + + public Builder parentId(String parentId) { + this.parentId = parentId; + return this; + } + + public Builder nodePath(List nodePath) { + this.nodePath = nodePath; + return this; + } + + public Builder ancestors(List ancestors) { + this.ancestors = ancestors; + return this; + } + + public MetadataTaxonomyNode build() { + return new MetadataTaxonomyNode(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatataxonomynodes/MetadataTaxonomyNodes.java b/src/main/java/com/box/sdkgen/schemas/metadatataxonomynodes/MetadataTaxonomyNodes.java new file mode 100644 index 000000000..c1f94ec15 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatataxonomynodes/MetadataTaxonomyNodes.java @@ -0,0 +1,141 @@ +package com.box.sdkgen.schemas.metadatataxonomynodes; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.metadatataxonomynode.MetadataTaxonomyNode; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +/** A list of metadata taxonomy nodes. */ +@JsonFilter("nullablePropertyFilter") +public class MetadataTaxonomyNodes extends SerializableObject { + + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ + protected Long limit; + + /** The marker for the start of the next page of results. */ + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + /** The marker for the start of the previous page of results. */ + @JsonProperty("prev_marker") + @Nullable + protected String prevMarker; + + /** A list of metadata taxonomy nodes. */ + protected List entries; + + public MetadataTaxonomyNodes() { + super(); + } + + protected MetadataTaxonomyNodes(Builder builder) { + super(); + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + this.prevMarker = builder.prevMarker; + this.entries = builder.entries; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + public String getPrevMarker() { + return prevMarker; + } + + public List getEntries() { + return entries; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataTaxonomyNodes casted = (MetadataTaxonomyNodes) o; + return Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(prevMarker, casted.prevMarker) + && Objects.equals(entries, casted.entries); + } + + @Override + public int hashCode() { + return Objects.hash(limit, nextMarker, prevMarker, entries); + } + + @Override + public String toString() { + return "MetadataTaxonomyNodes{" + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "prevMarker='" + + prevMarker + + '\'' + + ", " + + "entries='" + + entries + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Long limit; + + protected String nextMarker; + + protected String prevMarker; + + protected List entries; + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public Builder prevMarker(String prevMarker) { + this.prevMarker = prevMarker; + this.markNullableFieldAsSet("prev_marker"); + return this; + } + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public MetadataTaxonomyNodes build() { + return new MetadataTaxonomyNodes(this); + } + } +} From 4aea6f32b465c2ed1891d78531727c6528fec82a Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 16 Dec 2025 15:27:26 +0100 Subject: [PATCH 068/148] test: fix DocGen test (box/box-codegen#907) (#1632) Co-authored-by: box-sdk-build --- .codegen.json | 2 +- docs/docgen.md | 2 +- .../com/box/sdkgen/docgen/DocgenITest.java | 19 ++++++++++++++----- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/.codegen.json b/.codegen.json index 8fb0907af..d7e3b86fa 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "b5860f1", "specHash": "1e0848d", "version": "10.3.0" } +{ "engineHash": "576c827", "specHash": "1e0848d", "version": "10.3.0" } diff --git a/docs/docgen.md b/docs/docgen.md index ad7ad936f..b92087491 100644 --- a/docs/docgen.md +++ b/docs/docgen.md @@ -106,7 +106,7 @@ See the endpoint docs at ``` -client.getDocgen().createDocgenBatchV2025R0(new DocGenBatchCreateRequestV2025R0(new FileReferenceV2025R0(uploadedFile.getId()), "api", new DocGenBatchCreateRequestV2025R0DestinationFolderField(folder.getId()), "pdf", Arrays.asList(new DocGenDocumentGenerationDataV2025R0("test", mapOf(entryOf("abc", "xyz")))))) +client.getDocgen().createDocgenBatchV2025R0(new DocGenBatchCreateRequestV2025R0(new FileReferenceV2025R0(uploadedFileDocx.getId()), "api", new DocGenBatchCreateRequestV2025R0DestinationFolderField(folder.getId()), "pdf", Arrays.asList(new DocGenDocumentGenerationDataV2025R0("test", mapOf(entryOf("abc", "xyz")))))) ``` ### Arguments diff --git a/src/test/java/com/box/sdkgen/docgen/DocgenITest.java b/src/test/java/com/box/sdkgen/docgen/DocgenITest.java index 264b139c1..e37da7e37 100644 --- a/src/test/java/com/box/sdkgen/docgen/DocgenITest.java +++ b/src/test/java/com/box/sdkgen/docgen/DocgenITest.java @@ -9,6 +9,7 @@ import com.box.sdkgen.client.BoxClient; import com.box.sdkgen.managers.docgen.GetDocgenJobsV2025R0QueryParams; +import com.box.sdkgen.managers.files.UpdateFileByIdRequestBody; import com.box.sdkgen.schemas.filefull.FileFull; import com.box.sdkgen.schemas.folderfull.FolderFull; import com.box.sdkgen.schemas.v2025r0.docgenbatchbasev2025r0.DocGenBatchBaseV2025R0; @@ -31,20 +32,28 @@ public class DocgenITest { @Test public void testDocgenBatchAndJobs() { - FileFull uploadedFile = uploadNewFile(); + FileFull uploadedFilePdf = uploadNewFile(); + FileFull uploadedFileDocx = + client + .getFiles() + .updateFileById( + uploadedFilePdf.getId(), + new UpdateFileByIdRequestBody.Builder() + .name(String.join("", uploadedFilePdf.getName(), ".docx")) + .build()); FolderFull folder = createNewFolder(); DocGenTemplateBaseV2025R0 createdDocgenTemplate = client .getDocgenTemplate() .createDocgenTemplateV2025R0( new DocGenTemplateCreateRequestV2025R0( - new FileReferenceV2025R0(uploadedFile.getId()))); + new FileReferenceV2025R0(uploadedFileDocx.getId()))); DocGenBatchBaseV2025R0 docgenBatch = client .getDocgen() .createDocgenBatchV2025R0( new DocGenBatchCreateRequestV2025R0( - new FileReferenceV2025R0(uploadedFile.getId()), + new FileReferenceV2025R0(uploadedFileDocx.getId()), "api", new DocGenBatchCreateRequestV2025R0DestinationFolderField(folder.getId()), "pdf", @@ -65,7 +74,7 @@ public void testDocgenBatchAndJobs() { .get(0) .getTemplateFile() .getId() - .equals(uploadedFile.getId()); + .equals(uploadedFileDocx.getId()); assert docgenBatchJobs.getEntries().get(0).getBatch().getId().equals(docgenBatch.getId()); DocGenJobsFullV2025R0 docgenJobs = client @@ -101,6 +110,6 @@ assert convertToString(docgenJobs.getEntries().get(0).getTemplateFileVersion().g assert !(docgenJob.getTemplateFileVersion().getId().equals("")); assert convertToString(docgenJob.getType()).equals("docgen_job"); client.getFolders().deleteFolderById(folder.getId()); - client.getFiles().deleteFileById(uploadedFile.getId()); + client.getFiles().deleteFileById(uploadedFileDocx.getId()); } } From cacc729dc246c914eb1a6d8281f4261c96711dc1 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 16 Dec 2025 16:47:11 +0100 Subject: [PATCH 069/148] feat: Treat `nullable` fields as Optional (box/box-codegen#906) (#1634) Co-authored-by: box-sdk-build --- .codegen.json | 2 +- .../com/box/sdkgen/internal/OneOfEight.java | 72 ++++++++++++ .../com/box/sdkgen/internal/OneOfEleven.java | 97 ++++++++++++++++ .../com/box/sdkgen/internal/OneOfNine.java | 85 ++++++++++++++ .../com/box/sdkgen/internal/OneOfSeven.java | 65 +++++++++++ .../com/box/sdkgen/internal/OneOfTen.java | 91 +++++++++++++++ .../com/box/sdkgen/internal/OneOfTwelve.java | 104 ++++++++++++++++++ ...ignRequestSignerInputCustomValidation.java | 34 +++--- .../SignRequestSignerInputValidation.java | 28 ++--- 9 files changed, 547 insertions(+), 31 deletions(-) create mode 100644 src/main/java/com/box/sdkgen/internal/OneOfEight.java create mode 100644 src/main/java/com/box/sdkgen/internal/OneOfEleven.java create mode 100644 src/main/java/com/box/sdkgen/internal/OneOfNine.java create mode 100644 src/main/java/com/box/sdkgen/internal/OneOfSeven.java create mode 100644 src/main/java/com/box/sdkgen/internal/OneOfTen.java create mode 100644 src/main/java/com/box/sdkgen/internal/OneOfTwelve.java diff --git a/.codegen.json b/.codegen.json index d7e3b86fa..7c54766b9 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "576c827", "specHash": "1e0848d", "version": "10.3.0" } +{ "engineHash": "de55410", "specHash": "1e0848d", "version": "10.3.0" } diff --git a/src/main/java/com/box/sdkgen/internal/OneOfEight.java b/src/main/java/com/box/sdkgen/internal/OneOfEight.java new file mode 100644 index 000000000..a20e86ec1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/OneOfEight.java @@ -0,0 +1,72 @@ +package com.box.sdkgen.internal; + +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; + +public class OneOfEight extends SerializableObject { + protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + protected T0 value0; + protected T1 value1; + protected T2 value2; + protected T3 value3; + protected T4 value4; + protected T5 value5; + protected T6 value6; + protected T7 value7; + + public OneOfEight( + T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7) { + this.value0 = value0; + this.value1 = value1; + this.value2 = value2; + this.value3 = value3; + this.value4 = value4; + this.value5 = value5; + this.value6 = value6; + this.value7 = value7; + } + + public static class OneOfEightSerializer + extends JsonSerializer> { + + public OneOfEightSerializer() { + super(); + } + + @Override + public void serialize( + OneOfEight itemEntryField, + JsonGenerator gen, + SerializerProvider provider) + throws IOException { + if (itemEntryField.value0 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + } + if (itemEntryField.value1 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + } + if (itemEntryField.value2 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + } + if (itemEntryField.value3 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value3); + } + if (itemEntryField.value4 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value4); + } + if (itemEntryField.value5 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value5); + } + if (itemEntryField.value6 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value6); + } + if (itemEntryField.value7 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value7); + } + } + } +} diff --git a/src/main/java/com/box/sdkgen/internal/OneOfEleven.java b/src/main/java/com/box/sdkgen/internal/OneOfEleven.java new file mode 100644 index 000000000..5b5485d24 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/OneOfEleven.java @@ -0,0 +1,97 @@ +package com.box.sdkgen.internal; + +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; + +public class OneOfEleven extends SerializableObject { + protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + protected T0 value0; + protected T1 value1; + protected T2 value2; + protected T3 value3; + protected T4 value4; + protected T5 value5; + protected T6 value6; + protected T7 value7; + protected T8 value8; + protected T9 value9; + protected T10 value10; + + public OneOfEleven( + T0 value0, + T1 value1, + T2 value2, + T3 value3, + T4 value4, + T5 value5, + T6 value6, + T7 value7, + T8 value8, + T9 value9, + T10 value10) { + this.value0 = value0; + this.value1 = value1; + this.value2 = value2; + this.value3 = value3; + this.value4 = value4; + this.value5 = value5; + this.value6 = value6; + this.value7 = value7; + this.value8 = value8; + this.value9 = value9; + this.value10 = value10; + } + + public static class OneOfElevenSerializer + extends JsonSerializer> { + + public OneOfElevenSerializer() { + super(); + } + + @Override + public void serialize( + OneOfEleven itemEntryField, + JsonGenerator gen, + SerializerProvider provider) + throws IOException { + if (itemEntryField.value0 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + } + if (itemEntryField.value1 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + } + if (itemEntryField.value2 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + } + if (itemEntryField.value3 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value3); + } + if (itemEntryField.value4 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value4); + } + if (itemEntryField.value5 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value5); + } + if (itemEntryField.value6 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value6); + } + if (itemEntryField.value7 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value7); + } + if (itemEntryField.value8 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value8); + } + if (itemEntryField.value9 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value9); + } + if (itemEntryField.value10 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value10); + } + } + } +} diff --git a/src/main/java/com/box/sdkgen/internal/OneOfNine.java b/src/main/java/com/box/sdkgen/internal/OneOfNine.java new file mode 100644 index 000000000..6da57f0bc --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/OneOfNine.java @@ -0,0 +1,85 @@ +package com.box.sdkgen.internal; + +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; + +public class OneOfNine extends SerializableObject { + protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + protected T0 value0; + protected T1 value1; + protected T2 value2; + protected T3 value3; + protected T4 value4; + protected T5 value5; + protected T6 value6; + protected T7 value7; + protected T8 value8; + + public OneOfNine( + T0 value0, + T1 value1, + T2 value2, + T3 value3, + T4 value4, + T5 value5, + T6 value6, + T7 value7, + T8 value8) { + this.value0 = value0; + this.value1 = value1; + this.value2 = value2; + this.value3 = value3; + this.value4 = value4; + this.value5 = value5; + this.value6 = value6; + this.value7 = value7; + this.value8 = value8; + } + + public static class OneOfNineSerializer + extends JsonSerializer> { + + public OneOfNineSerializer() { + super(); + } + + @Override + public void serialize( + OneOfNine itemEntryField, + JsonGenerator gen, + SerializerProvider provider) + throws IOException { + if (itemEntryField.value0 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + } + if (itemEntryField.value1 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + } + if (itemEntryField.value2 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + } + if (itemEntryField.value3 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value3); + } + if (itemEntryField.value4 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value4); + } + if (itemEntryField.value5 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value5); + } + if (itemEntryField.value6 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value6); + } + if (itemEntryField.value7 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value7); + } + if (itemEntryField.value8 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value8); + } + } + } +} diff --git a/src/main/java/com/box/sdkgen/internal/OneOfSeven.java b/src/main/java/com/box/sdkgen/internal/OneOfSeven.java new file mode 100644 index 000000000..e07226eba --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/OneOfSeven.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.internal; + +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; + +public class OneOfSeven extends SerializableObject { + protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + protected T0 value0; + protected T1 value1; + protected T2 value2; + protected T3 value3; + protected T4 value4; + protected T5 value5; + protected T6 value6; + + public OneOfSeven(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6) { + this.value0 = value0; + this.value1 = value1; + this.value2 = value2; + this.value3 = value3; + this.value4 = value4; + this.value5 = value5; + this.value6 = value6; + } + + public static class OneOfSevenSerializer extends JsonSerializer> { + + public OneOfSevenSerializer() { + super(); + } + + @Override + public void serialize( + OneOfSeven itemEntryField, + JsonGenerator gen, + SerializerProvider provider) + throws IOException { + if (itemEntryField.value0 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + } + if (itemEntryField.value1 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + } + if (itemEntryField.value2 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + } + if (itemEntryField.value3 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value3); + } + if (itemEntryField.value4 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value4); + } + if (itemEntryField.value5 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value5); + } + if (itemEntryField.value6 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value6); + } + } + } +} diff --git a/src/main/java/com/box/sdkgen/internal/OneOfTen.java b/src/main/java/com/box/sdkgen/internal/OneOfTen.java new file mode 100644 index 000000000..6af089e2a --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/OneOfTen.java @@ -0,0 +1,91 @@ +package com.box.sdkgen.internal; + +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; + +public class OneOfTen extends SerializableObject { + protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + protected T0 value0; + protected T1 value1; + protected T2 value2; + protected T3 value3; + protected T4 value4; + protected T5 value5; + protected T6 value6; + protected T7 value7; + protected T8 value8; + protected T9 value9; + + public OneOfTen( + T0 value0, + T1 value1, + T2 value2, + T3 value3, + T4 value4, + T5 value5, + T6 value6, + T7 value7, + T8 value8, + T9 value9) { + this.value0 = value0; + this.value1 = value1; + this.value2 = value2; + this.value3 = value3; + this.value4 = value4; + this.value5 = value5; + this.value6 = value6; + this.value7 = value7; + this.value8 = value8; + this.value9 = value9; + } + + public static class OneOfTenSerializer + extends JsonSerializer> { + + public OneOfTenSerializer() { + super(); + } + + @Override + public void serialize( + OneOfTen itemEntryField, + JsonGenerator gen, + SerializerProvider provider) + throws IOException { + if (itemEntryField.value0 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + } + if (itemEntryField.value1 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + } + if (itemEntryField.value2 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + } + if (itemEntryField.value3 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value3); + } + if (itemEntryField.value4 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value4); + } + if (itemEntryField.value5 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value5); + } + if (itemEntryField.value6 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value6); + } + if (itemEntryField.value7 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value7); + } + if (itemEntryField.value8 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value8); + } + if (itemEntryField.value9 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value9); + } + } + } +} diff --git a/src/main/java/com/box/sdkgen/internal/OneOfTwelve.java b/src/main/java/com/box/sdkgen/internal/OneOfTwelve.java new file mode 100644 index 000000000..a411e9cc6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/OneOfTwelve.java @@ -0,0 +1,104 @@ +package com.box.sdkgen.internal; + +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; + +public class OneOfTwelve + extends SerializableObject { + protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + protected T0 value0; + protected T1 value1; + protected T2 value2; + protected T3 value3; + protected T4 value4; + protected T5 value5; + protected T6 value6; + protected T7 value7; + protected T8 value8; + protected T9 value9; + protected T10 value10; + protected T11 value11; + + public OneOfTwelve( + T0 value0, + T1 value1, + T2 value2, + T3 value3, + T4 value4, + T5 value5, + T6 value6, + T7 value7, + T8 value8, + T9 value9, + T10 value10, + T11 value11) { + this.value0 = value0; + this.value1 = value1; + this.value2 = value2; + this.value3 = value3; + this.value4 = value4; + this.value5 = value5; + this.value6 = value6; + this.value7 = value7; + this.value8 = value8; + this.value9 = value9; + this.value10 = value10; + this.value11 = value11; + } + + public static class OneOfTwelveSerializer + extends JsonSerializer> { + + public OneOfTwelveSerializer() { + super(); + } + + @Override + public void serialize( + OneOfTwelve itemEntryField, + JsonGenerator gen, + SerializerProvider provider) + throws IOException { + if (itemEntryField.value0 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + } + if (itemEntryField.value1 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + } + if (itemEntryField.value2 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + } + if (itemEntryField.value3 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value3); + } + if (itemEntryField.value4 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value4); + } + if (itemEntryField.value5 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value5); + } + if (itemEntryField.value6 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value6); + } + if (itemEntryField.value7 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value7); + } + if (itemEntryField.value8 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value8); + } + if (itemEntryField.value9 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value9); + } + if (itemEntryField.value10 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value10); + } + if (itemEntryField.value11 != null) { + JsonManager.WRITER.writeValue(gen, itemEntryField.value11); + } + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidation.java index 031e6af69..c6cb1e5a9 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidation.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidation.java @@ -1,7 +1,5 @@ package com.box.sdkgen.schemas.signrequestsignerinputcustomvalidation; -import static com.box.sdkgen.internal.utils.UtilsManager.setOf; - import com.box.sdkgen.internal.Nullable; import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; @@ -37,23 +35,18 @@ public class SignRequestSignerInputCustomValidation extends SerializableObject { /** Regular expression used for validation. */ @JsonProperty("custom_regex") @Nullable - protected final String customRegex; + protected String customRegex; /** Error message shown if input fails custom regular expression validation. */ @JsonProperty("custom_error_message") @Nullable - protected final String customErrorMessage; + protected String customErrorMessage; - public SignRequestSignerInputCustomValidation( - @JsonProperty("custom_regex") String customRegex, - @JsonProperty("custom_error_message") String customErrorMessage) { + public SignRequestSignerInputCustomValidation() { super(); - this.customRegex = customRegex; - this.customErrorMessage = customErrorMessage; this.validationType = new EnumWrapper( SignRequestSignerInputCustomValidationValidationTypeField.CUSTOM); - markNullableFieldsAsSet(setOf("custom_regex", "custom_error_message")); } protected SignRequestSignerInputCustomValidation(Builder builder) { @@ -117,18 +110,15 @@ public static class Builder extends NullableFieldTracker { protected EnumWrapper validationType; - protected final String customRegex; + protected String customRegex; - protected final String customErrorMessage; + protected String customErrorMessage; - public Builder(String customRegex, String customErrorMessage) { + public Builder() { super(); - this.customRegex = customRegex; - this.customErrorMessage = customErrorMessage; this.validationType = new EnumWrapper( SignRequestSignerInputCustomValidationValidationTypeField.CUSTOM); - markNullableFieldsAsSet(setOf("custom_regex", "custom_error_message")); } public Builder validationType( @@ -145,6 +135,18 @@ public Builder validationType( return this; } + public Builder customRegex(String customRegex) { + this.customRegex = customRegex; + this.markNullableFieldAsSet("custom_regex"); + return this; + } + + public Builder customErrorMessage(String customErrorMessage) { + this.customErrorMessage = customErrorMessage; + this.markNullableFieldAsSet("custom_error_message"); + return this; + } + public SignRequestSignerInputCustomValidation build() { return new SignRequestSignerInputCustomValidation(this); } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputvalidation/SignRequestSignerInputValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputvalidation/SignRequestSignerInputValidation.java index 5468866ab..03eeca027 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputvalidation/SignRequestSignerInputValidation.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputvalidation/SignRequestSignerInputValidation.java @@ -1,6 +1,6 @@ package com.box.sdkgen.schemas.signrequestsignerinputvalidation; -import com.box.sdkgen.internal.OneOfundefined; +import com.box.sdkgen.internal.OneOfEleven; import com.box.sdkgen.schemas.signrequestsignerinputcustomvalidation.SignRequestSignerInputCustomValidation; import com.box.sdkgen.schemas.signrequestsignerinputdateasiavalidation.SignRequestSignerInputDateAsiaValidation; import com.box.sdkgen.schemas.signrequestsignerinputdateeuvalidation.SignRequestSignerInputDateEuValidation; @@ -25,9 +25,9 @@ @JsonDeserialize( using = SignRequestSignerInputValidation.SignRequestSignerInputValidationDeserializer.class) -@JsonSerialize(using = OneOfundefined.OneOfundefinedSerializer.class) +@JsonSerialize(using = OneOfEleven.OneOfElevenSerializer.class) public class SignRequestSignerInputValidation - extends OneOfundefined< + extends OneOfEleven< SignRequestSignerInputEmailValidation, SignRequestSignerInputCustomValidation, SignRequestSignerInputZipValidation, @@ -351,67 +351,67 @@ public SignRequestSignerInputValidation deserialize(JsonParser jp, Deserializati JsonNode node = JsonManager.jsonToSerializedData(jp); try { return new SignRequestSignerInputValidation( - OneOfundefined.OBJECT_MAPPER.convertValue( + OneOfEleven.OBJECT_MAPPER.convertValue( node, SignRequestSignerInputEmailValidation.class)); } catch (Exception ignored) { } try { return new SignRequestSignerInputValidation( - OneOfundefined.OBJECT_MAPPER.convertValue( + OneOfEleven.OBJECT_MAPPER.convertValue( node, SignRequestSignerInputCustomValidation.class)); } catch (Exception ignored) { } try { return new SignRequestSignerInputValidation( - OneOfundefined.OBJECT_MAPPER.convertValue( + OneOfEleven.OBJECT_MAPPER.convertValue( node, SignRequestSignerInputZipValidation.class)); } catch (Exception ignored) { } try { return new SignRequestSignerInputValidation( - OneOfundefined.OBJECT_MAPPER.convertValue( + OneOfEleven.OBJECT_MAPPER.convertValue( node, SignRequestSignerInputZip4Validation.class)); } catch (Exception ignored) { } try { return new SignRequestSignerInputValidation( - OneOfundefined.OBJECT_MAPPER.convertValue( + OneOfEleven.OBJECT_MAPPER.convertValue( node, SignRequestSignerInputSsnValidation.class)); } catch (Exception ignored) { } try { return new SignRequestSignerInputValidation( - OneOfundefined.OBJECT_MAPPER.convertValue( + OneOfEleven.OBJECT_MAPPER.convertValue( node, SignRequestSignerInputNumberWithPeriodValidation.class)); } catch (Exception ignored) { } try { return new SignRequestSignerInputValidation( - OneOfundefined.OBJECT_MAPPER.convertValue( + OneOfEleven.OBJECT_MAPPER.convertValue( node, SignRequestSignerInputNumberWithCommaValidation.class)); } catch (Exception ignored) { } try { return new SignRequestSignerInputValidation( - OneOfundefined.OBJECT_MAPPER.convertValue( + OneOfEleven.OBJECT_MAPPER.convertValue( node, SignRequestSignerInputDateIsoValidation.class)); } catch (Exception ignored) { } try { return new SignRequestSignerInputValidation( - OneOfundefined.OBJECT_MAPPER.convertValue( + OneOfEleven.OBJECT_MAPPER.convertValue( node, SignRequestSignerInputDateUsValidation.class)); } catch (Exception ignored) { } try { return new SignRequestSignerInputValidation( - OneOfundefined.OBJECT_MAPPER.convertValue( + OneOfEleven.OBJECT_MAPPER.convertValue( node, SignRequestSignerInputDateEuValidation.class)); } catch (Exception ignored) { } try { return new SignRequestSignerInputValidation( - OneOfundefined.OBJECT_MAPPER.convertValue( + OneOfEleven.OBJECT_MAPPER.convertValue( node, SignRequestSignerInputDateAsiaValidation.class)); } catch (Exception ignored) { } From d719b2f2cd661257177051e44c1d5206b5a47b0c Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 17 Dec 2025 17:47:54 +0100 Subject: [PATCH 070/148] chore: Make `dependabot` builds run without secrets (box/box-codegen#904) (#1636) --- .codegen.json | 2 +- .github/workflows/build.yml | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index 7c54766b9..d1cc546e7 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "de55410", "specHash": "1e0848d", "version": "10.3.0" } +{ "engineHash": "467757c", "specHash": "1e0848d", "version": "10.3.0" } diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3028690f6..b49572a1b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -26,7 +26,7 @@ jobs: java-version: ${{ matrix.java }} cache: 'gradle' - name: All Tests - if: startsWith(github.head_ref, 'codegen-release') + if: ${{ startsWith(github.head_ref, 'codegen-release') && github.actor != 'dependabot[bot]' }} env: JWT_CONFIG_BASE_64: ${{ secrets.JWT_CONFIG_BASE_64 }} ADMIN_USER_ID: ${{ secrets.ADMIN_USER_ID }} @@ -46,7 +46,7 @@ jobs: SLACK_PARTNER_ITEM_ID: ${{ secrets.SLACK_PARTNER_ITEM_ID }} run: ./gradlew check --stacktrace - name: Smoke Tests - if: "!startsWith(github.head_ref, 'codegen-release')" + if: ${{ !startsWith(github.head_ref, 'codegen-release') && github.actor != 'dependabot[bot]' }} env: JWT_CONFIG_BASE_64: ${{ secrets.JWT_CONFIG_BASE_64 }} CLIENT_ID: ${{ secrets.CLIENT_ID }} @@ -54,3 +54,6 @@ jobs: USER_ID: ${{ secrets.USER_ID }} ENTERPRISE_ID: ${{ secrets.ENTERPRISE_ID }} run: ./gradlew test --tests com.box.sdkgen.auth.AuthITest --tests com.box.sdkgen.files.FilesITest --tests com.box.sdkgen.downloads.DownloadsITest --tests com.box.sdkgen.uploads.UploadsITest --stacktrace + - name: Build (Dependabot only, no tests) + if: github.actor == 'dependabot[bot]' + run: ./gradlew assemble --stacktrace From b4cd8a965c00360217f7bf25c73e657c966881b3 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 17 Dec 2025 17:48:42 +0100 Subject: [PATCH 071/148] test: Metadata Taxonomies integration tests (box/box-codegen#897) (#1640) Co-authored-by: Minh Nguyen Cong --- docs/metadatataxonomies.md | 65 +++++-- .../MetadataTaxonomiesITest.java | 170 ++++++++++++++++++ 2 files changed, 222 insertions(+), 13 deletions(-) create mode 100644 src/test/java/com/box/sdkgen/metadatataxonomies/MetadataTaxonomiesITest.java diff --git a/docs/metadatataxonomies.md b/docs/metadatataxonomies.md index cf19c1178..0fd8d56eb 100644 --- a/docs/metadatataxonomies.md +++ b/docs/metadatataxonomies.md @@ -27,7 +27,10 @@ This operation is performed by calling function `createMetadataTaxonomy`. See the endpoint docs at [API Reference](https://developer.box.com/reference/post-metadata-taxonomies/). -*Currently we don't have an example for calling `createMetadataTaxonomy` in integration tests* + +``` +client.getMetadataTaxonomies().createMetadataTaxonomy(new CreateMetadataTaxonomyRequestBody.Builder(displayName, namespace).key(taxonomyKey).build()) +``` ### Arguments @@ -53,7 +56,10 @@ This operation is performed by calling function `getMetadataTaxonomies`. See the endpoint docs at [API Reference](https://developer.box.com/reference/get-metadata-taxonomies-id/). -*Currently we don't have an example for calling `getMetadataTaxonomies` in integration tests* + +``` +client.getMetadataTaxonomies().getMetadataTaxonomies(namespace) +``` ### Arguments @@ -82,7 +88,10 @@ This operation is performed by calling function `getMetadataTaxonomyByKey`. See the endpoint docs at [API Reference](https://developer.box.com/reference/get-metadata-taxonomies-id-id/). -*Currently we don't have an example for calling `getMetadataTaxonomyByKey` in integration tests* + +``` +client.getMetadataTaxonomies().getMetadataTaxonomyByKey(namespace, taxonomyKey) +``` ### Arguments @@ -110,7 +119,10 @@ This operation is performed by calling function `updateMetadataTaxonomy`. See the endpoint docs at [API Reference](https://developer.box.com/reference/patch-metadata-taxonomies-id-id/). -*Currently we don't have an example for calling `updateMetadataTaxonomy` in integration tests* + +``` +client.getMetadataTaxonomies().updateMetadataTaxonomy(namespace, taxonomyKey, new UpdateMetadataTaxonomyRequestBody(updatedDisplayName)) +``` ### Arguments @@ -141,7 +153,10 @@ This operation is performed by calling function `deleteMetadataTaxonomy`. See the endpoint docs at [API Reference](https://developer.box.com/reference/delete-metadata-taxonomies-id-id/). -*Currently we don't have an example for calling `deleteMetadataTaxonomy` in integration tests* + +``` +client.getMetadataTaxonomies().deleteMetadataTaxonomy(namespace, taxonomyKey) +``` ### Arguments @@ -169,7 +184,10 @@ This operation is performed by calling function `createMetadataTaxonomyLevel`. See the endpoint docs at [API Reference](https://developer.box.com/reference/post-metadata-taxonomies-id-id-levels/). -*Currently we don't have an example for calling `createMetadataTaxonomyLevel` in integration tests* + +``` +client.getMetadataTaxonomies().createMetadataTaxonomyLevel(namespace, taxonomyKey, Arrays.asList(new MetadataTaxonomyLevel.Builder().displayName("Continent").description("Continent Level").build(), new MetadataTaxonomyLevel.Builder().displayName("Country").description("Country Level").build())) +``` ### Arguments @@ -232,7 +250,10 @@ This operation is performed by calling function `addMetadataTaxonomyLevel`. See the endpoint docs at [API Reference](https://developer.box.com/reference/post-metadata-taxonomies-id-id-levels:append/). -*Currently we don't have an example for calling `addMetadataTaxonomyLevel` in integration tests* + +``` +client.getMetadataTaxonomies().addMetadataTaxonomyLevel(namespace, taxonomyKey, new AddMetadataTaxonomyLevelRequestBody.Builder("Region").description("Region Description").build()) +``` ### Arguments @@ -262,7 +283,10 @@ This operation is performed by calling function `deleteMetadataTaxonomyLevel`. See the endpoint docs at [API Reference](https://developer.box.com/reference/post-metadata-taxonomies-id-id-levels:trim/). -*Currently we don't have an example for calling `deleteMetadataTaxonomyLevel` in integration tests* + +``` +client.getMetadataTaxonomies().deleteMetadataTaxonomyLevel(namespace, taxonomyKey) +``` ### Arguments @@ -292,7 +316,10 @@ This operation is performed by calling function `getMetadataTaxonomyNodes`. See the endpoint docs at [API Reference](https://developer.box.com/reference/get-metadata-taxonomies-id-id-nodes/). -*Currently we don't have an example for calling `getMetadataTaxonomyNodes` in integration tests* + +``` +client.getMetadataTaxonomies().getMetadataTaxonomyNodes(namespace, taxonomyKey) +``` ### Arguments @@ -322,7 +349,10 @@ This operation is performed by calling function `createMetadataTaxonomyNode`. See the endpoint docs at [API Reference](https://developer.box.com/reference/post-metadata-taxonomies-id-id-nodes/). -*Currently we don't have an example for calling `createMetadataTaxonomyNode` in integration tests* + +``` +client.getMetadataTaxonomies().createMetadataTaxonomyNode(namespace, taxonomyKey, new CreateMetadataTaxonomyNodeRequestBody("Europe", 1)) +``` ### Arguments @@ -352,7 +382,10 @@ This operation is performed by calling function `getMetadataTaxonomyNodeById`. See the endpoint docs at [API Reference](https://developer.box.com/reference/get-metadata-taxonomies-id-id-nodes-id/). -*Currently we don't have an example for calling `getMetadataTaxonomyNodeById` in integration tests* + +``` +client.getMetadataTaxonomies().getMetadataTaxonomyNodeById(namespace, taxonomyKey, countryNode.getId()) +``` ### Arguments @@ -382,7 +415,10 @@ This operation is performed by calling function `updateMetadataTaxonomyNode`. See the endpoint docs at [API Reference](https://developer.box.com/reference/patch-metadata-taxonomies-id-id-nodes-id/). -*Currently we don't have an example for calling `updateMetadataTaxonomyNode` in integration tests* + +``` +client.getMetadataTaxonomies().updateMetadataTaxonomyNode(namespace, taxonomyKey, countryNode.getId(), new UpdateMetadataTaxonomyNodeRequestBody.Builder().displayName("Poland UPDATED").build()) +``` ### Arguments @@ -416,7 +452,10 @@ This operation is performed by calling function `deleteMetadataTaxonomyNode`. See the endpoint docs at [API Reference](https://developer.box.com/reference/delete-metadata-taxonomies-id-id-nodes-id/). -*Currently we don't have an example for calling `deleteMetadataTaxonomyNode` in integration tests* + +``` +client.getMetadataTaxonomies().deleteMetadataTaxonomyNode(namespace, taxonomyKey, countryNode.getId()) +``` ### Arguments diff --git a/src/test/java/com/box/sdkgen/metadatataxonomies/MetadataTaxonomiesITest.java b/src/test/java/com/box/sdkgen/metadatataxonomies/MetadataTaxonomiesITest.java new file mode 100644 index 000000000..c44e157a4 --- /dev/null +++ b/src/test/java/com/box/sdkgen/metadatataxonomies/MetadataTaxonomiesITest.java @@ -0,0 +1,170 @@ +package com.box.sdkgen.metadatataxonomies; + +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.internal.utils.UtilsManager.delayInSeconds; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.metadatataxonomies.AddMetadataTaxonomyLevelRequestBody; +import com.box.sdkgen.managers.metadatataxonomies.CreateMetadataTaxonomyNodeRequestBody; +import com.box.sdkgen.managers.metadatataxonomies.CreateMetadataTaxonomyRequestBody; +import com.box.sdkgen.managers.metadatataxonomies.UpdateMetadataTaxonomyNodeRequestBody; +import com.box.sdkgen.managers.metadatataxonomies.UpdateMetadataTaxonomyRequestBody; +import com.box.sdkgen.schemas.metadatataxonomies.MetadataTaxonomies; +import com.box.sdkgen.schemas.metadatataxonomy.MetadataTaxonomy; +import com.box.sdkgen.schemas.metadatataxonomylevel.MetadataTaxonomyLevel; +import com.box.sdkgen.schemas.metadatataxonomylevels.MetadataTaxonomyLevels; +import com.box.sdkgen.schemas.metadatataxonomynode.MetadataTaxonomyNode; +import com.box.sdkgen.schemas.metadatataxonomynodes.MetadataTaxonomyNodes; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class MetadataTaxonomiesITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testMetadataTaxonomiesCrud() { + String namespace = String.join("", "enterprise_", getEnvVar("ENTERPRISE_ID")); + String uuid = getUuid(); + String taxonomyKey = String.join("", "geography", uuid); + String displayName = String.join("", "Geography Taxonomy", uuid); + MetadataTaxonomy createdTaxonomy = + client + .getMetadataTaxonomies() + .createMetadataTaxonomy( + new CreateMetadataTaxonomyRequestBody.Builder(displayName, namespace) + .key(taxonomyKey) + .build()); + assert createdTaxonomy.getDisplayName().equals(displayName); + assert createdTaxonomy.getNamespace().equals(namespace); + MetadataTaxonomies taxonomies = client.getMetadataTaxonomies().getMetadataTaxonomies(namespace); + assert taxonomies.getEntries().size() > 0; + assert taxonomies.getEntries().get(0).getNamespace().equals(namespace); + String updatedDisplayName = String.join("", "Geography Taxonomy UPDATED", uuid); + MetadataTaxonomy updatedTaxonomy = + client + .getMetadataTaxonomies() + .updateMetadataTaxonomy( + namespace, taxonomyKey, new UpdateMetadataTaxonomyRequestBody(updatedDisplayName)); + assert updatedTaxonomy.getDisplayName().equals(updatedDisplayName); + assert updatedTaxonomy.getNamespace().equals(namespace); + assert updatedTaxonomy.getId().equals(createdTaxonomy.getId()); + MetadataTaxonomy getTaxonomy = + client.getMetadataTaxonomies().getMetadataTaxonomyByKey(namespace, taxonomyKey); + assert getTaxonomy.getDisplayName().equals(updatedDisplayName); + assert getTaxonomy.getNamespace().equals(namespace); + assert getTaxonomy.getId().equals(createdTaxonomy.getId()); + client.getMetadataTaxonomies().deleteMetadataTaxonomy(namespace, taxonomyKey); + assertThrows( + RuntimeException.class, + () -> client.getMetadataTaxonomies().getMetadataTaxonomyByKey(namespace, taxonomyKey)); + } + + @Test + public void testMetadataTaxonomiesNodes() { + String namespace = String.join("", "enterprise_", getEnvVar("ENTERPRISE_ID")); + String uuid = getUuid(); + String taxonomyKey = String.join("", "geography", uuid); + String displayName = String.join("", "Geography Taxonomy", uuid); + MetadataTaxonomy createdTaxonomy = + client + .getMetadataTaxonomies() + .createMetadataTaxonomy( + new CreateMetadataTaxonomyRequestBody.Builder(displayName, namespace) + .key(taxonomyKey) + .build()); + assert createdTaxonomy.getDisplayName().equals(displayName); + assert createdTaxonomy.getNamespace().equals(namespace); + MetadataTaxonomyLevels taxonomyLevels = + client + .getMetadataTaxonomies() + .createMetadataTaxonomyLevel( + namespace, + taxonomyKey, + Arrays.asList( + new MetadataTaxonomyLevel.Builder() + .displayName("Continent") + .description("Continent Level") + .build(), + new MetadataTaxonomyLevel.Builder() + .displayName("Country") + .description("Country Level") + .build())); + assert taxonomyLevels.getEntries().size() == 2; + assert taxonomyLevels.getEntries().get(0).getDisplayName().equals("Continent"); + assert taxonomyLevels.getEntries().get(1).getDisplayName().equals("Country"); + MetadataTaxonomyLevels taxonomyLevelsAfterAddition = + client + .getMetadataTaxonomies() + .addMetadataTaxonomyLevel( + namespace, + taxonomyKey, + new AddMetadataTaxonomyLevelRequestBody.Builder("Region") + .description("Region Description") + .build()); + assert taxonomyLevelsAfterAddition.getEntries().size() == 3; + assert taxonomyLevelsAfterAddition.getEntries().get(2).getDisplayName().equals("Region"); + MetadataTaxonomyLevels taxonomyLevelsAfterDeletion = + client.getMetadataTaxonomies().deleteMetadataTaxonomyLevel(namespace, taxonomyKey); + assert taxonomyLevelsAfterDeletion.getEntries().size() == 2; + assert taxonomyLevelsAfterDeletion.getEntries().get(0).getDisplayName().equals("Continent"); + assert taxonomyLevelsAfterDeletion.getEntries().get(1).getDisplayName().equals("Country"); + MetadataTaxonomyNode continentNode = + client + .getMetadataTaxonomies() + .createMetadataTaxonomyNode( + namespace, taxonomyKey, new CreateMetadataTaxonomyNodeRequestBody("Europe", 1)); + assert continentNode.getDisplayName().equals("Europe"); + assert continentNode.getLevel() == 1; + MetadataTaxonomyNode countryNode = + client + .getMetadataTaxonomies() + .createMetadataTaxonomyNode( + namespace, + taxonomyKey, + new CreateMetadataTaxonomyNodeRequestBody.Builder("Poland", 2) + .parentId(continentNode.getId()) + .build()); + assert countryNode.getDisplayName().equals("Poland"); + assert countryNode.getLevel() == 2; + assert countryNode.getParentId().equals(continentNode.getId()); + delayInSeconds(5); + MetadataTaxonomyNodes allNodes = + client.getMetadataTaxonomies().getMetadataTaxonomyNodes(namespace, taxonomyKey); + assert allNodes.getEntries().size() == 2; + MetadataTaxonomyNode updatedCountryNode = + client + .getMetadataTaxonomies() + .updateMetadataTaxonomyNode( + namespace, + taxonomyKey, + countryNode.getId(), + new UpdateMetadataTaxonomyNodeRequestBody.Builder() + .displayName("Poland UPDATED") + .build()); + assert updatedCountryNode.getDisplayName().equals("Poland UPDATED"); + assert updatedCountryNode.getLevel() == 2; + assert updatedCountryNode.getParentId().equals(countryNode.getParentId()); + assert updatedCountryNode.getId().equals(countryNode.getId()); + MetadataTaxonomyNode getCountryNode = + client + .getMetadataTaxonomies() + .getMetadataTaxonomyNodeById(namespace, taxonomyKey, countryNode.getId()); + assert getCountryNode.getDisplayName().equals("Poland UPDATED"); + assert getCountryNode.getId().equals(countryNode.getId()); + client + .getMetadataTaxonomies() + .deleteMetadataTaxonomyNode(namespace, taxonomyKey, countryNode.getId()); + client + .getMetadataTaxonomies() + .deleteMetadataTaxonomyNode(namespace, taxonomyKey, continentNode.getId()); + delayInSeconds(5); + MetadataTaxonomyNodes allNodesAfterDeletion = + client.getMetadataTaxonomies().getMetadataTaxonomyNodes(namespace, taxonomyKey); + assert allNodesAfterDeletion.getEntries().size() == 0; + client.getMetadataTaxonomies().deleteMetadataTaxonomy(namespace, taxonomyKey); + } +} From fab78b97e4b831627b01129de2d7652243828f17 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 17 Dec 2025 17:49:35 +0100 Subject: [PATCH 072/148] docs: replace internal links with absolute links (box/box-openapi#570) (#1642) Co-authored-by: box-sdk-build --- .codegen.json | 2 +- docs/ai.md | 6 +- docs/archives.md | 8 +-- docs/chunkeduploads.md | 36 +++++----- docs/downloads.md | 4 +- docs/fileversionretentions.md | 8 +-- docs/folders.md | 6 +- docs/trashedfiles.md | 4 +- docs/trashedfolders.md | 4 +- docs/zipdownloads.md | 4 +- .../com/box/sdkgen/managers/ai/AiManager.java | 16 +++-- .../managers/archives/ArchivesManager.java | 36 ++++++---- .../chunkeduploads/ChunkedUploadsManager.java | 72 +++++++++---------- .../AddClassificationToFileRequestBody.java | 2 +- ...UpdateClassificationOnFileRequestBody.java | 2 +- .../files/UpdateFileByIdRequestBody.java | 2 +- .../FileVersionRetentionsManager.java | 30 ++++---- .../AddClassificationToFolderRequestBody.java | 2 +- ...dateClassificationOnFolderRequestBody.java | 2 +- .../managers/folders/FoldersManager.java | 20 +++--- .../folders/UpdateFolderByIdRequestBody.java | 2 +- ...reateMetadataCascadePolicyRequestBody.java | 5 +- .../search/SearchForContentQueryParams.java | 3 +- .../trashedfiles/TrashedFilesManager.java | 20 +++--- .../trashedfolders/TrashedFoldersManager.java | 20 +++--- .../zipdownloads/ZipDownloadsManager.java | 16 ++--- .../AiAgentBasicTextToolBase.java | 2 +- .../aiagentreference/AiAgentReference.java | 3 +- .../AiAgentSpreadsheetTool.java | 2 +- .../FileVersionRetention.java | 6 +- .../FileVersionRetentions.java | 6 +- .../MetadataCascadePolicy.java | 5 +- .../metadatafilter/MetadataFilter.java | 5 +- .../SignRequestCreateRequest.java | 8 +-- .../schemas/signtemplate/SignTemplate.java | 9 +-- 35 files changed, 211 insertions(+), 167 deletions(-) diff --git a/.codegen.json b/.codegen.json index d1cc546e7..b6b94138d 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "467757c", "specHash": "1e0848d", "version": "10.3.0" } +{ "engineHash": "c370934", "specHash": "9d069ca", "version": "10.3.0" } diff --git a/docs/ai.md b/docs/ai.md index e2a81b27c..cb2746275 100644 --- a/docs/ai.md +++ b/docs/ai.md @@ -136,11 +136,11 @@ A response including the answer from the LLM. Sends an AI request to supported Large Language Models (LLMs) and returns extracted metadata as a set of key-value pairs. To define the extraction structure, provide either a metadata template or a list of fields. To learn more about creating templates, see [Creating metadata templates in the Admin Console](https://support.box.com/hc/en-us/articles/360044194033-Customizing-Metadata-Templates) -or use the [metadata template API](g://metadata/templates/create). +or use the [metadata template API](https://developer.box.com/guides/metadata/templates/create). -This endpoint also supports [Enhanced Extract Agent](g://box-ai/ai-tutorials/extract-metadata-structured/#enhanced-extract-agent). +This endpoint also supports [Enhanced Extract Agent](https://developer.box.com/guides/box-ai/ai-tutorials/extract-metadata-structured#enhanced-extract-agent). -For information about supported file formats and languages, see the [Extract metadata from file (structured)](g://box-ai/ai-tutorials/extract-metadata-structured) API guide. +For information about supported file formats and languages, see the [Extract metadata from file (structured)](https://developer.box.com/guides/box-ai/ai-tutorials/extract-metadata-structured) API guide. This operation is performed by calling function `createAiExtractStructured`. diff --git a/docs/archives.md b/docs/archives.md index 2c66ac00f..ad0d5c916 100644 --- a/docs/archives.md +++ b/docs/archives.md @@ -10,7 +10,7 @@ Retrieves archives for an enterprise. -To learn more about the archive APIs, see the [Archive API Guide](g://archives). +To learn more about the archive APIs, see the [Archive API Guide](https://developer.box.com/guides/archives). This operation is performed by calling function `getArchivesV2025R0`. @@ -41,7 +41,7 @@ Returns a list of archives in the enterprise. Creates an archive. -To learn more about the archive APIs, see the [Archive API Guide](g://archives). +To learn more about the archive APIs, see the [Archive API Guide](https://developer.box.com/guides/archives). This operation is performed by calling function `createArchiveV2025R0`. @@ -72,7 +72,7 @@ Returns a new archive object. Permanently deletes an archive. -To learn more about the archive APIs, see the [Archive API Guide](g://archives). +To learn more about the archive APIs, see the [Archive API Guide](https://developer.box.com/guides/archives). This operation is performed by calling function `deleteArchiveByIdV2025R0`. @@ -103,7 +103,7 @@ Returns an empty response when the archive has been deleted. Updates an archive. -To learn more about the archive APIs, see the [Archive API Guide](g://archives). +To learn more about the archive APIs, see the [Archive API Guide](https://developer.box.com/guides/archives). This operation is performed by calling function `updateArchiveByIdV2025R0`. diff --git a/docs/chunkeduploads.md b/docs/chunkeduploads.md index 5b8136599..715868fb4 100644 --- a/docs/chunkeduploads.md +++ b/docs/chunkeduploads.md @@ -77,7 +77,7 @@ Returns a new upload session. Return information about an upload session. -The actual endpoint URL is returned by the [`Create upload session`](e://post-files-upload-sessions) endpoint. +The actual endpoint URL is returned by the [`Create upload session`](https://developer.box.com/reference/post-files-upload-sessions) endpoint. This operation is performed by calling function `getFileUploadSessionByUrl`. @@ -108,7 +108,7 @@ Returns an upload session object. Return information about an upload session. -The actual endpoint URL is returned by the [`Create upload session`](e://post-files-upload-sessions) endpoint. +The actual endpoint URL is returned by the [`Create upload session`](https://developer.box.com/reference/post-files-upload-sessions) endpoint. This operation is performed by calling function `getFileUploadSessionById`. @@ -139,8 +139,8 @@ Returns an upload session object. Uploads a chunk of a file for an upload session. -The actual endpoint URL is returned by the [`Create upload session`](e://post-files-upload-sessions) -and [`Get upload session`](e://get-files-upload-sessions-id) endpoints. +The actual endpoint URL is returned by the [`Create upload session`](https://developer.box.com/reference/post-files-upload-sessions) +and [`Get upload session`](https://developer.box.com/reference/get-files-upload-sessions-id) endpoints. This operation is performed by calling function `uploadFilePartByUrl`. @@ -173,8 +173,8 @@ Chunk has been uploaded successfully. Uploads a chunk of a file for an upload session. -The actual endpoint URL is returned by the [`Create upload session`](e://post-files-upload-sessions) -and [`Get upload session`](e://get-files-upload-sessions-id) endpoints. +The actual endpoint URL is returned by the [`Create upload session`](https://developer.box.com/reference/post-files-upload-sessions) +and [`Get upload session`](https://developer.box.com/reference/get-files-upload-sessions-id) endpoints. This operation is performed by calling function `uploadFilePart`. @@ -209,8 +209,8 @@ Abort an upload session and discard all data uploaded. This cannot be reversed. -The actual endpoint URL is returned by the [`Create upload session`](e://post-files-upload-sessions) -and [`Get upload session`](e://get-files-upload-sessions-id) endpoints. +The actual endpoint URL is returned by the [`Create upload session`](https://developer.box.com/reference/post-files-upload-sessions) +and [`Get upload session`](https://developer.box.com/reference/get-files-upload-sessions-id) endpoints. This operation is performed by calling function `deleteFileUploadSessionByUrl`. @@ -244,8 +244,8 @@ Abort an upload session and discard all data uploaded. This cannot be reversed. -The actual endpoint URL is returned by the [`Create upload session`](e://post-files-upload-sessions) -and [`Get upload session`](e://get-files-upload-sessions-id) endpoints. +The actual endpoint URL is returned by the [`Create upload session`](https://developer.box.com/reference/post-files-upload-sessions) +and [`Get upload session`](https://developer.box.com/reference/get-files-upload-sessions-id) endpoints. This operation is performed by calling function `deleteFileUploadSessionById`. @@ -277,8 +277,8 @@ successfully aborted. Return a list of the chunks uploaded to the upload session so far. -The actual endpoint URL is returned by the [`Create upload session`](e://post-files-upload-sessions) -and [`Get upload session`](e://get-files-upload-sessions-id) endpoints. +The actual endpoint URL is returned by the [`Create upload session`](https://developer.box.com/reference/post-files-upload-sessions) +and [`Get upload session`](https://developer.box.com/reference/get-files-upload-sessions-id) endpoints. This operation is performed by calling function `getFileUploadSessionPartsByUrl`. @@ -311,8 +311,8 @@ Returns a list of parts that have been uploaded. Return a list of the chunks uploaded to the upload session so far. -The actual endpoint URL is returned by the [`Create upload session`](e://post-files-upload-sessions) -and [`Get upload session`](e://get-files-upload-sessions-id) endpoints. +The actual endpoint URL is returned by the [`Create upload session`](https://developer.box.com/reference/post-files-upload-sessions) +and [`Get upload session`](https://developer.box.com/reference/get-files-upload-sessions-id) endpoints. This operation is performed by calling function `getFileUploadSessionParts`. @@ -345,8 +345,8 @@ Returns a list of parts that have been uploaded. Close an upload session and create a file from the uploaded chunks. -The actual endpoint URL is returned by the [`Create upload session`](e://post-files-upload-sessions) -and [`Get upload session`](e://get-files-upload-sessions-id) endpoints. +The actual endpoint URL is returned by the [`Create upload session`](https://developer.box.com/reference/post-files-upload-sessions) +and [`Get upload session`](https://developer.box.com/reference/get-files-upload-sessions-id) endpoints. This operation is performed by calling function `createFileUploadSessionCommitByUrl`. @@ -383,8 +383,8 @@ when all chunks have processed. Close an upload session and create a file from the uploaded chunks. -The actual endpoint URL is returned by the [`Create upload session`](e://post-files-upload-sessions) -and [`Get upload session`](e://get-files-upload-sessions-id) endpoints. +The actual endpoint URL is returned by the [`Create upload session`](https://developer.box.com/reference/post-files-upload-sessions) +and [`Get upload session`](https://developer.box.com/reference/get-files-upload-sessions-id) endpoints. This operation is performed by calling function `createFileUploadSessionCommit`. diff --git a/docs/downloads.md b/docs/downloads.md index c4b4489c4..36c3c56ab 100644 --- a/docs/downloads.md +++ b/docs/downloads.md @@ -38,7 +38,7 @@ redirects** setting enabled to automatically follow HTTP `3xx` responses as redirects. If not, the request will return `302` instead. For details, see -the [download file guide](g://downloads/file#download-url).If the file is not ready to be downloaded yet `Retry-After` header will +the [download file guide](https://developer.box.com/guides/downloads/file#download-url).If the file is not ready to be downloaded yet `Retry-After` header will be returned indicating the time in seconds after which the file will be available for the client to download. @@ -79,7 +79,7 @@ redirects** setting enabled to automatically follow HTTP `3xx` responses as redirects. If not, the request will return `302` instead. For details, see -the [download file guide](g://downloads/file#download-url).If the file is not ready to be downloaded yet `Retry-After` header will +the [download file guide](https://developer.box.com/guides/downloads/file#download-url).If the file is not ready to be downloaded yet `Retry-After` header will be returned indicating the time in seconds after which the file will be available for the client to download. diff --git a/docs/fileversionretentions.md b/docs/fileversionretentions.md index ac1c8ff18..a8bc10052 100644 --- a/docs/fileversionretentions.md +++ b/docs/fileversionretentions.md @@ -9,9 +9,9 @@ Retrieves all file version retentions for the given enterprise. **Note**: -File retention API is now **deprecated**. +File retention API is now **deprecated**. To get information about files and file versions under retention, -see [files under retention](e://get-retention-policy-assignments-id-files-under-retention) or [file versions under retention](e://get-retention-policy-assignments-id-file-versions-under-retention) endpoints. +see [files under retention](https://developer.box.com/reference/get-retention-policy-assignments-id-files-under-retention) or [file versions under retention](https://developer.box.com/reference/get-retention-policy-assignments-id-file-versions-under-retention) endpoints. This operation is performed by calling function `getFileVersionRetentions`. @@ -43,9 +43,9 @@ Returns a list of all file version retentions for the enterprise. Returns information about a file version retention. **Note**: -File retention API is now **deprecated**. +File retention API is now **deprecated**. To get information about files and file versions under retention, -see [files under retention](e://get-retention-policy-assignments-id-files-under-retention) or [file versions under retention](e://get-retention-policy-assignments-id-file-versions-under-retention) endpoints. +see [files under retention](https://developer.box.com/reference/get-retention-policy-assignments-id-files-under-retention) or [file versions under retention](https://developer.box.com/reference/get-retention-policy-assignments-id-file-versions-under-retention) endpoints. This operation is performed by calling function `getFileVersionRetentionById`. diff --git a/docs/folders.md b/docs/folders.md index 0ab79c9fd..5e36f6882 100644 --- a/docs/folders.md +++ b/docs/folders.md @@ -16,10 +16,10 @@ in the folder. Passing `sort`, `direction`, `offset`, and `limit` parameters in query allows you to manage the list of returned -[folder items](r://folder--full#param-item-collection). +[folder items](https://developer.box.com/reference/resources/folder--full#param-item-collection). To fetch more items within the folder, use the -[Get items in a folder](e://get-folders-id-items) endpoint. +[Get items in a folder](https://developer.box.com/reference/get-folders-id-items) endpoint. This operation is performed by calling function `getFolderById`. @@ -51,7 +51,7 @@ If you used query parameters like the *folder items list* will be affected accordingly. To fetch more items within the folder, use the -[Get items in a folder](e://get-folders-id-items)) endpoint. +[Get items in a folder](https://developer.box.com/reference/get-folders-id-items)) endpoint. Not all available fields are returned by default. Use the [fields](#param-fields) query parameter to explicitly request diff --git a/docs/trashedfiles.md b/docs/trashedfiles.md index 90ed51ec4..46482f699 100644 --- a/docs/trashedfiles.md +++ b/docs/trashedfiles.md @@ -49,10 +49,10 @@ Please note that only if the file itself has been moved to the trash can it be retrieved with this API call. If instead one of its parent folders was moved to the trash, only that folder can be inspected using the -[`GET /folders/:id/trash`](e://get_folders_id_trash) API. +[`GET /folders/:id/trash`](https://developer.box.com/reference/get-folders-id-trash) API. To list all items that have been moved to the trash, please -use the [`GET /folders/trash/items`](e://get-folders-trash-items/) +use the [`GET /folders/trash/items`](https://developer.box.com/reference/get-folders-trash-items/) API. This operation is performed by calling function `getTrashedFileById`. diff --git a/docs/trashedfolders.md b/docs/trashedfolders.md index 906508c2f..c993858fc 100644 --- a/docs/trashedfolders.md +++ b/docs/trashedfolders.md @@ -56,10 +56,10 @@ Please note that only if the folder itself has been moved to the trash can it be retrieved with this API call. If instead one of its parent folders was moved to the trash, only that folder can be inspected using the -[`GET /folders/:id/trash`](e://get_folders_id_trash) API. +[`GET /folders/:id/trash`](https://developer.box.com/reference/get-folders-id-trash) API. To list all items that have been moved to the trash, please -use the [`GET /folders/trash/items`](e://get-folders-trash-items/) +use the [`GET /folders/trash/items`](https://developer.box.com/reference/get-folders-trash-items/) API. This operation is performed by calling function `getTrashedFolderById`. diff --git a/docs/zipdownloads.md b/docs/zipdownloads.md index 8d8fda3c5..085ba3384 100644 --- a/docs/zipdownloads.md +++ b/docs/zipdownloads.md @@ -64,7 +64,7 @@ stopped and resumed, instead a new request for a zip archive would need to be created. The URL of this endpoint should not be considered as fixed. Instead, use -the [Create zip download](e://post_zip_downloads) API to request to create a +the [Create zip download](https://developer.box.com/reference/post-zip-downloads) API to request to create a `zip` archive, and then follow the `download_url` field in the response to this endpoint. @@ -105,7 +105,7 @@ Subsequently this endpoint is valid for 12 hours from the start of the download. The URL of this endpoint should not be considered as fixed. Instead, use -the [Create zip download](e://post_zip_downloads) API to request to create a +the [Create zip download](https://developer.box.com/reference/post-zip-downloads) API to request to create a `zip` archive, and then follow the `status_url` field in the response to this endpoint. diff --git a/src/main/java/com/box/sdkgen/managers/ai/AiManager.java b/src/main/java/com/box/sdkgen/managers/ai/AiManager.java index 20027ca17..c1442f2aa 100644 --- a/src/main/java/com/box/sdkgen/managers/ai/AiManager.java +++ b/src/main/java/com/box/sdkgen/managers/ai/AiManager.java @@ -203,13 +203,15 @@ public AiResponse createAiExtract(AiExtract requestBody, CreateAiExtractHeaders *

    To define the extraction structure, provide either a metadata template or a list of fields. * To learn more about creating templates, see [Creating metadata templates in the Admin * Console](https://support.box.com/hc/en-us/articles/360044194033-Customizing-Metadata-Templates) - * or use the [metadata template API](g://metadata/templates/create). + * or use the [metadata template API](https://developer.box.com/guides/metadata/templates/create). * *

    This endpoint also supports [Enhanced Extract - * Agent](g://box-ai/ai-tutorials/extract-metadata-structured/#enhanced-extract-agent). + * Agent](https://developer.box.com/guides/box-ai/ai-tutorials/extract-metadata-structured#enhanced-extract-agent). * *

    For information about supported file formats and languages, see the [Extract metadata from - * file (structured)](g://box-ai/ai-tutorials/extract-metadata-structured) API guide. + * file + * (structured)](https://developer.box.com/guides/box-ai/ai-tutorials/extract-metadata-structured) + * API guide. * * @param requestBody Request body of createAiExtractStructured method */ @@ -224,13 +226,15 @@ public AiExtractStructuredResponse createAiExtractStructured(AiExtractStructured *

    To define the extraction structure, provide either a metadata template or a list of fields. * To learn more about creating templates, see [Creating metadata templates in the Admin * Console](https://support.box.com/hc/en-us/articles/360044194033-Customizing-Metadata-Templates) - * or use the [metadata template API](g://metadata/templates/create). + * or use the [metadata template API](https://developer.box.com/guides/metadata/templates/create). * *

    This endpoint also supports [Enhanced Extract - * Agent](g://box-ai/ai-tutorials/extract-metadata-structured/#enhanced-extract-agent). + * Agent](https://developer.box.com/guides/box-ai/ai-tutorials/extract-metadata-structured#enhanced-extract-agent). * *

    For information about supported file formats and languages, see the [Extract metadata from - * file (structured)](g://box-ai/ai-tutorials/extract-metadata-structured) API guide. + * file + * (structured)](https://developer.box.com/guides/box-ai/ai-tutorials/extract-metadata-structured) + * API guide. * * @param requestBody Request body of createAiExtractStructured method * @param headers Headers of createAiExtractStructured method diff --git a/src/main/java/com/box/sdkgen/managers/archives/ArchivesManager.java b/src/main/java/com/box/sdkgen/managers/archives/ArchivesManager.java index 608fd42c2..698e4b45c 100644 --- a/src/main/java/com/box/sdkgen/managers/archives/ArchivesManager.java +++ b/src/main/java/com/box/sdkgen/managers/archives/ArchivesManager.java @@ -34,7 +34,8 @@ protected ArchivesManager(Builder builder) { /** * Retrieves archives for an enterprise. * - *

    To learn more about the archive APIs, see the [Archive API Guide](g://archives). + *

    To learn more about the archive APIs, see the [Archive API + * Guide](https://developer.box.com/guides/archives). */ public ArchivesV2025R0 getArchivesV2025R0() { return getArchivesV2025R0(new GetArchivesV2025R0QueryParams(), new GetArchivesV2025R0Headers()); @@ -43,7 +44,8 @@ public ArchivesV2025R0 getArchivesV2025R0() { /** * Retrieves archives for an enterprise. * - *

    To learn more about the archive APIs, see the [Archive API Guide](g://archives). + *

    To learn more about the archive APIs, see the [Archive API + * Guide](https://developer.box.com/guides/archives). * * @param queryParams Query parameters of getArchivesV2025R0 method */ @@ -54,7 +56,8 @@ public ArchivesV2025R0 getArchivesV2025R0(GetArchivesV2025R0QueryParams queryPar /** * Retrieves archives for an enterprise. * - *

    To learn more about the archive APIs, see the [Archive API Guide](g://archives). + *

    To learn more about the archive APIs, see the [Archive API + * Guide](https://developer.box.com/guides/archives). * * @param headers Headers of getArchivesV2025R0 method */ @@ -65,7 +68,8 @@ public ArchivesV2025R0 getArchivesV2025R0(GetArchivesV2025R0Headers headers) { /** * Retrieves archives for an enterprise. * - *

    To learn more about the archive APIs, see the [Archive API Guide](g://archives). + *

    To learn more about the archive APIs, see the [Archive API + * Guide](https://developer.box.com/guides/archives). * * @param queryParams Query parameters of getArchivesV2025R0 method * @param headers Headers of getArchivesV2025R0 method @@ -102,7 +106,8 @@ public ArchivesV2025R0 getArchivesV2025R0( /** * Creates an archive. * - *

    To learn more about the archive APIs, see the [Archive API Guide](g://archives). + *

    To learn more about the archive APIs, see the [Archive API + * Guide](https://developer.box.com/guides/archives). * * @param requestBody Request body of createArchiveV2025R0 method */ @@ -113,7 +118,8 @@ public ArchiveV2025R0 createArchiveV2025R0(CreateArchiveV2025R0RequestBody reque /** * Creates an archive. * - *

    To learn more about the archive APIs, see the [Archive API Guide](g://archives). + *

    To learn more about the archive APIs, see the [Archive API + * Guide](https://developer.box.com/guides/archives). * * @param requestBody Request body of createArchiveV2025R0 method * @param headers Headers of createArchiveV2025R0 method @@ -146,7 +152,8 @@ public ArchiveV2025R0 createArchiveV2025R0( /** * Permanently deletes an archive. * - *

    To learn more about the archive APIs, see the [Archive API Guide](g://archives). + *

    To learn more about the archive APIs, see the [Archive API + * Guide](https://developer.box.com/guides/archives). * * @param archiveId The ID of the archive. Example: "982312" */ @@ -157,7 +164,8 @@ public void deleteArchiveByIdV2025R0(String archiveId) { /** * Permanently deletes an archive. * - *

    To learn more about the archive APIs, see the [Archive API Guide](g://archives). + *

    To learn more about the archive APIs, see the [Archive API + * Guide](https://developer.box.com/guides/archives). * * @param archiveId The ID of the archive. Example: "982312" * @param headers Headers of deleteArchiveByIdV2025R0 method @@ -189,7 +197,8 @@ public void deleteArchiveByIdV2025R0(String archiveId, DeleteArchiveByIdV2025R0H /** * Updates an archive. * - *

    To learn more about the archive APIs, see the [Archive API Guide](g://archives). + *

    To learn more about the archive APIs, see the [Archive API + * Guide](https://developer.box.com/guides/archives). * * @param archiveId The ID of the archive. Example: "982312" */ @@ -203,7 +212,8 @@ public ArchiveV2025R0 updateArchiveByIdV2025R0(String archiveId) { /** * Updates an archive. * - *

    To learn more about the archive APIs, see the [Archive API Guide](g://archives). + *

    To learn more about the archive APIs, see the [Archive API + * Guide](https://developer.box.com/guides/archives). * * @param archiveId The ID of the archive. Example: "982312" * @param requestBody Request body of updateArchiveByIdV2025R0 method @@ -216,7 +226,8 @@ public ArchiveV2025R0 updateArchiveByIdV2025R0( /** * Updates an archive. * - *

    To learn more about the archive APIs, see the [Archive API Guide](g://archives). + *

    To learn more about the archive APIs, see the [Archive API + * Guide](https://developer.box.com/guides/archives). * * @param archiveId The ID of the archive. Example: "982312" * @param headers Headers of updateArchiveByIdV2025R0 method @@ -229,7 +240,8 @@ public ArchiveV2025R0 updateArchiveByIdV2025R0( /** * Updates an archive. * - *

    To learn more about the archive APIs, see the [Archive API Guide](g://archives). + *

    To learn more about the archive APIs, see the [Archive API + * Guide](https://developer.box.com/guides/archives). * * @param archiveId The ID of the archive. Example: "982312" * @param requestBody Request body of updateArchiveByIdV2025R0 method diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/ChunkedUploadsManager.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/ChunkedUploadsManager.java index 2563a60fb..150ff1002 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/ChunkedUploadsManager.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/ChunkedUploadsManager.java @@ -147,7 +147,7 @@ public UploadSession createFileUploadSessionForExistingFile( * information about an upload session. * *

    The actual endpoint URL is returned by the [`Create upload - * session`](e://post-files-upload-sessions) endpoint. + * session`](https://developer.box.com/reference/post-files-upload-sessions) endpoint. * * @param url URL of getFileUploadSessionById method */ @@ -162,7 +162,7 @@ public UploadSession getFileUploadSessionByUrl(String url) { * information about an upload session. * *

    The actual endpoint URL is returned by the [`Create upload - * session`](e://post-files-upload-sessions) endpoint. + * session`](https://developer.box.com/reference/post-files-upload-sessions) endpoint. * * @param url URL of getFileUploadSessionById method * @param headers Headers of getFileUploadSessionById method @@ -187,7 +187,7 @@ public UploadSession getFileUploadSessionByUrl( * Return information about an upload session. * *

    The actual endpoint URL is returned by the [`Create upload - * session`](e://post-files-upload-sessions) endpoint. + * session`](https://developer.box.com/reference/post-files-upload-sessions) endpoint. * * @param uploadSessionId The ID of the upload session. Example: "D5E3F7A" */ @@ -199,7 +199,7 @@ public UploadSession getFileUploadSessionById(String uploadSessionId) { * Return information about an upload session. * *

    The actual endpoint URL is returned by the [`Create upload - * session`](e://post-files-upload-sessions) endpoint. + * session`](https://developer.box.com/reference/post-files-upload-sessions) endpoint. * * @param uploadSessionId The ID of the upload session. Example: "D5E3F7A" * @param headers Headers of getFileUploadSessionById method @@ -233,8 +233,8 @@ public UploadSession getFileUploadSessionById( * for an upload session. * *

    The actual endpoint URL is returned by the [`Create upload - * session`](e://post-files-upload-sessions) and [`Get upload - * session`](e://get-files-upload-sessions-id) endpoints. + * session`](https://developer.box.com/reference/post-files-upload-sessions) and [`Get upload + * session`](https://developer.box.com/reference/get-files-upload-sessions-id) endpoints. * * @param url URL of uploadFilePart method * @param requestBody Request body of uploadFilePart method @@ -268,8 +268,8 @@ public UploadedPart uploadFilePartByUrl( * Uploads a chunk of a file for an upload session. * *

    The actual endpoint URL is returned by the [`Create upload - * session`](e://post-files-upload-sessions) and [`Get upload - * session`](e://get-files-upload-sessions-id) endpoints. + * session`](https://developer.box.com/reference/post-files-upload-sessions) and [`Get upload + * session`](https://developer.box.com/reference/get-files-upload-sessions-id) endpoints. * * @param uploadSessionId The ID of the upload session. Example: "D5E3F7A" * @param requestBody Request body of uploadFilePart method @@ -314,8 +314,8 @@ public UploadedPart uploadFilePart( *

    This cannot be reversed. * *

    The actual endpoint URL is returned by the [`Create upload - * session`](e://post-files-upload-sessions) and [`Get upload - * session`](e://get-files-upload-sessions-id) endpoints. + * session`](https://developer.box.com/reference/post-files-upload-sessions) and [`Get upload + * session`](https://developer.box.com/reference/get-files-upload-sessions-id) endpoints. * * @param url URL of deleteFileUploadSessionById method */ @@ -332,8 +332,8 @@ public void deleteFileUploadSessionByUrl(String url) { *

    This cannot be reversed. * *

    The actual endpoint URL is returned by the [`Create upload - * session`](e://post-files-upload-sessions) and [`Get upload - * session`](e://get-files-upload-sessions-id) endpoints. + * session`](https://developer.box.com/reference/post-files-upload-sessions) and [`Get upload + * session`](https://developer.box.com/reference/get-files-upload-sessions-id) endpoints. * * @param url URL of deleteFileUploadSessionById method * @param headers Headers of deleteFileUploadSessionById method @@ -359,8 +359,8 @@ public void deleteFileUploadSessionByUrl( *

    This cannot be reversed. * *

    The actual endpoint URL is returned by the [`Create upload - * session`](e://post-files-upload-sessions) and [`Get upload - * session`](e://get-files-upload-sessions-id) endpoints. + * session`](https://developer.box.com/reference/post-files-upload-sessions) and [`Get upload + * session`](https://developer.box.com/reference/get-files-upload-sessions-id) endpoints. * * @param uploadSessionId The ID of the upload session. Example: "D5E3F7A" */ @@ -374,8 +374,8 @@ public void deleteFileUploadSessionById(String uploadSessionId) { *

    This cannot be reversed. * *

    The actual endpoint URL is returned by the [`Create upload - * session`](e://post-files-upload-sessions) and [`Get upload - * session`](e://get-files-upload-sessions-id) endpoints. + * session`](https://developer.box.com/reference/post-files-upload-sessions) and [`Get upload + * session`](https://developer.box.com/reference/get-files-upload-sessions-id) endpoints. * * @param uploadSessionId The ID of the upload session. Example: "D5E3F7A" * @param headers Headers of deleteFileUploadSessionById method @@ -408,8 +408,8 @@ public void deleteFileUploadSessionById( * list of the chunks uploaded to the upload session so far. * *

    The actual endpoint URL is returned by the [`Create upload - * session`](e://post-files-upload-sessions) and [`Get upload - * session`](e://get-files-upload-sessions-id) endpoints. + * session`](https://developer.box.com/reference/post-files-upload-sessions) and [`Get upload + * session`](https://developer.box.com/reference/get-files-upload-sessions-id) endpoints. * * @param url URL of getFileUploadSessionParts method */ @@ -427,8 +427,8 @@ public UploadParts getFileUploadSessionPartsByUrl(String url) { * list of the chunks uploaded to the upload session so far. * *

    The actual endpoint URL is returned by the [`Create upload - * session`](e://post-files-upload-sessions) and [`Get upload - * session`](e://get-files-upload-sessions-id) endpoints. + * session`](https://developer.box.com/reference/post-files-upload-sessions) and [`Get upload + * session`](https://developer.box.com/reference/get-files-upload-sessions-id) endpoints. * * @param url URL of getFileUploadSessionParts method * @param queryParams Query parameters of getFileUploadSessionParts method @@ -446,8 +446,8 @@ public UploadParts getFileUploadSessionPartsByUrl( * list of the chunks uploaded to the upload session so far. * *

    The actual endpoint URL is returned by the [`Create upload - * session`](e://post-files-upload-sessions) and [`Get upload - * session`](e://get-files-upload-sessions-id) endpoints. + * session`](https://developer.box.com/reference/post-files-upload-sessions) and [`Get upload + * session`](https://developer.box.com/reference/get-files-upload-sessions-id) endpoints. * * @param url URL of getFileUploadSessionParts method * @param headers Headers of getFileUploadSessionParts method @@ -465,8 +465,8 @@ public UploadParts getFileUploadSessionPartsByUrl( * list of the chunks uploaded to the upload session so far. * *

    The actual endpoint URL is returned by the [`Create upload - * session`](e://post-files-upload-sessions) and [`Get upload - * session`](e://get-files-upload-sessions-id) endpoints. + * session`](https://developer.box.com/reference/post-files-upload-sessions) and [`Get upload + * session`](https://developer.box.com/reference/get-files-upload-sessions-id) endpoints. * * @param url URL of getFileUploadSessionParts method * @param queryParams Query parameters of getFileUploadSessionParts method @@ -500,8 +500,8 @@ public UploadParts getFileUploadSessionPartsByUrl( * Return a list of the chunks uploaded to the upload session so far. * *

    The actual endpoint URL is returned by the [`Create upload - * session`](e://post-files-upload-sessions) and [`Get upload - * session`](e://get-files-upload-sessions-id) endpoints. + * session`](https://developer.box.com/reference/post-files-upload-sessions) and [`Get upload + * session`](https://developer.box.com/reference/get-files-upload-sessions-id) endpoints. * * @param uploadSessionId The ID of the upload session. Example: "D5E3F7A" */ @@ -516,8 +516,8 @@ public UploadParts getFileUploadSessionParts(String uploadSessionId) { * Return a list of the chunks uploaded to the upload session so far. * *

    The actual endpoint URL is returned by the [`Create upload - * session`](e://post-files-upload-sessions) and [`Get upload - * session`](e://get-files-upload-sessions-id) endpoints. + * session`](https://developer.box.com/reference/post-files-upload-sessions) and [`Get upload + * session`](https://developer.box.com/reference/get-files-upload-sessions-id) endpoints. * * @param uploadSessionId The ID of the upload session. Example: "D5E3F7A" * @param queryParams Query parameters of getFileUploadSessionParts method @@ -532,8 +532,8 @@ public UploadParts getFileUploadSessionParts( * Return a list of the chunks uploaded to the upload session so far. * *

    The actual endpoint URL is returned by the [`Create upload - * session`](e://post-files-upload-sessions) and [`Get upload - * session`](e://get-files-upload-sessions-id) endpoints. + * session`](https://developer.box.com/reference/post-files-upload-sessions) and [`Get upload + * session`](https://developer.box.com/reference/get-files-upload-sessions-id) endpoints. * * @param uploadSessionId The ID of the upload session. Example: "D5E3F7A" * @param headers Headers of getFileUploadSessionParts method @@ -548,8 +548,8 @@ public UploadParts getFileUploadSessionParts( * Return a list of the chunks uploaded to the upload session so far. * *

    The actual endpoint URL is returned by the [`Create upload - * session`](e://post-files-upload-sessions) and [`Get upload - * session`](e://get-files-upload-sessions-id) endpoints. + * session`](https://developer.box.com/reference/post-files-upload-sessions) and [`Get upload + * session`](https://developer.box.com/reference/get-files-upload-sessions-id) endpoints. * * @param uploadSessionId The ID of the upload session. Example: "D5E3F7A" * @param queryParams Query parameters of getFileUploadSessionParts method @@ -593,8 +593,8 @@ public UploadParts getFileUploadSessionParts( * upload session and create a file from the uploaded chunks. * *

    The actual endpoint URL is returned by the [`Create upload - * session`](e://post-files-upload-sessions) and [`Get upload - * session`](e://get-files-upload-sessions-id) endpoints. + * session`](https://developer.box.com/reference/post-files-upload-sessions) and [`Get upload + * session`](https://developer.box.com/reference/get-files-upload-sessions-id) endpoints. * * @param url URL of createFileUploadSessionCommit method * @param requestBody Request body of createFileUploadSessionCommit method @@ -634,8 +634,8 @@ public Files createFileUploadSessionCommitByUrl( * Close an upload session and create a file from the uploaded chunks. * *

    The actual endpoint URL is returned by the [`Create upload - * session`](e://post-files-upload-sessions) and [`Get upload - * session`](e://get-files-upload-sessions-id) endpoints. + * session`](https://developer.box.com/reference/post-files-upload-sessions) and [`Get upload + * session`](https://developer.box.com/reference/get-files-upload-sessions-id) endpoints. * * @param uploadSessionId The ID of the upload session. Example: "D5E3F7A" * @param requestBody Request body of createFileUploadSessionCommit method diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/AddClassificationToFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/AddClassificationToFileRequestBody.java index d3bd97715..5c442498c 100644 --- a/src/main/java/com/box/sdkgen/managers/fileclassifications/AddClassificationToFileRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/AddClassificationToFileRequestBody.java @@ -14,7 +14,7 @@ public class AddClassificationToFileRequestBody extends SerializableObject { * *

    To list the available classifications in an enterprise, use the classification API to * retrieve the [classification - * template](e://get_metadata_templates_enterprise_securityClassification-6VMVochwUWo_schema) + * template](https://developer.box.com/reference/get-metadata-templates-enterprise-securityClassification-6VMVochwUWo-schema) * which lists all available classification keys. */ @JsonProperty("Box__Security__Classification__Key") diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBody.java index 1036c12f7..9e7f402d5 100644 --- a/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBody.java @@ -39,7 +39,7 @@ public class UpdateClassificationOnFileRequestBody extends SerializableObject { * *

    To list the available classifications in an enterprise, use the classification API to * retrieve the [classification - * template](e://get_metadata_templates_enterprise_securityClassification-6VMVochwUWo_schema) + * template](https://developer.box.com/reference/get-metadata-templates-enterprise-securityClassification-6VMVochwUWo-schema) * which lists all available classification keys. */ protected final String value; diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBody.java index 14c0b0469..6c9711196 100644 --- a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBody.java @@ -65,7 +65,7 @@ public class UpdateFileByIdRequestBody extends SerializableObject { * *

    Passing an empty array `[]` or `null` will remove the file from all collections. * - *

    [1]: e://get-collections + *

    [1]: https://developer.box.com/reference/get-collections */ @Nullable protected List collections; diff --git a/src/main/java/com/box/sdkgen/managers/fileversionretentions/FileVersionRetentionsManager.java b/src/main/java/com/box/sdkgen/managers/fileversionretentions/FileVersionRetentionsManager.java index 3fcea546c..74522873d 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversionretentions/FileVersionRetentionsManager.java +++ b/src/main/java/com/box/sdkgen/managers/fileversionretentions/FileVersionRetentionsManager.java @@ -36,8 +36,9 @@ protected FileVersionRetentionsManager(Builder builder) { * *

    **Note**: File retention API is now **deprecated**. To get information about files and file * versions under retention, see [files under - * retention](e://get-retention-policy-assignments-id-files-under-retention) or [file versions - * under retention](e://get-retention-policy-assignments-id-file-versions-under-retention) + * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-files-under-retention) + * or [file versions under + * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-file-versions-under-retention) * endpoints. */ public FileVersionRetentions getFileVersionRetentions() { @@ -50,8 +51,9 @@ public FileVersionRetentions getFileVersionRetentions() { * *

    **Note**: File retention API is now **deprecated**. To get information about files and file * versions under retention, see [files under - * retention](e://get-retention-policy-assignments-id-files-under-retention) or [file versions - * under retention](e://get-retention-policy-assignments-id-file-versions-under-retention) + * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-files-under-retention) + * or [file versions under + * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-file-versions-under-retention) * endpoints. * * @param queryParams Query parameters of getFileVersionRetentions method @@ -66,8 +68,9 @@ public FileVersionRetentions getFileVersionRetentions( * *

    **Note**: File retention API is now **deprecated**. To get information about files and file * versions under retention, see [files under - * retention](e://get-retention-policy-assignments-id-files-under-retention) or [file versions - * under retention](e://get-retention-policy-assignments-id-file-versions-under-retention) + * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-files-under-retention) + * or [file versions under + * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-file-versions-under-retention) * endpoints. * * @param headers Headers of getFileVersionRetentions method @@ -81,8 +84,9 @@ public FileVersionRetentions getFileVersionRetentions(GetFileVersionRetentionsHe * *

    **Note**: File retention API is now **deprecated**. To get information about files and file * versions under retention, see [files under - * retention](e://get-retention-policy-assignments-id-files-under-retention) or [file versions - * under retention](e://get-retention-policy-assignments-id-file-versions-under-retention) + * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-files-under-retention) + * or [file versions under + * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-file-versions-under-retention) * endpoints. * * @param queryParams Query parameters of getFileVersionRetentions method @@ -126,8 +130,9 @@ public FileVersionRetentions getFileVersionRetentions( * *

    **Note**: File retention API is now **deprecated**. To get information about files and file * versions under retention, see [files under - * retention](e://get-retention-policy-assignments-id-files-under-retention) or [file versions - * under retention](e://get-retention-policy-assignments-id-file-versions-under-retention) + * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-files-under-retention) + * or [file versions under + * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-file-versions-under-retention) * endpoints. * * @param fileVersionRetentionId The ID of the file version retention. Example: "3424234" @@ -142,8 +147,9 @@ public FileVersionRetention getFileVersionRetentionById(String fileVersionRetent * *

    **Note**: File retention API is now **deprecated**. To get information about files and file * versions under retention, see [files under - * retention](e://get-retention-policy-assignments-id-files-under-retention) or [file versions - * under retention](e://get-retention-policy-assignments-id-file-versions-under-retention) + * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-files-under-retention) + * or [file versions under + * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-file-versions-under-retention) * endpoints. * * @param fileVersionRetentionId The ID of the file version retention. Example: "3424234" diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/AddClassificationToFolderRequestBody.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/AddClassificationToFolderRequestBody.java index c4b1843e7..7952bfabf 100644 --- a/src/main/java/com/box/sdkgen/managers/folderclassifications/AddClassificationToFolderRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/AddClassificationToFolderRequestBody.java @@ -14,7 +14,7 @@ public class AddClassificationToFolderRequestBody extends SerializableObject { * *

    To list the available classifications in an enterprise, use the classification API to * retrieve the [classification - * template](e://get_metadata_templates_enterprise_securityClassification-6VMVochwUWo_schema) + * template](https://developer.box.com/reference/get-metadata-templates-enterprise-securityClassification-6VMVochwUWo-schema) * which lists all available classification keys. */ @JsonProperty("Box__Security__Classification__Key") diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBody.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBody.java index c60055b3a..b677923f1 100644 --- a/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBody.java @@ -39,7 +39,7 @@ public class UpdateClassificationOnFolderRequestBody extends SerializableObject * *

    To list the available classifications in an enterprise, use the classification API to * retrieve the [classification - * template](e://get_metadata_templates_enterprise_securityClassification-6VMVochwUWo_schema) + * template](https://developer.box.com/reference/get-metadata-templates-enterprise-securityClassification-6VMVochwUWo-schema) * which lists all available classification keys. */ protected final String value; diff --git a/src/main/java/com/box/sdkgen/managers/folders/FoldersManager.java b/src/main/java/com/box/sdkgen/managers/folders/FoldersManager.java index d0592004d..4b65da022 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/FoldersManager.java +++ b/src/main/java/com/box/sdkgen/managers/folders/FoldersManager.java @@ -35,10 +35,11 @@ protected FoldersManager(Builder builder) { * Retrieves details for a folder, including the first 100 entries in the folder. * *

    Passing `sort`, `direction`, `offset`, and `limit` parameters in query allows you to manage - * the list of returned [folder items](r://folder--full#param-item-collection). + * the list of returned [folder + * items](https://developer.box.com/reference/resources/folder--full#param-item-collection). * *

    To fetch more items within the folder, use the [Get items in a - * folder](e://get-folders-id-items) endpoint. + * folder](https://developer.box.com/reference/get-folders-id-items) endpoint. * * @param folderId The unique identifier that represent a folder. *

    The ID for any folder can be determined by visiting this folder in the web application @@ -54,10 +55,11 @@ public FolderFull getFolderById(String folderId) { * Retrieves details for a folder, including the first 100 entries in the folder. * *

    Passing `sort`, `direction`, `offset`, and `limit` parameters in query allows you to manage - * the list of returned [folder items](r://folder--full#param-item-collection). + * the list of returned [folder + * items](https://developer.box.com/reference/resources/folder--full#param-item-collection). * *

    To fetch more items within the folder, use the [Get items in a - * folder](e://get-folders-id-items) endpoint. + * folder](https://developer.box.com/reference/get-folders-id-items) endpoint. * * @param folderId The unique identifier that represent a folder. *

    The ID for any folder can be determined by visiting this folder in the web application @@ -74,10 +76,11 @@ public FolderFull getFolderById(String folderId, GetFolderByIdQueryParams queryP * Retrieves details for a folder, including the first 100 entries in the folder. * *

    Passing `sort`, `direction`, `offset`, and `limit` parameters in query allows you to manage - * the list of returned [folder items](r://folder--full#param-item-collection). + * the list of returned [folder + * items](https://developer.box.com/reference/resources/folder--full#param-item-collection). * *

    To fetch more items within the folder, use the [Get items in a - * folder](e://get-folders-id-items) endpoint. + * folder](https://developer.box.com/reference/get-folders-id-items) endpoint. * * @param folderId The unique identifier that represent a folder. *

    The ID for any folder can be determined by visiting this folder in the web application @@ -94,10 +97,11 @@ public FolderFull getFolderById(String folderId, GetFolderByIdHeaders headers) { * Retrieves details for a folder, including the first 100 entries in the folder. * *

    Passing `sort`, `direction`, `offset`, and `limit` parameters in query allows you to manage - * the list of returned [folder items](r://folder--full#param-item-collection). + * the list of returned [folder + * items](https://developer.box.com/reference/resources/folder--full#param-item-collection). * *

    To fetch more items within the folder, use the [Get items in a - * folder](e://get-folders-id-items) endpoint. + * folder](https://developer.box.com/reference/get-folders-id-items) endpoint. * * @param folderId The unique identifier that represent a folder. *

    The ID for any folder can be determined by visiting this folder in the web application diff --git a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBody.java index 3f4884024..405765ebf 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBody.java @@ -87,7 +87,7 @@ public class UpdateFolderByIdRequestBody extends SerializableObject { * *

    Passing an empty array `[]` or `null` will remove the folder from all collections. * - *

    [1]: e://get-collections + *

    [1]: https://developer.box.com/reference/get-collections */ @Nullable protected List collections; diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyRequestBody.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyRequestBody.java index eddad8acc..606b59614 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyRequestBody.java @@ -43,8 +43,9 @@ public class CreateMetadataCascadePolicyRequestBody extends SerializableObject { *

    Please [list the templates for an enterprise][list], or get all instances on a [file][file] * or [folder][folder] to inspect a template's key. * - *

    [list]: e://get-metadata-templates-enterprise [file]: e://get-files-id-metadata [folder]: - * e://get-folders-id-metadata + *

    [list]: https://developer.box.com/reference/get-metadata-templates-enterprise [file]: + * https://developer.box.com/reference/get-files-id-metadata [folder]: + * https://developer.box.com/reference/get-folders-id-metadata */ protected final String templateKey; diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParams.java b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParams.java index ea37b6247..7dc098e9c 100644 --- a/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParams.java @@ -210,7 +210,8 @@ public class SearchForContentQueryParams { * through a shared link. * *

    When this parameter has been set to true, the format of the response of this API changes to - * return a list of [Search Results with Shared Links](r://search_results_with_shared_links). + * return a list of [Search Results with Shared + * Links](https://developer.box.com/reference/resources/search-results-with-shared-links). */ public Boolean includeRecentSharedLinks; diff --git a/src/main/java/com/box/sdkgen/managers/trashedfiles/TrashedFilesManager.java b/src/main/java/com/box/sdkgen/managers/trashedfiles/TrashedFilesManager.java index 0fed55b4c..4c4f39980 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfiles/TrashedFilesManager.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfiles/TrashedFilesManager.java @@ -225,10 +225,11 @@ public TrashFileRestored restoreFileFromTrash( * *

    Please note that only if the file itself has been moved to the trash can it be retrieved * with this API call. If instead one of its parent folders was moved to the trash, only that - * folder can be inspected using the [`GET /folders/:id/trash`](e://get_folders_id_trash) API. + * folder can be inspected using the [`GET + * /folders/:id/trash`](https://developer.box.com/reference/get-folders-id-trash) API. * *

    To list all items that have been moved to the trash, please use the [`GET - * /folders/trash/items`](e://get-folders-trash-items/) API. + * /folders/trash/items`](https://developer.box.com/reference/get-folders-trash-items/) API. * * @param fileId The unique identifier that represents a file. *

    The ID for any file can be determined by visiting a file in the web application and @@ -245,10 +246,11 @@ public TrashFile getTrashedFileById(String fileId) { * *

    Please note that only if the file itself has been moved to the trash can it be retrieved * with this API call. If instead one of its parent folders was moved to the trash, only that - * folder can be inspected using the [`GET /folders/:id/trash`](e://get_folders_id_trash) API. + * folder can be inspected using the [`GET + * /folders/:id/trash`](https://developer.box.com/reference/get-folders-id-trash) API. * *

    To list all items that have been moved to the trash, please use the [`GET - * /folders/trash/items`](e://get-folders-trash-items/) API. + * /folders/trash/items`](https://developer.box.com/reference/get-folders-trash-items/) API. * * @param fileId The unique identifier that represents a file. *

    The ID for any file can be determined by visiting a file in the web application and @@ -265,10 +267,11 @@ public TrashFile getTrashedFileById(String fileId, GetTrashedFileByIdQueryParams * *

    Please note that only if the file itself has been moved to the trash can it be retrieved * with this API call. If instead one of its parent folders was moved to the trash, only that - * folder can be inspected using the [`GET /folders/:id/trash`](e://get_folders_id_trash) API. + * folder can be inspected using the [`GET + * /folders/:id/trash`](https://developer.box.com/reference/get-folders-id-trash) API. * *

    To list all items that have been moved to the trash, please use the [`GET - * /folders/trash/items`](e://get-folders-trash-items/) API. + * /folders/trash/items`](https://developer.box.com/reference/get-folders-trash-items/) API. * * @param fileId The unique identifier that represents a file. *

    The ID for any file can be determined by visiting a file in the web application and @@ -285,10 +288,11 @@ public TrashFile getTrashedFileById(String fileId, GetTrashedFileByIdHeaders hea * *

    Please note that only if the file itself has been moved to the trash can it be retrieved * with this API call. If instead one of its parent folders was moved to the trash, only that - * folder can be inspected using the [`GET /folders/:id/trash`](e://get_folders_id_trash) API. + * folder can be inspected using the [`GET + * /folders/:id/trash`](https://developer.box.com/reference/get-folders-id-trash) API. * *

    To list all items that have been moved to the trash, please use the [`GET - * /folders/trash/items`](e://get-folders-trash-items/) API. + * /folders/trash/items`](https://developer.box.com/reference/get-folders-trash-items/) API. * * @param fileId The unique identifier that represents a file. *

    The ID for any file can be determined by visiting a file in the web application and diff --git a/src/main/java/com/box/sdkgen/managers/trashedfolders/TrashedFoldersManager.java b/src/main/java/com/box/sdkgen/managers/trashedfolders/TrashedFoldersManager.java index 474e6810c..eab42a406 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfolders/TrashedFoldersManager.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfolders/TrashedFoldersManager.java @@ -281,10 +281,11 @@ public TrashFolderRestored restoreFolderFromTrash( * *

    Please note that only if the folder itself has been moved to the trash can it be retrieved * with this API call. If instead one of its parent folders was moved to the trash, only that - * folder can be inspected using the [`GET /folders/:id/trash`](e://get_folders_id_trash) API. + * folder can be inspected using the [`GET + * /folders/:id/trash`](https://developer.box.com/reference/get-folders-id-trash) API. * *

    To list all items that have been moved to the trash, please use the [`GET - * /folders/trash/items`](e://get-folders-trash-items/) API. + * /folders/trash/items`](https://developer.box.com/reference/get-folders-trash-items/) API. * * @param folderId The unique identifier that represent a folder. *

    The ID for any folder can be determined by visiting this folder in the web application @@ -302,10 +303,11 @@ public TrashFolder getTrashedFolderById(String folderId) { * *

    Please note that only if the folder itself has been moved to the trash can it be retrieved * with this API call. If instead one of its parent folders was moved to the trash, only that - * folder can be inspected using the [`GET /folders/:id/trash`](e://get_folders_id_trash) API. + * folder can be inspected using the [`GET + * /folders/:id/trash`](https://developer.box.com/reference/get-folders-id-trash) API. * *

    To list all items that have been moved to the trash, please use the [`GET - * /folders/trash/items`](e://get-folders-trash-items/) API. + * /folders/trash/items`](https://developer.box.com/reference/get-folders-trash-items/) API. * * @param folderId The unique identifier that represent a folder. *

    The ID for any folder can be determined by visiting this folder in the web application @@ -324,10 +326,11 @@ public TrashFolder getTrashedFolderById( * *

    Please note that only if the folder itself has been moved to the trash can it be retrieved * with this API call. If instead one of its parent folders was moved to the trash, only that - * folder can be inspected using the [`GET /folders/:id/trash`](e://get_folders_id_trash) API. + * folder can be inspected using the [`GET + * /folders/:id/trash`](https://developer.box.com/reference/get-folders-id-trash) API. * *

    To list all items that have been moved to the trash, please use the [`GET - * /folders/trash/items`](e://get-folders-trash-items/) API. + * /folders/trash/items`](https://developer.box.com/reference/get-folders-trash-items/) API. * * @param folderId The unique identifier that represent a folder. *

    The ID for any folder can be determined by visiting this folder in the web application @@ -345,10 +348,11 @@ public TrashFolder getTrashedFolderById(String folderId, GetTrashedFolderByIdHea * *

    Please note that only if the folder itself has been moved to the trash can it be retrieved * with this API call. If instead one of its parent folders was moved to the trash, only that - * folder can be inspected using the [`GET /folders/:id/trash`](e://get_folders_id_trash) API. + * folder can be inspected using the [`GET + * /folders/:id/trash`](https://developer.box.com/reference/get-folders-id-trash) API. * *

    To list all items that have been moved to the trash, please use the [`GET - * /folders/trash/items`](e://get-folders-trash-items/) API. + * /folders/trash/items`](https://developer.box.com/reference/get-folders-trash-items/) API. * * @param folderId The unique identifier that represent a folder. *

    The ID for any folder can be determined by visiting this folder in the web application diff --git a/src/main/java/com/box/sdkgen/managers/zipdownloads/ZipDownloadsManager.java b/src/main/java/com/box/sdkgen/managers/zipdownloads/ZipDownloadsManager.java index ea3ec64cf..15a6665b3 100644 --- a/src/main/java/com/box/sdkgen/managers/zipdownloads/ZipDownloadsManager.java +++ b/src/main/java/com/box/sdkgen/managers/zipdownloads/ZipDownloadsManager.java @@ -101,8 +101,8 @@ public ZipDownload createZipDownload( * request for a zip archive would need to be created. * *

    The URL of this endpoint should not be considered as fixed. Instead, use the [Create zip - * download](e://post_zip_downloads) API to request to create a `zip` archive, and then follow the - * `download_url` field in the response to this endpoint. + * download](https://developer.box.com/reference/post-zip-downloads) API to request to create a + * `zip` archive, and then follow the `download_url` field in the response to this endpoint. * * @param downloadUrl The URL that can be used to download created `zip` archive. Example: * `https://dl.boxcloud.com/2.0/zip_downloads/29l00nfxDyHOt7RphI9zT_w==nDnZEDjY2S8iEWWCHEEiptFxwoWojjlibZjJ6geuE5xnXENDTPxzgbks_yY=/content` @@ -121,8 +121,8 @@ public InputStream getZipDownloadContent(String downloadUrl) { * request for a zip archive would need to be created. * *

    The URL of this endpoint should not be considered as fixed. Instead, use the [Create zip - * download](e://post_zip_downloads) API to request to create a `zip` archive, and then follow the - * `download_url` field in the response to this endpoint. + * download](https://developer.box.com/reference/post-zip-downloads) API to request to create a + * `zip` archive, and then follow the `download_url` field in the response to this endpoint. * * @param downloadUrl The URL that can be used to download created `zip` archive. Example: * `https://dl.boxcloud.com/2.0/zip_downloads/29l00nfxDyHOt7RphI9zT_w==nDnZEDjY2S8iEWWCHEEiptFxwoWojjlibZjJ6geuE5xnXENDTPxzgbks_yY=/content` @@ -152,8 +152,8 @@ public InputStream getZipDownloadContent( * is valid for 12 hours from the start of the download. * *

    The URL of this endpoint should not be considered as fixed. Instead, use the [Create zip - * download](e://post_zip_downloads) API to request to create a `zip` archive, and then follow the - * `status_url` field in the response to this endpoint. + * download](https://developer.box.com/reference/post-zip-downloads) API to request to create a + * `zip` archive, and then follow the `status_url` field in the response to this endpoint. * * @param statusUrl The URL that can be used to get the status of the `zip` archive being * downloaded. Example: @@ -171,8 +171,8 @@ public ZipDownloadStatus getZipDownloadStatus(String statusUrl) { * is valid for 12 hours from the start of the download. * *

    The URL of this endpoint should not be considered as fixed. Instead, use the [Create zip - * download](e://post_zip_downloads) API to request to create a `zip` archive, and then follow the - * `status_url` field in the response to this endpoint. + * download](https://developer.box.com/reference/post-zip-downloads) API to request to create a + * `zip` archive, and then follow the `status_url` field in the response to this endpoint. * * @param statusUrl The URL that can be used to get the status of the `zip` archive being * downloaded. Example: diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttoolbase/AiAgentBasicTextToolBase.java b/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttoolbase/AiAgentBasicTextToolBase.java index b6e6225a1..b191e1f1f 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttoolbase/AiAgentBasicTextToolBase.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttoolbase/AiAgentBasicTextToolBase.java @@ -17,7 +17,7 @@ public class AiAgentBasicTextToolBase extends SerializableObject { /** * The model used for the AI agent for basic text. For specific model values, see the [available - * models list](g://box-ai/supported-models). + * models list](https://developer.box.com/guides/box-ai/supported-models). */ protected String model; diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReference.java b/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReference.java index da01e1354..42fab408b 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReference.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReference.java @@ -20,7 +20,8 @@ public class AiAgentReference extends SerializableObject { /** * The ID of an Agent. This can be a numeric ID for custom agents (for example, `14031`) or a * unique identifier for pre-built agents (for example, `enhanced_extract_agent` for the [Enhanced - * Extract Agent](g://box-ai/ai-tutorials/extract-metadata-structured/#enhanced-extract-agent)). + * Extract + * Agent](https://developer.box.com/guides/box-ai/ai-tutorials/extract-metadata-structured#enhanced-extract-agent)). */ protected String id; diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentspreadsheettool/AiAgentSpreadsheetTool.java b/src/main/java/com/box/sdkgen/schemas/aiagentspreadsheettool/AiAgentSpreadsheetTool.java index 2dc67e0f6..bc42ab674 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentspreadsheettool/AiAgentSpreadsheetTool.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentspreadsheettool/AiAgentSpreadsheetTool.java @@ -17,7 +17,7 @@ public class AiAgentSpreadsheetTool extends SerializableObject { /** * The model used for the AI agent for spreadsheets. For specific model values, see the [available - * models list](g://box-ai/supported-models). + * models list](https://developer.box.com/guides/box-ai/supported-models). */ protected String model; diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionretention/FileVersionRetention.java b/src/main/java/com/box/sdkgen/schemas/fileversionretention/FileVersionRetention.java index dcbe5f94f..88b50d930 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileversionretention/FileVersionRetention.java +++ b/src/main/java/com/box/sdkgen/schemas/fileversionretention/FileVersionRetention.java @@ -22,8 +22,10 @@ * *

    **Note**: File retention API is now **deprecated**. To get information about files and file * versions under retention, see [files under - * retention](e://get-retention-policy-assignments-id-files-under-retention) or [file versions under - * retention](e://get-retention-policy-assignments-id-file-versions-under-retention) endpoints. + * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-files-under-retention) + * or [file versions under + * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-file-versions-under-retention) + * endpoints. */ @JsonFilter("nullablePropertyFilter") public class FileVersionRetention extends SerializableObject { diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionretentions/FileVersionRetentions.java b/src/main/java/com/box/sdkgen/schemas/fileversionretentions/FileVersionRetentions.java index 19a0d8823..f2365be36 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileversionretentions/FileVersionRetentions.java +++ b/src/main/java/com/box/sdkgen/schemas/fileversionretentions/FileVersionRetentions.java @@ -14,8 +14,10 @@ * *

    **Note**: File retention API is now **deprecated**. To get information about files and file * versions under retention, see [files under - * retention](e://get-retention-policy-assignments-id-files-under-retention) or [file versions under - * retention](e://get-retention-policy-assignments-id-file-versions-under-retention) endpoints. + * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-files-under-retention) + * or [file versions under + * retention](https://developer.box.com/reference/get-retention-policy-assignments-id-file-versions-under-retention) + * endpoints. */ @JsonFilter("nullablePropertyFilter") public class FileVersionRetentions extends SerializableObject { diff --git a/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicy.java b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicy.java index 6286b6819..0c211e603 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicy.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicy.java @@ -51,8 +51,9 @@ public class MetadataCascadePolicy extends SerializableObject { *

    Please [list the templates for an enterprise][list], or get all instances on a [file][file] * or [folder][folder] to inspect a template's key. * - *

    [list]: e://get-metadata-templates-enterprise [file]: e://get-files-id-metadata [folder]: - * e://get-folders-id-metadata + *

    [list]: https://developer.box.com/reference/get-metadata-templates-enterprise [file]: + * https://developer.box.com/reference/get-files-id-metadata [folder]: + * https://developer.box.com/reference/get-folders-id-metadata */ protected String templateKey; diff --git a/src/main/java/com/box/sdkgen/schemas/metadatafilter/MetadataFilter.java b/src/main/java/com/box/sdkgen/schemas/metadatafilter/MetadataFilter.java index 940a099c0..f94815476 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatafilter/MetadataFilter.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatafilter/MetadataFilter.java @@ -34,8 +34,9 @@ public class MetadataFilter extends SerializableObject { *

    Please [list the templates for an enterprise][list], or get all instances on a [file][file] * or [folder][folder] to inspect a template's key. * - *

    [list]: e://get-metadata-templates-enterprise [file]: e://get-files-id-metadata [folder]: - * e://get-folders-id-metadata + *

    [list]: https://developer.box.com/reference/get-metadata-templates-enterprise [file]: + * https://developer.box.com/reference/get-files-id-metadata [folder]: + * https://developer.box.com/reference/get-folders-id-metadata */ protected String templateKey; diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestcreaterequest/SignRequestCreateRequest.java b/src/main/java/com/box/sdkgen/schemas/signrequestcreaterequest/SignRequestCreateRequest.java index 76d4e758e..59c0e5663 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestcreaterequest/SignRequestCreateRequest.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestcreaterequest/SignRequestCreateRequest.java @@ -43,10 +43,10 @@ public class SignRequestCreateRequest extends SignRequestBase { * Array of signers for the signature request. 35 is the max number of signers permitted. * *

    **Note**: It may happen that some signers belong to conflicting - * [segments](r://shield-information-barrier-segment-member) (user groups). This means that due to - * the security policies, users are assigned to segments to prevent exchanges or communication - * that could lead to ethical conflicts. In such a case, an attempt to send the sign request will - * result in an error. + * [segments](https://developer.box.com/reference/resources/shield-information-barrier-segment-member) + * (user groups). This means that due to the security policies, users are assigned to segments to + * prevent exchanges or communication that could lead to ethical conflicts. In such a case, an + * attempt to send the sign request will result in an error. * *

    Read more about [segments and ethical * walls](https://support.box.com/hc/en-us/articles/9920431507603-Understanding-Information-Barriers#h_01GFVJEHQA06N7XEZ4GCZ9GFAQ). diff --git a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplate.java b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplate.java index 436fad92f..80d926b10 100644 --- a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplate.java +++ b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplate.java @@ -99,10 +99,11 @@ public class SignTemplate extends SerializableObject { * Array of signers for the template. * *

    **Note**: It may happen that some signers specified in the template belong to conflicting - * [segments](r://shield-information-barrier-segment-member) (user groups). This means that due to - * the security policies, users are assigned to segments to prevent exchanges or communication - * that could lead to ethical conflicts. In such a case, an attempt to send a sign request based - * on a template that lists signers in conflicting segments will result in an error. + * [segments](https://developer.box.com/reference/resources/shield-information-barrier-segment-member) + * (user groups). This means that due to the security policies, users are assigned to segments to + * prevent exchanges or communication that could lead to ethical conflicts. In such a case, an + * attempt to send a sign request based on a template that lists signers in conflicting segments + * will result in an error. * *

    Read more about [segments and ethical * walls](https://support.box.com/hc/en-us/articles/9920431507603-Understanding-Information-Barriers#h_01GFVJEHQA06N7XEZ4GCZ9GFAQ). From 61235da7d51a64845d344a8286821e59b217a848 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 17 Dec 2025 18:03:35 +0100 Subject: [PATCH 073/148] fix: add taxonomy to Metadata Field (read) definition (box/box-openapi#572) (#1644) Co-authored-by: box-sdk-build --- .codegen.json | 2 +- .../metadatatemplate/MetadataTemplateFieldsTypeField.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.codegen.json b/.codegen.json index b6b94138d..96dc81896 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "c370934", "specHash": "9d069ca", "version": "10.3.0" } +{ "engineHash": "c370934", "specHash": "a4bdc72", "version": "10.3.0" } diff --git a/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsTypeField.java b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsTypeField.java index 23fa9fb4c..f12830e30 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsTypeField.java @@ -17,7 +17,8 @@ public enum MetadataTemplateFieldsTypeField implements Valuable { DATE("date"), ENUM("enum"), MULTISELECT("multiSelect"), - INTEGER("integer"); + INTEGER("integer"), + TAXONOMY("taxonomy"); private final String value; From 166b3b14cfc9f7945fa8f9dfc3b3c016ac73633f Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Thu, 18 Dec 2025 20:59:06 +0100 Subject: [PATCH 074/148] test: Update Metadata Taxonomies tests (box/box-codegen#909) (#1652) --- .codegen.json | 2 +- .github/workflows/build-and-test-daily.yml | 4 ++ docs/metadatataxonomies.md | 24 ++++--- .../GetMetadataTemplateFieldOptionsScope.java | 63 ------------------- .../MetadataTaxonomiesManager.java | 52 ++++++++------- ...dateMetadataTaxonomyLevelByIdHeaders.java} | 10 +-- ...MetadataTaxonomyLevelByIdRequestBody.java} | 16 ++--- .../MetadataTaxonomiesITest.java | 62 +++++++++++++++++- 8 files changed, 124 insertions(+), 109 deletions(-) delete mode 100644 src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsScope.java rename src/main/java/com/box/sdkgen/managers/metadatataxonomies/{PatchMetadataTaxonomiesIdIdLevelsIdHeaders.java => UpdateMetadataTaxonomyLevelByIdHeaders.java} (69%) rename src/main/java/com/box/sdkgen/managers/metadatataxonomies/{PatchMetadataTaxonomiesIdIdLevelsIdRequestBody.java => UpdateMetadataTaxonomyLevelByIdRequestBody.java} (77%) diff --git a/.codegen.json b/.codegen.json index 96dc81896..d5071b09e 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "c370934", "specHash": "a4bdc72", "version": "10.3.0" } +{ "engineHash": "41c28e1", "specHash": "1617aaf", "version": "10.3.0" } diff --git a/.github/workflows/build-and-test-daily.yml b/.github/workflows/build-and-test-daily.yml index 189771e63..7cd5a2dc9 100644 --- a/.github/workflows/build-and-test-daily.yml +++ b/.github/workflows/build-and-test-daily.yml @@ -2,6 +2,10 @@ name: Build and Test daily on: schedule: - cron: '20 1 * * 1-5' + +permissions: + contents: read + jobs: build-and-test: runs-on: ubuntu-latest diff --git a/docs/metadatataxonomies.md b/docs/metadatataxonomies.md index 0fd8d56eb..d5c54adf9 100644 --- a/docs/metadatataxonomies.md +++ b/docs/metadatataxonomies.md @@ -212,12 +212,15 @@ Returns an array of all taxonomy levels. Updates an existing metadata taxonomy level. -This operation is performed by calling function `patchMetadataTaxonomiesIdIdLevelsId`. +This operation is performed by calling function `updateMetadataTaxonomyLevelById`. See the endpoint docs at [API Reference](https://developer.box.com/reference/patch-metadata-taxonomies-id-id-levels-id/). -*Currently we don't have an example for calling `patchMetadataTaxonomiesIdIdLevelsId` in integration tests* + +``` +client.getMetadataTaxonomies().updateMetadataTaxonomyLevelById(namespace, taxonomyKey, 1L, new UpdateMetadataTaxonomyLevelByIdRequestBody.Builder("Continent UPDATED").description("Continent Level UPDATED").build()) +``` ### Arguments @@ -227,10 +230,10 @@ See the endpoint docs at - The key of the metadata taxonomy. Example: "geography" - levelIndex `long` - The index of the metadata taxonomy level. Example: 1 -- requestBody `PatchMetadataTaxonomiesIdIdLevelsIdRequestBody` - - Request body of patchMetadataTaxonomiesIdIdLevelsId method -- headers `PatchMetadataTaxonomiesIdIdLevelsIdHeaders` - - Headers of patchMetadataTaxonomiesIdIdLevelsId method +- requestBody `UpdateMetadataTaxonomyLevelByIdRequestBody` + - Request body of updateMetadataTaxonomyLevelById method +- headers `UpdateMetadataTaxonomyLevelByIdHeaders` + - Headers of updateMetadataTaxonomyLevelById method ### Returns @@ -488,12 +491,15 @@ This operation is performed by calling function `getMetadataTemplateFieldOptions See the endpoint docs at [API Reference](https://developer.box.com/reference/get-metadata-templates-id-id-fields-id-options/). -*Currently we don't have an example for calling `getMetadataTemplateFieldOptions` in integration tests* + +``` +client.getMetadataTaxonomies().getMetadataTemplateFieldOptions(namespace, metadataTemplateKey, "taxonomy") +``` ### Arguments -- scope `GetMetadataTemplateFieldOptionsScope` - - The scope of the metadata template. Example: "global" +- namespace `String` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" - templateKey `String` - The name of the metadata template. Example: "properties" - fieldKey `String` diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsScope.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsScope.java deleted file mode 100644 index 1e6b3e0f8..000000000 --- a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsScope.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.box.sdkgen.managers.metadatataxonomies; - -import com.box.sdkgen.serialization.json.EnumWrapper; -import com.box.sdkgen.serialization.json.Valuable; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; -import java.io.IOException; -import java.util.Arrays; - -public enum GetMetadataTemplateFieldOptionsScope implements Valuable { - GLOBAL("global"), - ENTERPRISE("enterprise"); - - private final String value; - - GetMetadataTemplateFieldOptionsScope(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - public static class GetMetadataTemplateFieldOptionsScopeDeserializer - extends JsonDeserializer> { - - public GetMetadataTemplateFieldOptionsScopeDeserializer() { - super(); - } - - @Override - public EnumWrapper deserialize( - JsonParser p, DeserializationContext ctxt) throws IOException { - String value = p.getValueAsString(); - return Arrays.stream(GetMetadataTemplateFieldOptionsScope.values()) - .filter((v) -> v.getValue().equalsIgnoreCase(value)) - .findFirst() - .map(EnumWrapper::new) - .orElse(new EnumWrapper(value)); - } - } - - public static class GetMetadataTemplateFieldOptionsScopeSerializer - extends JsonSerializer> { - - public GetMetadataTemplateFieldOptionsScopeSerializer() { - super(); - } - - @Override - public void serialize( - EnumWrapper value, - JsonGenerator gen, - SerializerProvider serializers) - throws IOException { - gen.writeString(value.getStringValue()); - } - } -} diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/MetadataTaxonomiesManager.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/MetadataTaxonomiesManager.java index c4bb657b4..a28786810 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/MetadataTaxonomiesManager.java +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/MetadataTaxonomiesManager.java @@ -331,19 +331,19 @@ public MetadataTaxonomyLevels createMetadataTaxonomyLevel( * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" * @param levelIndex The index of the metadata taxonomy level. Example: 1 - * @param requestBody Request body of patchMetadataTaxonomiesIdIdLevelsId method + * @param requestBody Request body of updateMetadataTaxonomyLevelById method */ - public MetadataTaxonomyLevel patchMetadataTaxonomiesIdIdLevelsId( + public MetadataTaxonomyLevel updateMetadataTaxonomyLevelById( String namespace, String taxonomyKey, long levelIndex, - PatchMetadataTaxonomiesIdIdLevelsIdRequestBody requestBody) { - return patchMetadataTaxonomiesIdIdLevelsId( + UpdateMetadataTaxonomyLevelByIdRequestBody requestBody) { + return updateMetadataTaxonomyLevelById( namespace, taxonomyKey, levelIndex, requestBody, - new PatchMetadataTaxonomiesIdIdLevelsIdHeaders()); + new UpdateMetadataTaxonomyLevelByIdHeaders()); } /** @@ -352,15 +352,15 @@ public MetadataTaxonomyLevel patchMetadataTaxonomiesIdIdLevelsId( * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" * @param taxonomyKey The key of the metadata taxonomy. Example: "geography" * @param levelIndex The index of the metadata taxonomy level. Example: 1 - * @param requestBody Request body of patchMetadataTaxonomiesIdIdLevelsId method - * @param headers Headers of patchMetadataTaxonomiesIdIdLevelsId method + * @param requestBody Request body of updateMetadataTaxonomyLevelById method + * @param headers Headers of updateMetadataTaxonomyLevelById method */ - public MetadataTaxonomyLevel patchMetadataTaxonomiesIdIdLevelsId( + public MetadataTaxonomyLevel updateMetadataTaxonomyLevelById( String namespace, String taxonomyKey, long levelIndex, - PatchMetadataTaxonomiesIdIdLevelsIdRequestBody requestBody, - PatchMetadataTaxonomiesIdIdLevelsIdHeaders headers) { + UpdateMetadataTaxonomyLevelByIdRequestBody requestBody, + UpdateMetadataTaxonomyLevelByIdHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = this.networkSession @@ -837,14 +837,14 @@ public void deleteMetadataTaxonomyNode( * unless a `query` parameter is passed. With a `query` parameter specified, results are sorted in * order of relevance. * - * @param scope The scope of the metadata template. Example: "global" + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" * @param templateKey The name of the metadata template. Example: "properties" * @param fieldKey The key of the metadata taxonomy field in the template. Example: "geography" */ public MetadataTaxonomyNodes getMetadataTemplateFieldOptions( - GetMetadataTemplateFieldOptionsScope scope, String templateKey, String fieldKey) { + String namespace, String templateKey, String fieldKey) { return getMetadataTemplateFieldOptions( - scope, + namespace, templateKey, fieldKey, new GetMetadataTemplateFieldOptionsQueryParams(), @@ -857,18 +857,22 @@ public MetadataTaxonomyNodes getMetadataTemplateFieldOptions( * unless a `query` parameter is passed. With a `query` parameter specified, results are sorted in * order of relevance. * - * @param scope The scope of the metadata template. Example: "global" + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" * @param templateKey The name of the metadata template. Example: "properties" * @param fieldKey The key of the metadata taxonomy field in the template. Example: "geography" * @param queryParams Query parameters of getMetadataTemplateFieldOptions method */ public MetadataTaxonomyNodes getMetadataTemplateFieldOptions( - GetMetadataTemplateFieldOptionsScope scope, + String namespace, String templateKey, String fieldKey, GetMetadataTemplateFieldOptionsQueryParams queryParams) { return getMetadataTemplateFieldOptions( - scope, templateKey, fieldKey, queryParams, new GetMetadataTemplateFieldOptionsHeaders()); + namespace, + templateKey, + fieldKey, + queryParams, + new GetMetadataTemplateFieldOptionsHeaders()); } /** @@ -877,18 +881,22 @@ public MetadataTaxonomyNodes getMetadataTemplateFieldOptions( * unless a `query` parameter is passed. With a `query` parameter specified, results are sorted in * order of relevance. * - * @param scope The scope of the metadata template. Example: "global" + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" * @param templateKey The name of the metadata template. Example: "properties" * @param fieldKey The key of the metadata taxonomy field in the template. Example: "geography" * @param headers Headers of getMetadataTemplateFieldOptions method */ public MetadataTaxonomyNodes getMetadataTemplateFieldOptions( - GetMetadataTemplateFieldOptionsScope scope, + String namespace, String templateKey, String fieldKey, GetMetadataTemplateFieldOptionsHeaders headers) { return getMetadataTemplateFieldOptions( - scope, templateKey, fieldKey, new GetMetadataTemplateFieldOptionsQueryParams(), headers); + namespace, + templateKey, + fieldKey, + new GetMetadataTemplateFieldOptionsQueryParams(), + headers); } /** @@ -897,14 +905,14 @@ public MetadataTaxonomyNodes getMetadataTemplateFieldOptions( * unless a `query` parameter is passed. With a `query` parameter specified, results are sorted in * order of relevance. * - * @param scope The scope of the metadata template. Example: "global" + * @param namespace The namespace of the metadata taxonomy. Example: "enterprise_123456" * @param templateKey The name of the metadata template. Example: "properties" * @param fieldKey The key of the metadata taxonomy field in the template. Example: "geography" * @param queryParams Query parameters of getMetadataTemplateFieldOptions method * @param headers Headers of getMetadataTemplateFieldOptions method */ public MetadataTaxonomyNodes getMetadataTemplateFieldOptions( - GetMetadataTemplateFieldOptionsScope scope, + String namespace, String templateKey, String fieldKey, GetMetadataTemplateFieldOptionsQueryParams queryParams, @@ -934,7 +942,7 @@ public MetadataTaxonomyNodes getMetadataTemplateFieldOptions( "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/metadata_templates/", - convertToString(scope), + convertToString(namespace), "/", convertToString(templateKey), "/fields/", diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyLevelByIdHeaders.java similarity index 69% rename from src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdHeaders.java rename to src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyLevelByIdHeaders.java index ec8f7eba3..eb0e70806 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyLevelByIdHeaders.java @@ -4,16 +4,16 @@ import java.util.Map; -public class PatchMetadataTaxonomiesIdIdLevelsIdHeaders { +public class UpdateMetadataTaxonomyLevelByIdHeaders { /** Extra headers that will be included in the HTTP request. */ public Map extraHeaders; - public PatchMetadataTaxonomiesIdIdLevelsIdHeaders() { + public UpdateMetadataTaxonomyLevelByIdHeaders() { this.extraHeaders = mapOf(); } - protected PatchMetadataTaxonomiesIdIdLevelsIdHeaders(Builder builder) { + protected UpdateMetadataTaxonomyLevelByIdHeaders(Builder builder) { this.extraHeaders = builder.extraHeaders; } @@ -34,8 +34,8 @@ public Builder extraHeaders(Map extraHeaders) { return this; } - public PatchMetadataTaxonomiesIdIdLevelsIdHeaders build() { - return new PatchMetadataTaxonomiesIdIdLevelsIdHeaders(this); + public UpdateMetadataTaxonomyLevelByIdHeaders build() { + return new UpdateMetadataTaxonomyLevelByIdHeaders(this); } } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyLevelByIdRequestBody.java similarity index 77% rename from src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdRequestBody.java rename to src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyLevelByIdRequestBody.java index abea43114..b76134d59 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/PatchMetadataTaxonomiesIdIdLevelsIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyLevelByIdRequestBody.java @@ -7,7 +7,7 @@ import java.util.Objects; @JsonFilter("nullablePropertyFilter") -public class PatchMetadataTaxonomiesIdIdLevelsIdRequestBody extends SerializableObject { +public class UpdateMetadataTaxonomyLevelByIdRequestBody extends SerializableObject { /** The display name of the taxonomy level. */ protected final String displayName; @@ -15,13 +15,13 @@ public class PatchMetadataTaxonomiesIdIdLevelsIdRequestBody extends Serializable /** The description of the taxonomy level. */ protected String description; - public PatchMetadataTaxonomiesIdIdLevelsIdRequestBody( + public UpdateMetadataTaxonomyLevelByIdRequestBody( @JsonProperty("displayName") String displayName) { super(); this.displayName = displayName; } - protected PatchMetadataTaxonomiesIdIdLevelsIdRequestBody(Builder builder) { + protected UpdateMetadataTaxonomyLevelByIdRequestBody(Builder builder) { super(); this.displayName = builder.displayName; this.description = builder.description; @@ -44,8 +44,8 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - PatchMetadataTaxonomiesIdIdLevelsIdRequestBody casted = - (PatchMetadataTaxonomiesIdIdLevelsIdRequestBody) o; + UpdateMetadataTaxonomyLevelByIdRequestBody casted = + (UpdateMetadataTaxonomyLevelByIdRequestBody) o; return Objects.equals(displayName, casted.displayName) && Objects.equals(description, casted.description); } @@ -57,7 +57,7 @@ public int hashCode() { @Override public String toString() { - return "PatchMetadataTaxonomiesIdIdLevelsIdRequestBody{" + return "UpdateMetadataTaxonomyLevelByIdRequestBody{" + "displayName='" + displayName + '\'' @@ -84,8 +84,8 @@ public Builder description(String description) { return this; } - public PatchMetadataTaxonomiesIdIdLevelsIdRequestBody build() { - return new PatchMetadataTaxonomiesIdIdLevelsIdRequestBody(this); + public UpdateMetadataTaxonomyLevelByIdRequestBody build() { + return new UpdateMetadataTaxonomyLevelByIdRequestBody(this); } } } diff --git a/src/test/java/com/box/sdkgen/metadatataxonomies/MetadataTaxonomiesITest.java b/src/test/java/com/box/sdkgen/metadatataxonomies/MetadataTaxonomiesITest.java index c44e157a4..acf57215c 100644 --- a/src/test/java/com/box/sdkgen/metadatataxonomies/MetadataTaxonomiesITest.java +++ b/src/test/java/com/box/sdkgen/metadatataxonomies/MetadataTaxonomiesITest.java @@ -1,6 +1,7 @@ package com.box.sdkgen.metadatataxonomies; import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; import static com.box.sdkgen.internal.utils.UtilsManager.delayInSeconds; import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; @@ -10,14 +11,21 @@ import com.box.sdkgen.managers.metadatataxonomies.AddMetadataTaxonomyLevelRequestBody; import com.box.sdkgen.managers.metadatataxonomies.CreateMetadataTaxonomyNodeRequestBody; import com.box.sdkgen.managers.metadatataxonomies.CreateMetadataTaxonomyRequestBody; +import com.box.sdkgen.managers.metadatataxonomies.UpdateMetadataTaxonomyLevelByIdRequestBody; import com.box.sdkgen.managers.metadatataxonomies.UpdateMetadataTaxonomyNodeRequestBody; import com.box.sdkgen.managers.metadatataxonomies.UpdateMetadataTaxonomyRequestBody; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBody; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsField; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsOptionsRulesField; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsTypeField; +import com.box.sdkgen.managers.metadatatemplates.DeleteMetadataTemplateScope; import com.box.sdkgen.schemas.metadatataxonomies.MetadataTaxonomies; import com.box.sdkgen.schemas.metadatataxonomy.MetadataTaxonomy; import com.box.sdkgen.schemas.metadatataxonomylevel.MetadataTaxonomyLevel; import com.box.sdkgen.schemas.metadatataxonomylevels.MetadataTaxonomyLevels; import com.box.sdkgen.schemas.metadatataxonomynode.MetadataTaxonomyNode; import com.box.sdkgen.schemas.metadatataxonomynodes.MetadataTaxonomyNodes; +import com.box.sdkgen.schemas.metadatatemplate.MetadataTemplate; import java.util.Arrays; import org.junit.jupiter.api.Test; @@ -96,6 +104,19 @@ public void testMetadataTaxonomiesNodes() { assert taxonomyLevels.getEntries().size() == 2; assert taxonomyLevels.getEntries().get(0).getDisplayName().equals("Continent"); assert taxonomyLevels.getEntries().get(1).getDisplayName().equals("Country"); + MetadataTaxonomyLevel updatedTaxonomyLevels = + client + .getMetadataTaxonomies() + .updateMetadataTaxonomyLevelById( + namespace, + taxonomyKey, + 1L, + new UpdateMetadataTaxonomyLevelByIdRequestBody.Builder("Continent UPDATED") + .description("Continent Level UPDATED") + .build()); + assert updatedTaxonomyLevels.getDisplayName().equals("Continent UPDATED"); + assert updatedTaxonomyLevels.getDescription().equals("Continent Level UPDATED"); + assert updatedTaxonomyLevels.getLevel() == taxonomyLevels.getEntries().get(0).getLevel(); MetadataTaxonomyLevels taxonomyLevelsAfterAddition = client .getMetadataTaxonomies() @@ -110,7 +131,11 @@ public void testMetadataTaxonomiesNodes() { MetadataTaxonomyLevels taxonomyLevelsAfterDeletion = client.getMetadataTaxonomies().deleteMetadataTaxonomyLevel(namespace, taxonomyKey); assert taxonomyLevelsAfterDeletion.getEntries().size() == 2; - assert taxonomyLevelsAfterDeletion.getEntries().get(0).getDisplayName().equals("Continent"); + assert taxonomyLevelsAfterDeletion + .getEntries() + .get(0) + .getDisplayName() + .equals("Continent UPDATED"); assert taxonomyLevelsAfterDeletion.getEntries().get(1).getDisplayName().equals("Country"); MetadataTaxonomyNode continentNode = client @@ -155,6 +180,41 @@ public void testMetadataTaxonomiesNodes() { .getMetadataTaxonomyNodeById(namespace, taxonomyKey, countryNode.getId()); assert getCountryNode.getDisplayName().equals("Poland UPDATED"); assert getCountryNode.getId().equals(countryNode.getId()); + String metadataTemplateKey = String.join("", "templateKey", getUuid()); + MetadataTemplate metadataTemplate = + client + .getMetadataTemplates() + .createMetadataTemplate( + new CreateMetadataTemplateRequestBody.Builder("enterprise", metadataTemplateKey) + .templateKey(metadataTemplateKey) + .fields( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsField.Builder( + CreateMetadataTemplateRequestBodyFieldsTypeField.TAXONOMY, + "taxonomy", + "taxonomy") + .taxonomyKey(taxonomyKey) + .namespace(namespace) + .optionsRules( + new CreateMetadataTemplateRequestBodyFieldsOptionsRulesField + .Builder() + .multiSelect(true) + .selectableLevels(Arrays.asList(1L)) + .build()) + .build())) + .build()); + assert metadataTemplate.getTemplateKey().equals(metadataTemplateKey); + assert metadataTemplate.getDisplayName().equals(metadataTemplateKey); + assert metadataTemplate.getFields().size() == 1; + assert convertToString(metadataTemplate.getFields().get(0).getType()).equals("taxonomy"); + MetadataTaxonomyNodes options = + client + .getMetadataTaxonomies() + .getMetadataTemplateFieldOptions(namespace, metadataTemplateKey, "taxonomy"); + assert options.getEntries().size() == 1; + client + .getMetadataTemplates() + .deleteMetadataTemplate(DeleteMetadataTemplateScope.ENTERPRISE, metadataTemplateKey); client .getMetadataTaxonomies() .deleteMetadataTaxonomyNode(namespace, taxonomyKey, countryNode.getId()); From 197b23e9f510165e72c61b444577ee092c3266c1 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Fri, 19 Dec 2025 12:21:29 +0100 Subject: [PATCH 075/148] chore: release version 10.4.0 (#1659) --- .codegen.json | 2 +- CHANGELOG.md | 15 +++++++++++++++ build.gradle | 2 +- .../box/sdkgen/networking/version/Version.java | 2 +- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index d5071b09e..71def9ba1 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "41c28e1", "specHash": "1617aaf", "version": "10.3.0" } +{ "engineHash": "41c28e1", "specHash": "1617aaf", "version": "10.4.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index c0b729967..c9fd0543b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,21 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [10.4.0](https://github.com/box/box-java-sdk/compare/v10.3.0...v10.4.0) (2025-12-19) + + +### Bug Fixes + +* add taxonomy to Metadata Field (read) definition (box/box-openapi[#572](https://github.com/box/box-java-sdk/issues/572)) ([#1644](https://github.com/box/box-java-sdk/issues/1644)) ([61235da](https://github.com/box/box-java-sdk/commit/61235da7d51a64845d344a8286821e59b217a848)) +* fix `RetryAfter` function when there's no `Retry-After` header (box/box-codegen[#903](https://github.com/box/box-java-sdk/issues/903)) ([#1622](https://github.com/box/box-java-sdk/issues/1622)) ([f135e2b](https://github.com/box/box-java-sdk/commit/f135e2b62d4b2d2d266ab40b3b366c8c7968d2db)) + + +### New Features and Enhancements + +* add Metadata Taxonomies api (box/box-openapi[#569](https://github.com/box/box-java-sdk/issues/569)) ([#1630](https://github.com/box/box-java-sdk/issues/1630)) ([d1e8924](https://github.com/box/box-java-sdk/commit/d1e8924ad123e5fcbf014be50fbbf52ea45d546b)) +* text input validation for Box Sign (box/box-openapi[#568](https://github.com/box/box-java-sdk/issues/568)) ([#1624](https://github.com/box/box-java-sdk/issues/1624)) ([8c5b5c1](https://github.com/box/box-java-sdk/commit/8c5b5c17285c1c0d4a644eb8187dac92f1f96f28)) +* Treat `nullable` fields as Optional (box/box-codegen[#906](https://github.com/box/box-java-sdk/issues/906)) ([#1634](https://github.com/box/box-java-sdk/issues/1634)) ([cacc729](https://github.com/box/box-java-sdk/commit/cacc729dc246c914eb1a6d8281f4261c96711dc1)) + ## [10.3.0](https://github.com/box/box-java-sdk/compare/v10.2.0...v10.3.0) (2025-12-10) diff --git a/build.gradle b/build.gradle index 5a1a96c94..46d0e1349 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ plugins { } group = "com.box" archivesBaseName = "box-java-sdk" -version = "10.3.0" +version = "10.4.0" java { sourceCompatibility = JavaVersion.toVersion(libraryJavaVersion) targetCompatibility = JavaVersion.toVersion(libraryJavaVersion) diff --git a/src/main/java/com/box/sdkgen/networking/version/Version.java b/src/main/java/com/box/sdkgen/networking/version/Version.java index c1ad6dd56..16ce27379 100644 --- a/src/main/java/com/box/sdkgen/networking/version/Version.java +++ b/src/main/java/com/box/sdkgen/networking/version/Version.java @@ -3,6 +3,6 @@ public class Version { public static String getVersion() { - return "10.3.0"; + return "10.4.0"; } } From a028b69ca4b3c4621bbf91bea47338a94b7916f8 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 31 Dec 2025 15:32:19 +0100 Subject: [PATCH 076/148] test: Remove integration mappings tests (box/box-codegen#912) (#1671) --- .codegen.json | 2 +- .../IntegrationMappingsITest.java | 151 ------------------ 2 files changed, 1 insertion(+), 152 deletions(-) delete mode 100644 src/test/java/com/box/sdkgen/integrationmappings/IntegrationMappingsITest.java diff --git a/.codegen.json b/.codegen.json index 71def9ba1..e3c00419d 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "41c28e1", "specHash": "1617aaf", "version": "10.4.0" } +{ "engineHash": "06ab9c3", "specHash": "425a724", "version": "10.4.0" } diff --git a/src/test/java/com/box/sdkgen/integrationmappings/IntegrationMappingsITest.java b/src/test/java/com/box/sdkgen/integrationmappings/IntegrationMappingsITest.java deleted file mode 100644 index 78edeb454..000000000 --- a/src/test/java/com/box/sdkgen/integrationmappings/IntegrationMappingsITest.java +++ /dev/null @@ -1,151 +0,0 @@ -package com.box.sdkgen.integrationmappings; - -import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; -import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; -import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; -import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; -import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import static org.junit.jupiter.api.Assertions.assertThrows; - -import com.box.sdkgen.client.BoxClient; -import com.box.sdkgen.managers.folders.CreateFolderRequestBody; -import com.box.sdkgen.managers.folders.CreateFolderRequestBodyParentField; -import com.box.sdkgen.managers.integrationmappings.UpdateSlackIntegrationMappingByIdRequestBody; -import com.box.sdkgen.managers.integrationmappings.UpdateTeamsIntegrationMappingByIdRequestBody; -import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBody; -import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBodyAccessibleByField; -import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBodyAccessibleByTypeField; -import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBodyItemField; -import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBodyItemTypeField; -import com.box.sdkgen.managers.usercollaborations.CreateCollaborationRequestBodyRoleField; -import com.box.sdkgen.schemas.folderfull.FolderFull; -import com.box.sdkgen.schemas.folderreference.FolderReference; -import com.box.sdkgen.schemas.integrationmapping.IntegrationMapping; -import com.box.sdkgen.schemas.integrationmappingboxitemslack.IntegrationMappingBoxItemSlack; -import com.box.sdkgen.schemas.integrationmappingpartneritemslack.IntegrationMappingPartnerItemSlack; -import com.box.sdkgen.schemas.integrationmappingpartneritemteamscreaterequest.IntegrationMappingPartnerItemTeamsCreateRequest; -import com.box.sdkgen.schemas.integrationmappingpartneritemteamscreaterequest.IntegrationMappingPartnerItemTeamsCreateRequestTypeField; -import com.box.sdkgen.schemas.integrationmappings.IntegrationMappings; -import com.box.sdkgen.schemas.integrationmappingslackcreaterequest.IntegrationMappingSlackCreateRequest; -import com.box.sdkgen.schemas.integrationmappingteamscreaterequest.IntegrationMappingTeamsCreateRequest; -import org.junit.jupiter.api.Test; - -public class IntegrationMappingsITest { - - private static final BoxClient client = getDefaultClient(); - - @Test - public void testSlackIntegrationMappings() { - String userId = getEnvVar("USER_ID"); - String slackAutomationUserId = getEnvVar("SLACK_AUTOMATION_USER_ID"); - String slackOrgId = getEnvVar("SLACK_ORG_ID"); - String slackPartnerItemId = getEnvVar("SLACK_PARTNER_ITEM_ID"); - BoxClient userClient = getDefaultClientWithUserSubject(userId); - FolderFull folder = - userClient - .getFolders() - .createFolder( - new CreateFolderRequestBody( - getUuid(), new CreateFolderRequestBodyParentField("0"))); - userClient - .getUserCollaborations() - .createCollaboration( - new CreateCollaborationRequestBody( - new CreateCollaborationRequestBodyItemField.Builder() - .type(CreateCollaborationRequestBodyItemTypeField.FOLDER) - .id(folder.getId()) - .build(), - new CreateCollaborationRequestBodyAccessibleByField.Builder( - CreateCollaborationRequestBodyAccessibleByTypeField.USER) - .id(slackAutomationUserId) - .build(), - CreateCollaborationRequestBodyRoleField.CO_OWNER)); - IntegrationMappings slackIntegrations = - userClient.getIntegrationMappings().getSlackIntegrationMapping(); - if (slackIntegrations.getEntries().size() == 0) { - userClient - .getIntegrationMappings() - .createSlackIntegrationMapping( - new IntegrationMappingSlackCreateRequest( - new IntegrationMappingPartnerItemSlack.Builder(slackPartnerItemId) - .slackOrgId(slackOrgId) - .build(), - new IntegrationMappingBoxItemSlack(folder.getId()))); - } - IntegrationMappings slackMappings = - userClient.getIntegrationMappings().getSlackIntegrationMapping(); - assert slackMappings.getEntries().size() >= 1; - IntegrationMapping slackIntegrationMapping = slackMappings.getEntries().get(0); - assert convertToString(slackIntegrationMapping.getIntegrationType()).equals("slack"); - assert convertToString(slackIntegrationMapping.getType()).equals("integration_mapping"); - assert convertToString(slackIntegrationMapping.getBoxItem().getType()).equals("folder"); - assert slackIntegrationMapping.getPartnerItem().getId().equals(slackPartnerItemId); - assert slackIntegrationMapping.getPartnerItem().getSlackWorkspaceId().equals(slackOrgId); - assert convertToString(slackIntegrationMapping.getPartnerItem().getType()).equals("channel"); - IntegrationMapping updatedSlackMapping = - userClient - .getIntegrationMappings() - .updateSlackIntegrationMappingById( - slackIntegrationMapping.getId(), - new UpdateSlackIntegrationMappingByIdRequestBody.Builder() - .boxItem(new IntegrationMappingBoxItemSlack(folder.getId())) - .build()); - assert convertToString(updatedSlackMapping.getBoxItem().getType()).equals("folder"); - assert updatedSlackMapping.getBoxItem().getId().equals(folder.getId()); - if (slackMappings.getEntries().size() > 2) { - userClient - .getIntegrationMappings() - .deleteSlackIntegrationMappingById(slackIntegrationMapping.getId()); - } - userClient.getFolders().deleteFolderById(folder.getId()); - } - - @Test - public void testTeamsIntegrationMappings() { - FolderFull folder = - client - .getFolders() - .createFolder( - new CreateFolderRequestBody( - getUuid(), new CreateFolderRequestBodyParentField("0"))); - String tenantId = "1"; - String teamId = "2"; - String partnerItemId = "3"; - String userId = getEnvVar("USER_ID"); - BoxClient userClient = getDefaultClientWithUserSubject(userId); - assertThrows( - RuntimeException.class, - () -> - userClient - .getIntegrationMappings() - .createTeamsIntegrationMapping( - new IntegrationMappingTeamsCreateRequest( - new IntegrationMappingPartnerItemTeamsCreateRequest( - IntegrationMappingPartnerItemTeamsCreateRequestTypeField.CHANNEL, - partnerItemId, - tenantId, - teamId), - new FolderReference(folder.getId())))); - assertThrows( - RuntimeException.class, - () -> userClient.getIntegrationMappings().getTeamsIntegrationMapping()); - String integrationMappingId = "123456"; - assertThrows( - RuntimeException.class, - () -> - userClient - .getIntegrationMappings() - .updateTeamsIntegrationMappingById( - integrationMappingId, - new UpdateTeamsIntegrationMappingByIdRequestBody.Builder() - .boxItem(new FolderReference("1234567")) - .build())); - assertThrows( - RuntimeException.class, - () -> - userClient - .getIntegrationMappings() - .deleteTeamsIntegrationMappingById(integrationMappingId)); - client.getFolders().deleteFolderById(folder.getId()); - } -} From e39855817bfef3a4652c68372d2ac0ed511ebb6b Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 20 Jan 2026 15:56:18 +0100 Subject: [PATCH 077/148] test: Remove `box.com` domain from tests (box/box-codegen#914) (#1685) --- .codegen.json | 2 +- .../java/com/box/sdkgen/shieldlists/ShieldListsITest.java | 2 +- .../java/com/box/sdkgen/signrequests/SignRequestsITest.java | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.codegen.json b/.codegen.json index e3c00419d..2863d0164 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "06ab9c3", "specHash": "425a724", "version": "10.4.0" } +{ "engineHash": "3e11b6f", "specHash": "425a724", "version": "10.4.0" } diff --git a/src/test/java/com/box/sdkgen/shieldlists/ShieldListsITest.java b/src/test/java/com/box/sdkgen/shieldlists/ShieldListsITest.java index ee7984dce..119ce87a9 100644 --- a/src/test/java/com/box/sdkgen/shieldlists/ShieldListsITest.java +++ b/src/test/java/com/box/sdkgen/shieldlists/ShieldListsITest.java @@ -61,7 +61,7 @@ public void testCreateGetUpdateDeleteShieldList() { new ShieldListsCreateV2025R0.Builder( shieldListContentEmailName, new ShieldListContentEmailV2025R0.Builder( - Arrays.asList("test@box.com", "test@example.com")) + Arrays.asList("test@boxdemo.com", "test@example.com")) .type(ShieldListContentEmailV2025R0TypeField.EMAIL) .build()) .description("A list of things that are shielded") diff --git a/src/test/java/com/box/sdkgen/signrequests/SignRequestsITest.java b/src/test/java/com/box/sdkgen/signrequests/SignRequestsITest.java index a0ab3d6c9..da330468c 100644 --- a/src/test/java/com/box/sdkgen/signrequests/SignRequestsITest.java +++ b/src/test/java/com/box/sdkgen/signrequests/SignRequestsITest.java @@ -29,7 +29,7 @@ public class SignRequestsITest { @Test public void testCreateGetCancelAndListSignRequest() { - String signerEmail = String.join("", getUuid(), "@box.com"); + String signerEmail = String.join("", getUuid(), "@boxdemo.com"); FileFull fileToSign = uploadNewFile(); FolderFull destinationFolder = createNewFolder(); SignRequest createdSignRequest = @@ -124,8 +124,8 @@ assert dateToString(createdSignRequest.getPrefillTags().get(0).getDateValue()) @Test public void testCreateSignRequestWithSignerGroupId() { - String signer1Email = String.join("", getUuid(), "@box.com"); - String signer2Email = String.join("", getUuid(), "@box.com"); + String signer1Email = String.join("", getUuid(), "@boxdemo.com"); + String signer2Email = String.join("", getUuid(), "@boxdemo.com"); FileFull fileToSign = uploadNewFile(); FolderFull destinationFolder = createNewFolder(); SignRequest createdSignRequest = From 215c0f3cce4042332373eec66b1695ed958f1f3b Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Fri, 23 Jan 2026 13:07:26 +0100 Subject: [PATCH 078/148] feat: Add watermarking permissions and sources information (box/box-openapi#579) (#1688) --- .codegen.json | 2 +- .../filefull/FileFullPermissionsField.java | 103 +++++++++++++++++- .../filefull/FileFullWatermarkInfoField.java | 52 ++++++++- .../FolderFullPermissionsField.java | 78 ++++++++++++- .../FolderFullWatermarkInfoField.java | 52 ++++++++- 5 files changed, 276 insertions(+), 11 deletions(-) diff --git a/.codegen.json b/.codegen.json index 2863d0164..89af8ed93 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "3e11b6f", "specHash": "425a724", "version": "10.4.0" } +{ "engineHash": "3e11b6f", "specHash": "4beaa19", "version": "10.4.0" } diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullPermissionsField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullPermissionsField.java index d8611a030..44774352a 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullPermissionsField.java +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullPermissionsField.java @@ -1,5 +1,6 @@ package com.box.sdkgen.schemas.filefull; +import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; @@ -59,6 +60,10 @@ public class FileFullPermissionsField extends SerializableObject { @JsonProperty("can_view_annotations_self") protected final boolean canViewAnnotationsSelf; + /** Specifies if the user can apply a watermark to this file. */ + @JsonProperty("can_apply_watermark") + protected Boolean canApplyWatermark; + public FileFullPermissionsField( @JsonProperty("can_delete") boolean canDelete, @JsonProperty("can_download") boolean canDownload, @@ -87,6 +92,24 @@ public FileFullPermissionsField( this.canViewAnnotationsSelf = canViewAnnotationsSelf; } + protected FileFullPermissionsField(Builder builder) { + super(); + this.canDelete = builder.canDelete; + this.canDownload = builder.canDownload; + this.canInviteCollaborator = builder.canInviteCollaborator; + this.canRename = builder.canRename; + this.canSetShareAccess = builder.canSetShareAccess; + this.canShare = builder.canShare; + this.canAnnotate = builder.canAnnotate; + this.canComment = builder.canComment; + this.canPreview = builder.canPreview; + this.canUpload = builder.canUpload; + this.canViewAnnotationsAll = builder.canViewAnnotationsAll; + this.canViewAnnotationsSelf = builder.canViewAnnotationsSelf; + this.canApplyWatermark = builder.canApplyWatermark; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + public boolean getCanDelete() { return canDelete; } @@ -135,6 +158,10 @@ public boolean getCanViewAnnotationsSelf() { return canViewAnnotationsSelf; } + public Boolean getCanApplyWatermark() { + return canApplyWatermark; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -155,7 +182,8 @@ public boolean equals(Object o) { && Objects.equals(canPreview, casted.canPreview) && Objects.equals(canUpload, casted.canUpload) && Objects.equals(canViewAnnotationsAll, casted.canViewAnnotationsAll) - && Objects.equals(canViewAnnotationsSelf, casted.canViewAnnotationsSelf); + && Objects.equals(canViewAnnotationsSelf, casted.canViewAnnotationsSelf) + && Objects.equals(canApplyWatermark, casted.canApplyWatermark); } @Override @@ -172,7 +200,8 @@ public int hashCode() { canPreview, canUpload, canViewAnnotationsAll, - canViewAnnotationsSelf); + canViewAnnotationsSelf, + canApplyWatermark); } @Override @@ -225,6 +254,76 @@ public String toString() { + "canViewAnnotationsSelf='" + canViewAnnotationsSelf + '\'' + + ", " + + "canApplyWatermark='" + + canApplyWatermark + + '\'' + "}"; } + + public static class Builder extends NullableFieldTracker { + + protected final boolean canDelete; + + protected final boolean canDownload; + + protected final boolean canInviteCollaborator; + + protected final boolean canRename; + + protected final boolean canSetShareAccess; + + protected final boolean canShare; + + protected final boolean canAnnotate; + + protected final boolean canComment; + + protected final boolean canPreview; + + protected final boolean canUpload; + + protected final boolean canViewAnnotationsAll; + + protected final boolean canViewAnnotationsSelf; + + protected Boolean canApplyWatermark; + + public Builder( + boolean canDelete, + boolean canDownload, + boolean canInviteCollaborator, + boolean canRename, + boolean canSetShareAccess, + boolean canShare, + boolean canAnnotate, + boolean canComment, + boolean canPreview, + boolean canUpload, + boolean canViewAnnotationsAll, + boolean canViewAnnotationsSelf) { + super(); + this.canDelete = canDelete; + this.canDownload = canDownload; + this.canInviteCollaborator = canInviteCollaborator; + this.canRename = canRename; + this.canSetShareAccess = canSetShareAccess; + this.canShare = canShare; + this.canAnnotate = canAnnotate; + this.canComment = canComment; + this.canPreview = canPreview; + this.canUpload = canUpload; + this.canViewAnnotationsAll = canViewAnnotationsAll; + this.canViewAnnotationsSelf = canViewAnnotationsSelf; + } + + public Builder canApplyWatermark(Boolean canApplyWatermark) { + this.canApplyWatermark = canApplyWatermark; + return this; + } + + public FileFullPermissionsField build() { + return new FileFullPermissionsField(this); + } + } } diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullWatermarkInfoField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullWatermarkInfoField.java index 13402d238..9945b8380 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullWatermarkInfoField.java +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullWatermarkInfoField.java @@ -13,6 +13,14 @@ public class FileFullWatermarkInfoField extends SerializableObject { @JsonProperty("is_watermarked") protected Boolean isWatermarked; + /** Specifies if the watermark is inherited from any parent folder in the hierarchy. */ + @JsonProperty("is_watermark_inherited") + protected Boolean isWatermarkInherited; + + /** Specifies if the watermark is enforced by an access policy. */ + @JsonProperty("is_watermarked_by_access_policy") + protected Boolean isWatermarkedByAccessPolicy; + public FileFullWatermarkInfoField() { super(); } @@ -20,6 +28,8 @@ public FileFullWatermarkInfoField() { protected FileFullWatermarkInfoField(Builder builder) { super(); this.isWatermarked = builder.isWatermarked; + this.isWatermarkInherited = builder.isWatermarkInherited; + this.isWatermarkedByAccessPolicy = builder.isWatermarkedByAccessPolicy; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -27,6 +37,14 @@ public Boolean getIsWatermarked() { return isWatermarked; } + public Boolean getIsWatermarkInherited() { + return isWatermarkInherited; + } + + public Boolean getIsWatermarkedByAccessPolicy() { + return isWatermarkedByAccessPolicy; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -36,28 +54,56 @@ public boolean equals(Object o) { return false; } FileFullWatermarkInfoField casted = (FileFullWatermarkInfoField) o; - return Objects.equals(isWatermarked, casted.isWatermarked); + return Objects.equals(isWatermarked, casted.isWatermarked) + && Objects.equals(isWatermarkInherited, casted.isWatermarkInherited) + && Objects.equals(isWatermarkedByAccessPolicy, casted.isWatermarkedByAccessPolicy); } @Override public int hashCode() { - return Objects.hash(isWatermarked); + return Objects.hash(isWatermarked, isWatermarkInherited, isWatermarkedByAccessPolicy); } @Override public String toString() { - return "FileFullWatermarkInfoField{" + "isWatermarked='" + isWatermarked + '\'' + "}"; + return "FileFullWatermarkInfoField{" + + "isWatermarked='" + + isWatermarked + + '\'' + + ", " + + "isWatermarkInherited='" + + isWatermarkInherited + + '\'' + + ", " + + "isWatermarkedByAccessPolicy='" + + isWatermarkedByAccessPolicy + + '\'' + + "}"; } public static class Builder extends NullableFieldTracker { protected Boolean isWatermarked; + protected Boolean isWatermarkInherited; + + protected Boolean isWatermarkedByAccessPolicy; + public Builder isWatermarked(Boolean isWatermarked) { this.isWatermarked = isWatermarked; return this; } + public Builder isWatermarkInherited(Boolean isWatermarkInherited) { + this.isWatermarkInherited = isWatermarkInherited; + return this; + } + + public Builder isWatermarkedByAccessPolicy(Boolean isWatermarkedByAccessPolicy) { + this.isWatermarkedByAccessPolicy = isWatermarkedByAccessPolicy; + return this; + } + public FileFullWatermarkInfoField build() { return new FileFullWatermarkInfoField(this); } diff --git a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullPermissionsField.java b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullPermissionsField.java index 622c729f9..8e292b294 100644 --- a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullPermissionsField.java +++ b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullPermissionsField.java @@ -1,5 +1,6 @@ package com.box.sdkgen.schemas.folderfull; +import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; @@ -39,6 +40,10 @@ public class FolderFullPermissionsField extends SerializableObject { @JsonProperty("can_upload") protected final boolean canUpload; + /** Specifies if the user can apply a watermark to this folder and its contents. */ + @JsonProperty("can_apply_watermark") + protected Boolean canApplyWatermark; + public FolderFullPermissionsField( @JsonProperty("can_delete") boolean canDelete, @JsonProperty("can_download") boolean canDownload, @@ -57,6 +62,19 @@ public FolderFullPermissionsField( this.canUpload = canUpload; } + protected FolderFullPermissionsField(Builder builder) { + super(); + this.canDelete = builder.canDelete; + this.canDownload = builder.canDownload; + this.canInviteCollaborator = builder.canInviteCollaborator; + this.canRename = builder.canRename; + this.canSetShareAccess = builder.canSetShareAccess; + this.canShare = builder.canShare; + this.canUpload = builder.canUpload; + this.canApplyWatermark = builder.canApplyWatermark; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + public boolean getCanDelete() { return canDelete; } @@ -85,6 +103,10 @@ public boolean getCanUpload() { return canUpload; } + public Boolean getCanApplyWatermark() { + return canApplyWatermark; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -100,7 +122,8 @@ public boolean equals(Object o) { && Objects.equals(canRename, casted.canRename) && Objects.equals(canSetShareAccess, casted.canSetShareAccess) && Objects.equals(canShare, casted.canShare) - && Objects.equals(canUpload, casted.canUpload); + && Objects.equals(canUpload, casted.canUpload) + && Objects.equals(canApplyWatermark, casted.canApplyWatermark); } @Override @@ -112,7 +135,8 @@ public int hashCode() { canRename, canSetShareAccess, canShare, - canUpload); + canUpload, + canApplyWatermark); } @Override @@ -145,6 +169,56 @@ public String toString() { + "canUpload='" + canUpload + '\'' + + ", " + + "canApplyWatermark='" + + canApplyWatermark + + '\'' + "}"; } + + public static class Builder extends NullableFieldTracker { + + protected final boolean canDelete; + + protected final boolean canDownload; + + protected final boolean canInviteCollaborator; + + protected final boolean canRename; + + protected final boolean canSetShareAccess; + + protected final boolean canShare; + + protected final boolean canUpload; + + protected Boolean canApplyWatermark; + + public Builder( + boolean canDelete, + boolean canDownload, + boolean canInviteCollaborator, + boolean canRename, + boolean canSetShareAccess, + boolean canShare, + boolean canUpload) { + super(); + this.canDelete = canDelete; + this.canDownload = canDownload; + this.canInviteCollaborator = canInviteCollaborator; + this.canRename = canRename; + this.canSetShareAccess = canSetShareAccess; + this.canShare = canShare; + this.canUpload = canUpload; + } + + public Builder canApplyWatermark(Boolean canApplyWatermark) { + this.canApplyWatermark = canApplyWatermark; + return this; + } + + public FolderFullPermissionsField build() { + return new FolderFullPermissionsField(this); + } + } } diff --git a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullWatermarkInfoField.java b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullWatermarkInfoField.java index b884b9654..a4cf7e8a7 100644 --- a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullWatermarkInfoField.java +++ b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullWatermarkInfoField.java @@ -13,6 +13,14 @@ public class FolderFullWatermarkInfoField extends SerializableObject { @JsonProperty("is_watermarked") protected Boolean isWatermarked; + /** Specifies if the watermark is inherited from any parent folder in the hierarchy. */ + @JsonProperty("is_watermark_inherited") + protected Boolean isWatermarkInherited; + + /** Specifies if the watermark is enforced by an access policy. */ + @JsonProperty("is_watermarked_by_access_policy") + protected Boolean isWatermarkedByAccessPolicy; + public FolderFullWatermarkInfoField() { super(); } @@ -20,6 +28,8 @@ public FolderFullWatermarkInfoField() { protected FolderFullWatermarkInfoField(Builder builder) { super(); this.isWatermarked = builder.isWatermarked; + this.isWatermarkInherited = builder.isWatermarkInherited; + this.isWatermarkedByAccessPolicy = builder.isWatermarkedByAccessPolicy; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -27,6 +37,14 @@ public Boolean getIsWatermarked() { return isWatermarked; } + public Boolean getIsWatermarkInherited() { + return isWatermarkInherited; + } + + public Boolean getIsWatermarkedByAccessPolicy() { + return isWatermarkedByAccessPolicy; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -36,28 +54,56 @@ public boolean equals(Object o) { return false; } FolderFullWatermarkInfoField casted = (FolderFullWatermarkInfoField) o; - return Objects.equals(isWatermarked, casted.isWatermarked); + return Objects.equals(isWatermarked, casted.isWatermarked) + && Objects.equals(isWatermarkInherited, casted.isWatermarkInherited) + && Objects.equals(isWatermarkedByAccessPolicy, casted.isWatermarkedByAccessPolicy); } @Override public int hashCode() { - return Objects.hash(isWatermarked); + return Objects.hash(isWatermarked, isWatermarkInherited, isWatermarkedByAccessPolicy); } @Override public String toString() { - return "FolderFullWatermarkInfoField{" + "isWatermarked='" + isWatermarked + '\'' + "}"; + return "FolderFullWatermarkInfoField{" + + "isWatermarked='" + + isWatermarked + + '\'' + + ", " + + "isWatermarkInherited='" + + isWatermarkInherited + + '\'' + + ", " + + "isWatermarkedByAccessPolicy='" + + isWatermarkedByAccessPolicy + + '\'' + + "}"; } public static class Builder extends NullableFieldTracker { protected Boolean isWatermarked; + protected Boolean isWatermarkInherited; + + protected Boolean isWatermarkedByAccessPolicy; + public Builder isWatermarked(Boolean isWatermarked) { this.isWatermarked = isWatermarked; return this; } + public Builder isWatermarkInherited(Boolean isWatermarkInherited) { + this.isWatermarkInherited = isWatermarkInherited; + return this; + } + + public Builder isWatermarkedByAccessPolicy(Boolean isWatermarkedByAccessPolicy) { + this.isWatermarkedByAccessPolicy = isWatermarkedByAccessPolicy; + return this; + } + public FolderFullWatermarkInfoField build() { return new FolderFullWatermarkInfoField(this); } From 9327febb668bef0881bd10285c56bb7b09b5735a Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Fri, 23 Jan 2026 13:17:01 +0100 Subject: [PATCH 079/148] docs: Add missing tag to API resources (box/box-openapi#580) (#1689) --- .codegen.json | 2 +- docs/authorization.md | 2 +- docs/comments.md | 2 +- docs/events.md | 4 ++-- docs/files.md | 6 +++--- docs/fileversions.md | 2 +- docs/folders.md | 10 +++++----- docs/users.md | 4 ++-- .../managers/authorization/AuthorizationManager.java | 8 ++++---- .../com/box/sdkgen/managers/events/EventsManager.java | 10 ++++++---- .../box/sdkgen/managers/folders/FoldersManager.java | 8 ++++---- .../sdkgen/managers/users/CreateUserRequestBody.java | 2 +- .../managers/users/UpdateUserByIdRequestBody.java | 2 +- .../sdkgen/schemas/realtimeserver/RealtimeServer.java | 2 +- src/main/java/com/box/sdkgen/schemas/user/User.java | 2 +- 15 files changed, 34 insertions(+), 32 deletions(-) diff --git a/.codegen.json b/.codegen.json index 89af8ed93..b7840ea83 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "3e11b6f", "specHash": "4beaa19", "version": "10.4.0" } +{ "engineHash": "3e11b6f", "specHash": "ad08e8c", "version": "10.4.0" } diff --git a/docs/authorization.md b/docs/authorization.md index b2be220ec..5356772c0 100644 --- a/docs/authorization.md +++ b/docs/authorization.md @@ -46,7 +46,7 @@ authorization code or a server-side JWT assertion. An Access Token is a string that enables Box to verify that a request belongs to an authorized session. In the normal order of operations you will begin by requesting authentication from the -[authorize](#get-authorize) endpoint and Box will send you an +[authorize](https://developer.box.com/reference/get-authorize) endpoint and Box will send you an authorization code. You will then send this code to this endpoint to exchange it for diff --git a/docs/comments.md b/docs/comments.md index 4691d323e..4572fa92d 100644 --- a/docs/comments.md +++ b/docs/comments.md @@ -165,7 +165,7 @@ This function returns a value of type `CommentFull`. Returns the newly created comment object. Not all available fields are returned by default. Use the -[fields](#param-fields) query parameter to explicitly request +[fields](#parameter-fields) query parameter to explicitly request any specific fields. diff --git a/docs/events.md b/docs/events.md index 94013cc64..c826a9814 100644 --- a/docs/events.md +++ b/docs/events.md @@ -8,7 +8,7 @@ ## Get events long poll endpoint Returns a list of real-time servers that can be used for long-polling updates -to the [event stream](#get-events). +to the [event stream](https://developer.box.com/reference/get-events). Long polling is the concept where a HTTP request is kept open until the server sends a response, then repeating the process over and over to receive @@ -23,7 +23,7 @@ URLs. Next, make a long poll request to any of the provided URLs. When an event occurs in monitored account a response with the value `new_change` will be sent. The response contains no other details as it only serves as a prompt to take further action such as sending a -request to the [events endpoint](#get-events) with the last known +request to the [events endpoint](https://developer.box.com/reference/get-events) with the last known `stream_position`. After the server sends this response it closes the connection. You must now diff --git a/docs/files.md b/docs/files.md index bcb48a240..38d3faa2f 100644 --- a/docs/files.md +++ b/docs/files.md @@ -39,7 +39,7 @@ This function returns a value of type `FileFull`. Returns a file object. Not all available fields are returned by default. Use the -[fields](#param-fields) query parameter to explicitly request +[fields](#parameter-fields) query parameter to explicitly request any specific fields. @@ -77,7 +77,7 @@ This function returns a value of type `FileFull`. Returns a file object. Not all available fields are returned by default. Use the -[fields](#param-fields) query parameter to explicitly request +[fields](#parameter-fields) query parameter to explicitly request any specific fields. @@ -148,7 +148,7 @@ This function returns a value of type `FileFull`. Returns a new file object representing the copied file. Not all available fields are returned by default. Use the -[fields](#param-fields) query parameter to explicitly request +[fields](#parameter-fields) query parameter to explicitly request any specific fields. diff --git a/docs/fileversions.md b/docs/fileversions.md index 3f9153904..9bbdd3a01 100644 --- a/docs/fileversions.md +++ b/docs/fileversions.md @@ -76,7 +76,7 @@ This function returns a value of type `FileVersionFull`. Returns a specific version of a file. Not all available fields are returned by default. Use the -[fields](#param-fields) query parameter to explicitly request +[fields](#parameter-fields) query parameter to explicitly request any specific fields. diff --git a/docs/folders.md b/docs/folders.md index 5e36f6882..2bfee2c40 100644 --- a/docs/folders.md +++ b/docs/folders.md @@ -54,7 +54,7 @@ To fetch more items within the folder, use the [Get items in a folder](https://developer.box.com/reference/get-folders-id-items)) endpoint. Not all available fields are returned by default. Use the -[fields](#param-fields) query parameter to explicitly request +[fields](#parameter-fields) query parameter to explicitly request any specific fields. @@ -92,7 +92,7 @@ This function returns a value of type `FolderFull`. Returns a folder object for the updated folder Not all available fields are returned by default. Use the -[fields](#param-fields) query parameter to explicitly request +[fields](#parameter-fields) query parameter to explicitly request any specific fields. If the user is moving folders with a large number of items in all of @@ -140,7 +140,7 @@ Retrieves a page of items in a folder. These items can be files, folders, and web links. To request more information about the folder itself, like its size, -use the [Get a folder](#get-folders-id) endpoint instead. +use the [Get a folder](https://developer.box.com/reference/get-folders-id) endpoint instead. This operation is performed by calling function `getFolderItems`. @@ -200,7 +200,7 @@ This function returns a value of type `FolderFull`. Returns a folder object. Not all available fields are returned by default. Use the -[fields](#param-fields) query parameter to explicitly request +[fields](#parameter-fields) query parameter to explicitly request any specific fields. @@ -239,7 +239,7 @@ This function returns a value of type `FolderFull`. Returns a new folder object representing the copied folder. Not all available fields are returned by default. Use the -[fields](#param-fields) query parameter to explicitly request +[fields](#parameter-fields) query parameter to explicitly request any specific fields. diff --git a/docs/users.md b/docs/users.md index ce02fe99b..efc2df4cd 100644 --- a/docs/users.md +++ b/docs/users.md @@ -154,8 +154,8 @@ This function returns a value of type `UserFull`. Returns a single user object. Not all available fields are returned by default. Use the -[fields](#param-fields) query parameter to explicitly request -any specific fields using the [fields](#get-users-id--request--fields) +[fields](#parameter-fields) query parameter to explicitly request +any specific fields using the [fields](#parameter-fields) parameter. diff --git a/src/main/java/com/box/sdkgen/managers/authorization/AuthorizationManager.java b/src/main/java/com/box/sdkgen/managers/authorization/AuthorizationManager.java index 4c7d9bcac..9ad04e021 100644 --- a/src/main/java/com/box/sdkgen/managers/authorization/AuthorizationManager.java +++ b/src/main/java/com/box/sdkgen/managers/authorization/AuthorizationManager.java @@ -90,8 +90,8 @@ public void authorizeUser(AuthorizeUserQueryParams queryParams, AuthorizeUserHea * *

    An Access Token is a string that enables Box to verify that a request belongs to an * authorized session. In the normal order of operations you will begin by requesting - * authentication from the [authorize](#get-authorize) endpoint and Box will send you an - * authorization code. + * authentication from the [authorize](https://developer.box.com/reference/get-authorize) endpoint + * and Box will send you an authorization code. * *

    You will then send this code to this endpoint to exchange it for an Access Token. The * returned Access Token can then be used to to make Box API calls. @@ -108,8 +108,8 @@ public AccessToken requestAccessToken(PostOAuth2Token requestBody) { * *

    An Access Token is a string that enables Box to verify that a request belongs to an * authorized session. In the normal order of operations you will begin by requesting - * authentication from the [authorize](#get-authorize) endpoint and Box will send you an - * authorization code. + * authentication from the [authorize](https://developer.box.com/reference/get-authorize) endpoint + * and Box will send you an authorization code. * *

    You will then send this code to this endpoint to exchange it for an Access Token. The * returned Access Token can then be used to to make Box API calls. diff --git a/src/main/java/com/box/sdkgen/managers/events/EventsManager.java b/src/main/java/com/box/sdkgen/managers/events/EventsManager.java index 979af703f..e1a6d7bed 100644 --- a/src/main/java/com/box/sdkgen/managers/events/EventsManager.java +++ b/src/main/java/com/box/sdkgen/managers/events/EventsManager.java @@ -34,7 +34,7 @@ protected EventsManager(Builder builder) { /** * Returns a list of real-time servers that can be used for long-polling updates to the [event - * stream](#get-events). + * stream](https://developer.box.com/reference/get-events). * *

    Long polling is the concept where a HTTP request is kept open until the server sends a * response, then repeating the process over and over to receive updated responses. @@ -46,7 +46,8 @@ protected EventsManager(Builder builder) { * *

    When an event occurs in monitored account a response with the value `new_change` will be * sent. The response contains no other details as it only serves as a prompt to take further - * action such as sending a request to the [events endpoint](#get-events) with the last known + * action such as sending a request to the [events + * endpoint](https://developer.box.com/reference/get-events) with the last known * `stream_position`. * *

    After the server sends this response it closes the connection. You must now repeat the long @@ -69,7 +70,7 @@ public RealtimeServers getEventsWithLongPolling() { /** * Returns a list of real-time servers that can be used for long-polling updates to the [event - * stream](#get-events). + * stream](https://developer.box.com/reference/get-events). * *

    Long polling is the concept where a HTTP request is kept open until the server sends a * response, then repeating the process over and over to receive updated responses. @@ -81,7 +82,8 @@ public RealtimeServers getEventsWithLongPolling() { * *

    When an event occurs in monitored account a response with the value `new_change` will be * sent. The response contains no other details as it only serves as a prompt to take further - * action such as sending a request to the [events endpoint](#get-events) with the last known + * action such as sending a request to the [events + * endpoint](https://developer.box.com/reference/get-events) with the last known * `stream_position`. * *

    After the server sends this response it closes the connection. You must now repeat the long diff --git a/src/main/java/com/box/sdkgen/managers/folders/FoldersManager.java b/src/main/java/com/box/sdkgen/managers/folders/FoldersManager.java index 4b65da022..8aa60cdd7 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/FoldersManager.java +++ b/src/main/java/com/box/sdkgen/managers/folders/FoldersManager.java @@ -398,7 +398,7 @@ public void deleteFolderById( * Retrieves a page of items in a folder. These items can be files, folders, and web links. * *

    To request more information about the folder itself, like its size, use the [Get a - * folder](#get-folders-id) endpoint instead. + * folder](https://developer.box.com/reference/get-folders-id) endpoint instead. * * @param folderId The unique identifier that represent a folder. *

    The ID for any folder can be determined by visiting this folder in the web application @@ -414,7 +414,7 @@ public Items getFolderItems(String folderId) { * Retrieves a page of items in a folder. These items can be files, folders, and web links. * *

    To request more information about the folder itself, like its size, use the [Get a - * folder](#get-folders-id) endpoint instead. + * folder](https://developer.box.com/reference/get-folders-id) endpoint instead. * * @param folderId The unique identifier that represent a folder. *

    The ID for any folder can be determined by visiting this folder in the web application @@ -431,7 +431,7 @@ public Items getFolderItems(String folderId, GetFolderItemsQueryParams queryPara * Retrieves a page of items in a folder. These items can be files, folders, and web links. * *

    To request more information about the folder itself, like its size, use the [Get a - * folder](#get-folders-id) endpoint instead. + * folder](https://developer.box.com/reference/get-folders-id) endpoint instead. * * @param folderId The unique identifier that represent a folder. *

    The ID for any folder can be determined by visiting this folder in the web application @@ -448,7 +448,7 @@ public Items getFolderItems(String folderId, GetFolderItemsHeaders headers) { * Retrieves a page of items in a folder. These items can be files, folders, and web links. * *

    To request more information about the folder itself, like its size, use the [Get a - * folder](#get-folders-id) endpoint instead. + * folder](https://developer.box.com/reference/get-folders-id) endpoint instead. * * @param folderId The unique identifier that represent a folder. *

    The ID for any folder can be determined by visiting this folder in the web application diff --git a/src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBody.java b/src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBody.java index 206ccf199..e1cf8fd8d 100644 --- a/src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBody.java @@ -37,7 +37,7 @@ public class CreateUserRequestBody extends SerializableObject { /** * The language of the user, formatted in modified version of the [ISO - * 639-1](/guides/api-calls/language-codes) format. + * 639-1](https://developer.box.com/guides/api-calls/language-codes) format. */ protected String language; diff --git a/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBody.java index cf2d13c0f..bac250baf 100644 --- a/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBody.java @@ -42,7 +42,7 @@ public class UpdateUserByIdRequestBody extends SerializableObject { /** * The language of the user, formatted in modified version of the [ISO - * 639-1](/guides/api-calls/language-codes) format. + * 639-1](https://developer.box.com/guides/api-calls/language-codes) format. */ protected String language; diff --git a/src/main/java/com/box/sdkgen/schemas/realtimeserver/RealtimeServer.java b/src/main/java/com/box/sdkgen/schemas/realtimeserver/RealtimeServer.java index f06cc762c..69cca1503 100644 --- a/src/main/java/com/box/sdkgen/schemas/realtimeserver/RealtimeServer.java +++ b/src/main/java/com/box/sdkgen/schemas/realtimeserver/RealtimeServer.java @@ -21,7 +21,7 @@ public class RealtimeServer extends SerializableObject { /** * The maximum number of retries this server will allow before a new long poll should be started - * by getting a [new list of server](#options-events). + * by getting a [new list of server](https://developer.box.com/reference/options-events). */ @JsonProperty("max_retries") protected String maxRetries; diff --git a/src/main/java/com/box/sdkgen/schemas/user/User.java b/src/main/java/com/box/sdkgen/schemas/user/User.java index 74c17b4e3..eaa2bf93d 100644 --- a/src/main/java/com/box/sdkgen/schemas/user/User.java +++ b/src/main/java/com/box/sdkgen/schemas/user/User.java @@ -30,7 +30,7 @@ public class User extends UserMini { /** * The language of the user, formatted in modified version of the [ISO - * 639-1](/guides/api-calls/language-codes) format. + * 639-1](https://developer.box.com/guides/api-calls/language-codes) format. */ protected String language; From f9e3d5ee3c54d074d5b5aef1c5c01599c0b8c9e9 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 27 Jan 2026 16:15:36 +0100 Subject: [PATCH 080/148] fix: Correct enum value for legal hold policy changes (box/box-openapi#581) (#1695) --- .codegen.json | 2 +- docs/legalholdpolicyassignments.md | 2 +- ...ssignmentRequestBodyAssignToTypeField.java | 2 +- .../LegalHoldPolicyAssignmentsManager.java | 6 ++- .../legalholdpolicy/LegalHoldPolicy.java | 2 +- .../LegalHoldPolicyAssignmentCountsField.java | 46 +++++++++++++++++-- 6 files changed, 51 insertions(+), 9 deletions(-) diff --git a/.codegen.json b/.codegen.json index b7840ea83..8c2a6522c 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "3e11b6f", "specHash": "ad08e8c", "version": "10.4.0" } +{ "engineHash": "f9e2519", "specHash": "f8fb08c", "version": "10.4.0" } diff --git a/docs/legalholdpolicyassignments.md b/docs/legalholdpolicyassignments.md index 0717f1c4c..592003406 100644 --- a/docs/legalholdpolicyassignments.md +++ b/docs/legalholdpolicyassignments.md @@ -38,7 +38,7 @@ Returns a list of legal hold policy assignments. ## Assign legal hold policy -Assign a legal hold to a file, file version, folder, or user. +Assign a legal hold to an item type of: file, file version, folder, user, ownership, or interactions. This operation is performed by calling function `createLegalHoldPolicyAssignment`. diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeField.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeField.java index 8a7ba7931..d52cde112 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeField.java @@ -17,7 +17,7 @@ public enum CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeField implemen FOLDER("folder"), USER("user"), OWNERSHIP("ownership"), - INTERACTION("interaction"); + INTERACTIONS("interactions"); private final String value; diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/LegalHoldPolicyAssignmentsManager.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/LegalHoldPolicyAssignmentsManager.java index 23f6368f3..e51eefc74 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/LegalHoldPolicyAssignmentsManager.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/LegalHoldPolicyAssignmentsManager.java @@ -81,7 +81,8 @@ public LegalHoldPolicyAssignments getLegalHoldPolicyAssignments( } /** - * Assign a legal hold to a file, file version, folder, or user. + * Assign a legal hold to an item type of: file, file version, folder, user, ownership, or + * interactions. * * @param requestBody Request body of createLegalHoldPolicyAssignment method */ @@ -92,7 +93,8 @@ public LegalHoldPolicyAssignment createLegalHoldPolicyAssignment( } /** - * Assign a legal hold to a file, file version, folder, or user. + * Assign a legal hold to an item type of: file, file version, folder, user, ownership, or + * interactions. * * @param requestBody Request body of createLegalHoldPolicyAssignment method * @param headers Headers of createLegalHoldPolicyAssignment method diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicy.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicy.java index 1e4762d63..5609547c1 100644 --- a/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicy.java +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicy.java @@ -35,7 +35,7 @@ public class LegalHoldPolicy extends LegalHoldPolicyMini { @JsonSerialize(using = LegalHoldPolicyStatusField.LegalHoldPolicyStatusFieldSerializer.class) protected EnumWrapper status; - /** Counts of assignments within this a legal hold policy by item type. */ + /** Counts of assignments within a legal hold policy by item type. */ @JsonProperty("assignment_counts") protected LegalHoldPolicyAssignmentCountsField assignmentCounts; diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicyAssignmentCountsField.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicyAssignmentCountsField.java index 5e58d641f..dcd851041 100644 --- a/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicyAssignmentCountsField.java +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicyAssignmentCountsField.java @@ -9,7 +9,7 @@ @JsonFilter("nullablePropertyFilter") public class LegalHoldPolicyAssignmentCountsField extends SerializableObject { - /** The number of users this policy is applied to. */ + /** The number of users this policy is applied to with the `access` type assignment. */ protected Long user; /** The number of folders this policy is applied to. */ @@ -22,6 +22,12 @@ public class LegalHoldPolicyAssignmentCountsField extends SerializableObject { @JsonProperty("file_version") protected Long fileVersion; + /** The number of users this policy is applied to with the `ownership` type assignment. */ + protected Long ownership; + + /** The number of users this policy is applied to with the `interactions` type assignment. */ + protected Long interactions; + public LegalHoldPolicyAssignmentCountsField() { super(); } @@ -32,6 +38,8 @@ protected LegalHoldPolicyAssignmentCountsField(Builder builder) { this.folder = builder.folder; this.file = builder.file; this.fileVersion = builder.fileVersion; + this.ownership = builder.ownership; + this.interactions = builder.interactions; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -51,6 +59,14 @@ public Long getFileVersion() { return fileVersion; } + public Long getOwnership() { + return ownership; + } + + public Long getInteractions() { + return interactions; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -63,12 +79,14 @@ public boolean equals(Object o) { return Objects.equals(user, casted.user) && Objects.equals(folder, casted.folder) && Objects.equals(file, casted.file) - && Objects.equals(fileVersion, casted.fileVersion); + && Objects.equals(fileVersion, casted.fileVersion) + && Objects.equals(ownership, casted.ownership) + && Objects.equals(interactions, casted.interactions); } @Override public int hashCode() { - return Objects.hash(user, folder, file, fileVersion); + return Objects.hash(user, folder, file, fileVersion, ownership, interactions); } @Override @@ -89,6 +107,14 @@ public String toString() { + "fileVersion='" + fileVersion + '\'' + + ", " + + "ownership='" + + ownership + + '\'' + + ", " + + "interactions='" + + interactions + + '\'' + "}"; } @@ -102,6 +128,10 @@ public static class Builder extends NullableFieldTracker { protected Long fileVersion; + protected Long ownership; + + protected Long interactions; + public Builder user(Long user) { this.user = user; return this; @@ -122,6 +152,16 @@ public Builder fileVersion(Long fileVersion) { return this; } + public Builder ownership(Long ownership) { + this.ownership = ownership; + return this; + } + + public Builder interactions(Long interactions) { + this.interactions = interactions; + return this; + } + public LegalHoldPolicyAssignmentCountsField build() { return new LegalHoldPolicyAssignmentCountsField(this); } From 112b9545d0ef1839d007bf215356b31e658daad8 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Fri, 30 Jan 2026 14:38:37 +0100 Subject: [PATCH 081/148] feat: add confidence scores for structured extract (box/box-openapi#582) (#1697) --- .codegen.json | 2 +- .../AiExtractStructured.java | 23 +++++++++++++++- .../AiExtractStructuredResponse.java | 26 ++++++++++++++++++- 3 files changed, 48 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index 8c2a6522c..41241aeb2 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "f9e2519", "specHash": "f8fb08c", "version": "10.4.0" } +{ "engineHash": "f9e2519", "specHash": "ccdb456", "version": "10.4.0" } diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java index 4e23ae994..582201abe 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java @@ -31,6 +31,10 @@ public class AiExtractStructured extends SerializableObject { */ protected List fields; + /** A flag to indicate whether confidence scores for every extracted field should be returned. */ + @JsonProperty("include_confidence_score") + protected Boolean includeConfidenceScore; + @JsonProperty("ai_agent") protected AiExtractStructuredAgent aiAgent; @@ -44,6 +48,7 @@ protected AiExtractStructured(Builder builder) { this.items = builder.items; this.metadataTemplate = builder.metadataTemplate; this.fields = builder.fields; + this.includeConfidenceScore = builder.includeConfidenceScore; this.aiAgent = builder.aiAgent; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -60,6 +65,10 @@ public List getFields() { return fields; } + public Boolean getIncludeConfidenceScore() { + return includeConfidenceScore; + } + public AiExtractStructuredAgent getAiAgent() { return aiAgent; } @@ -76,12 +85,13 @@ public boolean equals(Object o) { return Objects.equals(items, casted.items) && Objects.equals(metadataTemplate, casted.metadataTemplate) && Objects.equals(fields, casted.fields) + && Objects.equals(includeConfidenceScore, casted.includeConfidenceScore) && Objects.equals(aiAgent, casted.aiAgent); } @Override public int hashCode() { - return Objects.hash(items, metadataTemplate, fields, aiAgent); + return Objects.hash(items, metadataTemplate, fields, includeConfidenceScore, aiAgent); } @Override @@ -99,6 +109,10 @@ public String toString() { + fields + '\'' + ", " + + "includeConfidenceScore='" + + includeConfidenceScore + + '\'' + + ", " + "aiAgent='" + aiAgent + '\'' @@ -113,6 +127,8 @@ public static class Builder extends NullableFieldTracker { protected List fields; + protected Boolean includeConfidenceScore; + protected AiExtractStructuredAgent aiAgent; public Builder(List items) { @@ -130,6 +146,11 @@ public Builder fields(List fields) { return this; } + public Builder includeConfidenceScore(Boolean includeConfidenceScore) { + this.includeConfidenceScore = includeConfidenceScore; + return this; + } + public Builder aiAgent(AiAgentReference aiAgent) { this.aiAgent = new AiExtractStructuredAgent(aiAgent); return this; diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java index 42e94c96e..3cdc770f9 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java @@ -28,6 +28,13 @@ public class AiExtractStructuredResponse extends SerializableObject { @JsonProperty("completion_reason") protected String completionReason; + /** + * The confidence score numeric values for each extracted field as a JSON dictionary. This can be + * empty if no field could be extracted. + */ + @JsonProperty("confidence_score") + protected Map confidenceScore; + @JsonProperty("ai_agent_info") protected AiAgentInfo aiAgentInfo; @@ -44,6 +51,7 @@ protected AiExtractStructuredResponse(Builder builder) { this.answer = builder.answer; this.createdAt = builder.createdAt; this.completionReason = builder.completionReason; + this.confidenceScore = builder.confidenceScore; this.aiAgentInfo = builder.aiAgentInfo; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -60,6 +68,10 @@ public String getCompletionReason() { return completionReason; } + public Map getConfidenceScore() { + return confidenceScore; + } + public AiAgentInfo getAiAgentInfo() { return aiAgentInfo; } @@ -76,12 +88,13 @@ public boolean equals(Object o) { return Objects.equals(answer, casted.answer) && Objects.equals(createdAt, casted.createdAt) && Objects.equals(completionReason, casted.completionReason) + && Objects.equals(confidenceScore, casted.confidenceScore) && Objects.equals(aiAgentInfo, casted.aiAgentInfo); } @Override public int hashCode() { - return Objects.hash(answer, createdAt, completionReason, aiAgentInfo); + return Objects.hash(answer, createdAt, completionReason, confidenceScore, aiAgentInfo); } @Override @@ -99,6 +112,10 @@ public String toString() { + completionReason + '\'' + ", " + + "confidenceScore='" + + confidenceScore + + '\'' + + ", " + "aiAgentInfo='" + aiAgentInfo + '\'' @@ -113,6 +130,8 @@ public static class Builder extends NullableFieldTracker { protected String completionReason; + protected Map confidenceScore; + protected AiAgentInfo aiAgentInfo; public Builder(Map answer, OffsetDateTime createdAt) { @@ -126,6 +145,11 @@ public Builder completionReason(String completionReason) { return this; } + public Builder confidenceScore(Map confidenceScore) { + this.confidenceScore = confidenceScore; + return this; + } + public Builder aiAgentInfo(AiAgentInfo aiAgentInfo) { this.aiAgentInfo = aiAgentInfo; return this; From fd97aae10f73a2379372b5f72f38748b42ea16ee Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Fri, 30 Jan 2026 14:42:20 +0100 Subject: [PATCH 082/148] test: test AI confidence score (box/box-codegen#919) (#1699) Co-authored-by: box-sdk-build --- .codegen.json | 2 +- docs/ai.md | 2 +- src/test/java/com/box/sdkgen/ai/AiITest.java | 12 ++++++++++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/.codegen.json b/.codegen.json index 41241aeb2..49ca5c829 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "f9e2519", "specHash": "ccdb456", "version": "10.4.0" } +{ "engineHash": "b181eba", "specHash": "ccdb456", "version": "10.4.0" } diff --git a/docs/ai.md b/docs/ai.md index cb2746275..157ed87c8 100644 --- a/docs/ai.md +++ b/docs/ai.md @@ -149,7 +149,7 @@ See the endpoint docs at ``` -client.getAi().createAiExtractStructured(new AiExtractStructured.Builder(Arrays.asList(new AiItemBase(file.getId()))).fields(Arrays.asList(new AiExtractStructuredFieldsField.Builder("firstName").description("Person first name").displayName("First name").prompt("What is the your first name?").type("string").build(), new AiExtractStructuredFieldsField.Builder("lastName").description("Person last name").displayName("Last name").prompt("What is the your last name?").type("string").build(), new AiExtractStructuredFieldsField.Builder("dateOfBirth").description("Person date of birth").displayName("Birth date").prompt("What is the date of your birth?").type("date").build(), new AiExtractStructuredFieldsField.Builder("age").description("Person age").displayName("Age").prompt("How old are you?").type("float").build(), new AiExtractStructuredFieldsField.Builder("hobby").description("Person hobby").displayName("Hobby").prompt("What is your hobby?").type("multiSelect").options(Arrays.asList(new AiExtractStructuredFieldsOptionsField("guitar"), new AiExtractStructuredFieldsOptionsField("books"))).build())).aiAgent(aiExtractStructuredAgentBasicTextConfig).build()) +client.getAi().createAiExtractStructured(new AiExtractStructured.Builder(Arrays.asList(new AiItemBase(file.getId()))).fields(Arrays.asList(new AiExtractStructuredFieldsField.Builder("firstName").description("Person first name").displayName("First name").prompt("What is the your first name?").type("string").build(), new AiExtractStructuredFieldsField.Builder("lastName").description("Person last name").displayName("Last name").prompt("What is the your last name?").type("string").build(), new AiExtractStructuredFieldsField.Builder("dateOfBirth").description("Person date of birth").displayName("Birth date").prompt("What is the date of your birth?").type("date").build(), new AiExtractStructuredFieldsField.Builder("age").description("Person age").displayName("Age").prompt("How old are you?").type("float").build(), new AiExtractStructuredFieldsField.Builder("hobby").description("Person hobby").displayName("Hobby").prompt("What is your hobby?").type("multiSelect").options(Arrays.asList(new AiExtractStructuredFieldsOptionsField("guitar"), new AiExtractStructuredFieldsOptionsField("books"))).build())).includeConfidenceScore(true).aiAgent(aiExtractStructuredAgentBasicTextConfig).build()) ``` ### Arguments diff --git a/src/test/java/com/box/sdkgen/ai/AiITest.java b/src/test/java/com/box/sdkgen/ai/AiITest.java index dbfbe8533..892e21d9e 100644 --- a/src/test/java/com/box/sdkgen/ai/AiITest.java +++ b/src/test/java/com/box/sdkgen/ai/AiITest.java @@ -261,7 +261,10 @@ public void testAiExtractStructuredWithFields() { String.join("", getUuid(), ".txt"), new UploadFileRequestBodyAttributesParentField("0")), stringToByteStream( - "My name is John Doe. I was born in 4th July 1990. I am 34 years old. My hobby is guitar."))); + String.join( + "", + "My name is John Doe. I was born in 4th July 1990. I am 34 years old. My hobby is guitar. My UUID is ", + getUuid())))); FileFull file = uploadedFiles.getEntries().get(0); delayInSeconds(5); AiExtractStructuredResponse response = @@ -305,8 +308,10 @@ public void testAiExtractStructuredWithFields() { new AiExtractStructuredFieldsOptionsField("guitar"), new AiExtractStructuredFieldsOptionsField("books"))) .build())) + .includeConfidenceScore(true) .aiAgent(aiExtractStructuredAgentBasicTextConfig) .build()); + assert !(response.getConfidenceScore() == null); assert convertToString(response.getAnswer().get("hobby")) .equals(convertToString(Arrays.asList("guitar"))); assert convertToString(response.getAnswer().get("firstName")).equals("John"); @@ -328,7 +333,10 @@ public void testAiExtractStructuredWithMetadataTemplate() { String.join("", getUuid(), ".txt"), new UploadFileRequestBodyAttributesParentField("0")), stringToByteStream( - "My name is John Doe. I was born in 4th July 1990. I am 34 years old. My hobby is guitar."))); + String.join( + "", + "My name is John Doe. I was born in 4th July 1990. I am 34 years old. My hobby is guitar. My UUID is ", + getUuid())))); FileFull file = uploadedFiles.getEntries().get(0); delayInSeconds(5); String templateKey = String.join("", "key", getUuid()); From 749e3bf8756fe723c5e22296f322665f6055f1b1 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Fri, 30 Jan 2026 14:46:16 +0100 Subject: [PATCH 083/148] docs: Link configuration docs in Readme (box/box-codegen#917) (#1701) Co-authored-by: box-sdk-build --- .codegen.json | 2 +- docs/README.md | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.codegen.json b/.codegen.json index 49ca5c829..e7aa5dff8 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "b181eba", "specHash": "ccdb456", "version": "10.4.0" } +{ "engineHash": "c174072", "specHash": "ccdb456", "version": "10.4.0" } diff --git a/docs/README.md b/docs/README.md index 308c5699b..fd3428891 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,6 +1,14 @@ # Documentation -## High-level Documentation +## Configuration + +This section covers the documentation required to get up and running with the SDK, including configuration, authentication, and client initialization for making API calls. + +* [Configuration](Configuration.md) +* [Authentication](Authentication.md) +* [Client](Client.md) + +## Box API Usage General explanations of the available functionality and examples of how to use the SDK are available by topic: From ed2664d1e732c060f059df1905183dd651dfe047 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 3 Feb 2026 10:21:19 +0100 Subject: [PATCH 084/148] docs: Adjust docs filenames to language convention (box/box-codegen#921) (#1704) --- .codegen.json | 2 +- README.md | 2 +- docs/README.md | 6 +++--- docs/{Authentication.md => authentication.md} | 0 docs/{Client.md => client.md} | 0 docs/{Configuration.md => configuration.md} | 0 docs/{EventStream.md => eventstream.md} | 0 7 files changed, 5 insertions(+), 5 deletions(-) rename docs/{Authentication.md => authentication.md} (100%) rename docs/{Client.md => client.md} (100%) rename docs/{Configuration.md => configuration.md} (100%) rename docs/{EventStream.md => eventstream.md} (100%) diff --git a/.codegen.json b/.codegen.json index e7aa5dff8..da9eed8a7 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "c174072", "specHash": "ccdb456", "version": "10.4.0" } +{ "engineHash": "29cb063", "specHash": "ccdb456", "version": "10.4.0" } diff --git a/README.md b/README.md index 871388684..5e4755822 100644 --- a/README.md +++ b/README.md @@ -133,7 +133,7 @@ Box Java SDK v10 supports multiple authentication methods including Developer To Client Credentials Grant, and JSON Web Token (JWT). You can find detailed instructions and example code for each authentication method in -[Authentication](./docs/Authentication.md) document. +[Authentication](./docs/authentication.md) document. # Documentation diff --git a/docs/README.md b/docs/README.md index fd3428891..0b0f89473 100644 --- a/docs/README.md +++ b/docs/README.md @@ -4,9 +4,9 @@ This section covers the documentation required to get up and running with the SDK, including configuration, authentication, and client initialization for making API calls. -* [Configuration](Configuration.md) -* [Authentication](Authentication.md) -* [Client](Client.md) +* [Configuration](configuration.md) +* [Authentication](authentication.md) +* [Client](client.md) ## Box API Usage diff --git a/docs/Authentication.md b/docs/authentication.md similarity index 100% rename from docs/Authentication.md rename to docs/authentication.md diff --git a/docs/Client.md b/docs/client.md similarity index 100% rename from docs/Client.md rename to docs/client.md diff --git a/docs/Configuration.md b/docs/configuration.md similarity index 100% rename from docs/Configuration.md rename to docs/configuration.md diff --git a/docs/EventStream.md b/docs/eventstream.md similarity index 100% rename from docs/EventStream.md rename to docs/eventstream.md From 0a9dbe3bebb618a0a33c53cd1e9a90582c0504e2 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 10 Feb 2026 18:27:58 +0100 Subject: [PATCH 085/148] fix: Move assigning default values from builder constructor to `build()` method (box/box-codegen#922) (#1716) --- .codegen.json | 2 +- .../com/box/sdkgen/box/ccgauth/CCGConfig.java | 4 ++- .../BoxDeveloperTokenAuth.java | 4 ++- .../com/box/sdkgen/box/jwtauth/JWTConfig.java | 12 +++++-- .../com/box/sdkgen/box/oauth/OAuthConfig.java | 4 ++- .../java/com/box/sdkgen/client/BoxClient.java | 4 ++- .../com/box/sdkgen/managers/ai/AiManager.java | 7 +++-- .../managers/ai/CreateAiAskHeaders.java | 7 +++-- .../managers/ai/CreateAiExtractHeaders.java | 7 +++-- .../ai/CreateAiExtractStructuredHeaders.java | 7 +++-- .../managers/ai/CreateAiTextGenHeaders.java | 7 +++-- .../ai/GetAiAgentDefaultConfigHeaders.java | 7 +++-- .../managers/aistudio/AiStudioManager.java | 7 +++-- .../aistudio/CreateAiAgentHeaders.java | 7 +++-- .../aistudio/DeleteAiAgentByIdHeaders.java | 7 +++-- .../aistudio/GetAiAgentByIdHeaders.java | 7 +++-- .../managers/aistudio/GetAiAgentsHeaders.java | 7 +++-- .../aistudio/UpdateAiAgentByIdHeaders.java | 7 +++-- .../AppItemAssociationsManager.java | 7 +++-- .../GetFileAppItemAssociationsHeaders.java | 7 +++-- .../GetFolderAppItemAssociationsHeaders.java | 7 +++-- .../managers/archives/ArchivesManager.java | 7 +++-- .../archives/CreateArchiveV2025R0Headers.java | 11 ++++--- .../DeleteArchiveByIdV2025R0Headers.java | 11 ++++--- .../archives/GetArchivesV2025R0Headers.java | 11 ++++--- .../UpdateArchiveByIdV2025R0Headers.java | 11 ++++--- .../authorization/AuthorizationManager.java | 7 +++-- .../authorization/AuthorizeUserHeaders.java | 7 +++-- .../RefreshAccessTokenHeaders.java | 7 +++-- .../RequestAccessTokenHeaders.java | 7 +++-- .../RevokeAccessTokenHeaders.java | 7 +++-- .../managers/avatars/AvatarsManager.java | 7 +++-- .../avatars/CreateUserAvatarHeaders.java | 7 +++-- .../avatars/DeleteUserAvatarHeaders.java | 7 +++-- .../avatars/GetUserAvatarHeaders.java | 7 +++-- .../chunkeduploads/ChunkedUploadsManager.java | 7 +++-- ...teFileUploadSessionCommitByUrlHeaders.java | 4 ++- .../CreateFileUploadSessionCommitHeaders.java | 4 ++- ...leUploadSessionForExistingFileHeaders.java | 7 +++-- .../CreateFileUploadSessionHeaders.java | 7 +++-- .../DeleteFileUploadSessionByIdHeaders.java | 7 +++-- .../DeleteFileUploadSessionByUrlHeaders.java | 7 +++-- .../GetFileUploadSessionByIdHeaders.java | 7 +++-- .../GetFileUploadSessionByUrlHeaders.java | 7 +++-- ...GetFileUploadSessionPartsByUrlHeaders.java | 7 +++-- .../GetFileUploadSessionPartsHeaders.java | 7 +++-- .../UploadFilePartByUrlHeaders.java | 4 ++- .../chunkeduploads/UploadFilePartHeaders.java | 4 ++- .../AddClassificationHeaders.java | 7 +++-- .../AddClassificationRequestBody.java | 16 ++++++---- .../ClassificationsManager.java | 7 +++-- .../CreateClassificationTemplateHeaders.java | 7 +++-- ...eateClassificationTemplateRequestBody.java | 26 ++++++++++------ ...icationTemplateRequestBodyFieldsField.java | 26 ++++++++++------ .../GetClassificationTemplateHeaders.java | 7 +++-- .../UpdateClassificationHeaders.java | 7 +++-- .../UpdateClassificationRequestBody.java | 16 ++++++---- .../CollaborationAllowlistEntriesManager.java | 7 +++-- ...ateCollaborationWhitelistEntryHeaders.java | 7 +++-- ...ollaborationWhitelistEntryByIdHeaders.java | 7 +++-- ...tCollaborationWhitelistEntriesHeaders.java | 7 +++-- ...ollaborationWhitelistEntryByIdHeaders.java | 7 +++-- ...borationAllowlistExemptTargetsManager.java | 7 +++-- ...aborationWhitelistExemptTargetHeaders.java | 7 +++-- ...ationWhitelistExemptTargetByIdHeaders.java | 7 +++-- ...ationWhitelistExemptTargetByIdHeaders.java | 7 +++-- ...borationWhitelistExemptTargetsHeaders.java | 7 +++-- .../collections/CollectionsManager.java | 7 +++-- .../collections/GetCollectionByIdHeaders.java | 7 +++-- .../GetCollectionItemsHeaders.java | 7 +++-- .../collections/GetCollectionsHeaders.java | 7 +++-- .../managers/comments/CommentsManager.java | 7 +++-- .../comments/CreateCommentHeaders.java | 7 +++-- .../comments/DeleteCommentByIdHeaders.java | 7 +++-- .../comments/GetCommentByIdHeaders.java | 7 +++-- .../comments/GetFileCommentsHeaders.java | 7 +++-- .../comments/UpdateCommentByIdHeaders.java | 7 +++-- .../DeleteDevicePinnerByIdHeaders.java | 7 +++-- .../devicepinners/DevicePinnersManager.java | 7 +++-- .../GetDevicePinnerByIdHeaders.java | 7 +++-- .../GetEnterpriseDevicePinnersHeaders.java | 7 +++-- .../CreateDocgenBatchV2025R0Headers.java | 11 ++++--- .../sdkgen/managers/docgen/DocgenManager.java | 7 +++-- .../GetDocgenBatchJobByIdV2025R0Headers.java | 11 ++++--- .../GetDocgenJobByIdV2025R0Headers.java | 11 ++++--- .../docgen/GetDocgenJobsV2025R0Headers.java | 11 ++++--- .../CreateDocgenTemplateV2025R0Headers.java | 11 ++++--- ...eleteDocgenTemplateByIdV2025R0Headers.java | 11 ++++--- .../docgentemplate/DocgenTemplateManager.java | 7 +++-- .../GetDocgenTemplateByIdV2025R0Headers.java | 11 ++++--- ...etDocgenTemplateJobByIdV2025R0Headers.java | 11 ++++--- .../GetDocgenTemplateTagsV2025R0Headers.java | 11 ++++--- .../GetDocgenTemplatesV2025R0Headers.java | 11 ++++--- .../downloads/DownloadFileHeaders.java | 7 +++-- .../DownloadFileToOutputStreamHeaders.java | 7 +++-- .../managers/downloads/DownloadsManager.java | 7 +++-- .../downloads/GetDownloadFileUrlHeaders.java | 7 +++-- .../CreateUserEmailAliasHeaders.java | 7 +++-- .../DeleteUserEmailAliasByIdHeaders.java | 7 +++-- .../emailaliases/EmailAliasesManager.java | 7 +++-- .../GetUserEmailAliasesHeaders.java | 7 +++-- .../EnterpriseConfigurationsManager.java | 7 +++-- ...rpriseConfigurationByIdV2025R0Headers.java | 11 ++++--- .../sdkgen/managers/events/EventsManager.java | 7 +++-- .../events/GetEventStreamHeaders.java | 7 +++-- .../managers/events/GetEventsHeaders.java | 7 +++-- .../GetEventsWithLongPollingHeaders.java | 7 +++-- .../externalusers/ExternalUsersManager.java | 7 +++-- ...obToDeleteExternalUsersV2025R0Headers.java | 11 ++++--- .../AddClassificationToFileHeaders.java | 7 +++-- .../DeleteClassificationFromFileHeaders.java | 7 +++-- .../FileClassificationsManager.java | 7 +++-- .../GetClassificationOnFileHeaders.java | 7 +++-- .../UpdateClassificationOnFileHeaders.java | 7 +++-- ...UpdateClassificationOnFileRequestBody.java | 16 ++++++---- .../CreateFileMetadataByIdHeaders.java | 7 +++-- .../DeleteFileMetadataByIdHeaders.java | 7 +++-- .../filemetadata/FileMetadataManager.java | 7 +++-- .../GetFileMetadataByIdHeaders.java | 7 +++-- .../filemetadata/GetFileMetadataHeaders.java | 7 +++-- .../UpdateFileMetadataByIdHeaders.java | 7 +++-- .../CreateFileRequestCopyHeaders.java | 7 +++-- .../DeleteFileRequestByIdHeaders.java | 7 +++-- .../filerequests/FileRequestsManager.java | 7 +++-- .../GetFileRequestByIdHeaders.java | 7 +++-- .../UpdateFileRequestByIdHeaders.java | 7 +++-- .../managers/files/CopyFileHeaders.java | 7 +++-- .../managers/files/DeleteFileByIdHeaders.java | 7 +++-- .../sdkgen/managers/files/FilesManager.java | 7 +++-- .../managers/files/GetFileByIdHeaders.java | 7 +++-- .../files/GetFileThumbnailByIdHeaders.java | 7 +++-- .../files/GetFileThumbnailUrlHeaders.java | 7 +++-- .../managers/files/UpdateFileByIdHeaders.java | 7 +++-- .../FileVersionLegalHoldsManager.java | 7 +++-- .../GetFileVersionLegalHoldByIdHeaders.java | 7 +++-- .../GetFileVersionLegalHoldsHeaders.java | 7 +++-- .../FileVersionRetentionsManager.java | 7 +++-- .../GetFileVersionRetentionByIdHeaders.java | 7 +++-- .../GetFileVersionRetentionsHeaders.java | 7 +++-- .../DeleteFileVersionByIdHeaders.java | 7 +++-- .../fileversions/FileVersionsManager.java | 7 +++-- .../GetFileVersionByIdHeaders.java | 7 +++-- .../fileversions/GetFileVersionsHeaders.java | 7 +++-- .../PromoteFileVersionHeaders.java | 7 +++-- .../UpdateFileVersionByIdHeaders.java | 7 +++-- .../DeleteFileWatermarkHeaders.java | 7 +++-- .../filewatermarks/FileWatermarksManager.java | 7 +++-- .../GetFileWatermarkHeaders.java | 7 +++-- .../UpdateFileWatermarkHeaders.java | 7 +++-- ...ileWatermarkRequestBodyWatermarkField.java | 8 +++-- .../AddClassificationToFolderHeaders.java | 7 +++-- ...DeleteClassificationFromFolderHeaders.java | 7 +++-- .../FolderClassificationsManager.java | 7 +++-- .../GetClassificationOnFolderHeaders.java | 7 +++-- .../UpdateClassificationOnFolderHeaders.java | 7 +++-- ...dateClassificationOnFolderRequestBody.java | 17 ++++++---- .../folderlocks/CreateFolderLockHeaders.java | 7 +++-- .../DeleteFolderLockByIdHeaders.java | 7 +++-- .../folderlocks/FolderLocksManager.java | 7 +++-- .../folderlocks/GetFolderLocksHeaders.java | 7 +++-- .../CreateFolderMetadataByIdHeaders.java | 7 +++-- .../DeleteFolderMetadataByIdHeaders.java | 7 +++-- .../foldermetadata/FolderMetadataManager.java | 7 +++-- .../GetFolderMetadataByIdHeaders.java | 7 +++-- .../GetFolderMetadataHeaders.java | 7 +++-- .../UpdateFolderMetadataByIdHeaders.java | 7 +++-- .../managers/folders/CopyFolderHeaders.java | 7 +++-- .../managers/folders/CreateFolderHeaders.java | 7 +++-- .../folders/DeleteFolderByIdHeaders.java | 7 +++-- .../managers/folders/FoldersManager.java | 7 +++-- .../folders/GetFolderByIdHeaders.java | 7 +++-- .../folders/GetFolderItemsHeaders.java | 7 +++-- .../folders/UpdateFolderByIdHeaders.java | 7 +++-- .../DeleteFolderWatermarkHeaders.java | 7 +++-- .../FolderWatermarksManager.java | 7 +++-- .../GetFolderWatermarkHeaders.java | 7 +++-- .../UpdateFolderWatermarkHeaders.java | 7 +++-- ...derWatermarkRequestBodyWatermarkField.java | 8 +++-- .../managers/groups/CreateGroupHeaders.java | 7 +++-- .../groups/DeleteGroupByIdHeaders.java | 7 +++-- .../managers/groups/GetGroupByIdHeaders.java | 7 +++-- .../managers/groups/GetGroupsHeaders.java | 7 +++-- .../sdkgen/managers/groups/GroupsManager.java | 7 +++-- .../groups/UpdateGroupByIdHeaders.java | 7 +++-- .../CreateHubCollaborationV2025R0Headers.java | 11 ++++--- ...eteHubCollaborationByIdV2025R0Headers.java | 11 ++++--- ...GetHubCollaborationByIdV2025R0Headers.java | 11 ++++--- .../GetHubCollaborationsV2025R0Headers.java | 11 ++++--- .../HubCollaborationsManager.java | 7 +++-- ...ateHubCollaborationByIdV2025R0Headers.java | 11 ++++--- .../hubitems/GetHubItemsV2025R0Headers.java | 11 ++++--- .../managers/hubitems/HubItemsManager.java | 7 +++-- .../ManageHubItemsV2025R0Headers.java | 11 ++++--- .../managers/hubs/CopyHubV2025R0Headers.java | 11 ++++--- .../hubs/CreateHubV2025R0Headers.java | 11 ++++--- .../hubs/DeleteHubByIdV2025R0Headers.java | 11 ++++--- .../hubs/GetEnterpriseHubsV2025R0Headers.java | 11 ++++--- .../hubs/GetHubByIdV2025R0Headers.java | 11 ++++--- .../managers/hubs/GetHubsV2025R0Headers.java | 11 ++++--- .../box/sdkgen/managers/hubs/HubsManager.java | 7 +++-- .../hubs/UpdateHubByIdV2025R0Headers.java | 11 ++++--- .../CreateSlackIntegrationMappingHeaders.java | 7 +++-- .../CreateTeamsIntegrationMappingHeaders.java | 7 +++-- ...eteSlackIntegrationMappingByIdHeaders.java | 7 +++-- ...eteTeamsIntegrationMappingByIdHeaders.java | 7 +++-- .../GetSlackIntegrationMappingHeaders.java | 7 +++-- .../GetTeamsIntegrationMappingHeaders.java | 7 +++-- .../IntegrationMappingsManager.java | 7 +++-- ...ateSlackIntegrationMappingByIdHeaders.java | 7 +++-- ...ateTeamsIntegrationMappingByIdHeaders.java | 7 +++-- .../managers/invites/CreateInviteHeaders.java | 7 +++-- .../invites/GetInviteByIdHeaders.java | 7 +++-- .../managers/invites/InvitesManager.java | 7 +++-- .../CreateLegalHoldPolicyHeaders.java | 7 +++-- .../DeleteLegalHoldPolicyByIdHeaders.java | 7 +++-- .../GetLegalHoldPoliciesHeaders.java | 7 +++-- .../GetLegalHoldPolicyByIdHeaders.java | 7 +++-- .../LegalHoldPoliciesManager.java | 7 +++-- .../UpdateLegalHoldPolicyByIdHeaders.java | 7 +++-- ...reateLegalHoldPolicyAssignmentHeaders.java | 7 +++-- ...eLegalHoldPolicyAssignmentByIdHeaders.java | 7 +++-- ...tLegalHoldPolicyAssignmentByIdHeaders.java | 7 +++-- ...HoldPolicyAssignmentFileOnHoldHeaders.java | 7 +++-- .../GetLegalHoldPolicyAssignmentsHeaders.java | 7 +++-- .../LegalHoldPolicyAssignmentsManager.java | 7 +++-- .../GetCollaborationsHeaders.java | 7 +++-- .../GetFileCollaborationsHeaders.java | 7 +++-- .../GetFolderCollaborationsHeaders.java | 7 +++-- .../GetGroupCollaborationsHeaders.java | 7 +++-- .../ListCollaborationsManager.java | 7 +++-- .../CreateGroupMembershipHeaders.java | 7 +++-- .../DeleteGroupMembershipByIdHeaders.java | 7 +++-- .../GetGroupMembershipByIdHeaders.java | 7 +++-- .../GetGroupMembershipsHeaders.java | 7 +++-- .../GetUserMembershipsHeaders.java | 7 +++-- .../memberships/MembershipsManager.java | 7 +++-- .../UpdateGroupMembershipByIdHeaders.java | 7 +++-- .../ApplyMetadataCascadePolicyHeaders.java | 7 +++-- .../CreateMetadataCascadePolicyHeaders.java | 7 +++-- ...eleteMetadataCascadePolicyByIdHeaders.java | 7 +++-- .../GetMetadataCascadePoliciesHeaders.java | 7 +++-- .../GetMetadataCascadePolicyByIdHeaders.java | 7 +++-- .../MetadataCascadePoliciesManager.java | 7 +++-- .../AddMetadataTaxonomyLevelHeaders.java | 7 +++-- .../CreateMetadataTaxonomyHeaders.java | 7 +++-- .../CreateMetadataTaxonomyLevelHeaders.java | 7 +++-- .../CreateMetadataTaxonomyNodeHeaders.java | 7 +++-- .../DeleteMetadataTaxonomyHeaders.java | 7 +++-- .../DeleteMetadataTaxonomyLevelHeaders.java | 7 +++-- .../DeleteMetadataTaxonomyNodeHeaders.java | 7 +++-- .../GetMetadataTaxonomiesHeaders.java | 7 +++-- .../GetMetadataTaxonomyByKeyHeaders.java | 7 +++-- .../GetMetadataTaxonomyNodeByIdHeaders.java | 7 +++-- .../GetMetadataTaxonomyNodesHeaders.java | 7 +++-- ...etMetadataTemplateFieldOptionsHeaders.java | 7 +++-- .../MetadataTaxonomiesManager.java | 7 +++-- .../UpdateMetadataTaxonomyHeaders.java | 7 +++-- ...pdateMetadataTaxonomyLevelByIdHeaders.java | 7 +++-- .../UpdateMetadataTaxonomyNodeHeaders.java | 7 +++-- .../CreateMetadataTemplateHeaders.java | 7 +++-- .../DeleteMetadataTemplateHeaders.java | 7 +++-- ...GetEnterpriseMetadataTemplatesHeaders.java | 7 +++-- .../GetGlobalMetadataTemplatesHeaders.java | 7 +++-- .../GetMetadataTemplateByIdHeaders.java | 7 +++-- .../GetMetadataTemplateHeaders.java | 7 +++-- ...tMetadataTemplatesByInstanceIdHeaders.java | 7 +++-- .../MetadataTemplatesManager.java | 7 +++-- .../UpdateMetadataTemplateHeaders.java | 7 +++-- .../recentitems/GetRecentItemsHeaders.java | 7 +++-- .../recentitems/RecentItemsManager.java | 7 +++-- .../CreateRetentionPolicyHeaders.java | 7 +++-- .../DeleteRetentionPolicyByIdHeaders.java | 7 +++-- .../GetRetentionPoliciesHeaders.java | 7 +++-- .../GetRetentionPolicyByIdHeaders.java | 7 +++-- .../RetentionPoliciesManager.java | 7 +++-- .../UpdateRetentionPolicyByIdHeaders.java | 7 +++-- ...reateRetentionPolicyAssignmentHeaders.java | 7 +++-- ...eRetentionPolicyAssignmentByIdHeaders.java | 7 +++-- ...UnderRetentionPolicyAssignmentHeaders.java | 7 +++-- ...tRetentionPolicyAssignmentByIdHeaders.java | 7 +++-- .../GetRetentionPolicyAssignmentsHeaders.java | 7 +++-- .../RetentionPolicyAssignmentsManager.java | 7 +++-- .../search/SearchByMetadataQueryHeaders.java | 7 +++-- .../search/SearchForContentHeaders.java | 7 +++-- .../sdkgen/managers/search/SearchManager.java | 7 +++-- .../SessionTerminationManager.java | 7 +++-- .../TerminateGroupsSessionsHeaders.java | 7 +++-- .../TerminateUsersSessionsHeaders.java | 7 +++-- .../FindAppItemForSharedLinkHeaders.java | 4 ++- .../SharedLinksAppItemsManager.java | 7 +++-- .../AddShareLinkToFileHeaders.java | 7 +++-- .../FindFileForSharedLinkHeaders.java | 4 ++- .../GetSharedLinkForFileHeaders.java | 7 +++-- .../RemoveSharedLinkFromFileHeaders.java | 7 +++-- .../SharedLinksFilesManager.java | 7 +++-- .../UpdateSharedLinkOnFileHeaders.java | 7 +++-- .../AddShareLinkToFolderHeaders.java | 7 +++-- .../FindFolderForSharedLinkHeaders.java | 4 ++- .../GetSharedLinkForFolderHeaders.java | 7 +++-- .../RemoveSharedLinkFromFolderHeaders.java | 7 +++-- .../SharedLinksFoldersManager.java | 7 +++-- .../UpdateSharedLinkOnFolderHeaders.java | 7 +++-- .../AddShareLinkToWebLinkHeaders.java | 7 +++-- .../FindWebLinkForSharedLinkHeaders.java | 4 ++- .../GetSharedLinkForWebLinkHeaders.java | 7 +++-- .../RemoveSharedLinkFromWebLinkHeaders.java | 7 +++-- .../SharedLinksWebLinksManager.java | 7 +++-- .../UpdateSharedLinkOnWebLinkHeaders.java | 7 +++-- ...ShieldInformationBarrierReportHeaders.java | 7 +++-- ...ldInformationBarrierReportByIdHeaders.java | 7 +++-- ...hieldInformationBarrierReportsHeaders.java | 7 +++-- ...hieldInformationBarrierReportsManager.java | 7 +++-- ...CreateShieldInformationBarrierHeaders.java | 7 +++-- ...etShieldInformationBarrierByIdHeaders.java | 7 +++-- .../GetShieldInformationBarriersHeaders.java | 7 +++-- .../ShieldInformationBarriersManager.java | 7 +++-- ...ShieldInformationBarrierStatusHeaders.java | 7 +++-- ...nformationBarrierSegmentMemberHeaders.java | 7 +++-- ...mationBarrierSegmentMemberByIdHeaders.java | 7 +++-- ...mationBarrierSegmentMemberByIdHeaders.java | 7 +++-- ...formationBarrierSegmentMembersHeaders.java | 7 +++-- ...formationBarrierSegmentMembersManager.java | 7 +++-- ...ationBarrierSegmentRestrictionHeaders.java | 7 +++-- ...nBarrierSegmentRestrictionRequestBody.java | 10 +++--- ...nBarrierSegmentRestrictionByIdHeaders.java | 7 +++-- ...nBarrierSegmentRestrictionByIdHeaders.java | 7 +++-- ...tionBarrierSegmentRestrictionsHeaders.java | 7 +++-- ...tionBarrierSegmentRestrictionsManager.java | 7 +++-- ...hieldInformationBarrierSegmentHeaders.java | 7 +++-- ...dInformationBarrierSegmentByIdHeaders.java | 7 +++-- ...dInformationBarrierSegmentByIdHeaders.java | 7 +++-- ...ieldInformationBarrierSegmentsHeaders.java | 7 +++-- ...ieldInformationBarrierSegmentsManager.java | 7 +++-- ...dInformationBarrierSegmentByIdHeaders.java | 7 +++-- .../CreateShieldListV2025R0Headers.java | 11 ++++--- .../DeleteShieldListByIdV2025R0Headers.java | 11 ++++--- .../GetShieldListByIdV2025R0Headers.java | 11 ++++--- .../GetShieldListsV2025R0Headers.java | 11 ++++--- .../shieldlists/ShieldListsManager.java | 7 +++-- .../UpdateShieldListByIdV2025R0Headers.java | 11 ++++--- .../CancelSignRequestHeaders.java | 7 +++-- .../CreateSignRequestHeaders.java | 7 +++-- .../GetSignRequestByIdHeaders.java | 7 +++-- .../signrequests/GetSignRequestsHeaders.java | 7 +++-- .../ResendSignRequestHeaders.java | 7 +++-- .../signrequests/SignRequestsManager.java | 7 +++-- .../GetSignTemplateByIdHeaders.java | 7 +++-- .../GetSignTemplatesHeaders.java | 7 +++-- .../signtemplates/SignTemplatesManager.java | 7 +++-- .../CreateBoxSkillCardsOnFileHeaders.java | 7 +++-- .../DeleteBoxSkillCardsFromFileHeaders.java | 7 +++-- .../skills/GetBoxSkillCardsOnFileHeaders.java | 7 +++-- .../sdkgen/managers/skills/SkillsManager.java | 7 +++-- .../UpdateAllSkillCardsOnFileHeaders.java | 7 +++-- .../UpdateBoxSkillCardsOnFileHeaders.java | 7 +++-- .../GetStoragePoliciesHeaders.java | 7 +++-- .../GetStoragePolicyByIdHeaders.java | 7 +++-- .../StoragePoliciesManager.java | 7 +++-- .../CreateStoragePolicyAssignmentHeaders.java | 7 +++-- ...signmentRequestBodyStoragePolicyField.java | 8 +++-- ...eteStoragePolicyAssignmentByIdHeaders.java | 7 +++-- ...GetStoragePolicyAssignmentByIdHeaders.java | 7 +++-- .../GetStoragePolicyAssignmentsHeaders.java | 7 +++-- .../StoragePolicyAssignmentsManager.java | 7 +++-- ...ateStoragePolicyAssignmentByIdHeaders.java | 7 +++-- ...mentByIdRequestBodyStoragePolicyField.java | 8 +++-- .../CreateTaskAssignmentHeaders.java | 7 +++-- ...ateTaskAssignmentRequestBodyTaskField.java | 8 +++-- .../DeleteTaskAssignmentByIdHeaders.java | 7 +++-- .../GetTaskAssignmentByIdHeaders.java | 7 +++-- .../GetTaskAssignmentsHeaders.java | 7 +++-- .../TaskAssignmentsManager.java | 7 +++-- .../UpdateTaskAssignmentByIdHeaders.java | 7 +++-- .../managers/tasks/CreateTaskHeaders.java | 7 +++-- .../managers/tasks/DeleteTaskByIdHeaders.java | 7 +++-- .../managers/tasks/GetFileTasksHeaders.java | 7 +++-- .../managers/tasks/GetTaskByIdHeaders.java | 7 +++-- .../sdkgen/managers/tasks/TasksManager.java | 7 +++-- .../managers/tasks/UpdateTaskByIdHeaders.java | 7 +++-- .../CreateTermsOfServiceHeaders.java | 7 +++-- .../GetTermsOfServiceByIdHeaders.java | 7 +++-- .../GetTermsOfServiceHeaders.java | 7 +++-- .../TermsOfServicesManager.java | 7 +++-- .../UpdateTermsOfServiceByIdHeaders.java | 7 +++-- ...ateTermsOfServiceStatusForUserHeaders.java | 7 +++-- ...rviceStatusForUserRequestBodyTosField.java | 8 +++-- ...viceStatusForUserRequestBodyUserField.java | 8 +++-- .../GetTermsOfServiceUserStatusesHeaders.java | 7 +++-- .../TermsOfServiceUserStatusesManager.java | 7 +++-- ...ermsOfServiceStatusForUserByIdHeaders.java | 7 +++-- .../managers/transfer/TransferManager.java | 7 +++-- .../transfer/TransferOwnedFolderHeaders.java | 7 +++-- .../DeleteTrashedFileByIdHeaders.java | 7 +++-- .../GetTrashedFileByIdHeaders.java | 7 +++-- .../RestoreFileFromTrashHeaders.java | 7 +++-- .../trashedfiles/TrashedFilesManager.java | 7 +++-- .../DeleteTrashedFolderByIdHeaders.java | 7 +++-- .../GetTrashedFolderByIdHeaders.java | 7 +++-- .../RestoreFolderFromTrashHeaders.java | 7 +++-- .../trashedfolders/TrashedFoldersManager.java | 7 +++-- .../trasheditems/GetTrashedItemsHeaders.java | 7 +++-- .../trasheditems/TrashedItemsManager.java | 7 +++-- .../DeleteTrashedWebLinkByIdHeaders.java | 7 +++-- .../GetTrashedWebLinkByIdHeaders.java | 7 +++-- .../RestoreWeblinkFromTrashHeaders.java | 7 +++-- .../TrashedWebLinksManager.java | 7 +++-- .../PreflightFileUploadCheckHeaders.java | 7 +++-- .../managers/uploads/UploadFileHeaders.java | 7 +++-- .../uploads/UploadFileVersionHeaders.java | 7 +++-- .../UploadWithPreflightCheckHeaders.java | 7 +++-- .../managers/uploads/UploadsManager.java | 7 +++-- .../CreateCollaborationHeaders.java | 7 +++-- .../DeleteCollaborationByIdHeaders.java | 7 +++-- .../GetCollaborationByIdHeaders.java | 7 +++-- .../UpdateCollaborationByIdHeaders.java | 7 +++-- .../UserCollaborationsManager.java | 7 +++-- .../managers/users/CreateUserHeaders.java | 7 +++-- .../managers/users/DeleteUserByIdHeaders.java | 7 +++-- .../managers/users/GetUserByIdHeaders.java | 7 +++-- .../managers/users/GetUserMeHeaders.java | 7 +++-- .../managers/users/GetUsersHeaders.java | 7 +++-- .../managers/users/UpdateUserByIdHeaders.java | 7 +++-- .../sdkgen/managers/users/UsersManager.java | 7 +++-- .../webhooks/CreateWebhookHeaders.java | 7 +++-- .../webhooks/DeleteWebhookByIdHeaders.java | 7 +++-- .../webhooks/GetWebhookByIdHeaders.java | 7 +++-- .../managers/webhooks/GetWebhooksHeaders.java | 7 +++-- .../webhooks/UpdateWebhookByIdHeaders.java | 7 +++-- .../managers/webhooks/WebhooksManager.java | 7 +++-- .../weblinks/CreateWebLinkHeaders.java | 7 +++-- .../weblinks/DeleteWebLinkByIdHeaders.java | 7 +++-- .../weblinks/GetWebLinkByIdHeaders.java | 7 +++-- .../weblinks/UpdateWebLinkByIdHeaders.java | 7 +++-- .../managers/weblinks/WebLinksManager.java | 7 +++-- .../workflows/GetWorkflowsHeaders.java | 7 +++-- .../workflows/StartWorkflowHeaders.java | 7 +++-- .../managers/workflows/WorkflowsManager.java | 7 +++-- .../CreateZipDownloadHeaders.java | 7 +++-- .../zipdownloads/DownloadZipHeaders.java | 7 +++-- .../GetZipDownloadContentHeaders.java | 7 +++-- .../GetZipDownloadStatusHeaders.java | 7 +++-- .../zipdownloads/ZipDownloadsManager.java | 7 +++-- .../networking/fetchoptions/FetchOptions.java | 12 +++++-- .../networking/retries/BoxRetryStrategy.java | 31 ++++++++++++------- .../sdkgen/schemas/aiagentask/AiAgentAsk.java | 4 ++- .../aiagentextract/AiAgentExtract.java | 6 ++-- .../AiAgentExtractStructured.java | 8 +++-- .../aiagentreference/AiAgentReference.java | 5 ++- .../aiagenttextgen/AiAgentTextGen.java | 6 ++-- .../sdkgen/schemas/aiitembase/AiItemBase.java | 4 ++- .../AiLlmEndpointParamsAws.java | 8 +++-- .../AiLlmEndpointParamsGoogle.java | 8 +++-- .../AiLlmEndpointParamsIbm.java | 8 +++-- .../AiLlmEndpointParamsOpenAi.java | 8 +++-- .../aistudioagentask/AiStudioAgentAsk.java | 6 ++-- .../AiStudioAgentAskResponse.java | 8 +++-- .../AiStudioAgentExtract.java | 8 +++-- .../AiStudioAgentExtractResponse.java | 8 +++-- .../AiStudioAgentTextGen.java | 8 +++-- .../AiStudioAgentTextGenResponse.java | 8 +++-- .../aitextgen/AiTextGenItemsField.java | 4 ++- .../box/sdkgen/schemas/appitem/AppItem.java | 4 ++- .../AppItemAssociation.java | 17 +++------- .../AppItemEventSource.java | 6 ++-- .../ClassificationTemplate.java | 24 ++++++++------ .../ClassificationTemplateFieldsField.java | 24 ++++++++------ .../schemas/collaboration/Collaboration.java | 4 ++- .../CollaboratorVariable.java | 14 ++++++--- ...ollaboratorVariableVariableValueField.java | 8 +++-- .../CompletionRuleVariable.java | 22 ++++++------- .../schemas/createaiagent/CreateAiAgent.java | 4 ++- .../com/box/sdkgen/schemas/file/File.java | 3 ++ .../box/sdkgen/schemas/filebase/FileBase.java | 4 ++- .../schemas/fileconflict/FileConflict.java | 3 ++ .../box/sdkgen/schemas/filefull/FileFull.java | 3 ++ .../box/sdkgen/schemas/filemini/FileMini.java | 3 ++ .../schemas/filerequest/FileRequest.java | 4 ++- .../schemas/fileversion/FileVersion.java | 4 +++ .../fileversionbase/FileVersionBase.java | 5 ++- .../fileversionfull/FileVersionFull.java | 4 +++ .../fileversionmini/FileVersionMini.java | 4 +++ .../com/box/sdkgen/schemas/folder/Folder.java | 3 ++ .../sdkgen/schemas/folderbase/FolderBase.java | 4 ++- .../sdkgen/schemas/folderfull/FolderFull.java | 3 ++ .../sdkgen/schemas/foldermini/FolderMini.java | 3 ++ .../folderreference/FolderReference.java | 4 ++- .../com/box/sdkgen/schemas/group/Group.java | 3 ++ .../sdkgen/schemas/groupbase/GroupBase.java | 4 ++- .../sdkgen/schemas/groupfull/GroupFull.java | 3 ++ .../sdkgen/schemas/groupmini/GroupMini.java | 3 ++ .../IntegrationMapping.java | 5 +++ .../IntegrationMappingBase.java | 8 +++-- .../IntegrationMappingBoxItemSlack.java | 8 +++-- .../IntegrationMappingPartnerItemSlack.java | 8 +++-- .../IntegrationMappingTeams.java | 5 +++ .../com/box/sdkgen/schemas/invite/Invite.java | 4 ++- .../keywordskillcard/KeywordSkillCard.java | 13 +++++--- .../KeywordSkillCardInvocationField.java | 8 +++-- .../KeywordSkillCardSkillField.java | 6 ++-- .../legalholdpolicy/LegalHoldPolicy.java | 5 +++ .../LegalHoldPolicyMini.java | 8 +++-- .../MetadataCascadePolicy.java | 8 +++-- .../metadatatemplate/MetadataTemplate.java | 6 ++-- .../PostOAuth2TokenRefreshAccessToken.java | 8 +++-- .../retentionpolicy/RetentionPolicy.java | 5 +++ .../RetentionPolicyAssignment.java | 8 +++-- .../RetentionPolicyBase.java | 8 +++-- .../RetentionPolicyMini.java | 5 +++ .../schemas/rolevariable/RoleVariable.java | 16 +++++----- .../schemas/searchresults/SearchResults.java | 6 ++-- .../SearchResultsWithSharedLinks.java | 8 +++-- ...ignRequestSignerInputCustomValidation.java | 8 +++-- ...SignRequestSignerInputEmailValidation.java | 8 +++-- .../SignRequestSignerInputSsnValidation.java | 8 +++-- .../SignRequestSignerInputZip4Validation.java | 8 +++-- .../SignRequestSignerInputZipValidation.java | 8 +++-- .../statusskillcard/StatusSkillCard.java | 12 ++++--- .../StatusSkillCardInvocationField.java | 8 +++-- .../StatusSkillCardSkillField.java | 6 ++-- .../schemas/storagepolicy/StoragePolicy.java | 4 +++ .../StoragePolicyAssignment.java | 8 +++-- .../storagepolicymini/StoragePolicyMini.java | 6 ++-- .../termsofservice/TermsOfService.java | 5 +++ .../TermsOfServiceBase.java | 8 +++-- .../TermsOfServiceUserStatus.java | 8 +++-- .../timelineskillcard/TimelineSkillCard.java | 14 ++++++--- .../TimelineSkillCardInvocationField.java | 8 +++-- .../TimelineSkillCardSkillField.java | 7 +++-- .../TranscriptSkillCard.java | 14 ++++++--- .../TranscriptSkillCardInvocationField.java | 8 +++-- .../TranscriptSkillCardSkillField.java | 8 +++-- .../sdkgen/schemas/trashfile/TrashFile.java | 5 +-- .../trashfilerestored/TrashFileRestored.java | 5 +-- .../schemas/trashfolder/TrashFolder.java | 5 +-- .../com/box/sdkgen/schemas/user/User.java | 3 ++ .../box/sdkgen/schemas/userbase/UserBase.java | 4 ++- .../UserCollaborations.java | 3 ++ .../box/sdkgen/schemas/userfull/UserFull.java | 3 ++ .../UserIntegrationMappings.java | 3 ++ .../box/sdkgen/schemas/usermini/UserMini.java | 3 ++ .../archivev2025r0/ArchiveV2025R0.java | 4 ++- .../DocGenBatchBaseV2025R0.java | 8 +++-- ...eRequestV2025R0DestinationFolderField.java | 8 +++-- .../DocGenJobBaseV2025R0.java | 7 +++-- .../DocGenJobFullV2025R0.java | 5 +++ .../docgenjobv2025r0/DocGenJobV2025R0.java | 5 +++ .../FileReferenceV2025R0.java | 6 ++-- .../FileVersionBaseV2025R0.java | 8 +++-- .../FolderReferenceV2025R0.java | 7 +++-- .../groupbasev2025r0/GroupBaseV2025R0.java | 4 ++- .../groupminiv2025r0/GroupMiniV2025R0.java | 3 ++ .../hubbasev2025r0/HubBaseV2025R0.java | 4 ++- ...aborationCreateRequestV2025R0HubField.java | 8 +++-- .../HubCollaborationUserV2025R0.java | 3 ++ .../HubCollaborationV2025R0.java | 8 +++-- .../v2025r0/hubv2025r0/HubV2025R0.java | 3 ++ .../ShieldListContentCountryV2025R0.java | 8 +++-- .../ShieldListContentDomainV2025R0.java | 8 +++-- .../ShieldListContentEmailV2025R0.java | 8 +++-- .../ShieldListContentIntegrationV2025R0.java | 8 +++-- .../ShieldListContentIpV2025R0.java | 8 +++-- .../ShieldListMiniV2025R0.java | 8 +++-- .../TermsOfServiceBaseV2025R0.java | 8 +++-- .../userbasev2025r0/UserBaseV2025R0.java | 4 ++- .../userminiv2025r0/UserMiniV2025R0.java | 3 ++ .../UserReferenceV2025R0.java | 6 ++-- .../WeblinkReferenceV2025R0.java | 8 +++-- .../box/sdkgen/schemas/weblink/WebLink.java | 3 ++ .../schemas/weblinkbase/WebLinkBase.java | 4 ++- .../schemas/weblinkmini/WebLinkMini.java | 3 ++ .../chunkeduploads/TestPartAccumulator.java | 8 +++-- 571 files changed, 2531 insertions(+), 1644 deletions(-) diff --git a/.codegen.json b/.codegen.json index da9eed8a7..e59cf0e8a 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "29cb063", "specHash": "ccdb456", "version": "10.4.0" } +{ "engineHash": "406023b", "specHash": "ccdb456", "version": "10.4.0" } diff --git a/src/main/java/com/box/sdkgen/box/ccgauth/CCGConfig.java b/src/main/java/com/box/sdkgen/box/ccgauth/CCGConfig.java index f80fbd5de..6b35e9dc9 100644 --- a/src/main/java/com/box/sdkgen/box/ccgauth/CCGConfig.java +++ b/src/main/java/com/box/sdkgen/box/ccgauth/CCGConfig.java @@ -75,7 +75,6 @@ public static class Builder { public Builder(String clientId, String clientSecret) { this.clientId = clientId; this.clientSecret = clientSecret; - this.tokenStorage = new InMemoryTokenStorage(); } public Builder enterpriseId(String enterpriseId) { @@ -94,6 +93,9 @@ public Builder tokenStorage(TokenStorage tokenStorage) { } public CCGConfig build() { + if (this.tokenStorage == null) { + this.tokenStorage = new InMemoryTokenStorage(); + } return new CCGConfig(this); } } diff --git a/src/main/java/com/box/sdkgen/box/developertokenauth/BoxDeveloperTokenAuth.java b/src/main/java/com/box/sdkgen/box/developertokenauth/BoxDeveloperTokenAuth.java index 9dda77468..e35a0e54d 100644 --- a/src/main/java/com/box/sdkgen/box/developertokenauth/BoxDeveloperTokenAuth.java +++ b/src/main/java/com/box/sdkgen/box/developertokenauth/BoxDeveloperTokenAuth.java @@ -171,7 +171,6 @@ public static class Builder { public Builder(String token) { this.token = token; - this.config = new DeveloperTokenConfig(); } public Builder config(DeveloperTokenConfig config) { @@ -180,6 +179,9 @@ public Builder config(DeveloperTokenConfig config) { } public BoxDeveloperTokenAuth build() { + if (this.config == null) { + this.config = new DeveloperTokenConfig(); + } return new BoxDeveloperTokenAuth(this); } } diff --git a/src/main/java/com/box/sdkgen/box/jwtauth/JWTConfig.java b/src/main/java/com/box/sdkgen/box/jwtauth/JWTConfig.java index 622010952..cc72b7804 100644 --- a/src/main/java/com/box/sdkgen/box/jwtauth/JWTConfig.java +++ b/src/main/java/com/box/sdkgen/box/jwtauth/JWTConfig.java @@ -265,9 +265,6 @@ public Builder( this.jwtKeyId = jwtKeyId; this.privateKey = privateKey; this.privateKeyPassphrase = privateKeyPassphrase; - this.algorithm = new EnumWrapper(JwtAlgorithm.RS256); - this.tokenStorage = new InMemoryTokenStorage(); - this.privateKeyDecryptor = new DefaultPrivateKeyDecryptor(); } public Builder enterpriseId(String enterpriseId) { @@ -301,6 +298,15 @@ public Builder privateKeyDecryptor(PrivateKeyDecryptor privateKeyDecryptor) { } public JWTConfig build() { + if (this.algorithm == null) { + this.algorithm = new EnumWrapper(JwtAlgorithm.RS256); + } + if (this.tokenStorage == null) { + this.tokenStorage = new InMemoryTokenStorage(); + } + if (this.privateKeyDecryptor == null) { + this.privateKeyDecryptor = new DefaultPrivateKeyDecryptor(); + } return new JWTConfig(this); } } diff --git a/src/main/java/com/box/sdkgen/box/oauth/OAuthConfig.java b/src/main/java/com/box/sdkgen/box/oauth/OAuthConfig.java index 690e85b50..53778c832 100644 --- a/src/main/java/com/box/sdkgen/box/oauth/OAuthConfig.java +++ b/src/main/java/com/box/sdkgen/box/oauth/OAuthConfig.java @@ -46,7 +46,6 @@ public static class Builder { public Builder(String clientId, String clientSecret) { this.clientId = clientId; this.clientSecret = clientSecret; - this.tokenStorage = new InMemoryTokenStorage(); } public Builder tokenStorage(TokenStorage tokenStorage) { @@ -55,6 +54,9 @@ public Builder tokenStorage(TokenStorage tokenStorage) { } public OAuthConfig build() { + if (this.tokenStorage == null) { + this.tokenStorage = new InMemoryTokenStorage(); + } return new OAuthConfig(this); } } diff --git a/src/main/java/com/box/sdkgen/client/BoxClient.java b/src/main/java/com/box/sdkgen/client/BoxClient.java index 8c3b1f25a..4ead1e87f 100644 --- a/src/main/java/com/box/sdkgen/client/BoxClient.java +++ b/src/main/java/com/box/sdkgen/client/BoxClient.java @@ -1402,7 +1402,6 @@ public static class Builder { public Builder(Authentication auth) { this.auth = auth; - this.networkSession = new NetworkSession.Builder().baseUrls(new BaseUrls()).build(); } public Builder networkSession(NetworkSession networkSession) { @@ -1411,6 +1410,9 @@ public Builder networkSession(NetworkSession networkSession) { } public BoxClient build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession.Builder().baseUrls(new BaseUrls()).build(); + } return new BoxClient(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/ai/AiManager.java b/src/main/java/com/box/sdkgen/managers/ai/AiManager.java index c1442f2aa..ee8b542dd 100644 --- a/src/main/java/com/box/sdkgen/managers/ai/AiManager.java +++ b/src/main/java/com/box/sdkgen/managers/ai/AiManager.java @@ -276,9 +276,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -291,6 +289,9 @@ public Builder networkSession(NetworkSession networkSession) { } public AiManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new AiManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/ai/CreateAiAskHeaders.java b/src/main/java/com/box/sdkgen/managers/ai/CreateAiAskHeaders.java index 065b30fad..3d2a1f253 100644 --- a/src/main/java/com/box/sdkgen/managers/ai/CreateAiAskHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/ai/CreateAiAskHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateAiAskHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateAiAskHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/ai/CreateAiExtractHeaders.java b/src/main/java/com/box/sdkgen/managers/ai/CreateAiExtractHeaders.java index 042130301..69ad1c971 100644 --- a/src/main/java/com/box/sdkgen/managers/ai/CreateAiExtractHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/ai/CreateAiExtractHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateAiExtractHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateAiExtractHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/ai/CreateAiExtractStructuredHeaders.java b/src/main/java/com/box/sdkgen/managers/ai/CreateAiExtractStructuredHeaders.java index a182f4365..e68b2d72d 100644 --- a/src/main/java/com/box/sdkgen/managers/ai/CreateAiExtractStructuredHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/ai/CreateAiExtractStructuredHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateAiExtractStructuredHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateAiExtractStructuredHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/ai/CreateAiTextGenHeaders.java b/src/main/java/com/box/sdkgen/managers/ai/CreateAiTextGenHeaders.java index 2c47e5bd1..e17dbefd6 100644 --- a/src/main/java/com/box/sdkgen/managers/ai/CreateAiTextGenHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/ai/CreateAiTextGenHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateAiTextGenHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateAiTextGenHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigHeaders.java b/src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigHeaders.java index 7e3039a0e..0d7871f9e 100644 --- a/src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetAiAgentDefaultConfigHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetAiAgentDefaultConfigHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/aistudio/AiStudioManager.java b/src/main/java/com/box/sdkgen/managers/aistudio/AiStudioManager.java index 9e9444ebf..d89f401c0 100644 --- a/src/main/java/com/box/sdkgen/managers/aistudio/AiStudioManager.java +++ b/src/main/java/com/box/sdkgen/managers/aistudio/AiStudioManager.java @@ -280,9 +280,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -295,6 +293,9 @@ public Builder networkSession(NetworkSession networkSession) { } public AiStudioManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new AiStudioManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/aistudio/CreateAiAgentHeaders.java b/src/main/java/com/box/sdkgen/managers/aistudio/CreateAiAgentHeaders.java index e9e03da30..6122d0fc0 100644 --- a/src/main/java/com/box/sdkgen/managers/aistudio/CreateAiAgentHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/aistudio/CreateAiAgentHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateAiAgentHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateAiAgentHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/aistudio/DeleteAiAgentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/aistudio/DeleteAiAgentByIdHeaders.java index 5d2cff11e..38e7bb484 100644 --- a/src/main/java/com/box/sdkgen/managers/aistudio/DeleteAiAgentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/aistudio/DeleteAiAgentByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteAiAgentByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteAiAgentByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentByIdHeaders.java index df1bcdee0..aff750b3e 100644 --- a/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetAiAgentByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetAiAgentByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentsHeaders.java b/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentsHeaders.java index d2a21601f..d9812eccb 100644 --- a/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/aistudio/GetAiAgentsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetAiAgentsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetAiAgentsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/aistudio/UpdateAiAgentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/aistudio/UpdateAiAgentByIdHeaders.java index e27da8c08..ec00cf599 100644 --- a/src/main/java/com/box/sdkgen/managers/aistudio/UpdateAiAgentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/aistudio/UpdateAiAgentByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateAiAgentByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateAiAgentByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/appitemassociations/AppItemAssociationsManager.java b/src/main/java/com/box/sdkgen/managers/appitemassociations/AppItemAssociationsManager.java index 3d24c321b..922848b68 100644 --- a/src/main/java/com/box/sdkgen/managers/appitemassociations/AppItemAssociationsManager.java +++ b/src/main/java/com/box/sdkgen/managers/appitemassociations/AppItemAssociationsManager.java @@ -244,9 +244,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -259,6 +257,9 @@ public Builder networkSession(NetworkSession networkSession) { } public AppItemAssociationsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new AppItemAssociationsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFileAppItemAssociationsHeaders.java b/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFileAppItemAssociationsHeaders.java index 808dbefc8..7ee6d0645 100644 --- a/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFileAppItemAssociationsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFileAppItemAssociationsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFileAppItemAssociationsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFileAppItemAssociationsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFolderAppItemAssociationsHeaders.java b/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFolderAppItemAssociationsHeaders.java index 6b9e90915..5942a2e75 100644 --- a/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFolderAppItemAssociationsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/appitemassociations/GetFolderAppItemAssociationsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFolderAppItemAssociationsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFolderAppItemAssociationsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/archives/ArchivesManager.java b/src/main/java/com/box/sdkgen/managers/archives/ArchivesManager.java index 698e4b45c..c49f35b7f 100644 --- a/src/main/java/com/box/sdkgen/managers/archives/ArchivesManager.java +++ b/src/main/java/com/box/sdkgen/managers/archives/ArchivesManager.java @@ -291,9 +291,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -306,6 +304,9 @@ public Builder networkSession(NetworkSession networkSession) { } public ArchivesManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new ArchivesManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/archives/CreateArchiveV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/archives/CreateArchiveV2025R0Headers.java index 919aa8f50..a41edbba2 100644 --- a/src/main/java/com/box/sdkgen/managers/archives/CreateArchiveV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/archives/CreateArchiveV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateArchiveV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateArchiveV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/archives/DeleteArchiveByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/archives/DeleteArchiveByIdV2025R0Headers.java index 97f3cac98..918a1f688 100644 --- a/src/main/java/com/box/sdkgen/managers/archives/DeleteArchiveByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/archives/DeleteArchiveByIdV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteArchiveByIdV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteArchiveByIdV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/archives/GetArchivesV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/archives/GetArchivesV2025R0Headers.java index 65009ff61..0cae80841 100644 --- a/src/main/java/com/box/sdkgen/managers/archives/GetArchivesV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/archives/GetArchivesV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public GetArchivesV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetArchivesV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/archives/UpdateArchiveByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/archives/UpdateArchiveByIdV2025R0Headers.java index ca601dda6..39c8b9ed6 100644 --- a/src/main/java/com/box/sdkgen/managers/archives/UpdateArchiveByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/archives/UpdateArchiveByIdV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateArchiveByIdV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateArchiveByIdV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/authorization/AuthorizationManager.java b/src/main/java/com/box/sdkgen/managers/authorization/AuthorizationManager.java index 9ad04e021..6ab7d2df5 100644 --- a/src/main/java/com/box/sdkgen/managers/authorization/AuthorizationManager.java +++ b/src/main/java/com/box/sdkgen/managers/authorization/AuthorizationManager.java @@ -226,9 +226,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -241,6 +239,9 @@ public Builder networkSession(NetworkSession networkSession) { } public AuthorizationManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new AuthorizationManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserHeaders.java b/src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserHeaders.java index 254338f46..5881e5b0d 100644 --- a/src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public AuthorizeUserHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new AuthorizeUserHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/authorization/RefreshAccessTokenHeaders.java b/src/main/java/com/box/sdkgen/managers/authorization/RefreshAccessTokenHeaders.java index 785ce65af..63f84ef10 100644 --- a/src/main/java/com/box/sdkgen/managers/authorization/RefreshAccessTokenHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/authorization/RefreshAccessTokenHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public RefreshAccessTokenHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new RefreshAccessTokenHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/authorization/RequestAccessTokenHeaders.java b/src/main/java/com/box/sdkgen/managers/authorization/RequestAccessTokenHeaders.java index a38befa3a..be026a63c 100644 --- a/src/main/java/com/box/sdkgen/managers/authorization/RequestAccessTokenHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/authorization/RequestAccessTokenHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public RequestAccessTokenHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new RequestAccessTokenHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/authorization/RevokeAccessTokenHeaders.java b/src/main/java/com/box/sdkgen/managers/authorization/RevokeAccessTokenHeaders.java index 87f91a86a..4b5212a1f 100644 --- a/src/main/java/com/box/sdkgen/managers/authorization/RevokeAccessTokenHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/authorization/RevokeAccessTokenHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public RevokeAccessTokenHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new RevokeAccessTokenHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/avatars/AvatarsManager.java b/src/main/java/com/box/sdkgen/managers/avatars/AvatarsManager.java index 9376c390b..07ac25533 100644 --- a/src/main/java/com/box/sdkgen/managers/avatars/AvatarsManager.java +++ b/src/main/java/com/box/sdkgen/managers/avatars/AvatarsManager.java @@ -167,9 +167,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -182,6 +180,9 @@ public Builder networkSession(NetworkSession networkSession) { } public AvatarsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new AvatarsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/avatars/CreateUserAvatarHeaders.java b/src/main/java/com/box/sdkgen/managers/avatars/CreateUserAvatarHeaders.java index 9dcc4e5ff..e6ee1b487 100644 --- a/src/main/java/com/box/sdkgen/managers/avatars/CreateUserAvatarHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/avatars/CreateUserAvatarHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateUserAvatarHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateUserAvatarHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/avatars/DeleteUserAvatarHeaders.java b/src/main/java/com/box/sdkgen/managers/avatars/DeleteUserAvatarHeaders.java index 710c59c3f..e6bc0bd47 100644 --- a/src/main/java/com/box/sdkgen/managers/avatars/DeleteUserAvatarHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/avatars/DeleteUserAvatarHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteUserAvatarHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteUserAvatarHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/avatars/GetUserAvatarHeaders.java b/src/main/java/com/box/sdkgen/managers/avatars/GetUserAvatarHeaders.java index 0f09b0de7..305011bba 100644 --- a/src/main/java/com/box/sdkgen/managers/avatars/GetUserAvatarHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/avatars/GetUserAvatarHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetUserAvatarHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetUserAvatarHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/ChunkedUploadsManager.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/ChunkedUploadsManager.java index 150ff1002..999b5fc69 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/ChunkedUploadsManager.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/ChunkedUploadsManager.java @@ -772,9 +772,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -787,6 +785,9 @@ public Builder networkSession(NetworkSession networkSession) { } public ChunkedUploadsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new ChunkedUploadsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitByUrlHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitByUrlHeaders.java index d18ebcf86..1b245e526 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitByUrlHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitByUrlHeaders.java @@ -75,7 +75,6 @@ public static class Builder { public Builder(String digest) { this.digest = digest; - this.extraHeaders = mapOf(); } public Builder ifMatch(String ifMatch) { @@ -94,6 +93,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateFileUploadSessionCommitByUrlHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateFileUploadSessionCommitByUrlHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitHeaders.java index 6eec767d6..4fb8c32e2 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionCommitHeaders.java @@ -75,7 +75,6 @@ public static class Builder { public Builder(String digest) { this.digest = digest; - this.extraHeaders = mapOf(); } public Builder ifMatch(String ifMatch) { @@ -94,6 +93,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateFileUploadSessionCommitHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateFileUploadSessionCommitHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionForExistingFileHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionForExistingFileHeaders.java index 5cb017a2e..c45e14963 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionForExistingFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionForExistingFileHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateFileUploadSessionForExistingFileHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateFileUploadSessionForExistingFileHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionHeaders.java index 0a604c127..0bc194861 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/CreateFileUploadSessionHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateFileUploadSessionHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateFileUploadSessionHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/DeleteFileUploadSessionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/DeleteFileUploadSessionByIdHeaders.java index 8869c4713..3181c2bc5 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/DeleteFileUploadSessionByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/DeleteFileUploadSessionByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteFileUploadSessionByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteFileUploadSessionByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/DeleteFileUploadSessionByUrlHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/DeleteFileUploadSessionByUrlHeaders.java index ecd33634a..ed5cdc584 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/DeleteFileUploadSessionByUrlHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/DeleteFileUploadSessionByUrlHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteFileUploadSessionByUrlHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteFileUploadSessionByUrlHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionByIdHeaders.java index d4b600174..3bd018491 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFileUploadSessionByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFileUploadSessionByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionByUrlHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionByUrlHeaders.java index 17c11a31d..547853456 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionByUrlHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionByUrlHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFileUploadSessionByUrlHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFileUploadSessionByUrlHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsByUrlHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsByUrlHeaders.java index 08715f195..81799b8c3 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsByUrlHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsByUrlHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFileUploadSessionPartsByUrlHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFileUploadSessionPartsByUrlHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsHeaders.java index 7fe58c00d..69beff3ba 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/GetFileUploadSessionPartsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFileUploadSessionPartsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFileUploadSessionPartsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/UploadFilePartByUrlHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/UploadFilePartByUrlHeaders.java index fda959762..266e958d1 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/UploadFilePartByUrlHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/UploadFilePartByUrlHeaders.java @@ -71,7 +71,6 @@ public static class Builder { public Builder(String digest, String contentRange) { this.digest = digest; this.contentRange = contentRange; - this.extraHeaders = mapOf(); } public Builder extraHeaders(Map extraHeaders) { @@ -80,6 +79,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UploadFilePartByUrlHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UploadFilePartByUrlHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/chunkeduploads/UploadFilePartHeaders.java b/src/main/java/com/box/sdkgen/managers/chunkeduploads/UploadFilePartHeaders.java index 6edd9c819..eeae2b1cf 100644 --- a/src/main/java/com/box/sdkgen/managers/chunkeduploads/UploadFilePartHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/chunkeduploads/UploadFilePartHeaders.java @@ -71,7 +71,6 @@ public static class Builder { public Builder(String digest, String contentRange) { this.digest = digest; this.contentRange = contentRange; - this.extraHeaders = mapOf(); } public Builder extraHeaders(Map extraHeaders) { @@ -80,6 +79,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UploadFilePartHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UploadFilePartHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationHeaders.java b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationHeaders.java index f3ca3e9fa..0acbc4b5e 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public AddClassificationHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new AddClassificationHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBody.java b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBody.java index d5a663c2b..2d7b115de 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBody.java @@ -114,12 +114,6 @@ public static class Builder extends NullableFieldTracker { public Builder(AddClassificationRequestBodyDataField data) { super(); this.data = data; - this.op = - new EnumWrapper( - AddClassificationRequestBodyOpField.ADDENUMOPTION); - this.fieldKey = - new EnumWrapper( - AddClassificationRequestBodyFieldKeyField.BOX__SECURITY__CLASSIFICATION__KEY); } public Builder op(AddClassificationRequestBodyOpField op) { @@ -143,6 +137,16 @@ public Builder fieldKey(EnumWrapper f } public AddClassificationRequestBody build() { + if (this.op == null) { + this.op = + new EnumWrapper( + AddClassificationRequestBodyOpField.ADDENUMOPTION); + } + if (this.fieldKey == null) { + this.fieldKey = + new EnumWrapper( + AddClassificationRequestBodyFieldKeyField.BOX__SECURITY__CLASSIFICATION__KEY); + } return new AddClassificationRequestBody(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/classifications/ClassificationsManager.java b/src/main/java/com/box/sdkgen/managers/classifications/ClassificationsManager.java index 623133566..aa68b923f 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/ClassificationsManager.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/ClassificationsManager.java @@ -223,9 +223,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -238,6 +236,9 @@ public Builder networkSession(NetworkSession networkSession) { } public ClassificationsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new ClassificationsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateHeaders.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateHeaders.java index 0dcadab5c..ea7de360a 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateClassificationTemplateHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateClassificationTemplateHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBody.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBody.java index 1d2c6e7ad..59936805c 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBody.java @@ -180,16 +180,6 @@ public static class Builder extends NullableFieldTracker { public Builder(List fields) { super(); this.fields = fields; - this.scope = - new EnumWrapper( - CreateClassificationTemplateRequestBodyScopeField.ENTERPRISE); - this.templateKey = - new EnumWrapper( - CreateClassificationTemplateRequestBodyTemplateKeyField - .SECURITYCLASSIFICATION_6VMVOCHWUWO); - this.displayName = - new EnumWrapper( - CreateClassificationTemplateRequestBodyDisplayNameField.CLASSIFICATION); } public Builder scope(CreateClassificationTemplateRequestBodyScopeField scope) { @@ -239,6 +229,22 @@ public Builder copyInstanceOnItemCopy(Boolean copyInstanceOnItemCopy) { } public CreateClassificationTemplateRequestBody build() { + if (this.scope == null) { + this.scope = + new EnumWrapper( + CreateClassificationTemplateRequestBodyScopeField.ENTERPRISE); + } + if (this.templateKey == null) { + this.templateKey = + new EnumWrapper( + CreateClassificationTemplateRequestBodyTemplateKeyField + .SECURITYCLASSIFICATION_6VMVOCHWUWO); + } + if (this.displayName == null) { + this.displayName = + new EnumWrapper( + CreateClassificationTemplateRequestBodyDisplayNameField.CLASSIFICATION); + } return new CreateClassificationTemplateRequestBody(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsField.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsField.java index a7e77fba3..f02288571 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsField.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsField.java @@ -163,16 +163,6 @@ public static class Builder extends NullableFieldTracker { public Builder(List options) { super(); this.options = options; - this.type = - new EnumWrapper( - CreateClassificationTemplateRequestBodyFieldsTypeField.ENUM); - this.key = - new EnumWrapper( - CreateClassificationTemplateRequestBodyFieldsKeyField - .BOX__SECURITY__CLASSIFICATION__KEY); - this.displayName = - new EnumWrapper( - CreateClassificationTemplateRequestBodyFieldsDisplayNameField.CLASSIFICATION); } public Builder type(CreateClassificationTemplateRequestBodyFieldsTypeField type) { @@ -215,6 +205,22 @@ public Builder hidden(Boolean hidden) { } public CreateClassificationTemplateRequestBodyFieldsField build() { + if (this.type == null) { + this.type = + new EnumWrapper( + CreateClassificationTemplateRequestBodyFieldsTypeField.ENUM); + } + if (this.key == null) { + this.key = + new EnumWrapper( + CreateClassificationTemplateRequestBodyFieldsKeyField + .BOX__SECURITY__CLASSIFICATION__KEY); + } + if (this.displayName == null) { + this.displayName = + new EnumWrapper( + CreateClassificationTemplateRequestBodyFieldsDisplayNameField.CLASSIFICATION); + } return new CreateClassificationTemplateRequestBodyFieldsField(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/classifications/GetClassificationTemplateHeaders.java b/src/main/java/com/box/sdkgen/managers/classifications/GetClassificationTemplateHeaders.java index 5ef752a24..b60948ec7 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/GetClassificationTemplateHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/GetClassificationTemplateHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetClassificationTemplateHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetClassificationTemplateHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationHeaders.java b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationHeaders.java index dac6c1019..c597a9eb6 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateClassificationHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateClassificationHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBody.java b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBody.java index 5bd73039b..1370b9889 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBody.java @@ -134,12 +134,6 @@ public Builder(String enumOptionKey, UpdateClassificationRequestBodyDataField da super(); this.enumOptionKey = enumOptionKey; this.data = data; - this.op = - new EnumWrapper( - UpdateClassificationRequestBodyOpField.EDITENUMOPTION); - this.fieldKey = - new EnumWrapper( - UpdateClassificationRequestBodyFieldKeyField.BOX__SECURITY__CLASSIFICATION__KEY); } public Builder op(UpdateClassificationRequestBodyOpField op) { @@ -163,6 +157,16 @@ public Builder fieldKey(EnumWrapper( + UpdateClassificationRequestBodyOpField.EDITENUMOPTION); + } + if (this.fieldKey == null) { + this.fieldKey = + new EnumWrapper( + UpdateClassificationRequestBodyFieldKeyField.BOX__SECURITY__CLASSIFICATION__KEY); + } return new UpdateClassificationRequestBody(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CollaborationAllowlistEntriesManager.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CollaborationAllowlistEntriesManager.java index b24566628..6bd46d1cf 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CollaborationAllowlistEntriesManager.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CollaborationAllowlistEntriesManager.java @@ -235,9 +235,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -250,6 +248,9 @@ public Builder networkSession(NetworkSession networkSession) { } public CollaborationAllowlistEntriesManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new CollaborationAllowlistEntriesManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryHeaders.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryHeaders.java index 3b9a1e12e..e2514970f 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateCollaborationWhitelistEntryHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateCollaborationWhitelistEntryHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/DeleteCollaborationWhitelistEntryByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/DeleteCollaborationWhitelistEntryByIdHeaders.java index 62c7669a2..63b381e06 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/DeleteCollaborationWhitelistEntryByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/DeleteCollaborationWhitelistEntryByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteCollaborationWhitelistEntryByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteCollaborationWhitelistEntryByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntriesHeaders.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntriesHeaders.java index 42dc23b68..d81276ac4 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntriesHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntriesHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetCollaborationWhitelistEntriesHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetCollaborationWhitelistEntriesHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntryByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntryByIdHeaders.java index c4840f31e..639e7efd1 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntryByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/GetCollaborationWhitelistEntryByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetCollaborationWhitelistEntryByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetCollaborationWhitelistEntryByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargetsManager.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargetsManager.java index 0cadfecd2..851818448 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargetsManager.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CollaborationAllowlistExemptTargetsManager.java @@ -236,9 +236,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -251,6 +249,9 @@ public Builder networkSession(NetworkSession networkSession) { } public CollaborationAllowlistExemptTargetsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new CollaborationAllowlistExemptTargetsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetHeaders.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetHeaders.java index 96e7d12b5..01d7b8512 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/CreateCollaborationWhitelistExemptTargetHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateCollaborationWhitelistExemptTargetHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateCollaborationWhitelistExemptTargetHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/DeleteCollaborationWhitelistExemptTargetByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/DeleteCollaborationWhitelistExemptTargetByIdHeaders.java index 63a9b7a41..7b260a520 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/DeleteCollaborationWhitelistExemptTargetByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/DeleteCollaborationWhitelistExemptTargetByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteCollaborationWhitelistExemptTargetByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteCollaborationWhitelistExemptTargetByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetByIdHeaders.java index 007abf104..0069dc91d 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetCollaborationWhitelistExemptTargetByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetCollaborationWhitelistExemptTargetByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetsHeaders.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetsHeaders.java index 4f78dd96a..c191f8517 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistexempttargets/GetCollaborationWhitelistExemptTargetsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetCollaborationWhitelistExemptTargetsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetCollaborationWhitelistExemptTargetsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/collections/CollectionsManager.java b/src/main/java/com/box/sdkgen/managers/collections/CollectionsManager.java index 5df9fdd66..578005ffd 100644 --- a/src/main/java/com/box/sdkgen/managers/collections/CollectionsManager.java +++ b/src/main/java/com/box/sdkgen/managers/collections/CollectionsManager.java @@ -218,9 +218,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -233,6 +231,9 @@ public Builder networkSession(NetworkSession networkSession) { } public CollectionsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new CollectionsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/collections/GetCollectionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionByIdHeaders.java index 33b8daafd..6303e0e8a 100644 --- a/src/main/java/com/box/sdkgen/managers/collections/GetCollectionByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetCollectionByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetCollectionByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/collections/GetCollectionItemsHeaders.java b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionItemsHeaders.java index cde549503..f916ec5ce 100644 --- a/src/main/java/com/box/sdkgen/managers/collections/GetCollectionItemsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionItemsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetCollectionItemsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetCollectionItemsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/collections/GetCollectionsHeaders.java b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionsHeaders.java index 6c0eeac72..106a79030 100644 --- a/src/main/java/com/box/sdkgen/managers/collections/GetCollectionsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/collections/GetCollectionsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetCollectionsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetCollectionsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/comments/CommentsManager.java b/src/main/java/com/box/sdkgen/managers/comments/CommentsManager.java index f7de8c8db..497a6d003 100644 --- a/src/main/java/com/box/sdkgen/managers/comments/CommentsManager.java +++ b/src/main/java/com/box/sdkgen/managers/comments/CommentsManager.java @@ -413,9 +413,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -428,6 +426,9 @@ public Builder networkSession(NetworkSession networkSession) { } public CommentsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new CommentsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/comments/CreateCommentHeaders.java b/src/main/java/com/box/sdkgen/managers/comments/CreateCommentHeaders.java index c86a264c1..277b7910c 100644 --- a/src/main/java/com/box/sdkgen/managers/comments/CreateCommentHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/comments/CreateCommentHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateCommentHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateCommentHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/comments/DeleteCommentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/comments/DeleteCommentByIdHeaders.java index 6763bc788..f9fb279e1 100644 --- a/src/main/java/com/box/sdkgen/managers/comments/DeleteCommentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/comments/DeleteCommentByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteCommentByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteCommentByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/comments/GetCommentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/comments/GetCommentByIdHeaders.java index 8fff207d8..145e3cc3b 100644 --- a/src/main/java/com/box/sdkgen/managers/comments/GetCommentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/comments/GetCommentByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetCommentByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetCommentByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/comments/GetFileCommentsHeaders.java b/src/main/java/com/box/sdkgen/managers/comments/GetFileCommentsHeaders.java index 054a242fd..3ff510f43 100644 --- a/src/main/java/com/box/sdkgen/managers/comments/GetFileCommentsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/comments/GetFileCommentsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFileCommentsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFileCommentsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdHeaders.java index e83ee1d73..0218a0979 100644 --- a/src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/comments/UpdateCommentByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateCommentByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateCommentByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/devicepinners/DeleteDevicePinnerByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/devicepinners/DeleteDevicePinnerByIdHeaders.java index e210fd737..e0d6d4c4f 100644 --- a/src/main/java/com/box/sdkgen/managers/devicepinners/DeleteDevicePinnerByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/devicepinners/DeleteDevicePinnerByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteDevicePinnerByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteDevicePinnerByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/devicepinners/DevicePinnersManager.java b/src/main/java/com/box/sdkgen/managers/devicepinners/DevicePinnersManager.java index a7cab0d68..d0bb1905d 100644 --- a/src/main/java/com/box/sdkgen/managers/devicepinners/DevicePinnersManager.java +++ b/src/main/java/com/box/sdkgen/managers/devicepinners/DevicePinnersManager.java @@ -204,9 +204,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -219,6 +217,9 @@ public Builder networkSession(NetworkSession networkSession) { } public DevicePinnersManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new DevicePinnersManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/devicepinners/GetDevicePinnerByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/devicepinners/GetDevicePinnerByIdHeaders.java index a1027cb1a..271b1756e 100644 --- a/src/main/java/com/box/sdkgen/managers/devicepinners/GetDevicePinnerByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/devicepinners/GetDevicePinnerByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetDevicePinnerByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetDevicePinnerByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersHeaders.java b/src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersHeaders.java index 44b1b3940..953b8bac7 100644 --- a/src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetEnterpriseDevicePinnersHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetEnterpriseDevicePinnersHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/docgen/CreateDocgenBatchV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgen/CreateDocgenBatchV2025R0Headers.java index 8a3ef96b0..1e39b2f6d 100644 --- a/src/main/java/com/box/sdkgen/managers/docgen/CreateDocgenBatchV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/docgen/CreateDocgenBatchV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateDocgenBatchV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateDocgenBatchV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/docgen/DocgenManager.java b/src/main/java/com/box/sdkgen/managers/docgen/DocgenManager.java index d33ff1505..7d7be58d3 100644 --- a/src/main/java/com/box/sdkgen/managers/docgen/DocgenManager.java +++ b/src/main/java/com/box/sdkgen/managers/docgen/DocgenManager.java @@ -268,9 +268,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -283,6 +281,9 @@ public Builder networkSession(NetworkSession networkSession) { } public DocgenManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new DocgenManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenBatchJobByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenBatchJobByIdV2025R0Headers.java index ebdc5683f..1f5f83baf 100644 --- a/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenBatchJobByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenBatchJobByIdV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public GetDocgenBatchJobByIdV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetDocgenBatchJobByIdV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobByIdV2025R0Headers.java index 8bf89d849..2fd22476f 100644 --- a/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobByIdV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public GetDocgenJobByIdV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetDocgenJobByIdV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobsV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobsV2025R0Headers.java index 60a146cd8..4c5157911 100644 --- a/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobsV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/docgen/GetDocgenJobsV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public GetDocgenJobsV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetDocgenJobsV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/CreateDocgenTemplateV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/CreateDocgenTemplateV2025R0Headers.java index 67c30b870..97651a1d4 100644 --- a/src/main/java/com/box/sdkgen/managers/docgentemplate/CreateDocgenTemplateV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/CreateDocgenTemplateV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateDocgenTemplateV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateDocgenTemplateV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/DeleteDocgenTemplateByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/DeleteDocgenTemplateByIdV2025R0Headers.java index 30f3d9929..97fb706af 100644 --- a/src/main/java/com/box/sdkgen/managers/docgentemplate/DeleteDocgenTemplateByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/DeleteDocgenTemplateByIdV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteDocgenTemplateByIdV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteDocgenTemplateByIdV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/DocgenTemplateManager.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/DocgenTemplateManager.java index 586918633..a6bc6821d 100644 --- a/src/main/java/com/box/sdkgen/managers/docgentemplate/DocgenTemplateManager.java +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/DocgenTemplateManager.java @@ -394,9 +394,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -409,6 +407,9 @@ public Builder networkSession(NetworkSession networkSession) { } public DocgenTemplateManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new DocgenTemplateManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateByIdV2025R0Headers.java index db8ca11e5..f4249c410 100644 --- a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateByIdV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public GetDocgenTemplateByIdV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetDocgenTemplateByIdV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateJobByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateJobByIdV2025R0Headers.java index 37465a73f..0a2a718e2 100644 --- a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateJobByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateJobByIdV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public GetDocgenTemplateJobByIdV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetDocgenTemplateJobByIdV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateTagsV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateTagsV2025R0Headers.java index f1ffc6101..e5c45061f 100644 --- a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateTagsV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplateTagsV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public GetDocgenTemplateTagsV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetDocgenTemplateTagsV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplatesV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplatesV2025R0Headers.java index 9b8b8376d..fb0cbb28d 100644 --- a/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplatesV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/docgentemplate/GetDocgenTemplatesV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public GetDocgenTemplatesV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetDocgenTemplatesV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileHeaders.java b/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileHeaders.java index 344da2db9..fb06c78fe 100644 --- a/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileHeaders.java @@ -60,9 +60,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder range(String range) { this.range = range; @@ -80,6 +78,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DownloadFileHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DownloadFileHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileToOutputStreamHeaders.java b/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileToOutputStreamHeaders.java index b02cf5286..b3f29ab69 100644 --- a/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileToOutputStreamHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/downloads/DownloadFileToOutputStreamHeaders.java @@ -60,9 +60,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder range(String range) { this.range = range; @@ -80,6 +78,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DownloadFileToOutputStreamHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DownloadFileToOutputStreamHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/downloads/DownloadsManager.java b/src/main/java/com/box/sdkgen/managers/downloads/DownloadsManager.java index 3eab3f8c8..1f377c4d5 100644 --- a/src/main/java/com/box/sdkgen/managers/downloads/DownloadsManager.java +++ b/src/main/java/com/box/sdkgen/managers/downloads/DownloadsManager.java @@ -263,9 +263,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -278,6 +276,9 @@ public Builder networkSession(NetworkSession networkSession) { } public DownloadsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new DownloadsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/downloads/GetDownloadFileUrlHeaders.java b/src/main/java/com/box/sdkgen/managers/downloads/GetDownloadFileUrlHeaders.java index 653f935f5..89621fb17 100644 --- a/src/main/java/com/box/sdkgen/managers/downloads/GetDownloadFileUrlHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/downloads/GetDownloadFileUrlHeaders.java @@ -60,9 +60,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder range(String range) { this.range = range; @@ -80,6 +78,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetDownloadFileUrlHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetDownloadFileUrlHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/emailaliases/CreateUserEmailAliasHeaders.java b/src/main/java/com/box/sdkgen/managers/emailaliases/CreateUserEmailAliasHeaders.java index 8e2de1b2f..4db9211b6 100644 --- a/src/main/java/com/box/sdkgen/managers/emailaliases/CreateUserEmailAliasHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/emailaliases/CreateUserEmailAliasHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateUserEmailAliasHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateUserEmailAliasHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/emailaliases/DeleteUserEmailAliasByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/emailaliases/DeleteUserEmailAliasByIdHeaders.java index c13695f5f..261226ad1 100644 --- a/src/main/java/com/box/sdkgen/managers/emailaliases/DeleteUserEmailAliasByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/emailaliases/DeleteUserEmailAliasByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteUserEmailAliasByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteUserEmailAliasByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/emailaliases/EmailAliasesManager.java b/src/main/java/com/box/sdkgen/managers/emailaliases/EmailAliasesManager.java index 8df8a3747..4ebce6cbf 100644 --- a/src/main/java/com/box/sdkgen/managers/emailaliases/EmailAliasesManager.java +++ b/src/main/java/com/box/sdkgen/managers/emailaliases/EmailAliasesManager.java @@ -168,9 +168,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -183,6 +181,9 @@ public Builder networkSession(NetworkSession networkSession) { } public EmailAliasesManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new EmailAliasesManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/emailaliases/GetUserEmailAliasesHeaders.java b/src/main/java/com/box/sdkgen/managers/emailaliases/GetUserEmailAliasesHeaders.java index c7e1cd24f..842230b4e 100644 --- a/src/main/java/com/box/sdkgen/managers/emailaliases/GetUserEmailAliasesHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/emailaliases/GetUserEmailAliasesHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetUserEmailAliasesHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetUserEmailAliasesHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/enterpriseconfigurations/EnterpriseConfigurationsManager.java b/src/main/java/com/box/sdkgen/managers/enterpriseconfigurations/EnterpriseConfigurationsManager.java index 7a30e3f5c..037ada529 100644 --- a/src/main/java/com/box/sdkgen/managers/enterpriseconfigurations/EnterpriseConfigurationsManager.java +++ b/src/main/java/com/box/sdkgen/managers/enterpriseconfigurations/EnterpriseConfigurationsManager.java @@ -94,9 +94,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -109,6 +107,9 @@ public Builder networkSession(NetworkSession networkSession) { } public EnterpriseConfigurationsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new EnterpriseConfigurationsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/enterpriseconfigurations/GetEnterpriseConfigurationByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/enterpriseconfigurations/GetEnterpriseConfigurationByIdV2025R0Headers.java index 49e5a1e23..b7d4f7a8d 100644 --- a/src/main/java/com/box/sdkgen/managers/enterpriseconfigurations/GetEnterpriseConfigurationByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/enterpriseconfigurations/GetEnterpriseConfigurationByIdV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public GetEnterpriseConfigurationByIdV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetEnterpriseConfigurationByIdV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/events/EventsManager.java b/src/main/java/com/box/sdkgen/managers/events/EventsManager.java index e1a6d7bed..89fe3c459 100644 --- a/src/main/java/com/box/sdkgen/managers/events/EventsManager.java +++ b/src/main/java/com/box/sdkgen/managers/events/EventsManager.java @@ -251,9 +251,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -266,6 +264,9 @@ public Builder networkSession(NetworkSession networkSession) { } public EventsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new EventsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventStreamHeaders.java b/src/main/java/com/box/sdkgen/managers/events/GetEventStreamHeaders.java index 58e915330..fbb00008e 100644 --- a/src/main/java/com/box/sdkgen/managers/events/GetEventStreamHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventStreamHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetEventStreamHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetEventStreamHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventsHeaders.java b/src/main/java/com/box/sdkgen/managers/events/GetEventsHeaders.java index 7f46b47b1..1ab1de7cd 100644 --- a/src/main/java/com/box/sdkgen/managers/events/GetEventsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetEventsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetEventsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventsWithLongPollingHeaders.java b/src/main/java/com/box/sdkgen/managers/events/GetEventsWithLongPollingHeaders.java index 268b30d1d..56da87b2f 100644 --- a/src/main/java/com/box/sdkgen/managers/events/GetEventsWithLongPollingHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventsWithLongPollingHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetEventsWithLongPollingHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetEventsWithLongPollingHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/externalusers/ExternalUsersManager.java b/src/main/java/com/box/sdkgen/managers/externalusers/ExternalUsersManager.java index f412462e8..bfbb0a937 100644 --- a/src/main/java/com/box/sdkgen/managers/externalusers/ExternalUsersManager.java +++ b/src/main/java/com/box/sdkgen/managers/externalusers/ExternalUsersManager.java @@ -93,9 +93,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -108,6 +106,9 @@ public Builder networkSession(NetworkSession networkSession) { } public ExternalUsersManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new ExternalUsersManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/externalusers/SubmitJobToDeleteExternalUsersV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/externalusers/SubmitJobToDeleteExternalUsersV2025R0Headers.java index b311b9cf2..27be2a702 100644 --- a/src/main/java/com/box/sdkgen/managers/externalusers/SubmitJobToDeleteExternalUsersV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/externalusers/SubmitJobToDeleteExternalUsersV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public SubmitJobToDeleteExternalUsersV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new SubmitJobToDeleteExternalUsersV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/AddClassificationToFileHeaders.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/AddClassificationToFileHeaders.java index 2249ceb77..bd9956c69 100644 --- a/src/main/java/com/box/sdkgen/managers/fileclassifications/AddClassificationToFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/AddClassificationToFileHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public AddClassificationToFileHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new AddClassificationToFileHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/DeleteClassificationFromFileHeaders.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/DeleteClassificationFromFileHeaders.java index 0caf33d98..dae87d913 100644 --- a/src/main/java/com/box/sdkgen/managers/fileclassifications/DeleteClassificationFromFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/DeleteClassificationFromFileHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteClassificationFromFileHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteClassificationFromFileHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/FileClassificationsManager.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/FileClassificationsManager.java index 4b45f0686..b652d917f 100644 --- a/src/main/java/com/box/sdkgen/managers/fileclassifications/FileClassificationsManager.java +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/FileClassificationsManager.java @@ -292,9 +292,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -307,6 +305,9 @@ public Builder networkSession(NetworkSession networkSession) { } public FileClassificationsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new FileClassificationsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/GetClassificationOnFileHeaders.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/GetClassificationOnFileHeaders.java index 0b659cab9..2e47e6635 100644 --- a/src/main/java/com/box/sdkgen/managers/fileclassifications/GetClassificationOnFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/GetClassificationOnFileHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetClassificationOnFileHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetClassificationOnFileHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileHeaders.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileHeaders.java index 12660b97a..d8a773b21 100644 --- a/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateClassificationOnFileHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateClassificationOnFileHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBody.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBody.java index 9e7f402d5..1237c601d 100644 --- a/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBody.java @@ -122,12 +122,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String value) { super(); this.value = value; - this.op = - new EnumWrapper( - UpdateClassificationOnFileRequestBodyOpField.REPLACE); - this.path = - new EnumWrapper( - UpdateClassificationOnFileRequestBodyPathField._BOX__SECURITY__CLASSIFICATION__KEY); } public Builder op(UpdateClassificationOnFileRequestBodyOpField op) { @@ -151,6 +145,16 @@ public Builder path(EnumWrapper } public UpdateClassificationOnFileRequestBody build() { + if (this.op == null) { + this.op = + new EnumWrapper( + UpdateClassificationOnFileRequestBodyOpField.REPLACE); + } + if (this.path == null) { + this.path = + new EnumWrapper( + UpdateClassificationOnFileRequestBodyPathField._BOX__SECURITY__CLASSIFICATION__KEY); + } return new UpdateClassificationOnFileRequestBody(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/CreateFileMetadataByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/filemetadata/CreateFileMetadataByIdHeaders.java index aba607e2c..acd922d24 100644 --- a/src/main/java/com/box/sdkgen/managers/filemetadata/CreateFileMetadataByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/CreateFileMetadataByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateFileMetadataByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateFileMetadataByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/DeleteFileMetadataByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/filemetadata/DeleteFileMetadataByIdHeaders.java index 97823b4ba..2baa9ff74 100644 --- a/src/main/java/com/box/sdkgen/managers/filemetadata/DeleteFileMetadataByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/DeleteFileMetadataByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteFileMetadataByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteFileMetadataByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/FileMetadataManager.java b/src/main/java/com/box/sdkgen/managers/filemetadata/FileMetadataManager.java index 25ae5f748..fb6062c86 100644 --- a/src/main/java/com/box/sdkgen/managers/filemetadata/FileMetadataManager.java +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/FileMetadataManager.java @@ -427,9 +427,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -442,6 +440,9 @@ public Builder networkSession(NetworkSession networkSession) { } public FileMetadataManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new FileMetadataManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdHeaders.java index 4c9978f13..bcac5614b 100644 --- a/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFileMetadataByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFileMetadataByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataHeaders.java b/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataHeaders.java index 863ea7390..c73bdb140 100644 --- a/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFileMetadataHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFileMetadataHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdHeaders.java index 53aa039ad..c3890e6d2 100644 --- a/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateFileMetadataByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateFileMetadataByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/filerequests/CreateFileRequestCopyHeaders.java b/src/main/java/com/box/sdkgen/managers/filerequests/CreateFileRequestCopyHeaders.java index 43f2caee6..f99352ce9 100644 --- a/src/main/java/com/box/sdkgen/managers/filerequests/CreateFileRequestCopyHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/filerequests/CreateFileRequestCopyHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateFileRequestCopyHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateFileRequestCopyHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/filerequests/DeleteFileRequestByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/filerequests/DeleteFileRequestByIdHeaders.java index 04d0b90c7..04538b7fd 100644 --- a/src/main/java/com/box/sdkgen/managers/filerequests/DeleteFileRequestByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/filerequests/DeleteFileRequestByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteFileRequestByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteFileRequestByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/filerequests/FileRequestsManager.java b/src/main/java/com/box/sdkgen/managers/filerequests/FileRequestsManager.java index 949ada3e8..a2f30f590 100644 --- a/src/main/java/com/box/sdkgen/managers/filerequests/FileRequestsManager.java +++ b/src/main/java/com/box/sdkgen/managers/filerequests/FileRequestsManager.java @@ -236,9 +236,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -251,6 +249,9 @@ public Builder networkSession(NetworkSession networkSession) { } public FileRequestsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new FileRequestsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/filerequests/GetFileRequestByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/filerequests/GetFileRequestByIdHeaders.java index ec8a71979..c34339fc5 100644 --- a/src/main/java/com/box/sdkgen/managers/filerequests/GetFileRequestByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/filerequests/GetFileRequestByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFileRequestByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFileRequestByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/filerequests/UpdateFileRequestByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/filerequests/UpdateFileRequestByIdHeaders.java index 2129dd1d4..0d9c7ec04 100644 --- a/src/main/java/com/box/sdkgen/managers/filerequests/UpdateFileRequestByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/filerequests/UpdateFileRequestByIdHeaders.java @@ -40,9 +40,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder ifMatch(String ifMatch) { this.ifMatch = ifMatch; @@ -55,6 +53,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateFileRequestByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateFileRequestByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/files/CopyFileHeaders.java b/src/main/java/com/box/sdkgen/managers/files/CopyFileHeaders.java index 1cf4ac887..28e90eb0e 100644 --- a/src/main/java/com/box/sdkgen/managers/files/CopyFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/files/CopyFileHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CopyFileHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CopyFileHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/files/DeleteFileByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/files/DeleteFileByIdHeaders.java index 3768ee25b..905eb836d 100644 --- a/src/main/java/com/box/sdkgen/managers/files/DeleteFileByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/files/DeleteFileByIdHeaders.java @@ -40,9 +40,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder ifMatch(String ifMatch) { this.ifMatch = ifMatch; @@ -55,6 +53,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteFileByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteFileByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/files/FilesManager.java b/src/main/java/com/box/sdkgen/managers/files/FilesManager.java index 3a20aca8b..29b629d2b 100644 --- a/src/main/java/com/box/sdkgen/managers/files/FilesManager.java +++ b/src/main/java/com/box/sdkgen/managers/files/FilesManager.java @@ -687,9 +687,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -702,6 +700,9 @@ public Builder networkSession(NetworkSession networkSession) { } public FilesManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new FilesManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/files/GetFileByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/files/GetFileByIdHeaders.java index b7a9d72a7..7ecc6c1e1 100644 --- a/src/main/java/com/box/sdkgen/managers/files/GetFileByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/files/GetFileByIdHeaders.java @@ -86,9 +86,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder ifNoneMatch(String ifNoneMatch) { this.ifNoneMatch = ifNoneMatch; @@ -111,6 +109,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFileByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFileByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdHeaders.java index 25f4c51ec..b6066abdf 100644 --- a/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFileThumbnailByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFileThumbnailByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlHeaders.java b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlHeaders.java index 83097e57d..31a94265e 100644 --- a/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFileThumbnailUrlHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFileThumbnailUrlHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdHeaders.java index 74dd12a29..95032157e 100644 --- a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdHeaders.java @@ -40,9 +40,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder ifMatch(String ifMatch) { this.ifMatch = ifMatch; @@ -55,6 +53,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateFileByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateFileByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/FileVersionLegalHoldsManager.java b/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/FileVersionLegalHoldsManager.java index 45eed0469..d6045bc76 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/FileVersionLegalHoldsManager.java +++ b/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/FileVersionLegalHoldsManager.java @@ -161,9 +161,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -176,6 +174,9 @@ public Builder networkSession(NetworkSession networkSession) { } public FileVersionLegalHoldsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new FileVersionLegalHoldsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldByIdHeaders.java index d94616942..163eed80e 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFileVersionLegalHoldByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFileVersionLegalHoldByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldsHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldsHeaders.java index 87a270b6a..7c4e8cd9c 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileversionlegalholds/GetFileVersionLegalHoldsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFileVersionLegalHoldsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFileVersionLegalHoldsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/fileversionretentions/FileVersionRetentionsManager.java b/src/main/java/com/box/sdkgen/managers/fileversionretentions/FileVersionRetentionsManager.java index 74522873d..874bab778 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversionretentions/FileVersionRetentionsManager.java +++ b/src/main/java/com/box/sdkgen/managers/fileversionretentions/FileVersionRetentionsManager.java @@ -191,9 +191,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -206,6 +204,9 @@ public Builder networkSession(NetworkSession networkSession) { } public FileVersionRetentionsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new FileVersionRetentionsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionByIdHeaders.java index 9eb0870d9..965648c78 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFileVersionRetentionByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFileVersionRetentionByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsHeaders.java index df5b78e74..547843028 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFileVersionRetentionsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFileVersionRetentionsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/DeleteFileVersionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversions/DeleteFileVersionByIdHeaders.java index ec610f437..424d0b4be 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversions/DeleteFileVersionByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileversions/DeleteFileVersionByIdHeaders.java @@ -40,9 +40,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder ifMatch(String ifMatch) { this.ifMatch = ifMatch; @@ -55,6 +53,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteFileVersionByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteFileVersionByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/FileVersionsManager.java b/src/main/java/com/box/sdkgen/managers/fileversions/FileVersionsManager.java index 59676a8a9..1f38b2483 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversions/FileVersionsManager.java +++ b/src/main/java/com/box/sdkgen/managers/fileversions/FileVersionsManager.java @@ -623,9 +623,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -638,6 +636,9 @@ public Builder networkSession(NetworkSession networkSession) { } public FileVersionsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new FileVersionsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionByIdHeaders.java index 7c01b9346..b1498199a 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFileVersionByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFileVersionByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionsHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionsHeaders.java index d5071efe4..64d2ec81e 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileversions/GetFileVersionsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFileVersionsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFileVersionsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionHeaders.java index a8715af20..8b93d249b 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public PromoteFileVersionHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new PromoteFileVersionHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/UpdateFileVersionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/fileversions/UpdateFileVersionByIdHeaders.java index 9d2e24cf4..c170401d1 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversions/UpdateFileVersionByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/fileversions/UpdateFileVersionByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateFileVersionByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateFileVersionByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/filewatermarks/DeleteFileWatermarkHeaders.java b/src/main/java/com/box/sdkgen/managers/filewatermarks/DeleteFileWatermarkHeaders.java index e8b92e0d7..bde463710 100644 --- a/src/main/java/com/box/sdkgen/managers/filewatermarks/DeleteFileWatermarkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/filewatermarks/DeleteFileWatermarkHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteFileWatermarkHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteFileWatermarkHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/filewatermarks/FileWatermarksManager.java b/src/main/java/com/box/sdkgen/managers/filewatermarks/FileWatermarksManager.java index d42c94735..df9ce47af 100644 --- a/src/main/java/com/box/sdkgen/managers/filewatermarks/FileWatermarksManager.java +++ b/src/main/java/com/box/sdkgen/managers/filewatermarks/FileWatermarksManager.java @@ -178,9 +178,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -193,6 +191,9 @@ public Builder networkSession(NetworkSession networkSession) { } public FileWatermarksManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new FileWatermarksManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/filewatermarks/GetFileWatermarkHeaders.java b/src/main/java/com/box/sdkgen/managers/filewatermarks/GetFileWatermarkHeaders.java index 4557dd54f..1fd301f92 100644 --- a/src/main/java/com/box/sdkgen/managers/filewatermarks/GetFileWatermarkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/filewatermarks/GetFileWatermarkHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFileWatermarkHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFileWatermarkHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkHeaders.java b/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkHeaders.java index 363658b0c..13ce15647 100644 --- a/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateFileWatermarkHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateFileWatermarkHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBodyWatermarkField.java b/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBodyWatermarkField.java index 82edef9c4..3e6fab69e 100644 --- a/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBodyWatermarkField.java +++ b/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBodyWatermarkField.java @@ -72,9 +72,6 @@ public static class Builder extends NullableFieldTracker { public Builder() { super(); - this.imprint = - new EnumWrapper( - UpdateFileWatermarkRequestBodyWatermarkImprintField.DEFAULT); } public Builder imprint(UpdateFileWatermarkRequestBodyWatermarkImprintField imprint) { @@ -89,6 +86,11 @@ public Builder imprint( } public UpdateFileWatermarkRequestBodyWatermarkField build() { + if (this.imprint == null) { + this.imprint = + new EnumWrapper( + UpdateFileWatermarkRequestBodyWatermarkImprintField.DEFAULT); + } return new UpdateFileWatermarkRequestBodyWatermarkField(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/AddClassificationToFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/AddClassificationToFolderHeaders.java index 754ff9343..893e72d54 100644 --- a/src/main/java/com/box/sdkgen/managers/folderclassifications/AddClassificationToFolderHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/AddClassificationToFolderHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public AddClassificationToFolderHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new AddClassificationToFolderHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/DeleteClassificationFromFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/DeleteClassificationFromFolderHeaders.java index 1d9a79183..f0c5a5f64 100644 --- a/src/main/java/com/box/sdkgen/managers/folderclassifications/DeleteClassificationFromFolderHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/DeleteClassificationFromFolderHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteClassificationFromFolderHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteClassificationFromFolderHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/FolderClassificationsManager.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/FolderClassificationsManager.java index 0bd8c1262..4d620c8ac 100644 --- a/src/main/java/com/box/sdkgen/managers/folderclassifications/FolderClassificationsManager.java +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/FolderClassificationsManager.java @@ -305,9 +305,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -320,6 +318,9 @@ public Builder networkSession(NetworkSession networkSession) { } public FolderClassificationsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new FolderClassificationsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/GetClassificationOnFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/GetClassificationOnFolderHeaders.java index 5392f8c1d..2f7ac8857 100644 --- a/src/main/java/com/box/sdkgen/managers/folderclassifications/GetClassificationOnFolderHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/GetClassificationOnFolderHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetClassificationOnFolderHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetClassificationOnFolderHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderHeaders.java index fe835ac3d..33b52d119 100644 --- a/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateClassificationOnFolderHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateClassificationOnFolderHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBody.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBody.java index b677923f1..e8f637ffc 100644 --- a/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBody.java @@ -122,12 +122,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String value) { super(); this.value = value; - this.op = - new EnumWrapper( - UpdateClassificationOnFolderRequestBodyOpField.REPLACE); - this.path = - new EnumWrapper( - UpdateClassificationOnFolderRequestBodyPathField._BOX__SECURITY__CLASSIFICATION__KEY); } public Builder op(UpdateClassificationOnFolderRequestBodyOpField op) { @@ -151,6 +145,17 @@ public Builder path(EnumWrapper( + UpdateClassificationOnFolderRequestBodyOpField.REPLACE); + } + if (this.path == null) { + this.path = + new EnumWrapper( + UpdateClassificationOnFolderRequestBodyPathField + ._BOX__SECURITY__CLASSIFICATION__KEY); + } return new UpdateClassificationOnFolderRequestBody(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockHeaders.java b/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockHeaders.java index 1104ae4b9..77c814149 100644 --- a/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folderlocks/CreateFolderLockHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateFolderLockHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateFolderLockHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/folderlocks/DeleteFolderLockByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/folderlocks/DeleteFolderLockByIdHeaders.java index fb61db746..216cf4529 100644 --- a/src/main/java/com/box/sdkgen/managers/folderlocks/DeleteFolderLockByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folderlocks/DeleteFolderLockByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteFolderLockByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteFolderLockByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/folderlocks/FolderLocksManager.java b/src/main/java/com/box/sdkgen/managers/folderlocks/FolderLocksManager.java index ca389d412..d9230d061 100644 --- a/src/main/java/com/box/sdkgen/managers/folderlocks/FolderLocksManager.java +++ b/src/main/java/com/box/sdkgen/managers/folderlocks/FolderLocksManager.java @@ -169,9 +169,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -184,6 +182,9 @@ public Builder networkSession(NetworkSession networkSession) { } public FolderLocksManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new FolderLocksManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/folderlocks/GetFolderLocksHeaders.java b/src/main/java/com/box/sdkgen/managers/folderlocks/GetFolderLocksHeaders.java index 1c7166138..fdd279806 100644 --- a/src/main/java/com/box/sdkgen/managers/folderlocks/GetFolderLocksHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folderlocks/GetFolderLocksHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFolderLocksHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFolderLocksHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/CreateFolderMetadataByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/CreateFolderMetadataByIdHeaders.java index ce7493872..3fa8d004e 100644 --- a/src/main/java/com/box/sdkgen/managers/foldermetadata/CreateFolderMetadataByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/CreateFolderMetadataByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateFolderMetadataByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateFolderMetadataByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/DeleteFolderMetadataByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/DeleteFolderMetadataByIdHeaders.java index 13b3ec3f3..463172b77 100644 --- a/src/main/java/com/box/sdkgen/managers/foldermetadata/DeleteFolderMetadataByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/DeleteFolderMetadataByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteFolderMetadataByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteFolderMetadataByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/FolderMetadataManager.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/FolderMetadataManager.java index 781d380e6..9e7e40d9f 100644 --- a/src/main/java/com/box/sdkgen/managers/foldermetadata/FolderMetadataManager.java +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/FolderMetadataManager.java @@ -398,9 +398,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -413,6 +411,9 @@ public Builder networkSession(NetworkSession networkSession) { } public FolderMetadataManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new FolderMetadataManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataByIdHeaders.java index 1d4f16a0e..bb650b2d6 100644 --- a/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFolderMetadataByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFolderMetadataByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataHeaders.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataHeaders.java index 2705b471b..b32792900 100644 --- a/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFolderMetadataHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFolderMetadataHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdHeaders.java index 44b5e1a45..5677e0f94 100644 --- a/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateFolderMetadataByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateFolderMetadataByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/folders/CopyFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/folders/CopyFolderHeaders.java index d5d1bb8ba..bec1c5883 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/CopyFolderHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folders/CopyFolderHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CopyFolderHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CopyFolderHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/folders/CreateFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderHeaders.java index afb73367a..3c935c735 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/CreateFolderHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateFolderHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateFolderHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/folders/DeleteFolderByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/folders/DeleteFolderByIdHeaders.java index dc7284294..a1d089458 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/DeleteFolderByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folders/DeleteFolderByIdHeaders.java @@ -40,9 +40,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder ifMatch(String ifMatch) { this.ifMatch = ifMatch; @@ -55,6 +53,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteFolderByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteFolderByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/folders/FoldersManager.java b/src/main/java/com/box/sdkgen/managers/folders/FoldersManager.java index 8aa60cdd7..9a76a6cca 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/FoldersManager.java +++ b/src/main/java/com/box/sdkgen/managers/folders/FoldersManager.java @@ -670,9 +670,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -685,6 +683,9 @@ public Builder networkSession(NetworkSession networkSession) { } public FoldersManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new FoldersManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdHeaders.java index 3783955af..cd8a7c736 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdHeaders.java @@ -60,9 +60,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder ifNoneMatch(String ifNoneMatch) { this.ifNoneMatch = ifNoneMatch; @@ -80,6 +78,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFolderByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFolderByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsHeaders.java b/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsHeaders.java index 04a4328dd..ce143b8f8 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsHeaders.java @@ -45,9 +45,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxapi(String boxapi) { this.boxapi = boxapi; @@ -60,6 +58,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFolderItemsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFolderItemsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdHeaders.java index 0d04c9e3f..6b30927ac 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdHeaders.java @@ -40,9 +40,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder ifMatch(String ifMatch) { this.ifMatch = ifMatch; @@ -55,6 +53,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateFolderByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateFolderByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/folderwatermarks/DeleteFolderWatermarkHeaders.java b/src/main/java/com/box/sdkgen/managers/folderwatermarks/DeleteFolderWatermarkHeaders.java index a66d68fbc..47d1bd8a6 100644 --- a/src/main/java/com/box/sdkgen/managers/folderwatermarks/DeleteFolderWatermarkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folderwatermarks/DeleteFolderWatermarkHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteFolderWatermarkHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteFolderWatermarkHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/folderwatermarks/FolderWatermarksManager.java b/src/main/java/com/box/sdkgen/managers/folderwatermarks/FolderWatermarksManager.java index 56c62914e..21ab74564 100644 --- a/src/main/java/com/box/sdkgen/managers/folderwatermarks/FolderWatermarksManager.java +++ b/src/main/java/com/box/sdkgen/managers/folderwatermarks/FolderWatermarksManager.java @@ -185,9 +185,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -200,6 +198,9 @@ public Builder networkSession(NetworkSession networkSession) { } public FolderWatermarksManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new FolderWatermarksManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/folderwatermarks/GetFolderWatermarkHeaders.java b/src/main/java/com/box/sdkgen/managers/folderwatermarks/GetFolderWatermarkHeaders.java index 5cf310dd4..b302bb31e 100644 --- a/src/main/java/com/box/sdkgen/managers/folderwatermarks/GetFolderWatermarkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folderwatermarks/GetFolderWatermarkHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFolderWatermarkHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFolderWatermarkHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkHeaders.java b/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkHeaders.java index 5310a6133..a79118bcb 100644 --- a/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateFolderWatermarkHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateFolderWatermarkHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBodyWatermarkField.java b/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBodyWatermarkField.java index 49ad369f4..cac5f8306 100644 --- a/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBodyWatermarkField.java +++ b/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBodyWatermarkField.java @@ -72,9 +72,6 @@ public static class Builder extends NullableFieldTracker { public Builder() { super(); - this.imprint = - new EnumWrapper( - UpdateFolderWatermarkRequestBodyWatermarkImprintField.DEFAULT); } public Builder imprint(UpdateFolderWatermarkRequestBodyWatermarkImprintField imprint) { @@ -90,6 +87,11 @@ public Builder imprint( } public UpdateFolderWatermarkRequestBodyWatermarkField build() { + if (this.imprint == null) { + this.imprint = + new EnumWrapper( + UpdateFolderWatermarkRequestBodyWatermarkImprintField.DEFAULT); + } return new UpdateFolderWatermarkRequestBodyWatermarkField(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/groups/CreateGroupHeaders.java b/src/main/java/com/box/sdkgen/managers/groups/CreateGroupHeaders.java index 17f5607f7..e1cd7020c 100644 --- a/src/main/java/com/box/sdkgen/managers/groups/CreateGroupHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/groups/CreateGroupHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateGroupHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateGroupHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/groups/DeleteGroupByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/groups/DeleteGroupByIdHeaders.java index f21d34bed..8e85a7754 100644 --- a/src/main/java/com/box/sdkgen/managers/groups/DeleteGroupByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/groups/DeleteGroupByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteGroupByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteGroupByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/groups/GetGroupByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/groups/GetGroupByIdHeaders.java index 8c979f0e2..5a1ce6a54 100644 --- a/src/main/java/com/box/sdkgen/managers/groups/GetGroupByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/groups/GetGroupByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetGroupByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetGroupByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/groups/GetGroupsHeaders.java b/src/main/java/com/box/sdkgen/managers/groups/GetGroupsHeaders.java index 685b1b3f6..f61232bcf 100644 --- a/src/main/java/com/box/sdkgen/managers/groups/GetGroupsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/groups/GetGroupsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetGroupsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetGroupsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/groups/GroupsManager.java b/src/main/java/com/box/sdkgen/managers/groups/GroupsManager.java index 5ebc29942..56036a67c 100644 --- a/src/main/java/com/box/sdkgen/managers/groups/GroupsManager.java +++ b/src/main/java/com/box/sdkgen/managers/groups/GroupsManager.java @@ -405,9 +405,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -420,6 +418,9 @@ public Builder networkSession(NetworkSession networkSession) { } public GroupsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new GroupsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdHeaders.java index 461f58de7..ae92159c1 100644 --- a/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateGroupByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateGroupByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/hubcollaborations/CreateHubCollaborationV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubcollaborations/CreateHubCollaborationV2025R0Headers.java index c50d35f9a..3713874c2 100644 --- a/src/main/java/com/box/sdkgen/managers/hubcollaborations/CreateHubCollaborationV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubcollaborations/CreateHubCollaborationV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateHubCollaborationV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateHubCollaborationV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/hubcollaborations/DeleteHubCollaborationByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubcollaborations/DeleteHubCollaborationByIdV2025R0Headers.java index e7ed4b894..6eb5ef059 100644 --- a/src/main/java/com/box/sdkgen/managers/hubcollaborations/DeleteHubCollaborationByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubcollaborations/DeleteHubCollaborationByIdV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteHubCollaborationByIdV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteHubCollaborationByIdV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationByIdV2025R0Headers.java index 31f7b98c7..62fb46edd 100644 --- a/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationByIdV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public GetHubCollaborationByIdV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetHubCollaborationByIdV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationsV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationsV2025R0Headers.java index 0045dfb68..b42a90a88 100644 --- a/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationsV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubcollaborations/GetHubCollaborationsV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public GetHubCollaborationsV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetHubCollaborationsV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/hubcollaborations/HubCollaborationsManager.java b/src/main/java/com/box/sdkgen/managers/hubcollaborations/HubCollaborationsManager.java index 345e496b0..d50957bbc 100644 --- a/src/main/java/com/box/sdkgen/managers/hubcollaborations/HubCollaborationsManager.java +++ b/src/main/java/com/box/sdkgen/managers/hubcollaborations/HubCollaborationsManager.java @@ -276,9 +276,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -291,6 +289,9 @@ public Builder networkSession(NetworkSession networkSession) { } public HubCollaborationsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new HubCollaborationsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/hubcollaborations/UpdateHubCollaborationByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubcollaborations/UpdateHubCollaborationByIdV2025R0Headers.java index ce6b38bdf..24a212f2b 100644 --- a/src/main/java/com/box/sdkgen/managers/hubcollaborations/UpdateHubCollaborationByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubcollaborations/UpdateHubCollaborationByIdV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateHubCollaborationByIdV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateHubCollaborationByIdV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/hubitems/GetHubItemsV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubitems/GetHubItemsV2025R0Headers.java index 35fc94477..6248dd3ed 100644 --- a/src/main/java/com/box/sdkgen/managers/hubitems/GetHubItemsV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubitems/GetHubItemsV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public GetHubItemsV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetHubItemsV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/hubitems/HubItemsManager.java b/src/main/java/com/box/sdkgen/managers/hubitems/HubItemsManager.java index 73522771d..f89dddebe 100644 --- a/src/main/java/com/box/sdkgen/managers/hubitems/HubItemsManager.java +++ b/src/main/java/com/box/sdkgen/managers/hubitems/HubItemsManager.java @@ -146,9 +146,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -161,6 +159,9 @@ public Builder networkSession(NetworkSession networkSession) { } public HubItemsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new HubItemsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/hubitems/ManageHubItemsV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubitems/ManageHubItemsV2025R0Headers.java index 636bd9095..79d9f89b2 100644 --- a/src/main/java/com/box/sdkgen/managers/hubitems/ManageHubItemsV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubitems/ManageHubItemsV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public ManageHubItemsV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new ManageHubItemsV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/hubs/CopyHubV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubs/CopyHubV2025R0Headers.java index 22a2639aa..0d940badd 100644 --- a/src/main/java/com/box/sdkgen/managers/hubs/CopyHubV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubs/CopyHubV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public CopyHubV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CopyHubV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/hubs/CreateHubV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubs/CreateHubV2025R0Headers.java index b23e903c5..5cb6228b1 100644 --- a/src/main/java/com/box/sdkgen/managers/hubs/CreateHubV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubs/CreateHubV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateHubV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateHubV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/hubs/DeleteHubByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubs/DeleteHubByIdV2025R0Headers.java index fc9322c57..c186f220a 100644 --- a/src/main/java/com/box/sdkgen/managers/hubs/DeleteHubByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubs/DeleteHubByIdV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteHubByIdV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteHubByIdV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0Headers.java index c85ccac34..3f3358d41 100644 --- a/src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public GetEnterpriseHubsV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetEnterpriseHubsV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/hubs/GetHubByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubs/GetHubByIdV2025R0Headers.java index 831c8dbd3..41b08dc78 100644 --- a/src/main/java/com/box/sdkgen/managers/hubs/GetHubByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubs/GetHubByIdV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public GetHubByIdV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetHubByIdV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0Headers.java index a8ebd6e57..618004fab 100644 --- a/src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public GetHubsV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetHubsV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/hubs/HubsManager.java b/src/main/java/com/box/sdkgen/managers/hubs/HubsManager.java index af6e5a118..d0edf6a2b 100644 --- a/src/main/java/com/box/sdkgen/managers/hubs/HubsManager.java +++ b/src/main/java/com/box/sdkgen/managers/hubs/HubsManager.java @@ -422,9 +422,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -437,6 +435,9 @@ public Builder networkSession(NetworkSession networkSession) { } public HubsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new HubsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/hubs/UpdateHubByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubs/UpdateHubByIdV2025R0Headers.java index 270f28172..ebc0df521 100644 --- a/src/main/java/com/box/sdkgen/managers/hubs/UpdateHubByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/hubs/UpdateHubByIdV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateHubByIdV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateHubByIdV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/CreateSlackIntegrationMappingHeaders.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/CreateSlackIntegrationMappingHeaders.java index e7c2786fb..232ab40b3 100644 --- a/src/main/java/com/box/sdkgen/managers/integrationmappings/CreateSlackIntegrationMappingHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/CreateSlackIntegrationMappingHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateSlackIntegrationMappingHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateSlackIntegrationMappingHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/CreateTeamsIntegrationMappingHeaders.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/CreateTeamsIntegrationMappingHeaders.java index bc48b2ff5..a608ecf9a 100644 --- a/src/main/java/com/box/sdkgen/managers/integrationmappings/CreateTeamsIntegrationMappingHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/CreateTeamsIntegrationMappingHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateTeamsIntegrationMappingHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateTeamsIntegrationMappingHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/DeleteSlackIntegrationMappingByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/DeleteSlackIntegrationMappingByIdHeaders.java index 9acf3c0eb..387a525ff 100644 --- a/src/main/java/com/box/sdkgen/managers/integrationmappings/DeleteSlackIntegrationMappingByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/DeleteSlackIntegrationMappingByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteSlackIntegrationMappingByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteSlackIntegrationMappingByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/DeleteTeamsIntegrationMappingByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/DeleteTeamsIntegrationMappingByIdHeaders.java index 826740ac5..24c7afd6a 100644 --- a/src/main/java/com/box/sdkgen/managers/integrationmappings/DeleteTeamsIntegrationMappingByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/DeleteTeamsIntegrationMappingByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteTeamsIntegrationMappingByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteTeamsIntegrationMappingByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingHeaders.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingHeaders.java index af10071ef..cba71fe78 100644 --- a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetSlackIntegrationMappingHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetSlackIntegrationMappingHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingHeaders.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingHeaders.java index fac24357a..8c49a501a 100644 --- a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetTeamsIntegrationMappingHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetTeamsIntegrationMappingHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/IntegrationMappingsManager.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/IntegrationMappingsManager.java index 43b3e1b8d..5de3ce009 100644 --- a/src/main/java/com/box/sdkgen/managers/integrationmappings/IntegrationMappingsManager.java +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/IntegrationMappingsManager.java @@ -542,9 +542,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -557,6 +555,9 @@ public Builder networkSession(NetworkSession networkSession) { } public IntegrationMappingsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new IntegrationMappingsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateSlackIntegrationMappingByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateSlackIntegrationMappingByIdHeaders.java index 870bf9185..ac66967b4 100644 --- a/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateSlackIntegrationMappingByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateSlackIntegrationMappingByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateSlackIntegrationMappingByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateSlackIntegrationMappingByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateTeamsIntegrationMappingByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateTeamsIntegrationMappingByIdHeaders.java index f565ae91d..a7133c76c 100644 --- a/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateTeamsIntegrationMappingByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/UpdateTeamsIntegrationMappingByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateTeamsIntegrationMappingByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateTeamsIntegrationMappingByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/invites/CreateInviteHeaders.java b/src/main/java/com/box/sdkgen/managers/invites/CreateInviteHeaders.java index e0030d520..8efaf5a30 100644 --- a/src/main/java/com/box/sdkgen/managers/invites/CreateInviteHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/invites/CreateInviteHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateInviteHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateInviteHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/invites/GetInviteByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/invites/GetInviteByIdHeaders.java index a92d3234a..8adad1ad8 100644 --- a/src/main/java/com/box/sdkgen/managers/invites/GetInviteByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/invites/GetInviteByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetInviteByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetInviteByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/invites/InvitesManager.java b/src/main/java/com/box/sdkgen/managers/invites/InvitesManager.java index c9c2ed485..12f316ed3 100644 --- a/src/main/java/com/box/sdkgen/managers/invites/InvitesManager.java +++ b/src/main/java/com/box/sdkgen/managers/invites/InvitesManager.java @@ -196,9 +196,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -211,6 +209,9 @@ public Builder networkSession(NetworkSession networkSession) { } public InvitesManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new InvitesManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/CreateLegalHoldPolicyHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/CreateLegalHoldPolicyHeaders.java index fcf5293e3..a82f2a2e4 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/CreateLegalHoldPolicyHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/CreateLegalHoldPolicyHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateLegalHoldPolicyHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateLegalHoldPolicyHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/DeleteLegalHoldPolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/DeleteLegalHoldPolicyByIdHeaders.java index 911089e1c..3d14c776c 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/DeleteLegalHoldPolicyByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/DeleteLegalHoldPolicyByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteLegalHoldPolicyByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteLegalHoldPolicyByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPoliciesHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPoliciesHeaders.java index 6b9b86091..eb3ec05ff 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPoliciesHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPoliciesHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetLegalHoldPoliciesHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetLegalHoldPoliciesHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPolicyByIdHeaders.java index 365f84e49..0c57afe74 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPolicyByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/GetLegalHoldPolicyByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetLegalHoldPolicyByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetLegalHoldPolicyByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/LegalHoldPoliciesManager.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/LegalHoldPoliciesManager.java index 4bc199b3e..3f40e5086 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/LegalHoldPoliciesManager.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/LegalHoldPoliciesManager.java @@ -290,9 +290,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -305,6 +303,9 @@ public Builder networkSession(NetworkSession networkSession) { } public LegalHoldPoliciesManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new LegalHoldPoliciesManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/UpdateLegalHoldPolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/UpdateLegalHoldPolicyByIdHeaders.java index c052cfe80..f0bd35213 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicies/UpdateLegalHoldPolicyByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicies/UpdateLegalHoldPolicyByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateLegalHoldPolicyByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateLegalHoldPolicyByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentHeaders.java index 0283d7e62..f9b2a9b32 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateLegalHoldPolicyAssignmentHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateLegalHoldPolicyAssignmentHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/DeleteLegalHoldPolicyAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/DeleteLegalHoldPolicyAssignmentByIdHeaders.java index 2498eab0c..7c96b392d 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/DeleteLegalHoldPolicyAssignmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/DeleteLegalHoldPolicyAssignmentByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteLegalHoldPolicyAssignmentByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteLegalHoldPolicyAssignmentByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentByIdHeaders.java index 582b2da98..3f5611f7b 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetLegalHoldPolicyAssignmentByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetLegalHoldPolicyAssignmentByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentFileOnHoldHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentFileOnHoldHeaders.java index eb938718f..486110321 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentFileOnHoldHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentFileOnHoldHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetLegalHoldPolicyAssignmentFileOnHoldHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetLegalHoldPolicyAssignmentFileOnHoldHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsHeaders.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsHeaders.java index 852dd391e..5e5595660 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetLegalHoldPolicyAssignmentsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetLegalHoldPolicyAssignmentsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/LegalHoldPolicyAssignmentsManager.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/LegalHoldPolicyAssignmentsManager.java index e51eefc74..68a707506 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/LegalHoldPolicyAssignmentsManager.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/LegalHoldPolicyAssignmentsManager.java @@ -367,9 +367,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -382,6 +380,9 @@ public Builder networkSession(NetworkSession networkSession) { } public LegalHoldPolicyAssignmentsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new LegalHoldPolicyAssignmentsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsHeaders.java b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsHeaders.java index 6f17c115e..28f25f88b 100644 --- a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetCollaborationsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetCollaborationsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFileCollaborationsHeaders.java b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFileCollaborationsHeaders.java index 2e30821a9..1569f39ef 100644 --- a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFileCollaborationsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFileCollaborationsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFileCollaborationsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFileCollaborationsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFolderCollaborationsHeaders.java b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFolderCollaborationsHeaders.java index 02973acc5..17876d2bd 100644 --- a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFolderCollaborationsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetFolderCollaborationsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFolderCollaborationsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFolderCollaborationsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetGroupCollaborationsHeaders.java b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetGroupCollaborationsHeaders.java index fa4a470e9..8cd959a8d 100644 --- a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetGroupCollaborationsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetGroupCollaborationsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetGroupCollaborationsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetGroupCollaborationsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/listcollaborations/ListCollaborationsManager.java b/src/main/java/com/box/sdkgen/managers/listcollaborations/ListCollaborationsManager.java index 71d683da3..86fcbee67 100644 --- a/src/main/java/com/box/sdkgen/managers/listcollaborations/ListCollaborationsManager.java +++ b/src/main/java/com/box/sdkgen/managers/listcollaborations/ListCollaborationsManager.java @@ -348,9 +348,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -363,6 +361,9 @@ public Builder networkSession(NetworkSession networkSession) { } public ListCollaborationsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new ListCollaborationsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipHeaders.java b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipHeaders.java index f9a402f99..2fc526077 100644 --- a/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateGroupMembershipHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateGroupMembershipHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/memberships/DeleteGroupMembershipByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/memberships/DeleteGroupMembershipByIdHeaders.java index d73e29e91..e6a0daaf1 100644 --- a/src/main/java/com/box/sdkgen/managers/memberships/DeleteGroupMembershipByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/memberships/DeleteGroupMembershipByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteGroupMembershipByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteGroupMembershipByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipByIdHeaders.java index 57581da1f..9170f8852 100644 --- a/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetGroupMembershipByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetGroupMembershipByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipsHeaders.java b/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipsHeaders.java index 5f27423eb..931b7e72d 100644 --- a/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/memberships/GetGroupMembershipsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetGroupMembershipsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetGroupMembershipsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/memberships/GetUserMembershipsHeaders.java b/src/main/java/com/box/sdkgen/managers/memberships/GetUserMembershipsHeaders.java index 8bc8c3f1b..da0a69d3d 100644 --- a/src/main/java/com/box/sdkgen/managers/memberships/GetUserMembershipsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/memberships/GetUserMembershipsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetUserMembershipsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetUserMembershipsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/memberships/MembershipsManager.java b/src/main/java/com/box/sdkgen/managers/memberships/MembershipsManager.java index d990cf265..dbe01289e 100644 --- a/src/main/java/com/box/sdkgen/managers/memberships/MembershipsManager.java +++ b/src/main/java/com/box/sdkgen/managers/memberships/MembershipsManager.java @@ -521,9 +521,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -536,6 +534,9 @@ public Builder networkSession(NetworkSession networkSession) { } public MembershipsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new MembershipsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdHeaders.java index 68e84d4b4..9866ed28e 100644 --- a/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateGroupMembershipByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateGroupMembershipByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyHeaders.java index 1a44d8c35..b125cc569 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public ApplyMetadataCascadePolicyHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new ApplyMetadataCascadePolicyHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyHeaders.java index 2a85d79b3..161bb4edc 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateMetadataCascadePolicyHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateMetadataCascadePolicyHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/DeleteMetadataCascadePolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/DeleteMetadataCascadePolicyByIdHeaders.java index bfa9220de..cb96186a3 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/DeleteMetadataCascadePolicyByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/DeleteMetadataCascadePolicyByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteMetadataCascadePolicyByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteMetadataCascadePolicyByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePoliciesHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePoliciesHeaders.java index f5b97a21a..06b470541 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePoliciesHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePoliciesHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetMetadataCascadePoliciesHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetMetadataCascadePoliciesHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePolicyByIdHeaders.java index 77b76b806..03b23bcf5 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePolicyByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/GetMetadataCascadePolicyByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetMetadataCascadePolicyByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetMetadataCascadePolicyByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/MetadataCascadePoliciesManager.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/MetadataCascadePoliciesManager.java index 5e92fa833..d45931c5c 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/MetadataCascadePoliciesManager.java +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/MetadataCascadePoliciesManager.java @@ -271,9 +271,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -286,6 +284,9 @@ public Builder networkSession(NetworkSession networkSession) { } public MetadataCascadePoliciesManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new MetadataCascadePoliciesManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/AddMetadataTaxonomyLevelHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/AddMetadataTaxonomyLevelHeaders.java index 26a90477e..883b5f271 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/AddMetadataTaxonomyLevelHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/AddMetadataTaxonomyLevelHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public AddMetadataTaxonomyLevelHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new AddMetadataTaxonomyLevelHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyHeaders.java index 48539fceb..7f189ff6b 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateMetadataTaxonomyHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateMetadataTaxonomyHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyLevelHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyLevelHeaders.java index 1acebea77..c74cb46d4 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyLevelHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyLevelHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateMetadataTaxonomyLevelHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateMetadataTaxonomyLevelHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyNodeHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyNodeHeaders.java index 70053593b..4fe8fa14f 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyNodeHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/CreateMetadataTaxonomyNodeHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateMetadataTaxonomyNodeHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateMetadataTaxonomyNodeHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyHeaders.java index 894858888..8b9363258 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteMetadataTaxonomyHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteMetadataTaxonomyHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyLevelHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyLevelHeaders.java index b2e81cfa4..c2e6b8f02 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyLevelHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyLevelHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteMetadataTaxonomyLevelHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteMetadataTaxonomyLevelHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyNodeHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyNodeHeaders.java index e8e4de6c5..3c2e79eaa 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyNodeHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/DeleteMetadataTaxonomyNodeHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteMetadataTaxonomyNodeHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteMetadataTaxonomyNodeHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomiesHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomiesHeaders.java index db3c7475b..c395d7448 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomiesHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomiesHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetMetadataTaxonomiesHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetMetadataTaxonomiesHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyByKeyHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyByKeyHeaders.java index 8e96b5050..2a7895e3a 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyByKeyHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyByKeyHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetMetadataTaxonomyByKeyHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetMetadataTaxonomyByKeyHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodeByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodeByIdHeaders.java index 48d751672..bdfdf3110 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodeByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodeByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetMetadataTaxonomyNodeByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetMetadataTaxonomyNodeByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodesHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodesHeaders.java index 6c5b5b4d9..c784b5348 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodesHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTaxonomyNodesHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetMetadataTaxonomyNodesHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetMetadataTaxonomyNodesHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsHeaders.java index 93a0bdb15..e608840f1 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/GetMetadataTemplateFieldOptionsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetMetadataTemplateFieldOptionsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetMetadataTemplateFieldOptionsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/MetadataTaxonomiesManager.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/MetadataTaxonomiesManager.java index a28786810..230f2babc 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/MetadataTaxonomiesManager.java +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/MetadataTaxonomiesManager.java @@ -972,9 +972,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -987,6 +985,9 @@ public Builder networkSession(NetworkSession networkSession) { } public MetadataTaxonomiesManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new MetadataTaxonomiesManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyHeaders.java index 3b007ed71..24e1e53d2 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateMetadataTaxonomyHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateMetadataTaxonomyHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyLevelByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyLevelByIdHeaders.java index eb0e70806..9ad55ba89 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyLevelByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyLevelByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateMetadataTaxonomyLevelByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateMetadataTaxonomyLevelByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyNodeHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyNodeHeaders.java index a5bb0313c..4aeaa7d29 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyNodeHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatataxonomies/UpdateMetadataTaxonomyNodeHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateMetadataTaxonomyNodeHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateMetadataTaxonomyNodeHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateHeaders.java index 8ed1b84dd..f617a8209 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateMetadataTemplateHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateMetadataTemplateHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/DeleteMetadataTemplateHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/DeleteMetadataTemplateHeaders.java index a7f8ebca4..c980d492b 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/DeleteMetadataTemplateHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/DeleteMetadataTemplateHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteMetadataTemplateHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteMetadataTemplateHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetEnterpriseMetadataTemplatesHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetEnterpriseMetadataTemplatesHeaders.java index 301561576..42a315c8a 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetEnterpriseMetadataTemplatesHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetEnterpriseMetadataTemplatesHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetEnterpriseMetadataTemplatesHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetEnterpriseMetadataTemplatesHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetGlobalMetadataTemplatesHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetGlobalMetadataTemplatesHeaders.java index c8634b057..d8ba3dd21 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetGlobalMetadataTemplatesHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetGlobalMetadataTemplatesHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetGlobalMetadataTemplatesHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetGlobalMetadataTemplatesHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateByIdHeaders.java index 929a9ddcd..1fa47610c 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetMetadataTemplateByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetMetadataTemplateByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateHeaders.java index d00a6b26b..87e12960d 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetMetadataTemplateHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetMetadataTemplateHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplatesByInstanceIdHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplatesByInstanceIdHeaders.java index 71d4ae62c..8101ee242 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplatesByInstanceIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplatesByInstanceIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetMetadataTemplatesByInstanceIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetMetadataTemplatesByInstanceIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/MetadataTemplatesManager.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/MetadataTemplatesManager.java index 553b202bd..70c038785 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/MetadataTemplatesManager.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/MetadataTemplatesManager.java @@ -452,9 +452,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -467,6 +465,9 @@ public Builder networkSession(NetworkSession networkSession) { } public MetadataTemplatesManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new MetadataTemplatesManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateHeaders.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateHeaders.java index 83aa21de9..fd78e41e4 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateMetadataTemplateHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateMetadataTemplateHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/recentitems/GetRecentItemsHeaders.java b/src/main/java/com/box/sdkgen/managers/recentitems/GetRecentItemsHeaders.java index 28c611cc0..98562aab2 100644 --- a/src/main/java/com/box/sdkgen/managers/recentitems/GetRecentItemsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/recentitems/GetRecentItemsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetRecentItemsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetRecentItemsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/recentitems/RecentItemsManager.java b/src/main/java/com/box/sdkgen/managers/recentitems/RecentItemsManager.java index f7a2c873b..d66feff88 100644 --- a/src/main/java/com/box/sdkgen/managers/recentitems/RecentItemsManager.java +++ b/src/main/java/com/box/sdkgen/managers/recentitems/RecentItemsManager.java @@ -107,9 +107,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -122,6 +120,9 @@ public Builder networkSession(NetworkSession networkSession) { } public RecentItemsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new RecentItemsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyHeaders.java index c7a3b8d1f..52197f5aa 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateRetentionPolicyHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateRetentionPolicyHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/DeleteRetentionPolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/DeleteRetentionPolicyByIdHeaders.java index 2b885193d..c8b927427 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicies/DeleteRetentionPolicyByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/DeleteRetentionPolicyByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteRetentionPolicyByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteRetentionPolicyByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesHeaders.java index b56f06fe0..752356af1 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetRetentionPoliciesHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetRetentionPoliciesHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPolicyByIdHeaders.java index 60cdf5b08..697f4481f 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPolicyByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPolicyByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetRetentionPolicyByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetRetentionPolicyByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/RetentionPoliciesManager.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/RetentionPoliciesManager.java index 24cf8d19f..1019e2ef4 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicies/RetentionPoliciesManager.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/RetentionPoliciesManager.java @@ -319,9 +319,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -334,6 +332,9 @@ public Builder networkSession(NetworkSession networkSession) { } public RetentionPoliciesManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new RetentionPoliciesManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdHeaders.java index cd6350d66..201a67562 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateRetentionPolicyByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateRetentionPolicyByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentHeaders.java index 308892d32..b64188aa4 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateRetentionPolicyAssignmentHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateRetentionPolicyAssignmentHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/DeleteRetentionPolicyAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/DeleteRetentionPolicyAssignmentByIdHeaders.java index b9312489c..501fe1c4c 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/DeleteRetentionPolicyAssignmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/DeleteRetentionPolicyAssignmentByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteRetentionPolicyAssignmentByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteRetentionPolicyAssignmentByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetFilesUnderRetentionPolicyAssignmentHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetFilesUnderRetentionPolicyAssignmentHeaders.java index 8185e2a8c..2b6a9fab3 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetFilesUnderRetentionPolicyAssignmentHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetFilesUnderRetentionPolicyAssignmentHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFilesUnderRetentionPolicyAssignmentHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFilesUnderRetentionPolicyAssignmentHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentByIdHeaders.java index 5b15d0c10..c3ea5169f 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetRetentionPolicyAssignmentByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetRetentionPolicyAssignmentByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsHeaders.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsHeaders.java index 6b6c8fe08..39cff8270 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetRetentionPolicyAssignmentsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetRetentionPolicyAssignmentsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/RetentionPolicyAssignmentsManager.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/RetentionPolicyAssignmentsManager.java index 5bdf87640..166a94791 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/RetentionPolicyAssignmentsManager.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/RetentionPolicyAssignmentsManager.java @@ -365,9 +365,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -380,6 +378,9 @@ public Builder networkSession(NetworkSession networkSession) { } public RetentionPolicyAssignmentsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new RetentionPolicyAssignmentsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchByMetadataQueryHeaders.java b/src/main/java/com/box/sdkgen/managers/search/SearchByMetadataQueryHeaders.java index 8d28f8b14..72905d645 100644 --- a/src/main/java/com/box/sdkgen/managers/search/SearchByMetadataQueryHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/search/SearchByMetadataQueryHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public SearchByMetadataQueryHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new SearchByMetadataQueryHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchForContentHeaders.java b/src/main/java/com/box/sdkgen/managers/search/SearchForContentHeaders.java index 63544ae9b..97c1f5f4b 100644 --- a/src/main/java/com/box/sdkgen/managers/search/SearchForContentHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/search/SearchForContentHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public SearchForContentHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new SearchForContentHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchManager.java b/src/main/java/com/box/sdkgen/managers/search/SearchManager.java index 13799ff53..3a04b3809 100644 --- a/src/main/java/com/box/sdkgen/managers/search/SearchManager.java +++ b/src/main/java/com/box/sdkgen/managers/search/SearchManager.java @@ -175,9 +175,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -190,6 +188,9 @@ public Builder networkSession(NetworkSession networkSession) { } public SearchManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new SearchManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/sessiontermination/SessionTerminationManager.java b/src/main/java/com/box/sdkgen/managers/sessiontermination/SessionTerminationManager.java index 03e6c3422..60e80d341 100644 --- a/src/main/java/com/box/sdkgen/managers/sessiontermination/SessionTerminationManager.java +++ b/src/main/java/com/box/sdkgen/managers/sessiontermination/SessionTerminationManager.java @@ -124,9 +124,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -139,6 +137,9 @@ public Builder networkSession(NetworkSession networkSession) { } public SessionTerminationManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new SessionTerminationManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateGroupsSessionsHeaders.java b/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateGroupsSessionsHeaders.java index 30b4eeb0b..2a17001b5 100644 --- a/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateGroupsSessionsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateGroupsSessionsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public TerminateGroupsSessionsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new TerminateGroupsSessionsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateUsersSessionsHeaders.java b/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateUsersSessionsHeaders.java index 7c8bf4476..020a5a02a 100644 --- a/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateUsersSessionsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sessiontermination/TerminateUsersSessionsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public TerminateUsersSessionsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new TerminateUsersSessionsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksappitems/FindAppItemForSharedLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksappitems/FindAppItemForSharedLinkHeaders.java index 86f919d7c..e5ef2915d 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksappitems/FindAppItemForSharedLinkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksappitems/FindAppItemForSharedLinkHeaders.java @@ -42,7 +42,6 @@ public static class Builder { public Builder(String boxapi) { this.boxapi = boxapi; - this.extraHeaders = mapOf(); } public Builder extraHeaders(Map extraHeaders) { @@ -51,6 +50,9 @@ public Builder extraHeaders(Map extraHeaders) { } public FindAppItemForSharedLinkHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new FindAppItemForSharedLinkHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksappitems/SharedLinksAppItemsManager.java b/src/main/java/com/box/sdkgen/managers/sharedlinksappitems/SharedLinksAppItemsManager.java index f857cf195..83105680a 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksappitems/SharedLinksAppItemsManager.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksappitems/SharedLinksAppItemsManager.java @@ -75,9 +75,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -90,6 +88,9 @@ public Builder networkSession(NetworkSession networkSession) { } public SharedLinksAppItemsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new SharedLinksAppItemsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileHeaders.java index 61d058307..03812187e 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public AddShareLinkToFileHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new AddShareLinkToFileHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/FindFileForSharedLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/FindFileForSharedLinkHeaders.java index fe9e72be6..9e580a235 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/FindFileForSharedLinkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/FindFileForSharedLinkHeaders.java @@ -59,7 +59,6 @@ public static class Builder { public Builder(String boxapi) { this.boxapi = boxapi; - this.extraHeaders = mapOf(); } public Builder ifNoneMatch(String ifNoneMatch) { @@ -73,6 +72,9 @@ public Builder extraHeaders(Map extraHeaders) { } public FindFileForSharedLinkHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new FindFileForSharedLinkHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/GetSharedLinkForFileHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/GetSharedLinkForFileHeaders.java index bbd8a861c..2a035f344 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/GetSharedLinkForFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/GetSharedLinkForFileHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetSharedLinkForFileHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetSharedLinkForFileHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileHeaders.java index 0d139d03b..bee5d9a20 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/RemoveSharedLinkFromFileHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public RemoveSharedLinkFromFileHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new RemoveSharedLinkFromFileHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/SharedLinksFilesManager.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/SharedLinksFilesManager.java index b0f548f48..92a308ee0 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/SharedLinksFilesManager.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/SharedLinksFilesManager.java @@ -438,9 +438,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -453,6 +451,9 @@ public Builder networkSession(NetworkSession networkSession) { } public SharedLinksFilesManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new SharedLinksFilesManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileHeaders.java index 4fc10bd57..d8890189a 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateSharedLinkOnFileHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateSharedLinkOnFileHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderHeaders.java index 1fc057b2d..611fab3ac 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public AddShareLinkToFolderHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new AddShareLinkToFolderHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/FindFolderForSharedLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/FindFolderForSharedLinkHeaders.java index 1e7ab173d..9ef238fe7 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/FindFolderForSharedLinkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/FindFolderForSharedLinkHeaders.java @@ -59,7 +59,6 @@ public static class Builder { public Builder(String boxapi) { this.boxapi = boxapi; - this.extraHeaders = mapOf(); } public Builder ifNoneMatch(String ifNoneMatch) { @@ -73,6 +72,9 @@ public Builder extraHeaders(Map extraHeaders) { } public FindFolderForSharedLinkHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new FindFolderForSharedLinkHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/GetSharedLinkForFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/GetSharedLinkForFolderHeaders.java index 8957c3482..8cef9ea46 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/GetSharedLinkForFolderHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/GetSharedLinkForFolderHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetSharedLinkForFolderHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetSharedLinkForFolderHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderHeaders.java index b533d75e1..47a1874cb 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/RemoveSharedLinkFromFolderHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public RemoveSharedLinkFromFolderHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new RemoveSharedLinkFromFolderHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/SharedLinksFoldersManager.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/SharedLinksFoldersManager.java index 8dc9fbf5f..b9a487e4e 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/SharedLinksFoldersManager.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/SharedLinksFoldersManager.java @@ -455,9 +455,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -470,6 +468,9 @@ public Builder networkSession(NetworkSession networkSession) { } public SharedLinksFoldersManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new SharedLinksFoldersManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderHeaders.java index 55070e455..bfe7bacd8 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateSharedLinkOnFolderHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateSharedLinkOnFolderHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkHeaders.java index bd1bdbb36..fcd98831e 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public AddShareLinkToWebLinkHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new AddShareLinkToWebLinkHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/FindWebLinkForSharedLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/FindWebLinkForSharedLinkHeaders.java index 0f1c90835..87be51c4e 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/FindWebLinkForSharedLinkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/FindWebLinkForSharedLinkHeaders.java @@ -59,7 +59,6 @@ public static class Builder { public Builder(String boxapi) { this.boxapi = boxapi; - this.extraHeaders = mapOf(); } public Builder ifNoneMatch(String ifNoneMatch) { @@ -73,6 +72,9 @@ public Builder extraHeaders(Map extraHeaders) { } public FindWebLinkForSharedLinkHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new FindWebLinkForSharedLinkHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/GetSharedLinkForWebLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/GetSharedLinkForWebLinkHeaders.java index c36269763..6cf2a2b26 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/GetSharedLinkForWebLinkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/GetSharedLinkForWebLinkHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetSharedLinkForWebLinkHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetSharedLinkForWebLinkHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkHeaders.java index 4d7df09fb..fefe544a7 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/RemoveSharedLinkFromWebLinkHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public RemoveSharedLinkFromWebLinkHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new RemoveSharedLinkFromWebLinkHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/SharedLinksWebLinksManager.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/SharedLinksWebLinksManager.java index cd69aadf3..244005bed 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/SharedLinksWebLinksManager.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/SharedLinksWebLinksManager.java @@ -399,9 +399,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -414,6 +412,9 @@ public Builder networkSession(NetworkSession networkSession) { } public SharedLinksWebLinksManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new SharedLinksWebLinksManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkHeaders.java index efbfdde29..bdb8407f8 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateSharedLinkOnWebLinkHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateSharedLinkOnWebLinkHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/CreateShieldInformationBarrierReportHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/CreateShieldInformationBarrierReportHeaders.java index 3e157ff6d..15d86e3fd 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/CreateShieldInformationBarrierReportHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/CreateShieldInformationBarrierReportHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateShieldInformationBarrierReportHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateShieldInformationBarrierReportHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportByIdHeaders.java index c815f520d..d71159613 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetShieldInformationBarrierReportByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetShieldInformationBarrierReportByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportsHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportsHeaders.java index 41f5d7486..e78530b8e 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/GetShieldInformationBarrierReportsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetShieldInformationBarrierReportsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetShieldInformationBarrierReportsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/ShieldInformationBarrierReportsManager.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/ShieldInformationBarrierReportsManager.java index a9422c969..2aa0869ba 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/ShieldInformationBarrierReportsManager.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarrierreports/ShieldInformationBarrierReportsManager.java @@ -177,9 +177,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -192,6 +190,9 @@ public Builder networkSession(NetworkSession networkSession) { } public ShieldInformationBarrierReportsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new ShieldInformationBarrierReportsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/CreateShieldInformationBarrierHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/CreateShieldInformationBarrierHeaders.java index 6253afbfd..22f328765 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/CreateShieldInformationBarrierHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/CreateShieldInformationBarrierHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateShieldInformationBarrierHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateShieldInformationBarrierHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarrierByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarrierByIdHeaders.java index a3b20d940..8dfe0072c 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarrierByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarrierByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetShieldInformationBarrierByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetShieldInformationBarrierByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarriersHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarriersHeaders.java index 125e77ab7..bbd239b97 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarriersHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/GetShieldInformationBarriersHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetShieldInformationBarriersHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetShieldInformationBarriersHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/ShieldInformationBarriersManager.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/ShieldInformationBarriersManager.java index a6c342aa1..f0aff6361 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/ShieldInformationBarriersManager.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/ShieldInformationBarriersManager.java @@ -227,9 +227,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -242,6 +240,9 @@ public Builder networkSession(NetworkSession networkSession) { } public ShieldInformationBarriersManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new ShieldInformationBarriersManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusHeaders.java index e73f54b1a..b98e70336 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateShieldInformationBarrierStatusHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateShieldInformationBarrierStatusHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberHeaders.java index 8b73711ad..9577932d3 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateShieldInformationBarrierSegmentMemberHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateShieldInformationBarrierSegmentMemberHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/DeleteShieldInformationBarrierSegmentMemberByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/DeleteShieldInformationBarrierSegmentMemberByIdHeaders.java index 76c88e956..5e3345c3f 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/DeleteShieldInformationBarrierSegmentMemberByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/DeleteShieldInformationBarrierSegmentMemberByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteShieldInformationBarrierSegmentMemberByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteShieldInformationBarrierSegmentMemberByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMemberByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMemberByIdHeaders.java index aecc121a9..f53ed279e 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMemberByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMemberByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetShieldInformationBarrierSegmentMemberByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetShieldInformationBarrierSegmentMemberByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMembersHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMembersHeaders.java index fc880be6a..5f0dfc617 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMembersHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/GetShieldInformationBarrierSegmentMembersHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetShieldInformationBarrierSegmentMembersHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetShieldInformationBarrierSegmentMembersHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembersManager.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembersManager.java index 2deea127c..a35fd7eb8 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembersManager.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/ShieldInformationBarrierSegmentMembersManager.java @@ -220,9 +220,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -235,6 +233,9 @@ public Builder networkSession(NetworkSession networkSession) { } public ShieldInformationBarrierSegmentMembersManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new ShieldInformationBarrierSegmentMembersManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionHeaders.java index cc4fb7a63..258fdd929 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateShieldInformationBarrierSegmentRestrictionHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateShieldInformationBarrierSegmentRestrictionHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBody.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBody.java index 2f670f733..bdb5e3575 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBody.java @@ -151,10 +151,6 @@ public Builder( super(); this.shieldInformationBarrierSegment = shieldInformationBarrierSegment; this.restrictedSegment = restrictedSegment; - this.type = - new EnumWrapper( - CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeField - .SHIELD_INFORMATION_BARRIER_SEGMENT_RESTRICTION); } public Builder type(CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeField type) { @@ -176,6 +172,12 @@ public Builder shieldInformationBarrier(ShieldInformationBarrierBase shieldInfor } public CreateShieldInformationBarrierSegmentRestrictionRequestBody build() { + if (this.type == null) { + this.type = + new EnumWrapper( + CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeField + .SHIELD_INFORMATION_BARRIER_SEGMENT_RESTRICTION); + } return new CreateShieldInformationBarrierSegmentRestrictionRequestBody(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders.java index 4b7d8729e..b86ec396a 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteShieldInformationBarrierSegmentRestrictionByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionByIdHeaders.java index 56464ec03..8d7334dde 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetShieldInformationBarrierSegmentRestrictionByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetShieldInformationBarrierSegmentRestrictionByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionsHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionsHeaders.java index 4408a301a..fc7ce13f7 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/GetShieldInformationBarrierSegmentRestrictionsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetShieldInformationBarrierSegmentRestrictionsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetShieldInformationBarrierSegmentRestrictionsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictionsManager.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictionsManager.java index 3b1b45cba..17515b12d 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictionsManager.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/ShieldInformationBarrierSegmentRestrictionsManager.java @@ -226,9 +226,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -241,6 +239,9 @@ public Builder networkSession(NetworkSession networkSession) { } public ShieldInformationBarrierSegmentRestrictionsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new ShieldInformationBarrierSegmentRestrictionsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/CreateShieldInformationBarrierSegmentHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/CreateShieldInformationBarrierSegmentHeaders.java index 99f94f9db..d08845728 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/CreateShieldInformationBarrierSegmentHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/CreateShieldInformationBarrierSegmentHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateShieldInformationBarrierSegmentHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateShieldInformationBarrierSegmentHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/DeleteShieldInformationBarrierSegmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/DeleteShieldInformationBarrierSegmentByIdHeaders.java index c194215b5..659d3e07a 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/DeleteShieldInformationBarrierSegmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/DeleteShieldInformationBarrierSegmentByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteShieldInformationBarrierSegmentByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteShieldInformationBarrierSegmentByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentByIdHeaders.java index 4627d494e..816c12bb2 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetShieldInformationBarrierSegmentByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetShieldInformationBarrierSegmentByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentsHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentsHeaders.java index 7aa4c6d29..4e0ab714d 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/GetShieldInformationBarrierSegmentsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetShieldInformationBarrierSegmentsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetShieldInformationBarrierSegmentsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/ShieldInformationBarrierSegmentsManager.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/ShieldInformationBarrierSegmentsManager.java index 164a15607..0ccaab2b1 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/ShieldInformationBarrierSegmentsManager.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/ShieldInformationBarrierSegmentsManager.java @@ -298,9 +298,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -313,6 +311,9 @@ public Builder networkSession(NetworkSession networkSession) { } public ShieldInformationBarrierSegmentsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new ShieldInformationBarrierSegmentsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/UpdateShieldInformationBarrierSegmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/UpdateShieldInformationBarrierSegmentByIdHeaders.java index 432f0ca38..d63875262 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/UpdateShieldInformationBarrierSegmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegments/UpdateShieldInformationBarrierSegmentByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateShieldInformationBarrierSegmentByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateShieldInformationBarrierSegmentByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldlists/CreateShieldListV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/shieldlists/CreateShieldListV2025R0Headers.java index c8c2fb25e..bf428f01e 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldlists/CreateShieldListV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/shieldlists/CreateShieldListV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateShieldListV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateShieldListV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldlists/DeleteShieldListByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/shieldlists/DeleteShieldListByIdV2025R0Headers.java index a03d36dee..bf8620ed8 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldlists/DeleteShieldListByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/shieldlists/DeleteShieldListByIdV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteShieldListByIdV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteShieldListByIdV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldlists/GetShieldListByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/shieldlists/GetShieldListByIdV2025R0Headers.java index 170e566fa..0b11c38c6 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldlists/GetShieldListByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/shieldlists/GetShieldListByIdV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public GetShieldListByIdV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetShieldListByIdV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldlists/GetShieldListsV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/shieldlists/GetShieldListsV2025R0Headers.java index d76ae559d..cef3ac41c 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldlists/GetShieldListsV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/shieldlists/GetShieldListsV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public GetShieldListsV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetShieldListsV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldlists/ShieldListsManager.java b/src/main/java/com/box/sdkgen/managers/shieldlists/ShieldListsManager.java index 5f3b6946b..9821f0a4a 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldlists/ShieldListsManager.java +++ b/src/main/java/com/box/sdkgen/managers/shieldlists/ShieldListsManager.java @@ -265,9 +265,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -280,6 +278,9 @@ public Builder networkSession(NetworkSession networkSession) { } public ShieldListsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new ShieldListsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/shieldlists/UpdateShieldListByIdV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/shieldlists/UpdateShieldListByIdV2025R0Headers.java index 642910557..a04c29dd6 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldlists/UpdateShieldListByIdV2025R0Headers.java +++ b/src/main/java/com/box/sdkgen/managers/shieldlists/UpdateShieldListByIdV2025R0Headers.java @@ -38,10 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { this.boxVersion = new EnumWrapper(boxVersion); @@ -59,6 +56,12 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateShieldListByIdV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateShieldListByIdV2025R0Headers(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/signrequests/CancelSignRequestHeaders.java b/src/main/java/com/box/sdkgen/managers/signrequests/CancelSignRequestHeaders.java index 63faca687..8cf996fe2 100644 --- a/src/main/java/com/box/sdkgen/managers/signrequests/CancelSignRequestHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/signrequests/CancelSignRequestHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CancelSignRequestHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CancelSignRequestHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/signrequests/CreateSignRequestHeaders.java b/src/main/java/com/box/sdkgen/managers/signrequests/CreateSignRequestHeaders.java index 64159c92f..85003da2d 100644 --- a/src/main/java/com/box/sdkgen/managers/signrequests/CreateSignRequestHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/signrequests/CreateSignRequestHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateSignRequestHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateSignRequestHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestByIdHeaders.java index 2f48a6c24..b57bb17c4 100644 --- a/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetSignRequestByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetSignRequestByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestsHeaders.java b/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestsHeaders.java index 1e73d4a24..5e5b15b82 100644 --- a/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/signrequests/GetSignRequestsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetSignRequestsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetSignRequestsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/signrequests/ResendSignRequestHeaders.java b/src/main/java/com/box/sdkgen/managers/signrequests/ResendSignRequestHeaders.java index c91a35653..f97dea3f2 100644 --- a/src/main/java/com/box/sdkgen/managers/signrequests/ResendSignRequestHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/signrequests/ResendSignRequestHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public ResendSignRequestHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new ResendSignRequestHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/signrequests/SignRequestsManager.java b/src/main/java/com/box/sdkgen/managers/signrequests/SignRequestsManager.java index 47ed51803..50d46ed2f 100644 --- a/src/main/java/com/box/sdkgen/managers/signrequests/SignRequestsManager.java +++ b/src/main/java/com/box/sdkgen/managers/signrequests/SignRequestsManager.java @@ -259,9 +259,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -274,6 +272,9 @@ public Builder networkSession(NetworkSession networkSession) { } public SignRequestsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new SignRequestsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplateByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplateByIdHeaders.java index 84d58af3b..f031d48ef 100644 --- a/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplateByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplateByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetSignTemplateByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetSignTemplateByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplatesHeaders.java b/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplatesHeaders.java index d18dda799..4968ecbd6 100644 --- a/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplatesHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/signtemplates/GetSignTemplatesHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetSignTemplatesHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetSignTemplatesHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/signtemplates/SignTemplatesManager.java b/src/main/java/com/box/sdkgen/managers/signtemplates/SignTemplatesManager.java index 1fc374407..cf7800e09 100644 --- a/src/main/java/com/box/sdkgen/managers/signtemplates/SignTemplatesManager.java +++ b/src/main/java/com/box/sdkgen/managers/signtemplates/SignTemplatesManager.java @@ -139,9 +139,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -154,6 +152,9 @@ public Builder networkSession(NetworkSession networkSession) { } public SignTemplatesManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new SignTemplatesManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/skills/CreateBoxSkillCardsOnFileHeaders.java b/src/main/java/com/box/sdkgen/managers/skills/CreateBoxSkillCardsOnFileHeaders.java index d0f53aa6c..52836ad42 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/CreateBoxSkillCardsOnFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/skills/CreateBoxSkillCardsOnFileHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateBoxSkillCardsOnFileHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateBoxSkillCardsOnFileHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/skills/DeleteBoxSkillCardsFromFileHeaders.java b/src/main/java/com/box/sdkgen/managers/skills/DeleteBoxSkillCardsFromFileHeaders.java index 7d07faa0f..43275cffd 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/DeleteBoxSkillCardsFromFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/skills/DeleteBoxSkillCardsFromFileHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteBoxSkillCardsFromFileHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteBoxSkillCardsFromFileHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/skills/GetBoxSkillCardsOnFileHeaders.java b/src/main/java/com/box/sdkgen/managers/skills/GetBoxSkillCardsOnFileHeaders.java index 55488f1de..98f4d4fdd 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/GetBoxSkillCardsOnFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/skills/GetBoxSkillCardsOnFileHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetBoxSkillCardsOnFileHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetBoxSkillCardsOnFileHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/skills/SkillsManager.java b/src/main/java/com/box/sdkgen/managers/skills/SkillsManager.java index c5e603338..5d5f18c1d 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/SkillsManager.java +++ b/src/main/java/com/box/sdkgen/managers/skills/SkillsManager.java @@ -278,9 +278,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -293,6 +291,9 @@ public Builder networkSession(NetworkSession networkSession) { } public SkillsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new SkillsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileHeaders.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileHeaders.java index 6c6e0bd65..2d3989e7b 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateAllSkillCardsOnFileHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateAllSkillCardsOnFileHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileHeaders.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileHeaders.java index 2a958df8a..a377d7a90 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateBoxSkillCardsOnFileHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateBoxSkillCardsOnFileHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePoliciesHeaders.java b/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePoliciesHeaders.java index 53f1447fa..111e729ad 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePoliciesHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePoliciesHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetStoragePoliciesHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetStoragePoliciesHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePolicyByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePolicyByIdHeaders.java index 91fefd2a5..5e8a00385 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePolicyByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicies/GetStoragePolicyByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetStoragePolicyByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetStoragePolicyByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicies/StoragePoliciesManager.java b/src/main/java/com/box/sdkgen/managers/storagepolicies/StoragePoliciesManager.java index ab79d9a31..4300b6203 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicies/StoragePoliciesManager.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicies/StoragePoliciesManager.java @@ -139,9 +139,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -154,6 +152,9 @@ public Builder networkSession(NetworkSession networkSession) { } public StoragePoliciesManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new StoragePoliciesManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentHeaders.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentHeaders.java index fd95fa3d1..d5c5486b8 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateStoragePolicyAssignmentHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateStoragePolicyAssignmentHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyStoragePolicyField.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyStoragePolicyField.java index 2301bdc9a..ec0a07b86 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyStoragePolicyField.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyStoragePolicyField.java @@ -89,9 +89,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField.STORAGE_POLICY); } public Builder type(CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField type) { @@ -107,6 +104,11 @@ public Builder type( } public CreateStoragePolicyAssignmentRequestBodyStoragePolicyField build() { + if (this.type == null) { + this.type = + new EnumWrapper( + CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField.STORAGE_POLICY); + } return new CreateStoragePolicyAssignmentRequestBodyStoragePolicyField(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/DeleteStoragePolicyAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/DeleteStoragePolicyAssignmentByIdHeaders.java index b4df815af..74ad22220 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/DeleteStoragePolicyAssignmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/DeleteStoragePolicyAssignmentByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteStoragePolicyAssignmentByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteStoragePolicyAssignmentByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentByIdHeaders.java index 3db29af35..dba829555 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetStoragePolicyAssignmentByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetStoragePolicyAssignmentByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsHeaders.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsHeaders.java index 3b3376554..fc0018af7 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetStoragePolicyAssignmentsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetStoragePolicyAssignmentsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/StoragePolicyAssignmentsManager.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/StoragePolicyAssignmentsManager.java index 0dbfab898..dcdb08786 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/StoragePolicyAssignmentsManager.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/StoragePolicyAssignmentsManager.java @@ -262,9 +262,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -277,6 +275,9 @@ public Builder networkSession(NetworkSession networkSession) { } public StoragePolicyAssignmentsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new StoragePolicyAssignmentsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdHeaders.java index 9187bf0ae..801a84cad 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateStoragePolicyAssignmentByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateStoragePolicyAssignmentByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField.java index b995cc8ca..46f2f07ba 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField.java @@ -91,9 +91,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField.STORAGE_POLICY); } public Builder type(UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField type) { @@ -109,6 +106,11 @@ public Builder type( } public UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField build() { + if (this.type == null) { + this.type = + new EnumWrapper( + UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField.STORAGE_POLICY); + } return new UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentHeaders.java b/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentHeaders.java index 553cef9c0..236ba0b61 100644 --- a/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateTaskAssignmentHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateTaskAssignmentHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyTaskField.java b/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyTaskField.java index aa7a39d2b..eca971a9b 100644 --- a/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyTaskField.java +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyTaskField.java @@ -88,9 +88,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - CreateTaskAssignmentRequestBodyTaskTypeField.TASK); } public Builder type(CreateTaskAssignmentRequestBodyTaskTypeField type) { @@ -104,6 +101,11 @@ public Builder type(EnumWrapper ty } public CreateTaskAssignmentRequestBodyTaskField build() { + if (this.type == null) { + this.type = + new EnumWrapper( + CreateTaskAssignmentRequestBodyTaskTypeField.TASK); + } return new CreateTaskAssignmentRequestBodyTaskField(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/DeleteTaskAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/taskassignments/DeleteTaskAssignmentByIdHeaders.java index 472bd4e04..73972856f 100644 --- a/src/main/java/com/box/sdkgen/managers/taskassignments/DeleteTaskAssignmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/DeleteTaskAssignmentByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteTaskAssignmentByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteTaskAssignmentByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/GetTaskAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/taskassignments/GetTaskAssignmentByIdHeaders.java index 285c72347..997243b72 100644 --- a/src/main/java/com/box/sdkgen/managers/taskassignments/GetTaskAssignmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/GetTaskAssignmentByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetTaskAssignmentByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetTaskAssignmentByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/GetTaskAssignmentsHeaders.java b/src/main/java/com/box/sdkgen/managers/taskassignments/GetTaskAssignmentsHeaders.java index 0beea9241..9883d42fd 100644 --- a/src/main/java/com/box/sdkgen/managers/taskassignments/GetTaskAssignmentsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/GetTaskAssignmentsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetTaskAssignmentsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetTaskAssignmentsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/TaskAssignmentsManager.java b/src/main/java/com/box/sdkgen/managers/taskassignments/TaskAssignmentsManager.java index 793939722..155d7c54b 100644 --- a/src/main/java/com/box/sdkgen/managers/taskassignments/TaskAssignmentsManager.java +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/TaskAssignmentsManager.java @@ -269,9 +269,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -284,6 +282,9 @@ public Builder networkSession(NetworkSession networkSession) { } public TaskAssignmentsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new TaskAssignmentsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdHeaders.java index e57cfd804..3ac016283 100644 --- a/src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateTaskAssignmentByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateTaskAssignmentByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskHeaders.java b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskHeaders.java index f50f7620b..81d6fb9ee 100644 --- a/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateTaskHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateTaskHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/tasks/DeleteTaskByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/tasks/DeleteTaskByIdHeaders.java index 6beac580f..c251724f5 100644 --- a/src/main/java/com/box/sdkgen/managers/tasks/DeleteTaskByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/tasks/DeleteTaskByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteTaskByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteTaskByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/tasks/GetFileTasksHeaders.java b/src/main/java/com/box/sdkgen/managers/tasks/GetFileTasksHeaders.java index 2d1f6c633..f1f5f8bf3 100644 --- a/src/main/java/com/box/sdkgen/managers/tasks/GetFileTasksHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/tasks/GetFileTasksHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetFileTasksHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetFileTasksHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/tasks/GetTaskByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/tasks/GetTaskByIdHeaders.java index ff2494a14..a2637b80e 100644 --- a/src/main/java/com/box/sdkgen/managers/tasks/GetTaskByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/tasks/GetTaskByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetTaskByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetTaskByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/tasks/TasksManager.java b/src/main/java/com/box/sdkgen/managers/tasks/TasksManager.java index 561c4c31a..7ea68da03 100644 --- a/src/main/java/com/box/sdkgen/managers/tasks/TasksManager.java +++ b/src/main/java/com/box/sdkgen/managers/tasks/TasksManager.java @@ -259,9 +259,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -274,6 +272,9 @@ public Builder networkSession(NetworkSession networkSession) { } public TasksManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new TasksManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdHeaders.java index 93141a7b5..f1f069dd8 100644 --- a/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateTaskByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateTaskByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceHeaders.java b/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceHeaders.java index 98855e687..65d5c2c93 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateTermsOfServiceHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateTermsOfServiceHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceByIdHeaders.java index 9948ce97b..0bde38016 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetTermsOfServiceByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetTermsOfServiceByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceHeaders.java b/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceHeaders.java index 626201768..71a067962 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetTermsOfServiceHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetTermsOfServiceHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/TermsOfServicesManager.java b/src/main/java/com/box/sdkgen/managers/termsofservices/TermsOfServicesManager.java index 631b312b4..0e994a99f 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofservices/TermsOfServicesManager.java +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/TermsOfServicesManager.java @@ -218,9 +218,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -233,6 +231,9 @@ public Builder networkSession(NetworkSession networkSession) { } public TermsOfServicesManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new TermsOfServicesManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdHeaders.java index e05f9e891..ef655bfbc 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateTermsOfServiceByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateTermsOfServiceByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserHeaders.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserHeaders.java index 5b46f7203..f32ca8961 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateTermsOfServiceStatusForUserHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateTermsOfServiceStatusForUserHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyTosField.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyTosField.java index eb8b515cd..9c41e0a3c 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyTosField.java +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyTosField.java @@ -89,9 +89,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - CreateTermsOfServiceStatusForUserRequestBodyTosTypeField.TERMS_OF_SERVICE); } public Builder type(CreateTermsOfServiceStatusForUserRequestBodyTosTypeField type) { @@ -106,6 +103,11 @@ public Builder type( } public CreateTermsOfServiceStatusForUserRequestBodyTosField build() { + if (this.type == null) { + this.type = + new EnumWrapper( + CreateTermsOfServiceStatusForUserRequestBodyTosTypeField.TERMS_OF_SERVICE); + } return new CreateTermsOfServiceStatusForUserRequestBodyTosField(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyUserField.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyUserField.java index 36597c248..e914f6d4c 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyUserField.java +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyUserField.java @@ -89,9 +89,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - CreateTermsOfServiceStatusForUserRequestBodyUserTypeField.USER); } public Builder type(CreateTermsOfServiceStatusForUserRequestBodyUserTypeField type) { @@ -106,6 +103,11 @@ public Builder type( } public CreateTermsOfServiceStatusForUserRequestBodyUserField build() { + if (this.type == null) { + this.type = + new EnumWrapper( + CreateTermsOfServiceStatusForUserRequestBodyUserTypeField.USER); + } return new CreateTermsOfServiceStatusForUserRequestBodyUserField(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/GetTermsOfServiceUserStatusesHeaders.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/GetTermsOfServiceUserStatusesHeaders.java index 6e4867f47..e3bbbe858 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/GetTermsOfServiceUserStatusesHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/GetTermsOfServiceUserStatusesHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetTermsOfServiceUserStatusesHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetTermsOfServiceUserStatusesHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/TermsOfServiceUserStatusesManager.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/TermsOfServiceUserStatusesManager.java index 76457733c..758f52f23 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/TermsOfServiceUserStatusesManager.java +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/TermsOfServiceUserStatusesManager.java @@ -180,9 +180,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -195,6 +193,9 @@ public Builder networkSession(NetworkSession networkSession) { } public TermsOfServiceUserStatusesManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new TermsOfServiceUserStatusesManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/UpdateTermsOfServiceStatusForUserByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/UpdateTermsOfServiceStatusForUserByIdHeaders.java index 0fc2a6dd0..79861b458 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/UpdateTermsOfServiceStatusForUserByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/UpdateTermsOfServiceStatusForUserByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateTermsOfServiceStatusForUserByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateTermsOfServiceStatusForUserByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/transfer/TransferManager.java b/src/main/java/com/box/sdkgen/managers/transfer/TransferManager.java index d1f22bf2d..c13d581ee 100644 --- a/src/main/java/com/box/sdkgen/managers/transfer/TransferManager.java +++ b/src/main/java/com/box/sdkgen/managers/transfer/TransferManager.java @@ -244,9 +244,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -259,6 +257,9 @@ public Builder networkSession(NetworkSession networkSession) { } public TransferManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new TransferManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderHeaders.java b/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderHeaders.java index 22d5099b4..35eeea975 100644 --- a/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/transfer/TransferOwnedFolderHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public TransferOwnedFolderHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new TransferOwnedFolderHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/trashedfiles/DeleteTrashedFileByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedfiles/DeleteTrashedFileByIdHeaders.java index 66eebdf85..b1f41a661 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfiles/DeleteTrashedFileByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfiles/DeleteTrashedFileByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteTrashedFileByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteTrashedFileByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/trashedfiles/GetTrashedFileByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedfiles/GetTrashedFileByIdHeaders.java index 06be2b91f..b1b33763c 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfiles/GetTrashedFileByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfiles/GetTrashedFileByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetTrashedFileByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetTrashedFileByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashHeaders.java index 70c63d8fc..13e7e8d22 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfiles/RestoreFileFromTrashHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public RestoreFileFromTrashHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new RestoreFileFromTrashHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/trashedfiles/TrashedFilesManager.java b/src/main/java/com/box/sdkgen/managers/trashedfiles/TrashedFilesManager.java index 4c4f39980..8afdfbffa 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfiles/TrashedFilesManager.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfiles/TrashedFilesManager.java @@ -383,9 +383,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -398,6 +396,9 @@ public Builder networkSession(NetworkSession networkSession) { } public TrashedFilesManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new TrashedFilesManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/trashedfolders/DeleteTrashedFolderByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedfolders/DeleteTrashedFolderByIdHeaders.java index 90cf99864..f5783a239 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfolders/DeleteTrashedFolderByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfolders/DeleteTrashedFolderByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteTrashedFolderByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteTrashedFolderByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/trashedfolders/GetTrashedFolderByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedfolders/GetTrashedFolderByIdHeaders.java index b8cf1e1a0..899c0c916 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfolders/GetTrashedFolderByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfolders/GetTrashedFolderByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetTrashedFolderByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetTrashedFolderByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashHeaders.java index e6ec848a6..fb1e908b9 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfolders/RestoreFolderFromTrashHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public RestoreFolderFromTrashHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new RestoreFolderFromTrashHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/trashedfolders/TrashedFoldersManager.java b/src/main/java/com/box/sdkgen/managers/trashedfolders/TrashedFoldersManager.java index eab42a406..c8a794f87 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedfolders/TrashedFoldersManager.java +++ b/src/main/java/com/box/sdkgen/managers/trashedfolders/TrashedFoldersManager.java @@ -448,9 +448,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -463,6 +461,9 @@ public Builder networkSession(NetworkSession networkSession) { } public TrashedFoldersManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new TrashedFoldersManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsHeaders.java b/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsHeaders.java index cfc855633..f49841dd2 100644 --- a/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetTrashedItemsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetTrashedItemsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/trasheditems/TrashedItemsManager.java b/src/main/java/com/box/sdkgen/managers/trasheditems/TrashedItemsManager.java index c466ff2ea..4f29152a5 100644 --- a/src/main/java/com/box/sdkgen/managers/trasheditems/TrashedItemsManager.java +++ b/src/main/java/com/box/sdkgen/managers/trasheditems/TrashedItemsManager.java @@ -131,9 +131,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -146,6 +144,9 @@ public Builder networkSession(NetworkSession networkSession) { } public TrashedItemsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new TrashedItemsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/trashedweblinks/DeleteTrashedWebLinkByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedweblinks/DeleteTrashedWebLinkByIdHeaders.java index acbb1cbf9..ffcbdf2aa 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedweblinks/DeleteTrashedWebLinkByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/trashedweblinks/DeleteTrashedWebLinkByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteTrashedWebLinkByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteTrashedWebLinkByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/trashedweblinks/GetTrashedWebLinkByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedweblinks/GetTrashedWebLinkByIdHeaders.java index 520deec5f..93520c294 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedweblinks/GetTrashedWebLinkByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/trashedweblinks/GetTrashedWebLinkByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetTrashedWebLinkByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetTrashedWebLinkByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashHeaders.java b/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashHeaders.java index 4ef5a1352..910855878 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/trashedweblinks/RestoreWeblinkFromTrashHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public RestoreWeblinkFromTrashHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new RestoreWeblinkFromTrashHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/trashedweblinks/TrashedWebLinksManager.java b/src/main/java/com/box/sdkgen/managers/trashedweblinks/TrashedWebLinksManager.java index f8cf71227..13420c49a 100644 --- a/src/main/java/com/box/sdkgen/managers/trashedweblinks/TrashedWebLinksManager.java +++ b/src/main/java/com/box/sdkgen/managers/trashedweblinks/TrashedWebLinksManager.java @@ -313,9 +313,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -328,6 +326,9 @@ public Builder networkSession(NetworkSession networkSession) { } public TrashedWebLinksManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new TrashedWebLinksManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckHeaders.java b/src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckHeaders.java index b4c826446..a07e323dc 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/PreflightFileUploadCheckHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public PreflightFileUploadCheckHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new PreflightFileUploadCheckHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileHeaders.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileHeaders.java index 4c111f1e3..eacb1229c 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileHeaders.java @@ -38,9 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder contentMd5(String contentMd5) { this.contentMd5 = contentMd5; @@ -53,6 +51,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UploadFileHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UploadFileHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionHeaders.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionHeaders.java index 15aece270..c3a6af41e 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadFileVersionHeaders.java @@ -53,9 +53,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder ifMatch(String ifMatch) { this.ifMatch = ifMatch; @@ -73,6 +71,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UploadFileVersionHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UploadFileVersionHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckHeaders.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckHeaders.java index cb3442577..eb800e2fa 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadWithPreflightCheckHeaders.java @@ -38,9 +38,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder contentMd5(String contentMd5) { this.contentMd5 = contentMd5; @@ -53,6 +51,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UploadWithPreflightCheckHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UploadWithPreflightCheckHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/uploads/UploadsManager.java b/src/main/java/com/box/sdkgen/managers/uploads/UploadsManager.java index 128b611a9..918730c5e 100644 --- a/src/main/java/com/box/sdkgen/managers/uploads/UploadsManager.java +++ b/src/main/java/com/box/sdkgen/managers/uploads/UploadsManager.java @@ -416,9 +416,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -431,6 +429,9 @@ public Builder networkSession(NetworkSession networkSession) { } public UploadsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new UploadsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationHeaders.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationHeaders.java index 73affcb59..c08864cd1 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateCollaborationHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateCollaborationHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/DeleteCollaborationByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/DeleteCollaborationByIdHeaders.java index 9a488daa5..c8cc6a859 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/DeleteCollaborationByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/DeleteCollaborationByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteCollaborationByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteCollaborationByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/GetCollaborationByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/GetCollaborationByIdHeaders.java index 38295e6f4..abce01fdf 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/GetCollaborationByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/GetCollaborationByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetCollaborationByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetCollaborationByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdHeaders.java index 1ace2d6c2..f9fe5b0ca 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateCollaborationByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateCollaborationByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/UserCollaborationsManager.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/UserCollaborationsManager.java index 24cde5ecd..fbe675d9f 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/UserCollaborationsManager.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/UserCollaborationsManager.java @@ -328,9 +328,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -343,6 +341,9 @@ public Builder networkSession(NetworkSession networkSession) { } public UserCollaborationsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new UserCollaborationsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/users/CreateUserHeaders.java b/src/main/java/com/box/sdkgen/managers/users/CreateUserHeaders.java index e9227fa61..91f5d39d2 100644 --- a/src/main/java/com/box/sdkgen/managers/users/CreateUserHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/users/CreateUserHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateUserHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateUserHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdHeaders.java index 9f7ed6e78..291c81385 100644 --- a/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteUserByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteUserByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/users/GetUserByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/users/GetUserByIdHeaders.java index 4c7ee3d25..4118ae496 100644 --- a/src/main/java/com/box/sdkgen/managers/users/GetUserByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/users/GetUserByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetUserByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetUserByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/users/GetUserMeHeaders.java b/src/main/java/com/box/sdkgen/managers/users/GetUserMeHeaders.java index 02a37900a..eb13b629f 100644 --- a/src/main/java/com/box/sdkgen/managers/users/GetUserMeHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/users/GetUserMeHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetUserMeHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetUserMeHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/users/GetUsersHeaders.java b/src/main/java/com/box/sdkgen/managers/users/GetUsersHeaders.java index 259cf0b6e..e543ab263 100644 --- a/src/main/java/com/box/sdkgen/managers/users/GetUsersHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/users/GetUsersHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetUsersHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetUsersHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdHeaders.java index 72445f93c..cd6e0e80a 100644 --- a/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateUserByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateUserByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/users/UsersManager.java b/src/main/java/com/box/sdkgen/managers/users/UsersManager.java index 0abd97e67..0063c7c48 100644 --- a/src/main/java/com/box/sdkgen/managers/users/UsersManager.java +++ b/src/main/java/com/box/sdkgen/managers/users/UsersManager.java @@ -561,9 +561,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -576,6 +574,9 @@ public Builder networkSession(NetworkSession networkSession) { } public UsersManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new UsersManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookHeaders.java b/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookHeaders.java index 8fb782e16..cf0a7ef53 100644 --- a/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateWebhookHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateWebhookHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/DeleteWebhookByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/webhooks/DeleteWebhookByIdHeaders.java index fb2f926bb..92a3b8f7d 100644 --- a/src/main/java/com/box/sdkgen/managers/webhooks/DeleteWebhookByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/webhooks/DeleteWebhookByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteWebhookByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteWebhookByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhookByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhookByIdHeaders.java index 861dec777..44917097b 100644 --- a/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhookByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhookByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetWebhookByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetWebhookByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhooksHeaders.java b/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhooksHeaders.java index 6152e7cb3..719523bd8 100644 --- a/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhooksHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/webhooks/GetWebhooksHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetWebhooksHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetWebhooksHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdHeaders.java index adec28643..e2264abf3 100644 --- a/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateWebhookByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateWebhookByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/WebhooksManager.java b/src/main/java/com/box/sdkgen/managers/webhooks/WebhooksManager.java index 339ee6beb..ecf2ffd5f 100644 --- a/src/main/java/com/box/sdkgen/managers/webhooks/WebhooksManager.java +++ b/src/main/java/com/box/sdkgen/managers/webhooks/WebhooksManager.java @@ -381,9 +381,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -396,6 +394,9 @@ public Builder networkSession(NetworkSession networkSession) { } public WebhooksManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new WebhooksManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkHeaders.java b/src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkHeaders.java index 1713e4978..101400e50 100644 --- a/src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/weblinks/CreateWebLinkHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateWebLinkHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateWebLinkHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/DeleteWebLinkByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/weblinks/DeleteWebLinkByIdHeaders.java index 8d3b26e66..ea8aa187d 100644 --- a/src/main/java/com/box/sdkgen/managers/weblinks/DeleteWebLinkByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/weblinks/DeleteWebLinkByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DeleteWebLinkByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DeleteWebLinkByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/GetWebLinkByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/weblinks/GetWebLinkByIdHeaders.java index 71d0868fe..285f4f596 100644 --- a/src/main/java/com/box/sdkgen/managers/weblinks/GetWebLinkByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/weblinks/GetWebLinkByIdHeaders.java @@ -45,9 +45,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder boxapi(String boxapi) { this.boxapi = boxapi; @@ -60,6 +58,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetWebLinkByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetWebLinkByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdHeaders.java b/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdHeaders.java index a42e671f4..9f22e014c 100644 --- a/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public UpdateWebLinkByIdHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new UpdateWebLinkByIdHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/WebLinksManager.java b/src/main/java/com/box/sdkgen/managers/weblinks/WebLinksManager.java index a922e6a21..76b7d358f 100644 --- a/src/main/java/com/box/sdkgen/managers/weblinks/WebLinksManager.java +++ b/src/main/java/com/box/sdkgen/managers/weblinks/WebLinksManager.java @@ -217,9 +217,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -232,6 +230,9 @@ public Builder networkSession(NetworkSession networkSession) { } public WebLinksManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new WebLinksManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/workflows/GetWorkflowsHeaders.java b/src/main/java/com/box/sdkgen/managers/workflows/GetWorkflowsHeaders.java index 50140ab7e..31acbeb89 100644 --- a/src/main/java/com/box/sdkgen/managers/workflows/GetWorkflowsHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/workflows/GetWorkflowsHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetWorkflowsHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetWorkflowsHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowHeaders.java b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowHeaders.java index 4b05afb75..c7223e02d 100644 --- a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public StartWorkflowHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new StartWorkflowHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/workflows/WorkflowsManager.java b/src/main/java/com/box/sdkgen/managers/workflows/WorkflowsManager.java index d80ff14c0..18e4653ee 100644 --- a/src/main/java/com/box/sdkgen/managers/workflows/WorkflowsManager.java +++ b/src/main/java/com/box/sdkgen/managers/workflows/WorkflowsManager.java @@ -140,9 +140,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -155,6 +153,9 @@ public Builder networkSession(NetworkSession networkSession) { } public WorkflowsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new WorkflowsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/zipdownloads/CreateZipDownloadHeaders.java b/src/main/java/com/box/sdkgen/managers/zipdownloads/CreateZipDownloadHeaders.java index a8bf9586f..33eff6512 100644 --- a/src/main/java/com/box/sdkgen/managers/zipdownloads/CreateZipDownloadHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/zipdownloads/CreateZipDownloadHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public CreateZipDownloadHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new CreateZipDownloadHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/zipdownloads/DownloadZipHeaders.java b/src/main/java/com/box/sdkgen/managers/zipdownloads/DownloadZipHeaders.java index 4a553dc31..ef45f4fb2 100644 --- a/src/main/java/com/box/sdkgen/managers/zipdownloads/DownloadZipHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/zipdownloads/DownloadZipHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public DownloadZipHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new DownloadZipHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/zipdownloads/GetZipDownloadContentHeaders.java b/src/main/java/com/box/sdkgen/managers/zipdownloads/GetZipDownloadContentHeaders.java index 06d507ed7..a59fdf710 100644 --- a/src/main/java/com/box/sdkgen/managers/zipdownloads/GetZipDownloadContentHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/zipdownloads/GetZipDownloadContentHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetZipDownloadContentHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetZipDownloadContentHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/zipdownloads/GetZipDownloadStatusHeaders.java b/src/main/java/com/box/sdkgen/managers/zipdownloads/GetZipDownloadStatusHeaders.java index e48f5b4f7..d5a14f182 100644 --- a/src/main/java/com/box/sdkgen/managers/zipdownloads/GetZipDownloadStatusHeaders.java +++ b/src/main/java/com/box/sdkgen/managers/zipdownloads/GetZipDownloadStatusHeaders.java @@ -25,9 +25,7 @@ public static class Builder { protected Map extraHeaders; - public Builder() { - this.extraHeaders = mapOf(); - } + public Builder() {} public Builder extraHeaders(Map extraHeaders) { this.extraHeaders = extraHeaders; @@ -35,6 +33,9 @@ public Builder extraHeaders(Map extraHeaders) { } public GetZipDownloadStatusHeaders build() { + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } return new GetZipDownloadStatusHeaders(this); } } diff --git a/src/main/java/com/box/sdkgen/managers/zipdownloads/ZipDownloadsManager.java b/src/main/java/com/box/sdkgen/managers/zipdownloads/ZipDownloadsManager.java index 15a6665b3..6044b1b64 100644 --- a/src/main/java/com/box/sdkgen/managers/zipdownloads/ZipDownloadsManager.java +++ b/src/main/java/com/box/sdkgen/managers/zipdownloads/ZipDownloadsManager.java @@ -236,9 +236,7 @@ public static class Builder { protected NetworkSession networkSession; - public Builder() { - this.networkSession = new NetworkSession(); - } + public Builder() {} public Builder auth(Authentication auth) { this.auth = auth; @@ -251,6 +249,9 @@ public Builder networkSession(NetworkSession networkSession) { } public ZipDownloadsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } return new ZipDownloadsManager(this); } } diff --git a/src/main/java/com/box/sdkgen/networking/fetchoptions/FetchOptions.java b/src/main/java/com/box/sdkgen/networking/fetchoptions/FetchOptions.java index 7cab341fa..6cf853922 100644 --- a/src/main/java/com/box/sdkgen/networking/fetchoptions/FetchOptions.java +++ b/src/main/java/com/box/sdkgen/networking/fetchoptions/FetchOptions.java @@ -149,9 +149,6 @@ public static class Builder { public Builder(String url, String method) { this.url = url; this.method = method; - this.contentType = "application/json"; - this.responseFormat = new EnumWrapper(ResponseFormat.JSON); - this.followRedirects = true; } public Builder params(Map params) { @@ -210,6 +207,15 @@ public Builder followRedirects(Boolean followRedirects) { } public FetchOptions build() { + if (this.contentType == null) { + this.contentType = "application/json"; + } + if (this.responseFormat == null) { + this.responseFormat = new EnumWrapper(ResponseFormat.JSON); + } + if (this.followRedirects == null) { + this.followRedirects = true; + } return new FetchOptions(this); } } diff --git a/src/main/java/com/box/sdkgen/networking/retries/BoxRetryStrategy.java b/src/main/java/com/box/sdkgen/networking/retries/BoxRetryStrategy.java index 8ee947fe2..e76bbd2ff 100644 --- a/src/main/java/com/box/sdkgen/networking/retries/BoxRetryStrategy.java +++ b/src/main/java/com/box/sdkgen/networking/retries/BoxRetryStrategy.java @@ -17,8 +17,8 @@ public class BoxRetryStrategy implements RetryStrategy { public BoxRetryStrategy() { this.maxAttempts = 5; - this.retryRandomizationFactor = 0.5; - this.retryBaseInterval = 1; + this.retryRandomizationFactor = 0.5d; + this.retryBaseInterval = 1d; this.maxRetriesOnException = 2; } @@ -98,20 +98,15 @@ public int getMaxRetriesOnException() { public static class Builder { - protected int maxAttempts; + protected Integer maxAttempts; - protected double retryRandomizationFactor; + protected Double retryRandomizationFactor; - protected double retryBaseInterval; + protected Double retryBaseInterval; - protected int maxRetriesOnException; + protected Integer maxRetriesOnException; - public Builder() { - this.maxAttempts = 5; - this.retryRandomizationFactor = 0.5; - this.retryBaseInterval = 1; - this.maxRetriesOnException = 2; - } + public Builder() {} public Builder maxAttempts(int maxAttempts) { this.maxAttempts = maxAttempts; @@ -134,6 +129,18 @@ public Builder maxRetriesOnException(int maxRetriesOnException) { } public BoxRetryStrategy build() { + if (this.maxAttempts == null) { + this.maxAttempts = 5; + } + if (this.retryRandomizationFactor == null) { + this.retryRandomizationFactor = 0.5d; + } + if (this.retryBaseInterval == null) { + this.retryBaseInterval = 1d; + } + if (this.maxRetriesOnException == null) { + this.maxRetriesOnException = 2; + } return new BoxRetryStrategy(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentask/AiAgentAsk.java b/src/main/java/com/box/sdkgen/schemas/aiagentask/AiAgentAsk.java index 040bdbabd..26a8da89f 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentask/AiAgentAsk.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentask/AiAgentAsk.java @@ -180,7 +180,6 @@ public static class Builder extends NullableFieldTracker { public Builder() { super(); - this.type = new EnumWrapper(AiAgentAskTypeField.AI_AGENT_ASK); } public Builder type(AiAgentAskTypeField type) { @@ -229,6 +228,9 @@ public Builder basicImageMulti(AiAgentBasicTextTool basicImageMulti) { } public AiAgentAsk build() { + if (this.type == null) { + this.type = new EnumWrapper(AiAgentAskTypeField.AI_AGENT_ASK); + } return new AiAgentAsk(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentextract/AiAgentExtract.java b/src/main/java/com/box/sdkgen/schemas/aiagentextract/AiAgentExtract.java index 078955651..9b939a654 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentextract/AiAgentExtract.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentextract/AiAgentExtract.java @@ -112,8 +112,6 @@ public static class Builder extends NullableFieldTracker { public Builder() { super(); - this.type = - new EnumWrapper(AiAgentExtractTypeField.AI_AGENT_EXTRACT); } public Builder type(AiAgentExtractTypeField type) { @@ -142,6 +140,10 @@ public Builder basicImage(AiAgentBasicTextTool basicImage) { } public AiAgentExtract build() { + if (this.type == null) { + this.type = + new EnumWrapper(AiAgentExtractTypeField.AI_AGENT_EXTRACT); + } return new AiAgentExtract(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentextractstructured/AiAgentExtractStructured.java b/src/main/java/com/box/sdkgen/schemas/aiagentextractstructured/AiAgentExtractStructured.java index 29574d118..419d19820 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentextractstructured/AiAgentExtractStructured.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentextractstructured/AiAgentExtractStructured.java @@ -116,9 +116,6 @@ public static class Builder extends NullableFieldTracker { public Builder() { super(); - this.type = - new EnumWrapper( - AiAgentExtractStructuredTypeField.AI_AGENT_EXTRACT_STRUCTURED); } public Builder type(AiAgentExtractStructuredTypeField type) { @@ -147,6 +144,11 @@ public Builder basicImage(AiAgentBasicTextTool basicImage) { } public AiAgentExtractStructured build() { + if (this.type == null) { + this.type = + new EnumWrapper( + AiAgentExtractStructuredTypeField.AI_AGENT_EXTRACT_STRUCTURED); + } return new AiAgentExtractStructured(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReference.java b/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReference.java index 42fab408b..8345e2480 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReference.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReference.java @@ -75,7 +75,6 @@ public static class Builder extends NullableFieldTracker { public Builder() { super(); - this.type = new EnumWrapper(AiAgentReferenceTypeField.AI_AGENT_ID); } public Builder type(AiAgentReferenceTypeField type) { @@ -94,6 +93,10 @@ public Builder id(String id) { } public AiAgentReference build() { + if (this.type == null) { + this.type = + new EnumWrapper(AiAgentReferenceTypeField.AI_AGENT_ID); + } return new AiAgentReference(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/aiagenttextgen/AiAgentTextGen.java b/src/main/java/com/box/sdkgen/schemas/aiagenttextgen/AiAgentTextGen.java index e98ca5a3a..e1a9f693e 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagenttextgen/AiAgentTextGen.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagenttextgen/AiAgentTextGen.java @@ -72,8 +72,6 @@ public static class Builder extends NullableFieldTracker { public Builder() { super(); - this.type = - new EnumWrapper(AiAgentTextGenTypeField.AI_AGENT_TEXT_GEN); } public Builder type(AiAgentTextGenTypeField type) { @@ -92,6 +90,10 @@ public Builder basicGen(AiAgentBasicGenTool basicGen) { } public AiAgentTextGen build() { + if (this.type == null) { + this.type = + new EnumWrapper(AiAgentTextGenTypeField.AI_AGENT_TEXT_GEN); + } return new AiAgentTextGen(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/aiitembase/AiItemBase.java b/src/main/java/com/box/sdkgen/schemas/aiitembase/AiItemBase.java index bd5e90582..e37cdd0a1 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiitembase/AiItemBase.java +++ b/src/main/java/com/box/sdkgen/schemas/aiitembase/AiItemBase.java @@ -97,7 +97,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = new EnumWrapper(AiItemBaseTypeField.FILE); } public Builder type(AiItemBaseTypeField type) { @@ -116,6 +115,9 @@ public Builder content(String content) { } public AiItemBase build() { + if (this.type == null) { + this.type = new EnumWrapper(AiItemBaseTypeField.FILE); + } return new AiItemBase(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsaws/AiLlmEndpointParamsAws.java b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsaws/AiLlmEndpointParamsAws.java index 2901ea313..8dce3c0ba 100644 --- a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsaws/AiLlmEndpointParamsAws.java +++ b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsaws/AiLlmEndpointParamsAws.java @@ -111,9 +111,6 @@ public static class Builder extends NullableFieldTracker { public Builder() { super(); - this.type = - new EnumWrapper( - AiLlmEndpointParamsAwsTypeField.AWS_PARAMS); } public Builder type(AiLlmEndpointParamsAwsTypeField type) { @@ -139,6 +136,11 @@ public Builder topP(Double topP) { } public AiLlmEndpointParamsAws build() { + if (this.type == null) { + this.type = + new EnumWrapper( + AiLlmEndpointParamsAwsTypeField.AWS_PARAMS); + } return new AiLlmEndpointParamsAws(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsgoogle/AiLlmEndpointParamsGoogle.java b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsgoogle/AiLlmEndpointParamsGoogle.java index 65995c850..0a465b3f0 100644 --- a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsgoogle/AiLlmEndpointParamsGoogle.java +++ b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsgoogle/AiLlmEndpointParamsGoogle.java @@ -131,9 +131,6 @@ public static class Builder extends NullableFieldTracker { public Builder() { super(); - this.type = - new EnumWrapper( - AiLlmEndpointParamsGoogleTypeField.GOOGLE_PARAMS); } public Builder type(AiLlmEndpointParamsGoogleTypeField type) { @@ -165,6 +162,11 @@ public Builder topK(Double topK) { } public AiLlmEndpointParamsGoogle build() { + if (this.type == null) { + this.type = + new EnumWrapper( + AiLlmEndpointParamsGoogleTypeField.GOOGLE_PARAMS); + } return new AiLlmEndpointParamsGoogle(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsibm/AiLlmEndpointParamsIbm.java b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsibm/AiLlmEndpointParamsIbm.java index d9a0f7262..1a4482e3d 100644 --- a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsibm/AiLlmEndpointParamsIbm.java +++ b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsibm/AiLlmEndpointParamsIbm.java @@ -133,9 +133,6 @@ public static class Builder extends NullableFieldTracker { public Builder() { super(); - this.type = - new EnumWrapper( - AiLlmEndpointParamsIbmTypeField.IBM_PARAMS); } public Builder type(AiLlmEndpointParamsIbmTypeField type) { @@ -167,6 +164,11 @@ public Builder topK(Double topK) { } public AiLlmEndpointParamsIbm build() { + if (this.type == null) { + this.type = + new EnumWrapper( + AiLlmEndpointParamsIbmTypeField.IBM_PARAMS); + } return new AiLlmEndpointParamsIbm(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsopenai/AiLlmEndpointParamsOpenAi.java b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsopenai/AiLlmEndpointParamsOpenAi.java index f869fdaec..dfb8409e5 100644 --- a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsopenai/AiLlmEndpointParamsOpenAi.java +++ b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsopenai/AiLlmEndpointParamsOpenAi.java @@ -168,9 +168,6 @@ public static class Builder extends NullableFieldTracker { public Builder() { super(); - this.type = - new EnumWrapper( - AiLlmEndpointParamsOpenAiTypeField.OPENAI_PARAMS); } public Builder type(AiLlmEndpointParamsOpenAiTypeField type) { @@ -214,6 +211,11 @@ public Builder stop(String stop) { } public AiLlmEndpointParamsOpenAi build() { + if (this.type == null) { + this.type = + new EnumWrapper( + AiLlmEndpointParamsOpenAiTypeField.OPENAI_PARAMS); + } return new AiLlmEndpointParamsOpenAi(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentask/AiStudioAgentAsk.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentask/AiStudioAgentAsk.java index 7602e2849..08d82f997 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagentask/AiStudioAgentAsk.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentask/AiStudioAgentAsk.java @@ -259,8 +259,6 @@ public Builder(String accessState, String description) { super(); this.accessState = accessState; this.description = description; - this.type = - new EnumWrapper(AiStudioAgentAskTypeField.AI_AGENT_ASK); } public Builder type(AiStudioAgentAskTypeField type) { @@ -320,6 +318,10 @@ public Builder basicImageMulti(AiStudioAgentBasicTextTool basicImageMulti) { } public AiStudioAgentAsk build() { + if (this.type == null) { + this.type = + new EnumWrapper(AiStudioAgentAskTypeField.AI_AGENT_ASK); + } return new AiStudioAgentAsk(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentaskresponse/AiStudioAgentAskResponse.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentaskresponse/AiStudioAgentAskResponse.java index b0993c925..95ec172d6 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagentaskresponse/AiStudioAgentAskResponse.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentaskresponse/AiStudioAgentAskResponse.java @@ -263,9 +263,6 @@ public Builder(String accessState, String description) { super(); this.accessState = accessState; this.description = description; - this.type = - new EnumWrapper( - AiStudioAgentAskResponseTypeField.AI_AGENT_ASK); } public Builder type(AiStudioAgentAskResponseTypeField type) { @@ -325,6 +322,11 @@ public Builder basicImageMulti(AiStudioAgentBasicTextToolResponse basicImageMult } public AiStudioAgentAskResponse build() { + if (this.type == null) { + this.type = + new EnumWrapper( + AiStudioAgentAskResponseTypeField.AI_AGENT_ASK); + } return new AiStudioAgentAskResponse(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentextract/AiStudioAgentExtract.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentextract/AiStudioAgentExtract.java index 74faeb7fa..b2f26ed29 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagentextract/AiStudioAgentExtract.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentextract/AiStudioAgentExtract.java @@ -172,9 +172,6 @@ public Builder(String accessState, String description) { super(); this.accessState = accessState; this.description = description; - this.type = - new EnumWrapper( - AiStudioAgentExtractTypeField.AI_AGENT_EXTRACT); } public Builder type(AiStudioAgentExtractTypeField type) { @@ -209,6 +206,11 @@ public Builder basicImage(AiStudioAgentBasicTextTool basicImage) { } public AiStudioAgentExtract build() { + if (this.type == null) { + this.type = + new EnumWrapper( + AiStudioAgentExtractTypeField.AI_AGENT_EXTRACT); + } return new AiStudioAgentExtract(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentextractresponse/AiStudioAgentExtractResponse.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentextractresponse/AiStudioAgentExtractResponse.java index 0ccbb0c8c..643b81d21 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagentextractresponse/AiStudioAgentExtractResponse.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentextractresponse/AiStudioAgentExtractResponse.java @@ -176,9 +176,6 @@ public Builder(String accessState, String description) { super(); this.accessState = accessState; this.description = description; - this.type = - new EnumWrapper( - AiStudioAgentExtractResponseTypeField.AI_AGENT_EXTRACT); } public Builder type(AiStudioAgentExtractResponseTypeField type) { @@ -213,6 +210,11 @@ public Builder basicImage(AiStudioAgentBasicTextToolResponse basicImage) { } public AiStudioAgentExtractResponse build() { + if (this.type == null) { + this.type = + new EnumWrapper( + AiStudioAgentExtractResponseTypeField.AI_AGENT_EXTRACT); + } return new AiStudioAgentExtractResponse(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgen/AiStudioAgentTextGen.java b/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgen/AiStudioAgentTextGen.java index 8f78acce5..6e9bb584b 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgen/AiStudioAgentTextGen.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgen/AiStudioAgentTextGen.java @@ -161,9 +161,6 @@ public Builder(String accessState, String description) { super(); this.accessState = accessState; this.description = description; - this.type = - new EnumWrapper( - AiStudioAgentTextGenTypeField.AI_AGENT_TEXT_GEN); } public Builder type(AiStudioAgentTextGenTypeField type) { @@ -193,6 +190,11 @@ public Builder basicGen(AiStudioAgentBasicGenTool basicGen) { } public AiStudioAgentTextGen build() { + if (this.type == null) { + this.type = + new EnumWrapper( + AiStudioAgentTextGenTypeField.AI_AGENT_TEXT_GEN); + } return new AiStudioAgentTextGen(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgenresponse/AiStudioAgentTextGenResponse.java b/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgenresponse/AiStudioAgentTextGenResponse.java index 566067d83..5055a4da7 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgenresponse/AiStudioAgentTextGenResponse.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgenresponse/AiStudioAgentTextGenResponse.java @@ -165,9 +165,6 @@ public Builder(String accessState, String description) { super(); this.accessState = accessState; this.description = description; - this.type = - new EnumWrapper( - AiStudioAgentTextGenResponseTypeField.AI_AGENT_TEXT_GEN); } public Builder type(AiStudioAgentTextGenResponseTypeField type) { @@ -197,6 +194,11 @@ public Builder basicGen(AiStudioAgentBasicGenToolResponse basicGen) { } public AiStudioAgentTextGenResponse build() { + if (this.type == null) { + this.type = + new EnumWrapper( + AiStudioAgentTextGenResponseTypeField.AI_AGENT_TEXT_GEN); + } return new AiStudioAgentTextGenResponse(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGenItemsField.java b/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGenItemsField.java index e227a3477..8df76fa9f 100644 --- a/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGenItemsField.java +++ b/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGenItemsField.java @@ -96,7 +96,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = new EnumWrapper(AiTextGenItemsTypeField.FILE); } public Builder type(AiTextGenItemsTypeField type) { @@ -115,6 +114,9 @@ public Builder content(String content) { } public AiTextGenItemsField build() { + if (this.type == null) { + this.type = new EnumWrapper(AiTextGenItemsTypeField.FILE); + } return new AiTextGenItemsField(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/appitem/AppItem.java b/src/main/java/com/box/sdkgen/schemas/appitem/AppItem.java index 7d97970cc..022b938b3 100644 --- a/src/main/java/com/box/sdkgen/schemas/appitem/AppItem.java +++ b/src/main/java/com/box/sdkgen/schemas/appitem/AppItem.java @@ -104,7 +104,6 @@ public Builder(String id, String applicationType) { super(); this.id = id; this.applicationType = applicationType; - this.type = new EnumWrapper(AppItemTypeField.APP_ITEM); } public Builder type(AppItemTypeField type) { @@ -118,6 +117,9 @@ public Builder type(EnumWrapper type) { } public AppItem build() { + if (this.type == null) { + this.type = new EnumWrapper(AppItemTypeField.APP_ITEM); + } return new AppItem(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/appitemassociation/AppItemAssociation.java b/src/main/java/com/box/sdkgen/schemas/appitemassociation/AppItemAssociation.java index 10b94c840..1e92895fc 100644 --- a/src/main/java/com/box/sdkgen/schemas/appitemassociation/AppItemAssociation.java +++ b/src/main/java/com/box/sdkgen/schemas/appitemassociation/AppItemAssociation.java @@ -159,9 +159,6 @@ public Builder(String id, AppItem appItem, FileBase item) { this.id = id; this.appItem = appItem; this.item = new AppItemAssociatedItem(item); - this.type = - new EnumWrapper( - AppItemAssociationTypeField.APP_ITEM_ASSOCIATION); } public Builder(String id, AppItem appItem, FolderBase item) { @@ -169,9 +166,6 @@ public Builder(String id, AppItem appItem, FolderBase item) { this.id = id; this.appItem = appItem; this.item = new AppItemAssociatedItem(item); - this.type = - new EnumWrapper( - AppItemAssociationTypeField.APP_ITEM_ASSOCIATION); } public Builder(String id, AppItem appItem, WebLinkBase item) { @@ -179,9 +173,6 @@ public Builder(String id, AppItem appItem, WebLinkBase item) { this.id = id; this.appItem = appItem; this.item = new AppItemAssociatedItem(item); - this.type = - new EnumWrapper( - AppItemAssociationTypeField.APP_ITEM_ASSOCIATION); } public Builder(String id, AppItem appItem, AppItemAssociatedItem item) { @@ -189,9 +180,6 @@ public Builder(String id, AppItem appItem, AppItemAssociatedItem item) { this.id = id; this.appItem = appItem; this.item = item; - this.type = - new EnumWrapper( - AppItemAssociationTypeField.APP_ITEM_ASSOCIATION); } public Builder type(AppItemAssociationTypeField type) { @@ -205,6 +193,11 @@ public Builder type(EnumWrapper type) { } public AppItemAssociation build() { + if (this.type == null) { + this.type = + new EnumWrapper( + AppItemAssociationTypeField.APP_ITEM_ASSOCIATION); + } return new AppItemAssociation(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/appitemeventsource/AppItemEventSource.java b/src/main/java/com/box/sdkgen/schemas/appitemeventsource/AppItemEventSource.java index d0ec79c51..dce835ab3 100644 --- a/src/main/java/com/box/sdkgen/schemas/appitemeventsource/AppItemEventSource.java +++ b/src/main/java/com/box/sdkgen/schemas/appitemeventsource/AppItemEventSource.java @@ -132,8 +132,6 @@ public Builder(String id, String appItemType) { super(); this.id = id; this.appItemType = appItemType; - this.type = - new EnumWrapper(AppItemEventSourceTypeField.APP_ITEM); } public Builder type(AppItemEventSourceTypeField type) { @@ -157,6 +155,10 @@ public Builder group(GroupMini group) { } public AppItemEventSource build() { + if (this.type == null) { + this.type = + new EnumWrapper(AppItemEventSourceTypeField.APP_ITEM); + } return new AppItemEventSource(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplate.java b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplate.java index 14054025a..a1734c8ce 100644 --- a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplate.java +++ b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplate.java @@ -214,15 +214,6 @@ public Builder(String id, String scope, List this.id = id; this.scope = scope; this.fields = fields; - this.type = - new EnumWrapper( - ClassificationTemplateTypeField.METADATA_TEMPLATE); - this.templateKey = - new EnumWrapper( - ClassificationTemplateTemplateKeyField.SECURITYCLASSIFICATION_6VMVOCHWUWO); - this.displayName = - new EnumWrapper( - ClassificationTemplateDisplayNameField.CLASSIFICATION); } public Builder type(ClassificationTemplateTypeField type) { @@ -266,6 +257,21 @@ public Builder copyInstanceOnItemCopy(Boolean copyInstanceOnItemCopy) { } public ClassificationTemplate build() { + if (this.type == null) { + this.type = + new EnumWrapper( + ClassificationTemplateTypeField.METADATA_TEMPLATE); + } + if (this.templateKey == null) { + this.templateKey = + new EnumWrapper( + ClassificationTemplateTemplateKeyField.SECURITYCLASSIFICATION_6VMVOCHWUWO); + } + if (this.displayName == null) { + this.displayName = + new EnumWrapper( + ClassificationTemplateDisplayNameField.CLASSIFICATION); + } return new ClassificationTemplate(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsField.java b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsField.java index 6fed48381..a5a0fec7e 100644 --- a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsField.java +++ b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsField.java @@ -175,15 +175,6 @@ public Builder(String id, List options super(); this.id = id; this.options = options; - this.type = - new EnumWrapper( - ClassificationTemplateFieldsTypeField.ENUM); - this.key = - new EnumWrapper( - ClassificationTemplateFieldsKeyField.BOX__SECURITY__CLASSIFICATION__KEY); - this.displayName = - new EnumWrapper( - ClassificationTemplateFieldsDisplayNameField.CLASSIFICATION); } public Builder type(ClassificationTemplateFieldsTypeField type) { @@ -223,6 +214,21 @@ public Builder hidden(Boolean hidden) { } public ClassificationTemplateFieldsField build() { + if (this.type == null) { + this.type = + new EnumWrapper( + ClassificationTemplateFieldsTypeField.ENUM); + } + if (this.key == null) { + this.key = + new EnumWrapper( + ClassificationTemplateFieldsKeyField.BOX__SECURITY__CLASSIFICATION__KEY); + } + if (this.displayName == null) { + this.displayName = + new EnumWrapper( + ClassificationTemplateFieldsDisplayNameField.CLASSIFICATION); + } return new ClassificationTemplateFieldsField(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/collaboration/Collaboration.java b/src/main/java/com/box/sdkgen/schemas/collaboration/Collaboration.java index b0956e20a..876c24328 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaboration/Collaboration.java +++ b/src/main/java/com/box/sdkgen/schemas/collaboration/Collaboration.java @@ -337,7 +337,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = new EnumWrapper(CollaborationTypeField.COLLABORATION); } public Builder type(CollaborationTypeField type) { @@ -459,6 +458,9 @@ public Builder acceptanceRequirementsStatus( } public Collaboration build() { + if (this.type == null) { + this.type = new EnumWrapper(CollaborationTypeField.COLLABORATION); + } return new Collaboration(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariable.java b/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariable.java index 39a5876c9..58c38bfef 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariable.java +++ b/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariable.java @@ -118,11 +118,6 @@ public static class Builder extends NullableFieldTracker { public Builder(List variableValue) { super(); this.variableValue = variableValue; - this.type = - new EnumWrapper(CollaboratorVariableTypeField.VARIABLE); - this.variableType = - new EnumWrapper( - CollaboratorVariableVariableTypeField.USER_LIST); } public Builder type(CollaboratorVariableTypeField type) { @@ -146,6 +141,15 @@ public Builder variableType(EnumWrapper v } public CollaboratorVariable build() { + if (this.type == null) { + this.type = + new EnumWrapper(CollaboratorVariableTypeField.VARIABLE); + } + if (this.variableType == null) { + this.variableType = + new EnumWrapper( + CollaboratorVariableVariableTypeField.USER_LIST); + } return new CollaboratorVariable(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableValueField.java b/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableValueField.java index 8bbb2bac2..135a1d68e 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableValueField.java +++ b/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableValueField.java @@ -88,9 +88,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - CollaboratorVariableVariableValueTypeField.USER); } public Builder type(CollaboratorVariableVariableValueTypeField type) { @@ -104,6 +101,11 @@ public Builder type(EnumWrapper type } public CollaboratorVariableVariableValueField build() { + if (this.type == null) { + this.type = + new EnumWrapper( + CollaboratorVariableVariableValueTypeField.USER); + } return new CollaboratorVariableVariableValueField(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariable.java b/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariable.java index 262b3d3a1..63540549a 100644 --- a/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariable.java +++ b/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariable.java @@ -135,23 +135,11 @@ public static class Builder extends NullableFieldTracker { public Builder(CompletionRuleVariableVariableValueField variableValue) { super(); this.variableValue = new EnumWrapper(variableValue); - this.type = - new EnumWrapper( - CompletionRuleVariableTypeField.VARIABLE); - this.variableType = - new EnumWrapper( - CompletionRuleVariableVariableTypeField.TASK_COMPLETION_RULE); } public Builder(EnumWrapper variableValue) { super(); this.variableValue = variableValue; - this.type = - new EnumWrapper( - CompletionRuleVariableTypeField.VARIABLE); - this.variableType = - new EnumWrapper( - CompletionRuleVariableVariableTypeField.TASK_COMPLETION_RULE); } public Builder type(CompletionRuleVariableTypeField type) { @@ -175,6 +163,16 @@ public Builder variableType(EnumWrapper } public CompletionRuleVariable build() { + if (this.type == null) { + this.type = + new EnumWrapper( + CompletionRuleVariableTypeField.VARIABLE); + } + if (this.variableType == null) { + this.variableType = + new EnumWrapper( + CompletionRuleVariableVariableTypeField.TASK_COMPLETION_RULE); + } return new CompletionRuleVariable(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/createaiagent/CreateAiAgent.java b/src/main/java/com/box/sdkgen/schemas/createaiagent/CreateAiAgent.java index ac19a73fd..ae98a778b 100644 --- a/src/main/java/com/box/sdkgen/schemas/createaiagent/CreateAiAgent.java +++ b/src/main/java/com/box/sdkgen/schemas/createaiagent/CreateAiAgent.java @@ -190,7 +190,6 @@ public Builder(String name, String accessState) { super(); this.name = name; this.accessState = accessState; - this.type = new EnumWrapper(CreateAiAgentTypeField.AI_AGENT); } public Builder type(CreateAiAgentTypeField type) { @@ -229,6 +228,9 @@ public Builder extract(AiStudioAgentExtract extract) { } public CreateAiAgent build() { + if (this.type == null) { + this.type = new EnumWrapper(CreateAiAgentTypeField.AI_AGENT); + } return new CreateAiAgent(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/file/File.java b/src/main/java/com/box/sdkgen/schemas/file/File.java index 3963f7de4..58b7d5804 100644 --- a/src/main/java/com/box/sdkgen/schemas/file/File.java +++ b/src/main/java/com/box/sdkgen/schemas/file/File.java @@ -507,6 +507,9 @@ public Builder fileVersion(FileVersionMini fileVersion) { } public File build() { + if (this.type == null) { + this.type = new EnumWrapper(FileBaseTypeField.FILE); + } return new File(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/filebase/FileBase.java b/src/main/java/com/box/sdkgen/schemas/filebase/FileBase.java index 9a7cd7212..2f588e64b 100644 --- a/src/main/java/com/box/sdkgen/schemas/filebase/FileBase.java +++ b/src/main/java/com/box/sdkgen/schemas/filebase/FileBase.java @@ -110,7 +110,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = new EnumWrapper(FileBaseTypeField.FILE); } public Builder etag(String etag) { @@ -130,6 +129,9 @@ public Builder type(EnumWrapper type) { } public FileBase build() { + if (this.type == null) { + this.type = new EnumWrapper(FileBaseTypeField.FILE); + } return new FileBase(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/fileconflict/FileConflict.java b/src/main/java/com/box/sdkgen/schemas/fileconflict/FileConflict.java index 3005f4476..522c97965 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileconflict/FileConflict.java +++ b/src/main/java/com/box/sdkgen/schemas/fileconflict/FileConflict.java @@ -127,6 +127,9 @@ public Builder fileVersion(FileVersionMini fileVersion) { } public FileConflict build() { + if (this.type == null) { + this.type = new EnumWrapper(FileBaseTypeField.FILE); + } return new FileConflict(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFull.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFull.java index b833c7b8e..7e9a52ed4 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefull/FileFull.java +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFull.java @@ -827,6 +827,9 @@ public Builder itemStatus(EnumWrapper itemStatus) { } public FileFull build() { + if (this.type == null) { + this.type = new EnumWrapper(FileBaseTypeField.FILE); + } return new FileFull(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/filemini/FileMini.java b/src/main/java/com/box/sdkgen/schemas/filemini/FileMini.java index cb3d6ddea..c39b759a5 100644 --- a/src/main/java/com/box/sdkgen/schemas/filemini/FileMini.java +++ b/src/main/java/com/box/sdkgen/schemas/filemini/FileMini.java @@ -166,6 +166,9 @@ public Builder type(EnumWrapper type) { } public FileMini build() { + if (this.type == null) { + this.type = new EnumWrapper(FileBaseTypeField.FILE); + } return new FileMini(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequest.java b/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequest.java index 93a3503e6..589de0326 100644 --- a/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequest.java +++ b/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequest.java @@ -367,7 +367,6 @@ public Builder( this.folder = folder; this.createdAt = createdAt; this.updatedAt = updatedAt; - this.type = new EnumWrapper(FileRequestTypeField.FILE_REQUEST); } public Builder type(FileRequestTypeField type) { @@ -438,6 +437,9 @@ public Builder updatedBy(UserMini updatedBy) { } public FileRequest build() { + if (this.type == null) { + this.type = new EnumWrapper(FileRequestTypeField.FILE_REQUEST); + } return new FileRequest(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/fileversion/FileVersion.java b/src/main/java/com/box/sdkgen/schemas/fileversion/FileVersion.java index 5f29c34c7..dbf12d154 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileversion/FileVersion.java +++ b/src/main/java/com/box/sdkgen/schemas/fileversion/FileVersion.java @@ -342,6 +342,10 @@ public Builder sha1(String sha1) { } public FileVersion build() { + if (this.type == null) { + this.type = + new EnumWrapper(FileVersionBaseTypeField.FILE_VERSION); + } return new FileVersion(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionbase/FileVersionBase.java b/src/main/java/com/box/sdkgen/schemas/fileversionbase/FileVersionBase.java index 8d9da2dde..4b220bd44 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileversionbase/FileVersionBase.java +++ b/src/main/java/com/box/sdkgen/schemas/fileversionbase/FileVersionBase.java @@ -76,7 +76,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = new EnumWrapper(FileVersionBaseTypeField.FILE_VERSION); } public Builder type(FileVersionBaseTypeField type) { @@ -90,6 +89,10 @@ public Builder type(EnumWrapper type) { } public FileVersionBase build() { + if (this.type == null) { + this.type = + new EnumWrapper(FileVersionBaseTypeField.FILE_VERSION); + } return new FileVersionBase(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionfull/FileVersionFull.java b/src/main/java/com/box/sdkgen/schemas/fileversionfull/FileVersionFull.java index 472b076fc..87a4641cb 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileversionfull/FileVersionFull.java +++ b/src/main/java/com/box/sdkgen/schemas/fileversionfull/FileVersionFull.java @@ -246,6 +246,10 @@ public Builder uploaderDisplayName(String uploaderDisplayName) { } public FileVersionFull build() { + if (this.type == null) { + this.type = + new EnumWrapper(FileVersionBaseTypeField.FILE_VERSION); + } return new FileVersionFull(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionmini/FileVersionMini.java b/src/main/java/com/box/sdkgen/schemas/fileversionmini/FileVersionMini.java index 569c89b49..dc390ec73 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileversionmini/FileVersionMini.java +++ b/src/main/java/com/box/sdkgen/schemas/fileversionmini/FileVersionMini.java @@ -90,6 +90,10 @@ public Builder type(EnumWrapper type) { } public FileVersionMini build() { + if (this.type == null) { + this.type = + new EnumWrapper(FileVersionBaseTypeField.FILE_VERSION); + } return new FileVersionMini(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/folder/Folder.java b/src/main/java/com/box/sdkgen/schemas/folder/Folder.java index 081ec901d..247a6a67e 100644 --- a/src/main/java/com/box/sdkgen/schemas/folder/Folder.java +++ b/src/main/java/com/box/sdkgen/schemas/folder/Folder.java @@ -544,6 +544,9 @@ public Builder name(String name) { } public Folder build() { + if (this.type == null) { + this.type = new EnumWrapper(FolderBaseTypeField.FOLDER); + } return new Folder(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/folderbase/FolderBase.java b/src/main/java/com/box/sdkgen/schemas/folderbase/FolderBase.java index 9a1562989..5d9542f0f 100644 --- a/src/main/java/com/box/sdkgen/schemas/folderbase/FolderBase.java +++ b/src/main/java/com/box/sdkgen/schemas/folderbase/FolderBase.java @@ -111,7 +111,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = new EnumWrapper(FolderBaseTypeField.FOLDER); } public Builder etag(String etag) { @@ -131,6 +130,9 @@ public Builder type(EnumWrapper type) { } public FolderBase build() { + if (this.type == null) { + this.type = new EnumWrapper(FolderBaseTypeField.FOLDER); + } return new FolderBase(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFull.java b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFull.java index 484fea6c2..32b0b5d94 100644 --- a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFull.java +++ b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFull.java @@ -707,6 +707,9 @@ public Builder itemCollection(Items itemCollection) { } public FolderFull build() { + if (this.type == null) { + this.type = new EnumWrapper(FolderBaseTypeField.FOLDER); + } return new FolderFull(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/foldermini/FolderMini.java b/src/main/java/com/box/sdkgen/schemas/foldermini/FolderMini.java index 8d8763e93..3308ba90e 100644 --- a/src/main/java/com/box/sdkgen/schemas/foldermini/FolderMini.java +++ b/src/main/java/com/box/sdkgen/schemas/foldermini/FolderMini.java @@ -122,6 +122,9 @@ public Builder type(EnumWrapper type) { } public FolderMini build() { + if (this.type == null) { + this.type = new EnumWrapper(FolderBaseTypeField.FOLDER); + } return new FolderMini(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/folderreference/FolderReference.java b/src/main/java/com/box/sdkgen/schemas/folderreference/FolderReference.java index a1b3bccc4..5c8bec422 100644 --- a/src/main/java/com/box/sdkgen/schemas/folderreference/FolderReference.java +++ b/src/main/java/com/box/sdkgen/schemas/folderreference/FolderReference.java @@ -73,7 +73,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = new EnumWrapper(FolderReferenceTypeField.FOLDER); } public Builder type(FolderReferenceTypeField type) { @@ -87,6 +86,9 @@ public Builder type(EnumWrapper type) { } public FolderReference build() { + if (this.type == null) { + this.type = new EnumWrapper(FolderReferenceTypeField.FOLDER); + } return new FolderReference(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/group/Group.java b/src/main/java/com/box/sdkgen/schemas/group/Group.java index eecd6fc17..2032ba6d8 100644 --- a/src/main/java/com/box/sdkgen/schemas/group/Group.java +++ b/src/main/java/com/box/sdkgen/schemas/group/Group.java @@ -149,6 +149,9 @@ public Builder groupType(EnumWrapper groupType) { } public Group build() { + if (this.type == null) { + this.type = new EnumWrapper(GroupBaseTypeField.GROUP); + } return new Group(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/groupbase/GroupBase.java b/src/main/java/com/box/sdkgen/schemas/groupbase/GroupBase.java index 551dad2e3..165052fb9 100644 --- a/src/main/java/com/box/sdkgen/schemas/groupbase/GroupBase.java +++ b/src/main/java/com/box/sdkgen/schemas/groupbase/GroupBase.java @@ -73,7 +73,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = new EnumWrapper(GroupBaseTypeField.GROUP); } public Builder type(GroupBaseTypeField type) { @@ -87,6 +86,9 @@ public Builder type(EnumWrapper type) { } public GroupBase build() { + if (this.type == null) { + this.type = new EnumWrapper(GroupBaseTypeField.GROUP); + } return new GroupBase(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFull.java b/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFull.java index 215f82a87..83cdb9d65 100644 --- a/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFull.java +++ b/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFull.java @@ -312,6 +312,9 @@ public Builder modifiedAt(OffsetDateTime modifiedAt) { } public GroupFull build() { + if (this.type == null) { + this.type = new EnumWrapper(GroupBaseTypeField.GROUP); + } return new GroupFull(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/groupmini/GroupMini.java b/src/main/java/com/box/sdkgen/schemas/groupmini/GroupMini.java index c5adf3569..4f76117a4 100644 --- a/src/main/java/com/box/sdkgen/schemas/groupmini/GroupMini.java +++ b/src/main/java/com/box/sdkgen/schemas/groupmini/GroupMini.java @@ -120,6 +120,9 @@ public Builder type(EnumWrapper type) { } public GroupMini build() { + if (this.type == null) { + this.type = new EnumWrapper(GroupBaseTypeField.GROUP); + } return new GroupMini(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMapping.java b/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMapping.java index 0b6e9911a..87160d4e1 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMapping.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMapping.java @@ -301,6 +301,11 @@ public Builder type(EnumWrapper type) { } public IntegrationMapping build() { + if (this.type == null) { + this.type = + new EnumWrapper( + IntegrationMappingBaseTypeField.INTEGRATION_MAPPING); + } return new IntegrationMapping(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingbase/IntegrationMappingBase.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingbase/IntegrationMappingBase.java index 2910db609..4601343d3 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmappingbase/IntegrationMappingBase.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingbase/IntegrationMappingBase.java @@ -80,9 +80,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - IntegrationMappingBaseTypeField.INTEGRATION_MAPPING); } public Builder type(IntegrationMappingBaseTypeField type) { @@ -96,6 +93,11 @@ public Builder type(EnumWrapper type) { } public IntegrationMappingBase build() { + if (this.type == null) { + this.type = + new EnumWrapper( + IntegrationMappingBaseTypeField.INTEGRATION_MAPPING); + } return new IntegrationMappingBase(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingboxitemslack/IntegrationMappingBoxItemSlack.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingboxitemslack/IntegrationMappingBoxItemSlack.java index ab1b4eb78..464b3fa80 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmappingboxitemslack/IntegrationMappingBoxItemSlack.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingboxitemslack/IntegrationMappingBoxItemSlack.java @@ -89,9 +89,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - IntegrationMappingBoxItemSlackTypeField.FOLDER); } public Builder type(IntegrationMappingBoxItemSlackTypeField type) { @@ -105,6 +102,11 @@ public Builder type(EnumWrapper type) { } public IntegrationMappingBoxItemSlack build() { + if (this.type == null) { + this.type = + new EnumWrapper( + IntegrationMappingBoxItemSlackTypeField.FOLDER); + } return new IntegrationMappingBoxItemSlack(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslack/IntegrationMappingPartnerItemSlack.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslack/IntegrationMappingPartnerItemSlack.java index 5c5c26599..0e05d253b 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslack/IntegrationMappingPartnerItemSlack.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslack/IntegrationMappingPartnerItemSlack.java @@ -136,9 +136,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - IntegrationMappingPartnerItemSlackTypeField.CHANNEL); } public Builder type(IntegrationMappingPartnerItemSlackTypeField type) { @@ -164,6 +161,11 @@ public Builder slackOrgId(String slackOrgId) { } public IntegrationMappingPartnerItemSlack build() { + if (this.type == null) { + this.type = + new EnumWrapper( + IntegrationMappingPartnerItemSlackTypeField.CHANNEL); + } return new IntegrationMappingPartnerItemSlack(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeams.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeams.java index 6af10ed4e..d75a4092f 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeams.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeams.java @@ -232,6 +232,11 @@ public Builder type(EnumWrapper type) { } public IntegrationMappingTeams build() { + if (this.type == null) { + this.type = + new EnumWrapper( + IntegrationMappingBaseTypeField.INTEGRATION_MAPPING); + } return new IntegrationMappingTeams(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/invite/Invite.java b/src/main/java/com/box/sdkgen/schemas/invite/Invite.java index 03f82c049..69bd38661 100644 --- a/src/main/java/com/box/sdkgen/schemas/invite/Invite.java +++ b/src/main/java/com/box/sdkgen/schemas/invite/Invite.java @@ -183,7 +183,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = new EnumWrapper(InviteTypeField.INVITE); } public Builder type(InviteTypeField type) { @@ -227,6 +226,9 @@ public Builder modifiedAt(OffsetDateTime modifiedAt) { } public Invite build() { + if (this.type == null) { + this.type = new EnumWrapper(InviteTypeField.INVITE); + } return new Invite(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCard.java b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCard.java index ee0bb9fec..42236acb4 100644 --- a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCard.java +++ b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCard.java @@ -185,10 +185,6 @@ public Builder( this.skill = skill; this.invocation = invocation; this.entries = entries; - this.type = new EnumWrapper(KeywordSkillCardTypeField.SKILL_CARD); - this.skillCardType = - new EnumWrapper( - KeywordSkillCardSkillCardTypeField.KEYWORD); } public Builder createdAt(OffsetDateTime createdAt) { @@ -222,6 +218,15 @@ public Builder skillCardTitle(KeywordSkillCardSkillCardTitleField skillCardTitle } public KeywordSkillCard build() { + if (this.type == null) { + this.type = + new EnumWrapper(KeywordSkillCardTypeField.SKILL_CARD); + } + if (this.skillCardType == null) { + this.skillCardType = + new EnumWrapper( + KeywordSkillCardSkillCardTypeField.KEYWORD); + } return new KeywordSkillCard(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardInvocationField.java b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardInvocationField.java index 08af467ea..1c32a78b0 100644 --- a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardInvocationField.java +++ b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardInvocationField.java @@ -90,9 +90,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - KeywordSkillCardInvocationTypeField.SKILL_INVOCATION); } public Builder type(KeywordSkillCardInvocationTypeField type) { @@ -106,6 +103,11 @@ public Builder type(EnumWrapper type) { } public KeywordSkillCardInvocationField build() { + if (this.type == null) { + this.type = + new EnumWrapper( + KeywordSkillCardInvocationTypeField.SKILL_INVOCATION); + } return new KeywordSkillCardInvocationField(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillField.java b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillField.java index 511c97479..903835521 100644 --- a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillField.java +++ b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillField.java @@ -75,8 +75,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper(KeywordSkillCardSkillTypeField.SERVICE); } public Builder type(KeywordSkillCardSkillTypeField type) { @@ -90,6 +88,10 @@ public Builder type(EnumWrapper type) { } public KeywordSkillCardSkillField build() { + if (this.type == null) { + this.type = + new EnumWrapper(KeywordSkillCardSkillTypeField.SERVICE); + } return new KeywordSkillCardSkillField(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicy.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicy.java index 5609547c1..3d93f2440 100644 --- a/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicy.java +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicy.java @@ -348,6 +348,11 @@ public Builder type(EnumWrapper type) { } public LegalHoldPolicy build() { + if (this.type == null) { + this.type = + new EnumWrapper( + LegalHoldPolicyMiniTypeField.LEGAL_HOLD_POLICY); + } return new LegalHoldPolicy(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicymini/LegalHoldPolicyMini.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicymini/LegalHoldPolicyMini.java index dfa2d34d7..5c23345fb 100644 --- a/src/main/java/com/box/sdkgen/schemas/legalholdpolicymini/LegalHoldPolicyMini.java +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicymini/LegalHoldPolicyMini.java @@ -76,9 +76,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - LegalHoldPolicyMiniTypeField.LEGAL_HOLD_POLICY); } public Builder type(LegalHoldPolicyMiniTypeField type) { @@ -92,6 +89,11 @@ public Builder type(EnumWrapper type) { } public LegalHoldPolicyMini build() { + if (this.type == null) { + this.type = + new EnumWrapper( + LegalHoldPolicyMiniTypeField.LEGAL_HOLD_POLICY); + } return new LegalHoldPolicyMini(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicy.java b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicy.java index 0c211e603..9ff429147 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicy.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicy.java @@ -168,9 +168,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - MetadataCascadePolicyTypeField.METADATA_CASCADE_POLICY); } public Builder type(MetadataCascadePolicyTypeField type) { @@ -204,6 +201,11 @@ public Builder templateKey(String templateKey) { } public MetadataCascadePolicy build() { + if (this.type == null) { + this.type = + new EnumWrapper( + MetadataCascadePolicyTypeField.METADATA_CASCADE_POLICY); + } return new MetadataCascadePolicy(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplate.java b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplate.java index 4bd478909..26a7a2dda 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplate.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplate.java @@ -190,8 +190,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper(MetadataTemplateTypeField.METADATA_TEMPLATE); } public Builder type(MetadataTemplateTypeField type) { @@ -235,6 +233,10 @@ public Builder copyInstanceOnItemCopy(Boolean copyInstanceOnItemCopy) { } public MetadataTemplate build() { + if (this.type == null) { + this.type = + new EnumWrapper(MetadataTemplateTypeField.METADATA_TEMPLATE); + } return new MetadataTemplate(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/postoauth2tokenrefreshaccesstoken/PostOAuth2TokenRefreshAccessToken.java b/src/main/java/com/box/sdkgen/schemas/postoauth2tokenrefreshaccesstoken/PostOAuth2TokenRefreshAccessToken.java index 59e307cfe..587cb0b5c 100644 --- a/src/main/java/com/box/sdkgen/schemas/postoauth2tokenrefreshaccesstoken/PostOAuth2TokenRefreshAccessToken.java +++ b/src/main/java/com/box/sdkgen/schemas/postoauth2tokenrefreshaccesstoken/PostOAuth2TokenRefreshAccessToken.java @@ -134,9 +134,6 @@ public Builder(String clientId, String clientSecret, String refreshToken) { this.clientId = clientId; this.clientSecret = clientSecret; this.refreshToken = refreshToken; - this.grantType = - new EnumWrapper( - PostOAuth2TokenRefreshAccessTokenGrantTypeField.REFRESH_TOKEN); } public Builder grantType(PostOAuth2TokenRefreshAccessTokenGrantTypeField grantType) { @@ -151,6 +148,11 @@ public Builder grantType( } public PostOAuth2TokenRefreshAccessToken build() { + if (this.grantType == null) { + this.grantType = + new EnumWrapper( + PostOAuth2TokenRefreshAccessTokenGrantTypeField.REFRESH_TOKEN); + } return new PostOAuth2TokenRefreshAccessToken(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicy.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicy.java index eec56030c..6de5ef326 100644 --- a/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicy.java +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicy.java @@ -421,6 +421,11 @@ public Builder dispositionAction( } public RetentionPolicy build() { + if (this.type == null) { + this.type = + new EnumWrapper( + RetentionPolicyBaseTypeField.RETENTION_POLICY); + } return new RetentionPolicy(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignment.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignment.java index afa3e1673..23904a87b 100644 --- a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignment.java +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignment.java @@ -211,9 +211,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - RetentionPolicyAssignmentTypeField.RETENTION_POLICY_ASSIGNMENT); } public Builder type(RetentionPolicyAssignmentTypeField type) { @@ -258,6 +255,11 @@ public Builder startDateField(String startDateField) { } public RetentionPolicyAssignment build() { + if (this.type == null) { + this.type = + new EnumWrapper( + RetentionPolicyAssignmentTypeField.RETENTION_POLICY_ASSIGNMENT); + } return new RetentionPolicyAssignment(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicybase/RetentionPolicyBase.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicybase/RetentionPolicyBase.java index ea0fc18fd..ca1f545d6 100644 --- a/src/main/java/com/box/sdkgen/schemas/retentionpolicybase/RetentionPolicyBase.java +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicybase/RetentionPolicyBase.java @@ -76,9 +76,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - RetentionPolicyBaseTypeField.RETENTION_POLICY); } public Builder type(RetentionPolicyBaseTypeField type) { @@ -92,6 +89,11 @@ public Builder type(EnumWrapper type) { } public RetentionPolicyBase build() { + if (this.type == null) { + this.type = + new EnumWrapper( + RetentionPolicyBaseTypeField.RETENTION_POLICY); + } return new RetentionPolicyBase(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicymini/RetentionPolicyMini.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicymini/RetentionPolicyMini.java index 908322333..f36d92eb0 100644 --- a/src/main/java/com/box/sdkgen/schemas/retentionpolicymini/RetentionPolicyMini.java +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicymini/RetentionPolicyMini.java @@ -159,6 +159,11 @@ public Builder type(EnumWrapper type) { } public RetentionPolicyMini build() { + if (this.type == null) { + this.type = + new EnumWrapper( + RetentionPolicyBaseTypeField.RETENTION_POLICY); + } return new RetentionPolicyMini(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariable.java b/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariable.java index 816537bf3..d7865cb58 100644 --- a/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariable.java +++ b/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariable.java @@ -119,19 +119,11 @@ public static class Builder extends NullableFieldTracker { public Builder(RoleVariableVariableValueField variableValue) { super(); this.variableValue = new EnumWrapper(variableValue); - this.type = new EnumWrapper(RoleVariableTypeField.VARIABLE); - this.variableType = - new EnumWrapper( - RoleVariableVariableTypeField.COLLABORATOR_ROLE); } public Builder(EnumWrapper variableValue) { super(); this.variableValue = variableValue; - this.type = new EnumWrapper(RoleVariableTypeField.VARIABLE); - this.variableType = - new EnumWrapper( - RoleVariableVariableTypeField.COLLABORATOR_ROLE); } public Builder type(RoleVariableTypeField type) { @@ -155,6 +147,14 @@ public Builder variableType(EnumWrapper variableT } public RoleVariable build() { + if (this.type == null) { + this.type = new EnumWrapper(RoleVariableTypeField.VARIABLE); + } + if (this.variableType == null) { + this.variableType = + new EnumWrapper( + RoleVariableVariableTypeField.COLLABORATOR_ROLE); + } return new RoleVariable(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/searchresults/SearchResults.java b/src/main/java/com/box/sdkgen/schemas/searchresults/SearchResults.java index e3372bc27..13a5bdf9b 100644 --- a/src/main/java/com/box/sdkgen/schemas/searchresults/SearchResults.java +++ b/src/main/java/com/box/sdkgen/schemas/searchresults/SearchResults.java @@ -138,8 +138,6 @@ public static class Builder extends NullableFieldTracker { public Builder() { super(); - this.type = - new EnumWrapper(SearchResultsTypeField.SEARCH_RESULTS_ITEMS); } public Builder totalCount(Long totalCount) { @@ -173,6 +171,10 @@ public Builder entries(List entries) { } public SearchResults build() { + if (this.type == null) { + this.type = + new EnumWrapper(SearchResultsTypeField.SEARCH_RESULTS_ITEMS); + } return new SearchResults(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/searchresultswithsharedlinks/SearchResultsWithSharedLinks.java b/src/main/java/com/box/sdkgen/schemas/searchresultswithsharedlinks/SearchResultsWithSharedLinks.java index f626226db..03d560a66 100644 --- a/src/main/java/com/box/sdkgen/schemas/searchresultswithsharedlinks/SearchResultsWithSharedLinks.java +++ b/src/main/java/com/box/sdkgen/schemas/searchresultswithsharedlinks/SearchResultsWithSharedLinks.java @@ -154,9 +154,6 @@ public static class Builder extends NullableFieldTracker { public Builder() { super(); - this.type = - new EnumWrapper( - SearchResultsWithSharedLinksTypeField.SEARCH_RESULTS_WITH_SHARED_LINKS); } public Builder totalCount(Long totalCount) { @@ -190,6 +187,11 @@ public Builder entries(List entries) { } public SearchResultsWithSharedLinks build() { + if (this.type == null) { + this.type = + new EnumWrapper( + SearchResultsWithSharedLinksTypeField.SEARCH_RESULTS_WITH_SHARED_LINKS); + } return new SearchResultsWithSharedLinks(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidation.java index c6cb1e5a9..dd2b46058 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidation.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidation.java @@ -116,9 +116,6 @@ public static class Builder extends NullableFieldTracker { public Builder() { super(); - this.validationType = - new EnumWrapper( - SignRequestSignerInputCustomValidationValidationTypeField.CUSTOM); } public Builder validationType( @@ -148,6 +145,11 @@ public Builder customErrorMessage(String customErrorMessage) { } public SignRequestSignerInputCustomValidation build() { + if (this.validationType == null) { + this.validationType = + new EnumWrapper( + SignRequestSignerInputCustomValidationValidationTypeField.CUSTOM); + } return new SignRequestSignerInputCustomValidation(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputemailvalidation/SignRequestSignerInputEmailValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputemailvalidation/SignRequestSignerInputEmailValidation.java index f4f16f51e..562508860 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputemailvalidation/SignRequestSignerInputEmailValidation.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputemailvalidation/SignRequestSignerInputEmailValidation.java @@ -77,9 +77,6 @@ public static class Builder extends NullableFieldTracker { public Builder() { super(); - this.validationType = - new EnumWrapper( - SignRequestSignerInputEmailValidationValidationTypeField.EMAIL); } public Builder validationType( @@ -96,6 +93,11 @@ public Builder validationType( } public SignRequestSignerInputEmailValidation build() { + if (this.validationType == null) { + this.validationType = + new EnumWrapper( + SignRequestSignerInputEmailValidationValidationTypeField.EMAIL); + } return new SignRequestSignerInputEmailValidation(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputssnvalidation/SignRequestSignerInputSsnValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputssnvalidation/SignRequestSignerInputSsnValidation.java index b5a94bd7e..dd1f2d7d5 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputssnvalidation/SignRequestSignerInputSsnValidation.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputssnvalidation/SignRequestSignerInputSsnValidation.java @@ -77,9 +77,6 @@ public static class Builder extends NullableFieldTracker { public Builder() { super(); - this.validationType = - new EnumWrapper( - SignRequestSignerInputSsnValidationValidationTypeField.SSN); } public Builder validationType( @@ -96,6 +93,11 @@ public Builder validationType( } public SignRequestSignerInputSsnValidation build() { + if (this.validationType == null) { + this.validationType = + new EnumWrapper( + SignRequestSignerInputSsnValidationValidationTypeField.SSN); + } return new SignRequestSignerInputSsnValidation(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzip4validation/SignRequestSignerInputZip4Validation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzip4validation/SignRequestSignerInputZip4Validation.java index 2c9964bf2..220983e77 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzip4validation/SignRequestSignerInputZip4Validation.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzip4validation/SignRequestSignerInputZip4Validation.java @@ -77,9 +77,6 @@ public static class Builder extends NullableFieldTracker { public Builder() { super(); - this.validationType = - new EnumWrapper( - SignRequestSignerInputZip4ValidationValidationTypeField.ZIP_4); } public Builder validationType( @@ -96,6 +93,11 @@ public Builder validationType( } public SignRequestSignerInputZip4Validation build() { + if (this.validationType == null) { + this.validationType = + new EnumWrapper( + SignRequestSignerInputZip4ValidationValidationTypeField.ZIP_4); + } return new SignRequestSignerInputZip4Validation(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzipvalidation/SignRequestSignerInputZipValidation.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzipvalidation/SignRequestSignerInputZipValidation.java index c805d142a..017fa2696 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzipvalidation/SignRequestSignerInputZipValidation.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzipvalidation/SignRequestSignerInputZipValidation.java @@ -77,9 +77,6 @@ public static class Builder extends NullableFieldTracker { public Builder() { super(); - this.validationType = - new EnumWrapper( - SignRequestSignerInputZipValidationValidationTypeField.ZIP); } public Builder validationType( @@ -96,6 +93,11 @@ public Builder validationType( } public SignRequestSignerInputZipValidation build() { + if (this.validationType == null) { + this.validationType = + new EnumWrapper( + SignRequestSignerInputZipValidationValidationTypeField.ZIP); + } return new SignRequestSignerInputZipValidation(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCard.java b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCard.java index 4c6fcfcd2..56bf678bc 100644 --- a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCard.java +++ b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCard.java @@ -186,10 +186,6 @@ public Builder( this.status = status; this.skill = skill; this.invocation = invocation; - this.type = new EnumWrapper(StatusSkillCardTypeField.SKILL_CARD); - this.skillCardType = - new EnumWrapper( - StatusSkillCardSkillCardTypeField.STATUS); } public Builder createdAt(OffsetDateTime createdAt) { @@ -223,6 +219,14 @@ public Builder skillCardTitle(StatusSkillCardSkillCardTitleField skillCardTitle) } public StatusSkillCard build() { + if (this.type == null) { + this.type = new EnumWrapper(StatusSkillCardTypeField.SKILL_CARD); + } + if (this.skillCardType == null) { + this.skillCardType = + new EnumWrapper( + StatusSkillCardSkillCardTypeField.STATUS); + } return new StatusSkillCard(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardInvocationField.java b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardInvocationField.java index dc44480f8..67a5f6974 100644 --- a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardInvocationField.java +++ b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardInvocationField.java @@ -89,9 +89,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - StatusSkillCardInvocationTypeField.SKILL_INVOCATION); } public Builder type(StatusSkillCardInvocationTypeField type) { @@ -105,6 +102,11 @@ public Builder type(EnumWrapper type) { } public StatusSkillCardInvocationField build() { + if (this.type == null) { + this.type = + new EnumWrapper( + StatusSkillCardInvocationTypeField.SKILL_INVOCATION); + } return new StatusSkillCardInvocationField(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillField.java b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillField.java index 925b9757a..aa3106699 100644 --- a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillField.java +++ b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillField.java @@ -75,8 +75,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper(StatusSkillCardSkillTypeField.SERVICE); } public Builder type(StatusSkillCardSkillTypeField type) { @@ -90,6 +88,10 @@ public Builder type(EnumWrapper type) { } public StatusSkillCardSkillField build() { + if (this.type == null) { + this.type = + new EnumWrapper(StatusSkillCardSkillTypeField.SERVICE); + } return new StatusSkillCardSkillField(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/storagepolicy/StoragePolicy.java b/src/main/java/com/box/sdkgen/schemas/storagepolicy/StoragePolicy.java index e4cb6c547..c31b9a7d4 100644 --- a/src/main/java/com/box/sdkgen/schemas/storagepolicy/StoragePolicy.java +++ b/src/main/java/com/box/sdkgen/schemas/storagepolicy/StoragePolicy.java @@ -90,6 +90,10 @@ public Builder type(EnumWrapper type) { } public StoragePolicy build() { + if (this.type == null) { + this.type = + new EnumWrapper(StoragePolicyMiniTypeField.STORAGE_POLICY); + } return new StoragePolicy(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignment.java b/src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignment.java index 9990892f6..25d38d91e 100644 --- a/src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignment.java +++ b/src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignment.java @@ -117,9 +117,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - StoragePolicyAssignmentTypeField.STORAGE_POLICY_ASSIGNMENT); } public Builder type(StoragePolicyAssignmentTypeField type) { @@ -143,6 +140,11 @@ public Builder assignedTo(StoragePolicyAssignmentAssignedToField assignedTo) { } public StoragePolicyAssignment build() { + if (this.type == null) { + this.type = + new EnumWrapper( + StoragePolicyAssignmentTypeField.STORAGE_POLICY_ASSIGNMENT); + } return new StoragePolicyAssignment(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/storagepolicymini/StoragePolicyMini.java b/src/main/java/com/box/sdkgen/schemas/storagepolicymini/StoragePolicyMini.java index e27aac82a..4cc18fbba 100644 --- a/src/main/java/com/box/sdkgen/schemas/storagepolicymini/StoragePolicyMini.java +++ b/src/main/java/com/box/sdkgen/schemas/storagepolicymini/StoragePolicyMini.java @@ -74,8 +74,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper(StoragePolicyMiniTypeField.STORAGE_POLICY); } public Builder type(StoragePolicyMiniTypeField type) { @@ -89,6 +87,10 @@ public Builder type(EnumWrapper type) { } public StoragePolicyMini build() { + if (this.type == null) { + this.type = + new EnumWrapper(StoragePolicyMiniTypeField.STORAGE_POLICY); + } return new StoragePolicyMini(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfService.java b/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfService.java index 0a0d38e77..ee3253886 100644 --- a/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfService.java +++ b/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfService.java @@ -217,6 +217,11 @@ public Builder type(EnumWrapper type) { } public TermsOfService build() { + if (this.type == null) { + this.type = + new EnumWrapper( + TermsOfServiceBaseTypeField.TERMS_OF_SERVICE); + } return new TermsOfService(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/termsofservicebase/TermsOfServiceBase.java b/src/main/java/com/box/sdkgen/schemas/termsofservicebase/TermsOfServiceBase.java index 0e3cc3cf7..eb95a5b77 100644 --- a/src/main/java/com/box/sdkgen/schemas/termsofservicebase/TermsOfServiceBase.java +++ b/src/main/java/com/box/sdkgen/schemas/termsofservicebase/TermsOfServiceBase.java @@ -75,9 +75,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - TermsOfServiceBaseTypeField.TERMS_OF_SERVICE); } public Builder type(TermsOfServiceBaseTypeField type) { @@ -91,6 +88,11 @@ public Builder type(EnumWrapper type) { } public TermsOfServiceBase build() { + if (this.type == null) { + this.type = + new EnumWrapper( + TermsOfServiceBaseTypeField.TERMS_OF_SERVICE); + } return new TermsOfServiceBase(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatus/TermsOfServiceUserStatus.java b/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatus/TermsOfServiceUserStatus.java index c13aa6270..8bd1ebd27 100644 --- a/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatus/TermsOfServiceUserStatus.java +++ b/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatus/TermsOfServiceUserStatus.java @@ -170,9 +170,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - TermsOfServiceUserStatusTypeField.TERMS_OF_SERVICE_USER_STATUS); } public Builder type(TermsOfServiceUserStatusTypeField type) { @@ -211,6 +208,11 @@ public Builder modifiedAt(OffsetDateTime modifiedAt) { } public TermsOfServiceUserStatus build() { + if (this.type == null) { + this.type = + new EnumWrapper( + TermsOfServiceUserStatusTypeField.TERMS_OF_SERVICE_USER_STATUS); + } return new TermsOfServiceUserStatus(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCard.java b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCard.java index 9aa47a110..65266573f 100644 --- a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCard.java +++ b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCard.java @@ -202,11 +202,6 @@ public Builder( this.skill = skill; this.invocation = invocation; this.entries = entries; - this.type = - new EnumWrapper(TimelineSkillCardTypeField.SKILL_CARD); - this.skillCardType = - new EnumWrapper( - TimelineSkillCardSkillCardTypeField.TIMELINE); } public Builder createdAt(OffsetDateTime createdAt) { @@ -245,6 +240,15 @@ public Builder duration(Long duration) { } public TimelineSkillCard build() { + if (this.type == null) { + this.type = + new EnumWrapper(TimelineSkillCardTypeField.SKILL_CARD); + } + if (this.skillCardType == null) { + this.skillCardType = + new EnumWrapper( + TimelineSkillCardSkillCardTypeField.TIMELINE); + } return new TimelineSkillCard(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardInvocationField.java b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardInvocationField.java index 888f8b2f5..5bf307751 100644 --- a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardInvocationField.java +++ b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardInvocationField.java @@ -91,9 +91,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - TimelineSkillCardInvocationTypeField.SKILL_INVOCATION); } public Builder type(TimelineSkillCardInvocationTypeField type) { @@ -107,6 +104,11 @@ public Builder type(EnumWrapper type) { } public TimelineSkillCardInvocationField build() { + if (this.type == null) { + this.type = + new EnumWrapper( + TimelineSkillCardInvocationTypeField.SKILL_INVOCATION); + } return new TimelineSkillCardInvocationField(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillField.java b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillField.java index fbfa9cd70..31fca9a87 100644 --- a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillField.java +++ b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillField.java @@ -83,8 +83,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper(TimelineSkillCardSkillTypeField.SERVICE); } public Builder type(TimelineSkillCardSkillTypeField type) { @@ -98,6 +96,11 @@ public Builder type(EnumWrapper type) { } public TimelineSkillCardSkillField build() { + if (this.type == null) { + this.type = + new EnumWrapper( + TimelineSkillCardSkillTypeField.SERVICE); + } return new TimelineSkillCardSkillField(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCard.java b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCard.java index 91bf1cbf8..e248ab8af 100644 --- a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCard.java +++ b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCard.java @@ -212,11 +212,6 @@ public Builder( this.skill = skill; this.invocation = invocation; this.entries = entries; - this.type = - new EnumWrapper(TranscriptSkillCardTypeField.SKILL_CARD); - this.skillCardType = - new EnumWrapper( - TranscriptSkillCardSkillCardTypeField.TRANSCRIPT); } public Builder createdAt(OffsetDateTime createdAt) { @@ -255,6 +250,15 @@ public Builder duration(Long duration) { } public TranscriptSkillCard build() { + if (this.type == null) { + this.type = + new EnumWrapper(TranscriptSkillCardTypeField.SKILL_CARD); + } + if (this.skillCardType == null) { + this.skillCardType = + new EnumWrapper( + TranscriptSkillCardSkillCardTypeField.TRANSCRIPT); + } return new TranscriptSkillCard(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardInvocationField.java b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardInvocationField.java index 2c4ba229b..3974ac7ea 100644 --- a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardInvocationField.java +++ b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardInvocationField.java @@ -92,9 +92,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - TranscriptSkillCardInvocationTypeField.SKILL_INVOCATION); } public Builder type(TranscriptSkillCardInvocationTypeField type) { @@ -108,6 +105,11 @@ public Builder type(EnumWrapper type) { } public TranscriptSkillCardInvocationField build() { + if (this.type == null) { + this.type = + new EnumWrapper( + TranscriptSkillCardInvocationTypeField.SKILL_INVOCATION); + } return new TranscriptSkillCardInvocationField(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillField.java b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillField.java index cbaedf269..d9ca47c09 100644 --- a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillField.java +++ b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillField.java @@ -84,9 +84,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - TranscriptSkillCardSkillTypeField.SERVICE); } public Builder type(TranscriptSkillCardSkillTypeField type) { @@ -100,6 +97,11 @@ public Builder type(EnumWrapper type) { } public TranscriptSkillCardSkillField build() { + if (this.type == null) { + this.type = + new EnumWrapper( + TranscriptSkillCardSkillTypeField.SERVICE); + } return new TranscriptSkillCardSkillField(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFile.java b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFile.java index 2b84b769d..2604ed73c 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFile.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFile.java @@ -534,7 +534,6 @@ public Builder( this.modifiedBy = modifiedBy; this.ownedBy = ownedBy; this.itemStatus = new EnumWrapper(itemStatus); - this.type = new EnumWrapper(TrashFileTypeField.FILE); } public Builder( @@ -561,7 +560,6 @@ public Builder( this.modifiedBy = modifiedBy; this.ownedBy = ownedBy; this.itemStatus = itemStatus; - this.type = new EnumWrapper(TrashFileTypeField.FILE); } public Builder etag(String etag) { @@ -631,6 +629,9 @@ public Builder parent(FolderMini parent) { } public TrashFile build() { + if (this.type == null) { + this.type = new EnumWrapper(TrashFileTypeField.FILE); + } return new TrashFile(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestored.java b/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestored.java index 270cc6621..218eb3991 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestored.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestored.java @@ -535,7 +535,6 @@ public Builder( this.modifiedBy = modifiedBy; this.ownedBy = ownedBy; this.itemStatus = new EnumWrapper(itemStatus); - this.type = new EnumWrapper(TrashFileRestoredTypeField.FILE); } public Builder( @@ -562,7 +561,6 @@ public Builder( this.modifiedBy = modifiedBy; this.ownedBy = ownedBy; this.itemStatus = itemStatus; - this.type = new EnumWrapper(TrashFileRestoredTypeField.FILE); } public Builder etag(String etag) { @@ -632,6 +630,9 @@ public Builder parent(FolderMini parent) { } public TrashFileRestored build() { + if (this.type == null) { + this.type = new EnumWrapper(TrashFileRestoredTypeField.FILE); + } return new TrashFileRestored(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolder.java b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolder.java index 181cc14ce..3c7881c38 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolder.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolder.java @@ -510,7 +510,6 @@ public Builder( this.modifiedBy = modifiedBy; this.ownedBy = ownedBy; this.itemStatus = new EnumWrapper(itemStatus); - this.type = new EnumWrapper(TrashFolderTypeField.FOLDER); } public Builder( @@ -533,7 +532,6 @@ public Builder( this.modifiedBy = modifiedBy; this.ownedBy = ownedBy; this.itemStatus = itemStatus; - this.type = new EnumWrapper(TrashFolderTypeField.FOLDER); } public Builder etag(String etag) { @@ -611,6 +609,9 @@ public Builder parent(FolderMini parent) { } public TrashFolder build() { + if (this.type == null) { + this.type = new EnumWrapper(TrashFolderTypeField.FOLDER); + } return new TrashFolder(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/user/User.java b/src/main/java/com/box/sdkgen/schemas/user/User.java index eaa2bf93d..f5588b7d4 100644 --- a/src/main/java/com/box/sdkgen/schemas/user/User.java +++ b/src/main/java/com/box/sdkgen/schemas/user/User.java @@ -402,6 +402,9 @@ public Builder login(String login) { } public User build() { + if (this.type == null) { + this.type = new EnumWrapper(UserBaseTypeField.USER); + } return new User(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/userbase/UserBase.java b/src/main/java/com/box/sdkgen/schemas/userbase/UserBase.java index 3e59cf0c8..54430c41c 100644 --- a/src/main/java/com/box/sdkgen/schemas/userbase/UserBase.java +++ b/src/main/java/com/box/sdkgen/schemas/userbase/UserBase.java @@ -73,7 +73,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = new EnumWrapper(UserBaseTypeField.USER); } public Builder type(UserBaseTypeField type) { @@ -87,6 +86,9 @@ public Builder type(EnumWrapper type) { } public UserBase build() { + if (this.type == null) { + this.type = new EnumWrapper(UserBaseTypeField.USER); + } return new UserBase(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/usercollaborations/UserCollaborations.java b/src/main/java/com/box/sdkgen/schemas/usercollaborations/UserCollaborations.java index 8a08e2196..aa1fe5a84 100644 --- a/src/main/java/com/box/sdkgen/schemas/usercollaborations/UserCollaborations.java +++ b/src/main/java/com/box/sdkgen/schemas/usercollaborations/UserCollaborations.java @@ -137,6 +137,9 @@ public Builder type(EnumWrapper type) { } public UserCollaborations build() { + if (this.type == null) { + this.type = new EnumWrapper(UserBaseTypeField.USER); + } return new UserCollaborations(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/userfull/UserFull.java b/src/main/java/com/box/sdkgen/schemas/userfull/UserFull.java index 803f2ddf1..5c05b25a3 100644 --- a/src/main/java/com/box/sdkgen/schemas/userfull/UserFull.java +++ b/src/main/java/com/box/sdkgen/schemas/userfull/UserFull.java @@ -543,6 +543,9 @@ public Builder notificationEmail(UserNotificationEmailField notificationEmail) { } public UserFull build() { + if (this.type == null) { + this.type = new EnumWrapper(UserBaseTypeField.USER); + } return new UserFull(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/userintegrationmappings/UserIntegrationMappings.java b/src/main/java/com/box/sdkgen/schemas/userintegrationmappings/UserIntegrationMappings.java index 431de8dac..34af4c266 100644 --- a/src/main/java/com/box/sdkgen/schemas/userintegrationmappings/UserIntegrationMappings.java +++ b/src/main/java/com/box/sdkgen/schemas/userintegrationmappings/UserIntegrationMappings.java @@ -113,6 +113,9 @@ public Builder type(EnumWrapper type) { } public UserIntegrationMappings build() { + if (this.type == null) { + this.type = new EnumWrapper(UserBaseTypeField.USER); + } return new UserIntegrationMappings(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/usermini/UserMini.java b/src/main/java/com/box/sdkgen/schemas/usermini/UserMini.java index b72c2ad2c..69c1340fb 100644 --- a/src/main/java/com/box/sdkgen/schemas/usermini/UserMini.java +++ b/src/main/java/com/box/sdkgen/schemas/usermini/UserMini.java @@ -110,6 +110,9 @@ public Builder type(EnumWrapper type) { } public UserMini build() { + if (this.type == null) { + this.type = new EnumWrapper(UserBaseTypeField.USER); + } return new UserMini(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0.java index 3434d3528..605c383b9 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0.java @@ -161,7 +161,6 @@ public Builder(String id, String name, long size) { this.id = id; this.name = name; this.size = size; - this.type = new EnumWrapper(ArchiveV2025R0TypeField.ARCHIVE); } public Builder type(ArchiveV2025R0TypeField type) { @@ -186,6 +185,9 @@ public Builder ownedBy(ArchiveV2025R0OwnedByField ownedBy) { } public ArchiveV2025R0 build() { + if (this.type == null) { + this.type = new EnumWrapper(ArchiveV2025R0TypeField.ARCHIVE); + } return new ArchiveV2025R0(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchbasev2025r0/DocGenBatchBaseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchbasev2025r0/DocGenBatchBaseV2025R0.java index 58155b829..4d19df165 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchbasev2025r0/DocGenBatchBaseV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchbasev2025r0/DocGenBatchBaseV2025R0.java @@ -80,9 +80,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - DocGenBatchBaseV2025R0TypeField.DOCGEN_BATCH); } public Builder type(DocGenBatchBaseV2025R0TypeField type) { @@ -96,6 +93,11 @@ public Builder type(EnumWrapper type) { } public DocGenBatchBaseV2025R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + DocGenBatchBaseV2025R0TypeField.DOCGEN_BATCH); + } return new DocGenBatchBaseV2025R0(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0DestinationFolderField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0DestinationFolderField.java index 489240090..73135be5d 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0DestinationFolderField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0DestinationFolderField.java @@ -89,9 +89,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - DocGenBatchCreateRequestV2025R0DestinationFolderTypeField.FOLDER); } public Builder type(DocGenBatchCreateRequestV2025R0DestinationFolderTypeField type) { @@ -106,6 +103,11 @@ public Builder type( } public DocGenBatchCreateRequestV2025R0DestinationFolderField build() { + if (this.type == null) { + this.type = + new EnumWrapper( + DocGenBatchCreateRequestV2025R0DestinationFolderTypeField.FOLDER); + } return new DocGenBatchCreateRequestV2025R0DestinationFolderField(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobbasev2025r0/DocGenJobBaseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobbasev2025r0/DocGenJobBaseV2025R0.java index d5f2408da..915c397a3 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobbasev2025r0/DocGenJobBaseV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobbasev2025r0/DocGenJobBaseV2025R0.java @@ -76,8 +76,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper(DocGenJobBaseV2025R0TypeField.DOCGEN_JOB); } public Builder type(DocGenJobBaseV2025R0TypeField type) { @@ -91,6 +89,11 @@ public Builder type(EnumWrapper type) { } public DocGenJobBaseV2025R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + DocGenJobBaseV2025R0TypeField.DOCGEN_JOB); + } return new DocGenJobBaseV2025R0(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobfullv2025r0/DocGenJobFullV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobfullv2025r0/DocGenJobFullV2025R0.java index 521a13701..8e33443e7 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobfullv2025r0/DocGenJobFullV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobfullv2025r0/DocGenJobFullV2025R0.java @@ -257,6 +257,11 @@ public Builder outputFileVersion(FileVersionBaseV2025R0 outputFileVersion) { } public DocGenJobFullV2025R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + DocGenJobBaseV2025R0TypeField.DOCGEN_JOB); + } return new DocGenJobFullV2025R0(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0.java index 37e50d6fc..64674d8a7 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0.java @@ -254,6 +254,11 @@ public Builder type(EnumWrapper type) { } public DocGenJobV2025R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + DocGenJobBaseV2025R0TypeField.DOCGEN_JOB); + } return new DocGenJobV2025R0(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/filereferencev2025r0/FileReferenceV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/filereferencev2025r0/FileReferenceV2025R0.java index 6f6ffd780..b7bd7c3b3 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/filereferencev2025r0/FileReferenceV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/filereferencev2025r0/FileReferenceV2025R0.java @@ -75,8 +75,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper(FileReferenceV2025R0TypeField.FILE); } public Builder type(FileReferenceV2025R0TypeField type) { @@ -90,6 +88,10 @@ public Builder type(EnumWrapper type) { } public FileReferenceV2025R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper(FileReferenceV2025R0TypeField.FILE); + } return new FileReferenceV2025R0(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/fileversionbasev2025r0/FileVersionBaseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/fileversionbasev2025r0/FileVersionBaseV2025R0.java index 6f5abf79d..b45667fcc 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/fileversionbasev2025r0/FileVersionBaseV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/fileversionbasev2025r0/FileVersionBaseV2025R0.java @@ -80,9 +80,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - FileVersionBaseV2025R0TypeField.FILE_VERSION); } public Builder type(FileVersionBaseV2025R0TypeField type) { @@ -96,6 +93,11 @@ public Builder type(EnumWrapper type) { } public FileVersionBaseV2025R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + FileVersionBaseV2025R0TypeField.FILE_VERSION); + } return new FileVersionBaseV2025R0(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/folderreferencev2025r0/FolderReferenceV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/folderreferencev2025r0/FolderReferenceV2025R0.java index 1a058b053..8558d195e 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/folderreferencev2025r0/FolderReferenceV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/folderreferencev2025r0/FolderReferenceV2025R0.java @@ -76,8 +76,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper(FolderReferenceV2025R0TypeField.FOLDER); } public Builder type(FolderReferenceV2025R0TypeField type) { @@ -91,6 +89,11 @@ public Builder type(EnumWrapper type) { } public FolderReferenceV2025R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + FolderReferenceV2025R0TypeField.FOLDER); + } return new FolderReferenceV2025R0(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/groupbasev2025r0/GroupBaseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/groupbasev2025r0/GroupBaseV2025R0.java index 4d18f1ff5..8574808e7 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/groupbasev2025r0/GroupBaseV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/groupbasev2025r0/GroupBaseV2025R0.java @@ -73,7 +73,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = new EnumWrapper(GroupBaseV2025R0TypeField.GROUP); } public Builder type(GroupBaseV2025R0TypeField type) { @@ -87,6 +86,9 @@ public Builder type(EnumWrapper type) { } public GroupBaseV2025R0 build() { + if (this.type == null) { + this.type = new EnumWrapper(GroupBaseV2025R0TypeField.GROUP); + } return new GroupBaseV2025R0(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/groupminiv2025r0/GroupMiniV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/groupminiv2025r0/GroupMiniV2025R0.java index 8708dcc70..c74dbcb5a 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/groupminiv2025r0/GroupMiniV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/groupminiv2025r0/GroupMiniV2025R0.java @@ -122,6 +122,9 @@ public Builder type(EnumWrapper type) { } public GroupMiniV2025R0 build() { + if (this.type == null) { + this.type = new EnumWrapper(GroupBaseV2025R0TypeField.GROUP); + } return new GroupMiniV2025R0(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubbasev2025r0/HubBaseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubbasev2025r0/HubBaseV2025R0.java index 576942578..3303647fa 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubbasev2025r0/HubBaseV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubbasev2025r0/HubBaseV2025R0.java @@ -79,7 +79,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = new EnumWrapper(HubBaseV2025R0TypeField.HUBS); } public Builder type(HubBaseV2025R0TypeField type) { @@ -93,6 +92,9 @@ public Builder type(EnumWrapper type) { } public HubBaseV2025R0 build() { + if (this.type == null) { + this.type = new EnumWrapper(HubBaseV2025R0TypeField.HUBS); + } return new HubBaseV2025R0(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0HubField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0HubField.java index 3808a3335..cd6a69ca9 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0HubField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0HubField.java @@ -89,9 +89,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - HubCollaborationCreateRequestV2025R0HubTypeField.HUBS); } public Builder type(HubCollaborationCreateRequestV2025R0HubTypeField type) { @@ -105,6 +102,11 @@ public Builder type(EnumWrapper( + HubCollaborationCreateRequestV2025R0HubTypeField.HUBS); + } return new HubCollaborationCreateRequestV2025R0HubField(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationuserv2025r0/HubCollaborationUserV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationuserv2025r0/HubCollaborationUserV2025R0.java index 4f432d34e..8d896e856 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationuserv2025r0/HubCollaborationUserV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationuserv2025r0/HubCollaborationUserV2025R0.java @@ -116,6 +116,9 @@ public Builder type(EnumWrapper type) { } public HubCollaborationUserV2025R0 build() { + if (this.type == null) { + this.type = new EnumWrapper(UserBaseV2025R0TypeField.USER); + } return new HubCollaborationUserV2025R0(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0.java index f366531a8..0e0f769e5 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0.java @@ -179,9 +179,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - HubCollaborationV2025R0TypeField.HUB_COLLABORATION); } public Builder type(HubCollaborationV2025R0TypeField type) { @@ -236,6 +233,11 @@ public Builder acceptanceRequirementsStatus( } public HubCollaborationV2025R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + HubCollaborationV2025R0TypeField.HUB_COLLABORATION); + } return new HubCollaborationV2025R0(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0.java index 055d807a9..df27fe880 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0.java @@ -326,6 +326,9 @@ public Builder type(EnumWrapper type) { } public HubV2025R0 build() { + if (this.type == null) { + this.type = new EnumWrapper(HubBaseV2025R0TypeField.HUBS); + } return new HubV2025R0(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentcountryv2025r0/ShieldListContentCountryV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentcountryv2025r0/ShieldListContentCountryV2025R0.java index d41adebd5..661697d9d 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentcountryv2025r0/ShieldListContentCountryV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentcountryv2025r0/ShieldListContentCountryV2025R0.java @@ -91,9 +91,6 @@ public static class Builder extends NullableFieldTracker { public Builder(List countryCodes) { super(); this.countryCodes = countryCodes; - this.type = - new EnumWrapper( - ShieldListContentCountryV2025R0TypeField.COUNTRY); } public Builder type(ShieldListContentCountryV2025R0TypeField type) { @@ -107,6 +104,11 @@ public Builder type(EnumWrapper type) } public ShieldListContentCountryV2025R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + ShieldListContentCountryV2025R0TypeField.COUNTRY); + } return new ShieldListContentCountryV2025R0(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentdomainv2025r0/ShieldListContentDomainV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentdomainv2025r0/ShieldListContentDomainV2025R0.java index 32a3102b8..9b0281150 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentdomainv2025r0/ShieldListContentDomainV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentdomainv2025r0/ShieldListContentDomainV2025R0.java @@ -90,9 +90,6 @@ public static class Builder extends NullableFieldTracker { public Builder(List domains) { super(); this.domains = domains; - this.type = - new EnumWrapper( - ShieldListContentDomainV2025R0TypeField.DOMAIN); } public Builder type(ShieldListContentDomainV2025R0TypeField type) { @@ -106,6 +103,11 @@ public Builder type(EnumWrapper type) { } public ShieldListContentDomainV2025R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + ShieldListContentDomainV2025R0TypeField.DOMAIN); + } return new ShieldListContentDomainV2025R0(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentemailv2025r0/ShieldListContentEmailV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentemailv2025r0/ShieldListContentEmailV2025R0.java index 88c3225e2..0b66e9f3b 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentemailv2025r0/ShieldListContentEmailV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentemailv2025r0/ShieldListContentEmailV2025R0.java @@ -93,9 +93,6 @@ public static class Builder extends NullableFieldTracker { public Builder(List emailAddresses) { super(); this.emailAddresses = emailAddresses; - this.type = - new EnumWrapper( - ShieldListContentEmailV2025R0TypeField.EMAIL); } public Builder type(ShieldListContentEmailV2025R0TypeField type) { @@ -109,6 +106,11 @@ public Builder type(EnumWrapper type) { } public ShieldListContentEmailV2025R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + ShieldListContentEmailV2025R0TypeField.EMAIL); + } return new ShieldListContentEmailV2025R0(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0.java index 265604587..8e117408e 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0.java @@ -92,9 +92,6 @@ public static class Builder extends NullableFieldTracker { public Builder(List integrations) { super(); this.integrations = integrations; - this.type = - new EnumWrapper( - ShieldListContentIntegrationV2025R0TypeField.INTEGRATION); } public Builder type(ShieldListContentIntegrationV2025R0TypeField type) { @@ -108,6 +105,11 @@ public Builder type(EnumWrapper ty } public ShieldListContentIntegrationV2025R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + ShieldListContentIntegrationV2025R0TypeField.INTEGRATION); + } return new ShieldListContentIntegrationV2025R0(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentipv2025r0/ShieldListContentIpV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentipv2025r0/ShieldListContentIpV2025R0.java index 2d0d09ff3..29bd1ae38 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentipv2025r0/ShieldListContentIpV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentipv2025r0/ShieldListContentIpV2025R0.java @@ -89,9 +89,6 @@ public static class Builder extends NullableFieldTracker { public Builder(List ipAddresses) { super(); this.ipAddresses = ipAddresses; - this.type = - new EnumWrapper( - ShieldListContentIpV2025R0TypeField.IP); } public Builder type(ShieldListContentIpV2025R0TypeField type) { @@ -105,6 +102,11 @@ public Builder type(EnumWrapper type) { } public ShieldListContentIpV2025R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + ShieldListContentIpV2025R0TypeField.IP); + } return new ShieldListContentIpV2025R0(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0.java index d0a057f69..c1cd7c392 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0.java @@ -121,9 +121,6 @@ public Builder(String id, String name, ShieldListMiniV2025R0ContentField content this.id = id; this.name = name; this.content = content; - this.type = - new EnumWrapper( - ShieldListMiniV2025R0TypeField.SHIELD_LIST); } public Builder type(ShieldListMiniV2025R0TypeField type) { @@ -137,6 +134,11 @@ public Builder type(EnumWrapper type) { } public ShieldListMiniV2025R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + ShieldListMiniV2025R0TypeField.SHIELD_LIST); + } return new ShieldListMiniV2025R0(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/termsofservicebasev2025r0/TermsOfServiceBaseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/termsofservicebasev2025r0/TermsOfServiceBaseV2025R0.java index 202815436..651e4cf53 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/termsofservicebasev2025r0/TermsOfServiceBaseV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/termsofservicebasev2025r0/TermsOfServiceBaseV2025R0.java @@ -78,9 +78,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - TermsOfServiceBaseV2025R0TypeField.TERMS_OF_SERVICE); } public Builder type(TermsOfServiceBaseV2025R0TypeField type) { @@ -94,6 +91,11 @@ public Builder type(EnumWrapper type) { } public TermsOfServiceBaseV2025R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + TermsOfServiceBaseV2025R0TypeField.TERMS_OF_SERVICE); + } return new TermsOfServiceBaseV2025R0(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/userbasev2025r0/UserBaseV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/userbasev2025r0/UserBaseV2025R0.java index 09d08b7fe..18938cf03 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/userbasev2025r0/UserBaseV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/userbasev2025r0/UserBaseV2025R0.java @@ -73,7 +73,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = new EnumWrapper(UserBaseV2025R0TypeField.USER); } public Builder type(UserBaseV2025R0TypeField type) { @@ -87,6 +86,9 @@ public Builder type(EnumWrapper type) { } public UserBaseV2025R0 build() { + if (this.type == null) { + this.type = new EnumWrapper(UserBaseV2025R0TypeField.USER); + } return new UserBaseV2025R0(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/userminiv2025r0/UserMiniV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/userminiv2025r0/UserMiniV2025R0.java index 528efcec3..3826cc9d7 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/userminiv2025r0/UserMiniV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/userminiv2025r0/UserMiniV2025R0.java @@ -110,6 +110,9 @@ public Builder type(EnumWrapper type) { } public UserMiniV2025R0 build() { + if (this.type == null) { + this.type = new EnumWrapper(UserBaseV2025R0TypeField.USER); + } return new UserMiniV2025R0(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/userreferencev2025r0/UserReferenceV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/userreferencev2025r0/UserReferenceV2025R0.java index 00d39be44..6bd3f757f 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/userreferencev2025r0/UserReferenceV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/userreferencev2025r0/UserReferenceV2025R0.java @@ -75,8 +75,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper(UserReferenceV2025R0TypeField.USER); } public Builder type(UserReferenceV2025R0TypeField type) { @@ -90,6 +88,10 @@ public Builder type(EnumWrapper type) { } public UserReferenceV2025R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper(UserReferenceV2025R0TypeField.USER); + } return new UserReferenceV2025R0(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0.java index 56913119e..45929b62e 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0.java @@ -77,9 +77,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = - new EnumWrapper( - WeblinkReferenceV2025R0TypeField.WEB_LINK); } public Builder type(WeblinkReferenceV2025R0TypeField type) { @@ -93,6 +90,11 @@ public Builder type(EnumWrapper type) { } public WeblinkReferenceV2025R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + WeblinkReferenceV2025R0TypeField.WEB_LINK); + } return new WeblinkReferenceV2025R0(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/weblink/WebLink.java b/src/main/java/com/box/sdkgen/schemas/weblink/WebLink.java index 0619a2ef2..e21029282 100644 --- a/src/main/java/com/box/sdkgen/schemas/weblink/WebLink.java +++ b/src/main/java/com/box/sdkgen/schemas/weblink/WebLink.java @@ -411,6 +411,9 @@ public Builder name(String name) { } public WebLink build() { + if (this.type == null) { + this.type = new EnumWrapper(WebLinkBaseTypeField.WEB_LINK); + } return new WebLink(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/weblinkbase/WebLinkBase.java b/src/main/java/com/box/sdkgen/schemas/weblinkbase/WebLinkBase.java index 427c7b2d8..a02da4bbc 100644 --- a/src/main/java/com/box/sdkgen/schemas/weblinkbase/WebLinkBase.java +++ b/src/main/java/com/box/sdkgen/schemas/weblinkbase/WebLinkBase.java @@ -103,7 +103,6 @@ public static class Builder extends NullableFieldTracker { public Builder(String id) { super(); this.id = id; - this.type = new EnumWrapper(WebLinkBaseTypeField.WEB_LINK); } public Builder type(WebLinkBaseTypeField type) { @@ -122,6 +121,9 @@ public Builder etag(String etag) { } public WebLinkBase build() { + if (this.type == null) { + this.type = new EnumWrapper(WebLinkBaseTypeField.WEB_LINK); + } return new WebLinkBase(this); } } diff --git a/src/main/java/com/box/sdkgen/schemas/weblinkmini/WebLinkMini.java b/src/main/java/com/box/sdkgen/schemas/weblinkmini/WebLinkMini.java index 9711c280f..599163d50 100644 --- a/src/main/java/com/box/sdkgen/schemas/weblinkmini/WebLinkMini.java +++ b/src/main/java/com/box/sdkgen/schemas/weblinkmini/WebLinkMini.java @@ -147,6 +147,9 @@ public Builder etag(String etag) { } public WebLinkMini build() { + if (this.type == null) { + this.type = new EnumWrapper(WebLinkBaseTypeField.WEB_LINK); + } return new WebLinkMini(this); } } diff --git a/src/test/java/com/box/sdkgen/chunkeduploads/TestPartAccumulator.java b/src/test/java/com/box/sdkgen/chunkeduploads/TestPartAccumulator.java index dc09ee76d..e37d57577 100644 --- a/src/test/java/com/box/sdkgen/chunkeduploads/TestPartAccumulator.java +++ b/src/test/java/com/box/sdkgen/chunkeduploads/TestPartAccumulator.java @@ -79,8 +79,6 @@ public Builder(int lastIndex, List parts, long fileSize, Hash fileHa this.parts = parts; this.fileSize = fileSize; this.fileHash = fileHash; - this.uploadPartUrl = ""; - this.uploadSessionId = ""; } public Builder uploadPartUrl(String uploadPartUrl) { @@ -94,6 +92,12 @@ public Builder uploadSessionId(String uploadSessionId) { } public TestPartAccumulator build() { + if (this.uploadPartUrl == null) { + this.uploadPartUrl = ""; + } + if (this.uploadSessionId == null) { + this.uploadSessionId = ""; + } return new TestPartAccumulator(this); } } From ffd84cb9d1da6e5dcfe7b1815a769fcdf6af855c Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 10 Feb 2026 19:10:04 +0100 Subject: [PATCH 086/148] chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] (#1719) --- .codegen.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index e59cf0e8a..022b85e7c 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "406023b", "specHash": "ccdb456", "version": "10.4.0" } +{ "engineHash": "bfb97cc", "specHash": "ccdb456", "version": "10.4.0" } From 3c94cfc69d6be2db40b72bf2902ee095824e0796 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 11 Feb 2026 11:35:54 +0100 Subject: [PATCH 087/148] feat: add signer language, cancel sign request reason (box/box-openapi#584) (#1721) --- .codegen.json | 2 +- docs/signrequests.md | 2 + .../folders/GetFolderByIdQueryParams.java | 4 +- .../folders/GetFolderItemsQueryParams.java | 4 +- .../signrequests/SignRequestsManager.java | 29 ++++++++- .../AiExtractStructuredResponse.java | 4 +- .../SignRequestCancelRequest.java | 64 +++++++++++++++++++ .../SignRequestCreateSigner.java | 29 ++++++++- .../signrequestsigner/SignRequestSigner.java | 13 ++++ 9 files changed, 143 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/box/sdkgen/schemas/signrequestcancelrequest/SignRequestCancelRequest.java diff --git a/.codegen.json b/.codegen.json index 022b85e7c..cf002cd64 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "bfb97cc", "specHash": "ccdb456", "version": "10.4.0" } +{ "engineHash": "bfb97cc", "specHash": "77eac4b", "version": "10.4.0" } diff --git a/docs/signrequests.md b/docs/signrequests.md index c9227c875..d6dfcf408 100644 --- a/docs/signrequests.md +++ b/docs/signrequests.md @@ -25,6 +25,8 @@ client.getSignRequests().cancelSignRequest(createdSignRequest.getId()) - signRequestId `String` - The ID of the signature request. Example: "33243242" +- requestBody `SignRequestCancelRequest` + - Request body of cancelSignRequest method - headers `CancelSignRequestHeaders` - Headers of cancelSignRequest method diff --git a/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParams.java index d2fec7a2f..77c4a4055 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParams.java @@ -47,7 +47,9 @@ public class GetFolderByIdQueryParams { /** * The offset of the item at which to begin the response. * - *

    Queries with offset parameter value exceeding 10000 will be rejected with a 400 response. + *

    Offset-based pagination is not guaranteed to work reliably for high offset values and may + * fail for large datasets. In those cases, reduce the number of items in the folder (for example, + * by restructuring the folder into smaller subfolders) before retrying the request. */ public Long offset; diff --git a/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParams.java b/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParams.java index 609f4a164..66afd117d 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParams.java @@ -39,7 +39,9 @@ public class GetFolderItemsQueryParams { /** * The offset of the item at which to begin the response. * - *

    Queries with offset parameter value exceeding 10000 will be rejected with a 400 response. + *

    Offset-based pagination is not guaranteed to work reliably for high offset values and may + * fail for large datasets. In those cases, use marker-based pagination by setting `usemarker` to + * `true`. */ public Long offset; diff --git a/src/main/java/com/box/sdkgen/managers/signrequests/SignRequestsManager.java b/src/main/java/com/box/sdkgen/managers/signrequests/SignRequestsManager.java index 50d46ed2f..59e744e85 100644 --- a/src/main/java/com/box/sdkgen/managers/signrequests/SignRequestsManager.java +++ b/src/main/java/com/box/sdkgen/managers/signrequests/SignRequestsManager.java @@ -12,6 +12,7 @@ import com.box.sdkgen.networking.fetchresponse.FetchResponse; import com.box.sdkgen.networking.network.NetworkSession; import com.box.sdkgen.schemas.signrequest.SignRequest; +import com.box.sdkgen.schemas.signrequestcancelrequest.SignRequestCancelRequest; import com.box.sdkgen.schemas.signrequestcreaterequest.SignRequestCreateRequest; import com.box.sdkgen.schemas.signrequests.SignRequests; import com.box.sdkgen.serialization.json.JsonManager; @@ -38,7 +39,17 @@ protected SignRequestsManager(Builder builder) { * @param signRequestId The ID of the signature request. Example: "33243242" */ public SignRequest cancelSignRequest(String signRequestId) { - return cancelSignRequest(signRequestId, new CancelSignRequestHeaders()); + return cancelSignRequest(signRequestId, null, new CancelSignRequestHeaders()); + } + + /** + * Cancels a sign request. + * + * @param signRequestId The ID of the signature request. Example: "33243242" + * @param requestBody Request body of cancelSignRequest method + */ + public SignRequest cancelSignRequest(String signRequestId, SignRequestCancelRequest requestBody) { + return cancelSignRequest(signRequestId, requestBody, new CancelSignRequestHeaders()); } /** @@ -48,6 +59,20 @@ public SignRequest cancelSignRequest(String signRequestId) { * @param headers Headers of cancelSignRequest method */ public SignRequest cancelSignRequest(String signRequestId, CancelSignRequestHeaders headers) { + return cancelSignRequest(signRequestId, null, headers); + } + + /** + * Cancels a sign request. + * + * @param signRequestId The ID of the signature request. Example: "33243242" + * @param requestBody Request body of cancelSignRequest method + * @param headers Headers of cancelSignRequest method + */ + public SignRequest cancelSignRequest( + String signRequestId, + SignRequestCancelRequest requestBody, + CancelSignRequestHeaders headers) { Map headersMap = prepareParams(mergeMaps(mapOf(), headers.getExtraHeaders())); FetchResponse response = this.networkSession @@ -62,6 +87,8 @@ public SignRequest cancelSignRequest(String signRequestId, CancelSignRequestHead "/cancel"), "POST") .headers(headersMap) + .data((!(requestBody == null) ? JsonManager.serialize(requestBody) : null)) + .contentType("application/json") .responseFormat(ResponseFormat.JSON) .auth(this.auth) .networkSession(this.networkSession) diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java index 3cdc770f9..b9e6dc286 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java @@ -29,8 +29,8 @@ public class AiExtractStructuredResponse extends SerializableObject { protected String completionReason; /** - * The confidence score numeric values for each extracted field as a JSON dictionary. This can be - * empty if no field could be extracted. + * The confidence score levels and numeric values for each extracted field as a JSON dictionary. + * This can be empty if no field could be extracted. */ @JsonProperty("confidence_score") protected Map confidenceScore; diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestcancelrequest/SignRequestCancelRequest.java b/src/main/java/com/box/sdkgen/schemas/signrequestcancelrequest/SignRequestCancelRequest.java new file mode 100644 index 000000000..f9f219fd3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/signrequestcancelrequest/SignRequestCancelRequest.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.signrequestcancelrequest; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.Objects; + +/** Request body for cancelling a sign request. */ +@JsonFilter("nullablePropertyFilter") +public class SignRequestCancelRequest extends SerializableObject { + + /** An optional reason for cancelling the sign request. */ + protected String reason; + + public SignRequestCancelRequest() { + super(); + } + + protected SignRequestCancelRequest(Builder builder) { + super(); + this.reason = builder.reason; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getReason() { + return reason; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignRequestCancelRequest casted = (SignRequestCancelRequest) o; + return Objects.equals(reason, casted.reason); + } + + @Override + public int hashCode() { + return Objects.hash(reason); + } + + @Override + public String toString() { + return "SignRequestCancelRequest{" + "reason='" + reason + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected String reason; + + public Builder reason(String reason) { + this.reason = reason; + return this; + } + + public SignRequestCancelRequest build() { + return new SignRequestCancelRequest(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestcreatesigner/SignRequestCreateSigner.java b/src/main/java/com/box/sdkgen/schemas/signrequestcreatesigner/SignRequestCreateSigner.java index 5c1a26f85..521cfcea3 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestcreatesigner/SignRequestCreateSigner.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestcreatesigner/SignRequestCreateSigner.java @@ -108,6 +108,12 @@ public class SignRequestCreateSigner extends SerializableObject { @Nullable protected Boolean suppressNotifications; + /** + * The language of the user, formatted in modified version of the [ISO + * 639-1](https://developer.box.com/guides/api-calls/language-codes) format. + */ + @Nullable protected String language; + public SignRequestCreateSigner() { super(); } @@ -126,6 +132,7 @@ protected SignRequestCreateSigner(Builder builder) { this.password = builder.password; this.signerGroupId = builder.signerGroupId; this.suppressNotifications = builder.suppressNotifications; + this.language = builder.language; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -177,6 +184,10 @@ public Boolean getSuppressNotifications() { return suppressNotifications; } + public String getLanguage() { + return language; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -197,7 +208,8 @@ public boolean equals(Object o) { && Objects.equals(verificationPhoneNumber, casted.verificationPhoneNumber) && Objects.equals(password, casted.password) && Objects.equals(signerGroupId, casted.signerGroupId) - && Objects.equals(suppressNotifications, casted.suppressNotifications); + && Objects.equals(suppressNotifications, casted.suppressNotifications) + && Objects.equals(language, casted.language); } @Override @@ -214,7 +226,8 @@ public int hashCode() { verificationPhoneNumber, password, signerGroupId, - suppressNotifications); + suppressNotifications, + language); } @Override @@ -267,6 +280,10 @@ public String toString() { + "suppressNotifications='" + suppressNotifications + '\'' + + ", " + + "language='" + + language + + '\'' + "}"; } @@ -296,6 +313,8 @@ public static class Builder extends NullableFieldTracker { protected Boolean suppressNotifications; + protected String language; + public Builder email(String email) { this.email = email; this.markNullableFieldAsSet("email"); @@ -370,6 +389,12 @@ public Builder suppressNotifications(Boolean suppressNotifications) { return this; } + public Builder language(String language) { + this.language = language; + this.markNullableFieldAsSet("language"); + return this; + } + public SignRequestCreateSigner build() { return new SignRequestCreateSigner(this); } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSigner.java b/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSigner.java index fdf3d2d25..546e7954a 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSigner.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSigner.java @@ -103,6 +103,7 @@ public boolean equals(Object o) { && Objects.equals(password, casted.password) && Objects.equals(signerGroupId, casted.signerGroupId) && Objects.equals(suppressNotifications, casted.suppressNotifications) + && Objects.equals(language, casted.language) && Objects.equals(hasViewedDocument, casted.hasViewedDocument) && Objects.equals(signerDecision, casted.signerDecision) && Objects.equals(inputs, casted.inputs) @@ -126,6 +127,7 @@ public int hashCode() { password, signerGroupId, suppressNotifications, + language, hasViewedDocument, signerDecision, inputs, @@ -185,6 +187,10 @@ public String toString() { + suppressNotifications + '\'' + ", " + + "language='" + + language + + '\'' + + ", " + "hasViewedDocument='" + hasViewedDocument + '\'' @@ -346,6 +352,13 @@ public Builder suppressNotifications(Boolean suppressNotifications) { return this; } + @Override + public Builder language(String language) { + this.language = language; + this.markNullableFieldAsSet("language"); + return this; + } + public SignRequestSigner build() { return new SignRequestSigner(this); } From 76d4f9f6f471d3277481832d6f49b620a456baff Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 11 Feb 2026 14:06:42 +0100 Subject: [PATCH 088/148] chore: release version 10.5.0 (#1723) --- .codegen.json | 2 +- CHANGELOG.md | 15 +++++++++++++++ build.gradle | 2 +- .../box/sdkgen/networking/version/Version.java | 2 +- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index cf002cd64..11364ffb4 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "bfb97cc", "specHash": "77eac4b", "version": "10.4.0" } +{ "engineHash": "bfb97cc", "specHash": "77eac4b", "version": "10.5.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index c9fd0543b..3bf4b34f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,21 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [10.5.0](https://github.com/box/box-java-sdk/compare/v10.4.0...v10.5.0) (2026-02-11) + + +### Bug Fixes + +* Correct enum value for legal hold policy changes (box/box-openapi[#581](https://github.com/box/box-java-sdk/issues/581)) ([#1695](https://github.com/box/box-java-sdk/issues/1695)) ([f9e3d5e](https://github.com/box/box-java-sdk/commit/f9e3d5ee3c54d074d5b5aef1c5c01599c0b8c9e9)) +* Move assigning default values from builder constructor to `build()` method (box/box-codegen[#922](https://github.com/box/box-java-sdk/issues/922)) ([#1716](https://github.com/box/box-java-sdk/issues/1716)) ([0a9dbe3](https://github.com/box/box-java-sdk/commit/0a9dbe3bebb618a0a33c53cd1e9a90582c0504e2)) + + +### New Features and Enhancements + +* add confidence scores for structured extract (box/box-openapi[#582](https://github.com/box/box-java-sdk/issues/582)) ([#1697](https://github.com/box/box-java-sdk/issues/1697)) ([112b954](https://github.com/box/box-java-sdk/commit/112b9545d0ef1839d007bf215356b31e658daad8)) +* add signer language, cancel sign request reason (box/box-openapi[#584](https://github.com/box/box-java-sdk/issues/584)) ([#1721](https://github.com/box/box-java-sdk/issues/1721)) ([3c94cfc](https://github.com/box/box-java-sdk/commit/3c94cfc69d6be2db40b72bf2902ee095824e0796)) +* Add watermarking permissions and sources information (box/box-openapi[#579](https://github.com/box/box-java-sdk/issues/579)) ([#1688](https://github.com/box/box-java-sdk/issues/1688)) ([215c0f3](https://github.com/box/box-java-sdk/commit/215c0f3cce4042332373eec66b1695ed958f1f3b)) + ## [10.4.0](https://github.com/box/box-java-sdk/compare/v10.3.0...v10.4.0) (2025-12-19) diff --git a/build.gradle b/build.gradle index 46d0e1349..32ab1629a 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ plugins { } group = "com.box" archivesBaseName = "box-java-sdk" -version = "10.4.0" +version = "10.5.0" java { sourceCompatibility = JavaVersion.toVersion(libraryJavaVersion) targetCompatibility = JavaVersion.toVersion(libraryJavaVersion) diff --git a/src/main/java/com/box/sdkgen/networking/version/Version.java b/src/main/java/com/box/sdkgen/networking/version/Version.java index 16ce27379..086c32e00 100644 --- a/src/main/java/com/box/sdkgen/networking/version/Version.java +++ b/src/main/java/com/box/sdkgen/networking/version/Version.java @@ -3,6 +3,6 @@ public class Version { public static String getVersion() { - return "10.4.0"; + return "10.5.0"; } } From 33fb81323822cbe160305255d39c923a8705f9ad Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 25 Feb 2026 13:18:32 +0100 Subject: [PATCH 089/148] test: assume that exception is thrown from delete archive (box/box-codegen#927) (#1725) --- .codegen.json | 2 +- src/test/java/com/box/sdkgen/archives/ArchivesITest.java | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.codegen.json b/.codegen.json index 11364ffb4..c0669ab2e 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "bfb97cc", "specHash": "77eac4b", "version": "10.5.0" } +{ "engineHash": "f36ed52", "specHash": "77eac4b", "version": "10.5.0" } diff --git a/src/test/java/com/box/sdkgen/archives/ArchivesITest.java b/src/test/java/com/box/sdkgen/archives/ArchivesITest.java index d02b09b34..03bc91d7d 100644 --- a/src/test/java/com/box/sdkgen/archives/ArchivesITest.java +++ b/src/test/java/com/box/sdkgen/archives/ArchivesITest.java @@ -52,7 +52,6 @@ public void testArchivesCreateListDelete() { .getArchives() .getArchivesV2025R0(new GetArchivesV2025R0QueryParams.Builder().limit(100L).build()); assert archives.getEntries().size() > 0; - client.getArchives().deleteArchiveByIdV2025R0(archive.getId()); assertThrows( RuntimeException.class, () -> client.getArchives().deleteArchiveByIdV2025R0(archive.getId())); From 0876cc525537027f3f0de7b289a7098642fdb1ed Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 25 Feb 2026 13:38:17 +0100 Subject: [PATCH 090/148] docs: Improve documentation for retry strategies (box/box-codegen#925) (#1728) Co-authored-by: box-sdk-build --- .codegen.json | 2 +- docs/configuration.md | 146 ++++++++++++++++++++++++++++++++++++++---- 2 files changed, 136 insertions(+), 12 deletions(-) diff --git a/.codegen.json b/.codegen.json index c0669ab2e..fcdea3595 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "f36ed52", "specHash": "77eac4b", "version": "10.5.0" } +{ "engineHash": "482939a", "specHash": "77eac4b", "version": "10.5.0" } diff --git a/docs/configuration.md b/docs/configuration.md index ab18f97a8..8b49875b1 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -3,38 +3,162 @@ -- [Configuration](#configuration) - - [Max retry attempts](#max-retry-attempts) - - [Custom retry strategy](#custom-retry-strategy) +- [Retry Strategy](#retry-strategy) + - [Overview](#overview) + - [Default Configuration](#default-configuration) + - [Retry Decision Flow](#retry-decision-flow) + - [Exponential Backoff Algorithm](#exponential-backoff-algorithm) + - [Example Delays (with default settings)](#example-delays-with-default-settings) + - [Retry-After Header](#retry-after-header) + - [Network Exception Handling](#network-exception-handling) + - [Customizing Retry Parameters](#customizing-retry-parameters) + - [Custom Retry Strategy](#custom-retry-strategy) -## Max retry attempts +## Retry Strategy -The default maximum number of retries in case of failed API call is 5. -To change this number you should initialize `BoxRetryStrategy` with the new value and pass it to `NetworkSession`. +### Overview + +The SDK ships with a built-in retry strategy (`BoxRetryStrategy`) that implements the `RetryStrategy` interface. The `BoxNetworkClient`, which serves as the default network client, uses this strategy to automatically retry failed API requests with exponential backoff. + +The retry strategy exposes two methods: + +- **`shouldRetry`** — Determines whether a failed request should be retried based on the HTTP status code, response headers, attempt count, and authentication state. +- **`retryAfter`** — Computes the delay (in seconds) before the next retry attempt, using either the server-provided `Retry-After` header or an exponential backoff formula. + +### Default Configuration + +| Parameter | Default | Description | +| -------------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `maxAttempts` | `5` | Maximum number of retry attempts for HTTP error responses (status 4xx/5xx). | +| `retryBaseInterval` | `1` (second) | Base interval used in the exponential backoff calculation. | +| `retryRandomizationFactor` | `0.5` | Jitter factor applied to the backoff delay. The actual delay is multiplied by a random value between `1 - factor` and `1 + factor`. | +| `maxRetriesOnException` | `2` | Maximum number of retries for network-level exceptions (connection failures, timeouts). These are tracked by a separate counter from HTTP error retries. | + +### Retry Decision Flow + +The following diagram shows how `BoxRetryStrategy.shouldRetry` decides whether to retry a request: + +``` + shouldRetry(fetchOptions, fetchResponse, attemptNumber) + | + v + +-----------------------+ + | status == 0 | Yes + | (network exception)? |----------> attemptNumber <= maxRetriesOnException? + +-----------------------+ | | + | No Yes No + v | | + +-----------------------+ [RETRY] [NO RETRY] + | attemptNumber >= | + | maxAttempts? | + +-----------------------+ + | | + Yes No + | | + [NO RETRY] v + +-----------------------+ + | status == 202 AND | Yes + | Retry-After header? |----------> [RETRY] + +-----------------------+ + | No + v + +-----------------------+ + | status >= 500 | Yes + | (server error)? |----------> [RETRY] + +-----------------------+ + | No + v + +-----------------------+ + | status == 429 | Yes + | (rate limited)? |----------> [RETRY] + +-----------------------+ + | No + v + +-----------------------+ + | status == 401 AND | Yes + | auth available? |----------> Refresh token, then [RETRY] + +-----------------------+ + | No + v + [NO RETRY] +``` + +### Exponential Backoff Algorithm + +When the response does not include a `Retry-After` header, the retry delay is computed using exponential backoff with randomized jitter: + +``` +delay = 2^attemptNumber * retryBaseInterval * random(1 - factor, 1 + factor) +``` + +Where: + +- `attemptNumber` is the current attempt (1-based) +- `retryBaseInterval` defaults to `1` second +- `factor` is `retryRandomizationFactor` (default `0.5`) +- `random(min, max)` returns a uniformly distributed value in `[min, max]` + +#### Example Delays (with default settings) + +| Attempt | Base Delay | Min Delay (factor=0.5) | Max Delay (factor=0.5) | +| ------- | ---------- | ---------------------- | ---------------------- | +| 1 | 2s | 1.0s | 3.0s | +| 2 | 4s | 2.0s | 6.0s | +| 3 | 8s | 4.0s | 12.0s | +| 4 | 16s | 8.0s | 24.0s | + +### Retry-After Header + +When the server includes a `Retry-After` header in the response, the SDK uses the header value directly as the delay in seconds instead of computing an exponential backoff delay. This applies to any retryable response that includes the header, including: + +- `202 Accepted` with `Retry-After` (long-running operations) +- `429 Too Many Requests` with `Retry-After` +- `5xx` server errors with `Retry-After` + +The header value is parsed as a floating-point number representing seconds. + +### Network Exception Handling + +Network-level failures (connection refused, DNS resolution errors, timeouts, TLS errors) are represented internally as responses with status `0`. These exceptions are tracked by a **separate counter** (`maxRetriesOnException`, default `2`) from the regular HTTP error retry counter (`maxAttempts`). + +This means: + +- Network exception retries are tracked independently from HTTP error retries, each with their own counter and backoff progression. +- A request can fail up to `maxRetriesOnException` times due to network exceptions, but each exception retry also increments the overall attempt counter, so the total number of retries across both exception and HTTP error types is bounded by `maxAttempts`. + +### Customizing Retry Parameters + +You can customize all retry parameters by initializing `BoxRetryStrategy` with the desired values and passing it to `NetworkSession`: ```java BoxDeveloperTokenAuth auth = new BoxDeveloperTokenAuth("DEVELOPER_TOKEN"); NetworkSession session = new NetworkSession.Builder() - .retryStrategy(new BoxRetryStrategy.Builder().maxAttempts(3).build()) + .retryStrategy( + new BoxRetryStrategy.Builder() + .maxAttempts(3) + .retryBaseInterval(2) + .retryRandomizationFactor(0.3) + .maxRetriesOnException(1) + .build() + ) .build(); BoxClient client = new BoxClient.Builder(auth) .networkSession(session) .build(); ``` -## Custom retry strategy +### Custom Retry Strategy -You can also implement your own retry strategy by subclassing `RetryStrategy` and overriding `shouldRetry` and `retryAfter` methods. -This example shows how to set custom strategy that retries on 5xx status codes and waits 1 second between retries. +You can implement your own retry strategy by implementing the `RetryStrategy` interface and overriding the `shouldRetry` and `retryAfter` methods: ```java BoxDeveloperTokenAuth auth = new BoxDeveloperTokenAuth("DEVELOPER_TOKEN"); RetryStrategy customRetryStrategy = new RetryStrategy() { @Override public boolean shouldRetry(FetchOptions fetchOptions, FetchResponse fetchResponse, int attemptNumber) { - return fetchResponse.status >= 500; + return fetchResponse.getStatus() >= 500 && attemptNumber < 3; } @Override From 1fa2c9ad954ed01ec387b7a1d1018c62d5de3867 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 25 Feb 2026 14:17:19 +0100 Subject: [PATCH 091/148] feat: Add customizable timeouts for SDKs (box/box-codegen#924) (#1730) Co-authored-by: box-sdk-build --- .codegen.json | 2 +- docs/client.md | 13 ++++++ docs/configuration.md | 32 +++++++++++++ .../java/com/box/sdkgen/client/BoxClient.java | 12 +++++ .../boxnetworkclient/BoxNetworkClient.java | 26 +++++++++++ .../networking/network/NetworkSession.java | 45 +++++++++++++++++++ .../timeoutconfig/TimeoutConfig.java | 44 ++++++++++++++++++ .../com/box/sdkgen/client/ClientITest.java | 17 +++++++ 8 files changed, 190 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/box/sdkgen/networking/timeoutconfig/TimeoutConfig.java diff --git a/.codegen.json b/.codegen.json index fcdea3595..ef6446242 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "482939a", "specHash": "77eac4b", "version": "10.5.0" } +{ "engineHash": "bc04b80", "specHash": "77eac4b", "version": "10.5.0" } diff --git a/docs/client.md b/docs/client.md index 9a871d55e..7e63120f4 100644 --- a/docs/client.md +++ b/docs/client.md @@ -17,6 +17,7 @@ divided across resource managers. - [Custom headers](#custom-headers) - [Custom Base URLs](#custom-base-urls) - [Interceptors](#interceptors) +- [Use Timeouts for API calls](#use-timeouts-for-api-calls) - [Use Proxy for API calls](#use-proxy-for-api-calls) @@ -178,6 +179,18 @@ List interceptors = new ArrayList<>() { BoxClient clientWithInterceptor = client.withInterceptors(interceptors); ``` +# Use Timeouts for API calls + +In order to configure timeout for API calls, calling the `client.withTimeouts(config)` method creates a new client with timeout settings, leaving the original client unmodified. + +```java +TimeoutConfig timeoutConfig = new TimeoutConfig.Builder() + .connectionTimeoutMs(10000L) + .readTimeoutMs(30000L) + .build(); +BoxClient newClient = client.withTimeouts(timeoutConfig); +``` + # Use Proxy for API calls In order to use a proxy for API calls, calling the `client.withProxy(proxyConfig)` method creates a new client, leaving the original client unmodified, with the username and password being optional. We only support adding proxy for BoxNetworkClient. If you are using your own implementation of NetworkClient, you would need to configure proxy on your own. diff --git a/docs/configuration.md b/docs/configuration.md index 8b49875b1..cb65813c5 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -13,6 +13,7 @@ - [Network Exception Handling](#network-exception-handling) - [Customizing Retry Parameters](#customizing-retry-parameters) - [Custom Retry Strategy](#custom-retry-strategy) +- [Timeouts](#timeouts) @@ -173,3 +174,34 @@ BoxClient client = new BoxClient.Builder(auth) .networkSession(session) .build(); ``` + +## Timeouts + +You can configure network timeouts with `TimeoutConfig` on `NetworkSession`. +Java SDK supports separate values for connection and read timeouts, both in milliseconds. + +```java +BoxDeveloperTokenAuth auth = new BoxDeveloperTokenAuth("DEVELOPER_TOKEN"); +TimeoutConfig timeoutConfig = new TimeoutConfig.Builder() + .connectionTimeoutMs(10000L) + .readTimeoutMs(30000L) + .build(); + +NetworkSession session = new NetworkSession() + .withTimeoutConfig(timeoutConfig); + +BoxClient client = new BoxClient.Builder(auth) + .networkSession(session) + .build(); +``` + +How timeout handling works: + +- `connectionTimeoutMs` controls how long the client waits to establish a connection. +- `readTimeoutMs` controls how long the client waits for data while reading the response. +- Each timeout is optional. If a value is not provided, the client keeps its existing timeout for that setting. +- To disable both timeouts, set `connectionTimeoutMs(0L)` and `readTimeoutMs(0L)`. +- You can also disable only one timeout by setting just one of them to `0L` and leaving the other configured. +- Timeout failures are handled as request exceptions, then retry behavior is controlled by the configured retry strategy +- If retries are exhausted after timeout failures, the SDK throws `BoxSDKError` with the underlying timeout exception as the cause. +- Timeout applies to a single HTTP request attempt to the Box API (not the total time across all retries). diff --git a/src/main/java/com/box/sdkgen/client/BoxClient.java b/src/main/java/com/box/sdkgen/client/BoxClient.java index 4ead1e87f..e11f46248 100644 --- a/src/main/java/com/box/sdkgen/client/BoxClient.java +++ b/src/main/java/com/box/sdkgen/client/BoxClient.java @@ -92,6 +92,7 @@ import com.box.sdkgen.networking.interceptors.Interceptor; import com.box.sdkgen.networking.network.NetworkSession; import com.box.sdkgen.networking.proxyconfig.ProxyConfig; +import com.box.sdkgen.networking.timeoutconfig.TimeoutConfig; import java.util.List; import java.util.Map; @@ -1046,6 +1047,17 @@ public BoxClient withProxy(ProxyConfig config) { .build(); } + /** + * Create a new client with custom timeouts that will be used for every API call + * + * @param config Timeout configuration. + */ + public BoxClient withTimeouts(TimeoutConfig config) { + return new BoxClient.Builder(this.auth) + .networkSession(this.networkSession.withTimeoutConfig(config)) + .build(); + } + /** * Create a new client with a custom set of interceptors that will be used for every API call * diff --git a/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java b/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java index 5f8d18851..a63c8b1d2 100644 --- a/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java +++ b/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java @@ -19,6 +19,7 @@ import com.box.sdkgen.networking.network.NetworkSession; import com.box.sdkgen.networking.networkclient.NetworkClient; import com.box.sdkgen.networking.proxyconfig.ProxyConfig; +import com.box.sdkgen.networking.timeoutconfig.TimeoutConfig; import com.fasterxml.jackson.databind.JsonNode; import java.io.IOException; import java.net.InetSocketAddress; @@ -97,6 +98,31 @@ public BoxNetworkClient withProxy(ProxyConfig config) { return new BoxNetworkClient(clientBuilder.build()); } + public BoxNetworkClient withTimeoutConfig(TimeoutConfig config) { + if (config == null) { + throw new IllegalArgumentException("TimeoutConfig cannot be null"); + } + + OkHttpClient.Builder clientBuilder = httpClient.newBuilder(); + + Long connectionTimeoutMs = config.getConnectionTimeoutMs(); + if (connectionTimeoutMs != null) { + if (connectionTimeoutMs < 0) { + throw new IllegalArgumentException("connectionTimeoutMs cannot be negative"); + } + clientBuilder.connectTimeout(connectionTimeoutMs.longValue(), TimeUnit.MILLISECONDS); + } + + Long readTimeoutMs = config.getReadTimeoutMs(); + if (readTimeoutMs != null) { + if (readTimeoutMs < 0) { + throw new IllegalArgumentException("readTimeoutMs cannot be negative"); + } + clientBuilder.readTimeout(readTimeoutMs.longValue(), TimeUnit.MILLISECONDS); + } + return new BoxNetworkClient(clientBuilder.build()); + } + public FetchResponse fetch(FetchOptions options) { NetworkSession networkSession = options.getNetworkSession() == null ? new NetworkSession() : options.getNetworkSession(); diff --git a/src/main/java/com/box/sdkgen/networking/network/NetworkSession.java b/src/main/java/com/box/sdkgen/networking/network/NetworkSession.java index 3c453ec9d..60a32bff6 100644 --- a/src/main/java/com/box/sdkgen/networking/network/NetworkSession.java +++ b/src/main/java/com/box/sdkgen/networking/network/NetworkSession.java @@ -9,6 +9,7 @@ import com.box.sdkgen.networking.proxyconfig.ProxyConfig; import com.box.sdkgen.networking.retries.BoxRetryStrategy; import com.box.sdkgen.networking.retries.RetryStrategy; +import com.box.sdkgen.networking.timeoutconfig.TimeoutConfig; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -31,6 +32,8 @@ public class NetworkSession { protected ProxyConfig proxyConfig; + protected TimeoutConfig timeoutConfig; + public NetworkSession() { networkClient = new BoxNetworkClient(); retryStrategy = new BoxRetryStrategy(); @@ -45,6 +48,7 @@ protected NetworkSession(Builder builder) { this.retryStrategy = builder.retryStrategy; this.dataSanitizer = builder.dataSanitizer; this.proxyConfig = builder.proxyConfig; + this.timeoutConfig = builder.timeoutConfig; } public NetworkSession withAdditionalHeaders() { @@ -63,6 +67,7 @@ public NetworkSession withAdditionalHeaders(Map additionalHeader .retryStrategy(this.retryStrategy) .dataSanitizer(this.dataSanitizer) .proxyConfig(this.proxyConfig) + .timeoutConfig(this.timeoutConfig) .build(); } @@ -75,6 +80,7 @@ public NetworkSession withCustomBaseUrls(BaseUrls baseUrls) { .retryStrategy(this.retryStrategy) .dataSanitizer(this.dataSanitizer) .proxyConfig(this.proxyConfig) + .timeoutConfig(this.timeoutConfig) .build(); } @@ -90,6 +96,7 @@ public NetworkSession withInterceptors(List interceptors) { .retryStrategy(this.retryStrategy) .dataSanitizer(this.dataSanitizer) .proxyConfig(this.proxyConfig) + .timeoutConfig(this.timeoutConfig) .build(); } @@ -102,6 +109,7 @@ public NetworkSession withNetworkClient(NetworkClient networkClient) { .retryStrategy(this.retryStrategy) .dataSanitizer(this.dataSanitizer) .proxyConfig(this.proxyConfig) + .timeoutConfig(this.timeoutConfig) .build(); } @@ -114,6 +122,7 @@ public NetworkSession withRetryStrategy(RetryStrategy retryStrategy) { .retryStrategy(retryStrategy) .dataSanitizer(this.dataSanitizer) .proxyConfig(this.proxyConfig) + .timeoutConfig(this.timeoutConfig) .build(); } @@ -126,6 +135,7 @@ public NetworkSession withDataSanitizer(DataSanitizer dataSanitizer) { .retryStrategy(this.retryStrategy) .dataSanitizer(dataSanitizer) .proxyConfig(this.proxyConfig) + .timeoutConfig(this.timeoutConfig) .build(); } @@ -145,6 +155,30 @@ public NetworkSession withProxy(ProxyConfig config) { .retryStrategy(this.retryStrategy) .dataSanitizer(this.dataSanitizer) .proxyConfig(config) + .timeoutConfig(this.timeoutConfig) + .build(); + } + + public NetworkSession withTimeoutConfig(TimeoutConfig timeoutConfig) { + if (timeoutConfig == null) { + throw new IllegalArgumentException("TimeoutConfig cannot be null"); + } + + if (!(this.networkClient instanceof BoxNetworkClient)) { + throw new BoxSDKError("Timeouts are only supported for BoxNetworkClient"); + } + + BoxNetworkClient newClient = + ((BoxNetworkClient) this.networkClient).withTimeoutConfig(timeoutConfig); + return new Builder() + .additionalHeaders(this.additionalHeaders) + .baseUrls(this.baseUrls) + .interceptors(this.interceptors) + .networkClient(newClient) + .retryStrategy(this.retryStrategy) + .dataSanitizer(this.dataSanitizer) + .proxyConfig(this.proxyConfig) + .timeoutConfig(timeoutConfig) .build(); } @@ -176,6 +210,10 @@ public ProxyConfig getProxyConfig() { return proxyConfig; } + public TimeoutConfig getTimeoutConfig() { + return timeoutConfig; + } + public static class Builder { protected Map additionalHeaders = new HashMap<>(); @@ -192,6 +230,8 @@ public static class Builder { protected ProxyConfig proxyConfig; + protected TimeoutConfig timeoutConfig; + public Builder() { networkClient = new BoxNetworkClient(); retryStrategy = new BoxRetryStrategy(); @@ -233,6 +273,11 @@ public Builder proxyConfig(ProxyConfig proxyConfig) { return this; } + public Builder timeoutConfig(TimeoutConfig timeoutConfig) { + this.timeoutConfig = timeoutConfig; + return this; + } + public NetworkSession build() { return new NetworkSession(this); } diff --git a/src/main/java/com/box/sdkgen/networking/timeoutconfig/TimeoutConfig.java b/src/main/java/com/box/sdkgen/networking/timeoutconfig/TimeoutConfig.java new file mode 100644 index 000000000..728f5b092 --- /dev/null +++ b/src/main/java/com/box/sdkgen/networking/timeoutconfig/TimeoutConfig.java @@ -0,0 +1,44 @@ +package com.box.sdkgen.networking.timeoutconfig; + +public class TimeoutConfig { + + public Long connectionTimeoutMs; + + public Long readTimeoutMs; + + public TimeoutConfig() {} + + protected TimeoutConfig(Builder builder) { + this.connectionTimeoutMs = builder.connectionTimeoutMs; + this.readTimeoutMs = builder.readTimeoutMs; + } + + public Long getConnectionTimeoutMs() { + return connectionTimeoutMs; + } + + public Long getReadTimeoutMs() { + return readTimeoutMs; + } + + public static class Builder { + + protected Long connectionTimeoutMs; + + protected Long readTimeoutMs; + + public Builder connectionTimeoutMs(Long connectionTimeoutMs) { + this.connectionTimeoutMs = connectionTimeoutMs; + return this; + } + + public Builder readTimeoutMs(Long readTimeoutMs) { + this.readTimeoutMs = readTimeoutMs; + return this; + } + + public TimeoutConfig build() { + return new TimeoutConfig(this); + } + } +} diff --git a/src/test/java/com/box/sdkgen/client/ClientITest.java b/src/test/java/com/box/sdkgen/client/ClientITest.java index dcae23882..68f4a1a41 100644 --- a/src/test/java/com/box/sdkgen/client/ClientITest.java +++ b/src/test/java/com/box/sdkgen/client/ClientITest.java @@ -26,6 +26,7 @@ import com.box.sdkgen.networking.fetchoptions.MultipartItem; import com.box.sdkgen.networking.fetchoptions.ResponseFormat; import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.timeoutconfig.TimeoutConfig; import com.box.sdkgen.schemas.filefull.FileFull; import com.box.sdkgen.schemas.files.Files; import com.box.sdkgen.schemas.folderfull.FolderFull; @@ -199,6 +200,22 @@ public void testWithCustomBaseUrls() { assertThrows(RuntimeException.class, () -> customBaseClient.getUsers().getUserMe()); } + @Test + public void testWithTimeoutWhenTimeoutOccurs() { + long readTimeoutMs = 1; + BoxClient clientWithTimeout = + client.withTimeouts(new TimeoutConfig.Builder().readTimeoutMs(readTimeoutMs).build()); + assertThrows(RuntimeException.class, () -> clientWithTimeout.getUsers().getUserMe()); + } + + @Test + public void testWithTimeoutWhenTimeoutDoesNotOccur() { + long readTimeoutMs = 10000; + BoxClient clientWithTimeout = + client.withTimeouts(new TimeoutConfig.Builder().readTimeoutMs(readTimeoutMs).build()); + clientWithTimeout.getUsers().getUserMe(); + } + @Test public void testWithInterceptors() { UserFull user = client.getUsers().getUserMe(); From d07dad3f2d4be2e846c552d8f2461c4a179154ae Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Fri, 27 Feb 2026 17:09:35 +0100 Subject: [PATCH 092/148] docs: Update description for delete archives endpoint (box/box-openapi#585) (#1733) Co-authored-by: box-sdk-build --- .codegen.json | 2 +- docs/archives.md | 4 ++++ .../com/box/sdkgen/managers/archives/ArchivesManager.java | 6 ++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index ef6446242..2afbe79cf 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "bc04b80", "specHash": "77eac4b", "version": "10.5.0" } +{ "engineHash": "bc04b80", "specHash": "f2523d5", "version": "10.5.0" } diff --git a/docs/archives.md b/docs/archives.md index ad0d5c916..38be510cd 100644 --- a/docs/archives.md +++ b/docs/archives.md @@ -74,6 +74,10 @@ Permanently deletes an archive. To learn more about the archive APIs, see the [Archive API Guide](https://developer.box.com/guides/archives). + +This endpoint is currently unavailable. Please contact support for assistance. + + This operation is performed by calling function `deleteArchiveByIdV2025R0`. See the endpoint docs at diff --git a/src/main/java/com/box/sdkgen/managers/archives/ArchivesManager.java b/src/main/java/com/box/sdkgen/managers/archives/ArchivesManager.java index c49f35b7f..faf6792fb 100644 --- a/src/main/java/com/box/sdkgen/managers/archives/ArchivesManager.java +++ b/src/main/java/com/box/sdkgen/managers/archives/ArchivesManager.java @@ -155,6 +155,9 @@ public ArchiveV2025R0 createArchiveV2025R0( *

    To learn more about the archive APIs, see the [Archive API * Guide](https://developer.box.com/guides/archives). * + *

    <Danger> This endpoint is currently unavailable. Please contact support for + * assistance. </Danger> + * * @param archiveId The ID of the archive. Example: "982312" */ public void deleteArchiveByIdV2025R0(String archiveId) { @@ -167,6 +170,9 @@ public void deleteArchiveByIdV2025R0(String archiveId) { *

    To learn more about the archive APIs, see the [Archive API * Guide](https://developer.box.com/guides/archives). * + *

    <Danger> This endpoint is currently unavailable. Please contact support for + * assistance. </Danger> + * * @param archiveId The ID of the archive. Example: "982312" * @param headers Headers of deleteArchiveByIdV2025R0 method */ From 50c2bc9dcaaac2445876d2d305c5547e434105b1 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 18 Mar 2026 14:59:12 +0100 Subject: [PATCH 093/148] feat: add `canPublicSharedLinkBeCreated` to `Hubs` (box/box-codegen#928) (#1737) --- .codegen.json | 2 +- .../HubUpdateRequestV2025R0.java | 26 +++++++++++++++++-- .../v2025r0/hubv2025r0/HubV2025R0.java | 26 +++++++++++++++++-- 3 files changed, 49 insertions(+), 5 deletions(-) diff --git a/.codegen.json b/.codegen.json index 2afbe79cf..043fa35bb 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "bc04b80", "specHash": "f2523d5", "version": "10.5.0" } +{ "engineHash": "65f6eab", "specHash": "57b3004", "version": "10.5.0" } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubupdaterequestv2025r0/HubUpdateRequestV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubupdaterequestv2025r0/HubUpdateRequestV2025R0.java index 55e067fda..dad3150c2 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubupdaterequestv2025r0/HubUpdateRequestV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubupdaterequestv2025r0/HubUpdateRequestV2025R0.java @@ -32,6 +32,10 @@ public class HubUpdateRequestV2025R0 extends SerializableObject { @JsonProperty("can_shared_link_be_created") protected Boolean canSharedLinkBeCreated; + /** Indicates if a public shared link can be created for the Box Hub. */ + @JsonProperty("can_public_shared_link_be_created") + protected Boolean canPublicSharedLinkBeCreated; + public HubUpdateRequestV2025R0() { super(); } @@ -44,6 +48,7 @@ protected HubUpdateRequestV2025R0(Builder builder) { this.isCollaborationRestrictedToEnterprise = builder.isCollaborationRestrictedToEnterprise; this.canNonOwnersInvite = builder.canNonOwnersInvite; this.canSharedLinkBeCreated = builder.canSharedLinkBeCreated; + this.canPublicSharedLinkBeCreated = builder.canPublicSharedLinkBeCreated; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -71,6 +76,10 @@ public Boolean getCanSharedLinkBeCreated() { return canSharedLinkBeCreated; } + public Boolean getCanPublicSharedLinkBeCreated() { + return canPublicSharedLinkBeCreated; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -86,7 +95,8 @@ public boolean equals(Object o) { && Objects.equals( isCollaborationRestrictedToEnterprise, casted.isCollaborationRestrictedToEnterprise) && Objects.equals(canNonOwnersInvite, casted.canNonOwnersInvite) - && Objects.equals(canSharedLinkBeCreated, casted.canSharedLinkBeCreated); + && Objects.equals(canSharedLinkBeCreated, casted.canSharedLinkBeCreated) + && Objects.equals(canPublicSharedLinkBeCreated, casted.canPublicSharedLinkBeCreated); } @Override @@ -97,7 +107,8 @@ public int hashCode() { isAiEnabled, isCollaborationRestrictedToEnterprise, canNonOwnersInvite, - canSharedLinkBeCreated); + canSharedLinkBeCreated, + canPublicSharedLinkBeCreated); } @Override @@ -126,6 +137,10 @@ public String toString() { + "canSharedLinkBeCreated='" + canSharedLinkBeCreated + '\'' + + ", " + + "canPublicSharedLinkBeCreated='" + + canPublicSharedLinkBeCreated + + '\'' + "}"; } @@ -143,6 +158,8 @@ public static class Builder extends NullableFieldTracker { protected Boolean canSharedLinkBeCreated; + protected Boolean canPublicSharedLinkBeCreated; + public Builder title(String title) { this.title = title; return this; @@ -174,6 +191,11 @@ public Builder canSharedLinkBeCreated(Boolean canSharedLinkBeCreated) { return this; } + public Builder canPublicSharedLinkBeCreated(Boolean canPublicSharedLinkBeCreated) { + this.canPublicSharedLinkBeCreated = canPublicSharedLinkBeCreated; + return this; + } + public HubUpdateRequestV2025R0 build() { return new HubUpdateRequestV2025R0(this); } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0.java index df27fe880..c49674bd8 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0.java @@ -65,6 +65,10 @@ public class HubV2025R0 extends HubBaseV2025R0 { @JsonProperty("can_shared_link_be_created") protected Boolean canSharedLinkBeCreated; + /** Indicates if a public shared link can be created for the Box Hub. */ + @JsonProperty("can_public_shared_link_be_created") + protected Boolean canPublicSharedLinkBeCreated; + public HubV2025R0(@JsonProperty("id") String id) { super(id); } @@ -82,6 +86,7 @@ protected HubV2025R0(Builder builder) { this.isCollaborationRestrictedToEnterprise = builder.isCollaborationRestrictedToEnterprise; this.canNonOwnersInvite = builder.canNonOwnersInvite; this.canSharedLinkBeCreated = builder.canSharedLinkBeCreated; + this.canPublicSharedLinkBeCreated = builder.canPublicSharedLinkBeCreated; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -129,6 +134,10 @@ public Boolean getCanSharedLinkBeCreated() { return canSharedLinkBeCreated; } + public Boolean getCanPublicSharedLinkBeCreated() { + return canPublicSharedLinkBeCreated; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -151,7 +160,8 @@ public boolean equals(Object o) { && Objects.equals( isCollaborationRestrictedToEnterprise, casted.isCollaborationRestrictedToEnterprise) && Objects.equals(canNonOwnersInvite, casted.canNonOwnersInvite) - && Objects.equals(canSharedLinkBeCreated, casted.canSharedLinkBeCreated); + && Objects.equals(canSharedLinkBeCreated, casted.canSharedLinkBeCreated) + && Objects.equals(canPublicSharedLinkBeCreated, casted.canPublicSharedLinkBeCreated); } @Override @@ -169,7 +179,8 @@ public int hashCode() { isAiEnabled, isCollaborationRestrictedToEnterprise, canNonOwnersInvite, - canSharedLinkBeCreated); + canSharedLinkBeCreated, + canPublicSharedLinkBeCreated); } @Override @@ -226,6 +237,10 @@ public String toString() { + "canSharedLinkBeCreated='" + canSharedLinkBeCreated + '\'' + + ", " + + "canPublicSharedLinkBeCreated='" + + canPublicSharedLinkBeCreated + + '\'' + "}"; } @@ -253,6 +268,8 @@ public static class Builder extends HubBaseV2025R0.Builder { protected Boolean canSharedLinkBeCreated; + protected Boolean canPublicSharedLinkBeCreated; + public Builder(String id) { super(id); } @@ -313,6 +330,11 @@ public Builder canSharedLinkBeCreated(Boolean canSharedLinkBeCreated) { return this; } + public Builder canPublicSharedLinkBeCreated(Boolean canPublicSharedLinkBeCreated) { + this.canPublicSharedLinkBeCreated = canPublicSharedLinkBeCreated; + return this; + } + @Override public Builder type(HubBaseV2025R0TypeField type) { this.type = new EnumWrapper(type); From b234ad9b9cbb37ad84eab1a4c0c1387d98987cbc Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 18 Mar 2026 16:19:05 +0100 Subject: [PATCH 094/148] chore: release version 10.6.0 (#1739) Co-authored-by: mwwoda <84077698+mwwoda@users.noreply.github.com> --- .codegen.json | 2 +- CHANGELOG.md | 8 ++++++++ build.gradle | 2 +- .../java/com/box/sdkgen/networking/version/Version.java | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index 043fa35bb..18a3bb140 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "65f6eab", "specHash": "57b3004", "version": "10.5.0" } +{ "engineHash": "65f6eab", "specHash": "57b3004", "version": "10.6.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 3bf4b34f3..523b59285 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,14 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [10.6.0](https://github.com/box/box-java-sdk/compare/v10.5.0...v10.6.0) (2026-03-18) + + +### New Features and Enhancements + +* add `canPublicSharedLinkBeCreated` to `Hubs` (box/box-codegen[#928](https://github.com/box/box-java-sdk/issues/928)) ([#1737](https://github.com/box/box-java-sdk/issues/1737)) ([50c2bc9](https://github.com/box/box-java-sdk/commit/50c2bc9dcaaac2445876d2d305c5547e434105b1)) +* Add configurable timeouts for SDKs (box/box-codegen[#924](https://github.com/box/box-java-sdk/issues/924)) ([#1730](https://github.com/box/box-java-sdk/issues/1730)) ([1fa2c9a](https://github.com/box/box-java-sdk/commit/1fa2c9ad954ed01ec387b7a1d1018c62d5de3867)) + ## [10.5.0](https://github.com/box/box-java-sdk/compare/v10.4.0...v10.5.0) (2026-02-11) diff --git a/build.gradle b/build.gradle index 32ab1629a..b7a4a0c35 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ plugins { } group = "com.box" archivesBaseName = "box-java-sdk" -version = "10.5.0" +version = "10.6.0" java { sourceCompatibility = JavaVersion.toVersion(libraryJavaVersion) targetCompatibility = JavaVersion.toVersion(libraryJavaVersion) diff --git a/src/main/java/com/box/sdkgen/networking/version/Version.java b/src/main/java/com/box/sdkgen/networking/version/Version.java index 086c32e00..25d0a58f3 100644 --- a/src/main/java/com/box/sdkgen/networking/version/Version.java +++ b/src/main/java/com/box/sdkgen/networking/version/Version.java @@ -3,6 +3,6 @@ public class Version { public static String getVersion() { - return "10.5.0"; + return "10.6.0"; } } From fccccb766d961e9badd1cde274595e07ba88b7a2 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Mon, 23 Mar 2026 09:46:40 +0100 Subject: [PATCH 095/148] feat: Add `reference` to `AI` and `parent_id` to `HubsItems` (box/box-openapi#588) (#1741) --- .codegen.json | 2 +- .../GetHubItemsV2025R0QueryParams.java | 20 ++++ .../managers/hubitems/HubItemsManager.java | 1 + .../AiExtractStructured.java | 24 ++++- .../AiExtractStructuredResponse.java | 26 ++++- .../HubItemOperationV2025R0.java | 100 +++++++++++++++++- 6 files changed, 168 insertions(+), 5 deletions(-) diff --git a/.codegen.json b/.codegen.json index 18a3bb140..536372853 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "65f6eab", "specHash": "57b3004", "version": "10.6.0" } +{ "engineHash": "65f6eab", "specHash": "ca63e5e", "version": "10.6.0" } diff --git a/src/main/java/com/box/sdkgen/managers/hubitems/GetHubItemsV2025R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/hubitems/GetHubItemsV2025R0QueryParams.java index f7c75273a..4a936a588 100644 --- a/src/main/java/com/box/sdkgen/managers/hubitems/GetHubItemsV2025R0QueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/hubitems/GetHubItemsV2025R0QueryParams.java @@ -11,6 +11,14 @@ public class GetHubItemsV2025R0QueryParams { */ public final String hubId; + /** + * The unique identifier of an item list block within the Box Hub. + * + *

    When provided, the response will only include items that belong to the specified item list, + * allowing you to filter results to items on a specific page or section. + */ + public String parentId; + /** * Defines the position marker at which to begin returning results. This is used when paginating * using marker-based pagination. @@ -28,6 +36,7 @@ public GetHubItemsV2025R0QueryParams(String hubId) { protected GetHubItemsV2025R0QueryParams(Builder builder) { this.hubId = builder.hubId; + this.parentId = builder.parentId; this.marker = builder.marker; this.limit = builder.limit; } @@ -36,6 +45,10 @@ public String getHubId() { return hubId; } + public String getParentId() { + return parentId; + } + public String getMarker() { return marker; } @@ -48,6 +61,8 @@ public static class Builder { protected final String hubId; + protected String parentId; + protected String marker; protected Long limit; @@ -56,6 +71,11 @@ public Builder(String hubId) { this.hubId = hubId; } + public Builder parentId(String parentId) { + this.parentId = parentId; + return this; + } + public Builder marker(String marker) { this.marker = marker; return this; diff --git a/src/main/java/com/box/sdkgen/managers/hubitems/HubItemsManager.java b/src/main/java/com/box/sdkgen/managers/hubitems/HubItemsManager.java index f89dddebe..8d1beb0f1 100644 --- a/src/main/java/com/box/sdkgen/managers/hubitems/HubItemsManager.java +++ b/src/main/java/com/box/sdkgen/managers/hubitems/HubItemsManager.java @@ -53,6 +53,7 @@ public HubItemsV2025R0 getHubItemsV2025R0( prepareParams( mapOf( entryOf("hub_id", convertToString(queryParams.getHubId())), + entryOf("parent_id", convertToString(queryParams.getParentId())), entryOf("marker", convertToString(queryParams.getMarker())), entryOf("limit", convertToString(queryParams.getLimit())))); Map headersMap = diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java index 582201abe..551bd54f3 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java @@ -35,6 +35,10 @@ public class AiExtractStructured extends SerializableObject { @JsonProperty("include_confidence_score") protected Boolean includeConfidenceScore; + /** A flag to indicate whether references for every extracted field should be returned. */ + @JsonProperty("include_reference") + protected Boolean includeReference; + @JsonProperty("ai_agent") protected AiExtractStructuredAgent aiAgent; @@ -49,6 +53,7 @@ protected AiExtractStructured(Builder builder) { this.metadataTemplate = builder.metadataTemplate; this.fields = builder.fields; this.includeConfidenceScore = builder.includeConfidenceScore; + this.includeReference = builder.includeReference; this.aiAgent = builder.aiAgent; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -69,6 +74,10 @@ public Boolean getIncludeConfidenceScore() { return includeConfidenceScore; } + public Boolean getIncludeReference() { + return includeReference; + } + public AiExtractStructuredAgent getAiAgent() { return aiAgent; } @@ -86,12 +95,14 @@ public boolean equals(Object o) { && Objects.equals(metadataTemplate, casted.metadataTemplate) && Objects.equals(fields, casted.fields) && Objects.equals(includeConfidenceScore, casted.includeConfidenceScore) + && Objects.equals(includeReference, casted.includeReference) && Objects.equals(aiAgent, casted.aiAgent); } @Override public int hashCode() { - return Objects.hash(items, metadataTemplate, fields, includeConfidenceScore, aiAgent); + return Objects.hash( + items, metadataTemplate, fields, includeConfidenceScore, includeReference, aiAgent); } @Override @@ -113,6 +124,10 @@ public String toString() { + includeConfidenceScore + '\'' + ", " + + "includeReference='" + + includeReference + + '\'' + + ", " + "aiAgent='" + aiAgent + '\'' @@ -129,6 +144,8 @@ public static class Builder extends NullableFieldTracker { protected Boolean includeConfidenceScore; + protected Boolean includeReference; + protected AiExtractStructuredAgent aiAgent; public Builder(List items) { @@ -151,6 +168,11 @@ public Builder includeConfidenceScore(Boolean includeConfidenceScore) { return this; } + public Builder includeReference(Boolean includeReference) { + this.includeReference = includeReference; + return this; + } + public Builder aiAgent(AiAgentReference aiAgent) { this.aiAgent = new AiExtractStructuredAgent(aiAgent); return this; diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java index b9e6dc286..c572a3f91 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructuredresponse/AiExtractStructuredResponse.java @@ -35,6 +35,12 @@ public class AiExtractStructuredResponse extends SerializableObject { @JsonProperty("confidence_score") protected Map confidenceScore; + /** + * The reference for each extracted field as a JSON dictionary. This can be empty if no field + * could be extracted. + */ + protected Map reference; + @JsonProperty("ai_agent_info") protected AiAgentInfo aiAgentInfo; @@ -52,6 +58,7 @@ protected AiExtractStructuredResponse(Builder builder) { this.createdAt = builder.createdAt; this.completionReason = builder.completionReason; this.confidenceScore = builder.confidenceScore; + this.reference = builder.reference; this.aiAgentInfo = builder.aiAgentInfo; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -72,6 +79,10 @@ public Map getConfidenceScore() { return confidenceScore; } + public Map getReference() { + return reference; + } + public AiAgentInfo getAiAgentInfo() { return aiAgentInfo; } @@ -89,12 +100,14 @@ public boolean equals(Object o) { && Objects.equals(createdAt, casted.createdAt) && Objects.equals(completionReason, casted.completionReason) && Objects.equals(confidenceScore, casted.confidenceScore) + && Objects.equals(reference, casted.reference) && Objects.equals(aiAgentInfo, casted.aiAgentInfo); } @Override public int hashCode() { - return Objects.hash(answer, createdAt, completionReason, confidenceScore, aiAgentInfo); + return Objects.hash( + answer, createdAt, completionReason, confidenceScore, reference, aiAgentInfo); } @Override @@ -116,6 +129,10 @@ public String toString() { + confidenceScore + '\'' + ", " + + "reference='" + + reference + + '\'' + + ", " + "aiAgentInfo='" + aiAgentInfo + '\'' @@ -132,6 +149,8 @@ public static class Builder extends NullableFieldTracker { protected Map confidenceScore; + protected Map reference; + protected AiAgentInfo aiAgentInfo; public Builder(Map answer, OffsetDateTime createdAt) { @@ -150,6 +169,11 @@ public Builder confidenceScore(Map confidenceScore) { return this; } + public Builder reference(Map reference) { + this.reference = reference; + return this; + } + public Builder aiAgentInfo(AiAgentInfo aiAgentInfo) { this.aiAgentInfo = aiAgentInfo; return this; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationv2025r0/HubItemOperationV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationv2025r0/HubItemOperationV2025R0.java index f5f1cd6bf..e3a0a5a58 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationv2025r0/HubItemOperationV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationv2025r0/HubItemOperationV2025R0.java @@ -1,5 +1,6 @@ package com.box.sdkgen.schemas.v2025r0.hubitemoperationv2025r0; +import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; import com.box.sdkgen.schemas.v2025r0.filereferencev2025r0.FileReferenceV2025R0; import com.box.sdkgen.schemas.v2025r0.folderreferencev2025r0.FolderReferenceV2025R0; @@ -26,6 +27,13 @@ public class HubItemOperationV2025R0 extends SerializableObject { protected final HubItemReferenceV2025R0 item; + /** + * The ID of the parent block to add the item to. Must be an Item List block. If not provided, the + * item will be added to the first page's first Item List block. + */ + @JsonProperty("parent_id") + protected String parentId; + public HubItemOperationV2025R0( HubItemOperationV2025R0ActionField action, FileReferenceV2025R0 item) { super(); @@ -83,6 +91,14 @@ public HubItemOperationV2025R0( this.item = item; } + protected HubItemOperationV2025R0(Builder builder) { + super(); + this.action = builder.action; + this.item = builder.item; + this.parentId = builder.parentId; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + public EnumWrapper getAction() { return action; } @@ -91,6 +107,10 @@ public HubItemReferenceV2025R0 getItem() { return item; } + public String getParentId() { + return parentId; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -100,12 +120,14 @@ public boolean equals(Object o) { return false; } HubItemOperationV2025R0 casted = (HubItemOperationV2025R0) o; - return Objects.equals(action, casted.action) && Objects.equals(item, casted.item); + return Objects.equals(action, casted.action) + && Objects.equals(item, casted.item) + && Objects.equals(parentId, casted.parentId); } @Override public int hashCode() { - return Objects.hash(action, item); + return Objects.hash(action, item, parentId); } @Override @@ -118,6 +140,80 @@ public String toString() { + "item='" + item + '\'' + + ", " + + "parentId='" + + parentId + + '\'' + "}"; } + + public static class Builder extends NullableFieldTracker { + + protected final EnumWrapper action; + + protected final HubItemReferenceV2025R0 item; + + protected String parentId; + + public Builder(HubItemOperationV2025R0ActionField action, FileReferenceV2025R0 item) { + super(); + this.action = new EnumWrapper(action); + this.item = new HubItemReferenceV2025R0(item); + } + + public Builder(HubItemOperationV2025R0ActionField action, FolderReferenceV2025R0 item) { + super(); + this.action = new EnumWrapper(action); + this.item = new HubItemReferenceV2025R0(item); + } + + public Builder(HubItemOperationV2025R0ActionField action, WeblinkReferenceV2025R0 item) { + super(); + this.action = new EnumWrapper(action); + this.item = new HubItemReferenceV2025R0(item); + } + + public Builder(HubItemOperationV2025R0ActionField action, HubItemReferenceV2025R0 item) { + super(); + this.action = new EnumWrapper(action); + this.item = item; + } + + public Builder( + EnumWrapper action, FileReferenceV2025R0 item) { + super(); + this.action = action; + this.item = new HubItemReferenceV2025R0(item); + } + + public Builder( + EnumWrapper action, FolderReferenceV2025R0 item) { + super(); + this.action = action; + this.item = new HubItemReferenceV2025R0(item); + } + + public Builder( + EnumWrapper action, WeblinkReferenceV2025R0 item) { + super(); + this.action = action; + this.item = new HubItemReferenceV2025R0(item); + } + + public Builder( + EnumWrapper action, HubItemReferenceV2025R0 item) { + super(); + this.action = action; + this.item = item; + } + + public Builder parentId(String parentId) { + this.parentId = parentId; + return this; + } + + public HubItemOperationV2025R0 build() { + return new HubItemOperationV2025R0(this); + } + } } From 3fea174915fa983624f1c98ecafbabaa0299e902 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Mon, 23 Mar 2026 10:01:45 +0100 Subject: [PATCH 096/148] docs: Fix links to the Supported AI models page (box/box-openapi#589) (#1747) --- .codegen.json | 2 +- .../aiagentbasictexttoolbase/AiAgentBasicTextToolBase.java | 2 +- .../schemas/aiagentspreadsheettool/AiAgentSpreadsheetTool.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index 536372853..2aeebead5 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "65f6eab", "specHash": "ca63e5e", "version": "10.6.0" } +{ "engineHash": "7c01dda", "specHash": "2bd751f", "version": "10.6.0" } diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttoolbase/AiAgentBasicTextToolBase.java b/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttoolbase/AiAgentBasicTextToolBase.java index b191e1f1f..5ae79da1d 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttoolbase/AiAgentBasicTextToolBase.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentbasictexttoolbase/AiAgentBasicTextToolBase.java @@ -17,7 +17,7 @@ public class AiAgentBasicTextToolBase extends SerializableObject { /** * The model used for the AI agent for basic text. For specific model values, see the [available - * models list](https://developer.box.com/guides/box-ai/supported-models). + * models list](https://developer.box.com/guides/box-ai/ai-models). */ protected String model; diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentspreadsheettool/AiAgentSpreadsheetTool.java b/src/main/java/com/box/sdkgen/schemas/aiagentspreadsheettool/AiAgentSpreadsheetTool.java index bc42ab674..f23f688dd 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentspreadsheettool/AiAgentSpreadsheetTool.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentspreadsheettool/AiAgentSpreadsheetTool.java @@ -17,7 +17,7 @@ public class AiAgentSpreadsheetTool extends SerializableObject { /** * The model used for the AI agent for spreadsheets. For specific model values, see the [available - * models list](https://developer.box.com/guides/box-ai/supported-models). + * models list](https://developer.box.com/guides/box-ai/ai-models). */ protected String model; From 8f82b46afe978342fb93af6ad31006342a1f5b5a Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Mon, 30 Mar 2026 15:58:01 +0200 Subject: [PATCH 097/148] fix!: Align `LegalHoldPolicyAssignedItem` with API (box/box-openapi#1554) (box/box-openapi#590) (#1762) --- .codegen.json | 2 +- docs/trasheditems.md | 4 +- .../trasheditems/TrashedItemsManager.java | 20 ++ .../LegalHoldPolicyAssignedItem.java | 258 ++++-------------- .../LegalHoldPolicyAssignedItemTypeField.java | 67 +++++ .../LegalHoldPolicyAssignment.java | 22 +- 6 files changed, 151 insertions(+), 222 deletions(-) create mode 100644 src/main/java/com/box/sdkgen/schemas/legalholdpolicyassigneditem/LegalHoldPolicyAssignedItemTypeField.java diff --git a/.codegen.json b/.codegen.json index 2aeebead5..7bab03a31 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "7c01dda", "specHash": "2bd751f", "version": "10.6.0" } +{ "engineHash": "7c01dda", "specHash": "74a1e4a", "version": "10.6.0" } diff --git a/docs/trasheditems.md b/docs/trasheditems.md index 1643b531d..d48d50648 100644 --- a/docs/trasheditems.md +++ b/docs/trasheditems.md @@ -13,7 +13,9 @@ in with the `fields` parameter to retrieve those specific attributes that are not returned by default. This endpoint defaults to use offset-based pagination, yet also supports -marker-based pagination using the `marker` parameter. +marker-based pagination using the `marker` parameter. + +The number of entries returned may be less than `total_count`. For example, if a user deletes items from a shared folder and is later removed as a collaborator, those deleted items will no longer appear in this endpoint’s results, even though they are still included in `total_count`. This operation is performed by calling function `getTrashedItems`. diff --git a/src/main/java/com/box/sdkgen/managers/trasheditems/TrashedItemsManager.java b/src/main/java/com/box/sdkgen/managers/trasheditems/TrashedItemsManager.java index 4f29152a5..2e7d65cd9 100644 --- a/src/main/java/com/box/sdkgen/managers/trasheditems/TrashedItemsManager.java +++ b/src/main/java/com/box/sdkgen/managers/trasheditems/TrashedItemsManager.java @@ -38,6 +38,11 @@ protected TrashedItemsManager(Builder builder) { * *

    This endpoint defaults to use offset-based pagination, yet also supports marker-based * pagination using the `marker` parameter. + * + *

    The number of entries returned may be less than `total_count`. For example, if a user + * deletes items from a shared folder and is later removed as a collaborator, those deleted items + * will no longer appear in this endpoint’s results, even though they are still included in + * `total_count`. */ public Items getTrashedItems() { return getTrashedItems(new GetTrashedItemsQueryParams(), new GetTrashedItemsHeaders()); @@ -52,6 +57,11 @@ public Items getTrashedItems() { *

    This endpoint defaults to use offset-based pagination, yet also supports marker-based * pagination using the `marker` parameter. * + *

    The number of entries returned may be less than `total_count`. For example, if a user + * deletes items from a shared folder and is later removed as a collaborator, those deleted items + * will no longer appear in this endpoint’s results, even though they are still included in + * `total_count`. + * * @param queryParams Query parameters of getTrashedItems method */ public Items getTrashedItems(GetTrashedItemsQueryParams queryParams) { @@ -67,6 +77,11 @@ public Items getTrashedItems(GetTrashedItemsQueryParams queryParams) { *

    This endpoint defaults to use offset-based pagination, yet also supports marker-based * pagination using the `marker` parameter. * + *

    The number of entries returned may be less than `total_count`. For example, if a user + * deletes items from a shared folder and is later removed as a collaborator, those deleted items + * will no longer appear in this endpoint’s results, even though they are still included in + * `total_count`. + * * @param headers Headers of getTrashedItems method */ public Items getTrashedItems(GetTrashedItemsHeaders headers) { @@ -82,6 +97,11 @@ public Items getTrashedItems(GetTrashedItemsHeaders headers) { *

    This endpoint defaults to use offset-based pagination, yet also supports marker-based * pagination using the `marker` parameter. * + *

    The number of entries returned may be less than `total_count`. For example, if a user + * deletes items from a shared folder and is later removed as a collaborator, those deleted items + * will no longer appear in this endpoint’s results, even though they are still included in + * `total_count`. + * * @param queryParams Query parameters of getTrashedItems method * @param headers Headers of getTrashedItems method */ diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassigneditem/LegalHoldPolicyAssignedItem.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassigneditem/LegalHoldPolicyAssignedItem.java index 57735e084..82f2fda00 100644 --- a/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassigneditem/LegalHoldPolicyAssignedItem.java +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassigneditem/LegalHoldPolicyAssignedItem.java @@ -1,221 +1,79 @@ package com.box.sdkgen.schemas.legalholdpolicyassigneditem; -import com.box.sdkgen.internal.OneOfThree; -import com.box.sdkgen.schemas.file.File; -import com.box.sdkgen.schemas.folder.Folder; -import com.box.sdkgen.schemas.foldermini.FolderMini; -import com.box.sdkgen.schemas.usermini.UserMini; -import com.box.sdkgen.schemas.weblink.WebLink; +import com.box.sdkgen.internal.SerializableObject; import com.box.sdkgen.serialization.json.EnumWrapper; -import com.box.sdkgen.serialization.json.JsonManager; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import java.io.IOException; -import java.time.OffsetDateTime; - -@JsonDeserialize(using = LegalHoldPolicyAssignedItem.LegalHoldPolicyAssignedItemDeserializer.class) -@JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) -public class LegalHoldPolicyAssignedItem extends OneOfThree { - - protected final String description; - - protected final OffsetDateTime createdAt; - - protected final OffsetDateTime modifiedAt; - - protected final OffsetDateTime trashedAt; - - protected final OffsetDateTime purgedAt; - - protected final UserMini createdBy; - - protected final UserMini modifiedBy; - - protected final UserMini ownedBy; - - protected final FolderMini parent; - - protected final String itemStatus; - - protected final String sequenceId; - - protected final String name; - +import java.util.Objects; + +/** The item that the legal hold policy is assigned to. Includes type and ID. */ +@JsonFilter("nullablePropertyFilter") +public class LegalHoldPolicyAssignedItem extends SerializableObject { + + /** The type of item the policy is assigned to. */ + @JsonDeserialize( + using = + LegalHoldPolicyAssignedItemTypeField.LegalHoldPolicyAssignedItemTypeFieldDeserializer + .class) + @JsonSerialize( + using = + LegalHoldPolicyAssignedItemTypeField.LegalHoldPolicyAssignedItemTypeFieldSerializer.class) + protected final EnumWrapper type; + + /** The ID of the item the policy is assigned to. */ protected final String id; - protected final String etag; - - protected final String type; - - public LegalHoldPolicyAssignedItem(File file) { - super(file, null, null); - this.description = file.getDescription(); - this.createdAt = file.getCreatedAt(); - this.modifiedAt = file.getModifiedAt(); - this.trashedAt = file.getTrashedAt(); - this.purgedAt = file.getPurgedAt(); - this.createdBy = file.getCreatedBy(); - this.modifiedBy = file.getModifiedBy(); - this.ownedBy = file.getOwnedBy(); - this.parent = file.getParent(); - this.itemStatus = EnumWrapper.convertToString(file.getItemStatus()); - this.sequenceId = file.getSequenceId(); - this.name = file.getName(); - this.id = file.getId(); - this.etag = file.getEtag(); - this.type = EnumWrapper.convertToString(file.getType()); - } - - public LegalHoldPolicyAssignedItem(Folder folder) { - super(null, folder, null); - this.description = folder.getDescription(); - this.createdAt = folder.getCreatedAt(); - this.modifiedAt = folder.getModifiedAt(); - this.trashedAt = folder.getTrashedAt(); - this.purgedAt = folder.getPurgedAt(); - this.createdBy = folder.getCreatedBy(); - this.modifiedBy = folder.getModifiedBy(); - this.ownedBy = folder.getOwnedBy(); - this.parent = folder.getParent(); - this.itemStatus = EnumWrapper.convertToString(folder.getItemStatus()); - this.sequenceId = folder.getSequenceId(); - this.name = folder.getName(); - this.id = folder.getId(); - this.etag = folder.getEtag(); - this.type = EnumWrapper.convertToString(folder.getType()); - } - - public LegalHoldPolicyAssignedItem(WebLink webLink) { - super(null, null, webLink); - this.description = webLink.getDescription(); - this.createdAt = webLink.getCreatedAt(); - this.modifiedAt = webLink.getModifiedAt(); - this.trashedAt = webLink.getTrashedAt(); - this.purgedAt = webLink.getPurgedAt(); - this.createdBy = webLink.getCreatedBy(); - this.modifiedBy = webLink.getModifiedBy(); - this.ownedBy = webLink.getOwnedBy(); - this.parent = webLink.getParent(); - this.itemStatus = EnumWrapper.convertToString(webLink.getItemStatus()); - this.sequenceId = webLink.getSequenceId(); - this.name = webLink.getName(); - this.id = webLink.getId(); - this.etag = webLink.getEtag(); - this.type = EnumWrapper.convertToString(webLink.getType()); - } - - public boolean isFile() { - return value0 != null; - } - - public File getFile() { - return value0; - } - - public boolean isFolder() { - return value1 != null; - } - - public Folder getFolder() { - return value1; - } - - public boolean isWebLink() { - return value2 != null; + public LegalHoldPolicyAssignedItem(LegalHoldPolicyAssignedItemTypeField type, String id) { + super(); + this.type = new EnumWrapper(type); + this.id = id; } - public WebLink getWebLink() { - return value2; + public LegalHoldPolicyAssignedItem( + @JsonProperty("type") EnumWrapper type, + @JsonProperty("id") String id) { + super(); + this.type = type; + this.id = id; } - public String getDescription() { - return description; - } - - public OffsetDateTime getCreatedAt() { - return createdAt; - } - - public OffsetDateTime getModifiedAt() { - return modifiedAt; - } - - public OffsetDateTime getTrashedAt() { - return trashedAt; - } - - public OffsetDateTime getPurgedAt() { - return purgedAt; - } - - public UserMini getCreatedBy() { - return createdBy; - } - - public UserMini getModifiedBy() { - return modifiedBy; - } - - public UserMini getOwnedBy() { - return ownedBy; - } - - public FolderMini getParent() { - return parent; - } - - public String getItemStatus() { - return itemStatus; - } - - public String getSequenceId() { - return sequenceId; - } - - public String getName() { - return name; + public EnumWrapper getType() { + return type; } public String getId() { return id; } - public String getEtag() { - return etag; - } - - public String getType() { - return type; - } - - static class LegalHoldPolicyAssignedItemDeserializer - extends JsonDeserializer { - - public LegalHoldPolicyAssignedItemDeserializer() { - super(); + @Override + public boolean equals(Object o) { + if (this == o) { + return true; } - - @Override - public LegalHoldPolicyAssignedItem deserialize(JsonParser jp, DeserializationContext ctxt) - throws IOException { - JsonNode node = JsonManager.jsonToSerializedData(jp); - JsonNode discriminant0 = node.get("type"); - if (!(discriminant0 == null)) { - switch (discriminant0.asText()) { - case "file": - return new LegalHoldPolicyAssignedItem(JsonManager.deserialize(node, File.class)); - case "folder": - return new LegalHoldPolicyAssignedItem(JsonManager.deserialize(node, Folder.class)); - case "web_link": - return new LegalHoldPolicyAssignedItem(JsonManager.deserialize(node, WebLink.class)); - } - } - throw new JsonMappingException(jp, "Unable to deserialize LegalHoldPolicyAssignedItem"); + if (o == null || getClass() != o.getClass()) { + return false; } + LegalHoldPolicyAssignedItem casted = (LegalHoldPolicyAssignedItem) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "LegalHoldPolicyAssignedItem{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; } } diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassigneditem/LegalHoldPolicyAssignedItemTypeField.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassigneditem/LegalHoldPolicyAssignedItemTypeField.java new file mode 100644 index 000000000..00c8965bd --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassigneditem/LegalHoldPolicyAssignedItemTypeField.java @@ -0,0 +1,67 @@ +package com.box.sdkgen.schemas.legalholdpolicyassigneditem; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum LegalHoldPolicyAssignedItemTypeField implements Valuable { + FILE("file"), + FILE_VERSION("file_version"), + FOLDER("folder"), + USER("user"), + OWNERSHIP("ownership"), + INTERACTIONS("interactions"); + + private final String value; + + LegalHoldPolicyAssignedItemTypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class LegalHoldPolicyAssignedItemTypeFieldDeserializer + extends JsonDeserializer> { + + public LegalHoldPolicyAssignedItemTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(LegalHoldPolicyAssignedItemTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class LegalHoldPolicyAssignedItemTypeFieldSerializer + extends JsonSerializer> { + + public LegalHoldPolicyAssignedItemTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignment/LegalHoldPolicyAssignment.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignment/LegalHoldPolicyAssignment.java index 092811ec2..6a1a1db1f 100644 --- a/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignment/LegalHoldPolicyAssignment.java +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignment/LegalHoldPolicyAssignment.java @@ -1,14 +1,11 @@ package com.box.sdkgen.schemas.legalholdpolicyassignment; import com.box.sdkgen.internal.utils.DateTimeUtils; -import com.box.sdkgen.schemas.file.File; -import com.box.sdkgen.schemas.folder.Folder; import com.box.sdkgen.schemas.legalholdpolicyassigneditem.LegalHoldPolicyAssignedItem; import com.box.sdkgen.schemas.legalholdpolicyassignmentbase.LegalHoldPolicyAssignmentBase; import com.box.sdkgen.schemas.legalholdpolicyassignmentbase.LegalHoldPolicyAssignmentBaseTypeField; import com.box.sdkgen.schemas.legalholdpolicymini.LegalHoldPolicyMini; import com.box.sdkgen.schemas.usermini.UserMini; -import com.box.sdkgen.schemas.weblink.WebLink; import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; @@ -18,8 +15,8 @@ import java.util.Objects; /** - * Legal Hold Assignments are used to assign Legal Hold Policies to Users, Folders, Files, or File - * Versions. + * Legal Hold Assignments are used to assign Legal Hold Policies to an item type of: Users, Folders, + * Files, File Versions, Ownership, or Interactions. * *

    Creating a Legal Hold Assignment puts a hold on the File-Versions that belong to the * Assignment's 'apply-to' entity. @@ -159,21 +156,6 @@ public Builder legalHoldPolicy(LegalHoldPolicyMini legalHoldPolicy) { return this; } - public Builder assignedTo(File assignedTo) { - this.assignedTo = new LegalHoldPolicyAssignedItem(assignedTo); - return this; - } - - public Builder assignedTo(Folder assignedTo) { - this.assignedTo = new LegalHoldPolicyAssignedItem(assignedTo); - return this; - } - - public Builder assignedTo(WebLink assignedTo) { - this.assignedTo = new LegalHoldPolicyAssignedItem(assignedTo); - return this; - } - public Builder assignedTo(LegalHoldPolicyAssignedItem assignedTo) { this.assignedTo = assignedTo; return this; From 52b408ec649dd7d36d3ecc6f2506f34afde644bd Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Mon, 30 Mar 2026 17:51:32 +0200 Subject: [PATCH 098/148] fix!: Correct search content type 'tags' to match API (box/box-openapi#591) (#1766) --- .codegen.json | 2 +- ...orContentQueryParamsContentTypesField.java | 2 +- .../HubItemOperationResultV2025R0.java | 24 ++++++++++++++++++- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index 7bab03a31..fbf9d1b8e 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "7c01dda", "specHash": "74a1e4a", "version": "10.6.0" } +{ "engineHash": "02fdae4", "specHash": "c8e3a85", "version": "10.6.0" } diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsContentTypesField.java b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsContentTypesField.java index d4c7a02ec..c1a936693 100644 --- a/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsContentTypesField.java +++ b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsContentTypesField.java @@ -16,7 +16,7 @@ public enum SearchForContentQueryParamsContentTypesField implements Valuable { DESCRIPTION("description"), FILE_CONTENT("file_content"), COMMENTS("comments"), - TAG("tag"); + TAGS("tags"); private final String value; diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationresultv2025r0/HubItemOperationResultV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationresultv2025r0/HubItemOperationResultV2025R0.java index 47039d3e4..c4af34af7 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationresultv2025r0/HubItemOperationResultV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationresultv2025r0/HubItemOperationResultV2025R0.java @@ -7,6 +7,7 @@ import com.box.sdkgen.schemas.v2025r0.hubitemreferencev2025r0.HubItemReferenceV2025R0; import com.box.sdkgen.schemas.v2025r0.weblinkreferencev2025r0.WeblinkReferenceV2025R0; import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; /** Result of a Box Hub item operation. */ @@ -18,6 +19,10 @@ public class HubItemOperationResultV2025R0 extends SerializableObject { protected HubItemReferenceV2025R0 item; + /** The ID of the parent block the item was added to. */ + @JsonProperty("parent_id") + protected String parentId; + /** The HTTP status code of the operation. */ protected Long status; @@ -32,6 +37,7 @@ protected HubItemOperationResultV2025R0(Builder builder) { super(); this.action = builder.action; this.item = builder.item; + this.parentId = builder.parentId; this.status = builder.status; this.error = builder.error; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); @@ -45,6 +51,10 @@ public HubItemReferenceV2025R0 getItem() { return item; } + public String getParentId() { + return parentId; + } + public Long getStatus() { return status; } @@ -64,13 +74,14 @@ public boolean equals(Object o) { HubItemOperationResultV2025R0 casted = (HubItemOperationResultV2025R0) o; return Objects.equals(action, casted.action) && Objects.equals(item, casted.item) + && Objects.equals(parentId, casted.parentId) && Objects.equals(status, casted.status) && Objects.equals(error, casted.error); } @Override public int hashCode() { - return Objects.hash(action, item, status, error); + return Objects.hash(action, item, parentId, status, error); } @Override @@ -84,6 +95,10 @@ public String toString() { + item + '\'' + ", " + + "parentId='" + + parentId + + '\'' + + ", " + "status='" + status + '\'' @@ -100,6 +115,8 @@ public static class Builder extends NullableFieldTracker { protected HubItemReferenceV2025R0 item; + protected String parentId; + protected Long status; protected String error; @@ -129,6 +146,11 @@ public Builder item(HubItemReferenceV2025R0 item) { return this; } + public Builder parentId(String parentId) { + this.parentId = parentId; + return this; + } + public Builder status(Long status) { this.status = status; return this; From 8b2ef9f003b76f88ea0481a0539efad38ae63a3b Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 31 Mar 2026 11:39:43 +0200 Subject: [PATCH 099/148] feat: Support Hub Document API (box/box-codegen#930) (#1767) --- .codegen.json | 2 +- docs/README.md | 1 + docs/hubdocument.md | 69 +++++++ .../java/com/box/sdkgen/client/BoxClient.java | 17 ++ .../GetHubDocumentBlocksV2025R0Headers.java | 68 +++++++ ...etHubDocumentBlocksV2025R0QueryParams.java | 83 +++++++++ .../GetHubDocumentPagesV2025R0Headers.java | 68 +++++++ ...GetHubDocumentPagesV2025R0QueryParams.java | 71 +++++++ .../hubdocument/HubDocumentManager.java | 176 ++++++++++++++++++ .../HubCalloutBoxTextBlockV2025R0.java | 131 +++++++++++++ ...ubCalloutBoxTextBlockV2025R0TypeField.java | 62 ++++++ .../HubDividerBlockV2025R0.java | 108 +++++++++++ .../HubDividerBlockV2025R0TypeField.java | 62 ++++++ .../HubDocumentBlockEntryV2025R0.java | 159 ++++++++++++++++ .../HubDocumentBlocksV2025R0.java | 160 ++++++++++++++++ .../HubDocumentBlocksV2025R0TypeField.java | 62 ++++++ .../HubDocumentBlockV2025R0.java | 93 +++++++++ .../HubDocumentPagesV2025R0.java | 159 ++++++++++++++++ .../HubDocumentPagesV2025R0TypeField.java | 62 ++++++ .../HubDocumentPageV2025R0.java | 132 +++++++++++++ .../HubItemListBlockV2025R0.java | 109 +++++++++++ .../HubItemListBlockV2025R0TypeField.java | 62 ++++++ .../HubParagraphTextBlockV2025R0.java | 131 +++++++++++++ ...HubParagraphTextBlockV2025R0TypeField.java | 62 ++++++ .../HubSectionTitleTextBlockV2025R0.java | 131 +++++++++++++ ...SectionTitleTextBlockV2025R0TypeField.java | 62 ++++++ .../sdkgen/hubdocument/HubDocumentITest.java | 48 +++++ 27 files changed, 2349 insertions(+), 1 deletion(-) create mode 100644 docs/hubdocument.md create mode 100644 src/main/java/com/box/sdkgen/managers/hubdocument/GetHubDocumentBlocksV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubdocument/GetHubDocumentBlocksV2025R0QueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubdocument/GetHubDocumentPagesV2025R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubdocument/GetHubDocumentPagesV2025R0QueryParams.java create mode 100644 src/main/java/com/box/sdkgen/managers/hubdocument/HubDocumentManager.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubcalloutboxtextblockv2025r0/HubCalloutBoxTextBlockV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubcalloutboxtextblockv2025r0/HubCalloutBoxTextBlockV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubdividerblockv2025r0/HubDividerBlockV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubdividerblockv2025r0/HubDividerBlockV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentblockentryv2025r0/HubDocumentBlockEntryV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentblocksv2025r0/HubDocumentBlocksV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentblocksv2025r0/HubDocumentBlocksV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentblockv2025r0/HubDocumentBlockV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentpagesv2025r0/HubDocumentPagesV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentpagesv2025r0/HubDocumentPagesV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentpagev2025r0/HubDocumentPageV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemlistblockv2025r0/HubItemListBlockV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemlistblockv2025r0/HubItemListBlockV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubparagraphtextblockv2025r0/HubParagraphTextBlockV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubparagraphtextblockv2025r0/HubParagraphTextBlockV2025R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubsectiontitletextblockv2025r0/HubSectionTitleTextBlockV2025R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubsectiontitletextblockv2025r0/HubSectionTitleTextBlockV2025R0TypeField.java create mode 100644 src/test/java/com/box/sdkgen/hubdocument/HubDocumentITest.java diff --git a/.codegen.json b/.codegen.json index fbf9d1b8e..d4966e1c0 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "02fdae4", "specHash": "c8e3a85", "version": "10.6.0" } +{ "engineHash": "e77f966", "specHash": "c8e3a85", "version": "10.6.0" } diff --git a/docs/README.md b/docs/README.md index 0b0f89473..1dc5612dc 100644 --- a/docs/README.md +++ b/docs/README.md @@ -48,6 +48,7 @@ the SDK are available by topic: * [Folderwatermarks](folderwatermarks.md) * [Groups](groups.md) * [Hubcollaborations](hubcollaborations.md) +* [Hubdocument](hubdocument.md) * [Hubitems](hubitems.md) * [Hubs](hubs.md) * [Integrationmappings](integrationmappings.md) diff --git a/docs/hubdocument.md b/docs/hubdocument.md new file mode 100644 index 000000000..d4d45eb3a --- /dev/null +++ b/docs/hubdocument.md @@ -0,0 +1,69 @@ +# HubDocumentManager + + +- [List Hub Document Pages](#list-hub-document-pages) +- [List Hub Document blocks for page](#list-hub-document-blocks-for-page) + +## List Hub Document Pages + +Retrieves a list of Hub Document Pages for the specified hub. +Includes both root-level pages and sub pages. + +This operation is performed by calling function `getHubDocumentPagesV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/get-hub-document-pages/). + + +``` +client.getHubDocument().getHubDocumentPagesV2025R0(new GetHubDocumentPagesV2025R0QueryParams(hubId)) +``` + +### Arguments + +- queryParams `GetHubDocumentPagesV2025R0QueryParams` + - Query parameters of getHubDocumentPagesV2025R0 method +- headers `GetHubDocumentPagesV2025R0Headers` + - Headers of getHubDocumentPagesV2025R0 method + + +### Returns + +This function returns a value of type `HubDocumentPagesV2025R0`. + +Returns a Hub Document Pages response whose `entries` array contains root-level pages and sub pages. Includes pagination when more results are available. + + +## List Hub Document blocks for page + +Retrieves a sorted list of all Hub Document Blocks on a specified page in the hub document, excluding items. +Blocks are hierarchically organized by their `parent_id`. +Blocks are sorted in order based on user specification in the user interface. +The response will only include content blocks that belong to the specified page. This will not include sub pages or sub page content blocks. + +This operation is performed by calling function `getHubDocumentBlocksV2025R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2025.0/get-hub-document-blocks/). + + +``` +client.getHubDocument().getHubDocumentBlocksV2025R0(new GetHubDocumentBlocksV2025R0QueryParams(hubId, pageId)) +``` + +### Arguments + +- queryParams `GetHubDocumentBlocksV2025R0QueryParams` + - Query parameters of getHubDocumentBlocksV2025R0 method +- headers `GetHubDocumentBlocksV2025R0Headers` + - Headers of getHubDocumentBlocksV2025R0 method + + +### Returns + +This function returns a value of type `HubDocumentBlocksV2025R0`. + +Returns a Hub Document Blocks response whose `entries` array contains all content blocks of the specified page, except for items. +To retrieve items, use the `GET /hub_items` endpoint. + + diff --git a/src/main/java/com/box/sdkgen/client/BoxClient.java b/src/main/java/com/box/sdkgen/client/BoxClient.java index e11f46248..e45762637 100644 --- a/src/main/java/com/box/sdkgen/client/BoxClient.java +++ b/src/main/java/com/box/sdkgen/client/BoxClient.java @@ -38,6 +38,7 @@ import com.box.sdkgen.managers.folderwatermarks.FolderWatermarksManager; import com.box.sdkgen.managers.groups.GroupsManager; import com.box.sdkgen.managers.hubcollaborations.HubCollaborationsManager; +import com.box.sdkgen.managers.hubdocument.HubDocumentManager; import com.box.sdkgen.managers.hubitems.HubItemsManager; import com.box.sdkgen.managers.hubs.HubsManager; import com.box.sdkgen.managers.integrationmappings.IntegrationMappingsManager; @@ -261,6 +262,8 @@ public class BoxClient { public final HubItemsManager hubItems; + public final HubDocumentManager hubDocument; + public final ShieldListsManager shieldLists; public final ArchivesManager archives; @@ -598,6 +601,11 @@ public BoxClient(Authentication auth) { .build(); this.hubItems = new HubItemsManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.hubDocument = + new HubDocumentManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); this.shieldLists = new ShieldListsManager.Builder() .auth(this.auth) @@ -943,6 +951,11 @@ protected BoxClient(Builder builder) { .build(); this.hubItems = new HubItemsManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.hubDocument = + new HubDocumentManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); this.shieldLists = new ShieldListsManager.Builder() .auth(this.auth) @@ -1394,6 +1407,10 @@ public HubItemsManager getHubItems() { return hubItems; } + public HubDocumentManager getHubDocument() { + return hubDocument; + } + public ShieldListsManager getShieldLists() { return shieldLists; } diff --git a/src/main/java/com/box/sdkgen/managers/hubdocument/GetHubDocumentBlocksV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubdocument/GetHubDocumentBlocksV2025R0Headers.java new file mode 100644 index 000000000..5236153c7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubdocument/GetHubDocumentBlocksV2025R0Headers.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.managers.hubdocument; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class GetHubDocumentBlocksV2025R0Headers { + + /** Version header. */ + public EnumWrapper boxVersion; + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public GetHubDocumentBlocksV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected GetHubDocumentBlocksV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() {} + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetHubDocumentBlocksV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } + return new GetHubDocumentBlocksV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubdocument/GetHubDocumentBlocksV2025R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/hubdocument/GetHubDocumentBlocksV2025R0QueryParams.java new file mode 100644 index 000000000..daf0e1e3d --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubdocument/GetHubDocumentBlocksV2025R0QueryParams.java @@ -0,0 +1,83 @@ +package com.box.sdkgen.managers.hubdocument; + +public class GetHubDocumentBlocksV2025R0QueryParams { + + /** + * The unique identifier that represent a hub. + * + *

    The ID for any hub can be determined by visiting this hub in the web application and copying + * the ID from the URL. For example, for the URL `https://*.app.box.com/hubs/123` the `hub_id` is + * `123`. + */ + public final String hubId; + + /** The unique identifier of a page within the Box Hub. */ + public final String pageId; + + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + */ + public String marker; + + /** The maximum number of items to return per page. */ + public Long limit; + + public GetHubDocumentBlocksV2025R0QueryParams(String hubId, String pageId) { + this.hubId = hubId; + this.pageId = pageId; + } + + protected GetHubDocumentBlocksV2025R0QueryParams(Builder builder) { + this.hubId = builder.hubId; + this.pageId = builder.pageId; + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getHubId() { + return hubId; + } + + public String getPageId() { + return pageId; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected final String hubId; + + protected final String pageId; + + protected String marker; + + protected Long limit; + + public Builder(String hubId, String pageId) { + this.hubId = hubId; + this.pageId = pageId; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetHubDocumentBlocksV2025R0QueryParams build() { + return new GetHubDocumentBlocksV2025R0QueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubdocument/GetHubDocumentPagesV2025R0Headers.java b/src/main/java/com/box/sdkgen/managers/hubdocument/GetHubDocumentPagesV2025R0Headers.java new file mode 100644 index 000000000..615e4010c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubdocument/GetHubDocumentPagesV2025R0Headers.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.managers.hubdocument; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2025r0.boxversionheaderv2025r0.BoxVersionHeaderV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class GetHubDocumentPagesV2025R0Headers { + + /** Version header. */ + public EnumWrapper boxVersion; + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public GetHubDocumentPagesV2025R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + this.extraHeaders = mapOf(); + } + + protected GetHubDocumentPagesV2025R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() {} + + public Builder boxVersion(BoxVersionHeaderV2025R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetHubDocumentPagesV2025R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2025R0._2025_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } + return new GetHubDocumentPagesV2025R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubdocument/GetHubDocumentPagesV2025R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/hubdocument/GetHubDocumentPagesV2025R0QueryParams.java new file mode 100644 index 000000000..24869f310 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubdocument/GetHubDocumentPagesV2025R0QueryParams.java @@ -0,0 +1,71 @@ +package com.box.sdkgen.managers.hubdocument; + +public class GetHubDocumentPagesV2025R0QueryParams { + + /** + * The unique identifier that represent a hub. + * + *

    The ID for any hub can be determined by visiting this hub in the web application and copying + * the ID from the URL. For example, for the URL `https://*.app.box.com/hubs/123` the `hub_id` is + * `123`. + */ + public final String hubId; + + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + */ + public String marker; + + /** The maximum number of items to return per page. */ + public Long limit; + + public GetHubDocumentPagesV2025R0QueryParams(String hubId) { + this.hubId = hubId; + } + + protected GetHubDocumentPagesV2025R0QueryParams(Builder builder) { + this.hubId = builder.hubId; + this.marker = builder.marker; + this.limit = builder.limit; + } + + public String getHubId() { + return hubId; + } + + public String getMarker() { + return marker; + } + + public Long getLimit() { + return limit; + } + + public static class Builder { + + protected final String hubId; + + protected String marker; + + protected Long limit; + + public Builder(String hubId) { + this.hubId = hubId; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public GetHubDocumentPagesV2025R0QueryParams build() { + return new GetHubDocumentPagesV2025R0QueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/hubdocument/HubDocumentManager.java b/src/main/java/com/box/sdkgen/managers/hubdocument/HubDocumentManager.java new file mode 100644 index 000000000..cd0255980 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/hubdocument/HubDocumentManager.java @@ -0,0 +1,176 @@ +package com.box.sdkgen.managers.hubdocument; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.v2025r0.hubdocumentblocksv2025r0.HubDocumentBlocksV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubdocumentpagesv2025r0.HubDocumentPagesV2025R0; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class HubDocumentManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public HubDocumentManager() { + this.networkSession = new NetworkSession(); + } + + protected HubDocumentManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + /** + * Retrieves a list of Hub Document Pages for the specified hub. Includes both root-level pages + * and sub pages. + * + * @param queryParams Query parameters of getHubDocumentPagesV2025R0 method + */ + public HubDocumentPagesV2025R0 getHubDocumentPagesV2025R0( + GetHubDocumentPagesV2025R0QueryParams queryParams) { + return getHubDocumentPagesV2025R0(queryParams, new GetHubDocumentPagesV2025R0Headers()); + } + + /** + * Retrieves a list of Hub Document Pages for the specified hub. Includes both root-level pages + * and sub pages. + * + * @param queryParams Query parameters of getHubDocumentPagesV2025R0 method + * @param headers Headers of getHubDocumentPagesV2025R0 method + */ + public HubDocumentPagesV2025R0 getHubDocumentPagesV2025R0( + GetHubDocumentPagesV2025R0QueryParams queryParams, + GetHubDocumentPagesV2025R0Headers headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("hub_id", convertToString(queryParams.getHubId())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/hub_document_pages"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), HubDocumentPagesV2025R0.class); + } + + /** + * Retrieves a sorted list of all Hub Document Blocks on a specified page in the hub document, + * excluding items. Blocks are hierarchically organized by their `parent_id`. Blocks are sorted in + * order based on user specification in the user interface. The response will only include content + * blocks that belong to the specified page. This will not include sub pages or sub page content + * blocks. + * + * @param queryParams Query parameters of getHubDocumentBlocksV2025R0 method + */ + public HubDocumentBlocksV2025R0 getHubDocumentBlocksV2025R0( + GetHubDocumentBlocksV2025R0QueryParams queryParams) { + return getHubDocumentBlocksV2025R0(queryParams, new GetHubDocumentBlocksV2025R0Headers()); + } + + /** + * Retrieves a sorted list of all Hub Document Blocks on a specified page in the hub document, + * excluding items. Blocks are hierarchically organized by their `parent_id`. Blocks are sorted in + * order based on user specification in the user interface. The response will only include content + * blocks that belong to the specified page. This will not include sub pages or sub page content + * blocks. + * + * @param queryParams Query parameters of getHubDocumentBlocksV2025R0 method + * @param headers Headers of getHubDocumentBlocksV2025R0 method + */ + public HubDocumentBlocksV2025R0 getHubDocumentBlocksV2025R0( + GetHubDocumentBlocksV2025R0QueryParams queryParams, + GetHubDocumentBlocksV2025R0Headers headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("hub_id", convertToString(queryParams.getHubId())), + entryOf("page_id", convertToString(queryParams.getPageId())), + entryOf("marker", convertToString(queryParams.getMarker())), + entryOf("limit", convertToString(queryParams.getLimit())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/hub_document_blocks"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), HubDocumentBlocksV2025R0.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() {} + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public HubDocumentManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } + return new HubDocumentManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcalloutboxtextblockv2025r0/HubCalloutBoxTextBlockV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcalloutboxtextblockv2025r0/HubCalloutBoxTextBlockV2025R0.java new file mode 100644 index 000000000..115073bd9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcalloutboxtextblockv2025r0/HubCalloutBoxTextBlockV2025R0.java @@ -0,0 +1,131 @@ +package com.box.sdkgen.schemas.v2025r0.hubcalloutboxtextblockv2025r0; + +import com.box.sdkgen.schemas.v2025r0.hubdocumentblockv2025r0.HubDocumentBlockV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** A callout box block in the Box Hub Document. */ +@JsonFilter("nullablePropertyFilter") +public class HubCalloutBoxTextBlockV2025R0 extends HubDocumentBlockV2025R0 { + + /** The type of this block. The value is always `callout_box`. */ + @JsonDeserialize( + using = + HubCalloutBoxTextBlockV2025R0TypeField.HubCalloutBoxTextBlockV2025R0TypeFieldDeserializer + .class) + @JsonSerialize( + using = + HubCalloutBoxTextBlockV2025R0TypeField.HubCalloutBoxTextBlockV2025R0TypeFieldSerializer + .class) + protected EnumWrapper type; + + /** Text content of the block. Includes rich text formatting. */ + protected final String fragment; + + public HubCalloutBoxTextBlockV2025R0( + @JsonProperty("id") String id, @JsonProperty("fragment") String fragment) { + super(id); + this.fragment = fragment; + this.type = + new EnumWrapper( + HubCalloutBoxTextBlockV2025R0TypeField.CALLOUT_BOX); + } + + protected HubCalloutBoxTextBlockV2025R0(Builder builder) { + super(builder); + this.type = builder.type; + this.fragment = builder.fragment; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getFragment() { + return fragment; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubCalloutBoxTextBlockV2025R0 casted = (HubCalloutBoxTextBlockV2025R0) o; + return Objects.equals(id, casted.id) + && Objects.equals(parentId, casted.parentId) + && Objects.equals(type, casted.type) + && Objects.equals(fragment, casted.fragment); + } + + @Override + public int hashCode() { + return Objects.hash(id, parentId, type, fragment); + } + + @Override + public String toString() { + return "HubCalloutBoxTextBlockV2025R0{" + + "id='" + + id + + '\'' + + ", " + + "parentId='" + + parentId + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "fragment='" + + fragment + + '\'' + + "}"; + } + + public static class Builder extends HubDocumentBlockV2025R0.Builder { + + protected EnumWrapper type; + + protected final String fragment; + + public Builder(String id, String fragment) { + super(id); + this.fragment = fragment; + } + + public Builder type(HubCalloutBoxTextBlockV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder parentId(String parentId) { + this.parentId = parentId; + this.markNullableFieldAsSet("parent_id"); + return this; + } + + public HubCalloutBoxTextBlockV2025R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + HubCalloutBoxTextBlockV2025R0TypeField.CALLOUT_BOX); + } + return new HubCalloutBoxTextBlockV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcalloutboxtextblockv2025r0/HubCalloutBoxTextBlockV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcalloutboxtextblockv2025r0/HubCalloutBoxTextBlockV2025R0TypeField.java new file mode 100644 index 000000000..d1a5d3cc5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcalloutboxtextblockv2025r0/HubCalloutBoxTextBlockV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.hubcalloutboxtextblockv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum HubCalloutBoxTextBlockV2025R0TypeField implements Valuable { + CALLOUT_BOX("callout_box"); + + private final String value; + + HubCalloutBoxTextBlockV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class HubCalloutBoxTextBlockV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public HubCalloutBoxTextBlockV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(HubCalloutBoxTextBlockV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class HubCalloutBoxTextBlockV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public HubCalloutBoxTextBlockV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdividerblockv2025r0/HubDividerBlockV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdividerblockv2025r0/HubDividerBlockV2025R0.java new file mode 100644 index 000000000..974319ad2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdividerblockv2025r0/HubDividerBlockV2025R0.java @@ -0,0 +1,108 @@ +package com.box.sdkgen.schemas.v2025r0.hubdividerblockv2025r0; + +import com.box.sdkgen.schemas.v2025r0.hubdocumentblockv2025r0.HubDocumentBlockV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** A divider block in the Box Hub Document. */ +@JsonFilter("nullablePropertyFilter") +public class HubDividerBlockV2025R0 extends HubDocumentBlockV2025R0 { + + /** The type of this block. The value is always `divider`. */ + @JsonDeserialize( + using = HubDividerBlockV2025R0TypeField.HubDividerBlockV2025R0TypeFieldDeserializer.class) + @JsonSerialize( + using = HubDividerBlockV2025R0TypeField.HubDividerBlockV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + public HubDividerBlockV2025R0(@JsonProperty("id") String id) { + super(id); + this.type = + new EnumWrapper(HubDividerBlockV2025R0TypeField.DIVIDER); + } + + protected HubDividerBlockV2025R0(Builder builder) { + super(builder); + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubDividerBlockV2025R0 casted = (HubDividerBlockV2025R0) o; + return Objects.equals(id, casted.id) + && Objects.equals(parentId, casted.parentId) + && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, parentId, type); + } + + @Override + public String toString() { + return "HubDividerBlockV2025R0{" + + "id='" + + id + + '\'' + + ", " + + "parentId='" + + parentId + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } + + public static class Builder extends HubDocumentBlockV2025R0.Builder { + + protected EnumWrapper type; + + public Builder(String id) { + super(id); + } + + public Builder type(HubDividerBlockV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder parentId(String parentId) { + this.parentId = parentId; + this.markNullableFieldAsSet("parent_id"); + return this; + } + + public HubDividerBlockV2025R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + HubDividerBlockV2025R0TypeField.DIVIDER); + } + return new HubDividerBlockV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdividerblockv2025r0/HubDividerBlockV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdividerblockv2025r0/HubDividerBlockV2025R0TypeField.java new file mode 100644 index 000000000..371ab3cb3 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdividerblockv2025r0/HubDividerBlockV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.hubdividerblockv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum HubDividerBlockV2025R0TypeField implements Valuable { + DIVIDER("divider"); + + private final String value; + + HubDividerBlockV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class HubDividerBlockV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public HubDividerBlockV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(HubDividerBlockV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class HubDividerBlockV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public HubDividerBlockV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentblockentryv2025r0/HubDocumentBlockEntryV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentblockentryv2025r0/HubDocumentBlockEntryV2025R0.java new file mode 100644 index 000000000..c24a16eab --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentblockentryv2025r0/HubDocumentBlockEntryV2025R0.java @@ -0,0 +1,159 @@ +package com.box.sdkgen.schemas.v2025r0.hubdocumentblockentryv2025r0; + +import com.box.sdkgen.internal.OneOfFive; +import com.box.sdkgen.schemas.v2025r0.hubcalloutboxtextblockv2025r0.HubCalloutBoxTextBlockV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubdividerblockv2025r0.HubDividerBlockV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubitemlistblockv2025r0.HubItemListBlockV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubparagraphtextblockv2025r0.HubParagraphTextBlockV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubsectiontitletextblockv2025r0.HubSectionTitleTextBlockV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize( + using = HubDocumentBlockEntryV2025R0.HubDocumentBlockEntryV2025R0Deserializer.class) +@JsonSerialize(using = OneOfFive.OneOfFiveSerializer.class) +public class HubDocumentBlockEntryV2025R0 + extends OneOfFive< + HubParagraphTextBlockV2025R0, + HubSectionTitleTextBlockV2025R0, + HubCalloutBoxTextBlockV2025R0, + HubItemListBlockV2025R0, + HubDividerBlockV2025R0> { + + protected final String type; + + protected final String id; + + protected final String parentId; + + public HubDocumentBlockEntryV2025R0(HubParagraphTextBlockV2025R0 hubParagraphTextBlockV2025R0) { + super(hubParagraphTextBlockV2025R0, null, null, null, null); + this.type = EnumWrapper.convertToString(hubParagraphTextBlockV2025R0.getType()); + this.id = hubParagraphTextBlockV2025R0.getId(); + this.parentId = hubParagraphTextBlockV2025R0.getParentId(); + } + + public HubDocumentBlockEntryV2025R0( + HubSectionTitleTextBlockV2025R0 hubSectionTitleTextBlockV2025R0) { + super(null, hubSectionTitleTextBlockV2025R0, null, null, null); + this.type = EnumWrapper.convertToString(hubSectionTitleTextBlockV2025R0.getType()); + this.id = hubSectionTitleTextBlockV2025R0.getId(); + this.parentId = hubSectionTitleTextBlockV2025R0.getParentId(); + } + + public HubDocumentBlockEntryV2025R0(HubCalloutBoxTextBlockV2025R0 hubCalloutBoxTextBlockV2025R0) { + super(null, null, hubCalloutBoxTextBlockV2025R0, null, null); + this.type = EnumWrapper.convertToString(hubCalloutBoxTextBlockV2025R0.getType()); + this.id = hubCalloutBoxTextBlockV2025R0.getId(); + this.parentId = hubCalloutBoxTextBlockV2025R0.getParentId(); + } + + public HubDocumentBlockEntryV2025R0(HubItemListBlockV2025R0 hubItemListBlockV2025R0) { + super(null, null, null, hubItemListBlockV2025R0, null); + this.type = EnumWrapper.convertToString(hubItemListBlockV2025R0.getType()); + this.id = hubItemListBlockV2025R0.getId(); + this.parentId = hubItemListBlockV2025R0.getParentId(); + } + + public HubDocumentBlockEntryV2025R0(HubDividerBlockV2025R0 hubDividerBlockV2025R0) { + super(null, null, null, null, hubDividerBlockV2025R0); + this.type = EnumWrapper.convertToString(hubDividerBlockV2025R0.getType()); + this.id = hubDividerBlockV2025R0.getId(); + this.parentId = hubDividerBlockV2025R0.getParentId(); + } + + public boolean isHubParagraphTextBlockV2025R0() { + return value0 != null; + } + + public HubParagraphTextBlockV2025R0 getHubParagraphTextBlockV2025R0() { + return value0; + } + + public boolean isHubSectionTitleTextBlockV2025R0() { + return value1 != null; + } + + public HubSectionTitleTextBlockV2025R0 getHubSectionTitleTextBlockV2025R0() { + return value1; + } + + public boolean isHubCalloutBoxTextBlockV2025R0() { + return value2 != null; + } + + public HubCalloutBoxTextBlockV2025R0 getHubCalloutBoxTextBlockV2025R0() { + return value2; + } + + public boolean isHubItemListBlockV2025R0() { + return value3 != null; + } + + public HubItemListBlockV2025R0 getHubItemListBlockV2025R0() { + return value3; + } + + public boolean isHubDividerBlockV2025R0() { + return value4 != null; + } + + public HubDividerBlockV2025R0 getHubDividerBlockV2025R0() { + return value4; + } + + public String getType() { + return type; + } + + public String getId() { + return id; + } + + public String getParentId() { + return parentId; + } + + static class HubDocumentBlockEntryV2025R0Deserializer + extends JsonDeserializer { + + public HubDocumentBlockEntryV2025R0Deserializer() { + super(); + } + + @Override + public HubDocumentBlockEntryV2025R0 deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "paragraph": + return new HubDocumentBlockEntryV2025R0( + JsonManager.deserialize(node, HubParagraphTextBlockV2025R0.class)); + case "section_title": + return new HubDocumentBlockEntryV2025R0( + JsonManager.deserialize(node, HubSectionTitleTextBlockV2025R0.class)); + case "callout_box": + return new HubDocumentBlockEntryV2025R0( + JsonManager.deserialize(node, HubCalloutBoxTextBlockV2025R0.class)); + case "item_list": + return new HubDocumentBlockEntryV2025R0( + JsonManager.deserialize(node, HubItemListBlockV2025R0.class)); + case "divider": + return new HubDocumentBlockEntryV2025R0( + JsonManager.deserialize(node, HubDividerBlockV2025R0.class)); + } + } + throw new JsonMappingException(jp, "Unable to deserialize HubDocumentBlockEntryV2025R0"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentblocksv2025r0/HubDocumentBlocksV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentblocksv2025r0/HubDocumentBlocksV2025R0.java new file mode 100644 index 000000000..b6efa80f5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentblocksv2025r0/HubDocumentBlocksV2025R0.java @@ -0,0 +1,160 @@ +package com.box.sdkgen.schemas.v2025r0.hubdocumentblocksv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.hubdocumentblockentryv2025r0.HubDocumentBlockEntryV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +/** A list of Hub Document blocks. */ +@JsonFilter("nullablePropertyFilter") +public class HubDocumentBlocksV2025R0 extends SerializableObject { + + /** Ordered list of blocks. */ + protected final List entries; + + /** The value will always be `document_blocks`. */ + @JsonDeserialize( + using = HubDocumentBlocksV2025R0TypeField.HubDocumentBlocksV2025R0TypeFieldDeserializer.class) + @JsonSerialize( + using = HubDocumentBlocksV2025R0TypeField.HubDocumentBlocksV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ + protected Long limit; + + /** The marker for the start of the next page of results. */ + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + public HubDocumentBlocksV2025R0( + @JsonProperty("entries") List entries) { + super(); + this.entries = entries; + this.type = + new EnumWrapper( + HubDocumentBlocksV2025R0TypeField.DOCUMENT_BLOCKS); + } + + protected HubDocumentBlocksV2025R0(Builder builder) { + super(); + this.entries = builder.entries; + this.type = builder.type; + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getEntries() { + return entries; + } + + public EnumWrapper getType() { + return type; + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubDocumentBlocksV2025R0 casted = (HubDocumentBlocksV2025R0) o; + return Objects.equals(entries, casted.entries) + && Objects.equals(type, casted.type) + && Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker); + } + + @Override + public int hashCode() { + return Objects.hash(entries, type, limit, nextMarker); + } + + @Override + public String toString() { + return "HubDocumentBlocksV2025R0{" + + "entries='" + + entries + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final List entries; + + protected EnumWrapper type; + + protected Long limit; + + protected String nextMarker; + + public Builder(List entries) { + super(); + this.entries = entries; + } + + public Builder type(HubDocumentBlocksV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public HubDocumentBlocksV2025R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + HubDocumentBlocksV2025R0TypeField.DOCUMENT_BLOCKS); + } + return new HubDocumentBlocksV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentblocksv2025r0/HubDocumentBlocksV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentblocksv2025r0/HubDocumentBlocksV2025R0TypeField.java new file mode 100644 index 000000000..6717304e4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentblocksv2025r0/HubDocumentBlocksV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.hubdocumentblocksv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum HubDocumentBlocksV2025R0TypeField implements Valuable { + DOCUMENT_BLOCKS("document_blocks"); + + private final String value; + + HubDocumentBlocksV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class HubDocumentBlocksV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public HubDocumentBlocksV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(HubDocumentBlocksV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class HubDocumentBlocksV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public HubDocumentBlocksV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentblockv2025r0/HubDocumentBlockV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentblockv2025r0/HubDocumentBlockV2025R0.java new file mode 100644 index 000000000..44189c375 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentblockv2025r0/HubDocumentBlockV2025R0.java @@ -0,0 +1,93 @@ +package com.box.sdkgen.schemas.v2025r0.hubdocumentblockv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** Base block in the Box Hub Document. */ +@JsonFilter("nullablePropertyFilter") +public class HubDocumentBlockV2025R0 extends SerializableObject { + + /** The unique identifier for this block. */ + protected final String id; + + /** The unique identifier of the parent block. Null for direct children of the page. */ + @JsonProperty("parent_id") + @Nullable + protected String parentId; + + public HubDocumentBlockV2025R0(@JsonProperty("id") String id) { + super(); + this.id = id; + } + + protected HubDocumentBlockV2025R0(Builder builder) { + super(); + this.id = builder.id; + this.parentId = builder.parentId; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getParentId() { + return parentId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubDocumentBlockV2025R0 casted = (HubDocumentBlockV2025R0) o; + return Objects.equals(id, casted.id) && Objects.equals(parentId, casted.parentId); + } + + @Override + public int hashCode() { + return Objects.hash(id, parentId); + } + + @Override + public String toString() { + return "HubDocumentBlockV2025R0{" + + "id='" + + id + + '\'' + + ", " + + "parentId='" + + parentId + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected String parentId; + + public Builder(String id) { + super(); + this.id = id; + } + + public Builder parentId(String parentId) { + this.parentId = parentId; + this.markNullableFieldAsSet("parent_id"); + return this; + } + + public HubDocumentBlockV2025R0 build() { + return new HubDocumentBlockV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentpagesv2025r0/HubDocumentPagesV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentpagesv2025r0/HubDocumentPagesV2025R0.java new file mode 100644 index 000000000..d7934ad2d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentpagesv2025r0/HubDocumentPagesV2025R0.java @@ -0,0 +1,159 @@ +package com.box.sdkgen.schemas.v2025r0.hubdocumentpagesv2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2025r0.hubdocumentpagev2025r0.HubDocumentPageV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Objects; + +/** A list of Hub Document Pages. */ +@JsonFilter("nullablePropertyFilter") +public class HubDocumentPagesV2025R0 extends SerializableObject { + + /** Ordered list of pages. */ + protected final List entries; + + /** The value will always be `document_pages`. */ + @JsonDeserialize( + using = HubDocumentPagesV2025R0TypeField.HubDocumentPagesV2025R0TypeFieldDeserializer.class) + @JsonSerialize( + using = HubDocumentPagesV2025R0TypeField.HubDocumentPagesV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ + protected Long limit; + + /** The marker for the start of the next page of results. */ + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + public HubDocumentPagesV2025R0(@JsonProperty("entries") List entries) { + super(); + this.entries = entries; + this.type = + new EnumWrapper( + HubDocumentPagesV2025R0TypeField.DOCUMENT_PAGES); + } + + protected HubDocumentPagesV2025R0(Builder builder) { + super(); + this.entries = builder.entries; + this.type = builder.type; + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getEntries() { + return entries; + } + + public EnumWrapper getType() { + return type; + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubDocumentPagesV2025R0 casted = (HubDocumentPagesV2025R0) o; + return Objects.equals(entries, casted.entries) + && Objects.equals(type, casted.type) + && Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker); + } + + @Override + public int hashCode() { + return Objects.hash(entries, type, limit, nextMarker); + } + + @Override + public String toString() { + return "HubDocumentPagesV2025R0{" + + "entries='" + + entries + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final List entries; + + protected EnumWrapper type; + + protected Long limit; + + protected String nextMarker; + + public Builder(List entries) { + super(); + this.entries = entries; + } + + public Builder type(HubDocumentPagesV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public HubDocumentPagesV2025R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + HubDocumentPagesV2025R0TypeField.DOCUMENT_PAGES); + } + return new HubDocumentPagesV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentpagesv2025r0/HubDocumentPagesV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentpagesv2025r0/HubDocumentPagesV2025R0TypeField.java new file mode 100644 index 000000000..3a59c54cd --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentpagesv2025r0/HubDocumentPagesV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.hubdocumentpagesv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum HubDocumentPagesV2025R0TypeField implements Valuable { + DOCUMENT_PAGES("document_pages"); + + private final String value; + + HubDocumentPagesV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class HubDocumentPagesV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public HubDocumentPagesV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(HubDocumentPagesV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class HubDocumentPagesV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public HubDocumentPagesV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentpagev2025r0/HubDocumentPageV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentpagev2025r0/HubDocumentPageV2025R0.java new file mode 100644 index 000000000..e01c3631b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentpagev2025r0/HubDocumentPageV2025R0.java @@ -0,0 +1,132 @@ +package com.box.sdkgen.schemas.v2025r0.hubdocumentpagev2025r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** A Page in the Box Hub Document. */ +@JsonFilter("nullablePropertyFilter") +public class HubDocumentPageV2025R0 extends SerializableObject { + + /** The unique identifier for this page. */ + protected final String id; + + /** The type of this resource. The value is always `page`. */ + protected final String type; + + /** The unique identifier of the parent page. Null for root-level pages. */ + @JsonProperty("parent_id") + @Nullable + protected String parentId; + + /** The title text of the page. Includes rich text formatting. */ + @JsonProperty("title_fragment") + protected final String titleFragment; + + public HubDocumentPageV2025R0( + @JsonProperty("id") String id, + @JsonProperty("type") String type, + @JsonProperty("title_fragment") String titleFragment) { + super(); + this.id = id; + this.type = type; + this.titleFragment = titleFragment; + } + + protected HubDocumentPageV2025R0(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.parentId = builder.parentId; + this.titleFragment = builder.titleFragment; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getType() { + return type; + } + + public String getParentId() { + return parentId; + } + + public String getTitleFragment() { + return titleFragment; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubDocumentPageV2025R0 casted = (HubDocumentPageV2025R0) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(parentId, casted.parentId) + && Objects.equals(titleFragment, casted.titleFragment); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, parentId, titleFragment); + } + + @Override + public String toString() { + return "HubDocumentPageV2025R0{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "parentId='" + + parentId + + '\'' + + ", " + + "titleFragment='" + + titleFragment + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected final String type; + + protected String parentId; + + protected final String titleFragment; + + public Builder(String id, String type, String titleFragment) { + super(); + this.id = id; + this.type = type; + this.titleFragment = titleFragment; + } + + public Builder parentId(String parentId) { + this.parentId = parentId; + this.markNullableFieldAsSet("parent_id"); + return this; + } + + public HubDocumentPageV2025R0 build() { + return new HubDocumentPageV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemlistblockv2025r0/HubItemListBlockV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemlistblockv2025r0/HubItemListBlockV2025R0.java new file mode 100644 index 000000000..8435a9737 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemlistblockv2025r0/HubItemListBlockV2025R0.java @@ -0,0 +1,109 @@ +package com.box.sdkgen.schemas.v2025r0.hubitemlistblockv2025r0; + +import com.box.sdkgen.schemas.v2025r0.hubdocumentblockv2025r0.HubDocumentBlockV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** An item list block in the Box Hub Document. */ +@JsonFilter("nullablePropertyFilter") +public class HubItemListBlockV2025R0 extends HubDocumentBlockV2025R0 { + + /** The type of this block. The value is always `item_list`. */ + @JsonDeserialize( + using = HubItemListBlockV2025R0TypeField.HubItemListBlockV2025R0TypeFieldDeserializer.class) + @JsonSerialize( + using = HubItemListBlockV2025R0TypeField.HubItemListBlockV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + public HubItemListBlockV2025R0(@JsonProperty("id") String id) { + super(id); + this.type = + new EnumWrapper( + HubItemListBlockV2025R0TypeField.ITEM_LIST); + } + + protected HubItemListBlockV2025R0(Builder builder) { + super(builder); + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubItemListBlockV2025R0 casted = (HubItemListBlockV2025R0) o; + return Objects.equals(id, casted.id) + && Objects.equals(parentId, casted.parentId) + && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, parentId, type); + } + + @Override + public String toString() { + return "HubItemListBlockV2025R0{" + + "id='" + + id + + '\'' + + ", " + + "parentId='" + + parentId + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } + + public static class Builder extends HubDocumentBlockV2025R0.Builder { + + protected EnumWrapper type; + + public Builder(String id) { + super(id); + } + + public Builder type(HubItemListBlockV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder parentId(String parentId) { + this.parentId = parentId; + this.markNullableFieldAsSet("parent_id"); + return this; + } + + public HubItemListBlockV2025R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + HubItemListBlockV2025R0TypeField.ITEM_LIST); + } + return new HubItemListBlockV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemlistblockv2025r0/HubItemListBlockV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemlistblockv2025r0/HubItemListBlockV2025R0TypeField.java new file mode 100644 index 000000000..f56dbd9e9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemlistblockv2025r0/HubItemListBlockV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.hubitemlistblockv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum HubItemListBlockV2025R0TypeField implements Valuable { + ITEM_LIST("item_list"); + + private final String value; + + HubItemListBlockV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class HubItemListBlockV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public HubItemListBlockV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(HubItemListBlockV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class HubItemListBlockV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public HubItemListBlockV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubparagraphtextblockv2025r0/HubParagraphTextBlockV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubparagraphtextblockv2025r0/HubParagraphTextBlockV2025R0.java new file mode 100644 index 000000000..f550c97e6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubparagraphtextblockv2025r0/HubParagraphTextBlockV2025R0.java @@ -0,0 +1,131 @@ +package com.box.sdkgen.schemas.v2025r0.hubparagraphtextblockv2025r0; + +import com.box.sdkgen.schemas.v2025r0.hubdocumentblockv2025r0.HubDocumentBlockV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** A paragraph block in the Box Hub Document. */ +@JsonFilter("nullablePropertyFilter") +public class HubParagraphTextBlockV2025R0 extends HubDocumentBlockV2025R0 { + + /** The type of this block. The value is always `paragraph`. */ + @JsonDeserialize( + using = + HubParagraphTextBlockV2025R0TypeField.HubParagraphTextBlockV2025R0TypeFieldDeserializer + .class) + @JsonSerialize( + using = + HubParagraphTextBlockV2025R0TypeField.HubParagraphTextBlockV2025R0TypeFieldSerializer + .class) + protected EnumWrapper type; + + /** Text content of the block. Includes rich text formatting. */ + protected final String fragment; + + public HubParagraphTextBlockV2025R0( + @JsonProperty("id") String id, @JsonProperty("fragment") String fragment) { + super(id); + this.fragment = fragment; + this.type = + new EnumWrapper( + HubParagraphTextBlockV2025R0TypeField.PARAGRAPH); + } + + protected HubParagraphTextBlockV2025R0(Builder builder) { + super(builder); + this.type = builder.type; + this.fragment = builder.fragment; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getFragment() { + return fragment; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubParagraphTextBlockV2025R0 casted = (HubParagraphTextBlockV2025R0) o; + return Objects.equals(id, casted.id) + && Objects.equals(parentId, casted.parentId) + && Objects.equals(type, casted.type) + && Objects.equals(fragment, casted.fragment); + } + + @Override + public int hashCode() { + return Objects.hash(id, parentId, type, fragment); + } + + @Override + public String toString() { + return "HubParagraphTextBlockV2025R0{" + + "id='" + + id + + '\'' + + ", " + + "parentId='" + + parentId + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "fragment='" + + fragment + + '\'' + + "}"; + } + + public static class Builder extends HubDocumentBlockV2025R0.Builder { + + protected EnumWrapper type; + + protected final String fragment; + + public Builder(String id, String fragment) { + super(id); + this.fragment = fragment; + } + + public Builder type(HubParagraphTextBlockV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder parentId(String parentId) { + this.parentId = parentId; + this.markNullableFieldAsSet("parent_id"); + return this; + } + + public HubParagraphTextBlockV2025R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + HubParagraphTextBlockV2025R0TypeField.PARAGRAPH); + } + return new HubParagraphTextBlockV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubparagraphtextblockv2025r0/HubParagraphTextBlockV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubparagraphtextblockv2025r0/HubParagraphTextBlockV2025R0TypeField.java new file mode 100644 index 000000000..e0e062fe5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubparagraphtextblockv2025r0/HubParagraphTextBlockV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.hubparagraphtextblockv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum HubParagraphTextBlockV2025R0TypeField implements Valuable { + PARAGRAPH("paragraph"); + + private final String value; + + HubParagraphTextBlockV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class HubParagraphTextBlockV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public HubParagraphTextBlockV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(HubParagraphTextBlockV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class HubParagraphTextBlockV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public HubParagraphTextBlockV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubsectiontitletextblockv2025r0/HubSectionTitleTextBlockV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubsectiontitletextblockv2025r0/HubSectionTitleTextBlockV2025R0.java new file mode 100644 index 000000000..e1297f783 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubsectiontitletextblockv2025r0/HubSectionTitleTextBlockV2025R0.java @@ -0,0 +1,131 @@ +package com.box.sdkgen.schemas.v2025r0.hubsectiontitletextblockv2025r0; + +import com.box.sdkgen.schemas.v2025r0.hubdocumentblockv2025r0.HubDocumentBlockV2025R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** A section title block in the Box Hub Document. */ +@JsonFilter("nullablePropertyFilter") +public class HubSectionTitleTextBlockV2025R0 extends HubDocumentBlockV2025R0 { + + /** The type of this block. The value is always `section_title`. */ + @JsonDeserialize( + using = + HubSectionTitleTextBlockV2025R0TypeField + .HubSectionTitleTextBlockV2025R0TypeFieldDeserializer.class) + @JsonSerialize( + using = + HubSectionTitleTextBlockV2025R0TypeField + .HubSectionTitleTextBlockV2025R0TypeFieldSerializer.class) + protected EnumWrapper type; + + /** Text content of the block. Includes rich text formatting. */ + protected final String fragment; + + public HubSectionTitleTextBlockV2025R0( + @JsonProperty("id") String id, @JsonProperty("fragment") String fragment) { + super(id); + this.fragment = fragment; + this.type = + new EnumWrapper( + HubSectionTitleTextBlockV2025R0TypeField.SECTION_TITLE); + } + + protected HubSectionTitleTextBlockV2025R0(Builder builder) { + super(builder); + this.type = builder.type; + this.fragment = builder.fragment; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getFragment() { + return fragment; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HubSectionTitleTextBlockV2025R0 casted = (HubSectionTitleTextBlockV2025R0) o; + return Objects.equals(id, casted.id) + && Objects.equals(parentId, casted.parentId) + && Objects.equals(type, casted.type) + && Objects.equals(fragment, casted.fragment); + } + + @Override + public int hashCode() { + return Objects.hash(id, parentId, type, fragment); + } + + @Override + public String toString() { + return "HubSectionTitleTextBlockV2025R0{" + + "id='" + + id + + '\'' + + ", " + + "parentId='" + + parentId + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "fragment='" + + fragment + + '\'' + + "}"; + } + + public static class Builder extends HubDocumentBlockV2025R0.Builder { + + protected EnumWrapper type; + + protected final String fragment; + + public Builder(String id, String fragment) { + super(id); + this.fragment = fragment; + } + + public Builder type(HubSectionTitleTextBlockV2025R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + @Override + public Builder parentId(String parentId) { + this.parentId = parentId; + this.markNullableFieldAsSet("parent_id"); + return this; + } + + public HubSectionTitleTextBlockV2025R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + HubSectionTitleTextBlockV2025R0TypeField.SECTION_TITLE); + } + return new HubSectionTitleTextBlockV2025R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubsectiontitletextblockv2025r0/HubSectionTitleTextBlockV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubsectiontitletextblockv2025r0/HubSectionTitleTextBlockV2025R0TypeField.java new file mode 100644 index 000000000..33225e6ee --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubsectiontitletextblockv2025r0/HubSectionTitleTextBlockV2025R0TypeField.java @@ -0,0 +1,62 @@ +package com.box.sdkgen.schemas.v2025r0.hubsectiontitletextblockv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum HubSectionTitleTextBlockV2025R0TypeField implements Valuable { + SECTION_TITLE("section_title"); + + private final String value; + + HubSectionTitleTextBlockV2025R0TypeField(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static class HubSectionTitleTextBlockV2025R0TypeFieldDeserializer + extends JsonDeserializer> { + + public HubSectionTitleTextBlockV2025R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(HubSectionTitleTextBlockV2025R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class HubSectionTitleTextBlockV2025R0TypeFieldSerializer + extends JsonSerializer> { + + public HubSectionTitleTextBlockV2025R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/test/java/com/box/sdkgen/hubdocument/HubDocumentITest.java b/src/test/java/com/box/sdkgen/hubdocument/HubDocumentITest.java new file mode 100644 index 000000000..1c3a5dda7 --- /dev/null +++ b/src/test/java/com/box/sdkgen/hubdocument/HubDocumentITest.java @@ -0,0 +1,48 @@ +package com.box.sdkgen.hubdocument; + +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.hubdocument.GetHubDocumentBlocksV2025R0QueryParams; +import com.box.sdkgen.managers.hubdocument.GetHubDocumentPagesV2025R0QueryParams; +import com.box.sdkgen.schemas.v2025r0.hubcreaterequestv2025r0.HubCreateRequestV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubdocumentblockentryv2025r0.HubDocumentBlockEntryV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubdocumentblocksv2025r0.HubDocumentBlocksV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubdocumentpagesv2025r0.HubDocumentPagesV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubdocumentpagev2025r0.HubDocumentPageV2025R0; +import com.box.sdkgen.schemas.v2025r0.hubv2025r0.HubV2025R0; +import org.junit.jupiter.api.Test; + +public class HubDocumentITest { + + private static final BoxClient client = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); + + @Test + public void testGetHubDocumentPagesAndBlocks() { + String hubTitle = getUuid(); + HubV2025R0 createdHub = + client.getHubs().createHubV2025R0(new HubCreateRequestV2025R0(hubTitle)); + String hubId = createdHub.getId(); + HubDocumentPagesV2025R0 pages = + client + .getHubDocument() + .getHubDocumentPagesV2025R0(new GetHubDocumentPagesV2025R0QueryParams(hubId)); + assert pages.getEntries().size() > 0; + assert convertToString(pages.getType()).equals("document_pages"); + HubDocumentPageV2025R0 firstPage = pages.getEntries().get(0); + assert convertToString(firstPage.getType()).equals("page"); + String pageId = firstPage.getId(); + HubDocumentBlocksV2025R0 blocks = + client + .getHubDocument() + .getHubDocumentBlocksV2025R0(new GetHubDocumentBlocksV2025R0QueryParams(hubId, pageId)); + assert convertToString(blocks.getType()).equals("document_blocks"); + assert blocks.getEntries().size() > 0; + HubDocumentBlockEntryV2025R0 firstBlock = blocks.getEntries().get(0); + assert convertToString(firstBlock.getType()).equals("item_list"); + client.getHubs().deleteHubByIdV2025R0(hubId); + } +} From b4a9c5804674f9296344fafafe40d1eefab651e1 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 1 Apr 2026 14:31:32 +0200 Subject: [PATCH 100/148] chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] (#1772) Co-authored-by: box-sdk-build --- .codegen.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index d4966e1c0..a5bd8423a 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "e77f966", "specHash": "c8e3a85", "version": "10.6.0" } +{ "engineHash": "8a22201", "specHash": "f8e0d99", "version": "10.6.0" } From 8e474cff30a0337db8d278b8da0236ec15d3d706 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 1 Apr 2026 18:41:33 +0200 Subject: [PATCH 101/148] chore: release version 10.7.0 (#1774) --- .codegen.json | 2 +- CHANGELOG.md | 19 +++++++++++++++++++ build.gradle | 2 +- .../sdkgen/networking/version/Version.java | 2 +- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index a5bd8423a..2f16d486f 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "8a22201", "specHash": "f8e0d99", "version": "10.6.0" } +{ "engineHash": "8a22201", "specHash": "f8e0d99", "version": "10.7.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 523b59285..97e56ada7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,25 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [10.7.0](https://github.com/box/box-java-sdk/compare/v10.6.0...v10.7.0) (2026-04-01) + + +### ⚠ BREAKING CHANGES + +* Correct search content type 'tags' to match API (box/box-openapi#591) (#1766) +* Align `LegalHoldPolicyAssignedItem` with API (box/box-openapi#1554) (box/box-openapi#590) (#1762) + +### Bug Fixes + +* Align `LegalHoldPolicyAssignedItem` with API (box/box-openapi[#1554](https://github.com/box/box-java-sdk/issues/1554)) (box/box-openapi[#590](https://github.com/box/box-java-sdk/issues/590)) ([#1762](https://github.com/box/box-java-sdk/issues/1762)) ([8f82b46](https://github.com/box/box-java-sdk/commit/8f82b46afe978342fb93af6ad31006342a1f5b5a)) +* Correct search content type 'tags' to match API (box/box-openapi[#591](https://github.com/box/box-java-sdk/issues/591)) ([#1766](https://github.com/box/box-java-sdk/issues/1766)) ([52b408e](https://github.com/box/box-java-sdk/commit/52b408ec649dd7d36d3ecc6f2506f34afde644bd)) + + +### New Features and Enhancements + +* Add `reference` to `AI` and `parent_id` to `HubsItems` (box/box-openapi[#588](https://github.com/box/box-java-sdk/issues/588)) ([#1741](https://github.com/box/box-java-sdk/issues/1741)) ([fccccb7](https://github.com/box/box-java-sdk/commit/fccccb766d961e9badd1cde274595e07ba88b7a2)) +* Support Hub Document API (box/box-codegen[#930](https://github.com/box/box-java-sdk/issues/930)) ([#1767](https://github.com/box/box-java-sdk/issues/1767)) ([8b2ef9f](https://github.com/box/box-java-sdk/commit/8b2ef9f003b76f88ea0481a0539efad38ae63a3b)) + ## [10.6.0](https://github.com/box/box-java-sdk/compare/v10.5.0...v10.6.0) (2026-03-18) diff --git a/build.gradle b/build.gradle index b7a4a0c35..faca2399e 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ plugins { } group = "com.box" archivesBaseName = "box-java-sdk" -version = "10.6.0" +version = "10.7.0" java { sourceCompatibility = JavaVersion.toVersion(libraryJavaVersion) targetCompatibility = JavaVersion.toVersion(libraryJavaVersion) diff --git a/src/main/java/com/box/sdkgen/networking/version/Version.java b/src/main/java/com/box/sdkgen/networking/version/Version.java index 25d0a58f3..036d81f2b 100644 --- a/src/main/java/com/box/sdkgen/networking/version/Version.java +++ b/src/main/java/com/box/sdkgen/networking/version/Version.java @@ -3,6 +3,6 @@ public class Version { public static String getVersion() { - return "10.6.0"; + return "10.7.0"; } } From 31f4b043116fb6ffde0834593fb876a636678346 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 8 Apr 2026 11:27:56 +0200 Subject: [PATCH 102/148] fix(boxsdkgen)!: Update `retentionLength` field to accept both string and integer (box/box-codegen#932) (#1776) --- .codegen.json | 2 +- ...gentDefaultConfigQueryParamsModeField.java | 2 + ...orizeUserQueryParamsResponseTypeField.java | 2 + ...lassificationRequestBodyFieldKeyField.java | 2 + .../AddClassificationRequestBodyOpField.java | 2 + ...onTemplateRequestBodyDisplayNameField.java | 2 + ...lateRequestBodyFieldsDisplayNameField.java | 2 + ...tionTemplateRequestBodyFieldsKeyField.java | 2 + ...ionTemplateRequestBodyFieldsTypeField.java | 2 + ...ficationTemplateRequestBodyScopeField.java | 2 + ...onTemplateRequestBodyTemplateKeyField.java | 2 + ...lassificationRequestBodyFieldKeyField.java | 2 + ...pdateClassificationRequestBodyOpField.java | 2 + ...itelistEntryRequestBodyDirectionField.java | 2 + ...CreateCommentRequestBodyItemTypeField.java | 2 + ...evicePinnersQueryParamsDirectionField.java | 2 + ...tEventStreamQueryParamsEventTypeField.java | 2 + ...EventStreamQueryParamsStreamTypeField.java | 2 + .../GetEventsQueryParamsEventTypeField.java | 2 + .../GetEventsQueryParamsStreamTypeField.java | 2 + ...lassificationOnFileRequestBodyOpField.java | 2 + ...ssificationOnFileRequestBodyPathField.java | 2 + .../CreateFileMetadataByIdScope.java | 2 + .../DeleteFileMetadataByIdScope.java | 2 + .../GetFileMetadataByIdScope.java | 2 + ...ateFileMetadataByIdRequestBodyOpField.java | 2 + .../UpdateFileMetadataByIdScope.java | 2 + .../files/GetFileThumbnailByIdExtension.java | 2 + .../files/GetFileThumbnailUrlExtension.java | 2 + ...ateFileByIdRequestBodyLockAccessField.java | 2 + ...equestBodyPermissionsCanDownloadField.java | 2 + ...eByIdRequestBodySharedLinkAccessField.java | 2 + ...ionsQueryParamsDispositionActionField.java | 2 + ...romoteFileVersionRequestBodyTypeField.java | 2 + ...rmarkRequestBodyWatermarkImprintField.java | 2 + ...ssificationOnFolderRequestBodyOpField.java | 2 + ...ificationOnFolderRequestBodyPathField.java | 2 + .../CreateFolderMetadataByIdScope.java | 2 + .../DeleteFolderMetadataByIdScope.java | 2 + .../GetFolderMetadataByIdScope.java | 2 + ...eFolderMetadataByIdRequestBodyOpField.java | 2 + .../UpdateFolderMetadataByIdScope.java | 2 + ...questBodyFolderUploadEmailAccessField.java | 2 + ...CreateFolderRequestBodySyncStateField.java | 2 + ...etFolderByIdQueryParamsDirectionField.java | 2 + .../GetFolderByIdQueryParamsSortField.java | 2 + ...tFolderItemsQueryParamsDirectionField.java | 2 + .../GetFolderItemsQueryParamsSortField.java | 2 + ...questBodyFolderUploadEmailAccessField.java | 2 + ...rByIdRequestBodySharedLinkAccessField.java | 2 + ...teFolderByIdRequestBodySyncStateField.java | 2 + ...rmarkRequestBodyWatermarkImprintField.java | 2 + ...roupRequestBodyInvitabilityLevelField.java | 2 + ...equestBodyMemberViewabilityLevelField.java | 2 + ...ByIdRequestBodyInvitabilityLevelField.java | 2 + ...equestBodyMemberViewabilityLevelField.java | 2 + ...eHubsV2025R0QueryParamsDirectionField.java | 2 + ...tHubsV2025R0QueryParamsDirectionField.java | 2 + ...ionMappingQueryParamsBoxItemTypeField.java | 2 + ...appingQueryParamsPartnerItemTypeField.java | 2 + ...ionMappingQueryParamsBoxItemTypeField.java | 2 + ...appingQueryParamsPartnerItemTypeField.java | 2 + ...ssignmentRequestBodyAssignToTypeField.java | 2 + ...signmentsQueryParamsAssignToTypeField.java | 2 + ...tCollaborationsQueryParamsStatusField.java | 2 + ...teGroupMembershipRequestBodyRoleField.java | 2 + ...oupMembershipByIdRequestBodyRoleField.java | 2 + ...icyRequestBodyConflictResolutionField.java | 2 + ...ataCascadePolicyRequestBodyScopeField.java | 2 + ...ataTemplateRequestBodyFieldsTypeField.java | 2 + .../DeleteMetadataTemplateScope.java | 2 + .../GetMetadataTemplateScope.java | 2 + ...ateMetadataTemplateRequestBodyOpField.java | 2 + .../UpdateMetadataTemplateScope.java | 2 + .../CreateRetentionPolicyRequestBody.java | 19 ++++- ...licyRequestBodyDispositionActionField.java | 2 + ...ntionPolicyRequestBodyPolicyTypeField.java | 2 + ...PolicyRequestBodyRetentionLengthField.java | 70 +++++++++++++++++++ ...onPolicyRequestBodyRetentionTypeField.java | 2 + ...ionPoliciesQueryParamsPolicyTypeField.java | 2 + .../UpdateRetentionPolicyByIdRequestBody.java | 19 ++++- ...cyByIdRequestBodyRetentionLengthField.java | 70 +++++++++++++++++++ ...ssignmentRequestBodyAssignToTypeField.java | 2 + ...PolicyAssignmentsQueryParamsTypeField.java | 2 + ...orContentQueryParamsContentTypesField.java | 2 + ...chForContentQueryParamsDirectionField.java | 2 + ...SearchForContentQueryParamsScopeField.java | 2 + .../SearchForContentQueryParamsSortField.java | 2 + ...orContentQueryParamsTrashContentField.java | 2 + .../SearchForContentQueryParamsTypeField.java | 2 + ...oFileRequestBodySharedLinkAccessField.java | 2 + ...nFileRequestBodySharedLinkAccessField.java | 2 + ...olderRequestBodySharedLinkAccessField.java | 2 + ...olderRequestBodySharedLinkAccessField.java | 2 + ...bLinkRequestBodySharedLinkAccessField.java | 2 + ...bLinkRequestBodySharedLinkAccessField.java | 2 + ...onBarrierStatusRequestBodyStatusField.java | 2 + ...eldInformationBarrierSegmentTypeField.java | 2 + ...rierSegmentMemberRequestBodyTypeField.java | 2 + ...RequestBodyRestrictedSegmentTypeField.java | 2 + ...eldInformationBarrierSegmentTypeField.java | 2 + ...egmentRestrictionRequestBodyTypeField.java | 2 + ...llCardsOnFileRequestBodyFileTypeField.java | 2 + ...OnFileRequestBodyFileVersionTypeField.java | 2 + ...killCardsOnFileRequestBodyStatusField.java | 2 + ...BoxSkillCardsOnFileRequestBodyOpField.java | 2 + ...ignmentRequestBodyAssignedToTypeField.java | 2 + ...mentRequestBodyStoragePolicyTypeField.java | 2 + ...nmentsQueryParamsResolvedForTypeField.java | 2 + ...ByIdRequestBodyStoragePolicyTypeField.java | 2 + ...askAssignmentRequestBodyTaskTypeField.java | 2 + ...ntByIdRequestBodyResolutionStateField.java | 2 + .../CreateTaskRequestBodyActionField.java | 2 + ...ateTaskRequestBodyCompletionRuleField.java | 2 + .../CreateTaskRequestBodyItemTypeField.java | 2 + .../UpdateTaskByIdRequestBodyActionField.java | 2 + ...askByIdRequestBodyCompletionRuleField.java | 2 + ...eTermsOfServiceRequestBodyStatusField.java | 2 + ...TermsOfServiceRequestBodyTosTypeField.java | 2 + ...TermsOfServiceQueryParamsTosTypeField.java | 2 + ...msOfServiceByIdRequestBodyStatusField.java | 2 + ...eStatusForUserRequestBodyTosTypeField.java | 2 + ...StatusForUserRequestBodyUserTypeField.java | 2 + ...TrashedItemsQueryParamsDirectionField.java | 2 + .../GetTrashedItemsQueryParamsSortField.java | 2 + ...ationRequestBodyAccessibleByTypeField.java | 2 + ...CollaborationRequestBodyItemTypeField.java | 2 + ...eateCollaborationRequestBodyRoleField.java | 2 + ...CollaborationByIdRequestBodyRoleField.java | 2 + ...llaborationByIdRequestBodyStatusField.java | 2 + .../users/CreateUserRequestBodyRoleField.java | 2 + .../CreateUserRequestBodyStatusField.java | 2 + .../GetUsersQueryParamsUserTypeField.java | 2 + .../UpdateUserByIdRequestBodyRoleField.java | 2 + .../UpdateUserByIdRequestBodyStatusField.java | 2 + ...eateWebhookRequestBodyTargetTypeField.java | 2 + ...CreateWebhookRequestBodyTriggersField.java | 2 + ...WebhookByIdRequestBodyTargetTypeField.java | 2 + ...teWebhookByIdRequestBodyTriggersField.java | 2 + ...kByIdRequestBodySharedLinkAccessField.java | 2 + ...tartWorkflowRequestBodyFilesTypeField.java | 2 + ...artWorkflowRequestBodyFolderTypeField.java | 2 + .../StartWorkflowRequestBodyTypeField.java | 2 + .../fetchoptions/ResponseFormat.java | 2 + .../BoxVersionHeaderV2025R0.java | 2 + .../AccessTokenIssuedTokenTypeField.java | 2 + .../AccessTokenTokenTypeField.java | 2 + .../aiagentask/AiAgentAskTypeField.java | 2 + .../AiAgentExtractTypeField.java | 2 + .../AiAgentExtractStructuredTypeField.java | 2 + .../AiAgentReferenceTypeField.java | 2 + .../AiAgentTextGenTypeField.java | 2 + .../sdkgen/schemas/aiask/AiAskModeField.java | 2 + .../aicitation/AiCitationTypeField.java | 2 + ...ctStructuredMetadataTemplateTypeField.java | 2 + .../schemas/aiitemask/AiItemAskTypeField.java | 2 + .../aiitembase/AiItemBaseTypeField.java | 2 + .../AiLlmEndpointParamsAwsTypeField.java | 2 + .../AiLlmEndpointParamsGoogleTypeField.java | 2 + .../AiLlmEndpointParamsIbmTypeField.java | 2 + .../AiLlmEndpointParamsOpenAiTypeField.java | 2 + .../AiSingleAgentResponseTypeField.java | 2 + .../AiStudioAgentAskTypeField.java | 2 + .../AiStudioAgentAskResponseTypeField.java | 2 + .../AiStudioAgentExtractTypeField.java | 2 + ...AiStudioAgentExtractResponseTypeField.java | 2 + .../AiStudioAgentTextGenTypeField.java | 2 + ...AiStudioAgentTextGenResponseTypeField.java | 2 + .../aitextgen/AiTextGenItemsTypeField.java | 2 + .../schemas/appitem/AppItemTypeField.java | 2 + .../AppItemAssociationTypeField.java | 2 + .../AppItemEventSourceTypeField.java | 2 + .../ClassificationTemplateField.java | 2 + ...lassificationTemplateDisplayNameField.java | 2 + ...icationTemplateFieldsDisplayNameField.java | 2 + .../ClassificationTemplateFieldsKeyField.java | 2 + ...ClassificationTemplateFieldsTypeField.java | 2 + ...lassificationTemplateTemplateKeyField.java | 2 + .../ClassificationTemplateTypeField.java | 2 + .../clienterror/ClientErrorCodeField.java | 2 + .../clienterror/ClientErrorTypeField.java | 2 + .../collaboration/CollaborationRoleField.java | 2 + .../CollaborationStatusField.java | 2 + .../collaboration/CollaborationTypeField.java | 2 + ...aborationAllowlistEntryDirectionField.java | 2 + ...tionAllowlistEntryEnterpriseTypeField.java | 2 + .../CollaborationAllowlistEntryTypeField.java | 2 + ...owlistExemptTargetEnterpriseTypeField.java | 2 + ...orationAllowlistExemptTargetTypeField.java | 2 + .../CollaboratorVariableTypeField.java | 2 + ...CollaboratorVariableVariableTypeField.java | 2 + ...boratorVariableVariableValueTypeField.java | 2 + .../CollectionCollectionTypeField.java | 2 + .../collection/CollectionNameField.java | 2 + .../collection/CollectionTypeField.java | 2 + .../CollectionsOrderDirectionField.java | 2 + .../commentbase/CommentBaseTypeField.java | 2 + .../comments/CommentsOrderDirectionField.java | 2 + .../CompletionRuleVariableTypeField.java | 2 + ...mpletionRuleVariableVariableTypeField.java | 2 + ...pletionRuleVariableVariableValueField.java | 2 + .../createaiagent/CreateAiAgentTypeField.java | 2 + .../devicepinner/DevicePinnerTypeField.java | 2 + .../DevicePinnersOrderByField.java | 2 + .../DevicePinnersOrderDirectionField.java | 2 + .../emailalias/EmailAliasTypeField.java | 2 + .../EnterpriseBaseTypeField.java | 2 + .../schemas/event/EventEventTypeField.java | 2 + .../eventsource/EventSourceItemTypeField.java | 2 + .../schemas/file/FileItemStatusField.java | 2 + .../file/FileSharedLinkAccessField.java | 2 + .../FileSharedLinkEffectiveAccessField.java | 2 + ...ileSharedLinkEffectivePermissionField.java | 2 + .../schemas/filebase/FileBaseTypeField.java | 2 + .../FileFullAllowedInviteeRolesField.java | 2 + ...leFullExpiringEmbedLinkTokenTypeField.java | 2 + .../filefull/FileFullLockAppTypeField.java | 2 + .../filefull/FileFullLockTypeField.java | 2 + ...epresentationsEntriesStatusStateField.java | 2 + ...eFullSharedLinkPermissionOptionsField.java | 2 + .../filerequest/FileRequestStatusField.java | 2 + .../filerequest/FileRequestTypeField.java | 2 + ...FileRequestCopyRequestFolderTypeField.java | 2 + .../FileRequestUpdateRequestStatusField.java | 2 + .../FileVersionBaseTypeField.java | 2 + .../FileVersionLegalHoldTypeField.java | 2 + .../FileVersionRetentionTypeField.java | 2 + .../FileVersionsOrderDirectionField.java | 2 + .../FolderFolderUploadEmailAccessField.java | 2 + .../schemas/folder/FolderItemStatusField.java | 2 + .../folder/FolderSharedLinkAccessField.java | 2 + .../FolderSharedLinkEffectiveAccessField.java | 2 + ...derSharedLinkEffectivePermissionField.java | 2 + .../folderbase/FolderBaseTypeField.java | 2 + .../FolderFullAllowedInviteeRolesField.java | 2 + ...ullAllowedSharedLinkAccessLevelsField.java | 2 + .../folderfull/FolderFullSyncStateField.java | 2 + .../FolderReferenceTypeField.java | 2 + .../schemas/groupbase/GroupBaseTypeField.java | 2 + .../GroupFullInvitabilityLevelField.java | 2 + .../GroupFullMemberViewabilityLevelField.java | 2 + .../GroupMembershipRoleField.java | 2 + .../GroupMembershipTypeField.java | 2 + .../GroupMembershipsOrderDirectionField.java | 2 + .../groupmini/GroupMiniGroupTypeField.java | 2 + .../groups/GroupsOrderDirectionField.java | 2 + ...ntegrationMappingIntegrationTypeField.java | 2 + .../IntegrationMappingBaseTypeField.java | 2 + ...tegrationMappingBoxItemSlackTypeField.java | 2 + ...ationMappingPartnerItemSlackTypeField.java | 2 + ...ationMappingPartnerItemTeamsTypeField.java | 2 + ...artnerItemTeamsCreateRequestTypeField.java | 2 + ...ationMappingTeamsIntegrationTypeField.java | 2 + .../invite/InviteInvitedToTypeField.java | 2 + .../schemas/invite/InviteTypeField.java | 2 + .../items/ItemsOrderDirectionField.java | 2 + ...emsOffsetPaginatedOrderDirectionField.java | 2 + .../KeywordSkillCardInvocationTypeField.java | 2 + .../KeywordSkillCardSkillCardTypeField.java | 2 + .../KeywordSkillCardSkillTypeField.java | 2 + .../KeywordSkillCardTypeField.java | 2 + .../LegalHoldPolicyStatusField.java | 2 + .../LegalHoldPolicyAssignedItemTypeField.java | 2 + ...egalHoldPolicyAssignmentBaseTypeField.java | 2 + .../LegalHoldPolicyMiniTypeField.java | 2 + ...CascadePolicyOwnerEnterpriseTypeField.java | 2 + .../MetadataCascadePolicyParentTypeField.java | 2 + .../MetadataCascadePolicyTypeField.java | 2 + .../MetadataFilterScopeField.java | 2 + .../MetadataQueryOrderByDirectionField.java | 2 + .../MetadataTemplateFieldsTypeField.java | 2 + .../MetadataTemplateTypeField.java | 2 + .../PostOAuth2TokenActorTokenTypeField.java | 2 + .../PostOAuth2TokenBoxSubjectTypeField.java | 2 + .../PostOAuth2TokenGrantTypeField.java | 2 + .../PostOAuth2TokenSubjectTokenTypeField.java | 2 + ...TokenRefreshAccessTokenGrantTypeField.java | 2 + .../RecentItemInteractionTypeField.java | 2 + .../ResourceScopeScopeField.java | 2 + .../RetentionPolicyPolicyTypeField.java | 2 + .../RetentionPolicyRetentionTypeField.java | 2 + .../RetentionPolicyStatusField.java | 2 + ...onPolicyAssignmentAssignedToTypeField.java | 2 + .../RetentionPolicyAssignmentTypeField.java | 2 + .../RetentionPolicyBaseTypeField.java | 2 + ...ntionPolicyMiniDispositionActionField.java | 2 + .../rolevariable/RoleVariableTypeField.java | 2 + .../RoleVariableVariableTypeField.java | 2 + .../RoleVariableVariableValueField.java | 2 + .../searchresults/SearchResultsTypeField.java | 2 + ...SearchResultsWithSharedLinksTypeField.java | 2 + .../ShieldInformationBarrierStatusField.java | 2 + .../ShieldInformationBarrierTypeField.java | 2 + ...ShieldInformationBarrierBaseTypeField.java | 2 + ...ldInformationBarrierReportStatusField.java | 2 + ...InformationBarrierReportBaseTypeField.java | 2 + ...eldInformationBarrierSegmentTypeField.java | 2 + ...eldInformationBarrierSegmentTypeField.java | 2 + ...tionBarrierSegmentMemberBaseTypeField.java | 2 + ...arrierSegmentRestrictionBaseTypeField.java | 2 + ...rictionMiniRestrictedSegmentTypeField.java | 2 + ...eldInformationBarrierSegmentTypeField.java | 2 + .../signrequest/SignRequestStatusField.java | 2 + .../signrequest/SignRequestTypeField.java | 2 + ...questCreateRequestSignatureColorField.java | 2 + .../SignRequestCreateSignerRoleField.java | 2 + ...nRequestSignerSignerDecisionTypeField.java | 2 + ...ignRequestSignerInputContentTypeField.java | 2 + .../SignRequestSignerInputTypeField.java | 2 + ...utCustomValidationValidationTypeField.java | 2 + ...DateAsiaValidationValidationTypeField.java | 2 + ...utDateEuValidationValidationTypeField.java | 2 + ...tDateIsoValidationValidationTypeField.java | 2 + ...utDateUsValidationValidationTypeField.java | 2 + ...putEmailValidationValidationTypeField.java | 2 + ...ithCommaValidationValidationTypeField.java | 2 + ...thPeriodValidationValidationTypeField.java | 2 + ...InputSsnValidationValidationTypeField.java | 2 + ...nputZip4ValidationValidationTypeField.java | 2 + ...InputZipValidationValidationTypeField.java | 2 + ...emplateAdditionalInfoNonEditableField.java | 2 + ...ateAdditionalInfoRequiredSignersField.java | 2 + .../signtemplate/SignTemplateTypeField.java | 2 + .../StatusSkillCardInvocationTypeField.java | 2 + .../StatusSkillCardSkillCardTypeField.java | 2 + .../StatusSkillCardSkillTypeField.java | 2 + .../StatusSkillCardStatusCodeField.java | 2 + .../StatusSkillCardTypeField.java | 2 + .../StoragePolicyAssignmentTypeField.java | 2 + .../StoragePolicyMiniTypeField.java | 2 + .../sdkgen/schemas/task/TaskActionField.java | 2 + .../schemas/task/TaskCompletionRuleField.java | 2 + .../sdkgen/schemas/task/TaskTypeField.java | 2 + .../TaskAssignmentResolutionStateField.java | 2 + .../TaskAssignmentTypeField.java | 2 + .../TemplateSignerRoleField.java | 2 + .../TemplateSignerInputContentTypeField.java | 2 + .../TemplateSignerInputTypeField.java | 2 + .../TermsOfServiceEnterpriseTypeField.java | 2 + .../TermsOfServiceStatusField.java | 2 + .../TermsOfServiceTosTypeField.java | 2 + .../TermsOfServiceBaseTypeField.java | 2 + .../TermsOfServiceUserStatusTypeField.java | 2 + .../TimelineSkillCardInvocationTypeField.java | 2 + .../TimelineSkillCardSkillCardTypeField.java | 2 + .../TimelineSkillCardSkillTypeField.java | 2 + .../TimelineSkillCardTypeField.java | 2 + .../trackingcode/TrackingCodeTypeField.java | 2 + ...ranscriptSkillCardInvocationTypeField.java | 2 + ...TranscriptSkillCardSkillCardTypeField.java | 2 + .../TranscriptSkillCardSkillTypeField.java | 2 + .../TranscriptSkillCardTypeField.java | 2 + .../trashfile/TrashFileItemStatusField.java | 2 + ...ashFilePathCollectionEntriesTypeField.java | 2 + .../schemas/trashfile/TrashFileTypeField.java | 2 + .../TrashFileRestoredItemStatusField.java | 2 + .../TrashFileRestoredTypeField.java | 2 + .../TrashFolderItemStatusField.java | 2 + ...hFolderPathCollectionEntriesTypeField.java | 2 + .../trashfolder/TrashFolderTypeField.java | 2 + .../TrashFolderRestoredItemStatusField.java | 2 + .../TrashFolderRestoredTypeField.java | 2 + .../TrashWebLinkItemStatusField.java | 2 + ...WebLinkPathCollectionEntriesTypeField.java | 2 + .../trashweblink/TrashWebLinkTypeField.java | 2 + .../TrashWebLinkRestoredItemStatusField.java | 2 + .../TrashWebLinkRestoredTypeField.java | 2 + .../UploadPartsOrderDirectionField.java | 2 + .../uploadsession/UploadSessionTypeField.java | 2 + .../sdkgen/schemas/user/UserStatusField.java | 2 + .../schemas/userbase/UserBaseTypeField.java | 2 + .../userfull/UserFullEnterpriseTypeField.java | 2 + .../schemas/userfull/UserFullRoleField.java | 2 + .../users/UsersOrderDirectionField.java | 2 + .../ArchiveV2025R0TypeField.java | 2 + .../ClientErrorV2025R0CodeField.java | 2 + .../ClientErrorV2025R0TypeField.java | 2 + .../DocGenBatchBaseV2025R0TypeField.java | 2 + ...uestV2025R0DestinationFolderTypeField.java | 2 + .../DocGenJobBaseV2025R0TypeField.java | 2 + .../DocGenJobV2025R0StatusField.java | 2 + .../DocGenTagV2025R0TagTypeField.java | 2 + ...terpriseConfigurationV2025R0TypeField.java | 2 + .../EnterpriseReferenceV2025R0TypeField.java | 2 + .../FileReferenceV2025R0TypeField.java | 2 + .../FileVersionBaseV2025R0TypeField.java | 2 + .../FolderReferenceV2025R0TypeField.java | 2 + .../GroupBaseV2025R0TypeField.java | 2 + .../GroupMiniV2025R0GroupTypeField.java | 2 + .../HubBaseV2025R0TypeField.java | 2 + ...ubCalloutBoxTextBlockV2025R0TypeField.java | 2 + ...ationCreateRequestV2025R0HubTypeField.java | 2 + .../HubCollaborationV2025R0StatusField.java | 2 + .../HubCollaborationV2025R0TypeField.java | 2 + .../HubDividerBlockV2025R0TypeField.java | 2 + .../HubDocumentBlocksV2025R0TypeField.java | 2 + .../HubDocumentPagesV2025R0TypeField.java | 2 + .../HubItemListBlockV2025R0TypeField.java | 2 + .../HubItemOperationV2025R0ActionField.java | 2 + .../HubItemV2025R0TypeField.java | 2 + ...HubParagraphTextBlockV2025R0TypeField.java | 2 + ...SectionTitleTextBlockV2025R0TypeField.java | 2 + ...eldListContentCountryV2025R0TypeField.java | 2 + ...ieldListContentDomainV2025R0TypeField.java | 2 + ...hieldListContentEmailV2025R0TypeField.java | 2 + ...istContentIntegrationV2025R0TypeField.java | 2 + .../ShieldListContentIpV2025R0TypeField.java | 2 + .../ShieldListMiniV2025R0TypeField.java | 2 + .../ShieldRuleItemV2025R0PriorityField.java | 2 + .../ShieldRuleItemV2025R0TypeField.java | 2 + .../TermsOfServiceBaseV2025R0TypeField.java | 2 + .../UserBaseV2025R0TypeField.java | 2 + .../UserOrGroupReferenceV2025R0TypeField.java | 2 + .../UserReferenceV2025R0TypeField.java | 2 + .../WeblinkReferenceV2025R0TypeField.java | 2 + .../schemas/webhook/WebhookTriggersField.java | 2 + .../WebhookMiniTargetTypeField.java | 2 + .../webhookmini/WebhookMiniTypeField.java | 2 + .../weblink/WebLinkItemStatusField.java | 2 + .../weblink/WebLinkSharedLinkAccessField.java | 2 + ...WebLinkSharedLinkEffectiveAccessField.java | 2 + ...inkSharedLinkEffectivePermissionField.java | 2 + .../weblinkbase/WebLinkBaseTypeField.java | 2 + .../WorkflowFlowsOutcomesActionTypeField.java | 2 + ...lowsOutcomesIfRejectedActionTypeField.java | 2 + ...kflowFlowsOutcomesIfRejectedTypeField.java | 2 + .../WorkflowFlowsOutcomesTypeField.java | 2 + ...kflowFlowsTriggerScopeObjectTypeField.java | 2 + .../WorkflowFlowsTriggerScopeTypeField.java | 2 + .../WorkflowFlowsTriggerTriggerTypeField.java | 2 + .../WorkflowFlowsTriggerTypeField.java | 2 + .../workflow/WorkflowFlowsTypeField.java | 2 + .../workflowmini/WorkflowMiniTypeField.java | 2 + .../ZipDownloadNameConflictsTypeField.java | 2 + .../ZipDownloadRequestItemsTypeField.java | 2 + .../ZipDownloadStatusStateField.java | 2 + 436 files changed, 1035 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyRetentionLengthField.java create mode 100644 src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdRequestBodyRetentionLengthField.java diff --git a/.codegen.json b/.codegen.json index 2f16d486f..bb5617f0c 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "8a22201", "specHash": "f8e0d99", "version": "10.7.0" } +{ "engineHash": "37c0986", "specHash": "f8e0d99", "version": "10.7.0" } diff --git a/src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigQueryParamsModeField.java b/src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigQueryParamsModeField.java index beaa5fde4..8688d4549 100644 --- a/src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigQueryParamsModeField.java +++ b/src/main/java/com/box/sdkgen/managers/ai/GetAiAgentDefaultConfigQueryParamsModeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -23,6 +24,7 @@ public enum GetAiAgentDefaultConfigQueryParamsModeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserQueryParamsResponseTypeField.java b/src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserQueryParamsResponseTypeField.java index 1a7ebc675..8cccc8907 100644 --- a/src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserQueryParamsResponseTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/authorization/AuthorizeUserQueryParamsResponseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AuthorizeUserQueryParamsResponseTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyFieldKeyField.java b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyFieldKeyField.java index 900a3ad63..eac3bb1c8 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyFieldKeyField.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyFieldKeyField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AddClassificationRequestBodyFieldKeyField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyOpField.java b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyOpField.java index 5d4392b18..2909ab94a 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyOpField.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/AddClassificationRequestBodyOpField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AddClassificationRequestBodyOpField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyDisplayNameField.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyDisplayNameField.java index d294f61cb..70ad32013 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyDisplayNameField.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyDisplayNameField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CreateClassificationTemplateRequestBodyDisplayNameField implements V this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsDisplayNameField.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsDisplayNameField.java index 027bcf536..81ffa8fdb 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsDisplayNameField.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsDisplayNameField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CreateClassificationTemplateRequestBodyFieldsDisplayNameField implem this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsKeyField.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsKeyField.java index f15c00bd0..ea903eb94 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsKeyField.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsKeyField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CreateClassificationTemplateRequestBodyFieldsKeyField implements Val this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsTypeField.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsTypeField.java index 165b0bb97..0f0ed2980 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyFieldsTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CreateClassificationTemplateRequestBodyFieldsTypeField implements Va this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyScopeField.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyScopeField.java index 788ad1896..a361c2b4d 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyScopeField.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyScopeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CreateClassificationTemplateRequestBodyScopeField implements Valuabl this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyTemplateKeyField.java b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyTemplateKeyField.java index e8f604c09..ba32a0e1c 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyTemplateKeyField.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/CreateClassificationTemplateRequestBodyTemplateKeyField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CreateClassificationTemplateRequestBodyTemplateKeyField implements V this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyFieldKeyField.java b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyFieldKeyField.java index 92b2c1e90..3a6e2357c 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyFieldKeyField.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyFieldKeyField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum UpdateClassificationRequestBodyFieldKeyField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyOpField.java b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyOpField.java index 96ec68dc6..52cb1fdc4 100644 --- a/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyOpField.java +++ b/src/main/java/com/box/sdkgen/managers/classifications/UpdateClassificationRequestBodyOpField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum UpdateClassificationRequestBodyOpField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryRequestBodyDirectionField.java b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryRequestBodyDirectionField.java index 3ddf5de3d..cae02b6b9 100644 --- a/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryRequestBodyDirectionField.java +++ b/src/main/java/com/box/sdkgen/managers/collaborationallowlistentries/CreateCollaborationWhitelistEntryRequestBodyDirectionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum CreateCollaborationWhitelistEntryRequestBodyDirectionField implement this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/comments/CreateCommentRequestBodyItemTypeField.java b/src/main/java/com/box/sdkgen/managers/comments/CreateCommentRequestBodyItemTypeField.java index bbc3394a5..8521b5ad3 100644 --- a/src/main/java/com/box/sdkgen/managers/comments/CreateCommentRequestBodyItemTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/comments/CreateCommentRequestBodyItemTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum CreateCommentRequestBodyItemTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersQueryParamsDirectionField.java b/src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersQueryParamsDirectionField.java index 37e72dd56..cce1c0d63 100644 --- a/src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersQueryParamsDirectionField.java +++ b/src/main/java/com/box/sdkgen/managers/devicepinners/GetEnterpriseDevicePinnersQueryParamsDirectionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum GetEnterpriseDevicePinnersQueryParamsDirectionField implements Valua this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParamsEventTypeField.java b/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParamsEventTypeField.java index 9658150d4..3bfac1950 100644 --- a/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParamsEventTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParamsEventTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -134,6 +135,7 @@ public enum GetEventStreamQueryParamsEventTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParamsStreamTypeField.java b/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParamsStreamTypeField.java index 6521cd10e..06b4445ab 100644 --- a/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParamsStreamTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParamsStreamTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -24,6 +25,7 @@ public enum GetEventStreamQueryParamsStreamTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParamsEventTypeField.java b/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParamsEventTypeField.java index b5ec4c8e7..9c1149f0c 100644 --- a/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParamsEventTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParamsEventTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -134,6 +135,7 @@ public enum GetEventsQueryParamsEventTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParamsStreamTypeField.java b/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParamsStreamTypeField.java index ccbcfc95f..5531e1547 100644 --- a/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParamsStreamTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParamsStreamTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -24,6 +25,7 @@ public enum GetEventsQueryParamsStreamTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBodyOpField.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBodyOpField.java index 6f9ad0bc2..50db29471 100644 --- a/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBodyOpField.java +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBodyOpField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum UpdateClassificationOnFileRequestBodyOpField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBodyPathField.java b/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBodyPathField.java index 4f9b2fee1..ed1cd6a49 100644 --- a/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBodyPathField.java +++ b/src/main/java/com/box/sdkgen/managers/fileclassifications/UpdateClassificationOnFileRequestBodyPathField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum UpdateClassificationOnFileRequestBodyPathField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/CreateFileMetadataByIdScope.java b/src/main/java/com/box/sdkgen/managers/filemetadata/CreateFileMetadataByIdScope.java index bb9e96199..12a7304cc 100644 --- a/src/main/java/com/box/sdkgen/managers/filemetadata/CreateFileMetadataByIdScope.java +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/CreateFileMetadataByIdScope.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum CreateFileMetadataByIdScope implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/DeleteFileMetadataByIdScope.java b/src/main/java/com/box/sdkgen/managers/filemetadata/DeleteFileMetadataByIdScope.java index 0e8b0e064..c5f1ade58 100644 --- a/src/main/java/com/box/sdkgen/managers/filemetadata/DeleteFileMetadataByIdScope.java +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/DeleteFileMetadataByIdScope.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum DeleteFileMetadataByIdScope implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdScope.java b/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdScope.java index aa0bdc870..15d8bd7a9 100644 --- a/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdScope.java +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/GetFileMetadataByIdScope.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum GetFileMetadataByIdScope implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdRequestBodyOpField.java b/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdRequestBodyOpField.java index d7f9797db..95d418112 100644 --- a/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdRequestBodyOpField.java +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdRequestBodyOpField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -25,6 +26,7 @@ public enum UpdateFileMetadataByIdRequestBodyOpField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdScope.java b/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdScope.java index 51667ce45..023e3a5c7 100644 --- a/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdScope.java +++ b/src/main/java/com/box/sdkgen/managers/filemetadata/UpdateFileMetadataByIdScope.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum UpdateFileMetadataByIdScope implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdExtension.java b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdExtension.java index 2350347cc..0b2b14849 100644 --- a/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdExtension.java +++ b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailByIdExtension.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum GetFileThumbnailByIdExtension implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlExtension.java b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlExtension.java index abf937c09..12dfc1041 100644 --- a/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlExtension.java +++ b/src/main/java/com/box/sdkgen/managers/files/GetFileThumbnailUrlExtension.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum GetFileThumbnailUrlExtension implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyLockAccessField.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyLockAccessField.java index 8bfd9eeb5..b3f1431c4 100644 --- a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyLockAccessField.java +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyLockAccessField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum UpdateFileByIdRequestBodyLockAccessField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyPermissionsCanDownloadField.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyPermissionsCanDownloadField.java index ada919f9c..ace9db025 100644 --- a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyPermissionsCanDownloadField.java +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodyPermissionsCanDownloadField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum UpdateFileByIdRequestBodyPermissionsCanDownloadField implements Valu this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkAccessField.java b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkAccessField.java index 0e5d8a295..97e6b7557 100644 --- a/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkAccessField.java +++ b/src/main/java/com/box/sdkgen/managers/files/UpdateFileByIdRequestBodySharedLinkAccessField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum UpdateFileByIdRequestBodySharedLinkAccessField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsQueryParamsDispositionActionField.java b/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsQueryParamsDispositionActionField.java index 2b51aed21..16c7bdbca 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsQueryParamsDispositionActionField.java +++ b/src/main/java/com/box/sdkgen/managers/fileversionretentions/GetFileVersionRetentionsQueryParamsDispositionActionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum GetFileVersionRetentionsQueryParamsDispositionActionField implements this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionRequestBodyTypeField.java b/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionRequestBodyTypeField.java index dba42a70d..97d688e36 100644 --- a/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionRequestBodyTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/fileversions/PromoteFileVersionRequestBodyTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum PromoteFileVersionRequestBodyTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBodyWatermarkImprintField.java b/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBodyWatermarkImprintField.java index ae1a4630c..27abbebd1 100644 --- a/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBodyWatermarkImprintField.java +++ b/src/main/java/com/box/sdkgen/managers/filewatermarks/UpdateFileWatermarkRequestBodyWatermarkImprintField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum UpdateFileWatermarkRequestBodyWatermarkImprintField implements Valua this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBodyOpField.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBodyOpField.java index 5e155bfae..a749c8aed 100644 --- a/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBodyOpField.java +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBodyOpField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum UpdateClassificationOnFolderRequestBodyOpField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBodyPathField.java b/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBodyPathField.java index 68781753d..3d56223c8 100644 --- a/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBodyPathField.java +++ b/src/main/java/com/box/sdkgen/managers/folderclassifications/UpdateClassificationOnFolderRequestBodyPathField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum UpdateClassificationOnFolderRequestBodyPathField implements Valuable this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/CreateFolderMetadataByIdScope.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/CreateFolderMetadataByIdScope.java index bd8a09b63..b689573d1 100644 --- a/src/main/java/com/box/sdkgen/managers/foldermetadata/CreateFolderMetadataByIdScope.java +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/CreateFolderMetadataByIdScope.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum CreateFolderMetadataByIdScope implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/DeleteFolderMetadataByIdScope.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/DeleteFolderMetadataByIdScope.java index dd775898c..5ca643c4e 100644 --- a/src/main/java/com/box/sdkgen/managers/foldermetadata/DeleteFolderMetadataByIdScope.java +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/DeleteFolderMetadataByIdScope.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum DeleteFolderMetadataByIdScope implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataByIdScope.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataByIdScope.java index 1858f1451..a80820036 100644 --- a/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataByIdScope.java +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/GetFolderMetadataByIdScope.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum GetFolderMetadataByIdScope implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdRequestBodyOpField.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdRequestBodyOpField.java index 8ae448474..dfcc296cb 100644 --- a/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdRequestBodyOpField.java +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdRequestBodyOpField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -25,6 +26,7 @@ public enum UpdateFolderMetadataByIdRequestBodyOpField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdScope.java b/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdScope.java index 9881b6b06..290345e18 100644 --- a/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdScope.java +++ b/src/main/java/com/box/sdkgen/managers/foldermetadata/UpdateFolderMetadataByIdScope.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum UpdateFolderMetadataByIdScope implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodyFolderUploadEmailAccessField.java b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodyFolderUploadEmailAccessField.java index ef7ed841f..62f3e5010 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodyFolderUploadEmailAccessField.java +++ b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodyFolderUploadEmailAccessField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum CreateFolderRequestBodyFolderUploadEmailAccessField implements Valua this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodySyncStateField.java b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodySyncStateField.java index 39510e004..2f657bc6e 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodySyncStateField.java +++ b/src/main/java/com/box/sdkgen/managers/folders/CreateFolderRequestBodySyncStateField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum CreateFolderRequestBodySyncStateField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParamsDirectionField.java b/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParamsDirectionField.java index 0c73fed56..cd1ffa34a 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParamsDirectionField.java +++ b/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParamsDirectionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum GetFolderByIdQueryParamsDirectionField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParamsSortField.java b/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParamsSortField.java index defcf5034..95f6bc59e 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParamsSortField.java +++ b/src/main/java/com/box/sdkgen/managers/folders/GetFolderByIdQueryParamsSortField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -23,6 +24,7 @@ public enum GetFolderByIdQueryParamsSortField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParamsDirectionField.java b/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParamsDirectionField.java index 28a29f090..315c286a4 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParamsDirectionField.java +++ b/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParamsDirectionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum GetFolderItemsQueryParamsDirectionField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParamsSortField.java b/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParamsSortField.java index 3c8250b9f..310848dfe 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParamsSortField.java +++ b/src/main/java/com/box/sdkgen/managers/folders/GetFolderItemsQueryParamsSortField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -23,6 +24,7 @@ public enum GetFolderItemsQueryParamsSortField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyFolderUploadEmailAccessField.java b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyFolderUploadEmailAccessField.java index 939a5c16f..04a998c12 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyFolderUploadEmailAccessField.java +++ b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodyFolderUploadEmailAccessField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum UpdateFolderByIdRequestBodyFolderUploadEmailAccessField implements V this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkAccessField.java b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkAccessField.java index dc466e193..7df3bfc73 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkAccessField.java +++ b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySharedLinkAccessField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum UpdateFolderByIdRequestBodySharedLinkAccessField implements Valuable this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySyncStateField.java b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySyncStateField.java index 75b8e2f6a..72a2bd93f 100644 --- a/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySyncStateField.java +++ b/src/main/java/com/box/sdkgen/managers/folders/UpdateFolderByIdRequestBodySyncStateField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum UpdateFolderByIdRequestBodySyncStateField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBodyWatermarkImprintField.java b/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBodyWatermarkImprintField.java index 797493659..40451ab38 100644 --- a/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBodyWatermarkImprintField.java +++ b/src/main/java/com/box/sdkgen/managers/folderwatermarks/UpdateFolderWatermarkRequestBodyWatermarkImprintField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum UpdateFolderWatermarkRequestBodyWatermarkImprintField implements Val this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/groups/CreateGroupRequestBodyInvitabilityLevelField.java b/src/main/java/com/box/sdkgen/managers/groups/CreateGroupRequestBodyInvitabilityLevelField.java index 6d44cfbb5..e2c31e1ac 100644 --- a/src/main/java/com/box/sdkgen/managers/groups/CreateGroupRequestBodyInvitabilityLevelField.java +++ b/src/main/java/com/box/sdkgen/managers/groups/CreateGroupRequestBodyInvitabilityLevelField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum CreateGroupRequestBodyInvitabilityLevelField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/groups/CreateGroupRequestBodyMemberViewabilityLevelField.java b/src/main/java/com/box/sdkgen/managers/groups/CreateGroupRequestBodyMemberViewabilityLevelField.java index e9cc58559..0001b210a 100644 --- a/src/main/java/com/box/sdkgen/managers/groups/CreateGroupRequestBodyMemberViewabilityLevelField.java +++ b/src/main/java/com/box/sdkgen/managers/groups/CreateGroupRequestBodyMemberViewabilityLevelField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum CreateGroupRequestBodyMemberViewabilityLevelField implements Valuabl this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdRequestBodyInvitabilityLevelField.java b/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdRequestBodyInvitabilityLevelField.java index dcdd3ec86..a8f581f78 100644 --- a/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdRequestBodyInvitabilityLevelField.java +++ b/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdRequestBodyInvitabilityLevelField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum UpdateGroupByIdRequestBodyInvitabilityLevelField implements Valuable this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdRequestBodyMemberViewabilityLevelField.java b/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdRequestBodyMemberViewabilityLevelField.java index ee67d027c..10790feab 100644 --- a/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdRequestBodyMemberViewabilityLevelField.java +++ b/src/main/java/com/box/sdkgen/managers/groups/UpdateGroupByIdRequestBodyMemberViewabilityLevelField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum UpdateGroupByIdRequestBodyMemberViewabilityLevelField implements Val this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0QueryParamsDirectionField.java b/src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0QueryParamsDirectionField.java index 8f615870b..fab07176a 100644 --- a/src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0QueryParamsDirectionField.java +++ b/src/main/java/com/box/sdkgen/managers/hubs/GetEnterpriseHubsV2025R0QueryParamsDirectionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum GetEnterpriseHubsV2025R0QueryParamsDirectionField implements Valuabl this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0QueryParamsDirectionField.java b/src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0QueryParamsDirectionField.java index f0d9c7145..00d655dc0 100644 --- a/src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0QueryParamsDirectionField.java +++ b/src/main/java/com/box/sdkgen/managers/hubs/GetHubsV2025R0QueryParamsDirectionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum GetHubsV2025R0QueryParamsDirectionField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingQueryParamsBoxItemTypeField.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingQueryParamsBoxItemTypeField.java index e07598cda..8fa10b50e 100644 --- a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingQueryParamsBoxItemTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingQueryParamsBoxItemTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum GetSlackIntegrationMappingQueryParamsBoxItemTypeField implements Val this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingQueryParamsPartnerItemTypeField.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingQueryParamsPartnerItemTypeField.java index 81ac49b40..d4878ff1c 100644 --- a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingQueryParamsPartnerItemTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetSlackIntegrationMappingQueryParamsPartnerItemTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum GetSlackIntegrationMappingQueryParamsPartnerItemTypeField implements this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingQueryParamsBoxItemTypeField.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingQueryParamsBoxItemTypeField.java index 7702a7946..7c84b5086 100644 --- a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingQueryParamsBoxItemTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingQueryParamsBoxItemTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum GetTeamsIntegrationMappingQueryParamsBoxItemTypeField implements Val this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingQueryParamsPartnerItemTypeField.java b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingQueryParamsPartnerItemTypeField.java index 374b08af2..fc33b8831 100644 --- a/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingQueryParamsPartnerItemTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/integrationmappings/GetTeamsIntegrationMappingQueryParamsPartnerItemTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum GetTeamsIntegrationMappingQueryParamsPartnerItemTypeField implements this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeField.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeField.java index d52cde112..49c26f791 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -25,6 +26,7 @@ public enum CreateLegalHoldPolicyAssignmentRequestBodyAssignToTypeField implemen this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsQueryParamsAssignToTypeField.java b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsQueryParamsAssignToTypeField.java index 77680c5da..5042a328d 100644 --- a/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsQueryParamsAssignToTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/legalholdpolicyassignments/GetLegalHoldPolicyAssignmentsQueryParamsAssignToTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -25,6 +26,7 @@ public enum GetLegalHoldPolicyAssignmentsQueryParamsAssignToTypeField implements this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsQueryParamsStatusField.java b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsQueryParamsStatusField.java index c9f60db0e..4978a3acf 100644 --- a/src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsQueryParamsStatusField.java +++ b/src/main/java/com/box/sdkgen/managers/listcollaborations/GetCollaborationsQueryParamsStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum GetCollaborationsQueryParamsStatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBodyRoleField.java b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBodyRoleField.java index 4e5615643..e7da9255f 100644 --- a/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBodyRoleField.java +++ b/src/main/java/com/box/sdkgen/managers/memberships/CreateGroupMembershipRequestBodyRoleField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum CreateGroupMembershipRequestBodyRoleField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdRequestBodyRoleField.java b/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdRequestBodyRoleField.java index 603d3a8e4..e9d271f03 100644 --- a/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdRequestBodyRoleField.java +++ b/src/main/java/com/box/sdkgen/managers/memberships/UpdateGroupMembershipByIdRequestBodyRoleField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum UpdateGroupMembershipByIdRequestBodyRoleField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyRequestBodyConflictResolutionField.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyRequestBodyConflictResolutionField.java index 30073c4c4..0efdb580d 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyRequestBodyConflictResolutionField.java +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/ApplyMetadataCascadePolicyRequestBodyConflictResolutionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum ApplyMetadataCascadePolicyRequestBodyConflictResolutionField impleme this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyRequestBodyScopeField.java b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyRequestBodyScopeField.java index d409f05d7..6fc439d38 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyRequestBodyScopeField.java +++ b/src/main/java/com/box/sdkgen/managers/metadatacascadepolicies/CreateMetadataCascadePolicyRequestBodyScopeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum CreateMetadataCascadePolicyRequestBodyScopeField implements Valuable this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsTypeField.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsTypeField.java index 851e8b110..4dd89bbdd 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -25,6 +26,7 @@ public enum CreateMetadataTemplateRequestBodyFieldsTypeField implements Valuable this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/DeleteMetadataTemplateScope.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/DeleteMetadataTemplateScope.java index 3b22fb22a..3a9ce6161 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/DeleteMetadataTemplateScope.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/DeleteMetadataTemplateScope.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum DeleteMetadataTemplateScope implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateScope.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateScope.java index 08a24db1e..f07f08b72 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateScope.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/GetMetadataTemplateScope.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum GetMetadataTemplateScope implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateRequestBodyOpField.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateRequestBodyOpField.java index 6187bd77b..c5cc5b835 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateRequestBodyOpField.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateRequestBodyOpField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -32,6 +33,7 @@ public enum UpdateMetadataTemplateRequestBodyOpField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateScope.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateScope.java index ad42e0eec..d9188d7c3 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateScope.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/UpdateMetadataTemplateScope.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum UpdateMetadataTemplateScope implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBody.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBody.java index 1c35d135a..6c7faecbb 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBody.java @@ -60,7 +60,7 @@ public class CreateRetentionPolicyRequestBody extends SerializableObject { * `policy_type` of `indefinite`, the `retention_length` will also be `indefinite`. */ @JsonProperty("retention_length") - protected String retentionLength; + protected CreateRetentionPolicyRequestBodyRetentionLengthField retentionLength; /** * Specifies the retention type: @@ -172,7 +172,7 @@ public EnumWrapper getPolicyTyp return dispositionAction; } - public String getRetentionLength() { + public CreateRetentionPolicyRequestBodyRetentionLengthField getRetentionLength() { return retentionLength; } @@ -278,7 +278,7 @@ public static class Builder extends NullableFieldTracker { protected final EnumWrapper dispositionAction; - protected String retentionLength; + protected CreateRetentionPolicyRequestBodyRetentionLengthField retentionLength; protected EnumWrapper retentionType; @@ -340,6 +340,19 @@ public Builder description(String description) { } public Builder retentionLength(String retentionLength) { + this.retentionLength = + new CreateRetentionPolicyRequestBodyRetentionLengthField(retentionLength); + return this; + } + + public Builder retentionLength(int retentionLength) { + this.retentionLength = + new CreateRetentionPolicyRequestBodyRetentionLengthField(retentionLength); + return this; + } + + public Builder retentionLength( + CreateRetentionPolicyRequestBodyRetentionLengthField retentionLength) { this.retentionLength = retentionLength; return this; } diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyDispositionActionField.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyDispositionActionField.java index 82d50bfa6..a2f9d75d1 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyDispositionActionField.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyDispositionActionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum CreateRetentionPolicyRequestBodyDispositionActionField implements Va this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyPolicyTypeField.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyPolicyTypeField.java index 750564488..a7a89a2f6 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyPolicyTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyPolicyTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum CreateRetentionPolicyRequestBodyPolicyTypeField implements Valuable this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyRetentionLengthField.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyRetentionLengthField.java new file mode 100644 index 000000000..fb962f04a --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyRetentionLengthField.java @@ -0,0 +1,70 @@ +package com.box.sdkgen.managers.retentionpolicies; + +import com.box.sdkgen.internal.OneOfTwo; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize( + using = + CreateRetentionPolicyRequestBodyRetentionLengthField + .CreateRetentionPolicyRequestBodyRetentionLengthFieldDeserializer.class) +@JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) +public class CreateRetentionPolicyRequestBodyRetentionLengthField + extends OneOfTwo { + + public CreateRetentionPolicyRequestBodyRetentionLengthField(String string) { + super(string, null); + } + + public CreateRetentionPolicyRequestBodyRetentionLengthField(Integer integerNumber) { + super(null, integerNumber); + } + + public boolean isString() { + return value0 != null; + } + + public String getString() { + return value0; + } + + public boolean isIntegerNumber() { + return value1 != null; + } + + public Integer getIntegerNumber() { + return value1; + } + + static class CreateRetentionPolicyRequestBodyRetentionLengthFieldDeserializer + extends JsonDeserializer { + + public CreateRetentionPolicyRequestBodyRetentionLengthFieldDeserializer() { + super(); + } + + @Override + public CreateRetentionPolicyRequestBodyRetentionLengthField deserialize( + JsonParser jp, DeserializationContext ctxt) throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + if (node.isInt()) { + return new CreateRetentionPolicyRequestBodyRetentionLengthField( + OneOfTwo.OBJECT_MAPPER.convertValue(node, Integer.class)); + } + try { + return new CreateRetentionPolicyRequestBodyRetentionLengthField( + OneOfTwo.OBJECT_MAPPER.convertValue(node, String.class)); + } catch (Exception ignored) { + } + throw new JsonMappingException( + jp, "Unable to deserialize CreateRetentionPolicyRequestBodyRetentionLengthField"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyRetentionTypeField.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyRetentionTypeField.java index cb78b202d..477dbace3 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyRetentionTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBodyRetentionTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum CreateRetentionPolicyRequestBodyRetentionTypeField implements Valuab this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesQueryParamsPolicyTypeField.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesQueryParamsPolicyTypeField.java index 60cecb97a..e98325652 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesQueryParamsPolicyTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/GetRetentionPoliciesQueryParamsPolicyTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum GetRetentionPoliciesQueryParamsPolicyTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdRequestBody.java index 8f2032ae6..c0905b146 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdRequestBody.java @@ -54,7 +54,7 @@ public class UpdateRetentionPolicyByIdRequestBody extends SerializableObject { * `policy_type` of `indefinite`, the `retention_length` will also be `indefinite`. */ @JsonProperty("retention_length") - protected String retentionLength; + protected UpdateRetentionPolicyByIdRequestBodyRetentionLengthField retentionLength; /** * Used to retire a retention policy. @@ -118,7 +118,7 @@ public String getRetentionType() { return retentionType; } - public String getRetentionLength() { + public UpdateRetentionPolicyByIdRequestBodyRetentionLengthField getRetentionLength() { return retentionLength; } @@ -223,7 +223,7 @@ public static class Builder extends NullableFieldTracker { protected String retentionType; - protected String retentionLength; + protected UpdateRetentionPolicyByIdRequestBodyRetentionLengthField retentionLength; protected String status; @@ -257,6 +257,19 @@ public Builder retentionType(String retentionType) { } public Builder retentionLength(String retentionLength) { + this.retentionLength = + new UpdateRetentionPolicyByIdRequestBodyRetentionLengthField(retentionLength); + return this; + } + + public Builder retentionLength(int retentionLength) { + this.retentionLength = + new UpdateRetentionPolicyByIdRequestBodyRetentionLengthField(retentionLength); + return this; + } + + public Builder retentionLength( + UpdateRetentionPolicyByIdRequestBodyRetentionLengthField retentionLength) { this.retentionLength = retentionLength; return this; } diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdRequestBodyRetentionLengthField.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdRequestBodyRetentionLengthField.java new file mode 100644 index 000000000..6094ef21c --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdRequestBodyRetentionLengthField.java @@ -0,0 +1,70 @@ +package com.box.sdkgen.managers.retentionpolicies; + +import com.box.sdkgen.internal.OneOfTwo; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize( + using = + UpdateRetentionPolicyByIdRequestBodyRetentionLengthField + .UpdateRetentionPolicyByIdRequestBodyRetentionLengthFieldDeserializer.class) +@JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) +public class UpdateRetentionPolicyByIdRequestBodyRetentionLengthField + extends OneOfTwo { + + public UpdateRetentionPolicyByIdRequestBodyRetentionLengthField(String string) { + super(string, null); + } + + public UpdateRetentionPolicyByIdRequestBodyRetentionLengthField(Integer integerNumber) { + super(null, integerNumber); + } + + public boolean isString() { + return value0 != null; + } + + public String getString() { + return value0; + } + + public boolean isIntegerNumber() { + return value1 != null; + } + + public Integer getIntegerNumber() { + return value1; + } + + static class UpdateRetentionPolicyByIdRequestBodyRetentionLengthFieldDeserializer + extends JsonDeserializer { + + public UpdateRetentionPolicyByIdRequestBodyRetentionLengthFieldDeserializer() { + super(); + } + + @Override + public UpdateRetentionPolicyByIdRequestBodyRetentionLengthField deserialize( + JsonParser jp, DeserializationContext ctxt) throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + if (node.isInt()) { + return new UpdateRetentionPolicyByIdRequestBodyRetentionLengthField( + OneOfTwo.OBJECT_MAPPER.convertValue(node, Integer.class)); + } + try { + return new UpdateRetentionPolicyByIdRequestBodyRetentionLengthField( + OneOfTwo.OBJECT_MAPPER.convertValue(node, String.class)); + } catch (Exception ignored) { + } + throw new JsonMappingException( + jp, "Unable to deserialize UpdateRetentionPolicyByIdRequestBodyRetentionLengthField"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField.java index 492f039f0..7e872ee8d 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField implemen this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsQueryParamsTypeField.java b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsQueryParamsTypeField.java index 78ebb61f9..3978fbb84 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsQueryParamsTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicyassignments/GetRetentionPolicyAssignmentsQueryParamsTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum GetRetentionPolicyAssignmentsQueryParamsTypeField implements Valuabl this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsContentTypesField.java b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsContentTypesField.java index c1a936693..ca522eb04 100644 --- a/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsContentTypesField.java +++ b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsContentTypesField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -24,6 +25,7 @@ public enum SearchForContentQueryParamsContentTypesField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsDirectionField.java b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsDirectionField.java index 88fecc208..f756e06e0 100644 --- a/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsDirectionField.java +++ b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsDirectionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum SearchForContentQueryParamsDirectionField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsScopeField.java b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsScopeField.java index 6c6134a1d..b8cfafe07 100644 --- a/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsScopeField.java +++ b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsScopeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum SearchForContentQueryParamsScopeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsSortField.java b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsSortField.java index 6ab40b0ea..1f62e97fc 100644 --- a/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsSortField.java +++ b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsSortField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum SearchForContentQueryParamsSortField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsTrashContentField.java b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsTrashContentField.java index 64990c84e..0e52f856d 100644 --- a/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsTrashContentField.java +++ b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsTrashContentField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum SearchForContentQueryParamsTrashContentField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsTypeField.java b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsTypeField.java index 435c29521..e87ffb30d 100644 --- a/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/search/SearchForContentQueryParamsTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum SearchForContentQueryParamsTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkAccessField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkAccessField.java index 55f610d8d..106382070 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkAccessField.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/AddShareLinkToFileRequestBodySharedLinkAccessField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum AddShareLinkToFileRequestBodySharedLinkAccessField implements Valuab this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkAccessField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkAccessField.java index d23b9148c..f88188267 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkAccessField.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfiles/UpdateSharedLinkOnFileRequestBodySharedLinkAccessField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum UpdateSharedLinkOnFileRequestBodySharedLinkAccessField implements Va this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkAccessField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkAccessField.java index 31f5fb3ea..6e555bbea 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkAccessField.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/AddShareLinkToFolderRequestBodySharedLinkAccessField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum AddShareLinkToFolderRequestBodySharedLinkAccessField implements Valu this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkAccessField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkAccessField.java index 48aea5aba..ccf6146ef 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkAccessField.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksfolders/UpdateSharedLinkOnFolderRequestBodySharedLinkAccessField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum UpdateSharedLinkOnFolderRequestBodySharedLinkAccessField implements this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkAccessField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkAccessField.java index 9e98285f2..a2e07387a 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkAccessField.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/AddShareLinkToWebLinkRequestBodySharedLinkAccessField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum AddShareLinkToWebLinkRequestBodySharedLinkAccessField implements Val this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessField.java b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessField.java index 6c70eaad3..61ac095fc 100644 --- a/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessField.java +++ b/src/main/java/com/box/sdkgen/managers/sharedlinksweblinks/UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum UpdateSharedLinkOnWebLinkRequestBodySharedLinkAccessField implements this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusRequestBodyStatusField.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusRequestBodyStatusField.java index b4b3216b5..341edf320 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusRequestBodyStatusField.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriers/UpdateShieldInformationBarrierStatusRequestBodyStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum UpdateShieldInformationBarrierStatusRequestBodyStatusField implement this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField.java index 68b49e829..47700838e 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBodyShieldInformationBarrierSegmentTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -23,6 +24,7 @@ this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBodyTypeField.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBodyTypeField.java index 32caa1e85..0af8490b4 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBodyTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentmembers/CreateShieldInformationBarrierSegmentMemberRequestBodyTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CreateShieldInformationBarrierSegmentMemberRequestBodyTypeField impl this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField.java index 85b96b228..d1ae758f3 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestrictedSegmentTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum CreateShieldInformationBarrierSegmentRestrictionRequestBodyRestricte this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField.java index ca063cbe5..2c7ee7a7e 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyShieldInformationBarrierSegmentTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -23,6 +24,7 @@ this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeField.java b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeField.java index 787c8e3f0..17d9ccdb5 100644 --- a/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/shieldinformationbarriersegmentrestrictions/CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum CreateShieldInformationBarrierSegmentRestrictionRequestBodyTypeField this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileTypeField.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileTypeField.java index 88d1d3725..39ae3abf1 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum UpdateAllSkillCardsOnFileRequestBodyFileTypeField implements Valuabl this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField.java index 7e63cdd2c..c266db52f 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField implements this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyStatusField.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyStatusField.java index 96c5b2de3..10d07521b 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyStatusField.java +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateAllSkillCardsOnFileRequestBodyStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -24,6 +25,7 @@ public enum UpdateAllSkillCardsOnFileRequestBodyStatusField implements Valuable this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileRequestBodyOpField.java b/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileRequestBodyOpField.java index 050e96ed3..0678acf60 100644 --- a/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileRequestBodyOpField.java +++ b/src/main/java/com/box/sdkgen/managers/skills/UpdateBoxSkillCardsOnFileRequestBodyOpField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum UpdateBoxSkillCardsOnFileRequestBodyOpField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyAssignedToTypeField.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyAssignedToTypeField.java index b198a937b..2ac812ee5 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyAssignedToTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyAssignedToTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum CreateStoragePolicyAssignmentRequestBodyAssignedToTypeField implemen this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField.java index de8cdbc39..c68260f09 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField imple this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsQueryParamsResolvedForTypeField.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsQueryParamsResolvedForTypeField.java index 67f825398..23ef2d4a7 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsQueryParamsResolvedForTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/GetStoragePolicyAssignmentsQueryParamsResolvedForTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum GetStoragePolicyAssignmentsQueryParamsResolvedForTypeField implement this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField.java b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField.java index b4fc5596e..f823a4bfe 100644 --- a/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/storagepolicyassignments/UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField i this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyTaskTypeField.java b/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyTaskTypeField.java index b5d76d772..923c5d904 100644 --- a/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyTaskTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/CreateTaskAssignmentRequestBodyTaskTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CreateTaskAssignmentRequestBodyTaskTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdRequestBodyResolutionStateField.java b/src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdRequestBodyResolutionStateField.java index e6e4e4aaa..5f73f10a0 100644 --- a/src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdRequestBodyResolutionStateField.java +++ b/src/main/java/com/box/sdkgen/managers/taskassignments/UpdateTaskAssignmentByIdRequestBodyResolutionStateField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -23,6 +24,7 @@ public enum UpdateTaskAssignmentByIdRequestBodyResolutionStateField implements V this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyActionField.java b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyActionField.java index e8911cf60..4200b5305 100644 --- a/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyActionField.java +++ b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyActionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum CreateTaskRequestBodyActionField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyCompletionRuleField.java b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyCompletionRuleField.java index e05850cc4..702a28f77 100644 --- a/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyCompletionRuleField.java +++ b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyCompletionRuleField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum CreateTaskRequestBodyCompletionRuleField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyItemTypeField.java b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyItemTypeField.java index ad2ffab87..4a6839e3c 100644 --- a/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyItemTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/tasks/CreateTaskRequestBodyItemTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CreateTaskRequestBodyItemTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBodyActionField.java b/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBodyActionField.java index 5f289bded..d0a2634f1 100644 --- a/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBodyActionField.java +++ b/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBodyActionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum UpdateTaskByIdRequestBodyActionField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBodyCompletionRuleField.java b/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBodyCompletionRuleField.java index 1e5d0d4a4..d2293b35b 100644 --- a/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBodyCompletionRuleField.java +++ b/src/main/java/com/box/sdkgen/managers/tasks/UpdateTaskByIdRequestBodyCompletionRuleField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum UpdateTaskByIdRequestBodyCompletionRuleField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceRequestBodyStatusField.java b/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceRequestBodyStatusField.java index 15046e76b..7268b2774 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceRequestBodyStatusField.java +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceRequestBodyStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum CreateTermsOfServiceRequestBodyStatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceRequestBodyTosTypeField.java b/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceRequestBodyTosTypeField.java index 8ba145180..2810b9ba8 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceRequestBodyTosTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/CreateTermsOfServiceRequestBodyTosTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum CreateTermsOfServiceRequestBodyTosTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceQueryParamsTosTypeField.java b/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceQueryParamsTosTypeField.java index d8c8ebb85..884124fe2 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceQueryParamsTosTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/GetTermsOfServiceQueryParamsTosTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum GetTermsOfServiceQueryParamsTosTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdRequestBodyStatusField.java b/src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdRequestBodyStatusField.java index 88c9b413e..7835894db 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdRequestBodyStatusField.java +++ b/src/main/java/com/box/sdkgen/managers/termsofservices/UpdateTermsOfServiceByIdRequestBodyStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum UpdateTermsOfServiceByIdRequestBodyStatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyTosTypeField.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyTosTypeField.java index fcc2b766f..a46a83ea3 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyTosTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyTosTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CreateTermsOfServiceStatusForUserRequestBodyTosTypeField implements this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyUserTypeField.java b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyUserTypeField.java index 14a7362f5..a7ca3cbbf 100644 --- a/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyUserTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/termsofserviceuserstatuses/CreateTermsOfServiceStatusForUserRequestBodyUserTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CreateTermsOfServiceStatusForUserRequestBodyUserTypeField implements this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsQueryParamsDirectionField.java b/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsQueryParamsDirectionField.java index 2ddbf2bac..d62c69402 100644 --- a/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsQueryParamsDirectionField.java +++ b/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsQueryParamsDirectionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum GetTrashedItemsQueryParamsDirectionField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsQueryParamsSortField.java b/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsQueryParamsSortField.java index b0d73cc18..6ebab1dbd 100644 --- a/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsQueryParamsSortField.java +++ b/src/main/java/com/box/sdkgen/managers/trasheditems/GetTrashedItemsQueryParamsSortField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum GetTrashedItemsQueryParamsSortField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyAccessibleByTypeField.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyAccessibleByTypeField.java index 3beba39aa..431cd0446 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyAccessibleByTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyAccessibleByTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum CreateCollaborationRequestBodyAccessibleByTypeField implements Valua this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyItemTypeField.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyItemTypeField.java index ebfce42e0..5ffbc6937 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyItemTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyItemTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum CreateCollaborationRequestBodyItemTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyRoleField.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyRoleField.java index 76649bf2a..c8e94903a 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyRoleField.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/CreateCollaborationRequestBodyRoleField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -26,6 +27,7 @@ public enum CreateCollaborationRequestBodyRoleField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBodyRoleField.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBodyRoleField.java index 9a11cd61e..c08e99206 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBodyRoleField.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBodyRoleField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -27,6 +28,7 @@ public enum UpdateCollaborationByIdRequestBodyRoleField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBodyStatusField.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBodyStatusField.java index b8f75d63f..8cb4e809a 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBodyStatusField.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/UpdateCollaborationByIdRequestBodyStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum UpdateCollaborationByIdRequestBodyStatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBodyRoleField.java b/src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBodyRoleField.java index 3cee9f71c..d1898932c 100644 --- a/src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBodyRoleField.java +++ b/src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBodyRoleField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum CreateUserRequestBodyRoleField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBodyStatusField.java b/src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBodyStatusField.java index 6e4f4c129..7a87daa49 100644 --- a/src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBodyStatusField.java +++ b/src/main/java/com/box/sdkgen/managers/users/CreateUserRequestBodyStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -23,6 +24,7 @@ public enum CreateUserRequestBodyStatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/users/GetUsersQueryParamsUserTypeField.java b/src/main/java/com/box/sdkgen/managers/users/GetUsersQueryParamsUserTypeField.java index 2da1d6b5e..2d88a89c9 100644 --- a/src/main/java/com/box/sdkgen/managers/users/GetUsersQueryParamsUserTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/users/GetUsersQueryParamsUserTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum GetUsersQueryParamsUserTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBodyRoleField.java b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBodyRoleField.java index 1f8fceea2..ed751f1bd 100644 --- a/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBodyRoleField.java +++ b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBodyRoleField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum UpdateUserByIdRequestBodyRoleField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBodyStatusField.java b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBodyStatusField.java index 65dac434c..6318ad87c 100644 --- a/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBodyStatusField.java +++ b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBodyStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -23,6 +24,7 @@ public enum UpdateUserByIdRequestBodyStatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTargetTypeField.java b/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTargetTypeField.java index cc5e4a8a9..13dca8b49 100644 --- a/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTargetTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTargetTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum CreateWebhookRequestBodyTargetTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTriggersField.java b/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTriggersField.java index 24981f876..6957e0adb 100644 --- a/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTriggersField.java +++ b/src/main/java/com/box/sdkgen/managers/webhooks/CreateWebhookRequestBodyTriggersField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -62,6 +63,7 @@ public enum CreateWebhookRequestBodyTriggersField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTargetTypeField.java b/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTargetTypeField.java index e6e0752ab..1e9f52bc2 100644 --- a/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTargetTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTargetTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum UpdateWebhookByIdRequestBodyTargetTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTriggersField.java b/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTriggersField.java index 6452f31c1..b54489384 100644 --- a/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTriggersField.java +++ b/src/main/java/com/box/sdkgen/managers/webhooks/UpdateWebhookByIdRequestBodyTriggersField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -62,6 +63,7 @@ public enum UpdateWebhookByIdRequestBodyTriggersField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodySharedLinkAccessField.java b/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodySharedLinkAccessField.java index fb49728c9..3087547c0 100644 --- a/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodySharedLinkAccessField.java +++ b/src/main/java/com/box/sdkgen/managers/weblinks/UpdateWebLinkByIdRequestBodySharedLinkAccessField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum UpdateWebLinkByIdRequestBodySharedLinkAccessField implements Valuabl this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFilesTypeField.java b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFilesTypeField.java index d15d6247d..b2ba817aa 100644 --- a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFilesTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFilesTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum StartWorkflowRequestBodyFilesTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFolderTypeField.java b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFolderTypeField.java index 2ff3cf727..2e45c0e3d 100644 --- a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFolderTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyFolderTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum StartWorkflowRequestBodyFolderTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyTypeField.java b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyTypeField.java index b56871837..ce9b8a587 100644 --- a/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/workflows/StartWorkflowRequestBodyTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum StartWorkflowRequestBodyTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/networking/fetchoptions/ResponseFormat.java b/src/main/java/com/box/sdkgen/networking/fetchoptions/ResponseFormat.java index 256fc7859..a6cfe7917 100644 --- a/src/main/java/com/box/sdkgen/networking/fetchoptions/ResponseFormat.java +++ b/src/main/java/com/box/sdkgen/networking/fetchoptions/ResponseFormat.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum ResponseFormat implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/parameters/v2025r0/boxversionheaderv2025r0/BoxVersionHeaderV2025R0.java b/src/main/java/com/box/sdkgen/parameters/v2025r0/boxversionheaderv2025r0/BoxVersionHeaderV2025R0.java index da8911ec9..171211358 100644 --- a/src/main/java/com/box/sdkgen/parameters/v2025r0/boxversionheaderv2025r0/BoxVersionHeaderV2025R0.java +++ b/src/main/java/com/box/sdkgen/parameters/v2025r0/boxversionheaderv2025r0/BoxVersionHeaderV2025R0.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum BoxVersionHeaderV2025R0 implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/accesstoken/AccessTokenIssuedTokenTypeField.java b/src/main/java/com/box/sdkgen/schemas/accesstoken/AccessTokenIssuedTokenTypeField.java index a87be314a..e07c98c5a 100644 --- a/src/main/java/com/box/sdkgen/schemas/accesstoken/AccessTokenIssuedTokenTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/accesstoken/AccessTokenIssuedTokenTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AccessTokenIssuedTokenTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/accesstoken/AccessTokenTokenTypeField.java b/src/main/java/com/box/sdkgen/schemas/accesstoken/AccessTokenTokenTypeField.java index 85ed1dfb7..530283313 100644 --- a/src/main/java/com/box/sdkgen/schemas/accesstoken/AccessTokenTokenTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/accesstoken/AccessTokenTokenTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AccessTokenTokenTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentask/AiAgentAskTypeField.java b/src/main/java/com/box/sdkgen/schemas/aiagentask/AiAgentAskTypeField.java index b264c96a1..8252dd622 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentask/AiAgentAskTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentask/AiAgentAskTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AiAgentAskTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentextract/AiAgentExtractTypeField.java b/src/main/java/com/box/sdkgen/schemas/aiagentextract/AiAgentExtractTypeField.java index ded9dfdfa..6a5c24f4b 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentextract/AiAgentExtractTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentextract/AiAgentExtractTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AiAgentExtractTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentextractstructured/AiAgentExtractStructuredTypeField.java b/src/main/java/com/box/sdkgen/schemas/aiagentextractstructured/AiAgentExtractStructuredTypeField.java index 84f8fd2c2..1a1bebc55 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentextractstructured/AiAgentExtractStructuredTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentextractstructured/AiAgentExtractStructuredTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AiAgentExtractStructuredTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReferenceTypeField.java b/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReferenceTypeField.java index 5a1b7bd5a..f206f5aed 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReferenceTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReferenceTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AiAgentReferenceTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/aiagenttextgen/AiAgentTextGenTypeField.java b/src/main/java/com/box/sdkgen/schemas/aiagenttextgen/AiAgentTextGenTypeField.java index da57d7203..1d6aef324 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagenttextgen/AiAgentTextGenTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagenttextgen/AiAgentTextGenTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AiAgentTextGenTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/aiask/AiAskModeField.java b/src/main/java/com/box/sdkgen/schemas/aiask/AiAskModeField.java index 64350cb9c..b4a6ab1ff 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiask/AiAskModeField.java +++ b/src/main/java/com/box/sdkgen/schemas/aiask/AiAskModeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum AiAskModeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/aicitation/AiCitationTypeField.java b/src/main/java/com/box/sdkgen/schemas/aicitation/AiCitationTypeField.java index 05bab2da9..19c416f65 100644 --- a/src/main/java/com/box/sdkgen/schemas/aicitation/AiCitationTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/aicitation/AiCitationTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AiCitationTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredMetadataTemplateTypeField.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredMetadataTemplateTypeField.java index 2f59595c1..c2cd568c7 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredMetadataTemplateTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredMetadataTemplateTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AiExtractStructuredMetadataTemplateTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/aiitemask/AiItemAskTypeField.java b/src/main/java/com/box/sdkgen/schemas/aiitemask/AiItemAskTypeField.java index 0b4c95965..0efacbe5a 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiitemask/AiItemAskTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/aiitemask/AiItemAskTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum AiItemAskTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/aiitembase/AiItemBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/aiitembase/AiItemBaseTypeField.java index 94ff42103..a014a7ce9 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiitembase/AiItemBaseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/aiitembase/AiItemBaseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AiItemBaseTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsaws/AiLlmEndpointParamsAwsTypeField.java b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsaws/AiLlmEndpointParamsAwsTypeField.java index 907e831df..548fa0426 100644 --- a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsaws/AiLlmEndpointParamsAwsTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsaws/AiLlmEndpointParamsAwsTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AiLlmEndpointParamsAwsTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsgoogle/AiLlmEndpointParamsGoogleTypeField.java b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsgoogle/AiLlmEndpointParamsGoogleTypeField.java index 20f17f9e6..59e3ab071 100644 --- a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsgoogle/AiLlmEndpointParamsGoogleTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsgoogle/AiLlmEndpointParamsGoogleTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AiLlmEndpointParamsGoogleTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsibm/AiLlmEndpointParamsIbmTypeField.java b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsibm/AiLlmEndpointParamsIbmTypeField.java index d64852463..94a684ada 100644 --- a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsibm/AiLlmEndpointParamsIbmTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsibm/AiLlmEndpointParamsIbmTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AiLlmEndpointParamsIbmTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsopenai/AiLlmEndpointParamsOpenAiTypeField.java b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsopenai/AiLlmEndpointParamsOpenAiTypeField.java index 59f219f5a..002cc9384 100644 --- a/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsopenai/AiLlmEndpointParamsOpenAiTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/aillmendpointparamsopenai/AiLlmEndpointParamsOpenAiTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AiLlmEndpointParamsOpenAiTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/aisingleagentresponse/AiSingleAgentResponseTypeField.java b/src/main/java/com/box/sdkgen/schemas/aisingleagentresponse/AiSingleAgentResponseTypeField.java index bd48fcfde..3ad564404 100644 --- a/src/main/java/com/box/sdkgen/schemas/aisingleagentresponse/AiSingleAgentResponseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/aisingleagentresponse/AiSingleAgentResponseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AiSingleAgentResponseTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentask/AiStudioAgentAskTypeField.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentask/AiStudioAgentAskTypeField.java index b6a1a9426..59b7ba662 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagentask/AiStudioAgentAskTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentask/AiStudioAgentAskTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AiStudioAgentAskTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentaskresponse/AiStudioAgentAskResponseTypeField.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentaskresponse/AiStudioAgentAskResponseTypeField.java index 188aa9aac..969dfe544 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagentaskresponse/AiStudioAgentAskResponseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentaskresponse/AiStudioAgentAskResponseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AiStudioAgentAskResponseTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentextract/AiStudioAgentExtractTypeField.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentextract/AiStudioAgentExtractTypeField.java index 58ea0c31d..97c2b052a 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagentextract/AiStudioAgentExtractTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentextract/AiStudioAgentExtractTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AiStudioAgentExtractTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagentextractresponse/AiStudioAgentExtractResponseTypeField.java b/src/main/java/com/box/sdkgen/schemas/aistudioagentextractresponse/AiStudioAgentExtractResponseTypeField.java index d992b5939..654b80524 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagentextractresponse/AiStudioAgentExtractResponseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagentextractresponse/AiStudioAgentExtractResponseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AiStudioAgentExtractResponseTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgen/AiStudioAgentTextGenTypeField.java b/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgen/AiStudioAgentTextGenTypeField.java index e5c3ced67..c288c7c94 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgen/AiStudioAgentTextGenTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgen/AiStudioAgentTextGenTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AiStudioAgentTextGenTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgenresponse/AiStudioAgentTextGenResponseTypeField.java b/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgenresponse/AiStudioAgentTextGenResponseTypeField.java index 2e8bace85..cb82c9547 100644 --- a/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgenresponse/AiStudioAgentTextGenResponseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/aistudioagenttextgenresponse/AiStudioAgentTextGenResponseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AiStudioAgentTextGenResponseTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGenItemsTypeField.java b/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGenItemsTypeField.java index d327fcdc0..81fa40da4 100644 --- a/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGenItemsTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGenItemsTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AiTextGenItemsTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/appitem/AppItemTypeField.java b/src/main/java/com/box/sdkgen/schemas/appitem/AppItemTypeField.java index 6cd75411d..ecde67b58 100644 --- a/src/main/java/com/box/sdkgen/schemas/appitem/AppItemTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/appitem/AppItemTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AppItemTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/appitemassociation/AppItemAssociationTypeField.java b/src/main/java/com/box/sdkgen/schemas/appitemassociation/AppItemAssociationTypeField.java index dbdc28c0b..5b458c96c 100644 --- a/src/main/java/com/box/sdkgen/schemas/appitemassociation/AppItemAssociationTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/appitemassociation/AppItemAssociationTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AppItemAssociationTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/appitemeventsource/AppItemEventSourceTypeField.java b/src/main/java/com/box/sdkgen/schemas/appitemeventsource/AppItemEventSourceTypeField.java index 17d665d61..ae5639494 100644 --- a/src/main/java/com/box/sdkgen/schemas/appitemeventsource/AppItemEventSourceTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/appitemeventsource/AppItemEventSourceTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum AppItemEventSourceTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/classification/ClassificationTemplateField.java b/src/main/java/com/box/sdkgen/schemas/classification/ClassificationTemplateField.java index 679af6b99..5d6d32322 100644 --- a/src/main/java/com/box/sdkgen/schemas/classification/ClassificationTemplateField.java +++ b/src/main/java/com/box/sdkgen/schemas/classification/ClassificationTemplateField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum ClassificationTemplateField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateDisplayNameField.java b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateDisplayNameField.java index 380810dae..6651411f5 100644 --- a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateDisplayNameField.java +++ b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateDisplayNameField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum ClassificationTemplateDisplayNameField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsDisplayNameField.java b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsDisplayNameField.java index 74ec58fa3..c9206fd48 100644 --- a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsDisplayNameField.java +++ b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsDisplayNameField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum ClassificationTemplateFieldsDisplayNameField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsKeyField.java b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsKeyField.java index cafecc38c..9f6407857 100644 --- a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsKeyField.java +++ b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsKeyField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum ClassificationTemplateFieldsKeyField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsTypeField.java b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsTypeField.java index a34162566..7d69f7367 100644 --- a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateFieldsTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum ClassificationTemplateFieldsTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateTemplateKeyField.java b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateTemplateKeyField.java index d36c2b3ae..10300ae40 100644 --- a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateTemplateKeyField.java +++ b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateTemplateKeyField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum ClassificationTemplateTemplateKeyField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateTypeField.java b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateTypeField.java index 6ee60ed3c..43df20082 100644 --- a/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/classificationtemplate/ClassificationTemplateTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum ClassificationTemplateTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/clienterror/ClientErrorCodeField.java b/src/main/java/com/box/sdkgen/schemas/clienterror/ClientErrorCodeField.java index ef08b095b..3ef846052 100644 --- a/src/main/java/com/box/sdkgen/schemas/clienterror/ClientErrorCodeField.java +++ b/src/main/java/com/box/sdkgen/schemas/clienterror/ClientErrorCodeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -36,6 +37,7 @@ public enum ClientErrorCodeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/clienterror/ClientErrorTypeField.java b/src/main/java/com/box/sdkgen/schemas/clienterror/ClientErrorTypeField.java index 95f5ae062..a38600972 100644 --- a/src/main/java/com/box/sdkgen/schemas/clienterror/ClientErrorTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/clienterror/ClientErrorTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum ClientErrorTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationRoleField.java b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationRoleField.java index b3c7e8d33..1baa3b6a0 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationRoleField.java +++ b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationRoleField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -27,6 +28,7 @@ public enum CollaborationRoleField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationStatusField.java b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationStatusField.java index f59cdcd76..44edc192e 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationStatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum CollaborationStatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationTypeField.java b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationTypeField.java index 1f2d3c1e6..23b180e36 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/collaboration/CollaborationTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CollaborationTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryDirectionField.java b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryDirectionField.java index e9f1ad5b4..9d0b46763 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryDirectionField.java +++ b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryDirectionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum CollaborationAllowlistEntryDirectionField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryEnterpriseTypeField.java b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryEnterpriseTypeField.java index 66e550511..d64528033 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryEnterpriseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryEnterpriseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CollaborationAllowlistEntryEnterpriseTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryTypeField.java b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryTypeField.java index 5ab1e97fc..4057374c8 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistentry/CollaborationAllowlistEntryTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CollaborationAllowlistEntryTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTargetEnterpriseTypeField.java b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTargetEnterpriseTypeField.java index d3d5ed3ea..c89ba3fa4 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTargetEnterpriseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTargetEnterpriseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CollaborationAllowlistExemptTargetEnterpriseTypeField implements Val this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTargetTypeField.java b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTargetTypeField.java index a0e426db3..625835e28 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTargetTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/collaborationallowlistexempttarget/CollaborationAllowlistExemptTargetTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CollaborationAllowlistExemptTargetTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableTypeField.java b/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableTypeField.java index 9e7b515f8..21cadb56c 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CollaboratorVariableTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableTypeField.java b/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableTypeField.java index 6dd67779f..281dbcf31 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CollaboratorVariableVariableTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableValueTypeField.java b/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableValueTypeField.java index b19320522..3b97ac0eb 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableValueTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/collaboratorvariable/CollaboratorVariableVariableValueTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CollaboratorVariableVariableValueTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/collection/CollectionCollectionTypeField.java b/src/main/java/com/box/sdkgen/schemas/collection/CollectionCollectionTypeField.java index 0adb03a3c..901b22b2b 100644 --- a/src/main/java/com/box/sdkgen/schemas/collection/CollectionCollectionTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/collection/CollectionCollectionTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CollectionCollectionTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/collection/CollectionNameField.java b/src/main/java/com/box/sdkgen/schemas/collection/CollectionNameField.java index f9a828120..eeb7cd326 100644 --- a/src/main/java/com/box/sdkgen/schemas/collection/CollectionNameField.java +++ b/src/main/java/com/box/sdkgen/schemas/collection/CollectionNameField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CollectionNameField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/collection/CollectionTypeField.java b/src/main/java/com/box/sdkgen/schemas/collection/CollectionTypeField.java index d2e243cac..e11b0acd2 100644 --- a/src/main/java/com/box/sdkgen/schemas/collection/CollectionTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/collection/CollectionTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CollectionTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/collections/CollectionsOrderDirectionField.java b/src/main/java/com/box/sdkgen/schemas/collections/CollectionsOrderDirectionField.java index aea5f1647..cdcf45bba 100644 --- a/src/main/java/com/box/sdkgen/schemas/collections/CollectionsOrderDirectionField.java +++ b/src/main/java/com/box/sdkgen/schemas/collections/CollectionsOrderDirectionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum CollectionsOrderDirectionField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/commentbase/CommentBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/commentbase/CommentBaseTypeField.java index 74e8e205a..87b46994c 100644 --- a/src/main/java/com/box/sdkgen/schemas/commentbase/CommentBaseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/commentbase/CommentBaseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CommentBaseTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/comments/CommentsOrderDirectionField.java b/src/main/java/com/box/sdkgen/schemas/comments/CommentsOrderDirectionField.java index daca96129..b823dc749 100644 --- a/src/main/java/com/box/sdkgen/schemas/comments/CommentsOrderDirectionField.java +++ b/src/main/java/com/box/sdkgen/schemas/comments/CommentsOrderDirectionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum CommentsOrderDirectionField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariableTypeField.java b/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariableTypeField.java index 4439cd225..b5750ecc0 100644 --- a/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariableTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariableTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CompletionRuleVariableTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariableVariableTypeField.java b/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariableVariableTypeField.java index 84d6dd3d1..4b9d25c88 100644 --- a/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariableVariableTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariableVariableTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CompletionRuleVariableVariableTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariableVariableValueField.java b/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariableVariableValueField.java index e29f419f4..ca208ddcb 100644 --- a/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariableVariableValueField.java +++ b/src/main/java/com/box/sdkgen/schemas/completionrulevariable/CompletionRuleVariableVariableValueField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum CompletionRuleVariableVariableValueField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/createaiagent/CreateAiAgentTypeField.java b/src/main/java/com/box/sdkgen/schemas/createaiagent/CreateAiAgentTypeField.java index c7ec4f906..1dacf1b74 100644 --- a/src/main/java/com/box/sdkgen/schemas/createaiagent/CreateAiAgentTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/createaiagent/CreateAiAgentTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum CreateAiAgentTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/devicepinner/DevicePinnerTypeField.java b/src/main/java/com/box/sdkgen/schemas/devicepinner/DevicePinnerTypeField.java index beb0dd8f9..426f56787 100644 --- a/src/main/java/com/box/sdkgen/schemas/devicepinner/DevicePinnerTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/devicepinner/DevicePinnerTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum DevicePinnerTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinnersOrderByField.java b/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinnersOrderByField.java index 0bc6d9356..050600a91 100644 --- a/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinnersOrderByField.java +++ b/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinnersOrderByField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum DevicePinnersOrderByField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinnersOrderDirectionField.java b/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinnersOrderDirectionField.java index 75cfe4f45..9f7ce5f82 100644 --- a/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinnersOrderDirectionField.java +++ b/src/main/java/com/box/sdkgen/schemas/devicepinners/DevicePinnersOrderDirectionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum DevicePinnersOrderDirectionField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/emailalias/EmailAliasTypeField.java b/src/main/java/com/box/sdkgen/schemas/emailalias/EmailAliasTypeField.java index bdbfac90b..870bcb1da 100644 --- a/src/main/java/com/box/sdkgen/schemas/emailalias/EmailAliasTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/emailalias/EmailAliasTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum EmailAliasTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/enterprisebase/EnterpriseBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/enterprisebase/EnterpriseBaseTypeField.java index 8ecca0724..743eedee4 100644 --- a/src/main/java/com/box/sdkgen/schemas/enterprisebase/EnterpriseBaseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/enterprisebase/EnterpriseBaseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum EnterpriseBaseTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/event/EventEventTypeField.java b/src/main/java/com/box/sdkgen/schemas/event/EventEventTypeField.java index 468e02604..47879a6de 100644 --- a/src/main/java/com/box/sdkgen/schemas/event/EventEventTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/event/EventEventTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -163,6 +164,7 @@ public enum EventEventTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/eventsource/EventSourceItemTypeField.java b/src/main/java/com/box/sdkgen/schemas/eventsource/EventSourceItemTypeField.java index 8e7f32039..806f5fdd0 100644 --- a/src/main/java/com/box/sdkgen/schemas/eventsource/EventSourceItemTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/eventsource/EventSourceItemTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum EventSourceItemTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/file/FileItemStatusField.java b/src/main/java/com/box/sdkgen/schemas/file/FileItemStatusField.java index 8caaff860..fc401d53e 100644 --- a/src/main/java/com/box/sdkgen/schemas/file/FileItemStatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/file/FileItemStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum FileItemStatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkAccessField.java b/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkAccessField.java index 794851e0b..0ebcea37f 100644 --- a/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkAccessField.java +++ b/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkAccessField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum FileSharedLinkAccessField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkEffectiveAccessField.java b/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkEffectiveAccessField.java index 28d706dd8..c7f13f2b3 100644 --- a/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkEffectiveAccessField.java +++ b/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkEffectiveAccessField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum FileSharedLinkEffectiveAccessField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkEffectivePermissionField.java b/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkEffectivePermissionField.java index 951c475f7..cea46af5a 100644 --- a/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkEffectivePermissionField.java +++ b/src/main/java/com/box/sdkgen/schemas/file/FileSharedLinkEffectivePermissionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -23,6 +24,7 @@ public enum FileSharedLinkEffectivePermissionField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/filebase/FileBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/filebase/FileBaseTypeField.java index 5f57f1703..375efd4d8 100644 --- a/src/main/java/com/box/sdkgen/schemas/filebase/FileBaseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/filebase/FileBaseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum FileBaseTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullAllowedInviteeRolesField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullAllowedInviteeRolesField.java index 8d750adc8..5346a8a5e 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullAllowedInviteeRolesField.java +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullAllowedInviteeRolesField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -26,6 +27,7 @@ public enum FileFullAllowedInviteeRolesField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullExpiringEmbedLinkTokenTypeField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullExpiringEmbedLinkTokenTypeField.java index 4d09bf7eb..4c2548807 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullExpiringEmbedLinkTokenTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullExpiringEmbedLinkTokenTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum FileFullExpiringEmbedLinkTokenTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockAppTypeField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockAppTypeField.java index 9bcdea427..b78903b43 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockAppTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockAppTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -23,6 +24,7 @@ public enum FileFullLockAppTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockTypeField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockTypeField.java index de399f504..d40b88350 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullLockTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum FileFullLockTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesStatusStateField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesStatusStateField.java index ef4e8cef0..01358b62f 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesStatusStateField.java +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullRepresentationsEntriesStatusStateField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -23,6 +24,7 @@ public enum FileFullRepresentationsEntriesStatusStateField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullSharedLinkPermissionOptionsField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullSharedLinkPermissionOptionsField.java index 79a522a73..4e8bb12d9 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullSharedLinkPermissionOptionsField.java +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullSharedLinkPermissionOptionsField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum FileFullSharedLinkPermissionOptionsField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequestStatusField.java b/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequestStatusField.java index 75073a1e6..6e212aadb 100644 --- a/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequestStatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequestStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum FileRequestStatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequestTypeField.java b/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequestTypeField.java index d9049640c..6c334d601 100644 --- a/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequestTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/filerequest/FileRequestTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum FileRequestTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequestFolderTypeField.java b/src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequestFolderTypeField.java index 732f852c9..f109ef34c 100644 --- a/src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequestFolderTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/filerequestcopyrequest/FileRequestCopyRequestFolderTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum FileRequestCopyRequestFolderTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/filerequestupdaterequest/FileRequestUpdateRequestStatusField.java b/src/main/java/com/box/sdkgen/schemas/filerequestupdaterequest/FileRequestUpdateRequestStatusField.java index bd3c11cad..8c2818894 100644 --- a/src/main/java/com/box/sdkgen/schemas/filerequestupdaterequest/FileRequestUpdateRequestStatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/filerequestupdaterequest/FileRequestUpdateRequestStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum FileRequestUpdateRequestStatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionbase/FileVersionBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/fileversionbase/FileVersionBaseTypeField.java index 7b6eaccfb..2aa4fef5e 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileversionbase/FileVersionBaseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/fileversionbase/FileVersionBaseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum FileVersionBaseTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionlegalhold/FileVersionLegalHoldTypeField.java b/src/main/java/com/box/sdkgen/schemas/fileversionlegalhold/FileVersionLegalHoldTypeField.java index 3d92ff9ed..9d38b2504 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileversionlegalhold/FileVersionLegalHoldTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/fileversionlegalhold/FileVersionLegalHoldTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum FileVersionLegalHoldTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/fileversionretention/FileVersionRetentionTypeField.java b/src/main/java/com/box/sdkgen/schemas/fileversionretention/FileVersionRetentionTypeField.java index 25970f233..5e7b2fd05 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileversionretention/FileVersionRetentionTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/fileversionretention/FileVersionRetentionTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum FileVersionRetentionTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/fileversions/FileVersionsOrderDirectionField.java b/src/main/java/com/box/sdkgen/schemas/fileversions/FileVersionsOrderDirectionField.java index 278e78cef..44c0cf9ff 100644 --- a/src/main/java/com/box/sdkgen/schemas/fileversions/FileVersionsOrderDirectionField.java +++ b/src/main/java/com/box/sdkgen/schemas/fileversions/FileVersionsOrderDirectionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum FileVersionsOrderDirectionField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/folder/FolderFolderUploadEmailAccessField.java b/src/main/java/com/box/sdkgen/schemas/folder/FolderFolderUploadEmailAccessField.java index f9604c989..73ed5538a 100644 --- a/src/main/java/com/box/sdkgen/schemas/folder/FolderFolderUploadEmailAccessField.java +++ b/src/main/java/com/box/sdkgen/schemas/folder/FolderFolderUploadEmailAccessField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum FolderFolderUploadEmailAccessField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/folder/FolderItemStatusField.java b/src/main/java/com/box/sdkgen/schemas/folder/FolderItemStatusField.java index 445dd8e54..d08ecb8eb 100644 --- a/src/main/java/com/box/sdkgen/schemas/folder/FolderItemStatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/folder/FolderItemStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum FolderItemStatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkAccessField.java b/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkAccessField.java index 13c6d618e..8c0ec5391 100644 --- a/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkAccessField.java +++ b/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkAccessField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum FolderSharedLinkAccessField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkEffectiveAccessField.java b/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkEffectiveAccessField.java index 102d5ab4b..530ee0e6b 100644 --- a/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkEffectiveAccessField.java +++ b/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkEffectiveAccessField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum FolderSharedLinkEffectiveAccessField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkEffectivePermissionField.java b/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkEffectivePermissionField.java index 746cc4910..c28ccfafb 100644 --- a/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkEffectivePermissionField.java +++ b/src/main/java/com/box/sdkgen/schemas/folder/FolderSharedLinkEffectivePermissionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -23,6 +24,7 @@ public enum FolderSharedLinkEffectivePermissionField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/folderbase/FolderBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/folderbase/FolderBaseTypeField.java index 730c684be..c28a5b908 100644 --- a/src/main/java/com/box/sdkgen/schemas/folderbase/FolderBaseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/folderbase/FolderBaseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum FolderBaseTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullAllowedInviteeRolesField.java b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullAllowedInviteeRolesField.java index f572501a7..da193988e 100644 --- a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullAllowedInviteeRolesField.java +++ b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullAllowedInviteeRolesField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -26,6 +27,7 @@ public enum FolderFullAllowedInviteeRolesField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullAllowedSharedLinkAccessLevelsField.java b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullAllowedSharedLinkAccessLevelsField.java index 22ffcc0e5..128b5ceca 100644 --- a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullAllowedSharedLinkAccessLevelsField.java +++ b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullAllowedSharedLinkAccessLevelsField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum FolderFullAllowedSharedLinkAccessLevelsField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullSyncStateField.java b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullSyncStateField.java index 199d022a8..249c6b176 100644 --- a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullSyncStateField.java +++ b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFullSyncStateField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum FolderFullSyncStateField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/folderreference/FolderReferenceTypeField.java b/src/main/java/com/box/sdkgen/schemas/folderreference/FolderReferenceTypeField.java index 7bbfa19d1..35139b688 100644 --- a/src/main/java/com/box/sdkgen/schemas/folderreference/FolderReferenceTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/folderreference/FolderReferenceTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum FolderReferenceTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/groupbase/GroupBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/groupbase/GroupBaseTypeField.java index ade51f282..1e777c1ac 100644 --- a/src/main/java/com/box/sdkgen/schemas/groupbase/GroupBaseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/groupbase/GroupBaseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum GroupBaseTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFullInvitabilityLevelField.java b/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFullInvitabilityLevelField.java index ed8a2b8f8..26b470ad4 100644 --- a/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFullInvitabilityLevelField.java +++ b/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFullInvitabilityLevelField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum GroupFullInvitabilityLevelField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFullMemberViewabilityLevelField.java b/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFullMemberViewabilityLevelField.java index 961eac018..249932faa 100644 --- a/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFullMemberViewabilityLevelField.java +++ b/src/main/java/com/box/sdkgen/schemas/groupfull/GroupFullMemberViewabilityLevelField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum GroupFullMemberViewabilityLevelField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembershipRoleField.java b/src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembershipRoleField.java index 26894d0bf..549a271f3 100644 --- a/src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembershipRoleField.java +++ b/src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembershipRoleField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum GroupMembershipRoleField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembershipTypeField.java b/src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembershipTypeField.java index da07fd1f1..f10b72cc0 100644 --- a/src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembershipTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/groupmembership/GroupMembershipTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum GroupMembershipTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/groupmemberships/GroupMembershipsOrderDirectionField.java b/src/main/java/com/box/sdkgen/schemas/groupmemberships/GroupMembershipsOrderDirectionField.java index e4c4ca18d..795a52dcc 100644 --- a/src/main/java/com/box/sdkgen/schemas/groupmemberships/GroupMembershipsOrderDirectionField.java +++ b/src/main/java/com/box/sdkgen/schemas/groupmemberships/GroupMembershipsOrderDirectionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum GroupMembershipsOrderDirectionField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/groupmini/GroupMiniGroupTypeField.java b/src/main/java/com/box/sdkgen/schemas/groupmini/GroupMiniGroupTypeField.java index a57e1fb96..78ed3be31 100644 --- a/src/main/java/com/box/sdkgen/schemas/groupmini/GroupMiniGroupTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/groupmini/GroupMiniGroupTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum GroupMiniGroupTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/groups/GroupsOrderDirectionField.java b/src/main/java/com/box/sdkgen/schemas/groups/GroupsOrderDirectionField.java index 535b1d430..bcd7093fd 100644 --- a/src/main/java/com/box/sdkgen/schemas/groups/GroupsOrderDirectionField.java +++ b/src/main/java/com/box/sdkgen/schemas/groups/GroupsOrderDirectionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum GroupsOrderDirectionField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMappingIntegrationTypeField.java b/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMappingIntegrationTypeField.java index b43c13aa6..ff7c9157a 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMappingIntegrationTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmapping/IntegrationMappingIntegrationTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum IntegrationMappingIntegrationTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingbase/IntegrationMappingBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingbase/IntegrationMappingBaseTypeField.java index 77834633b..f33c41fcf 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmappingbase/IntegrationMappingBaseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingbase/IntegrationMappingBaseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum IntegrationMappingBaseTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingboxitemslack/IntegrationMappingBoxItemSlackTypeField.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingboxitemslack/IntegrationMappingBoxItemSlackTypeField.java index 805090e70..21509866c 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmappingboxitemslack/IntegrationMappingBoxItemSlackTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingboxitemslack/IntegrationMappingBoxItemSlackTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum IntegrationMappingBoxItemSlackTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslack/IntegrationMappingPartnerItemSlackTypeField.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslack/IntegrationMappingPartnerItemSlackTypeField.java index 70d7b9159..2758b7a38 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslack/IntegrationMappingPartnerItemSlackTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemslack/IntegrationMappingPartnerItemSlackTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum IntegrationMappingPartnerItemSlackTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteams/IntegrationMappingPartnerItemTeamsTypeField.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteams/IntegrationMappingPartnerItemTeamsTypeField.java index fec163e71..ce8efd34a 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteams/IntegrationMappingPartnerItemTeamsTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteams/IntegrationMappingPartnerItemTeamsTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum IntegrationMappingPartnerItemTeamsTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteamscreaterequest/IntegrationMappingPartnerItemTeamsCreateRequestTypeField.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteamscreaterequest/IntegrationMappingPartnerItemTeamsCreateRequestTypeField.java index 66ffb2ac2..fec09f250 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteamscreaterequest/IntegrationMappingPartnerItemTeamsCreateRequestTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingpartneritemteamscreaterequest/IntegrationMappingPartnerItemTeamsCreateRequestTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum IntegrationMappingPartnerItemTeamsCreateRequestTypeField implements this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeamsIntegrationTypeField.java b/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeamsIntegrationTypeField.java index 862b27789..c81f0c094 100644 --- a/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeamsIntegrationTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/integrationmappingteams/IntegrationMappingTeamsIntegrationTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum IntegrationMappingTeamsIntegrationTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/invite/InviteInvitedToTypeField.java b/src/main/java/com/box/sdkgen/schemas/invite/InviteInvitedToTypeField.java index f7ce981c6..11e2c22b2 100644 --- a/src/main/java/com/box/sdkgen/schemas/invite/InviteInvitedToTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/invite/InviteInvitedToTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum InviteInvitedToTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/invite/InviteTypeField.java b/src/main/java/com/box/sdkgen/schemas/invite/InviteTypeField.java index aa13af594..6420febb0 100644 --- a/src/main/java/com/box/sdkgen/schemas/invite/InviteTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/invite/InviteTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum InviteTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/items/ItemsOrderDirectionField.java b/src/main/java/com/box/sdkgen/schemas/items/ItemsOrderDirectionField.java index 87308a123..4948bce1b 100644 --- a/src/main/java/com/box/sdkgen/schemas/items/ItemsOrderDirectionField.java +++ b/src/main/java/com/box/sdkgen/schemas/items/ItemsOrderDirectionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum ItemsOrderDirectionField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginatedOrderDirectionField.java b/src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginatedOrderDirectionField.java index 701426d2e..1e15a5d60 100644 --- a/src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginatedOrderDirectionField.java +++ b/src/main/java/com/box/sdkgen/schemas/itemsoffsetpaginated/ItemsOffsetPaginatedOrderDirectionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum ItemsOffsetPaginatedOrderDirectionField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardInvocationTypeField.java b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardInvocationTypeField.java index fd9cd8efb..664b9f4e5 100644 --- a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardInvocationTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardInvocationTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum KeywordSkillCardInvocationTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillCardTypeField.java b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillCardTypeField.java index f64d70d5e..266da3d78 100644 --- a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillCardTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillCardTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum KeywordSkillCardSkillCardTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillTypeField.java b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillTypeField.java index 6147b85d9..af104e2d8 100644 --- a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardSkillTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum KeywordSkillCardSkillTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardTypeField.java b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardTypeField.java index 0b2215173..7a34e311d 100644 --- a/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/keywordskillcard/KeywordSkillCardTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum KeywordSkillCardTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicyStatusField.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicyStatusField.java index c368e702e..b1232b63e 100644 --- a/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicyStatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicy/LegalHoldPolicyStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -23,6 +24,7 @@ public enum LegalHoldPolicyStatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassigneditem/LegalHoldPolicyAssignedItemTypeField.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassigneditem/LegalHoldPolicyAssignedItemTypeField.java index 00c8965bd..f2fa91840 100644 --- a/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassigneditem/LegalHoldPolicyAssignedItemTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassigneditem/LegalHoldPolicyAssignedItemTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -25,6 +26,7 @@ public enum LegalHoldPolicyAssignedItemTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignmentbase/LegalHoldPolicyAssignmentBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignmentbase/LegalHoldPolicyAssignmentBaseTypeField.java index 82a4d9204..16f859ce8 100644 --- a/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignmentbase/LegalHoldPolicyAssignmentBaseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicyassignmentbase/LegalHoldPolicyAssignmentBaseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum LegalHoldPolicyAssignmentBaseTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/legalholdpolicymini/LegalHoldPolicyMiniTypeField.java b/src/main/java/com/box/sdkgen/schemas/legalholdpolicymini/LegalHoldPolicyMiniTypeField.java index 37c6b202e..9433cf181 100644 --- a/src/main/java/com/box/sdkgen/schemas/legalholdpolicymini/LegalHoldPolicyMiniTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/legalholdpolicymini/LegalHoldPolicyMiniTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum LegalHoldPolicyMiniTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyOwnerEnterpriseTypeField.java b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyOwnerEnterpriseTypeField.java index 446b7e21a..c0c1d11c3 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyOwnerEnterpriseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyOwnerEnterpriseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum MetadataCascadePolicyOwnerEnterpriseTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyParentTypeField.java b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyParentTypeField.java index 91dd61959..f396bd1a8 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyParentTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyParentTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum MetadataCascadePolicyParentTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyTypeField.java b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyTypeField.java index a8d2de661..04a08465f 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatacascadepolicy/MetadataCascadePolicyTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum MetadataCascadePolicyTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/metadatafilter/MetadataFilterScopeField.java b/src/main/java/com/box/sdkgen/schemas/metadatafilter/MetadataFilterScopeField.java index 025c825ff..4ae520630 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatafilter/MetadataFilterScopeField.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatafilter/MetadataFilterScopeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum MetadataFilterScopeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/metadataquery/MetadataQueryOrderByDirectionField.java b/src/main/java/com/box/sdkgen/schemas/metadataquery/MetadataQueryOrderByDirectionField.java index dc6b2f2e4..c66968178 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadataquery/MetadataQueryOrderByDirectionField.java +++ b/src/main/java/com/box/sdkgen/schemas/metadataquery/MetadataQueryOrderByDirectionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum MetadataQueryOrderByDirectionField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsTypeField.java b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsTypeField.java index f12830e30..a769c13ae 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -26,6 +27,7 @@ public enum MetadataTemplateFieldsTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateTypeField.java b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateTypeField.java index d832fb9ea..cb909f798 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum MetadataTemplateTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenActorTokenTypeField.java b/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenActorTokenTypeField.java index 7f05be804..72a92e9f9 100644 --- a/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenActorTokenTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenActorTokenTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum PostOAuth2TokenActorTokenTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenBoxSubjectTypeField.java b/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenBoxSubjectTypeField.java index 90d1f66f8..e83d06422 100644 --- a/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenBoxSubjectTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenBoxSubjectTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum PostOAuth2TokenBoxSubjectTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenGrantTypeField.java b/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenGrantTypeField.java index 3a7b4d0dc..b51106aa6 100644 --- a/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenGrantTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenGrantTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -25,6 +26,7 @@ public enum PostOAuth2TokenGrantTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenSubjectTokenTypeField.java b/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenSubjectTokenTypeField.java index 59a03b0bc..2b18863ca 100644 --- a/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenSubjectTokenTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/postoauth2token/PostOAuth2TokenSubjectTokenTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum PostOAuth2TokenSubjectTokenTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/postoauth2tokenrefreshaccesstoken/PostOAuth2TokenRefreshAccessTokenGrantTypeField.java b/src/main/java/com/box/sdkgen/schemas/postoauth2tokenrefreshaccesstoken/PostOAuth2TokenRefreshAccessTokenGrantTypeField.java index 8b541d339..0c6b97fca 100644 --- a/src/main/java/com/box/sdkgen/schemas/postoauth2tokenrefreshaccesstoken/PostOAuth2TokenRefreshAccessTokenGrantTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/postoauth2tokenrefreshaccesstoken/PostOAuth2TokenRefreshAccessTokenGrantTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum PostOAuth2TokenRefreshAccessTokenGrantTypeField implements Valuable this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/recentitem/RecentItemInteractionTypeField.java b/src/main/java/com/box/sdkgen/schemas/recentitem/RecentItemInteractionTypeField.java index c0491cf1e..fe40e688e 100644 --- a/src/main/java/com/box/sdkgen/schemas/recentitem/RecentItemInteractionTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/recentitem/RecentItemInteractionTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -24,6 +25,7 @@ public enum RecentItemInteractionTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/resourcescope/ResourceScopeScopeField.java b/src/main/java/com/box/sdkgen/schemas/resourcescope/ResourceScopeScopeField.java index 408d195b8..32d4e040a 100644 --- a/src/main/java/com/box/sdkgen/schemas/resourcescope/ResourceScopeScopeField.java +++ b/src/main/java/com/box/sdkgen/schemas/resourcescope/ResourceScopeScopeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -33,6 +34,7 @@ public enum ResourceScopeScopeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyPolicyTypeField.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyPolicyTypeField.java index df4df7491..997c671e8 100644 --- a/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyPolicyTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyPolicyTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum RetentionPolicyPolicyTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyRetentionTypeField.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyRetentionTypeField.java index 422f61f3e..a8f42f905 100644 --- a/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyRetentionTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyRetentionTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum RetentionPolicyRetentionTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyStatusField.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyStatusField.java index bf8b68785..593b10432 100644 --- a/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyStatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicyStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum RetentionPolicyStatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentAssignedToTypeField.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentAssignedToTypeField.java index a62317795..d5b8b47c7 100644 --- a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentAssignedToTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentAssignedToTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum RetentionPolicyAssignmentAssignedToTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentTypeField.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentTypeField.java index 74d350392..4fba89ce0 100644 --- a/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicyassignment/RetentionPolicyAssignmentTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum RetentionPolicyAssignmentTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicybase/RetentionPolicyBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicybase/RetentionPolicyBaseTypeField.java index 451c2c362..0ed2d7134 100644 --- a/src/main/java/com/box/sdkgen/schemas/retentionpolicybase/RetentionPolicyBaseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicybase/RetentionPolicyBaseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum RetentionPolicyBaseTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicymini/RetentionPolicyMiniDispositionActionField.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicymini/RetentionPolicyMiniDispositionActionField.java index 564401cfd..57683cf26 100644 --- a/src/main/java/com/box/sdkgen/schemas/retentionpolicymini/RetentionPolicyMiniDispositionActionField.java +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicymini/RetentionPolicyMiniDispositionActionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum RetentionPolicyMiniDispositionActionField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariableTypeField.java b/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariableTypeField.java index 8786d5c8d..ef15642a4 100644 --- a/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariableTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariableTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum RoleVariableTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariableVariableTypeField.java b/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariableVariableTypeField.java index 66caa47c9..267208fc9 100644 --- a/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariableVariableTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariableVariableTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum RoleVariableVariableTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariableVariableValueField.java b/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariableVariableValueField.java index 82db76b7e..329186e99 100644 --- a/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariableVariableValueField.java +++ b/src/main/java/com/box/sdkgen/schemas/rolevariable/RoleVariableVariableValueField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -26,6 +27,7 @@ public enum RoleVariableVariableValueField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/searchresults/SearchResultsTypeField.java b/src/main/java/com/box/sdkgen/schemas/searchresults/SearchResultsTypeField.java index 0fcc97074..af72db707 100644 --- a/src/main/java/com/box/sdkgen/schemas/searchresults/SearchResultsTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/searchresults/SearchResultsTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum SearchResultsTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/searchresultswithsharedlinks/SearchResultsWithSharedLinksTypeField.java b/src/main/java/com/box/sdkgen/schemas/searchresultswithsharedlinks/SearchResultsWithSharedLinksTypeField.java index 5df195751..ee73775d1 100644 --- a/src/main/java/com/box/sdkgen/schemas/searchresultswithsharedlinks/SearchResultsWithSharedLinksTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/searchresultswithsharedlinks/SearchResultsWithSharedLinksTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum SearchResultsWithSharedLinksTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrier/ShieldInformationBarrierStatusField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrier/ShieldInformationBarrierStatusField.java index 79bc542e2..10a4b9ea4 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrier/ShieldInformationBarrierStatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrier/ShieldInformationBarrierStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -24,6 +25,7 @@ public enum ShieldInformationBarrierStatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrier/ShieldInformationBarrierTypeField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrier/ShieldInformationBarrierTypeField.java index 97b1c89db..56ea89c71 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrier/ShieldInformationBarrierTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrier/ShieldInformationBarrierTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum ShieldInformationBarrierTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierbase/ShieldInformationBarrierBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierbase/ShieldInformationBarrierBaseTypeField.java index e805359cc..f19e65a3d 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierbase/ShieldInformationBarrierBaseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierbase/ShieldInformationBarrierBaseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum ShieldInformationBarrierBaseTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreport/ShieldInformationBarrierReportStatusField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreport/ShieldInformationBarrierReportStatusField.java index ac2084a01..be24fcd03 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreport/ShieldInformationBarrierReportStatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreport/ShieldInformationBarrierReportStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -23,6 +24,7 @@ public enum ShieldInformationBarrierReportStatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportbase/ShieldInformationBarrierReportBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportbase/ShieldInformationBarrierReportBaseTypeField.java index 4be0721e5..4c0658bf7 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportbase/ShieldInformationBarrierReportBaseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarrierreportbase/ShieldInformationBarrierReportBaseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum ShieldInformationBarrierReportBaseTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegment/ShieldInformationBarrierSegmentTypeField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegment/ShieldInformationBarrierSegmentTypeField.java index 26543a6a3..0e193d5fa 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegment/ShieldInformationBarrierSegmentTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegment/ShieldInformationBarrierSegmentTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum ShieldInformationBarrierSegmentTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField.java index 36c6f218a..598327e42 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmember/ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegment this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmemberbase/ShieldInformationBarrierSegmentMemberBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmemberbase/ShieldInformationBarrierSegmentMemberBaseTypeField.java index 88788bfb0..300069dd4 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmemberbase/ShieldInformationBarrierSegmentMemberBaseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentmemberbase/ShieldInformationBarrierSegmentMemberBaseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum ShieldInformationBarrierSegmentMemberBaseTypeField implements Valuab this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionbase/ShieldInformationBarrierSegmentRestrictionBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionbase/ShieldInformationBarrierSegmentRestrictionBaseTypeField.java index 68b240b08..d68e3f06b 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionbase/ShieldInformationBarrierSegmentRestrictionBaseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionbase/ShieldInformationBarrierSegmentRestrictionBaseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum ShieldInformationBarrierSegmentRestrictionBaseTypeField implements V this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentTypeField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentTypeField.java index 1f1232968..c69df6e2e 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum ShieldInformationBarrierSegmentRestrictionMiniRestrictedSegmentTypeF this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField.java b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField.java index 06914f9f5..026c3bec4 100644 --- a/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/shieldinformationbarriersegmentrestrictionmini/ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarri this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestStatusField.java b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestStatusField.java index 6e22d34e0..0e513ef86 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestStatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -31,6 +32,7 @@ public enum SignRequestStatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestTypeField.java index 08cac0b57..fd1dbe254 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum SignRequestTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestcreaterequest/SignRequestCreateRequestSignatureColorField.java b/src/main/java/com/box/sdkgen/schemas/signrequestcreaterequest/SignRequestCreateRequestSignatureColorField.java index 31c969827..821140350 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestcreaterequest/SignRequestCreateRequestSignatureColorField.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestcreaterequest/SignRequestCreateRequestSignatureColorField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum SignRequestCreateRequestSignatureColorField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestcreatesigner/SignRequestCreateSignerRoleField.java b/src/main/java/com/box/sdkgen/schemas/signrequestcreatesigner/SignRequestCreateSignerRoleField.java index 543e56117..bf790e840 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestcreatesigner/SignRequestCreateSignerRoleField.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestcreatesigner/SignRequestCreateSignerRoleField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum SignRequestCreateSignerRoleField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSignerSignerDecisionTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSignerSignerDecisionTypeField.java index 582635fb1..4bcea6e33 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSignerSignerDecisionTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsigner/SignRequestSignerSignerDecisionTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum SignRequestSignerSignerDecisionTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInputContentTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInputContentTypeField.java index 79ee003f9..2138604d4 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInputContentTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInputContentTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -34,6 +35,7 @@ public enum SignRequestSignerInputContentTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInputTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInputTypeField.java index 79b69c16a..d04aa5bcf 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInputTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInputTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -25,6 +26,7 @@ public enum SignRequestSignerInputTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidationValidationTypeField.java index 81d2c290b..c1de2d187 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidationValidationTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputcustomvalidation/SignRequestSignerInputCustomValidationValidationTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum SignRequestSignerInputCustomValidationValidationTypeField implements this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateasiavalidation/SignRequestSignerInputDateAsiaValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateasiavalidation/SignRequestSignerInputDateAsiaValidationValidationTypeField.java index a6dd68a18..0ee3d4617 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateasiavalidation/SignRequestSignerInputDateAsiaValidationValidationTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateasiavalidation/SignRequestSignerInputDateAsiaValidationValidationTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum SignRequestSignerInputDateAsiaValidationValidationTypeField implemen this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateeuvalidation/SignRequestSignerInputDateEuValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateeuvalidation/SignRequestSignerInputDateEuValidationValidationTypeField.java index 9c2f7cefd..140c73b87 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateeuvalidation/SignRequestSignerInputDateEuValidationValidationTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateeuvalidation/SignRequestSignerInputDateEuValidationValidationTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum SignRequestSignerInputDateEuValidationValidationTypeField implements this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateisovalidation/SignRequestSignerInputDateIsoValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateisovalidation/SignRequestSignerInputDateIsoValidationValidationTypeField.java index 6415ff565..ccadce16d 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateisovalidation/SignRequestSignerInputDateIsoValidationValidationTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateisovalidation/SignRequestSignerInputDateIsoValidationValidationTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum SignRequestSignerInputDateIsoValidationValidationTypeField implement this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateusvalidation/SignRequestSignerInputDateUsValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateusvalidation/SignRequestSignerInputDateUsValidationValidationTypeField.java index 528b4ca77..75d47694a 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateusvalidation/SignRequestSignerInputDateUsValidationValidationTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputdateusvalidation/SignRequestSignerInputDateUsValidationValidationTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum SignRequestSignerInputDateUsValidationValidationTypeField implements this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputemailvalidation/SignRequestSignerInputEmailValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputemailvalidation/SignRequestSignerInputEmailValidationValidationTypeField.java index c2ca1b18e..2b92baf16 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputemailvalidation/SignRequestSignerInputEmailValidationValidationTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputemailvalidation/SignRequestSignerInputEmailValidationValidationTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum SignRequestSignerInputEmailValidationValidationTypeField implements this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithcommavalidation/SignRequestSignerInputNumberWithCommaValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithcommavalidation/SignRequestSignerInputNumberWithCommaValidationValidationTypeField.java index 682d5028d..454661702 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithcommavalidation/SignRequestSignerInputNumberWithCommaValidationValidationTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithcommavalidation/SignRequestSignerInputNumberWithCommaValidationValidationTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum SignRequestSignerInputNumberWithCommaValidationValidationTypeField i this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithperiodvalidation/SignRequestSignerInputNumberWithPeriodValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithperiodvalidation/SignRequestSignerInputNumberWithPeriodValidationValidationTypeField.java index 6e9d358e3..86b482e4d 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithperiodvalidation/SignRequestSignerInputNumberWithPeriodValidationValidationTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputnumberwithperiodvalidation/SignRequestSignerInputNumberWithPeriodValidationValidationTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum SignRequestSignerInputNumberWithPeriodValidationValidationTypeField this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputssnvalidation/SignRequestSignerInputSsnValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputssnvalidation/SignRequestSignerInputSsnValidationValidationTypeField.java index b27d71d42..c41f8e88b 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputssnvalidation/SignRequestSignerInputSsnValidationValidationTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputssnvalidation/SignRequestSignerInputSsnValidationValidationTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum SignRequestSignerInputSsnValidationValidationTypeField implements Va this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzip4validation/SignRequestSignerInputZip4ValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzip4validation/SignRequestSignerInputZip4ValidationValidationTypeField.java index 010aa0bc4..17f8c264e 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzip4validation/SignRequestSignerInputZip4ValidationValidationTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzip4validation/SignRequestSignerInputZip4ValidationValidationTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum SignRequestSignerInputZip4ValidationValidationTypeField implements V this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzipvalidation/SignRequestSignerInputZipValidationValidationTypeField.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzipvalidation/SignRequestSignerInputZipValidationValidationTypeField.java index 84b134ff5..09922875c 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzipvalidation/SignRequestSignerInputZipValidationValidationTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinputzipvalidation/SignRequestSignerInputZipValidationValidationTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum SignRequestSignerInputZipValidationValidationTypeField implements Va this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoNonEditableField.java b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoNonEditableField.java index 35b2bc8a8..a4bb89761 100644 --- a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoNonEditableField.java +++ b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoNonEditableField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -25,6 +26,7 @@ public enum SignTemplateAdditionalInfoNonEditableField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoRequiredSignersField.java b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoRequiredSignersField.java index 3d44b3664..47427ec6e 100644 --- a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoRequiredSignersField.java +++ b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateAdditionalInfoRequiredSignersField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum SignTemplateAdditionalInfoRequiredSignersField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateTypeField.java b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateTypeField.java index 84a9414ae..48afa4575 100644 --- a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplateTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum SignTemplateTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardInvocationTypeField.java b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardInvocationTypeField.java index d371fbeae..137f6854f 100644 --- a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardInvocationTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardInvocationTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum StatusSkillCardInvocationTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillCardTypeField.java b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillCardTypeField.java index 9195953b8..179974d38 100644 --- a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillCardTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillCardTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum StatusSkillCardSkillCardTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillTypeField.java b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillTypeField.java index bec9f207d..540d41c6b 100644 --- a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardSkillTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum StatusSkillCardSkillTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardStatusCodeField.java b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardStatusCodeField.java index 49d326cb1..7472ac28a 100644 --- a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardStatusCodeField.java +++ b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardStatusCodeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -24,6 +25,7 @@ public enum StatusSkillCardStatusCodeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardTypeField.java b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardTypeField.java index 468a54d86..700620e7c 100644 --- a/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/statusskillcard/StatusSkillCardTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum StatusSkillCardTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignmentTypeField.java b/src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignmentTypeField.java index 35c4ca085..b3ad0245f 100644 --- a/src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignmentTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/storagepolicyassignment/StoragePolicyAssignmentTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum StoragePolicyAssignmentTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/storagepolicymini/StoragePolicyMiniTypeField.java b/src/main/java/com/box/sdkgen/schemas/storagepolicymini/StoragePolicyMiniTypeField.java index b9d6ee6d8..75778a72e 100644 --- a/src/main/java/com/box/sdkgen/schemas/storagepolicymini/StoragePolicyMiniTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/storagepolicymini/StoragePolicyMiniTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum StoragePolicyMiniTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/task/TaskActionField.java b/src/main/java/com/box/sdkgen/schemas/task/TaskActionField.java index 067dacc4e..e4a13a9c3 100644 --- a/src/main/java/com/box/sdkgen/schemas/task/TaskActionField.java +++ b/src/main/java/com/box/sdkgen/schemas/task/TaskActionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum TaskActionField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/task/TaskCompletionRuleField.java b/src/main/java/com/box/sdkgen/schemas/task/TaskCompletionRuleField.java index 0f81faef9..e0e3921f8 100644 --- a/src/main/java/com/box/sdkgen/schemas/task/TaskCompletionRuleField.java +++ b/src/main/java/com/box/sdkgen/schemas/task/TaskCompletionRuleField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum TaskCompletionRuleField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/task/TaskTypeField.java b/src/main/java/com/box/sdkgen/schemas/task/TaskTypeField.java index 2da6264e5..781a46d4c 100644 --- a/src/main/java/com/box/sdkgen/schemas/task/TaskTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/task/TaskTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum TaskTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignmentResolutionStateField.java b/src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignmentResolutionStateField.java index d321b3b0c..d5d9a1a24 100644 --- a/src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignmentResolutionStateField.java +++ b/src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignmentResolutionStateField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -23,6 +24,7 @@ public enum TaskAssignmentResolutionStateField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignmentTypeField.java b/src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignmentTypeField.java index 7a11897d4..cab00d57b 100644 --- a/src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignmentTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/taskassignment/TaskAssignmentTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum TaskAssignmentTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/templatesigner/TemplateSignerRoleField.java b/src/main/java/com/box/sdkgen/schemas/templatesigner/TemplateSignerRoleField.java index e2de6ebf0..fcf00fbdc 100644 --- a/src/main/java/com/box/sdkgen/schemas/templatesigner/TemplateSignerRoleField.java +++ b/src/main/java/com/box/sdkgen/schemas/templatesigner/TemplateSignerRoleField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum TemplateSignerRoleField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputContentTypeField.java b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputContentTypeField.java index 138ac2f71..8b557ca67 100644 --- a/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputContentTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputContentTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -34,6 +35,7 @@ public enum TemplateSignerInputContentTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputTypeField.java b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputTypeField.java index 48f8f67c6..92ce95ffa 100644 --- a/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/templatesignerinput/TemplateSignerInputTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -26,6 +27,7 @@ public enum TemplateSignerInputTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceEnterpriseTypeField.java b/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceEnterpriseTypeField.java index c980cd33d..f3b6b2b84 100644 --- a/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceEnterpriseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceEnterpriseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum TermsOfServiceEnterpriseTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceStatusField.java b/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceStatusField.java index 612ab5b1c..46a259e4b 100644 --- a/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceStatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum TermsOfServiceStatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceTosTypeField.java b/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceTosTypeField.java index 13652408a..4a3b96e78 100644 --- a/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceTosTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/termsofservice/TermsOfServiceTosTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum TermsOfServiceTosTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/termsofservicebase/TermsOfServiceBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/termsofservicebase/TermsOfServiceBaseTypeField.java index cfbf0908f..f34c8405a 100644 --- a/src/main/java/com/box/sdkgen/schemas/termsofservicebase/TermsOfServiceBaseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/termsofservicebase/TermsOfServiceBaseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum TermsOfServiceBaseTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatus/TermsOfServiceUserStatusTypeField.java b/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatus/TermsOfServiceUserStatusTypeField.java index 7dfe28d44..8806f6f40 100644 --- a/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatus/TermsOfServiceUserStatusTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/termsofserviceuserstatus/TermsOfServiceUserStatusTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum TermsOfServiceUserStatusTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardInvocationTypeField.java b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardInvocationTypeField.java index 9915deeac..17b5e0083 100644 --- a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardInvocationTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardInvocationTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum TimelineSkillCardInvocationTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillCardTypeField.java b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillCardTypeField.java index 4816b482e..d349db534 100644 --- a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillCardTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillCardTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum TimelineSkillCardSkillCardTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillTypeField.java b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillTypeField.java index f03d00269..b6e2d3e1d 100644 --- a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardSkillTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum TimelineSkillCardSkillTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardTypeField.java b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardTypeField.java index a5af38276..dfe922422 100644 --- a/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/timelineskillcard/TimelineSkillCardTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum TimelineSkillCardTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/trackingcode/TrackingCodeTypeField.java b/src/main/java/com/box/sdkgen/schemas/trackingcode/TrackingCodeTypeField.java index 1e800f0dc..ba72edab0 100644 --- a/src/main/java/com/box/sdkgen/schemas/trackingcode/TrackingCodeTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/trackingcode/TrackingCodeTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum TrackingCodeTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardInvocationTypeField.java b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardInvocationTypeField.java index 52fba0836..d904ac160 100644 --- a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardInvocationTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardInvocationTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum TranscriptSkillCardInvocationTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillCardTypeField.java b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillCardTypeField.java index 4f60593a6..fb4c265cb 100644 --- a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillCardTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillCardTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum TranscriptSkillCardSkillCardTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillTypeField.java b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillTypeField.java index 7a8a42fb3..33b945294 100644 --- a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardSkillTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum TranscriptSkillCardSkillTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardTypeField.java b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardTypeField.java index 72e09caa2..0b648b2a9 100644 --- a/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/transcriptskillcard/TranscriptSkillCardTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum TranscriptSkillCardTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFileItemStatusField.java b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFileItemStatusField.java index e943c79de..41df5ad44 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFileItemStatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFileItemStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum TrashFileItemStatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFilePathCollectionEntriesTypeField.java b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFilePathCollectionEntriesTypeField.java index 3fff9104d..68786ec78 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFilePathCollectionEntriesTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFilePathCollectionEntriesTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum TrashFilePathCollectionEntriesTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFileTypeField.java b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFileTypeField.java index 54b2c6ce9..1305b06c9 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFileTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfile/TrashFileTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum TrashFileTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestoredItemStatusField.java b/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestoredItemStatusField.java index 497164c05..f50b9f6e3 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestoredItemStatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestoredItemStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum TrashFileRestoredItemStatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestoredTypeField.java b/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestoredTypeField.java index bbb980a09..2923e86cd 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestoredTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfilerestored/TrashFileRestoredTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum TrashFileRestoredTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderItemStatusField.java b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderItemStatusField.java index 5e36fc5e6..e04fe09fa 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderItemStatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderItemStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum TrashFolderItemStatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderPathCollectionEntriesTypeField.java b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderPathCollectionEntriesTypeField.java index 4ad767288..7a2009d58 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderPathCollectionEntriesTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderPathCollectionEntriesTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum TrashFolderPathCollectionEntriesTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderTypeField.java b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderTypeField.java index cd3de5a35..aee9cdfac 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfolder/TrashFolderTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum TrashFolderTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestoredItemStatusField.java b/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestoredItemStatusField.java index 2a3c9919b..8c789d58c 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestoredItemStatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestoredItemStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum TrashFolderRestoredItemStatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestoredTypeField.java b/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestoredTypeField.java index c3092fb31..e1c8b630b 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestoredTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/trashfolderrestored/TrashFolderRestoredTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum TrashFolderRestoredTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkItemStatusField.java b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkItemStatusField.java index 0685ef16c..9e461f63e 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkItemStatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkItemStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum TrashWebLinkItemStatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkPathCollectionEntriesTypeField.java b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkPathCollectionEntriesTypeField.java index d79dd0fb6..50235122b 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkPathCollectionEntriesTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkPathCollectionEntriesTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum TrashWebLinkPathCollectionEntriesTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkTypeField.java b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkTypeField.java index a3369f260..99e652deb 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/trashweblink/TrashWebLinkTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum TrashWebLinkTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestoredItemStatusField.java b/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestoredItemStatusField.java index 1837f762a..7d2531edd 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestoredItemStatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestoredItemStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum TrashWebLinkRestoredItemStatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestoredTypeField.java b/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestoredTypeField.java index 75405122c..347f24dc2 100644 --- a/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestoredTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/trashweblinkrestored/TrashWebLinkRestoredTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum TrashWebLinkRestoredTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/uploadparts/UploadPartsOrderDirectionField.java b/src/main/java/com/box/sdkgen/schemas/uploadparts/UploadPartsOrderDirectionField.java index 9c5b58e11..0982abf32 100644 --- a/src/main/java/com/box/sdkgen/schemas/uploadparts/UploadPartsOrderDirectionField.java +++ b/src/main/java/com/box/sdkgen/schemas/uploadparts/UploadPartsOrderDirectionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum UploadPartsOrderDirectionField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSessionTypeField.java b/src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSessionTypeField.java index 4b1cc1ed2..55dda19f6 100644 --- a/src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSessionTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/uploadsession/UploadSessionTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum UploadSessionTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/user/UserStatusField.java b/src/main/java/com/box/sdkgen/schemas/user/UserStatusField.java index 3380fb3e3..0be5b5f8d 100644 --- a/src/main/java/com/box/sdkgen/schemas/user/UserStatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/user/UserStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -23,6 +24,7 @@ public enum UserStatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/userbase/UserBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/userbase/UserBaseTypeField.java index 2e6527129..a5ca385c5 100644 --- a/src/main/java/com/box/sdkgen/schemas/userbase/UserBaseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/userbase/UserBaseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum UserBaseTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/userfull/UserFullEnterpriseTypeField.java b/src/main/java/com/box/sdkgen/schemas/userfull/UserFullEnterpriseTypeField.java index 0824ff82c..ad5d53956 100644 --- a/src/main/java/com/box/sdkgen/schemas/userfull/UserFullEnterpriseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/userfull/UserFullEnterpriseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum UserFullEnterpriseTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/userfull/UserFullRoleField.java b/src/main/java/com/box/sdkgen/schemas/userfull/UserFullRoleField.java index 5bc612dcb..319819b38 100644 --- a/src/main/java/com/box/sdkgen/schemas/userfull/UserFullRoleField.java +++ b/src/main/java/com/box/sdkgen/schemas/userfull/UserFullRoleField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum UserFullRoleField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/users/UsersOrderDirectionField.java b/src/main/java/com/box/sdkgen/schemas/users/UsersOrderDirectionField.java index 4f172e906..f30df9b8f 100644 --- a/src/main/java/com/box/sdkgen/schemas/users/UsersOrderDirectionField.java +++ b/src/main/java/com/box/sdkgen/schemas/users/UsersOrderDirectionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum UsersOrderDirectionField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0TypeField.java index a33ec4c2e..3f115f748 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/archivev2025r0/ArchiveV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum ArchiveV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/clienterrorv2025r0/ClientErrorV2025R0CodeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/clienterrorv2025r0/ClientErrorV2025R0CodeField.java index 05d7db7cf..6963600e1 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/clienterrorv2025r0/ClientErrorV2025R0CodeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/clienterrorv2025r0/ClientErrorV2025R0CodeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -36,6 +37,7 @@ public enum ClientErrorV2025R0CodeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/clienterrorv2025r0/ClientErrorV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/clienterrorv2025r0/ClientErrorV2025R0TypeField.java index b6c9e1e88..e96edf891 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/clienterrorv2025r0/ClientErrorV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/clienterrorv2025r0/ClientErrorV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum ClientErrorV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchbasev2025r0/DocGenBatchBaseV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchbasev2025r0/DocGenBatchBaseV2025R0TypeField.java index b798e2d17..f09ae1935 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchbasev2025r0/DocGenBatchBaseV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchbasev2025r0/DocGenBatchBaseV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum DocGenBatchBaseV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0DestinationFolderTypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0DestinationFolderTypeField.java index eccd71d29..f5b2f7e74 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0DestinationFolderTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenbatchcreaterequestv2025r0/DocGenBatchCreateRequestV2025R0DestinationFolderTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum DocGenBatchCreateRequestV2025R0DestinationFolderTypeField implements this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobbasev2025r0/DocGenJobBaseV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobbasev2025r0/DocGenJobBaseV2025R0TypeField.java index df8934561..4a522a777 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobbasev2025r0/DocGenJobBaseV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobbasev2025r0/DocGenJobBaseV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum DocGenJobBaseV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0StatusField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0StatusField.java index 13be2c01e..188bad2c9 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0StatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0StatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -24,6 +25,7 @@ public enum DocGenJobV2025R0StatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagv2025r0/DocGenTagV2025R0TagTypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagv2025r0/DocGenTagV2025R0TagTypeField.java index 97c33e7f2..3dde3031e 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagv2025r0/DocGenTagV2025R0TagTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgentagv2025r0/DocGenTagV2025R0TagTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -25,6 +26,7 @@ public enum DocGenTagV2025R0TagTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationv2025r0/EnterpriseConfigurationV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationv2025r0/EnterpriseConfigurationV2025R0TypeField.java index 3ba236c51..b0461b775 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationv2025r0/EnterpriseConfigurationV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterpriseconfigurationv2025r0/EnterpriseConfigurationV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum EnterpriseConfigurationV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisereferencev2025r0/EnterpriseReferenceV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisereferencev2025r0/EnterpriseReferenceV2025R0TypeField.java index 4721cb4d8..903dd4256 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisereferencev2025r0/EnterpriseReferenceV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/enterprisereferencev2025r0/EnterpriseReferenceV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum EnterpriseReferenceV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/filereferencev2025r0/FileReferenceV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/filereferencev2025r0/FileReferenceV2025R0TypeField.java index dbc60d679..d0a5fb2d7 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/filereferencev2025r0/FileReferenceV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/filereferencev2025r0/FileReferenceV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum FileReferenceV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/fileversionbasev2025r0/FileVersionBaseV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/fileversionbasev2025r0/FileVersionBaseV2025R0TypeField.java index d943912cc..54b32611d 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/fileversionbasev2025r0/FileVersionBaseV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/fileversionbasev2025r0/FileVersionBaseV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum FileVersionBaseV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/folderreferencev2025r0/FolderReferenceV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/folderreferencev2025r0/FolderReferenceV2025R0TypeField.java index 5b696c938..440507d86 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/folderreferencev2025r0/FolderReferenceV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/folderreferencev2025r0/FolderReferenceV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum FolderReferenceV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/groupbasev2025r0/GroupBaseV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/groupbasev2025r0/GroupBaseV2025R0TypeField.java index 18687c8fa..516213084 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/groupbasev2025r0/GroupBaseV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/groupbasev2025r0/GroupBaseV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum GroupBaseV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/groupminiv2025r0/GroupMiniV2025R0GroupTypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/groupminiv2025r0/GroupMiniV2025R0GroupTypeField.java index f65cfe8cc..f7075ab56 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/groupminiv2025r0/GroupMiniV2025R0GroupTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/groupminiv2025r0/GroupMiniV2025R0GroupTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum GroupMiniV2025R0GroupTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubbasev2025r0/HubBaseV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubbasev2025r0/HubBaseV2025R0TypeField.java index d8b5ee44a..4f52292d0 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubbasev2025r0/HubBaseV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubbasev2025r0/HubBaseV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum HubBaseV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcalloutboxtextblockv2025r0/HubCalloutBoxTextBlockV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcalloutboxtextblockv2025r0/HubCalloutBoxTextBlockV2025R0TypeField.java index d1a5d3cc5..90292fa57 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcalloutboxtextblockv2025r0/HubCalloutBoxTextBlockV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcalloutboxtextblockv2025r0/HubCalloutBoxTextBlockV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum HubCalloutBoxTextBlockV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0HubTypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0HubTypeField.java index 14dc5202e..929fd7e09 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0HubTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationcreaterequestv2025r0/HubCollaborationCreateRequestV2025R0HubTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum HubCollaborationCreateRequestV2025R0HubTypeField implements Valuable this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0StatusField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0StatusField.java index b9bc9d709..c22be9663 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0StatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0StatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum HubCollaborationV2025R0StatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0TypeField.java index 996c799a6..ce6d6ec5f 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcollaborationv2025r0/HubCollaborationV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum HubCollaborationV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdividerblockv2025r0/HubDividerBlockV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdividerblockv2025r0/HubDividerBlockV2025R0TypeField.java index 371ab3cb3..e187aa437 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdividerblockv2025r0/HubDividerBlockV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdividerblockv2025r0/HubDividerBlockV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum HubDividerBlockV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentblocksv2025r0/HubDocumentBlocksV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentblocksv2025r0/HubDocumentBlocksV2025R0TypeField.java index 6717304e4..47e718468 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentblocksv2025r0/HubDocumentBlocksV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentblocksv2025r0/HubDocumentBlocksV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum HubDocumentBlocksV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentpagesv2025r0/HubDocumentPagesV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentpagesv2025r0/HubDocumentPagesV2025R0TypeField.java index 3a59c54cd..d78063e58 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentpagesv2025r0/HubDocumentPagesV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubdocumentpagesv2025r0/HubDocumentPagesV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum HubDocumentPagesV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemlistblockv2025r0/HubItemListBlockV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemlistblockv2025r0/HubItemListBlockV2025R0TypeField.java index f56dbd9e9..79fdbe6bc 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemlistblockv2025r0/HubItemListBlockV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemlistblockv2025r0/HubItemListBlockV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum HubItemListBlockV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationv2025r0/HubItemOperationV2025R0ActionField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationv2025r0/HubItemOperationV2025R0ActionField.java index 2b08c006d..340709ea2 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationv2025r0/HubItemOperationV2025R0ActionField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemoperationv2025r0/HubItemOperationV2025R0ActionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum HubItemOperationV2025R0ActionField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemv2025r0/HubItemV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemv2025r0/HubItemV2025R0TypeField.java index 8fe853d9d..ae17907da 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemv2025r0/HubItemV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubitemv2025r0/HubItemV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum HubItemV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubparagraphtextblockv2025r0/HubParagraphTextBlockV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubparagraphtextblockv2025r0/HubParagraphTextBlockV2025R0TypeField.java index e0e062fe5..edd87486e 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubparagraphtextblockv2025r0/HubParagraphTextBlockV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubparagraphtextblockv2025r0/HubParagraphTextBlockV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum HubParagraphTextBlockV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubsectiontitletextblockv2025r0/HubSectionTitleTextBlockV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubsectiontitletextblockv2025r0/HubSectionTitleTextBlockV2025R0TypeField.java index 33225e6ee..d5a906772 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubsectiontitletextblockv2025r0/HubSectionTitleTextBlockV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubsectiontitletextblockv2025r0/HubSectionTitleTextBlockV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum HubSectionTitleTextBlockV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentcountryv2025r0/ShieldListContentCountryV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentcountryv2025r0/ShieldListContentCountryV2025R0TypeField.java index e30308c52..f56969cc4 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentcountryv2025r0/ShieldListContentCountryV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentcountryv2025r0/ShieldListContentCountryV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum ShieldListContentCountryV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentdomainv2025r0/ShieldListContentDomainV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentdomainv2025r0/ShieldListContentDomainV2025R0TypeField.java index 8357c31e3..3e9917b8f 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentdomainv2025r0/ShieldListContentDomainV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentdomainv2025r0/ShieldListContentDomainV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum ShieldListContentDomainV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentemailv2025r0/ShieldListContentEmailV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentemailv2025r0/ShieldListContentEmailV2025R0TypeField.java index 0cd080f98..736230dc8 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentemailv2025r0/ShieldListContentEmailV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentemailv2025r0/ShieldListContentEmailV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum ShieldListContentEmailV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0TypeField.java index ba2b883c9..c0582d293 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentintegrationv2025r0/ShieldListContentIntegrationV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum ShieldListContentIntegrationV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentipv2025r0/ShieldListContentIpV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentipv2025r0/ShieldListContentIpV2025R0TypeField.java index 96e463527..635970e58 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentipv2025r0/ShieldListContentIpV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistcontentipv2025r0/ShieldListContentIpV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum ShieldListContentIpV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0TypeField.java index 7cea0655b..8fcd45bb4 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldlistminiv2025r0/ShieldListMiniV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum ShieldListMiniV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldruleitemv2025r0/ShieldRuleItemV2025R0PriorityField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldruleitemv2025r0/ShieldRuleItemV2025R0PriorityField.java index 974613fa3..2ea977f87 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldruleitemv2025r0/ShieldRuleItemV2025R0PriorityField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldruleitemv2025r0/ShieldRuleItemV2025R0PriorityField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -24,6 +25,7 @@ public enum ShieldRuleItemV2025R0PriorityField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldruleitemv2025r0/ShieldRuleItemV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldruleitemv2025r0/ShieldRuleItemV2025R0TypeField.java index 5c7194a3b..db24b7047 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldruleitemv2025r0/ShieldRuleItemV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/shieldruleitemv2025r0/ShieldRuleItemV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum ShieldRuleItemV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/termsofservicebasev2025r0/TermsOfServiceBaseV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/termsofservicebasev2025r0/TermsOfServiceBaseV2025R0TypeField.java index 44f645453..0669d1c9f 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/termsofservicebasev2025r0/TermsOfServiceBaseV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/termsofservicebasev2025r0/TermsOfServiceBaseV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum TermsOfServiceBaseV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/userbasev2025r0/UserBaseV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/userbasev2025r0/UserBaseV2025R0TypeField.java index d0f73986b..739d066b5 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/userbasev2025r0/UserBaseV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/userbasev2025r0/UserBaseV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum UserBaseV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/userorgroupreferencev2025r0/UserOrGroupReferenceV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/userorgroupreferencev2025r0/UserOrGroupReferenceV2025R0TypeField.java index 7ca167511..eb87f3227 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/userorgroupreferencev2025r0/UserOrGroupReferenceV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/userorgroupreferencev2025r0/UserOrGroupReferenceV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum UserOrGroupReferenceV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/userreferencev2025r0/UserReferenceV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/userreferencev2025r0/UserReferenceV2025R0TypeField.java index e930f325a..b499e5f7f 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/userreferencev2025r0/UserReferenceV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/userreferencev2025r0/UserReferenceV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum UserReferenceV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0TypeField.java index f2b8a56a0..7a2de2470 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0TypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/weblinkreferencev2025r0/WeblinkReferenceV2025R0TypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum WeblinkReferenceV2025R0TypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/webhook/WebhookTriggersField.java b/src/main/java/com/box/sdkgen/schemas/webhook/WebhookTriggersField.java index 77b16ffeb..ae02962bf 100644 --- a/src/main/java/com/box/sdkgen/schemas/webhook/WebhookTriggersField.java +++ b/src/main/java/com/box/sdkgen/schemas/webhook/WebhookTriggersField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -62,6 +63,7 @@ public enum WebhookTriggersField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMiniTargetTypeField.java b/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMiniTargetTypeField.java index 2c5e7b9a2..a80281732 100644 --- a/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMiniTargetTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMiniTargetTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum WebhookMiniTargetTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMiniTypeField.java b/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMiniTypeField.java index b9a49a308..544d7a0a3 100644 --- a/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMiniTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/webhookmini/WebhookMiniTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum WebhookMiniTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkItemStatusField.java b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkItemStatusField.java index d2e2e4fab..df5b4440e 100644 --- a/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkItemStatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkItemStatusField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum WebLinkItemStatusField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkAccessField.java b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkAccessField.java index 355e0d89b..61c33d4ef 100644 --- a/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkAccessField.java +++ b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkAccessField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum WebLinkSharedLinkAccessField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkEffectiveAccessField.java b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkEffectiveAccessField.java index d980fba2c..33ba7b431 100644 --- a/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkEffectiveAccessField.java +++ b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkEffectiveAccessField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum WebLinkSharedLinkEffectiveAccessField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkEffectivePermissionField.java b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkEffectivePermissionField.java index 4e9a46ab6..11ae9952e 100644 --- a/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkEffectivePermissionField.java +++ b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkSharedLinkEffectivePermissionField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -23,6 +24,7 @@ public enum WebLinkSharedLinkEffectivePermissionField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/weblinkbase/WebLinkBaseTypeField.java b/src/main/java/com/box/sdkgen/schemas/weblinkbase/WebLinkBaseTypeField.java index a125dfcb5..e326a60b4 100644 --- a/src/main/java/com/box/sdkgen/schemas/weblinkbase/WebLinkBaseTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/weblinkbase/WebLinkBaseTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum WebLinkBaseTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesActionTypeField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesActionTypeField.java index 460920ca2..0abe80c5a 100644 --- a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesActionTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesActionTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -42,6 +43,7 @@ public enum WorkflowFlowsOutcomesActionTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesIfRejectedActionTypeField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesIfRejectedActionTypeField.java index e7087d824..52089d2a4 100644 --- a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesIfRejectedActionTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesIfRejectedActionTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -42,6 +43,7 @@ public enum WorkflowFlowsOutcomesIfRejectedActionTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesIfRejectedTypeField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesIfRejectedTypeField.java index 53c3db46a..a11c8160a 100644 --- a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesIfRejectedTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesIfRejectedTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum WorkflowFlowsOutcomesIfRejectedTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesTypeField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesTypeField.java index 8b70557d4..8118b7533 100644 --- a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsOutcomesTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum WorkflowFlowsOutcomesTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeObjectTypeField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeObjectTypeField.java index ae8402c54..b7180b146 100644 --- a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeObjectTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeObjectTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum WorkflowFlowsTriggerScopeObjectTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeTypeField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeTypeField.java index 7c5c4d881..6ae478b3b 100644 --- a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerScopeTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum WorkflowFlowsTriggerScopeTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerTriggerTypeField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerTriggerTypeField.java index 585b5cc89..7c7e60f25 100644 --- a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerTriggerTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerTriggerTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum WorkflowFlowsTriggerTriggerTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerTypeField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerTypeField.java index 33da167a1..0c7c3ecdf 100644 --- a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTriggerTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum WorkflowFlowsTriggerTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTypeField.java b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTypeField.java index 402561c3f..178e6632b 100644 --- a/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/workflow/WorkflowFlowsTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum WorkflowFlowsTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/workflowmini/WorkflowMiniTypeField.java b/src/main/java/com/box/sdkgen/schemas/workflowmini/WorkflowMiniTypeField.java index 571750807..224fd7963 100644 --- a/src/main/java/com/box/sdkgen/schemas/workflowmini/WorkflowMiniTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/workflowmini/WorkflowMiniTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,6 +21,7 @@ public enum WorkflowMiniTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownloadNameConflictsTypeField.java b/src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownloadNameConflictsTypeField.java index 3c6dd804b..f3b48b1b5 100644 --- a/src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownloadNameConflictsTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/zipdownload/ZipDownloadNameConflictsTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum ZipDownloadNameConflictsTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/zipdownloadrequest/ZipDownloadRequestItemsTypeField.java b/src/main/java/com/box/sdkgen/schemas/zipdownloadrequest/ZipDownloadRequestItemsTypeField.java index 447142601..1fcd3cfe4 100644 --- a/src/main/java/com/box/sdkgen/schemas/zipdownloadrequest/ZipDownloadRequestItemsTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/zipdownloadrequest/ZipDownloadRequestItemsTypeField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -21,6 +22,7 @@ public enum ZipDownloadRequestItemsTypeField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } diff --git a/src/main/java/com/box/sdkgen/schemas/zipdownloadstatus/ZipDownloadStatusStateField.java b/src/main/java/com/box/sdkgen/schemas/zipdownloadstatus/ZipDownloadStatusStateField.java index 37e326e6a..989691df7 100644 --- a/src/main/java/com/box/sdkgen/schemas/zipdownloadstatus/ZipDownloadStatusStateField.java +++ b/src/main/java/com/box/sdkgen/schemas/zipdownloadstatus/ZipDownloadStatusStateField.java @@ -2,6 +2,7 @@ import com.box.sdkgen.serialization.json.EnumWrapper; import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -22,6 +23,7 @@ public enum ZipDownloadStatusStateField implements Valuable { this.value = value; } + @JsonValue public String getValue() { return value; } From d9ff7553fb958811b3344c7b98828a57a8134531 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Thu, 9 Apr 2026 14:17:58 +0200 Subject: [PATCH 103/148] fix: Fix serialization of `OffsetDateTime` (box/box-codegen#935) (#1778) --- .codegen.json | 2 +- .../java/com/box/sdkgen/internal/utils/UtilsManager.java | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.codegen.json b/.codegen.json index bb5617f0c..09b5612c4 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "37c0986", "specHash": "f8e0d99", "version": "10.7.0" } +{ "engineHash": "acae1d5", "specHash": "f8e0d99", "version": "10.7.0" } diff --git a/src/main/java/com/box/sdkgen/internal/utils/UtilsManager.java b/src/main/java/com/box/sdkgen/internal/utils/UtilsManager.java index 93a4f035e..665c23722 100644 --- a/src/main/java/com/box/sdkgen/internal/utils/UtilsManager.java +++ b/src/main/java/com/box/sdkgen/internal/utils/UtilsManager.java @@ -26,6 +26,7 @@ import java.time.format.DateTimeFormatterBuilder; import java.time.format.DateTimeParseException; import java.time.temporal.ChronoField; +import java.time.temporal.ChronoUnit; import java.util.Arrays; import java.util.Base64; import java.util.HashMap; @@ -56,8 +57,6 @@ public class UtilsManager { .optionalEnd() .appendOffsetId() .toFormatter(); - private static final DateTimeFormatter OFFSET_DATE_TIME_FORMAT_WITH_MILLIS = - DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); private static final DateTimeFormatter OFFSET_DATE_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd"); @@ -395,7 +394,7 @@ public static OffsetDateTime dateTimeFromString(String dateString) { } public static String dateTimeToString(OffsetDateTime dateTime) { - return dateTime.format(OFFSET_DATE_TIME_FORMAT_WITH_MILLIS); + return dateTime.truncatedTo(ChronoUnit.SECONDS).format(OFFSET_DATE_TIME_FORMAT); } public static OffsetDateTime dateFromString(String dateString) { From 257fdb2b6b15ffe6b0d9b48613d5fcea481c42bd Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Thu, 16 Apr 2026 11:42:21 +0200 Subject: [PATCH 104/148] fix: Fix error propagation in Java (box/box-codegen#936) (#1780) --- .codegen.json | 2 +- docs/authentication.md | 5 +++-- .../sdkgen/networking/boxnetworkclient/BoxNetworkClient.java | 2 ++ .../defaultnetworkclient/DefaultNetworkClient.java | 4 +--- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.codegen.json b/.codegen.json index 09b5612c4..c1564e4aa 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "acae1d5", "specHash": "f8e0d99", "version": "10.7.0" } +{ "engineHash": "51c2138", "specHash": "f8e0d99", "version": "10.7.0" } diff --git a/docs/authentication.md b/docs/authentication.md index a8fdf1ec0..b76335410 100644 --- a/docs/authentication.md +++ b/docs/authentication.md @@ -215,8 +215,9 @@ browser or web view) in order to obtain an auth code. ```java -BoxOAuth oauth = new OAuthConfig("CLIENT_ID", "CLIENT_SECRET"); -String authorizationUrl = auoauthth.getAuthorizeUrl(); +OAuthConfig oauthConfig = new OAuthConfig("CLIENT_ID", "CLIENT_SECRET"); +BoxOAuth oauth = new BoxOAuth(oauthConfig); +String authorizationUrl = oauth.getAuthorizeUrl(); ``` After a user logs in and grants your application access to their Box account, diff --git a/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java b/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java index a63c8b1d2..80a4c0ff6 100644 --- a/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java +++ b/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java @@ -196,6 +196,8 @@ public FetchResponse fetch(FetchOptions options) { exceptionThrown = e; numberOfRetriesOnException++; attemptForRetry = numberOfRetriesOnException; + fetchResponse = new FetchResponse.Builder(0, new TreeMap<>()).build(); + rawResponseBody = null; if (response != null) { response.close(); } diff --git a/src/main/java/com/box/sdkgen/networking/defaultnetworkclient/DefaultNetworkClient.java b/src/main/java/com/box/sdkgen/networking/defaultnetworkclient/DefaultNetworkClient.java index 28ea71f70..f8bba1237 100644 --- a/src/main/java/com/box/sdkgen/networking/defaultnetworkclient/DefaultNetworkClient.java +++ b/src/main/java/com/box/sdkgen/networking/defaultnetworkclient/DefaultNetworkClient.java @@ -113,12 +113,10 @@ public FetchResponse fetch(FetchOptions options) { exceptionThrown = e; numberOfRetriesOnException++; attemptForRetry = numberOfRetriesOnException; + fetchResponse = new FetchResponse.Builder(0, new TreeMap<>()).build(); if (response != null) { response.close(); } - - fetchResponse = - new FetchResponse.Builder(0, new TreeMap<>(String.CASE_INSENSITIVE_ORDER)).build(); } shouldRetry = From fd7a572233d142a62d34c8369dba55879c91230d Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Thu, 16 Apr 2026 12:52:03 +0200 Subject: [PATCH 105/148] chore: release version 10.8.0 (#1789) Co-authored-by: Minh Nguyen Cong --- .codegen.json | 2 +- CHANGELOG.md | 13 +++++++++++++ build.gradle | 2 +- .../com/box/sdkgen/networking/version/Version.java | 2 +- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index c1564e4aa..de5d6491b 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "51c2138", "specHash": "f8e0d99", "version": "10.7.0" } +{ "engineHash": "51c2138", "specHash": "f8e0d99", "version": "10.8.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 97e56ada7..f792e941d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,19 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [10.8.0](https://github.com/box/box-java-sdk/compare/v10.7.0...v10.8.0) (2026-04-16) + + +### New Features and Enhancements + +* **boxsdkgen:** Update `retentionLength` field to accept both string and integer (box/box-codegen#932) (#1776) + +### Bug Fixes + +* **boxsdkgen:** Update `retentionLength` field to accept both string and integer (box/box-codegen[#932](https://github.com/box/box-java-sdk/issues/932)) ([#1776](https://github.com/box/box-java-sdk/issues/1776)) ([31f4b04](https://github.com/box/box-java-sdk/commit/31f4b043116fb6ffde0834593fb876a636678346)) +* Fix error propagation in Java (box/box-codegen[#936](https://github.com/box/box-java-sdk/issues/936)) ([#1780](https://github.com/box/box-java-sdk/issues/1780)) ([257fdb2](https://github.com/box/box-java-sdk/commit/257fdb2b6b15ffe6b0d9b48613d5fcea481c42bd)) +* Fix serialization of `OffsetDateTime` (box/box-codegen[#935](https://github.com/box/box-java-sdk/issues/935)) ([#1778](https://github.com/box/box-java-sdk/issues/1778)) ([d9ff755](https://github.com/box/box-java-sdk/commit/d9ff7553fb958811b3344c7b98828a57a8134531)) + ## [10.7.0](https://github.com/box/box-java-sdk/compare/v10.6.0...v10.7.0) (2026-04-01) diff --git a/build.gradle b/build.gradle index faca2399e..3da7ab013 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ plugins { } group = "com.box" archivesBaseName = "box-java-sdk" -version = "10.7.0" +version = "10.8.0" java { sourceCompatibility = JavaVersion.toVersion(libraryJavaVersion) targetCompatibility = JavaVersion.toVersion(libraryJavaVersion) diff --git a/src/main/java/com/box/sdkgen/networking/version/Version.java b/src/main/java/com/box/sdkgen/networking/version/Version.java index 036d81f2b..cd6430dc3 100644 --- a/src/main/java/com/box/sdkgen/networking/version/Version.java +++ b/src/main/java/com/box/sdkgen/networking/version/Version.java @@ -3,6 +3,6 @@ public class Version { public static String getVersion() { - return "10.7.0"; + return "10.8.0"; } } From 122b1d55a5b50b8acf1716d0579f8210124750b5 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 22 Apr 2026 08:46:59 +0200 Subject: [PATCH 106/148] chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] (#1797) --- .codegen.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index de5d6491b..62a438ffc 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "51c2138", "specHash": "f8e0d99", "version": "10.8.0" } +{ "engineHash": "450fb53", "specHash": "f8e0d99", "version": "10.8.0" } From fc91872b19e16d919fd641e1a6b461639ebbdc54 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 22 Apr 2026 13:25:04 +0200 Subject: [PATCH 107/148] feat: Add `max_extension_length` field to Retention Policies (box/box-openapi#593) (#1799) --- .codegen.json | 2 +- docs/ai.md | 2 +- docs/users.md | 2 +- .../CreateRetentionPolicyRequestBody.java | 39 ++++++++ .../UpdateRetentionPolicyByIdRequestBody.java | 39 ++++++++ .../users/DeleteUserByIdQueryParams.java | 5 +- .../sdkgen/managers/users/UsersManager.java | 24 ++--- .../AiExtractStructured.java | 54 +++++------ .../AiExtractStructuredFieldsField.java | 8 +- ...AiExtractStructuredFieldsOptionsField.java | 2 +- .../retentionpolicy/RetentionPolicy.java | 28 ++++++ ...entionPolicyMaxExtensionLengthRequest.java | 90 +++++++++++++++++++ ...onPolicyMaxExtensionLengthRequestEnum.java | 64 +++++++++++++ ...ntionPolicyMaxExtensionLengthResponse.java | 74 +++++++++++++++ ...nPolicyMaxExtensionLengthResponseEnum.java | 64 +++++++++++++ .../RetentionPolicyMini.java | 39 +++++++- src/test/java/com/box/sdkgen/ai/AiITest.java | 2 +- 17 files changed, 484 insertions(+), 54 deletions(-) create mode 100644 src/main/java/com/box/sdkgen/schemas/retentionpolicymaxextensionlengthrequest/RetentionPolicyMaxExtensionLengthRequest.java create mode 100644 src/main/java/com/box/sdkgen/schemas/retentionpolicymaxextensionlengthrequest/RetentionPolicyMaxExtensionLengthRequestEnum.java create mode 100644 src/main/java/com/box/sdkgen/schemas/retentionpolicymaxextensionlengthresponse/RetentionPolicyMaxExtensionLengthResponse.java create mode 100644 src/main/java/com/box/sdkgen/schemas/retentionpolicymaxextensionlengthresponse/RetentionPolicyMaxExtensionLengthResponseEnum.java diff --git a/.codegen.json b/.codegen.json index 62a438ffc..eaec0b0c6 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "450fb53", "specHash": "f8e0d99", "version": "10.8.0" } +{ "engineHash": "450fb53", "specHash": "d0976fc", "version": "10.8.0" } diff --git a/docs/ai.md b/docs/ai.md index 157ed87c8..c223381d2 100644 --- a/docs/ai.md +++ b/docs/ai.md @@ -149,7 +149,7 @@ See the endpoint docs at ``` -client.getAi().createAiExtractStructured(new AiExtractStructured.Builder(Arrays.asList(new AiItemBase(file.getId()))).fields(Arrays.asList(new AiExtractStructuredFieldsField.Builder("firstName").description("Person first name").displayName("First name").prompt("What is the your first name?").type("string").build(), new AiExtractStructuredFieldsField.Builder("lastName").description("Person last name").displayName("Last name").prompt("What is the your last name?").type("string").build(), new AiExtractStructuredFieldsField.Builder("dateOfBirth").description("Person date of birth").displayName("Birth date").prompt("What is the date of your birth?").type("date").build(), new AiExtractStructuredFieldsField.Builder("age").description("Person age").displayName("Age").prompt("How old are you?").type("float").build(), new AiExtractStructuredFieldsField.Builder("hobby").description("Person hobby").displayName("Hobby").prompt("What is your hobby?").type("multiSelect").options(Arrays.asList(new AiExtractStructuredFieldsOptionsField("guitar"), new AiExtractStructuredFieldsOptionsField("books"))).build())).includeConfidenceScore(true).aiAgent(aiExtractStructuredAgentBasicTextConfig).build()) +client.getAi().createAiExtractStructured(new AiExtractStructured.Builder(Arrays.asList(new AiItemBase(file.getId()))).fields(Arrays.asList(new AiExtractStructuredFieldsField.Builder("firstName").description("Person first name").displayName("First name").prompt("What is the your first name?").type("string").build(), new AiExtractStructuredFieldsField.Builder("lastName").description("Person last name").displayName("Last name").prompt("What is the your last name?").type("string").build(), new AiExtractStructuredFieldsField.Builder("dateOfBirth").description("Person date of birth").displayName("Birth date").prompt("What is the date of your birth?").type("date").build(), new AiExtractStructuredFieldsField.Builder("age").description("Person age").displayName("Age").prompt("How old are you?").type("float").build(), new AiExtractStructuredFieldsField.Builder("hobby").description("Person hobby").displayName("Hobby").prompt("What is your hobby?").type("multiSelect").options(Arrays.asList(new AiExtractStructuredFieldsOptionsField("guitar"), new AiExtractStructuredFieldsOptionsField("books"))).build())).aiAgent(aiExtractStructuredAgentBasicTextConfig).includeConfidenceScore(true).build()) ``` ### Arguments diff --git a/docs/users.md b/docs/users.md index efc2df4cd..3eb493ae0 100644 --- a/docs/users.md +++ b/docs/users.md @@ -197,7 +197,7 @@ Returns the updated user object. ## Delete user Deletes a user. By default, this operation fails if the user -still owns any content, was recently active, or recently joined the enterprise from a free account. +still owns any content. To proceed, move their owned content first, or use the `force` parameter to delete the user and their files. diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBody.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBody.java index 6c7faecbb..77ffee6f0 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/CreateRetentionPolicyRequestBody.java @@ -2,6 +2,8 @@ import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.retentionpolicymaxextensionlengthrequest.RetentionPolicyMaxExtensionLengthRequest; +import com.box.sdkgen.schemas.retentionpolicymaxextensionlengthrequest.RetentionPolicyMaxExtensionLengthRequestEnum; import com.box.sdkgen.schemas.usermini.UserMini; import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; @@ -89,6 +91,9 @@ public class CreateRetentionPolicyRequestBody extends SerializableObject { @JsonProperty("can_owner_extend_retention") protected Boolean canOwnerExtendRetention; + @JsonProperty("max_extension_length") + protected RetentionPolicyMaxExtensionLengthRequest maxExtensionLength; + /** Whether owner and co-owners of a file are notified when the policy nears expiration. */ @JsonProperty("are_owners_notified") protected Boolean areOwnersNotified; @@ -150,6 +155,7 @@ protected CreateRetentionPolicyRequestBody(Builder builder) { this.retentionLength = builder.retentionLength; this.retentionType = builder.retentionType; this.canOwnerExtendRetention = builder.canOwnerExtendRetention; + this.maxExtensionLength = builder.maxExtensionLength; this.areOwnersNotified = builder.areOwnersNotified; this.customNotificationRecipients = builder.customNotificationRecipients; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); @@ -184,6 +190,10 @@ public Boolean getCanOwnerExtendRetention() { return canOwnerExtendRetention; } + public RetentionPolicyMaxExtensionLengthRequest getMaxExtensionLength() { + return maxExtensionLength; + } + public Boolean getAreOwnersNotified() { return areOwnersNotified; } @@ -208,6 +218,7 @@ public boolean equals(Object o) { && Objects.equals(retentionLength, casted.retentionLength) && Objects.equals(retentionType, casted.retentionType) && Objects.equals(canOwnerExtendRetention, casted.canOwnerExtendRetention) + && Objects.equals(maxExtensionLength, casted.maxExtensionLength) && Objects.equals(areOwnersNotified, casted.areOwnersNotified) && Objects.equals(customNotificationRecipients, casted.customNotificationRecipients); } @@ -222,6 +233,7 @@ public int hashCode() { retentionLength, retentionType, canOwnerExtendRetention, + maxExtensionLength, areOwnersNotified, customNotificationRecipients); } @@ -257,6 +269,10 @@ public String toString() { + canOwnerExtendRetention + '\'' + ", " + + "maxExtensionLength='" + + maxExtensionLength + + '\'' + + ", " + "areOwnersNotified='" + areOwnersNotified + '\'' @@ -284,6 +300,8 @@ public static class Builder extends NullableFieldTracker { protected Boolean canOwnerExtendRetention; + protected RetentionPolicyMaxExtensionLengthRequest maxExtensionLength; + protected Boolean areOwnersNotified; protected List customNotificationRecipients; @@ -374,6 +392,27 @@ public Builder canOwnerExtendRetention(Boolean canOwnerExtendRetention) { return this; } + public Builder maxExtensionLength( + RetentionPolicyMaxExtensionLengthRequestEnum maxExtensionLength) { + this.maxExtensionLength = new RetentionPolicyMaxExtensionLengthRequest(maxExtensionLength); + return this; + } + + public Builder maxExtensionLength(String maxExtensionLength) { + this.maxExtensionLength = new RetentionPolicyMaxExtensionLengthRequest(maxExtensionLength); + return this; + } + + public Builder maxExtensionLength(int maxExtensionLength) { + this.maxExtensionLength = new RetentionPolicyMaxExtensionLengthRequest(maxExtensionLength); + return this; + } + + public Builder maxExtensionLength(RetentionPolicyMaxExtensionLengthRequest maxExtensionLength) { + this.maxExtensionLength = maxExtensionLength; + return this; + } + public Builder areOwnersNotified(Boolean areOwnersNotified) { this.areOwnersNotified = areOwnersNotified; return this; diff --git a/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdRequestBody.java index c0905b146..9fdfc7cde 100644 --- a/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/retentionpolicies/UpdateRetentionPolicyByIdRequestBody.java @@ -3,6 +3,8 @@ import com.box.sdkgen.internal.Nullable; import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.retentionpolicymaxextensionlengthrequest.RetentionPolicyMaxExtensionLengthRequest; +import com.box.sdkgen.schemas.retentionpolicymaxextensionlengthrequest.RetentionPolicyMaxExtensionLengthRequestEnum; import com.box.sdkgen.schemas.userbase.UserBase; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; @@ -71,6 +73,9 @@ public class UpdateRetentionPolicyByIdRequestBody extends SerializableObject { @Nullable protected Boolean canOwnerExtendRetention; + @JsonProperty("max_extension_length") + protected RetentionPolicyMaxExtensionLengthRequest maxExtensionLength; + /** * Determines if owners and co-owners of items under the policy are notified when the retention * duration is about to end. @@ -97,6 +102,7 @@ protected UpdateRetentionPolicyByIdRequestBody(Builder builder) { this.retentionLength = builder.retentionLength; this.status = builder.status; this.canOwnerExtendRetention = builder.canOwnerExtendRetention; + this.maxExtensionLength = builder.maxExtensionLength; this.areOwnersNotified = builder.areOwnersNotified; this.customNotificationRecipients = builder.customNotificationRecipients; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); @@ -130,6 +136,10 @@ public Boolean getCanOwnerExtendRetention() { return canOwnerExtendRetention; } + public RetentionPolicyMaxExtensionLengthRequest getMaxExtensionLength() { + return maxExtensionLength; + } + public Boolean getAreOwnersNotified() { return areOwnersNotified; } @@ -154,6 +164,7 @@ public boolean equals(Object o) { && Objects.equals(retentionLength, casted.retentionLength) && Objects.equals(status, casted.status) && Objects.equals(canOwnerExtendRetention, casted.canOwnerExtendRetention) + && Objects.equals(maxExtensionLength, casted.maxExtensionLength) && Objects.equals(areOwnersNotified, casted.areOwnersNotified) && Objects.equals(customNotificationRecipients, casted.customNotificationRecipients); } @@ -168,6 +179,7 @@ public int hashCode() { retentionLength, status, canOwnerExtendRetention, + maxExtensionLength, areOwnersNotified, customNotificationRecipients); } @@ -203,6 +215,10 @@ public String toString() { + canOwnerExtendRetention + '\'' + ", " + + "maxExtensionLength='" + + maxExtensionLength + + '\'' + + ", " + "areOwnersNotified='" + areOwnersNotified + '\'' @@ -229,6 +245,8 @@ public static class Builder extends NullableFieldTracker { protected Boolean canOwnerExtendRetention; + protected RetentionPolicyMaxExtensionLengthRequest maxExtensionLength; + protected Boolean areOwnersNotified; protected List customNotificationRecipients; @@ -286,6 +304,27 @@ public Builder canOwnerExtendRetention(Boolean canOwnerExtendRetention) { return this; } + public Builder maxExtensionLength( + RetentionPolicyMaxExtensionLengthRequestEnum maxExtensionLength) { + this.maxExtensionLength = new RetentionPolicyMaxExtensionLengthRequest(maxExtensionLength); + return this; + } + + public Builder maxExtensionLength(String maxExtensionLength) { + this.maxExtensionLength = new RetentionPolicyMaxExtensionLengthRequest(maxExtensionLength); + return this; + } + + public Builder maxExtensionLength(int maxExtensionLength) { + this.maxExtensionLength = new RetentionPolicyMaxExtensionLengthRequest(maxExtensionLength); + return this; + } + + public Builder maxExtensionLength(RetentionPolicyMaxExtensionLengthRequest maxExtensionLength) { + this.maxExtensionLength = maxExtensionLength; + return this; + } + public Builder areOwnersNotified(Boolean areOwnersNotified) { this.areOwnersNotified = areOwnersNotified; this.markNullableFieldAsSet("are_owners_notified"); diff --git a/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdQueryParams.java b/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdQueryParams.java index 995af75ed..28d250932 100644 --- a/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdQueryParams.java +++ b/src/main/java/com/box/sdkgen/managers/users/DeleteUserByIdQueryParams.java @@ -5,10 +5,7 @@ public class DeleteUserByIdQueryParams { /** Whether the user will receive email notification of the deletion. */ public Boolean notify; - /** - * Specifies whether to delete the user even if they still own files, were recently active, or - * recently joined the enterprise from a free account. - */ + /** Specifies whether to delete the user even if they still own files. */ public Boolean force; public DeleteUserByIdQueryParams() {} diff --git a/src/main/java/com/box/sdkgen/managers/users/UsersManager.java b/src/main/java/com/box/sdkgen/managers/users/UsersManager.java index 0063c7c48..92cc5f078 100644 --- a/src/main/java/com/box/sdkgen/managers/users/UsersManager.java +++ b/src/main/java/com/box/sdkgen/managers/users/UsersManager.java @@ -477,9 +477,9 @@ public UserFull updateUserById( } /** - * Deletes a user. By default, this operation fails if the user still owns any content, was - * recently active, or recently joined the enterprise from a free account. To proceed, move their - * owned content first, or use the `force` parameter to delete the user and their files. + * Deletes a user. By default, this operation fails if the user still owns any content. To + * proceed, move their owned content first, or use the `force` parameter to delete the user and + * their files. * * @param userId The ID of the user. Example: "12345" */ @@ -488,9 +488,9 @@ public void deleteUserById(String userId) { } /** - * Deletes a user. By default, this operation fails if the user still owns any content, was - * recently active, or recently joined the enterprise from a free account. To proceed, move their - * owned content first, or use the `force` parameter to delete the user and their files. + * Deletes a user. By default, this operation fails if the user still owns any content. To + * proceed, move their owned content first, or use the `force` parameter to delete the user and + * their files. * * @param userId The ID of the user. Example: "12345" * @param queryParams Query parameters of deleteUserById method @@ -500,9 +500,9 @@ public void deleteUserById(String userId, DeleteUserByIdQueryParams queryParams) } /** - * Deletes a user. By default, this operation fails if the user still owns any content, was - * recently active, or recently joined the enterprise from a free account. To proceed, move their - * owned content first, or use the `force` parameter to delete the user and their files. + * Deletes a user. By default, this operation fails if the user still owns any content. To + * proceed, move their owned content first, or use the `force` parameter to delete the user and + * their files. * * @param userId The ID of the user. Example: "12345" * @param headers Headers of deleteUserById method @@ -512,9 +512,9 @@ public void deleteUserById(String userId, DeleteUserByIdHeaders headers) { } /** - * Deletes a user. By default, this operation fails if the user still owns any content, was - * recently active, or recently joined the enterprise from a free account. To proceed, move their - * owned content first, or use the `force` parameter to delete the user and their files. + * Deletes a user. By default, this operation fails if the user still owns any content. To + * proceed, move their owned content first, or use the `force` parameter to delete the user and + * their files. * * @param userId The ID of the user. Example: "12345" * @param queryParams Query parameters of deleteUserById method diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java index 551bd54f3..e35cca1e3 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java @@ -31,6 +31,9 @@ public class AiExtractStructured extends SerializableObject { */ protected List fields; + @JsonProperty("ai_agent") + protected AiExtractStructuredAgent aiAgent; + /** A flag to indicate whether confidence scores for every extracted field should be returned. */ @JsonProperty("include_confidence_score") protected Boolean includeConfidenceScore; @@ -39,9 +42,6 @@ public class AiExtractStructured extends SerializableObject { @JsonProperty("include_reference") protected Boolean includeReference; - @JsonProperty("ai_agent") - protected AiExtractStructuredAgent aiAgent; - public AiExtractStructured(@JsonProperty("items") List items) { super(); this.items = items; @@ -52,9 +52,9 @@ protected AiExtractStructured(Builder builder) { this.items = builder.items; this.metadataTemplate = builder.metadataTemplate; this.fields = builder.fields; + this.aiAgent = builder.aiAgent; this.includeConfidenceScore = builder.includeConfidenceScore; this.includeReference = builder.includeReference; - this.aiAgent = builder.aiAgent; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -70,6 +70,10 @@ public List getFields() { return fields; } + public AiExtractStructuredAgent getAiAgent() { + return aiAgent; + } + public Boolean getIncludeConfidenceScore() { return includeConfidenceScore; } @@ -78,10 +82,6 @@ public Boolean getIncludeReference() { return includeReference; } - public AiExtractStructuredAgent getAiAgent() { - return aiAgent; - } - @Override public boolean equals(Object o) { if (this == o) { @@ -94,15 +94,15 @@ public boolean equals(Object o) { return Objects.equals(items, casted.items) && Objects.equals(metadataTemplate, casted.metadataTemplate) && Objects.equals(fields, casted.fields) + && Objects.equals(aiAgent, casted.aiAgent) && Objects.equals(includeConfidenceScore, casted.includeConfidenceScore) - && Objects.equals(includeReference, casted.includeReference) - && Objects.equals(aiAgent, casted.aiAgent); + && Objects.equals(includeReference, casted.includeReference); } @Override public int hashCode() { return Objects.hash( - items, metadataTemplate, fields, includeConfidenceScore, includeReference, aiAgent); + items, metadataTemplate, fields, aiAgent, includeConfidenceScore, includeReference); } @Override @@ -120,6 +120,10 @@ public String toString() { + fields + '\'' + ", " + + "aiAgent='" + + aiAgent + + '\'' + + ", " + "includeConfidenceScore='" + includeConfidenceScore + '\'' @@ -127,10 +131,6 @@ public String toString() { + "includeReference='" + includeReference + '\'' - + ", " - + "aiAgent='" - + aiAgent - + '\'' + "}"; } @@ -142,12 +142,12 @@ public static class Builder extends NullableFieldTracker { protected List fields; + protected AiExtractStructuredAgent aiAgent; + protected Boolean includeConfidenceScore; protected Boolean includeReference; - protected AiExtractStructuredAgent aiAgent; - public Builder(List items) { super(); this.items = items; @@ -163,16 +163,6 @@ public Builder fields(List fields) { return this; } - public Builder includeConfidenceScore(Boolean includeConfidenceScore) { - this.includeConfidenceScore = includeConfidenceScore; - return this; - } - - public Builder includeReference(Boolean includeReference) { - this.includeReference = includeReference; - return this; - } - public Builder aiAgent(AiAgentReference aiAgent) { this.aiAgent = new AiExtractStructuredAgent(aiAgent); return this; @@ -188,6 +178,16 @@ public Builder aiAgent(AiExtractStructuredAgent aiAgent) { return this; } + public Builder includeConfidenceScore(Boolean includeConfidenceScore) { + this.includeConfidenceScore = includeConfidenceScore; + return this; + } + + public Builder includeReference(Boolean includeReference) { + this.includeReference = includeReference; + return this; + } + public AiExtractStructured build() { return new AiExtractStructured(this); } diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsField.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsField.java index a86c8a89f..df17da757 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsField.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsField.java @@ -23,14 +23,14 @@ public class AiExtractStructuredFieldsField extends SerializableObject { protected String prompt; /** - * The type of the field. It include but is not limited to string, float, date, enum, and - * multiSelect. + * The type of the field. It can include but is not limited to `string`, `float`, `date`, `enum`, + * and `multiSelect`. */ protected String type; /** - * A list of options for this field. This is most often used in combination with the enum and - * multiSelect field types. + * A list of options for this field. This is most often used in combination with the `enum` and + * `multiSelect` field types. */ protected List options; diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsOptionsField.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsOptionsField.java index fd905a451..6e36d93c7 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsOptionsField.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsOptionsField.java @@ -8,7 +8,7 @@ @JsonFilter("nullablePropertyFilter") public class AiExtractStructuredFieldsOptionsField extends SerializableObject { - /** A unique identifier for the field. */ + /** A unique identifier for the option. */ protected final String key; public AiExtractStructuredFieldsOptionsField(@JsonProperty("key") String key) { diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicy.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicy.java index 6de5ef326..6e7d01837 100644 --- a/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicy.java +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicy/RetentionPolicy.java @@ -2,6 +2,8 @@ import com.box.sdkgen.internal.utils.DateTimeUtils; import com.box.sdkgen.schemas.retentionpolicybase.RetentionPolicyBaseTypeField; +import com.box.sdkgen.schemas.retentionpolicymaxextensionlengthresponse.RetentionPolicyMaxExtensionLengthResponse; +import com.box.sdkgen.schemas.retentionpolicymaxextensionlengthresponse.RetentionPolicyMaxExtensionLengthResponseEnum; import com.box.sdkgen.schemas.retentionpolicymini.RetentionPolicyMini; import com.box.sdkgen.schemas.retentionpolicymini.RetentionPolicyMiniDispositionActionField; import com.box.sdkgen.schemas.usermini.UserMini; @@ -181,6 +183,7 @@ public boolean equals(Object o) { && Objects.equals(policyName, casted.policyName) && Objects.equals(retentionLength, casted.retentionLength) && Objects.equals(dispositionAction, casted.dispositionAction) + && Objects.equals(maxExtensionLength, casted.maxExtensionLength) && Objects.equals(description, casted.description) && Objects.equals(policyType, casted.policyType) && Objects.equals(retentionType, casted.retentionType) @@ -202,6 +205,7 @@ public int hashCode() { policyName, retentionLength, dispositionAction, + maxExtensionLength, description, policyType, retentionType, @@ -238,6 +242,10 @@ public String toString() { + dispositionAction + '\'' + ", " + + "maxExtensionLength='" + + maxExtensionLength + + '\'' + + ", " + "description='" + description + '\'' @@ -420,6 +428,26 @@ public Builder dispositionAction( return this; } + @Override + public Builder maxExtensionLength( + RetentionPolicyMaxExtensionLengthResponseEnum maxExtensionLength) { + this.maxExtensionLength = new RetentionPolicyMaxExtensionLengthResponse(maxExtensionLength); + return this; + } + + @Override + public Builder maxExtensionLength(String maxExtensionLength) { + this.maxExtensionLength = new RetentionPolicyMaxExtensionLengthResponse(maxExtensionLength); + return this; + } + + @Override + public Builder maxExtensionLength( + RetentionPolicyMaxExtensionLengthResponse maxExtensionLength) { + this.maxExtensionLength = maxExtensionLength; + return this; + } + public RetentionPolicy build() { if (this.type == null) { this.type = diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicymaxextensionlengthrequest/RetentionPolicyMaxExtensionLengthRequest.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicymaxextensionlengthrequest/RetentionPolicyMaxExtensionLengthRequest.java new file mode 100644 index 000000000..96302ab95 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicymaxextensionlengthrequest/RetentionPolicyMaxExtensionLengthRequest.java @@ -0,0 +1,90 @@ +package com.box.sdkgen.schemas.retentionpolicymaxextensionlengthrequest; + +import com.box.sdkgen.internal.OneOfThree; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize( + using = + RetentionPolicyMaxExtensionLengthRequest + .RetentionPolicyMaxExtensionLengthRequestDeserializer.class) +@JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) +public class RetentionPolicyMaxExtensionLengthRequest + extends OneOfThree { + + public RetentionPolicyMaxExtensionLengthRequest( + RetentionPolicyMaxExtensionLengthRequestEnum retentionPolicyMaxExtensionLengthRequestEnum) { + super(retentionPolicyMaxExtensionLengthRequestEnum, null, null); + } + + public RetentionPolicyMaxExtensionLengthRequest(String string) { + super(null, string, null); + } + + public RetentionPolicyMaxExtensionLengthRequest(Integer integerNumber) { + super(null, null, integerNumber); + } + + public boolean isRetentionPolicyMaxExtensionLengthRequestEnum() { + return value0 != null; + } + + public RetentionPolicyMaxExtensionLengthRequestEnum + getRetentionPolicyMaxExtensionLengthRequestEnum() { + return value0; + } + + public boolean isString() { + return value1 != null; + } + + public String getString() { + return value1; + } + + public boolean isIntegerNumber() { + return value2 != null; + } + + public Integer getIntegerNumber() { + return value2; + } + + static class RetentionPolicyMaxExtensionLengthRequestDeserializer + extends JsonDeserializer { + + public RetentionPolicyMaxExtensionLengthRequestDeserializer() { + super(); + } + + @Override + public RetentionPolicyMaxExtensionLengthRequest deserialize( + JsonParser jp, DeserializationContext ctxt) throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + if (node.isInt()) { + return new RetentionPolicyMaxExtensionLengthRequest( + OneOfThree.OBJECT_MAPPER.convertValue(node, Integer.class)); + } + try { + return new RetentionPolicyMaxExtensionLengthRequest( + OneOfThree.OBJECT_MAPPER.convertValue( + node, RetentionPolicyMaxExtensionLengthRequestEnum.class)); + } catch (Exception ignored) { + } + try { + return new RetentionPolicyMaxExtensionLengthRequest( + OneOfThree.OBJECT_MAPPER.convertValue(node, String.class)); + } catch (Exception ignored) { + } + throw new JsonMappingException( + jp, "Unable to deserialize RetentionPolicyMaxExtensionLengthRequest"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicymaxextensionlengthrequest/RetentionPolicyMaxExtensionLengthRequestEnum.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicymaxextensionlengthrequest/RetentionPolicyMaxExtensionLengthRequestEnum.java new file mode 100644 index 000000000..9c731160b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicymaxextensionlengthrequest/RetentionPolicyMaxExtensionLengthRequestEnum.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.retentionpolicymaxextensionlengthrequest; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum RetentionPolicyMaxExtensionLengthRequestEnum implements Valuable { + NONE("none"); + + private final String value; + + RetentionPolicyMaxExtensionLengthRequestEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class RetentionPolicyMaxExtensionLengthRequestEnumDeserializer + extends JsonDeserializer> { + + public RetentionPolicyMaxExtensionLengthRequestEnumDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(RetentionPolicyMaxExtensionLengthRequestEnum.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class RetentionPolicyMaxExtensionLengthRequestEnumSerializer + extends JsonSerializer> { + + public RetentionPolicyMaxExtensionLengthRequestEnumSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicymaxextensionlengthresponse/RetentionPolicyMaxExtensionLengthResponse.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicymaxextensionlengthresponse/RetentionPolicyMaxExtensionLengthResponse.java new file mode 100644 index 000000000..62bd477d9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicymaxextensionlengthresponse/RetentionPolicyMaxExtensionLengthResponse.java @@ -0,0 +1,74 @@ +package com.box.sdkgen.schemas.retentionpolicymaxextensionlengthresponse; + +import com.box.sdkgen.internal.OneOfTwo; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize( + using = + RetentionPolicyMaxExtensionLengthResponse + .RetentionPolicyMaxExtensionLengthResponseDeserializer.class) +@JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) +public class RetentionPolicyMaxExtensionLengthResponse + extends OneOfTwo { + + public RetentionPolicyMaxExtensionLengthResponse( + RetentionPolicyMaxExtensionLengthResponseEnum retentionPolicyMaxExtensionLengthResponseEnum) { + super(retentionPolicyMaxExtensionLengthResponseEnum, null); + } + + public RetentionPolicyMaxExtensionLengthResponse(String string) { + super(null, string); + } + + public boolean isRetentionPolicyMaxExtensionLengthResponseEnum() { + return value0 != null; + } + + public RetentionPolicyMaxExtensionLengthResponseEnum + getRetentionPolicyMaxExtensionLengthResponseEnum() { + return value0; + } + + public boolean isString() { + return value1 != null; + } + + public String getString() { + return value1; + } + + static class RetentionPolicyMaxExtensionLengthResponseDeserializer + extends JsonDeserializer { + + public RetentionPolicyMaxExtensionLengthResponseDeserializer() { + super(); + } + + @Override + public RetentionPolicyMaxExtensionLengthResponse deserialize( + JsonParser jp, DeserializationContext ctxt) throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + try { + return new RetentionPolicyMaxExtensionLengthResponse( + OneOfTwo.OBJECT_MAPPER.convertValue( + node, RetentionPolicyMaxExtensionLengthResponseEnum.class)); + } catch (Exception ignored) { + } + try { + return new RetentionPolicyMaxExtensionLengthResponse( + OneOfTwo.OBJECT_MAPPER.convertValue(node, String.class)); + } catch (Exception ignored) { + } + throw new JsonMappingException( + jp, "Unable to deserialize RetentionPolicyMaxExtensionLengthResponse"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicymaxextensionlengthresponse/RetentionPolicyMaxExtensionLengthResponseEnum.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicymaxextensionlengthresponse/RetentionPolicyMaxExtensionLengthResponseEnum.java new file mode 100644 index 000000000..708c20b8b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicymaxextensionlengthresponse/RetentionPolicyMaxExtensionLengthResponseEnum.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.retentionpolicymaxextensionlengthresponse; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum RetentionPolicyMaxExtensionLengthResponseEnum implements Valuable { + NONE("none"); + + private final String value; + + RetentionPolicyMaxExtensionLengthResponseEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class RetentionPolicyMaxExtensionLengthResponseEnumDeserializer + extends JsonDeserializer> { + + public RetentionPolicyMaxExtensionLengthResponseEnumDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(RetentionPolicyMaxExtensionLengthResponseEnum.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class RetentionPolicyMaxExtensionLengthResponseEnumSerializer + extends JsonSerializer> { + + public RetentionPolicyMaxExtensionLengthResponseEnumSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/retentionpolicymini/RetentionPolicyMini.java b/src/main/java/com/box/sdkgen/schemas/retentionpolicymini/RetentionPolicyMini.java index f36d92eb0..01047a869 100644 --- a/src/main/java/com/box/sdkgen/schemas/retentionpolicymini/RetentionPolicyMini.java +++ b/src/main/java/com/box/sdkgen/schemas/retentionpolicymini/RetentionPolicyMini.java @@ -2,6 +2,8 @@ import com.box.sdkgen.schemas.retentionpolicybase.RetentionPolicyBase; import com.box.sdkgen.schemas.retentionpolicybase.RetentionPolicyBaseTypeField; +import com.box.sdkgen.schemas.retentionpolicymaxextensionlengthresponse.RetentionPolicyMaxExtensionLengthResponse; +import com.box.sdkgen.schemas.retentionpolicymaxextensionlengthresponse.RetentionPolicyMaxExtensionLengthResponseEnum; import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; @@ -42,6 +44,9 @@ public class RetentionPolicyMini extends RetentionPolicyBase { @JsonProperty("disposition_action") protected EnumWrapper dispositionAction; + @JsonProperty("max_extension_length") + protected RetentionPolicyMaxExtensionLengthResponse maxExtensionLength; + public RetentionPolicyMini(@JsonProperty("id") String id) { super(id); } @@ -51,6 +56,7 @@ protected RetentionPolicyMini(Builder builder) { this.policyName = builder.policyName; this.retentionLength = builder.retentionLength; this.dispositionAction = builder.dispositionAction; + this.maxExtensionLength = builder.maxExtensionLength; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -66,6 +72,10 @@ public EnumWrapper getDispositionActi return dispositionAction; } + public RetentionPolicyMaxExtensionLengthResponse getMaxExtensionLength() { + return maxExtensionLength; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -79,12 +89,14 @@ public boolean equals(Object o) { && Objects.equals(type, casted.type) && Objects.equals(policyName, casted.policyName) && Objects.equals(retentionLength, casted.retentionLength) - && Objects.equals(dispositionAction, casted.dispositionAction); + && Objects.equals(dispositionAction, casted.dispositionAction) + && Objects.equals(maxExtensionLength, casted.maxExtensionLength); } @Override public int hashCode() { - return Objects.hash(id, type, policyName, retentionLength, dispositionAction); + return Objects.hash( + id, type, policyName, retentionLength, dispositionAction, maxExtensionLength); } @Override @@ -109,6 +121,10 @@ public String toString() { + "dispositionAction='" + dispositionAction + '\'' + + ", " + + "maxExtensionLength='" + + maxExtensionLength + + '\'' + "}"; } @@ -120,6 +136,8 @@ public static class Builder extends RetentionPolicyBase.Builder { protected EnumWrapper dispositionAction; + protected RetentionPolicyMaxExtensionLengthResponse maxExtensionLength; + public Builder(String id) { super(id); } @@ -146,6 +164,23 @@ public Builder dispositionAction( return this; } + public Builder maxExtensionLength( + RetentionPolicyMaxExtensionLengthResponseEnum maxExtensionLength) { + this.maxExtensionLength = new RetentionPolicyMaxExtensionLengthResponse(maxExtensionLength); + return this; + } + + public Builder maxExtensionLength(String maxExtensionLength) { + this.maxExtensionLength = new RetentionPolicyMaxExtensionLengthResponse(maxExtensionLength); + return this; + } + + public Builder maxExtensionLength( + RetentionPolicyMaxExtensionLengthResponse maxExtensionLength) { + this.maxExtensionLength = maxExtensionLength; + return this; + } + @Override public Builder type(RetentionPolicyBaseTypeField type) { this.type = new EnumWrapper(type); diff --git a/src/test/java/com/box/sdkgen/ai/AiITest.java b/src/test/java/com/box/sdkgen/ai/AiITest.java index 892e21d9e..e45332ea2 100644 --- a/src/test/java/com/box/sdkgen/ai/AiITest.java +++ b/src/test/java/com/box/sdkgen/ai/AiITest.java @@ -308,8 +308,8 @@ public void testAiExtractStructuredWithFields() { new AiExtractStructuredFieldsOptionsField("guitar"), new AiExtractStructuredFieldsOptionsField("books"))) .build())) - .includeConfidenceScore(true) .aiAgent(aiExtractStructuredAgentBasicTextConfig) + .includeConfidenceScore(true) .build()); assert !(response.getConfidenceScore() == null); assert convertToString(response.getAnswer().get("hobby")) From a5b8280df24ad105a5fea01ba14da0161eea52df Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 22 Apr 2026 15:45:39 +0200 Subject: [PATCH 108/148] chore: release version 10.9.0 (#1802) --- .codegen.json | 2 +- CHANGELOG.md | 7 +++++++ build.gradle | 2 +- .../java/com/box/sdkgen/networking/version/Version.java | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index eaec0b0c6..7d9d03d08 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "450fb53", "specHash": "d0976fc", "version": "10.8.0" } +{ "engineHash": "450fb53", "specHash": "d0976fc", "version": "10.9.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index f792e941d..0f60ddd31 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [10.9.0](https://github.com/box/box-java-sdk/compare/v10.8.0...v10.9.0) (2026-04-22) + + +### New Features and Enhancements + +* Add `max_extension_length` field to Retention Policies (box/box-openapi[#593](https://github.com/box/box-java-sdk/issues/593)) ([#1799](https://github.com/box/box-java-sdk/issues/1799)) ([fc91872](https://github.com/box/box-java-sdk/commit/fc91872b19e16d919fd641e1a6b461639ebbdc54)) + ## [10.8.0](https://github.com/box/box-java-sdk/compare/v10.7.0...v10.8.0) (2026-04-16) diff --git a/build.gradle b/build.gradle index 3da7ab013..feb403a57 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ plugins { } group = "com.box" archivesBaseName = "box-java-sdk" -version = "10.8.0" +version = "10.9.0" java { sourceCompatibility = JavaVersion.toVersion(libraryJavaVersion) targetCompatibility = JavaVersion.toVersion(libraryJavaVersion) diff --git a/src/main/java/com/box/sdkgen/networking/version/Version.java b/src/main/java/com/box/sdkgen/networking/version/Version.java index cd6430dc3..463b80194 100644 --- a/src/main/java/com/box/sdkgen/networking/version/Version.java +++ b/src/main/java/com/box/sdkgen/networking/version/Version.java @@ -3,6 +3,6 @@ public class Version { public static String getVersion() { - return "10.8.0"; + return "10.9.0"; } } From dcd5df60f3545983209e58c50ab1648a6d5fb167 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 29 Apr 2026 17:31:35 +0200 Subject: [PATCH 109/148] fix: Fix java `oneOf` serialization (box/box-codegen#942) (#1806) --- .codegen.json | 2 +- .../internal/NullablePropertyFilter.java | 5 +-- .../com/box/sdkgen/internal/OneOfEight.java | 24 +++++++++++++- .../com/box/sdkgen/internal/OneOfEleven.java | 30 +++++++++++++++++- .../com/box/sdkgen/internal/OneOfFive.java | 13 +++++++- .../com/box/sdkgen/internal/OneOfFour.java | 12 ++++++- .../com/box/sdkgen/internal/OneOfNine.java | 26 +++++++++++++++- .../com/box/sdkgen/internal/OneOfOne.java | 9 +++++- .../com/box/sdkgen/internal/OneOfSeven.java | 22 ++++++++++++- .../com/box/sdkgen/internal/OneOfSix.java | 19 +++++++++++- .../com/box/sdkgen/internal/OneOfTen.java | 28 ++++++++++++++++- .../com/box/sdkgen/internal/OneOfThree.java | 11 ++++++- .../com/box/sdkgen/internal/OneOfTwelve.java | 31 ++++++++++++++++++- .../com/box/sdkgen/internal/OneOfTwo.java | 10 +++++- .../com/box/sdkgen/internal/OneOfUnion.java | 7 +++++ 15 files changed, 234 insertions(+), 15 deletions(-) create mode 100644 src/main/java/com/box/sdkgen/internal/OneOfUnion.java diff --git a/.codegen.json b/.codegen.json index 7d9d03d08..d0b124df6 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "450fb53", "specHash": "d0976fc", "version": "10.9.0" } +{ "engineHash": "a82031b", "specHash": "d0976fc", "version": "10.9.0" } diff --git a/src/main/java/com/box/sdkgen/internal/NullablePropertyFilter.java b/src/main/java/com/box/sdkgen/internal/NullablePropertyFilter.java index 5353ba292..40503a0bd 100644 --- a/src/main/java/com/box/sdkgen/internal/NullablePropertyFilter.java +++ b/src/main/java/com/box/sdkgen/internal/NullablePropertyFilter.java @@ -30,8 +30,9 @@ public void serializeAsField( return; } - // For non-nullable fields, serialize only if the value is not null - if (value != null) { + boolean isOneOfWithNoNonNullValue = + value instanceof OneOfUnion && !((OneOfUnion) value).hasAnyNonNullValue(); + if (value != null && !isOneOfWithNoNonNullValue) { writer.serializeAsField(pojo, jgen, provider); } } diff --git a/src/main/java/com/box/sdkgen/internal/OneOfEight.java b/src/main/java/com/box/sdkgen/internal/OneOfEight.java index a20e86ec1..c7169965b 100644 --- a/src/main/java/com/box/sdkgen/internal/OneOfEight.java +++ b/src/main/java/com/box/sdkgen/internal/OneOfEight.java @@ -7,7 +7,8 @@ import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; -public class OneOfEight extends SerializableObject { +public class OneOfEight extends SerializableObject + implements OneOfUnion { protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); protected T0 value0; protected T1 value1; @@ -30,6 +31,18 @@ public OneOfEight( this.value7 = value7; } + @Override + public boolean hasAnyNonNullValue() { + return value0 != null + || value1 != null + || value2 != null + || value3 != null + || value4 != null + || value5 != null + || value6 != null + || value7 != null; + } + public static class OneOfEightSerializer extends JsonSerializer> { @@ -45,28 +58,37 @@ public void serialize( throws IOException { if (itemEntryField.value0 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + return; } if (itemEntryField.value1 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + return; } if (itemEntryField.value2 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + return; } if (itemEntryField.value3 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value3); + return; } if (itemEntryField.value4 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value4); + return; } if (itemEntryField.value5 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value5); + return; } if (itemEntryField.value6 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value6); + return; } if (itemEntryField.value7 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value7); + return; } + gen.writeNull(); } } } diff --git a/src/main/java/com/box/sdkgen/internal/OneOfEleven.java b/src/main/java/com/box/sdkgen/internal/OneOfEleven.java index 5b5485d24..8c7ecb077 100644 --- a/src/main/java/com/box/sdkgen/internal/OneOfEleven.java +++ b/src/main/java/com/box/sdkgen/internal/OneOfEleven.java @@ -7,7 +7,8 @@ import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; -public class OneOfEleven extends SerializableObject { +public class OneOfEleven extends SerializableObject + implements OneOfUnion { protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); protected T0 value0; protected T1 value1; @@ -46,6 +47,21 @@ public OneOfEleven( this.value10 = value10; } + @Override + public boolean hasAnyNonNullValue() { + return value0 != null + || value1 != null + || value2 != null + || value3 != null + || value4 != null + || value5 != null + || value6 != null + || value7 != null + || value8 != null + || value9 != null + || value10 != null; + } + public static class OneOfElevenSerializer extends JsonSerializer> { @@ -61,37 +77,49 @@ public void serialize( throws IOException { if (itemEntryField.value0 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + return; } if (itemEntryField.value1 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + return; } if (itemEntryField.value2 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + return; } if (itemEntryField.value3 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value3); + return; } if (itemEntryField.value4 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value4); + return; } if (itemEntryField.value5 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value5); + return; } if (itemEntryField.value6 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value6); + return; } if (itemEntryField.value7 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value7); + return; } if (itemEntryField.value8 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value8); + return; } if (itemEntryField.value9 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value9); + return; } if (itemEntryField.value10 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value10); + return; } + gen.writeNull(); } } } diff --git a/src/main/java/com/box/sdkgen/internal/OneOfFive.java b/src/main/java/com/box/sdkgen/internal/OneOfFive.java index bc8a13927..0f762ae97 100644 --- a/src/main/java/com/box/sdkgen/internal/OneOfFive.java +++ b/src/main/java/com/box/sdkgen/internal/OneOfFive.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; -public class OneOfFive extends SerializableObject { +public class OneOfFive extends SerializableObject implements OneOfUnion { protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); protected T0 value0; protected T1 value1; @@ -23,6 +23,11 @@ public OneOfFive(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4) { this.value4 = value4; } + @Override + public boolean hasAnyNonNullValue() { + return value0 != null || value1 != null || value2 != null || value3 != null || value4 != null; + } + public static class OneOfFiveSerializer extends JsonSerializer> { public OneOfFiveSerializer() { @@ -35,19 +40,25 @@ public void serialize( throws IOException { if (itemEntryField.value0 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + return; } if (itemEntryField.value1 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + return; } if (itemEntryField.value2 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + return; } if (itemEntryField.value3 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value3); + return; } if (itemEntryField.value4 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value4); + return; } + gen.writeNull(); } } } diff --git a/src/main/java/com/box/sdkgen/internal/OneOfFour.java b/src/main/java/com/box/sdkgen/internal/OneOfFour.java index ee86354c8..32383289a 100644 --- a/src/main/java/com/box/sdkgen/internal/OneOfFour.java +++ b/src/main/java/com/box/sdkgen/internal/OneOfFour.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; -public class OneOfFour extends SerializableObject { +public class OneOfFour extends SerializableObject implements OneOfUnion { protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); protected T0 value0; protected T1 value1; @@ -21,6 +21,11 @@ public OneOfFour(T0 value0, T1 value1, T2 value2, T3 value3) { this.value3 = value3; } + @Override + public boolean hasAnyNonNullValue() { + return value0 != null || value1 != null || value2 != null || value3 != null; + } + public static class OneOfFourSerializer extends JsonSerializer> { public OneOfFourSerializer() { @@ -33,16 +38,21 @@ public void serialize( throws IOException { if (itemEntryField.value0 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + return; } if (itemEntryField.value1 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + return; } if (itemEntryField.value2 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + return; } if (itemEntryField.value3 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value3); + return; } + gen.writeNull(); } } } diff --git a/src/main/java/com/box/sdkgen/internal/OneOfNine.java b/src/main/java/com/box/sdkgen/internal/OneOfNine.java index 6da57f0bc..42bc824ca 100644 --- a/src/main/java/com/box/sdkgen/internal/OneOfNine.java +++ b/src/main/java/com/box/sdkgen/internal/OneOfNine.java @@ -7,7 +7,8 @@ import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; -public class OneOfNine extends SerializableObject { +public class OneOfNine extends SerializableObject + implements OneOfUnion { protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); protected T0 value0; protected T1 value1; @@ -40,6 +41,19 @@ public OneOfNine( this.value8 = value8; } + @Override + public boolean hasAnyNonNullValue() { + return value0 != null + || value1 != null + || value2 != null + || value3 != null + || value4 != null + || value5 != null + || value6 != null + || value7 != null + || value8 != null; + } + public static class OneOfNineSerializer extends JsonSerializer> { @@ -55,31 +69,41 @@ public void serialize( throws IOException { if (itemEntryField.value0 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + return; } if (itemEntryField.value1 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + return; } if (itemEntryField.value2 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + return; } if (itemEntryField.value3 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value3); + return; } if (itemEntryField.value4 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value4); + return; } if (itemEntryField.value5 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value5); + return; } if (itemEntryField.value6 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value6); + return; } if (itemEntryField.value7 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value7); + return; } if (itemEntryField.value8 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value8); + return; } + gen.writeNull(); } } } diff --git a/src/main/java/com/box/sdkgen/internal/OneOfOne.java b/src/main/java/com/box/sdkgen/internal/OneOfOne.java index 67b073885..cf9761160 100644 --- a/src/main/java/com/box/sdkgen/internal/OneOfOne.java +++ b/src/main/java/com/box/sdkgen/internal/OneOfOne.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; -public class OneOfOne extends SerializableObject { +public class OneOfOne extends SerializableObject implements OneOfUnion { protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); protected T0 value0; @@ -15,6 +15,11 @@ public OneOfOne(T0 value0) { this.value0 = value0; } + @Override + public boolean hasAnyNonNullValue() { + return value0 != null; + } + public static class OneOfOneSerializer extends JsonSerializer> { public OneOfOneSerializer() { @@ -27,7 +32,9 @@ public void serialize( throws IOException { if (itemEntryField.value0 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + return; } + gen.writeNull(); } } } diff --git a/src/main/java/com/box/sdkgen/internal/OneOfSeven.java b/src/main/java/com/box/sdkgen/internal/OneOfSeven.java index e07226eba..7687bb956 100644 --- a/src/main/java/com/box/sdkgen/internal/OneOfSeven.java +++ b/src/main/java/com/box/sdkgen/internal/OneOfSeven.java @@ -7,7 +7,8 @@ import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; -public class OneOfSeven extends SerializableObject { +public class OneOfSeven extends SerializableObject + implements OneOfUnion { protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); protected T0 value0; protected T1 value1; @@ -27,6 +28,17 @@ public OneOfSeven(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 valu this.value6 = value6; } + @Override + public boolean hasAnyNonNullValue() { + return value0 != null + || value1 != null + || value2 != null + || value3 != null + || value4 != null + || value5 != null + || value6 != null; + } + public static class OneOfSevenSerializer extends JsonSerializer> { public OneOfSevenSerializer() { @@ -41,25 +53,33 @@ public void serialize( throws IOException { if (itemEntryField.value0 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + return; } if (itemEntryField.value1 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + return; } if (itemEntryField.value2 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + return; } if (itemEntryField.value3 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value3); + return; } if (itemEntryField.value4 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value4); + return; } if (itemEntryField.value5 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value5); + return; } if (itemEntryField.value6 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value6); + return; } + gen.writeNull(); } } } diff --git a/src/main/java/com/box/sdkgen/internal/OneOfSix.java b/src/main/java/com/box/sdkgen/internal/OneOfSix.java index d3ed9a566..c473544bd 100644 --- a/src/main/java/com/box/sdkgen/internal/OneOfSix.java +++ b/src/main/java/com/box/sdkgen/internal/OneOfSix.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; -public class OneOfSix extends SerializableObject { +public class OneOfSix extends SerializableObject implements OneOfUnion { protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); protected T0 value0; protected T1 value1; @@ -25,6 +25,16 @@ public OneOfSix(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5 this.value5 = value5; } + @Override + public boolean hasAnyNonNullValue() { + return value0 != null + || value1 != null + || value2 != null + || value3 != null + || value4 != null + || value5 != null; + } + public static class OneOfSixSerializer extends JsonSerializer> { public OneOfSixSerializer() { @@ -37,22 +47,29 @@ public void serialize( throws IOException { if (itemEntryField.value0 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + return; } if (itemEntryField.value1 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + return; } if (itemEntryField.value2 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + return; } if (itemEntryField.value3 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value3); + return; } if (itemEntryField.value4 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value4); + return; } if (itemEntryField.value5 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value5); + return; } + gen.writeNull(); } } } diff --git a/src/main/java/com/box/sdkgen/internal/OneOfTen.java b/src/main/java/com/box/sdkgen/internal/OneOfTen.java index 6af089e2a..2738670f7 100644 --- a/src/main/java/com/box/sdkgen/internal/OneOfTen.java +++ b/src/main/java/com/box/sdkgen/internal/OneOfTen.java @@ -7,7 +7,8 @@ import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; -public class OneOfTen extends SerializableObject { +public class OneOfTen extends SerializableObject + implements OneOfUnion { protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); protected T0 value0; protected T1 value1; @@ -43,6 +44,20 @@ public OneOfTen( this.value9 = value9; } + @Override + public boolean hasAnyNonNullValue() { + return value0 != null + || value1 != null + || value2 != null + || value3 != null + || value4 != null + || value5 != null + || value6 != null + || value7 != null + || value8 != null + || value9 != null; + } + public static class OneOfTenSerializer extends JsonSerializer> { @@ -58,34 +73,45 @@ public void serialize( throws IOException { if (itemEntryField.value0 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + return; } if (itemEntryField.value1 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + return; } if (itemEntryField.value2 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + return; } if (itemEntryField.value3 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value3); + return; } if (itemEntryField.value4 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value4); + return; } if (itemEntryField.value5 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value5); + return; } if (itemEntryField.value6 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value6); + return; } if (itemEntryField.value7 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value7); + return; } if (itemEntryField.value8 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value8); + return; } if (itemEntryField.value9 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value9); + return; } + gen.writeNull(); } } } diff --git a/src/main/java/com/box/sdkgen/internal/OneOfThree.java b/src/main/java/com/box/sdkgen/internal/OneOfThree.java index 9319155d8..5f9e900af 100644 --- a/src/main/java/com/box/sdkgen/internal/OneOfThree.java +++ b/src/main/java/com/box/sdkgen/internal/OneOfThree.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; -public class OneOfThree extends SerializableObject { +public class OneOfThree extends SerializableObject implements OneOfUnion { protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); protected T0 value0; protected T1 value1; @@ -19,6 +19,11 @@ public OneOfThree(T0 value0, T1 value1, T2 value2) { this.value2 = value2; } + @Override + public boolean hasAnyNonNullValue() { + return value0 != null || value1 != null || value2 != null; + } + public static class OneOfThreeSerializer extends JsonSerializer> { public OneOfThreeSerializer() { @@ -31,13 +36,17 @@ public void serialize( throws IOException { if (itemEntryField.value0 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + return; } if (itemEntryField.value1 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + return; } if (itemEntryField.value2 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + return; } + gen.writeNull(); } } } diff --git a/src/main/java/com/box/sdkgen/internal/OneOfTwelve.java b/src/main/java/com/box/sdkgen/internal/OneOfTwelve.java index a411e9cc6..13de4e1a7 100644 --- a/src/main/java/com/box/sdkgen/internal/OneOfTwelve.java +++ b/src/main/java/com/box/sdkgen/internal/OneOfTwelve.java @@ -8,7 +8,7 @@ import java.io.IOException; public class OneOfTwelve - extends SerializableObject { + extends SerializableObject implements OneOfUnion { protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); protected T0 value0; protected T1 value1; @@ -50,6 +50,22 @@ public OneOfTwelve( this.value11 = value11; } + @Override + public boolean hasAnyNonNullValue() { + return value0 != null + || value1 != null + || value2 != null + || value3 != null + || value4 != null + || value5 != null + || value6 != null + || value7 != null + || value8 != null + || value9 != null + || value10 != null + || value11 != null; + } + public static class OneOfTwelveSerializer extends JsonSerializer> { @@ -65,40 +81,53 @@ public void serialize( throws IOException { if (itemEntryField.value0 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + return; } if (itemEntryField.value1 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + return; } if (itemEntryField.value2 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value2); + return; } if (itemEntryField.value3 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value3); + return; } if (itemEntryField.value4 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value4); + return; } if (itemEntryField.value5 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value5); + return; } if (itemEntryField.value6 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value6); + return; } if (itemEntryField.value7 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value7); + return; } if (itemEntryField.value8 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value8); + return; } if (itemEntryField.value9 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value9); + return; } if (itemEntryField.value10 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value10); + return; } if (itemEntryField.value11 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value11); + return; } + gen.writeNull(); } } } diff --git a/src/main/java/com/box/sdkgen/internal/OneOfTwo.java b/src/main/java/com/box/sdkgen/internal/OneOfTwo.java index 6058a4f59..94d226185 100644 --- a/src/main/java/com/box/sdkgen/internal/OneOfTwo.java +++ b/src/main/java/com/box/sdkgen/internal/OneOfTwo.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; -public class OneOfTwo extends SerializableObject { +public class OneOfTwo extends SerializableObject implements OneOfUnion { protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); protected T0 value0; protected T1 value1; @@ -17,6 +17,11 @@ public OneOfTwo(T0 value0, T1 value1) { this.value1 = value1; } + @Override + public boolean hasAnyNonNullValue() { + return value0 != null || value1 != null; + } + public static class OneOfTwoSerializer extends JsonSerializer> { public OneOfTwoSerializer() { @@ -29,10 +34,13 @@ public void serialize( throws IOException { if (itemEntryField.value0 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value0); + return; } if (itemEntryField.value1 != null) { JsonManager.WRITER.writeValue(gen, itemEntryField.value1); + return; } + gen.writeNull(); } } } diff --git a/src/main/java/com/box/sdkgen/internal/OneOfUnion.java b/src/main/java/com/box/sdkgen/internal/OneOfUnion.java new file mode 100644 index 000000000..59c4dd4b0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/internal/OneOfUnion.java @@ -0,0 +1,7 @@ +package com.box.sdkgen.internal; + +public interface OneOfUnion { + + /** @return {@code true} if at least one branch holds a non-null value */ + boolean hasAnyNonNullValue(); +} From 7b336cdccfd68b51ebe67a50ba33f4fe78d41da6 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 29 Apr 2026 20:53:24 +0200 Subject: [PATCH 110/148] docs: add documentation about default timeout (box/box-codegen#944) (#1819) --- .codegen.json | 2 +- docs/configuration.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index d0b124df6..d4c725d3c 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "a82031b", "specHash": "d0976fc", "version": "10.9.0" } +{ "engineHash": "18868e7", "specHash": "d0976fc", "version": "10.9.0" } diff --git a/docs/configuration.md b/docs/configuration.md index cb65813c5..ebb79bdcd 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -199,6 +199,7 @@ How timeout handling works: - `connectionTimeoutMs` controls how long the client waits to establish a connection. - `readTimeoutMs` controls how long the client waits for data while reading the response. +- If timeout config is not provided, the SDK uses the OkHttp default timeout settings: connect timeout of 10 seconds, read timeout of 10 seconds, and write timeout of 10 seconds. - Each timeout is optional. If a value is not provided, the client keeps its existing timeout for that setting. - To disable both timeouts, set `connectionTimeoutMs(0L)` and `readTimeoutMs(0L)`. - You can also disable only one timeout by setting just one of them to `0L` and leaving the other configured. From 41e859acf78844b0a2e28d3d14ca721b88e2a108 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 29 Apr 2026 21:03:34 +0200 Subject: [PATCH 111/148] feat: Automate Public API (box/box-openapi#594) (#1820) --- .codegen.json | 2 +- docs/README.md | 1 + docs/automateworkflows.md | 61 ++++ .../java/com/box/sdkgen/client/BoxClient.java | 17 ++ .../AutomateWorkflowsManager.java | 165 ++++++++++ ...teAutomateWorkflowStartV2026R0Headers.java | 68 +++++ .../GetAutomateWorkflowsV2026R0Headers.java | 68 +++++ ...etAutomateWorkflowsV2026R0QueryParams.java | 73 +++++ .../BoxVersionHeaderV2026R0.java | 64 ++++ .../AutomateWorkflowActionV2026R0.java | 286 ++++++++++++++++++ ...eWorkflowActionV2026R0ActionTypeField.java | 64 ++++ ...utomateWorkflowActionV2026R0TypeField.java | 64 ++++ .../AutomateWorkflowReferenceV2026R0.java | 134 ++++++++ ...mateWorkflowReferenceV2026R0TypeField.java | 64 ++++ .../AutomateWorkflowStartRequestV2026R0.java | 67 ++++ .../AutomateWorkflowsV2026R0.java | 118 ++++++++ .../ClientErrorV2026R0.java | 218 +++++++++++++ .../ClientErrorV2026R0CodeField.java | 80 +++++ .../ClientErrorV2026R0TypeField.java | 64 ++++ .../userbasev2026r0/UserBaseV2026R0.java | 95 ++++++ .../UserBaseV2026R0TypeField.java | 64 ++++ .../userminiv2026r0/UserMiniV2026R0.java | 119 ++++++++ 22 files changed, 1955 insertions(+), 1 deletion(-) create mode 100644 docs/automateworkflows.md create mode 100644 src/main/java/com/box/sdkgen/managers/automateworkflows/AutomateWorkflowsManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/automateworkflows/CreateAutomateWorkflowStartV2026R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/automateworkflows/GetAutomateWorkflowsV2026R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/automateworkflows/GetAutomateWorkflowsV2026R0QueryParams.java create mode 100644 src/main/java/com/box/sdkgen/parameters/v2026r0/boxversionheaderv2026r0/BoxVersionHeaderV2026R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowactionv2026r0/AutomateWorkflowActionV2026R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowactionv2026r0/AutomateWorkflowActionV2026R0ActionTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowactionv2026r0/AutomateWorkflowActionV2026R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowreferencev2026r0/AutomateWorkflowReferenceV2026R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowreferencev2026r0/AutomateWorkflowReferenceV2026R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowstartrequestv2026r0/AutomateWorkflowStartRequestV2026R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowsv2026r0/AutomateWorkflowsV2026R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/clienterrorv2026r0/ClientErrorV2026R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/clienterrorv2026r0/ClientErrorV2026R0CodeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/clienterrorv2026r0/ClientErrorV2026R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/userbasev2026r0/UserBaseV2026R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/userbasev2026r0/UserBaseV2026R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/userminiv2026r0/UserMiniV2026R0.java diff --git a/.codegen.json b/.codegen.json index d4c725d3c..9c5a11f97 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "18868e7", "specHash": "d0976fc", "version": "10.9.0" } +{ "engineHash": "18868e7", "specHash": "f899bf6", "version": "10.9.0" } diff --git a/docs/README.md b/docs/README.md index 1dc5612dc..627015873 100644 --- a/docs/README.md +++ b/docs/README.md @@ -18,6 +18,7 @@ the SDK are available by topic: * [Appitemassociations](appitemassociations.md) * [Archives](archives.md) * [Authorization](authorization.md) +* [Automateworkflows](automateworkflows.md) * [Avatars](avatars.md) * [Chunkeduploads](chunkeduploads.md) * [Classifications](classifications.md) diff --git a/docs/automateworkflows.md b/docs/automateworkflows.md new file mode 100644 index 000000000..f0ec61ecd --- /dev/null +++ b/docs/automateworkflows.md @@ -0,0 +1,61 @@ +# AutomateWorkflowsManager + + +- [List Automate workflows defined as callable actions](#list-automate-workflows-defined-as-callable-actions) +- [Start Automate workflow](#start-automate-workflow) + +## List Automate workflows defined as callable actions + +Returns workflow actions from Automate for a folder, using the +`WORKFLOW` action category. + +This operation is performed by calling function `getAutomateWorkflowsV2026R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2026.0/get-automate-workflows/). + +*Currently we don't have an example for calling `getAutomateWorkflowsV2026R0` in integration tests* + +### Arguments + +- queryParams `GetAutomateWorkflowsV2026R0QueryParams` + - Query parameters of getAutomateWorkflowsV2026R0 method +- headers `GetAutomateWorkflowsV2026R0Headers` + - Headers of getAutomateWorkflowsV2026R0 method + + +### Returns + +This function returns a value of type `AutomateWorkflowsV2026R0`. + +Returns workflow actions that can be manually started. + + +## Start Automate workflow + +Starts an Automate workflow manually by using a workflow action ID and file IDs. + +This operation is performed by calling function `createAutomateWorkflowStartV2026R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2026.0/post-automate-workflows-id-start/). + +*Currently we don't have an example for calling `createAutomateWorkflowStartV2026R0` in integration tests* + +### Arguments + +- workflowId `String` + - The ID of the workflow. Example: "12345" +- requestBody `AutomateWorkflowStartRequestV2026R0` + - Request body of createAutomateWorkflowStartV2026R0 method +- headers `CreateAutomateWorkflowStartV2026R0Headers` + - Headers of createAutomateWorkflowStartV2026R0 method + + +### Returns + +This function returns a value of type `void`. + +Starts the workflow. + + diff --git a/src/main/java/com/box/sdkgen/client/BoxClient.java b/src/main/java/com/box/sdkgen/client/BoxClient.java index e45762637..258a1d7ac 100644 --- a/src/main/java/com/box/sdkgen/client/BoxClient.java +++ b/src/main/java/com/box/sdkgen/client/BoxClient.java @@ -8,6 +8,7 @@ import com.box.sdkgen.managers.appitemassociations.AppItemAssociationsManager; import com.box.sdkgen.managers.archives.ArchivesManager; import com.box.sdkgen.managers.authorization.AuthorizationManager; +import com.box.sdkgen.managers.automateworkflows.AutomateWorkflowsManager; import com.box.sdkgen.managers.avatars.AvatarsManager; import com.box.sdkgen.managers.chunkeduploads.ChunkedUploadsManager; import com.box.sdkgen.managers.classifications.ClassificationsManager; @@ -270,6 +271,8 @@ public class BoxClient { public final ExternalUsersManager externalUsers; + public final AutomateWorkflowsManager automateWorkflows; + public BoxClient(Authentication auth) { this.auth = auth; this.networkSession = new NetworkSession.Builder().baseUrls(new BaseUrls()).build(); @@ -618,6 +621,11 @@ public BoxClient(Authentication auth) { .auth(this.auth) .networkSession(this.networkSession) .build(); + this.automateWorkflows = + new AutomateWorkflowsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); } protected BoxClient(Builder builder) { @@ -968,6 +976,11 @@ protected BoxClient(Builder builder) { .auth(this.auth) .networkSession(this.networkSession) .build(); + this.automateWorkflows = + new AutomateWorkflowsManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); } /** @@ -1423,6 +1436,10 @@ public ExternalUsersManager getExternalUsers() { return externalUsers; } + public AutomateWorkflowsManager getAutomateWorkflows() { + return automateWorkflows; + } + public static class Builder { protected final Authentication auth; diff --git a/src/main/java/com/box/sdkgen/managers/automateworkflows/AutomateWorkflowsManager.java b/src/main/java/com/box/sdkgen/managers/automateworkflows/AutomateWorkflowsManager.java new file mode 100644 index 000000000..1331d4147 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/automateworkflows/AutomateWorkflowsManager.java @@ -0,0 +1,165 @@ +package com.box.sdkgen.managers.automateworkflows; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.v2026r0.automateworkflowstartrequestv2026r0.AutomateWorkflowStartRequestV2026R0; +import com.box.sdkgen.schemas.v2026r0.automateworkflowsv2026r0.AutomateWorkflowsV2026R0; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class AutomateWorkflowsManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public AutomateWorkflowsManager() { + this.networkSession = new NetworkSession(); + } + + protected AutomateWorkflowsManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + /** + * Returns workflow actions from Automate for a folder, using the `WORKFLOW` action category. + * + * @param queryParams Query parameters of getAutomateWorkflowsV2026R0 method + */ + public AutomateWorkflowsV2026R0 getAutomateWorkflowsV2026R0( + GetAutomateWorkflowsV2026R0QueryParams queryParams) { + return getAutomateWorkflowsV2026R0(queryParams, new GetAutomateWorkflowsV2026R0Headers()); + } + + /** + * Returns workflow actions from Automate for a folder, using the `WORKFLOW` action category. + * + * @param queryParams Query parameters of getAutomateWorkflowsV2026R0 method + * @param headers Headers of getAutomateWorkflowsV2026R0 method + */ + public AutomateWorkflowsV2026R0 getAutomateWorkflowsV2026R0( + GetAutomateWorkflowsV2026R0QueryParams queryParams, + GetAutomateWorkflowsV2026R0Headers headers) { + Map queryParamsMap = + prepareParams( + mapOf( + entryOf("folder_id", convertToString(queryParams.getFolderId())), + entryOf("limit", convertToString(queryParams.getLimit())), + entryOf("marker", convertToString(queryParams.getMarker())))); + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/automate_workflows"), + "GET") + .params(queryParamsMap) + .headers(headersMap) + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), AutomateWorkflowsV2026R0.class); + } + + /** + * Starts an Automate workflow manually by using a workflow action ID and file IDs. + * + * @param workflowId The ID of the workflow. Example: "12345" + * @param requestBody Request body of createAutomateWorkflowStartV2026R0 method + */ + public void createAutomateWorkflowStartV2026R0( + String workflowId, AutomateWorkflowStartRequestV2026R0 requestBody) { + createAutomateWorkflowStartV2026R0( + workflowId, requestBody, new CreateAutomateWorkflowStartV2026R0Headers()); + } + + /** + * Starts an Automate workflow manually by using a workflow action ID and file IDs. + * + * @param workflowId The ID of the workflow. Example: "12345" + * @param requestBody Request body of createAutomateWorkflowStartV2026R0 method + * @param headers Headers of createAutomateWorkflowStartV2026R0 method + */ + public void createAutomateWorkflowStartV2026R0( + String workflowId, + AutomateWorkflowStartRequestV2026R0 requestBody, + CreateAutomateWorkflowStartV2026R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/automate_workflows/", + convertToString(workflowId), + "/start"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.NO_CONTENT) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() {} + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public AutomateWorkflowsManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } + return new AutomateWorkflowsManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/automateworkflows/CreateAutomateWorkflowStartV2026R0Headers.java b/src/main/java/com/box/sdkgen/managers/automateworkflows/CreateAutomateWorkflowStartV2026R0Headers.java new file mode 100644 index 000000000..3dc5812d4 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/automateworkflows/CreateAutomateWorkflowStartV2026R0Headers.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.managers.automateworkflows; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2026r0.boxversionheaderv2026r0.BoxVersionHeaderV2026R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class CreateAutomateWorkflowStartV2026R0Headers { + + /** Version header. */ + public EnumWrapper boxVersion; + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public CreateAutomateWorkflowStartV2026R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2026R0._2026_0); + this.extraHeaders = mapOf(); + } + + protected CreateAutomateWorkflowStartV2026R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() {} + + public Builder boxVersion(BoxVersionHeaderV2026R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateAutomateWorkflowStartV2026R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2026R0._2026_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } + return new CreateAutomateWorkflowStartV2026R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/automateworkflows/GetAutomateWorkflowsV2026R0Headers.java b/src/main/java/com/box/sdkgen/managers/automateworkflows/GetAutomateWorkflowsV2026R0Headers.java new file mode 100644 index 000000000..ecd398657 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/automateworkflows/GetAutomateWorkflowsV2026R0Headers.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.managers.automateworkflows; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2026r0.boxversionheaderv2026r0.BoxVersionHeaderV2026R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class GetAutomateWorkflowsV2026R0Headers { + + /** Version header. */ + public EnumWrapper boxVersion; + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public GetAutomateWorkflowsV2026R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2026R0._2026_0); + this.extraHeaders = mapOf(); + } + + protected GetAutomateWorkflowsV2026R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() {} + + public Builder boxVersion(BoxVersionHeaderV2026R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public GetAutomateWorkflowsV2026R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2026R0._2026_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } + return new GetAutomateWorkflowsV2026R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/automateworkflows/GetAutomateWorkflowsV2026R0QueryParams.java b/src/main/java/com/box/sdkgen/managers/automateworkflows/GetAutomateWorkflowsV2026R0QueryParams.java new file mode 100644 index 000000000..a8d9e0e71 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/automateworkflows/GetAutomateWorkflowsV2026R0QueryParams.java @@ -0,0 +1,73 @@ +package com.box.sdkgen.managers.automateworkflows; + +public class GetAutomateWorkflowsV2026R0QueryParams { + + /** + * The unique identifier that represent a folder. + * + *

    The ID for any folder can be determined by visiting this folder in the web application and + * copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the + * `folder_id` is `123`. + * + *

    The root folder of a Box account is always represented by the ID `0`. + */ + public final String folderId; + + /** The maximum number of items to return per page. */ + public Long limit; + + /** + * Defines the position marker at which to begin returning results. This is used when paginating + * using marker-based pagination. + */ + public String marker; + + public GetAutomateWorkflowsV2026R0QueryParams(String folderId) { + this.folderId = folderId; + } + + protected GetAutomateWorkflowsV2026R0QueryParams(Builder builder) { + this.folderId = builder.folderId; + this.limit = builder.limit; + this.marker = builder.marker; + } + + public String getFolderId() { + return folderId; + } + + public Long getLimit() { + return limit; + } + + public String getMarker() { + return marker; + } + + public static class Builder { + + protected final String folderId; + + protected Long limit; + + protected String marker; + + public Builder(String folderId) { + this.folderId = folderId; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public GetAutomateWorkflowsV2026R0QueryParams build() { + return new GetAutomateWorkflowsV2026R0QueryParams(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/parameters/v2026r0/boxversionheaderv2026r0/BoxVersionHeaderV2026R0.java b/src/main/java/com/box/sdkgen/parameters/v2026r0/boxversionheaderv2026r0/BoxVersionHeaderV2026R0.java new file mode 100644 index 000000000..dd9ff088e --- /dev/null +++ b/src/main/java/com/box/sdkgen/parameters/v2026r0/boxversionheaderv2026r0/BoxVersionHeaderV2026R0.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.parameters.v2026r0.boxversionheaderv2026r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum BoxVersionHeaderV2026R0 implements Valuable { + _2026_0("2026.0"); + + private final String value; + + BoxVersionHeaderV2026R0(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class BoxVersionHeaderV2026R0Deserializer + extends JsonDeserializer> { + + public BoxVersionHeaderV2026R0Deserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(BoxVersionHeaderV2026R0.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class BoxVersionHeaderV2026R0Serializer + extends JsonSerializer> { + + public BoxVersionHeaderV2026R0Serializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowactionv2026r0/AutomateWorkflowActionV2026R0.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowactionv2026r0/AutomateWorkflowActionV2026R0.java new file mode 100644 index 000000000..7aa4ee62d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowactionv2026r0/AutomateWorkflowActionV2026R0.java @@ -0,0 +1,286 @@ +package com.box.sdkgen.schemas.v2026r0.automateworkflowactionv2026r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.v2026r0.automateworkflowreferencev2026r0.AutomateWorkflowReferenceV2026R0; +import com.box.sdkgen.schemas.v2026r0.userminiv2026r0.UserMiniV2026R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.time.OffsetDateTime; +import java.util.Objects; + +/** An Automate action that can start a workflow. */ +@JsonFilter("nullablePropertyFilter") +public class AutomateWorkflowActionV2026R0 extends SerializableObject { + + /** The identifier for the Automate action. */ + protected final String id; + + /** The object type for this workflow action wrapper. */ + @JsonDeserialize( + using = + AutomateWorkflowActionV2026R0TypeField.AutomateWorkflowActionV2026R0TypeFieldDeserializer + .class) + @JsonSerialize( + using = + AutomateWorkflowActionV2026R0TypeField.AutomateWorkflowActionV2026R0TypeFieldSerializer + .class) + protected EnumWrapper type; + + /** The type that defines the behavior of this action. */ + @JsonDeserialize( + using = + AutomateWorkflowActionV2026R0ActionTypeField + .AutomateWorkflowActionV2026R0ActionTypeFieldDeserializer.class) + @JsonSerialize( + using = + AutomateWorkflowActionV2026R0ActionTypeField + .AutomateWorkflowActionV2026R0ActionTypeFieldSerializer.class) + @JsonProperty("action_type") + protected EnumWrapper actionType; + + /** A human-readable description of the workflow action. */ + protected String description; + + /** The date and time when the action was created. */ + @JsonProperty("created_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected OffsetDateTime createdAt; + + /** The date and time when the action was last updated. */ + @JsonProperty("updated_at") + @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) + protected OffsetDateTime updatedAt; + + @JsonProperty("created_by") + protected UserMiniV2026R0 createdBy; + + @JsonProperty("updated_by") + protected UserMiniV2026R0 updatedBy; + + protected final AutomateWorkflowReferenceV2026R0 workflow; + + public AutomateWorkflowActionV2026R0( + @JsonProperty("id") String id, + @JsonProperty("workflow") AutomateWorkflowReferenceV2026R0 workflow) { + super(); + this.id = id; + this.workflow = workflow; + this.type = + new EnumWrapper( + AutomateWorkflowActionV2026R0TypeField.WORKFLOW_ACTION); + this.actionType = + new EnumWrapper( + AutomateWorkflowActionV2026R0ActionTypeField.RUN_WORKFLOW); + } + + protected AutomateWorkflowActionV2026R0(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.actionType = builder.actionType; + this.description = builder.description; + this.createdAt = builder.createdAt; + this.updatedAt = builder.updatedAt; + this.createdBy = builder.createdBy; + this.updatedBy = builder.updatedBy; + this.workflow = builder.workflow; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public EnumWrapper getActionType() { + return actionType; + } + + public String getDescription() { + return description; + } + + public OffsetDateTime getCreatedAt() { + return createdAt; + } + + public OffsetDateTime getUpdatedAt() { + return updatedAt; + } + + public UserMiniV2026R0 getCreatedBy() { + return createdBy; + } + + public UserMiniV2026R0 getUpdatedBy() { + return updatedBy; + } + + public AutomateWorkflowReferenceV2026R0 getWorkflow() { + return workflow; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AutomateWorkflowActionV2026R0 casted = (AutomateWorkflowActionV2026R0) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(actionType, casted.actionType) + && Objects.equals(description, casted.description) + && Objects.equals(createdAt, casted.createdAt) + && Objects.equals(updatedAt, casted.updatedAt) + && Objects.equals(createdBy, casted.createdBy) + && Objects.equals(updatedBy, casted.updatedBy) + && Objects.equals(workflow, casted.workflow); + } + + @Override + public int hashCode() { + return Objects.hash( + id, type, actionType, description, createdAt, updatedAt, createdBy, updatedBy, workflow); + } + + @Override + public String toString() { + return "AutomateWorkflowActionV2026R0{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "actionType='" + + actionType + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "createdAt='" + + createdAt + + '\'' + + ", " + + "updatedAt='" + + updatedAt + + '\'' + + ", " + + "createdBy='" + + createdBy + + '\'' + + ", " + + "updatedBy='" + + updatedBy + + '\'' + + ", " + + "workflow='" + + workflow + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + protected EnumWrapper actionType; + + protected String description; + + protected OffsetDateTime createdAt; + + protected OffsetDateTime updatedAt; + + protected UserMiniV2026R0 createdBy; + + protected UserMiniV2026R0 updatedBy; + + protected final AutomateWorkflowReferenceV2026R0 workflow; + + public Builder(String id, AutomateWorkflowReferenceV2026R0 workflow) { + super(); + this.id = id; + this.workflow = workflow; + } + + public Builder type(AutomateWorkflowActionV2026R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder actionType(AutomateWorkflowActionV2026R0ActionTypeField actionType) { + this.actionType = new EnumWrapper(actionType); + return this; + } + + public Builder actionType( + EnumWrapper actionType) { + this.actionType = actionType; + return this; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder createdAt(OffsetDateTime createdAt) { + this.createdAt = createdAt; + return this; + } + + public Builder updatedAt(OffsetDateTime updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + public Builder createdBy(UserMiniV2026R0 createdBy) { + this.createdBy = createdBy; + return this; + } + + public Builder updatedBy(UserMiniV2026R0 updatedBy) { + this.updatedBy = updatedBy; + return this; + } + + public AutomateWorkflowActionV2026R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + AutomateWorkflowActionV2026R0TypeField.WORKFLOW_ACTION); + } + if (this.actionType == null) { + this.actionType = + new EnumWrapper( + AutomateWorkflowActionV2026R0ActionTypeField.RUN_WORKFLOW); + } + return new AutomateWorkflowActionV2026R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowactionv2026r0/AutomateWorkflowActionV2026R0ActionTypeField.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowactionv2026r0/AutomateWorkflowActionV2026R0ActionTypeField.java new file mode 100644 index 000000000..9cc99cc08 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowactionv2026r0/AutomateWorkflowActionV2026R0ActionTypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.v2026r0.automateworkflowactionv2026r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AutomateWorkflowActionV2026R0ActionTypeField implements Valuable { + RUN_WORKFLOW("run_workflow"); + + private final String value; + + AutomateWorkflowActionV2026R0ActionTypeField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class AutomateWorkflowActionV2026R0ActionTypeFieldDeserializer + extends JsonDeserializer> { + + public AutomateWorkflowActionV2026R0ActionTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AutomateWorkflowActionV2026R0ActionTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AutomateWorkflowActionV2026R0ActionTypeFieldSerializer + extends JsonSerializer> { + + public AutomateWorkflowActionV2026R0ActionTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowactionv2026r0/AutomateWorkflowActionV2026R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowactionv2026r0/AutomateWorkflowActionV2026R0TypeField.java new file mode 100644 index 000000000..09d089a71 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowactionv2026r0/AutomateWorkflowActionV2026R0TypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.v2026r0.automateworkflowactionv2026r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AutomateWorkflowActionV2026R0TypeField implements Valuable { + WORKFLOW_ACTION("workflow_action"); + + private final String value; + + AutomateWorkflowActionV2026R0TypeField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class AutomateWorkflowActionV2026R0TypeFieldDeserializer + extends JsonDeserializer> { + + public AutomateWorkflowActionV2026R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AutomateWorkflowActionV2026R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AutomateWorkflowActionV2026R0TypeFieldSerializer + extends JsonSerializer> { + + public AutomateWorkflowActionV2026R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowreferencev2026r0/AutomateWorkflowReferenceV2026R0.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowreferencev2026r0/AutomateWorkflowReferenceV2026R0.java new file mode 100644 index 000000000..4282c643e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowreferencev2026r0/AutomateWorkflowReferenceV2026R0.java @@ -0,0 +1,134 @@ +package com.box.sdkgen.schemas.v2026r0.automateworkflowreferencev2026r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** A reference to an Automate workflow. */ +@JsonFilter("nullablePropertyFilter") +public class AutomateWorkflowReferenceV2026R0 extends SerializableObject { + + /** The identifier for the Automate workflow instance. */ + protected final String id; + + /** The object type. */ + @JsonDeserialize( + using = + AutomateWorkflowReferenceV2026R0TypeField + .AutomateWorkflowReferenceV2026R0TypeFieldDeserializer.class) + @JsonSerialize( + using = + AutomateWorkflowReferenceV2026R0TypeField + .AutomateWorkflowReferenceV2026R0TypeFieldSerializer.class) + protected EnumWrapper type; + + /** The display name for the Automate workflow. */ + protected String name; + + public AutomateWorkflowReferenceV2026R0(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + AutomateWorkflowReferenceV2026R0TypeField.WORKFLOW); + } + + protected AutomateWorkflowReferenceV2026R0(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.name = builder.name; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AutomateWorkflowReferenceV2026R0 casted = (AutomateWorkflowReferenceV2026R0) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name); + } + + @Override + public String toString() { + return "AutomateWorkflowReferenceV2026R0{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + protected String name; + + public Builder(String id) { + super(); + this.id = id; + } + + public Builder type(AutomateWorkflowReferenceV2026R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public AutomateWorkflowReferenceV2026R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + AutomateWorkflowReferenceV2026R0TypeField.WORKFLOW); + } + return new AutomateWorkflowReferenceV2026R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowreferencev2026r0/AutomateWorkflowReferenceV2026R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowreferencev2026r0/AutomateWorkflowReferenceV2026R0TypeField.java new file mode 100644 index 000000000..b58362544 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowreferencev2026r0/AutomateWorkflowReferenceV2026R0TypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.v2026r0.automateworkflowreferencev2026r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AutomateWorkflowReferenceV2026R0TypeField implements Valuable { + WORKFLOW("workflow"); + + private final String value; + + AutomateWorkflowReferenceV2026R0TypeField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class AutomateWorkflowReferenceV2026R0TypeFieldDeserializer + extends JsonDeserializer> { + + public AutomateWorkflowReferenceV2026R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AutomateWorkflowReferenceV2026R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AutomateWorkflowReferenceV2026R0TypeFieldSerializer + extends JsonSerializer> { + + public AutomateWorkflowReferenceV2026R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowstartrequestv2026r0/AutomateWorkflowStartRequestV2026R0.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowstartrequestv2026r0/AutomateWorkflowStartRequestV2026R0.java new file mode 100644 index 000000000..ea5a8bd4f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowstartrequestv2026r0/AutomateWorkflowStartRequestV2026R0.java @@ -0,0 +1,67 @@ +package com.box.sdkgen.schemas.v2026r0.automateworkflowstartrequestv2026r0; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +/** Request body to start an Automate workflow. */ +@JsonFilter("nullablePropertyFilter") +public class AutomateWorkflowStartRequestV2026R0 extends SerializableObject { + + /** The callable action ID used to trigger the selected workflow. */ + @JsonProperty("workflow_action_id") + protected final String workflowActionId; + + /** The files to process with the selected workflow. */ + @JsonProperty("file_ids") + protected final List fileIds; + + public AutomateWorkflowStartRequestV2026R0( + @JsonProperty("workflow_action_id") String workflowActionId, + @JsonProperty("file_ids") List fileIds) { + super(); + this.workflowActionId = workflowActionId; + this.fileIds = fileIds; + } + + public String getWorkflowActionId() { + return workflowActionId; + } + + public List getFileIds() { + return fileIds; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AutomateWorkflowStartRequestV2026R0 casted = (AutomateWorkflowStartRequestV2026R0) o; + return Objects.equals(workflowActionId, casted.workflowActionId) + && Objects.equals(fileIds, casted.fileIds); + } + + @Override + public int hashCode() { + return Objects.hash(workflowActionId, fileIds); + } + + @Override + public String toString() { + return "AutomateWorkflowStartRequestV2026R0{" + + "workflowActionId='" + + workflowActionId + + '\'' + + ", " + + "fileIds='" + + fileIds + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowsv2026r0/AutomateWorkflowsV2026R0.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowsv2026r0/AutomateWorkflowsV2026R0.java new file mode 100644 index 000000000..aef0d9c47 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/automateworkflowsv2026r0/AutomateWorkflowsV2026R0.java @@ -0,0 +1,118 @@ +package com.box.sdkgen.schemas.v2026r0.automateworkflowsv2026r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2026r0.automateworkflowactionv2026r0.AutomateWorkflowActionV2026R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +/** A list of Automate workflow actions. */ +@JsonFilter("nullablePropertyFilter") +public class AutomateWorkflowsV2026R0 extends SerializableObject { + + /** Workflow actions available for manual start. */ + protected List entries; + + /** + * The limit that was used for these entries. This will be the same as the `limit` query parameter + * unless that value exceeded the maximum value allowed. The maximum value varies by API. + */ + protected Long limit; + + /** The marker for the start of the next page of results. */ + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + public AutomateWorkflowsV2026R0() { + super(); + } + + protected AutomateWorkflowsV2026R0(Builder builder) { + super(); + this.entries = builder.entries; + this.limit = builder.limit; + this.nextMarker = builder.nextMarker; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getEntries() { + return entries; + } + + public Long getLimit() { + return limit; + } + + public String getNextMarker() { + return nextMarker; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AutomateWorkflowsV2026R0 casted = (AutomateWorkflowsV2026R0) o; + return Objects.equals(entries, casted.entries) + && Objects.equals(limit, casted.limit) + && Objects.equals(nextMarker, casted.nextMarker); + } + + @Override + public int hashCode() { + return Objects.hash(entries, limit, nextMarker); + } + + @Override + public String toString() { + return "AutomateWorkflowsV2026R0{" + + "entries='" + + entries + + '\'' + + ", " + + "limit='" + + limit + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected List entries; + + protected Long limit; + + protected String nextMarker; + + public Builder entries(List entries) { + this.entries = entries; + return this; + } + + public Builder limit(Long limit) { + this.limit = limit; + return this; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public AutomateWorkflowsV2026R0 build() { + return new AutomateWorkflowsV2026R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/clienterrorv2026r0/ClientErrorV2026R0.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/clienterrorv2026r0/ClientErrorV2026R0.java new file mode 100644 index 000000000..1d708e58f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/clienterrorv2026r0/ClientErrorV2026R0.java @@ -0,0 +1,218 @@ +package com.box.sdkgen.schemas.v2026r0.clienterrorv2026r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Map; +import java.util.Objects; + +/** A generic error. */ +@JsonFilter("nullablePropertyFilter") +public class ClientErrorV2026R0 extends SerializableObject { + + /** The value will always be `error`. */ + @JsonDeserialize( + using = ClientErrorV2026R0TypeField.ClientErrorV2026R0TypeFieldDeserializer.class) + @JsonSerialize(using = ClientErrorV2026R0TypeField.ClientErrorV2026R0TypeFieldSerializer.class) + protected EnumWrapper type; + + /** The HTTP status of the response. */ + protected Integer status; + + /** A Box-specific error code. */ + @JsonDeserialize( + using = ClientErrorV2026R0CodeField.ClientErrorV2026R0CodeFieldDeserializer.class) + @JsonSerialize(using = ClientErrorV2026R0CodeField.ClientErrorV2026R0CodeFieldSerializer.class) + protected EnumWrapper code; + + /** A short message describing the error. */ + protected String message; + + /** + * A free-form object that contains additional context about the error. The possible fields are + * defined on a per-endpoint basis. `message` is only one example. + */ + @JsonProperty("context_info") + @Nullable + protected Map contextInfo; + + /** A URL that links to more information about why this error occurred. */ + @JsonProperty("help_url") + protected String helpUrl; + + /** A unique identifier for this response, which can be used when contacting Box support. */ + @JsonProperty("request_id") + protected String requestId; + + public ClientErrorV2026R0() { + super(); + } + + protected ClientErrorV2026R0(Builder builder) { + super(); + this.type = builder.type; + this.status = builder.status; + this.code = builder.code; + this.message = builder.message; + this.contextInfo = builder.contextInfo; + this.helpUrl = builder.helpUrl; + this.requestId = builder.requestId; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public Integer getStatus() { + return status; + } + + public EnumWrapper getCode() { + return code; + } + + public String getMessage() { + return message; + } + + public Map getContextInfo() { + return contextInfo; + } + + public String getHelpUrl() { + return helpUrl; + } + + public String getRequestId() { + return requestId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ClientErrorV2026R0 casted = (ClientErrorV2026R0) o; + return Objects.equals(type, casted.type) + && Objects.equals(status, casted.status) + && Objects.equals(code, casted.code) + && Objects.equals(message, casted.message) + && Objects.equals(contextInfo, casted.contextInfo) + && Objects.equals(helpUrl, casted.helpUrl) + && Objects.equals(requestId, casted.requestId); + } + + @Override + public int hashCode() { + return Objects.hash(type, status, code, message, contextInfo, helpUrl, requestId); + } + + @Override + public String toString() { + return "ClientErrorV2026R0{" + + "type='" + + type + + '\'' + + ", " + + "status='" + + status + + '\'' + + ", " + + "code='" + + code + + '\'' + + ", " + + "message='" + + message + + '\'' + + ", " + + "contextInfo='" + + contextInfo + + '\'' + + ", " + + "helpUrl='" + + helpUrl + + '\'' + + ", " + + "requestId='" + + requestId + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected Integer status; + + protected EnumWrapper code; + + protected String message; + + protected Map contextInfo; + + protected String helpUrl; + + protected String requestId; + + public Builder type(ClientErrorV2026R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder status(Integer status) { + this.status = status; + return this; + } + + public Builder code(ClientErrorV2026R0CodeField code) { + this.code = new EnumWrapper(code); + return this; + } + + public Builder code(EnumWrapper code) { + this.code = code; + return this; + } + + public Builder message(String message) { + this.message = message; + return this; + } + + public Builder contextInfo(Map contextInfo) { + this.contextInfo = contextInfo; + this.markNullableFieldAsSet("context_info"); + return this; + } + + public Builder helpUrl(String helpUrl) { + this.helpUrl = helpUrl; + return this; + } + + public Builder requestId(String requestId) { + this.requestId = requestId; + return this; + } + + public ClientErrorV2026R0 build() { + return new ClientErrorV2026R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/clienterrorv2026r0/ClientErrorV2026R0CodeField.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/clienterrorv2026r0/ClientErrorV2026R0CodeField.java new file mode 100644 index 000000000..9dbaed6e6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/clienterrorv2026r0/ClientErrorV2026R0CodeField.java @@ -0,0 +1,80 @@ +package com.box.sdkgen.schemas.v2026r0.clienterrorv2026r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ClientErrorV2026R0CodeField implements Valuable { + CREATED("created"), + ACCEPTED("accepted"), + NO_CONTENT("no_content"), + REDIRECT("redirect"), + NOT_MODIFIED("not_modified"), + BAD_REQUEST("bad_request"), + UNAUTHORIZED("unauthorized"), + FORBIDDEN("forbidden"), + NOT_FOUND("not_found"), + METHOD_NOT_ALLOWED("method_not_allowed"), + CONFLICT("conflict"), + PRECONDITION_FAILED("precondition_failed"), + TOO_MANY_REQUESTS("too_many_requests"), + INTERNAL_SERVER_ERROR("internal_server_error"), + UNAVAILABLE("unavailable"), + ITEM_NAME_INVALID("item_name_invalid"), + INSUFFICIENT_SCOPE("insufficient_scope"); + + private final String value; + + ClientErrorV2026R0CodeField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class ClientErrorV2026R0CodeFieldDeserializer + extends JsonDeserializer> { + + public ClientErrorV2026R0CodeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ClientErrorV2026R0CodeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ClientErrorV2026R0CodeFieldSerializer + extends JsonSerializer> { + + public ClientErrorV2026R0CodeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/clienterrorv2026r0/ClientErrorV2026R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/clienterrorv2026r0/ClientErrorV2026R0TypeField.java new file mode 100644 index 000000000..af50b2901 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/clienterrorv2026r0/ClientErrorV2026R0TypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.v2026r0.clienterrorv2026r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum ClientErrorV2026R0TypeField implements Valuable { + ERROR("error"); + + private final String value; + + ClientErrorV2026R0TypeField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class ClientErrorV2026R0TypeFieldDeserializer + extends JsonDeserializer> { + + public ClientErrorV2026R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(ClientErrorV2026R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class ClientErrorV2026R0TypeFieldSerializer + extends JsonSerializer> { + + public ClientErrorV2026R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/userbasev2026r0/UserBaseV2026R0.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/userbasev2026r0/UserBaseV2026R0.java new file mode 100644 index 000000000..da9c46662 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/userbasev2026r0/UserBaseV2026R0.java @@ -0,0 +1,95 @@ +package com.box.sdkgen.schemas.v2026r0.userbasev2026r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** A mini representation of a user, used when nested within another resource. */ +@JsonFilter("nullablePropertyFilter") +public class UserBaseV2026R0 extends SerializableObject { + + /** The unique identifier for this user. */ + protected final String id; + + /** The value will always be `user`. */ + @JsonDeserialize(using = UserBaseV2026R0TypeField.UserBaseV2026R0TypeFieldDeserializer.class) + @JsonSerialize(using = UserBaseV2026R0TypeField.UserBaseV2026R0TypeFieldSerializer.class) + protected EnumWrapper type; + + public UserBaseV2026R0(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = new EnumWrapper(UserBaseV2026R0TypeField.USER); + } + + protected UserBaseV2026R0(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public EnumWrapper getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserBaseV2026R0 casted = (UserBaseV2026R0) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "UserBaseV2026R0{" + "id='" + id + '\'' + ", " + "type='" + type + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected EnumWrapper type; + + public Builder(String id) { + super(); + this.id = id; + } + + public Builder type(UserBaseV2026R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public UserBaseV2026R0 build() { + if (this.type == null) { + this.type = new EnumWrapper(UserBaseV2026R0TypeField.USER); + } + return new UserBaseV2026R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/userbasev2026r0/UserBaseV2026R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/userbasev2026r0/UserBaseV2026R0TypeField.java new file mode 100644 index 000000000..b72792999 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/userbasev2026r0/UserBaseV2026R0TypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.v2026r0.userbasev2026r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum UserBaseV2026R0TypeField implements Valuable { + USER("user"); + + private final String value; + + UserBaseV2026R0TypeField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class UserBaseV2026R0TypeFieldDeserializer + extends JsonDeserializer> { + + public UserBaseV2026R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(UserBaseV2026R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class UserBaseV2026R0TypeFieldSerializer + extends JsonSerializer> { + + public UserBaseV2026R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/userminiv2026r0/UserMiniV2026R0.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/userminiv2026r0/UserMiniV2026R0.java new file mode 100644 index 000000000..89f28428a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/userminiv2026r0/UserMiniV2026R0.java @@ -0,0 +1,119 @@ +package com.box.sdkgen.schemas.v2026r0.userminiv2026r0; + +import com.box.sdkgen.schemas.v2026r0.userbasev2026r0.UserBaseV2026R0; +import com.box.sdkgen.schemas.v2026r0.userbasev2026r0.UserBaseV2026R0TypeField; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** A mini representation of a user, as can be returned when nested within other resources. */ +@JsonFilter("nullablePropertyFilter") +public class UserMiniV2026R0 extends UserBaseV2026R0 { + + /** The display name of this user. */ + protected String name; + + /** The primary email address of this user. */ + protected String login; + + public UserMiniV2026R0(@JsonProperty("id") String id) { + super(id); + } + + protected UserMiniV2026R0(Builder builder) { + super(builder); + this.name = builder.name; + this.login = builder.login; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getName() { + return name; + } + + public String getLogin() { + return login; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UserMiniV2026R0 casted = (UserMiniV2026R0) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(name, casted.name) + && Objects.equals(login, casted.login); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, name, login); + } + + @Override + public String toString() { + return "UserMiniV2026R0{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "name='" + + name + + '\'' + + ", " + + "login='" + + login + + '\'' + + "}"; + } + + public static class Builder extends UserBaseV2026R0.Builder { + + protected String name; + + protected String login; + + public Builder(String id) { + super(id); + } + + public Builder name(String name) { + this.name = name; + return this; + } + + public Builder login(String login) { + this.login = login; + return this; + } + + @Override + public Builder type(UserBaseV2026R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + @Override + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public UserMiniV2026R0 build() { + if (this.type == null) { + this.type = new EnumWrapper(UserBaseV2026R0TypeField.USER); + } + return new UserMiniV2026R0(this); + } + } +} From a4076e860bc5b7110076f813e44f0382d2e62fc6 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Thu, 30 Apr 2026 08:06:21 +0200 Subject: [PATCH 112/148] test: Add tests for automate api (box/box-codegen#943) (#1822) --- .codegen.json | 2 +- .github/workflows/build-and-test-daily.yml | 1 + .github/workflows/build.yml | 1 + docs/automateworkflows.md | 10 +++- .../AutomateWorkflowsITest.java | 59 +++++++++++++++++++ 5 files changed, 70 insertions(+), 3 deletions(-) create mode 100644 src/test/java/com/box/sdkgen/automateworkflows/AutomateWorkflowsITest.java diff --git a/.codegen.json b/.codegen.json index 9c5a11f97..6436bbbf8 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "18868e7", "specHash": "f899bf6", "version": "10.9.0" } +{ "engineHash": "c571efa", "specHash": "f899bf6", "version": "10.9.0" } diff --git a/.github/workflows/build-and-test-daily.yml b/.github/workflows/build-and-test-daily.yml index 7cd5a2dc9..30d2be5ca 100644 --- a/.github/workflows/build-and-test-daily.yml +++ b/.github/workflows/build-and-test-daily.yml @@ -44,6 +44,7 @@ jobs: SLACK_AUTOMATION_USER_ID: ${{ secrets.SLACK_AUTOMATION_USER_ID }} SLACK_ORG_ID: ${{ secrets.SLACK_ORG_ID }} SLACK_PARTNER_ITEM_ID: ${{ secrets.SLACK_PARTNER_ITEM_ID }} + AUTOMATE_WORKFLOW_FOLDER_ID: ${{ secrets.AUTOMATE_WORKFLOW_FOLDER_ID }} run: ./gradlew check --stacktrace - name: Coverage env: diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b49572a1b..84a244e1c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -44,6 +44,7 @@ jobs: SLACK_AUTOMATION_USER_ID: ${{ secrets.SLACK_AUTOMATION_USER_ID }} SLACK_ORG_ID: ${{ secrets.SLACK_ORG_ID }} SLACK_PARTNER_ITEM_ID: ${{ secrets.SLACK_PARTNER_ITEM_ID }} + AUTOMATE_WORKFLOW_FOLDER_ID: ${{ secrets.AUTOMATE_WORKFLOW_FOLDER_ID }} run: ./gradlew check --stacktrace - name: Smoke Tests if: ${{ !startsWith(github.head_ref, 'codegen-release') && github.actor != 'dependabot[bot]' }} diff --git a/docs/automateworkflows.md b/docs/automateworkflows.md index f0ec61ecd..a42abed96 100644 --- a/docs/automateworkflows.md +++ b/docs/automateworkflows.md @@ -14,7 +14,10 @@ This operation is performed by calling function `getAutomateWorkflowsV2026R0`. See the endpoint docs at [API Reference](https://developer.box.com/reference/v2026.0/get-automate-workflows/). -*Currently we don't have an example for calling `getAutomateWorkflowsV2026R0` in integration tests* + +``` +adminClient.getAutomateWorkflows().getAutomateWorkflowsV2026R0(new GetAutomateWorkflowsV2026R0QueryParams(workflowFolderId)) +``` ### Arguments @@ -40,7 +43,10 @@ This operation is performed by calling function `createAutomateWorkflowStartV202 See the endpoint docs at [API Reference](https://developer.box.com/reference/v2026.0/post-automate-workflows-id-start/). -*Currently we don't have an example for calling `createAutomateWorkflowStartV2026R0` in integration tests* + +``` +adminClient.getAutomateWorkflows().createAutomateWorkflowStartV2026R0(workflowAction.getWorkflow().getId(), new AutomateWorkflowStartRequestV2026R0(workflowAction.getId(), Arrays.asList(workflowFileId))) +``` ### Arguments diff --git a/src/test/java/com/box/sdkgen/automateworkflows/AutomateWorkflowsITest.java b/src/test/java/com/box/sdkgen/automateworkflows/AutomateWorkflowsITest.java new file mode 100644 index 000000000..0b733dee7 --- /dev/null +++ b/src/test/java/com/box/sdkgen/automateworkflows/AutomateWorkflowsITest.java @@ -0,0 +1,59 @@ +package com.box.sdkgen.automateworkflows; + +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.generateByteStream; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.automateworkflows.GetAutomateWorkflowsV2026R0QueryParams; +import com.box.sdkgen.managers.uploads.UploadFileRequestBody; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesField; +import com.box.sdkgen.managers.uploads.UploadFileRequestBodyAttributesParentField; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.files.Files; +import com.box.sdkgen.schemas.v2026r0.automateworkflowactionv2026r0.AutomateWorkflowActionV2026R0; +import com.box.sdkgen.schemas.v2026r0.automateworkflowstartrequestv2026r0.AutomateWorkflowStartRequestV2026R0; +import com.box.sdkgen.schemas.v2026r0.automateworkflowsv2026r0.AutomateWorkflowsV2026R0; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class AutomateWorkflowsITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testAutomateWorkflows() { + BoxClient adminClient = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); + String workflowFolderId = getEnvVar("AUTOMATE_WORKFLOW_FOLDER_ID"); + Files uploadedFiles = + adminClient + .getUploads() + .uploadFile( + new UploadFileRequestBody( + new UploadFileRequestBodyAttributesField( + getUuid(), + new UploadFileRequestBodyAttributesParentField(workflowFolderId)), + generateByteStream(1024 * 1024))); + FileFull file = uploadedFiles.getEntries().get(0); + String workflowFileId = file.getId(); + AutomateWorkflowsV2026R0 automateWorkflows = + adminClient + .getAutomateWorkflows() + .getAutomateWorkflowsV2026R0( + new GetAutomateWorkflowsV2026R0QueryParams(workflowFolderId)); + assert automateWorkflows.getEntries().size() == 1; + AutomateWorkflowActionV2026R0 workflowAction = automateWorkflows.getEntries().get(0); + assert convertToString(workflowAction.getType()).equals("workflow_action"); + assert convertToString(workflowAction.getActionType()).equals("run_workflow"); + assert convertToString(workflowAction.getWorkflow().getType()).equals("workflow"); + adminClient + .getAutomateWorkflows() + .createAutomateWorkflowStartV2026R0( + workflowAction.getWorkflow().getId(), + new AutomateWorkflowStartRequestV2026R0( + workflowAction.getId(), Arrays.asList(workflowFileId))); + } +} From 166a729b447c335d900f41754dc7d4c0aec5d406 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Thu, 30 Apr 2026 11:47:37 +0200 Subject: [PATCH 113/148] chore: release version 10.10.0 (#1825) --- .codegen.json | 2 +- CHANGELOG.md | 12 ++++++++++++ build.gradle | 2 +- .../com/box/sdkgen/networking/version/Version.java | 2 +- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index 6436bbbf8..b35dee169 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "c571efa", "specHash": "f899bf6", "version": "10.9.0" } +{ "engineHash": "c571efa", "specHash": "f899bf6", "version": "10.10.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f60ddd31..d28333747 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,18 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [10.10.0](https://github.com/box/box-java-sdk/compare/v10.9.0...v10.10.0) (2026-04-30) + + +### Bug Fixes + +* Fix java `oneOf` serialization (box/box-codegen[#942](https://github.com/box/box-java-sdk/issues/942)) ([#1806](https://github.com/box/box-java-sdk/issues/1806)) ([dcd5df6](https://github.com/box/box-java-sdk/commit/dcd5df60f3545983209e58c50ab1648a6d5fb167)) + + +### New Features and Enhancements + +* Automate Public API (box/box-openapi[#594](https://github.com/box/box-java-sdk/issues/594)) ([#1820](https://github.com/box/box-java-sdk/issues/1820)) ([41e859a](https://github.com/box/box-java-sdk/commit/41e859acf78844b0a2e28d3d14ca721b88e2a108)) + ## [10.9.0](https://github.com/box/box-java-sdk/compare/v10.8.0...v10.9.0) (2026-04-22) diff --git a/build.gradle b/build.gradle index feb403a57..cd147309c 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ plugins { } group = "com.box" archivesBaseName = "box-java-sdk" -version = "10.9.0" +version = "10.10.0" java { sourceCompatibility = JavaVersion.toVersion(libraryJavaVersion) targetCompatibility = JavaVersion.toVersion(libraryJavaVersion) diff --git a/src/main/java/com/box/sdkgen/networking/version/Version.java b/src/main/java/com/box/sdkgen/networking/version/Version.java index 463b80194..e36a27b10 100644 --- a/src/main/java/com/box/sdkgen/networking/version/Version.java +++ b/src/main/java/com/box/sdkgen/networking/version/Version.java @@ -3,6 +3,6 @@ public class Version { public static String getVersion() { - return "10.9.0"; + return "10.10.0"; } } From 1c59b46e90ef5d33ff85eff45125cefe00e5e950 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 5 May 2026 17:13:51 +0200 Subject: [PATCH 114/148] fix!: Mark `id` field of `AIAgentReference` required (box/box-openapi#1629) (box/box-openapi#595) (#1827) --- .codegen.json | 2 +- .../aiagentreference/AiAgentReference.java | 16 +++++++--------- .../com/box/sdkgen/aistudio/AiStudioITest.java | 2 +- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/.codegen.json b/.codegen.json index b35dee169..1b1aa609d 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "c571efa", "specHash": "f899bf6", "version": "10.10.0" } +{ "engineHash": "c571efa", "specHash": "65c9c57", "version": "10.10.0" } diff --git a/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReference.java b/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReference.java index 8345e2480..c982876be 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReference.java +++ b/src/main/java/com/box/sdkgen/schemas/aiagentreference/AiAgentReference.java @@ -4,6 +4,7 @@ import com.box.sdkgen.internal.SerializableObject; import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; @@ -23,10 +24,11 @@ public class AiAgentReference extends SerializableObject { * Extract * Agent](https://developer.box.com/guides/box-ai/ai-tutorials/extract-metadata-structured#enhanced-extract-agent)). */ - protected String id; + protected final String id; - public AiAgentReference() { + public AiAgentReference(@JsonProperty("id") String id) { super(); + this.id = id; this.type = new EnumWrapper(AiAgentReferenceTypeField.AI_AGENT_ID); } @@ -71,10 +73,11 @@ public static class Builder extends NullableFieldTracker { protected EnumWrapper type; - protected String id; + protected final String id; - public Builder() { + public Builder(String id) { super(); + this.id = id; } public Builder type(AiAgentReferenceTypeField type) { @@ -87,11 +90,6 @@ public Builder type(EnumWrapper type) { return this; } - public Builder id(String id) { - this.id = id; - return this; - } - public AiAgentReference build() { if (this.type == null) { this.type = diff --git a/src/test/java/com/box/sdkgen/aistudio/AiStudioITest.java b/src/test/java/com/box/sdkgen/aistudio/AiStudioITest.java index d7d7a1784..dc266f4bb 100644 --- a/src/test/java/com/box/sdkgen/aistudio/AiStudioITest.java +++ b/src/test/java/com/box/sdkgen/aistudio/AiStudioITest.java @@ -87,7 +87,7 @@ public void testUseAiAgentReferenceInAiAsk() { new AiItemAsk.Builder(fileToAsk.getId(), AiItemAskTypeField.FILE) .content("The Sun rises in the east.") .build())) - .aiAgent(new AiAgentReference.Builder().id(createdAgent.getId()).build()) + .aiAgent(new AiAgentReference(createdAgent.getId())) .build()); assert response.getAnswer().contains("east"); assert response.getCompletionReason().equals("done"); From 193718a5eb07e0816f7fc23daad3ebbe5cba993b Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 6 May 2026 09:43:41 +0200 Subject: [PATCH 115/148] fix: Fix metadata template schema (box/box-openapi#596) (#1828) Co-authored-by: Artur Jankowski --- .codegen.json | 2 +- ...etadataTemplateRequestBodyFieldsField.java | 38 +++++- .../MetadataTemplateFieldsField.java | 112 +++++++++++++++++- ...tadataTemplateFieldsOptionsRulesField.java | 88 ++++++++++++++ .../MetadataTemplateFieldsTypeField.java | 4 +- 5 files changed, 235 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsOptionsRulesField.java diff --git a/.codegen.json b/.codegen.json index 1b1aa609d..dc9a6d2fb 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "c571efa", "specHash": "65c9c57", "version": "10.10.0" } +{ "engineHash": "c571efa", "specHash": "fa39a3f", "version": "10.10.0" } diff --git a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsField.java b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsField.java index b72968c5e..ba4b8c43a 100644 --- a/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsField.java +++ b/src/main/java/com/box/sdkgen/managers/metadatatemplates/CreateMetadataTemplateRequestBodyFieldsField.java @@ -17,8 +17,8 @@ public class CreateMetadataTemplateRequestBodyFieldsField extends SerializableOb * The type of field. The basic fields are a `string` field for text, a `float` field for numbers, * and a `date` field to present the user with a date-time picker. * - *

    Additionally, metadata templates support an `enum` field for a basic list of items, and ` - * multiSelect` field for a similar list of items where the user can select more than one value. + *

    Additionally, metadata templates support an `enum` field for a basic list of items, and + * `multiSelect` field for a similar list of items where the user can select more than one value. * *

    Metadata taxonomies are also supported as a `taxonomy` field type with a specific set of * additional properties, which describe its structure. @@ -63,6 +63,12 @@ public class CreateMetadataTemplateRequestBodyFieldsField extends SerializableOb */ protected String taxonomyKey; + /** + * The unique ID of the metadata taxonomy to use for this taxonomy field. This property is + * required when the field `type` is set to `taxonomy`. + */ + protected String taxonomyId; + /** * The namespace of the metadata taxonomy to use for this taxonomy field. This property is * required when the field `type` is set to `taxonomy`. @@ -102,6 +108,7 @@ protected CreateMetadataTemplateRequestBodyFieldsField(Builder builder) { this.hidden = builder.hidden; this.options = builder.options; this.taxonomyKey = builder.taxonomyKey; + this.taxonomyId = builder.taxonomyId; this.namespace = builder.namespace; this.optionsRules = builder.optionsRules; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); @@ -135,6 +142,10 @@ public String getTaxonomyKey() { return taxonomyKey; } + public String getTaxonomyId() { + return taxonomyId; + } + public String getNamespace() { return namespace; } @@ -160,6 +171,7 @@ public boolean equals(Object o) { && Objects.equals(hidden, casted.hidden) && Objects.equals(options, casted.options) && Objects.equals(taxonomyKey, casted.taxonomyKey) + && Objects.equals(taxonomyId, casted.taxonomyId) && Objects.equals(namespace, casted.namespace) && Objects.equals(optionsRules, casted.optionsRules); } @@ -167,7 +179,16 @@ public boolean equals(Object o) { @Override public int hashCode() { return Objects.hash( - type, key, displayName, description, hidden, options, taxonomyKey, namespace, optionsRules); + type, + key, + displayName, + description, + hidden, + options, + taxonomyKey, + taxonomyId, + namespace, + optionsRules); } @Override @@ -201,6 +222,10 @@ public String toString() { + taxonomyKey + '\'' + ", " + + "taxonomyId='" + + taxonomyId + + '\'' + + ", " + "namespace='" + namespace + '\'' @@ -227,6 +252,8 @@ public static class Builder extends NullableFieldTracker { protected String taxonomyKey; + protected String taxonomyId; + protected String namespace; protected CreateMetadataTemplateRequestBodyFieldsOptionsRulesField optionsRules; @@ -269,6 +296,11 @@ public Builder taxonomyKey(String taxonomyKey) { return this; } + public Builder taxonomyId(String taxonomyId) { + this.taxonomyId = taxonomyId; + return this; + } + public Builder namespace(String namespace) { this.namespace = namespace; return this; diff --git a/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsField.java b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsField.java index a06ce4645..779e2429c 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsField.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsField.java @@ -17,8 +17,11 @@ public class MetadataTemplateFieldsField extends SerializableObject { * The type of field. The basic fields are a `string` field for text, a `float` field for numbers, * and a `date` fields to present the user with a date-time picker. * - *

    Additionally, metadata templates support an `enum` field for a basic list of items, and ` - * multiSelect` field for a similar list of items where the user can select more than one value. + *

    Additionally, metadata templates support an `enum` field for a basic list of items, and + * `multiSelect` field for a similar list of items where the user can select more than one value. + * + *

    Metadata taxonomies are also supported as a `taxonomy` field type with a specific set of + * additional properties, which describe its structure. * *

    **Note**: The `integer` value is deprecated. It is still present in the response, but cannot * be used in the POST request. @@ -53,6 +56,30 @@ public class MetadataTemplateFieldsField extends SerializableObject { */ protected List options; + /** + * The unique key of the metadata taxonomy to use for this taxonomy field. This property is + * required when the field `type` is set to `taxonomy`. + */ + protected String taxonomyKey; + + /** + * The unique ID of the metadata taxonomy to use for this taxonomy field. This property is + * required when the field `type` is set to `taxonomy`. + */ + protected String taxonomyId; + + /** + * The namespace of the metadata taxonomy to use for this taxonomy field. This property is + * required when the field `type` is set to `taxonomy`. + */ + protected String namespace; + + /** + * An object defining additional rules for the options of the taxonomy field. This property is + * required when the field `type` is set to `taxonomy`. + */ + protected MetadataTemplateFieldsOptionsRulesField optionsRules; + /** The unique ID of the metadata template field. */ protected String id; @@ -82,6 +109,10 @@ protected MetadataTemplateFieldsField(Builder builder) { this.description = builder.description; this.hidden = builder.hidden; this.options = builder.options; + this.taxonomyKey = builder.taxonomyKey; + this.taxonomyId = builder.taxonomyId; + this.namespace = builder.namespace; + this.optionsRules = builder.optionsRules; this.id = builder.id; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -110,6 +141,22 @@ public List getOptions() { return options; } + public String getTaxonomyKey() { + return taxonomyKey; + } + + public String getTaxonomyId() { + return taxonomyId; + } + + public String getNamespace() { + return namespace; + } + + public MetadataTemplateFieldsOptionsRulesField getOptionsRules() { + return optionsRules; + } + public String getId() { return id; } @@ -129,12 +176,27 @@ public boolean equals(Object o) { && Objects.equals(description, casted.description) && Objects.equals(hidden, casted.hidden) && Objects.equals(options, casted.options) + && Objects.equals(taxonomyKey, casted.taxonomyKey) + && Objects.equals(taxonomyId, casted.taxonomyId) + && Objects.equals(namespace, casted.namespace) + && Objects.equals(optionsRules, casted.optionsRules) && Objects.equals(id, casted.id); } @Override public int hashCode() { - return Objects.hash(type, key, displayName, description, hidden, options, id); + return Objects.hash( + type, + key, + displayName, + description, + hidden, + options, + taxonomyKey, + taxonomyId, + namespace, + optionsRules, + id); } @Override @@ -164,6 +226,22 @@ public String toString() { + options + '\'' + ", " + + "taxonomyKey='" + + taxonomyKey + + '\'' + + ", " + + "taxonomyId='" + + taxonomyId + + '\'' + + ", " + + "namespace='" + + namespace + + '\'' + + ", " + + "optionsRules='" + + optionsRules + + '\'' + + ", " + "id='" + id + '\'' @@ -184,6 +262,14 @@ public static class Builder extends NullableFieldTracker { protected List options; + protected String taxonomyKey; + + protected String taxonomyId; + + protected String namespace; + + protected MetadataTemplateFieldsOptionsRulesField optionsRules; + protected String id; public Builder(MetadataTemplateFieldsTypeField type, String key, String displayName) { @@ -216,6 +302,26 @@ public Builder options(List options) { return this; } + public Builder taxonomyKey(String taxonomyKey) { + this.taxonomyKey = taxonomyKey; + return this; + } + + public Builder taxonomyId(String taxonomyId) { + this.taxonomyId = taxonomyId; + return this; + } + + public Builder namespace(String namespace) { + this.namespace = namespace; + return this; + } + + public Builder optionsRules(MetadataTemplateFieldsOptionsRulesField optionsRules) { + this.optionsRules = optionsRules; + return this; + } + public Builder id(String id) { this.id = id; return this; diff --git a/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsOptionsRulesField.java b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsOptionsRulesField.java new file mode 100644 index 000000000..592e2450e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsOptionsRulesField.java @@ -0,0 +1,88 @@ +package com.box.sdkgen.schemas.metadatatemplate; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class MetadataTemplateFieldsOptionsRulesField extends SerializableObject { + + /** Whether to allow users to select multiple values. */ + protected Boolean multiSelect; + + /** An array of integers defining which levels of the taxonomy are selectable by users. */ + protected List selectableLevels; + + public MetadataTemplateFieldsOptionsRulesField() { + super(); + } + + protected MetadataTemplateFieldsOptionsRulesField(Builder builder) { + super(); + this.multiSelect = builder.multiSelect; + this.selectableLevels = builder.selectableLevels; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getMultiSelect() { + return multiSelect; + } + + public List getSelectableLevels() { + return selectableLevels; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MetadataTemplateFieldsOptionsRulesField casted = (MetadataTemplateFieldsOptionsRulesField) o; + return Objects.equals(multiSelect, casted.multiSelect) + && Objects.equals(selectableLevels, casted.selectableLevels); + } + + @Override + public int hashCode() { + return Objects.hash(multiSelect, selectableLevels); + } + + @Override + public String toString() { + return "MetadataTemplateFieldsOptionsRulesField{" + + "multiSelect='" + + multiSelect + + '\'' + + ", " + + "selectableLevels='" + + selectableLevels + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean multiSelect; + + protected List selectableLevels; + + public Builder multiSelect(Boolean multiSelect) { + this.multiSelect = multiSelect; + return this; + } + + public Builder selectableLevels(List selectableLevels) { + this.selectableLevels = selectableLevels; + return this; + } + + public MetadataTemplateFieldsOptionsRulesField build() { + return new MetadataTemplateFieldsOptionsRulesField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsTypeField.java b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsTypeField.java index a769c13ae..e9e64ff5d 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/metadatatemplate/MetadataTemplateFieldsTypeField.java @@ -18,8 +18,8 @@ public enum MetadataTemplateFieldsTypeField implements Valuable { DATE("date"), ENUM("enum"), MULTISELECT("multiSelect"), - INTEGER("integer"), - TAXONOMY("taxonomy"); + TAXONOMY("taxonomy"), + INTEGER("integer"); private final String value; From c5b5aac745eb437cb9d1b5ddd4afbc8830eb8fc3 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 6 May 2026 10:04:56 +0200 Subject: [PATCH 116/148] test: Test missing metadata taxonomy fields (box/box-codegen#940) (#1831) --- .codegen.json | 2 +- docs/metadatataxonomies.md | 2 +- .../MetadataTaxonomiesITest.java | 17 ++++++++++++++--- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/.codegen.json b/.codegen.json index dc9a6d2fb..7db2fa0df 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "c571efa", "specHash": "fa39a3f", "version": "10.10.0" } +{ "engineHash": "2492c3e", "specHash": "fa39a3f", "version": "10.10.0" } diff --git a/docs/metadatataxonomies.md b/docs/metadatataxonomies.md index d5c54adf9..e9e23b048 100644 --- a/docs/metadatataxonomies.md +++ b/docs/metadatataxonomies.md @@ -493,7 +493,7 @@ See the endpoint docs at ``` -client.getMetadataTaxonomies().getMetadataTemplateFieldOptions(namespace, metadataTemplateKey, "taxonomy") +client.getMetadataTaxonomies().getMetadataTemplateFieldOptions(namespace, metadataTemplateKey, fieldKey) ``` ### Arguments diff --git a/src/test/java/com/box/sdkgen/metadatataxonomies/MetadataTaxonomiesITest.java b/src/test/java/com/box/sdkgen/metadatataxonomies/MetadataTaxonomiesITest.java index acf57215c..7d151c8b0 100644 --- a/src/test/java/com/box/sdkgen/metadatataxonomies/MetadataTaxonomiesITest.java +++ b/src/test/java/com/box/sdkgen/metadatataxonomies/MetadataTaxonomiesITest.java @@ -181,6 +181,8 @@ public void testMetadataTaxonomiesNodes() { assert getCountryNode.getDisplayName().equals("Poland UPDATED"); assert getCountryNode.getId().equals(countryNode.getId()); String metadataTemplateKey = String.join("", "templateKey", getUuid()); + String fieldDisplayName = "testTaxonomy123"; + String fieldKey = "testTaxonomy321"; MetadataTemplate metadataTemplate = client .getMetadataTemplates() @@ -191,8 +193,8 @@ public void testMetadataTaxonomiesNodes() { Arrays.asList( new CreateMetadataTemplateRequestBodyFieldsField.Builder( CreateMetadataTemplateRequestBodyFieldsTypeField.TAXONOMY, - "taxonomy", - "taxonomy") + fieldKey, + fieldDisplayName) .taxonomyKey(taxonomyKey) .namespace(namespace) .optionsRules( @@ -206,11 +208,20 @@ public void testMetadataTaxonomiesNodes() { assert metadataTemplate.getTemplateKey().equals(metadataTemplateKey); assert metadataTemplate.getDisplayName().equals(metadataTemplateKey); assert metadataTemplate.getFields().size() == 1; + assert metadataTemplate.getFields().get(0).getDisplayName().equals(fieldDisplayName); + assert metadataTemplate.getFields().get(0).getHidden() == false; + assert !(metadataTemplate.getFields().get(0).getId().equals("")); + assert metadataTemplate.getFields().get(0).getKey().equals(fieldKey); + assert metadataTemplate.getFields().get(0).getNamespace().equals(namespace); + assert metadataTemplate.getFields().get(0).getOptionsRules().getMultiSelect() == true; + assert metadataTemplate.getFields().get(0).getOptionsRules().getSelectableLevels().get(0) == 1; + assert !(metadataTemplate.getFields().get(0).getTaxonomyId().equals("")); + assert metadataTemplate.getFields().get(0).getTaxonomyKey().equals(taxonomyKey); assert convertToString(metadataTemplate.getFields().get(0).getType()).equals("taxonomy"); MetadataTaxonomyNodes options = client .getMetadataTaxonomies() - .getMetadataTemplateFieldOptions(namespace, metadataTemplateKey, "taxonomy"); + .getMetadataTemplateFieldOptions(namespace, metadataTemplateKey, fieldKey); assert options.getEntries().size() == 1; client .getMetadataTemplates() From cf8488a99425274d1c5b93607fdc5d6e156565ff Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 6 May 2026 16:10:23 +0200 Subject: [PATCH 117/148] chore: release version 10.11.0 (#1833) Co-authored-by: Artur Jankowski --- .codegen.json | 2 +- CHANGELOG.md | 12 ++++++++++++ build.gradle | 2 +- .../com/box/sdkgen/networking/version/Version.java | 2 +- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index 7db2fa0df..e539f317b 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "2492c3e", "specHash": "fa39a3f", "version": "10.10.0" } +{ "engineHash": "2492c3e", "specHash": "fa39a3f", "version": "10.11.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index d28333747..955b21ced 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,18 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [10.11.0](https://github.com/box/box-java-sdk/compare/v10.10.0...v10.11.0) (2026-05-06) + + +### ⚠ BREAKING CHANGES + +* Mark `id` field of `AIAgentReference` required (box/box-openapi[#1629](https://github.com/box/box-java-sdk/issues/1629)) (box/box-openapi[#595](https://github.com/box/box-java-sdk/issues/595)) ([#1827](https://github.com/box/box-java-sdk/issues/1827)) ([1c59b46](https://github.com/box/box-java-sdk/commit/1c59b46e90ef5d33ff85eff45125cefe00e5e950)) + +### Bug Fixes + +* Fix metadata template schema (box/box-openapi[#596](https://github.com/box/box-java-sdk/issues/596)) ([#1828](https://github.com/box/box-java-sdk/issues/1828)) ([193718a](https://github.com/box/box-java-sdk/commit/193718a5eb07e0816f7fc23daad3ebbe5cba993b)) +* Mark `id` field of `AIAgentReference` required (box/box-openapi[#1629](https://github.com/box/box-java-sdk/issues/1629)) (box/box-openapi[#595](https://github.com/box/box-java-sdk/issues/595)) ([#1827](https://github.com/box/box-java-sdk/issues/1827)) ([1c59b46](https://github.com/box/box-java-sdk/commit/1c59b46e90ef5d33ff85eff45125cefe00e5e950)) + ## [10.10.0](https://github.com/box/box-java-sdk/compare/v10.9.0...v10.10.0) (2026-04-30) diff --git a/build.gradle b/build.gradle index cd147309c..7aae9954f 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ plugins { } group = "com.box" archivesBaseName = "box-java-sdk" -version = "10.10.0" +version = "10.11.0" java { sourceCompatibility = JavaVersion.toVersion(libraryJavaVersion) targetCompatibility = JavaVersion.toVersion(libraryJavaVersion) diff --git a/src/main/java/com/box/sdkgen/networking/version/Version.java b/src/main/java/com/box/sdkgen/networking/version/Version.java index e36a27b10..18c9942b3 100644 --- a/src/main/java/com/box/sdkgen/networking/version/Version.java +++ b/src/main/java/com/box/sdkgen/networking/version/Version.java @@ -3,6 +3,6 @@ public class Version { public static String getVersion() { - return "10.10.0"; + return "10.11.0"; } } From aa439b475e26f761f7f3aca8e6b5eec55d472838 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Fri, 15 May 2026 12:17:37 +0200 Subject: [PATCH 118/148] feat: Add new event types (box/box-openapi#597) (#1840) --- .codegen.json | 2 +- .../schemas/event/EventEventTypeField.java | 52 +++++++++++++++++-- 2 files changed, 49 insertions(+), 5 deletions(-) diff --git a/.codegen.json b/.codegen.json index e539f317b..acd2318ed 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "2492c3e", "specHash": "fa39a3f", "version": "10.11.0" } +{ "engineHash": "0f85d1e", "specHash": "576cd17", "version": "10.11.0" } diff --git a/src/main/java/com/box/sdkgen/schemas/event/EventEventTypeField.java b/src/main/java/com/box/sdkgen/schemas/event/EventEventTypeField.java index 47879a6de..f741eea63 100644 --- a/src/main/java/com/box/sdkgen/schemas/event/EventEventTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/event/EventEventTypeField.java @@ -18,9 +18,15 @@ public enum EventEventTypeField implements Valuable { ADD_DEVICE_ASSOCIATION("ADD_DEVICE_ASSOCIATION"), ADD_LOGIN_ACTIVITY_DEVICE("ADD_LOGIN_ACTIVITY_DEVICE"), ADMIN_LOGIN("ADMIN_LOGIN"), + AI_SECURITY_DETECTION("AI_SECURITY_DETECTION"), + ANNOTATIONV2_CREATE("ANNOTATIONV2_CREATE"), + ANNOTATIONV2_DELETE("ANNOTATIONV2_DELETE"), + ANNOTATIONV2_EDIT("ANNOTATIONV2_EDIT"), APPLICATION_CREATED("APPLICATION_CREATED"), APPLICATION_PUBLIC_KEY_ADDED("APPLICATION_PUBLIC_KEY_ADDED"), APPLICATION_PUBLIC_KEY_DELETED("APPLICATION_PUBLIC_KEY_DELETED"), + BOX_AI_USER_FAILED_REQUEST("BOX_AI_USER_FAILED_REQUEST"), + BOX_AI_USER_REQUEST("BOX_AI_USER_REQUEST"), CHANGE_ADMIN_ROLE("CHANGE_ADMIN_ROLE"), CHANGE_FOLDER_PERMISSION("CHANGE_FOLDER_PERMISSION"), COLLABORATION_ACCEPT("COLLABORATION_ACCEPT"), @@ -32,9 +38,18 @@ public enum EventEventTypeField implements Valuable { COLLAB_INVITE_COLLABORATOR("COLLAB_INVITE_COLLABORATOR"), COLLAB_REMOVE_COLLABORATOR("COLLAB_REMOVE_COLLABORATOR"), COLLAB_ROLE_CHANGE("COLLAB_ROLE_CHANGE"), + COLLECTION_CREATE("COLLECTION_CREATE"), + COLLECTION_DELETE("COLLECTION_DELETE"), + COLLECTION_ITEM_CREATE("COLLECTION_ITEM_CREATE"), + COLLECTION_ITEM_DELETE("COLLECTION_ITEM_DELETE"), + COLLECTION_ITEM_UPDATE("COLLECTION_ITEM_UPDATE"), + COLLECTION_UPDATE("COLLECTION_UPDATE"), COMMENT_CREATE("COMMENT_CREATE"), COMMENT_DELETE("COMMENT_DELETE"), CONTENT_ACCESS("CONTENT_ACCESS"), + CONTENT_RECOVERY_REPORT_CREATE("CONTENT_RECOVERY_REPORT_CREATE"), + CONTENT_RECOVERY_REPORT_DELETE("CONTENT_RECOVERY_REPORT_DELETE"), + CONTENT_RECOVERY_REPORT_INITIATE("CONTENT_RECOVERY_REPORT_INITIATE"), CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY("CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY"), CONTENT_WORKFLOW_AUTOMATION_ADD("CONTENT_WORKFLOW_AUTOMATION_ADD"), CONTENT_WORKFLOW_AUTOMATION_DELETE("CONTENT_WORKFLOW_AUTOMATION_DELETE"), @@ -47,30 +62,39 @@ public enum EventEventTypeField implements Valuable { DELETE("DELETE"), DELETE_USER("DELETE_USER"), DEVICE_TRUST_CHECK_FAILED("DEVICE_TRUST_CHECK_FAILED"), + DISABLE_MULTI_FACTOR_AUTH("DISABLE_MULTI_FACTOR_AUTH"), DOWNLOAD("DOWNLOAD"), EDIT("EDIT"), EDIT_USER("EDIT_USER"), - EDR_CROWDSTRIKE_DEVICE_DETECTED("EDR_CROWDSTRIKE_DEVICE_DETECTED"), - EDR_CROWDSTRIKE_NO_BOX_TOOLS("EDR_CROWDSTRIKE_NO_BOX_TOOLS"), - EDR_CROWDSTRIKE_BOX_TOOLS_OUTDATED("EDR_CROWDSTRIKE_BOX_TOOLS_OUTDATED"), - EDR_CROWDSTRIKE_DRIVE_OUTDATED("EDR_CROWDSTRIKE_DRIVE_OUTDATED"), EDR_CROWDSTRIKE_ACCESS_ALLOWED_NO_CROWDSTRIKE_DEVICE( "EDR_CROWDSTRIKE_ACCESS_ALLOWED_NO_CROWDSTRIKE_DEVICE"), EDR_CROWDSTRIKE_ACCESS_REVOKED("EDR_CROWDSTRIKE_ACCESS_REVOKED"), + EDR_CROWDSTRIKE_BOX_TOOLS_OUTDATED("EDR_CROWDSTRIKE_BOX_TOOLS_OUTDATED"), + EDR_CROWDSTRIKE_DEVICE_DETECTED("EDR_CROWDSTRIKE_DEVICE_DETECTED"), + EDR_CROWDSTRIKE_DRIVE_OUTDATED("EDR_CROWDSTRIKE_DRIVE_OUTDATED"), + EDR_CROWDSTRIKE_NO_BOX_TOOLS("EDR_CROWDSTRIKE_NO_BOX_TOOLS"), EMAIL_ALIAS_CONFIRM("EMAIL_ALIAS_CONFIRM"), EMAIL_ALIAS_REMOVE("EMAIL_ALIAS_REMOVE"), + ENABLE_MULTI_FACTOR_AUTH("ENABLE_MULTI_FACTOR_AUTH"), ENABLE_TWO_FACTOR_AUTH("ENABLE_TWO_FACTOR_AUTH"), ENTERPRISE_APP_AUTHORIZATION_UPDATE("ENTERPRISE_APP_AUTHORIZATION_UPDATE"), + EXTERNAL_COLLAB_SECURITY_SETTINGS("EXTERNAL_COLLAB_SECURITY_SETTINGS"), FAILED_LOGIN("FAILED_LOGIN"), FILE_MARKED_MALICIOUS("FILE_MARKED_MALICIOUS"), FILE_WATERMARKED_DOWNLOAD("FILE_WATERMARKED_DOWNLOAD"), GROUP_ADD_ITEM("GROUP_ADD_ITEM"), GROUP_ADD_USER("GROUP_ADD_USER"), + GROUP_ADMIN_CREATED("GROUP_ADMIN_CREATED"), + GROUP_ADMIN_DELETED("GROUP_ADMIN_DELETED"), + GROUP_ADMIN_PERMISSIONS_UPDATED("GROUP_ADMIN_PERMISSIONS_UPDATED"), GROUP_CREATION("GROUP_CREATION"), GROUP_DELETION("GROUP_DELETION"), GROUP_EDITED("GROUP_EDITED"), GROUP_REMOVE_ITEM("GROUP_REMOVE_ITEM"), GROUP_REMOVE_USER("GROUP_REMOVE_USER"), + ITEM_ASSOCIATION_CREATED("ITEM_ASSOCIATION_CREATED"), + ITEM_ASSOCIATION_DELETED("ITEM_ASSOCIATION_DELETED"), + ITEM_ASSOCIATION_UPDATED("ITEM_ASSOCIATION_UPDATED"), ITEM_COPY("ITEM_COPY"), ITEM_CREATE("ITEM_CREATE"), ITEM_DOWNLOAD("ITEM_DOWNLOAD"), @@ -109,21 +133,40 @@ public enum EventEventTypeField implements Valuable { METADATA_TEMPLATE_UPDATE("METADATA_TEMPLATE_UPDATE"), MOVE("MOVE"), NEW_USER("NEW_USER"), + OAUTH2_ACCESS_TOKEN_REVOKE("OAUTH2_ACCESS_TOKEN_REVOKE"), PREVIEW("PREVIEW"), REMOVE_DEVICE_ASSOCIATION("REMOVE_DEVICE_ASSOCIATION"), REMOVE_LOGIN_ACTIVITY_DEVICE("REMOVE_LOGIN_ACTIVITY_DEVICE"), RENAME("RENAME"), RETENTION_POLICY_ASSIGNMENT_ADD("RETENTION_POLICY_ASSIGNMENT_ADD"), SHARE("SHARE"), + SHARED_LINK_REDIRECT_OUT_OF_SHARED_CONTEXT("SHARED_LINK_REDIRECT_OUT_OF_SHARED_CONTEXT"), SHARED_LINK_SEND("SHARED_LINK_SEND"), SHARE_EXPIRATION("SHARE_EXPIRATION"), + SHIELD_ACCESS_POLICY_CREATED("SHIELD_ACCESS_POLICY_CREATED"), + SHIELD_ACCESS_POLICY_DELETED("SHIELD_ACCESS_POLICY_DELETED"), + SHIELD_ACCESS_POLICY_UPDATED("SHIELD_ACCESS_POLICY_UPDATED"), SHIELD_ALERT("SHIELD_ALERT"), + SHIELD_DOWNLOAD_BLOCKED("SHIELD_DOWNLOAD_BLOCKED"), SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED("SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED"), SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED_MISSING_JUSTIFICATION( "SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED_MISSING_JUSTIFICATION"), SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED("SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED"), SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED_MISSING_JUSTIFICATION( "SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED_MISSING_JUSTIFICATION"), + SHIELD_EXTERNAL_COLLAB_INVITE_JUSTIFIED("SHIELD_EXTERNAL_COLLAB_INVITE_JUSTIFIED"), + SHIELD_INFORMATION_BARRIER_COLLAB_BLOCKED("SHIELD_INFORMATION_BARRIER_COLLAB_BLOCKED"), + SHIELD_INFORMATION_BARRIER_DISABLED("SHIELD_INFORMATION_BARRIER_DISABLED"), + SHIELD_INFORMATION_BARRIER_ENABLED("SHIELD_INFORMATION_BARRIER_ENABLED"), + SHIELD_INFORMATION_BARRIER_GROUP_ADD_USER_BLOCKED( + "SHIELD_INFORMATION_BARRIER_GROUP_ADD_USER_BLOCKED"), + SHIELD_INFORMATION_BARRIER_ITEM_COPY_BLOCKED("SHIELD_INFORMATION_BARRIER_ITEM_COPY_BLOCKED"), + SHIELD_INFORMATION_BARRIER_ITEM_MOVE_BLOCKED("SHIELD_INFORMATION_BARRIER_ITEM_MOVE_BLOCKED"), + SHIELD_INFORMATION_BARRIER_ITEM_OWNER_TRANSFER_BLOCKED( + "SHIELD_INFORMATION_BARRIER_ITEM_OWNER_TRANSFER_BLOCKED"), + SHIELD_INFORMATION_BARRIER_PENDING("SHIELD_INFORMATION_BARRIER_PENDING"), + SHIELD_INFORMATION_BARRIER_SHARED_ITEM_ACCESS_BLOCKED( + "SHIELD_INFORMATION_BARRIER_SHARED_ITEM_ACCESS_BLOCKED"), SHIELD_JUSTIFICATION_APPROVAL("SHIELD_JUSTIFICATION_APPROVAL"), SHIELD_SHARED_LINK_ACCESS_BLOCKED("SHIELD_SHARED_LINK_ACCESS_BLOCKED"), SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_CREATE("SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_CREATE"), @@ -137,6 +180,7 @@ public enum EventEventTypeField implements Valuable { SIGN_DOCUMENT_EXPIRED("SIGN_DOCUMENT_EXPIRED"), SIGN_DOCUMENT_SIGNED("SIGN_DOCUMENT_SIGNED"), SIGN_DOCUMENT_VIEWED_BY_SIGNED("SIGN_DOCUMENT_VIEWED_BY_SIGNED"), + SIGN_DOCUMENT_VIEWED_BY_SIGNER("SIGN_DOCUMENT_VIEWED_BY_SIGNER"), SIGNER_DOWNLOADED("SIGNER_DOWNLOADED"), SIGNER_FORWARDED("SIGNER_FORWARDED"), STORAGE_EXPIRATION("STORAGE_EXPIRATION"), From 39b6fccb3067364d9f4eaa3a0f9627eabd526b13 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Fri, 15 May 2026 12:50:55 +0200 Subject: [PATCH 119/148] feat: Sanitize request body in `BoxAPIError` (box/box-codegen#948) (#1844) --- .codegen.json | 2 +- .../box/sdkgen/box/errors/BoxAPIError.java | 11 ++++++- .../box/sdkgen/box/errors/RequestInfo.java | 29 +++++++++++++++-- .../internal/logging/DataSanitizer.java | 26 ++++++++++++++++ .../boxnetworkclient/BoxNetworkClient.java | 5 ++- .../serialization/json/JsonManager.java | 31 +++++++++++++++++++ 6 files changed, 99 insertions(+), 5 deletions(-) diff --git a/.codegen.json b/.codegen.json index acd2318ed..e0bbe432e 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "0f85d1e", "specHash": "576cd17", "version": "10.11.0" } +{ "engineHash": "78a8dc0", "specHash": "576cd17", "version": "10.11.0" } diff --git a/src/main/java/com/box/sdkgen/box/errors/BoxAPIError.java b/src/main/java/com/box/sdkgen/box/errors/BoxAPIError.java index 9c37d22af..794dfd6b5 100644 --- a/src/main/java/com/box/sdkgen/box/errors/BoxAPIError.java +++ b/src/main/java/com/box/sdkgen/box/errors/BoxAPIError.java @@ -27,7 +27,16 @@ public static BoxAPIError fromAPICall( FetchResponse fetchResponse, String rawResponseBody, DataSanitizer dataSanitizer) { - RequestInfo requestInfo = RequestInfo.fromRequest(request); + return fromAPICall(request, fetchResponse, rawResponseBody, dataSanitizer, null); + } + + public static BoxAPIError fromAPICall( + Request request, + FetchResponse fetchResponse, + String rawResponseBody, + DataSanitizer dataSanitizer, + String contentType) { + RequestInfo requestInfo = RequestInfo.fromRequest(request, contentType); ResponseInfo responseInfo = ResponseInfo.fromResponse(fetchResponse, rawResponseBody); String requestId = diff --git a/src/main/java/com/box/sdkgen/box/errors/RequestInfo.java b/src/main/java/com/box/sdkgen/box/errors/RequestInfo.java index f8e1b8d1f..dcdb9edec 100644 --- a/src/main/java/com/box/sdkgen/box/errors/RequestInfo.java +++ b/src/main/java/com/box/sdkgen/box/errors/RequestInfo.java @@ -19,6 +19,8 @@ public class RequestInfo { public String body; + public String contentType; + public RequestInfo( String method, String url, Map queryParams, Map headers) { this.method = method; @@ -33,6 +35,7 @@ protected RequestInfo(Builder builder) { this.queryParams = builder.queryParams; this.headers = builder.headers; this.body = builder.body; + this.contentType = builder.contentType; } public String getMethod() { @@ -55,6 +58,10 @@ public String getBody() { return body; } + public String getContentType() { + return contentType; + } + public static class Builder { protected final String method; @@ -67,6 +74,8 @@ public static class Builder { protected String body; + protected String contentType; + public Builder( String method, String url, Map queryParams, Map headers) { this.method = method; @@ -80,12 +89,21 @@ public Builder body(String body) { return this; } + public Builder contentType(String contentType) { + this.contentType = contentType; + return this; + } + public RequestInfo build() { return new RequestInfo(this); } } public static RequestInfo fromRequest(Request request) { + return fromRequest(request, null); + } + + public static RequestInfo fromRequest(Request request, String contentType) { Builder requestInfoBuilder = new Builder( request.method(), @@ -95,7 +113,8 @@ public static RequestInfo fromRequest(Request request) { Collectors.toMap(name -> name, name -> request.url().queryParameter(name))), request.headers().toMultimap().entrySet().stream() .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().get(0)))) - .body(getRequestBodyAsString(request.body())); + .body(getRequestBodyAsString(request.body())) + .contentType(contentType); return new RequestInfo(requestInfoBuilder); } @@ -116,6 +135,12 @@ private static String getRequestBodyAsString(RequestBody requestBody) { String print(DataSanitizer dataSanitizer) { Map sanitizedHeaders = dataSanitizer == null ? headers : dataSanitizer.sanitizeHeaders(headers); + String sanitizedBody; + if (dataSanitizer == null || body == null) { + sanitizedBody = body; + } else { + sanitizedBody = dataSanitizer.sanitizeStringBody(body, contentType); + } return "RequestInfo{" + "\n\tmethod='" + method @@ -128,7 +153,7 @@ String print(DataSanitizer dataSanitizer) { + ", \n\theaders=" + sanitizedHeaders + ", \n\tbody='" - + body + + sanitizedBody + '\'' + '}'; } diff --git a/src/main/java/com/box/sdkgen/internal/logging/DataSanitizer.java b/src/main/java/com/box/sdkgen/internal/logging/DataSanitizer.java index b802614f7..630540a3d 100644 --- a/src/main/java/com/box/sdkgen/internal/logging/DataSanitizer.java +++ b/src/main/java/com/box/sdkgen/internal/logging/DataSanitizer.java @@ -3,7 +3,10 @@ import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; import static com.box.sdkgen.internal.utils.UtilsManager.sanitizeMap; +import static com.box.sdkgen.serialization.json.JsonManager.jsonToSerializedData; +import static com.box.sdkgen.serialization.json.JsonManager.sanitizeFormEncodedBodyFromString; import static com.box.sdkgen.serialization.json.JsonManager.sanitizeSerializedData; +import static com.box.sdkgen.serialization.json.JsonManager.sdToJson; import com.fasterxml.jackson.databind.JsonNode; import java.util.Map; @@ -36,4 +39,27 @@ public Map sanitizeHeaders(Map headers) { public JsonNode sanitizeBody(JsonNode body) { return sanitizeSerializedData(body, this.keysToSanitize); } + + public String sanitizeFormEncodedBody(String body) { + return sanitizeFormEncodedBodyFromString(body, this.keysToSanitize); + } + + public String sanitizeStringBody(String body) { + return sanitizeStringBody(body, null); + } + + public String sanitizeStringBody(String body, String contentType) { + if (contentType.equals("application/json") + || contentType.equals("application/json-patch+json")) { + try { + return sdToJson(this.sanitizeBody(jsonToSerializedData(body))); + } catch (Exception exception) { + return body; + } + } + if (contentType.equals("application/x-www-form-urlencoded")) { + return this.sanitizeFormEncodedBody(body); + } + return body; + } } diff --git a/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java b/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java index 80a4c0ff6..b7278de44 100644 --- a/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java +++ b/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java @@ -255,6 +255,7 @@ public FetchResponse fetch(FetchOptions options) { fetchResponse, rawResponseBody, exceptionThrown, + fetchOptions.getContentType(), networkSession.getDataSanitizer()); } } @@ -367,12 +368,14 @@ private static void throwOnUnsuccessfulResponse( FetchResponse fetchResponse, String rawResponseBody, Exception exceptionThrown, + String contentType, DataSanitizer dataSanitizer) { if (fetchResponse.getStatus() == 0 && exceptionThrown != null) { throw new BoxSDKError(exceptionThrown.getMessage(), exceptionThrown); } try { - throw BoxAPIError.fromAPICall(request, fetchResponse, rawResponseBody, dataSanitizer); + throw BoxAPIError.fromAPICall( + request, fetchResponse, rawResponseBody, dataSanitizer, contentType); } finally { try { if (fetchResponse.getContent() != null) { diff --git a/src/main/java/com/box/sdkgen/serialization/json/JsonManager.java b/src/main/java/com/box/sdkgen/serialization/json/JsonManager.java index 3c9c32655..e64510f4e 100644 --- a/src/main/java/com/box/sdkgen/serialization/json/JsonManager.java +++ b/src/main/java/com/box/sdkgen/serialization/json/JsonManager.java @@ -113,4 +113,35 @@ public static JsonNode sanitizeSerializedData(JsonNode sd, Map k return new ObjectMapper().valueToTree(sanitizedDictionary); } + + public static String sanitizeFormEncodedBodyFromString( + String body, Map keysToSanitize) { + if (body == null) { + return null; + } + + String[] parameters = body.split("&", -1); + StringBuilder sanitizedBodyBuilder = new StringBuilder(); + for (int i = 0; i < parameters.length; i++) { + if (i > 0) { + sanitizedBodyBuilder.append("&"); + } + sanitizedBodyBuilder.append(sanitizeFormEncodedParameter(parameters[i], keysToSanitize)); + } + return sanitizedBodyBuilder.toString(); + } + + private static String sanitizeFormEncodedParameter( + String parameter, Map keysToSanitize) { + int separatorIndex = parameter.indexOf("="); + if (separatorIndex < 0) { + return parameter; + } + + String key = parameter.substring(0, separatorIndex); + String value = parameter.substring(separatorIndex + 1); + String sanitizedValue = + keysToSanitize.containsKey(key.toLowerCase(Locale.ROOT)) ? sanitizedValue() : value; + return key + "=" + sanitizedValue; + } } From 8d72727367cb0b1643db9488d0659264ad7aa45e Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 20 May 2026 11:17:46 +0200 Subject: [PATCH 120/148] feat: add failure related fields to `DocGenJob` (box/box-openapi#598) (#1849) --- .codegen.json | 2 +- .../DocGenJobFullV2025R0.java | 14 +++++ .../docgenjobv2025r0/DocGenJobV2025R0.java | 27 +++++++- .../DocGenJobV2025R0FailuresField.java | 63 +++++++++++++++++++ 4 files changed, 103 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0FailuresField.java diff --git a/.codegen.json b/.codegen.json index e0bbe432e..46f2e5c0b 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "78a8dc0", "specHash": "576cd17", "version": "10.11.0" } +{ "engineHash": "4de40e1", "specHash": "e0ffc4a", "version": "10.11.0" } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobfullv2025r0/DocGenJobFullV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobfullv2025r0/DocGenJobFullV2025R0.java index 8e33443e7..926e73476 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobfullv2025r0/DocGenJobFullV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobfullv2025r0/DocGenJobFullV2025R0.java @@ -3,6 +3,7 @@ import com.box.sdkgen.schemas.v2025r0.docgenbatchbasev2025r0.DocGenBatchBaseV2025R0; import com.box.sdkgen.schemas.v2025r0.docgenjobbasev2025r0.DocGenJobBaseV2025R0TypeField; import com.box.sdkgen.schemas.v2025r0.docgenjobv2025r0.DocGenJobV2025R0; +import com.box.sdkgen.schemas.v2025r0.docgenjobv2025r0.DocGenJobV2025R0FailuresField; import com.box.sdkgen.schemas.v2025r0.docgenjobv2025r0.DocGenJobV2025R0StatusField; import com.box.sdkgen.schemas.v2025r0.enterprisereferencev2025r0.EnterpriseReferenceV2025R0; import com.box.sdkgen.schemas.v2025r0.filereferencev2025r0.FileReferenceV2025R0; @@ -104,6 +105,7 @@ public boolean equals(Object o) { && Objects.equals(outputFileVersion, casted.outputFileVersion) && Objects.equals(status, casted.status) && Objects.equals(outputType, casted.outputType) + && Objects.equals(failures, casted.failures) && Objects.equals(createdAt, casted.createdAt) && Objects.equals(createdBy, casted.createdBy) && Objects.equals(enterprise, casted.enterprise) @@ -122,6 +124,7 @@ public int hashCode() { outputFileVersion, status, outputType, + failures, createdAt, createdBy, enterprise, @@ -167,6 +170,10 @@ public String toString() { + outputType + '\'' + ", " + + "failures='" + + failures + + '\'' + + ", " + "createdAt='" + createdAt + '\'' @@ -256,6 +263,13 @@ public Builder outputFileVersion(FileVersionBaseV2025R0 outputFileVersion) { return this; } + @Override + public Builder failures(DocGenJobV2025R0FailuresField failures) { + this.failures = failures; + this.markNullableFieldAsSet("failures"); + return this; + } + public DocGenJobFullV2025R0 build() { if (this.type == null) { this.type = diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0.java index 64674d8a7..3d275553c 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0.java @@ -1,5 +1,6 @@ package com.box.sdkgen.schemas.v2025r0.docgenjobv2025r0; +import com.box.sdkgen.internal.Nullable; import com.box.sdkgen.schemas.v2025r0.docgenbatchbasev2025r0.DocGenBatchBaseV2025R0; import com.box.sdkgen.schemas.v2025r0.docgenjobbasev2025r0.DocGenJobBaseV2025R0; import com.box.sdkgen.schemas.v2025r0.docgenjobbasev2025r0.DocGenJobBaseV2025R0TypeField; @@ -40,6 +41,9 @@ public class DocGenJobV2025R0 extends DocGenJobBaseV2025R0 { @JsonProperty("output_type") protected final String outputType; + /** Errors and warnings that occurred during document generation. */ + @Nullable protected DocGenJobV2025R0FailuresField failures; + public DocGenJobV2025R0( String id, DocGenBatchBaseV2025R0 batch, @@ -79,6 +83,7 @@ protected DocGenJobV2025R0(Builder builder) { this.outputFileVersion = builder.outputFileVersion; this.status = builder.status; this.outputType = builder.outputType; + this.failures = builder.failures; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -110,6 +115,10 @@ public String getOutputType() { return outputType; } + public DocGenJobV2025R0FailuresField getFailures() { + return failures; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -127,7 +136,8 @@ public boolean equals(Object o) { && Objects.equals(outputFile, casted.outputFile) && Objects.equals(outputFileVersion, casted.outputFileVersion) && Objects.equals(status, casted.status) - && Objects.equals(outputType, casted.outputType); + && Objects.equals(outputType, casted.outputType) + && Objects.equals(failures, casted.failures); } @Override @@ -141,7 +151,8 @@ public int hashCode() { outputFile, outputFileVersion, status, - outputType); + outputType, + failures); } @Override @@ -182,6 +193,10 @@ public String toString() { + "outputType='" + outputType + '\'' + + ", " + + "failures='" + + failures + + '\'' + "}"; } @@ -201,6 +216,8 @@ public static class Builder extends DocGenJobBaseV2025R0.Builder { protected final String outputType; + protected DocGenJobV2025R0FailuresField failures; + public Builder( String id, DocGenBatchBaseV2025R0 batch, @@ -241,6 +258,12 @@ public Builder outputFileVersion(FileVersionBaseV2025R0 outputFileVersion) { return this; } + public Builder failures(DocGenJobV2025R0FailuresField failures) { + this.failures = failures; + this.markNullableFieldAsSet("failures"); + return this; + } + @Override public Builder type(DocGenJobBaseV2025R0TypeField type) { this.type = new EnumWrapper(type); diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0FailuresField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0FailuresField.java new file mode 100644 index 000000000..f48e1b4b9 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/docgenjobv2025r0/DocGenJobV2025R0FailuresField.java @@ -0,0 +1,63 @@ +package com.box.sdkgen.schemas.v2025r0.docgenjobv2025r0; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class DocGenJobV2025R0FailuresField extends SerializableObject { + + /** A list of errors that occurred during document generation. */ + protected final List errors; + + /** A list of warnings that occurred during document generation. */ + protected final List warnings; + + public DocGenJobV2025R0FailuresField( + @JsonProperty("errors") List errors, + @JsonProperty("warnings") List warnings) { + super(); + this.errors = errors; + this.warnings = warnings; + } + + public List getErrors() { + return errors; + } + + public List getWarnings() { + return warnings; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocGenJobV2025R0FailuresField casted = (DocGenJobV2025R0FailuresField) o; + return Objects.equals(errors, casted.errors) && Objects.equals(warnings, casted.warnings); + } + + @Override + public int hashCode() { + return Objects.hash(errors, warnings); + } + + @Override + public String toString() { + return "DocGenJobV2025R0FailuresField{" + + "errors='" + + errors + + '\'' + + ", " + + "warnings='" + + warnings + + '\'' + + "}"; + } +} From fc54b2c50214095526b237e36c7dbb73c15a5683 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 20 May 2026 12:38:47 +0200 Subject: [PATCH 121/148] chore: release version 10.12.0 (#1852) --- .codegen.json | 2 +- CHANGELOG.md | 9 +++++++++ build.gradle | 2 +- .../java/com/box/sdkgen/networking/version/Version.java | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index 46f2e5c0b..bee5a75a0 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "4de40e1", "specHash": "e0ffc4a", "version": "10.11.0" } +{ "engineHash": "4de40e1", "specHash": "e0ffc4a", "version": "10.12.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 955b21ced..7e1770221 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,15 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [10.12.0](https://github.com/box/box-java-sdk/compare/v10.11.0...v10.12.0) (2026-05-20) + + +### New Features and Enhancements + +* add failure related fields to `DocGenJob` (box/box-openapi[#598](https://github.com/box/box-java-sdk/issues/598)) ([#1849](https://github.com/box/box-java-sdk/issues/1849)) ([8d72727](https://github.com/box/box-java-sdk/commit/8d72727367cb0b1643db9488d0659264ad7aa45e)) +* Add new event types (box/box-openapi[#597](https://github.com/box/box-java-sdk/issues/597)) ([#1840](https://github.com/box/box-java-sdk/issues/1840)) ([aa439b4](https://github.com/box/box-java-sdk/commit/aa439b475e26f761f7f3aca8e6b5eec55d472838)) +* Sanitize request body in `BoxAPIError` (box/box-codegen[#948](https://github.com/box/box-java-sdk/issues/948)) ([#1844](https://github.com/box/box-java-sdk/issues/1844)) ([39b6fcc](https://github.com/box/box-java-sdk/commit/39b6fccb3067364d9f4eaa3a0f9627eabd526b13)) + ## [10.11.0](https://github.com/box/box-java-sdk/compare/v10.10.0...v10.11.0) (2026-05-06) diff --git a/build.gradle b/build.gradle index 7aae9954f..f1449aeb8 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ plugins { } group = "com.box" archivesBaseName = "box-java-sdk" -version = "10.11.0" +version = "10.12.0" java { sourceCompatibility = JavaVersion.toVersion(libraryJavaVersion) targetCompatibility = JavaVersion.toVersion(libraryJavaVersion) diff --git a/src/main/java/com/box/sdkgen/networking/version/Version.java b/src/main/java/com/box/sdkgen/networking/version/Version.java index 18c9942b3..eb0a894b2 100644 --- a/src/main/java/com/box/sdkgen/networking/version/Version.java +++ b/src/main/java/com/box/sdkgen/networking/version/Version.java @@ -3,6 +3,6 @@ public class Version { public static String getVersion() { - return "10.11.0"; + return "10.12.0"; } } From e396190406633a2071dacbbe0b67c4a92b03c7e0 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 27 May 2026 11:46:17 +0200 Subject: [PATCH 122/148] feat: Convert Note Public API (box/box-openapi#599) (#1855) --- .codegen.json | 2 +- docs/README.md | 1 + docs/convertmarkdowntoboxnote.md | 31 ++++ .../java/com/box/sdkgen/client/BoxClient.java | 17 ++ .../ConvertMarkdownToBoxNoteManager.java | 112 +++++++++++++ .../CreateNoteConvertV2026R0Headers.java | 68 ++++++++ .../FolderReferenceV2026R0.java | 100 ++++++++++++ .../FolderReferenceV2026R0TypeField.java | 64 ++++++++ .../NotesConvertRequestBodyV2026R0.java | 154 ++++++++++++++++++ ...tRequestBodyV2026R0ContentFormatField.java | 64 ++++++++ .../NotesConvertResponseV2026R0.java | 112 +++++++++++++ .../NotesConvertResponseV2026R0TypeField.java | 64 ++++++++ 12 files changed, 788 insertions(+), 1 deletion(-) create mode 100644 docs/convertmarkdowntoboxnote.md create mode 100644 src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/ConvertMarkdownToBoxNoteManager.java create mode 100644 src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/CreateNoteConvertV2026R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/folderreferencev2026r0/FolderReferenceV2026R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/folderreferencev2026r0/FolderReferenceV2026R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertrequestbodyv2026r0/NotesConvertRequestBodyV2026R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertrequestbodyv2026r0/NotesConvertRequestBodyV2026R0ContentFormatField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertresponsev2026r0/NotesConvertResponseV2026R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertresponsev2026r0/NotesConvertResponseV2026R0TypeField.java diff --git a/.codegen.json b/.codegen.json index bee5a75a0..8aafd761f 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "4de40e1", "specHash": "e0ffc4a", "version": "10.12.0" } +{ "engineHash": "4de40e1", "specHash": "8b85e74", "version": "10.12.0" } diff --git a/docs/README.md b/docs/README.md index 627015873..5dd7a610b 100644 --- a/docs/README.md +++ b/docs/README.md @@ -26,6 +26,7 @@ the SDK are available by topic: * [Collaborationallowlistexempttargets](collaborationallowlistexempttargets.md) * [Collections](collections.md) * [Comments](comments.md) +* [Convertmarkdowntoboxnote](convertmarkdowntoboxnote.md) * [Devicepinners](devicepinners.md) * [Docgen](docgen.md) * [Docgentemplate](docgentemplate.md) diff --git a/docs/convertmarkdowntoboxnote.md b/docs/convertmarkdowntoboxnote.md new file mode 100644 index 000000000..b5c040c61 --- /dev/null +++ b/docs/convertmarkdowntoboxnote.md @@ -0,0 +1,31 @@ +# ConvertMarkdownToBoxNoteManager + + +- [Convert content to Box Note](#convert-content-to-box-note) + +## Convert content to Box Note + +Creates a Box Note (`.boxnote` file) from supported source content. See the `content_format` field for supported formats. + +This operation is performed by calling function `createNoteConvertV2026R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2026.0/post-notes-convert/). + +*Currently we don't have an example for calling `createNoteConvertV2026R0` in integration tests* + +### Arguments + +- requestBody `NotesConvertRequestBodyV2026R0` + - Request body of createNoteConvertV2026R0 method +- headers `CreateNoteConvertV2026R0Headers` + - Headers of createNoteConvertV2026R0 method + + +### Returns + +This function returns a value of type `NotesConvertResponseV2026R0`. + +The note was created successfully. + + diff --git a/src/main/java/com/box/sdkgen/client/BoxClient.java b/src/main/java/com/box/sdkgen/client/BoxClient.java index 258a1d7ac..4f50eb527 100644 --- a/src/main/java/com/box/sdkgen/client/BoxClient.java +++ b/src/main/java/com/box/sdkgen/client/BoxClient.java @@ -16,6 +16,7 @@ import com.box.sdkgen.managers.collaborationallowlistexempttargets.CollaborationAllowlistExemptTargetsManager; import com.box.sdkgen.managers.collections.CollectionsManager; import com.box.sdkgen.managers.comments.CommentsManager; +import com.box.sdkgen.managers.convertmarkdowntoboxnote.ConvertMarkdownToBoxNoteManager; import com.box.sdkgen.managers.devicepinners.DevicePinnersManager; import com.box.sdkgen.managers.docgen.DocgenManager; import com.box.sdkgen.managers.docgentemplate.DocgenTemplateManager; @@ -273,6 +274,8 @@ public class BoxClient { public final AutomateWorkflowsManager automateWorkflows; + public final ConvertMarkdownToBoxNoteManager convertMarkdownToBoxNote; + public BoxClient(Authentication auth) { this.auth = auth; this.networkSession = new NetworkSession.Builder().baseUrls(new BaseUrls()).build(); @@ -626,6 +629,11 @@ public BoxClient(Authentication auth) { .auth(this.auth) .networkSession(this.networkSession) .build(); + this.convertMarkdownToBoxNote = + new ConvertMarkdownToBoxNoteManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); } protected BoxClient(Builder builder) { @@ -981,6 +989,11 @@ protected BoxClient(Builder builder) { .auth(this.auth) .networkSession(this.networkSession) .build(); + this.convertMarkdownToBoxNote = + new ConvertMarkdownToBoxNoteManager.Builder() + .auth(this.auth) + .networkSession(this.networkSession) + .build(); } /** @@ -1440,6 +1453,10 @@ public AutomateWorkflowsManager getAutomateWorkflows() { return automateWorkflows; } + public ConvertMarkdownToBoxNoteManager getConvertMarkdownToBoxNote() { + return convertMarkdownToBoxNote; + } + public static class Builder { protected final Authentication auth; diff --git a/src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/ConvertMarkdownToBoxNoteManager.java b/src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/ConvertMarkdownToBoxNoteManager.java new file mode 100644 index 000000000..e1de9a691 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/ConvertMarkdownToBoxNoteManager.java @@ -0,0 +1,112 @@ +package com.box.sdkgen.managers.convertmarkdowntoboxnote; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.v2026r0.notesconvertrequestbodyv2026r0.NotesConvertRequestBodyV2026R0; +import com.box.sdkgen.schemas.v2026r0.notesconvertresponsev2026r0.NotesConvertResponseV2026R0; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class ConvertMarkdownToBoxNoteManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public ConvertMarkdownToBoxNoteManager() { + this.networkSession = new NetworkSession(); + } + + protected ConvertMarkdownToBoxNoteManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + /** + * Creates a Box Note (`.boxnote` file) from supported source content. See the `content_format` + * field for supported formats. + * + * @param requestBody Request body of createNoteConvertV2026R0 method + */ + public NotesConvertResponseV2026R0 createNoteConvertV2026R0( + NotesConvertRequestBodyV2026R0 requestBody) { + return createNoteConvertV2026R0(requestBody, new CreateNoteConvertV2026R0Headers()); + } + + /** + * Creates a Box Note (`.boxnote` file) from supported source content. See the `content_format` + * field for supported formats. + * + * @param requestBody Request body of createNoteConvertV2026R0 method + * @param headers Headers of createNoteConvertV2026R0 method + */ + public NotesConvertResponseV2026R0 createNoteConvertV2026R0( + NotesConvertRequestBodyV2026R0 requestBody, CreateNoteConvertV2026R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/notes/convert"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), NotesConvertResponseV2026R0.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() {} + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public ConvertMarkdownToBoxNoteManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } + return new ConvertMarkdownToBoxNoteManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/CreateNoteConvertV2026R0Headers.java b/src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/CreateNoteConvertV2026R0Headers.java new file mode 100644 index 000000000..32dca19ce --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/CreateNoteConvertV2026R0Headers.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.managers.convertmarkdowntoboxnote; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2026r0.boxversionheaderv2026r0.BoxVersionHeaderV2026R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class CreateNoteConvertV2026R0Headers { + + /** Version header. */ + public EnumWrapper boxVersion; + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public CreateNoteConvertV2026R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2026R0._2026_0); + this.extraHeaders = mapOf(); + } + + protected CreateNoteConvertV2026R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() {} + + public Builder boxVersion(BoxVersionHeaderV2026R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateNoteConvertV2026R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2026R0._2026_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } + return new CreateNoteConvertV2026R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/folderreferencev2026r0/FolderReferenceV2026R0.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/folderreferencev2026r0/FolderReferenceV2026R0.java new file mode 100644 index 000000000..cfa591ac6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/folderreferencev2026r0/FolderReferenceV2026R0.java @@ -0,0 +1,100 @@ +package com.box.sdkgen.schemas.v2026r0.folderreferencev2026r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** Folder reference. */ +@JsonFilter("nullablePropertyFilter") +public class FolderReferenceV2026R0 extends SerializableObject { + + /** The value will always be `folder`. */ + @JsonDeserialize( + using = FolderReferenceV2026R0TypeField.FolderReferenceV2026R0TypeFieldDeserializer.class) + @JsonSerialize( + using = FolderReferenceV2026R0TypeField.FolderReferenceV2026R0TypeFieldSerializer.class) + protected EnumWrapper type; + + /** ID of the folder. */ + protected final String id; + + public FolderReferenceV2026R0(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper(FolderReferenceV2026R0TypeField.FOLDER); + } + + protected FolderReferenceV2026R0(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FolderReferenceV2026R0 casted = (FolderReferenceV2026R0) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "FolderReferenceV2026R0{" + "type='" + type + '\'' + ", " + "id='" + id + '\'' + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + } + + public Builder type(FolderReferenceV2026R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public FolderReferenceV2026R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + FolderReferenceV2026R0TypeField.FOLDER); + } + return new FolderReferenceV2026R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/folderreferencev2026r0/FolderReferenceV2026R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/folderreferencev2026r0/FolderReferenceV2026R0TypeField.java new file mode 100644 index 000000000..679821737 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/folderreferencev2026r0/FolderReferenceV2026R0TypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.v2026r0.folderreferencev2026r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FolderReferenceV2026R0TypeField implements Valuable { + FOLDER("folder"); + + private final String value; + + FolderReferenceV2026R0TypeField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class FolderReferenceV2026R0TypeFieldDeserializer + extends JsonDeserializer> { + + public FolderReferenceV2026R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FolderReferenceV2026R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FolderReferenceV2026R0TypeFieldSerializer + extends JsonSerializer> { + + public FolderReferenceV2026R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertrequestbodyv2026r0/NotesConvertRequestBodyV2026R0.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertrequestbodyv2026r0/NotesConvertRequestBodyV2026R0.java new file mode 100644 index 000000000..c640c2998 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertrequestbodyv2026r0/NotesConvertRequestBodyV2026R0.java @@ -0,0 +1,154 @@ +package com.box.sdkgen.schemas.v2026r0.notesconvertrequestbodyv2026r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2026r0.folderreferencev2026r0.FolderReferenceV2026R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** Request body for converting source content into a Box Note file. */ +@JsonFilter("nullablePropertyFilter") +public class NotesConvertRequestBodyV2026R0 extends SerializableObject { + + /** The content to convert to a note. See the `content_format` field for supported formats. */ + protected final String content; + + /** Format of the content to convert. */ + @JsonDeserialize( + using = + NotesConvertRequestBodyV2026R0ContentFormatField + .NotesConvertRequestBodyV2026R0ContentFormatFieldDeserializer.class) + @JsonSerialize( + using = + NotesConvertRequestBodyV2026R0ContentFormatField + .NotesConvertRequestBodyV2026R0ContentFormatFieldSerializer.class) + @JsonProperty("content_format") + protected EnumWrapper contentFormat; + + protected final FolderReferenceV2026R0 parent; + + /** The name for the created note. The `.boxnote` extension is appended automatically. */ + protected final String name; + + public NotesConvertRequestBodyV2026R0( + @JsonProperty("content") String content, + @JsonProperty("parent") FolderReferenceV2026R0 parent, + @JsonProperty("name") String name) { + super(); + this.content = content; + this.parent = parent; + this.name = name; + this.contentFormat = + new EnumWrapper( + NotesConvertRequestBodyV2026R0ContentFormatField.MARKDOWN); + } + + protected NotesConvertRequestBodyV2026R0(Builder builder) { + super(); + this.content = builder.content; + this.contentFormat = builder.contentFormat; + this.parent = builder.parent; + this.name = builder.name; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getContent() { + return content; + } + + public EnumWrapper getContentFormat() { + return contentFormat; + } + + public FolderReferenceV2026R0 getParent() { + return parent; + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NotesConvertRequestBodyV2026R0 casted = (NotesConvertRequestBodyV2026R0) o; + return Objects.equals(content, casted.content) + && Objects.equals(contentFormat, casted.contentFormat) + && Objects.equals(parent, casted.parent) + && Objects.equals(name, casted.name); + } + + @Override + public int hashCode() { + return Objects.hash(content, contentFormat, parent, name); + } + + @Override + public String toString() { + return "NotesConvertRequestBodyV2026R0{" + + "content='" + + content + + '\'' + + ", " + + "contentFormat='" + + contentFormat + + '\'' + + ", " + + "parent='" + + parent + + '\'' + + ", " + + "name='" + + name + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String content; + + protected EnumWrapper contentFormat; + + protected final FolderReferenceV2026R0 parent; + + protected final String name; + + public Builder(String content, FolderReferenceV2026R0 parent, String name) { + super(); + this.content = content; + this.parent = parent; + this.name = name; + } + + public Builder contentFormat(NotesConvertRequestBodyV2026R0ContentFormatField contentFormat) { + this.contentFormat = + new EnumWrapper(contentFormat); + return this; + } + + public Builder contentFormat( + EnumWrapper contentFormat) { + this.contentFormat = contentFormat; + return this; + } + + public NotesConvertRequestBodyV2026R0 build() { + if (this.contentFormat == null) { + this.contentFormat = + new EnumWrapper( + NotesConvertRequestBodyV2026R0ContentFormatField.MARKDOWN); + } + return new NotesConvertRequestBodyV2026R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertrequestbodyv2026r0/NotesConvertRequestBodyV2026R0ContentFormatField.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertrequestbodyv2026r0/NotesConvertRequestBodyV2026R0ContentFormatField.java new file mode 100644 index 000000000..da797c5b2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertrequestbodyv2026r0/NotesConvertRequestBodyV2026R0ContentFormatField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.v2026r0.notesconvertrequestbodyv2026r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum NotesConvertRequestBodyV2026R0ContentFormatField implements Valuable { + MARKDOWN("markdown"); + + private final String value; + + NotesConvertRequestBodyV2026R0ContentFormatField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class NotesConvertRequestBodyV2026R0ContentFormatFieldDeserializer + extends JsonDeserializer> { + + public NotesConvertRequestBodyV2026R0ContentFormatFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(NotesConvertRequestBodyV2026R0ContentFormatField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class NotesConvertRequestBodyV2026R0ContentFormatFieldSerializer + extends JsonSerializer> { + + public NotesConvertRequestBodyV2026R0ContentFormatFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertresponsev2026r0/NotesConvertResponseV2026R0.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertresponsev2026r0/NotesConvertResponseV2026R0.java new file mode 100644 index 000000000..d8adbc75b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertresponsev2026r0/NotesConvertResponseV2026R0.java @@ -0,0 +1,112 @@ +package com.box.sdkgen.schemas.v2026r0.notesconvertresponsev2026r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** Identifies the created Box Note file. */ +@JsonFilter("nullablePropertyFilter") +public class NotesConvertResponseV2026R0 extends SerializableObject { + + /** The Box resource type; always `file` for a Box file. */ + @JsonDeserialize( + using = + NotesConvertResponseV2026R0TypeField.NotesConvertResponseV2026R0TypeFieldDeserializer + .class) + @JsonSerialize( + using = + NotesConvertResponseV2026R0TypeField.NotesConvertResponseV2026R0TypeFieldSerializer.class) + protected EnumWrapper type; + + /** Box file ID of the created `.boxnote` file. */ + protected final String id; + + public NotesConvertResponseV2026R0(@JsonProperty("id") String id) { + super(); + this.id = id; + this.type = + new EnumWrapper( + NotesConvertResponseV2026R0TypeField.FILE); + } + + protected NotesConvertResponseV2026R0(Builder builder) { + super(); + this.type = builder.type; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NotesConvertResponseV2026R0 casted = (NotesConvertResponseV2026R0) o; + return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + return "NotesConvertResponseV2026R0{" + + "type='" + + type + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected final String id; + + public Builder(String id) { + super(); + this.id = id; + } + + public Builder type(NotesConvertResponseV2026R0TypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public NotesConvertResponseV2026R0 build() { + if (this.type == null) { + this.type = + new EnumWrapper( + NotesConvertResponseV2026R0TypeField.FILE); + } + return new NotesConvertResponseV2026R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertresponsev2026r0/NotesConvertResponseV2026R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertresponsev2026r0/NotesConvertResponseV2026R0TypeField.java new file mode 100644 index 000000000..0d277eb3d --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/notesconvertresponsev2026r0/NotesConvertResponseV2026R0TypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.v2026r0.notesconvertresponsev2026r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum NotesConvertResponseV2026R0TypeField implements Valuable { + FILE("file"); + + private final String value; + + NotesConvertResponseV2026R0TypeField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class NotesConvertResponseV2026R0TypeFieldDeserializer + extends JsonDeserializer> { + + public NotesConvertResponseV2026R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(NotesConvertResponseV2026R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class NotesConvertResponseV2026R0TypeFieldSerializer + extends JsonSerializer> { + + public NotesConvertResponseV2026R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} From 6151a3d54e88074b259b08ca26f551987dac503e Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 27 May 2026 11:47:34 +0200 Subject: [PATCH 123/148] test: Add test for Notes (box/box-codegen#955) (#1862) Co-authored-by: box-sdk-build --- .codegen.json | 2 +- docs/README.md | 1 + docs/notes.md | 34 ++++++ .../java/com/box/sdkgen/client/BoxClient.java | 22 ++-- .../CreateNoteConvertV2026R0Headers.java | 68 +++++++++++ .../sdkgen/managers/notes/NotesManager.java | 112 ++++++++++++++++++ .../signrequest/SignRequestStatusField.java | 1 + .../java/com/box/sdkgen/notes/NotesITest.java | 46 +++++++ 8 files changed, 271 insertions(+), 15 deletions(-) create mode 100644 docs/notes.md create mode 100644 src/main/java/com/box/sdkgen/managers/notes/CreateNoteConvertV2026R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/notes/NotesManager.java create mode 100644 src/test/java/com/box/sdkgen/notes/NotesITest.java diff --git a/.codegen.json b/.codegen.json index 8aafd761f..33a0ad09f 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "4de40e1", "specHash": "8b85e74", "version": "10.12.0" } +{ "engineHash": "5a7add6", "specHash": "d028758", "version": "10.12.0" } diff --git a/docs/README.md b/docs/README.md index 5dd7a610b..5daeb624b 100644 --- a/docs/README.md +++ b/docs/README.md @@ -62,6 +62,7 @@ the SDK are available by topic: * [Metadatacascadepolicies](metadatacascadepolicies.md) * [Metadatataxonomies](metadatataxonomies.md) * [Metadatatemplates](metadatatemplates.md) +* [Notes](notes.md) * [Recentitems](recentitems.md) * [Retentionpolicies](retentionpolicies.md) * [Retentionpolicyassignments](retentionpolicyassignments.md) diff --git a/docs/notes.md b/docs/notes.md new file mode 100644 index 000000000..c6a5da86c --- /dev/null +++ b/docs/notes.md @@ -0,0 +1,34 @@ +# NotesManager + + +- [Convert content to Box Note](#convert-content-to-box-note) + +## Convert content to Box Note + +Creates a Box Note (`.boxnote` file) from supported source content. See the `content_format` field for supported formats. + +This operation is performed by calling function `createNoteConvertV2026R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2026.0/post-notes-convert/). + + +``` +downscopedClient.getNotes().createNoteConvertV2026R0(new NotesConvertRequestBodyV2026R0.Builder(markdownContent, new FolderReferenceV2026R0("0"), noteName).contentFormat(NotesConvertRequestBodyV2026R0ContentFormatField.MARKDOWN).build()) +``` + +### Arguments + +- requestBody `NotesConvertRequestBodyV2026R0` + - Request body of createNoteConvertV2026R0 method +- headers `CreateNoteConvertV2026R0Headers` + - Headers of createNoteConvertV2026R0 method + + +### Returns + +This function returns a value of type `NotesConvertResponseV2026R0`. + +The note was created successfully. + + diff --git a/src/main/java/com/box/sdkgen/client/BoxClient.java b/src/main/java/com/box/sdkgen/client/BoxClient.java index 4f50eb527..9988474df 100644 --- a/src/main/java/com/box/sdkgen/client/BoxClient.java +++ b/src/main/java/com/box/sdkgen/client/BoxClient.java @@ -16,7 +16,6 @@ import com.box.sdkgen.managers.collaborationallowlistexempttargets.CollaborationAllowlistExemptTargetsManager; import com.box.sdkgen.managers.collections.CollectionsManager; import com.box.sdkgen.managers.comments.CommentsManager; -import com.box.sdkgen.managers.convertmarkdowntoboxnote.ConvertMarkdownToBoxNoteManager; import com.box.sdkgen.managers.devicepinners.DevicePinnersManager; import com.box.sdkgen.managers.docgen.DocgenManager; import com.box.sdkgen.managers.docgentemplate.DocgenTemplateManager; @@ -52,6 +51,7 @@ import com.box.sdkgen.managers.metadatacascadepolicies.MetadataCascadePoliciesManager; import com.box.sdkgen.managers.metadatataxonomies.MetadataTaxonomiesManager; import com.box.sdkgen.managers.metadatatemplates.MetadataTemplatesManager; +import com.box.sdkgen.managers.notes.NotesManager; import com.box.sdkgen.managers.recentitems.RecentItemsManager; import com.box.sdkgen.managers.retentionpolicies.RetentionPoliciesManager; import com.box.sdkgen.managers.retentionpolicyassignments.RetentionPolicyAssignmentsManager; @@ -274,7 +274,7 @@ public class BoxClient { public final AutomateWorkflowsManager automateWorkflows; - public final ConvertMarkdownToBoxNoteManager convertMarkdownToBoxNote; + public final NotesManager notes; public BoxClient(Authentication auth) { this.auth = auth; @@ -629,11 +629,8 @@ public BoxClient(Authentication auth) { .auth(this.auth) .networkSession(this.networkSession) .build(); - this.convertMarkdownToBoxNote = - new ConvertMarkdownToBoxNoteManager.Builder() - .auth(this.auth) - .networkSession(this.networkSession) - .build(); + this.notes = + new NotesManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); } protected BoxClient(Builder builder) { @@ -989,11 +986,8 @@ protected BoxClient(Builder builder) { .auth(this.auth) .networkSession(this.networkSession) .build(); - this.convertMarkdownToBoxNote = - new ConvertMarkdownToBoxNoteManager.Builder() - .auth(this.auth) - .networkSession(this.networkSession) - .build(); + this.notes = + new NotesManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); } /** @@ -1453,8 +1447,8 @@ public AutomateWorkflowsManager getAutomateWorkflows() { return automateWorkflows; } - public ConvertMarkdownToBoxNoteManager getConvertMarkdownToBoxNote() { - return convertMarkdownToBoxNote; + public NotesManager getNotes() { + return notes; } public static class Builder { diff --git a/src/main/java/com/box/sdkgen/managers/notes/CreateNoteConvertV2026R0Headers.java b/src/main/java/com/box/sdkgen/managers/notes/CreateNoteConvertV2026R0Headers.java new file mode 100644 index 000000000..88f920c08 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/notes/CreateNoteConvertV2026R0Headers.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.managers.notes; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2026r0.boxversionheaderv2026r0.BoxVersionHeaderV2026R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class CreateNoteConvertV2026R0Headers { + + /** Version header. */ + public EnumWrapper boxVersion; + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public CreateNoteConvertV2026R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2026R0._2026_0); + this.extraHeaders = mapOf(); + } + + protected CreateNoteConvertV2026R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() {} + + public Builder boxVersion(BoxVersionHeaderV2026R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateNoteConvertV2026R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2026R0._2026_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } + return new CreateNoteConvertV2026R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/notes/NotesManager.java b/src/main/java/com/box/sdkgen/managers/notes/NotesManager.java new file mode 100644 index 000000000..b9bbdd827 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/notes/NotesManager.java @@ -0,0 +1,112 @@ +package com.box.sdkgen.managers.notes; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.v2026r0.notesconvertrequestbodyv2026r0.NotesConvertRequestBodyV2026R0; +import com.box.sdkgen.schemas.v2026r0.notesconvertresponsev2026r0.NotesConvertResponseV2026R0; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class NotesManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public NotesManager() { + this.networkSession = new NetworkSession(); + } + + protected NotesManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + /** + * Creates a Box Note (`.boxnote` file) from supported source content. See the `content_format` + * field for supported formats. + * + * @param requestBody Request body of createNoteConvertV2026R0 method + */ + public NotesConvertResponseV2026R0 createNoteConvertV2026R0( + NotesConvertRequestBodyV2026R0 requestBody) { + return createNoteConvertV2026R0(requestBody, new CreateNoteConvertV2026R0Headers()); + } + + /** + * Creates a Box Note (`.boxnote` file) from supported source content. See the `content_format` + * field for supported formats. + * + * @param requestBody Request body of createNoteConvertV2026R0 method + * @param headers Headers of createNoteConvertV2026R0 method + */ + public NotesConvertResponseV2026R0 createNoteConvertV2026R0( + NotesConvertRequestBodyV2026R0 requestBody, CreateNoteConvertV2026R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/notes/convert"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), NotesConvertResponseV2026R0.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() {} + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public NotesManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } + return new NotesManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestStatusField.java b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestStatusField.java index 0e513ef86..e94b634b8 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestStatusField.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequestStatusField.java @@ -20,6 +20,7 @@ public enum SignRequestStatusField implements Valuable { SIGNED("signed"), CANCELLED("cancelled"), DECLINED("declined"), + ERROR("error"), ERROR_CONVERTING("error_converting"), ERROR_SENDING("error_sending"), EXPIRED("expired"), diff --git a/src/test/java/com/box/sdkgen/notes/NotesITest.java b/src/test/java/com/box/sdkgen/notes/NotesITest.java new file mode 100644 index 000000000..440f77938 --- /dev/null +++ b/src/test/java/com/box/sdkgen/notes/NotesITest.java @@ -0,0 +1,46 @@ +package com.box.sdkgen.notes; + +import static com.box.sdkgen.commons.CommonsManager.getDefaultClientWithUserSubject; +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; + +import com.box.sdkgen.box.developertokenauth.BoxDeveloperTokenAuth; +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.schemas.accesstoken.AccessToken; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.v2026r0.folderreferencev2026r0.FolderReferenceV2026R0; +import com.box.sdkgen.schemas.v2026r0.notesconvertrequestbodyv2026r0.NotesConvertRequestBodyV2026R0; +import com.box.sdkgen.schemas.v2026r0.notesconvertrequestbodyv2026r0.NotesConvertRequestBodyV2026R0ContentFormatField; +import com.box.sdkgen.schemas.v2026r0.notesconvertresponsev2026r0.NotesConvertResponseV2026R0; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class NotesITest { + + private static final BoxClient client = getDefaultClientWithUserSubject(getEnvVar("USER_ID")); + + @Test + public void testConvertMarkdownToBoxNote() { + String noteName = getUuid(); + String markdownContent = "# Heading\n\nSome text"; + AccessToken downscopedToken = + client.getAuth().downscopeToken(Arrays.asList("item_upload"), null, null, null); + BoxClient downscopedClient = + new BoxClient(new BoxDeveloperTokenAuth(downscopedToken.getAccessToken())); + NotesConvertResponseV2026R0 response = + downscopedClient + .getNotes() + .createNoteConvertV2026R0( + new NotesConvertRequestBodyV2026R0.Builder( + markdownContent, new FolderReferenceV2026R0("0"), noteName) + .contentFormat(NotesConvertRequestBodyV2026R0ContentFormatField.MARKDOWN) + .build()); + assert !(response.getId().equals("")); + assert convertToString(response.getType()).equals("file"); + FileFull file = client.getFiles().getFileById(response.getId()); + assert file.getName().equals(String.join("", noteName, ".boxnote")); + assert file.getParent().getId().equals("0"); + client.getFiles().deleteFileById(response.getId()); + } +} From d29f99f9e5327d69d04d3c1f756db2e16b247328 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 27 May 2026 11:53:35 +0200 Subject: [PATCH 124/148] test: remove token downscope from notes test (box/box-codegen#957) (#1864) Co-authored-by: box-sdk-build --- .codegen.json | 2 +- docs/notes.md | 2 +- src/test/java/com/box/sdkgen/notes/NotesITest.java | 9 +-------- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/.codegen.json b/.codegen.json index 33a0ad09f..2d1668dd2 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "5a7add6", "specHash": "d028758", "version": "10.12.0" } +{ "engineHash": "2e559a0", "specHash": "d028758", "version": "10.12.0" } diff --git a/docs/notes.md b/docs/notes.md index c6a5da86c..ab1f42981 100644 --- a/docs/notes.md +++ b/docs/notes.md @@ -14,7 +14,7 @@ See the endpoint docs at ``` -downscopedClient.getNotes().createNoteConvertV2026R0(new NotesConvertRequestBodyV2026R0.Builder(markdownContent, new FolderReferenceV2026R0("0"), noteName).contentFormat(NotesConvertRequestBodyV2026R0ContentFormatField.MARKDOWN).build()) +client.getNotes().createNoteConvertV2026R0(new NotesConvertRequestBodyV2026R0.Builder(markdownContent, new FolderReferenceV2026R0("0"), noteName).contentFormat(NotesConvertRequestBodyV2026R0ContentFormatField.MARKDOWN).build()) ``` ### Arguments diff --git a/src/test/java/com/box/sdkgen/notes/NotesITest.java b/src/test/java/com/box/sdkgen/notes/NotesITest.java index 440f77938..e2d2d29a6 100644 --- a/src/test/java/com/box/sdkgen/notes/NotesITest.java +++ b/src/test/java/com/box/sdkgen/notes/NotesITest.java @@ -5,15 +5,12 @@ import static com.box.sdkgen.internal.utils.UtilsManager.getEnvVar; import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; -import com.box.sdkgen.box.developertokenauth.BoxDeveloperTokenAuth; import com.box.sdkgen.client.BoxClient; -import com.box.sdkgen.schemas.accesstoken.AccessToken; import com.box.sdkgen.schemas.filefull.FileFull; import com.box.sdkgen.schemas.v2026r0.folderreferencev2026r0.FolderReferenceV2026R0; import com.box.sdkgen.schemas.v2026r0.notesconvertrequestbodyv2026r0.NotesConvertRequestBodyV2026R0; import com.box.sdkgen.schemas.v2026r0.notesconvertrequestbodyv2026r0.NotesConvertRequestBodyV2026R0ContentFormatField; import com.box.sdkgen.schemas.v2026r0.notesconvertresponsev2026r0.NotesConvertResponseV2026R0; -import java.util.Arrays; import org.junit.jupiter.api.Test; public class NotesITest { @@ -24,12 +21,8 @@ public class NotesITest { public void testConvertMarkdownToBoxNote() { String noteName = getUuid(); String markdownContent = "# Heading\n\nSome text"; - AccessToken downscopedToken = - client.getAuth().downscopeToken(Arrays.asList("item_upload"), null, null, null); - BoxClient downscopedClient = - new BoxClient(new BoxDeveloperTokenAuth(downscopedToken.getAccessToken())); NotesConvertResponseV2026R0 response = - downscopedClient + client .getNotes() .createNoteConvertV2026R0( new NotesConvertRequestBodyV2026R0.Builder( From df5d5bd5e6723bb695521845e5b7f6f577905d8c Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 3 Jun 2026 10:58:16 +0200 Subject: [PATCH 125/148] chore: release version 10.13.0 (#1870) --- .codegen.json | 2 +- CHANGELOG.md | 7 ++ build.gradle | 2 +- docs/README.md | 1 - docs/convertmarkdowntoboxnote.md | 31 ----- .../ConvertMarkdownToBoxNoteManager.java | 112 ------------------ .../CreateNoteConvertV2026R0Headers.java | 68 ----------- .../sdkgen/networking/version/Version.java | 2 +- 8 files changed, 10 insertions(+), 215 deletions(-) delete mode 100644 docs/convertmarkdowntoboxnote.md delete mode 100644 src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/ConvertMarkdownToBoxNoteManager.java delete mode 100644 src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/CreateNoteConvertV2026R0Headers.java diff --git a/.codegen.json b/.codegen.json index 2d1668dd2..b574e49b4 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "2e559a0", "specHash": "d028758", "version": "10.12.0" } +{ "engineHash": "2e559a0", "specHash": "d028758", "version": "10.13.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e1770221..cc042e9ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [10.13.0](https://github.com/box/box-java-sdk/compare/v10.12.0...v10.13.0) (2026-06-03) + + +### New Features and Enhancements + +* Convert Note Public API (box/box-openapi[#599](https://github.com/box/box-java-sdk/issues/599)) ([#1855](https://github.com/box/box-java-sdk/issues/1855)) ([e396190](https://github.com/box/box-java-sdk/commit/e396190406633a2071dacbbe0b67c4a92b03c7e0)) + ## [10.12.0](https://github.com/box/box-java-sdk/compare/v10.11.0...v10.12.0) (2026-05-20) diff --git a/build.gradle b/build.gradle index f1449aeb8..09c113c4a 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ plugins { } group = "com.box" archivesBaseName = "box-java-sdk" -version = "10.12.0" +version = "10.13.0" java { sourceCompatibility = JavaVersion.toVersion(libraryJavaVersion) targetCompatibility = JavaVersion.toVersion(libraryJavaVersion) diff --git a/docs/README.md b/docs/README.md index 5daeb624b..1257ffc42 100644 --- a/docs/README.md +++ b/docs/README.md @@ -26,7 +26,6 @@ the SDK are available by topic: * [Collaborationallowlistexempttargets](collaborationallowlistexempttargets.md) * [Collections](collections.md) * [Comments](comments.md) -* [Convertmarkdowntoboxnote](convertmarkdowntoboxnote.md) * [Devicepinners](devicepinners.md) * [Docgen](docgen.md) * [Docgentemplate](docgentemplate.md) diff --git a/docs/convertmarkdowntoboxnote.md b/docs/convertmarkdowntoboxnote.md deleted file mode 100644 index b5c040c61..000000000 --- a/docs/convertmarkdowntoboxnote.md +++ /dev/null @@ -1,31 +0,0 @@ -# ConvertMarkdownToBoxNoteManager - - -- [Convert content to Box Note](#convert-content-to-box-note) - -## Convert content to Box Note - -Creates a Box Note (`.boxnote` file) from supported source content. See the `content_format` field for supported formats. - -This operation is performed by calling function `createNoteConvertV2026R0`. - -See the endpoint docs at -[API Reference](https://developer.box.com/reference/v2026.0/post-notes-convert/). - -*Currently we don't have an example for calling `createNoteConvertV2026R0` in integration tests* - -### Arguments - -- requestBody `NotesConvertRequestBodyV2026R0` - - Request body of createNoteConvertV2026R0 method -- headers `CreateNoteConvertV2026R0Headers` - - Headers of createNoteConvertV2026R0 method - - -### Returns - -This function returns a value of type `NotesConvertResponseV2026R0`. - -The note was created successfully. - - diff --git a/src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/ConvertMarkdownToBoxNoteManager.java b/src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/ConvertMarkdownToBoxNoteManager.java deleted file mode 100644 index e1de9a691..000000000 --- a/src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/ConvertMarkdownToBoxNoteManager.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.box.sdkgen.managers.convertmarkdowntoboxnote; - -import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; -import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; -import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; -import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; -import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; - -import com.box.sdkgen.networking.auth.Authentication; -import com.box.sdkgen.networking.fetchoptions.FetchOptions; -import com.box.sdkgen.networking.fetchoptions.ResponseFormat; -import com.box.sdkgen.networking.fetchresponse.FetchResponse; -import com.box.sdkgen.networking.network.NetworkSession; -import com.box.sdkgen.schemas.v2026r0.notesconvertrequestbodyv2026r0.NotesConvertRequestBodyV2026R0; -import com.box.sdkgen.schemas.v2026r0.notesconvertresponsev2026r0.NotesConvertResponseV2026R0; -import com.box.sdkgen.serialization.json.JsonManager; -import java.util.Map; - -public class ConvertMarkdownToBoxNoteManager { - - public Authentication auth; - - public NetworkSession networkSession; - - public ConvertMarkdownToBoxNoteManager() { - this.networkSession = new NetworkSession(); - } - - protected ConvertMarkdownToBoxNoteManager(Builder builder) { - this.auth = builder.auth; - this.networkSession = builder.networkSession; - } - - /** - * Creates a Box Note (`.boxnote` file) from supported source content. See the `content_format` - * field for supported formats. - * - * @param requestBody Request body of createNoteConvertV2026R0 method - */ - public NotesConvertResponseV2026R0 createNoteConvertV2026R0( - NotesConvertRequestBodyV2026R0 requestBody) { - return createNoteConvertV2026R0(requestBody, new CreateNoteConvertV2026R0Headers()); - } - - /** - * Creates a Box Note (`.boxnote` file) from supported source content. See the `content_format` - * field for supported formats. - * - * @param requestBody Request body of createNoteConvertV2026R0 method - * @param headers Headers of createNoteConvertV2026R0 method - */ - public NotesConvertResponseV2026R0 createNoteConvertV2026R0( - NotesConvertRequestBodyV2026R0 requestBody, CreateNoteConvertV2026R0Headers headers) { - Map headersMap = - prepareParams( - mergeMaps( - mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), - headers.getExtraHeaders())); - FetchResponse response = - this.networkSession - .getNetworkClient() - .fetch( - new FetchOptions.Builder( - String.join( - "", - this.networkSession.getBaseUrls().getBaseUrl(), - "/2.0/notes/convert"), - "POST") - .headers(headersMap) - .data(JsonManager.serialize(requestBody)) - .contentType("application/json") - .responseFormat(ResponseFormat.JSON) - .auth(this.auth) - .networkSession(this.networkSession) - .build()); - return JsonManager.deserialize(response.getData(), NotesConvertResponseV2026R0.class); - } - - public Authentication getAuth() { - return auth; - } - - public NetworkSession getNetworkSession() { - return networkSession; - } - - public static class Builder { - - protected Authentication auth; - - protected NetworkSession networkSession; - - public Builder() {} - - public Builder auth(Authentication auth) { - this.auth = auth; - return this; - } - - public Builder networkSession(NetworkSession networkSession) { - this.networkSession = networkSession; - return this; - } - - public ConvertMarkdownToBoxNoteManager build() { - if (this.networkSession == null) { - this.networkSession = new NetworkSession(); - } - return new ConvertMarkdownToBoxNoteManager(this); - } - } -} diff --git a/src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/CreateNoteConvertV2026R0Headers.java b/src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/CreateNoteConvertV2026R0Headers.java deleted file mode 100644 index 32dca19ce..000000000 --- a/src/main/java/com/box/sdkgen/managers/convertmarkdowntoboxnote/CreateNoteConvertV2026R0Headers.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.box.sdkgen.managers.convertmarkdowntoboxnote; - -import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; - -import com.box.sdkgen.parameters.v2026r0.boxversionheaderv2026r0.BoxVersionHeaderV2026R0; -import com.box.sdkgen.serialization.json.EnumWrapper; -import java.util.Map; - -public class CreateNoteConvertV2026R0Headers { - - /** Version header. */ - public EnumWrapper boxVersion; - - /** Extra headers that will be included in the HTTP request. */ - public Map extraHeaders; - - public CreateNoteConvertV2026R0Headers() { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2026R0._2026_0); - this.extraHeaders = mapOf(); - } - - protected CreateNoteConvertV2026R0Headers(Builder builder) { - this.boxVersion = builder.boxVersion; - this.extraHeaders = builder.extraHeaders; - } - - public EnumWrapper getBoxVersion() { - return boxVersion; - } - - public Map getExtraHeaders() { - return extraHeaders; - } - - public static class Builder { - - protected EnumWrapper boxVersion; - - protected Map extraHeaders; - - public Builder() {} - - public Builder boxVersion(BoxVersionHeaderV2026R0 boxVersion) { - this.boxVersion = new EnumWrapper(boxVersion); - return this; - } - - public Builder boxVersion(EnumWrapper boxVersion) { - this.boxVersion = boxVersion; - return this; - } - - public Builder extraHeaders(Map extraHeaders) { - this.extraHeaders = extraHeaders; - return this; - } - - public CreateNoteConvertV2026R0Headers build() { - if (this.boxVersion == null) { - this.boxVersion = new EnumWrapper(BoxVersionHeaderV2026R0._2026_0); - } - if (this.extraHeaders == null) { - this.extraHeaders = mapOf(); - } - return new CreateNoteConvertV2026R0Headers(this); - } - } -} diff --git a/src/main/java/com/box/sdkgen/networking/version/Version.java b/src/main/java/com/box/sdkgen/networking/version/Version.java index eb0a894b2..7723b26a0 100644 --- a/src/main/java/com/box/sdkgen/networking/version/Version.java +++ b/src/main/java/com/box/sdkgen/networking/version/Version.java @@ -3,6 +3,6 @@ public class Version { public static String getVersion() { - return "10.12.0"; + return "10.13.0"; } } From da965b95597287af0e6a1c5ba1a904db0aaceae7 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 10 Jun 2026 16:30:41 +0200 Subject: [PATCH 126/148] chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] (#1876) Co-authored-by: box-sdk-build --- .codegen.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index b574e49b4..b55c79a2b 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "2e559a0", "specHash": "d028758", "version": "10.13.0" } +{ "engineHash": "b8db85c", "specHash": "d028758", "version": "10.13.0" } From 70dc787c16f096070428af8e2caa02be3ba6fcc0 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 10 Jun 2026 17:01:48 +0200 Subject: [PATCH 127/148] feat: Expose `errorCode` in sign request schemas (box/box-openapi#601) (#1887) --- .codegen.json | 2 +- .../schemas/signrequest/SignRequest.java | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index b55c79a2b..5df6886dd 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "b8db85c", "specHash": "d028758", "version": "10.13.0" } +{ "engineHash": "a87c352", "specHash": "ded99bf", "version": "10.13.0" } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequest.java b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequest.java index 1a6887024..e381b1825 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequest.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequest.java @@ -107,6 +107,14 @@ public class SignRequest extends SignRequestBase { @Nullable protected OffsetDateTime finishedAt; + /** + * When the sign request is in an error state, identifies the specific reason. Null when no error + * code applies. + */ + @JsonProperty("error_code") + @Nullable + protected String errorCode; + /** The email address of the sender of the sign request. */ @JsonProperty("sender_email") @Nullable @@ -138,6 +146,7 @@ protected SignRequest(Builder builder) { this.shortId = builder.shortId; this.createdAt = builder.createdAt; this.finishedAt = builder.finishedAt; + this.errorCode = builder.errorCode; this.senderEmail = builder.senderEmail; this.senderId = builder.senderId; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); @@ -203,6 +212,10 @@ public OffsetDateTime getFinishedAt() { return finishedAt; } + public String getErrorCode() { + return errorCode; + } + public String getSenderEmail() { return senderEmail; } @@ -248,6 +261,7 @@ public boolean equals(Object o) { && Objects.equals(shortId, casted.shortId) && Objects.equals(createdAt, casted.createdAt) && Objects.equals(finishedAt, casted.finishedAt) + && Objects.equals(errorCode, casted.errorCode) && Objects.equals(senderEmail, casted.senderEmail) && Objects.equals(senderId, casted.senderId); } @@ -283,6 +297,7 @@ public int hashCode() { shortId, createdAt, finishedAt, + errorCode, senderEmail, senderId); } @@ -402,6 +417,10 @@ public String toString() { + finishedAt + '\'' + ", " + + "errorCode='" + + errorCode + + '\'' + + ", " + "senderEmail='" + senderEmail + '\'' @@ -444,6 +463,8 @@ public static class Builder extends SignRequestBase.Builder { protected OffsetDateTime finishedAt; + protected String errorCode; + protected String senderEmail; protected Long senderId; @@ -538,6 +559,12 @@ public Builder finishedAt(OffsetDateTime finishedAt) { return this; } + public Builder errorCode(String errorCode) { + this.errorCode = errorCode; + this.markNullableFieldAsSet("error_code"); + return this; + } + public Builder senderEmail(String senderEmail) { this.senderEmail = senderEmail; this.markNullableFieldAsSet("sender_email"); From 09c342f5979f0bdb1a93c822273638aa0e60dbdf Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 10 Jun 2026 17:08:47 +0200 Subject: [PATCH 128/148] feat: Add new parameters to ai extract structured method (box/box-openapi#604) (#1888) Co-authored-by: box-sdk-build --- .codegen.json | 2 +- docs/usercollaborations.md | 8 +- .../UserCollaborationsManager.java | 20 +- .../AiExtractFieldOption.java | 45 +++++ .../AiExtractStructured.java | 36 +++- .../AiExtractStructuredFieldsField.java | 108 ++++++++++- .../aiextractsubfield/AiExtractSubField.java | 175 ++++++++++++++++++ .../aioptionsrules/AiOptionsRules.java | 101 ++++++++++ .../AiTaxonomyFileReference.java | 130 +++++++++++++ .../AiTaxonomyFileReferenceTypeField.java | 64 +++++++ .../AiTaxonomyReference.java | 126 +++++++++++++ .../AiTaxonomyReferenceTypeField.java | 64 +++++++ .../aitaxonomysource/AiTaxonomySource.java | 84 +++++++++ .../schemas/collaboration/Collaboration.java | 4 +- .../UserCollaborations.java | 4 +- 15 files changed, 944 insertions(+), 27 deletions(-) create mode 100644 src/main/java/com/box/sdkgen/schemas/aiextractfieldoption/AiExtractFieldOption.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aiextractsubfield/AiExtractSubField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aioptionsrules/AiOptionsRules.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aitaxonomyfilereference/AiTaxonomyFileReference.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aitaxonomyfilereference/AiTaxonomyFileReferenceTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aitaxonomyreference/AiTaxonomyReference.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aitaxonomyreference/AiTaxonomyReferenceTypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/aitaxonomysource/AiTaxonomySource.java diff --git a/.codegen.json b/.codegen.json index 5df6886dd..30be35b3f 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "a87c352", "specHash": "ded99bf", "version": "10.13.0" } +{ "engineHash": "a87c352", "specHash": "0ac3d31", "version": "10.13.0" } diff --git a/docs/usercollaborations.md b/docs/usercollaborations.md index dbc2eca7c..b3bdaa50c 100644 --- a/docs/usercollaborations.md +++ b/docs/usercollaborations.md @@ -113,11 +113,9 @@ group IDs. If a collaboration is being created with a group, access to this endpoint is dependent on the group's ability to be invited. -If collaboration is in `pending` status, the following fields -are redacted: -- `login` and `name` are hidden if a collaboration was created -using `user_id`, -- `name` is hidden if a collaboration was created using `login`. +If collaboration is in `pending` status, field `name` is redacted when: +- a collaboration was created using `user_id`, +- a collaboration was created using `login`. This operation is performed by calling function `createCollaboration`. diff --git a/src/main/java/com/box/sdkgen/managers/usercollaborations/UserCollaborationsManager.java b/src/main/java/com/box/sdkgen/managers/usercollaborations/UserCollaborationsManager.java index fbe675d9f..3ce9c8ad3 100644 --- a/src/main/java/com/box/sdkgen/managers/usercollaborations/UserCollaborationsManager.java +++ b/src/main/java/com/box/sdkgen/managers/usercollaborations/UserCollaborationsManager.java @@ -216,9 +216,8 @@ public void deleteCollaborationById( *

    If a collaboration is being created with a group, access to this endpoint is dependent on * the group's ability to be invited. * - *

    If collaboration is in `pending` status, the following fields are redacted: - `login` and - * `name` are hidden if a collaboration was created using `user_id`, - `name` is hidden if a - * collaboration was created using `login`. + *

    If collaboration is in `pending` status, field `name` is redacted when: - a collaboration + * was created using `user_id`, - a collaboration was created using `login`. * * @param requestBody Request body of createCollaboration method */ @@ -235,9 +234,8 @@ public Collaboration createCollaboration(CreateCollaborationRequestBody requestB *

    If a collaboration is being created with a group, access to this endpoint is dependent on * the group's ability to be invited. * - *

    If collaboration is in `pending` status, the following fields are redacted: - `login` and - * `name` are hidden if a collaboration was created using `user_id`, - `name` is hidden if a - * collaboration was created using `login`. + *

    If collaboration is in `pending` status, field `name` is redacted when: - a collaboration + * was created using `user_id`, - a collaboration was created using `login`. * * @param requestBody Request body of createCollaboration method * @param queryParams Query parameters of createCollaboration method @@ -255,9 +253,8 @@ public Collaboration createCollaboration( *

    If a collaboration is being created with a group, access to this endpoint is dependent on * the group's ability to be invited. * - *

    If collaboration is in `pending` status, the following fields are redacted: - `login` and - * `name` are hidden if a collaboration was created using `user_id`, - `name` is hidden if a - * collaboration was created using `login`. + *

    If collaboration is in `pending` status, field `name` is redacted when: - a collaboration + * was created using `user_id`, - a collaboration was created using `login`. * * @param requestBody Request body of createCollaboration method * @param headers Headers of createCollaboration method @@ -275,9 +272,8 @@ public Collaboration createCollaboration( *

    If a collaboration is being created with a group, access to this endpoint is dependent on * the group's ability to be invited. * - *

    If collaboration is in `pending` status, the following fields are redacted: - `login` and - * `name` are hidden if a collaboration was created using `user_id`, - `name` is hidden if a - * collaboration was created using `login`. + *

    If collaboration is in `pending` status, field `name` is redacted when: - a collaboration + * was created using `user_id`, - a collaboration was created using `login`. * * @param requestBody Request body of createCollaboration method * @param queryParams Query parameters of createCollaboration method diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractfieldoption/AiExtractFieldOption.java b/src/main/java/com/box/sdkgen/schemas/aiextractfieldoption/AiExtractFieldOption.java new file mode 100644 index 000000000..bfb5e2b40 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiextractfieldoption/AiExtractFieldOption.java @@ -0,0 +1,45 @@ +package com.box.sdkgen.schemas.aiextractfieldoption; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** An option for an AI extract field. */ +@JsonFilter("nullablePropertyFilter") +public class AiExtractFieldOption extends SerializableObject { + + /** A unique identifier for the option. */ + protected final String key; + + public AiExtractFieldOption(@JsonProperty("key") String key) { + super(); + this.key = key; + } + + public String getKey() { + return key; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiExtractFieldOption casted = (AiExtractFieldOption) o; + return Objects.equals(key, casted.key); + } + + @Override + public int hashCode() { + return Objects.hash(key); + } + + @Override + public String toString() { + return "AiExtractFieldOption{" + "key='" + key + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java index e35cca1e3..c3c4ae68d 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructured.java @@ -6,6 +6,7 @@ import com.box.sdkgen.schemas.aiagentreference.AiAgentReference; import com.box.sdkgen.schemas.aiextractstructuredagent.AiExtractStructuredAgent; import com.box.sdkgen.schemas.aiitembase.AiItemBase; +import com.box.sdkgen.schemas.aitaxonomysource.AiTaxonomySource; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; import java.util.List; @@ -42,6 +43,14 @@ public class AiExtractStructured extends SerializableObject { @JsonProperty("include_reference") protected Boolean includeReference; + /** + * The taxonomy sources to be used for the structured extraction. They can either be an existing + * file or a taxonomy. For your request to work, `fields` must also be provided. + * `taxonomy_sources` is not supported with `metadata_template`. + */ + @JsonProperty("taxonomy_sources") + protected List taxonomySources; + public AiExtractStructured(@JsonProperty("items") List items) { super(); this.items = items; @@ -55,6 +64,7 @@ protected AiExtractStructured(Builder builder) { this.aiAgent = builder.aiAgent; this.includeConfidenceScore = builder.includeConfidenceScore; this.includeReference = builder.includeReference; + this.taxonomySources = builder.taxonomySources; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -82,6 +92,10 @@ public Boolean getIncludeReference() { return includeReference; } + public List getTaxonomySources() { + return taxonomySources; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -96,13 +110,20 @@ public boolean equals(Object o) { && Objects.equals(fields, casted.fields) && Objects.equals(aiAgent, casted.aiAgent) && Objects.equals(includeConfidenceScore, casted.includeConfidenceScore) - && Objects.equals(includeReference, casted.includeReference); + && Objects.equals(includeReference, casted.includeReference) + && Objects.equals(taxonomySources, casted.taxonomySources); } @Override public int hashCode() { return Objects.hash( - items, metadataTemplate, fields, aiAgent, includeConfidenceScore, includeReference); + items, + metadataTemplate, + fields, + aiAgent, + includeConfidenceScore, + includeReference, + taxonomySources); } @Override @@ -131,6 +152,10 @@ public String toString() { + "includeReference='" + includeReference + '\'' + + ", " + + "taxonomySources='" + + taxonomySources + + '\'' + "}"; } @@ -148,6 +173,8 @@ public static class Builder extends NullableFieldTracker { protected Boolean includeReference; + protected List taxonomySources; + public Builder(List items) { super(); this.items = items; @@ -188,6 +215,11 @@ public Builder includeReference(Boolean includeReference) { return this; } + public Builder taxonomySources(List taxonomySources) { + this.taxonomySources = taxonomySources; + return this; + } + public AiExtractStructured build() { return new AiExtractStructured(this); } diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsField.java b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsField.java index df17da757..fca0c688c 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsField.java +++ b/src/main/java/com/box/sdkgen/schemas/aiextractstructured/AiExtractStructuredFieldsField.java @@ -2,6 +2,8 @@ import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.aiextractsubfield.AiExtractSubField; +import com.box.sdkgen.schemas.aioptionsrules.AiOptionsRules; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; import java.util.List; @@ -24,7 +26,7 @@ public class AiExtractStructuredFieldsField extends SerializableObject { /** * The type of the field. It can include but is not limited to `string`, `float`, `date`, `enum`, - * and `multiSelect`. + * `multiSelect`,`taxonomy`, `struct`, and `table`. */ protected String type; @@ -34,6 +36,28 @@ public class AiExtractStructuredFieldsField extends SerializableObject { */ protected List options; + /** + * The nested fields for this field. Used with `struct` and `table` field types to define the + * nested structure. + */ + protected List fields; + + /** + * The identifier for a taxonomy, which corresponds to the `key` of the taxonomy source. Required + * if using `taxonomy` type field. + */ + @JsonProperty("taxonomy_key") + protected String taxonomyKey; + + /** + * The namespace of the taxonomy source. Required if using `taxonomy` type field from an existing + * taxonomy. + */ + protected String namespace; + + @JsonProperty("options_rules") + protected AiOptionsRules optionsRules; + public AiExtractStructuredFieldsField(@JsonProperty("key") String key) { super(); this.key = key; @@ -47,6 +71,10 @@ protected AiExtractStructuredFieldsField(Builder builder) { this.prompt = builder.prompt; this.type = builder.type; this.options = builder.options; + this.fields = builder.fields; + this.taxonomyKey = builder.taxonomyKey; + this.namespace = builder.namespace; + this.optionsRules = builder.optionsRules; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -74,6 +102,22 @@ public List getOptions() { return options; } + public List getFields() { + return fields; + } + + public String getTaxonomyKey() { + return taxonomyKey; + } + + public String getNamespace() { + return namespace; + } + + public AiOptionsRules getOptionsRules() { + return optionsRules; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -88,12 +132,26 @@ public boolean equals(Object o) { && Objects.equals(displayName, casted.displayName) && Objects.equals(prompt, casted.prompt) && Objects.equals(type, casted.type) - && Objects.equals(options, casted.options); + && Objects.equals(options, casted.options) + && Objects.equals(fields, casted.fields) + && Objects.equals(taxonomyKey, casted.taxonomyKey) + && Objects.equals(namespace, casted.namespace) + && Objects.equals(optionsRules, casted.optionsRules); } @Override public int hashCode() { - return Objects.hash(key, description, displayName, prompt, type, options); + return Objects.hash( + key, + description, + displayName, + prompt, + type, + options, + fields, + taxonomyKey, + namespace, + optionsRules); } @Override @@ -122,6 +180,22 @@ public String toString() { + "options='" + options + '\'' + + ", " + + "fields='" + + fields + + '\'' + + ", " + + "taxonomyKey='" + + taxonomyKey + + '\'' + + ", " + + "namespace='" + + namespace + + '\'' + + ", " + + "optionsRules='" + + optionsRules + + '\'' + "}"; } @@ -139,6 +213,14 @@ public static class Builder extends NullableFieldTracker { protected List options; + protected List fields; + + protected String taxonomyKey; + + protected String namespace; + + protected AiOptionsRules optionsRules; + public Builder(String key) { super(); this.key = key; @@ -169,6 +251,26 @@ public Builder options(List options) { return this; } + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder taxonomyKey(String taxonomyKey) { + this.taxonomyKey = taxonomyKey; + return this; + } + + public Builder namespace(String namespace) { + this.namespace = namespace; + return this; + } + + public Builder optionsRules(AiOptionsRules optionsRules) { + this.optionsRules = optionsRules; + return this; + } + public AiExtractStructuredFieldsField build() { return new AiExtractStructuredFieldsField(this); } diff --git a/src/main/java/com/box/sdkgen/schemas/aiextractsubfield/AiExtractSubField.java b/src/main/java/com/box/sdkgen/schemas/aiextractsubfield/AiExtractSubField.java new file mode 100644 index 000000000..4349a29a7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aiextractsubfield/AiExtractSubField.java @@ -0,0 +1,175 @@ +package com.box.sdkgen.schemas.aiextractsubfield; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.aiextractfieldoption.AiExtractFieldOption; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +/** A nested field definition for structured and table field types used in AI extraction. */ +@JsonFilter("nullablePropertyFilter") +public class AiExtractSubField extends SerializableObject { + + /** A unique identifier for the nested field. */ + protected final String key; + + /** A description of the nested field. */ + protected String description; + + /** The display name of the nested field. */ + protected String displayName; + + /** Context about the nested field that may include how to find and how to format it. */ + protected String prompt; + + /** + * The type of the nested field. Allowed types include `string`, `float`, `date`, `number`, + * `text`, `boolean`, `enum` and `multiSelect`. + */ + protected String type; + + /** A list of options for this nested field. Used with `enum` and `multiSelect` types. */ + protected List options; + + public AiExtractSubField(@JsonProperty("key") String key) { + super(); + this.key = key; + } + + protected AiExtractSubField(Builder builder) { + super(); + this.key = builder.key; + this.description = builder.description; + this.displayName = builder.displayName; + this.prompt = builder.prompt; + this.type = builder.type; + this.options = builder.options; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getKey() { + return key; + } + + public String getDescription() { + return description; + } + + public String getDisplayName() { + return displayName; + } + + public String getPrompt() { + return prompt; + } + + public String getType() { + return type; + } + + public List getOptions() { + return options; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiExtractSubField casted = (AiExtractSubField) o; + return Objects.equals(key, casted.key) + && Objects.equals(description, casted.description) + && Objects.equals(displayName, casted.displayName) + && Objects.equals(prompt, casted.prompt) + && Objects.equals(type, casted.type) + && Objects.equals(options, casted.options); + } + + @Override + public int hashCode() { + return Objects.hash(key, description, displayName, prompt, type, options); + } + + @Override + public String toString() { + return "AiExtractSubField{" + + "key='" + + key + + '\'' + + ", " + + "description='" + + description + + '\'' + + ", " + + "displayName='" + + displayName + + '\'' + + ", " + + "prompt='" + + prompt + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "options='" + + options + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String key; + + protected String description; + + protected String displayName; + + protected String prompt; + + protected String type; + + protected List options; + + public Builder(String key) { + super(); + this.key = key; + } + + public Builder description(String description) { + this.description = description; + return this; + } + + public Builder displayName(String displayName) { + this.displayName = displayName; + return this; + } + + public Builder prompt(String prompt) { + this.prompt = prompt; + return this; + } + + public Builder type(String type) { + this.type = type; + return this; + } + + public Builder options(List options) { + this.options = options; + return this; + } + + public AiExtractSubField build() { + return new AiExtractSubField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aioptionsrules/AiOptionsRules.java b/src/main/java/com/box/sdkgen/schemas/aioptionsrules/AiOptionsRules.java new file mode 100644 index 000000000..f1726df22 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aioptionsrules/AiOptionsRules.java @@ -0,0 +1,101 @@ +package com.box.sdkgen.schemas.aioptionsrules; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +/** + * An object for a `taxonomy` type template field containing configuration for taxonomy options. + * Required if using `taxonomy` type field. + */ +@JsonFilter("nullablePropertyFilter") +public class AiOptionsRules extends SerializableObject { + + /** + * Indicates whether the field is a multi-select field. If true, the field can have multiple + * values. + */ + @JsonProperty("multi_select") + protected Boolean multiSelect; + + /** + * The selectable levels for the field. This is used to limit the levels of the taxonomy that can + * be selected. + */ + @JsonProperty("selectable_levels") + protected List selectableLevels; + + public AiOptionsRules() { + super(); + } + + protected AiOptionsRules(Builder builder) { + super(); + this.multiSelect = builder.multiSelect; + this.selectableLevels = builder.selectableLevels; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public Boolean getMultiSelect() { + return multiSelect; + } + + public List getSelectableLevels() { + return selectableLevels; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiOptionsRules casted = (AiOptionsRules) o; + return Objects.equals(multiSelect, casted.multiSelect) + && Objects.equals(selectableLevels, casted.selectableLevels); + } + + @Override + public int hashCode() { + return Objects.hash(multiSelect, selectableLevels); + } + + @Override + public String toString() { + return "AiOptionsRules{" + + "multiSelect='" + + multiSelect + + '\'' + + ", " + + "selectableLevels='" + + selectableLevels + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected Boolean multiSelect; + + protected List selectableLevels; + + public Builder multiSelect(Boolean multiSelect) { + this.multiSelect = multiSelect; + return this; + } + + public Builder selectableLevels(List selectableLevels) { + this.selectableLevels = selectableLevels; + return this; + } + + public AiOptionsRules build() { + return new AiOptionsRules(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aitaxonomyfilereference/AiTaxonomyFileReference.java b/src/main/java/com/box/sdkgen/schemas/aitaxonomyfilereference/AiTaxonomyFileReference.java new file mode 100644 index 000000000..dd9fd1b5e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aitaxonomyfilereference/AiTaxonomyFileReference.java @@ -0,0 +1,130 @@ +package com.box.sdkgen.schemas.aitaxonomyfilereference; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** + * A taxonomy `.csv` file to be used for the structured extraction. For your request to work, + * `fields` must also be provided. + */ +@JsonFilter("nullablePropertyFilter") +public class AiTaxonomyFileReference extends SerializableObject { + + /** The type of the taxonomy source. */ + @JsonDeserialize( + using = AiTaxonomyFileReferenceTypeField.AiTaxonomyFileReferenceTypeFieldDeserializer.class) + @JsonSerialize( + using = AiTaxonomyFileReferenceTypeField.AiTaxonomyFileReferenceTypeFieldSerializer.class) + protected EnumWrapper type; + + /** + * The identifier for a taxonomy, which corresponds to the `taxonomy_key` of the taxonomy source. + */ + @JsonProperty("taxonomy_key") + protected String taxonomyKey; + + /** + * The ID of the taxonomy source. Required if the type is `file` and unsupported if the type is + * `taxonomy`. + */ + protected String id; + + public AiTaxonomyFileReference() { + super(); + } + + protected AiTaxonomyFileReference(Builder builder) { + super(); + this.type = builder.type; + this.taxonomyKey = builder.taxonomyKey; + this.id = builder.id; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getTaxonomyKey() { + return taxonomyKey; + } + + public String getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiTaxonomyFileReference casted = (AiTaxonomyFileReference) o; + return Objects.equals(type, casted.type) + && Objects.equals(taxonomyKey, casted.taxonomyKey) + && Objects.equals(id, casted.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, taxonomyKey, id); + } + + @Override + public String toString() { + return "AiTaxonomyFileReference{" + + "type='" + + type + + '\'' + + ", " + + "taxonomyKey='" + + taxonomyKey + + '\'' + + ", " + + "id='" + + id + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected String taxonomyKey; + + protected String id; + + public Builder type(AiTaxonomyFileReferenceTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder taxonomyKey(String taxonomyKey) { + this.taxonomyKey = taxonomyKey; + return this; + } + + public Builder id(String id) { + this.id = id; + return this; + } + + public AiTaxonomyFileReference build() { + return new AiTaxonomyFileReference(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aitaxonomyfilereference/AiTaxonomyFileReferenceTypeField.java b/src/main/java/com/box/sdkgen/schemas/aitaxonomyfilereference/AiTaxonomyFileReferenceTypeField.java new file mode 100644 index 000000000..9b25e80fc --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aitaxonomyfilereference/AiTaxonomyFileReferenceTypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.aitaxonomyfilereference; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AiTaxonomyFileReferenceTypeField implements Valuable { + FILE("file"); + + private final String value; + + AiTaxonomyFileReferenceTypeField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class AiTaxonomyFileReferenceTypeFieldDeserializer + extends JsonDeserializer> { + + public AiTaxonomyFileReferenceTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AiTaxonomyFileReferenceTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AiTaxonomyFileReferenceTypeFieldSerializer + extends JsonSerializer> { + + public AiTaxonomyFileReferenceTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aitaxonomyreference/AiTaxonomyReference.java b/src/main/java/com/box/sdkgen/schemas/aitaxonomyreference/AiTaxonomyReference.java new file mode 100644 index 000000000..ae95fbbb8 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aitaxonomyreference/AiTaxonomyReference.java @@ -0,0 +1,126 @@ +package com.box.sdkgen.schemas.aitaxonomyreference; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** + * A taxonomy source to be used for the structured extraction. For your request to work, `fields` + * must also be provided. + */ +@JsonFilter("nullablePropertyFilter") +public class AiTaxonomyReference extends SerializableObject { + + /** The type of the taxonomy source. */ + @JsonDeserialize( + using = AiTaxonomyReferenceTypeField.AiTaxonomyReferenceTypeFieldDeserializer.class) + @JsonSerialize(using = AiTaxonomyReferenceTypeField.AiTaxonomyReferenceTypeFieldSerializer.class) + protected EnumWrapper type; + + /** + * The identifier for a taxonomy, which corresponds to the `taxonomy_key` of the taxonomy source. + */ + @JsonProperty("taxonomy_key") + protected String taxonomyKey; + + /** The namespace of the taxonomy source. */ + protected String namespace; + + public AiTaxonomyReference() { + super(); + } + + protected AiTaxonomyReference(Builder builder) { + super(); + this.type = builder.type; + this.taxonomyKey = builder.taxonomyKey; + this.namespace = builder.namespace; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public EnumWrapper getType() { + return type; + } + + public String getTaxonomyKey() { + return taxonomyKey; + } + + public String getNamespace() { + return namespace; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiTaxonomyReference casted = (AiTaxonomyReference) o; + return Objects.equals(type, casted.type) + && Objects.equals(taxonomyKey, casted.taxonomyKey) + && Objects.equals(namespace, casted.namespace); + } + + @Override + public int hashCode() { + return Objects.hash(type, taxonomyKey, namespace); + } + + @Override + public String toString() { + return "AiTaxonomyReference{" + + "type='" + + type + + '\'' + + ", " + + "taxonomyKey='" + + taxonomyKey + + '\'' + + ", " + + "namespace='" + + namespace + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected EnumWrapper type; + + protected String taxonomyKey; + + protected String namespace; + + public Builder type(AiTaxonomyReferenceTypeField type) { + this.type = new EnumWrapper(type); + return this; + } + + public Builder type(EnumWrapper type) { + this.type = type; + return this; + } + + public Builder taxonomyKey(String taxonomyKey) { + this.taxonomyKey = taxonomyKey; + return this; + } + + public Builder namespace(String namespace) { + this.namespace = namespace; + return this; + } + + public AiTaxonomyReference build() { + return new AiTaxonomyReference(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aitaxonomyreference/AiTaxonomyReferenceTypeField.java b/src/main/java/com/box/sdkgen/schemas/aitaxonomyreference/AiTaxonomyReferenceTypeField.java new file mode 100644 index 000000000..6e03e1021 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aitaxonomyreference/AiTaxonomyReferenceTypeField.java @@ -0,0 +1,64 @@ +package com.box.sdkgen.schemas.aitaxonomyreference; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum AiTaxonomyReferenceTypeField implements Valuable { + TAXONOMY("taxonomy"); + + private final String value; + + AiTaxonomyReferenceTypeField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class AiTaxonomyReferenceTypeFieldDeserializer + extends JsonDeserializer> { + + public AiTaxonomyReferenceTypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(AiTaxonomyReferenceTypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class AiTaxonomyReferenceTypeFieldSerializer + extends JsonSerializer> { + + public AiTaxonomyReferenceTypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/aitaxonomysource/AiTaxonomySource.java b/src/main/java/com/box/sdkgen/schemas/aitaxonomysource/AiTaxonomySource.java new file mode 100644 index 000000000..3cc1db4a0 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/aitaxonomysource/AiTaxonomySource.java @@ -0,0 +1,84 @@ +package com.box.sdkgen.schemas.aitaxonomysource; + +import com.box.sdkgen.internal.OneOfTwo; +import com.box.sdkgen.schemas.aitaxonomyfilereference.AiTaxonomyFileReference; +import com.box.sdkgen.schemas.aitaxonomyreference.AiTaxonomyReference; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.JsonManager; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; + +@JsonDeserialize(using = AiTaxonomySource.AiTaxonomySourceDeserializer.class) +@JsonSerialize(using = OneOfTwo.OneOfTwoSerializer.class) +public class AiTaxonomySource extends OneOfTwo { + + protected final String type; + + protected final String taxonomyKey; + + public AiTaxonomySource(AiTaxonomyReference aiTaxonomyReference) { + super(aiTaxonomyReference, null); + this.type = EnumWrapper.convertToString(aiTaxonomyReference.getType()); + this.taxonomyKey = aiTaxonomyReference.getTaxonomyKey(); + } + + public AiTaxonomySource(AiTaxonomyFileReference aiTaxonomyFileReference) { + super(null, aiTaxonomyFileReference); + this.type = EnumWrapper.convertToString(aiTaxonomyFileReference.getType()); + this.taxonomyKey = aiTaxonomyFileReference.getTaxonomyKey(); + } + + public boolean isAiTaxonomyReference() { + return value0 != null; + } + + public AiTaxonomyReference getAiTaxonomyReference() { + return value0; + } + + public boolean isAiTaxonomyFileReference() { + return value1 != null; + } + + public AiTaxonomyFileReference getAiTaxonomyFileReference() { + return value1; + } + + public String getType() { + return type; + } + + public String getTaxonomyKey() { + return taxonomyKey; + } + + static class AiTaxonomySourceDeserializer extends JsonDeserializer { + + public AiTaxonomySourceDeserializer() { + super(); + } + + @Override + public AiTaxonomySource deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException { + JsonNode node = JsonManager.jsonToSerializedData(jp); + JsonNode discriminant0 = node.get("type"); + if (!(discriminant0 == null)) { + switch (discriminant0.asText()) { + case "taxonomy": + return new AiTaxonomySource(JsonManager.deserialize(node, AiTaxonomyReference.class)); + case "file": + return new AiTaxonomySource( + JsonManager.deserialize(node, AiTaxonomyFileReference.class)); + } + } + throw new JsonMappingException(jp, "Unable to deserialize AiTaxonomySource"); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/collaboration/Collaboration.java b/src/main/java/com/box/sdkgen/schemas/collaboration/Collaboration.java index 876c24328..c50421117 100644 --- a/src/main/java/com/box/sdkgen/schemas/collaboration/Collaboration.java +++ b/src/main/java/com/box/sdkgen/schemas/collaboration/Collaboration.java @@ -74,8 +74,8 @@ public class Collaboration extends SerializableObject { protected Boolean isAccessOnly; /** - * The status of the collaboration invitation. If the status is `pending`, `login` and `name` - * return an empty string. + * The status of the collaboration invitation. If the status is `pending`, `name` returns an empty + * string. */ @JsonDeserialize(using = CollaborationStatusField.CollaborationStatusFieldDeserializer.class) @JsonSerialize(using = CollaborationStatusField.CollaborationStatusFieldSerializer.class) diff --git a/src/main/java/com/box/sdkgen/schemas/usercollaborations/UserCollaborations.java b/src/main/java/com/box/sdkgen/schemas/usercollaborations/UserCollaborations.java index aa1fe5a84..53a4644b3 100644 --- a/src/main/java/com/box/sdkgen/schemas/usercollaborations/UserCollaborations.java +++ b/src/main/java/com/box/sdkgen/schemas/usercollaborations/UserCollaborations.java @@ -18,8 +18,8 @@ public class UserCollaborations extends UserBase { protected String name; /** - * The primary email address of this user. If the collaboration status is `pending`, an empty - * string is returned. + * The primary email address of this user. If the collaboration status is `pending`, a login value + * is returned. */ protected String login; From 1747b14eac8ae1b4a96e1da2602d9e6894d6b4ee Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 10 Jun 2026 17:14:47 +0200 Subject: [PATCH 129/148] feat: Add new event types (box/box-openapi#1703) (box/box-openapi#605) (#1889) Co-authored-by: box-sdk-build --- .codegen.json | 2 +- ...tEventStreamQueryParamsEventTypeField.java | 21 ++++++++++++++++++- .../GetEventsQueryParamsEventTypeField.java | 21 ++++++++++++++++++- .../com/box/sdkgen/schemas/aiask/AiAsk.java | 4 ++-- .../sdkgen/schemas/aitextgen/AiTextGen.java | 4 ++-- .../schemas/event/EventEventTypeField.java | 21 ++++++++++++++++++- 6 files changed, 65 insertions(+), 8 deletions(-) diff --git a/.codegen.json b/.codegen.json index 30be35b3f..088363dd6 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "a87c352", "specHash": "0ac3d31", "version": "10.13.0" } +{ "engineHash": "a87c352", "specHash": "dd7f7a9", "version": "10.13.0" } diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParamsEventTypeField.java b/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParamsEventTypeField.java index 3bfac1950..8386f5e69 100644 --- a/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParamsEventTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParamsEventTypeField.java @@ -18,6 +18,7 @@ public enum GetEventStreamQueryParamsEventTypeField implements Valuable { ADD_DEVICE_ASSOCIATION("ADD_DEVICE_ASSOCIATION"), ADD_LOGIN_ACTIVITY_DEVICE("ADD_LOGIN_ACTIVITY_DEVICE"), ADMIN_LOGIN("ADMIN_LOGIN"), + ADVANCED_FOLDER_SETTINGS_UPDATE("ADVANCED_FOLDER_SETTINGS_UPDATE"), APPLICATION_CREATED("APPLICATION_CREATED"), APPLICATION_PUBLIC_KEY_ADDED("APPLICATION_PUBLIC_KEY_ADDED"), APPLICATION_PUBLIC_KEY_DELETED("APPLICATION_PUBLIC_KEY_DELETED"), @@ -30,6 +31,7 @@ public enum GetEventStreamQueryParamsEventTypeField implements Valuable { COLLABORATION_ROLE_CHANGE("COLLABORATION_ROLE_CHANGE"), COMMENT_CREATE("COMMENT_CREATE"), COMMENT_DELETE("COMMENT_DELETE"), + COMMENT_EDIT("COMMENT_EDIT"), CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY("CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY"), CONTENT_WORKFLOW_AUTOMATION_ADD("CONTENT_WORKFLOW_AUTOMATION_ADD"), CONTENT_WORKFLOW_AUTOMATION_DELETE("CONTENT_WORKFLOW_AUTOMATION_DELETE"), @@ -46,11 +48,19 @@ public enum GetEventStreamQueryParamsEventTypeField implements Valuable { EDIT("EDIT"), EDIT_USER("EDIT_USER"), EMAIL_ALIAS_CONFIRM("EMAIL_ALIAS_CONFIRM"), + EMAIL_ALIAS_PRIMARY("EMAIL_ALIAS_PRIMARY"), EMAIL_ALIAS_REMOVE("EMAIL_ALIAS_REMOVE"), + EMAIL_UPLOAD_DISABLED("EMAIL_UPLOAD_DISABLED"), + EMAIL_UPLOAD_ENABLED("EMAIL_UPLOAD_ENABLED"), ENTERPRISE_APP_AUTHORIZATION_UPDATE("ENTERPRISE_APP_AUTHORIZATION_UPDATE"), EXTERNAL_COLLAB_SECURITY_SETTINGS("EXTERNAL_COLLAB_SECURITY_SETTINGS"), FAILED_LOGIN("FAILED_LOGIN"), + FAVORITE("FAVORITE"), FILE_MARKED_MALICIOUS("FILE_MARKED_MALICIOUS"), + FILE_REQUEST_CREATE("FILE_REQUEST_CREATE"), + FILE_REQUEST_DELETE("FILE_REQUEST_DELETE"), + FILE_REQUEST_UPDATE("FILE_REQUEST_UPDATE"), + FILE_VERSION_RESTORE("FILE_VERSION_RESTORE"), FILE_WATERMARKED_DOWNLOAD("FILE_WATERMARKED_DOWNLOAD"), GROUP_ADD_ITEM("GROUP_ADD_ITEM"), GROUP_ADD_USER("GROUP_ADD_USER"), @@ -59,6 +69,7 @@ public enum GetEventStreamQueryParamsEventTypeField implements Valuable { GROUP_EDITED("GROUP_EDITED"), GROUP_REMOVE_ITEM("GROUP_REMOVE_ITEM"), GROUP_REMOVE_USER("GROUP_REMOVE_USER"), + ILLEGAL_ITEM_OWNERSHIP_TRANSFER_BY_USER("ILLEGAL_ITEM_OWNERSHIP_TRANSFER_BY_USER"), ITEM_EMAIL_SEND("ITEM_EMAIL_SEND"), ITEM_MODIFY("ITEM_MODIFY"), ITEM_OPEN("ITEM_OPEN"), @@ -72,6 +83,9 @@ public enum GetEventStreamQueryParamsEventTypeField implements Valuable { LEGAL_HOLD_POLICY_UPDATE("LEGAL_HOLD_POLICY_UPDATE"), LOCK("LOCK"), LOGIN("LOGIN"), + METADATA_CASCADE_POLICY_APPLY("METADATA_CASCADE_POLICY_APPLY"), + METADATA_CASCADE_POLICY_CREATE("METADATA_CASCADE_POLICY_CREATE"), + METADATA_INSTANCE_COPY("METADATA_INSTANCE_COPY"), METADATA_INSTANCE_CREATE("METADATA_INSTANCE_CREATE"), METADATA_INSTANCE_DELETE("METADATA_INSTANCE_DELETE"), METADATA_INSTANCE_UPDATE("METADATA_INSTANCE_UPDATE"), @@ -81,6 +95,7 @@ public enum GetEventStreamQueryParamsEventTypeField implements Valuable { MOVE("MOVE"), NEW_USER("NEW_USER"), OAUTH2_ACCESS_TOKEN_REVOKE("OAUTH2_ACCESS_TOKEN_REVOKE"), + OAUTH2_REFRESH_TOKEN_REVOKE("OAUTH2_REFRESH_TOKEN_REVOKE"), PREVIEW("PREVIEW"), REMOVE_DEVICE_ASSOCIATION("REMOVE_DEVICE_ASSOCIATION"), REMOVE_LOGIN_ACTIVITY_DEVICE("REMOVE_LOGIN_ACTIVITY_DEVICE"), @@ -120,6 +135,7 @@ public enum GetEventStreamQueryParamsEventTypeField implements Valuable { TERMS_OF_SERVICE_ACCEPT("TERMS_OF_SERVICE_ACCEPT"), TERMS_OF_SERVICE_REJECT("TERMS_OF_SERVICE_REJECT"), UNDELETE("UNDELETE"), + UNFAVORITE("UNFAVORITE"), UNLOCK("UNLOCK"), UNSHARE("UNSHARE"), UPDATE_COLLABORATION_EXPIRATION("UPDATE_COLLABORATION_EXPIRATION"), @@ -127,7 +143,10 @@ public enum GetEventStreamQueryParamsEventTypeField implements Valuable { UPLOAD("UPLOAD"), USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE("USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE"), WATERMARK_LABEL_CREATE("WATERMARK_LABEL_CREATE"), - WATERMARK_LABEL_DELETE("WATERMARK_LABEL_DELETE"); + WATERMARK_LABEL_DELETE("WATERMARK_LABEL_DELETE"), + WORKFLOW_AUTOMATION_CREATE("WORKFLOW_AUTOMATION_CREATE"), + WORKFLOW_AUTOMATION_DELETE("WORKFLOW_AUTOMATION_DELETE"), + WORKFLOW_AUTOMATION_UPDATE("WORKFLOW_AUTOMATION_UPDATE"); private final String value; diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParamsEventTypeField.java b/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParamsEventTypeField.java index 9c1149f0c..fd4958ff7 100644 --- a/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParamsEventTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParamsEventTypeField.java @@ -18,6 +18,7 @@ public enum GetEventsQueryParamsEventTypeField implements Valuable { ADD_DEVICE_ASSOCIATION("ADD_DEVICE_ASSOCIATION"), ADD_LOGIN_ACTIVITY_DEVICE("ADD_LOGIN_ACTIVITY_DEVICE"), ADMIN_LOGIN("ADMIN_LOGIN"), + ADVANCED_FOLDER_SETTINGS_UPDATE("ADVANCED_FOLDER_SETTINGS_UPDATE"), APPLICATION_CREATED("APPLICATION_CREATED"), APPLICATION_PUBLIC_KEY_ADDED("APPLICATION_PUBLIC_KEY_ADDED"), APPLICATION_PUBLIC_KEY_DELETED("APPLICATION_PUBLIC_KEY_DELETED"), @@ -30,6 +31,7 @@ public enum GetEventsQueryParamsEventTypeField implements Valuable { COLLABORATION_ROLE_CHANGE("COLLABORATION_ROLE_CHANGE"), COMMENT_CREATE("COMMENT_CREATE"), COMMENT_DELETE("COMMENT_DELETE"), + COMMENT_EDIT("COMMENT_EDIT"), CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY("CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY"), CONTENT_WORKFLOW_AUTOMATION_ADD("CONTENT_WORKFLOW_AUTOMATION_ADD"), CONTENT_WORKFLOW_AUTOMATION_DELETE("CONTENT_WORKFLOW_AUTOMATION_DELETE"), @@ -46,11 +48,19 @@ public enum GetEventsQueryParamsEventTypeField implements Valuable { EDIT("EDIT"), EDIT_USER("EDIT_USER"), EMAIL_ALIAS_CONFIRM("EMAIL_ALIAS_CONFIRM"), + EMAIL_ALIAS_PRIMARY("EMAIL_ALIAS_PRIMARY"), EMAIL_ALIAS_REMOVE("EMAIL_ALIAS_REMOVE"), + EMAIL_UPLOAD_DISABLED("EMAIL_UPLOAD_DISABLED"), + EMAIL_UPLOAD_ENABLED("EMAIL_UPLOAD_ENABLED"), ENTERPRISE_APP_AUTHORIZATION_UPDATE("ENTERPRISE_APP_AUTHORIZATION_UPDATE"), EXTERNAL_COLLAB_SECURITY_SETTINGS("EXTERNAL_COLLAB_SECURITY_SETTINGS"), FAILED_LOGIN("FAILED_LOGIN"), + FAVORITE("FAVORITE"), FILE_MARKED_MALICIOUS("FILE_MARKED_MALICIOUS"), + FILE_REQUEST_CREATE("FILE_REQUEST_CREATE"), + FILE_REQUEST_DELETE("FILE_REQUEST_DELETE"), + FILE_REQUEST_UPDATE("FILE_REQUEST_UPDATE"), + FILE_VERSION_RESTORE("FILE_VERSION_RESTORE"), FILE_WATERMARKED_DOWNLOAD("FILE_WATERMARKED_DOWNLOAD"), GROUP_ADD_ITEM("GROUP_ADD_ITEM"), GROUP_ADD_USER("GROUP_ADD_USER"), @@ -59,6 +69,7 @@ public enum GetEventsQueryParamsEventTypeField implements Valuable { GROUP_EDITED("GROUP_EDITED"), GROUP_REMOVE_ITEM("GROUP_REMOVE_ITEM"), GROUP_REMOVE_USER("GROUP_REMOVE_USER"), + ILLEGAL_ITEM_OWNERSHIP_TRANSFER_BY_USER("ILLEGAL_ITEM_OWNERSHIP_TRANSFER_BY_USER"), ITEM_EMAIL_SEND("ITEM_EMAIL_SEND"), ITEM_MODIFY("ITEM_MODIFY"), ITEM_OPEN("ITEM_OPEN"), @@ -72,6 +83,9 @@ public enum GetEventsQueryParamsEventTypeField implements Valuable { LEGAL_HOLD_POLICY_UPDATE("LEGAL_HOLD_POLICY_UPDATE"), LOCK("LOCK"), LOGIN("LOGIN"), + METADATA_CASCADE_POLICY_APPLY("METADATA_CASCADE_POLICY_APPLY"), + METADATA_CASCADE_POLICY_CREATE("METADATA_CASCADE_POLICY_CREATE"), + METADATA_INSTANCE_COPY("METADATA_INSTANCE_COPY"), METADATA_INSTANCE_CREATE("METADATA_INSTANCE_CREATE"), METADATA_INSTANCE_DELETE("METADATA_INSTANCE_DELETE"), METADATA_INSTANCE_UPDATE("METADATA_INSTANCE_UPDATE"), @@ -81,6 +95,7 @@ public enum GetEventsQueryParamsEventTypeField implements Valuable { MOVE("MOVE"), NEW_USER("NEW_USER"), OAUTH2_ACCESS_TOKEN_REVOKE("OAUTH2_ACCESS_TOKEN_REVOKE"), + OAUTH2_REFRESH_TOKEN_REVOKE("OAUTH2_REFRESH_TOKEN_REVOKE"), PREVIEW("PREVIEW"), REMOVE_DEVICE_ASSOCIATION("REMOVE_DEVICE_ASSOCIATION"), REMOVE_LOGIN_ACTIVITY_DEVICE("REMOVE_LOGIN_ACTIVITY_DEVICE"), @@ -120,6 +135,7 @@ public enum GetEventsQueryParamsEventTypeField implements Valuable { TERMS_OF_SERVICE_ACCEPT("TERMS_OF_SERVICE_ACCEPT"), TERMS_OF_SERVICE_REJECT("TERMS_OF_SERVICE_REJECT"), UNDELETE("UNDELETE"), + UNFAVORITE("UNFAVORITE"), UNLOCK("UNLOCK"), UNSHARE("UNSHARE"), UPDATE_COLLABORATION_EXPIRATION("UPDATE_COLLABORATION_EXPIRATION"), @@ -127,7 +143,10 @@ public enum GetEventsQueryParamsEventTypeField implements Valuable { UPLOAD("UPLOAD"), USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE("USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE"), WATERMARK_LABEL_CREATE("WATERMARK_LABEL_CREATE"), - WATERMARK_LABEL_DELETE("WATERMARK_LABEL_DELETE"); + WATERMARK_LABEL_DELETE("WATERMARK_LABEL_DELETE"), + WORKFLOW_AUTOMATION_CREATE("WORKFLOW_AUTOMATION_CREATE"), + WORKFLOW_AUTOMATION_DELETE("WORKFLOW_AUTOMATION_DELETE"), + WORKFLOW_AUTOMATION_UPDATE("WORKFLOW_AUTOMATION_UPDATE"); private final String value; diff --git a/src/main/java/com/box/sdkgen/schemas/aiask/AiAsk.java b/src/main/java/com/box/sdkgen/schemas/aiask/AiAsk.java index 8424cd9ed..1ce74d48b 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiask/AiAsk.java +++ b/src/main/java/com/box/sdkgen/schemas/aiask/AiAsk.java @@ -20,8 +20,8 @@ public class AiAsk extends SerializableObject { /** - * Box AI handles text documents with text representations up to 1MB in size, or a maximum of 25 - * files, whichever comes first. If the text file size exceeds 1MB, the first 1MB of text + * Box AI handles text documents with text representations up to 2MB in size, or a maximum of 25 + * files, whichever comes first. If the text file size exceeds 2MB, the first 2MB of text * representation will be processed. Box AI handles image documents with a resolution of 1024 x * 1024 pixels, with a maximum of 5 images or 5 pages for multi-page images. If the number of * image or image pages exceeds 5, the first 5 images or pages will be processed. If you set mode diff --git a/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGen.java b/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGen.java index 4646e4ccf..583ff53dc 100644 --- a/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGen.java +++ b/src/main/java/com/box/sdkgen/schemas/aitextgen/AiTextGen.java @@ -25,8 +25,8 @@ public class AiTextGen extends SerializableObject { * The items to be processed by the LLM, often files. The array can include **exactly one** * element. * - *

    **Note**: Box AI handles documents with text representations up to 1MB in size. If the file - * size exceeds 1MB, the first 1MB of text representation will be processed. + *

    **Note**: Box AI handles documents with text representations up to 2MB in size. If the file + * size exceeds 2MB, the first 2MB of text representation will be processed. */ protected final List items; diff --git a/src/main/java/com/box/sdkgen/schemas/event/EventEventTypeField.java b/src/main/java/com/box/sdkgen/schemas/event/EventEventTypeField.java index f741eea63..dff925891 100644 --- a/src/main/java/com/box/sdkgen/schemas/event/EventEventTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/event/EventEventTypeField.java @@ -18,6 +18,7 @@ public enum EventEventTypeField implements Valuable { ADD_DEVICE_ASSOCIATION("ADD_DEVICE_ASSOCIATION"), ADD_LOGIN_ACTIVITY_DEVICE("ADD_LOGIN_ACTIVITY_DEVICE"), ADMIN_LOGIN("ADMIN_LOGIN"), + ADVANCED_FOLDER_SETTINGS_UPDATE("ADVANCED_FOLDER_SETTINGS_UPDATE"), AI_SECURITY_DETECTION("AI_SECURITY_DETECTION"), ANNOTATIONV2_CREATE("ANNOTATIONV2_CREATE"), ANNOTATIONV2_DELETE("ANNOTATIONV2_DELETE"), @@ -46,6 +47,7 @@ public enum EventEventTypeField implements Valuable { COLLECTION_UPDATE("COLLECTION_UPDATE"), COMMENT_CREATE("COMMENT_CREATE"), COMMENT_DELETE("COMMENT_DELETE"), + COMMENT_EDIT("COMMENT_EDIT"), CONTENT_ACCESS("CONTENT_ACCESS"), CONTENT_RECOVERY_REPORT_CREATE("CONTENT_RECOVERY_REPORT_CREATE"), CONTENT_RECOVERY_REPORT_DELETE("CONTENT_RECOVERY_REPORT_DELETE"), @@ -74,13 +76,21 @@ public enum EventEventTypeField implements Valuable { EDR_CROWDSTRIKE_DRIVE_OUTDATED("EDR_CROWDSTRIKE_DRIVE_OUTDATED"), EDR_CROWDSTRIKE_NO_BOX_TOOLS("EDR_CROWDSTRIKE_NO_BOX_TOOLS"), EMAIL_ALIAS_CONFIRM("EMAIL_ALIAS_CONFIRM"), + EMAIL_ALIAS_PRIMARY("EMAIL_ALIAS_PRIMARY"), EMAIL_ALIAS_REMOVE("EMAIL_ALIAS_REMOVE"), + EMAIL_UPLOAD_DISABLED("EMAIL_UPLOAD_DISABLED"), + EMAIL_UPLOAD_ENABLED("EMAIL_UPLOAD_ENABLED"), ENABLE_MULTI_FACTOR_AUTH("ENABLE_MULTI_FACTOR_AUTH"), ENABLE_TWO_FACTOR_AUTH("ENABLE_TWO_FACTOR_AUTH"), ENTERPRISE_APP_AUTHORIZATION_UPDATE("ENTERPRISE_APP_AUTHORIZATION_UPDATE"), EXTERNAL_COLLAB_SECURITY_SETTINGS("EXTERNAL_COLLAB_SECURITY_SETTINGS"), FAILED_LOGIN("FAILED_LOGIN"), + FAVORITE("FAVORITE"), FILE_MARKED_MALICIOUS("FILE_MARKED_MALICIOUS"), + FILE_REQUEST_CREATE("FILE_REQUEST_CREATE"), + FILE_REQUEST_DELETE("FILE_REQUEST_DELETE"), + FILE_REQUEST_UPDATE("FILE_REQUEST_UPDATE"), + FILE_VERSION_RESTORE("FILE_VERSION_RESTORE"), FILE_WATERMARKED_DOWNLOAD("FILE_WATERMARKED_DOWNLOAD"), GROUP_ADD_ITEM("GROUP_ADD_ITEM"), GROUP_ADD_USER("GROUP_ADD_USER"), @@ -92,6 +102,7 @@ public enum EventEventTypeField implements Valuable { GROUP_EDITED("GROUP_EDITED"), GROUP_REMOVE_ITEM("GROUP_REMOVE_ITEM"), GROUP_REMOVE_USER("GROUP_REMOVE_USER"), + ILLEGAL_ITEM_OWNERSHIP_TRANSFER_BY_USER("ILLEGAL_ITEM_OWNERSHIP_TRANSFER_BY_USER"), ITEM_ASSOCIATION_CREATED("ITEM_ASSOCIATION_CREATED"), ITEM_ASSOCIATION_DELETED("ITEM_ASSOCIATION_DELETED"), ITEM_ASSOCIATION_UPDATED("ITEM_ASSOCIATION_UPDATED"), @@ -125,6 +136,9 @@ public enum EventEventTypeField implements Valuable { LOGIN("LOGIN"), MASTER_INVITE_ACCEPT("MASTER_INVITE_ACCEPT"), MASTER_INVITE_REJECT("MASTER_INVITE_REJECT"), + METADATA_CASCADE_POLICY_APPLY("METADATA_CASCADE_POLICY_APPLY"), + METADATA_CASCADE_POLICY_CREATE("METADATA_CASCADE_POLICY_CREATE"), + METADATA_INSTANCE_COPY("METADATA_INSTANCE_COPY"), METADATA_INSTANCE_CREATE("METADATA_INSTANCE_CREATE"), METADATA_INSTANCE_DELETE("METADATA_INSTANCE_DELETE"), METADATA_INSTANCE_UPDATE("METADATA_INSTANCE_UPDATE"), @@ -134,6 +148,7 @@ public enum EventEventTypeField implements Valuable { MOVE("MOVE"), NEW_USER("NEW_USER"), OAUTH2_ACCESS_TOKEN_REVOKE("OAUTH2_ACCESS_TOKEN_REVOKE"), + OAUTH2_REFRESH_TOKEN_REVOKE("OAUTH2_REFRESH_TOKEN_REVOKE"), PREVIEW("PREVIEW"), REMOVE_DEVICE_ASSOCIATION("REMOVE_DEVICE_ASSOCIATION"), REMOVE_LOGIN_ACTIVITY_DEVICE("REMOVE_LOGIN_ACTIVITY_DEVICE"), @@ -193,6 +208,7 @@ public enum EventEventTypeField implements Valuable { TERMS_OF_SERVICE_ACCEPT("TERMS_OF_SERVICE_ACCEPT"), TERMS_OF_SERVICE_REJECT("TERMS_OF_SERVICE_REJECT"), UNDELETE("UNDELETE"), + UNFAVORITE("UNFAVORITE"), UNLOCK("UNLOCK"), UNSHARE("UNSHARE"), UPDATE_COLLABORATION_EXPIRATION("UPDATE_COLLABORATION_EXPIRATION"), @@ -200,7 +216,10 @@ public enum EventEventTypeField implements Valuable { UPLOAD("UPLOAD"), USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE("USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE"), WATERMARK_LABEL_CREATE("WATERMARK_LABEL_CREATE"), - WATERMARK_LABEL_DELETE("WATERMARK_LABEL_DELETE"); + WATERMARK_LABEL_DELETE("WATERMARK_LABEL_DELETE"), + WORKFLOW_AUTOMATION_CREATE("WORKFLOW_AUTOMATION_CREATE"), + WORKFLOW_AUTOMATION_DELETE("WORKFLOW_AUTOMATION_DELETE"), + WORKFLOW_AUTOMATION_UPDATE("WORKFLOW_AUTOMATION_UPDATE"); private final String value; From 2b77d331d1cd2acf0bfd378efa8634ebe3727bba Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Thu, 11 Jun 2026 10:13:34 +0200 Subject: [PATCH 130/148] test: Expand tests for ai extract structured with new fields (box/box-codegen#952) (#1891) --- .codegen.json | 2 +- docs/ai.md | 2 +- src/test/java/com/box/sdkgen/ai/AiITest.java | 62 +++++++++++++++++++- 3 files changed, 63 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index 088363dd6..6d63a8f22 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "a87c352", "specHash": "dd7f7a9", "version": "10.13.0" } +{ "engineHash": "e392e8c", "specHash": "dd7f7a9", "version": "10.13.0" } diff --git a/docs/ai.md b/docs/ai.md index c223381d2..32a0c2d1a 100644 --- a/docs/ai.md +++ b/docs/ai.md @@ -149,7 +149,7 @@ See the endpoint docs at ``` -client.getAi().createAiExtractStructured(new AiExtractStructured.Builder(Arrays.asList(new AiItemBase(file.getId()))).fields(Arrays.asList(new AiExtractStructuredFieldsField.Builder("firstName").description("Person first name").displayName("First name").prompt("What is the your first name?").type("string").build(), new AiExtractStructuredFieldsField.Builder("lastName").description("Person last name").displayName("Last name").prompt("What is the your last name?").type("string").build(), new AiExtractStructuredFieldsField.Builder("dateOfBirth").description("Person date of birth").displayName("Birth date").prompt("What is the date of your birth?").type("date").build(), new AiExtractStructuredFieldsField.Builder("age").description("Person age").displayName("Age").prompt("How old are you?").type("float").build(), new AiExtractStructuredFieldsField.Builder("hobby").description("Person hobby").displayName("Hobby").prompt("What is your hobby?").type("multiSelect").options(Arrays.asList(new AiExtractStructuredFieldsOptionsField("guitar"), new AiExtractStructuredFieldsOptionsField("books"))).build())).aiAgent(aiExtractStructuredAgentBasicTextConfig).includeConfidenceScore(true).build()) +client.getAi().createAiExtractStructured(new AiExtractStructured.Builder(Arrays.asList(new AiItemBase(file.getId()))).fields(Arrays.asList(new AiExtractStructuredFieldsField.Builder("firstName").description("Person first name").displayName("First name").prompt("What is the your first name?").type("string").build(), new AiExtractStructuredFieldsField.Builder("lastName").description("Person last name").displayName("Last name").prompt("What is the your last name?").type("string").build(), new AiExtractStructuredFieldsField.Builder("dateOfBirth").description("Person date of birth").displayName("Birth date").prompt("What is the date of your birth?").type("date").build(), new AiExtractStructuredFieldsField.Builder("age").description("Person age").displayName("Age").prompt("How old are you?").type("float").build(), new AiExtractStructuredFieldsField.Builder("hobby").description("Person hobby").displayName("Hobby").prompt("What is your hobby?").type("multiSelect").options(Arrays.asList(new AiExtractStructuredFieldsOptionsField("guitar"), new AiExtractStructuredFieldsOptionsField("books"))).build(), new AiExtractStructuredFieldsField.Builder("address").description("Person address").displayName("Address").prompt("Extract the full mailing address.").type("struct").fields(Arrays.asList(new AiExtractSubField.Builder("street").displayName("Street").type("string").build(), new AiExtractSubField.Builder("city").displayName("City").type("string").build(), new AiExtractSubField.Builder("state").displayName("State").type("string").build(), new AiExtractSubField.Builder("zip").displayName("Zip").type("string").build(), new AiExtractSubField.Builder("country").displayName("Country").type("string").build())).build(), new AiExtractStructuredFieldsField.Builder("work_history").description("Person work history").displayName("Work history").prompt("Extract each job as a row.").type("table").fields(Arrays.asList(new AiExtractSubField.Builder("job_title").displayName("Job title").type("string").build(), new AiExtractSubField.Builder("company").displayName("Company").type("string").build(), new AiExtractSubField.Builder("start_year").displayName("Start year").type("string").build(), new AiExtractSubField.Builder("end_year").displayName("End year").type("string").build())).build())).aiAgent(aiExtractStructuredAgentBasicTextConfig).includeConfidenceScore(true).includeReference(true).build()) ``` ### Arguments diff --git a/src/test/java/com/box/sdkgen/ai/AiITest.java b/src/test/java/com/box/sdkgen/ai/AiITest.java index e45332ea2..e8921383a 100644 --- a/src/test/java/com/box/sdkgen/ai/AiITest.java +++ b/src/test/java/com/box/sdkgen/ai/AiITest.java @@ -33,6 +33,7 @@ import com.box.sdkgen.schemas.aiextractstructured.AiExtractStructuredFieldsOptionsField; import com.box.sdkgen.schemas.aiextractstructured.AiExtractStructuredMetadataTemplateField; import com.box.sdkgen.schemas.aiextractstructuredresponse.AiExtractStructuredResponse; +import com.box.sdkgen.schemas.aiextractsubfield.AiExtractSubField; import com.box.sdkgen.schemas.aiitemask.AiItemAsk; import com.box.sdkgen.schemas.aiitemask.AiItemAskTypeField; import com.box.sdkgen.schemas.aiitembase.AiItemBase; @@ -263,7 +264,7 @@ public void testAiExtractStructuredWithFields() { stringToByteStream( String.join( "", - "My name is John Doe. I was born in 4th July 1990. I am 34 years old. My hobby is guitar. My UUID is ", + "My name is John Doe. I was born in 4th July 1990. I am 34 years old. My hobby is guitar. I live at 900 Jefferson Ave, Redwood City, CA 94063, US. My work history: Software Engineer at Box from 2020 to 2024. My UUID is ", getUuid())))); FileFull file = uploadedFiles.getEntries().get(0); delayInSeconds(5); @@ -307,17 +308,76 @@ public void testAiExtractStructuredWithFields() { Arrays.asList( new AiExtractStructuredFieldsOptionsField("guitar"), new AiExtractStructuredFieldsOptionsField("books"))) + .build(), + new AiExtractStructuredFieldsField.Builder("address") + .description("Person address") + .displayName("Address") + .prompt("Extract the full mailing address.") + .type("struct") + .fields( + Arrays.asList( + new AiExtractSubField.Builder("street") + .displayName("Street") + .type("string") + .build(), + new AiExtractSubField.Builder("city") + .displayName("City") + .type("string") + .build(), + new AiExtractSubField.Builder("state") + .displayName("State") + .type("string") + .build(), + new AiExtractSubField.Builder("zip") + .displayName("Zip") + .type("string") + .build(), + new AiExtractSubField.Builder("country") + .displayName("Country") + .type("string") + .build())) + .build(), + new AiExtractStructuredFieldsField.Builder("work_history") + .description("Person work history") + .displayName("Work history") + .prompt("Extract each job as a row.") + .type("table") + .fields( + Arrays.asList( + new AiExtractSubField.Builder("job_title") + .displayName("Job title") + .type("string") + .build(), + new AiExtractSubField.Builder("company") + .displayName("Company") + .type("string") + .build(), + new AiExtractSubField.Builder("start_year") + .displayName("Start year") + .type("string") + .build(), + new AiExtractSubField.Builder("end_year") + .displayName("End year") + .type("string") + .build())) .build())) .aiAgent(aiExtractStructuredAgentBasicTextConfig) .includeConfidenceScore(true) + .includeReference(true) .build()); assert !(response.getConfidenceScore() == null); + assert !(response.getReference() == null); + assert !(response.getAiAgentInfo() == null); assert convertToString(response.getAnswer().get("hobby")) .equals(convertToString(Arrays.asList("guitar"))); assert convertToString(response.getAnswer().get("firstName")).equals("John"); assert convertToString(response.getAnswer().get("lastName")).equals("Doe"); assert convertToString(response.getAnswer().get("dateOfBirth")).equals("1990-07-04"); assert convertToString(response.getAnswer().get("age")).equals("34"); + assert convertToString(response.getAnswer().get("address")).contains("Redwood City"); + assert convertToString(response.getAnswer().get("address")).contains("CA"); + assert convertToString(response.getAnswer().get("address")).contains("94063"); + assert convertToString(response.getAnswer().get("work_history")).contains("Box"); assert response.getCompletionReason().equals("done"); client.getFiles().deleteFileById(file.getId()); } From a19b919d9381c7a923cae14075a1037ff5967f57 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Thu, 11 Jun 2026 11:48:59 +0200 Subject: [PATCH 131/148] chore: release version 10.14.0 (#1893) --- .codegen.json | 2 +- CHANGELOG.md | 9 +++++++++ build.gradle | 2 +- .../java/com/box/sdkgen/networking/version/Version.java | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index 6d63a8f22..3a498ab8f 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "e392e8c", "specHash": "dd7f7a9", "version": "10.13.0" } +{ "engineHash": "e392e8c", "specHash": "dd7f7a9", "version": "10.14.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index cc042e9ec..f8693fdde 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,15 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [10.14.0](https://github.com/box/box-java-sdk/compare/v10.13.0...v10.14.0) (2026-06-11) + + +### New Features and Enhancements + +* Add new event types (box/box-openapi[#1703](https://github.com/box/box-java-sdk/issues/1703)) (box/box-openapi[#605](https://github.com/box/box-java-sdk/issues/605)) ([#1889](https://github.com/box/box-java-sdk/issues/1889)) ([1747b14](https://github.com/box/box-java-sdk/commit/1747b14eac8ae1b4a96e1da2602d9e6894d6b4ee)) +* Add new parameters to ai extract structured method (box/box-openapi[#604](https://github.com/box/box-java-sdk/issues/604)) ([#1888](https://github.com/box/box-java-sdk/issues/1888)) ([09c342f](https://github.com/box/box-java-sdk/commit/09c342f5979f0bdb1a93c822273638aa0e60dbdf)) +* Expose `errorCode` in sign request schemas (box/box-openapi[#601](https://github.com/box/box-java-sdk/issues/601)) ([#1887](https://github.com/box/box-java-sdk/issues/1887)) ([70dc787](https://github.com/box/box-java-sdk/commit/70dc787c16f096070428af8e2caa02be3ba6fcc0)) + ## [10.13.0](https://github.com/box/box-java-sdk/compare/v10.12.0...v10.13.0) (2026-06-03) diff --git a/build.gradle b/build.gradle index 09c113c4a..8353021e5 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ plugins { } group = "com.box" archivesBaseName = "box-java-sdk" -version = "10.13.0" +version = "10.14.0" java { sourceCompatibility = JavaVersion.toVersion(libraryJavaVersion) targetCompatibility = JavaVersion.toVersion(libraryJavaVersion) diff --git a/src/main/java/com/box/sdkgen/networking/version/Version.java b/src/main/java/com/box/sdkgen/networking/version/Version.java index 7723b26a0..03094553e 100644 --- a/src/main/java/com/box/sdkgen/networking/version/Version.java +++ b/src/main/java/com/box/sdkgen/networking/version/Version.java @@ -3,6 +3,6 @@ public class Version { public static String getVersion() { - return "10.13.0"; + return "10.14.0"; } } From 7bdf30f512e8023be3dd1b2f0f881b1ee275702a Mon Sep 17 00:00:00 2001 From: Minh Nguyen Cong Date: Wed, 17 Jun 2026 10:31:01 +0200 Subject: [PATCH 132/148] ci: add FOSSA license and dependency scan (#1896) --- .github/workflows/fossa.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/workflows/fossa.yml diff --git a/.github/workflows/fossa.yml b/.github/workflows/fossa.yml new file mode 100644 index 000000000..3da49d58c --- /dev/null +++ b/.github/workflows/fossa.yml @@ -0,0 +1,22 @@ +name: FOSSA Scan + +on: + push: + branches: [main, combined-sdk] + pull_request: + branches: [main, combined-sdk] + +permissions: + contents: read + +jobs: + fossa: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - uses: fossas/fossa-action@main + with: + api-key: ${{ secrets.FOSSA_API_KEY }} + branch: ${{ github.head_ref || github.ref_name }} From f590481020c9d8670dd1f3a96583b1b7c909c303 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Tue, 30 Jun 2026 14:41:24 +0200 Subject: [PATCH 133/148] feat: Add new fields to Hubs(box/box-openapi#606) (#1901) Co-authored-by: box-sdk-build --- .codegen.json | 2 +- .github/workflows/fossa.yml | 22 ------- docs/ai.md | 4 ++ .../com/box/sdkgen/managers/ai/AiManager.java | 16 +++++ .../com/box/sdkgen/schemas/aiask/AiAsk.java | 6 +- .../sdkgen/schemas/aiitemask/AiItemAsk.java | 8 ++- .../schemas/signrequest/SignRequest.java | 13 ++++ .../signrequestbase/SignRequestBase.java | 31 ++++++++- .../SignRequestCreateRequest.java | 13 ++++ .../SignRequestSignerInput.java | 58 +++++++++++++++- .../schemas/signtemplate/SignTemplate.java | 31 ++++++++- .../HubCopyRequestV2025R0.java | 30 ++++++++- .../HubUpdateRequestV2025R0.java | 49 +++++++++++++- ...pdateRequestV2025R0CopyHubAccessField.java | 66 +++++++++++++++++++ .../v2025r0/hubv2025r0/HubV2025R0.java | 39 ++++++++++- .../HubV2025R0CopyHubAccessField.java | 66 +++++++++++++++++++ 16 files changed, 416 insertions(+), 38 deletions(-) delete mode 100644 .github/workflows/fossa.yml create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubupdaterequestv2025r0/HubUpdateRequestV2025R0CopyHubAccessField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0CopyHubAccessField.java diff --git a/.codegen.json b/.codegen.json index 3a498ab8f..53db925b9 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "e392e8c", "specHash": "dd7f7a9", "version": "10.14.0" } +{ "engineHash": "6f9492d", "specHash": "131c54a", "version": "10.14.0" } diff --git a/.github/workflows/fossa.yml b/.github/workflows/fossa.yml deleted file mode 100644 index 3da49d58c..000000000 --- a/.github/workflows/fossa.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: FOSSA Scan - -on: - push: - branches: [main, combined-sdk] - pull_request: - branches: [main, combined-sdk] - -permissions: - contents: read - -jobs: - fossa: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - - uses: fossas/fossa-action@main - with: - api-key: ${{ secrets.FOSSA_API_KEY }} - branch: ${{ github.head_ref || github.ref_name }} diff --git a/docs/ai.md b/docs/ai.md index 32a0c2d1a..d324a5962 100644 --- a/docs/ai.md +++ b/docs/ai.md @@ -11,6 +11,10 @@ Sends an AI request to supported LLMs and returns an answer specifically focused on the user's question given the provided context. +You can ask a question about a single file, several files, or the entire contents of a Box Hub. To search across and ask questions about everything in a Box Hub, send a single item with `type` set to `hubs` and the Hub's ID as the `id`. Box AI answers the question using the indexed content of all files in that Hub. + +Asking questions about a Box Hub requires Box AI for Hubs to be enabled in the Admin Console before the Hub is created, so that its content is indexed. + This operation is performed by calling function `createAiAsk`. See the endpoint docs at diff --git a/src/main/java/com/box/sdkgen/managers/ai/AiManager.java b/src/main/java/com/box/sdkgen/managers/ai/AiManager.java index ee8b542dd..6fe3a32f1 100644 --- a/src/main/java/com/box/sdkgen/managers/ai/AiManager.java +++ b/src/main/java/com/box/sdkgen/managers/ai/AiManager.java @@ -41,6 +41,14 @@ protected AiManager(Builder builder) { * Sends an AI request to supported LLMs and returns an answer specifically focused on the user's * question given the provided context. * + *

    You can ask a question about a single file, several files, or the entire contents of a Box + * Hub. To search across and ask questions about everything in a Box Hub, send a single item with + * `type` set to `hubs` and the Hub's ID as the `id`. Box AI answers the question using the + * indexed content of all files in that Hub. + * + *

    Asking questions about a Box Hub requires Box AI for Hubs to be enabled in the Admin Console + * before the Hub is created, so that its content is indexed. + * * @param requestBody Request body of createAiAsk method */ public AiResponseFull createAiAsk(AiAsk requestBody) { @@ -51,6 +59,14 @@ public AiResponseFull createAiAsk(AiAsk requestBody) { * Sends an AI request to supported LLMs and returns an answer specifically focused on the user's * question given the provided context. * + *

    You can ask a question about a single file, several files, or the entire contents of a Box + * Hub. To search across and ask questions about everything in a Box Hub, send a single item with + * `type` set to `hubs` and the Hub's ID as the `id`. Box AI answers the question using the + * indexed content of all files in that Hub. + * + *

    Asking questions about a Box Hub requires Box AI for Hubs to be enabled in the Admin Console + * before the Hub is created, so that its content is indexed. + * * @param requestBody Request body of createAiAsk method * @param headers Headers of createAiAsk method */ diff --git a/src/main/java/com/box/sdkgen/schemas/aiask/AiAsk.java b/src/main/java/com/box/sdkgen/schemas/aiask/AiAsk.java index 1ce74d48b..970b2d5fc 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiask/AiAsk.java +++ b/src/main/java/com/box/sdkgen/schemas/aiask/AiAsk.java @@ -39,7 +39,11 @@ public class AiAsk extends SerializableObject { */ protected final String prompt; - /** The items to be processed by the LLM, often files. */ + /** + * The items to be processed by the LLM, often files. To search across and ask questions about the + * contents of a Box Hub, pass a single item with `type` set to `hubs`. See the item `type` + * property for details. + */ protected final List items; /** diff --git a/src/main/java/com/box/sdkgen/schemas/aiitemask/AiItemAsk.java b/src/main/java/com/box/sdkgen/schemas/aiitemask/AiItemAsk.java index 69f9c367b..dea3e0f89 100644 --- a/src/main/java/com/box/sdkgen/schemas/aiitemask/AiItemAsk.java +++ b/src/main/java/com/box/sdkgen/schemas/aiitemask/AiItemAsk.java @@ -13,10 +13,14 @@ @JsonFilter("nullablePropertyFilter") public class AiItemAsk extends SerializableObject { - /** The ID of the file. */ + /** The ID of the file, or the ID of the Box Hub when `type` is `hubs`. */ protected final String id; - /** The type of the item. A `hubs` item must be used as a single item. */ + /** + * The type of the item. Use `file` to ask a question about a file, or `hubs` to search across and + * ask a question about the entire contents of a Box Hub. A `hubs` item must be the only item in + * the request. + */ @JsonDeserialize(using = AiItemAskTypeField.AiItemAskTypeFieldDeserializer.class) @JsonSerialize(using = AiItemAskTypeField.AiItemAskTypeFieldSerializer.class) protected final EnumWrapper type; diff --git a/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequest.java b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequest.java index e381b1825..9fa6903f1 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequest.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequest/SignRequest.java @@ -246,6 +246,7 @@ public boolean equals(Object o) { && Objects.equals(externalId, casted.externalId) && Objects.equals(templateId, casted.templateId) && Objects.equals(externalSystemName, casted.externalSystemName) + && Objects.equals(requestFlow, casted.requestFlow) && Objects.equals(type, casted.type) && Objects.equals(sourceFiles, casted.sourceFiles) && Objects.equals(signers, casted.signers) @@ -282,6 +283,7 @@ public int hashCode() { externalId, templateId, externalSystemName, + requestFlow, type, sourceFiles, signers, @@ -357,6 +359,10 @@ public String toString() { + externalSystemName + '\'' + ", " + + "requestFlow='" + + requestFlow + + '\'' + + ", " + "type='" + type + '\'' @@ -663,6 +669,13 @@ public Builder externalSystemName(String externalSystemName) { return this; } + @Override + public Builder requestFlow(String requestFlow) { + this.requestFlow = requestFlow; + this.markNullableFieldAsSet("request_flow"); + return this; + } + public SignRequest build() { return new SignRequest(this); } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestbase/SignRequestBase.java b/src/main/java/com/box/sdkgen/schemas/signrequestbase/SignRequestBase.java index 6c20c6c8b..b144af275 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestbase/SignRequestBase.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestbase/SignRequestBase.java @@ -107,6 +107,14 @@ public class SignRequestBase extends SerializableObject { @Nullable protected String externalSystemName; + /** + * The flow type of the sign request. Values can include `standard` or `cfr11`. When not specified + * during creation, a default is chosen based on admin settings. + */ + @JsonProperty("request_flow") + @Nullable + protected String requestFlow; + public SignRequestBase() { super(); } @@ -126,6 +134,7 @@ protected SignRequestBase(Builder builder) { this.externalId = builder.externalId; this.templateId = builder.templateId; this.externalSystemName = builder.externalSystemName; + this.requestFlow = builder.requestFlow; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -181,6 +190,10 @@ public String getExternalSystemName() { return externalSystemName; } + public String getRequestFlow() { + return requestFlow; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -202,7 +215,8 @@ public boolean equals(Object o) { && Objects.equals(daysValid, casted.daysValid) && Objects.equals(externalId, casted.externalId) && Objects.equals(templateId, casted.templateId) - && Objects.equals(externalSystemName, casted.externalSystemName); + && Objects.equals(externalSystemName, casted.externalSystemName) + && Objects.equals(requestFlow, casted.requestFlow); } @Override @@ -220,7 +234,8 @@ public int hashCode() { daysValid, externalId, templateId, - externalSystemName); + externalSystemName, + requestFlow); } @Override @@ -277,6 +292,10 @@ public String toString() { + "externalSystemName='" + externalSystemName + '\'' + + ", " + + "requestFlow='" + + requestFlow + + '\'' + "}"; } @@ -308,6 +327,8 @@ public static class Builder extends NullableFieldTracker { protected String externalSystemName; + protected String requestFlow; + public Builder isDocumentPreparationNeeded(Boolean isDocumentPreparationNeeded) { this.isDocumentPreparationNeeded = isDocumentPreparationNeeded; return this; @@ -381,6 +402,12 @@ public Builder externalSystemName(String externalSystemName) { return this; } + public Builder requestFlow(String requestFlow) { + this.requestFlow = requestFlow; + this.markNullableFieldAsSet("request_flow"); + return this; + } + public SignRequestBase build() { return new SignRequestBase(this); } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestcreaterequest/SignRequestCreateRequest.java b/src/main/java/com/box/sdkgen/schemas/signrequestcreaterequest/SignRequestCreateRequest.java index 59c0e5663..63368bed5 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestcreaterequest/SignRequestCreateRequest.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestcreaterequest/SignRequestCreateRequest.java @@ -108,6 +108,7 @@ public boolean equals(Object o) { && Objects.equals(externalId, casted.externalId) && Objects.equals(templateId, casted.templateId) && Objects.equals(externalSystemName, casted.externalSystemName) + && Objects.equals(requestFlow, casted.requestFlow) && Objects.equals(sourceFiles, casted.sourceFiles) && Objects.equals(signatureColor, casted.signatureColor) && Objects.equals(signers, casted.signers) @@ -130,6 +131,7 @@ public int hashCode() { externalId, templateId, externalSystemName, + requestFlow, sourceFiles, signatureColor, signers, @@ -191,6 +193,10 @@ public String toString() { + externalSystemName + '\'' + ", " + + "requestFlow='" + + requestFlow + + '\'' + + ", " + "sourceFiles='" + sourceFiles + '\'' @@ -335,6 +341,13 @@ public Builder externalSystemName(String externalSystemName) { return this; } + @Override + public Builder requestFlow(String requestFlow) { + this.requestFlow = requestFlow; + this.markNullableFieldAsSet("request_flow"); + return this; + } + public SignRequestCreateRequest build() { return new SignRequestCreateRequest(this); } diff --git a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInput.java b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInput.java index 9af6c3971..d5dabd263 100644 --- a/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInput.java +++ b/src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInput.java @@ -1,5 +1,6 @@ package com.box.sdkgen.schemas.signrequestsignerinput; +import com.box.sdkgen.internal.Nullable; import com.box.sdkgen.schemas.signrequestprefilltag.SignRequestPrefillTag; import com.box.sdkgen.schemas.signrequestsignerinputcustomvalidation.SignRequestSignerInputCustomValidation; import com.box.sdkgen.schemas.signrequestsignerinputdateasiavalidation.SignRequestSignerInputDateAsiaValidation; @@ -58,6 +59,21 @@ public class SignRequestSignerInput extends SignRequestPrefillTag { */ protected SignRequestSignerInputValidation validation; + /** + * The reason for the signer's input, applicable to signature or initial content types in a + * `cfr11` request flow. The value is `null` when not applicable. + */ + @Nullable protected String reason; + + /** + * Indicates whether the signer's input has been validated through re-authentication. Applicable + * only for signature or initial content types in a `cfr11` request flow. The value is `null` for + * standard request flows or non-applicable input types. + */ + @JsonProperty("is_validated") + @Nullable + protected Boolean isValidated; + public SignRequestSignerInput(@JsonProperty("page_index") long pageIndex) { super(); this.pageIndex = pageIndex; @@ -70,6 +86,8 @@ protected SignRequestSignerInput(Builder builder) { this.pageIndex = builder.pageIndex; this.readOnly = builder.readOnly; this.validation = builder.validation; + this.reason = builder.reason; + this.isValidated = builder.isValidated; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -93,6 +111,14 @@ public SignRequestSignerInputValidation getValidation() { return validation; } + public String getReason() { + return reason; + } + + public Boolean getIsValidated() { + return isValidated; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -110,7 +136,9 @@ public boolean equals(Object o) { && Objects.equals(contentType, casted.contentType) && Objects.equals(pageIndex, casted.pageIndex) && Objects.equals(readOnly, casted.readOnly) - && Objects.equals(validation, casted.validation); + && Objects.equals(validation, casted.validation) + && Objects.equals(reason, casted.reason) + && Objects.equals(isValidated, casted.isValidated); } @Override @@ -124,7 +152,9 @@ public int hashCode() { contentType, pageIndex, readOnly, - validation); + validation, + reason, + isValidated); } @Override @@ -165,6 +195,14 @@ public String toString() { + "validation='" + validation + '\'' + + ", " + + "reason='" + + reason + + '\'' + + ", " + + "isValidated='" + + isValidated + + '\'' + "}"; } @@ -180,6 +218,10 @@ public static class Builder extends SignRequestPrefillTag.Builder { protected SignRequestSignerInputValidation validation; + protected String reason; + + protected Boolean isValidated; + public Builder(long pageIndex) { super(); this.pageIndex = pageIndex; @@ -270,6 +312,18 @@ public Builder validation(SignRequestSignerInputValidation validation) { return this; } + public Builder reason(String reason) { + this.reason = reason; + this.markNullableFieldAsSet("reason"); + return this; + } + + public Builder isValidated(Boolean isValidated) { + this.isValidated = isValidated; + this.markNullableFieldAsSet("is_validated"); + return this; + } + @Override public Builder documentTagId(String documentTagId) { this.documentTagId = documentTagId; diff --git a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplate.java b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplate.java index 80d926b10..80f45b1d9 100644 --- a/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplate.java +++ b/src/main/java/com/box/sdkgen/schemas/signtemplate/SignTemplate.java @@ -130,6 +130,14 @@ public class SignTemplate extends SerializableObject { @Nullable protected SignTemplateCustomBrandingField customBranding; + /** + * The sign flow of sign requests created from the template. Values can include `standard` or + * `cfr11`. + */ + @JsonProperty("request_flow") + @Nullable + protected String requestFlow; + public SignTemplate() { super(); } @@ -153,6 +161,7 @@ protected SignTemplate(Builder builder) { this.additionalInfo = builder.additionalInfo; this.readySignLink = builder.readySignLink; this.customBranding = builder.customBranding; + this.requestFlow = builder.requestFlow; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -224,6 +233,10 @@ public SignTemplateCustomBrandingField getCustomBranding() { return customBranding; } + public String getRequestFlow() { + return requestFlow; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -249,7 +262,8 @@ public boolean equals(Object o) { && Objects.equals(signers, casted.signers) && Objects.equals(additionalInfo, casted.additionalInfo) && Objects.equals(readySignLink, casted.readySignLink) - && Objects.equals(customBranding, casted.customBranding); + && Objects.equals(customBranding, casted.customBranding) + && Objects.equals(requestFlow, casted.requestFlow); } @Override @@ -271,7 +285,8 @@ public int hashCode() { signers, additionalInfo, readySignLink, - customBranding); + customBranding, + requestFlow); } @Override @@ -344,6 +359,10 @@ public String toString() { + "customBranding='" + customBranding + '\'' + + ", " + + "requestFlow='" + + requestFlow + + '\'' + "}"; } @@ -383,6 +402,8 @@ public static class Builder extends NullableFieldTracker { protected SignTemplateCustomBrandingField customBranding; + protected String requestFlow; + public Builder type(SignTemplateTypeField type) { this.type = new EnumWrapper(type); return this; @@ -479,6 +500,12 @@ public Builder customBranding(SignTemplateCustomBrandingField customBranding) { return this; } + public Builder requestFlow(String requestFlow) { + this.requestFlow = requestFlow; + this.markNullableFieldAsSet("request_flow"); + return this; + } + public SignTemplate build() { return new SignTemplate(this); } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcopyrequestv2025r0/HubCopyRequestV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcopyrequestv2025r0/HubCopyRequestV2025R0.java index 3ceb1c0a9..61a195989 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcopyrequestv2025r0/HubCopyRequestV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubcopyrequestv2025r0/HubCopyRequestV2025R0.java @@ -3,6 +3,7 @@ import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; /** Request schema for copying a Box Hub. */ @@ -15,6 +16,13 @@ public class HubCopyRequestV2025R0 extends SerializableObject { /** Description of the Box Hub. */ protected String description; + /** + * If true, the items which the user has Editor or Owner access to in the original Box Hub will be + * copied to the new Box Hub. Defaults to false. + */ + @JsonProperty("include_items") + protected Boolean includeItems; + public HubCopyRequestV2025R0() { super(); } @@ -23,6 +31,7 @@ protected HubCopyRequestV2025R0(Builder builder) { super(); this.title = builder.title; this.description = builder.description; + this.includeItems = builder.includeItems; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -34,6 +43,10 @@ public String getDescription() { return description; } + public Boolean getIncludeItems() { + return includeItems; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -43,12 +56,14 @@ public boolean equals(Object o) { return false; } HubCopyRequestV2025R0 casted = (HubCopyRequestV2025R0) o; - return Objects.equals(title, casted.title) && Objects.equals(description, casted.description); + return Objects.equals(title, casted.title) + && Objects.equals(description, casted.description) + && Objects.equals(includeItems, casted.includeItems); } @Override public int hashCode() { - return Objects.hash(title, description); + return Objects.hash(title, description, includeItems); } @Override @@ -61,6 +76,10 @@ public String toString() { + "description='" + description + '\'' + + ", " + + "includeItems='" + + includeItems + + '\'' + "}"; } @@ -70,6 +89,8 @@ public static class Builder extends NullableFieldTracker { protected String description; + protected Boolean includeItems; + public Builder title(String title) { this.title = title; return this; @@ -80,6 +101,11 @@ public Builder description(String description) { return this; } + public Builder includeItems(Boolean includeItems) { + this.includeItems = includeItems; + return this; + } + public HubCopyRequestV2025R0 build() { return new HubCopyRequestV2025R0(this); } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubupdaterequestv2025r0/HubUpdateRequestV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubupdaterequestv2025r0/HubUpdateRequestV2025R0.java index dad3150c2..f3312e860 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubupdaterequestv2025r0/HubUpdateRequestV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubupdaterequestv2025r0/HubUpdateRequestV2025R0.java @@ -2,8 +2,11 @@ import com.box.sdkgen.internal.NullableFieldTracker; import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.util.Objects; /** Request schema for updating an existing Box Hub. */ @@ -36,6 +39,23 @@ public class HubUpdateRequestV2025R0 extends SerializableObject { @JsonProperty("can_public_shared_link_be_created") protected Boolean canPublicSharedLinkBeCreated; + /** + * Specifies who is allowed to copy the Box Hub. + * + *

    * `all` - Any user with access to the Hub can copy it. * `company` - Only users within the + * same enterprise as the Hub can copy it. * `none` - No one can copy the Hub. + */ + @JsonDeserialize( + using = + HubUpdateRequestV2025R0CopyHubAccessField + .HubUpdateRequestV2025R0CopyHubAccessFieldDeserializer.class) + @JsonSerialize( + using = + HubUpdateRequestV2025R0CopyHubAccessField + .HubUpdateRequestV2025R0CopyHubAccessFieldSerializer.class) + @JsonProperty("copy_hub_access") + protected EnumWrapper copyHubAccess; + public HubUpdateRequestV2025R0() { super(); } @@ -49,6 +69,7 @@ protected HubUpdateRequestV2025R0(Builder builder) { this.canNonOwnersInvite = builder.canNonOwnersInvite; this.canSharedLinkBeCreated = builder.canSharedLinkBeCreated; this.canPublicSharedLinkBeCreated = builder.canPublicSharedLinkBeCreated; + this.copyHubAccess = builder.copyHubAccess; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -80,6 +101,10 @@ public Boolean getCanPublicSharedLinkBeCreated() { return canPublicSharedLinkBeCreated; } + public EnumWrapper getCopyHubAccess() { + return copyHubAccess; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -96,7 +121,8 @@ public boolean equals(Object o) { isCollaborationRestrictedToEnterprise, casted.isCollaborationRestrictedToEnterprise) && Objects.equals(canNonOwnersInvite, casted.canNonOwnersInvite) && Objects.equals(canSharedLinkBeCreated, casted.canSharedLinkBeCreated) - && Objects.equals(canPublicSharedLinkBeCreated, casted.canPublicSharedLinkBeCreated); + && Objects.equals(canPublicSharedLinkBeCreated, casted.canPublicSharedLinkBeCreated) + && Objects.equals(copyHubAccess, casted.copyHubAccess); } @Override @@ -108,7 +134,8 @@ public int hashCode() { isCollaborationRestrictedToEnterprise, canNonOwnersInvite, canSharedLinkBeCreated, - canPublicSharedLinkBeCreated); + canPublicSharedLinkBeCreated, + copyHubAccess); } @Override @@ -141,6 +168,10 @@ public String toString() { + "canPublicSharedLinkBeCreated='" + canPublicSharedLinkBeCreated + '\'' + + ", " + + "copyHubAccess='" + + copyHubAccess + + '\'' + "}"; } @@ -160,6 +191,8 @@ public static class Builder extends NullableFieldTracker { protected Boolean canPublicSharedLinkBeCreated; + protected EnumWrapper copyHubAccess; + public Builder title(String title) { this.title = title; return this; @@ -196,6 +229,18 @@ public Builder canPublicSharedLinkBeCreated(Boolean canPublicSharedLinkBeCreated return this; } + public Builder copyHubAccess(HubUpdateRequestV2025R0CopyHubAccessField copyHubAccess) { + this.copyHubAccess = + new EnumWrapper(copyHubAccess); + return this; + } + + public Builder copyHubAccess( + EnumWrapper copyHubAccess) { + this.copyHubAccess = copyHubAccess; + return this; + } + public HubUpdateRequestV2025R0 build() { return new HubUpdateRequestV2025R0(this); } diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubupdaterequestv2025r0/HubUpdateRequestV2025R0CopyHubAccessField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubupdaterequestv2025r0/HubUpdateRequestV2025R0CopyHubAccessField.java new file mode 100644 index 000000000..669e855ec --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubupdaterequestv2025r0/HubUpdateRequestV2025R0CopyHubAccessField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.schemas.v2025r0.hubupdaterequestv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum HubUpdateRequestV2025R0CopyHubAccessField implements Valuable { + ALL("all"), + COMPANY("company"), + NONE("none"); + + private final String value; + + HubUpdateRequestV2025R0CopyHubAccessField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class HubUpdateRequestV2025R0CopyHubAccessFieldDeserializer + extends JsonDeserializer> { + + public HubUpdateRequestV2025R0CopyHubAccessFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(HubUpdateRequestV2025R0CopyHubAccessField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class HubUpdateRequestV2025R0CopyHubAccessFieldSerializer + extends JsonSerializer> { + + public HubUpdateRequestV2025R0CopyHubAccessFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0.java index c49674bd8..a4fa51f5e 100644 --- a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0.java +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0.java @@ -69,6 +69,18 @@ public class HubV2025R0 extends HubBaseV2025R0 { @JsonProperty("can_public_shared_link_be_created") protected Boolean canPublicSharedLinkBeCreated; + /** + * Specifies who is allowed to copy the Box Hub. + * + *

    * `all` - Any user with access to the Hub can copy it. * `company` - Only users within the + * same enterprise as the Hub can copy it. * `none` - No one can copy the Hub. + */ + @JsonDeserialize( + using = HubV2025R0CopyHubAccessField.HubV2025R0CopyHubAccessFieldDeserializer.class) + @JsonSerialize(using = HubV2025R0CopyHubAccessField.HubV2025R0CopyHubAccessFieldSerializer.class) + @JsonProperty("copy_hub_access") + protected EnumWrapper copyHubAccess; + public HubV2025R0(@JsonProperty("id") String id) { super(id); } @@ -87,6 +99,7 @@ protected HubV2025R0(Builder builder) { this.canNonOwnersInvite = builder.canNonOwnersInvite; this.canSharedLinkBeCreated = builder.canSharedLinkBeCreated; this.canPublicSharedLinkBeCreated = builder.canPublicSharedLinkBeCreated; + this.copyHubAccess = builder.copyHubAccess; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -138,6 +151,10 @@ public Boolean getCanPublicSharedLinkBeCreated() { return canPublicSharedLinkBeCreated; } + public EnumWrapper getCopyHubAccess() { + return copyHubAccess; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -161,7 +178,8 @@ public boolean equals(Object o) { isCollaborationRestrictedToEnterprise, casted.isCollaborationRestrictedToEnterprise) && Objects.equals(canNonOwnersInvite, casted.canNonOwnersInvite) && Objects.equals(canSharedLinkBeCreated, casted.canSharedLinkBeCreated) - && Objects.equals(canPublicSharedLinkBeCreated, casted.canPublicSharedLinkBeCreated); + && Objects.equals(canPublicSharedLinkBeCreated, casted.canPublicSharedLinkBeCreated) + && Objects.equals(copyHubAccess, casted.copyHubAccess); } @Override @@ -180,7 +198,8 @@ public int hashCode() { isCollaborationRestrictedToEnterprise, canNonOwnersInvite, canSharedLinkBeCreated, - canPublicSharedLinkBeCreated); + canPublicSharedLinkBeCreated, + copyHubAccess); } @Override @@ -241,6 +260,10 @@ public String toString() { + "canPublicSharedLinkBeCreated='" + canPublicSharedLinkBeCreated + '\'' + + ", " + + "copyHubAccess='" + + copyHubAccess + + '\'' + "}"; } @@ -270,6 +293,8 @@ public static class Builder extends HubBaseV2025R0.Builder { protected Boolean canPublicSharedLinkBeCreated; + protected EnumWrapper copyHubAccess; + public Builder(String id) { super(id); } @@ -335,6 +360,16 @@ public Builder canPublicSharedLinkBeCreated(Boolean canPublicSharedLinkBeCreated return this; } + public Builder copyHubAccess(HubV2025R0CopyHubAccessField copyHubAccess) { + this.copyHubAccess = new EnumWrapper(copyHubAccess); + return this; + } + + public Builder copyHubAccess(EnumWrapper copyHubAccess) { + this.copyHubAccess = copyHubAccess; + return this; + } + @Override public Builder type(HubBaseV2025R0TypeField type) { this.type = new EnumWrapper(type); diff --git a/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0CopyHubAccessField.java b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0CopyHubAccessField.java new file mode 100644 index 000000000..f6927d8f5 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2025r0/hubv2025r0/HubV2025R0CopyHubAccessField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.schemas.v2025r0.hubv2025r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum HubV2025R0CopyHubAccessField implements Valuable { + ALL("all"), + COMPANY("company"), + NONE("none"); + + private final String value; + + HubV2025R0CopyHubAccessField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class HubV2025R0CopyHubAccessFieldDeserializer + extends JsonDeserializer> { + + public HubV2025R0CopyHubAccessFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(HubV2025R0CopyHubAccessField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class HubV2025R0CopyHubAccessFieldSerializer + extends JsonSerializer> { + + public HubV2025R0CopyHubAccessFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} From a87b8d1e10e0f03f61e56b1a3328714bb78efd17 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 1 Jul 2026 11:41:28 +0200 Subject: [PATCH 134/148] feat: Setup common default timeout (box/box-codegen#965) (#1905) Co-authored-by: box-sdk-build --- .codegen.json | 2 +- docs/client.md | 5 ++++- docs/configuration.md | 19 +++++++++++++------ .../boxnetworkclient/BoxNetworkClient.java | 8 ++++++++ .../networking/network/NetworkSession.java | 7 +++++++ .../timeoutconfig/TimeoutConfig.java | 14 ++++++++++++++ 6 files changed, 47 insertions(+), 8 deletions(-) diff --git a/.codegen.json b/.codegen.json index 53db925b9..feb6a33d0 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "6f9492d", "specHash": "131c54a", "version": "10.14.0" } +{ "engineHash": "ed5236c", "specHash": "131c54a", "version": "10.14.0" } diff --git a/docs/client.md b/docs/client.md index 7e63120f4..c78e51b7e 100644 --- a/docs/client.md +++ b/docs/client.md @@ -183,10 +183,13 @@ BoxClient clientWithInterceptor = client.withInterceptors(interceptors); In order to configure timeout for API calls, calling the `client.withTimeouts(config)` method creates a new client with timeout settings, leaving the original client unmodified. +All timeout values are in milliseconds. + ```java TimeoutConfig timeoutConfig = new TimeoutConfig.Builder() - .connectionTimeoutMs(10000L) + .connectionTimeoutMs(5000L) .readTimeoutMs(30000L) + .requestTimeoutMs(60000L) .build(); BoxClient newClient = client.withTimeouts(timeoutConfig); ``` diff --git a/docs/configuration.md b/docs/configuration.md index ebb79bdcd..a07fc503f 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -178,13 +178,20 @@ BoxClient client = new BoxClient.Builder(auth) ## Timeouts You can configure network timeouts with `TimeoutConfig` on `NetworkSession`. -Java SDK supports separate values for connection and read timeouts, both in milliseconds. +The SDK supports three timeout values, all in milliseconds: + +| Parameter | Description | +| --------------------- | -------------------------------------------------------------------------------------------------------- | +| `connectionTimeoutMs` | Maximum time to wait for the TCP connection to be established. Maps to OkHttp `connectTimeout`. | +| `readTimeoutMs` | Maximum idle time between data packets while reading the response. Maps to OkHttp `readTimeout`. | +| `requestTimeoutMs` | Maximum total time for the entire HTTP request (connect + send + receive). Maps to OkHttp `callTimeout`. | ```java BoxDeveloperTokenAuth auth = new BoxDeveloperTokenAuth("DEVELOPER_TOKEN"); TimeoutConfig timeoutConfig = new TimeoutConfig.Builder() - .connectionTimeoutMs(10000L) + .connectionTimeoutMs(5000L) .readTimeoutMs(30000L) + .requestTimeoutMs(60000L) .build(); NetworkSession session = new NetworkSession() @@ -199,10 +206,10 @@ How timeout handling works: - `connectionTimeoutMs` controls how long the client waits to establish a connection. - `readTimeoutMs` controls how long the client waits for data while reading the response. -- If timeout config is not provided, the SDK uses the OkHttp default timeout settings: connect timeout of 10 seconds, read timeout of 10 seconds, and write timeout of 10 seconds. +- `requestTimeoutMs` controls the maximum total time for the entire request lifecycle, including connection, sending the request body, and reading the response. +- If timeout config is not provided, the SDK uses default timeouts: `connectionTimeoutMs: 10000` (10 seconds), `readTimeoutMs: 60000` (60 seconds), and `requestTimeoutMs: 21600000` (6 hours). - Each timeout is optional. If a value is not provided, the client keeps its existing timeout for that setting. -- To disable both timeouts, set `connectionTimeoutMs(0L)` and `readTimeoutMs(0L)`. -- You can also disable only one timeout by setting just one of them to `0L` and leaving the other configured. -- Timeout failures are handled as request exceptions, then retry behavior is controlled by the configured retry strategy +- To disable a timeout, set its value to `0L`. +- Timeout failures are handled as request exceptions, then retry behavior is controlled by the configured retry strategy. - If retries are exhausted after timeout failures, the SDK throws `BoxSDKError` with the underlying timeout exception as the cause. - Timeout applies to a single HTTP request attempt to the Box API (not the total time across all retries). diff --git a/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java b/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java index b7278de44..208cd0603 100644 --- a/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java +++ b/src/main/java/com/box/sdkgen/networking/boxnetworkclient/BoxNetworkClient.java @@ -120,6 +120,14 @@ public BoxNetworkClient withTimeoutConfig(TimeoutConfig config) { } clientBuilder.readTimeout(readTimeoutMs.longValue(), TimeUnit.MILLISECONDS); } + + Long requestTimeoutMs = config.getRequestTimeoutMs(); + if (requestTimeoutMs != null) { + if (requestTimeoutMs < 0) { + throw new IllegalArgumentException("requestTimeoutMs cannot be negative"); + } + clientBuilder.callTimeout(requestTimeoutMs.longValue(), TimeUnit.MILLISECONDS); + } return new BoxNetworkClient(clientBuilder.build()); } diff --git a/src/main/java/com/box/sdkgen/networking/network/NetworkSession.java b/src/main/java/com/box/sdkgen/networking/network/NetworkSession.java index 60a32bff6..5b553561e 100644 --- a/src/main/java/com/box/sdkgen/networking/network/NetworkSession.java +++ b/src/main/java/com/box/sdkgen/networking/network/NetworkSession.java @@ -38,6 +38,13 @@ public NetworkSession() { networkClient = new BoxNetworkClient(); retryStrategy = new BoxRetryStrategy(); dataSanitizer = new DataSanitizer(); + timeoutConfig = + new TimeoutConfig.Builder() + .connectionTimeoutMs(10000L) + .readTimeoutMs(60000L) + .requestTimeoutMs(21600000L) + .build(); + networkClient = ((BoxNetworkClient) networkClient).withTimeoutConfig(timeoutConfig); } protected NetworkSession(Builder builder) { diff --git a/src/main/java/com/box/sdkgen/networking/timeoutconfig/TimeoutConfig.java b/src/main/java/com/box/sdkgen/networking/timeoutconfig/TimeoutConfig.java index 728f5b092..bdd2fc665 100644 --- a/src/main/java/com/box/sdkgen/networking/timeoutconfig/TimeoutConfig.java +++ b/src/main/java/com/box/sdkgen/networking/timeoutconfig/TimeoutConfig.java @@ -6,11 +6,14 @@ public class TimeoutConfig { public Long readTimeoutMs; + public Long requestTimeoutMs; + public TimeoutConfig() {} protected TimeoutConfig(Builder builder) { this.connectionTimeoutMs = builder.connectionTimeoutMs; this.readTimeoutMs = builder.readTimeoutMs; + this.requestTimeoutMs = builder.requestTimeoutMs; } public Long getConnectionTimeoutMs() { @@ -21,12 +24,18 @@ public Long getReadTimeoutMs() { return readTimeoutMs; } + public Long getRequestTimeoutMs() { + return requestTimeoutMs; + } + public static class Builder { protected Long connectionTimeoutMs; protected Long readTimeoutMs; + protected Long requestTimeoutMs; + public Builder connectionTimeoutMs(Long connectionTimeoutMs) { this.connectionTimeoutMs = connectionTimeoutMs; return this; @@ -37,6 +46,11 @@ public Builder readTimeoutMs(Long readTimeoutMs) { return this; } + public Builder requestTimeoutMs(Long requestTimeoutMs) { + this.requestTimeoutMs = requestTimeoutMs; + return this; + } + public TimeoutConfig build() { return new TimeoutConfig(this); } From dd4068c2dbb51402a37a1078dff7dea7da0306e9 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 1 Jul 2026 13:11:50 +0200 Subject: [PATCH 135/148] chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] (#1907) Co-authored-by: box-sdk-build --- .codegen.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index feb6a33d0..c9ef58a30 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "ed5236c", "specHash": "131c54a", "version": "10.14.0" } +{ "engineHash": "5560f9a", "specHash": "131c54a", "version": "10.14.0" } From 2c53878ef951f202a3350c2cd71ae8e57ed3d069 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Thu, 9 Jul 2026 17:09:49 +0200 Subject: [PATCH 136/148] chore: Bump Jackson libraries to fix `CVEs` (box/box-codegen#971) (#1912) --- .codegen.json | 2 +- README.md | 12 ++++++------ gradle.properties | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.codegen.json b/.codegen.json index c9ef58a30..a36c96853 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "5560f9a", "specHash": "131c54a", "version": "10.14.0" } +{ "engineHash": "7fa5d4a", "specHash": "131c54a", "version": "10.14.0" } diff --git a/README.md b/README.md index 5e4755822..af59071e9 100644 --- a/README.md +++ b/README.md @@ -173,14 +173,14 @@ See [CONTRIBUTING.md](./CONTRIBUTING.md). The Java SDK uses third-party libraries that are required for usage. Their licenses are listed below: -1. [jackson-annotations v2.17.2](https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations/2.17.2) - Maven: `com.fasterxml.jackson.core:jackson-annotations:2.17.2` +1. [jackson-annotations v2.21](https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations/2.21) + Maven: `com.fasterxml.jackson.core:jackson-annotations:2.21` Licence: [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) -2. [jackson-core v2.17.2](https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core/2.17.2) - Maven: `com.fasterxml.jackson.core:jackson-core:2.17.2` +2. [jackson-core v2.21.4](https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core/2.21.4) + Maven: `com.fasterxml.jackson.core:jackson-core:2.21.4` Licence: [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) -3. [jackson-databind v2.17.2](https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind/2.17.2) - Maven: `com.fasterxml.jackson.core:jackson-databind:2.17.2` +3. [jackson-databind v2.21.4](https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind/2.21.4) + Maven: `com.fasterxml.jackson.core:jackson-databind:2.21.4` Licence: [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) 4. [okhttp v4.12.0](https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp/4.12.0) Maven: `com.squareup.okhttp3:okhttp:4.12.0` diff --git a/gradle.properties b/gradle.properties index 98e33de7e..ee0b8d385 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,8 +1,8 @@ libraryJavaVersion=1.8 spotlessVersion=6.2.0 -jacksonAnnotationVersion=2.17.2 -jacksonCoreVersion=2.17.2 -jacksonDatabindVersion=2.17.2 +jacksonAnnotationVersion=2.21 +jacksonCoreVersion=2.21.4 +jacksonDatabindVersion=2.21.4 okhttpVersion=4.12.0 okioVersion=3.5.0 jose4jVersion=0.9.6 From 823fa3771cad06c41448820b8f22cab648ef376a Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Thu, 9 Jul 2026 17:55:40 +0200 Subject: [PATCH 137/148] chore: release version 10.15.0 (#1913) --- .codegen.json | 2 +- CHANGELOG.md | 8 ++++++++ build.gradle | 2 +- .../java/com/box/sdkgen/networking/version/Version.java | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index a36c96853..20e9f2320 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "7fa5d4a", "specHash": "131c54a", "version": "10.14.0" } +{ "engineHash": "7fa5d4a", "specHash": "131c54a", "version": "10.15.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index f8693fdde..6346891de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,14 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [10.15.0](https://github.com/box/box-java-sdk/compare/v10.14.0...v10.15.0) (2026-07-09) + + +### New Features and Enhancements + +* Add new fields to Hubs(box/box-openapi[#606](https://github.com/box/box-java-sdk/issues/606)) ([#1901](https://github.com/box/box-java-sdk/issues/1901)) ([f590481](https://github.com/box/box-java-sdk/commit/f590481020c9d8670dd1f3a96583b1b7c909c303)) +* Setup common default timeout (box/box-codegen[#965](https://github.com/box/box-java-sdk/issues/965)) ([#1905](https://github.com/box/box-java-sdk/issues/1905)) ([a87b8d1](https://github.com/box/box-java-sdk/commit/a87b8d1e10e0f03f61e56b1a3328714bb78efd17)) + ## [10.14.0](https://github.com/box/box-java-sdk/compare/v10.13.0...v10.14.0) (2026-06-11) diff --git a/build.gradle b/build.gradle index 8353021e5..84513043b 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ plugins { } group = "com.box" archivesBaseName = "box-java-sdk" -version = "10.14.0" +version = "10.15.0" java { sourceCompatibility = JavaVersion.toVersion(libraryJavaVersion) targetCompatibility = JavaVersion.toVersion(libraryJavaVersion) diff --git a/src/main/java/com/box/sdkgen/networking/version/Version.java b/src/main/java/com/box/sdkgen/networking/version/Version.java index 03094553e..a902bea5e 100644 --- a/src/main/java/com/box/sdkgen/networking/version/Version.java +++ b/src/main/java/com/box/sdkgen/networking/version/Version.java @@ -3,6 +3,6 @@ public class Version { public static String getVersion() { - return "10.14.0"; + return "10.15.0"; } } From 4441f037afaf148b300466a23818108a364457ab Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Fri, 10 Jul 2026 12:33:50 +0200 Subject: [PATCH 138/148] fix: Bump `Bouncy Castle` to fix CVE in Java (box/box-codegen#972) (#1918) --- .codegen.json | 2 +- README.md | 10 +++++----- gradle.properties | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.codegen.json b/.codegen.json index 20e9f2320..d06ddfc6a 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "7fa5d4a", "specHash": "131c54a", "version": "10.15.0" } +{ "engineHash": "66be199", "specHash": "131c54a", "version": "10.15.0" } diff --git a/README.md b/README.md index af59071e9..755b313db 100644 --- a/README.md +++ b/README.md @@ -191,11 +191,11 @@ The Java SDK uses third-party libraries that are required for usage. Their licen 6. [jose4j v0.9.6](https://mvnrepository.com/artifact/org.bitbucket.b_c/jose4j/0.9.6) Maven: `org.bitbucket.b_c:jose4j:0.9.6` Licence: [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) -7. [bcprov-jdk18on v1.82](https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk18on/1.82) - Maven: `org.bouncycastle:bcprov-jdk18on:1.82` +7. [bcprov-jdk18on v1.84](https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk18on/1.84) + Maven: `org.bouncycastle:bcprov-jdk18on:1.84` Licence: [MIT](https://opensource.org/licenses/MIT) -8. [bcpkix-jdk18on v1.82](https://mvnrepository.com/artifact/org.bouncycastle/bcpkix-jdk18on/1.82) - Maven: `org.bouncycastle:bcpkix-jdk18on:1.82` +8. [bcpkix-jdk18on v1.84](https://mvnrepository.com/artifact/org.bouncycastle/bcpkix-jdk18on/1.84) + Maven: `org.bouncycastle:bcpkix-jdk18on:1.84` Licence: [MIT](https://opensource.org/licenses/MIT) The following libraries are required for running tests: @@ -210,7 +210,7 @@ The following libraries are required for running tests: # FIPS 140-2 Compliance To generate a Json Web Signature used for retrieving tokens in the JWT authentication method, the Box Java SDK decrypts an encrypted private key. -For this purpose, Box Java SDK uses libraries (`org.bouncycastle:bcpkix-jdk18on:1.82` and `org.bouncycastle:bcprov-jdk18on:1.82`) +For this purpose, Box Java SDK uses libraries (`org.bouncycastle:bcpkix-jdk18on:1.84` and `org.bouncycastle:bcprov-jdk18on:1.84`) that are NOT compatible with FIPS 140-2 validated cryptographic library (`org.bouncycastle:bc-fips`). There are two ways of ensuring that decryption operation is FIPS-compiant. diff --git a/gradle.properties b/gradle.properties index ee0b8d385..384f02a41 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,8 +6,8 @@ jacksonDatabindVersion=2.21.4 okhttpVersion=4.12.0 okioVersion=3.5.0 jose4jVersion=0.9.6 -bouncyCastleBcprovJdk18onVersion=1.82 -bouncyCastleBcpkixJdk18onVersion=1.82 +bouncyCastleBcprovJdk18onVersion=1.84 +bouncyCastleBcpkixJdk18onVersion=1.84 junitApiVersion=5.10.0 junitEngineVersion=5.10.0 googleJavaFormatVersion=1.7 From 3e71f472c80b2c60bb8e424f05223c1915ff0151 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Fri, 10 Jul 2026 14:40:56 +0200 Subject: [PATCH 139/148] chore: release version 10.15.1 (#1925) --- .codegen.json | 2 +- CHANGELOG.md | 7 +++++++ build.gradle | 2 +- .../java/com/box/sdkgen/networking/version/Version.java | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index d06ddfc6a..612dd3ba6 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "66be199", "specHash": "131c54a", "version": "10.15.0" } +{ "engineHash": "66be199", "specHash": "131c54a", "version": "10.15.1" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 6346891de..dc437077c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [10.15.1](https://github.com/box/box-java-sdk/compare/v10.15.0...v10.15.1) (2026-07-10) + + +### Bug Fixes + +* Bump `Bouncy Castle` to fix CVE in Java (box/box-codegen[#972](https://github.com/box/box-java-sdk/issues/972)) ([#1918](https://github.com/box/box-java-sdk/issues/1918)) ([4441f03](https://github.com/box/box-java-sdk/commit/4441f037afaf148b300466a23818108a364457ab)) + ## [10.15.0](https://github.com/box/box-java-sdk/compare/v10.14.0...v10.15.0) (2026-07-09) diff --git a/build.gradle b/build.gradle index 84513043b..6406f9a7e 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ plugins { } group = "com.box" archivesBaseName = "box-java-sdk" -version = "10.15.0" +version = "10.15.1" java { sourceCompatibility = JavaVersion.toVersion(libraryJavaVersion) targetCompatibility = JavaVersion.toVersion(libraryJavaVersion) diff --git a/src/main/java/com/box/sdkgen/networking/version/Version.java b/src/main/java/com/box/sdkgen/networking/version/Version.java index a902bea5e..7d49ce5e5 100644 --- a/src/main/java/com/box/sdkgen/networking/version/Version.java +++ b/src/main/java/com/box/sdkgen/networking/version/Version.java @@ -3,6 +3,6 @@ public class Version { public static String getVersion() { - return "10.15.0"; + return "10.15.1"; } } From f2167116cc3a84782b89984abbbd9d75fc7cfc91 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 15 Jul 2026 10:51:33 +0200 Subject: [PATCH 140/148] fix: Fix broken readme link (box/box-codegen#974) (#1929) --- .codegen.json | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.codegen.json b/.codegen.json index 612dd3ba6..bedd04b95 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "66be199", "specHash": "131c54a", "version": "10.15.1" } +{ "engineHash": "7601181", "specHash": "54953fe", "version": "10.15.1" } diff --git a/README.md b/README.md index 755b313db..123549c76 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ In v5 of the Box Java SDK, we are introducing a version that consolidates both t and the new generated package (`com.box.sdkgen`). This allows developers to use both packages simultaneously within a single project. The codebase for v5 of the Box Java SDK is currently available on the [combined-sdk](https://github.com/box/box-java-sdk/tree/combined-sdk) branch. -Migration guide which would help with migration from `com.box.sdk` to `com.box.sdkgen` can be found [here](./migration-guides/from-com.box.sdk-to-com.box.sdkgen.md). +Migration guide which would help with migration from `com.box.sdk` to `com.box.sdkgen` can be found [here](./migration-guides/from-com-box-sdk-to-com-box-sdkgen.md). Version v5 is intended for: From b508245f88b8af5e861e7f03c03c711119900cba Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 15 Jul 2026 11:24:59 +0200 Subject: [PATCH 141/148] chore: release version 10.15.2 (#1930) --- .codegen.json | 2 +- CHANGELOG.md | 7 +++++++ build.gradle | 2 +- .../java/com/box/sdkgen/networking/version/Version.java | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index bedd04b95..3d5a94ee8 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "7601181", "specHash": "54953fe", "version": "10.15.1" } +{ "engineHash": "7601181", "specHash": "54953fe", "version": "10.15.2" } diff --git a/CHANGELOG.md b/CHANGELOG.md index dc437077c..270e993d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [10.15.2](https://github.com/box/box-java-sdk/compare/v10.15.1...v10.15.2) (2026-07-15) + + +### Bug Fixes + +* Fix broken readme link (box/box-codegen[#974](https://github.com/box/box-java-sdk/issues/974)) ([#1929](https://github.com/box/box-java-sdk/issues/1929)) ([f216711](https://github.com/box/box-java-sdk/commit/f2167116cc3a84782b89984abbbd9d75fc7cfc91)) + ### [10.15.1](https://github.com/box/box-java-sdk/compare/v10.15.0...v10.15.1) (2026-07-10) diff --git a/build.gradle b/build.gradle index 6406f9a7e..a90054871 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ plugins { } group = "com.box" archivesBaseName = "box-java-sdk" -version = "10.15.1" +version = "10.15.2" java { sourceCompatibility = JavaVersion.toVersion(libraryJavaVersion) targetCompatibility = JavaVersion.toVersion(libraryJavaVersion) diff --git a/src/main/java/com/box/sdkgen/networking/version/Version.java b/src/main/java/com/box/sdkgen/networking/version/Version.java index 7d49ce5e5..b300ab41c 100644 --- a/src/main/java/com/box/sdkgen/networking/version/Version.java +++ b/src/main/java/com/box/sdkgen/networking/version/Version.java @@ -3,6 +3,6 @@ public class Version { public static String getVersion() { - return "10.15.1"; + return "10.15.2"; } } From bf8aaaab213b85d704a2735e6ef65a91f5225386 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Fri, 31 Jul 2026 13:42:31 +0200 Subject: [PATCH 142/148] feat: Support query APIs (box/box-openapi#610) (#1938) --- .codegen.json | 2 +- docs/README.md | 1 + docs/query.md | 63 ++++++ .../java/com/box/sdkgen/client/BoxClient.java | 11 + .../CreateQueryInsightV2026R0Headers.java | 68 ++++++ .../query/CreateQueryV2026R0Headers.java | 68 ++++++ .../sdkgen/managers/query/QueryManager.java | 162 ++++++++++++++ .../box/sdkgen/schemas/filefull/FileFull.java | 202 +++++++++++++++++- ...ullAllowedSharedLinkAccessLevelsField.java | 66 ++++++ .../sdkgen/schemas/folderfull/FolderFull.java | 38 +++- .../MetadataQueryResultItem.java | 19 ++ .../RecentItemResource.java | 23 ++ .../searchresultitem/SearchResultItem.java | 23 ++ .../SearchResultWithSharedLinkItem.java | 23 ++ .../QueryAncestorReferenceV2026R0.java | 65 ++++++ .../QueryInsightEntryV2026R0.java | 107 ++++++++++ .../QueryInsightEntryV2026R0TypeField.java | 66 ++++++ .../QueryInsightMetricResultV2026R0.java | 66 ++++++ .../QueryInsightsGroupByV2026R0.java | 93 ++++++++ .../QueryInsightsMetricDefinitionV2026R0.java | 84 ++++++++ ...ightsMetricDefinitionV2026R0TypeField.java | 68 ++++++ .../QueryInsightsRequestBodyV2026R0.java | 73 +++++++ ...yInsightsRequestBodyV2026R0QueryField.java | 149 +++++++++++++ .../QueryInsightsV2026R0.java | 50 +++++ .../QueryOrderByV2026R0.java | 80 +++++++ .../QueryOrderByV2026R0DirectionField.java | 65 ++++++ .../QueryRequestBodyV2026R0.java | 172 +++++++++++++++ .../QueryRequestBodyV2026R0QueryField.java | 122 +++++++++++ .../QueryResultEntryV2026R0.java | 113 ++++++++++ .../QueryResultsV2026R0.java | 121 +++++++++++ .../box/sdkgen/schemas/weblink/WebLink.java | 132 +++++++++++- ...inkAllowedSharedLinkAccessLevelsField.java | 66 ++++++ 32 files changed, 2451 insertions(+), 10 deletions(-) create mode 100644 docs/query.md create mode 100644 src/main/java/com/box/sdkgen/managers/query/CreateQueryInsightV2026R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/query/CreateQueryV2026R0Headers.java create mode 100644 src/main/java/com/box/sdkgen/managers/query/QueryManager.java create mode 100644 src/main/java/com/box/sdkgen/schemas/filefull/FileFullAllowedSharedLinkAccessLevelsField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/queryancestorreferencev2026r0/QueryAncestorReferenceV2026R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightentryv2026r0/QueryInsightEntryV2026R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightentryv2026r0/QueryInsightEntryV2026R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightmetricresultv2026r0/QueryInsightMetricResultV2026R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightsgroupbyv2026r0/QueryInsightsGroupByV2026R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightsmetricdefinitionv2026r0/QueryInsightsMetricDefinitionV2026R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightsmetricdefinitionv2026r0/QueryInsightsMetricDefinitionV2026R0TypeField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightsrequestbodyv2026r0/QueryInsightsRequestBodyV2026R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightsrequestbodyv2026r0/QueryInsightsRequestBodyV2026R0QueryField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightsv2026r0/QueryInsightsV2026R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/queryorderbyv2026r0/QueryOrderByV2026R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/queryorderbyv2026r0/QueryOrderByV2026R0DirectionField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/queryrequestbodyv2026r0/QueryRequestBodyV2026R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/queryrequestbodyv2026r0/QueryRequestBodyV2026R0QueryField.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/queryresultentryv2026r0/QueryResultEntryV2026R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/v2026r0/queryresultsv2026r0/QueryResultsV2026R0.java create mode 100644 src/main/java/com/box/sdkgen/schemas/weblink/WebLinkAllowedSharedLinkAccessLevelsField.java diff --git a/.codegen.json b/.codegen.json index 3d5a94ee8..019b48732 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "7601181", "specHash": "54953fe", "version": "10.15.2" } +{ "engineHash": "2cee311", "specHash": "cc375ad", "version": "10.15.2" } diff --git a/docs/README.md b/docs/README.md index 1257ffc42..c41719199 100644 --- a/docs/README.md +++ b/docs/README.md @@ -62,6 +62,7 @@ the SDK are available by topic: * [Metadatataxonomies](metadatataxonomies.md) * [Metadatatemplates](metadatatemplates.md) * [Notes](notes.md) +* [Query](query.md) * [Recentitems](recentitems.md) * [Retentionpolicies](retentionpolicies.md) * [Retentionpolicyassignments](retentionpolicyassignments.md) diff --git a/docs/query.md b/docs/query.md new file mode 100644 index 000000000..97ba71b71 --- /dev/null +++ b/docs/query.md @@ -0,0 +1,63 @@ +# QueryManager + + +- [Query for Box items](#query-for-box-items) +- [Create insights for Box items](#create-insights-for-box-items) + +## Query for Box items + +Runs a query to discover Box items using a logical predicate that can filter +across item fields and metadata templates. Results can be sorted, paginated, +and shaped to include additional item or metadata fields. + +This operation is performed by calling function `createQueryV2026R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2026.0/post-query/). + +*Currently we don't have an example for calling `createQueryV2026R0` in integration tests* + +### Arguments + +- requestBody `QueryRequestBodyV2026R0` + - Request body of createQueryV2026R0 method +- headers `CreateQueryV2026R0Headers` + - Headers of createQueryV2026R0 method + + +### Returns + +This function returns a value of type `QueryResultsV2026R0`. + +Returns a paginated list of items matching the query. + + +## Create insights for Box items + +Computes aggregated metrics over Box items matching a query predicate. +Filters are applied first, followed by optional grouping, after which the +requested metrics (such as `sum`, `avg`, `min`, `max`, and `count`) are +computed for each resulting group or over the entire filtered dataset. + +This operation is performed by calling function `createQueryInsightV2026R0`. + +See the endpoint docs at +[API Reference](https://developer.box.com/reference/v2026.0/post-query-insights/). + +*Currently we don't have an example for calling `createQueryInsightV2026R0` in integration tests* + +### Arguments + +- requestBody `QueryInsightsRequestBodyV2026R0` + - Request body of createQueryInsightV2026R0 method +- headers `CreateQueryInsightV2026R0Headers` + - Headers of createQueryInsightV2026R0 method + + +### Returns + +This function returns a value of type `QueryInsightsV2026R0`. + +Returns the computed insight entries. + + diff --git a/src/main/java/com/box/sdkgen/client/BoxClient.java b/src/main/java/com/box/sdkgen/client/BoxClient.java index 9988474df..ca6d8f7d3 100644 --- a/src/main/java/com/box/sdkgen/client/BoxClient.java +++ b/src/main/java/com/box/sdkgen/client/BoxClient.java @@ -52,6 +52,7 @@ import com.box.sdkgen.managers.metadatataxonomies.MetadataTaxonomiesManager; import com.box.sdkgen.managers.metadatatemplates.MetadataTemplatesManager; import com.box.sdkgen.managers.notes.NotesManager; +import com.box.sdkgen.managers.query.QueryManager; import com.box.sdkgen.managers.recentitems.RecentItemsManager; import com.box.sdkgen.managers.retentionpolicies.RetentionPoliciesManager; import com.box.sdkgen.managers.retentionpolicyassignments.RetentionPolicyAssignmentsManager; @@ -276,6 +277,8 @@ public class BoxClient { public final NotesManager notes; + public final QueryManager query; + public BoxClient(Authentication auth) { this.auth = auth; this.networkSession = new NetworkSession.Builder().baseUrls(new BaseUrls()).build(); @@ -631,6 +634,8 @@ public BoxClient(Authentication auth) { .build(); this.notes = new NotesManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.query = + new QueryManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); } protected BoxClient(Builder builder) { @@ -988,6 +993,8 @@ protected BoxClient(Builder builder) { .build(); this.notes = new NotesManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); + this.query = + new QueryManager.Builder().auth(this.auth).networkSession(this.networkSession).build(); } /** @@ -1451,6 +1458,10 @@ public NotesManager getNotes() { return notes; } + public QueryManager getQuery() { + return query; + } + public static class Builder { protected final Authentication auth; diff --git a/src/main/java/com/box/sdkgen/managers/query/CreateQueryInsightV2026R0Headers.java b/src/main/java/com/box/sdkgen/managers/query/CreateQueryInsightV2026R0Headers.java new file mode 100644 index 000000000..270d0bc36 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/query/CreateQueryInsightV2026R0Headers.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.managers.query; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2026r0.boxversionheaderv2026r0.BoxVersionHeaderV2026R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class CreateQueryInsightV2026R0Headers { + + /** Version header. */ + public EnumWrapper boxVersion; + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public CreateQueryInsightV2026R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2026R0._2026_0); + this.extraHeaders = mapOf(); + } + + protected CreateQueryInsightV2026R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() {} + + public Builder boxVersion(BoxVersionHeaderV2026R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateQueryInsightV2026R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2026R0._2026_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } + return new CreateQueryInsightV2026R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/query/CreateQueryV2026R0Headers.java b/src/main/java/com/box/sdkgen/managers/query/CreateQueryV2026R0Headers.java new file mode 100644 index 000000000..baca10638 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/query/CreateQueryV2026R0Headers.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.managers.query; + +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.parameters.v2026r0.boxversionheaderv2026r0.BoxVersionHeaderV2026R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import java.util.Map; + +public class CreateQueryV2026R0Headers { + + /** Version header. */ + public EnumWrapper boxVersion; + + /** Extra headers that will be included in the HTTP request. */ + public Map extraHeaders; + + public CreateQueryV2026R0Headers() { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2026R0._2026_0); + this.extraHeaders = mapOf(); + } + + protected CreateQueryV2026R0Headers(Builder builder) { + this.boxVersion = builder.boxVersion; + this.extraHeaders = builder.extraHeaders; + } + + public EnumWrapper getBoxVersion() { + return boxVersion; + } + + public Map getExtraHeaders() { + return extraHeaders; + } + + public static class Builder { + + protected EnumWrapper boxVersion; + + protected Map extraHeaders; + + public Builder() {} + + public Builder boxVersion(BoxVersionHeaderV2026R0 boxVersion) { + this.boxVersion = new EnumWrapper(boxVersion); + return this; + } + + public Builder boxVersion(EnumWrapper boxVersion) { + this.boxVersion = boxVersion; + return this; + } + + public Builder extraHeaders(Map extraHeaders) { + this.extraHeaders = extraHeaders; + return this; + } + + public CreateQueryV2026R0Headers build() { + if (this.boxVersion == null) { + this.boxVersion = new EnumWrapper(BoxVersionHeaderV2026R0._2026_0); + } + if (this.extraHeaders == null) { + this.extraHeaders = mapOf(); + } + return new CreateQueryV2026R0Headers(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/managers/query/QueryManager.java b/src/main/java/com/box/sdkgen/managers/query/QueryManager.java new file mode 100644 index 000000000..843443118 --- /dev/null +++ b/src/main/java/com/box/sdkgen/managers/query/QueryManager.java @@ -0,0 +1,162 @@ +package com.box.sdkgen.managers.query; + +import static com.box.sdkgen.internal.utils.UtilsManager.convertToString; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; +import static com.box.sdkgen.internal.utils.UtilsManager.mergeMaps; +import static com.box.sdkgen.internal.utils.UtilsManager.prepareParams; + +import com.box.sdkgen.networking.auth.Authentication; +import com.box.sdkgen.networking.fetchoptions.FetchOptions; +import com.box.sdkgen.networking.fetchoptions.ResponseFormat; +import com.box.sdkgen.networking.fetchresponse.FetchResponse; +import com.box.sdkgen.networking.network.NetworkSession; +import com.box.sdkgen.schemas.v2026r0.queryinsightsrequestbodyv2026r0.QueryInsightsRequestBodyV2026R0; +import com.box.sdkgen.schemas.v2026r0.queryinsightsv2026r0.QueryInsightsV2026R0; +import com.box.sdkgen.schemas.v2026r0.queryrequestbodyv2026r0.QueryRequestBodyV2026R0; +import com.box.sdkgen.schemas.v2026r0.queryresultsv2026r0.QueryResultsV2026R0; +import com.box.sdkgen.serialization.json.JsonManager; +import java.util.Map; + +public class QueryManager { + + public Authentication auth; + + public NetworkSession networkSession; + + public QueryManager() { + this.networkSession = new NetworkSession(); + } + + protected QueryManager(Builder builder) { + this.auth = builder.auth; + this.networkSession = builder.networkSession; + } + + /** + * Runs a query to discover Box items using a logical predicate that can filter across item fields + * and metadata templates. Results can be sorted, paginated, and shaped to include additional item + * or metadata fields. + * + * @param requestBody Request body of createQueryV2026R0 method + */ + public QueryResultsV2026R0 createQueryV2026R0(QueryRequestBodyV2026R0 requestBody) { + return createQueryV2026R0(requestBody, new CreateQueryV2026R0Headers()); + } + + /** + * Runs a query to discover Box items using a logical predicate that can filter across item fields + * and metadata templates. Results can be sorted, paginated, and shaped to include additional item + * or metadata fields. + * + * @param requestBody Request body of createQueryV2026R0 method + * @param headers Headers of createQueryV2026R0 method + */ + public QueryResultsV2026R0 createQueryV2026R0( + QueryRequestBodyV2026R0 requestBody, CreateQueryV2026R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", this.networkSession.getBaseUrls().getBaseUrl(), "/2.0/query"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), QueryResultsV2026R0.class); + } + + /** + * Computes aggregated metrics over Box items matching a query predicate. Filters are applied + * first, followed by optional grouping, after which the requested metrics (such as `sum`, `avg`, + * `min`, `max`, and `count`) are computed for each resulting group or over the entire filtered + * dataset. + * + * @param requestBody Request body of createQueryInsightV2026R0 method + */ + public QueryInsightsV2026R0 createQueryInsightV2026R0( + QueryInsightsRequestBodyV2026R0 requestBody) { + return createQueryInsightV2026R0(requestBody, new CreateQueryInsightV2026R0Headers()); + } + + /** + * Computes aggregated metrics over Box items matching a query predicate. Filters are applied + * first, followed by optional grouping, after which the requested metrics (such as `sum`, `avg`, + * `min`, `max`, and `count`) are computed for each resulting group or over the entire filtered + * dataset. + * + * @param requestBody Request body of createQueryInsightV2026R0 method + * @param headers Headers of createQueryInsightV2026R0 method + */ + public QueryInsightsV2026R0 createQueryInsightV2026R0( + QueryInsightsRequestBodyV2026R0 requestBody, CreateQueryInsightV2026R0Headers headers) { + Map headersMap = + prepareParams( + mergeMaps( + mapOf(entryOf("box-version", convertToString(headers.getBoxVersion()))), + headers.getExtraHeaders())); + FetchResponse response = + this.networkSession + .getNetworkClient() + .fetch( + new FetchOptions.Builder( + String.join( + "", + this.networkSession.getBaseUrls().getBaseUrl(), + "/2.0/query_insights"), + "POST") + .headers(headersMap) + .data(JsonManager.serialize(requestBody)) + .contentType("application/json") + .responseFormat(ResponseFormat.JSON) + .auth(this.auth) + .networkSession(this.networkSession) + .build()); + return JsonManager.deserialize(response.getData(), QueryInsightsV2026R0.class); + } + + public Authentication getAuth() { + return auth; + } + + public NetworkSession getNetworkSession() { + return networkSession; + } + + public static class Builder { + + protected Authentication auth; + + protected NetworkSession networkSession; + + public Builder() {} + + public Builder auth(Authentication auth) { + this.auth = auth; + return this; + } + + public Builder networkSession(NetworkSession networkSession) { + this.networkSession = networkSession; + return this; + } + + public QueryManager build() { + if (this.networkSession == null) { + this.networkSession = new NetworkSession(); + } + return new QueryManager(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFull.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFull.java index 7e9a52ed4..a72cfbd0a 100644 --- a/src/main/java/com/box/sdkgen/schemas/filefull/FileFull.java +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFull.java @@ -2,6 +2,7 @@ import com.box.sdkgen.internal.Nullable; import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.collection.Collection; import com.box.sdkgen.schemas.file.File; import com.box.sdkgen.schemas.file.FileItemStatusField; import com.box.sdkgen.schemas.file.FilePathCollectionField; @@ -125,6 +126,54 @@ public class FileFull extends File { @JsonProperty("is_associated_with_app_item") protected Boolean isAssociatedWithAppItem; + /** + * The collections that this file belongs to. + * + *

    For more information, see the [collections + * guide](https://developer.box.com/guides/collections). + */ + protected List collections; + + /** + * Whether the file's binary content is eligible to be downloaded. + * + *

    This is a content-level flag and does not reflect whether the current user is authorized to + * download the file. Use `permissions.can_download`, when available, for that. + */ + @JsonProperty("is_download_available") + protected Boolean isDownloadAvailable; + + /** + * A pre-authorized, expiring URL for directly downloading the file's content. Requires + * authentication and is valid only for the current session. + * + *

    This field is only returned for files, not folders or web links. + */ + @JsonProperty("download_url") + protected String downloadUrl; + + /** + * A stable API URL for the file content endpoint, `/2.0/files/{id}/content`. Unlike + * `download_url`, authorization is evaluated when the URL is requested with a valid access token. + * + *

    This field is only returned for files, not folders or web links. + */ + @JsonProperty("authenticated_download_url") + protected String authenticatedDownloadUrl; + + /** + * The shared link access levels the authenticated user is allowed to use when creating or + * updating a shared link for this file. + * + *

    The list depends on item policy and user authorization, so it may be narrower than the + * levels available to the owner. An empty array means no access level is available to this user. + */ + @JsonDeserialize(using = AllowedSharedLinkAccessLevelsDeserializer.class) + @JsonSerialize(using = AllowedSharedLinkAccessLevelsSerializer.class) + @JsonProperty("allowed_shared_link_access_levels") + protected List> + allowedSharedLinkAccessLevels; + public FileFull(@JsonProperty("id") String id) { super(id); } @@ -152,6 +201,11 @@ protected FileFull(Builder builder) { this.dispositionAt = builder.dispositionAt; this.sharedLinkPermissionOptions = builder.sharedLinkPermissionOptions; this.isAssociatedWithAppItem = builder.isAssociatedWithAppItem; + this.collections = builder.collections; + this.isDownloadAvailable = builder.isDownloadAvailable; + this.downloadUrl = builder.downloadUrl; + this.authenticatedDownloadUrl = builder.authenticatedDownloadUrl; + this.allowedSharedLinkAccessLevels = builder.allowedSharedLinkAccessLevels; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -240,6 +294,27 @@ public Boolean getIsAssociatedWithAppItem() { return isAssociatedWithAppItem; } + public List getCollections() { + return collections; + } + + public Boolean getIsDownloadAvailable() { + return isDownloadAvailable; + } + + public String getDownloadUrl() { + return downloadUrl; + } + + public String getAuthenticatedDownloadUrl() { + return authenticatedDownloadUrl; + } + + public List> + getAllowedSharedLinkAccessLevels() { + return allowedSharedLinkAccessLevels; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -291,7 +366,12 @@ public boolean equals(Object o) { && Objects.equals(uploaderDisplayName, casted.uploaderDisplayName) && Objects.equals(dispositionAt, casted.dispositionAt) && Objects.equals(sharedLinkPermissionOptions, casted.sharedLinkPermissionOptions) - && Objects.equals(isAssociatedWithAppItem, casted.isAssociatedWithAppItem); + && Objects.equals(isAssociatedWithAppItem, casted.isAssociatedWithAppItem) + && Objects.equals(collections, casted.collections) + && Objects.equals(isDownloadAvailable, casted.isDownloadAvailable) + && Objects.equals(downloadUrl, casted.downloadUrl) + && Objects.equals(authenticatedDownloadUrl, casted.authenticatedDownloadUrl) + && Objects.equals(allowedSharedLinkAccessLevels, casted.allowedSharedLinkAccessLevels); } @Override @@ -339,7 +419,12 @@ public int hashCode() { uploaderDisplayName, dispositionAt, sharedLinkPermissionOptions, - isAssociatedWithAppItem); + isAssociatedWithAppItem, + collections, + isDownloadAvailable, + downloadUrl, + authenticatedDownloadUrl, + allowedSharedLinkAccessLevels); } @Override @@ -516,6 +601,26 @@ public String toString() { + "isAssociatedWithAppItem='" + isAssociatedWithAppItem + '\'' + + ", " + + "collections='" + + collections + + '\'' + + ", " + + "isDownloadAvailable='" + + isDownloadAvailable + + '\'' + + ", " + + "downloadUrl='" + + downloadUrl + + '\'' + + ", " + + "authenticatedDownloadUrl='" + + authenticatedDownloadUrl + + '\'' + + ", " + + "allowedSharedLinkAccessLevels='" + + allowedSharedLinkAccessLevels + + '\'' + "}"; } @@ -564,6 +669,17 @@ public static class Builder extends File.Builder { protected Boolean isAssociatedWithAppItem; + protected List collections; + + protected Boolean isDownloadAvailable; + + protected String downloadUrl; + + protected String authenticatedDownloadUrl; + + protected List> + allowedSharedLinkAccessLevels; + public Builder(String id) { super(id); } @@ -682,6 +798,34 @@ public Builder isAssociatedWithAppItem(Boolean isAssociatedWithAppItem) { return this; } + public Builder collections(List collections) { + this.collections = collections; + return this; + } + + public Builder isDownloadAvailable(Boolean isDownloadAvailable) { + this.isDownloadAvailable = isDownloadAvailable; + return this; + } + + public Builder downloadUrl(String downloadUrl) { + this.downloadUrl = downloadUrl; + return this; + } + + public Builder authenticatedDownloadUrl(String authenticatedDownloadUrl) { + this.authenticatedDownloadUrl = authenticatedDownloadUrl; + return this; + } + + public Builder allowedSharedLinkAccessLevels( + List allowedSharedLinkAccessLevels) { + this.allowedSharedLinkAccessLevels = + EnumWrapper.wrapValuableEnumList( + allowedSharedLinkAccessLevels, FileFullAllowedSharedLinkAccessLevelsField.class); + return this; + } + @Override public Builder etag(String etag) { this.etag = etag; @@ -938,4 +1082,58 @@ public void serialize( gen.writeEndArray(); } } + + public static class AllowedSharedLinkAccessLevelsDeserializer + extends JsonDeserializer>> { + + public final JsonDeserializer> + elementDeserializer; + + public AllowedSharedLinkAccessLevelsDeserializer() { + super(); + this.elementDeserializer = + new FileFullAllowedSharedLinkAccessLevelsField + .FileFullAllowedSharedLinkAccessLevelsFieldDeserializer(); + } + + @Override + public List> deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + JsonNode node = p.getCodec().readTree(p); + List> elements = new ArrayList<>(); + for (JsonNode item : node) { + JsonParser pa = item.traverse(p.getCodec()); + pa.nextToken(); + elements.add(elementDeserializer.deserialize(pa, ctxt)); + } + return elements; + } + } + + public static class AllowedSharedLinkAccessLevelsSerializer + extends JsonSerializer>> { + + public final JsonSerializer> + elementSerializer; + + public AllowedSharedLinkAccessLevelsSerializer() { + super(); + this.elementSerializer = + new FileFullAllowedSharedLinkAccessLevelsField + .FileFullAllowedSharedLinkAccessLevelsFieldSerializer(); + } + + @Override + public void serialize( + List> value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeStartArray(); + for (EnumWrapper item : value) { + elementSerializer.serialize(item, gen, serializers); + } + gen.writeEndArray(); + } + } } diff --git a/src/main/java/com/box/sdkgen/schemas/filefull/FileFullAllowedSharedLinkAccessLevelsField.java b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullAllowedSharedLinkAccessLevelsField.java new file mode 100644 index 000000000..25b7e50cb --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/filefull/FileFullAllowedSharedLinkAccessLevelsField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.schemas.filefull; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum FileFullAllowedSharedLinkAccessLevelsField implements Valuable { + OPEN("open"), + COMPANY("company"), + COLLABORATORS("collaborators"); + + private final String value; + + FileFullAllowedSharedLinkAccessLevelsField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class FileFullAllowedSharedLinkAccessLevelsFieldDeserializer + extends JsonDeserializer> { + + public FileFullAllowedSharedLinkAccessLevelsFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(FileFullAllowedSharedLinkAccessLevelsField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class FileFullAllowedSharedLinkAccessLevelsFieldSerializer + extends JsonSerializer> { + + public FileFullAllowedSharedLinkAccessLevelsFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFull.java b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFull.java index 32b0b5d94..93cb2a8a6 100644 --- a/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFull.java +++ b/src/main/java/com/box/sdkgen/schemas/folderfull/FolderFull.java @@ -1,5 +1,6 @@ package com.box.sdkgen.schemas.folderfull; +import com.box.sdkgen.schemas.collection.Collection; import com.box.sdkgen.schemas.folder.Folder; import com.box.sdkgen.schemas.folder.FolderFolderUploadEmailField; import com.box.sdkgen.schemas.folder.FolderItemStatusField; @@ -60,10 +61,11 @@ public class FolderFull extends Folder { protected Boolean isCollaborationRestrictedToEnterprise; /** - * A list of access levels that are available for this folder. + * The shared link access levels the authenticated user is allowed to use when creating or + * updating a shared link for this folder. * - *

    For some folders, like the root folder, this will always be an empty list as sharing is not - * allowed at that level. + *

    The list depends on item policy and user authorization. For some folders, like the root + * folder, this is always empty as sharing is not allowed at that level. */ @JsonDeserialize(using = AllowedSharedLinkAccessLevelsDeserializer.class) @JsonSerialize(using = AllowedSharedLinkAccessLevelsSerializer.class) @@ -106,6 +108,14 @@ public class FolderFull extends Folder { @JsonProperty("is_associated_with_app_item") protected Boolean isAssociatedWithAppItem; + /** + * The collections that this folder belongs to. + * + *

    For more information, see the [collections + * guide](https://developer.box.com/guides/collections). + */ + protected List collections; + public FolderFull(@JsonProperty("id") String id) { super(id); } @@ -127,6 +137,7 @@ protected FolderFull(Builder builder) { this.canNonOwnersViewCollaborators = builder.canNonOwnersViewCollaborators; this.classification = builder.classification; this.isAssociatedWithAppItem = builder.isAssociatedWithAppItem; + this.collections = builder.collections; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -191,6 +202,10 @@ public Boolean getIsAssociatedWithAppItem() { return isAssociatedWithAppItem; } + public List getCollections() { + return collections; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -237,7 +252,8 @@ public boolean equals(Object o) { && Objects.equals(isAccessibleViaSharedLink, casted.isAccessibleViaSharedLink) && Objects.equals(canNonOwnersViewCollaborators, casted.canNonOwnersViewCollaborators) && Objects.equals(classification, casted.classification) - && Objects.equals(isAssociatedWithAppItem, casted.isAssociatedWithAppItem); + && Objects.equals(isAssociatedWithAppItem, casted.isAssociatedWithAppItem) + && Objects.equals(collections, casted.collections); } @Override @@ -279,7 +295,8 @@ public int hashCode() { isAccessibleViaSharedLink, canNonOwnersViewCollaborators, classification, - isAssociatedWithAppItem); + isAssociatedWithAppItem, + collections); } @Override @@ -432,6 +449,10 @@ public String toString() { + "isAssociatedWithAppItem='" + isAssociatedWithAppItem + '\'' + + ", " + + "collections='" + + collections + + '\'' + "}"; } @@ -468,6 +489,8 @@ public static class Builder extends Folder.Builder { protected Boolean isAssociatedWithAppItem; + protected List collections; + public Builder(String id) { super(id); } @@ -558,6 +581,11 @@ public Builder isAssociatedWithAppItem(Boolean isAssociatedWithAppItem) { return this; } + public Builder collections(List collections) { + this.collections = collections; + return this; + } + @Override public Builder etag(String etag) { this.etag = etag; diff --git a/src/main/java/com/box/sdkgen/schemas/metadataqueryresultitem/MetadataQueryResultItem.java b/src/main/java/com/box/sdkgen/schemas/metadataqueryresultitem/MetadataQueryResultItem.java index 23a2fef57..d4e8ac451 100644 --- a/src/main/java/com/box/sdkgen/schemas/metadataqueryresultitem/MetadataQueryResultItem.java +++ b/src/main/java/com/box/sdkgen/schemas/metadataqueryresultitem/MetadataQueryResultItem.java @@ -1,6 +1,7 @@ package com.box.sdkgen.schemas.metadataqueryresultitem; import com.box.sdkgen.internal.OneOfTwo; +import com.box.sdkgen.schemas.collection.Collection; import com.box.sdkgen.schemas.filefull.FileFull; import com.box.sdkgen.schemas.folderfull.FolderFull; import com.box.sdkgen.schemas.foldermini.FolderMini; @@ -34,6 +35,10 @@ public class MetadataQueryResultItem extends OneOfTwo { protected final Boolean isAssociatedWithAppItem; + protected final List collections; + + protected final List allowedSharedLinkAccessLevels; + protected final String description; protected final Long size; @@ -78,6 +83,9 @@ public MetadataQueryResultItem(FileFull fileFull) { this.isExternallyOwned = fileFull.getIsExternallyOwned(); this.hasCollaborations = fileFull.getHasCollaborations(); this.isAssociatedWithAppItem = fileFull.getIsAssociatedWithAppItem(); + this.collections = fileFull.getCollections(); + this.allowedSharedLinkAccessLevels = + EnumWrapper.convertToString(fileFull.getAllowedSharedLinkAccessLevels()); this.description = fileFull.getDescription(); this.size = fileFull.getSize(); this.createdAt = fileFull.getCreatedAt(); @@ -106,6 +114,9 @@ public MetadataQueryResultItem(FolderFull folderFull) { this.isExternallyOwned = folderFull.getIsExternallyOwned(); this.hasCollaborations = folderFull.getHasCollaborations(); this.isAssociatedWithAppItem = folderFull.getIsAssociatedWithAppItem(); + this.collections = folderFull.getCollections(); + this.allowedSharedLinkAccessLevels = + EnumWrapper.convertToString(folderFull.getAllowedSharedLinkAccessLevels()); this.description = folderFull.getDescription(); this.size = folderFull.getSize(); this.createdAt = folderFull.getCreatedAt(); @@ -166,6 +177,14 @@ public boolean getIsAssociatedWithAppItem() { return isAssociatedWithAppItem; } + public List getCollections() { + return collections; + } + + public List getAllowedSharedLinkAccessLevels() { + return allowedSharedLinkAccessLevels; + } + public String getDescription() { return description; } diff --git a/src/main/java/com/box/sdkgen/schemas/recentitemresource/RecentItemResource.java b/src/main/java/com/box/sdkgen/schemas/recentitemresource/RecentItemResource.java index 2bc62d002..2694351e0 100644 --- a/src/main/java/com/box/sdkgen/schemas/recentitemresource/RecentItemResource.java +++ b/src/main/java/com/box/sdkgen/schemas/recentitemresource/RecentItemResource.java @@ -1,6 +1,7 @@ package com.box.sdkgen.schemas.recentitemresource; import com.box.sdkgen.internal.OneOfThree; +import com.box.sdkgen.schemas.collection.Collection; import com.box.sdkgen.schemas.filefull.FileFull; import com.box.sdkgen.schemas.folderfull.FolderFull; import com.box.sdkgen.schemas.foldermini.FolderMini; @@ -17,11 +18,16 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.IOException; import java.time.OffsetDateTime; +import java.util.List; @JsonDeserialize(using = RecentItemResource.RecentItemResourceDeserializer.class) @JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) public class RecentItemResource extends OneOfThree { + protected final List collections; + + protected final List allowedSharedLinkAccessLevels; + protected final String description; protected final OffsetDateTime createdAt; @@ -54,6 +60,9 @@ public class RecentItemResource extends OneOfThree getCollections() { + return collections; + } + + public List getAllowedSharedLinkAccessLevels() { + return allowedSharedLinkAccessLevels; + } + public String getDescription() { return description; } diff --git a/src/main/java/com/box/sdkgen/schemas/searchresultitem/SearchResultItem.java b/src/main/java/com/box/sdkgen/schemas/searchresultitem/SearchResultItem.java index dcd481ec4..ec74d9cd3 100644 --- a/src/main/java/com/box/sdkgen/schemas/searchresultitem/SearchResultItem.java +++ b/src/main/java/com/box/sdkgen/schemas/searchresultitem/SearchResultItem.java @@ -1,6 +1,7 @@ package com.box.sdkgen.schemas.searchresultitem; import com.box.sdkgen.internal.OneOfThree; +import com.box.sdkgen.schemas.collection.Collection; import com.box.sdkgen.schemas.filefull.FileFull; import com.box.sdkgen.schemas.folderfull.FolderFull; import com.box.sdkgen.schemas.foldermini.FolderMini; @@ -17,11 +18,16 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.IOException; import java.time.OffsetDateTime; +import java.util.List; @JsonDeserialize(using = SearchResultItem.SearchResultItemDeserializer.class) @JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) public class SearchResultItem extends OneOfThree { + protected final List collections; + + protected final List allowedSharedLinkAccessLevels; + protected final String description; protected final OffsetDateTime createdAt; @@ -54,6 +60,9 @@ public class SearchResultItem extends OneOfThree public SearchResultItem(FileFull fileFull) { super(fileFull, null, null); + this.collections = fileFull.getCollections(); + this.allowedSharedLinkAccessLevels = + EnumWrapper.convertToString(fileFull.getAllowedSharedLinkAccessLevels()); this.description = fileFull.getDescription(); this.createdAt = fileFull.getCreatedAt(); this.modifiedAt = fileFull.getModifiedAt(); @@ -73,6 +82,9 @@ public SearchResultItem(FileFull fileFull) { public SearchResultItem(FolderFull folderFull) { super(null, folderFull, null); + this.collections = folderFull.getCollections(); + this.allowedSharedLinkAccessLevels = + EnumWrapper.convertToString(folderFull.getAllowedSharedLinkAccessLevels()); this.description = folderFull.getDescription(); this.createdAt = folderFull.getCreatedAt(); this.modifiedAt = folderFull.getModifiedAt(); @@ -92,6 +104,9 @@ public SearchResultItem(FolderFull folderFull) { public SearchResultItem(WebLink webLink) { super(null, null, webLink); + this.collections = webLink.getCollections(); + this.allowedSharedLinkAccessLevels = + EnumWrapper.convertToString(webLink.getAllowedSharedLinkAccessLevels()); this.description = webLink.getDescription(); this.createdAt = webLink.getCreatedAt(); this.modifiedAt = webLink.getModifiedAt(); @@ -133,6 +148,14 @@ public WebLink getWebLink() { return value2; } + public List getCollections() { + return collections; + } + + public List getAllowedSharedLinkAccessLevels() { + return allowedSharedLinkAccessLevels; + } + public String getDescription() { return description; } diff --git a/src/main/java/com/box/sdkgen/schemas/searchresultwithsharedlinkitem/SearchResultWithSharedLinkItem.java b/src/main/java/com/box/sdkgen/schemas/searchresultwithsharedlinkitem/SearchResultWithSharedLinkItem.java index 15769f9cb..eb0b0ffbb 100644 --- a/src/main/java/com/box/sdkgen/schemas/searchresultwithsharedlinkitem/SearchResultWithSharedLinkItem.java +++ b/src/main/java/com/box/sdkgen/schemas/searchresultwithsharedlinkitem/SearchResultWithSharedLinkItem.java @@ -1,6 +1,7 @@ package com.box.sdkgen.schemas.searchresultwithsharedlinkitem; import com.box.sdkgen.internal.OneOfThree; +import com.box.sdkgen.schemas.collection.Collection; import com.box.sdkgen.schemas.filefull.FileFull; import com.box.sdkgen.schemas.folderfull.FolderFull; import com.box.sdkgen.schemas.foldermini.FolderMini; @@ -17,12 +18,17 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.IOException; import java.time.OffsetDateTime; +import java.util.List; @JsonDeserialize( using = SearchResultWithSharedLinkItem.SearchResultWithSharedLinkItemDeserializer.class) @JsonSerialize(using = OneOfThree.OneOfThreeSerializer.class) public class SearchResultWithSharedLinkItem extends OneOfThree { + protected final List collections; + + protected final List allowedSharedLinkAccessLevels; + protected final String description; protected final OffsetDateTime createdAt; @@ -55,6 +61,9 @@ public class SearchResultWithSharedLinkItem extends OneOfThree getCollections() { + return collections; + } + + public List getAllowedSharedLinkAccessLevels() { + return allowedSharedLinkAccessLevels; + } + public String getDescription() { return description; } diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/queryancestorreferencev2026r0/QueryAncestorReferenceV2026R0.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryancestorreferencev2026r0/QueryAncestorReferenceV2026R0.java new file mode 100644 index 000000000..01a0a36fa --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryancestorreferencev2026r0/QueryAncestorReferenceV2026R0.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.schemas.v2026r0.queryancestorreferencev2026r0; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** + * A reference to an ancestor entity used to restrict query results to that entity and its recursive + * descendants. + */ +@JsonFilter("nullablePropertyFilter") +public class QueryAncestorReferenceV2026R0 extends SerializableObject { + + /** The unique identifier of the ancestor entity. */ + protected final String id; + + /** The type of the ancestor entity. Possible value: folder. */ + protected final String type; + + public QueryAncestorReferenceV2026R0( + @JsonProperty("id") String id, @JsonProperty("type") String type) { + super(); + this.id = id; + this.type = type; + } + + public String getId() { + return id; + } + + public String getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QueryAncestorReferenceV2026R0 casted = (QueryAncestorReferenceV2026R0) o; + return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + return "QueryAncestorReferenceV2026R0{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightentryv2026r0/QueryInsightEntryV2026R0.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightentryv2026r0/QueryInsightEntryV2026R0.java new file mode 100644 index 000000000..fec73503c --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightentryv2026r0/QueryInsightEntryV2026R0.java @@ -0,0 +1,107 @@ +package com.box.sdkgen.schemas.v2026r0.queryinsightentryv2026r0; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2026r0.queryinsightmetricresultv2026r0.QueryInsightMetricResultV2026R0; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * A single computed insight entry, containing its grouping keys (if applicable) and the computed + * metrics. + */ +@JsonFilter("nullablePropertyFilter") +public class QueryInsightEntryV2026R0 extends SerializableObject { + + /** + * The grouping key values associated with the entry. Contains one value per `group_by` field for + * `group` entries, and is empty for `overall` and `other` entries. + */ + protected final List key; + + /** The type of insight entry, indicating how the associated metrics are aggregated. */ + @JsonDeserialize( + using = QueryInsightEntryV2026R0TypeField.QueryInsightEntryV2026R0TypeFieldDeserializer.class) + @JsonSerialize( + using = QueryInsightEntryV2026R0TypeField.QueryInsightEntryV2026R0TypeFieldSerializer.class) + protected final EnumWrapper type; + + /** + * A map of metric aliases to their computed results. For `other` entries, the count is reported + * under the `totalCountBeyondTopGroups` key. + */ + protected final Map metrics; + + public QueryInsightEntryV2026R0( + List key, + QueryInsightEntryV2026R0TypeField type, + Map metrics) { + super(); + this.key = key; + this.type = new EnumWrapper(type); + this.metrics = metrics; + } + + public QueryInsightEntryV2026R0( + @JsonProperty("key") List key, + @JsonProperty("type") EnumWrapper type, + @JsonProperty("metrics") Map metrics) { + super(); + this.key = key; + this.type = type; + this.metrics = metrics; + } + + public List getKey() { + return key; + } + + public EnumWrapper getType() { + return type; + } + + public Map getMetrics() { + return metrics; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QueryInsightEntryV2026R0 casted = (QueryInsightEntryV2026R0) o; + return Objects.equals(key, casted.key) + && Objects.equals(type, casted.type) + && Objects.equals(metrics, casted.metrics); + } + + @Override + public int hashCode() { + return Objects.hash(key, type, metrics); + } + + @Override + public String toString() { + return "QueryInsightEntryV2026R0{" + + "key='" + + key + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "metrics='" + + metrics + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightentryv2026r0/QueryInsightEntryV2026R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightentryv2026r0/QueryInsightEntryV2026R0TypeField.java new file mode 100644 index 000000000..d5218fdd1 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightentryv2026r0/QueryInsightEntryV2026R0TypeField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.schemas.v2026r0.queryinsightentryv2026r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum QueryInsightEntryV2026R0TypeField implements Valuable { + GROUP("group"), + OVERALL("overall"), + OTHER("other"); + + private final String value; + + QueryInsightEntryV2026R0TypeField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class QueryInsightEntryV2026R0TypeFieldDeserializer + extends JsonDeserializer> { + + public QueryInsightEntryV2026R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(QueryInsightEntryV2026R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class QueryInsightEntryV2026R0TypeFieldSerializer + extends JsonSerializer> { + + public QueryInsightEntryV2026R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightmetricresultv2026r0/QueryInsightMetricResultV2026R0.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightmetricresultv2026r0/QueryInsightMetricResultV2026R0.java new file mode 100644 index 000000000..8660e72f2 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightmetricresultv2026r0/QueryInsightMetricResultV2026R0.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.schemas.v2026r0.queryinsightmetricresultv2026r0; + +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Map; +import java.util.Objects; + +/** The computed result for a single metric, including the metric type and its computed value(s). */ +@JsonFilter("nullablePropertyFilter") +public class QueryInsightMetricResultV2026R0 extends SerializableObject { + + /** The metric type that was computed. */ + protected final String type; + + /** + * The computed metric result(s), keyed by the metric function (for example `sum`, `avg`, `min`, + * `max`, or `count`). + */ + protected final Map values; + + public QueryInsightMetricResultV2026R0( + @JsonProperty("type") String type, @JsonProperty("values") Map values) { + super(); + this.type = type; + this.values = values; + } + + public String getType() { + return type; + } + + public Map getValues() { + return values; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QueryInsightMetricResultV2026R0 casted = (QueryInsightMetricResultV2026R0) o; + return Objects.equals(type, casted.type) && Objects.equals(values, casted.values); + } + + @Override + public int hashCode() { + return Objects.hash(type, values); + } + + @Override + public String toString() { + return "QueryInsightMetricResultV2026R0{" + + "type='" + + type + + '\'' + + ", " + + "values='" + + values + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightsgroupbyv2026r0/QueryInsightsGroupByV2026R0.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightsgroupbyv2026r0/QueryInsightsGroupByV2026R0.java new file mode 100644 index 000000000..861a7b6b6 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightsgroupbyv2026r0/QueryInsightsGroupByV2026R0.java @@ -0,0 +1,93 @@ +package com.box.sdkgen.schemas.v2026r0.queryinsightsgroupbyv2026r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** + * Defines a single grouping criterion for an insights request. Currently only a single grouping + * field is supported. + */ +@JsonFilter("nullablePropertyFilter") +public class QueryInsightsGroupByV2026R0 extends SerializableObject { + + /** The fully qualified field name to group by. Supports metadata and item properties. */ + protected final String field; + + /** The maximum number of buckets to return for the grouping. Defaults to `5`. */ + @JsonProperty("bucket_limit") + protected Integer bucketLimit; + + public QueryInsightsGroupByV2026R0(@JsonProperty("field") String field) { + super(); + this.field = field; + } + + protected QueryInsightsGroupByV2026R0(Builder builder) { + super(); + this.field = builder.field; + this.bucketLimit = builder.bucketLimit; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getField() { + return field; + } + + public Integer getBucketLimit() { + return bucketLimit; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QueryInsightsGroupByV2026R0 casted = (QueryInsightsGroupByV2026R0) o; + return Objects.equals(field, casted.field) && Objects.equals(bucketLimit, casted.bucketLimit); + } + + @Override + public int hashCode() { + return Objects.hash(field, bucketLimit); + } + + @Override + public String toString() { + return "QueryInsightsGroupByV2026R0{" + + "field='" + + field + + '\'' + + ", " + + "bucketLimit='" + + bucketLimit + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String field; + + protected Integer bucketLimit; + + public Builder(String field) { + super(); + this.field = field; + } + + public Builder bucketLimit(Integer bucketLimit) { + this.bucketLimit = bucketLimit; + return this; + } + + public QueryInsightsGroupByV2026R0 build() { + return new QueryInsightsGroupByV2026R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightsmetricdefinitionv2026r0/QueryInsightsMetricDefinitionV2026R0.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightsmetricdefinitionv2026r0/QueryInsightsMetricDefinitionV2026R0.java new file mode 100644 index 000000000..fc7a8d01a --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightsmetricdefinitionv2026r0/QueryInsightsMetricDefinitionV2026R0.java @@ -0,0 +1,84 @@ +package com.box.sdkgen.schemas.v2026r0.queryinsightsmetricdefinitionv2026r0; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** + * Defines a single metric to compute, including the aggregation function and the field it is + * applied to. + */ +@JsonFilter("nullablePropertyFilter") +public class QueryInsightsMetricDefinitionV2026R0 extends SerializableObject { + + /** The aggregation function to apply. */ + @JsonDeserialize( + using = + QueryInsightsMetricDefinitionV2026R0TypeField + .QueryInsightsMetricDefinitionV2026R0TypeFieldDeserializer.class) + @JsonSerialize( + using = + QueryInsightsMetricDefinitionV2026R0TypeField + .QueryInsightsMetricDefinitionV2026R0TypeFieldSerializer.class) + protected final EnumWrapper type; + + /** The fully qualified field name on which the metric is computed. */ + protected final String field; + + public QueryInsightsMetricDefinitionV2026R0( + QueryInsightsMetricDefinitionV2026R0TypeField type, String field) { + super(); + this.type = new EnumWrapper(type); + this.field = field; + } + + public QueryInsightsMetricDefinitionV2026R0( + @JsonProperty("type") EnumWrapper type, + @JsonProperty("field") String field) { + super(); + this.type = type; + this.field = field; + } + + public EnumWrapper getType() { + return type; + } + + public String getField() { + return field; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QueryInsightsMetricDefinitionV2026R0 casted = (QueryInsightsMetricDefinitionV2026R0) o; + return Objects.equals(type, casted.type) && Objects.equals(field, casted.field); + } + + @Override + public int hashCode() { + return Objects.hash(type, field); + } + + @Override + public String toString() { + return "QueryInsightsMetricDefinitionV2026R0{" + + "type='" + + type + + '\'' + + ", " + + "field='" + + field + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightsmetricdefinitionv2026r0/QueryInsightsMetricDefinitionV2026R0TypeField.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightsmetricdefinitionv2026r0/QueryInsightsMetricDefinitionV2026R0TypeField.java new file mode 100644 index 000000000..0d2e7d90f --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightsmetricdefinitionv2026r0/QueryInsightsMetricDefinitionV2026R0TypeField.java @@ -0,0 +1,68 @@ +package com.box.sdkgen.schemas.v2026r0.queryinsightsmetricdefinitionv2026r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum QueryInsightsMetricDefinitionV2026R0TypeField implements Valuable { + SUM("sum"), + AVG("avg"), + MIN("min"), + MAX("max"), + COUNT("count"); + + private final String value; + + QueryInsightsMetricDefinitionV2026R0TypeField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class QueryInsightsMetricDefinitionV2026R0TypeFieldDeserializer + extends JsonDeserializer> { + + public QueryInsightsMetricDefinitionV2026R0TypeFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(QueryInsightsMetricDefinitionV2026R0TypeField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class QueryInsightsMetricDefinitionV2026R0TypeFieldSerializer + extends JsonSerializer> { + + public QueryInsightsMetricDefinitionV2026R0TypeFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightsrequestbodyv2026r0/QueryInsightsRequestBodyV2026R0.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightsrequestbodyv2026r0/QueryInsightsRequestBodyV2026R0.java new file mode 100644 index 000000000..183d1f668 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightsrequestbodyv2026r0/QueryInsightsRequestBodyV2026R0.java @@ -0,0 +1,73 @@ +package com.box.sdkgen.schemas.v2026r0.queryinsightsrequestbodyv2026r0; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2026r0.queryinsightsmetricdefinitionv2026r0.QueryInsightsMetricDefinitionV2026R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Map; +import java.util.Objects; + +/** Request body describing the filtering, grouping, and metrics for an insights computation. */ +@JsonFilter("nullablePropertyFilter") +public class QueryInsightsRequestBodyV2026R0 extends SerializableObject { + + /** + * The filtering and grouping definition. Filters are applied first, followed by grouping, before + * metrics are computed. + */ + protected final QueryInsightsRequestBodyV2026R0QueryField query; + + /** + * A map of user-defined metric aliases to their definitions. A maximum of 10 metrics may be + * defined. Each alias must be a unique, non-empty string of up to 256 characters, containing only + * letters, digits, `_`, `-`, or `.`, and must not start with a digit, `_`, `-`, or `.`. May be + * empty to request only a total count. + */ + protected final Map metrics; + + public QueryInsightsRequestBodyV2026R0( + @JsonProperty("query") QueryInsightsRequestBodyV2026R0QueryField query, + @JsonProperty("metrics") Map metrics) { + super(); + this.query = query; + this.metrics = metrics; + } + + public QueryInsightsRequestBodyV2026R0QueryField getQuery() { + return query; + } + + public Map getMetrics() { + return metrics; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QueryInsightsRequestBodyV2026R0 casted = (QueryInsightsRequestBodyV2026R0) o; + return Objects.equals(query, casted.query) && Objects.equals(metrics, casted.metrics); + } + + @Override + public int hashCode() { + return Objects.hash(query, metrics); + } + + @Override + public String toString() { + return "QueryInsightsRequestBodyV2026R0{" + + "query='" + + query + + '\'' + + ", " + + "metrics='" + + metrics + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightsrequestbodyv2026r0/QueryInsightsRequestBodyV2026R0QueryField.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightsrequestbodyv2026r0/QueryInsightsRequestBodyV2026R0QueryField.java new file mode 100644 index 000000000..e47b8c64e --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightsrequestbodyv2026r0/QueryInsightsRequestBodyV2026R0QueryField.java @@ -0,0 +1,149 @@ +package com.box.sdkgen.schemas.v2026r0.queryinsightsrequestbodyv2026r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2026r0.queryancestorreferencev2026r0.QueryAncestorReferenceV2026R0; +import com.box.sdkgen.schemas.v2026r0.queryinsightsgroupbyv2026r0.QueryInsightsGroupByV2026R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class QueryInsightsRequestBodyV2026R0QueryField extends SerializableObject { + + /** + * A logical expression used to filter the dataset prior to metric computation, similar to an SQL + * `WHERE` clause. May include named parameters referenced as `:placeholder`. + */ + protected final String predicate; + + /** + * A map of placeholder names (without the `:` prefix) to their values. Required only when the + * predicate contains parameter placeholders. The type of each value must match the type of the + * field it is compared to. + */ + protected Map params; + + /** + * Restricts results to items contained within any of the specified ancestors. The user must have + * access to every listed ancestor. When omitted, insights are computed across all accessible + * items. + */ + protected List ancestors; + + /** + * Defines how data is grouped for insights computation. Currently only a single grouping field is + * supported. + */ + @JsonProperty("group_by") + protected List groupBy; + + public QueryInsightsRequestBodyV2026R0QueryField(@JsonProperty("predicate") String predicate) { + super(); + this.predicate = predicate; + } + + protected QueryInsightsRequestBodyV2026R0QueryField(Builder builder) { + super(); + this.predicate = builder.predicate; + this.params = builder.params; + this.ancestors = builder.ancestors; + this.groupBy = builder.groupBy; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getPredicate() { + return predicate; + } + + public Map getParams() { + return params; + } + + public List getAncestors() { + return ancestors; + } + + public List getGroupBy() { + return groupBy; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QueryInsightsRequestBodyV2026R0QueryField casted = + (QueryInsightsRequestBodyV2026R0QueryField) o; + return Objects.equals(predicate, casted.predicate) + && Objects.equals(params, casted.params) + && Objects.equals(ancestors, casted.ancestors) + && Objects.equals(groupBy, casted.groupBy); + } + + @Override + public int hashCode() { + return Objects.hash(predicate, params, ancestors, groupBy); + } + + @Override + public String toString() { + return "QueryInsightsRequestBodyV2026R0QueryField{" + + "predicate='" + + predicate + + '\'' + + ", " + + "params='" + + params + + '\'' + + ", " + + "ancestors='" + + ancestors + + '\'' + + ", " + + "groupBy='" + + groupBy + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String predicate; + + protected Map params; + + protected List ancestors; + + protected List groupBy; + + public Builder(String predicate) { + super(); + this.predicate = predicate; + } + + public Builder params(Map params) { + this.params = params; + return this; + } + + public Builder ancestors(List ancestors) { + this.ancestors = ancestors; + return this; + } + + public Builder groupBy(List groupBy) { + this.groupBy = groupBy; + return this; + } + + public QueryInsightsRequestBodyV2026R0QueryField build() { + return new QueryInsightsRequestBodyV2026R0QueryField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightsv2026r0/QueryInsightsV2026R0.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightsv2026r0/QueryInsightsV2026R0.java new file mode 100644 index 000000000..332d591fd --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryinsightsv2026r0/QueryInsightsV2026R0.java @@ -0,0 +1,50 @@ +package com.box.sdkgen.schemas.v2026r0.queryinsightsv2026r0; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2026r0.queryinsightentryv2026r0.QueryInsightEntryV2026R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +/** The computed results of an insights request, as a list of insight entries. */ +@JsonFilter("nullablePropertyFilter") +public class QueryInsightsV2026R0 extends SerializableObject { + + /** + * The list of computed insight entries. Each entry corresponds to a group, the overall dataset, + * or the aggregate of groups outside the top results. + */ + protected final List insights; + + public QueryInsightsV2026R0(@JsonProperty("insights") List insights) { + super(); + this.insights = insights; + } + + public List getInsights() { + return insights; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QueryInsightsV2026R0 casted = (QueryInsightsV2026R0) o; + return Objects.equals(insights, casted.insights); + } + + @Override + public int hashCode() { + return Objects.hash(insights); + } + + @Override + public String toString() { + return "QueryInsightsV2026R0{" + "insights='" + insights + '\'' + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/queryorderbyv2026r0/QueryOrderByV2026R0.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryorderbyv2026r0/QueryOrderByV2026R0.java new file mode 100644 index 000000000..d6ee2aafc --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryorderbyv2026r0/QueryOrderByV2026R0.java @@ -0,0 +1,80 @@ +package com.box.sdkgen.schemas.v2026r0.queryorderbyv2026r0; + +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.util.Objects; + +/** + * A single sorting criterion applied to the query result set. Multiple criteria are applied + * sequentially in the order specified. + */ +@JsonFilter("nullablePropertyFilter") +public class QueryOrderByV2026R0 extends SerializableObject { + + /** The fully qualified field key to sort by. */ + @JsonProperty("field_key") + protected final String fieldKey; + + /** The direction in which results are ordered. */ + @JsonDeserialize( + using = QueryOrderByV2026R0DirectionField.QueryOrderByV2026R0DirectionFieldDeserializer.class) + @JsonSerialize( + using = QueryOrderByV2026R0DirectionField.QueryOrderByV2026R0DirectionFieldSerializer.class) + protected final EnumWrapper direction; + + public QueryOrderByV2026R0(String fieldKey, QueryOrderByV2026R0DirectionField direction) { + super(); + this.fieldKey = fieldKey; + this.direction = new EnumWrapper(direction); + } + + public QueryOrderByV2026R0( + @JsonProperty("field_key") String fieldKey, + @JsonProperty("direction") EnumWrapper direction) { + super(); + this.fieldKey = fieldKey; + this.direction = direction; + } + + public String getFieldKey() { + return fieldKey; + } + + public EnumWrapper getDirection() { + return direction; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QueryOrderByV2026R0 casted = (QueryOrderByV2026R0) o; + return Objects.equals(fieldKey, casted.fieldKey) && Objects.equals(direction, casted.direction); + } + + @Override + public int hashCode() { + return Objects.hash(fieldKey, direction); + } + + @Override + public String toString() { + return "QueryOrderByV2026R0{" + + "fieldKey='" + + fieldKey + + '\'' + + ", " + + "direction='" + + direction + + '\'' + + "}"; + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/queryorderbyv2026r0/QueryOrderByV2026R0DirectionField.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryorderbyv2026r0/QueryOrderByV2026R0DirectionField.java new file mode 100644 index 000000000..2995eda47 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryorderbyv2026r0/QueryOrderByV2026R0DirectionField.java @@ -0,0 +1,65 @@ +package com.box.sdkgen.schemas.v2026r0.queryorderbyv2026r0; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum QueryOrderByV2026R0DirectionField implements Valuable { + ASC("asc"), + DESC("desc"); + + private final String value; + + QueryOrderByV2026R0DirectionField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class QueryOrderByV2026R0DirectionFieldDeserializer + extends JsonDeserializer> { + + public QueryOrderByV2026R0DirectionFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(QueryOrderByV2026R0DirectionField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class QueryOrderByV2026R0DirectionFieldSerializer + extends JsonSerializer> { + + public QueryOrderByV2026R0DirectionFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/queryrequestbodyv2026r0/QueryRequestBodyV2026R0.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryrequestbodyv2026r0/QueryRequestBodyV2026R0.java new file mode 100644 index 000000000..f6302143b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryrequestbodyv2026r0/QueryRequestBodyV2026R0.java @@ -0,0 +1,172 @@ +package com.box.sdkgen.schemas.v2026r0.queryrequestbodyv2026r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2026r0.queryorderbyv2026r0.QueryOrderByV2026R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +/** + * Request body describing the query to run, including the filtering predicate, optional sorting, + * pagination, and the fields to return for each result. + */ +@JsonFilter("nullablePropertyFilter") +public class QueryRequestBodyV2026R0 extends SerializableObject { + + /** + * The query definition, including the filtering predicate and its optional parameters and + * ancestor restrictions. + */ + protected final QueryRequestBodyV2026R0QueryField query; + + /** + * The sorting criteria for the result set. Entries are applied sequentially to define multi-level + * sorting. + */ + @JsonProperty("order_by") + protected List orderBy; + + /** The maximum number of results to return. Defaults to `50` when not provided. */ + protected Integer limit; + + /** + * Controls which additional fields are included in each result entry. Each value must be one of: + * a fully qualified item field key (for example `box:item:name`), a metadata template key to + * hydrate the full template (for example `enterprise_12345678:project`), or a specific metadata + * template field key to hydrate a single field from the template (for example + * `enterprise_12345678:project:name`). When omitted, entries include only the item type and + * identifier. + */ + protected List fields; + + /** + * An opaque token returned from a previous response, used to continue retrieval. When provided, + * all other request parameters must exactly match those of the original request. + */ + protected String marker; + + public QueryRequestBodyV2026R0(@JsonProperty("query") QueryRequestBodyV2026R0QueryField query) { + super(); + this.query = query; + } + + protected QueryRequestBodyV2026R0(Builder builder) { + super(); + this.query = builder.query; + this.orderBy = builder.orderBy; + this.limit = builder.limit; + this.fields = builder.fields; + this.marker = builder.marker; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public QueryRequestBodyV2026R0QueryField getQuery() { + return query; + } + + public List getOrderBy() { + return orderBy; + } + + public Integer getLimit() { + return limit; + } + + public List getFields() { + return fields; + } + + public String getMarker() { + return marker; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QueryRequestBodyV2026R0 casted = (QueryRequestBodyV2026R0) o; + return Objects.equals(query, casted.query) + && Objects.equals(orderBy, casted.orderBy) + && Objects.equals(limit, casted.limit) + && Objects.equals(fields, casted.fields) + && Objects.equals(marker, casted.marker); + } + + @Override + public int hashCode() { + return Objects.hash(query, orderBy, limit, fields, marker); + } + + @Override + public String toString() { + return "QueryRequestBodyV2026R0{" + + "query='" + + query + + '\'' + + ", " + + "orderBy='" + + orderBy + + '\'' + + ", " + + "limit='" + + limit + + '\'' + + ", " + + "fields='" + + fields + + '\'' + + ", " + + "marker='" + + marker + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final QueryRequestBodyV2026R0QueryField query; + + protected List orderBy; + + protected Integer limit; + + protected List fields; + + protected String marker; + + public Builder(QueryRequestBodyV2026R0QueryField query) { + super(); + this.query = query; + } + + public Builder orderBy(List orderBy) { + this.orderBy = orderBy; + return this; + } + + public Builder limit(Integer limit) { + this.limit = limit; + return this; + } + + public Builder fields(List fields) { + this.fields = fields; + return this; + } + + public Builder marker(String marker) { + this.marker = marker; + return this; + } + + public QueryRequestBodyV2026R0 build() { + return new QueryRequestBodyV2026R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/queryrequestbodyv2026r0/QueryRequestBodyV2026R0QueryField.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryrequestbodyv2026r0/QueryRequestBodyV2026R0QueryField.java new file mode 100644 index 000000000..812f25278 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryrequestbodyv2026r0/QueryRequestBodyV2026R0QueryField.java @@ -0,0 +1,122 @@ +package com.box.sdkgen.schemas.v2026r0.queryrequestbodyv2026r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2026r0.queryancestorreferencev2026r0.QueryAncestorReferenceV2026R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +@JsonFilter("nullablePropertyFilter") +public class QueryRequestBodyV2026R0QueryField extends SerializableObject { + + /** + * A logical expression used to filter the dataset, similar to an SQL `WHERE` clause. May include + * named parameters referenced as `:placeholder`. + */ + protected final String predicate; + + /** + * A map of placeholder names (without the `:` prefix) to their values. Required only when the + * predicate contains parameter placeholders. The type of each value must match the type of the + * field it is compared to. + */ + protected Map params; + + /** + * Restricts results to the specified ancestor entities and their recursive descendants. The user + * must have read access to every listed ancestor. + */ + protected List ancestors; + + public QueryRequestBodyV2026R0QueryField(@JsonProperty("predicate") String predicate) { + super(); + this.predicate = predicate; + } + + protected QueryRequestBodyV2026R0QueryField(Builder builder) { + super(); + this.predicate = builder.predicate; + this.params = builder.params; + this.ancestors = builder.ancestors; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getPredicate() { + return predicate; + } + + public Map getParams() { + return params; + } + + public List getAncestors() { + return ancestors; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QueryRequestBodyV2026R0QueryField casted = (QueryRequestBodyV2026R0QueryField) o; + return Objects.equals(predicate, casted.predicate) + && Objects.equals(params, casted.params) + && Objects.equals(ancestors, casted.ancestors); + } + + @Override + public int hashCode() { + return Objects.hash(predicate, params, ancestors); + } + + @Override + public String toString() { + return "QueryRequestBodyV2026R0QueryField{" + + "predicate='" + + predicate + + '\'' + + ", " + + "params='" + + params + + '\'' + + ", " + + "ancestors='" + + ancestors + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String predicate; + + protected Map params; + + protected List ancestors; + + public Builder(String predicate) { + super(); + this.predicate = predicate; + } + + public Builder params(Map params) { + this.params = params; + return this; + } + + public Builder ancestors(List ancestors) { + this.ancestors = ancestors; + return this; + } + + public QueryRequestBodyV2026R0QueryField build() { + return new QueryRequestBodyV2026R0QueryField(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/queryresultentryv2026r0/QueryResultEntryV2026R0.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryresultentryv2026r0/QueryResultEntryV2026R0.java new file mode 100644 index 000000000..f66d2cfd7 --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryresultentryv2026r0/QueryResultEntryV2026R0.java @@ -0,0 +1,113 @@ +package com.box.sdkgen.schemas.v2026r0.queryresultentryv2026r0; + +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Map; +import java.util.Objects; + +/** + * A single item matching the query. Always includes the item `type` and `id`. If a `fields` + * parameter was specified in the request, then additional item and/or metadata fields will be + * provided. + */ +@JsonFilter("nullablePropertyFilter") +public class QueryResultEntryV2026R0 extends SerializableObject { + + /** The unique identifier of the matching item. */ + protected final String id; + + /** The type of the matching item. */ + protected final String type; + + @JsonAnyGetter @JsonAnySetter protected Map extraData; + + public QueryResultEntryV2026R0(@JsonProperty("id") String id, @JsonProperty("type") String type) { + super(); + this.id = id; + this.type = type; + } + + protected QueryResultEntryV2026R0(Builder builder) { + super(); + this.id = builder.id; + this.type = builder.type; + this.extraData = builder.extraData; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public String getId() { + return id; + } + + public String getType() { + return type; + } + + public Map getExtraData() { + return extraData; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QueryResultEntryV2026R0 casted = (QueryResultEntryV2026R0) o; + return Objects.equals(id, casted.id) + && Objects.equals(type, casted.type) + && Objects.equals(extraData, casted.extraData); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, extraData); + } + + @Override + public String toString() { + return "QueryResultEntryV2026R0{" + + "id='" + + id + + '\'' + + ", " + + "type='" + + type + + '\'' + + ", " + + "extraData='" + + extraData + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final String id; + + protected final String type; + + protected Map extraData; + + public Builder(String id, String type) { + super(); + this.id = id; + this.type = type; + } + + public Builder extraData(Map extraData) { + this.extraData = extraData; + return this; + } + + public QueryResultEntryV2026R0 build() { + return new QueryResultEntryV2026R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/v2026r0/queryresultsv2026r0/QueryResultsV2026R0.java b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryresultsv2026r0/QueryResultsV2026R0.java new file mode 100644 index 000000000..f53488c0b --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/v2026r0/queryresultsv2026r0/QueryResultsV2026R0.java @@ -0,0 +1,121 @@ +package com.box.sdkgen.schemas.v2026r0.queryresultsv2026r0; + +import com.box.sdkgen.internal.Nullable; +import com.box.sdkgen.internal.NullableFieldTracker; +import com.box.sdkgen.internal.SerializableObject; +import com.box.sdkgen.schemas.v2026r0.queryresultentryv2026r0.QueryResultEntryV2026R0; +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; +import java.util.Objects; + +/** A paginated list of items matching the query, using milestone-based marker pagination. */ +@JsonFilter("nullablePropertyFilter") +public class QueryResultsV2026R0 extends SerializableObject { + + /** The list of items matching the query predicate. */ + protected final List entries; + + /** + * The marker for the start of the next page of results. When `null`, there are no further results + * available. + */ + @JsonProperty("next_marker") + @Nullable + protected String nextMarker; + + /** + * The limit that was used for this request. This will be the same as the limit query parameter + * unless that value exceeded the maximum value allowed. + */ + protected final int limit; + + public QueryResultsV2026R0( + @JsonProperty("entries") List entries, + @JsonProperty("limit") int limit) { + super(); + this.entries = entries; + this.limit = limit; + } + + protected QueryResultsV2026R0(Builder builder) { + super(); + this.entries = builder.entries; + this.nextMarker = builder.nextMarker; + this.limit = builder.limit; + markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); + } + + public List getEntries() { + return entries; + } + + public String getNextMarker() { + return nextMarker; + } + + public int getLimit() { + return limit; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + QueryResultsV2026R0 casted = (QueryResultsV2026R0) o; + return Objects.equals(entries, casted.entries) + && Objects.equals(nextMarker, casted.nextMarker) + && Objects.equals(limit, casted.limit); + } + + @Override + public int hashCode() { + return Objects.hash(entries, nextMarker, limit); + } + + @Override + public String toString() { + return "QueryResultsV2026R0{" + + "entries='" + + entries + + '\'' + + ", " + + "nextMarker='" + + nextMarker + + '\'' + + ", " + + "limit='" + + limit + + '\'' + + "}"; + } + + public static class Builder extends NullableFieldTracker { + + protected final List entries; + + protected String nextMarker; + + protected final int limit; + + public Builder(List entries, int limit) { + super(); + this.entries = entries; + this.limit = limit; + } + + public Builder nextMarker(String nextMarker) { + this.nextMarker = nextMarker; + this.markNullableFieldAsSet("next_marker"); + return this; + } + + public QueryResultsV2026R0 build() { + return new QueryResultsV2026R0(this); + } + } +} diff --git a/src/main/java/com/box/sdkgen/schemas/weblink/WebLink.java b/src/main/java/com/box/sdkgen/schemas/weblink/WebLink.java index e21029282..d6ad85ee5 100644 --- a/src/main/java/com/box/sdkgen/schemas/weblink/WebLink.java +++ b/src/main/java/com/box/sdkgen/schemas/weblink/WebLink.java @@ -2,16 +2,28 @@ import com.box.sdkgen.internal.Nullable; import com.box.sdkgen.internal.utils.DateTimeUtils; +import com.box.sdkgen.schemas.collection.Collection; import com.box.sdkgen.schemas.foldermini.FolderMini; import com.box.sdkgen.schemas.usermini.UserMini; import com.box.sdkgen.schemas.weblinkbase.WebLinkBaseTypeField; import com.box.sdkgen.schemas.weblinkmini.WebLinkMini; import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.io.IOException; import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; import java.util.Objects; /** @@ -79,6 +91,27 @@ public class WebLink extends WebLinkMini { @JsonProperty("item_status") protected EnumWrapper itemStatus; + /** + * The collections that this web link belongs to. + * + *

    For more information, see the [collections + * guide](https://developer.box.com/guides/collections). + */ + protected List collections; + + /** + * The shared link access levels the authenticated user is allowed to use when creating or + * updating a shared link for this web link. + * + *

    The list depends on item policy and user authorization, so it may be narrower than the + * levels available to the owner. An empty array means no access level is available to this user. + */ + @JsonDeserialize(using = AllowedSharedLinkAccessLevelsDeserializer.class) + @JsonSerialize(using = AllowedSharedLinkAccessLevelsSerializer.class) + @JsonProperty("allowed_shared_link_access_levels") + protected List> + allowedSharedLinkAccessLevels; + public WebLink(@JsonProperty("id") String id) { super(id); } @@ -97,6 +130,8 @@ protected WebLink(Builder builder) { this.ownedBy = builder.ownedBy; this.sharedLink = builder.sharedLink; this.itemStatus = builder.itemStatus; + this.collections = builder.collections; + this.allowedSharedLinkAccessLevels = builder.allowedSharedLinkAccessLevels; markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); } @@ -148,6 +183,15 @@ public EnumWrapper getItemStatus() { return itemStatus; } + public List getCollections() { + return collections; + } + + public List> + getAllowedSharedLinkAccessLevels() { + return allowedSharedLinkAccessLevels; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -174,7 +218,9 @@ public boolean equals(Object o) { && Objects.equals(modifiedBy, casted.modifiedBy) && Objects.equals(ownedBy, casted.ownedBy) && Objects.equals(sharedLink, casted.sharedLink) - && Objects.equals(itemStatus, casted.itemStatus); + && Objects.equals(itemStatus, casted.itemStatus) + && Objects.equals(collections, casted.collections) + && Objects.equals(allowedSharedLinkAccessLevels, casted.allowedSharedLinkAccessLevels); } @Override @@ -197,7 +243,9 @@ public int hashCode() { modifiedBy, ownedBy, sharedLink, - itemStatus); + itemStatus, + collections, + allowedSharedLinkAccessLevels); } @Override @@ -274,6 +322,14 @@ public String toString() { + "itemStatus='" + itemStatus + '\'' + + ", " + + "collections='" + + collections + + '\'' + + ", " + + "allowedSharedLinkAccessLevels='" + + allowedSharedLinkAccessLevels + + '\'' + "}"; } @@ -303,6 +359,11 @@ public static class Builder extends WebLinkMini.Builder { protected EnumWrapper itemStatus; + protected List collections; + + protected List> + allowedSharedLinkAccessLevels; + public Builder(String id) { super(id); } @@ -374,6 +435,19 @@ public Builder itemStatus(EnumWrapper itemStatus) { return this; } + public Builder collections(List collections) { + this.collections = collections; + return this; + } + + public Builder allowedSharedLinkAccessLevels( + List allowedSharedLinkAccessLevels) { + this.allowedSharedLinkAccessLevels = + EnumWrapper.wrapValuableEnumList( + allowedSharedLinkAccessLevels, WebLinkAllowedSharedLinkAccessLevelsField.class); + return this; + } + @Override public Builder type(WebLinkBaseTypeField type) { this.type = new EnumWrapper(type); @@ -417,4 +491,58 @@ public WebLink build() { return new WebLink(this); } } + + public static class AllowedSharedLinkAccessLevelsDeserializer + extends JsonDeserializer>> { + + public final JsonDeserializer> + elementDeserializer; + + public AllowedSharedLinkAccessLevelsDeserializer() { + super(); + this.elementDeserializer = + new WebLinkAllowedSharedLinkAccessLevelsField + .WebLinkAllowedSharedLinkAccessLevelsFieldDeserializer(); + } + + @Override + public List> deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + JsonNode node = p.getCodec().readTree(p); + List> elements = new ArrayList<>(); + for (JsonNode item : node) { + JsonParser pa = item.traverse(p.getCodec()); + pa.nextToken(); + elements.add(elementDeserializer.deserialize(pa, ctxt)); + } + return elements; + } + } + + public static class AllowedSharedLinkAccessLevelsSerializer + extends JsonSerializer>> { + + public final JsonSerializer> + elementSerializer; + + public AllowedSharedLinkAccessLevelsSerializer() { + super(); + this.elementSerializer = + new WebLinkAllowedSharedLinkAccessLevelsField + .WebLinkAllowedSharedLinkAccessLevelsFieldSerializer(); + } + + @Override + public void serialize( + List> value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeStartArray(); + for (EnumWrapper item : value) { + elementSerializer.serialize(item, gen, serializers); + } + gen.writeEndArray(); + } + } } diff --git a/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkAllowedSharedLinkAccessLevelsField.java b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkAllowedSharedLinkAccessLevelsField.java new file mode 100644 index 000000000..8e7305cbe --- /dev/null +++ b/src/main/java/com/box/sdkgen/schemas/weblink/WebLinkAllowedSharedLinkAccessLevelsField.java @@ -0,0 +1,66 @@ +package com.box.sdkgen.schemas.weblink; + +import com.box.sdkgen.serialization.json.EnumWrapper; +import com.box.sdkgen.serialization.json.Valuable; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.util.Arrays; + +public enum WebLinkAllowedSharedLinkAccessLevelsField implements Valuable { + OPEN("open"), + COMPANY("company"), + COLLABORATORS("collaborators"); + + private final String value; + + WebLinkAllowedSharedLinkAccessLevelsField(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + public static class WebLinkAllowedSharedLinkAccessLevelsFieldDeserializer + extends JsonDeserializer> { + + public WebLinkAllowedSharedLinkAccessLevelsFieldDeserializer() { + super(); + } + + @Override + public EnumWrapper deserialize( + JsonParser p, DeserializationContext ctxt) throws IOException { + String value = p.getValueAsString(); + return Arrays.stream(WebLinkAllowedSharedLinkAccessLevelsField.values()) + .filter((v) -> v.getValue().equalsIgnoreCase(value)) + .findFirst() + .map(EnumWrapper::new) + .orElse(new EnumWrapper(value)); + } + } + + public static class WebLinkAllowedSharedLinkAccessLevelsFieldSerializer + extends JsonSerializer> { + + public WebLinkAllowedSharedLinkAccessLevelsFieldSerializer() { + super(); + } + + @Override + public void serialize( + EnumWrapper value, + JsonGenerator gen, + SerializerProvider serializers) + throws IOException { + gen.writeString(value.getStringValue()); + } + } +} From a37b2964ab71ab789c359680e6f09ad19a310cf9 Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Fri, 31 Jul 2026 13:50:00 +0200 Subject: [PATCH 143/148] feat: Added two missing event types (box/box-openapi#611) (#1940) Co-authored-by: box-sdk-build --- .codegen.json | 2 +- .../events/GetEventStreamQueryParamsEventTypeField.java | 2 ++ .../managers/events/GetEventsQueryParamsEventTypeField.java | 2 ++ .../java/com/box/sdkgen/schemas/event/EventEventTypeField.java | 1 + 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index 019b48732..64b6bacf8 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "2cee311", "specHash": "cc375ad", "version": "10.15.2" } +{ "engineHash": "2cee311", "specHash": "2aeae37", "version": "10.15.2" } diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParamsEventTypeField.java b/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParamsEventTypeField.java index 8386f5e69..718b2aba4 100644 --- a/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParamsEventTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventStreamQueryParamsEventTypeField.java @@ -105,6 +105,7 @@ public enum GetEventStreamQueryParamsEventTypeField implements Valuable { SHARED_LINK_SEND("SHARED_LINK_SEND"), SHARE_EXPIRATION("SHARE_EXPIRATION"), SHIELD_ALERT("SHIELD_ALERT"), + SHIELD_DOWNLOAD_BLOCKED("SHIELD_DOWNLOAD_BLOCKED"), SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED("SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED"), SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED_MISSING_JUSTIFICATION( "SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED_MISSING_JUSTIFICATION"), @@ -112,6 +113,7 @@ public enum GetEventStreamQueryParamsEventTypeField implements Valuable { SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED_MISSING_JUSTIFICATION( "SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED_MISSING_JUSTIFICATION"), SHIELD_JUSTIFICATION_APPROVAL("SHIELD_JUSTIFICATION_APPROVAL"), + SHIELD_PREVIEW_BLOCKED("SHIELD_PREVIEW_BLOCKED"), SHIELD_SHARED_LINK_ACCESS_BLOCKED("SHIELD_SHARED_LINK_ACCESS_BLOCKED"), SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_CREATE("SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_CREATE"), SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_UPDATE("SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_UPDATE"), diff --git a/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParamsEventTypeField.java b/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParamsEventTypeField.java index fd4958ff7..813e04666 100644 --- a/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParamsEventTypeField.java +++ b/src/main/java/com/box/sdkgen/managers/events/GetEventsQueryParamsEventTypeField.java @@ -105,6 +105,7 @@ public enum GetEventsQueryParamsEventTypeField implements Valuable { SHARED_LINK_SEND("SHARED_LINK_SEND"), SHARE_EXPIRATION("SHARE_EXPIRATION"), SHIELD_ALERT("SHIELD_ALERT"), + SHIELD_DOWNLOAD_BLOCKED("SHIELD_DOWNLOAD_BLOCKED"), SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED("SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED"), SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED_MISSING_JUSTIFICATION( "SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED_MISSING_JUSTIFICATION"), @@ -112,6 +113,7 @@ public enum GetEventsQueryParamsEventTypeField implements Valuable { SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED_MISSING_JUSTIFICATION( "SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED_MISSING_JUSTIFICATION"), SHIELD_JUSTIFICATION_APPROVAL("SHIELD_JUSTIFICATION_APPROVAL"), + SHIELD_PREVIEW_BLOCKED("SHIELD_PREVIEW_BLOCKED"), SHIELD_SHARED_LINK_ACCESS_BLOCKED("SHIELD_SHARED_LINK_ACCESS_BLOCKED"), SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_CREATE("SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_CREATE"), SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_UPDATE("SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_UPDATE"), diff --git a/src/main/java/com/box/sdkgen/schemas/event/EventEventTypeField.java b/src/main/java/com/box/sdkgen/schemas/event/EventEventTypeField.java index dff925891..757be6b56 100644 --- a/src/main/java/com/box/sdkgen/schemas/event/EventEventTypeField.java +++ b/src/main/java/com/box/sdkgen/schemas/event/EventEventTypeField.java @@ -183,6 +183,7 @@ public enum EventEventTypeField implements Valuable { SHIELD_INFORMATION_BARRIER_SHARED_ITEM_ACCESS_BLOCKED( "SHIELD_INFORMATION_BARRIER_SHARED_ITEM_ACCESS_BLOCKED"), SHIELD_JUSTIFICATION_APPROVAL("SHIELD_JUSTIFICATION_APPROVAL"), + SHIELD_PREVIEW_BLOCKED("SHIELD_PREVIEW_BLOCKED"), SHIELD_SHARED_LINK_ACCESS_BLOCKED("SHIELD_SHARED_LINK_ACCESS_BLOCKED"), SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_CREATE("SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_CREATE"), SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_UPDATE("SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_UPDATE"), From 3a67096b0ab31836ef597daf0f2d8a25ef94013d Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Mon, 3 Aug 2026 10:17:11 +0200 Subject: [PATCH 144/148] feat: add `is_collaborated_content_available_when_owner_inactive` property (box/box-openapi#613) (#1946) Co-authored-by: box-sdk-build --- .codegen.json | 2 +- .../users/UpdateUserByIdRequestBody.java | 30 +++++++++++++++++++ .../box/sdkgen/schemas/userfull/UserFull.java | 30 +++++++++++++++++++ 3 files changed, 61 insertions(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index 64b6bacf8..0e8f5e845 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "2cee311", "specHash": "2aeae37", "version": "10.15.2" } +{ "engineHash": "7146a71", "specHash": "86fcc6c", "version": "10.15.2" } diff --git a/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBody.java b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBody.java index bac250baf..dc735320d 100644 --- a/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBody.java +++ b/src/main/java/com/box/sdkgen/managers/users/UpdateUserByIdRequestBody.java @@ -91,6 +91,13 @@ public class UpdateUserByIdRequestBody extends SerializableObject { @JsonProperty("is_password_reset_required") protected Boolean isPasswordResetRequired; + /** + * Whether collaborators can access content owned by the user when the user is inactive. This + * setting preserves existing collaborator access and does not grant new permissions. + */ + @JsonProperty("is_collaborated_content_available_when_owner_inactive") + protected Boolean isCollaboratedContentAvailableWhenOwnerInactive; + /** The user's account status. */ @JsonDeserialize( using = @@ -149,6 +156,8 @@ protected UpdateUserByIdRequestBody(Builder builder) { this.isExemptFromDeviceLimits = builder.isExemptFromDeviceLimits; this.isExemptFromLoginVerification = builder.isExemptFromLoginVerification; this.isPasswordResetRequired = builder.isPasswordResetRequired; + this.isCollaboratedContentAvailableWhenOwnerInactive = + builder.isCollaboratedContentAvailableWhenOwnerInactive; this.status = builder.status; this.spaceAmount = builder.spaceAmount; this.notificationEmail = builder.notificationEmail; @@ -224,6 +233,10 @@ public Boolean getIsPasswordResetRequired() { return isPasswordResetRequired; } + public Boolean getIsCollaboratedContentAvailableWhenOwnerInactive() { + return isCollaboratedContentAvailableWhenOwnerInactive; + } + public EnumWrapper getStatus() { return status; } @@ -266,6 +279,9 @@ public boolean equals(Object o) { && Objects.equals(isExemptFromDeviceLimits, casted.isExemptFromDeviceLimits) && Objects.equals(isExemptFromLoginVerification, casted.isExemptFromLoginVerification) && Objects.equals(isPasswordResetRequired, casted.isPasswordResetRequired) + && Objects.equals( + isCollaboratedContentAvailableWhenOwnerInactive, + casted.isCollaboratedContentAvailableWhenOwnerInactive) && Objects.equals(status, casted.status) && Objects.equals(spaceAmount, casted.spaceAmount) && Objects.equals(notificationEmail, casted.notificationEmail) @@ -292,6 +308,7 @@ public int hashCode() { isExemptFromDeviceLimits, isExemptFromLoginVerification, isPasswordResetRequired, + isCollaboratedContentAvailableWhenOwnerInactive, status, spaceAmount, notificationEmail, @@ -369,6 +386,10 @@ public String toString() { + isPasswordResetRequired + '\'' + ", " + + "isCollaboratedContentAvailableWhenOwnerInactive='" + + isCollaboratedContentAvailableWhenOwnerInactive + + '\'' + + ", " + "status='" + status + '\'' @@ -423,6 +444,8 @@ public static class Builder extends NullableFieldTracker { protected Boolean isPasswordResetRequired; + protected Boolean isCollaboratedContentAvailableWhenOwnerInactive; + protected EnumWrapper status; protected Long spaceAmount; @@ -522,6 +545,13 @@ public Builder isPasswordResetRequired(Boolean isPasswordResetRequired) { return this; } + public Builder isCollaboratedContentAvailableWhenOwnerInactive( + Boolean isCollaboratedContentAvailableWhenOwnerInactive) { + this.isCollaboratedContentAvailableWhenOwnerInactive = + isCollaboratedContentAvailableWhenOwnerInactive; + return this; + } + public Builder status(UpdateUserByIdRequestBodyStatusField status) { this.status = new EnumWrapper(status); return this; diff --git a/src/main/java/com/box/sdkgen/schemas/userfull/UserFull.java b/src/main/java/com/box/sdkgen/schemas/userfull/UserFull.java index 5c05b25a3..30b0ac6a3 100644 --- a/src/main/java/com/box/sdkgen/schemas/userfull/UserFull.java +++ b/src/main/java/com/box/sdkgen/schemas/userfull/UserFull.java @@ -51,6 +51,13 @@ public class UserFull extends User { @JsonProperty("is_exempt_from_login_verification") protected Boolean isExemptFromLoginVerification; + /** + * Whether collaborators can access content owned by the user when the user is inactive. This + * setting preserves existing collaborator access and does not grant new permissions. + */ + @JsonProperty("is_collaborated_content_available_when_owner_inactive") + protected Boolean isCollaboratedContentAvailableWhenOwnerInactive; + protected UserFullEnterpriseField enterprise; /** @@ -87,6 +94,8 @@ protected UserFull(Builder builder) { this.isExternalCollabRestricted = builder.isExternalCollabRestricted; this.isExemptFromDeviceLimits = builder.isExemptFromDeviceLimits; this.isExemptFromLoginVerification = builder.isExemptFromLoginVerification; + this.isCollaboratedContentAvailableWhenOwnerInactive = + builder.isCollaboratedContentAvailableWhenOwnerInactive; this.enterprise = builder.enterprise; this.myTags = builder.myTags; this.hostname = builder.hostname; @@ -123,6 +132,10 @@ public Boolean getIsExemptFromLoginVerification() { return isExemptFromLoginVerification; } + public Boolean getIsCollaboratedContentAvailableWhenOwnerInactive() { + return isCollaboratedContentAvailableWhenOwnerInactive; + } + public UserFullEnterpriseField getEnterprise() { return enterprise; } @@ -176,6 +189,9 @@ public boolean equals(Object o) { && Objects.equals(isExternalCollabRestricted, casted.isExternalCollabRestricted) && Objects.equals(isExemptFromDeviceLimits, casted.isExemptFromDeviceLimits) && Objects.equals(isExemptFromLoginVerification, casted.isExemptFromLoginVerification) + && Objects.equals( + isCollaboratedContentAvailableWhenOwnerInactive, + casted.isCollaboratedContentAvailableWhenOwnerInactive) && Objects.equals(enterprise, casted.enterprise) && Objects.equals(myTags, casted.myTags) && Objects.equals(hostname, casted.hostname) @@ -210,6 +226,7 @@ public int hashCode() { isExternalCollabRestricted, isExemptFromDeviceLimits, isExemptFromLoginVerification, + isCollaboratedContentAvailableWhenOwnerInactive, enterprise, myTags, hostname, @@ -316,6 +333,10 @@ public String toString() { + isExemptFromLoginVerification + '\'' + ", " + + "isCollaboratedContentAvailableWhenOwnerInactive='" + + isCollaboratedContentAvailableWhenOwnerInactive + + '\'' + + ", " + "enterprise='" + enterprise + '\'' @@ -354,6 +375,8 @@ public static class Builder extends User.Builder { protected Boolean isExemptFromLoginVerification; + protected Boolean isCollaboratedContentAvailableWhenOwnerInactive; + protected UserFullEnterpriseField enterprise; protected List myTags; @@ -408,6 +431,13 @@ public Builder isExemptFromLoginVerification(Boolean isExemptFromLoginVerificati return this; } + public Builder isCollaboratedContentAvailableWhenOwnerInactive( + Boolean isCollaboratedContentAvailableWhenOwnerInactive) { + this.isCollaboratedContentAvailableWhenOwnerInactive = + isCollaboratedContentAvailableWhenOwnerInactive; + return this; + } + public Builder enterprise(UserFullEnterpriseField enterprise) { this.enterprise = enterprise; return this; From de337268d1df26df209f725cb0ec15567306f53d Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 5 Aug 2026 11:57:16 +0200 Subject: [PATCH 145/148] test: add query test (box/box-codegen#968) (#1948) Co-authored-by: box-sdk-build --- .codegen.json | 2 +- docs/query.md | 10 +- .../java/com/box/sdkgen/query/QueryITest.java | 178 ++++++++++++++++++ 3 files changed, 187 insertions(+), 3 deletions(-) create mode 100644 src/test/java/com/box/sdkgen/query/QueryITest.java diff --git a/.codegen.json b/.codegen.json index 0e8f5e845..cfcabada2 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "7146a71", "specHash": "86fcc6c", "version": "10.15.2" } +{ "engineHash": "7b5a612", "specHash": "86fcc6c", "version": "10.15.2" } diff --git a/docs/query.md b/docs/query.md index 97ba71b71..f5f73a3f4 100644 --- a/docs/query.md +++ b/docs/query.md @@ -15,7 +15,10 @@ This operation is performed by calling function `createQueryV2026R0`. See the endpoint docs at [API Reference](https://developer.box.com/reference/v2026.0/post-query/). -*Currently we don't have an example for calling `createQueryV2026R0` in integration tests* + +``` +client.getQuery().createQueryV2026R0(new QueryRequestBodyV2026R0.Builder(new QueryRequestBodyV2026R0QueryField.Builder(predicate).params(mapOf(entryOf("name", "John"), entryOf("age", 50))).ancestors(Arrays.asList(new QueryAncestorReferenceV2026R0("0", "folder"))).build()).limit(10).fields(Arrays.asList("box:item:name", searchFrom)).build()) +``` ### Arguments @@ -44,7 +47,10 @@ This operation is performed by calling function `createQueryInsightV2026R0`. See the endpoint docs at [API Reference](https://developer.box.com/reference/v2026.0/post-query-insights/). -*Currently we don't have an example for calling `createQueryInsightV2026R0` in integration tests* + +``` +client.getQuery().createQueryInsightV2026R0(new QueryInsightsRequestBodyV2026R0(new QueryInsightsRequestBodyV2026R0QueryField.Builder(predicate).params(mapOf(entryOf("minAmount", 0))).ancestors(Arrays.asList(new QueryAncestorReferenceV2026R0("0", "folder"))).groupBy(Arrays.asList(new QueryInsightsGroupByV2026R0.Builder(String.join("", mdPrefix, ".category")).bucketLimit(5).build())).build(), metrics)) +``` ### Arguments diff --git a/src/test/java/com/box/sdkgen/query/QueryITest.java b/src/test/java/com/box/sdkgen/query/QueryITest.java new file mode 100644 index 000000000..ea407bca2 --- /dev/null +++ b/src/test/java/com/box/sdkgen/query/QueryITest.java @@ -0,0 +1,178 @@ +package com.box.sdkgen.query; + +import static com.box.sdkgen.commons.CommonsManager.getDefaultClient; +import static com.box.sdkgen.commons.CommonsManager.uploadNewFile; +import static com.box.sdkgen.internal.utils.UtilsManager.delayInSeconds; +import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; +import static com.box.sdkgen.internal.utils.UtilsManager.getUuid; +import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; + +import com.box.sdkgen.client.BoxClient; +import com.box.sdkgen.managers.filemetadata.CreateFileMetadataByIdScope; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBody; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsField; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsOptionsField; +import com.box.sdkgen.managers.metadatatemplates.CreateMetadataTemplateRequestBodyFieldsTypeField; +import com.box.sdkgen.managers.metadatatemplates.DeleteMetadataTemplateScope; +import com.box.sdkgen.schemas.filefull.FileFull; +import com.box.sdkgen.schemas.metadatafull.MetadataFull; +import com.box.sdkgen.schemas.metadatatemplate.MetadataTemplate; +import com.box.sdkgen.schemas.v2026r0.queryancestorreferencev2026r0.QueryAncestorReferenceV2026R0; +import com.box.sdkgen.schemas.v2026r0.queryinsightsgroupbyv2026r0.QueryInsightsGroupByV2026R0; +import com.box.sdkgen.schemas.v2026r0.queryinsightsmetricdefinitionv2026r0.QueryInsightsMetricDefinitionV2026R0; +import com.box.sdkgen.schemas.v2026r0.queryinsightsmetricdefinitionv2026r0.QueryInsightsMetricDefinitionV2026R0TypeField; +import com.box.sdkgen.schemas.v2026r0.queryinsightsrequestbodyv2026r0.QueryInsightsRequestBodyV2026R0; +import com.box.sdkgen.schemas.v2026r0.queryinsightsrequestbodyv2026r0.QueryInsightsRequestBodyV2026R0QueryField; +import com.box.sdkgen.schemas.v2026r0.queryinsightsv2026r0.QueryInsightsV2026R0; +import com.box.sdkgen.schemas.v2026r0.queryrequestbodyv2026r0.QueryRequestBodyV2026R0; +import com.box.sdkgen.schemas.v2026r0.queryrequestbodyv2026r0.QueryRequestBodyV2026R0QueryField; +import com.box.sdkgen.schemas.v2026r0.queryresultsv2026r0.QueryResultsV2026R0; +import java.util.Arrays; +import java.util.Map; +import org.junit.jupiter.api.Test; + +public class QueryITest { + + private static final BoxClient client = getDefaultClient(); + + @Test + public void testCreateQueryV2026R0() { + String templateKey = String.join("", "key", getUuid()); + MetadataTemplate template = + client + .getMetadataTemplates() + .createMetadataTemplate( + new CreateMetadataTemplateRequestBody.Builder("enterprise", templateKey) + .templateKey(templateKey) + .fields( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.STRING, + "name", + "name"), + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.FLOAT, + "age", + "age"), + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.DATE, + "birthDate", + "birthDate"))) + .build()); + assert template.getTemplateKey().equals(templateKey); + FileFull file = uploadNewFile(); + MetadataFull metadata = + client + .getFileMetadata() + .createFileMetadataById( + file.getId(), + CreateFileMetadataByIdScope.ENTERPRISE, + templateKey, + mapOf( + entryOf("name", "John"), + entryOf("age", 23), + entryOf("birthDate", "2001-01-03T02:20:50.520Z"))); + assert metadata.getTemplate().equals(templateKey); + assert metadata.getScope().equals(template.getScope()); + delayInSeconds(10); + String searchFrom = String.join("", template.getScope(), ":", template.getTemplateKey()); + String mdPrefix = + String.join("", "metadata.", template.getScope(), ".\"", template.getTemplateKey(), "\""); + String predicate = String.join("", mdPrefix, ".name = :name AND ", mdPrefix, ".age < :age"); + QueryResultsV2026R0 queryResult = + client + .getQuery() + .createQueryV2026R0( + new QueryRequestBodyV2026R0.Builder( + new QueryRequestBodyV2026R0QueryField.Builder(predicate) + .params(mapOf(entryOf("name", "John"), entryOf("age", 50))) + .ancestors( + Arrays.asList(new QueryAncestorReferenceV2026R0("0", "folder"))) + .build()) + .limit(10) + .fields(Arrays.asList("box:item:name", searchFrom)) + .build()); + assert queryResult.getEntries().size() >= 0; + client + .getMetadataTemplates() + .deleteMetadataTemplate(DeleteMetadataTemplateScope.ENTERPRISE, template.getTemplateKey()); + client.getFiles().deleteFileById(file.getId()); + } + + @Test + public void testCreateQueryInsightV2026R0() { + String templateKey = String.join("", "key", getUuid()); + MetadataTemplate template = + client + .getMetadataTemplates() + .createMetadataTemplate( + new CreateMetadataTemplateRequestBody.Builder("enterprise", templateKey) + .templateKey(templateKey) + .fields( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsField.Builder( + CreateMetadataTemplateRequestBodyFieldsTypeField.ENUM, + "category", + "category") + .options( + Arrays.asList( + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "Sales"), + new CreateMetadataTemplateRequestBodyFieldsOptionsField( + "Support"))) + .build(), + new CreateMetadataTemplateRequestBodyFieldsField( + CreateMetadataTemplateRequestBodyFieldsTypeField.FLOAT, + "amount", + "amount"))) + .build()); + assert template.getTemplateKey().equals(templateKey); + FileFull file = uploadNewFile(); + MetadataFull metadata = + client + .getFileMetadata() + .createFileMetadataById( + file.getId(), + CreateFileMetadataByIdScope.ENTERPRISE, + templateKey, + mapOf(entryOf("category", "Sales"), entryOf("amount", 150))); + assert metadata.getTemplate().equals(templateKey); + delayInSeconds(5); + String mdPrefix = + String.join("", "metadata.", template.getScope(), ".\"", template.getTemplateKey(), "\""); + String predicate = String.join("", mdPrefix, ".amount > :minAmount"); + Map metrics = + mapOf( + entryOf( + "totalAmount", + new QueryInsightsMetricDefinitionV2026R0( + QueryInsightsMetricDefinitionV2026R0TypeField.SUM, + String.join("", mdPrefix, ".amount"))), + entryOf( + "countItems", + new QueryInsightsMetricDefinitionV2026R0( + QueryInsightsMetricDefinitionV2026R0TypeField.COUNT, + String.join("", mdPrefix, ".category")))); + QueryInsightsV2026R0 insightResult = + client + .getQuery() + .createQueryInsightV2026R0( + new QueryInsightsRequestBodyV2026R0( + new QueryInsightsRequestBodyV2026R0QueryField.Builder(predicate) + .params(mapOf(entryOf("minAmount", 0))) + .ancestors(Arrays.asList(new QueryAncestorReferenceV2026R0("0", "folder"))) + .groupBy( + Arrays.asList( + new QueryInsightsGroupByV2026R0.Builder( + String.join("", mdPrefix, ".category")) + .bucketLimit(5) + .build())) + .build(), + metrics)); + assert insightResult.getInsights().size() >= 0; + client + .getMetadataTemplates() + .deleteMetadataTemplate(DeleteMetadataTemplateScope.ENTERPRISE, template.getTemplateKey()); + client.getFiles().deleteFileById(file.getId()); + } +} From 63b3aa049e05b88fdc0ab37b43ced3fee42bc8ea Mon Sep 17 00:00:00 2001 From: box-sdk-build <94016436+box-sdk-build@users.noreply.github.com> Date: Wed, 5 Aug 2026 12:52:11 +0200 Subject: [PATCH 146/148] chore: release version 10.16.0 (#1951) --- .codegen.json | 2 +- CHANGELOG.md | 9 +++++++++ build.gradle | 2 +- .../java/com/box/sdkgen/networking/version/Version.java | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index cfcabada2..fdb838280 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "7b5a612", "specHash": "86fcc6c", "version": "10.15.2" } +{ "engineHash": "7b5a612", "specHash": "86fcc6c", "version": "10.16.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 270e993d6..9834014ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,15 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [10.16.0](https://github.com/box/box-java-sdk/compare/v10.15.2...v10.16.0) (2026-08-05) + + +### New Features and Enhancements + +* add `is_collaborated_content_available_when_owner_inactive` property (box/box-openapi[#613](https://github.com/box/box-java-sdk/issues/613)) ([#1946](https://github.com/box/box-java-sdk/issues/1946)) ([3a67096](https://github.com/box/box-java-sdk/commit/3a67096b0ab31836ef597daf0f2d8a25ef94013d)) +* Added two missing event types (box/box-openapi[#611](https://github.com/box/box-java-sdk/issues/611)) ([#1940](https://github.com/box/box-java-sdk/issues/1940)) ([a37b296](https://github.com/box/box-java-sdk/commit/a37b2964ab71ab789c359680e6f09ad19a310cf9)) +* Support query APIs (box/box-openapi[#610](https://github.com/box/box-java-sdk/issues/610)) ([#1938](https://github.com/box/box-java-sdk/issues/1938)) ([bf8aaaa](https://github.com/box/box-java-sdk/commit/bf8aaaab213b85d704a2735e6ef65a91f5225386)) + ### [10.15.2](https://github.com/box/box-java-sdk/compare/v10.15.1...v10.15.2) (2026-07-15) diff --git a/build.gradle b/build.gradle index a90054871..576248aee 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ plugins { } group = "com.box" archivesBaseName = "box-java-sdk" -version = "10.15.2" +version = "10.16.0" java { sourceCompatibility = JavaVersion.toVersion(libraryJavaVersion) targetCompatibility = JavaVersion.toVersion(libraryJavaVersion) diff --git a/src/main/java/com/box/sdkgen/networking/version/Version.java b/src/main/java/com/box/sdkgen/networking/version/Version.java index b300ab41c..d076d2eb8 100644 --- a/src/main/java/com/box/sdkgen/networking/version/Version.java +++ b/src/main/java/com/box/sdkgen/networking/version/Version.java @@ -3,6 +3,6 @@ public class Version { public static String getVersion() { - return "10.15.2"; + return "10.16.0"; } } From 69b6bee0c0ce3104c6e0fc2d974ce3965b69713a Mon Sep 17 00:00:00 2001 From: vstarastsenka-box Date: Wed, 5 Aug 2026 14:14:47 +0200 Subject: [PATCH 147/148] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 123549c76..6209a16f0 100644 --- a/README.md +++ b/README.md @@ -148,8 +148,6 @@ Migration guides which help you to migrate to supported major SDK versions can b We use a modified version of [Semantic Versioning](https://semver.org/) for all changes. See [version strategy](VERSIONS.md) for details which is effective from 30 July 2022. A current release is on the leading edge of our SDK development, and is intended for customers who are in active development and want the latest and greatest features. -Instead of stating a release date for a new feature, we set a fixed minor or patch release cadence of maximum 2-3 months (while we may release more often). -At the same time, there is no schedule for major or breaking release. Instead, we will communicate one quarter in advance the upcoming breaking change to allow customers to plan for the upgrade. We always recommend that all users run the latest available minor release for whatever major version is in use. We highly recommend upgrading to the latest SDK major release at the earliest convenient time and before the EOL date. From c639b85421ba1ba547065aea1b32cfa49ae6c980 Mon Sep 17 00:00:00 2001 From: vstarastsenka-box Date: Wed, 5 Aug 2026 14:16:04 +0200 Subject: [PATCH 148/148] Update VERSIONS.md --- VERSIONS.md | 1 - 1 file changed, 1 deletion(-) diff --git a/VERSIONS.md b/VERSIONS.md index 45c972031..06f2a9e5a 100644 --- a/VERSIONS.md +++ b/VERSIONS.md @@ -12,7 +12,6 @@ The MAJOR version is used to indicate the family of technology represented by th New MAJOR versions will be communicated in advance via: -- An email announcement is sent to affected accounts, announcing our plans to end support for the specific SDK version. The email will outline the path to end-of-support, specify the campaign timelines, and provide upgrade guidance. - Box SDK documentation, such as API reference documentation, user guides, SDK product marketing pages, and GitHub readme(s) are updated to indicate the campaign timeline and provide guidance on upgrading affected applications. - Deprecation warnings are added to the SDKs, outlining the path to end-of-support and linking to the SDK documentation.